summaryrefslogtreecommitdiff
path: root/sal
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-01-28 20:57:40 +0100
committerMichael Stahl <mstahl@redhat.com>2012-01-28 20:57:40 +0100
commit2716f7dce26f16a2b677c178aa7d01cea096ae47 (patch)
tree9e9f67205cd5b72f1031721273e1534a3a1e5b0f /sal
parent10ac9e750447fd57e3cef7993b0ad6c6538d6269 (diff)
replace obsolete "master" branch with README that points at new repoHEADmaster-deletedmaster
Diffstat (limited to 'sal')
-rw-r--r--sal/CppunitTest_sal_osl_mutex.mk40
-rw-r--r--sal/CppunitTest_sal_osl_pipe.mk41
-rw-r--r--sal/CppunitTest_sal_osl_profile.mk40
-rw-r--r--sal/CppunitTest_sal_osl_setthreadname.mk40
-rw-r--r--sal/CppunitTest_sal_rtl_math.mk40
-rw-r--r--sal/Makefile39
-rw-r--r--sal/Module_sal.mk39
-rw-r--r--sal/cpprt/makefile.mk71
-rw-r--r--sal/cpprt/operators_new_delete.cxx254
-rw-r--r--sal/cppunittester/cppunittester.cxx186
-rw-r--r--sal/cppunittester/makefile.mk49
-rw-r--r--sal/inc/cppunittester/protectorfactory.hxx51
-rw-r--r--sal/inc/internal/once.h82
-rw-r--r--sal/inc/makefile.mk47
-rw-r--r--sal/inc/osl/armarch.h63
-rw-r--r--sal/inc/osl/conditn.h94
-rw-r--r--sal/inc/osl/conditn.hxx130
-rw-r--r--sal/inc/osl/diagnose.h203
-rw-r--r--sal/inc/osl/diagnose.hxx207
-rw-r--r--sal/inc/osl/doublecheckedlocking.h84
-rw-r--r--sal/inc/osl/endian.h256
-rw-r--r--sal/inc/osl/file.h1595
-rw-r--r--sal/inc/osl/file.hxx1904
-rw-r--r--sal/inc/osl/getglobalmutex.hxx53
-rw-r--r--sal/inc/osl/interlck.h59
-rw-r--r--sal/inc/osl/module.h221
-rw-r--r--sal/inc/osl/module.hxx161
-rw-r--r--sal/inc/osl/mutex.h80
-rw-r--r--sal/inc/osl/mutex.hxx281
-rw-r--r--sal/inc/osl/nlsupport.h62
-rw-r--r--sal/inc/osl/pipe.h104
-rw-r--r--sal/inc/osl/pipe.hxx215
-rw-r--r--sal/inc/osl/pipe_decl.hxx238
-rw-r--r--sal/inc/osl/process.h443
-rw-r--r--sal/inc/osl/profile.h142
-rw-r--r--sal/inc/osl/profile.hxx206
-rw-r--r--sal/inc/osl/security.h161
-rw-r--r--sal/inc/osl/security.hxx112
-rw-r--r--sal/inc/osl/security_decl.hxx119
-rw-r--r--sal/inc/osl/semaphor.h97
-rw-r--r--sal/inc/osl/semaphor.hxx129
-rw-r--r--sal/inc/osl/signal.h114
-rw-r--r--sal/inc/osl/socket.h893
-rw-r--r--sal/inc/osl/socket.hxx568
-rw-r--r--sal/inc/osl/socket_decl.hxx725
-rw-r--r--sal/inc/osl/thread.h205
-rw-r--r--sal/inc/osl/thread.hxx239
-rw-r--r--sal/inc/osl/time.h160
-rw-r--r--sal/inc/osl/util.h56
-rw-r--r--sal/inc/pch/precompiled_sal.cxx31
-rw-r--r--sal/inc/pch/precompiled_sal.hxx34
-rw-r--r--sal/inc/rtl/alloc.h268
-rw-r--r--sal/inc/rtl/allocator.hxx195
-rw-r--r--sal/inc/rtl/bootstrap.h236
-rw-r--r--sal/inc/rtl/bootstrap.hxx237
-rw-r--r--sal/inc/rtl/byteseq.h325
-rw-r--r--sal/inc/rtl/byteseq.hxx146
-rw-r--r--sal/inc/rtl/cipher.h321
-rw-r--r--sal/inc/rtl/crc.h68
-rw-r--r--sal/inc/rtl/digest.h641
-rw-r--r--sal/inc/rtl/instance.hxx644
-rw-r--r--sal/inc/rtl/locale.h140
-rw-r--r--sal/inc/rtl/locale.hxx268
-rw-r--r--sal/inc/rtl/logfile.h137
-rw-r--r--sal/inc/rtl/logfile.hxx207
-rw-r--r--sal/inc/rtl/malformeduriexception.hxx77
-rw-r--r--sal/inc/rtl/math.h481
-rw-r--r--sal/inc/rtl/math.hxx435
-rw-r--r--sal/inc/rtl/memory.h53
-rw-r--r--sal/inc/rtl/process.h85
-rw-r--r--sal/inc/rtl/random.h116
-rw-r--r--sal/inc/rtl/ref.hxx245
-rw-r--r--sal/inc/rtl/strbuf.h136
-rw-r--r--sal/inc/rtl/strbuf.hxx710
-rw-r--r--sal/inc/rtl/string.h1194
-rw-r--r--sal/inc/rtl/string.hxx982
-rw-r--r--sal/inc/rtl/tencinfo.h279
-rw-r--r--sal/inc/rtl/textcvt.h183
-rw-r--r--sal/inc/rtl/textenc.h281
-rw-r--r--sal/inc/rtl/tres.h109
-rw-r--r--sal/inc/rtl/tres.hxx111
-rw-r--r--sal/inc/rtl/unload.h318
-rw-r--r--sal/inc/rtl/uri.h357
-rw-r--r--sal/inc/rtl/uri.hxx157
-rw-r--r--sal/inc/rtl/ustrbuf.h183
-rw-r--r--sal/inc/rtl/ustrbuf.hxx798
-rw-r--r--sal/inc/rtl/ustring.h1663
-rw-r--r--sal/inc/rtl/ustring.hxx1556
-rw-r--r--sal/inc/rtl/uuid.h188
-rw-r--r--sal/inc/sal/alloca.h75
-rw-r--r--sal/inc/sal/config.h134
-rw-r--r--sal/inc/sal/cppunit.h55
-rw-r--r--sal/inc/sal/macros.h82
-rw-r--r--sal/inc/sal/main.h244
-rw-r--r--sal/inc/sal/mathconf.h155
-rw-r--r--sal/inc/sal/types.h445
-rw-r--r--sal/inc/systools/win32/comptr.hxx236
-rw-r--r--sal/inc/systools/win32/comtools.hxx196
-rw-r--r--sal/inc/systools/win32/snprintf.h67
-rw-r--r--sal/inc/systools/win32/uwinapi.h67
-rw-r--r--sal/osl/all/debugbase.cxx163
-rw-r--r--sal/osl/all/filepath.c125
-rw-r--r--sal/osl/all/loadmodulerelative.cxx74
-rw-r--r--sal/osl/all/makefile.mk66
-rw-r--r--sal/osl/all/printtrace.cxx65
-rw-r--r--sal/osl/all/utility.cxx106
-rw-r--r--sal/osl/inc/printtrace.h46
-rw-r--r--sal/osl/unx/asm/interlck_sparc.s267
-rw-r--r--sal/osl/unx/asm/interlck_x86.s92
-rw-r--r--sal/osl/unx/backtrace.c375
-rw-r--r--sal/osl/unx/backtrace.h104
-rw-r--r--sal/osl/unx/conditn.c352
-rw-r--r--sal/osl/unx/diagnose.c321
-rw-r--r--sal/osl/unx/file.cxx1404
-rw-r--r--sal/osl/unx/file_error_transl.cxx256
-rw-r--r--sal/osl/unx/file_error_transl.h73
-rw-r--r--sal/osl/unx/file_impl.hxx57
-rw-r--r--sal/osl/unx/file_misc.cxx1052
-rw-r--r--sal/osl/unx/file_path_helper.cxx351
-rw-r--r--sal/osl/unx/file_path_helper.h250
-rw-r--r--sal/osl/unx/file_path_helper.hxx248
-rw-r--r--sal/osl/unx/file_stat.cxx495
-rw-r--r--sal/osl/unx/file_url.cxx933
-rw-r--r--sal/osl/unx/file_url.h72
-rw-r--r--sal/osl/unx/file_volume.cxx1188
-rw-r--r--sal/osl/unx/interlck.c196
-rw-r--r--sal/osl/unx/makefile.mk183
-rw-r--r--sal/osl/unx/module.c317
-rw-r--r--sal/osl/unx/mutex.c224
-rw-r--r--sal/osl/unx/nlsupport.c975
-rw-r--r--sal/osl/unx/osxlocale.cxx133
-rw-r--r--sal/osl/unx/pipe.c604
-rw-r--r--sal/osl/unx/process.c1528
-rw-r--r--sal/osl/unx/process_impl.cxx519
-rw-r--r--sal/osl/unx/procimpl.h52
-rw-r--r--sal/osl/unx/profile.c2220
-rw-r--r--sal/osl/unx/readwrite_helper.c87
-rw-r--r--sal/osl/unx/readwrite_helper.h46
-rw-r--r--sal/osl/unx/salinit.cxx45
-rw-r--r--sal/osl/unx/secimpl.h49
-rw-r--r--sal/osl/unx/security.c452
-rw-r--r--sal/osl/unx/semaphor.c316
-rw-r--r--sal/osl/unx/signal.c1099
-rw-r--r--sal/osl/unx/socket.c2892
-rw-r--r--sal/osl/unx/sockimpl.h80
-rw-r--r--sal/osl/unx/system.c349
-rw-r--r--sal/osl/unx/system.h546
-rw-r--r--sal/osl/unx/tempfile.c358
-rw-r--r--sal/osl/unx/thread.c1115
-rw-r--r--sal/osl/unx/time.c273
-rw-r--r--sal/osl/unx/util.c349
-rw-r--r--sal/osl/unx/uunxapi.cxx133
-rw-r--r--sal/osl/unx/uunxapi.h89
-rw-r--r--sal/osl/unx/uunxapi.hxx101
-rw-r--r--sal/osl/w32/conditn.c143
-rwxr-xr-xsal/osl/w32/diagnose.c171
-rw-r--r--sal/osl/w32/dllentry.c358
-rw-r--r--sal/osl/w32/file.cxx1190
-rw-r--r--sal/osl/w32/file_dirvol.cxx1863
-rw-r--r--sal/osl/w32/file_error.c155
-rw-r--r--sal/osl/w32/file_error.h54
-rw-r--r--sal/osl/w32/file_url.cxx1149
-rw-r--r--sal/osl/w32/file_url.h100
-rw-r--r--sal/osl/w32/interlck.c145
-rw-r--r--sal/osl/w32/makefile.mk114
-rw-r--r--sal/osl/w32/module.cxx472
-rw-r--r--sal/osl/w32/mutex.c122
-rw-r--r--sal/osl/w32/nlsupport.c233
-rw-r--r--sal/osl/w32/path_helper.cxx120
-rw-r--r--sal/osl/w32/path_helper.h73
-rw-r--r--sal/osl/w32/path_helper.hxx121
-rw-r--r--sal/osl/w32/pipe.c526
-rw-r--r--sal/osl/w32/process.cxx658
-rw-r--r--sal/osl/w32/procimpl.cxx644
-rw-r--r--sal/osl/w32/procimpl.h49
-rw-r--r--sal/osl/w32/profile.cxx2695
-rw-r--r--sal/osl/w32/salinit.cxx105
-rw-r--r--sal/osl/w32/secimpl.h56
-rw-r--r--sal/osl/w32/security.c965
-rw-r--r--sal/osl/w32/semaphor.c113
-rw-r--r--sal/osl/w32/signal.cxx440
-rw-r--r--sal/osl/w32/socket.cxx2176
-rw-r--r--sal/osl/w32/sockimpl.h110
-rw-r--r--sal/osl/w32/system.h108
-rw-r--r--sal/osl/w32/tempfile.cxx274
-rwxr-xr-xsal/osl/w32/thread.c620
-rw-r--r--sal/osl/w32/time.c218
-rw-r--r--sal/osl/w32/util.c39
-rw-r--r--sal/prj/build.lst33
-rw-r--r--sal/prj/d.lst42
-rw-r--r--sal/qa/ByteSequence/ByteSequence.cxx197
-rw-r--r--sal/qa/ByteSequence/makefile.mk53
-rw-r--r--sal/qa/OStringBuffer/makefile.mk71
-rw-r--r--sal/qa/OStringBuffer/rtl_OStringBuffer.cxx16625
-rw-r--r--sal/qa/OStringBuffer/rtl_String_Const.h505
-rw-r--r--sal/qa/OStringBuffer/rtl_String_Utils.cxx211
-rw-r--r--sal/qa/OStringBuffer/rtl_String_Utils.hxx89
-rw-r--r--sal/qa/OStringBuffer/rtl_String_Utils_Const.h58
-rw-r--r--sal/qa/buildall.pl502
-rw-r--r--sal/qa/cppunit_local.mk34
-rwxr-xr-xsal/qa/export.map34
-rwxr-xr-xsal/qa/helper/gcov/build_coverage23
-rw-r--r--sal/qa/helper/gcov/deprecated.txt213
-rwxr-xr-xsal/qa/helper/gcov/gcov_all15
-rwxr-xr-xsal/qa/helper/gcov/gcov_filter.pl427
-rw-r--r--sal/qa/helper/gcov/gcov_result.pl232
-rw-r--r--sal/qa/helper/gcov/gcov_resultcompare.pl151
-rw-r--r--sal/qa/helper/gcov/gcov_resultinterpreter.pl172
-rwxr-xr-xsal/qa/helper/gcov/gcov_run.sh64
-rw-r--r--sal/qa/helper/gcov/readme.txt13
-rwxr-xr-xsal/qa/helper/gcov/statistics20
-rw-r--r--sal/qa/inc/stringhelper.hxx19
-rw-r--r--sal/qa/inc/valueequal.hxx136
-rw-r--r--sal/qa/libs2test.txt84
-rw-r--r--sal/qa/makefile.mk62
-rw-r--r--sal/qa/osl/condition/makefile.mk63
-rw-r--r--sal/qa/osl/condition/osl_Condition.cxx369
-rw-r--r--sal/qa/osl/condition/osl_Condition_Const.h71
-rw-r--r--sal/qa/osl/file/makefile.mk85
-rw-r--r--sal/qa/osl/file/osl_File.cxx6343
-rw-r--r--sal/qa/osl/file/osl_File_Const.h232
-rw-r--r--sal/qa/osl/file/osl_old_test_file.cxx295
-rw-r--r--sal/qa/osl/file/test_cpy_wrt_file.cxx108
-rw-r--r--sal/qa/osl/getsystempathfromfileurl/makefile.mk61
-rw-r--r--sal/qa/osl/getsystempathfromfileurl/test-getsystempathfromfileurl.cxx281
-rw-r--r--sal/qa/osl/getsystempathfromfileurl/version.map34
-rw-r--r--sal/qa/osl/module/export_dll.map35
-rw-r--r--sal/qa/osl/module/makefile.mk83
-rw-r--r--sal/qa/osl/module/osl_Module.cxx529
-rw-r--r--sal/qa/osl/module/osl_Module_Const.h68
-rw-r--r--sal/qa/osl/module/osl_Module_DLL.cxx47
-rw-r--r--sal/qa/osl/mutex/osl_Mutex.cxx938
-rw-r--r--sal/qa/osl/mutex/osl_Mutex_Const.h53
-rw-r--r--sal/qa/osl/pipe/osl_Pipe.cxx1054
-rwxr-xr-xsal/qa/osl/process/batch.bat2
-rwxr-xr-xsal/qa/osl/process/batch.sh2
-rw-r--r--sal/qa/osl/process/makefile.mk81
-rw-r--r--sal/qa/osl/process/osl_Thread.cxx2208
-rw-r--r--sal/qa/osl/process/osl_Thread.xsce1
-rw-r--r--sal/qa/osl/process/osl_process.cxx761
-rw-r--r--sal/qa/osl/process/osl_process_child.cxx127
-rw-r--r--sal/qa/osl/profile/osl_old_testprofile.cxx96
-rwxr-xr-xsal/qa/osl/security/makefile.mk66
-rw-r--r--sal/qa/osl/security/osl_Security.cxx677
-rw-r--r--sal/qa/osl/security/osl_Security_Const.h80
-rw-r--r--sal/qa/osl/setthreadname/test-setthreadname.cxx83
-rw-r--r--sal/qa/osl/setthreadname/version.map34
-rwxr-xr-xsal/qa/osl/socket/export.exp1
-rwxr-xr-xsal/qa/osl/socket/makefile.mk223
-rw-r--r--sal/qa/osl/socket/osl_AcceptorSocket.cxx266
-rw-r--r--sal/qa/osl/socket/osl_ConnectorSocket.cxx269
-rw-r--r--sal/qa/osl/socket/osl_ConnectorSocket.xsce1
-rw-r--r--sal/qa/osl/socket/osl_DatagramSocket.cxx320
-rw-r--r--sal/qa/osl/socket/osl_Socket.cxx3720
-rw-r--r--sal/qa/osl/socket/osl_Socket.xsce5
-rw-r--r--sal/qa/osl/socket/osl_Socket2.cxx1470
-rw-r--r--sal/qa/osl/socket/osl_Socket2.xsce2
-rw-r--r--sal/qa/osl/socket/osl_SocketAddr.cxx890
-rw-r--r--sal/qa/osl/socket/osl_SocketAddr.xsce0
-rw-r--r--sal/qa/osl/socket/osl_SocketOld.xsce14
-rw-r--r--sal/qa/osl/socket/osl_Socket_Const.h181
-rw-r--r--sal/qa/osl/socket/osl_Socket_Const_orig.h185
-rw-r--r--sal/qa/osl/socket/osl_Socket_tests.cxx93
-rw-r--r--sal/qa/osl/socket/osl_Socket_tests.xsce1
-rw-r--r--sal/qa/osl/socket/osl_StreamSocket.cxx1431
-rw-r--r--sal/qa/osl/socket/osl_StreamSocket.xsce4
-rw-r--r--sal/qa/osl/socket/sockethelper.cxx340
-rw-r--r--sal/qa/osl/socket/sockethelper.hxx168
-rw-r--r--sal/qa/osl/thread/makefile.mk49
-rw-r--r--sal/qa/osl/thread/test_thread.cxx94
-rwxr-xr-xsal/qa/rtl/alloc/makefile.mk63
-rw-r--r--sal/qa/rtl/alloc/rtl_alloc.cxx158
-rw-r--r--sal/qa/rtl/bootstrap/bootstrap_process.cxx121
-rw-r--r--sal/qa/rtl/bootstrap/makefile.mk75
-rw-r--r--sal/qa/rtl/bootstrap/rtl_Bootstrap.cxx946
-rw-r--r--sal/qa/rtl/bootstrap/rtl_Bootstrap.xsce7
-rw-r--r--sal/qa/rtl/cipher/makefile.mk68
-rw-r--r--sal/qa/rtl/cipher/rtl_cipher.cxx664
-rwxr-xr-xsal/qa/rtl/crc32/makefile.mk66
-rw-r--r--sal/qa/rtl/crc32/rtl_crc32.cxx186
-rw-r--r--sal/qa/rtl/digest/makefile.mk61
-rw-r--r--sal/qa/rtl/digest/rtl_digest.cxx1453
-rw-r--r--sal/qa/rtl/doublelock/makefile.mk67
-rw-r--r--sal/qa/rtl/doublelock/rtl_doublelocking.cxx260
-rw-r--r--sal/qa/rtl/locale/makefile.mk66
-rw-r--r--sal/qa/rtl/locale/rtl_locale.cxx347
-rw-r--r--sal/qa/rtl/logfile/makefile.mk63
-rw-r--r--sal/qa/rtl/logfile/rtl_logfile.cxx255
-rw-r--r--sal/qa/rtl/math/rtl_math.cxx631
-rw-r--r--sal/qa/rtl/math/test-rtl-math.cxx72
-rw-r--r--sal/qa/rtl/math/test_rtl_math.cxx657
-rw-r--r--sal/qa/rtl/ostring/makefile.mk92
-rw-r--r--sal/qa/rtl/ostring/rtl_OString2.cxx575
-rw-r--r--sal/qa/rtl/ostring/rtl_str.cxx899
-rw-r--r--sal/qa/rtl/ostring/rtl_str.xsce26
-rw-r--r--sal/qa/rtl/ostring/rtl_string.cxx192
-rw-r--r--sal/qa/rtl/ostring/rtl_string.xsce1
-rw-r--r--sal/qa/rtl/oustring/joblist.txt10
-rw-r--r--sal/qa/rtl/oustring/makefile.mk81
-rw-r--r--sal/qa/rtl/oustring/rtl_OUString2.cxx1283
-rw-r--r--sal/qa/rtl/oustring/rtl_ustr.cxx1426
-rw-r--r--sal/qa/rtl/oustring/rtl_ustr.xsce33
-rw-r--r--sal/qa/rtl/oustringbuffer/makefile.mk57
-rw-r--r--sal/qa/rtl/oustringbuffer/test_oustringbuffer_noadditional.cxx36
-rw-r--r--sal/qa/rtl/oustringbuffer/test_oustringbuffer_tostring.cxx64
-rw-r--r--sal/qa/rtl/oustringbuffer/test_oustringbuffer_utf32.cxx136
-rw-r--r--sal/qa/rtl/process/child_process.cxx74
-rw-r--r--sal/qa/rtl/process/child_process_id.cxx66
-rw-r--r--sal/qa/rtl/process/makefile.mk76
-rw-r--r--sal/qa/rtl/process/rtl_Process.cxx302
-rw-r--r--sal/qa/rtl/process/rtl_Process_Const.h28
-rw-r--r--sal/qa/rtl/random/makefile.add19
-rw-r--r--sal/qa/rtl/random/makefile.mk58
-rw-r--r--sal/qa/rtl/random/random.txt5
-rw-r--r--sal/qa/rtl/random/rtl_random.cxx418
-rw-r--r--sal/qa/rtl/strings/makefile.mk58
-rw-r--r--sal/qa/rtl/strings/test_oustring_compare.cxx71
-rw-r--r--sal/qa/rtl/strings/test_oustring_convert.cxx188
-rw-r--r--sal/qa/rtl/strings/test_oustring_endswith.cxx126
-rw-r--r--sal/qa/rtl/strings/test_oustring_noadditional.cxx36
-rw-r--r--sal/qa/rtl/textenc/makefile.mk75
-rw-r--r--sal/qa/rtl/textenc/rtl_tencinfo.cxx1904
-rw-r--r--sal/qa/rtl/textenc/rtl_textcvt.cxx2905
-rw-r--r--sal/qa/rtl/uri/makefile.mk75
-rw-r--r--sal/qa/rtl/uri/rtl_Uri.cxx300
-rw-r--r--sal/qa/rtl/uri/rtl_testuri.cxx548
-rw-r--r--sal/qa/rtl/uuid/makefile.mk67
-rw-r--r--sal/qa/rtl/uuid/rtl_Uuid.cxx231
-rw-r--r--sal/qa/rtl_strings/export.exp1
-rw-r--r--sal/qa/rtl_strings/makefile.mk150
-rw-r--r--sal/qa/rtl_strings/readme.txt20
-rw-r--r--sal/qa/rtl_strings/rtl_OString.cxx3603
-rw-r--r--sal/qa/rtl_strings/rtl_OUString.cxx3857
-rw-r--r--sal/qa/rtl_strings/rtl_OUStringBuffer.cxx1732
-rw-r--r--sal/qa/rtl_strings/rtl_String_Const.h836
-rw-r--r--sal/qa/rtl_strings/rtl_String_Utils.cxx188
-rw-r--r--sal/qa/rtl_strings/rtl_String_Utils.hxx82
-rw-r--r--sal/qa/rtl_strings/rtl_String_Utils_Const.h58
-rw-r--r--sal/qa/rtl_strings/rtl_old_testostring.cxx246
-rw-r--r--sal/qa/rtl_strings/rtl_old_testowstring.cxx401
-rw-r--r--sal/qa/rtl_strings/rtl_old_teststrbuf.cxx243
-rw-r--r--sal/qa/sal/makefile.mk50
-rw-r--r--sal/qa/sal/test_types.cxx87
-rw-r--r--sal/qa/static/makefile.mk68
-rw-r--r--sal/qa/static/sal_cppunittester_all.cxx161
-rw-r--r--sal/qa/systools/makefile.mk69
-rw-r--r--sal/qa/systools/test_comtools.cxx252
-rw-r--r--sal/qa/testHelperFunctions/makefile.mk63
-rw-r--r--sal/qa/testHelperFunctions/testHelperFunctions.cxx457
-rw-r--r--sal/qa/testHelperFunctions/testHelperFunctions2.cxx64
-rw-r--r--sal/rtl/source/alloc_arena.c1349
-rw-r--r--sal/rtl/source/alloc_arena.h140
-rw-r--r--sal/rtl/source/alloc_cache.c1739
-rw-r--r--sal/rtl/source/alloc_cache.h185
-rw-r--r--sal/rtl/source/alloc_fini.cxx123
-rw-r--r--sal/rtl/source/alloc_global.c402
-rw-r--r--sal/rtl/source/alloc_impl.h274
-rw-r--r--sal/rtl/source/bootstrap.cxx1054
-rw-r--r--sal/rtl/source/byteseq.c257
-rw-r--r--sal/rtl/source/cipher.c1365
-rw-r--r--sal/rtl/source/cmdargs.cxx112
-rw-r--r--sal/rtl/source/crc.c166
-rw-r--r--sal/rtl/source/debugprint.cxx67
-rw-r--r--sal/rtl/source/digest.c2121
-rw-r--r--sal/rtl/source/hash.cxx242
-rw-r--r--sal/rtl/source/hash.h24
-rw-r--r--sal/rtl/source/locale.c352
-rw-r--r--sal/rtl/source/logfile.cxx251
-rw-r--r--sal/rtl/source/macro.hxx116
-rw-r--r--sal/rtl/source/makefile.mk165
-rw-r--r--sal/rtl/source/math.cxx1268
-rw-r--r--sal/rtl/source/memory.c64
-rw-r--r--sal/rtl/source/random.c340
-rw-r--r--sal/rtl/source/rtl_process.c51
-rw-r--r--sal/rtl/source/strbuf.c179
-rw-r--r--sal/rtl/source/strimp.c61
-rw-r--r--sal/rtl/source/strimp.h67
-rw-r--r--sal/rtl/source/string.c323
-rw-r--r--sal/rtl/source/strtmpl.c1570
-rw-r--r--sal/rtl/source/surrogates.h53
-rw-r--r--sal/rtl/source/tres.c688
-rw-r--r--sal/rtl/source/unload.cxx416
-rw-r--r--sal/rtl/source/uri.cxx803
-rw-r--r--sal/rtl/source/ustrbuf.c239
-rw-r--r--sal/rtl/source/ustring.c983
-rw-r--r--sal/rtl/source/uuid.cxx182
-rwxr-xr-xsal/systools/win32/onlineupdate/makefile.mk78
-rw-r--r--sal/systools/win32/onlineupdate/onlinecheck.cxx71
-rw-r--r--sal/systools/win32/onlineupdate/onlinecheck.dxp28
-rw-r--r--sal/systools/win32/uwinapi/makefile.mk86
-rw-r--r--sal/systools/win32/uwinapi/snprintf.c13
-rw-r--r--sal/systools/win32/uwinapi/sntprintf.c125
-rw-r--r--sal/systools/win32/uwinapi/snwprintf.c8
-rw-r--r--sal/test/bootstrap65
-rwxr-xr-xsal/test/bootstrap.bat62
-rwxr-xr-xsal/test/bootstrap.pl260
-rw-r--r--sal/test/bootstraptest.ini11
-rw-r--r--sal/test/makefile.mk154
-rw-r--r--sal/test/test_salmain.cxx45
-rw-r--r--sal/test/test_salmainwithargs.cxx45
-rw-r--r--sal/test/testbootstrap.cxx137
-rw-r--r--sal/test/testbootstrap.ini4
-rw-r--r--sal/test/unloading/exports.dxp3
-rw-r--r--sal/test/unloading/makefile.mk119
-rw-r--r--sal/test/unloading/readme.txt14
-rw-r--r--sal/test/unloading/samplelib1.cxx268
-rw-r--r--sal/test/unloading/samplelib1.xml41
-rw-r--r--sal/test/unloading/samplelib2.cxx235
-rw-r--r--sal/test/unloading/unloadTest.cxx659
-rw-r--r--sal/textenc/context.c50
-rw-r--r--sal/textenc/context.h55
-rw-r--r--sal/textenc/convertadobe.tab327
-rw-r--r--sal/textenc/convertbig5hkscs.c496
-rw-r--r--sal/textenc/convertbig5hkscs.h84
-rw-r--r--sal/textenc/convertbig5hkscs.tab72
-rw-r--r--sal/textenc/converter.c167
-rw-r--r--sal/textenc/converter.h69
-rw-r--r--sal/textenc/converteuctw.c455
-rw-r--r--sal/textenc/converteuctw.h81
-rw-r--r--sal/textenc/converteuctw.tab69
-rw-r--r--sal/textenc/convertgb18030.c471
-rw-r--r--sal/textenc/convertgb18030.h95
-rw-r--r--sal/textenc/convertgb18030.tab69
-rw-r--r--sal/textenc/convertiscii.tab112
-rw-r--r--sal/textenc/convertiso2022cn.c865
-rw-r--r--sal/textenc/convertiso2022cn.h87
-rw-r--r--sal/textenc/convertiso2022cn.tab77
-rw-r--r--sal/textenc/convertiso2022jp.c572
-rw-r--r--sal/textenc/convertiso2022jp.h81
-rw-r--r--sal/textenc/convertiso2022jp.tab68
-rw-r--r--sal/textenc/convertiso2022kr.c530
-rw-r--r--sal/textenc/convertiso2022kr.h81
-rw-r--r--sal/textenc/convertiso2022kr.tab68
-rw-r--r--sal/textenc/convertsinglebytetobmpunicode.cxx214
-rw-r--r--sal/textenc/convertsinglebytetobmpunicode.hxx129
-rw-r--r--sal/textenc/generate/big5hkscs2001.pl806
-rw-r--r--sal/textenc/generate/big5hkscs2001.tab8824
-rw-r--r--sal/textenc/generate/cns116431992.pl856
-rw-r--r--sal/textenc/generate/cns116431992.tab22869
-rw-r--r--sal/textenc/generate/gb180302000.pl309
-rw-r--r--sal/textenc/generate/gb180302000.tab9038
-rw-r--r--sal/textenc/gettextencodingdata.h49
-rw-r--r--sal/textenc/makefile.mk117
-rw-r--r--sal/textenc/tables.cxx234
-rw-r--r--sal/textenc/tcvtarb1.tab936
-rw-r--r--sal/textenc/tcvtbyte.c858
-rw-r--r--sal/textenc/tcvteas1.tab436
-rw-r--r--sal/textenc/tcvtest1.tab4584
-rw-r--r--sal/textenc/tcvtjp1.tab1556
-rw-r--r--sal/textenc/tcvtjp2.tab3964
-rw-r--r--sal/textenc/tcvtjp3.tab2914
-rw-r--r--sal/textenc/tcvtjp4.tab3585
-rw-r--r--sal/textenc/tcvtjp5.tab3350
-rw-r--r--sal/textenc/tcvtjp6.tab2660
-rw-r--r--sal/textenc/tcvtkr1.tab3323
-rw-r--r--sal/textenc/tcvtkr2.tab5415
-rw-r--r--sal/textenc/tcvtkr4.tab3503
-rw-r--r--sal/textenc/tcvtkr5.tab5415
-rw-r--r--sal/textenc/tcvtkr6.tab1238
-rw-r--r--sal/textenc/tcvtlat1.tab1775
-rw-r--r--sal/textenc/tcvtmb.c695
-rw-r--r--sal/textenc/tcvtscn1.tab3860
-rw-r--r--sal/textenc/tcvtscn2.tab4463
-rw-r--r--sal/textenc/tcvtscn3.tab1502
-rw-r--r--sal/textenc/tcvtscn4.tab3070
-rw-r--r--sal/textenc/tcvtscn5.tab3235
-rw-r--r--sal/textenc/tcvtscn6.tab2956
-rw-r--r--sal/textenc/tcvtsym1.tab47
-rw-r--r--sal/textenc/tcvttcn1.tab2894
-rw-r--r--sal/textenc/tcvttcn2.tab3715
-rw-r--r--sal/textenc/tcvttcn6.tab1733
-rw-r--r--sal/textenc/tcvtuni1.tab100
-rw-r--r--sal/textenc/tcvtutf7.c591
-rw-r--r--sal/textenc/tcvtutf8.c422
-rw-r--r--sal/textenc/tenchelp.c215
-rw-r--r--sal/textenc/tenchelp.h305
-rw-r--r--sal/textenc/tencinfo.c1002
-rw-r--r--sal/textenc/textcvt.c267
-rw-r--r--sal/textenc/textenc.cxx167
-rw-r--r--sal/textenc/unichars.c139
-rw-r--r--sal/textenc/unichars.h65
-rw-r--r--sal/typesconfig/makefile.mk91
-rw-r--r--sal/typesconfig/typesconfig.c454
-rw-r--r--sal/unosdk.mk47
-rw-r--r--sal/util/makefile.mk183
-rwxr-xr-xsal/util/sal.map627
-rw-r--r--sal/util/saltextenc.map6
-rw-r--r--sal/version.mk40
-rw-r--r--sal/workben/clipboardwben/testcopy/StdAfx.cpp11
-rw-r--r--sal/workben/clipboardwben/testcopy/StdAfx.h35
-rw-r--r--sal/workben/clipboardwben/testcopy/TestWin32.icobin1590 -> 0 bytes
-rw-r--r--sal/workben/clipboardwben/testcopy/XTDataObject.cxx470
-rw-r--r--sal/workben/clipboardwben/testcopy/XTDataObject.hxx126
-rw-r--r--sal/workben/clipboardwben/testcopy/cbcpytest.cxx404
-rw-r--r--sal/workben/clipboardwben/testcopy/cbcpytest.rc122
-rw-r--r--sal/workben/clipboardwben/testcopy/makefile.mk67
-rw-r--r--sal/workben/clipboardwben/testcopy/resource.h34
-rw-r--r--sal/workben/clipboardwben/testcopy/small.icobin318 -> 0 bytes
-rw-r--r--sal/workben/clipboardwben/testpaste/StdAfx.cpp11
-rw-r--r--sal/workben/clipboardwben/testpaste/StdAfx.h35
-rw-r--r--sal/workben/clipboardwben/testpaste/TestWin32.icobin1590 -> 0 bytes
-rw-r--r--sal/workben/clipboardwben/testpaste/cbptest.cxx431
-rw-r--r--sal/workben/clipboardwben/testpaste/cbptest.rc120
-rw-r--r--sal/workben/clipboardwben/testpaste/makefile.mk67
-rw-r--r--sal/workben/clipboardwben/testpaste/resource.h31
-rw-r--r--sal/workben/clipboardwben/testpaste/small.icobin318 -> 0 bytes
-rw-r--r--sal/workben/clipboardwben/testviewer/StdAfx.cpp11
-rw-r--r--sal/workben/clipboardwben/testviewer/StdAfx.h35
-rw-r--r--sal/workben/clipboardwben/testviewer/TestWin32.icobin1590 -> 0 bytes
-rw-r--r--sal/workben/clipboardwben/testviewer/cbvtest.cxx353
-rw-r--r--sal/workben/clipboardwben/testviewer/cbvtest.rc127
-rw-r--r--sal/workben/clipboardwben/testviewer/makefile.mk67
-rw-r--r--sal/workben/clipboardwben/testviewer/resource.h35
-rw-r--r--sal/workben/clipboardwben/testviewer/small.icobin318 -> 0 bytes
-rw-r--r--sal/workben/export.exp1
-rw-r--r--sal/workben/getlocaleinfotest.cxx52
-rw-r--r--sal/workben/makefile.mk224
-rw-r--r--sal/workben/measure_oustrings.cxx282
-rw-r--r--sal/workben/t_cipher.c402
-rw-r--r--sal/workben/t_digest.c380
-rw-r--r--sal/workben/t_ojp_exe.cxx57
-rw-r--r--sal/workben/t_osl_getVolInfo.cxx126
-rw-r--r--sal/workben/t_osl_joinProcess.cxx226
-rw-r--r--sal/workben/t_random.c63
-rw-r--r--sal/workben/t_readline.c56
-rw-r--r--sal/workben/test.cxx68
-rw-r--r--sal/workben/testfile.cxx2803
-rw-r--r--sal/workben/testpip2.cxx97
-rw-r--r--sal/workben/testpipe.cxx169
-rw-r--r--sal/workben/testproc.cxx80
530 files changed, 0 insertions, 299236 deletions
diff --git a/sal/CppunitTest_sal_osl_mutex.mk b/sal/CppunitTest_sal_osl_mutex.mk
deleted file mode 100644
index 08e6f093d..000000000
--- a/sal/CppunitTest_sal_osl_mutex.mk
+++ /dev/null
@@ -1,40 +0,0 @@
-# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*-
-# Version: MPL 1.1 / GPLv3+ / LGPLv3+
-#
-# The contents of this file are subject to the Mozilla Public License Version
-# 1.1 (the "License"); you may not use this file except in compliance with
-# the License or as specified alternatively below. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-# for the specific language governing rights and limitations under the
-# License.
-#
-# The Initial Developer of the Original Code is
-# Bjoern Michaelsen, Canonical Ltd. <bjoern.michaelsen@canonical.com>
-# Portions created by the Initial Developer are Copyright (C) 2010 the
-# Initial Developer. All Rights Reserved.
-#
-# Major Contributor(s):
-#
-# For minor contributions see the git repository.
-#
-# Alternatively, the contents of this file may be used under the terms of
-# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
-# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
-# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
-# instead of those above.
-
-$(eval $(call gb_CppunitTest_CppunitTest,sal_osl_mutex))
-
-$(eval $(call gb_CppunitTest_add_exception_objects,sal_osl_mutex, \
- sal/qa/osl/mutex/osl_Mutex \
-))
-
-$(eval $(call gb_CppunitTest_add_linked_libs,sal_osl_mutex, \
- sal \
- $(gb_STDLIBS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/sal/CppunitTest_sal_osl_pipe.mk b/sal/CppunitTest_sal_osl_pipe.mk
deleted file mode 100644
index 215635434..000000000
--- a/sal/CppunitTest_sal_osl_pipe.mk
+++ /dev/null
@@ -1,41 +0,0 @@
-# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*-
-# Version: MPL 1.1 / GPLv3+ / LGPLv3+
-#
-# The contents of this file are subject to the Mozilla Public License Version
-# 1.1 (the "License"); you may not use this file except in compliance with
-# the License or as specified alternatively below. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-# for the specific language governing rights and limitations under the
-# License.
-#
-# The Initial Developer of the Original Code is
-# Bjoern Michaelsen, Canonical Ltd. <bjoern.michaelsen@canonical.com>
-# Portions created by the Initial Developer are Copyright (C) 2010 the
-# Initial Developer. All Rights Reserved.
-#
-# Major Contributor(s):
-#
-# For minor contributions see the git repository.
-#
-# Alternatively, the contents of this file may be used under the terms of
-# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
-# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
-# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
-# instead of those above.
-
-$(eval $(call gb_CppunitTest_CppunitTest,sal_osl_pipe))
-
-$(eval $(call gb_CppunitTest_add_exception_objects,sal_osl_pipe, \
- sal/qa/osl/pipe/osl_Pipe \
-))
-
-$(eval $(call gb_CppunitTest_add_linked_libs,sal_osl_pipe, \
- sal \
- test \
- $(gb_STDLIBS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/sal/CppunitTest_sal_osl_profile.mk b/sal/CppunitTest_sal_osl_profile.mk
deleted file mode 100644
index 96cf34632..000000000
--- a/sal/CppunitTest_sal_osl_profile.mk
+++ /dev/null
@@ -1,40 +0,0 @@
-# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*-
-# Version: MPL 1.1 / GPLv3+ / LGPLv3+
-#
-# The contents of this file are subject to the Mozilla Public License Version
-# 1.1 (the "License"); you may not use this file except in compliance with
-# the License or as specified alternatively below. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-# for the specific language governing rights and limitations under the
-# License.
-#
-# The Initial Developer of the Original Code is
-# Bjoern Michaelsen, Canonical Ltd. <bjoern.michaelsen@canonical.com>
-# Portions created by the Initial Developer are Copyright (C) 2010 the
-# Initial Developer. All Rights Reserved.
-#
-# Major Contributor(s):
-#
-# For minor contributions see the git repository.
-#
-# Alternatively, the contents of this file may be used under the terms of
-# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
-# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
-# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
-# instead of those above.
-
-$(eval $(call gb_CppunitTest_CppunitTest,sal_osl_profile))
-
-$(eval $(call gb_CppunitTest_add_exception_objects,sal_osl_profile, \
- sal/qa/osl/profile/osl_old_testprofile \
-))
-
-$(eval $(call gb_CppunitTest_add_linked_libs,sal_osl_profile, \
- sal \
- $(gb_STDLIBS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/sal/CppunitTest_sal_osl_setthreadname.mk b/sal/CppunitTest_sal_osl_setthreadname.mk
deleted file mode 100644
index d5c6c4c92..000000000
--- a/sal/CppunitTest_sal_osl_setthreadname.mk
+++ /dev/null
@@ -1,40 +0,0 @@
-# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*-
-# Version: MPL 1.1 / GPLv3+ / LGPLv3+
-#
-# The contents of this file are subject to the Mozilla Public License Version
-# 1.1 (the "License"); you may not use this file except in compliance with
-# the License or as specified alternatively below. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-# for the specific language governing rights and limitations under the
-# License.
-#
-# The Initial Developer of the Original Code is
-# Bjoern Michaelsen, Canonical Ltd. <bjoern.michaelsen@canonical.com>
-# Portions created by the Initial Developer are Copyright (C) 2010 the
-# Initial Developer. All Rights Reserved.
-#
-# Major Contributor(s):
-#
-# For minor contributions see the git repository.
-#
-# Alternatively, the contents of this file may be used under the terms of
-# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
-# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
-# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
-# instead of those above.
-
-$(eval $(call gb_CppunitTest_CppunitTest,sal_osl_setthreadname))
-
-$(eval $(call gb_CppunitTest_add_exception_objects,sal_osl_setthreadname, \
- sal/qa/osl/setthreadname/test-setthreadname \
-))
-
-$(eval $(call gb_CppunitTest_add_linked_libs,sal_osl_setthreadname, \
- sal \
- $(gb_STDLIBS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/sal/CppunitTest_sal_rtl_math.mk b/sal/CppunitTest_sal_rtl_math.mk
deleted file mode 100644
index aad3c1ef0..000000000
--- a/sal/CppunitTest_sal_rtl_math.mk
+++ /dev/null
@@ -1,40 +0,0 @@
-# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*-
-# Version: MPL 1.1 / GPLv3+ / LGPLv3+
-#
-# The contents of this file are subject to the Mozilla Public License Version
-# 1.1 (the "License"); you may not use this file except in compliance with
-# the License or as specified alternatively below. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-# for the specific language governing rights and limitations under the
-# License.
-#
-# The Initial Developer of the Original Code is
-# Bjoern Michaelsen, Canonical Ltd. <bjoern.michaelsen@canonical.com>
-# Portions created by the Initial Developer are Copyright (C) 2010 the
-# Initial Developer. All Rights Reserved.
-#
-# Major Contributor(s):
-#
-# For minor contributions see the git repository.
-#
-# Alternatively, the contents of this file may be used under the terms of
-# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
-# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
-# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
-# instead of those above.
-
-$(eval $(call gb_CppunitTest_CppunitTest,sal_rtl_math))
-
-$(eval $(call gb_CppunitTest_add_exception_objects,sal_rtl_math, \
- sal/qa/rtl/math/test-rtl-math \
-))
-
-$(eval $(call gb_CppunitTest_add_linked_libs,sal_rtl_math, \
- sal \
- $(gb_STDLIBS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/sal/Makefile b/sal/Makefile
deleted file mode 100644
index 8d7111991..000000000
--- a/sal/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-ifeq ($(strip $(SOLARENV)),)
-$(error No environment set!)
-endif
-
-gb_PARTIALBUILD := T
-GBUILDDIR := $(SOLARENV)/gbuild
-include $(GBUILDDIR)/gbuild.mk
-
-$(eval $(call gb_Module_make_global_targets,$(shell ls $(dir $(realpath $(firstword $(MAKEFILE_LIST))))/Module*.mk)))
-
-# vim: set noet sw=4 ts=4:
diff --git a/sal/Module_sal.mk b/sal/Module_sal.mk
deleted file mode 100644
index a03ad7446..000000000
--- a/sal/Module_sal.mk
+++ /dev/null
@@ -1,39 +0,0 @@
-# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*-
-# Version: MPL 1.1 / GPLv3+ / LGPLv3+
-#
-# The contents of this file are subject to the Mozilla Public License Version
-# 1.1 (the "License"); you may not use this file except in compliance with
-# the License or as specified alternatively below. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-# for the specific language governing rights and limitations under the
-# License.
-#
-# The Initial Developer of the Original Code is
-# Bjoern Michaelsen, Canonical Ltd. <bjoern.michaelsen@canonical.com>
-# Portions created by the Initial Developer are Copyright (C) 2010 the
-# Initial Developer. All Rights Reserved.
-#
-# Major Contributor(s):
-#
-# For minor contributions see the git repository.
-#
-# Alternatively, the contents of this file may be used under the terms of
-# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
-# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
-# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
-# instead of those above.
-
-$(eval $(call gb_Module_Module,sal))
-
-$(eval $(call gb_Module_add_subsequentcheck_targets,sal,\
- CppunitTest_sal_osl_mutex \
- CppunitTest_sal_osl_pipe \
- CppunitTest_sal_osl_profile \
- CppunitTest_sal_osl_setthreadname \
- CppunitTest_sal_rtl_math \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/sal/cpprt/makefile.mk b/sal/cpprt/makefile.mk
deleted file mode 100644
index 1cba8ee76..000000000
--- a/sal/cpprt/makefile.mk
+++ /dev/null
@@ -1,71 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..
-
-PRJNAME=SAL
-TARGET=salcpprt
-
-ENABLE_EXCEPTIONS=TRUE
-LIBTARGET=NO
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/operators_new_delete.obj
-
-
-.IF "$(OS)" != "SOLARIS"
-
-# build as archive
-LIB1TARGET=$(LB)$/$(TARGET).lib
-LIB1ARCHIV=$(LB)$/lib$(TARGET).a
-LIB1OBJFILES=$(SLOFILES)
-
-.ELSE # SOLARIS
-
-# build as shared library (interposer needed for -Bdirect)
-LINKFLAGS+= -z interpose
-
-SHL1TARGET= $(TARGET)
-SHL1IMPLIB= i$(TARGET)
-
-SHL1STDLIBS=$(SALLIB)
-SHL1OBJS= $(SLOFILES)
-
-.ENDIF # SOLARIS
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/sal/cpprt/operators_new_delete.cxx b/sal/cpprt/operators_new_delete.cxx
deleted file mode 100644
index 2092432b9..000000000
--- a/sal/cpprt/operators_new_delete.cxx
+++ /dev/null
@@ -1,254 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#ifdef WNT /* avoid 'std::bad_alloc' unresolved externals */
-#define _CRTIMP
-#define _NTSDK
-#endif /* WNT */
-
-#ifndef INCLUDED_ALGORITHM
-#include <algorithm>
-#define INCLUDED_ALGORITHM
-#endif
-
-#ifndef INCLUDED_NEW
-#include <new>
-#define INCLUDED_NEW
-#endif
-
-#ifndef INCLUDED_STRING_H
-#include <string.h>
-#define INCLUDED_STRING_H
-#endif
-#include <osl/diagnose.h>
-#include <rtl/alloc.h>
-
-using std::nothrow_t;
-
-// =======================================================================
-// AllocatorTraits
-// =======================================================================
-
-namespace
-{
-
-struct AllocatorTraits
-{
- typedef char const signature_type[8];
- const signature_type & m_signature;
-
- explicit AllocatorTraits (signature_type const & s) SAL_THROW(())
- : m_signature (s)
- {}
-
- std::size_t size (std::size_t n) const SAL_THROW(())
- {
- n = std::max(n, std::size_t(1));
-#if OSL_DEBUG_LEVEL > 0
- n += sizeof(signature_type);
-#endif /* OSL_DEBUG_LEVEL */
- return n;
- }
-
- void* init (void * p) const SAL_THROW(())
- {
-#if OSL_DEBUG_LEVEL > 0
- memcpy (p, m_signature, sizeof(signature_type));
- p = static_cast<char*>(p) + sizeof(signature_type);
-#endif /* OSL_DEBUG_LEVEL */
- return p;
- }
-
- void* fini (void * p) const SAL_THROW(())
- {
-#if OSL_DEBUG_LEVEL > 0
- p = static_cast<char*>(p) - sizeof(signature_type);
- if (memcmp (p, m_signature, sizeof(signature_type)) != 0)
- {
- OSL_FAIL("operator delete mismatch");
- }
-#endif /* OSL_DEBUG_LEVEL */
- return p;
- }
-};
-
-// =======================================================================
-
-struct VectorTraits : public AllocatorTraits
-{
- static const signature_type g_signature;
-
- VectorTraits() SAL_THROW(())
- : AllocatorTraits (g_signature)
- {}
-};
-
-struct ScalarTraits : public AllocatorTraits
-{
- static const signature_type g_signature;
-
- ScalarTraits() SAL_THROW(())
- : AllocatorTraits (g_signature)
- {}
-};
-
-const AllocatorTraits::signature_type VectorTraits::g_signature = "new[]()";
-const AllocatorTraits::signature_type ScalarTraits::g_signature = "new() ";
-
-} // anonymous namespace
-
-// =======================================================================
-// Allocator
-// =======================================================================
-
-static void default_handler (void)
-{
- // Multithreading race in 'std::set_new_handler()' call sequence below.
- throw std::bad_alloc();
-}
-
-// =======================================================================
-
-static void* allocate (
- std::size_t n, AllocatorTraits const & rTraits)
- SAL_THROW((std::bad_alloc))
-{
- n = rTraits.size (n);
- for (;;)
- {
- void * p = rtl_allocateMemory (sal_Size(n));
- if (p != 0)
- return rTraits.init (p);
-
- std::new_handler d = default_handler, f = std::set_new_handler (d);
- if (f != d)
- std::set_new_handler (f);
-
- if (f == 0)
- throw std::bad_alloc();
- (*f)();
- }
-}
-
-// =======================================================================
-
-static void* allocate (
- std::size_t n, AllocatorTraits const & rTraits, std::nothrow_t const &)
- SAL_THROW(())
-{
- try
- {
- return allocate (n, rTraits);
- }
- catch (std::bad_alloc const &)
- {
- return (0);
- }
-}
-
-// =======================================================================
-
-static void deallocate (void * p, AllocatorTraits const & rTraits)
- SAL_THROW(())
-{
- if (p)
- {
- rtl_freeMemory (rTraits.fini(p));
- }
-}
-
-// =======================================================================
-// T * p = new T; delete p;
-// =======================================================================
-
-void* SAL_CALL operator new (std::size_t n) throw (std::bad_alloc)
-{
- return allocate (n, ScalarTraits());
-}
-
-// =======================================================================
-
-void SAL_CALL operator delete (void * p) throw ()
-{
- deallocate (p, ScalarTraits());
-}
-
-// =======================================================================
-// T * p = new(nothrow) T; delete(nothrow) p;
-// =======================================================================
-
-void* SAL_CALL operator new (std::size_t n, std::nothrow_t const &) throw ()
-{
- return allocate (n, ScalarTraits(), nothrow_t());
-}
-
-// =======================================================================
-
-void SAL_CALL operator delete (void * p, std::nothrow_t const &) throw ()
-{
- deallocate (p, ScalarTraits());
-}
-
-// =======================================================================
-// T * p = new T[n]; delete[] p;
-// =======================================================================
-
-void* SAL_CALL operator new[] (std::size_t n) throw (std::bad_alloc)
-{
- return allocate (n, VectorTraits());
-}
-
-// =======================================================================
-
-void SAL_CALL operator delete[] (void * p) throw ()
-{
- deallocate (p, VectorTraits());
-}
-
-// =======================================================================
-// T * p = new(nothrow) T[n]; delete(nothrow)[] p;
-// =======================================================================
-
-void* SAL_CALL operator new[] (std::size_t n, std::nothrow_t const &) throw ()
-{
- return allocate (n, VectorTraits(), nothrow_t());
-}
-
-// =======================================================================
-
-void SAL_CALL operator delete[] (void * p, std::nothrow_t const &) throw ()
-{
- deallocate (p, VectorTraits());
-}
-
-// =======================================================================
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/cppunittester/cppunittester.cxx b/sal/cppunittester/cppunittester.cxx
deleted file mode 100644
index b351870b6..000000000
--- a/sal/cppunittester/cppunittester.cxx
+++ /dev/null
@@ -1,186 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
-*
-* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-*
-* Copyright 2000, 2010 Oracle and/or its affiliates.
-*
-* OpenOffice.org - a multi-platform office productivity suite
-*
-* This file is part of OpenOffice.org.
-*
-* OpenOffice.org is free software: you can redistribute it and/or modify
-* it under the terms of the GNU Lesser General Public License version 3
-* only, as published by the Free Software Foundation.
-*
-* OpenOffice.org is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU Lesser General Public License version 3 for more details
-* (a copy is included in the LICENSE file that accompanied this code).
-*
-* You should have received a copy of the GNU Lesser General Public License
-* version 3 along with OpenOffice.org. If not, see
-* <http://www.openoffice.org/license.html>
-* for a copy of the LGPLv3 License.
-*
-************************************************************************/
-
-#include "precompiled_sal.hxx"
-#include "sal/config.h"
-
-#ifdef WNT
-#include <windows.h>
-#endif
-
-#include <cstdlib>
-#include <iostream>
-#include <limits>
-#include <string>
-#include "cppunittester/protectorfactory.hxx"
-#include "osl/module.h"
-#include "osl/module.hxx"
-#include "osl/thread.h"
-#include "rtl/process.h"
-#include "rtl/string.h"
-#include "rtl/string.hxx"
-#include "rtl/textcvt.h"
-#include "rtl/ustring.hxx"
-#include "sal/main.h"
-#include "sal/types.h"
-
-#include "cppunit/CompilerOutputter.h"
-#include "cppunit/TestResult.h"
-#include "cppunit/TestResultCollector.h"
-#include "cppunit/TestRunner.h"
-#include "cppunit/extensions/TestFactoryRegistry.h"
-#include "cppunit/plugin/PlugInManager.h"
-#include "cppunit/portability/Stream.h"
-
-#include "boost/noncopyable.hpp"
-
-namespace {
-
-void usageFailure() {
- std::cerr
- << ("Usage: cppunittester (--protector <shared-library-path>"
- " <function-symbol>)* <shared-library-path>")
- << std::endl;
- std::exit(EXIT_FAILURE);
-}
-
-rtl::OUString getArgument(sal_Int32 index) {
- rtl::OUString arg;
- rtl_getAppCommandArg(index, &arg.pData);
- return arg;
-}
-
-std::string convertLazy(rtl::OUString const & s16) {
- rtl::OString s8(rtl::OUStringToOString(s16, osl_getThreadTextEncoding()));
- return std::string(
- s8.getStr(),
- ((static_cast< sal_uInt32 >(s8.getLength())
- > (std::numeric_limits< std::string::size_type >::max)())
- ? (std::numeric_limits< std::string::size_type >::max)()
- : static_cast< std::string::size_type >(s8.getLength())));
-}
-
-//Allow the whole uniting testing framework to be run inside a "Protector"
-//which knows about uno exceptions, so it can print the content of the
-//exception before falling over and dying
-class CPPUNIT_API ProtectedFixtureFunctor : public CppUnit::Functor, private boost::noncopyable
-{
-private:
- const std::string &testlib;
- const std::string &args;
- CppUnit::TestResult &result;
-public:
- ProtectedFixtureFunctor(const std::string& testlib_, const std::string &args_, CppUnit::TestResult &result_)
- : testlib(testlib_)
- , args(args_)
- , result(result_)
- {
- }
- bool run() const
- {
- CppUnit::PlugInManager manager;
- manager.load(testlib, args);
- CppUnit::TestRunner runner;
- runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
- CppUnit::TestResultCollector collector;
- result.addListener(&collector);
- runner.run(result);
- CppUnit::CompilerOutputter(&collector, CppUnit::stdCErr()).write();
- return collector.wasSuccessful();
- }
- virtual bool operator()() const
- {
- return run();
- }
-};
-}
-
-SAL_IMPLEMENT_MAIN() {
-#ifdef WNT
- //Disable Dr-Watson in order to crash simply without popup dialogs under
- //windows
- DWORD dwMode = SetErrorMode(SEM_NOGPFAULTERRORBOX);
- SetErrorMode(SEM_NOGPFAULTERRORBOX|dwMode);
-#endif
-
- CppUnit::TestResult result;
- cppunittester::LibreOfficeProtector *throw_protector = 0;
- std::string args;
- std::string testlib;
- sal_uInt32 index = 0;
- while (index < rtl_getAppCommandArgCount())
- {
- rtl::OUString arg = getArgument(index);
- if (!arg.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("--protector")))
- {
- if (testlib.empty())
- {
- testlib = rtl::OUStringToOString(arg, osl_getThreadTextEncoding()).getStr();
- args += testlib;
- }
- else
- {
- args += ' ';
- args += rtl::OUStringToOString(arg, osl_getThreadTextEncoding()).getStr();
- }
- ++index;
- continue;
- }
- if (rtl_getAppCommandArgCount() - index < 3) {
- usageFailure();
- }
- rtl::OUString lib(getArgument(index + 1));
- rtl::OUString sym(getArgument(index + 2));
- oslGenericFunction fn = (new osl::Module(lib, SAL_LOADMODULE_GLOBAL))
- ->getFunctionSymbol(sym);
- throw_protector = fn == 0
- ? 0
- : (*reinterpret_cast< cppunittester::ProtectorFactory * >(fn))();
- if (throw_protector == 0) {
- std::cerr
- << "Failure instantiating protector \"" << convertLazy(lib)
- << "\", \"" << convertLazy(sym) << '"' << std::endl;
- std::exit(EXIT_FAILURE);
- }
- result.pushProtector(throw_protector);
- index+=3;
- }
-
- bool ok = false;
- ProtectedFixtureFunctor tests(testlib, args, result);
- //if the unoprotector was given on the command line, use it to catch
- //and report the error message of exceptions
- if (throw_protector)
- ok = throw_protector->protect(tests);
- else
- ok = tests.run();
-
- return ok ? EXIT_SUCCESS : EXIT_FAILURE;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/cppunittester/makefile.mk b/sal/cppunittester/makefile.mk
deleted file mode 100644
index 7c43bab6b..000000000
--- a/sal/cppunittester/makefile.mk
+++ /dev/null
@@ -1,49 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#***********************************************************************/
-
-PRJ = ..
-PRJNAME = sal
-TARGET = cppunittester
-
-ENABLE_EXCEPTIONS = TRUE
-
-.INCLUDE: settings.mk
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-
-.IF "$(OS)" == "IOS"
-CFLAGSCXX += -x objective-c++ -fobjc-abi-version=2 -fobjc-legacy-dispatch -D__IPHONE_OS_VERSION_MIN_REQUIRED=40300
-.ENDIF
-
-OBJFILES = $(APP1OBJS)
-
-APP1OBJS = $(OBJ)/cppunittester.obj
-APP1RPATH = NONE
-APP1STDLIBS = $(CPPUNITLIB) $(SALLIB)
-APP1TARGET = cppunittester
-
-.INCLUDE: target.mk
diff --git a/sal/inc/cppunittester/protectorfactory.hxx b/sal/inc/cppunittester/protectorfactory.hxx
deleted file mode 100644
index 916f89f74..000000000
--- a/sal/inc/cppunittester/protectorfactory.hxx
+++ /dev/null
@@ -1,51 +0,0 @@
-/*************************************************************************
-*
-* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-*
-* Copyright 2000, 2011 Oracle and/or its affiliates.
-*
-* OpenOffice.org - a multi-platform office productivity suite
-*
-* This file is part of OpenOffice.org.
-*
-* OpenOffice.org is free software: you can redistribute it and/or modify
-* it under the terms of the GNU Lesser General Public License version 3
-* only, as published by the Free Software Foundation.
-*
-* OpenOffice.org is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU Lesser General Public License version 3 for more details
-* (a copy is included in the LICENSE file that accompanied this code).
-*
-* You should have received a copy of the GNU Lesser General Public License
-* version 3 along with OpenOffice.org. If not, see
-* <http://www.openoffice.org/license.html>
-* for a copy of the LGPLv3 License.
-*
-************************************************************************/
-
-#ifndef INCLUDED_CPPUNITTESTER_PROTECTORFACTORY_HXX
-#define INCLUDED_CPPUNITTESTER_PROTECTORFACTORY_HXX
-
-#include "sal/config.h"
-
-#include "sal/types.h"
-
-#include <cppunit/Protector.h>
-
-namespace cppunittester
-{
- class LibreOfficeProtector : public CppUnit::Protector
- {
- public:
- virtual bool protect(CppUnit::Functor const & functor) = 0;
- using CppUnit::Protector::protect;
- };
-
- // The type of CppUnit::Protector factory functions that can be plugged into
- // cppunittester:
- extern "C" typedef LibreOfficeProtector * SAL_CALL ProtectorFactory();
-}
-
-#endif
diff --git a/sal/inc/internal/once.h b/sal/inc/internal/once.h
deleted file mode 100644
index 536ddb168..000000000
--- a/sal/inc/internal/once.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_SAL_INTERNAL_ONCE_H
-#define INCLUDED_SAL_INTERNAL_ONCE_H
-
-/** sal_once_type
- * (platform dependent)
- */
-
-#if defined(SAL_UNX)
-
-#include <pthread.h>
-
-typedef pthread_once_t sal_once_type;
-
-#define SAL_ONCE_INIT PTHREAD_ONCE_INIT
-#define SAL_ONCE(once, init) pthread_once((once), (init))
-
-#elif defined(SAL_W32)
-
-#define WIN32_LEAN_AND_MEAN
-#pragma warning(push,1) /* disable warnings within system headers */
-#include <windows.h>
-#pragma warning(pop)
-
-typedef struct sal_once_st sal_once_type;
-struct sal_once_st
-{
- LONG volatile m_done;
- LONG volatile m_lock;
-};
-
-#define SAL_ONCE_INIT { 0, 0 }
-#define SAL_ONCE(once, init) \
-{ \
- sal_once_type * control = (once); \
- if (!(control->m_done)) \
- { \
- while (InterlockedExchange(&(control->m_lock), 1) == 1) Sleep(0); \
- if (!(control->m_done)) \
- { \
- void (*init_routine)(void) = (init); \
- (*init_routine)(); \
- control->m_done = 1; \
- } \
- InterlockedExchange(&(control->m_lock), 0); \
- } \
-}
-
-#else
-#error Unknown platform
-#endif /* SAL_UNX | SAL_W32 */
-
-#endif /* INCLUDED_SAL_INTERNAL_ONCE_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/makefile.mk b/sal/inc/makefile.mk
deleted file mode 100644
index 19d6b36fe..000000000
--- a/sal/inc/makefile.mk
+++ /dev/null
@@ -1,47 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..
-
-PRJNAME=sal
-TARGET=inc
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Files --------------------------------------------------------
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
-.IF "$(ENABLE_PCH)"!=""
-ALLTAR : \
- $(SLO)$/precompiled.pch \
- $(SLO)$/precompiled_ex.pch
-
-.ENDIF # "$(ENABLE_PCH)"!=""
-
diff --git a/sal/inc/osl/armarch.h b/sal/inc/osl/armarch.h
deleted file mode 100644
index ab50f5bac..000000000
--- a/sal/inc/osl/armarch.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* -----------------------------------------------------------------------
- Copyright (c) 1998, 2008 Red Hat, Inc.
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-// shamelessly copied from libffi src/arm/sysv.h
-#ifndef _OSL_ARMARCH_H_
-#define _OSL_ARMARCH_H_
-#ifdef ARM
-
-#define __ARM_ARCH__ 3
-
-#if defined(__ARM_ARCH_4__) || defined(__ARM_ARCH_4T__)
-# undef __ARM_ARCH__
-# define __ARM_ARCH__ 4
-#endif
-
-#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) \
- || defined(__ARM_ARCH_5E__) || defined(__ARM_ARCH_5TE__) \
- || defined(__ARM_ARCH_5TEJ__)
-# undef __ARM_ARCH__
-# define __ARM_ARCH__ 5
-#endif
-
-#if defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) \
- || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) \
- || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) \
- || defined(__ARM_ARCH_6M__)
-# undef __ARM_ARCH__
-# define __ARM_ARCH__ 6
-#endif
-
-#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) \
- || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__)
-# undef __ARM_ARCH__
-# define __ARM_ARCH__ 7
-#endif
-
-#endif
-#endif
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/conditn.h b/sal/inc/osl/conditn.h
deleted file mode 100644
index b0b08409b..000000000
--- a/sal/inc/osl/conditn.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#ifndef _OSL_CONDITION_H_
-#define _OSL_CONDITION_H_
-
-#include <osl/time.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef void* oslCondition;
-
-typedef enum {
- osl_cond_result_ok, /* successful completion */
- osl_cond_result_error, /* error occurred, check osl_getLastSocketError() for details */
- osl_cond_result_timeout, /* blocking operation timed out */
- osl_cond_result_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-} oslConditionResult;
-
-/** Creates a condition.
- The condition is in the reset-state.
- @returns 0 if condition could not be created.
-*/
-oslCondition SAL_CALL osl_createCondition(void);
-
-/** Free the memory used by the condition.
- @param Condition the condition handle.
-*/
-void SAL_CALL osl_destroyCondition(oslCondition Condition);
-
-/** Sets condition to True => wait() will not block, check() returns True.
- NOTE: ALL threads waiting on this condition are unblocked!
- @param Condition handle to a created condition.
- @return False if system-call failed.
-*/
-sal_Bool SAL_CALL osl_setCondition(oslCondition Condition);
-
-/** Sets condition to False => wait() will block, check() returns False
- @param Condition handle to a created condition.
- @return False if system-call failed.
-*/
-sal_Bool SAL_CALL osl_resetCondition(oslCondition Condition);
-
-/** Blocks if condition is not set<BR>
- If condition has been destroyed prematurely, wait() will
- return with False.
- @param Condition handle to a created condition.
- @param pTimeout Tiemout value or NULL for infinite waiting
- @return False if system-call failed.
-*/
-oslConditionResult SAL_CALL osl_waitCondition(oslCondition Condition, const TimeValue* pTimeout);
-
-/** Queries the state of the condition without blocking.
- @param Condition handle to a created condition.
- @return True: condition is set. <BR>
- False: condition is not set. <BR>
-*/
-sal_Bool SAL_CALL osl_checkCondition(oslCondition Condition);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OSL_CONDITION_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/conditn.hxx b/sal/inc/osl/conditn.hxx
deleted file mode 100644
index 74f0d829d..000000000
--- a/sal/inc/osl/conditn.hxx
+++ /dev/null
@@ -1,130 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_CONDITN_HXX_
-#define _OSL_CONDITN_HXX_
-
-#ifdef __cplusplus
-
-#include <osl/time.h>
-
-#include <osl/conditn.h>
-
-
-namespace osl
-{
-
- class Condition
- {
- public:
-
- enum Result
- {
- result_ok = osl_cond_result_ok,
- result_error = osl_cond_result_error,
- result_timeout = osl_cond_result_timeout
- };
-
- /* Create a condition.
- */
- Condition()
- {
- condition = osl_createCondition();
- }
-
- /* Release the OS-structures and free condition data-structure.
- */
- ~Condition()
- {
- osl_destroyCondition(condition);
- }
-
- /* Release all waiting threads, check returns sal_True.
- */
- void set()
- {
- osl_setCondition(condition);
- }
-
- /* Reset condition to false: wait() will block, check() returns sal_False.
- */
- void reset() {
- osl_resetCondition(condition);
- }
-
- /** Blocks the calling thread until condition is set.
- */
- Result wait(const TimeValue *pTimeout = 0)
- {
- return (Result) osl_waitCondition(condition, pTimeout);
- }
-
- /** Checks if the condition is set without blocking.
- */
- sal_Bool check()
- {
- return osl_checkCondition(condition);
- }
-
-
- private:
- oslCondition condition;
-
- /** The underlying oslCondition has no reference count.
-
- Since the underlying oslCondition is not a reference counted object, copy
- constructed Condition may work on an already destructed oslCondition object.
-
- */
- Condition(const Condition&);
-
- /** The underlying oslCondition has no reference count.
-
- When destructed, the Condition object destroys the undelying oslCondition,
- which might cause severe problems in case it's a temporary object.
-
- */
- Condition(oslCondition condition);
-
- /** This assignment operator is private for the same reason as
- the copy constructor.
- */
- Condition& operator= (const Condition&);
-
- /** This assignment operator is private for the same reason as
- the constructor taking a oslCondition argument.
- */
- Condition& operator= (oslCondition);
- };
-
-}
-
-#endif /* __cplusplus */
-#endif /* _OSL_CONDITN_HXX_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/diagnose.h b/sal/inc/osl/diagnose.h
deleted file mode 100644
index 62e37f6b2..000000000
--- a/sal/inc/osl/diagnose.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#ifndef _OSL_DIAGNOSE_H_
-#define _OSL_DIAGNOSE_H_
-
-#include <sal/types.h>
-
-/** provides simple diagnostic support
-
- The functions defined in this header are not intended to be used directly,
- but through defined macros. The macros can be divided into three categories:
- assertions, traces and other stuff .-) Their usability depends on the value
- of OSL_DEBUG_LEVEL macro: assertions are only active if OSL_DEBUG_LEVEL is 1
- or greater, traces if OSL_DEBUG_LEVEL is 2 or greater.
-
- Assertions (cond is bool, msg is char*):
- OSL_ASSERT(cond)
- If cond is false, reports an error.
-
- OSL_ENSURE(cond, msg)
- If cond is false, reports an error with message msg.
-
- OSL_FAIL(msg)
- Reports an error with message msg unconditionally.
-
- OSL_PRECOND(cond, msg)
- OSL_POSTCOND(cond, msg)
- These two are functionally equivalent to OSL_ENSURE(cond, msg). They are
- intended to be used for checking pre- and postconditions of functions.
-
- Traces:
- OSL_TRACE(fmt, args...)
- Prints trace message. The arguments have the same meaning as the
- arguments of printf.
-
- Other:
- OSL_VERIFY(expr)
- Evaluates the expression and if it is false, reports an error. The
- expression is evaluated once without regard of the value of
- OSL_DEBUG_LEVEL.
-
- Example:
-
- void extractBool(Any const& rAny, bool& rBool)
- {
- OSL_VERIFY(rAny >>= rBool);
- }
-
- OSL_DEBUG_ONLY(expr)
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/* //////////////////////////////////////////////////////////////////////////
- Diagnostic support
-*/
-
-void SAL_CALL osl_breakDebug(void);
-sal_Bool SAL_CALL osl_assertFailedLine(const sal_Char* pszFileName, sal_Int32 nLine, const sal_Char* pszMessage);
-void SAL_CALL osl_trace(const sal_Char* pszFormat, ...);
-sal_Int32 SAL_CALL osl_reportError(sal_uInt32 nType, const sal_Char* pszErrorMessage);
-
-/*
- For message delivery
-*/
-
-/** a message delivery function which receives a pre-formatted message string
-*/
-typedef void (SAL_CALL *pfunc_osl_printDebugMessage)( const sal_Char * pszMessage );
-
-/** a message delivery function which receives detailed information about where the message was triggered
-*/
-typedef void (SAL_CALL *pfunc_osl_printDetailedDebugMessage)( const sal_Char * pszFileName, sal_Int32 nLine, const sal_Char* pszMessage );
-
-/** sets a message delivery function
-
- The function set here is ignored if a function for detailed message information
- (pfunc_osl_printDetailedDebugMessage) has been set.
-
- The given message handler must be able to cope with a <NULL/> message.
-*/
-pfunc_osl_printDebugMessage SAL_CALL osl_setDebugMessageFunc( pfunc_osl_printDebugMessage pNewFunc );
-
-/** sets a delivery function for detailed message information.
-
- The given message handler must be able to cope with a <NULL/> message.
-*/
-pfunc_osl_printDetailedDebugMessage SAL_CALL osl_setDetailedDebugMessageFunc( pfunc_osl_printDetailedDebugMessage pNewFunc );
-
-#ifdef __cplusplus
-}
-#endif
-
-#define OSL_THIS_FILE __FILE__
-
-/* the macro OSL_TO_STRING is intended to be an office internal macro for now */
-#define OSL_TO_STRING( x ) #x
-
-/* the macro OSL_MACRO_VALUE_TO_STRING is intended to be an office internal macro for now */
-#define OSL_MACRO_VALUE_TO_STRING( x ) OSL_TO_STRING( x )
-
-/* the macro OSL_LOG_PREFIX is intended to be an office internal macro for now */
-#define OSL_LOG_PREFIX OSL_THIS_FILE ":" OSL_MACRO_VALUE_TO_STRING( __LINE__ ) "; "
-
-#define OSL_DEBUG_ONLY(s) _OSL_DEBUG_ONLY(s)
-#define OSL_TRACE _OSL_TRACE
-#define OSL_ASSERT(c) _OSL_ENSURE(c, OSL_THIS_FILE, __LINE__, 0)
-#define OSL_ENSURE(c, m) _OSL_ENSURE(c, OSL_THIS_FILE, __LINE__, m)
-#define OSL_FAIL(m) _OSL_ENSURE(0, OSL_THIS_FILE, __LINE__, m)
-
-#define OSL_VERIFY(c) do { if (!(c)) OSL_ASSERT(0); } while (0)
-#define OSL_PRECOND(c, m) OSL_ENSURE(c, m)
-#define OSL_POSTCOND(c, m) OSL_ENSURE(c, m)
-
-
-#ifdef __cplusplus
-#define _OSL_GLOBAL ::
-#else
-#define _OSL_GLOBAL
-#endif /* __cplusplus */
-
-#if OSL_DEBUG_LEVEL > 0
-
-#define _OSL_DEBUG_ONLY(f) (f)
-#define _OSL_ENSURE(c, f, l, m) \
- do \
- { \
- if (!(c) && _OSL_GLOBAL osl_assertFailedLine(f, l, m)) \
- _OSL_GLOBAL osl_breakDebug(); \
- } while (0)
-
-#else
-
-#define _OSL_DEBUG_ONLY(f) ((void)0)
-#define _OSL_ENSURE(c, f, l, m) ((void)0)
-
-#endif /* OSL_DEBUG_LEVEL */
-
-#if OSL_DEBUG_LEVEL > 1
-
-#define _OSL_TRACE _OSL_GLOBAL osl_trace
-
-#else
-
-#define _OSL_TRACE 1 ? ((void)0) : _OSL_GLOBAL osl_trace
-
-#endif /* OSL_DEBUG_LEVEL */
-
-/* the macro OSL_THIS_FUNC is intended to be an office internal macro for now */
-/* copied from boost/current_function.hpp to make it usable from C
- * sources as well
- *
- * Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
- *
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt) */
-#if defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600))
-#define OSL_THIS_FUNC __PRETTY_FUNCTION__
-#elif defined(__DMC__) && (__DMC__ >= 0x810)
-#define OSL_THIS_FUNC __PRETTY_FUNCTION__
-#elif defined(__FUNCSIG__)
-#define OSL_THIS_FUNC __FUNCSIG__
-#elif (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 600)) || (defined(__IBMCPP__) && (__IBMCPP__ >= 500))
-#define OSL_THIS_FUNC __FUNCTION__
-#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
-#define OSL_THIS_FUNC __func__
-#else
-#define OSL_THIS_FUNC ""
-#endif
-
-#endif /* _OSL_DIAGNOSE_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/diagnose.hxx b/sal/inc/osl/diagnose.hxx
deleted file mode 100644
index 211eb502f..000000000
--- a/sal/inc/osl/diagnose.hxx
+++ /dev/null
@@ -1,207 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#if ! defined(OSL_DIAGNOSE_HXX_INCLUDED)
-#define OSL_DIAGNOSE_HXX_INCLUDED
-
-#if ! defined(_OSL_DIAGNOSE_H_)
-#include "osl/diagnose.h"
-#endif
-#if ! defined(_OSL_INTERLOCK_H_)
-#include "osl/interlck.h"
-#endif
-#if ! defined(_OSL_MUTEX_HXX_)
-#include "osl/mutex.hxx"
-#endif
-#if ! defined(INCLUDED_RTL_ALLOCATOR_HXX)
-#include "rtl/allocator.hxx"
-#endif
-#if ! defined(_RTL_INSTANCE_HXX_)
-#include "rtl/instance.hxx"
-#endif
-#include <boost/unordered_set.hpp>
-#include <functional>
-#include <typeinfo>
-
-namespace osl {
-/// @internal
-namespace detail {
-
-struct ObjectRegistryData;
-
-} // namespace detail
-} // namespace osl
-
-extern "C" {
-
-/** @internal */
-bool SAL_CALL osl_detail_ObjectRegistry_storeAddresses( char const* pName )
- SAL_THROW_EXTERN_C();
-
-/** @internal */
-bool SAL_CALL osl_detail_ObjectRegistry_checkObjectCount(
- ::osl::detail::ObjectRegistryData const& rData, ::std::size_t nExpected )
- SAL_THROW_EXTERN_C();
-
-/** @internal */
-void SAL_CALL osl_detail_ObjectRegistry_registerObject(
- ::osl::detail::ObjectRegistryData & rData, void const* pObj )
- SAL_THROW_EXTERN_C();
-
-/** @internal */
-void SAL_CALL osl_detail_ObjectRegistry_revokeObject(
- ::osl::detail::ObjectRegistryData & rData, void const* pObj )
- SAL_THROW_EXTERN_C();
-
-/** @internal */
-::osl::Mutex & SAL_CALL osl_detail_ObjectRegistry_getMutex()
- SAL_THROW_EXTERN_C();
-
-} // extern "C"
-
-namespace osl {
-
-/// @internal
-namespace detail {
-
-struct VoidPtrHash : ::std::unary_function<void const*, ::std::size_t> {
- ::std::size_t operator()( void const* p ) const {
- ::std::size_t const d = static_cast< ::std::size_t >(
- reinterpret_cast< ::std::ptrdiff_t >(p) );
- return d + (d >> 3);
- }
-};
-
-typedef ::boost::unordered_set<void const*, VoidPtrHash, ::std::equal_to<void const*>,
- ::rtl::Allocator<void const*> > VoidPointerSet;
-
-struct ObjectRegistryData {
- ObjectRegistryData( ::std::type_info const& rTypeInfo )
- : m_pName(rTypeInfo.name()), m_nCount(0), m_addresses(),
- m_bStoreAddresses(osl_detail_ObjectRegistry_storeAddresses(m_pName)){}
-
- char const* const m_pName;
- oslInterlockedCount m_nCount;
- VoidPointerSet m_addresses;
- bool const m_bStoreAddresses;
-};
-
-template <typename T>
-class ObjectRegistry
-{
-public:
- ObjectRegistry() : m_data( typeid(T) ) {}
- ~ObjectRegistry() { checkObjectCount(0); }
-
- bool checkObjectCount( ::std::size_t nExpected ) const {
- bool const bRet = osl_detail_ObjectRegistry_checkObjectCount(
- m_data, nExpected );
- if (!bRet && m_data.m_bStoreAddresses) {
- MutexGuard const guard( osl_detail_ObjectRegistry_getMutex() );
- // following loop is for debugging purposes, iterating over map:
- VoidPointerSet::const_iterator iPos(m_data.m_addresses.begin());
- VoidPointerSet::const_iterator const iEnd(m_data.m_addresses.end());
- for ( ; iPos != iEnd; ++iPos ) {
- OSL_ASSERT( *iPos != 0 );
- }
- }
- return bRet;
- }
-
- void registerObject( void const* pObj ) {
- osl_detail_ObjectRegistry_registerObject(m_data, pObj);
- }
-
- void revokeObject( void const* pObj ) {
- osl_detail_ObjectRegistry_revokeObject(m_data, pObj);
- }
-
-private:
- // not impl:
- ObjectRegistry( ObjectRegistry const& );
- ObjectRegistry const& operator=( ObjectRegistry const& );
-
- ObjectRegistryData m_data;
-};
-
-} // namespace detail
-
-/** Helper class which indicates leaking object(s) of a particular class in
- non-pro builds; use e.g.
-
- <pre>
- class MyClass : private osl::DebugBase<MyClass> {...};
- </pre>
-
- Using the environment variable
-
- OSL_DEBUGBASE_STORE_ADDRESSES=MyClass;YourClass;...
-
- you can specify a ';'-separated list of strings matching to class names
- (or "all" for all classes), for which DebugBase stores addresses to created
- objects instead of just counting them. This enables you to iterate over
- leaking objects in your debugger.
-
- @tpl InheritingClassT binds the template instance to that class
- @internal Use at own risk.
- For now this is just public (yet unpublished) API and may change
- in the future!
-*/
-template <typename InheritingClassT>
-class DebugBase
-{
-public:
-#if OSL_DEBUG_LEVEL <= 0
- static bool checkObjectCount( ::std::size_t = 0 ) { return true; }
-#else // OSL_DEBUG_LEVEL > 0
- /** @return whether the expected number of objects is alive,
- else this function OSL_ASSERTs
- */
- static bool checkObjectCount( ::std::size_t nExpected = 0 ) {
- return StaticObjectRegistry::get().checkObjectCount(nExpected);
- }
-
-protected:
- DebugBase() {
- StaticObjectRegistry::get().registerObject( this );
- }
- ~DebugBase() {
- StaticObjectRegistry::get().revokeObject( this );
- }
-
-private:
- struct StaticObjectRegistry
- : ::rtl::Static<detail::ObjectRegistry<InheritingClassT>,
- StaticObjectRegistry> {};
-#endif
-};
-
-} // namespace osl
-
-#endif // ! defined(OSL_DIAGNOSE_HXX_INCLUDED)
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/doublecheckedlocking.h b/sal/inc/osl/doublecheckedlocking.h
deleted file mode 100644
index 08ef81275..000000000
--- a/sal/inc/osl/doublecheckedlocking.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#if !defined INCLUDED_OSL_DOUBLECHECKEDLOCKING_H
-#define INCLUDED_OSL_DOUBLECHECKEDLOCKING_H
-
-#if defined __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/** A platform specific macro needed to make double-checked locking work.
-
- See
- <http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html>
- for a description of double-checked locking, why it is broken, and how it
- can be fixed. On platforms where it is necessary, this macro will expand
- to some memory barrier instruction. On many platforms, double-checked
- locking works as it is, though, so on those platforms this macro will be
- empty. This is a macro instead of a (C++ inline) function to allow for
- maximum performance in both C and C++.
-
- If possible, use the rtl_Instance template instead of explicitly spelling
- out the double-checked locking pattern. There are few cases where you
- will have to spell it out explicitly (e.g., the logic of a certain
- instance of the pattern is too complex to be mapped to the template, or
- some compiler refuses to compile a template instantiation due to internal
- compiler errors), though, and you should always call this macro at the
- right places then:
-
- static T * pInstance = 0;
-
- T * p = pInstance;
- if (!p)
- {
- Guard aGuard(aMutex);
- p = pInstance;
- if (!p)
- {
- p = ...;
- OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
- pInstance = p;
- }
- }
- else
- OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
- return p;
-
- One extra advantage of this macro is that it makes it easier to find all
- places where double-checked locking is used.
- */
-#define OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER() /* empty */
-
-#if defined __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* INCLUDED_OSL_DOUBLECHECKEDLOCKING_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/endian.h b/sal/inc/osl/endian.h
deleted file mode 100644
index 3d9bba828..000000000
--- a/sal/inc/osl/endian.h
+++ /dev/null
@@ -1,256 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_ENDIAN_H_
-#define _OSL_ENDIAN_H_
-
-#include <sal/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** Determine the platform byte order as _BIG_ENDIAN, _LITTLE_ENDIAN, ...
- */
-#ifdef _WIN32
-# if defined(_M_IX86)
-# define _LITTLE_ENDIAN
-# elif defined(_M_AMD64)
-# define _LITTLE_ENDIAN
-# elif defined(_M_MRX000)
-# define _LITTLE_ENDIAN
-# elif defined(_M_ALPHA)
-# define _LITTLE_ENDIAN
-# elif defined(_M_PPC)
-# define _LITTLE_ENDIAN
-# endif
-#endif
-
-#ifdef LINUX
-# include <endian.h>
-# if __BYTE_ORDER == __LITTLE_ENDIAN
-# ifndef _LITTLE_ENDIAN
-# define _LITTLE_ENDIAN
-# endif
-# elif __BYTE_ORDER == __BIG_ENDIAN
-# ifndef _BIG_ENDIAN
-# define _BIG_ENDIAN
-# endif
-# elif __BYTE_ORDER == __PDP_ENDIAN
-# define _PDP_ENDIAN
-# endif
-#endif
-
-#ifdef ANDROID
-# include <endian.h>
-# if __BYTE_ORDER == __LITTLE_ENDIAN
-# ifndef _LITTLE_ENDIAN
-# define _LITTLE_ENDIAN
-# endif
-# elif __BYTE_ORDER == __BIG_ENDIAN
-# ifndef _BIG_ENDIAN
-# define _BIG_ENDIAN
-# endif
-# elif __BYTE_ORDER == __PDP_ENDIAN
-# define _PDP_ENDIAN
-# endif
-#endif
-
-#ifdef NETBSD
-# include <machine/endian.h>
-# if BYTE_ORDER == LITTLE_ENDIAN
-# undef _BIG_ENDIAN
-# undef _PDP_ENDIAN
-# elif BYTE_ORDER == BIG_ENDIAN
-# undef _LITTLE_ENDIAN
-# undef _PDP_ENDIAN
-# elif BYTE_ORDER == PDP_ENDIAN
-# undef _LITTLE_ENDIAN
-# undef _BIG_ENDIAN
-# endif
-#endif
-
-#ifdef FREEBSD
-# include <sys/param.h>
-# include <machine/endian.h>
-#if __FreeBSD_version < 500000
-# if BYTE_ORDER == LITTLE_ENDIAN
-# define _LITTLE_ENDIAN
-# elif BYTE_ORDER == BIG_ENDIAN
-# define _BIG_ENDIAN
-# elif BYTE_ORDER == PDP_ENDIAN
-# define _PDP_ENDIAN
-# endif
-#endif
-#endif
-
-#ifdef AIX
-# include <sys/machine.h>
-# if BYTE_ORDER == LITTLE_ENDIAN
-# ifndef _LITTLE_ENDIAN
-# define _LITTLE_ENDIAN
-# endif
-# elif BYTE_ORDER == BIG_ENDIAN
-# ifndef _BIG_ENDIAN
-# define _BIG_ENDIAN
-# endif
-# elif BYTE_ORDER == PDP_ENDIAN
-# define _PDP_ENDIAN
-# endif
-#endif
-
-#ifdef SOLARIS
-# include <sys/isa_defs.h>
-#endif
-
-#ifdef MACOSX
-# include <machine/endian.h>
-# if BYTE_ORDER == LITTLE_ENDIAN
-# ifndef _LITTLE_ENDIAN
-# define _LITTLE_ENDIAN
-# endif
-# elif BYTE_ORDER == BIG_ENDIAN
-# ifndef _BIG_ENDIAN
-# define _BIG_ENDIAN
-# endif
-# elif BYTE_ORDER == PDP_ENDIAN
-# ifndef _PDP_ENDIAN
-# define _PDP_ENDIAN
-# endif
-# endif
-#endif
-
-#ifdef IOS
-# include <machine/endian.h>
-# if BYTE_ORDER == LITTLE_ENDIAN
-# ifndef _LITTLE_ENDIAN
-# define _LITTLE_ENDIAN
-# endif
-# elif BYTE_ORDER == BIG_ENDIAN
-# ifndef _BIG_ENDIAN
-# define _BIG_ENDIAN
-# endif
-# elif BYTE_ORDER == PDP_ENDIAN
-# ifndef _PDP_ENDIAN
-# define _PDP_ENDIAN
-# endif
-# endif
-#endif
-
-/** Check supported platform.
- */
-#if !defined(_WIN32) && \
- !defined(LINUX) && !defined(NETBSD) && \
- !defined(AIX) && !defined(OPENBSD) && \
- !defined(SOLARIS) && !defined(MACOSX) && !defined(FREEBSD) && \
- !defined(DRAGONFLY) && \
- !defined(IOS) && !defined(ANDROID)
-# error "Target platform not specified !"
-#endif
-
-
-/** Define the determined byte order as OSL_BIGENDIAN or OSL_LITENDIAN.
- */
-#if defined _LITTLE_ENDIAN
-# define OSL_LITENDIAN
-#elif defined _BIG_ENDIAN
-# define OSL_BIGENDIAN
-#else
-# error undetermined endianess
-#endif
-
-
-/** Define macros for byte order manipulation.
- */
-#ifndef OSL_MAKEBYTE
-# define OSL_MAKEBYTE(nl, nh) ((sal_uInt8)(((nl) & 0x0F) | (((nh) & 0x0F) << 4)))
-#endif
-#ifndef OSL_LONIBBLE
-# define OSL_LONIBBLE(b) ((sal_uInt8)((b) & 0x0F))
-#endif
-#ifndef OSL_HINIBBLE
-# define OSL_HINIBBLE(b) ((sal_uInt8)(((b) >> 4) & 0x0F))
-#endif
-
-#ifndef OSL_MAKEWORD
-# define OSL_MAKEWORD(bl, bh) ((sal_uInt16)((bl) & 0xFF) | (((sal_uInt16)(bh) & 0xFF) << 8))
-#endif
-#ifndef OSL_LOBYTE
-# define OSL_LOBYTE(w) ((sal_uInt8)((sal_uInt16)(w) & 0xFF))
-#endif
-#ifndef OSL_HIBYTE
-# define OSL_HIBYTE(w) ((sal_uInt8)(((sal_uInt16)(w) >> 8) & 0xFF))
-#endif
-
-#ifndef OSL_MAKEDWORD
-# define OSL_MAKEDWORD(wl, wh) ((sal_uInt32)((wl) & 0xFFFF) | (((sal_uInt32)(wh) & 0xFFFF) << 16))
-#endif
-#ifndef OSL_LOWORD
-# define OSL_LOWORD(d) ((sal_uInt16)((sal_uInt32)(d) & 0xFFFF))
-#endif
-#ifndef OSL_HIWORD
-# define OSL_HIWORD(d) ((sal_uInt16)(((sal_uInt32)(d) >> 16) & 0xFFFF))
-#endif
-
-
-/** Define macros for swapping between host and network byte order.
- */
-#ifdef OSL_BIGENDIAN
-#ifndef OSL_NETWORD
-# define OSL_NETWORD(w) (sal_uInt16)(w)
-#endif
-#ifndef OSL_NETDWORD
-# define OSL_NETDWORD(d) (sal_uInt32)(d)
-#endif
-#else /* OSL_LITENDIAN */
-#ifndef OSL_NETWORD
-# define OSL_NETWORD(w) OSL_MAKEWORD(OSL_HIBYTE(w),OSL_LOBYTE(w))
-#endif
-#ifndef OSL_NETDWORD
-# define OSL_NETDWORD(d) OSL_MAKEDWORD(OSL_NETWORD(OSL_HIWORD(d)),OSL_NETWORD(OSL_LOWORD(d)))
-#endif
-#endif /* OSL_BIGENDIAN */
-
-
-/** Define macros for swapping between byte orders.
- */
-#ifndef OSL_SWAPWORD
-# define OSL_SWAPWORD(w) OSL_MAKEWORD(OSL_HIBYTE(w),OSL_LOBYTE(w))
-#endif
-#ifndef OSL_SWAPDWORD
-# define OSL_SWAPDWORD(d) OSL_MAKEDWORD(OSL_SWAPWORD(OSL_HIWORD(d)),OSL_SWAPWORD(OSL_LOWORD(d)))
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /*_OSL_ENDIAN_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/file.h b/sal/inc/osl/file.h
deleted file mode 100644
index b90ea3548..000000000
--- a/sal/inc/osl/file.h
+++ /dev/null
@@ -1,1595 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/** @HTML */
-
-#ifndef _OSL_FILE_H_
-#define _OSL_FILE_H_
-
-#include <osl/time.h>
-# include <rtl/ustring.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** @file
-
-Main goals and usage hints
-
-The main intentention of this interface is to provide an universal portable and
-high performance access to file system issues on any operating system.<p>
-
-There are a few main goals:<p>
-
-1.The path specifications always has to be absolut. Any usage of relative path
-specifications is forbidden. Exceptions are <code>osl_getSystemPathFromFileURL</code>,
-<code>osl_getFileURLFromSystemPath</code> and <code>osl_getAbsoluteFileURL</code>. Most operating systems
-provide a "Current Directory" per process. This is the reason why relative path
-specifications can cause problems in multithreading environments.<p>
-
-2.Proprietary notations of file paths are not supported. Every path notation
-must the file URL specification. File URLs must be encoded in UTF8 and
-after that escaped. Although the URL parameter is a unicode string, the must
-contain only ASCII characters<p>
-
-3.The caller cannot get any information whether a file system is case sensitive,
-case preserving or not. The operating system implementation itself should
-determine if it can map case-insensitive paths. The case correct notation of
-a filename or file path is part of the "File Info". This case correct name
-can be used as a unique key if neccessary.<p>
-
-4. Obtaining information about files or volumes is controlled by a
-bitmask which specifies which fields are of interest. Due to performance
-issues it is not recommended to obtain information which is not needed.
-But if the operating system provides more information anyway the
-implementation can set more fields on output as were requested. It is in the
-responsibility of the caller to decide if he uses this additional information
-or not. But he should do so to prevent further unnecessary calls if the information
-is already there.<br>
-
-The input bitmask supports a flag <code>osl_FileStatus_Mask_Validate</code> which
-can be used to force retrieving uncached validated information. Setting this flag
-when calling <code>osl_getFileStatus</code> in combination with no other flag is
-a synonym for a "FileExists". This should only be done when processing a single file
-(f.e. before opening) and NEVER during enumeration of directory contents on any step
-of information processing. This would change the runtime behaviour from O(n) to
-O(n*n/2) on nearly every file system.<br>
-On Windows NT reading the contents of an directory with 7000 entries and
-getting full information about every file only takes 0.6 seconds. Specifying the
-flag <code>osl_FileStatus_Mask_Validate</code> for each entry will increase the
-time to 180 seconds (!!!).
-
-*/
-
-
-
-/* Error codes according to errno */
-
-typedef enum {
- osl_File_E_None,
- osl_File_E_PERM,
- osl_File_E_NOENT,
- osl_File_E_SRCH,
- osl_File_E_INTR,
- osl_File_E_IO,
- osl_File_E_NXIO,
- osl_File_E_2BIG,
- osl_File_E_NOEXEC,
- osl_File_E_BADF,
- osl_File_E_CHILD,
- osl_File_E_AGAIN,
- osl_File_E_NOMEM,
- osl_File_E_ACCES,
- osl_File_E_FAULT,
- osl_File_E_BUSY,
- osl_File_E_EXIST,
- osl_File_E_XDEV,
- osl_File_E_NODEV,
- osl_File_E_NOTDIR,
- osl_File_E_ISDIR,
- osl_File_E_INVAL,
- osl_File_E_NFILE,
- osl_File_E_MFILE,
- osl_File_E_NOTTY,
- osl_File_E_FBIG,
- osl_File_E_NOSPC,
- osl_File_E_SPIPE,
- osl_File_E_ROFS,
- osl_File_E_MLINK,
- osl_File_E_PIPE,
- osl_File_E_DOM,
- osl_File_E_RANGE,
- osl_File_E_DEADLK,
- osl_File_E_NAMETOOLONG,
- osl_File_E_NOLCK,
- osl_File_E_NOSYS,
- osl_File_E_NOTEMPTY,
- osl_File_E_LOOP,
- osl_File_E_ILSEQ,
- osl_File_E_NOLINK,
- osl_File_E_MULTIHOP,
- osl_File_E_USERS,
- osl_File_E_OVERFLOW,
- osl_File_E_NOTREADY,
- osl_File_E_invalidError, /* unmapped error: always last entry in enum! */
- osl_File_E_TIMEDOUT,
- osl_File_E_NETWORK,
- osl_File_E_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-} oslFileError;
-
-typedef void *oslDirectory;
-typedef void *oslDirectoryItem;
-
-
-/** Open a directory for enumerating its contents.
-
- @param pustrDirectoryURL [in]
- The full qualified URL of the directory.
-
- @param pDirectory [out]
- On success it receives a handle used for subsequent calls by osl_getNextDirectoryItem().
- The handle has to be released by a call to osl_closeDirectory().
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_NOENT the specified path doesn't exist<br>
- osl_File_E_NOTDIR the specified path is not an directory <br>
- osl_File_E_NOMEM not enough memory for allocating structures <br>
- osl_File_E_ACCES permission denied<br>
- osl_File_E_MFILE too many open files used by the process<br>
- osl_File_E_NFILE too many open files in the system<br>
- osl_File_E_NAMETOOLONG File name too long<br>
- osl_File_E_LOOP Too many symbolic links encountered<p>
-
- @see osl_getNextDirectoryItem()
- @see osl_closeDirectory()
-*/
-
-oslFileError SAL_CALL osl_openDirectory( rtl_uString *pustrDirectoryURL, oslDirectory *pDirectory);
-
-
-/** Retrieve the next item of a previously opened directory.
-
- Retrieves the next item of a previously opened directory.
- All handles have an initial refcount of 1.
-
- @param Directory [in]
- A directory handle received from a previous call to osl_openDirectory().
-
- @param pItem [out]
- On success it receives a handle that can be used for subsequent calls to osl_getFileStatus().
- The handle has to be released by a call to osl_releaseDirectoryItem().
-
- @param uHint [in]
- With this parameter the caller can tell the implementation that (s)he
- is going to call this function uHint times afterwards. This enables the implementation to
- get the information for more than one file and cache it until the next calls.
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_NOMEM not enough memory for allocating structures <br>
- osl_File_E_NOENT no more entries in this directory<br>
- osl_File_E_BADF invalid oslDirectory parameter<br>
- osl_File_E_OVERFLOW the value too large for defined data type
-
- @see osl_releaseDirectoryItem()
- @see osl_acquireDirectoryItem()
- @see osl_getDirectoryItem()
- @see osl_getFileStatus()
-*/
-
-oslFileError SAL_CALL osl_getNextDirectoryItem(
- oslDirectory Directory,
- oslDirectoryItem *pItem,
- sal_uInt32 uHint
- );
-
-
-/** Release a directory handle.
-
- @param Directory [in]
- A handle received by a call to osl_openDirectory().
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_NOMEM not enough memory for allocating structures<br>
- osl_File_E_BADF invalid oslDirectory parameter<br>
- osl_File_E_INTR the function call was interrupted<p>
-
- @see osl_openDirectory()
-*/
-
-oslFileError SAL_CALL osl_closeDirectory(oslDirectory Directory);
-
-
-/** Retrieve a single directory item.
-
- Retrieves a single directory item. The returned handle has an initial refcount of 1.
- Due to performance issues it is not recommended to use this function while
- enumerating the contents of a directory. In this case use osl_getNextDirectoryItem() instead.
-
- @param pustrFileURL [in]
- An absolute file URL.
-
- @param pItem [out]
- On success it receives a handle which can be used for subsequent calls to osl_getFileStatus().
- The handle has to be released by a call to osl_releaseDirectoryItem().
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_NOMEM not enough memory for allocating structures <br>
- osl_File_E_ACCES permission denied<br>
- osl_File_E_MFILE too many open files used by the process<br>
- osl_File_E_NFILE too many open files in the system<br>
- osl_File_E_NOENT no such file or directory<br>
- osl_File_E_LOOP too many symbolic links encountered<br>
- osl_File_E_NAMETOOLONG the file name is too long<br>
- osl_File_E_NOTDIR a component of the path prefix of path is not a directory<br>
- osl_File_E_IO on I/O errors<br>
- osl_File_E_MULTIHOP multihop attempted<br>
- osl_File_E_NOLINK link has been severed<br>
- osl_File_E_FAULT bad address<br>
- osl_File_E_INTR the function call was interrupted<p>
-
- @see osl_releaseDirectoryItem()
- @see osl_acquireDirectoryItem()
- @see osl_getFileStatus()
- @see osl_getNextDirectoryItem()
-*/
-
-oslFileError SAL_CALL osl_getDirectoryItem(
- rtl_uString *pustrFileURL,
- oslDirectoryItem *pItem
- );
-
-
-/** Increase the refcount of a directory item handle.
-
- The caller responsible for releasing the directory item handle using osl_releaseDirectoryItem().
-
- @param Item [in]
- A handle received by a call to osl_getDirectoryItem() or osl_getNextDirectoryItem().
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_NOMEM not enough memory for allocating structures<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
-
- @see osl_getDirectoryItem()
- @see osl_getNextDirectoryItem()
- @see osl_releaseDirectoryItem()
-*/
-
-oslFileError SAL_CALL osl_acquireDirectoryItem( oslDirectoryItem Item );
-
-
-/** Decrease the refcount of a directory item handle.
-
- Decreases the refcount of a directory item handle.
- If the refcount reaches 0 the data associated with
- this directory item handle will be released.
-
- @param Item [in]
- A handle received by a call to osl_getDirectoryItem() or osl_getNextDirectoryItem().
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_NOMEM not enough memory for allocating structures<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
-
- @see osl_getDirectoryItem()
- @see osl_getNextDirectoryItem()
- @see osl_acquireDirectoryItem()
-*/
-
-oslFileError SAL_CALL osl_releaseDirectoryItem( oslDirectoryItem Item );
-
-/* File types */
-
-typedef enum {
- osl_File_Type_Directory,
- osl_File_Type_Volume,
- osl_File_Type_Regular,
- osl_File_Type_Fifo,
- osl_File_Type_Socket,
- osl_File_Type_Link,
- osl_File_Type_Special,
- osl_File_Type_Unknown
-} oslFileType;
-
-/* File attributes */
-#define osl_File_Attribute_ReadOnly 0x00000001
-#define osl_File_Attribute_Hidden 0x00000002
-#define osl_File_Attribute_Executable 0x00000010
-#define osl_File_Attribute_GrpWrite 0x00000020
-#define osl_File_Attribute_GrpRead 0x00000040
-#define osl_File_Attribute_GrpExe 0x00000080
-#define osl_File_Attribute_OwnWrite 0x00000100
-#define osl_File_Attribute_OwnRead 0x00000200
-#define osl_File_Attribute_OwnExe 0x00000400
-#define osl_File_Attribute_OthWrite 0x00000800
-#define osl_File_Attribute_OthRead 0x00001000
-#define osl_File_Attribute_OthExe 0x00002000
-
-/* Flags specifying which fields to retreive by osl_getFileStatus */
-
-#define osl_FileStatus_Mask_Type 0x00000001
-#define osl_FileStatus_Mask_Attributes 0x00000002
-#define osl_FileStatus_Mask_CreationTime 0x00000010
-#define osl_FileStatus_Mask_AccessTime 0x00000020
-#define osl_FileStatus_Mask_ModifyTime 0x00000040
-#define osl_FileStatus_Mask_FileSize 0x00000080
-#define osl_FileStatus_Mask_FileName 0x00000100
-#define osl_FileStatus_Mask_FileURL 0x00000200
-#define osl_FileStatus_Mask_LinkTargetURL 0x00000400
-#define osl_FileStatus_Mask_All 0x7FFFFFFF
-#define osl_FileStatus_Mask_Validate 0x80000000
-
-
-typedef
-
-/** Structure containing information about files and directories
-
- @see osl_getFileStatus()
- @see oslFileType
-*/
-
-struct _oslFileStatus {
-/** Must be initialized with the size in bytes of the structure before passing it to any function */
- sal_uInt32 uStructSize;
-/** Determines which members of the structure contain valid data */
- sal_uInt32 uValidFields;
-/** The type of the file (file, directory, volume). */
- oslFileType eType;
-/** File attributes */
- sal_uInt64 uAttributes;
-/** First creation time in nanoseconds since 1/1/1970. Can be the last modify time depending on
- platform or file system. */
- TimeValue aCreationTime;
-/** Last access time in nanoseconds since 1/1/1970. Can be the last modify time depending on
- platform or file system. */
- TimeValue aAccessTime;
-/** Last modify time in nanoseconds since 1/1/1970. */
- TimeValue aModifyTime;
-/** Size in bytes of the file. Zero for directories and volumes. */
- sal_uInt64 uFileSize;
-/** Case correct name of the file. Should be set to zero before calling <code>osl_getFileStatus</code>
- and released after usage. */
- rtl_uString *ustrFileName;
-/** Full URL of the file. Should be set to zero before calling <code>osl_getFileStatus</code>
- and released after usage. */
- rtl_uString *ustrFileURL;
-/** Full URL of the target file if the file itself is a link.
- Should be set to zero before calling <code>osl_getFileStatus</code>
- and released after usage. */
- rtl_uString *ustrLinkTargetURL;
-} oslFileStatus;
-
-
-/** Retrieve information about a single file or directory.
-
- @param Item [in]
- A handle received by a previous call to osl_getDirectoryItem() or osl_getNextDirectoryItem().
-
- @param pStatus [in|out]
- Points to a structure which receives the information of the file or directory
- represented by the handle Item. The member uStructSize has to be initialized to
- sizeof(oslFileStatus) before calling this function.
-
- @param uFieldMask [in]
- Specifies which fields of the structure pointed to by pStatus are of interest to the caller.
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_NOMEM not enough memory for allocating structures <br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_LOOP too many symbolic links encountered<br>
- osl_File_E_ACCES permission denied<br>
- osl_File_E_NOENT no such file or directory<br>
- osl_File_E_NAMETOOLONG file name too long<br>
- osl_File_E_BADF invalid oslDirectoryItem parameter<br>
- osl_File_E_FAULT bad address<br>
- osl_File_E_OVERFLOW value too large for defined data type<br>
- osl_File_E_INTR function call was interrupted<br>
- osl_File_E_NOLINK link has been severed<br>
- osl_File_E_MULTIHOP components of path require hopping to multiple remote machines and the file system does not allow it<br>
- osl_File_E_MFILE too many open files used by the process<br>
- osl_File_E_NFILE too many open files in the system<br>
- osl_File_E_NOSPC no space left on device<br>
- osl_File_E_NXIO no such device or address<br>
- osl_File_E_IO on I/O errors<br>
- osl_File_E_NOSYS function not implemented<p>
-
- @see osl_getDirectoryItem()
- @see osl_getNextDirectoryItem()
- @see oslFileStatus
-*/
-
-oslFileError SAL_CALL osl_getFileStatus( oslDirectoryItem Item, oslFileStatus *pStatus, sal_uInt32 uFieldMask );
-
-
-typedef void *oslVolumeDeviceHandle;
-
-
-/** Unmount a volume device.
-
- Unmount the volume specified by the given oslVolumeDeviceHandle.
-
- @param Handle [in]
- An oslVolumeDeviceHandle received by a call to osl_getVolumeInformation().
-
- @return
- osl_File_E_None on success<br>
-
- @todo
- specify all error codes that may be returned
-
- @see osl_getVolumeInformation()
-*/
-
-oslFileError SAL_CALL osl_unmountVolumeDevice( oslVolumeDeviceHandle Handle );
-
-
-/** Automount a volume device.
-
- Automount the volume device specified by the given oslVolumeDeviceHandle.
-
- @param Handle [in]
- An oslVolumeDeviceHandle received by a call to osl_getVolumeInformation().
-
- @return
- osl_File_E_None on success<br>
-
- @todo
- specify all error codes that may be returned
-
- @see osl_getVolumeInformation()
-*/
-
-oslFileError SAL_CALL osl_automountVolumeDevice( oslVolumeDeviceHandle Handle );
-
-
-/** Release a volume device handle.
-
- Releases the given oslVolumeDeviceHandle which was acquired by a call to
- osl_getVolumeInformation() or osl_acquireVolumeDeviceHandle().
-
- @param Handle [in]
- An oslVolumeDeviceHandle received by a call to osl_getVolumeInformation().
-
- @return
- osl_File_E_None on success<br>
-
- @todo
- specify all error codes that may be returned
-
- @see osl_acquireVolumeDeviceHandle()
- @see osl_getVolumeInformation()
-*/
-
-oslFileError SAL_CALL osl_releaseVolumeDeviceHandle( oslVolumeDeviceHandle Handle );
-
-/** Acquire a volume device handle.
-
- Acquires the given oslVolumeDeviceHandle which was acquired by a call to
- osl_getVolumeInformation(). The caller is responsible for releasing the
- acquired handle by calling osl_releaseVolumeDeviceHandle().
-
- @param Handle [in]
- An oslVolumeDeviceHandle received by a call to osl_getVolumeInformation().
-
- @return
- osl_File_E_None on success<br>
-
- @todo
- specify all error codes that may be returned
-
- @see osl_getVolumeInformation()
-*/
-
-oslFileError SAL_CALL osl_acquireVolumeDeviceHandle( oslVolumeDeviceHandle Handle );
-
-
-/** Get the full qualified URL where a device is mounted to.
-
- @param Handle [in]
- An oslVolumeDeviceHandle received by a call to osl_getVolumeInformation().
-
- @param ppustrDirectoryURL [out]
- Receives the full qualified URL where the device is mounted to.
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_NOMEM not enough memory for allocating structures <br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_ACCES permission denied<br>
- osl_File_E_NXIO no such device or address<br>
- osl_File_E_NODEV no such device<br>
- osl_File_E_NOENT no such file or directory<br>
- osl_File_E_FAULT bad address<br>
- osl_FilE_E_INTR function call was interrupted<br>
- osl_File_E_IO on I/O errors<br>
- osl_File_E_MULTIHOP multihop attempted<br>
- osl_File_E_NOLINK link has been severed<br>
- osl_File_E_EOVERFLOW value too large for defined data type<br>
-
- @see osl_getVolumeInformation()
- @see osl_automountVolumeDevice()
- @see osl_unmountVolumeDevice()
-*/
-
-oslFileError SAL_CALL osl_getVolumeDeviceMountPath( oslVolumeDeviceHandle Handle, rtl_uString **ppustrDirectoryURL);
-
-/* Volume attributes */
-
-#define osl_Volume_Attribute_Removeable 0x00000001L
-#define osl_Volume_Attribute_Remote 0x00000002L
-#define osl_Volume_Attribute_CompactDisc 0x00000004L
-#define osl_Volume_Attribute_FixedDisk 0x00000008L
-#define osl_Volume_Attribute_RAMDisk 0x00000010L
-#define osl_Volume_Attribute_FloppyDisk 0x00000020L
-
-#define osl_Volume_Attribute_Case_Is_Preserved 0x00000040L
-#define osl_Volume_Attribute_Case_Sensitive 0x00000080L
-
-/* Flags specifying which fields to retreive by osl_getVolumeInfo */
-
-#define osl_VolumeInfo_Mask_Attributes 0x00000001L
-#define osl_VolumeInfo_Mask_TotalSpace 0x00000002L
-#define osl_VolumeInfo_Mask_UsedSpace 0x00000004L
-#define osl_VolumeInfo_Mask_FreeSpace 0x00000008L
-#define osl_VolumeInfo_Mask_MaxNameLength 0x00000010L
-#define osl_VolumeInfo_Mask_MaxPathLength 0x00000020L
-#define osl_VolumeInfo_Mask_FileSystemName 0x00000040L
-#define osl_VolumeInfo_Mask_DeviceHandle 0x00000080L
-#define osl_VolumeInfo_Mask_FileSystemCaseHandling 0x00000100L
-
-typedef
-
-/** Structure containing information about volumes
-
- @see osl_getVolumeInformation()
- @see oslFileType
-*/
-
-struct _oslVolumeInfo {
-/** Must be initialized with the size in bytes of the structure before passing it to any function */
- sal_uInt32 uStructSize;
-/** Determines which members of the structure contain valid data */
- sal_uInt32 uValidFields;
-/** Attributes of the volume (remote and/or removable) */
- sal_uInt32 uAttributes;
-/** Total availiable space on the volume for the current process/user */
- sal_uInt64 uTotalSpace;
-/** Used space on the volume for the current process/user */
- sal_uInt64 uUsedSpace;
-/** Free space on the volume for the current process/user */
- sal_uInt64 uFreeSpace;
-/** Maximum length of file name of a single item */
- sal_uInt32 uMaxNameLength;
-/** Maximum length of a full quallified path in system notation */
- sal_uInt32 uMaxPathLength;
-/** Points to a string that receives the name of the file system type. String should be set to zero before calling <code>osl_getVolumeInformation</code>
- and released after usage. */
- rtl_uString *ustrFileSystemName;
-/** Pointer to handle the receives underlying device. Handle should be set to zero before calling <code>osl_getVolumeInformation</code>*/
- oslVolumeDeviceHandle *pDeviceHandle;
-} oslVolumeInfo;
-
-
-/** Retrieve information about a volume.
-
- Retrieves information about a volume. A volume can either be a mount point, a network
- resource or a drive depending on Operating System and File System. Before calling this
- function osl_getFileStatus() should be called to determine if the type is
- osl_file_Type_Volume.
-
- @param pustrDirectoryURL [in]
- Full qualified URL of the volume
-
- @param pInfo [out]
- On success it receives information about the volume.
-
- @param uFieldMask [in]
- Specifies which members of the structure should be filled
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_NOMEM not enough memory for allocating structures <br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_NOTDIR not a directory<br>
- osl_File_E_NAMETOOLONG file name too long<br>
- osl_File_E_NOENT no such file or directory<br>
- osl_File_E_ACCES permission denied<br>
- osl_File_E_LOOP too many symbolic links encountered<br>
- ols_File_E_FAULT Bad address<br>
- osl_File_E_IO on I/O errors<br>
- osl_File_E_NOSYS function not implemented<br>
- osl_File_E_MULTIHOP multihop attempted<br>
- osl_File_E_NOLINK link has been severed<br>
- osl_File_E_INTR function call was interrupted<br>
-
- @see osl_getFileStatus()
- @see oslVolumeInfo
-*/
-
-oslFileError SAL_CALL osl_getVolumeInformation(
- rtl_uString *pustrDirectoryURL,
- oslVolumeInfo *pInfo,
- sal_uInt32 uFieldMask );
-
-typedef void *oslFileHandle;
-
-/* Open flags */
-
-#define osl_File_OpenFlag_Read 0x00000001L
-#define osl_File_OpenFlag_Write 0x00000002L
-#define osl_File_OpenFlag_Create 0x00000004L
-#define osl_File_OpenFlag_NoLock 0x00000008L
-
-/** Open a regular file.
-
- Open a file. Only regular files can be openend.
-
- @param pustrFileURL [in]
- The full qualified URL of the file to open.
-
- @param pHandle [out]
- On success it receives a handle to the open file.
-
- @param uFlags [in]
- Specifies the open mode.
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_NOMEM not enough memory for allocating structures <br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_NAMETOOLONG pathname was too long<br>
- osl_File_E_NOENT no such file or directory<br>
- osl_File_E_ACCES permission denied<br>
- osl_File_E_AGAIN a write lock could not be established<br>
- osl_File_E_NOTDIR not a directory<br>
- osl_File_E_NXIO no such device or address<br>
- osl_File_E_NODEV no such device<br>
- osl_File_E_ROFS read-only file system<br>
- osl_File_E_TXTBSY text file busy<br>
- osl_File_E_FAULT bad address<br>
- osl_File_E_LOOP too many symbolic links encountered<br>
- osl_File_E_NOSPC no space left on device<br>
- osl_File_E_ISDIR is a directory<br>
- osl_File_E_MFILE too many open files used by the process<br>
- osl_File_E_NFILE too many open files in the system<br>
- osl_File_E_DQUOT quota exceeded<br>
- osl_File_E_EXIST file exists<br>
- osl_FilE_E_INTR function call was interrupted<br>
- osl_File_E_IO on I/O errors<br>
- osl_File_E_MULTIHOP multihop attempted<br>
- osl_File_E_NOLINK link has been severed<br>
- osl_File_E_EOVERFLOW value too large for defined data type<br>
-
- @see osl_closeFile()
- @see osl_setFilePos()
- @see osl_getFilePos()
- @see osl_readFile()
- @see osl_writeFile()
- @see osl_setFileSize()
- @see osl_getFileSize()
-*/
-
-oslFileError SAL_CALL osl_openFile( rtl_uString *pustrFileURL, oslFileHandle *pHandle, sal_uInt32 uFlags );
-
-#define osl_Pos_Absolut 1
-#define osl_Pos_Current 2
-#define osl_Pos_End 3
-
-/** Set the internal position pointer of an open file.
-
- @param Handle [in]
- Handle to a file received by a previous call to osl_openFile().
-
- @param uHow [in]
- Distance to move the internal position pointer (from uPos).
-
- @param uPos [in]
- Absolute position from the beginning of the file.
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_OVERFLOW the resulting file offset would be a value which cannot be represented correctly for regular files<br>
-
- @see osl_openFile()
- @see osl_getFilePos()
-*/
-
-oslFileError SAL_CALL osl_setFilePos( oslFileHandle Handle, sal_uInt32 uHow, sal_Int64 uPos ) SAL_WARN_UNUSED_RESULT;
-
-
-/** Retrieve the current position of the internal pointer of an open file.
-
- @param Handle [in]
- Handle to a file received by a previous call to osl_openFile().
-
- @param pPos [out]
- On success receives the current position of the file pointer.
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_OVERFLOW the resulting file offset would be a value which cannot be represented correctly for regular files<br>
-
- @see osl_openFile()
- @see osl_setFilePos()
- @see osl_readFile()
- @see osl_writeFile()
-*/
-
-oslFileError SAL_CALL osl_getFilePos( oslFileHandle Handle, sal_uInt64 *pPos );
-
-
-/** Set the file size of an open file.
-
- Sets the file size of an open file. The file can be truncated or enlarged by the function.
- The position of the file pointer is not affeced by this function.
-
- @param Handle [in]
- Handle to a file received by a previous call to osl_openFile().
-
- @param uSize [in]
- New size in bytes.
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_OVERFLOW the resulting file offset would be a value which cannot be represented correctly for regular files<br>
-
- @see osl_openFile()
- @see osl_setFilePos()
- @see osl_getFileStatus()
- @see osl_getFileSize()
-*/
-
-oslFileError SAL_CALL osl_setFileSize( oslFileHandle Handle, sal_uInt64 uSize );
-
-
-/** Get the file size of an open file.
-
- Gets the file size of an open file.
- The position of the file pointer is not affeced by this function.
-
- @param Handle [in]
- Handle to a file received by a previous call to osl_openFile().
-
- @param pSize [out]
- Current size in bytes.
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_OVERFLOW the resulting file offset would be a value which cannot be represented correctly for regular files<br>
-
- @see osl_openFile()
- @see osl_setFilePos()
- @see osl_getFileStatus()
-*/
-
-oslFileError SAL_CALL osl_getFileSize( oslFileHandle Handle, sal_uInt64 *pSize );
-
-
-/** Map flags.
-
- @since UDK 3.2.10
- */
-#define osl_File_MapFlag_RandomAccess ((sal_uInt32)(0x1))
-
-/** Map flag denoting that the mapped address space will be accessed by the
- process soon (and it is advantageous for the operating system to already
- start paging in the data).
-
- @since UDK 3.2.12
- */
-#define osl_File_MapFlag_WillNeed ((sal_uInt32)(0x2))
-
-/** Map a shared file into memory.
-
- @since UDK 3.2.10
- */
-oslFileError
-SAL_CALL osl_mapFile (
- oslFileHandle Handle,
- void** ppAddr,
- sal_uInt64 uLength,
- sal_uInt64 uOffset,
- sal_uInt32 uFlags
-);
-
-
-/** Unmap a shared file from memory.
-
- @since UDK 3.2.10
- */
-oslFileError
-SAL_CALL osl_unmapFile (
- void* pAddr,
- sal_uInt64 uLength
-);
-
-
-/** Read a number of bytes from a file.
-
- Reads a number of bytes from a file. The internal file pointer is
- increased by the number of bytes read.
-
- @param Handle [in]
- Handle to a file received by a previous call to osl_openFile().
-
- @param pBuffer [out]
- Points to a buffer which receives data. The buffer must be large enough
- to hold uBytesRequested bytes.
-
- @param uBytesRequested [in]
- Number of bytes which should be retrieved.
-
- @param pBytesRead [out]
- On success the number of bytes which have actually been retrieved.
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_INTR function call was interrupted<br>
- osl_File_E_IO on I/O errors<br>
- osl_File_E_ISDIR is a directory<br>
- osl_File_E_BADF bad file<br>
- osl_File_E_FAULT bad address<br>
- osl_File_E_AGAIN operation would block<br>
- osl_File_E_NOLINK link has been severed<br>
-
- @see osl_openFile()
- @see osl_writeFile()
- @see osl_readLine()
- @see osl_setFilePos()
-*/
-
-oslFileError SAL_CALL osl_readFile( oslFileHandle Handle, void *pBuffer, sal_uInt64 uBytesRequested, sal_uInt64 *pBytesRead );
-
-
-/** Test if the end of a file is reached.
-
- @param Handle [in]
- Handle to a file received by a previous call to osl_openFile().
-
- @param pIsEOF [out]
- Points to a variable that receives the end-of-file status.
-
- @return
- osl_File_E_None on success <br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_INTR function call was interrupted<br>
- osl_File_E_IO on I/O errors<br>
- osl_File_E_ISDIR is a directory<br>
- osl_File_E_BADF bad file<br>
- osl_File_E_FAULT bad address<br>
- osl_File_E_AGAIN operation would block<br>
- osl_File_E_NOLINK link has been severed<p>
-
- @see osl_openFile()
- @see osl_readFile()
- @see osl_readLine()
- @see osl_setFilePos()
-*/
-
-oslFileError SAL_CALL osl_isEndOfFile( oslFileHandle Handle, sal_Bool *pIsEOF );
-
-
-/** Write a number of bytes to a file.
-
- Writes a number of bytes to a file.
- The internal file pointer is increased by the number of bytes read.
-
- @param Handle [in]
- Handle to a file received by a previous call to osl_openFile().
-
- @param pBuffer [in]
- Points to a buffer which contains the data.
-
- @param uBytesToWrite [in]
- Number of bytes which should be written.
-
- @param pBytesWritten [out]
- On success the number of bytes which have actually been written.
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_FBIG file too large<br>
- osl_File_E_DQUOT quota exceeded<p>
- osl_File_E_AGAIN operation would block<br>
- osl_File_E_BADF bad file<br>
- osl_File_E_FAULT bad address<br>
- osl_File_E_INTR function call was interrupted<br>
- osl_File_E_IO on I/O errosr<br>
- osl_File_E_NOLCK no record locks available<br>
- osl_File_E_NOLINK link has been severed<br>
- osl_File_E_NOSPC no space left on device<br>
- osl_File_E_NXIO no such device or address<br>
-
- @see osl_openFile()
- @see osl_readFile()
- @see osl_setFilePos()
-*/
-
-oslFileError SAL_CALL osl_writeFile( oslFileHandle Handle, const void *pBuffer, sal_uInt64 uBytesToWrite, sal_uInt64 *pBytesWritten );
-
-/** Read a number of bytes from a specified offset in a file.
-
- The current position of the internal file pointer may or may not be changed.
-
- @since UDK 3.2.10
- */
-oslFileError SAL_CALL osl_readFileAt(
- oslFileHandle Handle,
- sal_uInt64 uOffset,
- void* pBuffer,
- sal_uInt64 uBytesRequested,
- sal_uInt64* pBytesRead
-);
-
-
-/** Write a number of bytes to a specified offset in a file.
-
- The current position of the internal file pointer may or may not be changed.
-
- @since UDK 3.2.10
- */
-oslFileError SAL_CALL osl_writeFileAt(
- oslFileHandle Handle,
- sal_uInt64 uOffset,
- const void* pBuffer,
- sal_uInt64 uBytesToWrite,
- sal_uInt64* pBytesWritten
-);
-
-
-/** Read a line from a file.
-
- Reads a line from a file. The new line delimiter is NOT returned!
-
- @param Handle [in]
- Handle to a file received by a previous call to osl_openFile().
-
- @param ppSequence [in/out]
- A pointer pointer to a sal_Sequence that will hold the line read on success.
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_INTR function call was interrupted<br>
- osl_File_E_IO on I/O errors<br>
- osl_File_E_ISDIR is a directory<br>
- osl_File_E_BADF bad file<br>
- osl_File_E_FAULT bad address<br>
- osl_File_E_AGAIN operation would block<br>
- osl_File_E_NOLINK link has been severed<p>
-
- @see osl_openFile()
- @see osl_readFile()
- @see osl_writeFile()
- @see osl_setFilePos()
-*/
-
-oslFileError SAL_CALL osl_readLine( oslFileHandle Handle, sal_Sequence** ppSequence );
-
-/** Synchronize the memory representation of a file with that on the physical medium.
-
- The function ensures that all modified data and attributes of the file associated with
- the given file handle have been written to the physical medium.
- In case the hard disk has a write cache enabled, the data may not really be on
- permanent storage when osl_syncFile returns.
-
- @param Handle
- [in] Handle to a file received by a previous call to osl_openFile().
-
- @return
- <dl>
- <dt>osl_File_E_None</dt>
- <dd>On success</dd>
- <dt>osl_File_E_INVAL</dt>
- <dd>The value of the input parameter is invalid</dd>
- </dl>
- <br><p><strong>In addition to these error codes others may occur as well, for instance:</strong></p><br>
- <dl>
- <dt>osl_File_E_BADF</dt>
- <dd>The file associated with the given file handle is not open for writing</dd>
- <dt>osl_File_E_IO</dt>
- <dd>An I/O error occurred</dd>
- <dt>osl_File_E_NOSPC</dt>
- <dd>There is no enough space on the target device</dd>
- <dt>osl_File_E_ROFS</dt>
- <dd>The file associated with the given file handle is located on a read only file system</dd>
- <dt>osl_File_E_TIMEDOUT</dt>
- <dd>A remote connection timed out. This may happen when a file is on a remote location</dd>
- </dl>
-
- @see osl_openFile()
- @see osl_writeFile()
-*/
-oslFileError SAL_CALL osl_syncFile(oslFileHandle Handle);
-
-/** Close an open file.
-
- @param Handle [in]
- Handle to a file received by a previous call to osl_openFile().
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_BADF Bad file<br>
- osl_File_E_INTR function call was interrupted<br>
- osl_File_E_NOLINK link has been severed<br>
- osl_File_E_NOSPC no space left on device<br>
- osl_File_E_IO on I/O errors<br>
-
- @see osl_openFile()
-*/
-
-oslFileError SAL_CALL osl_closeFile( oslFileHandle Handle );
-
-
-/** Create a directory.
-
- @param pustrDirectoryURL [in]
- Full qualified URL of the directory to create.
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_NOMEM not enough memory for allocating structures <br>
- osl_File_E_EXIST file exists<br>
- osl_File_E_ACCES permission denied<br>
- osl_File_E_NAMETOOLONG file name too long<br>
- osl_File_E_NOENT no such file or directory<br>
- osl_File_E_NOTDIR not a directory<br>
- osl_File_E_ROFS read-only file system<br>
- osl_File_E_NOSPC no space left on device<br>
- osl_File_E_DQUOT quota exceeded<br>
- osl_File_E_LOOP too many symbolic links encountered<br>
- osl_File_E_FAULT bad address<br>
- osl_FileE_IO on I/O errors<br>
- osl_File_E_MLINK too many links<br>
- osl_File_E_MULTIHOP multihop attempted<br>
- osl_File_E_NOLINK link has been severed<br>
-
- @see osl_removeDirectory()
-*/
-
-oslFileError SAL_CALL osl_createDirectory( rtl_uString* pustrDirectoryURL );
-
-
-/** Remove an empty directory.
-
- @param pustrDirectoryURL [in]
- Full qualified URL of the directory.
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_NOMEM not enough memory for allocating structures <br>
- osl_File_E_PERM operation not permitted<br>
- osl_File_E_ACCES permission denied<br>
- osl_File_E_NOENT no such file or directory<br>
- osl_File_E_NOTDIR not a directory<br>
- osl_File_E_NOTEMPTY directory not empty<br>
- osl_File_E_FAULT bad address<br>
- osl_File_E_NAMETOOLONG file name too long<br>
- osl_File_E_BUSY device or resource busy<br>
- osl_File_E_ROFS read-only file system<br>
- osl_File_E_LOOP too many symbolic links encountered<br>
- osl_File_E_BUSY device or resource busy<br>
- osl_File_E_EXIST file exists<br>
- osl_File_E_IO on I/O errors<br>
- osl_File_E_MULTIHOP multihop attempted<br>
- osl_File_E_NOLINK link has been severed<br>
-
- @see osl_createDirectory()
-*/
-
-oslFileError SAL_CALL osl_removeDirectory( rtl_uString* pustrDirectoryURL );
-
-/** Function pointer representing a function that will be called by osl_createDirectoryPath
- if a directory has been created.
-
- To avoid unpredictable results the callee must not access the directory whose
- creation is just notified.
-
- @param pData
- [in] User specified data given in osl_createDirectoryPath.
-
- @param aDirectoryUrl
- [in] The absolute file URL of the directory that was just created by
- osl_createDirectoryPath.
-
- @see osl_createDirectoryPath
-*/
-typedef void (SAL_CALL *oslDirectoryCreationCallbackFunc)(void* pData, rtl_uString* aDirectoryUrl);
-
-/** Create a directory path.
-
- The osl_createDirectoryPath function creates a specified directory path.
- All nonexisting sub directories will be created.
- <p><strong>PLEASE NOTE:</strong> You cannot rely on getting the error code
- osl_File_E_EXIST for existing directories. Programming against this error
- code is in general a strong indication of a wrong usage of osl_createDirectoryPath.</p>
-
- @param aDirectoryUrl
- [in] The absolute file URL of the directory path to create.
- A relative file URL will not be accepted.
-
- @param aDirectoryCreationFunc
- [in] Pointer to a function that will be called synchronously
- for each sub directory that was created. The value of this
- parameter may be NULL, in this case notifications will not be
- sent.
-
- @param pData
- [in] User specified data to be passed to the directory creation
- callback function. The value of this parameter may be arbitrary
- and will not be interpreted by osl_createDirectoryPath.
-
- @return
- <dl>
- <dt>osl_File_E_None</dt>
- <dd>On success</dd>
- <dt>osl_File_E_INVAL</dt>
- <dd>The format of the parameters was not valid</dd>
- <dt>osl_File_E_ACCES</dt>
- <dd>Permission denied</dd>
- <dt>osl_File_E_EXIST</dt>
- <dd>The final node of the specified directory path already exist</dd>
- <dt>osl_File_E_NAMETOOLONG</dt>
- <dd>The name of the specified directory path exceeds the maximum allowed length</dd>
- <dt>osl_File_E_NOTDIR</dt>
- <dd>A component of the specified directory path already exist as file in any part of the directory path</dd>
- <dt>osl_File_E_ROFS</dt>
- <dd>Read-only file system</dd>
- <dt>osl_File_E_NOSPC</dt>
- <dd>No space left on device</dd>
- <dt>osl_File_E_DQUOT</dt>
- <dd>Quota exceeded</dd>
- <dt>osl_File_E_FAULT</dt>
- <dd>Bad address</dd>
- <dt>osl_File_E_IO</dt>
- <dd>I/O error</dd>
- <dt>osl_File_E_LOOP</dt>
- <dd>Too many symbolic links encountered</dd>
- <dt>osl_File_E_NOLINK</dt>
- <dd>Link has been severed</dd>
- <dt>osl_File_E_invalidError</dt>
- <dd>An unknown error occurred</dd>
- </dl>
-
- @see oslDirectoryCreationFunc
- @see oslFileError
- @see osl_createDirectory
-*/
-oslFileError SAL_CALL osl_createDirectoryPath(
- rtl_uString* aDirectoryUrl,
- oslDirectoryCreationCallbackFunc aDirectoryCreationCallbackFunc,
- void* pData);
-
-/** Remove a regular file.
-
- @param pustrFileURL [in]
- Full qualified URL of the file to remove.
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_NOMEM not enough memory for allocating structures <br>
- osl_File_E_ACCES permission denied<br>
- osl_File_E_PERM operation not permitted<br>
- osl_File_E_NAMETOOLONG file name too long<br>
- osl_File_E_NOENT no such file or directory<br>
- osl_File_E_ISDIR is a directory<br>
- osl_File_E_ROFS read-only file system<br>
- osl_File_E_FAULT bad address<br>
- osl_File_E_LOOP too many symbolic links encountered<br>
- osl_File_E_IO on I/O errors<br>
- osl_File_E_BUSY device or resource busy<br>
- osl_File_E_INTR function call was interrupted<br>
- osl_File_E_LOOP too many symbolic links encountered<br>
- osl_File_E_MULTIHOP multihop attempted<br>
- osl_File_E_NOLINK link has been severed<br>
- osl_File_E_TXTBSY text file busy<br>
-
- @see osl_openFile()
-*/
-
-oslFileError SAL_CALL osl_removeFile( rtl_uString* pustrFileURL );
-
-
-/** Copy a file to a new destination.
-
- Copies a file to a new destination. Copies only files not directories.
- No assumptions should be made about preserving attributes or file time.
-
- @param pustrSourceFileURL [in]
- Full qualified URL of the source file.
-
- @param pustrDestFileURL [in]
- Full qualified URL of the destination file. A directory is NOT a valid destination file!
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_NOMEM not enough memory for allocating structures <br>
- osl_File_E_ACCES permission denied<br>
- osl_File_E_PERM operation not permitted<br>
- osl_File_E_NAMETOOLONG file name too long<br>
- osl_File_E_NOENT no such file or directory<br>
- osl_File_E_ISDIR is a directory<br>
- osl_File_E_ROFS read-only file system<p>
-
- @see osl_moveFile()
- @see osl_removeFile()
-*/
-
-oslFileError SAL_CALL osl_copyFile( rtl_uString* pustrSourceFileURL, rtl_uString *pustrDestFileURL );
-
-
-/** Move a file or directory to a new destination or renames it.
-
- Moves a file or directory to a new destination or renames it.
- File time and attributes are preserved.
-
- @param pustrSourceFileURL [in]
- Full qualified URL of the source file.
-
- @param pustrDestFileURL [in]
- Full qualified URL of the destination file. An existing directory is NOT a valid destination !
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_NOMEM not enough memory for allocating structures <br>
- osl_File_E_ACCES permission denied<br>
- osl_File_E_PERM operation not permitted<br>
- osl_File_E_NAMETOOLONG file name too long<br>
- osl_File_E_NOENT no such file or directory<br>
- osl_File_E_ROFS read-only file system<br>
-
- @see osl_copyFile()
-*/
-
-oslFileError SAL_CALL osl_moveFile( rtl_uString* pustrSourceFileURL, rtl_uString *pustrDestFileURL );
-
-
-/** Determine a valid unused canonical name for a requested name.
-
- Determines a valid unused canonical name for a requested name.
- Depending on the Operating System and the File System the illegal characters are replaced by valid ones.
- If a file or directory with the requested name already exists a new name is generated following
- the common rules on the actual Operating System and File System.
-
- @param pustrRequestedURL [in]
- Requested name of a file or directory.
-
- @param ppustrValidURL [out]
- On success receives a name which is unused and valid on the actual Operating System and
- File System.
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
-
- @see osl_getFileStatus()
-*/
-
-oslFileError SAL_CALL osl_getCanonicalName( rtl_uString *pustrRequestedURL, rtl_uString **ppustrValidURL);
-
-
-/** Convert a path relative to a given directory into an full qualified file URL.
-
- Convert a path relative to a given directory into an full qualified file URL.
- The function resolves symbolic links if possible and path ellipses, so on success
- the resulting absolute path is fully resolved.
-
- @param pustrBaseDirectoryURL [in]
- Base directory URL to which the relative path is related to.
-
- @param pustrRelativeFileURL [in]
- An URL of a file or directory relative to the directory path specified by pustrBaseDirectoryURL
- or an absolute path.
- If pustrRelativeFileURL denotes an absolute path pustrBaseDirectoryURL will be ignored.
-
- @param ppustrAbsoluteFileURL [out]
- On success it receives the full qualified absoulte file URL.
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_NOMEM not enough memory for allocating structures <br>
- osl_File_E_NOTDIR not a directory<br>
- osl_File_E_ACCES permission denied<br>
- osl_File_E_NOENT no such file or directory<br>
- osl_File_E_NAMETOOLONG file name too long<br>
- osl_File_E_OVERFLOW value too large for defined data type<br>
- osl_File_E_FAULT bad address<br>
- osl_File_E_INTR function call was interrupted<br>
- osl_File_E_LOOP too many symbolic links encountered<br>
- osl_File_E_MULTIHOP multihop attempted<br>
- osl_File_E_NOLINK link has been severed<br>
-
- @see osl_getFileStatus()
-*/
-
-oslFileError SAL_CALL osl_getAbsoluteFileURL(
- rtl_uString* pustrBaseDirectoryURL,
- rtl_uString *pustrRelativeFileURL,
- rtl_uString **ppustrAbsoluteFileURL );
-
-
-/** Convert a system dependend path into a file URL.
-
- @param pustrSystemPath [in]
- A System dependent path of a file or directory.
-
- @param ppustrFileURL [out]
- On success it receives the file URL.
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
-
- @see osl_getSystemPathFromFileURL()
-*/
-
-oslFileError SAL_CALL osl_getFileURLFromSystemPath( rtl_uString *pustrSystemPath, rtl_uString **ppustrFileURL);
-
-
-/** Searche a full qualified system path or a file URL.
-
- @param pustrFileName [in]
- A system dependent path, a file URL, a file or relative directory.
-
- @param pustrSearchPath [in]
- A list of system paths, in which a given file has to be searched. The Notation of a path list is
- system dependend, e.g. on UNIX system "/usr/bin:/bin" and on Windows "C:\BIN;C:\BATCH".
- These paths are only for the search of a file or a relative path, otherwise it will be ignored.
- If pustrSearchPath is NULL or while using the search path the search failed, the function searches for
- a matching file in all system directories and in the directories listed in the PATH environment
- variable.
- The value of an environment variable should be used (e.g. LD_LIBRARY_PATH) if the caller is not
- aware of the Operating System and so doesn't know which path list delimiter to use.
-
- @param ppustrFileURL [out]
- On success it receives the full qualified file URL.
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_NOTDIR not a directory<br>
- osl_File_E_NOENT no such file or directory not found<br>
-
- @see osl_getFileURLFromSystemPath()
- @see osl_getSystemPathFromFileURL()
-*/
-
-oslFileError SAL_CALL osl_searchFileURL( rtl_uString *pustrFileName, rtl_uString *pustrSearchPath, rtl_uString **ppustrFileURL );
-
-
-/** Convert a file URL into a system dependend path.
-
- @param pustrFileURL [in]
- A File URL.
-
- @param ppustrSystemPath [out]
- On success it receives the system path.
-
- @return
- osl_File_E_None on success
- osl_File_E_INVAL the format of the parameters was not valid
-
- @see osl_getFileURLFromSystemPath()
-*/
-
-oslFileError SAL_CALL osl_getSystemPathFromFileURL( rtl_uString *pustrFileURL, rtl_uString **ppustrSystemPath);
-
-
-/** Function pointer representing the function called back from osl_abbreviateSystemPath
-
- @param ustrText [in]
- Text to calculate the width for
-
- @return
- The width of the text specified by ustrText, e.g. it can return the width in pixel
- or the width in character count.
-
- @see osl_abbreviateSystemPath()
-*/
-
-typedef sal_uInt32 (SAL_CALL *oslCalcTextWidthFunc)( rtl_uString *ustrText );
-
-
-/** Abbreviate a system notation path.
-
- @param ustrSystemPath [in]
- The full system path to abbreviate
-
- @param pustrCompacted [out]
- Receives the compacted system path on output
-
- @param pfnCalcWidth [in]
- Function ptr that calculates the width of a string. Can be zero.
-
- @param uMaxWidth [in]
- Maximum width allowed that is retunrned from pfnCalcWidth.
- If pfnCalcWidth is zero the character count is assumed as width.
-
- @return
- osl_File_E_None on success<br>
-
- @see oslCalcTextWidthFunc
-*/
-
-oslFileError SAL_CALL osl_abbreviateSystemPath(
- rtl_uString *ustrSystemPath,
- rtl_uString **pustrCompacted,
- sal_uInt32 uMaxWidth,
- oslCalcTextWidthFunc pCalcWidth );
-
-
-/** Set file attributes.
-
- @param pustrFileURL [in]
- The full qualified file URL.
-
- @param uAttributes [in]
- Attributes of the file to be set.
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
-
- @see osl_getFileStatus()
-*/
-
-oslFileError SAL_CALL osl_setFileAttributes( rtl_uString *pustrFileURL, sal_uInt64 uAttributes );
-
-
-/** Set the file time.
-
- @param pustrFileURL [in]
- The full qualified URL of the file.
-
- @param aCreationTime [in]
- Creation time of the given file.
-
- @param aLastAccessTime [in]
- Time of the last access of the given file.
-
- @param aLastWriteTime [in]
- Time of the last modifying of the given file.
-
- @return
- osl_File_E_None on success<br>
- osl_File_E_INVAL the format of the parameters was not valid<br>
- osl_File_E_NOENT no such file or directory not found<br>
-
- @see osl_getFileStatus()
-*/
-
-oslFileError SAL_CALL osl_setFileTime(
- rtl_uString *pustrFileURL,
- const TimeValue *aCreationTime,
- const TimeValue *aLastAccessTime,
- const TimeValue *aLastWriteTime);
-
-
-/** Retrieves the file URL of the system's temporary directory path
-
- @param pustrTempDirURL[out]
- On success receives the URL of system's temporary directory path.
-
- @return
- osl_File_E_None on success
- osl_File_E_NOENT no such file or directory not found
-*/
-
-oslFileError SAL_CALL osl_getTempDirURL( rtl_uString **pustrTempDirURL );
-
-
-/** Creates a temporary file in the directory provided by the caller or the
- directory returned by osl_getTempDirURL.
-
- Creates a temporary file in the directory provided by the caller or the
- directory returned by osl_getTempDirURL.
- Under UNIX Operating Systems the file will be created with read and write
- access for the user exclusively.
- If the caller requests only a handle to the open file but not the name of
- it, the file will be automatically removed on close else the caller is
- responsible for removing the file on success.
-
- @param pustrDirectoryURL [in]
- Specifies the full qualified URL where the temporary file should be created.
- If pustrDirectoryURL is 0 the path returned by osl_getTempDirURL will be used.
-
- @param pHandle [out]
- On success receives a handle to the open file. If pHandle is 0 the file will
- be closed on return, in this case ppustrTempFileURL must not be 0.
-
- @param ppustrTempFileURL [out]
- On success receives the full qualified URL of the temporary file.
- If ppustrTempFileURL is 0 the file will be automatically removed on close,
- in this case pHandle must not be 0.
- If ppustrTempFileURL is not 0 the caller receives the name of the created
- file and is responsible for removing the file, in this case
- *ppustrTempFileURL must be 0 or must point to a valid rtl_uString.
-
- @descr
- Description of the different pHandle, ppustrTempFileURL parameter combinations.
- pHandle is 0 and ppustrTempDirURL is 0 - this combination is invalid
- pHandle is not 0 and ppustrTempDirURL is 0 - a handle to the open file
- will be returned on success and the file will be automatically removed on close.
- pHandle is 0 and ppustrTempDirURL is not 0 - the name of the file will be returned,
- the caller is responsible for opening, closing and removing the file.
- pHandle is not 0 and ppustrTempDirURL is not 0 - a handle to the open file as well as
- the file name will be returned, the caller is responsible for closing and removing
- the file.
-
- @return
- osl_File_E_None on success
- osl_File_E_INVAL the format of the parameter is invalid
- osl_File_E_NOMEM not enough memory for allocating structures
- osl_File_E_ACCES Permission denied
- osl_File_E_NOENT No such file or directory
- osl_File_E_NOTDIR Not a directory
- osl_File_E_ROFS Read-only file system
- osl_File_E_NOSPC No space left on device
- osl_File_E_DQUOT Quota exceeded
-
- @see osl_getTempDirURL()
-*/
-
-oslFileError SAL_CALL osl_createTempFile(
- rtl_uString* pustrDirectoryURL,
- oslFileHandle* pHandle,
- rtl_uString** ppustrTempFileURL);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OSL_FILE_H_ */
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/file.hxx b/sal/inc/osl/file.hxx
deleted file mode 100644
index df57e24ff..000000000
--- a/sal/inc/osl/file.hxx
+++ /dev/null
@@ -1,1904 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/** @HTML */
-
-#ifndef _OSL_FILE_HXX_
-#define _OSL_FILE_HXX_
-
-#ifdef __cplusplus
-
-#include <osl/time.h>
-# include <rtl/memory.h>
-# include <rtl/ustring.hxx>
-
-#include <osl/file.h>
-# include <rtl/byteseq.hxx>
-
-#include <stdio.h>
-
-namespace osl
-{
-
-
-// -----------------------------------------------------------------------------
-/** Base class for all File System specific objects.
-
- @see Directory
- @see DirectoryItem
- @see File
- */
-
-class FileBase
-{
-public:
-
- enum RC {
- E_None = osl_File_E_None,
- E_PERM = osl_File_E_PERM,
- E_NOENT = osl_File_E_NOENT,
- E_SRCH = osl_File_E_SRCH,
- E_INTR = osl_File_E_INTR,
- E_IO = osl_File_E_IO,
- E_NXIO = osl_File_E_NXIO,
- E_2BIG = osl_File_E_2BIG,
- E_NOEXEC = osl_File_E_NOEXEC,
- E_BADF = osl_File_E_BADF,
- E_CHILD = osl_File_E_CHILD,
- E_AGAIN = osl_File_E_AGAIN,
- E_NOMEM = osl_File_E_NOMEM,
- E_ACCES = osl_File_E_ACCES,
- E_FAULT = osl_File_E_FAULT,
- E_BUSY = osl_File_E_BUSY,
- E_EXIST = osl_File_E_EXIST,
- E_XDEV = osl_File_E_XDEV,
- E_NODEV = osl_File_E_NODEV,
- E_NOTDIR = osl_File_E_NOTDIR,
- E_ISDIR = osl_File_E_ISDIR,
- E_INVAL = osl_File_E_INVAL,
- E_NFILE = osl_File_E_NFILE,
- E_MFILE = osl_File_E_MFILE,
- E_NOTTY = osl_File_E_NOTTY,
- E_FBIG = osl_File_E_FBIG,
- E_NOSPC = osl_File_E_NOSPC,
- E_SPIPE = osl_File_E_SPIPE,
- E_ROFS = osl_File_E_ROFS,
- E_MLINK = osl_File_E_MLINK,
- E_PIPE = osl_File_E_PIPE,
- E_DOM = osl_File_E_DOM,
- E_RANGE = osl_File_E_RANGE,
- E_DEADLK = osl_File_E_DEADLK,
- E_NAMETOOLONG = osl_File_E_NAMETOOLONG,
- E_NOLCK = osl_File_E_NOLCK,
- E_NOSYS = osl_File_E_NOSYS,
- E_NOTEMPTY = osl_File_E_NOTEMPTY,
- E_LOOP = osl_File_E_LOOP,
- E_ILSEQ = osl_File_E_ILSEQ,
- E_NOLINK = osl_File_E_NOLINK,
- E_MULTIHOP = osl_File_E_MULTIHOP,
- E_USERS = osl_File_E_USERS,
- E_OVERFLOW = osl_File_E_OVERFLOW,
- E_NOTREADY = osl_File_E_NOTREADY,
- E_invalidError = osl_File_E_invalidError, /* unmapped error: always last entry in enum! */
- E_TIMEDOUT = osl_File_E_TIMEDOUT,
- E_NETWORK = osl_File_E_NETWORK
- };
-
-
-public:
-
- /** Determine a valid unused canonical name for a requested name.
-
- Determines a valid unused canonical name for a requested name.
- Depending on the Operating System and the File System the illegal characters are replaced by valid ones.
- If a file or directory with the requested name already exists a new name is generated following
- the common rules on the actual Operating System and File System.
-
- @param ustrRequestedURL [in]
- Requested name of a file or directory.
-
- @param pustrValidURL [out]
- On success receives a name which is unused and valid on the actual Operating System and
- File System.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
-
- @see DirectoryItem::getFileStatus()
- */
-
- static inline RC getCanonicalName( const ::rtl::OUString& ustrRequestedURL, ::rtl::OUString& ustrValidURL )
- {
- return (RC) osl_getCanonicalName( ustrRequestedURL.pData, &ustrValidURL.pData );
- }
-
- /** Convert a path relative to a given directory into an full qualified file URL.
-
- Convert a path relative to a given directory into an full qualified file URL.
- The function resolves symbolic links if possible and path ellipses, so on success
- the resulting absolute path is fully resolved.
-
- @param ustrBaseDirectoryURL [in]
- Base directory URL to which the relative path is related to.
-
- @param ustrRelativeFileURL [in]
- An URL of a file or directory relative to the directory path specified by ustrBaseDirectoryURL
- or an absolute path.
- If ustrRelativeFileURL denotes an absolute path ustrBaseDirectoryURL will be ignored.
-
- @param ustrAbsoluteFileURL [out]
- On success it receives the full qualified absoulte file URL.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_NOMEM not enough memory for allocating structures
- E_NOTDIR not a directory
- E_ACCES permission denied
- E_NOENT no such file or directory
- E_NAMETOOLONG file name too long
- E_OVERFLOW value too large for defined data type
- E_FAULT bad address
- E_INTR function call was interrupted
- E_LOOP too many symbolic links encountered
- E_MULTIHOP multihop attempted
- E_NOLINK link has been severed
-
- @see DirectoryItem::getFileStatus()
- */
-
- static inline RC getAbsoluteFileURL( const ::rtl::OUString& ustrBaseDirectoryURL, const ::rtl::OUString& ustrRelativeFileURL, ::rtl::OUString& ustrAbsoluteFileURL )
- {
- return (RC) osl_getAbsoluteFileURL( ustrBaseDirectoryURL.pData, ustrRelativeFileURL.pData, &ustrAbsoluteFileURL.pData );
- }
-
- /** Convert a file URL into a system dependend path.
-
- @param ustrFileURL [in]
- A File URL.
-
- @param ustrSystemPath [out]
- On success it receives the system path.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
-
- @see getFileURLFromSystemPath()
- */
-
- static inline RC getSystemPathFromFileURL( const ::rtl::OUString& ustrFileURL, ::rtl::OUString& ustrSystemPath )
- {
- return (RC) osl_getSystemPathFromFileURL( ustrFileURL.pData, &ustrSystemPath.pData );
- }
-
- /** Convert a system dependend path into a file URL.
-
- @param ustrSystemPath [in]
- A System dependent path of a file or directory.
-
- @param ustrFileURL [out]
- On success it receives the file URL.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
-
- @see getSystemPathFromFileURL()
- */
-
- static inline RC getFileURLFromSystemPath( const ::rtl::OUString& ustrSystemPath, ::rtl::OUString& ustrFileURL )
- {
- return (RC) osl_getFileURLFromSystemPath( ustrSystemPath.pData, &ustrFileURL.pData );
- }
-
- /** Searche a full qualified system path or a file URL.
-
- @param ustrFileName [in]
- A system dependent path, a file URL, a file or relative directory
-
- @param ustrSearchPath [in]
- A list of system paths, in which a given file has to be searched. The Notation of a path list is
- system dependend, e.g. on UNIX system "/usr/bin:/bin" and on Windows "C:\BIN;C:\BATCH".
- These paths are only for the search of a file or a relative path, otherwise it will be ignored.
- If ustrSearchPath is NULL or while using the search path the search failed, the function searches for
- a matching file in all system directories and in the directories listed in the PATH environment
- variable.
- The value of an environment variable should be used (e.g. LD_LIBRARY_PATH) if the caller is not
- aware of the Operating System and so doesn't know which path list delimiter to use.
-
- @param ustrFileURL [out]
- On success it receives the full qualified file URL.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_NOTDIR not a directory
- E_NOENT no such file or directory not found
-
- @see getFileURLFromSystemPath()
- @see getSystemPathFromFileURL()
- */
-
- static inline RC searchFileURL( const ::rtl::OUString& ustrFileName, const ::rtl::OUString& ustrSearchPath, ::rtl::OUString& ustrFileURL )
- {
- return (RC) osl_searchFileURL( ustrFileName.pData, ustrSearchPath.pData, &ustrFileURL.pData );
- }
-
- /** Retrieves the file URL of the system's temporary directory path.
-
- @param ustrTempDirURL[out]
- On success receives the URL of system's temporary directory path.
-
- @return
- E_None on success
- E_NOENT no such file or directory not found
- */
-
- static inline RC getTempDirURL( ::rtl::OUString& ustrTempDirURL )
- {
- return (RC) osl_getTempDirURL( &ustrTempDirURL.pData );
- }
-
- /** Creates a temporary file in the directory provided by the caller or the
- directory returned by getTempDirURL.
- Under UNIX Operating Systems the file will be created with read and write
- access for the user exclusively.
- If the caller requests only a handle to the open file but not the name of
- it, the file will be automatically removed on close else the caller is
- responsible for removing the file on success.<br><br>
-
- @param pustrDirectoryURL [in]
- Specifies the full qualified URL where the temporary file should be created.
- If pustrDirectoryURL is 0 the path returned by osl_getTempDirURL will be used.
-
- @param pHandle [out]
- On success receives a handle to the open file.
- If pHandle is 0 the file will be closed on return, in this case
- pustrTempFileURL must not be 0.
-
- @param pustrTempFileURL [out]
- On success receives the full qualified URL of the temporary file.
- If pustrTempFileURL is 0 the file will be automatically removed
- on close, in this case pHandle must not be 0.
- If pustrTempFileURL is not 0 the caller receives the name of the
- created file and is responsible for removing the file.
-
- @descr
- Description of the different pHandle, ppustrTempFileURL parameter combinations.
- pHandle is 0 and pustrTempDirURL is 0 - this combination is invalid<br>
- pHandle is not 0 and pustrTempDirURL is 0 - a handle to the open file
- will be returned on success and the file will be automatically removed on close<br>
- pHandle is 0 and pustrTempDirURL is not 0 - the name of the file will be
- returned, the caller is responsible for opening, closing and removing the file.<br>
- pHandle is not 0 and pustrTempDirURL is not 0 - a handle to the open file as well as
- the file name will be returned, the caller is responsible for closing and removing
- the file.<br>
-
- @return
- E_None on success
- E_INVAL the format of the parameter is invalid
- E_NOMEM not enough memory for allocating structures
- E_ACCES Permission denied
- E_NOENT No such file or directory
- E_NOTDIR Not a directory
- E_ROFS Read-only file system
- E_NOSPC No space left on device
- E_DQUOT Quota exceeded
-
- @see getTempDirURL()
- */
-
- static inline RC createTempFile(
- ::rtl::OUString* pustrDirectoryURL,
- oslFileHandle* pHandle,
- ::rtl::OUString* pustrTempFileURL)
- {
- rtl_uString* pustr_dir_url = pustrDirectoryURL ? pustrDirectoryURL->pData : 0;
- rtl_uString** ppustr_tmp_file_url = pustrTempFileURL ? &pustrTempFileURL->pData : 0;
-
- return (RC) osl_createTempFile(pustr_dir_url, pHandle, ppustr_tmp_file_url);
- }
-};
-
-
-// -----------------------------------------------------------------------------
-/** The VolumeDevice class.
-
- @see VolumeInfo
-*/
-
-class VolumeDevice : public FileBase
-{
- oslVolumeDeviceHandle _aHandle;
-
-public:
-
- /** Constructor.
- */
-
- VolumeDevice() : _aHandle( NULL )
- {
- }
-
- /** Copy constructor.
-
- @param rDevice
- The other volume device.
- */
-
- VolumeDevice( const VolumeDevice & rDevice )
- {
- _aHandle = rDevice._aHandle;
- if ( _aHandle )
- osl_acquireVolumeDeviceHandle( _aHandle );
- }
-
- /** Destructor.
- */
-
- ~VolumeDevice()
- {
- if ( _aHandle )
- osl_releaseVolumeDeviceHandle( _aHandle );
- }
-
- /** Assignment operator.
-
- @param rDevice
- The other volume device.
- */
-
- inline VolumeDevice & operator =( const VolumeDevice & rDevice )
- {
- oslVolumeDeviceHandle newHandle = rDevice._aHandle;
-
- if ( newHandle )
- osl_acquireVolumeDeviceHandle( newHandle );
-
- if ( _aHandle )
- osl_releaseVolumeDeviceHandle( _aHandle );
-
- _aHandle = newHandle;
-
- return *this;
- }
-
- /** Automount a volume device.
-
- @return
- E_None on success
-
- @todo
- specify all error codes that may be returned
- */
-
- inline RC automount()
- {
- return (RC)osl_automountVolumeDevice( _aHandle );
- }
-
- /** Unmount a volume device.
-
- @return
- E_None on success
-
- @todo
- specify all error codes that may be returned
- */
-
- inline RC unmount()
- {
- return (RC)osl_unmountVolumeDevice( _aHandle );
- }
-
- /** Get the full qualified URL where a device is mounted to.
-
- @return
- The full qualified URL where the device is mounted to.
- */
- inline rtl::OUString getMountPath()
- {
- rtl::OUString aPath;
- osl_getVolumeDeviceMountPath( _aHandle, &aPath.pData );
- return aPath;
- }
-
- friend class VolumeInfo;
-};
-
-// -----------------------------------------------------------------------------
-
-class Directory;
-
-/** The VolumeInfo class.
-
- Neither copy nor assignment is allowed for this class.
-
- @see Directory::getVolumeInfo
-*/
-
-
-class VolumeInfo
-{
- oslVolumeInfo _aInfo;
- sal_uInt32 _nMask;
- VolumeDevice _aDevice;
-
- /** Copy constructor.
- */
-
- VolumeInfo( VolumeInfo& );
-
- /** Assginment operator.
- */
-
- VolumeInfo& operator = ( VolumeInfo& );
-
-public:
-
- /** Constructor.
-
- @param nMask
- Set of flags decribing the demanded information.
- */
-
- VolumeInfo( sal_uInt32 nMask ): _nMask( nMask )
- {
- _aInfo.uStructSize = sizeof( oslVolumeInfo );
- rtl_fillMemory( &_aInfo.uValidFields, sizeof( oslVolumeInfo ) - sizeof( sal_uInt32 ), 0 );
- _aInfo.pDeviceHandle = &_aDevice._aHandle;
- }
-
- /** Destructor.
- */
-
- ~VolumeInfo()
- {
- if( _aInfo.ustrFileSystemName )
- rtl_uString_release( _aInfo.ustrFileSystemName );
- }
-
- /** Check if specified fields are valid.
-
- @param nMask
- Set of flags for the fields to check.
-
- @return sal_True if all fields are valid else sal_False.
- */
-
- inline sal_Bool isValid( sal_uInt32 nMask ) const
- {
- return ( nMask & _aInfo.uValidFields ) == nMask;
- }
-
- /** Check the remote flag.
-
- @return
- sal_True if Attributes are valid and the volume is remote else sal_False.
- */
-
- inline sal_Bool getRemoteFlag() const
- {
- return 0 != (_aInfo.uAttributes & osl_Volume_Attribute_Remote);
- }
-
- /** Check the removeable flag.
-
- @return
- sal_True if attributes are valid and the volume is removable else sal_False.
- */
-
- inline sal_Bool getRemoveableFlag() const
- {
- return 0 != (_aInfo.uAttributes & osl_Volume_Attribute_Removeable);
- }
-
- /** Check the compact disc flag.
-
- @return
- sal_True if attributes are valid and the volume is a CDROM else sal_False.
- */
-
- inline sal_Bool getCompactDiscFlag() const
- {
- return 0 != (_aInfo.uAttributes & osl_Volume_Attribute_CompactDisc);
- }
-
- /** Check the floppy disc flag.
-
- @return
- sal_True if attributes are valid and the volume is a floppy disk else sal_False.
- */
-
- inline sal_Bool getFloppyDiskFlag() const
- {
- return 0 != (_aInfo.uAttributes & osl_Volume_Attribute_FloppyDisk);
- }
-
- /** Check the fixed disk flag.
-
- @return
- sal_True if attributes are valid and the volume is a fixed disk else sal_False.
- */
-
- inline sal_Bool getFixedDiskFlag() const
- {
- return 0 != (_aInfo.uAttributes & osl_Volume_Attribute_FixedDisk);
- }
-
- /** Check the RAM disk flag.
-
- @return
- sal_True if attributes are valid and the volume is a RAM disk else sal_False.
- */
-
- inline sal_Bool getRAMDiskFlag() const
- {
- return 0 != (_aInfo.uAttributes & osl_Volume_Attribute_RAMDisk);
- }
-
- /** Determine the total space of a volume device.
-
- @return
- The total diskspace of this volume if this information is valid,
- 0 otherwise.
- */
-
- inline sal_uInt64 getTotalSpace() const
- {
- return _aInfo.uTotalSpace;
- }
-
- /** Determine the free space of a volume device.
-
- @return
- The free diskspace of this volume if this information is valid,
- 0 otherwise.
- */
-
- inline sal_uInt64 getFreeSpace() const
- {
- return _aInfo.uFreeSpace;
- }
-
- /** Determine the used space of a volume device.
-
- @return
- The used diskspace of this volume if this information is valid,
- 0 otherwise.
- */
-
- inline sal_uInt64 getUsedSpace() const
- {
- return _aInfo.uUsedSpace;
- }
-
- /** Determine the maximal length of a file name.
-
- @return
- The maximal length of a file name if this information is valid,
- 0 otherwise.
- */
-
- inline sal_uInt32 getMaxNameLength() const
- {
- return _aInfo.uMaxNameLength;
- }
-
- /** Determine the maximal length of a path name.
-
- @return
- The maximal length of a path if this information is valid,
- 0 otherwise.
- */
-
- inline sal_uInt32 getMaxPathLength() const
- {
- return _aInfo.uMaxPathLength;
- }
-
- /** Determine the name of the volume device's File System.
-
- @return
- The name of the volume's fielsystem if this information is valid,
- otherwise an empty string.
- */
-
- inline ::rtl::OUString getFileSystemName() const
- {
- return _aInfo.ustrFileSystemName ? ::rtl::OUString( _aInfo.ustrFileSystemName ) : ::rtl::OUString();
- }
-
-
- /** Get the volume device handle.
-
- @return
- The device handle of the volume if this information is valid,
- otherwise returns NULL;
- */
-
- inline VolumeDevice getDeviceHandle() const
- {
- return _aDevice;
- }
-
- /** Return whether the file system is case sensitive or
- case insensitive
-
- @return
- true if the file system is case sensitive false otherwise
- */
- bool isCaseSensitiveFileSystem() const
- {
- return (_aInfo.uAttributes & osl_Volume_Attribute_Case_Sensitive);
- }
-
- /** Return whether the file system preserves the case of
- file and directory names or not
-
- @return
- true if the file system preserves the case of file and
- directory names false otherwise
- */
- bool isCasePreservingFileSystem() const
- {
- return (_aInfo.uAttributes & osl_Volume_Attribute_Case_Is_Preserved);
- }
-
- friend class Directory;
-};
-
-// -----------------------------------------------------------------------------
-class DirectoryItem;
-
-/** The FileStatus class.
-
- @see DirectoryItem::getFileStatus
-*/
-
-class FileStatus
-{
- oslFileStatus _aStatus;
- sal_uInt32 _nMask;
-
- /** Copy constructor.
- */
-
- FileStatus( FileStatus& );
-
- /** Assignment operator.
- */
-
- FileStatus& operator = ( FileStatus& );
-
-public:
-
- enum Type {
- Directory = osl_File_Type_Directory,
- Volume = osl_File_Type_Volume,
- Regular = osl_File_Type_Regular,
- Fifo = osl_File_Type_Fifo,
- Socket = osl_File_Type_Socket,
- Link = osl_File_Type_Link,
- Special = osl_File_Type_Special,
- Unknown = osl_File_Type_Unknown
- };
-
- /** Constructor.
-
- @param nMask
- Set of flags decribing the demanded information.
- */
-
- FileStatus( sal_uInt32 nMask ): _nMask( nMask )
- {
- _aStatus.uStructSize = sizeof( oslFileStatus );
- rtl_fillMemory( &_aStatus.uValidFields, sizeof( oslFileStatus ) - sizeof( sal_uInt32 ), 0 );
- }
-
- /** Destructor.
- */
-
- ~FileStatus()
- {
- if ( _aStatus.ustrFileURL )
- rtl_uString_release( _aStatus.ustrFileURL );
- if ( _aStatus.ustrLinkTargetURL )
- rtl_uString_release( _aStatus.ustrLinkTargetURL );
- if ( _aStatus.ustrFileName )
- rtl_uString_release( _aStatus.ustrFileName );
- }
-
- /** Check if specified fields are valid.
-
- @param nMask
- Set of flags for the fields to check.
-
- @return
- sal_True if all fields are valid else sal_False.
- */
-
- inline sal_Bool isValid( sal_uInt32 nMask ) const
- {
- return ( nMask & _aStatus.uValidFields ) == nMask;
- }
-
- /** Get the file type.
-
- @return
- The file type if this information is valid, Unknown otherwise.
- */
- inline Type getFileType() const
- {
- return (_aStatus.uValidFields & osl_FileStatus_Mask_Type) ? (Type) _aStatus.eType : Unknown;
- }
-
- /** Get the file attributes.
-
- @return
- The set of attribute flags of this file.
- */
-
- inline sal_uInt64 getAttributes() const
- {
- return _aStatus.uAttributes;
- }
-
- /** Get the creation time of this file.
-
- @return
- The creation time if this information is valid,
- an uninitialized TimeValue otherwise.
- */
-
- inline TimeValue getCreationTime() const
- {
- return _aStatus.aCreationTime;
- }
-
- /** Get the file access time.
-
- @return
- The last access time if this information is valid,
- an uninitialized TimeValue otherwise.
- */
-
- inline TimeValue getAccessTime() const
- {
- return _aStatus.aAccessTime;
- }
-
- /** Get the file modification time.
-
- @return
- The last modified time if this information is valid,
- an uninitialized TimeValue otherwise.
- */
-
- inline TimeValue getModifyTime() const
- {
- return _aStatus.aModifyTime;
- }
-
- /** Get the size of the file.
-
- @return
- The actual file size if this information is valid, 0 otherwise.
- */
-
- inline sal_uInt64 getFileSize() const
- {
- return _aStatus.uFileSize;
- }
-
- /** Get the file name.
-
- @return
- The file name if this information is valid, an empty string otherwise.
- */
-
- inline ::rtl::OUString getFileName() const
- {
- return _aStatus.ustrFileName ? ::rtl::OUString(_aStatus.ustrFileName) : ::rtl::OUString();
- }
-
-
- /** Get the URL of the file.
-
- @return
- The full qualified URL of the file if this information is valid, an empty string otherwise.
- */
-
- inline ::rtl::OUString getFileURL() const
- {
- return _aStatus.ustrFileURL ? ::rtl::OUString(_aStatus.ustrFileURL) : ::rtl::OUString();
- }
-
- /** Get the link target URL.
-
- @return
- The link target URL if this information is valid, an empty string otherwise.
- */
-
- inline ::rtl::OUString getLinkTargetURL() const
- {
- return _aStatus.ustrLinkTargetURL ? ::rtl::OUString(_aStatus.ustrLinkTargetURL) : ::rtl::OUString();
- }
-
- friend class DirectoryItem;
-};
-
-
-// -----------------------------------------------------------------------------
-/** The file class object provides access to file contents and attributes.
-
- @see Directory
- @see DirectoryItem
- */
-
-class File: public FileBase
-{
- oslFileHandle _pData;
- ::rtl::OUString _aPath;
-
- /** Copy constructor.
- */
-
- File( File& );
-
- /** Assginment operator.
- */
-
- File& operator = ( File& );
-
-public:
-
- /** Constructor.
-
- @param ustrFileURL [in]
- The full qualified URL of the file. Relative paths are not allowed.
- */
-
- File( const ::rtl::OUString& ustrFileURL ): _pData( 0 ), _aPath( ustrFileURL ) {}
-
- /** Destructor
- */
-
- inline ~File()
- {
- close();
- }
-
- /** Open a regular file.
-
- Open a file. Only regular files can be openend.
-
- @param uFlags [in]
- Specifies the open mode.
-
- @return
- E_None on success
- E_NOMEM not enough memory for allocating structures
- E_INVAL the format of the parameters was not valid
- E_NAMETOOLONG pathname was too long
- E_NOENT no such file or directory
- E_ACCES permission denied
- E_AGAIN a write lock could not be established
- E_NOTDIR not a directory
- E_NXIO no such device or address
- E_NODEV no such device
- E_ROFS read-only file system
- E_TXTBSY text file busy
- E_FAULT bad address
- E_LOOP too many symbolic links encountered
- E_NOSPC no space left on device
- E_ISDIR is a directory
- E_MFILE too many open files used by the process
- E_NFILE too many open files in the system
- E_DQUOT quota exceeded
- E_EXIST file exists
- E_INTR function call was interrupted
- E_IO on I/O errors
- E_MULTIHOP multihop attempted
- E_NOLINK link has been severed
- E_EOVERFLOW value too large for defined data type
-
- @see close()
- @see setPos()
- @see getPos()
- @see read()
- @see write()
- @see getSize()
- @see setSize()
- */
-
- inline RC open( sal_uInt32 uFlags )
- {
- return (RC) osl_openFile( _aPath.pData, &_pData, uFlags );
- }
-
- /** Close an open file.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_BADF Bad file
- E_INTR function call was interrupted
- E_NOLINK link has been severed
- E_NOSPC no space left on device
- E_IO on I/O errors
-
- @see open()
- */
-
- inline RC close()
- {
- oslFileError Error = osl_File_E_BADF;
-
- if( _pData )
- {
- Error=osl_closeFile( _pData );
- _pData = NULL;
- }
-
- return (RC) Error;
- }
-
- /** Set the internal position pointer of an open file.
-
- @param uHow [in]
- Distance to move the internal position pointer (from uPos).
-
- @param uPos [in]
- Absolute position from the beginning of the file.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_OVERFLOW the resulting file offset would be a value which cannot be represented correctly for regular files
-
- @see open()
- @see getPos()
- */
-
- inline RC setPos( sal_uInt32 uHow, sal_Int64 uPos ) SAL_WARN_UNUSED_RESULT
- {
- return (RC) osl_setFilePos( _pData, uHow, uPos );
- }
-
- /** Retrieve the current position of the internal pointer of an open file.
-
- @param uPos [out]
- On success receives the current position of the file pointer.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_OVERFLOW the resulting file offset would be a value which cannot be represented correctly for regular files
-
- @see open()
- @see setPos()
- @see read()
- @see write()
- */
-
- inline RC getPos( sal_uInt64& uPos )
- {
- return (RC) osl_getFilePos( _pData, &uPos );
- }
-
- /** Test if the end of a file is reached.
-
- @param pIsEOF [out]
- Points to a variable that receives the end-of-file status.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_INTR function call was interrupted
- E_IO on I/O errors
- E_ISDIR is a directory
- E_BADF bad file
- E_FAULT bad address
- E_AGAIN operation would block
- E_NOLINK link has been severed
-
- @see open()
- @see read()
- @see readLine()
- @see setPos()
- */
-
- inline RC isEndOfFile( sal_Bool *pIsEOF )
- {
- return (RC) osl_isEndOfFile( _pData, pIsEOF );
- }
-
- /** Set the file size of an open file.
-
- Sets the file size of an open file. The file can be truncated or enlarged by the function.
- The position of the file pointer is not affeced by this function.
-
- @param uSize [in]
- New size in bytes.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_OVERFLOW the resulting file offset would be a value which cannot be represented correctly for regular files
-
- @see open()
- @see setPos()
- @see getStatus()
- */
-
- inline RC setSize( sal_uInt64 uSize )
- {
- return (RC) osl_setFileSize( _pData, uSize );
- }
-
- /** Get the file size of an open file.
-
- Gets the file size of an open file.
- The position of the file pointer is not affeced by this function.
-
- @param rSize [out]
- Current size in bytes.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_OVERFLOW the resulting file offset would be a value which cannot be represented correctly for regular files
-
- @see open()
- @see setPos()
- @see getSize()
- @see setSize()
- @see getStatus()
- */
-
- inline RC getSize( sal_uInt64 &rSize )
- {
- return (RC) osl_getFileSize( _pData, &rSize );
- }
-
- /** Read a number of bytes from a file.
-
- Reads a number of bytes from a file. The internal file pointer is
- increased by the number of bytes read.
-
- @param pBuffer [out]
- Points to a buffer which receives data. The buffer must be large enough
- to hold uBytesRequested bytes.
-
- @param uBytesRequested [in]
- Number of bytes which should be retrieved.
-
- @param rBytesRead [out]
- On success the number of bytes which have actually been retrieved.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_INTR function call was interrupted
- E_IO on I/O errors
- E_ISDIR is a directory
- E_BADF bad file
- E_FAULT bad address
- E_AGAIN operation would block
- E_NOLINK link has been severed
-
- @see open()
- @see write()
- @see readLine()
- @see setPos()
- */
-
- inline RC read( void *pBuffer, sal_uInt64 uBytesRequested, sal_uInt64& rBytesRead )
- {
- return (RC) osl_readFile( _pData, pBuffer, uBytesRequested, &rBytesRead );
- }
-
- /** Write a number of bytes to a file.
-
- Writes a number of bytes to a file.
- The internal file pointer is increased by the number of bytes read.
-
- @param pBuffer [in]
- Points to a buffer which contains the data.
-
- @param uBytesToWrite [in]
- Number of bytes which should be written.
-
- @param rBytesWritten [out]
- On success the number of bytes which have actually been written.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_FBIG file too large
- E_DQUOT quota exceeded
- E_AGAIN operation would block
- E_BADF bad file
- E_FAULT bad address
- E_INTR function call was interrupted
- E_IO on I/O errosr
- E_NOLCK no record locks available
- E_NOLINK link has been severed
- E_NOSPC no space left on device
- E_NXIO no such device or address
-
- @see open()
- @see read()
- @see setPos()
- */
-
- inline RC write(const void *pBuffer, sal_uInt64 uBytesToWrite, sal_uInt64& rBytesWritten)
- {
- return (RC) osl_writeFile( _pData, pBuffer, uBytesToWrite, &rBytesWritten );
- }
-
-
- /** Read a line from a file.
-
- Reads a line from a file. The new line delimiter is NOT returned!
-
- @param aSeq [in/out]
- A reference to a ::rtl::ByteSequence that will hold the line read on success.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_INTR function call was interrupted
- E_IO on I/O errors
- E_ISDIR is a directory
- E_BADF bad file
- E_FAULT bad address
- E_AGAIN operation would block
- E_NOLINK link has been severed
-
- @see open()
- @see read()
- @see write()
- @see setPos()
- */
-
- inline RC readLine( ::rtl::ByteSequence& aSeq )
- {
- return (RC) osl_readLine( _pData, reinterpret_cast<sal_Sequence**>(&aSeq) );
- }
-
- /** Synchronize the memory representation of a file with that on the physical medium.
-
- The function ensures that all modified data and attributes of the file associated with
- the given file handle have been written to the physical medium.
- In case the hard disk has a write cache enabled, the data may not really be on
- permanent storage when osl_syncFile returns.
-
- @return
- <dl>
- <dt>E_None</dt>
- <dd>On success</dd>
- <dt>E_INVAL</dt>
- <dd>The value of the input parameter is invalid</dd>
- </dl>
- <br><p><strong>In addition to these error codes others may occur as well, for instance:</strong></p><br>
- <dt>E_BADF</dt>
- <dd>The file is not open for writing</dd>
- <dt>E_IO</dt>
- <dd>An I/O error occurred</dd>
- <dt>E_NOSPC</dt>
- <dd>There is no enough space on the target device</dd>
- <dt>E_ROFS</dt>
- <dd>The file is located on a read only file system</dd>
- <dt>E_TIMEDOUT</dt>
- <dd>A remote connection timed out. This may happen when a file is on a remote location</dd>
- </dl>
-
- @see osl_syncFile()
- @see open()
- @see write()
- */
- inline RC sync() const
- {
- OSL_PRECOND(_pData, "File::sync(): File not open");
- return (RC)osl_syncFile(_pData);
- }
-
- /** Copy a file to a new destination.
-
- Copies a file to a new destination. Copies only files not directories.
- No assumptions should be made about preserving attributes or file time.
-
- @param ustrSourceFileURL [in]
- Full qualified URL of the source file.
-
- @param ustrDestFileURL [in]
- Full qualified URL of the destination file. A directory is NOT a valid destination file!
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_NOMEM not enough memory for allocating structures
- E_ACCES permission denied
- E_PERM operation not permitted
- E_NAMETOOLONG file name too long
- E_NOENT no such file or directory
- E_ISDIR is a directory
- E_ROFS read-only file system
-
- @see move()
- @see remove()
- */
-
- inline static RC copy( const ::rtl::OUString& ustrSourceFileURL, const ::rtl::OUString& ustrDestFileURL )
- {
- return (RC) osl_copyFile( ustrSourceFileURL.pData, ustrDestFileURL.pData );
- }
-
- /** Move a file or directory to a new destination or renames it.
-
- Moves a file or directory to a new destination or renames it.
- File time and attributes are preserved.
-
- @param ustrSourceFileURL [in]
- Full qualified URL of the source file.
-
- @param ustrDestFileURL [in]
- Full qualified URL of the destination file. An existing directory is NOT a valid destination !
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_NOMEM not enough memory for allocating structures
- E_ACCES permission denied
- E_PERM operation not permitted
- E_NAMETOOLONG file name too long
- E_NOENT no such file or directory
- E_ROFS read-only file system
-
- @see copy()
- */
-
- inline static RC move( const ::rtl::OUString& ustrSourceFileURL, const ::rtl::OUString& ustrDestFileURL )
- {
- return (RC) osl_moveFile( ustrSourceFileURL.pData, ustrDestFileURL.pData );
- }
-
- /** Remove a regular file.
-
- @param ustrFileURL [in]
- Full qualified URL of the file to remove.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_NOMEM not enough memory for allocating structures
- E_ACCES permission denied
- E_PERM operation not permitted
- E_NAMETOOLONG file name too long
- E_NOENT no such file or directory
- E_ISDIR is a directory
- E_ROFS read-only file system
- E_FAULT bad address
- E_LOOP too many symbolic links encountered
- E_IO on I/O errors
- E_BUSY device or resource busy
- E_INTR function call was interrupted
- E_LOOP too many symbolic links encountered
- E_MULTIHOP multihop attempted
- E_NOLINK link has been severed
- E_TXTBSY text file busy
-
- @see open()
- */
-
- inline static RC remove( const ::rtl::OUString& ustrFileURL )
- {
- return (RC) osl_removeFile( ustrFileURL.pData );
- }
-
- /** Set file attributes.
-
- @param ustrFileURL [in]
- The full qualified file URL.
-
- @param uAttributes [in]
- Attributes of the file to be set.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
-
- @see FileStatus
- */
-
- inline static RC setAttributes( const ::rtl::OUString& ustrFileURL, sal_uInt64 uAttributes )
- {
- return (RC) osl_setFileAttributes( ustrFileURL.pData, uAttributes );
- }
-
- /** Set the file time.
-
- @param ustrFileURL [in]
- The full qualified URL of the file.
-
- @param rCreationTime [in]
- Creation time of the given file.
-
- @param rLastAccessTime [in]
- Time of the last access of the given file.
-
- @param rLastWriteTime [in]
- Time of the last modifying of the given file.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_NOENT no such file or directory not found
-
- @see FileStatus
- */
-
- inline static RC setTime(
- const ::rtl::OUString& ustrFileURL,
- const TimeValue& rCreationTime,
- const TimeValue& rLastAccessTime,
- const TimeValue& rLastWriteTime )
- {
- return (RC) osl_setFileTime(
- ustrFileURL.pData,
- &rCreationTime,
- &rLastAccessTime,
- &rLastWriteTime );
- }
-
- friend class DirectoryItem;
-};
-
-// -----------------------------------------------------------------------------
-/** The directory item class object provides access to file status information.
-
- @see FileStatus
- */
-
-class DirectoryItem: public FileBase
-{
- oslDirectoryItem _pData;
-
-public:
-
- /** Constructor.
- */
-
- DirectoryItem(): _pData( NULL )
- {
- }
-
- /** Copy constructor.
- */
-
- DirectoryItem( const DirectoryItem& rItem ): _pData( rItem._pData)
- {
- if( _pData )
- osl_acquireDirectoryItem( _pData );
- }
-
- /** Destructor.
- */
-
- ~DirectoryItem()
- {
- if( _pData )
- osl_releaseDirectoryItem( _pData );
- }
-
- /** Assignment operator.
- */
-
- DirectoryItem& operator=(const DirectoryItem& rItem )
- {
- if (&rItem != this)
- {
- if( _pData )
- osl_releaseDirectoryItem( _pData );
-
- _pData = rItem._pData;
-
- if( _pData )
- osl_acquireDirectoryItem( _pData );
- }
- return *this;
- }
-
- /** Check for validity of this instance.
-
- @return
- sal_True if object is valid directory item else sal_False.
- */
-
- inline sal_Bool is()
- {
- return _pData != NULL;
- }
-
- /** Retrieve a single directory item.
-
- Retrieves a single directory item. The returned handle has an initial refcount of 1.
- Due to performance issues it is not recommended to use this function while
- enumerating the contents of a directory. In this case use osl_getNextDirectoryItem() instead.
-
- @param ustrFileURL [in]
- An absolute file URL.
-
- @param rItem [out]
- On success it receives a handle which can be used for subsequent calls to osl_getFileStatus().
- The handle has to be released by a call to osl_releaseDirectoryItem().
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_NOMEM not enough memory for allocating structures
- E_ACCES permission denied
- E_MFILE too many open files used by the process
- E_NFILE too many open files in the system
- E_NOENT no such file or directory
- E_LOOP too many symbolic links encountered
- E_NAMETOOLONG the file name is too long
- E_NOTDIR a component of the path prefix of path is not a directory
- E_IO on I/O errors
- E_MULTIHOP multihop attempted
- E_NOLINK link has been severed
- E_FAULT bad address
- E_INTR the function call was interrupted
-
- @see FileStatus
- @see Directory::getNextItem()
- */
-
- static inline RC get( const ::rtl::OUString& ustrFileURL, DirectoryItem& rItem )
- {
- if( rItem._pData)
- {
- osl_releaseDirectoryItem( rItem._pData );
- rItem._pData = NULL;
- }
-
- return (RC) osl_getDirectoryItem( ustrFileURL.pData, &rItem._pData );
- }
-
- /** Retrieve information about a single file or directory.
-
- @param rStatus [in|out]
- Reference to a class which receives the information of the file or directory
- represented by this directory item.
-
- @return
- E_None on success
- E_NOMEM not enough memory for allocating structures
- E_INVAL the format of the parameters was not valid
- E_LOOP too many symbolic links encountered
- E_ACCES permission denied
- E_NOENT no such file or directory
- E_NAMETOOLONG file name too long
- E_BADF invalid oslDirectoryItem parameter
- E_FAULT bad address
- E_OVERFLOW value too large for defined data type
- E_INTR function call was interrupted
- E_NOLINK link has been severed
- E_MULTIHOP components of path require hopping to multiple remote machines and the file system does not allow it
- E_MFILE too many open files used by the process
- E_NFILE too many open files in the system
- E_NOSPC no space left on device
- E_NXIO no such device or address
- E_IO on I/O errors
- E_NOSYS function not implemented
-
- @see get()
- @see Directory::getNextItem()
- @see FileStatus
- */
-
- inline RC getFileStatus( FileStatus& rStatus )
- {
- return (RC) osl_getFileStatus( _pData, &rStatus._aStatus, rStatus._nMask );
- }
-
- friend class Directory;
-};
-
-//###########################################
-
-/** Base class for observers of directory creation notifications.
-
- Clients which uses the method createDirectoryPath of the class
- Directory may want to be informed about the directories that
- have been created. This may be accomplished by deriving from
- this base class and overwriting the virtual function
- DirectoryCreated.
-
- @see Directory::createPath
-*/
-class DirectoryCreationObserver
-{
-public:
- virtual ~DirectoryCreationObserver() {}
-
- /** This method will be called when a new directory has been
- created and needs to be overwritten by derived classes.
- You must not delete the directory that was just created
- otherwise you will run into an endless loop.
-
- @param aDirectoryUrl
- [in]The absolute file URL of the directory that was just created by
- ::osl::Directory::createPath.
- */
- virtual void DirectoryCreated(const rtl::OUString& aDirectoryUrl) = 0;
-};
-
-//###########################################
-// This just an internal helper function for
-// private use.
-extern "C" inline void SAL_CALL onDirectoryCreated(void* pData, rtl_uString* aDirectoryUrl)
-{
- (static_cast<DirectoryCreationObserver*>(pData))->DirectoryCreated(aDirectoryUrl);
-}
-
-/** The directory class object provides a enumeration of DirectoryItems.
-
- @see DirectoryItem
- @see File
- */
-
-class Directory: public FileBase
-{
- oslDirectory _pData;
- ::rtl::OUString _aPath;
-
- /** Copy constructor.
- */
-
- Directory( Directory& );
-
- /** Assignment operator.
- */
-
- Directory& operator = ( Directory& );
-
-public:
-
- /** Constructor.
-
- @param strPath [in]
- The full qualified URL of the directory.
- Relative URLs are not allowed.
- */
-
- Directory( const ::rtl::OUString& strPath ): _pData( 0 ), _aPath( strPath )
- {
- }
-
- /** Destructor.
- */
-
- ~Directory()
- {
- close();
- }
-
- /** Open a directory for enumerating its contents.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_NOENT the specified path doesn't exist
- E_NOTDIR the specified path is not an directory
- E_NOMEM not enough memory for allocating structures
- E_ACCES permission denied
- E_MFILE too many open files used by the process
- E_NFILE too many open files in the system
- E_NAMETOOLONG File name too long
- E_LOOP Too many symbolic links encountered
-
- @see getNextItem()
- @see close()
- */
-
- inline RC open()
- {
- return (RC) osl_openDirectory( _aPath.pData, &_pData );
- }
-
- /** Query if directory is open.
-
- Query if directory is open and so item enumeration is valid.
-
- @return
- sal_True if the directory is open else sal_False.
-
- @see open()
- @see close()
- */
-
- inline sal_Bool isOpen() { return _pData != NULL; }
-
- /** Close a directory.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_NOMEM not enough memory for allocating structures
- E_BADF invalid oslDirectory parameter
- E_INTR the function call was interrupted
-
- @see open()
- */
-
- inline RC close()
- {
- oslFileError Error = osl_File_E_BADF;
-
- if( _pData )
- {
- Error=osl_closeDirectory( _pData );
- _pData = NULL;
- }
-
- return (RC) Error;
- }
-
-
- /** Resets the directory item enumeration to the beginning.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_NOENT the specified path doesn't exist
- E_NOTDIR the specified path is not an directory
- E_NOMEM not enough memory for allocating structures
- E_ACCES permission denied
- E_MFILE too many open files used by the process
- E_NFILE too many open files in the system
- E_NAMETOOLONG File name too long
- E_LOOP Too many symbolic links encountered
-
- @see open()
- */
-
- inline RC reset()
- {
- close();
- return open();
- }
-
- /** Retrieve the next item of a previously opened directory.
-
- Retrieves the next item of a previously opened directory.
-
- @param rItem [out]
- On success a valid DirectoryItem.
-
- @param nHint [in]
- With this parameter the caller can tell the implementation that (s)he
- is going to call this function uHint times afterwards. This enables the implementation to
- get the information for more than one file and cache it until the next calls.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_NOMEM not enough memory for allocating structures
- E_NOENT no more entries in this directory
- E_BADF invalid oslDirectory parameter
- E_OVERFLOW the value too large for defined data type
-
- @see DirectoryItem
- */
-
- inline RC getNextItem( DirectoryItem& rItem, sal_uInt32 nHint = 0 )
- {
- if( rItem._pData )
- {
- osl_releaseDirectoryItem( rItem._pData );
- rItem._pData = 0;
- }
- return ( RC) osl_getNextDirectoryItem( _pData, &rItem._pData, nHint );
- }
-
-
- /** Retrieve information about a volume.
-
- Retrieves information about a volume. A volume can either be a mount point, a network
- resource or a drive depending on Operating System and File System.
-
- @param ustrDirectoryURL [in]
- Full qualified URL of the volume
-
- @param rInfo [out]
- On success it receives information about the volume.
-
- @return
- E_None on success
- E_NOMEM not enough memory for allocating structures
- E_INVAL the format of the parameters was not valid
- E_NOTDIR not a directory
- E_NAMETOOLONG file name too long
- E_NOENT no such file or directory
- E_ACCES permission denied
- E_LOOP too many symbolic links encountered
- E_FAULT Bad address
- E_IO on I/O errors
- E_NOSYS function not implemented
- E_MULTIHOP multihop attempted
- E_NOLINK link has been severed
- E_INTR function call was interrupted
-
- @see FileStatus
- @see VolumeInfo
- */
-
- inline static RC getVolumeInfo( const ::rtl::OUString& ustrDirectoryURL, VolumeInfo& rInfo )
- {
- return (RC) osl_getVolumeInformation( ustrDirectoryURL.pData, &rInfo._aInfo, rInfo._nMask );
- }
-
- /** Create a directory.
-
- @param ustrDirectoryURL [in]
- Full qualified URL of the directory to create.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_NOMEM not enough memory for allocating structures
- E_EXIST file exists
- E_ACCES permission denied
- E_NAMETOOLONG file name too long
- E_NOENT no such file or directory
- E_NOTDIR not a directory
- E_ROFS read-only file system
- E_NOSPC no space left on device
- E_DQUOT quota exceeded
- E_LOOP too many symbolic links encountered
- E_FAULT bad address
- E_IO on I/O errors
- E_MLINK too many links
- E_MULTIHOP multihop attempted
- E_NOLINK link has been severed
-
- @see remove()
- */
-
- inline static RC create( const ::rtl::OUString& ustrDirectoryURL )
- {
- return (RC) osl_createDirectory( ustrDirectoryURL.pData );
- }
-
- /** Remove an empty directory.
-
- @param ustrDirectoryURL [in]
- Full qualified URL of the directory.
-
- @return
- E_None on success
- E_INVAL the format of the parameters was not valid
- E_NOMEM not enough memory for allocating structures
- E_PERM operation not permitted
- E_ACCES permission denied
- E_NOENT no such file or directory
- E_NOTDIR not a directory
- E_NOTEMPTY directory not empty
- E_FAULT bad address
- E_NAMETOOLONG file name too long
- E_BUSY device or resource busy
- E_ROFS read-only file system
- E_LOOP too many symbolic links encountered
- E_BUSY device or resource busy
- E_EXIST file exists
- E_IO on I/O errors
- E_MULTIHOP multihop attempted
- E_NOLINK link has been severed
-
- @see create()
- */
-
- inline static RC remove( const ::rtl::OUString& ustrDirectoryURL )
- {
- return (RC) osl_removeDirectory( ustrDirectoryURL.pData );
- }
-
- /** Create a directory path.
-
- The osl_createDirectoryPath function creates a specified directory path.
- All nonexisting sub directories will be created.
- <p><strong>PLEASE NOTE:</strong> You cannot rely on getting the error code
- E_EXIST for existing directories. Programming against this error code is
- in general a strong indication of a wrong usage of osl_createDirectoryPath.</p>
-
- @param aDirectoryUrl
- [in] The absolute file URL of the directory path to create.
- A relative file URL will not be accepted.
-
- @param aDirectoryCreationObserver
- [in] Pointer to an instance of type DirectoryCreationObserver that will
- be informed about the creation of a directory. The value of this
- parameter may be NULL, in this case notifications will not be sent.
-
- @return
- <dl>
- <dt>E_None</dt>
- <dd>On success</dd>
- <dt>E_INVAL</dt>
- <dd>The format of the parameters was not valid</dd>
- <dt>E_ACCES</dt>
- <dd>Permission denied</dd>
- <dt>E_EXIST</dt>
- <dd>The final node of the specified directory path already exist</dd>
- <dt>E_NAMETOOLONG</dt>
- <dd>The name of the specified directory path exceeds the maximum allowed length</dd>
- <dt>E_NOTDIR</dt>
- <dd>A component of the specified directory path already exist as file in any part of the directory path</dd>
- <dt>E_ROFS</dt>
- <dd>Read-only file system</dd>
- <dt>E_NOSPC</dt>
- <dd>No space left on device</dd>
- <dt>E_DQUOT</dt>
- <dd>Quota exceeded</dd>
- <dt>E_FAULT</dt>
- <dd>Bad address</dd>
- <dt>E_IO</dt>
- <dd>I/O error</dd>
- <dt>E_LOOP</dt>
- <dd>Too many symbolic links encountered</dd>
- <dt>E_NOLINK</dt>
- <dd>Link has been severed</dd>
- <dt>E_invalidError</dt>
- <dd>An unknown error occurred</dd>
- </dl>
-
- @see DirectoryCreationObserver
- @see create
- */
- static RC createPath(
- const ::rtl::OUString& aDirectoryUrl,
- DirectoryCreationObserver* aDirectoryCreationObserver = NULL)
- {
- return (RC)osl_createDirectoryPath(
- aDirectoryUrl.pData,
- (aDirectoryCreationObserver) ? onDirectoryCreated : NULL,
- aDirectoryCreationObserver);
- }
-};
-
-} /* namespace osl */
-
-#endif /* __cplusplus */
-#endif /* _OSL_FILE_HXX_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/getglobalmutex.hxx b/sal/inc/osl/getglobalmutex.hxx
deleted file mode 100644
index e5aa7e9ed..000000000
--- a/sal/inc/osl/getglobalmutex.hxx
+++ /dev/null
@@ -1,53 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#if !defined INCLUDED_OSL_GETGLOBALMUTEX_HXX
-#define INCLUDED_OSL_GETGLOBALMUTEX_HXX
-
-#include "osl/mutex.hxx"
-
-namespace osl {
-
-/** A helper functor for the rtl_Instance template.
-
- See the rtl_Instance template for examples of how this class is used.
- */
-class GetGlobalMutex
-{
-public:
- ::osl::Mutex * operator()()
- {
- return ::osl::Mutex::getGlobalMutex();
- }
-};
-
-}
-
-#endif // INCLUDED_OSL_GETGLOBALMUTEX_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/interlck.h b/sal/inc/osl/interlck.h
deleted file mode 100644
index 8891e8bc7..000000000
--- a/sal/inc/osl/interlck.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_INTERLOCK_H_
-#define _OSL_INTERLOCK_H_
-
-#include <sal/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef sal_Int32 oslInterlockedCount;
-
-/** Increments the count variable addressed by pCount.
- @param Address of counter variable
- @return The result of the operation is zero, the value of the count variable.
-*/
-oslInterlockedCount SAL_CALL osl_incrementInterlockedCount(oslInterlockedCount* pCount);
-
-/** Decrement the count variable addressed by pCount.
- @param Address of counter variable
- @return The result of the operation is the new value is of the count variable.
-*/
-oslInterlockedCount SAL_CALL osl_decrementInterlockedCount(oslInterlockedCount* pCount);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OSL_INTERLOCK_H_ */
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/module.h b/sal/inc/osl/module.h
deleted file mode 100644
index 803b0b6f4..000000000
--- a/sal/inc/osl/module.h
+++ /dev/null
@@ -1,221 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/** @HTML */
-
-#ifndef _OSL_MODULE_H_
-#define _OSL_MODULE_H_
-
-# include <rtl/ustring.h>
-# include <rtl/tencinfo.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef SAL_DLLPREFIX
-#define SAL_MODULENAME(name) SAL_DLLPREFIX name SAL_DLLEXTENSION
-#else
-#define SAL_MODULENAME(name) name SAL_DLLEXTENSION
-#endif
-
-#if defined(SAL_W32)
-#define SAL_MODULENAME_WITH_VERSION(name, version) name version SAL_DLLEXTENSION
-
-#elif defined(SAL_UNX)
-#if defined(MACOSX)
-#define SAL_MODULENAME_WITH_VERSION(name, version) SAL_DLLPREFIX name ".dylib." version
-#else
-#define SAL_MODULENAME_WITH_VERSION(name, version) SAL_DLLPREFIX name SAL_DLLEXTENSION "." version
-#endif
-
-#endif
-
-#define SAL_LOADMODULE_DEFAULT 0x00000
-#define SAL_LOADMODULE_LAZY 0x00001
-#define SAL_LOADMODULE_NOW 0x00002
-#define SAL_LOADMODULE_GLOBAL 0x00100
-
-typedef void* oslModule;
-
-/** Generic Function pointer type that will be used as symbol address.
- @see osl_getFunctionSymbol.
- @see osl_getModuleURLFromFunctionAddress.
-*/
-typedef void ( SAL_CALL *oslGenericFunction )( void );
-
-/** Load a shared library or module.
- @param strModuleName denotes the name of the module to be loaded.
- @return NULL if the module could not be loaded, otherwise a handle to the module.
-*/
-oslModule SAL_CALL osl_loadModule(rtl_uString *strModuleName, sal_Int32 nRtldMode);
-
-/** Load a shared library or module.
- @param pModuleName denotes the name of the module to be loaded.
- @return NULL if the module could not be loaded, otherwise a handle to the module.
- @since UDK 3.6
-*/
-oslModule SAL_CALL osl_loadModuleAscii(const sal_Char *pModuleName, sal_Int32 nRtldMode);
-
-/** Load a module located relative to some other module.
-
- @param baseModule
- must point to a function that is part of the code of some loaded module;
- must not be NULL.
-
- @param relativePath
- a relative URL; must not be NULL.
-
- @param mode
- the SAL_LOADMODULE_xxx flags.
-
- @return
- a non-NULL handle to the loaded module, or NULL if an error occurred.
-
- @since UDK 3.2.8
-*/
-oslModule SAL_CALL osl_loadModuleRelative(
- oslGenericFunction baseModule, rtl_uString * relativePath, sal_Int32 mode);
-
-/** Retrieve the handle of an already loaded module.
-
- This function can be used to search for a function symbol in the process address space.
- Do not use the returned handle as an argument to osl_unloadModule. On Unix platforms,
- pModuleName gets ignored and the special handle RTLD_DEFAULT is returned.
-
- @param pModuleName
- [in] denotes the name of the module to search for. Ignored on Unix
-
- @param pResult
- [out] a pointer to a oslModule that is updated with the requested module handle
- on success.
-
- @return
- sal_True if the module handle could be retrieved and has been copied to *pResult.
- sal_False if the module has not been loaded yet.
-
- @see osl_getFunctionSymbol
- @see osl_getAsciiFunctionSymbol
-*/
-sal_Bool SAL_CALL osl_getModuleHandle(rtl_uString *pModuleName, oslModule *pResult);
-
-/** Release the module
-*/
-void SAL_CALL osl_unloadModule(oslModule Module);
-
-/** lookup the specified symbol name.
- @return address of the symbol or NULL if lookup failed.
-*/
-void* SAL_CALL osl_getSymbol( oslModule Module, rtl_uString *strSymbolName);
-
-/** Lookup the specified function symbol name.
-
- osl_getFunctionSymbol is an alternative function for osl_getSymbol.
- Use Function pointer as symbol address to conceal type conversion.
-
- @param Module
- [in] the handle of the Module.
-
- @param ustrFunctionSymbolName
- [in] Name of the function that will be looked up.
-
- @return
- <dl>
- <dt>Function address.</dt>
- <dd>on success</dd>
- <dt>NULL</dt>
- <dd>lookup failed or the parameter are invalid.</dd>
- </dl>
-
- @see osl_getSymbol
- @see osl_getAsciiFunctionSymbol
-*/
-oslGenericFunction SAL_CALL osl_getFunctionSymbol( oslModule Module, rtl_uString *ustrFunctionSymbolName );
-
-/** Lookup the specified function symbol name.
-
- osl_getAsciiFunctionSymbol is an alternative function for osl_getFunctionSymbol.
- It expects the C-style function name string to contain ascii characters only.
-
- @param Module
- [in] a module handle as returned by osl_loadModule or osl_getModuleHandle
-
- @param pFunctionSymbolName
- [in] Name of the function that will be looked up.
-
- @return
- <dl>
- <dt>Function address.</dt>
- <dd>on success</dd>
- <dt>NULL</dt>
- <dd>lookup failed or the parameter are invalid.</dd>
- </dl>
-
- @see osl_getModuleHandle
- @see osl_getFunctionSymbol
-*/
-oslGenericFunction SAL_CALL osl_getAsciiFunctionSymbol(oslModule Module, const sal_Char *pSymbol);
-
-
-/** Lookup URL of module which is mapped at the specified address.
- @param pv specifies an address in the process memory space.
- @param pustrURL receives the URL of the module that is mapped at pv.
- @return sal_True on success, sal_False if no module can be found at the specified address.
-*/
-sal_Bool SAL_CALL osl_getModuleURLFromAddress( void *pv, rtl_uString **pustrURL );
-
-/** Lookup URL of module which is mapped at the specified function address.
-
- osl_getModuleURLFromFunctionAddress is an alternative function for osl_getModuleURLFromAddress.
- Use Function pointer as symbol address to conceal type conversion.
-
- @param pf
- [in] function address in oslGenericFunction format.
-
- @param pustrFunctionURL
- [out] receives the URL of the module that is mapped at pf.
-
- @return
- <dl>
- <dt>sal_True</dt>
- <dd>on success</dd>
- <dt>sal_False</dt>
- <dd>no module can be found at the specified function address or parameter is somewhat invalid.</dd>
- </dl>
-
- @see osl_getModuleURLFromAddress
-*/
-sal_Bool SAL_CALL osl_getModuleURLFromFunctionAddress( oslGenericFunction pf, rtl_uString **pustrFunctionURL );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OSL_MODULE_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/module.hxx b/sal/inc/osl/module.hxx
deleted file mode 100644
index 425de2fe9..000000000
--- a/sal/inc/osl/module.hxx
+++ /dev/null
@@ -1,161 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/** @HTML */
-
-#ifndef _OSL_MODULE_HXX_
-#define _OSL_MODULE_HXX_
-
-#include <rtl/ustring.hxx>
-#include <osl/module.h>
-
-namespace osl
-{
-
-class Module
-{
- Module( const Module&);
- Module& operator = ( const Module&);
-
-public:
- static sal_Bool getUrlFromAddress(void * addr, ::rtl::OUString & libraryUrl) {
- return osl_getModuleURLFromAddress(addr, &libraryUrl.pData);
- }
-
- /** Get module URL from the specified function address in the module.
-
- Similar to getUrlFromAddress, but use a function address to get URL of the Module.
- Use Function pointer as symbol address to conceal type conversion.
-
- @param addr
- [in] function address in oslGenericFunction format.
-
- @param libraryUrl
- [in|out] receives the URL of the module.
-
- @return
- <dl>
- <dt>sal_True</dt>
- <dd>on success</dd>
- <dt>sal_False</dt>
- <dd>can not get the URL from the specified function address or the parameter is invalid.</dd>
- </dl>
-
- @see getUrlFromAddress
- */
- static sal_Bool getUrlFromAddress( oslGenericFunction addr, ::rtl::OUString & libraryUrl){
- return osl_getModuleURLFromFunctionAddress( addr, &libraryUrl.pData );
- }
-
- Module(): m_Module(0){}
-
- Module( const ::rtl::OUString& strModuleName, sal_Int32 nRtldMode = SAL_LOADMODULE_DEFAULT) : m_Module(0)
- {
- load( strModuleName, nRtldMode);
- }
-
- ~Module()
- {
- osl_unloadModule(m_Module);
- }
-
- sal_Bool SAL_CALL load( const ::rtl::OUString& strModuleName,
- sal_Int32 nRtldMode = SAL_LOADMODULE_DEFAULT)
- {
- unload();
- m_Module= osl_loadModule( strModuleName.pData, nRtldMode );
- return is();
- }
-
- /// @since UDK 3.2.8
- sal_Bool SAL_CALL loadRelative(
- ::oslGenericFunction baseModule, ::rtl::OUString const & relativePath,
- ::sal_Int32 mode = SAL_LOADMODULE_DEFAULT)
- {
- unload();
- m_Module = osl_loadModuleRelative(baseModule, relativePath.pData, mode);
- return is();
- }
-
- void SAL_CALL unload()
- {
- if (m_Module)
- {
- osl_unloadModule(m_Module);
- m_Module = 0;
- }
- }
-
- sal_Bool SAL_CALL is() const
- {
- return m_Module != NULL;
- }
-
- void* SAL_CALL getSymbol( const ::rtl::OUString& strSymbolName)
- {
- return ( osl_getSymbol( m_Module, strSymbolName.pData ) );
- }
-
- /** Get function address by the function name in the module.
-
- getFunctionSymbol is an alternative function for getSymbol.
- Use Function pointer as symbol address to conceal type conversion.
-
- @param ustrFunctionSymbolName
- [in] Function name to be looked up.
-
- @return
- <dl>
- <dt>oslGenericFunction format function address</dt>
- <dd>on success</dd>
- <dt>NULL</dt>
- <dd>lookup failed or parameter is somewhat invalid</dd>
- </dl>
-
- @see getSymbol
- */
- oslGenericFunction SAL_CALL getFunctionSymbol( const ::rtl::OUString& ustrFunctionSymbolName )
- {
- return ( osl_getFunctionSymbol( m_Module, ustrFunctionSymbolName.pData ) );
- }
-
- operator oslModule() const
- {
- return m_Module;
- }
-
-private:
- oslModule m_Module;
-
-};
-
-}
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/mutex.h b/sal/inc/osl/mutex.h
deleted file mode 100644
index 9798254fc..000000000
--- a/sal/inc/osl/mutex.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_MUTEX_H_
-#define _OSL_MUTEX_H_
-
-#include <sal/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct _oslMutexImpl;
-typedef struct _oslMutexImpl * oslMutex;
-
-/** Create a thread-local mutex.
- @return 0 if the mutex could not be created, otherwise a handle to the mutex.
-*/
-oslMutex SAL_CALL osl_createMutex(void);
-
-/** Release the OS-structures and free mutex data-structure.
- @param Mutex the mutex-handle
-*/
-void SAL_CALL osl_destroyMutex(oslMutex Mutex);
-
-/** Acquire the mutex, block if already acquired by another thread.
- @param Mutex handle to a created mutex.
- @return False if system-call fails.
-*/
-sal_Bool SAL_CALL osl_acquireMutex(oslMutex Mutex);
-
-/** Try to acquire the mutex without blocking.
- @param Mutex handle to a created mutex.
- @return False if it could not be acquired.
-*/
-sal_Bool SAL_CALL osl_tryToAcquireMutex(oslMutex Mutex);
-
-/** Release the mutex.
- @param Mutex handle to a created mutex.
- @return False if system-call fails.
-*/
-sal_Bool SAL_CALL osl_releaseMutex(oslMutex Mutex);
-
-/** Returns a unique and global mutex.
- @return the global mutex.
-*/
-oslMutex * SAL_CALL osl_getGlobalMutex(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OSL_MUTEX_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/mutex.hxx b/sal/inc/osl/mutex.hxx
deleted file mode 100644
index d4c50b80b..000000000
--- a/sal/inc/osl/mutex.hxx
+++ /dev/null
@@ -1,281 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_MUTEX_HXX_
-#define _OSL_MUTEX_HXX_
-
-#ifdef __cplusplus
-
-#include <osl/mutex.h>
-
-
-namespace osl
-{
- /** A mutual exclusion synchronization object
- */
- class Mutex {
-
- public:
- /** Create a thread-local mutex.
- @return 0 if the mutex could not be created, otherwise a handle to the mutex.
- @seealso ::osl_createMutex()
- */
- Mutex()
- {
- mutex = osl_createMutex();
- }
-
- /** Release the OS-structures and free mutex data-structure.
- @seealso ::osl_destroyMutex()
- */
- ~Mutex()
- {
- osl_destroyMutex(mutex);
- }
-
- /** Acquire the mutex, block if already acquired by another thread.
- @return sal_False if system-call fails.
- @seealso ::osl_acquireMutex()
- */
- sal_Bool acquire()
- {
- return osl_acquireMutex(mutex);
- }
-
- /** Try to acquire the mutex without blocking.
- @return sal_False if it could not be acquired.
- @seealso ::osl_tryToAcquireMutex()
- */
- sal_Bool tryToAcquire()
- {
- return osl_tryToAcquireMutex(mutex);
- }
-
- /** Release the mutex.
- @return sal_False if system-call fails.
- @seealso ::osl_releaseMutex()
- */
- sal_Bool release()
- {
- return osl_releaseMutex(mutex);
- }
-
- /** Returns a global static mutex object.
- The global and static mutex object can be used to initialize other
- static objects in a thread safe manner.
- @return the global mutex object
- @seealso ::osl_getGlobalMutex()
- */
- static Mutex * getGlobalMutex()
- {
- return (Mutex *)osl_getGlobalMutex();
- }
-
- private:
- oslMutex mutex;
-
- /** The underlying oslMutex has no reference count.
-
- Since the underlying oslMutex is not a reference counted object, copy
- constructed Mutex may work on an already destructed oslMutex object.
-
- */
- Mutex(const Mutex&);
-
- /** The underlying oslMutex has no reference count.
-
- When destructed, the Mutex object destroys the undelying oslMutex,
- which might cause severe problems in case it's a temporary object.
-
- */
- Mutex(oslMutex Mutex);
-
- /** This assignment operator is private for the same reason as
- the copy constructor.
- */
- Mutex& operator= (const Mutex&);
-
- /** This assignment operator is private for the same reason as
- the constructor taking a oslMutex argument.
- */
- Mutex& operator= (oslMutex);
- };
-
- /** A helper class for mutex objects and interfaces.
- */
- template<class T>
- class Guard
- {
- private:
- Guard( const Guard& );
- const Guard& operator = ( const Guard& );
-
- protected:
- T * pT;
- public:
-
- /** Acquires the object specified as parameter.
- */
- Guard(T * pT_) : pT(pT_)
- {
- pT->acquire();
- }
-
- /** Acquires the object specified as parameter.
- */
- Guard(T & t) : pT(&t)
- {
- pT->acquire();
- }
-
- /** Releases the mutex or interface. */
- ~Guard()
- {
- pT->release();
- }
- };
-
- /** A helper class for mutex objects and interfaces.
- */
- template<class T>
- class ClearableGuard
- {
- private:
- ClearableGuard( const ClearableGuard& );
- const ClearableGuard& operator = ( const ClearableGuard& );
- protected:
- T * pT;
- public:
-
- /** Acquires the object specified as parameter.
- */
- ClearableGuard(T * pT_) : pT(pT_)
- {
- pT->acquire();
- }
-
- /** Acquires the object specified as parameter.
- */
- ClearableGuard(T & t) : pT(&t)
- {
- pT->acquire();
- }
-
- /** Releases the mutex or interface if not already released by clear().
- */
- ~ClearableGuard()
- {
- if (pT)
- pT->release();
- }
-
- /** Releases the mutex or interface.
- */
- void clear()
- {
- if(pT)
- {
- pT->release();
- pT = NULL;
- }
- }
- };
-
- /** A helper class for mutex objects and interfaces.
- */
- template< class T >
- class ResettableGuard : public ClearableGuard< T >
- {
- private:
- ResettableGuard(ResettableGuard &); // not defined
- void operator =(ResettableGuard &); // not defined
-
- protected:
- T* pResetT;
- public:
- /** Acquires the object specified as parameter.
- */
- ResettableGuard( T* pT_ ) :
- ClearableGuard<T>( pT_ ),
- pResetT( pT_ )
- {}
-
- /** Acquires the object specified as parameter.
- */
- ResettableGuard( T& rT ) :
- ClearableGuard<T>( rT ),
- pResetT( &rT )
- {}
-
- /** Re-aquires the mutex or interface.
- */
- void reset()
- {
- if( pResetT )
- {
- this->pT = pResetT;
- this->pT->acquire();
- }
- }
- };
-
- typedef Guard<Mutex> MutexGuard;
- typedef ClearableGuard<Mutex> ClearableMutexGuard;
- typedef ResettableGuard< Mutex > ResettableMutexGuard;
-
- /** SolarMutex interface, needed for SolarMutex.
- Deprecated, used just for Application::GetSolarMutex().
- */
- class SolarMutex
- {
- public:
- /** Blocks if mutex is already in use
- */
- virtual void SAL_CALL acquire() = 0;
-
- /** Tries to get the mutex without blocking.
- */
- virtual sal_Bool SAL_CALL tryToAcquire() = 0;
-
- /** Releases the mutex.
- */
- virtual void SAL_CALL release() = 0;
-
- protected:
- SolarMutex() {}
- virtual ~SolarMutex() {}
- };
- typedef osl::Guard< SolarMutex > SolarGuard;
- typedef osl::ClearableGuard< SolarMutex > ClearableSolarGuard;
- typedef osl::ResettableGuard< SolarMutex > ResettableSolarGuard;
-}
-
-#endif /* __cplusplus */
-#endif /* _OSL_MUTEX_HXX_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/nlsupport.h b/sal/inc/osl/nlsupport.h
deleted file mode 100644
index 53bb7b2b6..000000000
--- a/sal/inc/osl/nlsupport.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#ifndef _OSL_NLSUPPORT_H_
-#define _OSL_NLSUPPORT_H_
-
-# include <rtl/locale.h>
-# include <rtl/textenc.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- Determines the text encoding used by the underlying platform for the
- specified locale.
-
- @param pLocale
- the locale to return the text encoding for. If this parameter is NULL,
- the default locale of the current process is used.
-
- @returns the rtl_TextEncoding that matches the platform specific encoding
- description or RTL_TEXTENCODING_DONTKNOW if no mapping is available.
-*/
-
-rtl_TextEncoding SAL_CALL osl_getTextEncodingFromLocale( rtl_Locale * pLocale );
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OSL_NLSUPPORT_H_ */
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/pipe.h b/sal/inc/osl/pipe.h
deleted file mode 100644
index 0256eea5c..000000000
--- a/sal/inc/osl/pipe.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#ifndef _OSL_PIPE_H_
-#define _OSL_PIPE_H_
-
-# include <rtl/ustring.h>
-
-
-# include <osl/security.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum {
- osl_Pipe_E_None, /* no error */
- osl_Pipe_E_NotFound, /* Pipe could not be found */
- osl_Pipe_E_AlreadyExists, /* Pipe already exists */
- osl_Pipe_E_NoProtocol, /* Protocol not available */
- osl_Pipe_E_NetworkReset, /* Network dropped connection because of reset */
- osl_Pipe_E_ConnectionAbort, /* Software caused connection abort */
- osl_Pipe_E_ConnectionReset, /* Connection reset by peer */
- osl_Pipe_E_NoBufferSpace, /* No buffer space available */
- osl_Pipe_E_TimedOut, /* Connection timed out */
- osl_Pipe_E_ConnectionRefused, /* Connection refused */
- osl_Pipe_E_invalidError, /* unmapped error: always last entry in enum! */
- osl_Pipe_E_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-} oslPipeError;
-
-typedef sal_uInt32 oslPipeOptions;
-#define osl_Pipe_OPEN 0x0000 /* open existing pipe */
-#define osl_Pipe_CREATE 0x0001 /* create pipe and open it, fails if already existst */
-
-typedef struct oslPipeImpl * oslPipe;
-
-/**
- */
-oslPipe SAL_CALL osl_createPipe(rtl_uString *strPipeName, oslPipeOptions Options, oslSecurity Security);
-
-/** decreases the refcount of the pipe.
- If the refcount drops to zero, the handle is destroyed.
- */
-void SAL_CALL osl_releasePipe( oslPipe );
-
-/** increases the refcount of the pipe.
- */
-void SAL_CALL osl_acquirePipe( oslPipe Pipe );
-
-/** closes the pipe, any read,write or accept actions stop immeadiatly.
- */
-void SAL_CALL osl_closePipe( oslPipe );
-
-
-oslPipe SAL_CALL osl_acceptPipe(oslPipe Pipe);
-
-sal_Int32 SAL_CALL osl_sendPipe(oslPipe Pipe, const void* pBuffer, sal_Int32 BufferSize);
-sal_Int32 SAL_CALL osl_receivePipe(oslPipe Pipe, void* pBuffer, sal_Int32 BufferSize);
-
-/** Reads blocking from the pipe.
- @return Number of read bytes. If less than BufferSize, the pipe was closed.
- */
-sal_Int32 SAL_CALL osl_readPipe( oslPipe Pipe, void *pBuffer, sal_Int32 BufferSize );
-
-/** Writes blocking onto the pipe.
- @return Number of written bytes. If less than BufferSize, the pipe was closed.
- */
-sal_Int32 SAL_CALL osl_writePipe( oslPipe Pipe, const void *pBuffer, sal_Int32 BufferSize );
-
-oslPipeError SAL_CALL osl_getLastPipeError(oslPipe Pipe);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OSL_PIPE_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/pipe.hxx b/sal/inc/osl/pipe.hxx
deleted file mode 100644
index 1af08711f..000000000
--- a/sal/inc/osl/pipe.hxx
+++ /dev/null
@@ -1,215 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _OSL_PIPE_HXX_
-#define _OSL_PIPE_HXX_
-
-#include <osl/pipe_decl.hxx>
-
-namespace osl
-{
- //______________________________________________________________________________
- inline Pipe::Pipe()
- : m_handle( 0 )
- {}
-
- //______________________________________________________________________________
- inline Pipe::Pipe(const ::rtl::OUString& strName, oslPipeOptions Options )
- : m_handle( osl_createPipe( strName.pData, Options , 0 ) )
- {}
-
- //______________________________________________________________________________
- inline Pipe::Pipe(const ::rtl::OUString& strName, oslPipeOptions Options,const Security & rSecurity)
- : m_handle( osl_createPipe( strName.pData, Options , rSecurity.getHandle() ) )
- {}
-
- //______________________________________________________________________________
- inline Pipe::Pipe(const Pipe& pipe )
- : m_handle( pipe.m_handle )
- {
- if( m_handle )
- osl_acquirePipe( m_handle );
- }
-
- //______________________________________________________________________________
- inline Pipe::Pipe( oslPipe pipe, __sal_NoAcquire )
- : m_handle ( pipe )
- {}
-
- //______________________________________________________________________________
- inline Pipe::Pipe(oslPipe pipe)
- : m_handle( pipe )
- {
- if( m_handle )
- osl_acquirePipe( m_handle );
- }
-
- //______________________________________________________________________________
- inline Pipe::~Pipe()
- {
- if( m_handle )
- osl_releasePipe( m_handle );
- }
-
- //______________________________________________________________________________
- inline sal_Bool Pipe::create( const ::rtl::OUString & strName,
- oslPipeOptions Options, const Security &rSec )
- {
- *this = Pipe( strName, Options, rSec );
- return is();
- }
-
- //______________________________________________________________________________
- inline sal_Bool Pipe::create( const ::rtl::OUString & strName, oslPipeOptions Options )
- {
- *this = Pipe( strName, Options );
- return is();
- }
- //______________________________________________________________________________
- inline Pipe& SAL_CALL Pipe::operator= (const Pipe& pipe)
- {
- *this = pipe.getHandle();
- return *this;
- }
-
- //______________________________________________________________________________
- inline Pipe & SAL_CALL Pipe::operator=( oslPipe pipe)
- {
- if( pipe )
- osl_acquirePipe( pipe );
- if( m_handle )
- osl_releasePipe( m_handle );
- m_handle = pipe;
- return *this;
- }
-
- //______________________________________________________________________________
- inline sal_Bool SAL_CALL Pipe::is() const
- {
- return m_handle != 0;
- }
-
- //______________________________________________________________________________
- inline sal_Bool SAL_CALL Pipe::operator==( const Pipe& rPipe ) const
- {
- return m_handle == rPipe.m_handle;
- }
-
- //______________________________________________________________________________
- inline void SAL_CALL Pipe::close()
- {
- osl_closePipe( m_handle );
- }
-
- //______________________________________________________________________________
- inline void SAL_CALL Pipe::clear()
- {
- if( m_handle )
- {
- osl_releasePipe( m_handle );
- m_handle = 0;
- }
- }
-
- //______________________________________________________________________________
- inline oslPipeError SAL_CALL Pipe::accept(StreamPipe& Connection)
- {
- Connection = StreamPipe( osl_acceptPipe( m_handle ), SAL_NO_ACQUIRE);
- if( Connection.is() )
- return osl_Pipe_E_None;
- else
- return getError();
- }
-
- //______________________________________________________________________________
- inline oslPipeError SAL_CALL Pipe::getError() const
- {
- return osl_getLastPipeError( 0 );
- }
-
- //______________________________________________________________________________
- inline oslPipe SAL_CALL Pipe::getHandle() const
- {
- return m_handle;
- }
-
- //______________________________________________________________________________
- inline StreamPipe::StreamPipe(){}
-
- //______________________________________________________________________________
- inline StreamPipe::StreamPipe(oslPipe hPipe)
- : Pipe( hPipe )
- {
- }
-
- //______________________________________________________________________________
- inline StreamPipe::StreamPipe(const ::rtl::OUString& strName, oslPipeOptions Options, const Security &rSec )
- : Pipe( strName, Options , rSec )
- {}
-
- //______________________________________________________________________________
- inline StreamPipe::StreamPipe(const ::rtl::OUString& strName, oslPipeOptions Options )
- : Pipe( strName, Options )
- {}
-
- //______________________________________________________________________________
- inline StreamPipe::StreamPipe(const StreamPipe& aPipe)
- : Pipe( aPipe )
- {}
- //______________________________________________________________________________
- inline StreamPipe::StreamPipe( oslPipe pipe, __sal_NoAcquire noacquire )
- : Pipe( pipe , noacquire )
- {}
-
- //______________________________________________________________________________
- inline sal_Int32 SAL_CALL StreamPipe::read(void* pBuffer, sal_Int32 n) const
- {
- return osl_readPipe( m_handle, pBuffer, n );
- }
-
- //______________________________________________________________________________
- inline sal_Int32 SAL_CALL StreamPipe::write(const void* pBuffer, sal_Int32 n) const
- {
- return osl_writePipe( m_handle, pBuffer , n );
- }
-
- //______________________________________________________________________________
- inline sal_Int32 SAL_CALL StreamPipe::recv(void* pBuffer, sal_Int32 BytesToRead) const
- {
- return osl_receivePipe( m_handle, pBuffer , BytesToRead );
- }
-
- //______________________________________________________________________________
- inline sal_Int32 SAL_CALL StreamPipe::send(const void* pBuffer, sal_Int32 BytesToSend) const
- {
- return osl_sendPipe( m_handle, pBuffer , BytesToSend );
- }
-
-}
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/pipe_decl.hxx b/sal/inc/osl/pipe_decl.hxx
deleted file mode 100644
index bfe9782c9..000000000
--- a/sal/inc/osl/pipe_decl.hxx
+++ /dev/null
@@ -1,238 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _OSL_PIPE_DECL_HXX_
-#define _OSL_PIPE_DECL_HXX_
-
-#include <osl/pipe.h>
-# include <osl/security.hxx>
-#include <rtl/ustring.hxx>
-
-namespace osl {
-
-class StreamPipe;
-
-/** Represents a pipe.
-*/
-class Pipe
-{
-protected:
- oslPipe m_handle;
-
-public:
-
- /** Does not create a pipe. Use assignment operator to
- make this a useable pipe.
- */
- inline Pipe();
-
- /** Creates an insecure pipe that is accessible for all users.
- @param strName
- @param Options
- */
- inline Pipe(const ::rtl::OUString& strName, oslPipeOptions Options);
-
- /** Creates a secure pipe that access depends on the umask settings.
- @param strName
- @param Options
- @param Security
- */
- inline Pipe(const ::rtl::OUString& strName, oslPipeOptions Options,const Security & rSecurity);
-
- /** Copy constructor.
- */
- inline Pipe(const Pipe& pipe);
-
- /** Constructs a Pipe reference without acquiring the handle
- */
- inline Pipe( oslPipe pipe, __sal_NoAcquire noacquire );
-
- /** Creates pipe as wrapper around the underlying oslPipe.
- @param Pipe
- */
- inline Pipe(oslPipe Pipe);
-
- /** Destructor. Destroys the underlying oslPipe.
- */
- inline ~Pipe();
-
- inline sal_Bool SAL_CALL is() const;
-
- /** Creates an insecure pipe that is accessible for all users
- with the given attributes.
- If the pipe was already created, the old one will be discarded.
- @param strName
- @param Options
- @param Security
- @return True if socket was successfully created.
- */
- inline sal_Bool create( const ::rtl::OUString & strName,
- oslPipeOptions Options, const Security &rSec );
-
- /** Creates a secure that access rights depend on the umask settings
- with the given attributes.
-
- If socket was already created, the old one will be discarded.
- @param strName
- @param Options
- @return True if socket was successfully created.
- */
- inline sal_Bool create( const ::rtl::OUString & strName, oslPipeOptions Options = osl_Pipe_OPEN );
-
- /** releases the underlying handle
- */
- inline void SAL_CALL clear();
-
- /** Assignment operator. If pipe was already created, the old one will
- be discarded.
- */
- inline Pipe& SAL_CALL operator= (const Pipe& pipe);
-
- /** Assignment operator. If pipe was already created, the old one will
- be discarded.
- */
- inline Pipe& SAL_CALL operator= (const oslPipe pipe );
-
- /** Checks if the pipe is valid.
- @return True if the object represents a valid pipe.
- */
- inline sal_Bool SAL_CALL isValid() const;
-
- inline sal_Bool SAL_CALL operator==( const Pipe& rPipe ) const;
-
- /** Closes the pipe.
- */
- inline void SAL_CALL close();
-
- /** Accept connection on an existing pipe
- */
- inline oslPipeError SAL_CALL accept(StreamPipe& Connection);
-
-
- /** Delivers a constant decribing the last error for the pipe system.
- @return ENONE if no error occurred, invalid_PipeError if
- an unknown (unmapped) error occurred, otherwise an enum describing the
- error.
- */
- inline oslPipeError SAL_CALL getError() const;
-
- inline oslPipe SAL_CALL getHandle() const;
-};
-
-/** A pipe to send or receive a stream of data.
-*/
-class StreamPipe : public Pipe
-{
-public:
-
- /** Creates an unattached pipe. You must attach the pipe to an oslPipe
- e.g. by using the operator=(oslPipe), before you can use the stream-
- functionality of the object.
- */
- inline StreamPipe();
-
- /** Creates pipe as wrapper around the underlying oslPipe.
- @param Pipe
- */
- inline StreamPipe(oslPipe Pipe);
-
- /** Copy constructor.
- @param Pipe
- */
- inline StreamPipe(const StreamPipe& Pipe);
-
- /** Creates a pipe.
- @param strName
- @param Options
- */
- inline StreamPipe(const ::rtl::OUString& strName, oslPipeOptions Options = osl_Pipe_OPEN);
-
- /** Creates a pipe.
- @param strName
- @param Options
- @param rSec
- */
- inline StreamPipe(const ::rtl::OUString& strName, oslPipeOptions Options, const Security &rSec );
-
- /** Constructs a Pipe reference without acquiring the handle
- */
- inline StreamPipe( oslPipe pipe, __sal_NoAcquire noacquire );
-
- /** Attaches the oslPipe to this object. If the object
- already was attached to an oslPipe, the old one will
- be closed and destroyed.
- @param Pipe.
- */
- inline StreamPipe & SAL_CALL operator=(oslPipe Pipe);
-
- /** Assignment operator
- */
- inline StreamPipe& SAL_CALL operator=(const Pipe& pipe);
-
- /** Tries to receives BytesToRead data from the connected pipe,
-
- @param pBuffer [out] Points to a buffer that will be filled with the received
- data.
- @param BytesToRead [in] The number of bytes to read. pBuffer must have at least
- this size.
- @return the number of received bytes.
- */
- inline sal_Int32 SAL_CALL recv(void* pBuffer, sal_Int32 BytesToRead) const;
-
- /** Tries to sends BytesToSend data from the connected pipe.
-
- @param pBuffer [in] Points to a buffer that contains the send-data.
- @param BytesToSend [in] The number of bytes to send. pBuffer must have at least
- this size.
- @return the number of transfered bytes.
- */
- inline sal_Int32 SAL_CALL send(const void* pBuffer, sal_Int32 BytesToSend) const;
-
- /** Retrieves n bytes from the stream and copies them into pBuffer.
- The method avoids incomplete reads due to packet boundaries.
- @param pBuffer receives the read data.
- @param n the number of bytes to read. pBuffer must be large enough
- to hold the n bytes!
- @return the number of read bytes. The number will only be smaller than
- n if an exceptional condition (e.g. connection closed) occurs.
- */
- inline sal_Int32 SAL_CALL read(void* pBuffer, sal_Int32 n) const;
-
- /** Writes n bytes from pBuffer to the stream. The method avoids
- incomplete writes due to packet boundaries.
- @param pBuffer contains the data to be written.
- @param n the number of bytes to write.
- @return the number of written bytes. The number will only be smaller than
- n if an exceptional condition (e.g. connection closed) occurs.
- */
- sal_Int32 SAL_CALL write(const void* pBuffer, sal_Int32 n) const;
-};
-
-}
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/process.h b/sal/inc/osl/process.h
deleted file mode 100644
index 642690706..000000000
--- a/sal/inc/osl/process.h
+++ /dev/null
@@ -1,443 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#ifndef _OSL_PROCESS_H_
-#define _OSL_PROCESS_H_
-
-#include <rtl/ustring.h>
-#include <rtl/textenc.h>
-#include <rtl/locale.h>
-
-#include <osl/time.h>
-#include <osl/file.h>
-#include <osl/pipe.h>
-#include <osl/socket.h>
-#include <osl/security.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-typedef sal_Int32 oslProcessOption;
-#define osl_Process_WAIT 0x0001 /* wait for completion */
-#define osl_Process_SEARCHPATH 0x0002 /* search path for executable */
-#define osl_Process_DETACHED 0x0004 /* run detached */
-#define osl_Process_NORMAL 0x0000 /* run in normal window */
-#define osl_Process_HIDDEN 0x0010 /* run hidden */
-#define osl_Process_MINIMIZED 0x0020 /* run in minimized window */
-#define osl_Process_MAXIMIZED 0x0040 /* run in maximized window */
-#define osl_Process_FULLSCREEN 0x0080 /* run in fullscreen window */
-
-typedef sal_Int32 oslProcessData;
-
-/* defines for osl_getProcessInfo , can be OR'ed */
-#define osl_Process_IDENTIFIER 0x0001 /* retrieves the process identifier */
-#define osl_Process_EXITCODE 0x0002 /* retrieves exit code of the process */
-#define osl_Process_CPUTIMES 0x0004 /* retrieves used cpu time */
-#define osl_Process_HEAPUSAGE 0x0008 /* retrieves the used size of heap */
-
-typedef sal_uInt32 oslProcessIdentifier;
-typedef sal_uInt32 oslProcessExitCode;
-
-typedef enum {
- osl_Process_E_None, /* no error */
- osl_Process_E_NotFound, /* image not found */
- osl_Process_E_TimedOut, /* timout occurred */
- osl_Process_E_NoPermission, /* permission denied */
- osl_Process_E_Unknown, /* unknown error */
- osl_Process_E_InvalidError, /* unmapped error */
- osl_Process_E_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-} oslProcessError;
-
-typedef enum {
- osl_Process_TypeNone, /* no descriptor */
- osl_Process_TypeSocket, /* socket */
- osl_Process_TypeFile, /* file */
- osl_Process_TypePipe, /* pipe */
- osl_Process_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-} oslDescriptorType;
-
-typedef sal_Int32 oslDescriptorFlag;
-#define osl_Process_DFNONE 0x0000
-#define osl_Process_DFWAIT 0x0001
-
-#ifdef SAL_W32
-# pragma pack(push, 8)
-#endif
-
-typedef struct {
- sal_uInt32 Size;
- oslProcessData Fields;
- oslProcessIdentifier Ident;
- oslProcessExitCode Code;
- TimeValue UserTime;
- TimeValue SystemTime;
- sal_uInt32 HeapUsage;
-} oslProcessInfo;
-
-#if defined( SAL_W32)
-# pragma pack(pop)
-#endif
-
-/** Process handle
-
- @see osl_executeProcess
- @see osl_terminateProcess
- @see osl_freeProcessHandle
- @see osl_getProcessInfo
- @see osl_joinProcess
-*/
-typedef void* oslProcess;
-
-/** Execute a process.
-
- Executes the program image provided in strImageName in a new process.
-
- @param ustrImageName
- [in] The file URL of the executable to be started.
- Can be NULL in this case the file URL of the executable must be the first element
- in ustrArguments.
-
- @param ustrArguments
- [in] An array of argument strings. Can be NULL if strImageName is not NULL.
- If strImageName is NULL it is expected that the first element contains
- the file URL of the executable to start.
-
- @param nArguments
- [in] The number of arguments provided. If this number is 0 strArguments will be ignored.
-
- @param Options
- [in] A combination of int-constants to describe the mode of execution.
-
- @param Security
- [in] The user and his rights for which the process is started. May be NULL in which case
- the process will be started in the context of the current user.
-
- @param ustrDirectory
- [in] The file URL of the working directory of the new proces. If the specified directory
- does not exist or is inaccessible the working directory of the newly created process
- is undefined. If this parameter is NULL or the caller provides an empty string the
- new process will have the same current working directory as the calling process.
-
- @param ustrEnviroments
- [in] An array of strings describing environment variables that should be merged into the
- environment of the new process. Each string has to be in the form "variable=value".
- This parameter can be NULL in which case the new process gets the same environment
- as the parent process.
-
- @param nEnvironmentVars
- [in] The number of environment variables to set.
-
- @param pProcess
- [out] Pointer to a oslProcess variable, wich receives the handle of the newly created process.
- This parameter must not be NULL.
-
- @return
- <dl>
- <dt>osl_Process_E_None</dt>
- <dd>on success</dd>
- <dt>osl_Process_E_NotFound</dt>
- <dd>if the specified executable could not be found</dd>
- <dt>osl_Process_E_InvalidError</dt>
- <dd>if invalid parameters will be detected</dd>
- <dt>osl_Process_E_Unknown</dt>
- <dd>if arbitrary other errors occur</dd>
- </dl>
-
- @see oslProcessOption
- @see osl_executeProcess_WithRedirectedIO
- @see osl_freeProcessHandle
- @see osl_loginUser
-*/
-oslProcessError SAL_CALL osl_executeProcess(
- rtl_uString* ustrImageName,
- rtl_uString* ustrArguments[],
- sal_uInt32 nArguments,
- oslProcessOption Options,
- oslSecurity Security,
- rtl_uString* ustrDirectory,
- rtl_uString* ustrEnvironments[],
- sal_uInt32 nEnvironmentVars,
- oslProcess* pProcess);
-
-
-/** Execute a process and redirect child process standard IO.
-
- @param ustrImageName
- [in] The file URL of the executable to be started.
- Can be NULL in this case the file URL of the executable must be the first element
- in ustrArguments.
-
- @param ustrArguments
- [in] An array of argument strings. Can be NULL if strImageName is not NULL.
- If strImageName is NULL it is expected that the first element contains
- the file URL of the executable to start.
-
- @param nArguments
- [in] The number of arguments provided. If this number is 0 strArguments will be ignored.
-
- @param Options
- [in] A combination of int-constants to describe the mode of execution.
-
- @param Security
- [in] The user and his rights for which the process is started. May be NULL in which case
- the process will be started in the context of the current user.
-
- @param ustrDirectory
- [in] The file URL of the working directory of the new proces. If the specified directory
- does not exist or is inaccessible the working directory of the newly created process
- is undefined. If this parameter is NULL or the caller provides an empty string the
- new process will have the same current working directory as the calling process.
-
- @param ustrEnviroments
- [in] An array of strings describing environment variables that should be merged into the
- environment of the new process. Each string has to be in the form "variable=value".
- This parameter can be NULL in which case the new process gets the same environment
- as the parent process.
-
- @param nEnvironmentVars
- [in] The number of environment variables to set.
-
- @param pProcess
- [out] Pointer to a oslProcess variable, wich receives the handle of the newly created process.
- This parameter must not be NULL.
-
- @param pChildInputWrite
- [in] Pointer to a oslFileHandle variable that receives the handle which can be used to write
- to the child process standard input device. The returned handle is not random accessible.
- The handle has to be closed with osl_closeFile if no longer used. This parameter can be NULL.
-
- @param pChildOutputRead
- [in] Pointer to a oslFileHandle variable that receives the handle which can be used to read from
- the child process standard output device. The returned handle is not random accessible.
- The Handle has to be closed with osl_closeFile if no longer used. This parameter can be NULL.
-
- @param pChildErrorRead
- [in] Pointer to a oslFileHandle variable that receives the handle which can be used to read from
- the child process standard error device. The returned handle is not random accessible.
- The Handle has to be closed with osl_closeFile if no longer used. This parameter can be NULL.
-
- @return
- <dl>
- <dt>osl_Process_E_None</dt>
- <dd>on success</dd>
- <dt>osl_Process_E_NotFound</dt>
- <dd>if the specified executable could not be found</dd>
- <dt>osl_Process_E_InvalidError</dt>
- <dd>if invalid parameters will be detected</dd>
- <dt>osl_Process_E_Unknown</dt>
- <dd>if arbitrary other errors occur</dd>
- </dl>
-
- @see oslProcessOption
- @see osl_executeProcess
- @see osl_freeProcessHandle
- @see osl_loginUser
- @see osl_closeFile
-*/
-oslProcessError SAL_CALL osl_executeProcess_WithRedirectedIO(
- rtl_uString* strImageName,
- rtl_uString* ustrArguments[],
- sal_uInt32 nArguments,
- oslProcessOption Options,
- oslSecurity Security,
- rtl_uString* ustrDirectory,
- rtl_uString* ustrEnvironments[],
- sal_uInt32 nEnvironmentVars,
- oslProcess* pProcess,
- oslFileHandle* pChildInputWrite,
- oslFileHandle* pChildOutputRead,
- oslFileHandle* pChildErrorRead);
-
-/** Terminate a process
- @param Process [in] the handle of the process to be terminated
-
- @see osl_executeProcess
- @see osl_getProcess
- @see osl_joinProcess
- */
-oslProcessError SAL_CALL osl_terminateProcess(oslProcess Process);
-
-
-/** @deprecated
- Retrieve the process handle of a process identifier
- @param Ident [in] a process identifier
-
- @return the process handle on success, NULL in all other cases
- */
-oslProcess SAL_CALL osl_getProcess(oslProcessIdentifier Ident);
-
-
-/** Free the specified proces-handle.
- @param Process [in]
-*/
-void SAL_CALL osl_freeProcessHandle(oslProcess Process);
-
-
-/** Wait for completation of the specified childprocess.
- @param Process [in]
- @return ols_Process_E_None
- @see osl_executeProcess
-*/
-oslProcessError SAL_CALL osl_joinProcess(oslProcess Process);
-
-/** Wait with a timeout for the completion of the specified child
- process.
-
- @param Process [in]
- A process identifier.
-
- @param pTimeout [in]
- A timeout value or NULL for infinite waiting.
- The unit of resolution is second.
-
- @return
- osl_Process_E_None on success
- osl_Process_E_TimedOut waiting for the child process timed out
- osl_Process_E_Unknown an error occurred or the parameter are invalid
-
- @see osl_executeProcess
-*/
-oslProcessError SAL_CALL osl_joinProcessWithTimeout(oslProcess Process, const TimeValue* pTimeout);
-
-/** Retrieves information about a Process
- @param Process [in] the process handle of the process
- @param Field [in] the information which is to be retrieved
- this can be one or more of
- osl_Process_IDENTIFIER
- osl_Process_EXITCODE
- osl_Process_CPUTIMES
- osl_Process_HEAPUSAGE
- @param pInfo [out] a pointer to a vaid oslProcessInfo structure.
- the Size field has to be initialized with the size
- of the oslProcessInfo structure.
- on success the the Field member holds the (or'ed)
- retrieved valid information fields.
- @return osl_Process_E_None on success, osl_Process_E_Unknown on failure.
- */
-oslProcessError SAL_CALL osl_getProcessInfo(oslProcess Process, oslProcessData Fields,
- oslProcessInfo* pInfo);
-
-/** Get the filename of the executable.
- @param strFile [out] the string that receives the executable file path.
- @return osl_Process_E_None or does not return.
- @see osl_executeProcess
-*/
-oslProcessError SAL_CALL osl_getExecutableFile(rtl_uString **strFile);
-
-/** @return the number of commandline arguments passed to the main-function of
- this process
- @see osl_getCommandArg
-*/
-sal_uInt32 SAL_CALL osl_getCommandArgCount(void);
-
-/** Get the nArg-th command-line argument passed to the main-function of this process.
- @param nArg [in] The number of the argument to return.
- @param strCommandArg [out] The string receives the nArg-th command-line argument.
- @return osl_Process_E_None or does not return.
- @see osl_executeProcess
-*/
-oslProcessError SAL_CALL osl_getCommandArg(sal_uInt32 nArg, rtl_uString **strCommandArg);
-
-/** Set the command-line arguments as passed to the main-function of this process.
-
- Depricated: This function is only for internal use. Passing the args from main will
- only work for Unix, on Windows there's no effect, the full command line will automtically
- be taken. This is due to Windows 9x/ME limitation that don't allow UTF-16 wmain to provide
- a osl_setCommandArgsU( int argc, sal_Unicode **argv );
-
- @param argc [in] The number of elements in the argv array.
- @param argv [in] The array of command-line arguments.
- @see osl_getExecutableFile
- @see osl_getCommandArgCount
- @see osl_getCommandArg
-*/
-void SAL_CALL osl_setCommandArgs (int argc, char **argv);
-
-/** Get the value of one enviroment variable.
- @param strVar [in] denotes the name of the variable to get.
- @param strValue [out] string that receives the value of environment variable.
-*/
-oslProcessError SAL_CALL osl_getEnvironment(rtl_uString *strVar, rtl_uString **strValue);
-
-/** Set the value of one enviroment variable.
- @param strVar [in] denotes the name of the variable to set.
- @param strValue [in] string of the new value of environment variable.
-
- @since UDK 3.2.13
-*/
-oslProcessError SAL_CALL osl_setEnvironment(rtl_uString *strVar, rtl_uString *strValue);
-
-/** Unsets the value of one enviroment variable.
- @param strVar [in] denotes the name of the variable to unset.
-
- @since UDK 3.2.13
-*/
-oslProcessError SAL_CALL osl_clearEnvironment(rtl_uString *strVar);
-
-/** Get the working directory of the current process as a file URL.
-
- The file URL is encoded as common for the OSL file API.
- @param pustrWorkingDir [out] string that receives the working directory file URL.
-*/
-
-oslProcessError SAL_CALL osl_getProcessWorkingDir( rtl_uString **pustrWorkingDir );
-
-/** Get the locale the process is currently running in.
-
- The unix implementation caches the value it returns, so if you have to change the locale
- your are running in, you will have to use osl_setProcessLocale therefor.
-
- @param ppLocale [out] a pointer that receives the currently selected locale structure
- @see osl_setProcessLocale
-*/
-
-oslProcessError SAL_CALL osl_getProcessLocale( rtl_Locale ** ppLocale );
-
-/** Change the locale of the process.
-
- @param pLocale [in] a pointer to the locale to be set
- @see osl_getProcessLocale
-*/
-
-oslProcessError SAL_CALL osl_setProcessLocale( rtl_Locale * pLocale );
-
-
-sal_Bool SAL_CALL osl_sendResourcePipe(oslPipe Pipe, oslSocket Socket);
-
-oslSocket SAL_CALL osl_receiveResourcePipe(oslPipe Pipe);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OSL_PROCESS_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/profile.h b/sal/inc/osl/profile.h
deleted file mode 100644
index b0545f3cb..000000000
--- a/sal/inc/osl/profile.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_PROFILE_H_
-#define _OSL_PROFILE_H_
-
-#include <sal/types.h>
-#include <rtl/ustring.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef sal_uInt32 oslProfileOption;
-
-#define osl_Profile_DEFAULT 0x0000
-#define osl_Profile_SYSTEM 0x0001 /* use system depended functinality */
-#define osl_Profile_READLOCK 0x0002 /* lock file for reading */
-#define osl_Profile_WRITELOCK 0x0004 /* lock file for writing */
-#define osl_Profile_FLUSHWRITE 0x0010 /* writing only with flush */
-
-
-typedef void* oslProfile;
-
-/** Deprecated API.
- Open or create a configuration profile.
- @return 0 if the profile could not be created, otherwise a handle to the profile.
- @deprecated
-*/
-oslProfile SAL_CALL osl_openProfile(rtl_uString *strProfileName, oslProfileOption Options);
-
-/** Deprecated API.
- Close the opened profile an flush all data to the disk.
- @param Profile handle to a opened profile.
- @deprecated
-*/
-sal_Bool SAL_CALL osl_closeProfile(oslProfile Profile);
-
-
-/** Deprecated API.
- @deprecated
-*/
-sal_Bool SAL_CALL osl_flushProfile(oslProfile Profile);
-/** Deprecated API.
- @deprecated
-*/
-sal_Bool SAL_CALL osl_readProfileString(oslProfile Profile,
- const sal_Char* pszSection, const sal_Char* pszEntry,
- sal_Char* pszString, sal_uInt32 MaxLen,
- const sal_Char* pszDefault);
-/** Deprecated API.
- @deprecated
-*/
-sal_Bool SAL_CALL osl_readProfileBool(oslProfile Profile,
- const sal_Char* pszSection, const sal_Char* pszEntry,
- sal_Bool Default);
-/** Deprecated API.
- @deprecated
-*/
-sal_uInt32 SAL_CALL osl_readProfileIdent(oslProfile Profile,
- const sal_Char* pszSection, const sal_Char* pszEntry,
- sal_uInt32 FirstId, const sal_Char* Strings[],
- sal_uInt32 Default);
-
-/** Deprecated API.
- @deprecated
-*/
-sal_Bool SAL_CALL osl_writeProfileString(oslProfile Profile,
- const sal_Char* pszSection, const sal_Char* pszEntry,
- const sal_Char* pszString);
-/** Deprecated API.
- @deprecated
-*/
-sal_Bool SAL_CALL osl_writeProfileBool(oslProfile Profile,
- const sal_Char* pszSection, const sal_Char* pszEntry,
- sal_Bool Value);
-/** Deprecated API.
- @deprecated
-*/
-sal_Bool SAL_CALL osl_writeProfileIdent(oslProfile Profile,
- const sal_Char* pszSection, const sal_Char* pszEntry,
- sal_uInt32 FirstId, const sal_Char* Strings[],
- sal_uInt32 Value);
-
-/** Deprecated API.
- Acquire the mutex, block if already acquired by another thread.
- @param Profile handle to a opened profile.
- @return False if section or entry could not be found.
- @deprecated
-*/
-sal_Bool SAL_CALL osl_removeProfileEntry(oslProfile Profile,
- const sal_Char *pszSection, const sal_Char *pszEntry);
-
-/** Deprecated API.
- Get all entries belonging to the specified section.
- @param Profile handle to a opened profile.
- @return Pointer to a array of pointers.
- @deprecated
-*/
-sal_uInt32 SAL_CALL osl_getProfileSectionEntries(oslProfile Profile, const sal_Char *pszSection,
- sal_Char* pszBuffer, sal_uInt32 MaxLen);
-
-/** Deprecated API.
- Get all section entries
- @param Profile handle to a opened profile.
- @return Pointer to a array of pointers.
- @deprecated
-*/
-sal_uInt32 SAL_CALL osl_getProfileSections(oslProfile Profile, sal_Char* pszBuffer, sal_uInt32 MaxLen);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OSL_PROFILE_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/profile.hxx b/sal/inc/osl/profile.hxx
deleted file mode 100644
index c0345036e..000000000
--- a/sal/inc/osl/profile.hxx
+++ /dev/null
@@ -1,206 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_PROFILE_HXX_
-#define _OSL_PROFILE_HXX_
-
-#include "profile.h"
-#include <rtl/ustring.hxx>
-#include <string.h>
-#include <list>
-
-namespace osl {
-
- typedef oslProfileOption ProfileOption;
-
- const int Profile_DEFAULT = osl_Profile_DEFAULT;
- const int Profile_SYSTEM = osl_Profile_SYSTEM; /* use system depended functinality */
- const int Profile_READLOCK = osl_Profile_READLOCK; /* lock file for reading */
- const int Profile_WRITELOCK = osl_Profile_WRITELOCK; /* lock file for writing */
-
- /** Deprecated API.
- @deprecated
- */
- class Profile {
- oslProfile profile;
-
- public:
- /** Open or create a configuration profile.
- @return 0 if the profile could not be created, otherwise a handle to the profile.
- */
- Profile(const rtl::OUString strProfileName, oslProfileOption Options = Profile_DEFAULT )
- {
- profile = osl_openProfile(strProfileName.pData, Options);
- if( ! profile )
- throw std::exception();
- }
-
-
- /** Close the opened profile an flush all data to the disk.
- @param Profile handle to a opened profile.
- */
- ~Profile()
- {
- osl_closeProfile(profile);
- }
-
-
- sal_Bool flush()
- {
- return osl_flushProfile(profile);
- }
-
- rtl::OString readString( const rtl::OString& rSection, const rtl::OString& rEntry,
- const rtl::OString& rDefault)
- {
- sal_Char aBuf[1024];
- return osl_readProfileString( profile,
- rSection.getStr(),
- rEntry.getStr(),
- aBuf,
- sizeof( aBuf ),
- rDefault.getStr() ) ? rtl::OString( aBuf ) : rtl::OString();
-
- }
-
- sal_Bool readBool( const rtl::OString& rSection, const rtl::OString& rEntry, sal_Bool bDefault )
- {
- return osl_readProfileBool( profile, rSection.getStr(), rEntry.getStr(), bDefault );
- }
-
- sal_uInt32 readIdent(const rtl::OString& rSection, const rtl::OString& rEntry,
- sal_uInt32 nFirstId, const std::list< rtl::OString >& rStrings,
- sal_uInt32 nDefault)
- {
- int nItems = rStrings.size();
- const sal_Char** pStrings = new const sal_Char*[ nItems+1 ];
- std::list< rtl::OString >::const_iterator it = rStrings.begin();
- nItems = 0;
- while( it != rStrings.end() )
- {
- pStrings[ nItems++ ] = it->getStr();
- ++it;
- }
- pStrings[ nItems ] = NULL;
- sal_uInt32 nRet = osl_readProfileIdent(profile, rSection.getStr(), rEntry.getStr(), nFirstId, pStrings, nDefault);
- delete pStrings;
- return nRet;
- }
-
- sal_Bool writeString(const rtl::OString& rSection, const rtl::OString& rEntry,
- const rtl::OString& rString)
- {
- return osl_writeProfileString(profile, rSection.getStr(), rEntry.getStr(), rString.getStr());
- }
-
- sal_Bool writeBool(const rtl::OString& rSection, const rtl::OString& rEntry, sal_Bool Value)
- {
- return osl_writeProfileBool(profile, rSection.getStr(), rEntry.getStr(), Value);
- }
-
- sal_Bool writeIdent(const rtl::OString& rSection, const rtl::OString& rEntry,
- sal_uInt32 nFirstId, const std::list< rtl::OString >& rStrings,
- sal_uInt32 nValue)
- {
- int nItems = rStrings.size();
- const sal_Char** pStrings = new const sal_Char*[ nItems+1 ];
- std::list< rtl::OString >::const_iterator it = rStrings.begin();
- nItems = 0;
- while( it != rStrings.end() )
- {
- pStrings[ nItems++ ] = it->getStr();
- ++it;
- }
- pStrings[ nItems ] = NULL;
- sal_Bool bRet =
- osl_writeProfileIdent(profile, rSection.getStr(), rEntry.getStr(), nFirstId, pStrings, nValue );
- delete pStrings;
- return bRet;
- }
-
- /** Acquire the mutex, block if already acquired by another thread.
- @param Profile handle to a opened profile.
- @return False if section or entry could not be found.
- */
- sal_Bool removeEntry(const rtl::OString& rSection, const rtl::OString& rEntry)
- {
- return osl_removeProfileEntry(profile, rSection.getStr(), rEntry.getStr());
- }
-
- /** Get all entries belonging to the specified section.
- @param Profile handle to a opened profile.
- @return Pointer to a array of pointers.
- */
- std::list< rtl::OString > getSectionEntries(const rtl::OString& rSection )
- {
- std::list< rtl::OString > aEntries;
-
- // count buffer size necessary
- int n = osl_getProfileSectionEntries( profile, rSection.getStr(), NULL, 0 );
- if( n > 1 )
- {
- sal_Char* pBuf = new sal_Char[ n+1 ];
- osl_getProfileSectionEntries( profile, rSection.getStr(), pBuf, n+1 );
- int nLen;
- for( n = 0; ( nLen = strlen( pBuf+n ) ); n += nLen+1 )
- aEntries.push_back( rtl::OString( pBuf+n ) );
- delete pBuf;
- }
-
- return aEntries;
- }
-
- /** Get all section entries
- @param Profile handle to a opened profile.
- @return Pointer to a array of pointers.
- */
- std::list< rtl::OString > getSections()
- {
- std::list< rtl::OString > aSections;
-
- // count buffer size necessary
- int n = osl_getProfileSections( profile, NULL, 0 );
- if( n > 1 )
- {
- sal_Char* pBuf = new sal_Char[ n+1 ];
- osl_getProfileSections( profile, pBuf, n+1 );
- int nLen;
- for( n = 0; ( nLen = strlen( pBuf+n ) ); n += nLen+1 )
- aSections.push_back( rtl::OString( pBuf+n ) );
- delete pBuf;
- }
-
- return aSections;
- }
- };
-}
-
-#endif /* _OSL_PROFILE_HXX_ */
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/security.h b/sal/inc/osl/security.h
deleted file mode 100644
index 7e3797801..000000000
--- a/sal/inc/osl/security.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_SECURITY_H_
-#define _OSL_SECURITY_H_
-
-#include <rtl/ustring.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum {
- osl_Security_E_None,
- osl_Security_E_UserUnknown,
- osl_Security_E_WrongPassword,
- osl_Security_E_Unknown,
- osl_Security_E_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-} oslSecurityError;
-
-/** Process handle
- @see osl_loginUser
- @see osl_freeSecurityHandle
- @see osl_executeProcess
-*/
-typedef void* oslSecurity;
-
-/** Create a security handle for the current user.
- @return a security handle or NULL on failure.
- @see osl_freeSecurityHandle
- @see osl_executeProcess
- @see osl_executeApplication
-*/
-oslSecurity SAL_CALL osl_getCurrentSecurity(void);
-
-/** Deprecated API
- Create a security handle for the denoted user.
- Try to log in the user on the local system.
- @param strzUserName [in] denotes the name of the user to logg in.
- @param strPasswd [in] the password for this user.
- @param pSecurity [out] returns the security handle if user could be logged in.
- @return osl_Security_E_None if user could be logged in, otherwise an error-code.
- @see osl_freeSecurityHandle
- @see osl_executeProcess
- @see osl_executeApplication
-*/
-oslSecurityError SAL_CALL osl_loginUser(
- rtl_uString *strUserName,
- rtl_uString *strPasswd,
- oslSecurity *pSecurity
- );
-
-/** Create a security handle for the denoted user.
- Try to log in the user on the denoted file server. On success the homedir will be
- the maped drive on this server.
- @param strUserName [in] denotes the name of the user to logg in.
- @param strPasswd [in] the password for this user.
- @param strFileServer [in] denotes the file server on wich the user is logged in.
- @param pSecurity [out] returns the security handle if user could be logged in.
- @return osl_Security_E_None if user could be logged in, otherwise an error-code.
- @see osl_freeSecurityHandle
- @see osl_executeProcess
- @see osl_executeApplication
-*/
-oslSecurityError SAL_CALL osl_loginUserOnFileServer(
- rtl_uString *strUserName,
- rtl_uString *strPasswd,
- rtl_uString *strFileServer,
- oslSecurity *pSecurity
- );
-
-/** Query if the user who is denotes by this security has administrator rigths.
- @param Security [in] the security handle for th user.
- @return True, if the user has adminsitrator rights, otherwise false.
-*/
-sal_Bool SAL_CALL osl_isAdministrator(oslSecurity Security);
-
-/** Free the security handle, created by osl_loginUser or osl_getCurrentSecurity.
- @param Security [in] the security handle.
- @see osl_loginUser
-*/
-void SAL_CALL osl_freeSecurityHandle(oslSecurity Security);
-
-/** Get the login ident for the user of this security handle.
- @param Security [in] the security handle.
- @param strIdent [out] the string that receives the ident on success.
- @return True, if the security handle is valid, otherwise False.
-*/
-sal_Bool SAL_CALL osl_getUserIdent(oslSecurity Security, rtl_uString **strIdent);
-
-/** Get the login name for the user of this security handle.
- @param Security [in] the security handle.
- @param pszName [out] the string that receives the user name on success.
- @return True, if the security handle is valid, otherwise False.
-*/
-sal_Bool SAL_CALL osl_getUserName(oslSecurity Security, rtl_uString **strName);
-
-/** Get the home directory of the user of this security handle.
- @param Security [in] the security handle.
- @param strDirectory [out] the string that receives the directory path on success.
- @return True, if the security handle is valid, otherwise False.
-*/
-sal_Bool SAL_CALL osl_getHomeDir(oslSecurity Security, rtl_uString **strDirectory);
-
-/** Get the directory for configuration data of the user of this security handle.
- @param Security [in] the security handle.
- @param strDirectory [out] the string that receives the directory path on success.
- @return True, if the security handle is valid, otherwise False.
-*/
-sal_Bool SAL_CALL osl_getConfigDir(oslSecurity Security, rtl_uString **strDirectory);
-
-
-/** Load Profile of the User
- Implemented just for Windows
- @param oslSecurity Security [in] previously fetch Security of the User
- @return True if the Profile could successfully loaded, False otherwise.
-*/
-
-sal_Bool SAL_CALL osl_loadUserProfile(oslSecurity Security);
-
-
-/** Unload a User Profile
- Implemented just for Windows
- @param oslSecurity Security [in] previously fetch Security of the User
- @return nothing is returned!
-*/
-
-void SAL_CALL osl_unloadUserProfile(oslSecurity Security);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OSL_SECURITY_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/security.hxx b/sal/inc/osl/security.hxx
deleted file mode 100644
index 3b2ce9edd..000000000
--- a/sal/inc/osl/security.hxx
+++ /dev/null
@@ -1,112 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_SECURITY_HXX_
-#define _OSL_SECURITY_HXX_
-
-#include <rtl/ustring.hxx>
-
-#ifndef _OSL_SECURITY_DECL_HXX
-# include <osl/security_decl.hxx>
-#endif
-
-namespace osl
-{
-
-inline Security::Security()
-{
- m_handle = osl_getCurrentSecurity();
-}
-
-inline Security::~Security()
-{
- osl_freeSecurityHandle(m_handle);
-}
-
-inline sal_Bool Security::logonUser(const rtl::OUString& strName,
- const rtl::OUString& strPasswd)
-{
- osl_freeSecurityHandle(m_handle);
-
- m_handle = 0;
-
- return (osl_loginUser( strName.pData, strPasswd.pData, &m_handle)
- == osl_Security_E_None);
-}
-
-inline sal_Bool Security::logonUser( const rtl::OUString& strName,
- const rtl::OUString& strPasswd,
- const rtl::OUString& strFileServer )
-{
- osl_freeSecurityHandle(m_handle);
-
- m_handle = NULL;
-
- return (osl_loginUserOnFileServer(strName.pData, strPasswd.pData, strFileServer.pData, &m_handle)
- == osl_Security_E_None);
-}
-
-inline sal_Bool Security::getUserIdent( rtl::OUString& strIdent) const
-{
- return osl_getUserIdent( m_handle, &strIdent.pData );
-}
-
-
-inline sal_Bool Security::getUserName( rtl::OUString& strName ) const
-{
- return osl_getUserName( m_handle, &strName.pData );
-}
-
-
-inline sal_Bool Security::getHomeDir( rtl::OUString& strDirectory) const
-{
- return osl_getHomeDir(m_handle, &strDirectory.pData );
-}
-
-
-inline sal_Bool Security::getConfigDir( rtl::OUString& strDirectory ) const
-{
- return osl_getConfigDir( m_handle, &strDirectory.pData );
-}
-
-inline sal_Bool Security::isAdministrator() const
-{
- return osl_isAdministrator(m_handle);
-}
-
-inline oslSecurity Security::getHandle() const
-{
- return m_handle;
-}
-
-
-}
-
-#endif // _OSL_SECURITY_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/security_decl.hxx b/sal/inc/osl/security_decl.hxx
deleted file mode 100644
index 960137bf5..000000000
--- a/sal/inc/osl/security_decl.hxx
+++ /dev/null
@@ -1,119 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_SECURITY_DECL_HXX_
-#define _OSL_SECURITY_DECL_HXX_
-
-#include <rtl/ustring.hxx>
-# include <osl/security.h>
-
-namespace osl
-{
-
-/** capsulate security informations for one user.
- A object of this class is used to execute a process with the rights an
- security options of a scecified user.
- @see Process::executeProcess
-*/
-class Security
-{
-protected:
- oslSecurity m_handle;
-
-public:
- /// constructor
- inline Security();
- /// destructor
- inline ~Security();
- /** get the security information for one user.
- The underlying operating system is asked for this information.
- @param strName [in] denotes the name of the user
- @param strPasswd [in] denotes the password of this user
- @return True, if the specified user is known by the underlying operating system,
- otherwise False
- */
- inline sal_Bool SAL_CALL logonUser(const ::rtl::OUString& strName,
- const ::rtl::OUString& strPasswd);
- /** get the security information for one user.
- This method will try to login the user at the denoted file server.
- If a network resource named \\server\username exists and this resource
- could be connected by this user, the methos will return true and getHomeDir
- will return \\server\username.
- @param strName [in] denotes the name of the user
- @param strPasswd [in] denotes the password of this user
- @return True, if the specified user is known by file server and the
- could be connected, otherwise False
- */
- inline sal_Bool SAL_CALL logonUser(const ::rtl::OUString & strName,
- const ::rtl::OUString & strPasswd,
- const ::rtl::OUString & strFileServer);
-
- /** get the ident of the logged in user.
- @param strName [out] is the buffer which returns the name
- @param max [in] is the size of this buffer
- @return True, if any user is successfuly logged in, otherwise False
- */
- inline sal_Bool SAL_CALL getUserIdent( ::rtl::OUString& strIdent) const;
-
- /** get the name of the logged in user.
- @param strName [out] is the buffer which returns the name
- @param max [in] is the size of this buffer
- @return True, if any user is successfuly logged in, otherwise False
- */
- inline sal_Bool SAL_CALL getUserName( ::rtl::OUString& strName) const;
-
- /** get the home directory of the logged in user.
- @param strDirectory [out] is the buffer which returns the directory name
- @param max [in] is the size of this buffer
- @return True, if any user is successfuly logged in, otherwise False
- */
- inline sal_Bool SAL_CALL getHomeDir( ::rtl::OUString& strDirectory) const;
-
- /** get the directory for configuration data of the logged in user.
- @param strDirectory [out] is the buffer which returns the directory name
- @param max [in] is the size of this buffer
- @return True, if any user is successfuly logged in, otherwise False
- */
- inline sal_Bool SAL_CALL getConfigDir( ::rtl::OUString & strDirectory) const;
-
- /** Query if the user who is logged inhas administrator rigths.
- @return True, if the user has administrator rights, otherwise false.
- */
- inline sal_Bool SAL_CALL isAdministrator() const;
-
- /** Returns the underlying oslSecurity handle
- */
- inline oslSecurity getHandle() const;
-
-};
-
-}
-
-#endif // _OSL_SECURITY_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/semaphor.h b/sal/inc/osl/semaphor.h
deleted file mode 100644
index c02d6613c..000000000
--- a/sal/inc/osl/semaphor.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_SEMAPHORE_H_
-#define _OSL_SEMAPHORE_H_
-
-#include <sal/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef void* oslSemaphore;
-
-/** Creates a semaphore.<BR>
-
- @deprecated
- Must not be used, as unnamed semaphores are not supported on Mac OS X.
-
- @param InitialCount denotes the starting value the semaphore. If you set it to
- zero, the first acquire() blocks. Otherwise InitialCount acquire()s are
- immedeatly successfull.
- @return 0 if the semaphore could not be created, otherwise a handle to the sem.
-*/
-oslSemaphore SAL_CALL osl_createSemaphore(sal_uInt32 initialCount);
-
-/** Release the OS-structures and free semaphore data-structure
-
- @deprecated
- Must not be used, as unnamed semaphores are not supported on Mac OS X.
-
- @return fbbb
-*/
-void SAL_CALL osl_destroySemaphore(oslSemaphore Semaphore);
-
-/** acquire() decreases the count. It will block if it tries to
- decrease below zero.
-
- @deprecated
- Must not be used, as unnamed semaphores are not supported on Mac OS X.
-
- @return False if the system-call failed.
-*/
-sal_Bool SAL_CALL osl_acquireSemaphore(oslSemaphore Semaphore);
-
-/** tryToAcquire() tries to decreases the count. It will
- return with False if it would decrease the count below zero.
- (When acquire() would block.) If it could successfully
- decrease the count, it will return True.
-
- @deprecated
- Must not be used, as unnamed semaphores are not supported on Mac OS X.
-*/
-sal_Bool SAL_CALL osl_tryToAcquireSemaphore(oslSemaphore Semaphore);
-
-/** release() increases the count.
-
- @deprecated
- Must not be used, as unnamed semaphores are not supported on Mac OS X.
-
- @return False if the system-call failed.
-*/
-sal_Bool SAL_CALL osl_releaseSemaphore(oslSemaphore Semaphore);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OSL_SEMAPHORE_H_ */
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/semaphor.hxx b/sal/inc/osl/semaphor.hxx
deleted file mode 100644
index bb81fca27..000000000
--- a/sal/inc/osl/semaphor.hxx
+++ /dev/null
@@ -1,129 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_SEMAPHORE_HXX_
-#define _OSL_SEMAPHORE_HXX_
-
-#ifdef __cplusplus
-
-#include <osl/semaphor.h>
-
-
-namespace osl
-{
- /** C++ wrapper class around C semaphore functions.
-
- @deprecated
- Must not be used, as unnamed semaphores are not supported on Mac OS X.
- */
- class Semaphore {
-
- public:
-
- /** Creates a semaphore.<BR>
- @param InitialCount denotes the starting value the semaphore. If you set it to
- zero, the first acquire() blocks. Otherwise InitialCount acquire()s are
- immedeatly successfull.
- @return 0 if the semaphore could not be created, otherwise a handle to the sem.
- */
-
- Semaphore(sal_uInt32 initialCount)
- {
- semaphore = osl_createSemaphore(initialCount);
- }
-
- /** Release the OS-structures and free semaphore data-structure
- @return fbbb
- */
- ~Semaphore()
- {
- osl_destroySemaphore(semaphore);
- }
-
- /** acquire() decreases the count. It will block if it tries to
- decrease below zero.
- @return False if the system-call failed.
- */
- sal_Bool acquire()
- {
- return osl_acquireSemaphore(semaphore);
- }
-
- /** tryToAcquire() tries to decreases the count. It will
- return with False if it would decrease the count below zero.
- (When acquire() would block.) If it could successfully
- decrease the count, it will return True.
- */
- sal_Bool tryToAcquire()
- {
- return osl_tryToAcquireSemaphore(semaphore);
- }
-
- /** release() increases the count.
- @return False if the system-call failed.
- */
- sal_Bool release()
- {
- return osl_releaseSemaphore(semaphore);
- }
-
- private:
- oslSemaphore semaphore;
-
- /** The underlying oslSemaphore has no reference count.
-
- Since the underlying oslSemaphore is not a reference counted object, copy
- constructed Semaphore may work on an already destructed oslSemaphore object.
-
- */
- Semaphore(const Semaphore&);
-
- /** The underlying oslSemaphore has no reference count.
-
- When destructed, the Semaphore object destroys the undelying oslSemaphore,
- which might cause severe problems in case it's a temporary object.
-
- */
- Semaphore(oslSemaphore Semaphore);
-
- /** This assignment operator is private for the same reason as
- the copy constructor.
- */
- Semaphore& operator= (const Semaphore&);
-
- /** This assignment operator is private for the same reason as
- the constructor taking a oslSemaphore argument.
- */
- Semaphore& operator= (oslSemaphore);
- };
-}
-
-#endif /* __cplusplus */
-#endif /* _OSL_SEMAPHORE_HXX_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/signal.h b/sal/inc/osl/signal.h
deleted file mode 100644
index f14d092df..000000000
--- a/sal/inc/osl/signal.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_SIGNAL_H_
-#define _OSL_SIGNAL_H_
-
-#include "sal/types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define OSL_SIGNAL_USER_RESERVED 0
-
-#define OSL_SIGNAL_USER_RESOURCEFAILURE (OSL_SIGNAL_USER_RESERVED - 1)
-#define OSL_SIGNAL_USER_X11SUBSYSTEMERROR (OSL_SIGNAL_USER_RESERVED - 2)
-#define OSL_SIGNAL_USER_RVPCONNECTIONERROR (OSL_SIGNAL_USER_RESERVED - 3)
-
-typedef void* oslSignalHandler;
-
-typedef enum
-{
- osl_Signal_System,
- osl_Signal_Terminate,
- osl_Signal_AccessViolation,
- osl_Signal_IntegerDivideByZero,
- osl_Signal_FloatDivideByZero,
- osl_Signal_DebugBreak,
- osl_Signal_User,
- osl_Signal_Alarm,
- osl_Signal_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-} oslSignal;
-
-typedef enum
-{
- osl_Signal_ActCallNextHdl,
- osl_Signal_ActIgnore,
- osl_Signal_ActAbortApp,
- osl_Signal_ActKillApp,
- osl_Signal_Act_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-} oslSignalAction;
-
-#ifdef SAL_W32
-# pragma pack(push, 8)
-#endif
-
-typedef struct
-{
- oslSignal Signal;
- sal_Int32 UserSignal;
- void* UserData;
-} oslSignalInfo;
-
-#if defined( SAL_W32)
-# pragma pack(pop)
-#endif
-
-/** the function-ptr. representing the signal handler-function.
-*/
-typedef oslSignalAction (SAL_CALL *oslSignalHandlerFunction)(void* pData, oslSignalInfo* pInfo);
-
-oslSignalHandler SAL_CALL osl_addSignalHandler(oslSignalHandlerFunction Handler, void* pData);
-
-sal_Bool SAL_CALL osl_removeSignalHandler(oslSignalHandler hHandler);
-
-oslSignalAction SAL_CALL osl_raiseSignal(sal_Int32 UserSignal, void* UserData);
-
-/** Enables or disables error reporting
-
- On default error reporting is enabled after process startup.
-
- @param bEnable [in]
- Enables or disables error reporting.
-
- @return
- sal_True if previous state of error reporting was enabled<br>
- sal_False if previous state of error reporting was disbaled<br>
-*/
-
-sal_Bool SAL_CALL osl_setErrorReporting( sal_Bool bEnable );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OSL_SIGNAL_H_ */
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/socket.h b/sal/inc/osl/socket.h
deleted file mode 100644
index 8f20ecc75..000000000
--- a/sal/inc/osl/socket.h
+++ /dev/null
@@ -1,893 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_SOCKET_H_
-#define _OSL_SOCKET_H_
-
-#include <rtl/ustring.h>
-#include <rtl/byteseq.h>
-
-#include <osl/time.h>
-#include <rtl/tencinfo.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* error returns */
-#define OSL_INADDR_NONE 0xffffffff
-#define OSL_INVALID_PORT (-1)
-#define OSL_INVALID_IPX_SOCKET_NO 0xffffffff
-
-/**@HTML
-
-*/
-
-/**
- Opaque datatype SocketAddr.
-*/
-typedef struct oslSocketAddrImpl * oslSocketAddr;
-
-
-/**
- Represents the address-family of a socket
-*/
-typedef enum {
- osl_Socket_FamilyInet, /* IP */
- osl_Socket_FamilyIpx, /* Novell IPX/SPX */
- osl_Socket_FamilyInvalid, /* always last entry in enum! */
- osl_Socket_Family_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-} oslAddrFamily;
-
-/**
- represent a specific protocol within a address-family
-*/
-typedef enum {
- osl_Socket_ProtocolIp, /* for all af_inet */
- osl_Socket_ProtocolIpx, /* af_ipx datagram sockets (IPX) */
- osl_Socket_ProtocolSpx, /* af_ipx seqpacket or stream for SPX */
- osl_Socket_ProtocolSpxII, /* af_ipx seqpacket or stream for SPX II */
- osl_Socket_ProtocolInvalid,
- osl_Socket_Protocol_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-} oslProtocol;
-
-
-/**
- Represents the type of a socket
-*/
-typedef enum {
- osl_Socket_TypeStream,
- osl_Socket_TypeDgram,
- osl_Socket_TypeRaw,
- osl_Socket_TypeRdm,
- osl_Socket_TypeSeqPacket,
- osl_Socket_TypeInvalid, /* always last entry in enum! */
- osl_Socket_Type_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-} oslSocketType;
-
-
-/**
- Represents socket-options
-*/
-typedef enum {
- osl_Socket_OptionDebug,
- osl_Socket_OptionAcceptConn,
- osl_Socket_OptionReuseAddr,
- osl_Socket_OptionKeepAlive,
- osl_Socket_OptionDontRoute,
- osl_Socket_OptionBroadcast,
- osl_Socket_OptionUseLoopback,
- osl_Socket_OptionLinger,
- osl_Socket_OptionOOBinLine,
- osl_Socket_OptionSndBuf,
- osl_Socket_OptionRcvBuf,
- osl_Socket_OptionSndLowat,
- osl_Socket_OptionRcvLowat,
- osl_Socket_OptionSndTimeo,
- osl_Socket_OptionRcvTimeo,
- osl_Socket_OptionError,
- osl_Socket_OptionType,
- osl_Socket_OptionTcpNoDelay,
- osl_Socket_OptionInvalid, /* always last entry in enum! */
- osl_Socket_Option_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-} oslSocketOption;
-
-/**
- Represents the different socket-option levels
-*/
-typedef enum {
- osl_Socket_LevelSocket,
- osl_Socket_LevelTcp,
- osl_Socket_LevelInvalid, /* always last entry in enum! */
- osl_Socket_Level_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-} oslSocketOptionLevel;
-
-
-/**
- Represents flags to be used with send/recv-calls.
-*/
-typedef enum {
- osl_Socket_MsgNormal,
- osl_Socket_MsgOOB,
- osl_Socket_MsgPeek,
- osl_Socket_MsgDontRoute,
- osl_Socket_MsgMaxIOVLen,
- osl_Socket_MsgInvalid, /* always last entry in enum! */
- osl_Socket_Msg_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-} oslSocketMsgFlag;
-
-/**
- Used by shutdown to denote which end of the socket to "close".
-*/
-typedef enum {
- osl_Socket_DirRead,
- osl_Socket_DirWrite,
- osl_Socket_DirReadWrite,
- osl_Socket_DirInvalid, /* always last entry in enum! */
- osl_Socket_Dir_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-} oslSocketDirection;
-
-/** Describes the various error socket error conditions, which may
- occur */
-typedef enum {
- osl_Socket_E_None, /* no error */
- osl_Socket_E_NotSocket, /* Socket operation on non-socket */
- osl_Socket_E_DestAddrReq, /* Destination address required */
- osl_Socket_E_MsgSize, /* Message too long */
- osl_Socket_E_Prototype, /* Protocol wrong type for socket */
- osl_Socket_E_NoProtocol, /* Protocol not available */
- osl_Socket_E_ProtocolNoSupport, /* Protocol not supported */
- osl_Socket_E_TypeNoSupport, /* Socket type not supported */
- osl_Socket_E_OpNotSupport, /* Operation not supported on socket */
- osl_Socket_E_PfNoSupport, /* Protocol family not supported */
- osl_Socket_E_AfNoSupport, /* Address family not supported by */
- /* protocol family */
- osl_Socket_E_AddrInUse, /* Address already in use */
- osl_Socket_E_AddrNotAvail, /* Can't assign requested address */
- osl_Socket_E_NetDown, /* Network is down */
- osl_Socket_E_NetUnreachable, /* Network is unreachable */
- osl_Socket_E_NetReset, /* Network dropped connection because */
- /* of reset */
- osl_Socket_E_ConnAborted, /* Software caused connection abort */
- osl_Socket_E_ConnReset, /* Connection reset by peer */
- osl_Socket_E_NoBufferSpace, /* No buffer space available */
- osl_Socket_E_IsConnected, /* Socket is already connected */
- osl_Socket_E_NotConnected, /* Socket is not connected */
- osl_Socket_E_Shutdown, /* Can't send after socket shutdown */
- osl_Socket_E_TooManyRefs, /* Too many references: can't splice */
- osl_Socket_E_TimedOut, /* Connection timed out */
- osl_Socket_E_ConnRefused, /* Connection refused */
- osl_Socket_E_HostDown, /* Host is down */
- osl_Socket_E_HostUnreachable, /* No route to host */
- osl_Socket_E_WouldBlock, /* call would block on non-blocking socket */
- osl_Socket_E_Already, /* operation already in progress */
- osl_Socket_E_InProgress, /* operation now in progress */
- osl_Socket_E_InvalidError, /* unmapped error: always last entry in enum! */
- osl_Socket_E_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-} oslSocketError;
-
-/** Common return codes of socket related functions.
- */
-typedef enum {
- osl_Socket_Ok, /* successful completion */
- osl_Socket_Error, /* error occurred, check osl_getLastSocketError() for details */
- osl_Socket_TimedOut, /* blocking operation timed out */
- osl_Socket_Interrupted, /* blocking operation was interrupted */
- osl_Socket_InProgress, /* nonblocking operation is in progress */
- osl_Socket_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-} oslSocketResult;
-
-typedef sal_uInt8 oslSocketIpxNetNumber[4];
-typedef sal_uInt8 oslSocketIpxNodeNumber[6];
-
-/**@} end section types
-*/
-
-/**@{ begin section oslSocketAddr
-*/
-
-/** Creates a socket-address for the given family.
- @param family If family == osl_Socket_FamilyInet the address is
- set to INADDR_ANY port 0.
- @return 0 if address could not be created.
-*/
-oslSocketAddr SAL_CALL osl_createEmptySocketAddr(oslAddrFamily Family);
-
-
-/** Creates a new SocketAddress and fills it from Addr.
-*/
-oslSocketAddr SAL_CALL osl_copySocketAddr(oslSocketAddr Addr);
-
-/** Compares the values of two SocketAddresses.
- @return <code>sal_True</code> if both addresses denote the same socket address,
- <code>sal_False</code> otherwise.
-*/
-sal_Bool SAL_CALL osl_isEqualSocketAddr(
- oslSocketAddr Addr1, oslSocketAddr Addr2);
-
-/** Uses the systems name-service interface to find an address for strHostname.
- @param strHostname [in] The name for which you search for an address.
- @return The desired address if one could be found, otherwise 0.
- Don't forget to destroy the address if you don't need it any longer.
-*/
-oslSocketAddr SAL_CALL osl_resolveHostname(rtl_uString *strHostname);
-
-/** Create an internet address usable for sending broadcast datagrams.
- To limit the broadcast to your subnet, pass your hosts IP address
- in dotted decimal notation as first argument.
- @see osl_sendToSocket()
- @see oslSocketAddr
- @param strDottedAddr [in] dotted decimal internet address, may be 0.
- @param Port [in] port number in host byte order.
- @return 0 if address could not be created.
-*/
-oslSocketAddr SAL_CALL osl_createInetBroadcastAddr (
- rtl_uString *strDottedAddr, sal_Int32 Port);
-
-
-/** Create an internet-address, consisting of hostaddress and port.
- We interpret strDottedAddr as a dotted-decimal inet-addr
- (e.g. "141.99.128.50").
- @param strDottedAddr [in] String with dotted address.
- @param Port [in] portnumber in host byte order.
- @return 0 if address could not be created.
-*/
-oslSocketAddr SAL_CALL osl_createInetSocketAddr (
- rtl_uString *strDottedAddr, sal_Int32 Port);
-
-
-/** Frees all resources allocated by Addr. The handle Addr must not
- be used after the call anymore.
-*/
-void SAL_CALL osl_destroySocketAddr(oslSocketAddr Addr);
-
-/** Looks up the port-number designated to the specified service/protocol-pair.
- (e.g. "ftp" "tcp").
- @return OSL_INVALID_PORT if no appropriate entry was found, otherwise the port-number.
-*/
-sal_Int32 SAL_CALL osl_getServicePort(rtl_uString *strServicename, rtl_uString *strProtocol);
-
-
-
-/** Retrieves the address-family from the Addr.
- @return the family of the socket-address.
- In case of an unknown family you get <code>osl_Socket_FamilyInvalid</code>.
-*/
-oslAddrFamily SAL_CALL osl_getFamilyOfSocketAddr(oslSocketAddr Addr);
-
-
-/** Retrieves the internet port-number of Addr.
- @return the port-number of the address in host-byte order. If Addr
- is not an address of type <code>osl_Socket_FamilyInet</code>, it returns <code>OSL_INVALID_PORT</code>
-*/
-sal_Int32 SAL_CALL osl_getInetPortOfSocketAddr(oslSocketAddr Addr);
-
-
-/** Sets the Port of Addr.
- @param Port [in] is expected in host byte-order.
- @return <code>sal_False</code> if Addr is not an inet-addr.
-*/
-sal_Bool SAL_CALL osl_setInetPortOfSocketAddr(oslSocketAddr Addr, sal_Int32 Port);
-
-
-/** Returns the hostname represented by Addr.
- @param strHostname out-parameter. The hostname represented by the address. If
- there is no hostname to be found, it returns 0.
-*/
-oslSocketResult SAL_CALL osl_getHostnameOfSocketAddr(oslSocketAddr Addr, rtl_uString **strHostname);
-
-
-/** Gets the address in dotted decimal format.
- @param strDottedInetAddr out-parameter. Contains the dotted decimal address
- (e.g. 141.99.20.34) represented by the address.
- If the address is invalid or not of type <code>osl_Socket_FamilyInet</code>,
- it returns 0.
- @return <code>osl_Socket_Ok</code> or <code>osl_Socket_Error</code>
-*/
-oslSocketResult SAL_CALL osl_getDottedInetAddrOfSocketAddr(oslSocketAddr Addr, rtl_uString **strDottedInetAddr);
-
-/** Sets the addr field in the struct sockaddr with pByteSeq. pByteSeq must be in network byte order.
- */
-oslSocketResult SAL_CALL osl_setAddrOfSocketAddr( oslSocketAddr Addr, sal_Sequence *pByteSeq );
-
-/** Returns the addr field in the struct sockaddr.
- @param ppByteSeq out parameter. After the call, *ppByteSeq contains the ipadrress
- in network byteorder. *ppByteSeq may be 0 in case of an invalid socket handle.
- @return <code>osl_Socket_Ok</code> or <code>osl_Socket_Error</code>
- */
-oslSocketResult SAL_CALL osl_getAddrOfSocketAddr( oslSocketAddr Addr, sal_Sequence **ppByteSeq );
-
-/*
- Opaque datatype HostAddr.
-*/
-typedef struct oslHostAddrImpl * oslHostAddr;
-
-
-/** Create an oslHostAddr from given hostname and socket address.
- @param strHostname [in] The hostname to be stored.
- @param Addr [in] The socket address to be stored.
- @return The created address or 0 upon failure.
-*/
-oslHostAddr SAL_CALL osl_createHostAddr(rtl_uString *strHostname, const oslSocketAddr Addr);
-
-
-/** Create an oslHostAddr by resolving the given strHostname.
- Successful name resolution should result in the fully qualified
- domain name (FQDN) and it's address as hostname and socket address
- members of the resulting oslHostAddr.
- @param strHostname [in] The hostname to be resolved.
- @return The resulting address or 0 upon failure.
-*/
-oslHostAddr SAL_CALL osl_createHostAddrByName(rtl_uString *strHostname);
-
-
-/** Create an oslHostAddr by reverse resolution of the given Addr.
- Successful name resolution should result in the fully qualified
- domain name (FQDN) and it's address as hostname and socket address
- members of the resulting oslHostAddr.
- @param Addr [in] The socket address to be reverse resolved.
- @return The resulting address or 0 upon failure.
-*/
-oslHostAddr SAL_CALL osl_createHostAddrByAddr(const oslSocketAddr Addr);
-
-
-/** Create a copy of the given Addr.
- @return The copied address or 0 upon failure.
-*/
-oslHostAddr SAL_CALL osl_copyHostAddr(const oslHostAddr Addr);
-
-
-/** Frees all resources allocated by Addr. The handle Addr must not
- be used after the call anymore.
-*/
-void SAL_CALL osl_destroyHostAddr(oslHostAddr Addr);
-
-
-/** Get the hostname member of Addr.
- @return The hostname or 0 upon failure.
-*/
-void SAL_CALL osl_getHostnameOfHostAddr(const oslHostAddr Addr, rtl_uString **strHostname);
-
-
-/** Get the socket address member of Addr.
- @return The socket address or 0 upon failure.
-*/
-oslSocketAddr SAL_CALL osl_getSocketAddrOfHostAddr(const oslHostAddr Addr);
-
-/** Retrieve this machines hostname.
- May not always be a fully qualified domain name (FQDN).
- @param strLocalHostname out-parameter. The string that receives the local host name.
- @return <code>sal_True</code> upon success, <code>sal_False</code> otherwise.
-*/
-oslSocketResult SAL_CALL osl_getLocalHostname(rtl_uString **strLocalHostname);
-
-
-/**@} end section oslHostAddr
-*/
-
-/**@{ begin section oslSocket
-*/
-
-
-/*-***************************************************************************/
-/* oslSocket */
-/*-***************************************************************************/
-
-typedef struct oslSocketImpl * oslSocket;
-
-/** increases the refcount of the socket handle by one
- */
-void SAL_CALL osl_acquireSocket( oslSocket Socket );
-
-/** decreases the refcount of the socket handle by one.
-
- If the refcount drops to zero, the underlying socket handle
- is destroyed and becomes invalid.
- */
-void SAL_CALL osl_releaseSocket( oslSocket Socket );
-
-/** Create a socket of the specified Family and Type. The semantic of
- the Protocol parameter depends on the given family and type.
- @return 0 if socket could not be created, otherwise you get a handle
- to the allocated socket-datastructure.
-*/
-oslSocket SAL_CALL osl_createSocket(oslAddrFamily Family,
- oslSocketType Type,
- oslProtocol Protocol);
-
-/** Retrieves the Address of the local end of the socket.
- Note that a socket must be bound or connected before
- a vaild address can be returned.
- @return 0 if socket-address could not be created, otherwise you get
- the created Socket-Address.
-*/
-oslSocketAddr SAL_CALL osl_getLocalAddrOfSocket(oslSocket Socket);
-
-/** Retrieves the Address of the remote end of the socket.
- Note that a socket must be connected before
- a vaild address can be returned.
- @return 0 if socket-address could not be created, otherwise you get
- the created Socket-Address.
-*/
-oslSocketAddr SAL_CALL osl_getPeerAddrOfSocket(oslSocket Socket);
-
-/** Binds the given address to the socket.
- @param Socket [in]
- @param Address [in]
- @return <code>sal_False</code> if the bind failed, <code> sal_True</code> if successful.
- @see osl_getLastSocketError()
-*/
-sal_Bool SAL_CALL osl_bindAddrToSocket(oslSocket Socket,
- oslSocketAddr Addr);
-
-/** Connects the socket to the given address.
-
- @param Socket [in] a bound socket.
- @param Addr [in] the peer address.
- @param pTimeout Timeout value or NULL for blocking.
-
- @return <code>osl_Socket_Ok</code> on successful connection,
- <code>osl_Socket_TimedOut</code> if operation timed out,
- <code>osl_Socket_Interrupted</code> if operation was interrupted
- <code>osl_Socket_Error</code> if the connection failed.
-*/
-oslSocketResult SAL_CALL osl_connectSocketTo(oslSocket Socket,
- oslSocketAddr Addr,
- const TimeValue* pTimeout);
-
-
-/** Prepares the socket to act as an acceptor of incoming connections.
- You should call "listen" before you use "accept".
- @param MaxPendingConnections [in] denotes the length of the queue of
- pending connections for this socket. If MaxPendingConnections is
- -1, the systems default value will be used (Usually 5).
- @return <code>sal_False</code> if the listen failed.
-*/
-sal_Bool SAL_CALL osl_listenOnSocket(oslSocket Socket,
- sal_Int32 MaxPendingConnections);
-
-
-/** Waits for an ingoing connection on the socket.
- This call blocks if there is no incoming connection present.
- @param pAddr [in] if pAddr is != 0, the peers address is returned.
- @return 0 if the accept-call failed, otherwise you get a socket
- representing the new connection.
-*/
-oslSocket SAL_CALL osl_acceptConnectionOnSocket(oslSocket Socket,
- oslSocketAddr* pAddr);
-
-/** Tries to receive BytesToRead data from the connected socket,
- if no error occurs. Note that incomplete recvs due to
- packet boundaries may occur.
-
- @param Socket [in] A connected socket to be used to listen on.
- @param pBuffer [out] Points to a buffer that will be filled with the received
- data.
- @param BytesToRead [in] The number of bytes to read. pBuffer must have at least
- this size.
- @param Flag [in] Modifier for the call. Valid values are:
- <ul>
- <li><code>osl_Socket_MsgNormal</code>
- <li><code>osl_Socket_MsgOOB</code>
- <li><code>osl_Socket_MsgPeek</code>
- <li><code>osl_Socket_MsgDontRoute</code>
- <li><code>osl_Socket_MsgMaxIOVLen</code>
- </ul>
-
- @return the number of received bytes.
-*/
-sal_Int32 SAL_CALL osl_receiveSocket(oslSocket Socket,
- void* pBuffer,
- sal_uInt32 BytesToRead,
- oslSocketMsgFlag Flag);
-
-/** Tries to receives BufferSize data from the (usually unconnected)
- (datagram-)socket, if no error occurs.
-
- @param Socket [in] A bound socket to be used to listen for a datagram.
- @param pSenderAddr [out] An pointer to a created oslSocketAddr handle
- or to a null handle. After the call, it will contain the constructed
- oslSocketAddr of the datagrams sender. If pSenderAddr itself is 0,
- it is ignored.
- @param pBuffer [out] Points to a buffer that will be filled with the received
- datagram.
- @param BufferSize [in] The size of pBuffer.
- @param Flag [in] Modifier for the call. Valid values are:
- <ul>
- <li><code>osl_Socket_MsgNormal</code>
- <li><code>osl_Socket_MsgOOB</code>
- <li><code>osl_Socket_MsgPeek</code>
- <li><code>osl_Socket_MsgDontRoute</code>
- <li><code>osl_Socket_MsgMaxIOVLen</code>
- </ul>
-
- @return the number of received bytes.
-*/
-sal_Int32 SAL_CALL osl_receiveFromSocket(oslSocket Socket,
- oslSocketAddr SenderAddr,
- void* pBuffer,
- sal_uInt32 BufferSize,
- oslSocketMsgFlag Flag);
-
-/** Tries to send BytesToSend data from the connected socket,
- if no error occurs.
-
- @param Socket [in] A connected socket.
- @param pBuffer [in] Points to a buffer that contains the send-data.
- @param BytesToSend [in] The number of bytes to send. pBuffer must have at least
- this size.
- @param Flag [in] Modifier for the call. Valid values are:
- <ul>
- <li><code>osl_Socket_MsgNormal</code>
- <li><code>osl_Socket_MsgOOB</code>
- <li><code>osl_Socket_MsgPeek</code>
- <li><code>osl_Socket_MsgDontRoute</code>
- <li><code>osl_Socket_MsgMaxIOVLen</code>
- </ul>
-
- @return the number of transfered bytes.
-*/
-sal_Int32 SAL_CALL osl_sendSocket(oslSocket Socket,
- const void* pBuffer,
- sal_uInt32 BytesToSend,
- oslSocketMsgFlag Flag);
-
-/** Tries to send one datagram with BytesToSend data to the given ReceiverAddr
- via the (implicitly unconnected) datagram-socket.
- Since there is only sent one packet, the function sends the data always complete
- even with incomplete packet boundaries.
-
- @param Socket [in] A bound or unbound socket. Socket will be bound
- after a successful call.
-
- @param ReceiverAddr [in] An initialized oslSocketAddress that contains
- the destination address for this send.
-
- @param pBuffer [in] Points to a buffer that contains the send-data.
- @param BytesToSend [in] The number of bytes to send. pBuffer must have at least
- this size.
- @param Flag [in] Modifier for the call. Valid values are:
- <ul>
- <li><code>osl_Socket_MsgNormal</code>
- <li><code>osl_Socket_MsgOOB</code>
- <li><code>osl_Socket_MsgPeek</code>
- <li><code>osl_Socket_MsgDontRoute</code>
- <li><code>osl_Socket_MsgMaxIOVLen</code>
- </ul>
-
- @return the number of transfered bytes.
-*/
-sal_Int32 SAL_CALL osl_sendToSocket(oslSocket Socket,
- oslSocketAddr ReceiverAddr,
- const void* pBuffer,
- sal_uInt32 BytesToSend,
- oslSocketMsgFlag Flag);
-
-/** Checks if read operations will block.
-
- You can specify a timeout-value in seconds/microseconds that denotes
- how long the operation will block if the Socket is not ready.
-
- @return <code>sal_True</code> if read operations (recv, recvFrom, accept) on the Socket
- will NOT block; <code>sal_False</code> if it would block or if an error occurred.
-
- @param Socket the Socket to perfom the operation on.
- @param pTimeout if NULL, the operation will block without a timeout.
-*/
-sal_Bool SAL_CALL osl_isReceiveReady(oslSocket Socket, const TimeValue* pTimeout);
-
-/** Checks if send operations will block.
- You can specify a timeout-value in seconds/microseconds that denotes
- how long the operation will block if the Socket is not ready.
- @return <code>sal_True</code> if send operations (send, sendTo) on the Socket
- will NOT block; <code>sal_False</code> if it would block or if an error occurred.
-
- @param Socket the Socket to perfom the operation on.
- @param pTimeout if NULL, the operation will block without a timeout. Otherwise
- the time define by timeout value.
-*/
-sal_Bool SAL_CALL osl_isSendReady(oslSocket Socket, const TimeValue* pTimeout);
-
-/** Checks if a request for out-of-band data will block.
- You can specify a timeout-value in seconds/microseconds that denotes
- how long the operation will block if the Socket has no pending OOB data.
- @return <code>sal_True</code> if OOB-request operations (recv with appropriate flags)
- on the Socket will NOT block; <code>sal_False</code> if it would block or if an error occurred.
-
- @param Socket the Socket to perfom the operation on.
- @param pTimeout if NULL, the operation will block without a timeout.
-*/
-sal_Bool SAL_CALL osl_isExceptionPending(oslSocket Socket, const TimeValue* pTimeout);
-
-/** Shuts down communication on a connected socket.
- @param Direction denotes which end of the socket
- should be closed:
- <ul>
- <li> <code>osl_Socket_DirRead</code> closes read operations.
- <li> <code>osl_Socket_DirReadWrite</code> closes write operations.
- <li> <code>osl_Socket_DirWrite</code> closes read and write operations.
- </ul>
- @return <code>sal_True</code> if the socket could be closed down.
-*/
-sal_Bool SAL_CALL osl_shutdownSocket(oslSocket Socket,
- oslSocketDirection Direction);
-
-/** Retrieves attributes associated with the socket.
- @param Socket is the socket to query.
-
- @param Level selects the level for which an option should be queried.
- Valid values are:
- <ul>
- <li> osl_sol_socket: Socket Level
- <li> osl_sol_tcp: Level of Transmission Control Protocol
- </ul>
-
- @param Option denotes the option to query.
- Valid values (depending on the Level) are:
- <ul>
- <li> <code>osl_Socket_Option_Debug</code><br>
- (sal_Bool) Socket debug flag 1 = enabled, 0 = disabled.
-
- <li> <code>osl_Socket_OptionAcceptConn</code><br>
- <li> <code>osl_Socket_OptionReuseAddr</code><br>
- (sal_Bool) Allows the socket to be bound to an address that is
- already in use.
- 1 = multiple bound allowed, 0 = no multiple bounds allowed
-
- <li><code>osl_Socket_OptionKeepAlive</code><br>
- (sal_Bool) Keepalive packets are sent by the underlying socket.
- 1 = enabled, 0 = disabled
-
- <li><code>osl_Socket_OptionDontRoute</code><br>
- (sal_Bool) Do not route: send directly to interface.
- 1 = do not route , 0 = routing possible
-
- <li><code>osl_Socket_OptionBroadcast</code><br>
- (sal_Bool) Transmission of broadcast messages are allowed on the socket.
- 1 = transmission allowed, 0 = transmission disallowed
-
- <li><code>osl_Socket_OptionUseLoopback</code><br>
-
- <li><code>osl_Socket_OptionLinger</code><br>
- (sal_Int32) Linger on close if unsent data is present.
- 0 = linger is off, > 0 = timeout in seconds.
-
- <li><code>osl_Socket_OptionOOBinLine</code><br>
-
-
- <li><code>osl_Socket_OptionSndBuf</code><br>
- (sal_Int32) Size of the send buffer in bytes. Data is sent after
- SndTimeo or when the buffer is full. This allows faster writing
- to the socket.
-
- <li><code>osl_Socket_OptionRcvBuf</code><br>
- (sal_Int32) Size of the receive buffer in bytes. Data is sent after
- SndTimeo or when the buffer is full. This allows faster writing
- to the socket and larger packet sizes.
-
- <li><code>osl_Socket_OptionSndLowat</code><br>
-
- <li><code>osl_Socket_OptionRcvLowat</code><br>
-
- <li><code>osl_Socket_OptionSndTimeo</code><br>
- (sal_Int32) Data is sent after this timeout. This allows gathering
- of data to send larger packages but increases latency times.
-
- <li><code>osl_Socket_OptionRcvTimeo</code><br>
-
- <li><code>osl_Socket_OptionError</code><br>
- <li><code>osl_Socket_OptionType</code><br>
-
- <li><code>osl_Socket_OptionTcpNoDelay</code><br>
- Disables the Nagle algorithm for send coalescing. (Do not
- collect data until a packet is full, instead send immediatly.
- This increases network traffic but might improve latency-times.)
- 1 = disables the algorithm, 0 = keeps it enabled.
- </ul>
- If not above mentioned otherwise, the options are only valid for
- level <code>osl_Socket_LevelSocket</code>.
-
- @param pBuffer Pointer to a buffer large enough to take the desired
- attribute-value.
-
- @param BufferSize contains the length of the Buffer.
-
- @return -1 if an error occurred or else the size of the data copied into
- pBuffer.
- @see osl_setSocketOption()
-*/
-sal_Int32 SAL_CALL osl_getSocketOption(oslSocket Socket,
- oslSocketOptionLevel Level,
- oslSocketOption Option,
- void* pBuffer,
- sal_uInt32 BufferLen);
-
-/** Sets the sockets attributes.
-
- @param Socket is the socket to modify.
-
- @param Level selects the level for which an option should be changed.
- Valid values are:
- <ul>
- <li> osl_sol_socket: Socket Level
- <li> osl_sol_tcp: Level of Transmission Control Protocol
- </ul>
-
- @param Option denotes the option to modify. See osl_setSocketOption() for more
- details.
-
- @param pBuffer Pointer to a Buffer which contains the attribute-value.
-
- @param BufferSize contains the length of the Buffer.
-
- @return True if the option could be changed.
-*/
-sal_Bool SAL_CALL osl_setSocketOption(oslSocket Socket,
- oslSocketOptionLevel Level,
- oslSocketOption Option,
- void* pBuffer,
- sal_uInt32 BufferLen);
-
-/** Enables/disables non-blocking-mode of the socket.
- @param Socket Change mode for this socket.
- @param On <code>sal_True</code> enables non-blocking mode,
- <code>sal_False</code> disables non-blocking mode.
- @return <code>sal_True</code> if mode could be changed.
-*/
-sal_Bool SAL_CALL osl_enableNonBlockingMode(oslSocket Socket,
- sal_Bool On);
-
-
-/** Query state of non-blocking-mode of the socket.
- @param Socket Query mode for this socket.
- @return True if non-blocking-mode is enabled.
-*/
-sal_Bool SAL_CALL osl_isNonBlockingMode(oslSocket Socket);
-
-
-/** Queries the socket for its type.
- @return one of:
- <ul>
- <li> osl_Socket_TypeStream
- <li> osl_Socket_TypeDgram
- <li> osl_Socket_TypeRaw
- <li> osl_Socket_TypeRdm
- <li> osl_Socket_TypeSeqPacket
- <li> osl_invalid_SocketType, if an error occurred
- </ul>
-
-*/
-oslSocketType SAL_CALL osl_getSocketType(oslSocket Socket);
-
-/** returns a string which describes the last socket error.
- @param strError out-parameter. The string that receives the error message.
-*/
-void SAL_CALL osl_getLastSocketErrorDescription(oslSocket Socket, rtl_uString **strError);
-
-/** returns a constant decribing the last error for the socket system.
- @return <code>osl_Socket_E_NONE</code> if no error occurred,
- <code>osl_invalid_SocketError</code> if an unknown (unmapped)
- error occurred, otherwise an enum describing the error.
-*/
-oslSocketError SAL_CALL osl_getLastSocketError(oslSocket Socket);
-
-/** Type for the representation of socket sets.
-*/
-typedef struct oslSocketSetImpl * oslSocketSet;
-
-/** Creates a set of sockets to be used with osl_demultiplexSocketEvents().
- @return A oslSocketSet or 0 if creation failed.
-*/
-oslSocketSet SAL_CALL osl_createSocketSet(void);
-
-/** Destroys a oslSocketSet.
-*/
-void SAL_CALL osl_destroySocketSet(oslSocketSet Set);
-
-/** Clears the set from all previously added sockets.
- @param Set the set to be cleared.
-*/
-void SAL_CALL osl_clearSocketSet(oslSocketSet Set);
-
-
-/** Adds a socket to the set.
- @param Set the set were the socket is added.
- @param Socket the socket to be added.
-*/
-void SAL_CALL osl_addToSocketSet(oslSocketSet Set, oslSocket Socket);
-
-/** Removes a socket from the set.
- @param Set the set were the socket is removed from.
- @param Socket the socket to be removed.
-*/
-void SAL_CALL osl_removeFromSocketSet(oslSocketSet Set, oslSocket Socket);
-
-/** Checks if socket is in the set.
- @param Set the set to be checked.
- @param Socket check if this socket is in the set.
- @return <code>sal_True</code> if socket is in the set.
-*/
-sal_Bool SAL_CALL osl_isInSocketSet(oslSocketSet Set, oslSocket Socket);
-
-/** Checks multiple sockets for events.
- @param IncomingSet Checks the sockets in this set
- for incoming events (read, accept). If the set is 0,
- it is just skipped.
- @param OutgoingSet Checks the sockets in this set
- for outgoing events (write, connect). If the set is 0,
- it is just skipped.
- @param OutOfBandSet Checks the sockets in this set
- for out-of-band events. If the set is 0, it is just skipped.
- @param msTimeout Number of milliseconds to wait for events. If
- msTimeout is -1, the call will block until an event or an error
- occurs.
- @return -1 on errors, otherwise the number of sockets with
- pending events. In case of timeout, the number might be 0.
-*/
-sal_Int32 SAL_CALL osl_demultiplexSocketEvents(oslSocketSet IncomingSet,
- oslSocketSet OutgoingSet,
- oslSocketSet OutOfBandSet,
- const TimeValue* pTimeout);
-
-/** Closes the socket terminating any ongoing dataflow.
- */
-void SAL_CALL osl_closeSocket(oslSocket Socket);
-
-
-/** Retrieves n bytes from the stream and copies them into pBuffer.
- The function avoids incomplete reads due to packet boundaries.
- @param pBuffer receives the read data.
- @param n the number of bytes to read. pBuffer must be large enough
- to hold the n bytes!
- @return the number of read bytes. The number will only be smaller than
- n if an exceptional condition (e.g. connection closed) occurs.
-*/
-sal_Int32 SAL_CALL osl_readSocket( oslSocket Socket, void *pBuffer, sal_Int32 nSize );
-
-
-/** Writes n bytes from pBuffer to the stream. The method avoids
- incomplete writes due to packet boundaries.
- @param pBuffer contains the data to be written.
- @param n the number of bytes to write.
- @return the number of written bytes. The number will only be smaller than
- n if an exceptional condition (e.g. connection closed) occurs.
-*/
-sal_Int32 SAL_CALL osl_writeSocket( oslSocket Socket, const void *pBuffer, sal_Int32 nSize );
-
-/**@} end section oslSocket
-*/
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OSL_SOCKET_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/socket.hxx b/sal/inc/osl/socket.hxx
deleted file mode 100644
index 403307eb7..000000000
--- a/sal/inc/osl/socket.hxx
+++ /dev/null
@@ -1,568 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _OSL_SOCKET_HXX_
-#define _OSL_SOCKET_HXX_
-
-#include <osl/socket_decl.hxx>
-
-namespace osl
-{
- //______________________________________________________________________________
- inline SocketAddr::SocketAddr()
- : m_handle( osl_createEmptySocketAddr( osl_Socket_FamilyInet ) )
- {}
-
- //______________________________________________________________________________
- inline SocketAddr::SocketAddr(const SocketAddr& Addr)
- : m_handle( osl_copySocketAddr( Addr.m_handle ) )
- {
- }
-
- //______________________________________________________________________________
- inline SocketAddr::SocketAddr(oslSocketAddr Addr)
- : m_handle( osl_copySocketAddr( Addr ) )
- {
- }
-
- //______________________________________________________________________________
- inline SocketAddr::SocketAddr(oslSocketAddr Addr, __osl_socket_NoCopy )
- : m_handle( Addr )
- {
- }
-
- //______________________________________________________________________________
- inline SocketAddr::SocketAddr( const ::rtl::OUString& strAddrOrHostName, sal_Int32 nPort)
- : m_handle( osl_createInetSocketAddr( strAddrOrHostName.pData, nPort ) )
- {
- if(! m_handle )
- {
- m_handle = osl_resolveHostname(strAddrOrHostName.pData);
-
- // host found?
- if(m_handle)
- {
- osl_setInetPortOfSocketAddr(m_handle, nPort);
- }
- else
- {
- osl_destroySocketAddr( m_handle );
- m_handle = 0;
- }
- }
- }
-
- //______________________________________________________________________________
- inline SocketAddr::~SocketAddr()
- {
- if( m_handle )
- osl_destroySocketAddr( m_handle );
- }
-
- //______________________________________________________________________________
- inline ::rtl::OUString SocketAddr::getHostname( oslSocketResult *pResult ) const
- {
- ::rtl::OUString hostname;
- oslSocketResult result = osl_getHostnameOfSocketAddr( m_handle, &(hostname.pData) );
- if( pResult )
- *pResult = result;
- return hostname;
- }
-
- //______________________________________________________________________________
- inline sal_Int32 SAL_CALL SocketAddr::getPort() const
- {
- return osl_getInetPortOfSocketAddr(m_handle);
- }
-
- //______________________________________________________________________________
- inline sal_Bool SAL_CALL SocketAddr::setPort( sal_Int32 nPort )
- {
- return osl_setInetPortOfSocketAddr(m_handle, nPort );
- }
-
- inline sal_Bool SAL_CALL SocketAddr::setHostname( const ::rtl::OUString &sDottedIpOrHostname )
- {
- *this = SocketAddr( sDottedIpOrHostname , getPort() );
- return is();
- }
-
- //______________________________________________________________________________
- inline sal_Bool SAL_CALL SocketAddr::setAddr( const ::rtl::ByteSequence & address )
- {
- return osl_setAddrOfSocketAddr( m_handle, address.getHandle() )
- == osl_Socket_Ok;
- }
-
- inline ::rtl::ByteSequence SAL_CALL SocketAddr::getAddr( oslSocketResult *pResult ) const
- {
- ::rtl::ByteSequence sequence;
- oslSocketResult result = osl_getAddrOfSocketAddr( m_handle,(sal_Sequence **) &sequence );
- if( pResult )
- *pResult = result;
- return sequence;
- }
-
- //______________________________________________________________________________
- inline SocketAddr & SAL_CALL SocketAddr::operator= (oslSocketAddr Addr)
- {
- oslSocketAddr pNewAddr = osl_copySocketAddr( Addr );
- if( m_handle )
- osl_destroySocketAddr( m_handle );
- m_handle = pNewAddr;
- return *this;
- }
-
- //______________________________________________________________________________
- inline SocketAddr & SAL_CALL SocketAddr::operator= (const SocketAddr& Addr)
- {
- *this = (Addr.getHandle());
- return *this;
- }
-
- inline SocketAddr & SAL_CALL SocketAddr::assign( oslSocketAddr Addr, __osl_socket_NoCopy )
- {
- if( m_handle )
- osl_destroySocketAddr( m_handle );
- m_handle = Addr;
- return *this;
- }
-
- //______________________________________________________________________________
- inline sal_Bool SAL_CALL SocketAddr::operator== (oslSocketAddr Addr) const
- {
- return osl_isEqualSocketAddr( m_handle, Addr );
- }
-
- inline oslSocketAddr SocketAddr::getHandle() const
- {
- return m_handle;
- }
-
- //______________________________________________________________________________
- inline sal_Bool SocketAddr::is() const
- {
- return m_handle != 0;
- }
-
- // (static method)______________________________________________________________
- inline ::rtl::OUString SAL_CALL SocketAddr::getLocalHostname( oslSocketResult *pResult )
- {
- ::rtl::OUString hostname;
- oslSocketResult result = osl_getLocalHostname( &(hostname.pData) );
- if(pResult )
- *pResult = result;
- return hostname;
- }
-
- // (static method)______________________________________________________________
- inline void SAL_CALL SocketAddr::resolveHostname(
- const ::rtl::OUString & strHostName, SocketAddr &Addr)
- {
- Addr = SocketAddr( osl_resolveHostname( strHostName.pData ) , SAL_NO_COPY );
- }
-
- // (static method)______________________________________________________________
- inline sal_Int32 SAL_CALL SocketAddr::getServicePort(
- const ::rtl::OUString& strServiceName,
- const ::rtl::OUString & strProtocolName )
- {
- return osl_getServicePort( strServiceName.pData, strProtocolName.pData );
- }
-
- //______________________________________________________________________________
- inline Socket::Socket(oslSocketType Type,
- oslAddrFamily Family,
- oslProtocol Protocol)
- : m_handle( osl_createSocket(Family, Type, Protocol) )
- {}
-
- //______________________________________________________________________________
- inline Socket::Socket( oslSocket socketHandle, __sal_NoAcquire )
- : m_handle( socketHandle )
- {}
-
- //______________________________________________________________________________
- inline Socket::Socket( oslSocket socketHandle )
- : m_handle( socketHandle )
- {
- osl_acquireSocket( m_handle );
- }
-
- //______________________________________________________________________________
- inline Socket::Socket( const Socket & socket )
- : m_handle( socket.getHandle() )
- {
- osl_acquireSocket( m_handle );
- }
-
- //______________________________________________________________________________
- inline Socket::~Socket()
- {
- osl_releaseSocket( m_handle );
- }
-
- //______________________________________________________________________________
- inline Socket& Socket::operator= ( oslSocket socketHandle)
- {
- osl_acquireSocket( socketHandle );
- osl_releaseSocket( m_handle );
- m_handle = socketHandle;
- return *this;
- }
-
- //______________________________________________________________________________
- inline Socket& Socket::operator= (const Socket& sock)
- {
- return (*this) = sock.getHandle();
- }
-
- //______________________________________________________________________________
- inline sal_Bool Socket::operator==( const Socket& rSocket ) const
- {
- return m_handle == rSocket.getHandle();
- }
-
- //______________________________________________________________________________
- inline sal_Bool Socket::operator==( const oslSocket socketHandle ) const
- {
- return m_handle == socketHandle;
- }
-
- //______________________________________________________________________________
- inline void Socket::shutdown( oslSocketDirection Direction )
- {
- osl_shutdownSocket( m_handle , Direction );
- }
-
- //______________________________________________________________________________
- inline void Socket::close()
- {
- osl_closeSocket( m_handle );
- }
-
- //______________________________________________________________________________
- inline void Socket::getLocalAddr( SocketAddr & addr) const
- {
- addr.assign( osl_getLocalAddrOfSocket( m_handle ) , SAL_NO_COPY );
- }
-
- //______________________________________________________________________________
- inline sal_Int32 Socket::getLocalPort() const
- {
- SocketAddr addr( 0 );
- getLocalAddr( addr );
- return addr.getPort();
- }
-
- //______________________________________________________________________________
- inline ::rtl::OUString Socket::getLocalHost() const
- {
- SocketAddr addr( 0 );
- getLocalAddr( addr );
- return addr.getHostname();
- }
-
- //______________________________________________________________________________
- inline void Socket::getPeerAddr( SocketAddr &addr ) const
- {
- addr.assign( osl_getPeerAddrOfSocket( m_handle ), SAL_NO_COPY );
- }
-
- //______________________________________________________________________________
- inline sal_Int32 Socket::getPeerPort() const
- {
- SocketAddr addr( 0 );
- getPeerAddr( addr );
- return addr.getPort();
- }
-
- //______________________________________________________________________________
- inline ::rtl::OUString Socket::getPeerHost() const
- {
- SocketAddr addr( 0 );
- getPeerAddr( addr );
- return addr.getHostname();
- }
-
- //______________________________________________________________________________
- inline sal_Bool Socket::bind(const SocketAddr& LocalInterface)
- {
- return osl_bindAddrToSocket( m_handle , LocalInterface.getHandle() );
- }
-
- //______________________________________________________________________________
- inline sal_Bool Socket::isRecvReady(const TimeValue *pTimeout ) const
- {
- return osl_isReceiveReady( m_handle , pTimeout );
- }
-
- //______________________________________________________________________________
- inline sal_Bool Socket::isSendReady(const TimeValue *pTimeout ) const
- {
- return osl_isSendReady( m_handle, pTimeout );
- }
-
- //______________________________________________________________________________
- inline sal_Bool Socket::isExceptionPending(const TimeValue *pTimeout ) const
- {
- return osl_isExceptionPending( m_handle, pTimeout );
- }
-
- //______________________________________________________________________________
- inline oslSocketType Socket::getType() const
- {
- return osl_getSocketType( m_handle );
- }
-
- //______________________________________________________________________________
- inline sal_Int32 Socket::getOption(
- oslSocketOption Option,
- void* pBuffer,
- sal_uInt32 BufferLen,
- oslSocketOptionLevel Level) const
- {
- return osl_getSocketOption( m_handle, Level, Option, pBuffer , BufferLen );
- }
-
- //______________________________________________________________________________
- inline sal_Bool Socket::setOption( oslSocketOption Option,
- void* pBuffer,
- sal_uInt32 BufferLen,
- oslSocketOptionLevel Level ) const
- {
- return osl_setSocketOption( m_handle, Level, Option , pBuffer, BufferLen );
- }
-
- //______________________________________________________________________________
- inline sal_Bool Socket::setOption( oslSocketOption option, sal_Int32 nValue )
- {
- return setOption( option, &nValue, sizeof( nValue ) );
- }
-
- //______________________________________________________________________________
- inline sal_Int32 Socket::getOption( oslSocketOption option ) const
- {
- sal_Int32 n;
- getOption( option, &n, sizeof( n ) );
- return n;
- }
-
- //______________________________________________________________________________
- inline sal_Bool Socket::enableNonBlockingMode( sal_Bool bNonBlockingMode)
- {
- return osl_enableNonBlockingMode( m_handle , bNonBlockingMode );
- }
-
- //______________________________________________________________________________
- inline sal_Bool Socket::isNonBlockingMode() const
- {
- return osl_isNonBlockingMode( m_handle );
- }
-
- //______________________________________________________________________________
- inline void SAL_CALL Socket::clearError() const
- {
- sal_Int32 err = 0;
- getOption(osl_Socket_OptionError, &err, sizeof(err));
- }
-
- //______________________________________________________________________________
- inline oslSocketError Socket::getError() const
- {
- return osl_getLastSocketError( m_handle );
- }
-
- //______________________________________________________________________________
- inline ::rtl::OUString Socket::getErrorAsString( ) const
- {
- ::rtl::OUString error;
- osl_getLastSocketErrorDescription( m_handle, &(error.pData) );
- return error;
- }
-
- //______________________________________________________________________________
- inline oslSocket Socket::getHandle() const
- {
- return m_handle;
- }
-
- //______________________________________________________________________________
- inline StreamSocket::StreamSocket(oslAddrFamily Family,
- oslProtocol Protocol,
- oslSocketType Type )
- : Socket( Type, Family, Protocol )
- {}
-
- //______________________________________________________________________________
- inline StreamSocket::StreamSocket( oslSocket socketHandle, __sal_NoAcquire noacquire )
- : Socket( socketHandle, noacquire )
- {}
-
- //______________________________________________________________________________
- inline StreamSocket::StreamSocket( oslSocket socketHandle )
- : Socket( socketHandle )
- {}
-
- //______________________________________________________________________________
- inline StreamSocket::StreamSocket( const StreamSocket & socket )
- : Socket( socket )
- {}
-
- //______________________________________________________________________________
- inline sal_Int32 StreamSocket::read(void* pBuffer, sal_uInt32 n)
- {
- return osl_readSocket( m_handle, pBuffer, n );
- }
-
- //______________________________________________________________________________
- inline sal_Int32 StreamSocket::write(const void* pBuffer, sal_uInt32 n)
- {
- return osl_writeSocket( m_handle, pBuffer, n );
- }
-
-
- //______________________________________________________________________________
- inline sal_Int32 StreamSocket::recv(void* pBuffer,
- sal_uInt32 BytesToRead,
- oslSocketMsgFlag Flag)
- {
- return osl_receiveSocket( m_handle, pBuffer,BytesToRead, Flag );
- }
-
- //______________________________________________________________________________
- inline sal_Int32 StreamSocket::send(const void* pBuffer,
- sal_uInt32 BytesToSend,
- oslSocketMsgFlag Flag)
- {
- return osl_sendSocket( m_handle, pBuffer, BytesToSend, Flag );
- }
-
- //______________________________________________________________________________
- inline ConnectorSocket::ConnectorSocket(oslAddrFamily Family,
- oslProtocol Protocol,
- oslSocketType Type)
- : StreamSocket( Family, Protocol ,Type )
- {}
-
- //______________________________________________________________________________
- inline oslSocketResult ConnectorSocket::connect( const SocketAddr& TargetHost,
- const TimeValue* pTimeout )
- {
- return osl_connectSocketTo( m_handle , TargetHost.getHandle(), pTimeout );
- }
-
- //______________________________________________________________________________
- inline AcceptorSocket::AcceptorSocket(oslAddrFamily Family ,
- oslProtocol Protocol ,
- oslSocketType Type )
- : Socket( Type, Family, Protocol )
- {}
-
- //______________________________________________________________________________
- inline sal_Bool AcceptorSocket::listen(sal_Int32 MaxPendingConnections)
- {
- return osl_listenOnSocket( m_handle, MaxPendingConnections );
- }
-
- //______________________________________________________________________________
- inline oslSocketResult AcceptorSocket::acceptConnection( StreamSocket& Connection)
- {
- oslSocket o = osl_acceptConnectionOnSocket( m_handle, 0 );
- oslSocketResult status = osl_Socket_Ok;
- if( o )
- {
- Connection = StreamSocket( o , SAL_NO_ACQUIRE );
- }
- else
- {
- Connection = StreamSocket();
- status = osl_Socket_Error;
- }
- return status;
- }
-
- //______________________________________________________________________________
- inline oslSocketResult AcceptorSocket::acceptConnection(
- StreamSocket& Connection, SocketAddr & PeerAddr)
- {
- // TODO change in/OUT parameter
- oslSocket o = osl_acceptConnectionOnSocket( m_handle, (oslSocketAddr *)&PeerAddr );
- oslSocketResult status = osl_Socket_Ok;
- if( o )
- {
- Connection = StreamSocket( o , SAL_NO_ACQUIRE );
- }
- else
- {
- Connection = StreamSocket();
- status = osl_Socket_Error;
- }
- return status;
- }
-
- //______________________________________________________________________________
- inline DatagramSocket::DatagramSocket(oslAddrFamily Family,
- oslProtocol Protocol,
- oslSocketType Type)
- : Socket( Type, Family, Protocol )
- {}
-
- //______________________________________________________________________________
- inline sal_Int32 DatagramSocket::recvFrom(void* pBuffer,
- sal_uInt32 BufferSize,
- SocketAddr* pSenderAddr,
- oslSocketMsgFlag Flag )
- {
- sal_Int32 nByteRead;
- if( pSenderAddr )
- {
- // TODO : correct the out-parameter pSenderAddr outparameter
- nByteRead = osl_receiveFromSocket( m_handle, pSenderAddr->getHandle() , pBuffer,
- BufferSize, Flag);
-// nByteRead = osl_receiveFromSocket( m_handle, *(oslSocketAddr**) &pSenderAddr , pBuffer,
-// BufferSize, Flag);
- }
- else
- {
- nByteRead = osl_receiveFromSocket( m_handle, 0 , pBuffer , BufferSize , Flag );
- }
- return nByteRead;
- }
-
- //______________________________________________________________________________
- inline sal_Int32 DatagramSocket::sendTo( const SocketAddr& ReceiverAddr,
- const void* pBuffer,
- sal_uInt32 BufferSize,
- oslSocketMsgFlag Flag )
- {
- return osl_sendToSocket( m_handle, ReceiverAddr.getHandle(), pBuffer, BufferSize, Flag );
- }
-}
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/socket_decl.hxx b/sal/inc/osl/socket_decl.hxx
deleted file mode 100644
index 6ec31ddd2..000000000
--- a/sal/inc/osl/socket_decl.hxx
+++ /dev/null
@@ -1,725 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_SOCKET_DECL_HXX_
-#define _OSL_SOCKET_DECL_HXX_
-
-#include <osl/socket.h>
-#include <rtl/ustring.hxx>
-#include <rtl/byteseq.hxx>
-
-/** @HTML
- */
-namespace osl
-{
- enum __osl_socket_NoCopy { SAL_NO_COPY };
-
- /** The class should be understood as a reference to a socket address handle ( struct sockaddr ).
-
- The handle is mutable.
- */
- class SocketAddr
- {
- protected:
- oslSocketAddr m_handle;
- public:
-
- /** Creates socket address of unknown type.
- */
- inline SocketAddr();
-
- /** Copy constructor.
- */
- inline SocketAddr(const SocketAddr& Addr);
-
- /** The SocketAddr takes over the responsibility of the handle ( which means,
- that the handle gets destructed by the destructor of this reference)
-
- @param nocopy use SAL_NO_COPY
- */
- inline SocketAddr(const oslSocketAddr , __osl_socket_NoCopy nocopy );
-
- /** Copyconstructs the oslSocketAddr handle.
- */
- inline SocketAddr(oslSocketAddr Addr);
-
- /** tcpip-specif constructor.
- @param strAddrOrHostName strAddrOrHostName hostname or dotted ip-number of the network
- interface, the socket shall be created on.
- @param nPort tcp-ip port number
- */
- inline SocketAddr( const ::rtl::OUString& strAddrOrHostName, sal_Int32 nPort );
-
- /** destroys underlying oslSocketAddress
- */
- inline ~SocketAddr();
-
- /** checks, if the SocketAddr was created successful.
- @return <code>sal_True</code> if there is a valid underlying handle,
- otherwise sal_False.
- */
- inline sal_Bool is() const;
-
- /** Converts the address to a (human readable) domain-name.
-
- @param pResult 0, if you are not interested in errors,
- otherwise *pResult contains an error code on failure
- or osl_Socket_Ok on success
- @return the hostname of this SocketAddr or an empty string on failure.
- @see osl_getHostnameOfSocketAddr()
- */
- inline ::rtl::OUString SAL_CALL getHostname( oslSocketResult *pResult = 0 ) const;
-
- /** Sets the ipaddress or hostname of the SocketAddress
- */
- inline sal_Bool SAL_CALL setHostname( const ::rtl::OUString &sDottedIpOrHostname );
-
- /** Returns the port number of the address.
- @return the port in host-byte order or or OSL_INVALID_PORT on errors.
- */
- inline sal_Int32 SAL_CALL getPort() const;
-
- /** Sets the port number of the address.
- @return true if successfule.
- */
- inline sal_Bool SAL_CALL setPort( sal_Int32 nPort );
-
- /** Sets the address of the underlying socket address struct in network byte order.
- @return true on success, false signales falure.
- */
- inline sal_Bool SAL_CALL setAddr( const ::rtl::ByteSequence & address );
-
- /** Returns the address of the underlying socket in network byte order
- */
- inline ::rtl::ByteSequence SAL_CALL getAddr( oslSocketResult *pResult = 0 ) const;
-
- /** assign the handle to this reference. The previous handle is released.
- */
- inline SocketAddr & SAL_CALL operator= (oslSocketAddr Addr);
-
- /**
- */
- inline SocketAddr & SAL_CALL operator= (const SocketAddr& Addr);
-
- /** Assigns the socket addr without copyconstructing it.
- @param nocopy use SAL_NO_COPY
- */
- inline SocketAddr & SAL_CALL assign( oslSocketAddr Addr, __osl_socket_NoCopy nocopy );
-
- /** Returns true if the underlying handle is identical to the Addr handle.
- */
- inline sal_Bool SAL_CALL operator== (oslSocketAddr Addr) const;
-
- /** Returns true if the underlying handle is identical to the Addr handle.
- */
- inline sal_Bool SAL_CALL operator== (const SocketAddr & Addr) const;
-
- /** Returns the underlying SocketAddr handle without copyconstructing it.
- */
- inline oslSocketAddr SAL_CALL getHandle() const;
-
- /** Get the hostname for the local interface.
- @param after the call *pResult contains osl_Socket_Ok on success or
- an error on failure.
- @return the hostname
- */
- static inline ::rtl::OUString SAL_CALL getLocalHostname( oslSocketResult *pResult = 0);
-
- /** Tries to find an address for a host.
- @see osl_resolveHostname()
- @return A new created socket-address or 0 if the name could not be found.
- */
- static inline void SAL_CALL resolveHostname(
- const ::rtl::OUString & strHostName , SocketAddr & Addr );
-
- /**
- Tries to find the port associated with the given service/protocol-
- pair (e.g. "ftp"/"tcp").
- @return the port number in host-byte order or <code>OSL_INVALID_PORT</code>
- if no service/protocol pair could be found.
- */
- static inline sal_Int32 SAL_CALL getServicePort(
- const ::rtl::OUString& strServiceName,
- const ::rtl::OUString & strProtocolName= ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("tcp")) );
- };
-
-
- class Socket
- {
- protected:
- oslSocket m_handle;
- protected:
- /** Creates a socket. Note it's protected.
- @param Type
- @param Family
- @param Protocol
- */
- inline Socket(oslSocketType Type,
- oslAddrFamily Family = osl_Socket_FamilyInet,
- oslProtocol Protocol = osl_Socket_ProtocolIp);
- public:
- inline Socket( );
-
- inline Socket( const Socket & socket );
-
- inline Socket( oslSocket socketHandle );
-
- /** The instance takes over the handle's ownership without acquiring the
- handle, but releases it within the dtor.
- @param noacquire use SAL_NO_ACQUIRE
- */
- inline Socket( oslSocket socketHandle, __sal_NoAcquire noacquire );
-
- /** Destructor. Releases the underlying handle
- */
- inline ~Socket();
-
- /** Assignment operator. If socket was already created, the old one will
- be discarded.
- */
- inline Socket& SAL_CALL operator= ( oslSocket socketHandle);
-
- /** Assignment operator. If socket was already created, the old one will
- be discarded.
- */
- inline Socket& SAL_CALL operator= (const Socket& sock);
-
- /**
- @return <code>sal_True</code>, when the underlying handle of both
- Socket instances are identical, <code>sal_False</code> otherwise.
- */
- inline sal_Bool SAL_CALL operator==( const Socket& rSocket ) const ;
-
- /**
- @return <code>sal_True</code>, when the underlying handle of both
- Socket instances are identical, <code>sal_False</code> otherwise.
- */
- inline sal_Bool SAL_CALL operator==( const oslSocket socketHandle ) const;
-
- /** Closes a definite or both directions of the bidirectional stream.
-
- @param Direction
- @see osl_shutdownSocket()
- */
- inline void SAL_CALL shutdown( oslSocketDirection Direction = osl_Socket_DirReadWrite );
-
- /** Closes a socket.
- Note that closing a socket is identical to shutdown( osl_Socket_DirReadWrite ),
- as the operating system distinguish both cases, both functions or offered in this API.
- @see osl_closeSocket()
- */
- inline void SAL_CALL close();
-
- /** Retrieves the address of the local interface of this socket.
- @param Addr [out] receives the address.
- @see osl_getLocalAddrOfSocket()
- */
- inline void SAL_CALL getLocalAddr( SocketAddr &Addr ) const;
-
- /** Get the local port of the socket. Usually used after bind().
- @return the port number or OSL_INVALID_PORT on errors.
- */
- inline sal_Int32 SAL_CALL getLocalPort() const;
-
- /** Get the hostname for the local interface.
- @return the hostname or an empty string ("").
- */
- inline ::rtl::OUString SAL_CALL getLocalHost() const;
-
- /** Retrieves the address of the remote host of this socket.
- @param Addr [out] receives the address.
- */
- inline void SAL_CALL getPeerAddr( SocketAddr & Addr) const;
-
- /** Get the remote port of the socket.
- @return the port number or OSL_INVALID_PORT on errors.
- */
- inline sal_Int32 SAL_CALL getPeerPort() const;
-
- /** Get the hostname for the remote interface.
- @return the hostname or an empty string ("").
- */
- inline ::rtl::OUString SAL_CALL getPeerHost() const;
-
- /** Binds the socket to the specified (local) interface.
- @param LocalInterface Address of the Interface
- @return True if bind was successful.
- */
- inline sal_Bool SAL_CALL bind(const SocketAddr& LocalInterface);
-
- /** Checks if read operations will block.
-
- You can specify a timeout-value in seconds/nanoseconds that denotes
- how the operation will block if the Socket is not ready.
- @return <code>sal_True</code> if read operations (recv, recvFrom, accept) on the Socket
- will NOT block; <code>sal_False</code> if it would block or if an error occurred.
-
- @param pTimeout if 0, the operation will block without a timeout. Otherwise
- the specified amout of time.
- */
- inline sal_Bool SAL_CALL isRecvReady(const TimeValue *pTimeout = 0) const;
-
- /** Checks if send operations will block.
-
- You can specify a timeout-value in seconds/nanoseconds that denotes
- how the operation will block if the Socket is not ready.
- @return <code>sal_True</code> if send operations (send, sendTo) on the Socket
- will NOT block; <code>sal_False</code> if it would block or if an error occurred.
-
- @param pTimeout if 0, the operation will block without a timeout. Otherwise
- the specified amout of time.
- */
- inline sal_Bool SAL_CALL isSendReady(const TimeValue *pTimeout = 0) const;
-
-
- /** Checks if a request for out-of-band data will block.
-
- You can specify a timeout-value in seconds/nanoseconds that denotes
- how the operation will block if the Socket has no pending OOB data.
-
- @return <code>sal_True</code> if OOB-request operations (recv with appropriate flags)
- on the Socket will NOT block; <code>sal_False</code> if it would block or if
- an error occurred.
-
- @param pTimeout if 0, the operation will block without a timeout. Otherwise
- the specified amout of time.
- */
- inline sal_Bool SAL_CALL isExceptionPending(const TimeValue *pTimeout = 0) const;
-
-
- /** Queries the socket for its type.
- @return one of:
- <ul>
- <li> <code>osl_Socket_TypeStream</code>
- <li> <code>osl_Socket_TypeDgram</code>
- <li> <code>osl_Socket_TypeRaw</code>
- <li> <code>osl_Socket_TypeRdm</code>
- <li> <code>osl_Socket_TypeSeqPacket</code>
- <li> <code>osl_invalid_SocketType</code>, if an error occurred
- </ul>
- */
- inline oslSocketType SAL_CALL getType() const;
-
- /** Retrieves option-attributes associated with the socket.
- @param Option The attribute to query.
- Valid values (depending on the Level) are:
- <ul>
- <li> <code>osl_Socket_Option_Debug</code><br>
- (sal_Bool) Socket debug flag 1 = enabled, 0 = disabled.
-
- <li> <code>osl_Socket_OptionAcceptConn</code><br>
- <li> <code>osl_Socket_OptionReuseAddr</code><br>
- (sal_Bool) Allows the socket to be bound to an address that is
- already in use.
- 1 = multiple bound allowed, 0 = no multiple bounds allowed
-
- <li><code>osl_Socket_OptionKeepAlive</code><br>
- (sal_Bool) Keepalive packets are sent by the underlying socket.
- 1 = enabled, 0 = disabled
-
- <li><code>osl_Socket_OptionDontRoute</code><br>
- (sal_Bool) Do not route: send directly to interface.
- 1 = do not route , 0 = routing possible
-
- <li><code>osl_Socket_OptionBroadcast</code><br>
- (sal_Bool) Transmission of broadcast messages are allowed on the socket.
- 1 = transmission allowed, 0 = transmission disallowed
-
- <li><code>osl_Socket_OptionUseLoopback</code><br>
-
- <li><code>osl_Socket_OptionLinger</code><br>
- (linger) Linger on close if unsent data is present.
- linger has two members: l_onoff, l_linger
- l_onoff = 0 is off, l_onoff > 0 and l_linger= timeout in seconds.
-
- <li><code>osl_Socket_OptionOOBinLine</code><br>
-
-
- <li><code>osl_Socket_OptionSndBuf</code><br>
- (sal_Int32) Size of the send buffer in bytes. Data is sent after
- SndTimeo or when the buffer is full. This allows faster writing
- to the socket.
-
- <li><code>osl_Socket_OptionRcvBuf</code><br>
- (sal_Int32) Size of the receive buffer in bytes. Data is sent after
- SndTimeo or when the buffer is full. This allows faster writing
- to the socket and larger packet sizes.
-
- <li><code>osl_Socket_OptionSndLowat</code><br>
-
- <li><code>osl_Socket_OptionRcvLowat</code><br>
-
- <li><code>osl_Socket_OptionSndTimeo</code><br>
- (sal_Int32) Data is sent after this timeout. This allows gathering
- of data to send larger packages but increases latency times.
-
- <li><code>osl_Socket_OptionRcvTimeo</code><br>
-
- <li><code>osl_Socket_OptionError</code><br>
- <li><code>osl_Socket_OptionType</code><br>
-
- <li><code>osl_Socket_OptionTcpNoDelay</code><br>
- Disables the Nagle algorithm for send coalescing. (Do not
- collect data until a packet is full, instead send immediatly.
- This increases network traffic but might improve latency-times.)
- 1 = disables the algorithm, 0 = keeps it enabled.
- </ul>
-
- If not above mentioned otherwise, the options are only valid for
- level <code>osl_Socket_LevelSocket</code>.
- @param pBuffer The Buffer will be filled with the attribute.
-
- @param BufferSize The size of pBuffer.
-
- @param Level The option level.
-
- Valid values are:
- <ul>
- <li><code>osl_Socket_LevelSocket</code> : Socket Level
- <li><code>osl_Socket_LevelTcp</code> : Level of Transmission Control Protocol
- </ul>
- @return The size of the attribute copied into pBuffer or -1 if an error
- occurred.
- */
- inline sal_Int32 SAL_CALL getOption(
- oslSocketOption Option,
- void* pBuffer,
- sal_uInt32 BufferLen,
- oslSocketOptionLevel Level= osl_Socket_LevelSocket) const;
-
- /** Sets the sockets attributes.
-
- @param Option denotes the option to modify.
- Valid values (depending on the Level) are:
- <ul>
- <li> osl_Socket_Option_Debug
- <li> osl_Socket_OptionAcceptConn
- <li> osl_Socket_OptionReuseAddr
- <li> osl_Socket_OptionKeepAlive
- <li> osl_Socket_OptionDontRoute
- <li> osl_Socket_OptionBroadcast
- <li> osl_Socket_OptionUseLoopback
- <li> osl_Socket_OptionLinger
- <li> osl_Socket_OptionOOBinLine
- <li> osl_Socket_OptionSndBuf
- <li> osl_Socket_OptionRcvBuf
- <li> osl_Socket_OptionSndLowat
- <li> osl_Socket_OptionRcvLowat
- <li> osl_Socket_OptionSndTimeo
- <li> osl_Socket_OptionRcvTimeo
- <li> osl_Socket_OptionError
- <li> osl_Socket_OptionType
- <li> osl_Socket_OptionTcpNoDelay
- </ul>
-
- If not above mentioned otherwise, the options are only valid for
- level osl_Socket_LevelSocket.
-
- @param pBuffer Pointer to a Buffer which contains the attribute-value.
-
- @param BufferSize contains the length of the Buffer.
-
- @param Level selects the level for which an option should be changed.
- Valid values are:
- <ul>
- <li> osl_Socket_evel_Socket : Socket Level
- <li> osl_Socket_Level_Tcp : Level of Transmission Control Protocol
- </ul>
-
- @return True if the option could be changed.
- */
- inline sal_Bool SAL_CALL setOption( oslSocketOption Option,
- void* pBuffer,
- sal_uInt32 BufferLen,
- oslSocketOptionLevel Level= osl_Socket_LevelSocket ) const;
-
- /** Convenience function for setting sal_Bool and sal_Int32 option values.
- @see setOption()
- */
- inline sal_Bool setOption( oslSocketOption option, sal_Int32 nValue );
-
- /** Convenience function for retrieving sal_Bool and sal_Int32 option values.
- @see setOption()
- */
- inline sal_Int32 getOption( oslSocketOption option ) const;
-
- /** Enables/disables non-blocking mode of the socket.
- @param bNonBlockingMode If <code>sal_True</code>, blocking mode will be switched off
- If <code>sal_False</code>, the socket will become a blocking
- socket (which is the default behaviour of a socket).
- @return <code>sal_True</code> if mode could be set.
- */
- inline sal_Bool SAL_CALL enableNonBlockingMode( sal_Bool bNonBlockingMode);
-
- /** Query blocking mode of the socket.
- @return <code>sal_True</code> if non-blocking mode is set.
- */
- inline sal_Bool SAL_CALL isNonBlockingMode() const;
-
-
- /** clears the error status
- */
- inline void SAL_CALL clearError() const;
-
- /** returns a constant decribing the last error for the socket system.
-
- @return osl_Socket_E_NONE if no error occurred, invalid_SocketError if
- an unknown (unmapped) error occurred, otherwise an enum describing the
- error.
- @see osl_getLastSocketError()
- */
- inline oslSocketError getError() const;
-
- /** Builds a string with the last error-message for the socket.
- */
- inline ::rtl::OUString getErrorAsString( ) const;
-
- /** Returns the underlying handle unacquired (The caller must acquire it to keep it).
- */
- inline oslSocket getHandle() const;
- };
-
-
- class StreamSocket : public Socket
- {
- public:
- /** Creates a socket.
- @param Type For some protocols it might be desirable to
- use a different type than <code>osl_Socket_TypeStream</code>
- (like <code>osl_Socket_TypeSeqPacket</code>).
- Therefore this parameter is not hidden.
- */
- inline StreamSocket(oslAddrFamily Family = osl_Socket_FamilyInet,
- oslProtocol Protocol = osl_Socket_ProtocolIp,
- oslSocketType Type = osl_Socket_TypeStream);
-
- inline StreamSocket( const StreamSocket & );
-
- inline StreamSocket( oslSocket Socket , __sal_NoAcquire noacquire );
-
- inline StreamSocket( oslSocket Socket );
-
- /** Retrieves n bytes from the stream and copies them into pBuffer.
- The method avoids incomplete reads due to packet boundaries and is thus
- blocking.
- @param pBuffer receives the read data. pBuffer must be large enough
- to hold n bytes.
- @param n the number of bytes to read.
- @return the number of read bytes. The number will only be smaller than
- n if an exceptional condition (e.g. connection closed) occurs.
- */
- inline sal_Int32 SAL_CALL read(void* pBuffer, sal_uInt32 n);
-
- /** Writes n bytes from pBuffer to the stream. The method avoids
- incomplete writes due to packet boundaries and is thus blocking.
- @param pBuffer contains the data to be written.
- @param n the number of bytes to write.
- @return the number of written bytes. The number will only be smaller than
- n if an exceptional condition (e.g. connection closed) occurs.
- */
- inline sal_Int32 SAL_CALL write(const void* pBuffer, sal_uInt32 n);
-
-
- /** Tries to receive BytesToRead data from the connected socket,
-
- @param pBuffer [out] Points to a buffer that will be filled with the received
- data. pBuffer must have at least have a size of BytesToRead.
- @param BytesToRead [in] The number of bytes to read.
- @param Flag [in] Modifier for the call. Valid values are:
-
- <ul>
- <li><code>osl_Socket_MsgNormal</code>
- <li><code>osl_Socket_MsgOOB</code>
- <li><code>osl_Socket_MsgPeek</code>
- <li><code>osl_Socket_MsgDontRoute</code>
- <li><code>osl_Socket_MsgMaxIOVLen</code>
- </ul>
- @return the number of received bytes, which may be less than BytesToRead.
- */
- inline sal_Int32 SAL_CALL recv(void* pBuffer,
- sal_uInt32 BytesToRead,
- oslSocketMsgFlag flags= osl_Socket_MsgNormal);
-
- /** Tries to send BytesToSend data to the connected socket.
-
- @param pBuffer [in] Points to a buffer that contains the send-data.
- @param BytesToSend [in] The number of bytes to send. pBuffer must have at least
- this size.
- @param Flag [in] Modifier for the call. Valid values are:
- <ul>
- <li><code>osl_Socket_MsgNormal</code>
- <li><code>osl_Socket_MsgOOB</code>
- <li><code>osl_Socket_MsgPeek</code>
- <li><code>osl_Socket_MsgDontRoute</code>
- <li><code>osl_Socket_MsgMaxIOVLen</code>
- </ul>
-
- @return the number of transfered bytes. It may be less than BytesToSend.
- */
- sal_Int32 SAL_CALL send(const void* pBuffer,
- sal_uInt32 BytesToSend,
- oslSocketMsgFlag= osl_Socket_MsgNormal);
- };
-
- class ConnectorSocket : public StreamSocket
- {
- public:
- /** Creates a socket that can connect to a (remote) host.
- @param Type For some protocols it might be desirable to
- use a different type than sock_stream <code>osl_Socket_TypeSeqPacket</code>
- (like <code>osl_Socket_TypeSeqPacket</code>).
- Therefore we do not hide this parameter here.
- */
- ConnectorSocket(oslAddrFamily Family = osl_Socket_FamilyInet,
- oslProtocol Protocol = osl_Socket_ProtocolIp,
- oslSocketType Type = osl_Socket_TypeStream);
-
-
- /** Connects the socket to a (remote) host.
- @param TargetHost The address of the target.
- @param pTimeOut The timeout for blocking. If 0, a default system dependent timeout
- us used.
- @return <code> osl_Socket_Ok</code> if connected successfully,
- <code>osl_Socket_TimedOut</code> on timeout,
- <code>osl_Socket_Interrupted</code> if unblocked forcefully (by osl::Socket::close()),
- <code>osl_Socket_Error</code> if connect failed.
- */
- oslSocketResult SAL_CALL connect(const SocketAddr& TargetHost, const TimeValue* pTimeout = 0);
- };
-
- /** Allows to accept socket connections.
- */
- class AcceptorSocket : public Socket
- {
- public:
- inline AcceptorSocket(oslAddrFamily Family = osl_Socket_FamilyInet,
- oslProtocol Protocol = osl_Socket_ProtocolIp,
- oslSocketType Type = osl_Socket_TypeStream);
-
- /** Prepare a socket for the accept-call. The socket must have been
- bound before to the local address.
- @param MaxPendingConnections The maximum number of pending
- connections (waiting to be accepted) on this socket. If you use
- -1, a system default value is used.
- @return <code>sal_True</code> if call was successful.
- */
- inline sal_Bool SAL_CALL listen(sal_Int32 MaxPendingConnections= -1);
-
- /** Accepts incoming connections on the socket. You must
- precede this call with osl::Socket::bind() and listen().
- @param Connection receives the incoming connection.
- @return <code>osl_Socket_Ok</code>, if a connection has been accepted,
- <code>osl_Socket_TimedOut</code>, if m_RecvTimeout milliseconds passed without connect,
- <code>osl_Socket_Error</code> on errors.
- */
- inline oslSocketResult SAL_CALL acceptConnection( StreamSocket& Connection);
-
- /** Accepts incoming connections on the socket. You must
- precede this call with osl::Socket::bind() and listen().
- @param PeerAddr receives the address of the connecting entity
- (your communication partner).
- @param Connection receives the incoming connection.
- @return <code>osl_Socket_Ok</code>, if a connection has been accepted,
- <code>osl_Socket_TimedOut</code>, if m_RecvTimeout milliseconds passed without connect,
- <code>osl_Socket_Error</code> on errors.
- */
- inline oslSocketResult SAL_CALL acceptConnection( StreamSocket& Connection, SocketAddr & PeerAddr);
- };
-
-
-
- /** A connectionless socket to send and receive datagrams.
- */
- class DatagramSocket : public Socket
- {
- public:
-
- /** Creates a datagram socket.
- @param Type is sock_dgram by default.
- */
- inline DatagramSocket(oslAddrFamily Family= osl_Socket_FamilyInet,
- oslProtocol Protocol= osl_Socket_ProtocolIp,
- oslSocketType Type= osl_Socket_TypeDgram);
-
- /** Tries to receives BufferSize data from the socket, if no error occurs.
-
- @param pSenderAddr [out] You must provide pointer to a SocketAddr.
- It will be filled with the address of the datagrams sender.
- If pSenderAddr is 0, it is ignored.
- @param pBuffer [out] Points to a buffer that will be filled with the received
- datagram.
- @param BufferSize [in] The size of pBuffer.
- @param Flag [in] Modifier for the call. Valid values are:
- <ul>
- <li><code>osl_Socket_MsgNormal</code>
- <li><code>osl_Socket_MsgOOB</code>
- <li><code>osl_Socket_MsgPeek</code>
- <li><code>osl_Socket_MsgDontRoute</code>
- <li><code>osl_Socket_MsgMaxIOVLen</code>
- </ul>
-
- @return the number of received bytes.
- */
- inline sal_Int32 SAL_CALL recvFrom(void* pBuffer,
- sal_uInt32 BufferSize,
- SocketAddr* pSenderAddr= 0,
- oslSocketMsgFlag Flag= osl_Socket_MsgNormal);
-
- /** Tries to send one datagram with BytesToSend size to the given ReceiverAddr.
- Since there is only send one packet, the function doesn't care about
- packet boundaries.
-
- @param ReceiverAddr [in] A SocketAddr that contains
- the destination address for this send.
-
- @param pBuffer [in] Points to a buffer that contains the send-data.
- @param BufferSize [in] The number of bytes to send. pBuffer must have at least
- this size.
- @param Flag [in] Modifier for the call. Valid values are:
-
- <ul>
- <li><code>osl_Socket_MsgNormal</code>
- <li><code>osl_Socket_MsgOOB</code>
- <li><code>osl_Socket_MsgPeek</code>
- <li><code>osl_Socket_MsgDontRoute</code>
- <li><code>osl_Socket_MsgMaxIOVLen</code>
- </ul>
-
- @return the number of transfered bytes.
- */
- inline sal_Int32 SAL_CALL sendTo( const SocketAddr& ReceiverAddr,
- const void* pBuffer,
- sal_uInt32 BufferSize,
- oslSocketMsgFlag Flag= osl_Socket_MsgNormal);
- };
-
-}
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/thread.h b/sal/inc/osl/thread.h
deleted file mode 100644
index 9e088e6e4..000000000
--- a/sal/inc/osl/thread.h
+++ /dev/null
@@ -1,205 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_THREAD_H_
-#define _OSL_THREAD_H_
-
-#include <osl/time.h>
-
-#ifndef _RTL_TEXTENC_H_
-# include <rtl/textenc.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- Opaque data type for threads. As with all other osl-handles
- you can initialize and/or test it to/for 0.
-*/
-typedef void* oslThread;
-
-/** the function-ptr. representing the threads worker-function.
-*/
-typedef void (SAL_CALL *oslWorkerFunction)(void*);
-
-/** levels of thread-priority
- Note that oslThreadPriorityUnknown might be returned
- by getPriorityOfThread() (e.g. when it is terminated),
- but mustn't be used with setPriority()!
-*/
-typedef enum
-{
- osl_Thread_PriorityHighest,
- osl_Thread_PriorityAboveNormal,
- osl_Thread_PriorityNormal,
- osl_Thread_PriorityBelowNormal,
- osl_Thread_PriorityLowest,
- osl_Thread_PriorityUnknown, /* don't use to set */
- osl_Thread_Priority_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-} oslThreadPriority;
-
-
-typedef sal_uInt32 oslThreadIdentifier;
-
-typedef void* oslThreadKey;
-
-/** Create the thread, using the function-ptr pWorker as
- its main (worker) function. This functions receives in
- its void* parameter the value supplied by pThreadData.
- Once the OS-structures are initialized,the thread starts
- running.
- @return 0 if creation failed, otherwise a handle to the thread
-*/
-oslThread SAL_CALL osl_createThread(oslWorkerFunction pWorker, void* pThreadData);
-
-/** Create the thread, using the function-ptr pWorker as
- its main (worker) function. This functions receives in
- its void* parameter the value supplied by pThreadData.
- The thread will be created, but it won't start running.
- To wake-up the thread, use resume().
- @return 0 if creation failed, otherwise a handle to the thread
-*/
-oslThread SAL_CALL osl_createSuspendedThread(oslWorkerFunction pWorker, void* pThreadData);
-
-/** Get the identifier for the specified thread or if parameter
- Thread is NULL of the current active thread.
- @return identifier of the thread
-*/
-oslThreadIdentifier SAL_CALL osl_getThreadIdentifier(oslThread Thread);
-
-/** Release the thread handle.
- If Thread is NULL, the function won't do anything.
- Note that we do not interfere with the actual running of
- the thread, we just free up the memory needed by the handle.
-*/
-void SAL_CALL osl_destroyThread(oslThread Thread);
-
-/** Wake-up a thread that was suspended with suspend() or
- createSuspended(). The oslThread must be valid!
-*/
-void SAL_CALL osl_resumeThread(oslThread Thread);
-
-/** Suspend the execution of the thread. If you want the thread
- to continue, call resume(). The oslThread must be valid!
-*/
-void SAL_CALL osl_suspendThread(oslThread Thread);
-
-/** Changes the threads priority.
- The oslThread must be valid!
-*/
-void SAL_CALL osl_setThreadPriority(oslThread Thread, oslThreadPriority Priority);
-
-/** Retrieves the threads priority.
- Returns oslThreadPriorityUnknown for invalid Thread-argument or
- terminated thread. (I.e.: The oslThread might be invalid.)
-*/
-oslThreadPriority SAL_CALL osl_getThreadPriority(const oslThread Thread);
-
-/** Returns True if the thread was created and has not terminated yet.
- Note that according to this definition a "running" thread might be
- suspended! Also returns False is Thread is NULL.
-*/
-sal_Bool SAL_CALL osl_isThreadRunning(const oslThread Thread);
-
-/** Blocks the calling thread until Thread has terminated.
- Returns immediately if Thread is NULL.
-*/
-void SAL_CALL osl_joinWithThread(oslThread Thread);
-
-/** Blocks the calling thread at least for the given number
- of time.
-*/
-void SAL_CALL osl_waitThread(const TimeValue* pDelay);
-
-/** The requested thread will get terminate the next time
- scheduleThread() is called.
-*/
-void SAL_CALL osl_terminateThread(oslThread Thread);
-
-/** Offers the rest of the threads time-slice to the OS.
- scheduleThread() should be called in the working loop
- of the thread, so any other thread could also get the
- processor. Returns False if the thread should terminate, so
- the thread could free any allocated resources.
-*/
-sal_Bool SAL_CALL osl_scheduleThread(oslThread Thread);
-
-/** Offers the rest of the threads time-slice to the OS.
- Under POSIX you _need_ to yield(), otherwise, since the
- threads are not preempted during execution, NO other thread
- (even with higher priority) gets the processor. Control is
- only given to another thread if the current thread blocks
- or uses yield().
-*/
-void SAL_CALL osl_yieldThread(void);
-
-/** Attempts to set the name of the current thread.
-
- The name of a thread is usually evaluated for debugging purposes. Not all
- platforms support this. On Linux, a set thread name can be observed with
- "ps -L". On Windows with the Microsoft compiler, a thread name set while a
- debugger is attached can be observed within the debugger.
-
- @param name the name of the thread; must not be null; on Linux, only the
- first 16 characters are used
-*/
-void SAL_CALL osl_setThreadName(char const * name);
-
-/* Callback when data stored in a thread key is no longer needed */
-
-typedef void (SAL_CALL *oslThreadKeyCallbackFunction)(void *);
-
-/** Create a key to an associated thread local storage pointer. */
-oslThreadKey SAL_CALL osl_createThreadKey(oslThreadKeyCallbackFunction pCallback);
-
-/** Destroy a key to an associated thread local storage pointer. */
-void SAL_CALL osl_destroyThreadKey(oslThreadKey Key);
-
-/** Get to key associated thread specific data. */
-void* SAL_CALL osl_getThreadKeyData(oslThreadKey Key);
-
-/** Set to key associated thread specific data. */
-sal_Bool SAL_CALL osl_setThreadKeyData(oslThreadKey Key, void *pData);
-
-/** Get the current thread local text encoding. */
-rtl_TextEncoding SAL_CALL osl_getThreadTextEncoding(void);
-
-/** Set the thread local text encoding.
- @return the old text encoding.
-*/
-rtl_TextEncoding SAL_CALL osl_setThreadTextEncoding(rtl_TextEncoding Encoding);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OSL_THREAD_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/thread.hxx b/sal/inc/osl/thread.hxx
deleted file mode 100644
index a81df2f75..000000000
--- a/sal/inc/osl/thread.hxx
+++ /dev/null
@@ -1,239 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _THREAD_HXX_
-#define _THREAD_HXX_
-
-#ifdef __cplusplus
-
-#include <osl/time.h>
-
-
-#include <osl/diagnose.h>
-#include <osl/thread.h>
-#include <rtl/alloc.h>
-
-namespace osl
-{
-/** threadFunc is the function which is executed by the threads
- created by the osl::Thread class. The function's signature
- matches the one of oslWorkerFunction which is declared in
- osl/thread.h .
-*/
-extern "C" inline void SAL_CALL threadFunc( void* param);
-
-class Thread
-{
- Thread( const Thread& );
- Thread& operator= ( const Thread& );
-public:
- // these are here to force memory de/allocation to sal lib.
- inline static void * SAL_CALL operator new( size_t nSize ) SAL_THROW (())
- { return ::rtl_allocateMemory( nSize ); }
- inline static void SAL_CALL operator delete( void * pMem ) SAL_THROW (())
- { ::rtl_freeMemory( pMem ); }
- inline static void * SAL_CALL operator new( size_t, void * pMem ) SAL_THROW (())
- { return pMem; }
- inline static void SAL_CALL operator delete( void *, void * ) SAL_THROW (())
- {}
-
- Thread(): m_hThread(0){}
-
- virtual ~Thread()
- {
- osl_destroyThread( m_hThread);
- }
-
- sal_Bool SAL_CALL create()
- {
- OSL_ASSERT(m_hThread == 0); // only one running thread per instance
- if (m_hThread)
- return sal_False;
-
- m_hThread = osl_createSuspendedThread( threadFunc, (void*)this);
- if ( m_hThread )
- osl_resumeThread(m_hThread);
-
- return m_hThread != 0;
- }
-
- sal_Bool SAL_CALL createSuspended()
- {
- OSL_ASSERT(m_hThread == 0); // only one running thread per instance
- if( m_hThread)
- return sal_False;
- m_hThread= osl_createSuspendedThread( threadFunc,
- (void*)this);
- return m_hThread != 0;
- }
-
- virtual void SAL_CALL suspend()
- {
- if( m_hThread )
- osl_suspendThread(m_hThread);
- }
-
- virtual void SAL_CALL resume()
- {
- if( m_hThread )
- osl_resumeThread(m_hThread);
- }
-
- virtual void SAL_CALL terminate()
- {
- if( m_hThread )
- osl_terminateThread(m_hThread);
- }
-
- virtual void SAL_CALL join()
- {
- osl_joinWithThread(m_hThread);
- }
-
- sal_Bool SAL_CALL isRunning() const
- {
- return osl_isThreadRunning(m_hThread);
- }
-
- void SAL_CALL setPriority( oslThreadPriority Priority)
- {
- if( m_hThread )
- osl_setThreadPriority(m_hThread, Priority);
- }
-
- oslThreadPriority SAL_CALL getPriority() const
- {
- return m_hThread ? osl_getThreadPriority(m_hThread) : osl_Thread_PriorityUnknown;
- }
-
- oslThreadIdentifier SAL_CALL getIdentifier() const
- {
- return osl_getThreadIdentifier(m_hThread);
- }
-
- static oslThreadIdentifier SAL_CALL getCurrentIdentifier()
- {
- return osl_getThreadIdentifier(0);
- }
-
- static void SAL_CALL wait(const TimeValue& Delay)
- {
- osl_waitThread(&Delay);
- }
-
- static void SAL_CALL yield()
- {
- osl_yieldThread();
- }
-
- static inline void setName(char const * name) throw () {
- osl_setThreadName(name);
- }
-
- virtual sal_Bool SAL_CALL schedule()
- {
- return m_hThread ? osl_scheduleThread(m_hThread) : sal_False;
- }
-
- SAL_CALL operator oslThread() const
- {
- return m_hThread;
- }
-
-protected:
-
- /** The thread functions calls the protected functions
- run and onTerminated.
- */
- friend void SAL_CALL threadFunc( void* param);
-
- virtual void SAL_CALL run() = 0;
-
- virtual void SAL_CALL onTerminated()
- {
- }
-
-private:
- oslThread m_hThread;
-};
-
-extern "C" inline void SAL_CALL threadFunc( void* param)
-{
- Thread* pObj= (Thread*)param;
- pObj->run();
- pObj->onTerminated();
-}
-
-class ThreadData
-{
- ThreadData( const ThreadData& );
- ThreadData& operator= (const ThreadData& );
-public:
- /// Create a thread specific local data key
- ThreadData( oslThreadKeyCallbackFunction pCallback= 0 )
- {
- m_hKey = osl_createThreadKey( pCallback );
- }
-
- /// Destroy a thread specific local data key
- ~ThreadData()
- {
- osl_destroyThreadKey(m_hKey);
- }
-
- /** Set the data associated with the data key.
- @returns True if operation was successfull
- */
- sal_Bool SAL_CALL setData(void *pData)
- {
- return (osl_setThreadKeyData(m_hKey, pData));
- }
-
- /** Get the data associated with the data key.
- @returns The data asscoitaed with the data key or
- NULL if no data was set
- */
- void* SAL_CALL getData()
- {
- return osl_getThreadKeyData(m_hKey);
- }
-
- operator oslThreadKey() const
- {
- return m_hKey;
- }
-
-private:
- oslThreadKey m_hKey;
-};
-
-} // end namespace osl
-#endif
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/time.h b/sal/inc/osl/time.h
deleted file mode 100644
index 6b1139717..000000000
--- a/sal/inc/osl/time.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_TIME_H_
-#define _OSL_TIME_H_
-
-#include <sal/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/****************************************************************************/
-/* TimeValue */
-/****************************************************************************/
-
-#ifdef SAL_W32
-# pragma pack(push, 8)
-#endif
-
-/* Time since Jan-01-1970 */
-
-typedef struct {
- sal_uInt32 Seconds;
- sal_uInt32 Nanosec;
-} TimeValue;
-
-#if defined(SAL_W32)
-# pragma pack(pop)
-#endif
-
-
-/****************************************************************************/
-/* oslDateTime */
-/****************************************************************************/
-
-typedef struct _oslDateTime
-{
- /*----------------------------------------------------------------------*/
- /** contains the nanoseconds .
- */
- sal_uInt32 NanoSeconds;
-
- /** contains the seconds (0-59).
- */
- sal_uInt16 Seconds;
-
- /*----------------------------------------------------------------------*/
- /** contains the minutes (0-59).
- */
- sal_uInt16 Minutes;
-
- /*----------------------------------------------------------------------*/
- /** contains the hour (0-23).
- */
- sal_uInt16 Hours;
-
- /*----------------------------------------------------------------------*/
- /** is the day of month (1-31).
- */
- sal_uInt16 Day;
-
- /*----------------------------------------------------------------------*/
- /** is the day of week (0-6 , 0 : Sunday).
- */
- sal_uInt16 DayOfWeek;
-
- /*----------------------------------------------------------------------*/
- /** is the month of year (1-12).
- */
- sal_uInt16 Month;
-
- /*----------------------------------------------------------------------*/
- /** is the year.
- */
- sal_uInt16 Year;
-
-} oslDateTime;
-
-
-/** Get the current system time as TimeValue.
- @return false if any error occurs.
-*/
-sal_Bool SAL_CALL osl_getSystemTime( TimeValue* pTimeVal );
-
-
-/** Get the GMT from a TimeValue and fill a struct oslDateTime
- @param pTimeVal[in] TimeValue
- @param pDateTime[out] On success it receives a struct oslDateTime
-
- @return sal_False if any error occurs else sal_True.
-*/
-sal_Bool SAL_CALL osl_getDateTimeFromTimeValue( TimeValue* pTimeVal, oslDateTime* pDateTime );
-
-
-/** Get the GMT from a oslDateTime and fill a TimeValue
- @param pDateTime[in] oslDateTime
- @param pTimeVal[out] On success it receives a TimeValue
-
- @return sal_False if any error occurs else sal_True.
-*/
-sal_Bool SAL_CALL osl_getTimeValueFromDateTime( oslDateTime* pDateTime, TimeValue* pTimeVal );
-
-
-/** Convert GMT to local time
- @param pSystemTimeVal[in] system time to convert
- @param pLocalTimeVal[out] On success it receives the local time
-
- @return sal_False if any error occurs else sal_True.
-*/
-sal_Bool SAL_CALL osl_getLocalTimeFromSystemTime( TimeValue* pSystemTimeVal, TimeValue* pLocalTimeVal );
-
-
-/** Convert local time to GMT
- @param pLocalTimeVal[in] local time to convert
- @param pSystemTimeVal[out] On success it receives the system time
-
- @return sal_False if any error occurs else sal_True.
-*/
-sal_Bool SAL_CALL osl_getSystemTimeFromLocalTime( TimeValue* pLocalTimeVal, TimeValue* pSystemTimeVal );
-
-
-/** Get the value of the global timer
- @return current timer value in milli seconds
- */
-
-sal_uInt32 SAL_CALL osl_getGlobalTimer(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OSL_TIME_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/osl/util.h b/sal/inc/osl/util.h
deleted file mode 100644
index 9da2b0cf8..000000000
--- a/sal/inc/osl/util.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#ifndef _OSL_UTIL_H_
-#define _OSL_UTIL_H_
-
-#include "sal/types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- @param pEthernetAddr 6 bytes of memory
-
- @return sal_True if the ethernetaddress could be retrieved. <br>
- sal_False if no address could be found. This may be either because
- there is no ethernet card or there is no appropriate algorithm
- implemented on the platform. In this case, pEthernetAddr is
- unchanged.
-*/
-sal_Bool SAL_CALL osl_getEthernetAddress( sal_uInt8 *pEthernetAddr );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/pch/precompiled_sal.cxx b/sal/inc/pch/precompiled_sal.cxx
deleted file mode 100644
index 998ad2ed9..000000000
--- a/sal/inc/pch/precompiled_sal.cxx
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "precompiled_sal.hxx"
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/pch/precompiled_sal.hxx b/sal/inc/pch/precompiled_sal.hxx
deleted file mode 100644
index ede8f9f47..000000000
--- a/sal/inc/pch/precompiled_sal.hxx
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): Generated on 2006-09-01 17:49:56.045599
-
-#ifdef PRECOMPILED_HEADERS
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/alloc.h b/sal/inc/rtl/alloc.h
deleted file mode 100644
index 7005b4f83..000000000
--- a/sal/inc/rtl/alloc.h
+++ /dev/null
@@ -1,268 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_ALLOC_H_
-#define _RTL_ALLOC_H_
-
-# include <sal/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/** Allocate memory.
- @descr A call to this function will return NULL upon the requested
- memory size being either zero or larger than currently allocatable.
-
- @param Bytes [in] memory size.
- @return pointer to allocated memory.
- */
-void * SAL_CALL rtl_allocateMemory (
- sal_Size Bytes
-) SAL_THROW_EXTERN_C();
-
-
-/** Reallocate memory.
- @descr A call to this function with parameter 'Ptr' being NULL
- is equivalent to a rtl_allocateMemory() call.
-
- A call to this function with parameter 'Bytes' being 0
- is equivalent to a rtl_freeMemory() call.
-
- @see rtl_allocateMemory()
- @see rtl_freeMemory()
-
- @param Ptr [in] pointer to previously allocated memory.
- @param Bytes [in] new memory size.
- @return pointer to reallocated memory. May differ from Ptr.
- */
-void * SAL_CALL rtl_reallocateMemory (
- void * Ptr,
- sal_Size Bytes
-) SAL_THROW_EXTERN_C();
-
-
-/** Free memory.
- @param Ptr [in] pointer to previously allocated memory.
- @return none. Memory is released. Ptr is invalid.
- */
-void SAL_CALL rtl_freeMemory (
- void * Ptr
-) SAL_THROW_EXTERN_C();
-
-
-/** Allocate and zero memory.
- @descr A call to this function will return NULL upon the requested
- memory size being either zero or larger than currently allocatable.
-
- @param Bytes [in] memory size.
- @return pointer to allocated and zero'ed memory.
- */
-void * SAL_CALL rtl_allocateZeroMemory (
- sal_Size Bytes
-) SAL_THROW_EXTERN_C();
-
-
-/** Zero and free memory.
- @param Ptr [in] pointer to previously allocated memory.
- @param Bytes [in] memory size.
- @return none. Memory is zero'ed and released. Ptr is invalid.
- */
-void SAL_CALL rtl_freeZeroMemory (
- void * Ptr,
- sal_Size Bytes
-) SAL_THROW_EXTERN_C();
-
-
-/** Opaque rtl_arena_type.
- */
-typedef struct rtl_arena_st rtl_arena_type;
-
-#define RTL_ARENA_NAME_LENGTH 31
-
-
-/** rtl_arena_create()
- *
- * @param pName [in] descriptive name; for debugging purposes.
- * @param quantum [in] resource allocation unit / granularity; rounded up to next power of 2.
- * @param quantum_cache_max [in] max resources to cache; rounded up to next multiple of quantum; usually 0.
- * @param source_arena [in] passed as argument to source_alloc, source_free; usually NULL.
- * @param source_alloc [in] function to allocate resources; usually rtl_arena_alloc.
- * @param source_free [in] function to free resources; usually rtl_arena_free.
- * @param nFlags [in] flags; usually 0.
- *
- * @return pointer to rtl_arena_type, or NULL upon failure.
- *
- * @see rtl_arena_destroy()
- */
-rtl_arena_type *
-SAL_CALL rtl_arena_create (
- const char * pName,
- sal_Size quantum,
- sal_Size quantum_cache_max,
- rtl_arena_type * source_arena,
- void * (SAL_CALL * source_alloc)(rtl_arena_type *, sal_Size *),
- void (SAL_CALL * source_free) (rtl_arena_type *, void *, sal_Size),
- int nFlags
-) SAL_THROW_EXTERN_C();
-
-
-/** rtl_arena_destroy()
- *
- * @param pArena [in] the arena to destroy.
- * @return None
- *
- * @see rtl_arena_create()
- */
-void
-SAL_CALL rtl_arena_destroy (
- rtl_arena_type * pArena
-) SAL_THROW_EXTERN_C();
-
-
-/** rtl_arena_alloc()
- *
- * @param pArena [in] arena from which resource is allocated.
- * @param pBytes [inout] size of resource to allocate.
- *
- * @return allocated resource, or NULL upon failure.
- *
- * @see rtl_arena_free()
- */
-void *
-SAL_CALL rtl_arena_alloc (
- rtl_arena_type * pArena,
- sal_Size * pBytes
-) SAL_THROW_EXTERN_C();
-
-
-/** rtl_arena_free()
- *
- * @param pArena [in] arena from which resource was allocated.
- * @param pAddr [in] resource to free.
- * @param nBytes [in] size of resource.
- *
- * @return None.
- *
- * @see rtl_arena_alloc()
- */
-void
-SAL_CALL rtl_arena_free (
- rtl_arena_type * pArena,
- void * pAddr,
- sal_Size nBytes
-) SAL_THROW_EXTERN_C();
-
-
-/** Opaque rtl_cache_type.
- */
-typedef struct rtl_cache_st rtl_cache_type;
-
-#define RTL_CACHE_NAME_LENGTH 31
-
-#define RTL_CACHE_FLAG_BULKDESTROY 1
-
-/** rtl_cache_create()
- *
- * @param pName [in] descriptive name; for debugging purposes.
- * @param nObjSize [in] object size.
- * @param nObjAlign [in] object alignment; usually 0 for suitable default.
- * @param constructor [in] object constructor callback function; returning 1 for success or 0 for failure.
- * @param destructor [in] object destructor callback function.
- * @param reclaim [in] reclaim callback function.
- * @param pUserArg [in] opaque argument passed to callback functions.
- * @param nFlags [in] flags.
- *
- * @return pointer to rtl_cache_type, or NULL upon failure.
- *
- * @see rtl_cache_destroy()
- */
-rtl_cache_type *
-SAL_CALL rtl_cache_create (
- const char * pName,
- sal_Size nObjSize,
- sal_Size nObjAlign,
- int (SAL_CALL * constructor)(void * pObj, void * pUserArg),
- void (SAL_CALL * destructor) (void * pObj, void * pUserArg),
- void (SAL_CALL * reclaim) (void * pUserArg),
- void * pUserArg,
- rtl_arena_type * pSource,
- int nFlags
-) SAL_THROW_EXTERN_C();
-
-
-/** rtl_cache_destroy()
- *
- * @param pCache [in] the cache to destroy.
- *
- * @return None.
- *
- * @see rtl_cache_create()
- */
-void
-SAL_CALL rtl_cache_destroy (
- rtl_cache_type * pCache
-) SAL_THROW_EXTERN_C();
-
-
-/** rtl_cache_alloc()
- *
- * @param pCache [in] cache from which object is allocated.
- *
- * @return pointer to allocated object, or NULL upon failure.
- */
-void *
-SAL_CALL rtl_cache_alloc (
- rtl_cache_type * pCache
-) SAL_THROW_EXTERN_C();
-
-
-/** rtl_cache_free()
- *
- * @param pCache [in] cache from which object was allocated.
- * @param pObj [in] object to free.
- *
- * @return None.
- *
- * @see rtl_cache_alloc()
- */
-void
-SAL_CALL rtl_cache_free (
- rtl_cache_type * pCache,
- void * pObj
-) SAL_THROW_EXTERN_C();
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /*_RTL_ALLOC_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/allocator.hxx b/sal/inc/rtl/allocator.hxx
deleted file mode 100644
index ffad205ef..000000000
--- a/sal/inc/rtl/allocator.hxx
+++ /dev/null
@@ -1,195 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#if !defined INCLUDED_RTL_ALLOCATOR_HXX
-#define INCLUDED_RTL_ALLOCATOR_HXX
-
-#if ! defined(_SAL_TYPES_H_)
-#include "sal/types.h"
-#endif
-#if ! defined(_RTL_ALLOC_H_)
-#include "rtl/alloc.h"
-#endif
-
-#include <cstddef>
-
-//######################################################
-// This is no general purpose STL allocator but one
-// necessary to use STL for some implementation but
-// avoid linking sal against the STLPort library!!!
-// For more information on when and how to define a
-// custom stl allocator have a look at Scott Meyers:
-// "Effective STL", Nicolai M. Josuttis:
-// "The C++ Standard Library - A Tutorial and Reference"
-// and at http://www.josuttis.com/cppcode/allocator.html
-
-namespace rtl {
-
-/** @internal */
-template<class T>
-class Allocator
-{
-public:
- typedef T value_type;
- typedef T* pointer;
- typedef const T* const_pointer;
- typedef T& reference;
- typedef const T& const_reference;
- typedef ::std::size_t size_type;
- typedef ::std::ptrdiff_t difference_type;
-
- //-----------------------------------------
- template<class U>
- struct rebind
- {
- typedef Allocator<U> other;
- };
-
- //-----------------------------------------
- pointer address (reference value) const
- {
- return &value;
- }
-
- //-----------------------------------------
- const_pointer address (const_reference value) const
- {
- return &value;
- }
-
- //-----------------------------------------
- Allocator() SAL_THROW(())
- {}
-
- //-----------------------------------------
- template<class U>
- Allocator (const Allocator<U>&) SAL_THROW(())
- {}
-
- //-----------------------------------------
- Allocator(const Allocator&) SAL_THROW(())
- {}
-
- //-----------------------------------------
- ~Allocator() SAL_THROW(())
- {}
-
- //-----------------------------------------
- size_type max_size() const SAL_THROW(())
- {
- return size_type(-1)/sizeof(T);
- }
-
- //-----------------------------------------
- /* Normally the code for allocate should
- throw a std::bad_alloc exception if the
- requested memory could not be allocated:
- (C++ standard 20.4.1.1):
-
- pointer allocate (size_type n, const void* hint = 0)
- {
- pointer p = reinterpret_cast<pointer>(
- rtl_allocateMemory(sal_uInt32(n * sizeof(T))));
-
- if (NULL == p)
- throw ::std::bad_alloc();
-
- return p;
- }
-
- but some compilers do not compile it if exceptions
- are not enabled, e.g. GCC under Linux and it is
- in general not desired to compile sal with exceptions
- enabled. */
- pointer allocate (size_type n, const void* hint = 0)
- {
- hint = hint; /* avoid warnings */
- return reinterpret_cast<pointer>(
- rtl_allocateMemory(sal_uInt32(n * sizeof(T))));
- }
-
- //-----------------------------------------
- void deallocate (pointer p, size_type /* n */)
- {
- rtl_freeMemory(p);
- }
-
- //-----------------------------------------
- void construct (pointer p, const T& value)
- {
- new ((void*)p)T(value);
- }
-
- //-----------------------------------------
- void destroy (pointer p)
- {
- p->~T();
- (void)p; //MSVC2005 annoyingly warns this is unused
- }
-};
-
-//######################################################
-// Custom STL allocators must be stateless (see
-// references above) that's why the operators below
-// return always true or false
-
-/** @internal */
-template<class T, class U>
-inline bool operator== (const Allocator<T>&, const Allocator<U>&) SAL_THROW(())
-{
- return true;
-}
-
-/** @internal */
-template<class T, class U>
-inline bool operator!= (const Allocator<T>&, const Allocator<U>&) SAL_THROW(())
-{
- return false;
-}
-
-} /* namespace rtl */
-
-//######################################################
-/** REQUIRED BY STLPort (see stlport '_alloc.h'):
- Hack for compilers that do not support member
- template classes (e.g. MSVC 6)
-
- @internal
-*/
-namespace _STL
-{
- /** @internal */
- template<class T, class U>
- inline ::rtl::Allocator<U> & __stl_alloc_rebind (::rtl::Allocator<T> & a, U const *)
- {
- return (::rtl::Allocator<U>&)(a);
- }
-}
-
-#endif /* INCLUDED_RTL_ALLOCATOR_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/bootstrap.h b/sal/inc/rtl/bootstrap.h
deleted file mode 100644
index 4261e0bf0..000000000
--- a/sal/inc/rtl/bootstrap.h
+++ /dev/null
@@ -1,236 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _RTL_BOOTSTRAP_H_
-#define _RTL_BOOTSTRAP_H_
-
-#include <rtl/ustring.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- @HTML
- @file
-
- The described concept provides a platform independent way to access
- minimum bootstrap settings for every application by excplitly or
- implicitly passing the values to the application.<p>
-
- MULTI-LEVEL STRATEGY FOR RETRIEVAL OF BOOTSTRAP VALUES :<p>
-
- The 1st level is tried first. On failure,
- the next level is tried. Every query starts at the first level again, so
- that one setting may be taken from the 3rd and one from the 1st level.<p>
-
- 1st level: explicitly set variables via rtl_bootstrap_set()
-
- 2nd level: command line arguments. A "-env:SETTINGNAME=value" is given on
- command line. This allows to give an application a certain setting, even
- if an ini-file exists (espicially useful for e.g. daemons that want to
- start an executable with dynamical changing settings).<p>
-
- 3rd level: environment variables. The application tries to get the
- setting from the environment.<p>
-
- 4th level: executable ini-file. Every application looks for an ini-file.
- The filename defaults to /absoulte/path/to/executable[rc|.ini]
- (without .bin or .exe suffix). The ini-filename can be
- set by the special command line parameter
- '-env:INIFILENAME=/absolute/path/to/inifile' at runtime or it may
- be set at compiletime by an API-call.<p>
-
- 5th level: URE_BOOTSTRAP ini-file. If the bootstrap variable URE_BOOTSTRAP
- expands to the URL of an ini-file, that ini-file is searched.<p>
-
- 6th level: default. An application can have some default settings decided
- at compile time, which allow the application to run even with no
- deployment settings. <p>
-
- If neither of the above levels leads to an successful retrieval of the value
- (no default possible), the application may fail to start.<p>
-
- NAMING CONVENTIONS <p>
-
- Naming conventions for names of bootstrap values :
- Names may only include characters, that are allowed charcters for
- environment variables. This excludes '.', ' ', ';', ':' and any non-ascii
- character. Names are case insensitive.<p>
-
- An ini-file is only allowed to have one section, which must be named '[Bootstrap]'.
- The section may be omitted.
- The section name does not appear in the name of the corresponding
- environment variable or commandline arg.
- Values maybe arbitrary unicode strings, they must be encoded in UTF8.<p>
-
- Example:<p>
-
- in an ini-file:
- <code>
- [Sectionname]
- Name=value
- </code><p>
-
- as commandline arg:
- <code>-env:Name=value</code><p>
-
- as environment
- <code>
- setenv Name value
- set Name=value
- </code><p>
-
- SPECIAL VARIABLES:
-
- <ul>
- <li> INIFILENAME<br>
- This variable allows to set the inifilename. This makes only sense, if the filename
- is different than the executable file name. It must be given on command line. If it is
- given the executable ini-file is ignored.
- </li>
-*/
-
-/** may be called by an application to set an ini-filename.
-
- <p>
- Must be called before rtl_bootstrap_get(). May not be called twice.
- If it is never called, a the filename executable.ini (win)
- or execuablerc (unx) is assumed.
-
- @param pName Name of the inifile with path but WITHOUT
- suffix (.ini or rc)
-*/
-void SAL_CALL rtl_bootstrap_setIniFileName( rtl_uString *pName )
- SAL_THROW_EXTERN_C();
-
-/**
- @param ppValue
- out parameter. Contains always a valid rtl_uString pointer.
- @param pName
- The name of the bootstrap setting to be retrieved.
- @param pDefault
- maybe NULL. If once the default is
- returned, successive calls always return this
- default value, even when called with different
- defaults.
-
- @return <code>sal_True</code>, when a value could be retrieved successfully,
- <code>sal_False</code>, when none of the 4 methods gave a value. ppValue
- then contains ane empty string.
- When a pDefault value is given, the function returns always
- <code>sal_True</code>.
-*/
-sal_Bool SAL_CALL rtl_bootstrap_get( rtl_uString *pName, rtl_uString **ppValue, rtl_uString *pDefault )
- SAL_THROW_EXTERN_C();
-
-/** Sets a bootstrap parameter.
-
- @param pName
- name of bootstrap parameter
- @param pValue
- value of bootstrap parameter
-*/
-void SAL_CALL rtl_bootstrap_set( rtl_uString * pName, rtl_uString * pValue )
- SAL_THROW_EXTERN_C();
-
-
-typedef void * rtlBootstrapHandle;
-
-/**
- Opens a bootstrap argument container.
- @param pIniName [in] The name of the ini-file to use, if <code>NULL</code> defaults
- to the excutables name
- @return Handle for a boostrap argument container
-*/
-rtlBootstrapHandle SAL_CALL rtl_bootstrap_args_open(rtl_uString * pIniName)
- SAL_THROW_EXTERN_C();
-
-/**
- Closes a boostrap agument container.
- @param handle [in] The handle got by <code>rtl_bootstrap_args_open()</code>
-*/
-void SAL_CALL rtl_bootstrap_args_close(rtlBootstrapHandle handle)
- SAL_THROW_EXTERN_C();
-
-/**
- @param handle [in] The handle got by <code>rtl_bootstrap_args_open()</code>
- @param pName [in] The name of the variable to be retrieved
- @param ppValue [out] The result of the retrieval. *ppValue may be null in case of failure.
- @param pDefault [in] The default value for the retrieval, may be <code>NULL</code>
-
- @return The status of the retrieval, <code>sal_True</code> on success.
-*/
-sal_Bool SAL_CALL rtl_bootstrap_get_from_handle(rtlBootstrapHandle handle, rtl_uString *pName, rtl_uString **ppValue, rtl_uString *pDefault)
- SAL_THROW_EXTERN_C();
-
-
-/** Returns the name of the inifile associated with this handle.
-
- @param ppIniName contains after the call the name of the ini-filename.
-*/
-void SAL_CALL rtl_bootstrap_get_iniName_from_handle(rtlBootstrapHandle handle, rtl_uString ** ppIniName)
- SAL_THROW_EXTERN_C();
-
-/** Expands a macro using bootstrap variables.
-
- @param handle [in] The handle got by <code>rtl_bootstrap_args_open()</code>
- @param macro [inout] The macro to be expanded
-*/
-void SAL_CALL rtl_bootstrap_expandMacros_from_handle(
- rtlBootstrapHandle handle, rtl_uString ** macro )
- SAL_THROW_EXTERN_C();
-/** Expands a macro using default bootstrap variables.
-
- @param macro [inout] The macro to be expanded
-*/
-void SAL_CALL rtl_bootstrap_expandMacros(
- rtl_uString ** macro )
- SAL_THROW_EXTERN_C();
-
-/** Escapes special characters ("$" and "\").
-
- @param value
- an arbitrary, non-NULL value
-
- @param encoded
- non-NULL out parameter, receiving the given value with all occurrences of
- special characters ("$" and "\") escaped
-
- @since UDK 3.2.9
-*/
-void SAL_CALL rtl_bootstrap_encode(
- rtl_uString const * value, rtl_uString ** encoded )
- SAL_THROW_EXTERN_C();
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/bootstrap.hxx b/sal/inc/rtl/bootstrap.hxx
deleted file mode 100644
index 9f22a848b..000000000
--- a/sal/inc/rtl/bootstrap.hxx
+++ /dev/null
@@ -1,237 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _RTL_BOOTSTRAP_HXX_
-#define _RTL_BOOTSTRAP_HXX_
-#include <rtl/ustring.hxx>
-#include <rtl/bootstrap.h>
-
-namespace rtl
-{
- class Bootstrap
- {
- void * _handle;
-
- /** @internal */
- inline Bootstrap( Bootstrap const & ); // not impl
- /** @internal */
- inline Bootstrap & operator = ( Bootstrap const & ); // not impl
-
- public:
- /**
- @see rtl_bootstrap_setIniFileName()
- */
- static inline void SAL_CALL setIniFilename( const ::rtl::OUString &sFile );
-
- /** Retrieves a bootstrap parameter
- @param sName name of the bootstrap value. case insensitive.
- @param outValue (out parameter). On success contains the value, otherwise
- an empty string.
- @return sal_False, if no value could be retrieved, otherwise sal_True
- @see rtl_bootstrap_get()
- */
- static inline sal_Bool get(
- const ::rtl::OUString &sName,
- ::rtl::OUString &outValue );
-
- /** Retrieves a bootstrap parameter
-
- @param sName name of the bootstrap value. case insensitive.
- @param outValue (out parameter). Contains the value associated with sName.
- @param aDefault if none of the other methods retrieved a value, outValue
- is assigned to a Default.
-
- @see rtl_bootstrap_get()
- */
- static inline void get(
- const ::rtl::OUString &sName,
- ::rtl::OUString &outValue,
- const ::rtl::OUString &aDefault );
-
- /** Sets a bootstrap parameter.
-
- @param pName
- name of bootstrap parameter
- @param pValue
- value of bootstrap parameter
-
- @see rtl_bootstrap_set()
- */
- static inline void set( ::rtl::OUString const & name, ::rtl::OUString const & value )
- SAL_THROW( () );
-
- /** default ctor.
- */
- inline Bootstrap();
-
- /** Opens a bootstrap argment container
- @see rtl_bootstrap_args_open()
- */
- inline Bootstrap(const OUString & iniName);
-
- /** Closes a bootstrap argument container
- @see rtl_bootstrap_args_close()
- */
- inline ~Bootstrap();
-
- /** Retrieves a bootstrap argument.
-
- It is first tried to retrieve the value via the global function
- and second via the special bootstrap container.
- @see rtl_bootstrap_get_from_handle()
- */
-
- inline sal_Bool getFrom(const ::rtl::OUString &sName,
- ::rtl::OUString &outValue) const;
-
- /** Retrieves a bootstrap argument.
-
- It is first tried to retrieve the value via the global function
- and second via the special bootstrap container.
- @see rtl_bootstrap_get_from_handle()
- */
- inline void getFrom(const ::rtl::OUString &sName,
- ::rtl::OUString &outValue,
- const ::rtl::OUString &aDefault) const;
-
- /** Retrieves the name of the underlying ini-file.
- @see rtl_bootstrap_get_iniName_from_handle()
- */
- inline void getIniName(::rtl::OUString & iniName) const;
-
- /** Expands a macro using bootstrap variables.
-
- @param macro [inout] The macro to be expanded
- */
- inline void expandMacrosFrom( ::rtl::OUString & macro ) const SAL_THROW( () )
- { rtl_bootstrap_expandMacros_from_handle( _handle, &macro.pData ); }
-
- /** Expands a macro using default bootstrap variables.
-
- @param macro [inout] The macro to be expanded
- */
- static inline void expandMacros( ::rtl::OUString & macro ) SAL_THROW( () )
- { rtl_bootstrap_expandMacros( &macro.pData ); }
-
- /** Provides the bootstrap internal handle.
-
- @return bootstrap handle
- */
- inline rtlBootstrapHandle getHandle() const SAL_THROW( () )
- { return _handle; }
-
- /** Escapes special characters ("$" and "\").
-
- @param value
- an arbitrary value
-
- @return
- the given value, with all occurrences of special characters ("$" and
- "\") escaped
-
- @since UDK 3.2.9
- */
- static inline ::rtl::OUString encode( ::rtl::OUString const & value )
- SAL_THROW( () );
- };
-
- //----------------------------------------------------------------------------
- // IMPLEMENTATION
- //----------------------------------------------------------------------------
- inline void Bootstrap::setIniFilename( const ::rtl::OUString &sFile )
- {
- rtl_bootstrap_setIniFileName( sFile.pData );
- }
-
- inline sal_Bool Bootstrap::get( const ::rtl::OUString &sName,
- ::rtl::OUString & outValue )
- {
- return rtl_bootstrap_get( sName.pData , &(outValue.pData) , 0 );
- }
-
- inline void Bootstrap::get( const ::rtl::OUString &sName,
- ::rtl::OUString & outValue,
- const ::rtl::OUString & sDefault )
- {
- rtl_bootstrap_get( sName.pData , &(outValue.pData) , sDefault.pData );
- }
-
- inline void Bootstrap::set( ::rtl::OUString const & name, ::rtl::OUString const & value )
- SAL_THROW( () )
- {
- rtl_bootstrap_set( name.pData, value.pData );
- }
-
- inline Bootstrap::Bootstrap()
- {
- _handle = 0;
- }
-
- inline Bootstrap::Bootstrap(const OUString & iniName)
- {
- if(iniName.getLength())
- _handle = rtl_bootstrap_args_open(iniName.pData);
-
- else
- _handle = 0;
- }
-
- inline Bootstrap::~Bootstrap()
- {
- rtl_bootstrap_args_close(_handle);
- }
-
-
- inline sal_Bool Bootstrap::getFrom(const ::rtl::OUString &sName,
- ::rtl::OUString &outValue) const
- {
- return rtl_bootstrap_get_from_handle(_handle, sName.pData, &outValue.pData, 0);
- }
-
- inline void Bootstrap::getFrom(const ::rtl::OUString &sName,
- ::rtl::OUString &outValue,
- const ::rtl::OUString &aDefault) const
- {
- rtl_bootstrap_get_from_handle(_handle, sName.pData, &outValue.pData, aDefault.pData);
- }
-
- inline void Bootstrap::getIniName(::rtl::OUString & iniName) const
- {
- rtl_bootstrap_get_iniName_from_handle(_handle, &iniName.pData);
- }
-
- inline ::rtl::OUString Bootstrap::encode( ::rtl::OUString const & value )
- SAL_THROW( () )
- {
- ::rtl::OUString encoded;
- rtl_bootstrap_encode(value.pData, &encoded.pData);
- return encoded;
- }
-}
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/byteseq.h b/sal/inc/rtl/byteseq.h
deleted file mode 100644
index b099b8825..000000000
--- a/sal/inc/rtl/byteseq.h
+++ /dev/null
@@ -1,325 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _RTL_BYTESEQ_H_
-#define _RTL_BYTESEQ_H_
-
-#include <sal/types.h>
-#include <rtl/alloc.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/** Assures that the reference count of the given byte sequence is one. Otherwise a new copy
- of the sequence is created with a reference count of one.
-
- @param ppSequence sequence
-*/
-void SAL_CALL rtl_byte_sequence_reference2One(
- sal_Sequence ** ppSequence )
- SAL_THROW_EXTERN_C();
-
-/** Reallocates length of byte sequence.
-
- @param ppSequence sequence
- @param nSize new size of sequence
-*/
-void SAL_CALL rtl_byte_sequence_realloc(
- sal_Sequence ** ppSequence, sal_Int32 nSize )
- SAL_THROW_EXTERN_C();
-
-/** Acquires the byte sequence
-
- @param pSequence sequence, that is to be acquired
-*/
-void SAL_CALL rtl_byte_sequence_acquire(
- sal_Sequence *pSequence )
- SAL_THROW_EXTERN_C();
-
-/** Releases the byte sequence. If the refcount drops to zero, the sequence is freed.
-
- @param pSequence sequence, that is to be released; invalid after call
-*/
-void SAL_CALL rtl_byte_sequence_release(
- sal_Sequence *pSequence )
- SAL_THROW_EXTERN_C();
-
-/** Constructs a bytes sequence with length nLength. All bytes are set to zero.
-
- @param ppSequence inout sequence; on entry *ppSequence may be null, otherwise it is released;
- after the call, *ppSequence contains the newly constructed sequence
- @param nLength length of new sequence
-*/
-void SAL_CALL rtl_byte_sequence_construct(
- sal_Sequence **ppSequence , sal_Int32 nLength )
- SAL_THROW_EXTERN_C();
-
-/** Constructs a bytes sequence with length nLength. The data is not initialized.
-
- @param ppSequence inout sequence; on entry *ppSequence may be null, otherwise it is released;
- after the call, *ppSequence contains the newly constructed sequence
- @param nLength length of new sequence
-*/
-void SAL_CALL rtl_byte_sequence_constructNoDefault(
- sal_Sequence **ppSequence , sal_Int32 nLength )
- SAL_THROW_EXTERN_C();
-
-/** Constructs a byte sequence with length nLength and copies nLength bytes from pData.
-
- @param ppSequence inout sequence; on entry *ppSequence may be null, otherwise it is released;
- after the call, *ppSequence contains the newly constructed sequence
- @param pData initial data
- @param nLength length of new sequence
-*/
-void SAL_CALL rtl_byte_sequence_constructFromArray(
- sal_Sequence **ppSequence, const sal_Int8 *pData , sal_Int32 nLength )
- SAL_THROW_EXTERN_C();
-
-/** Assigns the byte sequence pSequence to *ppSequence.
-
- @param ppSequence inout sequence; on entry *ppSequence may be null, otherwise it is released;
- after the call, *ppSequence references pSequence
- @param pSequence the source sequence
-*/
-void SAL_CALL rtl_byte_sequence_assign(
- sal_Sequence **ppSequence , sal_Sequence *pSequence )
- SAL_THROW_EXTERN_C();
-
-/** Compares two byte sequences.
-
- @return true, if the data within the sequences are identical; false otherwise
-*/
-sal_Bool SAL_CALL rtl_byte_sequence_equals(
- sal_Sequence *pSequence1 , sal_Sequence *pSequence2 )
- SAL_THROW_EXTERN_C();
-
-/** Returns the data array pointer of the sequence.
-
- @return read-pointer to the data array of the sequence. If rtl_byte_sequence_reference2One()
- has been called before, the pointer may be casted to a non const pointer and
- the sequence may be modified
-*/
-const sal_Int8 *SAL_CALL rtl_byte_sequence_getConstArray(
- sal_Sequence *pSequence )
- SAL_THROW_EXTERN_C();
-
-/** Returns the length of the sequence
-
- @param pSequence sequence handle
- @return length of the sequence
-*/
-sal_Int32 SAL_CALL rtl_byte_sequence_getLength(
- sal_Sequence *pSequence )
- SAL_THROW_EXTERN_C();
-
-#ifdef __cplusplus
-}
-namespace rtl
-{
-
-enum __ByteSequence_NoDefault
-{
- /** This enum value can be used to create a bytesequence with uninitalized data
- */
- BYTESEQ_NODEFAULT = 0xcafe
-};
-
-enum __ByteSequence_NoAcquire
-{
- /** This enum value can be used to create a bytesequence from a C-Handle without
- acquiring the handle.
- */
- BYTESEQ_NOACQUIRE = 0xcafebabe
-};
-
-/** C++ class representing a SAL byte sequence.
- C++ Sequences are reference counted and shared, so the sequence keeps a handle to its data.
- To keep value semantics, copies are only generated if the sequence is to be modified
- (new handle).
-*/
-class ByteSequence
-{
- /** sequence handle
- @internal
- */
- sal_Sequence * _pSequence;
-
-public:
- // these are here to force memory de/allocation to sal lib.
- /** @internal */
- inline static void * SAL_CALL operator new ( size_t nSize ) SAL_THROW( () )
- { return ::rtl_allocateMemory( nSize ); }
- /** @internal */
- inline static void SAL_CALL operator delete ( void * pMem ) SAL_THROW( () )
- { ::rtl_freeMemory( pMem ); }
- /** @internal */
- inline static void * SAL_CALL operator new ( size_t, void * pMem ) SAL_THROW( () )
- { return pMem; }
- /** @internal */
- inline static void SAL_CALL operator delete ( void *, void * ) SAL_THROW( () )
- {}
-
- /** Default constructor: Creates an empty sequence.
- */
- inline ByteSequence() SAL_THROW( () );
- /** Copy constructor: Creates a copy of given sequence.
-
- @param rSeq another byte sequence
- */
- inline ByteSequence( const ByteSequence & rSeq ) SAL_THROW( () );
- /** Copy constructor Creates a copy from the C-Handle.
-
- @param pSequence another byte sequence handle
- */
- inline ByteSequence( sal_Sequence *pSequence ) SAL_THROW( () );
- /** Constructor: Creates a copy of given data bytes.
-
- @param pElements an array of bytes
- @param len number of bytes
- */
- inline ByteSequence( const sal_Int8 * pElements, sal_Int32 len );
- /** Constructor: Creates sequence of given length and initializes all bytes to 0.
-
- @param len initial sequence length
- */
- inline ByteSequence( sal_Int32 len );
- /** Constructor: Creates sequence of given length and does NOT initialize data.
- Use this ctor for performance optimization only.
-
- @param len initial sequence length
- @param nodefault dummy parameter forcing explicit BYTESEQ_NODEFAULT
- */
- inline ByteSequence( sal_Int32 len , enum __ByteSequence_NoDefault nodefault );
- /** Constructor:
- Creates a sequence from a C-Handle without acquiring the handle, thus taking
- over owenership. Eitherway the handle is release by the destructor.
- This ctor is useful, when working with a c-interface (it safes a pair of
- acquire and release call and is thus a performance optimization only).
-
- @param pSequence sequence handle to be taken over
- @param noacquire dummy parameter forcing explicit BYTESEQ_NOACQUIRE
- */
- inline ByteSequence( sal_Sequence *pSequence , enum __ByteSequence_NoAcquire noacquire ) SAL_THROW( () );
- /** Destructor: Releases sequence handle. Last handle will free memory.
- */
- inline ~ByteSequence() SAL_THROW( () );
-
- /** Assignment operator: Acquires given sequence handle and releases a previously set handle.
-
- @param rSeq another byte sequence
- @return this sequence
- */
- inline ByteSequence & SAL_CALL operator = ( const ByteSequence & rSeq ) SAL_THROW( () );
-
- /** Gets the length of sequence.
-
- @return length of sequence
- */
- inline sal_Int32 SAL_CALL getLength() const SAL_THROW( () )
- { return _pSequence->nElements; }
-
- /** Gets a pointer to byte array for READING. If the sequence has a length of 0, then the
- returned pointer is undefined.
-
- @return pointer to byte array
- */
- inline const sal_Int8 * SAL_CALL getConstArray() const SAL_THROW( () )
- { return (const sal_Int8 *)_pSequence->elements; }
- /** Gets a pointer to elements array for READING AND WRITING. In general if the sequence
- has a handle acquired by other sequences (reference count > 1), then a new sequence is
- created copying all bytes to keep value semantics!
- If the sequence has a length of 0, then the returned pointer is undefined.
-
- @return pointer to elements array
- */
- inline sal_Int8 * SAL_CALL getArray();
-
- /** Non-const index operator:
- Obtains a reference to byte indexed at given position.
- In general if the sequence has a handle acquired by other
- sequences (reference count > 1), then a new sequence is created
- copying all bytes to keep value semantics!
-
- @attention
- The implementation does NOT check for array bounds!
-
- @param nIndex index
- @return non-const C++ reference to element at index nIndex
- */
- inline sal_Int8 & SAL_CALL operator [] ( sal_Int32 nIndex );
-
- /** Const index operator: Obtains a reference to byte indexed at given position.
- The implementation does NOT check for array bounds!
-
- @param nIndex index
- @return const C++ reference to byte at element of indenx nIndex
- */
- inline const sal_Int8 & SAL_CALL operator [] ( sal_Int32 nIndex ) const SAL_THROW( () )
- { return getConstArray()[ nIndex ]; }
-
- /** Equality operator: Compares two sequences.
-
- @param rSeq another byte sequence (right side)
- @return true if both sequences are equal, false otherwise
- */
- inline sal_Bool SAL_CALL operator == ( const ByteSequence & rSeq ) const SAL_THROW( () );
- /** Unequality operator: Compares two sequences.
-
- @param rSeq another byte sequence (right side)
- @return false if both sequences are equal, true otherwise
- */
- inline sal_Bool SAL_CALL operator != ( const ByteSequence & rSeq ) const SAL_THROW( () );
-
- /** Reallocates sequence to new length. If the sequence has a handle acquired by other sequences
- (reference count > 1), then the remaining elements are copied to a new sequence handle to
- keep value semantics!
-
- @param nSize new size of sequence
- */
- inline void SAL_CALL realloc( sal_Int32 nSize );
-
- /** Returns the UNnacquired C handle of the sequence
-
- @return UNacquired handle of the sequence
- */
- inline sal_Sequence * SAL_CALL getHandle() const SAL_THROW( () )
- { return _pSequence; }
- /** Returns the UNnacquired C handle of the sequence (for compatibility reasons)
-
- @return UNacquired handle of the sequence
- */
- inline sal_Sequence * SAL_CALL get() const SAL_THROW( () )
- { return _pSequence; }
-};
-
-}
-#endif
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/byteseq.hxx b/sal/inc/rtl/byteseq.hxx
deleted file mode 100644
index bca641008..000000000
--- a/sal/inc/rtl/byteseq.hxx
+++ /dev/null
@@ -1,146 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _RTL_BYTESEQ_HXX_
-#define _RTL_BYTESEQ_HXX_
-
-#include <osl/interlck.h>
-#include <rtl/byteseq.h>
-#include <rtl/alloc.h>
-#include <rtl/memory.h>
-
-#if ! defined EXCEPTIONS_OFF
-#include <new>
-#endif
-
-
-namespace rtl
-{
-
-//__________________________________________________________________________________________________
-inline ByteSequence::ByteSequence() SAL_THROW( () )
- : _pSequence( 0 )
-{
- ::rtl_byte_sequence_construct( &_pSequence, 0 );
-}
-//__________________________________________________________________________________________________
-inline ByteSequence::ByteSequence( const ByteSequence & rSeq ) SAL_THROW( () )
- : _pSequence( 0 )
-{
- ::rtl_byte_sequence_assign( &_pSequence, rSeq._pSequence );
-}
-//__________________________________________________________________________________________________
-inline ByteSequence::ByteSequence( sal_Sequence *pSequence) SAL_THROW( () )
- : _pSequence( pSequence )
-{
- ::rtl_byte_sequence_acquire( pSequence );
-}
-//__________________________________________________________________________________________________
-inline ByteSequence::ByteSequence( const sal_Int8 * pElements, sal_Int32 len )
- : _pSequence( 0 )
-{
- ::rtl_byte_sequence_constructFromArray( &_pSequence, pElements, len );
-#if ! defined EXCEPTIONS_OFF
- if (_pSequence == 0)
- throw ::std::bad_alloc();
-#endif
-}
-//__________________________________________________________________________________________________
-inline ByteSequence::ByteSequence( sal_Int32 len, enum __ByteSequence_NoDefault )
- : _pSequence( 0 )
-{
- ::rtl_byte_sequence_constructNoDefault( &_pSequence, len );
-#if ! defined EXCEPTIONS_OFF
- if (_pSequence == 0)
- throw ::std::bad_alloc();
-#endif
-}
-//__________________________________________________________________________________________________
-inline ByteSequence::ByteSequence( sal_Sequence *pSequence, enum __ByteSequence_NoAcquire ) SAL_THROW( () )
- : _pSequence( pSequence )
-{
-}
-//__________________________________________________________________________________________________
-inline ByteSequence::ByteSequence( sal_Int32 len )
- : _pSequence( 0 )
-{
- ::rtl_byte_sequence_construct( &_pSequence, len );
-#if ! defined EXCEPTIONS_OFF
- if (_pSequence == 0)
- throw ::std::bad_alloc();
-#endif
-}
-//__________________________________________________________________________________________________
-inline ByteSequence::~ByteSequence() SAL_THROW( () )
-{
- ::rtl_byte_sequence_release( _pSequence );
-}
-//__________________________________________________________________________________________________
-inline ByteSequence & ByteSequence::operator = ( const ByteSequence & rSeq ) SAL_THROW( () )
-{
- ::rtl_byte_sequence_assign( &_pSequence, rSeq._pSequence );
- return *this;
-}
-//__________________________________________________________________________________________________
-inline sal_Bool ByteSequence::operator == ( const ByteSequence & rSeq ) const SAL_THROW( () )
-{
- return ::rtl_byte_sequence_equals( _pSequence, rSeq._pSequence );
-}
-//__________________________________________________________________________________________________
-inline sal_Int8 * ByteSequence::getArray()
-{
- ::rtl_byte_sequence_reference2One( &_pSequence );
-#if ! defined EXCEPTIONS_OFF
- if (_pSequence == 0)
- throw ::std::bad_alloc();
-#endif
- return (sal_Int8 *)_pSequence->elements;
-}
-//__________________________________________________________________________________________________
-inline void ByteSequence::realloc( sal_Int32 nSize )
-{
- ::rtl_byte_sequence_realloc( &_pSequence, nSize );
-#if ! defined EXCEPTIONS_OFF
- if (_pSequence == 0)
- throw ::std::bad_alloc();
-#endif
-}
-//__________________________________________________________________________________________________
-inline sal_Int8 & ByteSequence::operator [] ( sal_Int32 nIndex )
-{
- return getArray()[ nIndex ];
-}
-//__________________________________________________________________________________________________
-inline sal_Bool ByteSequence::operator != ( const ByteSequence & rSeq ) const SAL_THROW( () )
-{
- return (! operator == ( rSeq ));
-}
-
-}
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/cipher.h b/sal/inc/rtl/cipher.h
deleted file mode 100644
index 5c64884d0..000000000
--- a/sal/inc/rtl/cipher.h
+++ /dev/null
@@ -1,321 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_CIPHER_H_
-#define _RTL_CIPHER_H_
-
-#include <sal/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*========================================================================
- *
- * rtlCipher interface.
- *
- *======================================================================*/
-/** Cipher Handle opaque type.
- */
-typedef void* rtlCipher;
-
-
-/** Cipher Algorithm enumeration.
- @see rtl_cipher_create()
- */
-enum __rtl_CipherAlgorithm
-{
- rtl_Cipher_AlgorithmBF,
- rtl_Cipher_AlgorithmARCFOUR,
- rtl_Cipher_AlgorithmInvalid,
- rtl_Cipher_Algorithm_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-};
-
-/** Cipher Algorithm type.
- */
-typedef enum __rtl_CipherAlgorithm rtlCipherAlgorithm;
-
-
-/** Cipher Mode enumeration.
- @see rtl_cipher_create()
- */
-enum __rtl_CipherMode
-{
- rtl_Cipher_ModeECB,
- rtl_Cipher_ModeCBC,
- rtl_Cipher_ModeStream,
- rtl_Cipher_ModeInvalid,
- rtl_Cipher_Mode_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-};
-
-/** Cipher Mode type.
- */
-typedef enum __rtl_CipherMode rtlCipherMode;
-
-
-/** Cipher Direction enumeration.
- @see rtl_cipher_init()
- */
-enum __rtl_CipherDirection
-{
- rtl_Cipher_DirectionBoth,
- rtl_Cipher_DirectionDecode,
- rtl_Cipher_DirectionEncode,
- rtl_Cipher_DirectionInvalid,
- rtl_Cipher_Direction_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-};
-
-/** Cipher Direction type.
- */
-typedef enum __rtl_CipherDirection rtlCipherDirection;
-
-
-/** Error Code enumeration.
- */
-enum __rtl_CipherError
-{
- rtl_Cipher_E_None,
- rtl_Cipher_E_Argument,
- rtl_Cipher_E_Algorithm,
- rtl_Cipher_E_Direction,
- rtl_Cipher_E_Mode,
- rtl_Cipher_E_BufferSize,
- rtl_Cipher_E_Memory,
- rtl_Cipher_E_Unknown,
- rtl_Cipher_E_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-};
-
-/** Error Code type.
- */
-typedef enum __rtl_CipherError rtlCipherError;
-
-
-/** Create a cipher handle for the given algorithm and mode.
- @see rtlCipherAlgorithm
- @see rtlCipherMode
-
- @param Algorithm [in] cipher algorithm.
- @param Mode [in] cipher mode.
- @return Cipher handle, or 0 upon failure.
- */
-rtlCipher SAL_CALL rtl_cipher_create (
- rtlCipherAlgorithm Algorithm,
- rtlCipherMode Mode
-) SAL_THROW_EXTERN_C();
-
-
-/** Inititialize a cipher for the given direction.
- @see rtlCipherDirection
-
- @param Cipher [in] cipher handle.
- @param Direction [in] cipher direction.
- @param pKeyData [in] key material buffer.
- @param nKeyLen [in] key material length in bytes.
- @param pArgData [in] initialization vector buffer.
- @param nArgLen [in] initialization vector length in bytes.
- @return rtl_Cipher_E_None upon success.
- */
-rtlCipherError SAL_CALL rtl_cipher_init (
- rtlCipher Cipher,
- rtlCipherDirection Direction,
- const sal_uInt8 *pKeyData, sal_Size nKeyLen,
- const sal_uInt8 *pArgData, sal_Size nArgLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Encode a buffer under a given cipher algorithm.
- @precond Initialized for a compatible cipher direction.
- @see rtl_cipher_init()
-
- @param Cipher [in] cipher handle.
- @param pData [in] plaintext buffer.
- @param nDatLen [in] plaintext length in bytes.
- @param pBuffer [out] ciphertext buffer.
- @param nBufLen [in] ciphertext length in bytes.
- @return rtl_Cipher_E_None upon success.
- */
-rtlCipherError SAL_CALL rtl_cipher_encode (
- rtlCipher Cipher,
- const void *pData, sal_Size nDatLen,
- sal_uInt8 *pBuffer, sal_Size nBufLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Decode a buffer under a given cipher algorithm.
- @precond Initialized for a compatible cipher direction.
- @see rtl_cipher_init()
-
- @param Cipher [in] cipher handle.
- @param pData [in] ciphertext buffer.
- @param nDatLen [in] ciphertext length in bytes.
- @param pBuffer [out] plaintext buffer.
- @param nBufLen [in] plaintext length in bytes.
- @return rtl_Cipher_E_None upon success.
- */
-rtlCipherError SAL_CALL rtl_cipher_decode (
- rtlCipher Cipher,
- const void *pData, sal_Size nDatLen,
- sal_uInt8 *pBuffer, sal_Size nBufLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Destroy a cipher handle.
- @param Cipher [in] cipher handle to be destroyed.
- @return None. Cipher handle destroyed and invalid.
- */
-void SAL_CALL rtl_cipher_destroy (
- rtlCipher Cipher
-) SAL_THROW_EXTERN_C();
-
-
-/*========================================================================
- *
- * rtl_cipherBF (Blowfish) interface.
- *
- *======================================================================*/
-/** Create a Blowfish cipher handle for the given mode.
- @descr The Blowfish block cipher algorithm is specified in
- Bruce Schneier: Applied Cryptography, 2nd edition, ch. 14.3
-
- @see rtl_cipher_create()
- */
-rtlCipher SAL_CALL rtl_cipher_createBF (
- rtlCipherMode Mode
-) SAL_THROW_EXTERN_C();
-
-
-/** Inititialize a Blowfish cipher for the given direction.
- @see rtl_cipher_init()
- */
-rtlCipherError SAL_CALL rtl_cipher_initBF (
- rtlCipher Cipher,
- rtlCipherDirection Direction,
- const sal_uInt8 *pKeyData, sal_Size nKeyLen,
- const sal_uInt8 *pArgData, sal_Size nArgLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Encode a buffer under the Blowfish cipher algorithm.
- @see rtl_cipher_encode()
- */
-rtlCipherError SAL_CALL rtl_cipher_encodeBF (
- rtlCipher Cipher,
- const void *pData, sal_Size nDatLen,
- sal_uInt8 *pBuffer, sal_Size nBufLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Decode a buffer under the Blowfish cipher algorithm.
- @see rtl_cipher_decode()
- */
-rtlCipherError SAL_CALL rtl_cipher_decodeBF (
- rtlCipher Cipher,
- const void *pData, sal_Size nDatLen,
- sal_uInt8 *pBuffer, sal_Size nBufLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Destroy a Blowfish cipher handle.
- @see rtl_cipher_destroy()
- */
-void SAL_CALL rtl_cipher_destroyBF (
- rtlCipher Cipher
-) SAL_THROW_EXTERN_C();
-
-
-/*========================================================================
- *
- * rtl_cipherARCFOUR (RC4) interface.
- *
- *======================================================================*/
-/** Create a RC4 cipher handle for the given mode.
- @descr The RC4 symmetric stream cipher algorithm is specified in
- Bruce Schneier: Applied Cryptography, 2nd edition, ch. 17.1
-
- @see rtl_cipher_create()
-
- @param Mode [in] cipher mode. Must be rtl_Cipher_ModeStream.
- @return Cipher handle, or 0 upon failure.
- */
-rtlCipher SAL_CALL rtl_cipher_createARCFOUR (
- rtlCipherMode Mode
-) SAL_THROW_EXTERN_C();
-
-
-/** Inititialize a RC4 cipher for the given direction.
- @see rtl_cipher_init()
- */
-rtlCipherError SAL_CALL rtl_cipher_initARCFOUR (
- rtlCipher Cipher,
- rtlCipherDirection Direction,
- const sal_uInt8 *pKeyData, sal_Size nKeyLen,
- const sal_uInt8 *pArgData, sal_Size nArgLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Encode a buffer under the RC4 cipher algorithm.
- @see rtl_cipher_encode()
- */
-rtlCipherError SAL_CALL rtl_cipher_encodeARCFOUR (
- rtlCipher Cipher,
- const void *pData, sal_Size nDatLen,
- sal_uInt8 *pBuffer, sal_Size nBufLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Decode a buffer under the RC4 cipher algorithm.
- @see rtl_cipher_decode()
- */
-rtlCipherError SAL_CALL rtl_cipher_decodeARCFOUR (
- rtlCipher Cipher,
- const void *pData, sal_Size nDatLen,
- sal_uInt8 *pBuffer, sal_Size nBufLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Destroy a RC4 cipher handle.
- @see rtl_cipher_destroy()
- */
-void SAL_CALL rtl_cipher_destroyARCFOUR (
- rtlCipher Cipher
-) SAL_THROW_EXTERN_C();
-
-
-/*========================================================================
- *
- * The End.
- *
- *======================================================================*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !_RTL_CIPHER_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/crc.h b/sal/inc/rtl/crc.h
deleted file mode 100644
index 97e4bbc8e..000000000
--- a/sal/inc/rtl/crc.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_CRC_H_
-#define _RTL_CRC_H_
-
-#include <sal/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*========================================================================
- *
- * rtl_crc32 interface.
- *
- *======================================================================*/
-/** Evaluate CRC32 over given data.
- @descr This function evaluates the CRC polynomial 0xEDB88320.
-
- @param Crc [in] CRC32 over previous data or zero.
- @param Data [in] data buffer.
- @param DatLen [in] data buffer length.
- @return new CRC32 value.
- */
-sal_uInt32 SAL_CALL rtl_crc32 (
- sal_uInt32 Crc,
- const void *Data, sal_uInt32 DatLen
-) SAL_THROW_EXTERN_C();
-
-/*========================================================================
- *
- * The End.
- *
- *======================================================================*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RTL_CRC_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/digest.h b/sal/inc/rtl/digest.h
deleted file mode 100644
index e6276392e..000000000
--- a/sal/inc/rtl/digest.h
+++ /dev/null
@@ -1,641 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_DIGEST_H_
-#define _RTL_DIGEST_H_
-
-#include <sal/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*========================================================================
- *
- * rtlDigest.
- *
- *======================================================================*/
-/** Digest Handle opaque type.
- */
-typedef void* rtlDigest;
-
-
-/** Digest Algorithm enumeration.
- @see rtl_digest_create()
- */
-enum __rtl_DigestAlgorithm
-{
- rtl_Digest_AlgorithmMD2,
- rtl_Digest_AlgorithmMD5,
- rtl_Digest_AlgorithmSHA,
- rtl_Digest_AlgorithmSHA1,
-
- rtl_Digest_AlgorithmHMAC_MD5,
- rtl_Digest_AlgorithmHMAC_SHA1,
-
- rtl_Digest_AlgorithmInvalid,
- rtl_Digest_Algorithm_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-};
-
-/** Digest Algorithm type.
- */
-typedef enum __rtl_DigestAlgorithm rtlDigestAlgorithm;
-
-
-/** Error Code enumeration.
- */
-enum __rtl_DigestError
-{
- rtl_Digest_E_None,
- rtl_Digest_E_Argument,
- rtl_Digest_E_Algorithm,
- rtl_Digest_E_BufferSize,
- rtl_Digest_E_Memory,
- rtl_Digest_E_Unknown,
- rtl_Digest_E_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-};
-
-/** Error Code type.
- */
-typedef enum __rtl_DigestError rtlDigestError;
-
-
-/** Create a digest handle for the given algorithm.
- @see rtlDigestAlgorithm
-
- @param Algorithm [in] digest algorithm.
- @return Digest handle, or 0 upon failure.
- */
-rtlDigest SAL_CALL rtl_digest_create (
- rtlDigestAlgorithm Algorithm
-) SAL_THROW_EXTERN_C();
-
-
-/** Destroy a digest handle.
- @postcond Digest handle destroyed and invalid.
- @param Digest [in] digest handle to be destroyed.
- @return None.
- */
-void SAL_CALL rtl_digest_destroy (
- rtlDigest Digest
-) SAL_THROW_EXTERN_C();
-
-
-/** Query the algorithm of a given digest.
- @param Digest [in] digest handle.
- @return digest algorithm, or rtl_Digest_AlgorithmInvalid upon failure.
- */
-rtlDigestAlgorithm SAL_CALL rtl_digest_queryAlgorithm (
- rtlDigest Digest
-) SAL_THROW_EXTERN_C();
-
-
-/** Query the length of a given digest.
- @param Digest [in] digest handle.
- @return digest length, or 0 upon failure.
- */
-sal_uInt32 SAL_CALL rtl_digest_queryLength (
- rtlDigest Digest
-) SAL_THROW_EXTERN_C();
-
-
-/** Initialize a digest with given data.
- @param Digest [in] digest handle.
- @param pData [in] data buffer.
- @param nDatLen [in] data length.
-
- @return rtl_Digest_E_None upon success.
- */
-rtlDigestError SAL_CALL rtl_digest_init (
- rtlDigest Digest,
- const sal_uInt8 *pData, sal_uInt32 nDatLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Update a digest with given data.
- @param Digest [in] digest handle.
- @param pData [in] data buffer.
- @param nDatLen [in] data length.
-
- @return rtl_Digest_E_None upon success.
- */
-rtlDigestError SAL_CALL rtl_digest_update (
- rtlDigest Digest,
- const void *pData, sal_uInt32 nDatLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Finalize a digest and retrieve the digest value.
- @precond Digest value length must not be less than digest length.
- @postcond Digest initialized to accept another update sequence.
- @see rtl_digest_queryLength()
- @see rtl_digest_update()
-
- @param Digest [in] digest handle.
- @param pBuffer [in] digest value buffer.
- @param nBufLen [in] digest value length.
-
- @return rtl_Digest_E_None upon success.
- */
-rtlDigestError SAL_CALL rtl_digest_get (
- rtlDigest Digest,
- sal_uInt8 *pBuffer, sal_uInt32 nBufLen
-) SAL_THROW_EXTERN_C();
-
-/*========================================================================
- *
- * rtl_digest_MD2 interface.
- *
- *======================================================================*/
-#define RTL_DIGEST_LENGTH_MD2 16
-
-/** Create a MD2 digest handle.
- @descr The MD2 digest algorithm is specified in
-
- RFC 1319 (Informational)
- The MD2 Message-Digest Algorithm
-
- @see rtl_digest_create()
- */
-rtlDigest SAL_CALL rtl_digest_createMD2 (void) SAL_THROW_EXTERN_C();
-
-
-/** Destroy a MD2 digest handle.
- @see rtl_digest_destroy()
- */
-void SAL_CALL rtl_digest_destroyMD2 (
- rtlDigest Digest
-) SAL_THROW_EXTERN_C();
-
-
-/** Update a MD2 digest with given data.
- @see rtl_digest_update()
- */
-rtlDigestError SAL_CALL rtl_digest_updateMD2 (
- rtlDigest Digest,
- const void *pData, sal_uInt32 nDatLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Finalize a MD2 digest and retrieve the digest value.
- @see rtl_digest_get()
- */
-rtlDigestError SAL_CALL rtl_digest_getMD2 (
- rtlDigest Digest,
- sal_uInt8 *pBuffer, sal_uInt32 nBufLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Evaluate a MD2 digest value from given data.
- @descr This function performs an optimized call sequence on a
- single data buffer, avoiding digest creation and destruction.
-
- @see rtl_digest_updateMD2()
- @see rtl_digest_getMD2()
-
- @param pData [in] data buffer.
- @param nDatLen [in] data length.
- @param pBuffer [in] digest value buffer.
- @param nBufLen [in] digest value length.
-
- @return rtl_Digest_E_None upon success.
- */
-rtlDigestError SAL_CALL rtl_digest_MD2 (
- const void *pData, sal_uInt32 nDatLen,
- sal_uInt8 *pBuffer, sal_uInt32 nBufLen
-) SAL_THROW_EXTERN_C();
-
-/*========================================================================
- *
- * rtl_digest_MD5 interface.
- *
- *======================================================================*/
-#define RTL_DIGEST_LENGTH_MD5 16
-
-/** Create a MD5 digest handle.
- @descr The MD5 digest algorithm is specified in
-
- RFC 1321 (Informational)
- The MD5 Message-Digest Algorithm
-
- @see rtl_digest_create()
- */
-rtlDigest SAL_CALL rtl_digest_createMD5 (void) SAL_THROW_EXTERN_C();
-
-
-/** Destroy a MD5 digest handle.
- @see rtl_digest_destroy()
- */
-void SAL_CALL rtl_digest_destroyMD5 (
- rtlDigest Digest
-) SAL_THROW_EXTERN_C();
-
-
-/** Update a MD5 digest with given data.
- @see rtl_digest_update()
- */
-rtlDigestError SAL_CALL rtl_digest_updateMD5 (
- rtlDigest Digest,
- const void *pData, sal_uInt32 nDatLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Finalize a MD5 digest and retrieve the digest value.
- @see rtl_digest_get()
- */
-rtlDigestError SAL_CALL rtl_digest_getMD5 (
- rtlDigest Digest,
- sal_uInt8 *pBuffer, sal_uInt32 nBufLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Retrieve the raw (not finalized) MD5 digest value.
- @descr This function is a non-standard replacement for
- rtl_digest_getMD5() and must be used with caution.
-
- @postcond Digest initialized to accept another update sequence.
- @see rtl_digest_get()
- */
-rtlDigestError SAL_CALL rtl_digest_rawMD5 (
- rtlDigest Digest,
- sal_uInt8 *pBuffer, sal_uInt32 nBufLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Evaluate a MD5 digest value from given data.
- @descr This function performs an optimized call sequence on a
- single data buffer, avoiding digest creation and destruction.
-
- @see rtl_digest_updateMD5()
- @see rtl_digest_getMD5()
-
- @param pData [in] data buffer.
- @param nDatLen [in] data length.
- @param pBuffer [in] digest value buffer.
- @param nBufLen [in] digest value length.
-
- @return rtl_Digest_E_None upon success.
- */
-rtlDigestError SAL_CALL rtl_digest_MD5 (
- const void *pData, sal_uInt32 nDatLen,
- sal_uInt8 *pBuffer, sal_uInt32 nBufLen
-) SAL_THROW_EXTERN_C();
-
-/*========================================================================
- *
- * rtl_digest_SHA interface.
- *
- *======================================================================*/
-#define RTL_DIGEST_LENGTH_SHA 20
-
-/** Create a SHA digest handle.
- @descr The SHA digest algorithm is specified in
-
- FIPS PUB 180 (Superseded by FIPS PUB 180-1)
- Secure Hash Standard
-
- @see rtl_digest_create()
- */
-rtlDigest SAL_CALL rtl_digest_createSHA (void) SAL_THROW_EXTERN_C();
-
-
-/** Destroy a SHA digest handle.
- @see rtl_digest_destroy()
- */
-void SAL_CALL rtl_digest_destroySHA (
- rtlDigest Digest
-) SAL_THROW_EXTERN_C();
-
-
-/** Update a SHA digest with given data.
- @see rtl_digest_update()
- */
-rtlDigestError SAL_CALL rtl_digest_updateSHA (
- rtlDigest Digest,
- const void *pData, sal_uInt32 nDatLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Finalize a SHA digest and retrieve the digest value.
- @see rtl_digest_get()
- */
-rtlDigestError SAL_CALL rtl_digest_getSHA (
- rtlDigest Digest,
- sal_uInt8 *pBuffer, sal_uInt32 nBufLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Evaluate a SHA digest value from given data.
- @descr This function performs an optimized call sequence on a
- single data buffer, avoiding digest creation and destruction.
-
- @see rtl_digest_updateSHA()
- @see rtl_digest_getSHA()
-
- @param pData [in] data buffer.
- @param nDatLen [in] data length.
- @param pBuffer [in] digest value buffer.
- @param nBufLen [in] digest value length.
-
- @return rtl_Digest_E_None upon success.
- */
-rtlDigestError SAL_CALL rtl_digest_SHA (
- const void *pData, sal_uInt32 nDatLen,
- sal_uInt8 *pBuffer, sal_uInt32 nBufLen
-) SAL_THROW_EXTERN_C();
-
-/*========================================================================
- *
- * rtl_digest_SHA1 interface.
- *
- *======================================================================*/
-#define RTL_DIGEST_LENGTH_SHA1 20
-
-/** Create a SHA1 digest handle.
- @descr The SHA1 digest algorithm is specified in
-
- FIPS PUB 180-1 (Supersedes FIPS PUB 180)
- Secure Hash Standard
-
- @see rtl_digest_create()
- */
-rtlDigest SAL_CALL rtl_digest_createSHA1 (void) SAL_THROW_EXTERN_C();
-
-
-/** Destroy a SHA1 digest handle.
- @see rtl_digest_destroy()
- */
-void SAL_CALL rtl_digest_destroySHA1 (
- rtlDigest Digest
-) SAL_THROW_EXTERN_C();
-
-
-/** Update a SHA1 digest with given data.
- @see rtl_digest_update()
- */
-rtlDigestError SAL_CALL rtl_digest_updateSHA1 (
- rtlDigest Digest,
- const void *pData, sal_uInt32 nDatLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Finalize a SHA1 digest and retrieve the digest value.
- @see rtl_digest_get()
- */
-rtlDigestError SAL_CALL rtl_digest_getSHA1 (
- rtlDigest Digest,
- sal_uInt8 *pBuffer, sal_uInt32 nBufLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Evaluate a SHA1 digest value from given data.
- @descr This function performs an optimized call sequence on a
- single data buffer, avoiding digest creation and destruction.
-
- @see rtl_digest_updateSHA1()
- @see rtl_digest_getSHA1()
-
- @param pData [in] data buffer.
- @param nDatLen [in] data length.
- @param pBuffer [in] digest value buffer.
- @param nBufLen [in] digest value length.
-
- @return rtl_Digest_E_None upon success.
- */
-rtlDigestError SAL_CALL rtl_digest_SHA1 (
- const void *pData, sal_uInt32 nDatLen,
- sal_uInt8 *pBuffer, sal_uInt32 nBufLen
-) SAL_THROW_EXTERN_C();
-
-/*========================================================================
- *
- * rtl_digest_HMAC_MD5 interface.
- *
- *======================================================================*/
-#define RTL_DIGEST_LENGTH_HMAC_MD5 RTL_DIGEST_LENGTH_MD5
-
-/** Create a HMAC_MD5 digest handle.
- @descr The HMAC_MD5 digest algorithm is specified in
-
- RFC 2104 (Informational)
- HMAC: Keyed-Hashing for Message Authentication
-
- @see rtl_digest_create()
- */
-rtlDigest SAL_CALL rtl_digest_createHMAC_MD5 (void) SAL_THROW_EXTERN_C();
-
-
-/** Destroy a HMAC_MD5 digest handle.
- @see rtl_digest_destroy()
- */
-void SAL_CALL rtl_digest_destroyHMAC_MD5 (
- rtlDigest Digest
-) SAL_THROW_EXTERN_C();
-
-
-/** Initialize a HMAC_MD5 digest.
- @see rtl_digest_init()
-
- @param Digest [in] digest handle.
- @param pKeyData [in] key material buffer.
- @param nKeyLen [in] key material length.
-
- @return rtl_Digest_E_None upon success.
- */
-rtlDigestError SAL_CALL rtl_digest_initHMAC_MD5 (
- rtlDigest Digest,
- const sal_uInt8 *pKeyData, sal_uInt32 nKeyLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Update a HMAC_MD5 digest with given data.
- @see rtl_digest_update()
- */
-rtlDigestError SAL_CALL rtl_digest_updateHMAC_MD5 (
- rtlDigest Digest,
- const void *pData, sal_uInt32 nDatLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Finalize a HMAC_MD5 digest and retrieve the digest value.
- @see rtl_digest_get()
- */
-rtlDigestError SAL_CALL rtl_digest_getHMAC_MD5 (
- rtlDigest Digest,
- sal_uInt8 *pBuffer, sal_uInt32 nBufLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Evaluate a HMAC_MD5 digest value from given data.
- @descr This function performs an optimized call sequence on a
- single data buffer, avoiding digest creation and destruction.
-
- @see rtl_digest_initHMAC_MD5()
- @see rtl_digest_updateHMAC_MD5()
- @see rtl_digest_getHMAC_MD5()
-
- @param pKeyData [in] key material buffer.
- @param nKeyLen [in] key material length.
- @param pData [in] data buffer.
- @param nDatLen [in] data length.
- @param pBuffer [in] digest value buffer.
- @param nBufLen [in] digest value length.
-
- @return rtl_Digest_E_None upon success.
- */
-rtlDigestError SAL_CALL rtl_digest_HMAC_MD5 (
- const sal_uInt8 *pKeyData, sal_uInt32 nKeyLen,
- const void *pData, sal_uInt32 nDatLen,
- sal_uInt8 *pBuffer, sal_uInt32 nBufLen
-) SAL_THROW_EXTERN_C();
-
-/*========================================================================
- *
- * rtl_digest_HMAC_SHA1 interface.
- *
- *======================================================================*/
-#define RTL_DIGEST_LENGTH_HMAC_SHA1 RTL_DIGEST_LENGTH_SHA1
-
-/** Create a HMAC_SHA1 digest handle.
- @descr The HMAC_SHA1 digest algorithm is specified in
-
- RFC 2104 (Informational)
- HMAC: Keyed-Hashing for Message Authentication
- RFC 2898 (Informational)
- PKCS #5: Password-Based Cryptography Specification Version 2.0
-
- @see rtl_digest_create()
- */
-rtlDigest SAL_CALL rtl_digest_createHMAC_SHA1 (void) SAL_THROW_EXTERN_C();
-
-
-/** Destroy a HMAC_SHA1 digest handle.
- @see rtl_digest_destroy()
- */
-void SAL_CALL rtl_digest_destroyHMAC_SHA1 (
- rtlDigest Digest
-) SAL_THROW_EXTERN_C();
-
-
-/** Initialize a HMAC_SHA1 digest.
- @see rtl_digest_init()
-
- @param Digest [in] digest handle.
- @param pKeyData [in] key material buffer.
- @param nKeyLen [in] key material length.
-
- @return rtl_Digest_E_None upon success.
- */
-rtlDigestError SAL_CALL rtl_digest_initHMAC_SHA1 (
- rtlDigest Digest,
- const sal_uInt8 *pKeyData, sal_uInt32 nKeyLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Update a HMAC_SHA1 digest with given data.
- @see rtl_digest_update()
- */
-rtlDigestError SAL_CALL rtl_digest_updateHMAC_SHA1 (
- rtlDigest Digest,
- const void *pData, sal_uInt32 nDatLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Finalize a HMAC_SHA1 digest and retrieve the digest value.
- @see rtl_digest_get()
- */
-rtlDigestError SAL_CALL rtl_digest_getHMAC_SHA1 (
- rtlDigest Digest,
- sal_uInt8 *pBuffer, sal_uInt32 nBufLen
-) SAL_THROW_EXTERN_C();
-
-
-/** Evaluate a HMAC_SHA1 digest value from given data.
- @descr This function performs an optimized call sequence on a
- single data buffer, avoiding digest creation and destruction.
-
- @see rtl_digest_initHMAC_SHA1()
- @see rtl_digest_updateHMAC_SHA1()
- @see rtl_digest_getHMAC_SHA1()
-
- @param pKeyData [in] key material buffer.
- @param nKeyLen [in] key material length.
- @param pData [in] data buffer.
- @param nDatLen [in] data length.
- @param pBuffer [in] digest value buffer.
- @param nBufLen [in] digest value length.
-
- @return rtl_Digest_E_None upon success.
- */
-rtlDigestError SAL_CALL rtl_digest_HMAC_SHA1 (
- const sal_uInt8 *pKeyData, sal_uInt32 nKeyLen,
- const void *pData, sal_uInt32 nDatLen,
- sal_uInt8 *pBuffer, sal_uInt32 nBufLen
-) SAL_THROW_EXTERN_C();
-
-/*========================================================================
- *
- * rtl_digest_PBKDF2 interface.
- *
- *======================================================================*/
-/** Password-Based Key Derivation Function.
- @descr The PBKDF2 key derivation function is specified in
-
- RFC 2898 (Informational)
- PKCS #5: Password-Based Cryptography Specification Version 2.0
-
- @param pKeyData [out] derived key
- @param nKeyLen [in] derived key length
- @param pPassData [in] password
- @param nPassLen [in] password length
- @param pSaltData [in] salt
- @param nSaltLen [in] salt length
- @param nCount [in] iteration count
-
- @return rtl_Digest_E_None upon success.
-*/
-rtlDigestError SAL_CALL rtl_digest_PBKDF2 (
- sal_uInt8 *pKeyData , sal_uInt32 nKeyLen,
- const sal_uInt8 *pPassData, sal_uInt32 nPassLen,
- const sal_uInt8 *pSaltData, sal_uInt32 nSaltLen,
- sal_uInt32 nCount
-) SAL_THROW_EXTERN_C();
-
-/*========================================================================
- *
- * The End.
- *
- *======================================================================*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RTL_DIGEST_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/instance.hxx b/sal/inc/rtl/instance.hxx
deleted file mode 100644
index f5f6e6313..000000000
--- a/sal/inc/rtl/instance.hxx
+++ /dev/null
@@ -1,644 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#if !defined INCLUDED_RTL_INSTANCE_HXX
-#define INCLUDED_RTL_INSTANCE_HXX
-
-#include "osl/doublecheckedlocking.h"
-#include "osl/getglobalmutex.hxx"
-
-namespace {
-
-/** A non-broken version of the double-checked locking pattern.
-
- See
- <http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html>
- for a description of double-checked locking, why it is broken, and how it
- can be fixed. Always use this template instead of spelling out the
- double-checked locking pattern explicitly, and only in those rare cases
- where that is not possible and you have to spell it out explicitly, at
- least call OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER() at the right
- places. That way, all platform-dependent code to make double-checked
- locking work can be kept in one place.
-
- Usage scenarios:
-
- 1 Static instance (most common case)
-
- Pattern:
-
- T * getInstance()
- {
- static T * pInstance = 0;
- if (!pInstance)
- {
- ::osl::MutexGuard aGuard(::osl::Mutex::getGlobalMutex());
- if (!pInstance)
- {
- static T aInstance;
- pInstance = &aInstance;
- }
- }
- return pInstance;
- }
-
- Code:
-
- #include "rtl/instance.hxx"
- #include "osl/getglobalmutex.hxx"
-
- namespace {
- struct Init
- {
- T * operator()()
- {
- static T aInstance;
- return &aInstance;
- }
- };
- }
-
- T * getInstance()
- {
- return rtl_Instance< T, Init, ::osl::MutexGuard,
- ::osl::GetGlobalMutex >::create(
- Init(), ::osl::GetGlobalMutex());
- }
-
- 2 Dynamic instance
-
- Pattern:
-
- T * getInstance()
- {
- static T * pInstance = 0;
- if (!pInstance)
- {
- ::osl::MutexGuard aGuard(::osl::Mutex::getGlobalMutex());
- if (!pInstance)
- pInstance = new T;
- }
- return pInstance;
- }
-
- Code:
-
- #include "rtl/instance.hxx"
- #include "osl/getglobalmutex.hxx"
-
- namespace {
- struct Init
- {
- T * operator()()
- {
- return new T;
- }
- };
- }
-
- T * getInstance()
- {
- return rtl_Instance< T, Init, ::osl::MutexGuard,
- ::osl::GetGlobalMutex >::create(
- Init(), ::osl::GetGlobalMutex());
- }
-
- 3 Other guard/mutex
-
- Pattern:
-
- T * getInstance()
- {
- static T * pInstance = 0;
- if (!pInstance)
- {
- SomeGuard aGuard(pSomeMutex);
- if (!pInstance)
- {
- static T aInstance;
- pInstance = &aInstance;
- }
- }
- return pInstance;
- }
-
- Code:
-
- #include "rtl/instance.hxx"
-
- namespace {
- struct InitInstance
- {
- T * operator()()
- {
- static T aInstance;
- return &aInstance;
- }
- };
-
- struct InitGuard
- {
- SomeMutex * operator()()
- {
- return pSomeMutex;
- }
- };
- }
-
- T * getInstance()
- {
- return rtl_Instance< T, InitInstance,
- SomeGuard, InitGuard >::create(
- InitInstance(), InitMutex());
- }
-
- 4 Calculate extra data
-
- Pattern:
-
- T * getInstance()
- {
- static T * pInstance = 0;
- if (!pInstance)
- {
- Data aData(...);
- ::osl::MutexGuard aGuard(::osl::Mutex::getGlobalMutex());
- if (!pInstance)
- {
- static T aInstance(aData);
- pInstance = &aInstance;
- }
- }
- return pInstance;
- }
-
- Code:
-
- #include "rtl/instance.hxx"
- #include "osl/getglobalmutex.hxx"
-
- namespace {
- struct InitInstance
- {
- T * operator()()
- {
- static T aInstance;
- return &aInstance;
- }
- }
-
- struct InitData
- {
- Data const & operator()()
- {
- return ...;
- }
- }
- }
-
- T * getInstance()
- {
- return rtl_Instance< T, InitInstance,
- ::osl::Mutex, ::osl::GetGlobalMutex,
- Data, InitData >::create(
- InitInstance(), ::osl::GetGlobalMutex(), InitData());
- }
-
- Some comments:
-
- For any instantiation of rtl_Instance, at most one call to a create method
- may occur in the program code: Each occurrence of a create method within
- the program code is supposed to return a fresh object instance on the
- first call, and that same object instance on subsequent calls; but
- independent occurrences of create methods are supposed to return
- independent object instances. Since there is a one-to-one correspondence
- between object instances and instantiations of rtl_Instance, the
- requirement should be clear. One measure to enforce the requirement is
- that rtl_Instance lives in an unnamed namespace, so that instantiations of
- rtl_Instance in different translation units will definitely be different
- instantiations. A drawback of that measure is that the name of the class
- needs a funny "hand coded" prefix "rtl_" instead of a proper namespace
- prefix like "::rtl::".
-
- A known problem with this template is when two occurrences of calls to
- create methods with identical template arguments appear in one translation
- unit. Those two places will share a single object instance. This can be
- avoided by using different Init structs (see the above code samples) in
- the two places.
-
- There is no need to make m_pInstance volatile, in order to avoid usage of
- stale copies of m_pInstance: At the first check, a thread will see that
- m_pInstance contains either 0 or a valid pointer. If it contains a valid
- pointer, it cannot be stale, and that pointer is used. If it contains 0,
- acquiring the mutex will ensure that the second check sees a non-stale
- value in all cases.
-
- On some compilers, the create methods would not be inlined if they
- contained any static variables, so m_pInstance is made a class member
- instead (and the create methods are inlined). But on MSC, the definition
- of the class member m_pInstance would cause compilation to fail with an
- internal compiler error. Since MSC is able to inline methods containing
- static variables, m_pInstance is moved into the methods there. Note that
- this only works well because for any instantiation of rtl_Instance at most
- one call to a create method should be present, anyway.
- */
-template< typename Inst, typename InstCtor,
- typename Guard, typename GuardCtor,
- typename Data = int, typename DataCtor = int >
-class rtl_Instance
-{
-public:
- static inline Inst * create(InstCtor aInstCtor, GuardCtor aGuardCtor)
- {
-#if defined _MSC_VER
- static Inst * m_pInstance = 0;
-#endif // _MSC_VER
- Inst * p = m_pInstance;
- if (!p)
- {
- Guard aGuard(aGuardCtor());
- p = m_pInstance;
- if (!p)
- {
- p = aInstCtor();
- OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
- m_pInstance = p;
- }
- }
- else
- {
- OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
- }
- return p;
- }
-
- static inline Inst * create(InstCtor aInstCtor, GuardCtor aGuardCtor,
- DataCtor aDataCtor)
- {
-#if defined _MSC_VER
- static Inst * m_pInstance = 0;
-#endif // _MSC_VER
- Inst * p = m_pInstance;
- if (!p)
- {
- Data aData(aDataCtor());
- Guard aGuard(aGuardCtor());
- p = m_pInstance;
- if (!p)
- {
- p = aInstCtor(aData);
- OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
- m_pInstance = p;
- }
- }
- else
- {
- OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
- }
- return p;
- }
-
- static inline Inst * create(InstCtor aInstCtor, GuardCtor aGuardCtor,
- const Data &rData)
- {
-#if defined _MSC_VER
- static Inst * m_pInstance = 0;
-#endif // _MSC_VER
- Inst * p = m_pInstance;
- if (!p)
- {
- Guard aGuard(aGuardCtor());
- p = m_pInstance;
- if (!p)
- {
- p = aInstCtor(rData);
- OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
- m_pInstance = p;
- }
- }
- else
- {
- OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
- }
- return p;
- }
-
-private:
-#if !defined _MSC_VER
- static Inst * m_pInstance;
-#endif // _MSC_VER
-};
-
-#if !defined _MSC_VER
-template< typename Inst, typename InstCtor,
- typename Guard, typename GuardCtor,
- typename Data, typename DataCtor >
-Inst *
-rtl_Instance< Inst, InstCtor, Guard, GuardCtor, Data, DataCtor >::m_pInstance
-= 0;
-#endif // _MSC_VER
-
-}
-
-namespace rtl {
-
-/** Helper base class for a late-initialized (default-constructed)
- static variable, implementing the double-checked locking pattern correctly.
-
- @derive
- Derive from this class (common practice), e.g.
- <pre>
- struct MyStatic : public rtl::Static<MyType, MyStatic> {};
- ...
- MyType & rStatic = MyStatic::get();
- ...
- </pre>
-
- @tplparam T
- variable's type
- @tplparam Unique
- Implementation trick to make the inner static holder unique,
- using the outer class
- (the one that derives from this base class)
-*/
-#if (__GNUC__ >= 4)
-template<typename T, typename Unique>
-class Static {
-public:
- /** Gets the static. Mutual exclusion is implied by a functional
- -fthreadsafe-statics
-
- @return
- static variable
- */
- static T & get() {
- static T instance;
- return instance;
- }
-};
-#else
-template<typename T, typename Unique>
-class Static {
-public:
- /** Gets the static. Mutual exclusion is performed using the
- osl global mutex.
-
- @return
- static variable
- */
- static T & get() {
- return *rtl_Instance<
- T, StaticInstance,
- ::osl::MutexGuard, ::osl::GetGlobalMutex >::create(
- StaticInstance(), ::osl::GetGlobalMutex() );
- }
-private:
- struct StaticInstance {
- T * operator () () {
- static T instance;
- return &instance;
- }
- };
-};
-#endif
-
-/** Helper base class for a late-initialized (default-constructed)
- static variable, implementing the double-checked locking pattern correctly.
-
- @derive
- Derive from this class (common practice), e.g.
- <pre>
- struct MyStatic : public rtl::Static<MyType, MyStatic> {};
- ...
- MyType & rStatic = MyStatic::get();
- ...
- </pre>
-
- @tplparam T
- variable's type
- @tplparam Unique
- Implementation trick to make the inner static holder unique,
- using the outer class
- (the one that derives from this base class)
-*/
-#if (__GNUC__ >= 4)
-template<typename T, typename Data, typename Unique>
-class StaticWithArg {
-public:
- /** Gets the static. Mutual exclusion is implied by a functional
- -fthreadsafe-statics
-
- @return
- static variable
- */
- static T & get(const Data& rData) {
- static T instance(rData);
- return instance;
- }
-
- /** Gets the static. Mutual exclusion is implied by a functional
- -fthreadsafe-statics
-
- @return
- static variable
- */
- static T & get(Data& rData) {
- static T instance(rData);
- return instance;
- }
-};
-#else
-template<typename T, typename Data, typename Unique>
-class StaticWithArg {
-public:
- /** Gets the static. Mutual exclusion is performed using the
- osl global mutex.
-
- @return
- static variable
- */
- static T & get(const Data& rData) {
- return *rtl_Instance<
- T, StaticInstanceWithArg,
- ::osl::MutexGuard, ::osl::GetGlobalMutex,
- Data >::create( StaticInstanceWithArg(),
- ::osl::GetGlobalMutex(),
- rData );
- }
-
- /** Gets the static. Mutual exclusion is performed using the
- osl global mutex.
-
- @return
- static variable
- */
- static T & get(Data& rData) {
- return *rtl_Instance<
- T, StaticInstanceWithArg,
- ::osl::MutexGuard, ::osl::GetGlobalMutex,
- Data >::create( StaticInstanceWithArg(),
- ::osl::GetGlobalMutex(),
- rData );
- }
-private:
- struct StaticInstanceWithArg {
- T * operator () (const Data& rData) {
- static T instance(rData);
- return &instance;
- }
-
- T * operator () (Data& rData) {
- static T instance(rData);
- return &instance;
- }
- };
-};
-#endif
-
-/** Helper class for a late-initialized static aggregate, e.g. an array,
- implementing the double-checked locking pattern correctly.
-
- @tplparam T
- aggregate's element type
- @tplparam InitAggregate
- initializer functor class
-*/
-#if (__GNUC__ >= 4)
-template<typename T, typename InitAggregate>
-class StaticAggregate {
-public:
- /** Gets the static aggregate, late-initializing.
- Mutual exclusion is implied by a functional
- -fthreadsafe-statics
-
- @return
- aggregate
- */
- static T * get() {
- static T *instance = InitAggregate()();
- return instance;
- }
-};
-#else
-template<typename T, typename InitAggregate>
-class StaticAggregate {
-public:
- /** Gets the static aggregate, late-initializing.
- Mutual exclusion is performed using the osl global mutex.
-
- @return
- aggregate
- */
- static T * get() {
- return rtl_Instance<
- T, InitAggregate,
- ::osl::MutexGuard, ::osl::GetGlobalMutex >::create(
- InitAggregate(), ::osl::GetGlobalMutex() );
- }
-};
-#endif
-/** Helper base class for a late-initialized static variable,
- implementing the double-checked locking pattern correctly.
-
- @derive
- Derive from this class (common practice),
- providing an initializer functor class, e.g.
- <pre>
- struct MyStatic : public rtl::StaticWithInit<MyType, MyStatic> {
- MyType operator () () {
- ...
- return MyType( ... );
- }
- };
- ...
- MyType & rStatic = MyStatic::get();
- ...
- </pre>
-
- @tplparam T
- variable's type
- @tplparam InitData
- initializer functor class
- @tplparam Unique
- Implementation trick to make the inner static holder unique,
- using the outer class
- (the one that derives from this base class).
- Default is InitData (common practice).
- @tplparam Data
- Initializer functor's return type.
- Default is T (common practice).
-*/
-#if (__GNUC__ >= 4)
-template<typename T, typename InitData,
- typename Unique = InitData, typename Data = T>
-class StaticWithInit {
-public:
- /** Gets the static. Mutual exclusion is implied by a functional
- -fthreadsafe-statics
-
- @return
- static variable
- */
- static T & get() {
- static T instance = InitData()();
- return instance;
- }
-};
-#else
-template<typename T, typename InitData,
- typename Unique = InitData, typename Data = T>
-class StaticWithInit {
-public:
- /** Gets the static. Mutual exclusion is performed using the
- osl global mutex.
-
- @return
- static variable
- */
- static T & get() {
- return *rtl_Instance<
- T, StaticInstanceWithInit,
- ::osl::MutexGuard, ::osl::GetGlobalMutex,
- Data, InitData >::create( StaticInstanceWithInit(),
- ::osl::GetGlobalMutex(),
- InitData() );
- }
-private:
- struct StaticInstanceWithInit {
- T * operator () ( Data d ) {
- static T instance(d);
- return &instance;
- }
- };
-};
-#endif
-} // namespace rtl
-
-#endif // INCLUDED_RTL_INSTANCE_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/locale.h b/sal/inc/rtl/locale.h
deleted file mode 100644
index 51459d9cd..000000000
--- a/sal/inc/rtl/locale.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_LOCALE_H_
-#define _RTL_LOCALE_H_
-
-#include <rtl/ustring.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef SAL_W32
-# pragma pack(push, 8)
-#endif
-
-/**
- The implementation structur of a locale. Do not create this structure
- direct. Only use the functions rtl_locale_register and
- rtl_locale_setDefault. The strings Language, Country and Variant
- are constants, so it is not necessary to acquire and release them.
- */
-typedef struct _rtl_Locale
-{
- /**
- Lowercase two-letter ISO 639-1 or three-letter ISO 639-3 code.
- */
- rtl_uString * Language;
- /**
- uppercase two-letter ISO-3166 code.
- */
- rtl_uString * Country;
- /**
- Lowercase vendor and browser specific code.
- */
- rtl_uString * Variant;
- /**
- The merged hash value of the Language, Country and Variant strings.
- */
- sal_Int32 HashCode;
-} rtl_Locale;
-
-#if defined( SAL_W32)
-#pragma pack(pop)
-#endif
-
-/**
- Register a locale from language, country and variant.
- @param language lowercase two-letter ISO 639-1 or three-letter ISO 639-3 code.
- @param country uppercase two-letter ISO-3166 code. May be null.
- @param variant vendor and browser specific code. May be null.
- */
-rtl_Locale * SAL_CALL rtl_locale_register( const sal_Unicode * language, const sal_Unicode * country, const sal_Unicode * variant );
-
-/**
- Common method of getting the current default Locale.
- Used for the presentation: menus, dialogs, etc.
- Generally set once when your applet or application is initialized,
- then never reset. (If you do reset the default locale, you
- probably want to reload your GUI, so that the change is reflected
- in your interface.)
- <p>More advanced programs will allow users to use different locales
- for different fields, e.g. in a spreadsheet.
- <BR>Note that the initial setting will match the host system.
- */
-rtl_Locale * SAL_CALL rtl_locale_getDefault();
-
-/**
- Sets the default.
- Normally set once at the beginning of applet or application,
- then never reset. <code>setDefault</code> does not reset the host locale.
- @param language lowercase two-letter ISO 639-1 or three-letter ISO 639-3 code.
- @param country uppercase two-letter ISO-3166 code.
- @param variant vendor and browser specific code. See class description.
- */
-void SAL_CALL rtl_locale_setDefault( const sal_Unicode * language, const sal_Unicode * country, const sal_Unicode * variant );
-
-/**
- Getter for programmatic name of field,
- a lowercased two-letter ISO 639-1 or three-letter ISO 639-3 code.
- @see #getDisplayLanguage
- */
-rtl_uString * SAL_CALL rtl_locale_getLanguage( rtl_Locale * This );
-
-/**
- Getter for programmatic name of field,
- an uppercased two-letter ISO-3166 code.
- @see #getDisplayCountry
- */
-rtl_uString * SAL_CALL rtl_locale_getCountry( rtl_Locale * This );
-
-/**
- Getter for programmatic name of field.
- @see #getDisplayVariant
- */
-rtl_uString * SAL_CALL rtl_locale_getVariant( rtl_Locale * This );
-
-/**
- Returns the hash code of the locale This.
- */
-sal_Int32 SAL_CALL rtl_locale_hashCode( rtl_Locale * This );
-
-/**
- Returns true if the locals are equal, otherwis false.
- */
-sal_Int32 SAL_CALL rtl_locale_equals( rtl_Locale * This, rtl_Locale * obj );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RTL_LOCALE_H_ */
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/locale.hxx b/sal/inc/rtl/locale.hxx
deleted file mode 100644
index d8ed7122e..000000000
--- a/sal/inc/rtl/locale.hxx
+++ /dev/null
@@ -1,268 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_LOCALE_HXX_
-#define _RTL_LOCALE_HXX_
-
-#include <rtl/locale.h>
-#include <rtl/ustring.hxx>
-
-#ifdef __cplusplus
-
-namespace rtl
-{
-
-/**
- A <code>OLocale</code> object represents a specific geographical, political,
- or cultural region. An operation that requires a <code>OLocale</code> to perform
- its task is called <em>locale-sensitive</em> and uses the <code>OLocale</code>
- to tailor information for the user. For example, displaying a number
- is a locale-sensitive operation--the number should be formatted
- according to the customs/conventions of the user's native country,
- region, or culture.
-
- <P>
- You create a <code>OLocale</code> object using one of the two constructors in
- this class:
- <blockquote>
- <pre>
- OLocale(String language, String country)
- OLocale(String language, String country, String variant)
- </pre>
- </blockquote>
- The first argument to both constructors is a valid <STRONG>ISO
- Language Code.</STRONG> These codes are the lower-case two-letter
- codes as defined by ISO-639.
- You can find a full list of these codes at a number of sites, such as:
- <BR><a href ="http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt">
- <code>http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt</code></a>
-
- <P>
- The second argument to both constructors is a valid <STRONG>ISO Country
- Code.</STRONG> These codes are the upper-case two-letter codes
- as defined by ISO-3166.
- You can find a full list of these codes at a number of sites, such as:
- <BR><a href="http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html">
- <code>http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html</code></a>
-
- <P>
- The second constructor requires a third argument--the <STRONG>Variant.</STRONG>
- The Variant codes are vendor and browser-specific.
- For example, use WIN for Windows, MAC for Macintosh, and POSIX for POSIX.
- Where there are two variants, separate them with an underscore, and
- put the most important one first. For
- example, a Traditional Spanish collation might be referenced, with
- "ES", "ES", "Traditional_WIN".
-
- <P>
- Because a <code>OLocale</code> object is just an identifier for a region,
- no validity check is performed when you construct a <code>OLocale</code>.
- If you want to see whether particular resources are available for the
- <code>OLocale</code> you construct, you must query those resources. For
- example, ask the <code>NumberFormat</code> for the locales it supports
- using its <code>getAvailableLocales</code> method.
- <BR><STRONG>Note:</STRONG> When you ask for a resource for a particular
- locale, you get back the best available match, not necessarily
- precisely what you asked for. For more information, look at
- <a href="java.util.ResourceBundle.html"><code>ResourceBundle</code></a>.
-
- <P>
- The <code>OLocale</code> class provides a number of convenient constants
- that you can use to create <code>OLocale</code> objects for commonly used
- locales. For example, the following creates a <code>OLocale</code> object
- for the United States:
- <blockquote>
- <pre>
- OLocale.US
- </pre>
- </blockquote>
-
- <P>
- Once you've created a <code>OLocale</code> you can query it for information about
- itself. Use <code>getCountry</code> to get the ISO Country Code and
- <code>getLanguage</code> to get the ISO Language Code. You can
- use <code>getDisplayCountry</code> to get the
- name of the country suitable for displaying to the user. Similarly,
- you can use <code>getDisplayLanguage</code> to get the name of
- the language suitable for displaying to the user. Interestingly,
- the <code>getDisplayXXX</code> methods are themselves locale-sensitive
- and have two versions: one that uses the default locale and one
- that uses the locale specified as an argument.
-
- <P>
- The JDK provides a number of classes that perform locale-sensitive
- operations. For example, the <code>NumberFormat</code> class formats
- numbers, currency, or percentages in a locale-sensitive manner. Classes
- such as <code>NumberFormat</code> have a number of convenience methods
- for creating a default object of that type. For example, the
- <code>NumberFormat</code> class provides these three convenience methods
- for creating a default <code>NumberFormat</code> object:
- <blockquote>
- <pre>
- NumberFormat.getInstance()
- NumberFormat.getCurrencyInstance()
- NumberFormat.getPercentInstance()
- </pre>
- </blockquote>
- These methods have two variants; one with an explicit locale
- and one without; the latter using the default locale.
- <blockquote>
- <pre>
- NumberFormat.getInstance(myLocale)
- NumberFormat.getCurrencyInstance(myLocale)
- NumberFormat.getPercentInstance(myLocale)
- </pre>
- </blockquote>
- A <code>OLocale</code> is the mechanism for identifying the kind of object
- (<code>NumberFormat</code>) that you would like to get. The locale is
- <STRONG>just</STRONG> a mechanism for identifying objects,
- <STRONG>not</STRONG> a container for the objects themselves.
-
- <P>
- Each class that performs locale-sensitive operations allows you
- to get all the available objects of that type. You can sift
- through these objects by language, country, or variant,
- and use the display names to present a menu to the user.
- For example, you can create a menu of all the collation objects
- suitable for a given language. Such classes must implement these
- three class methods:
- <blockquote>
- <pre>
- public static OLocale[] getAvailableLocales()
- public static String getDisplayName(OLocale objectLocale,
- OLocale displayLocale)
- public static final String getDisplayName(OLocale objectLocale)
- // getDisplayName will throw MissingResourceException if the locale
- // is not one of the available locales.
- </pre>
- </blockquote>
- */
-class OLocale
-{
-public:
- OLocale( rtl_Locale * locale )
- : pData( locale ) {}
-
- OLocale( const OLocale & obj)
- : pData(obj.pData) {}
-
- OLocale & operator = ( const OLocale & obj)
- {
- pData = obj.pData;
- return *this;
- }
-
- /**
- Construct a locale from language, country, variant.
- @param language lowercase two-letter ISO-639 code.
- @param country uppercase two-letter ISO-3166 code.
- @param variant vendor and browser specific code. See class description.
- */
- static OLocale registerLocale( const OUString & language, const OUString & country,
- const OUString & variant )
- {
- return rtl_locale_register( language.getStr(), country.getStr(), variant.getStr() );
- }
-
- /**
- Construct a locale from language, country.
- @param language lowercase two-letter ISO-639 code.
- @param country uppercase two-letter ISO-3166 code.
- */
- static OLocale registerLocale( const OUString & language, const OUString & country )
- {
- return rtl_locale_register( language.getStr(), country.getStr(), NULL );
- }
-
- /** @deprecated
- */
- static OLocale getDefault() { return rtl_locale_getDefault(); }
-
- /** @deprecated
- */
- static void setDefault( const OUString & language, const OUString & country,
- const OUString & variant )
- { rtl_locale_setDefault(language.getStr(), country.getStr(), variant.getStr()); }
-
- /**
- Getter for programmatic name of field,
- an lowercased two-letter ISO-639 code.
- */
- OUString getLanguage() const { return pData->Language; }
-
- /**
- Getter for programmatic name of field,
- an uppercased two-letter ISO-3166 code.
- */
- OUString getCountry() const { return pData->Country; }
-
- /**
- Getter for programmatic name of field.
- */
- OUString getVariant() const { return pData->Variant; }
-
-
- /**
- Returns the hash code of the locale This.
- */
- sal_Int32 hashCode() const { return pData->HashCode; }
-
- sal_Bool operator == (const OLocale & obj ) const
- {
- return pData == obj.pData;
- }
-
- rtl_Locale * getData() const { return pData; }
-
-private:
- /**
- Must be the first member in this class. OUString access this member with
- *(rtl_Locale **)&locale.
- */
- rtl_Locale * pData;
-
- OLocale()
- : pData(rtl_locale_getDefault()) {}
-/*
- OLocale( const OLocale & obj)
- : pData(obj.pData) {}
-
- OLocale & operator = ( const OLocale & obj)
- { pData = obj.pData;
- return *this;
- }
-*/
-};
-
-}
-
-#endif /* __cplusplus */
-#endif /* _RTL_LOCALE_HXX_ */
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/logfile.h b/sal/inc/rtl/logfile.h
deleted file mode 100644
index 9f0bf80aa..000000000
--- a/sal/inc/rtl/logfile.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _RTL_LOGFILE_H_
-#define _RTL_LOGFILE_H_
-
-#include <sal/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/** This function allows to log arbitrary messages even in a product-environment.
-
- The logfile is created on first access and closed, when the sal-library gets unloaded.
- The file is line buffered. A log file is not created if no log messages are
- written.
-
- The first time, rtl_logfile_trace is called, it checks for the bootstrap variable
- RTL_LOGFILE. If the variable is not empty, it creates a file with the name
- $(RTL_LOGFILE)_$(PID).log, where $(PID) is the process id of the running process.
-
- @param pszformat A format string with fprintf-syntax
- @param ... An arbitrary number of arguments for fprintf, matching the
- format string.
-*/
-void SAL_CALL rtl_logfile_trace( const sal_Char* pszFormat, ... );
-
-/** Like rtl_logfile_trace, but prefixing every log entry with the current time
- and thread ID.
-
- @param format
- a format string with fprintf-like syntax
-
- @param ...
- an arbitrary number of arguments for fprintf, matching the given format
- string
-
- @since UDK 3.2.0
-*/
-void SAL_CALL rtl_logfile_longTrace(char const * format, ...);
-
-/** Return if a log file is written.
-
- @return true if a log file is written
-
- @since UDK 3.2.11
-*/
-sal_Bool SAL_CALL rtl_logfile_hasLogFile( void );
-
-#ifdef __cplusplus
-}
-#endif
-
-#ifdef TIMELOG
-#define RTL_LOGFILE_TRACE( string ) \
- rtl_logfile_longTrace( "| : %s\n", string )
-#define RTL_LOGFILE_TRACE1( frmt, arg1 ) \
- rtl_logfile_longTrace( "| : " ); \
- rtl_logfile_trace( frmt, arg1 ); \
- rtl_logfile_trace( "\n" )
-
-#define RTL_LOGFILE_TRACE2( frmt, arg1 , arg2 ) \
- rtl_logfile_longTrace( "| : " ); \
- rtl_logfile_trace( frmt, arg1 , arg2 ); \
- rtl_logfile_trace( "\n" )
-#define RTL_LOGFILE_TRACE3( frmt, arg1 , arg2 , arg3 ) \
- rtl_logfile_longTrace( "| : " ); \
- rtl_logfile_trace( frmt, arg1 , arg2 , arg3 ); \
- rtl_logfile_trace( "\n" )
-
-// Now the macros with project and author arguments. The strings
-// are formatted in a way, so that the log file can be parsed by
-// post processing scripts.
-#define RTL_LOGFILE_TRACE_AUTHOR( project, author, string ) \
- rtl_logfile_longTrace( "| %s (%s) : %s\n", \
- project,\
- author,\
- string )
-#define RTL_LOGFILE_TRACE_AUTHOR1( project, author, frmt, arg1 ) \
- rtl_logfile_longTrace( "| %s (%s) : ", \
- project,\
- author );\
- rtl_logfile_trace( frmt, arg1 ); \
- rtl_logfile_trace( "\n" )
-
-#define RTL_LOGFILE_TRACE_AUTHOR2( project, author, frmt, arg1 , arg2 ) \
- rtl_logfile_longTrace( "| %s (%s) : ", \
- project,\
- author ); \
- rtl_logfile_trace( frmt, arg1 , arg2 ); \
- rtl_logfile_trace( "\n" )
-#define RTL_LOGFILE_TRACE_AUTHOR3( project, author, frmt, arg1 , arg2 , arg3 ) \
- rtl_logfile_longTrace( "| %s (%s) : ", \
- project,\
- author ); \
- rtl_logfile_trace( frmt, arg1 , arg2 , arg3 ); \
- rtl_logfile_trace( "\n" )
-#else
-#define RTL_LOGFILE_TRACE( string ) ((void)0)
-#define RTL_LOGFILE_TRACE1( frmt, arg1 ) ((void)0)
-#define RTL_LOGFILE_TRACE2( frmt, arg1 , arg2 ) ((void)0)
-#define RTL_LOGFILE_TRACE3( frmt, arg1 , arg2 , arg3 ) ((void)0)
-
-#define RTL_LOGFILE_TRACE_AUTHOR( project, author, string ) ((void)0)
-#define RTL_LOGFILE_TRACE_AUTHOR1( project, author, frmt, arg1 ) ((void)0)
-#define RTL_LOGFILE_TRACE_AUTHOR2( project, author, frmt, arg1 , arg2 ) ((void)0)
-#define RTL_LOGFILE_TRACE_AUTHOR3( project, author, frmt, arg1 , arg2 , arg3 ) ((void)0)
-#endif // TIMELOG
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/logfile.hxx b/sal/inc/rtl/logfile.hxx
deleted file mode 100644
index 356c7147b..000000000
--- a/sal/inc/rtl/logfile.hxx
+++ /dev/null
@@ -1,207 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _RTL_LOGFILE_HXX_
-#define _RTL_LOGFILE_HXX_
-
-#include <rtl/logfile.h>
-#include <rtl/string.hxx>
-
-namespace rtl
-{
-/**
-@descr The intended use for class Logfile is to write time stamp information
- for profiling purposes.
-
- Profiling output should only be generated for a special product version of OpenOffice
- which is compiled with a defined preprocessor symbol 'TIMELOG'.
- Therefore we have provided a set of macros that uses the class Logfile only if
- this symbol is defined. If the macros are not sufficient, i.e. you need more
- then three arguments for a printf style message, then you have to insert an
- #ifdef TIMELOG/#endif brace yourself.
-
- Additionally the environment variable RTL_LOGFILE has to be defined in order to generate
- logging information. If the variable is not empty, it creates a file with the name
- $(RTL_LOGFILE)_$(PID).log, where $(PID) is the process id of the running process.
- It can be used as a run time switch for enabling or disabling the logging.
- Note that this variable is evaluated only once at the first attempt to write a message.
-
- The class LogFile collects runtime data within its constructor and destructor. It can be
- used for timing whole functions.
- If you want to write timing data without context you can use the RTL_LOGFILE_TRACE-macros
- which are defined inside <rtl/logfile.h>.
-
- The class LogFile should not be used directly, instead use the RTL_LOGFILE_CONTEXT/
- RTL_LOGFILE_TRACE-macros.
-
- Macro usage:
- ------------
- RTL_LOGFILE_CONTEXT( instance, name );
- This macro creates an instance of class LogFile with the name "instance" and writes the current time,
- thread id and "name" to the log file.
-
- Example: RTL_LOGFILE_CONTEXT( aLog, "Timing for foo-method" );
-
- RTL_LOGFILE_CONTEXT_TRACE( instance, mesage );
- RTL_LOGFILE_CONTEXT_TRACEn( instance, frmt, arg1, .., arg3 );
- These macros can be used to log information in a "instance" context. The "instance" object
- is used to log message informations. All macros with "frmt" uses printf notation to log timing infos.
-
- Example: RTL_LOGFILE_CONTEXT_TRACE( aLog, "Now we call an expensive function" );
- RTL_LOGFIlE_CONTEXT_TRACE1( aLog, "Config entries read: %u", (unsigned short)i );
-
- RTL_LOGFILE_TRACE( string );
- RTL_LOGFILE_TRACEn( frmt, arg1, .., arg3 );
- These macros can be used to log information outside a context. The macro directly calls
- rtl_logfile_trace to write the info to the log file. All macros with "frmt" uses printf
- notation to log timing infos.
-
- Example: RTL_LOGFILE_TRACE( "Timing for loading a file" );
- RTL_LOGFILE_TRACE1( aLog, "Timing for loading file: %s", aFileName );
-
- The lines written to the log file consist of the following space separated elements:
- 1. The time relative to the start of the global timer in milliseconds. The times is
- started typically for the first logged line.
- 2. Thread id. It's absolut value is probably of less interest than providing a way to
- distinguish different threads.
- 3. a. An opening or closing curly brace indicating the start or end of a scope.
- 4a. Function name or general scope identifier.
- b. A vertical line indicating an arbitrary message.
- 4b optional function name or general scope identifier.
- 5b A colon followed by a space and a free form message terminated by a newline.
-
- There is a second version of creating a context. RTL_LOGFILE_CONTEXT_AUTHOR takes
- two more arguments, the name of the project and the author's sign who is responsible
- for the code in which the macro is used.
-*/
- class Logfile
- {
- public:
- inline Logfile( const sal_Char *name );
- /** @descr Create a log file context where the message field consists of a project
- name, the author's shortcut, and the actual message. These three strings
- are written in a format that is understood by script that later parses the
- log file and that so can extract the three strings.
- @param project Short name of the project, like sw for writer or sc for calc.
- @param author The sign of the person responsible for the code.
- @param name The actual message, typically a method name.
- */
- inline Logfile( const sal_Char *project, const sal_Char *author, const sal_Char *name );
- inline ~Logfile();
- inline const sal_Char *getName();
- private:
- ::rtl::OString m_sName;
- };
-
- inline Logfile::Logfile( const sal_Char *name )
- : m_sName( name )
- {
- rtl_logfile_longTrace( "{ %s\n", name );
- }
-
- inline Logfile::Logfile( const sal_Char *project, const sal_Char *author, const sal_Char *name )
- : m_sName( project)
- {
- m_sName += " (";
- m_sName += author;
- m_sName += ") ";
- m_sName += name;
- rtl_logfile_longTrace( "{ %s\n", m_sName.pData->buffer );
- }
-
- inline Logfile::~Logfile()
- {
- rtl_logfile_longTrace( "} %s\n", m_sName.pData->buffer );
- }
-
- inline const sal_Char * Logfile::getName()
- {
- return m_sName.getStr();
- }
-}
-
-#ifdef TIMELOG
-#define RTL_LOGFILE_CONTEXT( instance, name ) ::rtl::Logfile instance( name )
-#define RTL_LOGFILE_CONTEXT_AUTHOR( instance, project, author, name ) ::rtl::Logfile instance(project, author, name )
-#define RTL_LOGFILE_CONTEXT_TRACE( instance, message ) \
- rtl_logfile_longTrace( "| %s : %s\n", \
- instance.getName(), \
- message )
-#define RTL_LOGFILE_CONTEXT_TRACE1( instance , frmt, arg1 ) \
- rtl_logfile_longTrace( "| %s : ", \
- instance.getName() ); \
- rtl_logfile_trace( frmt , arg1 ); \
- rtl_logfile_trace( "\n" )
-#define RTL_LOGFILE_CONTEXT_TRACE2( instance , frmt, arg1 , arg2 ) \
- rtl_logfile_longTrace( "| %s : ", \
- instance.getName() ); \
- rtl_logfile_trace( frmt , arg1 , arg2 ); \
- rtl_logfile_trace( "\n" )
-#define RTL_LOGFILE_CONTEXT_TRACE3( instance , frmt, arg1 , arg2 , arg3 ) \
- rtl_logfile_longTrace( "| %s : ", \
- instance.getName() ); \
- rtl_logfile_trace( frmt , arg1 , arg2 , arg3 ); \
- rtl_logfile_trace( "\n" )
-
-#else
-#define RTL_LOGFILE_CONTEXT( instance, name ) ((void)0)
-#define RTL_LOGFILE_CONTEXT_AUTHOR( instance, project, author, name ) ((void)0)
-#define RTL_LOGFILE_CONTEXT_TRACE( instance, message ) ((void)0)
-#define RTL_LOGFILE_CONTEXT_TRACE1( instance, frmt, arg1 ) ((void)0)
-#define RTL_LOGFILE_CONTEXT_TRACE2( instance, frmt, arg1, arg2 ) ((void)0)
-#define RTL_LOGFILE_CONTEXT_TRACE3( instance, frmt, arg1, arg2 , arg3 ) ((void)0)
-#endif
-
-// Normal RTL_LOGFILE_* entries will not make it into release versions,
-// TIMELOG is disabled a few versions prior relase build.
-//
-// We need some logs also in these builds, eg. for making performance regression tests.
-//
-// POLICY: Don't use RTL_LOGFILE_PRODUCT_* for your personal logging information.
-// Be aware that these logs make it into the product shipped to customers.
-// If you have good reasons for doing this, please contact product management.
-
-#define RTL_LOGFILE_PRODUCT_TRACE( string ) \
- rtl_logfile_longTrace( "| : %s\n", string )
-#define RTL_LOGFILE_PRODUCT_TRACE1( frmt, arg1 ) \
- rtl_logfile_longTrace( "| : " ); \
- rtl_logfile_trace( frmt, arg1 ); \
- rtl_logfile_trace( "\n" )
-#define RTL_LOGFILE_PRODUCT_CONTEXT( instance, name ) \
- ::rtl::Logfile instance( name )
-#define RTL_LOGFILE_PRODUCT_CONTEXT_TRACE1( instance, frmt, arg1 ) \
- rtl_logfile_longTrace( "| %s : ", \
- instance.getName() ); \
- rtl_logfile_trace( frmt, arg1 ); \
- rtl_logfile_trace( "\n" )
-#define RTL_LOGFILE_HASLOGFILE() \
- rtl_logfile_hasLogFile()
-
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/malformeduriexception.hxx b/sal/inc/rtl/malformeduriexception.hxx
deleted file mode 100644
index 4ab725a02..000000000
--- a/sal/inc/rtl/malformeduriexception.hxx
+++ /dev/null
@@ -1,77 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_MALFORMEDURIEXCEPTION_HXX
-#define INCLUDED_RTL_MALFORMEDURIEXCEPTION_HXX
-
-#include "rtl/ustring.hxx"
-
-namespace rtl {
-
-/** An exception indicating a malformed URI.
-
- <P>Used when parsing (part of) a URI fails for syntactical reasons.</P>
- */
-class SAL_EXCEPTION_DLLPUBLIC_EXPORT MalformedUriException
-{
-public:
- /** Create a MalformedUriException.
-
- @param rMessage
- A message containing any details about the exception.
- */
- inline SAL_EXCEPTION_DLLPRIVATE MalformedUriException(
- rtl::OUString const & rMessage): m_aMessage(rMessage) {}
-
- inline SAL_EXCEPTION_DLLPRIVATE MalformedUriException(
- MalformedUriException const & other): m_aMessage(other.m_aMessage) {}
-
- inline SAL_EXCEPTION_DLLPRIVATE ~MalformedUriException() {}
-
- inline SAL_EXCEPTION_DLLPRIVATE MalformedUriException operator =(
- MalformedUriException const & rOther)
- { m_aMessage = rOther.m_aMessage; return *this; }
-
- /** Get the message.
-
- @return
- A reference to the message. The reference is valid for the lifetime of
- this MalformedUriException.
- */
- inline SAL_EXCEPTION_DLLPRIVATE rtl::OUString const & getMessage() const
- { return m_aMessage; }
-
-private:
- rtl::OUString m_aMessage;
-};
-
-}
-
-#endif // INCLUDED_RTL_MALFORMEDURIEXCEPTION_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/math.h b/sal/inc/rtl/math.h
deleted file mode 100644
index dd5ed2f1f..000000000
--- a/sal/inc/rtl/math.h
+++ /dev/null
@@ -1,481 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#if !defined INCLUDED_RTL_MATH_H
-#define INCLUDED_RTL_MATH_H
-
-#include "rtl/ustring.h"
-#include "sal/types.h"
-
-#if defined __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/** Formatting modes for rtl_math_doubleToString and rtl_math_doubleToUString
- and rtl_math_doubleToUStringBuffer.
- */
-enum rtl_math_StringFormat
-{
- /** Like sprintf() %E.
- */
- rtl_math_StringFormat_E,
-
- /** Like sprintf() %f.
- */
- rtl_math_StringFormat_F,
-
- /** Like sprintf() %G, 'F' or 'E' format is used depending on which one is
- more compact.
- */
- rtl_math_StringFormat_G,
-
- /** Automatic, 'F' or 'E' format is used depending on the numeric value to
- be formatted.
- */
- rtl_math_StringFormat_Automatic,
-
- /** @internal
- */
- rtl_math_StringFormat_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-};
-
-/** Status for rtl_math_stringToDouble and rtl_math_uStringToDouble.
- */
-enum rtl_math_ConversionStatus
-{
- /** Conversion was successful.
- */
- rtl_math_ConversionStatus_Ok,
-
- /** Conversion caused overflow or underflow.
- */
- rtl_math_ConversionStatus_OutOfRange,
-
- /** @internal
- */
- rtl_math_ConversionStatus_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-};
-
-/** Rounding modes for rtl_math_round.
- */
-enum rtl_math_RoundingMode
-{
- /** Like HalfUp, but corrects roundoff errors, preferred.
- */
- rtl_math_RoundingMode_Corrected,
-
- /** Floor of absolute value, signed return (commercial).
- */
- rtl_math_RoundingMode_Down,
-
- /** Ceil of absolute value, signed return (commercial).
- */
- rtl_math_RoundingMode_Up,
-
- /** Floor of signed value.
- */
- rtl_math_RoundingMode_Floor,
-
- /** Ceil of signed value.
- */
- rtl_math_RoundingMode_Ceiling,
-
- /** Frac <= 0.5 ? floor of abs : ceil of abs, signed return.
- */
- rtl_math_RoundingMode_HalfDown,
-
- /** Frac < 0.5 ? floor of abs : ceil of abs, signed return (mathematical).
- */
- rtl_math_RoundingMode_HalfUp,
-
- /** IEEE rounding mode (statistical).
- */
- rtl_math_RoundingMode_HalfEven,
-
- /** @internal
- */
- rtl_math_RoundingMode_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-};
-
-/** Special decimal places constants for rtl_math_doubleToString and
- rtl_math_doubleToUString and rtl_math_doubleToUStringBuffer.
- */
-enum rtl_math_DecimalPlaces
-{
- /** Value to be used with rtl_math_StringFormat_Automatic.
- */
- rtl_math_DecimalPlaces_Max = 0x7ffffff,
-
- /** Value to be used with rtl_math_StringFormat_G.
- In fact the same value as rtl_math_DecimalPlaces_Max, just an alias for
- better understanding.
- */
- rtl_math_DecimalPlaces_DefaultSignificance = 0x7ffffff
-};
-
-
-/** Conversions analogous to sprintf() using internal rounding.
-
- +/-HUGE_VAL are converted to "INF" and "-INF", NAN values are
- converted to "NaN".
-
- @param pResult
- Returns the resulting byte string. Must itself not be null, and must point
- to either null or a valid string.
-
- @param pResultCapacity
- If null, pResult is considered to point to immutable strings, and a new
- string will be allocated in pResult.
- If non-null, it points to the current capacity of pResult, which is
- considered to point to a string buffer (pResult must not itself be null in
- this case, and must point to a string that has room for the given capacity).
- The string representation of the given double value is inserted into pResult
- at position nResultOffset. If pResult's current capacity is too small, a
- new string buffer will be allocated in pResult as necessary, and
- pResultCapacity will contain the new capacity on return.
-
- @param nResultOffset
- If pResult is used as a string buffer (i.e., pResultCapacity is non-null),
- nResultOffset specifies the insertion offset within the buffer. Ignored
- otherwise.
-
- @param fValue
- The value to convert.
-
- @param eFormat
- The format to use, one of rtl_math_StringFormat.
-
- @param nDecPlaces
- The number of decimals to be generated. Effectively fValue is rounded at
- this position, specifying nDecPlaces <= 0 accordingly rounds the value
- before the decimal point and fills with zeros.
- If eFormat == rtl_math_StringFormat_Automatic and nDecPlaces ==
- rtl_math_DecimalPlaces_Max, the highest number of significant decimals
- possible is generated.
- If eFormat == rtl_math_StringFormat_G, nDecPlaces specifies the number of
- significant digits instead. If nDecPlaces ==
- rtl_math_DecimalPlaces_DefaultSignificance, the default number (currently 6
- as implemented by most libraries) of significant digits is generated.
- According to the ANSI C90 standard the E style will be used only if the
- exponent resulting from the conversion is less than -4 or greater than or
- equal to the precision. However, as opposed to the ANSI standard, trailing
- zeros are not necessarily removed from the fractional portion of the result
- unless bEraseTrailingDecZeros == true was specified.
-
- @param cDecSeparator
- The decimal separator.
-
- @param pGroups
- Either null (no grouping is used), or a null-terminated list of group
- lengths. Each group length must be strictly positive. If the number of
- digits in a conversion exceeds the specified range, the last (highest) group
- length is repeated as needed. Values are applied from right to left, for a
- grouping of 1,00,00,000 you'd have to specify pGroups={3,2,0}.
-
- @param cGroupSeparator
- The group separator. Ignored if pGroups is null.
-
- @param bEraseTrailingDecZeros
- Trailing zeros in decimal places are erased.
- */
-void SAL_CALL rtl_math_doubleToString(rtl_String ** pResult,
- sal_Int32 * pResultCapacity,
- sal_Int32 nResultOffset, double fValue,
- enum rtl_math_StringFormat eFormat,
- sal_Int32 nDecPlaces,
- sal_Char cDecSeparator,
- sal_Int32 const * pGroups,
- sal_Char cGroupSeparator,
- sal_Bool bEraseTrailingDecZeros)
- SAL_THROW_EXTERN_C();
-
-/** Conversions analogous to sprintf() using internal rounding.
-
- +/-HUGE_VAL are converted to "INF" and "-INF", NAN values are
- converted to "NaN".
-
- @param pResult
- Returns the resulting Unicode string. Must itself not be null, and must
- point to either null or a valid string.
-
- @param pResultCapacity
- If null, pResult is considered to point to immutable strings, and a new
- string will be allocated in pResult.
- If non-null, it points to the current capacity of pResult, which is
- considered to point to a string buffer (pResult must not itself be null in
- this case, and must point to a string that has room for the given capacity).
- The string representation of the given double value is inserted into pResult
- at position nResultOffset. If pResult's current capacity is too small, a
- new string buffer will be allocated in pResult as necessary, and
- pResultCapacity will contain the new capacity on return.
-
- @param nResultOffset
- If pResult is used as a string buffer (i.e., pResultCapacity is non-null),
- nResultOffset specifies the insertion offset within the buffer. Ignored
- otherwise.
-
- @param fValue
- The value to convert.
-
- @param eFormat
- The format to use, one of rtl_math_StringFormat.
-
- @param nDecPlaces
- The number of decimals to be generated. Effectively fValue is rounded at
- this position, specifying nDecPlaces <= 0 accordingly rounds the value
- before the decimal point and fills with zeros.
- If eFormat == rtl_math_StringFormat_Automatic and nDecPlaces ==
- rtl_math_DecimalPlaces_Max, the highest number of significant decimals
- possible is generated.
- If eFormat == rtl_math_StringFormat_G, nDecPlaces specifies the number of
- significant digits instead. If nDecPlaces ==
- rtl_math_DecimalPlaces_DefaultSignificance, the default number (currently 6
- as implemented by most libraries) of significant digits is generated.
- According to the ANSI C90 standard the E style will be used only if the
- exponent resulting from the conversion is less than -4 or greater than or
- equal to the precision. However, as opposed to the ANSI standard, trailing
- zeros are not necessarily removed from the fractional portion of the result
- unless bEraseTrailingDecZeros == true was specified.
-
- @param cDecSeparator
- The decimal separator.
-
- @param pGroups
- Either null (no grouping is used), or a null-terminated list of group
- lengths. Each group length must be strictly positive. If the number of
- digits in a conversion exceeds the specified range, the last (highest) group
- length is repeated as needed. Values are applied from right to left, for a
- grouping of 1,00,00,000 you'd have to specify pGroups={3,2,0}.
-
- @param cGroupSeparator
- The group separator. Ignored if pGroups is null.
-
- @param bEraseTrailingDecZeros
- Trailing zeros in decimal places are erased.
- */
-void SAL_CALL rtl_math_doubleToUString(rtl_uString ** pResult,
- sal_Int32 * pResultCapacity,
- sal_Int32 nResultOffset, double fValue,
- enum rtl_math_StringFormat eFormat,
- sal_Int32 nDecPlaces,
- sal_Unicode cDecSeparator,
- sal_Int32 const * pGroups,
- sal_Unicode cGroupSeparator,
- sal_Bool bEraseTrailingDecZeros)
- SAL_THROW_EXTERN_C();
-
-/** Conversion analogous to strtod(), convert a string representing a
- decimal number into a double value.
-
- Leading tabs (0x09) and spaces (0x20) are eaten. Overflow returns
- +/-HUGE_VAL, underflow 0. In both cases pStatus is set to
- rtl_math_ConversionStatus_OutOfRange, otherwise to
- rtl_math_ConversionStatus_Ok. "INF", "-INF" and "+/-1.#INF" are
- recognized as +/-HUGE_VAL, pStatus is set to
- rtl_math_ConversionStatus_OutOfRange. "NaN" and "+/-1.#NAN" are
- recognized and the value is set to +/-NAN, pStatus is set to
- rtl_math_ConversionStatus_Ok.
-
- @param pBegin
- Points to the start of the byte string to convert. Must not be null.
-
- @param pEnd
- Points one past the end of the byte string to convert. The condition
- pEnd >= pBegin must hold.
-
- @param cDecSeparator
- The decimal separator.
-
- @param cGroupSeparator
- The group (aka thousands) separator.
-
- @param pStatus
- If non-null, returns the status of the conversion.
-
- @param pParsedEnd
- If non-null, returns one past the position of the last character parsed
- away. Thus if [pBegin..pEnd) only contains the numerical string to be
- parsed, *pParsedEnd == pEnd on return. If no numerical (sub-)string is
- found, *pParsedEnd == pBegin on return, even if there was leading
- whitespace.
- */
-double SAL_CALL rtl_math_stringToDouble(
- sal_Char const * pBegin, sal_Char const * pEnd, sal_Char cDecSeparator,
- sal_Char cGroupSeparator, enum rtl_math_ConversionStatus * pStatus,
- sal_Char const ** pParsedEnd) SAL_THROW_EXTERN_C();
-
-/** Conversion analogous to strtod(), convert a string representing a
- decimal number into a double value.
-
- Leading tabs (U+0009) and spaces (U+0020) are eaten. Overflow returns
- +/-HUGE_VAL, underflow 0. In both cases pStatus is set to
- rtl_math_ConversionStatus_OutOfRange, otherwise to
- rtl_math_ConversionStatus_Ok. "INF", "-INF" and "+/-1.#INF" are
- recognized as +/-HUGE_VAL, pStatus is set to
- rtl_math_ConversionStatus_OutOfRange. "NaN" and "+/-1.#NAN" are
- recognized and the value is set to +/-NAN, pStatus is set to
- rtl_math_ConversionStatus_Ok.
-
- @param pBegin
- Points to the start of the Unicode string to convert. Must not be null.
-
- @param pEnd
- Points one past the end of the Unicode string to convert. The condition
- pEnd >= pBegin must hold.
-
- @param cDecSeparator
- The decimal separator.
-
- @param cGroupSeparator
- The group (aka thousands) separator.
-
- @param pStatus
- If non-null, returns the status of the conversion.
-
- @param pParsedEnd
- If non-null, returns one past the position of the last character parsed
- away. Thus if [pBegin..pEnd) only contains the numerical string to be
- parsed, *pParsedEnd == pEnd on return. If no numerical (sub-)string is
- found, *pParsedEnd == pBegin on return, even if there was leading
- whitespace.
- */
-double SAL_CALL rtl_math_uStringToDouble(
- sal_Unicode const * pBegin, sal_Unicode const * pEnd,
- sal_Unicode cDecSeparator, sal_Unicode cGroupSeparator,
- enum rtl_math_ConversionStatus * pStatus, sal_Unicode const ** pParsedEnd)
- SAL_THROW_EXTERN_C();
-
-/** Rounds a double value.
-
- @param fValue
- Specifies the value to be rounded.
-
- @param nDecPlaces
- Specifies the decimal place where rounding occurs. Must be in the range
- -20 to +20, inclusive. Negative if rounding occurs before the decimal
- point.
-
- @param eMode
- Specifies the rounding mode.
- */
-double SAL_CALL rtl_math_round(double fValue, int nDecPlaces,
- enum rtl_math_RoundingMode eMode)
- SAL_THROW_EXTERN_C();
-
-/** Scales fVal to a power of 10 without calling pow() or div() for nExp values
- between -16 and +16, providing a faster method.
-
- @param fValue
- The value to be raised.
-
- @param nExp
- The exponent.
-
- @return
- fVal * pow(10.0, nExp)
- */
-double SAL_CALL rtl_math_pow10Exp(double fValue, int nExp) SAL_THROW_EXTERN_C();
-
-/** Rounds value to 15 significant decimal digits.
-
- @param fValue
- The value to be rounded.
- */
-double SAL_CALL rtl_math_approxValue(double fValue) SAL_THROW_EXTERN_C();
-
-/** Returns more accurate e^x-1 for x near 0 than calculating directly.
-
- expm1 is part of the C99 standard, but not provided by some compilers.
-
- @param fValue
- The value x in the term e^x-1.
- */
-double SAL_CALL rtl_math_expm1(double fValue) SAL_THROW_EXTERN_C();
-
-/** Returns more accurate log(1+x) for x near 0 than calculating directly.
-
- log1p is part of the C99 standard, but not provided by some compilers.
-
- @param fValue
- The value x in the term log(1+x).
- */
-double SAL_CALL rtl_math_log1p(double fValue) SAL_THROW_EXTERN_C();
-
-/** Returns more accurate atanh(x) for x near 0 than calculating
- 0.5*log((1+x)/(1-x)).
-
- atanh is part of the C99 standard, but not provided by some compilers.
-
- @param fValue
- The value x in the term atanh(x).
- */
-double SAL_CALL rtl_math_atanh(double fValue) SAL_THROW_EXTERN_C();
-
-/** Returns values of the Errorfunction erf.
-
- erf is part of the C99 standard, but not provided by some compilers.
-
- @param fValue
- The value x in the term erf(x).
- */
-double SAL_CALL rtl_math_erf(double fValue) SAL_THROW_EXTERN_C();
-
-/** Returns values of the complement Errorfunction erfc.
-
- erfc is part of the C99 standard, but not provided by some compilers.
-
- @param fValue
- The value x in the term erfc(x).
- */
-double SAL_CALL rtl_math_erfc(double fValue) SAL_THROW_EXTERN_C();
-
-/** Returns values of the inverse hyperbolic sine.
-
- asinh is part of the C99 standard, but not provided by some compilers.
-
- @param fValue
- The value x in the term asinh(x).
- */
-double SAL_CALL rtl_math_asinh(double fValue) SAL_THROW_EXTERN_C();
-
-/** Returns values of the inverse hyperbolic cosine.
-
- acosh is part of the C99 standard, but not provided by some compilers.
-
- @param fValue
- The value x in the term acosh(x).
- */
-double SAL_CALL rtl_math_acosh(double fValue) SAL_THROW_EXTERN_C();
-
-#if defined __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* INCLUDED_RTL_MATH_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/math.hxx b/sal/inc/rtl/math.hxx
deleted file mode 100644
index 82fab5b87..000000000
--- a/sal/inc/rtl/math.hxx
+++ /dev/null
@@ -1,435 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#if !defined INCLUDED_RTL_MATH_HXX
-#define INCLUDED_RTL_MATH_HXX
-
-#include "rtl/math.h"
-#include "rtl/string.hxx"
-#include "rtl/ustring.hxx"
-#include "rtl/ustrbuf.hxx"
-#include "sal/mathconf.h"
-#include "sal/types.h"
-
-#include <math.h>
-
-namespace rtl {
-
-namespace math {
-
-/** A wrapper around rtl_math_doubleToString.
- */
-inline rtl::OString doubleToString(double fValue, rtl_math_StringFormat eFormat,
- sal_Int32 nDecPlaces,
- sal_Char cDecSeparator,
- sal_Int32 const * pGroups,
- sal_Char cGroupSeparator,
- bool bEraseTrailingDecZeros = false)
-{
- rtl::OString aResult;
- rtl_math_doubleToString(&aResult.pData, 0, 0, fValue, eFormat, nDecPlaces,
- cDecSeparator, pGroups, cGroupSeparator,
- bEraseTrailingDecZeros);
- return aResult;
-}
-
-/** A wrapper around rtl_math_doubleToString, with no grouping.
- */
-inline rtl::OString doubleToString(double fValue, rtl_math_StringFormat eFormat,
- sal_Int32 nDecPlaces,
- sal_Char cDecSeparator,
- bool bEraseTrailingDecZeros = false)
-{
- rtl::OString aResult;
- rtl_math_doubleToString(&aResult.pData, 0, 0, fValue, eFormat, nDecPlaces,
- cDecSeparator, 0, 0, bEraseTrailingDecZeros);
- return aResult;
-}
-
-/** A wrapper around rtl_math_doubleToUString.
- */
-inline rtl::OUString doubleToUString(double fValue,
- rtl_math_StringFormat eFormat,
- sal_Int32 nDecPlaces,
- sal_Unicode cDecSeparator,
- sal_Int32 const * pGroups,
- sal_Unicode cGroupSeparator,
- bool bEraseTrailingDecZeros = false)
-{
- rtl::OUString aResult;
- rtl_math_doubleToUString(&aResult.pData, 0, 0, fValue, eFormat, nDecPlaces,
- cDecSeparator, pGroups, cGroupSeparator,
- bEraseTrailingDecZeros);
- return aResult;
-}
-
-/** A wrapper around rtl_math_doubleToUString, with no grouping.
- */
-inline rtl::OUString doubleToUString(double fValue,
- rtl_math_StringFormat eFormat,
- sal_Int32 nDecPlaces,
- sal_Unicode cDecSeparator,
- bool bEraseTrailingDecZeros = false)
-{
- rtl::OUString aResult;
- rtl_math_doubleToUString(&aResult.pData, 0, 0, fValue, eFormat, nDecPlaces,
- cDecSeparator, 0, 0, bEraseTrailingDecZeros);
- return aResult;
-}
-
-/** A wrapper around rtl_math_doubleToUString that appends to an
- rtl::OUStringBuffer.
- */
-inline void doubleToUStringBuffer( rtl::OUStringBuffer& rBuffer, double fValue,
- rtl_math_StringFormat eFormat,
- sal_Int32 nDecPlaces,
- sal_Unicode cDecSeparator,
- sal_Int32 const * pGroups,
- sal_Unicode cGroupSeparator,
- bool bEraseTrailingDecZeros = false)
-{
- rtl_uString ** pData;
- sal_Int32 * pCapacity;
- rBuffer.accessInternals( &pData, &pCapacity );
- rtl_math_doubleToUString( pData, pCapacity, rBuffer.getLength(), fValue,
- eFormat, nDecPlaces, cDecSeparator, pGroups,
- cGroupSeparator, bEraseTrailingDecZeros);
-}
-
-/** A wrapper around rtl_math_doubleToUString that appends to an
- rtl::OUStringBuffer, with no grouping.
- */
-inline void doubleToUStringBuffer( rtl::OUStringBuffer& rBuffer, double fValue,
- rtl_math_StringFormat eFormat,
- sal_Int32 nDecPlaces,
- sal_Unicode cDecSeparator,
- bool bEraseTrailingDecZeros = false)
-{
- rtl_uString ** pData;
- sal_Int32 * pCapacity;
- rBuffer.accessInternals( &pData, &pCapacity );
- rtl_math_doubleToUString( pData, pCapacity, rBuffer.getLength(), fValue,
- eFormat, nDecPlaces, cDecSeparator, 0, 0,
- bEraseTrailingDecZeros);
-}
-
-/** A wrapper around rtl_math_stringToDouble.
- */
-inline double stringToDouble(rtl::OString const & rString,
- sal_Char cDecSeparator, sal_Char cGroupSeparator,
- rtl_math_ConversionStatus * pStatus = 0,
- sal_Int32 * pParsedEnd = 0)
-{
- sal_Char const * pBegin = rString.getStr();
- sal_Char const * pEnd;
- double fResult = rtl_math_stringToDouble(pBegin,
- pBegin + rString.getLength(),
- cDecSeparator, cGroupSeparator,
- pStatus, &pEnd);
- if (pParsedEnd != 0)
- *pParsedEnd = (sal_Int32)(pEnd - pBegin);
- return fResult;
-}
-
-/** A wrapper around rtl_math_uStringToDouble.
- */
-inline double stringToDouble(rtl::OUString const & rString,
- sal_Unicode cDecSeparator,
- sal_Unicode cGroupSeparator,
- rtl_math_ConversionStatus * pStatus = 0,
- sal_Int32 * pParsedEnd = 0)
-{
- sal_Unicode const * pBegin = rString.getStr();
- sal_Unicode const * pEnd;
- double fResult = rtl_math_uStringToDouble(pBegin,
- pBegin + rString.getLength(),
- cDecSeparator, cGroupSeparator,
- pStatus, &pEnd);
- if (pParsedEnd != 0)
- *pParsedEnd = (sal_Int32)(pEnd - pBegin);
- return fResult;
-}
-
-/** A wrapper around rtl_math_round.
- */
-inline double round(
- double fValue, int nDecPlaces = 0,
- rtl_math_RoundingMode eMode = rtl_math_RoundingMode_Corrected)
-{
- return rtl_math_round(fValue, nDecPlaces, eMode);
-}
-
-/** A wrapper around rtl_math_pow10Exp.
- */
-inline double pow10Exp(double fValue, int nExp)
-{
- return rtl_math_pow10Exp(fValue, nExp);
-}
-
-/** A wrapper around rtl_math_approxValue.
- */
-inline double approxValue(double fValue)
-{
- return rtl_math_approxValue(fValue);
-}
-
-/** A wrapper around rtl_math_expm1.
- */
-inline double expm1(double fValue)
-{
- return rtl_math_expm1(fValue);
-}
-
-/** A wrapper around rtl_math_log1p.
- */
-inline double log1p(double fValue)
-{
- return rtl_math_log1p(fValue);
-}
-
-/** A wrapper around rtl_math_atanh.
- */
-inline double atanh(double fValue)
-{
- return rtl_math_atanh(fValue);
-}
-
-/** A wrapper around rtl_math_erf.
- */
-inline double erf(double fValue)
-{
- return rtl_math_erf(fValue);
-}
-
-/** A wrapper around rtl_math_erfc.
- */
-inline double erfc(double fValue)
-{
- return rtl_math_erfc(fValue);
-}
-
-/** A wrapper around rtl_math_asinh.
- */
-inline double asinh(double fValue)
-{
- return rtl_math_asinh(fValue);
-}
-
-/** A wrapper around rtl_math_acosh.
- */
-inline double acosh(double fValue)
-{
- return rtl_math_acosh(fValue);
-}
-
-
-/** Test equality of two values with an accuracy of the magnitude of the
- given values scaled by 2^-48 (4 bits roundoff stripped).
-
- @ATTENTION
- approxEqual( value!=0.0, 0.0 ) _never_ yields true.
- */
-inline bool approxEqual(double a, double b)
-{
- if ( a == b )
- return true;
- double x = a - b;
- return (x < 0.0 ? -x : x)
- < ((a < 0.0 ? -a : a) * (1.0 / (16777216.0 * 16777216.0)));
-}
-
-/** Add two values.
-
- If signs differ and the absolute values are equal according to approxEqual()
- the method returns 0.0 instead of calculating the sum.
-
- If you wanted to sum up multiple values it would be convenient not to call
- approxAdd() for each value but instead remember the first value not equal to
- 0.0, add all other values using normal + operator, and with the result and
- the remembered value call approxAdd().
- */
-inline double approxAdd(double a, double b)
-{
- if ( ((a < 0.0 && b > 0.0) || (b < 0.0 && a > 0.0))
- && approxEqual( a, -b ) )
- return 0.0;
- return a + b;
-}
-
-/** Substract two values (a-b).
-
- If signs are identical and the values are equal according to approxEqual()
- the method returns 0.0 instead of calculating the substraction.
- */
-inline double approxSub(double a, double b)
-{
- if ( ((a < 0.0 && b < 0.0) || (a > 0.0 && b > 0.0)) && approxEqual( a, b ) )
- return 0.0;
- return a - b;
-}
-
-/** floor() method taking approxValue() into account.
-
- Use for expected integer values being calculated by double functions.
- */
-inline double approxFloor(double a)
-{
- return floor( approxValue( a ));
-}
-
-/** ceil() method taking approxValue() into account.
-
- Use for expected integer values being calculated by double functions.
- */
-inline double approxCeil(double a)
-{
- return ceil( approxValue( a ));
-}
-
-/** Tests whether a value is neither INF nor NAN.
- */
-inline bool isFinite(double d)
-{
- return SAL_MATH_FINITE(d) != 0;
-}
-
-/** If a value represents +INF or -INF.
-
- The sign bit may be queried with isSignBitSet().
-
- If isFinite(d)==false and isInf(d)==false then NAN.
- */
-inline bool isInf(double d)
-{
- // exponent==0x7ff fraction==0
- return (SAL_MATH_FINITE(d) == 0) &&
- (reinterpret_cast< sal_math_Double * >(&d)->inf_parts.fraction_hi == 0)
- && (reinterpret_cast< sal_math_Double * >(&d)->inf_parts.fraction_lo
- == 0);
-}
-
-/** Test on any QNAN or SNAN.
- */
-inline bool isNan(double d)
-{
- // exponent==0x7ff fraction!=0
- return (SAL_MATH_FINITE(d) == 0) && (
- (reinterpret_cast< sal_math_Double * >(&d)->inf_parts.fraction_hi != 0)
- || (reinterpret_cast< sal_math_Double * >(&d)->inf_parts.fraction_lo
- != 0) );
-}
-
-/** If the sign bit is set.
- */
-inline bool isSignBitSet(double d)
-{
- return reinterpret_cast< sal_math_Double * >(&d)->inf_parts.sign != 0;
-}
-
-/** Set to +INF if bNegative==false or -INF if bNegative==true.
- */
-inline void setInf(double * pd, bool bNegative)
-{
- union
- {
- double sd;
- sal_math_Double md;
- };
- md.w32_parts.msw = bNegative ? 0xFFF00000 : 0x7FF00000;
- md.w32_parts.lsw = 0;
- *pd = sd;
-}
-
-/** Set a QNAN.
- */
-inline void setNan(double * pd)
-{
- union
- {
- double sd;
- sal_math_Double md;
- };
- md.w32_parts.msw = 0x7FFFFFFF;
- md.w32_parts.lsw = 0xFFFFFFFF;
- *pd = sd;
-}
-
-/** If a value is a valid argument for sin(), cos(), tan().
-
- IEEE 754 specifies that absolute values up to 2^64 (=1.844e19) for the
- radian must be supported by trigonometric functions. Unfortunately, at
- least on x86 architectures, the FPU doesn't generate an error pattern for
- values >2^64 but produces erroneous results instead and sets only the
- "invalid operation" (IM) flag in the status word :-( Thus the application
- has to handle it itself.
- */
-inline bool isValidArcArg(double d)
-{
- return fabs(d)
- <= (static_cast< double >(static_cast< unsigned long >(0x80000000))
- * static_cast< double >(static_cast< unsigned long >(0x80000000))
- * 2);
-}
-
-/** Safe sin(), returns NAN if not valid.
- */
-inline double sin(double d)
-{
- if ( isValidArcArg( d ) )
- return ::sin( d );
- setNan( &d );
- return d;
-}
-
-/** Safe cos(), returns NAN if not valid.
- */
-inline double cos(double d)
-{
- if ( isValidArcArg( d ) )
- return ::cos( d );
- setNan( &d );
- return d;
-}
-
-/** Safe tan(), returns NAN if not valid.
- */
-inline double tan(double d)
-{
- if ( isValidArcArg( d ) )
- return ::tan( d );
- setNan( &d );
- return d;
-}
-
-}
-
-}
-
-#endif // INCLUDED_RTL_MATH_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/memory.h b/sal/inc/rtl/memory.h
deleted file mode 100644
index d74bb22ac..000000000
--- a/sal/inc/rtl/memory.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#ifndef _RTL_MEMORY_H_
-#define _RTL_MEMORY_H_
-
-# include <sal/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void SAL_CALL rtl_zeroMemory(void *Ptr, sal_Size Bytes);
-void SAL_CALL rtl_fillMemory(void *Ptr, sal_Size Bytes, sal_uInt8 Fill);
-void SAL_CALL rtl_copyMemory(void *Dst, const void *Src, sal_Size Bytes);
-void SAL_CALL rtl_moveMemory(void *Dst, const void *Src, sal_Size Bytes);
-sal_Int32 SAL_CALL rtl_compareMemory(const void *MemA, const void *MemB, sal_Size Bytes);
-void* SAL_CALL rtl_findInMemory(const void *MemA, sal_uInt8 ch, sal_Size Bytes);
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /*_RTL_MEMORY_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/process.h b/sal/inc/rtl/process.h
deleted file mode 100644
index debdc34ac..000000000
--- a/sal/inc/rtl/process.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _RTL_PROCESS_H_
-#define _RTL_PROCESS_H_
-
-#include <sal/types.h>
-#include <osl/process.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/**
- gets a 16-byte fixed size identifier which is guaranteed not to change
- during the current process.
-
- The current implementation creates a 16-byte uuid without using
- the ethernet address of system. Thus the
- identifier is different from identifiers created
- in other processes with a very probability.
-
- @param pTargetUUID 16 byte of memory
- @see rtl_createUiid()
- */
-void SAL_CALL rtl_getGlobalProcessId( sal_uInt8 *pTargetUUID );
-
-/** Get the nArg-th command-line argument passed to the main-function of this process.
-
- This functions differs from osl_getCommandArg() in filtering any bootstrap values
- given by command args, that means that all arguments starting with "-env:" will be
- ignored by this function.
-
- @param nArg [in] The number of the argument to return.
- @param strCommandArg [out] The string receives the nArg-th command-line argument.
- @return osl_Process_E_None or does not return.
- @see osl_getCommandArg()
- @see rtl_getCommandArgCount()
-*/
-oslProcessError SAL_CALL rtl_getAppCommandArg(sal_uInt32 nArg, rtl_uString **strCommandArg);
-
-/** Returns the number of command line arguments at process start.
-
- This functions differs from osl_getCommandArg() in filtering any bootstrap values
- given by command args, that means that all arguments starting with "-env:" will be
- ignored by this function.
-
- @return the number of commandline arguments passed to the main-function of this process.
- @see osl_getCommandArgCount()
- @see rtl_getCommandArg()
-*/
-sal_uInt32 SAL_CALL rtl_getAppCommandArgCount();
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/random.h b/sal/inc/rtl/random.h
deleted file mode 100644
index f96196cf7..000000000
--- a/sal/inc/rtl/random.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_RANDOM_H_
-#define _RTL_RANDOM_H_
-
-#include <sal/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*========================================================================
- *
- * rtlRandom interface.
- *
- *======================================================================*/
-/** Random Pool opaque type.
- */
-typedef void* rtlRandomPool;
-
-
-/** Error Code enumeration.
- */
-enum __rtl_RandomError
-{
- rtl_Random_E_None,
- rtl_Random_E_Argument,
- rtl_Random_E_Memory,
- rtl_Random_E_Unknown,
- rtl_Random_E_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-};
-
-/** Error Code type.
- */
-typedef enum __rtl_RandomError rtlRandomError;
-
-
-/** Create a Random Pool.
- @return initialized Random Pool, or NULL upon failure.
- */
-rtlRandomPool SAL_CALL rtl_random_createPool (void) SAL_THROW_EXTERN_C();
-
-
-/** Destroy a Random Pool.
- @param Pool [in] a Random Pool.
- @return none. Pool is invalid.
- */
-void SAL_CALL rtl_random_destroyPool (
- rtlRandomPool Pool
-) SAL_THROW_EXTERN_C();
-
-
-/** Add bytes to a Random Pool.
- @param Pool [in] a Random Pool.
- @param pBuffer [in] a buffer containing the bytes to add.
- @param nBufLen [in] the number of bytes to read from the buffer.
- @return rtl_Random_E_None upon success.
- */
-rtlRandomError SAL_CALL rtl_random_addBytes (
- rtlRandomPool Pool,
- const void *Buffer,
- sal_Size Bytes
-) SAL_THROW_EXTERN_C();
-
-
-/** Retrieve bytes from a Random Pool.
- @param Pool [in] a Random Pool.
- @param pBuffer [inout] a buffer to receive the random bytes.
- @param nBufLen [in] the number of bytes to write to the buffer.
- @return rtl_Random_E_None upon success.
- */
-rtlRandomError SAL_CALL rtl_random_getBytes (
- rtlRandomPool Pool,
- void *Buffer,
- sal_Size Bytes
-) SAL_THROW_EXTERN_C();
-
-/*========================================================================
- *
- * The End.
- *
- *======================================================================*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RTL_RANDOM_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/ref.hxx b/sal/inc/rtl/ref.hxx
deleted file mode 100644
index f92bea0cd..000000000
--- a/sal/inc/rtl/ref.hxx
+++ /dev/null
@@ -1,245 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_REF_HXX_
-#define _RTL_REF_HXX_
-
-#include <sal/types.h>
-#include <osl/diagnose.h>
-#include <osl/interlck.h>
-
-namespace rtl
-{
-
-/** Interface for a reference type.
-*/
-class IReference
-{
-public:
- /** @see osl_incrementInterlockedCount.
- */
- virtual oslInterlockedCount SAL_CALL acquire() = 0;
-
- /** @see osl_decrementInterlockedCount.
- */
- virtual oslInterlockedCount SAL_CALL release() = 0;
-};
-
-
-/** Template reference class for reference type derived from IReference.
-*/
-template <class reference_type>
-class Reference
-{
- /** The <b>reference_type</b> body pointer.
- */
- reference_type * m_pBody;
-
-
-public:
- /** Constructor...
- */
- inline Reference()
- : m_pBody (0)
- {}
-
-
- /** Constructor...
- */
- inline Reference (reference_type * pBody)
- : m_pBody (pBody)
- {
- if (m_pBody)
- m_pBody->acquire();
- }
-
-
- /** Copy constructor...
- */
- inline Reference (const Reference<reference_type> & handle)
- : m_pBody (handle.m_pBody)
- {
- if (m_pBody)
- m_pBody->acquire();
- }
-
-
- /** Destructor...
- */
- inline ~Reference()
- {
- if (m_pBody)
- m_pBody->release();
- }
-
- /** Set...
- Similar to assignment.
- */
- inline Reference<reference_type> &
- SAL_CALL set (reference_type * pBody)
- {
- if (pBody)
- pBody->acquire();
- reference_type * const pOld = m_pBody;
- m_pBody = pBody;
- if (pOld)
- pOld->release();
- return *this;
- }
-
- /** Assignment.
- Unbinds this instance from its body (if bound) and
- bind it to the body represented by the handle.
- */
- inline Reference<reference_type> &
- SAL_CALL operator= (const Reference<reference_type> & handle)
- {
- return set( handle.m_pBody );
- }
-
- /** Assignment...
- */
- inline Reference<reference_type> &
- SAL_CALL operator= (reference_type * pBody)
- {
- return set( pBody );
- }
-
- /** Unbind the body from this handle.
- Note that for a handle representing a large body,
- "handle.clear().set(new body());" _might_
- perform a little bit better than "handle.set(new body());",
- since in the second case two large objects exist in memory
- (the old body and the new body).
- */
- inline Reference<reference_type> & SAL_CALL clear()
- {
- if (m_pBody)
- {
- reference_type * const pOld = m_pBody;
- m_pBody = 0;
- pOld->release();
- }
- return *this;
- }
-
-
- /** Get the body. Can be used instead of operator->().
- I.e. handle->someBodyOp() and handle.get()->someBodyOp()
- are the same.
- */
- inline reference_type * SAL_CALL get() const
- {
- return m_pBody;
- }
-
-
- /** Probably most common used: handle->someBodyOp().
- */
- inline reference_type * SAL_CALL operator->() const
- {
- OSL_PRECOND(m_pBody, "Reference::operator->() : null body");
- return m_pBody;
- }
-
-
- /** Allows (*handle).someBodyOp().
- */
- inline reference_type & SAL_CALL operator*() const
- {
- OSL_PRECOND(m_pBody, "Reference::operator*() : null body");
- return *m_pBody;
- }
-
-
- /** Returns True if the handle does point to a valid body.
- */
- inline sal_Bool SAL_CALL is() const
- {
- return (m_pBody != 0);
- }
-
-
- /** Returns True if this points to pBody.
- */
- inline sal_Bool SAL_CALL operator== (const reference_type * pBody) const
- {
- return (m_pBody == pBody);
- }
-
-
- /** Returns True if handle points to the same body.
- */
- inline sal_Bool
- SAL_CALL operator== (const Reference<reference_type> & handle) const
- {
- return (m_pBody == handle.m_pBody);
- }
-
-
- /** Needed to place References into STL collection.
- */
- inline sal_Bool
- SAL_CALL operator!= (const Reference<reference_type> & handle) const
- {
- return (m_pBody != handle.m_pBody);
- }
-
-
- /** Needed to place References into STL collection.
- */
- inline sal_Bool
- SAL_CALL operator< (const Reference<reference_type> & handle) const
- {
- return (m_pBody < handle.m_pBody);
- }
-
-
- /** Needed to place References into STL collection.
- */
- inline sal_Bool
- SAL_CALL operator> (const Reference<reference_type> & handle) const
- {
- return (m_pBody > handle.m_pBody);
- }
-};
-
-/** @internal
- Enables boost::mem_fn and boost::bind to recognize Reference.
-*/
-template <typename T>
-inline T * get_pointer( Reference<T> const& r )
-{
- return r.get();
-}
-
-} // namespace rtl
-
-#endif /* !_RTL_REF_HXX_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/strbuf.h b/sal/inc/rtl/strbuf.h
deleted file mode 100644
index 9543b9a57..000000000
--- a/sal/inc/rtl/strbuf.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_STRBUF_H_
-#define _RTL_STRBUF_H_
-
-#include <rtl/string.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** @HTML
- Allocates a new <code>String</code> that contains characters from
- the character array argument.
-
- The <code>count</code> argument specifies
- the length of the array. The initial capacity of the string buffer is
- <code>16</code> plus the length of the string argument.
-
- @param newStr out parameter, contains the new string. The reference count is 1.
- @param value the initial value of the string.
- @param count the length of value.
- */
-void SAL_CALL rtl_stringbuffer_newFromStr_WithLength( rtl_String ** newStr,
- const sal_Char * value,
- sal_Int32 count);
-
-/**
- Allocates a new <code>String</code> that contains the same sequence of
- characters as the string argument.
-
- The initial capacity is the larger of:
- <ul>
- <li> The <code>bufferLen</code> argument.
- <li> The <code>length</code> of the string argument.
- </ul>
-
- @param newStr out parameter, contains the new string. The reference count is 1.
- @param capacity the initial len of the string buffer.
- @param oldStr the initial value of the string.
- @return the new capacity of the string buffer
- */
-sal_Int32 SAL_CALL rtl_stringbuffer_newFromStringBuffer( rtl_String ** newStr,
- sal_Int32 capacity,
- rtl_String * olsStr );
-
-/**
- Ensures that the capacity of the buffer is at least equal to the
- specified minimum.
-
- If the current capacity of this string buffer is less than the
- argument, then a new internal buffer is allocated with greater
- capacity. The new capacity is the larger of:
- <ul>
- <li>The <code>minimumCapacity</code> argument.
- <li>Twice the old capacity, plus <code>2</code>.
- </ul>
- If the <code>minimumCapacity</code> argument is nonpositive, this
- method takes no action and simply returns.
-
- @param capacity in: old capicity, out: new capacity.
- @param minimumCapacity the minimum desired capacity.
- */
-void SAL_CALL rtl_stringbuffer_ensureCapacity( /*inout*/rtl_String ** This,
- /*inout*/sal_Int32* capacity,
- sal_Int32 minimumCapacity);
-
-
-/**
- Inserts the string representation of the <code>char</code> array
- argument into this string buffer.
-
- The characters of the array argument are inserted into the
- contents of this string buffer at the position indicated by
- <code>offset</code>. The length of this string buffer increases by
- the length of the argument.
-
- @param capacity the capacity of the string buffer
- @param offset the offset.
- @param ch a character array.
- @param len the number of characters to append.
- */
-void SAL_CALL rtl_stringbuffer_insert( /*inout*/rtl_String ** This,
- /*inout*/sal_Int32 * capacity,
- sal_Int32 offset,
- const sal_Char * str,
- sal_Int32 len);
-
-/**
- Removes the characters in a substring of this sequence.
-
- The substring begins at the specified <code>start</code> and
- is <code>len</code> characters long.
-
- start must be >= 0 && <= This->length
-
- @param start The beginning index, inclusive
- @param len The substring length
- */
-void SAL_CALL rtl_stringbuffer_remove( /*inout*/rtl_String ** This,
- sal_Int32 start,
- sal_Int32 len );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RTL_STRBUF_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/strbuf.hxx b/sal/inc/rtl/strbuf.hxx
deleted file mode 100644
index a5412e7ee..000000000
--- a/sal/inc/rtl/strbuf.hxx
+++ /dev/null
@@ -1,710 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_STRBUF_HXX_
-#define _RTL_STRBUF_HXX_
-
-#include "osl/diagnose.h"
-#include <rtl/strbuf.h>
-#include <rtl/string.hxx>
-
-#ifdef __cplusplus
-
-namespace rtl
-{
-
-/** @HTML
-
- A string buffer implements a mutable sequence of characters.
- <p>
- String buffers are safe for use by multiple threads. The methods
- are synchronized where necessary so that all the operations on any
- particular instance behave as if they occur in some serial order.
- <p>
- String buffers are used by the compiler to implement the binary
- string concatenation operator <code>+</code>. For example, the code:
- <p><blockquote><pre>
- x = "a" + 4 + "c"
- </pre></blockquote><p>
- is compiled to the equivalent of:
- <p><blockquote><pre>
- x = new OStringBuffer().append("a").append(4).append("c")
- .makeStringAndClear()
- </pre></blockquote><p>
- The principal operations on a <code>OStringBuffer</code> are the
- <code>append</code> and <code>insert</code> methods, which are
- overloaded so as to accept data of any type. Each effectively
- converts a given datum to a string and then appends or inserts the
- characters of that string to the string buffer. The
- <code>append</code> method always adds these characters at the end
- of the buffer; the <code>insert</code> method adds the characters at
- a specified point.
- <p>
- For example, if <code>z</code> refers to a string buffer object
- whose current contents are "<code>start</code>", then
- the method call <code>z.append("le")</code> would cause the string
- buffer to contain "<code>startle</code>", whereas
- <code>z.insert(4, "le")</code> would alter the string buffer to
- contain "<code>starlet</code>".
- <p>
- Every string buffer has a capacity. As long as the length of the
- character sequence contained in the string buffer does not exceed
- the capacity, it is not necessary to allocate a new internal
- buffer array. If the internal buffer overflows, it is
- automatically made larger.
- */
-class OStringBuffer
-{
-public:
- /**
- Constructs a string buffer with no characters in it and an
- initial capacity of 16 characters.
- */
- OStringBuffer()
- : pData(NULL)
- , nCapacity( 16 )
- {
- rtl_string_new_WithLength( &pData, nCapacity );
- }
-
- /**
- Allocates a new string buffer that contains the same sequence of
- characters as the string buffer argument.
-
- @param value a <code>OStringBuffer</code>.
- */
- OStringBuffer( const OStringBuffer & value )
- : pData(NULL)
- , nCapacity( value.nCapacity )
- {
- rtl_stringbuffer_newFromStringBuffer( &pData, value.nCapacity, value.pData );
- }
-
- /**
- Constructs a string buffer with no characters in it and an
- initial capacity specified by the <code>length</code> argument.
-
- @param length the initial capacity.
- */
- explicit OStringBuffer(sal_Int32 length)
- : pData(NULL)
- , nCapacity( length )
- {
- rtl_string_new_WithLength( &pData, length );
- }
-
- /**
- Constructs a string buffer so that it represents the same
- sequence of characters as the string argument.
-
- The initial
- capacity of the string buffer is <code>16</code> plus the length
- of the string argument.
-
- @param value the initial string value.
- */
- OStringBuffer(OString value)
- : pData(NULL)
- , nCapacity( value.getLength() + 16 )
- {
- rtl_stringbuffer_newFromStr_WithLength( &pData, value.getStr(), value.getLength() );
- }
-
- /**
- Constructs a string buffer so that it represents the same
- sequence of characters as the string argument.
-
- The initial
- capacity of the string buffer is <code>16</code> plus length
-
- @param value a character array.
- @param length the number of character which should be copied.
- The character array length must be greater or
- equal than this value.
- */
- OStringBuffer(const sal_Char * value, sal_Int32 length)
- : pData(NULL)
- , nCapacity( length + 16 )
- {
- rtl_stringbuffer_newFromStr_WithLength( &pData, value, length );
- }
-
- /** Assign to this a copy of value.
- */
- OStringBuffer& operator = ( const OStringBuffer& value )
- {
- if (this != &value)
- {
- rtl_stringbuffer_newFromStringBuffer(&pData,
- value.nCapacity,
- value.pData);
- nCapacity = value.nCapacity;
- }
- return *this;
- }
-
- /**
- Release the string data.
- */
- ~OStringBuffer()
- {
- rtl_string_release( pData );
- }
-
- /**
- Fill the string data in the new string and clear the buffer.
-
- This method is more efficient than the contructor of the string. It does
- not copy the buffer.
-
- @return the string previously contained in the buffer.
- */
- OString makeStringAndClear()
- {
- OString aRet( pData );
- rtl_string_new(&pData);
- nCapacity = 0;
- return aRet;
- }
-
- /**
- Returns the length (character count) of this string buffer.
-
- @return the number of characters in this string buffer.
- */
- sal_Int32 getLength() const
- {
- return pData->length;
- }
-
- /**
- Returns the current capacity of the String buffer.
-
- The capacity
- is the amount of storage available for newly inserted
- characters. The real buffer size is 2 bytes longer, because
- all strings are 0 terminated.
-
- @return the current capacity of this string buffer.
- */
- sal_Int32 getCapacity() const
- {
- return nCapacity;
- }
-
- /**
- Ensures that the capacity of the buffer is at least equal to the
- specified minimum.
-
- The new capacity will be at least as large as the maximum of the current
- length (so that no contents of the buffer is destroyed) and the given
- minimumCapacity. If the given minimumCapacity is negative, nothing is
- changed.
-
- @param minimumCapacity the minimum desired capacity.
- */
- void ensureCapacity(sal_Int32 minimumCapacity)
- {
- rtl_stringbuffer_ensureCapacity( &pData, &nCapacity, minimumCapacity );
- }
-
- /**
- Sets the length of this String buffer.
-
- If the <code>newLength</code> argument is less than the current
- length of the string buffer, the string buffer is truncated to
- contain exactly the number of characters given by the
- <code>newLength</code> argument.
- <p>
- If the <code>newLength</code> argument is greater than or equal
- to the current length, sufficient null characters
- (<code>'&#92;u0000'</code>) are appended to the string buffer so that
- length becomes the <code>newLength</code> argument.
- <p>
- The <code>newLength</code> argument must be greater than or equal
- to <code>0</code>.
-
- @param newLength the new length of the buffer.
- */
- void setLength(sal_Int32 newLength)
- {
- OSL_ASSERT(newLength >= 0);
- // Avoid modifications if pData points to const empty string:
- if( newLength != pData->length )
- {
- if( newLength > nCapacity )
- rtl_stringbuffer_ensureCapacity(&pData, &nCapacity, newLength);
- else
- pData->buffer[newLength] = '\0';
- pData->length = newLength;
- }
- }
-
- /**
- Returns the character at a specific index in this string buffer.
-
- The first character of a string buffer is at index
- <code>0</code>, the next at index <code>1</code>, and so on, for
- array indexing.
- <p>
- The index argument must be greater than or equal to
- <code>0</code>, and less than the length of this string buffer.
-
- @param index the index of the desired character.
- @return the character at the specified index of this string buffer.
- */
- sal_Char charAt( sal_Int32 index )
- {
- OSL_ASSERT(index >= 0 && index < pData->length);
- return pData->buffer[ index ];
- }
-
- /**
- Return a null terminated character array.
- */
- operator const sal_Char *() const { return pData->buffer; }
-
- /**
- Return a null terminated character array.
- */
- const sal_Char* getStr() const { return pData->buffer; }
-
- /**
- Return a OString instance reflecting the current content
- of this OStringBuffer.
- */
- const OString toString() const { return OString(pData->buffer); }
-
- /**
- The character at the specified index of this string buffer is set
- to <code>ch</code>.
-
- The index argument must be greater than or equal to
- <code>0</code>, and less than the length of this string buffer.
-
- @param index the index of the character to modify.
- @param ch the new character.
- */
- OStringBuffer & setCharAt(sal_Int32 index, sal_Char ch)
- {
- OSL_ASSERT(index >= 0 && index < pData->length);
- pData->buffer[ index ] = ch;
- return *this;
- }
-
- /**
- Appends the string to this string buffer.
-
- The characters of the <code>String</code> argument are appended, in
- order, to the contents of this string buffer, increasing the
- length of this string buffer by the length of the argument.
-
- @param str a string.
- @return this string buffer.
- */
- OStringBuffer & append(const OString &str)
- {
- return append( str.getStr(), str.getLength() );
- }
-
- /**
- Appends the string representation of the <code>char</code> array
- argument to this string buffer.
-
- The characters of the array argument are appended, in order, to
- the contents of this string buffer. The length of this string
- buffer increases by the length of the argument.
-
- @param str the characters to be appended.
- @return this string buffer.
- */
- OStringBuffer & append( const sal_Char * str )
- {
- return append( str, rtl_str_getLength( str ) );
- }
-
- /**
- Appends the string representation of the <code>char</code> array
- argument to this string buffer.
-
- Characters of the character array <code>str</code> are appended,
- in order, to the contents of this string buffer. The length of this
- string buffer increases by the value of <code>len</code>.
-
- @param str the characters to be appended; must be non-null, and must
- point to at least len characters
- @param len the number of characters to append; must be non-negative
- @return this string buffer.
- */
- OStringBuffer & append( const sal_Char * str, sal_Int32 len)
- {
- // insert behind the last character
- rtl_stringbuffer_insert( &pData, &nCapacity, getLength(), str, len );
- return *this;
- }
-
- /**
- Appends the string representation of the <code>sal_Bool</code>
- argument to the string buffer.
-
- The argument is converted to a string as if by the method
- <code>String.valueOf</code>, and the characters of that
- string are then appended to this string buffer.
-
- @param b a <code>sal_Bool</code>.
- @return this string buffer.
- */
- OStringBuffer & append(sal_Bool b)
- {
- sal_Char sz[RTL_STR_MAX_VALUEOFBOOLEAN];
- return append( sz, rtl_str_valueOfBoolean( sz, b ) );
- }
-
- /**
- Appends the string representation of the <code>char</code>
- argument to this string buffer.
-
- The argument is appended to the contents of this string buffer.
- The length of this string buffer increases by <code>1</code>.
-
- @param ch a <code>char</code>.
- @return this string buffer.
- */
- OStringBuffer & append(sal_Char c)
- {
- return append( &c, 1 );
- }
-
- /**
- Appends the string representation of the <code>sal_Int32</code>
- argument to this string buffer.
-
- The argument is converted to a string as if by the method
- <code>String.valueOf</code>, and the characters of that
- string are then appended to this string buffer.
-
- @param i an <code>sal_Int32</code>.
- @return this string buffer.
- */
- OStringBuffer & append(sal_Int32 i, sal_Int16 radix = 10 )
- {
- sal_Char sz[RTL_STR_MAX_VALUEOFINT32];
- return append( sz, rtl_str_valueOfInt32( sz, i, radix ) );
- }
-
- /**
- Appends the string representation of the <code>long</code>
- argument to this string buffer.
-
- The argument is converted to a string as if by the method
- <code>String.valueOf</code>, and the characters of that
- string are then appended to this string buffer.
-
- @param l a <code>long</code>.
- @return this string buffer.
- */
- OStringBuffer & append(sal_Int64 l, sal_Int16 radix = 10 )
- {
- sal_Char sz[RTL_STR_MAX_VALUEOFINT64];
- return append( sz, rtl_str_valueOfInt64( sz, l, radix ) );
- }
-
- /**
- Appends the string representation of the <code>float</code>
- argument to this string buffer.
-
- The argument is converted to a string as if by the method
- <code>String.valueOf</code>, and the characters of that
- string are then appended to this string buffer.
-
- @param f a <code>float</code>.
- @return this string buffer.
- */
- OStringBuffer & append(float f)
- {
- sal_Char sz[RTL_STR_MAX_VALUEOFFLOAT];
- return append( sz, rtl_str_valueOfFloat( sz, f ) );
- }
-
- /**
- Appends the string representation of the <code>double</code>
- argument to this string buffer.
-
- The argument is converted to a string as if by the method
- <code>String.valueOf</code>, and the characters of that
- string are then appended to this string buffer.
-
- @param d a <code>double</code>.
- @return this string buffer.
- */
- OStringBuffer & append(double d)
- {
- sal_Char sz[RTL_STR_MAX_VALUEOFDOUBLE];
- return append( sz, rtl_str_valueOfDouble( sz, d ) );
- }
-
- /**
- Inserts the string into this string buffer.
-
- The characters of the <code>String</code> argument are inserted, in
- order, into this string buffer at the indicated offset. The length
- of this string buffer is increased by the length of the argument.
- <p>
- The offset argument must be greater than or equal to
- <code>0</code>, and less than or equal to the length of this
- string buffer.
-
- @param offset the offset.
- @param str a string.
- @return this string buffer.
- */
- OStringBuffer & insert(sal_Int32 offset, const OString & str)
- {
- return insert( offset, str.getStr(), str.getLength() );
- }
-
- /**
- Inserts the string representation of the <code>char</code> array
- argument into this string buffer.
-
- The characters of the array argument are inserted into the
- contents of this string buffer at the position indicated by
- <code>offset</code>. The length of this string buffer increases by
- the length of the argument.
- <p>
- The offset argument must be greater than or equal to
- <code>0</code>, and less than or equal to the length of this
- string buffer.
-
- @param offset the offset.
- @param ch a character array.
- @return this string buffer.
- */
- OStringBuffer & insert( sal_Int32 offset, const sal_Char * str )
- {
- return insert( offset, str, rtl_str_getLength( str ) );
- }
-
- /**
- Inserts the string representation of the <code>char</code> array
- argument into this string buffer.
-
- The characters of the array argument are inserted into the
- contents of this string buffer at the position indicated by
- <code>offset</code>. The length of this string buffer increases by
- the length of the argument.
- <p>
- The offset argument must be greater than or equal to
- <code>0</code>, and less than or equal to the length of this
- string buffer.
-
- @param offset the offset.
- @param ch a character array.
- @param len the number of characters to append.
- @return this string buffer.
- */
- OStringBuffer & insert( sal_Int32 offset, const sal_Char * str, sal_Int32 len)
- {
- // insert behind the last character
- rtl_stringbuffer_insert( &pData, &nCapacity, offset, str, len );
- return *this;
- }
-
- /**
- Inserts the string representation of the <code>sal_Bool</code>
- argument into this string buffer.
-
- The second argument is converted to a string as if by the method
- <code>String.valueOf</code>, and the characters of that
- string are then inserted into this string buffer at the indicated
- offset.
- <p>
- The offset argument must be greater than or equal to
- <code>0</code>, and less than or equal to the length of this
- string buffer.
-
- @param offset the offset.
- @param b a <code>sal_Bool</code>.
- @return this string buffer.
- */
- OStringBuffer & insert(sal_Int32 offset, sal_Bool b)
- {
- sal_Char sz[RTL_STR_MAX_VALUEOFBOOLEAN];
- return insert( offset, sz, rtl_str_valueOfBoolean( sz, b ) );
- }
-
- /**
- Inserts the string representation of the <code>char</code>
- argument into this string buffer.
-
- The second argument is inserted into the contents of this string
- buffer at the position indicated by <code>offset</code>. The length
- of this string buffer increases by one.
- <p>
- The offset argument must be greater than or equal to
- <code>0</code>, and less than or equal to the length of this
- string buffer.
-
- @param offset the offset.
- @param ch a <code>char</code>.
- @return this string buffer.
- */
- OStringBuffer & insert(sal_Int32 offset, sal_Char c)
- {
- return insert( offset, &c, 1 );
- }
-
- /**
- Inserts the string representation of the second <code>sal_Int32</code>
- argument into this string buffer.
-
- The second argument is converted to a string as if by the method
- <code>String.valueOf</code>, and the characters of that
- string are then inserted into this string buffer at the indicated
- offset.
- <p>
- The offset argument must be greater than or equal to
- <code>0</code>, and less than or equal to the length of this
- string buffer.
-
- @param offset the offset.
- @param b an <code>sal_Int32</code>.
- @return this string buffer.
- */
- OStringBuffer & insert(sal_Int32 offset, sal_Int32 i, sal_Int16 radix = 10 )
- {
- sal_Char sz[RTL_STR_MAX_VALUEOFINT32];
- return insert( offset, sz, rtl_str_valueOfInt32( sz, i, radix ) );
- }
-
- /**
- Inserts the string representation of the <code>long</code>
- argument into this string buffer.
-
- The second argument is converted to a string as if by the method
- <code>String.valueOf</code>, and the characters of that
- string are then inserted into this string buffer at the indicated
- offset.
- <p>
- The offset argument must be greater than or equal to
- <code>0</code>, and less than or equal to the length of this
- string buffer.
-
- @param offset the offset.
- @param b a <code>long</code>.
- @return this string buffer.
- */
- OStringBuffer & insert(sal_Int32 offset, sal_Int64 l, sal_Int16 radix = 10 )
- {
- sal_Char sz[RTL_STR_MAX_VALUEOFINT64];
- return insert( offset, sz, rtl_str_valueOfInt64( sz, l, radix ) );
- }
-
- /**
- Inserts the string representation of the <code>float</code>
- argument into this string buffer.
-
- The second argument is converted to a string as if by the method
- <code>String.valueOf</code>, and the characters of that
- string are then inserted into this string buffer at the indicated
- offset.
- <p>
- The offset argument must be greater than or equal to
- <code>0</code>, and less than or equal to the length of this
- string buffer.
-
- @param offset the offset.
- @param b a <code>float</code>.
- @return this string buffer.
- */
- OStringBuffer insert(sal_Int32 offset, float f)
- {
- sal_Char sz[RTL_STR_MAX_VALUEOFFLOAT];
- return insert( offset, sz, rtl_str_valueOfFloat( sz, f ) );
- }
-
- /**
- Inserts the string representation of the <code>double</code>
- argument into this string buffer.
-
- The second argument is converted to a string as if by the method
- <code>String.valueOf</code>, and the characters of that
- string are then inserted into this string buffer at the indicated
- offset.
- <p>
- The offset argument must be greater than or equal to
- <code>0</code>, and less than or equal to the length of this
- string buffer.
-
- @param offset the offset.
- @param b a <code>double</code>.
- @return this string buffer.
- */
- OStringBuffer & insert(sal_Int32 offset, double d)
- {
- sal_Char sz[RTL_STR_MAX_VALUEOFDOUBLE];
- return insert( offset, sz, rtl_str_valueOfDouble( sz, d ) );
- }
-
- /**
- Removes the characters in a substring of this sequence.
-
- The substring begins at the specified <code>start</code> and
- is <code>len</code> characters long.
-
- start must be >= 0 && <= getLength() && <= end
-
- @param start The beginning index, inclusive
- @param len The substring length
- @return this string buffer.
- */
- OStringBuffer & remove( sal_Int32 start, sal_Int32 len )
- {
- rtl_stringbuffer_remove( &pData, start, len );
- return *this;
- }
-
-private:
- /**
- A pointer to the data structur which contains the data.
- */
- rtl_String * pData;
-
- /**
- The len of the pData->buffer.
- */
- sal_Int32 nCapacity;
-};
-
-}
-
-#endif /* __cplusplus */
-#endif /* _RTL_STRBUF_HXX_ */
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/string.h b/sal/inc/rtl/string.h
deleted file mode 100644
index 5f7719019..000000000
--- a/sal/inc/rtl/string.h
+++ /dev/null
@@ -1,1194 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_STRING_H_
-#define _RTL_STRING_H_
-
-#include <sal/types.h>
-#include <osl/interlck.h>
-#include <rtl/textcvt.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* ======================================================================= */
-
-/** Return the length of a string.
-
- The length is equal to the number of 8-bit characters in the string,
- without the terminating NUL character.
-
- @param str
- a null-terminated string.
-
- @return
- the length of the sequence of characters represented by this string,
- excluding the terminating NUL character.
- */
-sal_Int32 SAL_CALL rtl_str_getLength( const sal_Char * str ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. This function
- cannot be used for language-specific sorting. Both strings must be
- null-terminated.
-
- @param first
- the first null-terminated string to be compared.
-
- @param second
- the second null-terminated string which is compared with the first one.
-
- @return
- 0 if both strings are equal, a value less than 0 if the first string is
- less than the second string, and a value greater than 0 if the first
- string is greater than the second string.
- */
-sal_Int32 SAL_CALL rtl_str_compare( const sal_Char * first, const sal_Char * second ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. This function
- cannot be used for language-specific sorting.
-
- @param first
- the first string to be compared. Need not be null-terminated, but must be
- at least as long as the specified firstLen.
-
- @param firstLen
- the length of the first string.
-
- @param second
- the second string which is compared with the first one. Need not be
- null-terminated, but must be at least as long as the specified secondLen.
-
- @param secondLen
- the length of the second string.
-
- @return
- 0 if both strings are equal, a value less than 0 if the first string is
- less than the second string, and a value greater than 0 if the first
- string is greater than the second string.
- */
-sal_Int32 SAL_CALL rtl_str_compare_WithLength( const sal_Char * first, sal_Int32 firstLen, const sal_Char * second, sal_Int32 secondLen ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings with a maximum count of characters.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. This function
- cannot be used for language-specific sorting.
-
- @param first
- the first string to be compared. Need not be null-terminated, but must be
- at least as long as the specified firstLen.
-
- @param firstLen
- the length of the first string.
-
- @param second
- the second string which is compared with the first one. Need not be
- null-terminated, but must be at least as long as the specified secondLen.
-
- @param secondLen
- the length of the second string.
-
- @param shortenedLen
- the maximum number of characters to compare. This length can be greater
- or smaller than the lengths of the two strings.
-
- @return
- 0 if both substrings are equal, a value less than 0 if the first substring
- is less than the second substring, and a value greater than 0 if the first
- substring is greater than the second substring.
- */
-sal_Int32 SAL_CALL rtl_str_shortenedCompare_WithLength( const sal_Char * first, sal_Int32 firstLen, const sal_Char * second, sal_Int32 secondLen, sal_Int32 shortenedLen ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings from back to front.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. This function
- cannot be used for language-specific sorting.
-
- @param first
- the first string to be compared. Need not be null-terminated, but must be
- at least as long as the specified firstLen.
-
- @param firstLen
- the length of the first string.
-
- @param second
- the second string which is compared with the first one. Need not be
- null-terminated, but must be at least as long as the specified secondLen.
-
- @param secondLen
- the length of the second string.
-
- @return
- 0 if both strings are equal, a value less than 0 if the first string
- compares less than the second string, and a value greater than 0 if the
- first string compares greater than the second string.
- */
-sal_Int32 SAL_CALL rtl_str_reverseCompare_WithLength( const sal_Char * first, sal_Int32 firstLen, const sal_Char * second, sal_Int32 secondLen ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings, ignoring the case of ASCII characters.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. Character
- values between 65 and 90 (ASCII A--Z) are interpreted as values between 97
- and 122 (ASCII a--z). This function cannot be used for language-specific
- sorting. Both strings must be null-terminated.
-
- @param first
- the first null-terminated string to be compared.
-
- @param second
- the second null-terminated string which is compared with the first one.
-
- @return
- 0 if both strings are equal, a value less than 0 if the first string is
- less than the second string, and a value greater than 0 if the first
- string is greater than the second string.
- */
-sal_Int32 SAL_CALL rtl_str_compareIgnoreAsciiCase( const sal_Char * first, const sal_Char * second ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings, ignoring the case of ASCII characters.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. Character
- values between 65 and 90 (ASCII A--Z) are interpreted as values between 97
- and 122 (ASCII a--z). This function cannot be used for language-specific
- sorting.
-
- @param first
- the first string to be compared. Need not be null-terminated, but must be
- at least as long as the specified firstLen.
-
- @param firstLen
- the length of the first string.
-
- @param second
- the second string which is compared with the first one. Need not be
- null-terminated, but must be at least as long as the specified secondLen.
-
- @param secondLen
- the length of the second string.
-
- @return
- 0 if both strings are equal, a value less than 0 if the first string is
- less than the second string, and a value greater than 0 if the first
- string is greater than the second string.
- */
-sal_Int32 SAL_CALL rtl_str_compareIgnoreAsciiCase_WithLength( const sal_Char * first, sal_Int32 firstLen, const sal_Char * second, sal_Int32 secondLen ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings with a maximum count of characters, ignoring the case
- of ASCII characters.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. Character
- values between 65 and 90 (ASCII A--Z) are interpreted as values between 97
- and 122 (ASCII a--z). This function cannot be used for language-specific
- sorting.
-
- @param first
- the first string to be compared. Need not be null-terminated, but must be
- at least as long as the specified firstLen.
-
- @param firstLen
- the length of the first string.
-
- @param second
- the second string which is compared with the first one. Need not be
- null-terminated, but must be at least as long as the specified secondLen.
-
- @param secondLen
- the length of the second string.
-
- @param shortenedLen
- the maximum number of characters to compare. This length can be greater
- or smaller than the lengths of the two strings.
-
- @return
- 0 if both substrings are equal, a value less than 0 if the first substring
- is less than the second substring, and a value greater than 0 if the first
- substring is greater than the second substring.
- */
-sal_Int32 SAL_CALL rtl_str_shortenedCompareIgnoreAsciiCase_WithLength( const sal_Char * first, sal_Int32 firstLen, const sal_Char * second, sal_Int32 secondLen, sal_Int32 shortenedLen ) SAL_THROW_EXTERN_C();
-
-/** Return a hash code for a string.
-
- It is not allowed to store the hash code persistently, because later
- versions could return other hash codes. The string must be
- null-terminated.
-
- @param str
- a null-terminated string.
-
- @return
- a hash code for the given string.
- */
-sal_Int32 SAL_CALL rtl_str_hashCode( const sal_Char * str ) SAL_THROW_EXTERN_C();
-
-/** Return a hash code for a string.
-
- It is not allowed to store the hash code persistently, because later
- versions could return other hash codes.
-
- @param str
- a string. Need not be null-terminated, but must be at least as long as
- the specified len.
-
- @param len
- the length of the string.
-
- @return
- a hash code for the given string.
- */
-sal_Int32 SAL_CALL rtl_str_hashCode_WithLength( const sal_Char * str, sal_Int32 len ) SAL_THROW_EXTERN_C();
-
-/** Search for the first occurrence of a character within a string.
-
- The string must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @param ch
- the character to be searched for.
-
- @return
- the index (starting at 0) of the first occurrence of the character in the
- string, or -1 if the character does not occur.
- */
-sal_Int32 SAL_CALL rtl_str_indexOfChar( const sal_Char * str, sal_Char ch ) SAL_THROW_EXTERN_C();
-
-/** Search for the first occurrence of a character within a string.
-
- @param str
- a string. Need not be null-terminated, but must be at least as long as
- the specified len.
-
- @param len
- the length of the string.
-
- @param ch
- the character to be searched for.
-
- @return
- the index (starting at 0) of the first occurrence of the character in the
- string, or -1 if the character does not occur.
- */
-sal_Int32 SAL_CALL rtl_str_indexOfChar_WithLength( const sal_Char * str, sal_Int32 len, sal_Char ch ) SAL_THROW_EXTERN_C();
-
-/** Search for the last occurrence of a character within a string.
-
- The string must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @param ch
- the character to be searched for.
-
- @return
- the index (starting at 0) of the last occurrence of the character in the
- string, or -1 if the character does not occur. The returned value is
- always smaller than the string length.
- */
-sal_Int32 SAL_CALL rtl_str_lastIndexOfChar( const sal_Char * str, sal_Char ch ) SAL_THROW_EXTERN_C();
-
-/** Search for the last occurrence of a character within a string.
-
- @param str
- a string. Need not be null-terminated, but must be at least as long as
- the specified len.
-
- @param len
- the length of the string.
-
- @param ch
- the character to be searched for.
-
- @return
- the index (starting at 0) of the last occurrence of the character in the
- string, or -1 if the character does not occur. The returned value is
- always smaller than the string length.
- */
-sal_Int32 SAL_CALL rtl_str_lastIndexOfChar_WithLength( const sal_Char * str, sal_Int32 len, sal_Char ch ) SAL_THROW_EXTERN_C();
-
-/** Search for the first occurrence of a substring within a string.
-
- If subStr is empty, or both str and subStr are empty, -1 is returned.
- Both strings must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @param subStr
- the null-terminated substring to be searched for.
-
- @return
- the index (starting at 0) of the first character of the first occurrence
- of the substring within the string, or -1 if the substring does not occur.
- */
-sal_Int32 SAL_CALL rtl_str_indexOfStr( const sal_Char * str, const sal_Char * subStr ) SAL_THROW_EXTERN_C();
-
-/** Search for the first occurrence of a substring within a string.
-
- If subStr is empty, or both str and subStr are empty, -1 is returned.
-
- @param str
- a string. Need not be null-terminated, but must be at least as long as
- the specified len.
-
- @param len
- the length of the string.
-
- @param subStr
- the substring to be searched for. Need not be null-terminated, but must
- be at least as long as the specified subLen.
-
- @param subLen
- the length of the substring.
-
- @return
- the index (starting at 0) of the first character of the first occurrence
- of the substring within the string, or -1 if the substring does not occur.
- */
-sal_Int32 SAL_CALL rtl_str_indexOfStr_WithLength( const sal_Char * str, sal_Int32 len, const sal_Char * subStr, sal_Int32 subLen ) SAL_THROW_EXTERN_C();
-
-/** Search for the last occurrence of a substring within a string.
-
- If subStr is empty, or both str and subStr are empty, -1 is returned.
- Both strings must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @param subStr
- the null-terminated substring to be searched for.
-
- @return
- the index (starting at 0) of the first character of the last occurrence
- of the substring within the string, or -1 if the substring does not occur.
- */
-sal_Int32 SAL_CALL rtl_str_lastIndexOfStr( const sal_Char * str, const sal_Char * subStr ) SAL_THROW_EXTERN_C();
-
-/** Search for the last occurrence of a substring within a string.
-
- If subStr is empty, or both str and subStr are empty, -1 is returned.
-
- @param str
- a string. Need not be null-terminated, but must be at least as long as
- the specified len.
-
- @param len
- the length of the string.
-
- @param subStr
- the substring to be searched for. Need not be null-terminated, but must
- be at least as long as the specified subLen.
-
- @param subLen
- the length of the substring.
-
- @return
- the index (starting at 0) of the first character of the first occurrence
- of the substring within the string, or -1 if the substring does not occur.
- */
-sal_Int32 SAL_CALL rtl_str_lastIndexOfStr_WithLength( const sal_Char * str, sal_Int32 len, const sal_Char * subStr, sal_Int32 subLen ) SAL_THROW_EXTERN_C();
-
-/** Replace all occurrences of a single character within a string.
-
- If oldChar does not occur within str, then the string is not modified.
- The string must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @param oldChar
- the old character.
-
- @param newChar
- the new character.
- */
-void SAL_CALL rtl_str_replaceChar( sal_Char * str, sal_Char oldChar, sal_Char newChar ) SAL_THROW_EXTERN_C();
-
-/** Replace all occurrences of a single character within a string.
-
- If oldChar does not occur within str, then the string is not modified.
-
- @param str
- a string. Need not be null-terminated, but must be at least as long as
- the specified len.
-
- @param len
- the length of the string.
-
- @param oldChar
- the old character.
-
- @param newChar
- the new character.
- */
-void SAL_CALL rtl_str_replaceChar_WithLength( sal_Char * str, sal_Int32 len, sal_Char oldChar, sal_Char newChar ) SAL_THROW_EXTERN_C();
-
-/** Convert all ASCII uppercase letters to lowercase within a string.
-
- The characters with values between 65 and 90 (ASCII A--Z) are replaced
- with values between 97 and 122 (ASCII a--z). The string must be
- null-terminated.
-
- @param str
- a null-terminated string.
- */
-void SAL_CALL rtl_str_toAsciiLowerCase( sal_Char * str ) SAL_THROW_EXTERN_C();
-
-/** Convert all ASCII uppercase letters to lowercase within a string.
-
- The characters with values between 65 and 90 (ASCII A--Z) are replaced
- with values between 97 and 122 (ASCII a--z).
-
- @param str
- a string. Need not be null-terminated, but must be at least as long as
- the specified len.
-
- @param len
- the length of the string.
- */
-void SAL_CALL rtl_str_toAsciiLowerCase_WithLength( sal_Char * str, sal_Int32 len ) SAL_THROW_EXTERN_C();
-
-/** Convert all ASCII lowercase letters to uppercase within a string.
-
- The characters with values between 97 and 122 (ASCII a--z) are replaced
- with values between 65 and 90 (ASCII A--Z). The string must be
- null-terminated.
-
- @param str
- a null-terminated string.
- */
-void SAL_CALL rtl_str_toAsciiUpperCase( sal_Char * str ) SAL_THROW_EXTERN_C();
-
-/** Convert all ASCII lowercase letters to uppercase within a string.
-
- The characters with values between 97 and 122 (ASCII a--z) are replaced
- with values between 65 and 90 (ASCII A--Z).
-
- @param str
- a string. Need not be null-terminated, but must be at least as long as
- the specified len.
-
- @param len
- the length of the string.
- */
-void SAL_CALL rtl_str_toAsciiUpperCase_WithLength( sal_Char * str, sal_Int32 len ) SAL_THROW_EXTERN_C();
-
-/** Remove white space from both ends of a string.
-
- All characters with values less than or equal to 32 (the space character)
- are considered to be white space. This function cannot be used for
- language-specific operations. The string must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @return
- the new length of the string.
- */
-sal_Int32 SAL_CALL rtl_str_trim( sal_Char * str ) SAL_THROW_EXTERN_C();
-
-/** Remove white space from both ends of the string.
-
- All characters with values less than or equal to 32 (the space character)
- are considered to be white space. This function cannot be used for
- language-specific operations. The string must be null-terminated.
-
- @param str
- a string. Need not be null-terminated, but must be at least as long as
- the specified len.
-
- @param len
- the original length of the string.
-
- @return
- the new length of the string.
- */
-sal_Int32 SAL_CALL rtl_str_trim_WithLength( sal_Char * str, sal_Int32 len ) SAL_THROW_EXTERN_C();
-
-/** Create the string representation of a boolean.
-
- If b is true, the buffer is filled with the string "true" and 5 is
- returned. If b is false, the buffer is filled with the string "false" and
- 6 is returned. This function cannot be used for language-specific
- operations.
-
- @param str
- a buffer that is big enough to hold the result and the terminating NUL
- character. You should use the RTL_STR_MAX_VALUEOFBOOLEAN define to create
- a buffer that is big enough.
-
- @param b
- a boolean value.
-
- @return
- the length of the string.
- */
-sal_Int32 SAL_CALL rtl_str_valueOfBoolean( sal_Char * str, sal_Bool b ) SAL_THROW_EXTERN_C();
-#define RTL_STR_MAX_VALUEOFBOOLEAN 6
-
-/** Create the string representation of a character.
-
- @param str
- a buffer that is big enough to hold the result and the terminating NUL
- character. You should use the RTL_STR_MAX_VALUEOFCHAR define to create a
- buffer that is big enough.
-
- @param ch
- a character value.
-
- @return
- the length of the string.
- */
-sal_Int32 SAL_CALL rtl_str_valueOfChar( sal_Char * str, sal_Char ch ) SAL_THROW_EXTERN_C();
-#define RTL_STR_MAX_VALUEOFCHAR 2
-
-/** Create the string representation of an integer.
-
- This function cannot be used for language-specific operations.
-
- @param str
- a buffer that is big enough to hold the result and the terminating NUL
- character. You should use the RTL_STR_MAX_VALUEOFINT32 define to create a
- buffer that is big enough.
-
- @param i
- an integer value.
-
- @param radix
- the radix. Must be between RTL_STR_MIN_RADIX (2) and RTL_STR_MAX_RADIX
- (36), inclusive.
-
- @return
- the length of the string.
- */
-sal_Int32 SAL_CALL rtl_str_valueOfInt32( sal_Char * str, sal_Int32 i, sal_Int16 radix ) SAL_THROW_EXTERN_C();
-#define RTL_STR_MIN_RADIX 2
-#define RTL_STR_MAX_RADIX 36
-#define RTL_STR_MAX_VALUEOFINT32 33
-
-/** Create the string representation of a long integer.
-
- This function cannot be used for language-specific operations.
-
- @param str
- a buffer that is big enough to hold the result and the terminating NUL
- character. You should use the RTL_STR_MAX_VALUEOFINT64 define to create a
- buffer that is big enough.
-
- @param l
- a long integer value.
-
- @param radix
- the radix. Must be between RTL_STR_MIN_RADIX (2) and RTL_STR_MAX_RADIX
- (36), inclusive.
-
- @return
- the length of the string.
- */
-sal_Int32 SAL_CALL rtl_str_valueOfInt64( sal_Char * str, sal_Int64 l, sal_Int16 radix ) SAL_THROW_EXTERN_C();
-#define RTL_STR_MAX_VALUEOFINT64 65
-
-/** Create the string representation of a float.
-
- This function cannot be used for language-specific conversion.
-
- @param str
- a buffer that is big enough to hold the result and the terminating NUL
- character. You should use the RTL_STR_MAX_VALUEOFFLOAT define to create a
- buffer that is big enough.
-
- @param f
- a float value.
-
- @return
- the length of the string.
- */
-sal_Int32 SAL_CALL rtl_str_valueOfFloat( sal_Char * str, float f ) SAL_THROW_EXTERN_C();
-#define RTL_STR_MAX_VALUEOFFLOAT 15
-
-/** Create the string representation of a double.
-
- This function cannot be used for language-specific conversion.
-
- @param str
- a buffer that is big enough to hold the result and the terminating NUL
- character. You should use the RTL_STR_MAX_VALUEOFDOUBLE define to create
- a buffer that is big enough.
-
- @param d
- a double value.
-
- @return
- the length of the string.
- */
-sal_Int32 SAL_CALL rtl_str_valueOfDouble( sal_Char * str, double d ) SAL_THROW_EXTERN_C();
-#define RTL_STR_MAX_VALUEOFDOUBLE 25
-
-/** Interpret a string as a boolean.
-
- This function cannot be used for language-specific conversion. The string
- must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @return
- true if the string is "1" or "true" in any ASCII case, false otherwise.
- */
-sal_Bool SAL_CALL rtl_str_toBoolean( const sal_Char * str ) SAL_THROW_EXTERN_C();
-
-/** Interpret a string as an integer.
-
- This function cannot be used for language-specific conversion. The string
- must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @param radix
- the radix. Must be between RTL_STR_MIN_RADIX (2) and RTL_STR_MAX_RADIX
- (36), inclusive.
-
- @return
- the integer value represented by the string, or 0 if the string does not
- represent an integer.
- */
-sal_Int32 SAL_CALL rtl_str_toInt32( const sal_Char * str, sal_Int16 radix ) SAL_THROW_EXTERN_C();
-
-/** Interpret a string as a long integer.
-
- This function cannot be used for language-specific conversion. The string
- must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @param radix
- the radix. Must be between RTL_STR_MIN_RADIX (2) and RTL_STR_MAX_RADIX
- (36), inclusive.
-
- @return
- the long integer value represented by the string, or 0 if the string does
- not represent a long integer.
- */
-sal_Int64 SAL_CALL rtl_str_toInt64( const sal_Char * str, sal_Int16 radix ) SAL_THROW_EXTERN_C();
-
-/** Interpret a string as a float.
-
- This function cannot be used for language-specific conversion. The string
- must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @return
- the float value represented by the string, or 0.0 if the string does not
- represent a float.
- */
-float SAL_CALL rtl_str_toFloat( const sal_Char * str ) SAL_THROW_EXTERN_C();
-
-/** Interpret a string as a double.
-
- This function cannot be used for language-specific conversion. The string
- must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @return
- the float value represented by the string, or 0.0 if the string does not
- represent a double.
- */
-double SAL_CALL rtl_str_toDouble( const sal_Char * str ) SAL_THROW_EXTERN_C();
-
-/* ======================================================================= */
-
-#ifdef SAL_W32
-# pragma pack(push, 8)
-#endif
-
-/** The implementation of a byte string.
-
- @internal
- */
-typedef struct _rtl_String
-{
- oslInterlockedCount refCount; /* opaque */
- sal_Int32 length;
- sal_Char buffer[1];
-} rtl_String;
-
-#if defined(SAL_W32)
-#pragma pack(pop)
-#endif
-
-/* ----------------------------------------------------------------------- */
-
-/** Increment the reference count of a string.
-
- @param str
- a string.
- */
-void SAL_CALL rtl_string_acquire( rtl_String * str ) SAL_THROW_EXTERN_C();
-
-/** Decrement the reference count of a string.
-
- If the count goes to zero than the string data is deleted.
-
- @param str
- a string.
- */
-void SAL_CALL rtl_string_release( rtl_String * str ) SAL_THROW_EXTERN_C();
-
-/** Allocate a new string containing no characters.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
- */
-void SAL_CALL rtl_string_new( rtl_String ** newStr ) SAL_THROW_EXTERN_C();
-
-/** Allocate a new string containing space for a given number of characters.
-
- If len is greater than zero, the reference count of the new string will be
- 1. The values of all characters are set to 0 and the length of the string
- is 0. This function does not handle out-of-memory conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param len
- the number of characters.
- */
-void SAL_CALL rtl_string_new_WithLength( rtl_String ** newStr, sal_Int32 len ) SAL_THROW_EXTERN_C();
-
-/** Allocate a new string that contains a copy of another string.
-
- If the length of value is greater than zero, the reference count of the
- new string will be 1. This function does not handle out-of-memory
- conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param value
- a valid string.
- */
-void SAL_CALL rtl_string_newFromString( rtl_String ** newStr, const rtl_String * value ) SAL_THROW_EXTERN_C();
-
-/** Allocate a new string that contains a copy of a character array.
-
- If the length of value is greater than zero, the reference count of the
- new string will be 1. This function does not handle out-of-memory
- conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param value
- a null-terminated character array.
- */
-void SAL_CALL rtl_string_newFromStr( rtl_String ** newStr, const sal_Char * value ) SAL_THROW_EXTERN_C();
-
-/** Allocate a new string that contains a copy of a character array.
-
- If the length of value is greater than zero, the reference count of the
- new string will be 1. This function does not handle out-of-memory
- conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param value
- a character array. Need not be null-terminated, but must be at least as
- long as the specified len.
-
- @param len
- the length of the character array.
- */
-void SAL_CALL rtl_string_newFromStr_WithLength( rtl_String ** newStr, const sal_Char * value, sal_Int32 len ) SAL_THROW_EXTERN_C();
-
-/** Assign a new value to a string.
-
- First releases any value str might currently hold, then acquires
- rightValue.
-
- @param str
- pointer to the string. The pointed-to data must be null or a valid
- string.
-
- @param rightValue
- a valid string.
- */
-void SAL_CALL rtl_string_assign( rtl_String ** str, rtl_String * rightValue ) SAL_THROW_EXTERN_C();
-
-/** Return the length of a string.
-
- The length is equal to the number of characters in the string.
-
- @param str
- a valid string.
-
- @return
- the length of the string.
- */
-sal_Int32 SAL_CALL rtl_string_getLength( const rtl_String * str ) SAL_THROW_EXTERN_C();
-
-/** Return a pointer to the underlying character array of a string.
-
- @param str
- a valid string.
-
- @return
- a pointer to the null-terminated character array.
- */
-sal_Char * SAL_CALL rtl_string_getStr( rtl_String * str ) SAL_THROW_EXTERN_C();
-
-/** Create a new string that is the concatenation of two other strings.
-
- The new string does not necessarily have a reference count of 1 (in cases
- where one of the two other strings is empty), so it must not be modified
- without checking the reference count. This function does not handle
- out-of-memory conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param left
- a valid string.
-
- @param right
- a valid string.
- */
-void SAL_CALL rtl_string_newConcat( rtl_String ** newStr, rtl_String * left, rtl_String * right ) SAL_THROW_EXTERN_C();
-
-/** Create a new string by replacing a substring of another string.
-
- The new string results from replacing a number of characters (count),
- starting at the specified position (index) in the original string (str),
- with some new substring (subStr). If subStr is null, than only a number
- of characters is deleted.
-
- The new string does not necessarily have a reference count of 1, so it
- must not be modified without checking the reference count. This function
- does not handle out-of-memory conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param str
- a valid string.
-
- @param index
- the index into str at which to start replacement. Must be between 0 and
- the length of str, inclusive.
-
- @param count
- the number of charcters to remove. Must not be negative, and the sum of
- index and count must not exceed the length of str.
-
- @param subStr
- either null or a valid string to be inserted.
- */
-void SAL_CALL rtl_string_newReplaceStrAt( rtl_String ** newStr, rtl_String * str, sal_Int32 idx, sal_Int32 count, rtl_String * subStr ) SAL_THROW_EXTERN_C();
-
-/** Create a new string by replacing all occurrences of a single character
- within another string.
-
- The new string results from replacing all occurrences of oldChar in str
- with newChar.
-
- The new string does not necessarily have a reference count of 1 (in cases
- where oldChar does not occur in str), so it must not be modified without
- checking the reference count. This function does not handle out-of-memory
- conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param str
- a valid string.
-
- @param oldChar
- the old character.
-
- @param newChar
- the new character.
- */
-void SAL_CALL rtl_string_newReplace( rtl_String ** newStr, rtl_String * str, sal_Char oldChar, sal_Char newChar ) SAL_THROW_EXTERN_C();
-
-/** Create a new string by converting all ASCII uppercase letters to lowercase
- within another string.
-
- The new string results from replacing all characters with values between
- 65 and 90 (ASCII A--Z) by values between 97 and 122 (ASCII a--z).
-
- This function cannot be used for language-specific conversion. The new
- string does not necessarily have a reference count of 1 (in cases where
- no characters need to be converted), so it must not be modified without
- checking the reference count. This function does not handle out-of-memory
- conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param str
- a valid string.
- */
-void SAL_CALL rtl_string_newToAsciiLowerCase( rtl_String ** newStr, rtl_String * str ) SAL_THROW_EXTERN_C();
-
-/** Create a new string by converting all ASCII lowercase letters to uppercase
- within another string.
-
- The new string results from replacing all characters with values between
- 97 and 122 (ASCII a--z) by values between 65 and 90 (ASCII A--Z).
-
- This function cannot be used for language-specific conversion. The new
- string does not necessarily have a reference count of 1 (in cases where
- no characters need to be converted), so it must not be modified without
- checking the reference count. This function does not handle out-of-memory
- conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param str
- a valid string.
- */
-void SAL_CALL rtl_string_newToAsciiUpperCase( rtl_String ** newStr, rtl_String * str ) SAL_THROW_EXTERN_C();
-
-/** Create a new string by removing white space from both ends of another
- string.
-
- The new string results from removing all characters with values less than
- or equal to 32 (the space character) form both ends of str.
-
- This function cannot be used for language-specific conversion. The new
- string does not necessarily have a reference count of 1 (in cases where
- no characters need to be removed), so it must not be modified without
- checking the reference count. This function does not handle out-of-memory
- conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param str
- a valid string.
- */
-void SAL_CALL rtl_string_newTrim( rtl_String ** newStr, rtl_String * str ) SAL_THROW_EXTERN_C();
-
-/** Create a new string by extracting a single token from another string.
-
- Starting at index, the token's next token is searched for. If there is no
- such token, the result is an empty string. Otherwise, all characters from
- the start of that token and up to, but not including the next occurrence
- of cTok make up the resulting token. The return value is the position of
- the next token, or -1 if no more tokens follow.
-
- Example code could look like
- rtl_String * pToken = NULL;
- sal_Int32 nIndex = 0;
- do
- {
- ...
- nIndex = rtl_string_getToken(&pToken, pStr, 0, ';', nIndex);
- ...
- }
- while (nIndex >= 0);
-
- The new string does not necessarily have a reference count of 1, so it
- must not be modified without checking the reference count. This function
- does not handle out-of-memory conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string. If either token or index is negative, an empty token is stored in
- newStr (and -1 is returned).
-
- @param str
- a valid string.
-
- @param token
- the number of the token to return, starting at index.
-
- @param cTok
- the character that seperates the tokens.
-
- @param index
- the position at which searching for the token starts. Must not be greater
- than the length of str.
-
- @return
- the index of the next token, or -1 if no more tokens follow.
- */
-sal_Int32 SAL_CALL rtl_string_getToken( rtl_String ** newStr , rtl_String * str, sal_Int32 token, sal_Char cTok, sal_Int32 idx ) SAL_THROW_EXTERN_C();
-
-/* ======================================================================= */
-
-/** Supply an ASCII string literal together with its length.
-
- This macro can be used to compute (some of) the arguments in function calls
- like rtl::OString(RTL_CONSTASCII_STRINGPARAM("foo")) or
- rtl::OUString::equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("foo")).
-
- @param constAsciiStr
- must be an expression of type "(possibly cv-qualified reference to) array of
- (possibly cv-qualified) char." Each element of the referenced array must
- represent an ASCII value in the range 0x00--0x7F. The last element of the
- referenced array is not considered part of the represented ASCII string, and
- its value should be 0x00. Depending on where this macro is used, the nature
- of the supplied expression might be further restricted.
-*/
-#define RTL_CONSTASCII_STRINGPARAM( constAsciiStr ) constAsciiStr, ((sal_Int32)SAL_N_ELEMENTS(constAsciiStr)-1)
-
-/** Supply the length of an ASCII string literal.
-
- This macro can be used to compute arguments in function calls like
- rtl::OUString::match(other, RTL_CONSTASCII_LENGTH("prefix")).
-
- @param constAsciiStr
- must be an expression of type "(possibly cv-qualified reference to) array of
- (possibly cv-qualified) char." Each element of the referenced array must
- represent an ASCII value in the range 0x00--0x7F. The last element of the
- referenced array is not considered part of the represented ASCII string, and
- its value should be 0x00. Depending on where this macro is used, the nature
- of the supplied expression might be further restricted.
-*/
-#define RTL_CONSTASCII_LENGTH( constAsciiStr ) ((sal_Int32)(SAL_N_ELEMENTS(constAsciiStr)-1))
-
-/* ======================================================================= */
-
-/* predefined constants for String-Conversion */
-#define OUSTRING_TO_OSTRING_CVTFLAGS (RTL_UNICODETOTEXT_FLAGS_UNDEFINED_DEFAULT |\
- RTL_UNICODETOTEXT_FLAGS_INVALID_DEFAULT |\
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACE |\
- RTL_UNICODETOTEXT_FLAGS_PRIVATE_MAPTO0 |\
- RTL_UNICODETOTEXT_FLAGS_NOCOMPOSITE)
-
-/* ----------------------------------------------------------------------- */
-
-/** Create a new byte string by converting a Unicode string, using a specific
- text encoding.
-
- The lengths of the byte string and the Unicode string may differ (e.g.,
- for double-byte encodings, UTF-7, UTF-8).
-
- If the length of the Unicode string is greater than zero, the reference
- count of the new string will be 1.
-
- If an out-of-memory condition occurs, newStr will point to a null pointer
- upon return.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param str
- a Unicode character array. Need not be null-terminated, but must be at
- least as long as the specified len.
-
- @param len
- the length of the Unicode character array.
-
- @param encoding
- the text encoding to use for conversion.
-
- @param convertFlags
- flags which control the conversion. Either use
- OUSTRING_TO_OSTRING_CVTFLAGS, or see
- <http://udk.openoffice.org/cpp/man/spec/textconversion.html> for more
- details.
- */
-void SAL_CALL rtl_uString2String( rtl_String ** newStr, const sal_Unicode * str, sal_Int32 len, rtl_TextEncoding encoding, sal_uInt32 convertFlags ) SAL_THROW_EXTERN_C();
-
-/**
- Converts a Unicode string to a byte string, signalling failure.
-
- @param pTarget
- An out parameter receiving the converted string. Must not be null itself, and
- must contain either null or a pointer to a valid rtl_String; the contents are
- not modified if conversion fails (rtl_convertUStringToString returns false).
-
- @param pSource
- The Unicode string. May only be null if nLength is zero.
-
- @param nLength
- The length of the Unicode string. Must be non-negative.
-
- @param nEncoding
- The text encoding to convert into. Must be an octet encoding (i.e.,
- rtl_isOctetTextEncoding(nEncoding) must return true).
-
- @param nFlags
- A combination of RTL_UNICODETOTEXT_FLAGS that detail how to do the conversion
- (see rtl_convertUnicodeToText). RTL_UNICODETOTEXT_FLAGS_FLUSH need not be
- included, it is implicitly assumed. Typical uses are either
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR |
- RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR (fail if a Unicode character cannot be
- converted to the target nEncoding) or OUSTRING_TO_OSTRING_CVTFLAGS (make a
- best efforts conversion).
-
- @return
- True if the conversion succeeded, false otherwise.
- */
-sal_Bool SAL_CALL rtl_convertUStringToString(rtl_String ** pTarget,
- sal_Unicode const * pSource,
- sal_Int32 nLength,
- rtl_TextEncoding nEncoding,
- sal_uInt32 nFlags)
- SAL_THROW_EXTERN_C();
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RTL_STRING_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/string.hxx b/sal/inc/rtl/string.hxx
deleted file mode 100644
index ba66e0958..000000000
--- a/sal/inc/rtl/string.hxx
+++ /dev/null
@@ -1,982 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_STRING_HXX_
-#define _RTL_STRING_HXX_
-
-#ifdef __cplusplus
-
-#include <osl/diagnose.h>
-#include <rtl/memory.h>
-#include <rtl/textenc.h>
-#include <rtl/string.h>
-
-#if !defined EXCEPTIONS_OFF
-#include <new>
-#endif
-
-namespace rtl
-{
-
-/* ======================================================================= */
-
-/**
- This String class provide base functionality for C++ like 8-Bit
- character array handling. The advantage of this class is, that it
- handle all the memory managament for you - and it do it
- more efficient. If you assign a string to another string, the
- data of both strings are shared (without any copy operation or
- memory allocation) as long as you do not change the string. This class
- stores also the length of the string, so that many operations are
- faster as the C-str-functions.
-
- This class provide only readonly string handling. So you could create
- a string and you could only query the content from this string.
- It provide also functionality to change the string, but this results
- in every case in a new string instance (in the most cases with an
- memory allocation). You don't have functionality to change the
- content of the string. If you want change the string content, than
- you should us the OStringBuffer class, which provide these
- functionality and avoid to much memory allocation.
-
- The design of this class is similar to the string classes in Java
- and so more people should have fewer understanding problems when they
- use this class.
-*/
-
-class OString
-{
-public:
- /** @internal */
- rtl_String * pData;
-
-private:
- /** @internal */
- class DO_NOT_ACQUIRE;
-
- /** @internal */
- OString( rtl_String * value, DO_NOT_ACQUIRE * )
- {
- pData = value;
- }
-
-public:
- /**
- New string containing no characters.
- */
- OString() SAL_THROW(())
- {
- pData = 0;
- rtl_string_new( &pData );
- }
-
- /**
- New string from OString.
-
- @param str a OString.
- */
- OString( const OString & str ) SAL_THROW(())
- {
- pData = str.pData;
- rtl_string_acquire( pData );
- }
-
- /**
- New string from OString data.
-
- @param str a OString data.
- */
- OString( rtl_String * str ) SAL_THROW(())
- {
- pData = str;
- rtl_string_acquire( pData );
- }
-
- /**
- New string from a single character.
-
- @param value a character.
- */
- explicit OString( sal_Char value ) SAL_THROW(())
- : pData (0)
- {
- rtl_string_newFromStr_WithLength( &pData, &value, 1 );
- }
-
- /**
- New string from a character buffer array.
-
- @param value a NULL-terminated character array.
- */
- OString( const sal_Char * value ) SAL_THROW(())
- {
- pData = 0;
- rtl_string_newFromStr( &pData, value );
- }
-
- /**
- New string from a character buffer array.
-
- @param value a character array.
- @param length the number of character which should be copied.
- The character array length must be greater or
- equal than this value.
- */
- OString( const sal_Char * value, sal_Int32 length ) SAL_THROW(())
- {
- pData = 0;
- rtl_string_newFromStr_WithLength( &pData, value, length );
- }
-
- /**
- New string from a Unicode character buffer array.
-
- @param value a Unicode character array.
- @param length the number of character which should be converted.
- The Unicode character array length must be
- greater or equal than this value.
- @param encoding the text encoding in which the Unicode character
- sequence should be converted.
- @param convertFlags flags which controls the conversion.
- see RTL_UNICODETOTEXT_FLAGS_...
-
- @exception std::bad_alloc is thrown if an out-of-memory condition occurs
- */
- OString( const sal_Unicode * value, sal_Int32 length,
- rtl_TextEncoding encoding,
- sal_uInt32 convertFlags = OUSTRING_TO_OSTRING_CVTFLAGS )
- {
- pData = 0;
- rtl_uString2String( &pData, value, length, encoding, convertFlags );
-#if defined EXCEPTIONS_OFF
- OSL_ASSERT(pData != NULL);
-#else
- if (pData == 0) {
- throw std::bad_alloc();
- }
-#endif
- }
-
- /**
- Release the string data.
- */
- ~OString() SAL_THROW(())
- {
- rtl_string_release( pData );
- }
-
- /**
- Assign a new string.
-
- @param str a OString.
- */
- OString & operator=( const OString & str ) SAL_THROW(())
- {
- rtl_string_assign( &pData, str.pData );
- return *this;
- }
-
- /**
- Append a string to this string.
-
- @param str a OString.
- */
- OString & operator+=( const OString & str ) SAL_THROW(())
- {
- rtl_string_newConcat( &pData, pData, str.pData );
- return *this;
- }
-
- /**
- Returns the length of this string.
-
- The length is equal to the number of characters in this string.
-
- @return the length of the sequence of characters represented by this
- object.
- */
- sal_Int32 getLength() const SAL_THROW(()) { return pData->length; }
-
- /**
- Checks if a string is empty.
-
- @return sal_True if the string is empty;
- sal_False, otherwise.
-
- @since LibreOffice 3.4
- */
- sal_Bool isEmpty() const SAL_THROW(())
- {
- if ( pData->length )
- return sal_False;
- else
- return sal_True;
- }
-
- /**
- Returns a pointer to the characters of this string.
-
- <p>The returned pointer is not guaranteed to point to a null-terminated
- byte string. Note that this string object may contain embedded null
- characters, which will thus also be embedded in the returned byte
- string.</p>
-
- @return a pointer to a (not necessarily null-terminated) byte string
- representing the characters of this string object.
- */
- operator const sal_Char *() const SAL_THROW(()) { return pData->buffer; }
-
- /**
- Returns a pointer to the characters of this string.
-
- <p>The returned pointer is guaranteed to point to a null-terminated byte
- string. But note that this string object may contain embedded null
- characters, which will thus also be embedded in the returned
- null-terminated byte string.</p>
-
- @return a pointer to a null-terminated byte string representing the
- characters of this string object.
- */
- const sal_Char * getStr() const SAL_THROW(()) { return pData->buffer; }
-
- /**
- Compares two strings.
-
- The comparison is based on the numeric value of each character in
- the strings and return a value indicating their relationship.
- This function can't be used for language specific sorting.
-
- @param str the object to be compared.
- @return 0 - if both strings are equal
- < 0 - if this string is less than the string argument
- > 0 - if this string is greater than the string argument
- */
- sal_Int32 compareTo( const OString & str ) const SAL_THROW(())
- {
- return rtl_str_compare_WithLength( pData->buffer, pData->length,
- str.pData->buffer, str.pData->length );
- }
-
- /**
- Compares two strings with an maximum count of characters.
-
- The comparison is based on the numeric value of each character in
- the strings and return a value indicating their relationship.
- This function can't be used for language specific sorting.
-
- @param str the object to be compared.
- @param maxLength the maximum count of characters to be compared.
- @return 0 - if both strings are equal
- < 0 - if this string is less than the string argument
- > 0 - if this string is greater than the string argument
- */
- sal_Int32 compareTo( const OString & rObj, sal_Int32 maxLength ) const SAL_THROW(())
- {
- return rtl_str_shortenedCompare_WithLength( pData->buffer, pData->length,
- rObj.pData->buffer, rObj.pData->length, maxLength );
- }
-
- /**
- Compares two strings in reverse order.
-
- The comparison is based on the numeric value of each character in
- the strings and return a value indicating their relationship.
- This function can't be used for language specific sorting.
-
- @param str the object to be compared.
- @return 0 - if both strings are equal
- < 0 - if this string is less than the string argument
- > 0 - if this string is greater than the string argument
- */
- sal_Int32 reverseCompareTo( const OString & str ) const SAL_THROW(())
- {
- return rtl_str_reverseCompare_WithLength( pData->buffer, pData->length,
- str.pData->buffer, str.pData->length );
- }
-
- /**
- Perform a comparison of two strings.
-
- The result is true if and only if second string
- represents the same sequence of characters as the first string.
- This function can't be used for language specific comparison.
-
- @param str the object to be compared.
- @return sal_True if the strings are equal;
- sal_False, otherwise.
- */
- sal_Bool equals( const OString & str ) const SAL_THROW(())
- {
- if ( pData->length != str.pData->length )
- return sal_False;
- if ( pData == str.pData )
- return sal_True;
- return rtl_str_reverseCompare_WithLength( pData->buffer, pData->length,
- str.pData->buffer, str.pData->length ) == 0;
- }
-
- /**
- Perform a comparison of two strings.
-
- The result is true if and only if second string
- represents the same sequence of characters as the first string.
- The ASCII string must be NULL-terminated and must be greater or
- equal as length.
- This function can't be used for language specific comparison.
-
-
- @param value a character array.
- @param length the length of the character array.
- @return sal_True if the strings are equal;
- sal_False, otherwise.
- */
- sal_Bool equalsL( const sal_Char* value, sal_Int32 length ) const SAL_THROW(())
- {
- if ( pData->length != length )
- return sal_False;
-
- return rtl_str_reverseCompare_WithLength( pData->buffer, pData->length,
- value, length ) == 0;
- }
-
- /**
- Perform a ASCII lowercase comparison of two strings.
-
- The result is true if and only if second string
- represents the same sequence of characters as the first string,
- ignoring the case.
- Character values between 65 and 90 (ASCII A-Z) are interpreted as
- values between 97 and 122 (ASCII a-z).
- This function can't be used for language specific comparison.
-
- @param str the object to be compared.
- @return sal_True if the strings are equal;
- sal_False, otherwise.
- */
- sal_Bool equalsIgnoreAsciiCase( const OString & str ) const SAL_THROW(())
- {
- if ( pData->length != str.pData->length )
- return sal_False;
- if ( pData == str.pData )
- return sal_True;
- return rtl_str_compareIgnoreAsciiCase_WithLength( pData->buffer, pData->length,
- str.pData->buffer, str.pData->length ) == 0;
- }
-
- /**
- Match against a substring appearing in this string.
-
- The result is true if and only if the second string appears as a substring
- of this string, at the given position.
- This function can't be used for language specific comparison.
-
- @param str the object (substring) to be compared.
- @param fromIndex the index to start the comparion from.
- The index must be greater or equal than 0
- and less or equal as the string length.
- @return sal_True if str match with the characters in the string
- at the given position;
- sal_False, otherwise.
- */
- sal_Bool match( const OString & str, sal_Int32 fromIndex = 0 ) const SAL_THROW(())
- {
- return rtl_str_shortenedCompare_WithLength( pData->buffer+fromIndex, pData->length-fromIndex,
- str.pData->buffer, str.pData->length, str.pData->length ) == 0;
- }
-
- /**
- Match against a substring appearing in this string, ignoring the case of
- ASCII letters.
-
- The result is true if and only if the second string appears as a substring
- of this string, at the given position.
- Character values between 65 and 90 (ASCII A-Z) are interpreted as
- values between 97 and 122 (ASCII a-z).
- This function can't be used for language specific comparison.
-
- @param str the object (substring) to be compared.
- @param fromIndex the index to start the comparion from.
- The index must be greater or equal than 0
- and less or equal as the string length.
- @return sal_True if str match with the characters in the string
- at the given position;
- sal_False, otherwise.
- */
- sal_Bool matchIgnoreAsciiCase( const OString & str, sal_Int32 fromIndex = 0 ) const SAL_THROW(())
- {
- return rtl_str_shortenedCompareIgnoreAsciiCase_WithLength( pData->buffer+fromIndex, pData->length-fromIndex,
- str.pData->buffer, str.pData->length,
- str.pData->length ) == 0;
- }
-
- friend sal_Bool operator == ( const OString& rStr1, const OString& rStr2 ) SAL_THROW(())
- { return rStr1.getLength() == rStr2.getLength() && rStr1.compareTo( rStr2 ) == 0; }
- friend sal_Bool operator == ( const OString& rStr1, const sal_Char * pStr2 ) SAL_THROW(())
- { return rStr1.compareTo( pStr2 ) == 0; }
- friend sal_Bool operator == ( const sal_Char * pStr1, const OString& rStr2 ) SAL_THROW(())
- { return OString( pStr1 ).compareTo( rStr2 ) == 0; }
-
- friend sal_Bool operator != ( const OString& rStr1, const OString& rStr2 ) SAL_THROW(())
- { return !(operator == ( rStr1, rStr2 )); }
- friend sal_Bool operator != ( const OString& rStr1, const sal_Char * pStr2 ) SAL_THROW(())
- { return !(operator == ( rStr1, pStr2 )); }
- friend sal_Bool operator != ( const sal_Char * pStr1, const OString& rStr2 ) SAL_THROW(())
- { return !(operator == ( pStr1, rStr2 )); }
-
- friend sal_Bool operator < ( const OString& rStr1, const OString& rStr2 ) SAL_THROW(())
- { return rStr1.compareTo( rStr2 ) < 0; }
- friend sal_Bool operator > ( const OString& rStr1, const OString& rStr2 ) SAL_THROW(())
- { return rStr1.compareTo( rStr2 ) > 0; }
- friend sal_Bool operator <= ( const OString& rStr1, const OString& rStr2 ) SAL_THROW(())
- { return rStr1.compareTo( rStr2 ) <= 0; }
- friend sal_Bool operator >= ( const OString& rStr1, const OString& rStr2 ) SAL_THROW(())
- { return rStr1.compareTo( rStr2 ) >= 0; }
-
- /**
- Returns a hashcode for this string.
-
- @return a hash code value for this object.
-
- @see rtl::OStringHash for convenient use of boost::unordered_map
- */
- sal_Int32 hashCode() const SAL_THROW(())
- {
- return rtl_str_hashCode_WithLength( pData->buffer, pData->length );
- }
-
- /**
- Returns the index within this string of the first occurrence of the
- specified character, starting the search at the specified index.
-
- @param ch character to be located.
- @param fromIndex the index to start the search from.
- The index must be greater or equal than 0
- and less or equal as the string length.
- @return the index of the first occurrence of the character in the
- character sequence represented by this string that is
- greater than or equal to fromIndex, or
- -1 if the character does not occur.
- */
- sal_Int32 indexOf( sal_Char ch, sal_Int32 fromIndex = 0 ) const SAL_THROW(())
- {
- sal_Int32 ret = rtl_str_indexOfChar_WithLength( pData->buffer+fromIndex, pData->length-fromIndex, ch );
- return (ret < 0 ? ret : ret+fromIndex);
- }
-
- /**
- Returns the index within this string of the last occurrence of the
- specified character, searching backward starting at the end.
-
- @param ch character to be located.
- @return the index of the last occurrence of the character in the
- character sequence represented by this string, or
- -1 if the character does not occur.
- */
- sal_Int32 lastIndexOf( sal_Char ch ) const SAL_THROW(())
- {
- return rtl_str_lastIndexOfChar_WithLength( pData->buffer, pData->length, ch );
- }
-
- /**
- Returns the index within this string of the last occurrence of the
- specified character, searching backward starting before the specified
- index.
-
- @param ch character to be located.
- @param fromIndex the index before which to start the search.
- @return the index of the last occurrence of the character in the
- character sequence represented by this string that
- is less than fromIndex, or -1
- if the character does not occur before that point.
- */
- sal_Int32 lastIndexOf( sal_Char ch, sal_Int32 fromIndex ) const SAL_THROW(())
- {
- return rtl_str_lastIndexOfChar_WithLength( pData->buffer, fromIndex, ch );
- }
-
- /**
- Returns the index within this string of the first occurrence of the
- specified substring, starting at the specified index.
-
- If str doesn't include any character, always -1 is
- returned. This is also the case, if both strings are empty.
-
- @param str the substring to search for.
- @param fromIndex the index to start the search from.
- @return If the string argument occurs one or more times as a substring
- within this string at the starting index, then the index
- of the first character of the first such substring is
- returned. If it does not occur as a substring starting
- at fromIndex or beyond, -1 is returned.
- */
- sal_Int32 indexOf( const OString & str, sal_Int32 fromIndex = 0 ) const SAL_THROW(())
- {
- sal_Int32 ret = rtl_str_indexOfStr_WithLength( pData->buffer+fromIndex, pData->length-fromIndex,
- str.pData->buffer, str.pData->length );
- return (ret < 0 ? ret : ret+fromIndex);
- }
-
- /**
- Returns the index within this string of the last occurrence of
- the specified substring, searching backward starting at the end.
-
- The returned index indicates the starting index of the substring
- in this string.
- If str doesn't include any character, always -1 is
- returned. This is also the case, if both strings are empty.
-
- @param str the substring to search for.
- @return If the string argument occurs one or more times as a substring
- within this string, then the index of the first character of
- the last such substring is returned. If it does not occur as
- a substring, -1 is returned.
- */
- sal_Int32 lastIndexOf( const OString & str ) const SAL_THROW(())
- {
- return rtl_str_lastIndexOfStr_WithLength( pData->buffer, pData->length,
- str.pData->buffer, str.pData->length );
- }
-
- /**
- Returns the index within this string of the last occurrence of
- the specified substring, searching backward starting before the specified
- index.
-
- The returned index indicates the starting index of the substring
- in this string.
- If str doesn't include any character, always -1 is
- returned. This is also the case, if both strings are empty.
-
- @param str the substring to search for.
- @param fromIndex the index before which to start the search.
- @return If the string argument occurs one or more times as a substring
- within this string before the starting index, then the index
- of the first character of the last such substring is
- returned. Otherwise, -1 is returned.
- */
- sal_Int32 lastIndexOf( const OString & str, sal_Int32 fromIndex ) const SAL_THROW(())
- {
- return rtl_str_lastIndexOfStr_WithLength( pData->buffer, fromIndex,
- str.pData->buffer, str.pData->length );
- }
-
- /**
- Returns a new string that is a substring of this string.
-
- The substring begins at the specified beginIndex. It is an error for
- beginIndex to be negative or to be greater than the length of this string.
-
- @param beginIndex the beginning index, inclusive.
- @return the specified substring.
- */
- OString copy( sal_Int32 beginIndex ) const SAL_THROW(())
- {
- OSL_ASSERT(beginIndex >= 0 && beginIndex <= getLength());
- if ( beginIndex == 0 )
- return *this;
- else
- {
- rtl_String* pNew = 0;
- rtl_string_newFromStr_WithLength( &pNew, pData->buffer+beginIndex, getLength()-beginIndex );
- return OString( pNew, (DO_NOT_ACQUIRE*)0 );
- }
- }
-
- /**
- Returns a new string that is a substring of this string.
-
- The substring begins at the specified beginIndex and contains count
- characters. It is an error for either beginIndex or count to be negative,
- or for beginIndex + count to be greater than the length of this string.
-
- @param beginIndex the beginning index, inclusive.
- @param count the number of characters.
- @return the specified substring.
- */
- OString copy( sal_Int32 beginIndex, sal_Int32 count ) const SAL_THROW(())
- {
- OSL_ASSERT(beginIndex >= 0 && beginIndex <= getLength()
- && count >= 0 && count <= getLength() - beginIndex);
- if ( (beginIndex == 0) && (count == getLength()) )
- return *this;
- else
- {
- rtl_String* pNew = 0;
- rtl_string_newFromStr_WithLength( &pNew, pData->buffer+beginIndex, count );
- return OString( pNew, (DO_NOT_ACQUIRE*)0 );
- }
- }
-
- /**
- Concatenates the specified string to the end of this string.
-
- @param str the string that is concatenated to the end
- of this string.
- @return a string that represents the concatenation of this string
- followed by the string argument.
- */
- OString concat( const OString & str ) const SAL_THROW(())
- {
- rtl_String* pNew = 0;
- rtl_string_newConcat( &pNew, pData, str.pData );
- return OString( pNew, (DO_NOT_ACQUIRE*)0 );
- }
-
- friend OString operator+( const OString & str1, const OString & str2 ) SAL_THROW(())
- {
- return str1.concat( str2 );
- }
-
- /**
- Returns a new string resulting from replacing n = count characters
- from position index in this string with newStr.
-
- @param index the replacing index in str.
- The index must be greater or equal as 0 and
- less or equal as the length of the string.
- @param count the count of charcters that will replaced
- The count must be greater or equal as 0 and
- less or equal as the length of the string minus index.
- @param newStr the new substring.
- @return the new string.
- */
- OString replaceAt( sal_Int32 index, sal_Int32 count, const OString& newStr ) const SAL_THROW(())
- {
- rtl_String* pNew = 0;
- rtl_string_newReplaceStrAt( &pNew, pData, index, count, newStr.pData );
- return OString( pNew, (DO_NOT_ACQUIRE*)0 );
- }
-
- /**
- Returns a new string resulting from replacing all occurrences of
- oldChar in this string with newChar.
-
- If the character oldChar does not occur in the character sequence
- represented by this object, then the string is assigned with
- str.
-
- @param oldChar the old character.
- @param newChar the new character.
- @return a string derived from this string by replacing every
- occurrence of oldChar with newChar.
- */
- OString replace( sal_Char oldChar, sal_Char newChar ) const SAL_THROW(())
- {
- rtl_String* pNew = 0;
- rtl_string_newReplace( &pNew, pData, oldChar, newChar );
- return OString( pNew, (DO_NOT_ACQUIRE*)0 );
- }
-
- /**
- Converts from this string all ASCII uppercase characters (65-90)
- to ASCII lowercase characters (97-122).
-
- This function can't be used for language specific conversion.
- If the string doesn't contain characters which must be converted,
- then the new string is assigned with str.
-
- @return the string, converted to ASCII lowercase.
- */
- OString toAsciiLowerCase() const SAL_THROW(())
- {
- rtl_String* pNew = 0;
- rtl_string_newToAsciiLowerCase( &pNew, pData );
- return OString( pNew, (DO_NOT_ACQUIRE*)0 );
- }
-
- /**
- Converts from this string all ASCII lowercase characters (97-122)
- to ASCII uppercase characters (65-90).
-
- This function can't be used for language specific conversion.
- If the string doesn't contain characters which must be converted,
- then the new string is assigned with str.
-
- @return the string, converted to ASCII uppercase.
- */
- OString toAsciiUpperCase() const SAL_THROW(())
- {
- rtl_String* pNew = 0;
- rtl_string_newToAsciiUpperCase( &pNew, pData );
- return OString( pNew, (DO_NOT_ACQUIRE*)0 );
- }
-
- /**
- Returns a new string resulting from removing white space from both ends
- of the string.
-
- All characters that have codes less than or equal to
- 32 (the space character) are considered to be white space.
- If the string doesn't contain white spaces at both ends,
- then the new string is assigned with str.
-
- @return the string, with white space removed from the front and end.
- */
- OString trim() const SAL_THROW(())
- {
- rtl_String* pNew = 0;
- rtl_string_newTrim( &pNew, pData );
- return OString( pNew, (DO_NOT_ACQUIRE*)0 );
- }
-
- /**
- Returns a token in the string.
-
- Example:
- sal_Int32 nIndex = 0;
- do
- {
- ...
- OString aToken = aStr.getToken( 0, ';', nIndex );
- ...
- }
- while ( nIndex >= 0 );
-
- @param token the number of the token to return.
- @param cTok the character which seperate the tokens.
- @param index the position at which the token is searched in the
- string.
- The index must not be greater thanthe length of the
- string.
- This param is set to the position of the
- next token or to -1, if it is the last token.
- @return the token; if either token or index is negative, an empty token
- is returned (and index is set to -1)
- */
- OString getToken( sal_Int32 token, sal_Char cTok, sal_Int32& index ) const SAL_THROW(())
- {
- rtl_String * pNew = 0;
- index = rtl_string_getToken( &pNew, pData, token, cTok, index );
- return OString( pNew, (DO_NOT_ACQUIRE *)0 );
- }
-
- /**
- Returns the Boolean value from this string.
-
- This function can't be used for language specific conversion.
-
- @return sal_True, if the string is 1 or "True" in any ASCII case.
- sal_False in any other case.
- */
- sal_Bool toBoolean() const SAL_THROW(())
- {
- return rtl_str_toBoolean( pData->buffer );
- }
-
- /**
- Returns the first character from this string.
-
- @return the first character from this string or 0, if this string
- is emptry.
- */
- sal_Char toChar() const SAL_THROW(())
- {
- return pData->buffer[0];
- }
-
- /**
- Returns the int32 value from this string.
-
- This function can't be used for language specific conversion.
-
- @param radix the radix (between 2 and 36)
- @return the int32 represented from this string.
- 0 if this string represents no number.
- */
- sal_Int32 toInt32( sal_Int16 radix = 10 ) const SAL_THROW(())
- {
- return rtl_str_toInt32( pData->buffer, radix );
- }
-
- /**
- Returns the int64 value from this string.
-
- This function can't be used for language specific conversion.
-
- @param radix the radix (between 2 and 36)
- @return the int64 represented from this string.
- 0 if this string represents no number.
- */
- sal_Int64 toInt64( sal_Int16 radix = 10 ) const SAL_THROW(())
- {
- return rtl_str_toInt64( pData->buffer, radix );
- }
-
- /**
- Returns the float value from this string.
-
- This function can't be used for language specific conversion.
-
- @return the float represented from this string.
- 0.0 if this string represents no number.
- */
- float toFloat() const SAL_THROW(())
- {
- return rtl_str_toFloat( pData->buffer );
- }
-
- /**
- Returns the double value from this string.
-
- This function can't be used for language specific conversion.
-
- @return the double represented from this string.
- 0.0 if this string represents no number.
- */
- double toDouble() const SAL_THROW(())
- {
- return rtl_str_toDouble( pData->buffer );
- }
-
- /**
- Returns the string representation of the sal_Bool argument.
-
- If the sal_Bool is true, the string "true" is returned.
- If the sal_Bool is false, the string "false" is returned.
- This function can't be used for language specific conversion.
-
- @param b a sal_Bool.
- @return a string with the string representation of the argument.
- */
- static OString valueOf( sal_Bool b ) SAL_THROW(())
- {
- sal_Char aBuf[RTL_STR_MAX_VALUEOFBOOLEAN];
- rtl_String* pNewData = 0;
- rtl_string_newFromStr_WithLength( &pNewData, aBuf, rtl_str_valueOfBoolean( aBuf, b ) );
- return OString( pNewData, (DO_NOT_ACQUIRE*)0 );
- }
-
- /**
- Returns the string representation of the char argument.
-
- @param c a character.
- @return a string with the string representation of the argument.
- */
- static OString valueOf( sal_Char c ) SAL_THROW(())
- {
- return OString( &c, 1 );
- }
-
- /**
- Returns the string representation of the int argument.
-
- This function can't be used for language specific conversion.
-
- @param i a int32.
- @param radix the radix (between 2 and 36)
- @return a string with the string representation of the argument.
- */
- static OString valueOf( sal_Int32 i, sal_Int16 radix = 10 ) SAL_THROW(())
- {
- sal_Char aBuf[RTL_STR_MAX_VALUEOFINT32];
- rtl_String* pNewData = 0;
- rtl_string_newFromStr_WithLength( &pNewData, aBuf, rtl_str_valueOfInt32( aBuf, i, radix ) );
- return OString( pNewData, (DO_NOT_ACQUIRE*)0 );
- }
-
- /**
- Returns the string representation of the long argument.
-
- This function can't be used for language specific conversion.
-
- @param ll a int64.
- @param radix the radix (between 2 and 36)
- @return a string with the string representation of the argument.
- */
- static OString valueOf( sal_Int64 ll, sal_Int16 radix = 10 ) SAL_THROW(())
- {
- sal_Char aBuf[RTL_STR_MAX_VALUEOFINT64];
- rtl_String* pNewData = 0;
- rtl_string_newFromStr_WithLength( &pNewData, aBuf, rtl_str_valueOfInt64( aBuf, ll, radix ) );
- return OString( pNewData, (DO_NOT_ACQUIRE*)0 );
- }
-
- /**
- Returns the string representation of the float argument.
-
- This function can't be used for language specific conversion.
-
- @param f a float.
- @return a string with the string representation of the argument.
- */
- static OString valueOf( float f ) SAL_THROW(())
- {
- sal_Char aBuf[RTL_STR_MAX_VALUEOFFLOAT];
- rtl_String* pNewData = 0;
- rtl_string_newFromStr_WithLength( &pNewData, aBuf, rtl_str_valueOfFloat( aBuf, f ) );
- return OString( pNewData, (DO_NOT_ACQUIRE*)0 );
- }
-
- /**
- Returns the string representation of the double argument.
-
- This function can't be used for language specific conversion.
-
- @param d a double.
- @return a string with the string representation of the argument.
- */
- static OString valueOf( double d ) SAL_THROW(())
- {
- sal_Char aBuf[RTL_STR_MAX_VALUEOFDOUBLE];
- rtl_String* pNewData = 0;
- rtl_string_newFromStr_WithLength( &pNewData, aBuf, rtl_str_valueOfDouble( aBuf, d ) );
- return OString( pNewData, (DO_NOT_ACQUIRE*)0 );
- }
-};
-
-/* ======================================================================= */
-
-/** A helper to use OStrings with hash maps.
-
- Instances of this class are unary function objects that can be used as
- hash function arguments to boost::unordered_map and similar constructs.
- */
-struct OStringHash
-{
- /** Compute a hash code for a string.
-
- @param rString
- a string.
-
- @return
- a hash code for the string. This hash code should not be stored
- persistently, as its computation may change in later revisions.
- */
- size_t operator()( const rtl::OString& rString ) const
- { return (size_t)rString.hashCode(); }
-};
-
-/* ======================================================================= */
-
-} /* Namespace */
-
-#endif /* __cplusplus */
-
-#endif /* _RTL_STRING_HXX_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/tencinfo.h b/sal/inc/rtl/tencinfo.h
deleted file mode 100644
index 072708e84..000000000
--- a/sal/inc/rtl/tencinfo.h
+++ /dev/null
@@ -1,279 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_TENCINFO_H
-#define _RTL_TENCINFO_H
-
-#ifndef _SAL_TYPES_H
-#include <sal/types.h>
-#endif
-#include <rtl/textenc.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// See rtl_TextEncodingInfo.Flags below for documentation on these values:
-#define RTL_TEXTENCODING_INFO_CONTEXT ((sal_uInt32)0x00000001)
-#define RTL_TEXTENCODING_INFO_ASCII ((sal_uInt32)0x00000002)
-#define RTL_TEXTENCODING_INFO_UNICODE ((sal_uInt32)0x00000004)
-#define RTL_TEXTENCODING_INFO_MULTIBYTE ((sal_uInt32)0x00000008)
-#define RTL_TEXTENCODING_INFO_R2L ((sal_uInt32)0x00000010)
-#define RTL_TEXTENCODING_INFO_7BIT ((sal_uInt32)0x00000020)
-#define RTL_TEXTENCODING_INFO_SYMBOL ((sal_uInt32)0x00000040)
-#define RTL_TEXTENCODING_INFO_MIME ((sal_uInt32)0x00000080)
-
-/** Information about a text encoding.
- */
-typedef struct _rtl_TextEncodingInfo
-{
- /** The size (in bytes) of this structure. Should be 12.
- */
- sal_uInt32 StructSize;
-
- /** The minimum number of bytes needed to encode any character in the
- given encoding.
-
- Can be rather meaningless for encodings that encode global state along
- with the characters (e.g., ISO-2022 encodings).
- */
- sal_uInt8 MinimumCharSize;
-
- /** The maximum number of bytes needed to encode any character in the
- given encoding.
-
- Can be rather meaningless for encodings that encode global state along
- with the characters (e.g., ISO-2022 encodings).
- */
- sal_uInt8 MaximumCharSize;
-
- /** The average number of bytes needed to encode a character in the given
- encoding.
- */
- sal_uInt8 AverageCharSize;
-
- /** An unused byte, for padding.
- */
- sal_uInt8 Reserved;
-
- /** Any combination of the RTL_TEXTENCODING_INFO flags.
-
- RTL_TEXTENCODING_INFO_CONTEXT: The encoding uses some mechanism (like
- state-changing byte sequences) to switch between different modes (e.g.,
- to encode multiple character repertoires within the same byte ranges).
-
- Even if an encoding does not have the CONTEXT property, interpretation
- of certain byte values within that encoding can depend on context (e.g.,
- a certain byte value could be either a single-byte character or a
- subsequent byte of a multi-byte character). Likewise, the single shift
- characters (SS2 and SS3) used by some of the EUC encodings (to denote
- that the following bytes constitute a character from another character
- repertoire) do not imply that encodings making use of these characters
- have the CONTEXT property. Examples of encodings that do have the
- CONTEXT property are the ISO-2022 encodings and UTF-7.
-
- RTL_TEXTENCODING_INFO_ASCII: The encoding is a superset of ASCII. More
- specifically, any appearance of a byte in the range 0x20--7F denotes the
- corresponding ASCII character (from SPACE to DELETE); in particular,
- such a byte cannot be part of a multi-byte character. Note that the
- ASCII control codes 0x00--1F are not included here, as they are used for
- special purposes in some encodings.
-
- If an encoding has this property, it is easy to search for occurrences of
- ASCII characters within strings of this encoding---you do not need to
- keep track whether a byte in the range 0x20--7F really represents an
- ASCII character or rather is part of some multi-byte character.
-
- The guarantees when mapping between Unicode and a given encoding with
- the ASCII property are as follows: When mapping from Unicode to the
- given encoding, U+0020--007F map to 0x20--7F (but there can also be
- other Unicode characters mapping into the range 0x20--7F), and when
- mapping from the given encoding to Unicode, 0x20--7F map to U+0020--007F
- (again, there can also be other characters mapping into the range
- U+0020--007F). In particular, this ensures round-trip conversion for
- the ASCII range.
-
- In principle, the ASCII property is orthogonal to the CONTEXT property.
- In practice, however, an encoding that has the ASCII property will most
- likely not also have the CONTEXT property.
-
- RTL_TEXTENCODING_INFO_UNICODE: The encoding is based on the Unicode
- character repertoire.
-
- RTL_TEXTENCODING_INFO_MULTIBYTE: A multi-byte encoding.
-
- RTL_TEXTENCODING_INFO_R2L: An encoding used mainly or exclusively for
- languages written from right to left.
-
- RTL_TEXTENCODING_INFO_7BIT: A 7-bit instead of an 8-bit encoding.
-
- RTL_TEXTENCODING_INFO_SYMBOL: A (generic) encoding for symbol character
- sets.
-
- RTL_TEXTENCODING_INFO_MIME: The encoding is registered as a MIME
- charset.
- */
- sal_uInt32 Flags;
-} rtl_TextEncodingInfo;
-
-/** Determine whether a text encoding uses single octets as basic units of
- information (and can thus be used with the conversion routines in
- rtl/textcvt.h).
-
- @param nEncoding
- Any rtl_TextEncoding value.
-
- @return
- True if the given encoding uses single octets as basic units of
- information, false otherwise.
- */
-sal_Bool SAL_CALL rtl_isOctetTextEncoding(rtl_TextEncoding nEncoding);
-
-/** Return information about a text encoding.
-
- @param eTextEncoding
- Any rtl_TextEncoding value.
-
- @param pEncInfo
- Returns information about the given encoding. Must not be null, and the
- StructSize member must be set correctly.
-
- @return
- True if information about the given encoding is available, false
- otherwise.
- */
-sal_Bool SAL_CALL rtl_getTextEncodingInfo( rtl_TextEncoding eTextEncoding, rtl_TextEncodingInfo* pEncInfo );
-
-/** Map from a numeric Windows charset to a text encoding.
-
- @param nWinCharset
- Any numeric Windows charset.
-
- @return
- The corresponding rtl_TextEncoding value, or RTL_TEXTENCODING_DONTKNOW if
- no mapping is applicable.
- */
-rtl_TextEncoding SAL_CALL rtl_getTextEncodingFromWindowsCharset( sal_uInt8 nWinCharset );
-
-/** Map from a MIME charset to a text encoding.
-
- @param pMimeCharset
- Any MIME charset string. Must not be null.
-
- @return
- The corresponding rtl_TextEncoding value, or RTL_TEXTENCODING_DONTKNOW if
- no mapping is applicable.
- */
-rtl_TextEncoding SAL_CALL rtl_getTextEncodingFromMimeCharset( const sal_Char* pMimeCharset );
-
-/** Map from a Unix charset to a text encoding.
-
- @param pMimeCharset
- Any Unix charset string. Must not be null.
-
- @return
- The corresponding rtl_TextEncoding value, or RTL_TEXTENCODING_DONTKNOW if
- no mapping is applicable.
- */
-rtl_TextEncoding SAL_CALL rtl_getTextEncodingFromUnixCharset( const sal_Char* pUnixCharset );
-
-/** Map from a text encoding to the best matching numeric Windows charset.
-
- @param eTextEncoding
- Any rtl_TextEncoding value.
-
- @return
- The best matching numeric Windows charset, or 1 if none matches.
- */
-sal_uInt8 SAL_CALL rtl_getBestWindowsCharsetFromTextEncoding( rtl_TextEncoding eTextEncoding );
-
-/** Map from a text encoding to a corresponding MIME charset name, if
- available (see <http://www.iana.org/assignments/character-sets>).
-
- @param nEncoding
- Any rtl_TextEncoding value.
-
- @return
- The (preferred) MIME charset name corresponding to the given encoding, or
- NULL if none is available.
- */
-char const * SAL_CALL rtl_getMimeCharsetFromTextEncoding(rtl_TextEncoding
- nEncoding);
-
-/** Map from a text encoding to the best matching MIME charset.
-
- @param eTextEncoding
- Any rtl_TextEncoding value.
-
- @return
- The best matching MIME charset string, or null if none matches.
- */
-const sal_Char* SAL_CALL rtl_getBestMimeCharsetFromTextEncoding( rtl_TextEncoding eTextEncoding );
-
-/** Map from a text encoding to the best matching Unix charset.
-
- @param eTextEncoding
- Any rtl_TextEncoding value.
-
- @return
- The best matching Unix charset string, or null if none matches.
- */
-const sal_Char* SAL_CALL rtl_getBestUnixCharsetFromTextEncoding( rtl_TextEncoding eTextEncoding );
-
-/** Map from a Windows code page to a text encoding.
-
- @param nCodePage
- Any Windows code page number.
-
- @return
- The corresponding rtl_TextEncoding value (which will be an octet text
- encoding, see rtl_isOctetTextEncoding), or RTL_TEXTENCODING_DONTKNOW if no
- mapping is applicable.
- */
-rtl_TextEncoding SAL_CALL
-rtl_getTextEncodingFromWindowsCodePage(sal_uInt32 nCodePage);
-
-/** Map from a text encoding to a Windows code page.
-
- @param nEncoding
- Any rtl_TextEncoding value.
-
- @return
- The corresponding Windows code page number, or 0 if no mapping is
- applicable.
- */
-sal_uInt32 SAL_CALL
-rtl_getWindowsCodePageFromTextEncoding(rtl_TextEncoding nEncoding);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RTL_TENCINFO_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/textcvt.h b/sal/inc/rtl/textcvt.h
deleted file mode 100644
index c0209751b..000000000
--- a/sal/inc/rtl/textcvt.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_TEXTCVT_H
-#define _RTL_TEXTCVT_H
-
-#ifndef _SAL_TYPES_H
-#include <sal/types.h>
-#endif
-#include <rtl/textenc.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Documentation about this file can be found at
- <http://udk.openoffice.org/cpp/man/spec/textconversion.html>. */
-
-/** see http://udk.openoffice.org/cpp/man/spec/textconversion.html
- */
-typedef void* rtl_TextToUnicodeConverter;
-
-/** see http://udk.openoffice.org/cpp/man/spec/textconversion.html
- */
-typedef void* rtl_TextToUnicodeContext;
-
-/** see http://udk.openoffice.org/cpp/man/spec/textconversion.html
- */
-rtl_TextToUnicodeConverter SAL_CALL rtl_createTextToUnicodeConverter( rtl_TextEncoding eTextEncoding );
-
-/** see http://udk.openoffice.org/cpp/man/spec/textconversion.html
- */
-void SAL_CALL rtl_destroyTextToUnicodeConverter( rtl_TextToUnicodeConverter hConverter );
-
-/** see http://udk.openoffice.org/cpp/man/spec/textconversion.html
- */
-rtl_TextToUnicodeContext SAL_CALL rtl_createTextToUnicodeContext( rtl_TextToUnicodeConverter hConverter );
-
-/** see http://udk.openoffice.org/cpp/man/spec/textconversion.html
- */
-void SAL_CALL rtl_destroyTextToUnicodeContext( rtl_TextToUnicodeConverter hConverter, rtl_TextToUnicodeContext hContext );
-
-/** see http://udk.openoffice.org/cpp/man/spec/textconversion.html
- */
-void SAL_CALL rtl_resetTextToUnicodeContext( rtl_TextToUnicodeConverter hConverter, rtl_TextToUnicodeContext hContext );
-
-#define RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR ((sal_uInt32)0x0001)
-#define RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE ((sal_uInt32)0x0002)
-#define RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MAPTOPRIVATE ((sal_uInt32)0x0003)
-#define RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_DEFAULT ((sal_uInt32)0x0004)
-#define RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR ((sal_uInt32)0x0010)
-#define RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_IGNORE ((sal_uInt32)0x0020)
-#define RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_DEFAULT ((sal_uInt32)0x0030)
-#define RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR ((sal_uInt32)0x0100)
-#define RTL_TEXTTOUNICODE_FLAGS_INVALID_IGNORE ((sal_uInt32)0x0200)
-#define RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT ((sal_uInt32)0x0300)
-#define RTL_TEXTTOUNICODE_FLAGS_FLUSH ((sal_uInt32)0x8000)
-#define RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE 0x10000
- /* Accept any global document signatures (for example, in UTF-8, a leading
- EF BB BF encoding the Byte Order Mark U+FEFF) */
-
-#define RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MASK ((sal_uInt32)0x000F)
-#define RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_MASK ((sal_uInt32)0x00F0)
-#define RTL_TEXTTOUNICODE_FLAGS_INVALID_MASK ((sal_uInt32)0x0F00)
-
-#define RTL_TEXTTOUNICODE_INFO_ERROR ((sal_uInt32)0x0001)
-#define RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL ((sal_uInt32)0x0002)
-#define RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL ((sal_uInt32)0x0004)
-#define RTL_TEXTTOUNICODE_INFO_UNDEFINED ((sal_uInt32)0x0008)
-#define RTL_TEXTTOUNICODE_INFO_MBUNDEFINED ((sal_uInt32)0x0010)
-#define RTL_TEXTTOUNICODE_INFO_INVALID ((sal_uInt32)0x0020)
-
-/** see http://udk.openoffice.org/cpp/man/spec/textconversion.html
- */
-sal_Size SAL_CALL rtl_convertTextToUnicode( rtl_TextToUnicodeConverter hConverter,
- rtl_TextToUnicodeContext hContext,
- const sal_Char* pSrcBuf, sal_Size nSrcBytes,
- sal_Unicode* pDestBuf, sal_Size nDestChars,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtBytes );
-
-/** see http://udk.openoffice.org/cpp/man/spec/textconversion.html
- */
-typedef void* rtl_UnicodeToTextConverter;
-
-/** see http://udk.openoffice.org/cpp/man/spec/textconversion.html
- */
-typedef void* rtl_UnicodeToTextContext;
-
-/** see http://udk.openoffice.org/cpp/man/spec/textconversion.html
- */
-rtl_UnicodeToTextConverter SAL_CALL rtl_createUnicodeToTextConverter( rtl_TextEncoding eTextEncoding );
-
-/** see http://udk.openoffice.org/cpp/man/spec/textconversion.html
- */
-void SAL_CALL rtl_destroyUnicodeToTextConverter( rtl_UnicodeToTextConverter hConverter );
-
-/** see http://udk.openoffice.org/cpp/man/spec/textconversion.html
- */
-rtl_UnicodeToTextContext SAL_CALL rtl_createUnicodeToTextContext( rtl_UnicodeToTextConverter hConverter );
-
-/** see http://udk.openoffice.org/cpp/man/spec/textconversion.html
- */
-void SAL_CALL rtl_destroyUnicodeToTextContext( rtl_UnicodeToTextConverter hConverter, rtl_UnicodeToTextContext hContext );
-
-/** see http://udk.openoffice.org/cpp/man/spec/textconversion.html
- */
-void SAL_CALL rtl_resetUnicodeToTextContext( rtl_UnicodeToTextConverter hConverter, rtl_UnicodeToTextContext hContext );
-
-#define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR ((sal_uInt32)0x0001)
-#define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE ((sal_uInt32)0x0002)
-#define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_0 ((sal_uInt32)0x0003)
-#define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_QUESTIONMARK ((sal_uInt32)0x0004)
-#define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_UNDERLINE ((sal_uInt32)0x0005)
-#define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_DEFAULT ((sal_uInt32)0x0006)
-#define RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR ((sal_uInt32)0x0010)
-#define RTL_UNICODETOTEXT_FLAGS_INVALID_IGNORE ((sal_uInt32)0x0020)
-#define RTL_UNICODETOTEXT_FLAGS_INVALID_0 ((sal_uInt32)0x0030)
-#define RTL_UNICODETOTEXT_FLAGS_INVALID_QUESTIONMARK ((sal_uInt32)0x0040)
-#define RTL_UNICODETOTEXT_FLAGS_INVALID_UNDERLINE ((sal_uInt32)0x0050)
-#define RTL_UNICODETOTEXT_FLAGS_INVALID_DEFAULT ((sal_uInt32)0x0060)
-#define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACE ((sal_uInt32)0x0100)
-#define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACESTR ((sal_uInt32)0x0200)
-#define RTL_UNICODETOTEXT_FLAGS_PRIVATE_MAPTO0 ((sal_uInt32)0x0400)
-#define RTL_UNICODETOTEXT_FLAGS_NONSPACING_IGNORE ((sal_uInt32)0x0800)
-#define RTL_UNICODETOTEXT_FLAGS_CONTROL_IGNORE ((sal_uInt32)0x1000)
-#define RTL_UNICODETOTEXT_FLAGS_PRIVATE_IGNORE ((sal_uInt32)0x2000)
-#define RTL_UNICODETOTEXT_FLAGS_NOCOMPOSITE ((sal_uInt32)0x4000)
-#define RTL_UNICODETOTEXT_FLAGS_FLUSH ((sal_uInt32)0x8000)
-#define RTL_UNICODETOTEXT_FLAGS_GLOBAL_SIGNATURE 0x10000
- /* Write any global document signatures (for example, in UTF-8, a leading
- EF BB BF encoding the Byte Order Mark U+FEFF) */
-
-#define RTL_UNICODETOTEXT_FLAGS_UNDEFINED_MASK ((sal_uInt32)0x000F)
-#define RTL_UNICODETOTEXT_FLAGS_INVALID_MASK ((sal_uInt32)0x00F0)
-
-#define RTL_UNICODETOTEXT_INFO_ERROR ((sal_uInt32)0x0001)
-#define RTL_UNICODETOTEXT_INFO_SRCBUFFERTOSMALL ((sal_uInt32)0x0002)
-#define RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL ((sal_uInt32)0x0004)
-#define RTL_UNICODETOTEXT_INFO_UNDEFINED ((sal_uInt32)0x0008)
-#define RTL_UNICODETOTEXT_INFO_INVALID ((sal_uInt32)0x0010)
-
-/** see http://udk.openoffice.org/cpp/man/spec/textconversion.html
- */
-sal_Size SAL_CALL rtl_convertUnicodeToText( rtl_UnicodeToTextConverter hConverter,
- rtl_UnicodeToTextContext hContext,
- const sal_Unicode* pSrcBuf, sal_Size nSrcChars,
- sal_Char* pDestBuf, sal_Size nDestBytes,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtChars );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RTL_TEXTCVT_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/textenc.h b/sal/inc/rtl/textenc.h
deleted file mode 100644
index 5acc72aa3..000000000
--- a/sal/inc/rtl/textenc.h
+++ /dev/null
@@ -1,281 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_TEXTENC_H
-#define _RTL_TEXTENC_H
-
-#ifdef _SOLAR_RSC_INVOKED
-/* Enable resources to use these values, rsc can't handle casts */
-#define RTL_TEXTENC_CAST( val ) (val)
-
-#else /* !_SOLAR_RSC_INVOKED */
-
-#ifndef _SAL_TYPES_H
-#include <sal/types.h>
-#endif
-
-/** The various supported text encodings.
-
- Possible values include a wide range of single- and multi-byte encodings
- (ranging from RTL_TEXTENCODING_MS_1252 to RTL_TEXTENCODING_GB_18030),
- the ISO 10646 (Unicode) specific encodings RTL_TEXTENCODING_UCS4 and
- RTL_TEXTENCODING_UCS2 (aka RTL_TEXTENCODING_UNICODE), and
- RTL_TEXTENCODING_DONTKNOW to indicate an unknown or missing encoding.
- */
-typedef sal_uInt16 rtl_TextEncoding;
-
-#define RTL_TEXTENC_CAST( val ) ((rtl_TextEncoding) val)
-
-#endif /* _SOLAR_RSC_INVOKED */
-
-#define RTL_TEXTENCODING_DONTKNOW (RTL_TEXTENC_CAST( 0 ))
-#define RTL_TEXTENCODING_MS_1252 (RTL_TEXTENC_CAST( 1 ))
-#define RTL_TEXTENCODING_APPLE_ROMAN (RTL_TEXTENC_CAST( 2 ))
-#define RTL_TEXTENCODING_IBM_437 (RTL_TEXTENC_CAST( 3 ))
-#define RTL_TEXTENCODING_IBM_850 (RTL_TEXTENC_CAST( 4 ))
-#define RTL_TEXTENCODING_IBM_860 (RTL_TEXTENC_CAST( 5 ))
-#define RTL_TEXTENCODING_IBM_861 (RTL_TEXTENC_CAST( 6 ))
-#define RTL_TEXTENCODING_IBM_863 (RTL_TEXTENC_CAST( 7 ))
-#define RTL_TEXTENCODING_IBM_865 (RTL_TEXTENC_CAST( 8 ))
-/* Reserved: RTL_TEXTENCODING_SYSTEM (RTL_TEXTENC_CAST( 9 )) */
-#define RTL_TEXTENCODING_SYMBOL (RTL_TEXTENC_CAST( 10 ))
-#define RTL_TEXTENCODING_ASCII_US (RTL_TEXTENC_CAST( 11 ))
-#define RTL_TEXTENCODING_ISO_8859_1 (RTL_TEXTENC_CAST( 12 ))
-#define RTL_TEXTENCODING_ISO_8859_2 (RTL_TEXTENC_CAST( 13 ))
-#define RTL_TEXTENCODING_ISO_8859_3 (RTL_TEXTENC_CAST( 14 ))
-#define RTL_TEXTENCODING_ISO_8859_4 (RTL_TEXTENC_CAST( 15 ))
-#define RTL_TEXTENCODING_ISO_8859_5 (RTL_TEXTENC_CAST( 16 ))
-#define RTL_TEXTENCODING_ISO_8859_6 (RTL_TEXTENC_CAST( 17 ))
-#define RTL_TEXTENCODING_ISO_8859_7 (RTL_TEXTENC_CAST( 18 ))
-#define RTL_TEXTENCODING_ISO_8859_8 (RTL_TEXTENC_CAST( 19 ))
-#define RTL_TEXTENCODING_ISO_8859_9 (RTL_TEXTENC_CAST( 20 ))
-#define RTL_TEXTENCODING_ISO_8859_14 (RTL_TEXTENC_CAST( 21 ))
-#define RTL_TEXTENCODING_ISO_8859_15 (RTL_TEXTENC_CAST( 22 ))
-#define RTL_TEXTENCODING_IBM_737 (RTL_TEXTENC_CAST( 23 ))
-#define RTL_TEXTENCODING_IBM_775 (RTL_TEXTENC_CAST( 24 ))
-#define RTL_TEXTENCODING_IBM_852 (RTL_TEXTENC_CAST( 25 ))
-#define RTL_TEXTENCODING_IBM_855 (RTL_TEXTENC_CAST( 26 ))
-#define RTL_TEXTENCODING_IBM_857 (RTL_TEXTENC_CAST( 27 ))
-#define RTL_TEXTENCODING_IBM_862 (RTL_TEXTENC_CAST( 28 ))
-#define RTL_TEXTENCODING_IBM_864 (RTL_TEXTENC_CAST( 29 ))
-#define RTL_TEXTENCODING_IBM_866 (RTL_TEXTENC_CAST( 30 ))
-#define RTL_TEXTENCODING_IBM_869 (RTL_TEXTENC_CAST( 31 ))
-#define RTL_TEXTENCODING_MS_874 (RTL_TEXTENC_CAST( 32 ))
-#define RTL_TEXTENCODING_MS_1250 (RTL_TEXTENC_CAST( 33 ))
-#define RTL_TEXTENCODING_MS_1251 (RTL_TEXTENC_CAST( 34 ))
-#define RTL_TEXTENCODING_MS_1253 (RTL_TEXTENC_CAST( 35 ))
-#define RTL_TEXTENCODING_MS_1254 (RTL_TEXTENC_CAST( 36 ))
-#define RTL_TEXTENCODING_MS_1255 (RTL_TEXTENC_CAST( 37 ))
-#define RTL_TEXTENCODING_MS_1256 (RTL_TEXTENC_CAST( 38 ))
-#define RTL_TEXTENCODING_MS_1257 (RTL_TEXTENC_CAST( 39 ))
-#define RTL_TEXTENCODING_MS_1258 (RTL_TEXTENC_CAST( 40 ))
-#define RTL_TEXTENCODING_APPLE_ARABIC (RTL_TEXTENC_CAST( 41 ))
-#define RTL_TEXTENCODING_APPLE_CENTEURO (RTL_TEXTENC_CAST( 42 ))
-#define RTL_TEXTENCODING_APPLE_CROATIAN (RTL_TEXTENC_CAST( 43 ))
-#define RTL_TEXTENCODING_APPLE_CYRILLIC (RTL_TEXTENC_CAST( 44 ))
-#define RTL_TEXTENCODING_APPLE_DEVANAGARI (RTL_TEXTENC_CAST( 45 ))
-#define RTL_TEXTENCODING_APPLE_FARSI (RTL_TEXTENC_CAST( 46 ))
-#define RTL_TEXTENCODING_APPLE_GREEK (RTL_TEXTENC_CAST( 47 ))
-#define RTL_TEXTENCODING_APPLE_GUJARATI (RTL_TEXTENC_CAST( 48 ))
-#define RTL_TEXTENCODING_APPLE_GURMUKHI (RTL_TEXTENC_CAST( 49 ))
-#define RTL_TEXTENCODING_APPLE_HEBREW (RTL_TEXTENC_CAST( 50 ))
-#define RTL_TEXTENCODING_APPLE_ICELAND (RTL_TEXTENC_CAST( 51 ))
-#define RTL_TEXTENCODING_APPLE_ROMANIAN (RTL_TEXTENC_CAST( 52 ))
-#define RTL_TEXTENCODING_APPLE_THAI (RTL_TEXTENC_CAST( 53 ))
-#define RTL_TEXTENCODING_APPLE_TURKISH (RTL_TEXTENC_CAST( 54 ))
-#define RTL_TEXTENCODING_APPLE_UKRAINIAN (RTL_TEXTENC_CAST( 55 ))
-#define RTL_TEXTENCODING_APPLE_CHINSIMP (RTL_TEXTENC_CAST( 56 ))
-#define RTL_TEXTENCODING_APPLE_CHINTRAD (RTL_TEXTENC_CAST( 57 ))
-#define RTL_TEXTENCODING_APPLE_JAPANESE (RTL_TEXTENC_CAST( 58 ))
-#define RTL_TEXTENCODING_APPLE_KOREAN (RTL_TEXTENC_CAST( 59 ))
-#define RTL_TEXTENCODING_MS_932 (RTL_TEXTENC_CAST( 60 ))
-#define RTL_TEXTENCODING_MS_936 (RTL_TEXTENC_CAST( 61 ))
-#define RTL_TEXTENCODING_MS_949 (RTL_TEXTENC_CAST( 62 ))
-#define RTL_TEXTENCODING_MS_950 (RTL_TEXTENC_CAST( 63 ))
-#define RTL_TEXTENCODING_SHIFT_JIS (RTL_TEXTENC_CAST( 64 ))
-#define RTL_TEXTENCODING_GB_2312 (RTL_TEXTENC_CAST( 65 ))
-#define RTL_TEXTENCODING_GBT_12345 (RTL_TEXTENC_CAST( 66 ))
-#define RTL_TEXTENCODING_GBK (RTL_TEXTENC_CAST( 67 ))
-#define RTL_TEXTENCODING_BIG5 (RTL_TEXTENC_CAST( 68 ))
-#define RTL_TEXTENCODING_EUC_JP (RTL_TEXTENC_CAST( 69 ))
-#define RTL_TEXTENCODING_EUC_CN (RTL_TEXTENC_CAST( 70 ))
-#define RTL_TEXTENCODING_EUC_TW (RTL_TEXTENC_CAST( 71 ))
-#define RTL_TEXTENCODING_ISO_2022_JP (RTL_TEXTENC_CAST( 72 ))
-#define RTL_TEXTENCODING_ISO_2022_CN (RTL_TEXTENC_CAST( 73 ))
-#define RTL_TEXTENCODING_KOI8_R (RTL_TEXTENC_CAST( 74 ))
-#define RTL_TEXTENCODING_UTF7 (RTL_TEXTENC_CAST( 75 ))
-#define RTL_TEXTENCODING_UTF8 (RTL_TEXTENC_CAST( 76 ))
-#define RTL_TEXTENCODING_ISO_8859_10 (RTL_TEXTENC_CAST( 77 ))
-#define RTL_TEXTENCODING_ISO_8859_13 (RTL_TEXTENC_CAST( 78 ))
-#define RTL_TEXTENCODING_EUC_KR (RTL_TEXTENC_CAST( 79 ))
-#define RTL_TEXTENCODING_ISO_2022_KR (RTL_TEXTENC_CAST( 80 ))
-#define RTL_TEXTENCODING_JIS_X_0201 (RTL_TEXTENC_CAST( 81 ))
-#define RTL_TEXTENCODING_JIS_X_0208 (RTL_TEXTENC_CAST( 82 ))
-#define RTL_TEXTENCODING_JIS_X_0212 (RTL_TEXTENC_CAST( 83 ))
-#define RTL_TEXTENCODING_MS_1361 (RTL_TEXTENC_CAST( 84 ))
-#define RTL_TEXTENCODING_GB_18030 (RTL_TEXTENC_CAST( 85 ))
-#define RTL_TEXTENCODING_BIG5_HKSCS (RTL_TEXTENC_CAST( 86 ))
-#define RTL_TEXTENCODING_TIS_620 (RTL_TEXTENC_CAST( 87 ))
-#define RTL_TEXTENCODING_KOI8_U (RTL_TEXTENC_CAST( 88 ))
-#define RTL_TEXTENCODING_ISCII_DEVANAGARI (RTL_TEXTENC_CAST( 89 ))
-#define RTL_TEXTENCODING_JAVA_UTF8 (RTL_TEXTENC_CAST( 90 ))
-#define RTL_TEXTENCODING_ADOBE_STANDARD (RTL_TEXTENC_CAST( 91 ))
-#define RTL_TEXTENCODING_ADOBE_SYMBOL (RTL_TEXTENC_CAST( 92 ))
-#define RTL_TEXTENCODING_PT154 (RTL_TEXTENC_CAST( 93 ))
-#define RTL_TEXTENCODING_ADOBE_DINGBATS (RTL_TEXTENC_CAST( 94 ))
-/* ATTENTION! Whenever some encoding is added here, make sure to update
- * rtl_isOctetTextEncoding in tencinfo.c.
- */
-
-#define RTL_TEXTENCODING_USER_START (RTL_TEXTENC_CAST( 0x8000 ))
-#define RTL_TEXTENCODING_USER_END (RTL_TEXTENC_CAST( 0xEFFF ))
-
-#define RTL_TEXTENCODING_UCS4 (RTL_TEXTENC_CAST( 0xFFFE ))
-#define RTL_TEXTENCODING_UCS2 (RTL_TEXTENC_CAST( 0xFFFF ))
-#define RTL_TEXTENCODING_UNICODE RTL_TEXTENCODING_UCS2
-
-/****** Overview over the TextEncodings *****
-# Arabic (Apple Macintosh) RTL_TEXTENCODING_APPLE_ARABIC
-Arabic (DOS/OS2-864) RTL_TEXTENCODING_IBM_864
-Arabic (ISO-8859-6) RTL_TEXTENCODING_ISO_8859_6
-Arabic (Windows-1256) RTL_TEXTENCODING_MS_1256
-
-Baltic (DOS/OS2-775) RTL_TEXTENCODING_IBM_775
-Baltic (ISO-8859-4) RTL_TEXTENCODING_ISO_8859_4
-Baltic (Windows-1257) RTL_TEXTENCODING_MS_1257
-
-Central European (Apple Macintosh) RTL_TEXTENCODING_APPLE_CENTEURO
-Central European (Apple Macintosh/Croatian) RTL_TEXTENCODING_APPLE_CROATIAN
-Central European (Apple Macintosh/Romanian) RTL_TEXTENCODING_APPLE_ROMANIAN
-Central European (DOS/OS2-852) RTL_TEXTENCODING_IBM_852
-Central European (ISO-8859-2) RTL_TEXTENCODING_ISO_8859_2
-Central European (ISO-8859-10) RTL_TEXTENCODING_ISO_8859_10
-Central European (ISO-8859-13) RTL_TEXTENCODING_ISO_8859_13
-Central European (Windows-1250/WinLatin 2) RTL_TEXTENCODING_MS_1250
-
-Chinese Simplified (Apple Macintosh) RTL_TEXTENCODING_APPLE_CHINSIMP
-Chinese Simplified (EUC-CN) RTL_TEXTENCODING_EUC_CN
-Chinese Simplified (GB-2312) RTL_TEXTENCODING_GB_2312
-Chinese Simplified (GBK/GB-2312-80) RTL_TEXTENCODING_GBK
-# Chinese Simplified (ISO-2022-CN) RTL_TEXTENCODING_ISO_2022_CN
-Chinese Simplified (Windows-936) RTL_TEXTENCODING_MS_936
-# Chinese Simplified (GB-18030) RTL_TEXTENCODING_GB_18030
-
-Chinese Traditional (Apple Macintosh) RTL_TEXTENCODING_APPLE_CHINTRAD
-Chinese Traditional (BIG5) RTL_TEXTENCODING_BIG5
-# Chinese Traditional (EUC-TW) RTL_TEXTENCODING_EUC_TW
-Chinese Traditional (GBT-12345) RTL_TEXTENCODING_GBT_12345
-Chinese Traditional (Windows-950) RTL_TEXTENCODING_MS_950
-Chinese Traditional (BIG5-HKSCS) RTL_TEXTENCODING_BIG5_HKSCS
-
-Cyrillic (Apple Macintosh) RTL_TEXTENCODING_APPLE_CYRILLIC
-Cyrillic (Apple Macintosh/Ukrainian) RTL_TEXTENCODING_APPLE_UKRAINIAN
-Cyrillic (DOS/OS2-855) RTL_TEXTENCODING_IBM_855
-Cyrillic (DOS/OS2-866/Russian) RTL_TEXTENCODING_IBM_866
-Cyrillic (ISO-8859-5) RTL_TEXTENCODING_ISO_8859_5
-Cyrillic (KOI8-R) RTL_TEXTENCODING_KOI8_R
-Cyrillic (KOI8-U) RTL_TEXTENCODING_KOI8_U
-Cyrillic (Windows-1251) RTL_TEXTENCODING_MS_1251
-
-Greek (Apple Macintosh) RTL_TEXTENCODING_APPLE_GREEK
-Greek (DOS/OS2-737) RTL_TEXTENCODING_IBM_737
-Greek (DOS/OS2-869/Modern) RTL_TEXTENCODING_IBM_869
-Greek (ISO-8859-7) RTL_TEXTENCODING_ISO_8859_7
-Greek (Windows-1253) RTL_TEXTENCODING_MS_1253
-
-# Hebrew (Apple Macintosh) RTL_TEXTENCODING_APPLE_HEBREW
-Hebrew (DOS/OS2-862) RTL_TEXTENCODING_IBM_862
-Hebrew (ISO-8859-8) RTL_TEXTENCODING_ISO_8859_8
-Hebrew (Windows-1255) RTL_TEXTENCODING_MS_1255
-
-Korean (Apple Macintosh) RTL_TEXTENCODING_APPLE_KOREAN
-Korean (EUC-KR) RTL_TEXTENCODING_EUC_KR
-# Korean (ISO-2022-KR) RTL_TEXTENCODING_ISO_2022_KR
-Korean (Windows-Wansung-949) RTL_TEXTENCODING_MS_949
-Korean (Windows-Johab-1361) RTL_TEXTENCODING_MS_1361
-
-Latin 3 (ISO-8859-3) RTL_TEXTENCODING_ISO_8859_3
-
-Indian (ISCII Devanagari) RTL_TEXTENCODING_ISCII_DEVANAGARI
-
-Japanese (Apple Macintosh) RTL_TEXTENCODING_APPLE_JAPANESE
-Japanese (EUC-JP) RTL_TEXTENCODING_EUC_JP
-# Japanese (ISO-2022-JP) RTL_TEXTENCODING_ISO_2022_JP
-Japanese (Shift-JIS) RTL_TEXTENCODING_SHIFT_JIS
-Japanese (Windows-932) RTL_TEXTENCODING_MS_932
-
-Symbol RTL_TEXTENCODING_SYMBOL
-
-# Thai (Apple Macintosh) RTL_TEXTENCODING_APPLE_THAI
-Thai (Dos/Windows-874) RTL_TEXTENCODING_MS_874
-Thai (TIS 620) RTL_TEXTENCODING_TIS_620
-
-Turkish (Apple Macintosh) RTL_TEXTENCODING_APPLE_TURKISH
-Turkish (DOS/OS2-857) RTL_TEXTENCODING_IBM_857
-Turkish (ISO-8859-9) RTL_TEXTENCODING_ISO_8859_9
-Turkish (Windows-1254) RTL_TEXTENCODING_MS_1254
-
-Unicode (UTF-7) RTL_TEXTENCODING_UTF7
-Unicode (UTF-8) RTL_TEXTENCODING_UTF8
-Unicode (Java's modified UTF-8) RTL_TEXTENCODING_JAVA_UTF8
-
-Vietnamese (Windows-1258) RTL_TEXTENCODING_MS_1258
-
-Western (Apple Macintosh) RTL_TEXTENCODING_APPLE_ROMAN
-Western (Apple Macintosh/Icelandic) RTL_TEXTENCODING_APPLE_ICELAND
-Western (ASCII/US) RTL_TEXTENCODING_ASCII_US
-Western (DOS/OS2-437/US) RTL_TEXTENCODING_IBM_437
-Western (DOS/OS2-850/International) RTL_TEXTENCODING_IBM_850
-Western (DOS/OS2-860/Portugese) RTL_TEXTENCODING_IBM_860
-Western (DOS/OS2-861/Icelandic) RTL_TEXTENCODING_IBM_861
-Western (DOS/OS2-863/Canadian-French) RTL_TEXTENCODING_IBM_863
-Western (DOS/OS2-865/Nordic) RTL_TEXTENCODING_IBM_865
-Western (ISO-8859-1) RTL_TEXTENCODING_ISO_8859_1
-Western (ISO-8859-14) RTL_TEXTENCODING_ISO_8859_14
-Western (ISO-8859-15/EURO) RTL_TEXTENCODING_ISO_8859_15
-Western (Window-1252/WinLatin 1) RTL_TEXTENCODING_MS_1252
-
-Not known and currently not supported
-# RTL_TEXTENCODING_APPLE_DEVANAGARI
-# RTL_TEXTENCODING_APPLE_FARSI
-# RTL_TEXTENCODING_APPLE_GUJARATI
-# RTL_TEXTENCODING_APPLE_GURMUKHI
-
-Only for internal implementations and not useful for user interface.
-These encodings are not used for text encodings, only used for
-font-/textoutput encodings.
-Japanese (JIS 0201) RTL_TEXTENCODING_JISX_0201
-Japanese (JIS 0208) RTL_TEXTENCODING_JISX_0208
-Japanese (JIS 0212) RTL_TEXTENCODING_JISX_0212
-
-# Currently not implemented
-*/
-
-#endif /* _RTL_TEXTENC_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/tres.h b/sal/inc/rtl/tres.h
deleted file mode 100644
index 102c2ee23..000000000
--- a/sal/inc/rtl/tres.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-#ifndef _RTL_TRES_H_
-#define _RTL_TRES_H_
-
-#include <osl/diagnose.h>
-#include <rtl/string.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- /* comandline flags */
-#define rtl_tres_Flag_BOOM 0x00000001
-#define rtl_tres_Flag_VERBOSE 0x00000002
-#define rtl_tres_Flag_SKIP 0x00000004
-#define rtl_tres_Flag_LOG 0x00000010
-#define rtl_tres_Flag_HIS 0x00000100
-#define rtl_tres_Flag_TIME 0x00000200
-#define rtl_tres_Flag_MSG 0x00000400
-#define rtl_tres_Flag_QUIET 0x00000800
-
- /* state flags */
-#define rtl_tres_Flag_SUB 0x01000000
-#define rtl_tres_Flag_PASSED 0x10000000
-#define rtl_tres_Flag_OK 0x20000000
-
-
-
- /* forward declaration and type definition */
-struct _rtl_TestResult;
-typedef struct _rtl_TestResult rtl_TestResult;
-
-
-typedef void* rtl_funcstate;
-typedef void* rtl_cmpstate;
-
- /* type definitions of function pointers wich can be overloaded */
-typedef sal_Bool (SAL_CALL *rtl_tres_state_ptr)(
- rtl_TestResult*,
- sal_Bool,
- const sal_Char*,
- const sal_Char*,
- sal_Bool
- );
-
-typedef void (SAL_CALL *rtl_tres_end_ptr)( rtl_TestResult*, const sal_Char* );
-typedef sal_Bool (SAL_CALL *rtl_tres_ispassed_ptr)( rtl_TestResult* );
-typedef sal_Bool (SAL_CALL *rtl_tres_isok_ptr)( rtl_TestResult* );
-typedef rtl_funcstate (SAL_CALL *rtl_tres_funcstate_ptr)( rtl_TestResult* );
-typedef sal_Bool (SAL_CALL *rtl_tres_isbit_ptr)( rtl_TestResult*,
- sal_uInt32 );
-
-typedef rtl_funcstate (SAL_CALL *rtl_tres_getnextfuncstate_ptr)
- ( rtl_funcstate );
-typedef rtl_funcstate (SAL_CALL *rtl_tres_getprevfuncstate_ptr)
- ( rtl_funcstate );
-typedef sal_uInt32 (SAL_CALL *rtl_tres_getflags_ptr)( rtl_funcstate );
-typedef rtl_String* (SAL_CALL *rtl_tres_getname_ptr)( rtl_funcstate );
-typedef sal_uInt32 (SAL_CALL *rtl_tres_getstart_ptr)( rtl_funcstate );
-typedef sal_uInt32 (SAL_CALL *rtl_tres_getstop_ptr)( rtl_funcstate );
-typedef rtl_cmpstate (SAL_CALL *rtl_tres_getcmpstate_ptr)( rtl_funcstate );
-
-typedef sal_Bool (SAL_CALL *rtl_tres_getstat_ptr)( rtl_cmpstate );
-typedef rtl_String* (SAL_CALL *rtl_tres_getmsg_ptr)( rtl_cmpstate );
-typedef rtl_cmpstate (SAL_CALL *rtl_tres_getnextcmpstate_ptr)( rtl_cmpstate );
-
- /* type definition of vtable structure for testresult */
-typedef struct _rtl_TestResult_vtable
-{
- sal_uInt32 vtablesize;
- rtl_tres_state_ptr state_;
- rtl_tres_end_ptr end_;
- rtl_tres_ispassed_ptr ispassed;
- rtl_tres_isok_ptr isok;
- rtl_tres_funcstate_ptr funcstate;
- rtl_tres_isbit_ptr isbit;
- rtl_tres_getnextfuncstate_ptr nextfuncstate;
- rtl_tres_getprevfuncstate_ptr prevfuncstate;
- rtl_tres_getflags_ptr flags;
- rtl_tres_getname_ptr name;
- rtl_tres_getstart_ptr start;
- rtl_tres_getstop_ptr stop;
- rtl_tres_getcmpstate_ptr cmpstate;
- rtl_tres_getstat_ptr stat;
- rtl_tres_getmsg_ptr msg;
- rtl_tres_getnextcmpstate_ptr nextcmpstate;
-
-} rtl_TestResult_vtable;
-
- /* type definition of testresult structure */
-struct _rtl_TestResult
-{
- rtl_TestResult_vtable * pFuncs;
- void * pExternalData;
-
-};
-
-
- /* exports */
-rtl_TestResult* SAL_CALL rtl_tres_create( const sal_Char* meth, sal_uInt32 flags );
-void SAL_CALL rtl_tres_destroy( rtl_TestResult* res );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RTL_TRES_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/tres.hxx b/sal/inc/rtl/tres.hxx
deleted file mode 100644
index 7bd401934..000000000
--- a/sal/inc/rtl/tres.hxx
+++ /dev/null
@@ -1,111 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_TRES_HXX_
-#define _RTL_TRES_HXX_
-
-#include <rtl/tres.h>
-
-// <namespace_rtl>
-namespace rtl
-{
-/*==========================================================================*/
-
-// <class_TestResult>
-class TestResult
-{
- // pointer to testresult structure
- rtl_TestResult* pData;
-
- // <private_ctors>
- TestResult();
- TestResult( const TestResult& oRes );
- // </private_ctors>
-
-public:
-
-
- // <public_ctors>
- TestResult( const sal_Char* meth, sal_uInt32 flags = 0 )
- {
- pData = rtl_tres_create( meth, flags );
- } // </public_ctors>
-
- // <dtor>
- ~TestResult()
- {
- rtl_tres_destroy( pData );
- }
- // </dtor>
-
- // <public_methods>
- rtl_TestResult* getData()
- {
- return pData;
- }
- // <method_state>
- sal_Bool state(
- sal_Bool tst_state,
- const sal_Char* msg = 0,
- const sal_Char* sub = 0,
- sal_Bool verbose = sal_False
- )
- {
- return pData->pFuncs->state_( pData, tst_state, msg, sub, verbose );
- } // </method_state>
-
- void end( sal_Char* msg = 0 )
- {
- pData->pFuncs->end_( pData, msg );
- } // </method_state>
-}; // </class_TestResult>
-
-} // </namespace_rtl>
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/unload.h b/sal/inc/rtl/unload.h
deleted file mode 100644
index 4ac4f718e..000000000
--- a/sal/inc/rtl/unload.h
+++ /dev/null
@@ -1,318 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _RTL_UNLOAD_H_
-#define _RTL_UNLOAD_H_
-
-#include <sal/types.h>
-#include <osl/time.h>
-#include <osl/interlck.h>
-#include <osl/module.h>
-
-///@HTML
-/** @file
-The API enables an effective way of unloading libraries in a centralized way.
-The mechanism ensures that used libraries are not unloaded. This prevents
-crashes if library code is being used after unloading the library.
-The unloading mechanism currently only works with libraries which contain
-UNO services. A library cannot be unloaded if one of the following conditions
-apply
-
-<ul>
-<li>An instance is still referenced </li>
-<li>A module has been loaded without registering it </li>
-<li>The service manager has created a one instance service </li>
-<li>A service instance has been added to an UNO context </li>
-</ul>
-
-<b>Notification Mechanism</b>
-The API provides a notification mechanism. Clients can use it to do clean up,
-such as releasing cached references, in order to allow modules to be unloaded.
-As long as someone holds a reference to an object whose housing module
-supports unloading the module cannot be unloaded.<p>
-
-Because of the inherent danger of crashing the application by using this API
-all instances which control threads should be registered listeners. On
-notification they have to ensure that their threads assume a safe state, that
-is, they run outside of modules which could be unloaded and do not jump
-back into module code as a result of a finished function call. In other words,
-there must not be an address of the module on the thread's stack.
-<p>
-Since current operating systems lack APIs in respect to controlling the
-position of threads within libraries, it would be a major effort to comply with
-that recommendation. The best and most efficient way of handling the unloading
-scenario is to let all threads, except for the main thread, die in case of a
-notification.
-<p>
-Use this API with great care because it might crash the application. See the
-respective documentation (Library Unloading) on the udk.openoffice.org web site.
-*/
-
-
-/**
-A library which supports unloading has to implement and export a function
-called <code>component_canUnload</code>. <p>
-If the function returns <code>sal_True</code> then the module can be safely unloaded.
-That is the case when there are no external references to code within the
-library. In case a module houses UNO components then the function must return
-<code>sal_False</code> after the first factory has been handed out. The function then
-continues to return <code>sal_False</code> as long as there is at least one object (factory
-or service instance) which originated from the module.<p>
-
-Libraries which not only contain UNO components (or none at all) have to
-provide a means to control whether they can be unloaded or not, e.g. However,
-there is no concept yet. <p>
-
-The argument <code>pTime</code> is an optional out-parameter. If the return value is
-<code>sal_True</code> then <code>pTime</code> reflects a point in time since
-when the module could have
-been unloaded. Since that time the function would have continually returned
-<code>sal_True</code> up to the present. The value of <code>pTime</code> is
-important for the decision
-as to a module will be unloaded. When someone initiates the unloading of
-modules by calling <code>rtl_unloadUnusedModules</code> then the caller can specify a time
-span with the effect that only those modules are unloaded which are unused at
-least for that amount of time. If <code>component_canUnload</code> does not
-fill in <code>pTime</code>
-then the module is unloaded immediately.<p>
-
-<code>component_canUnload</code> is implicitly called by <code>rtl_unloadUnusedModules
-</code>. There is no need to call the function directly.
-*/
-#define COMPONENT_CANUNLOAD "component_canUnload"
-typedef sal_Bool (SAL_CALL * component_canUnloadFunc)( TimeValue* pTime);
-
-
-/** C-interface for a module reference counting
- */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/**
-By registering a module, one declares that a module supports the
-unloading mechanism. One registers a module by calling this function.<p>
-
-A module can only be unloaded from memory when it has been registered
-as many times as it has been loaded. The reason is that a library can
-be &quot;loaded&quot; several times by <code>osl_loadModule</code>
-within the same process. The
-function will then return the same module handle because the library will
-effectively only be loaded once. To remove the library from memory it is
-necessary to call <code>osl_unloadModule</code> as often as <code>
-osl_loadModule</code> was called. The
-function <code>rtl_unloadUnusedModules</code> calls <code>osl_unloadModule</code>
-for a module as many
-times as it was registered. If, for example, a module has been registered one
-time less then <code>osl_loadModule</code> has been called and the module can be unloaded
-then it needs a call to <code>rtl_unloadUnusedModules</code> and an explicit call to
-<code>osl_unloadModule</code> to remove the module from memory. <p>
-
-A module must be registered every time it has been loaded otherwise the
-unloading mechanism is not effective.<p>
-
-Before a module is registered, one has to make sure that the module is in a
-state that prevents it from being unloaded. In other words,
-<code>component_canUnload</code> must return <code>sal_False</code>. Assuming that
-<code>component_canUnload</code>
-returns <code>sal_True</code> and it is registered regardless, then a call to
-<code>rtl_unloadUnusedModules</code> causes the module to be unloaded. This unloading can
-be set off by a different thread and the thread which registered the module is
-&quot;unaware&quot; of this. Then when the first thread tries to obtain a factory or
-calls another function in the module, the application will crash, because the
-module has been unloaded before. Therefore one has to ensure that the module
-cannot be unloaded before it is registered. This is simply done by obtaining a
-factory from the module. As long as a factory or some other object, which has
-been created by the factory, is alive, the <code>component_canUnload</code> function will
-return <code>sal_False</code>.<p>
-Loading and registering have to be in this order:<br>
-<ul>
-<li>load a library (<code>osl_loadModule</code>)</li>
-<li>get the <code>component_getFactory</code> function and get a factory</li>
-<li>register the module (rtl_registerModuleForUnloading</li>
-</ul>
-Usually the service manager is used to obtain an instance of a service.
-The service manager registers all modules which support the unloading mechanism.
-When the service manager is used to get service instances than one does not
-have to bother about registering.
-
-@param module a module handle as is obtained by osl_loadModule
-@return sal_True - the module could be registered for unloading, sal_False otherwise
-*/
-sal_Bool SAL_CALL rtl_registerModuleForUnloading( oslModule module);
-
-/**
-The function revokes the registration of a module. By calling the function for
-a previously registered module one prevents the module from being unloaded by
-this unloading mechanism. However, in order to completely unregister the module
-it is necessary to call the function as often as the module has been registered.
-<p>
-<code>rtl_unloadUnusedModules</code> unregisters the modules which it unloads. Therefore
-there is no need to call this function unless one means to prevent the unloading of a module.
-
-@param module a module handle as is obtained by osl_loadModule
-*/
-void SAL_CALL rtl_unregisterModuleForUnloading( oslModule module);
-/**
-This function sets off the unloading mechanism. At first it notifies the
-unloading listeners in order to give them a chance to do cleanup and get
-their threads in a safe state. Then all registered modules are asked if they
-can be unloaded. That is, the function calls component_canUnload on every
-registered module. If <code>sal_True</code> is returned then <code>osl_unloadModule</code>
-is called for the belonging module as often as it is registered.
-<p>
-A call to <code>osl_unloadModule</code> does not guarantee that the module is unloaded even
-if its <code>component_canUnload</code> function returns <code>sal_True</code>.
-<p>
-The optional in-parameter <code>libUnused</code> specifies a period of time which a library
-must be unused in order to qualify for being unloaded. By using this argument
-one can counter the multithreading problem as described further above. It is in
-the responsibility of the user of this function to provide a timespan big enough
-to ensure that all threads are out of modules (see <code>component_canUnload</code>).
-<p>
-The service managers which have been created by functions such as
-<code>createRegistryServiceFactory</code> (declared in cppuhelper/servicefactory.hxx) are
-registered listeners and release the references to factories on notification.
-
-
-@param libUnused span of time that a module must be unused to be unloaded. the
-argument is optional.
-*/
-void SAL_CALL rtl_unloadUnusedModules( TimeValue* libUnused);
-
-/**
-rtl_addUnloadingListener takes an argument of this type.
-
-@param id - The value that has been passed as second argument to rtl_addUnloadingListener
-*/
-typedef void (SAL_CALL *rtl_unloadingListenerFunc)(void* id);
-/**
-The function registered an unloading listener. The callback argument is a
-function which is called when the unloading procedure has been initiated by a call to
-<code>rtl_unloadUnusedLibraries</code>. The second argument is used to distinguish between different
-listener instances and may be <code>NULL</code>. It will be passed as argument when the callback
-function is being called. The return value identifies the registered listener and will
-be used for removing the listener later on. If the same listener is added more then
-once then every registration is treated as if made for a different listener. That is,
-a different cookie is returned and the callback function will be called as many times
-as it has been registered.
-@param callback - a function that is called to notify listeners.
-@param this - a value to distinguish different listener instances
-@return identifier which is used in rtl_removeUnloadingListener
-*/
-sal_Int32 SAL_CALL rtl_addUnloadingListener( rtl_unloadingListenerFunc callback, void* _this);
-
-/**
-Listeners (the callback functions) must be unregistered before the listener code
-becomes invalid. That is, if a module contains listener code, namely callback
-functions of type <code>rtl_unloadingListenerFunc</code>, then those functions must not be
-registered when <code>component_canUnload</code> returns <code>sal_True</code>.
-
-@param cookie is an identifier as returned by <code>rtl_addUnloadingListener</code> function.
-*/
-void SAL_CALL rtl_removeUnloadingListener( sal_Int32 cookie );
-
-
-/**
-Pointers to <code>rtl_ModuleCount</code> are passed as arguments to the default factory creator
-functions: <code>createSingleComponentFactory</code>, <code>createSingleFactory</code>,
-<code>createOneInstanceFactory</code>.
-The factory implementation is calling <code>rtl_ModuleCount.acquire</code> when it is being
-constructed and it is calling <code>rtl_ModuleCount.release</code>. The implementations of
-<code>acquire</code>
-and <code>release</code> should influence the return value of <code>component_canUnload</code>
-in a way that it
-returns <code>sal_False</code> after <code>acquire</code> has been called. That is the module will not be unloaded
-once a default factory has been created. A call to <code>release</code> may cause
-<code>component_canUnload</code> to return <code>sal_False</code>, but only if there are
-no object alive which
-originated from the module. These objects are factory instances and the service instances
-which have been created by these factories.
-<p>
-It is not necessary to synchronize <code>acquire</code> and <code>release</code> as a whole.
-Simply sychronize the
-access to a counter variable, e.g. the <code>rtl_moduleCount_release</code> implementation:
-<pre>
-extern "C" void rtl_moduleCount_acquire(rtl_ModuleCount * that )
-{
- rtl_StandardModuleCount* pMod= (rtl_StandardModuleCount*)that;
- osl_incrementInterlockedCount( &pMod->counter);
-}
-</pre>
-The SAL library offers functions that can be used for <code>acquire</code> and <code>release</code>. See struct
-<code>_rtl_StandardModuleCount</code>.
-*/
-typedef struct _rtl_ModuleCount
-{
- void ( SAL_CALL * acquire ) ( struct _rtl_ModuleCount * that );
- void ( SAL_CALL * release ) ( struct _rtl_ModuleCount * that );
-}rtl_ModuleCount;
-
-
-#define MODULE_COUNT_INIT \
-{ {rtl_moduleCount_acquire,rtl_moduleCount_release}, rtl_moduleCount_canUnload, 0, {0, 0}}
-
-/**
-This struct can be used to implement the unloading mechanism. To make a UNO library
-unloadable create one global instance of this struct in the module. To initialize it one
-uses the MODULE_COUNT_INIT macro.
-
-<pre>rtl_StandardModuleCount globalModuleCount= MODULE_COUNT_INIT</pre>;
-*/
-typedef struct _rtl_StandardModuleCount
-{
- rtl_ModuleCount modCnt;
- sal_Bool ( *canUnload ) ( struct _rtl_StandardModuleCount* a, TimeValue* libUnused);
- oslInterlockedCount counter;
- TimeValue unusedSince;
-} rtl_StandardModuleCount;
-
-/** Default implementation for <code>rtl_ModuleCount.acquire</code>. Use this function along with
-<code>rtl_StandardModuleCount</code>.
-*/
-void rtl_moduleCount_acquire(rtl_ModuleCount * that );
-/** Default implementation for <code>rtl_ModuleCount.release</code>.
-Use this function along with
-<code>rtl_StandardModuleCount</code>.
-*/
-void rtl_moduleCount_release( rtl_ModuleCount * that );
-
-/** Default implementation for <code>component_canUnload</code>. Use this function along with
-<code>rtl_StandardModuleCount</code>.
-*/
-sal_Bool rtl_moduleCount_canUnload( rtl_StandardModuleCount * that, TimeValue* libUnused);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/uri.h b/sal/inc/rtl/uri.h
deleted file mode 100644
index bce58ddcc..000000000
--- a/sal/inc/rtl/uri.h
+++ /dev/null
@@ -1,357 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_URI_H_
-#define _RTL_URI_H_
-
-#include "rtl/textenc.h"
-#include "rtl/ustring.h"
-#include "sal/types.h"
-
-#if defined __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/** Various predefined URI 'char classes.'
-
- @descr
- A 'char class' defines which (ASCII) characters can be written 'as they
- are' in a part of a Uri, and which characters have to be written using
- escape sequences ('%' followed by two hex digits). Characters outside
- the ASCII range are always written using escape sequences.
-
- @descr
- If there are other frequently used char classes, they can be added to
- this enumeration; the function rtl_getUriCharClass() has to be adapted
- then, too.
- */
-typedef enum
-{
- /** The empty char class.
-
- @descr
- All characters are written using escape sequences.
- */
- rtl_UriCharClassNone,
-
- /** The RFC 2732 <uric> char class.
-
- @descr
- The 'valid' characters are !$&'()*+,-./:;=?@[]_~ plus digits and
- letters.
- */
- rtl_UriCharClassUric,
-
- /** The RFC 2396 <uric_no_slash> char class.
-
- @descr
- The 'valid' characters are !$&'()*+,-.:;=?@_~ plus digits and letters.
- */
- rtl_UriCharClassUricNoSlash,
-
- /** The RFC 2396 <rel_segment> char class.
-
- @descr
- The 'valid' characters are !$&'()*+,-.;=@_~ plus digits and letters.
- */
- rtl_UriCharClassRelSegment,
-
- /** The RFC 2396 <reg_name> char class.
-
- @descr
- The 'valid' characters are !$&'()*+,-.:;=@_~ plus digits and letters.
- */
- rtl_UriCharClassRegName,
-
- /** The RFC 2396 <userinfo> char class.
-
- @descr
- The 'valid' characters are !$&'()*+,-.:;=_~ plus digits and letters.
- */
- rtl_UriCharClassUserinfo,
-
- /** The RFC 2396 <pchar> char class.
-
- @descr
- The 'valid' characters are !$&'()*+,-.:=@_~ plus digits and letters.
- */
- rtl_UriCharClassPchar,
-
- /** The char class for the values of uno URL parameters.
-
- @descr
- The 'valid' characters are !$&'()*+-./:?@_~ plus digits and letters.
- */
- rtl_UriCharClassUnoParamValue,
-
- rtl_UriCharClass_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-}
-rtl_UriCharClass;
-
-/** The mechanism describing how escape sequences in the input of
- rtl_uriEncode() are handled.
- */
-typedef enum
-{
- /** The special meaning of '%' is ignored (i.e., there are by definition
- no escape sequences in the input).
-
- @descr
- This mechanism is useful to encode user input as part of a URI (e.g.,
- the user-supplied password in an ftp URL---'%20abcde' is a valid
- password, so do not assume that the '%20' is an escaped space).
- */
- rtl_UriEncodeIgnoreEscapes,
-
- /** All escape sequences ('%' followed by two hex digits) are kept intact,
- even if they represent characters that need not be escaped or if they
- do not even map to characters in the given charset.
-
- @descr
- This mechanism is useful when passing on complete URIs more or less
- unmodified (e.g., within an HTTP proxy): missing escape sequences are
- added, but existing escape sequences are not touched (except that any
- lower case hex digits are replaced by upper case hex digits).
- */
- rtl_UriEncodeKeepEscapes,
-
- /** All escape sequences ('%' followed by two hex digits) are resolved in
- a first step; only those that represent characters that need to be
- escaped are kept intact.
-
- @descr
- This mechanism is useful to properly encode complete URIs entered by
- the user: the URI is brought into a 'canonic form,' but care is taken
- not to damage (valid) escape sequences the (careful) user already
- entered as such.
- */
- rtl_UriEncodeCheckEscapes,
-
- /** Like rtl_UriEncodeIgnoreEscapes, but indicating failure when converting
- unmappable characters.
-
- @since UDK 3.2.0
- */
- rtl_UriEncodeStrict,
-
- /** Like rtl_UriEncodeKeepEscapes, but indicating failure when converting
- unmappable characters.
-
- @since UDK 3.2.7
- */
- rtl_UriEncodeStrictKeepEscapes,
-
- rtl_UriEncode_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-}
-rtl_UriEncodeMechanism;
-
-/** The mechanism describing how rtl_uriDecode() translates (part of) a URI
- into a Unicode string.
- */
-typedef enum
-{
- /** The text is returned completely unmodified.
- */
- rtl_UriDecodeNone,
-
- /** The text is returned in the form of an IURI (cf.
- draft-masinter-url-i18n-05.txt).
-
- @descr
- All escape sequences representing ASCII characters (%00--%7F) are
- kept, all other escape sequences are interpreted as UTF-8 characters
- and translated to Unicode, if possible.
- */
- rtl_UriDecodeToIuri,
-
- /** The text is decoded.
-
- @descr
- All escape sequences representing characters from the given charset
- are decoded and translated to Unicode, if possible.
- */
- rtl_UriDecodeWithCharset,
-
- /** Like rtl_UriDecodeWithCharset, but indicating failure when converting
- unmappable characters.
-
- @since UDK 3.2.0
- */
- rtl_UriDecodeStrict,
-
- rtl_UriDecode_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
-}
-rtl_UriDecodeMechanism;
-
-/** Map a predefined rtl_UriCharClass to a form usable by rtl_uriEncode().
-
- @descr
- The function rtl_uriEncode() expects an array of 128 booleans, and this
- function maps rtl_UriCharClass enumeration members to such arrays.
-
- @param eCharClass
- Any valid member of rtl_UriCharClass.
-
- @return
- An array of 128 booleans, to be used in calls to rtl_uriEncode().
- */
-sal_Bool const * SAL_CALL rtl_getUriCharClass(rtl_UriCharClass eCharClass)
- SAL_THROW_EXTERN_C();
-
-/** Encode a text as (part of) a URI.
-
- @param pText
- Any Unicode string. Must not be null.
-
- @param pCharClass
- A char class, represented as an array of 128 booleans (true means keep the
- corresponding ASCII character unencoded, false means encode it). Must not
- be null, and the boolean corresponding to the percent sign (0x25) must be
- false. (See rtl_getUriCharClass() for a function mapping from
- rtl_UriCharClass to such arrays.)
-
- @param eMechanism
- The mechanism describing how escape sequences in the input text are
- handled.
-
- @param eCharset
- When Unicode characters from the input text have to be written using
- escape sequences (because they are either outside the ASCII range or do
- not belong to the given char class), they are first translated into this
- charset before being encoded using escape sequences.
-
- Also, if the encode mechanism is rtl_UriEncodeCheckEscapes, all escape
- sequences already present in the input text are interpreted as characters
- from this charset.
-
- @param pResult
- Returns an encoded representation of the input text. Must itself not be
- null, and must point to either null or a valid string.
-
- If the encode mechanism is rtl_UriEncodeStrict, and pText cannot be
- converted to eCharset because it contains unmappable characters (which
- implies that pText is not empty), then an empty string is returned.
- */
-void SAL_CALL rtl_uriEncode(rtl_uString * pText,
- sal_Bool const * pCharClass,
- rtl_UriEncodeMechanism eMechanism,
- rtl_TextEncoding eCharset,
- rtl_uString ** pResult)
- SAL_THROW_EXTERN_C();
-
-/** Decode (a part of) a URI.
-
- @param pText
- Any Unicode string. Must not be null. (If the input is indeed part of a
- valid URI, this string will only contain a subset of the ASCII characters,
- but this function also handles other Unicode characters properly.)
-
- @param eMechanism
- The mechanism describing how the input text is translated into a Unicode
- string.
-
- @param eCharset
- When the decode mechanism is rtl_UriDecodeWithCharset, all escape
- sequences in the input text are interpreted as characters from this
- charset. Those characters are translated to Unicode characters in the
- resulting output, if possible.
-
- When the decode mechanism is rtl_UriDecodeNone or rtl_UriDecodeToIuri,
- this parameter is ignored (and is best specified as
- RTL_TEXTENCODING_UTF8).
-
- @param pResult
- Returns a decoded representation of the input text. Must itself not be
- null, and must point to either null or a valid string.
-
- If the decode mechanism is rtl_UriDecodeStrict, and pText cannot be
- converted to eCharset because it contains (encodings of) unmappable
- characters (which implies that pText is not empty), then an empty string is
- returned.
- */
-void SAL_CALL rtl_uriDecode(rtl_uString * pText,
- rtl_UriDecodeMechanism eMechanism,
- rtl_TextEncoding eCharset,
- rtl_uString ** pResult)
- SAL_THROW_EXTERN_C();
-
-/** Convert a relative URI reference into an absolute one.
-
- A URI reference is a URI plus an optional <"#" fragment> part.
-
- This function uses the algorithm described in RFC 2396, section 5.2, with
- the following clarifications: (1) Backwards-compatible relative URIs
- starting with a scheme component (see RFC 2396, section 5.2, step 3) are not
- supported. (2) Segments "." and ".." within the path of the base URI are
- not considered special, RFC 2396 seems a bit unlcear about that point.
- (3) Erroneous excess segments ".." within the path of the relative URI (if
- it is indeed relative) are left intact, as the examples in RFC 2396,
- section C.2, suggest. (4) If the relative URI is a reference to the
- "current document," the "current document" is taken to be the base URI.
-
- This function signals exceptions by returning false and letting pException
- point to a message explaining the exception.
-
- @param pBaseUriRef
- An absolute, hierarchical URI reference that serves as the base URI. If it
- has to be inspected (i.e., pRelUriRef is not an absolute URI already), and
- if it either is not an absolute URI (i.e., does not begin with a
- <scheme ":"> part) or has a path that is non-empty but does not start
- with "/", an exception will be signaled.
-
- @param pRelUriRef
- An URI reference that may be either absolute or relative. If it is
- absolute, it will be returned unmodified (and it need not be hierarchical
- then).
-
- @param pResult
- Returns an absolute URI reference. Must itself not be null, and must point
- to either null or a valid string. If an exception is signalled, it is left
- unchanged.
-
- @param pException
- Returns an explanatory message in case an exception is signalled. Must
- itself not be null, and must point to either null or a valid string. If no
- exception is signalled, it is left unchanged.
-
- @return
- True if no exception is signalled, otherwise false.
- */
-sal_Bool SAL_CALL rtl_uriConvertRelToAbs(rtl_uString * pBaseUriRef,
- rtl_uString * pRelUriRef,
- rtl_uString ** pResult,
- rtl_uString ** pException)
- SAL_THROW_EXTERN_C();
-
-#if defined __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _RTL_URI_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/uri.hxx b/sal/inc/rtl/uri.hxx
deleted file mode 100644
index 9ac037238..000000000
--- a/sal/inc/rtl/uri.hxx
+++ /dev/null
@@ -1,157 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_URI_HXX_
-#define _RTL_URI_HXX_
-
-#include "rtl/malformeduriexception.hxx"
-#include "rtl/uri.h"
-#include "rtl/textenc.h"
-#include "rtl/ustring.hxx"
-#include "sal/types.h"
-
-namespace rtl {
-
-/** A wrapper around the C functions from <rtl/uri.h>.
- */
-class Uri
-{
-public:
- /** A wrapper around rtl_uriEncode() from <rtl/uri.h> (see there), using
- an array of 128 booleans as char class.
- */
- static inline rtl::OUString encode(rtl::OUString const & rText,
- sal_Bool const * pCharClass,
- rtl_UriEncodeMechanism eMechanism,
- rtl_TextEncoding eCharset)
- SAL_THROW(());
-
- /** A wrapper around rtl_uriEncode() from <rtl/uri.h> (see there), using
- a predefined rtl_UriCharClass enumeration member.
- */
- static inline rtl::OUString encode(rtl::OUString const & rText,
- rtl_UriCharClass eCharClass,
- rtl_UriEncodeMechanism eMechanism,
- rtl_TextEncoding eCharset)
- SAL_THROW(());
-
- /** A wrapper around rtl_uriDecode() from <rtl/uri.h> (see there).
- */
- static inline rtl::OUString decode(rtl::OUString const & rText,
- rtl_UriDecodeMechanism eMechanism,
- rtl_TextEncoding eCharset)
- SAL_THROW(());
-
- /** A wrapper around rtl_uriConvertRelToAbs() from <rtl/uri.h> (see there).
-
- @exception MalformedUriException
- Thrown in case rtl_uriConvertRelToAbs() signals an exception due to a
- malformed base URI.
- */
- static inline rtl::OUString convertRelToAbs(
- rtl::OUString const & rBaseUriRef, rtl::OUString const & rRelUriRef);
-
-private:
- /** not implemented
- @internal */
- Uri();
-
- /** not implemented
- @internal */
- Uri(Uri &);
-
- /** not implemented
- @internal */
- ~Uri();
-
- /** not implemented
- @internal */
- void operator =(Uri);
-};
-
-inline rtl::OUString Uri::encode(rtl::OUString const & rText,
- sal_Bool const * pCharClass,
- rtl_UriEncodeMechanism eMechanism,
- rtl_TextEncoding eCharset)
- SAL_THROW(())
-{
- rtl::OUString aResult;
- rtl_uriEncode(const_cast< rtl::OUString & >(rText).pData,
- pCharClass,
- eMechanism,
- eCharset,
- &aResult.pData);
- return aResult;
-}
-
-inline rtl::OUString Uri::encode(rtl::OUString const & rText,
- rtl_UriCharClass eCharClass,
- rtl_UriEncodeMechanism eMechanism,
- rtl_TextEncoding eCharset)
- SAL_THROW(())
-{
- rtl::OUString aResult;
- rtl_uriEncode(const_cast< rtl::OUString & >(rText).pData,
- rtl_getUriCharClass(eCharClass),
- eMechanism,
- eCharset,
- &aResult.pData);
- return aResult;
-}
-
-inline rtl::OUString Uri::decode(rtl::OUString const & rText,
- rtl_UriDecodeMechanism eMechanism,
- rtl_TextEncoding eCharset)
- SAL_THROW(())
-{
- rtl::OUString aResult;
- rtl_uriDecode(const_cast< rtl::OUString & >(rText).pData,
- eMechanism,
- eCharset,
- &aResult.pData);
- return aResult;
-}
-
-inline rtl::OUString Uri::convertRelToAbs(rtl::OUString const & rBaseUriRef,
- rtl::OUString const & rRelUriRef)
-{
- rtl::OUString aResult;
- rtl::OUString aException;
- if (!rtl_uriConvertRelToAbs(
- const_cast< rtl::OUString & >(rBaseUriRef).pData,
- const_cast< rtl::OUString & >(rRelUriRef).pData, &aResult.pData,
- &aException.pData))
- throw MalformedUriException(aException);
- return aResult;
-}
-
-}
-
-#endif // _RTL_URI_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/ustrbuf.h b/sal/inc/rtl/ustrbuf.h
deleted file mode 100644
index 260db4f30..000000000
--- a/sal/inc/rtl/ustrbuf.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_USTRBUF_H_
-#define _RTL_USTRBUF_H_
-
-#include <rtl/ustring.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** @HTML
- Allocates a new <code>String</code> that contains characters from
- the character array argument.
-
- The <code>count</code> argument specifies
- the length of the array. The initial capacity of the string buffer is
- <code>16</code> plus the length of the string argument.
-
- @param newStr out parameter, contains the new string. The reference count is 1.
- @param value the initial value of the string.
- @param count the length of value.
- */
-void SAL_CALL rtl_uStringbuffer_newFromStr_WithLength( rtl_uString ** newStr,
- const sal_Unicode * value,
- sal_Int32 count );
-
-/**
- Allocates a new <code>String</code> that contains the same sequence of
- characters as the string argument.
-
- The initial capacity is the larger of:
- <ul>
- <li> The <code>bufferLen</code> argument.
- <li> The <code>length</code> of the string argument.
- </ul>
-
- @param newStr out parameter, contains the new string. The reference count is 1.
- @param capacity the initial len of the string buffer.
- @param oldStr the initial value of the string.
- @return the new capacity of the string buffer
- */
-sal_Int32 SAL_CALL rtl_uStringbuffer_newFromStringBuffer( rtl_uString ** newStr,
- sal_Int32 capacity,
- rtl_uString * olsStr );
-
-/**
- Ensures that the capacity of the buffer is at least equal to the
- specified minimum.
-
- If the current capacity of this string buffer is less than the
- argument, then a new internal buffer is allocated with greater
- capacity. The new capacity is the larger of:
- <ul>
- <li>The <code>minimumCapacity</code> argument.
- <li>Twice the old capacity, plus <code>2</code>.
- </ul>
- If the <code>minimumCapacity</code> argument is nonpositive, this
- method takes no action and simply returns.
-
- @param capacity in: old capicity, out: new capacity.
- @param minimumCapacity the minimum desired capacity.
- */
-void SAL_CALL rtl_uStringbuffer_ensureCapacity( /*inout*/rtl_uString ** This,
- /*inout*/sal_Int32* capacity,
- sal_Int32 minimumCapacity);
-
-/**
- Inserts the string representation of the <code>str</code> array
- argument into this string buffer.
-
- The characters of the array argument are inserted into the
- contents of this string buffer at the position indicated by
- <code>offset</code>. The length of this string buffer increases by
- the length of the argument.
-
- @param This The string, on that the operation should take place
- @param capacity the capacity of the string buffer
- @param offset the offset.
- @param str a character array.
- @param len the number of characters to append.
- */
-void SAL_CALL rtl_uStringbuffer_insert( /*inout*/rtl_uString ** This,
- /*inout*/sal_Int32 * capacity,
- sal_Int32 offset,
- const sal_Unicode * str,
- sal_Int32 len);
-
-/**
- Inserts a single UTF-32 character into this string buffer.
-
- <p>The single UTF-32 character will be represented within the string buffer
- as either one or two UTF-16 code units.</p>
-
- @param pThis the string buffer on which the operation is performed
-
- @param capacity the capacity of the string buffer
-
- @param offset the offset into this string buffer (from zero to the length
- of this string buffer, inclusive)
-
- @param c a well-formed UTF-32 code unit (that is, a value in the range
- <code>0</code>&ndash;<code>0x10FFFF</code>, but excluding
- <code>0xD800</code>&ndash;<code>0xDFFF</code>)
- */
-void SAL_CALL rtl_uStringbuffer_insertUtf32(
- rtl_uString ** pThis, sal_Int32 * capacity, sal_Int32 offset, sal_uInt32 c)
- SAL_THROW_EXTERN_C();
-
-/**
- Inserts the 8-Bit ASCII string representation of the <code>str</code>
- array argument into this string buffer.
-
- Since this function is optimized
- for performance, the ASCII character values are not converted in any way.
- The caller has to make sure that all ASCII characters are in the allowed
- range between 0 and 127.
- <p>
- The characters of the array argument are inserted into the
- contents of this string buffer at the position indicated by
- <code>offset</code>. The length of this string buffer increases by
- the length of the argument.
-
- @param This The string, on that the operation should take place
- @param capacity the capacity of the string buffer
- @param offset the offset.
- @param str a character array.
- @param len the number of characters to append.
- */
-void SAL_CALL rtl_uStringbuffer_insert_ascii( /*inout*/rtl_uString ** This,
- /*inout*/sal_Int32 * capacity,
- sal_Int32 offset,
- const sal_Char * str,
- sal_Int32 len);
-
-/**
- Removes the characters in a substring of this sequence.
-
- The substring begins at the specified <code>start</code> and
- is <code>len</code> characters long.
-
- start must be >= 0 && <= This->length
-
- @param start The beginning index, inclusive
- @param len The substring length
- */
-void SAL_CALL rtl_uStringbuffer_remove( /*inout*/rtl_uString ** This,
- sal_Int32 start,
- sal_Int32 len );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RTL_USTRBUF_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/ustrbuf.hxx b/sal/inc/rtl/ustrbuf.hxx
deleted file mode 100644
index cbab19399..000000000
--- a/sal/inc/rtl/ustrbuf.hxx
+++ /dev/null
@@ -1,798 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_USTRBUF_HXX_
-#define _RTL_USTRBUF_HXX_
-
-#include <osl/diagnose.h>
-#include <rtl/ustrbuf.h>
-#include <rtl/ustring.hxx>
-
-#ifdef __cplusplus
-
-namespace rtl
-{
-
-/** @HTML
- A string buffer implements a mutable sequence of characters.
- <p>
- String buffers are safe for use by multiple threads. The methods
- are synchronized where necessary so that all the operations on any
- particular instance behave as if they occur in some serial order.
- <p>
- String buffers are used by the compiler to implement the binary
- string concatenation operator <code>+</code>. For example, the code:
- <p><blockquote><pre>
- x = "a" + 4 + "c"
- </pre></blockquote><p>
- is compiled to the equivalent of:
- <p><blockquote><pre>
- x = new OUStringBuffer().append("a").append(4).append("c")
- .makeStringAndClear()
- </pre></blockquote><p>
- The principal operations on a <code>OUStringBuffer</code> are the
- <code>append</code> and <code>insert</code> methods, which are
- overloaded so as to accept data of any type. Each effectively
- converts a given datum to a string and then appends or inserts the
- characters of that string to the string buffer. The
- <code>append</code> method always adds these characters at the end
- of the buffer; the <code>insert</code> method adds the characters at
- a specified point.
- <p>
- For example, if <code>z</code> refers to a string buffer object
- whose current contents are "<code>start</code>", then
- the method call <code>z.append("le")</code> would cause the string
- buffer to contain "<code>startle</code>", whereas
- <code>z.insert(4, "le")</code> would alter the string buffer to
- contain "<code>starlet</code>".
- <p>
- Every string buffer has a capacity. As long as the length of the
- character sequence contained in the string buffer does not exceed
- the capacity, it is not necessary to allocate a new internal
- buffer array. If the internal buffer overflows, it is
- automatically made larger.
- */
-class OUStringBuffer
-{
-public:
- /**
- Constructs a string buffer with no characters in it and an
- initial capacity of 16 characters.
- */
- OUStringBuffer()
- : pData(NULL)
- , nCapacity( 16 )
- {
- rtl_uString_new_WithLength( &pData, nCapacity );
- }
-
- /**
- Allocates a new string buffer that contains the same sequence of
- characters as the string buffer argument.
-
- @param value a <code>OUStringBuffer</code>.
- */
- OUStringBuffer( const OUStringBuffer & value )
- : pData(NULL)
- , nCapacity( value.nCapacity )
- {
- rtl_uStringbuffer_newFromStringBuffer( &pData, value.nCapacity, value.pData );
- }
-
- /**
- Constructs a string buffer with no characters in it and an
- initial capacity specified by the <code>length</code> argument.
-
- @param length the initial capacity.
- */
- explicit OUStringBuffer(sal_Int32 length)
- : pData(NULL)
- , nCapacity( length )
- {
- rtl_uString_new_WithLength( &pData, length );
- }
-
- /**
- Constructs a string buffer so that it represents the same
- sequence of characters as the string argument.
-
- The initial
- capacity of the string buffer is <code>16</code> plus the length
- of the string argument.
-
- @param str the initial contents of the buffer.
- */
- OUStringBuffer(OUString value)
- : pData(NULL)
- , nCapacity( value.getLength() + 16 )
- {
- rtl_uStringbuffer_newFromStr_WithLength( &pData, value.getStr(), value.getLength() );
- }
-
- /** Assign to this a copy of value.
- */
- OUStringBuffer& operator = ( const OUStringBuffer& value )
- {
- if (this != &value)
- {
- rtl_uStringbuffer_newFromStringBuffer(&pData,
- value.nCapacity,
- value.pData);
- nCapacity = value.nCapacity;
- }
- return *this;
- }
-
- /**
- Release the string data.
- */
- ~OUStringBuffer()
- {
- rtl_uString_release( pData );
- }
-
- /**
- Fill the string data in the new string and clear the buffer.
-
- This method is more efficient than the contructor of the string. It does
- not copy the buffer.
-
- @return the string previously contained in the buffer.
- */
- OUString makeStringAndClear()
- {
- OUString aRet( pData );
- rtl_uString_new(&pData);
- nCapacity = 0;
- return aRet;
- }
-
- /**
- Returns the length (character count) of this string buffer.
-
- @return the number of characters in this string buffer.
- */
- sal_Int32 getLength() const
- {
- return pData->length;
- }
-
- /**
- Returns the current capacity of the String buffer.
-
- The capacity
- is the amount of storage available for newly inserted
- characters. The real buffer size is 2 bytes longer, because
- all strings are 0 terminated.
-
- @return the current capacity of this string buffer.
- */
- sal_Int32 getCapacity() const
- {
- return nCapacity;
- }
-
- /**
- Ensures that the capacity of the buffer is at least equal to the
- specified minimum.
-
- The new capacity will be at least as large as the maximum of the current
- length (so that no contents of the buffer is destroyed) and the given
- minimumCapacity. If the given minimumCapacity is negative, nothing is
- changed.
-
- @param minimumCapacity the minimum desired capacity.
- */
- void ensureCapacity(sal_Int32 minimumCapacity)
- {
- rtl_uStringbuffer_ensureCapacity( &pData, &nCapacity, minimumCapacity );
- }
-
- /**
- Sets the length of this String buffer.
-
- If the <code>newLength</code> argument is less than the current
- length of the string buffer, the string buffer is truncated to
- contain exactly the number of characters given by the
- <code>newLength</code> argument.
- <p>
- If the <code>newLength</code> argument is greater than or equal
- to the current length, sufficient null characters
- (<code>'&#92;u0000'</code>) are appended to the string buffer so that
- length becomes the <code>newLength</code> argument.
- <p>
- The <code>newLength</code> argument must be greater than or equal
- to <code>0</code>.
-
- @param newLength the new length of the buffer.
- */
- void setLength(sal_Int32 newLength)
- {
- OSL_ASSERT(newLength >= 0);
- // Avoid modifications if pData points to const empty string:
- if( newLength != pData->length )
- {
- if( newLength > nCapacity )
- rtl_uStringbuffer_ensureCapacity(&pData, &nCapacity, newLength);
- else
- pData->buffer[newLength] = 0;
- pData->length = newLength;
- }
- }
-
- /**
- Returns the character at a specific index in this string buffer.
-
- The first character of a string buffer is at index
- <code>0</code>, the next at index <code>1</code>, and so on, for
- array indexing.
- <p>
- The index argument must be greater than or equal to
- <code>0</code>, and less than the length of this string buffer.
-
- @param index the index of the desired character.
- @return the character at the specified index of this string buffer.
- */
- sal_Unicode charAt( sal_Int32 index ) const
- {
- OSL_ASSERT(index >= 0 && index < pData->length);
- return pData->buffer[ index ];
- }
-
- /**
- Return a null terminated unicode character array.
- */
- operator const sal_Unicode *() const { return pData->buffer; }
-
- /**
- Return a null terminated unicode character array.
- */
- const sal_Unicode* getStr() const { return pData->buffer; }
-
- /**
- Return a OUString instance reflecting the current content
- of this OUStringBuffer.
- */
- const OUString toString() const { return OUString(pData->buffer); }
-
- /**
- The character at the specified index of this string buffer is set
- to <code>ch</code>.
-
- The index argument must be greater than or equal to
- <code>0</code>, and less than the length of this string buffer.
-
- @param index the index of the character to modify.
- @param ch the new character.
- */
- OUStringBuffer & setCharAt(sal_Int32 index, sal_Unicode ch)
- {
- OSL_ASSERT(index >= 0 && index < pData->length);
- pData->buffer[ index ] = ch;
- return *this;
- }
-
- /**
- Appends the string to this string buffer.
-
- The characters of the <code>String</code> argument are appended, in
- order, to the contents of this string buffer, increasing the
- length of this string buffer by the length of the argument.
-
- @param str a string.
- @return this string buffer.
- */
- OUStringBuffer & append(const OUString &str)
- {
- return append( str.getStr(), str.getLength() );
- }
-
- /**
- Appends the string representation of the <code>char</code> array
- argument to this string buffer.
-
- The characters of the array argument are appended, in order, to
- the contents of this string buffer. The length of this string
- buffer increases by the length of the argument.
-
- @param str the characters to be appended.
- @return this string buffer.
- */
- OUStringBuffer & append( const sal_Unicode * str )
- {
- return append( str, rtl_ustr_getLength( str ) );
- }
-
- /**
- Appends the string representation of the <code>char</code> array
- argument to this string buffer.
-
- Characters of the character array <code>str</code> are appended,
- in order, to the contents of this string buffer. The length of this
- string buffer increases by the value of <code>len</code>.
-
- @param str the characters to be appended; must be non-null, and must
- point to at least len characters
- @param len the number of characters to append; must be non-negative
- @return this string buffer.
- */
- OUStringBuffer & append( const sal_Unicode * str, sal_Int32 len)
- {
- // insert behind the last character
- rtl_uStringbuffer_insert( &pData, &nCapacity, getLength(), str, len );
- return *this;
- }
-
- /**
- Appends a 8-Bit ASCII character string to this string buffer.
-
- Since this method is optimized for performance. the ASCII
- character values are not converted in any way. The caller
- has to make sure that all ASCII characters are in the
- allowed range between 0 and 127. The ASCII string must be
- NULL-terminated.
- <p>
- The characters of the array argument are appended, in order, to
- the contents of this string buffer. The length of this string
- buffer increases by the length of the argument.
-
- @param str the 8-Bit ASCII characters to be appended.
- @return this string buffer.
- */
- OUStringBuffer & appendAscii( const sal_Char * str )
- {
- return appendAscii( str, rtl_str_getLength( str ) );
- }
-
- /**
- Appends a 8-Bit ASCII character string to this string buffer.
-
- Since this method is optimized for performance. the ASCII
- character values are not converted in any way. The caller
- has to make sure that all ASCII characters are in the
- allowed range between 0 and 127. The ASCII string must be
- NULL-terminated.
- <p>
- Characters of the character array <code>str</code> are appended,
- in order, to the contents of this string buffer. The length of this
- string buffer increases by the value of <code>len</code>.
-
- @param str the 8-Bit ASCII characters to be appended; must be non-null,
- and must point to at least len characters
- @param len the number of characters to append; must be non-negative
- @return this string buffer.
- */
- OUStringBuffer & appendAscii( const sal_Char * str, sal_Int32 len)
- {
- rtl_uStringbuffer_insert_ascii( &pData, &nCapacity, getLength(), str, len );
- return *this;
- }
-
-
- /**
- Appends the string representation of the <code>sal_Bool</code>
- argument to the string buffer.
-
- The argument is converted to a string as if by the method
- <code>String.valueOf</code>, and the characters of that
- string are then appended to this string buffer.
-
- @param b a <code>sal_Bool</code>.
- @return this string buffer.
- */
- OUStringBuffer & append(sal_Bool b)
- {
- sal_Unicode sz[RTL_USTR_MAX_VALUEOFBOOLEAN];
- return append( sz, rtl_ustr_valueOfBoolean( sz, b ) );
- }
-
- /**
- Appends the string representation of the <code>char</code>
- argument to this string buffer.
-
- The argument is appended to the contents of this string buffer.
- The length of this string buffer increases by <code>1</code>.
-
- @param ch a <code>char</code>.
- @return this string buffer.
- */
- OUStringBuffer & append(sal_Unicode c)
- {
- return append( &c, 1 );
- }
-
- /**
- Appends the string representation of the <code>sal_Int32</code>
- argument to this string buffer.
-
- The argument is converted to a string as if by the method
- <code>String.valueOf</code>, and the characters of that
- string are then appended to this string buffer.
-
- @param i an <code>sal_Int32</code>.
- @return this string buffer.
- */
- OUStringBuffer & append(sal_Int32 i, sal_Int16 radix = 10 )
- {
- sal_Unicode sz[RTL_USTR_MAX_VALUEOFINT32];
- return append( sz, rtl_ustr_valueOfInt32( sz, i, radix ) );
- }
-
- /**
- Appends the string representation of the <code>long</code>
- argument to this string buffer.
-
- The argument is converted to a string as if by the method
- <code>String.valueOf</code>, and the characters of that
- string are then appended to this string buffer.
-
- @param l a <code>long</code>.
- @return this string buffer.
- */
- OUStringBuffer & append(sal_Int64 l, sal_Int16 radix = 10 )
- {
- sal_Unicode sz[RTL_USTR_MAX_VALUEOFINT64];
- return append( sz, rtl_ustr_valueOfInt64( sz, l, radix ) );
- }
-
- /**
- Appends the string representation of the <code>float</code>
- argument to this string buffer.
-
- The argument is converted to a string as if by the method
- <code>String.valueOf</code>, and the characters of that
- string are then appended to this string buffer.
-
- @param f a <code>float</code>.
- @return this string buffer.
- */
- OUStringBuffer & append(float f)
- {
- sal_Unicode sz[RTL_USTR_MAX_VALUEOFFLOAT];
- return append( sz, rtl_ustr_valueOfFloat( sz, f ) );
- }
-
- /**
- Appends the string representation of the <code>double</code>
- argument to this string buffer.
-
- The argument is converted to a string as if by the method
- <code>String.valueOf</code>, and the characters of that
- string are then appended to this string buffer.
-
- @param d a <code>double</code>.
- @return this string buffer.
- */
- OUStringBuffer & append(double d)
- {
- sal_Unicode sz[RTL_USTR_MAX_VALUEOFDOUBLE];
- return append( sz, rtl_ustr_valueOfDouble( sz, d ) );
- }
-
- /**
- Appends a single UTF-32 character to this string buffer.
-
- <p>The single UTF-32 character will be represented within the string
- buffer as either one or two UTF-16 code units.</p>
-
- @param c a well-formed UTF-32 code unit (that is, a value in the range
- <code>0</code>&ndash;<code>0x10FFFF</code>, but excluding
- <code>0xD800</code>&ndash;<code>0xDFFF</code>)
-
- @return
- this string buffer
- */
- OUStringBuffer & appendUtf32(sal_uInt32 c) {
- return insertUtf32(getLength(), c);
- }
-
- /**
- Inserts the string into this string buffer.
-
- The characters of the <code>String</code> argument are inserted, in
- order, into this string buffer at the indicated offset. The length
- of this string buffer is increased by the length of the argument.
- <p>
- The offset argument must be greater than or equal to
- <code>0</code>, and less than or equal to the length of this
- string buffer.
-
- @param offset the offset.
- @param str a string.
- @return this string buffer.
- */
- OUStringBuffer & insert(sal_Int32 offset, const OUString & str)
- {
- return insert( offset, str.getStr(), str.getLength() );
- }
-
- /**
- Inserts the string representation of the <code>char</code> array
- argument into this string buffer.
-
- The characters of the array argument are inserted into the
- contents of this string buffer at the position indicated by
- <code>offset</code>. The length of this string buffer increases by
- the length of the argument.
- <p>
- The offset argument must be greater than or equal to
- <code>0</code>, and less than or equal to the length of this
- string buffer.
-
- @param offset the offset.
- @param ch a character array.
- @return this string buffer.
- */
- OUStringBuffer & insert( sal_Int32 offset, const sal_Unicode * str )
- {
- return insert( offset, str, rtl_ustr_getLength( str ) );
- }
-
- /**
- Inserts the string representation of the <code>char</code> array
- argument into this string buffer.
-
- The characters of the array argument are inserted into the
- contents of this string buffer at the position indicated by
- <code>offset</code>. The length of this string buffer increases by
- the length of the argument.
- <p>
- The offset argument must be greater than or equal to
- <code>0</code>, and less than or equal to the length of this
- string buffer.
-
- @param offset the offset.
- @param ch a character array.
- @param len the number of characters to append.
- @return this string buffer.
- */
- OUStringBuffer & insert( sal_Int32 offset, const sal_Unicode * str, sal_Int32 len)
- {
- // insert behind the last character
- rtl_uStringbuffer_insert( &pData, &nCapacity, offset, str, len );
- return *this;
- }
-
- /**
- Inserts the string representation of the <code>sal_Bool</code>
- argument into this string buffer.
-
- The second argument is converted to a string as if by the method
- <code>String.valueOf</code>, and the characters of that
- string are then inserted into this string buffer at the indicated
- offset.
- <p>
- The offset argument must be greater than or equal to
- <code>0</code>, and less than or equal to the length of this
- string buffer.
-
- @param offset the offset.
- @param b a <code>sal_Bool</code>.
- @return this string buffer.
- */
- OUStringBuffer & insert(sal_Int32 offset, sal_Bool b)
- {
- sal_Unicode sz[RTL_USTR_MAX_VALUEOFBOOLEAN];
- return insert( offset, sz, rtl_ustr_valueOfBoolean( sz, b ) );
- }
-
- /**
- Inserts the string representation of the <code>char</code>
- argument into this string buffer.
-
- The second argument is inserted into the contents of this string
- buffer at the position indicated by <code>offset</code>. The length
- of this string buffer increases by one.
- <p>
- The offset argument must be greater than or equal to
- <code>0</code>, and less than or equal to the length of this
- string buffer.
-
- @param offset the offset.
- @param ch a <code>char</code>.
- @return this string buffer.
- */
- OUStringBuffer & insert(sal_Int32 offset, sal_Unicode c)
- {
- return insert( offset, &c, 1 );
- }
-
- /**
- Inserts the string representation of the second <code>sal_Int32</code>
- argument into this string buffer.
-
- The second argument is converted to a string as if by the method
- <code>String.valueOf</code>, and the characters of that
- string are then inserted into this string buffer at the indicated
- offset.
- <p>
- The offset argument must be greater than or equal to
- <code>0</code>, and less than or equal to the length of this
- string buffer.
-
- @param offset the offset.
- @param b an <code>sal_Int32</code>.
- @return this string buffer.
- @exception StringIndexOutOfBoundsException if the offset is invalid.
- */
- OUStringBuffer & insert(sal_Int32 offset, sal_Int32 i, sal_Int16 radix = 10 )
- {
- sal_Unicode sz[RTL_USTR_MAX_VALUEOFINT32];
- return insert( offset, sz, rtl_ustr_valueOfInt32( sz, i, radix ) );
- }
-
- /**
- Inserts the string representation of the <code>long</code>
- argument into this string buffer.
-
- The second argument is converted to a string as if by the method
- <code>String.valueOf</code>, and the characters of that
- string are then inserted into this string buffer at the indicated
- offset.
- <p>
- The offset argument must be greater than or equal to
- <code>0</code>, and less than or equal to the length of this
- string buffer.
-
- @param offset the offset.
- @param b a <code>long</code>.
- @return this string buffer.
- @exception StringIndexOutOfBoundsException if the offset is invalid.
- */
- OUStringBuffer & insert(sal_Int32 offset, sal_Int64 l, sal_Int16 radix = 10 )
- {
- sal_Unicode sz[RTL_USTR_MAX_VALUEOFINT64];
- return insert( offset, sz, rtl_ustr_valueOfInt64( sz, l, radix ) );
- }
-
- /**
- Inserts the string representation of the <code>float</code>
- argument into this string buffer.
-
- The second argument is converted to a string as if by the method
- <code>String.valueOf</code>, and the characters of that
- string are then inserted into this string buffer at the indicated
- offset.
- <p>
- The offset argument must be greater than or equal to
- <code>0</code>, and less than or equal to the length of this
- string buffer.
-
- @param offset the offset.
- @param b a <code>float</code>.
- @return this string buffer.
- @exception StringIndexOutOfBoundsException if the offset is invalid.
- */
- OUStringBuffer insert(sal_Int32 offset, float f)
- {
- sal_Unicode sz[RTL_USTR_MAX_VALUEOFFLOAT];
- return insert( offset, sz, rtl_ustr_valueOfFloat( sz, f ) );
- }
-
- /**
- Inserts the string representation of the <code>double</code>
- argument into this string buffer.
-
- The second argument is converted to a string as if by the method
- <code>String.valueOf</code>, and the characters of that
- string are then inserted into this string buffer at the indicated
- offset.
- <p>
- The offset argument must be greater than or equal to
- <code>0</code>, and less than or equal to the length of this
- string buffer.
-
- @param offset the offset.
- @param b a <code>double</code>.
- @return this string buffer.
- @exception StringIndexOutOfBoundsException if the offset is invalid.
- */
- OUStringBuffer & insert(sal_Int32 offset, double d)
- {
- sal_Unicode sz[RTL_USTR_MAX_VALUEOFDOUBLE];
- return insert( offset, sz, rtl_ustr_valueOfDouble( sz, d ) );
- }
-
- /**
- Inserts a single UTF-32 character into this string buffer.
-
- <p>The single UTF-32 character will be represented within the string
- buffer as either one or two UTF-16 code units.</p>
-
- @param offset the offset into this string buffer (from zero to the length
- of this string buffer, inclusive)
-
- @param c a well-formed UTF-32 code unit (that is, a value in the range
- <code>0</code>&ndash;<code>0x10FFFF</code>, but excluding
- <code>0xD800</code>&ndash;<code>0xDFFF</code>)
-
- @return this string buffer
- */
- OUStringBuffer & insertUtf32(sal_Int32 offset, sal_uInt32 c) {
- rtl_uStringbuffer_insertUtf32(&pData, &nCapacity, offset, c);
- return *this;
- }
-
- /**
- Removes the characters in a substring of this sequence.
-
- The substring begins at the specified <code>start</code> and
- is <code>len</code> characters long.
-
- start must be >= 0 && <= This->length
-
- @param start The beginning index, inclusive
- @param len The substring length
- @return this string buffer.
- */
- OUStringBuffer & remove( sal_Int32 start, sal_Int32 len )
- {
- rtl_uStringbuffer_remove( &pData, start, len );
- return *this;
- }
-
- /** Allows access to the internal data of this OUStringBuffer, for effective
- manipulation.
-
- This method should be used with care. After you have called this
- method, you may use the returned pInternalData or pInternalCapacity only
- as long as you make no other method call on this OUStringBuffer.
-
- @param pInternalData
- This output parameter receives a pointer to the internal data
- (rtl_uString pointer). pInternalData itself must not be null.
-
- @param pInternalCapacity
- This output parameter receives a pointer to the internal capacity.
- pInternalCapacity itself must not be null.
- */
- inline void accessInternals(rtl_uString *** pInternalData,
- sal_Int32 ** pInternalCapacity)
- {
- *pInternalData = &pData;
- *pInternalCapacity = &nCapacity;
- }
-
-private:
- /**
- A pointer to the data structur which contains the data.
- */
- rtl_uString * pData;
-
- /**
- The len of the pData->buffer.
- */
- sal_Int32 nCapacity;
-};
-
-}
-
-#endif /* __cplusplus */
-#endif /* _RTL_USTRBUF_HXX_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/ustring.h b/sal/inc/rtl/ustring.h
deleted file mode 100644
index e52242d68..000000000
--- a/sal/inc/rtl/ustring.h
+++ /dev/null
@@ -1,1663 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_USTRING_H_
-#define _RTL_USTRING_H_
-
-#include <sal/types.h>
-#include <osl/interlck.h>
-#include <rtl/string.h>
-#include <rtl/textenc.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* ======================================================================= */
-
-/** Return the length of a string.
-
- The length is equal to the number of 16-bit Unicode characters in the
- string, without the terminating NUL character.
-
- @param str
- a null-terminated string.
-
- @return
- the length of the sequence of characters represented by this string,
- excluding the terminating NUL character.
- */
-sal_Int32 SAL_CALL rtl_ustr_getLength( const sal_Unicode * str ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. This function
- cannot be used for language-specific sorting. Both strings must be
- null-terminated.
-
- @param first
- the first null-terminated string to be compared.
-
- @param second
- the second null-terminated string which is compared with the first one.
-
- @return
- 0 if both strings are equal, a value less than 0 if the first string is
- less than the second string, and a value greater than 0 if the first
- string is greater than the second string.
- */
-sal_Int32 SAL_CALL rtl_ustr_compare( const sal_Unicode * first, const sal_Unicode * second ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. This function
- cannot be used for language-specific sorting.
-
- @param first
- the first string to be compared. Need not be null-terminated, but must be
- at least as long as the specified firstLen.
-
- @param firstLen
- the length of the first string.
-
- @param second
- the second string which is compared with the first one. Need not be
- null-terminated, but must be at least as long as the specified secondLen.
-
- @param secondLen
- the length of the second string.
-
- @return
- 0 if both strings are equal, a value less than 0 if the first string is
- less than the second string, and a value greater than 0 if the first
- string is greater than the second string.
- */
-sal_Int32 SAL_CALL rtl_ustr_compare_WithLength( const sal_Unicode * first, sal_Int32 firstLen, const sal_Unicode * second, sal_Int32 secondLen ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings with a maximum count of characters.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. This function
- cannot be used for language-specific sorting.
-
- @param first
- the first string to be compared. Need not be null-terminated, but must be
- at least as long as the specified firstLen.
-
- @param firstLen
- the length of the first string.
-
- @param second
- the second string which is compared with the first one. Need not be
- null-terminated, but must be at least as long as the specified secondLen.
-
- @param secondLen
- the length of the second string.
-
- @param shortenedLen
- the maximum number of characters to compare. This length can be greater
- or smaller than the lengths of the two strings.
-
- @return
- 0 if both substrings are equal, a value less than 0 if the first substring
- is less than the second substring, and a value greater than 0 if the first
- substring is greater than the second substring.
- */
-sal_Int32 SAL_CALL rtl_ustr_shortenedCompare_WithLength( const sal_Unicode * first, sal_Int32 firstLen, const sal_Unicode * second, sal_Int32 secondLen, sal_Int32 shortenedLen ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings from back to front.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. This function
- cannot be used for language-specific sorting.
-
- @param first
- the first string to be compared. Need not be null-terminated, but must be
- at least as long as the specified firstLen.
-
- @param firstLen
- the length of the first string.
-
- @param second
- the second string which is compared with the first one. Need not be
- null-terminated, but must be at least as long as the specified secondLen.
-
- @param secondLen
- the length of the second string.
-
- @return
- 0 if both strings are equal, a value less than 0 if the first string
- compares less than the second string, and a value greater than 0 if the
- first string compares greater than the second string.
- */
-sal_Int32 SAL_CALL rtl_ustr_reverseCompare_WithLength( const sal_Unicode * first, sal_Int32 firstLen, const sal_Unicode * second, sal_Int32 secondLen ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings from back to front for equality.
-
- The comparison is based on the numeric value of each character in the
- strings and returns 'true' if, ans only if, both strings are equal.
- This function cannot be used for language-specific sorting.
-
- @param first
- the first string to be compared. Need not be null-terminated, but must be
- at least as long as the specified len.
-
- @param second
- the second string which is compared with the first one. Need not be
- null-terminated, but must be at least as long as the specified len.
-
- @param len
- the length of both strings.
-
- @return
- true if both strings are equal, false if they are not equal.
- */
-
-sal_Bool SAL_CALL rtl_ustr_asciil_reverseEquals_WithLength( const sal_Unicode * first, const sal_Char * second, sal_Int32 len ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings, ignoring the case of ASCII characters.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. Character
- values between 65 and 90 (ASCII A--Z) are interpreted as values between 97
- and 122 (ASCII a--z). This function cannot be used for language-specific
- sorting. Both strings must be null-terminated.
-
- @param first
- the first null-terminated string to be compared.
-
- @param second
- the second null-terminated string which is compared with the first one.
-
- @return
- 0 if both strings are equal, a value less than 0 if the first string is
- less than the second string, and a value greater than 0 if the first
- string is greater than the second string.
- */
-sal_Int32 SAL_CALL rtl_ustr_compareIgnoreAsciiCase( const sal_Unicode * first, const sal_Unicode * second ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings, ignoring the case of ASCII characters.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. Character
- values between 65 and 90 (ASCII A--Z) are interpreted as values between 97
- and 122 (ASCII a--z). This function cannot be used for language-specific
- sorting.
-
- @param first
- the first string to be compared. Need not be null-terminated, but must be
- at least as long as the specified firstLen.
-
- @param firstLen
- the length of the first string.
-
- @param second
- the second string which is compared with the first one. Need not be
- null-terminated, but must be at least as long as the specified secondLen.
-
- @param secondLen
- the length of the second string.
-
- @return
- 0 if both strings are equal, a value less than 0 if the first string is
- less than the second string, and a value greater than 0 if the first
- string is greater than the second string.
- */
-sal_Int32 SAL_CALL rtl_ustr_compareIgnoreAsciiCase_WithLength( const sal_Unicode * first, sal_Int32 firstLen, const sal_Unicode * second, sal_Int32 secondLen ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings with a maximum count of characters, ignoring the case
- of ASCII characters.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. Character
- values between 65 and 90 (ASCII A--Z) are interpreted as values between 97
- and 122 (ASCII a--z). This function cannot be used for language-specific
- sorting.
-
- @param first
- the first string to be compared. Need not be null-terminated, but must be
- at least as long as the specified firstLen.
-
- @param firstLen
- the length of the first string.
-
- @param second
- the second string which is compared with the first one. Need not be
- null-terminated, but must be at least as long as the specified secondLen.
-
- @param secondLen
- the length of the second string.
-
- @param shortenedLen
- the maximum number of characters to compare. This length can be greater
- or smaller than the lengths of the two strings.
-
- @return
- 0 if both substrings are equal, a value less than 0 if the first substring
- is less than the second substring, and a value greater than 0 if the first
- substring is greater than the second substring.
- */
-sal_Int32 SAL_CALL rtl_ustr_shortenedCompareIgnoreAsciiCase_WithLength( const sal_Unicode * first, sal_Int32 firstLen, const sal_Unicode * second, sal_Int32 secondLen, sal_Int32 shortenedLen ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. This function
- cannot be used for language-specific sorting. Both strings must be
- null-terminated.
-
- Since this function is optimized for performance, the ASCII character
- values are not converted in any way. The caller has to make sure that
- all ASCII characters are in the allowed range of 0 and 127, inclusive.
-
- @param first
- the first null-terminated string to be compared.
-
- @param second
- the second null-terminated ASCII string which is compared with the first
- one.
-
- @return
- 0 if both substrings are equal, a value less than 0 if the first substring
- is less than the second substring, and a value greater than 0 if the first
- substring is greater than the second substring.
- */
-sal_Int32 SAL_CALL rtl_ustr_ascii_compare( const sal_Unicode * first, const sal_Char * second ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. This function
- cannot be used for language-specific sorting.
-
- Since this function is optimized for performance, the ASCII character
- values are not converted in any way. The caller has to make sure that
- all ASCII characters are in the allowed range of 0 and 127, inclusive.
-
- @param first
- the first string to be compared. Need not be null-terminated, but must be
- at least as long as the specified firstLen.
-
- @param firstLen
- the length of the first string.
-
- @param second
- the second null-terminated ASCII string which is compared with the first
- one.
-
- @return
- 0 if both substrings are equal, a value less than 0 if the first substring
- is less than the second substring, and a value greater than 0 if the first
- substring is greater than the second substring.
- */
-sal_Int32 SAL_CALL rtl_ustr_ascii_compare_WithLength( const sal_Unicode * first, sal_Int32 firstLen, const sal_Char * second ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings with a maximum count of characters.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. This function
- cannot be used for language-specific sorting.
-
- Since this function is optimized for performance, the ASCII character
- values are not converted in any way. The caller has to make sure that
- all ASCII characters are in the allowed range of 0 and 127, inclusive.
-
- @param first
- the first string to be compared. Need not be null-terminated, but must be
- at least as long as the specified firstLen.
-
- @param firstLen
- the length of the first string.
-
- @param second
- the second null-terminated ASCII string which is compared with the first
- one.
-
- @param shortenedLen
- the maximum number of characters to compare. This length can be greater
- or smaller than the lengths of the two strings.
-
- @return
- 0 if both substrings are equal, a value less than 0 if the first substring
- is less than the second substring, and a value greater than 0 if the first
- substring is greater than the second substring.
- */
-sal_Int32 SAL_CALL rtl_ustr_ascii_shortenedCompare_WithLength( const sal_Unicode * first, sal_Int32 firstLen, const sal_Char * second, sal_Int32 shortenedLen ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings from back to front.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. This function
- cannot be used for language-specific sorting.
-
- Since this function is optimized for performance, the ASCII character
- values are not converted in any way. The caller has to make sure that
- all ASCII characters are in the allowed range of 0 and 127, inclusive.
-
- @param first
- the first string to be compared. Need not be null-terminated, but must be
- at least as long as the specified firstLen.
-
- @param firstLen
- the length of the first string.
-
- @param second
- the second ASCII string which is compared with the first one. Need not be
- null-terminated, but must be at least as long as the specified secondLen.
-
- @param secondLen
- the length of the second string.
-
- @return
- 0 if both strings are equal, a value less than 0 if the first string
- compares less than the second string, and a value greater than 0 if the
- first string compares greater than the second string.
- */
-sal_Int32 SAL_CALL rtl_ustr_asciil_reverseCompare_WithLength( const sal_Unicode * first, sal_Int32 firstLen, const sal_Char * second, sal_Int32 secondLen ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings, ignoring the case of ASCII characters.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. Character
- values between 65 and 90 (ASCII A--Z) are interpreted as values between 97
- and 122 (ASCII a--z). This function cannot be used for language-specific
- sorting. Both strings must be null-terminated.
-
- Since this function is optimized for performance, the ASCII character
- values are not converted in any way. The caller has to make sure that
- all ASCII characters are in the allowed range of 0 and 127, inclusive.
-
- @param first
- the first null-terminated string to be compared.
-
- @param second
- the second null-terminated ASCII string which is compared with the first
- one.
-
- @return
- 0 if both strings are equal, a value less than 0 if the first string is
- less than the second string, and a value greater than 0 if the first
- string is greater than the second string.
- */
-sal_Int32 SAL_CALL rtl_ustr_ascii_compareIgnoreAsciiCase( const sal_Unicode * first, const sal_Char * second ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings, ignoring the case of ASCII characters.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. Character
- values between 65 and 90 (ASCII A--Z) are interpreted as values between 97
- and 122 (ASCII a--z). This function cannot be used for language-specific
- sorting.
-
- Since this function is optimized for performance, the ASCII character
- values are not converted in any way. The caller has to make sure that
- all ASCII characters are in the allowed range of 0 and 127, inclusive.
-
- @param first
- the first string to be compared. Need not be null-terminated, but must be
- at least as long as the specified firstLen.
-
- @param firstLen
- the length of the first string.
-
- @param second
- the second null-terminated ASCII string which is compared with the first
- one.
-
- @return
- 0 if both strings are equal, a value less than 0 if the first string is
- less than the second string, and a value greater than 0 if the first
- string is greater than the second string.
- */
-sal_Int32 SAL_CALL rtl_ustr_ascii_compareIgnoreAsciiCase_WithLength( const sal_Unicode * first, sal_Int32 firstLen, const sal_Char * second ) SAL_THROW_EXTERN_C();
-
-/** Compare two strings, ignoring the case of ASCII characters.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. Character
- values between 65 and 90 (ASCII A--Z) are interpreted as values between 97
- and 122 (ASCII a--z). This function cannot be used for language-specific
- sorting.
-
- Since this function is optimized for performance, the ASCII character
- values are not converted in any way. The caller has to make sure that
- all ASCII characters are in the allowed range of 0 and 127, inclusive.
-
- @param first
- the first string to be compared. Need not be null-terminated, but must be
- at least as long as the specified firstLen.
-
- @param firstLen
- the length of the first string.
-
- @param second
- the second string which is compared with the first one. Need not be
- null-terminated, but must be at least as long as the specified secondLen.
-
- @param secondLen
- the length of the second string.
-
- @return
- 0 if both strings are equal, a value less than 0 if the first string is
- less than the second string, and a value greater than 0 if the first
- string is greater than the second string.
- */
-sal_Int32 SAL_CALL rtl_ustr_ascii_compareIgnoreAsciiCase_WithLengths(
- sal_Unicode const * first, sal_Int32 firstLen,
- char const * second, sal_Int32 secondLen) SAL_THROW_EXTERN_C();
-
-/** Compare two strings with a maximum count of characters, ignoring the case
- of ASCII characters.
-
- The comparison is based on the numeric value of each character in the
- strings and returns a value indicating their relationship. Character
- values between 65 and 90 (ASCII A--Z) are interpreted as values between 97
- and 122 (ASCII a--z). This function cannot be used for language-specific
- sorting.
-
- Since this function is optimized for performance, the ASCII character
- values are not converted in any way. The caller has to make sure that
- all ASCII characters are in the allowed range of 0 and 127, inclusive.
-
- @param first
- the first string to be compared. Need not be null-terminated, but must be
- at least as long as the specified firstLen.
-
- @param firstLen
- the length of the first string.
-
- @param second
- the second null-terminated ASCII string which is compared with the first
- one.
-
- @param shortenedLen
- the maximum number of characters to compare. This length can be greater
- or smaller than the lengths of the two strings.
-
- @return
- 0 if both substrings are equal, a value less than 0 if the first substring
- is less than the second substring, and a value greater than 0 if the first
- substring is greater than the second substring.
- */
-sal_Int32 SAL_CALL rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength( const sal_Unicode * first, sal_Int32 firstLen, const sal_Char * second, sal_Int32 shortenedLen ) SAL_THROW_EXTERN_C();
-
-/** Return a hash code for a string.
-
- It is not allowed to store the hash code persistently, because later
- versions could return other hash codes. The string must be
- null-terminated.
-
- @param str
- a null-terminated string.
-
- @return
- a hash code for the given string.
- */
-sal_Int32 SAL_CALL rtl_ustr_hashCode( const sal_Unicode * str ) SAL_THROW_EXTERN_C();
-
-/** Return a hash code for a string.
-
- It is not allowed to store the hash code persistently, because later
- versions could return other hash codes.
-
- @param str
- a string. Need not be null-terminated, but must be at least as long as
- the specified len.
-
- @param len
- the length of the string.
-
- @return
- a hash code for the given string.
- */
-sal_Int32 SAL_CALL rtl_ustr_hashCode_WithLength( const sal_Unicode * str, sal_Int32 len ) SAL_THROW_EXTERN_C();
-
-/** Search for the first occurrence of a character within a string.
-
- The string must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @param ch
- the character to be searched for.
-
- @return
- the index (starting at 0) of the first occurrence of the character in the
- string, or -1 if the character does not occur.
- */
-sal_Int32 SAL_CALL rtl_ustr_indexOfChar( const sal_Unicode * str, sal_Unicode ch ) SAL_THROW_EXTERN_C();
-
-/** Search for the first occurrence of a character within a string.
-
- @param str
- a string. Need not be null-terminated, but must be at least as long as
- the specified len.
-
- @param len
- the length of the string.
-
- @param ch
- the character to be searched for.
-
- @return
- the index (starting at 0) of the first occurrence of the character in the
- string, or -1 if the character does not occur.
- */
-sal_Int32 SAL_CALL rtl_ustr_indexOfChar_WithLength( const sal_Unicode * str, sal_Int32 len, sal_Unicode ch ) SAL_THROW_EXTERN_C();
-
-/** Search for the last occurrence of a character within a string.
-
- The string must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @param ch
- the character to be searched for.
-
- @return
- the index (starting at 0) of the last occurrence of the character in the
- string, or -1 if the character does not occur. The returned value is
- always smaller than the string length.
- */
-sal_Int32 SAL_CALL rtl_ustr_lastIndexOfChar( const sal_Unicode * str, sal_Unicode ch ) SAL_THROW_EXTERN_C();
-
-/** Search for the last occurrence of a character within a string.
-
- @param str
- a string. Need not be null-terminated, but must be at least as long as
- the specified len.
-
- @param len
- the length of the string.
-
- @param ch
- the character to be searched for.
-
- @return
- the index (starting at 0) of the last occurrence of the character in the
- string, or -1 if the character does not occur. The returned value is
- always smaller than the string length.
- */
-sal_Int32 SAL_CALL rtl_ustr_lastIndexOfChar_WithLength( const sal_Unicode * str, sal_Int32 len, sal_Unicode ch ) SAL_THROW_EXTERN_C();
-
-/** Search for the first occurrence of a substring within a string.
-
- If subStr is empty, or both str and subStr are empty, -1 is returned.
- Both strings must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @param subStr
- the null-terminated substring to be searched for.
-
- @return
- the index (starting at 0) of the first character of the first occurrence
- of the substring within the string, or -1 if the substring does not occur.
- */
-sal_Int32 SAL_CALL rtl_ustr_indexOfStr( const sal_Unicode * str, const sal_Unicode * subStr ) SAL_THROW_EXTERN_C();
-
-/** Search for the first occurrence of a substring within a string.
-
- If subStr is empty, or both str and subStr are empty, -1 is returned.
-
- @param str
- a string. Need not be null-terminated, but must be at least as long as
- the specified len.
-
- @param len
- the length of the string.
-
- @param subStr
- the substring to be searched for. Need not be null-terminated, but must
- be at least as long as the specified subLen.
-
- @param subLen
- the length of the substring.
-
- @return
- the index (starting at 0) of the first character of the first occurrence
- of the substring within the string, or -1 if the substring does not occur.
- */
-sal_Int32 SAL_CALL rtl_ustr_indexOfStr_WithLength( const sal_Unicode * str, sal_Int32 len, const sal_Unicode * subStr, sal_Int32 subLen ) SAL_THROW_EXTERN_C();
-
-/** Search for the first occurrence of an ASCII substring within a string.
-
- @param str
- a string. Need not be null-terminated, but must be at least as long as
- the specified len.
-
- @param len
- the length of the string; must be non-negative.
-
- @param subStr
- the substring to be searched for. Need not be null-terminated, but must
- be at least as long as the specified subLen. Must only contain characters
- in the ASCII range 0x00--7F.
-
- @param subLen
- the length of the substring; must be non-negative.
-
- @return
- the index (starting at 0) of the first character of the first occurrence
- of the substring within the string, or -1 if the substring does not occur.
- If subLen is zero, -1 is returned.
-
- @since UDK 3.2.7
-*/
-sal_Int32 SAL_CALL rtl_ustr_indexOfAscii_WithLength(
- sal_Unicode const * str, sal_Int32 len,
- char const * subStr, sal_Int32 subLen) SAL_THROW_EXTERN_C();
-
-/** Search for the last occurrence of a substring within a string.
-
- If subStr is empty, or both str and subStr are empty, -1 is returned.
- Both strings must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @param subStr
- the null-terminated substring to be searched for.
-
- @return
- the index (starting at 0) of the first character of the last occurrence
- of the substring within the string, or -1 if the substring does not occur.
- */
-sal_Int32 SAL_CALL rtl_ustr_lastIndexOfStr( const sal_Unicode * str, const sal_Unicode * subStr ) SAL_THROW_EXTERN_C();
-
-/** Search for the last occurrence of a substring within a string.
-
- If subStr is empty, or both str and subStr are empty, -1 is returned.
-
- @param str
- a string. Need not be null-terminated, but must be at least as long as
- the specified len.
-
- @param len
- the length of the string.
-
- @param subStr
- the substring to be searched for. Need not be null-terminated, but must
- be at least as long as the specified subLen.
-
- @param subLen
- the length of the substring.
-
- @return
- the index (starting at 0) of the first character of the first occurrence
- of the substring within the string, or -1 if the substring does not occur.
- */
-sal_Int32 SAL_CALL rtl_ustr_lastIndexOfStr_WithLength( const sal_Unicode * str, sal_Int32 len, const sal_Unicode * subStr, sal_Int32 subLen ) SAL_THROW_EXTERN_C();
-
-/** Search for the last occurrence of an ASCII substring within a string.
-
- @param str
- a string. Need not be null-terminated, but must be at least as long as
- the specified len.
-
- @param len
- the length of the string; must be non-negative.
-
- @param subStr
- the substring to be searched for. Need not be null-terminated, but must
- be at least as long as the specified subLen. Must only contain characters
- in the ASCII range 0x00--7F.
-
- @param subLen
- the length of the substring; must be non-negative.
-
- @return
- the index (starting at 0) of the first character of the last occurrence
- of the substring within the string, or -1 if the substring does not occur.
- If subLen is zero, -1 is returned.
-
- @since UDK 3.2.7
-*/
-sal_Int32 SAL_CALL rtl_ustr_lastIndexOfAscii_WithLength(
- sal_Unicode const * str, sal_Int32 len,
- char const * subStr, sal_Int32 subLen) SAL_THROW_EXTERN_C();
-
-/** Replace all occurrences of a single character within a string.
-
- If oldChar does not occur within str, then the string is not modified.
- The string must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @param oldChar
- the old character.
-
- @param newChar
- the new character.
- */
-void SAL_CALL rtl_ustr_replaceChar( sal_Unicode * str, sal_Unicode oldChar, sal_Unicode newChar ) SAL_THROW_EXTERN_C();
-
-/** Replace all occurrences of a single character within a string.
-
- If oldChar does not occur within str, then the string is not modified.
-
- @param str
- a string. Need not be null-terminated, but must be at least as long as
- the specified len.
-
- @param len
- the length of the string.
-
- @param oldChar
- the old character.
-
- @param newChar
- the new character.
- */
-void SAL_CALL rtl_ustr_replaceChar_WithLength( sal_Unicode * str, sal_Int32 len, sal_Unicode oldChar, sal_Unicode newChar ) SAL_THROW_EXTERN_C();
-
-/** Convert all ASCII uppercase letters to lowercase within a string.
-
- The characters with values between 65 and 90 (ASCII A--Z) are replaced
- with values between 97 and 122 (ASCII a--z). The string must be
- null-terminated.
-
- @param str
- a null-terminated string.
- */
-void SAL_CALL rtl_ustr_toAsciiLowerCase( sal_Unicode * str ) SAL_THROW_EXTERN_C();
-
-/** Convert all ASCII uppercase letters to lowercase within a string.
-
- The characters with values between 65 and 90 (ASCII A--Z) are replaced
- with values between 97 and 122 (ASCII a--z).
-
- @param str
- a string. Need not be null-terminated, but must be at least as long as
- the specified len.
-
- @param len
- the length of the string.
- */
-void SAL_CALL rtl_ustr_toAsciiLowerCase_WithLength( sal_Unicode * str, sal_Int32 len ) SAL_THROW_EXTERN_C();
-
-/** Convert all ASCII lowercase letters to uppercase within a string.
-
- The characters with values between 97 and 122 (ASCII a--z) are replaced
- with values between 65 and 90 (ASCII A--Z). The string must be
- null-terminated.
-
- @param str
- a null-terminated string.
- */
-void SAL_CALL rtl_ustr_toAsciiUpperCase( sal_Unicode * str ) SAL_THROW_EXTERN_C();
-
-/** Convert all ASCII lowercase letters to uppercase within a string.
-
- The characters with values between 97 and 122 (ASCII a--z) are replaced
- with values between 65 and 90 (ASCII A--Z).
-
- @param str
- a string. Need not be null-terminated, but must be at least as long as
- the specified len.
-
- @param len
- the length of the string.
- */
-void SAL_CALL rtl_ustr_toAsciiUpperCase_WithLength( sal_Unicode * str, sal_Int32 len ) SAL_THROW_EXTERN_C();
-
-/** Remove white space from both ends of a string.
-
- All characters with values less than or equal to 32 (the space character)
- are considered to be white space. This function cannot be used for
- language-specific operations. The string must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @return
- the new length of the string.
- */
-sal_Int32 SAL_CALL rtl_ustr_trim( sal_Unicode * str ) SAL_THROW_EXTERN_C();
-
-/** Remove white space from both ends of the string.
-
- All characters with values less than or equal to 32 (the space character)
- are considered to be white space. This function cannot be used for
- language-specific operations. The string must be null-terminated.
-
- @param str
- a string. Need not be null-terminated, but must be at least as long as
- the specified len.
-
- @param len
- the original length of the string.
-
- @return
- the new length of the string.
- */
-sal_Int32 SAL_CALL rtl_ustr_trim_WithLength( sal_Unicode * str, sal_Int32 len ) SAL_THROW_EXTERN_C();
-
-/** Create the string representation of a boolean.
-
- If b is true, the buffer is filled with the string "true" and 5 is
- returned. If b is false, the buffer is filled with the string "false" and
- 6 is returned. This function cannot be used for language-specific
- operations.
-
- @param str
- a buffer that is big enough to hold the result and the terminating NUL
- character. You should use the RTL_USTR_MAX_VALUEOFBOOLEAN define to
- create a buffer that is big enough.
-
- @param b
- a boolean value.
-
- @return
- the length of the string.
- */
-sal_Int32 SAL_CALL rtl_ustr_valueOfBoolean( sal_Unicode * str, sal_Bool b ) SAL_THROW_EXTERN_C();
-#define RTL_USTR_MAX_VALUEOFBOOLEAN RTL_STR_MAX_VALUEOFBOOLEAN
-
-/** Create the string representation of a character.
-
- @param str
- a buffer that is big enough to hold the result and the terminating NUL
- character. You should use the RTL_USTR_MAX_VALUEOFCHAR define to create a
- buffer that is big enough.
-
- @param ch
- a character value.
-
- @return
- the length of the string.
- */
-sal_Int32 SAL_CALL rtl_ustr_valueOfChar( sal_Unicode * str, sal_Unicode ch ) SAL_THROW_EXTERN_C();
-#define RTL_USTR_MAX_VALUEOFCHAR RTL_STR_MAX_VALUEOFCHAR
-
-/** Create the string representation of an integer.
-
- This function cannot be used for language-specific operations.
-
- @param str
- a buffer that is big enough to hold the result and the terminating NUL
- character. You should use the RTL_USTR_MAX_VALUEOFINT32 define to create
- a buffer that is big enough.
-
- @param i
- an integer value.
-
- @param radix
- the radix. Must be between RTL_USTR_MIN_RADIX (2) and RTL_USTR_MAX_RADIX
- (36), inclusive.
-
- @return
- the length of the string.
- */
-sal_Int32 SAL_CALL rtl_ustr_valueOfInt32( sal_Unicode * str, sal_Int32 i, sal_Int16 radix ) SAL_THROW_EXTERN_C();
-#define RTL_USTR_MIN_RADIX RTL_STR_MIN_RADIX
-#define RTL_USTR_MAX_RADIX RTL_STR_MAX_RADIX
-#define RTL_USTR_MAX_VALUEOFINT32 RTL_STR_MAX_VALUEOFINT32
-
-/** Create the string representation of a long integer.
-
- This function cannot be used for language-specific operations.
-
- @param str
- a buffer that is big enough to hold the result and the terminating NUL
- character. You should use the RTL_USTR_MAX_VALUEOFINT64 define to create
- a buffer that is big enough.
-
- @param l
- a long integer value.
-
- @param radix
- the radix. Must be between RTL_USTR_MIN_RADIX (2) and RTL_USTR_MAX_RADIX
- (36), inclusive.
-
- @return
- the length of the string.
- */
-sal_Int32 SAL_CALL rtl_ustr_valueOfInt64( sal_Unicode * str, sal_Int64 l, sal_Int16 radix ) SAL_THROW_EXTERN_C();
-#define RTL_USTR_MAX_VALUEOFINT64 RTL_STR_MAX_VALUEOFINT64
-
-/** Create the string representation of a float.
-
- This function cannot be used for language-specific conversion.
-
- @param str
- a buffer that is big enough to hold the result and the terminating NUL
- character. You should use the RTL_USTR_MAX_VALUEOFFLOAT define to create
- a buffer that is big enough.
-
- @param f
- a float value.
-
- @return
- the length of the string.
- */
-sal_Int32 SAL_CALL rtl_ustr_valueOfFloat( sal_Unicode * str, float f ) SAL_THROW_EXTERN_C();
-#define RTL_USTR_MAX_VALUEOFFLOAT RTL_STR_MAX_VALUEOFFLOAT
-
-/** Create the string representation of a double.
-
- This function cannot be used for language-specific conversion.
-
- @param str
- a buffer that is big enough to hold the result and the terminating NUL
- character. You should use the RTL_USTR_MAX_VALUEOFDOUBLE define to create
- a buffer that is big enough.
-
- @param d
- a double value.
-
- @return
- the length of the string.
- */
-sal_Int32 SAL_CALL rtl_ustr_valueOfDouble( sal_Unicode * str, double d ) SAL_THROW_EXTERN_C();
-#define RTL_USTR_MAX_VALUEOFDOUBLE RTL_STR_MAX_VALUEOFDOUBLE
-
-/** Interpret a string as a boolean.
-
- This function cannot be used for language-specific conversion. The string
- must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @return
- true if the string is "1" or "true" in any ASCII case, false otherwise.
- */
-sal_Bool SAL_CALL rtl_ustr_toBoolean( const sal_Unicode * str ) SAL_THROW_EXTERN_C();
-
-/** Interpret a string as an integer.
-
- This function cannot be used for language-specific conversion. The string
- must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @param radix
- the radix. Must be between RTL_USTR_MIN_RADIX (2) and RTL_USTR_MAX_RADIX
- (36), inclusive.
-
- @return
- the integer value represented by the string, or 0 if the string does not
- represent an integer.
- */
-sal_Int32 SAL_CALL rtl_ustr_toInt32( const sal_Unicode * str, sal_Int16 radix ) SAL_THROW_EXTERN_C();
-
-/** Interpret a string as a long integer.
-
- This function cannot be used for language-specific conversion. The string
- must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @param radix
- the radix. Must be between RTL_USTR_MIN_RADIX (2) and RTL_USTR_MAX_RADIX
- (36), inclusive.
-
- @return
- the long integer value represented by the string, or 0 if the string does
- not represent a long integer.
- */
-sal_Int64 SAL_CALL rtl_ustr_toInt64( const sal_Unicode * str, sal_Int16 radix ) SAL_THROW_EXTERN_C();
-
-/** Interpret a string as a float.
-
- This function cannot be used for language-specific conversion. The string
- must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @return
- the float value represented by the string, or 0.0 if the string does not
- represent a float.
- */
-float SAL_CALL rtl_ustr_toFloat( const sal_Unicode * str ) SAL_THROW_EXTERN_C();
-
-/** Interpret a string as a double.
-
- This function cannot be used for language-specific conversion. The string
- must be null-terminated.
-
- @param str
- a null-terminated string.
-
- @return
- the float value represented by the string, or 0.0 if the string does not
- represent a double.
- */
-double SAL_CALL rtl_ustr_toDouble( const sal_Unicode * str ) SAL_THROW_EXTERN_C();
-
-/* ======================================================================= */
-
-#if defined(SAL_W32)
-#pragma pack(push, 4)
-#endif
-
-/** The implementation of a Unicode string.
-
- @internal
-*/
-typedef struct _rtl_uString
-{
- oslInterlockedCount refCount; /* opaque */
- sal_Int32 length;
- sal_Unicode buffer[1];
-} rtl_uString;
-
-#if defined(SAL_W32)
-#pragma pack(pop)
-#endif
-
-/* ----------------------------------------------------------------------- */
-
-/** Increment the reference count of a string.
-
- @param str
- a string.
- */
-void SAL_CALL rtl_uString_acquire( rtl_uString * str ) SAL_THROW_EXTERN_C();
-
-/** Decrement the reference count of a string.
-
- If the count goes to zero than the string data is deleted.
-
- @param str
- a string.
- */
-void SAL_CALL rtl_uString_release( rtl_uString * str ) SAL_THROW_EXTERN_C();
-
-/** Allocate a new string containing no characters.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
- */
-void SAL_CALL rtl_uString_new( rtl_uString ** newStr ) SAL_THROW_EXTERN_C();
-
-/** Allocate a new string containing space for a given number of characters.
-
- If len is greater than zero, the reference count of the new string will be
- 1. The values of all characters are set to 0 and the length of the string
- is 0. This function does not handle out-of-memory conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param len
- the number of characters.
- */
-void SAL_CALL rtl_uString_new_WithLength( rtl_uString ** newStr, sal_Int32 nLen ) SAL_THROW_EXTERN_C();
-
-/** Allocate a new string that contains a copy of another string.
-
- If the length of value is greater than zero, the reference count of the
- new string will be 1. This function does not handle out-of-memory
- conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param value
- a valid string.
- */
-void SAL_CALL rtl_uString_newFromString( rtl_uString ** newStr, const rtl_uString * value ) SAL_THROW_EXTERN_C();
-
-/** Allocate a new string that contains a copy of a character array.
-
- If the length of value is greater than zero, the reference count of the
- new string will be 1. This function does not handle out-of-memory
- conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param value
- a null-terminated character array.
- */
-void SAL_CALL rtl_uString_newFromStr( rtl_uString ** newStr, const sal_Unicode * value ) SAL_THROW_EXTERN_C();
-
-/** Allocate a new string that contains a copy of a character array.
-
- If the length of value is greater than zero, the reference count of the
- new string will be 1. This function does not handle out-of-memory
- conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param value
- a character array. Need not be null-terminated, but must be at least as
- long as the specified len.
-
- @param len
- the length of the character array.
- */
-void SAL_CALL rtl_uString_newFromStr_WithLength( rtl_uString ** newStr, const sal_Unicode * value, sal_Int32 len ) SAL_THROW_EXTERN_C();
-
-/** Allocate a new string that contains a copy of a character array.
-
- If the length of value is greater than zero, the reference count of the
- new string will be 1. This function does not handle out-of-memory
- conditions.
-
- Since this function is optimized for performance, the ASCII character
- values are not converted in any way. The caller has to make sure that
- all ASCII characters are in the allowed range of 0 and 127, inclusive.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param value
- a null-terminated ASCII character array.
- */
-void SAL_CALL rtl_uString_newFromAscii( rtl_uString ** newStr, const sal_Char * value ) SAL_THROW_EXTERN_C();
-
-/** Allocate a new string from an array of Unicode code points.
-
- @param newString
- a non-null pointer to a (possibly null) rtl_uString pointer, which (if
- non-null) will have been passed to rtl_uString_release before the function
- returns. Upon return, points to the newly allocated string or to null if
- there was either an out-of-memory condition or the resulting number of
- UTF-16 code units would have been larger than SAL_MAX_INT32. The newly
- allocated string (if any) must ultimately be passed to rtl_uString_release.
-
- @param codePoints
- an array of at least codePointCount code points, which each must be in the
- range from 0 to 0x10FFFF, inclusive. May be null if codePointCount is zero.
-
- @param codePointCount
- the non-negative number of code points.
-
- @since UDK 3.2.7
-*/
-void SAL_CALL rtl_uString_newFromCodePoints(
- rtl_uString ** newString, sal_uInt32 const * codePoints,
- sal_Int32 codePointCount) SAL_THROW_EXTERN_C();
-
-/** Assign a new value to a string.
-
- First releases any value str might currently hold, then acquires
- rightValue.
-
- @param str
- pointer to the string. The pointed-to data must be null or a valid
- string.
-
- @param rightValue
- a valid string.
- */
-void SAL_CALL rtl_uString_assign( rtl_uString ** str, rtl_uString * rightValue ) SAL_THROW_EXTERN_C();
-
-/** Return the length of a string.
-
- The length is equal to the number of characters in the string.
-
- @param str
- a valid string.
-
- @return
- the length of the string.
- */
-sal_Int32 SAL_CALL rtl_uString_getLength( const rtl_uString * str ) SAL_THROW_EXTERN_C();
-
-/** Return a pointer to the underlying character array of a string.
-
- @param str
- a valid string.
-
- @return
- a pointer to the null-terminated character array.
- */
-sal_Unicode * SAL_CALL rtl_uString_getStr( rtl_uString * str ) SAL_THROW_EXTERN_C();
-
-/** Create a new string that is the concatenation of two other strings.
-
- The new string does not necessarily have a reference count of 1 (in cases
- where one of the two other strings is empty), so it must not be modified
- without checking the reference count. This function does not handle
- out-of-memory conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param left
- a valid string.
-
- @param right
- a valid string.
- */
-void SAL_CALL rtl_uString_newConcat( rtl_uString ** newStr, rtl_uString * left, rtl_uString * right ) SAL_THROW_EXTERN_C();
-
-/** Create a new string by replacing a substring of another string.
-
- The new string results from replacing a number of characters (count),
- starting at the specified position (index) in the original string (str),
- with some new substring (subStr). If subStr is null, than only a number
- of characters is deleted.
-
- The new string does not necessarily have a reference count of 1, so it
- must not be modified without checking the reference count. This function
- does not handle out-of-memory conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param str
- a valid string.
-
- @param index
- the index into str at which to start replacement. Must be between 0 and
- the length of str, inclusive.
-
- @param count
- the number of charcters to remove. Must not be negative, and the sum of
- index and count must not exceed the length of str.
-
- @param subStr
- either null or a valid string to be inserted.
- */
-void SAL_CALL rtl_uString_newReplaceStrAt( rtl_uString ** newStr, rtl_uString * str, sal_Int32 idx, sal_Int32 count, rtl_uString * subStr ) SAL_THROW_EXTERN_C();
-
-/** Create a new string by replacing all occurrences of a single character
- within another string.
-
- The new string results from replacing all occurrences of oldChar in str
- with newChar.
-
- The new string does not necessarily have a reference count of 1 (in cases
- where oldChar does not occur in str), so it must not be modified without
- checking the reference count. This function does not handle out-of-memory
- conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param str
- a valid string.
-
- @param oldChar
- the old character.
-
- @param newChar
- the new character.
- */
-void SAL_CALL rtl_uString_newReplace( rtl_uString ** newStr, rtl_uString * str, sal_Unicode oldChar, sal_Unicode newChar ) SAL_THROW_EXTERN_C();
-
-/** Create a new string by converting all ASCII uppercase letters to lowercase
- within another string.
-
- The new string results from replacing all characters with values between
- 65 and 90 (ASCII A--Z) by values between 97 and 122 (ASCII a--z).
-
- This function cannot be used for language-specific conversion. The new
- string does not necessarily have a reference count of 1 (in cases where
- no characters need to be converted), so it must not be modified without
- checking the reference count. This function does not handle out-of-memory
- conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param str
- a valid string.
- */
-void SAL_CALL rtl_uString_newToAsciiLowerCase( rtl_uString ** newStr, rtl_uString * str ) SAL_THROW_EXTERN_C();
-
-/** Create a new string by converting all ASCII lowercase letters to uppercase
- within another string.
-
- The new string results from replacing all characters with values between
- 97 and 122 (ASCII a--z) by values between 65 and 90 (ASCII A--Z).
-
- This function cannot be used for language-specific conversion. The new
- string does not necessarily have a reference count of 1 (in cases where
- no characters need to be converted), so it must not be modified without
- checking the reference count. This function does not handle out-of-memory
- conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param str
- a valid string.
- */
-void SAL_CALL rtl_uString_newToAsciiUpperCase( rtl_uString ** newStr, rtl_uString * str ) SAL_THROW_EXTERN_C();
-
-/** Create a new string by removing white space from both ends of another
- string.
-
- The new string results from removing all characters with values less than
- or equal to 32 (the space character) form both ends of str.
-
- This function cannot be used for language-specific conversion. The new
- string does not necessarily have a reference count of 1 (in cases where
- no characters need to be removed), so it must not be modified without
- checking the reference count. This function does not handle out-of-memory
- conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param str
- a valid string.
- */
-void SAL_CALL rtl_uString_newTrim( rtl_uString ** newStr, rtl_uString * str ) SAL_THROW_EXTERN_C();
-
-/** Create a new string by extracting a single token from another string.
-
- Starting at index, the token's next token is searched for. If there is no
- such token, the result is an empty string. Otherwise, all characters from
- the start of that token and up to, but not including the next occurrence
- of cTok make up the resulting token. The return value is the position of
- the next token, or -1 if no more tokens follow.
-
- Example code could look like
- rtl_uString * pToken = NULL;
- sal_Int32 nIndex = 0;
- do
- {
- ...
- nIndex = rtl_uString_getToken(&pToken, pStr, 0, ';', nIndex);
- ...
- }
- while (nIndex >= 0);
-
- The new string does not necessarily have a reference count of 1, so it
- must not be modified without checking the reference count. This function
- does not handle out-of-memory conditions.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string. If either token or index is negative, an empty token is stored in
- newStr (and -1 is returned).
-
- @param str
- a valid string.
-
- @param token
- the number of the token to return, starting at index.
-
- @param cTok
- the character that seperates the tokens.
-
- @param index
- the position at which searching for the token starts. Must not be greater
- than the length of str.
-
- @return
- the index of the next token, or -1 if no more tokens follow.
- */
-sal_Int32 SAL_CALL rtl_uString_getToken( rtl_uString ** newStr , rtl_uString * str, sal_Int32 token, sal_Unicode cTok, sal_Int32 idx ) SAL_THROW_EXTERN_C();
-
-/* ======================================================================= */
-
-/** Supply an ASCII string literal together with its length and text encoding.
-
- This macro can be used to compute (some of) the arguments in function calls
- like rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("foo")).
-
- @param constAsciiStr
- must be an expression of type "(possibly cv-qualified reference to) array of
- (possibly cv-qualified) char." Each element of the referenced array must
- represent an ASCII value in the range 0x00--0x7F. The last element of the
- referenced array is not considered part of the represented ASCII string, and
- its value should be 0x00. Depending on where this macro is used, the nature
- of the supplied expression might be further restricted.
-*/
-#define RTL_CONSTASCII_USTRINGPARAM( constAsciiStr ) constAsciiStr, ((sal_Int32)(SAL_N_ELEMENTS(constAsciiStr)-1)), RTL_TEXTENCODING_ASCII_US
-
-/* ======================================================================= */
-
-/* predefined constants for String-Conversion */
-#define OSTRING_TO_OUSTRING_CVTFLAGS (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MAPTOPRIVATE |\
- RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_DEFAULT |\
- RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT)
-
-/* ----------------------------------------------------------------------- */
-
-/** Create a new Unicode string by converting a byte string, using a specific
- text encoding.
-
- The lengths of the byte string and the Unicode string may differ (e.g.,
- for double-byte encodings, UTF-7, UTF-8).
-
- If the length of the byte string is greater than zero, the reference count
- of the new string will be 1.
-
- If an out-of-memory condition occurs, newStr will point to a null pointer
- upon return.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- @param str
- a byte character array. Need not be null-terminated, but must be at
- least as long as the specified len.
-
- @param len
- the length of the byte character array.
-
- @param encoding
- the text encoding to use for conversion.
-
- @param convertFlags
- flags which control the conversion. Either use
- OSTRING_TO_OUSTRING_CVTFLAGS, or see
- <http://udk.openoffice.org/cpp/man/spec/textconversion.html> for more
- details.
- */
-void SAL_CALL rtl_string2UString( rtl_uString ** newStr, const sal_Char * str, sal_Int32 len, rtl_TextEncoding encoding, sal_uInt32 convertFlags ) SAL_THROW_EXTERN_C();
-
-/* ======================================================================= */
-/* Interning methods */
-
-/** Return a canonical representation for a string.
-
- A pool of strings, initially empty is maintained privately
- by the string class. On invocation, if present in the pool
- the original string will be returned. Otherwise this string,
- or a copy thereof will be added to the pool and returned.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- If an out-of-memory condition occurs, newStr will point to a null pointer
- upon return.
-
- @param str
- pointer to the string to be interned.
-
- @since UDK 3.2.7
- */
-void SAL_CALL rtl_uString_intern( rtl_uString ** newStr,
- rtl_uString * str) SAL_THROW_EXTERN_C();
-
-/** Return a canonical representation for a string.
-
- A pool of strings, initially empty is maintained privately
- by the string class. On invocation, if present in the pool
- the original string will be returned. Otherwise this string,
- or a copy thereof will be added to the pool and returned.
-
- @param newStr
- pointer to the new string. The pointed-to data must be null or a valid
- string.
-
- If an out-of-memory condition occurs, newStr will point to a null pointer
- upon return.
-
- @param str
- a byte character array. Need not be null-terminated, but must be at
- least as long as the specified len.
-
- @param len
- the length of the byte character array.
-
- @param encoding
- the text encoding to use for conversion.
-
- @param convertFlags
- flags which control the conversion. Either use
- OSTRING_TO_OUSTRING_CVTFLAGS, or see
- <http://udk.openoffice.org/cpp/man/spec/textconversion.html> for more
- details.
-
- @param pInfo
- pointer to return conversion status in, or NULL.
-
- @since UDK 3.2.7
- */
-void SAL_CALL rtl_uString_internConvert( rtl_uString ** newStr,
- const sal_Char * str,
- sal_Int32 len,
- rtl_TextEncoding encoding,
- sal_uInt32 convertFlags,
- sal_uInt32 *pInfo) SAL_THROW_EXTERN_C();
-
-/** Iterate through a string based on code points instead of UTF-16 code units.
-
- See Chapter 3 of The Unicode Standard 5.0 (Addison--Wesley, 2006) for
- definitions of the various terms used in this description.
-
- The given string is interpreted as a sequence of zero or more UTF-16 code
- units. For each index into this sequence (from zero to one less than the
- length of the sequence, inclusive), a code point represented starting at the
- given index is computed as follows:
-
- - If the UTF-16 code unit addressed by the index constitutes a well-formed
- UTF-16 code unit sequence, the computed code point is the scalar value
- encoded by that UTF-16 code unit sequence.
-
- - Otherwise, if the index is at least two UTF-16 code units away from the
- end of the sequence, and the sequence of two UTF-16 code units addressed by
- the index constitutes a well-formed UTF-16 code unit sequence, the computed
- code point is the scalar value encoded by that UTF-16 code unit sequence.
-
- - Otherwise, the computed code point is the UTF-16 code unit addressed by
- the index. (This last case catches unmatched surrogates as well as indices
- pointing into the middle of surrogate pairs.)
-
- @param string
- pointer to a valid string; must not be null.
-
- @param indexUtf16
- pointer to a UTF-16 based index into the given string; must not be null. On
- entry, the index must be in the range from zero to the length of the string
- (in UTF-16 code units), inclusive. Upon successful return, the index will
- be updated to address the UTF-16 code unit that is the given
- incrementCodePoints away from the initial index.
-
- @param incrementCodePoints
- the number of code points to move the given *indexUtf16. If non-negative,
- moving is done after determining the code point at the index. If negative,
- moving is done before determining the code point at the (then updated)
- index. The value must be such that the resulting UTF-16 based index is in
- the range from zero to the length of the string (in UTF-16 code units),
- inclusive.
-
- @return
- the code point (an integer in the range from 0 to 0x10FFFF, inclusive) that
- is represented within the string starting at the index computed as follows:
- If incrementCodePoints is non-negative, the index is the initial value of
- *indexUtf16; if incrementCodePoints is negative, the index is the updated
- value of *indexUtf16. In either case, the computed index must be in the
- range from zero to one less than the length of the string (in UTF-16 code
- units), inclusive.
-
- @since UDK 3.2.7
-*/
-sal_uInt32 SAL_CALL rtl_uString_iterateCodePoints(
- rtl_uString const * string, sal_Int32 * indexUtf16,
- sal_Int32 incrementCodePoints);
-
-/** Converts a byte string to a Unicode string, signalling failure.
-
- @param target
- An out parameter receiving the converted string. Must not be null itself,
- and must contain either null or a pointer to a valid rtl_uString; the
- contents are unspecified if conversion fails (rtl_convertStringToUString
- returns false).
-
- @param source
- The byte string. May only be null if length is zero.
-
- @param length
- The length of the byte string. Must be non-negative.
-
- @param encoding
- The text encoding to convert from. Must be an octet encoding (i.e.,
- rtl_isOctetTextEncoding(encoding) must return true).
-
- @param flags
- A combination of RTL_TEXTTOUNICODE_FLAGS that detail how to do the
- conversion (see rtl_convertTextToUnicode). RTL_TEXTTOUNICODE_FLAGS_FLUSH
- need not be included, it is implicitly assumed. Typical uses are either
- RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR |
- RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR |
- RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR (fail if a byte or multi-byte sequence
- cannot be converted from the source encoding) or
- OSTRING_TO_OUSTRING_CVTFLAGS (make a best efforts conversion).
-
- @return
- True if the conversion succeeded, false otherwise.
-
- @since UDK 3.2.9
-*/
-sal_Bool SAL_CALL rtl_convertStringToUString(
- rtl_uString ** target, char const * source, sal_Int32 length,
- rtl_TextEncoding encoding, sal_uInt32 flags) SAL_THROW_EXTERN_C();
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RTL_USTRING_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/ustring.hxx b/sal/inc/rtl/ustring.hxx
deleted file mode 100644
index edfb04d37..000000000
--- a/sal/inc/rtl/ustring.hxx
+++ /dev/null
@@ -1,1556 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_USTRING_HXX_
-#define _RTL_USTRING_HXX_
-
-#ifdef __cplusplus
-
-#include "osl/diagnose.h"
-#include <rtl/ustring.h>
-#include <rtl/string.hxx>
-#include <rtl/memory.h>
-
-#if defined EXCEPTIONS_OFF
-#include <stdlib.h>
-#else
-#include <new>
-#endif
-
-namespace rtl
-{
-/* ======================================================================= */
-
-/**
- This String class provide base functionality for C++ like Unicode
- character array handling. The advantage of this class is, that it
- handle all the memory management for you - and it do it
- more efficient. If you assign a string to another string, the
- data of both strings are shared (without any copy operation or
- memory allocation) as long as you do not change the string. This class
- stores also the length of the string, so that many operations are
- faster as the C-str-functions.
-
- This class provide only readonly string handling. So you could create
- a string and you could only query the content from this string.
- It provide also functionality to change the string, but this results
- in every case in a new string instance (in the most cases with an
- memory allocation). You don't have functionality to change the
- content of the string. If you want change the string content, than
- you should us the OStringBuffer class, which provide these
- functionality and avoid to much memory allocation.
-
- The design of this class is similar to the string classes in Java
- and so more people should have fewer understanding problems when they
- use this class.
-*/
-
-class OUString
-{
-public:
- /** @internal */
- rtl_uString * pData;
-
-private:
- /** @internal */
- class DO_NOT_ACQUIRE{};
-
- /** @internal */
- OUString( rtl_uString * value, DO_NOT_ACQUIRE * )
- {
- pData = value;
- }
-
-public:
- /**
- New string containing no characters.
- */
- OUString() SAL_THROW(())
- {
- pData = 0;
- rtl_uString_new( &pData );
- }
-
- /**
- New string from OUString.
-
- @param str a OUString.
- */
- OUString( const OUString & str ) SAL_THROW(())
- {
- pData = str.pData;
- rtl_uString_acquire( pData );
- }
-
- /**
- New string from OUString data.
-
- @param str a OUString data.
- */
- OUString( rtl_uString * str ) SAL_THROW(())
- {
- pData = str;
- rtl_uString_acquire( pData );
- }
- /** New OUString from OUString data without acquiring it. Takeover of ownership.
-
- @param str
- OUString data
- @param dummy
- SAL_NO_ACQUIRE to distinguish from other ctors
- */
- inline OUString( rtl_uString * str, __sal_NoAcquire ) SAL_THROW( () )
- { pData = str; }
-
-
- /**
- New string from a single Unicode character.
-
- @param value a Unicode character.
- */
- explicit OUString( sal_Unicode value ) SAL_THROW(())
- : pData (0)
- {
- rtl_uString_newFromStr_WithLength( &pData, &value, 1 );
- }
-
- /**
- New string from a Unicode character buffer array.
-
- @param value a NULL-terminated Unicode character array.
- */
- OUString( const sal_Unicode * value ) SAL_THROW(())
- {
- pData = 0;
- rtl_uString_newFromStr( &pData, value );
- }
-
- /**
- New string from a Uniocde character buffer array.
-
- @param value a Unicode character array.
- @param length the number of character which should be copied.
- The character array length must be greater or
- equal than this value.
- */
- OUString( const sal_Unicode * value, sal_Int32 length ) SAL_THROW(())
- {
- pData = 0;
- rtl_uString_newFromStr_WithLength( &pData, value, length );
- }
-
- /**
- New string from a 8-Bit character buffer array.
-
- @param value a 8-Bit character array.
- @param length the number of character which should be converted.
- The 8-Bit character array length must be
- greater or equal than this value.
- @param encoding the text encoding from which the 8-Bit character
- sequence should be converted.
- @param convertFlags flags which controls the conversion.
- see RTL_TEXTTOUNICODE_FLAGS_...
-
- @exception std::bad_alloc is thrown if an out-of-memory condition occurs
- */
- OUString( const sal_Char * value, sal_Int32 length,
- rtl_TextEncoding encoding,
- sal_uInt32 convertFlags = OSTRING_TO_OUSTRING_CVTFLAGS )
- {
- pData = 0;
- rtl_string2UString( &pData, value, length, encoding, convertFlags );
-#if defined EXCEPTIONS_OFF
- OSL_ASSERT(pData != NULL);
-#else
- if (pData == 0) {
- throw std::bad_alloc();
- }
-#endif
- }
-
- /** Create a new string from an array of Unicode code points.
-
- @param codePoints
- an array of at least codePointCount code points, which each must be in
- the range from 0 to 0x10FFFF, inclusive. May be null if codePointCount
- is zero.
-
- @param codePointCount
- the non-negative number of code points.
-
- @exception std::bad_alloc
- is thrown if either an out-of-memory condition occurs or the resulting
- number of UTF-16 code units would have been larger than SAL_MAX_INT32.
-
- @since UDK 3.2.7
- */
- inline explicit OUString(
- sal_uInt32 const * codePoints, sal_Int32 codePointCount):
- pData(NULL)
- {
- rtl_uString_newFromCodePoints(&pData, codePoints, codePointCount);
- if (pData == NULL) {
-#if defined EXCEPTIONS_OFF
- abort();
-#else
- throw std::bad_alloc();
-#endif
- }
- }
-
- /**
- Release the string data.
- */
- ~OUString() SAL_THROW(())
- {
- rtl_uString_release( pData );
- }
-
- /** Provides an OUString const & passing a storage pointer of an
- rtl_uString * handle.
- It is more convenient to use C++ OUString member functions when dealing
- with rtl_uString * handles. Using this function avoids unnecessary
- acquire()/release() calls for a temporary OUString object.
-
- @param ppHandle
- pointer to storage
- @return
- OUString const & based on given storage
- */
- static inline OUString const & unacquired( rtl_uString * const * ppHandle )
- { return * reinterpret_cast< OUString const * >( ppHandle ); }
-
- /**
- Assign a new string.
-
- @param str a OUString.
- */
- OUString & operator=( const OUString & str ) SAL_THROW(())
- {
- rtl_uString_assign( &pData, str.pData );
- return *this;
- }
-
- /**
- Append a string to this string.
-
- @param str a OUString.
- */
- OUString & operator+=( const OUString & str ) SAL_THROW(())
- {
- rtl_uString_newConcat( &pData, pData, str.pData );
- return *this;
- }
-
- /**
- Returns the length of this string.
-
- The length is equal to the number of Unicode characters in this string.
-
- @return the length of the sequence of characters represented by this
- object.
- */
- sal_Int32 getLength() const SAL_THROW(()) { return pData->length; }
-
- /**
- Checks if a string is empty.
-
- @return sal_True if the string is empty;
- sal_False, otherwise.
-
- @since LibreOffice 3.4
- */
- sal_Bool isEmpty() const SAL_THROW(())
- {
- if ( pData->length )
- return sal_False;
- else
- return sal_True;
- }
-
- /**
- Returns a pointer to the Unicode character buffer from this string.
-
- It isn't necessarily NULL terminated.
-
- @return a pointer to the Unicode characters buffer from this object.
- */
- operator const sal_Unicode *() const SAL_THROW(()) { return pData->buffer; }
-
- /**
- Returns a pointer to the Unicode character buffer from this string.
-
- It isn't necessarily NULL terminated.
-
- @return a pointer to the Unicode characters buffer from this object.
- */
- const sal_Unicode * getStr() const SAL_THROW(()) { return pData->buffer; }
-
- /**
- Compares two strings.
-
- The comparison is based on the numeric value of each character in
- the strings and return a value indicating their relationship.
- This function can't be used for language specific sorting.
-
- @param str the object to be compared.
- @return 0 - if both strings are equal
- < 0 - if this string is less than the string argument
- > 0 - if this string is greater than the string argument
- */
- sal_Int32 compareTo( const OUString & str ) const SAL_THROW(())
- {
- return rtl_ustr_compare_WithLength( pData->buffer, pData->length,
- str.pData->buffer, str.pData->length );
- }
-
- /**
- Compares two strings with an maximum count of characters.
-
- The comparison is based on the numeric value of each character in
- the strings and return a value indicating their relationship.
- This function can't be used for language specific sorting.
-
- @param str the object to be compared.
- @param maxLength the maximum count of characters to be compared.
- @return 0 - if both strings are equal
- < 0 - if this string is less than the string argument
- > 0 - if this string is greater than the string argument
- */
- sal_Int32 compareTo( const OUString & str, sal_Int32 maxLength ) const SAL_THROW(())
- {
- return rtl_ustr_shortenedCompare_WithLength( pData->buffer, pData->length,
- str.pData->buffer, str.pData->length, maxLength );
- }
-
- /**
- Compares two strings in reverse order.
-
- The comparison is based on the numeric value of each character in
- the strings and return a value indicating their relationship.
- This function can't be used for language specific sorting.
-
- @param str the object to be compared.
- @return 0 - if both strings are equal
- < 0 - if this string is less than the string argument
- > 0 - if this string is greater than the string argument
- */
- sal_Int32 reverseCompareTo( const OUString & str ) const SAL_THROW(())
- {
- return rtl_ustr_reverseCompare_WithLength( pData->buffer, pData->length,
- str.pData->buffer, str.pData->length );
- }
-
- /**
- Perform a comparison of two strings.
-
- The result is true if and only if second string
- represents the same sequence of characters as the first string.
- This function can't be used for language specific comparison.
-
- @param str the object to be compared.
- @return sal_True if the strings are equal;
- sal_False, otherwise.
- */
- sal_Bool equals( const OUString & str ) const SAL_THROW(())
- {
- if ( pData->length != str.pData->length )
- return sal_False;
- if ( pData == str.pData )
- return sal_True;
- return rtl_ustr_reverseCompare_WithLength( pData->buffer, pData->length,
- str.pData->buffer, str.pData->length ) == 0;
- }
-
- /**
- Perform a ASCII lowercase comparison of two strings.
-
- The result is true if and only if second string
- represents the same sequence of characters as the first string,
- ignoring the case.
- Character values between 65 and 90 (ASCII A-Z) are interpreted as
- values between 97 and 122 (ASCII a-z).
- This function can't be used for language specific comparison.
-
- @param str the object to be compared.
- @return sal_True if the strings are equal;
- sal_False, otherwise.
- */
- sal_Bool equalsIgnoreAsciiCase( const OUString & str ) const SAL_THROW(())
- {
- if ( pData->length != str.pData->length )
- return sal_False;
- if ( pData == str.pData )
- return sal_True;
- return rtl_ustr_compareIgnoreAsciiCase_WithLength( pData->buffer, pData->length,
- str.pData->buffer, str.pData->length ) == 0;
- }
-
- /**
- Match against a substring appearing in this string.
-
- The result is true if and only if the second string appears as a substring
- of this string, at the given position.
- This function can't be used for language specific comparison.
-
- @param str the object (substring) to be compared.
- @param fromIndex the index to start the comparion from.
- The index must be greater or equal than 0
- and less or equal as the string length.
- @return sal_True if str match with the characters in the string
- at the given position;
- sal_False, otherwise.
- */
- sal_Bool match( const OUString & str, sal_Int32 fromIndex = 0 ) const SAL_THROW(())
- {
- return rtl_ustr_shortenedCompare_WithLength( pData->buffer+fromIndex, pData->length-fromIndex,
- str.pData->buffer, str.pData->length, str.pData->length ) == 0;
- }
-
- /**
- Match against a substring appearing in this string, ignoring the case of
- ASCII letters.
-
- The result is true if and only if the second string appears as a substring
- of this string, at the given position.
- Character values between 65 and 90 (ASCII A-Z) are interpreted as
- values between 97 and 122 (ASCII a-z).
- This function can't be used for language specific comparison.
-
- @param str the object (substring) to be compared.
- @param fromIndex the index to start the comparion from.
- The index must be greater or equal than 0
- and less or equal as the string length.
- @return sal_True if str match with the characters in the string
- at the given position;
- sal_False, otherwise.
- */
- sal_Bool matchIgnoreAsciiCase( const OUString & str, sal_Int32 fromIndex = 0 ) const SAL_THROW(())
- {
- return rtl_ustr_shortenedCompareIgnoreAsciiCase_WithLength( pData->buffer+fromIndex, pData->length-fromIndex,
- str.pData->buffer, str.pData->length,
- str.pData->length ) == 0;
- }
-
- /**
- Compares two strings.
-
- The comparison is based on the numeric value of each character in
- the strings and return a value indicating their relationship.
- Since this method is optimized for performance, the ASCII character
- values are not converted in any way. The caller has to make sure that
- all ASCII characters are in the allowed range between 0 and
- 127. The ASCII string must be NULL-terminated.
- This function can't be used for language specific sorting.
-
- @param asciiStr the 8-Bit ASCII character string to be compared.
- @return 0 - if both strings are equal
- < 0 - if this string is less than the string argument
- > 0 - if this string is greater than the string argument
- */
- sal_Int32 compareToAscii( const sal_Char* asciiStr ) const SAL_THROW(())
- {
- return rtl_ustr_ascii_compare_WithLength( pData->buffer, pData->length, asciiStr );
- }
-
- /**
- Compares two strings with an maximum count of characters.
-
- The comparison is based on the numeric value of each character in
- the strings and return a value indicating their relationship.
- Since this method is optimized for performance, the ASCII character
- values are not converted in any way. The caller has to make sure that
- all ASCII characters are in the allowed range between 0 and
- 127. The ASCII string must be NULL-terminated.
- This function can't be used for language specific sorting.
-
- @param asciiStr the 8-Bit ASCII character string to be compared.
- @param maxLength the maximum count of characters to be compared.
- @return 0 - if both strings are equal
- < 0 - if this string is less than the string argument
- > 0 - if this string is greater than the string argument
- */
- sal_Int32 compareToAscii( const sal_Char * asciiStr, sal_Int32 maxLength ) const SAL_THROW(())
- {
- return rtl_ustr_ascii_shortenedCompare_WithLength( pData->buffer, pData->length,
- asciiStr, maxLength );
- }
-
- /**
- Compares two strings in reverse order.
-
- This could be useful, if normally both strings start with the same
- content. The comparison is based on the numeric value of each character
- in the strings and return a value indicating their relationship.
- Since this method is optimized for performance, the ASCII character
- values are not converted in any way. The caller has to make sure that
- all ASCII characters are in the allowed range between 0 and
- 127. The ASCII string must be NULL-terminated and must be greater or
- equal as asciiStrLength.
- This function can't be used for language specific sorting.
-
- @param asciiStr the 8-Bit ASCII character string to be compared.
- @param asciiStrLength the length of the ascii string
- @return 0 - if both strings are equal
- < 0 - if this string is less than the string argument
- > 0 - if this string is greater than the string argument
- */
- sal_Int32 reverseCompareToAsciiL( const sal_Char * asciiStr, sal_Int32 asciiStrLength ) const SAL_THROW(())
- {
- return rtl_ustr_asciil_reverseCompare_WithLength( pData->buffer, pData->length,
- asciiStr, asciiStrLength );
- }
-
- /**
- Perform a comparison of two strings.
-
- The result is true if and only if second string
- represents the same sequence of characters as the first string.
- Since this method is optimized for performance, the ASCII character
- values are not converted in any way. The caller has to make sure that
- all ASCII characters are in the allowed range between 0 and
- 127. The ASCII string must be NULL-terminated.
- This function can't be used for language specific comparison.
-
- @param asciiStr the 8-Bit ASCII character string to be compared.
- @return sal_True if the strings are equal;
- sal_False, otherwise.
- */
- sal_Bool equalsAscii( const sal_Char* asciiStr ) const SAL_THROW(())
- {
- return rtl_ustr_ascii_compare_WithLength( pData->buffer, pData->length,
- asciiStr ) == 0;
- }
-
- /**
- Perform a comparison of two strings.
-
- The result is true if and only if second string
- represents the same sequence of characters as the first string.
- Since this method is optimized for performance, the ASCII character
- values are not converted in any way. The caller has to make sure that
- all ASCII characters are in the allowed range between 0 and
- 127. The ASCII string must be NULL-terminated and must be greater or
- equal as asciiStrLength.
- This function can't be used for language specific comparison.
-
- @param asciiStr the 8-Bit ASCII character string to be compared.
- @param asciiStrLength the length of the ascii string
- @return sal_True if the strings are equal;
- sal_False, otherwise.
- */
- sal_Bool equalsAsciiL( const sal_Char* asciiStr, sal_Int32 asciiStrLength ) const SAL_THROW(())
- {
- if ( pData->length != asciiStrLength )
- return sal_False;
-
- return rtl_ustr_asciil_reverseEquals_WithLength(
- pData->buffer, asciiStr, asciiStrLength );
- }
-
- /**
- Perform a ASCII lowercase comparison of two strings.
-
- The result is true if and only if second string
- represents the same sequence of characters as the first string,
- ignoring the case.
- Character values between 65 and 90 (ASCII A-Z) are interpreted as
- values between 97 and 122 (ASCII a-z).
- Since this method is optimized for performance, the ASCII character
- values are not converted in any way. The caller has to make sure that
- all ASCII characters are in the allowed range between 0 and
- 127. The ASCII string must be NULL-terminated.
- This function can't be used for language specific comparison.
-
- @param asciiStr the 8-Bit ASCII character string to be compared.
- @return sal_True if the strings are equal;
- sal_False, otherwise.
- */
- sal_Bool equalsIgnoreAsciiCaseAscii( const sal_Char * asciiStr ) const SAL_THROW(())
- {
- return rtl_ustr_ascii_compareIgnoreAsciiCase_WithLength( pData->buffer, pData->length, asciiStr ) == 0;
- }
-
- /**
- Perform a ASCII lowercase comparison of two strings.
-
- The result is true if and only if second string
- represents the same sequence of characters as the first string,
- ignoring the case.
- Character values between 65 and 90 (ASCII A-Z) are interpreted as
- values between 97 and 122 (ASCII a-z).
- Since this method is optimized for performance, the ASCII character
- values are not converted in any way. The caller has to make sure that
- all ASCII characters are in the allowed range between 0 and
- 127. The ASCII string must be NULL-terminated and must be greater or
- equal as asciiStrLength.
- This function can't be used for language specific comparison.
-
- @param asciiStr the 8-Bit ASCII character string to be compared.
- @param asciiStrLength the length of the ascii string
- @return sal_True if the strings are equal;
- sal_False, otherwise.
- */
- sal_Bool equalsIgnoreAsciiCaseAsciiL( const sal_Char * asciiStr, sal_Int32 asciiStrLength ) const SAL_THROW(())
- {
- if ( pData->length != asciiStrLength )
- return sal_False;
-
- return rtl_ustr_ascii_compareIgnoreAsciiCase_WithLength( pData->buffer, pData->length, asciiStr ) == 0;
- }
-
- /**
- Match against a substring appearing in this string.
-
- The result is true if and only if the second string appears as a substring
- of this string, at the given position.
- Since this method is optimized for performance, the ASCII character
- values are not converted in any way. The caller has to make sure that
- all ASCII characters are in the allowed range between 0 and
- 127. The ASCII string must be NULL-terminated and must be greater or
- equal as asciiStrLength.
- This function can't be used for language specific comparison.
-
- @param str the object (substring) to be compared.
- @param fromIndex the index to start the comparion from.
- The index must be greater or equal than 0
- and less or equal as the string length.
- @return sal_True if str match with the characters in the string
- at the given position;
- sal_False, otherwise.
- */
- sal_Bool matchAsciiL( const sal_Char* asciiStr, sal_Int32 asciiStrLength, sal_Int32 fromIndex = 0 ) const SAL_THROW(())
- {
- return rtl_ustr_ascii_shortenedCompare_WithLength( pData->buffer+fromIndex, pData->length-fromIndex,
- asciiStr, asciiStrLength ) == 0;
- }
-
- /**
- Match against a substring appearing in this string, ignoring the case of
- ASCII letters.
-
- The result is true if and only if the second string appears as a substring
- of this string, at the given position.
- Character values between 65 and 90 (ASCII A-Z) are interpreted as
- values between 97 and 122 (ASCII a-z).
- Since this method is optimized for performance, the ASCII character
- values are not converted in any way. The caller has to make sure that
- all ASCII characters are in the allowed range between 0 and
- 127. The ASCII string must be NULL-terminated and must be greater or
- equal as asciiStrLength.
- This function can't be used for language specific comparison.
-
- @param asciiStr the 8-Bit ASCII character string to be compared.
- @param asciiStrLength the length of the ascii string
- @param fromIndex the index to start the comparion from.
- The index must be greater or equal than 0
- and less or equal as the string length.
- @return sal_True if str match with the characters in the string
- at the given position;
- sal_False, otherwise.
- */
- sal_Bool matchIgnoreAsciiCaseAsciiL( const sal_Char* asciiStr, sal_Int32 asciiStrLength, sal_Int32 fromIndex = 0 ) const SAL_THROW(())
- {
- return rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength( pData->buffer+fromIndex, pData->length-fromIndex,
- asciiStr, asciiStrLength ) == 0;
- }
-
- /**
- Check whether this string ends with a given ASCII string.
-
- @param asciiStr a sequence of at least asciiStrLength ASCII characters
- (bytes in the range 0x00--0x7F)
- @param asciiStrLen the length of asciiStr; must be non-negative
- @return true if this string ends with asciiStr; otherwise, false is
- returned
-
- @since UDK 3.2.7
- */
- inline bool endsWithAsciiL(char const * asciiStr, sal_Int32 asciiStrLength)
- const
- {
- return asciiStrLength <= pData->length
- && rtl_ustr_asciil_reverseEquals_WithLength(
- pData->buffer + pData->length - asciiStrLength, asciiStr,
- asciiStrLength);
- }
-
- /**
- Check whether this string ends with a given ASCII string, ignoring the
- case of ASCII letters.
-
- @param asciiStr a sequence of at least asciiStrLength ASCII characters
- (bytes in the range 0x00--0x7F)
- @param asciiStrLen the length of asciiStr; must be non-negative
- @return true if this string ends with asciiStr, ignoring the case of ASCII
- letters ("A"--"Z" and "a"--"z"); otherwise, false is returned
- */
- inline bool endsWithIgnoreAsciiCaseAsciiL(
- char const * asciiStr, sal_Int32 asciiStrLength) const
- {
- return asciiStrLength <= pData->length
- && (rtl_ustr_ascii_compareIgnoreAsciiCase_WithLengths(
- pData->buffer + pData->length - asciiStrLength,
- asciiStrLength, asciiStr, asciiStrLength)
- == 0);
- }
-
- friend sal_Bool operator == ( const OUString& rStr1, const OUString& rStr2 ) SAL_THROW(())
- { return rStr1.getLength() == rStr2.getLength() && rStr1.compareTo( rStr2 ) == 0; }
- friend sal_Bool operator == ( const OUString& rStr1, const sal_Unicode * pStr2 ) SAL_THROW(())
- { return rStr1.compareTo( pStr2 ) == 0; }
- friend sal_Bool operator == ( const sal_Unicode * pStr1, const OUString& rStr2 ) SAL_THROW(())
- { return OUString( pStr1 ).compareTo( rStr2 ) == 0; }
-
- friend sal_Bool operator != ( const OUString& rStr1, const OUString& rStr2 ) SAL_THROW(())
- { return !(operator == ( rStr1, rStr2 )); }
- friend sal_Bool operator != ( const OUString& rStr1, const sal_Unicode * pStr2 ) SAL_THROW(())
- { return !(operator == ( rStr1, pStr2 )); }
- friend sal_Bool operator != ( const sal_Unicode * pStr1, const OUString& rStr2 ) SAL_THROW(())
- { return !(operator == ( pStr1, rStr2 )); }
-
- friend sal_Bool operator < ( const OUString& rStr1, const OUString& rStr2 ) SAL_THROW(())
- { return rStr1.compareTo( rStr2 ) < 0; }
- friend sal_Bool operator > ( const OUString& rStr1, const OUString& rStr2 ) SAL_THROW(())
- { return rStr1.compareTo( rStr2 ) > 0; }
- friend sal_Bool operator <= ( const OUString& rStr1, const OUString& rStr2 ) SAL_THROW(())
- { return rStr1.compareTo( rStr2 ) <= 0; }
- friend sal_Bool operator >= ( const OUString& rStr1, const OUString& rStr2 ) SAL_THROW(())
- { return rStr1.compareTo( rStr2 ) >= 0; }
-
- /**
- Returns a hashcode for this string.
-
- @return a hash code value for this object.
-
- @see rtl::OUStringHash for convenient use of boost::unordered_map
- */
- sal_Int32 hashCode() const SAL_THROW(())
- {
- return rtl_ustr_hashCode_WithLength( pData->buffer, pData->length );
- }
-
- /**
- Returns the index within this string of the first occurrence of the
- specified character, starting the search at the specified index.
-
- @param ch character to be located.
- @param fromIndex the index to start the search from.
- The index must be greater or equal than 0
- and less or equal as the string length.
- @return the index of the first occurrence of the character in the
- character sequence represented by this string that is
- greater than or equal to fromIndex, or
- -1 if the character does not occur.
- */
- sal_Int32 indexOf( sal_Unicode ch, sal_Int32 fromIndex = 0 ) const SAL_THROW(())
- {
- sal_Int32 ret = rtl_ustr_indexOfChar_WithLength( pData->buffer+fromIndex, pData->length-fromIndex, ch );
- return (ret < 0 ? ret : ret+fromIndex);
- }
-
- /**
- Returns the index within this string of the last occurrence of the
- specified character, searching backward starting at the end.
-
- @param ch character to be located.
- @return the index of the last occurrence of the character in the
- character sequence represented by this string, or
- -1 if the character does not occur.
- */
- sal_Int32 lastIndexOf( sal_Unicode ch ) const SAL_THROW(())
- {
- return rtl_ustr_lastIndexOfChar_WithLength( pData->buffer, pData->length, ch );
- }
-
- /**
- Returns the index within this string of the last occurrence of the
- specified character, searching backward starting before the specified
- index.
-
- @param ch character to be located.
- @param fromIndex the index before which to start the search.
- @return the index of the last occurrence of the character in the
- character sequence represented by this string that
- is less than fromIndex, or -1
- if the character does not occur before that point.
- */
- sal_Int32 lastIndexOf( sal_Unicode ch, sal_Int32 fromIndex ) const SAL_THROW(())
- {
- return rtl_ustr_lastIndexOfChar_WithLength( pData->buffer, fromIndex, ch );
- }
-
- /**
- Returns the index within this string of the first occurrence of the
- specified substring, starting at the specified index.
-
- If str doesn't include any character, always -1 is
- returned. This is also the case, if both strings are empty.
-
- @param str the substring to search for.
- @param fromIndex the index to start the search from.
- @return If the string argument occurs one or more times as a substring
- within this string at the starting index, then the index
- of the first character of the first such substring is
- returned. If it does not occur as a substring starting
- at fromIndex or beyond, -1 is returned.
- */
- sal_Int32 indexOf( const OUString & str, sal_Int32 fromIndex = 0 ) const SAL_THROW(())
- {
- sal_Int32 ret = rtl_ustr_indexOfStr_WithLength( pData->buffer+fromIndex, pData->length-fromIndex,
- str.pData->buffer, str.pData->length );
- return (ret < 0 ? ret : ret+fromIndex);
- }
-
- /**
- Returns the index within this string of the first occurrence of the
- specified ASCII substring, starting at the specified index.
-
- @param str
- the substring to be searched for. Need not be null-terminated, but must
- be at least as long as the specified len. Must only contain characters
- in the ASCII range 0x00--7F.
-
- @param len
- the length of the substring; must be non-negative.
-
- @param fromIndex
- the index to start the search from. Must be in the range from zero to
- the length of this string, inclusive.
-
- @return
- the index (starting at 0) of the first character of the first occurrence
- of the substring within this string starting at the given fromIndex, or
- -1 if the substring does not occur. If len is zero, -1 is returned.
-
- @since UDK 3.2.7
- */
- sal_Int32 indexOfAsciiL(
- char const * str, sal_Int32 len, sal_Int32 fromIndex = 0) const
- SAL_THROW(())
- {
- sal_Int32 ret = rtl_ustr_indexOfAscii_WithLength(
- pData->buffer + fromIndex, pData->length - fromIndex, str, len);
- return ret < 0 ? ret : ret + fromIndex;
- }
-
- /**
- Returns the index within this string of the last occurrence of
- the specified substring, searching backward starting at the end.
-
- The returned index indicates the starting index of the substring
- in this string.
- If str doesn't include any character, always -1 is
- returned. This is also the case, if both strings are empty.
-
- @param str the substring to search for.
- @return If the string argument occurs one or more times as a substring
- within this string, then the index of the first character of
- the last such substring is returned. If it does not occur as
- a substring, -1 is returned.
- */
- sal_Int32 lastIndexOf( const OUString & str ) const SAL_THROW(())
- {
- return rtl_ustr_lastIndexOfStr_WithLength( pData->buffer, pData->length,
- str.pData->buffer, str.pData->length );
- }
-
- /**
- Returns the index within this string of the last occurrence of
- the specified substring, searching backward starting before the specified
- index.
-
- The returned index indicates the starting index of the substring
- in this string.
- If str doesn't include any character, always -1 is
- returned. This is also the case, if both strings are empty.
-
- @param str the substring to search for.
- @param fromIndex the index before which to start the search.
- @return If the string argument occurs one or more times as a substring
- within this string before the starting index, then the index
- of the first character of the last such substring is
- returned. Otherwise, -1 is returned.
- */
- sal_Int32 lastIndexOf( const OUString & str, sal_Int32 fromIndex ) const SAL_THROW(())
- {
- return rtl_ustr_lastIndexOfStr_WithLength( pData->buffer, fromIndex,
- str.pData->buffer, str.pData->length );
- }
-
- /**
- Returns the index within this string of the last occurrence of the
- specified ASCII substring.
-
- @param str
- the substring to be searched for. Need not be null-terminated, but must
- be at least as long as the specified len. Must only contain characters
- in the ASCII range 0x00--7F.
-
- @param len
- the length of the substring; must be non-negative.
-
- @return
- the index (starting at 0) of the first character of the last occurrence
- of the substring within this string, or -1 if the substring does not
- occur. If len is zero, -1 is returned.
-
- @since UDK 3.2.7
- */
- sal_Int32 lastIndexOfAsciiL(char const * str, sal_Int32 len) const
- SAL_THROW(())
- {
- return rtl_ustr_lastIndexOfAscii_WithLength(
- pData->buffer, pData->length, str, len);
- }
-
- /**
- Returns a new string that is a substring of this string.
-
- The substring begins at the specified beginIndex. It is an error for
- beginIndex to be negative or to be greater than the length of this string.
-
- @param beginIndex the beginning index, inclusive.
- @return the specified substring.
- */
- OUString copy( sal_Int32 beginIndex ) const SAL_THROW(())
- {
- OSL_ASSERT(beginIndex >= 0 && beginIndex <= getLength());
- if ( beginIndex == 0 )
- return *this;
- else
- {
- rtl_uString* pNew = 0;
- rtl_uString_newFromStr_WithLength( &pNew, pData->buffer+beginIndex, getLength()-beginIndex );
- return OUString( pNew, (DO_NOT_ACQUIRE*)0 );
- }
- }
-
- /**
- Returns a new string that is a substring of this string.
-
- The substring begins at the specified beginIndex and contains count
- characters. It is an error for either beginIndex or count to be negative,
- or for beginIndex + count to be greater than the length of this string.
-
- @param beginIndex the beginning index, inclusive.
- @param count the number of characters.
- @return the specified substring.
- */
- OUString copy( sal_Int32 beginIndex, sal_Int32 count ) const SAL_THROW(())
- {
- OSL_ASSERT(beginIndex >= 0 && beginIndex <= getLength() && count >= 0);
- if ( (beginIndex == 0) && (count == getLength()) )
- return *this;
- else
- {
- rtl_uString* pNew = 0;
- rtl_uString_newFromStr_WithLength( &pNew, pData->buffer+beginIndex, count );
- return OUString( pNew, (DO_NOT_ACQUIRE*)0 );
- }
- }
-
- /**
- Concatenates the specified string to the end of this string.
-
- @param str the string that is concatenated to the end
- of this string.
- @return a string that represents the concatenation of this string
- followed by the string argument.
- */
- OUString concat( const OUString & str ) const SAL_THROW(())
- {
- rtl_uString* pNew = 0;
- rtl_uString_newConcat( &pNew, pData, str.pData );
- return OUString( pNew, (DO_NOT_ACQUIRE*)0 );
- }
-
- friend OUString operator+( const OUString& rStr1, const OUString& rStr2 ) SAL_THROW(())
- {
- return rStr1.concat( rStr2 );
- }
-
- /**
- Returns a new string resulting from replacing n = count characters
- from position index in this string with newStr.
-
- @param index the replacing index in str.
- The index must be greater or equal as 0 and
- less or equal as the length of the string.
- @param count the count of charcters that will replaced
- The count must be greater or equal as 0 and
- less or equal as the length of the string minus index.
- @param newStr the new substring.
- @return the new string.
- */
- OUString replaceAt( sal_Int32 index, sal_Int32 count, const OUString& newStr ) const SAL_THROW(())
- {
- rtl_uString* pNew = 0;
- rtl_uString_newReplaceStrAt( &pNew, pData, index, count, newStr.pData );
- return OUString( pNew, (DO_NOT_ACQUIRE*)0 );
- }
-
- /**
- Returns a new string resulting from replacing all occurrences of
- oldChar in this string with newChar.
-
- If the character oldChar does not occur in the character sequence
- represented by this object, then the string is assigned with
- str.
-
- @param oldChar the old character.
- @param newChar the new character.
- @return a string derived from this string by replacing every
- occurrence of oldChar with newChar.
- */
- OUString replace( sal_Unicode oldChar, sal_Unicode newChar ) const SAL_THROW(())
- {
- rtl_uString* pNew = 0;
- rtl_uString_newReplace( &pNew, pData, oldChar, newChar );
- return OUString( pNew, (DO_NOT_ACQUIRE*)0 );
- }
-
- /**
- Converts from this string all ASCII uppercase characters (65-90)
- to ASCII lowercase characters (97-122).
-
- This function can't be used for language specific conversion.
- If the string doesn't contain characters which must be converted,
- then the new string is assigned with str.
-
- @return the string, converted to ASCII lowercase.
- */
- OUString toAsciiLowerCase() const SAL_THROW(())
- {
- rtl_uString* pNew = 0;
- rtl_uString_newToAsciiLowerCase( &pNew, pData );
- return OUString( pNew, (DO_NOT_ACQUIRE*)0 );
- }
-
- /**
- Converts from this string all ASCII lowercase characters (97-122)
- to ASCII uppercase characters (65-90).
-
- This function can't be used for language specific conversion.
- If the string doesn't contain characters which must be converted,
- then the new string is assigned with str.
-
- @return the string, converted to ASCII uppercase.
- */
- OUString toAsciiUpperCase() const SAL_THROW(())
- {
- rtl_uString* pNew = 0;
- rtl_uString_newToAsciiUpperCase( &pNew, pData );
- return OUString( pNew, (DO_NOT_ACQUIRE*)0 );
- }
-
- /**
- Returns a new string resulting from removing white space from both ends
- of the string.
-
- All characters that have codes less than or equal to
- 32 (the space character) are considered to be white space.
- If the string doesn't contain white spaces at both ends,
- then the new string is assigned with str.
-
- @return the string, with white space removed from the front and end.
- */
- OUString trim() const SAL_THROW(())
- {
- rtl_uString* pNew = 0;
- rtl_uString_newTrim( &pNew, pData );
- return OUString( pNew, (DO_NOT_ACQUIRE*)0 );
- }
-
- /**
- Returns a token in the string.
-
- Example:
- sal_Int32 nIndex = 0;
- do
- {
- ...
- OUString aToken = aStr.getToken( 0, ';', nIndex );
- ...
- }
- while ( nIndex >= 0 );
-
- @param token the number of the token to return
- @param cTok the character which seperate the tokens.
- @param index the position at which the token is searched in the
- string.
- The index must not be greater than the length of the
- string.
- This param is set to the position of the
- next token or to -1, if it is the last token.
- @return the token; if either token or index is negative, an empty token
- is returned (and index is set to -1)
- */
- OUString getToken( sal_Int32 token, sal_Unicode cTok, sal_Int32& index ) const SAL_THROW(())
- {
- rtl_uString * pNew = 0;
- index = rtl_uString_getToken( &pNew, pData, token, cTok, index );
- return OUString( pNew, (DO_NOT_ACQUIRE *)0 );
- }
-
- /**
- Returns the Boolean value from this string.
-
- This function can't be used for language specific conversion.
-
- @return sal_True, if the string is 1 or "True" in any ASCII case.
- sal_False in any other case.
- */
- sal_Bool toBoolean() const SAL_THROW(())
- {
- return rtl_ustr_toBoolean( pData->buffer );
- }
-
- /**
- Returns the first character from this string.
-
- @return the first character from this string or 0, if this string
- is emptry.
- */
- sal_Unicode toChar() const SAL_THROW(())
- {
- return pData->buffer[0];
- }
-
- /**
- Returns the int32 value from this string.
-
- This function can't be used for language specific conversion.
-
- @param radix the radix (between 2 and 36)
- @return the int32 represented from this string.
- 0 if this string represents no number.
- */
- sal_Int32 toInt32( sal_Int16 radix = 10 ) const SAL_THROW(())
- {
- return rtl_ustr_toInt32( pData->buffer, radix );
- }
-
- /**
- Returns the int64 value from this string.
-
- This function can't be used for language specific conversion.
-
- @param radix the radix (between 2 and 36)
- @return the int64 represented from this string.
- 0 if this string represents no number.
- */
- sal_Int64 toInt64( sal_Int16 radix = 10 ) const SAL_THROW(())
- {
- return rtl_ustr_toInt64( pData->buffer, radix );
- }
-
- /**
- Returns the float value from this string.
-
- This function can't be used for language specific conversion.
-
- @return the float represented from this string.
- 0.0 if this string represents no number.
- */
- float toFloat() const SAL_THROW(())
- {
- return rtl_ustr_toFloat( pData->buffer );
- }
-
- /**
- Returns the double value from this string.
-
- This function can't be used for language specific conversion.
-
- @return the double represented from this string.
- 0.0 if this string represents no number.
- */
- double toDouble() const SAL_THROW(())
- {
- return rtl_ustr_toDouble( pData->buffer );
- }
-
-
- /**
- Return a canonical representation for a string.
-
- A pool of strings, initially empty is maintained privately
- by the string class. On invocation, if present in the pool
- the original string will be returned. Otherwise this string,
- or a copy thereof will be added to the pool and returned.
-
- @return
- a version of the string from the pool.
-
- @exception std::bad_alloc is thrown if an out-of-memory condition occurs
-
- @since UDK 3.2.7
- */
- OUString intern() const
- {
- rtl_uString * pNew = 0;
- rtl_uString_intern( &pNew, pData );
-#if defined EXCEPTIONS_OFF
- OSL_ASSERT(pNew != NULL);
-#else
- if (pNew == 0) {
- throw std::bad_alloc();
- }
-#endif
- return OUString( pNew, (DO_NOT_ACQUIRE *)0 );
- }
-
- /**
- Return a canonical representation for a converted string.
-
- A pool of strings, initially empty is maintained privately
- by the string class. On invocation, if present in the pool
- the original string will be returned. Otherwise this string,
- or a copy thereof will be added to the pool and returned.
-
- @param value a 8-Bit character array.
- @param length the number of character which should be converted.
- The 8-Bit character array length must be
- greater or equal than this value.
- @param encoding the text encoding from which the 8-Bit character
- sequence should be converted.
- @param convertFlags flags which controls the conversion.
- see RTL_TEXTTOUNICODE_FLAGS_...
- @param pInfo pointer to return conversion status or NULL.
-
- @return
- a version of the converted string from the pool.
-
- @exception std::bad_alloc is thrown if an out-of-memory condition occurs
-
- @since UDK 3.2.7
- */
- static OUString intern( const sal_Char * value, sal_Int32 length,
- rtl_TextEncoding encoding,
- sal_uInt32 convertFlags = OSTRING_TO_OUSTRING_CVTFLAGS,
- sal_uInt32 *pInfo = NULL )
- {
- rtl_uString * pNew = 0;
- rtl_uString_internConvert( &pNew, value, length, encoding,
- convertFlags, pInfo );
-#if defined EXCEPTIONS_OFF
- OSL_ASSERT(pNew != NULL);
-#else
- if (pNew == 0) {
- throw std::bad_alloc();
- }
-#endif
- return OUString( pNew, (DO_NOT_ACQUIRE *)0 );
- }
-
- /**
- Converts to an OString, signalling failure.
-
- @param pTarget
- An out parameter receiving the converted OString. Must not be null; the
- contents are not modified if conversion fails (convertToOString returns
- false).
-
- @param nEncoding
- The text encoding to convert into. Must be an octet encoding (i.e.,
- rtl_isOctetTextEncoding(nEncoding) must return true).
-
- @param nFlags
- A combination of RTL_UNICODETOTEXT_FLAGS that detail how to do the
- conversion (see rtl_convertUnicodeToText). RTL_UNICODETOTEXT_FLAGS_FLUSH
- need not be included, it is implicitly assumed. Typical uses are either
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR |
- RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR (fail if a Unicode character cannot
- be converted to the target nEncoding) or OUSTRING_TO_OSTRING_CVTFLAGS
- (make a best efforts conversion).
-
- @return
- True if the conversion succeeded, false otherwise.
- */
- inline bool convertToString(OString * pTarget, rtl_TextEncoding nEncoding,
- sal_uInt32 nFlags) const
- {
- return rtl_convertUStringToString(&pTarget->pData, pData->buffer,
- pData->length, nEncoding, nFlags);
- }
-
- /** Iterate through this string based on code points instead of UTF-16 code
- units.
-
- See Chapter 3 of The Unicode Standard 5.0 (Addison--Wesley, 2006) for
- definitions of the various terms used in this description.
-
- This string is interpreted as a sequence of zero or more UTF-16 code
- units. For each index into this sequence (from zero to one less than
- the length of the sequence, inclusive), a code point represented
- starting at the given index is computed as follows:
-
- - If the UTF-16 code unit addressed by the index constitutes a
- well-formed UTF-16 code unit sequence, the computed code point is the
- scalar value encoded by that UTF-16 code unit sequence.
-
- - Otherwise, if the index is at least two UTF-16 code units away from
- the end of the sequence, and the sequence of two UTF-16 code units
- addressed by the index constitutes a well-formed UTF-16 code unit
- sequence, the computed code point is the scalar value encoded by that
- UTF-16 code unit sequence.
-
- - Otherwise, the computed code point is the UTF-16 code unit addressed
- by the index. (This last case catches unmatched surrogates as well as
- indices pointing into the middle of surrogate pairs.)
-
- @param indexUtf16
- pointer to a UTF-16 based index into this string; must not be null. On
- entry, the index must be in the range from zero to the length of this
- string (in UTF-16 code units), inclusive. Upon successful return, the
- index will be updated to address the UTF-16 code unit that is the given
- incrementCodePoints away from the initial index.
-
- @param incrementCodePoints
- the number of code points to move the given *indexUtf16. If
- non-negative, moving is done after determining the code point at the
- index. If negative, moving is done before determining the code point
- at the (then updated) index. The value must be such that the resulting
- UTF-16 based index is in the range from zero to the length of this
- string (in UTF-16 code units), inclusive.
-
- @return
- the code point (an integer in the range from 0 to 0x10FFFF, inclusive)
- that is represented within this string starting at the index computed as
- follows: If incrementCodePoints is non-negative, the index is the
- initial value of *indexUtf16; if incrementCodePoints is negative, the
- index is the updated value of *indexUtf16. In either case, the computed
- index must be in the range from zero to one less than the length of this
- string (in UTF-16 code units), inclusive.
-
- @since UDK 3.2.7
- */
- inline sal_uInt32 iterateCodePoints(
- sal_Int32 * indexUtf16, sal_Int32 incrementCodePoints = 1) const
- {
- return rtl_uString_iterateCodePoints(
- pData, indexUtf16, incrementCodePoints);
- }
-
- /**
- Returns the string representation of the sal_Bool argument.
-
- If the sal_Bool is true, the string "true" is returned.
- If the sal_Bool is false, the string "false" is returned.
- This function can't be used for language specific conversion.
-
- @param b a sal_Bool.
- @return a string with the string representation of the argument.
- */
- static OUString valueOf( sal_Bool b ) SAL_THROW(())
- {
- sal_Unicode aBuf[RTL_USTR_MAX_VALUEOFBOOLEAN];
- rtl_uString* pNewData = 0;
- rtl_uString_newFromStr_WithLength( &pNewData, aBuf, rtl_ustr_valueOfBoolean( aBuf, b ) );
- return OUString( pNewData, (DO_NOT_ACQUIRE*)0 );
- }
-
- /**
- Returns the string representation of the char argument.
-
- @param c a character.
- @return a string with the string representation of the argument.
- */
- static OUString valueOf( sal_Unicode c ) SAL_THROW(())
- {
- return OUString( &c, 1 );
- }
-
- /**
- Returns the string representation of the int argument.
-
- This function can't be used for language specific conversion.
-
- @param i a int32.
- @param radix the radix (between 2 and 36)
- @return a string with the string representation of the argument.
- */
- static OUString valueOf( sal_Int32 i, sal_Int16 radix = 10 ) SAL_THROW(())
- {
- sal_Unicode aBuf[RTL_USTR_MAX_VALUEOFINT32];
- rtl_uString* pNewData = 0;
- rtl_uString_newFromStr_WithLength( &pNewData, aBuf, rtl_ustr_valueOfInt32( aBuf, i, radix ) );
- return OUString( pNewData, (DO_NOT_ACQUIRE*)0 );
- }
-
- /**
- Returns the string representation of the long argument.
-
- This function can't be used for language specific conversion.
-
- @param ll a int64.
- @param radix the radix (between 2 and 36)
- @return a string with the string representation of the argument.
- */
- static OUString valueOf( sal_Int64 ll, sal_Int16 radix = 10 ) SAL_THROW(())
- {
- sal_Unicode aBuf[RTL_USTR_MAX_VALUEOFINT64];
- rtl_uString* pNewData = 0;
- rtl_uString_newFromStr_WithLength( &pNewData, aBuf, rtl_ustr_valueOfInt64( aBuf, ll, radix ) );
- return OUString( pNewData, (DO_NOT_ACQUIRE*)0 );
- }
-
- /**
- Returns the string representation of the float argument.
-
- This function can't be used for language specific conversion.
-
- @param f a float.
- @return a string with the string representation of the argument.
- */
- static OUString valueOf( float f ) SAL_THROW(())
- {
- sal_Unicode aBuf[RTL_USTR_MAX_VALUEOFFLOAT];
- rtl_uString* pNewData = 0;
- rtl_uString_newFromStr_WithLength( &pNewData, aBuf, rtl_ustr_valueOfFloat( aBuf, f ) );
- return OUString( pNewData, (DO_NOT_ACQUIRE*)0 );
- }
-
- /**
- Returns the string representation of the double argument.
-
- This function can't be used for language specific conversion.
-
- @param d a double.
- @return a string with the string representation of the argument.
- */
- static OUString valueOf( double d ) SAL_THROW(())
- {
- sal_Unicode aBuf[RTL_USTR_MAX_VALUEOFDOUBLE];
- rtl_uString* pNewData = 0;
- rtl_uString_newFromStr_WithLength( &pNewData, aBuf, rtl_ustr_valueOfDouble( aBuf, d ) );
- return OUString( pNewData, (DO_NOT_ACQUIRE*)0 );
- }
-
- /**
- Returns a OUString copied without conversion from an ASCII
- character string.
-
- Since this method is optimized for performance, the ASCII character
- values are not converted in any way. The caller has to make sure that
- all ASCII characters are in the allowed range between 0 and
- 127. The ASCII string must be NULL-terminated.
-
- @param value the 8-Bit ASCII character string
- @return a string with the string representation of the argument.
- */
- static OUString createFromAscii( const sal_Char * value ) SAL_THROW(())
- {
- rtl_uString* pNew = 0;
- rtl_uString_newFromAscii( &pNew, value );
- return OUString( pNew, (DO_NOT_ACQUIRE*)0 );
- }
-};
-
-/* ======================================================================= */
-
-/** A helper to use OUStrings with hash maps.
-
- Instances of this class are unary function objects that can be used as
- hash function arguments to boost::unordered_map and similar constructs.
- */
-struct OUStringHash
-{
- /** Compute a hash code for a string.
-
- @param rString
- a string.
-
- @return
- a hash code for the string. This hash code should not be stored
- persistently, as its computation may change in later revisions.
- */
- size_t operator()(const rtl::OUString& rString) const
- { return (size_t)rString.hashCode(); }
-};
-
-/* ======================================================================= */
-
-/** Convert an OString to an OUString, using a specific text encoding.
-
- The lengths of the two strings may differ (e.g., for double-byte
- encodings, UTF-7, UTF-8).
-
- @param rStr
- an OString to convert.
-
- @param encoding
- the text encoding to use for conversion.
-
- @param convertFlags
- flags which control the conversion. Either use
- OSTRING_TO_OUSTRING_CVTFLAGS, or see
- <http://udk.openoffice.org/cpp/man/spec/textconversion.html> for more
- details.
- */
-inline OUString OStringToOUString( const OString & rStr,
- rtl_TextEncoding encoding,
- sal_uInt32 convertFlags = OSTRING_TO_OUSTRING_CVTFLAGS )
-{
- return OUString( rStr.getStr(), rStr.getLength(), encoding, convertFlags );
-}
-
-/** Convert an OUString to an OString, using a specific text encoding.
-
- The lengths of the two strings may differ (e.g., for double-byte
- encodings, UTF-7, UTF-8).
-
- @param rStr
- an OUString to convert.
-
- @param encoding
- the text encoding to use for conversion.
-
- @param convertFlags
- flags which control the conversion. Either use
- OUSTRING_TO_OSTRING_CVTFLAGS, or see
- <http://udk.openoffice.org/cpp/man/spec/textconversion.html> for more
- details.
- */
-inline OString OUStringToOString( const OUString & rUnicode,
- rtl_TextEncoding encoding,
- sal_uInt32 convertFlags = OUSTRING_TO_OSTRING_CVTFLAGS )
-{
- return OString( rUnicode.getStr(), rUnicode.getLength(), encoding, convertFlags );
-}
-
-/* ======================================================================= */
-
-} /* Namespace */
-
-#endif /* __cplusplus */
-
-#endif /* _RTL_USTRING_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/rtl/uuid.h b/sal/inc/rtl/uuid.h
deleted file mode 100644
index e79ce632f..000000000
--- a/sal/inc/rtl/uuid.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _RTL_UUID_H_
-#define _RTL_UUID_H_
-
-
-#include <sal/types.h>
-#include <rtl/string.h>
-
-/**
- @HTML
- @file
- Specification (from draft-leach-uuids-guids-01.txt )
-
- <p>
- A UUID is an identifier that is unique across both space and time,
- with respect to the space of all UUIDs. To be precise, the UUID
- consists of a finite bit space. Thus, collision cannot be avoided in
- principle. A UUID can be used for multiple purposes, from tagging objects
- with an extremely short lifetime, to reliably identifying very persistent
- objects across a network.
-
- <p>
- The generation of UUIDs does not require that a registration
- authority be contacted for each identifier. Instead, Version 4 UUIDs are
- generated from (pseudo unique) sequences of (pseudo) random bits.
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** Generates a new Version 4 (random number based) UUID (Universally Unique
- IDentifier).
-
- @param pTargetUUID pointer to at least 16 bytes of memory. After the call it contains
- the newly generated uuid in network byte order.
- @param pPredecessorUUID ignored (was used when this function returned
- Version 1 instead of Version 4 UUIDs).
- @param bUseEthernetAddress ignored (was used when this function returned
- Version 1 instead of Version 4 UUIDs).
- */
-void SAL_CALL rtl_createUuid( sal_uInt8 *pTargetUUID ,
- const sal_uInt8 *pPredecessorUUID,
- sal_Bool bUseEthernetAddress );
-
-/** Compare two UUID's lexically
-
- <p>
- Note: lexical ordering is not temporal ordering!
- <p>
- Note: For equalnesschecking, a memcmp(pUUID1,pUUID2,16) is more efficient
-
- @return
- <ul>
- <li>-1 u1 is lexically before u2
- <li>0 u1 is equal to u2
- <li>1 u1 is lexically after u2
- </ul>
-
- */
-sal_Int32 SAL_CALL rtl_compareUuid( const sal_uInt8 *pUUID1 , const sal_uInt8 *pUUID2 );
-
-/** Creates named UUIDs.
-
- <p>
- The version 3 UUID is meant for generating UUIDs from <em>names</em> that
- are drawn from, and unique within, some <em>name space</em>. Some examples
- of names (and, implicitly, name spaces) might be DNS names, URLs, ISO
- Object IDs (OIDs), reserved words in a programming language, or X.500
- Distinguished Names (DNs); thus, the concept of name and name space
- should be broadly construed, and not limited to textual names.
-
- <p>
- The requirements for such UUIDs are as follows:
-
- <ul>
- <li> The UUIDs generated at different times from the same name in the
- same namespace MUST be equal
-
- <li> The UUIDs generated from two different names in the same namespace
- should be different (with very high probability)
-
- <li> The UUIDs generated from the same name in two different namespaces
- should be different with (very high probability)
-
- <li> If two UUIDs that were generated from names are equal, then they
- were generated from the same name in the same namespace (with very
- high probability).
- </ul>
-
- @param pTargetUUID pointer to at least 16 bytes of memory. After the call
- it contains the newly generated uuid in network byte order.
- @param pNameSpaceUUID The namespace uuid. Below are some predefined ones,
- but any arbitray uuid can be used as namespace.
-
- @param pName the name
- */
-void SAL_CALL rtl_createNamedUuid(
- sal_uInt8 *pTargetUUID,
- const sal_uInt8 *pNameSpaceUUID,
- const rtl_String *pName
- );
-
-
-
-/*
- Predefined Namespaces
- (Use them the following way : sal_uInt8 aNsDNS[16]) = RTL_UUID_NAMESPACE_DNS;
- */
-/** namesapce DNS
-
- <p>
- (Use them the following way : sal_uInt8 aNsDNS[16]) = RTL_UUID_NAMESPACE_DNS;
- <p>
- 6ba7b810-9dad-11d1-80b4-00c04fd430c8 */
-#define RTL_UUID_NAMESPACE_DNS {\
- 0x6b,0xa7,0xb8,0x10,\
- 0x9d,0xad,\
- 0x11,0xd1,\
- 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8\
- }
-
-/** namespace URL
-
- <p>
- 6ba7b811-9dad-11d1-80b4-00c04fd430c8 */
-#define RTL_UUID_NAMESPACE_URL { \
- 0x6b, 0xa7, 0xb8, 0x11,\
- 0x9d, 0xad,\
- 0x11, 0xd1,\
- 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8\
- }
-
-/** namespace oid
-
- <p>
- 6ba7b812-9dad-11d1-80b4-00c04fd430c8 */
-#define RTL_UUID_NAMESPACE_OID {\
- 0x6b, 0xa7, 0xb8, 0x12,\
- 0x9d, 0xad,\
- 0x11, 0xd1,\
- 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8\
- }
-
-/** namespace X500
-
- <p>
- 6ba7b814-9dad-11d1-80b4-00c04fd430c8 */
-#define RTL_UUID_NAMESPACE_X500 {\
- 0x6b, 0xa7, 0xb8, 0x14,\
- 0x9d, 0xad,\
- 0x11, 0xd1,\
- 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8\
- }
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/sal/alloca.h b/sal/inc/sal/alloca.h
deleted file mode 100644
index 087746ff7..000000000
--- a/sal/inc/sal/alloca.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_SAL_ALLOCA_H
-#define INCLUDED_SAL_ALLOCA_H
-
-#if defined (SOLARIS) || defined (LINUX) || defined(__EMX__) || defined(AIX) || defined(ANDROID)
-
-#ifndef INCLUDED_ALLOCA_H
-#include <alloca.h>
-#define INCLUDED_ALLOCA_H
-#endif
-
-#elif defined (FREEBSD) || defined(NETBSD) || defined(OPENBSD) || defined(DRAGONFLY)
-
-#ifndef INCLUDED_STDLIB_H
-#include <stdlib.h>
-#define INCLUDED_STDLIB_H
-#endif
-
-#elif defined (MACOSX)
-
-#ifndef INCLUDED_SYS_TYPES_H
-#include <sys/types.h>
-#define INCLUDED_SYS_TYPES_H
-#endif
-
-#elif defined (IOS)
-
-#ifndef INCLUDED_SYS_TYPES_H
-#include <sys/types.h>
-#define INCLUDED_SYS_TYPES_H
-#endif
-
-#elif defined (WNT)
-
-#ifndef INCLUDED_MALLOC_H
-#include <malloc.h>
-#define INCLUDED_MALLOC_H
-#endif
-
-#else
-
-#error "unknown platform: please check for alloca"
-
-#endif
-
-#endif /* INCLUDED_SAL_ALLOCA_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/sal/config.h b/sal/inc/sal/config.h
deleted file mode 100644
index fdeaf85b4..000000000
--- a/sal/inc/sal/config.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SAL_CONFIG_H_
-#define _SAL_CONFIG_H_
-
-#ifndef INCLUDED_STDLIB_H
-#include <stdlib.h>
-#define INCLUDED_STDLIB_H
-#endif
-
-#ifdef WIN32
-#define SAL_W32
-#define SAL_DLLEXTENSION ".dll"
-#define SAL_PRGEXTENSION ".exe"
-#define SAL_PATHSEPARATOR ';'
-#define SAL_PATHDELIMITER '\\'
-#define SAL_CONFIGFILE( name ) name ".ini"
-
-#ifdef _MSC_VER
-
-#ifndef _USE_MATH_DEFINES
-#define _USE_MATH_DEFINES // needed by Visual C++ for math constants
-#endif
-
-/* warnings ought to be disabled using /wd:n option of msvc.net compiler */
-#if _MSC_VER < 1300
-/* no performance warning: int to bool */
-#pragma warning( disable : 4800 )
-
-/* No warning for: C++ Exception Specification ignored */
-#pragma warning( disable : 4290 )
-
-#if OSL_DEBUG_LEVEL > 0
-/* No warning for: identifier was truncated to '255' characters in the browser information */
-#pragma warning( disable : 4786 )
-#endif
-#endif /* defined _MSC_VER < 1300 */
-
-#endif /* defined _MSC_VER */
-
-/* Provide ISO C99 compatible versions of snprint and vsnprintf */
-#ifdef __MINGW32__
-#define _SNPRINTF_DLLIMPORT
-#endif
-#ifndef _SNPRINTF_H
-#include <systools/win32/snprintf.h>
-#endif
-
-#endif /* defined WIN32 */
-
-#if defined(SOLARIS) || defined(LINUX) || defined(NETBSD) || defined(FREEBSD) || \
- defined(AIX) || defined(OPENBSD) || defined(DRAGONFLY) || defined(ANDROID)
-#define SAL_UNX
-#define SAL_DLLEXTENSION ".so"
-#define SAL_DLLPREFIX "lib"
-#define SAL_PRGEXTENSION ".bin"
-#define SAL_PATHSEPARATOR ':'
-#define SAL_PATHDELIMITER '/'
-#define SAL_CONFIGFILE( name ) name "rc"
-#endif
-
-#ifdef MACOSX
-#define SAL_UNX
-#define SAL_DLLEXTENSION ".dylib"
-#define SAL_DLLPREFIX "lib"
-#define SAL_PRGEXTENSION ".bin"
-#define SAL_PATHSEPARATOR ':'
-#define SAL_PATHDELIMITER '/'
-#define SAL_CONFIGFILE( name ) name "rc"
-#endif
-
-#ifdef IOS
-#define SAL_UNX
-/* SAL_DLLEXTENSION should not really be used on iOS, as iOS apps are
- * not allowed to load own dynamic libraries.
- */
-#define SAL_DLLEXTENSION ".dylib"
-#define SAL_DLLPREFIX "lib"
-/* This is fairly pointless too, an iOS app consists of a single
- * executable (plus data files).
- */
-#define SAL_PRGEXTENSION ".bin"
-#define SAL_PATHSEPARATOR ':'
-#define SAL_PATHDELIMITER '/'
-#define SAL_CONFIGFILE( name ) name "rc"
-#endif
-
-#ifdef sun
-#undef sun
-#define sun sun
-#endif
-
-/* This is to work around a gcc 3.3 error that fixing actually breaks other
- * compilers. This will create a dummy variable specifically for gcc 3.3 that
- * allows it to compile and not break the others. Other compilers may follow
- * with this eror later. */
-#if defined __GNUC__
-#if ((__GNUC__ == 3) && (__GNUC_MINOR__ > 2))
-# define SAL_ISO_CONST const
-#else
-# define SAL_ISO_CONST
-#endif
-#endif
-
-#endif /*_SAL_CONFIG_H_ */
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/sal/cppunit.h b/sal/inc/sal/cppunit.h
deleted file mode 100644
index 41c465d62..000000000
--- a/sal/inc/sal/cppunit.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SAL_CPPUNIT_H_
-#define _SAL_CPPUNIT_H_
-
-#include <sal/types.h>
-
-#include <cppunit/TestAssert.h>
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-#include <cppunit/Protector.h>
-
-namespace cppunittester
-{
- class LibreOfficeProtecter : public CppUnit::Protector
- {
- public:
- virtual bool protect(CppUnit::Functor const & functor) = 0;
- using CppUnit::Protector::protect;
- };
-}
-
-#undef CPPUNIT_PLUGIN_EXPORT
-#define CPPUNIT_PLUGIN_EXPORT extern "C" SAL_DLLPUBLIC_EXPORT
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/sal/macros.h b/sal/inc/sal/macros.h
deleted file mode 100644
index e4c351382..000000000
--- a/sal/inc/sal/macros.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SAL_MACROS_H_
-#define _SAL_MACROS_H_
-
-#include <stddef.h>
-
-#ifndef SAL_MAX
-# define SAL_MAX(a,b) (((a) > (b)) ? (a) : (b))
-#endif
-
-#ifndef SAL_MIN
-# define SAL_MIN(a,b) (((a) < (b)) ? (a) : (b))
-#endif
-
-#ifndef SAL_FIELDOFFSET
-# define SAL_FIELDOFFSET(type, field) ((sal_Int32)(&((type *)16)->field) - 16)
-#endif
-
-#ifndef SAL_N_ELEMENTS
-# if defined(__cplusplus) && defined(__GXX_EXPERIMENTAL_CXX0X__)
- /*
- * Magic template to calculate at compile time the number of elements
- * in an array. Enforcing that the argument must be a array and not
- * a pointer, e.g.
- * char *pFoo="foo";
- * SAL_N_ELEMENTS(pFoo);
- * fails while
- * SAL_N_ELEMENTS("foo");
- * or
- * char aFoo[]="foo";
- * SAL_N_ELEMENTS(aFoo);
- * pass
- *
- * Unfortunately if arr is an array of an anonymous class then we need
- * C++0x, i.e. see
- * http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#757
- */
- template <typename T, size_t S> char (&sal_n_array_size( T(&)[S] ))[S];
-# define SAL_N_ELEMENTS(arr) (sizeof(sal_n_array_size(arr)))
-# else
-# define SAL_N_ELEMENTS(arr) (sizeof (arr) / sizeof ((arr)[0]))
-# endif
-#endif
-
-#ifndef SAL_BOUND
-# define SAL_BOUND(x,l,h) ((x) <= (l) ? (l) : ((x) >= (h) ? (h) : (x)))
-#endif
-
-#ifndef SAL_ABS
-# define SAL_ABS(a) (((a) < 0) ? (-(a)) : (a))
-#endif
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/sal/main.h b/sal/inc/sal/main.h
deleted file mode 100644
index cc4c5c5e8..000000000
--- a/sal/inc/sal/main.h
+++ /dev/null
@@ -1,244 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SAL_MAIN_H_
-#define _SAL_MAIN_H_
-
-#include <sal/types.h>
-#if defined(AIX)
-# include <unistd.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void SAL_CALL sal_detail_initialize(int argc, char ** argv);
-void SAL_CALL sal_detail_deinitialize();
-
-#ifdef IOS
-
-#include <premac.h>
-#import <UIKit/UIKit.h>
-#include <postmac.h>
-
-#define SAL_MAIN_WITH_ARGS_IMPL \
-int SAL_CALL main(int argc, char ** argv) \
-{ \
- sal_detail_initialize(argc, argv); \
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; \
- int retVal = UIApplicationMain (argc, argv, @"UIApplication", @"salAppDelegate"); \
- [pool release]; \
- sal_detail_deinitialize(); \
- return retVal; \
-} \
- \
-static int sal_main_with_args(int argc, char **argv); \
- \
-static int \
-sal_main(void) \
-{ \
- char *argv[] = { NULL }; \
- return sal_main_with_args(0, argv); \
-}
-
-#define SAL_MAIN_IMPL \
-int SAL_CALL main(int argc, char ** argv) \
-{ \
- sal_detail_initialize(argc, argv); \
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; \
- int retVal = UIApplicationMain (argc, argv, @"UIApplication", @"salAppDelegate"); \
- [pool release]; \
- sal_detail_deinitialize(); \
- return retVal; \
-}
-
-#define SAL_MAIN_WITH_GUI_IMPL \
-int SAL_CALL main(int argc, char ** argv) \
-{ \
- sal_detail_initialize(argc, argv); \
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; \
- int retVal = sal_main(); \
- [pool release]; \
- sal_detail_deinitialize(); \
- return retVal; \
-}
-
-@interface salAppDelegate : NSObject <UIApplicationDelegate> {
-}
-@property (nonatomic, retain) UIWindow *window;
-@end
-
-static int sal_main(void);
-
-@implementation salAppDelegate
-
-@synthesize window=_window;
-
-- (BOOL)application: (UIApplication *) application didFinishLaunchingWithOptions: (NSDictionary *) launchOptions
-{
- (void) application;
- (void) launchOptions;
- UIWindow *uiw = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
- uiw.backgroundColor = [UIColor redColor];
- self.window = uiw;
- [uiw release];
-
- sal_main();
-
- [self.window makeKeyAndVisible];
- return YES;
-}
-
-@end
-
-#else
-
-#define SAL_MAIN_WITH_ARGS_IMPL \
-int SAL_CALL main(int argc, char ** argv) \
-{ \
- int ret; \
- sal_detail_initialize(argc, argv); \
- ret = sal_main_with_args(argc, argv); \
- sal_detail_deinitialize(); \
- return ret; \
-}
-
-#define SAL_MAIN_IMPL \
-int SAL_CALL main(int argc, char ** argv) \
-{ \
- int ret; \
- sal_detail_initialize(argc, argv); \
- ret = sal_main(); \
- sal_detail_deinitialize(); \
- return ret; \
-}
-
-#define SAL_MAIN_WITH_GUI_IMPL SAL_MAIN_IMPL
-
-#endif
-
-
-/* Definition macros for CRT entries */
-
-#ifdef SAL_W32
-
-#ifndef INCLUDED_STDLIB_H
-#include <stdlib.h>
-#define INCLUDED_STDLIB_H
-#endif
-
-/* Sorry but this is neccessary cause HINSTANCE is a typedef that differs (C++ causes an error) */
-
-#ifndef WINAPI
-# define WINAPI __stdcall
-#endif
-
-#if !defined(DECLARE_HANDLE)
-# ifdef STRICT
- typedef void *HANDLE;
-# define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
-# else
- typedef void *PVOID;
- typedef PVOID HANDLE;
-# define DECLARE_HANDLE(name) typedef HANDLE name
-# endif
-DECLARE_HANDLE(HINSTANCE);
-#endif
-
-
-
-#define SAL_WIN_WinMain \
-int WINAPI WinMain( HINSTANCE _hinst, HINSTANCE _dummy, char* _cmdline, int _nshow ) \
-{ \
- int argc = __argc; char ** argv = __argv; \
- (void) _hinst; (void) _dummy; (void) _cmdline; (void) _nshow; /* unused */ \
- return main(argc, argv); \
-}
-
-#else /* ! SAL_W32 */
-
-# define SAL_WIN_WinMain
-
-#endif /* ! SAL_W32 */
-
-/* Implementation macro */
-
-#define SAL_IMPLEMENT_MAIN_WITH_ARGS(_argc_, _argv_) \
- static int SAL_CALL sal_main_with_args (int _argc_, char ** _argv_); \
- SAL_MAIN_WITH_ARGS_IMPL \
- SAL_WIN_WinMain \
- static int SAL_CALL sal_main_with_args(int _argc_, char ** _argv_)
-
-#define SAL_IMPLEMENT_MAIN() \
- static int SAL_CALL sal_main(void); \
- SAL_MAIN_IMPL \
- SAL_WIN_WinMain \
- static int SAL_CALL sal_main(void)
-
-/* Use SAL_IMPLEMENT_MAIN_WITH_GUI in programs that actually have a
- * VCL GUI. The difference is meaningful only for iOS support, which
- * of course is a highly experimental work in progress. So actually,
- * don't bother, just let developers who care for iOS take care of it
- * when/if necessary.
- */
-
-#define SAL_IMPLEMENT_MAIN_WITH_GUI() \
- static int SAL_CALL sal_main(void); \
- SAL_MAIN_WITH_GUI_IMPL \
- SAL_WIN_WinMain \
- static int SAL_CALL sal_main(void)
-
-/*
- "How to use" Examples:
-
- #include <sal/main.h>
-
- SAL_IMPLEMENT_MAIN()
- {
- DoSomething();
-
- return 0;
- }
-
- SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
- {
- DoSomethingWithArgs(argc, argv);
-
- return 0;
- }
-
-*/
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* _SAL_MAIN_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/sal/mathconf.h b/sal/inc/sal/mathconf.h
deleted file mode 100644
index f180369a9..000000000
--- a/sal/inc/sal/mathconf.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#if !defined INCLUDED_SAL_MATHCONF_H
-#define INCLUDED_SAL_MATHCONF_H
-
-#include "osl/endian.h"
-
-#include <float.h>
-
-#if defined SOLARIS
-#include <ieeefp.h>
-#endif /* SOLARIS */
-
-#if defined __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/* Generally, the C standard guarantees that at program startup, "trapping or
- stopping (if supported) is disabled on all [floating-point] exceptions"
- (F.7.3/1 of the August 3, 1998 draft of C99), and that during program
- execution, "a programmer can safely assume default modes (or be unaware of
- them)" (7.6/2, footnote 161 of the August 3, 1998 draft of C99). Reportedly,
- on Windows there are printer drivers that switch on exceptions. To avoid
- problems, the SAL_MATH_FPEXCEPTIONS_OFF macro can be used to explicitly
- switch off exceptions (on Windows).
- */
-#if defined WNT
-#define SAL_MATH_FPEXCEPTIONS_OFF() _control87( _MCW_EM, _MCW_EM )
-#else /* WNT */
-#define SAL_MATH_FPEXCEPTIONS_OFF()
-#endif /* WNT */
-
-
-/* SAL_MATH_FINITE(d): test double d on INFINITY, NaN et al. */
-#if defined( WNT)
-#define SAL_MATH_FINITE(d) _finite(d)
-#elif defined IOS
-/* C++ is so nice. This is the only way I could come up with making
- * this actually work in all cases (?), even when <cmath> has been
- * included which #undefs isfinite: copy the definition of isfinite()
- * from <architecture/arm/math.h>
- */
-#define SAL_MATH_FINITE(d) \
- ( sizeof (d) == sizeof(float ) ? __inline_isfinitef((float)(d)) \
- : sizeof (d) == sizeof(double) ? __inline_isfinited((double)(d)) \
- : __inline_isfinite ((long double)(d)))
-#elif defined LINUX || defined UNX
-#define SAL_MATH_FINITE(d) finite(d)
-#else /* WNT, LINUX, UNX */
-#error "SAL_MATH_FINITE not defined"
-#endif /* WNT, LINUX, UNX */
-
-
-/* This needs to be fixed for non--IEEE-754 platforms: */
-#if 1 /* IEEE 754 supported */
-#if defined OSL_BIGENDIAN
-
-/* IEEE 754 double structures for BigEndian */
-union sal_math_Double
-{
- struct
- {
- unsigned sign : 1;
- unsigned exponent :11;
- unsigned fraction_hi :20;
- unsigned fraction_lo :32;
- } inf_parts;
- struct
- {
- unsigned sign : 1;
- unsigned exponent :11;
- unsigned qnan_bit : 1;
- unsigned bits :19;
- unsigned fraction_lo :32;
- } nan_parts;
- struct
- {
- unsigned msw :32;
- unsigned lsw :32;
- } w32_parts;
- double value;
-};
-
-#elif defined OSL_LITENDIAN
-
-/* IEEE 754 double structures for LittleEndian */
-union sal_math_Double
-{
- struct {
- unsigned fraction_lo :32;
- unsigned fraction_hi :20;
- unsigned exponent :11;
- unsigned sign : 1;
- } inf_parts;
- struct {
- unsigned fraction_lo :32;
- unsigned bits :19;
- unsigned qnan_bit : 1;
- unsigned exponent :11;
- unsigned sign : 1;
- } nan_parts;
- struct
- {
- unsigned lsw :32;
- unsigned msw :32;
- } w32_parts;
- double value;
-};
-
-#else /* OSL_BIGENDIAN, OSL_LITENDIAN */
-
-#error "neither OSL_BIGENDIAN nor OSL_LITENDIAN"
-
-#endif /* OSL_BIGENDIAN, OSL_LITENDIAN */
-#else /* IEEE 754 supported */
-
-#error "don't know how to handle IEEE 754"
-
-#endif /* IEEE 754 supported */
-
-
-#if defined __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* INCLUDED_SAL_MATHCONF_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/sal/types.h b/sal/inc/sal/types.h
deleted file mode 100644
index 33ff2d989..000000000
--- a/sal/inc/sal/types.h
+++ /dev/null
@@ -1,445 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SAL_TYPES_H_
-#define _SAL_TYPES_H_
-
-#include <sal/config.h>
-#include <sal/macros.h>
-
-/* Grab __SIZEOFxxx constants from typesconfig tool on Unix */
-#if defined UNX
- #include <sal/typesizes.h>
-#elif defined(WNT)
- /* FIXME: autogeneration of type sizes on Win32/Win64? */
- #define SAL_TYPES_ALIGNMENT2 1
- #define SAL_TYPES_ALIGNMENT4 1
- #define SAL_TYPES_ALIGNMENT8 1
- #define SAL_TYPES_SIZEOFSHORT 2
- #define SAL_TYPES_SIZEOFINT 4
- #define SAL_TYPES_SIZEOFLONG 4
- #define SAL_TYPES_SIZEOFLONGLONG 8
- #ifdef _WIN64
- #define SAL_TYPES_SIZEOFPOINTER 8
- #else
- #define SAL_TYPES_SIZEOFPOINTER 4
- #endif
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/********************************************************************************/
-/* Data types
-*/
-
-/* Boolean */
-typedef unsigned char sal_Bool;
-# define sal_False ((sal_Bool)0)
-# define sal_True ((sal_Bool)1)
-
-/* char is assumed to always be 1 byte long */
-typedef signed char sal_Int8;
-typedef unsigned char sal_uInt8;
-
-#if SAL_TYPES_SIZEOFSHORT == 2
- typedef signed short sal_Int16;
- typedef unsigned short sal_uInt16;
-#else
- #error "Could not find 16-bit type, add support for your architecture"
-#endif
-
-#if SAL_TYPES_SIZEOFLONG == 4
- typedef signed long sal_Int32;
- typedef unsigned long sal_uInt32;
- #define SAL_PRIdINT32 "ld"
- #define SAL_PRIuUINT32 "lu"
- #define SAL_PRIxUINT32 "lx"
- #define SAL_PRIXUINT32 "lX"
-#elif SAL_TYPES_SIZEOFINT == 4
- typedef signed int sal_Int32;
- typedef unsigned int sal_uInt32;
- #define SAL_PRIdINT32 "d"
- #define SAL_PRIuUINT32 "u"
- #define SAL_PRIxUINT32 "x"
- #define SAL_PRIXUINT32 "X"
-#else
- #error "Could not find 32-bit type, add support for your architecture"
-#endif
-
-#if (_MSC_VER >= 1000)
- typedef __int64 sal_Int64;
- typedef unsigned __int64 sal_uInt64;
-
- /* The following are macros that will add the 64 bit constant suffix. */
- #define SAL_CONST_INT64(x) x##i64
- #define SAL_CONST_UINT64(x) x##ui64
-
- #define SAL_PRIdINT64 "I64d"
- #define SAL_PRIuUINT64 "I64u"
- #define SAL_PRIxUINT64 "I64x"
- #define SAL_PRIXUINT64 "I64X"
-#elif defined(__SUNPRO_CC) || defined(__SUNPRO_C) || defined (__GNUC__) || defined (sgi)
- #if SAL_TYPES_SIZEOFLONG == 8
- typedef signed long int sal_Int64;
- typedef unsigned long int sal_uInt64;
-
-
- /* The following are macros that will add the 64 bit constant suffix. */
- #define SAL_CONST_INT64(x) x##l
- #define SAL_CONST_UINT64(x) x##ul
-
- #define SAL_PRIdINT64 "ld"
- #define SAL_PRIuUINT64 "lu"
- #define SAL_PRIxUINT64 "lx"
- #define SAL_PRIXUINT64 "lX"
- #elif SAL_TYPES_SIZEOFLONGLONG == 8
- typedef signed long long sal_Int64;
- typedef unsigned long long sal_uInt64;
-
- /* The following are macros that will add the 64 bit constant suffix. */
- #define SAL_CONST_INT64(x) x##ll
- #define SAL_CONST_UINT64(x) x##ull
-
- #ifdef __MINGW32__
- #define SAL_PRIdINT64 "I64d"
- #define SAL_PRIuUINT64 "I64u"
- #define SAL_PRIxUINT64 "I64x"
- #define SAL_PRIXUINT64 "I64X"
- #else
- #define SAL_PRIdINT64 "lld"
- #define SAL_PRIuUINT64 "llu"
- #define SAL_PRIxUINT64 "llx"
- #define SAL_PRIXUINT64 "llX"
- #endif
- #else
- #error "Could not find 64-bit type, add support for your architecture"
- #endif
-#else
- #error "Please define the 64-bit types for your architecture/compiler in sal/inc/sal/types.h"
-#endif
-
-typedef char sal_Char;
-typedef signed char sal_sChar;
-typedef unsigned char sal_uChar;
-
-#if ( defined(SAL_W32) && !defined(__MINGW32__) )
- typedef wchar_t sal_Unicode;
-#else
- #define SAL_UNICODE_NOTEQUAL_WCHAR_T
- typedef sal_uInt16 sal_Unicode;
-#endif
-
-typedef void * sal_Handle;
-
-/* sal_Size should currently be the native width of the platform */
-#if SAL_TYPES_SIZEOFPOINTER == 4
- typedef sal_uInt32 sal_Size;
- typedef sal_Int32 sal_sSize;
-#elif SAL_TYPES_SIZEOFPOINTER == 8
- typedef sal_uInt64 sal_Size;
- typedef sal_Int64 sal_sSize;
-#else
- #error "Please make sure SAL_TYPES_SIZEOFPOINTER is defined for your architecture/compiler"
-#endif
-
-/* sal_PtrDiff holds the result of a pointer subtraction */
-#if SAL_TYPES_SIZEOFPOINTER == 4
- typedef sal_Int32 sal_PtrDiff;
-#elif SAL_TYPES_SIZEOFPOINTER == 8
- typedef sal_Int64 sal_PtrDiff;
-#else
- #error "Please make sure SAL_TYPES_SIZEOFPOINTER is defined for your architecture/compiler"
-#endif
-
-/* printf-style conversion specification length modifiers for size_t and
- ptrdiff_t (most platforms support C99, MSC has its own extension) */
-#if defined(_MSC_VER) || defined(__MINGW32__)
- #define SAL_PRI_SIZET "I"
- #define SAL_PRI_PTRDIFFT "I"
-#else
- #define SAL_PRI_SIZET "z"
- #define SAL_PRI_PTRDIFFT "t"
-#endif
-
-/* sal_IntPtr, sal_uIntPtr are integer types designed to hold pointers so that any valid
- * pointer to void can be converted to this type and back to a pointer to void and the
- * result will compare to the original pointer */
-#if SAL_TYPES_SIZEOFPOINTER == 4
- typedef sal_Int32 sal_IntPtr;
- typedef sal_uInt32 sal_uIntPtr;
- #define SAL_PRIdINTPTR SAL_PRIdINT32
- #define SAL_PRIuUINTPTR SAL_PRIuUINT32
- #define SAL_PRIxUINTPTR SAL_PRIxUINT32
- #define SAL_PRIXUINTPTR SAL_PRIXUINT32
-#elif SAL_TYPES_SIZEOFPOINTER == 8
- typedef sal_Int64 sal_IntPtr;
- typedef sal_uInt64 sal_uIntPtr;
- #define SAL_PRIdINTPTR SAL_PRIdINT64
- #define SAL_PRIuUINTPTR SAL_PRIuUINT64
- #define SAL_PRIxUINTPTR SAL_PRIxUINT64
- #define SAL_PRIXUINTPTR SAL_PRIXUINT64
-#else
- #error "Please make sure SAL_TYPES_SIZEOFPOINTER is defined for your architecture/compiler"
-#endif
-
-/********************************************************************************/
-/* Useful defines
- */
-
-/* The following SAL_MIN_INTn defines codify the assumption that the signed
- * sal_Int types use two's complement representation. Defining them as
- * "-0x7F... - 1" instead of as "-0x80..." prevents warnings about applying the
- * unary minus operator to unsigned quantities.
- */
-#define SAL_MIN_INT8 ((sal_Int8) (-0x7F - 1))
-#define SAL_MAX_INT8 ((sal_Int8) 0x7F)
-#define SAL_MAX_UINT8 ((sal_uInt8) 0xFF)
-#define SAL_MIN_INT16 ((sal_Int16) (-0x7FFF - 1))
-#define SAL_MAX_INT16 ((sal_Int16) 0x7FFF)
-#define SAL_MAX_UINT16 ((sal_uInt16) 0xFFFF)
-#define SAL_MIN_INT32 ((sal_Int32) (-0x7FFFFFFF - 1))
-#define SAL_MAX_INT32 ((sal_Int32) 0x7FFFFFFF)
-#define SAL_MAX_UINT32 ((sal_uInt32) 0xFFFFFFFF)
-#define SAL_MIN_INT64 ((sal_Int64) (SAL_CONST_INT64(-0x7FFFFFFFFFFFFFFF) - 1))
-#define SAL_MAX_INT64 ((sal_Int64) SAL_CONST_INT64(0x7FFFFFFFFFFFFFFF))
-#define SAL_MAX_UINT64 ((sal_uInt64) SAL_CONST_UINT64(0xFFFFFFFFFFFFFFFF))
-
-#if SAL_TYPES_SIZEOFLONG == 4
-#define SAL_MAX_SSIZE SAL_MAX_INT32
-#define SAL_MAX_SIZE SAL_MAX_UINT32
-#elif SAL_TYPES_SIZEOFLONG == 8
-#define SAL_MAX_SSIZE SAL_MAX_INT64
-#define SAL_MAX_SIZE SAL_MAX_UINT64
-#endif
-
-#if defined(SAL_W32) || defined(SAL_UNX)
-# define SAL_MAX_ENUM 0x7fffffff
-#endif
-
-#if defined(_MSC_VER) || defined(__MINGW32__)
-# define SAL_DLLPUBLIC_EXPORT __declspec(dllexport)
-#if defined(_MSC_VER)
-# define SAL_DLLPUBLIC_IMPORT __declspec(dllimport)
-#else
-# define SAL_DLLPUBLIC_IMPORT
-#endif // defined(_MSC_VER)
-# define SAL_DLLPRIVATE
-#if defined(_MSC_VER)
-# define SAL_CALL __cdecl
-# define SAL_CALL_ELLIPSE __cdecl
-#else
-# define SAL_CALL
-# define SAL_CALL_ELLIPSE
-#endif
-#elif defined SAL_UNX
-# if defined(__SUNPRO_CC) && (__SUNPRO_CC >= 0x550)
-# define SAL_DLLPUBLIC_EXPORT __global
-# define SAL_DLLPUBLIC_IMPORT
-# define SAL_DLLPRIVATE __hidden
-# elif defined(__SUNPRO_C ) && (__SUNPRO_C >= 0x550)
-# define SAL_DLLPUBLIC_EXPORT __global
-# define SAL_DLLPUBLIC_IMPORT
-# define SAL_DLLPRIVATE __hidden
-# elif defined(__GNUC__) && defined(HAVE_GCC_VISIBILITY_FEATURE)
-# define SAL_DLLPUBLIC_EXPORT __attribute__ ((visibility("default")))
-# define SAL_DLLPUBLIC_IMPORT
-# define SAL_DLLPRIVATE __attribute__ ((visibility("hidden")))
-# else
-# define SAL_DLLPUBLIC_EXPORT
-# define SAL_DLLPUBLIC_IMPORT
-# define SAL_DLLPRIVATE
-# endif
-# define SAL_CALL
-# define SAL_CALL_ELLIPSE
-#else
-# error("unknown platform")
-#endif
-
-/**
- Exporting the symbols necessary for exception handling on GCC.
-
- These macros are used for inline declarations of exception classes, as in
- rtl/malformeduriexception.hxx.
-*/
-#if defined(__GNUC__) && ! defined(__MINGW32__)
-#define SAL_EXCEPTION_DLLPUBLIC_EXPORT SAL_DLLPUBLIC_EXPORT
-#define SAL_EXCEPTION_DLLPRIVATE SAL_DLLPRIVATE
-#else
-#define SAL_EXCEPTION_DLLPUBLIC_EXPORT
-#define SAL_EXCEPTION_DLLPRIVATE
-#endif
-
-/** Use this as markup for functions and methods whose return value must be
- checked.
-
- Compilers that support a construct of this nature will emit a compile
- time warning on unchecked return value.
-*/
-#if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
-# define SAL_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
-#else
-# define SAL_WARN_UNUSED_RESULT
-#endif
-
-/** Use this for pure virtual classes, e.g. class SAL_NO_VTABLE Foo { ...
- This hinders the compiler from setting a generic vtable stating that
- a pure virtual function was called and thus slightly reduces code size.
-*/
-#ifdef _MSC_VER
-# define SAL_NO_VTABLE __declspec(novtable)
-#else
-# define SAL_NO_VTABLE
-#endif
-
-#ifdef SAL_W32
-# pragma pack(push, 8)
-#endif
-
-/** This is the binary specification of a SAL sequence.
- <br>
-*/
-typedef struct _sal_Sequence
-{
- /** reference count of sequence<br>
- */
- sal_Int32 nRefCount;
- /** element count<br>
- */
- sal_Int32 nElements;
- /** elements array<br>
- */
- char elements[1];
-} sal_Sequence;
-
-#define SAL_SEQUENCE_HEADER_SIZE ((sal_Size)&((sal_Sequence *)0)->elements)
-
-#if defined( SAL_W32)
-#pragma pack(pop)
-#endif
-
-
-/** Wrap C++ const_cast, reinterpret_cast and static_cast expressions in
- macros to keep code portable to old compilers (since most compilers still
- lack RTTI support, dynamic_cast is not included here).
- */
-#ifdef __cplusplus
-#if defined SAL_W32 || defined SOLARIS || defined LINUX || defined MACOSX || \
- defined FREEBSD || defined NETBSD || defined AIX || \
- defined OPENBSD || defined DRAGONFLY
-#define SAL_CONST_CAST(type, expr) (const_cast< type >(expr))
-#define SAL_REINTERPRET_CAST(type, expr) (reinterpret_cast< type >(expr))
-#define SAL_STATIC_CAST(type, expr) (static_cast< type >(expr))
-#else /* SAL_W32, SOLARIS, LINUX */
-#define SAL_CONST_CAST(type, expr) ((type) (expr))
-#define SAL_REINTERPRET_CAST(type, expr) ((type) (expr))
-#define SAL_STATIC_CAST(type, expr) ((type) (expr))
-#endif /* SAL_W32, SOLARIS, LINUX */
-#endif /* __cplusplus */
-
-/** Definition of function throw clause macros. These have been introduced
- to reduce code size by balancing out compiler bugs.
-
- These macros are ONLY for function declarations,
- use common C++ throw statement for throwing exceptions, e.g.
- throw RuntimeException();
-
- SAL_THROW() should be used for all C++ functions, e.g. SAL_THROW( () )
- SAL_THROW_EXTERN_C() should be used for all C functions
-*/
-#ifdef __cplusplus
-#if defined(__GNUC__) || defined(__SUNPRO_CC) || defined(__sgi)
-#define SAL_THROW( exc )
-#else /* MSVC, all other */
-#define SAL_THROW( exc ) throw exc
-#endif /* __GNUC__, __SUNPRO_CC */
-#define SAL_THROW_EXTERN_C() throw ()
-#else /* ! __cplusplus */
-/* SAL_THROW() must not be used in C headers, only SAL_THROW_EXTERN_C() is defined */
-#define SAL_THROW_EXTERN_C()
-#endif
-
-
-
-#ifdef __cplusplus
-enum __sal_NoAcquire
-{
- /** definition of a no acquire enum for ctors
- */
- SAL_NO_ACQUIRE
-};
-#endif /* __cplusplus */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#ifdef __cplusplus
-
-namespace sal {
-
-/**
- A static_cast between integral types, to avoid C++ compiler warnings.
-
- In C++ source code, use sal::static_int_cast<T>(n) instead of
- static_cast<T>(n) whenever a compiler warning about integral type problems
- shall be silenced. That way, source code that needs to be modified when the
- type of any of the expressions involved in the compiler warning is changed
- can be found more easily.
-
- Both template arguments T1 and T2 must be integral types.
-*/
-template< typename T1, typename T2 > inline T1 static_int_cast(T2 n) {
- return static_cast< T1 >(n);
-}
-
-}
-
-#else /* __cplusplus */
-
-/**
- A cast between integer types, to avoid C compiler warnings.
-
- In C source code, use SAL_INT_CAST(type, expr) instead of ((type) (expr))
- whenever a compiler warning about integer type problems shall be silenced.
- That way, source code that needs to be modified when the type of any of the
- expressions involved in the compiler warning is changed can be found more
- easily.
-
- The argument 'type' must be an integer type and the argument 'expr' must be
- an integer expression. Both arguments are evaluated exactly once.
-*/
-#define SAL_INT_CAST(type, expr) ((type) (expr))
-
-#endif /* __cplusplus */
-
-#endif /*_SAL_TYPES_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/systools/win32/comptr.hxx b/sal/inc/systools/win32/comptr.hxx
deleted file mode 100644
index fc224e6d7..000000000
--- a/sal/inc/systools/win32/comptr.hxx
+++ /dev/null
@@ -1,236 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef COMPTR_HXX
-#define COMPTR_HXX
-
-#include <sal/types.h>
-#include <osl/diagnose.h>
-#include <shobjidl.h>
-
-template< class T_INTERFACE ,
- REFIID P_IID = IID_NULL ,
- REFCLSID P_CLSID = CLSID_NULL >
-class ComPtr
-{
- public:
-
- //---------------------------------------------------------------------
- /** initialize com ptr with null.
- */
- ComPtr()
- {
- m_pInterface = NULL;
- }
-
- //---------------------------------------------------------------------
- /** initialize com ptr with given interface.
- */
- ComPtr(T_INTERFACE* pInterface)
- {
- m_pInterface = pInterface;
- if (m_pInterface)
- m_pInterface->AddRef();
- }
-
- //---------------------------------------------------------------------
- /** copy ctor.
- */
- ComPtr(const ComPtr< T_INTERFACE, P_IID, P_CLSID >& aCopy)
- {
- m_pInterface = aCopy.m_pInterface;
- if (m_pInterface)
- m_pInterface->AddRef();
- }
-
- //---------------------------------------------------------------------
- /** initialize object by quering external object for the right interface.
- */
- ComPtr(IUnknown* pIUnknown)
- {
- if (pIUnknown)
- pIUnknown->QueryInterface(P_IID, (void**)&m_pInterface);
- }
-
- //---------------------------------------------------------------------
- /** deinitialize com object right.
- */
- ~ComPtr()
- {
- release();
- }
-
- public:
-
- //---------------------------------------------------------------------
- HRESULT create()
- {
- return CoCreateInstance(P_CLSID, NULL, CLSCTX_ALL, P_IID, (void**)&m_pInterface);
- }
-
- //---------------------------------------------------------------------
- operator T_INTERFACE*() const
- {
- return m_pInterface;
- }
-
- //---------------------------------------------------------------------
- T_INTERFACE& operator*() const
- {
- return *m_pInterface;
- }
-
- //---------------------------------------------------------------------
- T_INTERFACE** operator&()
- {
- return &m_pInterface;
- }
-
- //---------------------------------------------------------------------
- T_INTERFACE* operator->() const
- {
- return m_pInterface;
- }
-
- //---------------------------------------------------------------------
- T_INTERFACE* operator=(T_INTERFACE* pInterface)
- {
- if ( equals(pInterface) )
- return m_pInterface;
-
- m_pInterface->Release();
- m_pInterface = pInterface;
- if (m_pInterface)
- m_pInterface->AddRef();
-
- return m_pInterface;
- }
-
- //---------------------------------------------------------------------
- T_INTERFACE* operator=(IUnknown* pIUnknown)
- {
- if (pIUnknown)
- pIUnknown->QueryInterface(P_IID, (void**)&m_pInterface);
- return m_pInterface;
- }
-
- //---------------------------------------------------------------------
- T_INTERFACE* operator=(const ComPtr< T_INTERFACE, P_IID, P_CLSID >& aCopy)
- {
- m_pInterface = aCopy.m_pInterface;
- if (m_pInterface)
- m_pInterface->AddRef();
-
- return m_pInterface;
- }
-
- //---------------------------------------------------------------------
- T_INTERFACE* get() const
- {
- return m_pInterface;
- }
-
- //---------------------------------------------------------------------
- void attach(T_INTERFACE* pInterface)
- {
- if (pInterface)
- {
- m_pInterface->Release();
- m_pInterface = pInterface;
- }
- }
-
- //---------------------------------------------------------------------
- T_INTERFACE* detach()
- {
- T_INTERFACE* pInterface = m_pInterface;
- m_pInterface = NULL;
- return pInterface;
- }
-
- //---------------------------------------------------------------------
- void release()
- {
- if (m_pInterface)
- {
- m_pInterface->Release();
- m_pInterface = NULL;
- }
- }
-
- //---------------------------------------------------------------------
- template< class T_QUERYINTERFACE >
- HRESULT query(T_QUERYINTERFACE** pQuery)
- {
- return m_pInterface->QueryInterface(__uuidof(T_QUERYINTERFACE), (void**)pQuery);
- }
-
- //---------------------------------------------------------------------
- HRESULT query(REFIID rIID ,
- void** pQuery)
- {
- return m_pInterface->QueryInterface(rIID, pQuery);
- }
-
- //---------------------------------------------------------------------
- HRESULT unknown(IUnknown** pQuery)
- {
- return m_pInterface->QueryInterface(IID_IUnknown, (void**)pQuery);
- }
-
- //---------------------------------------------------------------------
- ::sal_Bool equals(IUnknown* pCheck)
- {
- if (
- ( ! m_pInterface ) &&
- ( ! pCheck )
- )
- return sal_True;
-
- IUnknown* pCurrent = NULL;
- m_pInterface->QueryInterface(IID_IUnknown, (void**)&pCurrent);
-
- ::sal_Bool bEquals = (pCheck == pCurrent);
- pCurrent->Release();
-
- return bEquals;
- }
-
- //---------------------------------------------------------------------
- ::sal_Bool is()
- {
- return (m_pInterface != 0);
- }
-
- private:
- T_INTERFACE* m_pInterface;
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/systools/win32/comtools.hxx b/sal/inc/systools/win32/comtools.hxx
deleted file mode 100644
index 298d161f3..000000000
--- a/sal/inc/systools/win32/comtools.hxx
+++ /dev/null
@@ -1,196 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#pragma once
-
-#include <string>
-#include <stdexcept>
-#if defined _MSC_VER
-#pragma warning(push,1)
-#endif
-#include <objbase.h>
-#if defined _MSC_VER
-#pragma warning(pop)
-#endif
-
-namespace sal
-{
-namespace systools
-{
- typedef int HRESULT;
-
- /* Simple exception class for propagating COM errors */
- class ComError : public std::runtime_error
- {
- public:
- ComError(const std::string& message, HRESULT hr) :
- std::runtime_error(message),
- hr_(hr)
- {}
-
- HRESULT GetHresult() const
- {
- return hr_;
- }
-
- private:
- HRESULT hr_;
- };
-
- /* A simple COM smart pointer template */
- template <typename T>
- class COMReference
- {
- public:
- COMReference() :
- com_ptr_(NULL)
- {
- }
-
- explicit COMReference(T* comptr) :
- com_ptr_(comptr)
- {
- addRef();
- }
-
- /* Explicitly controllable whether AddRef will be called or not */
- COMReference(T* comptr, bool bAddRef) :
- com_ptr_(comptr)
- {
- if (bAddRef)
- addRef();
- }
-
- COMReference(const COMReference<T>& other) :
- com_ptr_(other.com_ptr_)
- {
- addRef();
- }
-
- COMReference<T>& operator=(const COMReference<T>& other)
- {
- if (other.com_ptr_)
- other.com_ptr_->AddRef();
- release();
- com_ptr_ = other.com_ptr_;
- return *this;
- }
-
- COMReference<T>& operator=(T* comptr)
- {
- release();
- com_ptr_ = comptr;
- addRef();
- return *this;
- }
-
- ~COMReference()
- {
- release();
- }
-
- template<typename InterfaceType>
- COMReference<InterfaceType> QueryInterface(REFIID iid)
- {
- COMReference<InterfaceType> ip;
- HRESULT hr = E_FAIL;
- if (com_ptr_)
- hr = com_ptr_->QueryInterface(iid, reinterpret_cast<LPVOID*>(&ip));
-
- if (FAILED(hr))
- throw ComError("QueryInterface failed: Interface not supported!", hr);
-
- return ip;
- }
-
- T* operator->() const
- {
- return com_ptr_;
- }
-
- T& operator*() const
- {
- return *com_ptr_;
- }
-
- /* Necessary for assigning com_ptr_ from functions like
- CoCreateInstance which require a 'void**' */
- T** operator&()
- {
- release();
- com_ptr_ = NULL;
- return &com_ptr_;
- }
-
- T* get() const
- {
- return com_ptr_;
- }
-
- COMReference<T>& clear()
- {
- release();
- com_ptr_ = NULL;
- return *this;
- }
-
- bool is() const
- {
- return (com_ptr_ != NULL);
- }
-
- private:
- ULONG addRef()
- {
- ULONG cnt = 0;
- if (com_ptr_)
- cnt = com_ptr_->AddRef();
- return cnt;
- }
-
- ULONG release()
- {
- ULONG cnt = 0;
- if (com_ptr_)
- cnt = com_ptr_->Release();
- return cnt;
- }
-
- private:
- T* com_ptr_;
- };
-
-} // systools
-} // sal
-
-/* Typedefs for some popular COM interfaces */
-typedef sal::systools::COMReference<IDataObject> IDataObjectPtr;
-typedef sal::systools::COMReference<IStream> IStreamPtr;
-typedef sal::systools::COMReference<IEnumFORMATETC> IEnumFORMATETCPtr;
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/systools/win32/snprintf.h b/sal/inc/systools/win32/snprintf.h
deleted file mode 100644
index 20fd4bd73..000000000
--- a/sal/inc/systools/win32/snprintf.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-#ifndef _SNPRINTF_H
-#define _SNPRINTF_H
-
-#if !defined(_WIN32)
-#error ERROR: Only Win32 target supported!
-#endif
-
-/* Macros for Unicode/ANSI support like in TCHAR.H */
-
-#ifdef _UNICODE
-#define sntprintf snwprintf
-#define vsntprintf vsnwprintf
-#else
-#define sntprintf snprintf
-#define vsntprintf vsnprintf
-#endif
-
-/* Define needed types if they are not yet defined */
-
-
-# ifndef _VA_LIST_DEFINED
- typedef char * va_list;
-# define _VA_LIST_DEFINED
-# endif
-
-
-# ifndef _WCHAR_T_DEFINED
- typedef unsigned short wchar_t;
-# define _WCHAR_T_DEFINED
-# endif
-
-
-#ifndef _SNPRINTF_DLLIMPORT
-#define _SNPRINTF_DLLIMPORT __declspec( dllimport )
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Implementations of snprintf following the ISO/IEC 9899:1999 (ISO C99)
- standard.
- The difference compared to _snprintf is that the buffer always is zero
- terminated (unless count is zero) and the return value is the number of
- characters (not including terminating zero) that would have been written
- even if the buffer wasn't large
- enough to hold the string. */
-
-
-
-/* UNICODE version */
-_SNPRINTF_DLLIMPORT int __cdecl snwprintf( wchar_t *buffer, size_t count, const wchar_t *format, ... );
-
-/* SBCS and MBCS version */
-_SNPRINTF_DLLIMPORT int __cdecl snprintf( char *buffer, size_t count, const char *format, ... );
-
-/* Conflict with STL_port inline implementation */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SNPRINTF_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/inc/systools/win32/uwinapi.h b/sal/inc/systools/win32/uwinapi.h
deleted file mode 100644
index 6c7e76304..000000000
--- a/sal/inc/systools/win32/uwinapi.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#pragma once
-#include <sal/macros.h>
-#ifdef _UWINAPI_
-# define _KERNEL32_
-# define _USER32_
-# define _SHELL32_
-#endif
-
-#ifndef _WINDOWS_
-#ifdef _MSC_VER
-# pragma warning(push,1) /* disable warnings within system headers */
-#endif
-# include <windows.h>
-#ifdef _MSC_VER
-# pragma warning(pop)
-#endif
-#endif
-
-#ifdef __MINGW32__
-#include <basetyps.h>
-#ifdef _UWINAPI_
-#define WINBASEAPI
-#endif
-#endif
-
-#ifdef __cplusplus
-
-inline bool IsValidHandle(HANDLE handle)
-{
- return handle != INVALID_HANDLE_VALUE && handle != NULL;
-}
-
-#else /* __cplusplus */
-
-#define IsValidHandle(Handle) ((DWORD)(Handle) + 1 > 1)
-
-#endif /* __cplusplus */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/all/debugbase.cxx b/sal/osl/all/debugbase.cxx
deleted file mode 100644
index 15d6a60a5..000000000
--- a/sal/osl/all/debugbase.cxx
+++ /dev/null
@@ -1,163 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include "rtl/strbuf.hxx"
-#include "rtl/string.hxx"
-#include "rtl/ustring.hxx"
-#include "osl/process.h"
-#include "osl/diagnose.hxx"
-#include "boost/bind.hpp"
-#include <vector>
-
-// define own ones, independent of OSL_DEBUG_LEVEL:
-#define DEBUGBASE_ENSURE_(c, f, l, m) \
- do \
- { \
- if (!(c) && _OSL_GLOBAL osl_assertFailedLine(f, l, m)) \
- _OSL_GLOBAL osl_breakDebug(); \
- } while (0)
-#define DEBUGBASE_ENSURE(c, m) DEBUGBASE_ENSURE_(c, OSL_THIS_FILE, __LINE__, m)
-
-namespace {
-
-typedef std::vector<rtl::OString, rtl::Allocator<rtl::OString> > OStringVec;
-
-struct StaticDebugBaseAddressFilter
- : rtl::StaticWithInit<OStringVec, StaticDebugBaseAddressFilter> {
- OStringVec operator()() const {
- OStringVec vec;
- rtl_uString * pStr = 0;
- rtl::OUString const name(
- RTL_CONSTASCII_USTRINGPARAM("OSL_DEBUGBASE_STORE_ADDRESSES") );
- if (osl_getEnvironment( name.pData, &pStr ) == osl_Process_E_None) {
- rtl::OUString const str(pStr);
- rtl_uString_release(pStr);
- sal_Int32 nIndex = 0;
- do {
- vec.push_back( rtl::OUStringToOString(
- str.getToken( 0, ';', nIndex ),
- RTL_TEXTENCODING_ASCII_US ) );
- }
- while (nIndex >= 0);
- }
- return vec;
- }
-};
-
-inline bool isSubStr( char const* pStr, rtl::OString const& subStr )
-{
- return rtl_str_indexOfStr( pStr, subStr.getStr() ) >= 0;
-}
-
-struct DebugBaseMutex : ::rtl::Static<osl::Mutex, DebugBaseMutex> {};
-
-} // anon namespace
-
-extern "C" {
-
-osl::Mutex & SAL_CALL osl_detail_ObjectRegistry_getMutex()
- SAL_THROW_EXTERN_C()
-{
- return DebugBaseMutex::get();
-}
-
-bool SAL_CALL osl_detail_ObjectRegistry_storeAddresses( char const* pName )
- SAL_THROW_EXTERN_C()
-{
- OStringVec const& rVec = StaticDebugBaseAddressFilter::get();
- if (rVec.empty())
- return false;
- // check for "all":
- rtl::OString const& rFirst = rVec[0];
- if (rtl_str_compare_WithLength( rFirst.getStr(), rFirst.getLength(),
- RTL_CONSTASCII_STRINGPARAM("all") ) == 0)
- return true;
- OStringVec::const_iterator const iEnd( rVec.end() );
- return std::find_if( rVec.begin(), iEnd,
- boost::bind( &isSubStr, pName, _1 ) ) != iEnd;
-}
-
-bool SAL_CALL osl_detail_ObjectRegistry_checkObjectCount(
- osl::detail::ObjectRegistryData const& rData, std::size_t nExpected )
- SAL_THROW_EXTERN_C()
-{
- std::size_t nSize;
- if (rData.m_bStoreAddresses)
- nSize = rData.m_addresses.size();
- else
- nSize = static_cast<std::size_t>(rData.m_nCount);
-
- bool const bRet = (nSize == nExpected);
- if (! bRet) {
- rtl::OStringBuffer buf;
- buf.append( RTL_CONSTASCII_STRINGPARAM("unexpected number of ") );
- buf.append( rData.m_pName );
- buf.append( RTL_CONSTASCII_STRINGPARAM(": ") );
- buf.append( static_cast<sal_Int64>(nSize) );
- DEBUGBASE_ENSURE( false, buf.makeStringAndClear().getStr() );
- }
- return bRet;
-}
-
-void SAL_CALL osl_detail_ObjectRegistry_registerObject(
- osl::detail::ObjectRegistryData & rData, void const* pObj )
- SAL_THROW_EXTERN_C()
-{
- if (rData.m_bStoreAddresses) {
- osl::MutexGuard const guard( osl_detail_ObjectRegistry_getMutex() );
- std::pair<osl::detail::VoidPointerSet::iterator, bool> const insertion(
- rData.m_addresses.insert(pObj) );
- DEBUGBASE_ENSURE( insertion.second, "### insertion failed!?" );
- static_cast<void>(insertion);
- }
- else {
- osl_incrementInterlockedCount(&rData.m_nCount);
- }
-}
-
-void SAL_CALL osl_detail_ObjectRegistry_revokeObject(
- osl::detail::ObjectRegistryData & rData, void const* pObj )
- SAL_THROW_EXTERN_C()
-{
- if (rData.m_bStoreAddresses) {
- osl::MutexGuard const guard( osl_detail_ObjectRegistry_getMutex() );
- std::size_t const n = rData.m_addresses.erase(pObj);
- DEBUGBASE_ENSURE( n == 1, "erased more than 1 entry!?" );
- static_cast<void>(n);
- }
- else {
- osl_decrementInterlockedCount(&rData.m_nCount);
- }
-}
-
-} // extern "C"
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/all/filepath.c b/sal/osl/all/filepath.c
deleted file mode 100644
index 7489b1538..000000000
--- a/sal/osl/all/filepath.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <osl/file.h>
-#include <rtl/ustring.h>
-
-static sal_uInt32 SAL_CALL osl_defCalcTextWidth( rtl_uString *ustrText )
-{
- return ustrText ? ustrText->length : 0;
-}
-
-
-oslFileError SAL_CALL osl_abbreviateSystemPath( rtl_uString *ustrSystemPath, rtl_uString **pustrCompacted, sal_uInt32 uMaxWidth, oslCalcTextWidthFunc pfnCalcWidth )
-{
- oslFileError error = osl_File_E_None;
- rtl_uString *ustrPath = NULL;
- rtl_uString *ustrFile = NULL;
- sal_uInt32 uPathWidth, uFileWidth;
-
- if ( !pfnCalcWidth )
- pfnCalcWidth = osl_defCalcTextWidth;
-
- {
- sal_Int32 iLastSlash = rtl_ustr_lastIndexOfChar_WithLength( ustrSystemPath->buffer, ustrSystemPath->length, SAL_PATHDELIMITER );
-
- if ( iLastSlash >= 0 )
- {
- rtl_uString_newFromStr_WithLength( &ustrPath, ustrSystemPath->buffer, iLastSlash );
- rtl_uString_newFromStr_WithLength( &ustrFile, &ustrSystemPath->buffer[iLastSlash], ustrSystemPath->length - iLastSlash );
- }
- else
- {
- rtl_uString_new( &ustrPath );
- rtl_uString_newFromString( &ustrFile, ustrSystemPath );
- }
- }
-
- uPathWidth = pfnCalcWidth( ustrPath );
- uFileWidth = pfnCalcWidth( ustrFile );
-
- /* First abbreviate the directory component of the path */
-
- while ( uPathWidth + uFileWidth > uMaxWidth )
- {
- if ( ustrPath->length > 3 )
- {
- ustrPath->length--;
- ustrPath->buffer[ustrPath->length-3] = '.';
- ustrPath->buffer[ustrPath->length-2] = '.';
- ustrPath->buffer[ustrPath->length-1] = '.';
- ustrPath->buffer[ustrPath->length] = 0;
-
- uPathWidth = pfnCalcWidth( ustrPath );
- }
- else
- break;
- }
-
- /* Now abbreviate file component */
-
- while ( uPathWidth + uFileWidth > uMaxWidth )
- {
- if ( ustrFile->length > 4 )
- {
- ustrFile->length--;
- ustrFile->buffer[ustrFile->length-3] = '.';
- ustrFile->buffer[ustrFile->length-2] = '.';
- ustrFile->buffer[ustrFile->length-1] = '.';
- ustrFile->buffer[ustrFile->length] = 0;
-
- uFileWidth = pfnCalcWidth( ustrFile );
- }
- else
- break;
- }
-
- rtl_uString_newConcat( pustrCompacted, ustrPath, ustrFile );
-
- /* Event now if path was compacted to ".../..." it can be to large */
-
- uPathWidth += uFileWidth;
-
- while ( uPathWidth > uMaxWidth )
- {
- (*pustrCompacted)->length--;
- (*pustrCompacted)->buffer[(*pustrCompacted)->length] = 0;
- uPathWidth = pfnCalcWidth( *pustrCompacted );
- }
-
- if ( ustrPath )
- rtl_uString_release( ustrPath );
-
- if ( ustrFile )
- rtl_uString_release( ustrFile );
-
- return error;
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/all/loadmodulerelative.cxx b/sal/osl/all/loadmodulerelative.cxx
deleted file mode 100644
index b510a032c..000000000
--- a/sal/osl/all/loadmodulerelative.cxx
+++ /dev/null
@@ -1,74 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include "sal/config.h"
-
-#include <cstddef>
-
-#include "osl/diagnose.h"
-#include "osl/module.h"
-#include "osl/module.hxx"
-#include "osl/thread.h"
-#include "rtl/malformeduriexception.hxx"
-#include "rtl/uri.hxx"
-#include "rtl/ustring.h"
-#include "rtl/ustring.hxx"
-#include "sal/types.h"
-
-extern "C" {
-
-oslModule SAL_CALL osl_loadModuleRelative(
- oslGenericFunction const baseModule, rtl_uString * const relativePath,
- sal_Int32 const mode)
-{
- ::rtl::OUString base;
- if (!::osl::Module::getUrlFromAddress(baseModule, base)) {
- OSL_TRACE("osl::Module::getUrlFromAddress failed");
- return NULL;
- }
- ::rtl::OUString abs;
- try {
- abs = ::rtl::Uri::convertRelToAbs(base, relativePath);
- } catch (const ::rtl::MalformedUriException & e) {
- (void) e; // avoid warnings
- OSL_TRACE(
- "rtl::MalformedUriException <%s>",
- rtl::OUStringToOString(e.getMessage(), osl_getThreadTextEncoding()).
- getStr());
- //TODO: let some OSL_TRACE variant take care of text conversion?
- return NULL;
- }
- return ::osl_loadModule(abs.pData, mode);
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/all/makefile.mk b/sal/osl/all/makefile.mk
deleted file mode 100644
index fa928412f..000000000
--- a/sal/osl/all/makefile.mk
+++ /dev/null
@@ -1,66 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=sal
-TARGET=oslall
-ENABLE_EXCEPTIONS=TRUE
-USE_LDUMP2=TRUE
-
-PROJECTPCH4DLL=TRUE
-PROJECTPCH=cont_pch
-PROJECTPCHSOURCE=cont_pch
-
-MULTITHREAD_OBJ=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-# --- Files --------------------------------------------------------
-
-SLOFILES= \
- $(SLO)$/utility.obj\
- $(SLO)$/filepath.obj\
- $(SLO)$/debugbase.obj\
- $(SLO)$/loadmodulerelative.obj \
- $(SLO)/printtrace.obj
-
-OBJFILES= \
- $(OBJ)$/utility.obj\
- $(OBJ)$/filepath.obj\
- $(OBJ)$/debugbase.obj\
- $(OBJ)$/loadmodulerelative.obj \
- $(OBJ)/printtrace.obj
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/sal/osl/all/printtrace.cxx b/sal/osl/all/printtrace.cxx
deleted file mode 100644
index 5d79d9b1d..000000000
--- a/sal/osl/all/printtrace.cxx
+++ /dev/null
@@ -1,65 +0,0 @@
-/*************************************************************************
-*
-* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-*
-* Copyright 2000, 2010 Oracle and/or its affiliates.
-*
-* OpenOffice.org - a multi-platform office productivity suite
-*
-* This file is part of OpenOffice.org.
-*
-* OpenOffice.org is free software: you can redistribute it and/or modify
-* it under the terms of the GNU Lesser General Public License version 3
-* only, as published by the Free Software Foundation.
-*
-* OpenOffice.org is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU Lesser General Public License version 3 for more details
-* (a copy is included in the LICENSE file that accompanied this code).
-*
-* You should have received a copy of the GNU Lesser General Public License
-* version 3 along with OpenOffice.org. If not, see
-* <http://www.openoffice.org/license.html>
-* for a copy of the LGPLv3 License.
-*
-************************************************************************/
-
-#include "precompiled_sal.hxx"
-
-#include "sal/config.h"
-
-#include <cstdarg>
-#include <cstdio>
-#include <cstring>
-
-#include <stdio.h> // snprintf, vsnprintf
-
-#include "osl/diagnose.h"
-#include "osl/thread.hxx"
-#include "rtl/string.h"
-#include "sal/types.h"
-
-#include "printtrace.h"
-
-void printTrace(unsigned long pid, char const * format, std::va_list arguments)
-{
- char buf[1024];
- int n1 = snprintf(
- buf, sizeof buf, "Trace %lu/%" SAL_PRIuUINT32 ": \"", pid,
- osl::Thread::getCurrentIdentifier());
- OSL_ASSERT(
- n1 >= 0 &&
- (static_cast< unsigned int >(n1) <
- sizeof buf - RTL_CONSTASCII_LENGTH("\"...\n")));
- int n2 = sizeof buf - n1 - RTL_CONSTASCII_LENGTH("\"...\n");
- int n3 = vsnprintf(buf + n1, n2, format, arguments);
- if (n3 < 0) {
- std::strcpy(buf + n1, "\"???\n");
- } else if (n3 < n2) {
- std::strcpy(buf + n1 + n3, "\"\n");
- } else {
- std::strcpy(buf + n1 + n2 - 1, "\"...\n");
- }
- std::fputs(buf, stderr);
-}
diff --git a/sal/osl/all/utility.cxx b/sal/osl/all/utility.cxx
deleted file mode 100644
index b183653e1..000000000
--- a/sal/osl/all/utility.cxx
+++ /dev/null
@@ -1,106 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-
-#include "rtl/ustring.hxx"
-#include "osl/time.h"
-#include <stdio.h>
-
-
-/*
- * mfe : maybe it would be wishful to include initialization
- * of the global timer in dllmain or _init directly.
- * But noneoftheless this (should) work too.
- */
-namespace osl
-{
-
-class OGlobalTimer
-{
-
-public:
-
- OGlobalTimer() {
- getTime();
- }
-
- sal_uInt32 getTime()
- {
- return osl_getGlobalTimer();
- }
-
-
-};
-
-static OGlobalTimer aGlobalTimer;
-
-}
-
-
-extern "C"
-{
-void debug_ustring(rtl_uString* ustr)
-{
- sal_Char* psz=0;
- rtl_String* str=0;
-
- if ( ustr != 0 )
- {
- rtl_uString2String( &str,
- rtl_uString_getStr(ustr),
- rtl_uString_getLength(ustr),
- RTL_TEXTENCODING_UTF8,
- OUSTRING_TO_OSTRING_CVTFLAGS );
-
- psz = rtl_string_getStr(str);
- }
-
- fprintf(stderr,"'%s'\n",psz);
-
- if ( str != 0 )
- {
- rtl_string_release(str);
- }
-
- return;
-}
-
-}
-
-void debug_oustring(rtl::OUString& ustr)
-{
-
- debug_ustring(ustr.pData);
-
- return;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/inc/printtrace.h b/sal/osl/inc/printtrace.h
deleted file mode 100644
index 9e1d514b0..000000000
--- a/sal/osl/inc/printtrace.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*************************************************************************
-*
-* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-*
-* Copyright 2000, 2010 Oracle and/or its affiliates.
-*
-* OpenOffice.org - a multi-platform office productivity suite
-*
-* This file is part of OpenOffice.org.
-*
-* OpenOffice.org is free software: you can redistribute it and/or modify
-* it under the terms of the GNU Lesser General Public License version 3
-* only, as published by the Free Software Foundation.
-*
-* OpenOffice.org is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU Lesser General Public License version 3 for more details
-* (a copy is included in the LICENSE file that accompanied this code).
-*
-* You should have received a copy of the GNU Lesser General Public License
-* version 3 along with OpenOffice.org. If not, see
-* <http://www.openoffice.org/license.html>
-* for a copy of the LGPLv3 License.
-*
-************************************************************************/
-
-#ifndef INCLUDED_SAL_OSL_INC_PRINTTRACE_H
-#define INCLUDED_SAL_OSL_INC_PRINTTRACE_H
-
-#include "sal/config.h"
-
-#include <stdarg.h>
-
-#if defined __cplusplus
-extern "C" {
-#endif
-
-/* called internally by osl_trace */
-void printTrace(unsigned long pid, char const * format, va_list arguments);
-
-#if defined __cplusplus
-}
-#endif
-
-#endif
diff --git a/sal/osl/unx/asm/interlck_sparc.s b/sal/osl/unx/asm/interlck_sparc.s
deleted file mode 100644
index a33e35393..000000000
--- a/sal/osl/unx/asm/interlck_sparc.s
+++ /dev/null
@@ -1,267 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-/*
- * Implements osl_[increment|decrement]InterlockedCount in two ways:
- * sparcv8 architecture: use the "swap" instruction
- * sparcv9/sparcv8plus architecture: use the "cas" instruction
- *
- * 32 bit mode with v8 and v8plus support:
- * Initialize once with osl_InterlockedCountSetV9(int bv9) if you want to
- * use the "cas" instruction, which is faster (no spinlock needed)
- * Default is to use the "swap" instruction, which works on all supported
- * SPARC cpu's
- *
- * osl_InterlockedCountSetV9(int bv9)
- * bv9 = 0 use sparcv8 "swap" (spinlock)
- * bv9 = 1 use sparcv9/sparcv8plus "cas" (no spinlock)
- *
- * 32 bit mode without v8 support (implies v8plus) or 64 bit mode:
- * No need (nor the possibilty) to call osl_InterlockedCountSetV9(),
- * sparcv9 mode is implied. Assemble with -xarch=v8plus (32 bit) or
- * -xarch=v9 (64 bit).
- *
- */
-
-#if !defined(__sparcv8plus) && !defined(__sparcv9) && !defined(__sparc_v9__)
-
-.section ".data"
-.align 4
-osl_incrementInterLockCountFuncPtr:
-.word osl_incrementInterlockedCountV8
-.type osl_incrementInterLockCountFuncPtr,#object
-.size osl_incrementInterLockCountFuncPtr,4
-
-.align 4
-osl_decrementInterLockCountFuncPtr:
-.word osl_decrementInterlockedCountV8
-.type osl_decrementInterLockCountFuncPtr,#object
-.size osl_decrementInterLockCountFuncPtr,4
-
-.section ".text"
-
-#if defined(NETBSD) || defined(LINUX)
-/* add the address of the calling "call" instruction (stored in %o7) to
- * %o5 which contains _GLOBAL_OFFSET_TABLE_
- */
-.Laddoseven:
- retl
- add %o7, %o5, %o5
-#endif
-
- .global osl_incrementInterlockedCount
- .align 4
-
-osl_incrementInterlockedCount:
-
-#if defined(NETBSD) || defined(LINUX)
- mov %o7, %g1
- sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %o5
- call .Laddoseven
- add %o5, %lo(_GLOBAL_OFFSET_TABLE_+4), %o5
- mov %g1, %o7
-#endif
- set osl_incrementInterLockCountFuncPtr, %o1
-#if defined(NETBSD)
- ld [%o1 + %o5], %o1
-#endif
- ld [%o1], %o1
- jmp %o1
- nop ! delay slot
- .type osl_incrementInterlockedCount,#function
- .size osl_incrementInterlockedCount,.-osl_incrementInterlockedCount
-
-.section ".text"
- .global osl_decrementInterlockedCount
- .align 4
-
-osl_decrementInterlockedCount:
-
-#if defined(NETBSD) || defined(LINUX)
- mov %o7, %g1
- sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %o5
- call .Laddoseven
- add %o5, %lo(_GLOBAL_OFFSET_TABLE_+4), %o5
- mov %g1, %o7
-#endif
- set osl_decrementInterLockCountFuncPtr, %o1
-#if defined(NETBSD) || defined(LINUX)
- ld [%o1 + %o5], %o1
-#endif
- ld [%o1], %o1
- jmp %o1
- nop ! delay slot
- .type osl_decrementInterlockedCount,#function
- .size osl_decrementInterlockedCount,.-osl_decrementInterlockedCount
-
-.section ".text"
- .global osl_InterlockedCountSetV9
- .align 4
-
-osl_InterlockedCountSetV9:
-
-#if defined(NETBSD) || defined(LINUX)
- mov %o7, %g1
- sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %o5
- call .Laddoseven
- add %o5, %lo(_GLOBAL_OFFSET_TABLE_+4), %o5
- mov %g1, %o7
-#endif
- set osl_incrementInterLockCountFuncPtr, %o1
- set osl_decrementInterLockCountFuncPtr, %o2
- cmp %o0, %g0
- bnz 1f
- nop ! delay slot
- set osl_incrementInterlockedCountV8, %o0
- set osl_decrementInterlockedCountV8, %o3
-#if defined(NETBSD) || defined(LINUX)
- ld [%o0 + %o5], %o0
- ld [%o1 + %o5], %o1
- ld [%o2 + %o5], %o2
- ld [%o3 + %o5], %o3
-#endif
- st %o3,[%o2]
- retl
- st %o0,[%o1]
-1: set osl_incrementInterlockedCountV9, %o0
- set osl_decrementInterlockedCountV9, %o3
-#if defined(NETBSD) || defined(LINUX)
- ld [%o0 + %o5], %o0
- ld [%o1 + %o5], %o1
- ld [%o2 + %o5], %o2
- ld [%o3 + %o5], %o3
-#endif
- st %o3,[%o2]
- retl
- st %o0,[%o1]
-
- .type osl_InterlockedCountSetV9,#function
- .size osl_InterlockedCountSetV9,.-osl_InterlockedCountSetV9
-
-
-.section ".text"
- .local osl_incrementInterlockedCountV8
- .align 4
-
-! Implements osl_[increment|decrement]InterlockedCount with sparcv8 "swap" instruction.
-! Uses -4096 as lock value for spinlock to allow for small negative counts.
-
-osl_incrementInterlockedCountV8:
-
-1: ld [%o0], %o1
- cmp %o1, -4096 ! test spinlock
- be 1b
- mov -4096, %o1 ! delay slot
- swap [%o0], %o1
- cmp %o1, -4096
- be 1b
- inc %o1 ! delay slot, if we got spinlock, increment count
- st %o1, [%o0]
- retl
- mov %o1, %o0 ! delay slot
-
- .type osl_incrementInterlockedCountV8,#function
- .size osl_incrementInterlockedCountV8,.-osl_incrementInterlockedCountV8
-
-
-.section ".text"
- .local osl_decrementInterlockedCountV8
- .align 4
-
-osl_decrementInterlockedCountV8:
-
-1: ld [%o0], %o1
- cmp %o1, -4096 ! test spinlock
- be 1b
- mov -4096, %o1 ! delay slot
- swap [%o0], %o1
- cmp %o1, -4096
- be 1b
- dec %o1 ! delay slot, if we got spinlock, decrement count
- st %o1, [%o0] ! delay slot
- retl
- mov %o1, %o0 ! delay slot
-
- .type osl_decrementInterlockedCountV8,#function
- .size osl_decrementInterlockedCountV8,.-osl_decrementInterlockedCountV8
-
-#endif /* !__sparcv8plus && !__sparcv9 && !_sparcv9__ */
-
-.section ".text"
-#if defined(__sparcv8plus) || defined(__sparcv9) || defined(__sparc_v9__)
-#define osl_incrementInterlockedCountV9 osl_incrementInterlockedCount
- .global osl_incrementInterlockedCountV9
-#else
- .local osl_incrementInterlockedCountV9
-#endif
- .align 8
-
-! Implements osl_[increment|decrement]InterlockedCount with sparcv9(sparcv8plus) "cas"
-! instruction.
-
-osl_incrementInterlockedCountV9:
-
-1: ld [%o0], %o1
- add %o1, 1, %o2
-! allow linux to build for v8
- .word 0xD5E21009
-! cas [%o0], %o1, %o2
- cmp %o1, %o2
- bne 1b
- nop ! delay slot
- retl
- add %o2, 1, %o0 ! delay slot
-
- .type osl_incrementInterlockedCountV9,#function
- .size osl_incrementInterlockedCountV9,.-osl_incrementInterlockedCountV9
-
-
-.section ".text"
-#if defined(__sparcv8plus) || defined(__sparcv9) || defined(__sparc_v9__)
-#define osl_decrementInterlockedCountV9 osl_decrementInterlockedCount
- .global osl_decrementInterlockedCountV9
-#else
- .local osl_decrementInterlockedCountV9
-#endif
- .align 8
-
-osl_decrementInterlockedCountV9:
-
-1: ld [%o0], %o1
- sub %o1, 1, %o2
-! allow linux to build for v8
- .word 0xD5E21009
-! cas [%o0], %o1, %o2
- cmp %o1, %o2
- bne 1b
- nop ! delay slot
- retl
- sub %o2, 1, %o0 ! delay slot
-
- .type osl_decrementInterlockedCountV9,#function
- .size osl_decrementInterlockedCountV9,.-osl_decrementInterlockedCountV9
diff --git a/sal/osl/unx/asm/interlck_x86.s b/sal/osl/unx/asm/interlck_x86.s
deleted file mode 100644
index c1f99008d..000000000
--- a/sal/osl/unx/asm/interlck_x86.s
+++ /dev/null
@@ -1,92 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-.section .text,"ax"
- .globl osl_incrementInterlockedCount
-
-osl_incrementInterlockedCount:
-
- push %ebp
- mov %esp,%ebp
- push %ebx
- call 1f
-1:
- pop %ebx
- add $_GLOBAL_OFFSET_TABLE_+0x1,%ebx
- mov 8(%ebp),%ecx
- mov $1,%eax
- mov osl_isSingleCPU@GOT(%ebx),%edx
- cmp $0,(%edx)
- je 2f
- xadd %eax,(%ecx)
- jmp 3f
-2:
- lock
- xadd %eax,(%ecx)
-3:
- inc %eax
- pop %ebx
- mov %ebp,%esp
- pop %ebp
- ret
-
- .type osl_incrementInterlockedCount,@function
- .size osl_incrementInterlockedCount,.-osl_incrementInterlockedCount
-
-.section .text,"ax"
- .globl osl_decrementInterlockedCount
-
-osl_decrementInterlockedCount:
-
- push %ebp
- mov %esp,%ebp
- push %ebx
- call 1f
-1:
- pop %ebx
- add $_GLOBAL_OFFSET_TABLE_+0x1,%ebx
- mov 8(%ebp),%ecx
- orl $-1,%eax
- mov osl_isSingleCPU@GOT(%ebx),%edx
- cmp $0,(%edx)
- je 2f
- xadd %eax,(%ecx)
- jmp 3f
-2:
- lock
- xadd %eax,(%ecx)
-3:
- dec %eax
- pop %ebx
- mov %ebp,%esp
- pop %ebp
- ret
-
- .type osl_decrementInterlockedCount,@function
- .size osl_decrementInterlockedCount,.-osl_decrementInterlockedCount
-
diff --git a/sal/osl/unx/backtrace.c b/sal/osl/unx/backtrace.c
deleted file mode 100644
index ed29a9208..000000000
--- a/sal/osl/unx/backtrace.c
+++ /dev/null
@@ -1,375 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#ifdef SOLARIS
-
-#include <dlfcn.h>
-#include <pthread.h>
-#include <setjmp.h>
-#include <stdio.h>
-#include <sys/frame.h>
-#include "backtrace.h"
-
-#if defined(SPARC)
-
-#if defined IS_LP64
-
-#define FRAME_PTR_OFFSET 1
-#define FRAME_OFFSET 0
-#define STACK_BIAS 0x7ff
-
-#else
-
-#define FRAME_PTR_OFFSET 1
-#define FRAME_OFFSET 0
-#define STACK_BIAS 0
-
-#endif
-
-#elif defined( INTEL )
-
-#define FRAME_PTR_OFFSET 3
-#define FRAME_OFFSET 0
-#define STACK_BIAS 0
-
-#else
-
-#error Unknown Solaris target platform.
-
-#endif /* defined SPARC or INTEL */
-
-
-int backtrace( void **buffer, int max_frames )
-{
- jmp_buf ctx;
- long fpval;
- struct frame *fp;
- int i;
-
- /* flush register windows */
-#ifdef SPARC
- asm("ta 3");
-#endif
-
- /* get stack- and framepointer */
- setjmp(ctx);
-
- fpval = ((long*)(ctx))[FRAME_PTR_OFFSET];
- fp = (struct frame*)((char*)(fpval) + STACK_BIAS);
-
- for (i = 0; (i < FRAME_OFFSET) && (fp != 0); i++)
- fp = (struct frame*)((char*)(fp->fr_savfp) + STACK_BIAS);
-
- /* iterate through backtrace */
- for (i = 0; (fp != 0) && (fp->fr_savpc != 0) && (i < max_frames); i++)
- {
- /* saved (prev) frame */
- struct frame * prev = (struct frame*)((char*)(fp->fr_savfp) + STACK_BIAS);
-
- /* store frame */
- *(buffer++) = (void*)(fp->fr_savpc);
-
- /* prev frame (w/ stack growing top down) */
- fp = (prev > fp) ? prev : 0;
- }
-
- /* return number of frames stored */
- return i;
-}
-
-void backtrace_symbols_fd( void **buffer, int size, int fd )
-{
- FILE *fp = fdopen( fd, "w" );
-
- if ( fp )
- {
- void **pFramePtr;
-
- for ( pFramePtr = buffer; size > 0 && pFramePtr && *pFramePtr; pFramePtr++, size-- )
- {
- Dl_info dli;
- ptrdiff_t offset;
-
- if ( 0 != dladdr( *pFramePtr, &dli ) )
- {
- if ( dli.dli_fname && dli.dli_fbase )
- {
- offset = (ptrdiff_t)*pFramePtr - (ptrdiff_t)dli.dli_fbase;
- fprintf( fp, "%s+0x%x", dli.dli_fname, offset );
- }
- if ( dli.dli_sname && dli.dli_saddr )
- {
- offset = (ptrdiff_t)*pFramePtr - (ptrdiff_t)dli.dli_saddr;
- fprintf( fp, "(%s+0x%x)", dli.dli_sname, offset );
- }
- }
- fprintf( fp, "[0x%x]\n", *pFramePtr );
- }
-
- fflush( fp );
- fclose( fp );
- }
-}
-
-#endif /* defined SOLARIS */
-
-
-#if defined FREEBSD || defined NETBSD || defined OPENBSD || defined(DRAGONFLY)
-#include <dlfcn.h>
-#include <pthread.h>
-#include <setjmp.h>
-#include <stddef.h>
-#include <stdio.h>
-#include "backtrace.h"
-
-#define FRAME_PTR_OFFSET 1
-#define FRAME_OFFSET 0
-
-int backtrace( void **buffer, int max_frames )
-{
- struct frame *fp;
- jmp_buf ctx;
- int i;
- /* get stack- and framepointer */
- setjmp(ctx);
- fp = (struct frame*)(((size_t*)(ctx))[FRAME_PTR_OFFSET]);
- for ( i=0; (i<FRAME_OFFSET) && (fp!=0); i++)
- fp = fp->fr_savfp;
- /* iterate through backtrace */
- for (i=0; fp && fp->fr_savpc && i<max_frames; i++)
- {
- /* store frame */
- *(buffer++) = (void *)fp->fr_savpc;
- /* next frame */
- fp=fp->fr_savfp;
- }
- return i;
-}
-
-void backtrace_symbols_fd( void **buffer, int size, int fd )
-{
- FILE *fp = fdopen( fd, "w" );
-
- if ( fp )
- {
- void **pFramePtr;
- for ( pFramePtr = buffer; size > 0 && pFramePtr && *pFramePtr; pFramePtr++, size-- )
- {
- Dl_info dli;
- ptrdiff_t offset;
-
- if ( 0 != dladdr( *pFramePtr, &dli ) )
- {
- if ( dli.dli_fname && dli.dli_fbase )
- {
- offset = (ptrdiff_t)*pFramePtr - (ptrdiff_t)dli.dli_fbase;
- fprintf( fp, "%s+0x%x", dli.dli_fname, offset );
- }
- if ( dli.dli_sname && dli.dli_saddr )
- {
- offset = (ptrdiff_t)*pFramePtr - (ptrdiff_t)dli.dli_saddr;
- fprintf( fp, "(%s+0x%x)", dli.dli_sname, offset );
- }
- }
- fprintf( fp, "[0x%x]\n", *pFramePtr );
- }
- fflush( fp );
- fclose( fp );
- }
-}
-#endif /* defined FREEBSD */
-
-#ifdef LINUX
-
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE
-#endif
-
-#include <dlfcn.h>
-#include <pthread.h>
-#include <setjmp.h>
-#include <stdio.h>
-#include "backtrace.h"
-
-#if defined(SPARC)
-
-#define FRAME_PTR_OFFSET 1
-#define FRAME_OFFSET 0
-
-#else
-
-#error Unknown Linux target platform.
-
-#endif /* defined SPARC or INTEL */
-
-typedef int ptrdiff_t;
-
-int backtrace( void **buffer, int max_frames )
-{
- struct frame *fp;
- jmp_buf ctx;
- int i;
-
- /* flush register windows */
-#ifdef SPARC
- asm("ta 3");
-#endif
- /* get stack- and framepointer */
- setjmp(ctx);
- fp = (struct frame*)(((size_t*)(ctx))[FRAME_PTR_OFFSET]);
- for ( i=0; (i<FRAME_OFFSET) && (fp!=0); i++)
- fp = fp->fr_savfp;
-
- /* iterate through backtrace */
- for (i=0; fp && fp->fr_savpc && i<max_frames; i++)
- {
- /* store frame */
- *(buffer++) = (void *)fp->fr_savpc;
- /* next frame */
- fp=fp->fr_savfp;
- }
- return i;
-}
-
-void backtrace_symbols_fd( void **buffer, int size, int fd )
-{
- FILE *fp = fdopen( fd, "w" );
-
- if ( fp )
- {
- void **pFramePtr;
-
- for ( pFramePtr = buffer; size > 0 && pFramePtr && *pFramePtr; pFramePtr++, size-- )
- {
- Dl_info dli;
-
- if ( 0 != dladdr( *pFramePtr, &dli ) )
- {
- ptrdiff_t offset;
-
- if ( dli.dli_fname && dli.dli_fbase )
- {
- offset = (ptrdiff_t)*pFramePtr - (ptrdiff_t)dli.dli_fbase;
- fprintf( fp, "%s+0x%x", dli.dli_fname, offset );
- }
- if ( dli.dli_sname && dli.dli_saddr )
- {
- offset = (ptrdiff_t)*pFramePtr - (ptrdiff_t)dli.dli_saddr;
- fprintf( fp, "(%s+0x%x)", dli.dli_sname, offset );
- }
- }
- fprintf( fp, "[0x%x]\n", *pFramePtr );
- }
-
- fflush( fp );
- fclose( fp );
- }
-}
-
-#endif /* defined LINUX */
-
-#if defined( MACOSX )
-
-#include <dlfcn.h>
-#include <stdio.h>
-#include "backtrace.h"
-
-typedef unsigned ptrdiff_t;
-
-/* glib backtrace is only available on MacOsX 10.5 or higher
- so we do it on our own */
-
-int backtrace( void **buffer, int max_frames )
-{
- void **frame = (void **)__builtin_frame_address(0);
- void **bp = ( void **)(*frame);
- void *ip = frame[1];
- int i;
-
- for ( i = 0; bp && ip && i < max_frames; i++ )
- {
- *(buffer++) = ip;
-
- ip = bp[1];
- bp = (void**)(bp[0]);
- }
-
- return i;
-}
-
-
-void backtrace_symbols_fd( void **buffer, int size, int fd )
-{
- FILE *fp = fdopen( fd, "w" );
-
- if ( fp )
- {
- void **pFramePtr;
-
- for ( pFramePtr = buffer; size > 0 && pFramePtr && *pFramePtr; pFramePtr++, size-- )
- {
- Dl_info dli;
-
- if ( 0 != dladdr( *pFramePtr, &dli ) )
- {
- ptrdiff_t offset;
-
- if ( dli.dli_fname && dli.dli_fbase )
- {
- offset = (ptrdiff_t)*pFramePtr - (ptrdiff_t)dli.dli_fbase;
- fprintf( fp, "%s+0x%x", dli.dli_fname, offset );
- }
- if ( dli.dli_sname && dli.dli_saddr )
- {
- offset = (ptrdiff_t)*pFramePtr - (ptrdiff_t)dli.dli_saddr;
- fprintf( fp, "(%s+0x%x)", dli.dli_sname, offset );
- }
- }
- fprintf( fp, "[0x%x]\n", (unsigned int)*pFramePtr );
- }
-
- fflush( fp );
- fclose( fp );
- }
-}
-
-#endif /* defined MACOSX */
-
-#if defined(AIX)
-int backtrace( void **buffer, int max_frames )
-{
- return 0;
-}
-
-void backtrace_symbols_fd( void **buffer, int size, int fd )
-{
-}
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/backtrace.h b/sal/osl/unx/backtrace.h
deleted file mode 100644
index a8465de62..000000000
--- a/sal/osl/unx/backtrace.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#if defined (SOLARIS) || defined (FREEBSD) || defined (NETBSD) || \
- defined (OPENBSD) || defined (DRAGONFLY)
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* backtrace function with same behaviour as defined in GNU libc */
-
-int backtrace( void **buffer, int max_frames );
-
-void backtrace_symbols_fd( void **buffer, int size, int fd );
-
-/* no frame.h on FreeBSD */
-#if defined (FREEBSD) || defined (NETBSD) || defined (OPENBSD) || \
- defined (DRAGONFLY)
-struct frame {
- long arg0[8];
- long arg1[6];
- struct frame *fr_savfp;
- long fr_savpc;
-};
-#endif
-
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* defined SOLARIS || FREEBSD || NETBSD || OPENBSD */
-
-#if defined (LINUX) && defined (SPARC)
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* backtrace function with same behaviour as defined in GNU libc */
-
-int backtrace( void **buffer, int max_frames );
-
-void backtrace_symbols_fd( void **buffer, int size, int fd );
-
-/* no frame.h on linux sparc */
-struct frame {
- long arg0[8];
- long arg1[6];
- struct frame *fr_savfp;
- long fr_savpc;
-};
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* defined LINUX && SPARC */
-
-#if defined (MACOSX)
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* backtrace function with same behaviour as defined in GNU libc */
-
-int backtrace( void **buffer, int max_frames );
-
-void backtrace_symbols_fd( void **buffer, int size, int fd );
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* defined MACOSX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/conditn.c b/sal/osl/unx/conditn.c
deleted file mode 100644
index 4b407df35..000000000
--- a/sal/osl/unx/conditn.c
+++ /dev/null
@@ -1,352 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#include "system.h"
-#include <sal/types.h>
-
-#include <osl/conditn.h>
-#include <osl/diagnose.h>
-#include <osl/time.h>
-
-
-typedef struct _oslConditionImpl
-{
- pthread_cond_t m_Condition;
- pthread_mutex_t m_Lock;
- sal_Bool m_State;
-} oslConditionImpl;
-
-
-/*****************************************************************************/
-/* osl_createCondition */
-/*****************************************************************************/
-oslCondition SAL_CALL osl_createCondition()
-{
- oslConditionImpl* pCond;
- int nRet=0;
-
- pCond = (oslConditionImpl*) malloc(sizeof(oslConditionImpl));
-
- OSL_ASSERT(pCond);
-
- if ( pCond == 0 )
- {
- return 0;
- }
-
- pCond->m_State = sal_False;
-
- /* init condition variable with default attr. (PTHREAD_PROCESS_PRIVAT) */
- nRet = pthread_cond_init(&pCond->m_Condition, PTHREAD_CONDATTR_DEFAULT);
- if ( nRet != 0 )
- {
- OSL_TRACE("osl_createCondition : condition init failed. Errno: %d; '%s'\n",
- nRet, strerror(nRet));
-
- free(pCond);
- return 0;
- }
-
- nRet = pthread_mutex_init(&pCond->m_Lock, PTHREAD_MUTEXATTR_DEFAULT);
- if ( nRet != 0 )
- {
- OSL_TRACE("osl_createCondition : mutex init failed. Errno: %d; %s\n",
- nRet, strerror(nRet));
-
- nRet = pthread_cond_destroy(&pCond->m_Condition);
- if ( nRet != 0 )
- {
- OSL_TRACE("osl_createCondition : destroy condition failed. Errno: %d; '%s'\n",
- nRet, strerror(nRet));
- }
-
- free(pCond);
- pCond = 0;
- }
-
- return (oslCondition)pCond;
-}
-
-/*****************************************************************************/
-/* osl_destroyCondition */
-/*****************************************************************************/
-void SAL_CALL osl_destroyCondition(oslCondition Condition)
-{
- oslConditionImpl* pCond;
- int nRet = 0;
-
- if ( Condition )
- {
- pCond = (oslConditionImpl*)Condition;
-
- nRet = pthread_cond_destroy(&pCond->m_Condition);
- if ( nRet != 0 )
- {
- OSL_TRACE("osl_destroyCondition : destroy condition failed. Errno: %d; '%s'\n",
- nRet, strerror(nRet));
- }
- nRet = pthread_mutex_destroy(&pCond->m_Lock);
- if ( nRet != 0 )
- {
- OSL_TRACE("osl_destroyCondition : destroy mutex failed. Errno: %d; '%s'\n",
- nRet, strerror(nRet));
- }
-
- free(Condition);
- }
-
- return;
-}
-
-/*****************************************************************************/
-/* osl_setCondition */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_setCondition(oslCondition Condition)
-{
- oslConditionImpl* pCond;
- int nRet=0;
-
- OSL_ASSERT(Condition);
- pCond = (oslConditionImpl*)Condition;
-
- if ( pCond == 0 )
- {
- return sal_False;
- }
-
- nRet = pthread_mutex_lock(&pCond->m_Lock);
- if ( nRet != 0 )
- {
- OSL_TRACE("osl_setCondition : mutex lock failed. Errno: %d; %s\n",
- nRet, strerror(nRet));
- return sal_False;
- }
-
- pCond->m_State = sal_True;
- nRet = pthread_cond_broadcast(&pCond->m_Condition);
- if ( nRet != 0 )
- {
- OSL_TRACE("osl_setCondition : condition broadcast failed. Errno: %d; %s\n",
- nRet, strerror(nRet));
- return sal_False;
- }
-
- nRet = pthread_mutex_unlock(&pCond->m_Lock);
- if ( nRet != 0 )
- {
- OSL_TRACE("osl_setCondition : mutex unlock failed. Errno: %d; %s\n",
- nRet, strerror(nRet));
- return sal_False;
- }
-
- return sal_True;
-
-}
-
-/*****************************************************************************/
-/* osl_resetCondition */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_resetCondition(oslCondition Condition)
-{
- oslConditionImpl* pCond;
- int nRet=0;
-
- OSL_ASSERT(Condition);
-
- pCond = (oslConditionImpl*)Condition;
-
- if ( pCond == 0 )
- {
- return sal_False;
- }
-
- nRet = pthread_mutex_lock(&pCond->m_Lock);
- if ( nRet != 0 )
- {
- OSL_TRACE("osl_resetCondition : mutex lock failed. Errno: %d; %s\n",
- nRet, strerror(nRet));
- return sal_False;
- }
-
- pCond->m_State = sal_False;
-
- nRet = pthread_mutex_unlock(&pCond->m_Lock);
- if ( nRet != 0 )
- {
- OSL_TRACE("osl_resetCondition : mutex unlock failed. Errno: %d; %s\n",
- nRet, strerror(nRet));
- return sal_False;
- }
-
- return sal_True;
-}
-
-/*****************************************************************************/
-/* osl_waitCondition */
-/*****************************************************************************/
-oslConditionResult SAL_CALL osl_waitCondition(oslCondition Condition, const TimeValue* pTimeout)
-{
- oslConditionImpl* pCond;
- int nRet=0;
- oslConditionResult Result = osl_cond_result_ok;
-
- OSL_ASSERT(Condition);
- pCond = (oslConditionImpl*)Condition;
-
- if ( pCond == 0 )
- {
- return osl_cond_result_error;
- }
-
- nRet = pthread_mutex_lock(&pCond->m_Lock);
- if ( nRet != 0 )
- {
- OSL_TRACE("osl_waitCondition : mutex lock failed. Errno: %d; %s\n",
- nRet, strerror(nRet));
- return osl_cond_result_error;
- }
-
- if ( pTimeout )
- {
- if ( ! pCond->m_State )
- {
- int ret;
- struct timeval tp;
- struct timespec to;
-
- gettimeofday(&tp, NULL);
-
- SET_TIMESPEC( to, tp.tv_sec + pTimeout->Seconds,
- tp.tv_usec * 1000 + pTimeout->Nanosec );
-
- /* spurious wake up prevention */
- do
- {
- ret = pthread_cond_timedwait(&pCond->m_Condition, &pCond->m_Lock, &to);
- if ( ret != 0 )
- {
- if ( ret == ETIME || ret == ETIMEDOUT )
- {
- Result = osl_cond_result_timeout;
- nRet = pthread_mutex_unlock(&pCond->m_Lock);
- if (nRet != 0)
- {
- OSL_TRACE("osl_waitCondition : mutex unlock failed. Errno: %d; %s\n",
- nRet, strerror(nRet));
- }
-
- return Result;
- }
- else if ( ret != EINTR )
- {
- Result = osl_cond_result_error;
- nRet = pthread_mutex_unlock(&pCond->m_Lock);
- if ( nRet != 0 )
- {
- OSL_TRACE("osl_waitCondition : mutex unlock failed. Errno: %d; %s\n",
- nRet, strerror(nRet));
- }
- return Result;
- }
-/* OSL_TRACE("EINTR\n");*/
- }
- }
- while ( !pCond->m_State );
- }
- }
- else
- {
- while ( !pCond->m_State )
- {
- nRet = pthread_cond_wait(&pCond->m_Condition, &pCond->m_Lock);
- if ( nRet != 0 )
- {
- OSL_TRACE("osl_waitCondition : condition wait failed. Errno: %d; %s\n",
- nRet, strerror(nRet));
- Result = osl_cond_result_error;
- nRet = pthread_mutex_unlock(&pCond->m_Lock);
- if ( nRet != 0 )
- {
- OSL_TRACE("osl_waitCondition : mutex unlock failed. Errno: %d; %s\n",
- nRet, strerror(nRet));
- }
-
- return Result;
- }
- }
- }
-
- nRet = pthread_mutex_unlock(&pCond->m_Lock);
- if ( nRet != 0 )
- {
- OSL_TRACE("osl_waitCondition : mutex unlock failed. Errno: %d; %s\n",
- nRet, strerror(nRet));
- }
-
- return Result;
-}
-
-/*****************************************************************************/
-/* osl_checkCondition */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_checkCondition(oslCondition Condition)
-{
- sal_Bool State;
- oslConditionImpl* pCond;
- int nRet=0;
-
- OSL_ASSERT(Condition);
- pCond = (oslConditionImpl*)Condition;
-
- if ( pCond == 0 )
- {
- return sal_False;
- }
-
- nRet = pthread_mutex_lock(&pCond->m_Lock);
- if ( nRet != 0 )
- {
- OSL_TRACE("osl_checkCondition : mutex unlock failed. Errno: %d; %s\n",
- nRet, strerror(nRet));
- }
-
- State = pCond->m_State;
-
- nRet = pthread_mutex_unlock(&pCond->m_Lock);
- if ( nRet != 0 )
- {
- OSL_TRACE("osl_checkCondition : mutex unlock failed. Errno: %d; %s\n",
- nRet, strerror(nRet));
- }
-
- return State;
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/diagnose.c b/sal/osl/unx/diagnose.c
deleted file mode 100644
index 0f89ddd06..000000000
--- a/sal/osl/unx/diagnose.c
+++ /dev/null
@@ -1,321 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "osl/diagnose.h"
-#include "system.h"
-
-#ifndef HAVE_DLFCN_H
-
-#if defined(LINUX) || defined(SOLARIS)
-#define HAVE_DLFCN_H
-#endif /* LINUX || SOLARIS */
-
-#endif /* HAVE_DLFCN_H */
-
-
-#ifdef HAVE_DLFCN_H
-
-#ifndef INCLUDED_DLFCN_H
-#include <dlfcn.h>
-#define INCLUDED_DLFCN_H
-#endif
-
-#endif /* HAVE_DLFCN_H */
-#include "osl/thread.h"
-
-#ifndef INCLUDED_PTHREAD_H
-#include <pthread.h>
-#define INCLUDED_PTHREAD_H
-#endif
-
-#ifndef INCLUDED_STDDEF_H
-#include <stddef.h>
-#define INCLUDED_STDDEF_H
-#endif
-
-#include "printtrace.h"
-
-/************************************************************************/
-/* Internal data structures and functions */
-/************************************************************************/
-
-static pthread_mutex_t g_mutex = PTHREAD_MUTEX_INITIALIZER;
-
-typedef pfunc_osl_printDebugMessage oslDebugMessageFunc;
-static oslDebugMessageFunc volatile g_pDebugMessageFunc = 0;
-
-typedef pfunc_osl_printDetailedDebugMessage oslDetailedDebugMessageFunc;
-static oslDetailedDebugMessageFunc volatile g_pDetailedDebugMessageFunc = 0;
-
-static void osl_diagnose_backtrace_Impl (
- oslDebugMessageFunc f);
-
-#define OSL_DIAGNOSE_OUTPUTMESSAGE(f, s) \
-((f != 0) ? (*(f))((s)) : (void)fprintf(stderr, "%s", (s)))
-
-#if defined (LINUX) || defined (SOLARIS)
-/************************************************************************/
-/* osl_diagnose_frame_Impl */
-/************************************************************************/
-static void osl_diagnose_frame_Impl (
- oslDebugMessageFunc f,
- int depth,
- void * pc)
-{
- const char *fname = 0, *sname = 0;
- void *fbase = 0, *saddr = 0;
- ptrdiff_t offset;
- char szMessage[1024];
-
-#ifdef INCLUDED_DLFCN_H
- Dl_info dli;
- if (dladdr (pc, &dli) != 0)
- {
- fname = dli.dli_fname;
- fbase = dli.dli_fbase;
- sname = dli.dli_sname;
- saddr = dli.dli_saddr;
- }
-#endif /* INCLUDED_DLFCN_H */
-
- if (saddr)
- offset = (ptrdiff_t)(pc) - (ptrdiff_t)(saddr);
- else if (fbase)
- offset = (ptrdiff_t)(pc) - (ptrdiff_t)(fbase);
- else
- offset = (ptrdiff_t)(pc);
-
- snprintf (szMessage, sizeof(szMessage),
- "Backtrace: [%d] %s: %s+0x%" SAL_PRI_PTRDIFFT "x\n",
- depth,
- fname ? fname : "<unknown>",
- sname ? sname : "???",
- offset);
-
- OSL_DIAGNOSE_OUTPUTMESSAGE(f, szMessage);
-}
-#endif
-
-/************************************************************************/
-/* osl_diagnose_backtrace_Impl */
-/************************************************************************/
-#if defined(LINUX)
-
-#include <execinfo.h>
-
-#define FRAME_COUNT 64
-#define FRAME_OFFSET 1
-
-static void osl_diagnose_backtrace_Impl (oslDebugMessageFunc f)
-{
- void * ppFrames[FRAME_COUNT];
- int i, n;
-
- n = backtrace (ppFrames, FRAME_COUNT);
- for (i = FRAME_OFFSET; i < n; i++)
- {
- osl_diagnose_frame_Impl (f, (i - FRAME_OFFSET), ppFrames[i]);
- }
-}
-
-#elif defined(SOLARIS)
-
-#include <pthread.h>
-#include <setjmp.h>
-#include <sys/frame.h>
-
-#if defined(SPARC)
-
-#if defined IS_LP64
-
-#define FRAME_PTR_OFFSET 1
-#define FRAME_OFFSET 0
-#define STACK_BIAS 0x7ff
-
-#else
-
-#define FRAME_PTR_OFFSET 1
-#define FRAME_OFFSET 0
-#define STACK_BIAS 0
-
-#endif
-
-#elif defined(INTEL)
-
-#define FRAME_PTR_OFFSET 3
-#define FRAME_OFFSET 0
-#define STACK_BIAS 0
-
-#endif /* (SPARC || INTEL) */
-
-static void osl_diagnose_backtrace_Impl (oslDebugMessageFunc f)
-{
- jmp_buf ctx;
- long fpval;
- struct frame * fp;
- int i;
-
-#if defined(SPARC)
- asm("ta 3");
-#endif /* SPARC */
- setjmp (ctx);
-
- fpval = ((long*)(ctx))[FRAME_PTR_OFFSET];
- fp = (struct frame*)((char*)(fpval) + STACK_BIAS);
-
- for (i = 0; (i < FRAME_OFFSET) && (fp != 0); i++)
- fp = (struct frame*)((char*)(fp->fr_savfp) + STACK_BIAS);
-
- for (i = 0; (fp != 0) && (fp->fr_savpc != 0); i++)
- {
- struct frame * prev = (struct frame*)((char*)(fp->fr_savfp) + STACK_BIAS);
- osl_diagnose_frame_Impl (f, i, (void*)(fp->fr_savpc));
- fp = (prev > fp) ? prev : 0;
- }
-}
-
-#else /* (LINUX || SOLARIS) */
-
-static void osl_diagnose_backtrace_Impl (oslDebugMessageFunc f)
-{
- /* not yet implemented */
-}
-
-#endif /* (LINUX || SOLARIS) */
-
-/************************************************************************/
-/* osl_assertFailedLine */
-/************************************************************************/
-sal_Bool SAL_CALL osl_assertFailedLine (
- const sal_Char* pszFileName,
- sal_Int32 nLine,
- const sal_Char* pszMessage)
-{
- oslDebugMessageFunc f = g_pDebugMessageFunc;
- char szMessage[1024];
-
- // after reporting the assertion, abort if told so by SAL_DIAGNOSE_ABORT, but *not* if
- // assertions are routed to some external instance
- char const * env = getenv( "SAL_DIAGNOSE_ABORT" );
- sal_Bool const doAbort = ( ( env != NULL ) && ( *env != '\0' ) && ( f == NULL ) );
-
- /* If there's a callback for detailed messages, use it */
- if ( g_pDetailedDebugMessageFunc != NULL )
- {
- g_pDetailedDebugMessageFunc( pszFileName, nLine, pszMessage );
- return sal_False;
- }
-
- /* if SAL assertions are disabled in general, stop here */
- if ( getenv("DISABLE_SAL_DBGBOX") )
- return doAbort;
-
- /* format message into buffer */
- if (pszMessage != 0)
- {
- snprintf(szMessage, sizeof(szMessage),
- "Error: File %s, Line %" SAL_PRIdINT32 ": %s\n",
- pszFileName, nLine, pszMessage);
- }
- else
- {
- snprintf(szMessage, sizeof(szMessage),
- "Error: File %s, Line %" SAL_PRIdINT32 "\n",
- pszFileName, nLine);
- }
-
- /* acquire lock to serialize output message(s) */
- pthread_mutex_lock(&g_mutex);
-
- /* output message buffer */
- OSL_DIAGNOSE_OUTPUTMESSAGE(f, szMessage);
-
- /* should we output backtrace? */
- char const * envBacktrace = getenv( "SAL_DIAGNOSE_BACKTRACE" );
- if( envBacktrace != NULL && *envBacktrace != '\0' )
- osl_diagnose_backtrace_Impl(f);
-
- /* release lock and leave */
- pthread_mutex_unlock(&g_mutex);
-
- return doAbort;
-}
-
-/************************************************************************/
-/* osl_breakDebug */
-/************************************************************************/
-void SAL_CALL osl_breakDebug()
-{
- abort();
-}
-
-/************************************************************************/
-/* osl_reportError */
-/************************************************************************/
-sal_Int32 SAL_CALL osl_reportError (
- sal_uInt32 nType,
- const sal_Char* pszMessage)
-{
- (void) nType; /* unused */
- fputs(pszMessage, stderr);
- return 0;
-}
-
-/************************************************************************/
-/* osl_setDebugMessageFunc */
-/************************************************************************/
-oslDebugMessageFunc SAL_CALL osl_setDebugMessageFunc (
- oslDebugMessageFunc pNewFunc)
-{
- oslDebugMessageFunc pOldFunc = g_pDebugMessageFunc;
- g_pDebugMessageFunc = pNewFunc;
- return pOldFunc;
-}
-
-/************************************************************************/
-/* osl_setDetailedDebugMessageFunc */
-/************************************************************************/
-pfunc_osl_printDetailedDebugMessage SAL_CALL osl_setDetailedDebugMessageFunc (
- pfunc_osl_printDetailedDebugMessage pNewFunc)
-{
- oslDetailedDebugMessageFunc pOldFunc = g_pDetailedDebugMessageFunc;
- g_pDetailedDebugMessageFunc = pNewFunc;
- return pOldFunc;
-}
-
-/************************************************************************/
-/* osl_trace */
-/************************************************************************/
-void osl_trace(char const * pszFormat, ...) {
- va_list args;
- va_start(args, pszFormat);
- printTrace((unsigned long) getpid(), pszFormat, args);
- va_end(args);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/file.cxx b/sal/osl/unx/file.cxx
deleted file mode 100644
index 6507d9cd6..000000000
--- a/sal/osl/unx/file.cxx
+++ /dev/null
@@ -1,1404 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include "osl/file.hxx"
-
-#include "osl/diagnose.h"
-#include "rtl/alloc.h"
-
-#include "system.h"
-#include "file_error_transl.h"
-#include "file_url.h"
-
-#include <algorithm>
-#include <limits>
-
-#include <string.h>
-#include <pthread.h>
-#include <sys/mman.h>
-
-#if defined(MACOSX)
-
-#include <sys/param.h>
-#include <sys/mount.h>
-#define HAVE_O_EXLOCK
-
-// add MACOSX Time Value
-#define TimeValue CFTimeValue
-#include <CoreFoundation/CoreFoundation.h>
-#undef TimeValue
-
-#endif /* MACOSX */
-
-#ifdef DEBUG_OSL_FILE
-# define OSL_FILE_TRACE osl_trace
-# define PERROR( a, b ) perror( a ); fprintf( stderr, b )
-#else
-# define OSL_FILE_TRACE(fmt, ...)
-# define PERROR( a, b )
-#endif
-
-
-
-/*******************************************************************
- *
- * FileHandle_Impl interface
- *
- ******************************************************************/
-struct FileHandle_Impl
-{
- pthread_mutex_t m_mutex;
- rtl_String * m_strFilePath; /* holds native file path */
- int m_fd;
-
- /** State
- */
- enum StateBits
- {
- STATE_SEEKABLE = 1, /* default */
- STATE_READABLE = 2, /* default */
- STATE_WRITEABLE = 4, /* open() sets, write() requires, else osl_File_E_BADF */
- STATE_MODIFIED = 8 /* write() sets, flush() resets */
- };
- int m_state;
-
- sal_uInt64 m_size; /* file size */
- off_t m_offset; /* physical offset from begin of file */
- off_t m_fileptr; /* logical offset from begin of file */
-
- off_t m_bufptr; /* buffer offset from begin of file */
- size_t m_buflen; /* buffer filled [0, m_bufsiz - 1] */
-
- size_t m_bufsiz;
- sal_uInt8 * m_buffer;
-
- explicit FileHandle_Impl (int fd, char const * path = "<anon>");
- ~FileHandle_Impl();
-
- static void* operator new (size_t n);
- static void operator delete (void * p, size_t);
-
- static size_t getpagesize();
-
- sal_uInt64 getPos() const;
- oslFileError setPos (sal_uInt64 uPos);
-
- sal_uInt64 getSize() const;
- oslFileError setSize (sal_uInt64 uSize);
-
- oslFileError readAt (
- off_t nOffset,
- void * pBuffer,
- size_t nBytesRequested,
- sal_uInt64 * pBytesRead);
-
- oslFileError writeAt (
- off_t nOffset,
- void const * pBuffer,
- size_t nBytesToWrite,
- sal_uInt64 * pBytesWritten);
-
- oslFileError readFileAt (
- off_t nOffset,
- void * pBuffer,
- size_t nBytesRequested,
- sal_uInt64 * pBytesRead);
-
- oslFileError writeFileAt (
- off_t nOffset,
- void const * pBuffer,
- size_t nBytesToWrite,
- sal_uInt64 * pBytesWritten);
-
- oslFileError readLineAt (
- off_t nOffset,
- sal_Sequence ** ppSequence,
- sal_uInt64 * pBytesRead);
-
- oslFileError writeSequence_Impl (
- sal_Sequence ** ppSequence,
- size_t * pnOffset,
- const void * pBuffer,
- size_t nBytes);
-
- oslFileError syncFile();
-
- /** Buffer cache / allocator.
- */
- class Allocator
- {
- rtl_cache_type * m_cache;
- size_t m_bufsiz;
-
- Allocator (Allocator const &);
- Allocator & operator= (Allocator const &);
-
- public:
- static Allocator & get();
-
- void allocate (sal_uInt8 ** ppBuffer, size_t * pnSize);
- void deallocate (sal_uInt8 * pBuffer);
-
- protected:
- Allocator();
- ~Allocator();
- };
-
- /** Guard.
- */
- class Guard
- {
- pthread_mutex_t * m_mutex;
-
- public:
- explicit Guard(pthread_mutex_t * pMutex);
- ~Guard();
- };
-};
-
-/*******************************************************************
- *
- * FileHandle_Impl implementation
- *
- ******************************************************************/
-
-FileHandle_Impl::Allocator &
-FileHandle_Impl::Allocator::get()
-{
- static Allocator g_aBufferAllocator;
- return g_aBufferAllocator;
-}
-
-FileHandle_Impl::Allocator::Allocator()
- : m_cache (0),
- m_bufsiz (0)
-{
- size_t const pagesize = FileHandle_Impl::getpagesize();
- if (size_t(-1) != pagesize)
- {
- m_cache = rtl_cache_create (
- "osl_file_buffer_cache", pagesize, 0, 0, 0, 0, 0, 0, 0);
- if (0 != m_cache)
- m_bufsiz = pagesize;
- }
-}
-FileHandle_Impl::Allocator::~Allocator()
-{
- rtl_cache_destroy (m_cache), m_cache = 0;
-}
-
-void FileHandle_Impl::Allocator::allocate (sal_uInt8 ** ppBuffer, size_t * pnSize)
-{
- OSL_PRECOND((0 != ppBuffer) && (0 != pnSize), "FileHandle_Impl::Allocator::allocate(): contract violation");
- if ((0 != ppBuffer) && (0 != pnSize))
- *ppBuffer = static_cast< sal_uInt8* >(rtl_cache_alloc(m_cache)), *pnSize = m_bufsiz;
-}
-void FileHandle_Impl::Allocator::deallocate (sal_uInt8 * pBuffer)
-{
- if (0 != pBuffer)
- rtl_cache_free (m_cache, pBuffer);
-}
-
-FileHandle_Impl::Guard::Guard(pthread_mutex_t * pMutex)
- : m_mutex (pMutex)
-{
- OSL_PRECOND (m_mutex != 0, "FileHandle_Impl::Guard::Guard(): null pointer.");
- (void) pthread_mutex_lock (m_mutex); // ignoring EINVAL ...
-}
-FileHandle_Impl::Guard::~Guard()
-{
- OSL_PRECOND (m_mutex != 0, "FileHandle_Impl::Guard::~Guard(): null pointer.");
- (void) pthread_mutex_unlock (m_mutex);
-}
-
-FileHandle_Impl::FileHandle_Impl (int fd, char const * path)
- : m_strFilePath (0),
- m_fd (fd),
- m_state (STATE_SEEKABLE | STATE_READABLE),
- m_size (0),
- m_offset (0),
- m_fileptr (0),
- m_bufptr (-1),
- m_buflen (0),
- m_bufsiz (0),
- m_buffer (0)
-{
- (void) pthread_mutex_init(&m_mutex, 0);
- rtl_string_newFromStr (&m_strFilePath, path);
- Allocator::get().allocate (&m_buffer, &m_bufsiz);
- if (0 != m_buffer)
- memset (m_buffer, 0, m_bufsiz);
-}
-FileHandle_Impl::~FileHandle_Impl()
-{
- Allocator::get().deallocate (m_buffer), m_buffer = 0;
- rtl_string_release (m_strFilePath), m_strFilePath = 0;
- (void) pthread_mutex_destroy(&m_mutex); // ignoring EBUSY ...
-}
-
-void* FileHandle_Impl::operator new (size_t n)
-{
- return rtl_allocateMemory(n);
-}
-void FileHandle_Impl::operator delete (void * p, size_t)
-{
- rtl_freeMemory(p);
-}
-
-size_t FileHandle_Impl::getpagesize()
-{
-#if defined(FREEBSD) || defined(NETBSD) || defined(MACOSX) || \
- defined(OPENBSD) || defined(DRAGONFLY)
- return sal::static_int_cast< size_t >(::getpagesize());
-#else /* POSIX */
- return sal::static_int_cast< size_t >(::sysconf(_SC_PAGESIZE));
-#endif /* xBSD || POSIX */
-}
-
-sal_uInt64 FileHandle_Impl::getPos() const
-{
- return sal::static_int_cast< sal_uInt64 >(m_fileptr);
-}
-
-oslFileError FileHandle_Impl::setPos (sal_uInt64 uPos)
-{
- OSL_FILE_TRACE("FileHandle_Impl::setPos(%d, %lld) => %lld", m_fd, getPos(), uPos);
- m_fileptr = sal::static_int_cast< off_t >(uPos);
- return osl_File_E_None;
-}
-
-sal_uInt64 FileHandle_Impl::getSize() const
-{
- off_t const bufend = std::max((off_t)(0), m_bufptr) + m_buflen;
- return std::max(m_size, sal::static_int_cast< sal_uInt64 >(bufend));
-}
-
-oslFileError FileHandle_Impl::setSize (sal_uInt64 uSize)
-{
- off_t const nSize = sal::static_int_cast< off_t >(uSize);
- if (-1 == ftruncate (m_fd, nSize))
- {
- /* Failure. Save original result. Try fallback algorithm */
- oslFileError result = oslTranslateFileError (OSL_FET_ERROR, errno);
-
- /* Check against current size. Fail upon 'shrink' */
- if (uSize <= getSize())
- {
- /* Failure upon 'shrink'. Return original result */
- return (result);
- }
-
- /* Save current position */
- off_t const nCurPos = (off_t)lseek (m_fd, (off_t)0, SEEK_CUR);
- if (nCurPos == (off_t)(-1))
- return (result);
-
- /* Try 'expand' via 'lseek()' and 'write()' */
- if (-1 == lseek (m_fd, (off_t)(nSize - 1), SEEK_SET))
- return (result);
-
- if (-1 == write (m_fd, (char*)"", (size_t)1))
- {
- /* Failure. Restore saved position */
- (void) lseek (m_fd, (off_t)(nCurPos), SEEK_SET);
- return (result);
- }
-
- /* Success. Restore saved position */
- if (-1 == lseek (m_fd, (off_t)nCurPos, SEEK_SET))
- return (result);
- }
-
- OSL_FILE_TRACE("osl_setFileSize(%d, %lld) => %ld", m_fd, getSize(), nSize);
- m_size = sal::static_int_cast< sal_uInt64 >(nSize);
- return osl_File_E_None;
-}
-
-oslFileError FileHandle_Impl::readAt (
- off_t nOffset,
- void * pBuffer,
- size_t nBytesRequested,
- sal_uInt64 * pBytesRead)
-{
- OSL_PRECOND((m_state & STATE_SEEKABLE), "FileHandle_Impl::readAt(): not seekable");
- if (!(m_state & STATE_SEEKABLE))
- return osl_File_E_SPIPE;
-
- OSL_PRECOND((m_state & STATE_READABLE), "FileHandle_Impl::readAt(): not readable");
- if (!(m_state & STATE_READABLE))
- return osl_File_E_BADF;
-
-#if defined(LINUX) || defined(SOLARIS)
-
- ssize_t nBytes = ::pread (m_fd, pBuffer, nBytesRequested, nOffset);
- if ((-1 == nBytes) && (EOVERFLOW == errno))
- {
- /* Some 'pread()'s fail with EOVERFLOW when reading at (or past)
- * end-of-file, different from 'lseek() + read()' behaviour.
- * Returning '0 bytes read' and 'osl_File_E_None' instead.
- */
- nBytes = 0;
- }
- if (-1 == nBytes)
- return oslTranslateFileError (OSL_FET_ERROR, errno);
-
-#else /* !(LINUX || SOLARIS) */
-
- if (nOffset != m_offset)
- {
- if (-1 == ::lseek (m_fd, nOffset, SEEK_SET))
- return oslTranslateFileError (OSL_FET_ERROR, errno);
- m_offset = nOffset;
- }
-
- ssize_t nBytes = ::read (m_fd, pBuffer, nBytesRequested);
- if (-1 == nBytes)
- return oslTranslateFileError (OSL_FET_ERROR, errno);
- m_offset += nBytes;
-
-#endif /* !(LINUX || SOLARIS) */
-
- OSL_FILE_TRACE("FileHandle_Impl::readAt(%d, %lld, %ld)", m_fd, nOffset, nBytes);
- *pBytesRead = nBytes;
- return osl_File_E_None;
-}
-
-oslFileError FileHandle_Impl::writeAt (
- off_t nOffset,
- void const * pBuffer,
- size_t nBytesToWrite,
- sal_uInt64 * pBytesWritten)
-{
- OSL_PRECOND((m_state & STATE_SEEKABLE), "FileHandle_Impl::writeAt(): not seekable");
- if (!(m_state & STATE_SEEKABLE))
- return osl_File_E_SPIPE;
-
- OSL_PRECOND((m_state & STATE_WRITEABLE), "FileHandle_Impl::writeAt(): not writeable");
- if (!(m_state & STATE_WRITEABLE))
- return osl_File_E_BADF;
-
-#if defined(LINUX) || defined(SOLARIS)
-
- ssize_t nBytes = ::pwrite (m_fd, pBuffer, nBytesToWrite, nOffset);
- if (-1 == nBytes)
- return oslTranslateFileError (OSL_FET_ERROR, errno);
-
-#else /* !(LINUX || SOLARIS) */
-
- if (nOffset != m_offset)
- {
- if (-1 == ::lseek (m_fd, nOffset, SEEK_SET))
- return oslTranslateFileError (OSL_FET_ERROR, errno);
- m_offset = nOffset;
- }
-
- ssize_t nBytes = ::write (m_fd, pBuffer, nBytesToWrite);
- if (-1 == nBytes)
- return oslTranslateFileError (OSL_FET_ERROR, errno);
- m_offset += nBytes;
-
-#endif /* !(LINUX || SOLARIS) */
-
- OSL_FILE_TRACE("FileHandle_Impl::writeAt(%d, %lld, %ld)", m_fd, nOffset, nBytes);
- m_size = std::max (m_size, sal::static_int_cast< sal_uInt64 >(nOffset + nBytes));
-
- *pBytesWritten = nBytes;
- return osl_File_E_None;
-}
-
-oslFileError FileHandle_Impl::readFileAt (
- off_t nOffset,
- void * pBuffer,
- size_t nBytesRequested,
- sal_uInt64 * pBytesRead)
-{
- if (0 == (m_state & STATE_SEEKABLE))
- {
- // not seekable (pipe)
- ssize_t nBytes = ::read (m_fd, pBuffer, nBytesRequested);
- if (-1 == nBytes)
- return oslTranslateFileError (OSL_FET_ERROR, errno);
- *pBytesRead = nBytes;
- return osl_File_E_None;
- }
- else if (0 == m_buffer)
- {
- // not buffered
- return readAt (nOffset, pBuffer, nBytesRequested, pBytesRead);
- }
- else
- {
- sal_uInt8 * buffer = static_cast<sal_uInt8*>(pBuffer);
- for (*pBytesRead = 0; nBytesRequested > 0; )
- {
- off_t const bufptr = (nOffset / m_bufsiz) * m_bufsiz;
- size_t const bufpos = (nOffset % m_bufsiz);
-
- if (bufptr != m_bufptr)
- {
- // flush current buffer
- oslFileError result = syncFile();
- if (result != osl_File_E_None)
- return (result);
- m_bufptr = -1, m_buflen = 0;
-
- if (nBytesRequested >= m_bufsiz)
- {
- // buffer too small, read through from file
- sal_uInt64 uDone = 0;
- result = readAt (nOffset, &(buffer[*pBytesRead]), nBytesRequested, &uDone);
- if (result != osl_File_E_None)
- return (result);
-
- nBytesRequested -= uDone, *pBytesRead += uDone;
- return osl_File_E_None;
- }
-
- // update buffer (pointer)
- sal_uInt64 uDone = 0;
- result = readAt (bufptr, m_buffer, m_bufsiz, &uDone);
- if (result != osl_File_E_None)
- return (result);
- m_bufptr = bufptr, m_buflen = uDone;
- }
- if (bufpos >= m_buflen)
- {
- // end of file
- return osl_File_E_None;
- }
-
- size_t const bytes = std::min (m_buflen - bufpos, nBytesRequested);
- OSL_FILE_TRACE("FileHandle_Impl::readFileAt(%d, %lld, %ld)", m_fd, nOffset, bytes);
-
- memcpy (&(buffer[*pBytesRead]), &(m_buffer[bufpos]), bytes);
- nBytesRequested -= bytes, *pBytesRead += bytes, nOffset += bytes;
- }
- return osl_File_E_None;
- }
-}
-
-oslFileError FileHandle_Impl::writeFileAt (
- off_t nOffset,
- void const * pBuffer,
- size_t nBytesToWrite,
- sal_uInt64 * pBytesWritten)
-{
- if (0 == (m_state & STATE_SEEKABLE))
- {
- // not seekable (pipe)
- ssize_t nBytes = ::write (m_fd, pBuffer, nBytesToWrite);
- if (-1 == nBytes)
- return oslTranslateFileError (OSL_FET_ERROR, errno);
- *pBytesWritten = nBytes;
- return osl_File_E_None;
- }
- else if (0 == m_buffer)
- {
- // not buffered
- return writeAt (nOffset, pBuffer, nBytesToWrite, pBytesWritten);
- }
- else
- {
- sal_uInt8 const * buffer = static_cast<sal_uInt8 const *>(pBuffer);
- for (*pBytesWritten = 0; nBytesToWrite > 0; )
- {
- off_t const bufptr = (nOffset / m_bufsiz) * m_bufsiz;
- size_t const bufpos = (nOffset % m_bufsiz);
- if (bufptr != m_bufptr)
- {
- // flush current buffer
- oslFileError result = syncFile();
- if (result != osl_File_E_None)
- return (result);
- m_bufptr = -1, m_buflen = 0;
-
- if (nBytesToWrite >= m_bufsiz)
- {
- // buffer to small, write through to file
- sal_uInt64 uDone = 0;
- result = writeAt (nOffset, &(buffer[*pBytesWritten]), nBytesToWrite, &uDone);
- if (result != osl_File_E_None)
- return (result);
- if (uDone != nBytesToWrite)
- return osl_File_E_IO;
-
- nBytesToWrite -= uDone, *pBytesWritten += uDone;
- return osl_File_E_None;
- }
-
- // update buffer (pointer)
- sal_uInt64 uDone = 0;
- result = readAt (bufptr, m_buffer, m_bufsiz, &uDone);
- if (result != osl_File_E_None)
- return (result);
- m_bufptr = bufptr, m_buflen = uDone;
- }
-
- size_t const bytes = std::min (m_bufsiz - bufpos, nBytesToWrite);
- OSL_FILE_TRACE("FileHandle_Impl::writeFileAt(%d, %lld, %ld)", m_fd, nOffset, bytes);
-
- memcpy (&(m_buffer[bufpos]), &(buffer[*pBytesWritten]), bytes);
- nBytesToWrite -= bytes, *pBytesWritten += bytes, nOffset += bytes;
-
- m_buflen = std::max(m_buflen, bufpos + bytes);
- m_state |= STATE_MODIFIED;
- }
- return osl_File_E_None;
- }
-}
-
-oslFileError FileHandle_Impl::readLineAt (
- off_t nOffset,
- sal_Sequence ** ppSequence,
- sal_uInt64 * pBytesRead)
-{
- oslFileError result = osl_File_E_None;
-
- off_t bufptr = nOffset / m_bufsiz * m_bufsiz;
- if (bufptr != m_bufptr)
- {
- /* flush current buffer */
- result = syncFile();
- if (result != osl_File_E_None)
- return (result);
-
- /* update buffer (pointer) */
- sal_uInt64 uDone = 0;
- result = readAt (bufptr, m_buffer, m_bufsiz, &uDone);
- if (result != osl_File_E_None)
- return (result);
-
- m_bufptr = bufptr, m_buflen = uDone;
- }
-
- static int const LINE_STATE_BEGIN = 0;
- static int const LINE_STATE_CR = 1;
- static int const LINE_STATE_LF = 2;
-
- size_t bufpos = nOffset - m_bufptr, curpos = bufpos, dstpos = 0;
- int state = (bufpos >= m_buflen) ? LINE_STATE_LF : LINE_STATE_BEGIN;
-
- for ( ; state != LINE_STATE_LF; )
- {
- if (curpos >= m_buflen)
- {
- /* buffer examined */
- if (0 < (curpos - bufpos))
- {
- /* flush buffer to sequence */
- result = writeSequence_Impl (
- ppSequence, &dstpos, &(m_buffer[bufpos]), curpos - bufpos);
- if (result != osl_File_E_None)
- return (result);
- *pBytesRead += curpos - bufpos, nOffset += curpos - bufpos;
- }
-
- bufptr = nOffset / m_bufsiz * m_bufsiz;
- if (bufptr != m_bufptr)
- {
- /* update buffer (pointer) */
- sal_uInt64 uDone = 0;
- result = readAt (bufptr, m_buffer, m_bufsiz, &uDone);
- if (result != osl_File_E_None)
- return (result);
- m_bufptr = bufptr, m_buflen = uDone;
- }
-
- bufpos = nOffset - m_bufptr, curpos = bufpos;
- if (bufpos >= m_buflen)
- break;
- }
- switch (state)
- {
- case LINE_STATE_CR:
- state = LINE_STATE_LF;
- switch (m_buffer[curpos])
- {
- case 0x0A: /* CRLF */
- /* eat current char */
- curpos++;
- break;
- default: /* single CR */
- /* keep current char */
- break;
- }
- break;
- default:
- /* determine next state */
- switch (m_buffer[curpos])
- {
- case 0x0A: /* single LF */
- state = LINE_STATE_LF;
- break;
- case 0x0D: /* CR */
- state = LINE_STATE_CR;
- break;
- default: /* advance to next char */
- curpos++;
- break;
- }
- if (state != LINE_STATE_BEGIN)
- {
- /* store (and eat) the newline char */
- m_buffer[curpos] = 0x0A, curpos++;
-
- /* flush buffer to sequence */
- result = writeSequence_Impl (
- ppSequence, &dstpos, &(m_buffer[bufpos]), curpos - bufpos - 1);
- if (result != osl_File_E_None)
- return (result);
- *pBytesRead += curpos - bufpos, nOffset += curpos - bufpos;
- }
- break;
- }
- }
-
- result = writeSequence_Impl (ppSequence, &dstpos, 0, 0);
- if (result != osl_File_E_None)
- return (result);
- if (0 < dstpos)
- return osl_File_E_None;
- if (bufpos >= m_buflen)
- return osl_File_E_AGAIN;
- return osl_File_E_None;
-}
-
-oslFileError FileHandle_Impl::writeSequence_Impl (
- sal_Sequence ** ppSequence,
- size_t * pnOffset,
- const void * pBuffer,
- size_t nBytes)
-{
- sal_Int32 nElements = *pnOffset + nBytes;
- if (!*ppSequence)
- {
- /* construct sequence */
- rtl_byte_sequence_constructNoDefault(ppSequence, nElements);
- }
- else if (nElements != (*ppSequence)->nElements)
- {
- /* resize sequence */
- rtl_byte_sequence_realloc(ppSequence, nElements);
- }
- if (*ppSequence != 0)
- {
- /* fill sequence */
- memcpy(&((*ppSequence)->elements[*pnOffset]), pBuffer, nBytes), *pnOffset += nBytes;
- }
- return (*ppSequence != 0) ? osl_File_E_None : osl_File_E_NOMEM;
-}
-
-oslFileError FileHandle_Impl::syncFile()
-{
- oslFileError result = osl_File_E_None;
- if (m_state & STATE_MODIFIED)
- {
- sal_uInt64 uDone = 0;
- result = writeAt (m_bufptr, m_buffer, m_buflen, &uDone);
- if (result != osl_File_E_None)
- return (result);
- if (uDone != m_buflen)
- return osl_File_E_IO;
- m_state &= ~STATE_MODIFIED;
- }
- return (result);
-}
-
-/****************************************************************************
- * osl_createFileHandleFromFD
- ***************************************************************************/
-extern "C" oslFileHandle osl_createFileHandleFromFD( int fd )
-{
- if (-1 == fd)
- return 0; // EINVAL
-
- struct stat aFileStat;
- if (-1 == fstat (fd, &aFileStat))
- return 0; // EBADF
-
- FileHandle_Impl * pImpl = new FileHandle_Impl (fd);
- if (0 == pImpl)
- return 0; // ENOMEM
-
- // assume writeable
- pImpl->m_state |= FileHandle_Impl::STATE_WRITEABLE;
- if (!S_ISREG(aFileStat.st_mode))
- {
- /* not a regular file, mark not seekable */
- pImpl->m_state &= ~FileHandle_Impl::STATE_SEEKABLE;
- }
- else
- {
- /* regular file, init current size */
- pImpl->m_size = sal::static_int_cast< sal_uInt64 >(aFileStat.st_size);
- }
-
- OSL_FILE_TRACE("osl_createFileHandleFromFD(%d, writeable) => %s",
- pImpl->m_fd, rtl_string_getStr(pImpl->m_strFilePath));
- return (oslFileHandle)(pImpl);
-}
-
-/*******************************************************************
- * osl_file_adjustLockFlags
- ******************************************************************/
-static int osl_file_adjustLockFlags (const char * path, int flags)
-{
-#ifdef MACOSX
- /*
- * The AFP implementation of MacOS X 10.4 treats O_EXLOCK in a way
- * that makes it impossible for OOo to create a backup copy of the
- * file it keeps opened. OTOH O_SHLOCK for AFP behaves as desired by
- * the OOo file handling, so we need to check the path of the file
- * for the filesystem name.
- */
- struct statfs s;
- if( 0 <= statfs( path, &s ) )
- {
- if( 0 == strncmp("afpfs", s.f_fstypename, 5) )
- {
- flags &= ~O_EXLOCK;
- flags |= O_SHLOCK;
- }
- else
- {
- /* Needed flags to allow opening a webdav file */
- flags &= ~(O_EXLOCK | O_SHLOCK | O_NONBLOCK);
- }
- }
-#endif /* MACOSX */
-
- (void) path;
- return flags;
-}
-
-/****************************************************************************
- * osl_file_queryLocking
- ***************************************************************************/
-struct Locking_Impl
-{
- int m_enabled;
- Locking_Impl() : m_enabled(0)
- {
-#ifndef HAVE_O_EXLOCK
- m_enabled = ((getenv("SAL_ENABLE_FILE_LOCKING") != 0) || (getenv("STAR_ENABLE_FILE_LOCKING") != 0));
-#endif /* HAVE_O_EXLOCK */
- }
-};
-static int osl_file_queryLocking (sal_uInt32 uFlags)
-{
- if (!(uFlags & osl_File_OpenFlag_NoLock))
- {
- if ((uFlags & osl_File_OpenFlag_Write) || (uFlags & osl_File_OpenFlag_Create))
- {
- static Locking_Impl g_locking;
- return (g_locking.m_enabled != 0);
- }
- }
- return 0;
-}
-
-/****************************************************************************
- * osl_openFile
- ***************************************************************************/
-#ifdef HAVE_O_EXLOCK
-#define OPEN_WRITE_FLAGS ( O_RDWR | O_EXLOCK | O_NONBLOCK )
-#define OPEN_CREATE_FLAGS ( O_CREAT | O_EXCL | O_RDWR | O_EXLOCK | O_NONBLOCK )
-#else
-#define OPEN_WRITE_FLAGS ( O_RDWR )
-#define OPEN_CREATE_FLAGS ( O_CREAT | O_EXCL | O_RDWR )
-#endif
-
-oslFileError
-SAL_CALL osl_openFile( rtl_uString* ustrFileURL, oslFileHandle* pHandle, sal_uInt32 uFlags )
-{
- oslFileError eRet;
-
- if ((ustrFileURL == 0) || (ustrFileURL->length == 0) || (pHandle == 0))
- return osl_File_E_INVAL;
-
- /* convert file URL to system path */
- char buffer[PATH_MAX];
- eRet = FileURLToPath (buffer, sizeof(buffer), ustrFileURL);
- if (eRet != osl_File_E_None)
- return eRet;
-#ifdef MACOSX
- if (macxp_resolveAlias (buffer, sizeof(buffer)) != 0)
- return oslTranslateFileError (OSL_FET_ERROR, errno);
-#endif /* MACOSX */
-
- /* set mode and flags */
- int mode = S_IRUSR | S_IRGRP | S_IROTH;
- int flags = O_RDONLY;
- if (uFlags & osl_File_OpenFlag_Write)
- {
- mode |= S_IWUSR | S_IWGRP | S_IWOTH;
- flags = OPEN_WRITE_FLAGS;
- }
- if (uFlags & osl_File_OpenFlag_Create)
- {
- mode |= S_IWUSR | S_IWGRP | S_IWOTH;
- flags = OPEN_CREATE_FLAGS;
- }
- if (uFlags & osl_File_OpenFlag_NoLock)
- {
-#ifdef HAVE_O_EXLOCK
- flags &= ~(O_EXLOCK | O_SHLOCK | O_NONBLOCK);
-#endif /* HAVE_O_EXLOCK */
- }
- else
- {
- flags = osl_file_adjustLockFlags (buffer, flags);
- }
-
- /* open the file */
- int fd = open( buffer, flags, mode );
- if (-1 == fd)
- return oslTranslateFileError (OSL_FET_ERROR, errno);
-
- /* reset O_NONBLOCK flag */
- if (flags & O_NONBLOCK)
- {
- int f = fcntl (fd, F_GETFL, 0);
- if (-1 == f)
- {
- eRet = oslTranslateFileError (OSL_FET_ERROR, errno);
- (void) close(fd);
- return eRet;
- }
- if (-1 == fcntl (fd, F_SETFL, (f & ~O_NONBLOCK)))
- {
- eRet = oslTranslateFileError (OSL_FET_ERROR, errno);
- (void) close(fd);
- return eRet;
- }
- }
-
- /* get file status (mode, size) */
- struct stat aFileStat;
- if (-1 == fstat (fd, &aFileStat))
- {
- eRet = oslTranslateFileError (OSL_FET_ERROR, errno);
- (void) close(fd);
- return eRet;
- }
- if (!S_ISREG(aFileStat.st_mode))
- {
- /* we only open regular files here */
- (void) close(fd);
- return osl_File_E_INVAL;
- }
-
- if (osl_file_queryLocking (uFlags))
- {
-#ifdef MACOSX
- if (-1 == flock (fd, LOCK_EX | LOCK_NB))
- {
- /* Mac OSX returns ENOTSUP for webdav drives. We should try read lock */
- if ((errno != ENOTSUP) || ((-1 == flock (fd, LOCK_SH | LOCK_NB)) && (errno != ENOTSUP)))
- {
- eRet = oslTranslateFileError (OSL_FET_ERROR, errno);
- (void) close(fd);
- return eRet;
- }
- }
-#else /* F_SETLK */
- {
- struct flock aflock;
-
- aflock.l_type = F_WRLCK;
- aflock.l_whence = SEEK_SET;
- aflock.l_start = 0;
- aflock.l_len = 0;
-
- if (-1 == fcntl (fd, F_SETLK, &aflock))
- {
- eRet = oslTranslateFileError (OSL_FET_ERROR, errno);
- (void) close(fd);
- return eRet;
- }
- }
-#endif /* F_SETLK */
- }
-
- /* allocate memory for impl structure */
- FileHandle_Impl * pImpl = new FileHandle_Impl (fd, buffer);
- if (!pImpl)
- {
- eRet = oslTranslateFileError (OSL_FET_ERROR, ENOMEM);
- (void) close(fd);
- return eRet;
- }
- if (flags & O_RDWR)
- pImpl->m_state |= FileHandle_Impl::STATE_WRITEABLE;
- pImpl->m_size = sal::static_int_cast< sal_uInt64 >(aFileStat.st_size);
-
- OSL_TRACE("osl_openFile(%d, %s) => %s", pImpl->m_fd,
- flags & O_RDWR ? "writeable":"readonly",
- rtl_string_getStr(pImpl->m_strFilePath));
-
- *pHandle = (oslFileHandle)(pImpl);
- return osl_File_E_None;
-}
-
-/****************************************************************************/
-/* osl_closeFile */
-/****************************************************************************/
-oslFileError
-SAL_CALL osl_closeFile( oslFileHandle Handle )
-{
- FileHandle_Impl* pImpl = static_cast<FileHandle_Impl*>(Handle);
-
- if ((pImpl == 0) || (pImpl->m_fd < 0))
- return osl_File_E_INVAL;
-
- (void) pthread_mutex_lock (&(pImpl->m_mutex));
-
- /* close(2) implicitly (and unconditionally) unlocks */
- OSL_TRACE("osl_closeFile(%d) => %s", pImpl->m_fd, rtl_string_getStr(pImpl->m_strFilePath));
- oslFileError result = pImpl->syncFile();
- if (result != osl_File_E_None)
- {
- /* close, ignoring double failure */
- (void) close (pImpl->m_fd);
- }
- else if (-1 == close (pImpl->m_fd))
- {
- /* translate error code */
- result = oslTranslateFileError (OSL_FET_ERROR, errno);
- }
-
- (void) pthread_mutex_unlock (&(pImpl->m_mutex));
- delete pImpl;
- return (result);
-}
-
-/************************************************
- * osl_syncFile
- ***********************************************/
-oslFileError
-SAL_CALL osl_syncFile(oslFileHandle Handle)
-{
- FileHandle_Impl* pImpl = static_cast<FileHandle_Impl*>(Handle);
-
- if ((0 == pImpl) || (-1 == pImpl->m_fd))
- return osl_File_E_INVAL;
-
- FileHandle_Impl::Guard lock (&(pImpl->m_mutex));
-
- OSL_TRACE("osl_syncFile(%d)", pImpl->m_fd);
- oslFileError result = pImpl->syncFile();
- if (result != osl_File_E_None)
- return (result);
- if (-1 == fsync (pImpl->m_fd))
- return oslTranslateFileError (OSL_FET_ERROR, errno);
-
- return osl_File_E_None;
-}
-
-/*******************************************
- osl_mapFile
-********************************************/
-oslFileError
-SAL_CALL osl_mapFile (
- oslFileHandle Handle,
- void** ppAddr,
- sal_uInt64 uLength,
- sal_uInt64 uOffset,
- sal_uInt32 uFlags
-)
-{
- FileHandle_Impl* pImpl = static_cast<FileHandle_Impl*>(Handle);
-
- if ((0 == pImpl) || (-1 == pImpl->m_fd) || (0 == ppAddr))
- return osl_File_E_INVAL;
- *ppAddr = 0;
-
- static sal_uInt64 const g_limit_size_t = std::numeric_limits< size_t >::max();
- if (g_limit_size_t < uLength)
- return osl_File_E_OVERFLOW;
- size_t const nLength = sal::static_int_cast< size_t >(uLength);
-
- static sal_uInt64 const g_limit_off_t = std::numeric_limits< off_t >::max();
- if (g_limit_off_t < uOffset)
- return osl_File_E_OVERFLOW;
- off_t const nOffset = sal::static_int_cast< off_t >(uOffset);
-
- void* p = mmap(NULL, nLength, PROT_READ, MAP_SHARED, pImpl->m_fd, nOffset);
- if (MAP_FAILED == p)
- return oslTranslateFileError(OSL_FET_ERROR, errno);
- *ppAddr = p;
-
- if (uFlags & osl_File_MapFlag_RandomAccess)
- {
- // Determine memory pagesize.
- size_t const nPageSize = FileHandle_Impl::getpagesize();
- if (size_t(-1) != nPageSize)
- {
- /*
- * Pagein, touching first byte of every memory page.
- * Note: volatile disables optimizing the loop away.
- */
- sal_uInt8 * pData (reinterpret_cast<sal_uInt8*>(*ppAddr));
- size_t nSize (nLength);
-
- volatile sal_uInt8 c = 0;
- while (nSize > nPageSize)
- {
- c ^= pData[0];
- pData += nPageSize;
- nSize -= nPageSize;
- }
- if (nSize > 0)
- {
- c^= pData[0];
- pData += nSize;
- nSize -= nSize;
- }
- }
- }
- if (uFlags & osl_File_MapFlag_WillNeed)
- {
- // On Linux, madvise(..., MADV_WILLNEED) appears to have the undesirable
- // effect of not returning until the data has actually been paged in, so
- // that its net effect would typically be to slow down the process
- // (which could start processing at the beginning of the data while the
- // OS simultaneously pages in the rest); on other platforms, it remains
- // to be evaluated whether madvise or equivalent is available and
- // actually useful:
-#if defined MACOSX
- int e = posix_madvise(p, nLength, POSIX_MADV_WILLNEED);
- if (e != 0)
- {
- OSL_TRACE(
- "posix_madvise(..., POSIX_MADV_WILLNEED) failed with %d", e);
- }
-#elif defined SOLARIS
- if (madvise(static_cast< caddr_t >(p), nLength, MADV_WILLNEED) != 0)
- {
- OSL_TRACE("madvise(..., MADV_WILLNEED) failed with %d", errno);
- }
-#endif
- }
- return osl_File_E_None;
-}
-
-/*******************************************
- osl_unmapFile
-********************************************/
-oslFileError
-SAL_CALL osl_unmapFile (void* pAddr, sal_uInt64 uLength)
-{
- if (0 == pAddr)
- return osl_File_E_INVAL;
-
- static sal_uInt64 const g_limit_size_t = std::numeric_limits< size_t >::max();
- if (g_limit_size_t < uLength)
- return osl_File_E_OVERFLOW;
- size_t const nLength = sal::static_int_cast< size_t >(uLength);
-
- if (-1 == munmap(static_cast<char*>(pAddr), nLength))
- return oslTranslateFileError(OSL_FET_ERROR, errno);
-
- return osl_File_E_None;
-}
-
-/*******************************************
- osl_readLine
-********************************************/
-oslFileError
-SAL_CALL osl_readLine (
- oslFileHandle Handle,
- sal_Sequence ** ppSequence)
-{
- FileHandle_Impl * pImpl = static_cast<FileHandle_Impl*>(Handle);
-
- if ((0 == pImpl) || (-1 == pImpl->m_fd) || (0 == ppSequence))
- return osl_File_E_INVAL;
- sal_uInt64 uBytesRead = 0;
-
- // read at current fileptr; fileptr += uBytesRead;
- FileHandle_Impl::Guard lock (&(pImpl->m_mutex));
- oslFileError result = pImpl->readLineAt (
- pImpl->m_fileptr, ppSequence, &uBytesRead);
- if (result == osl_File_E_None)
- pImpl->m_fileptr += uBytesRead;
- return (result);
-}
-
-/*******************************************
- osl_readFile
-********************************************/
-oslFileError
-SAL_CALL osl_readFile (
- oslFileHandle Handle,
- void * pBuffer,
- sal_uInt64 uBytesRequested,
- sal_uInt64 * pBytesRead)
-{
- FileHandle_Impl* pImpl = static_cast<FileHandle_Impl*>(Handle);
-
- if ((0 == pImpl) || (-1 == pImpl->m_fd) || (0 == pBuffer) || (0 == pBytesRead))
- return osl_File_E_INVAL;
-
- static sal_uInt64 const g_limit_ssize_t = std::numeric_limits< ssize_t >::max();
- if (g_limit_ssize_t < uBytesRequested)
- return osl_File_E_OVERFLOW;
- size_t const nBytesRequested = sal::static_int_cast< size_t >(uBytesRequested);
-
- // read at current fileptr; fileptr += *pBytesRead;
- FileHandle_Impl::Guard lock (&(pImpl->m_mutex));
- oslFileError result = pImpl->readFileAt (
- pImpl->m_fileptr, pBuffer, nBytesRequested, pBytesRead);
- if (result == osl_File_E_None)
- pImpl->m_fileptr += *pBytesRead;
- return (result);
-}
-
-/*******************************************
- osl_writeFile
-********************************************/
-oslFileError
-SAL_CALL osl_writeFile (
- oslFileHandle Handle,
- const void * pBuffer,
- sal_uInt64 uBytesToWrite,
- sal_uInt64 * pBytesWritten)
-{
- FileHandle_Impl* pImpl = static_cast<FileHandle_Impl*>(Handle);
-
- if ((0 == pImpl) || (-1 == pImpl->m_fd) || (0 == pBuffer) || (0 == pBytesWritten))
- return osl_File_E_INVAL;
- if (0 == (pImpl->m_state & FileHandle_Impl::STATE_WRITEABLE))
- return osl_File_E_BADF;
-
- static sal_uInt64 const g_limit_ssize_t = std::numeric_limits< ssize_t >::max();
- if (g_limit_ssize_t < uBytesToWrite)
- return osl_File_E_OVERFLOW;
- size_t const nBytesToWrite = sal::static_int_cast< size_t >(uBytesToWrite);
-
- // write at current fileptr; fileptr += *pBytesWritten;
- FileHandle_Impl::Guard lock (&(pImpl->m_mutex));
- oslFileError result = pImpl->writeFileAt (
- pImpl->m_fileptr, pBuffer, nBytesToWrite, pBytesWritten);
- if (result == osl_File_E_None)
- pImpl->m_fileptr += *pBytesWritten;
- return (result);
-}
-
-/*******************************************
- osl_readFileAt
-********************************************/
-oslFileError
-SAL_CALL osl_readFileAt (
- oslFileHandle Handle,
- sal_uInt64 uOffset,
- void* pBuffer,
- sal_uInt64 uBytesRequested,
- sal_uInt64* pBytesRead)
-{
- FileHandle_Impl* pImpl = static_cast<FileHandle_Impl*>(Handle);
-
- if ((0 == pImpl) || (-1 == pImpl->m_fd) || (0 == pBuffer) || (0 == pBytesRead))
- return osl_File_E_INVAL;
- if (0 == (pImpl->m_state & FileHandle_Impl::STATE_SEEKABLE))
- return osl_File_E_SPIPE;
-
- static sal_uInt64 const g_limit_off_t = std::numeric_limits< off_t >::max();
- if (g_limit_off_t < uOffset)
- return osl_File_E_OVERFLOW;
- off_t const nOffset = sal::static_int_cast< off_t >(uOffset);
-
- static sal_uInt64 const g_limit_ssize_t = std::numeric_limits< ssize_t >::max();
- if (g_limit_ssize_t < uBytesRequested)
- return osl_File_E_OVERFLOW;
- size_t const nBytesRequested = sal::static_int_cast< size_t >(uBytesRequested);
-
- // read at specified fileptr
- FileHandle_Impl::Guard lock (&(pImpl->m_mutex));
- return pImpl->readFileAt (nOffset, pBuffer, nBytesRequested, pBytesRead);
-}
-
-/*******************************************
- osl_writeFileAt
-********************************************/
-oslFileError
-SAL_CALL osl_writeFileAt (
- oslFileHandle Handle,
- sal_uInt64 uOffset,
- const void* pBuffer,
- sal_uInt64 uBytesToWrite,
- sal_uInt64* pBytesWritten)
-{
- FileHandle_Impl* pImpl = static_cast<FileHandle_Impl*>(Handle);
-
- if ((0 == pImpl) || (-1 == pImpl->m_fd) || (0 == pBuffer) || (0 == pBytesWritten))
- return osl_File_E_INVAL;
- if (0 == (pImpl->m_state & FileHandle_Impl::STATE_SEEKABLE))
- return osl_File_E_SPIPE;
- if (0 == (pImpl->m_state & FileHandle_Impl::STATE_WRITEABLE))
- return osl_File_E_BADF;
-
- static sal_uInt64 const g_limit_off_t = std::numeric_limits< off_t >::max();
- if (g_limit_off_t < uOffset)
- return osl_File_E_OVERFLOW;
- off_t const nOffset = sal::static_int_cast< off_t >(uOffset);
-
- static sal_uInt64 const g_limit_ssize_t = std::numeric_limits< ssize_t >::max();
- if (g_limit_ssize_t < uBytesToWrite)
- return osl_File_E_OVERFLOW;
- size_t const nBytesToWrite = sal::static_int_cast< size_t >(uBytesToWrite);
-
- // write at specified fileptr
- FileHandle_Impl::Guard lock (&(pImpl->m_mutex));
- return pImpl->writeFileAt (nOffset, pBuffer, nBytesToWrite, pBytesWritten);
-}
-
-/****************************************************************************/
-/* osl_isEndOfFile */
-/****************************************************************************/
-oslFileError
-SAL_CALL osl_isEndOfFile( oslFileHandle Handle, sal_Bool *pIsEOF )
-{
- FileHandle_Impl* pImpl = static_cast<FileHandle_Impl*>(Handle);
-
- if ((0 == pImpl) || (-1 == pImpl->m_fd) || (0 == pIsEOF))
- return osl_File_E_INVAL;
-
- FileHandle_Impl::Guard lock (&(pImpl->m_mutex));
- *pIsEOF = (pImpl->getPos() == pImpl->getSize());
- return osl_File_E_None;
-}
-
-/************************************************
- * osl_getFilePos
- ***********************************************/
-oslFileError
-SAL_CALL osl_getFilePos( oslFileHandle Handle, sal_uInt64* pPos )
-{
- FileHandle_Impl* pImpl = static_cast<FileHandle_Impl*>(Handle);
-
- if ((0 == pImpl) || (-1 == pImpl->m_fd) || (0 == pPos))
- return osl_File_E_INVAL;
-
- FileHandle_Impl::Guard lock (&(pImpl->m_mutex));
- *pPos = pImpl->getPos();
- return osl_File_E_None;
-}
-
-/*******************************************
- osl_setFilePos
-********************************************/
-oslFileError
-SAL_CALL osl_setFilePos (oslFileHandle Handle, sal_uInt32 uHow, sal_Int64 uOffset)
-{
- FileHandle_Impl* pImpl = static_cast<FileHandle_Impl*>(Handle);
-
- if ((0 == pImpl) || (-1 == pImpl->m_fd))
- return osl_File_E_INVAL;
-
- static sal_Int64 const g_limit_off_t = std::numeric_limits< off_t >::max();
- if (g_limit_off_t < uOffset)
- return osl_File_E_OVERFLOW;
- off_t nPos = 0, nOffset = sal::static_int_cast< off_t >(uOffset);
-
- FileHandle_Impl::Guard lock (&(pImpl->m_mutex));
- switch(uHow)
- {
- case osl_Pos_Absolut:
- if (0 > nOffset)
- return osl_File_E_INVAL;
- break;
-
- case osl_Pos_Current:
- nPos = sal::static_int_cast< off_t >(pImpl->getPos());
- if ((0 > nOffset) && (-1*nOffset > nPos))
- return osl_File_E_INVAL;
- if (g_limit_off_t < nPos + nOffset)
- return osl_File_E_OVERFLOW;
- break;
-
- case osl_Pos_End:
- nPos = sal::static_int_cast< off_t >(pImpl->getSize());
- if ((0 > nOffset) && (-1*nOffset > nPos))
- return osl_File_E_INVAL;
- if (g_limit_off_t < nPos + nOffset)
- return osl_File_E_OVERFLOW;
- break;
-
- default:
- return osl_File_E_INVAL;
- }
-
- return pImpl->setPos (nPos + nOffset);
-}
-
-/****************************************************************************
- * osl_getFileSize
- ****************************************************************************/
-oslFileError
-SAL_CALL osl_getFileSize( oslFileHandle Handle, sal_uInt64* pSize )
-{
- FileHandle_Impl* pImpl = static_cast<FileHandle_Impl*>(Handle);
-
- if ((0 == pImpl) || (-1 == pImpl->m_fd) || (0 == pSize))
- return osl_File_E_INVAL;
-
- FileHandle_Impl::Guard lock (&(pImpl->m_mutex));
- *pSize = pImpl->getSize();
- return osl_File_E_None;
-}
-
-/************************************************
- * osl_setFileSize
- ***********************************************/
-oslFileError
-SAL_CALL osl_setFileSize( oslFileHandle Handle, sal_uInt64 uSize )
-{
- FileHandle_Impl* pImpl = static_cast<FileHandle_Impl*>(Handle);
-
- if ((0 == pImpl) || (-1 == pImpl->m_fd))
- return osl_File_E_INVAL;
- if (0 == (pImpl->m_state & FileHandle_Impl::STATE_WRITEABLE))
- return osl_File_E_BADF;
-
- static sal_uInt64 const g_limit_off_t = std::numeric_limits< off_t >::max();
- if (g_limit_off_t < uSize)
- return osl_File_E_OVERFLOW;
-
- oslFileError result = pImpl->syncFile();
- if (result != osl_File_E_None)
- return (result);
- pImpl->m_bufptr = -1, pImpl->m_buflen = 0;
-
- return pImpl->setSize (uSize);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/file_error_transl.cxx b/sal/osl/unx/file_error_transl.cxx
deleted file mode 100644
index b7b334d9a..000000000
--- a/sal/osl/unx/file_error_transl.cxx
+++ /dev/null
@@ -1,256 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
- #ifndef _ERRNO_H
- #include <errno.h>
- #endif
-
- #ifndef _FILE_ERROR_TRANSL_H_
- #include "file_error_transl.h"
- #endif
-
- #ifndef _OSL_DIAGNOSE_H_
- #include <osl/diagnose.h>
- #endif
-
-
-/********************************************
- * oslTranslateFileError
- *******************************************/
-
-oslFileError oslTranslateFileError(sal_Bool bIsError, int Errno)
-{
- oslFileError osl_error = osl_File_E_invalidError;
-
- OSL_ENSURE((bIsError && (0 != Errno)) || (!bIsError && (0 == Errno)), "oslTranslateFileError strange input combination!");
-
- /* Have a look at file_error_transl.h for
- the reason that we do this here */
- if (bIsError && (0 == Errno))
- return osl_error;
-
- switch(Errno)
- {
- case 0:
- osl_error = osl_File_E_None;
- break;
-
- case EPERM:
- osl_error = osl_File_E_PERM;
- break;
-
- case ENOENT:
- osl_error = osl_File_E_NOENT;
- break;
-
- case ESRCH:
- osl_error = osl_File_E_SRCH;
- break;
-
- case EINTR:
- osl_error = osl_File_E_INTR;
- break;
-
- case EIO:
- osl_error = osl_File_E_IO;
- break;
-
- case ENXIO:
- osl_error = osl_File_E_IO;
- break;
-
- case E2BIG:
- osl_error = osl_File_E_2BIG;
- break;
-
- case ENOEXEC:
- osl_error = osl_File_E_NOEXEC;
- break;
-
- case EBADF:
- osl_error = osl_File_E_BADF;
- break;
-
- case ECHILD:
- osl_error = osl_File_E_CHILD;
- break;
-
- case EAGAIN:
- osl_error = osl_File_E_AGAIN;
- break;
-
- case ENOMEM:
- osl_error = osl_File_E_NOMEM;
- break;
-
- case EACCES:
- osl_error = osl_File_E_ACCES;
- break;
-
- case EFAULT:
- osl_error = osl_File_E_FAULT;
- break;
-
- case EBUSY:
- osl_error = osl_File_E_BUSY;
- break;
-
- case EEXIST:
- osl_error = osl_File_E_EXIST;
- break;
-
- case EXDEV:
- osl_error = osl_File_E_XDEV;
- break;
-
- case ENODEV:
- osl_error = osl_File_E_NODEV;
- break;
-
- case ENOTDIR:
- osl_error = osl_File_E_NOTDIR;
- break;
-
- case EISDIR:
- osl_error = osl_File_E_ISDIR;
- break;
-
- case EINVAL:
- osl_error = osl_File_E_INVAL;
- break;
-
- case ENFILE:
- osl_error = osl_File_E_NFILE;
- break;
-
- case EMFILE:
- osl_error = osl_File_E_MFILE;
- break;
-
- case ENOTTY:
- osl_error = osl_File_E_NOTTY;
- break;
-
- case EFBIG:
- osl_error = osl_File_E_FBIG;
- break;
-
- case ENOSPC:
- osl_error = osl_File_E_NOSPC;
- break;
-
- case ESPIPE:
- osl_error = osl_File_E_SPIPE;
- break;
-
- case EROFS:
- osl_error = osl_File_E_ROFS;
- break;
-
- case EMLINK:
- osl_error = osl_File_E_MLINK;
- break;
-
- case EPIPE:
- osl_error = osl_File_E_PIPE;
- break;
-
- case EDOM:
- osl_error = osl_File_E_DOM;
- break;
-
- case ERANGE:
- osl_error = osl_File_E_RANGE;
- break;
-
- case EDEADLK:
- osl_error = osl_File_E_DEADLK;
- break;
-
- case ENAMETOOLONG:
- osl_error = osl_File_E_NAMETOOLONG;
- break;
-
- case ENOLCK:
- osl_error = osl_File_E_NOLCK;
- break;
-
- case ENOSYS:
- osl_error = osl_File_E_NOSYS;
- break;
-
-#if !defined(AIX) || !(defined(_ALL_SOURCE) && !defined(_LINUX_SOURCE_COMPAT))
- case ENOTEMPTY:
- osl_error = osl_File_E_NOTEMPTY;
- break;
-#endif
-
- case ELOOP:
- osl_error = osl_File_E_LOOP;
- break;
-
-#if !(defined(MACOSX) || defined(NETBSD) || defined(FREEBSD) || defined(OPENBSD) || defined(DRAGONFLY))
- case EILSEQ:
- osl_error = osl_File_E_ILSEQ;
- break;
-
- case ENOLINK:
- osl_error = osl_File_E_NOLINK;
- break;
-
- case EMULTIHOP:
- osl_error = osl_File_E_MULTIHOP;
- break;
-#endif /* MACOSX */
-
- case EUSERS:
- osl_error = osl_File_E_USERS;
- break;
-
- case EOVERFLOW:
- osl_error = osl_File_E_OVERFLOW;
- break;
-
- case ETIMEDOUT:
- osl_error = osl_File_E_TIMEDOUT;
- break;
-
- default:
- /* FIXME translateFileError: is this alright? Or add a new one: osl_File_E_Unknown? */
- osl_error = osl_File_E_invalidError;
- break;
- }
-
- return osl_error;
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/file_error_transl.h b/sal/osl/unx/file_error_transl.h
deleted file mode 100644
index fbaf054fb..000000000
--- a/sal/osl/unx/file_error_transl.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _FILE_ERROR_TRANSL_H_
-#define _FILE_ERROR_TRANSL_H_
-
-#include <osl/file.h>
-#include <sal/types.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/*********************************************
- oslTranslateFileError
- Translate errno's to osl file errors
-
- @param bIsError [in] specifies if nErrno
- should be interpreted as error,
- some libc functions signaling an error
- but errno is nevertheless 0 in this
- case the function should at least
- return osl_File_E_Unknown but in no
- case osl_File_E_None!
-
- @param nErrno [in] the errno if errno is 0
- and bIsError is true the function
- returns osl_File_E_Unknown
-
- @returns the osl error code appropriate to
- the errno
-
- *********************************************/
-
-#define OSL_FET_SUCCESS sal_False
-#define OSL_FET_ERROR sal_True
-
-oslFileError oslTranslateFileError(sal_Bool bIsError, int Errno);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/file_impl.hxx b/sal/osl/unx/file_impl.hxx
deleted file mode 100644
index 591da90bc..000000000
--- a/sal/osl/unx/file_impl.hxx
+++ /dev/null
@@ -1,57 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_FILE_IMPL_HXX
-#define INCLUDED_FILE_IMPL_HXX
-
-#include "osl/file.h"
-#include <stddef.h>
-
-struct DirectoryItem_Impl
-{
- sal_Int32 m_RefCount;
-
- rtl_uString * m_ustrFilePath; /* holds native file name */
- unsigned char m_DType;
-
- explicit DirectoryItem_Impl(
- rtl_uString * ustrFilePath, unsigned char DType = 0);
- ~DirectoryItem_Impl();
-
- static void * operator new(size_t n);
- static void operator delete (void * p, size_t);
-
- void acquire(); /* @see osl_acquireDirectoryItem() */
- void release(); /* @see osl_releaseDirectoryItem() */
-
- oslFileType getFileType() const;
-};
-
-#endif /* INCLUDED_FILE_IMPL_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/file_misc.cxx b/sal/osl/unx/file_misc.cxx
deleted file mode 100644
index 319971bad..000000000
--- a/sal/osl/unx/file_misc.cxx
+++ /dev/null
@@ -1,1052 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "osl/file.hxx"
-
-#include "osl/diagnose.h"
-#include "osl/thread.h"
-#include <osl/signal.h>
-#include "rtl/alloc.h"
-
-#include "system.h"
-#include "file_impl.hxx"
-#include "file_error_transl.h"
-#include "file_path_helper.hxx"
-#include "file_url.h"
-#include "uunxapi.hxx"
-#include "readwrite_helper.h"
-
-#include <sys/types.h>
-#include <errno.h>
-#include <dirent.h>
-#include <limits.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/stat.h>
-#include <sys/mman.h>
-
-#include <algorithm>
-
-/************************************************************************
- * ToDo
- *
- * - Fix: check for corresponding struct sizes in exported functions
- * - check size/use of oslDirectory
- * - check size/use of oslDirectoryItem
- ***********************************************************************/
-/******************************************************************************
- *
- * Data Type Definition
- *
- ******************************************************************************/
-
-typedef struct
-{
- rtl_uString* ustrPath; /* holds native directory path */
- DIR* pDirStruct;
-} oslDirectoryImpl;
-
-DirectoryItem_Impl::DirectoryItem_Impl(
- rtl_uString * ustrFilePath, unsigned char DType)
- : m_RefCount (1),
- m_ustrFilePath (ustrFilePath),
- m_DType (DType)
-{
- if (m_ustrFilePath != 0)
- rtl_uString_acquire(m_ustrFilePath);
-}
-DirectoryItem_Impl::~DirectoryItem_Impl()
-{
- if (m_ustrFilePath != 0)
- rtl_uString_release(m_ustrFilePath);
-}
-
-void * DirectoryItem_Impl::operator new(size_t n)
-{
- return rtl_allocateMemory(n);
-}
-void DirectoryItem_Impl::operator delete(void * p, size_t)
-{
- rtl_freeMemory(p);
-}
-
-void DirectoryItem_Impl::acquire()
-{
- ++m_RefCount;
-}
-void DirectoryItem_Impl::release()
-{
- if (0 == --m_RefCount)
- delete this;
-}
-
-oslFileType DirectoryItem_Impl::getFileType() const
-{
- switch (m_DType)
- {
-#ifdef _DIRENT_HAVE_D_TYPE
- case DT_LNK:
- return osl_File_Type_Link;
- case DT_DIR:
- return osl_File_Type_Directory;
- case DT_REG:
- return osl_File_Type_Regular;
- case DT_FIFO:
- return osl_File_Type_Fifo;
- case DT_SOCK:
- return osl_File_Type_Socket;
- case DT_CHR:
- case DT_BLK:
- return osl_File_Type_Special;
-#endif /* _DIRENT_HAVE_D_TYPE */
- default:
- break;
- }
- return osl_File_Type_Unknown;
-}
-
-/******************************************************************************
- *
- * C-String Function Declarations
- *
- *****************************************************************************/
-
-static oslFileError osl_psz_createDirectory(const sal_Char* pszPath);
-static oslFileError osl_psz_removeDirectory(const sal_Char* pszPath);
-
-/*******************************************************************
- * osl_openDirectory
- ******************************************************************/
-
-oslFileError SAL_CALL osl_openDirectory(rtl_uString* ustrDirectoryURL, oslDirectory* pDirectory)
-{
- rtl_uString* ustrSystemPath = NULL;
- oslFileError eRet;
-
- char path[PATH_MAX];
-
- if ((0 == ustrDirectoryURL) || (0 == ustrDirectoryURL->length) || (0 == pDirectory))
- return osl_File_E_INVAL;
-
- /* convert file URL to system path */
- eRet = osl_getSystemPathFromFileURL_Ex(ustrDirectoryURL, &ustrSystemPath, sal_False);
-
- if( osl_File_E_None != eRet )
- return eRet;
-
- osl_systemPathRemoveSeparator(ustrSystemPath);
-
- /* convert unicode path to text */
- if ( UnicodeToText( path, PATH_MAX, ustrSystemPath->buffer, ustrSystemPath->length )
-#ifdef MACOSX
- && macxp_resolveAlias( path, PATH_MAX ) == 0
-#endif /* MACOSX */
- )
- {
- /* open directory */
- DIR *pdir = opendir( path );
-
- if( pdir )
- {
- /* create and initialize impl structure */
- oslDirectoryImpl* pDirImpl = (oslDirectoryImpl*) rtl_allocateMemory( sizeof(oslDirectoryImpl) );
-
- if( pDirImpl )
- {
- pDirImpl->pDirStruct = pdir;
- pDirImpl->ustrPath = ustrSystemPath;
-
- *pDirectory = (oslDirectory) pDirImpl;
- return osl_File_E_None;
- }
- else
- {
- errno = ENOMEM;
- closedir( pdir );
- }
- }
- else
- {
-#ifdef DEBUG_OSL_FILE
- perror ("osl_openDirectory"); fprintf (stderr, path);
-#endif
- }
- }
-
- rtl_uString_release( ustrSystemPath );
-
- return oslTranslateFileError(OSL_FET_ERROR, errno);
-}
-
-/****************************************************************************/
-/* osl_closeDirectory */
-/****************************************************************************/
-
-oslFileError SAL_CALL osl_closeDirectory( oslDirectory Directory )
-{
- oslDirectoryImpl* pDirImpl = (oslDirectoryImpl*) Directory;
- oslFileError err = osl_File_E_None;
-
- OSL_ASSERT( Directory );
-
- if( NULL == pDirImpl )
- return osl_File_E_INVAL;
-
- /* close directory */
- if( closedir( pDirImpl->pDirStruct ) )
- {
- err = oslTranslateFileError(OSL_FET_ERROR, errno);
- }
-
- /* cleanup members */
- rtl_uString_release( pDirImpl->ustrPath );
-
- rtl_freeMemory( pDirImpl );
-
- return err;
-}
-
-/**********************************************
- * osl_readdir_impl_
- *
- * readdir wrapper, filters out "." and ".."
- * on request
- *********************************************/
-
-static struct dirent* osl_readdir_impl_(DIR* pdir, sal_Bool bFilterLocalAndParentDir)
-{
- struct dirent* pdirent;
-
- while ((pdirent = readdir(pdir)) != NULL)
- {
- if (bFilterLocalAndParentDir &&
- ((0 == strcmp(pdirent->d_name, ".")) || (0 == strcmp(pdirent->d_name, ".."))))
- continue;
- else
- break;
- }
-
- return pdirent;
-}
-
-/****************************************************************************
- * osl_getNextDirectoryItem
- ***************************************************************************/
-
-oslFileError SAL_CALL osl_getNextDirectoryItem(oslDirectory Directory, oslDirectoryItem* pItem, sal_uInt32 /*uHint*/)
-{
- oslDirectoryImpl* pDirImpl = (oslDirectoryImpl*)Directory;
- rtl_uString* ustrFileName = NULL;
- rtl_uString* ustrFilePath = NULL;
- struct dirent* pEntry;
-
- OSL_ASSERT(Directory);
- OSL_ASSERT(pItem);
-
- if ((NULL == Directory) || (NULL == pItem))
- return osl_File_E_INVAL;
-
- pEntry = osl_readdir_impl_(pDirImpl->pDirStruct, sal_True);
-
- if (NULL == pEntry)
- return osl_File_E_NOENT;
-
-
-#if defined(MACOSX)
-
- // convert decomposed filename to precomposed unicode
- char composed_name[BUFSIZ];
- CFMutableStringRef strRef = CFStringCreateMutable (NULL, 0 );
- CFStringAppendCString( strRef, pEntry->d_name, kCFStringEncodingUTF8 ); //UTF8 is default on Mac OSX
- CFStringNormalize( strRef, kCFStringNormalizationFormC );
- CFStringGetCString( strRef, composed_name, BUFSIZ, kCFStringEncodingUTF8 );
- CFRelease( strRef );
- rtl_string2UString( &ustrFileName, composed_name, strlen( composed_name),
- osl_getThreadTextEncoding(), OSTRING_TO_OUSTRING_CVTFLAGS );
-
-#else // not MACOSX
- /* convert file name to unicode */
- rtl_string2UString( &ustrFileName, pEntry->d_name, strlen( pEntry->d_name ),
- osl_getThreadTextEncoding(), OSTRING_TO_OUSTRING_CVTFLAGS );
- OSL_ASSERT(ustrFileName != 0);
-
-#endif
-
- osl_systemPathMakeAbsolutePath(pDirImpl->ustrPath, ustrFileName, &ustrFilePath);
- rtl_uString_release( ustrFileName );
-
- DirectoryItem_Impl * pImpl = static_cast< DirectoryItem_Impl* >(*pItem);
- if (0 != pImpl)
- {
- pImpl->release(), pImpl = 0;
- }
-#ifdef _DIRENT_HAVE_D_TYPE
- pImpl = new DirectoryItem_Impl(ustrFilePath, pEntry->d_type);
-#else
- pImpl = new DirectoryItem_Impl(ustrFilePath);
-#endif /* _DIRENT_HAVE_D_TYPE */
- *pItem = pImpl;
- rtl_uString_release( ustrFilePath );
-
- return osl_File_E_None;
-}
-
-/****************************************************************************/
-/* osl_getDirectoryItem */
-/****************************************************************************/
-
-oslFileError SAL_CALL osl_getDirectoryItem( rtl_uString* ustrFileURL, oslDirectoryItem* pItem )
-{
- rtl_uString* ustrSystemPath = NULL;
- oslFileError osl_error = osl_File_E_INVAL;
-
- OSL_ASSERT((0 != ustrFileURL) && (0 != pItem));
- if ((0 == ustrFileURL) || (0 == ustrFileURL->length) || (0 == pItem))
- return osl_File_E_INVAL;
-
- osl_error = osl_getSystemPathFromFileURL_Ex(ustrFileURL, &ustrSystemPath, sal_False);
- if (osl_File_E_None != osl_error)
- return osl_error;
-
- osl_systemPathRemoveSeparator(ustrSystemPath);
-
- if (-1 == access_u(ustrSystemPath, F_OK))
- {
- osl_error = oslTranslateFileError(OSL_FET_ERROR, errno);
- }
- else
- {
- *pItem = new DirectoryItem_Impl(ustrSystemPath);
- }
- rtl_uString_release(ustrSystemPath);
-
- return osl_error;
-}
-
-
-/****************************************************************************/
-/* osl_acquireDirectoryItem */
-/****************************************************************************/
-
-oslFileError SAL_CALL osl_acquireDirectoryItem( oslDirectoryItem Item )
-{
- DirectoryItem_Impl * pImpl = static_cast< DirectoryItem_Impl* >(Item);
- if (0 == pImpl)
- return osl_File_E_INVAL;
-
- pImpl->acquire();
- return osl_File_E_None;
-}
-
-/****************************************************************************/
-/* osl_releaseDirectoryItem */
-/****************************************************************************/
-
-oslFileError SAL_CALL osl_releaseDirectoryItem( oslDirectoryItem Item )
-{
- DirectoryItem_Impl * pImpl = static_cast< DirectoryItem_Impl* >(Item);
- if (0 == pImpl)
- return osl_File_E_INVAL;
-
- pImpl->release();
- return osl_File_E_None;
-}
-
-/****************************************************************************/
-/* osl_createDirectory */
-/****************************************************************************/
-
-oslFileError SAL_CALL osl_createDirectory( rtl_uString* ustrDirectoryURL )
-{
- char path[PATH_MAX];
- oslFileError eRet;
-
- OSL_ASSERT( ustrDirectoryURL );
-
- /* convert directory url to system path */
- eRet = FileURLToPath( path, PATH_MAX, ustrDirectoryURL );
- if( eRet != osl_File_E_None )
- return eRet;
-
-#ifdef MACOSX
- if ( macxp_resolveAlias( path, PATH_MAX ) != 0 )
- return oslTranslateFileError( OSL_FET_ERROR, errno );
-#endif/* MACOSX */
-
- return osl_psz_createDirectory( path );
-}
-
-/****************************************************************************/
-/* osl_removeDirectory */
-/****************************************************************************/
-
-oslFileError SAL_CALL osl_removeDirectory( rtl_uString* ustrDirectoryURL )
-{
- char path[PATH_MAX];
- oslFileError eRet;
-
- OSL_ASSERT( ustrDirectoryURL );
-
- /* convert directory url to system path */
- eRet = FileURLToPath( path, PATH_MAX, ustrDirectoryURL );
- if( eRet != osl_File_E_None )
- return eRet;
-
-#ifdef MACOSX
- if ( macxp_resolveAlias( path, PATH_MAX ) != 0 )
- return oslTranslateFileError( OSL_FET_ERROR, errno );
-#endif/* MACOSX */
-
- return osl_psz_removeDirectory( path );
-}
-
-/*****************************************
- * osl_psz_createDirectory
- ****************************************/
-
-static oslFileError osl_psz_createDirectory( const sal_Char* pszPath )
-{
- int nRet=0;
- int mode = S_IRWXU | S_IRWXG | S_IRWXO;
-
- nRet = mkdir(pszPath,mode);
-
- if ( nRet < 0 )
- {
- nRet=errno;
- return oslTranslateFileError(OSL_FET_ERROR, nRet);
- }
-
- return osl_File_E_None;
-}
-
-/*****************************************
- * osl_psz_removeDirectory
- ****************************************/
-
-static oslFileError osl_psz_removeDirectory( const sal_Char* pszPath )
-{
- int nRet=0;
-
- nRet = rmdir(pszPath);
-
- if ( nRet < 0 )
- {
- nRet=errno;
- return oslTranslateFileError(OSL_FET_ERROR, nRet);
- }
-
- return osl_File_E_None;
-}
-
-/****************************************************************************/
-/* osl_createDirectoryPath */
-/****************************************************************************/
-
-static int path_make_parent(sal_Unicode* path)
-{
- int i = rtl_ustr_lastIndexOfChar(path, '/');
-
- if (i > 0)
- {
- *(path + i) = 0;
- return i;
- }
- else
- return 0;
-}
-
-static int create_dir_with_callback(
- sal_Unicode* directory_path,
- oslDirectoryCreationCallbackFunc aDirectoryCreationCallbackFunc,
- void* pData)
-{
- int mode = S_IRWXU | S_IRWXG | S_IRWXO;
-
- if (osl::mkdir(directory_path, mode) == 0)
- {
- if (aDirectoryCreationCallbackFunc)
- {
- rtl::OUString url;
- osl::FileBase::getFileURLFromSystemPath(directory_path, url);
- aDirectoryCreationCallbackFunc(pData, url.pData);
- }
- return 0;
- }
- return errno;
-}
-
-static oslFileError create_dir_recursively_(
- sal_Unicode* dir_path,
- oslDirectoryCreationCallbackFunc aDirectoryCreationCallbackFunc,
- void* pData)
-{
- OSL_PRECOND((rtl_ustr_getLength(dir_path) > 0) && ((dir_path + (rtl_ustr_getLength(dir_path) - 1)) != (dir_path + rtl_ustr_lastIndexOfChar(dir_path, '/'))), \
- "Path must not end with a slash");
-
- int native_err = create_dir_with_callback(
- dir_path, aDirectoryCreationCallbackFunc, pData);
-
- if (native_err == 0)
- return osl_File_E_None;
-
- if (native_err != ENOENT)
- return oslTranslateFileError(OSL_FET_ERROR, native_err);
-
- // we step back until '/a_dir' at maximum because
- // we should get an error unequal ENOENT when
- // we try to create 'a_dir' at '/' and would so
- // return before
- int pos = path_make_parent(dir_path);
-
- oslFileError osl_error = create_dir_recursively_(
- dir_path, aDirectoryCreationCallbackFunc, pData);
-
- if (osl_File_E_None != osl_error)
- return osl_error;
-
- dir_path[pos] = '/';
-
- return create_dir_recursively_(dir_path, aDirectoryCreationCallbackFunc, pData);
-}
-
-oslFileError SAL_CALL osl_createDirectoryPath(
- rtl_uString* aDirectoryUrl,
- oslDirectoryCreationCallbackFunc aDirectoryCreationCallbackFunc,
- void* pData)
-{
- if (aDirectoryUrl == NULL)
- return osl_File_E_INVAL;
-
- rtl::OUString sys_path;
- oslFileError osl_error = osl_getSystemPathFromFileURL_Ex(
- aDirectoryUrl, &sys_path.pData, sal_False);
-
- if (osl_error != osl_File_E_None)
- return osl_error;
-
- osl::systemPathRemoveSeparator(sys_path);
-
- // const_cast because sys_path is a local copy which we want to modify inplace instead of
- // coyp it into another buffer on the heap again
- return create_dir_recursively_(sys_path.pData->buffer, aDirectoryCreationCallbackFunc, pData);
-}
-
-/******************************************************************************
- *
- * C-String Function Declarations
- *
- *****************************************************************************/
-
-static oslFileError osl_psz_removeFile(const sal_Char* pszPath);
-static oslFileError osl_psz_copyFile(const sal_Char* pszPath, const sal_Char* pszDestPath);
-static oslFileError osl_psz_moveFile(const sal_Char* pszPath, const sal_Char* pszDestPath);
-
-
-/******************************************************************************
- *
- * Static Module Utility Function Declarations
- *
- *****************************************************************************/
-
-static oslFileError oslDoCopy(const sal_Char* pszSourceFileName, const sal_Char* pszDestFileName, mode_t nMode, size_t nSourceSize, int DestFileExists);
-static oslFileError oslChangeFileModes(const sal_Char* pszFileName, mode_t nMode, time_t nAcTime, time_t nModTime, uid_t nUID, gid_t nGID);
-static int oslDoCopyLink(const sal_Char* pszSourceFileName, const sal_Char* pszDestFileName);
-static int oslDoCopyFile(const sal_Char* pszSourceFileName, const sal_Char* pszDestFileName, size_t nSourceSize, mode_t mode);
-static oslFileError oslDoMoveFile(const sal_Char* pszPath, const sal_Char* pszDestPath);
-
-/****************************************************************************/
-/* osl_moveFile */
-/****************************************************************************/
-
-oslFileError SAL_CALL osl_moveFile( rtl_uString* ustrFileURL, rtl_uString* ustrDestURL )
-{
- char srcPath[PATH_MAX];
- char destPath[PATH_MAX];
- oslFileError eRet;
-
- OSL_ASSERT( ustrFileURL );
- OSL_ASSERT( ustrDestURL );
-
- /* convert source url to system path */
- eRet = FileURLToPath( srcPath, PATH_MAX, ustrFileURL );
- if( eRet != osl_File_E_None )
- return eRet;
-
- /* convert destination url to system path */
- eRet = FileURLToPath( destPath, PATH_MAX, ustrDestURL );
- if( eRet != osl_File_E_None )
- return eRet;
-
-#ifdef MACOSX
- if ( macxp_resolveAlias( srcPath, PATH_MAX ) != 0 || macxp_resolveAlias( destPath, PATH_MAX ) != 0 )
- return oslTranslateFileError( OSL_FET_ERROR, errno );
-#endif/* MACOSX */
-
- return oslDoMoveFile( srcPath, destPath );
-}
-
-/****************************************************************************/
-/* osl_copyFile */
-/****************************************************************************/
-
-oslFileError SAL_CALL osl_copyFile( rtl_uString* ustrFileURL, rtl_uString* ustrDestURL )
-{
- char srcPath[PATH_MAX];
- char destPath[PATH_MAX];
- oslFileError eRet;
-
- OSL_ASSERT( ustrFileURL );
- OSL_ASSERT( ustrDestURL );
-
- /* convert source url to system path */
- eRet = FileURLToPath( srcPath, PATH_MAX, ustrFileURL );
- if( eRet != osl_File_E_None )
- return eRet;
-
- /* convert destination url to system path */
- eRet = FileURLToPath( destPath, PATH_MAX, ustrDestURL );
- if( eRet != osl_File_E_None )
- return eRet;
-
-#ifdef MACOSX
- if ( macxp_resolveAlias( srcPath, PATH_MAX ) != 0 || macxp_resolveAlias( destPath, PATH_MAX ) != 0 )
- return oslTranslateFileError( OSL_FET_ERROR, errno );
-#endif/* MACOSX */
-
- return osl_psz_copyFile( srcPath, destPath );
-}
-
-/****************************************************************************/
-/* osl_removeFile */
-/****************************************************************************/
-
-oslFileError SAL_CALL osl_removeFile( rtl_uString* ustrFileURL )
-{
- char path[PATH_MAX];
- oslFileError eRet;
-
- OSL_ASSERT( ustrFileURL );
-
- /* convert file url to system path */
- eRet = FileURLToPath( path, PATH_MAX, ustrFileURL );
- if( eRet != osl_File_E_None )
- return eRet;
-
-#ifdef MACOSX
- if ( macxp_resolveAlias( path, PATH_MAX ) != 0 )
- return oslTranslateFileError( OSL_FET_ERROR, errno );
-#endif/* MACOSX */
-
- return osl_psz_removeFile( path );
-}
-
-/******************************************************************************
- *
- * Utility Functions
- *
- *****************************************************************************/
-
-/*****************************************
- * oslDoMoveFile
- ****************************************/
-
-static oslFileError oslDoMoveFile( const sal_Char* pszPath, const sal_Char* pszDestPath)
-{
- oslFileError tErr=osl_File_E_invalidError;
-
- tErr = osl_psz_moveFile(pszPath,pszDestPath);
- if ( tErr == osl_File_E_None )
- {
- return tErr;
- }
-
- if ( tErr != osl_File_E_XDEV )
- {
- return tErr;
- }
-
- tErr=osl_psz_copyFile(pszPath,pszDestPath);
-
- if ( tErr != osl_File_E_None )
- {
- osl_psz_removeFile(pszDestPath);
- return tErr;
- }
-
- tErr=osl_psz_removeFile(pszPath);
-
- return tErr;
-}
-
-/*****************************************
- * osl_psz_removeFile
- ****************************************/
-static oslFileError osl_psz_removeFile( const sal_Char* pszPath )
-{
- int nRet=0;
- struct stat aStat;
-
- nRet = lstat(pszPath,&aStat);
- if ( nRet < 0 )
- {
- nRet=errno;
- return oslTranslateFileError(OSL_FET_ERROR, nRet);
- }
-
- if ( S_ISDIR(aStat.st_mode) )
- {
- return osl_File_E_ISDIR;
- }
-
- nRet = unlink(pszPath);
- if ( nRet < 0 )
- {
- nRet=errno;
- return oslTranslateFileError(OSL_FET_ERROR, nRet);
- }
-
- return osl_File_E_None;
-}
-
-/*****************************************
- * osl_psz_moveFile
- ****************************************/
-
-static oslFileError osl_psz_moveFile(const sal_Char* pszPath, const sal_Char* pszDestPath)
-{
-
- int nRet = 0;
-
- nRet = rename(pszPath,pszDestPath);
-
- if ( nRet < 0 )
- {
- nRet=errno;
- return oslTranslateFileError(OSL_FET_ERROR, nRet);
- }
-
- return osl_File_E_None;
-}
-
-/*****************************************
- * osl_psz_copyFile
- ****************************************/
-
-static oslFileError osl_psz_copyFile( const sal_Char* pszPath, const sal_Char* pszDestPath )
-{
- time_t nAcTime=0;
- time_t nModTime=0;
- uid_t nUID=0;
- gid_t nGID=0;
- int nRet=0;
- mode_t nMode=0;
- struct stat aFileStat;
- oslFileError tErr=osl_File_E_invalidError;
- size_t nSourceSize=0;
- int DestFileExists=1;
-
- /* mfe: does the source file really exists? */
- nRet = lstat(pszPath,&aFileStat);
-
- if ( nRet < 0 )
- {
- nRet=errno;
- return oslTranslateFileError(OSL_FET_ERROR, nRet);
- }
-
- /* mfe: we do only copy files here! */
- if ( S_ISDIR(aFileStat.st_mode) )
- {
- return osl_File_E_ISDIR;
- }
-
- nSourceSize=(size_t)aFileStat.st_size;
- nMode=aFileStat.st_mode;
- nAcTime=aFileStat.st_atime;
- nModTime=aFileStat.st_mtime;
- nUID=aFileStat.st_uid;
- nGID=aFileStat.st_gid;
-
- nRet = stat(pszDestPath,&aFileStat);
- if ( nRet < 0 )
- {
- nRet=errno;
-
- if ( nRet == ENOENT )
- {
- DestFileExists=0;
- }
-/* return oslTranslateFileError(nRet);*/
- }
-
- /* mfe: the destination file must not be a directory! */
- if ( nRet == 0 && S_ISDIR(aFileStat.st_mode) )
- {
- return osl_File_E_ISDIR;
- }
- else
- {
- /* mfe: file does not exists or is no dir */
- }
-
- tErr = oslDoCopy(pszPath,pszDestPath,nMode,nSourceSize,DestFileExists);
-
- if ( tErr != osl_File_E_None )
- {
- return tErr;
- }
-
- /*
- * mfe: ignore return code
- * since only the success of the copy is
- * important
- */
- oslChangeFileModes(pszDestPath,nMode,nAcTime,nModTime,nUID,nGID);
-
- return tErr;
-}
-
-
-/******************************************************************************
- *
- * Utility Functions
- *
- *****************************************************************************/
-
-/*****************************************
- * oslDoCopy
- ****************************************/
-
-#define TMP_DEST_FILE_EXTENSION ".osl-tmp"
-
-static oslFileError oslDoCopy(const sal_Char* pszSourceFileName, const sal_Char* pszDestFileName, mode_t nMode, size_t nSourceSize, int DestFileExists)
-{
- int nRet=0;
- sal_Char pszTmpDestFile[PATH_MAX];
- size_t size_tmp_dest_buff = sizeof(pszTmpDestFile);
-
- /* Quick fix for #106048, the whole copy file function seems
- to be erroneous anyway and needs to be rewritten.
- Besides osl_copyFile is currently not used from OO/SO code.
- */
- memset(pszTmpDestFile, 0, size_tmp_dest_buff);
-
- if ( DestFileExists )
- {
- strncpy(pszTmpDestFile, pszDestFileName, size_tmp_dest_buff - 1);
-
- if ((strlen(pszTmpDestFile) + strlen(TMP_DEST_FILE_EXTENSION)) >= size_tmp_dest_buff)
- return osl_File_E_NAMETOOLONG;
-
- strncat(pszTmpDestFile, TMP_DEST_FILE_EXTENSION, strlen(TMP_DEST_FILE_EXTENSION));
-
- /* FIXME: what if pszTmpDestFile already exists? */
- /* with getcanonical??? */
- nRet=rename(pszDestFileName,pszTmpDestFile);
- }
-
- /* mfe: should be S_ISREG */
- if ( !S_ISLNK(nMode) )
- {
- /* copy SourceFile to DestFile */
- nRet = oslDoCopyFile(pszSourceFileName,pszDestFileName,nSourceSize, nMode);
- }
- /* mfe: OK redundant at the moment */
- else if ( S_ISLNK(nMode) )
- {
- nRet = oslDoCopyLink(pszSourceFileName,pszDestFileName);
- }
- else
- {
- /* mfe: what to do here? */
- nRet=ENOSYS;
- }
-
- if ( nRet > 0 && DestFileExists == 1 )
- {
- unlink(pszDestFileName);
- rename(pszTmpDestFile,pszDestFileName);
- }
-
- if ( nRet > 0 )
- {
- return oslTranslateFileError(OSL_FET_ERROR, nRet);
- }
-
- if ( DestFileExists == 1 )
- {
- unlink(pszTmpDestFile);
- }
-
- return osl_File_E_None;
-}
-
-/*****************************************
- * oslChangeFileModes
- ****************************************/
-
-static oslFileError oslChangeFileModes( const sal_Char* pszFileName, mode_t nMode, time_t nAcTime, time_t nModTime, uid_t nUID, gid_t nGID)
-{
- int nRet=0;
- struct utimbuf aTimeBuffer;
-
- nRet = chmod(pszFileName,nMode);
- if ( nRet < 0 )
- {
- nRet=errno;
- return oslTranslateFileError(OSL_FET_ERROR, nRet);
- }
-
- aTimeBuffer.actime=nAcTime;
- aTimeBuffer.modtime=nModTime;
- nRet=utime(pszFileName,&aTimeBuffer);
- if ( nRet < 0 )
- {
- nRet=errno;
- return oslTranslateFileError(OSL_FET_ERROR, nRet);
- }
-
- if ( nUID != getuid() )
- {
- nUID=getuid();
- }
-
- nRet=chown(pszFileName,nUID,nGID);
- if ( nRet < 0 )
- {
- nRet=errno;
-
- /* mfe: do not return an error here! */
- /* return oslTranslateFileError(nRet);*/
- }
-
- return osl_File_E_None;
-}
-
-/*****************************************
- * oslDoCopyLink
- ****************************************/
-
-static int oslDoCopyLink(const sal_Char* pszSourceFileName, const sal_Char* pszDestFileName)
-{
- int nRet=0;
-
- /* mfe: if dest file is symbolic link remove the link and place the file instead (hro says so) */
- /* mfe: if source is a link copy the link and not the file it points to (hro says so) */
- sal_Char pszLinkContent[PATH_MAX];
-
- pszLinkContent[0] = '\0';
-
- nRet = readlink(pszSourceFileName,pszLinkContent,PATH_MAX);
-
- if ( nRet < 0 )
- {
- nRet=errno;
- return nRet;
- }
- else
- pszLinkContent[ nRet ] = 0;
-
- nRet = symlink(pszLinkContent,pszDestFileName);
-
- if ( nRet < 0 )
- {
- nRet=errno;
- return nRet;
- }
-
- return 0;
-}
-
-/*****************************************
- * oslDoCopyFile
- ****************************************/
-
-static int oslDoCopyFile(const sal_Char* pszSourceFileName, const sal_Char* pszDestFileName, size_t nSourceSize, mode_t mode)
-{
- int SourceFileFD=0;
- int DestFileFD=0;
- int nRet=0;
-
- SourceFileFD=open(pszSourceFileName,O_RDONLY);
- if ( SourceFileFD < 0 )
- {
- nRet=errno;
- return nRet;
- }
-
- DestFileFD=open(pszDestFileName, O_WRONLY | O_CREAT, mode);
-
- if ( DestFileFD < 0 )
- {
- nRet=errno;
- close(SourceFileFD);
- return nRet;
- }
-
- size_t nRemains = nSourceSize;
-
- if ( nRemains )
- {
- /* mmap has problems, try the direct streaming */
- char pBuffer[0x7FFF];
-
- do
- {
- size_t nToRead = std::min( sizeof(pBuffer), nRemains );
- sal_Bool succeeded = safeRead( SourceFileFD, pBuffer, nToRead );
- if ( !succeeded )
- break;
-
- succeeded = safeWrite( DestFileFD, pBuffer, nToRead );
- if ( !succeeded )
- break;
-
- nRemains -= nToRead;
- }
- while( nRemains );
- }
-
- if ( nRemains )
- {
- if ( errno )
- nRet = errno;
- else
- nRet = ENOSPC;
- }
-
- close( SourceFileFD );
- if ( close( DestFileFD ) == -1 && nRet == 0 )
- nRet = errno;
-
- return nRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/file_path_helper.cxx b/sal/osl/unx/file_path_helper.cxx
deleted file mode 100644
index 578b205a6..000000000
--- a/sal/osl/unx/file_path_helper.cxx
+++ /dev/null
@@ -1,351 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
- /*******************************************
- Includes
- ******************************************/
-
- #ifndef _OSL_FILE_PATH_HELPER_H_
- #include "file_path_helper.h"
- #endif
-
- #ifndef _OSL_FILE_PATH_HELPER_HXX_
- #include "file_path_helper.hxx"
- #endif
-
- #ifndef _OSL_UUNXAPI_HXX_
- #include "uunxapi.hxx"
- #endif
-
- #ifndef _OSL_DIAGNOSE_H_
- #include <osl/diagnose.h>
- #endif
-
- #ifndef _RTL_USTRING_HXX_
- #include <rtl/ustring.hxx>
- #endif
-
- /*******************************************
- Constants
- ******************************************/
-
- const sal_Unicode FPH_CHAR_PATH_SEPARATOR = (sal_Unicode)'/';
- const sal_Unicode FPH_CHAR_DOT = (sal_Unicode)'.';
- const sal_Unicode FPH_CHAR_COLON = (sal_Unicode)':';
-
- inline const rtl::OUString FPH_PATH_SEPARATOR()
- { return rtl::OUString(FPH_CHAR_PATH_SEPARATOR); }
- inline const rtl::OUString FPH_LOCAL_DIR_ENTRY()
- { return rtl::OUString(FPH_CHAR_PATH_SEPARATOR); }
- inline const rtl::OUString FPH_PARENT_DIR_ENTRY()
- { return rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("..")); }
-
- /*******************************************
- * osl_systemPathRemoveSeparator
- ******************************************/
-
- void SAL_CALL osl_systemPathRemoveSeparator(rtl_uString* pustrPath)
- {
- OSL_PRECOND(0 != pustrPath, "osl_systemPathRemoveSeparator: Invalid parameter");
- if (0 != pustrPath)
- {
- // maybe there are more than one separator at end
- // so we run in a loop
- while ((pustrPath->length > 1) && (FPH_CHAR_PATH_SEPARATOR == pustrPath->buffer[pustrPath->length - 1]))
- {
- pustrPath->length--;
- pustrPath->buffer[pustrPath->length] = (sal_Unicode)'\0';
- }
-
- OSL_POSTCOND((0 == pustrPath->length) || (1 == pustrPath->length) || \
- (pustrPath->length > 1 && pustrPath->buffer[pustrPath->length - 1] != FPH_CHAR_PATH_SEPARATOR), \
- "osl_systemPathRemoveSeparator: Post condition failed");
- }
- }
-
- /*******************************************
- osl_systemPathEnsureSeparator
- ******************************************/
-
- void SAL_CALL osl_systemPathEnsureSeparator(rtl_uString** ppustrPath)
- {
- OSL_PRECOND((0 != ppustrPath) && (0 != *ppustrPath), "osl_systemPathEnsureSeparator: Invalid parameter");
- if ((0 != ppustrPath) && (0 != *ppustrPath))
- {
- rtl::OUString path(*ppustrPath);
- sal_Int32 lp = path.getLength();
- sal_Int32 i = path.lastIndexOf(FPH_CHAR_PATH_SEPARATOR);
-
- if ((lp > 1 && i != (lp - 1)) || ((lp < 2) && i < 0))
- {
- path += FPH_PATH_SEPARATOR();
- rtl_uString_assign(ppustrPath, path.pData);
- }
-
- OSL_POSTCOND(path.lastIndexOf(FPH_CHAR_PATH_SEPARATOR) == (path.getLength() - 1), \
- "osl_systemPathEnsureSeparator: Post condition failed");
- }
- }
-
- /*******************************************
- * osl_systemPathIsRelativePath
- ******************************************/
-
- sal_Bool SAL_CALL osl_systemPathIsRelativePath(const rtl_uString* pustrPath)
- {
- OSL_PRECOND(0 != pustrPath, "osl_systemPathIsRelativePath: Invalid parameter");
- return ((0 == pustrPath) || (0 == pustrPath->length) || (pustrPath->buffer[0] != FPH_CHAR_PATH_SEPARATOR));
- }
-
- /******************************************
- osl_systemPathMakeAbsolutePath
- *****************************************/
-
- void SAL_CALL osl_systemPathMakeAbsolutePath(
- const rtl_uString* pustrBasePath,
- const rtl_uString* pustrRelPath,
- rtl_uString** ppustrAbsolutePath)
-{
- rtl::OUString base(rtl_uString_getStr(const_cast<rtl_uString*>(pustrBasePath)));
- rtl::OUString rel(const_cast<rtl_uString*>(pustrRelPath));
-
- if (base.getLength() > 0)
- osl_systemPathEnsureSeparator(&base.pData);
-
- base += rel;
-
- rtl_uString_acquire(base.pData);
- *ppustrAbsolutePath = base.pData;
-}
-
-
- /*******************************************
- osl_systemPathGetFileOrLastDirectoryPart
- ******************************************/
-
- void SAL_CALL osl_systemPathGetFileNameOrLastDirectoryPart(
- const rtl_uString* pustrPath,
- rtl_uString** ppustrFileNameOrLastDirPart)
-{
- OSL_PRECOND(pustrPath && ppustrFileNameOrLastDirPart, \
- "osl_systemPathGetFileNameOrLastDirectoryPart: Invalid parameter");
-
- rtl::OUString path(const_cast<rtl_uString*>(pustrPath));
-
- osl_systemPathRemoveSeparator(path.pData);
-
- rtl::OUString last_part;
-
- if (path.getLength() > 1 || (1 == path.getLength() && *path.getStr() != FPH_CHAR_PATH_SEPARATOR))
- {
- sal_Int32 idx_ps = path.lastIndexOf(FPH_CHAR_PATH_SEPARATOR);
- idx_ps++; // always right to increment by one even if idx_ps == -1!
- last_part = rtl::OUString(path.getStr() + idx_ps);
- }
- rtl_uString_assign(ppustrFileNameOrLastDirPart, last_part.pData);
-}
-
-
- /********************************************
- osl_systemPathIsHiddenFileOrDirectoryEntry
- *********************************************/
-
- sal_Bool SAL_CALL osl_systemPathIsHiddenFileOrDirectoryEntry(
- const rtl_uString* pustrPath)
-{
- OSL_PRECOND(0 != pustrPath, "osl_systemPathIsHiddenFileOrDirectoryEntry: Invalid parameter");
- if ((0 == pustrPath) || (0 == pustrPath->length))
- return sal_False;
-
- rtl::OUString fdp;
- osl_systemPathGetFileNameOrLastDirectoryPart(pustrPath, &fdp.pData);
-
- return ((fdp.pData->length > 0) &&
- (fdp.pData->buffer[0] == FPH_CHAR_DOT) &&
- !osl_systemPathIsLocalOrParentDirectoryEntry(fdp.pData));
-}
-
-
- /************************************************
- osl_systemPathIsLocalOrParentDirectoryEntry
- ************************************************/
-
-sal_Bool SAL_CALL osl_systemPathIsLocalOrParentDirectoryEntry(
- const rtl_uString* pustrPath)
-{
- OSL_PRECOND(pustrPath, "osl_systemPathIsLocalOrParentDirectoryEntry: Invalid parameter");
-
- rtl::OUString dirent;
-
- osl_systemPathGetFileNameOrLastDirectoryPart(pustrPath, &dirent.pData);
-
- return (
- (dirent == FPH_LOCAL_DIR_ENTRY()) ||
- (dirent == FPH_PARENT_DIR_ENTRY())
- );
-}
-
-/***********************************************
- Simple iterator for a path list separated by
- the specified character
- **********************************************/
-
-class path_list_iterator
-{
-public:
-
- /******************************************
- constructor
-
- after construction get_current_item
- returns the first path in list, no need
- to call reset first
- *****************************************/
- path_list_iterator(const rtl::OUString& path_list, sal_Unicode list_separator = FPH_CHAR_COLON) :
- m_path_list(path_list),
- m_end(m_path_list.getStr() + m_path_list.getLength() + 1),
- m_separator(list_separator)
- {
- reset();
- }
-
- /******************************************
- reset the iterator
- *****************************************/
- void reset()
- {
- m_path_segment_begin = m_path_segment_end = m_path_list.getStr();
- advance();
- }
-
- /******************************************
- move the iterator to the next position
- *****************************************/
- void next()
- {
- OSL_PRECOND(!done(), "path_list_iterator: Already done!");
-
- m_path_segment_begin = ++m_path_segment_end;
- advance();
- }
-
- /******************************************
- check if done
- *****************************************/
- bool done() const
- {
- return (m_path_segment_end >= m_end);
- }
-
- /******************************************
- return the current item
- *****************************************/
- rtl::OUString get_current_item() const
- {
- return rtl::OUString(
- m_path_segment_begin,
- (m_path_segment_end - m_path_segment_begin));
- }
-
-private:
-
- /******************************************
- move m_path_end to the next separator or
- to the edn of the string
- *****************************************/
- void advance()
- {
- while (!done() && *m_path_segment_end && (*m_path_segment_end != m_separator))
- ++m_path_segment_end;
-
- OSL_ASSERT(m_path_segment_end <= m_end);
- }
-
-private:
- rtl::OUString m_path_list;
- const sal_Unicode* m_end;
- const sal_Unicode m_separator;
- const sal_Unicode* m_path_segment_begin;
- const sal_Unicode* m_path_segment_end;
-
-// prevent copy and assignment
-private:
- /******************************************
- copy constructor
- remember: do not simply copy m_path_begin
- and m_path_end because they point to
- the memory of other.m_path_list!
- *****************************************/
- path_list_iterator(const path_list_iterator& other);
-
- /******************************************
- assignment operator
- remember: do not simply copy m_path_begin
- and m_path_end because they point to
- the memory of other.m_path_list!
- *****************************************/
- path_list_iterator& operator=(const path_list_iterator& other);
-};
-
- /************************************************
- osl_searchPath
- ***********************************************/
-
-sal_Bool SAL_CALL osl_searchPath(
- const rtl_uString* pustrFilePath,
- const rtl_uString* pustrSearchPathList,
- rtl_uString** ppustrPathFound)
-{
- OSL_PRECOND(pustrFilePath && pustrSearchPathList && ppustrPathFound, "osl_searchPath: Invalid parameter");
-
- bool bfound = false;
- rtl::OUString fp(const_cast<rtl_uString*>(pustrFilePath));
- rtl::OUString pl = rtl::OUString(const_cast<rtl_uString*>(pustrSearchPathList));
- path_list_iterator pli(pl);
-
- while (!pli.done())
- {
- rtl::OUString p = pli.get_current_item();
- osl::systemPathEnsureSeparator(p);
- p += fp;
-
- if (osl::access(p, F_OK) > -1)
- {
- bfound = true;
- rtl_uString_assign(ppustrPathFound, p.pData);
- break;
- }
- pli.next();
- }
- return bfound;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/file_path_helper.h b/sal/osl/unx/file_path_helper.h
deleted file mode 100644
index 9ccadfd6c..000000000
--- a/sal/osl/unx/file_path_helper.h
+++ /dev/null
@@ -1,250 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
- #ifndef _OSL_FILE_PATH_HELPER_H_
- #define _OSL_FILE_PATH_HELPER_H_
-
-
- #ifndef _SAL_TYPES_H_
- #include <sal/types.h>
- #endif
-
- #ifndef _RTL_USTRING_H_
- #include <rtl/ustring.h>
- #endif
-
-
- #ifdef __cplusplus
- extern "C"
- {
- #endif
-
-
- /*******************************************
- osl_systemPathRemoveSeparator
- Removes the last separator from the
- given system path if any and if the path
- is not the root path '/'
-
- @param ppustrPath [inout] a system path
- if the path is not the root path
- and the last character is a
- path separator it will be cut off
- ppustrPath must not be NULL and
- must point to a valid rtl_uString
-
- @returns nothing
-
- ******************************************/
-
- void SAL_CALL osl_systemPathRemoveSeparator(
- /*inout*/ rtl_uString* pustrPath);
-
- /*******************************************
- osl_systemPathEnsureSeparator
- Adds a trailing path separator to the
- given system path if not already there
- and if the path is not the root path '/'
-
- @param pustrPath [inout] a system path
- if the path is not the root path
- '/' and has no trailing separator
- a separator will be added
- ppustrPath must not be NULL and
- must point to a valid rtl_uString
-
- @returns nothing
-
- ******************************************/
-
- void SAL_CALL osl_systemPathEnsureSeparator(
- /*inout*/ rtl_uString** ppustrPath);
-
- /*******************************************
- osl_systemPathIsRelativePath
- Returns true if the given path is a
- relative path and so starts not with '/'
-
- @param pustrPath [in] a system path
- pustrPath must not be NULL
-
- @returns sal_True if the given path
- doesn't start with a separator
- else sal_False will be returned
-
- ******************************************/
-
- sal_Bool SAL_CALL osl_systemPathIsRelativePath(
- const rtl_uString* pustrPath);
-
- /******************************************
- osl_systemPathMakeAbsolutePath
- Append a relative path to a base path
-
- @param pustrBasePath [in] a system
- path that will be considered as
- base path
- pustrBasePath must not be NULL
-
- @param pustrRelPath [in] a system path
- that will be considered as
- relative path
- pustrBasePath must not be NULL
-
- @param ppustrAbsolutePath [out] the
- resulting path which is a
- concatination of the base and
- the relative path
- if base path is empty the
- resulting absolute path is the
- relative path
- if relative path is empty the
- resulting absolute path is the
- base path
- if base and relative path are
- empty the resulting absolute
- path is also empty
- ppustrAbsolutePath must not be
- NULL and *ppustrAbsolutePath
- must be 0 or point to a valid
- rtl_uString
-
- *****************************************/
-
- void SAL_CALL osl_systemPathMakeAbsolutePath(
- const rtl_uString* pustrBasePath,
- const rtl_uString* pustrRelPath,
- rtl_uString** ppustrAbsolutePath);
-
- /*****************************************
- osl_systemPathGetFileOrLastDirectoryPart
- Returns the file or the directory part
- of the given path
-
- @param pustrPath [in] a system path,
- must not be NULL
-
- @param ppustrFileOrDirPart [out] on
- return receives the last part
- of the given directory or the
- file name
- if pustrPath is the root path
- '/' an empty string will be
- returned
- if pustrPath has a trailing
- '/' the last part before the
- '/' will be returned else
- the part after the last '/'
- will be returned
-
- @returns nothing
-
- ****************************************/
- void SAL_CALL osl_systemPathGetFileNameOrLastDirectoryPart(
- const rtl_uString* pustrPath,
- rtl_uString** ppustrFileNameOrLastDirPart);
-
-
- /********************************************
- osl_systemPathIsHiddenFileOrDirectoryEntry
- Returns sal_True if the last part of
- given system path is not '.' or '..'
- alone and starts with a '.'
-
- @param pustrPath [in] a system path,
- must not be NULL
-
- @returns sal_True if the last part of
- the given system path starts
- with '.' or sal_False the last
- part is '.' or '..' alone or
- doesn't start with a dot
-
- *********************************************/
-
- sal_Bool SAL_CALL osl_systemPathIsHiddenFileOrDirectoryEntry(
- const rtl_uString* pustrPath);
-
-
- /************************************************
- osl_systemPathIsLocalOrParentDirectoryEntry
- Returns sal_True if the last part of the given
- system path is the local directory entry '.'
- or the parent directory entry '..'
-
- @param pustrPath [in] a system path,
- must not be NULL
-
- @returns sal_True if the last part of the
- given system path is '.' or '..'
- else sal_False
-
- ************************************************/
-
- sal_Bool SAL_CALL osl_systemPathIsLocalOrParentDirectoryEntry(
- const rtl_uString* pustrPath);
-
-
- /************************************************
- osl_searchPath
- Searches for a file name or path name in all
- directories specified by a given path list.
- Symbolic links in the resulting path will not be
- resolved, it's up to the caller to do this.
-
- @param pustrFilePath [in] a file name or
- directory name to search for, the name must
- be provided as system path not as a file URL
-
- @param pustrSearchPathList [in] a ':'
- separated list of paths in which to search for
- the file or directory name
-
- @ppustrPathFound [out] on success receives the
- complete path of the file or directory found
- as a system path
-
- @returns sal_True if the specified file or
- directory was found else sal_False
- ***********************************************/
-
- sal_Bool SAL_CALL osl_searchPath(
- const rtl_uString* pustrFilePath,
- const rtl_uString* pustrSearchPathList,
- rtl_uString** ppustrPathFound);
-
-
- #ifdef __cplusplus
- }
- #endif
-
-
- #endif /* #ifndef _OSL_PATH_HELPER_H_ */
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/file_path_helper.hxx b/sal/osl/unx/file_path_helper.hxx
deleted file mode 100644
index 07d501b48..000000000
--- a/sal/osl/unx/file_path_helper.hxx
+++ /dev/null
@@ -1,248 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_FILE_PATH_HELPER_HXX_
-#define _OSL_FILE_PATH_HELPER_HXX_
-
-
-#include "file_path_helper.h"
-
-#include <rtl/ustring.hxx>
-
-
-namespace osl
-{
-
- /*******************************************
- systemPathRemoveSeparator
- Removes the last separator from the
- given system path if any and if the path
- is not the root path '/'
-
- @param ppustrPath [inout] a system path
- if the path is not the root path
- and the last character is a
- path separator it will be cut off
- ppustrPath must not be NULL and
- must point to a valid rtl_uString
-
- @returns nothing
-
- ******************************************/
-
- inline void systemPathRemoveSeparator(/*inout*/ rtl::OUString& Path)
- {
- osl_systemPathRemoveSeparator(Path.pData);
- }
-
- /*******************************************
- systemPathEnsureSeparator
- Adds a trailing path separator to the
- given system path if not already there
- and if the path is not the root path '/'
-
- @param pustrPath [inout] a system path
- if the path is not the root path
- '/' and has no trailing separator
- a separator will be added
- ppustrPath must not be NULL and
- must point to a valid rtl_uString
-
- @returns nothing
-
- ******************************************/
-
- inline void systemPathEnsureSeparator(/*inout*/ rtl::OUString& Path)
- {
- osl_systemPathEnsureSeparator(&Path.pData);
- }
-
- /*******************************************
- systemPathIsRelativePath
- Returns true if the given path is a
- relative path and so starts not with '/'
-
- @param pustrPath [in] a system path
- pustrPath must not be NULL
-
- @returns sal_True if the given path
- doesn't start with a separator
- else sal_False will be returned
-
- ******************************************/
-
- inline bool systemPathIsRelativePath(const rtl::OUString& Path)
- {
- return osl_systemPathIsRelativePath(Path.pData);
- }
-
- /******************************************
- systemPathMakeAbsolutePath
- Append a relative path to a base path
-
- @param pustrBasePath [in] a system
- path that will be considered as
- base path
- pustrBasePath must not be NULL
-
- @param pustrRelPath [in] a system path
- that will be considered as
- relative path
- pustrBasePath must not be NULL
-
- @param ppustrAbsolutePath [out] the
- resulting path which is a
- concatination of the base and
- the relative path
- if base path is empty the
- resulting absolute path is the
- relative path
- if relative path is empty the
- resulting absolute path is the
- base path
- if base and relative path are
- empty the resulting absolute
- path is also empty
- ppustrAbsolutePath must not be
- NULL and *ppustrAbsolutePath
- must be 0 or point to a valid
- rtl_uString
-
- *****************************************/
-
- inline void systemPathMakeAbsolutePath(
- const rtl::OUString& BasePath,
- const rtl::OUString& RelPath,
- rtl::OUString& AbsolutePath)
- {
- osl_systemPathMakeAbsolutePath(
- BasePath.pData, RelPath.pData, &AbsolutePath.pData);
- }
-
- /*****************************************
- systemPathGetFileOrLastDirectoryPart
- Returns the file or the directory part
- of the given path
-
- @param pustrPath [in] a system path,
- must not be NULL
-
- @param ppustrFileOrDirPart [out] on
- return receives the last part
- of the given directory or the
- file name
- if pustrPath is the root path
- '/' an empty string will be
- returned
- if pustrPath has a trailing
- '/' the last part before the
- '/' will be returned else
- the part after the last '/'
- will be returned
-
- @returns nothing
-
- ****************************************/
-
- inline void systemPathGetFileNameOrLastDirectoryPart(
- const rtl::OUString& Path,
- rtl::OUString& FileNameOrLastDirPart)
- {
- osl_systemPathGetFileNameOrLastDirectoryPart(
- Path.pData, &FileNameOrLastDirPart.pData);
- }
-
-
- /********************************************
- systemPathIsHiddenFileOrDirectoryEntry
- Returns sal_True if the last part of
- given system path is not '.' or '..'
- alone and starts with a '.'
-
- @param pustrPath [in] a system path,
- must not be NULL
-
- @returns sal_True if the last part of
- the given system path starts
- with '.' or sal_False the last
- part is '.' or '..' alone or
- doesn't start with a dot
-
- *********************************************/
-
- inline bool systemPathIsHiddenFileOrDirectoryEntry(
- const rtl::OUString& Path)
- {
- return osl_systemPathIsHiddenFileOrDirectoryEntry(Path.pData);
- }
-
-
- /************************************************
- systemPathIsLocalOrParentDirectoryEntry
- Returns sal_True if the last part of the given
- system path is the local directory entry '.'
- or the parent directory entry '..'
-
- @param pustrPath [in] a system path,
- must not be NULL
-
- @returns sal_True if the last part of the
- given system path is '.' or '..'
- else sal_False
-
- ************************************************/
-
- inline bool systemPathIsLocalOrParentDirectoryEntry(
- const rtl::OUString& Path)
- {
- return osl_systemPathIsLocalOrParentDirectoryEntry(Path.pData);
- }
-
- /************************************************
- searchPath
- ***********************************************/
-
- inline bool searchPath(
- const rtl::OUString& ustrFilePath,
- const rtl::OUString& ustrSearchPathList,
- rtl::OUString& ustrPathFound)
- {
- return osl_searchPath(
- ustrFilePath.pData,
- ustrSearchPathList.pData,
- &ustrPathFound.pData);
- }
-
-
- } // namespace osl
-
-
- #endif /* #ifndef _OSL_PATH_HELPER_HXX_ */
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/file_stat.cxx b/sal/osl/unx/file_stat.cxx
deleted file mode 100644
index 95ecfc2e6..000000000
--- a/sal/osl/unx/file_stat.cxx
+++ /dev/null
@@ -1,495 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include "osl/file.h"
-
-#include "system.h"
-#include <sys/types.h>
-#include <dirent.h>
-#include <errno.h>
-#include <limits.h>
-#include <unistd.h>
-
-#include "file_impl.hxx"
-#include "file_error_transl.h"
-#include "file_path_helper.hxx"
-#include "file_url.h"
-#include "uunxapi.hxx"
-
-namespace /* private */
-{
-
- inline void set_file_type(const struct stat& file_stat, oslFileStatus* pStat)
- {
- /* links to directories state also to be a directory */
- if (S_ISLNK(file_stat.st_mode))
- pStat->eType = osl_File_Type_Link;
- else if (S_ISDIR(file_stat.st_mode))
- pStat->eType = osl_File_Type_Directory;
- else if (S_ISREG(file_stat.st_mode))
- pStat->eType = osl_File_Type_Regular;
- else if (S_ISFIFO(file_stat.st_mode))
- pStat->eType = osl_File_Type_Fifo;
- else if (S_ISSOCK(file_stat.st_mode))
- pStat->eType = osl_File_Type_Socket;
- else if (S_ISCHR(file_stat.st_mode) || S_ISBLK(file_stat.st_mode))
- pStat->eType = osl_File_Type_Special;
- else
- pStat->eType = osl_File_Type_Unknown;
-
- pStat->uValidFields |= osl_FileStatus_Mask_Type;
- }
-
- inline void set_file_access_mask(const struct stat& file_stat, oslFileStatus* pStat)
- {
- // user permissions
- if (S_IRUSR & file_stat.st_mode)
- pStat->uAttributes |= osl_File_Attribute_OwnRead;
-
- if (S_IWUSR & file_stat.st_mode)
- pStat->uAttributes |= osl_File_Attribute_OwnWrite;
-
- if (S_IXUSR & file_stat.st_mode)
- pStat->uAttributes |= osl_File_Attribute_OwnExe;
-
- // group permissions
- if (S_IRGRP & file_stat.st_mode)
- pStat->uAttributes |= osl_File_Attribute_GrpRead;
-
- if (S_IWGRP & file_stat.st_mode)
- pStat->uAttributes |= osl_File_Attribute_GrpWrite;
-
- if (S_IXGRP & file_stat.st_mode)
- pStat->uAttributes |= osl_File_Attribute_GrpExe;
-
- // others permissions
- if (S_IROTH & file_stat.st_mode)
- pStat->uAttributes |= osl_File_Attribute_OthRead;
-
- if (S_IWOTH & file_stat.st_mode)
- pStat->uAttributes |= osl_File_Attribute_OthWrite;
-
- if (S_IXOTH & file_stat.st_mode)
- pStat->uAttributes |= osl_File_Attribute_OthExe;
-
- pStat->uValidFields |= osl_FileStatus_Mask_Attributes;
- }
-
- inline void set_file_access_rights(const struct stat& file_stat, int S_IR, int S_IW, int S_IX, oslFileStatus* pStat)
- {
- /* we cannot really map osl_File_Attribute_ReadOnly to
- the Unix access rights, it's a Windows only flag
- that's why the following hack. We set osl_FileStatus_Mask_Attributes
- but if there is no read access for a file we clear the flag
- again to signal to the caller that there are no file attributes
- to read because that's better than to give them incorrect one.
- */
- pStat->uValidFields |= osl_FileStatus_Mask_Attributes;
-
- if ((0 == (S_IW & file_stat.st_mode)) && (S_IR & file_stat.st_mode))
- pStat->uAttributes |= osl_File_Attribute_ReadOnly;
-
- if (S_IX & file_stat.st_mode)
- pStat->uAttributes |= osl_File_Attribute_Executable;
- }
-
- /* a process may belong to up to NGROUPS_MAX groups, so when
- checking group access rights, we have to check all belonging
- groups */
- inline bool is_in_process_grouplist(const gid_t file_group)
- {
- // check primary process group
-
- if (getgid() == file_group)
- return true;
-
- // check supplementary process groups
-
- gid_t grplist[NGROUPS_MAX];
- int grp_number = getgroups(NGROUPS_MAX, grplist);
-
- for (int i = 0; i < grp_number; i++)
- {
- if (grplist[i] == file_group)
- return true;
- }
- return false;
- }
-
- /* Currently we are determining the file access right based
- on the real user ID not the effective user ID!
- We don't use access(...) because access follows links which
- may cause performance problems see #97133.
- */
- inline void set_file_access_rights(const struct stat& file_stat, oslFileStatus* pStat)
- {
- if (getuid() == file_stat.st_uid)
- {
- set_file_access_rights(file_stat, S_IRUSR, S_IWUSR, S_IXUSR, pStat);
- }
- else if (is_in_process_grouplist(file_stat.st_gid))
- {
- set_file_access_rights(file_stat, S_IRGRP, S_IWGRP, S_IXGRP, pStat);
- }
- else
- {
- set_file_access_rights(file_stat, S_IROTH, S_IWOTH, S_IXOTH, pStat);
- }
- }
-
- inline void set_file_hidden_status(const rtl::OUString& file_path, oslFileStatus* pStat)
- {
- pStat->uAttributes = osl::systemPathIsHiddenFileOrDirectoryEntry(file_path) ? osl_File_Attribute_Hidden : 0;
- pStat->uValidFields |= osl_FileStatus_Mask_Attributes;
- }
-
- /* the set_file_access_rights must be called after set_file_hidden_status(...) and
- set_file_access_mask(...) because of the hack in set_file_access_rights(...) */
- inline void set_file_attributes(
- const rtl::OUString& file_path, const struct stat& file_stat, const sal_uInt32 uFieldMask, oslFileStatus* pStat)
- {
- set_file_hidden_status(file_path, pStat);
- set_file_access_mask(file_stat, pStat);
-
- // we set the file access rights only on demand
- // because it's potentially expensive
- if (uFieldMask & osl_FileStatus_Mask_Attributes)
- set_file_access_rights(file_stat, pStat);
- }
-
- inline void set_file_access_time(const struct stat& file_stat, oslFileStatus* pStat)
- {
- pStat->aAccessTime.Seconds = file_stat.st_atime;
- pStat->aAccessTime.Nanosec = 0;
- pStat->uValidFields |= osl_FileStatus_Mask_AccessTime;
- }
-
- inline void set_file_modify_time(const struct stat& file_stat, oslFileStatus* pStat)
- {
- pStat->aModifyTime.Seconds = file_stat.st_mtime;
- pStat->aModifyTime.Nanosec = 0;
- pStat->uValidFields |= osl_FileStatus_Mask_ModifyTime;
- }
-
- inline void set_file_size(const struct stat& file_stat, oslFileStatus* pStat)
- {
- if (S_ISREG(file_stat.st_mode))
- {
- pStat->uFileSize = file_stat.st_size;
- pStat->uValidFields |= osl_FileStatus_Mask_FileSize;
- }
- }
-
- /* we only need to call stat or lstat if one of the
- following flags is set */
- inline bool is_stat_call_necessary(sal_uInt32 field_mask, oslFileType file_type = osl_File_Type_Unknown)
- {
- return (
- ((field_mask & osl_FileStatus_Mask_Type) && (file_type == osl_File_Type_Unknown)) ||
- (field_mask & osl_FileStatus_Mask_Attributes) ||
- (field_mask & osl_FileStatus_Mask_CreationTime) ||
- (field_mask & osl_FileStatus_Mask_AccessTime) ||
- (field_mask & osl_FileStatus_Mask_ModifyTime) ||
- (field_mask & osl_FileStatus_Mask_FileSize) ||
- (field_mask & osl_FileStatus_Mask_LinkTargetURL) ||
- (field_mask & osl_FileStatus_Mask_Validate));
- }
-
- inline oslFileError set_link_target_url(const rtl::OUString& file_path, oslFileStatus* pStat)
- {
- rtl::OUString link_target;
- if (!osl::realpath(file_path, link_target))
- return oslTranslateFileError(OSL_FET_ERROR, errno);
-
- oslFileError osl_error = osl_getFileURLFromSystemPath(link_target.pData, &pStat->ustrLinkTargetURL);
- if (osl_error != osl_File_E_None)
- return osl_error;
-
- pStat->uValidFields |= osl_FileStatus_Mask_LinkTargetURL;
- return osl_File_E_None;
- }
-
- inline oslFileError setup_osl_getFileStatus(
- DirectoryItem_Impl * pImpl, oslFileStatus* pStat, rtl::OUString& file_path)
- {
- if ((NULL == pImpl) || (NULL == pStat))
- return osl_File_E_INVAL;
-
- file_path = rtl::OUString(pImpl->m_ustrFilePath);
- OSL_ASSERT(file_path.getLength() > 0);
- if (file_path.getLength() <= 0)
- return osl_File_E_INVAL;
-
- pStat->uValidFields = 0;
- return osl_File_E_None;
- }
-
-} // end namespace private
-
-
-/****************************************************************************
- * osl_getFileStatus
- ****************************************************************************/
-
-oslFileError SAL_CALL osl_getFileStatus(oslDirectoryItem Item, oslFileStatus* pStat, sal_uInt32 uFieldMask)
-{
- DirectoryItem_Impl * pImpl = static_cast< DirectoryItem_Impl* >(Item);
-
- rtl::OUString file_path;
- oslFileError osl_error = setup_osl_getFileStatus(pImpl, pStat, file_path);
- if (osl_File_E_None != osl_error)
- return osl_error;
-
-#if defined(__GNUC__) && (__GNUC__ < 3)
- struct ::stat file_stat;
-#else
- struct stat file_stat;
-#endif
-
- bool bStatNeeded = is_stat_call_necessary(uFieldMask, pImpl->getFileType());
- if (bStatNeeded && (0 != osl::lstat(file_path, file_stat)))
- return oslTranslateFileError(OSL_FET_ERROR, errno);
-
- if (bStatNeeded)
- {
- // we set all these attributes because it's cheap
- set_file_type(file_stat, pStat);
- set_file_access_time(file_stat, pStat);
- set_file_modify_time(file_stat, pStat);
- set_file_size(file_stat, pStat);
- set_file_attributes(file_path, file_stat, uFieldMask, pStat);
-
- // file exists semantic of osl_FileStatus_Mask_Validate
- if ((uFieldMask & osl_FileStatus_Mask_LinkTargetURL) && S_ISLNK(file_stat.st_mode))
- {
- osl_error = set_link_target_url(file_path, pStat);
- if (osl_error != osl_File_E_None)
- return osl_error;
- }
- }
-#ifdef _DIRENT_HAVE_D_TYPE
- else if (uFieldMask & osl_FileStatus_Mask_Type)
- {
- pStat->eType = pImpl->getFileType();
- pStat->uValidFields |= osl_FileStatus_Mask_Type;
- }
-#endif /* _DIRENT_HAVE_D_TYPE */
-
- if (uFieldMask & osl_FileStatus_Mask_FileURL)
- {
- if ((osl_error = osl_getFileURLFromSystemPath(file_path.pData, &pStat->ustrFileURL)) != osl_File_E_None)
- return osl_error;
-
- pStat->uValidFields |= osl_FileStatus_Mask_FileURL;
- }
-
- if (uFieldMask & osl_FileStatus_Mask_FileName)
- {
- osl_systemPathGetFileNameOrLastDirectoryPart(file_path.pData, &pStat->ustrFileName);
- pStat->uValidFields |= osl_FileStatus_Mask_FileName;
- }
- return osl_File_E_None;
-}
-
-/****************************************************************************/
-/* osl_setFileAttributes */
-/****************************************************************************/
-
-static oslFileError osl_psz_setFileAttributes( const sal_Char* pszFilePath, sal_uInt64 uAttributes )
-{
- oslFileError osl_error = osl_File_E_None;
- mode_t nNewMode = 0;
-
- OSL_ENSURE(!(osl_File_Attribute_Hidden & uAttributes), "osl_File_Attribute_Hidden doesn't work under Unix");
-
- if (uAttributes & osl_File_Attribute_OwnRead)
- nNewMode |= S_IRUSR;
-
- if (uAttributes & osl_File_Attribute_OwnWrite)
- nNewMode|=S_IWUSR;
-
- if (uAttributes & osl_File_Attribute_OwnExe)
- nNewMode|=S_IXUSR;
-
- if (uAttributes & osl_File_Attribute_GrpRead)
- nNewMode|=S_IRGRP;
-
- if (uAttributes & osl_File_Attribute_GrpWrite)
- nNewMode|=S_IWGRP;
-
- if (uAttributes & osl_File_Attribute_GrpExe)
- nNewMode|=S_IXGRP;
-
- if (uAttributes & osl_File_Attribute_OthRead)
- nNewMode|=S_IROTH;
-
- if (uAttributes & osl_File_Attribute_OthWrite)
- nNewMode|=S_IWOTH;
-
- if (uAttributes & osl_File_Attribute_OthExe)
- nNewMode|=S_IXOTH;
-
- if (chmod(pszFilePath, nNewMode) < 0)
- osl_error = oslTranslateFileError(OSL_FET_ERROR, errno);
-
- return osl_error;
-}
-
-oslFileError SAL_CALL osl_setFileAttributes( rtl_uString* ustrFileURL, sal_uInt64 uAttributes )
-{
- char path[PATH_MAX];
- oslFileError eRet;
-
- OSL_ASSERT( ustrFileURL );
-
- /* convert file url to system path */
- eRet = FileURLToPath( path, PATH_MAX, ustrFileURL );
- if( eRet != osl_File_E_None )
- return eRet;
-
-#ifdef MACOSX
- if ( macxp_resolveAlias( path, PATH_MAX ) != 0 )
- return oslTranslateFileError( OSL_FET_ERROR, errno );
-#endif/* MACOSX */
-
- return osl_psz_setFileAttributes( path, uAttributes );
-}
-
-/****************************************************************************/
-/* osl_setFileTime */
-/****************************************************************************/
-
-static oslFileError osl_psz_setFileTime (
- const sal_Char* pszFilePath,
- const TimeValue* /*pCreationTime*/,
- const TimeValue* pLastAccessTime,
- const TimeValue* pLastWriteTime )
-{
- int nRet=0;
- struct utimbuf aTimeBuffer;
- struct stat aFileStat;
-#ifdef DEBUG_OSL_FILE
- struct tm* pTM=0;
-#endif
-
- nRet = lstat(pszFilePath,&aFileStat);
-
- if ( nRet < 0 )
- {
- nRet=errno;
- return oslTranslateFileError(OSL_FET_ERROR, nRet);
- }
-
-#ifdef DEBUG_OSL_FILE
- fprintf(stderr,"File Times are (in localtime):\n");
- pTM=localtime(&aFileStat.st_ctime);
- fprintf(stderr,"CreationTime is '%s'\n",asctime(pTM));
- pTM=localtime(&aFileStat.st_atime);
- fprintf(stderr,"AccessTime is '%s'\n",asctime(pTM));
- pTM=localtime(&aFileStat.st_mtime);
- fprintf(stderr,"Modification is '%s'\n",asctime(pTM));
-
- fprintf(stderr,"File Times are (in UTC):\n");
- fprintf(stderr,"CreationTime is '%s'\n",ctime(&aFileStat.st_ctime));
- fprintf(stderr,"AccessTime is '%s'\n",ctime(&aTimeBuffer.actime));
- fprintf(stderr,"Modification is '%s'\n",ctime(&aTimeBuffer.modtime));
-#endif
-
- if ( pLastAccessTime != 0 )
- {
- aTimeBuffer.actime=pLastAccessTime->Seconds;
- }
- else
- {
- aTimeBuffer.actime=aFileStat.st_atime;
- }
-
- if ( pLastWriteTime != 0 )
- {
- aTimeBuffer.modtime=pLastWriteTime->Seconds;
- }
- else
- {
- aTimeBuffer.modtime=aFileStat.st_mtime;
- }
-
- /* mfe: Creation time not used here! */
-
-#ifdef DEBUG_OSL_FILE
- fprintf(stderr,"File Times are (in localtime):\n");
- pTM=localtime(&aFileStat.st_ctime);
- fprintf(stderr,"CreationTime now '%s'\n",asctime(pTM));
- pTM=localtime(&aTimeBuffer.actime);
- fprintf(stderr,"AccessTime now '%s'\n",asctime(pTM));
- pTM=localtime(&aTimeBuffer.modtime);
- fprintf(stderr,"Modification now '%s'\n",asctime(pTM));
-
- fprintf(stderr,"File Times are (in UTC):\n");
- fprintf(stderr,"CreationTime now '%s'\n",ctime(&aFileStat.st_ctime));
- fprintf(stderr,"AccessTime now '%s'\n",ctime(&aTimeBuffer.actime));
- fprintf(stderr,"Modification now '%s'\n",ctime(&aTimeBuffer.modtime));
-#endif
-
- nRet=utime(pszFilePath,&aTimeBuffer);
- if ( nRet < 0 )
- {
- nRet=errno;
- return oslTranslateFileError(OSL_FET_ERROR, nRet);
- }
-
- return osl_File_E_None;
-}
-
-oslFileError SAL_CALL osl_setFileTime (
- rtl_uString* ustrFileURL,
- const TimeValue* pCreationTime,
- const TimeValue* pLastAccessTime,
- const TimeValue* pLastWriteTime )
-{
- char path[PATH_MAX];
- oslFileError eRet;
-
- OSL_ASSERT( ustrFileURL );
-
- /* convert file url to system path */
- eRet = FileURLToPath( path, PATH_MAX, ustrFileURL );
- if( eRet != osl_File_E_None )
- return eRet;
-
-#ifdef MACOSX
- if ( macxp_resolveAlias( path, PATH_MAX ) != 0 )
- return oslTranslateFileError( OSL_FET_ERROR, errno );
-#endif/* MACOSX */
-
- return osl_psz_setFileTime( path, pCreationTime, pLastAccessTime, pLastWriteTime );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/file_url.cxx b/sal/osl/unx/file_url.cxx
deleted file mode 100644
index 858a7d7bb..000000000
--- a/sal/osl/unx/file_url.cxx
+++ /dev/null
@@ -1,933 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include "file_url.h"
-
-#include "system.h"
-
-#include <limits.h>
-#include <errno.h>
-#include <strings.h>
-#include <unistd.h>
-
-#include "osl/file.hxx"
-#include <osl/security.hxx>
-#include <osl/diagnose.h>
-#include <osl/thread.h>
-#include <osl/process.h>
-
-#include <rtl/uri.hxx>
-#include <rtl/ustring.hxx>
-#include <rtl/ustrbuf.h>
-#include "rtl/textcvt.h"
-
-#include "file_error_transl.h"
-#include "file_path_helper.hxx"
-
-#include "uunxapi.hxx"
-
-/***************************************************
-
- General note
-
- This file contains the part that handles File URLs.
-
- File URLs as scheme specific notion of URIs
- (RFC2396) may be handled platform independend, but
- will not in osl which is considered wrong.
- Future version of osl should handle File URLs this
- way. In rtl/uri there is already an URI parser etc.
- so this code should be consolidated.
-
- **************************************************/
-/************************************************************************
- * ToDo
- *
- * Fix osl_getCanonicalName
- *
- ***********************************************************************/
-
-
-/***************************************************
- * namespace directives
- **************************************************/
-
-using namespace osl;
-
-/***************************************************
- * constants
- **************************************************/
-
-const sal_Unicode UNICHAR_SLASH = ((sal_Unicode)'/');
-const sal_Unicode UNICHAR_COLON = ((sal_Unicode)':');
-const sal_Unicode UNICHAR_DOT = ((sal_Unicode)'.');
-
-/******************************************************************************
- *
- * Exported Module Functions
- *
- *****************************************************************************/
-
-/* a slightly modified version of Pchar in rtl/source/uri.c */
-const sal_Bool uriCharClass[128] =
-{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Pchar but without encoding slashes */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* !"#$%&'()*+,-./ */
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, /* 0123456789:;<=>? */
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* @ABCDEFGHIJKLMNO */
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /* PQRSTUVWXYZ[\]^_ */
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* `abcdefghijklmno */
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0 /* pqrstuvwxyz{|}~ */
-};
-
-
-/* check for top wrong usage strings */
-/*
-static sal_Bool findWrongUsage( const sal_Unicode *path, sal_Int32 len )
-{
- rtl_uString *pTmp = NULL;
- sal_Bool bRet;
-
- rtl_uString_newFromStr_WithLength( &pTmp, path, len );
-
- rtl_ustr_toAsciiLowerCase_WithLength( pTmp->buffer, pTmp->length );
-
- bRet = ( 0 == rtl_ustr_ascii_shortenedCompare_WithLength( pTmp->buffer, pTmp->length, "ftp://", 6 ) ) ||
- ( 0 == rtl_ustr_ascii_shortenedCompare_WithLength( pTmp->buffer, pTmp->length, "http://", 7 ) ) ||
- ( 0 == rtl_ustr_ascii_shortenedCompare_WithLength( pTmp->buffer, pTmp->length, "vnd.sun.star", 12 ) ) ||
- ( 0 == rtl_ustr_ascii_shortenedCompare_WithLength( pTmp->buffer, pTmp->length, "private:", 8 ) ) ||
- ( 0 == rtl_ustr_ascii_shortenedCompare_WithLength( pTmp->buffer, pTmp->length, "slot:", 5) );
-
- rtl_uString_release( pTmp );
- return bRet;
-}
-*/
-
-/****************************************************************************/
-/* osl_getCanonicalName */
-/****************************************************************************/
-
-oslFileError SAL_CALL osl_getCanonicalName( rtl_uString* ustrFileURL, rtl_uString** pustrValidURL )
-{
- OSL_FAIL("osl_getCanonicalName not implemented");
-
- rtl_uString_newFromString(pustrValidURL, ustrFileURL);
- return osl_File_E_None;
-}
-
-/****************************************************************************/
-/* osl_getSystemPathFromFileURL */
-/****************************************************************************/
-
-namespace {
-
-oslFileError getSystemPathFromFileUrl(
- rtl::OUString const & url, rtl::OUString * path, bool homeAbbreviation)
-{
- OSL_ASSERT(path != 0 && path->getLength() == 0);
-
- sal_Unicode const * p = url.getStr();
- sal_Unicode const * end = p + url.getLength();
-
- /* a valid file url may not start with '/' */
- if ((p == end) || (*p == UNICHAR_SLASH))
- return osl_File_E_INVAL;
-
- for (sal_Unicode const * p1 = p; p1 != end; ++p1) {
- if (*p1 == '?' || *p1 == '#' ||
- (*p1 == '%' && end - p1 >= 3 && p1[1] == '2' &&
- (p1[2] == 'F' || p1[2] == 'f')))
- {
- return osl_File_E_INVAL;
- }
- }
- sal_Unicode const * p1 = p;
- while (p1 != end && *p1 != ':' && *p1 != '/') {
- ++p1;
- }
- if (p1 != end && *p1 == ':') {
- if (rtl_ustr_ascii_compareIgnoreAsciiCase_WithLengths(
- p, p1 - p, RTL_CONSTASCII_STRINGPARAM("file")) !=
- 0)
- {
- return osl_File_E_INVAL;
- }
- p = p1 + 1;
- }
- if (end - p >= 2 && p[0] == '/' && p[1] == '/') {
- p += 2;
- sal_Int32 i = rtl_ustr_indexOfChar_WithLength(p, end - p, '/');
- p1 = i < 0 ? end : p + i;
- if (p1 != p &&
- (rtl_ustr_ascii_compareIgnoreAsciiCase_WithLengths(
- p, p1 - p, RTL_CONSTASCII_STRINGPARAM("localhost")) !=
- 0) &&
- rtl_ustr_ascii_compare_WithLength(p, p1 - p, "127.0.0.1") != 0)
- {
- return osl_File_E_INVAL;
- }
- p = p1;
- if (p == end) {
- *path = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- return osl_File_E_None;
- }
- }
- if (homeAbbreviation && end - p >= 2 && p[0] == '/' && p[1] == '~') {
- p += 2;
- sal_Int32 i = rtl_ustr_indexOfChar_WithLength(p, end - p, '/');
- p1 = i < 0 ? end : p + i;
- if (p1 == p) {
- rtl::OUString home;
- if (!osl::Security().getHomeDir(home)) {
- return osl_File_E_INVAL;
- }
- oslFileError e = getSystemPathFromFileUrl(home, path, false);
- if (e != osl_File_E_None) {
- return e;
- }
- } else {
- return osl_File_E_INVAL; //TODO
- }
- p = p1;
- }
- rtl::OUString d(
- rtl::Uri::decode(
- rtl::OUString(p, end - p), rtl_UriDecodeWithCharset,
- RTL_TEXTENCODING_UTF8));
- if (d.indexOf(0) >=0) {
- return osl_File_E_INVAL;
- }
- *path += d;
- return osl_File_E_None;
-}
-}
-
-oslFileError osl_getSystemPathFromFileURL(
- rtl_uString * pustrFileURL, rtl_uString ** ppustrSystemPath)
-{
- rtl::OUString p;
- oslFileError e = getSystemPathFromFileUrl(
- rtl::OUString(pustrFileURL), &p, true);
- if (e == osl_File_E_None) {
- rtl_uString_assign(ppustrSystemPath, p.pData);
- }
- return e;
-}
-
-/****************************************************************************/
-/* osl_getFileURLFromSystemPath */
-/****************************************************************************/
-
-oslFileError SAL_CALL osl_getFileURLFromSystemPath( rtl_uString *ustrSystemPath, rtl_uString **pustrFileURL )
-{
- static const sal_Unicode pDoubleSlash[2] = { '/', '/' };
-
- rtl_uString *pTmp = NULL;
- sal_Int32 nIndex;
-
- if( 0 == ustrSystemPath->length )
- return osl_File_E_INVAL;
-
- /* temporary hack: if already file url, return ustrSystemPath */
-
- if( 0 == rtl_ustr_ascii_shortenedCompare_WithLength( ustrSystemPath->buffer, ustrSystemPath->length,"file:", 5 ) )
- {
- /*
- if( 0 == rtl_ustr_ascii_shortenedCompare_WithLength( ustrSystemPath->buffer, ustrSystemPath->length,"file://", 7 ) )
- {
- OSL_FAIL( "osl_getFileURLFromSystemPath: input is already file URL" );
- rtl_uString_assign( pustrFileURL, ustrSystemPath );
- }
- else
- {
- rtl_uString *pTmp2 = NULL;
-
- OSL_FAIL( "osl_getFileURLFromSystemPath: input is wrong file URL" );
- rtl_uString_newFromStr_WithLength( pustrFileURL, ustrSystemPath->buffer + 5, ustrSystemPath->length - 5 );
- rtl_uString_newFromAscii( &pTmp2, "file://" );
- rtl_uString_newConcat( pustrFileURL, *pustrFileURL, pTmp2 );
- rtl_uString_release( pTmp2 );
- }
- return osl_File_E_None;
- */
- return osl_File_E_INVAL;
- }
-
-
- /* check if system path starts with ~ or ~user and replace it with the appropriate home dir */
- if( (sal_Unicode) '~' == ustrSystemPath->buffer[0] )
- {
- /* check if another user is specified */
- if( ( 1 == ustrSystemPath->length ) || ( (sal_Unicode)'/' == ustrSystemPath->buffer[1] ) )
- {
- /* osl_getHomeDir returns file URL */
- osl_getHomeDir( osl_getCurrentSecurity(), &pTmp );
-
- /* remove "file://" prefix */
- rtl_uString_newFromStr_WithLength( &pTmp, pTmp->buffer + 7, pTmp->length - 7 );
-
- /* replace '~' in original string */
- rtl_uString_newReplaceStrAt( &pTmp, ustrSystemPath, 0, 1, pTmp );
- }
-
- else
- {
- /* FIXME: replace ~user with users home directory */
- return osl_File_E_INVAL;
- }
- }
-
- /* check if initial string contains double instances of '/' */
- nIndex = rtl_ustr_indexOfStr_WithLength( ustrSystemPath->buffer, ustrSystemPath->length, pDoubleSlash, 2 );
- if( -1 != nIndex )
- {
- sal_Int32 nSrcIndex;
- sal_Int32 nDeleted = 0;
-
- /* if pTmp is not already allocated, copy ustrSystemPath for modification */
- if( NULL == pTmp )
- rtl_uString_newFromString( &pTmp, ustrSystemPath );
-
- /* adapt index to pTmp */
- nIndex += pTmp->length - ustrSystemPath->length;
-
- /* remove all occurrences of '//' */
- for( nSrcIndex = nIndex + 1; nSrcIndex < pTmp->length; nSrcIndex++ )
- {
- if( ((sal_Unicode) '/' == pTmp->buffer[nSrcIndex]) && ((sal_Unicode) '/' == pTmp->buffer[nIndex]) )
- nDeleted++;
- else
- pTmp->buffer[++nIndex] = pTmp->buffer[nSrcIndex];
- }
-
- /* adjust length member */
- pTmp->length -= nDeleted;
- }
-
- if( NULL == pTmp )
- rtl_uString_assign( &pTmp, ustrSystemPath );
-
- /* temporary check for top 5 wrong usage strings (which are valid but unlikly filenames) */
- /*
- OSL_ASSERT( !findWrongUsage( pTmp->buffer, pTmp->length ) );
- */
-
- /* file URLs must be URI encoded */
- rtl_uriEncode( pTmp, uriCharClass, rtl_UriEncodeIgnoreEscapes, RTL_TEXTENCODING_UTF8, pustrFileURL );
-
- rtl_uString_release( pTmp );
-
- /* absolute urls should start with 'file://' */
- if( (sal_Unicode)'/' == (*pustrFileURL)->buffer[0] )
- {
- rtl_uString *pProtocol = NULL;
-
- rtl_uString_newFromAscii( &pProtocol, "file://" );
- rtl_uString_newConcat( pustrFileURL, pProtocol, *pustrFileURL );
- rtl_uString_release( pProtocol );
- }
-
- return osl_File_E_None;
-}
-
-/****************************************************************************
- * osl_getSystemPathFromFileURL_Ex - helper function
- * clients may specify if they want to accept relative
- * URLs or not
- ****************************************************************************/
-
-oslFileError osl_getSystemPathFromFileURL_Ex(
- rtl_uString *ustrFileURL, rtl_uString **pustrSystemPath, sal_Bool bAllowRelative)
-{
- rtl_uString* temp = 0;
- oslFileError osl_error = osl_getSystemPathFromFileURL(ustrFileURL, &temp);
-
- if (osl_File_E_None == osl_error)
- {
- if (bAllowRelative || (UNICHAR_SLASH == temp->buffer[0]))
- {
- *pustrSystemPath = temp;
- }
- else
- {
- rtl_uString_release(temp);
- osl_error = osl_File_E_INVAL;
- }
- }
-
- return osl_error;
-}
-
-namespace /* private */
-{
-
- /******************************************************
- * Helper function, return a pinter to the final '\0'
- * of a string
- ******************************************************/
-
- sal_Unicode* ustrtoend(sal_Unicode* pStr)
- {
- return (pStr + rtl_ustr_getLength(pStr));
- }
-
- /*********************************************
-
- ********************************************/
-
- sal_Unicode* ustrchrcat(const sal_Unicode chr, sal_Unicode* d)
- {
- sal_Unicode* p = ustrtoend(d);
- *p++ = chr;
- *p = 0;
- return d;
- }
-
- /******************************************************
- *
- ******************************************************/
-
- bool _islastchr(sal_Unicode* pStr, sal_Unicode Chr)
- {
- sal_Unicode* p = ustrtoend(pStr);
- if (p > pStr)
- p--;
- return (*p == Chr);
- }
-
- /******************************************************
- * Remove the last part of a path, a path that has
- * only a '/' or no '/' at all will be returned
- * unmodified
- ******************************************************/
-
- sal_Unicode* _rmlastpathtoken(sal_Unicode* aPath)
- {
- /* we always may skip -2 because we
- may at least stand on a '/' but
- either there is no other character
- before this '/' or it's another
- character than the '/'
- */
- sal_Unicode* p = ustrtoend(aPath) - 2;
-
- // move back to the next path separator
- // or to the start of the string
- while ((p > aPath) && (*p != UNICHAR_SLASH))
- p--;
-
- if (p >= aPath)
- {
- if (UNICHAR_SLASH == *p)
- {
- p++;
- *p = '\0';
- }
- else
- {
- *p = '\0';
- }
- }
-
- return aPath;
- }
-
- /******************************************************
- *
- ******************************************************/
-
- oslFileError _osl_resolvepath(
- /*inout*/ sal_Unicode* path,
- /*inout*/ bool* failed)
- {
- oslFileError ferr = osl_File_E_None;
-
- if (!*failed)
- {
- char unresolved_path[PATH_MAX];
- if (!UnicodeToText(unresolved_path, sizeof(unresolved_path), path, rtl_ustr_getLength(path)))
- return oslTranslateFileError(OSL_FET_ERROR, ENAMETOOLONG);
-
- char resolved_path[PATH_MAX];
- if (realpath(unresolved_path, resolved_path))
- {
- if (!TextToUnicode(resolved_path, strlen(resolved_path), path, PATH_MAX))
- return oslTranslateFileError(OSL_FET_ERROR, ENAMETOOLONG);
-
- }
- else
- {
- if (EACCES == errno || ENOTDIR == errno || ENOENT == errno)
- *failed = true;
- else
- ferr = oslTranslateFileError(OSL_FET_ERROR, errno);
- }
- }
-
- return ferr;
- }
-
- /******************************************************
- * Works even with non existing paths. The resulting
- * path must not exceed PATH_MAX else
- * osl_File_E_NAMETOOLONG is the result
- ******************************************************/
-
- oslFileError osl_getAbsoluteFileURL_impl_(const rtl::OUString& unresolved_path, rtl::OUString& resolved_path)
- {
- // the given unresolved path must not exceed PATH_MAX
- if (unresolved_path.getLength() >= (PATH_MAX - 2))
- return oslTranslateFileError(OSL_FET_ERROR, ENAMETOOLONG);
-
- sal_Unicode path_resolved_so_far[PATH_MAX];
- const sal_Unicode* punresolved = unresolved_path.getStr();
- sal_Unicode* presolvedsf = path_resolved_so_far;
-
- // reserve space for leading '/' and trailing '\0'
- // do not exceed this limit
- sal_Unicode* sentinel = path_resolved_so_far + PATH_MAX - 2;
-
- // if realpath fails with error ENOTDIR, EACCES or ENOENT
- // we will not call it again, because _osl_realpath should also
- // work with non existing directories etc.
- bool realpath_failed = false;
- oslFileError ferr;
-
- path_resolved_so_far[0] = '\0';
-
- while (*punresolved != '\0')
- {
- // ignore '/.' , skip one part back when '/..'
-
- if ((UNICHAR_DOT == *punresolved) && (UNICHAR_SLASH == *presolvedsf))
- {
- if ('\0' == *(punresolved + 1))
- {
- punresolved++;
- continue;
- }
- else if (UNICHAR_SLASH == *(punresolved + 1))
- {
- punresolved += 2;
- continue;
- }
- else if ((UNICHAR_DOT == *(punresolved + 1)) && ('\0' == *(punresolved + 2) || (UNICHAR_SLASH == *(punresolved + 2))))
- {
- _rmlastpathtoken(path_resolved_so_far);
-
- presolvedsf = ustrtoend(path_resolved_so_far) - 1;
-
- if (UNICHAR_SLASH == *(punresolved + 2))
- punresolved += 3;
- else
- punresolved += 2;
-
- continue;
- }
- else // a file or directory name may start with '.'
- {
- if ((presolvedsf = ustrtoend(path_resolved_so_far)) > sentinel)
- return oslTranslateFileError(OSL_FET_ERROR, ENAMETOOLONG);
-
- ustrchrcat(*punresolved++, path_resolved_so_far);
-
- if ('\0' == *punresolved && !realpath_failed)
- {
- ferr = _osl_resolvepath(
- path_resolved_so_far,
- &realpath_failed);
-
- if (osl_File_E_None != ferr)
- return ferr;
- }
- }
- }
- else if (UNICHAR_SLASH == *punresolved)
- {
- if ((presolvedsf = ustrtoend(path_resolved_so_far)) > sentinel)
- return oslTranslateFileError(OSL_FET_ERROR, ENAMETOOLONG);
-
- ustrchrcat(*punresolved++, path_resolved_so_far);
-
- if (!realpath_failed)
- {
- ferr = _osl_resolvepath(
- path_resolved_so_far,
- &realpath_failed);
-
- if (osl_File_E_None != ferr)
- return ferr;
-
- if (!_islastchr(path_resolved_so_far, UNICHAR_SLASH))
- {
- if ((presolvedsf = ustrtoend(path_resolved_so_far)) > sentinel)
- return oslTranslateFileError(OSL_FET_ERROR, ENAMETOOLONG);
-
- ustrchrcat(UNICHAR_SLASH, path_resolved_so_far);
- }
- }
- }
- else // any other character
- {
- if ((presolvedsf = ustrtoend(path_resolved_so_far)) > sentinel)
- return oslTranslateFileError(OSL_FET_ERROR, ENAMETOOLONG);
-
- ustrchrcat(*punresolved++, path_resolved_so_far);
-
- if ('\0' == *punresolved && !realpath_failed)
- {
- ferr = _osl_resolvepath(
- path_resolved_so_far,
- &realpath_failed);
-
- if (osl_File_E_None != ferr)
- return ferr;
- }
- }
- }
-
- sal_Int32 len = rtl_ustr_getLength(path_resolved_so_far);
-
- OSL_ASSERT(len < PATH_MAX);
-
- resolved_path = rtl::OUString(path_resolved_so_far, len);
-
- return osl_File_E_None;
- }
-
-} // end namespace private
-
-
-/******************************************************
- * osl_getAbsoluteFileURL
- ******************************************************/
-
-oslFileError osl_getAbsoluteFileURL(rtl_uString* ustrBaseDirURL, rtl_uString* ustrRelativeURL, rtl_uString** pustrAbsoluteURL)
-{
- FileBase::RC rc;
- rtl::OUString unresolved_path;
- static char *allow_symlinks = getenv( "SAL_ALLOW_LINKOO_SYMLINKS" );
-
- rc = FileBase::getSystemPathFromFileURL(rtl::OUString(ustrRelativeURL), unresolved_path);
-
- if(FileBase::E_None != rc)
- return oslFileError(rc);
-
- if (systemPathIsRelativePath(unresolved_path))
- {
- rtl::OUString base_path;
- rc = (FileBase::RC) osl_getSystemPathFromFileURL_Ex(ustrBaseDirURL, &base_path.pData, sal_False);
-
- if (FileBase::E_None != rc)
- return oslFileError(rc);
-
- rtl::OUString abs_path;
- systemPathMakeAbsolutePath(base_path, unresolved_path, abs_path);
-
- unresolved_path = abs_path;
- }
-
- rtl::OUString resolved_path;
-
- if (!allow_symlinks)
- {
- rc = (FileBase::RC) osl_getAbsoluteFileURL_impl_(unresolved_path, resolved_path);
- }
- else
- {
- // SAL_ALLOW_LINKOO_SYMLINKS environment variable:
- // for linkoo to work, we need to let the symlinks to the libraries untouched
- rtl::OUString base;
- sal_Int32 last_slash = unresolved_path.lastIndexOf( UNICHAR_SLASH );
-
- if (last_slash >= 0 && last_slash + 1 < unresolved_path.getLength())
- {
- base = unresolved_path.copy(last_slash+1);
- unresolved_path = unresolved_path.copy(0, last_slash);
- }
-
- rc = (FileBase::RC) osl_getAbsoluteFileURL_impl_(unresolved_path, resolved_path);
-
- if (base.getLength() > 0)
- {
- resolved_path += rtl::OUString( UNICHAR_SLASH );
- resolved_path += base;
- }
- }
-
- if (FileBase::E_None == rc)
- {
- rc = (FileBase::RC) osl_getFileURLFromSystemPath(resolved_path.pData, pustrAbsoluteURL);
- OSL_ASSERT(FileBase::E_None == rc);
- }
-
- return oslFileError(rc);
-}
-
-
-namespace /* private */
-{
-
- /*********************************************
- No separate error code if unicode to text
- conversion or getenv fails because for the
- caller there is no difference why a file
- could not be found in $PATH
- ********************************************/
-
- bool find_in_PATH(const rtl::OUString& file_path, rtl::OUString& result)
- {
- bool bfound = false;
- rtl::OUString path(RTL_CONSTASCII_USTRINGPARAM("PATH"));
- rtl::OUString env_path;
-
- if (osl_Process_E_None == osl_getEnvironment(path.pData, &env_path.pData))
- bfound = osl::searchPath(file_path, env_path, result);
-
- return bfound;
- }
-
- /*********************************************
- No separate error code if unicode to text
- conversion or getcwd fails because for the
- caller there is no difference why a file
- could not be found in CDW
- ********************************************/
-
- bool find_in_CWD(const rtl::OUString& file_path, rtl::OUString& result)
- {
- bool bfound = false;
- rtl::OUString cwd_url;
-
- if (osl_Process_E_None == osl_getProcessWorkingDir(&cwd_url.pData))
- {
- rtl::OUString cwd;
- FileBase::getSystemPathFromFileURL(cwd_url, cwd);
- bfound = osl::searchPath(file_path, cwd, result);
- }
- return bfound;
- }
-
- /*********************************************
-
- ********************************************/
-
- bool find_in_searchPath(const rtl::OUString& file_path, rtl_uString* search_path, rtl::OUString& result)
- {
- return (search_path && osl::searchPath(file_path, rtl::OUString(search_path), result));
- }
-
-} // end namespace private
-
-
-/****************************************************************************
- * osl_searchFileURL
- ***************************************************************************/
-
-oslFileError osl_searchFileURL(rtl_uString* ustrFilePath, rtl_uString* ustrSearchPath, rtl_uString** pustrURL)
-{
- OSL_PRECOND(ustrFilePath && pustrURL, "osl_searchFileURL: invalid parameter");
-
- FileBase::RC rc;
- rtl::OUString file_path;
-
- // try to interpret search path as file url else assume it's a system path list
- rc = FileBase::getSystemPathFromFileURL(rtl::OUString(ustrFilePath), file_path);
- if (FileBase::E_INVAL == rc)
- file_path = ustrFilePath;
- else if (FileBase::E_None != rc)
- return oslFileError(rc);
-
- bool bfound = false;
- rtl::OUString result;
-
- if (find_in_searchPath(file_path, ustrSearchPath, result) ||
- find_in_PATH(file_path, result) ||
- find_in_CWD(file_path, result))
- {
- rtl::OUString resolved;
-
- if (osl::realpath(result, resolved))
- {
-#if OSL_DEBUG_LEVEL > 0
- oslFileError osl_error =
-#endif
- osl_getFileURLFromSystemPath(resolved.pData, pustrURL);
- OSL_ASSERT(osl_File_E_None == osl_error);
- bfound = true;
- }
- }
- return bfound ? osl_File_E_None : osl_File_E_NOENT;
-}
-
-
-/****************************************************************************
- * FileURLToPath
- ***************************************************************************/
-
-oslFileError FileURLToPath(char * buffer, size_t bufLen, rtl_uString* ustrFileURL)
-{
- rtl_uString* ustrSystemPath = NULL;
- oslFileError osl_error = osl_getSystemPathFromFileURL(ustrFileURL, &ustrSystemPath);
-
- if(osl_File_E_None != osl_error)
- return osl_error;
-
- osl_systemPathRemoveSeparator(ustrSystemPath);
-
- /* convert unicode path to text */
- if(!UnicodeToText( buffer, bufLen, ustrSystemPath->buffer, ustrSystemPath->length))
- osl_error = oslTranslateFileError(OSL_FET_ERROR, errno);
-
- rtl_uString_release(ustrSystemPath);
-
- return osl_error;
-}
-
-/*****************************************************************************
- * UnicodeToText
- ****************************************************************************/
-
-namespace /* private */
-{
- class UnicodeToTextConverter_Impl
- {
- rtl_UnicodeToTextConverter m_converter;
-
- UnicodeToTextConverter_Impl()
- : m_converter (rtl_createUnicodeToTextConverter (osl_getThreadTextEncoding()))
- {}
-
- ~UnicodeToTextConverter_Impl()
- {
- rtl_destroyUnicodeToTextConverter (m_converter);
- }
- public:
- static UnicodeToTextConverter_Impl & getInstance()
- {
- static UnicodeToTextConverter_Impl g_theConverter;
- return g_theConverter;
- }
-
- sal_Size convert(
- sal_Unicode const * pSrcBuf, sal_Size nSrcChars, sal_Char * pDstBuf, sal_Size nDstBytes,
- sal_uInt32 nFlags, sal_uInt32 * pInfo, sal_Size * pSrcCvtChars)
- {
- OSL_ASSERT(m_converter != 0);
- return rtl_convertUnicodeToText (
- m_converter, 0, pSrcBuf, nSrcChars, pDstBuf, nDstBytes, nFlags, pInfo, pSrcCvtChars);
- }
- };
-} // end namespace private
-
-int UnicodeToText( char * buffer, size_t bufLen, const sal_Unicode * uniText, sal_Int32 uniTextLen )
-{
- sal_uInt32 nInfo = 0;
- sal_Size nSrcChars = 0;
-
- sal_Size nDestBytes = UnicodeToTextConverter_Impl::getInstance().convert (
- uniText, uniTextLen, buffer, bufLen,
- OUSTRING_TO_OSTRING_CVTFLAGS | RTL_UNICODETOTEXT_FLAGS_FLUSH, &nInfo, &nSrcChars);
-
- if( nInfo & RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL )
- {
- errno = EOVERFLOW;
- return 0;
- }
-
- /* ensure trailing '\0' */
- buffer[nDestBytes] = '\0';
- return nDestBytes;
-}
-
-/*****************************************************************************
- * TextToUnicode
- ****************************************************************************/
-
-namespace /* private */
-{
- class TextToUnicodeConverter_Impl
- {
- rtl_TextToUnicodeConverter m_converter;
-
- TextToUnicodeConverter_Impl()
- : m_converter (rtl_createTextToUnicodeConverter (osl_getThreadTextEncoding()))
- {}
-
- ~TextToUnicodeConverter_Impl()
- {
- rtl_destroyTextToUnicodeConverter (m_converter);
- }
-
- public:
- static TextToUnicodeConverter_Impl & getInstance()
- {
- static TextToUnicodeConverter_Impl g_theConverter;
- return g_theConverter;
- }
-
- sal_Size convert(
- sal_Char const * pSrcBuf, sal_Size nSrcBytes, sal_Unicode * pDstBuf, sal_Size nDstChars,
- sal_uInt32 nFlags, sal_uInt32 * pInfo, sal_Size * pSrcCvtBytes)
- {
- OSL_ASSERT(m_converter != 0);
- return rtl_convertTextToUnicode (
- m_converter, 0, pSrcBuf, nSrcBytes, pDstBuf, nDstChars, nFlags, pInfo, pSrcCvtBytes);
- }
- };
-} // end namespace private
-
-int TextToUnicode(
- const char* text,
- size_t text_buffer_size,
- sal_Unicode* unic_text,
- sal_Int32 unic_text_buffer_size)
-{
- sal_uInt32 nInfo = 0;
- sal_Size nSrcChars = 0;
-
- sal_Size nDestBytes = TextToUnicodeConverter_Impl::getInstance().convert(
- text, text_buffer_size, unic_text, unic_text_buffer_size,
- OSTRING_TO_OUSTRING_CVTFLAGS | RTL_TEXTTOUNICODE_FLAGS_FLUSH, &nInfo, &nSrcChars);
-
- if (nInfo & RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL)
- {
- errno = EOVERFLOW;
- return 0;
- }
-
- /* ensure trailing '\0' */
- unic_text[nDestBytes] = '\0';
- return nDestBytes;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/file_url.h b/sal/osl/unx/file_url.h
deleted file mode 100644
index 283a55c05..000000000
--- a/sal/osl/unx/file_url.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_FILE_URL_H
-#define INCLUDED_FILE_URL_H
-
-#include "osl/file.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/**************************************************
- * osl_getSystemPathFromFileURL_Ex
- *************************************************/
-
-#define FURL_ALLOW_RELATIVE sal_True
-#define FURL_DENY_RELATIVE sal_False
-
-oslFileError osl_getSystemPathFromFileURL_Ex(rtl_uString *ustrFileURL, rtl_uString **pustrSystemPath, sal_Bool bAllowRelative);
-
-/**************************************************
- * FileURLToPath
- *************************************************/
-
-oslFileError FileURLToPath(char * buffer, size_t bufLen, rtl_uString* ustrFileURL);
-
-/***************************************************
- * UnicodeToText
- **************************************************/
-
-int UnicodeToText(char * buffer, size_t bufLen, const sal_Unicode * uniText, sal_Int32 uniTextLen);
-
-/***************************************************
- * TextToUniCode
- **************************************************/
-
-int TextToUnicode(const char* text, size_t text_buffer_size, sal_Unicode* unic_text, sal_Int32 unic_text_buffer_size);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* #define INCLUDED_FILE_URL_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/file_volume.cxx b/sal/osl/unx/file_volume.cxx
deleted file mode 100644
index cc3008914..000000000
--- a/sal/osl/unx/file_volume.cxx
+++ /dev/null
@@ -1,1188 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "osl/file.h"
-
-#include "osl/diagnose.h"
-#include "osl/thread.h"
-#include "rtl/alloc.h"
-
-#include "file_error_transl.h"
-#include "file_url.h"
-#include "system.h"
-
-#include <errno.h>
-#include <limits.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/wait.h>
-#include <sal/macros.h>
-
-#ifdef HAVE_STATFS_H
-#undef HAVE_STATFS_H
-#endif
-
-#if defined(LINUX) && defined(__FreeBSD_kernel__)
-#undef LINUX
-#define FREEBSD 1
-#endif
-
-
-#if defined(SOLARIS)
-
-#include <sys/mnttab.h>
-#include <sys/statvfs.h>
-#define HAVE_STATFS_H
-static const sal_Char* MOUNTTAB="/etc/mnttab";
-
-#elif defined(LINUX)
-
-#include <mntent.h>
-#include <sys/vfs.h>
-#define HAVE_STATFS_H
-static const sal_Char* MOUNTTAB="/etc/mtab";
-
-#elif defined(NETBSD) || defined(FREEBSD) || defined(OPENBSD) || defined(DRAGONFLY)
-
-#include <sys/param.h>
-#include <sys/ucred.h>
-#include <sys/mount.h>
-#define HAVE_STATFS_H
-
-/* No mounting table on *BSD
- * This information is stored only in the kernel. */
-/* static const sal_Char* MOUNTTAB="/etc/mtab"; */
-
-#elif defined(MACOSX)
-
-#include <sys/param.h>
-#include <sys/mount.h>
-#define HAVE_STATFS_H
-// static const sal_Char* MOUNTTAB="/etc/mtab";
-
-#endif /* HAVE_STATFS_H */
-
-/************************************************************************
- * ToDo
- *
- * - Fix: check for corresponding struct sizes in exported functions
- * - check size/use of oslVolumeDeviceHandle
- * - check size/use of oslVolumeInfo
- ***********************************************************************/
-/******************************************************************************
- *
- * Data Type Definition
- *
- ******************************************************************************/
-
-typedef struct _oslVolumeDeviceHandleImpl
-{
- sal_Char pszMountPoint[PATH_MAX];
- sal_Char pszFilePath[PATH_MAX];
- sal_Char pszDevice[PATH_MAX];
- sal_Char ident[4];
- sal_uInt32 RefCount;
-} oslVolumeDeviceHandleImpl;
-
-/******************************************************************************
- *
- * 'removeable device' aka floppy functions
- *
- *****************************************************************************/
-
-static oslVolumeDeviceHandle osl_isFloppyDrive(const sal_Char* pszPath);
-static oslFileError osl_mountFloppy(oslVolumeDeviceHandle hFloppy);
-static oslFileError osl_unmountFloppy(oslVolumeDeviceHandle hFloppy);
-
-#if defined(SOLARIS)
-static sal_Bool osl_isFloppyMounted(sal_Char* pszPath, sal_Char* pszMountPath);
-static sal_Bool osl_getFloppyMountEntry(const sal_Char* pszPath, sal_Char* pBuffer);
-static sal_Bool osl_checkFloppyPath(sal_Char* pszPath, sal_Char* pszFilePath, sal_Char* pszDevicePath);
-#endif /* SOLARIS */
-
-#if defined(LINUX)
-static sal_Bool osl_isFloppyMounted(oslVolumeDeviceHandleImpl* pDevice);
-static sal_Bool osl_getFloppyMountEntry(const sal_Char* pszPath, oslVolumeDeviceHandleImpl* pItem);
-#endif /* LINUX */
-
-#ifdef DEBUG_OSL_FILE
-static void osl_printFloppyHandle(oslVolumeDeviceHandleImpl* hFloppy);
-#endif /* DEBUG_OSL_FILE */
-
-/******************************************************************************
- *
- * C-String Function Declarations
- *
- *****************************************************************************/
-
-static oslFileError osl_psz_getVolumeInformation(const sal_Char* , oslVolumeInfo* pInfo, sal_uInt32 uFieldMask);
-
-/****************************************************************************/
-/* osl_getVolumeInformation */
-/****************************************************************************/
-
-oslFileError osl_getVolumeInformation( rtl_uString* ustrDirectoryURL, oslVolumeInfo* pInfo, sal_uInt32 uFieldMask )
-{
- char path[PATH_MAX];
- oslFileError eRet;
-
- OSL_ASSERT( ustrDirectoryURL );
- OSL_ASSERT( pInfo );
-
- /* convert directory url to system path */
- eRet = FileURLToPath( path, PATH_MAX, ustrDirectoryURL );
- if( eRet != osl_File_E_None )
- return eRet;
-
-#ifdef MACOSX
- if ( macxp_resolveAlias( path, PATH_MAX ) != 0 )
- return oslTranslateFileError( OSL_FET_ERROR, errno );
-#endif/* MACOSX */
-
- return osl_psz_getVolumeInformation( path, pInfo, uFieldMask);
-}
-
-/******************************************************************************
- *
- * C-String Versions of Exported Module Functions
- *
- *****************************************************************************/
-
-#ifdef HAVE_STATFS_H
-
-#if defined(FREEBSD) || defined(MACOSX) || defined(OPENBSD) || defined(DRAGONFLY)
-# define __OSL_STATFS_STRUCT struct statfs
-# define __OSL_STATFS(dir, sfs) statfs((dir), (sfs))
-# define __OSL_STATFS_BLKSIZ(a) ((sal_uInt64)((a).f_bsize))
-# define __OSL_STATFS_TYPENAME(a) ((a).f_fstypename)
-#if defined(OPENBSD)
-# define __OSL_STATFS_ISREMOTE(a) (rtl_str_compare((a).f_fstypename, "nfs") == 0)
-#else
-# define __OSL_STATFS_ISREMOTE(a) (((a).f_type & MNT_LOCAL) == 0)
-#endif
-
-/* always return true if queried for the properties of
- the file system. If you think this is wrong under any
- of the target platforms fix it!!!! */
-# define __OSL_STATFS_IS_CASE_SENSITIVE_FS(a) (1)
-# define __OSL_STATFS_IS_CASE_PRESERVING_FS(a) (1)
-#endif /* FREEBSD || MACOSX || OPENBSD */
-
-#if defined(NETBSD)
-
-#include <sys/param.h>
-
-/* statvfs() replaced statfs() in 2.99.9 */
-# if __NetBSD_Version__ >= 299000900
- /* 2.0D or later */
-# define __OSL_STATFS_STRUCT struct statvfs
-# define __OSL_STATFS(dir, sfs) statvfs((dir), (sfs))
-# define __OSL_STATFS_ISREMOTE(a) (((a).f_flag & ST_LOCAL) == 0)
-
-# else
- /* version before 2.0D */
-# define __OSL_STATFS_STRUCT struct statfs
-# define __OSL_STATFS(dir, sfs) statfs((dir), (sfs))
-# define __OSL_STATFS_ISREMOTE(a) (((a).f_type & MNT_LOCAL) == 0)
-
-# endif /* >2.0D */
-
-# define __OSL_STATFS_BLKSIZ(a) ((sal_uInt64)((a).f_bsize))
-# define __OSL_STATFS_TYPENAME(a) ((a).f_fstypename)
-
-# define __OSL_STATFS_IS_CASE_SENSITIVE_FS(a) (strcmp((a).f_fstypename, "msdos") != 0 && strcmp((a).f_fstypename, "ntfs") != 0 && strcmp((a).f_fstypename, "smbfs") != 0)
-# define __OSL_STATFS_IS_CASE_PRESERVING_FS(a) (strcmp((a).f_fstypename, "msdos") != 0)
-#endif /* NETBSD */
-
-#if defined(LINUX)
-# define __OSL_NFS_SUPER_MAGIC 0x6969
-# define __OSL_SMB_SUPER_MAGIC 0x517B
-# define __OSL_MSDOS_SUPER_MAGIC 0x4d44
-# define __OSL_NTFS_SUPER_MAGIC 0x5346544e
-# define __OSL_STATFS_STRUCT struct statfs
-# define __OSL_STATFS(dir, sfs) statfs((dir), (sfs))
-# define __OSL_STATFS_BLKSIZ(a) ((sal_uInt64)((a).f_bsize))
-# define __OSL_STATFS_IS_NFS(a) (__OSL_NFS_SUPER_MAGIC == (a).f_type)
-# define __OSL_STATFS_IS_SMB(a) (__OSL_SMB_SUPER_MAGIC == (a).f_type)
-# define __OSL_STATFS_ISREMOTE(a) (__OSL_STATFS_IS_NFS((a)) || __OSL_STATFS_IS_SMB((a)))
-# define __OSL_STATFS_IS_CASE_SENSITIVE_FS(a) ((__OSL_MSDOS_SUPER_MAGIC != (a).f_type) && (__OSL_NTFS_SUPER_MAGIC != (a).f_type))
-# define __OSL_STATFS_IS_CASE_PRESERVING_FS(a) ((__OSL_MSDOS_SUPER_MAGIC != (a).f_type))
-#endif /* LINUX */
-
-#if defined(SOLARIS)
-# define __OSL_STATFS_STRUCT struct statvfs
-# define __OSL_STATFS(dir, sfs) statvfs((dir), (sfs))
-# define __OSL_STATFS_BLKSIZ(a) ((sal_uInt64)((a).f_frsize))
-# define __OSL_STATFS_TYPENAME(a) ((a).f_basetype)
-# define __OSL_STATFS_ISREMOTE(a) (rtl_str_compare((a).f_basetype, "nfs") == 0)
-
-/* always return true if queried for the properties of
- the file system. If you think this is wrong under any
- of the target platforms fix it!!!! */
-# define __OSL_STATFS_IS_CASE_SENSITIVE_FS(a) (1)
-# define __OSL_STATFS_IS_CASE_PRESERVING_FS(a) (1)
-#endif /* SOLARIS */
-
-# define __OSL_STATFS_INIT(a) (memset(&(a), 0, sizeof(__OSL_STATFS_STRUCT)))
-
-#else /* no statfs available */
-
-# define __OSL_STATFS_STRUCT struct dummy {int i;}
-# define __OSL_STATFS_INIT(a) ((void)a)
-# define __OSL_STATFS(dir, sfs) (1)
-# define __OSL_STATFS_ISREMOTE(sfs) (0)
-# define __OSL_STATFS_IS_CASE_SENSITIVE_FS(a) (1)
-# define __OSL_STATFS_IS_CASE_PRESERVING_FS(a) (1)
-#endif /* HAVE_STATFS_H */
-
-
-static oslFileError osl_psz_getVolumeInformation (
- const sal_Char* pszDirectory, oslVolumeInfo* pInfo, sal_uInt32 uFieldMask)
-{
- __OSL_STATFS_STRUCT sfs;
-
- if (!pInfo)
- return osl_File_E_INVAL;
-
- __OSL_STATFS_INIT(sfs);
-
- pInfo->uValidFields = 0;
- pInfo->uAttributes = 0;
-
- if ((__OSL_STATFS(pszDirectory, &sfs)) < 0)
- {
- oslFileError result = oslTranslateFileError(OSL_FET_ERROR, errno);
- return (result);
- }
-
- /* FIXME: how to detect the kind of storage (fixed, cdrom, ...) */
- if (uFieldMask & osl_VolumeInfo_Mask_Attributes)
- {
- if (__OSL_STATFS_ISREMOTE(sfs))
- pInfo->uAttributes |= osl_Volume_Attribute_Remote;
-
- pInfo->uValidFields |= osl_VolumeInfo_Mask_Attributes;
- }
-
- if (uFieldMask & osl_VolumeInfo_Mask_FileSystemCaseHandling)
- {
- if (__OSL_STATFS_IS_CASE_SENSITIVE_FS(sfs))
- pInfo->uAttributes |= osl_Volume_Attribute_Case_Sensitive;
-
- if (__OSL_STATFS_IS_CASE_PRESERVING_FS(sfs))
- pInfo->uAttributes |= osl_Volume_Attribute_Case_Is_Preserved;
-
- pInfo->uValidFields |= osl_VolumeInfo_Mask_Attributes;
- }
-
- pInfo->uTotalSpace = 0;
- pInfo->uFreeSpace = 0;
- pInfo->uUsedSpace = 0;
-
-#if defined(__OSL_STATFS_BLKSIZ)
-
- if ((uFieldMask & osl_VolumeInfo_Mask_TotalSpace) ||
- (uFieldMask & osl_VolumeInfo_Mask_UsedSpace))
- {
- pInfo->uTotalSpace = __OSL_STATFS_BLKSIZ(sfs);
- pInfo->uTotalSpace *= (sal_uInt64)(sfs.f_blocks);
- pInfo->uValidFields |= osl_VolumeInfo_Mask_TotalSpace;
- }
-
- if ((uFieldMask & osl_VolumeInfo_Mask_FreeSpace) ||
- (uFieldMask & osl_VolumeInfo_Mask_UsedSpace))
- {
- pInfo->uFreeSpace = __OSL_STATFS_BLKSIZ(sfs);
-
- if (getuid() == 0)
- pInfo->uFreeSpace *= (sal_uInt64)(sfs.f_bfree);
- else
- pInfo->uFreeSpace *= (sal_uInt64)(sfs.f_bavail);
-
- pInfo->uValidFields |= osl_VolumeInfo_Mask_FreeSpace;
- }
-
-#endif /* __OSL_STATFS_BLKSIZ */
-
- if ((pInfo->uValidFields & osl_VolumeInfo_Mask_TotalSpace) &&
- (pInfo->uValidFields & osl_VolumeInfo_Mask_FreeSpace ))
- {
- pInfo->uUsedSpace = pInfo->uTotalSpace - pInfo->uFreeSpace;
- pInfo->uValidFields |= osl_VolumeInfo_Mask_UsedSpace;
- }
-
- pInfo->uMaxNameLength = 0;
- if (uFieldMask & osl_VolumeInfo_Mask_MaxNameLength)
- {
- long nLen = pathconf(pszDirectory, _PC_NAME_MAX);
- if (nLen > 0)
- {
- pInfo->uMaxNameLength = (sal_uInt32)nLen;
- pInfo->uValidFields |= osl_VolumeInfo_Mask_MaxNameLength;
- }
- }
-
- pInfo->uMaxPathLength = 0;
- if (uFieldMask & osl_VolumeInfo_Mask_MaxPathLength)
- {
- long nLen = pathconf (pszDirectory, _PC_PATH_MAX);
- if (nLen > 0)
- {
- pInfo->uMaxPathLength = (sal_uInt32)nLen;
- pInfo->uValidFields |= osl_VolumeInfo_Mask_MaxPathLength;
- }
- }
-
-#if defined(__OSL_STATFS_TYPENAME)
-
- if (uFieldMask & osl_VolumeInfo_Mask_FileSystemName)
- {
- rtl_string2UString(
- &(pInfo->ustrFileSystemName),
- __OSL_STATFS_TYPENAME(sfs),
- rtl_str_getLength(__OSL_STATFS_TYPENAME(sfs)),
- osl_getThreadTextEncoding(),
- OUSTRING_TO_OSTRING_CVTFLAGS);
- OSL_ASSERT(pInfo->ustrFileSystemName != 0);
-
- pInfo->uValidFields |= osl_VolumeInfo_Mask_FileSystemName;
- }
-
-#endif /* __OSL_STATFS_TYPENAME */
-
- if (uFieldMask & osl_VolumeInfo_Mask_DeviceHandle)
- {
- /* FIXME: check also entries in mntent for the device
- and fill it with correct values */
-
- *pInfo->pDeviceHandle = osl_isFloppyDrive(pszDirectory);
-
- if (*pInfo->pDeviceHandle)
- {
- pInfo->uValidFields |= osl_VolumeInfo_Mask_DeviceHandle;
- pInfo->uAttributes |= osl_Volume_Attribute_Removeable;
- pInfo->uValidFields |= osl_VolumeInfo_Mask_Attributes;
- }
- }
- return osl_File_E_None;
-}
-
-/******************************************************************************
- *
- * GENERIC FLOPPY FUNCTIONS
- *
- *****************************************************************************/
-
-
-/*****************************************
- * osl_unmountVolumeDevice
- ****************************************/
-
-oslFileError osl_unmountVolumeDevice( oslVolumeDeviceHandle Handle )
-{
- oslFileError tErr = osl_File_E_NOSYS;
-
- tErr = osl_unmountFloppy(Handle);
-
- /* Perhaps current working directory is set to mount point */
-
- if ( tErr )
- {
- sal_Char *pszHomeDir = getenv("HOME");
-
- if ( pszHomeDir && strlen( pszHomeDir ) && 0 == chdir( pszHomeDir ) )
- {
- /* try again */
-
- tErr = osl_unmountFloppy(Handle);
-
- OSL_ENSURE( tErr, "osl_unmountVolumeDevice: CWD was set to volume mount point" );
- }
- }
-
- return tErr;
-}
-
-/*****************************************
- * osl_automountVolumeDevice
- ****************************************/
-
-oslFileError osl_automountVolumeDevice( oslVolumeDeviceHandle Handle )
-{
- oslFileError tErr = osl_File_E_NOSYS;
-
- tErr = osl_mountFloppy(Handle);
-
- return tErr;
-}
-
-/*****************************************
- * osl_getVolumeDeviceMountPath
- ****************************************/
-static rtl_uString* oslMakeUStrFromPsz(const sal_Char* pszStr, rtl_uString** ustrValid)
-{
- rtl_string2UString(
- ustrValid,
- pszStr,
- rtl_str_getLength( pszStr ),
- osl_getThreadTextEncoding(),
- OUSTRING_TO_OSTRING_CVTFLAGS );
- OSL_ASSERT(*ustrValid != 0);
-
- return *ustrValid;
-}
-
-oslFileError osl_getVolumeDeviceMountPath( oslVolumeDeviceHandle Handle, rtl_uString **pstrPath )
-{
- oslVolumeDeviceHandleImpl* pItem = (oslVolumeDeviceHandleImpl*) Handle;
- sal_Char Buffer[PATH_MAX];
-
- Buffer[0] = '\0';
-
- if ( pItem == 0 || pstrPath == 0 )
- {
- return osl_File_E_INVAL;
- }
-
- if ( pItem->ident[0] != 'O' || pItem->ident[1] != 'V' || pItem->ident[2] != 'D' || pItem->ident[3] != 'H' )
- {
- return osl_File_E_INVAL;
- }
-
-#ifdef DEBUG_OSL_FILE
- fprintf(stderr,"Handle is:\n");
- osl_printFloppyHandle(pItem);
-#endif
-
- snprintf(Buffer, sizeof(Buffer), "file://%s", pItem->pszMountPoint);
-
-#ifdef DEBUG_OSL_FILE
- fprintf(stderr,"Mount Point is: '%s'\n",Buffer);
-#endif
-
- oslMakeUStrFromPsz(Buffer, pstrPath);
-
- return osl_File_E_None;
-}
-
-/*****************************************
- * osl_acquireVolumeDeviceHandle
- ****************************************/
-
-oslFileError SAL_CALL osl_acquireVolumeDeviceHandle( oslVolumeDeviceHandle Handle )
-{
- oslVolumeDeviceHandleImpl* pItem =(oslVolumeDeviceHandleImpl*) Handle;
-
- if ( pItem == 0 )
- {
- return osl_File_E_INVAL;
- }
-
- if ( pItem->ident[0] != 'O' || pItem->ident[1] != 'V' || pItem->ident[2] != 'D' || pItem->ident[3] != 'H' )
- {
- return osl_File_E_INVAL;
- }
-
- ++pItem->RefCount;
-
- return osl_File_E_None;
-}
-
-/*****************************************
- * osl_releaseVolumeDeviceHandle
- ****************************************/
-
-oslFileError osl_releaseVolumeDeviceHandle( oslVolumeDeviceHandle Handle )
-{
- oslVolumeDeviceHandleImpl* pItem =(oslVolumeDeviceHandleImpl*) Handle;
-
- if ( pItem == 0 )
- {
- return osl_File_E_INVAL;
- }
-
- if ( pItem->ident[0] != 'O' || pItem->ident[1] != 'V' || pItem->ident[2] != 'D' || pItem->ident[3] != 'H' )
- {
- return osl_File_E_INVAL;
- }
-
- --pItem->RefCount;
-
- if ( pItem->RefCount == 0 )
- {
- rtl_freeMemory(pItem);
- }
-
- return osl_File_E_None;
-}
-
-#if !defined(MACOSX) && !defined(AIX)
-
-/*****************************************
- * osl_newVolumeDeviceHandleImpl
- ****************************************/
-
-static oslVolumeDeviceHandleImpl* osl_newVolumeDeviceHandleImpl()
-{
- oslVolumeDeviceHandleImpl* pHandle;
- const size_t nSizeOfHandle = sizeof(oslVolumeDeviceHandleImpl);
-
- pHandle = (oslVolumeDeviceHandleImpl*) rtl_allocateMemory (nSizeOfHandle);
- if (pHandle != NULL)
- {
- pHandle->ident[0] = 'O';
- pHandle->ident[1] = 'V';
- pHandle->ident[2] = 'D';
- pHandle->ident[3] = 'H';
- pHandle->pszMountPoint[0] = '\0';
- pHandle->pszFilePath[0] = '\0';
- pHandle->pszDevice[0] = '\0';
- pHandle->RefCount = 1;
- }
- return pHandle;
-}
-
-/*****************************************
- * osl_freeVolumeDeviceHandleImpl
- ****************************************/
-
-static void osl_freeVolumeDeviceHandleImpl (oslVolumeDeviceHandleImpl* pHandle)
-{
- if (pHandle != NULL)
- rtl_freeMemory (pHandle);
-}
-#endif
-
-/******************************************************************************
- *
- * SOLARIS FLOPPY FUNCTIONS
- *
- *****************************************************************************/
-
-#if defined(SOLARIS)
-/* compare a given devicename with the typical device names on a Solaris box */
-static sal_Bool
-osl_isAFloppyDevice (const char* pDeviceName)
-{
- const char* pFloppyDevice [] = {
- "/dev/fd", "/dev/rfd",
- "/dev/diskette", "/dev/rdiskette",
- "/vol/dev/diskette", "/vol/dev/rdiskette"
- };
-
- int i;
- for (i = 0; i < SAL_N_ELEMENTS(pFloppyDevice); i++)
- {
- if (strncmp(pDeviceName, pFloppyDevice[i], strlen(pFloppyDevice[i])) == 0)
- return sal_True;
- }
- return sal_False;
-}
-
-/* compare two directories whether the first may be a parent of the second. this
- * does not realpath() resolving */
-static sal_Bool
-osl_isAParentDirectory (const char* pParentDir, const char* pSubDir)
-{
- return strncmp(pParentDir, pSubDir, strlen(pParentDir)) == 0;
-}
-
-/* the name of the routine is obviously silly. But anyway create a
- * oslVolumeDeviceHandle with correct mount point, device name and a resolved filepath
- * only if pszPath points to file or directory on a floppy */
-static oslVolumeDeviceHandle
-osl_isFloppyDrive(const sal_Char* pszPath)
-{
- FILE* pMountTab;
- struct mnttab aMountEnt;
- oslVolumeDeviceHandleImpl* pHandle;
-
- if ((pHandle = osl_newVolumeDeviceHandleImpl()) == NULL)
- {
- return NULL;
- }
- if (realpath(pszPath, pHandle->pszFilePath) == NULL)
- {
- osl_freeVolumeDeviceHandleImpl (pHandle);
- return NULL;
- }
- if ((pMountTab = fopen (MOUNTTAB, "r")) == NULL)
- {
- osl_freeVolumeDeviceHandleImpl (pHandle);
- return NULL;
- }
-
- while (getmntent(pMountTab, &aMountEnt) == 0)
- {
- const char *pMountPoint = aMountEnt.mnt_mountp;
- const char *pDevice = aMountEnt.mnt_special;
- if ( osl_isAParentDirectory (aMountEnt.mnt_mountp, pHandle->pszFilePath)
- && osl_isAFloppyDevice (aMountEnt.mnt_special))
- {
- /* skip the last item for it is the name of the disk */
- char * pc = strrchr( aMountEnt.mnt_special, '/' );
-
- if ( NULL != pc )
- {
- int len = pc - aMountEnt.mnt_special;
-
- strncpy( pHandle->pszDevice, aMountEnt.mnt_special, len );
- pHandle->pszDevice[len] = '\0';
- }
- else
- {
- /* #106048 use save str functions to avoid buffer overflows */
- memset(pHandle->pszDevice, 0, sizeof(pHandle->pszDevice));
- strncpy(pHandle->pszDevice, aMountEnt.mnt_special, sizeof(pHandle->pszDevice) - 1);
- }
-
- /* remember the mount point */
- memset(pHandle->pszMountPoint, 0, sizeof(pHandle->pszMountPoint));
- strncpy(pHandle->pszMountPoint, aMountEnt.mnt_mountp, sizeof(pHandle->pszMountPoint) - 1);
-
- fclose (pMountTab);
- return pHandle;
- }
- }
-
- fclose (pMountTab);
- osl_freeVolumeDeviceHandleImpl (pHandle);
- return NULL;
-}
-
-static oslFileError osl_mountFloppy(oslVolumeDeviceHandle hFloppy)
-{
- FILE* pMountTab;
- struct mnttab aMountEnt;
- oslVolumeDeviceHandleImpl* pHandle = (oslVolumeDeviceHandleImpl*) hFloppy;
-
- int nRet=0;
- sal_Char pszCmd[512] = "";
-
- if ( pHandle == 0 )
- return osl_File_E_INVAL;
-
- /* FIXME: don't know what this is good for */
- if ( pHandle->ident[0] != 'O' || pHandle->ident[1] != 'V' || pHandle->ident[2] != 'D' || pHandle->ident[3] != 'H' )
- return osl_File_E_INVAL;
-
- snprintf(pszCmd, sizeof(pszCmd), "eject -q %s > /dev/null 2>&1", pHandle->pszDevice);
-
- nRet = system( pszCmd );
-
- switch ( WEXITSTATUS(nRet) )
- {
- case 0:
- {
- /* lookup the device in mount tab again */
- if ((pMountTab = fopen (MOUNTTAB, "r")) == NULL)
- return osl_File_E_BUSY;
-
- while (getmntent(pMountTab, &aMountEnt) == 0)
- {
- const char *pMountPoint = aMountEnt.mnt_mountp;
- const char *pDevice = aMountEnt.mnt_special;
- if ( 0 == strncmp( pHandle->pszDevice, aMountEnt.mnt_special, strlen(pHandle->pszDevice) ) )
- {
- memset(pHandle->pszMountPoint, 0, sizeof(pHandle->pszMountPoint));
- strncpy (pHandle->pszMountPoint, aMountEnt.mnt_mountp, sizeof(pHandle->pszMountPoint) - 1);
-
- fclose (pMountTab);
- return osl_File_E_None;
- }
- }
-
- fclose (pMountTab);
- return osl_File_E_BUSY;
- }
- //break; // break not necessary here, see return statements before
-
- case 1:
- return osl_File_E_BUSY;
-
- default:
- break;
- }
-
- return osl_File_E_BUSY;
-}
-
-static oslFileError osl_unmountFloppy(oslVolumeDeviceHandle hFloppy)
-{
-// FILE* pMountTab;
-// struct mnttab aMountEnt;
- oslVolumeDeviceHandleImpl* pHandle = (oslVolumeDeviceHandleImpl*) hFloppy;
-
- int nRet=0;
- sal_Char pszCmd[512] = "";
-
- if ( pHandle == 0 )
- return osl_File_E_INVAL;
-
- /* FIXME: don't know what this is good for */
- if ( pHandle->ident[0] != 'O' || pHandle->ident[1] != 'V' || pHandle->ident[2] != 'D' || pHandle->ident[3] != 'H' )
- return osl_File_E_INVAL;
-
- snprintf(pszCmd, sizeof(pszCmd), "eject %s > /dev/null 2>&1", pHandle->pszDevice);
-
- nRet = system( pszCmd );
-
- switch ( WEXITSTATUS(nRet) )
- {
- case 0:
- {
- FILE* pMountTab;
- struct mnttab aMountEnt;
-
- /* lookup if device is still in mount tab */
- if ((pMountTab = fopen (MOUNTTAB, "r")) == NULL)
- return osl_File_E_BUSY;
-
- while (getmntent(pMountTab, &aMountEnt) == 0)
- {
- const char *pMountPoint = aMountEnt.mnt_mountp;
- const char *pDevice = aMountEnt.mnt_special;
- if ( 0 == strncmp( pHandle->pszDevice, aMountEnt.mnt_special, strlen(pHandle->pszDevice) ) )
- {
- fclose (pMountTab);
- return osl_File_E_BUSY;
- }
- }
-
- fclose (pMountTab);
- pHandle->pszMountPoint[0] = 0;
- return osl_File_E_None;
- }
-
- //break; //break not necessary, see return statements before
-
- case 1:
- return osl_File_E_NODEV;
-
- case 4:
- pHandle->pszMountPoint[0] = 0;
- return osl_File_E_None;
-
- default:
- break;
- }
-
- return osl_File_E_BUSY;
-}
-
-#endif /* SOLARIS */
-
-/******************************************************************************
- *
- * LINUX FLOPPY FUNCTIONS
- *
- *****************************************************************************/
-
-#if defined(LINUX)
-static oslVolumeDeviceHandle
-osl_isFloppyDrive (const sal_Char* pszPath)
-{
- oslVolumeDeviceHandleImpl* pItem = osl_newVolumeDeviceHandleImpl();
- if (osl_getFloppyMountEntry(pszPath, pItem))
- return (oslVolumeDeviceHandle) pItem;
-
- osl_freeVolumeDeviceHandleImpl (pItem);
- return 0;
-}
-#endif /* LINUX */
-
-#if defined(LINUX)
-static oslFileError osl_mountFloppy(oslVolumeDeviceHandle hFloppy)
-{
- sal_Bool bRet = sal_False;
- oslVolumeDeviceHandleImpl* pItem=0;
- int nRet;
- sal_Char pszCmd[PATH_MAX];
- const sal_Char* pszMountProg = "mount";
- sal_Char* pszSuDo = 0;
- sal_Char* pszTmp = 0;
-
- pszCmd[0] = '\0';
-
-#ifdef TRACE_OSL_FILE
- fprintf(stderr,"In osl_mountFloppy\n");
-#endif
-
- pItem = (oslVolumeDeviceHandleImpl*) hFloppy;
-
- if ( pItem == 0 )
- {
-#ifdef TRACE_OSL_FILE
- fprintf(stderr,"Out osl_mountFloppy [pItem == 0]\n");
-#endif
-
- return osl_File_E_INVAL;
- }
-
- if ( pItem->ident[0] != 'O' || pItem->ident[1] != 'V' || pItem->ident[2] != 'D' || pItem->ident[3] != 'H' )
- {
-#ifdef TRACE_OSL_FILE
- fprintf(stderr,"Out osl_mountFloppy [invalid handle]\n");
-#endif
- return osl_File_E_INVAL;
- }
-
- bRet = osl_isFloppyMounted(pItem);
- if ( bRet == sal_True )
- {
-#ifdef DEBUG_OSL_FILE
- fprintf(stderr,"detected mounted floppy at '%s'\n",pItem->pszMountPoint);
-#endif
- return osl_File_E_BUSY;
- }
-
- /* mfe: we can't use the mount(2) system call!!! */
- /* even if we are root */
- /* since mtab is not updated!!! */
- /* but we need it to be updated */
- /* some "magic" must be done */
-
-/* nRet = mount(pItem->pszDevice,pItem->pszMountPoint,0,0,0); */
-/* if ( nRet != 0 ) */
-/* { */
-/* nRet=errno; */
-/* #ifdef DEBUG_OSL_FILE */
-/* perror("mount"); */
-/* #endif */
-/* } */
-
- pszTmp = getenv("SAL_MOUNT_MOUNTPROG");
- if ( pszTmp != 0 )
- {
- pszMountProg=pszTmp;
- }
-
- pszTmp=getenv("SAL_MOUNT_SU_DO");
- if ( pszTmp != 0 )
- {
- pszSuDo=pszTmp;
- }
-
- if ( pszSuDo != 0 )
- {
- snprintf(pszCmd, sizeof(pszCmd), "%s %s %s %s",pszSuDo,pszMountProg,pItem->pszDevice,pItem->pszMountPoint);
- }
- else
- {
- snprintf(pszCmd, sizeof(pszCmd), "%s %s",pszMountProg,pItem->pszMountPoint);
- }
-
-
-#ifdef DEBUG_OSL_FILE
- fprintf(stderr,"executing '%s'\n",pszCmd);
-#endif
-
- nRet = system(pszCmd);
-
-#ifdef DEBUG_OSL_FILE
- fprintf(stderr,"call returned '%i'\n",nRet);
- fprintf(stderr,"exit status is '%i'\n", WEXITSTATUS(nRet));
-#endif
-
-
- switch ( WEXITSTATUS(nRet) )
- {
- case 0:
- nRet=0;
- break;
-
- case 2:
- nRet=EPERM;
- break;
-
- case 4:
- nRet=ENOENT;
- break;
-
- case 8:
- nRet=EINTR;
- break;
-
- case 16:
- nRet=EPERM;
- break;
-
- case 32:
- nRet=EBUSY;
- break;
-
- case 64:
- nRet=EAGAIN;
- break;
-
- default:
- nRet=EBUSY;
- break;
- }
-
- return ((0 == nRet) ? oslTranslateFileError(OSL_FET_SUCCESS, nRet) : oslTranslateFileError(OSL_FET_ERROR, nRet));
-}
-#endif /* LINUX */
-
-
-#if defined(LINUX)
-static oslFileError osl_unmountFloppy(oslVolumeDeviceHandle hFloppy)
-{
- oslVolumeDeviceHandleImpl* pItem=0;
- int nRet=0;
- sal_Char pszCmd[PATH_MAX];
- sal_Char* pszTmp = 0;
- sal_Char* pszSuDo = 0;
- const sal_Char* pszUmountProg = "umount";
-
- pszCmd[0] = '\0';
-
-#ifdef TRACE_OSL_FILE
- fprintf(stderr,"In osl_unmountFloppy\n");
-#endif
-
- pItem = (oslVolumeDeviceHandleImpl*) hFloppy;
-
- if ( pItem == 0 )
- {
-#ifdef TRACE_OSL_FILE
- fprintf(stderr,"Out osl_unmountFloppy [pItem==0]\n");
-#endif
- return osl_File_E_INVAL;
- }
-
- if ( pItem->ident[0] != 'O' || pItem->ident[1] != 'V' || pItem->ident[2] != 'D' || pItem->ident[3] != 'H' )
- {
-#ifdef TRACE_OSL_FILE
- fprintf(stderr,"Out osl_unmountFloppy [invalid handle]\n");
-#endif
- return osl_File_E_INVAL;
- }
-
- /* mfe: we can't use the umount(2) system call!!! */
- /* even if we are root */
- /* since mtab is not updated!!! */
- /* but we need it to be updated */
- /* some "magic" must be done */
-
-/* nRet=umount(pItem->pszDevice); */
-/* if ( nRet != 0 ) */
-/* { */
-/* nRet = errno; */
-
-/* #ifdef DEBUG_OSL_FILE */
-/* perror("mount"); */
-/* #endif */
-/* } */
-
-
- pszTmp = getenv("SAL_MOUNT_UMOUNTPROG");
- if ( pszTmp != 0 )
- {
- pszUmountProg=pszTmp;
- }
-
- pszTmp = getenv("SAL_MOUNT_SU_DO");
- if ( pszTmp != 0 )
- {
- pszSuDo=pszTmp;
- }
-
- if ( pszSuDo != 0 )
- {
- snprintf(pszCmd, sizeof(pszCmd), "%s %s %s",pszSuDo,pszUmountProg,pItem->pszMountPoint);
- }
- else
- {
- snprintf(pszCmd, sizeof(pszCmd), "%s %s",pszUmountProg,pItem->pszMountPoint);
- }
-
-
-#ifdef DEBUG_OSL_FILE
- fprintf(stderr,"executing '%s'\n",pszCmd);
-#endif
-
- nRet = system(pszCmd);
-
-#ifdef DEBUG_OSL_FILE
- fprintf(stderr,"call returned '%i'\n",nRet);
- fprintf(stderr,"exit status is '%i'\n", WEXITSTATUS(nRet));
-#endif
-
- switch ( WEXITSTATUS(nRet) )
- {
- case 0:
- nRet=0;
- break;
-
- default:
- nRet=EBUSY;
- break;
- }
-
-#ifdef TRACE_OSL_FILE
- fprintf(stderr,"Out osl_unmountFloppy [ok]\n");
-#endif
-
- return ((0 == nRet) ? oslTranslateFileError(OSL_FET_SUCCESS, nRet) : oslTranslateFileError(OSL_FET_ERROR, nRet));
-
-/* return osl_File_E_None;*/
-}
-
-#endif /* LINUX */
-
-#if defined(LINUX)
-static sal_Bool
-osl_getFloppyMountEntry(const sal_Char* pszPath, oslVolumeDeviceHandleImpl* pItem)
-{
- struct mntent* pMountEnt;
- FILE* pMountTab;
-
- pMountTab = setmntent (MOUNTTAB, "r");
- if (pMountTab == 0)
- return sal_False;
-
- while ((pMountEnt = getmntent(pMountTab)) != 0)
- {
- if ( strncmp(pMountEnt->mnt_dir, pszPath, strlen(pMountEnt->mnt_dir)) == 0
- && strncmp(pMountEnt->mnt_fsname, "/dev/fd", strlen("/dev/fd")) == 0)
- {
- memset(pItem->pszMountPoint, 0, sizeof(pItem->pszMountPoint));
- strncpy(pItem->pszMountPoint, pMountEnt->mnt_dir, sizeof(pItem->pszMountPoint) - 1);
-
- memset(pItem->pszFilePath, 0, sizeof(pItem->pszFilePath));
- strncpy(pItem->pszFilePath, pMountEnt->mnt_dir, sizeof(pItem->pszFilePath) - 1);
-
- memset(pItem->pszDevice, 0, sizeof(pItem->pszDevice));
- strncpy(pItem->pszDevice, pMountEnt->mnt_fsname, sizeof(pItem->pszDevice) - 1);
-
- endmntent (pMountTab);
- return sal_True;
- }
- }
-
- endmntent (pMountTab);
- return sal_False;
-}
-#endif /* LINUX */
-
-#if defined(LINUX)
-static sal_Bool
-osl_isFloppyMounted (oslVolumeDeviceHandleImpl* pDevice)
-{
- oslVolumeDeviceHandleImpl aItem;
-
- if ( osl_getFloppyMountEntry (pDevice->pszMountPoint, &aItem)
- && strcmp (aItem.pszMountPoint, pDevice->pszMountPoint) == 0
- && strcmp (aItem.pszDevice, pDevice->pszDevice) == 0)
- {
- return sal_True;
- }
- return sal_False;
-}
-#endif /* LINUX */
-
-/* NetBSD floppy functions have to be added here. Until we have done that,
- * we use the MACOSX definitions for nonexistent floppy.
- * */
-
-/******************************************************************************
- *
- * Dummy floppy functions: no stinking floppies
- *
- *****************************************************************************/
-
-#if (defined(MACOSX) || defined(IOS) || defined(ANDROID) || defined(NETBSD) || defined(FREEBSD) || \
- defined(AIX) || defined(OPENBSD) || defined(DRAGONFLY))
-static oslVolumeDeviceHandle osl_isFloppyDrive(const sal_Char* pszPath)
-{
- (void)pszPath;
- return NULL;
-}
-#endif
-
-#if ( defined(MACOSX) || defined(IOS) || defined(ANDROID) || defined(NETBSD) || defined(FREEBSD) || \
- defined(AIX) || defined(OPENBSD) || defined(DRAGONFLY))
-static oslFileError osl_mountFloppy(oslVolumeDeviceHandle hFloppy)
-{
- (void)hFloppy;
- return osl_File_E_BUSY;
-}
-#endif
-
-#if ( defined(MACOSX) || defined(IOS) || defined(ANDROID) || defined(NETBSD) || defined(FREEBSD) || \
- defined(AIX) || defined(OPENBSD) || defined(DRAGONFLY))
-static oslFileError osl_unmountFloppy(oslVolumeDeviceHandle hFloppy)
-{
- (void)hFloppy;
- return osl_File_E_BUSY;
-}
-#endif
-
-#if ( defined(NETBSD) || defined(IOS) || defined(FREEBSD) || defined(OPENBSD) || defined(DRAGONFLY) )
-static sal_Bool osl_getFloppyMountEntry(const sal_Char* pszPath, oslVolumeDeviceHandleImpl* pItem)
-{
- return sal_False;
-}
-#endif /* NETBSD || FREEBSD || OPENBSD */
-
-#if ( defined(NETBSD) || defined(IOS) || defined(FREEBSD) || defined(OPENBSD) || defined(DRAGONFLY) )
-static sal_Bool osl_isFloppyMounted(oslVolumeDeviceHandleImpl* pDevice)
-{
- return sal_False;
-}
-#endif /* NETBSD || FREEBSD || OPENBSD */
-
-
-#ifdef DEBUG_OSL_FILE
-static void osl_printFloppyHandle(oslVolumeDeviceHandleImpl* pItem)
-{
- if (pItem == 0 )
- {
- fprintf(stderr,"NULL Handle\n");
- return;
- }
- if ( pItem->ident[0] != 'O' || pItem->ident[1] != 'V' || pItem->ident[2] != 'D' || pItem->ident[3] != 'H' )
- {
-#ifdef TRACE_OSL_FILE
- fprintf(stderr,"Invalid Handle]\n");
-#endif
- return;
- }
-
-
- fprintf(stderr,"MountPoint : '%s'\n",pItem->pszMountPoint);
- fprintf(stderr,"FilePath : '%s'\n",pItem->pszFilePath);
- fprintf(stderr,"Device : '%s'\n",pItem->pszDevice);
-
- return;
-}
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/interlck.c b/sal/osl/unx/interlck.c
deleted file mode 100644
index a32f67c11..000000000
--- a/sal/osl/unx/interlck.c
+++ /dev/null
@@ -1,196 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#include "system.h"
-
-#include <osl/armarch.h>
-#include <osl/interlck.h>
-#include <osl/diagnose.h>
-
-#if ( defined ( SOLARIS ) || defined ( NETBSD ) ) && defined ( SPARC )
-#error please use asm/interlck_sparc.s
-#elif defined ( SOLARIS) && defined ( X86 )
-#error please use asm/interlck_x86.s
-#elif defined ( ARM ) && (( __GNUC__ < 4 ) || (( __GNUC__ == 4) && ( __GNUC_MINOR__ < 6 ))) && ( __ARM_ARCH__ >= 6)
-// assembler implementation for gcc <4.6 on arm
-// originally contributed by Eric Bachard / OOo4Kids
-// replaced with the asm code generated by Linaro gcc 4.5
-// which includes memory barriers to make it SMP-safe
-// #i117017# and lp#726529
-oslInterlockedCount SAL_CALL osl_incrementInterlockedCount(oslInterlockedCount* pCount)
-{
- register oslInterlockedCount nCount __asm__ ("r1");
- int nResult;
-
- __asm__ __volatile__ (
-" dmb\n"
-"1: ldrex %0, [%3]\n"
-" add %0, %0, #1\n"
-" strex %1, %0, [%3]\n"
-" teq %1, #0\n"
-" bne 1b\n"
-" dmb\n"
- : "=&r" (nCount), "=&r" (nResult), "=m" (*pCount)
- : "r" (pCount)
- : "memory");
-
- return nCount;
-}
-
-oslInterlockedCount SAL_CALL osl_decrementInterlockedCount(oslInterlockedCount* pCount)
-{
- register oslInterlockedCount nCount __asm__ ("r1");
- int nResult;
-
- __asm__ __volatile__ (
-" dmb\n"
-"0: ldrex %0, [%3]\n"
-" sub %0, %0, #1\n"
-" strex %1, %0, [%3]\n"
-" teq %1, #0\n"
-" bne 0b\n"
-" dmb\n"
- : "=&r" (nCount), "=&r" (nResult), "=m" (*pCount)
- : "r" (pCount)
- : "memory");
-
- return nCount;
-}
-#elif defined ( GCC ) && ( defined ( X86 ) || defined ( X86_64 ) )
-/* That's possible on x86-64 too since oslInterlockedCount is a sal_Int32 */
-
-extern int osl_isSingleCPU;
-
-/*****************************************************************************/
-/* osl_incrementInterlockedCount */
-/*****************************************************************************/
-oslInterlockedCount SAL_CALL osl_incrementInterlockedCount(oslInterlockedCount* pCount)
-{
- // Fast case for old, slow, single CPU Intel machines for whom
- // interlocking is a performance nightmare.
- register oslInterlockedCount nCount asm("%eax");
- nCount = 1;
-
- if ( osl_isSingleCPU ) {
- __asm__ __volatile__ (
- "xaddl %0, %1\n\t"
- : "+r" (nCount), "+m" (*pCount)
- : /* nothing */
- : "memory");
- return ++nCount;
- }
-#if ( __GNUC__ > 4 ) || (( __GNUC__ == 4) && ( __GNUC_MINOR__ >= 4 ))
- else
- return __sync_add_and_fetch (pCount, 1);
-#else
- else {
- __asm__ __volatile__ (
- "lock\n\t"
- "xaddl %0, %1\n\t"
- : "+r" (nCount), "+m" (*pCount)
- : /* nothing */
- : "memory");
- }
- return ++nCount;
-#endif
-}
-
-oslInterlockedCount SAL_CALL osl_decrementInterlockedCount(oslInterlockedCount* pCount)
-{
- register oslInterlockedCount nCount asm("%eax");
- nCount = -1;
-
- if ( osl_isSingleCPU ) {
- __asm__ __volatile__ (
- "xaddl %0, %1\n\t"
- : "+r" (nCount), "+m" (*pCount)
- : /* nothing */
- : "memory");
- return --nCount;
- }
-#if ( __GNUC__ > 4 ) || (( __GNUC__ == 4) && ( __GNUC_MINOR__ >= 4 ))
- else
- return __sync_sub_and_fetch (pCount, 1);
-#else
- else {
- __asm__ __volatile__ (
- "lock\n\t"
- "xaddl %0, %1\n\t"
- : "+r" (nCount), "+m" (*pCount)
- : /* nothing */
- : "memory");
- }
- return --nCount;
-#endif
-}
-#elif ( __GNUC__ > 4 ) || (( __GNUC__ == 4) && ( __GNUC_MINOR__ >= 4 ))
-oslInterlockedCount SAL_CALL osl_incrementInterlockedCount(oslInterlockedCount* pCount)
-{
- return __sync_add_and_fetch(pCount, 1);
-}
-oslInterlockedCount SAL_CALL osl_decrementInterlockedCount(oslInterlockedCount* pCount)
-{
- return __sync_sub_and_fetch(pCount, 1);
-}
-#else
-/* use only if nothing else works, expensive due to single mutex for all reference counts */
-
-static pthread_mutex_t InterLock = PTHREAD_MUTEX_INITIALIZER;
-
-/*****************************************************************************/
-/* osl_incrementInterlockedCount */
-/*****************************************************************************/
-oslInterlockedCount SAL_CALL osl_incrementInterlockedCount(oslInterlockedCount* pCount)
-{
- oslInterlockedCount Count;
-
- pthread_mutex_lock(&InterLock);
- Count = ++(*pCount);
- pthread_mutex_unlock(&InterLock);
-
- return (Count);
-}
-
-/*****************************************************************************/
-/* osl_decrementInterlockedCount */
-/*****************************************************************************/
-oslInterlockedCount SAL_CALL osl_decrementInterlockedCount(oslInterlockedCount* pCount)
-{
- oslInterlockedCount Count;
-
- pthread_mutex_lock(&InterLock);
- Count = --(*pCount);
- pthread_mutex_unlock(&InterLock);
-
- return (Count);
-}
-
-#endif /* default */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/makefile.mk b/sal/osl/unx/makefile.mk
deleted file mode 100644
index 2ec11e16f..000000000
--- a/sal/osl/unx/makefile.mk
+++ /dev/null
@@ -1,183 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=sal
-.IF "$(WORK_STAMP)"=="MIX364"
-TARGET=cppsal
-.ELSE
-TARGET=cpposl
-.ENDIF
-USE_LDUMP2=TRUE
-
-PROJECTPCH4DLL=TRUE
-PROJECTPCH=cont_pch
-PROJECTPCHSOURCE=cont_pch
-
-TARGETTYPE=CUI
-
-ENABLE_EXCEPTIONS=TRUE
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-.IF "$(OS)" == "IOS"
-CFLAGSCXX+=-D__IPHONE_OS_VERSION_MIN_REQUIRED=40300
-.ENDIF
-
-# --- Files --------------------------------------------------------
-
-SLOFILES= \
- $(SLO)$/conditn.obj \
- $(SLO)$/diagnose.obj \
- $(SLO)$/semaphor.obj \
- $(SLO)$/socket.obj \
- $(SLO)$/interlck.obj \
- $(SLO)$/mutex.obj \
- $(SLO)$/nlsupport.obj \
- $(SLO)$/thread.obj \
- $(SLO)$/module.obj \
- $(SLO)$/process.obj \
- $(SLO)$/security.obj \
- $(SLO)$/profile.obj \
- $(SLO)$/time.obj \
- $(SLO)$/signal.obj \
- $(SLO)$/pipe.obj \
- $(SLO)$/system.obj \
- $(SLO)$/util.obj \
- $(SLO)$/tempfile.obj\
- $(SLO)$/file.obj \
- $(SLO)$/file_misc.obj\
- $(SLO)$/file_url.obj\
- $(SLO)$/file_error_transl.obj\
- $(SLO)$/file_path_helper.obj\
- $(SLO)$/file_stat.obj \
- $(SLO)$/file_volume.obj \
- $(SLO)$/uunxapi.obj\
- $(SLO)$/process_impl.obj\
- $(SLO)$/salinit.obj \
- $(SLO)$/readwrite_helper.obj
-
-OBJFILES= $(OBJ)$/conditn.obj \
- $(OBJ)$/diagnose.obj \
- $(OBJ)$/semaphor.obj \
- $(OBJ)$/socket.obj \
- $(OBJ)$/interlck.obj \
- $(OBJ)$/mutex.obj \
- $(OBJ)$/nlsupport.obj \
- $(OBJ)$/thread.obj \
- $(OBJ)$/module.obj \
- $(OBJ)$/process.obj \
- $(OBJ)$/security.obj \
- $(OBJ)$/profile.obj \
- $(OBJ)$/time.obj \
- $(OBJ)$/signal.obj \
- $(OBJ)$/pipe.obj \
- $(OBJ)$/system.obj \
- $(OBJ)$/util.obj \
- $(OBJ)$/tempfile.obj\
- $(OBJ)$/file.obj \
- $(OBJ)$/file_misc.obj\
- $(OBJ)$/file_url.obj\
- $(OBJ)$/file_error_transl.obj\
- $(OBJ)$/file_path_helper.obj\
- $(OBJ)$/file_stat.obj \
- $(OBJ)$/file_volume.obj \
- $(OBJ)$/uunxapi.obj\
- $(OBJ)$/process_impl.obj\
- $(OBJ)$/salinit.obj \
- $(OBJ)$/readwrite_helper.obj
-
-
-.IF "$(OS)"=="MACOSX" || "$(OS)"=="IOS"
-SLOFILES += $(SLO)$/osxlocale.obj
-.ENDIF
-
-.IF "$(OS)"=="SOLARIS" || "$(OS)"=="FREEBSD" || "$(OS)"=="NETBSD" || \
- "$(OS)$(CPU)"=="LINUXS" || "$(OS)"=="MACOSX" || "$(OS)"=="AIX" || \
- "$(OS)"=="OPENBSD" || "$(OS)"=="DRAGONFLY"
-SLOFILES += $(SLO)$/backtrace.obj
-OBJFILES += $(OBJ)$/backtrace.obj
-.ENDIF
-
-# --- Targets ------------------------------------------------------
-
-.IF "$(COM)"=="C50"
-APP1STDLIBS+=-lC
-.ENDIF
-
-.IF "$(ENABLE_CRASHDUMP)" != "" || "$(PRODUCT)" == ""
-CFLAGS+=-DSAL_ENABLE_CRASH_REPORT
-.ENDIF
-
-.IF "$(OS)" == "IOS"
-CFLAGS+=-DNO_DL_FUNCTIONS -DNO_CHILD_PROCESSES
-.ENDIF
-
-.INCLUDE : target.mk
-
-.IF "$(OS)$(CPU)"=="SOLARISU" || "$(OS)$(CPU)"=="SOLARISS" || "$(OS)$(CPU)"=="NETBSDS" || "$(OS)$(CPU)"=="LINUXS"
-
-$(SLO)$/interlck.obj: $(SLO)$/interlck.o
- touch $(SLO)$/interlck.obj
-
-$(OBJ)$/interlck.obj: $(OBJ)$/interlck.o
- touch $(OBJ)$/interlck.obj
-
-$(SLO)$/interlck.o: $(MISC)$/interlck_sparc.s
- $(ASM) $(AFLAGS) -o $@ $<
-
-$(OBJ)$/interlck.o: $(MISC)$/interlck_sparc.s
- $(ASM) $(AFLAGS) -o $@ $<
-
-$(MISC)$/interlck_sparc.s: asm/interlck_sparc.s
- tr -d "\015" < $< > $@
-
-.ENDIF
-
-.IF "$(OS)$(CPU)"=="SOLARISI"
-
-$(SLO)$/interlck.obj: $(SLO)$/interlck.o
- touch $(SLO)$/interlck.obj
-
-$(OBJ)$/interlck.obj: $(OBJ)$/interlck.o
- touch $(OBJ)$/interlck.obj
-
-$(SLO)$/interlck.o: $(MISC)$/interlck_x86.s
- $(ASM) $(AFLAGS) -o $@ $<
-
-$(OBJ)$/interlck.o: $(MISC)$/interlck_x86.s
- $(ASM) $(AFLAGS) -o $@ $<
-
-$(MISC)$/interlck_x86.s: asm/interlck_x86.s
- tr -d "\015" < $< > $@
-
-.ENDIF
diff --git a/sal/osl/unx/module.c b/sal/osl/unx/module.c
deleted file mode 100644
index fefb31370..000000000
--- a/sal/osl/unx/module.c
+++ /dev/null
@@ -1,317 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <sal/types.h>
-#include <osl/diagnose.h>
-#include <osl/module.h>
-#include <osl/thread.h>
-#include <osl/process.h>
-#include <osl/file.h>
-
-#include "system.h"
-
-#if OSL_DEBUG_LEVEL > 1
-#include <stdio.h>
-#endif
-
-#ifdef AIX
-#include <sys/ldr.h>
-#endif
-
-/* implemented in file.c */
-extern int UnicodeToText(char *, size_t, const sal_Unicode *, sal_Int32);
-
-/*****************************************************************************/
-/* osl_loadModule */
-/*****************************************************************************/
-
-oslModule SAL_CALL osl_loadModule(rtl_uString *ustrModuleName, sal_Int32 nRtldMode)
-{
- oslModule pModule=0;
- rtl_uString* ustrTmp = NULL;
-
- OSL_ENSURE(ustrModuleName,"osl_loadModule : string is not valid");
-
- /* ensure ustrTmp hold valid string */
- if (osl_File_E_None != osl_getSystemPathFromFileURL(ustrModuleName, &ustrTmp))
- rtl_uString_assign(&ustrTmp, ustrModuleName);
-
- if (ustrTmp)
- {
- char buffer[PATH_MAX];
-
- if (UnicodeToText(buffer, PATH_MAX, ustrTmp->buffer, ustrTmp->length))
- pModule = osl_loadModuleAscii(buffer, nRtldMode);
- rtl_uString_release(ustrTmp);
- }
-
- return pModule;
-}
-
-/*****************************************************************************/
-/* osl_loadModuleAscii */
-/*****************************************************************************/
-
-oslModule SAL_CALL osl_loadModuleAscii(const sal_Char *pModuleName, sal_Int32 nRtldMode)
-{
- OSL_ASSERT(
- (nRtldMode & SAL_LOADMODULE_LAZY) == 0 ||
- (nRtldMode & SAL_LOADMODULE_NOW) == 0); /* only either LAZY or NOW */
- if (pModuleName)
- {
-#ifndef NO_DL_FUNCTIONS
- int rtld_mode =
- ((nRtldMode & SAL_LOADMODULE_NOW) ? RTLD_NOW : RTLD_LAZY) |
- ((nRtldMode & SAL_LOADMODULE_GLOBAL) ? RTLD_GLOBAL : RTLD_LOCAL);
- void* pLib = dlopen(pModuleName, rtld_mode);
-
-#if OSL_DEBUG_LEVEL > 1
- if (pLib == 0)
- OSL_TRACE("Error osl_loadModule: %s\n", dlerror());
-#endif /* OSL_DEBUG_LEVEL */
-
- return ((oslModule)(pLib));
-
-#else /* NO_DL_FUNCTIONS */
- printf("No DL Functions\n");
-#endif /* NO_DL_FUNCTIONS */
- }
- return NULL;
-}
-
-/*****************************************************************************/
-/* osl_getModuleHandle */
-/*****************************************************************************/
-
-sal_Bool SAL_CALL
-osl_getModuleHandle(rtl_uString *pModuleName, oslModule *pResult)
-{
- (void) pModuleName; /* avoid warning about unused parameter */
-#if !defined(NO_DL_FUNCTIONS) || defined(IOS)
- *pResult = (oslModule) RTLD_DEFAULT;
-#else
- *pResult = NULL;
-#endif
- return sal_True;
-}
-
-/*****************************************************************************/
-/* osl_unloadModule */
-/*****************************************************************************/
-void SAL_CALL osl_unloadModule(oslModule hModule)
-{
- if (hModule)
- {
-#ifndef NO_DL_FUNCTIONS
- int nRet = dlclose(hModule);
-
-#if OSL_DEBUG_LEVEL > 1
- if (nRet != 0)
- {
- fprintf(stderr, "Error osl_unloadModule: %s\n", dlerror());
- }
-#else
- (void) nRet;
-#endif /* if OSL_DEBUG_LEVEL */
-
-#endif /* ifndef NO_DL_FUNCTIONS */
- }
-}
-
-/*****************************************************************************/
-/* osl_getSymbol */
-/*****************************************************************************/
-void* SAL_CALL
-osl_getSymbol(oslModule Module, rtl_uString* pSymbolName)
-{
- return (void *) osl_getFunctionSymbol(Module, pSymbolName);
-}
-
-
-/*****************************************************************************/
-/* osl_getAsciiFunctionSymbol */
-/*****************************************************************************/
-oslGenericFunction SAL_CALL
-osl_getAsciiFunctionSymbol(oslModule Module, const sal_Char *pSymbol)
-{
- void *fcnAddr = NULL;
-
-/* We do want to use dlsym on iOS */
-#if !defined(NO_DL_FUNCTIONS) || defined(IOS)
- if (pSymbol)
- {
- fcnAddr = dlsym(Module, pSymbol);
-
- if (!fcnAddr)
- OSL_TRACE("Error osl_getAsciiFunctionSymbol: %s\n", dlerror());
- }
-#endif
-
- return (oslGenericFunction) fcnAddr;
-}
-
-/*****************************************************************************/
-/* osl_getFunctionSymbol */
-/*****************************************************************************/
-oslGenericFunction SAL_CALL
-osl_getFunctionSymbol(oslModule module, rtl_uString *puFunctionSymbolName)
-{
- oslGenericFunction pSymbol = NULL;
-
- if( puFunctionSymbolName )
- {
- rtl_String* pSymbolName = NULL;
-
- rtl_uString2String( &pSymbolName,
- rtl_uString_getStr(puFunctionSymbolName),
- rtl_uString_getLength(puFunctionSymbolName),
- RTL_TEXTENCODING_UTF8,
- OUSTRING_TO_OSTRING_CVTFLAGS );
-
- if( pSymbolName != NULL )
- {
- pSymbol = osl_getAsciiFunctionSymbol(module, rtl_string_getStr(pSymbolName));
- rtl_string_release(pSymbolName);
- }
- }
-
- return pSymbol;
-}
-
-/*****************************************************************************/
-/* osl_getModuleURLFromAddress */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_getModuleURLFromAddress(void * addr, rtl_uString ** ppLibraryUrl)
-{
- sal_Bool result = sal_False;
-/* Bah, we do want to use dladdr here also on iOS, I think? */
-#if !defined(NO_DL_FUNCTIONS) || defined(IOS)
-#if defined(AIX)
- int i;
- int size = 4 * 1024;
- char *buf, *filename=NULL;
- struct ld_info *lp;
-
- if ((buf = malloc(size)) == NULL)
- return result;
-
- while((i = loadquery(L_GETINFO, buf, size)) == -1 && errno == ENOMEM)
- {
- size += 4 * 1024;
- if ((buf = malloc(size)) == NULL)
- break;
- }
-
- lp = (struct ld_info*) buf;
- while (lp)
- {
- unsigned long start = (unsigned long)lp->ldinfo_dataorg;
- unsigned long end = start + lp->ldinfo_datasize;
- if (start <= (unsigned long)addr && end > (unsigned long)addr)
- {
- filename = lp->ldinfo_filename;
- break;
- }
- if (!lp->ldinfo_next)
- break;
- lp = (struct ld_info*) ((char *) lp + lp->ldinfo_next);
- }
-
- if (filename)
- {
- rtl_uString * workDir = NULL;
- osl_getProcessWorkingDir(&workDir);
- if (workDir)
- {
-#if OSL_DEBUG_LEVEL > 1
- OSL_TRACE("module.c::osl_getModuleURLFromAddress - %s\n", filename);
-#endif
- rtl_string2UString(ppLibraryUrl,
- filename,
- strlen(filename),
- osl_getThreadTextEncoding(),
- OSTRING_TO_OUSTRING_CVTFLAGS);
-
- OSL_ASSERT(*ppLibraryUrl != NULL);
- osl_getFileURLFromSystemPath(*ppLibraryUrl, ppLibraryUrl);
- osl_getAbsoluteFileURL(workDir, *ppLibraryUrl, ppLibraryUrl);
-
- rtl_uString_release(workDir);
- result = sal_True;
- }
- else
- {
- result = sal_False;
- }
- }
-
- free(buf);
-#else
- Dl_info dl_info;
-
- if ((result = dladdr(addr, &dl_info)) != 0)
- {
- rtl_uString * workDir = NULL;
- osl_getProcessWorkingDir(&workDir);
- if (workDir)
- {
-#if OSL_DEBUG_LEVEL > 1
- OSL_TRACE("module.c::osl_getModuleURLFromAddress - %s\n", dl_info.dli_fname);
-#endif
- rtl_string2UString(ppLibraryUrl,
- dl_info.dli_fname,
- strlen(dl_info.dli_fname),
- osl_getThreadTextEncoding(),
- OSTRING_TO_OUSTRING_CVTFLAGS);
-
- OSL_ASSERT(*ppLibraryUrl != NULL);
- osl_getFileURLFromSystemPath(*ppLibraryUrl, ppLibraryUrl);
- osl_getAbsoluteFileURL(workDir, *ppLibraryUrl, ppLibraryUrl);
-
- rtl_uString_release(workDir);
- result = sal_True;
- }
- else
- {
- result = sal_False;
- }
- }
-#endif
-#endif
- return result;
-}
-
-/*****************************************************************************/
-/* osl_getModuleURLFromFunctionAddress */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_getModuleURLFromFunctionAddress(oslGenericFunction addr, rtl_uString ** ppLibraryUrl)
-{
- return osl_getModuleURLFromAddress((void*)addr, ppLibraryUrl);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/mutex.c b/sal/osl/unx/mutex.c
deleted file mode 100644
index d4ca66d03..000000000
--- a/sal/osl/unx/mutex.c
+++ /dev/null
@@ -1,224 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "system.h"
-
-#include <osl/mutex.h>
-#include <osl/diagnose.h>
-
-#include <pthread.h>
-#include <stdlib.h>
-
-#if defined LINUX /* bad hack */
-int pthread_mutexattr_setkind_np(pthread_mutexattr_t *, int);
-#define pthread_mutexattr_settype pthread_mutexattr_setkind_np
-#define PTHREAD_MUTEX_RECURSIVE PTHREAD_MUTEX_RECURSIVE_NP
-#endif
-
-/*
- Implementation notes:
- oslMutex hides a pointer to the oslMutexImpl structure, which
- ist needed to manage recursive locks on a mutex.
-
-*/
-
-typedef struct _oslMutexImpl
-{
- pthread_mutex_t mutex;
-} oslMutexImpl;
-
-
-/*****************************************************************************/
-/* osl_createMutex */
-/*****************************************************************************/
-oslMutex SAL_CALL osl_createMutex()
-{
- oslMutexImpl* pMutex = (oslMutexImpl*) malloc(sizeof(oslMutexImpl));
- pthread_mutexattr_t aMutexAttr;
- int nRet=0;
-
- OSL_ASSERT(pMutex);
-
- if ( pMutex == 0 )
- {
- return 0;
- }
-
- pthread_mutexattr_init(&aMutexAttr);
-
- nRet = pthread_mutexattr_settype(&aMutexAttr, PTHREAD_MUTEX_RECURSIVE);
- if( nRet == 0 )
- nRet = pthread_mutex_init(&(pMutex->mutex), &aMutexAttr);
- if ( nRet != 0 )
- {
- OSL_TRACE("osl_createMutex : mutex init/setattr failed. Errno: %d; %s\n",
- nRet, strerror(nRet));
-
- free(pMutex);
- pMutex = 0;
- }
-
- pthread_mutexattr_destroy(&aMutexAttr);
-
- return (oslMutex) pMutex;
-}
-
-/*****************************************************************************/
-/* osl_destroyMutex */
-/*****************************************************************************/
-void SAL_CALL osl_destroyMutex(oslMutex Mutex)
-{
- oslMutexImpl* pMutex = (oslMutexImpl*) Mutex;
-
- OSL_ASSERT(pMutex);
-
- if ( pMutex != 0 )
- {
- int nRet=0;
-
- nRet = pthread_mutex_destroy(&(pMutex->mutex));
- if ( nRet != 0 )
- {
- OSL_TRACE("osl_destroyMutex : mutex destroy failed. Errno: %d; %s\n",
- nRet, strerror(nRet));
- }
-
- free(pMutex);
- }
-
- return;
-}
-
-/*****************************************************************************/
-/* osl_acquireMutex */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_acquireMutex(oslMutex Mutex)
-{
- oslMutexImpl* pMutex = (oslMutexImpl*) Mutex;
-
- OSL_ASSERT(pMutex);
-
- if ( pMutex != 0 )
- {
- int nRet=0;
-
- nRet = pthread_mutex_lock(&(pMutex->mutex));
- if ( nRet != 0 )
- {
- OSL_TRACE("osl_acquireMutex : mutex lock failed. Errno: %d; %s\n",
- nRet, strerror(nRet));
- return sal_False;
- }
- return sal_True;
- }
-
- /* not initialized */
- return sal_False;
-}
-
-/*****************************************************************************/
-/* osl_tryToAcquireMutex */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_tryToAcquireMutex(oslMutex Mutex)
-{
- oslMutexImpl* pMutex = (oslMutexImpl*) Mutex;
-
- OSL_ASSERT(pMutex);
-
- if ( pMutex )
- {
- int nRet = 0;
- nRet = pthread_mutex_trylock(&(pMutex->mutex));
- if ( nRet != 0 )
- return sal_False;
-
- return sal_True;
- }
-
- /* not initialized */
- return sal_False;
-}
-
-/*****************************************************************************/
-/* osl_releaseMutex */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_releaseMutex(oslMutex Mutex)
-{
- oslMutexImpl* pMutex = (oslMutexImpl*) Mutex;
-
- OSL_ASSERT(pMutex);
-
- if ( pMutex )
- {
- int nRet=0;
- nRet = pthread_mutex_unlock(&(pMutex->mutex));
- if ( nRet != 0 )
- {
- OSL_TRACE("osl_releaseMutex : mutex unlock failed. Errno: %d; %s\n",
- nRet, strerror(nRet));
- return sal_False;
- }
-
- return sal_True;
- }
-
- /* not initialized */
- return sal_False;
-}
-
-/*****************************************************************************/
-/* osl_getGlobalMutex */
-/*****************************************************************************/
-
-static oslMutexImpl globalMutexImpl;
-
-static void globalMutexInitImpl(void) {
- pthread_mutexattr_t attr;
- if (pthread_mutexattr_init(&attr) != 0 ||
- pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE) ||
- pthread_mutex_init(&globalMutexImpl.mutex, &attr) != 0 ||
- pthread_mutexattr_destroy(&attr) != 0)
- {
- abort();
- }
-}
-
-oslMutex * SAL_CALL osl_getGlobalMutex()
-{
- /* necessary to get a "oslMutex *" */
- static oslMutex globalMutex = (oslMutex) &globalMutexImpl;
-
- static pthread_once_t once = PTHREAD_ONCE_INIT;
- if (pthread_once(&once, &globalMutexInitImpl) != 0) {
- abort();
- }
-
- return &globalMutex;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/nlsupport.c b/sal/osl/unx/nlsupport.c
deleted file mode 100644
index c02af7852..000000000
--- a/sal/osl/unx/nlsupport.c
+++ /dev/null
@@ -1,975 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <osl/nlsupport.h>
-#include <osl/diagnose.h>
-#include <osl/process.h>
-#include <rtl/memory.h>
-
-#if defined(LINUX) || defined(SOLARIS) || defined(NETBSD) || \
- defined(FREEBSD) || defined(MACOSX) || defined(IOS) || defined(OPENBSD) || \
- defined(DRAGONFLY)
-#include <pthread.h>
-#if !defined(MACOSX) && !defined(IOS)
- #include <locale.h>
- #include <langinfo.h>
-#else
-#include <osl/module.h>
-#include <osl/thread.h>
-#endif /* !MACOSX && !IOS */
-#endif /* LINUX || SOLARIS || NETBSD || MACOSX || IOS */
-
-#include <string.h>
-
-/*****************************************************************************
- typedefs
- *****************************************************************************/
-
-
-typedef struct {
- const char *key;
- const rtl_TextEncoding value;
-} _pair;
-
-
-/*****************************************************************************
- compare function for binary search
- *****************************************************************************/
-
-static int
-_pair_compare (const char *key, const _pair *pair)
-{
- int result = rtl_str_compareIgnoreAsciiCase( key, pair->key );
- return result;
-}
-
-/*****************************************************************************
- binary search on encoding tables
- *****************************************************************************/
-
-static const _pair*
-_pair_search (const char *key, const _pair *base, unsigned int member )
-{
- unsigned int lower = 0;
- unsigned int upper = member;
- unsigned int current;
- int comparison;
-
- /* check for validity of input */
- if ( (key == NULL) || (base == NULL) || (member == 0) )
- return NULL;
-
- /* binary search */
- while ( lower < upper )
- {
- current = (lower + upper) / 2;
- comparison = _pair_compare( key, base + current );
- if (comparison < 0)
- upper = current;
- else if (comparison > 0)
- lower = current + 1;
- else
- return base + current;
- }
-
- return NULL;
-}
-
-
-/*****************************************************************************
- convert rtl_Locale to locale string
- *****************************************************************************/
-
-static char * _compose_locale( rtl_Locale * pLocale, char * buffer, size_t n )
-{
- /* check if a valid locale is specified */
- if( pLocale && pLocale->Language &&
- (pLocale->Language->length == 2 || pLocale->Language->length == 3) )
- {
- size_t offset = 0;
-
- /* convert language code to ascii */
- {
- rtl_String *pLanguage = NULL;
-
- rtl_uString2String( &pLanguage,
- pLocale->Language->buffer, pLocale->Language->length,
- RTL_TEXTENCODING_ASCII_US, OUSTRING_TO_OSTRING_CVTFLAGS );
-
- if( SAL_INT_CAST(sal_uInt32, pLanguage->length) < n )
- {
- strcpy( buffer, pLanguage->buffer );
- offset = pLanguage->length;
- }
-
- rtl_string_release( pLanguage );
- }
-
- /* convert country code to ascii */
- if( pLocale->Country && (pLocale->Country->length == 2) )
- {
- rtl_String *pCountry = NULL;
-
- rtl_uString2String( &pCountry,
- pLocale->Country->buffer, pLocale->Country->length,
- RTL_TEXTENCODING_ASCII_US, OUSTRING_TO_OSTRING_CVTFLAGS );
-
- if( offset + pCountry->length + 1 < n )
- {
- strcpy( buffer + offset++, "_" );
- strcpy( buffer + offset, pCountry->buffer );
- offset += pCountry->length;
- }
-
- rtl_string_release( pCountry );
- }
-
- /* convert variant to ascii - check if there is enough space for the variant string */
- if( pLocale->Variant && pLocale->Variant->length &&
- ( SAL_INT_CAST(sal_uInt32, pLocale->Variant->length) < n - 6 ) )
- {
- rtl_String *pVariant = NULL;
-
- rtl_uString2String( &pVariant,
- pLocale->Variant->buffer, pLocale->Variant->length,
- RTL_TEXTENCODING_ASCII_US, OUSTRING_TO_OSTRING_CVTFLAGS );
-
- if( offset + pVariant->length + 1 < n )
- {
- strcpy( buffer + offset, pVariant->buffer );
- offset += pVariant->length;
- }
-
- rtl_string_release( pVariant );
- }
-
- return buffer;
- }
-
- return NULL;
-}
-
-/*****************************************************************************
- convert locale string to rtl_Locale
- *****************************************************************************/
-
-static rtl_Locale * _parse_locale( const char * locale )
-{
- static sal_Unicode c_locale[2] = { (sal_Unicode) 'C', 0 };
-
- /* check if locale contains a valid string */
- if( locale )
- {
- size_t len = strlen( locale );
-
- if( len >= 2 )
- {
- rtl_uString * pLanguage = NULL;
- rtl_uString * pCountry = NULL;
- rtl_uString * pVariant = NULL;
-
- size_t offset = 2;
-
- rtl_Locale * ret;
-
- /* language is a two or three letter code */
- if( (len > 3 && '_' == locale[3]) || (len == 3 && '_' != locale[2]) )
- offset = 3;
-
- /* convert language code to unicode */
- rtl_string2UString( &pLanguage, locale, offset, RTL_TEXTENCODING_ASCII_US, OSTRING_TO_OUSTRING_CVTFLAGS );
- OSL_ASSERT(pLanguage != NULL);
-
- /* convert country code to unicode */
- if( len >= offset+3 && '_' == locale[offset] )
- {
- rtl_string2UString( &pCountry, locale + offset + 1, 2, RTL_TEXTENCODING_ASCII_US, OSTRING_TO_OUSTRING_CVTFLAGS );
- OSL_ASSERT(pCountry != NULL);
- offset += 3;
- }
-
- /* convert variant code to unicode - do not rely on "." as delimiter */
- if( len > offset ) {
- rtl_string2UString( &pVariant, locale + offset, len - offset, RTL_TEXTENCODING_ASCII_US, OSTRING_TO_OUSTRING_CVTFLAGS );
- OSL_ASSERT(pVariant != NULL);
- }
-
- ret = rtl_locale_register( pLanguage->buffer, pCountry ? pCountry->buffer : c_locale + 1, pVariant ? pVariant->buffer : c_locale + 1 );
-
- if (pVariant) rtl_uString_release(pVariant);
- if (pCountry) rtl_uString_release(pCountry);
- if (pLanguage) rtl_uString_release(pLanguage);
-
- return ret;
- }
- else
- return rtl_locale_register( c_locale, c_locale + 1, c_locale + 1 );
- }
-
- return NULL;
-}
-
-#if defined(LINUX) || defined(SOLARIS) || defined(NETBSD) || \
- defined(FREEBSD) || defined(OPENBSD) || defined(DRAGONFLY)
-
-/*
- * This implementation of osl_getTextEncodingFromLocale maps
- * from nl_langinfo(CODESET) to rtl_textencoding defines.
- * nl_langinfo() is supported only on Linux, Solaris,
- * >= NetBSD 1.6 and >= FreeBSD 4.4
- *
- * This routine is SLOW because of the setlocale call, so
- * grab the result and cache it.
- *
- * XXX this code has the usual mt problems aligned with setlocale() XXX
- */
-
-#ifdef LINUX
-#if !defined(CODESET)
-#define CODESET _NL_CTYPE_CODESET_NAME
-#endif
-#endif
-
-/*
- * _nl_language_list[] is an array list of supported encodings. Because
- * we are using a binary search, the list has to be in ascending order.
- * We are comparing the encodings case insensitiv, so the list has
- * to be completly upper- , or lowercase.
- */
-
-#if defined(SOLARIS)
-
-/* The values in the below list can be obtained with a script like
- * #!/bin/sh
- * for i in `locale -a`; do
- * LC_ALL=$i locale -k code_set_name
- * done
- */
-const _pair _nl_language_list[] = {
- { "5601", RTL_TEXTENCODING_EUC_KR }, /* ko_KR.EUC */
- { "646", RTL_TEXTENCODING_ISO_8859_1 }, /* fake: ASCII_US */
- { "ANSI-1251", RTL_TEXTENCODING_MS_1251 }, /* ru_RU.ANSI1251 */
- { "BIG5", RTL_TEXTENCODING_BIG5 }, /* zh_CN.BIG5 */
- { "BIG5-HKSCS", RTL_TEXTENCODING_BIG5_HKSCS }, /* zh_CN.BIG5HK */
- { "CNS11643", RTL_TEXTENCODING_EUC_TW }, /* zh_TW.EUC */
- { "EUCJP", RTL_TEXTENCODING_EUC_JP }, /* ja_JP.eucjp */
- { "GB18030", RTL_TEXTENCODING_GB_18030 }, /* zh_CN.GB18030 */
- { "GB2312", RTL_TEXTENCODING_GB_2312 }, /* zh_CN */
- { "GBK", RTL_TEXTENCODING_GBK }, /* zh_CN.GBK */
- { "ISO8859-1", RTL_TEXTENCODING_ISO_8859_1 },
- { "ISO8859-10", RTL_TEXTENCODING_ISO_8859_10 },
- { "ISO8859-13", RTL_TEXTENCODING_ISO_8859_13 }, /* lt_LT lv_LV */
- { "ISO8859-14", RTL_TEXTENCODING_ISO_8859_14 },
- { "ISO8859-15", RTL_TEXTENCODING_ISO_8859_15 },
- { "ISO8859-2", RTL_TEXTENCODING_ISO_8859_2 },
- { "ISO8859-3", RTL_TEXTENCODING_ISO_8859_3 },
- { "ISO8859-4", RTL_TEXTENCODING_ISO_8859_4 },
- { "ISO8859-5", RTL_TEXTENCODING_ISO_8859_5 },
- { "ISO8859-6", RTL_TEXTENCODING_ISO_8859_6 },
- { "ISO8859-7", RTL_TEXTENCODING_ISO_8859_7 },
- { "ISO8859-8", RTL_TEXTENCODING_ISO_8859_8 },
- { "ISO8859-9", RTL_TEXTENCODING_ISO_8859_9 },
- { "KOI8-R", RTL_TEXTENCODING_KOI8_R },
- { "KOI8-U", RTL_TEXTENCODING_KOI8_U },
- { "PCK", RTL_TEXTENCODING_MS_932 },
- { "SUN_EU_GREEK", RTL_TEXTENCODING_ISO_8859_7 }, /* 8859-7 + Euro */
- { "TIS620.2533", RTL_TEXTENCODING_MS_874 }, /* th_TH.TIS620 */
- { "UTF-8", RTL_TEXTENCODING_UTF8 }
-};
-
-/* XXX MS-874 is an extension to tis620, so this is not
- * really equivalent */
-
-#elif defined(LINUX)
-
-const _pair _nl_language_list[] = {
- { "ANSI_X3.110-1983", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-99 NAPLPS */
- { "ANSI_X3.4-1968", RTL_TEXTENCODING_ISO_8859_1 }, /* fake: ASCII_US */
- { "ASMO_449", RTL_TEXTENCODING_DONTKNOW }, /* ISO_9036 ARABIC7 */
- { "BALTIC", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-179 */
- { "BIG5", RTL_TEXTENCODING_BIG5 }, /* locale: zh_TW */
- { "BIG5-HKSCS", RTL_TEXTENCODING_BIG5_HKSCS }, /* locale: zh_CN.BIG5HK */
- { "BIG5HKSCS", RTL_TEXTENCODING_BIG5_HKSCS }, /* deprecated */
- { "BS_4730", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-4 ISO646-GB */
- { "BS_VIEWDATA", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-47 */
- { "CP1250", RTL_TEXTENCODING_MS_1250 }, /* MS-EE */
- { "CP1251", RTL_TEXTENCODING_MS_1251 }, /* MS-CYRL */
- { "CP1252", RTL_TEXTENCODING_MS_1252 }, /* MS-ANSI */
- { "CP1253", RTL_TEXTENCODING_MS_1253 }, /* MS-GREEK */
- { "CP1254", RTL_TEXTENCODING_MS_1254 }, /* MS-TURK */
- { "CP1255", RTL_TEXTENCODING_MS_1255 }, /* MS-HEBR */
- { "CP1256", RTL_TEXTENCODING_MS_1256 }, /* MS-ARAB */
- { "CP1257", RTL_TEXTENCODING_MS_1257 }, /* WINBALTRIM */
- { "CSA_Z243.4-1985-1", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-121 */
- { "CSA_Z243.4-1985-2", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-122 CSA7-2 */
- { "CSA_Z243.4-1985-GR", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-123 */
- { "CSN_369103", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-139 */
- { "CWI", RTL_TEXTENCODING_DONTKNOW }, /* CWI-2 CP-HU */
- { "DEC-MCS", RTL_TEXTENCODING_DONTKNOW }, /* DEC */
- { "DIN_66003", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-21 */
- { "DS_2089", RTL_TEXTENCODING_DONTKNOW }, /* DS2089 ISO646-DK */
- { "EBCDIC-AT-DE", RTL_TEXTENCODING_DONTKNOW },
- { "EBCDIC-AT-DE-A", RTL_TEXTENCODING_DONTKNOW },
- { "EBCDIC-CA-FR", RTL_TEXTENCODING_DONTKNOW },
- { "EBCDIC-DK-NO", RTL_TEXTENCODING_DONTKNOW },
- { "EBCDIC-DK-NO-A", RTL_TEXTENCODING_DONTKNOW },
- { "EBCDIC-ES", RTL_TEXTENCODING_DONTKNOW },
- { "EBCDIC-ES-A", RTL_TEXTENCODING_DONTKNOW },
- { "EBCDIC-ES-S", RTL_TEXTENCODING_DONTKNOW },
- { "EBCDIC-FI-SE", RTL_TEXTENCODING_DONTKNOW },
- { "EBCDIC-FI-SE-A", RTL_TEXTENCODING_DONTKNOW },
- { "EBCDIC-FR", RTL_TEXTENCODING_DONTKNOW },
- { "EBCDIC-IS-FRISS", RTL_TEXTENCODING_DONTKNOW }, /* FRISS */
- { "EBCDIC-IT", RTL_TEXTENCODING_DONTKNOW },
- { "EBCDIC-PT", RTL_TEXTENCODING_DONTKNOW },
- { "EBCDIC-UK", RTL_TEXTENCODING_DONTKNOW },
- { "EBCDIC-US", RTL_TEXTENCODING_DONTKNOW },
- { "ECMA-CYRILLIC", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-111 */
- { "ES", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-17 */
- { "ES2", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-85 */
- { "EUC-JP", RTL_TEXTENCODING_EUC_JP }, /* locale: ja_JP.eucjp */
- { "EUC-KR", RTL_TEXTENCODING_EUC_KR }, /* locale: ko_KR.euckr */
- { "EUC-TW", RTL_TEXTENCODING_EUC_TW }, /* locale: zh_TW.euctw */
- { "GB18030", RTL_TEXTENCODING_GB_18030 }, /* locale: zh_CN.gb18030 */
- { "GB2312", RTL_TEXTENCODING_GB_2312 }, /* locale: zh_CN */
- { "GB_1988-80", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-57 */
- { "GBK", RTL_TEXTENCODING_GBK }, /* locale: zh_CN.GBK */
- { "GOST_19768-74", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-153 */
- { "GREEK-CCITT", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-150 */
- { "GREEK7", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-88 */
- { "GREEK7-OLD", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-18 */
- { "HP-ROMAN8", RTL_TEXTENCODING_DONTKNOW }, /* ROMAN8 R8 */
- { "IBM037", RTL_TEXTENCODING_DONTKNOW }, /* EBCDIC-[US|CA|WT] */
- { "IBM038", RTL_TEXTENCODING_DONTKNOW }, /* EBCDIC-INT CP038 */
- { "IBM1004", RTL_TEXTENCODING_DONTKNOW }, /* CP1004 OS2LATIN1 */
- { "IBM1026", RTL_TEXTENCODING_DONTKNOW }, /* CP1026 1026 */
- { "IBM1047", RTL_TEXTENCODING_DONTKNOW }, /* CP1047 1047 */
- { "IBM256", RTL_TEXTENCODING_DONTKNOW }, /* EBCDIC-INT1 */
- { "IBM273", RTL_TEXTENCODING_DONTKNOW }, /* CP273 */
- { "IBM274", RTL_TEXTENCODING_DONTKNOW }, /* EBCDIC-BE CP274 */
- { "IBM275", RTL_TEXTENCODING_DONTKNOW }, /* EBCDIC-BR CP275 */
- { "IBM277", RTL_TEXTENCODING_DONTKNOW }, /* EBCDIC-CP-[DK|NO] */
- { "IBM278", RTL_TEXTENCODING_DONTKNOW }, /* EBCDIC-CP-[FISE]*/
- { "IBM280", RTL_TEXTENCODING_DONTKNOW }, /* CP280 EBCDIC-CP-IT*/
- { "IBM281", RTL_TEXTENCODING_DONTKNOW }, /* EBCDIC-JP-E CP281 */
- { "IBM284", RTL_TEXTENCODING_DONTKNOW }, /* CP284 EBCDIC-CP-ES */
- { "IBM285", RTL_TEXTENCODING_DONTKNOW }, /* CP285 EBCDIC-CP-GB */
- { "IBM290", RTL_TEXTENCODING_DONTKNOW }, /* EBCDIC-JP-KANA */
- { "IBM297", RTL_TEXTENCODING_DONTKNOW }, /* EBCDIC-CP-FR */
- { "IBM420", RTL_TEXTENCODING_DONTKNOW }, /* EBCDIC-CP-AR1 */
- { "IBM423", RTL_TEXTENCODING_DONTKNOW }, /* CP423 EBCDIC-CP-GR */
- { "IBM424", RTL_TEXTENCODING_DONTKNOW }, /* CP424 EBCDIC-CP-HE */
- { "IBM437", RTL_TEXTENCODING_IBM_437 }, /* CP437 437 */
- { "IBM500", RTL_TEXTENCODING_DONTKNOW }, /* EBCDIC-CP-[BE|CH] */
- { "IBM850", RTL_TEXTENCODING_IBM_850 }, /* CP850 850 */
- { "IBM851", RTL_TEXTENCODING_DONTKNOW }, /* CP851 851 */
- { "IBM852", RTL_TEXTENCODING_IBM_852 }, /* CP852 852 */
- { "IBM855", RTL_TEXTENCODING_IBM_855 }, /* CP855 855 */
- { "IBM857", RTL_TEXTENCODING_IBM_857 }, /* CP857 857 */
- { "IBM860", RTL_TEXTENCODING_IBM_860 }, /* CP860 860 */
- { "IBM861", RTL_TEXTENCODING_IBM_861 }, /* CP861 861 CP-IS */
- { "IBM862", RTL_TEXTENCODING_IBM_862 }, /* CP862 862 */
- { "IBM863", RTL_TEXTENCODING_IBM_863 }, /* CP863 863 */
- { "IBM864", RTL_TEXTENCODING_IBM_864 }, /* CP864 */
- { "IBM865", RTL_TEXTENCODING_IBM_865 }, /* CP865 865 */
- { "IBM866", RTL_TEXTENCODING_IBM_866 }, /* CP866 866 */
- { "IBM868", RTL_TEXTENCODING_DONTKNOW }, /* CP868 CP-AR */
- { "IBM869", RTL_TEXTENCODING_IBM_869 }, /* CP869 869 CP-GR */
- { "IBM870", RTL_TEXTENCODING_DONTKNOW }, /* EBCDIC-[ROECE|YU] */
- { "IBM871", RTL_TEXTENCODING_DONTKNOW }, /* CP871 EBCDIC-CP-IS */
- { "IBM875", RTL_TEXTENCODING_DONTKNOW }, /* CP875 EBCDIC-GREEK */
- { "IBM880", RTL_TEXTENCODING_DONTKNOW }, /* EBCDIC-CYRILLIC */
- { "IBM891", RTL_TEXTENCODING_DONTKNOW }, /* CP891 */
- { "IBM903", RTL_TEXTENCODING_DONTKNOW }, /* CP903 */
- { "IBM904", RTL_TEXTENCODING_DONTKNOW }, /* CP904 904 */
- { "IBM905", RTL_TEXTENCODING_DONTKNOW }, /* CP905 EBCDIC-CP-TR */
- { "IBM918", RTL_TEXTENCODING_DONTKNOW }, /* CP918 EBCDIC-AR2 */
- { "IEC_P27-1", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-143 */
- { "INIS", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-49 */
- { "INIS-8", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-50 */
- { "INIS-CYRILLIC", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-51 */
- { "INVARIANT", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-170 */
- { "ISO-8859-1", RTL_TEXTENCODING_ISO_8859_1 }, /* ISO-IR-100 CP819 */
- { "ISO-8859-10", RTL_TEXTENCODING_ISO_8859_10 }, /* ISO-IR-157 LATIN6 */
- { "ISO-8859-13", RTL_TEXTENCODING_ISO_8859_13 }, /* ISO-IR-179 LATIN7 */
- { "ISO-8859-14", RTL_TEXTENCODING_ISO_8859_14 }, /* LATIN8 L8 */
- { "ISO-8859-15", RTL_TEXTENCODING_ISO_8859_15 },
- { "ISO-8859-2", RTL_TEXTENCODING_ISO_8859_2 }, /* LATIN2 L2 */
- { "ISO-8859-3", RTL_TEXTENCODING_ISO_8859_3 }, /* LATIN3 L3 */
- { "ISO-8859-4", RTL_TEXTENCODING_ISO_8859_4 }, /* LATIN4 L4 */
- { "ISO-8859-5", RTL_TEXTENCODING_ISO_8859_5 }, /* CYRILLIC */
- { "ISO-8859-6", RTL_TEXTENCODING_ISO_8859_6 }, /* ECMA-114 ARABIC */
- { "ISO-8859-7", RTL_TEXTENCODING_ISO_8859_7 }, /* ECMA-118 GREEK8 */
- { "ISO-8859-8", RTL_TEXTENCODING_ISO_8859_8 }, /* ISO_8859-8 HEBREW */
- { "ISO-8859-9", RTL_TEXTENCODING_ISO_8859_9 }, /* ISO_8859-9 LATIN5 */
- { "ISO-IR-90", RTL_TEXTENCODING_DONTKNOW }, /* ISO_6937-2:1983 */
- { "ISO_10367-BOX", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-155 */
- { "ISO_2033-1983", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-98 E13B */
- { "ISO_5427", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-37 KOI-7 */
- { "ISO_5427-EXT", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-54 */
- { "ISO_5428", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-55 */
- { "ISO_646.BASIC", RTL_TEXTENCODING_ASCII_US }, /* REF */
- { "ISO_646.IRV", RTL_TEXTENCODING_ASCII_US }, /* ISO-IR-2 IRV */
- { "ISO_646.IRV:1983", RTL_TEXTENCODING_ISO_8859_1 }, /* fake: ASCII_US, used for "C" locale*/
- { "ISO_6937", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-156 ISO6937*/
- { "ISO_6937-2-25", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-152 */
- { "ISO_6937-2-ADD", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-142 */
- { "ISO_8859-SUPP", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-154 */
- { "IT", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-15 */
- { "JIS_C6220-1969-JP", RTL_TEXTENCODING_DONTKNOW }, /* KATAKANA X0201-7 */
- { "JIS_C6220-1969-RO", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-14 */
- { "JIS_C6229-1984-A", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-91 */
- { "JIS_C6229-1984-B", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-92 */
- { "JIS_C6229-1984-B-ADD", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-93 */
- { "JIS_C6229-1984-HAND", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-94 */
- { "JIS_C6229-1984-HAND-ADD", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-95 */
- { "JIS_C6229-1984-KANA", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-96 */
- { "JIS_X0201", RTL_TEXTENCODING_DONTKNOW }, /* X0201 */
- { "JUS_I.B1.002", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-141 */
- { "JUS_I.B1.003-MAC", RTL_TEXTENCODING_DONTKNOW }, /* MACEDONIAN */
- { "JUS_I.B1.003-SERB", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-146 SERBIAN */
- { "KOI-8", RTL_TEXTENCODING_DONTKNOW },
- { "KOI8-R", RTL_TEXTENCODING_KOI8_R },
- { "KOI8-U", RTL_TEXTENCODING_KOI8_U },
- { "KSC5636", RTL_TEXTENCODING_DONTKNOW }, /* ISO646-KR */
- { "LATIN-GREEK", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-19 */
- { "LATIN-GREEK-1", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-27 */
- { "MAC-IS", RTL_TEXTENCODING_APPLE_ROMAN },
- { "MAC-UK", RTL_TEXTENCODING_APPLE_ROMAN },
- { "MACINTOSH", RTL_TEXTENCODING_APPLE_ROMAN }, /* MAC */
- { "MSZ_7795.3", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-86 */
- { "NATS-DANO", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-9-1 */
- { "NATS-DANO-ADD", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-9-2 */
- { "NATS-SEFI", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-8-1 */
- { "NATS-SEFI-ADD", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-8-2 */
- { "NC_NC00-10", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-151 */
- { "NEXTSTEP", RTL_TEXTENCODING_DONTKNOW }, /* NEXT */
- { "NF_Z_62-010", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-69 */
- { "NF_Z_62-010_(1973)", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-25 */
- { "NS_4551-1", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-60 */
- { "NS_4551-2", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-61 */
- { "PT", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-16 */
- { "PT2", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-84 */
- { "SAMI", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-158 */
- { "SEN_850200_B", RTL_TEXTENCODING_DONTKNOW }, /* ISO646-[FI|SE] */
- { "SEN_850200_C", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-11 */
- { "T.101-G2", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-128 */
- { "T.61-7BIT", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-102 */
- { "T.61-8BIT", RTL_TEXTENCODING_DONTKNOW }, /* T.61 ISO-IR-103 */
- { "TIS-620", RTL_TEXTENCODING_MS_874 }, /* locale: th_TH */
- { "UTF-8", RTL_TEXTENCODING_UTF8 }, /* ISO-10646/UTF-8 */
- { "VIDEOTEX-SUPPL", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-70 */
- { "WIN-SAMI-2", RTL_TEXTENCODING_DONTKNOW } /* WS2 */
-};
-
-#elif defined(FREEBSD) || defined(DRAGONFLY)
-
-const _pair _nl_language_list[] = {
- { "ASCII", RTL_TEXTENCODING_ASCII_US }, /* US-ASCII */
- { "BIG5", RTL_TEXTENCODING_BIG5 }, /* China - Traditional Chinese */
- { "CP1251", RTL_TEXTENCODING_MS_1251 }, /* MS-CYRL */
- { "CP866", RTL_TEXTENCODING_IBM_866 }, /* CP866 866 */
- { "EUCCN", RTL_TEXTENCODING_EUC_CN }, /* China - Simplified Chinese */
- { "EUCJP", RTL_TEXTENCODING_EUC_JP }, /* Japan */
- { "EUCKR", RTL_TEXTENCODING_EUC_KR }, /* Korea */
- { "ISO8859-1", RTL_TEXTENCODING_ISO_8859_1 }, /* Western */
- { "ISO8859-15", RTL_TEXTENCODING_ISO_8859_15 }, /* Western Updated (w/Euro sign) */
- { "ISO8859-2", RTL_TEXTENCODING_ISO_8859_2 }, /* Central European */
- { "ISO8859-4", RTL_TEXTENCODING_ISO_8859_4 }, /* LATIN4 L4 */
- { "ISO8859-5", RTL_TEXTENCODING_ISO_8859_5 }, /* Cyrillic */
- { "ISO8859-7", RTL_TEXTENCODING_ISO_8859_7 }, /* Greek */
- { "ISO8859-9", RTL_TEXTENCODING_ISO_8859_9 }, /* Turkish */
- { "KOI8-R", RTL_TEXTENCODING_KOI8_R }, /* KOI8-R */
- { "KOI8-U", RTL_TEXTENCODING_KOI8_U }, /* KOI8-U */
- { "SJIS", RTL_TEXTENCODING_SHIFT_JIS }, /* Japan */
- { "US-ASCII", RTL_TEXTENCODING_ASCII_US }, /* US-ASCII */
- { "UTF-8", RTL_TEXTENCODING_UTF8 } /* ISO-10646/UTF-8 */
-};
-
-#elif defined(NETBSD)
-
-const _pair _nl_language_list[] = {
- { "ASCII", RTL_TEXTENCODING_ASCII_US }, /* US-ASCII */
- { "BIG5", RTL_TEXTENCODING_BIG5 }, /* China - Traditional Chinese */
- { "Big5", RTL_TEXTENCODING_BIG5 }, /* China - Traditional Chinese */
- { "Big5-HKSCS", RTL_TEXTENCODING_BIG5_HKSCS }, /* locale: zh_CN.BIG5HK */
- { "Big5HKSCS", RTL_TEXTENCODING_BIG5_HKSCS }, /* deprecated */
- { "CP1251", RTL_TEXTENCODING_MS_1251 }, /* MS-CYRL */
- { "CP866", RTL_TEXTENCODING_IBM_866 }, /* CP866 866 */
- { "CTEXT", RTL_TEXTENCODING_ASCII_US }, /* US-ASCII */
- { "eucCN", RTL_TEXTENCODING_EUC_CN }, /* China - Simplified Chinese */
- { "eucJP", RTL_TEXTENCODING_EUC_JP }, /* Japan */
- { "eucKR", RTL_TEXTENCODING_EUC_KR }, /* Korea */
- { "eucTW", RTL_TEXTENCODING_EUC_TW }, /* China - Traditional Chinese */
- { "GB18030", RTL_TEXTENCODING_GB_18030 }, /* locale: zh_CN.gb18030 */
- { "GB2312", RTL_TEXTENCODING_GB_2312 }, /* locale: zh_CN */
- { "ISO-2022-JP", RTL_TEXTENCODING_DONTKNOW }, /* */
- { "ISO-2022-JP-2", RTL_TEXTENCODING_DONTKNOW }, /* */
- { "ISO8859-1", RTL_TEXTENCODING_ISO_8859_1 }, /* Western */
- { "ISO8859-13", RTL_TEXTENCODING_ISO_8859_13 }, /* ISO-IR-179 LATIN7 */
- { "ISO8859-15", RTL_TEXTENCODING_ISO_8859_15 }, /* Western Updated (w/Euro sign) */
- { "ISO8859-2", RTL_TEXTENCODING_ISO_8859_2 }, /* Central European */
- { "ISO8859-4", RTL_TEXTENCODING_ISO_8859_4 }, /* LATIN4 L4 */
- { "ISO8859-5", RTL_TEXTENCODING_ISO_8859_5 }, /* Cyrillic */
- { "ISO8859-7", RTL_TEXTENCODING_ISO_8859_7 }, /* Greek */
- { "ISO8859-9", RTL_TEXTENCODING_ISO_8859_9 }, /* Turkish */
- { "KOI8-R", RTL_TEXTENCODING_KOI8_R }, /* KOI8-R */
- { "KOI8-U", RTL_TEXTENCODING_KOI8_U }, /* KOI8-U */
- { "PT154", RTL_TEXTENCODING_PT154 }, /* */
- { "SJIS", RTL_TEXTENCODING_SHIFT_JIS }, /* Japan */
- { "US-ASCII", RTL_TEXTENCODING_ASCII_US }, /* US-ASCII */
- { "UTF-8", RTL_TEXTENCODING_UTF8 } /* ISO-10646/UTF-8 */
-};
-
-#elif defined(OPENBSD)
-
-const _pair _nl_language_list[] = {
- { "ASCII", RTL_TEXTENCODING_ASCII_US }, /* US-ASCII */
- { "BIG5", RTL_TEXTENCODING_BIG5 }, /* China - Traditional Chinese */
- { "CP1251", RTL_TEXTENCODING_MS_1251 }, /* MS-CYRL */
- { "CP866", RTL_TEXTENCODING_IBM_866 }, /* CP866 866 */
- { "EUCCN", RTL_TEXTENCODING_EUC_CN }, /* China - Simplified Chinese */
- { "EUCJP", RTL_TEXTENCODING_EUC_JP }, /* Japan */
- { "EUCKR", RTL_TEXTENCODING_EUC_KR }, /* Korea */
- { "ISO8859-1", RTL_TEXTENCODING_ISO_8859_1 }, /* Western */
- { "ISO8859-15", RTL_TEXTENCODING_ISO_8859_15 }, /* Western Updated (w/Euro sign) */
- { "ISO8859-2", RTL_TEXTENCODING_ISO_8859_2 }, /* Central European */
- { "ISO8859-4", RTL_TEXTENCODING_ISO_8859_4 }, /* LATIN4 L4 */
- { "ISO8859-5", RTL_TEXTENCODING_ISO_8859_5 }, /* Cyrillic */
- { "ISO8859-7", RTL_TEXTENCODING_ISO_8859_7 }, /* Greek */
- { "ISO8859-9", RTL_TEXTENCODING_ISO_8859_9 }, /* Turkish */
- { "KOI8-R", RTL_TEXTENCODING_KOI8_R }, /* KOI8-R */
- { "KOI8-U", RTL_TEXTENCODING_KOI8_U }, /* KOI8-U */
- { "SJIS", RTL_TEXTENCODING_SHIFT_JIS }, /* Japan */
- { "US-ASCII", RTL_TEXTENCODING_ASCII_US }, /* US-ASCII */
- { "UTF-8", RTL_TEXTENCODING_UTF8 } /* ISO-10646/UTF-8 */
-};
-
-#endif /* ifdef SOLARIS LINUX FREEBSD NETBSD OPENBSD */
-
-static pthread_mutex_t aLocalMutex = PTHREAD_MUTEX_INITIALIZER;
-
-/*****************************************************************************
- return the text encoding corresponding to the given locale
- *****************************************************************************/
-
-rtl_TextEncoding osl_getTextEncodingFromLocale( rtl_Locale * pLocale )
-{
- const _pair *language=0;
-
- char locale_buf[64] = "";
- char codeset_buf[64];
-
- char *ctype_locale = 0;
- char *codeset = 0;
-
- /* default to process locale if pLocale == NULL */
- if( NULL == pLocale )
- osl_getProcessLocale( &pLocale );
-
- /* convert rtl_Locale to locale string */
- _compose_locale( pLocale, locale_buf, 64 );
-
- /* basic thread safeness */
- pthread_mutex_lock( &aLocalMutex );
-
- /* remember the charset as indicated by the LC_CTYPE locale */
- ctype_locale = setlocale( LC_CTYPE, NULL );
-
- /* set the desired LC_CTYPE locale */
- if( NULL == setlocale( LC_CTYPE, locale_buf ) )
- {
- pthread_mutex_unlock(&aLocalMutex);
- return RTL_TEXTENCODING_DONTKNOW;
- }
-
- /* get the charset as indicated by the LC_CTYPE locale */
-#if defined(NETBSD) && !defined(CODESET)
- codeset = NULL;
-#else
- codeset = nl_langinfo( CODESET );
-#endif
-
- if ( codeset != NULL )
- {
- /* get codeset into mt save memory */
- strncpy( codeset_buf, codeset, sizeof(codeset_buf) );
- codeset_buf[sizeof(codeset_buf) - 1] = 0;
- codeset = codeset_buf;
- }
-
- /* restore the original value of locale */
- if ( ctype_locale != NULL )
- setlocale( LC_CTYPE, ctype_locale );
-
- pthread_mutex_unlock( &aLocalMutex );
-
- /* search the codeset in our language list */
- if ( codeset != NULL )
- {
- const unsigned int members = sizeof(_nl_language_list) / sizeof(_pair);
- language = _pair_search (codeset, _nl_language_list, members);
- }
-
- OSL_ASSERT( language && ( RTL_TEXTENCODING_DONTKNOW != language->value ) );
-
- /* a matching item in our list provides a mapping from codeset to
- * rtl-codeset */
- if ( language != NULL )
- return language->value;
-
- return RTL_TEXTENCODING_DONTKNOW;
-}
-
-/*****************************************************************************
- return the current process locale
- *****************************************************************************/
-
-void _imp_getProcessLocale( rtl_Locale ** ppLocale )
-{
- char * locale;
-
- /* basic thread safeness */
- pthread_mutex_lock( &aLocalMutex );
-
- /* set the locale defined by the env vars */
- locale = setlocale( LC_CTYPE, "" );
-
- /* fallback to the current locale */
- if( NULL == locale )
- locale = setlocale( LC_CTYPE, NULL );
-
- /* return the LC_CTYPE locale */
- *ppLocale = _parse_locale( locale );
-
- pthread_mutex_unlock( &aLocalMutex );
-}
-
-/*****************************************************************************
- set the current process locale
- *****************************************************************************/
-
-int _imp_setProcessLocale( rtl_Locale * pLocale )
-{
- char locale_buf[64] = "";
- int ret = 0;
-
- /* convert rtl_Locale to locale string */
- _compose_locale( pLocale, locale_buf, 64 );
-
- /* basic thread safeness */
- pthread_mutex_lock( &aLocalMutex );
-
- /* try to set LC_ALL locale */
- if( NULL == setlocale( LC_ALL, locale_buf ) )
- ret = -1;
-
- pthread_mutex_unlock( &aLocalMutex );
- return ret;
-}
-
-#else /* ifdef LINUX || SOLARIS || MACOSX || NETBSD */
-
-/*
- * This implementation of osl_getTextEncodingFromLocale maps
- * from the ISO language codes.
- */
-
-const _pair _full_locale_list[] = {
- { "ja_JP.eucJP", RTL_TEXTENCODING_EUC_JP },
- { "ja_JP.EUC", RTL_TEXTENCODING_EUC_JP },
- { "ko_KR.EUC", RTL_TEXTENCODING_EUC_KR },
- { "zh_CN.EUC", RTL_TEXTENCODING_EUC_CN },
- { "zh_TW.EUC", RTL_TEXTENCODING_EUC_TW }
-};
-
-const _pair _locale_extension_list[] = {
- { "big5", RTL_TEXTENCODING_BIG5 },
- { "big5hk", RTL_TEXTENCODING_BIG5_HKSCS },
- { "gb18030", RTL_TEXTENCODING_GB_18030 },
- { "euc", RTL_TEXTENCODING_EUC_JP },
- { "iso8859-1", RTL_TEXTENCODING_ISO_8859_1 },
- { "iso8859-10", RTL_TEXTENCODING_ISO_8859_10 },
- { "iso8859-13", RTL_TEXTENCODING_ISO_8859_13 },
- { "iso8859-14", RTL_TEXTENCODING_ISO_8859_14 },
- { "iso8859-15", RTL_TEXTENCODING_ISO_8859_15 },
- { "iso8859-2", RTL_TEXTENCODING_ISO_8859_2 },
- { "iso8859-3", RTL_TEXTENCODING_ISO_8859_3 },
- { "iso8859-4", RTL_TEXTENCODING_ISO_8859_4 },
- { "iso8859-5", RTL_TEXTENCODING_ISO_8859_5 },
- { "iso8859-6", RTL_TEXTENCODING_ISO_8859_6 },
- { "iso8859-7", RTL_TEXTENCODING_ISO_8859_7 },
- { "iso8859-8", RTL_TEXTENCODING_ISO_8859_8 },
- { "iso8859-9", RTL_TEXTENCODING_ISO_8859_9 },
- { "koi8-r", RTL_TEXTENCODING_KOI8_R },
- { "koi8-u", RTL_TEXTENCODING_KOI8_U },
- { "pck", RTL_TEXTENCODING_MS_932 },
-#if (0)
- { "sun_eu_greek", RTL_TEXTENCODING_DONTKNOW },
-#endif
- { "utf-16", RTL_TEXTENCODING_UNICODE },
- { "utf-7", RTL_TEXTENCODING_UTF7 },
- { "utf-8", RTL_TEXTENCODING_UTF8 }
-};
-
-const _pair _iso_language_list[] = {
- { "af", RTL_TEXTENCODING_ISO_8859_1 },
- { "ar", RTL_TEXTENCODING_ISO_8859_6 },
- { "az", RTL_TEXTENCODING_ISO_8859_9 },
- { "be", RTL_TEXTENCODING_ISO_8859_5 },
- { "bg", RTL_TEXTENCODING_ISO_8859_5 },
- { "ca", RTL_TEXTENCODING_ISO_8859_1 },
- { "cs", RTL_TEXTENCODING_ISO_8859_2 },
- { "da", RTL_TEXTENCODING_ISO_8859_1 },
- { "de", RTL_TEXTENCODING_ISO_8859_1 },
- { "el", RTL_TEXTENCODING_ISO_8859_7 },
- { "en", RTL_TEXTENCODING_ISO_8859_1 },
- { "es", RTL_TEXTENCODING_ISO_8859_1 },
- { "et", RTL_TEXTENCODING_ISO_8859_4 },
- { "eu", RTL_TEXTENCODING_ISO_8859_1 },
- { "fa", RTL_TEXTENCODING_ISO_8859_6 },
- { "fi", RTL_TEXTENCODING_ISO_8859_1 },
- { "fo", RTL_TEXTENCODING_ISO_8859_1 },
- { "fr", RTL_TEXTENCODING_ISO_8859_1 },
- { "gr", RTL_TEXTENCODING_ISO_8859_7 },
- { "he", RTL_TEXTENCODING_ISO_8859_8 },
- { "hi", RTL_TEXTENCODING_DONTKNOW },
- { "hr", RTL_TEXTENCODING_ISO_8859_2 },
- { "hu", RTL_TEXTENCODING_ISO_8859_2 },
- { "hy", RTL_TEXTENCODING_DONTKNOW },
- { "id", RTL_TEXTENCODING_ISO_8859_1 },
- { "is", RTL_TEXTENCODING_ISO_8859_1 },
- { "it", RTL_TEXTENCODING_ISO_8859_1 },
- { "iw", RTL_TEXTENCODING_ISO_8859_8 },
- { "ja", RTL_TEXTENCODING_EUC_JP },
- { "ka", RTL_TEXTENCODING_DONTKNOW },
- { "kk", RTL_TEXTENCODING_ISO_8859_5 },
- { "ko", RTL_TEXTENCODING_EUC_KR },
- { "lt", RTL_TEXTENCODING_ISO_8859_4 },
- { "lv", RTL_TEXTENCODING_ISO_8859_4 },
- { "mk", RTL_TEXTENCODING_ISO_8859_5 },
- { "mr", RTL_TEXTENCODING_DONTKNOW },
- { "ms", RTL_TEXTENCODING_ISO_8859_1 },
- { "nl", RTL_TEXTENCODING_ISO_8859_1 },
- { "no", RTL_TEXTENCODING_ISO_8859_1 },
- { "pl", RTL_TEXTENCODING_ISO_8859_2 },
- { "pt", RTL_TEXTENCODING_ISO_8859_1 },
- { "ro", RTL_TEXTENCODING_ISO_8859_2 },
- { "ru", RTL_TEXTENCODING_ISO_8859_5 },
- { "sa", RTL_TEXTENCODING_DONTKNOW },
- { "sk", RTL_TEXTENCODING_ISO_8859_2 },
- { "sl", RTL_TEXTENCODING_ISO_8859_2 },
- { "sq", RTL_TEXTENCODING_ISO_8859_2 },
- { "sv", RTL_TEXTENCODING_ISO_8859_1 },
- { "sw", RTL_TEXTENCODING_ISO_8859_1 },
- { "ta", RTL_TEXTENCODING_DONTKNOW },
- { "th", RTL_TEXTENCODING_DONTKNOW },
- { "tr", RTL_TEXTENCODING_ISO_8859_9 },
- { "tt", RTL_TEXTENCODING_ISO_8859_5 },
- { "uk", RTL_TEXTENCODING_ISO_8859_5 },
- { "ur", RTL_TEXTENCODING_ISO_8859_6 },
- { "uz", RTL_TEXTENCODING_ISO_8859_9 },
- { "vi", RTL_TEXTENCODING_DONTKNOW },
- { "zh", RTL_TEXTENCODING_BIG5 }
-};
-
-/*****************************************************************************
- return the text encoding corresponding to the given locale
- *****************************************************************************/
-
-rtl_TextEncoding osl_getTextEncodingFromLocale( rtl_Locale * pLocale )
-{
- const _pair *language = 0;
- char locale_buf[64] = "";
- char *cp;
-
- /* default to process locale if pLocale == NULL */
- if( NULL == pLocale )
- osl_getProcessLocale( &pLocale );
-
- /* convert rtl_Locale to locale string */
- if( _compose_locale( pLocale, locale_buf, 64 ) )
- {
- /* check special handling list (EUC) first */
- const unsigned int members = sizeof( _full_locale_list ) / sizeof( _pair );
- language = _pair_search( locale_buf, _full_locale_list, members);
-
- if( NULL == language )
- {
- /*
- * check if there is a charset qualifier at the end of the given locale string
- * e.g. de.ISO8859-15 or de.ISO8859-15@euro which strongly indicates what
- * charset to use
- */
- cp = strrchr( locale_buf, '.' );
-
- if( NULL != cp )
- {
- const unsigned int members = sizeof( _locale_extension_list ) / sizeof( _pair );
- language = _pair_search( cp + 1, _locale_extension_list, members);
- }
- }
-
- /* use iso language code to determine the charset */
- if( NULL == language )
- {
- const unsigned int members = sizeof( _iso_language_list ) / sizeof( _pair );
-
- /* iso lang codes have 2 charaters */
- locale_buf[2] = '\0';
-
- language = _pair_search( locale_buf, _iso_language_list, members);
- }
- }
-
- /* a matching item in our list provides a mapping from codeset to
- * rtl-codeset */
- if ( language != NULL )
- return language->value;
-
- return RTL_TEXTENCODING_DONTKNOW;
-}
-
-#if defined(MACOSX) || defined(IOS)
-#include "system.h"
-
-/* OS X locale discovery function */
-int (*pGetOSXLocale)( char *, sal_uInt32 );
-
-/*****************************************************************************
- return the current process locale
- *****************************************************************************/
-
-int macosx_getLocale(char *locale, sal_uInt32 bufferLen);
-
-void _imp_getProcessLocale( rtl_Locale ** ppLocale )
-{
- static char *locale = NULL;
-
- /* basic thread safeness */
-// pthread_mutex_lock( &aLocalMutex );
-
- /* Only fetch the locale once and cache it */
- if ( NULL == locale )
- {
-
- locale = (char *)malloc( 128 );
- if ( locale )
- macosx_getLocale( locale, 128 );
- else
- fprintf( stderr, "nlsupport.c: locale allocation returned NULL!\n" );
- }
-
- /* handle the case where OS specific method of finding locale fails */
- if ( NULL == locale )
- {
- /* simulate behavior of setlocale */
- locale = getenv( "LC_ALL" );
-
- if( NULL == locale )
- locale = getenv( "LC_CTYPE" );
-
- if( NULL == locale )
- locale = getenv( "LANG" );
-
- if( NULL == locale )
- locale = "C";
- }
-
- /* return the locale */
- *ppLocale = _parse_locale( locale );
-
- setenv( "LC_ALL", locale, 1);
- setenv("LC_CTYPE", locale, 1 );
- setenv("LANG", locale, 1 );
-
-#if OSL_DEBUG_LEVEL > 1
- OSL_TRACE("_imp_getProcessLocale() returning %s as current locale.\n", locale );
-#endif
-
-// pthread_mutex_unlock( &aLocalMutex );
-
-}
-#else
-/*****************************************************************************
- return the current process locale
- *****************************************************************************/
-
-void _imp_getProcessLocale( rtl_Locale ** ppLocale )
-{
- /* simulate behavior off setlocale */
- char * locale = getenv( "LC_ALL" );
-
- if( NULL == locale )
- locale = getenv( "LC_CTYPE" );
-
- if( NULL == locale )
- locale = getenv( "LANG" );
-
- if( NULL == locale )
- locale = "C";
-
- *ppLocale = _parse_locale( locale );
-}
-#endif
-
-/*****************************************************************************
- set the current process locale
- *****************************************************************************/
-
-static int
-_setenv (const char* name, const char* value)
-{
- return setenv (name, value, 1);
-}
-
-int _imp_setProcessLocale( rtl_Locale * pLocale )
-{
- char locale_buf[64];
-
- /* convert rtl_Locale to locale string */
- if( NULL != _compose_locale( pLocale, locale_buf, 64 ) )
- {
- /* only change env vars that exist already */
- if( getenv( "LC_ALL" ) )
- _setenv( "LC_ALL", locale_buf );
-
- if( getenv( "LC_CTYPE" ) )
- _setenv("LC_CTYPE", locale_buf );
-
- if( getenv( "LANG" ) )
- _setenv( "LANG", locale_buf );
- }
-
- return 0;
-}
-
-#endif /* ifdef LINUX || SOLARIS || MACOSX || NETBSD || AIX */
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/osxlocale.cxx b/sal/osl/unx/osxlocale.cxx
deleted file mode 100644
index 37b34b200..000000000
--- a/sal/osl/unx/osxlocale.cxx
+++ /dev/null
@@ -1,133 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <sal/types.h>
-#include <assert.h>
-
-#include <premac.h>
-#ifndef IOS
-#include <CoreServices/CoreServices.h>
-#endif
-#include <CoreFoundation/CoreFoundation.h>
-#include <postmac.h>
-
-namespace /* private */
-{
- template <typename T>
- class CFGuard
- {
- public:
- explicit CFGuard(T& rT) : rT_(rT) {}
- ~CFGuard() { if (rT_) CFRelease(rT_); }
- private:
- T& rT_;
- };
-
- typedef CFGuard<CFArrayRef> CFArrayGuard;
- typedef CFGuard<CFStringRef> CFStringGuard;
- typedef CFGuard<CFPropertyListRef> CFPropertyListGuard;
-
- /** Get the current process locale from system
- */
- CFStringRef getProcessLocale()
- {
- CFPropertyListRef pref = CFPreferencesCopyAppValue(CFSTR("AppleLocale"), kCFPreferencesCurrentApplication);
- CFPropertyListGuard proplGuard(pref);
-
- if (pref == NULL) // return fallback value 'en_US'
- return CFStringCreateWithCString(kCFAllocatorDefault, "en_US", kCFStringEncodingASCII);
-
- CFStringRef sref = (CFGetTypeID(pref) == CFArrayGetTypeID()) ? (CFStringRef)CFArrayGetValueAtIndex((CFArrayRef)pref, 0) : (CFStringRef)pref;
-
- // NOTE: this API is only available with Mac OS X >=10.3. We need to use it because
- // Apple used non-ISO values on systems <10.2 like "German" for instance but didn't
- // upgrade those values during upgrade to newer Mac OS X versions. See also #i54337#
- return CFLocaleCreateCanonicalLocaleIdentifierFromString(kCFAllocatorDefault, sref);
- }
-} // namespace private
-
-/** Grab current locale from system.
-*/
-extern "C" {
-int macosx_getLocale(char *locale, sal_uInt32 bufferLen)
-{
- CFStringRef sref = getProcessLocale();
- CFStringGuard sGuard(sref);
-
- assert(sref != NULL && "osxlocale.cxx: getProcessLocale must return a non-NULL value");
-
- // split the string into substrings; the first two (if there are two) substrings
- // are language and country
- CFArrayRef subs = CFStringCreateArrayBySeparatingStrings(NULL, sref, CFSTR("_"));
- CFArrayGuard arrGuard(subs);
-
- CFStringRef lang = (CFStringRef)CFArrayGetValueAtIndex(subs, 0);
- CFStringGetCString(lang, locale, bufferLen, kCFStringEncodingASCII);
-
- // country also available? Assumption: if the array contains more than one
- // value the second value is always the country!
- if (CFArrayGetCount(subs) > 1)
- {
- strlcat(locale, "_", bufferLen - strlen(locale));
-
- CFStringRef country = (CFStringRef)CFArrayGetValueAtIndex(subs, 1);
- CFStringGetCString(country, locale + strlen(locale), bufferLen - strlen(locale), kCFStringEncodingASCII);
- }
- // Append 'UTF-8' to the locale because the Mac OS X file
- // system interface is UTF-8 based and sal tries to determine
- // the file system locale from the locale information
- strlcat(locale, ".UTF-8", bufferLen - strlen(locale));
-
- return noErr;
-}
-}
-
-
-
-/*
- * macxp_OSXConvertCFEncodingToIANACharSetName
- *
- * Convert a CoreFoundation text encoding to an IANA charset name.
- */
-extern "C" int macxp_OSXConvertCFEncodingToIANACharSetName( char *buffer, unsigned int bufferLen, CFStringEncoding cfEncoding )
-{
- CFStringRef sCFEncodingName;
-
- sCFEncodingName = CFStringConvertEncodingToIANACharSetName( cfEncoding );
- CFStringGetCString( sCFEncodingName, buffer, bufferLen, cfEncoding );
-
- if ( sCFEncodingName )
- CFRelease( sCFEncodingName );
-
- return( noErr );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/pipe.c b/sal/osl/unx/pipe.c
deleted file mode 100644
index 75569e5cf..000000000
--- a/sal/osl/unx/pipe.c
+++ /dev/null
@@ -1,604 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "system.h"
-
-#include <osl/pipe.h>
-#include <osl/diagnose.h>
-#include <osl/thread.h>
-#include <osl/interlck.h>
-
-#include "sockimpl.h"
-
-#define PIPEDEFAULTPATH "/tmp"
-#define PIPEALTERNATEPATH "/var/tmp"
-
-#define PIPENAMEMASK "OSL_PIPE_%s"
-#define SECPIPENAMEMASK "OSL_PIPE_%s_%s"
-
-sal_Bool SAL_CALL osl_psz_getUserIdent(oslSecurity Security, sal_Char *pszIdent, sal_uInt32 nMax);
-oslPipe SAL_CALL osl_psz_createPipe(const sal_Char *pszPipeName, oslPipeOptions Options, oslSecurity Security);
-
-
-/*****************************************************************************/
-/* enum oslPipeError */
-/*****************************************************************************/
-
-static struct
-{
- int errcode;
- oslPipeError error;
-} PipeError[]= {
- { 0, osl_Pipe_E_None }, /* no error */
- { EPROTOTYPE, osl_Pipe_E_NoProtocol }, /* Protocol wrong type for socket */
- { ENOPROTOOPT, osl_Pipe_E_NoProtocol }, /* Protocol not available */
- { EPROTONOSUPPORT, osl_Pipe_E_NoProtocol }, /* Protocol not supported */
- { ESOCKTNOSUPPORT, osl_Pipe_E_NoProtocol }, /* Socket type not supported */
- { EPFNOSUPPORT, osl_Pipe_E_NoProtocol }, /* Protocol family not supported */
- { EAFNOSUPPORT, osl_Pipe_E_NoProtocol }, /* Address family not supported by */
- /* protocol family */
- { ENETRESET, osl_Pipe_E_NetworkReset }, /* Network dropped connection because */
- /* of reset */
- { ECONNABORTED, osl_Pipe_E_ConnectionAbort }, /* Software caused connection abort */
- { ECONNRESET, osl_Pipe_E_ConnectionReset }, /* Connection reset by peer */
- { ENOBUFS, osl_Pipe_E_NoBufferSpace }, /* No buffer space available */
- { ETIMEDOUT, osl_Pipe_E_TimedOut }, /* Connection timed out */
- { ECONNREFUSED, osl_Pipe_E_ConnectionRefused }, /* Connection refused */
- { -1, osl_Pipe_E_invalidError }
-};
-
-
-/* map */
-/* mfe: NOT USED
- static int osl_NativeFromPipeError(oslPipeError errorCode)
- {
- int i = 0;
-
- while ((PipeError[i].error != osl_Pipe_E_invalidError) &&
- (PipeError[i].error != errorCode)) i++;
-
- return PipeError[i].errcode;
-
- }
-*/
-
-/* reverse map */
-static oslPipeError osl_PipeErrorFromNative(int nativeType)
-{
- int i = 0;
-
- while ((PipeError[i].error != osl_Pipe_E_invalidError) &&
- (PipeError[i].errcode != nativeType)) i++;
-
- return PipeError[i].error;
-}
-
-
-/* macros */
-#define ERROR_TO_NATIVE(x) osl_NativeFromPipeError(x)
-#define ERROR_FROM_NATIVE(y) osl_PipeErrorFromNative(y)
-
-
-/*****************************************************************************/
-/* osl_create/destroy-PipeImpl */
-/*****************************************************************************/
-
-oslPipe __osl_createPipeImpl()
-{
- oslPipe pPipeImpl;
-
- pPipeImpl = (oslPipe)calloc(1, sizeof(struct oslPipeImpl));
- pPipeImpl->m_nRefCount =1;
- pPipeImpl->m_bClosed = sal_False;
-#if defined(LINUX)
- pPipeImpl->m_bIsInShutdown = sal_False;
- pPipeImpl->m_bIsAccepting = sal_False;
-#endif
- return pPipeImpl;
-}
-
-void __osl_destroyPipeImpl(oslPipe pImpl)
-{
- if (pImpl != NULL)
- free(pImpl);
-}
-
-
-/*****************************************************************************/
-/* osl_createPipe */
-/*****************************************************************************/
-oslPipe SAL_CALL osl_createPipe(rtl_uString *ustrPipeName, oslPipeOptions Options, oslSecurity Security)
-{
- oslPipe pPipe=0;
- rtl_String* strPipeName=0;
- sal_Char* pszPipeName=0;
-
- if ( ustrPipeName != 0 )
- {
- rtl_uString2String( &strPipeName,
- rtl_uString_getStr(ustrPipeName),
- rtl_uString_getLength(ustrPipeName),
- osl_getThreadTextEncoding(),
- OUSTRING_TO_OSTRING_CVTFLAGS );
- pszPipeName = rtl_string_getStr(strPipeName);
- pPipe = osl_psz_createPipe(pszPipeName, Options, Security);
-
- if ( strPipeName != 0 )
- {
- rtl_string_release(strPipeName);
- }
- }
-
- return pPipe;
-
-}
-
-oslPipe SAL_CALL osl_psz_createPipe(const sal_Char *pszPipeName, oslPipeOptions Options,
- oslSecurity Security)
-{
- int Flags;
- size_t len;
- struct sockaddr_un addr;
-
- sal_Char name[PATH_MAX + 1];
- size_t nNameLength = 0;
- int bNameTooLong = 0;
- oslPipe pPipe;
-
- if (access(PIPEDEFAULTPATH, R_OK|W_OK) == 0)
- {
- strncpy(name, PIPEDEFAULTPATH, sizeof(name));
- }
- else
- {
- strncpy(name, PIPEALTERNATEPATH, sizeof(name));
- }
- name[sizeof(name) - 1] = '\0'; // ensure the string is NULL-terminated
- nNameLength = strlen(name);
- bNameTooLong = nNameLength > sizeof(name) - 2;
-
- if (!bNameTooLong)
- {
- size_t nRealLength = 0;
-
- strcat(name, "/");
- ++nNameLength;
-
- if (Security)
- {
- sal_Char Ident[256];
-
- Ident[0] = '\0';
-
- OSL_VERIFY(osl_psz_getUserIdent(Security, Ident, sizeof(Ident)));
-
- nRealLength = snprintf(&name[nNameLength], sizeof(name) - nNameLength, SECPIPENAMEMASK, Ident, pszPipeName);
- }
- else
- {
- nRealLength = snprintf(&name[nNameLength], sizeof(name) - nNameLength, PIPENAMEMASK, pszPipeName);
- }
-
- bNameTooLong = nRealLength > sizeof(name) - nNameLength - 1;
- }
-
- if (bNameTooLong)
- {
- OSL_TRACE("osl_createPipe: pipe name too long");
- return NULL;
- }
-
- /* alloc memory */
- pPipe= __osl_createPipeImpl();
-
- /* create socket */
- pPipe->m_Socket = socket(AF_UNIX, SOCK_STREAM, 0);
- if ( pPipe->m_Socket < 0 )
- {
- OSL_TRACE("osl_createPipe socket failed. Errno: %d; %s\n",errno, strerror(errno));
- __osl_destroyPipeImpl(pPipe);
- return NULL;
- }
-
-/* OSL_TRACE("osl_createPipe : new Pipe on fd %i\n",pPipe->m_Socket);*/
-
- /* set close-on-exec flag */
- if ((Flags = fcntl(pPipe->m_Socket, F_GETFD, 0)) != -1)
- {
- Flags |= FD_CLOEXEC;
- if (fcntl(pPipe->m_Socket, F_SETFD, Flags) == -1)
- {
- OSL_TRACE("osl_createPipe failed changing socket flags. Errno: %d; %s\n",errno,strerror(errno));
- }
- }
-
- memset(&addr, 0, sizeof(addr));
-
- OSL_TRACE("osl_createPipe : Pipe Name '%s'",name);
-
- addr.sun_family = AF_UNIX;
- strncpy(addr.sun_path, name, sizeof(addr.sun_path));
-#if defined(FREEBSD)
- len = SUN_LEN(&addr);
-#else
- len = sizeof(addr);
-#endif
-
- if ( Options & osl_Pipe_CREATE )
- {
- struct stat status;
-
- /* check if there exists an orphan filesystem entry */
- if ( ( stat(name, &status) == 0) &&
- ( S_ISSOCK(status.st_mode) || S_ISFIFO(status.st_mode) ) )
- {
- if ( connect(pPipe->m_Socket,(struct sockaddr *)&addr,len) >= 0 )
- {
- OSL_TRACE("osl_createPipe : Pipe already in use. Errno: %d; %s\n",errno,strerror(errno));
- close (pPipe->m_Socket);
- __osl_destroyPipeImpl(pPipe);
- return NULL;
- }
-
- unlink(name);
- }
-
- /* ok, fs clean */
- if ( bind(pPipe->m_Socket, (struct sockaddr *)&addr, len) < 0 )
- {
- OSL_TRACE("osl_createPipe : failed to bind socket. Errno: %d; %s\n",errno,strerror(errno));
- close (pPipe->m_Socket);
- __osl_destroyPipeImpl(pPipe);
- return NULL;
- }
-
- /* Only give access to all if no security handle was specified, otherwise security
- depends on umask */
-
- if ( !Security )
- chmod(name,S_IRWXU | S_IRWXG |S_IRWXO);
-
-
- strncpy(pPipe->m_Name, name, sizeof(pPipe->m_Name));
-
- if ( listen(pPipe->m_Socket, 5) < 0 )
- {
- OSL_TRACE("osl_createPipe failed to listen. Errno: %d; %s\n",errno,strerror(errno));
- unlink(name); /* remove filesystem entry */
- close (pPipe->m_Socket);
- __osl_destroyPipeImpl(pPipe);
- return NULL;
- }
-
- return (pPipe);
- }
- else
- { /* osl_pipe_OPEN */
- if ( access(name, F_OK) != -1 )
- {
- if ( connect( pPipe->m_Socket, (struct sockaddr *)&addr, len) >= 0 )
- {
- return (pPipe);
- }
-
- OSL_TRACE("osl_createPipe failed to connect. Errno: %d; %s\n",errno,strerror(errno));
- }
-
- close (pPipe->m_Socket);
- __osl_destroyPipeImpl(pPipe);
- return NULL;
- }
-}
-
-void SAL_CALL osl_acquirePipe( oslPipe pPipe )
-{
- osl_incrementInterlockedCount( &(pPipe->m_nRefCount) );
-}
-
-void SAL_CALL osl_releasePipe( oslPipe pPipe )
-{
-
- if( 0 == pPipe )
- return;
-
- if( 0 == osl_decrementInterlockedCount( &(pPipe->m_nRefCount) ) )
- {
- if( ! pPipe->m_bClosed )
- osl_closePipe( pPipe );
-
- __osl_destroyPipeImpl( pPipe );
- }
-}
-
-void SAL_CALL osl_closePipe( oslPipe pPipe )
-{
- int nRet;
-#if defined(LINUX)
- size_t len;
- struct sockaddr_un addr;
- int fd;
-#endif
- int ConnFD;
-
- if( ! pPipe )
- {
- return;
- }
-
- if( pPipe->m_bClosed )
- {
- return;
- }
-
- ConnFD = pPipe->m_Socket;
-
- /*
- Thread does not return from accept on linux, so
- connect to the accepting pipe
- */
-#if defined(LINUX)
- if ( pPipe->m_bIsAccepting )
- {
- pPipe->m_bIsInShutdown = sal_True;
- pPipe->m_Socket = -1;
- fd = socket(AF_UNIX, SOCK_STREAM, 0);
- memset(&addr, 0, sizeof(addr));
-
- OSL_TRACE("osl_destroyPipe : Pipe Name '%s'",pPipe->m_Name);
-
- addr.sun_family = AF_UNIX;
- strncpy(addr.sun_path, pPipe->m_Name, sizeof(addr.sun_path));
- len = sizeof(addr);
-
- nRet = connect( fd, (struct sockaddr *)&addr, len);
- if ( nRet < 0 )
- {
- OSL_TRACE("connect in osl_destroyPipe failed with error: %s", strerror(errno));
- }
- close(fd);
- }
-#endif /* LINUX */
-
-
- nRet = shutdown(ConnFD, 2);
- if ( nRet < 0 )
- {
- OSL_TRACE("shutdown in destroyPipe failed : '%s'\n",strerror(errno));
- }
-
- nRet = close(ConnFD);
- if ( nRet < 0 )
- {
- OSL_TRACE("close in destroyPipe failed : '%s'\n",strerror(errno));
- }
- /* remove filesystem entry */
- if ( strlen(pPipe->m_Name) > 0 )
- {
- unlink(pPipe->m_Name);
- }
- pPipe->m_bClosed = sal_True;
-
-/* OSL_TRACE("Out osl_destroyPipe"); */
-}
-
-
-/*****************************************************************************/
-/* osl_acceptPipe */
-/*****************************************************************************/
-oslPipe SAL_CALL osl_acceptPipe(oslPipe pPipe)
-{
- int s, flags;
- oslPipe pAcceptedPipe;
-
- OSL_ASSERT(pPipe);
- if ( pPipe == 0 )
- {
- return NULL;
- }
-
- OSL_ASSERT(strlen(pPipe->m_Name) > 0);
-
-#if defined(LINUX)
- pPipe->m_bIsAccepting = sal_True;
-#endif
-
- s = accept(pPipe->m_Socket, NULL, NULL);
-
-#if defined(LINUX)
- pPipe->m_bIsAccepting = sal_False;
-#endif
-
- if (s < 0)
- {
- OSL_TRACE("osl_acceptPipe : accept error '%s'", strerror(errno));
- return NULL;
- }
-
-#if defined(LINUX)
- if ( pPipe->m_bIsInShutdown )
- {
- close(s);
- return NULL;
- }
-#endif /* LINUX */
- else
- {
- /* alloc memory */
- pAcceptedPipe= __osl_createPipeImpl();
-
- OSL_ASSERT(pAcceptedPipe);
- if(pAcceptedPipe==NULL)
- {
- close(s);
- return NULL;
- }
-
- /* set close-on-exec flag */
- if (!((flags = fcntl(s, F_GETFD, 0)) < 0))
- {
- flags |= FD_CLOEXEC;
- if (fcntl(s, F_SETFD, flags) < 0)
- {
- OSL_TRACE("osl_acceptPipe: error changing socket flags. "
- "Errno: %d; %s",errno,strerror(errno));
- }
- }
-
- pAcceptedPipe->m_Socket = s;
- }
-
- return pAcceptedPipe;
-}
-
-/*****************************************************************************/
-/* osl_receivePipe */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_receivePipe(oslPipe pPipe,
- void* pBuffer,
- sal_Int32 BytesToRead)
-{
- int nRet = 0;
-
- OSL_ASSERT(pPipe);
-
- if ( pPipe == 0 )
- {
- OSL_TRACE("osl_receivePipe : Invalid socket");
- errno=EINVAL;
- return -1;
- }
-
- nRet = recv(pPipe->m_Socket,
- (sal_Char*)pBuffer,
- BytesToRead, 0);
-
- if ( nRet < 0 )
- {
- OSL_TRACE("osl_receivePipe failed : %i '%s'",nRet,strerror(errno));
- }
-
- return nRet;
-}
-
-
-/*****************************************************************************/
-/* osl_sendPipe */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_sendPipe(oslPipe pPipe,
- const void* pBuffer,
- sal_Int32 BytesToSend)
-{
- int nRet=0;
-
- OSL_ASSERT(pPipe);
-
- if ( pPipe == 0 )
- {
- OSL_TRACE("osl_sendPipe : Invalid socket");
- errno=EINVAL;
- return -1;
- }
-
- nRet = send(pPipe->m_Socket,
- (sal_Char*)pBuffer,
- BytesToSend, 0);
-
-
- if ( nRet <= 0 )
- {
- OSL_TRACE("osl_sendPipe failed : %i '%s'",nRet,strerror(errno));
- }
-
- return nRet;
-}
-
-
-/*****************************************************************************/
-/* osl_getLastPipeError */
-/*****************************************************************************/
-oslPipeError SAL_CALL osl_getLastPipeError(oslPipe pPipe)
-{
- (void) pPipe; /* unused */
- return ERROR_FROM_NATIVE(errno);
-}
-
-
-sal_Int32 SAL_CALL osl_writePipe( oslPipe pPipe, const void *pBuffer , sal_Int32 n )
-{
- /* loop until all desired bytes were send or an error occurred */
- sal_Int32 BytesSend= 0;
- sal_Int32 BytesToSend= n;
-
- OSL_ASSERT(pPipe);
- while (BytesToSend > 0)
- {
- sal_Int32 RetVal;
-
- RetVal= osl_sendPipe(pPipe, pBuffer, BytesToSend);
-
- /* error occurred? */
- if(RetVal <= 0)
- {
- break;
- }
-
- BytesToSend -= RetVal;
- BytesSend += RetVal;
- pBuffer= (sal_Char*)pBuffer + RetVal;
- }
-
- return BytesSend;
-}
-
-sal_Int32 SAL_CALL osl_readPipe( oslPipe pPipe, void *pBuffer , sal_Int32 n )
-{
- /* loop until all desired bytes were read or an error occurred */
- sal_Int32 BytesRead= 0;
- sal_Int32 BytesToRead= n;
-
- OSL_ASSERT( pPipe );
- while (BytesToRead > 0)
- {
- sal_Int32 RetVal;
- RetVal= osl_receivePipe(pPipe, pBuffer, BytesToRead);
-
- /* error occurred? */
- if(RetVal <= 0)
- {
- break;
- }
-
- BytesToRead -= RetVal;
- BytesRead += RetVal;
- pBuffer= (sal_Char*)pBuffer + RetVal;
- }
- return BytesRead;
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/process.c b/sal/osl/unx/process.c
deleted file mode 100644
index 307cee5a5..000000000
--- a/sal/osl/unx/process.c
+++ /dev/null
@@ -1,1528 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-/*
- * ToDo:
- * - cleanup of process status things
- * - cleanup of process spawning
- * - cleanup of resource transfer
- */
-
-#if defined(SOLARIS)
- // The procfs may only be used without LFS in 32bits.
-# ifdef _FILE_OFFSET_BITS
-# undef _FILE_OFFSET_BITS
-# endif
-#endif
-
-
-#if defined(FREEBSD) || defined(NETBSD) || defined(DRAGONFLY)
-#include <machine/param.h>
-#endif
-
-#include "system.h"
-#if defined(SOLARIS)
-# include <sys/procfs.h>
-#endif
-#include <osl/diagnose.h>
-#include <osl/mutex.h>
-
-#ifndef _OSL_CONDITN_H_
-#include <osl/conditn.h>
-#endif
-#include <osl/thread.h>
-#include <osl/file.h>
-#include <osl/signal.h>
-#include <rtl/alloc.h>
-
-#include <grp.h>
-
-#include "procimpl.h"
-#include "readwrite_helper.h"
-#include "sockimpl.h"
-#include "secimpl.h"
-
-
-#define MAX_ARGS 255
-#define MAX_ENVS 255
-
-#if defined(MACOSX) || defined(IOS) || defined(IORESOURCE_TRANSFER_BSD) || defined(AIX)
-#define CONTROLLEN (sizeof(struct cmsghdr) + sizeof(int))
-#endif
-
-/* implemented in file.c */
-extern oslFileError FileURLToPath( char *, size_t, rtl_uString* );
-extern oslFileHandle osl_createFileHandleFromFD( int fd );
-
-/******************************************************************************
- *
- * Data Type Definition
- *
- ******************************************************************************/
-
-typedef struct {
- int m_hPipe;
- int m_hConn;
- sal_Char m_Name[PATH_MAX + 1];
-} Pipe;
-
-typedef struct {
- const sal_Char* m_pszArgs[MAX_ARGS + 1];
- oslProcessOption m_options;
- const sal_Char* m_pszDir;
- sal_Char* m_pszEnv[MAX_ENVS + 1];
- uid_t m_uid;
- gid_t m_gid;
- sal_Char* m_name;
- oslCondition m_started;
- oslProcessImpl* m_pProcImpl;
- oslFileHandle *m_pInputWrite;
- oslFileHandle *m_pOutputRead;
- oslFileHandle *m_pErrorRead;
-} ProcessData;
-
-typedef struct _oslPipeImpl {
- int m_Socket;
- sal_Char m_Name[PATH_MAX + 1];
-} oslPipeImpl;
-
-
-/******************************************************************************
- *
- * Function Declarations
- *
- *****************************************************************************/
-
-oslProcessError SAL_CALL osl_psz_executeProcess(sal_Char *pszImageName,
- sal_Char *pszArguments[],
- oslProcessOption Options,
- oslSecurity Security,
- sal_Char *pszDirectory,
- sal_Char *pszEnvironments[],
- oslProcess *pProcess,
- oslFileHandle *pInputWrite,
- oslFileHandle *pOutputRead,
- oslFileHandle *pErrorRead );
-
-
-oslProcessError SAL_CALL osl_searchPath_impl(
- const sal_Char* pszName,
- const sal_Char* pszPath,
- sal_Char Separator,
- sal_Char *pszBuffer,
- sal_uInt32 Max);
-
-
-sal_Bool osl_getFullPath(const sal_Char* pszFilename, sal_Char* pszPath, sal_uInt32 MaxLen);
-
-static oslProcessImpl* ChildList;
-static oslMutex ChildListMutex;
-
-/******************************************************************************
- Deprecated
- Old and buggy implementation of osl_searchPath used only by
- osl_psz_executeProcess.
- A new implemenation is in file_path_helper.cxx
- *****************************************************************************/
-
-oslProcessError SAL_CALL osl_searchPath_impl(const sal_Char* pszName, const sal_Char* pszPath,
- sal_Char Separator, sal_Char *pszBuffer, sal_uInt32 Max)
-{
- sal_Char path[PATH_MAX + 1];
- sal_Char *pchr;
-
- path[0] = '\0';
-
- OSL_ASSERT(pszName != NULL);
-
- if ( pszName == 0 )
- {
- return osl_Process_E_NotFound;
- }
-
- if (pszPath == NULL)
- pszPath = "PATH";
-
- if (Separator == '\0')
- Separator = ':';
-
-
- if ( (pchr = getenv(pszPath)) != 0 )
- {
- sal_Char *pstr;
-
- while (*pchr != '\0')
- {
- pstr = path;
-
- while ((*pchr != '\0') && (*pchr != Separator))
- *pstr++ = *pchr++;
-
- if ((pstr > path) && ((*(pstr - 1) != '/')))
- *pstr++ = '/';
-
- *pstr = '\0';
-
- strcat(path, pszName);
-
- if (access(path, 0) == 0)
- {
- char szRealPathBuf[PATH_MAX] = "";
-
- if( NULL == realpath(path, szRealPathBuf) || (strlen(szRealPathBuf) >= (sal_uInt32)Max))
- return osl_Process_E_Unknown;
-
- strcpy(pszBuffer, path);
-
- return osl_Process_E_None;
- }
-
- if (*pchr == Separator)
- pchr++;
- }
- }
-
- return osl_Process_E_NotFound;
-}
-
-/******************************************************************************
- *
- * New io resource transfer functions
- *
- *****************************************************************************/
-
-
-/**********************************************
- sendFdPipe
- *********************************************/
-
-static sal_Bool sendFdPipe(int PipeFD, int SocketFD)
-{
- sal_Bool bRet = sal_False;
-
- struct iovec iov[1];
- struct msghdr msg;
- char buf[2]; /* send_fd()/recv_fd() 2-byte protocol */
- int nSend;
- int RetCode=0;
-
-#if defined(IOCHANNEL_TRANSFER_BSD)
-
- OSL_TRACE("IOCHANNEL_TRANSFER_BSD send");
-/* OSL_TRACE("sending fd %i\n",SocketFD); */
-
- iov[0].iov_base = buf;
- iov[0].iov_len = sizeof(buf);
- msg.msg_iov = iov;
- msg.msg_iovlen = 1;
- msg.msg_name = NULL;
- msg.msg_namelen = 0;
-
- msg.msg_accrights = (caddr_t) &SocketFD; /* addr of descriptor */
- msg.msg_accrightslen = sizeof(int); /* pass 1 descriptor */
- buf[1] = 0; /* zero status means OK */
- buf[0] = 0; /* null byte flag to recv_fd() */
-
-#else
-
- struct cmsghdr* cmptr = (struct cmsghdr*)malloc(CONTROLLEN);
-
- OSL_TRACE("!!!!!! IOCHANNEL_TRANSFER_BSD_RENO send");
-/* OSL_TRACE("sending fd %i\n",SocketFD); */
-
- iov[0].iov_base = buf;
- iov[0].iov_len = sizeof(buf);
- msg.msg_iov = iov;
- msg.msg_iovlen = 1;
- msg.msg_name = NULL;
- msg.msg_namelen = 0;
- msg.msg_control = (caddr_t) cmptr;
- msg.msg_controllen = CONTROLLEN;
-
- cmptr->cmsg_level = SOL_SOCKET;
- cmptr->cmsg_type = SCM_RIGHTS;
- cmptr->cmsg_len = CONTROLLEN;
- memcpy(CMSG_DATA(cmptr), &SocketFD, sizeof(int));
-
-#endif
-
- if ( ( nSend = sendmsg(PipeFD, &msg, 0) ) > 0 )
- {
- bRet = sal_True;
- OSL_TRACE("sendFdPipe : send '%i' bytes\n",nSend);
-
- }
- else
- {
- OSL_TRACE("sendFdPipe : sending failed (%s)",strerror(errno));
- }
-
- bRet = safeRead(PipeFD, &RetCode, sizeof(RetCode));
-
- if ( bRet && RetCode == 1 )
- {
- OSL_TRACE("sendFdPipe : resource was received\n");
- }
- else
- {
- OSL_TRACE("sendFdPipe : resource wasn't received (error %s)\n", strerror(errno));
- }
-
-#if defined(IOCHANNEL_TRANSFER_BSD_RENO)
- free(cmptr);
-#endif
-
- return bRet;
-}
-
-/**********************************************
- receiveFdPipe
- *********************************************/
-
-static oslSocket receiveFdPipe(int PipeFD)
-{
- oslSocket pSocket = 0;
- struct msghdr msghdr;
- struct iovec iov[1];
- char buffer[2];
- sal_Int32 nRead;
- int newfd=-1;
- int nRetCode=0;
-/* char *ptr; */
-
-#if defined(IOCHANNEL_TRANSFER_BSD)
-
- OSL_TRACE("IOCHANNEL_TRANSFER_BSD receive\n");
-
- iov[0].iov_base = buffer;
- iov[0].iov_len = sizeof(buffer);
- msghdr.msg_name = NULL;
- msghdr.msg_namelen = 0;
- msghdr.msg_iov = iov;
- msghdr.msg_iovlen = 1;
- msghdr.msg_accrights = (caddr_t) &newfd; /* addr of descriptor */
- msghdr.msg_accrightslen = sizeof(int); /* receive 1 descriptor */
-
-#else
- struct cmsghdr* cmptr = (struct cmsghdr*)malloc(CONTROLLEN);
-
- OSL_TRACE(" !!!! IOCHANNEL_TRANSFER_BSD_RENO receive");
-
- iov[0].iov_base = buffer;
- iov[0].iov_len = sizeof(buffer);
- msghdr.msg_name = NULL;
- msghdr.msg_namelen = 0;
- msghdr.msg_iov = iov;
- msghdr.msg_iovlen = 1;
-
- msghdr.msg_control = (caddr_t) cmptr;
- msghdr.msg_controllen = CONTROLLEN;
-
-#endif
-
-
-#if defined(IOCHANNEL_TRANSFER_BSD)
-
- if ( ( nRead = recvmsg(PipeFD, &msghdr, 0) ) > 0 )
- {
- OSL_TRACE("receiveFdPipe : received '%i' bytes\n",nRead);
- }
-#else
-
- if ( ( ( nRead = recvmsg(PipeFD, &msghdr, 0) ) > 0 ) &&
- ( msghdr.msg_controllen == CONTROLLEN ) )
- {
- OSL_TRACE("receiveFdPipe : received '%i' bytes\n",nRead);
- memcpy(&newfd, CMSG_DATA(cmptr), sizeof(int));
- }
-#endif
- else
- {
- OSL_TRACE("receiveFdPipe : receiving failed (%s)",strerror(errno));
- }
-
- if ( newfd >= 0 )
- {
- pSocket = __osl_createSocketImpl(newfd);
- nRetCode=1;
- OSL_TRACE("received fd %i\n",newfd);
- }
-
- OSL_TRACE("receiveFdPipe : writing back %i",nRetCode);
- if ( !safeWrite(PipeFD, &nRetCode, sizeof(nRetCode)) )
- OSL_TRACE("write failed (%s)", strerror(errno));
-
- if ( nRead < 0 )
- {
- OSL_TRACE("write failed (%s)", strerror(errno));
- }
- else if ( nRead != sizeof(nRetCode) )
- {
- // TODO: Handle this case.
- OSL_TRACE("partial write: wrote %d out of %d)", nRead, sizeof(nRetCode));
- }
-
-#if defined(IOCHANNEL_TRANSFER_BSD_RENO)
- free(cmptr);
-#endif
-
- return pSocket;
-}
-
-/**********************************************
- osl_sendResourcePipe
- *********************************************/
-
-sal_Bool osl_sendResourcePipe(oslPipe pPipe, oslSocket pSocket)
-{
- sal_Bool bRet = sal_False;
-
- if ( pSocket == 0 || pPipe == 0 )
- {
- return sal_False;
- }
-
- bRet = sendFdPipe(pPipe->m_Socket,pSocket->m_Socket);
-
- return bRet;
-}
-
-/**********************************************
- osl_receiveResourcePipe
- *********************************************/
-
-oslSocket osl_receiveResourcePipe(oslPipe pPipe)
-{
- oslSocket pSocket=0;
-
- if ( pPipe == 0 )
- {
- return 0;
- }
-
- pSocket = receiveFdPipe(pPipe->m_Socket);
-
- return (oslSocket) pSocket;
-}
-
-
-
-/******************************************************************************
- *
- * Functions for starting a process
- *
- *****************************************************************************/
-
-static void ChildStatusProc(void *pData)
-{
- pid_t pid = -1;
- int status = 0;
- int channel[2];
- ProcessData data;
- ProcessData *pdata;
- int stdOutput[2] = { -1, -1 }, stdInput[2] = { -1, -1 }, stdError[2] = { -1, -1 };
-
- pdata = (ProcessData *)pData;
-
- /* make a copy of our data, because forking will only copy
- our local stack of the thread, so the process data will not be accessible
- in our child process */
- memcpy(&data, pData, sizeof(data));
-
-#ifdef NO_CHILD_PROCESSES
-#define fork() (errno = EINVAL, -1)
-#endif
- if (socketpair(AF_UNIX, SOCK_STREAM, 0, channel) == -1)
- status = errno;
-
- fcntl(channel[0], F_SETFD, FD_CLOEXEC);
- fcntl(channel[1], F_SETFD, FD_CLOEXEC);
-
- /* Create redirected IO pipes */
- if ( status == 0 && data.m_pInputWrite )
- if (pipe( stdInput ) == -1)
- status = errno;
-
- if ( status == 0 && data.m_pOutputRead )
- if (pipe( stdOutput ) == -1)
- status = errno;
-
- if ( status == 0 && data.m_pErrorRead )
- if (pipe( stdError ) == -1)
- status = errno;
-
- if ( (status == 0) && ((pid = fork()) == 0) )
- {
- /* Child */
- int chstatus = 0;
-
- if (channel[0] != -1) close(channel[0]);
-
- if ((data.m_uid != (uid_t)-1) && ((data.m_uid != getuid()) || (data.m_gid != getgid())))
- {
- OSL_ASSERT(geteuid() == 0); /* must be root */
-
- if (! INIT_GROUPS(data.m_name, data.m_gid) || (setuid(data.m_uid) != 0))
- OSL_TRACE("Failed to change uid and guid, errno=%d (%s)\n", errno, strerror(errno));
-#if defined(LINUX) || defined (FREEBSD) || defined(NETBSD) || defined(OPENBSD) || defined(DRAGONFLY)
- unsetenv("HOME");
-#else
- putenv("HOME=");
-#endif
- }
-
- if (data.m_pszDir)
- chstatus = chdir(data.m_pszDir);
-
- if (chstatus == 0 && ((data.m_uid == (uid_t)-1) || ((data.m_uid == getuid()) && (data.m_gid == getgid()))))
- {
- int i;
- for (i = 0; data.m_pszEnv[i] != NULL; i++)
- {
- if (strchr(data.m_pszEnv[i], '=') == NULL)
- {
- unsetenv(data.m_pszEnv[i]); /*TODO: check error return*/
- }
- else
- {
- putenv(data.m_pszEnv[i]); /*TODO: check error return*/
- }
- }
-
- OSL_TRACE("ChildStatusProc : starting '%s'",data.m_pszArgs[0]);
-
- /* Connect std IO to pipe ends */
-
- /* Write end of stdInput not used in child process */
- if (stdInput[1] != -1) close( stdInput[1] );
-
- /* Read end of stdOutput not used in child process */
- if (stdOutput[0] != -1) close( stdOutput[0] );
-
- /* Read end of stdError not used in child process */
- if (stdError[0] != -1) close( stdError[0] );
-
- /* Redirect pipe ends to std IO */
-
- if ( stdInput[0] != STDIN_FILENO )
- {
- dup2( stdInput[0], STDIN_FILENO );
- if (stdInput[0] != -1) close( stdInput[0] );
- }
-
- if ( stdOutput[1] != STDOUT_FILENO )
- {
- dup2( stdOutput[1], STDOUT_FILENO );
- if (stdOutput[1] != -1) close( stdOutput[1] );
- }
-
- if ( stdError[1] != STDERR_FILENO )
- {
- dup2( stdError[1], STDERR_FILENO );
- if (stdError[1] != -1) close( stdError[1] );
- }
-
- // No need to check the return value of execv. If we return from
- // it, an error has occurred.
- execv(data.m_pszArgs[0], (sal_Char **)data.m_pszArgs);
- }
-
- OSL_TRACE("Failed to exec, errno=%d (%s)\n", errno, strerror(errno));
-
- OSL_TRACE("ChildStatusProc : starting '%s' failed",data.m_pszArgs[0]);
-
- /* if we reach here, something went wrong */
- if ( !safeWrite(channel[1], &errno, sizeof(errno)) )
- OSL_TRACE("sendFdPipe : sending failed (%s)",strerror(errno));
-
- if ( channel[1] != -1 )
- close(channel[1]);
-
- _exit(255);
- }
- else
- { /* Parent */
- int i = -1;
- if (channel[1] != -1) close(channel[1]);
-
- /* Close unused pipe ends */
- if (stdInput[0] != -1) close( stdInput[0] );
- if (stdOutput[1] != -1) close( stdOutput[1] );
- if (stdError[1] != -1) close( stdError[1] );
-
- if (pid > 0)
- {
- while (((i = read(channel[0], &status, sizeof(status))) < 0))
- {
- if (errno != EINTR)
- break;
- }
- }
-
- if (channel[0] != -1) close(channel[0]);
-
- if ((pid > 0) && (i == 0))
- {
- pid_t child_pid;
- osl_acquireMutex(ChildListMutex);
-
- pdata->m_pProcImpl->m_pid = pid;
- pdata->m_pProcImpl->m_pnext = ChildList;
- ChildList = pdata->m_pProcImpl;
-
- /* Store used pipe ends in data structure */
-
- if ( pdata->m_pInputWrite )
- *(pdata->m_pInputWrite) = osl_createFileHandleFromFD( stdInput[1] );
-
- if ( pdata->m_pOutputRead )
- *(pdata->m_pOutputRead) = osl_createFileHandleFromFD( stdOutput[0] );
-
- if ( pdata->m_pErrorRead )
- *(pdata->m_pErrorRead) = osl_createFileHandleFromFD( stdError[0] );
-
- osl_releaseMutex(ChildListMutex);
-
- osl_setCondition(pdata->m_started);
-
- do
- {
- child_pid = waitpid(pid, &status, 0);
- } while ( 0 > child_pid && EINTR == errno );
-
- if ( child_pid < 0)
- {
- OSL_TRACE("Failed to wait for child process, errno=%d (%s)\n", errno, strerror(errno));
-
- /*
- We got an other error than EINTR. Anyway we have to wake up the
- waiting thread under any circumstances */
-
- child_pid = pid;
- }
-
-
- if ( child_pid > 0 )
- {
- oslProcessImpl* pChild;
-
- osl_acquireMutex(ChildListMutex);
-
- pChild = ChildList;
-
- /* check if it is one of our child processes */
- while (pChild != NULL)
- {
- if (pChild->m_pid == child_pid)
- {
- if (WIFEXITED(status))
- pChild->m_status = WEXITSTATUS(status);
- else
- pChild->m_status = -1;
-
- osl_setCondition(pChild->m_terminated);
- }
-
- pChild = pChild->m_pnext;
- }
-
- osl_releaseMutex(ChildListMutex);
- }
- }
- else
- {
- OSL_TRACE("ChildStatusProc : starting '%s' failed",data.m_pszArgs[0]);
- OSL_TRACE("Failed to launch child process, child reports errno=%d (%s)\n", status, strerror(status));
-
- /* Close pipe ends */
- if ( pdata->m_pInputWrite )
- *pdata->m_pInputWrite = NULL;
-
- if ( pdata->m_pOutputRead )
- *pdata->m_pOutputRead = NULL;
-
- if ( pdata->m_pErrorRead )
- *pdata->m_pErrorRead = NULL;
-
- if (stdInput[1] != -1) close( stdInput[1] );
- if (stdOutput[0] != -1) close( stdOutput[0] );
- if (stdError[0] != -1) close( stdError[0] );
-
- //if pid > 0 then a process was created, even if it later failed
- //e.g. bash searching for a command to execute, and we still
- //need to clean it up to avoid "defunct" processes
- if (pid > 0)
- {
- pid_t child_pid;
- do
- {
- child_pid = waitpid(pid, &status, 0);
- } while ( 0 > child_pid && EINTR == errno );
- }
-
- /* notify (and unblock) parent thread */
- osl_setCondition(pdata->m_started);
- }
- }
-}
-
-/**********************************************
- osl_executeProcess_WithRedirectedIO
- *********************************************/
-
-oslProcessError SAL_CALL osl_executeProcess_WithRedirectedIO(
- rtl_uString *ustrImageName,
- rtl_uString *ustrArguments[],
- sal_uInt32 nArguments,
- oslProcessOption Options,
- oslSecurity Security,
- rtl_uString *ustrWorkDir,
- rtl_uString *ustrEnvironment[],
- sal_uInt32 nEnvironmentVars,
- oslProcess *pProcess,
- oslFileHandle *pInputWrite,
- oslFileHandle *pOutputRead,
- oslFileHandle *pErrorRead
- )
-{
-
- oslProcessError Error;
- sal_Char* pszWorkDir=0;
- sal_Char** pArguments=0;
- sal_Char** pEnvironment=0;
- unsigned int idx;
-
- char szImagePath[PATH_MAX] = "";
- char szWorkDir[PATH_MAX] = "";
-
- if ( ustrImageName && ustrImageName->length )
- {
- FileURLToPath( szImagePath, PATH_MAX, ustrImageName );
- }
-
- if ( ustrWorkDir != 0 && ustrWorkDir->length )
- {
- FileURLToPath( szWorkDir, PATH_MAX, ustrWorkDir );
- pszWorkDir = szWorkDir;
- }
-
- if ( pArguments == 0 && nArguments > 0 )
- {
- pArguments = (sal_Char**) malloc( ( nArguments + 2 ) * sizeof(sal_Char*) );
- }
-
-
- for ( idx = 0 ; idx < nArguments ; ++idx )
- {
- rtl_String* strArg =0;
-
-
- rtl_uString2String( &strArg,
- rtl_uString_getStr(ustrArguments[idx]),
- rtl_uString_getLength(ustrArguments[idx]),
- osl_getThreadTextEncoding(),
- OUSTRING_TO_OSTRING_CVTFLAGS );
-
- pArguments[idx]=strdup(rtl_string_getStr(strArg));
- rtl_string_release(strArg);
- pArguments[idx+1]=0;
- }
-
- for ( idx = 0 ; idx < nEnvironmentVars ; ++idx )
- {
- rtl_String* strEnv=0;
-
- if ( pEnvironment == 0 )
- {
- pEnvironment = (sal_Char**) malloc( ( nEnvironmentVars + 2 ) * sizeof(sal_Char*) );
- }
-
- rtl_uString2String( &strEnv,
- rtl_uString_getStr(ustrEnvironment[idx]),
- rtl_uString_getLength(ustrEnvironment[idx]),
- osl_getThreadTextEncoding(),
- OUSTRING_TO_OSTRING_CVTFLAGS );
-
- pEnvironment[idx]=strdup(rtl_string_getStr(strEnv));
- rtl_string_release(strEnv);
- pEnvironment[idx+1]=0;
- }
-
-
- Error = osl_psz_executeProcess(szImagePath,
- pArguments,
- Options,
- Security,
- pszWorkDir,
- pEnvironment,
- pProcess,
- pInputWrite,
- pOutputRead,
- pErrorRead
- );
-
- if ( pArguments != 0 )
- {
- for ( idx = 0 ; idx < nArguments ; ++idx )
- {
- if ( pArguments[idx] != 0 )
- {
- free(pArguments[idx]);
- }
- }
- free(pArguments);
- }
-
- if ( pEnvironment != 0 )
- {
- for ( idx = 0 ; idx < nEnvironmentVars ; ++idx )
- {
- if ( pEnvironment[idx] != 0 )
- {
- free(pEnvironment[idx]);
- }
- }
- free(pEnvironment);
- }
-
- return Error;
-}
-
-/**********************************************
- osl_executeProcess
- *********************************************/
-
-oslProcessError SAL_CALL osl_executeProcess(
- rtl_uString *ustrImageName,
- rtl_uString *ustrArguments[],
- sal_uInt32 nArguments,
- oslProcessOption Options,
- oslSecurity Security,
- rtl_uString *ustrWorkDir,
- rtl_uString *ustrEnvironment[],
- sal_uInt32 nEnvironmentVars,
- oslProcess *pProcess
- )
-{
- return osl_executeProcess_WithRedirectedIO(
- ustrImageName,
- ustrArguments,
- nArguments,
- Options,
- Security,
- ustrWorkDir,
- ustrEnvironment,
- nEnvironmentVars,
- pProcess,
- NULL,
- NULL,
- NULL
- );
-}
-
-/**********************************************
- osl_psz_executeProcess
- *********************************************/
-
-oslProcessError SAL_CALL osl_psz_executeProcess(sal_Char *pszImageName,
- sal_Char *pszArguments[],
- oslProcessOption Options,
- oslSecurity Security,
- sal_Char *pszDirectory,
- sal_Char *pszEnvironments[],
- oslProcess *pProcess,
- oslFileHandle *pInputWrite,
- oslFileHandle *pOutputRead,
- oslFileHandle *pErrorRead
- )
-{
- int i;
- sal_Char path[PATH_MAX + 1];
- ProcessData Data;
- oslThread hThread;
-
- path[0] = '\0';
-
- memset(&Data,0,sizeof(ProcessData));
- Data.m_pInputWrite = pInputWrite;
- Data.m_pOutputRead = pOutputRead;
- Data.m_pErrorRead = pErrorRead;
-
- if (pszImageName == NULL)
- pszImageName = pszArguments[0];
-
- OSL_ASSERT(pszImageName != NULL);
-
- if ( pszImageName == 0 )
- {
- return osl_Process_E_NotFound;
- }
-
- if ((Options & osl_Process_SEARCHPATH) &&
- (osl_searchPath_impl(pszImageName, NULL, '\0', path, sizeof(path)) == osl_Process_E_None))
- pszImageName = path;
-
- Data.m_pszArgs[0] = strdup(pszImageName);
- Data.m_pszArgs[1] = 0;
-
- if ( pszArguments != 0 )
- {
- for (i = 0; ((i + 2) < MAX_ARGS) && (pszArguments[i] != NULL); i++)
- Data.m_pszArgs[i+1] = strdup(pszArguments[i]);
- Data.m_pszArgs[i+2] = NULL;
- }
-
- Data.m_options = Options;
- Data.m_pszDir = (pszDirectory != NULL) ? strdup(pszDirectory) : NULL;
-
- if (pszEnvironments != NULL)
- {
- for (i = 0; ((i + 1) < MAX_ENVS) && (pszEnvironments[i] != NULL); i++)
- Data.m_pszEnv[i] = strdup(pszEnvironments[i]);
- Data.m_pszEnv[i+1] = NULL;
- }
- else
- Data.m_pszEnv[0] = NULL;
-
- if (Security != NULL)
- {
- Data.m_uid = ((oslSecurityImpl*)Security)->m_pPasswd.pw_uid;
- Data.m_gid = ((oslSecurityImpl*)Security)->m_pPasswd.pw_gid;
- Data.m_name = ((oslSecurityImpl*)Security)->m_pPasswd.pw_name;
- }
- else
- Data.m_uid = (uid_t)-1;
-
- Data.m_pProcImpl = (oslProcessImpl*) malloc(sizeof(oslProcessImpl));
- Data.m_pProcImpl->m_pid = 0;
- Data.m_pProcImpl->m_terminated = osl_createCondition();
- Data.m_pProcImpl->m_pnext = NULL;
-
- if (ChildListMutex == NULL)
- ChildListMutex = osl_createMutex();
-
- Data.m_started = osl_createCondition();
-
- hThread = osl_createThread(ChildStatusProc, &Data);
-
- osl_waitCondition(Data.m_started, NULL);
- osl_destroyCondition(Data.m_started);
-
- for (i = 0; Data.m_pszArgs[i] != NULL; i++)
- free((void *)Data.m_pszArgs[i]);
-
- for (i = 0; Data.m_pszEnv[i] != NULL; i++)
- free((void *)Data.m_pszEnv[i]);
-
- if ( Data.m_pszDir != 0 )
- {
- free((void *)Data.m_pszDir);
- }
-
- osl_destroyThread(hThread);
-
- if (Data.m_pProcImpl->m_pid != 0)
- {
- *pProcess = Data.m_pProcImpl;
-
- if (Options & osl_Process_WAIT)
- osl_joinProcess(*pProcess);
-
- return osl_Process_E_None;
- }
-
- osl_destroyCondition(Data.m_pProcImpl->m_terminated);
- free(Data.m_pProcImpl);
-
- return osl_Process_E_Unknown;
-}
-
-
-/******************************************************************************
- *
- * Functions for processes
- *
- *****************************************************************************/
-
-
-/**********************************************
- osl_terminateProcess
- *********************************************/
-
-oslProcessError SAL_CALL osl_terminateProcess(oslProcess Process)
-{
- if (Process == NULL)
- return osl_Process_E_Unknown;
-
- if (kill(((oslProcessImpl*)Process)->m_pid, SIGKILL) != 0)
- {
- switch (errno)
- {
- case EPERM:
- return osl_Process_E_NoPermission;
-
- case ESRCH:
- return osl_Process_E_NotFound;
-
- default:
- return osl_Process_E_Unknown;
- }
- }
-
- return osl_Process_E_None;
-}
-
-/**********************************************
- osl_getProcess
- *********************************************/
-
-oslProcess SAL_CALL osl_getProcess(oslProcessIdentifier Ident)
-{
- oslProcessImpl *pProcImpl;
-
- if (kill(Ident, 0) != -1)
- {
- oslProcessImpl* pChild;
-
- if (ChildListMutex == NULL)
- ChildListMutex = osl_createMutex();
-
- osl_acquireMutex(ChildListMutex);
-
- pChild = ChildList;
-
- /* check if it is one of our child processes */
- while (pChild != NULL)
- {
- if (Ident == (sal_uInt32) pChild->m_pid)
- break;
-
- pChild = pChild->m_pnext;
- }
-
- pProcImpl = (oslProcessImpl*) malloc(sizeof(oslProcessImpl));
- pProcImpl->m_pid = Ident;
- pProcImpl->m_terminated = osl_createCondition();
-
- if (pChild != NULL)
- {
- /* process is a child so insert into list */
- pProcImpl->m_pnext = pChild->m_pnext;
- pChild->m_pnext = pProcImpl;
-
- pProcImpl->m_status = pChild->m_status;
-
- if (osl_checkCondition(pChild->m_terminated))
- osl_setCondition(pProcImpl->m_terminated);
- }
- else
- pProcImpl->m_pnext = NULL;
-
- osl_releaseMutex(ChildListMutex);
- }
- else
- pProcImpl = NULL;
-
- return (pProcImpl);
-}
-
-/**********************************************
- osl_freeProcessHandle
- *********************************************/
-
-void SAL_CALL osl_freeProcessHandle(oslProcess Process)
-{
- if (Process != NULL)
- {
- oslProcessImpl *pChild, *pPrev = NULL;
-
- OSL_ASSERT(ChildListMutex != NULL);
-
- if ( ChildListMutex == 0 )
- {
- return;
- }
-
- osl_acquireMutex(ChildListMutex);
-
- pChild = ChildList;
-
- /* remove process from child list */
- while (pChild != NULL)
- {
- if (pChild == (oslProcessImpl*)Process)
- {
- if (pPrev != NULL)
- pPrev->m_pnext = pChild->m_pnext;
- else
- ChildList = pChild->m_pnext;
-
- break;
- }
-
- pPrev = pChild;
- pChild = pChild->m_pnext;
- }
-
- osl_releaseMutex(ChildListMutex);
-
- osl_destroyCondition(((oslProcessImpl*)Process)->m_terminated);
-
- free(Process);
- }
-}
-
-#if defined(LINUX)
-struct osl_procStat
-{
- /* from 'stat' */
- pid_t pid; /* pid */
- char command[16]; /* 'argv[0]' */ /* mfe: it all right char comm[16] in kernel! */
- char state; /* state (running, stopped, ...) */
- pid_t ppid; /* parent pid */
- pid_t pgrp; /* parent group */
- int session; /* session ID */
- int tty; /* no of tty */
- pid_t tpgid; /* group of process owning the tty */
- unsigned long flags; /* flags dunno */
- unsigned long minflt; /* minor page faults */
- unsigned long cminflt; /* minor page faults with children */
- unsigned long majflt; /* major page faults */
- unsigned long cmajflt; /* major page faults with children */
- unsigned long utime; /* no of jiffies in user mode */
- unsigned long stime; /* no of jiffies in kernel mode */
- unsigned long cutime; /* no of jiffies in user mode with children */
- unsigned long cstime; /* no of jiffies in kernel mode with children */
- unsigned long priority; /* nice value + 15 (kernel scheduling prio)*/
- long nice; /* nice value */
- long timeout; /* no of jiffies of next process timeout */
- long itrealvalue; /* no jiffies before next SIGALRM */
- unsigned long starttime; /* process started this no of jiffies after boot */
- unsigned long vsize; /* virtual memory size (in bytes) */
- long rss; /* resident set size (in pages) */
- unsigned long rss_rlim; /* rss limit (in bytes) */
- unsigned long startcode; /* address above program text can run */
- unsigned long endcode; /* address below program text can run */
- unsigned long startstack; /* address of start of stack */
- unsigned long kstkesp; /* current value of 'esp' (stack pointer) */
- unsigned long kstkeip; /* current value of 'eip' (instruction pointer) */
- /* mfe: Linux > 2.1.7x have more signals (88) */
-/*#ifdef LINUX */
- char signal[24]; /* pending signals */
- char blocked[24]; /* blocked signals */
- char sigignore[24]; /* ignored signals */
- char sigcatch[24]; /* catched signals */
-/*#else*/
-/* long long signal;*/
-/* long long blocked;*/
-/* long long sigignore;*/
-/* long long sigcatch;*/
-/*#endif */
- unsigned long wchan; /* 'channel' the process is waiting in */
- unsigned long nswap; /* ? */
- unsigned long cnswap; /* ? */
-
- /* from 'status' */
- int ruid; /* real uid */
- int euid; /* effective uid */
- int suid; /* saved uid */
- int fuid; /* file access uid */
- int rgid; /* real gid */
- int egid; /* effective gid */
- int sgid; /* saved gid */
- int fgid; /* file access gid */
- unsigned long vm_size; /* like vsize but on kb */
- unsigned long vm_lock; /* locked pages in kb */
- unsigned long vm_rss; /* like rss but in kb */
- unsigned long vm_data; /* data size */
- unsigned long vm_stack; /* stack size */
- unsigned long vm_exe; /* executable size */
- unsigned long vm_lib; /* library size */
-};
-
-/**********************************************
- osl_getProcStat
- *********************************************/
-
-sal_Bool osl_getProcStat(pid_t pid, struct osl_procStat* procstat)
-{
- int fd = 0;
- sal_Bool bRet = sal_False;
- char name[PATH_MAX + 1];
- snprintf(name, sizeof(name), "/proc/%u/stat", pid);
-
- if ((fd = open(name,O_RDONLY)) >=0 )
- {
- char* tmp=0;
- char prstatbuf[512];
- memset(prstatbuf,0,512);
- bRet = safeRead(fd, prstatbuf, 511);
-
- close(fd);
- /*printf("%s\n\n",prstatbuf);*/
-
- if (!bRet)
- return sal_False;
-
- tmp = strrchr(prstatbuf, ')');
- *tmp = '\0';
- memset(procstat->command, 0, sizeof(procstat->command));
-
- sscanf(prstatbuf, "%d (%15c", &procstat->pid, procstat->command);
- sscanf(tmp + 2,
- "%c"
- "%i %i %i %i %i"
- "%lu %lu %lu %lu %lu"
- "%lu %lu %lu %lu"
- "%lu %li %li %li"
- "%lu %lu %li %lu"
- "%lu %lu %lu %lu %lu"
- "%s %s %s %s"
- "%lu %lu %lu",
- &procstat->state,
- &procstat->ppid, &procstat->pgrp, &procstat->session, &procstat->tty, &procstat->tpgid,
- &procstat->flags, &procstat->minflt, &procstat->cminflt, &procstat->majflt, &procstat->cmajflt,
- &procstat->utime, &procstat->stime, &procstat->cutime, &procstat->cstime,
- &procstat->priority, &procstat->nice, &procstat->timeout, &procstat->itrealvalue,
- &procstat->starttime, &procstat->vsize, &procstat->rss, &procstat->rss_rlim,
- &procstat->startcode, &procstat->endcode, &procstat->startstack, &procstat->kstkesp, &procstat->kstkeip,
- procstat->signal, procstat->blocked, procstat->sigignore, procstat->sigcatch,
- &procstat->wchan, &procstat->nswap, &procstat->cnswap
- );
- }
- return bRet;
-}
-
-/**********************************************
- osl_getProcStatus
- *********************************************/
-
-sal_Bool osl_getProcStatus(pid_t pid, struct osl_procStat* procstat)
-{
- int fd = 0;
- char name[PATH_MAX + 1];
- snprintf(name, sizeof(name), "/proc/%u/status", pid);
-
- sal_Bool bRet = sal_False;
-
- if ((fd = open(name,O_RDONLY)) >=0 )
- {
- char* tmp=0;
- char prstatusbuf[512];
- memset(prstatusbuf,0,512);
- bRet = safeRead(fd, prstatusbuf, 511);
-
- close(fd);
-
- /* printf("\n\n%s\n\n",prstatusbuf);*/
-
- if (!bRet)
- return sal_False;
-
- tmp = strstr(prstatusbuf,"Uid:");
- if(tmp)
- {
- sscanf(tmp,"Uid:\t%d\t%d\t%d\t%d",
- &procstat->ruid, &procstat->euid, &procstat->suid, &procstat->fuid
- );
- }
-
-
- tmp = strstr(prstatusbuf,"Gid:");
- if(tmp)
- {
- sscanf(tmp,"Gid:\t%d\t%d\t%d\t%d",
- &procstat->rgid, &procstat->egid, &procstat->sgid, &procstat->fgid
- );
- }
-
- tmp = strstr(prstatusbuf,"VmSize:");
- if(tmp)
- {
- sscanf(tmp,
- "VmSize: %lu kB\n"
- "VmLck: %lu kB\n"
- "VmRSS: %lu kB\n"
- "VmData: %lu kB\n"
- "VmStk: %lu kB\n"
- "VmExe: %lu kB\n"
- "VmLib: %lu kB\n",
- &procstat->vm_size, &procstat->vm_lock, &procstat->vm_rss, &procstat->vm_data,
- &procstat->vm_stack, &procstat->vm_exe, &procstat->vm_lib
- );
- }
-
- tmp = strstr(prstatusbuf,"SigPnd:");
- if(tmp)
- {
- sscanf(tmp, "SigPnd: %s SigBlk: %s SigIgn: %s %*s %s",
- procstat->signal, procstat->blocked, procstat->sigignore, procstat->sigcatch
- );
- }
- }
- return bRet;
-}
-
-#endif
-
-/**********************************************
- osl_getProcessInfo
- *********************************************/
-
-oslProcessError SAL_CALL osl_getProcessInfo(oslProcess Process, oslProcessData Fields, oslProcessInfo* pInfo)
-{
- pid_t pid;
-
- if (Process == NULL)
- pid = getpid();
- else
- pid = ((oslProcessImpl*)Process)->m_pid;
-
- if (! pInfo || (pInfo->Size != sizeof(oslProcessInfo)))
- return osl_Process_E_Unknown;
-
- pInfo->Fields = 0;
-
- if (Fields & osl_Process_IDENTIFIER)
- {
- pInfo->Ident = pid;
- pInfo->Fields |= osl_Process_IDENTIFIER;
- }
-
- if (Fields & osl_Process_EXITCODE)
- {
- if ((Process != NULL) &&
- osl_checkCondition(((oslProcessImpl*)Process)->m_terminated))
- {
- pInfo->Code = ((oslProcessImpl*)Process)->m_status;
- pInfo->Fields |= osl_Process_EXITCODE;
- }
- }
-
- if (Fields & (osl_Process_HEAPUSAGE | osl_Process_CPUTIMES))
- {
-
-#if defined(SOLARIS)
-
- int fd;
- sal_Char name[PATH_MAX + 1];
-
- snprintf(name, sizeof(name), "/proc/%u", pid);
-
- if ((fd = open(name, O_RDONLY)) >= 0)
- {
- prstatus_t prstatus;
-
- if (ioctl(fd, PIOCSTATUS, &prstatus) >= 0)
- {
- if (Fields & osl_Process_CPUTIMES)
- {
- pInfo->UserTime.Seconds = prstatus.pr_utime.tv_sec;
- pInfo->UserTime.Nanosec = prstatus.pr_utime.tv_nsec;
- pInfo->SystemTime.Seconds = prstatus.pr_stime.tv_sec;
- pInfo->SystemTime.Nanosec = prstatus.pr_stime.tv_nsec;
-
- pInfo->Fields |= osl_Process_CPUTIMES;
- }
-
- if (Fields & osl_Process_HEAPUSAGE)
- {
- pInfo->HeapUsage = prstatus.pr_brksize;
-
- pInfo->Fields |= osl_Process_HEAPUSAGE;
- }
-
- close(fd);
-
- return (pInfo->Fields == Fields) ? osl_Process_E_None : osl_Process_E_Unknown;
- }
- else
- close(fd);
- }
-
-#elif defined(LINUX)
-
- if ( (Fields & osl_Process_CPUTIMES) || (Fields & osl_Process_HEAPUSAGE) )
- {
- struct osl_procStat procstat;
- memset(&procstat,0,sizeof(procstat));
-
- if ( (Fields & osl_Process_CPUTIMES) && osl_getProcStat(pid, &procstat) )
- {
- /*
- * mfe:
- * We calculate only time of the process proper.
- * Threads are processes, we do not consider their time here!
- * (For this, cutime and cstime should be used, it seems not
- * to work in 2.0.36)
- */
-
- long clktck;
- unsigned long hz;
- unsigned long userseconds;
- unsigned long systemseconds;
-
- clktck = sysconf(_SC_CLK_TCK);
- if (clktck < 0) {
- return osl_Process_E_Unknown;
- }
- hz = (unsigned long) clktck;
-
- userseconds = procstat.utime/hz;
- systemseconds = procstat.stime/hz;
-
- pInfo->UserTime.Seconds = userseconds;
- pInfo->UserTime.Nanosec = procstat.utime - (userseconds * hz);
- pInfo->SystemTime.Seconds = systemseconds;
- pInfo->SystemTime.Nanosec = procstat.stime - (systemseconds * hz);
-
- pInfo->Fields |= osl_Process_CPUTIMES;
- }
-
- if ( (Fields & osl_Process_HEAPUSAGE) && osl_getProcStatus(pid, &procstat) )
- {
- /*
- * mfe:
- * vm_data (found in status) shows the size of the data segment
- * it a rough approximation of the core heap size
- */
- pInfo->HeapUsage = procstat.vm_data*1024;
-
- pInfo->Fields |= osl_Process_HEAPUSAGE;
- }
- }
-
- return (pInfo->Fields == Fields) ? osl_Process_E_None : osl_Process_E_Unknown;
-#endif
-
- }
-
- return (pInfo->Fields == Fields) ? osl_Process_E_None : osl_Process_E_Unknown;
-}
-
-
-/***********************************************
- helper function for osl_joinProcessWithTimeout
- **********************************************/
-
-static int is_timeout(const struct timeval* tend)
-{
- struct timeval tcurrent;
- gettimeofday(&tcurrent, NULL);
- return (tcurrent.tv_sec >= tend->tv_sec);
-}
-
-/**********************************************
- kill(pid, 0) is usefull for checking if a
- process is still alive, but remember that
- kill even returns 0 if the process is already
- a zombie.
- *********************************************/
-
-static int is_process_dead(pid_t pid)
-{
- return ((-1 == kill(pid, 0)) && (ESRCH == errno));
-}
-
-/**********************************************
- osl_joinProcessWithTimeout
- *********************************************/
-
-oslProcessError SAL_CALL osl_joinProcessWithTimeout(oslProcess Process, const TimeValue* pTimeout)
-{
- oslProcessImpl* pChild = ChildList;
- oslProcessError osl_error = osl_Process_E_None;
-
- OSL_PRECOND(Process, "osl_joinProcess: Invalid parameter");
- OSL_ASSERT(ChildListMutex);
-
- if (NULL == Process || 0 == ChildListMutex)
- return osl_Process_E_Unknown;
-
- osl_acquireMutex(ChildListMutex);
-
- /* check if process is a child of ours */
- while (pChild != NULL)
- {
- if (pChild == (oslProcessImpl*)Process)
- break;
-
- pChild = pChild->m_pnext;
- }
-
- osl_releaseMutex(ChildListMutex);
-
- if (pChild != NULL)
- {
- oslConditionResult cond_res = osl_waitCondition(pChild->m_terminated, pTimeout);
-
- if (osl_cond_result_timeout == cond_res)
- osl_error = osl_Process_E_TimedOut;
- else if (osl_cond_result_ok != cond_res)
- osl_error = osl_Process_E_Unknown;
- }
- else /* alien process; StatusThread will not be able
- to set the condition terminated */
- {
- pid_t pid = ((oslProcessImpl*)Process)->m_pid;
-
- if (pTimeout)
- {
- int timeout = 0;
- struct timeval tend;
-
- gettimeofday(&tend, NULL);
-
- tend.tv_sec += pTimeout->Seconds;
-
- while (!is_process_dead(pid) && ((timeout = is_timeout(&tend)) == 0))
- sleep(1);
-
- if (timeout)
- osl_error = osl_Process_E_TimedOut;
- }
- else /* infinite */
- {
- while (!is_process_dead(pid))
- sleep(1);
- }
- }
- return osl_error;
-}
-
-/**********************************************
- osl_joinProcess
- *********************************************/
-
-oslProcessError SAL_CALL osl_joinProcess(oslProcess Process)
-{
- return osl_joinProcessWithTimeout(Process, NULL);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/process_impl.cxx b/sal/osl/unx/process_impl.cxx
deleted file mode 100644
index caa19f0fe..000000000
--- a/sal/osl/unx/process_impl.cxx
+++ /dev/null
@@ -1,519 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include "osl/process.h"
-
-#ifndef INCLUDED_LIMITS_H
-#include <limits.h>
-#define INCLUDED_LIMITS_H
-#endif
-
-#ifndef INCLUDED_PTHREAD_H
-#include <pthread.h>
-#define INCLUDED_PTHREAD_H
-#endif
-
-#ifndef INCLUDED_STDLIB_H
-#include <stdlib.h>
-#define INCLUDED_STDLIB_H
-#endif
-
-#ifndef INCLUDED_STRING_H
-#include <string.h>
-#define INCLUDED_STRING_H
-#endif
-#include "osl/diagnose.h"
-#include "osl/file.h"
-#include "osl/module.h"
-#include "osl/thread.h"
-#include "rtl/ustring.hxx"
-#include "rtl/strbuf.h"
-
-#include "file_path_helper.h"
-
-#include "uunxapi.h"
-
-/***************************************
- osl_bootstrap_getExecutableFile_Impl().
-
- @internal
- @see rtl_bootstrap
- @see #i37371#
-
- **************************************/
-
-extern "C" oslProcessError SAL_CALL osl_bootstrap_getExecutableFile_Impl (
- rtl_uString ** ppFileURL
-) SAL_THROW_EXTERN_C();
-
-
-#if defined(MACOSX)
-#include <mach-o/dyld.h>
-
-oslProcessError SAL_CALL osl_bootstrap_getExecutableFile_Impl (
- rtl_uString ** ppFileURL
-) SAL_THROW_EXTERN_C()
-{
- oslProcessError result = osl_Process_E_NotFound;
-
- char buffer[PATH_MAX];
- size_t buflen = sizeof(buffer);
-
-#if __GNUC__ >= 4 && defined(MACOSX)
- if (_NSGetExecutablePath (buffer, (uint32_t*)&buflen) == 0)
-#else
- if (_NSGetExecutablePath (buffer, &buflen) == 0)
-#endif
- {
- /* Determine absolute path. */
- char abspath[PATH_MAX];
- if (realpath (buffer, abspath) != 0)
- {
- /* Convert from utf8 to unicode. */
- rtl_uString * pAbsPath = 0;
- rtl_string2UString (
- &(pAbsPath),
- abspath, rtl_str_getLength (abspath),
- RTL_TEXTENCODING_UTF8,
- OSTRING_TO_OUSTRING_CVTFLAGS);
-
- if (pAbsPath)
- {
- /* Convert from path to url. */
- if (osl_getFileURLFromSystemPath (pAbsPath, ppFileURL) == osl_File_E_None)
- {
- /* Success. */
- result = osl_Process_E_None;
- }
- rtl_uString_release (pAbsPath);
- }
- }
- }
-
- return (result);
-}
-
-#elif !defined(NO_DL_FUNCTIONS)
-#include <dlfcn.h>
-
-oslProcessError SAL_CALL osl_bootstrap_getExecutableFile_Impl (
- rtl_uString ** ppFileURL
-) SAL_THROW_EXTERN_C()
-{
- oslProcessError result = osl_Process_E_NotFound;
-
- /* Determine address of "main()" function. */
- void * addr = dlsym (RTLD_DEFAULT, "main");
- if (addr != 0)
- {
- /* Determine module URL. */
- if (osl_getModuleURLFromAddress (addr, ppFileURL))
- {
- /* Success. */
- result = osl_Process_E_None;
- }
- }
-
- return (result);
-}
-
-#else /* NO_DL_FUNCTIONS */
-
-oslProcessError SAL_CALL osl_bootstrap_getExecutableFile_Impl (
- rtl_uString ** ppFileURL
-) SAL_THROW_EXTERN_C()
-{
- /* Fallback to ordinary osl_getExecutableFile(). */
- return osl_getExecutableFile (ppFileURL);
-}
-
-#endif /* NO_DL_FUNCTIONS */
-
-/***************************************
- CommandArgs_Impl.
- **************************************/
-struct CommandArgs_Impl
-{
- pthread_mutex_t m_mutex;
- sal_uInt32 m_nCount;
- rtl_uString ** m_ppArgs;
-};
-
-static struct CommandArgs_Impl g_command_args =
-{
- PTHREAD_MUTEX_INITIALIZER,
- 0,
- 0
-};
-
-/***************************************
- osl_getExecutableFile().
- **************************************/
-oslProcessError SAL_CALL osl_getExecutableFile (rtl_uString ** ppustrFile)
-{
- oslProcessError result = osl_Process_E_NotFound;
-
- pthread_mutex_lock (&(g_command_args.m_mutex));
- OSL_ASSERT(g_command_args.m_nCount > 0);
- if (g_command_args.m_nCount > 0)
- {
- /* CommandArgs set. Obtain argv[0]. */
- rtl_uString_assign (ppustrFile, g_command_args.m_ppArgs[0]);
- result = osl_Process_E_None;
- }
- pthread_mutex_unlock (&(g_command_args.m_mutex));
-
- return (result);
-}
-
-/***************************************
- osl_getCommandArgCount().
- **************************************/
-sal_uInt32 SAL_CALL osl_getCommandArgCount (void)
-{
- sal_uInt32 result = 0;
-
- pthread_mutex_lock (&(g_command_args.m_mutex));
- OSL_ASSERT(g_command_args.m_nCount > 0);
- if (g_command_args.m_nCount > 0)
- result = g_command_args.m_nCount - 1;
- pthread_mutex_unlock (&(g_command_args.m_mutex));
-
- return (result);
-}
-
-/***************************************
- osl_getCommandArg().
- **************************************/
-oslProcessError SAL_CALL osl_getCommandArg (sal_uInt32 nArg, rtl_uString ** strCommandArg)
-{
- oslProcessError result = osl_Process_E_NotFound;
-
- pthread_mutex_lock (&(g_command_args.m_mutex));
- OSL_ASSERT(g_command_args.m_nCount > 0);
- if (g_command_args.m_nCount > (nArg + 1))
- {
- rtl_uString_assign (strCommandArg, g_command_args.m_ppArgs[nArg + 1]);
- result = osl_Process_E_None;
- }
- pthread_mutex_unlock (&(g_command_args.m_mutex));
-
- return (result);
-}
-
-/***************************************
- osl_setCommandArgs().
- **************************************/
-void SAL_CALL osl_setCommandArgs (int argc, char ** argv)
-{
- OSL_ASSERT(argc > 0);
- pthread_mutex_lock (&(g_command_args.m_mutex));
- OSL_ENSURE (g_command_args.m_nCount == 0, "osl_setCommandArgs(): CommandArgs already set.");
- if (g_command_args.m_nCount == 0)
- {
- rtl_uString** ppArgs = (rtl_uString**)rtl_allocateZeroMemory (argc * sizeof(rtl_uString*));
- if (ppArgs != 0)
- {
- rtl_TextEncoding encoding = osl_getThreadTextEncoding();
- for (int i = 0; i < argc; i++)
- {
- rtl_string2UString (
- &(ppArgs[i]),
- argv[i], rtl_str_getLength (argv[i]), encoding,
- OSTRING_TO_OUSTRING_CVTFLAGS);
- }
- if (ppArgs[0] != 0)
- {
- /* see @ osl_getExecutableFile(). */
- if (rtl_ustr_indexOfChar (rtl_uString_getStr(ppArgs[0]), sal_Unicode('/')) == -1)
- {
- const rtl::OUString PATH (RTL_CONSTASCII_USTRINGPARAM("PATH"));
-
- rtl_uString * pSearchPath = 0;
- osl_getEnvironment (PATH.pData, &pSearchPath);
- if (pSearchPath)
- {
- rtl_uString * pSearchResult = 0;
- osl_searchPath (ppArgs[0], pSearchPath, &pSearchResult);
- if (pSearchResult)
- {
- rtl_uString_assign (&(ppArgs[0]), pSearchResult);
- rtl_uString_release (pSearchResult);
- }
- rtl_uString_release (pSearchPath);
- }
- }
-
- rtl_uString * pArg0 = 0;
- if (realpath_u (ppArgs[0], &pArg0))
- {
- osl_getFileURLFromSystemPath (pArg0, &(ppArgs[0]));
- rtl_uString_release (pArg0);
- }
- }
- g_command_args.m_nCount = argc;
- g_command_args.m_ppArgs = ppArgs;
- }
- }
- pthread_mutex_unlock (&(g_command_args.m_mutex));
-}
-
-/***************************************
- osl_getEnvironment().
- **************************************/
-oslProcessError SAL_CALL osl_getEnvironment(rtl_uString* pustrEnvVar, rtl_uString** ppustrValue)
-{
- oslProcessError result = osl_Process_E_NotFound;
- rtl_TextEncoding encoding = osl_getThreadTextEncoding();
- rtl_String* pstr_env_var = 0;
-
- OSL_PRECOND(pustrEnvVar, "osl_getEnvironment(): Invalid parameter");
- OSL_PRECOND(ppustrValue, "osl_getEnvironment(): Invalid parameter");
-
- rtl_uString2String(
- &pstr_env_var,
- rtl_uString_getStr(pustrEnvVar), rtl_uString_getLength(pustrEnvVar), encoding,
- OUSTRING_TO_OSTRING_CVTFLAGS);
- if (pstr_env_var != 0)
- {
- const char* p_env_var = getenv (rtl_string_getStr (pstr_env_var));
- if (p_env_var != 0)
- {
- rtl_string2UString(
- ppustrValue,
- p_env_var, strlen(p_env_var), encoding,
- OSTRING_TO_OUSTRING_CVTFLAGS);
- OSL_ASSERT(*ppustrValue != NULL);
-
- result = osl_Process_E_None;
- }
- rtl_string_release(pstr_env_var);
- }
-
- return (result);
-}
-
-/***************************************
- osl_setEnvironment().
- **************************************/
-oslProcessError SAL_CALL osl_setEnvironment(rtl_uString* pustrEnvVar, rtl_uString* pustrValue)
-{
- oslProcessError result = osl_Process_E_Unknown;
- rtl_TextEncoding encoding = osl_getThreadTextEncoding();
- rtl_String* pstr_env_var = 0;
- rtl_String* pstr_val = 0;
-
- OSL_PRECOND(pustrEnvVar, "osl_setEnvironment(): Invalid parameter");
- OSL_PRECOND(pustrValue, "osl_setEnvironment(): Invalid parameter");
-
- rtl_uString2String(
- &pstr_env_var,
- rtl_uString_getStr(pustrEnvVar), rtl_uString_getLength(pustrEnvVar), encoding,
- OUSTRING_TO_OSTRING_CVTFLAGS);
-
- rtl_uString2String(
- &pstr_val,
- rtl_uString_getStr(pustrValue), rtl_uString_getLength(pustrValue), encoding,
- OUSTRING_TO_OSTRING_CVTFLAGS);
-
- if (pstr_env_var != 0 && pstr_val != 0)
- {
-#if defined (SOLARIS)
- rtl_String * pBuffer = NULL;
-
- sal_Int32 nCapacity = rtl_stringbuffer_newFromStringBuffer( &pBuffer,
- rtl_string_getLength(pstr_env_var) + rtl_string_getLength(pstr_val) + 1,
- pstr_env_var );
- rtl_stringbuffer_insert( &pBuffer, &nCapacity, pBuffer->length, "=", 1);
- rtl_stringbuffer_insert( &pBuffer, &nCapacity, pBuffer->length,
- rtl_string_getStr(pstr_val), rtl_string_getLength(pstr_val) );
-
- rtl_string_acquire(pBuffer); // argument to putenv must leak on success
-
- if (putenv(rtl_string_getStr(pBuffer)) == 0)
- result = osl_Process_E_None;
- else
- rtl_string_release(pBuffer);
-#else
- if (setenv(rtl_string_getStr(pstr_env_var), rtl_string_getStr(pstr_val), 1) == 0)
- result = osl_Process_E_None;
-#endif
- }
-
- if (pstr_val)
- rtl_string_release(pstr_val);
-
- if (pstr_env_var != 0)
- rtl_string_release(pstr_env_var);
-
- return (result);
-}
-
-/***************************************
- osl_clearEnvironment().
- **************************************/
-oslProcessError SAL_CALL osl_clearEnvironment(rtl_uString* pustrEnvVar)
-{
- oslProcessError result = osl_Process_E_Unknown;
- rtl_TextEncoding encoding = osl_getThreadTextEncoding();
- rtl_String* pstr_env_var = 0;
-
- OSL_PRECOND(pustrEnvVar, "osl_setEnvironment(): Invalid parameter");
-
- rtl_uString2String(
- &pstr_env_var,
- rtl_uString_getStr(pustrEnvVar), rtl_uString_getLength(pustrEnvVar), encoding,
- OUSTRING_TO_OSTRING_CVTFLAGS);
-
- if (pstr_env_var)
- {
-#if defined (SOLARIS)
- rtl_String * pBuffer = NULL;
-
- sal_Int32 nCapacity = rtl_stringbuffer_newFromStringBuffer( &pBuffer,
- rtl_string_getLength(pstr_env_var) + 1, pstr_env_var );
- rtl_stringbuffer_insert( &pBuffer, &nCapacity, pBuffer->length, "=", 1);
-
- rtl_string_acquire(pBuffer); // argument to putenv must leak on success
-
- if (putenv(rtl_string_getStr(pBuffer)) == 0)
- result = osl_Process_E_None;
- else
- rtl_string_release(pBuffer);
-#elif (defined(MACOSX) || defined(NETBSD) || defined(FREEBSD))
- //MacOSX baseline is 10.4, which has an old-school void return
- //for unsetenv.
- //See: http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/10.4/man3/unsetenv.3.html?useVersion=10.4
- unsetenv(rtl_string_getStr(pstr_env_var));
- result = osl_Process_E_None;
-#else
- if (unsetenv(rtl_string_getStr(pstr_env_var)) == 0)
- result = osl_Process_E_None;
-#endif
- rtl_string_release(pstr_env_var);
- }
-
- return (result);
-}
-
-
-/***************************************
- osl_getProcessWorkingDir().
- **************************************/
-oslProcessError SAL_CALL osl_getProcessWorkingDir(rtl_uString **ppustrWorkingDir)
-{
- oslProcessError result = osl_Process_E_Unknown;
- char buffer[PATH_MAX];
-
- OSL_PRECOND(ppustrWorkingDir, "osl_getProcessWorkingDir(): Invalid parameter");
-
- if (getcwd (buffer, sizeof(buffer)) != 0)
- {
- rtl_uString* ustrTmp = 0;
-
- rtl_string2UString(
- &ustrTmp,
- buffer, strlen(buffer), osl_getThreadTextEncoding(),
- OSTRING_TO_OUSTRING_CVTFLAGS);
- if (ustrTmp != 0)
- {
- if (osl_getFileURLFromSystemPath (ustrTmp, ppustrWorkingDir) == osl_File_E_None)
- result = osl_Process_E_None;
- rtl_uString_release (ustrTmp);
- }
- }
-
- return (result);
-}
-
-/******************************************************************************
- *
- * new functions to set/return the current process locale
- *
- *****************************************************************************/
-
-struct ProcessLocale_Impl
-{
- pthread_mutex_t m_mutex;
- rtl_Locale * m_pLocale;
-};
-
-static struct ProcessLocale_Impl g_process_locale =
-{
- PTHREAD_MUTEX_INITIALIZER,
- 0
-};
-
-extern "C" void _imp_getProcessLocale( rtl_Locale ** );
-extern "C" int _imp_setProcessLocale( rtl_Locale * );
-
-/**********************************************
- osl_getProcessLocale().
- *********************************************/
-oslProcessError SAL_CALL osl_getProcessLocale( rtl_Locale ** ppLocale )
-{
- oslProcessError result = osl_Process_E_Unknown;
- OSL_PRECOND(ppLocale, "osl_getProcessLocale(): Invalid parameter.");
- if (ppLocale)
- {
- pthread_mutex_lock(&(g_process_locale.m_mutex));
-
- if (g_process_locale.m_pLocale == 0)
- _imp_getProcessLocale (&(g_process_locale.m_pLocale));
- *ppLocale = g_process_locale.m_pLocale;
- result = osl_Process_E_None;
-
- pthread_mutex_unlock (&(g_process_locale.m_mutex));
- }
- return (result);
-}
-
-/**********************************************
- osl_setProcessLocale().
- *********************************************/
-oslProcessError SAL_CALL osl_setProcessLocale( rtl_Locale * pLocale )
-{
- oslProcessError result = osl_Process_E_Unknown;
-
- OSL_PRECOND(pLocale, "osl_setProcessLocale(): Invalid parameter.");
-
- pthread_mutex_lock(&(g_process_locale.m_mutex));
- if (_imp_setProcessLocale (pLocale) == 0)
- {
- g_process_locale.m_pLocale = pLocale;
- result = osl_Process_E_None;
- }
- pthread_mutex_unlock (&(g_process_locale.m_mutex));
-
- return (result);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/procimpl.h b/sal/osl/unx/procimpl.h
deleted file mode 100644
index 3b30116d1..000000000
--- a/sal/osl/unx/procimpl.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_PROCIMPL_H_
-#define _OSL_PROCIMPL_H_
-
-#include <osl/process.h>
-#include <osl/conditn.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct _oslProcessImpl {
- pid_t m_pid;
- oslCondition m_terminated;
- int m_status;
- struct _oslProcessImpl* m_pnext;
-} oslProcessImpl;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/profile.c b/sal/osl/unx/profile.c
deleted file mode 100644
index 4a245c308..000000000
--- a/sal/osl/unx/profile.c
+++ /dev/null
@@ -1,2220 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#include "system.h"
-#include "readwrite_helper.h"
-
-#include <osl/diagnose.h>
-#include <osl/profile.h>
-#include <osl/process.h>
-#include <osl/thread.h>
-#include <rtl/alloc.h>
-#include <osl/util.h>
-
-#define LINES_INI 32
-#define LINES_ADD 10
-#define SECTIONS_INI 5
-#define SECTIONS_ADD 3
-#define ENTRIES_INI 5
-#define ENTRIES_ADD 3
-
-
-#define STR_INI_EXTENSION "rc"
-#define STR_INI_METAHOME "?~"
-#define STR_INI_METASYS "?$"
-#define STR_INI_METACFG "?^"
-#define STR_INI_METAINS "?#"
-
-#define STR_INI_BOOLYES "yes"
-#define STR_INI_BOOLON "on"
-#define STR_INI_BOOLONE "1"
-#define STR_INI_BOOLNO "no"
-#define STR_INI_BOOLOFF "off"
-#define STR_INI_BOOLZERO "0"
-
-#define FLG_USER 0x00FF
-#define FLG_AUTOOPEN 0x0100
-#define FLG_MODIFIED 0x0200
-
-#define SVERSION_LOCATION STR_INI_METACFG
-#define SVERSION_FALLBACK STR_INI_METASYS
-#define SVERSION_NAME "sversion"
-#define SVERSION_SECTION "Versions"
-#define SVERSION_SOFFICE "StarOffice"
-#define SVERSION_PROFILE "sofficerc"
-#define SVERSION_OPTION "userid:"
-#define SVERSION_DIRS { "bin", "program" }
-#define SVERSION_USER "user"
-
-#define DEFAULT_PMODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)
-
-#define _BUILD_STR_(n) # n
-#define BUILD_STR(n) _BUILD_STR_(n)
-
-
-/*#define DEBUG_OSL_PROFILE*/
-/*#define TRACE_OSL_PROFILE*/
-
-/*****************************************************************************/
-/* Data Type Definition */
-/*****************************************************************************/
-
-typedef time_t osl_TStamp;
-
-typedef enum _osl_TLockMode
-{
- un_lock, read_lock, write_lock
-} osl_TLockMode;
-
-typedef struct _osl_TFile
-{
- int m_Handle;
- sal_Char* m_pReadPtr;
- sal_Char m_ReadBuf[512];
- sal_Char* m_pWriteBuf;
- sal_uInt32 m_nWriteBufLen;
- sal_uInt32 m_nWriteBufFree;
-} osl_TFile;
-
-typedef struct _osl_TProfileEntry
-{
- sal_uInt32 m_Line;
- sal_uInt32 m_Offset;
- sal_uInt32 m_Len;
-} osl_TProfileEntry;
-
-typedef struct _osl_TProfileSection
-{
- sal_uInt32 m_Line;
- sal_uInt32 m_Offset;
- sal_uInt32 m_Len;
- sal_uInt32 m_NoEntries;
- sal_uInt32 m_MaxEntries;
- osl_TProfileEntry* m_Entries;
-} osl_TProfileSection;
-
-
-/*
- Profile-data structure hidden behind oslProfile:
-*/
-typedef struct _osl_TProfileImpl
-{
- sal_uInt32 m_Flags;
- osl_TFile* m_pFile;
- osl_TStamp m_Stamp;
- sal_Char m_FileName[PATH_MAX + 1];
- sal_uInt32 m_NoLines;
- sal_uInt32 m_MaxLines;
- sal_uInt32 m_NoSections;
- sal_uInt32 m_MaxSections;
- sal_Char** m_Lines;
- osl_TProfileSection* m_Sections;
- pthread_mutex_t m_AccessLock;
- sal_Bool m_bIsValid;
-} osl_TProfileImpl;
-
-
-/*****************************************************************************/
-/* Static Module Function Declarations */
-/*****************************************************************************/
-
-static osl_TFile* openFileImpl(const sal_Char* pszFilename, oslProfileOption ProfileFlags);
-static osl_TStamp closeFileImpl(osl_TFile* pFile, oslProfileOption Flags);
-static sal_Bool OslProfile_lockFile(const osl_TFile* pFile, osl_TLockMode eMode);
-static sal_Bool OslProfile_rewindFile(osl_TFile* pFile, sal_Bool bTruncate);
-static osl_TStamp OslProfile_getFileStamp(osl_TFile* pFile);
-
-static sal_Char* OslProfile_getLine(osl_TFile* pFile);
-static sal_Bool OslProfile_putLine(osl_TFile* pFile, const sal_Char *pszLine);
-static sal_Char* stripBlanks(sal_Char* String, sal_uInt32* pLen);
-static sal_Char* addLine(osl_TProfileImpl* pProfile, const sal_Char* Line);
-static sal_Char* insertLine(osl_TProfileImpl* pProfile, const sal_Char* Line, sal_uInt32 LineNo);
-static void removeLine(osl_TProfileImpl* pProfile, sal_uInt32 LineNo);
-static void setEntry(osl_TProfileImpl* pProfile, osl_TProfileSection* pSection,
- sal_uInt32 NoEntry, sal_uInt32 Line,
- sal_Char* Entry, sal_uInt32 Len);
-static sal_Bool addEntry(osl_TProfileImpl* pProfile, osl_TProfileSection *pSection,
- int Line, sal_Char* Entry, sal_uInt32 Len);
-static void removeEntry(osl_TProfileSection *pSection, sal_uInt32 NoEntry);
-static sal_Bool addSection(osl_TProfileImpl* pProfile, int Line, const sal_Char* Section, sal_uInt32 Len);
-static void removeSection(osl_TProfileImpl* pProfile, osl_TProfileSection *pSection);
-static osl_TProfileSection* findEntry(osl_TProfileImpl* pProfile, const sal_Char* Section,
- const sal_Char* Entry, sal_uInt32 *pNoEntry);
-static sal_Bool loadProfile(osl_TFile* pFile, osl_TProfileImpl* pProfile);
-static sal_Bool storeProfile(osl_TProfileImpl* pProfile, sal_Bool bCleanup);
-static osl_TProfileImpl* acquireProfile(oslProfile Profile, sal_Bool bWriteable);
-static sal_Bool releaseProfile(osl_TProfileImpl* pProfile);
-
-static sal_Bool writeProfileImpl (osl_TFile* pFile);
-static osl_TFile* osl_openTmpProfileImpl(osl_TProfileImpl*);
-static sal_Bool osl_ProfileSwapProfileNames(osl_TProfileImpl*);
-static void osl_ProfileGenerateExtension(sal_Char* pszFileName, sal_Char* pszExtension, sal_Char* pszTmpName);
-static oslProfile SAL_CALL osl_psz_openProfile(const sal_Char *pszProfileName, oslProfileOption Flags);
-
-/* implemented in file.c */
-extern oslFileError FileURLToPath( char *, size_t, rtl_uString* );
-
-/*****************************************************************************/
-/* Exported Module Functions */
-/*****************************************************************************/
-oslProfile SAL_CALL osl_openProfile(rtl_uString *ustrProfileName, oslProfileOption Options)
-{
- char profilePath[PATH_MAX] = "";
-
- if ( ustrProfileName != 0 && ustrProfileName->buffer[0] != 0 )
- FileURLToPath( profilePath, PATH_MAX, ustrProfileName );
-
- return osl_psz_openProfile( profilePath,Options );
-}
-
-
-static oslProfile SAL_CALL osl_psz_openProfile(const sal_Char *pszProfileName, oslProfileOption Flags)
-{
- osl_TFile* pFile;
- osl_TProfileImpl* pProfile;
- sal_Bool bRet = sal_False;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_openProfile\n");
-#endif
-
-#ifdef DEBUG_OSL_PROFILE
- Flags=osl_Profile_FLUSHWRITE;
-
- OSL_TRACE("opening '%s'\n",pszProfileName);
- if ( Flags == osl_Profile_DEFAULT )
- {
- OSL_TRACE("with osl_Profile_DEFAULT\n");
- }
- if ( Flags & osl_Profile_SYSTEM )
- {
- OSL_TRACE("with osl_Profile_SYSTEM\n");
- }
- if ( Flags & osl_Profile_READLOCK )
- {
- OSL_TRACE("with osl_Profile_READLOCK\n");
- }
- if ( Flags & osl_Profile_WRITELOCK )
- {
- OSL_TRACE("with osl_Profile_WRITELOCK\n");
- }
- if ( Flags & osl_Profile_FLUSHWRITE )
- {
- OSL_TRACE("with osl_Profile_FLUSHWRITE\n");
- }
-#endif
-
-
- if ( ( pFile = openFileImpl(pszProfileName, Flags ) ) == NULL )
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_openProfile [not opened]\n");
-#endif
- return (NULL);
- }
-
-
- pProfile = (osl_TProfileImpl*)calloc(1, sizeof(osl_TProfileImpl));
-
- if ( pProfile == 0 )
- {
- closeFileImpl(pFile, Flags);
- return 0;
- }
-
- pProfile->m_Flags = Flags & FLG_USER;
-
- if ( Flags & ( osl_Profile_READLOCK | osl_Profile_WRITELOCK | osl_Profile_FLUSHWRITE ) )
- {
- pProfile->m_pFile = pFile;
- }
-
- pthread_mutex_init(&(pProfile->m_AccessLock),PTHREAD_MUTEXATTR_DEFAULT);
- pProfile->m_bIsValid=sal_True;
-
- pProfile->m_Stamp = OslProfile_getFileStamp(pFile);
- bRet=loadProfile(pFile, pProfile);
- bRet &= realpath(pszProfileName, pProfile->m_FileName) != NULL;
- OSL_ASSERT(bRet);
-
- if (pProfile->m_pFile == NULL)
- closeFileImpl(pFile,pProfile->m_Flags);
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_openProfile [ok]\n");
-#endif
- return (pProfile);
-}
-
-sal_Bool SAL_CALL osl_closeProfile(oslProfile Profile)
-{
- osl_TProfileImpl* pProfile = (osl_TProfileImpl*)Profile;
- osl_TProfileImpl* pTmpProfile;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_closeProfile\n");
-#endif
-
- if ( Profile == 0 )
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_closeProfile [profile==0]\n");
-#endif
- return sal_False;
- }
-
- pthread_mutex_lock(&(pProfile->m_AccessLock));
-
- if ( pProfile->m_bIsValid == sal_False )
- {
- OSL_ASSERT(pProfile->m_bIsValid);
- pthread_mutex_unlock(&(pProfile->m_AccessLock));
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_closeProfile [not valid]\n");
-#endif
- return sal_False;
- }
-
- pProfile->m_bIsValid=sal_False;
-
- if ( ! ( pProfile->m_Flags & osl_Profile_READLOCK ) && ( pProfile->m_Flags & FLG_MODIFIED ) )
- {
- pTmpProfile = acquireProfile(Profile,sal_True);
-
- if ( pTmpProfile != 0 )
- {
- sal_Bool bRet = storeProfile(pTmpProfile, sal_True);
- OSL_ASSERT(bRet);
- (void)bRet;
- }
- }
- else
- {
- pTmpProfile = acquireProfile(Profile,sal_False);
- }
-
-
- if ( pTmpProfile == 0 )
- {
- pthread_mutex_unlock(&(pProfile->m_AccessLock));
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_closeProfile [pProfile==0]\n");
-#endif
- return sal_False;
- }
-
- pProfile = pTmpProfile;
-
- if (pProfile->m_pFile != NULL)
- closeFileImpl(pProfile->m_pFile,pProfile->m_Flags);
-
- pProfile->m_pFile = NULL;
- pProfile->m_FileName[0] = '\0';
-
- /* release whole profile data types memory */
- if ( pProfile->m_NoLines > 0)
- {
- unsigned int idx=0;
- if ( pProfile->m_Lines != 0 )
- {
- for ( idx = 0 ; idx < pProfile->m_NoLines ; ++idx)
- {
- if ( pProfile->m_Lines[idx] != 0 )
- {
- free(pProfile->m_Lines[idx]);
- pProfile->m_Lines[idx]=0;
- }
- }
- free(pProfile->m_Lines);
- pProfile->m_Lines=0;
- }
- if ( pProfile->m_Sections != 0 )
- {
- /*osl_TProfileSection* pSections=pProfile->m_Sections;*/
- for ( idx = 0 ; idx < pProfile->m_NoSections ; ++idx )
- {
- if ( pProfile->m_Sections[idx].m_Entries != 0 )
- {
- free(pProfile->m_Sections[idx].m_Entries);
- pProfile->m_Sections[idx].m_Entries=0;
- }
- }
- free(pProfile->m_Sections);
- pProfile->m_Sections=0;
- }
- }
-
- pthread_mutex_unlock(&(pProfile->m_AccessLock));
-
- pthread_mutex_destroy(&(pProfile->m_AccessLock));
-
- free(pProfile);
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_closeProfile [ok]\n");
-#endif
- return (sal_True);
-}
-
-
-sal_Bool SAL_CALL osl_flushProfile(oslProfile Profile)
-{
- osl_TProfileImpl* pProfile = (osl_TProfileImpl*) Profile;
- osl_TFile* pFile;
- sal_Bool bRet = sal_False;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_flushProfile()\n");
-#endif
-
- if ( pProfile == 0 )
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_flushProfile() [pProfile == 0]\n");
-#endif
- return sal_False;
- }
-
- pthread_mutex_lock(&(pProfile->m_AccessLock));
-
- if ( pProfile->m_bIsValid == sal_False )
- {
- OSL_ASSERT(pProfile->m_bIsValid);
- pthread_mutex_unlock(&(pProfile->m_AccessLock));
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_flushProfile [not valid]\n");
-#endif
- return sal_False;
- }
-
- pFile = pProfile->m_pFile;
- if ( !( pFile != 0 && pFile->m_Handle >= 0 ) )
- {
- pthread_mutex_unlock(&(pProfile->m_AccessLock));
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_flushProfile() [invalid file]\n");
-#endif
- return sal_False;
- }
-
- if ( pProfile->m_Flags & FLG_MODIFIED )
- {
-#ifdef DEBUG_OSL_PROFILE
- OSL_TRACE("swapping to storeprofile\n");
-#endif
- bRet = storeProfile(pProfile,sal_False);
- OSL_ASSERT(bRet);
- }
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_flushProfile() [ok]\n");
-#endif
- pthread_mutex_unlock(&(pProfile->m_AccessLock));
- return bRet;
-}
-
-static sal_Bool writeProfileImpl(osl_TFile* pFile)
-{
-#if OSL_DEBUG_LEVEL > 1
- unsigned int nLen=0;
-#endif
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_writeProfileImpl()\n");
-#endif
-
- if ( !( pFile != 0 && pFile->m_Handle >= 0 ) || ( pFile->m_pWriteBuf == 0 ) )
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_writeProfileImpl() [invalid args]\n");
-#endif
- return sal_False;
- }
-
-#if OSL_DEBUG_LEVEL > 1
- nLen=strlen(pFile->m_pWriteBuf);
- OSL_ASSERT(nLen == (pFile->m_nWriteBufLen - pFile->m_nWriteBufFree));
-#endif
-
- if ( !safeWrite(pFile->m_Handle, pFile->m_pWriteBuf, pFile->m_nWriteBufLen - pFile->m_nWriteBufFree) )
- {
- OSL_TRACE("write failed '%s'\n",strerror(errno));
- return (sal_False);
- }
-
- free(pFile->m_pWriteBuf);
- pFile->m_pWriteBuf=0;
- pFile->m_nWriteBufLen=0;
- pFile->m_nWriteBufFree=0;
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_writeProfileImpl() [ok]\n");
-#endif
- return sal_True;
-}
-
-
-sal_Bool SAL_CALL osl_readProfileString(oslProfile Profile,
- const sal_Char* pszSection, const sal_Char* pszEntry,
- sal_Char* pszString, sal_uInt32 MaxLen,
- const sal_Char* pszDefault)
-{
- sal_uInt32 NoEntry;
- sal_Char* pStr=0;
- osl_TProfileSection* pSec;
- osl_TProfileImpl* pProfile=0;
- osl_TProfileImpl* pTmpProfile=0;
- sal_Bool bRet = sal_False;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_readProfileString\n");
-#endif
-
- pTmpProfile = (osl_TProfileImpl*) Profile;
-
- if ( pTmpProfile == 0 )
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_readProfileString [pTmpProfile==0]\n");
-#endif
- return sal_False;
- }
-
- pthread_mutex_lock(&(pTmpProfile->m_AccessLock));
-
- if ( pTmpProfile->m_bIsValid == sal_False )
- {
- pthread_mutex_unlock(&(pTmpProfile->m_AccessLock));
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_readProfileString [not valid]\n");
-#endif
- return sal_False;
- }
-
- pProfile = acquireProfile(Profile, sal_False);
-
- if ( pProfile == NULL )
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_readProfileString [pProfile==0]\n");
-#endif
- return (sal_False);
- }
-
- if (! (pProfile->m_Flags & osl_Profile_SYSTEM))
- {
- if (((pSec = findEntry(pProfile, pszSection, pszEntry, &NoEntry)) != NULL) &&
- (NoEntry < pSec->m_NoEntries) &&
- ((pStr = strchr(pProfile->m_Lines[pSec->m_Entries[NoEntry].m_Line],
- '=')) != NULL))
- {
- pStr++;
- }
- else
- {
- pStr=(sal_Char*)pszDefault;
- }
-
- if ( pStr != 0 )
- {
- pStr = stripBlanks(pStr, NULL);
- MaxLen = (MaxLen - 1 < strlen(pStr)) ? (MaxLen - 1) : strlen(pStr);
- pStr = stripBlanks(pStr, &MaxLen);
- strncpy(pszString, pStr, MaxLen);
- pszString[MaxLen] = '\0';
- }
- }
- else
- { /* not implemented */ }
-
-
- bRet=releaseProfile(pProfile);
- OSL_ASSERT(bRet);
- (void)bRet;
-
- if ( pStr == 0 )
- {
- pthread_mutex_unlock(&(pTmpProfile->m_AccessLock));
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_readProfileString [pStr==0]\n");
-#endif
- return sal_False;
- }
-
- pthread_mutex_unlock(&(pTmpProfile->m_AccessLock));
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_readProfileString [ok]\n");
-#endif
-
- return (sal_True);
-}
-
-
-sal_Bool SAL_CALL osl_readProfileBool(oslProfile Profile,
- const sal_Char* pszSection, const sal_Char* pszEntry,
- sal_Bool Default)
-{
- sal_Char Line[32];
- Line[0] = '\0';
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_readProfileBool\n");
-#endif
-
- if (osl_readProfileString(Profile, pszSection, pszEntry, Line, sizeof(Line), ""))
- {
- if ((strcasecmp(Line, STR_INI_BOOLYES) == 0) ||
- (strcasecmp(Line, STR_INI_BOOLON) == 0) ||
- (strcasecmp(Line, STR_INI_BOOLONE) == 0))
- Default = sal_True;
- else
- if ((strcasecmp(Line, STR_INI_BOOLNO) == 0) ||
- (strcasecmp(Line, STR_INI_BOOLOFF) == 0) ||
- (strcasecmp(Line, STR_INI_BOOLZERO) == 0))
- Default = sal_False;
- }
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_readProfileBool [ok]\n");
-#endif
-
- return (Default);
-}
-
-
-sal_uInt32 SAL_CALL osl_readProfileIdent(oslProfile Profile,
- const sal_Char* pszSection, const sal_Char* pszEntry,
- sal_uInt32 FirstId, const sal_Char* Strings[],
- sal_uInt32 Default)
-{
- sal_uInt32 i;
- sal_Char Line[256];
- Line[0] = '\0';
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_readProfileIdent\n");
-#endif
-
- if (osl_readProfileString(Profile, pszSection, pszEntry, Line, sizeof(Line), ""))
- {
- i = 0;
- while (Strings[i] != NULL)
- {
- if (strcasecmp(Line, Strings[i]) == 0)
- {
- Default = i + FirstId;
- break;
- }
- i++;
- }
- }
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_readProfileIdent [ok]\n");
-#endif
- return (Default);
-}
-
-sal_Bool SAL_CALL osl_writeProfileString(oslProfile Profile,
- const sal_Char* pszSection, const sal_Char* pszEntry,
- const sal_Char* pszString)
-{
- sal_uInt32 i;
- sal_Bool bRet = sal_False;
- sal_uInt32 NoEntry;
- sal_Char* pStr;
- sal_Char* Line = 0;
- osl_TProfileSection* pSec;
- osl_TProfileImpl* pProfile = 0;
- osl_TProfileImpl* pTmpProfile = 0;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_writeProfileString\n");
-#endif
-
- pTmpProfile = (osl_TProfileImpl*) Profile;
-
- if ( pTmpProfile == 0 )
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_writeProfileString [pTmpProfile==0]\n");
-#endif
- return sal_False;
- }
-
- pthread_mutex_lock(&(pTmpProfile->m_AccessLock));
-
- if ( pTmpProfile->m_bIsValid == sal_False )
- {
- OSL_ASSERT(pTmpProfile->m_bIsValid);
- pthread_mutex_unlock(&(pTmpProfile->m_AccessLock));
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_writeProfileString [not valid]\n");
-#endif
- return sal_False;
- }
-
- pProfile=acquireProfile(Profile, sal_True);
-
- if (pProfile == NULL)
- {
- pthread_mutex_unlock(&(pTmpProfile->m_AccessLock));
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_writeProfileString [pProfile==0]\n");
-#endif
- return (sal_False);
- }
-
- Line = (sal_Char*) malloc(strlen(pszEntry)+strlen(pszString)+48);
-
- if (! (pProfile->m_Flags & osl_Profile_SYSTEM))
- {
- if ((pSec = findEntry(pProfile, pszSection, pszEntry, &NoEntry)) == NULL)
- {
- Line[0] = '\0';
- addLine(pProfile, Line);
-
- Line[0] = '[';
- strcpy(&Line[1], pszSection);
- Line[1 + strlen(pszSection)] = ']';
- Line[2 + strlen(pszSection)] = '\0';
-
- if (((pStr = addLine(pProfile, Line)) == NULL) ||
- (! addSection(pProfile, pProfile->m_NoLines - 1, &pStr[1], strlen(pszSection))))
- {
- bRet=releaseProfile(pProfile);
- OSL_ASSERT(bRet);
-
- pthread_mutex_unlock(&(pTmpProfile->m_AccessLock));
-
- free(Line);
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_writeProfileString [not added]\n");
-#endif
- return (sal_False);
- }
-
- pSec = &pProfile->m_Sections[pProfile->m_NoSections - 1];
- NoEntry = pSec->m_NoEntries;
- }
-
- Line[0] = '\0';
- strcpy(&Line[0], pszEntry);
- Line[0 + strlen(pszEntry)] = '=';
- strcpy(&Line[1 + strlen(pszEntry)], pszString);
-
- if (NoEntry >= pSec->m_NoEntries)
- {
- if (pSec->m_NoEntries > 0)
- i = pSec->m_Entries[pSec->m_NoEntries - 1].m_Line + 1;
- else
- i = pSec->m_Line + 1;
-
- if (((pStr = insertLine(pProfile, Line, i)) == NULL) ||
- (! addEntry(pProfile, pSec, i, pStr, strlen(pszEntry))))
- {
- bRet=releaseProfile(pProfile);
- OSL_ASSERT(bRet);
-
- pthread_mutex_unlock(&(pTmpProfile->m_AccessLock));
- free(Line);
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_writeProfileString [not inserted]\n");
-#endif
- return (sal_False);
- }
-
- pProfile->m_Flags |= FLG_MODIFIED;
- }
- else
- {
- i = pSec->m_Entries[NoEntry].m_Line;
- free(pProfile->m_Lines[i]);
- pProfile->m_Lines[i] = strdup(Line);
- setEntry(pProfile, pSec, NoEntry, i, pProfile->m_Lines[i], strlen(pszEntry));
-
- pProfile->m_Flags |= FLG_MODIFIED;
- }
- }
- else {
- /* not implemented */
- }
-
- bRet = releaseProfile(pProfile);
- OSL_ASSERT(bRet);
-
- pthread_mutex_unlock(&(pTmpProfile->m_AccessLock));
- if ( Line!= 0 )
- {
- free(Line);
- }
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_writeProfileString [ok]\n");
-#endif
-
- return bRet;
-}
-
-
-sal_Bool SAL_CALL osl_writeProfileBool(oslProfile Profile,
- const sal_Char* pszSection, const sal_Char* pszEntry,
- sal_Bool Value)
-{
- sal_Bool bRet=sal_False;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_writeProfileBool\n");
-#endif
-
- if (Value)
- bRet=osl_writeProfileString(Profile, pszSection, pszEntry, STR_INI_BOOLONE);
- else
- bRet=osl_writeProfileString(Profile, pszSection, pszEntry, STR_INI_BOOLZERO);
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_writeProfileBool [ok]\n");
-#endif
-
- return bRet;
-}
-
-
-sal_Bool SAL_CALL osl_writeProfileIdent(oslProfile Profile,
- const sal_Char* pszSection, const sal_Char* pszEntry,
- sal_uInt32 FirstId, const sal_Char* Strings[],
- sal_uInt32 Value)
-{
- int i, n;
- sal_Bool bRet=sal_False;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_writeProfileIdent\n");
-#endif
-
- for (n = 0; Strings[n] != NULL; n++);
-
- if ((i = Value - FirstId) >= n)
- bRet=sal_False;
- else
- bRet = osl_writeProfileString(Profile, pszSection, pszEntry, Strings[i]);
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_writeProfileIdent\n");
-#endif
- return bRet;
-}
-
-
-sal_Bool SAL_CALL osl_removeProfileEntry(oslProfile Profile,
- const sal_Char *pszSection, const sal_Char *pszEntry)
-{
- sal_uInt32 NoEntry;
- osl_TProfileSection* pSec;
- osl_TProfileImpl* pProfile = 0;
- osl_TProfileImpl* pTmpProfile = 0;
- sal_Bool bRet = sal_False;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_removeProfileEntry\n");
-#endif
-
- pTmpProfile = (osl_TProfileImpl*) Profile;
-
- if ( pTmpProfile == 0 )
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_removeProfileEntry [pProfile==0]\n");
-#endif
- return sal_False;
- }
-
- pthread_mutex_lock(&(pTmpProfile->m_AccessLock));
-
- if ( pTmpProfile->m_bIsValid == sal_False )
- {
- OSL_ASSERT(pTmpProfile->m_bIsValid);
- pthread_mutex_unlock(&(pTmpProfile->m_AccessLock));
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_removeProfileEntry [not valid]\n");
-#endif
- return sal_False;
- }
-
-
- pProfile = acquireProfile(Profile, sal_True);
-
- if (pProfile == NULL)
- {
- pthread_mutex_unlock(&(pTmpProfile->m_AccessLock));
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_removeProfileEntry [pProfile==0]\n");
-#endif
- return (sal_False);
- }
-
-
- if (! (pProfile->m_Flags & osl_Profile_SYSTEM))
- {
- if (((pSec = findEntry(pProfile, pszSection, pszEntry, &NoEntry)) != NULL) &&
- (NoEntry < pSec->m_NoEntries))
- {
- removeLine(pProfile, pSec->m_Entries[NoEntry].m_Line);
- removeEntry(pSec, NoEntry);
- if (pSec->m_NoEntries == 0)
- {
- removeLine(pProfile, pSec->m_Line);
-
- /* remove any empty separation line */
- if ((pSec->m_Line > 0) && (pProfile->m_Lines[pSec->m_Line - 1][0] == '\0'))
- removeLine(pProfile, pSec->m_Line - 1);
-
- removeSection(pProfile, pSec);
- }
-
- pProfile->m_Flags |= FLG_MODIFIED;
- }
- }
- else
- { /* not implemented */ }
-
-
- bRet = releaseProfile(pProfile);
- OSL_ASSERT(bRet);
-
- pthread_mutex_unlock(&(pTmpProfile->m_AccessLock));
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_removeProfileEntry [ok]\n");
-#endif
- return bRet;
-}
-
-
-sal_uInt32 SAL_CALL osl_getProfileSectionEntries(oslProfile Profile, const sal_Char *pszSection,
- sal_Char* pszBuffer, sal_uInt32 MaxLen)
-{
- sal_uInt32 i, n = 0;
- sal_uInt32 NoEntry;
- osl_TProfileSection* pSec;
- osl_TProfileImpl* pProfile = 0;
- osl_TProfileImpl* pTmpProfile = 0;
- sal_Bool bRet = sal_False;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_getProfileSectionEntries\n");
-#endif
-
- pTmpProfile = (osl_TProfileImpl*) Profile;
-
- if ( pTmpProfile == 0 )
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_getProfileSectionEntries [pTmpProfile==0]\n");
-#endif
- return sal_False;
-
- }
-
- pthread_mutex_lock(&(pTmpProfile->m_AccessLock));
-
- if ( pTmpProfile->m_bIsValid == sal_False )
- {
- OSL_ASSERT(pTmpProfile->m_bIsValid);
-
- pthread_mutex_unlock(&(pTmpProfile->m_AccessLock));
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_getProfileSectionEntries [not valid]\n");
-#endif
-
- return sal_False;
- }
-
- pProfile = acquireProfile(Profile, sal_False);
-
- if (pProfile == NULL)
- {
- pthread_mutex_unlock(&(pTmpProfile->m_AccessLock));
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_getProfileSectionEntries [pProfile=0]\n");
-#endif
-
- return (0);
- }
-
-
- if (! (pProfile->m_Flags & osl_Profile_SYSTEM))
- {
- if ((pSec = findEntry(pProfile, pszSection, "", &NoEntry)) != NULL)
- {
- if (MaxLen != 0)
- {
- for (i = 0; i < pSec->m_NoEntries; i++)
- {
- if ((n + pSec->m_Entries[i].m_Len + 1) < MaxLen)
- {
- strncpy(&pszBuffer[n], &pProfile->m_Lines[pSec->m_Entries[i].m_Line]
- [pSec->m_Entries[i].m_Offset], pSec->m_Entries[i].m_Len);
- n += pSec->m_Entries[i].m_Len;
- pszBuffer[n++] = '\0';
- }
- else
- break;
-
- }
-
- pszBuffer[n++] = '\0';
- }
- else
- {
- for (i = 0; i < pSec->m_NoEntries; i++)
- n += pSec->m_Entries[i].m_Len + 1;
-
- n += 1;
- }
- }
- else
- n = 0;
- }
- else {
- /* not implemented */
- }
-
- bRet=releaseProfile(pProfile);
- OSL_ASSERT(bRet);
- (void)bRet;
-
- pthread_mutex_unlock(&(pTmpProfile->m_AccessLock));
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_getProfileSectionEntries [ok]\n");
-#endif
-
- return (n);
-}
-
-sal_uInt32 SAL_CALL osl_getProfileSections(oslProfile Profile, sal_Char* pszBuffer, sal_uInt32 MaxLen)
-{
- sal_uInt32 i, n = 0;
- osl_TProfileSection* pSec;
- osl_TProfileImpl* pProfile = 0;
- osl_TProfileImpl* pTmpProfile = 0;
- sal_Bool bRet = sal_False;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_getProfileSections\n");
-#endif
-
- pTmpProfile = (osl_TProfileImpl*) Profile;
-
- if ( pTmpProfile == 0 )
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_getProfileSections [pTmpProfile==0]\n");
-#endif
- return sal_False;
- }
-
- pthread_mutex_lock(&(pTmpProfile->m_AccessLock));
-
- if ( pTmpProfile->m_bIsValid == sal_False )
- {
- OSL_ASSERT(pTmpProfile->m_bIsValid);
- pthread_mutex_unlock(&(pTmpProfile->m_AccessLock));
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_getProfileSections [not valid]\n");
-#endif
- return sal_False;
- }
-
- pProfile = acquireProfile(Profile, sal_False);
-
- if (pProfile == NULL)
- {
- pthread_mutex_unlock(&(pTmpProfile->m_AccessLock));
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_getProfileSections [pProfile==0]\n");
-#endif
- return (0);
- }
-
- if (! (pProfile->m_Flags & osl_Profile_SYSTEM))
- {
- if (MaxLen != 0)
- {
- for (i = 0; i < pProfile->m_NoSections; i++)
- {
- pSec = &pProfile->m_Sections[i];
-
- if ((n + pSec->m_Len + 1) < MaxLen)
- {
- strncpy(&pszBuffer[n], &pProfile->m_Lines[pSec->m_Line][pSec->m_Offset],
- pSec->m_Len);
- n += pSec->m_Len;
- pszBuffer[n++] = '\0';
- }
- else
- break;
- }
-
- pszBuffer[n++] = '\0';
- }
- else
- {
- for (i = 0; i < pProfile->m_NoSections; i++)
- n += pProfile->m_Sections[i].m_Len + 1;
-
- n += 1;
- }
- }
- else
- { /* not implemented */ }
-
-
- bRet=releaseProfile(pProfile);
- OSL_ASSERT(bRet);
- (void)bRet;
-
- pthread_mutex_unlock(&(pTmpProfile->m_AccessLock));
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_getProfileSections [ok]\n");
-#endif
-
- return (n);
-}
-
-/*****************************************************************************/
-/* Static Module Functions */
-/*****************************************************************************/
-
-static osl_TStamp OslProfile_getFileStamp(osl_TFile* pFile)
-{
- struct stat status;
-
- if ( (pFile->m_Handle < 0) || (fstat(pFile->m_Handle, &status) < 0) )
- {
- return (0);
- }
-
-
- return (status.st_mtime);
-}
-
-static sal_Bool OslProfile_lockFile(const osl_TFile* pFile, osl_TLockMode eMode)
-{
- struct flock lock;
- /* boring hack, but initializers for static vars must be constant */
- static sal_Bool bIsInitialized = sal_False;
- static sal_Bool bLockingDisabled;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In OslProfile_lockFile\n");
-#endif
-
- if ( !bIsInitialized )
- {
- sal_Char* pEnvValue;
- pEnvValue = getenv( "STAR_PROFILE_LOCKING_DISABLED" );
-
- if ( pEnvValue == 0 )
- {
- bLockingDisabled = sal_False;
-
- }
- else
- {
- bLockingDisabled = sal_True;
- }
-
- bIsInitialized = sal_True;
- }
-
- if (pFile->m_Handle < 0)
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out OslProfile_lockFile [invalid file handle]\n");
-#endif
- return (sal_False);
- }
-
-
- if ( bLockingDisabled )
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out OslProfile_lockFile [locking disabled]\n");
-#endif
- return (sal_True);
- }
-
-
- lock.l_start = 0;
- lock.l_whence = SEEK_SET;
- lock.l_len = 0;
-
- switch (eMode)
- {
- case un_lock:
- lock.l_type = F_UNLCK;
- break;
-
- case read_lock:
- lock.l_type = F_RDLCK;
- break;
-
- case write_lock:
- lock.l_type = F_WRLCK;
- break;
- }
-
-#ifndef MACOSX // not MAC OSX
- if ( fcntl(pFile->m_Handle, F_SETLKW, &lock) == -1 )
-#else
- /* Mac OSX will return ENOTSUP for webdav drives so we should ignore it */
- if ( fcntl(pFile->m_Handle, F_SETLKW, &lock) == -1 && errno != ENOTSUP )
-#endif /* MACOSX */
- {
- OSL_TRACE("fcntl returned -1 (%s)\n",strerror(errno));
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out OslProfile_lockFile [fcntl F_SETLKW]\n");
-#endif
- return sal_False;
- }
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out OslProfile_lockFile [ok]\n");
-#endif
- return sal_True;
-}
-
-static osl_TFile* openFileImpl(const sal_Char* pszFilename, oslProfileOption ProfileFlags )
-{
- int Flags;
- osl_TFile* pFile = (osl_TFile*) calloc(1, sizeof(osl_TFile));
- sal_Bool bWriteable = sal_False;
-
- if ( ProfileFlags & ( osl_Profile_WRITELOCK | osl_Profile_FLUSHWRITE ) )
- {
-#ifdef DEBUG_OSL_PROFILE
- OSL_TRACE("setting bWriteable to TRUE\n");
-#endif
- bWriteable=sal_True;
- }
-
- if (! bWriteable)
- {
-#ifdef DEBUG_OSL_PROFILE
- OSL_TRACE("opening '%s' read only\n",pszFilename);
-#endif
-
- pFile->m_Handle = open(pszFilename, O_RDONLY);
- /* mfe: argghh!!! do not check if the file could be openend */
- /* default mode expects it that way!!! */
- }
- else
- {
-#ifdef DEBUG_OSL_PROFILE
- OSL_TRACE("opening '%s' read/write\n",pszFilename);
-#endif
- if (((pFile->m_Handle = open(pszFilename, O_RDWR | O_CREAT | O_EXCL, DEFAULT_PMODE)) < 0) &&
- ((pFile->m_Handle = open(pszFilename, O_RDWR)) < 0))
- {
- free(pFile);
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out openFileImpl [open read/write]\n");
-#endif
- return (NULL);
- }
- }
-
- /* set close-on-exec flag */
- if ((Flags = fcntl(pFile->m_Handle, F_GETFD, 0)) != -1)
- {
- Flags |= FD_CLOEXEC;
- fcntl(pFile->m_Handle, F_SETFD, Flags);
- }
-
- pFile->m_pWriteBuf=0;
- pFile->m_nWriteBufFree=0;
- pFile->m_nWriteBufLen=0;
-
- if ( ProfileFlags & (osl_Profile_WRITELOCK | osl_Profile_READLOCK ) )
- {
-#ifdef DEBUG_OSL_PROFILE
- OSL_TRACE("locking '%s' file\n",pszFilename);
-#endif
- OslProfile_lockFile(pFile, bWriteable ? write_lock : read_lock);
- }
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out openFileImpl [ok]\n");
-#endif
- return (pFile);
-}
-
-static osl_TStamp closeFileImpl(osl_TFile* pFile, oslProfileOption Flags)
-{
- osl_TStamp stamp = 0;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In closeFileImpl\n");
-#endif
-
- if ( pFile == 0 )
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out closeFileImpl [pFile == 0]\n");
-#endif
- return stamp;
- }
-
- if ( pFile->m_Handle >= 0 )
- {
- stamp = OslProfile_getFileStamp(pFile);
-
- if ( Flags & (osl_Profile_WRITELOCK | osl_Profile_WRITELOCK ) )
- {
- OslProfile_lockFile(pFile, un_lock);
- }
-
- close(pFile->m_Handle);
- pFile->m_Handle = -1;
- }
-
-
- if ( pFile->m_pWriteBuf )
- {
- free(pFile->m_pWriteBuf);
- }
-
- free(pFile);
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out closeFileImpl [ok]\n");
-#endif
-
- return(stamp);
-}
-
-static sal_Bool OslProfile_rewindFile(osl_TFile* pFile, sal_Bool bTruncate)
-{
- sal_Bool bRet = sal_True;
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_OslProfile_rewindFile\n");
-#endif
-
- if (pFile->m_Handle >= 0)
- {
- pFile->m_pReadPtr = pFile->m_ReadBuf + sizeof(pFile->m_ReadBuf);
-
-#ifdef DEBUG_OSL_PROFILE
- OSL_TRACE("rewinding\n");
-#endif
- bRet = (lseek(pFile->m_Handle, SEEK_SET, 0L) == 0L);
-
- if (bTruncate)
- {
-#ifdef DEBUG_OSL_PROFILE
- OSL_TRACE("truncating\n");
-#endif
- bRet &= (ftruncate(pFile->m_Handle, 0L) == 0);
- }
-
- }
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_OslProfile_rewindFile [ok]\n");
-#endif
- return bRet;
-}
-
-
-static sal_Char* OslProfile_getLine(osl_TFile* pFile)
-{
- int Max, Free, Bytes, nLineBytes = 0;
- sal_Char* pChr;
- sal_Char* pLine = NULL;
- sal_Char* pNewLine;
-
- if ( pFile == 0 )
- {
- return 0;
- }
-
- if (pFile->m_Handle < 0)
- return NULL;
-
- do
- {
- Bytes = sizeof(pFile->m_ReadBuf) - (pFile->m_pReadPtr - pFile->m_ReadBuf);
-
- if (Bytes <= 1)
- {
- /* refill buffer */
- memcpy(pFile->m_ReadBuf, pFile->m_pReadPtr, Bytes);
- pFile->m_pReadPtr = pFile->m_ReadBuf;
-
- Free = sizeof(pFile->m_ReadBuf) - Bytes;
-
- if ((Max = read(pFile->m_Handle, &pFile->m_ReadBuf[Bytes], Free)) < 0)
- {
- OSL_TRACE("read failed '%s'\n",strerror(errno));
-
- if( pLine )
- rtl_freeMemory( pLine );
- pLine = NULL;
- break;
- }
-
- if (Max < Free)
- {
- if ((Max == 0) && ! pLine)
- break;
-
- pFile->m_ReadBuf[Bytes + Max] = '\0';
- }
- }
-
- for (pChr = pFile->m_pReadPtr;
- (*pChr != '\n') && (*pChr != '\r') && (*pChr != '\0') &&
- (pChr < (pFile->m_ReadBuf + sizeof(pFile->m_ReadBuf) - 1));
- pChr++);
-
- Max = pChr - pFile->m_pReadPtr;
- pNewLine = (sal_Char*) rtl_allocateMemory( nLineBytes + Max + 1 );
- if( pLine )
- {
- memcpy( pNewLine, pLine, nLineBytes );
- rtl_freeMemory( pLine );
- }
- memcpy(pNewLine+nLineBytes, pFile->m_pReadPtr, Max);
- nLineBytes += Max;
- pNewLine[ nLineBytes ] = 0;
- pLine = pNewLine;
-
- if (pChr < (pFile->m_ReadBuf + sizeof(pFile->m_ReadBuf) - 1))
- {
- if (*pChr != '\0')
- {
- if ((pChr[0] == '\r') && (pChr[1] == '\n'))
- pChr += 2;
- else
- pChr += 1;
- }
-
- if ((pChr < (pFile->m_ReadBuf + sizeof(pFile->m_ReadBuf))) &&
- (*pChr == '\0'))
- pChr = pFile->m_ReadBuf + sizeof(pFile->m_ReadBuf);
-
- /* setting Max to -1 indicates terminating read loop */
- Max = -1;
- }
-
- pFile->m_pReadPtr = pChr;
- }
- while (Max > 0);
-
- return pLine;
-}
-
-static sal_Bool OslProfile_putLine(osl_TFile* pFile, const sal_Char *pszLine)
-{
- unsigned int Len = strlen(pszLine);
-
-#ifdef DEBUG_OSL_PROFILE
- int strLen=0;
-#endif
-
- if ( pFile == 0 || pFile->m_Handle < 0 )
- {
- return (sal_False);
- }
-
- if ( pFile->m_pWriteBuf == 0 )
- {
- pFile->m_pWriteBuf = (sal_Char*) malloc(Len+3);
- pFile->m_nWriteBufLen = Len+3;
- pFile->m_nWriteBufFree = Len+3;
- }
- else
- {
- if ( pFile->m_nWriteBufFree <= Len + 3 )
- {
- sal_Char* pTmp;
-
- pTmp=(sal_Char*) realloc(pFile->m_pWriteBuf,( ( pFile->m_nWriteBufLen + Len ) * 2) );
- if ( pTmp == 0 )
- {
- return sal_False;
- }
- pFile->m_pWriteBuf = pTmp;
- pFile->m_nWriteBufFree = pFile->m_nWriteBufFree + pFile->m_nWriteBufLen + ( 2 * Len );
- pFile->m_nWriteBufLen = ( pFile->m_nWriteBufLen + Len ) * 2;
- memset( (pFile->m_pWriteBuf) + ( pFile->m_nWriteBufLen - pFile->m_nWriteBufFree ), 0, pFile->m_nWriteBufFree);
- }
- }
-
-
-
- memcpy(pFile->m_pWriteBuf + ( pFile->m_nWriteBufLen - pFile->m_nWriteBufFree ),pszLine,Len+1);
-#ifdef DEBUG_OSL_PROFILE
- strLen = strlen(pFile->m_pWriteBuf);
-#endif
- pFile->m_pWriteBuf[pFile->m_nWriteBufLen - pFile->m_nWriteBufFree + Len]='\n';
- pFile->m_pWriteBuf[pFile->m_nWriteBufLen - pFile->m_nWriteBufFree + Len + 1]='\0';
-
- pFile->m_nWriteBufFree-=Len+1;
-
- return sal_True;
-}
-
-/* platform specific end */
-
-static sal_Char* stripBlanks(sal_Char* String, sal_uInt32* pLen)
-{
- if ( ( pLen != NULL ) && ( *pLen != 0 ) )
- {
- while ((String[*pLen - 1] == ' ') || (String[*pLen - 1] == '\t'))
- (*pLen)--;
-
- while ( (*String == ' ') || (*String == '\t') )
- {
- String++;
- (*pLen)--;
- }
- }
- else
- while ( (*String == ' ') || (*String == '\t') )
- String++;
-
- return (String);
-}
-
-static sal_Char* addLine(osl_TProfileImpl* pProfile, const sal_Char* Line)
-{
- if (pProfile->m_NoLines >= pProfile->m_MaxLines)
- {
- if (pProfile->m_Lines == NULL)
- {
- pProfile->m_MaxLines = LINES_INI;
- pProfile->m_Lines = (sal_Char **)malloc(pProfile->m_MaxLines * sizeof(sal_Char *));
- memset(pProfile->m_Lines,0,pProfile->m_MaxLines * sizeof(sal_Char *));
- }
- else
- {
- unsigned int idx=0;
- unsigned int oldmax=pProfile->m_MaxLines;
-
- pProfile->m_MaxLines += LINES_ADD;
- pProfile->m_Lines = (sal_Char **)realloc(pProfile->m_Lines,
- pProfile->m_MaxLines * sizeof(sal_Char *));
- for ( idx = oldmax ; idx < pProfile->m_MaxLines ; ++idx )
- {
- pProfile->m_Lines[idx]=0;
- }
- }
-
- if (pProfile->m_Lines == NULL)
- {
- pProfile->m_NoLines = 0;
- pProfile->m_MaxLines = 0;
- return (NULL);
- }
-
- }
-
- if ( pProfile->m_Lines != 0 && pProfile->m_Lines[pProfile->m_NoLines] != 0 )
- {
- free(pProfile->m_Lines[pProfile->m_NoLines]);
- }
- pProfile->m_Lines[pProfile->m_NoLines++] = strdup(Line);
-
- return (pProfile->m_Lines[pProfile->m_NoLines - 1]);
-}
-
-static sal_Char* insertLine(osl_TProfileImpl* pProfile, const sal_Char* Line, sal_uInt32 LineNo)
-{
- if (pProfile->m_NoLines >= pProfile->m_MaxLines)
- {
- if (pProfile->m_Lines == NULL)
- {
- pProfile->m_MaxLines = LINES_INI;
- pProfile->m_Lines = (sal_Char **)malloc(pProfile->m_MaxLines * sizeof(sal_Char *));
- memset(pProfile->m_Lines,0,pProfile->m_MaxLines * sizeof(sal_Char *));
- }
- else
- {
- pProfile->m_MaxLines += LINES_ADD;
- pProfile->m_Lines = (sal_Char **)realloc(pProfile->m_Lines,
- pProfile->m_MaxLines * sizeof(sal_Char *));
-
- memset(&pProfile->m_Lines[pProfile->m_NoLines],
- 0,
- (pProfile->m_MaxLines - pProfile->m_NoLines - 1) * sizeof(sal_Char*));
- }
-
- if (pProfile->m_Lines == NULL)
- {
- pProfile->m_NoLines = 0;
- pProfile->m_MaxLines = 0;
- return (NULL);
- }
- }
-
- LineNo = LineNo > pProfile->m_NoLines ? pProfile->m_NoLines : LineNo;
-
- if (LineNo < pProfile->m_NoLines)
- {
- sal_uInt32 i, n;
- osl_TProfileSection* pSec;
-
- memmove(&pProfile->m_Lines[LineNo + 1], &pProfile->m_Lines[LineNo],
- (pProfile->m_NoLines - LineNo) * sizeof(sal_Char *));
-
-
- /* adjust line references */
- for (i = 0; i < pProfile->m_NoSections; i++)
- {
- pSec = &pProfile->m_Sections[i];
-
- if (pSec->m_Line >= LineNo)
- pSec->m_Line++;
-
- for (n = 0; n < pSec->m_NoEntries; n++)
- if (pSec->m_Entries[n].m_Line >= LineNo)
- pSec->m_Entries[n].m_Line++;
- }
- }
-
- pProfile->m_NoLines++;
-
- pProfile->m_Lines[LineNo] = strdup(Line);
-
- return (pProfile->m_Lines[LineNo]);
-}
-
-static void removeLine(osl_TProfileImpl* pProfile, sal_uInt32 LineNo)
-{
- if (LineNo < pProfile->m_NoLines)
- {
- free(pProfile->m_Lines[LineNo]);
- pProfile->m_Lines[LineNo]=0;
- if (pProfile->m_NoLines - LineNo > 1)
- {
- sal_uInt32 i, n;
- osl_TProfileSection* pSec;
-
- memmove(&pProfile->m_Lines[LineNo], &pProfile->m_Lines[LineNo + 1],
- (pProfile->m_NoLines - LineNo - 1) * sizeof(sal_Char *));
-
- memset(&pProfile->m_Lines[pProfile->m_NoLines - 1],
- 0,
- (pProfile->m_MaxLines - pProfile->m_NoLines) * sizeof(sal_Char*));
-
- /* adjust line references */
- for (i = 0; i < pProfile->m_NoSections; i++)
- {
- pSec = &pProfile->m_Sections[i];
-
- if (pSec->m_Line > LineNo)
- pSec->m_Line--;
-
- for (n = 0; n < pSec->m_NoEntries; n++)
- if (pSec->m_Entries[n].m_Line > LineNo)
- pSec->m_Entries[n].m_Line--;
- }
- }
- else
- {
- pProfile->m_Lines[LineNo] = 0;
- }
-
- pProfile->m_NoLines--;
- }
-
- return;
-}
-
-static void setEntry(osl_TProfileImpl* pProfile, osl_TProfileSection* pSection,
- sal_uInt32 NoEntry, sal_uInt32 Line,
- sal_Char* Entry, sal_uInt32 Len)
-{
- Entry = stripBlanks(Entry, &Len);
- pSection->m_Entries[NoEntry].m_Line = Line;
- pSection->m_Entries[NoEntry].m_Offset = Entry - pProfile->m_Lines[Line];
- pSection->m_Entries[NoEntry].m_Len = Len;
-
- return;
-}
-
-static sal_Bool addEntry(osl_TProfileImpl* pProfile, osl_TProfileSection *pSection,
- int Line, sal_Char* Entry, sal_uInt32 Len)
-{
- if (pSection != NULL)
- {
- if (pSection->m_NoEntries >= pSection->m_MaxEntries)
- {
- if (pSection->m_Entries == NULL)
- {
- pSection->m_MaxEntries = ENTRIES_INI;
- pSection->m_Entries = (osl_TProfileEntry *)malloc(
- pSection->m_MaxEntries * sizeof(osl_TProfileEntry));
- }
- else
- {
- pSection->m_MaxEntries += ENTRIES_ADD;
- pSection->m_Entries = (osl_TProfileEntry *)realloc(pSection->m_Entries,
- pSection->m_MaxEntries * sizeof(osl_TProfileEntry));
- }
-
- if (pSection->m_Entries == NULL)
- {
- pSection->m_NoEntries = 0;
- pSection->m_MaxEntries = 0;
- return (sal_False);
- }
- }
-
- pSection->m_NoEntries++;
-
- Entry = stripBlanks(Entry, &Len);
- setEntry(pProfile, pSection, pSection->m_NoEntries - 1, Line,
- Entry, Len);
-
- return (sal_True);
- }
-
- return (sal_False);
-}
-
-static void removeEntry(osl_TProfileSection *pSection, sal_uInt32 NoEntry)
-{
- if (NoEntry < pSection->m_NoEntries)
- {
- if (pSection->m_NoEntries - NoEntry > 1)
- {
- memmove(&pSection->m_Entries[NoEntry],
- &pSection->m_Entries[NoEntry + 1],
- (pSection->m_NoEntries - NoEntry - 1) * sizeof(osl_TProfileEntry));
- pSection->m_Entries[pSection->m_NoEntries - 1].m_Line=0;
- pSection->m_Entries[pSection->m_NoEntries - 1].m_Offset=0;
- pSection->m_Entries[pSection->m_NoEntries - 1].m_Len=0;
- }
-
- pSection->m_NoEntries--;
- }
-
- return;
-}
-
-static sal_Bool addSection(osl_TProfileImpl* pProfile, int Line, const sal_Char* Section, sal_uInt32 Len)
-{
- if (pProfile->m_NoSections >= pProfile->m_MaxSections)
- {
- if (pProfile->m_Sections == NULL)
- {
- pProfile->m_MaxSections = SECTIONS_INI;
- pProfile->m_Sections = (osl_TProfileSection *)malloc(pProfile->m_MaxSections * sizeof(osl_TProfileSection));
- memset(pProfile->m_Sections,0,pProfile->m_MaxSections * sizeof(osl_TProfileSection));
- }
- else
- {
- unsigned int idx=0;
- unsigned int oldmax=pProfile->m_MaxSections;
-
- pProfile->m_MaxSections += SECTIONS_ADD;
- pProfile->m_Sections = (osl_TProfileSection *)realloc(pProfile->m_Sections,
- pProfile->m_MaxSections * sizeof(osl_TProfileSection));
- for ( idx = oldmax ; idx < pProfile->m_MaxSections ; ++idx )
- {
- pProfile->m_Sections[idx].m_Entries=0;
- }
- }
-
- if (pProfile->m_Sections == NULL)
- {
- pProfile->m_NoSections = 0;
- pProfile->m_MaxSections = 0;
- return (sal_False);
- }
- }
-
- pProfile->m_NoSections++;
-
- if ( pProfile->m_Sections[(pProfile->m_NoSections) - 1].m_Entries != 0 )
- {
- free(pProfile->m_Sections[(pProfile->m_NoSections) - 1].m_Entries);
- }
- pProfile->m_Sections[pProfile->m_NoSections - 1].m_Entries = NULL;
- pProfile->m_Sections[pProfile->m_NoSections - 1].m_NoEntries = 0;
- pProfile->m_Sections[pProfile->m_NoSections - 1].m_MaxEntries = 0;
-
- pProfile->m_Sections[pProfile->m_NoSections - 1].m_Line = Line;
- pProfile->m_Sections[pProfile->m_NoSections - 1].m_Offset = Section - pProfile->m_Lines[Line];
- pProfile->m_Sections[pProfile->m_NoSections - 1].m_Len = Len;
-
- return (sal_True);
-}
-
-static void removeSection(osl_TProfileImpl* pProfile, osl_TProfileSection *pSection)
-{
- sal_uInt32 Section;
-
- if ((Section = pSection - pProfile->m_Sections) < pProfile->m_NoSections)
- {
- free (pSection->m_Entries);
- pSection->m_Entries=0;
- if (pProfile->m_NoSections - Section > 1)
- {
- memmove(&pProfile->m_Sections[Section], &pProfile->m_Sections[Section + 1],
- (pProfile->m_NoSections - Section - 1) * sizeof(osl_TProfileSection));
-
- memset(&pProfile->m_Sections[pProfile->m_NoSections - 1],
- 0,
- (pProfile->m_MaxSections - pProfile->m_NoSections) * sizeof(osl_TProfileSection));
- pProfile->m_Sections[pProfile->m_NoSections - 1].m_Entries = 0;
- }
- else
- {
- pSection->m_Entries = 0;
- }
-
- pProfile->m_NoSections--;
- }
-
- return;
-}
-
-static osl_TProfileSection* findEntry(osl_TProfileImpl* pProfile, const sal_Char* Section,
- const sal_Char* Entry, sal_uInt32 *pNoEntry)
-{
-static sal_uInt32 Sect = 0;
- sal_uInt32 i, n;
- sal_uInt32 Len;
- const sal_Char* pStr;
- osl_TProfileSection* pSec=0;
-
- Len = strlen(Section);
-
- n = Sect;
-
- for (i = 0; i < pProfile->m_NoSections; i++)
- {
- n %= pProfile->m_NoSections;
- pSec = &pProfile->m_Sections[n];
- if ((Len == pSec->m_Len) &&
- (strncasecmp(Section, &pProfile->m_Lines[pSec->m_Line][pSec->m_Offset], pSec->m_Len)
- == 0))
- break;
- n++;
- }
-
- Sect = n;
-
- if (i < pProfile->m_NoSections)
- {
- Len = strlen(Entry);
-
- *pNoEntry = pSec->m_NoEntries;
-
- for (i = 0; i < pSec->m_NoEntries; i++)
- {
- pStr = &pProfile->m_Lines[pSec->m_Entries[i].m_Line]
- [pSec->m_Entries[i].m_Offset];
- if ((Len == pSec->m_Entries[i].m_Len) &&
- (strncasecmp(Entry, pStr, pSec->m_Entries[i].m_Len)
- == 0))
- {
- *pNoEntry = i;
- break;
- }
- }
- }
- else
- pSec = NULL;
-
- return (pSec);
-}
-
-static sal_Bool loadProfile(osl_TFile* pFile, osl_TProfileImpl* pProfile)
-{
- sal_uInt32 i;
- sal_Char* pStr;
- sal_Char* pChar;
-
- sal_Char* pLine;
- sal_Char* bWasAdded = NULL;
-
- pProfile->m_NoLines = 0;
- pProfile->m_NoSections = 0;
-
- if ( pFile == 0 )
- {
- return sal_False;
- }
-
- if ( pProfile == 0 )
- {
- return sal_False;
- }
-
- OSL_VERIFY(OslProfile_rewindFile(pFile, sal_False));
-
- while ( ( pLine=OslProfile_getLine(pFile) ) != 0 )
- {
- bWasAdded = addLine( pProfile, pLine );
- rtl_freeMemory( pLine );
- OSL_ASSERT(bWasAdded);
- if ( ! bWasAdded )
- return (sal_False);
- }
-
- for (i = 0; i < pProfile->m_NoLines; i++)
- {
- pStr = (sal_Char *)stripBlanks(pProfile->m_Lines[i], NULL);
-
- if ((*pStr == '\0') || (*pStr == ';'))
- continue;
-
- if ((*pStr != '[') || ((pChar = strrchr(pStr, ']')) == NULL) ||
- ((pChar - pStr) <= 2))
- {
- /* insert entry */
-
- if (pProfile->m_NoSections < 1)
- continue;
-
- if ((pChar = strchr(pStr, '=')) == NULL)
- pChar = pStr + strlen(pStr);
-
- if (! addEntry(pProfile, &pProfile->m_Sections[pProfile->m_NoSections - 1],
- i, pStr, pChar - pStr))
- {
- OSL_ASSERT(0);
- continue;
- }
-
- }
- else
- {
- /* new section */
-
- if (! addSection(pProfile, i, pStr + 1, pChar - pStr - 1))
- {
- OSL_ASSERT(0);
- continue;
- }
-
- }
- }
-
- return (sal_True);
-}
-
-static sal_Bool storeProfile(osl_TProfileImpl* pProfile, sal_Bool bCleanup)
-{
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In storeProfile\n");
-#endif
-
- if (pProfile->m_Lines != NULL)
- {
- if (pProfile->m_Flags & FLG_MODIFIED)
- {
- sal_uInt32 i;
-
- osl_TFile* pTmpFile = osl_openTmpProfileImpl(pProfile);
-
- if ( pTmpFile == 0 )
- {
- return sal_False;
- }
-
- OSL_VERIFY(OslProfile_rewindFile(pTmpFile, sal_True));
-
- for ( i = 0 ; i < pProfile->m_NoLines ; i++ )
- {
- OSL_VERIFY(OslProfile_putLine(pTmpFile, pProfile->m_Lines[i]));
- }
-
- if ( ! writeProfileImpl(pTmpFile) )
- {
- if ( pTmpFile->m_pWriteBuf != 0 )
- {
- free(pTmpFile->m_pWriteBuf);
- }
-
- pTmpFile->m_pWriteBuf=0;
- pTmpFile->m_nWriteBufLen=0;
- pTmpFile->m_nWriteBufFree=0;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out storeProfile [not flushed]\n");
-#endif
- closeFileImpl(pTmpFile,pProfile->m_Flags);
-
- return sal_False;
- }
-
- pProfile->m_Flags &= ~FLG_MODIFIED;
-
- closeFileImpl(pProfile->m_pFile,pProfile->m_Flags);
- closeFileImpl(pTmpFile,pProfile->m_Flags);
-
- osl_ProfileSwapProfileNames(pProfile);
-
- pProfile->m_pFile = openFileImpl(pProfile->m_FileName,pProfile->m_Flags);
-
- }
-
- if (bCleanup)
- {
- while (pProfile->m_NoLines > 0)
- removeLine(pProfile, pProfile->m_NoLines - 1);
-
- free(pProfile->m_Lines);
- pProfile->m_Lines = NULL;
- pProfile->m_NoLines = 0;
- pProfile->m_MaxLines = 0;
-
- while (pProfile->m_NoSections > 0)
- removeSection(pProfile, &pProfile->m_Sections[pProfile->m_NoSections - 1]);
-
- free(pProfile->m_Sections);
- pProfile->m_Sections = NULL;
- pProfile->m_NoSections = 0;
- pProfile->m_MaxSections = 0;
- }
- }
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out storeProfile [ok]\n");
-#endif
- return (sal_True);
-}
-
-
-static osl_TFile* osl_openTmpProfileImpl(osl_TProfileImpl* pProfile)
-{
- osl_TFile* pFile=0;
- sal_Char* pszExtension = "tmp";
- sal_Char pszTmpName[PATH_MAX];
- oslProfileOption PFlags=0;
-
- pszTmpName[0] = '\0';
-
- /* generate tmp profilename */
- osl_ProfileGenerateExtension(pProfile->m_FileName,pszExtension,pszTmpName);
-
- if ( pszTmpName[0] == 0 )
- {
- return 0;
- }
-
- if ( ! ( pProfile->m_Flags & osl_Profile_READLOCK ) )
- {
- PFlags |= osl_Profile_WRITELOCK;
- }
-
- /* open this file */
- pFile = openFileImpl(pszTmpName,pProfile->m_Flags | PFlags);
-
-
- /* return new pFile */
- return pFile;
-}
-
-static sal_Bool osl_ProfileSwapProfileNames(osl_TProfileImpl* pProfile)
-{
- sal_Bool bRet = sal_False;
-
- sal_Char pszBakFile[PATH_MAX];
- sal_Char pszTmpFile[PATH_MAX];
- sal_Char pszIniFile[PATH_MAX];
-
- pszBakFile[0] = '\0';
- pszTmpFile[0] = '\0';
- pszIniFile[0] = '\0';
-
- osl_ProfileGenerateExtension(pProfile->m_FileName,"bak",pszBakFile);
-
- strcpy(pszIniFile,pProfile->m_FileName);
-
- osl_ProfileGenerateExtension(pProfile->m_FileName,"tmp",pszTmpFile);
-
- /* unlink bak */
- unlink( pszBakFile );
-
- /* rename ini bak */
- rename( pszIniFile, pszBakFile );
-
- /* rename tmp ini */
- rename( pszTmpFile, pszIniFile );
-
- return bRet;
-}
-
-
-static void osl_ProfileGenerateExtension(sal_Char* pszFileName, sal_Char* pszExtension, sal_Char* pszTmpName)
-{
-
- strcpy(pszTmpName,pszFileName);
- strcat(pszTmpName,".");
- strcat(pszTmpName,pszExtension);
-
- return;
-}
-
-
-static osl_TProfileImpl* acquireProfile(oslProfile Profile, sal_Bool bWriteable)
-{
- osl_TProfileImpl* pProfile = (osl_TProfileImpl*)Profile;
- oslProfileOption PFlags=0;
-
- if ( bWriteable )
- {
- PFlags = osl_Profile_DEFAULT | osl_Profile_WRITELOCK;
- }
- else
- {
- PFlags = osl_Profile_DEFAULT;
- }
-
-
- if (pProfile == NULL)
- {
-#ifdef DEBUG_OSL_PROFILE
- OSL_TRACE("AUTOOPEN MODE\n");
-#endif
-
- if ( ( pProfile = (osl_TProfileImpl*) osl_openProfile(0, PFlags ) ) != NULL )
- {
- pProfile->m_Flags |= FLG_AUTOOPEN;
- }
- }
- else
- {
-#ifdef DEBUG_OSL_PROFILE
- OSL_TRACE("try to acquire\n");
-#endif
-
- if (! (pProfile->m_Flags & osl_Profile_SYSTEM))
- {
- if (! (pProfile->m_Flags & (osl_Profile_READLOCK | osl_Profile_WRITELOCK | osl_Profile_FLUSHWRITE )))
- {
- osl_TStamp Stamp;
-
-#ifdef DEBUG_OSL_PROFILE
- OSL_TRACE("Profile acquire DEFAULT MODE\n");
-#endif
- if (! (pProfile->m_pFile = openFileImpl(pProfile->m_FileName, pProfile->m_Flags | PFlags )))
- return NULL;
-
- Stamp = OslProfile_getFileStamp(pProfile->m_pFile);
-
- if (memcmp(&Stamp, &(pProfile->m_Stamp), sizeof(osl_TStamp)))
- {
- sal_Bool bRet=sal_False;
-
- pProfile->m_Stamp = Stamp;
-
- bRet=loadProfile(pProfile->m_pFile, pProfile);
- OSL_ASSERT(bRet);
- (void)bRet;
- }
- }
- else
- {
-#ifdef DEBUG_OSL_PROFILE
- OSL_TRACE("Profile acquire READ/WRITELOCK MODE\n");
-#endif
- /* A readlock file could not be written */
- if ((pProfile->m_Flags & osl_Profile_READLOCK) && bWriteable)
- {
- return (NULL);
- }
- }
- }
- }
-
- return (pProfile);
-}
-
-static sal_Bool releaseProfile(osl_TProfileImpl* pProfile)
-{
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In releaseProfile\n");
-#endif
-
- if ( pProfile == 0 )
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out releaseProfile [profile==0]\n");
-#endif
- return sal_False;
- }
-
- if (pProfile->m_Flags & FLG_AUTOOPEN)
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out releaseProfile [AUTOOPEN]\n");
-#endif
- return (osl_closeProfile((oslProfile)pProfile));
- }
- else
- {
-#ifdef DEBUG_OSL_PROFILE
- OSL_TRACE("DEFAULT MODE\n");
-#endif
- if (! (pProfile->m_Flags & (osl_Profile_READLOCK | osl_Profile_WRITELOCK | osl_Profile_FLUSHWRITE )))
- {
- if (pProfile->m_Flags & FLG_MODIFIED)
- {
- sal_Bool bRet=storeProfile(pProfile, sal_False);
- OSL_ASSERT(bRet);
- (void)bRet;
- }
-
- closeFileImpl(pProfile->m_pFile,pProfile->m_Flags);
- pProfile->m_pFile = NULL;
- }
- }
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out releaseProfile [ok]\n");
-#endif
- return (sal_True);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/readwrite_helper.c b/sal/osl/unx/readwrite_helper.c
deleted file mode 100644
index e2598953e..000000000
--- a/sal/osl/unx/readwrite_helper.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Version: MPL 1.1 / GPLv3+ / LGPLv3+
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License or as specified alternatively below. You may obtain a copy of
- * the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Initial Developer of the Original Code is
- * Julien Chaffraix <julien.chaffraix@gmail.com>
- * Portions created by the Initial Developer are Copyright (C) 2011 the
- * Initial Developer. All Rights Reserved.
- *
- * Major Contributor(s):
- *
- * For minor contributions see the git repository.
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 3 or later (the "GPLv3+"), or
- * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
- * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
- * instead of those above.
- */
-
-#include "readwrite_helper.h"
-
-#include <osl/diagnose.h>
-#include <system.h>
-
-sal_Bool safeWrite(int fd, void* data, sal_uInt32 dataSize)
-{
- sal_Int32 nToWrite = dataSize;
- unsigned char* dataToWrite = data;
-
- // Check for overflow as we convert a signed to an unsigned.
- OSL_ASSERT(dataSize == (sal_uInt32)nToWrite);
- while ( nToWrite ) {
- sal_Int32 nWritten = write(fd, dataToWrite, nToWrite);
- if ( nWritten < 0 ) {
- if ( errno == EINTR )
- continue;
-
- return sal_False;
-
- }
-
- OSL_ASSERT(nWritten > 0);
- nToWrite -= nWritten;
- dataToWrite += nWritten;
- }
-
- return sal_True;
-}
-
-sal_Bool safeRead( int fd, void* buffer, sal_uInt32 count )
-{
- sal_Int32 nToRead = count;
- unsigned char* bufferForReading = buffer;
-
- // Check for overflow as we convert a signed to an unsigned.
- OSL_ASSERT(count == (sal_uInt32)nToRead);
- while ( nToRead ) {
- sal_Int32 nRead = read(fd, bufferForReading, nToRead);
- if ( nRead < 0 ) {
- // We were interrupted before reading, retry.
- if (errno == EINTR)
- continue;
-
- return sal_False;
- }
-
- // If we reach the EOF, we consider this a partial transfer and thus
- // an error.
- if ( nRead == 0 )
- return sal_False;
-
- nToRead -= nRead;
- bufferForReading += nRead;
- }
-
- return sal_True;
-}
diff --git a/sal/osl/unx/readwrite_helper.h b/sal/osl/unx/readwrite_helper.h
deleted file mode 100644
index c96c4e3bf..000000000
--- a/sal/osl/unx/readwrite_helper.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Version: MPL 1.1 / GPLv3+ / LGPLv3+
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License or as specified alternatively below. You may obtain a copy of
- * the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Initial Developer of the Original Code is
- * Julien Chaffraix <julien.chaffraix@gmail.com>
- * Portions created by the Initial Developer are Copyright (C) 2011 the
- * Initial Developer. All Rights Reserved.
- *
- * Major Contributor(s):
- *
- * For minor contributions see the git repository.
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 3 or later (the "GPLv3+"), or
- * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
- * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
- * instead of those above.
- */
-
-#include <sal/types.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-sal_Bool safeWrite( int fd, void* data, sal_uInt32 dataSize );
-
-// This function *will* read |count| bytes from |fd|, busy looping
-// if needed. Don't use it when you don't know if you can request enough
-// data. It will return sal_False for any partial transfer or error.
-sal_Bool safeRead( int fd, void* buffer, sal_uInt32 count );
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/sal/osl/unx/salinit.cxx b/sal/osl/unx/salinit.cxx
deleted file mode 100644
index 9503443fe..000000000
--- a/sal/osl/unx/salinit.cxx
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "precompiled_sal.hxx"
-#include "sal/config.h"
-
-#include "osl/process.h"
-#include "sal/types.h"
-
-extern "C" {
-
-void SAL_CALL sal_detail_initialize(int argc, char ** argv) {
- osl_setCommandArgs(argc, argv);
-}
-
-void SAL_CALL sal_detail_deinitialize() {}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/secimpl.h b/sal/osl/unx/secimpl.h
deleted file mode 100644
index c3a2b676a..000000000
--- a/sal/osl/unx/secimpl.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_SECURITYIMPL_H_
-#define _OSL_SECURITYIMPL_H_
-
-#include <pwd.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct _oslSecurityImpl {
- struct passwd m_pPasswd;
- char m_buffer[1]; /* should be a C99 flexible array member */
-} oslSecurityImpl;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/security.c b/sal/osl/unx/security.c
deleted file mode 100644
index 3a42b66d4..000000000
--- a/sal/osl/unx/security.c
+++ /dev/null
@@ -1,452 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <stddef.h>
-
-/* Solaris 8 has no C99 stdint.h, and Solaris generally seems not to miss it for
- SIZE_MAX: */
-#if !defined __SUNPRO_C
-#include <stdint.h>
-#endif
-
-#include "system.h"
-
-#include <osl/security.h>
-#include <osl/diagnose.h>
-
-#include "osl/thread.h"
-#include "osl/file.h"
-
-#if defined LINUX || defined SOLARIS
-#include <crypt.h>
-#endif
-
-#include "secimpl.h"
-
-#ifdef ANDROID
-#define getpwuid_r(uid, pwd, buf, buflen, result) (*(result) = getpwuid(uid), (*(result) ? (memcpy (buf, *(result), sizeof (struct passwd)), 0) : errno))
-#endif
-
-
-static oslSecurityError SAL_CALL
-osl_psz_loginUser(const sal_Char* pszUserName, const sal_Char* pszPasswd,
- oslSecurity* pSecurity);
-sal_Bool SAL_CALL osl_psz_getUserIdent(oslSecurity Security, sal_Char *pszIdent, sal_uInt32 nMax);
-static sal_Bool SAL_CALL osl_psz_getUserName(oslSecurity Security, sal_Char* pszName, sal_uInt32 nMax);
-static sal_Bool SAL_CALL osl_psz_getHomeDir(oslSecurity Security, sal_Char* pszDirectory, sal_uInt32 nMax);
-static sal_Bool SAL_CALL osl_psz_getConfigDir(oslSecurity Security, sal_Char* pszDirectory, sal_uInt32 nMax);
-
-static sal_Bool sysconf_SC_GETPW_R_SIZE_MAX(size_t * value) {
-#if defined _SC_GETPW_R_SIZE_MAX
- long m;
- errno = 0;
- m = sysconf(_SC_GETPW_R_SIZE_MAX);
- if (m == -1) {
- /* _SC_GETPW_R_SIZE_MAX has no limit; some platforms like certain
- FreeBSD versions support sysconf(_SC_GETPW_R_SIZE_MAX) in a broken
- way and always set EINVAL, so be resilient here: */
- return sal_False;
- } else {
- OSL_ASSERT(m >= 0 && (unsigned long) m < SIZE_MAX);
- *value = (size_t) m;
- return sal_True;
- }
-#else
- /* some platforms like Mac OS X 1.3 do not define _SC_GETPW_R_SIZE_MAX: */
- return sal_False;
-#endif
-}
-
-static oslSecurityImpl * growSecurityImpl(
- oslSecurityImpl * impl, size_t * bufSize)
-{
- size_t n = 0;
- oslSecurityImpl * p = NULL;
- if (impl == NULL) {
- if (!sysconf_SC_GETPW_R_SIZE_MAX(&n)) {
- /* choose something sensible (the callers of growSecurityImpl will
- detect it if the allocated buffer is too small: */
- n = 1024;
- }
- } else if (*bufSize <= SIZE_MAX / 2) {
- n = 2 * *bufSize;
- }
- if (n != 0) {
- if (n <= SIZE_MAX - offsetof(oslSecurityImpl, m_buffer)) {
- *bufSize = n;
- n += offsetof(oslSecurityImpl, m_buffer);
- } else {
- *bufSize = SIZE_MAX - offsetof(oslSecurityImpl, m_buffer);
- n = SIZE_MAX;
- }
- p = realloc(impl, n);
- }
- if (p == NULL) {
- free(impl);
- }
- return p;
-}
-
-static void deleteSecurityImpl(oslSecurityImpl * impl) {
- free(impl);
-}
-
-oslSecurity SAL_CALL osl_getCurrentSecurity()
-{
- size_t n = 0;
- oslSecurityImpl * p = NULL;
- for (;;) {
- struct passwd * found;
- p = growSecurityImpl(p, &n);
- if (p == NULL) {
- return NULL;
- }
- switch (getpwuid_r(getuid(), &p->m_pPasswd, p->m_buffer, n, &found)) {
- case ERANGE:
- break;
- case 0:
- if (found != NULL) {
- return p;
- }
- /* fall through */
- default:
- deleteSecurityImpl(p);
- return NULL;
- }
- }
-}
-
-oslSecurityError SAL_CALL osl_loginUser(
- rtl_uString *ustrUserName,
- rtl_uString *ustrPassword,
- oslSecurity *pSecurity
- )
-{
- oslSecurityError Error;
- rtl_String* strUserName=0;
- rtl_String* strPassword=0;
- sal_Char* pszUserName=0;
- sal_Char* pszPassword=0;
-
- if ( ustrUserName != 0 )
- {
- rtl_uString2String( &strUserName,
- rtl_uString_getStr(ustrUserName),
- rtl_uString_getLength(ustrUserName),
- RTL_TEXTENCODING_UTF8,
- OUSTRING_TO_OSTRING_CVTFLAGS );
- pszUserName = rtl_string_getStr(strUserName);
- }
-
-
- if ( ustrPassword != 0 )
- {
- rtl_uString2String( &strPassword,
- rtl_uString_getStr(ustrPassword),
- rtl_uString_getLength(ustrPassword),
- RTL_TEXTENCODING_UTF8,
- OUSTRING_TO_OSTRING_CVTFLAGS );
- pszPassword = rtl_string_getStr(strPassword);
- }
-
-
- Error=osl_psz_loginUser(pszUserName,pszPassword,pSecurity);
-
- if ( strUserName != 0 )
- {
- rtl_string_release(strUserName);
- }
-
- if ( strPassword)
- {
- rtl_string_release(strPassword);
- }
-
-
- return Error;
-}
-
-
-static oslSecurityError SAL_CALL
-osl_psz_loginUser(const sal_Char* pszUserName, const sal_Char* pszPasswd,
- oslSecurity* pSecurity)
-{
- (void)pszUserName;
- (void)pszPasswd;
- (void)pSecurity;
-
- return osl_Security_E_None;
-}
-
-oslSecurityError SAL_CALL osl_loginUserOnFileServer(
- rtl_uString *strUserName,
- rtl_uString *strPasswd,
- rtl_uString *strFileServer,
- oslSecurity *pSecurity
- )
-{
- (void) strUserName; /* unused */
- (void) strPasswd; /* unused */
- (void) strFileServer; /* unused */
- (void) pSecurity; /* unused */
- return osl_Security_E_UserUnknown;
-}
-
-
-sal_Bool SAL_CALL osl_getUserIdent(oslSecurity Security, rtl_uString **ustrIdent)
-{
- sal_Bool bRet=sal_False;
- sal_Char pszIdent[1024];
-
- pszIdent[0] = '\0';
-
- bRet = osl_psz_getUserIdent(Security,pszIdent,sizeof(pszIdent));
-
- rtl_string2UString( ustrIdent, pszIdent, rtl_str_getLength( pszIdent ), osl_getThreadTextEncoding(), OUSTRING_TO_OSTRING_CVTFLAGS );
- OSL_ASSERT(*ustrIdent != NULL);
-
- return bRet;
-}
-
-
-sal_Bool SAL_CALL osl_psz_getUserIdent(oslSecurity Security, sal_Char *pszIdent, sal_uInt32 nMax)
-{
- sal_Char buffer[32];
- sal_Int32 nChr;
-
- oslSecurityImpl *pSecImpl = (oslSecurityImpl *)Security;
-
- if (pSecImpl == NULL)
- return sal_False;
-
- nChr = snprintf(buffer, sizeof(buffer), "%u", pSecImpl->m_pPasswd.pw_uid);
- if ( nChr < 0 || SAL_INT_CAST(sal_uInt32, nChr) >= sizeof(buffer)
- || SAL_INT_CAST(sal_uInt32, nChr) >= nMax )
- return sal_False; /* leave *pszIdent unmodified in case of failure */
-
- memcpy(pszIdent, buffer, nChr+1);
- return sal_True;
-}
-
-sal_Bool SAL_CALL osl_getUserName(oslSecurity Security, rtl_uString **ustrName)
-{
- sal_Bool bRet=sal_False;
- sal_Char pszName[1024];
-
- pszName[0] = '\0';
-
- bRet = osl_psz_getUserName(Security,pszName,sizeof(pszName));
-
- rtl_string2UString( ustrName, pszName, rtl_str_getLength( pszName ), osl_getThreadTextEncoding(), OUSTRING_TO_OSTRING_CVTFLAGS );
- OSL_ASSERT(*ustrName != NULL);
-
- return bRet;
-}
-
-
-
-static sal_Bool SAL_CALL osl_psz_getUserName(oslSecurity Security, sal_Char* pszName, sal_uInt32 nMax)
-{
- oslSecurityImpl *pSecImpl = (oslSecurityImpl *)Security;
-
- if (pSecImpl == NULL)
- return sal_False;
-
- strncpy(pszName, pSecImpl->m_pPasswd.pw_name, nMax);
-
- return sal_True;
-}
-
-sal_Bool SAL_CALL osl_getHomeDir(oslSecurity Security, rtl_uString **pustrDirectory)
-{
- sal_Bool bRet=sal_False;
- sal_Char pszDirectory[PATH_MAX];
-
- pszDirectory[0] = '\0';
-
- bRet = osl_psz_getHomeDir(Security,pszDirectory,sizeof(pszDirectory));
-
- if ( bRet == sal_True )
- {
- rtl_string2UString( pustrDirectory, pszDirectory, rtl_str_getLength( pszDirectory ), osl_getThreadTextEncoding(), OUSTRING_TO_OSTRING_CVTFLAGS );
- OSL_ASSERT(*pustrDirectory != NULL);
- osl_getFileURLFromSystemPath( *pustrDirectory, pustrDirectory );
- }
-
- return bRet;
-}
-
-
-static sal_Bool SAL_CALL osl_psz_getHomeDir(oslSecurity Security, sal_Char* pszDirectory, sal_uInt32 nMax)
-{
- oslSecurityImpl *pSecImpl = (oslSecurityImpl *)Security;
-
- if (pSecImpl == NULL)
- return sal_False;
-
- /* if current user, check also environment for HOME */
- if (getuid() == pSecImpl->m_pPasswd.pw_uid)
- {
- sal_Char *pStr = NULL;
-#ifdef SOLARIS
- char buffer[8192];
-
- struct passwd pwd;
- struct passwd *ppwd;
-
-#ifdef _POSIX_PTHREAD_SEMANTICS
- if ( 0 != getpwuid_r(getuid(), &pwd, buffer, sizeof(buffer), &ppwd ) )
- ppwd = NULL;
-#else
- ppwd = getpwuid_r(getuid(), &pwd, buffer, sizeof(buffer) );
-#endif
-
- if ( ppwd )
- pStr = ppwd->pw_dir;
-#else
- pStr = getenv("HOME");
-#endif
-
- if ((pStr != NULL) && (strlen(pStr) > 0) &&
- (access(pStr, 0) == 0))
- strncpy(pszDirectory, pStr, nMax);
- else
- strncpy(pszDirectory, pSecImpl->m_pPasswd.pw_dir, nMax);
- }
- else
- strncpy(pszDirectory, pSecImpl->m_pPasswd.pw_dir, nMax);
-
- return sal_True;
-}
-
-sal_Bool SAL_CALL osl_getConfigDir(oslSecurity Security, rtl_uString **pustrDirectory)
-{
- sal_Bool bRet = sal_False;
- sal_Char pszDirectory[PATH_MAX];
-
- pszDirectory[0] = '\0';
-
- bRet = osl_psz_getConfigDir(Security,pszDirectory,sizeof(pszDirectory));
-
- if ( bRet == sal_True )
- {
- rtl_string2UString( pustrDirectory, pszDirectory, rtl_str_getLength( pszDirectory ), osl_getThreadTextEncoding(), OUSTRING_TO_OSTRING_CVTFLAGS );
- OSL_ASSERT(*pustrDirectory != NULL);
- osl_getFileURLFromSystemPath( *pustrDirectory, pustrDirectory );
- }
-
- return bRet;
-}
-
-#ifndef MACOSX
-
-#define DOT_CONFIG "/.config"
-
-static sal_Bool SAL_CALL osl_psz_getConfigDir(oslSecurity Security, sal_Char* pszDirectory, sal_uInt32 nMax)
-{
- sal_Char *pStr = getenv("XDG_CONFIG_HOME");
-
- if ((pStr == NULL) || (strlen(pStr) == 0) ||
- (access(pStr, 0) != 0))
- {
- // a default equal to $HOME/.config should be used.
- if (!osl_psz_getHomeDir(Security, pszDirectory, nMax))
- return sal_False;
- size_t n = strlen(pszDirectory);
- if (n + sizeof(DOT_CONFIG) < nMax)
- {
- strncpy(pszDirectory+n, DOT_CONFIG, sizeof(DOT_CONFIG));
- if (access(pszDirectory, 0) != 0)
- {
- // resort to HOME
- pszDirectory[n] = '\0';
- }
- }
- }
- else
- strncpy(pszDirectory, pStr, nMax);
-
- return sal_True;
-}
-
-#undef DOT_CONFIG
-
-#else
-
-/*
- * FIXME: rewrite to use more flexible
- * NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES)
- * as soon as we can bumb the baseline to Tiger (for NSApplicationSupportDirectory) and have
- * support for Objective-C in the build environment
- */
-
-#define MACOSX_CONFIG_DIR "/Library/Application Support"
-static sal_Bool SAL_CALL osl_psz_getConfigDir(oslSecurity Security, sal_Char* pszDirectory, sal_uInt32 nMax)
-{
- if( osl_psz_getHomeDir(Security, pszDirectory, nMax - sizeof(MACOSX_CONFIG_DIR) + 1) )
- {
- strcat( pszDirectory, MACOSX_CONFIG_DIR );
- return sal_True;
- }
-
- return sal_False;
-}
-
-#endif
-
-sal_Bool SAL_CALL osl_isAdministrator(oslSecurity Security)
-{
- oslSecurityImpl *pSecImpl = (oslSecurityImpl *)Security;
-
- if (pSecImpl == NULL)
- return sal_False;
-
- if (pSecImpl->m_pPasswd.pw_uid != 0)
- return (sal_False);
-
- return (sal_True);
-}
-
-void SAL_CALL osl_freeSecurityHandle(oslSecurity Security)
-{
- deleteSecurityImpl(Security);
-}
-
-
-sal_Bool SAL_CALL osl_loadUserProfile(oslSecurity Security)
-{
- (void) Security; /* unused */
- return sal_False;
-}
-
-void SAL_CALL osl_unloadUserProfile(oslSecurity Security)
-{
- (void) Security; /* unused */
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/semaphor.c b/sal/osl/unx/semaphor.c
deleted file mode 100644
index 9763adf65..000000000
--- a/sal/osl/unx/semaphor.c
+++ /dev/null
@@ -1,316 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#include "system.h"
-
-#include <osl/semaphor.h>
-#include <osl/diagnose.h>
-
-#ifndef OSL_USE_SYS_V_SEMAPHORE
-
-/* This is the (default) POSIX thread-local semaphore variant */
-
-/*
- Implemetation notes:
- The void* represented by oslSemaphore is used
- as a pointer to an sem_t struct
-*/
-
-/*****************************************************************************/
-/* osl_createSemaphore */
-/*****************************************************************************/
-
-oslSemaphore SAL_CALL osl_createSemaphore(sal_uInt32 initialCount)
-{
- int ret = 0;
- oslSemaphore Semaphore;
-
- Semaphore= malloc(sizeof(sem_t));
-
- OSL_ASSERT(Semaphore); /* ptr valid? */
-
- if ( Semaphore == 0 )
- {
- return 0;
- }
-
- /* unnamed semaphore, not shared between processes */
-
- ret= sem_init((sem_t*)Semaphore, 0, initialCount);
-
- /* create failed? */
- if (ret != 0)
- {
- OSL_TRACE("osl_createSemaphore failed. Errno: %d; %s\n",
- errno,
- strerror(errno));
-
- free(Semaphore);
- Semaphore = NULL;
- }
-
- return Semaphore;
-}
-
-/*****************************************************************************/
-/* osl_destroySemaphore */
-/*****************************************************************************/
-void SAL_CALL osl_destroySemaphore(oslSemaphore Semaphore)
-{
- if(Semaphore) /* ptr valid? */
- {
- sem_destroy((sem_t*)Semaphore);
- free(Semaphore);
- }
-}
-
-/*****************************************************************************/
-/* osl_acquireSemaphore */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_acquireSemaphore(oslSemaphore Semaphore) {
-
- OSL_ASSERT(Semaphore != 0); /* abort in debug mode */
-
- if (Semaphore != 0) /* be tolerant in release mode */
- {
- return (sem_wait((sem_t*)Semaphore) == 0);
- }
-
- return sal_False;
-}
-
-/*****************************************************************************/
-/* osl_tryToAcquireSemaphore */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_tryToAcquireSemaphore(oslSemaphore Semaphore) {
-
- OSL_ASSERT(Semaphore != 0); /* abort in debug mode */
- if (Semaphore != 0) /* be tolerant in release mode */
- {
- return (sem_trywait((sem_t*)Semaphore) == 0);
- }
-
- return sal_False;
-}
-
-/*****************************************************************************/
-/* osl_releaseSemaphore */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_releaseSemaphore(oslSemaphore Semaphore) {
-
- OSL_ASSERT(Semaphore != 0); /* abort in debug mode */
-
- if (Semaphore != 0) /* be tolerant in release mode */
- {
- return (sem_post((sem_t*)Semaphore) == 0);
- }
-
- return sal_False;
-}
-
-#else /* OSL_USE_SYS_V_SEMAPHORE */
-
-/*******************************************************************************/
-
-/* This is the SYS V private semaphore variant */
-
-/*
- Implemetation notes:
- The void* represented by oslSemaphore is used
- as a pointer to an osl_TSemImpl struct
-*/
-
-
-#if defined(NETBSD)
-union semun {
- int val; /* value for SETVAL */
- struct semid_ds *buf; /* buffer for IPC_STAT & IPC_SET */
- u_short *array; /* array for GETALL & SETALL */
-};
-#endif
-
-typedef struct _osl_TSemImpl
-{
- int m_Id;
-
-} osl_TSemImpl;
-
-/*****************************************************************************/
-/* osl_createSemaphore */
-/*****************************************************************************/
-oslSemaphore SAL_CALL osl_createSemaphore(sal_uInt32 initialCount)
-{
- union semun arg;
-
- oslSemaphore Semaphore;
- osl_TSemImpl* pSem;
-
- Semaphore= malloc(sizeof(osl_TSemImpl));
- OSL_POSTCOND(Semaphore, "malloc failed\n"); /* ptr valid? */
-
- pSem= (osl_TSemImpl*)Semaphore;
-
-
- /* unnamed (private) semaphore */
-
- pSem->m_Id= semget(IPC_PRIVATE, 1, 0666 | IPC_CREAT);
-
-
- /* create failed? */
- if (pSem->m_Id < 0)
- {
- OSL_TRACE("osl_createSemaphore failed (semget). Errno: %d; %s\n",
- errno,
- strerror(errno));
-
- free(Semaphore);
- return 0;
- }
-
- /* set initial count */
-
- arg.val= initialCount;
-
- if(semctl(pSem->m_Id, 0, SETVAL, arg) < 0)
- {
- OSL_TRACE("osl_createSemaphore failed (semctl(SETVAL)). Errno: %d; %s\n",
- errno,
- strerror(errno));
-
- if(semctl(pSem->m_Id, 0, IPC_RMID, arg) < 0)
- {
- OSL_TRACE("semctl(IPC_RMID) failed. Errno: %d; %s\n", errno, strerror(errno));
- }
-
- free(Semaphore);
- return 0;
- }
-
-
- return Semaphore;
-}
-
-/*****************************************************************************/
-/* osl_destroySemaphore */
-/*****************************************************************************/
-void SAL_CALL osl_destroySemaphore(oslSemaphore Semaphore) {
-
- if(Semaphore) /* ptr valid? */
- {
- union semun arg;
-
- osl_TSemImpl* pSem= (osl_TSemImpl*)Semaphore;
-
- if(semctl(pSem->m_Id, 0, IPC_RMID, arg) < 0)
-
- {
- OSL_TRACE("osl_destroySemaphore failed. (semctl(IPC_RMID)). Errno: %d; %s\n",
- errno,
- strerror(errno));
- }
-
- free(Semaphore);
- }
-}
-
-/*****************************************************************************/
-/* osl_acquireSemaphore */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_acquireSemaphore(oslSemaphore Semaphore) {
-
- /* abort in debug mode */
- OSL_PRECOND(Semaphore != 0, "Semaphore not created\n");
-
-
- if (Semaphore != 0) /* be tolerant in release mode */
- {
- struct sembuf op;
- osl_TSemImpl* pSem= (osl_TSemImpl*)Semaphore;
-
- op.sem_num= 0;
- op.sem_op= -1;
- op.sem_flg= SEM_UNDO;
-
- return semop(pSem->m_Id, &op, 1) >= 0;
-
- }
-
- return sal_False;
-}
-
-/*****************************************************************************/
-/* osl_tryToAcquireSemaphore */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_tryToAcquireSemaphore(oslSemaphore Semaphore) {
-
- /* abort in debug mode */
- OSL_PRECOND(Semaphore != 0, "Semaphore not created\n");
-
- if (Semaphore != 0) /* be tolerant in release mode */
- {
- struct sembuf op;
- osl_TSemImpl* pSem= (osl_TSemImpl*)Semaphore;
-
- op.sem_num= 0;
- op.sem_op= -1;
- op.sem_flg= SEM_UNDO | IPC_NOWAIT;
-
- return semop(pSem->m_Id, &op, 1) >= 0;
- }
-
- return sal_False;
-}
-
-/*****************************************************************************/
-/* osl_releaseSemaphore */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_releaseSemaphore(oslSemaphore Semaphore)
-{
-
- /* abort in debug mode */
- OSL_PRECOND(Semaphore != 0, "Semaphore not created\n");
-
- if (Semaphore != 0) /* be tolerant in release mode */
- {
- struct sembuf op;
- osl_TSemImpl* pSem= (osl_TSemImpl*)Semaphore;
-
- op.sem_num= 0;
- op.sem_op= 1;
- op.sem_flg= SEM_UNDO;
-
- return semop(pSem->m_Id, &op, 1) >= 0;
- }
-
- return sal_False;
-}
-
-#endif /* OSL_USE_SYS_V_SEMAPHORE */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/signal.c b/sal/osl/unx/signal.c
deleted file mode 100644
index 1b8a5e51d..000000000
--- a/sal/osl/unx/signal.c
+++ /dev/null
@@ -1,1099 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-/* system headers */
-#include "system.h"
-
-#define MAX_STACK_FRAMES 256
-
-#if defined( MACOSX )
-
-#if defined( INTEL )
-#include "backtrace.h"
-#define INCLUDE_BACKTRACE
-#define STACKTYPE "MacOsX_X86"
-#endif /* INTEL */
-
-#endif /* MACOSX */
-
-#ifdef LINUX
-#include <execinfo.h>
-#include <link.h>
-#define INCLUDE_BACKTRACE
-#define STACKTYPE "Linux"
-#endif
-
-#ifdef SOLARIS
-
-#include "backtrace.h"
-#define INCLUDE_BACKTRACE
-
-#if defined( SPARC )
-#define STACKTYPE "Solaris_Sparc"
-#elif defined( INTEL )
-#define STACKTYPE "Solaris_X86"
-#else
-#define STACKTYPE "Solaris_Unknown"
-#endif
-
-#endif /* defined SOLARIS */
-
-#include <osl/diagnose.h>
-#include <osl/mutex.h>
-#include <osl/signal.h>
-#include <osl/process.h>
-#include <osl/thread.h>
-#include <sal/macros.h>
-#include <rtl/bootstrap.h>
-#include <rtl/digest.h>
-
-#include "file_path_helper.h"
-
-#define ACT_IGNORE 1
-#define ACT_EXIT 2
-#define ACT_SYSTEM 3
-#define ACT_HIDE 4
-#ifdef SAL_ENABLE_CRASH_REPORT
-# define ACT_ABORT 5
-#else
-# define ACT_ABORT ACT_SYSTEM
-#endif
-
-#define MAX_PATH_LEN 2048
-
-typedef struct _oslSignalHandlerImpl
-{
- oslSignalHandlerFunction Handler;
- void* pData;
- struct _oslSignalHandlerImpl* pNext;
-} oslSignalHandlerImpl;
-
-static struct SignalAction
-{
- int Signal;
- int Action;
- void (*Handler)(int);
-} Signals[] =
-{
- { SIGHUP, ACT_IGNORE, NULL }, /* hangup */
- { SIGINT, ACT_EXIT, NULL }, /* interrupt (rubout) */
- { SIGQUIT, ACT_EXIT, NULL }, /* quit (ASCII FS) */
- { SIGILL, ACT_SYSTEM, NULL }, /* illegal instruction (not reset when caught) */
-/* changed from ACT_ABOUT to ACT_SYSTEM to try and get collector to run*/
- { SIGTRAP, ACT_ABORT, NULL }, /* trace trap (not reset when caught) */
-#if ( SIGIOT != SIGABRT )
- { SIGIOT, ACT_ABORT, NULL }, /* IOT instruction */
-#endif
- { SIGABRT, ACT_ABORT, NULL }, /* used by abort, replace SIGIOT in the future */
-#ifdef SIGEMT
- { SIGEMT, ACT_SYSTEM, NULL }, /* EMT instruction */
-/* changed from ACT_ABORT to ACT_SYSTEM to remove handler*/
-/* SIGEMT may also be used by the profiler - so it is probably not a good
-plan to have the new handler use this signal*/
-#endif
- { SIGFPE, ACT_ABORT, NULL }, /* floating point exception */
- { SIGKILL, ACT_SYSTEM, NULL }, /* kill (cannot be caught or ignored) */
- { SIGBUS, ACT_ABORT, NULL }, /* bus error */
- { SIGSEGV, ACT_ABORT, NULL }, /* segmentation violation */
-#ifdef SIGSYS
- { SIGSYS, ACT_ABORT, NULL }, /* bad argument to system call */
-#endif
- { SIGPIPE, ACT_HIDE, NULL }, /* write on a pipe with no one to read it */
- { SIGALRM, ACT_EXIT, NULL }, /* alarm clock */
- { SIGTERM, ACT_EXIT, NULL }, /* software termination signal from kill */
- { SIGUSR1, ACT_SYSTEM, NULL }, /* user defined signal 1 */
- { SIGUSR2, ACT_SYSTEM, NULL }, /* user defined signal 2 */
- { SIGCHLD, ACT_SYSTEM, NULL }, /* child status change */
-#ifdef SIGPWR
- { SIGPWR, ACT_IGNORE, NULL }, /* power-fail restart */
-#endif
- { SIGWINCH, ACT_IGNORE, NULL }, /* window size change */
- { SIGURG, ACT_EXIT, NULL }, /* urgent socket condition */
-#ifdef SIGPOLL
- { SIGPOLL, ACT_EXIT, NULL }, /* pollable event occurred */
-#endif
- { SIGSTOP, ACT_SYSTEM, NULL }, /* stop (cannot be caught or ignored) */
- { SIGTSTP, ACT_SYSTEM, NULL }, /* user stop requested from tty */
- { SIGCONT, ACT_SYSTEM, NULL }, /* stopped process has been continued */
- { SIGTTIN, ACT_SYSTEM, NULL }, /* background tty read attempted */
- { SIGTTOU, ACT_SYSTEM, NULL }, /* background tty write attempted */
- { SIGVTALRM, ACT_EXIT, NULL }, /* virtual timer expired */
- { SIGPROF, ACT_SYSTEM, NULL }, /* profiling timer expired */
-/*Change from ACT_EXIT to ACT_SYSTEM for SIGPROF is so that profiling signals do
-not get taken by the new handler - the new handler does not pass on context
-information which causes 'collect' to crash. This is a way of avoiding
-what looks like a bug in the new handler*/
- { SIGXCPU, ACT_ABORT, NULL }, /* exceeded cpu limit */
- { SIGXFSZ, ACT_ABORT, NULL } /* exceeded file size limit */
-};
-const int NoSignals = sizeof(Signals) / sizeof(struct SignalAction);
-
-static sal_Bool bErrorReportingEnabled = sal_True;
-static sal_Bool bInitSignal = sal_False;
-static oslMutex SignalListMutex;
-static oslSignalHandlerImpl* SignalList;
-static sal_Bool bDoHardKill = sal_False;
-static sal_Bool bSetSEGVHandler = sal_False;
-static sal_Bool bSetWINCHHandler = sal_False;
-static sal_Bool bSetILLHandler = sal_False;
-
-static void SignalHandlerFunction(int);
-
-static void getExecutableName_Impl (rtl_String ** ppstrProgName)
-{
- rtl_uString * ustrProgFile = 0;
- osl_getExecutableFile (&ustrProgFile);
- if (ustrProgFile)
- {
- rtl_uString * ustrProgName = 0;
- osl_systemPathGetFileNameOrLastDirectoryPart (ustrProgFile, &ustrProgName);
- if (ustrProgName != 0)
- {
- rtl_uString2String (
- ppstrProgName,
- rtl_uString_getStr (ustrProgName), rtl_uString_getLength (ustrProgName),
- osl_getThreadTextEncoding(),
- OUSTRING_TO_OSTRING_CVTFLAGS);
- rtl_uString_release (ustrProgName);
- }
- rtl_uString_release (ustrProgFile);
- }
-}
-
-static sal_Bool is_soffice_Impl (void)
-{
- sal_Int32 idx = -1;
- rtl_String * strProgName = 0;
-
- getExecutableName_Impl (&strProgName);
- if (strProgName)
- {
- idx = rtl_str_indexOfStr (rtl_string_getStr (strProgName), "soffice");
- rtl_string_release (strProgName);
- }
- return (idx != -1);
-}
-
-static sal_Bool InitSignal()
-{
- int i;
- struct sigaction act;
- struct sigaction oact;
- sigset_t unset;
-
- if (is_soffice_Impl())
- {
- sal_uInt32 argi;
- sal_uInt32 argc;
- rtl_uString *ustrCommandArg = 0;
-
- argc = osl_getCommandArgCount();
- for ( argi = 0; argi < argc; argi++ )
- {
- if (osl_Process_E_None == osl_getCommandArg (argi, &ustrCommandArg))
- {
- if (0 == rtl_ustr_ascii_compare (rtl_uString_getStr (ustrCommandArg), "-bean"))
- {
- bDoHardKill = sal_True;
- break;
- }
- }
- }
- if (ustrCommandArg)
- {
- rtl_uString_release (ustrCommandArg);
- ustrCommandArg = 0;
- }
-
- // WORKAROUND FOR SEGV HANDLER CONFLICT
- //
- // the java jit needs SIGSEGV for proper work
- // and we need SIGSEGV for the office crashguard
- //
- // TEMPORARY SOLUTION:
- // the office sets the signal handler during startup
- // java can than overwrite it, if needed
- bSetSEGVHandler = sal_True;
-
- // WORKAROUND FOR WINCH HANDLER (SEE ABOVE)
- bSetWINCHHandler = sal_True;
-
- // WORKAROUND FOR ILLEGAL INSTRUCTION HANDLER (SEE ABOVE)
- bSetILLHandler = sal_True;
- }
-
- SignalListMutex = osl_createMutex();
-
- act.sa_handler = SignalHandlerFunction;
- act.sa_flags = SA_RESTART;
-
- sigfillset(&(act.sa_mask));
-
- /* Initialize the rest of the signals */
- for (i = 0; i < NoSignals; i++)
- {
- /* hack: stomcatd is attaching JavaVM wich dont work with an sigaction(SEGV) */
- if ((bSetSEGVHandler || Signals[i].Signal != SIGSEGV)
- && (bSetWINCHHandler || Signals[i].Signal != SIGWINCH)
- && (bSetILLHandler || Signals[i].Signal != SIGILL))
- {
- if (Signals[i].Action != ACT_SYSTEM)
- {
- if (Signals[i].Action == ACT_HIDE)
- {
- struct sigaction ign;
-
- ign.sa_handler = SIG_IGN;
- ign.sa_flags = 0;
- sigemptyset(&ign.sa_mask);
-
- if (sigaction(Signals[i].Signal, &ign, &oact) == 0)
- Signals[i].Handler = oact.sa_handler;
- else
- Signals[i].Handler = SIG_DFL;
- }
- else
- if (sigaction(Signals[i].Signal, &act, &oact) == 0)
- Signals[i].Handler = oact.sa_handler;
- else
- Signals[i].Handler = SIG_DFL;
- }
- }
- }
-
- /* Clear signal mask inherited from parent process (on Mac OS X, upon a
- crash soffice re-execs itself from within the signal handler, so the
- second soffice would have the guilty signal blocked and would freeze upon
- encountering a similar crash again): */
- if (sigemptyset(&unset) < 0 ||
- pthread_sigmask(SIG_SETMASK, &unset, NULL) < 0)
- {
- OSL_TRACE("sigemptyset or pthread_sigmask failed");
- }
-
- return sal_True;
-}
-
-static sal_Bool DeInitSignal()
-{
- int i;
- struct sigaction act;
-
- act.sa_flags = 0;
- sigemptyset(&(act.sa_mask));
-
- /* Initialize the rest of the signals */
- for (i = NoSignals - 1; i >= 0; i--)
- if (Signals[i].Action != ACT_SYSTEM)
- {
- act.sa_handler = Signals[i].Handler;
-
- sigaction(Signals[i].Signal, &act, NULL);
- }
-
- osl_destroyMutex(SignalListMutex);
-
- return sal_False;
-}
-
-#if defined (SAL_ENABLE_CRASH_REPORT) && defined(INCLUDE_BACKTRACE)
-
-/*****************************************************************************/
-/* Generate MD5 checksum */
-/*****************************************************************************/
-
-static sal_uInt32 calc_md5_checksum( const char *filename, sal_uInt8 *pChecksum, sal_uInt32 nChecksumLen )
-{
- sal_uInt32 nBytesProcessed = 0;
-
- FILE *fp = fopen( filename, "r" );
-
- if ( fp )
- {
- rtlDigest digest = rtl_digest_createMD5();
-
- if ( digest )
- {
- size_t nBytesRead;
- sal_uInt8 buffer[4096];
- rtlDigestError error = rtl_Digest_E_None;
-
- while ( rtl_Digest_E_None == error &&
- 0 != (nBytesRead = fread( buffer, 1, sizeof(buffer), fp )) )
- {
- error = rtl_digest_updateMD5( digest, buffer, nBytesRead );
- nBytesProcessed += nBytesRead;
- }
-
- if ( rtl_Digest_E_None == error )
- {
- error = rtl_digest_getMD5( digest, pChecksum, nChecksumLen );
- }
-
- if ( rtl_Digest_E_None != error )
- nBytesProcessed = 0;
-
- rtl_digest_destroyMD5( digest );
- }
-
- fclose( fp );
- }
-
- return nBytesProcessed;
-}
-
-/*****************************************************************************/
-/* Call crash reporter */
-/*****************************************************************************/
-
-/* Helper function to encode and write a string to a stream */
-
-static int fputs_xml( const char *string, FILE *stream )
-{
- int result = 0;
-
- while ( result >= 0 && *string )
- {
- switch( *string )
- {
- case '&':
- result = fputs( "&amp;", stream );
- break;
- case '<':
- result = fputs( "&lt;", stream );
- break;
- case '>':
- result = fputs( "&gt;", stream );
- break;
- default:
- result = fputc( *string, stream );
- break;
- }
-
- string++;
- }
-
- return result;
-}
-#endif
-
-/* Create intermediate files and run crash reporter */
-
-#define REPORTENV_PARAM "-crashreportenv:"
-
-#if defined SAL_ENABLE_CRASH_REPORT && defined INCLUDE_BACKTRACE && \
- defined LINUX
-
-typedef struct
-{
- const char *name;
- ElfW(Off) offset;
-} dynamic_entry;
-
-static int
-callback(struct dl_phdr_info *info, size_t size, void *data)
-{
- const ElfW(Phdr) *pDynamic = NULL;
-
- if (size == sizeof(struct dl_phdr_info))
- {
- int i;
- for (i = 0; i < info->dlpi_phnum; ++i)
- {
- if (info->dlpi_phdr[i].p_type == PT_DYNAMIC)
- {
- pDynamic = &(info->dlpi_phdr[i]);
- break;
- }
- }
- }
-
- if (pDynamic)
- {
- char buffer[100];
- int len;
- char exe[PATH_MAX];
- const char *dsoname = info->dlpi_name;
-
- dynamic_entry* entry = (dynamic_entry*)data;
-
- if (strcmp(dsoname, "") == 0)
- {
- snprintf(buffer, sizeof(buffer), "/proc/%d/exe", getpid());
- if ((len = readlink(buffer, exe, PATH_MAX)) != -1)
- {
- exe[len] = '\0';
- dsoname = exe;
- }
- }
-
- if (strcmp(dsoname, entry->name) == 0)
- {
- entry->offset = pDynamic->p_offset;
- return 1;
- }
- }
- return 0;
-}
-
-/* Get the location of the .dynamic section offset for the given elf file.
- * i.e. same as the "Offset" value shown for DYNAMIC from readelf -l foo
- *
- * We want to know this value so that if the binaries have been modifed
- * by prelink then we can still process the call stack on server side
- * by comparing this value to that of an "un-prelinked but known to be
- * otherwise equivalent" version of those binaries and adjust the call
- * stack addresses by the differences between .dynamic addresses so as
- * to be able to map the prelinked addresses back to the unprelinked
- * addresses
- *
- * cmc@openoffice.org
- */
-static ElfW(Off)
-dynamic_section_offset(const char *name)
-{
- dynamic_entry entry;
-
- entry.name = name;
- entry.offset = 0;
-
- dl_iterate_phdr(callback, &entry);
-
- return entry.offset;
-}
-#endif
-
-static int ReportCrash( int Signal )
-{
-#ifdef SAL_ENABLE_CRASH_REPORT
- static sal_Bool bCrashReporterExecuted = sal_False;
- sal_Bool bAutoCrashReport = sal_False;
-
- sal_uInt32 argi;
- sal_uInt32 argc;
- rtl_uString *ustrCommandArg = NULL;
-
- if ( !bErrorReportingEnabled )
- return -1;
-
- argc = osl_getCommandArgCount();
-
- for ( argi = 0; argi < argc; argi++ )
- {
- if ( osl_Process_E_None == osl_getCommandArg( argi, &ustrCommandArg ) )
- {
- if ( 0 == rtl_ustr_ascii_compare( rtl_uString_getStr( ustrCommandArg ), "-nocrashreport" ) )
- {
- rtl_uString_release( ustrCommandArg );
- return -1;
- }
- else if ( 0 == rtl_ustr_ascii_compare( rtl_uString_getStr( ustrCommandArg ), "-autocrashreport" ) )
- {
- bAutoCrashReport = sal_True;
- }
- else if ( 0 == rtl_ustr_ascii_shortenedCompare_WithLength(
- rtl_uString_getStr( ustrCommandArg ), rtl_uString_getLength( ustrCommandArg ),
- REPORTENV_PARAM, strlen(REPORTENV_PARAM) )
- )
- {
- rtl_uString *ustrEnvironment = NULL;
- rtl_String *strEnv = NULL;
-
- rtl_uString_newFromStr( &ustrEnvironment, rtl_uString_getStr( ustrCommandArg ) + strlen(REPORTENV_PARAM) );
-
- if ( ustrEnvironment )
- {
- rtl_uString2String(
- &strEnv,
- rtl_uString_getStr( ustrEnvironment ), rtl_uString_getLength( ustrEnvironment ),
- osl_getThreadTextEncoding(), OUSTRING_TO_OSTRING_CVTFLAGS
- );
-
- if ( strEnv )
- {
- putenv( rtl_string_getStr( strEnv ) );
- rtl_string_release( strEnv );
- }
-
- rtl_uString_release( ustrEnvironment );
- }
-
- }
-
- }
- }
-
- if ( ustrCommandArg )
- rtl_uString_release( ustrCommandArg );
-
- if ( !bCrashReporterExecuted )
- {
- int i;
- /* struct sigaction act; */
-
- for (i = 0; i < NoSignals; i++)
- {
- if (Signals[i].Signal == Signal && Signals[i].Action == ACT_ABORT )
- {
- int ret;
- char szShellCmd[512] = { '\0' };
- char *pXMLTempName = NULL;
- char *pStackTempName = NULL;
- char *pChecksumTempName = NULL;
-
-#ifdef INCLUDE_BACKTRACE
- char szXMLTempNameBuffer[L_tmpnam];
- char szChecksumTempNameBuffer[L_tmpnam];
- char szStackTempNameBuffer[L_tmpnam];
-
- void *stackframes[MAX_STACK_FRAMES];
- int iFrame;
- int nFrames = backtrace( stackframes, SAL_N_ELEMENTS(stackframes) );
-
- FILE *xmlout = NULL, *stackout = NULL, *checksumout = NULL;
- int fdxml, fdstk, fdchksum;
-
- strncpy( szXMLTempNameBuffer, P_tmpdir, sizeof(szXMLTempNameBuffer) );
- strncat( szXMLTempNameBuffer, "/crxmlXXXXXX", sizeof(szXMLTempNameBuffer) );
-
- strncpy( szStackTempNameBuffer, P_tmpdir, sizeof(szStackTempNameBuffer) );
- strncat( szStackTempNameBuffer, "/crstkXXXXXX", sizeof(szStackTempNameBuffer) );
-
- strncpy( szChecksumTempNameBuffer, P_tmpdir, sizeof(szChecksumTempNameBuffer) );
- strncat( szChecksumTempNameBuffer, "/crchkXXXXXX", sizeof(szChecksumTempNameBuffer) );
-
- fdxml = mkstemp(szXMLTempNameBuffer);
- fdstk = mkstemp(szStackTempNameBuffer);
- fdchksum = mkstemp(szChecksumTempNameBuffer);
-
- xmlout = fdopen( fdxml , "w" );
- stackout = fdopen( fdstk , "w" );
- checksumout = fdopen( fdchksum, "w" );
-
- pXMLTempName = szXMLTempNameBuffer;
- pStackTempName = szStackTempNameBuffer;
- pChecksumTempName = szChecksumTempNameBuffer;
-
-
- if ( xmlout && stackout && checksumout )
- {
- fprintf( xmlout, "<errormail:Stack type=\"%s\">\n", STACKTYPE );
-
- fprintf( checksumout, "<errormail:Checksums type=\"MD5\">\n" );
-
- for ( iFrame = 0; iFrame < nFrames; iFrame++ )
- {
- Dl_info dl_info;
-
- fprintf( stackout, "0x%" SAL_PRIxUINTPTR ":",
- SAL_INT_CAST(sal_uIntPtr, stackframes[iFrame]) );
-
- fprintf( xmlout, "<errormail:StackInfo pos=\"%d\" ip=\"0x%" SAL_PRIxUINTPTR "\"",
- iFrame,
- SAL_INT_CAST(sal_uIntPtr, stackframes[iFrame])
- );
-
- memset( &dl_info, 0, sizeof(dl_info) );
-
- /* dladdr may fail */
- if ( dladdr( stackframes[iFrame], &dl_info) )
- {
- const char *dli_fname = NULL;
- char *dli_fdir = NULL;
- char szDirectory[PATH_MAX];
- char szCanonicDirectory[PATH_MAX];
-
- /* Don't expect that dladdr filled all members of dl_info */
-
- dli_fname = dl_info.dli_fname ? strrchr( dl_info.dli_fname, '/' ) : NULL;
- if ( dli_fname )
- {
- ++dli_fname;
- memcpy( szDirectory, dl_info.dli_fname, dli_fname - dl_info.dli_fname );
- szDirectory[dli_fname - dl_info.dli_fname] = 0;
-
- dli_fdir = realpath( szDirectory, szCanonicDirectory ) ? szCanonicDirectory : szDirectory;
-
- if ( *dli_fdir && dli_fdir[ strlen(dli_fdir) - 1 ] != '/' )
- strcat( dli_fdir, "/" );
- }
- else
- dli_fname = dl_info.dli_fname;
-
- /* create checksum of library on stack */
- if ( dli_fname )
- {
- sal_uInt8 checksum[RTL_DIGEST_LENGTH_MD5];
-
- sal_uInt32 nBytesProcessed = calc_md5_checksum(
- dl_info.dli_fname, checksum, sizeof(checksum) );
- if ( nBytesProcessed )
- {
- int j;
-
- fprintf( checksumout, "<errormail:Checksum sum=\"0x" );
- for ( j = 0; j < 16; fprintf( checksumout, "%02X", checksum[j++] ) );
- fprintf( checksumout,
- "\" bytes=\"%lu\" file=\"%s\"/>\n",
- SAL_INT_CAST(
- unsigned long, nBytesProcessed),
- dli_fname );
- }
- }
-
- if ( dl_info.dli_fbase && dl_info.dli_fname )
- {
-#ifdef LINUX
- ElfW(Off) dynamic_offset = dynamic_section_offset(dl_info.dli_fname);
- fprintf( stackout, " 0x%" SAL_PRI_SIZET "x:", dynamic_offset);
-#endif
-
- fprintf( stackout, " %s + 0x%" SAL_PRI_PTRDIFFT "x",
- dl_info.dli_fname,
- (char*)stackframes[iFrame] - (char*)dl_info.dli_fbase
- );
-
- fprintf( xmlout, " rel=\"0x%" SAL_PRI_PTRDIFFT "x\"", (char *)stackframes[iFrame] - (char *)dl_info.dli_fbase );
- if ( dli_fname )
- fprintf( xmlout, " name=\"%s\"", dli_fname );
-
- if ( dli_fdir )
- fprintf( xmlout, " path=\"%s\"", dli_fdir );
-
-#ifdef LINUX
- fprintf( xmlout, " dynamicoffset=\"0x%" SAL_PRI_SIZET "x\"", dynamic_offset );
-#endif
- }
- else
- fprintf( stackout, " ????????" );
-
- if ( dl_info.dli_sname && dl_info.dli_saddr )
- {
- fputs( " (", stackout );
- fputs_xml( dl_info.dli_sname, stackout );
- fprintf( stackout, " + 0x%" SAL_PRI_PTRDIFFT "x)",
- (char*)stackframes[iFrame] - (char*)dl_info.dli_saddr );
-
- fputs( " ordinal=\"", xmlout );
- fputs_xml( dl_info.dli_sname, xmlout );
- fprintf( xmlout, "+0x%" SAL_PRI_PTRDIFFT "x\"",
- (char *)stackframes[iFrame] - (char *)dl_info.dli_saddr );
- }
-
- }
- else /* dladdr failed */
- {
- fprintf( stackout, " ????????" );
- }
-
- fprintf( stackout, "\n" );
- fprintf( xmlout, "/>\n" );
-
- }
-
- fprintf( xmlout, "</errormail:Stack>\n" );
- fprintf( checksumout, "</errormail:Checksums>\n" );
- }
- else
- {
- pXMLTempName = NULL;
- pStackTempName = NULL;
- pChecksumTempName = NULL;
- }
-
- if ( stackout )
- fclose( stackout );
- if ( xmlout )
- fclose( xmlout );
- if ( checksumout )
- fclose( checksumout );
-
- if ( pXMLTempName && pChecksumTempName && pStackTempName )
-#endif /* INCLUDE_BACKTRACE */
- {
- rtl_uString * crashrep_url = NULL;
- rtl_uString * crashrep_path = NULL;
- rtl_String * crashrep_path_system = NULL;
- rtl_string2UString(
- &crashrep_url,
- RTL_CONSTASCII_USTRINGPARAM(
- "$BRAND_BASE_DIR/program/crashrep"),
- OSTRING_TO_OUSTRING_CVTFLAGS);
- rtl_bootstrap_expandMacros(&crashrep_url);
- osl_getSystemPathFromFileURL(crashrep_url, &crashrep_path);
- rtl_uString2String(
- &crashrep_path_system,
- rtl_uString_getStr(crashrep_path),
- rtl_uString_getLength(crashrep_path),
- osl_getThreadTextEncoding(),
- (RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
- | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR));
- rtl_uString_release(crashrep_url);
- rtl_uString_release(crashrep_path);
-#if defined INCLUDE_BACKTRACE && (defined LINUX || defined MACOSX)
- snprintf( szShellCmd, SAL_N_ELEMENTS(szShellCmd),
- "%s -p %d -s %d -xml %s -chksum %s -stack %s -noui%s",
- rtl_string_getStr(crashrep_path_system),
- getpid(),
- Signal,
- pXMLTempName,
- pChecksumTempName,
- pStackTempName,
- bAutoCrashReport ? " -send" : "" );
-#elif defined INCLUDE_BACKTRACE && defined SOLARIS
- snprintf( szShellCmd, SAL_N_ELEMENTS(szShellCmd),
- "%s -p %d -s %d -xml %s -chksum %s -noui%s",
- rtl_string_getStr(crashrep_path_system),
- getpid(),
- Signal,
- pXMLTempName,
- pChecksumTempName,
- bAutoCrashReport ? " -send" : "" );
-#else
- snprintf( szShellCmd, SAL_N_ELEMENTS(szShellCmd),
- "%s -p %d -s %d -noui%s",
- rtl_string_getStr(crashrep_path_system),
- getpid(), Signal, bAutoCrashReport ? " -send" : "" );
-#endif
- rtl_string_release(crashrep_path_system);
- }
-
- ret = szShellCmd[0] == '\0' ? -1 : system( szShellCmd );
-
- if ( pXMLTempName )
- unlink( pXMLTempName );
-
- if ( pStackTempName )
- unlink( pStackTempName );
-
- if ( pChecksumTempName )
- unlink( pChecksumTempName );
-
- if ( -1 != ret )
- {
- bCrashReporterExecuted = sal_True;
- return 1;
- }
- else
- return -1;
-
- }
- }
-
- return 0;
- }
-
- return 1;
-#else /* defined SAL_ENABLE_CRASH_REPORT */
- /* the utility crash_report is not build, so do the same as when
- the option -nocrashreport is used */
- (void) Signal; // avoid warnings
- return -1;
-#endif /* defined SAL_ENABLE_CRASH_REPORT */
-}
-
-static void PrintStack( int sig )
-{
-#ifdef INCLUDE_BACKTRACE
- void *buffer[MAX_STACK_FRAMES];
- int size = backtrace( buffer, SAL_N_ELEMENTS(buffer) );
-#endif
-
- fprintf( stderr, "\n\nFatal exception: Signal %d\n", sig );
-
-#if defined( MACOSX ) && !defined( INCLUDE_BACKTRACE )
- fprintf( stderr, "Please turn on Enable Crash Reporting and\nAutomatic Display of Crashlogs in the Console application\n" );
-#else
-#ifdef INCLUDE_BACKTRACE
- if ( size > 0 )
- {
- fputs( "Stack:\n", stderr );
- backtrace_symbols_fd( buffer, size, fileno(stderr) );
- }
-#endif
-#endif
-}
-
-static oslSignalAction CallSignalHandler(oslSignalInfo *pInfo)
-{
- oslSignalHandlerImpl* pHandler = SignalList;
- oslSignalAction Action = osl_Signal_ActCallNextHdl;
-
- while (pHandler != NULL)
- {
- if ((Action = pHandler->Handler(pHandler->pData, pInfo))
- != osl_Signal_ActCallNextHdl)
- break;
-
- pHandler = pHandler->pNext;
- }
-
- return Action;
-}
-
-void CallSystemHandler(int Signal)
-{
- int i;
- struct sigaction act;
-
- for (i = 0; i < NoSignals; i++)
- {
- if (Signals[i].Signal == Signal)
- break;
- }
-
- if (i < NoSignals)
- {
- if ((Signals[i].Handler == NULL) ||
- (Signals[i].Handler == SIG_DFL) ||
- (Signals[i].Handler == SIG_IGN) ||
- (Signals[i].Handler == SIG_ERR))
- {
- switch (Signals[i].Action)
- {
- case ACT_EXIT: /* terminate */
- /* prevent dumping core on exit() */
- _exit(255);
- break;
-
- case ACT_ABORT: /* terminate witch core dump */
- ReportCrash( Signal );
- act.sa_handler = SIG_DFL;
- act.sa_flags = 0;
- sigemptyset(&(act.sa_mask));
- sigaction(SIGABRT, &act, NULL);
- PrintStack( Signal );
- abort();
- break;
-
- case ACT_IGNORE: /* ignore */
- break;
-
- default: /* should never happen */
- OSL_ASSERT(0);
- }
- }
- else
- (*Signals[i].Handler)(Signal);
- }
-}
-
-
-/*****************************************************************************/
-/* SignalHandlerFunction */
-/*****************************************************************************/
-void SignalHandlerFunction(int Signal)
-{
- oslSignalInfo Info;
- struct sigaction act;
-
- Info.UserSignal = Signal;
- Info.UserData = NULL;
-
- switch (Signal)
- {
- case SIGBUS:
- case SIGILL:
- case SIGSEGV:
- case SIGIOT:
-#if ( SIGIOT != SIGABRT )
- case SIGABRT:
-#endif
- Info.Signal = osl_Signal_AccessViolation;
- break;
-
- case -1:
- Info.Signal = osl_Signal_IntegerDivideByZero;
- break;
-
- case SIGFPE:
- Info.Signal = osl_Signal_FloatDivideByZero;
- break;
-
- case SIGINT:
- case SIGTERM:
- case SIGQUIT:
- case SIGHUP:
- Info.Signal = osl_Signal_Terminate;
- break;
-
- default:
- Info.Signal = osl_Signal_System;
- break;
- }
-
- ReportCrash( Signal );
-
- /* Portal Demo HACK !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
- if (bDoHardKill && (Info.Signal == osl_Signal_AccessViolation))
- _exit(255);
- /* Portal Demo HACK !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
-
-
- switch (CallSignalHandler(&Info))
- {
- case osl_Signal_ActCallNextHdl:
- CallSystemHandler(Signal);
- break;
-
- case osl_Signal_ActAbortApp:
- ReportCrash( Signal );
- act.sa_handler = SIG_DFL;
- act.sa_flags = 0;
- sigemptyset(&(act.sa_mask));
- sigaction(SIGABRT, &act, NULL);
- PrintStack( Signal );
- abort();
- break;
-
- case osl_Signal_ActKillApp:
- /* prevent dumping core on exit() */
- _exit(255);
- break;
- default:
- break;
- }
-}
-
-/*****************************************************************************/
-/* osl_addSignalHandler */
-/*****************************************************************************/
-oslSignalHandler SAL_CALL osl_addSignalHandler(oslSignalHandlerFunction Handler, void* pData)
-{
- oslSignalHandlerImpl* pHandler;
-
- OSL_ASSERT(Handler != NULL);
- if ( Handler == 0 )
- {
- return 0;
- }
-
- if (! bInitSignal)
- bInitSignal = InitSignal();
-
- pHandler = (oslSignalHandlerImpl*) calloc(1, sizeof(oslSignalHandlerImpl));
-
- if (pHandler != NULL)
- {
- pHandler->Handler = Handler;
- pHandler->pData = pData;
-
- osl_acquireMutex(SignalListMutex);
-
- pHandler->pNext = SignalList;
- SignalList = pHandler;
-
- osl_releaseMutex(SignalListMutex);
-
- return (pHandler);
- }
-
- return (NULL);
-}
-
-/*****************************************************************************/
-/* osl_removeSignalHandler */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_removeSignalHandler(oslSignalHandler Handler)
-{
- oslSignalHandlerImpl *pHandler, *pPrevious = NULL;
-
- OSL_ASSERT(Handler != NULL);
-
- if (! bInitSignal)
- bInitSignal = InitSignal();
-
- osl_acquireMutex(SignalListMutex);
-
- pHandler = SignalList;
-
- while (pHandler != NULL)
- {
- if (pHandler == Handler)
- {
- if (pPrevious)
- pPrevious->pNext = pHandler->pNext;
- else
- SignalList = pHandler->pNext;
-
- osl_releaseMutex(SignalListMutex);
-
- if (SignalList == NULL)
- bInitSignal = DeInitSignal();
-
- free(pHandler);
-
- return (sal_True);
- }
-
- pPrevious = pHandler;
- pHandler = pHandler->pNext;
- }
-
- osl_releaseMutex(SignalListMutex);
-
- return (sal_False);
-}
-
-/*****************************************************************************/
-/* osl_raiseSignal */
-/*****************************************************************************/
-oslSignalAction SAL_CALL osl_raiseSignal(sal_Int32 UserSignal, void* UserData)
-{
- oslSignalInfo Info;
- oslSignalAction Action;
-
- if (! bInitSignal)
- bInitSignal = InitSignal();
-
- osl_acquireMutex(SignalListMutex);
-
- Info.Signal = osl_Signal_User;
- Info.UserSignal = UserSignal;
- Info.UserData = UserData;
-
- Action = CallSignalHandler(&Info);
-
- osl_releaseMutex(SignalListMutex);
-
- return (Action);
-}
-
-/*****************************************************************************/
-/* osl_setErrorReporting */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_setErrorReporting( sal_Bool bEnable )
-{
- sal_Bool bOld = bErrorReportingEnabled;
- bErrorReportingEnabled = bEnable;
-
- return bOld;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/socket.c b/sal/osl/unx/socket.c
deleted file mode 100644
index bcf5a72f8..000000000
--- a/sal/osl/unx/socket.c
+++ /dev/null
@@ -1,2892 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "system.h"
-
-#include <osl/socket.h>
-#include <osl/diagnose.h>
-#include <osl/mutex.h>
-#include <osl/signal.h>
-
-#include <rtl/alloc.h>
-
-#include <ctype.h>
-#include <sal/types.h>
-
-#include "sockimpl.h"
-
-
-/* defines for poll */
-#ifdef HAVE_POLL_H
-#undef HAVE_POLL_H
-#endif
-
-#if defined(LINUX) || defined(NETBSD) || defined ( FREEBSD ) || \
- defined (MACOSX) || defined (OPENBSD) || defined(DRAGONFLY)
-#include <sys/poll.h>
-#define HAVE_POLL_H
-#endif /* HAVE_POLL_H */
-
-#if defined(SOLARIS)
-#include <poll.h>
-#define HAVE_POLL_H
-#endif /* SOLARIS */
-
-#ifndef HAVE_POLL_H
-#define POLLIN 0x0001
-#define POLLOUT 0x0002
-#define POLLPRI 0x0004
-#endif /* HAVE_POLL_H */
-
-
-/* defines for shutdown */
-#define SD_RECEIVE 0
-#define SD_SEND 1
-#define SD_BOTH 2
-
-
-/*
- oslSocketAddr is a pointer to a Berkeley struct sockaddr.
- I refrained from using sockaddr_in because of possible further
- extensions of this socket-interface (IP-NG?).
- The intention was to hide all Berkeley data-structures from
- direct access past the osl-interface.
-
- The current implementation is internet (IP) centered. All
- the constructor-functions (osl_create...) take parameters
- that will probably make sense only in the IP-environment
- (e.g. because of using the dotted-address-format).
-
- If the interface will be extended to host other protocol-
- families, I expect no externally visible changes in the
- existing functions. You'll probably need only new
- constructor-functions who take the different address
- formats into consideration (maybe a long dotted address
- or whatever).
-*/
-
-/* _Note_ that I rely on the fact that oslSocketAddr and struct sockaddr */
-/* are the same! I don't like it very much but see no other easy way to */
-/* conceal the struct sockaddr from the eyes of the user. */
-
-
-#define OSL_INVALID_SOCKET -1
-#define OSL_SOCKET_ERROR -1
-
-
-/* Buffer size for gethostbyname */
-#define MAX_HOSTBUFFER_SIZE 2048
-
-/*****************************************************************************/
-/* enum oslAddrFamily */
-/*****************************************************************************/
-
-/* map */
-static unsigned long FamilyMap[]= {
- AF_INET, /* osl_Socket_FamilyInet */
- AF_IPX, /* osl_Socket_FamilyIpx */
- 0 /* osl_Socket_FamilyInvalid */
-};
-
-/* reverse map */
-static oslAddrFamily osl_AddrFamilyFromNative(sal_uInt32 nativeType)
-{
- oslAddrFamily i= (oslAddrFamily)0;
-
- while(i != osl_Socket_FamilyInvalid)
- {
- if(FamilyMap[i] == nativeType)
- return i;
- i = (oslAddrFamily) ( i + 1 );
- }
-
- return i;
-}
-
-/* macros */
-#define FAMILY_FROM_NATIVE(y) osl_AddrFamilyFromNative(y)
-#define FAMILY_TO_NATIVE(x) (short)FamilyMap[x]
-
-/*****************************************************************************/
-/* enum oslProtocol */
-/*****************************************************************************/
-
-/* map */
-static sal_uInt32 ProtocolMap[]= {
- 0, /* osl_Socket_ProtocolIp */
- NSPROTO_IPX, /* osl_Socket_ProtocolIpx */
- NSPROTO_SPX, /* osl_Socket_ProtocolSpx */
- NSPROTO_SPXII, /* osl_Socket_ProtocolSpxII */
- 0 /* osl_Socket_ProtocolInvalid */
-};
-
-/* reverse map */
-/* mfe: NOT USED
-static oslProtocol osl_ProtocolFromNative(sal_uInt32 nativeType)
-{
- oslProtocol i= (oslProtocol)0;
-
- while(i != osl_Socket_ProtocolInvalid)
- {
- if(ProtocolMap[i] == nativeType)
- return i;
- i = (oslProtocol) ( i + 1);
- }
-
- return i;
-}
-*/
-
-/* macros */
-#define PROTOCOL_FROM_NATIVE(y) osl_ProtocolFromNative(y)
-#define PROTOCOL_TO_NATIVE(x) ProtocolMap[x]
-
-
-/*****************************************************************************/
-/* enum oslSocketType */
-/*****************************************************************************/
-
-/* map */
-static sal_uInt32 TypeMap[]= {
- SOCK_STREAM, /* osl_Socket_TypeStream */
- SOCK_DGRAM, /* osl_Socket_TypeDgram */
- SOCK_RAW, /* osl_Socket_TypeRaw */
- SOCK_RDM, /* osl_Socket_TypeRdm */
- SOCK_SEQPACKET, /* osl_Socket_TypeSeqPacket */
- 0 /* osl_Socket_TypeInvalid */
-};
-
-/* reverse map */
-static oslSocketType osl_SocketTypeFromNative(sal_uInt32 nativeType)
-{
- oslSocketType i= (oslSocketType)0;
-
- while(i != osl_Socket_TypeInvalid)
- {
- if(TypeMap[i] == nativeType)
- return i;
- i = (oslSocketType)(i + 1);
- }
-
- return i;
-}
-
-/* macros */
-#define TYPE_TO_NATIVE(x) TypeMap[x]
-#define TYPE_FROM_NATIVE(y) osl_SocketTypeFromNative(y)
-
-
-/*****************************************************************************/
-/* enum oslSocketOption */
-/*****************************************************************************/
-
-/* map */
-static sal_uInt32 OptionMap[]= {
- SO_DEBUG, /* osl_Socket_OptionDebug */
- SO_ACCEPTCONN, /* osl_Socket_OptionAcceptConn */
- SO_REUSEADDR, /* osl_Socket_OptionReuseAddr */
- SO_KEEPALIVE, /* osl_Socket_OptionKeepAlive */
- SO_DONTROUTE, /* osl_Socket_OptionDontRoute */
- SO_BROADCAST, /* osl_Socket_OptionBroadcast */
- SO_USELOOPBACK, /* osl_Socket_OptionUseLoopback */
- SO_LINGER, /* osl_Socket_OptionLinger */
- SO_OOBINLINE, /* osl_Socket_OptionOOBinLine */
- SO_SNDBUF, /* osl_Socket_OptionSndBuf */
- SO_RCVBUF, /* osl_Socket_OptionRcvBuf */
- SO_SNDLOWAT, /* osl_Socket_OptionSndLowat */
- SO_RCVLOWAT, /* osl_Socket_OptionRcvLowat */
- SO_SNDTIMEO, /* osl_Socket_OptionSndTimeo */
- SO_RCVTIMEO, /* osl_Socket_OptionRcvTimeo */
- SO_ERROR, /* osl_Socket_OptionError */
- SO_TYPE, /* osl_Socket_OptionType */
- TCP_NODELAY, /* osl_Socket_OptionTcpNoDelay */
- 0 /* osl_Socket_OptionInvalid */
-};
-
-/* reverse map */
-/* mfe: NOT USED
-static oslSocketOption osl_SocketOptionFromNative(sal_uInt32 nativeType)
-{
- oslSocketOption i= (oslSocketOption)0;
-
- while(i != osl_Socket_OptionInvalid)
- {
- if(OptionMap[i] == nativeType)
- return i;
- i = (oslSocketOption) ( i + 1 );
- }
-
- return i;
-}
-*/
-/* macros */
-#define OPTION_TO_NATIVE(x) OptionMap[x]
-#define OPTION_FROM_NATIVE(y) osl_SocketOptionFromNative(y)
-
-
-/*****************************************************************************/
-/* enum oslSocketOptionLevel */
-/*****************************************************************************/
-
-static sal_uInt32 OptionLevelMap[]= {
- SOL_SOCKET, /* osl_Socket_LevelSocket */
- IPPROTO_TCP, /* osl_Socket_LevelTcp */
- 0 /* osl_Socket_LevelInvalid */
-};
-
-/* reverse map */
-/* mfe: NOT USED
-static oslSocketOptionLevel osl_SocketOptionLevelFromNative(sal_uInt32 nativeType)
-{
- oslSocketOptionLevel i= (oslSocketOptionLevel)0;
-
- while(i != osl_Socket_LevelInvalid)
- {
- if(OptionLevelMap[i] == nativeType)
- return i;
- i = (oslSocketOptionLevel) ( i + 1 );
- }
-
- return i;
-}
-*/
-/* macros */
-#define OPTION_LEVEL_TO_NATIVE(x) OptionLevelMap[x]
-#define OPTION_LEVEL_FROM_NATIVE(y) osl_SocketOptionLevelFromNative(y)
-
-/*****************************************************************************/
-/* enum oslSocketMsgFlag */
-/*****************************************************************************/
-
-static sal_uInt32 SocketMsgFlagMap[]= {
- 0, /* osl_Socket_MsgNormal */
- MSG_OOB, /* osl_Socket_MsgOOB */
- MSG_PEEK, /* osl_Socket_MsgPeek */
- MSG_DONTROUTE, /* osl_Socket_MsgDontRoute */
- MSG_MAXIOVLEN, /* osl_Socket_MsgMaxIOVLen */
- 0 /* osl_Socket_MsgInvalid */
-};
-
-/* reverse map */
-/* mfe: NOT USED
-static oslSocketMsgFlag osl_SocketMsgFlagFromNative(sal_uInt32 nativeType)
-{
- oslSocketMsgFlag i= (oslSocketMsgFlag)0;
-
- while(i != osl_Socket_MsgInvalid)
- {
- if(SocketMsgFlagMap[i] == nativeType)
- return i;
- i = (oslSocketMsgFlag) ( i + 1 );
- }
-
- return i;
-}
-*/
-
-/* macros */
-#define MSG_FLAG_TO_NATIVE(x) SocketMsgFlagMap[x]
-#define MSG_FLAG_FROM_NATIVE(y) osl_SocketMsgFlagFromNative(y)
-
-
-/*****************************************************************************/
-/* enum oslSocketDirection */
-/*****************************************************************************/
-
-static sal_uInt32 SocketDirection[]= {
- SD_RECEIVE, /* osl_Socket_DirRead */
- SD_SEND, /* osl_Socket_DirWrite */
- SD_BOTH, /* osl_Socket_DirReadWrite */
- 0 /* osl_Socket_DirInvalid */
-};
-
-/* reverse map */
-/* mfe: NOT USED
-static oslSocketDirection osl_SocketDirectionFromNative(sal_uInt32 nativeType)
-{
- oslSocketDirection i= (oslSocketDirection)0;
-
- while(i != osl_Socket_DirInvalid)
- {
- if(SocketDirection[i] == nativeType)
- return i;
- i = (oslSocketDirection) ( i + 1 );
- }
-
- return i;
-}
-*/
-
-/* macros */
-#define DIRECTION_TO_NATIVE(x) SocketDirection[x]
-#define DIRECTION_FROM_NATIVE(y) osl_SocketDirectionFromNative(y)
-
-/*****************************************************************************/
-/* enum oslSocketError */
-/*****************************************************************************/
-
-static struct
-{
- int errcode;
- oslSocketError error;
-} SocketError[]= {
- { 0, osl_Socket_E_None }, /* no error */
- { ENOTSOCK, osl_Socket_E_NotSocket }, /* Socket operation on non-socket */
- { EDESTADDRREQ, osl_Socket_E_DestAddrReq }, /* Destination address required */
- { EMSGSIZE, osl_Socket_E_MsgSize }, /* Message too long */
- { EPROTOTYPE, osl_Socket_E_Prototype }, /* Protocol wrong type for socket */
- { ENOPROTOOPT, osl_Socket_E_NoProtocol }, /* Protocol not available */
- { EPROTONOSUPPORT, osl_Socket_E_ProtocolNoSupport }, /* Protocol not supported */
- { ESOCKTNOSUPPORT, osl_Socket_E_TypeNoSupport }, /* Socket type not supported */
- { EOPNOTSUPP, osl_Socket_E_OpNotSupport }, /* Operation not supported on socket */
- { EPFNOSUPPORT, osl_Socket_E_PfNoSupport }, /* Protocol family not supported */
- { EAFNOSUPPORT, osl_Socket_E_AfNoSupport }, /* Address family not supported by */
- /* protocol family */
- { EADDRINUSE, osl_Socket_E_AddrInUse }, /* Address already in use */
- { EADDRNOTAVAIL, osl_Socket_E_AddrNotAvail }, /* Can't assign requested address */
- { ENETDOWN, osl_Socket_E_NetDown }, /* Network is down */
- { ENETUNREACH, osl_Socket_E_NetUnreachable }, /* Network is unreachable */
- { ENETRESET, osl_Socket_E_NetReset }, /* Network dropped connection because */
- /* of reset */
- { ECONNABORTED, osl_Socket_E_ConnAborted }, /* Software caused connection abort */
- { ECONNRESET, osl_Socket_E_ConnReset }, /* Connection reset by peer */
- { ENOBUFS, osl_Socket_E_NoBufferSpace }, /* No buffer space available */
- { EISCONN, osl_Socket_E_IsConnected }, /* Socket is already connected */
- { ENOTCONN, osl_Socket_E_NotConnected }, /* Socket is not connected */
- { ESHUTDOWN, osl_Socket_E_Shutdown }, /* Can't send after socket shutdown */
- { ETOOMANYREFS, osl_Socket_E_TooManyRefs }, /* Too many references: can't splice */
- { ETIMEDOUT, osl_Socket_E_TimedOut }, /* Connection timed out */
- { ECONNREFUSED, osl_Socket_E_ConnRefused }, /* Connection refused */
- { EHOSTDOWN, osl_Socket_E_HostDown }, /* Host is down */
- { EHOSTUNREACH, osl_Socket_E_HostUnreachable }, /* No route to host */
- { EWOULDBLOCK, osl_Socket_E_WouldBlock }, /* call would block on non-blocking socket */
- { EALREADY, osl_Socket_E_Already }, /* operation already in progress */
- { EINPROGRESS, osl_Socket_E_InProgress }, /* operation now in progress */
- { EAGAIN, osl_Socket_E_WouldBlock }, /* same as EWOULDBLOCK */
- { -1, osl_Socket_E_InvalidError }
-};
-
-/* map */
-/* mfe: NOT USED
-static int osl_NativeFromSocketError(oslSocketError errorCode)
-{
- int i = 0;
-
- while ((SocketError[i].error != osl_Socket_E_InvalidError) &&
- (SocketError[i].error != errorCode)) i++;
-
- return SocketError[i].errcode;
-}
-*/
-
-/* reverse map */
-static oslSocketError osl_SocketErrorFromNative(int nativeType)
-{
- int i = 0;
-
- while ((SocketError[i].error != osl_Socket_E_InvalidError) &&
- (SocketError[i].errcode != nativeType)) i++;
-
- return SocketError[i].error;
-}
-
-/* macros */
-#define ERROR_TO_NATIVE(x) osl_NativeFromSocketError(x)
-#define ERROR_FROM_NATIVE(y) osl_SocketErrorFromNative(y)
-
-/*****************************************************************************/
-/* local function prototypes */
-/*****************************************************************************/
-
-oslSocketAddr SAL_CALL osl_psz_createInetSocketAddr (
- const sal_Char* pszDottedAddr, sal_Int32 Port);
-
-oslSocketAddr SAL_CALL osl_psz_createIpxSocketAddr (
- const sal_Char NetNumber[4],
- const sal_Char NodeNumber[6],
- sal_uInt32 SocketNumber);
-
-oslHostAddr SAL_CALL osl_psz_createHostAddr (
- const sal_Char *pszHostname, const oslSocketAddr Addr);
-
-oslHostAddr SAL_CALL osl_psz_createHostAddrByName (
- const sal_Char *pszHostname);
-
-const sal_Char* SAL_CALL osl_psz_getHostnameOfHostAddr (
- const oslHostAddr Addr);
-
-oslSocketResult SAL_CALL osl_psz_getLocalHostname (
- sal_Char *pBuffer, sal_uInt32 nBufLen);
-
-oslSocketAddr SAL_CALL osl_psz_resolveHostname (
- const sal_Char* pszHostname);
-
-sal_Int32 SAL_CALL osl_psz_getServicePort (
- const sal_Char* pszServicename, const sal_Char* pszProtocol);
-
-oslSocketResult SAL_CALL osl_psz_getHostnameOfSocketAddr (
- oslSocketAddr Addr, sal_Char *pBuffer, sal_uInt32 BufferSize);
-
-oslSocketResult SAL_CALL osl_psz_getDottedInetAddrOfSocketAddr (
- oslSocketAddr Addr, sal_Char *pBuffer, sal_uInt32 BufferSize);
-
-void SAL_CALL osl_psz_getLastSocketErrorDescription (
- oslSocket Socket, sal_Char* pBuffer, sal_uInt32 BufferSize);
-
-/*****************************************************************************/
-/* osl_create/destroy-SocketImpl */
-/*****************************************************************************/
-
-#if OSL_DEBUG_LEVEL > 1
-static sal_uInt32 g_nSocketImpl = 0;
-static sal_uInt32 g_nSocketAddr = 0;
-
-/* sorry, must be implemented otherwise */
-
-#endif /* OSL_DEBUG_LEVEL */
-
-
-oslSocket __osl_createSocketImpl(int Socket)
-{
- oslSocket pSocket;
-
- pSocket = (oslSocket)calloc(1, sizeof(struct oslSocketImpl));
-
- pSocket->m_Socket = Socket;
- pSocket->m_nLastError = 0;
- pSocket->m_CloseCallback = 0;
- pSocket->m_CallbackArg = 0;
- pSocket->m_nRefCount = 1;
-
-#if defined(LINUX)
- pSocket->m_bIsAccepting = sal_False;
-#endif
-
-#if OSL_DEBUG_LEVEL > 1
- g_nSocketImpl ++;
-#endif
- return pSocket;
-}
-
-void __osl_destroySocketImpl(oslSocket Socket)
-{
- if ( Socket != NULL)
- free((struct oslSocketImpl *) Socket);
-#if OSL_DEBUG_LEVEL > 1
- g_nSocketImpl --;
-#endif
-}
-
-static oslSocketAddr __osl_createSocketAddr( )
-{
- oslSocketAddr pAddr = (oslSocketAddr) rtl_allocateZeroMemory( sizeof( struct oslSocketAddrImpl ));
-#if OSL_DEBUG_LEVEL > 1
- g_nSocketAddr ++;
-#endif
- return pAddr;
-}
-
-static oslSocketAddr __osl_createSocketAddrWithFamily(
- oslAddrFamily family, sal_Int32 port, sal_uInt32 nAddr )
-{
- oslSocketAddr pAddr;
-
- OSL_ASSERT( family == osl_Socket_FamilyInet );
-
- pAddr = __osl_createSocketAddr();
- switch( family )
- {
- case osl_Socket_FamilyInet:
- {
- struct sockaddr_in* pInetAddr= (struct sockaddr_in*)&(pAddr->m_sockaddr);
-
- pInetAddr->sin_family = FAMILY_TO_NATIVE(osl_Socket_FamilyInet);
- pInetAddr->sin_addr.s_addr = nAddr;
- pInetAddr->sin_port = (sal_uInt16)(port&0xffff);
- break;
- }
- default:
- pAddr->m_sockaddr.sa_family = FAMILY_TO_NATIVE(family);
- }
- return pAddr;
-}
-
-static oslSocketAddr __osl_createSocketAddrFromSystem( struct sockaddr *pSystemSockAddr )
-{
- oslSocketAddr pAddr = __osl_createSocketAddr();
- memcpy( &(pAddr->m_sockaddr), pSystemSockAddr, sizeof( struct sockaddr ) );
- return pAddr;
-}
-
-static void __osl_destroySocketAddr( oslSocketAddr addr )
-{
-#if OSL_DEBUG_LEVEL > 1
- g_nSocketAddr --;
-#endif
- rtl_freeMemory( addr );
-}
-
-/*****************************************************************************/
-/* osl_createEmptySocketAddr */
-/*****************************************************************************/
-oslSocketAddr SAL_CALL osl_createEmptySocketAddr(oslAddrFamily Family)
-{
- oslSocketAddr pAddr = 0;
-
- /* is it an internet-Addr? */
- if (Family == osl_Socket_FamilyInet)
- {
- pAddr = __osl_createSocketAddrWithFamily(Family, 0 , htonl(INADDR_ANY) );
- }
- else
- {
- pAddr = __osl_createSocketAddrWithFamily( Family , 0 , 0 );
- }
-
- return pAddr;
-}
-
-/*****************************************************************************/
-/* osl_copySocketAddr */
-/*****************************************************************************/
-oslSocketAddr SAL_CALL osl_copySocketAddr(oslSocketAddr Addr)
-{
- oslSocketAddr pCopy = 0;
- if (Addr)
- {
- pCopy = __osl_createSocketAddr();
-
- if (pCopy)
- memcpy(&(pCopy->m_sockaddr),&(Addr->m_sockaddr), sizeof(struct sockaddr));
- }
- return pCopy;
-}
-
-/*****************************************************************************/
-/* osl_isEqualSocketAddr */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_isEqualSocketAddr (
- oslSocketAddr Addr1,
- oslSocketAddr Addr2)
-{
- OSL_ASSERT(Addr1);
- OSL_ASSERT(Addr2);
- struct sockaddr* pAddr1= &(Addr1->m_sockaddr);
- struct sockaddr* pAddr2= &(Addr2->m_sockaddr);
-
- OSL_ASSERT(pAddr1);
- OSL_ASSERT(pAddr2);
- if (pAddr1 == pAddr2)
- {
- return (sal_True);
- }
-
- if (pAddr1->sa_family == pAddr2->sa_family)
- {
- switch (pAddr1->sa_family)
- {
- case AF_INET:
- {
- struct sockaddr_in* pInetAddr1= (struct sockaddr_in*)pAddr1;
- struct sockaddr_in* pInetAddr2= (struct sockaddr_in*)pAddr2;
-
- if ((pInetAddr1->sin_family == pInetAddr2->sin_family) &&
- (pInetAddr1->sin_addr.s_addr == pInetAddr2->sin_addr.s_addr) &&
- (pInetAddr1->sin_port == pInetAddr2->sin_port))
- return (sal_True);
- }
-
- default:
- {
- return (memcmp(pAddr1, pAddr2, sizeof(struct sockaddr)) == 0);
- }
- }
- }
-
- return (sal_False);
-}
-
-/*****************************************************************************/
-/* osl_createInetBroadcastAddr */
-/*****************************************************************************/
-oslSocketAddr SAL_CALL osl_createInetBroadcastAddr (
- rtl_uString *strDottedAddr,
- sal_Int32 Port)
-{
- sal_uInt32 nAddr = OSL_INADDR_NONE;
- oslSocketAddr pAddr;
-
- if (strDottedAddr && strDottedAddr->length)
- {
- /* Dotted host address for limited broadcast */
- rtl_String *pDottedAddr = NULL;
-
- rtl_uString2String (
- &pDottedAddr, strDottedAddr->buffer, strDottedAddr->length,
- RTL_TEXTENCODING_UTF8, OUSTRING_TO_OSTRING_CVTFLAGS);
-
- nAddr = inet_addr (pDottedAddr->buffer);
- rtl_string_release (pDottedAddr);
- }
-
- if (nAddr != OSL_INADDR_NONE)
- {
- /* Limited broadcast */
- nAddr = ntohl(nAddr);
- if (IN_CLASSA(nAddr))
- {
- nAddr &= IN_CLASSA_NET;
- nAddr |= IN_CLASSA_HOST;
- }
- else if (IN_CLASSB(nAddr))
- {
- nAddr &= IN_CLASSB_NET;
- nAddr |= IN_CLASSB_HOST;
- }
- else if (IN_CLASSC(nAddr))
- {
- nAddr &= IN_CLASSC_NET;
- nAddr |= IN_CLASSC_HOST;
- }
- else
- {
- /* No broadcast in class D */
- return ((oslSocketAddr)NULL);
- }
- nAddr = htonl(nAddr);
- }
-
- pAddr = __osl_createSocketAddrWithFamily( osl_Socket_FamilyInet, htons(Port), nAddr );
- return pAddr;
-}
-
-/*****************************************************************************/
-/* osl_createInetSocketAddr */
-/*****************************************************************************/
-oslSocketAddr SAL_CALL osl_createInetSocketAddr (
- rtl_uString *ustrDottedAddr,
- sal_Int32 Port)
-{
- rtl_String* strDottedAddr=0;
- oslSocketAddr Addr;
- sal_Char* pszDottedAddr=0;
-
- if ( ustrDottedAddr != 0 )
- {
- rtl_uString2String( &strDottedAddr,
- rtl_uString_getStr(ustrDottedAddr),
- rtl_uString_getLength(ustrDottedAddr),
- RTL_TEXTENCODING_UTF8,
- OUSTRING_TO_OSTRING_CVTFLAGS);
- pszDottedAddr = rtl_string_getStr(strDottedAddr);
- }
-
-
- Addr = osl_psz_createInetSocketAddr(pszDottedAddr, Port);
-
- if ( strDottedAddr != 0 )
- {
- rtl_string_release(strDottedAddr);
- }
-
- return Addr;
-}
-
-oslSocketAddr SAL_CALL osl_psz_createInetSocketAddr (
- const sal_Char* pszDottedAddr,
- sal_Int32 Port)
-{
- oslSocketAddr pAddr = 0;
- sal_Int32 Addr = inet_addr(pszDottedAddr);
- if(Addr != -1)
- {
- /* valid dotted addr */
- pAddr = __osl_createSocketAddrWithFamily( osl_Socket_FamilyInet, htons(Port) , Addr );
- }
- return pAddr;
-}
-
-/*****************************************************************************/
-/* osl_setAddrOfSocketAddr */
-/*****************************************************************************/
-oslSocketResult SAL_CALL osl_setAddrOfSocketAddr( oslSocketAddr pAddr, sal_Sequence *pByteSeq )
-{
- oslSocketResult res = osl_Socket_Error;
-
- OSL_ASSERT( pAddr );
- OSL_ASSERT( pByteSeq );
-
- if( pAddr && pByteSeq )
- {
- struct sockaddr_in * pSystemInetAddr;
-
- OSL_ASSERT( pAddr->m_sockaddr.sa_family == FAMILY_TO_NATIVE( osl_Socket_FamilyInet ) );
- OSL_ASSERT( pByteSeq->nElements == 4 );
-
- pSystemInetAddr = (struct sockaddr_in * ) &(pAddr->m_sockaddr);
- memcpy( &(pSystemInetAddr->sin_addr) , pByteSeq->elements , 4 );
- res = osl_Socket_Ok;
- }
- return res;
-}
-
-/*****************************************************************************/
-/* osl_getAddrOfSocketAddr */
-/*****************************************************************************/
-oslSocketResult SAL_CALL osl_getAddrOfSocketAddr( oslSocketAddr pAddr, sal_Sequence **ppByteSeq )
-{
- oslSocketResult res = osl_Socket_Error;
-
- OSL_ASSERT( pAddr );
- OSL_ASSERT( ppByteSeq );
-
- if( pAddr && ppByteSeq )
- {
- struct sockaddr_in * pSystemInetAddr = (struct sockaddr_in * ) &(pAddr->m_sockaddr);
- rtl_byte_sequence_constructFromArray( ppByteSeq , (sal_Int8 *) &(pSystemInetAddr->sin_addr),4);
- res = osl_Socket_Ok;
- }
- return res;
-}
-
-
-/*****************************************************************************/
-/* _osl_getFullQualifiedDomainName */
-/*****************************************************************************/
-
-/** try to figure out a full-qualified hostname, by adding the current domain
- as given by the domainname program to the given hostname.
- This function MUST NOT call gethostbyname since pHostName allready points
- to data returned by gethostname and would be garbled: use gethostname_r
- instead!
- */
-
-/* wrap around different interfaces to reentrant gethostbyname */
-static struct hostent* _osl_gethostbyname_r (
- const char *name, struct hostent *result,
- char *buffer, int buflen, int *h_errnop)
-{
-#if defined(LINUX) || defined(ANDROID) || (defined(FREEBSD) && (__FreeBSD_version >= 601103)) || defined(DRAGONFLY)
- struct hostent *__result; /* will be the same as result */
- int __error;
- __error = gethostbyname_r (name, result, buffer, buflen,
- &__result, h_errnop);
- return __error ? NULL : __result ;
-#elif defined(AIX)
- *h_errnop = gethostbyname_r (name, result, (struct hostent_data *)buffer);
- (void)buflen;
- return *h_errnop ? NULL : result ;
-#else
- return gethostbyname_r( name, result, buffer, buflen, h_errnop);
-#endif
-}
-
-static sal_Bool _osl_getDomainName (sal_Char *buffer, sal_Int32 bufsiz)
-{
- sal_Bool result;
- int p[2];
-
- result = sal_False;
- if (pipe (p) == 0)
- {
- pid_t pid;
- int nStatus;
-
- pid = fork();
- if (pid == 0)
- {
- char *argv[] =
- {
- "/bin/domainname",
- NULL
- };
-
- close (p[0]);
- dup2 (p[1], 1);
- close (p[1]);
-
- execv ("/bin/domainname", argv);
- // arriving here means exec failed
- _exit(-1);
- }
- else if (pid > 0)
- {
- sal_Int32 k = 0, n = bufsiz;
-
- close (p[1]);
- if ((k = read (p[0], buffer, n - 1)) > 0)
- {
- buffer[k] = 0;
- if (buffer[k - 1] == '\n')
- buffer[k - 1] = 0;
- result = sal_True;
- }
- close (p[0]);
- waitpid (pid, &nStatus, 0);
- }
- else
- {
- close (p[0]);
- close (p[1]);
- }
- }
- return (result);
-}
-
-static sal_Char* _osl_getFullQualifiedDomainName (const sal_Char *pHostName)
-{
-# define DOMAINNAME_LENGTH 512
- sal_uInt32 nLengthOfHostName;
- static sal_uInt32 nLengthOfDomainName = 0;
- static sal_Char *pDomainName = NULL;
-
- sal_Char *pFullQualifiedName;
-
- /* get a '\0' terminated domainname */
-
- /* read default domainname default from environment */
- if (nLengthOfDomainName == 0)
- {
- sal_Char *pEnvDomain;
-
- pEnvDomain = getenv ("STAR_OVERRIDE_DOMAINNAME");
- if (pEnvDomain)
- {
- pDomainName = strdup (pEnvDomain);
- nLengthOfDomainName = strlen (pDomainName);
- }
- }
-
- if (nLengthOfDomainName == 0)
- {
- sal_Char pDomainNameBuffer[ DOMAINNAME_LENGTH ];
-
- pDomainNameBuffer[0] = '\0';
-
- if (_osl_getDomainName (pDomainNameBuffer, DOMAINNAME_LENGTH))
- {
- pDomainName = strdup (pDomainNameBuffer);
- nLengthOfDomainName = strlen (pDomainName);
- }
- }
-
- /* compose hostname and domainname */
- nLengthOfHostName = strlen( pHostName );
- pFullQualifiedName = (sal_Char*) malloc( (nLengthOfHostName + 1
- + nLengthOfDomainName + 1) * sizeof(sal_Char) );
- memcpy( pFullQualifiedName, pHostName,
- (nLengthOfHostName + 1) * sizeof(sal_Char) );
-
- if ( nLengthOfDomainName > 0 )
- {
- /* fqdn = hostname + '.' + domainname + '\0' */
- pFullQualifiedName[ nLengthOfHostName ] = '.';
- memcpy( pFullQualifiedName + nLengthOfHostName + 1, pDomainName,
- nLengthOfDomainName + 1 );
- }
-
- /* check whether full-qualified name and hostname point to the same host
- * should almost always be true */
- if ( nLengthOfDomainName > 0 )
- {
- struct hostent *pQualifiedHostByName;
- struct hostent *pHostByName;
- sal_Bool bHostsAreEqual;
-
- /* buffer for calls to reentrant version of gethostbyname */
- struct hostent aHostByName, aQualifiedHostByName;
- sal_Char pHostBuffer[ MAX_HOSTBUFFER_SIZE ];
- sal_Char pQualifiedHostBuffer[ MAX_HOSTBUFFER_SIZE ];
- int nErrorNo;
-
- pHostBuffer[0] = '\0';
- pQualifiedHostBuffer[0] = '\0';
-
- /* get list of addresses */
- pQualifiedHostByName = _osl_gethostbyname_r (
- pFullQualifiedName,
- &aQualifiedHostByName, pQualifiedHostBuffer,
- sizeof(pQualifiedHostBuffer), &nErrorNo );
- pHostByName = _osl_gethostbyname_r (
- pHostName,
- &aHostByName, pHostBuffer,
- sizeof(pHostBuffer), &nErrorNo );
-
- /* compare addresses */
- bHostsAreEqual = sal_False;
- if ( pQualifiedHostByName && pHostByName )
- {
- sal_Char **p, **q;
- struct in_addr in;
-
- /* lists are expected to be (very) short */
- for ( p = pQualifiedHostByName->h_addr_list; *p != NULL; p++ )
- {
- for ( q = pHostByName->h_addr_list; *q != NULL; q++ )
- {
- /* in.s_addr may be in_addr_t or uint32_t or heaven knows */
- if ( memcmp( *p, *q, sizeof(in.s_addr) ) == 0 )
- {
- bHostsAreEqual = sal_True;
- break;
- }
- }
- if ( bHostsAreEqual )
- break;
- }
- }
-
- /* very strange case, but have to believe it: reduce the
- * full qualified name to the unqualified host name */
- if ( !bHostsAreEqual )
- {
- sal_Char *pTmp;
-
- OSL_TRACE("_osl_getFullQualifiedDomainName: "
- "suspect FQDN: %s\n", pFullQualifiedName);
-
- pFullQualifiedName[ nLengthOfHostName ] = '\0';
- pTmp = (sal_Char*)realloc ( pFullQualifiedName,
- (nLengthOfHostName + 1) * sizeof( sal_Char ));
- if (pTmp)
- pFullQualifiedName = pTmp;
- }
- }
-
- /* always return a hostname looked up as carefully as possible
- * this string must be freed by the caller */
- return pFullQualifiedName;
-}
-
-/*****************************************************************************/
-/* _osl_isFullQualifiedDomainName */
-/*****************************************************************************/
-static sal_Bool _osl_isFullQualifiedDomainName (const sal_Char *pHostName)
-{
- /* a FQDN (aka 'hostname.domain.top_level_domain' )
- * is a name which contains a dot '.' in it ( would
- * match as well for 'hostname.' but is good enough
- * for now )*/
- return (sal_Bool)( strchr( pHostName, (int)'.' ) != NULL );
-}
-
-/*****************************************************************************/
-/* oslHostAddr */
-/*****************************************************************************/
-struct oslHostAddrImpl
-{
- sal_Char *pHostName;
- oslSocketAddr pSockAddr;
-};
-
-static oslHostAddr _osl_hostentToHostAddr (const struct hostent *he)
-{
- oslHostAddr pAddr= NULL;
- oslSocketAddr pSockAddr = 0;
-
- sal_Char *cn;
-
- if ((he == NULL) || (he->h_name == NULL) || (he->h_addr_list[0] == NULL))
- return ((oslHostAddr)NULL);
-
- if (_osl_isFullQualifiedDomainName(he->h_name))
- {
- cn= (sal_Char *)malloc(strlen (he->h_name) + 1);
- OSL_ASSERT(cn);
- if (cn == NULL)
- return ((oslHostAddr)NULL);
-
- strcpy(cn, he->h_name);
- }
- else
- {
- cn =_osl_getFullQualifiedDomainName (he->h_name);
- OSL_ASSERT(cn);
- if (cn == NULL)
- return ((oslHostAddr)NULL);
- }
-
- pSockAddr = __osl_createSocketAddr();
- OSL_ASSERT(pSockAddr);
- if (pSockAddr == NULL)
- {
- free(cn);
- return ((oslHostAddr)NULL);
- }
-
- pSockAddr->m_sockaddr.sa_family= he->h_addrtype;
- if (pSockAddr->m_sockaddr.sa_family == FAMILY_TO_NATIVE(osl_Socket_FamilyInet))
- {
- struct sockaddr_in *sin= (struct sockaddr_in *)&(pSockAddr->m_sockaddr);
- memcpy (
- &(sin->sin_addr.s_addr),
- he->h_addr_list[0],
- he->h_length);
- }
- else
- {
- /* unknown address family */
- /* future extensions for new families might be implemented here */
-
- OSL_TRACE("_osl_hostentToHostAddr: unknown address family.\n");
- OSL_ASSERT(sal_False);
-
- __osl_destroySocketAddr( pSockAddr );
- free (cn);
- return ((oslHostAddr)NULL);
- }
-
- pAddr= (oslHostAddr) malloc(sizeof(struct oslHostAddrImpl));
- OSL_ASSERT(pAddr);
- if (pAddr == NULL)
- {
- __osl_destroySocketAddr( pSockAddr );
- free (cn);
- return ((oslHostAddr)NULL);
- }
-
- pAddr->pHostName= cn;
- pAddr->pSockAddr= pSockAddr;
-
- return pAddr;
-}
-
-/*****************************************************************************/
-/* osl_createHostAddr */
-/*****************************************************************************/
-oslHostAddr SAL_CALL osl_createHostAddr (
- rtl_uString *ustrHostname,
- const oslSocketAddr Addr)
-{
- oslHostAddr HostAddr;
- rtl_String* strHostname=0;
- sal_Char* pszHostName=0;
-
- if ( ustrHostname != 0 )
- {
- rtl_uString2String( &strHostname,
- rtl_uString_getStr(ustrHostname),
- rtl_uString_getLength(ustrHostname),
- RTL_TEXTENCODING_UTF8,
- OUSTRING_TO_OSTRING_CVTFLAGS );
- pszHostName = rtl_string_getStr(strHostname);
- }
-
- HostAddr = osl_psz_createHostAddr(pszHostName,Addr);
-
- if ( strHostname != 0 )
- {
- rtl_string_release(strHostname);
- }
-
- return HostAddr;
-}
-
-oslHostAddr SAL_CALL osl_psz_createHostAddr (
- const sal_Char *pszHostname,
- const oslSocketAddr pAddr)
-{
- oslHostAddr pHostAddr;
- sal_Char *cn;
-
- OSL_ASSERT(pszHostname && pAddr);
- if ((pszHostname == NULL) || (pAddr == NULL))
- return ((oslHostAddr)NULL);
-
- cn = (sal_Char *)malloc(strlen (pszHostname) + 1);
- OSL_ASSERT(cn);
- if (cn == NULL)
- return ((oslHostAddr)NULL);
-
- strcpy (cn, pszHostname);
-
- pHostAddr= (oslHostAddr) malloc(sizeof(struct oslHostAddrImpl));
- OSL_ASSERT(pHostAddr);
- if (pHostAddr == NULL)
- {
- free (cn);
- return ((oslHostAddr)NULL);
- }
-
- pHostAddr->pHostName= cn;
- pHostAddr->pSockAddr= osl_copySocketAddr( pAddr );
-
- return pHostAddr;
-}
-
-/*****************************************************************************/
-/* osl_createHostAddrByName */
-/*****************************************************************************/
-oslHostAddr SAL_CALL osl_createHostAddrByName(rtl_uString *ustrHostname)
-{
- oslHostAddr HostAddr;
- rtl_String* strHostname=0;
- sal_Char* pszHostName=0;
-
- if ( ustrHostname != 0 )
- {
- rtl_uString2String( &strHostname,
- rtl_uString_getStr(ustrHostname),
- rtl_uString_getLength(ustrHostname),
- RTL_TEXTENCODING_UTF8,
- OUSTRING_TO_OSTRING_CVTFLAGS );
- pszHostName=rtl_string_getStr(strHostname);
- }
-
- HostAddr = osl_psz_createHostAddrByName(pszHostName);
-
- if ( strHostname != 0 )
- {
- rtl_string_release(strHostname);
- }
-
- return HostAddr;
-}
-
-oslHostAddr SAL_CALL osl_psz_createHostAddrByName (const sal_Char *pszHostname)
-{
- struct hostent *he;
- oslHostAddr addr;
-
- static oslMutex mutex = NULL;
-
- if (mutex == NULL)
- mutex = osl_createMutex();
-
- osl_acquireMutex(mutex);
-
- he = gethostbyname((sal_Char *)pszHostname);
- addr = _osl_hostentToHostAddr (he);
-
- osl_releaseMutex(mutex);
-
- return addr;
-}
-
-/*****************************************************************************/
-/* osl_createHostAddrByAddr */
-/*****************************************************************************/
-oslHostAddr SAL_CALL osl_createHostAddrByAddr (const oslSocketAddr pAddr)
-{
- OSL_ASSERT(pAddr);
-
- if (pAddr == NULL)
- return ((oslHostAddr)NULL);
-
- if (pAddr->m_sockaddr.sa_family == FAMILY_TO_NATIVE(osl_Socket_FamilyInet))
- {
- const struct sockaddr_in *sin= (const struct sockaddr_in *)&(pAddr->m_sockaddr);
- struct hostent *he;
-
- if (sin->sin_addr.s_addr == htonl(INADDR_ANY))
- return ((oslHostAddr)NULL);
-
- he= gethostbyaddr((sal_Char *)&(sin->sin_addr),
- sizeof (sin->sin_addr),
- sin->sin_family);
- return _osl_hostentToHostAddr (he);
- }
-
- return ((oslHostAddr)NULL);
-}
-
-/*****************************************************************************/
-/* osl_copyHostAddr */
-/*****************************************************************************/
-oslHostAddr SAL_CALL osl_copyHostAddr (const oslHostAddr pAddr)
-{
- OSL_ASSERT(pAddr);
-
- if (pAddr)
- return osl_psz_createHostAddr (pAddr->pHostName, pAddr->pSockAddr);
- else
- return ((oslHostAddr)NULL);
-}
-
-/*****************************************************************************/
-/* osl_getHostnameOfHostAddr */
-/*****************************************************************************/
-void SAL_CALL osl_getHostnameOfHostAddr (
- const oslHostAddr Addr,
- rtl_uString **ustrHostname)
-{
- const sal_Char* pHostname=0;
-
- pHostname = osl_psz_getHostnameOfHostAddr(Addr);
-
- rtl_uString_newFromAscii (ustrHostname, pHostname);
-
- return;
-}
-
-const sal_Char* SAL_CALL osl_psz_getHostnameOfHostAddr (const oslHostAddr pAddr)
-{
- OSL_ASSERT(pAddr);
-
- if (pAddr)
- return pAddr->pHostName;
- else
- return NULL;
-}
-
-/*****************************************************************************/
-/* osl_getSocketAddrOfHostAddr */
-/*****************************************************************************/
-oslSocketAddr SAL_CALL osl_getSocketAddrOfHostAddr (const oslHostAddr pAddr)
-{
- OSL_ASSERT(pAddr);
-
- if (pAddr)
- return ((oslSocketAddr)(pAddr->pSockAddr));
- else
- return NULL;
-}
-
-/*****************************************************************************/
-/* osl_destroyHostAddr */
-/*****************************************************************************/
-void SAL_CALL osl_destroyHostAddr (oslHostAddr pAddr)
-{
- if (pAddr)
- {
- if (pAddr->pHostName)
- free (pAddr->pHostName);
- if (pAddr->pSockAddr)
- osl_destroySocketAddr (pAddr->pSockAddr);
- free (pAddr);
- }
-}
-
-/*****************************************************************************/
-/* osl_getLocalHostname */
-/*****************************************************************************/
-oslSocketResult SAL_CALL osl_getLocalHostname(rtl_uString **ustrLocalHostname)
-{
- oslSocketResult Result;
- sal_Char pszHostname[1024];
-
- pszHostname[0] = '\0';
-
- Result = osl_psz_getLocalHostname(pszHostname,sizeof(pszHostname));
-
- rtl_uString_newFromAscii(ustrLocalHostname,pszHostname);
-
- return Result;
-}
-
-oslSocketResult SAL_CALL osl_psz_getLocalHostname (
- sal_Char *pBuffer, sal_uInt32 nBufLen)
-{
- static sal_Char LocalHostname[256] = "";
-
- if (strlen(LocalHostname) == 0)
- {
- const sal_Char *pStr;
-
-#ifdef SYSV
- struct utsname uts;
-
- if (uname(&uts) < 0)
- return osl_Socket_Error;
-
- if ((strlen(uts.nodename) + 1) > nBufLen)
- return osl_Socket_Error;
-
- strncpy(LocalHostname, uts.nodename, sizeof( LocalHostname ));
-#else /* BSD compatible */
-
- if (gethostname(LocalHostname, sizeof(LocalHostname)-1) != 0)
- return osl_Socket_Error;
- LocalHostname[sizeof(LocalHostname)-1] = 0;
-#endif /* SYSV */
-
- /* check if we have an FQDN */
- if (strchr(LocalHostname, '.') == NULL)
- {
- oslHostAddr Addr;
-
- /* no, determine it via dns */
- Addr = osl_psz_createHostAddrByName(LocalHostname);
-
- if ((pStr = osl_psz_getHostnameOfHostAddr(Addr)) != NULL)
- {
- strcpy(LocalHostname, pStr);
- }
- osl_destroyHostAddr(Addr);
- }
- }
-
- if (strlen(LocalHostname) > 0)
- {
- strncpy(pBuffer, LocalHostname, nBufLen);
- pBuffer[nBufLen - 1] = '\0';
-
- return osl_Socket_Ok;
- }
-
- return osl_Socket_Error;
-}
-
-/*****************************************************************************/
-/* osl_resolveHostname */
-/*****************************************************************************/
-oslSocketAddr SAL_CALL osl_resolveHostname(rtl_uString *ustrHostname)
-{
- oslSocketAddr Addr;
- rtl_String* strHostname=0;
- sal_Char* pszHostName=0;
-
- if ( ustrHostname != 0 )
- {
- rtl_uString2String( &strHostname,
- rtl_uString_getStr(ustrHostname),
- rtl_uString_getLength(ustrHostname),
- RTL_TEXTENCODING_UTF8,
- OUSTRING_TO_OSTRING_CVTFLAGS );
- pszHostName = rtl_string_getStr(strHostname);
- }
-
-
- Addr = osl_psz_resolveHostname(pszHostName);
-
- if ( strHostname != 0 )
- {
- rtl_string_release(strHostname);
- }
-
-
- return Addr;
-}
-
-
-oslSocketAddr SAL_CALL osl_psz_resolveHostname(const sal_Char* pszHostname)
-{
- struct oslHostAddrImpl *pAddr = (oslHostAddr)osl_psz_createHostAddrByName(pszHostname);
-
- if (pAddr)
- {
- oslSocketAddr SockAddr = osl_copySocketAddr(pAddr->pSockAddr);
-
- osl_destroyHostAddr(pAddr);
-
- return (SockAddr);
- }
-
- return ((oslSocketAddr)NULL);
-}
-
-/*****************************************************************************/
-/* osl_getServicePort */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_getServicePort(rtl_uString *ustrServicename, rtl_uString *ustrProtocol)
-{
- sal_Int32 nPort;
- rtl_String* strServicename=0;
- rtl_String* strProtocol=0;
- sal_Char* pszServiceName=0;
- sal_Char* pszProtocol=0;
-
- if ( ustrServicename != 0 )
- {
- rtl_uString2String( &strServicename,
- rtl_uString_getStr(ustrServicename),
- rtl_uString_getLength(ustrServicename),
- RTL_TEXTENCODING_UTF8,
- OUSTRING_TO_OSTRING_CVTFLAGS );
- pszServiceName = rtl_string_getStr(strServicename);
- }
-
- if ( ustrProtocol != 0 )
- {
- rtl_uString2String( &strProtocol,
- rtl_uString_getStr(ustrProtocol),
- rtl_uString_getLength(ustrProtocol),
- RTL_TEXTENCODING_UTF8,
- OUSTRING_TO_OSTRING_CVTFLAGS );
- pszProtocol = rtl_string_getStr(strProtocol);
- }
-
- nPort = osl_psz_getServicePort(pszServiceName,pszProtocol);
-
- if ( strServicename != 0 )
- {
- rtl_string_release(strServicename);
- }
-
- if ( strProtocol != 0 )
- {
- rtl_string_release(strProtocol);
- }
-
-
- return nPort;
-}
-
-
-sal_Int32 SAL_CALL osl_psz_getServicePort(const sal_Char* pszServicename,
- const sal_Char* pszProtocol)
-{
- struct servent* ps;
-
- ps= getservbyname(pszServicename, pszProtocol);
-
- if (ps != 0)
- return ntohs(ps->s_port);
-
- return OSL_INVALID_PORT;
-}
-
-/*****************************************************************************/
-/* osl_destroySocketAddr */
-/*****************************************************************************/
-void SAL_CALL osl_destroySocketAddr(oslSocketAddr pAddr)
-{
- __osl_destroySocketAddr( pAddr );
-}
-
-/*****************************************************************************/
-/* osl_getFamilyOfSocketAddr */
-/*****************************************************************************/
-oslAddrFamily SAL_CALL osl_getFamilyOfSocketAddr(oslSocketAddr pAddr)
-{
- OSL_ASSERT(pAddr);
-
- if (pAddr)
- return FAMILY_FROM_NATIVE(pAddr->m_sockaddr.sa_family);
- else
- return osl_Socket_FamilyInvalid;
-}
-
-/*****************************************************************************/
-/* osl_getInetPortOfSocketAddr */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_getInetPortOfSocketAddr(oslSocketAddr pAddr)
-{
- OSL_ASSERT(pAddr);
- if( pAddr )
- {
- struct sockaddr_in* pSystemInetAddr= (struct sockaddr_in*)&(pAddr->m_sockaddr);
-
- if ( pSystemInetAddr->sin_family == FAMILY_TO_NATIVE(osl_Socket_FamilyInet))
- return ntohs(pSystemInetAddr->sin_port);
- }
- return OSL_INVALID_PORT;
-}
-
-/*****************************************************************************/
-/* osl_setInetPortOfSocketAddr */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_setInetPortOfSocketAddr(oslSocketAddr pAddr, sal_Int32 Port)
-{
- OSL_ASSERT(pAddr);
- if( pAddr )
- {
- struct sockaddr_in* pSystemInetAddr= (struct sockaddr_in*)&(pAddr->m_sockaddr);
- if ( pSystemInetAddr->sin_family == FAMILY_TO_NATIVE(osl_Socket_FamilyInet))
- {
- pSystemInetAddr->sin_port= htons((short)Port);
- return sal_True;
- }
- }
-
- /* this is not a inet-addr => can't set port */
- return sal_False;
-}
-
-/*****************************************************************************/
-/* osl_getHostnameOfSocketAddr */
-/*****************************************************************************/
-oslSocketResult SAL_CALL osl_getHostnameOfSocketAddr(oslSocketAddr Addr, rtl_uString **ustrHostname)
-{
- oslSocketResult Result;
- sal_Char pszHostname[1024];
-
- pszHostname[0] = '\0';
-
- Result = osl_psz_getHostnameOfSocketAddr(Addr,pszHostname,sizeof(pszHostname));
-
- rtl_uString_newFromAscii(ustrHostname,pszHostname);
-
- return Result;
-}
-
-
-oslSocketResult SAL_CALL osl_psz_getHostnameOfSocketAddr(oslSocketAddr pAddr,
- sal_Char *pBuffer, sal_uInt32 BufferSize)
-{
- oslHostAddr pHostAddr= (oslHostAddr )osl_createHostAddrByAddr(pAddr);
-
- if (pHostAddr)
- {
- strncpy(pBuffer, pHostAddr->pHostName, BufferSize);
-
- pBuffer[BufferSize - 1] = '\0';
-
- osl_destroyHostAddr(pHostAddr);
-
- return osl_Socket_Ok;
- }
-
- return osl_Socket_Error;
-}
-
-/*****************************************************************************/
-/* osl_getDottedInetAddrOfSocketAddr */
-/*****************************************************************************/
-oslSocketResult SAL_CALL osl_getDottedInetAddrOfSocketAddr(oslSocketAddr Addr, rtl_uString **ustrDottedInetAddr)
-{
- oslSocketResult Result;
- sal_Char pszDottedInetAddr[1024];
-
- pszDottedInetAddr[0] = '\0';
-
- Result = osl_psz_getDottedInetAddrOfSocketAddr(Addr,pszDottedInetAddr,sizeof(pszDottedInetAddr));
-
- rtl_uString_newFromAscii(ustrDottedInetAddr,pszDottedInetAddr);
-
- return Result;
-
-}
-
-oslSocketResult SAL_CALL osl_psz_getDottedInetAddrOfSocketAddr(oslSocketAddr pAddr,
- sal_Char *pBuffer, sal_uInt32 BufferSize)
-{
- OSL_ASSERT(pAddr);
-
- if( pAddr )
- {
- struct sockaddr_in* pSystemInetAddr = ( struct sockaddr_in * ) &(pAddr->m_sockaddr);
-
- if (pSystemInetAddr->sin_family == FAMILY_TO_NATIVE(osl_Socket_FamilyInet))
- {
- strncpy(pBuffer, inet_ntoa(pSystemInetAddr->sin_addr), BufferSize);
- pBuffer[BufferSize - 1] = '\0';
-
- return osl_Socket_Ok;
- }
- }
-
- return osl_Socket_Error;
-}
-
-/*****************************************************************************/
-/* osl_createSocket */
-/*****************************************************************************/
-oslSocket SAL_CALL osl_createSocket(oslAddrFamily Family,
- oslSocketType Type,
- oslProtocol Protocol)
-{
- int Flags;
- oslSocket pSocket;
-
- /* alloc memory */
- pSocket= __osl_createSocketImpl(OSL_INVALID_SOCKET);
-
- /* create socket */
- pSocket->m_Socket= socket(FAMILY_TO_NATIVE(Family),
- TYPE_TO_NATIVE(Type),
- PROTOCOL_TO_NATIVE(Protocol));
-
- /* creation failed => free memory */
- if(pSocket->m_Socket == OSL_INVALID_SOCKET)
- {
- OSL_TRACE("osl_createSocket failed. Errno: %d; %s\n",
- errno,
- strerror(errno));
-
- __osl_destroySocketImpl((pSocket));
- pSocket= 0;
- }
- else
- {
- /* set close-on-exec flag */
- if ((Flags = fcntl(pSocket->m_Socket, F_GETFD, 0)) != -1)
- {
- Flags |= FD_CLOEXEC;
- if (fcntl(pSocket->m_Socket, F_SETFD, Flags) == -1)
- {
- pSocket->m_nLastError=errno;
- OSL_TRACE("osl_createSocket failed changing socket flags. Errno: %d; %s\n",
- errno,
- strerror(errno));
- }
- }
- else
- {
- pSocket->m_nLastError=errno;
- }
-
-
- pSocket->m_CloseCallback = NULL;
- pSocket->m_CallbackArg = NULL;
- }
-
- return pSocket;
-}
-
-void SAL_CALL osl_acquireSocket(oslSocket pSocket)
-{
- osl_incrementInterlockedCount( &(pSocket->m_nRefCount ) );
-}
-
-void SAL_CALL osl_releaseSocket( oslSocket pSocket )
-{
- if( pSocket && 0 == osl_decrementInterlockedCount( &(pSocket->m_nRefCount) ) )
- {
-#if defined(LINUX)
- if ( pSocket->m_bIsAccepting == sal_True )
- {
- OSL_FAIL("osl_destroySocket : attempt to destroy socket while accepting\n");
- return;
- }
-#endif /* LINUX */
- osl_closeSocket( pSocket );
- __osl_destroySocketImpl( pSocket );
- }
-}
-
-
-
-/*****************************************************************************/
-/* osl_closeSocket */
-/*****************************************************************************/
-void SAL_CALL osl_closeSocket(oslSocket pSocket)
-{
- int nRet;
- int nFD;
-
- /* socket already invalid */
- if(pSocket==0)
- return;
-
- pSocket->m_nLastError=0;
- nFD = pSocket->m_Socket;
-
- if (nFD == OSL_INVALID_SOCKET)
- return;
-
- pSocket->m_Socket = OSL_INVALID_SOCKET;
-
-#if defined(LINUX)
- pSocket->m_bIsInShutdown = sal_True;
-
- if ( pSocket->m_bIsAccepting == sal_True )
- {
- int nConnFD;
- union {
- struct sockaddr aSockAddr;
- struct sockaddr_in aSockAddrIn;
- } s;
- socklen_t nSockLen = sizeof(s.aSockAddr);
-
- nRet = getsockname(nFD, &s.aSockAddr, &nSockLen);
- if ( nRet < 0 )
- {
- OSL_TRACE("getsockname call failed with error: %s", strerror(errno));
- }
-
- if ( s.aSockAddr.sa_family == AF_INET )
- {
- if ( s.aSockAddrIn.sin_addr.s_addr == htonl(INADDR_ANY) )
- {
- s.aSockAddrIn.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
- }
-
- nConnFD = socket(AF_INET, SOCK_STREAM, 0);
- if ( nConnFD < 0 )
- {
- OSL_TRACE("socket call failed with error: %s", strerror(errno));
- }
-
- nRet = connect(nConnFD, &s.aSockAddr, sizeof(s.aSockAddr));
- if ( nRet < 0 )
- {
- OSL_TRACE("connect call failed with error: %s", strerror(errno));
- }
- close(nConnFD);
- }
- pSocket->m_bIsAccepting = sal_False;
- }
-#endif /* LINUX */
-
- /* registrierten Callback ausfuehren */
- if (pSocket->m_CloseCallback != NULL)
- {
- pSocket->m_CloseCallback(pSocket->m_CallbackArg);
- }
-
- nRet=close(nFD);
- if ( nRet != 0 )
- {
- pSocket->m_nLastError=errno;
- OSL_TRACE("closeSocket close error '%s'\n",strerror(errno));
- }
-
- pSocket->m_Socket = OSL_INVALID_SOCKET;
-}
-
-/*****************************************************************************/
-/* osl_getLocalAddrOfSocket */
-/* Note that I rely on the fact that oslSocketAddr and struct sockaddr */
-/* are the same! I don't like it very much but see no other easy way to conceal */
-/* the struct sockaddr from the eyes of the user. */
-/*****************************************************************************/
-oslSocketAddr SAL_CALL osl_getLocalAddrOfSocket(oslSocket pSocket)
-{
- socklen_t AddrLen;
- struct sockaddr Addr;
- oslSocketAddr pAddr;
-
- if (pSocket == NULL) /* ENOTSOCK */
- return ((oslSocketAddr)NULL);
-
- AddrLen= sizeof(struct sockaddr);
-
- if (getsockname(pSocket->m_Socket, &Addr, &AddrLen) == OSL_SOCKET_ERROR)
- return ((oslSocketAddr)NULL);
-
- pAddr = __osl_createSocketAddrFromSystem( &Addr );
- return pAddr;
-}
-
-/*****************************************************************************/
-/* osl_getPeerAddrOfSocket */
-/*****************************************************************************/
-oslSocketAddr SAL_CALL osl_getPeerAddrOfSocket(oslSocket pSocket)
-{
- socklen_t AddrLen;
- struct sockaddr Addr;
-
- OSL_ASSERT(pSocket);
- if ( pSocket == 0 )
- {
- return 0;
- }
-
- pSocket->m_nLastError=0;
- AddrLen= sizeof(struct sockaddr);
-
- if(getpeername(pSocket->m_Socket, &Addr, &AddrLen) == OSL_SOCKET_ERROR)
- {
- pSocket->m_nLastError=errno;
- return 0;
- }
- return __osl_createSocketAddrFromSystem( &Addr );
-}
-
-/*****************************************************************************/
-/* osl_bindAddrToSocket */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_bindAddrToSocket(oslSocket pSocket,
- oslSocketAddr pAddr)
-{
- int nRet;
-
- OSL_ASSERT(pSocket && pAddr );
- if ( pSocket == 0 || pAddr == 0 )
- {
- return sal_False;
- }
-
- pSocket->m_nLastError=0;
-
- nRet = bind(pSocket->m_Socket, &(pAddr->m_sockaddr), sizeof(struct sockaddr));
-
- if ( nRet == OSL_SOCKET_ERROR)
- {
- pSocket->m_nLastError=errno;
- return sal_False;
- }
-
- return sal_True;
-}
-
-
-/*****************************************************************************/
-/* osl_listenOnSocket */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_listenOnSocket(oslSocket pSocket,
- sal_Int32 MaxPendingConnections)
-{
- int nRet;
-
- OSL_ASSERT(pSocket);
- if ( pSocket == 0 )
- {
- return sal_False;
- }
-
- pSocket->m_nLastError=0;
-
- nRet = listen(pSocket->m_Socket,
- MaxPendingConnections == -1 ?
- SOMAXCONN :
- MaxPendingConnections);
- if ( nRet == OSL_SOCKET_ERROR)
- {
- pSocket->m_nLastError=errno;
- return sal_False;
- }
-
- return sal_True;
-}
-
-
-/*****************************************************************************/
-/* osl_connectSocketTo */
-/*****************************************************************************/
-oslSocketResult SAL_CALL osl_connectSocketTo(oslSocket pSocket,
- oslSocketAddr pAddr,
- const TimeValue* pTimeout)
-{
- fd_set WriteSet;
- fd_set ExcptSet;
- int ReadyHandles;
- struct timeval tv;
- oslSocketResult Result= osl_Socket_Ok;
-
- OSL_PRECOND(pSocket, "osl_connectSocketTo(): need a valid socket!\n");
-
- if ( pSocket == 0 )
- {
- return osl_Socket_Error;
- }
-
- pSocket->m_nLastError=0;
-
- if (osl_isNonBlockingMode(pSocket))
- {
- if (connect(pSocket->m_Socket,
- &(pAddr->m_sockaddr),
- sizeof(struct sockaddr)) != OSL_SOCKET_ERROR)
- return osl_Socket_Ok;
- else
- if (errno == EWOULDBLOCK || errno == EINPROGRESS)
- {
- pSocket->m_nLastError=EINPROGRESS;
- return osl_Socket_InProgress;
- }
-
-
- pSocket->m_nLastError=errno;
- OSL_TRACE("can't connect : '%s'",strerror(errno));
- return osl_Socket_Error;
- }
-
- /* set socket temporarily to non-blocking */
- OSL_VERIFY(osl_enableNonBlockingMode(pSocket, sal_True));
-
- /* initiate connect */
- if(connect(pSocket->m_Socket,
- &(pAddr->m_sockaddr),
- sizeof(struct sockaddr)) != OSL_SOCKET_ERROR)
- {
- /* immediate connection */
- osl_enableNonBlockingMode(pSocket, sal_False);
-
- return osl_Socket_Ok;
- }
- else
- {
- /* really an error or just delayed? */
- if (errno != EINPROGRESS)
- {
- pSocket->m_nLastError=errno;
- OSL_TRACE(
- "osl_connectSocketTo(): connect failed: errno: %d (%s)\n",
- errno, strerror(errno));
-
- osl_enableNonBlockingMode(pSocket, sal_False);
- return osl_Socket_Error;
- }
- }
-
-
- /* prepare select set for socket */
- FD_ZERO(&WriteSet);
- FD_ZERO(&ExcptSet);
- FD_SET(pSocket->m_Socket, &WriteSet);
- FD_SET(pSocket->m_Socket, &ExcptSet);
-
- /* prepare timeout */
- if (pTimeout)
- {
- /* divide milliseconds into seconds and microseconds */
- tv.tv_sec= pTimeout->Seconds;
- tv.tv_usec= pTimeout->Nanosec / 1000L;
- }
-
- /* select */
- ReadyHandles= select(pSocket->m_Socket+1,
- 0,
- PTR_FD_SET(WriteSet),
- PTR_FD_SET(ExcptSet),
- (pTimeout) ? &tv : 0);
-
- if (ReadyHandles > 0) /* connected */
- {
- if ( FD_ISSET(pSocket->m_Socket, &WriteSet ) )
- {
- int nErrorCode = 0;
- socklen_t nErrorSize = sizeof( nErrorCode );
-
- int nSockOpt;
-
- nSockOpt = getsockopt ( pSocket->m_Socket, SOL_SOCKET, SO_ERROR,
- &nErrorCode, &nErrorSize );
- if ( (nSockOpt == 0) && (nErrorCode == 0))
- Result = osl_Socket_Ok;
- else
- Result = osl_Socket_Error;
- }
- else
- {
- Result= osl_Socket_Error;
- }
- }
- else if (ReadyHandles < 0) /* error */
- {
- if (errno == EBADF) /* most probably interrupted by close() */
- {
- /* do not access pSockImpl because it is about to be or */
- /* already destroyed */
- return osl_Socket_Interrupted;
- }
- else
- {
- pSocket->m_nLastError=errno;
- Result= osl_Socket_Error;
- }
- }
- else /* timeout */
- {
- pSocket->m_nLastError=errno;
- Result= osl_Socket_TimedOut;
- }
-
- osl_enableNonBlockingMode(pSocket, sal_False);
-
- return Result;
-}
-
-
-/*****************************************************************************/
-/* osl_acceptConnectionOnSocket */
-/*****************************************************************************/
-oslSocket SAL_CALL osl_acceptConnectionOnSocket(oslSocket pSocket,
- oslSocketAddr* ppAddr)
-{
- struct sockaddr Addr;
- int Connection, Flags;
- oslSocket pConnectionSockImpl;
-
- socklen_t AddrLen = sizeof(struct sockaddr);
- OSL_ASSERT(pSocket);
- if ( pSocket == 0 )
- {
- return 0;
- }
-
- pSocket->m_nLastError=0;
-#if defined(LINUX)
- pSocket->m_bIsAccepting = sal_True;
-#endif /* LINUX */
-
- if( ppAddr && *ppAddr )
- {
- osl_destroySocketAddr( *ppAddr );
- *ppAddr = 0;
- }
-
- /* prevent Linux EINTR behaviour */
- do
- {
- Connection = accept(pSocket->m_Socket, &Addr, &AddrLen);
- } while (Connection == -1 && errno == EINTR);
-
-
- /* accept failed? */
- if( Connection == OSL_SOCKET_ERROR )
- {
- pSocket->m_nLastError=errno;
- OSL_TRACE("osl_acceptConnectionOnSocket : accept error '%s'\n",strerror(errno));
-
-#if defined(LINUX)
- pSocket->m_bIsAccepting = sal_False;
-#endif /* LINUX */
- return 0;
- }
-
- OSL_ASSERT(AddrLen == sizeof(struct sockaddr));
-
-
-#if defined(LINUX)
- if ( pSocket->m_bIsInShutdown == sal_True )
- {
- close(Connection);
- OSL_TRACE("osl_acceptConnectionOnSocket : close while accept\n");
- return 0;
- }
-#endif /* LINUX */
-
-
- if(ppAddr)
- {
- *ppAddr= __osl_createSocketAddrFromSystem(&Addr);
- }
-
- /* alloc memory */
- pConnectionSockImpl= __osl_createSocketImpl(OSL_INVALID_SOCKET);
-
- /* set close-on-exec flag */
- if ((Flags = fcntl(Connection, F_GETFD, 0)) != -1)
- {
- Flags |= FD_CLOEXEC;
- if (fcntl(Connection, F_SETFD, Flags) == -1)
- {
- pSocket->m_nLastError=errno;
- OSL_TRACE("osl_acceptConnectionOnSocket failed changing socket flags. Errno: %d (%s)\n",
- errno,
- strerror(errno));
- }
-
- }
-
- pConnectionSockImpl->m_Socket = Connection;
- pConnectionSockImpl->m_nLastError = 0;
- pConnectionSockImpl->m_CloseCallback = NULL;
- pConnectionSockImpl->m_CallbackArg = NULL;
-#if defined(LINUX)
- pConnectionSockImpl->m_bIsAccepting = sal_False;
-
- pSocket->m_bIsAccepting = sal_False;
-#endif /* LINUX */
- return pConnectionSockImpl;
-}
-
-/*****************************************************************************/
-/* osl_receiveSocket */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_receiveSocket(oslSocket pSocket,
- void* pBuffer,
- sal_uInt32 BytesToRead,
- oslSocketMsgFlag Flag)
-{
- int nRead;
-
- OSL_ASSERT(pSocket);
- if ( pSocket == 0 )
- {
- OSL_TRACE("osl_receiveSocket : Invalid socket");
- return -1;
- }
-
- pSocket->m_nLastError=0;
-
- do
- {
- nRead = recv(pSocket->m_Socket,
- (sal_Char*)pBuffer,
- BytesToRead,
- MSG_FLAG_TO_NATIVE(Flag));
- } while ( nRead < 0 && errno == EINTR );
-
- if ( nRead < 0 )
- {
- pSocket->m_nLastError=errno;
- OSL_TRACE("osl_receiveSocket failed : %i '%s'",nRead,strerror(errno));
- }
- else if ( nRead == 0 )
- {
- OSL_TRACE("osl_receiveSocket failed : %i '%s'",nRead,"EOL");
- }
-
- return nRead;
-}
-
-
-/*****************************************************************************/
-/* osl_receiveFromSocket */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_receiveFromSocket(oslSocket pSocket,
- oslSocketAddr pSenderAddr,
- void* pBuffer,
- sal_uInt32 BufferSize,
- oslSocketMsgFlag Flag)
-{
- int nRead;
- struct sockaddr *pSystemSockAddr = 0;
- socklen_t AddrLen = 0;
- if( pSenderAddr )
- {
- AddrLen = sizeof( struct sockaddr );
- pSystemSockAddr = &(pSenderAddr->m_sockaddr);
- }
-
- OSL_ASSERT(pSocket);
- if ( pSocket == 0 )
- {
- OSL_TRACE("osl_receiveFromSocket : Invalid socket");
- return -1;
- }
-
- pSocket->m_nLastError=0;
-
- nRead = recvfrom(pSocket->m_Socket,
- (sal_Char*)pBuffer,
- BufferSize,
- MSG_FLAG_TO_NATIVE(Flag),
- pSystemSockAddr,
- &AddrLen);
-
- if ( nRead < 0 )
- {
- pSocket->m_nLastError=errno;
- OSL_TRACE("osl_receiveFromSocket failed : %i '%s'",nRead,strerror(errno));
- }
- else if ( nRead == 0 )
- {
- OSL_TRACE("osl_receiveSocket failed : %i '%s'",nRead,"EOL");
- }
-
- return nRead;
-}
-
-
-/*****************************************************************************/
-/* osl_sendSocket */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_sendSocket(oslSocket pSocket,
- const void* pBuffer,
- sal_uInt32 BytesToSend,
- oslSocketMsgFlag Flag)
-{
- int nWritten;
-
- OSL_ASSERT(pSocket);
- if ( pSocket == 0 )
- {
- OSL_TRACE("osl_sendSocket : Invalid socket");
- return -1;
- }
-
- pSocket->m_nLastError=0;
-
- do
- {
- nWritten = send(pSocket->m_Socket,
- (sal_Char*)pBuffer,
- BytesToSend,
- MSG_FLAG_TO_NATIVE(Flag));
- } while ( nWritten < 0 && errno == EINTR );
-
-
- if ( nWritten < 0 )
- {
- pSocket->m_nLastError=errno;
- OSL_TRACE("osl_sendSocket failed : %i '%s'",nWritten,strerror(errno));
- }
- else if ( nWritten == 0 )
- {
- OSL_TRACE("osl_sendSocket failed : %i '%s'",nWritten,"EOL");
- }
-
- return nWritten;
-}
-
-/*****************************************************************************/
-/* osl_sendToSocket */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_sendToSocket(oslSocket pSocket,
- oslSocketAddr ReceiverAddr,
- const void* pBuffer,
- sal_uInt32 BytesToSend,
- oslSocketMsgFlag Flag)
-{
- int nWritten;
-
- struct sockaddr *pSystemSockAddr = 0;
- int AddrLen = 0;
- if( ReceiverAddr )
- {
- pSystemSockAddr = &(ReceiverAddr->m_sockaddr);
- AddrLen = sizeof( struct sockaddr );
- }
-
- OSL_ASSERT(pSocket);
- if ( pSocket == 0 )
- {
- OSL_TRACE("osl_sendToSocket : Invalid socket");
- return -1;
- }
-
- pSocket->m_nLastError=0;
-
- /* ReceiverAddr might be 0 when used on a connected socket. */
- /* Then sendto should behave like send. */
-
- nWritten = sendto(pSocket->m_Socket,
- (sal_Char*)pBuffer,
- BytesToSend,
- MSG_FLAG_TO_NATIVE(Flag),
- pSystemSockAddr,
- AddrLen);
-
- if ( nWritten < 0 )
- {
- pSocket->m_nLastError=errno;
- OSL_TRACE("osl_sendToSocket failed : %i '%s'",nWritten,strerror(errno));
- }
- else if ( nWritten == 0 )
- {
- OSL_TRACE("osl_sendToSocket failed : %i '%s'",nWritten,"EOL");
- }
-
- return nWritten;
-}
-
-/*****************************************************************************/
-/* osl_readSocket */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_readSocket (
- oslSocket pSocket, void *pBuffer, sal_Int32 n )
-{
- sal_uInt8 * Ptr = (sal_uInt8 *)pBuffer;
- sal_uInt32 BytesRead= 0;
- sal_uInt32 BytesToRead= n;
-
- OSL_ASSERT( pSocket);
-
- /* loop until all desired bytes were read or an error occurred */
- while (BytesToRead > 0)
- {
- sal_Int32 RetVal;
- RetVal= osl_receiveSocket(pSocket,
- Ptr,
- BytesToRead,
- osl_Socket_MsgNormal);
-
- /* error occurred? */
- if(RetVal <= 0)
- {
- break;
- }
-
- BytesToRead -= RetVal;
- BytesRead += RetVal;
- Ptr += RetVal;
- }
-
- return BytesRead;
-}
-
-/*****************************************************************************/
-/* osl_writeSocket */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_writeSocket(
- oslSocket pSocket, const void *pBuffer, sal_Int32 n )
-{
- /* loop until all desired bytes were send or an error occurred */
- sal_uInt32 BytesSend= 0;
- sal_uInt32 BytesToSend= n;
- sal_uInt8 *Ptr = ( sal_uInt8 * )pBuffer;
-
- OSL_ASSERT( pSocket );
-
- while (BytesToSend > 0)
- {
- sal_Int32 RetVal;
-
- RetVal= osl_sendSocket( pSocket,Ptr,BytesToSend,osl_Socket_MsgNormal);
-
- /* error occurred? */
- if(RetVal <= 0)
- {
- break;
- }
-
- BytesToSend -= RetVal;
- BytesSend += RetVal;
- Ptr += RetVal;
-
- }
- return BytesSend;
-}
-
-/*****************************************************************************/
-/* __osl_socket_poll */
-/*****************************************************************************/
-
-#ifdef HAVE_POLL_H /* poll() */
-
-sal_Bool __osl_socket_poll (
- oslSocket pSocket,
- const TimeValue* pTimeout,
- short nEvent)
-{
- struct pollfd fds;
- int timeout;
- int result;
-
- OSL_ASSERT(0 != pSocket);
- if (0 == pSocket)
- return sal_False; /* EINVAL */
-
- pSocket->m_nLastError = 0;
-
- fds.fd = pSocket->m_Socket;
- fds.events = nEvent;
- fds.revents = 0;
-
- timeout = -1;
- if (pTimeout)
- {
- /* Convert to [ms] */
- timeout = pTimeout->Seconds * 1000;
- timeout += pTimeout->Nanosec / (1000 * 1000);
- }
-
- result = poll (&fds, 1, timeout);
- if (result < 0)
- {
- pSocket->m_nLastError = errno;
- OSL_TRACE("__osl_socket_poll(): poll error: %d (%s)",
- errno, strerror(errno));
- return sal_False;
- }
- if (result == 0)
- {
- /* Timeout */
- return sal_False;
- }
-
- return ((fds.revents & nEvent) == nEvent);
-}
-
-#else /* select() */
-
-sal_Bool __osl_socket_poll (
- oslSocket pSocket,
- const TimeValue* pTimeout,
- short nEvent)
-{
- fd_set fds;
- struct timeval tv;
- int result;
-
- OSL_ASSERT(0 != pSocket);
- if (0 == pSocket)
- return sal_False; /* EINVAL */
-
- pSocket->m_nLastError = 0;
-
- FD_ZERO(&fds);
- FD_SET(pSocket->m_Socket, &fds);
-
- if (pTimeout)
- {
- /* Convert to 'timeval' */
- tv.tv_sec = pTimeout->Seconds;
- tv.tv_usec = pTimeout->Nanosec / 1000;
- }
-
- result = select (
- pSocket->m_Socket + 1,
- (nEvent == POLLIN ) ? PTR_FD_SET(fds) : NULL,
- (nEvent == POLLOUT) ? PTR_FD_SET(fds) : NULL,
- (nEvent == POLLPRI) ? PTR_FD_SET(fds) : NULL,
- (pTimeout) ? &tv : NULL);
-
- if (result < 0)
- {
- pSocket->m_nLastError = errno;
- OSL_TRACE("__osl_socket_poll(): select error: %d (%s)",
- errno, strerror(errno));
- return sal_False;
- }
- if (result == 0)
- {
- /* Timeout */
- return sal_False;
- }
-
- return (FD_ISSET(pSocket->m_Socket, &fds) ? sal_True : sal_False);
-}
-
-#endif /* HAVE_POLL_H */
-
-/*****************************************************************************/
-/* osl_isReceiveReady */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_isReceiveReady (
- oslSocket pSocket, const TimeValue* pTimeout)
-{
- OSL_ASSERT(pSocket);
- if (pSocket == NULL)
- {
- /* ENOTSOCK */
- return sal_False;
- }
-
- return __osl_socket_poll (pSocket, pTimeout, POLLIN);
-}
-
-/*****************************************************************************/
-/* osl_isSendReady */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_isSendReady (
- oslSocket pSocket, const TimeValue* pTimeout)
-{
- OSL_ASSERT(pSocket);
- if (pSocket == NULL)
- {
- /* ENOTSOCK */
- return sal_False;
- }
-
- return __osl_socket_poll (pSocket, pTimeout, POLLOUT);
-}
-
-/*****************************************************************************/
-/* osl_isExceptionPending */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_isExceptionPending (
- oslSocket pSocket, const TimeValue* pTimeout)
-{
- OSL_ASSERT(pSocket);
- if (pSocket == NULL)
- {
- /* ENOTSOCK */
- return sal_False;
- }
-
- return __osl_socket_poll (pSocket, pTimeout, POLLPRI);
-}
-
-/*****************************************************************************/
-/* osl_shutdownSocket */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_shutdownSocket(oslSocket pSocket,
- oslSocketDirection Direction)
-{
- int nRet;
-
- OSL_ASSERT(pSocket);
- if ( pSocket == 0 )
- {
- return sal_False;
- }
-
- pSocket->m_nLastError=0;
-
- nRet=shutdown(pSocket->m_Socket, DIRECTION_TO_NATIVE(Direction));
- if (nRet != 0 )
- {
- pSocket->m_nLastError=errno;
- OSL_TRACE("shutdown error '%s'\n",strerror(errno));
- }
- return (nRet==0);
-}
-
-
-/*****************************************************************************/
-/* osl_getSocketOption */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_getSocketOption(oslSocket pSocket,
- oslSocketOptionLevel Level,
- oslSocketOption Option,
- void* pBuffer,
- sal_uInt32 BufferLen)
-{
- socklen_t nOptLen = (socklen_t) BufferLen;
-
- OSL_ASSERT(pSocket);
- if ( pSocket == 0 )
- {
- return -1;
- }
-
- pSocket->m_nLastError=0;
-
- if(getsockopt(pSocket->m_Socket,
- OPTION_LEVEL_TO_NATIVE(Level),
- OPTION_TO_NATIVE(Option),
- (sal_Char*)pBuffer,
- &nOptLen) == -1)
- {
- pSocket->m_nLastError=errno;
- return -1;
- }
-
- return BufferLen;
-}
-
-/*****************************************************************************/
-/* osl_setSocketOption */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_setSocketOption(oslSocket pSocket,
- oslSocketOptionLevel Level,
- oslSocketOption Option,
- void* pBuffer,
- sal_uInt32 BufferLen)
-{
- int nRet;
-
- OSL_ASSERT(pSocket);
- if ( pSocket == 0 )
- {
- return sal_False;
- }
-
- pSocket->m_nLastError=0;
-
- nRet = setsockopt(pSocket->m_Socket,
- OPTION_LEVEL_TO_NATIVE(Level),
- OPTION_TO_NATIVE(Option),
- (sal_Char*)pBuffer,
- BufferLen);
-
- if ( nRet < 0 )
- {
- pSocket->m_nLastError=errno;
- return sal_False;
- }
-
- return sal_True;
-}
-
-/*****************************************************************************/
-/* osl_enableNonBlockingMode */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_enableNonBlockingMode(oslSocket pSocket,
- sal_Bool On)
-{
- int flags;
- int nRet;
-
- OSL_ASSERT(pSocket);
- if ( pSocket == 0 )
- {
- return sal_False;
- }
-
- pSocket->m_nLastError=0;
-
- flags = fcntl(pSocket->m_Socket, F_GETFL, 0);
-
- if (On)
- flags |= O_NONBLOCK;
- else
- flags &= ~(O_NONBLOCK);
-
- nRet = fcntl(pSocket->m_Socket, F_SETFL, flags);
-
- if ( nRet < 0 )
- {
- pSocket->m_nLastError=errno;
- return sal_False;
- }
-
- return sal_True;
-}
-
-/*****************************************************************************/
-/* osl_isNonBlockingMode */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_isNonBlockingMode(oslSocket pSocket)
-{
- int flags;
-
- OSL_ASSERT(pSocket);
- if ( pSocket == 0 )
- {
- return sal_False;
- }
-
- pSocket->m_nLastError=0;
-
- flags = fcntl(pSocket->m_Socket, F_GETFL, 0);
-
- if (flags == -1 || !(flags & O_NONBLOCK))
- return sal_False;
- else
- return sal_True;
-}
-
-/*****************************************************************************/
-/* osl_getSocketType */
-/*****************************************************************************/
-oslSocketType SAL_CALL osl_getSocketType(oslSocket pSocket)
-{
- int Type=0;
- socklen_t TypeSize= sizeof(Type);
-
- OSL_ASSERT(pSocket);
- if ( pSocket == 0 )
- {
- return osl_Socket_TypeInvalid;
- }
-
- pSocket->m_nLastError=0;
-
- if(getsockopt(pSocket->m_Socket,
- OPTION_LEVEL_TO_NATIVE(osl_Socket_LevelSocket),
- OPTION_TO_NATIVE(osl_Socket_OptionType),
- (sal_Char*)&Type,
- &TypeSize) == -1)
- {
- /* error */
- pSocket->m_nLastError=errno;
- return osl_Socket_TypeInvalid;
- }
-
- return TYPE_FROM_NATIVE(Type);
-
-}
-
-/*****************************************************************************/
-/* osl_getLastSocketErrorDescription */
-/*****************************************************************************/
-void SAL_CALL osl_getLastSocketErrorDescription(oslSocket Socket, rtl_uString **ustrError)
-{
- sal_Char pszError[1024];
-
- pszError[0] = '\0';
-
- osl_psz_getLastSocketErrorDescription(Socket,pszError,sizeof(pszError));
-
- rtl_uString_newFromAscii(ustrError,pszError);
-
- return;
-}
-
-
-void SAL_CALL osl_psz_getLastSocketErrorDescription(oslSocket pSocket, sal_Char* pBuffer, sal_uInt32 BufferSize)
-{
- /* make shure pBuffer will be a zero-terminated string even when strncpy has to cut */
- pBuffer[BufferSize-1]= '\0';
-
- if ( pSocket == 0 )
- {
- strncpy(pBuffer, strerror(EINVAL), BufferSize-1);
- return;
- }
-
- strncpy(pBuffer, strerror(pSocket->m_nLastError), BufferSize-1);
- return;
-}
-
-/*****************************************************************************/
-/* osl_getLastSocketError */
-/*****************************************************************************/
-oslSocketError SAL_CALL osl_getLastSocketError(oslSocket pSocket)
-{
- if ( pSocket == 0 )
- {
- return ERROR_FROM_NATIVE(EINVAL);
- }
-
- return ERROR_FROM_NATIVE(pSocket->m_nLastError);
-}
-
-/*****************************************************************************/
-/* SocketSet */
-/*****************************************************************************/
-typedef struct _TSocketSetImpl
-{
- int m_MaxHandle; /* for select(), the largest descriptor in the set */
- fd_set m_Set; /* the set of descriptors */
-
-} TSocketSetImpl;
-
-/*****************************************************************************/
-/* osl_createSocketSet */
-/*****************************************************************************/
-oslSocketSet SAL_CALL osl_createSocketSet()
-{
- TSocketSetImpl* pSet;
-
- pSet= (TSocketSetImpl*)malloc(sizeof(TSocketSetImpl));
-
- OSL_ASSERT(pSet);
-
- if(pSet)
- {
- pSet->m_MaxHandle= 0;
- FD_ZERO(&pSet->m_Set);
- }
-
- return (oslSocketSet)pSet;
-}
-
-/*****************************************************************************/
-/* osl_destroySocketSet */
-/*****************************************************************************/
-void SAL_CALL osl_destroySocketSet(oslSocketSet Set)
-{
- if(Set)
- free(Set);
-}
-
-/*****************************************************************************/
-/* osl_clearSocketSet */
-/*****************************************************************************/
-void SAL_CALL osl_clearSocketSet(oslSocketSet Set)
-{
- TSocketSetImpl* pSet;
- OSL_ASSERT(Set);
- if ( Set == 0 )
- {
- return;
- }
-
- pSet= (TSocketSetImpl*)Set;
- pSet->m_MaxHandle= 0;
-
- FD_ZERO(&pSet->m_Set);
-}
-
-/*****************************************************************************/
-/* osl_addToSocketSet */
-/*****************************************************************************/
-void SAL_CALL osl_addToSocketSet(oslSocketSet Set, oslSocket pSocket)
-{
- TSocketSetImpl* pSet;
-
- OSL_ASSERT(Set);
- OSL_ASSERT(pSocket);
-
- if ( Set == 0 || pSocket == 0)
- {
- return;
- }
-
- pSet= (TSocketSetImpl*)Set;
-
- /* correct max handle */
- if(pSocket->m_Socket > pSet->m_MaxHandle)
- pSet->m_MaxHandle= pSocket->m_Socket;
- FD_SET(pSocket->m_Socket, &pSet->m_Set);
-
-}
-
-/*****************************************************************************/
-/* osl_removeFromSocketSet */
-/*****************************************************************************/
-void SAL_CALL osl_removeFromSocketSet(oslSocketSet Set, oslSocket pSocket)
-{
- TSocketSetImpl* pSet;
-
- OSL_ASSERT(Set);
- OSL_ASSERT(pSocket);
-
- if ( Set == 0 || pSocket == 0)
- {
- return;
- }
-
- pSet= (TSocketSetImpl*)Set;
-
- /* correct max handle */
- if(pSocket->m_Socket == pSet->m_MaxHandle)
- {
- /* not optimal, since the next used descriptor might be */
- /* much smaller than m_Socket-1, but it will do */
- pSet->m_MaxHandle--;
- if(pSet->m_MaxHandle < 0)
- {
- pSet->m_MaxHandle= 0; /* avoid underflow */
- }
- }
-
- FD_CLR(pSocket->m_Socket, &pSet->m_Set);
-}
-
-/*****************************************************************************/
-/* osl_isInSocketSet */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_isInSocketSet(oslSocketSet Set, oslSocket pSocket)
-{
- TSocketSetImpl* pSet;
-
- OSL_ASSERT(Set);
- OSL_ASSERT(pSocket);
- if ( Set == 0 || pSocket == 0 )
- {
- return sal_False;
- }
-
- pSet= (TSocketSetImpl*)Set;
-
- return (FD_ISSET(pSocket->m_Socket, &pSet->m_Set) != 0);
-}
-
-/*****************************************************************************/
-/* osl_demultiplexSocketEvents */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_demultiplexSocketEvents(oslSocketSet IncomingSet,
- oslSocketSet OutgoingSet,
- oslSocketSet OutOfBandSet,
- const TimeValue* pTimeout)
-{
- int MaxHandle= 0;
- struct timeval tv;
- TSocketSetImpl* pInSet;
- TSocketSetImpl* pOutSet;
- TSocketSetImpl* pOOBSet;
-
- if (pTimeout)
- {
- /* non-blocking call */
- tv.tv_sec = pTimeout->Seconds;
- tv.tv_usec = pTimeout->Nanosec / 1000L;
- }
-
- /* map opaque data to impl-types */
- pInSet= (TSocketSetImpl*)IncomingSet;
- pOutSet= (TSocketSetImpl*)OutgoingSet;
- pOOBSet= (TSocketSetImpl*)OutOfBandSet;
-
- /* get max handle from all sets */
- if (pInSet)
- MaxHandle= pInSet->m_MaxHandle;
-
- if (pOutSet && (pOutSet->m_MaxHandle > MaxHandle))
- MaxHandle= pOutSet->m_MaxHandle;
-
- if (pOOBSet && (pOOBSet->m_MaxHandle > MaxHandle))
- MaxHandle= pOOBSet->m_MaxHandle;
-
- return select(MaxHandle+1,
- pInSet ? PTR_FD_SET(pInSet->m_Set) : 0,
- pOutSet ? PTR_FD_SET(pOutSet->m_Set) : 0,
- pOOBSet ? PTR_FD_SET(pOOBSet->m_Set) : 0,
- pTimeout ? &tv : 0);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/sockimpl.h b/sal/osl/unx/sockimpl.h
deleted file mode 100644
index c4b5eebd9..000000000
--- a/sal/osl/unx/sockimpl.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_SOCKETIMPL_H_
-#define _OSL_SOCKETIMPL_H_
-
-#include <osl/pipe.h>
-#include <osl/socket.h>
-#include <osl/interlck.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef void* (*oslCloseCallback) (void*);
-
-struct oslSocketImpl {
- int m_Socket;
- int m_nLastError;
- oslCloseCallback m_CloseCallback;
- void* m_CallbackArg;
- oslInterlockedCount m_nRefCount;
-#if defined(LINUX)
- sal_Bool m_bIsAccepting;
- sal_Bool m_bIsInShutdown;
-#endif
-};
-
-struct oslSocketAddrImpl
-{
- sal_Int32 m_nRefCount;
- struct sockaddr m_sockaddr;
-};
-
-struct oslPipeImpl {
- int m_Socket;
- sal_Char m_Name[PATH_MAX + 1];
- oslInterlockedCount m_nRefCount;
- sal_Bool m_bClosed;
-#if defined(LINUX)
- sal_Bool m_bIsAccepting;
- sal_Bool m_bIsInShutdown;
-#endif
-};
-
-oslSocket __osl_createSocketImpl(int Socket);
-void __osl_destroySocketImpl(oslSocket pImpl);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/system.c b/sal/osl/unx/system.c
deleted file mode 100644
index da9af6a7c..000000000
--- a/sal/osl/unx/system.c
+++ /dev/null
@@ -1,349 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "system.h"
-
-#ifdef NO_PTHREAD_RTL
-
-static pthread_mutex_t getrtl_mutex = PTHREAD_MUTEX_INITIALIZER;
-
-/* struct passwd differs on some platforms */
-#if !defined(FREEBSD) || (__FreeBSD_version < 601103)
-
-extern int h_errno;
-
-struct hostent *gethostbyname_r(const char *name, struct hostent *result,
- char *buffer, int buflen, int *h_errnop)
-{
- /* buffer layout: name\0
- * array_of_pointer_to_aliases
- * NULL
- * alias1\0...aliasn\0
- * array_of_pointer_to_addresses
- * NULL
- * addr1addr2addr3...addrn
- */
- struct hostent* res;
-
- pthread_mutex_lock(&getrtl_mutex);
-
- if ( (res = gethostbyname(name)) )
- {
- int nname, naliases, naddr_list, naliasesdata, n;
- char **p, **parray, *data;
-
- /* Check buffer size before copying, we want to leave the
- * buffers unmodified in case something goes wrong.
- *
- * Is this required?
- */
-
- nname= strlen(res->h_name)+1;
-
- naliases = naddr_list = naliasesdata = 0;
-
- for ( p = res->h_aliases; *p != NULL; p++) {
- naliases++;
- naliasesdata += strlen(*p)+1;
- }
-
- for ( p = res->h_addr_list; *p != NULL; p++)
- naddr_list++;
-
- if ( nname
- + (naliases+1)*sizeof(char*) + naliasesdata
- + (naddr_list+1)*sizeof(char*) + naddr_list*res->h_length
- <= buflen )
- {
- memcpy(result, res, sizeof(struct hostent));
-
- strcpy(buffer, res->h_name);
- result->h_name = buffer;
- buffer += nname;
-
- parray = (char**)buffer;
- result->h_aliases = parray;
- data = buffer + (naliases+1)*sizeof(char*);
- for ( p = res->h_aliases; *p != NULL; p++) {
- n = strlen(*p)+1;
- *parray++ = data;
- memcpy(data, *p, n);
- data += n;
- }
- *parray = NULL;
- buffer = data;
- parray = (char**)buffer;
- result->h_addr_list = parray;
- data = buffer + (naddr_list+1)*sizeof(char*);
- for ( p = res->h_addr_list; *p != NULL; p++) {
- *parray++ = data;
- memcpy(data, *p, res->h_length);
- data += res->h_length;
- }
- *parray = NULL;
-
- res = result;
- }
- else
- {
- errno = ERANGE;
- res = NULL;
- }
- }
- else
- {
- *h_errnop = h_errno;
- }
-
- pthread_mutex_unlock(&getrtl_mutex);
-
- return res;
-}
-#endif /* !defined(FREEBSD) || (__FreeBSD_version < 601103) */
-
-#if defined(MACOSX)
-/*
- * Add support for resolving Mac native alias files (not the same as unix alias files)
- * returns 0 on success.
- */
-int macxp_resolveAlias(char *path, int buflen)
-{
- FSRef aFSRef;
- OSStatus nErr;
- Boolean bFolder;
- Boolean bAliased;
- char *unprocessedPath = path;
-
- if ( *unprocessedPath == '/' )
- unprocessedPath++;
-
- int nRet = 0;
- while ( !nRet && unprocessedPath && *unprocessedPath )
- {
- unprocessedPath = strchr( unprocessedPath, '/' );
- if ( unprocessedPath )
- *unprocessedPath = '\0';
-
- nErr = noErr;
- bFolder = FALSE;
- bAliased = FALSE;
- if ( FSPathMakeRef( (const UInt8 *)path, &aFSRef, 0 ) == noErr )
- {
- nErr = FSResolveAliasFileWithMountFlags( &aFSRef, TRUE, &bFolder, &bAliased, kResolveAliasFileNoUI );
- if ( nErr == nsvErr )
- {
- errno = ENOENT;
- nRet = -1;
- }
- else if ( nErr == noErr && bAliased )
- {
- char tmpPath[ PATH_MAX ];
- if ( FSRefMakePath( &aFSRef, (UInt8 *)tmpPath, PATH_MAX ) == noErr )
- {
- int nLen = strlen( tmpPath ) + ( unprocessedPath ? strlen( unprocessedPath + 1 ) + 1 : 0 );
- if ( nLen < buflen && nLen < PATH_MAX )
- {
- if ( unprocessedPath )
- {
- int nTmpPathLen = strlen( tmpPath );
- strcat( tmpPath, "/" );
- strcat( tmpPath, unprocessedPath + 1 );
- strcpy( path, tmpPath);
- unprocessedPath = path + nTmpPathLen;
- }
- else if ( !unprocessedPath )
- {
- strcpy( path, tmpPath);
- }
- }
- else
- {
- errno = ENAMETOOLONG;
- nRet = -1;
- }
- }
- }
- }
-
- if ( unprocessedPath )
- *unprocessedPath++ = '/';
- }
-
- return nRet;
-}
-
-#endif /* defined MACOSX */
-
-#endif /* NO_PTHREAD_RTL */
-
-#if (defined (LINUX) && (GLIBC >= 2))
-/* The linux kernel thread implemention, always return the pid of the
- thread subprocess and not of the main process. So we save the main
- pid at startup
-*/
-
-// Directly from libc.so.6, obviously missing from some unistd.h:
-extern __pid_t __getpid(void);
-
-static pid_t pid = -1;
-
-static void savePid(void) __attribute__((constructor));
-
-static void savePid(void)
-{
- if (pid == -1)
- pid = __getpid();
-}
-
-pid_t getpid(void)
-{
- if (pid == -1)
- savePid();
-
- return (pid);
-}
-#endif /* (defined (LINUX) && (GLIBC >= 2)) */
-
-#ifdef NO_PTHREAD_SEMAPHORES
-int sem_init(sem_t* sem, int pshared, unsigned int value)
-{
- (void)pshared;
- pthread_mutex_init(&sem->mutex, PTHREAD_MUTEXATTR_DEFAULT);
- pthread_cond_init(&sem->increased, PTHREAD_CONDATTR_DEFAULT);
-
- sem->value = (int)value;
- return 0;
-}
-
-int sem_destroy(sem_t* sem)
-{
- pthread_mutex_destroy(&sem->mutex);
- pthread_cond_destroy(&sem->increased);
- sem->value = 0;
- return 0;
-}
-
-int sem_wait(sem_t* sem)
-{
- pthread_mutex_lock(&sem->mutex);
-
- while (sem->value <= 0)
- {
- pthread_cond_wait(&sem->increased, &sem->mutex);
- }
-
- sem->value--;
- pthread_mutex_unlock(&sem->mutex);
-
- return 0;
-}
-
-int sem_trywait(sem_t* sem)
-{
- int result = 0;
-
- pthread_mutex_lock(&sem->mutex);
-
- if (sem->value > 0)
- {
- sem->value--;
- }
- else
- {
- errno = EAGAIN;
- result = -1;
- }
-
- pthread_mutex_unlock(&sem->mutex);
-
- return result;
-}
-
-int sem_post(sem_t* sem)
-{
- pthread_mutex_lock(&sem->mutex);
-
- sem->value++;
-
- pthread_mutex_unlock(&sem->mutex);
-
- pthread_cond_signal(&sem->increased);
-
- return 0;
-}
-#endif
-
-#if defined(FREEBSD)
-char *fcvt(double value, int ndigit, int *decpt, int *sign)
-{
- static char ret[256];
- char buf[256],zahl[256],format[256]="%";
- char *v1,*v2;
-
- if (value==0.0) value=1e-30;
-
- if (value<0.0) *sign=1; else *sign=0;
-
- if (value<1.0)
- {
- *decpt=(int)log10(value);
- value*=pow(10.0,1-*decpt);
- ndigit+=*decpt-1;
- if (ndigit<0) ndigit=0;
- }
- else
- {
- *decpt=(int)log10(value)+1;
- }
-
- sprintf(zahl,"%d",ndigit);
- strcat(format,zahl);
- strcat(format,".");
- strcat(format,zahl);
- strcat(format,"f");
-
- sprintf(buf,format,value);
-
- if (ndigit!=0)
- {
- v1=strtok(buf,".");
- v2=strtok(NULL,".");
- strcpy(ret,v1);
- strcat(ret,v2);
- }
- else
- {
- strcpy(ret,buf);
- }
-
- return(ret);
-}
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/system.h b/sal/osl/unx/system.h
deleted file mode 100644
index cc4d583ac..000000000
--- a/sal/osl/unx/system.h
+++ /dev/null
@@ -1,546 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef __OSL_SYSTEM_H__
-#define __OSL_SYSTEM_H__
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <limits.h>
-#include <string.h>
-#include <errno.h>
-#include <stdarg.h>
-
-#include <unistd.h>
-#include <fcntl.h>
-#include <dirent.h>
-#include <signal.h>
-#include <utime.h>
-
-#include <pwd.h>
-
-#include <netdb.h>
-
-#include <sys/stat.h>
-#include <sys/wait.h>
-
-#include <sys/types.h>
-
-/* Make sockets of type AF_UNIX use underlying FS rights */
-#ifdef SOLARIS
-# define _XOPEN_SOURCE 500
-# include <sys/socket.h>
-# undef _XOPEN_SOURCE
-#else
-# include <sys/socket.h>
-#endif
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#ifdef SYSV
-# include <sys/utsname.h>
-#endif
-
-#ifdef LINUX
-# ifndef __USE_GNU
-# define __USE_GNU
-# endif
-
-#if GLIBC >= 2
-# include <shadow.h>
-# include <pthread.h>
-# include <sys/file.h>
-# include <sys/ioctl.h>
-# include <sys/uio.h>
-# include <sys/un.h>
-# include <netinet/tcp.h>
-# include <dlfcn.h>
-# include <endian.h>
-# include <sys/time.h>
-# include <semaphore.h>
-# if __BYTE_ORDER == __LITTLE_ENDIAN
-# define _LITTLE_ENDIAN
-# elif __BYTE_ORDER == __BIG_ENDIAN
-# ifndef _BIG_ENDIAN
-# define _BIG_ENDIAN
-# endif
-# elif __BYTE_ORDER == __PDP_ENDIAN
-# define _PDP_ENDIAN
-# endif
-# define IORESOURCE_TRANSFER_BSD
-# define IOCHANNEL_TRANSFER_BSD_RENO
-# define pthread_testcancel()
-# define NO_PTHREAD_PRIORITY
-# define PTHREAD_SIGACTION pthread_sigaction
-#else
-# include <shadow.h>
-# include <asm/sigcontext.h>
-# include <pthread.h>
-# include <sys/file.h>
-# include <sys/ioctl.h>
-# include <linux/net.h>
-# include <sys/un.h>
-# include <netinet/tcp.h>
-# include <linux/elfcore.h>
-# include <dlfcn.h>
-# include <endian.h>
-# if __BYTE_ORDER == __LITTLE_ENDIAN
-# ifndef _LITTLE_ENDIAN
-# define _LITTLE_ENDIAN
-# endif
-# elif __BYTE_ORDER == __BIG_ENDIAN
-# ifndef _BIG_ENDIAN
-# define _BIG_ENDIAN
-# endif
-# elif __BYTE_ORDER == __PDP_ENDIAN
-# define _PDP_ENDIAN
-# endif
-# define IORESOURCE_TRANSFER_BSD
-# define IOCHANNEL_TRANSFER_BSD_RENO
-# define pthread_testcancel()
-# define NO_PTHREAD_RTL
-# define NO_PTHREAD_PRIORITY
-# define PTHREAD_SIGACTION pthread_sigaction
-#endif
-
-# ifndef ETIME
-# define ETIME ETIMEDOUT
-# endif
-
-#endif
-
-#ifdef ANDROID
-# include <pthread.h>
-# include <sys/file.h>
-# include <sys/ioctl.h>
-# include <sys/uio.h>
-# include <sys/un.h>
-# include <netinet/tcp.h>
-# include <dlfcn.h>
-# include <endian.h>
-# include <sys/time.h>
-# include <semaphore.h>
-# define IORESOURCE_TRANSFER_BSD
-# define IOCHANNEL_TRANSFER_BSD_RENO
-# define pthread_testcancel()
-# define NO_PTHREAD_PRIORITY
-#endif
-
-#ifdef NETBSD
-# include <sys/param.h>
-# ifndef ETIME
-# define ETIME ETIMEDOUT
-# endif
-# define _POSIX_THREAD_SYSCALL_SOFT 1
-# include <pthread.h>
-# include <netdb.h>
-# include <sys/sem.h>
-# include <sys/exec.h>
-# include <sys/filio.h>
-# include <sys/ioctl.h>
-# include <sys/time.h>
-# include <sys/un.h>
-# include <netinet/tcp.h>
-# include <dlfcn.h>
-# include <machine/endian.h>
-# if BYTE_ORDER == LITTLE_ENDIAN
-# define _LITTLE_ENDIAN_OO
-# elif BYTE_ORDER == BIG_ENDIAN
-# define _BIG_ENDIAN_OO
-# elif BYTE_ORDER == PDP_ENDIAN
-# define _PDP_ENDIAN_OO
-# endif
-# define IORESOURCE_TRANSFER_BSD
-# define IOCHANNEL_TRANSFER_BSD_RENO
-# define pthread_testcancel()
-# define NO_PTHREAD_PRIORITY
-# define NO_PTHREAD_SEMAPHORES
-# define NO_PTHREAD_RTL
-# define PTHREAD_SIGACTION pthread_sigaction
-#endif
-
-#ifdef FREEBSD
-# define ETIME ETIMEDOUT
-# include <pthread.h>
-# include <sys/sem.h>
-# include <semaphore.h>
-# include <dlfcn.h>
-# include <sys/filio.h>
-# include <sys/ioctl.h>
-# include <sys/param.h>
-# include <sys/time.h>
-# include <sys/uio.h>
-# include <sys/exec.h>
-# include <vm/vm.h>
-# include <vm/vm_param.h>
-# include <vm/pmap.h>
-# include <vm/swap_pager.h>
-# include <sys/un.h>
-# include <netinet/tcp.h>
-# define IORESOURCE_TRANSFER_BSD
-# include <machine/endian.h>
-#if __FreeBSD_version < 500000
-# if BYTE_ORDER == LITTLE_ENDIAN
-# define _LITTLE_ENDIAN
-# elif BYTE_ORDER == BIG_ENDIAN
-# define _BIG_ENDIAN
-# elif BYTE_ORDER == PDP_ENDIAN
-# define _PDP_ENDIAN
-# endif
-#endif
-# define NO_PTHREAD_RTL
-#endif
-
-#ifdef OPENBSD
-# define ETIME ETIMEDOUT
-# define _POSIX_THREAD_SYSCALL_SOFT 1
-# include <pthread.h>
-# include <sys/sem.h>
-# include <semaphore.h>
-# include <dlfcn.h>
-# include <sys/filio.h>
-# include <sys/ioctl.h>
-# include <sys/param.h>
-# include <sys/time.h>
-# include <sys/uio.h>
-# include <sys/exec.h>
-# include <sys/un.h>
-# include <netinet/tcp.h>
-# define IORESOURCE_TRANSFER_BSD
-# include <machine/endian.h>
-# define PTR_SIZE_T(s) ((size_t *)&(s))
-# define IORESOURCE_TRANSFER_BSD
-# define IOCHANNEL_TRANSFER_BSD_RENO
-# define pthread_testcancel()
-# define NO_PTHREAD_PRIORITY
-# define NO_PTHREAD_RTL
-# define PTHREAD_SIGACTION pthread_sigaction
-#endif
-
-#ifdef DRAGONFLY
-# define ETIME ETIMEDOUT
-# include <pthread.h>
-# include <sys/sem.h>
-# include <semaphore.h>
-# include <dlfcn.h>
-# include <sys/filio.h>
-# include <sys/ioctl.h>
-# include <sys/param.h>
-# include <sys/time.h>
-# include <sys/uio.h>
-# include <sys/exec.h>
-# include <sys/un.h>
-# include <netinet/tcp.h>
-# include <machine/endian.h>
-# define IORESOURCE_TRANSFER_BSD
-# define IOCHANNEL_TRANSFER_BSD_RENO
-#endif
-
-#ifdef AIX
-# define AF_IPX -1
-# include <strings.h>
-# include <pthread.h>
-# include <dlfcn.h>
-# include <sys/time.h>
-# include <sys/un.h>
-# include <netinet/tcp.h>
-# include <sys/machine.h>
-# if BYTE_ORDER == LITTLE_ENDIAN
-# ifndef _LITTLE_ENDIAN
-# define _LITTLE_ENDIAN
-# endif
-# elif BYTE_ORDER == BIG_ENDIAN
-# ifndef _BIG_ENDIAN
-# define _BIG_ENDIAN
-# endif
-# elif BYTE_ORDER == PDP_ENDIAN
-# define _PDP_ENDIAN
-# endif
-# define SLEEP_TIMESPEC(timespec) nsleep(&timespec, 0)
-# define LIBPATH "LIBPATH"
-# define NO_PTHREAD_SEMAPHORES
-#endif
-
-#ifdef SOLARIS
-# include <shadow.h>
-# include <sys/un.h>
-# include <stropts.h>
-# include <pthread.h>
-# include <semaphore.h>
-# include <netinet/tcp.h>
-# include <sys/filio.h>
-# include <dlfcn.h>
-# include <sys/isa_defs.h>
-# define IORESOURCE_TRANSFER_SYSV
-# define IOCHANNEL_TRANSFER_BSD
-# define LIBPATH "LD_LIBRARY_PATH"
-#endif
-
-#ifdef MACOSX
-#define __OPENTRANSPORTPROVIDERS__ // these are already defined
-#define TimeValue CFTimeValue // Do not conflict with TimeValue in sal/inc/osl/time.h
-#include <Carbon/Carbon.h>
-#undef TimeValue
-# ifndef ETIME
-# define ETIME ETIMEDOUT
-# endif
-# include <dlfcn.h>
-# include <pthread.h>
-# include <sys/file.h>
-# include <sys/ioctl.h>
-# include <sys/uio.h>
-# include <sys/un.h>
-# include <netinet/tcp.h>
-# include <machine/endian.h>
-# include <sys/time.h>
-# include <sys/semaphore.h>
-/* fixme are premac and postmac still needed here? */
-# include <premac.h>
-# include <mach-o/dyld.h>
-# include <postmac.h>
-# if BYTE_ORDER == LITTLE_ENDIAN
-# ifndef _LITTLE_ENDIAN
-# define _LITTLE_ENDIAN
-# endif
-# elif BYTE_ORDER == BIG_ENDIAN
-# ifndef _BIG_ENDIAN
-# define _BIG_ENDIAN
-# endif
-# elif BYTE_ORDER == PDP_ENDIAN
-# ifndef _PDP_ENDIAN
-# define _PDP_ENDIAN
-# endif
-# endif
-# define IOCHANNEL_TRANSFER_BSD_RENO
-# define NO_PTHREAD_RTL
-/* for NSGetArgc/Argv/Environ */
-# include <crt_externs.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
-int macxp_resolveAlias(char *path, int buflen);
-#ifdef __cplusplus
-}
-#endif
-#endif
-
-#ifdef IOS
-# ifndef ETIME
-# define ETIME ETIMEDOUT
-# endif
-# include <dlfcn.h>
-# include <pthread.h>
-# include <sys/file.h>
-# include <sys/ioctl.h>
-# include <sys/uio.h>
-# include <sys/un.h>
-# include <netinet/tcp.h>
-# include <machine/endian.h>
-# include <sys/time.h>
-# include <sys/semaphore.h>
-# if BYTE_ORDER == LITTLE_ENDIAN
-# ifndef _LITTLE_ENDIAN
-# define _LITTLE_ENDIAN
-# endif
-# elif BYTE_ORDER == BIG_ENDIAN
-# ifndef _BIG_ENDIAN
-# define _BIG_ENDIAN
-# endif
-# elif BYTE_ORDER == PDP_ENDIAN
-# ifndef _PDP_ENDIAN
-# define _PDP_ENDIAN
-# endif
-# endif
-# define IOCHANNEL_TRANSFER_BSD_RENO
-# define NO_PTHREAD_RTL
-#endif
-
-#if !defined(_WIN32) && \
- !defined(LINUX) && !defined(NETBSD) && !defined(FREEBSD) && \
- !defined(AIX) && \
- !defined(SOLARIS) && !defined(MACOSX) && \
- !defined(OPENBSD) && !defined(DRAGONFLY) && \
- !defined(IOS) && !defined(ANDROID)
-# error "Target platform not specified!"
-#endif
-
-#if defined(NETBSD)
-#if defined _LITTLE_ENDIAN_OO
-# define _OSL_BIGENDIAN
-#elif defined _BIG_ENDIAN_OO
-# define _OSL_LITENDIAN
-#else
-# error undetermined endianess
-#endif
-#else
-#if defined _LITTLE_ENDIAN
-# define _OSL_BIGENDIAN
-#elif defined _BIG_ENDIAN
-# define _OSL_LITENDIAN
-#else
-# error undetermined endianess
-#endif
-#endif
-
-#ifndef PTR_FD_SET
-# define PTR_FD_SET(s) (&(s))
-#endif
-
-#ifndef NORMALIZE_TIMESPEC
-# define NORMALIZE_TIMESPEC(timespec) \
- timespec . tv_sec += timespec . tv_nsec / 1000000000; \
- timespec . tv_nsec %= 1000000000;
-#endif
-
-#ifndef SET_TIMESPEC
-# define SET_TIMESPEC(timespec, sec, nsec) \
- timespec . tv_sec = (sec); \
- timespec . tv_nsec = (nsec); \
- NORMALIZE_TIMESPEC(timespec);
-#endif
-
-#ifndef SLEEP_TIMESPEC
-# define SLEEP_TIMESPEC(timespec) nanosleep(&timespec, 0)
-#endif
-
-#ifndef INIT_GROUPS
-# define INIT_GROUPS(name, gid) ((setgid((gid)) == 0) && (initgroups((name), (gid)) == 0))
-#endif
-
-#ifndef PTHREAD_VALUE
-# define PTHREAD_VALUE(t) (t)
-#endif
-#ifndef PTHREAD_NONE
-# if (__GNUC__ < 4) && !defined(MACOSX)
-extern pthread_t _pthread_none_;
-# endif
-# define PTHREAD_NONE _pthread_none_
-# ifndef PTHREAD_NONE_INIT
-# define PTHREAD_NONE_INIT ((pthread_t)-1)
-# endif
-#endif
-
-#ifndef PTHREAD_ATTR_DEFAULT
-# define PTHREAD_ATTR_DEFAULT NULL
-#endif
-#ifndef PTHREAD_MUTEXATTR_DEFAULT
-# define PTHREAD_MUTEXATTR_DEFAULT NULL
-#endif
-#ifndef PTHREAD_CONDATTR_DEFAULT
-# define PTHREAD_CONDATTR_DEFAULT NULL
-#endif
-
-#ifndef PTHREAD_SIGACTION
-# define PTHREAD_SIGACTION sigaction
-#endif
-
-#ifndef STAT_PARENT
-# define STAT_PARENT lstat
-#endif
-
-/* socket options which might not be defined on all unx flavors */
-#ifndef SO_ACCEPTCONN
-# define SO_ACCEPTCONN 0
-#endif
-#ifndef SO_SNDLOWAT
-# define SO_SNDLOWAT 0
-#endif
-#ifndef SO_RCVLOWAT
-# define SO_RCVLOWAT 0
-#endif
-#ifndef SO_SNDTIMEO
-# define SO_SNDTIMEO 0
-#endif
-#ifndef SO_RCVTIMEO
-# define SO_RCVTIMEO 0
-#endif
-#ifndef SO_USELOOPBACK
-# define SO_USELOOPBACK 0
-#endif
-#ifndef MSG_MAXIOVLEN
-# define MSG_MAXIOVLEN 0
-#endif
-
-/* BEGIN HACK */
-/* dummy define and declarations for IPX should be replaced by */
-/* original ipx headers when these are available for this platform */
-
-#ifndef SA_FAMILY_DECL
-# define SA_FAMILY_DECL short sa_family
-#endif
-
-typedef struct sockaddr_ipx {
- SA_FAMILY_DECL;
- char sa_netnum[4];
- char sa_nodenum[6];
- unsigned short sa_socket;
-} SOCKADDR_IPX;
-
-#define NSPROTO_IPX 1000
-#define NSPROTO_SPX 1256
-#define NSPROTO_SPXII 1257
-
-/* END HACK */
-
-#ifdef NO_PTHREAD_SEMAPHORES
-
-typedef struct
-{
- pthread_mutex_t mutex;
- pthread_cond_t increased;
- int value;
-} sem_t;
-extern int sem_init(sem_t* sem, int pshared, unsigned int value);
-extern int sem_destroy(sem_t* sem);
-extern int sem_wait(sem_t* sem);
-extern int sem_trywait(sem_t* sem);
-extern int sem_post(sem_t* sem);
-
-#endif
-
-#ifdef NO_PTHREAD_RTL
-#if !defined FREEBSD || (__FreeBSD_version < 500112)
-#if !defined NETBSD
-struct passwd *getpwent_r(struct passwd *pwd, char *buffer, int buflen);
-#endif
-extern struct spwd *getspnam_r(const char *name, struct spwd *result,
- char *buffer, int buflen);
-
-struct tm *localtime_r(const time_t *timep, struct tm *buffer);
-struct tm *gmtime_r(const time_t *timep, struct tm *buffer);
-#endif /* !defined FREEBSD || (__FreeBSD_version < 500112) */
-#if !defined(FREEBSD) || (__FreeBSD_version < 601103)
-struct hostent *gethostbyname_r(const char *name, struct hostent *result,
- char *buffer, int buflen, int *h_errnop);
-#endif /* !defined(FREEBSD) || (__FreeBSD_version < 601103) */
-#endif
-
-#endif /* __OSL_SYSTEM_H__ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/tempfile.c b/sal/osl/unx/tempfile.c
deleted file mode 100644
index 64ce56b3d..000000000
--- a/sal/osl/unx/tempfile.c
+++ /dev/null
@@ -1,358 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/*****************************************************************/
-/* Includes */
-/*****************************************************************/
-
-#include <stdio.h>
-#if defined(NETBSD)
-#include <paths.h>
-#endif
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include "system.h"
-#include <osl/file.h>
-#include <osl/thread.h>
-#include <rtl/ustrbuf.h>
-#include <osl/diagnose.h>
-#include <sal/macros.h>
-
-#ifndef _FILE_URL_H_
-#include "file_url.h"
-#endif
-
-oslFileError SAL_CALL osl_getTempDirURL( rtl_uString** pustrTempDir )
-{
- oslFileError error;
- /* described in environ(7) */
- const char *pValue = getenv( "TMPDIR" );
-
- if ( !pValue )
- pValue = getenv( "TEMP" );
-
- if ( !pValue )
- pValue = getenv( "TMP" );
-
- if ( !pValue )
- pValue = "/tmp";
-
- rtl_uString *ustrTempPath = NULL;
-
- rtl_string2UString( &ustrTempPath, pValue, strlen( pValue ), osl_getThreadTextEncoding(), OSTRING_TO_OUSTRING_CVTFLAGS );
- OSL_ASSERT(ustrTempPath != NULL);
- error = osl_getFileURLFromSystemPath( ustrTempPath, pustrTempDir );
- rtl_uString_release( ustrTempPath );
-
- return error;
-}
-
-/******************************************************************
- * Generates a random unique file name. We're using the scheme
- * from the standard c-lib function mkstemp to generate a more
- * or less random unique file name
- *
- * @param rand_name
- * receives the random name
- ******************************************************************/
-
-static const char LETTERS[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
-static const int COUNT_OF_LETTERS = SAL_N_ELEMENTS(LETTERS) - 1;
-
-#define RAND_NAME_LENGTH 6
-
-static void osl_gen_random_name_impl_(rtl_uString** rand_name)
-{
- static uint64_t value;
-
- char buffer[RAND_NAME_LENGTH];
- struct timeval tv;
- uint64_t v;
- int i;
-
- gettimeofday(&tv, NULL);
-
- value += ((uint64_t)tv.tv_usec << 16) ^ tv.tv_sec ^ getpid();
-
- v = value;
-
- for (i = 0; i < RAND_NAME_LENGTH; i++)
- {
- buffer[i] = LETTERS[v % COUNT_OF_LETTERS];
- v /= COUNT_OF_LETTERS;
- }
-
- rtl_string2UString(
- rand_name,
- buffer,
- RAND_NAME_LENGTH,
- RTL_TEXTENCODING_ASCII_US,
- OSTRING_TO_OUSTRING_CVTFLAGS);
- OSL_ASSERT(*rand_name != NULL);
-}
-
-/*****************************************************************
- * Helper function
- * Either use the directory provided or the result of
- * osl_getTempDirUrl and return it as system path and file url
- ****************************************************************/
-
-static oslFileError osl_setup_base_directory_impl_(
- rtl_uString* pustrDirectoryURL,
- rtl_uString** ppustr_base_dir)
-{
- rtl_uString* dir_url = 0;
- rtl_uString* dir = 0;
- oslFileError error = osl_File_E_None;
-
- if (pustrDirectoryURL)
- rtl_uString_assign(&dir_url, pustrDirectoryURL);
- else
- error = osl_getTempDirURL(&dir_url);
-
- if (osl_File_E_None == error)
- {
- error = osl_getSystemPathFromFileURL_Ex(dir_url, &dir, FURL_DENY_RELATIVE);
- rtl_uString_release(dir_url);
- }
-
- if (osl_File_E_None == error)
- {
- rtl_uString_assign(ppustr_base_dir, dir);
- rtl_uString_release(dir);
- }
-
- return error;
-}
-
-/*****************************************************************
- * osl_setup_createTempFile_impl
- * validate input parameter, setup variables
- ****************************************************************/
-
- static oslFileError osl_setup_createTempFile_impl_(
- rtl_uString* pustrDirectoryURL,
- oslFileHandle* pHandle,
- rtl_uString** ppustrTempFileURL,
- rtl_uString** ppustr_base_dir,
- sal_Bool* b_delete_on_close)
- {
- oslFileError osl_error;
-
- OSL_PRECOND(((0 != pHandle) || (0 != ppustrTempFileURL)), "Invalid parameter!");
-
- if ((0 == pHandle) && (0 == ppustrTempFileURL))
- {
- osl_error = osl_File_E_INVAL;
- }
- else
- {
- osl_error = osl_setup_base_directory_impl_(
- pustrDirectoryURL, ppustr_base_dir);
-
- *b_delete_on_close = (0 == ppustrTempFileURL);
- }
-
- return osl_error;
- }
-
-/*****************************************************************
- * Create a unique file in the specified directory and return
- * it's name
- ****************************************************************/
-
-static oslFileError osl_create_temp_file_impl_(
- const rtl_uString* pustr_base_directory,
- oslFileHandle* file_handle,
- rtl_uString** ppustr_temp_file_name)
-{
- rtl_uString* rand_name = 0;
- sal_uInt32 len_base_dir = 0;
- rtl_uString* tmp_file_path = 0;
- rtl_uString* tmp_file_url = 0;
- sal_Int32 capacity = 0;
- oslFileError osl_error = osl_File_E_None;
- sal_Int32 offset_file_name;
- const sal_Unicode* puchr;
-
- OSL_PRECOND(pustr_base_directory, "Invalid Parameter");
- OSL_PRECOND(file_handle, "Invalid Parameter");
- OSL_PRECOND(ppustr_temp_file_name, "Invalid Parameter");
-
- len_base_dir = rtl_uString_getLength(pustr_base_directory);
-
- rtl_uStringbuffer_newFromStr_WithLength(
- &tmp_file_path,
- rtl_uString_getStr((rtl_uString*)pustr_base_directory),
- len_base_dir);
-
- rtl_uStringbuffer_ensureCapacity(
- &tmp_file_path,
- &capacity,
- (len_base_dir + 1 + RAND_NAME_LENGTH));
-
- offset_file_name = len_base_dir;
-
- puchr = rtl_uString_getStr(tmp_file_path);
-
- /* ensure that the last character is a '/' */
-
- if ((sal_Unicode)'/' != puchr[len_base_dir - 1])
- {
- rtl_uStringbuffer_insert_ascii(
- &tmp_file_path,
- &capacity,
- len_base_dir,
- "/",
- 1);
-
- offset_file_name++;
- }
-
- while(1) /* try until success */
- {
- osl_gen_random_name_impl_(&rand_name);
-
- rtl_uStringbuffer_insert(
- &tmp_file_path,
- &capacity,
- offset_file_name,
- rtl_uString_getStr(rand_name),
- rtl_uString_getLength(rand_name));
-
- osl_error = osl_getFileURLFromSystemPath(
- tmp_file_path, &tmp_file_url);
-
- if (osl_File_E_None == osl_error)
- {
- /* RW permission for the user only! */
- mode_t old_mode = umask(077);
-
- osl_error = osl_openFile(
- tmp_file_url,
- file_handle,
- osl_File_OpenFlag_Read |
- osl_File_OpenFlag_Write |
- osl_File_OpenFlag_Create);
-
- umask(old_mode);
- }
-
- /* in case of error osl_File_E_EXIST we simply try again else we give up */
-
- if ((osl_File_E_None == osl_error) || (osl_error != osl_File_E_EXIST))
- {
- if (rand_name)
- rtl_uString_release(rand_name);
-
- if (tmp_file_url)
- rtl_uString_release(tmp_file_url);
-
- break;
- }
- } /* while(1) */
-
- if (osl_File_E_None == osl_error)
- rtl_uString_assign(ppustr_temp_file_name, tmp_file_path);
-
- if (tmp_file_path)
- rtl_uString_release(tmp_file_path);
-
- return osl_error;
-}
-
-/*****************************************************************
- * osl_createTempFile
- *****************************************************************/
-
-oslFileError SAL_CALL osl_createTempFile(
- rtl_uString* pustrDirectoryURL,
- oslFileHandle* pHandle,
- rtl_uString** ppustrTempFileURL)
-{
- rtl_uString* base_directory = 0;
- rtl_uString* temp_file_name = 0;
- oslFileHandle temp_file_handle;
- sal_Bool b_delete_on_close;
- oslFileError osl_error;
-
- osl_error = osl_setup_createTempFile_impl_(
- pustrDirectoryURL,
- pHandle,
- ppustrTempFileURL,
- &base_directory,
- &b_delete_on_close);
-
- if (osl_File_E_None != osl_error)
- return osl_error;
-
- osl_error = osl_create_temp_file_impl_(
- base_directory, &temp_file_handle, &temp_file_name);
-
- if (osl_File_E_None == osl_error)
- {
- rtl_uString* temp_file_url = 0;
-
- /* assuming this works */
- osl_getFileURLFromSystemPath(temp_file_name, &temp_file_url);
-
- if (b_delete_on_close)
- {
- osl_error = osl_removeFile(temp_file_url);
-
- if (osl_File_E_None == osl_error)
- *pHandle = temp_file_handle;
- else
- osl_closeFile(temp_file_handle);
- }
- else
- {
- if (pHandle)
- *pHandle = temp_file_handle;
- else
- osl_closeFile(temp_file_handle);
-
- rtl_uString_assign(ppustrTempFileURL, temp_file_url);
- }
-
- if (temp_file_url)
- rtl_uString_release(temp_file_url);
-
- if (temp_file_name)
- rtl_uString_release(temp_file_name);
- }
-
- if (base_directory)
- rtl_uString_release(base_directory);
-
- return osl_error;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/thread.c b/sal/osl/unx/thread.c
deleted file mode 100644
index b11edb0e2..000000000
--- a/sal/osl/unx/thread.c
+++ /dev/null
@@ -1,1115 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "system.h"
-#include <string.h>
-#if defined(OPENBSD)
-#include <sched.h>
-#endif
-#include <osl/diagnose.h>
-#include <osl/thread.h>
-#include <osl/nlsupport.h>
-#include <rtl/textenc.h>
-#include <rtl/alloc.h>
-#include <sal/macros.h>
-
-#if defined LINUX
-#include <sys/prctl.h>
-#ifndef PR_SET_NAME
-#define PR_SET_NAME 15
-#endif
-#endif
-
-/****************************************************************************
- * @@@ TODO @@@
- *
- * (1) 'osl_thread_priority_init_Impl()'
- * - insane assumption that initializing caller is main thread
- * - use _POSIX_THREAD_PRIORITY_SCHEDULING, not NO_PTHREAD_PRIORITY (?)
- * - POSIX doesn't require defined prio's for SCHED_OTHER (!)
- * - use SCHED_RR instead of SCHED_OTHER for defined behaviour (?)
- * (2) 'oslThreadIdentifier' and '{insert|remove|lookup}ThreadId()'
- * - cannot reliably be applied to 'alien' threads;
- * - memory leak for 'alien' thread 'HashEntry's;
- * - use 'PTHREAD_VALUE(pthread_t)' as identifier instead (?)
- * - if yes, change 'oslThreadIdentifier' to 'intptr_t' or similar
- * (3) 'oslSigAlarmHandler()' (#71232#)
- * - [Under Solaris we get SIGALRM in e.g. pthread_join which terminates
- * the process. So we initialize our signal handling module and do
- * register a SIGALRM Handler which catches and ignores it]
- * - should this still happen, 'signal.c' needs to be fixed instead.
- *
- ****************************************************************************/
-
-/*****************************************************************************/
-/* Internal data structures and functions */
-/*****************************************************************************/
-
-#define THREADIMPL_FLAGS_TERMINATE 0x00001
-#define THREADIMPL_FLAGS_STARTUP 0x00002
-#define THREADIMPL_FLAGS_SUSPENDED 0x00004
-#define THREADIMPL_FLAGS_ACTIVE 0x00008
-#define THREADIMPL_FLAGS_ATTACHED 0x00010
-#define THREADIMPL_FLAGS_DESTROYED 0x00020
-
-typedef struct osl_thread_impl_st
-{
- pthread_t m_hThread;
- sal_uInt16 m_Ident; /* @@@ see TODO @@@ */
- short m_Flags;
- oslWorkerFunction m_WorkerFunction;
- void* m_pData;
- pthread_mutex_t m_Lock;
- pthread_cond_t m_Cond;
-} Thread_Impl;
-
-struct osl_thread_priority_st
-{
- int m_Highest;
- int m_Above_Normal;
- int m_Normal;
- int m_Below_Normal;
- int m_Lowest;
-};
-
-#define OSL_THREAD_PRIORITY_INITIALIZER { 127, 96, 64, 32, 0 }
-static void osl_thread_priority_init_Impl (void);
-
-struct osl_thread_textencoding_st
-{
- pthread_key_t m_key; /* key to store thread local text encoding */
- rtl_TextEncoding m_default; /* the default text encoding */
-};
-
-#define OSL_THREAD_TEXTENCODING_INITIALIZER { 0, RTL_TEXTENCODING_DONTKNOW }
-static void osl_thread_textencoding_init_Impl (void);
-
-struct osl_thread_global_st
-{
- pthread_once_t m_once;
- struct osl_thread_priority_st m_priority;
- struct osl_thread_textencoding_st m_textencoding;
-};
-
-static struct osl_thread_global_st g_thread =
-{
- PTHREAD_ONCE_INIT,
- OSL_THREAD_PRIORITY_INITIALIZER,
- OSL_THREAD_TEXTENCODING_INITIALIZER
-};
-
-static void osl_thread_init_Impl (void);
-
-static Thread_Impl* osl_thread_construct_Impl (void);
-static void osl_thread_destruct_Impl (Thread_Impl ** ppImpl);
-
-static void* osl_thread_start_Impl (void * pData);
-static void osl_thread_cleanup_Impl (void * pData);
-
-static oslThread osl_thread_create_Impl (
- oslWorkerFunction pWorker, void * pThreadData, short nFlags);
-
-static void osl_thread_join_cleanup_Impl (void * opaque);
-static void osl_thread_wait_cleanup_Impl (void * opaque);
-
-/* @@@ see TODO @@@ */
-static sal_uInt16 insertThreadId (pthread_t hThread);
-static sal_uInt16 lookupThreadId (pthread_t hThread);
-static void removeThreadId (pthread_t hThread);
-
-/*****************************************************************************/
-/* osl_thread_init_Impl */
-/*****************************************************************************/
-static void osl_thread_init_Impl (void)
-{
- osl_thread_priority_init_Impl();
- osl_thread_textencoding_init_Impl();
-}
-
-/*****************************************************************************/
-/* osl_thread_join_cleanup_Impl */
-/*****************************************************************************/
-static void osl_thread_join_cleanup_Impl (void * opaque)
-{
- pthread_t hThread = (pthread_t)(opaque);
- pthread_detach (hThread);
-}
-
-/*****************************************************************************/
-/* osl_thread_wait_cleanup_Impl */
-/*****************************************************************************/
-static void osl_thread_wait_cleanup_Impl (void * opaque)
-{
- pthread_mutex_t * pMutex = (pthread_mutex_t*)(opaque);
- pthread_mutex_unlock (pMutex);
-}
-
-/*****************************************************************************/
-/* osl_thread_construct_Impl */
-/*****************************************************************************/
-Thread_Impl* osl_thread_construct_Impl (void)
-{
- Thread_Impl* pImpl = malloc (sizeof(Thread_Impl));
- if (pImpl)
- {
- memset (pImpl, 0, sizeof(Thread_Impl));
-
- pthread_mutex_init (&(pImpl->m_Lock), PTHREAD_MUTEXATTR_DEFAULT);
- pthread_cond_init (&(pImpl->m_Cond), PTHREAD_CONDATTR_DEFAULT);
- }
- return (pImpl);
-}
-
-/*****************************************************************************/
-/* osl_thread_destruct_Impl */
-/*****************************************************************************/
-static void osl_thread_destruct_Impl (Thread_Impl ** ppImpl)
-{
- OSL_ASSERT(ppImpl);
- if (*ppImpl)
- {
- pthread_cond_destroy (&((*ppImpl)->m_Cond));
- pthread_mutex_destroy (&((*ppImpl)->m_Lock));
-
- free (*ppImpl);
- (*ppImpl) = 0;
- }
-}
-
-/*****************************************************************************/
-/* osl_thread_cleanup_Impl */
-/*****************************************************************************/
-static void osl_thread_cleanup_Impl (void* pData)
-{
- pthread_t thread;
- int attached;
- int destroyed;
- Thread_Impl* pImpl= (Thread_Impl*)pData;
-
- pthread_mutex_lock (&(pImpl->m_Lock));
-
- thread = pImpl->m_hThread;
- attached = (pImpl->m_Flags & THREADIMPL_FLAGS_ATTACHED) != 0;
- destroyed = (pImpl->m_Flags & THREADIMPL_FLAGS_DESTROYED) != 0;
- pImpl->m_Flags &= ~(THREADIMPL_FLAGS_ACTIVE | THREADIMPL_FLAGS_ATTACHED);
-
- pthread_mutex_unlock (&(pImpl->m_Lock));
-
- /* release oslThreadIdentifier @@@ see TODO @@@ */
- removeThreadId (thread);
-
- if (attached)
- {
- pthread_detach (thread);
- }
-
- if (destroyed)
- {
- osl_thread_destruct_Impl (&pImpl);
- }
-}
-
-/*****************************************************************************/
-/* osl_thread_start_Impl */
-/*****************************************************************************/
-static void* osl_thread_start_Impl (void* pData)
-{
- int terminate;
- Thread_Impl* pImpl= (Thread_Impl*)pData;
-
- OSL_ASSERT(pImpl);
-
- pthread_mutex_lock (&(pImpl->m_Lock));
-
- /* install cleanup handler */
- pthread_cleanup_push (osl_thread_cleanup_Impl, pData);
-
- /* request oslThreadIdentifier @@@ see TODO @@@ */
- pImpl->m_Ident = insertThreadId (pImpl->m_hThread);
-
- /* signal change from STARTUP to ACTIVE state */
- pImpl->m_Flags &= ~THREADIMPL_FLAGS_STARTUP;
- pImpl->m_Flags |= THREADIMPL_FLAGS_ACTIVE;
- pthread_cond_signal (&(pImpl->m_Cond));
-
- /* Check if thread is started in SUSPENDED state */
- while (pImpl->m_Flags & THREADIMPL_FLAGS_SUSPENDED)
- {
- /* wait until SUSPENDED flag is cleared */
- pthread_cleanup_push (osl_thread_wait_cleanup_Impl, &(pImpl->m_Lock));
- pthread_cond_wait (&(pImpl->m_Cond), &(pImpl->m_Lock));
- pthread_cleanup_pop (0);
- }
-
- /* check for SUSPENDED to TERMINATE state change */
- terminate = ((pImpl->m_Flags & THREADIMPL_FLAGS_TERMINATE) > 0);
-
- pthread_mutex_unlock (&(pImpl->m_Lock));
-
- if (!terminate)
- {
- /* call worker function */
- pImpl->m_WorkerFunction(pImpl->m_pData);
- }
-
- /* call cleanup handler and leave */
- pthread_cleanup_pop (1);
- return (0);
-}
-
-/*****************************************************************************/
-/* osl_thread_create_Impl */
-/*****************************************************************************/
-static oslThread osl_thread_create_Impl (
- oslWorkerFunction pWorker,
- void* pThreadData,
- short nFlags)
-{
- Thread_Impl* pImpl;
-#if defined(OPENBSD)
- pthread_attr_t attr;
-#endif
- int nRet=0;
-
- pImpl = osl_thread_construct_Impl();
- if (!pImpl)
- return (0); /* ENOMEM */
-
- pImpl->m_WorkerFunction = pWorker;
- pImpl->m_pData = pThreadData;
- pImpl->m_Flags = nFlags | THREADIMPL_FLAGS_STARTUP;
-
- pthread_mutex_lock (&(pImpl->m_Lock));
-
-#if defined(OPENBSD)
- if (pthread_attr_init(&attr) != 0)
- return (0);
-
- if (pthread_attr_setstacksize(&attr, 262144) != 0) {
- pthread_attr_destroy(&attr);
- return (0);
- }
-#endif
-
- if ((nRet = pthread_create (
- &(pImpl->m_hThread),
-#if defined(OPENBSD)
- &attr,
-#else
- PTHREAD_ATTR_DEFAULT,
-#endif
- osl_thread_start_Impl,
- (void*)(pImpl))) != 0)
- {
- OSL_TRACE("osl_thread_create_Impl(): errno: %d, %s\n",
- nRet, strerror(nRet));
-
- pthread_mutex_unlock (&(pImpl->m_Lock));
- osl_thread_destruct_Impl (&pImpl);
-
- return (0);
- }
-
-#if defined(OPENBSD)
- pthread_attr_destroy(&attr);
-#endif
-
- /* wait for change from STARTUP to ACTIVE state */
- while (pImpl->m_Flags & THREADIMPL_FLAGS_STARTUP)
- {
- /* wait until STARTUP flag is cleared */
- pthread_cleanup_push (osl_thread_wait_cleanup_Impl, &(pImpl->m_Lock));
- pthread_cond_wait (&(pImpl->m_Cond), &(pImpl->m_Lock));
- pthread_cleanup_pop (0);
- }
-
- pthread_mutex_unlock (&(pImpl->m_Lock));
-
- return ((oslThread)(pImpl));
-}
-
-/*****************************************************************************/
-/* osl_createThread */
-/*****************************************************************************/
-oslThread osl_createThread (
- oslWorkerFunction pWorker,
- void * pThreadData)
-{
- return osl_thread_create_Impl (
- pWorker,
- pThreadData,
- THREADIMPL_FLAGS_ATTACHED);
-}
-
-/*****************************************************************************/
-/* osl_createSuspendedThread */
-/*****************************************************************************/
-oslThread osl_createSuspendedThread (
- oslWorkerFunction pWorker,
- void * pThreadData)
-{
- return osl_thread_create_Impl (
- pWorker,
- pThreadData,
- THREADIMPL_FLAGS_ATTACHED |
- THREADIMPL_FLAGS_SUSPENDED );
-}
-
-/*****************************************************************************/
-/* osl_destroyThread */
-/*****************************************************************************/
-void SAL_CALL osl_destroyThread(oslThread Thread)
-{
- if (Thread != NULL) {
- Thread_Impl * impl = (Thread_Impl *) Thread;
- int active;
- pthread_mutex_lock(&impl->m_Lock);
- active = (impl->m_Flags & THREADIMPL_FLAGS_ACTIVE) != 0;
- impl->m_Flags |= THREADIMPL_FLAGS_DESTROYED;
- pthread_mutex_unlock(&impl->m_Lock);
- if (!active) {
- osl_thread_destruct_Impl(&impl);
- }
- }
-}
-
-/*****************************************************************************/
-/* osl_resumeThread */
-/*****************************************************************************/
-void SAL_CALL osl_resumeThread(oslThread Thread)
-{
- Thread_Impl* pImpl= (Thread_Impl*)Thread;
-
- OSL_ASSERT(pImpl);
- if (!pImpl)
- return; /* EINVAL */
-
- pthread_mutex_lock (&(pImpl->m_Lock));
-
- if (pImpl->m_Flags & THREADIMPL_FLAGS_SUSPENDED)
- {
- /* clear SUSPENDED flag */
- pImpl->m_Flags &= ~THREADIMPL_FLAGS_SUSPENDED;
- pthread_cond_signal (&(pImpl->m_Cond));
- }
-
- pthread_mutex_unlock (&(pImpl->m_Lock));
-}
-
-/*****************************************************************************/
-/* osl_suspendThread */
-/*****************************************************************************/
-void SAL_CALL osl_suspendThread(oslThread Thread)
-{
- Thread_Impl* pImpl= (Thread_Impl*)Thread;
-
- OSL_ASSERT(pImpl);
- if (!pImpl)
- return; /* EINVAL */
-
- pthread_mutex_lock (&(pImpl->m_Lock));
-
- pImpl->m_Flags |= THREADIMPL_FLAGS_SUSPENDED;
-
- if (pthread_equal (pthread_self(), pImpl->m_hThread))
- {
- /* self suspend */
- while (pImpl->m_Flags & THREADIMPL_FLAGS_SUSPENDED)
- {
- /* wait until SUSPENDED flag is cleared */
- pthread_cleanup_push (osl_thread_wait_cleanup_Impl, &(pImpl->m_Lock));
- pthread_cond_wait (&(pImpl->m_Cond), &(pImpl->m_Lock));
- pthread_cleanup_pop (0);
- }
- }
-
- pthread_mutex_unlock (&(pImpl->m_Lock));
-}
-
-/*****************************************************************************/
-/* osl_isThreadRunning */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_isThreadRunning(const oslThread Thread)
-{
- sal_Bool active;
- Thread_Impl* pImpl= (Thread_Impl*)Thread;
-
- if (!pImpl)
- return sal_False;
-
- pthread_mutex_lock (&(pImpl->m_Lock));
- active = ((pImpl->m_Flags & THREADIMPL_FLAGS_ACTIVE) > 0);
- pthread_mutex_unlock (&(pImpl->m_Lock));
-
- return (active);
-}
-
-/*****************************************************************************/
-/* osl_joinWithThread */
-/*****************************************************************************/
-void SAL_CALL osl_joinWithThread(oslThread Thread)
-{
- pthread_t thread;
- int attached;
- Thread_Impl* pImpl= (Thread_Impl*)Thread;
-
- if (!pImpl)
- return;
-
- pthread_mutex_lock (&(pImpl->m_Lock));
-
- if (pthread_equal (pthread_self(), pImpl->m_hThread))
- {
- /* self join */
- pthread_mutex_unlock (&(pImpl->m_Lock));
- return; /* EDEADLK */
- }
-
- thread = pImpl->m_hThread;
- attached = ((pImpl->m_Flags & THREADIMPL_FLAGS_ATTACHED) > 0);
- pImpl->m_Flags &= ~THREADIMPL_FLAGS_ATTACHED;
-
- pthread_mutex_unlock (&(pImpl->m_Lock));
-
- if (attached)
- {
- /* install cleanup handler to ensure consistent flags and state */
- pthread_cleanup_push (
- osl_thread_join_cleanup_Impl, (void*)thread);
-
- /* join */
- pthread_join (thread, NULL);
-
- /* remove cleanup handler */
- pthread_cleanup_pop (0);
- }
-}
-
-/*****************************************************************************/
-/* osl_terminateThread */
-/*****************************************************************************/
-void SAL_CALL osl_terminateThread(oslThread Thread)
-{
- Thread_Impl* pImpl= (Thread_Impl*)Thread;
-
- OSL_ASSERT(pImpl);
- if (!pImpl)
- return; /* EINVAL */
-
- pthread_mutex_lock (&(pImpl->m_Lock));
-
- if (pImpl->m_Flags & THREADIMPL_FLAGS_SUSPENDED)
- {
- /* clear SUSPENDED flag */
- pImpl->m_Flags &= ~THREADIMPL_FLAGS_SUSPENDED;
- pthread_cond_signal (&(pImpl->m_Cond));
- }
-
- pImpl->m_Flags |= THREADIMPL_FLAGS_TERMINATE;
-
- pthread_mutex_unlock (&(pImpl->m_Lock));
-}
-
-/*****************************************************************************/
-/* osl_scheduleThread */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_scheduleThread(oslThread Thread)
-{
- int terminate;
- Thread_Impl* pImpl= (Thread_Impl*)Thread;
-
- OSL_ASSERT(pImpl);
- if (!pImpl)
- return sal_False; /* EINVAL */
-
- OSL_ASSERT(pthread_equal (pthread_self(), pImpl->m_hThread));
- if (!(pthread_equal (pthread_self(), pImpl->m_hThread)))
- return sal_False; /* EINVAL */
-
- pthread_testcancel();
- pthread_mutex_lock (&(pImpl->m_Lock));
-
- while (pImpl->m_Flags & THREADIMPL_FLAGS_SUSPENDED)
- {
- /* wait until SUSPENDED flag is cleared */
- pthread_cleanup_push (osl_thread_wait_cleanup_Impl, &(pImpl->m_Lock));
- pthread_cond_wait (&(pImpl->m_Cond), &(pImpl->m_Lock));
- pthread_cleanup_pop (0);
- }
-
- terminate = ((pImpl->m_Flags & THREADIMPL_FLAGS_TERMINATE) > 0);
-
- pthread_mutex_unlock(&(pImpl->m_Lock));
- pthread_testcancel();
-
- return (terminate == 0);
-}
-
-/*****************************************************************************/
-/* osl_waitThread */
-/*****************************************************************************/
-void SAL_CALL osl_waitThread(const TimeValue* pDelay)
-{
- if (pDelay)
- {
- struct timespec delay;
-
- SET_TIMESPEC(delay, pDelay->Seconds, pDelay->Nanosec);
-
- SLEEP_TIMESPEC(delay);
- }
-}
-
-/*****************************************************************************/
-/* osl_yieldThread */
-/*
- Note that POSIX scheduling _really_ requires threads to call this
- functions, since a thread only reschedules to other thread, when
- it blocks (sleep, blocking I/O) OR calls sched_yield().
-*/
-/*****************************************************************************/
-void SAL_CALL osl_yieldThread()
-{
- sched_yield();
-}
-
-void SAL_CALL osl_setThreadName(char const * name) {
-#if defined LINUX
- if (prctl(PR_SET_NAME, (unsigned long) name, 0, 0, 0) != 0) {
- OSL_TRACE(
- "%s prctl(PR_SET_NAME) failed with errno %d", OSL_LOG_PREFIX,
- errno);
- }
-#else
- (void) name;
-#endif
-}
-
-/*****************************************************************************/
-/* osl_getThreadIdentifier @@@ see TODO @@@ */
-/*****************************************************************************/
-
-#define HASHID(x) ((unsigned int)PTHREAD_VALUE(x) % HashSize)
-
-typedef struct _HashEntry
-{
- pthread_t Handle;
- sal_uInt16 Ident;
- struct _HashEntry *Next;
-} HashEntry;
-
-static HashEntry* HashTable[31];
-static int HashSize = SAL_N_ELEMENTS(HashTable);
-
-static pthread_mutex_t HashLock = PTHREAD_MUTEX_INITIALIZER;
-
-static sal_uInt16 LastIdent = 0;
-
-static sal_uInt16 lookupThreadId (pthread_t hThread)
-{
- HashEntry *pEntry;
-
- pthread_mutex_lock(&HashLock);
-
- pEntry = HashTable[HASHID(hThread)];
- while (pEntry != NULL)
- {
- if (pthread_equal(pEntry->Handle, hThread))
- {
- pthread_mutex_unlock(&HashLock);
- return (pEntry->Ident);
- }
- pEntry = pEntry->Next;
- }
-
- pthread_mutex_unlock(&HashLock);
-
- return (0);
-}
-
-static sal_uInt16 insertThreadId (pthread_t hThread)
-{
- HashEntry *pEntry, *pInsert = NULL;
-
- pthread_mutex_lock(&HashLock);
-
- pEntry = HashTable[HASHID(hThread)];
-
- while (pEntry != NULL)
- {
- if (pthread_equal(pEntry->Handle, hThread))
- break;
-
- pInsert = pEntry;
- pEntry = pEntry->Next;
- }
-
- if (pEntry == NULL)
- {
- pEntry = (HashEntry*) calloc(sizeof(HashEntry), 1);
-
- pEntry->Handle = hThread;
-
- ++ LastIdent;
-
- if ( LastIdent == 0 )
- LastIdent = 1;
-
- pEntry->Ident = LastIdent;
-
- if (pInsert)
- pInsert->Next = pEntry;
- else
- HashTable[HASHID(hThread)] = pEntry;
- }
-
- pthread_mutex_unlock(&HashLock);
-
- return (pEntry->Ident);
-}
-
-static void removeThreadId (pthread_t hThread)
-{
- HashEntry *pEntry, *pRemove = NULL;
-
- pthread_mutex_lock(&HashLock);
-
- pEntry = HashTable[HASHID(hThread)];
- while (pEntry != NULL)
- {
- if (pthread_equal(pEntry->Handle, hThread))
- break;
-
- pRemove = pEntry;
- pEntry = pEntry->Next;
- }
-
- if (pEntry != NULL)
- {
- if (pRemove)
- pRemove->Next = pEntry->Next;
- else
- HashTable[HASHID(hThread)] = pEntry->Next;
-
- free(pEntry);
- }
-
- pthread_mutex_unlock(&HashLock);
-}
-
-oslThreadIdentifier SAL_CALL osl_getThreadIdentifier(oslThread Thread)
-{
- Thread_Impl* pImpl= (Thread_Impl*)Thread;
- sal_uInt16 Ident;
-
- if (pImpl)
- Ident = pImpl->m_Ident;
- else
- {
- /* current thread */
- pthread_t current = pthread_self();
-
- Ident = lookupThreadId (current);
- if (Ident == 0)
- /* @@@ see TODO: alien pthread_self() @@@ */
- Ident = insertThreadId (current);
- }
-
- return ((oslThreadIdentifier)(Ident));
-}
-
-/*****************************************************************************
- @@@ see TODO @@@
- osl_thread_priority_init_Impl
-
- set the base-priority of the main-thread to
- oslThreadPriorityNormal (64) since 0 (lowest) is
- the system default. This behaviour collides with
- our enum-priority definition (highest..normal..lowest).
- A normaluser will expect the main-thread of an app.
- to have the "normal" priority.
-
-*****************************************************************************/
-static void osl_thread_priority_init_Impl (void)
-{
-#ifndef NO_PTHREAD_PRIORITY
- struct sched_param param;
- int policy=0;
- int nRet=0;
-
-/* @@@ see TODO: calling thread may not be main thread @@@ */
-
- if ((nRet = pthread_getschedparam(pthread_self(), &policy, &param)) != 0)
- {
- OSL_TRACE("failed to get priority of thread [%s]\n",strerror(nRet));
- return;
- }
-
-#if defined (SOLARIS)
- if ( policy >= _SCHED_NEXT)
- {
- /* mfe: pthread_getschedparam on Solaris has a possible Bug */
- /* one gets 959917873 as the policy */
- /* so set the policy to a default one */
- policy=SCHED_OTHER;
- }
-#endif /* SOLARIS */
-
- if ((nRet = sched_get_priority_min(policy) ) != -1)
- {
- OSL_TRACE("Min Prioriy for policy '%i' == '%i'\n",policy,nRet);
- g_thread.m_priority.m_Lowest=nRet;
- }
-#if OSL_DEBUG_LEVEL > 1
- else
- {
- fprintf(stderr,"failed to get min sched param [%s]\n",strerror(errno));
- }
-#endif /* OSL_DEBUG_LEVEL */
-
- if ((nRet = sched_get_priority_max(policy) ) != -1)
- {
- OSL_TRACE("Max Prioriy for policy '%i' == '%i'\n",policy,nRet);
- g_thread.m_priority.m_Highest=nRet;
- }
-#if OSL_DEBUG_LEVEL > 1
- else
- {
- fprintf(stderr,"failed to get max sched param [%s]\n",strerror(errno));
- }
-#endif /* OSL_DEBUG_LEVEL */
-
- g_thread.m_priority.m_Normal =
- (g_thread.m_priority.m_Lowest + g_thread.m_priority.m_Highest) / 2;
- g_thread.m_priority.m_Below_Normal =
- (g_thread.m_priority.m_Lowest + g_thread.m_priority.m_Normal) / 2;
- g_thread.m_priority.m_Above_Normal =
- (g_thread.m_priority.m_Normal + g_thread.m_priority.m_Highest) / 2;
-
-/* @@@ set prio of calling (not main) thread (?) @@@ */
-
- param.sched_priority= g_thread.m_priority.m_Normal;
-
- if ((nRet = pthread_setschedparam(pthread_self(), policy, &param)) != 0)
- {
- OSL_TRACE("failed to change base priority of thread [%s]\n",strerror(nRet));
- OSL_TRACE("Thread ID '%i', Policy '%i', Priority '%i'\n",pthread_self(),policy,param.sched_priority);
- }
-
-#endif /* NO_PTHREAD_PRIORITY */
-}
-
-/*****************************************************************************/
-/* osl_setThreadPriority */
-/*
- Impl-Notes: contrary to solaris-docu, which claims
- valid priority-levels from 0 .. INT_MAX, only the
- range 0..127 is accepted. (0 lowest, 127 highest)
-*/
-/*****************************************************************************/
-void SAL_CALL osl_setThreadPriority (
- oslThread Thread,
- oslThreadPriority Priority)
-{
-#ifndef NO_PTHREAD_PRIORITY
-
- struct sched_param Param;
- int policy;
- int nRet;
-
-#endif /* NO_PTHREAD_PRIORITY */
-
- Thread_Impl* pImpl= (Thread_Impl*)Thread;
-
- OSL_ASSERT(pImpl);
- if (!pImpl)
- return; /* EINVAL */
-
-#ifdef NO_PTHREAD_PRIORITY
- (void) Priority; /* unused */
-#else /* NO_PTHREAD_PRIORITY */
-
- if (pthread_getschedparam(pImpl->m_hThread, &policy, &Param) != 0)
- return; /* ESRCH */
-
-#if defined (SOLARIS)
- if ( policy >= _SCHED_NEXT)
- {
- /* mfe: pthread_getschedparam on Solaris has a possible Bug */
- /* one gets 959917873 as the policy */
- /* so set the policy to a default one */
- policy=SCHED_OTHER;
- }
-#endif /* SOLARIS */
-
- pthread_once (&(g_thread.m_once), osl_thread_init_Impl);
-
- switch(Priority)
- {
- case osl_Thread_PriorityHighest:
- Param.sched_priority= g_thread.m_priority.m_Highest;
- break;
-
- case osl_Thread_PriorityAboveNormal:
- Param.sched_priority= g_thread.m_priority.m_Above_Normal;
- break;
-
- case osl_Thread_PriorityNormal:
- Param.sched_priority= g_thread.m_priority.m_Normal;
- break;
-
- case osl_Thread_PriorityBelowNormal:
- Param.sched_priority= g_thread.m_priority.m_Below_Normal;
- break;
-
- case osl_Thread_PriorityLowest:
- Param.sched_priority= g_thread.m_priority.m_Lowest;
- break;
-
- case osl_Thread_PriorityUnknown:
- OSL_ASSERT(sal_False); /* only fools try this...*/
-
- /* let release-version behave friendly */
- return;
-
- default:
- /* enum expanded, but forgotten here...*/
- OSL_ENSURE(sal_False,"osl_setThreadPriority : unknown priority\n");
-
- /* let release-version behave friendly */
- return;
- }
-
- if ((nRet = pthread_setschedparam(pImpl->m_hThread, policy, &Param)) != 0)
- {
- OSL_TRACE("failed to change thread priority [%s]\n",strerror(nRet));
- }
-
-#endif /* NO_PTHREAD_PRIORITY */
-}
-
-/*****************************************************************************/
-/* osl_getThreadPriority */
-/*****************************************************************************/
-oslThreadPriority SAL_CALL osl_getThreadPriority(const oslThread Thread)
-{
-#ifndef NO_PTHREAD_PRIORITY
-
- struct sched_param Param;
- int Policy;
-
-#endif /* NO_PTHREAD_PRIORITY */
-
- oslThreadPriority Priority = osl_Thread_PriorityNormal;
- Thread_Impl* pImpl= (Thread_Impl*)Thread;
-
- OSL_ASSERT(pImpl);
- if (!pImpl)
- return osl_Thread_PriorityUnknown; /* EINVAL */
-
-#ifndef NO_PTHREAD_PRIORITY
-
- if (pthread_getschedparam(pImpl->m_hThread, &Policy, &Param) != 0)
- return osl_Thread_PriorityUnknown; /* ESRCH */
-
- pthread_once (&(g_thread.m_once), osl_thread_init_Impl);
-
- /* map pthread priority to enum */
- if (Param.sched_priority==g_thread.m_priority.m_Highest)
- {
- /* 127 - highest */
- Priority= osl_Thread_PriorityHighest;
- }
- else if (Param.sched_priority > g_thread.m_priority.m_Normal)
- {
- /* 65..126 - above normal */
- Priority= osl_Thread_PriorityAboveNormal;
- }
- else if (Param.sched_priority == g_thread.m_priority.m_Normal)
- {
- /* normal */
- Priority= osl_Thread_PriorityNormal;
- }
- else if (Param.sched_priority > g_thread.m_priority.m_Lowest)
- {
- /* 63..1 -below normal */
- Priority= osl_Thread_PriorityBelowNormal;
- }
- else if (Param.sched_priority == g_thread.m_priority.m_Lowest)
- {
- /* 0 - lowest */
- Priority= osl_Thread_PriorityLowest;
- }
- else
- {
- /* unknown */
- Priority= osl_Thread_PriorityUnknown;
- }
-
-#endif /* NO_PTHREAD_PRIORITY */
-
- return Priority;
-}
-
-typedef struct _wrapper_pthread_key
-{
- pthread_key_t m_key;
- oslThreadKeyCallbackFunction pfnCallback;
-} wrapper_pthread_key;
-
-/*****************************************************************************/
-/* osl_createThreadKey */
-/*****************************************************************************/
-oslThreadKey SAL_CALL osl_createThreadKey( oslThreadKeyCallbackFunction pCallback )
-{
- wrapper_pthread_key *pKey = (wrapper_pthread_key*)rtl_allocateMemory(sizeof(wrapper_pthread_key));
-
- if (pKey)
- {
- pKey->pfnCallback = pCallback;
-
- if (pthread_key_create(&(pKey->m_key), pKey->pfnCallback) != 0)
- {
- rtl_freeMemory(pKey);
- pKey = 0;
- }
- }
-
- return ((oslThreadKey)pKey);
-}
-
-/*****************************************************************************/
-/* osl_destroyThreadKey */
-/*****************************************************************************/
-void SAL_CALL osl_destroyThreadKey(oslThreadKey Key)
-{
- wrapper_pthread_key *pKey = (wrapper_pthread_key*)Key;
- if (pKey)
- {
- pthread_key_delete(pKey->m_key);
- rtl_freeMemory(pKey);
- }
-}
-
-/*****************************************************************************/
-/* osl_getThreadKeyData */
-/*****************************************************************************/
-void* SAL_CALL osl_getThreadKeyData(oslThreadKey Key)
-{
- wrapper_pthread_key *pKey = (wrapper_pthread_key*)Key;
- return pKey ? pthread_getspecific(pKey->m_key) : NULL;
-}
-
-/*****************************************************************************/
-/* osl_setThreadKeyData */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_setThreadKeyData(oslThreadKey Key, void *pData)
-{
- sal_Bool bRet;
- void *pOldData = NULL;
- wrapper_pthread_key *pKey = (wrapper_pthread_key*)Key;
- if (!pKey)
- return sal_False;
-
- if (pKey->pfnCallback)
- pOldData = pthread_getspecific(pKey->m_key);
-
- bRet = (pthread_setspecific(pKey->m_key, pData) == 0);
-
- if (bRet && pKey->pfnCallback && pOldData)
- pKey->pfnCallback(pOldData);
-
- return bRet;
-}
-
-/*****************************************************************************/
-/* Thread Local Text Encoding */
-/*****************************************************************************/
-static void osl_thread_textencoding_init_Impl (void)
-{
- rtl_TextEncoding defaultEncoding;
- const char * pszEncoding;
-
- /* create thread specific data key */
- pthread_key_create (&(g_thread.m_textencoding.m_key), NULL);
-
- /* determine default text encoding */
- pszEncoding = getenv ("SOLAR_USER_RTL_TEXTENCODING");
- if (pszEncoding)
- defaultEncoding = atoi(pszEncoding);
- else
- defaultEncoding = osl_getTextEncodingFromLocale(NULL);
-
- OSL_ASSERT(defaultEncoding != RTL_TEXTENCODING_DONTKNOW);
-
- /*
- Tools string functions call abort() on an unknown encoding so ASCII
- is a meaningfull fallback regardless wether the assertion makes sense.
- */
-
- if ( RTL_TEXTENCODING_DONTKNOW == defaultEncoding )
- defaultEncoding = RTL_TEXTENCODING_ASCII_US;
-
- g_thread.m_textencoding.m_default = defaultEncoding;
-}
-
-/*****************************************************************************/
-/* osl_getThreadTextEncoding */
-/*****************************************************************************/
-rtl_TextEncoding SAL_CALL osl_getThreadTextEncoding()
-{
- rtl_TextEncoding threadEncoding;
-
- pthread_once (&(g_thread.m_once), osl_thread_init_Impl);
-
- /* check for thread specific encoding, use default if not set */
- threadEncoding = SAL_INT_CAST(
- rtl_TextEncoding,
- (sal_uIntPtr) pthread_getspecific(g_thread.m_textencoding.m_key));
- if (0 == threadEncoding)
- threadEncoding = g_thread.m_textencoding.m_default;
-
- return threadEncoding;
-}
-
-/*****************************************************************************/
-/* osl_setThreadTextEncoding */
-/*****************************************************************************/
-rtl_TextEncoding osl_setThreadTextEncoding(rtl_TextEncoding Encoding)
-{
- rtl_TextEncoding oldThreadEncoding = osl_getThreadTextEncoding();
-
- /* save encoding in thread local storage */
- pthread_setspecific (
- g_thread.m_textencoding.m_key,
- (void*) SAL_INT_CAST(sal_uIntPtr, Encoding));
-
- return oldThreadEncoding;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/time.c b/sal/osl/unx/time.c
deleted file mode 100644
index 59f09d8d9..000000000
--- a/sal/osl/unx/time.c
+++ /dev/null
@@ -1,273 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#include "system.h"
-
-#include <osl/diagnose.h>
-#include <osl/time.h>
-
-/* FIXME: detection should be done in configure script */
-#if defined(MACOSX) || defined(FREEBSD) || defined(NETBSD) || \
- defined(LINUX) || defined(OPENBSD) || defined(DRAGONFLY)
-#define STRUCT_TM_HAS_GMTOFF 1
-
-#elif defined(SOLARIS)
-#define HAS_ALTZONE 1
-#endif
-
-/*--------------------------------------------------
- * osl_getSystemTime
- *-------------------------------------------------*/
-
-sal_Bool SAL_CALL osl_getSystemTime(TimeValue* TimeValue)
-{
- struct timeval tp;
-
- /* FIXME: use higher resolution */
- gettimeofday(&tp, NULL);
-
- TimeValue->Seconds = tp.tv_sec;
- TimeValue->Nanosec = tp.tv_usec * 1000;
-
- return (sal_True);
-}
-
-
-/*--------------------------------------------------
- * osl_getDateTimeFromTimeValue
- *-------------------------------------------------*/
-
-sal_Bool SAL_CALL osl_getDateTimeFromTimeValue( TimeValue* pTimeVal, oslDateTime* pDateTime )
-{
- struct tm *pSystemTime;
- struct tm tmBuf;
- time_t atime;
-
- atime = (time_t)pTimeVal->Seconds;
-
- /* Convert time from type time_t to struct tm */
- pSystemTime = gmtime_r( &atime, &tmBuf );
-
-
- /* Convert struct tm to struct oslDateTime */
- if ( pSystemTime != NULL )
- {
- pDateTime->NanoSeconds = pTimeVal->Nanosec;
- pDateTime->Seconds = pSystemTime->tm_sec;
- pDateTime->Minutes = pSystemTime->tm_min;
- pDateTime->Hours = pSystemTime->tm_hour;
- pDateTime->Day = pSystemTime->tm_mday;
- pDateTime->DayOfWeek = pSystemTime->tm_wday;
- pDateTime->Month = pSystemTime->tm_mon + 1;
- pDateTime->Year = pSystemTime->tm_year + 1900;
-
- return sal_True;
- }
-
- return sal_False;
-}
-
-/*--------------------------------------------------
- * osl_getTimeValueFromDateTime
- *--------------------------------------------------*/
-
-sal_Bool SAL_CALL osl_getTimeValueFromDateTime( oslDateTime* pDateTime, TimeValue* pTimeVal )
-{
- struct tm aTime;
- time_t nSeconds;
-
- /* Convert struct oslDateTime to struct tm */
- aTime.tm_sec = pDateTime->Seconds;
- aTime.tm_min = pDateTime->Minutes;
- aTime.tm_hour = pDateTime->Hours;
- aTime.tm_mday = pDateTime->Day;
- aTime.tm_wday = pDateTime->DayOfWeek;
-
- if ( pDateTime->Month > 0 )
- aTime.tm_mon = pDateTime->Month - 1;
- else
- return sal_False;
-
- if ( pDateTime->Year >= 1900 )
- aTime.tm_year = pDateTime->Year - 1900;
- else
- return sal_False;
-
- aTime.tm_isdst = -1;
- aTime.tm_wday = 0;
- aTime.tm_yday = 0;
-
- /* Convert time to calendar value */
- nSeconds = mktime( &aTime );
-
- /*
- * mktime expects the struct tm to be in local timezone, so we have to adjust
- * the returned value to be timezone neutral.
- */
-
- if ( nSeconds != (time_t) -1 )
- {
- time_t bias;
-
- /* timezone corrections */
- tzset();
-
-#if defined(STRUCT_TM_HAS_GMTOFF)
- /* members of struct tm are corrected by mktime */
- bias = 0 - aTime.tm_gmtoff;
-
-#elif defined(HAS_ALTZONE)
- /* check if daylight saving time is in effect */
- bias = aTime.tm_isdst > 0 ? altzone : timezone;
-#else
- /* exspect daylight saving time to be one hour */
- bias = aTime.tm_isdst > 0 ? timezone - 3600 : timezone;
-#endif
-
- pTimeVal->Seconds = nSeconds;
- pTimeVal->Nanosec = pDateTime->NanoSeconds;
-
- if ( nSeconds > bias )
- pTimeVal->Seconds -= bias;
-
- return sal_True;
- }
-
- return sal_False;
-}
-
-
-/*--------------------------------------------------
- * osl_getLocalTimeFromSystemTime
- *--------------------------------------------------*/
-
-sal_Bool SAL_CALL osl_getLocalTimeFromSystemTime( TimeValue* pSystemTimeVal, TimeValue* pLocalTimeVal )
-{
- struct tm *pLocalTime;
- struct tm tmBuf;
- time_t bias;
- time_t atime;
-
- atime = (time_t) pSystemTimeVal->Seconds;
- pLocalTime = localtime_r( &atime, &tmBuf );
-
-#if defined(STRUCT_TM_HAS_GMTOFF)
- /* members of struct tm are corrected by mktime */
- bias = 0 - pLocalTime->tm_gmtoff;
-
-#elif defined(HAS_ALTZONE)
- /* check if daylight saving time is in effect */
- bias = pLocalTime->tm_isdst > 0 ? altzone : timezone;
-#else
- /* exspect daylight saving time to be one hour */
- bias = pLocalTime->tm_isdst > 0 ? timezone - 3600 : timezone;
-#endif
-
- if ( (sal_Int64) pSystemTimeVal->Seconds > bias )
- {
- pLocalTimeVal->Seconds = pSystemTimeVal->Seconds - bias;
- pLocalTimeVal->Nanosec = pSystemTimeVal->Nanosec;
-
- return sal_True;
- }
-
- return sal_False;
-}
-
-/*--------------------------------------------------
- * osl_getSystemTimeFromLocalTime
- *--------------------------------------------------*/
-
-sal_Bool SAL_CALL osl_getSystemTimeFromLocalTime( TimeValue* pLocalTimeVal, TimeValue* pSystemTimeVal )
-{
- struct tm *pLocalTime;
- struct tm tmBuf;
- time_t bias;
- time_t atime;
-
- atime = (time_t) pLocalTimeVal->Seconds;
-
- /* Convert atime, which is a local time, to it's GMT equivalent. Then, get
- * the timezone offset for the local time for the GMT equivalent time. Note
- * that we cannot directly use local time to determine the timezone offset
- * because GMT is the only reliable time that we can determine timezone
- * offset from.
- */
-
- atime = mktime( gmtime_r( &atime, &tmBuf ) );
- pLocalTime = localtime_r( &atime, &tmBuf );
-
-#if defined(STRUCT_TM_HAS_GMTOFF)
- /* members of struct tm are corrected by mktime */
- bias = 0 - pLocalTime->tm_gmtoff;
-
-#elif defined(HAS_ALTZONE)
- /* check if daylight saving time is in effect */
- bias = pLocalTime->tm_isdst > 0 ? altzone : timezone;
-#else
- /* exspect daylight saving time to be one hour */
- bias = pLocalTime->tm_isdst > 0 ? timezone - 3600 : timezone;
-#endif
-
- if ( (sal_Int64) pLocalTimeVal->Seconds + bias > 0 )
- {
- pSystemTimeVal->Seconds = pLocalTimeVal->Seconds + bias;
- pSystemTimeVal->Nanosec = pLocalTimeVal->Nanosec;
-
- return sal_True;
- }
-
- return sal_False;
-}
-
-
-
-static struct timeval startTime;
-static sal_Bool bGlobalTimer = sal_False;
-
-sal_uInt32 SAL_CALL osl_getGlobalTimer()
-{
- struct timeval currentTime;
- sal_uInt32 nSeconds;
-
- // FIXME: not thread safe !!
- if ( bGlobalTimer == sal_False )
- {
- gettimeofday( &startTime, NULL );
- bGlobalTimer=sal_True;
- }
-
- gettimeofday( &currentTime, NULL );
-
- nSeconds = (sal_uInt32)( currentTime.tv_sec - startTime.tv_sec );
-
- return ( nSeconds * 1000 ) + (long) (( currentTime.tv_usec - startTime.tv_usec) / 1000 );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/util.c b/sal/osl/unx/util.c
deleted file mode 100644
index fe68c480d..000000000
--- a/sal/osl/unx/util.c
+++ /dev/null
@@ -1,349 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#include <unistd.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/ioctl.h>
-#include <sys/socket.h>
-#include <net/if.h>
-
-#ifdef SOLARIS
-#include <sys/sockio.h>
-#endif
-
-#include "osl/util.h"
-#include "osl/diagnose.h"
-
-
-/*****************************************************************************/
-/* Static Module Functions */
-/*****************************************************************************/
-
-static int osl_getHWAddr(const char *ifname, char* hard_addr);
-static int osl_checkAddr(const char* addr);
-
-
-/*****************************************************************************/
-/* osl_getEthernetAddress */
-/*****************************************************************************/
-
-sal_Bool SAL_CALL osl_getEthernetAddress( sal_uInt8 * pAddr )
-{
-#ifdef SOLARIS
- /** algorithm doesn't work on solaris */
- return sal_False;
-#else
- char buff[1024];
- char hard_addr[64];
- struct ifconf ifc;
- struct ifreq *ifr;
- int i;
- int so;
-
- if ( pAddr == 0 )
- {
- return sal_False;
- }
-
-
- /*
- * All we need is ... a network file descriptor.
- * Normally, this is a very socket.
- */
-
- so = socket(AF_INET, SOCK_DGRAM, 0);
-
-
- /*
- * The first thing we have to do, get the interface configuration.
- * It is a list of attached/configured interfaces
- */
-
- ifc.ifc_len = sizeof(buff);
- ifc.ifc_buf = buff;
- if ( ioctl(so, SIOCGIFCONF, &ifc) < 0 )
- {
- OSL_TRACE( "SIOCGIFCONF: %s\n", strerror(errno) );
- close(so);
- return sal_False;
- }
-
- close(so);
-
- /*
- * For each of the interfaces in the interface list,
- * try to get the hardware address
- */
-
- ifr = ifc.ifc_req;
- for ( i = ifc.ifc_len / sizeof(struct ifreq) ; --i >= 0 ; ifr++ )
- {
- int nRet=0;
- nRet = osl_getHWAddr(ifr->ifr_name,hard_addr);
- if ( nRet > 0 )
- {
- memcpy( pAddr , hard_addr, 6 );
- return sal_True;
- }
- }
-
- return sal_False;
-#endif
-}
-
-
-/*****************************************************************************/
-/* osl_getHWAddr */
-/*****************************************************************************/
-
-static int osl_getHWAddr(const char *ifname, char* hard_addr)
-{
- int ret=0;
- struct ifreq ifr;
- int so = socket(AF_INET, SOCK_DGRAM, 0);
-
- strcpy(ifr.ifr_name, ifname);
-
- /*
- * First, get the Interface-FLAGS
- */
-
- ret=ioctl(so, SIOCGIFFLAGS, &ifr) ;
-
- if ( ret < 0 )
- {
- OSL_TRACE( "SIOCGIFFLAGS: %s\n", strerror(errno) );
- close(so);
- return ret;
- }
-
-
- /*
- * If it is the loopback device, do not consider it any further
- */
-
- if (ifr.ifr_flags & IFF_LOOPBACK)
- {
- OSL_TRACE( "SIOCGIFFLAGS : is LOOPBACK : %s\n", strerror(errno) );
- close(so);
- return 0;
- }
-
-
- /*
- * And now, the real thing: the get address
- */
-
-#if defined(SIOCGIFHWADDR) && !defined(SOLARIS)
- ret=ioctl(so, SIOCGIFHWADDR, &ifr);
-#else
- ret=ioctl(so, SIOCGIFADDR, &ifr);
-#endif
-
- if (ret < 0) {
- OSL_TRACE( "SIOCGIFADDR: %s\n", strerror(errno) );
- memset(hard_addr, 0, 32);
- close(so);
- return ret;
- }
-
- close(so);
-
-#if defined(SIOCGIFHWADDR) && !defined(SOLARIS)
- memcpy(hard_addr,ifr.ifr_hwaddr.sa_data,8);
-#else
- memcpy(hard_addr,ifr.ifr_ifru.ifru_addr.sa_data,8);
-#endif
-
-
- /*
- * Check, if no real, i.e. 00:00:00:00:00:00, address was retrieved.
- * The Linux dummy device has this kind of behaviour
- */
-
- ret=osl_checkAddr(hard_addr);
-
- if (ret < 0) {
- OSL_TRACE( "SIOCGIFADDR got '00:00:00:00:00:00'\n" );
- return ret;
- }
-
- return 1;
-}
-
-
-/*****************************************************************************/
-/* osl_checkAddr */
-/*****************************************************************************/
-
-static int osl_checkAddr(const char* addr)
-{
- if (addr[0]==0 && addr[1]==0 &&
- addr[2]==0 && addr[3]==0 &&
- addr[4]==0 && addr[5]==0)
- {
- return -1;
- }
- return 0;
-}
-
-
-#if defined (SPARC)
-
-#if defined (SOLARIS) && !defined(__sparcv8plus) && !defined(__sparcv9)
-#include <sys/types.h>
-#include <sys/processor.h>
-
-/*****************************************************************************/
-/* osl_InitSparcV9 */
-/*****************************************************************************/
-
-void osl_InterlockedCountSetV9(sal_Bool bV9);
-
-/*
- * osl_InitSparcV9() should be executed as early as possible. We place it in the
- * .init section of sal
- */
-#if defined ( __SUNPRO_C ) || defined ( __SUNPRO_CC )
-void osl_InitSparcV9(void);
-#pragma init (osl_InitSparcV9)
-#elif defined ( __GNUC__ )
-void osl_InitSparcV9(void) __attribute__((constructor));
-#endif
-
-void osl_InitSparcV9(void)
-{
- /* processor_info() identifies SPARCV8 (ie sun4c machines) simply as "sparc"
- * and SPARCV9 (ie ultra sparcs, sun4u) as "sparcv9". Since we know that we
- * run at least on a SPARCV8 architecture or better, any processor type != "sparc"
- * and != "i386" is considered to be SPARCV9 or better
- *
- * This way we are certain that this will still work if someone names SPARCV10
- * "foobar"
- */
- processor_info_t aInfo;
- int rc;
-
- rc = processor_info(0, &aInfo);
-
- if ( rc != -1 ) {
- if ( !strcmp( "sparc", aInfo.pi_processor_type ) /* SPARCV8 */
- || !strcmp( "i386", aInfo.pi_processor_type ) ) /* can't happen, but ... */
- return;
- /* we are reasonably certain to be on sparcv9/sparcv8plus or better */
- osl_InterlockedCountSetV9(sal_True);
- }
-}
-
-#endif /* SOLARIS */
-
-#if defined(NETBSD) && defined(GCC) && !defined(__sparcv9) && !defined(__sparc_v9__)
-
-#include <sys/param.h>
-#include <sys/sysctl.h>
-void osl_InitSparcV9(void) __attribute__((constructor));
-void osl_InterlockedCountSetV9(sal_Bool bV9);
-
-/* Determine which processor we are running on (sparc v8 or v9)
- * The approach is very similar to Solaris.
- */
-
-void osl_InitSparcV9(void)
-{
- int mib[2]={CTL_HW,HW_MACHINE};
- char processorname[256];
- size_t len=256;
-
- /* get the machine name */
- sysctl(mib, 2, processorname, &len, NULL, 0);
- if (!strncmp("sparc64",processorname, len)) {
- osl_InterlockedCountSetV9(sal_True);
- }
-}
-
-#endif /* NETBSD */
-
-#endif /* SPARC */
-
-#if defined ( LINUX ) && defined ( SPARC )
-#include <sys/utsname.h>
-void osl_InitSparcV9(void) __attribute__((constructor));
-void osl_InterlockedCountSetV9(sal_Bool bV9);
-/* Determine which processor we are running on (sparc v8 or v9)
- * The approach is very similar to Solaris.
- */
-void osl_InitSparcV9(void)
-{
- struct utsname name;
- int rc;
- rc = uname(&name);
- if ( rc != -1 ) {
- if ( !strcmp( "sparc", name.machine ))
- return;
- osl_InterlockedCountSetV9(sal_True);
- }
-}
-#endif
-
-#if ( defined(__GNUC__) && (defined(X86) || defined(X86_64)) )\
- || ( defined(SOLARIS) && defined (__SUNPRO_C) && defined(__i386) )
-
-/* Safe default */
-int osl_isSingleCPU = 0;
-
-/* Determine if we are on a multiprocessor/multicore/HT x86/x64 system
- *
- * The lock prefix for atomic operations in osl_[inc|de]crementInterlockedCount()
- * comes with a cost and is especially expensive on pre HT x86 single processor
- * systems, where it isn't needed at all.
- *
- * This should be run as early as possible, thus it's placed in the init section
- */
-#if defined(_SC_NPROCESSORS_CONF) /* i.e. MACOSX for Intel doesn't have this */
-#if defined(__GNUC__)
-void osl_interlockedCountCheckForSingleCPU(void) __attribute__((constructor));
-#elif defined(__SUNPRO_C)
-void osl_interlockedCountCheckForSingleCPU(void);
-#pragma init (osl_interlockedCountCheckForSingleCPU)
-#endif
-
-void osl_interlockedCountCheckForSingleCPU(void)
-{
- /* In case sysconfig fails be on the safe side,
- * consider it a multiprocessor/multicore/HT system */
- if ( sysconf(_SC_NPROCESSORS_CONF) == 1 ) {
- osl_isSingleCPU = 1;
- }
-}
-#endif /* defined(_SC_NPROCESSORS_CONF) */
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/uunxapi.cxx b/sal/osl/unx/uunxapi.cxx
deleted file mode 100644
index 572f7a9ec..000000000
--- a/sal/osl/unx/uunxapi.cxx
+++ /dev/null
@@ -1,133 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
- #ifndef _OSL_UUNXAPI_H_
- #include "uunxapi.h"
- #endif
-
- #ifndef __OSL_SYSTEM_H__
- #include "system.h"
- #endif
-
- #ifndef _LIMITS_H
- #include <limits.h>
- #endif
-
- #ifndef _RTL_USTRING_HXX_
- #include <rtl/ustring.hxx>
- #endif
-
- #ifndef _OSL_THREAD_H_
- #include <osl/thread.h>
- #endif
-
- //###########################
- inline rtl::OString OUStringToOString(const rtl_uString* s)
- {
- return rtl::OUStringToOString(
- rtl::OUString(const_cast<rtl_uString*>(s)),
- osl_getThreadTextEncoding());
- }
-
- //###########################
-#ifdef MACOSX
-/*
- * Helper function for resolving Mac native alias files (not the same as unix alias files)
- * and to return the resolved alias as rtl::OString
- */
- inline rtl::OString macxp_resolveAliasAndConvert(const rtl_uString* s)
- {
- rtl::OString p = OUStringToOString(s);
- sal_Char path[PATH_MAX];
- if (p.getLength() < PATH_MAX)
- {
- strcpy(path, p.getStr());
- macxp_resolveAlias(path, PATH_MAX);
- p = rtl::OString(path);
- }
- return p;
- }
-#endif /* MACOSX */
-
- //###########################
- //access_u
- int access_u(const rtl_uString* pustrPath, int mode)
- {
-#ifndef MACOSX // not MACOSX
- return access(OUStringToOString(pustrPath).getStr(), mode);
-#else
- return access(macxp_resolveAliasAndConvert(pustrPath).getStr(), mode);
-#endif
- }
-
- //#########################
- //realpath_u
- sal_Bool realpath_u(const rtl_uString* pustrFileName, rtl_uString** ppustrResolvedName)
- {
-#ifndef MACOSX // not MACOSX
- rtl::OString fn = OUStringToOString(pustrFileName);
-#else
- rtl::OString fn = macxp_resolveAliasAndConvert(pustrFileName);
-#endif
- char rp[PATH_MAX];
- bool bRet = realpath(fn.getStr(), rp);
-
- if (bRet)
- {
- rtl::OUString resolved = rtl::OStringToOUString(
- rtl::OString(static_cast<sal_Char*>(rp)),
- osl_getThreadTextEncoding());
-
- rtl_uString_assign(ppustrResolvedName, resolved.pData);
- }
- return bRet;
- }
-
- //#########################
- //lstat_u
- int lstat_u(const rtl_uString* pustrPath, struct stat* buf)
- {
-#ifndef MACOSX // not MACOSX
- return lstat(OUStringToOString(pustrPath).getStr(), buf);
-#else
- return lstat(macxp_resolveAliasAndConvert(pustrPath).getStr(), buf);
-#endif
- }
-
- //#########################
- // @see mkdir
- int mkdir_u(const rtl_uString* path, mode_t mode)
- {
- return mkdir(OUStringToOString(path).getStr(), mode);
- }
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/uunxapi.h b/sal/osl/unx/uunxapi.h
deleted file mode 100644
index 1082a3e7a..000000000
--- a/sal/osl/unx/uunxapi.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
- #ifndef _OSL_UUNXAPI_H_
- #define _OSL_UUNXAPI_H_
-
- #ifndef _UNISTD_H
- #include <unistd.h>
- #endif
-
- #ifndef _STDLIB_H
- #include <stdlib.h>
- #endif
-
- #ifndef _TYPES_H
- #include <sys/types.h>
- #endif
-
- #ifndef _STAT_H
- #include <sys/stat.h>
- #endif
-
- #ifndef _RTL_USTRING_H_
- #include <rtl/ustring.h>
- #endif
-
-
- #ifdef __cplusplus
- extern "C"
- {
- #endif
-
- /* @see access */
- int access_u(const rtl_uString* pustrPath, int mode);
-
- /***********************************
- @descr
- The return value differs from the
- realpath function
-
- @returns sal_True on success else
- sal_False
-
- @see realpath
- **********************************/
- sal_Bool realpath_u(
- const rtl_uString* pustrFileName,
- rtl_uString** ppustrResolvedName);
-
- /* @see lstat */
- int lstat_u(const rtl_uString* pustrPath, struct stat* buf);
-
- /* @see mkdir */
- int mkdir_u(const rtl_uString* path, mode_t mode);
-
- #ifdef __cplusplus
- }
- #endif
-
-
- #endif /* _OSL_UUNXAPI_H_ */
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/unx/uunxapi.hxx b/sal/osl/unx/uunxapi.hxx
deleted file mode 100644
index 5886d11e8..000000000
--- a/sal/osl/unx/uunxapi.hxx
+++ /dev/null
@@ -1,101 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
- #ifndef _OSL_UUNXAPI_HXX_
- #define _OSL_UUNXAPI_HXX_
-
- #ifndef _OSL_UUNXAPI_H_
- #include "uunxapi.h"
- #endif
-
- #ifndef _RTL_USTRING_HXX_
- #include <rtl/ustring.hxx>
- #endif
-
- namespace osl
- {
-
- /***********************************
- osl::access
-
- @see access
- **********************************/
-
- inline int access(const rtl::OUString& ustrPath, int mode)
- {
- return access_u(ustrPath.pData, mode);
- }
-
- /***********************************
- osl::realpath
-
- @descr
- The return value differs from the
- realpath function
-
- @returns sal_True on success else
- sal_False
-
- @see realpath
- **********************************/
-
- inline sal_Bool realpath(
- const rtl::OUString& ustrFileName,
- rtl::OUString& ustrResolvedName)
- {
- return realpath_u(ustrFileName.pData, &ustrResolvedName.pData);
- }
-
-
- /***********************************
- osl::lstat
-
- @see lstat
- **********************************/
-
- inline int lstat(const rtl::OUString& ustrPath, struct stat& buf)
- {
- return lstat_u(ustrPath.pData, &buf);
- }
-
- /***********************************
- osl::mkdir
- @see mkdir
- **********************************/
- inline int mkdir(const rtl::OUString& aPath, mode_t aMode)
- {
- return mkdir_u(aPath.pData, aMode);
- }
-
- } // end namespace osl
-
-
- #endif /* _OSL_UUNXAPI_HXX_ */
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/conditn.c b/sal/osl/w32/conditn.c
deleted file mode 100644
index d05dce2e2..000000000
--- a/sal/osl/w32/conditn.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "system.h"
-
-#include <osl/conditn.h>
-#include <osl/diagnose.h>
-#include <osl/time.h>
-
-/*
- under WIN32, we use the void* oslCondition
- as a WIN32 HANDLE (which is also a 32-bit value)
-*/
-
-/*****************************************************************************/
-/* osl_createCondition */
-/*****************************************************************************/
-oslCondition SAL_CALL osl_createCondition(void)
-{
- oslCondition Condition;
-
- Condition= (oslCondition)CreateEvent(0, /* no security */
- sal_True, /* manual reset */
- sal_False, /* initial state not signaled */
- 0); /* automatic name */
-
- return Condition;
-
-}
-
-/*****************************************************************************/
-/* osl_destroyCondition */
-/*****************************************************************************/
-void SAL_CALL osl_destroyCondition(oslCondition Condition)
-{
- if(Condition)
- {
- OSL_VERIFY(CloseHandle(Condition));
- }
-}
-
-/*****************************************************************************/
-/* osl_setCondition */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_setCondition(oslCondition Condition)
-{
- OSL_ASSERT(Condition);
-
- return (sal_Bool)(SetEvent((HANDLE)Condition) != FALSE);
-}
-
-/*****************************************************************************/
-/* osl_resetCondition */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_resetCondition(oslCondition Condition)
-{
- OSL_ASSERT(Condition);
-
- return (sal_Bool)(ResetEvent((HANDLE)Condition) != FALSE);
-}
-
-/*****************************************************************************/
-/* osl_waitCondition */
-/*****************************************************************************/
-oslConditionResult SAL_CALL osl_waitCondition(oslCondition Condition,
- const TimeValue* pTimeout)
-{
- DWORD timeout;
-
- OSL_ASSERT(Condition);
-
- if (pTimeout)
- timeout = pTimeout->Seconds * 1000 + pTimeout->Nanosec / 1000000L;
- else
- timeout = INFINITE;
-
- /* It's necessary to process SendMessage calls to the current thread to give other threads
- access to COM objects instatiated in this thread */
-
- while ( 1 )
- {
- /* Only wake up if a SendMessage call to the threads message loop is detected */
- switch( MsgWaitForMultipleObjects( 1, (HANDLE *)(&Condition), FALSE, timeout, QS_SENDMESSAGE ) )
- {
- case WAIT_OBJECT_0 + 1:
- {
- MSG msg;
-
- /* We Must not dispatch the message. PM_NOREMOVE leaves the message queue untouched
- but dispatches SendMessage calls automatically */
-
- PeekMessage( &msg, NULL, 0, 0, PM_NOREMOVE );
- }
- break;
-
- case WAIT_OBJECT_0:
- return (osl_cond_result_ok);
-
- case WAIT_TIMEOUT:
- return (osl_cond_result_timeout);
-
- default:
- return (osl_cond_result_error);
- }
- }
-}
-
-/*****************************************************************************/
-/* osl_checkCondition */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_checkCondition(oslCondition Condition)
-{
- OSL_ASSERT(Condition);
-
- return (sal_Bool)(WaitForSingleObject((HANDLE)Condition, 0) == WAIT_OBJECT_0);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/diagnose.c b/sal/osl/w32/diagnose.c
deleted file mode 100755
index 93240e084..000000000
--- a/sal/osl/w32/diagnose.c
+++ /dev/null
@@ -1,171 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "system.h"
-
-#define NO_DEBUG_CRT
-
-#include <osl/diagnose.h>
-#include <osl/thread.h>
-
-#include "printtrace.h"
-
-#define NO_DEBUG_CRT
-
-static pfunc_osl_printDebugMessage _pPrintDebugMessage = NULL;
-static pfunc_osl_printDetailedDebugMessage _pPrintDetailedDebugMessage = NULL;
-
-pfunc_osl_printDebugMessage SAL_CALL osl_setDebugMessageFunc( pfunc_osl_printDebugMessage pNewFunc )
-{
- pfunc_osl_printDebugMessage pOldFunc = _pPrintDebugMessage;
- _pPrintDebugMessage = pNewFunc;
-
- return pOldFunc;
-}
-
-pfunc_osl_printDetailedDebugMessage SAL_CALL osl_setDetailedDebugMessageFunc( pfunc_osl_printDetailedDebugMessage pNewFunc )
-{
- pfunc_osl_printDetailedDebugMessage pOldFunc = _pPrintDetailedDebugMessage;
- _pPrintDetailedDebugMessage = pNewFunc;
- return pOldFunc;
-}
-
-/*
- Trace output
-*/
-
-void SAL_CALL osl_breakDebug(void)
-{
- DebugBreak();
-}
-
-void osl_trace(char const * pszFormat, ...) {
- va_list args;
- va_start(args, pszFormat);
- if ( IsDebuggerPresent() )
- {
- sal_Char szMessage[512];
- int written = _vsnprintf(
- szMessage, sizeof(szMessage) - 2, pszFormat, args );
- if ( written == -1 )
- written = sizeof(szMessage) - 2;
- szMessage[ written++ ] = '\n';
- szMessage[ written ] = 0;
- OutputDebugString( szMessage );
- }
- printTrace((unsigned long) _getpid(), pszFormat, args);
- va_end(args);
-}
-
-sal_Bool SAL_CALL osl_assertFailedLine(const sal_Char* pszFileName, sal_Int32 nLine, const sal_Char* pszMessage)
-{
-#ifndef NO_DEBUG_CRT
- return (_CrtDbgReport(_CRT_ASSERT, pszFileName, nLine, NULL, pszMessage));
-#else
- HWND hWndParent;
- UINT nFlags;
-
- /* get app name or NULL if unknown (don't call assert) */
- LPCSTR lpszAppName = "Error";
- sal_Char szMessage[512];
- char const * env = getenv( "SAL_DIAGNOSE_ABORT" );
-
- /* format message into buffer */
- szMessage[sizeof(szMessage)-1] = '\0'; /* zero terminate always */
- _snprintf(szMessage, sizeof(szMessage)-1, "%s: File %hs, Line %d\n:%s\n",
- lpszAppName, pszFileName, nLine, pszMessage);
-
- OutputDebugString(szMessage);
-
- if ( _pPrintDetailedDebugMessage )
- _pPrintDetailedDebugMessage( pszFileName, nLine, pszMessage );
- else if ( _pPrintDebugMessage )
- _pPrintDebugMessage( szMessage );
- else
- {
- if ( !getenv( "DISABLE_SAL_DBGBOX" ) )
- {
- TCHAR szBoxMessage[1024];
- int nCode;
-
- /* active popup window for the current thread */
- hWndParent = GetActiveWindow();
- if (hWndParent != NULL)
- hWndParent = GetLastActivePopup(hWndParent);
-
- /* set message box flags */
- nFlags = MB_TASKMODAL | MB_ICONWARNING | MB_YESNOCANCEL | MB_DEFBUTTON2 | MB_SETFOREGROUND;
- if (hWndParent == NULL)
- nFlags |= MB_SERVICE_NOTIFICATION;
-
- /* display the assert */
-
- szBoxMessage[sizeof(szBoxMessage)-1] = 0;
- _snprintf(szBoxMessage, sizeof(szBoxMessage)-1, "%s\n( Yes=Abort / No=Ignore / Cancel=Debugger )",
- szMessage);
-
- nCode = MessageBox(hWndParent, szBoxMessage, "Assertion Failed!", nFlags);
-
- if (nCode == IDYES)
- FatalExit(-1);
-
- if (nCode == IDNO)
- return sal_False; /* ignore */
-
- if (nCode == IDCANCEL)
- return sal_True; /* will cause oslDebugBreak */
- }
- return ( ( env != NULL ) && ( *env != '\0' ) );
- }
-
- return sal_False;
-#endif /* NO_DEBUG_CRT */
-}
-
-sal_Int32 SAL_CALL osl_reportError(sal_uInt32 nType, const sal_Char* pszMessage)
-{
- UINT nFlags;
- int nDisposition;
-
- // active popup window for the current thread
- HWND hWndParent = GetActiveWindow();
- if (hWndParent != NULL)
- hWndParent = GetLastActivePopup(hWndParent);
-
- /* set message box flags */
- nFlags = MB_TASKMODAL | MB_ICONERROR | MB_YESNOCANCEL | MB_DEFBUTTON2 | MB_SETFOREGROUND;
- if (hWndParent == NULL)
- nFlags |= MB_SERVICE_NOTIFICATION;
-
- // display the assert
- nDisposition = MessageBox(hWndParent, pszMessage, "Exception!", nFlags);
- (void)nType; //unused, but part of public API/ABI
- return nDisposition;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/dllentry.c b/sal/osl/w32/dllentry.c
deleted file mode 100644
index 09628d75f..000000000
--- a/sal/osl/w32/dllentry.c
+++ /dev/null
@@ -1,358 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifdef _MSC_VER
-#pragma warning(push,1) /* disable warnings within system headers */
-#endif
-#include <windows.h>
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-#include <tlhelp32.h>
-#include <systools/win32/uwinapi.h>
-#include <winsock.h>
-#include <osl/diagnose.h>
-#include <sal/types.h>
-#include <float.h>
-
-#include <osl/diagnose.h>
-#include <osl/mutex.h>
-#include <sal/types.h>
-
-//------------------------------------------------------------------------------
-// externals
-//------------------------------------------------------------------------------
-
-extern DWORD g_dwTLSTextEncodingIndex;
-extern void SAL_CALL _osl_callThreadKeyCallbackOnThreadDetach(void);
-extern CRITICAL_SECTION g_ThreadKeyListCS;
-extern oslMutex g_Mutex;
-extern oslMutex g_CurrentDirectoryMutex;
-
-extern void rtl_locale_fini (void);
-extern void rtl_memory_fini (void);
-extern void rtl_cache_fini (void);
-extern void rtl_arena_fini (void);
-
-#ifdef __MINGW32__
-
-typedef void (*func_ptr) (void);
-extern func_ptr __CTOR_LIST__[];
-extern func_ptr __DTOR_LIST__[];
-
-static void do_startup(void);
-static void do_cleanup(void);
-
-#else
-
-/*
-This is needed because DllMain is called after static constructors. A DLL's
-startup and shutdown sequence looks like this:
-
-_pRawDllMain()
-_CRT_INIT()
-DllMain()
-....
-DllMain()
-_CRT_INIT()
-_pRawDllMain()
-
-*/
-
-static BOOL WINAPI _RawDllMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved );
-extern BOOL (WINAPI *_pRawDllMain)(HANDLE, DWORD, LPVOID) = _RawDllMain;
-
-#endif
-
-//------------------------------------------------------------------------------
-// DllMain
-//------------------------------------------------------------------------------
-int osl_isSingleCPU = 0;
-
-#ifdef __MINGW32__
-
-void
-__do_global_dtors (void)
-{
- static func_ptr *p = __DTOR_LIST__ + 1;
-
- /*
- * Call each destructor in the destructor list until a null pointer
- * is encountered.
- */
- while (*p)
- {
- (*(p)) ();
- p++;
- }
-}
-
-void
-__do_global_ctors (void)
-{
- unsigned long nptrs = (unsigned long) __CTOR_LIST__[0];
- unsigned i;
-
- /*
- * If the first entry in the constructor list is -1 then the list
- * is terminated with a null entry. Otherwise the first entry was
- * the number of pointers in the list.
- */
- if (nptrs == -1)
- {
- for (nptrs = 0; __CTOR_LIST__[nptrs + 1] != 0; nptrs++)
- ;
- }
-
- /*
- * Go through the list backwards calling constructors.
- */
- for (i = nptrs; i >= 1; i--)
- {
- __CTOR_LIST__[i] ();
- }
-
- /*
- * Register the destructors for processing on exit.
- */
- atexit (__do_global_dtors);
-}
-
-static int initialized = 0;
-
-void
-__main (void)
-{
- if (!initialized)
- {
- initialized = 1;
- do_startup();
- __do_global_ctors ();
- }
-}
-
-static void do_startup( void )
-{
-#else
-static BOOL WINAPI _RawDllMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved )
-{
- (void)hinstDLL; /* avoid warnings */
- (void)lpvReserved; /* avoid warnings */
-
- switch (fdwReason)
- {
- case DLL_PROCESS_ATTACH:
- {
-#endif
-
- SYSTEM_INFO SystemInfo;
-
- GetSystemInfo(&SystemInfo);
-
- /* Determine if we are on a multiprocessor/multicore/HT x86/x64 system
- *
- * The lock prefix for atomic operations in osl_[inc|de]crementInterlockedCount()
- * comes with a cost and is especially expensive on pre HT x86 single processor
- * systems, where it isn't needed at all.
- */
- if ( SystemInfo.dwNumberOfProcessors == 1 ) {
- osl_isSingleCPU = 1;
- }
-
-#if OSL_DEBUG_LEVEL < 2
- /* Suppress file error messages from system like "Floppy A: not inserted" */
- SetErrorMode( SEM_NOOPENFILEERRORBOX | SEM_FAILCRITICALERRORS );
-#endif
-
- /* initialize global mutex */
- g_Mutex = osl_createMutex();
-
- /* initialize "current directory" mutex */
- g_CurrentDirectoryMutex = osl_createMutex();
-
- g_dwTLSTextEncodingIndex = TlsAlloc();
- InitializeCriticalSection( &g_ThreadKeyListCS );
-
- //We disable floating point exceptions. This is the usual state at program startup
- //but on Windows 98 and ME this is not always the case.
- _control87(_MCW_EM, _MCW_EM);
-#ifdef __MINGW32__
- atexit(do_cleanup);
-}
-
-void do_cleanup( void )
-{
-#else
- break;
- }
-
- case DLL_PROCESS_DETACH:
-#endif
-
- WSACleanup( );
-
- TlsFree( g_dwTLSTextEncodingIndex );
- DeleteCriticalSection( &g_ThreadKeyListCS );
-
- osl_destroyMutex( g_Mutex );
-
- osl_destroyMutex( g_CurrentDirectoryMutex );
-
-#ifndef __MINGW32__
-
- /*
-
- On a product build memory management finalization might
- cause a crash without assertion (assertions off) if heap is
- corrupted. But a crash report won't help here because at
- this point all other threads have been terminated and only
- ntdll is on the stack. No chance to find the reason for the
- corrupted heap if so.
-
- So annoying the user with a crash report is completly useless.
-
- */
-
-#ifndef DBG_UTIL
- __try
-#endif
- {
- /* cleanup locale hashtable */
- rtl_locale_fini();
-
- /* finalize memory management */
- rtl_memory_fini();
- rtl_cache_fini();
- rtl_arena_fini();
- }
-#ifndef DBG_UTIL
- __except( EXCEPTION_EXECUTE_HANDLER )
- {
- }
-#endif
- break;
- }
-
- return TRUE;
-#endif
-}
-
-static DWORD GetParentProcessId()
-{
- DWORD dwParentProcessId = 0;
- HANDLE hSnapshot = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
-
- if ( IsValidHandle( hSnapshot ) )
- {
- PROCESSENTRY32 pe;
- BOOL fSuccess;
-
- ZeroMemory( &pe, sizeof(pe) );
- pe.dwSize = sizeof(pe);
- fSuccess = Process32First( hSnapshot, &pe );
-
- while( fSuccess )
- {
- if ( GetCurrentProcessId() == pe.th32ProcessID )
- {
- dwParentProcessId = pe.th32ParentProcessID;
- break;
- }
-
- fSuccess = Process32Next( hSnapshot, &pe );
- }
-
- CloseHandle( hSnapshot );
- }
-
- return dwParentProcessId;
-}
-
-static DWORD WINAPI ParentMonitorThreadProc( LPVOID lpParam )
-{
- DWORD dwParentProcessId = (DWORD)lpParam;
-
- HANDLE hParentProcess = OpenProcess( SYNCHRONIZE, FALSE, dwParentProcessId );
- if ( IsValidHandle( hParentProcess ) )
- {
- if ( WAIT_OBJECT_0 == WaitForSingleObject( hParentProcess, INFINITE ) )
- {
- TerminateProcess( GetCurrentProcess(), 0 );
- }
- CloseHandle( hParentProcess );
- }
- return 0;
-}
-
-BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved )
-{
- (void)hinstDLL; /* avoid warning */
- (void)lpvReserved; /* avoid warning */
- switch (fdwReason)
- {
- case DLL_PROCESS_ATTACH:
- {
- TCHAR szBuffer[64];
-
- // This code will attach the process to it's parent process
- // if the parent process had set the environment variable.
- // The corresponding code (setting the environment variable)
- // is is desktop/win32/source/officeloader.cxx
-
-
- DWORD dwResult = GetEnvironmentVariable( "ATTACHED_PARENT_PROCESSID", szBuffer, sizeof(szBuffer) );
-
- if ( dwResult && dwResult < sizeof(szBuffer) )
- {
- DWORD dwThreadId = 0;
-
- DWORD dwParentProcessId = (DWORD)atol( szBuffer );
-
- if ( dwParentProcessId && GetParentProcessId() == dwParentProcessId )
- {
- // No error check, it works or it does not
- // Thread should only be started for headless mode, see desktop/win32/source/officeloader.cxx
- CreateThread( NULL, 0, ParentMonitorThreadProc, (LPVOID)dwParentProcessId, 0, &dwThreadId ); //
- }
- }
-
- return TRUE;
- }
-
- case DLL_THREAD_ATTACH:
- break;
-
- case DLL_THREAD_DETACH:
- _osl_callThreadKeyCallbackOnThreadDetach( );
- break;
- }
-
- return TRUE;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/file.cxx b/sal/osl/w32/file.cxx
deleted file mode 100644
index 1bb676417..000000000
--- a/sal/osl/w32/file.cxx
+++ /dev/null
@@ -1,1190 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#define UNICODE
-#define _UNICODE
-#define _WIN32_WINNT 0x0500
-#include "systools/win32/uwinapi.h"
-
-#include "osl/file.hxx"
-
-#include "file_url.h"
-#include "file_error.h"
-
-#include "osl/diagnose.h"
-#include "rtl/alloc.h"
-#include "rtl/byteseq.h"
-#include "rtl/ustring.hxx"
-
-#include <stdio.h>
-#include <tchar.h>
-
-#ifdef __MINGW32__
-#include <wchar.h>
-#include <ctype.h>
-#endif
-
-#include <algorithm>
-#include <limits>
-
-#ifdef max /* conflict w/ std::numeric_limits<T>::max() */
-#undef max
-#endif
-#ifdef min
-#undef min
-#endif
-
-//##################################################################
-// File handle implementation
-//##################################################################
-struct FileHandle_Impl
-{
- CRITICAL_SECTION m_mutex;
- HANDLE m_hFile;
-
- /** State
- */
- enum StateBits
- {
- STATE_SEEKABLE = 1, /* open() sets, iff regular file */
- STATE_READABLE = 2, /* open() sets, read() requires */
- STATE_WRITEABLE = 4, /* open() sets, write() requires */
- STATE_MODIFIED = 8 /* write() sets, flush() resets */
- };
- int m_state;
-
- sal_uInt64 m_size; /* file size */
- LONGLONG m_offset; /* physical offset from begin of file */
- LONGLONG m_filepos; /* logical offset from begin of file */
-
- LONGLONG m_bufptr; /* buffer offset from begin of file */
- SIZE_T m_buflen; /* buffer filled [0, m_bufsiz - 1] */
-
- SIZE_T m_bufsiz;
- sal_uInt8 * m_buffer;
-
- explicit FileHandle_Impl (HANDLE hFile);
- ~FileHandle_Impl();
-
- static void* operator new(size_t n);
- static void operator delete(void * p, size_t);
- static SIZE_T getpagesize();
-
- sal_uInt64 getPos() const;
- oslFileError setPos (sal_uInt64 uPos);
-
- sal_uInt64 getSize() const;
- oslFileError setSize (sal_uInt64 uPos);
-
- oslFileError readAt (
- LONGLONG nOffset,
- void * pBuffer,
- DWORD nBytesRequested,
- sal_uInt64 * pBytesRead);
-
- oslFileError writeAt (
- LONGLONG nOffset,
- void const * pBuffer,
- DWORD nBytesToWrite,
- sal_uInt64 * pBytesWritten);
-
- oslFileError readFileAt (
- LONGLONG nOffset,
- void * pBuffer,
- sal_uInt64 uBytesRequested,
- sal_uInt64 * pBytesRead);
-
- oslFileError writeFileAt (
- LONGLONG nOffset,
- void const * pBuffer,
- sal_uInt64 uBytesToWrite,
- sal_uInt64 * pBytesWritten);
-
- oslFileError readLineAt (
- LONGLONG nOffset,
- sal_Sequence ** ppSequence,
- sal_uInt64 * pBytesRead);
-
- oslFileError writeSequence_Impl (
- sal_Sequence ** ppSequence,
- SIZE_T * pnOffset,
- const void * pBuffer,
- SIZE_T nBytes);
-
- oslFileError syncFile();
-
- /** Buffer cache / allocator.
- */
- class Allocator
- {
- rtl_cache_type * m_cache;
- SIZE_T m_bufsiz;
-
- Allocator (Allocator const &);
- Allocator & operator= (Allocator const &);
-
- public:
- static Allocator & get();
-
- void allocate (sal_uInt8 ** ppBuffer, SIZE_T * pnSize);
- void deallocate (sal_uInt8 * pBuffer);
-
- protected:
- Allocator();
- ~Allocator();
- };
-
- /** Guard.
- */
- class Guard
- {
- LPCRITICAL_SECTION m_mutex;
-
- public:
- explicit Guard(LPCRITICAL_SECTION pMutex);
- ~Guard();
- };
-};
-
-FileHandle_Impl::Allocator &
-FileHandle_Impl::Allocator::get()
-{
- static Allocator g_aBufferAllocator;
- return g_aBufferAllocator;
-}
-
-FileHandle_Impl::Allocator::Allocator()
- : m_cache (0),
- m_bufsiz (0)
-{
- SIZE_T const pagesize = FileHandle_Impl::getpagesize();
- m_cache = rtl_cache_create (
- "osl_file_buffer_cache", pagesize, 0, 0, 0, 0, 0, 0, 0);
- if (0 != m_cache)
- m_bufsiz = pagesize;
-}
-
-FileHandle_Impl::Allocator::~Allocator()
-{
- rtl_cache_destroy(m_cache), m_cache = 0;
-}
-
-void FileHandle_Impl::Allocator::allocate (sal_uInt8 ** ppBuffer, SIZE_T * pnSize)
-{
- OSL_PRECOND((0 != ppBuffer) && (0 != pnSize), "FileHandle_Impl::Allocator::allocate(): contract violation");
- *ppBuffer = static_cast< sal_uInt8* >(rtl_cache_alloc(m_cache)), *pnSize = m_bufsiz;
-}
-
-void FileHandle_Impl::Allocator::deallocate (sal_uInt8 * pBuffer)
-{
- if (0 != pBuffer)
- rtl_cache_free (m_cache, pBuffer);
-}
-
-FileHandle_Impl::Guard::Guard(LPCRITICAL_SECTION pMutex)
- : m_mutex (pMutex)
-{
- OSL_PRECOND (m_mutex != 0, "FileHandle_Impl::Guard::Guard(): null pointer.");
- ::EnterCriticalSection (m_mutex);
-}
-FileHandle_Impl::Guard::~Guard()
-{
- OSL_PRECOND (m_mutex != 0, "FileHandle_Impl::Guard::~Guard(): null pointer.");
- ::LeaveCriticalSection (m_mutex);
-}
-
-FileHandle_Impl::FileHandle_Impl(HANDLE hFile)
- : m_hFile (hFile),
- m_state (STATE_READABLE | STATE_WRITEABLE),
- m_size (0),
- m_offset (0),
- m_filepos (0),
- m_bufptr (-1),
- m_buflen (0),
- m_bufsiz (0),
- m_buffer (0)
-{
- ::InitializeCriticalSection (&m_mutex);
- Allocator::get().allocate (&m_buffer, &m_bufsiz);
- if (m_buffer != 0)
- memset (m_buffer, 0, m_bufsiz);
-}
-
-FileHandle_Impl::~FileHandle_Impl()
-{
- Allocator::get().deallocate (m_buffer), m_buffer = 0;
- ::DeleteCriticalSection (&m_mutex);
-}
-
-void * FileHandle_Impl::operator new(size_t n)
-{
- return rtl_allocateMemory(n);
-}
-
-void FileHandle_Impl::operator delete(void * p, size_t)
-{
- rtl_freeMemory(p);
-}
-
-SIZE_T FileHandle_Impl::getpagesize()
-{
- SYSTEM_INFO info;
- ::GetSystemInfo (&info);
- return sal::static_int_cast< SIZE_T >(info.dwPageSize);
-}
-
-sal_uInt64 FileHandle_Impl::getPos() const
-{
- return sal::static_int_cast< sal_uInt64 >(m_filepos);
-}
-
-oslFileError FileHandle_Impl::setPos (sal_uInt64 uPos)
-{
- m_filepos = sal::static_int_cast< LONGLONG >(uPos);
- return osl_File_E_None;
-}
-
-sal_uInt64 FileHandle_Impl::getSize() const
-{
- LONGLONG bufend = std::max((LONGLONG)(0), m_bufptr) + m_buflen;
- return std::max(m_size, sal::static_int_cast< sal_uInt64 >(bufend));
-}
-
-oslFileError FileHandle_Impl::setSize (sal_uInt64 uSize)
-{
- LARGE_INTEGER nDstPos; nDstPos.QuadPart = sal::static_int_cast< LONGLONG >(uSize);
- if (!::SetFilePointerEx(m_hFile, nDstPos, 0, FILE_BEGIN))
- return oslTranslateFileError( GetLastError() );
-
- if (!::SetEndOfFile(m_hFile))
- return oslTranslateFileError( GetLastError() );
- m_size = uSize;
-
- nDstPos.QuadPart = m_offset;
- if (!::SetFilePointerEx(m_hFile, nDstPos, 0, FILE_BEGIN))
- return oslTranslateFileError( GetLastError() );
-
- return osl_File_E_None;
-}
-
-oslFileError FileHandle_Impl::readAt (
- LONGLONG nOffset,
- void * pBuffer,
- DWORD nBytesRequested,
- sal_uInt64 * pBytesRead)
-{
- OSL_PRECOND(m_state & STATE_SEEKABLE, "FileHandle_Impl::readAt(): not seekable");
- if (!(m_state & STATE_SEEKABLE))
- return osl_File_E_SPIPE;
-
- OSL_PRECOND(m_state & STATE_READABLE, "FileHandle_Impl::readAt(): not readable");
- if (!(m_state & STATE_READABLE))
- return osl_File_E_BADF;
-
- if (nOffset != m_offset)
- {
- LARGE_INTEGER liOffset; liOffset.QuadPart = nOffset;
- if (!::SetFilePointerEx(m_hFile, liOffset, 0, FILE_BEGIN))
- return oslTranslateFileError( GetLastError() );
- m_offset = nOffset;
- }
-
- DWORD dwDone = 0;
- if (!::ReadFile(m_hFile, pBuffer, nBytesRequested, &dwDone, 0))
- return oslTranslateFileError( GetLastError() );
- m_offset += dwDone;
-
- *pBytesRead = dwDone;
- return osl_File_E_None;
-}
-
-oslFileError FileHandle_Impl::writeAt (
- LONGLONG nOffset,
- void const * pBuffer,
- DWORD nBytesToWrite,
- sal_uInt64 * pBytesWritten)
-{
- OSL_PRECOND(m_state & STATE_SEEKABLE, "FileHandle_Impl::writeAt(): not seekable");
- if (!(m_state & STATE_SEEKABLE))
- return osl_File_E_SPIPE;
-
- OSL_PRECOND(m_state & STATE_WRITEABLE, "FileHandle_Impl::writeAt(): not writeable");
- if (!(m_state & STATE_WRITEABLE))
- return osl_File_E_BADF;
-
- if (nOffset != m_offset)
- {
- LARGE_INTEGER liOffset; liOffset.QuadPart = nOffset;
- if (!::SetFilePointerEx (m_hFile, liOffset, 0, FILE_BEGIN))
- return oslTranslateFileError( GetLastError() );
- m_offset = nOffset;
- }
-
- DWORD dwDone = 0;
- if (!::WriteFile(m_hFile, pBuffer, nBytesToWrite, &dwDone, 0))
- return oslTranslateFileError( GetLastError() );
- m_offset += dwDone;
-
- m_size = std::max(m_size, sal::static_int_cast< sal_uInt64 >(m_offset));
-
- *pBytesWritten = dwDone;
- return osl_File_E_None;
-}
-
-oslFileError FileHandle_Impl::readFileAt (
- LONGLONG nOffset,
- void * pBuffer,
- sal_uInt64 uBytesRequested,
- sal_uInt64 * pBytesRead)
-{
- static sal_uInt64 const g_limit_dword = std::numeric_limits< DWORD >::max();
- if (g_limit_dword < uBytesRequested)
- return osl_File_E_OVERFLOW;
- DWORD nBytesRequested = sal::static_int_cast< DWORD >(uBytesRequested);
-
- if (0 == (m_state & STATE_SEEKABLE))
- {
- // not seekable (pipe)
- DWORD dwDone = 0;
- if (!::ReadFile(m_hFile, pBuffer, nBytesRequested, &dwDone, 0))
- return oslTranslateFileError( GetLastError() );
- *pBytesRead = dwDone;
- return osl_File_E_None;
- }
- else if (0 == m_buffer)
- {
- // not buffered
- return readAt (nOffset, pBuffer, nBytesRequested, pBytesRead);
- }
- else
- {
- sal_uInt8 * buffer = static_cast< sal_uInt8* >(pBuffer);
- for (*pBytesRead = 0; nBytesRequested > 0; )
- {
- LONGLONG const bufptr = (nOffset / m_bufsiz) * m_bufsiz;
- SIZE_T const bufpos = (nOffset % m_bufsiz);
-
- if (bufptr != m_bufptr)
- {
- // flush current buffer
- oslFileError result = syncFile();
- if (result != osl_File_E_None)
- return (result);
- m_bufptr = -1, m_buflen = 0;
-
- if (nBytesRequested >= m_bufsiz)
- {
- // buffer too small, read through from file
- sal_uInt64 uDone = 0;
- result = readAt (nOffset, &(buffer[*pBytesRead]), nBytesRequested, &uDone);
- if (result != osl_File_E_None)
- return (result);
-
- nBytesRequested -= sal::static_int_cast< DWORD >(uDone), *pBytesRead += uDone;
- return osl_File_E_None;
- }
-
- // update buffer (pointer)
- sal_uInt64 uDone = 0;
- result = readAt (bufptr, m_buffer, m_bufsiz, &uDone);
- if (result != osl_File_E_None)
- return (result);
- m_bufptr = bufptr, m_buflen = sal::static_int_cast< SIZE_T >(uDone);
- }
- if (bufpos >= m_buflen)
- {
- // end of file
- return osl_File_E_None;
- }
-
- SIZE_T const bytes = std::min(m_buflen - bufpos, (SIZE_T) nBytesRequested);
- memcpy (&(buffer[*pBytesRead]), &(m_buffer[bufpos]), bytes);
- nBytesRequested -= bytes, *pBytesRead += bytes, nOffset += bytes;
- }
- return osl_File_E_None;
- }
-}
-
-oslFileError FileHandle_Impl::writeFileAt (
- LONGLONG nOffset,
- void const * pBuffer,
- sal_uInt64 uBytesToWrite,
- sal_uInt64 * pBytesWritten)
-{
- static sal_uInt64 const g_limit_dword = std::numeric_limits< DWORD >::max();
- if (g_limit_dword < uBytesToWrite)
- return osl_File_E_OVERFLOW;
- DWORD nBytesToWrite = sal::static_int_cast< DWORD >(uBytesToWrite);
-
- if (0 == (m_state & STATE_SEEKABLE))
- {
- // not seekable (pipe)
- DWORD dwDone = 0;
- if (!::WriteFile(m_hFile, pBuffer, nBytesToWrite, &dwDone, 0))
- return oslTranslateFileError( GetLastError() );
- *pBytesWritten = dwDone;
- return osl_File_E_None;
- }
- else if (0 == m_buffer)
- {
- // not buffered
- return writeAt(nOffset, pBuffer, nBytesToWrite, pBytesWritten);
- }
- else
- {
- sal_uInt8 const * buffer = static_cast< sal_uInt8 const* >(pBuffer);
- for (*pBytesWritten = 0; nBytesToWrite > 0; )
- {
- LONGLONG const bufptr = (nOffset / m_bufsiz) * m_bufsiz;
- SIZE_T const bufpos = (nOffset % m_bufsiz);
- if (bufptr != m_bufptr)
- {
- // flush current buffer
- oslFileError result = syncFile();
- if (result != osl_File_E_None)
- return (result);
- m_bufptr = -1, m_buflen = 0;
-
- if (nBytesToWrite >= m_bufsiz)
- {
- // buffer too small, write through to file
- sal_uInt64 uDone = 0;
- result = writeAt (nOffset, &(buffer[*pBytesWritten]), nBytesToWrite, &uDone);
- if (result != osl_File_E_None)
- return (result);
- if (uDone != nBytesToWrite)
- return osl_File_E_IO;
-
- nBytesToWrite -= sal::static_int_cast< DWORD >(uDone), *pBytesWritten += uDone;
- return osl_File_E_None;
- }
-
- // update buffer (pointer)
- sal_uInt64 uDone = 0;
- result = readAt (bufptr, m_buffer, m_bufsiz, &uDone);
- if (result != osl_File_E_None)
- return (result);
- m_bufptr = bufptr, m_buflen = sal::static_int_cast< SIZE_T >(uDone);
- }
-
- SIZE_T const bytes = std::min(m_bufsiz - bufpos, (SIZE_T) nBytesToWrite);
- memcpy (&(m_buffer[bufpos]), &(buffer[*pBytesWritten]), bytes);
- nBytesToWrite -= bytes, *pBytesWritten += bytes, nOffset += bytes;
-
- m_buflen = std::max(m_buflen, bufpos + bytes);
- m_state |= STATE_MODIFIED;
- }
- return osl_File_E_None;
- }
-}
-
-oslFileError FileHandle_Impl::readLineAt (
- LONGLONG nOffset,
- sal_Sequence ** ppSequence,
- sal_uInt64 * pBytesRead)
-{
- oslFileError result = osl_File_E_None;
-
- LONGLONG bufptr = (nOffset / m_bufsiz) * m_bufsiz;
- if (bufptr != m_bufptr)
- {
- /* flush current buffer */
- result = syncFile();
- if (result != osl_File_E_None)
- return (result);
-
- /* update buffer (pointer) */
- sal_uInt64 uDone = 0;
- result = readAt (bufptr, m_buffer, m_bufsiz, &uDone);
- if (result != osl_File_E_None)
- return (result);
-
- m_bufptr = bufptr, m_buflen = sal::static_int_cast< SIZE_T >(uDone);
- }
-
- static int const LINE_STATE_BEGIN = 0;
- static int const LINE_STATE_CR = 1;
- static int const LINE_STATE_LF = 2;
-
- SIZE_T bufpos = sal::static_int_cast< SIZE_T >(nOffset - m_bufptr), curpos = bufpos, dstpos = 0;
- int state = (bufpos >= m_buflen) ? LINE_STATE_LF : LINE_STATE_BEGIN;
-
- for ( ; state != LINE_STATE_LF; )
- {
- if (curpos >= m_buflen)
- {
- /* buffer examined */
- if (0 < (curpos - bufpos))
- {
- /* flush buffer to sequence */
- result = writeSequence_Impl (
- ppSequence, &dstpos, &(m_buffer[bufpos]), curpos - bufpos);
- if (result != osl_File_E_None)
- return (result);
- *pBytesRead += curpos - bufpos, nOffset += curpos - bufpos;
- }
-
- bufptr = nOffset / m_bufsiz * m_bufsiz;
- if (bufptr != m_bufptr)
- {
- /* update buffer (pointer) */
- sal_uInt64 uDone = 0;
- result = readAt (bufptr, m_buffer, m_bufsiz, &uDone);
- if (result != osl_File_E_None)
- return (result);
- m_bufptr = bufptr, m_buflen = sal::static_int_cast< SIZE_T >(uDone);
- }
-
- bufpos = sal::static_int_cast< SIZE_T >(nOffset - m_bufptr), curpos = bufpos;
- if (bufpos >= m_buflen)
- break;
- }
- switch (state)
- {
- case LINE_STATE_CR:
- state = LINE_STATE_LF;
- switch (m_buffer[curpos])
- {
- case 0x0A: /* CRLF */
- /* eat current char */
- curpos++;
- break;
- default: /* single CR */
- /* keep current char */
- break;
- }
- break;
- default:
- /* determine next state */
- switch (m_buffer[curpos])
- {
- case 0x0A: /* single LF */
- state = LINE_STATE_LF;
- break;
- case 0x0D: /* CR */
- state = LINE_STATE_CR;
- break;
- default: /* advance to next char */
- curpos++;
- break;
- }
- if (state != LINE_STATE_BEGIN)
- {
- /* store (and eat) the newline char */
- m_buffer[curpos] = 0x0A, curpos++;
-
- /* flush buffer to sequence */
- result = writeSequence_Impl (
- ppSequence, &dstpos, &(m_buffer[bufpos]), curpos - bufpos - 1);
- if (result != osl_File_E_None)
- return (result);
- *pBytesRead += curpos - bufpos, nOffset += curpos - bufpos;
- }
- break;
- }
- }
-
- result = writeSequence_Impl (ppSequence, &dstpos, 0, 0);
- if (result != osl_File_E_None)
- return (result);
- if (0 < dstpos)
- return osl_File_E_None;
- if (bufpos >= m_buflen)
- return osl_File_E_AGAIN;
- return osl_File_E_None;
-}
-
-oslFileError FileHandle_Impl::writeSequence_Impl (
- sal_Sequence ** ppSequence,
- SIZE_T * pnOffset,
- const void * pBuffer,
- SIZE_T nBytes)
-{
- sal_Int32 nElements = *pnOffset + nBytes;
- if (!*ppSequence)
- {
- /* construct sequence */
- rtl_byte_sequence_constructNoDefault(ppSequence, nElements);
- }
- else if (nElements != (*ppSequence)->nElements)
- {
- /* resize sequence */
- rtl_byte_sequence_realloc(ppSequence, nElements);
- }
- if (*ppSequence != 0)
- {
- /* fill sequence */
- memcpy(&((*ppSequence)->elements[*pnOffset]), pBuffer, nBytes), *pnOffset += nBytes;
- }
- return (*ppSequence != 0) ? osl_File_E_None : osl_File_E_NOMEM;
-}
-
-oslFileError FileHandle_Impl::syncFile()
-{
- oslFileError result = osl_File_E_None;
- if (m_state & STATE_MODIFIED)
- {
- sal_uInt64 uDone = 0;
- result = writeAt (m_bufptr, m_buffer, m_buflen, &uDone);
- if (result != osl_File_E_None)
- return (result);
- if (uDone != m_buflen)
- return osl_File_E_IO;
- m_state &= ~STATE_MODIFIED;
- }
- return (result);
-}
-
-//##################################################################
-// File I/O functions
-//##################################################################
-
-extern "C" oslFileHandle
-SAL_CALL osl_createFileHandleFromOSHandle (
- HANDLE hFile,
- sal_uInt32 uFlags)
-{
- if ( !IsValidHandle(hFile) )
- return 0; // EINVAL
-
- FileHandle_Impl * pImpl = new FileHandle_Impl(hFile);
- if (pImpl == 0)
- {
- // cleanup and fail
- (void) ::CloseHandle(hFile);
- return 0; // ENOMEM
- }
-
- /* check for regular file */
- if (FILE_TYPE_DISK == GetFileType(hFile))
- {
- /* mark seekable */
- pImpl->m_state |= FileHandle_Impl::STATE_SEEKABLE;
-
- /* init current size */
- LARGE_INTEGER uSize = { 0, 0 };
- (void) ::GetFileSizeEx(hFile, &uSize);
- pImpl->m_size = (sal::static_int_cast<sal_uInt64>(uSize.HighPart) << 32) + uSize.LowPart;
- }
-
- if (!(uFlags & osl_File_OpenFlag_Read))
- pImpl->m_state &= ~FileHandle_Impl::STATE_READABLE;
- if (!(uFlags & osl_File_OpenFlag_Write))
- pImpl->m_state &= ~FileHandle_Impl::STATE_WRITEABLE;
-
- OSL_POSTCOND(
- (uFlags & osl_File_OpenFlag_Read) || (uFlags & osl_File_OpenFlag_Write),
- "osl_createFileHandleFromOSHandle(): missing read/write access flags");
- return (oslFileHandle)(pImpl);
-}
-
-//#############################################
-oslFileError
-SAL_CALL osl_openFile(
- rtl_uString * strPath,
- oslFileHandle * pHandle,
- sal_uInt32 uFlags )
-{
- rtl_uString * strSysPath = 0;
- oslFileError result = _osl_getSystemPathFromFileURL( strPath, &strSysPath, sal_False );
- if (result != osl_File_E_None)
- return (result);
-
- DWORD dwAccess = GENERIC_READ, dwShare = FILE_SHARE_READ, dwCreation = 0, dwAttributes = 0;
-
- if ( uFlags & osl_File_OpenFlag_Write )
- dwAccess |= GENERIC_WRITE;
- else
- dwShare |= FILE_SHARE_WRITE;
-
- if ( uFlags & osl_File_OpenFlag_NoLock )
- dwShare |= FILE_SHARE_WRITE;
-
- if ( uFlags & osl_File_OpenFlag_Create )
- dwCreation |= CREATE_NEW;
- else
- dwCreation |= OPEN_EXISTING;
-
- HANDLE hFile = CreateFileW(
- reinterpret_cast<LPCWSTR>(rtl_uString_getStr( strSysPath )),
- dwAccess, dwShare, NULL, dwCreation, dwAttributes, NULL );
-
- // @@@ ERROR HANDLING @@@
- if ( !IsValidHandle( hFile ) )
- result = oslTranslateFileError( GetLastError() );
-
- *pHandle = osl_createFileHandleFromOSHandle (hFile, uFlags | osl_File_OpenFlag_Read);
-
- rtl_uString_release( strSysPath );
- return (result);
-}
-
-//#############################################
-oslFileError
-SAL_CALL osl_syncFile(oslFileHandle Handle)
-{
- FileHandle_Impl * pImpl = static_cast<FileHandle_Impl*>(Handle);
- if ((0 == pImpl) || !IsValidHandle(pImpl->m_hFile))
- return osl_File_E_INVAL;
-
- FileHandle_Impl::Guard lock (&(pImpl->m_mutex));
-
- oslFileError result = pImpl->syncFile();
- if (result != osl_File_E_None)
- return result;
-
- if (!FlushFileBuffers(pImpl->m_hFile))
- return oslTranslateFileError(GetLastError());
-
- return osl_File_E_None;
-}
-
-//#############################################
-oslFileError
-SAL_CALL osl_closeFile(oslFileHandle Handle)
-{
- FileHandle_Impl * pImpl = static_cast<FileHandle_Impl*>(Handle);
- if ((0 == pImpl) || !IsValidHandle(pImpl->m_hFile))
- return osl_File_E_INVAL;
-
- ::EnterCriticalSection (&(pImpl->m_mutex));
-
- oslFileError result = pImpl->syncFile();
- if (result != osl_File_E_None)
- {
- /* ignore double failure */
- (void)::CloseHandle(pImpl->m_hFile);
- }
- else if (!::CloseHandle(pImpl->m_hFile))
- {
- /* translate error code */
- result = oslTranslateFileError( GetLastError() );
- }
-
- ::LeaveCriticalSection (&(pImpl->m_mutex));
- delete pImpl;
- return (result);
-}
-
-//#############################################
-oslFileError
-SAL_CALL osl_mapFile(
- oslFileHandle Handle,
- void** ppAddr,
- sal_uInt64 uLength,
- sal_uInt64 uOffset,
- sal_uInt32 uFlags)
-{
- struct FileMapping
- {
- HANDLE m_handle;
-
- explicit FileMapping (HANDLE hMap)
- : m_handle (hMap)
- {}
-
- ~FileMapping()
- {
- (void)::CloseHandle(m_handle);
- }
- };
-
- FileHandle_Impl * pImpl = static_cast<FileHandle_Impl*>(Handle);
- if ((0 == pImpl) || !IsValidHandle(pImpl->m_hFile) || (0 == ppAddr))
- return osl_File_E_INVAL;
- *ppAddr = 0;
-
- static SIZE_T const nLimit = std::numeric_limits< SIZE_T >::max();
- if (uLength > nLimit)
- return osl_File_E_OVERFLOW;
- SIZE_T const nLength = sal::static_int_cast< SIZE_T >(uLength);
-
- FileMapping aMap( ::CreateFileMapping (pImpl->m_hFile, NULL, SEC_COMMIT | PAGE_READONLY, 0, 0, NULL) );
- if (!IsValidHandle(aMap.m_handle))
- return oslTranslateFileError( GetLastError() );
-
- DWORD const dwOffsetHi = sal::static_int_cast<DWORD>(uOffset >> 32);
- DWORD const dwOffsetLo = sal::static_int_cast<DWORD>(uOffset & 0xFFFFFFFF);
-
- *ppAddr = ::MapViewOfFile( aMap.m_handle, FILE_MAP_READ, dwOffsetHi, dwOffsetLo, nLength );
- if (0 == *ppAddr)
- return oslTranslateFileError( GetLastError() );
-
- if (uFlags & osl_File_MapFlag_RandomAccess)
- {
- // Determine memory pagesize.
- SYSTEM_INFO info;
- ::GetSystemInfo( &info );
- DWORD const dwPageSize = info.dwPageSize;
-
- /*
- * Pagein, touching first byte of each memory page.
- * Note: volatile disables optimizing the loop away.
- */
- BYTE * pData (reinterpret_cast<BYTE*>(*ppAddr));
- SIZE_T nSize (nLength);
-
- volatile BYTE c = 0;
- while (nSize > dwPageSize)
- {
- c ^= pData[0];
- pData += dwPageSize;
- nSize -= dwPageSize;
- }
- if (nSize > 0)
- {
- c ^= pData[0];
- pData += nSize;
- nSize -= nSize;
- }
- }
- return osl_File_E_None;
-}
-
-//#############################################
-oslFileError
-SAL_CALL osl_unmapFile(void* pAddr, sal_uInt64 /* uLength */)
-{
- if (0 == pAddr)
- return osl_File_E_INVAL;
-
- if (!::UnmapViewOfFile (pAddr))
- return oslTranslateFileError( GetLastError() );
-
- return osl_File_E_None;
-}
-
-//#############################################
-oslFileError
-SAL_CALL osl_readLine(
- oslFileHandle Handle,
- sal_Sequence ** ppSequence)
-{
- FileHandle_Impl * pImpl = static_cast<FileHandle_Impl*>(Handle);
- if ((0 == pImpl) || !IsValidHandle(pImpl->m_hFile) || (0 == ppSequence))
- return osl_File_E_INVAL;
- sal_uInt64 uBytesRead = 0;
-
- // read at current filepos; filepos += uBytesRead;
- FileHandle_Impl::Guard lock (&(pImpl->m_mutex));
- oslFileError result = pImpl->readLineAt (
- pImpl->m_filepos, ppSequence, &uBytesRead);
- if (result == osl_File_E_None)
- pImpl->m_filepos += uBytesRead;
- return (result);
-}
-
-//#############################################
-oslFileError
-SAL_CALL osl_readFile(
- oslFileHandle Handle,
- void * pBuffer,
- sal_uInt64 uBytesRequested,
- sal_uInt64 * pBytesRead)
-{
- FileHandle_Impl * pImpl = static_cast<FileHandle_Impl*>(Handle);
- if ((0 == pImpl) || !IsValidHandle(pImpl->m_hFile) || (0 == pBuffer) || (0 == pBytesRead))
- return osl_File_E_INVAL;
-
- // read at current filepos; filepos += *pBytesRead;
- FileHandle_Impl::Guard lock (&(pImpl->m_mutex));
- oslFileError result = pImpl->readFileAt (
- pImpl->m_filepos, pBuffer, uBytesRequested, pBytesRead);
- if (result == osl_File_E_None)
- pImpl->m_filepos += *pBytesRead;
- return (result);
-}
-
-//#############################################
-oslFileError
-SAL_CALL osl_writeFile(
- oslFileHandle Handle,
- const void * pBuffer,
- sal_uInt64 uBytesToWrite,
- sal_uInt64 * pBytesWritten )
-{
- FileHandle_Impl * pImpl = static_cast<FileHandle_Impl*>(Handle);
-
- if ((0 == pImpl) || !IsValidHandle(pImpl->m_hFile) || (0 == pBuffer) || (0 == pBytesWritten))
- return osl_File_E_INVAL;
-
- // write at current filepos; filepos += *pBytesWritten;
- FileHandle_Impl::Guard lock (&(pImpl->m_mutex));
- oslFileError result = pImpl->writeFileAt (
- pImpl->m_filepos, pBuffer, uBytesToWrite, pBytesWritten);
- if (result == osl_File_E_None)
- pImpl->m_filepos += *pBytesWritten;
- return (result);
-}
-
-//#############################################
-oslFileError
-SAL_CALL osl_readFileAt(
- oslFileHandle Handle,
- sal_uInt64 uOffset,
- void* pBuffer,
- sal_uInt64 uBytesRequested,
- sal_uInt64* pBytesRead)
-{
- FileHandle_Impl * pImpl = static_cast<FileHandle_Impl*>(Handle);
-
- if ((0 == pImpl) || !IsValidHandle(pImpl->m_hFile) || (0 == pBuffer) || (0 == pBytesRead))
- return osl_File_E_INVAL;
- if (0 == (pImpl->m_state & FileHandle_Impl::STATE_SEEKABLE))
- return osl_File_E_SPIPE;
-
- static sal_uInt64 const g_limit_longlong = std::numeric_limits< LONGLONG >::max();
- if (g_limit_longlong < uOffset)
- return osl_File_E_OVERFLOW;
- LONGLONG const nOffset = sal::static_int_cast< LONGLONG >(uOffset);
-
- // read at specified fileptr
- FileHandle_Impl::Guard lock (&(pImpl->m_mutex));
- return pImpl->readFileAt (nOffset, pBuffer, uBytesRequested, pBytesRead);
-}
-
-//#############################################
-oslFileError
-SAL_CALL osl_writeFileAt(
- oslFileHandle Handle,
- sal_uInt64 uOffset,
- const void* pBuffer,
- sal_uInt64 uBytesToWrite,
- sal_uInt64* pBytesWritten)
-{
- FileHandle_Impl * pImpl = static_cast<FileHandle_Impl*>(Handle);
-
- if ((0 == pImpl) || !IsValidHandle(pImpl->m_hFile) || (0 == pBuffer) || (0 == pBytesWritten))
- return osl_File_E_INVAL;
- if (0 == (pImpl->m_state & FileHandle_Impl::STATE_SEEKABLE))
- return osl_File_E_SPIPE;
-
- static sal_uInt64 const g_limit_longlong = std::numeric_limits< LONGLONG >::max();
- if (g_limit_longlong < uOffset)
- return osl_File_E_OVERFLOW;
- LONGLONG const nOffset = sal::static_int_cast< LONGLONG >(uOffset);
-
- // write at specified fileptr
- FileHandle_Impl::Guard lock (&(pImpl->m_mutex));
- return pImpl->writeFileAt (nOffset, pBuffer, uBytesToWrite, pBytesWritten);
-}
-
-//#############################################
-oslFileError
-SAL_CALL osl_isEndOfFile (oslFileHandle Handle, sal_Bool *pIsEOF)
-{
- FileHandle_Impl * pImpl = static_cast<FileHandle_Impl*>(Handle);
-
- if ((0 == pImpl) || !IsValidHandle(pImpl->m_hFile) || (0 == pIsEOF))
- return osl_File_E_INVAL;
-
- FileHandle_Impl::Guard lock (&(pImpl->m_mutex));
- *pIsEOF = (pImpl->getPos() == pImpl->getSize());
- return osl_File_E_None;
-}
-
-//#############################################
-oslFileError
-SAL_CALL osl_getFilePos(oslFileHandle Handle, sal_uInt64 *pPos)
-{
- FileHandle_Impl * pImpl = static_cast<FileHandle_Impl*>(Handle);
- if ((0 == pImpl) || !IsValidHandle(pImpl->m_hFile) || (0 == pPos))
- return osl_File_E_INVAL;
-
- FileHandle_Impl::Guard lock (&(pImpl->m_mutex));
- *pPos = pImpl->getPos();
- return osl_File_E_None;
-}
-
-//#############################################
-oslFileError
-SAL_CALL osl_setFilePos(oslFileHandle Handle, sal_uInt32 uHow, sal_Int64 uOffset)
-{
- FileHandle_Impl * pImpl = static_cast<FileHandle_Impl*>(Handle);
- if ((0 == pImpl) || !IsValidHandle(pImpl->m_hFile))
- return osl_File_E_INVAL;
-
- static sal_Int64 const g_limit_longlong = std::numeric_limits< LONGLONG >::max();
- if (g_limit_longlong < uOffset)
- return osl_File_E_OVERFLOW;
- LONGLONG nPos = 0, nOffset = sal::static_int_cast< LONGLONG >(uOffset);
-
- FileHandle_Impl::Guard lock (&(pImpl->m_mutex));
- switch (uHow)
- {
- case osl_Pos_Absolut:
- if (0 > nOffset)
- return osl_File_E_INVAL;
- break;
-
- case osl_Pos_Current:
- nPos = sal::static_int_cast< LONGLONG >(pImpl->getPos());
- if ((0 > nOffset) && (-1*nOffset > nPos))
- return osl_File_E_INVAL;
- if (g_limit_longlong < nPos + nOffset)
- return osl_File_E_OVERFLOW;
- break;
-
- case osl_Pos_End:
- nPos = sal::static_int_cast< LONGLONG >(pImpl->getSize());
- if ((0 > nOffset) && (-1*nOffset > nPos))
- return osl_File_E_INVAL;
- if (g_limit_longlong < nPos + nOffset)
- return osl_File_E_OVERFLOW;
- break;
-
- default:
- return osl_File_E_INVAL;
- }
-
- return pImpl->setPos (nPos + nOffset);
-}
-
-//#############################################
-oslFileError
-SAL_CALL osl_getFileSize (oslFileHandle Handle, sal_uInt64 *pSize)
-{
- FileHandle_Impl * pImpl = static_cast<FileHandle_Impl*>(Handle);
-
- if ((0 == pImpl) || !IsValidHandle(pImpl->m_hFile) || (0 == pSize))
- return osl_File_E_INVAL;
-
- FileHandle_Impl::Guard lock (&(pImpl->m_mutex));
- *pSize = pImpl->getSize();
- return osl_File_E_None;
-}
-
-//#############################################
-oslFileError
-SAL_CALL osl_setFileSize (oslFileHandle Handle, sal_uInt64 uSize)
-{
- FileHandle_Impl * pImpl = static_cast<FileHandle_Impl*>(Handle);
-
- if ((0 == pImpl) || !IsValidHandle(pImpl->m_hFile))
- return osl_File_E_INVAL;
- if (0 == (pImpl->m_state & FileHandle_Impl::STATE_WRITEABLE))
- return osl_File_E_BADF;
-
- static sal_uInt64 const g_limit_longlong = std::numeric_limits< LONGLONG >::max();
- if (g_limit_longlong < uSize)
- return osl_File_E_OVERFLOW;
-
- FileHandle_Impl::Guard lock (&(pImpl->m_mutex));
- oslFileError result = pImpl->syncFile();
- if (result != osl_File_E_None)
- return (result);
- pImpl->m_bufptr = -1, pImpl->m_buflen = 0;
-
- return pImpl->setSize (uSize);
-}
-
-//##################################################################
-// File handling functions
-//##################################################################
-
-//#############################################
-oslFileError SAL_CALL osl_removeFile( rtl_uString* strPath )
-{
- rtl_uString *strSysPath = NULL;
- oslFileError error = _osl_getSystemPathFromFileURL( strPath, &strSysPath, sal_False );
-
- if ( osl_File_E_None == error )
- {
- if ( DeleteFile( reinterpret_cast<LPCTSTR>(rtl_uString_getStr( strSysPath )) ) )
- error = osl_File_E_None;
- else
- error = oslTranslateFileError( GetLastError() );
-
- rtl_uString_release( strSysPath );
- }
- return error;
-}
-
-//#############################################
-#define osl_File_CopyRecursive 0x0001
-#define osl_File_CopyOverwrite 0x0002
-
-oslFileError SAL_CALL osl_copyFile( rtl_uString* strPath, rtl_uString *strDestPath )
-{
- rtl_uString *strSysPath = NULL, *strSysDestPath = NULL;
- oslFileError error = _osl_getSystemPathFromFileURL( strPath, &strSysPath, sal_False );
-
- if ( osl_File_E_None == error )
- error = _osl_getSystemPathFromFileURL( strDestPath, &strSysDestPath, sal_False );
-
- if ( osl_File_E_None == error )
- {
- LPCTSTR src = reinterpret_cast<LPCTSTR>(rtl_uString_getStr( strSysPath ));
- LPCTSTR dst = reinterpret_cast<LPCTSTR>(rtl_uString_getStr( strSysDestPath ));
-
- if ( CopyFile( src, dst, FALSE ) )
- error = osl_File_E_None;
- else
- error = oslTranslateFileError( GetLastError() );
- }
-
- if ( strSysPath )
- rtl_uString_release( strSysPath );
- if ( strSysDestPath )
- rtl_uString_release( strSysDestPath );
-
- return error;
-}
-
-//#############################################
-oslFileError SAL_CALL osl_moveFile( rtl_uString* strPath, rtl_uString *strDestPath )
-{
- rtl_uString *strSysPath = NULL, *strSysDestPath = NULL;
- oslFileError error = _osl_getSystemPathFromFileURL( strPath, &strSysPath, sal_False );
-
- if ( osl_File_E_None == error )
- error = _osl_getSystemPathFromFileURL( strDestPath, &strSysDestPath, sal_False );
-
- if ( osl_File_E_None == error )
- {
- LPCTSTR src = reinterpret_cast<LPCTSTR>(rtl_uString_getStr( strSysPath ));
- LPCTSTR dst = reinterpret_cast<LPCTSTR>(rtl_uString_getStr( strSysDestPath ));
-
- if ( MoveFileEx( src, dst, MOVEFILE_COPY_ALLOWED | MOVEFILE_WRITE_THROUGH | MOVEFILE_REPLACE_EXISTING ) )
- error = osl_File_E_None;
- else
- error = oslTranslateFileError( GetLastError() );
- }
-
- if ( strSysPath )
- rtl_uString_release( strSysPath );
- if ( strSysDestPath )
- rtl_uString_release( strSysDestPath );
-
- return error;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/file_dirvol.cxx b/sal/osl/w32/file_dirvol.cxx
deleted file mode 100644
index 3e3b03a43..000000000
--- a/sal/osl/w32/file_dirvol.cxx
+++ /dev/null
@@ -1,1863 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#define UNICODE
-#define _UNICODE
-#define _WIN32_WINNT 0x0500
-#include "systools/win32/uwinapi.h"
-
-#include "osl/file.h"
-
-#include "file_url.h"
-#include <sal/macros.h>
-#include "file_error.h"
-
-#include "path_helper.hxx"
-
-#include "osl/diagnose.h"
-#include "osl/time.h"
-#include "rtl/alloc.h"
-#include "rtl/ustring.hxx"
-
-#include <tchar.h>
-#ifdef __MINGW32__
-#include <ctype.h>
-#endif
-
-//#####################################################
-static const wchar_t UNC_PREFIX[] = L"\\\\";
-static const wchar_t BACKSLASH = '\\';
-static const wchar_t SLASH = '/';
-
-//#####################################################
-extern "C" BOOL TimeValueToFileTime(const TimeValue *cpTimeVal, FILETIME *pFTime)
-{
- SYSTEMTIME BaseSysTime;
- FILETIME BaseFileTime;
- FILETIME FTime;
- __int64 localTime;
- BOOL fSuccess = FALSE;
-
- BaseSysTime.wYear = 1970;
- BaseSysTime.wMonth = 1;
- BaseSysTime.wDayOfWeek = 0;
- BaseSysTime.wDay = 1;
- BaseSysTime.wHour = 0;
- BaseSysTime.wMinute = 0;
- BaseSysTime.wSecond = 0;
- BaseSysTime.wMilliseconds = 0;
-
- if (cpTimeVal==NULL)
- return fSuccess;
-
- if ( SystemTimeToFileTime(&BaseSysTime, &BaseFileTime) )
- {
- __int64 timeValue;
- localTime=cpTimeVal->Seconds*(__int64)10000000+cpTimeVal->Nanosec/100;
- *(__int64 *)&FTime=localTime;
- fSuccess = 0 <= (timeValue= *((__int64 *)&BaseFileTime) + *((__int64 *) &FTime));
- if (fSuccess)
- *(__int64 *)pFTime=timeValue;
- }
- return fSuccess;
-}
-
-//#####################################################
-extern "C" BOOL FileTimeToTimeValue(const FILETIME *cpFTime, TimeValue *pTimeVal)
-{
- SYSTEMTIME BaseSysTime;
- FILETIME BaseFileTime;
- BOOL fSuccess = FALSE; /* Assume failure */
-
- BaseSysTime.wYear = 1970;
- BaseSysTime.wMonth = 1;
- BaseSysTime.wDayOfWeek = 0;
- BaseSysTime.wDay = 1;
- BaseSysTime.wHour = 0;
- BaseSysTime.wMinute = 0;
- BaseSysTime.wSecond = 0;
- BaseSysTime.wMilliseconds = 0;
-
- if ( SystemTimeToFileTime(&BaseSysTime, &BaseFileTime) )
- {
- __int64 Value;
-
- fSuccess = 0 <= (Value = *((__int64 *)cpFTime) - *((__int64 *)&BaseFileTime));
-
- if ( fSuccess )
- {
- pTimeVal->Seconds = (unsigned long) (Value / 10000000L);
- pTimeVal->Nanosec = (unsigned long)((Value % 10000000L) * 100);
- }
- }
- return fSuccess;
-}
-
-//#####################################################
-namespace /* private */
-{
- //#####################################################
- struct Component
- {
- Component() :
- begin_(0), end_(0)
- {}
-
- bool isPresent() const
- { return (static_cast<sal_IntPtr>(end_ - begin_) > 0); }
-
- const sal_Unicode* begin_;
- const sal_Unicode* end_;
- };
-
- //#####################################################
- struct UNCComponents
- {
- Component server_;
- Component share_;
- Component resource_;
- };
-
- //#####################################################
- inline bool is_UNC_path(const sal_Unicode* path)
- { return (0 == wcsncmp(UNC_PREFIX, reinterpret_cast<LPCWSTR>(path), SAL_N_ELEMENTS(UNC_PREFIX) - 1)); }
-
- //#####################################################
- inline bool is_UNC_path(const rtl::OUString& path)
- { return is_UNC_path(path.getStr()); }
-
- //#####################################################
- void parse_UNC_path(const sal_Unicode* path, UNCComponents* puncc)
- {
- OSL_PRECOND(is_UNC_path(path), "Precondition violated: No UNC path");
- OSL_PRECOND(rtl_ustr_indexOfChar(path, SLASH) == -1, "Path must not contain slashes");
-
- const sal_Unicode* pend = path + rtl_ustr_getLength(path);
- const sal_Unicode* ppos = path + 2;
-
- puncc->server_.begin_ = ppos;
- while ((ppos < pend) && (*ppos != BACKSLASH))
- ppos++;
-
- puncc->server_.end_ = ppos;
-
- if (BACKSLASH == *ppos)
- {
- puncc->share_.begin_ = ++ppos;
- while ((ppos < pend) && (*ppos != BACKSLASH))
- ppos++;
-
- puncc->share_.end_ = ppos;
-
- if (BACKSLASH == *ppos)
- {
- puncc->resource_.begin_ = ++ppos;
- while (ppos < pend)
- ppos++;
-
- puncc->resource_.end_ = ppos;
- }
- }
-
- OSL_POSTCOND(puncc->server_.isPresent() && puncc->share_.isPresent(), \
- "Postcondition violated: Invalid UNC path detected");
- }
-
- //#####################################################
- void parse_UNC_path(const rtl::OUString& path, UNCComponents* puncc)
- { parse_UNC_path(path.getStr(), puncc); }
-
-
- //#####################################################
- bool has_path_parent(const sal_Unicode* path)
- {
- // Has the given path a parent or are we already there,
- // e.g. 'c:\' or '\\server\share\'?
-
- bool has_parent = false;
- if (is_UNC_path(path))
- {
- UNCComponents unc_comp;
- parse_UNC_path(path, &unc_comp);
- has_parent = unc_comp.resource_.isPresent();
- }
- else
- {
- has_parent = !osl::systemPathIsLogicalDrivePattern(path);
- }
- return has_parent;
- }
-
- //#####################################################
- inline bool has_path_parent(const rtl::OUString& path)
- { return has_path_parent(path.getStr()); }
-
-} // end namespace private
-
-//#####################################################
-// volume handling functions
-//#####################################################
-
-//#####################################################
-oslFileError SAL_CALL osl_unmountVolumeDevice( oslVolumeDeviceHandle Handle )
-{
- if ( Handle )
- return osl_File_E_None;
- else
- return osl_File_E_INVAL;
-}
-
-//#####################################################
-oslFileError SAL_CALL osl_automountVolumeDevice( oslVolumeDeviceHandle Handle )
-{
- if ( Handle )
- return osl_File_E_None;
- else
- return osl_File_E_INVAL;
-}
-
-//#####################################################
-oslFileError SAL_CALL osl_acquireVolumeDeviceHandle( oslVolumeDeviceHandle Handle )
-{
- if ( Handle )
- {
- rtl_uString_acquire( (rtl_uString *)Handle );
- return osl_File_E_None;
- }
- else
- return osl_File_E_INVAL;
-}
-
-//#####################################################
-oslFileError SAL_CALL osl_releaseVolumeDeviceHandle( oslVolumeDeviceHandle Handle )
-{
- if ( Handle )
- {
- rtl_uString_release( (rtl_uString *)Handle );
- return osl_File_E_None;
- }
- else
- return osl_File_E_INVAL;
-}
-
-//#####################################################
-oslFileError SAL_CALL osl_getVolumeDeviceMountPath( oslVolumeDeviceHandle Handle, rtl_uString **pstrPath )
-{
- if ( Handle && pstrPath )
- {
- rtl_uString_assign( pstrPath, (rtl_uString *)Handle );
- return osl_File_E_None;
- }
- else
- return osl_File_E_INVAL;
-}
-
-//##################################################################
-// directory handling functions
-//##################################################################
-
-#define DIRECTORYITEM_DRIVE 0
-#define DIRECTORYITEM_FILE 1
-#define DIRECTORYITEM_SERVER 2
-
-struct DirectoryItem_Impl
-{
- UINT uType;
- union {
- WIN32_FIND_DATA FindData;
- TCHAR cDriveString[MAX_PATH];
- };
- rtl_uString* m_pFullPath;
- BOOL bFullPathNormalized;
- int nRefCount;
-};
-
-//#####################################################
-
-#define DIRECTORYTYPE_LOCALROOT 0
-#define DIRECTORYTYPE_NETROOT 1
-#define DIRECTORYTYPE_NETRESORCE 2
-#define DIRECTORYTYPE_FILESYSTEM 3
-
-struct Directory_Impl
-{
- UINT uType;
- union {
- HANDLE hDirectory;
- HANDLE hEnumDrives;
- };
- rtl_uString* m_pDirectoryPath;
-};
-
-//#####################################################
-
-typedef struct tagDRIVEENUM
-{
- LPCTSTR lpIdent;
- TCHAR cBuffer[/*('Z' - 'A' + 1) * sizeof("A:\\") + 1*/256];
- LPCTSTR lpCurrent;
-} DRIVEENUM, * PDRIVEENUM, FAR * LPDRIVEENUM;
-
-//#####################################################
-
-static HANDLE WINAPI OpenLogicalDrivesEnum(void)
-{
- LPDRIVEENUM pEnum = (LPDRIVEENUM)HeapAlloc( GetProcessHeap(), 0, sizeof(DRIVEENUM) );
- if ( pEnum )
- {
- DWORD dwNumCopied = GetLogicalDriveStrings( (sizeof(pEnum->cBuffer) - 1) / sizeof(TCHAR), pEnum->cBuffer );
-
- if ( dwNumCopied && dwNumCopied < sizeof(pEnum->cBuffer) / sizeof(TCHAR) )
- {
- pEnum->lpCurrent = pEnum->cBuffer;
- pEnum->lpIdent = L"tagDRIVEENUM";
- }
- else
- {
- HeapFree( GetProcessHeap(), 0, pEnum );
- pEnum = NULL;
- }
- }
- return pEnum ? (HANDLE)pEnum : INVALID_HANDLE_VALUE;
-}
-
-//#####################################################
-static BOOL WINAPI EnumLogicalDrives(HANDLE hEnum, LPTSTR lpBuffer)
-{
- BOOL fSuccess = FALSE;
- LPDRIVEENUM pEnum = (LPDRIVEENUM)hEnum;
-
- if ( pEnum )
- {
- int nLen = _tcslen( pEnum->lpCurrent );
-
- if ( nLen )
- {
- CopyMemory( lpBuffer, pEnum->lpCurrent, (nLen + 1) * sizeof(TCHAR) );
- pEnum->lpCurrent += nLen + 1;
- fSuccess = TRUE;
- }
- else
- SetLastError( ERROR_NO_MORE_FILES );
- }
- else
- SetLastError( ERROR_INVALID_HANDLE );
-
- return fSuccess;
-}
-
-//#####################################################
-static BOOL WINAPI CloseLogicalDrivesEnum(HANDLE hEnum)
-{
- BOOL fSuccess = FALSE;
- LPDRIVEENUM pEnum = (LPDRIVEENUM)hEnum;
-
- if ( pEnum )
- {
- HeapFree( GetProcessHeap(), 0, pEnum );
- fSuccess = TRUE;
- }
- else
- SetLastError( ERROR_INVALID_HANDLE );
-
- return fSuccess;
-}
-
-//#####################################################
-typedef struct tagDIRECTORY
-{
- HANDLE hFind;
- WIN32_FIND_DATA aFirstData;
-} DIRECTORY, *PDIRECTORY, FAR *LPDIRECTORY;
-
-//#####################################################
-static HANDLE WINAPI OpenDirectory( rtl_uString* pPath)
-{
- LPDIRECTORY pDirectory = NULL;
-
- if ( pPath )
- {
- sal_uInt32 nLen = rtl_uString_getLength( pPath );
- if ( nLen )
- {
- TCHAR* pSuffix = 0;
- sal_uInt32 nSuffLen = 0;
-
- if ( pPath->buffer[nLen - 1] != L'\\' )
- {
- pSuffix = L"\\*.*";
- nSuffLen = 4;
- }
- else
- {
- pSuffix = L"*.*";
- nSuffLen = 3;
- }
-
- TCHAR* szFileMask = reinterpret_cast< TCHAR* >( rtl_allocateMemory( sizeof( TCHAR ) * ( nLen + nSuffLen + 1 ) ) );
-
- _tcscpy( szFileMask, reinterpret_cast<LPCTSTR>( rtl_uString_getStr( pPath ) ) );
- _tcscat( szFileMask, pSuffix );
-
- pDirectory = (LPDIRECTORY)HeapAlloc(GetProcessHeap(), 0, sizeof(DIRECTORY));
- pDirectory->hFind = FindFirstFile(szFileMask, &pDirectory->aFirstData);
-
- if (!IsValidHandle(pDirectory->hFind))
- {
- if ( GetLastError() != ERROR_NO_MORE_FILES )
- {
- HeapFree(GetProcessHeap(), 0, pDirectory);
- pDirectory = NULL;
- }
- }
- }
- }
-
- return (HANDLE)pDirectory;
-}
-
-//#####################################################
-BOOL WINAPI EnumDirectory(HANDLE hDirectory, LPWIN32_FIND_DATA pFindData)
-{
- BOOL fSuccess = FALSE;
- LPDIRECTORY pDirectory = (LPDIRECTORY)hDirectory;
-
- if ( pDirectory )
- {
- BOOL fValid;
-
- do
- {
- if ( pDirectory->aFirstData.cFileName[0] )
- {
- *pFindData = pDirectory->aFirstData;
- fSuccess = TRUE;
- pDirectory->aFirstData.cFileName[0] = 0;
- }
- else if ( IsValidHandle( pDirectory->hFind ) )
- fSuccess = FindNextFile( pDirectory->hFind, pFindData );
- else
- {
- fSuccess = FALSE;
- SetLastError( ERROR_NO_MORE_FILES );
- }
-
- fValid = fSuccess && _tcscmp( TEXT("."), pFindData->cFileName ) != 0 && _tcscmp( TEXT(".."), pFindData->cFileName ) != 0;
-
- } while( fSuccess && !fValid );
- }
- else
- SetLastError( ERROR_INVALID_HANDLE );
-
- return fSuccess;
-}
-
-//#####################################################
-static BOOL WINAPI CloseDirectory(HANDLE hDirectory)
-{
- BOOL fSuccess = FALSE;
- LPDIRECTORY pDirectory = (LPDIRECTORY)hDirectory;
-
- if (pDirectory)
- {
- if (IsValidHandle(pDirectory->hFind))
- fSuccess = FindClose(pDirectory->hFind);
-
- fSuccess = HeapFree(GetProcessHeap(), 0, pDirectory) && fSuccess;
- }
- else
- SetLastError(ERROR_INVALID_HANDLE);
-
- return fSuccess;
-}
-
-//#####################################################
-static oslFileError osl_openLocalRoot(
- rtl_uString *strDirectoryPath, oslDirectory *pDirectory)
-{
- rtl_uString *strSysPath = NULL;
- oslFileError error;
-
- if ( !pDirectory )
- return osl_File_E_INVAL;
-
- *pDirectory = NULL;
-
- error = _osl_getSystemPathFromFileURL( strDirectoryPath, &strSysPath, sal_False );
- if ( osl_File_E_None == error )
- {
- Directory_Impl *pDirImpl;
-
- pDirImpl = reinterpret_cast<Directory_Impl*>(rtl_allocateMemory( sizeof(Directory_Impl)));
- ZeroMemory( pDirImpl, sizeof(Directory_Impl) );
- rtl_uString_newFromString( &pDirImpl->m_pDirectoryPath, strSysPath );
-
- /* Append backslash if neccessary */
-
- /* @@@ToDo
- use function ensure backslash
- */
- sal_uInt32 nLen = rtl_uString_getLength( pDirImpl->m_pDirectoryPath );
- if ( nLen && pDirImpl->m_pDirectoryPath->buffer[nLen - 1] != L'\\' )
- {
- rtl_uString* pCurDir = 0;
- rtl_uString* pBackSlash = 0;
-
- rtl_uString_assign( &pCurDir, pDirImpl->m_pDirectoryPath );
- rtl_uString_newFromAscii( &pBackSlash, "\\" );
- rtl_uString_newConcat( &pDirImpl->m_pDirectoryPath, pCurDir, pBackSlash );
- rtl_uString_release( pBackSlash );
- rtl_uString_release( pCurDir );
- }
-
- pDirImpl->uType = DIRECTORYTYPE_LOCALROOT;
- pDirImpl->hEnumDrives = OpenLogicalDrivesEnum();
-
- /* @@@ToDo
- Use IsValidHandle(...)
- */
- if ( pDirImpl->hEnumDrives != INVALID_HANDLE_VALUE )
- {
- *pDirectory = (oslDirectory)pDirImpl;
- error = osl_File_E_None;
- }
- else
- {
- if ( pDirImpl )
- {
- if ( pDirImpl->m_pDirectoryPath )
- {
- rtl_uString_release( pDirImpl->m_pDirectoryPath );
- pDirImpl->m_pDirectoryPath = 0;
- }
-
- rtl_freeMemory(pDirImpl);
- pDirImpl = 0;
- }
-
- error = oslTranslateFileError( GetLastError() );
- }
-
- rtl_uString_release( strSysPath );
- }
- return error;
-}
-
-//#####################################################
-static oslFileError SAL_CALL osl_openFileDirectory(
- rtl_uString *strDirectoryPath, oslDirectory *pDirectory)
-{
- oslFileError error = osl_File_E_None;
-
- if ( !pDirectory )
- return osl_File_E_INVAL;
- *pDirectory = NULL;
-
- Directory_Impl *pDirImpl = reinterpret_cast<Directory_Impl*>(rtl_allocateMemory(sizeof(Directory_Impl)));
- ZeroMemory( pDirImpl, sizeof(Directory_Impl) );
- rtl_uString_newFromString( &pDirImpl->m_pDirectoryPath, strDirectoryPath );
-
- /* Append backslash if neccessary */
-
- /* @@@ToDo
- use function ensure backslash
- */
- sal_uInt32 nLen = rtl_uString_getLength( pDirImpl->m_pDirectoryPath );
- if ( nLen && pDirImpl->m_pDirectoryPath->buffer[nLen - 1] != L'\\' )
- {
- rtl_uString* pCurDir = 0;
- rtl_uString* pBackSlash = 0;
-
- rtl_uString_assign( &pCurDir, pDirImpl->m_pDirectoryPath );
- rtl_uString_newFromAscii( &pBackSlash, "\\" );
- rtl_uString_newConcat( &pDirImpl->m_pDirectoryPath, pCurDir, pBackSlash );
- rtl_uString_release( pBackSlash );
- rtl_uString_release( pCurDir );
- }
-
-
- pDirImpl->uType = DIRECTORYTYPE_FILESYSTEM;
- pDirImpl->hDirectory = OpenDirectory( pDirImpl->m_pDirectoryPath );
-
- if ( !pDirImpl->hDirectory )
- {
- error = oslTranslateFileError( GetLastError() );
-
- if ( pDirImpl->m_pDirectoryPath )
- {
- rtl_uString_release( pDirImpl->m_pDirectoryPath );
- pDirImpl->m_pDirectoryPath = 0;
- }
-
- rtl_freeMemory(pDirImpl), pDirImpl = 0;
- }
-
- *pDirectory = (oslDirectory)(pDirImpl);
- return error;
-}
-
-//#####################################################
-static oslFileError SAL_CALL osl_openNetworkServer(
- rtl_uString *strSysDirPath, oslDirectory *pDirectory)
-{
- NETRESOURCEW aNetResource;
- HANDLE hEnum;
- DWORD dwError;
-
- ZeroMemory( &aNetResource, sizeof(aNetResource) );
-
- aNetResource.lpRemoteName = reinterpret_cast<LPWSTR>(strSysDirPath->buffer);
-
- dwError = WNetOpenEnumW(
- RESOURCE_GLOBALNET,
- RESOURCETYPE_DISK,
- RESOURCEUSAGE_CONNECTABLE | RESOURCEUSAGE_CONTAINER,
- &aNetResource,
- &hEnum );
-
- if ( ERROR_SUCCESS == dwError )
- {
- Directory_Impl *pDirImpl;
-
- pDirImpl = reinterpret_cast<Directory_Impl*>(rtl_allocateMemory(sizeof(Directory_Impl)));
- ZeroMemory( pDirImpl, sizeof(Directory_Impl) );
- pDirImpl->uType = DIRECTORYTYPE_NETROOT;
- pDirImpl->hDirectory = hEnum;
- *pDirectory = (oslDirectory)pDirImpl;
- }
- return oslTranslateFileError( dwError );
-}
-
-//#############################################
-static DWORD create_dir_with_callback(
- rtl_uString * dir_path,
- oslDirectoryCreationCallbackFunc aDirectoryCreationCallbackFunc,
- void* pData)
-{
- // Create the specified directory and call the
- // user specified callback function. On success
- // the function returns ERROR_SUCCESS else a Win32 error code.
-
- BOOL bCreated = FALSE;
-
- bCreated = CreateDirectoryW( reinterpret_cast<LPCWSTR>(rtl_uString_getStr( dir_path )), NULL );
-
- if ( bCreated )
- {
- if (aDirectoryCreationCallbackFunc)
- {
- rtl::OUString url;
- _osl_getFileURLFromSystemPath(dir_path, &(url.pData));
- aDirectoryCreationCallbackFunc(pData, url.pData);
- }
- return ERROR_SUCCESS;
- }
- return GetLastError();
-}
-
-//#############################################
-static int path_make_parent(sal_Unicode* path)
-{
- /* Cut off the last part of the given path to
- get the parent only, e.g. 'c:\dir\subdir' ->
- 'c:\dir' or '\\share\sub\dir' -> '\\share\sub'
- @return The position where the path has been cut
- off (this is the posistion of the last backslash).
- If there are no more parents 0 will be returned,
- e.g. 'c:\' or '\\Share' have no more parents */
-
- OSL_PRECOND(rtl_ustr_indexOfChar(path, SLASH) == -1, "Path must not contain slashes");
- OSL_PRECOND(has_path_parent(path), "Path must have a parent");
-
- sal_Unicode* pos_last_backslash = path + rtl_ustr_lastIndexOfChar(path, BACKSLASH);
- *pos_last_backslash = 0;
- return (pos_last_backslash - path);
-}
-
-//#############################################
-static DWORD create_dir_recursively_(
- rtl_uString * dir_path,
- oslDirectoryCreationCallbackFunc aDirectoryCreationCallbackFunc,
- void* pData)
-{
- OSL_PRECOND(
- rtl_ustr_lastIndexOfChar_WithLength(dir_path->buffer, dir_path->length, BACKSLASH) != dir_path->length,
- "Path must not end with a backslash");
-
- DWORD w32_error = create_dir_with_callback(
- dir_path, aDirectoryCreationCallbackFunc, pData);
- if (w32_error == ERROR_SUCCESS)
- return ERROR_SUCCESS;
-
- if ((w32_error != ERROR_PATH_NOT_FOUND) || !has_path_parent(dir_path->buffer))
- return w32_error;
-
- int pos = path_make_parent(dir_path->buffer); // dir_path->buffer[pos] = 0, restore below
-
- w32_error = create_dir_recursively_(
- dir_path, aDirectoryCreationCallbackFunc, pData);
-
- dir_path->buffer[pos] = BACKSLASH; // restore
-
- if (ERROR_SUCCESS != w32_error)
- return w32_error;
-
- return create_dir_recursively_(dir_path, aDirectoryCreationCallbackFunc, pData);
-}
-
-//#############################################
-oslFileError SAL_CALL osl_createDirectoryPath(
- rtl_uString* aDirectoryUrl,
- oslDirectoryCreationCallbackFunc aDirectoryCreationCallbackFunc,
- void* pData)
-{
- if (aDirectoryUrl == NULL)
- return osl_File_E_INVAL;
-
- rtl::OUString sys_path;
- oslFileError osl_error =
- _osl_getSystemPathFromFileURL(aDirectoryUrl, &sys_path.pData, sal_False);
-
- if (osl_error != osl_File_E_None)
- return osl_error;
-
- osl::systemPathRemoveSeparator(sys_path);
-
- // const_cast because sys_path is a local copy
- // which we want to modify inplace instead of
- // coyp it into another buffer on the heap again
- return oslTranslateFileError(create_dir_recursively_(
- sys_path.pData, aDirectoryCreationCallbackFunc, pData));
-}
-
-//#####################################################
-oslFileError SAL_CALL osl_createDirectory(rtl_uString* strPath)
-{
- rtl_uString *strSysPath = NULL;
- oslFileError error = _osl_getSystemPathFromFileURL( strPath, &strSysPath, sal_False );
-
- if ( osl_File_E_None == error )
- {
- BOOL bCreated = FALSE;
-
- bCreated = CreateDirectoryW( reinterpret_cast<LPCWSTR>(rtl_uString_getStr( strSysPath )), NULL );
-
- if ( !bCreated )
- {
- /*@@@ToDo
- The following case is a hack because the ucb or the webtop had some
- problems with the error code that CreateDirectory returns in
- case the path is only a logical drive, should be removed!
- */
-
- const sal_Unicode *pBuffer = rtl_uString_getStr( strSysPath );
- sal_Int32 nLen = rtl_uString_getLength( strSysPath );
-
- if (
- ( ( pBuffer[0] >= 'A' && pBuffer[0] <= 'Z' ) ||
- ( pBuffer[0] >= 'a' && pBuffer[0] <= 'z' ) ) &&
- pBuffer[1] == ':' && ( nLen ==2 || ( nLen == 3 && pBuffer[2] == '\\' ) )
- )
- SetLastError( ERROR_ALREADY_EXISTS );
-
- error = oslTranslateFileError( GetLastError() );
- }
-
- rtl_uString_release( strSysPath );
- }
- return error;
-}
-
-//#####################################################
-oslFileError SAL_CALL osl_removeDirectory(rtl_uString* strPath)
-{
- rtl_uString *strSysPath = NULL;
- oslFileError error = _osl_getSystemPathFromFileURL( strPath, &strSysPath, sal_False );
-
- if ( osl_File_E_None == error )
- {
- if ( RemoveDirectory( reinterpret_cast<LPCTSTR>(rtl_uString_getStr( strSysPath )) ) )
- error = osl_File_E_None;
- else
- error = oslTranslateFileError( GetLastError() );
-
- rtl_uString_release( strSysPath );
- }
- return error;
-}
-
-//#####################################################
-oslFileError SAL_CALL osl_openDirectory(rtl_uString *strDirectoryPath, oslDirectory *pDirectory)
-{
- oslFileError error;
-
- if ( 0 == rtl_ustr_ascii_compareIgnoreAsciiCase( strDirectoryPath->buffer, "file:///" ) )
- error = osl_openLocalRoot( strDirectoryPath, pDirectory );
- else
- {
- rtl_uString *strSysDirectoryPath = NULL;
- DWORD dwPathType;
-
- error = _osl_getSystemPathFromFileURL( strDirectoryPath, &strSysDirectoryPath, sal_False );
-
- if ( osl_File_E_None != error )
- return error;
-
- dwPathType = IsValidFilePath( strSysDirectoryPath, NULL, VALIDATEPATH_NORMAL, NULL );
-
- if ( dwPathType & PATHTYPE_IS_SERVER )
- {
- error = osl_openNetworkServer( strSysDirectoryPath, pDirectory );
- }
- else
- error = osl_openFileDirectory( strSysDirectoryPath, pDirectory );
-
- rtl_uString_release( strSysDirectoryPath );
- }
- return error;
-}
-
-//#####################################################
-static oslFileError SAL_CALL osl_getNextNetResource(
- oslDirectory Directory, oslDirectoryItem *pItem, sal_uInt32 /*uHint*/ )
-{
- Directory_Impl *pDirImpl = (Directory_Impl *)Directory;
- DirectoryItem_Impl *pItemImpl = NULL;
- BYTE buffer[16384];
- LPNETRESOURCEW lpNetResource = (LPNETRESOURCEW)buffer;
- DWORD dwError, dwCount, dwBufSize;
-
- if ( !pItem )
- return osl_File_E_INVAL;
- *pItem = NULL;
-
- if ( !pDirImpl )
- return osl_File_E_INVAL;
-
- dwCount = 1;
- dwBufSize = sizeof(buffer);
- dwError = WNetEnumResource( pDirImpl->hDirectory, &dwCount, lpNetResource, &dwBufSize );
-
- switch ( dwError )
- {
- case NO_ERROR:
- case ERROR_MORE_DATA:
- {
- pItemImpl = reinterpret_cast<DirectoryItem_Impl*>(rtl_allocateMemory(sizeof(DirectoryItem_Impl)));
- if ( !pItemImpl )
- return osl_File_E_NOMEM;
-
- ZeroMemory( pItemImpl, sizeof(DirectoryItem_Impl) );
- pItemImpl->uType = DIRECTORYITEM_DRIVE;
- osl_acquireDirectoryItem( (oslDirectoryItem)pItemImpl );
-
- wcscpy( pItemImpl->cDriveString, lpNetResource->lpRemoteName );
-
- *pItem = pItemImpl;
- }
- return osl_File_E_None;
- case ERROR_NO_MORE_ITEMS:
- return osl_File_E_NOENT;
- default:
- return oslTranslateFileError( dwError );
- }
-}
-
-//#####################################################
-static oslFileError SAL_CALL osl_getNextDrive(
- oslDirectory Directory, oslDirectoryItem *pItem, sal_uInt32 /*uHint*/ )
-{
- Directory_Impl *pDirImpl = (Directory_Impl *)Directory;
- DirectoryItem_Impl *pItemImpl = NULL;
- BOOL fSuccess;
-
- if ( !pItem )
- return osl_File_E_INVAL;
- *pItem = NULL;
-
- if ( !pDirImpl )
- return osl_File_E_INVAL;
-
- pItemImpl = reinterpret_cast<DirectoryItem_Impl*>(rtl_allocateMemory(sizeof(DirectoryItem_Impl)));
- if ( !pItemImpl )
- return osl_File_E_NOMEM;
-
- ZeroMemory( pItemImpl, sizeof(DirectoryItem_Impl) );
- pItemImpl->uType = DIRECTORYITEM_DRIVE;
- osl_acquireDirectoryItem( (oslDirectoryItem)pItemImpl );
- fSuccess = EnumLogicalDrives( pDirImpl->hEnumDrives, pItemImpl->cDriveString );
-
- if ( fSuccess )
- {
- *pItem = pItemImpl;
- return osl_File_E_None;
- }
- else
- {
- if ( pItemImpl->m_pFullPath )
- {
- rtl_uString_release( pItemImpl->m_pFullPath );
- pItemImpl->m_pFullPath = 0;
- }
-
- rtl_freeMemory( pItemImpl );
- return oslTranslateFileError( GetLastError() );
- }
-}
-
-//#####################################################
-static oslFileError SAL_CALL osl_getNextFileItem(
- oslDirectory Directory, oslDirectoryItem *pItem, sal_uInt32 /*uHint*/)
-{
- Directory_Impl *pDirImpl = (Directory_Impl *)Directory;
- DirectoryItem_Impl *pItemImpl = NULL;
- BOOL fFound;
-
- if ( !pItem )
- return osl_File_E_INVAL;
- *pItem = NULL;
-
- if ( !pDirImpl )
- return osl_File_E_INVAL;
-
- pItemImpl = reinterpret_cast<DirectoryItem_Impl*>(rtl_allocateMemory(sizeof(DirectoryItem_Impl)));
- if ( !pItemImpl )
- return osl_File_E_NOMEM;
-
- memset( pItemImpl, 0, sizeof(DirectoryItem_Impl) );
- fFound = EnumDirectory( pDirImpl->hDirectory, &pItemImpl->FindData );
-
- if ( fFound )
- {
- pItemImpl->uType = DIRECTORYITEM_FILE;
- pItemImpl->nRefCount = 1;
-
- rtl_uString* pTmpFileName = 0;
- rtl_uString_newFromStr( &pTmpFileName, reinterpret_cast<const sal_Unicode *>(pItemImpl->FindData.cFileName) );
- rtl_uString_newConcat( &pItemImpl->m_pFullPath, pDirImpl->m_pDirectoryPath, pTmpFileName );
- rtl_uString_release( pTmpFileName );
-
- pItemImpl->bFullPathNormalized = FALSE;
- *pItem = (oslDirectoryItem)pItemImpl;
- return osl_File_E_None;
- }
- else
- {
- if ( pItemImpl->m_pFullPath )
- {
- rtl_uString_release( pItemImpl->m_pFullPath );
- pItemImpl->m_pFullPath = 0;
- }
-
- rtl_freeMemory( pItemImpl );
- return oslTranslateFileError( GetLastError() );
- }
-}
-
-//#####################################################
-oslFileError SAL_CALL osl_getNextDirectoryItem(
- oslDirectory Directory, oslDirectoryItem *pItem, sal_uInt32 uHint)
-{
- Directory_Impl *pDirImpl = (Directory_Impl *)Directory;
-
- /* Assume failure */
-
- if ( !pItem )
- return osl_File_E_INVAL;
- *pItem = NULL;
-
- if ( !pDirImpl )
- return osl_File_E_INVAL;
-
- switch ( pDirImpl->uType )
- {
- case DIRECTORYTYPE_LOCALROOT:
- return osl_getNextDrive( Directory, pItem, uHint );
- case DIRECTORYTYPE_NETROOT:
- return osl_getNextNetResource( Directory, pItem, uHint );
- case DIRECTORYTYPE_FILESYSTEM:
- return osl_getNextFileItem( Directory, pItem, uHint );
- default:
- return osl_File_E_INVAL;
- }
-}
-
-//#####################################################
-oslFileError SAL_CALL osl_closeDirectory(oslDirectory Directory)
-{
- Directory_Impl *pDirImpl = (Directory_Impl *)Directory;
- oslFileError eError = osl_File_E_INVAL;
-
- if ( pDirImpl )
- {
- switch ( pDirImpl->uType )
- {
- case DIRECTORYTYPE_FILESYSTEM:
- eError = CloseDirectory( pDirImpl->hDirectory ) ? osl_File_E_None : oslTranslateFileError( GetLastError() );
- break;
- case DIRECTORYTYPE_LOCALROOT:
- eError = CloseLogicalDrivesEnum( pDirImpl->hEnumDrives ) ? osl_File_E_None : oslTranslateFileError( GetLastError() );
- break;
- case DIRECTORYTYPE_NETROOT:
- {
- DWORD err = WNetCloseEnum(pDirImpl->hDirectory);
- eError = (err == NO_ERROR) ? osl_File_E_None : oslTranslateFileError(err);
- }
- break;
- default:
- OSL_FAIL( "Invalid directory type" );
- break;
- }
-
- if ( pDirImpl->m_pDirectoryPath )
- {
- rtl_uString_release( pDirImpl->m_pDirectoryPath );
- pDirImpl->m_pDirectoryPath = 0;
- }
-
- rtl_freeMemory(pDirImpl);
- }
- return eError;
-}
-
-//#####################################################
-/* Different types of paths */
-typedef enum _PATHTYPE
-{
- PATHTYPE_SYNTAXERROR = 0,
- PATHTYPE_NETROOT,
- PATHTYPE_NETSERVER,
- PATHTYPE_VOLUME,
- PATHTYPE_FILE
-} PATHTYPE;
-
-oslFileError SAL_CALL osl_getDirectoryItem(rtl_uString *strFilePath, oslDirectoryItem *pItem)
-{
- oslFileError error = osl_File_E_None;
- rtl_uString* strSysFilePath = NULL;
- PATHTYPE type = PATHTYPE_FILE;
- DWORD dwPathType;
-
- /* Assume failure */
-
- if ( !pItem )
- return osl_File_E_INVAL;
-
- *pItem = NULL;
-
-
- error = _osl_getSystemPathFromFileURL( strFilePath, &strSysFilePath, sal_False );
-
- if ( osl_File_E_None != error )
- return error;
-
- dwPathType = IsValidFilePath( strSysFilePath, NULL, VALIDATEPATH_NORMAL, NULL );
-
- if ( dwPathType & PATHTYPE_IS_VOLUME )
- type = PATHTYPE_VOLUME;
- else if ( dwPathType & PATHTYPE_IS_SERVER )
- type = PATHTYPE_NETSERVER;
- else
- type = PATHTYPE_FILE;
-
- switch ( type )
- {
- case PATHTYPE_NETSERVER:
- {
- DirectoryItem_Impl* pItemImpl =
- reinterpret_cast<DirectoryItem_Impl*>(rtl_allocateMemory(sizeof(DirectoryItem_Impl)));
-
- if ( !pItemImpl )
- error = osl_File_E_NOMEM;
-
- if ( osl_File_E_None == error )
- {
- ZeroMemory( pItemImpl, sizeof(DirectoryItem_Impl) );
- pItemImpl->uType = DIRECTORYITEM_SERVER;
-
- osl_acquireDirectoryItem( (oslDirectoryItem)pItemImpl );
- rtl_uString_newFromString( &pItemImpl->m_pFullPath, strSysFilePath );
-
- // Assign a title anyway
- {
- int iSrc = 2;
- int iDst = 0;
-
- while( iSrc < strSysFilePath->length && strSysFilePath->buffer[iSrc] && strSysFilePath->buffer[iSrc] != '\\' )
- {
- pItemImpl->FindData.cFileName[iDst++] = strSysFilePath->buffer[iSrc++];
- }
- }
-
- *pItem = pItemImpl;
- }
- }
- break;
- case PATHTYPE_VOLUME:
- {
- DirectoryItem_Impl* pItemImpl =
- reinterpret_cast<DirectoryItem_Impl*>(rtl_allocateMemory(sizeof(DirectoryItem_Impl)));
-
- if ( !pItemImpl )
- error = osl_File_E_NOMEM;
-
- if ( osl_File_E_None == error )
- {
- ZeroMemory( pItemImpl, sizeof(DirectoryItem_Impl) );
- pItemImpl->uType = DIRECTORYITEM_DRIVE;
-
- osl_acquireDirectoryItem( (oslDirectoryItem)pItemImpl );
-
- _tcscpy( pItemImpl->cDriveString, reinterpret_cast<LPCTSTR>(strSysFilePath->buffer) );
- pItemImpl->cDriveString[0] = _toupper( pItemImpl->cDriveString[0] );
-
- if ( pItemImpl->cDriveString[_tcslen(pItemImpl->cDriveString) - 1] != '\\' )
- _tcscat( pItemImpl->cDriveString, TEXT( "\\" ) );
-
- *pItem = pItemImpl;
- }
- }
- break;
- case PATHTYPE_SYNTAXERROR:
- case PATHTYPE_NETROOT:
- case PATHTYPE_FILE:
- {
- HANDLE hFind;
- WIN32_FIND_DATA aFindData;
-
- if ( strSysFilePath->length > 0 && strSysFilePath->buffer[strSysFilePath->length - 1] == '\\' )
- rtl_uString_newFromStr_WithLength( &strSysFilePath, strSysFilePath->buffer, strSysFilePath->length - 1 );
-
- hFind = FindFirstFile( reinterpret_cast<LPCTSTR>(rtl_uString_getStr(strSysFilePath)), &aFindData );
-
- if ( hFind != INVALID_HANDLE_VALUE )
- {
- DirectoryItem_Impl *pItemImpl =
- reinterpret_cast<DirectoryItem_Impl*>(rtl_allocateMemory(sizeof(DirectoryItem_Impl)));
-
- ZeroMemory( pItemImpl, sizeof(DirectoryItem_Impl) );
- osl_acquireDirectoryItem( (oslDirectoryItem)pItemImpl );
-
- CopyMemory( &pItemImpl->FindData, &aFindData, sizeof(WIN32_FIND_DATA) );
- rtl_uString_newFromString( &pItemImpl->m_pFullPath, strSysFilePath );
-
- // MT: This costs 600ms startup time on fast v60x!
- // GetCaseCorrectPathName( pItemImpl->szFullPath, pItemImpl->szFullPath, sizeof(pItemImpl->szFullPath) );
-
- pItemImpl->uType = DIRECTORYITEM_FILE;
- *pItem = pItemImpl;
- FindClose( hFind );
- }
- else
- error = oslTranslateFileError( GetLastError() );
- }
- break;
- }
-
- if ( strSysFilePath )
- rtl_uString_release( strSysFilePath );
-
- return error;
-}
-
-//#####################################################
-oslFileError SAL_CALL osl_acquireDirectoryItem( oslDirectoryItem Item )
-{
- DirectoryItem_Impl *pItemImpl = (DirectoryItem_Impl *)Item;
-
- if ( !pItemImpl )
- return osl_File_E_INVAL;
-
- pItemImpl->nRefCount++;
- return osl_File_E_None;
-}
-
-//#####################################################
-oslFileError SAL_CALL osl_releaseDirectoryItem( oslDirectoryItem Item )
-{
- DirectoryItem_Impl *pItemImpl = (DirectoryItem_Impl *)Item;
-
- if ( !pItemImpl )
- return osl_File_E_INVAL;
-
- if ( ! --pItemImpl->nRefCount )
- {
- if ( pItemImpl->m_pFullPath )
- {
- rtl_uString_release( pItemImpl->m_pFullPath );
- pItemImpl->m_pFullPath = 0;
- }
-
- rtl_freeMemory( pItemImpl );
- }
-
- return osl_File_E_None;
-}
-
-//#####################################################
-// volume / file info handling functions
-//#####################################################
-
-//#####################################################
-static inline bool is_floppy_A_present()
-{ return (GetLogicalDrives() & 1); }
-
-//#####################################################
-static inline bool is_floppy_B_present()
-{ return (GetLogicalDrives() & 2); }
-
-//#####################################################
-bool is_floppy_volume_mount_point(const rtl::OUString& path)
-{
- // determines if a volume mount point shows to a floppy
- // disk by comparing the unique volume names
- static const LPCWSTR FLOPPY_A = L"A:\\";
- static const LPCWSTR FLOPPY_B = L"B:\\";
-
- rtl::OUString p(path);
- osl::systemPathEnsureSeparator(p);
-
- TCHAR vn[51];
- if (GetVolumeNameForVolumeMountPoint(reinterpret_cast<LPCTSTR>(p.getStr()), vn, SAL_N_ELEMENTS(vn)))
- {
- TCHAR vnfloppy[51];
- if (is_floppy_A_present() &&
- GetVolumeNameForVolumeMountPoint(FLOPPY_A, vnfloppy, SAL_N_ELEMENTS(vnfloppy)) &&
- (0 == wcscmp(vn, vnfloppy)))
- return true;
-
- if (is_floppy_B_present() &&
- GetVolumeNameForVolumeMountPoint(FLOPPY_B, vnfloppy, SAL_N_ELEMENTS(vnfloppy)) &&
- (0 == wcscmp(vn, vnfloppy)))
- return true;
- }
- return false;
-}
-
-//################################################
-static bool is_floppy_drive(const rtl::OUString& path)
-{
- static const LPCWSTR FLOPPY_DRV_LETTERS = TEXT("AaBb");
-
- // we must take into account that even a floppy
- // drive may be mounted to a directory so checking
- // for the drive letter alone is not sufficient
- // we must compare the unique volume name with
- // that of the available floppy disks
-
- const sal_Unicode* pszPath = path.getStr();
- return ((wcschr(FLOPPY_DRV_LETTERS, pszPath[0]) && (L':' == pszPath[1])) || is_floppy_volume_mount_point(path));
-}
-
-//#####################################################
-static bool is_volume_mount_point(const rtl::OUString& path)
-{
- rtl::OUString p(path);
- osl::systemPathRemoveSeparator(p);
-
- bool is_volume_root = false;
-
- if (!is_floppy_drive(p))
- {
- DWORD fattr = GetFileAttributes(reinterpret_cast<LPCTSTR>(p.getStr()));
-
- if ((INVALID_FILE_ATTRIBUTES != fattr) &&
- (FILE_ATTRIBUTE_REPARSE_POINT & fattr))
- {
- WIN32_FIND_DATA find_data;
- HANDLE h_find = FindFirstFile(reinterpret_cast<LPCTSTR>(p.getStr()), &find_data);
-
- if (IsValidHandle(h_find) &&
- (FILE_ATTRIBUTE_REPARSE_POINT & find_data.dwFileAttributes) &&
- (IO_REPARSE_TAG_MOUNT_POINT == find_data.dwReserved0))
- {
- is_volume_root = true;
- }
- if (IsValidHandle(h_find))
- FindClose(h_find);
- }
- }
- return is_volume_root;
-}
-
-//#############################################
-static UINT get_volume_mount_point_drive_type(const rtl::OUString& path)
-{
- if (0 == path.getLength())
- return GetDriveType(NULL);
-
- rtl::OUString p(path);
- osl::systemPathEnsureSeparator(p);
-
- TCHAR vn[51];
- if (GetVolumeNameForVolumeMountPoint(reinterpret_cast<LPCTSTR>(p.getStr()), vn, SAL_N_ELEMENTS(vn)))
- return GetDriveType(vn);
-
- return DRIVE_NO_ROOT_DIR;
-}
-
-//#############################################
-static inline bool is_drivetype_request(sal_uInt32 field_mask)
-{
- return (field_mask & osl_VolumeInfo_Mask_Attributes);
-}
-
-//#############################################
-static oslFileError osl_get_drive_type(
- const rtl::OUString& path, oslVolumeInfo* pInfo)
-{
- // GetDriveType fails on empty volume mount points
- // see Knowledge Base Q244089
- UINT drive_type;
- if (is_volume_mount_point(path))
- drive_type = get_volume_mount_point_drive_type(path);
- else
- drive_type = GetDriveType(reinterpret_cast<LPCTSTR>(path.getStr()));
-
- if (DRIVE_NO_ROOT_DIR == drive_type)
- return oslTranslateFileError(ERROR_INVALID_DRIVE);
-
- pInfo->uValidFields |= osl_VolumeInfo_Mask_Attributes;
-
- switch (drive_type)
- {
- case DRIVE_CDROM:
- pInfo->uAttributes |= osl_Volume_Attribute_CompactDisc | osl_Volume_Attribute_Removeable;
- break;
- case DRIVE_REMOVABLE:
- pInfo->uAttributes |= osl_Volume_Attribute_Removeable;
- if (is_floppy_drive(path))
- pInfo->uAttributes |= osl_Volume_Attribute_FloppyDisk;
- break;
- case DRIVE_FIXED:
- pInfo->uAttributes |= osl_Volume_Attribute_FixedDisk;
- break;
- case DRIVE_RAMDISK:
- pInfo->uAttributes |= osl_Volume_Attribute_RAMDisk;
- break;
- case DRIVE_REMOTE:
- pInfo->uAttributes |= osl_Volume_Attribute_Remote;
- break;
- case DRIVE_UNKNOWN:
- pInfo->uAttributes = 0;
- break;
- default:
- pInfo->uValidFields &= ~osl_VolumeInfo_Mask_Attributes;
- pInfo->uAttributes = 0;
- break;
- }
- return osl_File_E_None;
-}
-
-//#############################################
-static inline bool is_volume_space_info_request(sal_uInt32 field_mask)
-{
- return (field_mask &
- (osl_VolumeInfo_Mask_TotalSpace |
- osl_VolumeInfo_Mask_UsedSpace |
- osl_VolumeInfo_Mask_FreeSpace));
-}
-
-//#############################################
-static void get_volume_space_information(
- const rtl::OUString& path, oslVolumeInfo *pInfo)
-{
- BOOL ret = GetDiskFreeSpaceEx(
- reinterpret_cast<LPCTSTR>(path.getStr()),
- (PULARGE_INTEGER)&(pInfo->uFreeSpace),
- (PULARGE_INTEGER)&(pInfo->uTotalSpace),
- NULL);
-
- if (ret)
- {
- pInfo->uUsedSpace = pInfo->uTotalSpace - pInfo->uFreeSpace;
- pInfo->uValidFields |= osl_VolumeInfo_Mask_TotalSpace |
- osl_VolumeInfo_Mask_UsedSpace |
- osl_VolumeInfo_Mask_FreeSpace;
- }
-}
-
-//#############################################
-static inline bool is_filesystem_attributes_request(sal_uInt32 field_mask)
-{
- return (field_mask &
- (osl_VolumeInfo_Mask_MaxNameLength |
- osl_VolumeInfo_Mask_MaxPathLength |
- osl_VolumeInfo_Mask_FileSystemName |
- osl_VolumeInfo_Mask_FileSystemCaseHandling));
-}
-
-//#############################################
-static oslFileError get_filesystem_attributes(
- const rtl::OUString& path, sal_uInt32 field_mask, oslVolumeInfo* pInfo)
-{
- pInfo->uAttributes = 0;
-
- // osl_get_drive_type must be called first because
- // this function resets osl_VolumeInfo_Mask_Attributes
- // on failure
- if (is_drivetype_request(field_mask))
- {
- oslFileError osl_error = osl_get_drive_type(path, pInfo);
- if (osl_File_E_None != osl_error)
- return osl_error;
- }
- if (is_filesystem_attributes_request(field_mask))
- {
- /* the following two parameters can not be longer than MAX_PATH+1 */
- WCHAR vn[MAX_PATH+1];
- WCHAR fsn[MAX_PATH+1];
-
- DWORD serial;
- DWORD mcl;
- DWORD flags;
-
- LPCTSTR pszPath = reinterpret_cast<LPCTSTR>(path.getStr());
- if (GetVolumeInformation(pszPath, vn, MAX_PATH+1, &serial, &mcl, &flags, fsn, MAX_PATH+1))
- {
- // Currently sal does not use this value, instead MAX_PATH is used
- pInfo->uValidFields |= osl_VolumeInfo_Mask_MaxNameLength;
- pInfo->uMaxNameLength = mcl;
-
- // Should the uMaxPathLength be set to 32767, "\\?\" prefix allowes it
- pInfo->uValidFields |= osl_VolumeInfo_Mask_MaxPathLength;
- pInfo->uMaxPathLength = MAX_PATH;
-
- pInfo->uValidFields |= osl_VolumeInfo_Mask_FileSystemName;
- rtl_uString_newFromStr(&pInfo->ustrFileSystemName, reinterpret_cast<const sal_Unicode*>(fsn));
-
- // volumes (even NTFS) will always be considered case
- // insensitive because the Win32 API is not able to
- // deal with case sensitive volumes see M$ Knowledge Base
- // article 100625 that's why we never set the attribute
- // osl_Volume_Attribute_Case_Sensitive
-
- if (flags & FS_CASE_IS_PRESERVED)
- pInfo->uAttributes |= osl_Volume_Attribute_Case_Is_Preserved;
-
- pInfo->uValidFields |= osl_VolumeInfo_Mask_Attributes;
- }
- }
- return osl_File_E_None;
-}
-
-//#####################################################
-static bool path_get_parent(rtl::OUString& path)
-{
- OSL_PRECOND(path.lastIndexOf(SLASH) == -1, "Path must not have slashes");
-
- if (!has_path_parent(path))
- {
- sal_Int32 i = path.lastIndexOf(BACKSLASH);
- if (-1 < i)
- {
- path = rtl::OUString(path.getStr(), i);
- return true;
- }
- }
- return false;
-}
-
-//#####################################################
-static void path_travel_to_volume_root(const rtl::OUString& system_path, rtl::OUString& volume_root)
-{
- rtl::OUString sys_path(system_path);
-
- while(!is_volume_mount_point(sys_path) && path_get_parent(sys_path))
- /**/;
-
- volume_root = sys_path;
- osl::systemPathEnsureSeparator(volume_root);
-}
-
-//#############################################
-oslFileError SAL_CALL osl_getVolumeInformation(
- rtl_uString *ustrURL, oslVolumeInfo *pInfo, sal_uInt32 uFieldMask )
-{
- if (!pInfo)
- return osl_File_E_INVAL;
-
- rtl::OUString system_path;
- oslFileError error = _osl_getSystemPathFromFileURL(ustrURL, &system_path.pData, sal_False);
-
- if (osl_File_E_None != error)
- return error;
-
- rtl::OUString volume_root;
- path_travel_to_volume_root(system_path, volume_root);
-
- pInfo->uValidFields = 0;
-
- if ((error = get_filesystem_attributes(volume_root, uFieldMask, pInfo)) != osl_File_E_None)
- return error;
-
- if (is_volume_space_info_request(uFieldMask))
- get_volume_space_information(volume_root, pInfo);
-
- if (uFieldMask & osl_VolumeInfo_Mask_DeviceHandle)
- {
- pInfo->uValidFields |= osl_VolumeInfo_Mask_DeviceHandle;
- osl_getFileURLFromSystemPath(volume_root.pData, (rtl_uString**)&pInfo->pDeviceHandle);
- }
-
- return osl_File_E_None;
-}
-
-//#####################################################
-static oslFileError SAL_CALL osl_getDriveInfo(
- oslDirectoryItem Item, oslFileStatus *pStatus, sal_uInt32 uFieldMask)
-{
- DirectoryItem_Impl *pItemImpl = (DirectoryItem_Impl *)Item;
- TCHAR cDrive[3] = TEXT("A:");
- TCHAR cRoot[4] = TEXT("A:\\");
-
- if ( !pItemImpl )
- return osl_File_E_INVAL;
-
- pStatus->uValidFields = 0;
-
- cDrive[0] = pItemImpl->cDriveString[0];
- cRoot[0] = pItemImpl->cDriveString[0];
-
- if ( uFieldMask & osl_FileStatus_Mask_FileName )
- {
- if ( pItemImpl->cDriveString[0] == '\\' && pItemImpl->cDriveString[1] == '\\' )
- {
- LPCWSTR lpFirstBkSlash = wcschr( &pItemImpl->cDriveString[2], '\\' );
-
- if ( lpFirstBkSlash && lpFirstBkSlash[1] )
- {
- LPCWSTR lpLastBkSlash = wcschr( &lpFirstBkSlash[1], '\\' );
-
- if ( lpLastBkSlash )
- rtl_uString_newFromStr_WithLength( &pStatus->ustrFileName, reinterpret_cast<const sal_Unicode*>(&lpFirstBkSlash[1]), lpLastBkSlash - lpFirstBkSlash - 1 );
- else
- rtl_uString_newFromStr( &pStatus->ustrFileName, reinterpret_cast<const sal_Unicode*>(&lpFirstBkSlash[1]) );
- pStatus->uValidFields |= osl_FileStatus_Mask_FileName;
- }
- }
- else switch ( GetDriveType( cRoot ) )
- {
- case DRIVE_REMOTE:
- {
- TCHAR szBuffer[1024];
- DWORD const dwBufsizeConst = SAL_N_ELEMENTS(szBuffer);
- DWORD dwBufsize = dwBufsizeConst;
-
- DWORD dwResult = WNetGetConnection( cDrive, szBuffer, &dwBufsize );
- if ( NO_ERROR == dwResult )
- {
- TCHAR szFileName[dwBufsizeConst + 16];
-
- swprintf( szFileName, L"%s [%s]", cDrive, szBuffer );
- rtl_uString_newFromStr( &pStatus->ustrFileName, reinterpret_cast<const sal_Unicode*>(szFileName) );
- }
- else
- rtl_uString_newFromStr( &pStatus->ustrFileName, reinterpret_cast<const sal_Unicode*>(cDrive) );
- }
- pStatus->uValidFields |= osl_FileStatus_Mask_FileName;
- break;
- case DRIVE_FIXED:
- {
- TCHAR szVolumeNameBuffer[1024];
- DWORD const dwBufsizeConst = SAL_N_ELEMENTS(szVolumeNameBuffer);
-
- if ( GetVolumeInformation( cRoot, szVolumeNameBuffer, dwBufsizeConst, NULL, NULL, NULL, NULL, 0 ) )
- {
- TCHAR szFileName[dwBufsizeConst + 16];
-
- swprintf( szFileName, L"%s [%s]", cDrive, szVolumeNameBuffer );
- rtl_uString_newFromStr( &pStatus->ustrFileName, reinterpret_cast<const sal_Unicode*>(szFileName) );
- }
- else
- rtl_uString_newFromStr( &pStatus->ustrFileName, reinterpret_cast<const sal_Unicode*>(cDrive) );
- }
- pStatus->uValidFields |= osl_FileStatus_Mask_FileName;
- break;
- case DRIVE_CDROM:
- case DRIVE_REMOVABLE:
- pStatus->uValidFields |= osl_FileStatus_Mask_FileName;
- rtl_uString_newFromStr( &pStatus->ustrFileName, reinterpret_cast<const sal_Unicode*>(cRoot) );
- break;
- case DRIVE_UNKNOWN:
- default:
- break;
- }
- }
-
- pStatus->eType = osl_File_Type_Volume;
- pStatus->uValidFields |= osl_FileStatus_Mask_Type;
-
- if ( uFieldMask & osl_FileStatus_Mask_FileURL )
- {
- rtl_uString *ustrSystemPath = NULL;
-
- rtl_uString_newFromStr( &ustrSystemPath, reinterpret_cast<const sal_Unicode*>(pItemImpl->cDriveString) );
- osl_getFileURLFromSystemPath( ustrSystemPath, &pStatus->ustrFileURL );
- rtl_uString_release( ustrSystemPath );
- pStatus->uValidFields |= osl_FileStatus_Mask_FileURL;
- }
- return osl_File_E_None;
-}
-
-//#####################################################
-static oslFileError SAL_CALL osl_getServerInfo(
- oslDirectoryItem Item, oslFileStatus *pStatus, sal_uInt32 uFieldMask )
-{
- DirectoryItem_Impl *pItemImpl = (DirectoryItem_Impl *)Item;
- if ( !pItemImpl )
- return osl_File_E_INVAL;
-
- pStatus->uValidFields = 0;
-
- // pStatus->uValidFields |= osl_FileStatus_Mask_FileName;
-
- // if ( _tcscmp( pItemImpl->FindData.cFileName, TEXT(".") ) == 0 )
- // rtl_uString_newFromAscii( &pStatus->ustrFileName, "/" );
- // else
- // rtl_uString_newFromStr( &pStatus->ustrFileName, pItemImpl->FindData.cFileName );
-
- pStatus->eType = osl_File_Type_Directory;
- pStatus->uValidFields |= osl_FileStatus_Mask_Type;
-
- if ( uFieldMask & osl_FileStatus_Mask_FileURL )
- {
- osl_getFileURLFromSystemPath( pItemImpl->m_pFullPath, &pStatus->ustrFileURL );
- pStatus->uValidFields |= osl_FileStatus_Mask_FileURL;
- }
- return osl_File_E_None;
-}
-
-//#############################################
-oslFileError SAL_CALL osl_getFileStatus(
- oslDirectoryItem Item,
- oslFileStatus *pStatus,
- sal_uInt32 uFieldMask )
-{
- DirectoryItem_Impl *pItemImpl = (DirectoryItem_Impl *)Item;
-
- if ( !pItemImpl )
- return osl_File_E_INVAL;
-
- switch ( pItemImpl->uType )
- {
- case DIRECTORYITEM_DRIVE:
- return osl_getDriveInfo( Item, pStatus, uFieldMask );
- case DIRECTORYITEM_SERVER:
- return osl_getServerInfo( Item, pStatus, uFieldMask );
- default:
- break;
- }
-
- if ( uFieldMask & osl_FileStatus_Mask_Validate )
- {
- HANDLE hFind = FindFirstFile( reinterpret_cast<LPCTSTR>( rtl_uString_getStr( pItemImpl->m_pFullPath ) ), &pItemImpl->FindData );
-
- if ( hFind != INVALID_HANDLE_VALUE )
- FindClose( hFind );
- else
- return oslTranslateFileError( GetLastError() );
-
- uFieldMask &= ~ osl_FileStatus_Mask_Validate;
- }
-
- /* If no fields to retrieve left ignore pStatus */
- if ( !uFieldMask )
- return osl_File_E_None;
-
- /* Otherwise, this must be a valid pointer */
- if ( !pStatus )
- return osl_File_E_INVAL;
-
- if ( pStatus->uStructSize != sizeof(oslFileStatus) )
- return osl_File_E_INVAL;
-
- pStatus->uValidFields = 0;
-
- /* File time stamps */
-
- if ( (uFieldMask & osl_FileStatus_Mask_ModifyTime) &&
- FileTimeToTimeValue( &pItemImpl->FindData.ftLastWriteTime, &pStatus->aModifyTime ) )
- pStatus->uValidFields |= osl_FileStatus_Mask_ModifyTime;
-
- if ( (uFieldMask & osl_FileStatus_Mask_AccessTime) &&
- FileTimeToTimeValue( &pItemImpl->FindData.ftLastAccessTime, &pStatus->aAccessTime ) )
- pStatus->uValidFields |= osl_FileStatus_Mask_AccessTime;
-
- if ( (uFieldMask & osl_FileStatus_Mask_CreationTime) &&
- FileTimeToTimeValue( &pItemImpl->FindData.ftCreationTime, &pStatus->aCreationTime ) )
- pStatus->uValidFields |= osl_FileStatus_Mask_CreationTime;
-
- /* Most of the fields are already set, regardless of requiered fields */
-
- rtl_uString_newFromStr( &pStatus->ustrFileName, reinterpret_cast<const sal_Unicode*>(pItemImpl->FindData.cFileName) );
- pStatus->uValidFields |= osl_FileStatus_Mask_FileName;
-
- if ((FILE_ATTRIBUTE_REPARSE_POINT & pItemImpl->FindData.dwFileAttributes) &&
- (IO_REPARSE_TAG_MOUNT_POINT == pItemImpl->FindData.dwReserved0))
- pStatus->eType = osl_File_Type_Volume;
- else if (pItemImpl->FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
- pStatus->eType = osl_File_Type_Directory;
- else
- pStatus->eType = osl_File_Type_Regular;
-
- pStatus->uValidFields |= osl_FileStatus_Mask_Type;
-
- pStatus->uAttributes = pItemImpl->FindData.dwFileAttributes;
- pStatus->uValidFields |= osl_FileStatus_Mask_Attributes;
-
- pStatus->uFileSize = (sal_uInt64)pItemImpl->FindData.nFileSizeLow + ((sal_uInt64)pItemImpl->FindData.nFileSizeHigh << 32);
- pStatus->uValidFields |= osl_FileStatus_Mask_FileSize;
-
- if ( uFieldMask & osl_FileStatus_Mask_LinkTargetURL )
- {
- osl_getFileURLFromSystemPath( pItemImpl->m_pFullPath, &pStatus->ustrLinkTargetURL );
-
- pStatus->uValidFields |= osl_FileStatus_Mask_LinkTargetURL;
- }
-
- if ( uFieldMask & osl_FileStatus_Mask_FileURL )
- {
- if ( !pItemImpl->bFullPathNormalized )
- {
- sal_uInt32 nLen = rtl_uString_getLength( pItemImpl->m_pFullPath );
- ::osl::LongPathBuffer< sal_Unicode > aBuffer( MAX_LONG_PATH );
- sal_uInt32 nNewLen = GetCaseCorrectPathName( reinterpret_cast<LPCTSTR>( rtl_uString_getStr( pItemImpl->m_pFullPath ) ),
- ::osl::mingw_reinterpret_cast<LPTSTR>( aBuffer ),
- aBuffer.getBufSizeInSymbols(),
- sal_True );
-
- if ( nNewLen )
- {
- rtl_uString_newFromStr( &pItemImpl->m_pFullPath, aBuffer );
- pItemImpl->bFullPathNormalized = TRUE;
- }
- }
-
- osl_getFileURLFromSystemPath( pItemImpl->m_pFullPath, &pStatus->ustrFileURL );
- pStatus->uValidFields |= osl_FileStatus_Mask_FileURL;
- }
-
- return osl_File_E_None;
-}
-
-//#####################################################
-// file attributes handling functions
-//#####################################################
-
-//#############################################
-oslFileError SAL_CALL osl_setFileAttributes(
- rtl_uString *ustrFileURL,
- sal_uInt64 uAttributes )
-{
- oslFileError error;
- rtl_uString *ustrSysPath = NULL;
- DWORD dwFileAttributes;
- BOOL fSuccess;
-
- // Converts the normalized path into a systempath
- error = _osl_getSystemPathFromFileURL( ustrFileURL, &ustrSysPath, sal_False );
-
- if ( osl_File_E_None != error )
- return error;
-
- dwFileAttributes = GetFileAttributes( reinterpret_cast<LPCTSTR>(rtl_uString_getStr(ustrSysPath)) );
-
- if ( (DWORD)-1 != dwFileAttributes )
- {
- dwFileAttributes &= ~(FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN);
-
- if ( uAttributes & osl_File_Attribute_ReadOnly )
- dwFileAttributes |= FILE_ATTRIBUTE_READONLY;
-
- if ( uAttributes & osl_File_Attribute_Hidden )
- dwFileAttributes |= FILE_ATTRIBUTE_HIDDEN;
-
- fSuccess = SetFileAttributes( reinterpret_cast<LPCTSTR>(rtl_uString_getStr(ustrSysPath)), dwFileAttributes );
- }
- else
- fSuccess = FALSE;
-
- if ( !fSuccess )
- error = oslTranslateFileError( GetLastError() );
-
- rtl_uString_release( ustrSysPath );
-
- return error;
-}
-
-//#####################################################
-oslFileError SAL_CALL osl_setFileTime(
- rtl_uString *filePath,
- const TimeValue *aCreationTime,
- const TimeValue *aLastAccessTime,
- const TimeValue *aLastWriteTime)
-{
- oslFileError error;
- rtl_uString *sysPath=NULL;
- FILETIME *lpCreationTime=NULL;
- FILETIME *lpLastAccessTime=NULL;
- FILETIME *lpLastWriteTime=NULL;
- FILETIME ftCreationTime;
- FILETIME ftLastAccessTime;
- FILETIME ftLastWriteTime;
- HANDLE hFile;
- BOOL fSuccess;
-
-
- error=_osl_getSystemPathFromFileURL(filePath, &sysPath, sal_False);
-
- if (error==osl_File_E_INVAL)
- return error;
-
- hFile=CreateFileW(reinterpret_cast<LPCWSTR>(rtl_uString_getStr(sysPath)), GENERIC_WRITE, 0, NULL , OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
- rtl_uString_release(sysPath);
-
- if (hFile==INVALID_HANDLE_VALUE)
- return osl_File_E_NOENT;
-
- if (TimeValueToFileTime(aCreationTime, &ftCreationTime))
- lpCreationTime=&ftCreationTime;
-
- if (TimeValueToFileTime(aLastAccessTime, &ftLastAccessTime))
- lpLastAccessTime=&ftLastAccessTime;
-
- if (TimeValueToFileTime(aLastWriteTime, &ftLastWriteTime))
- lpLastWriteTime=&ftLastWriteTime;
-
- fSuccess=SetFileTime(hFile, lpCreationTime, lpLastAccessTime, lpLastWriteTime);
-
- CloseHandle(hFile);
-
- if (!fSuccess)
- return osl_File_E_INVAL;
- else
- return osl_File_E_None;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/file_error.c b/sal/osl/w32/file_error.c
deleted file mode 100644
index 45ad7ed18..000000000
--- a/sal/osl/w32/file_error.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#define UNICODE
-#define _UNICODE
-#define _WIN32_WINNT 0x0500
-#include "systools/win32/uwinapi.h"
-
-#include "file_error.h"
-
-#include "osl/diagnose.h"
-#include "osl/thread.h"
-#include <sal/macros.h>
-
-/* OS error to oslFileError values mapping table */
-struct osl_file_error_entry
-{
- unsigned long oscode; /* OS return value */
- int errnocode; /* oslFileError code */
-};
-
-static const struct osl_file_error_entry errtable[] = {
- { ERROR_SUCCESS, osl_File_E_None }, /* 0 */
- { ERROR_INVALID_FUNCTION, osl_File_E_INVAL }, /* 1 */
- { ERROR_FILE_NOT_FOUND, osl_File_E_NOENT }, /* 2 */
- { ERROR_PATH_NOT_FOUND, osl_File_E_NOENT }, /* 3 */
- { ERROR_TOO_MANY_OPEN_FILES, osl_File_E_MFILE }, /* 4 */
- { ERROR_ACCESS_DENIED, osl_File_E_ACCES }, /* 5 */
- { ERROR_INVALID_HANDLE, osl_File_E_BADF }, /* 6 */
- { ERROR_ARENA_TRASHED, osl_File_E_NOMEM }, /* 7 */
- { ERROR_NOT_ENOUGH_MEMORY, osl_File_E_NOMEM }, /* 8 */
- { ERROR_INVALID_BLOCK, osl_File_E_NOMEM }, /* 9 */
- { ERROR_BAD_ENVIRONMENT, osl_File_E_2BIG }, /* 10 */
- { ERROR_BAD_FORMAT, osl_File_E_NOEXEC }, /* 11 */
- { ERROR_INVALID_ACCESS, osl_File_E_INVAL }, /* 12 */
- { ERROR_INVALID_DATA, osl_File_E_INVAL }, /* 13 */
- { ERROR_INVALID_DRIVE, osl_File_E_NOENT }, /* 15 */
- { ERROR_CURRENT_DIRECTORY, osl_File_E_ACCES }, /* 16 */
- { ERROR_NOT_SAME_DEVICE, osl_File_E_XDEV }, /* 17 */
- { ERROR_NO_MORE_FILES, osl_File_E_NOENT }, /* 18 */
- { ERROR_NOT_READY, osl_File_E_NOTREADY }, /* 21 */
- { ERROR_LOCK_VIOLATION, osl_File_E_ACCES }, /* 33 */
- { ERROR_BAD_NETPATH, osl_File_E_NOENT }, /* 53 */
- { ERROR_NETWORK_ACCESS_DENIED, osl_File_E_ACCES }, /* 65 */
- { ERROR_BAD_NET_NAME, osl_File_E_NOENT }, /* 67 */
- { ERROR_FILE_EXISTS, osl_File_E_EXIST }, /* 80 */
- { ERROR_CANNOT_MAKE, osl_File_E_ACCES }, /* 82 */
- { ERROR_FAIL_I24, osl_File_E_ACCES }, /* 83 */
- { ERROR_INVALID_PARAMETER, osl_File_E_INVAL }, /* 87 */
- { ERROR_NO_PROC_SLOTS, osl_File_E_AGAIN }, /* 89 */
- { ERROR_DRIVE_LOCKED, osl_File_E_ACCES }, /* 108 */
- { ERROR_BROKEN_PIPE, osl_File_E_PIPE }, /* 109 */
- { ERROR_DISK_FULL, osl_File_E_NOSPC }, /* 112 */
- { ERROR_INVALID_TARGET_HANDLE, osl_File_E_BADF }, /* 114 */
- { ERROR_INVALID_HANDLE, osl_File_E_INVAL }, /* 124 */
- { ERROR_WAIT_NO_CHILDREN, osl_File_E_CHILD }, /* 128 */
- { ERROR_CHILD_NOT_COMPLETE, osl_File_E_CHILD }, /* 129 */
- { ERROR_DIRECT_ACCESS_HANDLE, osl_File_E_BADF }, /* 130 */
- { ERROR_NEGATIVE_SEEK, osl_File_E_INVAL }, /* 131 */
- { ERROR_SEEK_ON_DEVICE, osl_File_E_ACCES }, /* 132 */
- { ERROR_DIR_NOT_EMPTY, osl_File_E_NOTEMPTY }, /* 145 */
- { ERROR_NOT_LOCKED, osl_File_E_ACCES }, /* 158 */
- { ERROR_BAD_PATHNAME, osl_File_E_NOENT }, /* 161 */
- { ERROR_MAX_THRDS_REACHED, osl_File_E_AGAIN }, /* 164 */
- { ERROR_LOCK_FAILED, osl_File_E_ACCES }, /* 167 */
- { ERROR_ALREADY_EXISTS, osl_File_E_EXIST }, /* 183 */
- { ERROR_FILENAME_EXCED_RANGE, osl_File_E_NOENT }, /* 206 */
- { ERROR_NESTING_NOT_ALLOWED, osl_File_E_AGAIN }, /* 215 */
- { ERROR_DIRECTORY, osl_File_E_NOENT }, /* 267 */
- { ERROR_NOT_ENOUGH_QUOTA, osl_File_E_NOMEM }, /* 1816 */
- { ERROR_UNEXP_NET_ERR, osl_File_E_NETWORK } /* 59 */
-};
-
-/* The following two constants must be the minimum and maximum
- values in the (contiguous) range of osl_File_E_xec Failure errors.
-*/
-#define MIN_EXEC_ERROR ERROR_INVALID_STARTING_CODESEG
-#define MAX_EXEC_ERROR ERROR_INFLOOP_IN_RELOC_CHAIN
-
-/* These are the low and high value in the range of errors that are
- access violations
-*/
-#define MIN_EACCES_RANGE ERROR_WRITE_PROTECT
-#define MAX_EACCES_RANGE ERROR_SHARING_BUFFER_EXCEEDED
-
-oslFileError oslTranslateFileError (/*DWORD*/ unsigned long dwError)
-{
- static const int n = SAL_N_ELEMENTS(errtable);
-
- int i;
- for (i = 0; i < n; ++i )
- {
- if (dwError == errtable[i].oscode)
- return (oslFileError)(errtable[i].errnocode);
- }
-
- /* The error code wasn't in the table. We check for a range of
- osl_File_E_ACCES errors or exec failure errors (ENOEXEC).
- Otherwise osl_File_E_INVAL is returned.
- */
- if ( (dwError >= MIN_EACCES_RANGE) && (dwError <= MAX_EACCES_RANGE) )
- return osl_File_E_ACCES;
- else if ( (dwError >= MIN_EXEC_ERROR) && (dwError <= MAX_EXEC_ERROR) )
- return osl_File_E_NOEXEC;
- else
- return osl_File_E_INVAL;
-}
-
-//#####################################################
-#if OSL_DEBUG_LEVEL > 0
-void _osl_warnFile( const char *message, rtl_uString *ustrFile )
-{
- char szBuffer[2048];
-
- if (ustrFile)
- {
- rtl_String *strFile = NULL;
-
- rtl_uString2String( &strFile, rtl_uString_getStr( ustrFile ), rtl_uString_getLength( ustrFile ),
- osl_getThreadTextEncoding(), OUSTRING_TO_OSTRING_CVTFLAGS );
- snprintf( szBuffer, sizeof(szBuffer), message, strFile->buffer );
- rtl_string_release( strFile );
-
- message = szBuffer;
- }
- OSL_FAIL( message );
-}
-#endif /* OSL_DEBUG_LEVEL */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/file_error.h b/sal/osl/w32/file_error.h
deleted file mode 100644
index 5ed392e3a..000000000
--- a/sal/osl/w32/file_error.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_OSL_FILE_ERROR_H
-#define INCLUDED_OSL_FILE_ERROR_H
-
-#include "osl/file.h"
-#include "rtl/ustring.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-oslFileError oslTranslateFileError (/*DWORD*/ unsigned long dwError);
-
-#if OSL_DEBUG_LEVEL > 0
-void _osl_warnFile (const char * message, rtl_uString * ustrFile);
-#define OSL_ENSURE_FILE( cond, msg, file ) ( (cond) ? (void)0 : _osl_warnFile( msg, file ) )
-#else
-#define OSL_ENSURE_FILE( cond, msg, file ) ((void)0)
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* INCLUDED_OSL_FILE_ERROR_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/file_url.cxx b/sal/osl/w32/file_url.cxx
deleted file mode 100644
index 2691cddd3..000000000
--- a/sal/osl/w32/file_url.cxx
+++ /dev/null
@@ -1,1149 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#define UNICODE
-#define _UNICODE
-#define _WIN32_WINNT 0x0500
-#include "systools/win32/uwinapi.h"
-
-#include "file_url.h"
-#include <sal/macros.h>
-#include "file_error.h"
-
-#include "rtl/alloc.h"
-#include "osl/diagnose.h"
-#include "osl/file.h"
-#include "osl/mutex.h"
-
-#include "path_helper.hxx"
-
-#include <stdio.h>
-#include <tchar.h>
-
-#if OSL_DEBUG_LEVEL > 0
-#define OSL_ENSURE_FILE( cond, msg, file ) ( (cond) ? (void)0 : _osl_warnFile( msg, file ) )
-#else
-#define OSL_ENSURE_FILE( cond, msg, file ) ((void)0)
-#endif
-
-#define WSTR_SYSTEM_ROOT_PATH L"\\\\.\\"
-#define WSTR_LONG_PATH_PREFIX L"\\\\?\\"
-#define WSTR_LONG_PATH_PREFIX_UNC L"\\\\?\\UNC\\"
-
-
-//##################################################################
-// FileURL functions
-//##################################################################
-
-extern "C" oslMutex g_CurrentDirectoryMutex; /* Initialized in dllentry.c */
-oslMutex g_CurrentDirectoryMutex = 0;
-
-//#####################################################
-static BOOL IsValidFilePathComponent(
- LPCTSTR lpComponent, LPCTSTR *lppComponentEnd, DWORD dwFlags)
-{
- LPCTSTR lpComponentEnd = NULL;
- LPCTSTR lpCurrent = lpComponent;
- BOOL fValid = TRUE; /* Assume success */
- TCHAR cLast = 0;
-
- /* Path component length must not exceed MAX_PATH even if long path with "\\?\" prefix is used */
-
- while ( !lpComponentEnd && lpCurrent && lpCurrent - lpComponent < MAX_PATH )
- {
- switch ( *lpCurrent )
- {
- /* Both backslash and slash determine the end of a path component */
- case '\0':
- case '/':
- case '\\':
- switch ( cLast )
- {
- /* Component must not end with '.' or blank and can't be empty */
-
- case '.':
- if ( dwFlags & VALIDATEPATH_ALLOW_ELLIPSE )
- {
- if ( (dwFlags & VALIDATEPATH_ALLOW_INVALID_SPACE_AND_PERIOD) ||
- 1 == lpCurrent - lpComponent )
- {
- /* Either do allow periods anywhere, or current directory */
- lpComponentEnd = lpCurrent;
- break;
- }
- else if ( 2 == lpCurrent - lpComponent && '.' == *lpComponent )
- {
- /* Parent directory is O.K. */
- lpComponentEnd = lpCurrent;
- break;
- }
- }
- case 0:
- case ' ':
- if ( dwFlags & VALIDATEPATH_ALLOW_INVALID_SPACE_AND_PERIOD )
- lpComponentEnd = lpCurrent;
- else
- {
- lpComponentEnd = lpCurrent - 1;
- fValid = FALSE;
- }
- break;
- default:
- lpComponentEnd = lpCurrent;
- break;
- }
- break;
- /* '?' and '*' are valid wildcards but not valid file name characters */
- case '?':
- case '*':
- if ( dwFlags & VALIDATEPATH_ALLOW_WILDCARDS )
- break;
- /* The following characters are reserved */
- case '<':
- case '>':
- case '\"':
- case '|':
- case ':':
- lpComponentEnd = lpCurrent;
- fValid = FALSE;
- break;
- default:
- /* Characters below ASCII 32 are not allowed */
- if ( *lpCurrent < ' ' )
- {
- lpComponentEnd = lpCurrent;
- fValid = FALSE;
- }
- break;
- }
- cLast = *lpCurrent++;
- }
-
- /* If we don't reached the end of the component the length of the component was to long
- ( See condition of while loop ) */
- if ( !lpComponentEnd )
- {
- fValid = FALSE;
- lpComponentEnd = lpCurrent;
- }
-
- /* Test wether the component specifies a device name what is not allowed */
-
- // MT: PERFORMANCE:
- // This is very expensive. A lot of calls to _tcsicmp.
- // in SRC6870m71 67.000 calls of this method while empty office start result into more than 1.500.00 calls of _tcsicmp!
- // Possible optimizations
- // - Array should be const static
- // - Sorted array, use binary search
- // - More intelligent check for com1-9, lpt1-9
- // Maybe make szComponent upper case, don't search case intensitive
- // Talked to HRO: Could be removed. Shouldn't be used in OOo, and if used for something like a filename, it will lead to an error anyway.
- /*
- if ( fValid )
- {
- LPCTSTR alpDeviceNames[] =
- {
- TEXT("CON"),
- TEXT("PRN"),
- TEXT("AUX"),
- TEXT("CLOCK$"),
- TEXT("NUL"),
- TEXT("LPT1"),
- TEXT("LPT2"),
- TEXT("LPT3"),
- TEXT("LPT4"),
- TEXT("LPT5"),
- TEXT("LPT6"),
- TEXT("LPT7"),
- TEXT("LPT8"),
- TEXT("LPT9"),
- TEXT("COM1"),
- TEXT("COM2"),
- TEXT("COM3"),
- TEXT("COM4"),
- TEXT("COM5"),
- TEXT("COM6"),
- TEXT("COM7"),
- TEXT("COM8"),
- TEXT("COM9")
- };
-
- TCHAR szComponent[MAX_PATH];
- int nComponentLength;
- LPCTSTR lpDot;
- int i;
-
- // A device name with an extension is also invalid
- lpDot = _tcschr( lpComponent, '.' );
-
- if ( !lpDot || lpDot > lpComponentEnd )
- nComponentLength = lpComponentEnd - lpComponent;
- else
- nComponentLength = lpDot - lpComponent;
-
- _tcsncpy( szComponent, lpComponent, nComponentLength );
- szComponent[nComponentLength] = 0;
-
- for ( i = 0; i < sizeof( alpDeviceNames ) / sizeof(LPCTSTR); i++ )
- {
- if ( 0 == _tcsicmp( szComponent, alpDeviceNames[i] ) )
- {
- lpComponentEnd = lpComponent;
- fValid = FALSE;
- break;
- }
- }
- }
- */
-
- if ( fValid )
- {
- // Empty components are not allowed
- if ( lpComponentEnd - lpComponent < 1 )
- fValid = FALSE;
-
- // If we reached the end of the string NULL is returned
- else if ( !*lpComponentEnd )
- lpComponentEnd = NULL;
-
- }
-
- if ( lppComponentEnd )
- *lppComponentEnd = lpComponentEnd;
-
- return fValid;
-}
-
-//#####################################################
-#define CHARSET_SEPARATOR TEXT("\\/")
-
-DWORD IsValidFilePath(rtl_uString *path, LPCTSTR *lppError, DWORD dwFlags, rtl_uString **corrected)
-{
- LPCTSTR lpszPath = reinterpret_cast< LPCTSTR >(path->buffer);
- LPCTSTR lpComponent = lpszPath;
- BOOL fValid = TRUE;
- DWORD dwPathType = PATHTYPE_ERROR;
- sal_Int32 nLength = rtl_uString_getLength( path );
-
- if ( dwFlags & VALIDATEPATH_ALLOW_RELATIVE )
- dwFlags |= VALIDATEPATH_ALLOW_ELLIPSE;
-
- if ( !lpszPath )
- fValid = FALSE;
-
- DWORD dwCandidatPathType = PATHTYPE_ERROR;
-
- if ( 0 == rtl_ustr_shortenedCompareIgnoreAsciiCase_WithLength( path->buffer, nLength, reinterpret_cast<const sal_Unicode *>(WSTR_LONG_PATH_PREFIX_UNC), SAL_N_ELEMENTS(WSTR_LONG_PATH_PREFIX_UNC) - 1, SAL_N_ELEMENTS(WSTR_LONG_PATH_PREFIX_UNC) - 1 ) )
- {
- /* This is long path in UNC notation */
- lpComponent = lpszPath + SAL_N_ELEMENTS(WSTR_LONG_PATH_PREFIX_UNC) - 1;
- dwCandidatPathType = PATHTYPE_ABSOLUTE_UNC | PATHTYPE_IS_LONGPATH;
- }
- else if ( 0 == rtl_ustr_shortenedCompareIgnoreAsciiCase_WithLength( path->buffer, nLength, reinterpret_cast<const sal_Unicode *>(WSTR_LONG_PATH_PREFIX), SAL_N_ELEMENTS(WSTR_LONG_PATH_PREFIX) - 1, SAL_N_ELEMENTS(WSTR_LONG_PATH_PREFIX) - 1 ) )
- {
- /* This is long path */
- lpComponent = lpszPath + SAL_N_ELEMENTS(WSTR_LONG_PATH_PREFIX) - 1;
-
- if ( _istalpha( lpComponent[0] ) && ':' == lpComponent[1] )
- {
- lpComponent += 2;
- dwCandidatPathType = PATHTYPE_ABSOLUTE_LOCAL | PATHTYPE_IS_LONGPATH;
- }
- }
- else if ( 2 == _tcsspn( lpszPath, CHARSET_SEPARATOR ) )
- {
- /* The UNC path notation */
- lpComponent = lpszPath + 2;
- dwCandidatPathType = PATHTYPE_ABSOLUTE_UNC;
- }
- else if ( _istalpha( lpszPath[0] ) && ':' == lpszPath[1] )
- {
- /* Local path verification. Must start with <drive>: */
- lpComponent = lpszPath + 2;
- dwCandidatPathType = PATHTYPE_ABSOLUTE_LOCAL;
- }
-
- if ( ( dwCandidatPathType & PATHTYPE_MASK_TYPE ) == PATHTYPE_ABSOLUTE_UNC )
- {
- fValid = IsValidFilePathComponent( lpComponent, &lpComponent, VALIDATEPATH_ALLOW_ELLIPSE );
-
- /* So far we have a valid servername. Now let's see if we also have a network resource */
-
- dwPathType = dwCandidatPathType;
-
- if ( fValid )
- {
- if ( lpComponent && !*++lpComponent )
- lpComponent = NULL;
-
- if ( !lpComponent )
- {
- dwPathType |= PATHTYPE_IS_SERVER;
- }
- else
- {
- /* Now test the network resource */
-
- fValid = IsValidFilePathComponent( lpComponent, &lpComponent, 0 );
-
- /* If we now reached the end of the path, everything is O.K. */
-
-
- if ( fValid && (!lpComponent || lpComponent && !*++lpComponent ) )
- {
- lpComponent = NULL;
- dwPathType |= PATHTYPE_IS_VOLUME;
- }
- }
- }
- }
- else if ( ( dwCandidatPathType & PATHTYPE_MASK_TYPE ) == PATHTYPE_ABSOLUTE_LOCAL )
- {
- if ( 1 == _tcsspn( lpComponent, CHARSET_SEPARATOR ) )
- lpComponent++;
- else if ( *lpComponent )
- fValid = FALSE;
-
- dwPathType = dwCandidatPathType;
-
- /* Now we are behind the backslash or it was a simple drive without backslash */
-
- if ( fValid && !*lpComponent )
- {
- lpComponent = NULL;
- dwPathType |= PATHTYPE_IS_VOLUME;
- }
- }
- else if ( dwFlags & VALIDATEPATH_ALLOW_RELATIVE )
- {
- /* Can be a relative path */
- lpComponent = lpszPath;
-
- /* Relative path can start with a backslash */
-
- if ( 1 == _tcsspn( lpComponent, CHARSET_SEPARATOR ) )
- {
- lpComponent++;
- if ( !*lpComponent )
- lpComponent = NULL;
- }
-
- dwPathType = PATHTYPE_RELATIVE;
- }
- else
- {
- /* Anything else is an error */
- fValid = FALSE;
- lpComponent = lpszPath;
- }
-
- /* Now validate each component of the path */
- while ( fValid && lpComponent )
- {
- // Correct path by merging consecutive slashes:
- if (*lpComponent == '\\' && corrected != NULL) {
- sal_Int32 i = lpComponent - lpszPath;
- rtl_uString_newReplaceStrAt(corrected, path, i, 1, NULL);
- //TODO: handle out-of-memory
- lpszPath = reinterpret_cast< LPCTSTR >((*corrected)->buffer);
- lpComponent = lpszPath + i;
- }
-
- fValid = IsValidFilePathComponent( lpComponent, &lpComponent, dwFlags | VALIDATEPATH_ALLOW_INVALID_SPACE_AND_PERIOD);
-
- if ( fValid && lpComponent )
- {
- lpComponent++;
-
- /* If the string behind the backslash is empty, we've done */
-
- if ( !*lpComponent )
- lpComponent = NULL;
- }
- }
-
- /* The path can be longer than MAX_PATH only in case it has the longpath prefix */
- if ( fValid && !( dwPathType & PATHTYPE_IS_LONGPATH ) && _tcslen( lpszPath ) >= MAX_PATH )
- {
- fValid = FALSE;
- lpComponent = lpszPath + MAX_PATH;
- }
-
- if ( lppError )
- *lppError = lpComponent;
-
- return fValid ? dwPathType : PATHTYPE_ERROR;
-}
-
-//#####################################################
-static sal_Int32 PathRemoveFileSpec(LPTSTR lpPath, LPTSTR lpFileName, sal_Int32 nFileBufLen )
-{
- sal_Int32 nRemoved = 0;
-
- if ( nFileBufLen )
- {
- lpFileName[0] = 0;
- LPTSTR lpLastBkSlash = _tcsrchr( lpPath, '\\' );
- LPTSTR lpLastSlash = _tcsrchr( lpPath, '/' );
- LPTSTR lpLastDelimiter = lpLastSlash > lpLastBkSlash ? lpLastSlash : lpLastBkSlash;
-
- if ( lpLastDelimiter )
- {
- sal_Int32 nDelLen = _tcslen( lpLastDelimiter );
- if ( 1 == nDelLen )
- {
- if ( lpLastDelimiter > lpPath && *(lpLastDelimiter - 1) != ':' )
- {
- *lpLastDelimiter = 0;
- *lpFileName = 0;
- nRemoved = nDelLen;
- }
- }
- else if ( nDelLen && nDelLen - 1 < nFileBufLen )
- {
- _tcscpy( lpFileName, lpLastDelimiter + 1 );
- *(++lpLastDelimiter) = 0;
- nRemoved = nDelLen - 1;
- }
- }
- }
-
- return nRemoved;
-}
-
-//#####################################################
-// Undocumented in SHELL32.DLL ordinal 32
-static LPTSTR PathAddBackslash(LPTSTR lpPath, sal_Int32 nBufLen)
-{
- LPTSTR lpEndPath = NULL;
-
- if ( lpPath )
- {
- int nLen = _tcslen(lpPath);
-
- if ( !nLen || lpPath[nLen-1] != '\\' && lpPath[nLen-1] != '/' && nLen < nBufLen - 1 )
- {
- lpEndPath = lpPath + nLen;
- *lpEndPath++ = '\\';
- *lpEndPath = 0;
- }
- }
- return lpEndPath;
-}
-
-//#####################################################
-// Same as GetLongPathName but also 95/NT4
-static DWORD GetCaseCorrectPathNameEx(
- LPTSTR lpszPath, // path buffer to convert
- DWORD cchBuffer, // size of path buffer
- DWORD nSkipLevels,
- BOOL bCheckExistence )
-{
- ::osl::LongPathBuffer< WCHAR > szFile( MAX_PATH + 1 );
- sal_Int32 nRemoved = PathRemoveFileSpec( lpszPath, szFile, MAX_PATH + 1 );
- sal_Int32 nLastStepRemoved = nRemoved;
- while ( nLastStepRemoved && szFile[0] == 0 )
- {
- // remove separators
- nLastStepRemoved = PathRemoveFileSpec( lpszPath, szFile, MAX_PATH + 1 );
- nRemoved += nLastStepRemoved;
- }
-
- if ( nRemoved )
- {
- BOOL bSkipThis = FALSE;
-
- if ( 0 == _tcscmp( szFile, TEXT("..") ) )
- {
- bSkipThis = TRUE;
- nSkipLevels += 1;
- }
- else if ( 0 == _tcscmp( szFile, TEXT(".") ) )
- {
- bSkipThis = TRUE;
- }
- else if ( nSkipLevels )
- {
- bSkipThis = TRUE;
- nSkipLevels--;
- }
- else
- bSkipThis = FALSE;
-
- GetCaseCorrectPathNameEx( lpszPath, cchBuffer, nSkipLevels, bCheckExistence );
-
- PathAddBackslash( lpszPath, cchBuffer );
-
- /* Analyze parent if not only a trailing backslash was cutted but a real file spec */
- if ( !bSkipThis )
- {
- if ( bCheckExistence )
- {
- ::osl::LongPathBuffer< WCHAR > aShortPath( MAX_LONG_PATH );
- _tcscpy( aShortPath, lpszPath );
- _tcscat( aShortPath, szFile );
-
- WIN32_FIND_DATA aFindFileData;
- HANDLE hFind = FindFirstFile( aShortPath, &aFindFileData );
-
- if ( IsValidHandle(hFind) )
- {
- _tcscat( lpszPath, aFindFileData.cFileName[0] ? aFindFileData.cFileName : aFindFileData.cAlternateFileName );
-
- FindClose( hFind );
- }
- else
- lpszPath[0] = 0;
- }
- else
- {
- /* add the segment name back */
- _tcscat( lpszPath, szFile );
- }
- }
- }
- else
- {
- /* File specification can't be removed therefore the short path is either a drive
- or a network share. If still levels to skip are left, the path specification
- tries to travel below the file system root */
- if ( nSkipLevels )
- lpszPath[0] = 0;
- else
- _tcsupr( lpszPath );
- }
-
- return _tcslen( lpszPath );
-}
-
-//#####################################################
-#define WSTR_SYSTEM_ROOT_PATH L"\\\\.\\"
-
-DWORD GetCaseCorrectPathName(
- LPCTSTR lpszShortPath, // file name
- LPTSTR lpszLongPath, // path buffer
- DWORD cchBuffer, // size of path buffer
- BOOL bCheckExistence
-)
-{
- /* Special handling for "\\.\" as system root */
- if ( lpszShortPath && 0 == wcscmp( lpszShortPath, WSTR_SYSTEM_ROOT_PATH ) )
- {
- if ( cchBuffer >= SAL_N_ELEMENTS(WSTR_SYSTEM_ROOT_PATH) )
- {
- wcscpy( lpszLongPath, WSTR_SYSTEM_ROOT_PATH );
- return SAL_N_ELEMENTS(WSTR_SYSTEM_ROOT_PATH) - 1;
- }
- else
- {
- return SAL_N_ELEMENTS(WSTR_SYSTEM_ROOT_PATH) - 1;
- }
- }
- else if ( lpszShortPath )
- {
- if ( _tcslen( lpszShortPath ) <= cchBuffer )
- {
- _tcscpy( lpszLongPath, lpszShortPath );
- return GetCaseCorrectPathNameEx( lpszLongPath, cchBuffer, 0, bCheckExistence );
- }
- }
-
- return 0;
-}
-
-
-//#############################################
-static sal_Bool _osl_decodeURL( rtl_String* strUTF8, rtl_uString** pstrDecodedURL )
-{
- sal_Char *pBuffer;
- const sal_Char *pSrcEnd;
- const sal_Char *pSrc;
- sal_Char *pDest;
- sal_Int32 nSrcLen;
- sal_Bool bValidEncoded = sal_True; /* Assume success */
-
- /* The resulting decoded string length is shorter or equal to the source length */
-
- nSrcLen = rtl_string_getLength(strUTF8);
- pBuffer = reinterpret_cast<sal_Char*>(rtl_allocateMemory(nSrcLen + 1));
-
- pDest = pBuffer;
- pSrc = rtl_string_getStr(strUTF8);
- pSrcEnd = pSrc + nSrcLen;
-
- /* Now decode the URL what should result in an UTF8 string */
- while ( bValidEncoded && pSrc < pSrcEnd )
- {
- switch ( *pSrc )
- {
- case 0:
- case '?':
- case '#':
- bValidEncoded = false;
- break;
- case '%':
- {
- sal_Char aToken[3];
- sal_Char aChar;
-
- pSrc++;
- aToken[0] = *pSrc++;
- aToken[1] = *pSrc++;
- aToken[2] = 0;
-
- aChar = (sal_Char)strtoul( aToken, NULL, 16 );
-
- /* The chars are path delimiters and must not be encoded */
-
- if ( 0 == aChar || '\\' == aChar || '/' == aChar || ':' == aChar )
- bValidEncoded = sal_False;
- else
- *pDest++ = aChar;
- }
- break;
- default:
- *pDest++ = *pSrc++;
- break;
- }
- }
-
- *pDest++ = 0;
-
- if ( bValidEncoded )
- {
- rtl_string2UString( pstrDecodedURL, pBuffer, rtl_str_getLength(pBuffer), RTL_TEXTENCODING_UTF8, OUSTRING_TO_OSTRING_CVTFLAGS );
- OSL_ASSERT(*pstrDecodedURL != 0);
- }
-
- rtl_freeMemory( pBuffer );
-
- return bValidEncoded;
-}
-
-//#############################################
-static void _osl_encodeURL( rtl_uString *strURL, rtl_String **pstrEncodedURL )
-{
- /* Encode non ascii characters within the URL */
-
- rtl_String *strUTF8 = NULL;
- sal_Char *pszEncodedURL;
- const sal_Char *pURLScan;
- sal_Char *pURLDest;
- sal_Int32 nURLScanLen;
- sal_Int32 nURLScanCount;
-
- rtl_uString2String( &strUTF8, rtl_uString_getStr( strURL ), rtl_uString_getLength( strURL ), RTL_TEXTENCODING_UTF8, OUSTRING_TO_OSTRING_CVTFLAGS );
-
- pszEncodedURL = (sal_Char*) rtl_allocateMemory( (rtl_string_getLength( strUTF8 ) * 3 + 1) * sizeof(sal_Char) );
-
- pURLDest = pszEncodedURL;
- pURLScan = rtl_string_getStr( strUTF8 );
- nURLScanLen = rtl_string_getLength( strUTF8 );
- nURLScanCount = 0;
-
- while ( nURLScanCount < nURLScanLen )
- {
- sal_Char cCurrent = *pURLScan;
- switch ( cCurrent )
- {
- default:
- if (!( ( cCurrent >= 'a' && cCurrent <= 'z' ) || ( cCurrent >= 'A' && cCurrent <= 'Z' ) || ( cCurrent >= '0' && cCurrent <= '9' ) ) )
- {
- sprintf( pURLDest, "%%%02X", (unsigned char)cCurrent );
- pURLDest += 3;
- break;
- }
- case '!':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '-':
- case '.':
- case '_':
- case '~':
- case '$':
- case '&':
- case '+':
- case ',':
- case '=':
- case '@':
- case ':':
- case '/':
- case '\\':
- case '|':
- *pURLDest++ = cCurrent;
- break;
- case 0:
- break;
- }
-
- pURLScan++;
- nURLScanCount++;
- }
-
- *pURLDest = 0;
-
- rtl_string_release( strUTF8 );
- rtl_string_newFromStr( pstrEncodedURL, pszEncodedURL );
- rtl_freeMemory( pszEncodedURL );
-}
-
-//#############################################
-
-oslFileError _osl_getSystemPathFromFileURL( rtl_uString *strURL, rtl_uString **pustrPath, sal_Bool bAllowRelative )
-{
- rtl_String *strUTF8 = NULL;
- rtl_uString *strDecodedURL = NULL;
- rtl_uString *strTempPath = NULL;
- const sal_Unicode *pDecodedURL;
- sal_uInt32 nDecodedLen;
- sal_Bool bValidEncoded;
- oslFileError nError = osl_File_E_INVAL; /* Assume failure */
-
- /* If someone hasn't encoded the complete URL we convert it to UTF8 now to prevent from
- having a mixed encoded URL later */
-
- rtl_uString2String( &strUTF8, rtl_uString_getStr( strURL ), rtl_uString_getLength( strURL ), RTL_TEXTENCODING_UTF8, OUSTRING_TO_OSTRING_CVTFLAGS );
-
- /* If the length of strUTF8 and strURL differs it indicates that the URL was not correct encoded */
-
- OSL_ENSURE_FILE(
- strUTF8->length == strURL->length ||
- 0 != rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength( strURL->buffer, strURL->length, "file:\\\\", 7 )
- ,"osl_getSystemPathFromFileURL: \"%s\" is not encoded !!!", strURL );
-
- bValidEncoded = _osl_decodeURL( strUTF8, &strDecodedURL );
-
- /* Release the encoded UTF8 string */
- rtl_string_release( strUTF8 );
-
- if ( bValidEncoded )
- {
- /* Replace backslashes and pipes */
-
- rtl_uString_newReplace( &strDecodedURL, strDecodedURL, '/', '\\' );
- rtl_uString_newReplace( &strDecodedURL, strDecodedURL, '|', ':' );
-
- pDecodedURL = rtl_uString_getStr( strDecodedURL );
- nDecodedLen = rtl_uString_getLength( strDecodedURL );
-
- /* Must start with "file://" */
- if ( 0 == rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength( pDecodedURL, nDecodedLen, "file:\\\\", 7 ) )
- {
- sal_uInt32 nSkip;
-
- if ( 0 == rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength( pDecodedURL, nDecodedLen, "file:\\\\\\", 8 ) )
- nSkip = 8;
- else if (
- 0 == rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength( pDecodedURL, nDecodedLen, "file:\\\\localhost\\", 17 ) ||
- 0 == rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength( pDecodedURL, nDecodedLen, "file:\\\\127.0.0.1\\", 17 )
- )
- nSkip = 17;
- else
- nSkip = 5;
-
- /* Indicates local root */
- if ( nDecodedLen == nSkip )
- rtl_uString_newFromStr_WithLength( &strTempPath, reinterpret_cast<const sal_Unicode*>(WSTR_SYSTEM_ROOT_PATH), SAL_N_ELEMENTS(WSTR_SYSTEM_ROOT_PATH) - 1 );
- else
- {
- /* do not separate the directory and file case, so the maximal path lengs without prefix is MAX_PATH-12 */
- if ( nDecodedLen - nSkip <= MAX_PATH - 12 )
- {
- rtl_uString_newFromStr_WithLength( &strTempPath, pDecodedURL + nSkip, nDecodedLen - nSkip );
- }
- else
- {
- ::osl::LongPathBuffer< sal_Unicode > aBuf( MAX_LONG_PATH );
- sal_uInt32 nNewLen = GetCaseCorrectPathName( reinterpret_cast<LPCTSTR>(pDecodedURL + nSkip),
- ::osl::mingw_reinterpret_cast<LPTSTR>(aBuf),
- aBuf.getBufSizeInSymbols(),
- sal_False );
-
- if ( nNewLen <= MAX_PATH - 12
- || 0 == rtl_ustr_shortenedCompareIgnoreAsciiCase_WithLength( pDecodedURL + nSkip, nDecodedLen - nSkip, reinterpret_cast<const sal_Unicode*>(WSTR_SYSTEM_ROOT_PATH), SAL_N_ELEMENTS(WSTR_SYSTEM_ROOT_PATH) - 1, SAL_N_ELEMENTS(WSTR_SYSTEM_ROOT_PATH) - 1 )
- || 0 == rtl_ustr_shortenedCompareIgnoreAsciiCase_WithLength( pDecodedURL + nSkip, nDecodedLen - nSkip, reinterpret_cast<const sal_Unicode*>(WSTR_LONG_PATH_PREFIX), SAL_N_ELEMENTS(WSTR_LONG_PATH_PREFIX) - 1, SAL_N_ELEMENTS(WSTR_LONG_PATH_PREFIX) - 1 ) )
- {
- rtl_uString_newFromStr_WithLength( &strTempPath, aBuf, nNewLen );
- }
- else if ( pDecodedURL[nSkip] == (sal_Unicode)'\\' && pDecodedURL[nSkip+1] == (sal_Unicode)'\\' )
- {
- /* it should be an UNC path, use the according prefix */
- rtl_uString *strSuffix = NULL;
- rtl_uString *strPrefix = NULL;
- rtl_uString_newFromStr_WithLength( &strPrefix, reinterpret_cast<const sal_Unicode*>(WSTR_LONG_PATH_PREFIX_UNC), SAL_N_ELEMENTS( WSTR_LONG_PATH_PREFIX_UNC ) - 1 );
- rtl_uString_newFromStr_WithLength( &strSuffix, aBuf + 2, nNewLen - 2 );
-
- rtl_uString_newConcat( &strTempPath, strPrefix, strSuffix );
-
- rtl_uString_release( strPrefix );
- rtl_uString_release( strSuffix );
- }
- else
- {
- rtl_uString *strSuffix = NULL;
- rtl_uString *strPrefix = NULL;
- rtl_uString_newFromStr_WithLength( &strPrefix, reinterpret_cast<const sal_Unicode*>(WSTR_LONG_PATH_PREFIX), SAL_N_ELEMENTS( WSTR_LONG_PATH_PREFIX ) - 1 );
- rtl_uString_newFromStr_WithLength( &strSuffix, aBuf, nNewLen );
-
- rtl_uString_newConcat( &strTempPath, strPrefix, strSuffix );
-
- rtl_uString_release( strPrefix );
- rtl_uString_release( strSuffix );
- }
- }
- }
-
- if ( IsValidFilePath( strTempPath, NULL, VALIDATEPATH_ALLOW_ELLIPSE, &strTempPath ) )
- nError = osl_File_E_None;
- }
- else if ( bAllowRelative ) /* This maybe a relative file URL */
- {
- /* In future the relative path could be converted to absolute if it is too long */
- rtl_uString_assign( &strTempPath, strDecodedURL );
-
- if ( IsValidFilePath( strTempPath, NULL, VALIDATEPATH_ALLOW_RELATIVE | VALIDATEPATH_ALLOW_ELLIPSE, &strTempPath ) )
- nError = osl_File_E_None;
- }
- /*
- else
- OSL_ENSURE_FILE( !nError, "osl_getSystemPathFromFileURL: \"%s\" is not an absolute FileURL !!!", strURL );
- */
-
- }
-
- if ( strDecodedURL )
- rtl_uString_release( strDecodedURL );
-
- if ( osl_File_E_None == nError )
- rtl_uString_assign( pustrPath, strTempPath );
-
- if ( strTempPath )
- rtl_uString_release( strTempPath );
-
- /*
- OSL_ENSURE_FILE( !nError, "osl_getSystemPathFromFileURL: \"%s\" is not a FileURL !!!", strURL );
- */
-
- return nError;
-}
-
-//#############################################
-oslFileError _osl_getFileURLFromSystemPath( rtl_uString* strPath, rtl_uString** pstrURL )
-{
- oslFileError nError = osl_File_E_INVAL; /* Assume failure */
- rtl_uString *strTempURL = NULL;
- DWORD dwPathType = PATHTYPE_ERROR;
-
- if (strPath)
- dwPathType = IsValidFilePath(strPath, NULL, VALIDATEPATH_ALLOW_RELATIVE, NULL);
-
- if (dwPathType)
- {
- rtl_uString *strTempPath = NULL;
-
- if ( dwPathType & PATHTYPE_IS_LONGPATH )
- {
- rtl_uString *strBuffer = NULL;
- sal_uInt32 nIgnore = 0;
- sal_uInt32 nLength = 0;
-
- /* the path has the longpath prefix, lets remove it */
- switch ( dwPathType & PATHTYPE_MASK_TYPE )
- {
- case PATHTYPE_ABSOLUTE_UNC:
- nIgnore = SAL_N_ELEMENTS( WSTR_LONG_PATH_PREFIX_UNC ) - 1;
- OSL_ENSURE( nIgnore == 8, "Unexpected long path UNC prefix!" );
-
- /* generate the normal UNC path */
- nLength = rtl_uString_getLength( strPath );
- rtl_uString_newFromStr_WithLength( &strBuffer, strPath->buffer + nIgnore - 2, nLength - nIgnore + 2 );
- strBuffer->buffer[0] = '\\';
-
- rtl_uString_newReplace( &strTempPath, strBuffer, '\\', '/' );
- rtl_uString_release( strBuffer );
- break;
-
- case PATHTYPE_ABSOLUTE_LOCAL:
- nIgnore = SAL_N_ELEMENTS( WSTR_LONG_PATH_PREFIX ) - 1;
- OSL_ENSURE( nIgnore == 4, "Unexpected long path prefix!" );
-
- /* generate the normal path */
- nLength = rtl_uString_getLength( strPath );
- rtl_uString_newFromStr_WithLength( &strBuffer, strPath->buffer + nIgnore, nLength - nIgnore );
-
- rtl_uString_newReplace( &strTempPath, strBuffer, '\\', '/' );
- rtl_uString_release( strBuffer );
- break;
-
- default:
- OSL_FAIL( "Unexpected long path format!" );
- rtl_uString_newReplace( &strTempPath, strPath, '\\', '/' );
- break;
- }
- }
- else
- {
- /* Replace backslashes */
- rtl_uString_newReplace( &strTempPath, strPath, '\\', '/' );
- }
-
- switch ( dwPathType & PATHTYPE_MASK_TYPE )
- {
- case PATHTYPE_RELATIVE:
- rtl_uString_assign( &strTempURL, strTempPath );
- nError = osl_File_E_None;
- break;
- case PATHTYPE_ABSOLUTE_UNC:
- rtl_uString_newFromAscii( &strTempURL, "file:" );
- rtl_uString_newConcat( &strTempURL, strTempURL, strTempPath );
- nError = osl_File_E_None;
- break;
- case PATHTYPE_ABSOLUTE_LOCAL:
- rtl_uString_newFromAscii( &strTempURL, "file:///" );
- rtl_uString_newConcat( &strTempURL, strTempURL, strTempPath );
- nError = osl_File_E_None;
- break;
- default:
- break;
- }
-
- /* Release temp path */
- rtl_uString_release( strTempPath );
- }
-
- if ( osl_File_E_None == nError )
- {
- rtl_String *strEncodedURL = NULL;
-
- /* Encode the URL */
- _osl_encodeURL( strTempURL, &strEncodedURL );
-
- /* Provide URL via unicode string */
- rtl_string2UString( pstrURL, rtl_string_getStr(strEncodedURL), rtl_string_getLength(strEncodedURL), RTL_TEXTENCODING_ASCII_US, OUSTRING_TO_OSTRING_CVTFLAGS );
- OSL_ASSERT(*pstrURL != 0);
- rtl_string_release( strEncodedURL );
- }
-
- /* Release temp URL */
- if ( strTempURL )
- rtl_uString_release( strTempURL );
-
- /*
- OSL_ENSURE_FILE( !nError, "osl_getFileURLFromSystemPath: \"%s\" is not a systemPath !!!", strPath );
- */
- return nError;
-}
-
-//#####################################################
-oslFileError SAL_CALL osl_getFileURLFromSystemPath(
- rtl_uString* ustrPath, rtl_uString** pustrURL )
-{
- return _osl_getFileURLFromSystemPath( ustrPath, pustrURL );
-}
-
-//#####################################################
-oslFileError SAL_CALL osl_getSystemPathFromFileURL(
- rtl_uString *ustrURL, rtl_uString **pustrPath)
-{
- return _osl_getSystemPathFromFileURL( ustrURL, pustrPath, sal_True );
-}
-
-//#####################################################
-oslFileError SAL_CALL osl_searchFileURL(
- rtl_uString *ustrFileName,
- rtl_uString *ustrSystemSearchPath,
- rtl_uString **pustrPath)
-{
- rtl_uString *ustrUNCPath = NULL;
- rtl_uString *ustrSysPath = NULL;
- oslFileError error;
-
- /* First try to interpret the file name as an URL even a relative one */
- error = _osl_getSystemPathFromFileURL( ustrFileName, &ustrUNCPath, sal_True );
-
- /* So far we either have an UNC path or something invalid
- Now create a system path */
- if ( osl_File_E_None == error )
- error = _osl_getSystemPathFromFileURL( ustrUNCPath, &ustrSysPath, sal_True );
-
- if ( osl_File_E_None == error )
- {
- DWORD nBufferLength;
- DWORD dwResult;
- LPTSTR lpBuffer = NULL;
- LPTSTR lpszFilePart;
-
- /* Repeat calling SearchPath ...
- Start with MAX_PATH for the buffer. In most cases this
- will be enough and does not force the loop to runtwice */
- dwResult = MAX_PATH;
-
- do
- {
- /* If search path is empty use a NULL pointer instead according to MSDN documentation of SearchPath */
- LPCTSTR lpszSearchPath = ustrSystemSearchPath && ustrSystemSearchPath->length ? reinterpret_cast<LPCTSTR>(ustrSystemSearchPath->buffer) : NULL;
- LPCTSTR lpszSearchFile = reinterpret_cast<LPCTSTR>(ustrSysPath->buffer);
-
- /* Allocate space for buffer according to previous returned count of required chars */
- /* +1 is not neccessary if we follow MSDN documentation but for robustness we do so */
- nBufferLength = dwResult + 1;
- lpBuffer = lpBuffer ?
- reinterpret_cast<LPTSTR>(rtl_reallocateMemory(lpBuffer, nBufferLength * sizeof(TCHAR))) :
- reinterpret_cast<LPTSTR>(rtl_allocateMemory(nBufferLength * sizeof(TCHAR)));
-
- dwResult = SearchPath( lpszSearchPath, lpszSearchFile, NULL, nBufferLength, lpBuffer, &lpszFilePart );
- } while ( dwResult && dwResult >= nBufferLength );
-
- /* ... until an error occures or buffer is large enough.
- dwResult == nBufferLength can not happen according to documentation but lets be robust ;-) */
-
- if ( dwResult )
- {
- rtl_uString_newFromStr( &ustrSysPath, reinterpret_cast<const sal_Unicode*>(lpBuffer) );
- error = osl_getFileURLFromSystemPath( ustrSysPath, pustrPath );
- }
- else
- {
- WIN32_FIND_DATA aFindFileData;
- HANDLE hFind;
-
- /* Somthing went wrong, perhaps the path was absolute */
- error = oslTranslateFileError( GetLastError() );
-
- hFind = FindFirstFile( reinterpret_cast<LPCTSTR>(ustrSysPath->buffer), &aFindFileData );
-
- if ( IsValidHandle(hFind) )
- {
- error = osl_getFileURLFromSystemPath( ustrSysPath, pustrPath );
- FindClose( hFind );
- }
- }
-
- rtl_freeMemory( lpBuffer );
- }
-
- if ( ustrSysPath )
- rtl_uString_release( ustrSysPath );
-
- if ( ustrUNCPath )
- rtl_uString_release( ustrUNCPath );
-
- return error;
-}
-
-//#####################################################
-
-oslFileError SAL_CALL osl_getAbsoluteFileURL( rtl_uString* ustrBaseURL, rtl_uString* ustrRelativeURL, rtl_uString** pustrAbsoluteURL )
-{
- oslFileError eError;
- rtl_uString *ustrRelSysPath = NULL;
- rtl_uString *ustrBaseSysPath = NULL;
-
- if ( ustrBaseURL && ustrBaseURL->length )
- {
- eError = _osl_getSystemPathFromFileURL( ustrBaseURL, &ustrBaseSysPath, sal_False );
- OSL_ENSURE( osl_File_E_None == eError, "osl_getAbsoluteFileURL called with relative or invalid base URL" );
-
- eError = _osl_getSystemPathFromFileURL( ustrRelativeURL, &ustrRelSysPath, sal_True );
- }
- else
- {
- eError = _osl_getSystemPathFromFileURL( ustrRelativeURL, &ustrRelSysPath, sal_False );
- OSL_ENSURE( osl_File_E_None == eError, "osl_getAbsoluteFileURL called with empty base URL and/or invalid relative URL" );
- }
-
- if ( !eError )
- {
- ::osl::LongPathBuffer< sal_Unicode > aBuffer( MAX_LONG_PATH );
- ::osl::LongPathBuffer< sal_Unicode > aCurrentDir( MAX_LONG_PATH );
- LPTSTR lpFilePart = NULL;
- DWORD dwResult;
-
-/*@@@ToDo
- Bad, bad hack, this only works if the base path
- really exists which is not necessary according
- to RFC2396
- The whole FileURL implementation should be merged
- with the rtl/uri class.
-*/
- if ( ustrBaseSysPath )
- {
- osl_acquireMutex( g_CurrentDirectoryMutex );
-
- GetCurrentDirectoryW( aCurrentDir.getBufSizeInSymbols(), ::osl::mingw_reinterpret_cast<LPWSTR>(aCurrentDir) );
- SetCurrentDirectoryW( reinterpret_cast<LPCWSTR>(ustrBaseSysPath->buffer) );
- }
-
- dwResult = GetFullPathNameW( reinterpret_cast<LPCWSTR>(ustrRelSysPath->buffer), aBuffer.getBufSizeInSymbols(), ::osl::mingw_reinterpret_cast<LPWSTR>(aBuffer), &lpFilePart );
-
- if ( ustrBaseSysPath )
- {
- SetCurrentDirectoryW( ::osl::mingw_reinterpret_cast<LPCWSTR>(aCurrentDir) );
-
- osl_releaseMutex( g_CurrentDirectoryMutex );
- }
-
- if ( dwResult )
- {
- if ( dwResult >= aBuffer.getBufSizeInSymbols() )
- eError = osl_File_E_INVAL;
- else
- {
- rtl_uString *ustrAbsSysPath = NULL;
-
- rtl_uString_newFromStr( &ustrAbsSysPath, aBuffer );
-
- eError = osl_getFileURLFromSystemPath( ustrAbsSysPath, pustrAbsoluteURL );
-
- if ( ustrAbsSysPath )
- rtl_uString_release( ustrAbsSysPath );
- }
- }
- else
- eError = oslTranslateFileError( GetLastError() );
- }
-
- if ( ustrBaseSysPath )
- rtl_uString_release( ustrBaseSysPath );
-
- if ( ustrRelSysPath )
- rtl_uString_release( ustrRelSysPath );
-
- return eError;
-}
-
-//#####################################################
-oslFileError SAL_CALL osl_getCanonicalName( rtl_uString *strRequested, rtl_uString **strValid )
-{
- rtl_uString_newFromString(strValid, strRequested);
- return osl_File_E_None;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/file_url.h b/sal/osl/w32/file_url.h
deleted file mode 100644
index 3652dffb1..000000000
--- a/sal/osl/w32/file_url.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_OSL_FILE_URL_H
-#define INCLUDED_OSL_FILE_URL_H
-
-#include "sal/types.h"
-#include "rtl/ustring.h"
-#include "osl/file.h"
-
-#ifdef _MSC_VER
-#pragma warning(push,1)
-#endif
-
-#define WINDOWS_LEAN_AND_MEAN
-#include <windows.h>
-
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define PATHTYPE_ERROR 0
-#define PATHTYPE_RELATIVE 1
-#define PATHTYPE_ABSOLUTE_UNC 2
-#define PATHTYPE_ABSOLUTE_LOCAL 3
-#define PATHTYPE_MASK_TYPE 0xFF
-#define PATHTYPE_IS_VOLUME 0x0100
-#define PATHTYPE_IS_SERVER 0x0200
-#define PATHTYPE_IS_LONGPATH 0x0400
-
-#define VALIDATEPATH_NORMAL 0x0000
-#define VALIDATEPATH_ALLOW_WILDCARDS 0x0001
-#define VALIDATEPATH_ALLOW_ELLIPSE 0x0002
-#define VALIDATEPATH_ALLOW_RELATIVE 0x0004
-#define VALIDATEPATH_ALLOW_UNC 0x0008
-#define VALIDATEPATH_ALLOW_INVALID_SPACE_AND_PERIOD 0x0010
-
-#define MAX_LONG_PATH 32767
-
-DWORD IsValidFilePath (
- rtl_uString * path,
- LPCTSTR * lppError,
- DWORD dwFlags,
- rtl_uString ** corrected
-);
-
-DWORD GetCaseCorrectPathName (
- LPCTSTR lpszShortPath, // file name
- LPTSTR lpszLongPath, // path buffer
- DWORD cchBuffer, // size of path buffer
- BOOL bCheckExistence
-);
-
-oslFileError _osl_getSystemPathFromFileURL (
- rtl_uString * strURL,
- rtl_uString ** pustrPath,
- sal_Bool bAllowRelative
-);
-
-oslFileError _osl_getFileURLFromSystemPath (
- rtl_uString * strPath,
- rtl_uString ** pstrURL
-);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* INCLUDED_OSL_FILE_URL_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/interlck.c b/sal/osl/w32/interlck.c
deleted file mode 100644
index 799437dd2..000000000
--- a/sal/osl/w32/interlck.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "system.h"
-
-#include <osl/interlck.h>
-#include <osl/diagnose.h>
-
-extern int osl_isSingleCPU;
-
-/* For all Intel x86 above x486 we use a spezial inline assembler implementation.
- The main reason is that WIN9? does not return the result of the operation.
- Instead there is only returned a value greater than zero is the increment
- result is greater than zero, but not the the result of the addition.
- For Windows NT the native function could be used, because the correct result
- is returned. Beacuse of simpler code maintance and performace reasons we use
- on every x86-Windows-Platform the inline assembler implementation.
-*/
-
-/*****************************************************************************/
-/* osl_incrementInterlockedCount */
-/*****************************************************************************/
-oslInterlockedCount SAL_CALL osl_incrementInterlockedCount(oslInterlockedCount* pCount)
-#ifdef _M_IX86
-#ifdef __MINGW32__
-{
- asm
- (
- " movl %0, %%ecx\n"
- " movl $1, %%eax\n"
- " movl %1, %%edx\n"
- " cmpl $0, %%edx\n"
- " je 1f\n"
- " xadd %%eax, (%%ecx)\n"
- " jmp 2f\n"
- "1:\n"
- " lock xadd %%eax, (%%ecx)\n"
- "2:\n"
- " incl %%eax\n"
- ::"m"(pCount),"m"(osl_isSingleCPU)
- );
-}
-#else
-#pragma warning(disable: 4035)
-{
- __asm
- {
- mov ecx, pCount
- mov eax, 1
- mov edx, osl_isSingleCPU
- cmp edx, 0
- je is_not_single
- xadd dword ptr [ecx],eax
- jmp cont
- is_not_single:
- lock xadd dword ptr [ecx],eax
- cont:
- inc eax
- }
-}
-#pragma warning(default: 4035)
-#endif
-#else
-#pragma message("WARNING: Using system InterlockedIncrement")
-{
- return (InterlockedIncrement(pCount));
-}
-#endif
-
-/*****************************************************************************/
-/* osl_decrementInterlockedCount */
-/*****************************************************************************/
-oslInterlockedCount SAL_CALL osl_decrementInterlockedCount(oslInterlockedCount* pCount)
-#ifdef _M_IX86
-#ifdef __MINGW32__
-{
- asm
- (
- " movl %0, %%ecx\n"
- " orl $-1, %%eax\n"
- " movl %1, %%edx\n"
- " cmpl $0, %%edx\n"
- " je 1f\n"
- " xadd %%eax, (%%ecx)\n"
- " jmp 2f\n"
- "1:\n"
- " lock xadd %%eax, (%%ecx)\n"
- "2:\n"
- " decl %%eax\n"
- ::"m"(pCount),"m"(osl_isSingleCPU)
- );
-}
-#else
-#pragma warning(disable: 4035)
-{
- __asm
- {
- mov ecx, pCount
- or eax, -1
- mov edx, osl_isSingleCPU
- cmp edx, 0
- je is_not_single
- xadd dword ptr [ecx],eax
- jmp cont
- is_not_single:
- lock xadd dword ptr [ecx],eax
- cont:
- dec eax
- }
-}
-#pragma warning(default: 4035)
-#endif
-#else
-#pragma message("WARNING: Using system InterlockedDecrement")
-{
- return (InterlockedDecrement(pCount));
-}
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/makefile.mk b/sal/osl/w32/makefile.mk
deleted file mode 100644
index 08e8745a9..000000000
--- a/sal/osl/w32/makefile.mk
+++ /dev/null
@@ -1,114 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=sal
-TARGET=cpposl
-ENABLE_EXCEPTIONS=TRUE
-USE_LDUMP2=TRUE
-
-PROJECTPCH4DLL=TRUE
-PROJECTPCH=cont_pch
-PROJECTPCHSOURCE=cont_pch
-
-MULTITHREAD_OBJ=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# Uncomment the following line if you want to compile with -Wall
-# it disables lots of unnecessary warnings comming from the Win32
-# header files (disabling warnings via command line only works with
-# MSVC >= 7.x)
-#
-# CFLAGS+=/wd4668 /wd4711 /wd4201 /wd4710 /wd4619 /wd4514 /wd4820
-
-# --- Files --------------------------------------------------------
-.IF "$(CCNUMVER)" >= "001400000000"
-CDEFS+=-D_CRT_NON_CONFORMING_SWPRINTFS
-.ENDIF
-
-.IF "$(header)" == ""
-
-SLOFILES= $(SLO)$/conditn.obj \
- $(SLO)$/diagnose.obj \
- $(SLO)$/dllentry.obj \
- $(SLO)$/semaphor.obj \
- $(SLO)$/socket.obj \
- $(SLO)$/interlck.obj \
- $(SLO)$/nlsupport.obj\
- $(SLO)$/mutex.obj \
- $(SLO)$/thread.obj \
- $(SLO)$/module.obj \
- $(SLO)$/process.obj \
- $(SLO)$/security.obj \
- $(SLO)$/profile.obj \
- $(SLO)$/time.obj \
- $(SLO)$/signal.obj \
- $(SLO)$/pipe.obj \
- $(SLO)$/util.obj \
- $(SLO)$/file.obj\
- $(SLO)$/file_dirvol.obj\
- $(SLO)$/file_error.obj\
- $(SLO)$/file_url.obj\
- $(SLO)$/tempfile.obj\
- $(SLO)$/path_helper.obj\
- $(SLO)$/procimpl.obj \
- $(SLO)$/salinit.obj
-
-OBJFILES= $(OBJ)$/conditn.obj \
- $(OBJ)$/diagnose.obj \
- $(OBJ)$/semaphor.obj \
- $(OBJ)$/socket.obj \
- $(OBJ)$/interlck.obj \
- $(OBJ)$/nlsupport.obj\
- $(OBJ)$/mutex.obj \
- $(OBJ)$/thread.obj \
- $(OBJ)$/module.obj \
- $(OBJ)$/process.obj \
- $(OBJ)$/security.obj \
- $(OBJ)$/profile.obj \
- $(OBJ)$/time.obj \
- $(OBJ)$/signal.obj \
- $(OBJ)$/pipe.obj \
- $(OBJ)$/util.obj \
- $(OBJ)$/file.obj\
- $(OBJ)$/file_dirvol.obj\
- $(OBJ)$/file_error.obj\
- $(OBJ)$/file_url.obj\
- $(OBJ)$/tempfile.obj\
- $(OBJ)$/path_helper.obj\
- $(OBJ)$/procimpl.obj \
- $(OBJ)$/salinit.obj
-
-.ENDIF
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/sal/osl/w32/module.cxx b/sal/osl/w32/module.cxx
deleted file mode 100644
index a332d3a36..000000000
--- a/sal/osl/w32/module.cxx
+++ /dev/null
@@ -1,472 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
-*
-* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-*
-* Copyright 2000, 2010 Oracle and/or its affiliates.
-*
-* OpenOffice.org - a multi-platform office productivity suite
-*
-* This file is part of OpenOffice.org.
-*
-* OpenOffice.org is free software: you can redistribute it and/or modify
-* it under the terms of the GNU Lesser General Public License version 3
-* only, as published by the Free Software Foundation.
-*
-* OpenOffice.org is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU Lesser General Public License version 3 for more details
-* (a copy is included in the LICENSE file that accompanied this code).
-*
-* You should have received a copy of the GNU Lesser General Public License
-* version 3 along with OpenOffice.org. If not, see
-* <http://www.openoffice.org/license.html>
-* for a copy of the LGPLv3 License.
-*
-************************************************************************/
-
-#ifdef __MINGW32__
-extern "C" {
-#endif
-#include "system.h"
-#ifdef __MINGW32__
-}
-#endif
-#include <tlhelp32.h>
-
-#include "file_url.h"
-#include "path_helper.hxx"
-
-#include <osl/module.h>
-#include <osl/diagnose.h>
-#include <osl/thread.h>
-#include <osl/file.h>
-#include <rtl/logfile.h>
-#include <vector>
-
-/*
- under WIN32, we use the void* oslModule
- as a WIN32 HANDLE (which is also a 32-bit value)
-*/
-
-/*****************************************************************************/
-/* osl_loadModule */
-/*****************************************************************************/
-oslModule SAL_CALL osl_loadModule(rtl_uString *strModuleName, sal_Int32 /*nRtldMode*/ )
-{
- HINSTANCE hInstance;
-#if OSL_DEBUG_LEVEL < 2
- UINT errorMode = SetErrorMode(SEM_NOOPENFILEERRORBOX | SEM_FAILCRITICALERRORS);
-#endif
- rtl_uString* Module = NULL;
- oslModule ret = 0;
- oslFileError nError;
-
- RTL_LOGFILE_TRACE1( "{ osl_loadModule start: %S", (LPTSTR)&strModuleName->buffer );
-
- OSL_ASSERT(strModuleName);
-
- nError = osl_getSystemPathFromFileURL(strModuleName, &Module);
-
- if ( osl_File_E_None != nError )
- rtl_uString_assign(&Module, strModuleName);
-
- hInstance = LoadLibraryW(reinterpret_cast<LPCWSTR>(Module->buffer));
-
- if (hInstance == NULL)
- hInstance = LoadLibraryExW(reinterpret_cast<LPCWSTR>(Module->buffer), NULL,
- LOAD_WITH_ALTERED_SEARCH_PATH);
-
- //In case of long path names (\\?\c:\...) try to shorten the filename.
- //LoadLibrary cannot handle file names which exceed 260 letters.
- //In case the path is to long, the function will fail. However, the error
- //code can be different. For example, it returned ERROR_FILENAME_EXCED_RANGE
- //on Windows XP and ERROR_INSUFFICIENT_BUFFER on Windows 7 (64bit)
- if (hInstance == NULL && Module->length > 260)
- {
- std::vector<sal_Unicode, rtl::Allocator<sal_Unicode> > vec(Module->length + 1);
- DWORD len = GetShortPathNameW(reinterpret_cast<LPCWSTR>(Module->buffer),
- reinterpret_cast<LPWSTR>(&vec[0]), Module->length + 1);
- if (len )
- {
- hInstance = LoadLibraryW(reinterpret_cast<LPWSTR>(&vec[0]));
-
- if (hInstance == NULL)
- hInstance = LoadLibraryExW(reinterpret_cast<LPWSTR>(&vec[0]), NULL,
- LOAD_WITH_ALTERED_SEARCH_PATH);
- }
- }
-
-
- if (hInstance <= (HINSTANCE)HINSTANCE_ERROR)
- hInstance = 0;
-
- ret = (oslModule) hInstance;
- rtl_uString_release(Module);
-#if OSL_DEBUG_LEVEL < 2
- SetErrorMode(errorMode);
-#endif
-
- RTL_LOGFILE_TRACE1( "} osl_loadModule end: %S", (LPTSTR)&strModuleName->buffer );
-
- return ret;
-}
-
-/*****************************************************************************/
-/* osl_loadModuleAscii */
-/*****************************************************************************/
-oslModule SAL_CALL osl_loadModuleAscii(const sal_Char *pModuleName, sal_Int32 nRtldMode )
-{
- (void) nRtldMode; /* avoid warnings */
-
- HINSTANCE hInstance;
- UINT errorMode = SetErrorMode(SEM_NOOPENFILEERRORBOX | SEM_FAILCRITICALERRORS);
- oslModule ret = 0;
-
- RTL_LOGFILE_TRACE1( "{ osl_loadModule start: %s", pModuleName );
-
- OSL_ASSERT(pModuleName);
-
- hInstance = LoadLibrary(pModuleName);
- if (hInstance == NULL)
- hInstance = LoadLibraryEx(pModuleName, NULL,
- LOAD_WITH_ALTERED_SEARCH_PATH);
-
- if (hInstance <= (HINSTANCE)HINSTANCE_ERROR)
- hInstance = 0;
-
- ret = (oslModule) hInstance;
- SetErrorMode(errorMode);
-
- RTL_LOGFILE_TRACE1( "} osl_loadModule end: %s", pModuleName );
-
- return ret;
-}
-
-/*****************************************************************************/
-/* osl_getModuleHandle */
-/*****************************************************************************/
-
-sal_Bool SAL_CALL
-osl_getModuleHandle(rtl_uString *pModuleName, oslModule *pResult)
-{
- HINSTANCE hInstance = GetModuleHandleW(reinterpret_cast<LPCWSTR>(pModuleName->buffer));
- if( hInstance )
- {
- *pResult = (oslModule) hInstance;
- return sal_True;
- }
-
- return sal_False;
-}
-
-/*****************************************************************************/
-/* osl_unloadModule */
-/*****************************************************************************/
-void SAL_CALL osl_unloadModule(oslModule Module)
-{
- FreeLibrary((HINSTANCE)Module);
-}
-
-/*****************************************************************************/
-/* osl_getSymbol */
-/*****************************************************************************/
-void* SAL_CALL osl_getSymbol(oslModule Module, rtl_uString *strSymbolName)
-{
- /* casting from a function pointer to a data pointer is invalid
- be in this case unavoidable because the API has to stay
- compitable we need to keep this function which returns a
- void* by definition */
-#ifdef _MSC_VER
-#pragma warning(push)
-#pragma warning(disable:4054)
-#endif
- return (void*)(osl_getFunctionSymbol(Module, strSymbolName));
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-}
-
-/*****************************************************************************/
-/* osl_getFunctionSymbol */
-/*****************************************************************************/
-oslGenericFunction SAL_CALL osl_getFunctionSymbol( oslModule Module, rtl_uString *strSymbolName )
-{
- rtl_String *symbolName = NULL;
- oslGenericFunction address;
-
- OSL_ASSERT(Module);
- OSL_ASSERT(strSymbolName);
-
- rtl_uString2String(
- &symbolName,
- strSymbolName->buffer,
- strSymbolName->length,
- RTL_TEXTENCODING_UTF8,
- OUSTRING_TO_OSTRING_CVTFLAGS
- );
-
- address=osl_getAsciiFunctionSymbol(Module, rtl_string_getStr(symbolName));
- rtl_string_release(symbolName);
-
- return address;
-}
-
-/*****************************************************************************/
-/* osl_getAsciiFunctionSymbol */
-/*****************************************************************************/
-oslGenericFunction SAL_CALL
-osl_getAsciiFunctionSymbol( oslModule Module, const sal_Char *pSymbol )
-{
- oslGenericFunction fncAddr = NULL;
-
- if( pSymbol )
- fncAddr=(oslGenericFunction)GetProcAddress((HINSTANCE) Module, pSymbol);
-
- return fncAddr;
-}
-
-
-
-/*****************************************************************************/
-/* osl_addressGetModuleURL */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* Implementation for Windows 95, 98 and Me */
-/*****************************************************************************/
-
-/* Undefine because there is no explicit "A" definition */
-
-#ifdef MODULEENTRY32
-#undef MODULEENTRY32
-#endif
-
-#ifdef LPMODULEENTRY32
-#undef LPMODULEENTRY32
-#endif
-
-/***************************************************************************************/
-/* Implementation for Windows NT, 2K and XP (2K and XP could use the above method too) */
-/***************************************************************************************/
-
-#ifdef _MSC_VER
-#pragma warning(push,1) /* disable warnings within system headers */
-#endif
-#include <imagehlp.h>
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-
-typedef BOOL (WINAPI *SymInitialize_PROC)(
- HANDLE hProcess,
- LPSTR UserSearchPath,
- BOOL fInvadeProcess
- );
-
-typedef BOOL (WINAPI *SymCleanup_PROC)(
- HANDLE hProcess
- );
-
-typedef BOOL (WINAPI *SymGetModuleInfo_PROC)(
- HANDLE hProcess,
- DWORD dwAddr,
- PIMAGEHLP_MODULE ModuleInfo
- );
-
-/* Seems that IMAGEHLP.DLL is always availiable on NT 4. But MSDN from Platform SDK says Win 2K is required. MSDN from VS 6.0a says
- it's O.K on NT 4 ???!!!
- BTW: We are using ANSI function because not all version of IMAGEHLP.DLL contain Unicode support
-*/
-
-static sal_Bool SAL_CALL _osl_addressGetModuleURL_NT4( void *pv, rtl_uString **pustrURL )
-{
- sal_Bool bSuccess = sal_False; /* Assume failure */
-
- /* IMAGEHELP.DLL has a bug that it recursivly scans subdirectories of
- the root when calling SymInitialize(), so we preferr DBGHELP.DLL
- which exports the same symbols and is shipped with OOo */
-
- HMODULE hModImageHelp = LoadLibrary( "DBGHELP.DLL" );
-
- if ( !hModImageHelp )
- hModImageHelp = LoadLibrary( "IMAGEHLP.DLL" );
-
- if ( hModImageHelp )
- {
- SymGetModuleInfo_PROC lpfnSymGetModuleInfo;
- SymInitialize_PROC lpfnSymInitialize;
- SymCleanup_PROC lpfnSymCleanup;
-
-
- lpfnSymInitialize = (SymInitialize_PROC)GetProcAddress( hModImageHelp, "SymInitialize" );
- lpfnSymCleanup = (SymCleanup_PROC)GetProcAddress( hModImageHelp, "SymCleanup" );
- lpfnSymGetModuleInfo = (SymGetModuleInfo_PROC)GetProcAddress( hModImageHelp, "SymGetModuleInfo" );
-
-
- if ( lpfnSymInitialize && lpfnSymCleanup && lpfnSymGetModuleInfo )
- {
- IMAGEHLP_MODULE ModuleInfo;
- ::osl::LongPathBuffer< sal_Char > aModuleFileName( MAX_LONG_PATH );
- LPSTR lpSearchPath = NULL;
-
- if ( GetModuleFileNameA( NULL, aModuleFileName, aModuleFileName.getBufSizeInSymbols() ) )
- {
- char *pLastBkSlash = strrchr( aModuleFileName, '\\' );
-
- if (
- pLastBkSlash &&
- pLastBkSlash > (sal_Char*)aModuleFileName
- && *(pLastBkSlash - 1) != ':'
- && *(pLastBkSlash - 1) != '\\'
- )
- {
- *pLastBkSlash = 0;
- lpSearchPath = aModuleFileName;
- }
- }
-
- lpfnSymInitialize( GetCurrentProcess(), lpSearchPath, TRUE );
-
- ZeroMemory( &ModuleInfo, sizeof(ModuleInfo) );
- ModuleInfo.SizeOfStruct = sizeof(ModuleInfo);
-
- bSuccess = (sal_Bool)(!!lpfnSymGetModuleInfo( GetCurrentProcess(), (DWORD)pv, &ModuleInfo ));
-
- if ( bSuccess )
- {
- /* #99182 On localized (non-english) NT4 and XP (!!!) for some libraries the LoadedImageName member of ModuleInfo isn't filled. Because
- other members ModuleName and ImageName do not contain the full path we can cast the Member
- BaseOfImage to a HMODULE (on NT it's the same) and use GetModuleFileName to retrieve the full
- path of the loaded image */
-
- if ( ModuleInfo.LoadedImageName[0] || GetModuleFileNameA( (HMODULE)ModuleInfo.BaseOfImage, ModuleInfo.LoadedImageName, sizeof(ModuleInfo.LoadedImageName) ) )
- {
- rtl_uString *ustrSysPath = NULL;
-
- rtl_string2UString( &ustrSysPath, ModuleInfo.LoadedImageName, strlen(ModuleInfo.LoadedImageName), osl_getThreadTextEncoding(), OSTRING_TO_OUSTRING_CVTFLAGS );
- OSL_ASSERT(ustrSysPath != NULL);
- osl_getFileURLFromSystemPath( ustrSysPath, pustrURL );
- rtl_uString_release( ustrSysPath );
- }
- else
- bSuccess = sal_False;
- }
-
- lpfnSymCleanup( GetCurrentProcess() );
- }
-
- FreeLibrary( hModImageHelp );
- }
-
- return bSuccess;
-}
-
-
-typedef struct _MODULEINFO {
- LPVOID lpBaseOfDll;
- DWORD SizeOfImage;
- LPVOID EntryPoint;
-} MODULEINFO, *LPMODULEINFO;
-
-typedef BOOL (WINAPI *EnumProcessModules_PROC)(
- HANDLE hProcess, // handle to the process
- HMODULE * lphModule, // array to receive the module handles
- DWORD cb, // size of the array
- LPDWORD lpcbNeeded // receives the number of bytes returned
-);
-
-typedef BOOL (WINAPI *GetModuleInformation_PROC)(
- HANDLE hProcess, // handle to the process
- HMODULE hModule, // handle to the module
- LPMODULEINFO lpmodinfo, // structure that receives information
- DWORD cb // size of the structure
-);
-
-/* This version can fail because PSAPI.DLL is not always part of NT 4 despite MSDN Libary 6.0a say so */
-
-static sal_Bool SAL_CALL _osl_addressGetModuleURL_NT( void *pv, rtl_uString **pustrURL )
-{
- sal_Bool bSuccess = sal_False; /* Assume failure */
- static HMODULE hModPsapi = NULL;
-
- if ( !hModPsapi )
- hModPsapi = LoadLibrary( "PSAPI.DLL" );
-
- if ( hModPsapi )
- {
- EnumProcessModules_PROC lpfnEnumProcessModules = (EnumProcessModules_PROC)GetProcAddress( hModPsapi, "EnumProcessModules" );
- GetModuleInformation_PROC lpfnGetModuleInformation = (GetModuleInformation_PROC)GetProcAddress( hModPsapi, "GetModuleInformation" );
-
- if ( lpfnEnumProcessModules && lpfnGetModuleInformation )
- {
- DWORD cbNeeded = 0;
- HMODULE *lpModules = NULL;
- DWORD nModules = 0;
- UINT iModule = 0;
- MODULEINFO modinfo;
-
- lpfnEnumProcessModules( GetCurrentProcess(), NULL, 0, &cbNeeded );
-
- lpModules = (HMODULE *)_alloca( cbNeeded );
- lpfnEnumProcessModules( GetCurrentProcess(), lpModules, cbNeeded, &cbNeeded );
-
- nModules = cbNeeded / sizeof(HMODULE);
-
- for ( iModule = 0; !bSuccess && iModule < nModules; iModule++ )
- {
- lpfnGetModuleInformation( GetCurrentProcess(), lpModules[iModule], &modinfo, sizeof(modinfo) );
-
- if ( (BYTE *)pv >= (BYTE *)modinfo.lpBaseOfDll && (BYTE *)pv < (BYTE *)modinfo.lpBaseOfDll + modinfo.SizeOfImage )
- {
- ::osl::LongPathBuffer< sal_Unicode > aBuffer( MAX_LONG_PATH );
- rtl_uString *ustrSysPath = NULL;
-
- GetModuleFileNameW( lpModules[iModule], ::osl::mingw_reinterpret_cast<LPWSTR>(aBuffer), aBuffer.getBufSizeInSymbols() );
-
- rtl_uString_newFromStr( &ustrSysPath, aBuffer );
- osl_getFileURLFromSystemPath( ustrSysPath, pustrURL );
- rtl_uString_release( ustrSysPath );
-
- bSuccess = sal_True;
- }
- }
- }
-
- }
-
- return bSuccess;
-}
-
-/*****************************************************************************/
-/* Dispatcher for osl_osl_addressGetModuleURL */
-/*****************************************************************************/
-
-sal_Bool SAL_CALL osl_getModuleURLFromAddress( void *pv, rtl_uString **pustrURL )
-{
- /* Use ..._NT first because ..._NT4 is much slower */
- return _osl_addressGetModuleURL_NT( pv, pustrURL ) || _osl_addressGetModuleURL_NT4( pv, pustrURL );
-}
-
-/*****************************************************************************/
-/* osl_getModuleURLFromFunctionAddress */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_getModuleURLFromFunctionAddress( oslGenericFunction addr, rtl_uString ** ppLibraryUrl )
-{
- /* casting a function pointer to a data pointer (void*) is
- not allowed according to the C/C++ standards. In this case
- it is unavoidable because we have to stay compatible we
- cannot remove any function. */
-#ifdef _MSC_VER
-#pragma warning(push)
-#pragma warning(disable:4054)
-#endif
- return osl_getModuleURLFromAddress((void*)addr, ppLibraryUrl);
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/mutex.c b/sal/osl/w32/mutex.c
deleted file mode 100644
index 009670c2f..000000000
--- a/sal/osl/w32/mutex.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "system.h"
-
-#include <osl/mutex.h>
-#include <osl/diagnose.h>
-
-/*
- Implementation notes:
- The void* hidden by oslMutex points to a WIN32
- CRITICAL_SECTION structure.
-*/
-
-/*****************************************************************************/
-/* osl_createMutex */
-/*****************************************************************************/
-oslMutex SAL_CALL osl_createMutex(void)
-{
- CRITICAL_SECTION *pMutexImpl;
-
- pMutexImpl = calloc(sizeof(CRITICAL_SECTION), 1);
-
- OSL_ASSERT(pMutexImpl); /* alloc successful? */
-
- InitializeCriticalSection(pMutexImpl);
-
- return (oslMutex)pMutexImpl;
-}
-
-/*****************************************************************************/
-/* osl_destroyMutex */
-/*****************************************************************************/
-void SAL_CALL osl_destroyMutex(oslMutex Mutex)
-{
- CRITICAL_SECTION *pMutexImpl = (CRITICAL_SECTION *)Mutex;
-
- if (pMutexImpl)
- {
- DeleteCriticalSection(pMutexImpl);
- free(pMutexImpl);
- }
-}
-
-/*****************************************************************************/
-/* osl_acquireMutex */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_acquireMutex(oslMutex Mutex)
-{
- CRITICAL_SECTION *pMutexImpl = (CRITICAL_SECTION *)Mutex;
-
- OSL_ASSERT(Mutex);
-
- EnterCriticalSection(pMutexImpl);
-
- return sal_True;
-}
-
-/*****************************************************************************/
-/* osl_tryToAcquireMutex */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_tryToAcquireMutex(oslMutex Mutex)
-{
- CRITICAL_SECTION *pMutexImpl = (CRITICAL_SECTION *)Mutex;
-
- OSL_ASSERT(Mutex);
-
- return (sal_Bool)(TryEnterCriticalSection(pMutexImpl) != FALSE);
-}
-
-/*****************************************************************************/
-/* osl_releaseMutex */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_releaseMutex(oslMutex Mutex)
-{
- CRITICAL_SECTION *pMutexImpl = (CRITICAL_SECTION *)Mutex;
-
- OSL_ASSERT(Mutex);
-
- LeaveCriticalSection(pMutexImpl);
-
- return sal_True;
-}
-
-/*****************************************************************************/
-/* osl_getGlobalMutex */
-/*****************************************************************************/
-
-/* initialized in dllentry.c */
-oslMutex g_Mutex;
-
-oslMutex * SAL_CALL osl_getGlobalMutex(void)
-{
- return &g_Mutex;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/nlsupport.c b/sal/osl/w32/nlsupport.c
deleted file mode 100644
index 9affc96bb..000000000
--- a/sal/osl/w32/nlsupport.c
+++ /dev/null
@@ -1,233 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#define UNICODE
-#ifdef _MSC_VER
-#pragma warning(push,1) /* disable warnings within system headers */
-#endif
-#include <windows.h>
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-#include <wchar.h>
-
-#include <osl/mutex.h>
-#include <osl/nlsupport.h>
-#include <osl/diagnose.h>
-#include <osl/process.h>
-#include <rtl/tencinfo.h>
-
-struct EnumLocalesParams
-{
- WCHAR Language[3];
- WCHAR Country[3];
- LCID Locale;
-};
-
-static DWORD g_dwTLSLocaleEncId = (DWORD) -1;
-
-/*****************************************************************************/
-/* callback function test
-/*
-/* osl_getTextEncodingFromLocale calls EnumSystemLocalesA, so that we don't
-/* need to provide a unicode wrapper for this function under Win9x
-/* that means the callback function has an ansi prototype and receives
-/* the locale strings as ansi strings
-/*****************************************************************************/
-
-BOOL CALLBACK EnumLocalesProcA( LPSTR lpLocaleStringA )
-{
- struct EnumLocalesParams * params;
-
- LCID localeId;
- LPSTR pszEndA;
-
- WCHAR langCode[4];
-
- /* convert hex-string to LCID */
- localeId = strtol( lpLocaleStringA, &pszEndA, 16 );
-
- /* check params received via TLS */
- params = (struct EnumLocalesParams *) TlsGetValue( g_dwTLSLocaleEncId );
- if( NULL == params || '\0' == params->Language[0] )
- return FALSE;
-
- /*
- get the ISO language code for this locale
-
- remeber: we call the GetLocaleInfoW function
- because the ansi version of this function returns
- an error under WinNT/2000 when called with an
- unicode only lcid
- */
- if( GetLocaleInfo( localeId, LOCALE_SISO639LANGNAME , langCode, 4 ) )
- {
- WCHAR ctryCode[4];
-
- /* continue if language code does not match */
- if( 0 != wcscmp( langCode, params->Language ) )
- return TRUE;
-
- /* check if country code is set and equals the current locale */
- if( '\0' != params->Country[0] && GetLocaleInfo( localeId, LOCALE_SISO3166CTRYNAME , ctryCode, 4 ) )
- {
- /* save return value in TLS and break if found desired locale */
- if( 0 == wcscmp( ctryCode, params->Country ) )
- {
- params->Locale = localeId;
- return FALSE;
- }
- }
- else
- {
- /* fill with default values for that language */
- LANGID langId = LANGIDFROMLCID( localeId );
-
- /* exchange sublanguage with SUBLANG_NEUTRAL */
- langId = MAKELANGID( PRIMARYLANGID( langId ), SUBLANG_NEUTRAL );
-
- /* and use default sorting order */
- params->Locale = MAKELCID( langId, SORT_DEFAULT );
-
- return FALSE;
- }
- }
-
- /* retry by going on */
- return TRUE;
-}
-
-
-/*****************************************************************************/
-/* GetTextEncodingFromLCID
-/*****************************************************************************/
-
-rtl_TextEncoding GetTextEncodingFromLCID( LCID localeId )
-{
- rtl_TextEncoding Encoding = RTL_TEXTENCODING_DONTKNOW;
- WCHAR ansiCP[6];
-
- /* query ansi codepage for given locale */
- if( localeId && GetLocaleInfo( localeId, LOCALE_IDEFAULTANSICODEPAGE, ansiCP, 6 ) )
- {
- /* if GetLocaleInfo returns "0", it is a UNICODE only locale */
- if( 0 != wcscmp( ansiCP, L"0" ) )
- {
- WCHAR *pwcEnd;
- UINT codepage;
-
- /* values returned from GetLocaleInfo are dezimal based */
- codepage = wcstol( ansiCP, &pwcEnd, 10 );
-
- /* find matching rtl encoding */
- Encoding = rtl_getTextEncodingFromWindowsCodePage( codepage );
- }
- else
- Encoding = RTL_TEXTENCODING_UNICODE;
- }
-
- return Encoding;
-}
-
-
-/*****************************************************************************/
-/* osl_getTextEncodingFromLocale
-/*****************************************************************************/
-
-rtl_TextEncoding SAL_CALL osl_getTextEncodingFromLocale( rtl_Locale * pLocale )
-{
- struct EnumLocalesParams params = { L"", L"", 0 };
-
- /* initialise global TLS id */
- if( (DWORD) -1 == g_dwTLSLocaleEncId )
- {
- oslMutex globalMutex = * osl_getGlobalMutex();
-
- /* initializing must be thread save */
- osl_acquireMutex( globalMutex );
-
- if( (DWORD) -1 == g_dwTLSLocaleEncId )
- g_dwTLSLocaleEncId = TlsAlloc();
-
- osl_releaseMutex( globalMutex );
- }
-
- /* if pLocale is NULL, use process locale as default */
- if( NULL == pLocale )
- osl_getProcessLocale( &pLocale );
-
- /* copy in parameters to structure */
- if( pLocale && pLocale->Language )
- {
- wcscpy( params.Language, pLocale->Language->buffer );
-
- if( pLocale->Country )
- wcscpy( params.Country, pLocale->Country->buffer );
-
- /* save pointer to local structure in TLS */
- TlsSetValue( g_dwTLSLocaleEncId, &params );
-
- /* enum all locales known to Windows */
- EnumSystemLocalesA( EnumLocalesProcA, LCID_SUPPORTED );
-
- /* use the LCID found in iteration */
- return GetTextEncodingFromLCID( params.Locale );
- }
-
- return RTL_TEXTENCODING_DONTKNOW;
-}
-
-/*****************************************************************************/
-/* imp_getProcessLocale
-/*****************************************************************************/
-
-void _imp_getProcessLocale( rtl_Locale ** ppLocale )
-{
- WCHAR langCode[4];
- WCHAR ctryCode[4];
- LCID localeId;
-
- OSL_ASSERT( ppLocale );
-
- /* get the LCID to retrieve information from */
- localeId = GetUserDefaultLCID();
-
- /* call GetLocaleInfo to retrieve the iso codes */
- if( GetLocaleInfo( localeId, LOCALE_SISO639LANGNAME , langCode, 4 ) &&
- GetLocaleInfo( localeId, LOCALE_SISO3166CTRYNAME , ctryCode, 4 ) )
- {
- *ppLocale = rtl_locale_register( langCode, ctryCode, L"" );
- }
- else
- {
- *ppLocale = rtl_locale_register( L"C", L"", L"" );
- }
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/path_helper.cxx b/sal/osl/w32/path_helper.cxx
deleted file mode 100644
index 744cbb77b..000000000
--- a/sal/osl/w32/path_helper.cxx
+++ /dev/null
@@ -1,120 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-/*******************************************************************
- Includes
- ******************************************************************/
-
-#include "path_helper.hxx"
-#include <osl/diagnose.h>
-#include <rtl/ustring.hxx>
-
-#include <algorithm>
-#include <wchar.h>
-
-/*******************************************************************
- Constants
- ******************************************************************/
-
-const rtl::OUString BACKSLASH (RTL_CONSTASCII_USTRINGPARAM("\\"));
-const rtl::OUString SLASH (RTL_CONSTASCII_USTRINGPARAM("/"));
-
-/*******************************************************************
- osl_systemPathEnsureSeparator
- ******************************************************************/
-
-void osl_systemPathEnsureSeparator(/*inout*/ rtl_uString** ppustrPath)
-{
- OSL_PRECOND(ppustrPath && (NULL != *ppustrPath), \
- "osl_systemPathEnsureSeparator: Invalid parameter");
-
- rtl::OUString path(*ppustrPath);
- sal_Int32 i = std::max<sal_Int32>(path.lastIndexOf(BACKSLASH), path.lastIndexOf(SLASH));
-
- if (i < (path.getLength()-1))
- {
- path += BACKSLASH;
- rtl_uString_assign(ppustrPath, path.pData);
- }
-
- OSL_POSTCOND(path.lastIndexOf(BACKSLASH) == (path.getLength() - 1), \
- "osl_systemPathEnsureSeparator: Post condition failed");
-}
-
-/*******************************************************************
- osl_systemPathRemoveSeparator
- ******************************************************************/
-
-void SAL_CALL osl_systemPathRemoveSeparator(/*inout*/ rtl_uString** ppustrPath)
-{
- rtl::OUString path(*ppustrPath);
-
- if (!osl::systemPathIsLogicalDrivePattern(path))
- {
- sal_Int32 i = std::max<sal_Int32>(path.lastIndexOf(BACKSLASH), path.lastIndexOf(SLASH));
-
- if (i > -1 && (i == (path.getLength() - 1)))
- {
- path = rtl::OUString(path.getStr(), path.getLength() - 1);
- rtl_uString_assign(ppustrPath, path.pData);
- }
- }
-}
-
-/*******************************************************************
- osl_is_logical_drive_pattern
- ******************************************************************/
-
-// is [A-Za-z]:[/|\]\0
-const sal_Char* LDP = ":";
-const sal_Char* LDP_WITH_BACKSLASH = ":\\";
-const sal_Char* LDP_WITH_SLASH = ":/";
-
-// degenerated case returned by the Windows FileOpen dialog
-// when someone enters for instance "x:filename", the Win32
-// API accepts this case
-const sal_Char* LDP_WITH_DOT_BACKSLASH = ":.\\";
-
-sal_Int32 osl_systemPathIsLogicalDrivePattern(/*in*/ const rtl_uString* pustrPath)
-{
- const sal_Unicode* p = rtl_uString_getStr(const_cast<rtl_uString*>(pustrPath));
- if (iswalpha(*p++))
- {
- return ((0 == rtl_ustr_ascii_compare(p, LDP)) ||
- (0 == rtl_ustr_ascii_compare(p, LDP_WITH_BACKSLASH)) ||
- (0 == rtl_ustr_ascii_compare(p, LDP_WITH_SLASH)) ||
- (0 == rtl_ustr_ascii_compare(p, LDP_WITH_DOT_BACKSLASH)));
- }
- return 0;
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/path_helper.h b/sal/osl/w32/path_helper.h
deleted file mode 100644
index 41a0f4330..000000000
--- a/sal/osl/w32/path_helper.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _PATH_HELPER_H_
-#define _PATH_HELPER_H_
-
-#include <sal/types.h>
-#include <rtl/ustring.h>
-#include <osl/file.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/*******************************************************************
- osl_systemPathEnsureSeparator
- Adds a trailing path separator to the given system path if not
- already there and if the path is not the root path or a logical
- drive alone
- ******************************************************************/
-
-void osl_systemPathEnsureSeparator(/*inout*/ rtl_uString** ppustrPath);
-
-/*******************************************************************
- osl_systemPathRemoveSeparator
- Removes the last separator from the given system path if any and
- if the path is not the root path '\'
- ******************************************************************/
-
-void SAL_CALL osl_systemPathRemoveSeparator(/*inout*/ rtl_uString** ppustrPath);
-
-/*******************************************************************
- osl_is_logical_drive_pattern
- Returns whether a given path is only a logical drive pattern or not.
- A logical drive pattern is something like "a:\", "c:\".
- No logical drive pattern is something like "c:\test"
- ******************************************************************/
-
-sal_Int32 osl_systemPathIsLogicalDrivePattern(/*in*/ const rtl_uString* pustrPath);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/path_helper.hxx b/sal/osl/w32/path_helper.hxx
deleted file mode 100644
index f7f464650..000000000
--- a/sal/osl/w32/path_helper.hxx
+++ /dev/null
@@ -1,121 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifdef _MSC_VER
-#pragma warning (disable : 4800)
-#endif
-
-#ifndef _PATH_HELPER_HXX_
-#define _PATH_HELPER_HXX_
-
-#include "path_helper.h"
-#include <rtl/ustring.hxx>
-#include <rtl/allocator.hxx>
-
-namespace osl
-{
-
-/*******************************************************************
- osl_systemPathEnsureSeparator
- Adds a trailing path separator to the given system path if not
- already there and if the path is not the root path or a logical
- drive alone
- ******************************************************************/
-
-inline void systemPathEnsureSeparator(/*inout*/ rtl::OUString& Path)
-{
- osl_systemPathEnsureSeparator(&Path.pData);
-}
-
-/*******************************************************************
- osl_systemPathRemoveSeparator
- Removes the last separator from the given system path if any and
- if the path is not the root path '\'
- ******************************************************************/
-
-inline void systemPathRemoveSeparator(/*inout*/ rtl::OUString& Path)
-{
- osl_systemPathRemoveSeparator(&Path.pData);
-}
-
-/*******************************************************************
- osl_systemPathIsLogicalDrivePattern
- ******************************************************************/
-
-inline bool systemPathIsLogicalDrivePattern(/*in*/ const rtl::OUString& path)
-{
- return osl_systemPathIsLogicalDrivePattern(path.pData);
-}
-
-/*******************************************************************
- LongPathBuffer
- ******************************************************************/
-template< class T >
-class LongPathBuffer
-{
- T* m_pBuffer;
- sal_uInt32 m_nCharNum;
-
- LongPathBuffer();
- LongPathBuffer( const LongPathBuffer& );
- LongPathBuffer& operator=( const LongPathBuffer& );
-
-public:
- LongPathBuffer( sal_uInt32 nCharNum )
- : m_pBuffer( reinterpret_cast<T*>( rtl_allocateMemory( nCharNum * sizeof( T ) ) ) )
- , m_nCharNum( nCharNum )
- {
- OSL_ENSURE( m_pBuffer, "Can not allocate the buffer!" );
- }
-
- ~LongPathBuffer()
- {
- if ( m_pBuffer )
- rtl_freeMemory( m_pBuffer );
- m_pBuffer = 0;
- }
-
- sal_uInt32 getBufSizeInSymbols()
- {
- return m_nCharNum;
- }
-
- operator T* ()
- {
- return m_pBuffer;
- }
-
-};
-
- template< class U, class T > U mingw_reinterpret_cast(LongPathBuffer<T>& a) { return reinterpret_cast<U>(static_cast<T*>(a)); }
-
-} // end namespace osl
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/pipe.c b/sal/osl/w32/pipe.c
deleted file mode 100644
index 3d00aa26c..000000000
--- a/sal/osl/w32/pipe.c
+++ /dev/null
@@ -1,526 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "system.h"
-
-#include <osl/pipe.h>
-#include <osl/diagnose.h>
-#include <osl/thread.h>
-#include <osl/mutex.h>
-#include <osl/semaphor.h>
-#include <osl/conditn.h>
-#include <osl/interlck.h>
-#include <osl/process.h>
-
-#include <rtl/alloc.h>
-#include <rtl/memory.h>
-
-#define PIPESYSTEM "\\\\.\\pipe\\"
-#define PIPEPREFIX "OSL_PIPE_"
-
-typedef struct
-{
- sal_uInt32 m_Size;
- sal_uInt32 m_ReadPos;
- sal_uInt32 m_WritePos;
- BYTE m_Data[1];
-
-} oslPipeBuffer;
-
-/*****************************************************************************/
-/* oslPipeImpl */
-/*****************************************************************************/
-
-struct oslPipeImpl {
- oslInterlockedCount m_Reference;
- HANDLE m_File;
- HANDLE m_NamedObject;
- PSECURITY_ATTRIBUTES m_Security;
- HANDLE m_ReadEvent;
- HANDLE m_WriteEvent;
- HANDLE m_AcceptEvent;
- rtl_uString* m_Name;
- oslPipeError m_Error;
- sal_Bool m_bClosed;
-};
-
-
-/*****************************************************************************/
-/* osl_create/destroy-PipeImpl */
-/*****************************************************************************/
-
-static oslInterlockedCount nPipes = 0;
-
-oslPipe __osl_createPipeImpl(void)
-{
- oslPipe pPipe;
-
- pPipe = (oslPipe) rtl_allocateZeroMemory(sizeof(struct oslPipeImpl));
-
- pPipe->m_bClosed = sal_False;
- pPipe->m_Reference = 0;
- pPipe->m_Name = NULL;
- pPipe->m_File = INVALID_HANDLE_VALUE;
- pPipe->m_NamedObject = INVALID_HANDLE_VALUE;
-
- pPipe->m_ReadEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
- pPipe->m_WriteEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
- pPipe->m_AcceptEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
-
- return pPipe;
-}
-
-void __osl_destroyPipeImpl(oslPipe pPipe)
-{
- if (pPipe != NULL)
- {
- if ( pPipe->m_NamedObject != INVALID_HANDLE_VALUE && pPipe->m_NamedObject != NULL )
- CloseHandle( pPipe->m_NamedObject );
-
- if (pPipe->m_Security != NULL)
- {
- rtl_freeMemory(pPipe->m_Security->lpSecurityDescriptor);
- rtl_freeMemory(pPipe->m_Security);
- }
-
- CloseHandle(pPipe->m_ReadEvent);
- CloseHandle(pPipe->m_WriteEvent);
- CloseHandle(pPipe->m_AcceptEvent);
-
- if (pPipe->m_Name)
- rtl_uString_release(pPipe->m_Name);
-
- rtl_freeMemory(pPipe);
- }
-}
-
-
-
-/*****************************************************************************/
-/* osl_createPipe */
-/*****************************************************************************/
-oslPipe SAL_CALL osl_createPipe(rtl_uString *strPipeName, oslPipeOptions Options,
- oslSecurity Security)
-{
- rtl_uString* name = NULL;
- rtl_uString* path = NULL;
- rtl_uString* temp = NULL;
- oslPipe pPipe;
-
- PSECURITY_ATTRIBUTES pSecAttr = NULL;
-
- rtl_uString_newFromAscii(&path, PIPESYSTEM);
- rtl_uString_newFromAscii(&name, PIPEPREFIX);
-
- if ( Security)
- {
- rtl_uString *Ident = NULL;
- rtl_uString *Delim = NULL;
-
- OSL_VERIFY(osl_getUserIdent(Security, &Ident));
- rtl_uString_newFromAscii(&Delim, "_");
-
- rtl_uString_newConcat(&temp, name, Ident);
- rtl_uString_newConcat(&name, temp, Delim);
-
- rtl_uString_release(Ident);
- rtl_uString_release(Delim);
- }
- else
- {
- if (Options & osl_Pipe_CREATE)
- {
- PSECURITY_DESCRIPTOR pSecDesc;
-
- pSecDesc = (PSECURITY_DESCRIPTOR) rtl_allocateMemory(SECURITY_DESCRIPTOR_MIN_LENGTH);
-
- /* add a NULL disc. ACL to the security descriptor */
- OSL_VERIFY(InitializeSecurityDescriptor(pSecDesc, SECURITY_DESCRIPTOR_REVISION));
- OSL_VERIFY(SetSecurityDescriptorDacl(pSecDesc, TRUE, (PACL) NULL, FALSE));
-
- pSecAttr = rtl_allocateMemory(sizeof(SECURITY_ATTRIBUTES));
- pSecAttr->nLength = sizeof(SECURITY_ATTRIBUTES);
- pSecAttr->lpSecurityDescriptor = pSecDesc;
- pSecAttr->bInheritHandle = TRUE;
- }
- }
-
- rtl_uString_assign(&temp, name);
- rtl_uString_newConcat(&name, temp, strPipeName);
-
- /* alloc memory */
- pPipe= __osl_createPipeImpl();
- osl_incrementInterlockedCount(&(pPipe->m_Reference));
-
- /* build system pipe name */
- rtl_uString_assign(&temp, path);
- rtl_uString_newConcat(&path, temp, name);
- rtl_uString_release(temp);
- temp = NULL;
-
- if (Options & osl_Pipe_CREATE)
- {
- SetLastError( ERROR_SUCCESS );
-
- pPipe->m_NamedObject = CreateMutexW( NULL, FALSE, name->buffer );
-
- if ( pPipe->m_NamedObject != INVALID_HANDLE_VALUE && pPipe->m_NamedObject != NULL )
- {
- if ( GetLastError() != ERROR_ALREADY_EXISTS )
- {
- pPipe->m_Security = pSecAttr;
- rtl_uString_assign(&pPipe->m_Name, name);
-
- /* try to open system pipe */
- pPipe->m_File = CreateNamedPipeW(
- path->buffer,
- PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED,
- PIPE_WAIT | PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE,
- PIPE_UNLIMITED_INSTANCES,
- 4096, 4096,
- NMPWAIT_WAIT_FOREVER,
- pPipe->m_Security);
-
- if (pPipe->m_File != INVALID_HANDLE_VALUE)
- {
- rtl_uString_release( name );
- rtl_uString_release( path );
-
- return pPipe;
- }
- }
- else
- {
- CloseHandle( pPipe->m_NamedObject );
- pPipe->m_NamedObject = INVALID_HANDLE_VALUE;
- }
- }
- }
- else
- {
- BOOL fPipeAvailable;
-
- do
- {
- /* free instance should be available first */
- fPipeAvailable = WaitNamedPipeW(path->buffer, NMPWAIT_WAIT_FOREVER);
-
- /* first try to open system pipe */
- if ( fPipeAvailable )
- {
- pPipe->m_File = CreateFileW(
- path->buffer,
- GENERIC_READ|GENERIC_WRITE,
- FILE_SHARE_READ | FILE_SHARE_WRITE,
- NULL,
- OPEN_EXISTING,
- FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,
- NULL);
-
- if ( pPipe->m_File != INVALID_HANDLE_VALUE )
- {
- // We got it !
- rtl_uString_release( name );
- rtl_uString_release( path );
-
- return (pPipe);
- }
- else
- {
- // Pipe instance maybe catched by another client -> try again
- }
- }
- } while ( fPipeAvailable );
- }
-
- /* if we reach here something went wrong */
- __osl_destroyPipeImpl(pPipe);
-
- return NULL;
-}
-
-void SAL_CALL osl_acquirePipe( oslPipe pPipe )
-{
- osl_incrementInterlockedCount( &(pPipe->m_Reference) );
-}
-
-void SAL_CALL osl_releasePipe( oslPipe pPipe )
-{
-// OSL_ASSERT( pPipe );
-
- if( 0 == pPipe )
- return;
-
- if( 0 == osl_decrementInterlockedCount( &(pPipe->m_Reference) ) )
- {
- if( ! pPipe->m_bClosed )
- osl_closePipe( pPipe );
-
- __osl_destroyPipeImpl( pPipe );
- }
-}
-
-void SAL_CALL osl_closePipe( oslPipe pPipe )
-{
- if( pPipe && ! pPipe->m_bClosed )
- {
- pPipe->m_bClosed = sal_True;
- /* if we have a system pipe close it */
- if (pPipe->m_File != INVALID_HANDLE_VALUE)
- {
- /* FlushFileBuffers(pPipe->m_File); */
- DisconnectNamedPipe(pPipe->m_File);
- CloseHandle(pPipe->m_File);
- }
- }
-}
-
-/*****************************************************************************/
-/* osl_acceptPipe */
-/*****************************************************************************/
-oslPipe SAL_CALL osl_acceptPipe(oslPipe pPipe)
-{
- oslPipe pAcceptedPipe = NULL;
-
- HANDLE Event;
- OVERLAPPED os;
-
- DWORD nBytesTransfered;
- rtl_uString* path = NULL;
- rtl_uString* temp = NULL;
-
- OSL_ASSERT(pPipe);
-
- OSL_ASSERT (pPipe->m_File != INVALID_HANDLE_VALUE);
-
- Event = pPipe->m_AcceptEvent;
- rtl_zeroMemory(&os, sizeof(OVERLAPPED));
- os.hEvent = pPipe->m_AcceptEvent;
- ResetEvent(pPipe->m_AcceptEvent);
-
- if ( !ConnectNamedPipe(pPipe->m_File, &os))
- {
- switch ( GetLastError() )
- {
- case ERROR_PIPE_CONNECTED: // Client already connected to pipe
- case ERROR_NO_DATA: // Client was connected but has already closed pipe end
- // should only appear in nonblocking mode but in fact does
- // in blocking asynchronous mode.
- break;
- case ERROR_PIPE_LISTENING: // Only for nonblocking mode but see ERROR_NO_DATA
- case ERROR_IO_PENDING: // This is normal if not client is connected yet
- case ERROR_MORE_DATA: // Should not happen
- // blocking call to accept
- if( !GetOverlappedResult( pPipe->m_File, &os, &nBytesTransfered, TRUE ) )
- {
- // Possible error could be that between ConnectNamedPipe and GetOverlappedResult a connect
- // took place.
-
- switch ( GetLastError() )
- {
- case ERROR_PIPE_CONNECTED: // Pipe was already connected
- case ERROR_NO_DATA: // Pipe was connected but client has already closed -> ver fast client ;-)
- break; // Everything's fine !!!
- default:
- // Something went wrong
- return 0;
- }
- }
- break;
- default: // All other error say that somethings going wrong.
- return 0;
- }
- }
-
- pAcceptedPipe = __osl_createPipeImpl();
- OSL_ASSERT(pAcceptedPipe);
-
- osl_incrementInterlockedCount(&(pAcceptedPipe->m_Reference));
- rtl_uString_assign(&pAcceptedPipe->m_Name, pPipe->m_Name);
- pAcceptedPipe->m_File = pPipe->m_File;
-
- rtl_uString_newFromAscii(&temp, PIPESYSTEM);
- rtl_uString_newConcat(&path, temp, pPipe->m_Name);
- rtl_uString_release(temp);
-
- // prepare for next accept
- pPipe->m_File =
- CreateNamedPipeW(path->buffer,
- PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED,
- PIPE_WAIT | PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE,
- PIPE_UNLIMITED_INSTANCES,
- 4096, 4096,
- NMPWAIT_WAIT_FOREVER,
- pAcceptedPipe->m_Security);
- rtl_uString_release( path );
-
- return pAcceptedPipe;
-}
-
-/*****************************************************************************/
-/* osl_receivePipe */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_receivePipe(oslPipe pPipe,
- void* pBuffer,
- sal_Int32 BytesToRead)
-{
- DWORD nBytes;
- OVERLAPPED os;
-
- OSL_ASSERT(pPipe);
-
- rtl_zeroMemory(&os,sizeof(OVERLAPPED));
- os.hEvent = pPipe->m_ReadEvent;
-
- ResetEvent(pPipe->m_ReadEvent);
-
- if (! ReadFile(pPipe->m_File, pBuffer, BytesToRead, &nBytes, &os) &&
- ((GetLastError() != ERROR_IO_PENDING) ||
- ! GetOverlappedResult(pPipe->m_File, &os, &nBytes, TRUE)))
- {
- DWORD lastError = GetLastError();
-
- if (lastError == ERROR_MORE_DATA)
- nBytes = BytesToRead;
- else
- {
- if (lastError == ERROR_PIPE_NOT_CONNECTED)
- nBytes = 0;
- else
- nBytes = (DWORD) -1;
-
- pPipe->m_Error = osl_Pipe_E_ConnectionAbort;
- }
- }
-
- return (nBytes);
-}
-
-/*****************************************************************************/
-/* osl_sendPipe */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_sendPipe(oslPipe pPipe,
- const void* pBuffer,
- sal_Int32 BytesToSend)
-{
- DWORD nBytes;
- OVERLAPPED os;
-
- OSL_ASSERT(pPipe);
-
- rtl_zeroMemory(&os, sizeof(OVERLAPPED));
- os.hEvent = pPipe->m_WriteEvent;
- ResetEvent(pPipe->m_WriteEvent);
-
- if (! WriteFile(pPipe->m_File, pBuffer, BytesToSend, &nBytes, &os) &&
- ((GetLastError() != ERROR_IO_PENDING) ||
- ! GetOverlappedResult(pPipe->m_File, &os, &nBytes, TRUE)))
- {
- if (GetLastError() == ERROR_PIPE_NOT_CONNECTED)
- nBytes = 0;
- else
- nBytes = (DWORD) -1;
-
- pPipe->m_Error = osl_Pipe_E_ConnectionAbort;
- }
-
- return (nBytes);
-}
-
-sal_Int32 SAL_CALL osl_writePipe( oslPipe pPipe, const void *pBuffer , sal_Int32 n )
-{
- /* loop until all desired bytes were send or an error occurred */
- sal_Int32 BytesSend= 0;
- sal_Int32 BytesToSend= n;
-
- OSL_ASSERT(pPipe);
- while (BytesToSend > 0)
- {
- sal_Int32 RetVal;
-
- RetVal= osl_sendPipe(pPipe, pBuffer, BytesToSend);
-
- /* error occurred? */
- if(RetVal <= 0)
- {
- break;
- }
-
- BytesToSend -= RetVal;
- BytesSend += RetVal;
- pBuffer= (sal_Char*)pBuffer + RetVal;
- }
-
- return BytesSend;
-}
-
-sal_Int32 SAL_CALL osl_readPipe( oslPipe pPipe, void *pBuffer , sal_Int32 n )
-{
- /* loop until all desired bytes were read or an error occurred */
- sal_Int32 BytesRead= 0;
- sal_Int32 BytesToRead= n;
-
- OSL_ASSERT( pPipe );
- while (BytesToRead > 0)
- {
- sal_Int32 RetVal;
- RetVal= osl_receivePipe(pPipe, pBuffer, BytesToRead);
-
- /* error occurred? */
- if(RetVal <= 0)
- {
- break;
- }
-
- BytesToRead -= RetVal;
- BytesRead += RetVal;
- pBuffer= (sal_Char*)pBuffer + RetVal;
- }
- return BytesRead;
-}
-
-
-/*****************************************************************************/
-/* osl_getLastPipeError */
-/*****************************************************************************/
-oslPipeError SAL_CALL osl_getLastPipeError(oslPipe pPipe)
-{
- oslPipeError Error;
-
- if (pPipe != NULL)
- {
- Error = pPipe->m_Error;
- pPipe->m_Error = osl_Pipe_E_None;
- }
- else
- Error = osl_Pipe_E_NotFound;
-
- return (Error);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/process.cxx b/sal/osl/w32/process.cxx
deleted file mode 100644
index 1749b8ec5..000000000
--- a/sal/osl/w32/process.cxx
+++ /dev/null
@@ -1,658 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
-*
-* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-*
-* Copyright 2000, 2010 Oracle and/or its affiliates.
-*
-* OpenOffice.org - a multi-platform office productivity suite
-*
-* This file is part of OpenOffice.org.
-*
-* OpenOffice.org is free software: you can redistribute it and/or modify
-* it under the terms of the GNU Lesser General Public License version 3
-* only, as published by the Free Software Foundation.
-*
-* OpenOffice.org is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU Lesser General Public License version 3 for more details
-* (a copy is included in the LICENSE file that accompanied this code).
-*
-* You should have received a copy of the GNU Lesser General Public License
-* version 3 along with OpenOffice.org. If not, see
-* <http://www.openoffice.org/license.html>
-* for a copy of the LGPLv3 License.
-*
-************************************************************************/
-
-#define UNICODE
-#include "system.h"
-#include <string.h>
-#ifdef _MSC_VER
-#pragma warning(push,1) /* disable warnings within system headers */
-#endif
-#include <shellapi.h>
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-
-#include <osl/diagnose.h>
-#include <osl/security.h>
-#include <osl/nlsupport.h>
-#include <osl/mutex.h>
-#include <osl/thread.h>
-
-#include "procimpl.h"
-#include "sockimpl.h"
-#include "file_url.h"
-#include "path_helper.hxx"
-#include <rtl/ustrbuf.h>
-#include <rtl/alloc.h>
-
-/***************************************************************************
- * Process.
- ***************************************************************************/
-
-oslProcessError SAL_CALL osl_terminateProcess(oslProcess Process)
-{
- if (Process == NULL)
- return osl_Process_E_Unknown;
-
- if (TerminateProcess(((oslProcessImpl*)Process)->m_hProcess, 0))
- return osl_Process_E_None;
-
-
- return osl_Process_E_Unknown;
-}
-
-/***************************************************************************/
-
-oslProcess SAL_CALL osl_getProcess(oslProcessIdentifier Ident)
-{
- oslProcessImpl* pProcImpl;
- HANDLE hProcess = OpenProcess(
- STANDARD_RIGHTS_REQUIRED | PROCESS_QUERY_INFORMATION | SYNCHRONIZE, FALSE, (DWORD)Ident);
-
- if (hProcess)
- {
- pProcImpl = reinterpret_cast< oslProcessImpl*>( rtl_allocateMemory(sizeof(oslProcessImpl)) );
- pProcImpl->m_hProcess = hProcess;
- pProcImpl->m_IdProcess = Ident;
- }
- else
- pProcImpl = NULL;
-
- return (pProcImpl);
-}
-
-/***************************************************************************/
-
-void SAL_CALL osl_freeProcessHandle(oslProcess Process)
-{
- if (Process != NULL)
- {
- CloseHandle(((oslProcessImpl*)Process)->m_hProcess);
-
- rtl_freeMemory((oslProcessImpl*)Process);
- }
-}
-
-/***************************************************************************/
-
-oslProcessError SAL_CALL osl_getProcessInfo(oslProcess Process, oslProcessData Fields,
- oslProcessInfo* pInfo)
-{
- HANDLE hProcess;
- DWORD IdProcess;
-
- if (Process == NULL)
- {
- hProcess = GetCurrentProcess();
- IdProcess = GetCurrentProcessId();
- }
- else
- {
- hProcess = ((oslProcessImpl*)Process)->m_hProcess;
- IdProcess = ((oslProcessImpl*)Process)->m_IdProcess;
- }
-
- if (! pInfo || (pInfo->Size != sizeof(oslProcessInfo)))
- return osl_Process_E_Unknown;
-
- pInfo->Fields = 0;
-
- if (Fields & osl_Process_IDENTIFIER)
- {
- pInfo->Ident = IdProcess;
- pInfo->Fields |= osl_Process_IDENTIFIER;
- }
-
- if (Fields & osl_Process_EXITCODE)
- {
- if (GetExitCodeProcess(hProcess, &(pInfo->Code)) && (pInfo->Code != STILL_ACTIVE))
- pInfo->Fields |= osl_Process_EXITCODE;
- }
-
- if (Fields & osl_Process_HEAPUSAGE)
- {
- void* lpAddress=0;
- MEMORY_BASIC_INFORMATION Info;
-
- pInfo->HeapUsage = 0;
-
- do
- {
- if (VirtualQueryEx(hProcess, lpAddress, &Info, sizeof(Info)) == 0)
- break;
-
- if ((Info.State == MEM_COMMIT) && (Info.Type == MEM_PRIVATE))
- pInfo->HeapUsage += Info.RegionSize;
-
- lpAddress = (LPBYTE)lpAddress + Info.RegionSize;
- }
- while (lpAddress < (void *)0x80000000); // 2GB address space
-
- pInfo->Fields |= osl_Process_HEAPUSAGE;
- }
-
- if (Fields & osl_Process_CPUTIMES)
- {
- FILETIME CreationTime, ExitTime, KernelTime, UserTime;
-
- if (GetProcessTimes(hProcess, &CreationTime, &ExitTime,
- &KernelTime, &UserTime))
- {
- __int64 Value;
-
- Value = *((__int64 *)&UserTime);
- pInfo->UserTime.Seconds = (unsigned long) (Value / 10000000L);
- pInfo->UserTime.Nanosec = (unsigned long)((Value % 10000000L) * 100);
-
- Value = *((__int64 *)&KernelTime);
- pInfo->SystemTime.Seconds = (unsigned long) (Value / 10000000L);
- pInfo->SystemTime.Nanosec = (unsigned long)((Value % 10000000L) * 100);
-
- pInfo->Fields |= osl_Process_CPUTIMES;
- }
- }
-
- return (pInfo->Fields == Fields) ? osl_Process_E_None : osl_Process_E_Unknown;
-}
-
-/***************************************************************************/
-
-oslProcessError SAL_CALL osl_joinProcess(oslProcess Process)
-{
- return osl_joinProcessWithTimeout(Process, NULL);
-}
-
-/***************************************************************************/
-
-oslProcessError SAL_CALL osl_joinProcessWithTimeout(oslProcess Process, const TimeValue* pTimeout)
-{
- DWORD timeout = INFINITE;
- oslProcessError osl_error = osl_Process_E_None;
- DWORD ret;
-
- if (NULL == Process)
- return osl_Process_E_Unknown;
-
- if (pTimeout)
- timeout = pTimeout->Seconds * 1000 + pTimeout->Nanosec / 1000000L;
-
- ret = WaitForSingleObject(((oslProcessImpl*)Process)->m_hProcess, timeout);
-
- if (WAIT_FAILED == ret)
- osl_error = osl_Process_E_Unknown;
- else if (WAIT_TIMEOUT == ret)
- osl_error = osl_Process_E_TimedOut;
-
- return osl_error;
-}
-
-/***************************************************************************
- * osl_bootstrap_getExecutableFile_Impl().
- *
- * @internal
- * @see rtl_bootstrap
- * @see #i37371#
- *
- ***************************************************************************/
-
-extern "C" oslProcessError SAL_CALL osl_bootstrap_getExecutableFile_Impl (
- rtl_uString ** ppFileURL
-) SAL_THROW_EXTERN_C()
-{
- oslProcessError result = osl_Process_E_NotFound;
-
- ::osl::LongPathBuffer< sal_Unicode > aBuffer( MAX_LONG_PATH );
- DWORD buflen = 0;
-
- if ((buflen = GetModuleFileNameW (0, ::osl::mingw_reinterpret_cast<LPWSTR>(aBuffer), aBuffer.getBufSizeInSymbols())) > 0)
- {
- rtl_uString * pAbsPath = 0;
- rtl_uString_newFromStr_WithLength (&(pAbsPath), aBuffer, buflen);
- if (pAbsPath)
- {
- /* Convert from path to url. */
- if (osl_getFileURLFromSystemPath (pAbsPath, ppFileURL) == osl_File_E_None)
- {
- /* Success. */
- result = osl_Process_E_None;
- }
- rtl_uString_release (pAbsPath);
- }
- }
-
- return (result);
-}
-
-/***************************************************************************
- * Command Line Arguments.
- ***************************************************************************/
-
-struct CommandArgs_Impl
-{
- sal_uInt32 m_nCount;
- rtl_uString ** m_ppArgs;
-};
-
-static struct CommandArgs_Impl g_command_args =
-{
- 0,
- 0
-};
-
-#ifdef _MSC_VER
-#pragma warning( push )
-#pragma warning( disable: 4100 )
-#endif
-static rtl_uString ** osl_createCommandArgs_Impl (int argc, char ** argv)
-{
- rtl_uString ** ppArgs =
- (rtl_uString**)rtl_allocateZeroMemory (argc * sizeof(rtl_uString*));
- if (ppArgs != 0)
- {
- int i;
- int nArgs;
- LPWSTR *wargv = CommandLineToArgvW( GetCommandLineW(), &nArgs );
- OSL_ASSERT( nArgs == argc );
- for (i = 0; i < nArgs; i++)
- {
- /* Convert to unicode */
- rtl_uString_newFromStr( &(ppArgs[i]), reinterpret_cast<const sal_Unicode*>(wargv[i]) );
- }
- if (ppArgs[0] != 0)
- {
- /* Ensure absolute path */
- ::osl::LongPathBuffer< sal_Unicode > aBuffer( MAX_LONG_PATH );
- DWORD dwResult = 0;
-
- dwResult = SearchPath (
- 0, reinterpret_cast<LPCWSTR>(ppArgs[0]->buffer), L".exe", aBuffer.getBufSizeInSymbols(), ::osl::mingw_reinterpret_cast<LPWSTR>(aBuffer), 0);
- if ((0 < dwResult) && (dwResult < aBuffer.getBufSizeInSymbols()))
- {
- /* Replace argv[0] with it's absolute path */
- rtl_uString_newFromStr_WithLength(
- &(ppArgs[0]), aBuffer, dwResult);
- }
- }
- if (ppArgs[0] != 0)
- {
- /* Convert to FileURL, see @ osl_getExecutableFile() */
- rtl_uString * pResult = 0;
- osl_getFileURLFromSystemPath (ppArgs[0], &pResult);
- if (pResult != 0)
- {
- rtl_uString_assign (&(ppArgs[0]), pResult);
- rtl_uString_release (pResult);
- }
- }
- }
- return (ppArgs);
-
-}
-#ifdef _MSC_VER
-#pragma warning( pop )
-#endif
-
-/***************************************************************************/
-
-oslProcessError SAL_CALL osl_getExecutableFile( rtl_uString **ppustrFile )
-{
- oslProcessError result = osl_Process_E_NotFound;
-
- osl_acquireMutex (*osl_getGlobalMutex());
- OSL_ASSERT(g_command_args.m_nCount > 0);
- if (g_command_args.m_nCount > 0)
- {
- /* CommandArgs set. Obtain arv[0]. */
- rtl_uString_assign (ppustrFile, g_command_args.m_ppArgs[0]);
- result = osl_Process_E_None;
- }
- osl_releaseMutex (*osl_getGlobalMutex());
-
- return (result);
-}
-
-/***************************************************************************/
-
-sal_uInt32 SAL_CALL osl_getCommandArgCount(void)
-{
- sal_uInt32 result = 0;
-
- osl_acquireMutex (*osl_getGlobalMutex());
- OSL_ASSERT(g_command_args.m_nCount > 0);
- if (g_command_args.m_nCount > 0)
- {
- /* We're not counting argv[0] here. */
- result = g_command_args.m_nCount - 1;
- }
- osl_releaseMutex (*osl_getGlobalMutex());
-
- return (result);
-}
-
-/***************************************************************************/
-
-oslProcessError SAL_CALL osl_getCommandArg( sal_uInt32 nArg, rtl_uString **strCommandArg)
-{
- oslProcessError result = osl_Process_E_NotFound;
-
- osl_acquireMutex (*osl_getGlobalMutex());
- OSL_ASSERT(g_command_args.m_nCount > 0);
- if (g_command_args.m_nCount > (nArg + 1))
- {
- /* We're not counting argv[0] here. */
- rtl_uString_assign (strCommandArg, g_command_args.m_ppArgs[nArg + 1]);
- result = osl_Process_E_None;
- }
- osl_releaseMutex (*osl_getGlobalMutex());
-
- return (result);
-}
-
-/***************************************************************************/
-
-void SAL_CALL osl_setCommandArgs (int argc, char ** argv)
-{
- OSL_ASSERT(argc > 0);
- osl_acquireMutex (*osl_getGlobalMutex());
- if (g_command_args.m_nCount == 0)
- {
- rtl_uString** ppArgs = osl_createCommandArgs_Impl (argc, argv);
- if (ppArgs != 0)
- {
- g_command_args.m_nCount = argc;
- g_command_args.m_ppArgs = ppArgs;
- }
- }
- osl_releaseMutex (*osl_getGlobalMutex());
-}
-
-/***************************************************************************
- * Environment
- ***************************************************************************/
-/*
- #109941# because of a bug in the M$ unicows library we have to
- allocate a buffer large enough to hold the requested environment
- variable instead of testing for the required size. This wastes
- some stack space, maybe we should revoke this work around if
- unicows library is fixed.
-*/
-#define ENV_BUFFER_SIZE (32*1024-1)
-
-oslProcessError SAL_CALL osl_getEnvironment(rtl_uString *ustrVar, rtl_uString **ustrValue)
-{
- WCHAR buff[ENV_BUFFER_SIZE];
-
- if (GetEnvironmentVariableW(reinterpret_cast<LPCWSTR>(ustrVar->buffer), buff, ENV_BUFFER_SIZE) > 0)
- {
- rtl_uString_newFromStr(ustrValue, reinterpret_cast<const sal_Unicode*>(buff));
- return osl_Process_E_None;
- }
- return osl_Process_E_Unknown;
-}
-
-oslProcessError SAL_CALL osl_setEnvironment(rtl_uString *ustrVar, rtl_uString *ustrValue)
-{
- LPCWSTR lpName = reinterpret_cast<LPCWSTR>(ustrVar->buffer);
- LPCWSTR lpValue = reinterpret_cast<LPCWSTR>(ustrValue->buffer);
- if (SetEnvironmentVariableW(lpName, lpValue))
- {
- wchar_t *buffer = new wchar_t[wcslen(lpName) + 1 + wcslen(lpValue) + 1];
- wcscpy(buffer, lpName);
- wcscat(buffer, L"=");
- wcscat(buffer, lpValue);
- _wputenv(buffer);
- delete[] buffer;
- return osl_Process_E_None;
- }
- return osl_Process_E_Unknown;
-}
-
-oslProcessError SAL_CALL osl_clearEnvironment(rtl_uString *ustrVar)
-{
- //If the second parameter is NULL, the variable is deleted from the current
- //process's environment.
- LPCWSTR lpName = reinterpret_cast<LPCWSTR>(ustrVar->buffer);
- if (SetEnvironmentVariableW(lpName, NULL))
- {
- wchar_t *buffer = new wchar_t[wcslen(lpName) + 1 + 1];
- wcscpy(buffer, lpName);
- wcscat(buffer, L"=");
- _wputenv(buffer);
- delete[] buffer;
- return osl_Process_E_None;
- }
- return osl_Process_E_Unknown;
-}
-
-/***************************************************************************
- * Current Working Directory.
- ***************************************************************************/
-
-extern "C" oslMutex g_CurrentDirectoryMutex;
-
-oslProcessError SAL_CALL osl_getProcessWorkingDir( rtl_uString **pustrWorkingDir )
-{
- ::osl::LongPathBuffer< sal_Unicode > aBuffer( MAX_LONG_PATH );
- DWORD dwLen = 0;
-
-
- osl_acquireMutex( g_CurrentDirectoryMutex );
- dwLen = GetCurrentDirectory( aBuffer.getBufSizeInSymbols(), ::osl::mingw_reinterpret_cast<LPWSTR>(aBuffer) );
- osl_releaseMutex( g_CurrentDirectoryMutex );
-
- if ( dwLen && dwLen < aBuffer.getBufSizeInSymbols() )
- {
- oslFileError eError;
- rtl_uString *ustrTemp = NULL;;
-
- rtl_uString_newFromStr_WithLength( &ustrTemp, aBuffer, dwLen );
- eError = osl_getFileURLFromSystemPath( ustrTemp, pustrWorkingDir );
-
- rtl_uString_release( ustrTemp );
-
- if ( osl_File_E_None != eError )
- return osl_Process_E_Unknown;
- else
- return osl_Process_E_None;
- }
- else
- return osl_Process_E_Unknown;
-}
-
-/***************************************************************************
- * Process Locale.
- ***************************************************************************/
-
-extern "C" void _imp_getProcessLocale( rtl_Locale ** ppLocale );
-
-static rtl_Locale * g_theProcessLocale = NULL;
-
-/***************************************************************************/
-
-oslProcessError SAL_CALL osl_getProcessLocale( rtl_Locale ** ppLocale )
-{
- osl_acquireMutex( *osl_getGlobalMutex() );
-
- /* determine the users default locale */
- if( NULL == g_theProcessLocale )
- _imp_getProcessLocale( &g_theProcessLocale );
-
- /* or return the cached value */
- *ppLocale = g_theProcessLocale;
-
- osl_releaseMutex( *osl_getGlobalMutex() );
- return osl_Process_E_None;
-}
-
-/***************************************************************************/
-
-oslProcessError SAL_CALL osl_setProcessLocale( rtl_Locale * pLocale )
-{
- osl_acquireMutex( *osl_getGlobalMutex() );
-
- /* check if locale is supported */
- if( RTL_TEXTENCODING_DONTKNOW == osl_getTextEncodingFromLocale( pLocale ) )
- return osl_Process_E_Unknown;
-
- /* just remember the locale here */
- g_theProcessLocale = pLocale;
-
- osl_releaseMutex( *osl_getGlobalMutex() );
- return osl_Process_E_None;
-}
-
-/************************************************
- * Portal send/receive interface implementation
- ************************************************/
-
-static sal_Bool ReadPipe(oslPipe hPipe,
- void* pBuffer,
- sal_Int32 BytesToRead,
- sal_Int32* nBytes)
-{
- *nBytes = osl_receivePipe(hPipe, pBuffer, BytesToRead);
- OSL_TRACE("tried to recieve %d, recieved %d.\n",
- BytesToRead, *nBytes);
- return (sal_Bool)((*nBytes >= 0) && (osl_getLastPipeError(hPipe) == osl_Pipe_E_None));
-}
-
-static sal_Bool WritePipe(oslPipe hPipe,
- void* pBuffer,
- sal_Int32 BytesToSend,
- sal_Int32* nBytes)
-{
- *nBytes = osl_sendPipe(hPipe, pBuffer, BytesToSend);
- OSL_TRACE("tried to send %d, sent %d\n",
- BytesToSend, *nBytes);
- return (sal_Bool)((*nBytes == BytesToSend) && (osl_getLastPipeError(hPipe) == osl_Pipe_E_None));
-}
-
-sal_Bool SAL_CALL osl_sendResourcePipe(oslPipe hPipe, oslSocket pSocket)
-{
- sal_Bool bRet = sal_False;
- sal_Int32 bytes = 0;
-
- /* duplicate handle on this other side ->
- receive remote process
- duplicate handle and send it */
- DWORD remoteProcessID = 0;
- HANDLE fd = (HANDLE)pSocket->m_Socket;
- oslDescriptorType code = osl_Process_TypeSocket;
-
- OSL_TRACE("osl_sendResourcePipe: enter...");
-
- if (ReadPipe(hPipe, &remoteProcessID, sizeof(remoteProcessID), &bytes))
- {
- HANDLE hRemoteProc = OpenProcess(PROCESS_DUP_HANDLE,
- FALSE,
- remoteProcessID);
-
- if (hRemoteProc != (HANDLE)NULL)
- {
- HANDLE newFd;
-
- if (DuplicateHandle(GetCurrentProcess(),
- fd,
- hRemoteProc,
- &newFd,
- 0, FALSE, DUPLICATE_SAME_ACCESS))
- {
- if (
- WritePipe(hPipe, &code, sizeof(code), &bytes) &&
- WritePipe(hPipe, &newFd, sizeof(fd), &bytes)
- )
- bRet = sal_True;
- }
-
- CloseHandle(hRemoteProc);
- }
- }
-
- if (bRet)
- {
- sal_Int32 commitCode;
- OSL_TRACE("osl_sendResourcePipe: handle sent successfully, verify...\n");
-
- if (
- !ReadPipe(hPipe, &commitCode, sizeof(commitCode), &bytes) ||
- (commitCode <= 0)
- )
- bRet = sal_False;
- }
-
- OSL_TRACE("osl_sendResourcePipe: exit... %d\n", bRet);
- return(bRet);
-}
-
-
-oslSocket SAL_CALL osl_receiveResourcePipe(oslPipe hPipe)
-{
- sal_Bool bRet = sal_False;
- sal_Int32 bytes = 0;
- sal_Int32 commitCode;
- oslSocket pSocket = NULL;
-
- /* duplicate handle on the other side ->
- send my process id receive duplicated handle */
- HANDLE fd = INVALID_HANDLE_VALUE;
- DWORD myProcessID = GetCurrentProcessId();
- oslDescriptorType code = osl_Process_TypeNone;
-
- OSL_TRACE("osl_receiveResourcePipe: enter...\n");
-
- if (
- WritePipe(hPipe, &myProcessID, sizeof(myProcessID), &bytes) &&
- ReadPipe(hPipe, &code, sizeof(code), &bytes) &&
- ReadPipe(hPipe, &fd, sizeof(fd), &bytes)
- )
- {
- if (code == osl_Process_TypeSocket)
- {
- pSocket = __osl_createSocketImpl((SOCKET)fd);
- bRet = sal_True;
- }
- else
- {
- OSL_TRACE("osl_receiveResourcePipe: UKNOWN\n");
- bRet = sal_False;
- }
- }
-
- if (bRet)
- commitCode = 1;
- else
- commitCode = 0;
-
- WritePipe(hPipe, &commitCode, sizeof(commitCode), &bytes);
-
- OSL_TRACE("osl_receiveResourcePipe: exit... %d, %p\n", bRet, pSocket);
-
- return pSocket;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/procimpl.cxx b/sal/osl/w32/procimpl.cxx
deleted file mode 100644
index 3ac82dcc9..000000000
--- a/sal/osl/w32/procimpl.cxx
+++ /dev/null
@@ -1,644 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#define UNICODE
-#define _UNICODE
-
-#ifndef WIN32_LEAN_AND_MEAN
-# define WIN32_LEAN_AND_MEAN
-# ifdef _MSC_VER
-# pragma warning(push,1) /* disable warnings within system headers */
-# endif
-# include <windows.h>
-# ifdef _MSC_VER
-# pragma warning(pop)
-# endif
-# include <tchar.h>
-# undef WIN32_LEAN_AND_MEAN
-#endif
-#include "procimpl.h"
-#include <rtl/ustring.hxx>
-#include <rtl/ustrbuf.hxx>
-#include "secimpl.h"
-#include "rtl/allocator.hxx"
-#include <osl/file.hxx>
-
-#include <list>
-#include <vector>
-#include <algorithm>
-#include <string>
-
-//#################################################
-extern "C" oslFileHandle SAL_CALL osl_createFileHandleFromOSHandle( HANDLE hFile, sal_uInt32 uFlags );
-
-//#################################################
-const sal_Unicode NAME_VALUE_SEPARATOR = TEXT('=');
-const sal_Char* SPACE = " ";
-const rtl::OUString ENV_COMSPEC (RTL_CONSTASCII_USTRINGPARAM("COMSPEC"));
-const rtl::OUString QUOTE(RTL_CONSTASCII_USTRINGPARAM("\""));
-
-namespace /* private */
-{
- //#################################################
- typedef std::list<rtl::OUString, rtl::Allocator<rtl::OUString> > string_container_t;
- typedef string_container_t::iterator string_container_iterator_t;
- typedef string_container_t::const_iterator string_container_const_iterator_t;
- typedef std::pair<string_container_iterator_t, string_container_iterator_t> iterator_pair_t;
- typedef std::vector<sal_Unicode, rtl::Allocator<sal_Unicode> > environment_container_t;
-
- //#################################################
- /* Function object that compares two strings that are
- expected to be environment variables in the form
- "name=value". Only the 'name' part will be compared.
- The comparison is in upper case and returns true
- if the first of both strings is less than the
- second one. */
- struct less_environment_variable :
- public std::binary_function<rtl::OUString, rtl::OUString, bool>
- {
- bool operator() (const rtl::OUString& lhs, const rtl::OUString& rhs) const
- {
- OSL_ENSURE((lhs.indexOf(NAME_VALUE_SEPARATOR) > -1) && \
- (rhs.indexOf(NAME_VALUE_SEPARATOR) > -1), \
- "Malformed environment variable");
-
- // Windows compares environment variables uppercase
- // so we do it, too
- return (rtl_ustr_compare_WithLength(
- lhs.toAsciiUpperCase().pData->buffer,
- lhs.indexOf(NAME_VALUE_SEPARATOR),
- rhs.toAsciiUpperCase().pData->buffer,
- rhs.indexOf(NAME_VALUE_SEPARATOR)) < 0);
- }
- };
-
- //#################################################
- /* Function object used by for_each algorithm to
- calculate the sum of the length of all strings
- in a string container. */
- class sum_of_string_lengths
- {
- public:
- //--------------------------------
- sum_of_string_lengths() : sum_(0) {}
-
- //--------------------------------
- void operator() (const rtl::OUString& string)
- {
- OSL_ASSERT(string.getLength());
-
- // always include the terminating '\0'
- if (string.getLength())
- sum_ += string.getLength() + 1;
- }
-
- //--------------------------------
- operator size_t () const
- {
- return sum_;
- }
- private:
- size_t sum_;
- };
-
- //#################################################
- inline size_t calc_sum_of_string_lengths(const string_container_t& string_cont)
- {
- return std::for_each(
- string_cont.begin(), string_cont.end(), sum_of_string_lengths());
- }
-
- //#################################################
- void read_environment(/*out*/ string_container_t* environment)
- {
- // GetEnvironmentStrings returns a sorted list, Windows
- // sorts environment variables upper case
- LPTSTR env = reinterpret_cast<LPTSTR>(GetEnvironmentStrings());
- LPTSTR p = env;
-
- while (size_t l = _tcslen(p))
- {
- environment->push_back(reinterpret_cast<const sal_Unicode*>(p));
- p += l + 1;
- }
- FreeEnvironmentStrings(env);
- }
-
- //#################################################
- /* the environment list must be sorted, new values
- should either replace existing ones or should be
- added to the list, environment variables will
- be handled case-insensitive */
- bool create_merged_environment(
- rtl_uString* env_vars[],
- sal_uInt32 env_vars_count,
- /*in|out*/ string_container_t* merged_env)
- {
- OSL_ASSERT(env_vars && env_vars_count > 0 && merged_env);
-
- read_environment(merged_env);
-
- for (sal_uInt32 i = 0; i < env_vars_count; i++)
- {
- rtl::OUString env_var = rtl::OUString(env_vars[i]);
-
- if (env_var.getLength() == 0)
- return false;
-
- iterator_pair_t iter_pair = std::equal_range(
- merged_env->begin(),
- merged_env->end(),
- env_var,
- less_environment_variable());
-
- if (env_var.indexOf(NAME_VALUE_SEPARATOR) == -1)
- {
- merged_env->erase(iter_pair.first, iter_pair.second);
- }
- else
- {
- if (iter_pair.first != iter_pair.second) // found
- *iter_pair.first = env_var;
- else // not found
- merged_env->insert(iter_pair.first, env_var);
- }
- }
- return true;
- }
-
- //#################################################
- /* Create a merged environment */
- bool setup_process_environment(
- rtl_uString* environment_vars[],
- sal_uInt32 n_environment_vars,
- /*in|out*/ environment_container_t& environment)
- {
- string_container_t merged_env;
- if (!create_merged_environment(environment_vars, n_environment_vars, &merged_env))
- return false;
-
- // allocate enough space for the '\0'-separated environment strings and
- // a final '\0'
- environment.resize(calc_sum_of_string_lengths(merged_env) + 1);
-
- string_container_const_iterator_t iter = merged_env.begin();
- string_container_const_iterator_t iter_end = merged_env.end();
-
- sal_uInt32 pos = 0;
- for (/**/; iter != iter_end; ++iter)
- {
- rtl::OUString envv = *iter;
-
- OSL_ASSERT(envv.getLength());
-
- sal_uInt32 n = envv.getLength() + 1; // copy the final '\0', too
- rtl_copyMemory(
- reinterpret_cast<void*>(&environment[pos]),
- reinterpret_cast<const void*>(envv.getStr()),
- n * sizeof(sal_Unicode));
- pos += n;
- }
- environment[pos] = 0; // append a final '\0'
-
- return true;
- }
-
- //##########################################################
- /* In contrast to the Win32 API function CreatePipe with
- this function the caller is able to determine separately
- which handle of the pipe is inheritable. */
- bool create_pipe(
- PHANDLE p_read_pipe,
- bool b_read_pipe_inheritable,
- PHANDLE p_write_pipe,
- bool b_write_pipe_inheritable,
- LPVOID p_security_descriptor = NULL,
- DWORD pipe_size = 0)
- {
- SECURITY_ATTRIBUTES sa;
- sa.nLength = sizeof(SECURITY_ATTRIBUTES);
- sa.lpSecurityDescriptor = p_security_descriptor;
- sa.bInheritHandle = b_read_pipe_inheritable || b_write_pipe_inheritable;
-
- BOOL bRet = FALSE;
- HANDLE hTemp = NULL;
-
- if (!b_read_pipe_inheritable && b_write_pipe_inheritable)
- {
- bRet = CreatePipe(&hTemp, p_write_pipe, &sa, pipe_size);
-
- if (bRet && !DuplicateHandle(GetCurrentProcess(), hTemp,
- GetCurrentProcess(), p_read_pipe, 0, FALSE,
- DUPLICATE_CLOSE_SOURCE | DUPLICATE_SAME_ACCESS))
- {
- CloseHandle(hTemp);
- CloseHandle(*p_read_pipe);
- return false;
- }
- }
- else if (b_read_pipe_inheritable && !b_write_pipe_inheritable)
- {
- bRet = CreatePipe(p_read_pipe, &hTemp, &sa, pipe_size);
-
- if (bRet && !DuplicateHandle(GetCurrentProcess(), hTemp,
- GetCurrentProcess(), p_write_pipe, 0, FALSE,
- DUPLICATE_CLOSE_SOURCE | DUPLICATE_SAME_ACCESS))
- {
- CloseHandle(hTemp);
- CloseHandle(*p_write_pipe);
- return false;
- }
- }
- else
- {
- bRet = CreatePipe(p_read_pipe, p_write_pipe, &sa, pipe_size);
- }
- return bRet;
- }
-
- //#########################################################
- // Add a quote sign to the start and the end of a string
- // if not already present
- rtl::OUString quote_string(const rtl::OUString& string)
- {
- rtl::OUStringBuffer quoted;
- if (string.indexOf(QUOTE) != 0)
- quoted.append(QUOTE);
-
- quoted.append(string);
-
- if (string.lastIndexOf(QUOTE) != (string.getLength() - 1))
- quoted.append(QUOTE);
-
- return quoted.makeStringAndClear();
- }
-
- //The parameter path must be a system path. If it is longer than 260 characters
- //then it is shortened using the GetShortPathName function. This function only
- //works if the path exists. Because "path" can be the path to an executable, it
- //may not have the file extension ".exe". However, if the file on disk has the
- //".exe" extension, then the function will fail. In this case a second attempt
- //is started by adding the parameter "extension" to "path".
- rtl::OUString getShortPath(rtl::OUString const & path, rtl::OUString const & extension)
- {
- rtl::OUString ret(path);
- if (path.getLength() > 260)
- {
- std::vector<sal_Unicode, rtl::Allocator<sal_Unicode> > vec(path.getLength() + 1);
- //GetShortPathNameW only works if the file can be found!
- const DWORD len = GetShortPathNameW(
- reinterpret_cast<LPCWSTR>(path.getStr()), reinterpret_cast<LPWSTR>(&vec[0]), path.getLength() + 1);
-
- if (!len && GetLastError() == ERROR_FILE_NOT_FOUND
- && extension.getLength())
- {
- const rtl::OUString extPath(path + extension);
- std::vector<sal_Unicode, rtl::Allocator<sal_Unicode> > vec2(
- extPath.getLength() + 1);
- const DWORD len2 = GetShortPathNameW(
- reinterpret_cast<LPCWSTR>(extPath.getStr()), reinterpret_cast<LPWSTR>(&vec2[0]), extPath.getLength() + 1);
- ret = rtl::OUString(&vec2[0], len2);
- }
- else
- {
- ret = rtl::OUString(&vec[0], len);
- }
- }
- return ret;
- }
- //##########################################################
- // Returns the system path of the executable which can either
- // be provided via the strImageName parameter or as first
- // element of the strArguments list.
- // The returned path will be quoted if it contains spaces.
- rtl::OUString get_executable_path(
- rtl_uString* image_name,
- rtl_uString* cmdline_args[],
- sal_uInt32 n_cmdline_args,
- bool search_path)
- {
- rtl::OUString exe_name;
-
- if (image_name)
- exe_name = image_name;
- else if (n_cmdline_args)
- exe_name = rtl::OUString(cmdline_args[0]);
-
- rtl::OUString exe_url = exe_name;
- if (search_path)
- osl_searchFileURL(exe_name.pData, NULL, &exe_url.pData);
-
- rtl::OUString exe_path;
- if (osl_File_E_None != osl::FileBase::getSystemPathFromFileURL(exe_url, exe_path))
- return rtl::OUString();
-
- exe_path = getShortPath(exe_path, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".exe")));
-
- if (exe_path.indexOf(' ') != -1)
- exe_path = quote_string(exe_path);
-
- return exe_path;
- }
-
- //##########################################################
- rtl::OUString get_file_extension(const rtl::OUString& file_name)
- {
- sal_Int32 index = file_name.lastIndexOf('.');
- if ((index != -1) && ((index + 1) < file_name.getLength()))
- return file_name.copy(index + 1);
-
- return rtl::OUString();
- }
-
- //##########################################################
- bool is_batch_file(const rtl::OUString& file_name)
- {
- rtl::OUString ext = get_file_extension(file_name);
- return (ext.equalsIgnoreAsciiCaseAscii("bat") ||
- ext.equalsIgnoreAsciiCaseAscii("cmd") ||
- ext.equalsIgnoreAsciiCaseAscii("btm"));
- }
-
- //##########################################################
- rtl::OUString get_batch_processor()
- {
- rtl::OUString comspec;
- osl_getEnvironment(ENV_COMSPEC.pData, &comspec.pData);
-
- OSL_ASSERT(comspec.getLength());
-
- /* check if comspec path contains blanks and quote it if any */
- if (comspec.indexOf(' ') != -1)
- comspec = quote_string(comspec);
-
- return comspec;
- }
-
-} // namespace private
-
-
-//#################################################
-oslProcessError SAL_CALL osl_executeProcess(
- rtl_uString *strImageName,
- rtl_uString *strArguments[],
- sal_uInt32 nArguments,
- oslProcessOption Options,
- oslSecurity Security,
- rtl_uString *strDirectory,
- rtl_uString *strEnvironmentVars[],
- sal_uInt32 nEnvironmentVars,
- oslProcess *pProcess
-)
-{
- return osl_executeProcess_WithRedirectedIO(
- strImageName,
- strArguments,
- nArguments,
- Options,
- Security,
- strDirectory,
- strEnvironmentVars,
- nEnvironmentVars,
- pProcess,
- NULL, NULL, NULL );
-}
-
-//#################################################
-oslProcessError SAL_CALL osl_executeProcess_WithRedirectedIO(
- rtl_uString *ustrImageName,
- rtl_uString *ustrArguments[],
- sal_uInt32 nArguments,
- oslProcessOption Options,
- oslSecurity Security,
- rtl_uString *ustrDirectory,
- rtl_uString *ustrEnvironmentVars[],
- sal_uInt32 nEnvironmentVars,
- oslProcess *pProcess,
- oslFileHandle *pProcessInputWrite,
- oslFileHandle *pProcessOutputRead,
- oslFileHandle *pProcessErrorRead)
-{
- rtl::OUString exe_path = get_executable_path(
- ustrImageName, ustrArguments, nArguments, (Options & osl_Process_SEARCHPATH));
-
- if (0 == exe_path.getLength())
- return osl_Process_E_NotFound;
-
- if (pProcess == NULL)
- return osl_Process_E_InvalidError;
-
- DWORD flags = NORMAL_PRIORITY_CLASS;
- rtl::OUStringBuffer command_line;
-
- if (is_batch_file(exe_path))
- {
- rtl::OUString batch_processor = get_batch_processor();
-
- if (batch_processor.getLength())
- {
- /* cmd.exe does not work without a console window */
- if (!(Options & osl_Process_WAIT) || (Options & osl_Process_DETACHED))
- flags |= CREATE_NEW_CONSOLE;
-
- command_line.append(batch_processor);
- command_line.appendAscii(" /c ");
- }
- else
- // should we return here in case of error?
- return osl_Process_E_Unknown;
- }
-
- command_line.append(exe_path);
-
- /* Add remaining arguments to command line. If ustrImageName is NULL
- the first parameter is the name of the executable so we have to
- start at 1 instead of 0 */
- for (sal_uInt32 n = (NULL != ustrImageName) ? 0 : 1; n < nArguments; n++)
- {
- command_line.appendAscii(SPACE);
-
- /* Quote arguments containing blanks */
- if (rtl::OUString(ustrArguments[n]).indexOf(' ') != -1)
- command_line.append(quote_string(ustrArguments[n]));
- else
- command_line.append(ustrArguments[n]);
- }
-
- environment_container_t environment;
- LPVOID p_environment = NULL;
-
- if (nEnvironmentVars && ustrEnvironmentVars)
- {
- if (!setup_process_environment(
- ustrEnvironmentVars, nEnvironmentVars, environment))
- return osl_Process_E_InvalidError;
-
- flags |= CREATE_UNICODE_ENVIRONMENT;
- p_environment = &environment[0];
- }
-
- rtl::OUString cwd;
- if (ustrDirectory && ustrDirectory->length && (osl_File_E_None != osl::FileBase::getSystemPathFromFileURL(ustrDirectory, cwd)))
- return osl_Process_E_InvalidError;
-
- LPCWSTR p_cwd = (cwd.getLength()) ? reinterpret_cast<LPCWSTR>(cwd.getStr()) : NULL;
-
- if ((Options & osl_Process_DETACHED) && !(flags & CREATE_NEW_CONSOLE))
- flags |= DETACHED_PROCESS;
-
- STARTUPINFO startup_info;
- memset(&startup_info, 0, sizeof(STARTUPINFO));
-
- startup_info.cb = sizeof(STARTUPINFO);
- startup_info.dwFlags = STARTF_USESHOWWINDOW;
- startup_info.lpDesktop = L"";
-
- /* Create pipes for redirected IO */
- HANDLE hInputRead = NULL;
- HANDLE hInputWrite = NULL;
- if (pProcessInputWrite && create_pipe(&hInputRead, true, &hInputWrite, false))
- startup_info.hStdInput = hInputRead;
-
- HANDLE hOutputRead = NULL;
- HANDLE hOutputWrite = NULL;
- if (pProcessOutputRead && create_pipe(&hOutputRead, false, &hOutputWrite, true))
- startup_info.hStdOutput = hOutputWrite;
-
- HANDLE hErrorRead = NULL;
- HANDLE hErrorWrite = NULL;
- if (pProcessErrorRead && create_pipe(&hErrorRead, false, &hErrorWrite, true))
- startup_info.hStdError = hErrorWrite;
-
- bool b_inherit_handles = false;
- if (pProcessInputWrite || pProcessOutputRead || pProcessErrorRead)
- {
- startup_info.dwFlags |= STARTF_USESTDHANDLES;
- b_inherit_handles = true;
- }
-
- switch(Options & (osl_Process_NORMAL | osl_Process_HIDDEN | osl_Process_MINIMIZED | osl_Process_MAXIMIZED | osl_Process_FULLSCREEN))
- {
- case osl_Process_HIDDEN:
- startup_info.wShowWindow = SW_HIDE;
- flags |= CREATE_NO_WINDOW; // ignored for non-console
- // applications; ignored on
- // Win9x
- break;
-
- case osl_Process_MINIMIZED:
- startup_info.wShowWindow = SW_MINIMIZE;
- break;
-
- case osl_Process_MAXIMIZED:
- case osl_Process_FULLSCREEN:
- startup_info.wShowWindow = SW_MAXIMIZE;
- break;
-
- default:
- startup_info.wShowWindow = SW_NORMAL;
- }
-
- rtl::OUString cmdline = command_line.makeStringAndClear();
- PROCESS_INFORMATION process_info;
- BOOL bRet = FALSE;
-
- if ((Security != NULL) && (((oslSecurityImpl*)Security)->m_hToken != NULL))
- {
- bRet = CreateProcessAsUser(
- ((oslSecurityImpl*)Security)->m_hToken,
- NULL, const_cast<LPTSTR>(reinterpret_cast<LPCTSTR>(cmdline.getStr())), NULL, NULL,
- b_inherit_handles, flags, p_environment, p_cwd,
- &startup_info, &process_info);
- }
- else
- {
- bRet = CreateProcess(
- NULL, const_cast<LPTSTR>(reinterpret_cast<LPCTSTR>(cmdline.getStr())), NULL, NULL,
- b_inherit_handles, flags, p_environment, p_cwd,
- &startup_info, &process_info);
- }
-
- /* Now we can close the pipe ends that are used by the child process */
-
- if (hInputRead)
- CloseHandle(hInputRead);
-
- if (hOutputWrite)
- CloseHandle(hOutputWrite);
-
- if (hErrorWrite)
- CloseHandle(hErrorWrite);
-
- if (bRet)
- {
- CloseHandle(process_info.hThread);
-
- oslProcessImpl* pProcImpl = reinterpret_cast<oslProcessImpl*>(
- rtl_allocateMemory(sizeof(oslProcessImpl)));
-
- if (pProcImpl != NULL)
- {
- pProcImpl->m_hProcess = process_info.hProcess;
- pProcImpl->m_IdProcess = process_info.dwProcessId;
-
- *pProcess = (oslProcess)pProcImpl;
-
- if (Options & osl_Process_WAIT)
- WaitForSingleObject(pProcImpl->m_hProcess, INFINITE);
-
- if (pProcessInputWrite)
- *pProcessInputWrite = osl_createFileHandleFromOSHandle(hInputWrite, osl_File_OpenFlag_Write);
-
- if (pProcessOutputRead)
- *pProcessOutputRead = osl_createFileHandleFromOSHandle(hOutputRead, osl_File_OpenFlag_Read);
-
- if (pProcessErrorRead)
- *pProcessErrorRead = osl_createFileHandleFromOSHandle(hErrorRead, osl_File_OpenFlag_Read);
-
- return osl_Process_E_None;
- }
- }
-
- /* if an error occurred we have to close the server side pipe ends too */
-
- if (hInputWrite)
- CloseHandle(hInputWrite);
-
- if (hOutputRead)
- CloseHandle(hOutputRead);
-
- if (hErrorRead)
- CloseHandle(hErrorRead);
-
- return osl_Process_E_Unknown;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/procimpl.h b/sal/osl/w32/procimpl.h
deleted file mode 100644
index 86a2ed04d..000000000
--- a/sal/osl/w32/procimpl.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_PROCIMPL_H_
-#define _OSL_PROCIMPL_H_
-
-#include <osl/process.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct _oslProcessImpl {
- HANDLE m_hProcess;
- DWORD m_IdProcess;
-} oslProcessImpl;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/profile.cxx b/sal/osl/w32/profile.cxx
deleted file mode 100644
index f06c41790..000000000
--- a/sal/osl/w32/profile.cxx
+++ /dev/null
@@ -1,2695 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
-*
-* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-*
-* Copyright 2000, 2010 Oracle and/or its affiliates.
-*
-* OpenOffice.org - a multi-platform office productivity suite
-*
-* This file is part of OpenOffice.org.
-*
-* OpenOffice.org is free software: you can redistribute it and/or modify
-* it under the terms of the GNU Lesser General Public License version 3
-* only, as published by the Free Software Foundation.
-*
-* OpenOffice.org is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU Lesser General Public License version 3 for more details
-* (a copy is included in the LICENSE file that accompanied this code).
-*
-* You should have received a copy of the GNU Lesser General Public License
-* version 3 along with OpenOffice.org. If not, see
-* <http://www.openoffice.org/license.html>
-* for a copy of the LGPLv3 License.
-*
-************************************************************************/
-
-#include "system.h"
-
-#include "file_url.h"
-#include "path_helper.hxx"
-
-#include <osl/diagnose.h>
-#include <osl/profile.h>
-#include <osl/process.h>
-#include <osl/file.h>
-#include <osl/util.h>
-#include <rtl/alloc.h>
-#include <sal/macros.h>
-#include <algorithm>
-using std::min;
-static inline void copy_ustr_n( void *dest, const void *source, size_t length ) { rtl_copyMemory(dest, source, length*sizeof(sal_Unicode)); }
-
-#define LINES_INI 32
-#define LINES_ADD 10
-#define SECTIONS_INI 5
-#define SECTIONS_ADD 3
-#define ENTRIES_INI 5
-#define ENTRIES_ADD 3
-
-
-#define STR_INI_EXTENSION L".ini"
-#define STR_INI_METAHOME "?~"
-#define STR_INI_METASYS "?$"
-#define STR_INI_METACFG "?^"
-#define STR_INI_METAINS "?#"
-
-#define STR_INI_BOOLYES "yes"
-#define STR_INI_BOOLON "on"
-#define STR_INI_BOOLONE "1"
-#define STR_INI_BOOLNO "no"
-#define STR_INI_BOOLOFF "off"
-#define STR_INI_BOOLZERO "0"
-
-#define FLG_USER 0x00FF
-#define FLG_AUTOOPEN 0x0100
-#define FLG_MODIFIED 0x0200
-
-#define SVERSION_LOCATION STR_INI_METACFG
-#define SVERSION_FALLBACK STR_INI_METASYS
-#define SVERSION_NAME "sversion"
-#define SVERSION_SECTION "Versions"
-#define SVERSION_SOFFICE "StarOffice"
-#define SVERSION_PROFILE "soffice.ini"
-#define SVERSION_OPTION "userid:"
-#define SVERSION_DIRS { "bin", "program" }
-#define SVERSION_USER "user"
-
-#define DEFAULT_PMODE (_S_IREAD | _S_IWRITE)
-
-#define _BUILD_STR_(n) # n
-#define BUILD_STR(n) _BUILD_STR_(n)
-
-
-/*#define DEBUG_OSL_PROFILE 1*/
-/*#define TRACE_OSL_PROFILE 1*/
-
-
-/*****************************************************************************/
-/* Data Type Definition */
-/*****************************************************************************/
-
-typedef FILETIME osl_TStamp;
-
-typedef enum _osl_TLockMode
-{
- un_lock, read_lock, write_lock
-} osl_TLockMode;
-
-typedef struct _osl_TFile
-{
- HANDLE m_Handle;
- sal_Char* m_pReadPtr;
- sal_Char m_ReadBuf[512];
-/* sal_Char* m_pWritePtr; */
-/* sal_Char m_WriteBuf[512]; */
- sal_Char* m_pWriteBuf;
- sal_uInt32 m_nWriteBufLen;
- sal_uInt32 m_nWriteBufFree;
-} osl_TFile;
-
-typedef struct _osl_TProfileEntry
-{
- sal_uInt32 m_Line;
- sal_uInt32 m_Offset;
- sal_uInt32 m_Len;
-} osl_TProfileEntry;
-
-typedef struct _osl_TProfileSection
-{
- sal_uInt32 m_Line;
- sal_uInt32 m_Offset;
- sal_uInt32 m_Len;
- sal_uInt32 m_NoEntries;
- sal_uInt32 m_MaxEntries;
- osl_TProfileEntry* m_Entries;
-} osl_TProfileSection;
-
-
-/*
- Profile-data structure hidden behind oslProfile:
-*/
-typedef struct _osl_TProfileImpl
-{
- sal_uInt32 m_Flags;
- osl_TFile* m_pFile;
- osl_TStamp m_Stamp;
- sal_uInt32 m_NoLines;
- sal_uInt32 m_MaxLines;
- sal_uInt32 m_NoSections;
- sal_uInt32 m_MaxSections;
- sal_Char** m_Lines;
- rtl_uString *m_strFileName;
- osl_TProfileSection* m_Sections;
-} osl_TProfileImpl;
-
-
-/*****************************************************************************/
-/* Static Module Function Declarations */
-/*****************************************************************************/
-
-static osl_TFile* openFileImpl(rtl_uString * strFileName, oslProfileOption ProfileFlags );
-static osl_TStamp closeFileImpl(osl_TFile* pFile);
-static sal_Bool lockFile(const osl_TFile* pFile, osl_TLockMode eMode);
-static sal_Bool rewindFile(osl_TFile* pFile, sal_Bool bTruncate);
-static osl_TStamp getFileStamp(osl_TFile* pFile);
-
-static sal_Bool getLine(osl_TFile* pFile, const sal_Char *pszLine, int MaxLen);
-static sal_Bool putLine(osl_TFile* pFile, const sal_Char *pszLine);
-static const sal_Char* stripBlanks(const sal_Char* String, sal_uInt32* pLen);
-static const sal_Char* addLine(osl_TProfileImpl* pProfile, const sal_Char* Line);
-static const sal_Char* insertLine(osl_TProfileImpl* pProfile, const sal_Char* Line, sal_uInt32 LineNo);
-static void removeLine(osl_TProfileImpl* pProfile, sal_uInt32 LineNo);
-static void setEntry(osl_TProfileImpl* pProfile, osl_TProfileSection* pSection,
- sal_uInt32 NoEntry, sal_uInt32 Line,
- const sal_Char* Entry, sal_uInt32 Len);
-static sal_Bool addEntry(osl_TProfileImpl* pProfile, osl_TProfileSection *pSection,
- int Line, const sal_Char* Entry, sal_uInt32 Len);
-static void removeEntry(osl_TProfileSection *pSection, sal_uInt32 NoEntry);
-static sal_Bool addSection(osl_TProfileImpl* pProfile, int Line, const sal_Char* Section, sal_uInt32 Len);
-static void removeSection(osl_TProfileImpl* pProfile, osl_TProfileSection *pSection);
-static osl_TProfileSection* findEntry(osl_TProfileImpl* pProfile, const sal_Char* Section,
- const sal_Char* Entry, sal_uInt32 *pNoEntry);
-static sal_Bool loadProfile(osl_TFile* pFile, osl_TProfileImpl* pProfile);
-static sal_Bool storeProfile(osl_TProfileImpl* pProfile, sal_Bool bCleanup);
-static osl_TProfileImpl* acquireProfile(oslProfile Profile, sal_Bool bWriteable);
-static sal_Bool releaseProfile(osl_TProfileImpl* pProfile);
-static sal_Bool lookupProfile(const sal_Unicode *strPath, const sal_Unicode *strFile, sal_Unicode *strProfile);
-
-static sal_Bool writeProfileImpl (osl_TFile* pFile);
-static osl_TFile* osl_openTmpProfileImpl(osl_TProfileImpl*);
-static sal_Bool osl_ProfileSwapProfileNames(osl_TProfileImpl*);
-static rtl_uString* osl_ProfileGenerateExtension(rtl_uString* ustrFileName, rtl_uString* ustrExtension);
-
-static sal_Bool SAL_CALL osl_getProfileName(rtl_uString* strPath, rtl_uString* strName, rtl_uString** strProfileName);
-
-/*****************************************************************************/
-/* Exported Module Functions */
-/*****************************************************************************/
-
-oslProfile SAL_CALL osl_openProfile(rtl_uString *strProfileName, sal_uInt32 Flags)
-{
- osl_TFile* pFile = NULL;
- osl_TProfileImpl* pProfile;
- rtl_uString *FileName=NULL;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_openProfile\n");
-#endif
- OSL_VERIFY(strProfileName);
-
- if (rtl_uString_getLength(strProfileName) == 0 )
- {
- OSL_VERIFY(osl_getProfileName(NULL, NULL, &FileName));
- }
- else
- {
- rtl_uString_assign(&FileName, strProfileName);
- }
-
-
- osl_getSystemPathFromFileURL(FileName, &FileName);
-
-
-#ifdef DEBUG_OSL_PROFILE
- Flags=osl_Profile_FLUSHWRITE;
-
- // OSL_TRACE("opening '%s'\n",FileName);
- if ( Flags == osl_Profile_DEFAULT )
- {
- OSL_TRACE("with osl_Profile_DEFAULT \n");
- }
- if ( Flags & osl_Profile_SYSTEM )
- {
- OSL_TRACE("with osl_Profile_SYSTEM \n");
- }
- if ( Flags & osl_Profile_READLOCK )
- {
- OSL_TRACE("with osl_Profile_READLOCK \n");
- }
- if ( Flags & osl_Profile_WRITELOCK )
- {
- OSL_TRACE("with osl_Profile_WRITELOCK \n");
- }
-/* if ( Flags & osl_Profile_READWRITE ) */
-/* { */
-/* OSL_TRACE("with osl_Profile_READWRITE \n"); */
-/* } */
- if ( Flags & osl_Profile_FLUSHWRITE )
- {
- OSL_TRACE("with osl_Profile_FLUSHWRITE \n");
- }
-#endif
-
- if ( (! (Flags & osl_Profile_SYSTEM)) && ( (pFile = openFileImpl(FileName, Flags) ) == NULL ) )
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_openProfile [not opened]\n");
-#endif
- if( FileName)
- rtl_uString_release( FileName);
-
- return (NULL);
- }
-
-
- pProfile = (osl_TProfileImpl*)calloc(1, sizeof(osl_TProfileImpl));
-
-
- pProfile->m_Flags = Flags & FLG_USER;
- osl_getSystemPathFromFileURL(strProfileName, &pProfile->m_strFileName);
-// rtl_uString_assign(&pProfile->m_strFileName, strProfileName);
-
- if (Flags & (osl_Profile_READLOCK | osl_Profile_WRITELOCK | osl_Profile_FLUSHWRITE ))
- pProfile->m_pFile = pFile;
-
- pProfile->m_Stamp = getFileStamp(pFile);
-
- loadProfile(pFile, pProfile);
-
- if (pProfile->m_pFile == NULL)
- closeFileImpl(pFile);
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_openProfile [ok]\n");
-#endif
- if( FileName)
- rtl_uString_release( FileName);
-
- return (pProfile);
-}
-
-sal_Bool SAL_CALL osl_closeProfile(oslProfile Profile)
-{
- osl_TProfileImpl* pProfile = (osl_TProfileImpl*)Profile;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_closeProfile\n");
-#endif
-
- if ( Profile == 0 )
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_closeProfile [profile==0]\n");
-#endif
- return sal_False;
- }
-
- if (! (pProfile->m_Flags & osl_Profile_SYSTEM))
- {
- pProfile = acquireProfile(Profile,sal_True);
-
- if ( pProfile != 0 )
- {
- if ( !( pProfile->m_Flags & osl_Profile_READLOCK ) && ( pProfile->m_Flags & FLG_MODIFIED ) )
- {
-/* if (pProfile->m_pFile == NULL) */
-/* pProfile->m_pFile = openFileImpl(pProfile->m_Filename, sal_True); */
-
- storeProfile(pProfile, sal_False);
- }
- }
- else
- {
- pProfile = acquireProfile(Profile,sal_False);
- }
-
- if ( pProfile == 0 )
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_closeProfile [pProfile==0]\n");
-#endif
- return sal_False;
- }
-
- if (pProfile->m_pFile != NULL)
- closeFileImpl(pProfile->m_pFile);
- }
-
- pProfile->m_pFile = NULL;
- rtl_uString_release(pProfile->m_strFileName);
- pProfile->m_strFileName = NULL;
-
- /* release whole profile data types memory */
- if ( pProfile->m_NoLines > 0)
- {
- unsigned int index=0;
- if ( pProfile->m_Lines != 0 )
- {
- for ( index = 0 ; index < pProfile->m_NoLines ; ++index)
- {
- if ( pProfile->m_Lines[index] != 0 )
- {
- free(pProfile->m_Lines[index]);
- }
- }
- free(pProfile->m_Lines);
- }
- if ( pProfile->m_Sections != 0 )
- {
- /*osl_TProfileSection* pSections=pProfile->m_Sections;*/
- for ( index = 0 ; index < pProfile->m_NoSections ; ++index )
- {
- if ( pProfile->m_Sections[index].m_Entries != 0 )
- {
- free(pProfile->m_Sections[index].m_Entries);
- }
- }
- free(pProfile->m_Sections);
- }
-
- }
- free(pProfile);
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_closeProfile [ok]\n");
-#endif
- return (sal_True);
-}
-
-
-sal_Bool SAL_CALL osl_flushProfile(oslProfile Profile)
-{
- osl_TProfileImpl* pProfile = (osl_TProfileImpl*) Profile;
- osl_TFile* pFile;
- sal_Bool bRet = sal_False;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_flushProfile()\n");
-#endif
-
- if ( pProfile == 0 )
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_flushProfile() [pProfile == 0]\n");
-#endif
- return sal_False;
- }
-
- pFile = pProfile->m_pFile;
- if ( !( pFile != 0 && pFile->m_Handle >= 0 ) )
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_flushProfile() [invalid file]\n");
-#endif
- return sal_False;
- }
-
- if ( pProfile->m_Flags & FLG_MODIFIED )
- {
-#ifdef DEBUG_OSL_PROFILE
- OSL_TRACE("swapping to storeprofile\n");
-#endif
- bRet = storeProfile(pProfile,sal_False);
- }
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_flushProfile() [ok]\n");
-#endif
- return bRet;
-}
-
-static sal_Bool writeProfileImpl(osl_TFile* pFile)
-{
- DWORD BytesWritten=0;
- BOOL bRet;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_writeProfileImpl()\n");
-#endif
-
- if ( !( pFile != 0 && pFile->m_Handle != INVALID_HANDLE_VALUE ) || ( pFile->m_pWriteBuf == 0 ) )
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_writeProfileImpl() [invalid args]\n");
-#endif
- return sal_False;
- }
-
-#ifdef DEBUG_OSL_PROFILE
-/* OSL_TRACE("File Buffer in writeProfileImpl '%s' size == '%i' '%i'(%i)\n",
- pFile->m_pWriteBuf,pFile->m_nWriteBufLen,strlen(pFile->m_pWriteBuf),pFile->m_nWriteBufLen - pFile->m_nWriteBufFree);*/
-#endif
-
- bRet=WriteFile(pFile->m_Handle, pFile->m_pWriteBuf, pFile->m_nWriteBufLen - pFile->m_nWriteBufFree,&BytesWritten,NULL);
-
- if ( bRet == 0 || BytesWritten <= 0 )
- {
- OSL_ENSURE(bRet,"WriteFile failed!!!");
-
- OSL_TRACE("write failed '%s'\n",strerror(errno));
-
-/* OSL_TRACE("Out osl_writeProfileImpl() [write '%s']\n",strerror(errno));*/
- return (sal_False);
- }
-
- free(pFile->m_pWriteBuf);
- pFile->m_pWriteBuf=0;
- pFile->m_nWriteBufLen=0;
- pFile->m_nWriteBufFree=0;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_writeProfileImpl() [ok]\n");
-#endif
- return sal_True;
-}
-
-
-sal_Bool SAL_CALL osl_readProfileString(oslProfile Profile,
- const sal_Char* pszSection, const sal_Char* pszEntry,
- sal_Char* pszString, sal_uInt32 MaxLen,
- const sal_Char* pszDefault)
-{
- sal_uInt32 NoEntry;
- const sal_Char* pStr = 0;
- osl_TProfileSection* pSec;
- osl_TProfileImpl* pProfile = 0;
-
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_readProfileString\n");
-#endif
-
- pProfile = acquireProfile(Profile, sal_False);
-
- if (pProfile == NULL)
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_readProfileString [pProfile==0]\n");
-#endif
-
-
- return (sal_False);
- }
-
-
- if (! (pProfile->m_Flags & osl_Profile_SYSTEM))
- {
- if (((pSec = findEntry(pProfile, pszSection, pszEntry, &NoEntry)) != NULL) &&
- (NoEntry < pSec->m_NoEntries) &&
- ((pStr = strchr(pProfile->m_Lines[pSec->m_Entries[NoEntry].m_Line],
- '=')) != NULL))
- pStr++;
- else
- pStr = pszDefault;
-
- if ( pStr != 0 )
- {
- pStr = stripBlanks(pStr, NULL);
- MaxLen = (MaxLen - 1 < strlen(pStr)) ? (MaxLen - 1) : strlen(pStr);
- pStr = stripBlanks(pStr, &MaxLen);
- strncpy(pszString, pStr, MaxLen);
- pszString[MaxLen] = '\0';
- }
- }
- else
- {
- ::osl::LongPathBuffer< sal_Char > aFileName( MAX_LONG_PATH );
-
- WideCharToMultiByte(CP_ACP,0, reinterpret_cast<LPCWSTR>(pProfile->m_strFileName->buffer), -1, aFileName, aFileName.getBufSizeInSymbols(), NULL, NULL);
- GetPrivateProfileString(pszSection, pszEntry, pszDefault, pszString, MaxLen, aFileName);
- }
-
- releaseProfile(pProfile);
-
- if ( pStr == 0 )
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_readProfileString [pStr==0]\n");
-#endif
-
-
- return (sal_False);
- }
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_readProfileString [ok]\n");
-#endif
-
-
-
-
- return (sal_True);
-}
-
-
-sal_Bool SAL_CALL osl_readProfileBool(oslProfile Profile,
- const sal_Char* pszSection, const sal_Char* pszEntry,
- sal_Bool Default)
-{
- sal_Char Line[32];
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_readProfileBool\n");
-#endif
-
- if (osl_readProfileString(Profile, pszSection, pszEntry, Line, sizeof(Line), ""))
- {
- if ((stricmp(Line, STR_INI_BOOLYES) == 0) ||
- (stricmp(Line, STR_INI_BOOLON) == 0) ||
- (stricmp(Line, STR_INI_BOOLONE) == 0))
- Default = sal_True;
- else
- if ((stricmp(Line, STR_INI_BOOLNO) == 0) ||
- (stricmp(Line, STR_INI_BOOLOFF) == 0) ||
- (stricmp(Line, STR_INI_BOOLZERO) == 0))
- Default = sal_False;
- }
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_readProfileBool [ok]\n");
-#endif
-
- return (Default);
-}
-
-
-sal_uInt32 SAL_CALL osl_readProfileIdent(oslProfile Profile,
- const sal_Char* pszSection, const sal_Char* pszEntry,
- sal_uInt32 FirstId, const sal_Char* Strings[],
- sal_uInt32 Default)
-{
- sal_uInt32 i;
- sal_Char Line[256];
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_readProfileIdent\n");
-#endif
-
- if (osl_readProfileString(Profile, pszSection, pszEntry, Line, sizeof(Line), ""))
- {
- i = 0;
- while (Strings[i] != NULL)
- {
- if (stricmp(Line, Strings[i]) == 0)
- {
- Default = i + FirstId;
- break;
- }
- i++;
- }
- }
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_readProfileIdent [ok]\n");
-#endif
- return (Default);
-}
-
-sal_Bool SAL_CALL osl_writeProfileString(oslProfile Profile,
- const sal_Char* pszSection, const sal_Char* pszEntry,
- const sal_Char* pszString)
-{
- sal_uInt32 i;
- sal_Bool bRet = sal_False;
- sal_uInt32 NoEntry;
- const sal_Char* pStr;
- sal_Char Line[4096];
- osl_TProfileSection* pSec;
- osl_TProfileImpl* pProfile = 0;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_writeProfileString\n");
-#endif
-
- pProfile = acquireProfile(Profile, sal_True);
-
- if (pProfile == NULL)
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_writeProfileString [pProfile==0]\n");
-#endif
- return (sal_False);
- }
-
-
- if (! (pProfile->m_Flags & osl_Profile_SYSTEM))
- {
- if ((pSec = findEntry(pProfile, pszSection, pszEntry, &NoEntry)) == NULL)
- {
- Line[0] = '\0';
- addLine(pProfile, Line);
-
- Line[0] = '[';
- strcpy(&Line[1], pszSection);
- Line[1 + strlen(pszSection)] = ']';
- Line[2 + strlen(pszSection)] = '\0';
-
- if (((pStr = addLine(pProfile, Line)) == NULL) ||
- (! addSection(pProfile, pProfile->m_NoLines - 1, &pStr[1], strlen(pszSection))))
- {
- releaseProfile(pProfile);
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_writeProfileString [not added]\n");
-#endif
- return (sal_False);
- }
-
- pSec = &pProfile->m_Sections[pProfile->m_NoSections - 1];
- NoEntry = pSec->m_NoEntries;
- }
-
- Line[0] = '\0';
- strcpy(&Line[0], pszEntry);
- Line[0 + strlen(pszEntry)] = '=';
- strcpy(&Line[1 + strlen(pszEntry)], pszString);
-
- if (NoEntry >= pSec->m_NoEntries)
- {
- if (pSec->m_NoEntries > 0)
- i = pSec->m_Entries[pSec->m_NoEntries - 1].m_Line + 1;
- else
- i = pSec->m_Line + 1;
-
- if (((pStr = insertLine(pProfile, Line, i)) == NULL) ||
- (! addEntry(pProfile, pSec, i, pStr, strlen(pszEntry))))
- {
- releaseProfile(pProfile);
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_writeProfileString [not inserted]\n");
-#endif
- return (sal_False);
- }
-
- pProfile->m_Flags |= FLG_MODIFIED;
- }
- else
- {
- i = pSec->m_Entries[NoEntry].m_Line;
- free(pProfile->m_Lines[i]);
- pProfile->m_Lines[i] = strdup(Line);
- setEntry(pProfile, pSec, NoEntry, i, pProfile->m_Lines[i], strlen(pszEntry));
-
- pProfile->m_Flags |= FLG_MODIFIED;
- }
- }
- else
- {
- ::osl::LongPathBuffer< sal_Char > aFileName( MAX_LONG_PATH );
-
- WideCharToMultiByte(CP_ACP,0, reinterpret_cast<LPCWSTR>(pProfile->m_strFileName->buffer), -1, aFileName, aFileName.getBufSizeInSymbols(), NULL, NULL);
- WritePrivateProfileString(pszSection, pszEntry, pszString, aFileName);
- }
-
- bRet = releaseProfile(pProfile);
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_writeProfileString [ok]\n");
-#endif
- return bRet;
-}
-
-
-sal_Bool SAL_CALL osl_writeProfileBool(oslProfile Profile,
- const sal_Char* pszSection, const sal_Char* pszEntry,
- sal_Bool Value)
-{
- sal_Bool bRet = sal_False;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_writeProfileBool\n");
-#endif
-
- if (Value)
- bRet=osl_writeProfileString(Profile, pszSection, pszEntry, STR_INI_BOOLONE);
- else
- bRet=osl_writeProfileString(Profile, pszSection, pszEntry, STR_INI_BOOLZERO);
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_writeProfileBool [ok]\n");
-#endif
-
- return bRet;
-}
-
-
-sal_Bool SAL_CALL osl_writeProfileIdent(oslProfile Profile,
- const sal_Char* pszSection, const sal_Char* pszEntry,
- sal_uInt32 FirstId, const sal_Char* Strings[],
- sal_uInt32 Value)
-{
- int i, n;
- sal_Bool bRet = sal_False;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_writeProfileIdent\n");
-#endif
-
- for (n = 0; Strings[n] != NULL; n++);
-
- if ((i = Value - FirstId) >= n)
- bRet=sal_False;
- else
- bRet=osl_writeProfileString(Profile, pszSection, pszEntry, Strings[i]);
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_writeProfileIdent\n");
-#endif
- return bRet;
-}
-
-
-sal_Bool SAL_CALL osl_removeProfileEntry(oslProfile Profile,
- const sal_Char *pszSection, const sal_Char *pszEntry)
-{
- sal_uInt32 NoEntry;
- osl_TProfileSection* pSec;
- osl_TProfileImpl* pProfile = 0;
- sal_Bool bRet = sal_False;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_removeProfileEntry\n");
-#endif
-
- pProfile = acquireProfile(Profile, sal_True);
-
- if (pProfile == NULL)
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_removeProfileEntry [pProfile==0]\n");
-#endif
-
-
- return (sal_False);
- }
-
-
- if (! (pProfile->m_Flags & osl_Profile_SYSTEM))
- {
- if (((pSec = findEntry(pProfile, pszSection, pszEntry, &NoEntry)) != NULL) &&
- (NoEntry < pSec->m_NoEntries))
- {
- removeLine(pProfile, pSec->m_Entries[NoEntry].m_Line);
- removeEntry(pSec, NoEntry);
- if (pSec->m_NoEntries == 0)
- {
- removeLine(pProfile, pSec->m_Line);
-
- /* remove any empty separation line */
- if ((pSec->m_Line > 0) && (pProfile->m_Lines[pSec->m_Line - 1][0] == '\0'))
- removeLine(pProfile, pSec->m_Line - 1);
-
- removeSection(pProfile, pSec);
- }
-
- pProfile->m_Flags |= FLG_MODIFIED;
- }
- }
- else
- {
- ::osl::LongPathBuffer< sal_Char > aFileName( MAX_LONG_PATH );
-
- WideCharToMultiByte(CP_ACP,0, reinterpret_cast<LPCWSTR>(pProfile->m_strFileName->buffer), -1, aFileName, aFileName.getBufSizeInSymbols(), NULL, NULL);
- WritePrivateProfileString(pszSection, pszEntry, NULL, aFileName);
- }
-
- bRet = releaseProfile(pProfile);
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_removeProfileEntry [ok]\n");
-#endif
- return bRet;
-}
-
-
-sal_uInt32 SAL_CALL osl_getProfileSectionEntries(oslProfile Profile, const sal_Char *pszSection,
- sal_Char* pszBuffer, sal_uInt32 MaxLen)
-{
- sal_uInt32 i, n = 0;
- sal_uInt32 NoEntry;
- osl_TProfileSection* pSec;
- osl_TProfileImpl* pProfile = 0;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In osl_getProfileSectionEntries\n");
-#endif
-
- pProfile = acquireProfile(Profile, sal_False);
-
- if (pProfile == NULL)
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_getProfileSectionEntries [pProfile=0]\n");
-#endif
-
-
- return (0);
- }
-
-
- if (! (pProfile->m_Flags & osl_Profile_SYSTEM))
- {
- if ((pSec = findEntry(pProfile, pszSection, "", &NoEntry)) != NULL)
- {
- if (MaxLen != 0)
- {
- for (i = 0; i < pSec->m_NoEntries; i++)
- {
- if ((n + pSec->m_Entries[i].m_Len + 1) < MaxLen)
- {
- strncpy(&pszBuffer[n], &pProfile->m_Lines[pSec->m_Entries[i].m_Line]
- [pSec->m_Entries[i].m_Offset], pSec->m_Entries[i].m_Len);
- n += pSec->m_Entries[i].m_Len;
- pszBuffer[n++] = '\0';
- }
- else
- break;
-
- }
-
- pszBuffer[n++] = '\0';
- }
- else
- {
- for (i = 0; i < pSec->m_NoEntries; i++)
- n += pSec->m_Entries[i].m_Len + 1;
-
- n += 1;
- }
- }
- else
- n = 0;
- }
- else
- {
- ::osl::LongPathBuffer< sal_Char > aFileName( MAX_LONG_PATH );
-
- WideCharToMultiByte(CP_ACP,0, reinterpret_cast<LPCWSTR>(pProfile->m_strFileName->buffer), -1, aFileName, aFileName.getBufSizeInSymbols(), NULL, NULL);
- n = GetPrivateProfileString(pszSection, NULL, NULL, pszBuffer, MaxLen, aFileName);
- }
-
- releaseProfile(pProfile);
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out osl_getProfileSectionEntries [ok]\n");
-#endif
-
- return (n);
-}
-
-
-sal_Bool SAL_CALL osl_getProfileName(rtl_uString* strPath, rtl_uString* strName, rtl_uString** strProfileName)
-{
- sal_Bool bFailed;
- ::osl::LongPathBuffer< sal_Unicode > aFile( MAX_LONG_PATH );
- ::osl::LongPathBuffer< sal_Unicode > aPath( MAX_LONG_PATH );
- sal_uInt32 nFileLen = 0;
- sal_uInt32 nPathLen = 0;
-
- rtl_uString * strTmp = NULL;
- oslFileError nError;
-
- /* build file name */
- if (strName && strName->length)
- {
- if( ::sal::static_int_cast< sal_uInt32 >( strName->length ) >= aFile.getBufSizeInSymbols() )
- return sal_False;
-
- copy_ustr_n( aFile, strName->buffer, strName->length+1);
- nFileLen = strName->length;
-
- if (rtl_ustr_indexOfChar( aFile, L'.' ) == -1)
- {
- if (nFileLen + wcslen(STR_INI_EXTENSION) >= aFile.getBufSizeInSymbols())
- return sal_False;
-
- /* add default extension */
- copy_ustr_n( aFile + nFileLen, STR_INI_EXTENSION, wcslen(STR_INI_EXTENSION)+1 );
- nFileLen += wcslen(STR_INI_EXTENSION);
- }
- }
- else
- {
- rtl_uString *strProgName = NULL;
- sal_Unicode *pProgName;
- sal_Int32 nOffset = 0;
- sal_Int32 nLen;
- sal_Int32 nPos;
-
- if (osl_getExecutableFile(&strProgName) != osl_Process_E_None)
- return sal_False;
-
- /* remove path and extension from filename */
- pProgName = strProgName->buffer;
- nLen = strProgName->length ;
-
- if ((nPos = rtl_ustr_lastIndexOfChar( pProgName, L'/' )) != -1)
- nOffset = nPos + 1;
- else if ((nPos = rtl_ustr_lastIndexOfChar( pProgName, L':' )) != -1)
- nOffset = nPos + 1;
-
- if ((nPos = rtl_ustr_lastIndexOfChar( pProgName, L'.' )) != -1 )
- nLen -= 4;
-
- if ((nFileLen = nLen - nOffset) >= aFile.getBufSizeInSymbols())
- return sal_False;
-
- copy_ustr_n(aFile, pProgName + nOffset, nFileLen);
-
- if (nFileLen + wcslen(STR_INI_EXTENSION) >= aFile.getBufSizeInSymbols())
- return sal_False;
-
- /* add default extension */
- copy_ustr_n(aFile + nFileLen, STR_INI_EXTENSION, wcslen(STR_INI_EXTENSION)+1);
- nFileLen += wcslen(STR_INI_EXTENSION);
-
- rtl_uString_release( strProgName );
- }
-
- if (aFile[0] == 0)
- return sal_False;
-
- /* build directory path */
- if (strPath && strPath->length)
- {
- sal_Unicode *pPath = rtl_uString_getStr(strPath);
- sal_Int32 nLen = rtl_uString_getLength(strPath);
-
- if ((rtl_ustr_ascii_compare_WithLength(pPath, RTL_CONSTASCII_LENGTH(STR_INI_METAHOME) , STR_INI_METAHOME) == 0) &&
- ((nLen == RTL_CONSTASCII_LENGTH(STR_INI_METAHOME)) || (pPath[RTL_CONSTASCII_LENGTH(STR_INI_METAHOME)] == '/')))
- {
- rtl_uString * strHome = NULL;
- oslSecurity security = osl_getCurrentSecurity();
-
- bFailed = ! osl_getHomeDir(security, &strHome);
- osl_freeSecurityHandle(security);
-
- if (bFailed) return (sal_False);
-
- if ( ::sal::static_int_cast< sal_uInt32 >( strHome->length ) >= aPath.getBufSizeInSymbols())
- return sal_False;
-
- copy_ustr_n( aPath, strHome->buffer, strHome->length+1);
- nPathLen = strHome->length;
-
- if (nLen > RTL_CONSTASCII_LENGTH(STR_INI_METAHOME))
- {
- pPath += RTL_CONSTASCII_LENGTH(STR_INI_METAHOME);
- nLen -= RTL_CONSTASCII_LENGTH(STR_INI_METAHOME);
-
- if (nLen + nPathLen >= aPath.getBufSizeInSymbols())
- return sal_False;
-
- copy_ustr_n(aPath + nPathLen, pPath, nLen+1);
- nPathLen += nLen;
- }
-
- rtl_uString_release(strHome);
- }
-
- else if ((rtl_ustr_ascii_compare_WithLength(pPath, RTL_CONSTASCII_LENGTH(STR_INI_METACFG), STR_INI_METACFG) == 0) &&
- ((nLen == RTL_CONSTASCII_LENGTH(STR_INI_METACFG)) || (pPath[RTL_CONSTASCII_LENGTH(STR_INI_METACFG)] == '/')))
- {
- rtl_uString * strConfig = NULL;
- oslSecurity security = osl_getCurrentSecurity();
-
- bFailed = ! osl_getConfigDir(security, &strConfig);
- osl_freeSecurityHandle(security);
-
- if (bFailed) return (sal_False);
-
- if ( ::sal::static_int_cast< sal_uInt32 >( strConfig->length ) >= aPath.getBufSizeInSymbols())
- return sal_False;
-
- copy_ustr_n( aPath, strConfig->buffer, strConfig->length+1 );
- nPathLen = strConfig->length;
-
- if (nLen > RTL_CONSTASCII_LENGTH(STR_INI_METACFG))
- {
- pPath += RTL_CONSTASCII_LENGTH(STR_INI_METACFG);
- nLen -= RTL_CONSTASCII_LENGTH(STR_INI_METACFG);
-
- if (nLen + nPathLen >= aPath.getBufSizeInSymbols())
- return sal_False;
-
- copy_ustr_n(aPath + nPathLen, pPath, nLen+1);
- nPathLen += nLen;
- }
-
- rtl_uString_release(strConfig);
- }
-
- else if ((rtl_ustr_ascii_compare_WithLength(pPath, RTL_CONSTASCII_LENGTH(STR_INI_METASYS), STR_INI_METASYS) == 0) &&
- ((nLen == RTL_CONSTASCII_LENGTH(STR_INI_METASYS)) || (pPath[RTL_CONSTASCII_LENGTH(STR_INI_METASYS)] == '/')))
- {
- if (((nPathLen = GetWindowsDirectoryW(::osl::mingw_reinterpret_cast<LPWSTR>(aPath), aPath.getBufSizeInSymbols())) == 0) || (nPathLen >= aPath.getBufSizeInSymbols()))
- return (sal_False);
-
- if (nLen > RTL_CONSTASCII_LENGTH(STR_INI_METASYS))
- {
- pPath += RTL_CONSTASCII_LENGTH(STR_INI_METASYS);
- nLen -= RTL_CONSTASCII_LENGTH(STR_INI_METASYS);
-
- if (nLen + nPathLen >= aPath.getBufSizeInSymbols())
- return sal_False;
-
- copy_ustr_n(aPath + nPathLen, pPath, nLen+1);
- nPathLen += nLen;
- }
- }
-
- else if ((rtl_ustr_ascii_compare_WithLength(pPath, RTL_CONSTASCII_LENGTH(STR_INI_METAINS), STR_INI_METAINS) == 0) &&
- ((nLen == RTL_CONSTASCII_LENGTH(STR_INI_METAINS)) || (pPath[RTL_CONSTASCII_LENGTH(STR_INI_METAINS)] == '/') ||
- (pPath[RTL_CONSTASCII_LENGTH(STR_INI_METAINS)] == '"') ) )
- {
- if (! lookupProfile(pPath + RTL_CONSTASCII_LENGTH(STR_INI_METAINS), aFile, aPath))
- return (sal_False);
-
- nPathLen = rtl_ustr_getLength(aPath);
- }
-
- else if( ::sal::static_int_cast< sal_uInt32 >( nLen ) < aPath.getBufSizeInSymbols())
- {
- copy_ustr_n(aPath, pPath, nLen+1);
- nPathLen = rtl_ustr_getLength(aPath);
- }
- else
- return sal_False;
- }
- else
- {
- rtl_uString * strConfigDir = NULL;
- oslSecurity security = osl_getCurrentSecurity();
-
- bFailed = ! osl_getConfigDir(security, &strConfigDir);
- osl_freeSecurityHandle(security);
-
- if (bFailed) return (sal_False);
- if ( ::sal::static_int_cast< sal_uInt32 >( strConfigDir->length ) >= aPath.getBufSizeInSymbols() )
- return sal_False;
-
- copy_ustr_n(aPath, strConfigDir->buffer, strConfigDir->length+1);
- nPathLen = strConfigDir->length;
- }
-
- if (nPathLen && (aPath[nPathLen - 1] != L'/') && (aPath[nPathLen - 1] != L'\\'))
- {
- aPath[nPathLen++] = L'\\';
- aPath[nPathLen] = 0;
- }
-
- if (nPathLen + nFileLen >= aPath.getBufSizeInSymbols())
- return sal_False;
-
- /* append file name */
- copy_ustr_n(aPath + nPathLen, aFile, nFileLen+1);
- nPathLen += nFileLen;
-
- /* copy filename */
- rtl_uString_newFromStr_WithLength(&strTmp, aPath, nPathLen);
- nError = osl_getFileURLFromSystemPath(strTmp, strProfileName);
- rtl_uString_release(strTmp);
-
- return (sal_Bool) (nError == osl_File_E_None);
-}
-
-
-sal_uInt32 SAL_CALL osl_getProfileSections(oslProfile Profile, sal_Char* pszBuffer, sal_uInt32 MaxLen)
-{
- sal_uInt32 i, n = 0;
- osl_TProfileSection* pSec;
- osl_TProfileImpl* pProfile = acquireProfile(Profile, sal_False);
-
- if (pProfile == NULL)
- return (0);
-
- if (! (pProfile->m_Flags & osl_Profile_SYSTEM))
- {
- if (MaxLen != 0)
- {
- for (i = 0; i < pProfile->m_NoSections; i++)
- {
- pSec = &pProfile->m_Sections[i];
-
- if ((n + pSec->m_Len + 1) < MaxLen)
- {
- strncpy(&pszBuffer[n], &pProfile->m_Lines[pSec->m_Line][pSec->m_Offset],
- pSec->m_Len);
- n += pSec->m_Len;
- pszBuffer[n++] = '\0';
- }
- else
- break;
- }
-
- pszBuffer[n++] = '\0';
- }
- else
- {
- for (i = 0; i < pProfile->m_NoSections; i++)
- n += pProfile->m_Sections[i].m_Len + 1;
-
- n += 1;
- }
- }
- else
- {
- ::osl::LongPathBuffer< sal_Char > aFileName( MAX_LONG_PATH );
-
- WideCharToMultiByte(CP_ACP,0, reinterpret_cast<LPCWSTR>(pProfile->m_strFileName->buffer), -1, aFileName, aFileName.getBufSizeInSymbols(), NULL, NULL);
- n = GetPrivateProfileSectionNames(pszBuffer, MaxLen, aFileName);
- }
-
- releaseProfile(pProfile);
-
- return (n);
-}
-
-
-
-
-/*****************************************************************************/
-/* Static Module Functions */
-/*****************************************************************************/
-
-static osl_TStamp getFileStamp(osl_TFile* pFile)
-{
- FILETIME FileTime;
-
- if ((pFile->m_Handle == INVALID_HANDLE_VALUE) ||
- (! GetFileTime(pFile->m_Handle, NULL, NULL, &FileTime)))
- memset(&FileTime, 0, sizeof(FileTime));
-
- return (FileTime);
-}
-
-
-
-static sal_Bool lockFile(const osl_TFile* pFile, osl_TLockMode eMode)
-{
- sal_Bool status = sal_False;
- OVERLAPPED Overlapped;
-
- if (pFile->m_Handle == INVALID_HANDLE_VALUE)
- return (sal_False);
-
- memset(&Overlapped, 0, sizeof(Overlapped));
-
- switch (eMode)
- {
- case un_lock:
- status = (sal_Bool) UnlockFileEx(
- pFile->m_Handle, 0, 0xFFFFFFFF, 0, &Overlapped);
- break;
-
- case read_lock:
- status = (sal_Bool) LockFileEx(
- pFile->m_Handle, 0, 0, 0xFFFFFFFF, 0, &Overlapped);
- break;
-
- case write_lock:
- status = (sal_Bool) LockFileEx(
- pFile->m_Handle, LOCKFILE_EXCLUSIVE_LOCK, 0, 0xFFFFFFFF, 0,
- &Overlapped);
- break;
- }
-
- return (status);
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-static osl_TFile* openFileImpl(rtl_uString * strFileName, oslProfileOption ProfileFlags )
-{
- osl_TFile* pFile = reinterpret_cast< osl_TFile*>( calloc( 1, sizeof(osl_TFile) ) );
- sal_Bool bWriteable = sal_False;
-
-/* if ( ProfileFlags & ( osl_Profile_WRITELOCK | osl_Profile_FLUSHWRITE | osl_Profile_READWRITE ) )*/
- if ( ProfileFlags & ( osl_Profile_WRITELOCK | osl_Profile_FLUSHWRITE ) )
- {
-#ifdef DEBUG_OSL_PROFILE
- OSL_TRACE("setting bWriteable to TRUE\n");
-#endif
- bWriteable=sal_True;
- }
-
- if (! bWriteable)
- {
- pFile->m_Handle = CreateFileW( reinterpret_cast<LPCWSTR>(rtl_uString_getStr( strFileName )), GENERIC_READ,
- FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
- OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
-
- /* mfe: argghh!!! do not check if the file could be openend */
- /* default mode expects it that way!!! */
- }
- else
- {
-#ifdef DEBUG_OSL_PROFILE
- OSL_TRACE("opening '%s' read/write\n",pszFilename);
-#endif
-
- if ((pFile->m_Handle = CreateFileW( reinterpret_cast<LPCWSTR>(rtl_uString_getStr( strFileName )), GENERIC_READ | GENERIC_WRITE,
- FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
- OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL))
- == INVALID_HANDLE_VALUE)
- {
- free(pFile);
- return (NULL);
- }
- }
-
- pFile->m_pWriteBuf=0;
- pFile->m_nWriteBufFree=0;
- pFile->m_nWriteBufLen=0;
-
- if ( ProfileFlags & (osl_Profile_WRITELOCK | osl_Profile_READLOCK ) )
- {
-#ifdef DEBUG_OSL_PROFILE
- OSL_TRACE("locking '%s' file\n",pszFilename);
-#endif
-
- lockFile(pFile, bWriteable ? write_lock : read_lock);
- }
-
- /* mfe: new WriteBuf obsolete */
-/* pFile->m_pWritePtr = pFile->m_Buf;*/
-/* pFile->m_pReadPtr = pFile->m_ReadBuf + sizeof(pFile->m_ReadBuf);*/
-
- return (pFile);
-}
-
-
-
-
-
-
-
-
-
-static osl_TStamp closeFileImpl(osl_TFile* pFile)
-{
- osl_TStamp stamp = {0, 0};
-
- if ( pFile == 0 )
- {
- return stamp;
- }
-
- if (pFile->m_Handle != INVALID_HANDLE_VALUE)
- {
- /* mfe: new WriteBuf obsolete */
- /* we just closing the file here, DO NOT write, it has to be handled in higher levels */
-/* if (pFile->m_pWritePtr > pFile->m_Buf)*/
-/* {*/
-/* DWORD Bytes;*/
-
-/* WriteFile(pFile->m_Handle, pFile->m_WriteBuf,*/
-/* pFile->m_pWritePtr - pFile->m_WriteBuf,*/
-/* &Bytes, NULL);*/
-/* }*/
-
- stamp = getFileStamp(pFile);
-
- lockFile(pFile, un_lock);
-
- CloseHandle(pFile->m_Handle);
- pFile->m_Handle = INVALID_HANDLE_VALUE;
- }
-
- if ( pFile->m_pWriteBuf != 0 )
- {
- free(pFile->m_pWriteBuf);
- }
-
- free(pFile);
-
- return(stamp);
-}
-
-
-
-
-
-
-
-
-static sal_Bool rewindFile(osl_TFile* pFile, sal_Bool bTruncate)
-{
- if (pFile->m_Handle != INVALID_HANDLE_VALUE)
- {
- /* mfe: new WriteBuf obsolete */
- /* we just closing the file here, DO NOT write, it has to be handled in higher levels */
-/* if (pFile->m_pWritePtr > pFile->m_WriteBuf)*/
-/* {*/
-/* DWORD Bytes;*/
-
-/* WriteFile(pFile->m_Handle, pFile->m_WriteBuf,*/
-/* pFile->m_pWritePtr - pFile->m_WriteBuf,*/
-/* &Bytes, NULL);*/
-
-/* pFile->m_pWritePtr = pFile->m_WriteBuf;*/
-/* }*/
-
- pFile->m_pReadPtr = pFile->m_ReadBuf + sizeof(pFile->m_ReadBuf);
-
- SetFilePointer(pFile->m_Handle, 0, NULL, FILE_BEGIN);
-
- if (bTruncate)
- SetEndOfFile(pFile->m_Handle);
- }
-
- return (sal_True);
-}
-
-
-
-
-
-
-
-
-
-
-static sal_Bool getLine(osl_TFile* pFile, const sal_Char *pszLine, int MaxLen)
-{
- DWORD Max;
- size_t Free, Bytes;
- sal_Char* pChr;
- sal_Char* pLine = (sal_Char *)pszLine;
-
- if (pFile->m_Handle == INVALID_HANDLE_VALUE)
- return (sal_False);
-
- MaxLen -= 1;
-
- do
- {
- Bytes = sizeof(pFile->m_ReadBuf) - (pFile->m_pReadPtr - pFile->m_ReadBuf);
-
- if (Bytes <= 1)
- {
- /* refill buffer */
- memcpy(pFile->m_ReadBuf, pFile->m_pReadPtr, Bytes);
- pFile->m_pReadPtr = pFile->m_ReadBuf;
-
- Free = sizeof(pFile->m_ReadBuf) - Bytes;
-
- if (! ReadFile(pFile->m_Handle, &pFile->m_ReadBuf[Bytes], Free, &Max, NULL))
- {
- *pLine = '\0';
- return (sal_False);
- }
-
- if (Max < Free)
- {
- if ((Max == 0) && (pLine == pszLine))
- {
- *pLine = '\0';
- return (sal_False);
- }
-
- pFile->m_ReadBuf[Bytes + Max] = '\0';
- }
- }
-
- for (pChr = pFile->m_pReadPtr;
- (*pChr != '\n') && (*pChr != '\r') && (*pChr != '\0') &&
- (pChr < (pFile->m_ReadBuf + sizeof(pFile->m_ReadBuf) - 1));
- pChr++);
-
- Max = min(pChr - pFile->m_pReadPtr, MaxLen);
- memcpy(pLine, pFile->m_pReadPtr, Max);
- MaxLen -= Max;
- pLine += Max;
-
- if (pChr < (pFile->m_ReadBuf + sizeof(pFile->m_ReadBuf) - 1))
- {
- if (*pChr != '\0')
- {
- if ((pChr[0] == '\r') && (pChr[1] == '\n'))
- pChr += 2;
- else
- pChr += 1;
- }
-
- if ((pChr < (pFile->m_ReadBuf + sizeof(pFile->m_ReadBuf))) &&
- (*pChr == '\0'))
- pChr = pFile->m_ReadBuf + sizeof(pFile->m_ReadBuf);
-
- *pLine = '\0';
-
- /* setting MaxLen to -1 indicates terminating read loop */
- MaxLen = -1;
- }
-
- pFile->m_pReadPtr = pChr;
- }
- while (MaxLen > 0);
-
- return (sal_True);
-}
-
-
-
-
-
-
-
-
-
-
-static sal_Bool putLine(osl_TFile* pFile, const sal_Char *pszLine)
-{
- unsigned int Len = strlen(pszLine);
-
- if ( pFile == 0 || pFile->m_Handle < 0 )
- {
- return (sal_False);
- }
-
- if ( pFile->m_pWriteBuf == 0 )
- {
- pFile->m_pWriteBuf = (sal_Char*) malloc(Len+3);
- pFile->m_nWriteBufLen = Len+3;
- pFile->m_nWriteBufFree = Len+3;
- }
- else
- {
- if ( pFile->m_nWriteBufFree <= Len + 3 )
- {
- sal_Char* pTmp;
-
- pTmp=(sal_Char*) realloc(pFile->m_pWriteBuf,( ( pFile->m_nWriteBufLen + Len ) * 2) );
- if ( pTmp == 0 )
- {
- return sal_False;
- }
- pFile->m_pWriteBuf = pTmp;
- pFile->m_nWriteBufFree = pFile->m_nWriteBufFree + pFile->m_nWriteBufLen + ( 2 * Len );
- pFile->m_nWriteBufLen = ( pFile->m_nWriteBufLen + Len ) * 2;
- memset( (pFile->m_pWriteBuf) + ( pFile->m_nWriteBufLen - pFile->m_nWriteBufFree ), 0, pFile->m_nWriteBufFree);
- }
- }
-
-
-
- memcpy(pFile->m_pWriteBuf + ( pFile->m_nWriteBufLen - pFile->m_nWriteBufFree ),pszLine,Len+1);
-
- pFile->m_pWriteBuf[pFile->m_nWriteBufLen - pFile->m_nWriteBufFree + Len]='\r';
- pFile->m_pWriteBuf[pFile->m_nWriteBufLen - pFile->m_nWriteBufFree + Len + 1]='\n';
- pFile->m_pWriteBuf[pFile->m_nWriteBufLen - pFile->m_nWriteBufFree + Len + 2]='\0';
-
- pFile->m_nWriteBufFree-=Len+2;
-
- return (sal_True);
-}
-
-/* platform specific end */
-
-
-static const sal_Char* stripBlanks(const sal_Char* String, sal_uInt32* pLen)
-{
- if ( (pLen != NULL) && ( *pLen != 0 ) )
- {
- while ((String[*pLen - 1] == ' ') || (String[*pLen - 1] == '\t'))
- (*pLen)--;
-
- while ((*String == ' ') || (*String == '\t'))
- {
- String++;
- (*pLen)--;
- }
- }
- else
- while ((*String == ' ') || (*String == '\t'))
- String++;
-
- return (String);
-}
-
-static const sal_Char* addLine(osl_TProfileImpl* pProfile, const sal_Char* Line)
-{
- if (pProfile->m_NoLines >= pProfile->m_MaxLines)
- {
- if (pProfile->m_Lines == NULL)
- {
- pProfile->m_MaxLines = LINES_INI;
- pProfile->m_Lines = (sal_Char **)malloc(pProfile->m_MaxLines * sizeof(sal_Char *));
- memset(pProfile->m_Lines,0,pProfile->m_MaxLines * sizeof(sal_Char *));
- }
- else
- {
- unsigned int index=0;
- unsigned int oldmax=pProfile->m_MaxLines;
-
- pProfile->m_MaxLines += LINES_ADD;
- pProfile->m_Lines = (sal_Char **)realloc(pProfile->m_Lines, pProfile->m_MaxLines * sizeof(sal_Char *));
-
- for ( index = oldmax ; index < pProfile->m_MaxLines ; ++index )
- {
- pProfile->m_Lines[index]=0;
- }
- }
-
- if (pProfile->m_Lines == NULL)
- {
- pProfile->m_NoLines = 0;
- pProfile->m_MaxLines = 0;
- return (NULL);
- }
-
- }
-
- if ( pProfile->m_Lines != 0 && pProfile->m_Lines[pProfile->m_NoLines] != 0 )
- {
- free(pProfile->m_Lines[pProfile->m_NoLines]);
- }
- pProfile->m_Lines[pProfile->m_NoLines++] = strdup(Line);
-
- return (pProfile->m_Lines[pProfile->m_NoLines - 1]);
-}
-
-static const sal_Char* insertLine(osl_TProfileImpl* pProfile, const sal_Char* Line, sal_uInt32 LineNo)
-{
- if (pProfile->m_NoLines >= pProfile->m_MaxLines)
- {
- if (pProfile->m_Lines == NULL)
- {
- pProfile->m_MaxLines = LINES_INI;
- pProfile->m_Lines = (sal_Char **)malloc(pProfile->m_MaxLines * sizeof(sal_Char *));
- memset(pProfile->m_Lines,0,pProfile->m_MaxLines * sizeof(sal_Char *));
- }
- else
- {
- pProfile->m_MaxLines += LINES_ADD;
- pProfile->m_Lines = (sal_Char **)realloc(pProfile->m_Lines,
- pProfile->m_MaxLines * sizeof(sal_Char *));
-
- memset(&pProfile->m_Lines[pProfile->m_NoLines],
- 0,
- (pProfile->m_MaxLines - pProfile->m_NoLines - 1) * sizeof(sal_Char*));
- }
-
- if (pProfile->m_Lines == NULL)
- {
- pProfile->m_NoLines = 0;
- pProfile->m_MaxLines = 0;
- return (NULL);
- }
- }
-
- LineNo = LineNo > pProfile->m_NoLines ? pProfile->m_NoLines : LineNo;
-
- if (LineNo < pProfile->m_NoLines)
- {
- sal_uInt32 i, n;
- osl_TProfileSection* pSec;
-
- memmove(&pProfile->m_Lines[LineNo + 1], &pProfile->m_Lines[LineNo],
- (pProfile->m_NoLines - LineNo) * sizeof(sal_Char *));
-
-
- /* adjust line references */
- for (i = 0; i < pProfile->m_NoSections; i++)
- {
- pSec = &pProfile->m_Sections[i];
-
- if (pSec->m_Line >= LineNo)
- pSec->m_Line++;
-
- for (n = 0; n < pSec->m_NoEntries; n++)
- if (pSec->m_Entries[n].m_Line >= LineNo)
- pSec->m_Entries[n].m_Line++;
- }
- }
-
- pProfile->m_NoLines++;
-
- pProfile->m_Lines[LineNo] = strdup(Line);
-
- return (pProfile->m_Lines[LineNo]);
-}
-
-static void removeLine(osl_TProfileImpl* pProfile, sal_uInt32 LineNo)
-{
- if (LineNo < pProfile->m_NoLines)
- {
- free(pProfile->m_Lines[LineNo]);
- pProfile->m_Lines[LineNo]=0;
- if (pProfile->m_NoLines - LineNo > 1)
- {
- sal_uInt32 i, n;
- osl_TProfileSection* pSec;
-
- memmove(&pProfile->m_Lines[LineNo], &pProfile->m_Lines[LineNo + 1],
- (pProfile->m_NoLines - LineNo - 1) * sizeof(sal_Char *));
-
- memset(&pProfile->m_Lines[pProfile->m_NoLines - 1],
- 0,
- (pProfile->m_MaxLines - pProfile->m_NoLines) * sizeof(sal_Char*));
-
- /* adjust line references */
- for (i = 0; i < pProfile->m_NoSections; i++)
- {
- pSec = &pProfile->m_Sections[i];
-
- if (pSec->m_Line > LineNo)
- pSec->m_Line--;
-
- for (n = 0; n < pSec->m_NoEntries; n++)
- if (pSec->m_Entries[n].m_Line > LineNo)
- pSec->m_Entries[n].m_Line--;
- }
- }
- else
- {
- pProfile->m_Lines[LineNo] = 0;
- }
-
- pProfile->m_NoLines--;
- }
-
- return;
-}
-
-static void setEntry(osl_TProfileImpl* pProfile, osl_TProfileSection* pSection,
- sal_uInt32 NoEntry, sal_uInt32 Line,
- const sal_Char* Entry, sal_uInt32 Len)
-{
- Entry = stripBlanks(Entry, &Len);
- pSection->m_Entries[NoEntry].m_Line = Line;
- pSection->m_Entries[NoEntry].m_Offset = Entry - pProfile->m_Lines[Line];
- pSection->m_Entries[NoEntry].m_Len = Len;
-
- return;
-}
-
-static sal_Bool addEntry(osl_TProfileImpl* pProfile, osl_TProfileSection *pSection,
- int Line, const sal_Char* Entry, sal_uInt32 Len)
-{
- if (pSection != NULL)
- {
- if (pSection->m_NoEntries >= pSection->m_MaxEntries)
- {
- if (pSection->m_Entries == NULL)
- {
- pSection->m_MaxEntries = ENTRIES_INI;
- pSection->m_Entries = (osl_TProfileEntry *)malloc(
- pSection->m_MaxEntries * sizeof(osl_TProfileEntry));
- }
- else
- {
- pSection->m_MaxEntries += ENTRIES_ADD;
- pSection->m_Entries = (osl_TProfileEntry *)realloc(pSection->m_Entries,
- pSection->m_MaxEntries * sizeof(osl_TProfileEntry));
- }
-
- if (pSection->m_Entries == NULL)
- {
- pSection->m_NoEntries = 0;
- pSection->m_MaxEntries = 0;
- return (sal_False);
- }
- }
-
- pSection->m_NoEntries++;
-
- Entry = stripBlanks(Entry, &Len);
- setEntry(pProfile, pSection, pSection->m_NoEntries - 1, Line,
- Entry, Len);
-
- return (sal_True);
- }
-
- return (sal_False);
-}
-
-static void removeEntry(osl_TProfileSection *pSection, sal_uInt32 NoEntry)
-{
- if (NoEntry < pSection->m_NoEntries)
- {
- if (pSection->m_NoEntries - NoEntry > 1)
- {
- memmove(&pSection->m_Entries[NoEntry],
- &pSection->m_Entries[NoEntry + 1],
- (pSection->m_NoEntries - NoEntry - 1) * sizeof(osl_TProfileEntry));
- pSection->m_Entries[pSection->m_NoEntries - 1].m_Line=0;
- pSection->m_Entries[pSection->m_NoEntries - 1].m_Offset=0;
- pSection->m_Entries[pSection->m_NoEntries - 1].m_Len=0;
- }
-
- pSection->m_NoEntries--;
- }
-
- return;
-}
-
-static sal_Bool addSection(osl_TProfileImpl* pProfile, int Line, const sal_Char* Section, sal_uInt32 Len)
-{
- if (pProfile->m_NoSections >= pProfile->m_MaxSections)
- {
- if (pProfile->m_Sections == NULL)
- {
- pProfile->m_MaxSections = SECTIONS_INI;
- pProfile->m_Sections = (osl_TProfileSection *)malloc(pProfile->m_MaxSections * sizeof(osl_TProfileSection));
- memset(pProfile->m_Sections,0,pProfile->m_MaxSections * sizeof(osl_TProfileSection));
- }
- else
- {
- unsigned int index=0;
- unsigned int oldmax=pProfile->m_MaxSections;
-
- pProfile->m_MaxSections += SECTIONS_ADD;
- pProfile->m_Sections = (osl_TProfileSection *)realloc(pProfile->m_Sections,
- pProfile->m_MaxSections * sizeof(osl_TProfileSection));
- for ( index = oldmax ; index < pProfile->m_MaxSections ; ++index )
- {
- pProfile->m_Sections[index].m_Entries=0;
- }
- }
-
- if (pProfile->m_Sections == NULL)
- {
- pProfile->m_NoSections = 0;
- pProfile->m_MaxSections = 0;
- return (sal_False);
- }
- }
-
- pProfile->m_NoSections++;
-
- if ( pProfile->m_Sections[(pProfile->m_NoSections) - 1].m_Entries != 0 )
- {
- free(pProfile->m_Sections[(pProfile->m_NoSections) - 1].m_Entries);
- }
- pProfile->m_Sections[pProfile->m_NoSections - 1].m_Entries = NULL;
- pProfile->m_Sections[pProfile->m_NoSections - 1].m_NoEntries = 0;
- pProfile->m_Sections[pProfile->m_NoSections - 1].m_MaxEntries = 0;
-
- Section = (sal_Char *)stripBlanks(Section, &Len);
- pProfile->m_Sections[pProfile->m_NoSections - 1].m_Line = Line;
- pProfile->m_Sections[pProfile->m_NoSections - 1].m_Offset = Section - pProfile->m_Lines[Line];
- pProfile->m_Sections[pProfile->m_NoSections - 1].m_Len = Len;
-
- return (sal_True);
-}
-
-static void removeSection(osl_TProfileImpl* pProfile, osl_TProfileSection *pSection)
-{
- sal_uInt32 Section;
-
- if ((Section = pSection - pProfile->m_Sections) < pProfile->m_NoSections)
- {
- free (pSection->m_Entries);
- pSection->m_Entries=0;
- if (pProfile->m_NoSections - Section > 1)
- {
- memmove(&pProfile->m_Sections[Section], &pProfile->m_Sections[Section + 1],
- (pProfile->m_NoSections - Section - 1) * sizeof(osl_TProfileSection));
-
- memset(&pProfile->m_Sections[pProfile->m_NoSections - 1],
- 0,
- (pProfile->m_MaxSections - pProfile->m_NoSections) * sizeof(osl_TProfileSection));
- pProfile->m_Sections[pProfile->m_NoSections - 1].m_Entries = 0;
- }
- else
- {
- pSection->m_Entries = 0;
- }
-
- pProfile->m_NoSections--;
- }
-
- return;
-}
-
-static osl_TProfileSection* findEntry(osl_TProfileImpl* pProfile, const sal_Char* Section,
- const sal_Char* Entry, sal_uInt32 *pNoEntry)
-{
-static sal_uInt32 Sect = 0;
- sal_uInt32 i, n;
- sal_uInt32 Len;
- const sal_Char* pStr;
- osl_TProfileSection* pSec = NULL;
-
- Len = strlen(Section);
- Section = (sal_Char *)stripBlanks(Section, &Len);
-
- n = Sect;
-
- for (i = 0; i < pProfile->m_NoSections; i++)
- {
- n %= pProfile->m_NoSections;
- pSec = &pProfile->m_Sections[n];
- if ((Len == pSec->m_Len) &&
- (strnicmp(Section, &pProfile->m_Lines[pSec->m_Line][pSec->m_Offset], pSec->m_Len)
- == 0))
- break;
- n++;
- }
-
- Sect = n;
-
- if (i < pProfile->m_NoSections)
- {
- Len = strlen(Entry);
- Entry = stripBlanks(Entry, &Len);
-
- *pNoEntry = pSec->m_NoEntries;
-
- for (i = 0; i < pSec->m_NoEntries; i++)
- {
- pStr = &pProfile->m_Lines[pSec->m_Entries[i].m_Line]
- [pSec->m_Entries[i].m_Offset];
- if ((Len == pSec->m_Entries[i].m_Len) &&
- (strnicmp(Entry, pStr, pSec->m_Entries[i].m_Len)
- == 0))
- {
- *pNoEntry = i;
- break;
- }
- }
- }
- else
- pSec = NULL;
-
- return (pSec);
-}
-
-static sal_Bool loadProfile(osl_TFile* pFile, osl_TProfileImpl* pProfile)
-{
- sal_uInt32 i;
- sal_Char* pStr;
- sal_Char* pChar;
- sal_Char Line[4096];
-
- pProfile->m_NoLines = 0;
- pProfile->m_NoSections = 0;
-
- OSL_VERIFY(rewindFile(pFile, sal_False));
-
- while (getLine(pFile, Line, sizeof(Line)))
- {
- if (! addLine(pProfile, Line))
- return (sal_False);
- }
-
- for (i = 0; i < pProfile->m_NoLines; i++)
- {
- pStr = (sal_Char *)stripBlanks(pProfile->m_Lines[i], NULL);
-
- if ((*pStr == '\0') || (*pStr == ';'))
- continue;
-
- if ((*pStr != '[') || ((pChar = strrchr(pStr, ']')) == NULL) ||
- ((pChar - pStr) <= 2))
- {
- /* insert entry */
-
- if (pProfile->m_NoSections < 1)
- continue;
-
- if ((pChar = strchr(pStr, '=')) == NULL)
- pChar = pStr + strlen(pStr);
-
- if (! addEntry(pProfile, &pProfile->m_Sections[pProfile->m_NoSections - 1],
- i, pStr, pChar - pStr))
- return (sal_False);
- }
- else
- {
- /* new section */
-
- if (! addSection(pProfile, i, pStr + 1, pChar - pStr - 1))
- return (sal_False);
- }
- }
-
- return (sal_True);
-}
-
-
-
-
-
-static sal_Bool storeProfile(osl_TProfileImpl* pProfile, sal_Bool bCleanup)
-{
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In storeProfile\n");
-#endif
-
- if (pProfile->m_Lines != NULL)
- {
- if (pProfile->m_Flags & FLG_MODIFIED)
- {
- sal_uInt32 i;
-
- osl_TFile* pTmpFile = osl_openTmpProfileImpl(pProfile);
-
- if ( pTmpFile == 0 )
- {
- return sal_False;
- }
-
- OSL_VERIFY(rewindFile(pTmpFile, sal_True));
-
- for (i = 0; i < pProfile->m_NoLines; i++)
- {
- OSL_VERIFY(putLine(pTmpFile, pProfile->m_Lines[i]));
- }
-
- if ( ! writeProfileImpl(pTmpFile) )
- {
- if ( pTmpFile->m_pWriteBuf != 0 )
- {
- free(pTmpFile->m_pWriteBuf);
- }
-
- pTmpFile->m_pWriteBuf=0;
- pTmpFile->m_nWriteBufLen=0;
- pTmpFile->m_nWriteBufFree=0;
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out storeProfile [not flushed]\n");
-#endif
- closeFileImpl(pTmpFile);
-
- return sal_False;
- }
-
- pProfile->m_Flags &= ~FLG_MODIFIED;
-
- closeFileImpl(pProfile->m_pFile);
- closeFileImpl(pTmpFile);
-
- osl_ProfileSwapProfileNames(pProfile);
-
-/* free(pProfile->m_pFile);*/
-/* free(pTmpFile);*/
-
- pProfile->m_pFile = openFileImpl(pProfile->m_strFileName,pProfile->m_Flags);
-
- }
-
- if (bCleanup)
- {
- while (pProfile->m_NoLines > 0)
- removeLine(pProfile, pProfile->m_NoLines - 1);
-
- free(pProfile->m_Lines);
- pProfile->m_Lines = NULL;
- pProfile->m_MaxLines = 0;
-
- while (pProfile->m_NoSections > 0)
- removeSection(pProfile, &pProfile->m_Sections[pProfile->m_NoSections - 1]);
-
- free(pProfile->m_Sections);
- pProfile->m_Sections = NULL;
- pProfile->m_MaxSections = 0;
- }
- }
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out storeProfile [ok]\n");
-#endif
- return (sal_True);
-}
-
-
-static osl_TFile* osl_openTmpProfileImpl(osl_TProfileImpl* pProfile)
-{
- osl_TFile* pFile=0;
- rtl_uString* ustrExtension=0;
- rtl_uString* ustrTmpName=0;
- oslProfileOption PFlags=0;
-
- rtl_uString_newFromAscii(&ustrExtension,"tmp");
-
-
- /* generate tmp profilename */
- ustrTmpName=osl_ProfileGenerateExtension(pProfile->m_strFileName,ustrExtension);
- rtl_uString_release(ustrExtension);
-
- if ( ustrTmpName == 0 )
- {
- return 0;
- }
-
-
- if ( ! ( pProfile->m_Flags & osl_Profile_READLOCK ) )
- {
- PFlags |= osl_Profile_WRITELOCK;
- }
-
- /* open this file */
- pFile = openFileImpl(ustrTmpName,pProfile->m_Flags | PFlags);
-
-
- /* return new pFile */
- return pFile;
-}
-
-
-static sal_Bool osl_ProfileSwapProfileNames(osl_TProfileImpl* pProfile)
-{
- sal_Bool bRet = sal_False;
-
- rtl_uString* ustrBakFile=0;
- rtl_uString* ustrTmpFile=0;
- rtl_uString* ustrIniFile=0;
- rtl_uString* ustrExtension=0;
-
-
- rtl_uString_newFromAscii(&ustrExtension,"bak");
-
- ustrBakFile=osl_ProfileGenerateExtension(pProfile->m_strFileName,ustrExtension);
- rtl_uString_release(ustrExtension);
- ustrExtension=0;
-
-
- rtl_uString_newFromAscii(&ustrExtension,"ini");
-
- ustrIniFile=osl_ProfileGenerateExtension(pProfile->m_strFileName,ustrExtension);
- rtl_uString_release(ustrExtension);
- ustrExtension=0;
-
-
- rtl_uString_newFromAscii(&ustrExtension,"tmp");
-
- ustrTmpFile=osl_ProfileGenerateExtension(pProfile->m_strFileName,ustrExtension);
- rtl_uString_release(ustrExtension);
- ustrExtension=0;
-
-
- /* unlink bak */
- DeleteFileW( reinterpret_cast<LPCWSTR>(rtl_uString_getStr( ustrBakFile )) );
-
- /* rename ini bak */
- MoveFileExW( reinterpret_cast<LPCWSTR>(rtl_uString_getStr( ustrIniFile )), reinterpret_cast<LPCWSTR>(rtl_uString_getStr( ustrBakFile )), MOVEFILE_COPY_ALLOWED | MOVEFILE_WRITE_THROUGH );
-
- /* rename tmp ini */
- MoveFileExW( reinterpret_cast<LPCWSTR>(rtl_uString_getStr( ustrTmpFile )), reinterpret_cast<LPCWSTR>(rtl_uString_getStr( ustrIniFile )), MOVEFILE_COPY_ALLOWED | MOVEFILE_WRITE_THROUGH );
-
- return bRet;
-}
-
-
-static rtl_uString* osl_ProfileGenerateExtension(rtl_uString* ustrFileName, rtl_uString* ustrExtension)
-{
- rtl_uString* ustrNewFileName=0;
- rtl_uString* ustrOldExtension = 0;
- sal_Unicode* pExtensionBuf = 0;
- sal_Unicode* pFileNameBuf = 0;
- sal_Int32 nIndex = -1;
-
- pFileNameBuf = rtl_uString_getStr(ustrFileName);
-
- rtl_uString_newFromAscii(&ustrOldExtension,".");
-
- pExtensionBuf = rtl_uString_getStr(ustrOldExtension);
-
- nIndex = rtl_ustr_lastIndexOfChar(pFileNameBuf,*pExtensionBuf);
-
- rtl_uString_newReplaceStrAt(&ustrNewFileName,
- ustrFileName,
- nIndex+1,
- 3,
- ustrExtension);
-
- return ustrNewFileName;
-}
-
-
-static osl_TProfileImpl* acquireProfile(oslProfile Profile, sal_Bool bWriteable)
-{
- osl_TProfileImpl* pProfile = (osl_TProfileImpl*)Profile;
- oslProfileOption PFlags=0;
-
-
- if ( bWriteable )
- {
-/* PFlags = osl_Profile_DEFAULT | osl_Profile_READWRITE; */
- PFlags = osl_Profile_DEFAULT | osl_Profile_WRITELOCK;
- }
- else
- {
- PFlags = osl_Profile_DEFAULT;
- }
-
-
- if (pProfile == NULL)
- {
-#ifdef DEBUG_OSL_PROFILE
- OSL_TRACE("AUTOOPEN MODE\n");
-#endif
-
-
-
- if ( ( pProfile = (osl_TProfileImpl*)osl_openProfile( NULL, PFlags ) ) != NULL )
- {
- pProfile->m_Flags |= FLG_AUTOOPEN;
- }
- }
- else
- {
-#ifdef DEBUG_OSL_PROFILE
- OSL_TRACE("try to acquire\n");
-#endif
-
-
-
- if (! (pProfile->m_Flags & osl_Profile_SYSTEM))
- {
- if (! (pProfile->m_Flags & (osl_Profile_READLOCK |
- osl_Profile_WRITELOCK | osl_Profile_FLUSHWRITE)))
- {
- osl_TStamp Stamp;
-#ifdef DEBUG_OSL_PROFILE
- OSL_TRACE("DEFAULT MODE\n");
-#endif
- pProfile->m_pFile = openFileImpl(
- pProfile->m_strFileName, pProfile->m_Flags | PFlags);
- if (!pProfile->m_pFile)
- return NULL;
-
- Stamp = getFileStamp(pProfile->m_pFile);
-
- if (memcmp(&Stamp, &(pProfile->m_Stamp), sizeof(osl_TStamp)))
- {
- pProfile->m_Stamp = Stamp;
-
- loadProfile(pProfile->m_pFile, pProfile);
- }
- }
- else
- {
-#ifdef DEBUG_OSL_PROFILE
- OSL_TRACE("READ/WRITELOCK MODE\n");
-#endif
-
-
- /* A readlock file could not be written */
- if ((pProfile->m_Flags & osl_Profile_READLOCK) && bWriteable)
- {
- return (NULL);
- }
- }
- }
- }
-
- return (pProfile);
-}
-
-static sal_Bool releaseProfile(osl_TProfileImpl* pProfile)
-{
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("In releaseProfile\n");
-#endif
-
- if ( pProfile == 0 )
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out releaseProfile [profile==0]\n");
-#endif
- return sal_False;
- }
-
- if (! (pProfile->m_Flags & osl_Profile_SYSTEM))
- {
- if (pProfile->m_Flags & FLG_AUTOOPEN)
- {
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out releaseProfile [AUTOOPEN]\n");
-#endif
- return (osl_closeProfile((oslProfile)pProfile));
- }
- else
- {
-#ifdef DEBUG_OSL_PROFILE
- OSL_TRACE("DEFAULT MODE\n");
-#endif
- if (! (pProfile->m_Flags & (osl_Profile_READLOCK |
- osl_Profile_WRITELOCK | osl_Profile_FLUSHWRITE)))
- {
- if (pProfile->m_Flags & FLG_MODIFIED)
- storeProfile(pProfile, sal_False);
-
- closeFileImpl(pProfile->m_pFile);
- pProfile->m_pFile = NULL;
- }
- }
- }
-
-#ifdef TRACE_OSL_PROFILE
- OSL_TRACE("Out releaseProfile [ok]\n");
-#endif
- return (sal_True);
-}
-
-static sal_Bool lookupProfile(const sal_Unicode *strPath, const sal_Unicode *strFile, sal_Unicode *strProfile)
-{
- sal_Char *pChr, *pStr;
- sal_Char Buffer[4096] = "";
- sal_Char Product[132] = "";
-
- ::osl::LongPathBuffer< sal_Unicode > aPath( MAX_LONG_PATH );
- aPath[0] = 0;
- DWORD dwPathLen = 0;
-
- if (*strPath == L'"')
- {
- int i = 0;
-
- strPath++;
-
- while ((strPath[i] != L'"') && (strPath[i] != L'\0'))
- i++;
-
- WideCharToMultiByte(CP_ACP,0, reinterpret_cast<LPCWSTR>(strPath), i, Product, sizeof(Product), NULL, NULL);
- Product[i] = '\0';
- strPath += i;
-
- if (*strPath == L'"')
- strPath++;
-
- if ( (*strPath == L'/') || (*strPath == L'\\') )
- {
- strPath++;
- }
- }
-
- else
- {
- /* if we have not product identfication, do a special handling for soffice.ini */
- if (rtl_ustr_ascii_compare(strFile, SVERSION_PROFILE) == 0)
- {
- rtl_uString * strSVProfile = NULL;
- rtl_uString * strSVFallback = NULL;
- rtl_uString * strSVLocation = NULL;
- rtl_uString * strSVName = NULL;
- ::osl::LongPathBuffer< sal_Char > aDir( MAX_LONG_PATH );
- oslProfile hProfile;
-
- rtl_uString_newFromAscii(&strSVFallback, SVERSION_FALLBACK);
- rtl_uString_newFromAscii(&strSVLocation, SVERSION_LOCATION);
- rtl_uString_newFromAscii(&strSVName, SVERSION_NAME);
-
- /* open sversion.ini in the system directory, and try to locate the entry
- with the highest version for StarOffice */
- if (osl_getProfileName( strSVFallback, strSVName, &strSVProfile))
- {
- hProfile = osl_openProfile(strSVProfile, osl_Profile_READLOCK);
- if (hProfile)
- {
- osl_getProfileSectionEntries(
- hProfile, SVERSION_SECTION, Buffer, sizeof(Buffer));
-
- for (pChr = Buffer; *pChr != '\0'; pChr += strlen(pChr) + 1)
- {
- if ((strnicmp(
- pChr, SVERSION_SOFFICE,
- sizeof(SVERSION_SOFFICE) - 1)
- == 0)
- && (stricmp(Product, pChr) < 0))
- {
- osl_readProfileString(
- hProfile, SVERSION_SECTION, pChr, aDir,
- aDir.getBufSizeInSymbols(), "");
-
- /* check for existence of path */
- if (access(aDir, 0) >= 0)
- strcpy(Product, pChr);
- }
- }
-
- osl_closeProfile(hProfile);
- }
- rtl_uString_release(strSVProfile);
- strSVProfile = NULL;
- }
-
- /* open sversion.ini in the users directory, and try to locate the entry
- with the highest version for StarOffice */
- if ((strcmp(SVERSION_LOCATION, SVERSION_FALLBACK) != 0) &&
- (osl_getProfileName(strSVLocation, strSVName, &strSVProfile)))
- {
- hProfile = osl_openProfile(strSVProfile, osl_Profile_READLOCK);
- if (hProfile)
- {
- osl_getProfileSectionEntries(
- hProfile, SVERSION_SECTION, Buffer, sizeof(Buffer));
-
- for (pChr = Buffer; *pChr != '\0'; pChr += strlen(pChr) + 1)
- {
- if ((strnicmp(
- pChr, SVERSION_SOFFICE,
- sizeof(SVERSION_SOFFICE) - 1)
- == 0)
- && (stricmp(Product, pChr) < 0))
- {
- osl_readProfileString(
- hProfile, SVERSION_SECTION, pChr, aDir,
- aDir.getBufSizeInSymbols(), "");
-
- /* check for existence of path */
- if (access(aDir, 0) >= 0)
- strcpy(Product, pChr);
- }
- }
-
- osl_closeProfile(hProfile);
- }
- rtl_uString_release(strSVProfile);
- }
-
- rtl_uString_release(strSVFallback);
- rtl_uString_release(strSVLocation);
- rtl_uString_release(strSVName);
-
- /* remove any trailing build number */
- if ((pChr = strrchr(Product, '/')) != NULL)
- *pChr = '\0';
- }
- }
-
- /* if we have an userid option eg. "-userid:rh[/usr/home/rh/staroffice]",
- this will supercede all other locations */
- {
- sal_uInt32 n, nArgs = osl_getCommandArgCount();
-
- for (n = 0; n < nArgs; n++)
- {
- rtl_uString * strCommandArg = NULL;
-
- if ((osl_getCommandArg( n, &strCommandArg ) == osl_Process_E_None) &&
- ((strCommandArg->buffer[0] == L'-') || (strCommandArg->buffer[0] == L'+')) &&
- (rtl_ustr_ascii_compare_WithLength(strCommandArg->buffer, RTL_CONSTASCII_LENGTH(SVERSION_OPTION), SVERSION_OPTION)))
- {
- sal_Unicode *pCommandArg = strCommandArg->buffer + RTL_CONSTASCII_LENGTH(SVERSION_OPTION);
- sal_Int32 nStart, nEnd;
-
- if (((nStart = rtl_ustr_indexOfChar(pCommandArg, L'[')) != -1) &&
- ((nEnd = rtl_ustr_indexOfChar(pCommandArg + nStart + 1, L']')) != -1))
- {
- dwPathLen = nEnd;
- copy_ustr_n(aPath, pCommandArg + nStart + 1, dwPathLen);
- aPath[dwPathLen] = 0;
-
- /* build full path */
- if ((aPath[dwPathLen - 1] != L'/') && (aPath[dwPathLen - 1] != L'\\'))
- {
- copy_ustr_n(aPath + dwPathLen++, L"/", 2);
- }
-
- if (*strPath)
- {
- copy_ustr_n(aPath + dwPathLen, strPath, rtl_ustr_getLength(strPath)+1);
- dwPathLen += rtl_ustr_getLength(strPath);
- }
- else
- {
- ::osl::LongPathBuffer< sal_Char > aTmpPath( MAX_LONG_PATH );
- int n;
-
- if ((n = WideCharToMultiByte(CP_ACP,0, ::osl::mingw_reinterpret_cast<LPCWSTR>(aPath), -1, aTmpPath, aTmpPath.getBufSizeInSymbols(), NULL, NULL)) > 0)
- {
- strcpy(aTmpPath + n, SVERSION_USER);
- if (access(aTmpPath, 0) >= 0)
- {
- dwPathLen += MultiByteToWideChar( CP_ACP, 0, SVERSION_USER, -1, reinterpret_cast<LPWSTR>(aPath + dwPathLen), aPath.getBufSizeInSymbols() - dwPathLen );
- }
- }
- }
-
- break;
- }
- }
- }
- }
-
-
- if (dwPathLen == 0)
- {
- rtl_uString * strExecutable = NULL;
- rtl_uString * strTmp = NULL;
- sal_Int32 nPos;
-
- /* try to find the file in the directory of the executbale */
- if (osl_getExecutableFile(&strTmp) != osl_Process_E_None)
- return (sal_False);
-
- /* convert to native path */
- if (osl_getSystemPathFromFileURL(strTmp, &strExecutable) != osl_File_E_None)
- {
- rtl_uString_release(strTmp);
- return sal_False;
- }
-
- rtl_uString_release(strTmp);
-
- /* seperate path from filename */
- if ((nPos = rtl_ustr_lastIndexOfChar(strExecutable->buffer, L'\\')) == -1)
- {
- if ((nPos = rtl_ustr_lastIndexOfChar(strExecutable->buffer, L':')) == -1)
- {
- return sal_False;
- }
- else
- {
- copy_ustr_n(aPath, strExecutable->buffer, nPos);
- aPath[nPos] = 0;
- dwPathLen = nPos;
- }
- }
- else
- {
- copy_ustr_n(aPath, strExecutable->buffer, nPos);
- dwPathLen = nPos;
- aPath[dwPathLen] = 0;
- }
-
- /* if we have no product identification use the executable file name */
- if (*Product == 0)
- {
- WideCharToMultiByte(CP_ACP,0, reinterpret_cast<LPCWSTR>(strExecutable->buffer + nPos + 1), -1, Product, sizeof(Product), NULL, NULL);
-
- /* remove extension */
- if ((pChr = strrchr(Product, '.')) != NULL)
- *pChr = '\0';
- }
-
- rtl_uString_release(strExecutable);
-
- /* remember last subdir */
- nPos = rtl_ustr_lastIndexOfChar(aPath, L'\\');
-
- copy_ustr_n(aPath + dwPathLen++, L"\\", 2);
-
- if (*strPath)
- {
- copy_ustr_n(aPath + dwPathLen, strPath, rtl_ustr_getLength(strPath)+1);
- dwPathLen += rtl_ustr_getLength(strPath);
- }
-
- {
- ::osl::LongPathBuffer< sal_Char > aTmpPath( MAX_LONG_PATH );
-
- WideCharToMultiByte(CP_ACP,0, ::osl::mingw_reinterpret_cast<LPCWSTR>(aPath), -1, aTmpPath, aTmpPath.getBufSizeInSymbols(), NULL, NULL);
-
- /* if file not exists, remove any specified subdirectories
- like "bin" or "program" */
-
- if (((access(aTmpPath, 0) < 0) && (nPos != -1)) || (*strPath == 0))
- {
- static sal_Char *SubDirs[] = SVERSION_DIRS;
-
- int i = 0;
- pStr = aTmpPath + nPos;
-
- for (i = 0; i < SAL_N_ELEMENTS(SubDirs); i++)
- if (strnicmp(pStr + 1, SubDirs[i], strlen(SubDirs[i])) == 0)
- {
- if ( *strPath == 0)
- {
- strcpy(pStr + 1,SVERSION_USER);
- if ( access(aTmpPath, 0) < 0 )
- {
- *(pStr+1)='\0';
- }
- else
- {
- dwPathLen = nPos + MultiByteToWideChar( CP_ACP, 0, SVERSION_USER, -1, reinterpret_cast<LPWSTR>(aPath + nPos + 1), aPath.getBufSizeInSymbols() - (nPos + 1) );
- }
- }
- else
- {
- copy_ustr_n(aPath + nPos + 1, strPath, rtl_ustr_getLength(strPath)+1);
- dwPathLen = nPos + 1 + rtl_ustr_getLength(strPath);
- }
-
- break;
- }
- }
- }
-
- if ((aPath[dwPathLen - 1] != L'/') && (aPath[dwPathLen - 1] != L'\\'))
- {
- aPath[dwPathLen++] = L'\\';
- aPath[dwPathLen] = 0;
- }
-
- copy_ustr_n(aPath + dwPathLen, strFile, rtl_ustr_getLength(strFile)+1);
-
- {
- ::osl::LongPathBuffer< sal_Char > aTmpPath( MAX_LONG_PATH );
-
- WideCharToMultiByte(CP_ACP,0, ::osl::mingw_reinterpret_cast<LPCWSTR>(aPath), -1, aTmpPath, aTmpPath.getBufSizeInSymbols(), NULL, NULL);
-
- if ((access(aTmpPath, 0) < 0) && (strlen(Product) > 0))
- {
- rtl_uString * strSVFallback = NULL;
- rtl_uString * strSVProfile = NULL;
- rtl_uString * strSVLocation = NULL;
- rtl_uString * strSVName = NULL;
- oslProfile hProfile;
-
- rtl_uString_newFromAscii(&strSVFallback, SVERSION_FALLBACK);
- rtl_uString_newFromAscii(&strSVLocation, SVERSION_LOCATION);
- rtl_uString_newFromAscii(&strSVName, SVERSION_NAME);
-
- /* open sversion.ini in the system directory, and try to locate the entry
- with the highest version for StarOffice */
- if (osl_getProfileName(strSVLocation, strSVName, &strSVProfile))
- {
- hProfile = osl_openProfile(
- strSVProfile, osl_Profile_READLOCK);
- if (hProfile)
- {
- osl_readProfileString(
- hProfile, SVERSION_SECTION, Product, Buffer,
- sizeof(Buffer), "");
- osl_closeProfile(hProfile);
-
- /* if not found, try the fallback */
- if ((strlen(Buffer) <= 0)
- && (strcmp(SVERSION_LOCATION, SVERSION_FALLBACK)
- != 0))
- {
- if (osl_getProfileName(
- strSVFallback, strSVName, &strSVProfile))
- {
- hProfile = osl_openProfile(
- strSVProfile, osl_Profile_READLOCK);
- if (hProfile)
- {
- osl_readProfileString(
- hProfile, SVERSION_SECTION, Product,
- Buffer, sizeof(Buffer), "");
- }
- }
-
- osl_closeProfile(hProfile);
- }
-
- if (strlen(Buffer) > 0)
- {
- dwPathLen = MultiByteToWideChar(
- CP_ACP, 0, Buffer, -1, ::osl::mingw_reinterpret_cast<LPWSTR>(aPath), aPath.getBufSizeInSymbols() );
- dwPathLen -=1;
-
- /* build full path */
- if ((aPath[dwPathLen - 1] != L'/')
- && (aPath[dwPathLen - 1] != L'\\'))
- {
- copy_ustr_n(aPath + dwPathLen++, L"\\", 2);
- }
-
- if (*strPath)
- {
- copy_ustr_n(aPath + dwPathLen, strPath, rtl_ustr_getLength(strPath)+1);
- dwPathLen += rtl_ustr_getLength(strPath);
- }
- else
- {
- ::osl::LongPathBuffer< sal_Char > aTmpPath( MAX_LONG_PATH );
- int n;
-
- if ((n = WideCharToMultiByte(
- CP_ACP,0, ::osl::mingw_reinterpret_cast<LPCWSTR>(aPath), -1, aTmpPath,
- aTmpPath.getBufSizeInSymbols(), NULL, NULL))
- > 0)
- {
- strcpy(aTmpPath + n, SVERSION_USER);
- if (access(aTmpPath, 0) >= 0)
- {
- dwPathLen += MultiByteToWideChar(
- CP_ACP, 0, SVERSION_USER, -1,
- reinterpret_cast<LPWSTR>(aPath + dwPathLen),
- aPath.getBufSizeInSymbols() - dwPathLen );
- }
- }
- }
- }
- }
-
- rtl_uString_release(strSVProfile);
- }
-
- rtl_uString_release(strSVFallback);
- rtl_uString_release(strSVLocation);
- rtl_uString_release(strSVName);
- }
- }
-
- aPath[dwPathLen] = 0;
- }
-
- /* copy filename */
- copy_ustr_n(strProfile, aPath, dwPathLen+1);
-
- return sal_True;
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/salinit.cxx b/sal/osl/w32/salinit.cxx
deleted file mode 100644
index 60a71488f..000000000
--- a/sal/osl/w32/salinit.cxx
+++ /dev/null
@@ -1,105 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include "system.h"
-#include <osl/process.h>
-#include <sal/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// Prototypes for initialization and deinitialization of SAL library
-
-void SAL_CALL sal_detail_initialize(int argc, char ** argv)
-{
- // SetProcessDEPPolicy(PROCESS_DEP_ENABLE);
- // SetDllDirectoryW(L"");
- // SetSearchPathMode(
- // BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE | BASE_SEARCH_PATH_PERMANENT);
- HMODULE h = GetModuleHandleW(L"kernel32.dll");
- if (h != 0) {
- FARPROC p = GetProcAddress(h, "SetProcessDEPPolicy");
- if (p != 0) {
- reinterpret_cast< BOOL (WINAPI *)(DWORD) >(p)(0x00000001);
- }
- p = GetProcAddress(h, "SetDllDirectoryW");
- if (p != 0) {
- reinterpret_cast< BOOL (WINAPI *)(LPCWSTR) >(p)(L"");
- }
- p = GetProcAddress(h, "SetSearchPathMode");
- if (p != 0) {
- reinterpret_cast< BOOL (WINAPI *)(DWORD) >(p)(0x8001);
- }
- }
-
- WSADATA wsaData;
- int error;
- WORD wVersionRequested;
-
- wVersionRequested = MAKEWORD(1, 1);
-
- error = WSAStartup(wVersionRequested, &wsaData);
- if ( 0 == error )
- {
- WORD wMajorVersionRequired = 1;
- WORD wMinorVersionRequired = 1;
-
- if ((LOBYTE(wsaData.wVersion) < wMajorVersionRequired) ||
- (LOBYTE(wsaData.wVersion) == wMajorVersionRequired) &&
- ((HIBYTE(wsaData.wVersion) < wMinorVersionRequired)))
- {
- // How to handle a very unlikely error ???
- }
- }
- else
- {
- // How to handle a very unlikely error ???
- }
-
- osl_setCommandArgs(argc, argv);
-}
-
-void SAL_CALL sal_detail_deinitialize()
-{
- if ( SOCKET_ERROR == WSACleanup() )
- {
- // We should never reach this point or we did wrong elsewhere
- }
-}
-
-
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/secimpl.h b/sal/osl/w32/secimpl.h
deleted file mode 100644
index ccae39e96..000000000
--- a/sal/osl/w32/secimpl.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_SECURITYIMPL_H_
-#define _OSL_SECURITYIMPL_H_
-
-#include <winnetwk.h>
-
-#include <osl/security.h>
-
-#define USER_BUFFER_SIZE 256
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct _oslSecurityImpl {
- HANDLE m_hProfile;
- HANDLE m_hToken;
- sal_Unicode m_User[USER_BUFFER_SIZE];
-/* ts: Erweiterung um Fileserver-login */
- NETRESOURCEW *m_pNetResource;
-} oslSecurityImpl;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/security.c b/sal/osl/w32/security.c
deleted file mode 100644
index 1f1e188ec..000000000
--- a/sal/osl/w32/security.c
+++ /dev/null
@@ -1,965 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#include "system.h"
-
-#include <osl/security.h>
-#include <osl/diagnose.h>
-#include <osl/thread.h>
-#include <osl/file.h>
-#include <systools/win32/uwinapi.h>
-#include <sal/macros.h>
-#include "secimpl.h"
-
-/*****************************************************************************/
-/* Data Type Definition */
-/*****************************************************************************/
-
-
-/* Data for use in (un)LoadProfile Functions */
-/* Declarations based on USERENV.H for Windows 2000 Beta 2 */
-#define PI_NOUI 0x00000001 // Prevents displaying of messages
-#define PI_APPLYPOLICY 0x00000002 // Apply NT4 style policy
-
-typedef struct _PROFILEINFOW {
- DWORD dwSize; // Must be set to sizeof(PROFILEINFO)
- DWORD dwFlags; // See flags above
- LPWSTR lpUserName; // User name (required)
- LPWSTR lpProfilePath; // Roaming profile path
- LPWSTR lpDefaultPath; // Default user profile path
- LPWSTR lpServerName; // Validating DC name in netbios format
- LPWSTR lpPolicyPath; // Path to the NT4 style policy file
- HANDLE hProfile; // Registry key handle - filled by function
-} PROFILEINFOW, FAR * LPPROFILEINFOW;
-
-/* Typedefs for function pointers in USERENV.DLL */
-typedef BOOL (STDMETHODCALLTYPE FAR * LPFNLOADUSERPROFILE) (
- HANDLE hToken,
- LPPROFILEINFOW lpProfileInfo
-);
-
-typedef BOOL (STDMETHODCALLTYPE FAR * LPFNUNLOADUSERPROFILE) (
- HANDLE hToken,
- HANDLE hProfile
-);
-
-typedef BOOL (STDMETHODCALLTYPE FAR * LPFNGETUSERPROFILEDIR) (
- HANDLE hToken,
- LPTSTR lpProfileDir,
- LPDWORD lpcchSize
-);
-
-/* To get an impersonation token we need to create an impersonation
- duplicate so every access token has to be created with duplicate
- access rights */
-
-#define TOKEN_DUP_QUERY (TOKEN_QUERY|TOKEN_DUPLICATE)
-
-/*****************************************************************************/
-/* Static Module Function Declarations */
-/*****************************************************************************/
-
-static sal_Bool GetSpecialFolder(rtl_uString **strPath,int nFolder);
-static BOOL Privilege(LPTSTR pszPrivilege, BOOL bEnable);
-static sal_Bool SAL_CALL getUserNameImpl(oslSecurity Security, rtl_uString **strName, sal_Bool bIncludeDomain);
-
-/*****************************************************************************/
-/* Exported Module Functions */
-/*****************************************************************************/
-
-oslSecurity SAL_CALL osl_getCurrentSecurity(void)
-{
- oslSecurityImpl* pSecImpl = malloc(sizeof(oslSecurityImpl));
-
- pSecImpl->m_pNetResource = NULL;
- pSecImpl->m_User[0] = '\0';
- pSecImpl->m_hToken = NULL;
- pSecImpl->m_hProfile = NULL;
-
- return ((oslSecurity)pSecImpl);
-}
-
-oslSecurityError SAL_CALL osl_loginUser( rtl_uString *strUserName, rtl_uString *strPasswd, oslSecurity *pSecurity )
-{
- oslSecurityError ret;
-
- sal_Unicode* strUser;
- sal_Unicode* strDomain = _wcsdup(rtl_uString_getStr(strUserName));
- HANDLE hUserToken;
-
- #if OSL_DEBUG_LEVEL > 0
- LUID luid;
- #endif
-
- if (NULL != (strUser = wcschr(strDomain, L'/')))
- *strUser++ = L'\0';
- else
- {
- strUser = strDomain;
- strDomain = NULL;
- }
-
- // this process must have the right: 'act as a part of operatingsystem'
- OSL_ASSERT(LookupPrivilegeValue(NULL, SE_TCB_NAME, &luid));
-
- if (LogonUserW(strUser, strDomain ? strDomain : L"", rtl_uString_getStr(strPasswd),
- LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT,
- &hUserToken))
- {
- oslSecurityImpl* pSecImpl = malloc(sizeof(oslSecurityImpl));
-
- pSecImpl->m_pNetResource = NULL;
- pSecImpl->m_hToken = hUserToken;
- pSecImpl->m_hProfile = NULL;
- wcscpy(pSecImpl->m_User, strUser);
-
- *pSecurity = (oslSecurity)pSecImpl;
- ret = osl_Security_E_None;
- }
- else
- ret = osl_Security_E_UserUnknown;
-
- if (strDomain)
- free(strDomain);
- else
- free(strUser);
-
- return ret;
-}
-
-oslSecurityError SAL_CALL osl_loginUserOnFileServer(rtl_uString *strUserName,
- rtl_uString *strPasswd,
- rtl_uString *strFileServer,
- oslSecurity *pSecurity)
-{
- oslSecurityError ret;
- DWORD err;
- NETRESOURCEW netResource;
- sal_Unicode* remoteName;
- sal_Unicode* userName;
-
- remoteName = malloc(rtl_uString_getLength(strFileServer) + rtl_uString_getLength(strUserName) + 4);
- userName = malloc(rtl_uString_getLength(strFileServer) + rtl_uString_getLength(strUserName) + 2);
-
- wcscpy(remoteName, L"\\\\");
- wcscat(remoteName, rtl_uString_getStr(strFileServer));
- wcscat(remoteName, L"\\");
- wcscat(remoteName, rtl_uString_getStr(strUserName));
-
- wcscpy(userName, rtl_uString_getStr(strFileServer));
- wcscat(userName, L"\\");
- wcscat(userName, rtl_uString_getStr(strUserName));
-
- netResource.dwScope = RESOURCE_GLOBALNET;
- netResource.dwType = RESOURCETYPE_DISK;
- netResource.dwDisplayType = RESOURCEDISPLAYTYPE_SHARE;
- netResource.dwUsage = RESOURCEUSAGE_CONNECTABLE;
- netResource.lpLocalName = NULL;
- netResource.lpRemoteName = remoteName;
- netResource.lpComment = NULL;
- netResource.lpProvider = NULL;
-
- err = WNetAddConnection2W(&netResource, rtl_uString_getStr(strPasswd), userName, 0);
-
- if ((err == NO_ERROR) || (err == ERROR_ALREADY_ASSIGNED))
- {
- oslSecurityImpl* pSecImpl = malloc(sizeof(oslSecurityImpl));
-
- pSecImpl->m_pNetResource = malloc(sizeof(NETRESOURCE));
- *pSecImpl->m_pNetResource = netResource;
-
- pSecImpl->m_hToken = NULL;
- pSecImpl->m_hProfile = NULL;
- wcscpy(pSecImpl->m_User, rtl_uString_getStr(strUserName));
-
- *pSecurity = (oslSecurity)pSecImpl;
-
- ret = osl_Security_E_None;
- }
- else
- ret = osl_Security_E_UserUnknown;
-
- free(remoteName);
- free(userName);
-
- return ret;
-}
-
-
-static BOOL WINAPI CheckTokenMembership_Stub( HANDLE TokenHandle, PSID SidToCheck, PBOOL IsMember )
-{
- typedef BOOL (WINAPI *CheckTokenMembership_PROC)( HANDLE, PSID, PBOOL );
-
- static HMODULE hModule = NULL;
- static CheckTokenMembership_PROC pCheckTokenMembership = NULL;
-
- if ( !hModule )
- {
- /* SAL is always linked against ADVAPI32 so we can rely on that it is already mapped */
-
- hModule = GetModuleHandleA( "ADVAPI32.DLL" );
-
- pCheckTokenMembership = (CheckTokenMembership_PROC)GetProcAddress( hModule, "CheckTokenMembership" );
- }
-
- if ( pCheckTokenMembership )
- return pCheckTokenMembership( TokenHandle, SidToCheck, IsMember );
- else
- {
- SetLastError( ERROR_CALL_NOT_IMPLEMENTED );
- return FALSE;
- }
-
-}
-
-
-sal_Bool SAL_CALL osl_isAdministrator(oslSecurity Security)
-{
- if (Security != NULL)
- {
- HANDLE hImpersonationToken = NULL;
- PSID psidAdministrators;
- SID_IDENTIFIER_AUTHORITY siaNtAuthority = SECURITY_NT_AUTHORITY;
- sal_Bool bSuccess = sal_False;
-
-
- /* If Security contains an access token we need to duplicate it to an impersonation
- access token. NULL works with CheckTokenMembership() as the current effective
- impersonation token
- */
-
- if ( ((oslSecurityImpl*)Security)->m_hToken )
- {
- if ( !DuplicateToken (((oslSecurityImpl*)Security)->m_hToken, SecurityImpersonation, &hImpersonationToken) )
- return sal_False;
- }
-
- /* CheckTokenMembership() can be used on W2K and higher (NT4 no longer supported by OOo)
- and also works on Vista to retrieve the effective user rights. Just checking for
- membership of Administrators group is not enough on Vista this would require additional
- complicated checks as described in KB arcticle Q118626: http://support.microsoft.com/kb/118626/en-us
- */
-
- if (AllocateAndInitializeSid(&siaNtAuthority,
- 2,
- SECURITY_BUILTIN_DOMAIN_RID,
- DOMAIN_ALIAS_RID_ADMINS,
- 0, 0, 0, 0, 0, 0,
- &psidAdministrators))
- {
- BOOL fSuccess = FALSE;
-
- if ( CheckTokenMembership_Stub( hImpersonationToken, psidAdministrators, &fSuccess ) && fSuccess )
- bSuccess = sal_True;
-
- FreeSid(psidAdministrators);
- }
-
- if ( hImpersonationToken )
- CloseHandle( hImpersonationToken );
-
- return (bSuccess);
- }
- else
- return (sal_False);
-}
-
-
-void SAL_CALL osl_freeSecurityHandle(oslSecurity Security)
-{
- if (Security)
- {
- oslSecurityImpl *pSecImpl = (oslSecurityImpl*)Security;
-
- if (pSecImpl->m_pNetResource != NULL)
- {
- WNetCancelConnection2W(pSecImpl->m_pNetResource->lpRemoteName, 0, sal_True);
-
- free(pSecImpl->m_pNetResource->lpRemoteName);
- free(pSecImpl->m_pNetResource);
- }
-
- if (pSecImpl->m_hToken)
- CloseHandle(pSecImpl->m_hToken);
-
- if ( pSecImpl->m_hProfile )
- CloseHandle(pSecImpl->m_hProfile);
-
- free (pSecImpl);
- }
-}
-
-
-sal_Bool SAL_CALL osl_getUserIdent(oslSecurity Security, rtl_uString **strIdent)
-{
- if (Security != NULL)
- {
- oslSecurityImpl *pSecImpl = (oslSecurityImpl*)Security;
-
- HANDLE hAccessToken = pSecImpl->m_hToken;
-
- if (hAccessToken == NULL)
- OpenProcessToken(GetCurrentProcess(), TOKEN_DUP_QUERY, &hAccessToken);
-
- if (hAccessToken)
- {
- sal_Char *Ident;
- DWORD nInfoBuffer = 512;
- UCHAR* pInfoBuffer = malloc(nInfoBuffer);
-
-
- while (!GetTokenInformation(hAccessToken, TokenUser,
- pInfoBuffer, nInfoBuffer, &nInfoBuffer))
- {
- if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
- {
- UCHAR* pTmp = realloc(pInfoBuffer, nInfoBuffer);
- if (pTmp)
- pInfoBuffer = pTmp;
- else
- {
- free(pInfoBuffer);
- pInfoBuffer = NULL;
- break;
- }
- }
- else
- {
- free(pInfoBuffer);
- pInfoBuffer = NULL;
- break;
- }
- }
-
- if (pSecImpl->m_hToken == NULL)
- CloseHandle(hAccessToken);
-
- if (pInfoBuffer)
- {
- PSID pSid = ((PTOKEN_USER)pInfoBuffer)->User.Sid;
- PSID_IDENTIFIER_AUTHORITY psia;
- DWORD dwSubAuthorities;
- DWORD dwSidRev=SID_REVISION;
- DWORD dwCounter;
- DWORD dwSidSize;
-
- /* obtain SidIdentifierAuthority */
- psia=GetSidIdentifierAuthority(pSid);
-
- /* obtain sidsubauthority count */
- dwSubAuthorities=min(*GetSidSubAuthorityCount(pSid), 5);
-
- /* buffer length: S-SID_REVISION- + identifierauthority- + subauthorities- + NULL */
- Ident=malloc(88*sizeof(sal_Char));
-
- /* prepare S-SID_REVISION- */
- dwSidSize=wsprintf(Ident, TEXT("S-%lu-"), dwSidRev);
-
- /* prepare SidIdentifierAuthority */
- if ((psia->Value[0] != 0) || (psia->Value[1] != 0))
- {
- dwSidSize+=wsprintf(Ident + strlen(Ident),
- TEXT("0x%02hx%02hx%02hx%02hx%02hx%02hx"),
- (USHORT)psia->Value[0],
- (USHORT)psia->Value[1],
- (USHORT)psia->Value[2],
- (USHORT)psia->Value[3],
- (USHORT)psia->Value[4],
- (USHORT)psia->Value[5]);
- }
- else
- {
- dwSidSize+=wsprintf(Ident + strlen(Ident),
- TEXT("%lu"),
- (ULONG)(psia->Value[5] ) +
- (ULONG)(psia->Value[4] << 8) +
- (ULONG)(psia->Value[3] << 16) +
- (ULONG)(psia->Value[2] << 24) );
- }
-
- /* loop through SidSubAuthorities */
- for (dwCounter=0; dwCounter < dwSubAuthorities; dwCounter++)
- {
- dwSidSize+=wsprintf(Ident + dwSidSize, TEXT("-%lu"),
- *GetSidSubAuthority(pSid, dwCounter) );
- }
-
- rtl_uString_newFromAscii( strIdent, Ident );
-
- free(pInfoBuffer);
- free(Ident);
-
- return (sal_True);
- }
- }
- else
- {
- DWORD needed=0;
- sal_Unicode *Ident;
-
- WNetGetUserA(NULL, NULL, &needed);
- needed = max( 16 , needed );
- Ident=malloc(needed*sizeof(sal_Unicode));
-
- if (WNetGetUserW(NULL, Ident, &needed) != NO_ERROR)
- {
- wcscpy(Ident, L"unknown");
- Ident[7] = L'\0';
- }
-
- rtl_uString_newFromStr( strIdent, Ident);
-
- free(Ident);
-
- return sal_True;
- }
- }
-
- return sal_False;
-}
-
-
-
-sal_Bool SAL_CALL osl_getUserName(oslSecurity Security, rtl_uString **strName)
-{
- return getUserNameImpl(Security, strName, sal_True);
-}
-
-
-sal_Bool SAL_CALL osl_getHomeDir(oslSecurity Security, rtl_uString **pustrDirectory)
-{
- rtl_uString *ustrSysDir = NULL;
- sal_Bool bSuccess = sal_False;
-
- if (Security != NULL)
- {
- oslSecurityImpl *pSecImpl = (oslSecurityImpl*)Security;
-
- if (pSecImpl->m_pNetResource != NULL)
- {
- rtl_uString_newFromStr( &ustrSysDir, pSecImpl->m_pNetResource->lpRemoteName);
-
- bSuccess = (sal_Bool)(osl_File_E_None == osl_getFileURLFromSystemPath( ustrSysDir, pustrDirectory ));
- }
- else
- {
-#if 0
- if (pSecImpl->m_hToken)
- {
- DWORD nInfoBuffer = 512;
- UCHAR* pInfoBuffer = malloc(nInfoBuffer);
-
- while (!GetTokenInformation(pSecImpl->m_hToken, TokenUser,
- pInfoBuffer, nInfoBuffer, &nInfoBuffer))
- {
- if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
- pInfoBuffer = realloc(pInfoBuffer, nInfoBuffer);
- else
- {
- free(pInfoBuffer);
- pInfoBuffer = NULL;
- break;
- }
- }
-
- /* not implemented */
- OSL_ASSERT(sal_False);
-
- if (pInfoBuffer)
- {
- /* if (EqualSid() ... */
-
- }
- }
- else
-#endif
-
- bSuccess = (sal_Bool)(GetSpecialFolder(&ustrSysDir, CSIDL_PERSONAL) &&
- (osl_File_E_None == osl_getFileURLFromSystemPath(ustrSysDir, pustrDirectory)));
- }
- }
-
- if ( ustrSysDir )
- rtl_uString_release( ustrSysDir );
-
- return bSuccess;
-}
-
-sal_Bool SAL_CALL osl_getConfigDir(oslSecurity Security, rtl_uString **pustrDirectory)
-{
- sal_Bool bSuccess = sal_False;
-
- if (Security != NULL)
- {
- oslSecurityImpl *pSecImpl = (oslSecurityImpl*)Security;
-
- if (pSecImpl->m_pNetResource != NULL)
- {
- rtl_uString *ustrSysDir = NULL;
-
- rtl_uString_newFromStr( &ustrSysDir, pSecImpl->m_pNetResource->lpRemoteName);
- bSuccess = (sal_Bool)(osl_File_E_None == osl_getFileURLFromSystemPath( ustrSysDir, pustrDirectory));
-
- if ( ustrSysDir )
- rtl_uString_release( ustrSysDir );
- }
- else
- {
- if (pSecImpl->m_hToken)
- {
- /* not implemented */
- OSL_ASSERT(sal_False);
- }
- else
- {
- rtl_uString *ustrFile = NULL;
- sal_Unicode sFile[_MAX_PATH];
-
- if ( !GetSpecialFolder( &ustrFile, CSIDL_APPDATA) )
- {
- OSL_VERIFY(GetWindowsDirectoryW(sFile, _MAX_DIR) > 0);
-
- rtl_uString_newFromStr( &ustrFile, sFile);
- }
-
- bSuccess = (sal_Bool)(osl_File_E_None == osl_getFileURLFromSystemPath(ustrFile, pustrDirectory));
-
- if ( ustrFile )
- rtl_uString_release( ustrFile );
- }
- }
- }
-
- return bSuccess;
-}
-
-
-sal_Bool SAL_CALL osl_loadUserProfile(oslSecurity Security)
-{
- /* CreateProcessAsUser does not load the specified user's profile
- into the HKEY_USERS registry key. This means that access to information
- in the HKEY_CURRENT_USER registry key may not produce results consistent
- with a normal interactive logon.
- It is your responsibility to load the user's registry hive into HKEY_USERS
- with the LoadUserProfile function before calling CreateProcessAsUser.
- */
- BOOL bOk = FALSE;
-
- RegCloseKey(HKEY_CURRENT_USER);
-
- if (Privilege(SE_RESTORE_NAME, TRUE))
- {
- HMODULE hUserEnvLib = NULL;
- LPFNLOADUSERPROFILE fLoadUserProfile = NULL;
- LPFNUNLOADUSERPROFILE fUnloadUserProfile = NULL;
- HANDLE hAccessToken = ((oslSecurityImpl*)Security)->m_hToken;
- DWORD nError = 0;
-
- /* try to create user profile */
- if ( !hAccessToken )
- {
- /* retrieve security handle if not done before e.g. osl_getCurrentSecurity()
- */
- HANDLE hProcess = GetCurrentProcess();
-
- if (hProcess != NULL)
- {
- OpenProcessToken(hProcess, TOKEN_IMPERSONATE, &hAccessToken);
- CloseHandle(hProcess);
- }
- }
-
- hUserEnvLib = LoadLibraryA("userenv.dll");
-
- if (hUserEnvLib)
- {
- fLoadUserProfile = (LPFNLOADUSERPROFILE)GetProcAddress(hUserEnvLib, "LoadUserProfileW");
- fUnloadUserProfile = (LPFNUNLOADUSERPROFILE)GetProcAddress(hUserEnvLib, "UnloadUserProfile");
-
- if (fLoadUserProfile && fUnloadUserProfile)
- {
- rtl_uString *buffer = 0;
- PROFILEINFOW pi;
-
- getUserNameImpl(Security, &buffer, sal_False);
-
- ZeroMemory( &pi, sizeof(pi) );
- pi.dwSize = sizeof(pi);
- pi.lpUserName = rtl_uString_getStr(buffer);
- pi.dwFlags = PI_NOUI;
-
- if (fLoadUserProfile(hAccessToken, &pi))
- {
- fUnloadUserProfile(hAccessToken, pi.hProfile);
-
- bOk = TRUE;
- }
- else
- nError = GetLastError();
-
- rtl_uString_release(buffer);
- }
-
- FreeLibrary(hUserEnvLib);
- }
-
- if (hAccessToken && (hAccessToken != ((oslSecurityImpl*)Security)->m_hToken))
- CloseHandle(hAccessToken);
- }
-
- return (sal_Bool)bOk;
-}
-
-
-void SAL_CALL osl_unloadUserProfile(oslSecurity Security)
-{
- if ( ((oslSecurityImpl*)Security)->m_hProfile != NULL )
- {
- HMODULE hUserEnvLib = NULL;
- LPFNLOADUSERPROFILE fLoadUserProfile = NULL;
- LPFNUNLOADUSERPROFILE fUnloadUserProfile = NULL;
- BOOL bOk = FALSE;
- HANDLE hAccessToken = ((oslSecurityImpl*)Security)->m_hToken;
-
- if ( !hAccessToken )
- {
- /* retrieve security handle if not done before e.g. osl_getCurrentSecurity()
- */
- HANDLE hProcess = GetCurrentProcess();
-
- if (hProcess != NULL)
- {
- OpenProcessToken(hProcess, TOKEN_IMPERSONATE, &hAccessToken);
- CloseHandle(hProcess);
- }
- }
-
- hUserEnvLib = LoadLibrary("userenv.dll");
-
- if (hUserEnvLib)
- {
- fLoadUserProfile = (LPFNLOADUSERPROFILE)GetProcAddress(hUserEnvLib, "LoadUserProfileA");
- fUnloadUserProfile = (LPFNUNLOADUSERPROFILE)GetProcAddress(hUserEnvLib, "UnloadUserProfile");
-
- if (fLoadUserProfile && fUnloadUserProfile)
- {
- /* unloading the user profile */
- if (fLoadUserProfile && fUnloadUserProfile)
- bOk = fUnloadUserProfile(hAccessToken, ((oslSecurityImpl*)Security)->m_hProfile);
-
- if (hUserEnvLib)
- FreeLibrary(hUserEnvLib);
- }
- }
-
- ((oslSecurityImpl*)Security)->m_hProfile;
-
- if (hAccessToken && (hAccessToken != ((oslSecurityImpl*)Security)->m_hToken))
- {
- CloseHandle(hAccessToken);
- }
- }
-}
-
-/*****************************************************************************/
-/* Static Module Functions */
-/*****************************************************************************/
-
-
-static sal_Bool GetSpecialFolder(rtl_uString **strPath, int nFolder)
-{
- sal_Bool bRet = sal_False;
- HINSTANCE hLibrary;
- sal_Char PathA[_MAX_PATH];
- sal_Unicode PathW[_MAX_PATH];
-
- if ((hLibrary = LoadLibrary("shell32.dll")) != NULL)
- {
- BOOL (WINAPI *pSHGetSpecialFolderPathA)(HWND, LPSTR, int, BOOL);
- BOOL (WINAPI *pSHGetSpecialFolderPathW)(HWND, LPWSTR, int, BOOL);
-
- pSHGetSpecialFolderPathA = (BOOL (WINAPI *)(HWND, LPSTR, int, BOOL))GetProcAddress(hLibrary, "SHGetSpecialFolderPathA");
- pSHGetSpecialFolderPathW = (BOOL (WINAPI *)(HWND, LPWSTR, int, BOOL))GetProcAddress(hLibrary, "SHGetSpecialFolderPathW");
-
- if (pSHGetSpecialFolderPathA)
- {
- if (pSHGetSpecialFolderPathA(GetActiveWindow(), PathA, nFolder, TRUE))
- {
- rtl_string2UString( strPath, PathA, strlen(PathA), osl_getThreadTextEncoding(), OUSTRING_TO_OSTRING_CVTFLAGS);
- OSL_ASSERT(*strPath != NULL);
- bRet = sal_True;
- }
- }
- else if (pSHGetSpecialFolderPathW)
- {
- if (pSHGetSpecialFolderPathW(GetActiveWindow(), PathW, nFolder, TRUE))
- {
- rtl_uString_newFromStr( strPath, PathW);
- bRet = sal_True;
- }
- }
- else
- {
- HRESULT (WINAPI *pSHGetSpecialFolderLocation)(HWND, int, LPITEMIDLIST *) = (HRESULT (WINAPI *)(HWND, int, LPITEMIDLIST *))GetProcAddress(hLibrary, "SHGetSpecialFolderLocation");
- BOOL (WINAPI *pSHGetPathFromIDListA)(LPCITEMIDLIST, LPSTR) = (BOOL (WINAPI *)(LPCITEMIDLIST, LPSTR))GetProcAddress(hLibrary, "SHGetPathFromIDListA");
- BOOL (WINAPI *pSHGetPathFromIDListW)(LPCITEMIDLIST, LPWSTR) = (BOOL (WINAPI *)(LPCITEMIDLIST, LPWSTR))GetProcAddress(hLibrary, "SHGetPathFromIDListW");
- HRESULT (WINAPI *pSHGetMalloc)(LPMALLOC *) = (HRESULT (WINAPI *)(LPMALLOC *))GetProcAddress(hLibrary, "SHGetMalloc");
-
-
- if (pSHGetSpecialFolderLocation && (pSHGetPathFromIDListA || pSHGetPathFromIDListW ) && pSHGetMalloc )
- {
- LPITEMIDLIST pidl;
- LPMALLOC pMalloc;
- HRESULT hr;
-
- hr = pSHGetSpecialFolderLocation(GetActiveWindow(), nFolder, &pidl);
-
- /* Get SHGetSpecialFolderLocation fails if directory does not exists. */
- /* If it fails we try to create the directory and redo the call */
- if (! SUCCEEDED(hr))
- {
- HKEY hRegKey;
-
- if (RegOpenKey(HKEY_CURRENT_USER,
- "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders",
- &hRegKey) == ERROR_SUCCESS)
- {
- LONG lRet;
- DWORD lSize = SAL_N_ELEMENTS(PathA);
- DWORD Type = REG_SZ;
-
- switch (nFolder)
- {
- case CSIDL_APPDATA:
- lRet = RegQueryValueEx(hRegKey, "AppData", NULL, &Type, (LPBYTE)PathA, &lSize);
- break;
-
- case CSIDL_PERSONAL:
- lRet = RegQueryValueEx(hRegKey, "Personal", NULL, &Type, (LPBYTE)PathA, &lSize);
- break;
-
- default:
- lRet = -1l;
- }
-
- if ((lRet == ERROR_SUCCESS) && (Type == REG_SZ))
- {
- if (_access(PathA, 0) < 0)
- CreateDirectory(PathA, NULL);
-
- hr = pSHGetSpecialFolderLocation(GetActiveWindow(), nFolder, &pidl);
- }
-
- RegCloseKey(hRegKey);
- }
- }
-
- if (SUCCEEDED(hr))
- {
- if (pSHGetPathFromIDListW && pSHGetPathFromIDListW(pidl, PathW))
- {
- /* if directory does not exist, create it */
- if (_waccess(PathW, 0) < 0)
- CreateDirectoryW(PathW, NULL);
-
- rtl_uString_newFromStr( strPath, PathW);
- bRet = sal_True;
- }
- else if (pSHGetPathFromIDListA && pSHGetPathFromIDListA(pidl, PathA))
- {
- /* if directory does not exist, create it */
- if (_access(PathA, 0) < 0)
- CreateDirectoryA(PathA, NULL);
-
- rtl_string2UString( strPath, PathA, strlen(PathA), osl_getThreadTextEncoding(), OUSTRING_TO_OSTRING_CVTFLAGS);
- OSL_ASSERT(*strPath != NULL);
- bRet = sal_True;
- }
- }
-
- if (SUCCEEDED(pSHGetMalloc(&pMalloc)))
- {
- pMalloc->lpVtbl->Free(pMalloc, pidl);
- pMalloc->lpVtbl->Release(pMalloc);
- }
- }
- }
- }
-
- FreeLibrary(hLibrary);
-
- return (bRet);
-}
-
-
-static BOOL Privilege(LPTSTR strPrivilege, BOOL bEnable)
-{
- HANDLE hToken;
- TOKEN_PRIVILEGES tp;
-
- /*
- obtain the processes token
- */
- if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_DUP_QUERY, &hToken))
- return FALSE;
-
- /*
- get the luid
- */
- if (!LookupPrivilegeValue(NULL, strPrivilege, &tp.Privileges[0].Luid))
- return FALSE;
-
- tp.PrivilegeCount = 1;
-
- if (bEnable)
- tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
- else
- tp.Privileges[0].Attributes = 0;
-
- /*
- enable or disable the privilege
- */
- if (!AdjustTokenPrivileges(hToken, FALSE, &tp, 0, (PTOKEN_PRIVILEGES)NULL, 0))
- return FALSE;
-
- if (!CloseHandle(hToken))
- return FALSE;
-
- return TRUE;
-}
-
-static sal_Bool SAL_CALL getUserNameImpl(oslSecurity Security, rtl_uString **strName, sal_Bool bIncludeDomain)
-{
- if (Security != NULL)
- {
- oslSecurityImpl *pSecImpl = (oslSecurityImpl*)Security;
-
- HANDLE hAccessToken = pSecImpl->m_hToken;
-
- if (hAccessToken == NULL)
- OpenProcessToken(GetCurrentProcess(), TOKEN_DUP_QUERY, &hAccessToken);
-
- if (hAccessToken)
- {
- DWORD nInfoBuffer = 512;
- UCHAR* pInfoBuffer = malloc(nInfoBuffer);
-
- while (!GetTokenInformation(hAccessToken, TokenUser,
- pInfoBuffer, nInfoBuffer, &nInfoBuffer))
- {
- if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
- {
- UCHAR* pTmp = realloc(pInfoBuffer, nInfoBuffer);
- if (pTmp)
- pInfoBuffer = pTmp;
- else
- {
- free(pInfoBuffer);
- pInfoBuffer = NULL;
- break;
- }
- }
- else
- {
- free(pInfoBuffer);
- pInfoBuffer = NULL;
- break;
- }
- }
-
- if (pSecImpl->m_hToken == NULL)
- CloseHandle(hAccessToken);
-
- if (pInfoBuffer)
- {
- sal_Unicode UserName[128];
- sal_Unicode DomainName[128];
- sal_Unicode Name[257];
- DWORD nUserName = sizeof(UserName);
- DWORD nDomainName = sizeof(DomainName);
- SID_NAME_USE sUse;
-
- if (LookupAccountSidW(NULL, ((PTOKEN_USER)pInfoBuffer)->User.Sid,
- UserName, &nUserName,
- DomainName, &nDomainName, &sUse))
- {
- if (bIncludeDomain)
- {
- wcscpy(Name, DomainName);
- wcscat(Name, L"/");
- wcscat(Name, UserName);
- }
- else
- {
- wcscpy(Name, UserName);
- }
- }
- rtl_uString_newFromStr( strName, Name);
-
- free(pInfoBuffer);
-
- return (sal_True);
- }
- }
- else
- {
- DWORD needed=0;
- sal_Unicode *pNameW=NULL;
-
- WNetGetUserW(NULL, NULL, &needed);
- pNameW = malloc (needed*sizeof(sal_Unicode));
-
- if (WNetGetUserW(NULL, pNameW, &needed) == NO_ERROR)
- {
- rtl_uString_newFromStr( strName, pNameW);
-
- if (pNameW)
- free(pNameW);
- return (sal_True);
- }
- else
- if (wcslen(pSecImpl->m_User) > 0)
- {
- rtl_uString_newFromStr( strName, pSecImpl->m_pNetResource->lpRemoteName);
-
- if (pNameW)
- free(pNameW);
-
- return (sal_True);
- }
-
- if (pNameW)
- free(pNameW);
- }
- }
-
- return sal_False;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/semaphor.c b/sal/osl/w32/semaphor.c
deleted file mode 100644
index e4a72268a..000000000
--- a/sal/osl/w32/semaphor.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "system.h"
-
-#include <osl/diagnose.h>
-#include <osl/semaphor.h>
-
-/*
- Implemetation notes:
- The void* represented by oslSemaphore is used
- to store a WIN32 HANDLE.
-*/
-
-
-/*****************************************************************************/
-/* osl_createSemaphore */
-/*****************************************************************************/
-oslSemaphore SAL_CALL osl_createSemaphore(sal_uInt32 initialCount)
-{
- oslSemaphore Semaphore;
-
- Semaphore= CreateSemaphore(0, initialCount, INT_MAX, 0);
-
- /* create failed? */
- if((HANDLE)Semaphore == INVALID_HANDLE_VALUE)
- {
- Semaphore= 0;
- }
-
- return Semaphore;
-}
-
-/*****************************************************************************/
-/* osl_destroySemaphore */
-/*****************************************************************************/
-void SAL_CALL osl_destroySemaphore(oslSemaphore Semaphore)
-{
-
-
- if(Semaphore != 0)
- {
- CloseHandle((HANDLE)Semaphore);
- }
-
-}
-
-/*****************************************************************************/
-/* osl_acquireSemaphore */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_acquireSemaphore(oslSemaphore Semaphore)
-{
- OSL_ASSERT(Semaphore != 0);
-
- switch ( WaitForSingleObject( (HANDLE)Semaphore, INFINITE ) )
- {
- case WAIT_OBJECT_0:
- return sal_True;
-
- default:
- return (sal_False);
- }
-}
-
-/*****************************************************************************/
-/* osl_tryToAcquireSemaphore */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_tryToAcquireSemaphore(oslSemaphore Semaphore)
-{
- OSL_ASSERT(Semaphore != 0);
- return (sal_Bool)(WaitForSingleObject((HANDLE)Semaphore, 0) == WAIT_OBJECT_0);
-}
-
-
-/*****************************************************************************/
-/* osl_releaseSemaphore */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_releaseSemaphore(oslSemaphore Semaphore)
-{
- OSL_ASSERT(Semaphore != 0);
-
- /* increase count by one, not interested in previous count */
- return (sal_Bool)(ReleaseSemaphore((HANDLE)Semaphore, 1, NULL) != FALSE);
-}
-
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/signal.cxx b/sal/osl/w32/signal.cxx
deleted file mode 100644
index 4520cbe21..000000000
--- a/sal/osl/w32/signal.cxx
+++ /dev/null
@@ -1,440 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
-*
-* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-*
-* Copyright 2000, 2010 Oracle and/or its affiliates.
-*
-* OpenOffice.org - a multi-platform office productivity suite
-*
-* This file is part of OpenOffice.org.
-*
-* OpenOffice.org is free software: you can redistribute it and/or modify
-* it under the terms of the GNU Lesser General Public License version 3
-* only, as published by the Free Software Foundation.
-*
-* OpenOffice.org is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU Lesser General Public License version 3 for more details
-* (a copy is included in the LICENSE file that accompanied this code).
-*
-* You should have received a copy of the GNU Lesser General Public License
-* version 3 along with OpenOffice.org. If not, see
-* <http://www.openoffice.org/license.html>
-* for a copy of the LGPLv3 License.
-*
-************************************************************************/
-
-/* system headers */
-#include "system.h"
-#include <tchar.h>
-
-#include "file_url.h"
-#include "path_helper.hxx"
-
-#include <osl/diagnose.h>
-#include <osl/mutex.h>
-#include <osl/signal.h>
-#ifndef __MINGW32__
-#include <DbgHelp.h>
-#endif
-#include <errorrep.h>
-#include <systools/win32/uwinapi.h>
-#include <sal/macros.h>
-
-typedef struct _oslSignalHandlerImpl
-{
- oslSignalHandlerFunction Handler;
- void* pData;
- struct _oslSignalHandlerImpl* pNext;
-} oslSignalHandlerImpl;
-
-static sal_Bool bErrorReportingEnabled = sal_True;
-static sal_Bool bInitSignal = sal_False;
-static oslMutex SignalListMutex;
-static oslSignalHandlerImpl* SignalList;
-
-static long WINAPI SignalHandlerFunction(LPEXCEPTION_POINTERS lpEP);
-
-static sal_Bool InitSignal(void)
-{
- HMODULE hFaultRep;
-
- SignalListMutex = osl_createMutex();
-
- SetUnhandledExceptionFilter(SignalHandlerFunction);
-
- hFaultRep = LoadLibrary( "faultrep.dll" );
- if ( hFaultRep )
- {
-#ifdef __MINGW32__
-typedef BOOL (WINAPI *pfn_ADDEREXCLUDEDAPPLICATIONW)(LPCWSTR);
-#endif
- pfn_ADDEREXCLUDEDAPPLICATIONW pfn = (pfn_ADDEREXCLUDEDAPPLICATIONW)GetProcAddress( hFaultRep, "AddERExcludedApplicationW" );
- if ( pfn )
- pfn( L"SOFFICE.EXE" );
- FreeLibrary( hFaultRep );
- }
-
- return sal_True;
-}
-
-static sal_Bool DeInitSignal(void)
-{
- SetUnhandledExceptionFilter(NULL);
-
- osl_destroyMutex(SignalListMutex);
-
- return sal_False;
-}
-
-static oslSignalAction CallSignalHandler(oslSignalInfo *pInfo)
-{
- oslSignalHandlerImpl* pHandler = SignalList;
- oslSignalAction Action = osl_Signal_ActCallNextHdl;
-
- while (pHandler != NULL)
- {
- if ((Action = pHandler->Handler(pHandler->pData, pInfo)) != osl_Signal_ActCallNextHdl)
- break;
-
- pHandler = pHandler->pNext;
- }
-
- return Action;
-}
-
-/*****************************************************************************/
-/* SignalHandlerFunction */
-/*****************************************************************************/
-
-#define REPORTENV_PARAM "-crashreportenv:"
-#define REPORTENV_PARAM2 "/crashreportenv:"
-
-static BOOL ReportCrash( LPEXCEPTION_POINTERS lpEP )
-{
- BOOL fSuccess = FALSE;
- BOOL fAutoReport = FALSE;
- TCHAR szBuffer[1024];
- ::osl::LongPathBuffer< sal_Char > aPath( MAX_LONG_PATH );
- LPTSTR lpFilePart;
- PROCESS_INFORMATION ProcessInfo;
- STARTUPINFO StartupInfo;
- int argi;
-
- if ( !bErrorReportingEnabled )
- return FALSE;
-
- /* Check if crash reporter was disabled by command line */
-
- for ( argi = 1; argi < __argc; argi++ )
- {
- if (
- 0 == stricmp( __argv[argi], "-nocrashreport" ) ||
- 0 == stricmp( __argv[argi], "/nocrashreport" )
- )
- return FALSE;
- else if (
- 0 == stricmp( __argv[argi], "-autocrashreport" ) ||
- 0 == stricmp( __argv[argi], "/autocrashreport" )
- )
- fAutoReport = TRUE;
- else if (
- 0 == strnicmp( __argv[argi], REPORTENV_PARAM, strlen(REPORTENV_PARAM) ) ||
- 0 == strnicmp( __argv[argi], REPORTENV_PARAM2, strlen(REPORTENV_PARAM2) )
- )
- {
- const char *envparam = __argv[argi] + strlen(REPORTENV_PARAM);
- const char *delim = strchr(envparam, '=' );
-
- if ( delim )
- {
- CHAR *lpVariable;
- CHAR *lpValue;
- const char *variable = envparam;
- size_t variable_len = delim - envparam;
- const char *value = delim + 1;
- size_t value_len = strlen(envparam) - variable_len - 1;
-
- if ( '\"' == *value )
- {
- const char *quote;
-
- value++;
- value_len--;
-
- quote = strchr( value, '\"' );
- if ( quote )
- value_len = quote - value;
- }
-
- lpVariable = reinterpret_cast< CHAR* >( _alloca( variable_len + 1 ) );
- memcpy( lpVariable, variable, variable_len );
- lpVariable[variable_len] = 0;
-
- lpValue = reinterpret_cast< CHAR* >( _alloca( value_len + 1) );
- memcpy( lpValue, value, value_len );
- lpValue[value_len] = 0;
-
- SetEnvironmentVariable( lpVariable, lpValue );
- }
- }
- }
-
- if ( SearchPath( NULL, TEXT( "crashrep.exe" ), NULL, aPath.getBufSizeInSymbols(), aPath, &lpFilePart ) )
- {
- ZeroMemory( &StartupInfo, sizeof(StartupInfo) );
- StartupInfo.cb = sizeof(StartupInfo.cb);
-
-
- sntprintf( szBuffer, SAL_N_ELEMENTS(szBuffer),
- _T("%s -p %u -excp 0x%p -t %u%s"),
- static_cast<sal_Char*>( aPath ),
- GetCurrentProcessId(),
- lpEP,
- GetCurrentThreadId(),
- fAutoReport ? _T(" -noui -send") : _T(" -noui") );
-
- if (
- CreateProcess(
- NULL,
- szBuffer,
- NULL,
- NULL,
- FALSE,
-#ifdef UNICODE
- CREATE_UNICODE_ENVIRONMENT,
-#else
- 0,
-#endif
- NULL, NULL, &StartupInfo, &ProcessInfo )
- )
- {
- DWORD dwExitCode;
-
- WaitForSingleObject( ProcessInfo.hProcess, INFINITE );
- if ( GetExitCodeProcess( ProcessInfo.hProcess, &dwExitCode ) && 0 == dwExitCode )
-
- fSuccess = TRUE;
-
- }
- }
-
- return fSuccess;
-}
-
-/*****************************************************************************/
-/* SignalHandlerFunction */
-/*****************************************************************************/
-
-static BOOL WINAPI IsWin95A(void)
-{
- OSVERSIONINFO ovi;
-
- ZeroMemory( &ovi, sizeof(ovi) );
- ovi.dwOSVersionInfoSize = sizeof(ovi);
-
- if ( GetVersionEx( &ovi ) )
- /* See MSDN January 2000 documentation of GetVersionEx */
- return (ovi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) &&
- (ovi.dwMajorVersion <= 4) &&
- (ovi.dwMinorVersion == 0) &&
- (ovi.dwBuildNumber == 0x040003B6);
-
- /* Something wrent wrong. So assume we have an older operating prior Win95 */
-
- return TRUE;
-}
-
-/* magic Microsoft C++ compiler exception constant */
-#define EXCEPTION_MSC_CPP_EXCEPTION 0xe06d7363
-
-static long WINAPI SignalHandlerFunction(LPEXCEPTION_POINTERS lpEP)
-{
- static sal_Bool bNested = sal_False;
- sal_Bool bRaiseCrashReporter = sal_False;
- oslSignalInfo Info;
- oslSignalAction Action;
-
- Info.UserSignal = lpEP->ExceptionRecord->ExceptionCode;
- Info.UserData = NULL;
-
- switch (lpEP->ExceptionRecord->ExceptionCode)
- {
- /* Transform unhandled exceptions into access violations.
- Microsoft C++ compiler (add more for other compilers if necessary).
- */
- case EXCEPTION_MSC_CPP_EXCEPTION:
- case EXCEPTION_ACCESS_VIOLATION:
- Info.Signal = osl_Signal_AccessViolation;
- bRaiseCrashReporter = sal_True;
- break;
-
- case EXCEPTION_INT_DIVIDE_BY_ZERO:
- Info.Signal = osl_Signal_IntegerDivideByZero;
- bRaiseCrashReporter = sal_True;
- break;
-
- case EXCEPTION_FLT_DIVIDE_BY_ZERO:
- Info.Signal = osl_Signal_FloatDivideByZero;
- bRaiseCrashReporter = sal_True;
- break;
-
- case EXCEPTION_BREAKPOINT:
- Info.Signal = osl_Signal_DebugBreak;
- break;
-
- default:
- Info.Signal = osl_Signal_System;
- bRaiseCrashReporter = sal_True;
- break;
- }
-
- if ( !bNested )
- {
- bNested = sal_True;
-
- if ( bRaiseCrashReporter && ReportCrash( lpEP ) || IsWin95A() )
- {
- CallSignalHandler(&Info);
- Action = osl_Signal_ActKillApp;
- }
- else
- Action = CallSignalHandler(&Info);
- }
- else
- Action = osl_Signal_ActKillApp;
-
-
- switch ( Action )
- {
- case osl_Signal_ActCallNextHdl:
- return (EXCEPTION_CONTINUE_SEARCH);
-
- case osl_Signal_ActAbortApp:
- return (EXCEPTION_EXECUTE_HANDLER);
-
- case osl_Signal_ActKillApp:
- SetErrorMode(SEM_NOGPFAULTERRORBOX);
- exit(255);
- break;
- default:
- break;
- }
-
- return (EXCEPTION_CONTINUE_EXECUTION);
-}
-
-/*****************************************************************************/
-/* osl_addSignalHandler */
-/*****************************************************************************/
-oslSignalHandler SAL_CALL osl_addSignalHandler(oslSignalHandlerFunction Handler, void* pData)
-{
- oslSignalHandlerImpl* pHandler;
-
- OSL_ASSERT(Handler != NULL);
-
- if (! bInitSignal)
- bInitSignal = InitSignal();
-
- pHandler = reinterpret_cast< oslSignalHandlerImpl* >( calloc( 1, sizeof(oslSignalHandlerImpl) ) );
-
- if (pHandler != NULL)
- {
- pHandler->Handler = Handler;
- pHandler->pData = pData;
-
- osl_acquireMutex(SignalListMutex);
-
- pHandler->pNext = SignalList;
- SignalList = pHandler;
-
- osl_releaseMutex(SignalListMutex);
-
- return (pHandler);
- }
-
- return (NULL);
-}
-
-/*****************************************************************************/
-/* osl_removeSignalHandler */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_removeSignalHandler(oslSignalHandler Handler)
-{
- oslSignalHandlerImpl *pHandler, *pPrevious = NULL;
-
- OSL_ASSERT(Handler != NULL);
-
- if (! bInitSignal)
- bInitSignal = InitSignal();
-
- osl_acquireMutex(SignalListMutex);
-
- pHandler = SignalList;
-
- while (pHandler != NULL)
- {
- if (pHandler == Handler)
- {
- if (pPrevious)
- pPrevious->pNext = pHandler->pNext;
- else
- SignalList = pHandler->pNext;
-
- osl_releaseMutex(SignalListMutex);
-
- if (SignalList == NULL)
- bInitSignal = DeInitSignal();
-
- free(pHandler);
-
- return (sal_True);
- }
-
- pPrevious = pHandler;
- pHandler = pHandler->pNext;
- }
-
- osl_releaseMutex(SignalListMutex);
-
- return (sal_False);
-}
-
-/*****************************************************************************/
-/* osl_raiseSignal */
-/*****************************************************************************/
-oslSignalAction SAL_CALL osl_raiseSignal(sal_Int32 UserSignal, void* UserData)
-{
- oslSignalInfo Info;
- oslSignalAction Action;
-
- if (! bInitSignal)
- bInitSignal = InitSignal();
-
- osl_acquireMutex(SignalListMutex);
-
- Info.Signal = osl_Signal_User;
- Info.UserSignal = UserSignal;
- Info.UserData = UserData;
-
- Action = CallSignalHandler(&Info);
-
- osl_releaseMutex(SignalListMutex);
-
- return (Action);
-}
-
-/*****************************************************************************/
-/* osl_setErrorReporting */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_setErrorReporting( sal_Bool bEnable )
-{
- sal_Bool bOld = bErrorReportingEnabled;
- bErrorReportingEnabled = bEnable;
-
- return bOld;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/socket.cxx b/sal/osl/w32/socket.cxx
deleted file mode 100644
index fe26f5e35..000000000
--- a/sal/osl/w32/socket.cxx
+++ /dev/null
@@ -1,2176 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include "system.h"
-
-#include <osl/socket.h>
-#include <osl/diagnose.h>
-#include <rtl/alloc.h>
-
-#include "sockimpl.h"
-
-extern "C" {
-
-/* defines for shutdown */
-#ifdef GCC
-# define SD_RECEIVE 0
-# define SD_SEND 1
-# define SD_BOTH 2
-#endif
-
-/*
- oslSocketAddr is a pointer to a Berkeley struct sockaddr.
- I refrained from using sockaddr_in because of possible further
- extensions of this socket-interface (IP-NG?).
- The intention was to hide all Berkeley data-structures from
- direct access past the osl-interface.
-
- The current implementation is internet (IP) centered. All
- the constructor-functions (osl_create...) take parameters
- that will probably make sense only in the IP-environment
- (e.g. because of using the dotted-Addr-format).
-
- If the interface will be extended to host other protocol-
- families, I expect no externally visible changes in the
- existing functions. You'll probably need only new
- constructor-functions who take the different Addr
- formats into consideration (maybe a long dotted Addr
- or whatever).
-*/
-
-/*
- _Note_ that I rely on the fact that oslSocketAddr and struct sockaddr
- are the same! I don't like it very much but see no other easy way to
- conceal the struct sockaddr from the eyes of the user.
-*/
-
-#define OSL_INVALID_SOCKET INVALID_SOCKET /* WIN32 */
-#define OSL_SOCKET_ERROR SOCKET_ERROR /* WIN32 */
-
-/*****************************************************************************/
-/* enum oslAddrFamily */
-/*****************************************************************************/
-
-/* map */
-static DWORD FamilyMap[]= {
- AF_INET, /* osl_Socket_FamilyInet */
- AF_IPX, /* osl_Socket_FamilyIpx */
- 0 /* osl_Socket_FamilyInvalid */
-};
-
-/* reverse map */
-static oslAddrFamily osl_AddrFamilyFromNative(DWORD nativeType)
-{
- oslAddrFamily i= (oslAddrFamily) 0;
- while(i != osl_Socket_FamilyInvalid)
- {
- if(FamilyMap[i] == nativeType)
- return i;
- i = (oslAddrFamily) ( (int)i + 1);
- }
- return i;
-}
-
-/* macros */
-#define FAMILY_FROM_NATIVE(y) osl_AddrFamilyFromNative(y)
-#define FAMILY_TO_NATIVE(x) (short)FamilyMap[x]
-
-/*****************************************************************************/
-/* enum oslProtocol */
-/*****************************************************************************/
-
-/* map */
-static DWORD ProtocolMap[]= {
- 0, /* osl_Socket_FamilyInet */
- NSPROTO_IPX, /* osl_Socket_FamilyIpx */
- NSPROTO_SPX, /* osl_Socket_ProtocolSpx */
- NSPROTO_SPXII, /* osl_Socket_ProtocolSpx_ii */
- 0 /* osl_Socket_ProtocolInvalid */
-};
-
-/* macros */
-#define PROTOCOL_FROM_NATIVE(y) osl_ProtocolFromNative(y)
-#define PROTOCOL_TO_NATIVE(x) ProtocolMap[x]
-
-/*****************************************************************************/
-/* enum oslSocketType */
-/*****************************************************************************/
-
-/* map */
-static DWORD TypeMap[]= {
- SOCK_STREAM, /* osl_Socket_TypeStream */
- SOCK_DGRAM, /* osl_Socket_TypeDgram */
- SOCK_RAW, /* osl_Socket_TypeRaw */
- SOCK_RDM, /* osl_Socket_TypeRdm */
- SOCK_SEQPACKET, /* osl_Socket_TypeSeqPacket */
- 0 /* osl_Socket_TypeInvalid */
-};
-
-/* reverse map */
-static oslSocketType osl_SocketTypeFromNative(DWORD nativeType)
-{
- oslSocketType i= (oslSocketType)0;
- while(i != osl_Socket_TypeInvalid)
- {
- if(TypeMap[i] == nativeType)
- return i;
- i = (oslSocketType)((int)i+1);
- }
- return i;
-}
-
-/* macros */
-#define TYPE_TO_NATIVE(x) TypeMap[x]
-#define TYPE_FROM_NATIVE(y) osl_SocketTypeFromNative(y)
-
-/*****************************************************************************/
-/* enum oslSocketOption */
-/*****************************************************************************/
-
-/* map */
-static DWORD OptionMap[]= {
- SO_DEBUG, /* osl_Socket_OptionDebug */
- SO_ACCEPTCONN, /* osl_Socket_OptionAcceptConn */
- SO_REUSEADDR, /* osl_Socket_OptionReuseAddr */
- SO_KEEPALIVE, /* osl_Socket_OptionKeepAlive */
- SO_DONTROUTE, /* osl_Socket_OptionDontRoute */
- SO_BROADCAST, /* osl_Socket_OptionBroadcast */
- SO_USELOOPBACK, /* osl_Socket_OptionUseLoopback */
- SO_LINGER, /* osl_Socket_OptionLinger */
- SO_OOBINLINE, /* osl_Socket_OptionOOBinLine */
- SO_SNDBUF, /* osl_Socket_OptionSndBuf */
- SO_RCVBUF, /* osl_Socket_OptionRcvBuf */
- SO_SNDLOWAT, /* osl_Socket_OptionSndLowat */
- SO_RCVLOWAT, /* osl_Socket_OptionRcvLowat */
- SO_SNDTIMEO, /* osl_Socket_OptionSndTimeo */
- SO_RCVTIMEO, /* osl_Socket_OptionRcvTimeo */
- SO_ERROR, /* osl_Socket_OptionError */
- SO_TYPE, /* osl_Socket_OptionType */
- TCP_NODELAY, /* osl_Socket_OptionTcpNoDelay */
- 0 /* osl_Socket_OptionInvalid */
-};
-
-/* macros */
-#define OPTION_TO_NATIVE(x) OptionMap[x]
-#define OPTION_FROM_NATIVE(y) osl_SocketOptionFromNative(y)
-
-/*****************************************************************************/
-/* enum oslSocketOptionLevel */
-/*****************************************************************************/
-
-static DWORD OptionLevelMap[]= {
- SOL_SOCKET, /* osl_Socket_LevelSocket */
- IPPROTO_TCP, /* osl_Socket_LevelTcp */
- 0 /* osl_invalid_SocketLevel */
-};
-
-/* macros */
-#define OPTION_LEVEL_TO_NATIVE(x) OptionLevelMap[x]
-#define OPTION_LEVEL_FROM_NATIVE(y) osl_SocketOptionLevelFromNative(y)
-
-/*****************************************************************************/
-/* enum oslSocketMsgFlag */
-/*****************************************************************************/
-
-static DWORD SocketMsgFlagMap[]= {
- 0, /* osl_Socket_MsgNormal */
- MSG_OOB, /* osl_Socket_MsgOOB */
- MSG_PEEK, /* osl_Socket_MsgPeek */
- MSG_DONTROUTE, /* osl_Socket_MsgDontRoute */
- MSG_MAXIOVLEN /* osl_Socket_MsgMaxIOVLen */
-};
-
-/* macros */
-#define MSG_FLAG_TO_NATIVE(x) SocketMsgFlagMap[x]
-#define MSG_FLAG_FROM_NATIVE(y) osl_SocketMsgFlagFromNative(y)
-
-/*****************************************************************************/
-/* enum oslSocketDirection */
-/*****************************************************************************/
-
-static DWORD SocketDirection[]= {
- SD_RECEIVE, /* osl_Socket_DirRead */
- SD_SEND, /* osl_Socket_DirWrite */
- SD_BOTH /* osl_Socket_DirReadwrite */
-};
-
-/* macros */
-#define DIRECTION_TO_NATIVE(x) SocketDirection[x]
-#define DIRECTION_FROM_NATIVE(y) osl_SocketDirectionFromNative(y)
-
-/*****************************************************************************/
-/* enum oslSocketError */
-/*****************************************************************************/
-
-static int SocketError[]= {
-
- 0, /* no error */
- WSAENOTSOCK, /* Socket operation on non-socket */
- WSAEDESTADDRREQ, /* Destination address required */
- WSAEMSGSIZE, /* Message too long */
- WSAEPROTOTYPE, /* Protocol wrong type for socket */
- WSAENOPROTOOPT, /* Protocol not available */
- WSAEPROTONOSUPPORT, /* Protocol not supported */
- WSAESOCKTNOSUPPORT, /* Socket type not supported */
- WSAEOPNOTSUPP, /* Operation not supported on socket */
- WSAEPFNOSUPPORT, /* Protocol family not supported */
- WSAEAFNOSUPPORT, /* Address family not supported by */
- /* protocol family */
- WSAEADDRINUSE, /* Address already in use */
- WSAEADDRNOTAVAIL, /* Can't assign requested address */
- WSAENETDOWN, /* Network is down */
- WSAENETUNREACH, /* Network is unreachable */
- WSAENETRESET, /* Network dropped connection because */
- /* of reset */
- WSAECONNABORTED, /* Software caused connection abort */
- WSAECONNRESET, /* Connection reset by peer */
- WSAENOBUFS, /* No buffer space available */
- WSAEISCONN, /* Socket is already connected */
- WSAENOTCONN, /* Socket is not connected */
- WSAESHUTDOWN, /* Can't send after socket shutdown */
- WSAETOOMANYREFS, /* Too many references: can't splice */
- WSAETIMEDOUT, /* Connection timed out */
- WSAECONNREFUSED, /* Connection refused */
- WSAEHOSTDOWN, /* Host is down */
- WSAEHOSTUNREACH, /* No route to host */
- WSAEWOULDBLOCK, /* call would block on non-blocking socket */
- WSAEALREADY, /* operation already in progress */
- WSAEINPROGRESS /* operation now in progress */
-};
-
-/* reverse map */
-static oslSocketError osl_SocketErrorFromNative(int nativeType)
-{
- oslSocketError i= (oslSocketError)0;
-
- while(i != osl_Socket_E_InvalidError)
- {
- if(SocketError[i] == nativeType)
- return i;
-
- i = (oslSocketError)( (int) i + 1);
- }
- return i;
-}
-
-/* macros */
-#define ERROR_TO_NATIVE(x) SocketError[x]
-#define ERROR_FROM_NATIVE(y) osl_SocketErrorFromNative(y)
-
-/*****************************************************************************/
-/* oslSocketDialupImpl */
-/*****************************************************************************/
-static oslSocketDialupImpl *pDialupImpl = NULL;
-
-/*
- * __osl_createSocketDialupImpl.
- */
-static oslSocketDialupImpl* __osl_createSocketDialupImpl (void)
-{
- oslSocketDialupImpl *pImpl;
- pImpl = (oslSocketDialupImpl*)rtl_allocateZeroMemory( sizeof (oslSocketDialupImpl));
-
- InitializeCriticalSection (&pImpl->m_hMutex);
-
- return (pImpl);
-}
-
-/*
- * __osl_initSocketDialupImpl.
- */
-static void __osl_initSocketDialupImpl (oslSocketDialupImpl *pImpl)
-{
-#ifdef SOCKET_USE_AUTODIAL
- if (pImpl)
- {
- HINSTANCE hModule;
-
- EnterCriticalSection (&pImpl->m_hMutex);
-
- hModule = LoadLibrary (INTERNET_MODULE_NAME);
- if (!(hModule <= (HINSTANCE)HINSTANCE_ERROR))
- {
- pImpl->m_pfnAttemptConnect = (INTERNETATTEMPTCONNECT)
- (GetProcAddress (hModule, "InternetAttemptConnect"));
- pImpl->m_pfnAutodial = (INTERNETAUTODIAL)
- (GetProcAddress (hModule, "InternetAutodial"));
- pImpl->m_pfnAutodialHangup = (INTERNETAUTODIALHANGUP)
- (GetProcAddress (hModule, "InternetAutodialHangup"));
- pImpl->m_pfnGetConnectedState = (INTERNETGETCONNECTEDSTATE)
- (GetProcAddress (hModule, "InternetGetConnectedState"));
- pImpl->m_hModule = hModule;
- }
-
- LeaveCriticalSection (&pImpl->m_hMutex);
- }
-#else
- (void)pImpl;
-#endif
-}
-
-/*
- * __osl_destroySocketDialupImpl.
- */
-static void __osl_destroySocketDialupImpl (oslSocketDialupImpl *pImpl)
-{
- if (pImpl)
- {
- EnterCriticalSection (&pImpl->m_hMutex);
-
- if (pImpl->m_dwFlags & INTERNET_CONNECTION_HANGUP)
- {
- if (pImpl->m_pfnAutodialHangup)
- {
- (pImpl->m_pfnAutodialHangup)(0);
- pImpl->m_dwFlags &= ~INTERNET_CONNECTION_HANGUP;
- }
- }
-
- if (pImpl->m_hModule)
- FreeLibrary (pImpl->m_hModule);
-
- LeaveCriticalSection (&pImpl->m_hMutex);
- DeleteCriticalSection (&pImpl->m_hMutex);
-
- rtl_freeMemory (pImpl);
- }
-}
-
-/*
- * __osl_querySocketDialupImpl.
- */
-static sal_Bool __osl_querySocketDialupImpl (void)
-{
- sal_Bool result;
-
- if (pDialupImpl == NULL)
- {
- pDialupImpl = __osl_createSocketDialupImpl();
- __osl_initSocketDialupImpl (pDialupImpl);
- }
-
- EnterCriticalSection (&pDialupImpl->m_hMutex);
-
- result = sal_True;
- if (pDialupImpl->m_pfnGetConnectedState)
- {
- DWORD dwFlags = 0;
-
- result = (sal_Bool)(pDialupImpl->m_pfnGetConnectedState)(&dwFlags, 0);
- pDialupImpl->m_dwFlags |= dwFlags;
- }
-
- LeaveCriticalSection (&pDialupImpl->m_hMutex);
- return (result);
-}
-
-/*
- * __osl_attemptSocketDialupImpl.
- */
-static sal_Bool __osl_attemptSocketDialupImpl (void)
-{
- sal_Bool result;
-
- if (pDialupImpl == NULL)
- {
- pDialupImpl = __osl_createSocketDialupImpl();
- __osl_initSocketDialupImpl (pDialupImpl);
- }
-
- EnterCriticalSection (&pDialupImpl->m_hMutex);
-
- result = __osl_querySocketDialupImpl();
- if (!result)
- {
- result = sal_True;
- if (pDialupImpl->m_pfnAutodial)
- {
- result = (sal_Bool)(pDialupImpl->m_pfnAutodial)(0, 0);
- if (result)
- pDialupImpl->m_dwFlags |= INTERNET_CONNECTION_HANGUP;
- else
- WSASetLastError (WSAENETDOWN);
- }
- }
-
- LeaveCriticalSection (&pDialupImpl->m_hMutex);
- return (result);
-}
-
-/*****************************************************************************/
-/* oslSocketImpl */
-/*****************************************************************************/
-static sal_uInt32 g_nSocketImpl = 0;
-
-#if OSL_DEBUG_LEVEL > 1
-static sal_uInt32 g_nSocketAddr = 0;
-struct LeakWarning
-{
- ~LeakWarning()
- {
- if( g_nSocketImpl )
- OSL_TRACE( "sal_socket: %d socket instances leak\n" , g_nSocketImpl );
- if( g_nSocketAddr )
- OSL_TRACE( "sal_socket: %d socket address instances leak\n" , g_nSocketAddr );
- }
-};
-LeakWarning socketWarning;
-#endif
-
-/*
- * __osl_createSocketImpl.
- */
-oslSocket __osl_createSocketImpl(SOCKET Socket)
-{
- oslSocket pSockImpl = (oslSocket) rtl_allocateZeroMemory( sizeof(struct oslSocketImpl));
- pSockImpl->m_Socket = Socket;
- pSockImpl->m_nRefCount = 1;
-
- g_nSocketImpl++;
-
- return (pSockImpl);
-}
-
-/*
- * __osl_destroySocketImpl.
- */
-void __osl_destroySocketImpl(oslSocketImpl *pImpl)
-{
- if (pImpl)
- {
- if (--g_nSocketImpl == 0)
- {
- __osl_destroySocketDialupImpl (pDialupImpl);
- pDialupImpl = NULL;
- }
- rtl_freeMemory (pImpl);
- }
-}
-/*****************************************************************************/
-static oslSocketAddr __osl_createSocketAddr( )
-{
- oslSocketAddr pAddr = (oslSocketAddr) rtl_allocateZeroMemory( sizeof( struct oslSocketAddrImpl ));
- pAddr->m_nRefCount = 1;
-#if OSL_DEBUG_LEVEL > 1
- g_nSocketAddr ++;
-#endif
- return pAddr;
-}
-
-static oslSocketAddr __osl_createSocketAddrWithFamily(
- oslAddrFamily family, sal_Int32 port, sal_uInt32 nAddr )
-{
- OSL_ASSERT( family == osl_Socket_FamilyInet );
-
- oslSocketAddr pAddr = __osl_createSocketAddr();
- switch( family )
- {
- case osl_Socket_FamilyInet:
- {
- struct sockaddr_in* pInetAddr= (struct sockaddr_in*)&(pAddr->m_sockaddr);
-
- pInetAddr->sin_family = FAMILY_TO_NATIVE(osl_Socket_FamilyInet);
- pInetAddr->sin_addr.s_addr = nAddr;
- pInetAddr->sin_port = (sal_uInt16)(port&0xffff);
- break;
- }
- default:
- pAddr->m_sockaddr.sa_family = FAMILY_TO_NATIVE(family);
- }
- return pAddr;
-}
-
-static oslSocketAddr __osl_createSocketAddrFromSystem( struct sockaddr *pSystemSockAddr )
-{
- oslSocketAddr pAddr = __osl_createSocketAddr();
- memcpy( &(pAddr->m_sockaddr), pSystemSockAddr, sizeof( sockaddr ) );
- return pAddr;
-}
-
-static void __osl_destroySocketAddr( oslSocketAddr addr )
-{
-#if OSL_DEBUG_LEVEL > 1
- g_nSocketAddr --;
-#endif
- rtl_freeMemory( addr );
-}
-/*****************************************************************************/
-/* osl_createEmptySocketAddr */
-/*****************************************************************************/
-oslSocketAddr SAL_CALL osl_createEmptySocketAddr(oslAddrFamily Family)
-{
- oslSocketAddr pAddr = 0;
-
- /* is it an internet-Addr? */
- if (Family == osl_Socket_FamilyInet)
- {
- pAddr = __osl_createSocketAddrWithFamily(Family, 0 , htonl(INADDR_ANY) );
- }
- else
- {
- pAddr = __osl_createSocketAddrWithFamily( Family , 0 , 0 );
- }
-
- return pAddr;
-}
-
-/*****************************************************************************/
-/* osl_copySocketAddr */
-/*****************************************************************************/
-// @deprecated, to be removed
-oslSocketAddr SAL_CALL osl_copySocketAddr(oslSocketAddr Addr)
-{
- oslSocketAddr pCopy = 0;
- if (Addr)
- {
- pCopy = __osl_createSocketAddr();
-
- if (pCopy)
- memcpy(&(pCopy->m_sockaddr),&(Addr->m_sockaddr), sizeof(struct sockaddr));
- }
- return pCopy;
-}
-
-/*****************************************************************************/
-/* osl_isEqualSocketAddr */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_isEqualSocketAddr(oslSocketAddr Addr1, oslSocketAddr Addr2)
-{
- OSL_ASSERT(Addr1);
- OSL_ASSERT(Addr2);
- struct sockaddr* pAddr1= &(Addr1->m_sockaddr);
- struct sockaddr* pAddr2= &(Addr2->m_sockaddr);
-
- OSL_ASSERT(pAddr1);
- OSL_ASSERT(pAddr2);
-
- if (pAddr1->sa_family == pAddr2->sa_family)
- {
- switch (pAddr1->sa_family)
- {
- case AF_INET:
- {
- struct sockaddr_in* pInetAddr1= (struct sockaddr_in*)pAddr1;
- struct sockaddr_in* pInetAddr2= (struct sockaddr_in*)pAddr2;
-
- if ((pInetAddr1->sin_family == pInetAddr2->sin_family) &&
- (pInetAddr1->sin_addr.s_addr == pInetAddr2->sin_addr.s_addr) &&
- (pInetAddr1->sin_port == pInetAddr2->sin_port))
- return (sal_True);
- }
-
- default:
- {
- return (memcmp(pAddr1, pAddr2, sizeof(struct sockaddr)) == 0);
- }
- }
- }
-
- return (sal_False);
-}
-
-/*****************************************************************************/
-/* osl_createInetBroadcastAddr */
-/*****************************************************************************/
-oslSocketAddr SAL_CALL osl_createInetBroadcastAddr (
- rtl_uString *strDottedAddr,
- sal_Int32 Port)
-{
- sal_uInt32 nAddr = OSL_INADDR_NONE;
-
- if (strDottedAddr && strDottedAddr->length)
- {
- /* Dotted host address for limited broadcast */
- rtl_String *pDottedAddr = NULL;
-
- rtl_uString2String (
- &pDottedAddr, strDottedAddr->buffer, strDottedAddr->length,
- RTL_TEXTENCODING_UTF8, OUSTRING_TO_OSTRING_CVTFLAGS);
-
- nAddr = inet_addr (pDottedAddr->buffer);
- rtl_string_release (pDottedAddr);
- }
-
- if (nAddr != OSL_INADDR_NONE)
- {
- /* Limited broadcast */
- nAddr = ntohl(nAddr);
- if (IN_CLASSA(nAddr))
- {
- nAddr &= IN_CLASSA_NET;
- nAddr |= IN_CLASSA_HOST;
- }
- else if (IN_CLASSB(nAddr))
- {
- nAddr &= IN_CLASSB_NET;
- nAddr |= IN_CLASSB_HOST;
- }
- else if (IN_CLASSC(nAddr))
- {
- nAddr &= IN_CLASSC_NET;
- nAddr |= IN_CLASSC_HOST;
- }
- else
- {
- /* No broadcast in class D */
- return ((oslSocketAddr)NULL);
- }
- nAddr = htonl(nAddr);
- }
-
- oslSocketAddr pAddr =
- __osl_createSocketAddrWithFamily( osl_Socket_FamilyInet, htons( (sal_uInt16) Port), nAddr );
- return pAddr;
-}
-
-/*****************************************************************************/
-/* osl_createInetSocketAddr */
-/*****************************************************************************/
-oslSocketAddr SAL_CALL osl_createInetSocketAddr (
- rtl_uString *strDottedAddr,
- sal_Int32 Port)
-{
- DWORD Addr;
- rtl_String *pDottedAddr=NULL;
-
- rtl_uString2String(
- &pDottedAddr, strDottedAddr->buffer, strDottedAddr->length,
- RTL_TEXTENCODING_UTF8, OUSTRING_TO_OSTRING_CVTFLAGS);
-
- Addr= inet_addr (pDottedAddr->buffer);
- rtl_string_release (pDottedAddr);
-
- oslSocketAddr pAddr = 0;
- if(Addr != -1)
- {
- pAddr = __osl_createSocketAddrWithFamily( osl_Socket_FamilyInet, htons( (sal_uInt16)Port), Addr );
- }
- return pAddr;
-}
-
-oslSocketResult SAL_CALL osl_setAddrOfSocketAddr( oslSocketAddr pAddr, sal_Sequence *pByteSeq )
-{
- OSL_ASSERT( pAddr );
- OSL_ASSERT( pByteSeq );
-
- oslSocketResult res = osl_Socket_Error;
- if( pAddr && pByteSeq )
- {
- OSL_ASSERT( pAddr->m_sockaddr.sa_family == FAMILY_TO_NATIVE( osl_Socket_FamilyInet ) );
- OSL_ASSERT( pByteSeq->nElements == 4 );
- struct sockaddr_in * pSystemInetAddr = (struct sockaddr_in * ) &(pAddr->m_sockaddr);
- memcpy( &(pSystemInetAddr->sin_addr) , pByteSeq->elements , 4 );
- res = osl_Socket_Ok;
- }
- return res;
-}
-
-/** Returns the addr field in the struct sockaddr. ppByteSeq is in network byteorder. *ppByteSeq may
- either be 0 or contain a constructed sal_Sequence.
- */
-oslSocketResult SAL_CALL osl_getAddrOfSocketAddr( oslSocketAddr pAddr, sal_Sequence **ppByteSeq )
-{
- OSL_ASSERT( pAddr );
- OSL_ASSERT( ppByteSeq );
-
- oslSocketResult res = osl_Socket_Error;
- if( pAddr && ppByteSeq )
- {
- struct sockaddr_in * pSystemInetAddr = (struct sockaddr_in * ) &(pAddr->m_sockaddr);
- rtl_byte_sequence_constructFromArray( ppByteSeq , (sal_Int8 *) &(pSystemInetAddr->sin_addr),4);
- res = osl_Socket_Ok;
- }
- return res;
-}
-
-/*****************************************************************************/
-/* oslHostAddr */
-/*****************************************************************************/
-struct oslHostAddrImpl {
- rtl_uString *pHostName;
- oslSocketAddr pSockAddr;
-} ;
-
-static oslHostAddr __osl_hostentToHostAddr (const struct hostent *he)
-{
- oslHostAddr pAddr= NULL;
- oslSocketAddr pSocketAddr = 0;
-
- rtl_uString *cn= NULL;
-
- if ((he == NULL) || (he->h_name == NULL) || (he->h_addr_list[0] == NULL))
- return ((oslHostAddr)NULL);
-
- rtl_string2UString(
- &cn, he->h_name, strlen(he->h_name),
- RTL_TEXTENCODING_UTF8, OUSTRING_TO_OSTRING_CVTFLAGS);
- OSL_ASSERT(cn != 0);
-
- pSocketAddr = __osl_createSocketAddr();
-
- if (pSocketAddr == NULL)
- {
- rtl_uString_release(cn);
- return ((oslHostAddr)NULL);
- }
-
- pSocketAddr->m_sockaddr.sa_family = he->h_addrtype;
- if (pSocketAddr->m_sockaddr.sa_family == FAMILY_TO_NATIVE(osl_Socket_FamilyInet))
- {
- struct sockaddr_in *sin= (struct sockaddr_in *)&(pSocketAddr->m_sockaddr);
- memcpy (
- &(sin->sin_addr.s_addr),
- he->h_addr_list[0],
- he->h_length);
- }
- else
- {
- /* unknown address family */
- /* future extensions for new families might be implemented here */
-
- OSL_TRACE("_osl_hostentToHostAddr(): unknown address family.\n");
- OSL_ASSERT(sal_False);
-
- __osl_destroySocketAddr( pSocketAddr );
- rtl_uString_release(cn);
- return ((oslHostAddr)NULL);
- }
-
- pAddr= (oslHostAddr )rtl_allocateMemory (sizeof (struct oslHostAddrImpl));
-
- if (pAddr == NULL)
- {
- __osl_destroySocketAddr( pSocketAddr );
- rtl_uString_release(cn);
- return ((oslHostAddr)NULL);
- }
-
- pAddr->pHostName= cn;
- pAddr->pSockAddr= pSocketAddr;
-
- return pAddr;
-}
-
-/*****************************************************************************/
-/* osl_createHostAddr */
-/*****************************************************************************/
-oslHostAddr SAL_CALL osl_createHostAddr (
- rtl_uString *strHostname,
- const oslSocketAddr pSocketAddr)
-{
- oslHostAddr pAddr;
- rtl_uString *cn= NULL;
-
- if ((strHostname == NULL) || (strHostname->length == 0) || (pSocketAddr == NULL))
- return ((oslHostAddr)NULL);
-
- rtl_uString_newFromString( &cn, strHostname);
-
- if ( ! pSocketAddr )
- {
- rtl_uString_release(cn);
- return ((oslHostAddr)NULL);
- }
-
- pAddr= (oslHostAddr)rtl_allocateMemory (sizeof (struct oslHostAddrImpl));
-
- if (pAddr == NULL)
- {
- rtl_uString_release(cn);
- return ((oslHostAddr)NULL);
- }
-
- pAddr->pHostName= cn;
- pAddr->pSockAddr= osl_copySocketAddr( pSocketAddr );
-
- return ((oslHostAddr)pAddr);
-}
-
-/*****************************************************************************/
-/* osl_createHostAddrByName */
-/*****************************************************************************/
-oslHostAddr SAL_CALL osl_createHostAddrByName(rtl_uString *strHostname)
-{
- if ((strHostname == NULL) || (strHostname->length == 0))
- return ((oslHostAddr)NULL);
-
- if (__osl_attemptSocketDialupImpl())
- {
- struct hostent *he;
- rtl_String *Hostname= NULL;
-
- rtl_uString2String(
- &Hostname, strHostname->buffer, strHostname->length,
- RTL_TEXTENCODING_UTF8, OUSTRING_TO_OSTRING_CVTFLAGS);
-
- he= gethostbyname (Hostname->buffer);
-
- rtl_string_release (Hostname);
- return __osl_hostentToHostAddr (he);
- }
- return ((oslHostAddr)NULL);
-}
-
-/*****************************************************************************/
-/* osl_createHostAddrByAddr */
-/*****************************************************************************/
-oslHostAddr SAL_CALL osl_createHostAddrByAddr(const oslSocketAddr pAddr)
-{
- if (pAddr == NULL)
- return ((oslHostAddr)NULL);
-
- if (pAddr->m_sockaddr.sa_family == FAMILY_TO_NATIVE(osl_Socket_FamilyInet))
- {
- const struct sockaddr_in *sin= (const struct sockaddr_in *)&(pAddr->m_sockaddr);
-
- if (sin->sin_addr.s_addr == htonl(INADDR_ANY))
- return ((oslHostAddr)NULL);
-
- if (__osl_attemptSocketDialupImpl())
- {
- struct hostent *he;
- he= gethostbyaddr ((const sal_Char *)&(sin->sin_addr),
- sizeof (sin->sin_addr),
- sin->sin_family);
- return __osl_hostentToHostAddr (he);
- }
- }
-
- return ((oslHostAddr)NULL);
-}
-
-/*****************************************************************************/
-/* osl_copyHostAddr */
-/*****************************************************************************/
-oslHostAddr SAL_CALL osl_copyHostAddr(const oslHostAddr Addr)
-{
- oslHostAddr pAddr= (oslHostAddr)Addr;
-
- if (pAddr)
- return osl_createHostAddr (pAddr->pHostName, pAddr->pSockAddr);
- else
- return ((oslHostAddr)NULL);
-}
-
-/*****************************************************************************/
-/* osl_getHostnameOfHostAddr */
-/*****************************************************************************/
-void SAL_CALL osl_getHostnameOfHostAddr(
- const oslHostAddr pAddr, rtl_uString **strHostname)
-{
- if (pAddr)
- rtl_uString_assign (strHostname, pAddr->pHostName);
- else
- rtl_uString_new (strHostname);
-}
-
-/*****************************************************************************/
-/* osl_getSocketAddrOfHostAddr */
-/*****************************************************************************/
-oslSocketAddr SAL_CALL osl_getSocketAddrOfHostAddr(const oslHostAddr pAddr)
-{
- if (pAddr)
- return (const oslSocketAddr)(pAddr->pSockAddr);
- else
- return NULL;
-}
-
-/*****************************************************************************/
-/* osl_destroyHostAddr */
-/*****************************************************************************/
-void SAL_CALL osl_destroyHostAddr(oslHostAddr pAddr)
-{
- if (pAddr)
- {
- if (pAddr->pHostName)
- rtl_uString_release (pAddr->pHostName);
- if (pAddr->pSockAddr)
- osl_destroySocketAddr( pAddr->pSockAddr );
-
- rtl_freeMemory (pAddr);
- }
-}
-
-/*****************************************************************************/
-/* osl_getLocalHostname */
-/*****************************************************************************/
-oslSocketResult SAL_CALL osl_getLocalHostname (rtl_uString **strLocalHostname)
-{
- static sal_Unicode LocalHostname[256] = {0};
-
- if (rtl_ustr_getLength(LocalHostname) == 0)
- {
- sal_Char Host[256]= "";
- if (gethostname(Host, sizeof(Host)) == 0)
- {
- /* check if we have an FQDN */
- if (strchr(Host, '.') == NULL)
- {
- oslHostAddr pAddr;
- rtl_uString *hostName= NULL;
-
- rtl_string2UString(
- &hostName, Host, strlen(Host),
- RTL_TEXTENCODING_UTF8, OUSTRING_TO_OSTRING_CVTFLAGS);
- OSL_ASSERT(hostName != 0);
-
- /* no, determine it via dns */
- pAddr = osl_createHostAddrByName(hostName);
- rtl_uString_release (hostName);
-
- if (pAddr && pAddr->pHostName)
- memcpy(LocalHostname, pAddr->pHostName->buffer, sizeof(sal_Unicode)*(rtl_ustr_getLength(pAddr->pHostName->buffer)+1));
- else
- memset(LocalHostname, 0, sizeof(LocalHostname));
-
- osl_destroyHostAddr ((oslHostAddr)pAddr);
- }
- }
- }
-
- if (rtl_ustr_getLength(LocalHostname) > 0)
- {
- rtl_uString_newFromStr (strLocalHostname, LocalHostname);
- return osl_Socket_Ok;
- }
-
- return osl_Socket_Error;
-}
-
-/*****************************************************************************/
-/* osl_resolveHostname */
-/*****************************************************************************/
-oslSocketAddr SAL_CALL osl_resolveHostname(rtl_uString* strHostname)
-{
- oslHostAddr pAddr=
- (oslHostAddr )osl_createHostAddrByName (strHostname);
- if (pAddr)
- {
- oslSocketAddr SockAddr = osl_copySocketAddr( pAddr->pSockAddr );
- osl_destroyHostAddr(pAddr);
- return (SockAddr);
- }
- return ((oslSocketAddr)NULL);
-}
-
-/*****************************************************************************/
-/* osl_getServicePort */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_getServicePort (
- rtl_uString* strServicename,
- rtl_uString* strProtocol)
-{
- struct servent* ps;
-
- rtl_String *str_Servicename=NULL;
- rtl_String *str_Protocol=NULL;
-
- rtl_uString2String(
- &str_Servicename,
- rtl_uString_getStr(strServicename),
- rtl_uString_getLength(strServicename),
- RTL_TEXTENCODING_UTF8, OUSTRING_TO_OSTRING_CVTFLAGS);
- rtl_uString2String(
- &str_Protocol,
- rtl_uString_getStr(strProtocol),
- rtl_uString_getLength(strProtocol),
- RTL_TEXTENCODING_UTF8, OUSTRING_TO_OSTRING_CVTFLAGS);
-
- ps= getservbyname(
- rtl_string_getStr(str_Servicename),
- rtl_string_getStr(str_Protocol));
-
- rtl_string_release( str_Servicename );
- rtl_string_release( str_Protocol );
-
- if (ps != 0)
- return ntohs(ps->s_port);
-
- return OSL_INVALID_PORT;
-}
-
-/*****************************************************************************/
-/* osl_destroySocketAddr */
-/*****************************************************************************/
-void SAL_CALL osl_destroySocketAddr(oslSocketAddr pAddr)
-{
- __osl_destroySocketAddr( pAddr );
-}
-
-/*****************************************************************************/
-/* osl_getFamilyOfSocketAddr */
-/*****************************************************************************/
-oslAddrFamily SAL_CALL osl_getFamilyOfSocketAddr(oslSocketAddr pAddr)
-{
- if (pAddr)
- return FAMILY_FROM_NATIVE(pAddr->m_sockaddr.sa_family);
- else
- return osl_Socket_FamilyInvalid;
-}
-
-/*****************************************************************************/
-/* osl_getInetPortOfSocketAddr */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_getInetPortOfSocketAddr(oslSocketAddr pAddr)
-{
- if( pAddr )
- {
- struct sockaddr_in* pSystemInetAddr= (struct sockaddr_in*)&(pAddr->m_sockaddr);
-
- if ( (pSystemInetAddr->sin_family == FAMILY_TO_NATIVE(osl_Socket_FamilyInet)))
- return ntohs(pSystemInetAddr->sin_port);
- }
- return OSL_INVALID_PORT;
-}
-
-/*****************************************************************************/
-/* osl_setInetPortOfSocketAddr */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_setInetPortOfSocketAddr (
- oslSocketAddr pAddr,
- sal_Int32 Port)
-{
- if (pAddr == NULL)
- return sal_False;
-
- struct sockaddr_in* pSystemInetAddr= (struct sockaddr_in*)&(pAddr->m_sockaddr);
-
- if (pSystemInetAddr->sin_family != FAMILY_TO_NATIVE(osl_Socket_FamilyInet))
- return sal_False;
-
- pSystemInetAddr->sin_port= htons((short)Port);
- return sal_True;
-}
-
-/*****************************************************************************/
-/* osl_getHostnameOfSocketAddr */
-/*****************************************************************************/
-oslSocketResult SAL_CALL osl_getHostnameOfSocketAddr (
- oslSocketAddr Addr,
- rtl_uString **strHostName)
-{
- oslHostAddr pAddr= osl_createHostAddrByAddr (Addr);
-
- if (pAddr)
- {
- rtl_uString_newFromString(strHostName, pAddr->pHostName);
-
- osl_destroyHostAddr(pAddr);
-
- return osl_Socket_Ok;
- }
-
- return osl_Socket_Error;
-}
-
-/*****************************************************************************/
-/* osl_getDottedInetAddrOfSocketAddr */
-/*****************************************************************************/
-oslSocketResult SAL_CALL osl_getDottedInetAddrOfSocketAddr (
- oslSocketAddr pAddr,
- rtl_uString **strDottedInetAddr)
-{
- sal_Char *pDotted;
-
- if (pAddr == NULL)
- return osl_Socket_Error;
-
- struct sockaddr_in *pSystemInetAddr = (struct sockaddr_in*) &(pAddr->m_sockaddr);
- if (pSystemInetAddr->sin_family != FAMILY_TO_NATIVE(osl_Socket_FamilyInet))
- return osl_Socket_Error;
-
- pDotted = inet_ntoa (pSystemInetAddr->sin_addr);
- rtl_string2UString(
- strDottedInetAddr, pDotted, strlen (pDotted),
- RTL_TEXTENCODING_UTF8, OUSTRING_TO_OSTRING_CVTFLAGS);
- OSL_ASSERT(*strDottedInetAddr != 0);
-
- return osl_Socket_Ok;
-}
-
-/*****************************************************************************/
-/* osl_createSocket */
-/*****************************************************************************/
-oslSocket SAL_CALL osl_createSocket (
- oslAddrFamily Family,
- oslSocketType Type,
- oslProtocol Protocol)
-{
- /* alloc memory */
- oslSocket pSocket = __osl_createSocketImpl(0);
-
- if (pSocket == NULL)
- return 0;
-
- /* create socket */
- pSocket->m_Socket= socket(FAMILY_TO_NATIVE(Family),
- TYPE_TO_NATIVE(Type),
- PROTOCOL_TO_NATIVE(Protocol));
-
- /* creation failed => free memory */
- if(pSocket->m_Socket == OSL_INVALID_SOCKET)
- {
- __osl_destroySocketImpl(pSocket);
- pSocket= 0;
- }
- else
- {
- pSocket->m_Flags = 0;
- pSocket->m_CloseCallback = NULL;
- pSocket->m_CallbackArg = NULL;
- }
-
- return pSocket;
-}
-
-void SAL_CALL osl_acquireSocket( oslSocket pSocket )
-{
- osl_incrementInterlockedCount( &(pSocket->m_nRefCount) );
-}
-
-void SAL_CALL osl_releaseSocket( oslSocket pSocket )
-{
- if( pSocket && 0 == osl_decrementInterlockedCount( &(pSocket->m_nRefCount) ) )
- {
- osl_closeSocket( pSocket );
- __osl_destroySocketImpl( pSocket );
- }
-}
-
-/*****************************************************************************/
-/* osl_closeSocket */
-/*****************************************************************************/
-void SAL_CALL osl_closeSocket(oslSocket pSocket)
-{
- /* socket already invalid */
- if(pSocket==0)
- return;
-
- /* close */
- closesocket(pSocket->m_Socket);
-
- pSocket->m_Socket = OSL_INVALID_SOCKET;
-
- /* registrierten Callback ausfuehren */
- if (pSocket->m_CloseCallback != NULL)
- {
- pSocket->m_CloseCallback(pSocket->m_CallbackArg);
- }
-}
-
-/*****************************************************************************/
-/* osl_getLocalAddrOfSocket */
-/* Note that I rely on the fact that oslSocketAddr and struct sockaddr */
-/* are the same! I don't like it very much but see no other easy way */
-/* to conceal the struct sockaddr from the eyes of the user. */
-/*****************************************************************************/
-oslSocketAddr SAL_CALL osl_getLocalAddrOfSocket(oslSocket pSocket)
-{
- struct sockaddr Addr;
- int AddrLen;
-
- if (pSocket == NULL) /* ENOTSOCK */
- return ((oslSocketAddr)NULL);
-
- AddrLen= sizeof(struct sockaddr);
-
- if (getsockname(pSocket->m_Socket, &Addr, &AddrLen) == OSL_SOCKET_ERROR)
- return ((oslSocketAddr)NULL);
-
- oslSocketAddr pAddr = __osl_createSocketAddrFromSystem( &Addr );
- return pAddr;
-}
-
-/*****************************************************************************/
-/* osl_getPeerAddrOfSocket */
-/*****************************************************************************/
-oslSocketAddr SAL_CALL osl_getPeerAddrOfSocket(oslSocket pSocket)
-{
- struct sockaddr Addr;
- int AddrLen;
-
- if (pSocket == NULL) /* ENOTSOCK */
- return ((oslSocketAddr)NULL);
-
- AddrLen= sizeof(struct sockaddr);
-
- if (getpeername(pSocket->m_Socket, &Addr, &AddrLen) == OSL_SOCKET_ERROR)
- return ((oslSocketAddr)NULL);
-
- oslSocketAddr pAddr = __osl_createSocketAddrFromSystem( &Addr );
- return pAddr;
-}
-
-/*****************************************************************************/
-/* osl_bindAddrToSocket */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_bindAddrToSocket ( oslSocket pSocket, oslSocketAddr pAddr)
-{
- OSL_ASSERT( pAddr );
-
- if (pSocket == NULL) /* ENOTSOCK */
- return sal_False;
-
- return (bind(pSocket->m_Socket,
- &(pAddr->m_sockaddr),
- sizeof(struct sockaddr)) != OSL_SOCKET_ERROR);
-}
-
-/*****************************************************************************/
-/* osl_connectSocketTo */
-/*****************************************************************************/
-oslSocketResult SAL_CALL osl_connectSocketTo (
- oslSocket pSocket,
- oslSocketAddr pAddr,
- const TimeValue* pTimeout)
-{
-
- if (pSocket == NULL) /* ENOTSOCK */
- return osl_Socket_Error;
-
- if (pAddr == NULL) /* EDESTADDRREQ */
- return osl_Socket_Error;
-
- if (!__osl_attemptSocketDialupImpl()) /* ENETDOWN */
- return osl_Socket_Error;
-
- if (pTimeout == NULL)
- {
- if(connect(pSocket->m_Socket,
- &(pAddr->m_sockaddr),
- sizeof(struct sockaddr)) == OSL_SOCKET_ERROR)
- return osl_Socket_Error;
- else
- return osl_Socket_Ok;
- }
- else
- {
- fd_set fds;
- int error;
- struct timeval tv;
- unsigned long Param;
- oslSocketResult Result= osl_Socket_Ok;
-
- if (pSocket->m_Flags & OSL_SOCKET_FLAGS_NONBLOCKING)
- {
- if (connect(pSocket->m_Socket,
- &(pAddr->m_sockaddr),
- sizeof(struct sockaddr)) == OSL_SOCKET_ERROR)
- {
- switch (WSAGetLastError())
- {
- case WSAEWOULDBLOCK:
- case WSAEINPROGRESS:
- return osl_Socket_InProgress;
-
- default:
- return osl_Socket_Error;
- }
- }
- else
- return osl_Socket_Ok;
- }
-
- /* set socket temporarily to non-blocking */
- Param= 1;
- OSL_VERIFY(ioctlsocket(
- pSocket->m_Socket, FIONBIO, &Param) != OSL_SOCKET_ERROR);
-
- /* initiate connect */
- if (connect(pSocket->m_Socket,
- &(pAddr->m_sockaddr),
- sizeof(struct sockaddr)) != OSL_SOCKET_ERROR)
- {
- /* immediate connection */
-
- Param= 0;
- ioctlsocket(pSocket->m_Socket, FIONBIO, &Param);
-
- return osl_Socket_Ok;
- }
- else
- {
- error = WSAGetLastError();
-
- /* really an error or just delayed? */
- if (error != WSAEWOULDBLOCK && error != WSAEINPROGRESS)
- {
- Param= 0;
- ioctlsocket(pSocket->m_Socket, FIONBIO, &Param);
-
- return osl_Socket_Error;
- }
- }
-
- /* prepare select set for socket */
- FD_ZERO(&fds);
- FD_SET(pSocket->m_Socket, &fds);
-
- /* divide milliseconds into seconds and microseconds */
- tv.tv_sec= pTimeout->Seconds;
- tv.tv_usec= pTimeout->Nanosec / 1000L;
-
- /* select */
- error= select(pSocket->m_Socket+1,
- 0,
- &fds,
- 0,
- &tv);
-
- if (error > 0) /* connected */
- {
- OSL_POSTCOND(
- FD_ISSET(pSocket->m_Socket, &fds),
- "osl_connectSocketTo(): select returned but socket not set\n");
-
- Result= osl_Socket_Ok;
-
- }
- else if(error < 0) /* error */
- {
- /* errno == EBADF: most probably interrupted by close() */
- if(WSAGetLastError() == WSAEBADF)
- {
- /* do not access pSockImpl because it is about to be or */
- /* already destroyed */
- return osl_Socket_Interrupted;
- }
- else
- Result= osl_Socket_Error;
-
- }
- else /* timeout */
- Result= osl_Socket_TimedOut;
-
-
- /* clean up */
- Param= 0;
- ioctlsocket(pSocket->m_Socket, FIONBIO, &Param);
-
- return Result;
- }
-}
-
-/*****************************************************************************/
-/* osl_listenOnSocket */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_listenOnSocket (
- oslSocket pSocket,
- sal_Int32 MaxPendingConnections)
-{
- if (pSocket == NULL) /* ENOTSOCK */
- return sal_False;
-
- return (listen(pSocket->m_Socket,
- MaxPendingConnections == -1 ?
- SOMAXCONN :
- MaxPendingConnections) != OSL_SOCKET_ERROR);
-}
-
-/*****************************************************************************/
-/* osl_acceptConnectionOnSocket */
-/*****************************************************************************/
-oslSocket SAL_CALL osl_acceptConnectionOnSocket (
- oslSocket pSocket,
- oslSocketAddr* ppAddr)
-{
- if (pSocket == NULL) /* ENOTSOCK */
- return ((oslSocket)NULL);
-
- SOCKET Connection;
- if(ppAddr)
- {
- if( *ppAddr )
- {
- osl_destroySocketAddr( *ppAddr );
- *ppAddr = 0;
- }
- int AddrLen= sizeof(struct sockaddr);
-
- /* user wants to know peer Addr */
- struct sockaddr Addr;
-
- Connection= accept(pSocket->m_Socket, &Addr, &AddrLen);
- OSL_ASSERT(AddrLen == sizeof(struct sockaddr));
-
- if(Connection != OSL_SOCKET_ERROR)
- *ppAddr= __osl_createSocketAddrFromSystem(&Addr);
- else
- *ppAddr = NULL;
- }
- else
- {
- /* user is not interested in peer-addr */
- Connection= accept(pSocket->m_Socket, 0, 0);
- }
-
- /* accept failed? */
- if(Connection == OSL_SOCKET_ERROR)
- return ((oslSocket)NULL);
-
- /* alloc memory */
- oslSocket pConnectionSocket;
- pConnectionSocket= __osl_createSocketImpl(Connection);
-
- pConnectionSocket->m_Flags = 0;
- pConnectionSocket->m_CloseCallback = NULL;
- pConnectionSocket->m_CallbackArg = NULL;
-
- return pConnectionSocket;
-}
-
-/*****************************************************************************/
-/* osl_receiveSocket */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_receiveSocket (
- oslSocket pSocket,
- void* pBuffer,
- sal_uInt32 BytesToRead,
- oslSocketMsgFlag Flag)
-{
- if (pSocket == NULL) /* ENOTSOCK */
- return osl_Socket_Error;
-
- return recv(pSocket->m_Socket,
- (sal_Char*)pBuffer,
- BytesToRead,
- MSG_FLAG_TO_NATIVE(Flag));
-}
-
-/*****************************************************************************/
-/* osl_receiveFromSocket */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_receiveFromSocket (
- oslSocket pSocket,
- oslSocketAddr SenderAddr,
- void* pBuffer,
- sal_uInt32 BufferSize,
- oslSocketMsgFlag Flag)
-{
- struct sockaddr *pSystemSockAddr = 0;
- int AddrLen = 0;
- if( SenderAddr )
- {
- AddrLen = sizeof( struct sockaddr );
- pSystemSockAddr = &(SenderAddr->m_sockaddr);
- }
-
- if (pSocket == NULL) /* ENOTSOCK */
- return osl_Socket_Error;
-
- return recvfrom(pSocket->m_Socket,
- (sal_Char*)pBuffer,
- BufferSize,
- MSG_FLAG_TO_NATIVE(Flag),
- pSystemSockAddr,
- &AddrLen);
-}
-
-/*****************************************************************************/
-/* osl_sendSocket */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_sendSocket (
- oslSocket pSocket,
- const void* pBuffer,
- sal_uInt32 BytesToSend,
- oslSocketMsgFlag Flag)
-{
- if (pSocket == NULL) /* ENOTSOCK */
- return osl_Socket_Error;
-
- return send(pSocket->m_Socket,
- (sal_Char*)pBuffer,
- BytesToSend,
- MSG_FLAG_TO_NATIVE(Flag));
-}
-
-/*****************************************************************************/
-/* osl_sendToSocket */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_sendToSocket (
- oslSocket pSocket,
- oslSocketAddr ReceiverAddr,
- const void* pBuffer,
- sal_uInt32 BytesToSend,
- oslSocketMsgFlag Flag)
-{
- if (pSocket == NULL) /* ENOTSOCK */
- return osl_Socket_Error;
-
- /* ReceiverAddr might be 0 when used on a connected socket. */
- /* Then sendto should behave like send. */
-
- struct sockaddr *pSystemSockAddr = 0;
- if( ReceiverAddr )
- pSystemSockAddr = &(ReceiverAddr->m_sockaddr);
-
- return sendto(pSocket->m_Socket,
- (sal_Char*)pBuffer,
- BytesToSend,
- MSG_FLAG_TO_NATIVE(Flag),
- pSystemSockAddr,
- pSystemSockAddr == 0 ? 0 : sizeof(struct sockaddr));
-}
-
-/*****************************************************************************/
-/* osl_readSocket */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_readSocket( oslSocket pSocket, void *pBuffer, sal_Int32 n )
-{
- sal_uInt8 * Ptr = (sal_uInt8 *)pBuffer;
-
- OSL_ASSERT( pSocket);
-
- /* loop until all desired bytes were read or an error occurred */
- sal_uInt32 BytesRead= 0;
- sal_uInt32 BytesToRead= n;
- while (BytesToRead > 0)
- {
- sal_Int32 RetVal;
- RetVal= osl_receiveSocket(pSocket,
- Ptr,
- BytesToRead,
- osl_Socket_MsgNormal);
-
- /* error occurred? */
- if(RetVal <= 0)
- {
- break;
- }
-
- BytesToRead -= RetVal;
- BytesRead += RetVal;
- Ptr += RetVal;
- }
-
- return BytesRead;
-}
-
-/*****************************************************************************/
-/* osl_writeSocket */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_writeSocket( oslSocket pSocket, const void *pBuffer, sal_Int32 n )
-{
- OSL_ASSERT( pSocket );
-
- /* loop until all desired bytes were send or an error occurred */
- sal_uInt32 BytesSend= 0;
- sal_uInt32 BytesToSend= n;
- sal_uInt8 *Ptr = ( sal_uInt8 * )pBuffer;
- while (BytesToSend > 0)
- {
- sal_Int32 RetVal;
-
- RetVal= osl_sendSocket( pSocket,Ptr,BytesToSend,osl_Socket_MsgNormal);
-
- /* error occurred? */
- if(RetVal <= 0)
- {
- break;
- }
-
- BytesToSend -= RetVal;
- BytesSend += RetVal;
- Ptr += RetVal;
-
- }
- return BytesSend;
-}
-
-
-/*****************************************************************************/
-/* osl_isReceiveReady */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_isReceiveReady (
- oslSocket pSocket,
- const TimeValue* pTimeout)
-{
- fd_set fds;
- struct timeval tv;
-
- if (pSocket == NULL) /* ENOTSOCK */
- return sal_False;
-
- FD_ZERO(&fds);
- FD_SET(pSocket->m_Socket, &fds);
-
- if (pTimeout)
- {
- tv.tv_sec = pTimeout->Seconds;
- tv.tv_usec = pTimeout->Nanosec / 1000L;
- }
-
- return (select(pSocket->m_Socket + 1, /* no of sockets to monitor */
- &fds, /* check read operations */
- 0, /* check write ops */
- 0, /* ckeck for OOB */
- (pTimeout) ? &tv : 0)==1); /* use timeout? */
-}
-
-/*****************************************************************************/
-/* osl_isSendReady */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_isSendReady (
- oslSocket pSocket,
- const TimeValue* pTimeout)
-{
- fd_set fds;
- struct timeval tv;
-
- if (pSocket == NULL) /* ENOTSOCK */
- return sal_False;
-
- FD_ZERO(&fds);
- FD_SET(pSocket->m_Socket, &fds);
-
- if (pTimeout)
- {
- tv.tv_sec = pTimeout->Seconds;
- tv.tv_usec = pTimeout->Nanosec / 1000L;
- }
-
- return (select(pSocket->m_Socket + 1, /* no of sockets to monitor */
- 0, /* check read operations */
- &fds, /* check write ops */
- 0, /* ckeck for OOB */
- (pTimeout) ? &tv : 0)==1); /* use timeout? */
-}
-
-/*****************************************************************************/
-/* osl_isExceptionPending */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_isExceptionPending (
- oslSocket pSocket,
- const TimeValue* pTimeout)
-{
- fd_set fds;
- struct timeval tv;
-
- if (pSocket == NULL) /* ENOTSOCK */
- return sal_False;
-
- FD_ZERO(&fds);
- FD_SET(pSocket->m_Socket, &fds);
-
- if (pTimeout)
- {
- tv.tv_sec = pTimeout->Seconds;
- tv.tv_usec = pTimeout->Nanosec / 1000L;
- }
-
- return (select(pSocket->m_Socket + 1, /* no of sockets to monitor */
- 0, /* check read operations */
- 0, /* check write ops */
- &fds, /* ckeck for OOB */
- (pTimeout) ? &tv : 0)==1); /* use timeout? */
-}
-
-/*****************************************************************************/
-/* osl_shutdownSocket */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_shutdownSocket (
- oslSocket pSocket,
- oslSocketDirection Direction)
-{
- if (pSocket == NULL) /* ENOTSOCK */
- return sal_False;
-
- return (shutdown(pSocket->m_Socket, DIRECTION_TO_NATIVE(Direction))==0);
-}
-
-/*****************************************************************************/
-/* osl_getSocketOption */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_getSocketOption (
- oslSocket pSocket,
- oslSocketOptionLevel Level,
- oslSocketOption Option,
- void* pBuffer,
- sal_uInt32 BufferLen)
-{
- if (pSocket == NULL) /* ENOTSOCK */
- return osl_Socket_Error;
-
- if (getsockopt(pSocket->m_Socket,
- OPTION_LEVEL_TO_NATIVE(Level),
- OPTION_TO_NATIVE(Option),
- (sal_Char*)pBuffer,
- (int*)&BufferLen) == -1)
- {
- return -1;
- }
-
- return (sal_Int32)BufferLen;
-}
-
-/*****************************************************************************/
-/* osl_setSocketOption */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_setSocketOption (
- oslSocket pSocket,
- oslSocketOptionLevel Level,
- oslSocketOption Option,
- void* pBuffer,
- sal_uInt32 BufferLen)
-{
- if (pSocket == NULL) /* ENOTSOCK */
- return sal_False;
-
- return(setsockopt(pSocket->m_Socket,
- OPTION_LEVEL_TO_NATIVE(Level),
- OPTION_TO_NATIVE(Option),
- (sal_Char*)pBuffer,
- BufferLen) == 0);
-}
-
-/*****************************************************************************/
-/* osl_enableNonBlockingMode */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_enableNonBlockingMode ( oslSocket pSocket, sal_Bool On)
-{
- unsigned long Param= On ? 1 : 0;
-
- if (pSocket == NULL) /* ENOTSOCK */
- return sal_False;
-
- pSocket->m_Flags = Param ?
- (pSocket->m_Flags | OSL_SOCKET_FLAGS_NONBLOCKING) :
- (pSocket->m_Flags & ~OSL_SOCKET_FLAGS_NONBLOCKING) ;
-
- return (
- ioctlsocket(pSocket->m_Socket, FIONBIO, &Param) != OSL_SOCKET_ERROR);
-}
-
-/*****************************************************************************/
-/* osl_isNonBlockingMode */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_isNonBlockingMode(oslSocket pSocket)
-{
- if (pSocket == NULL) /* ENOTSOCK */
- return sal_False;
-
- return (sal_Bool)((pSocket->m_Flags & OSL_SOCKET_FLAGS_NONBLOCKING) != 0);
-}
-
-/*****************************************************************************/
-/* osl_getSocketType */
-/*****************************************************************************/
-oslSocketType SAL_CALL osl_getSocketType(oslSocket pSocket)
-{
- int Type=0;
- int TypeSize= sizeof(Type);
-
- if (pSocket == NULL) /* ENOTSOCK */
- return osl_Socket_TypeInvalid;
-
- if(getsockopt(pSocket->m_Socket,
- OPTION_LEVEL_TO_NATIVE(osl_Socket_LevelSocket),
- OPTION_TO_NATIVE(osl_Socket_OptionType),
- (sal_Char *)&Type,
- &TypeSize) == -1)
- {
- /* error */
- return osl_Socket_TypeInvalid;
- }
-
- return TYPE_FROM_NATIVE(Type);
-}
-
-/*****************************************************************************/
-/* osl_getLastSocketErrorDescription */
-/*****************************************************************************/
-void SAL_CALL osl_getLastSocketErrorDescription (
- oslSocket /*Socket*/,
- rtl_uString **strError)
-{
- int error;
-
- switch(error = WSAGetLastError())
- {
- case WSAENOTSOCK:
- rtl_uString_newFromAscii (strError, "WSAENOTSOCK, Socket operation on non-socket. A socket created in one process is used by another process.");
- break;
-
- case WSAEDESTADDRREQ:
- rtl_uString_newFromAscii (strError, "WSAEDESTADDRREQ, Destination Addr required");
- break;
-
- case WSAEMSGSIZE:
- rtl_uString_newFromAscii (strError, "WSAEMSGSIZE, Message too long");
- break;
-
- case WSAEPROTOTYPE:
- rtl_uString_newFromAscii (strError, "WSAEPROTOTYPE, Protocol wrong type for socket");
- break;
-
- case WSAENOPROTOOPT:
- rtl_uString_newFromAscii (strError, "WSAENOPROTOOPT, Protocol not available");
- break;
-
- case WSAEPROTONOSUPPORT:
- rtl_uString_newFromAscii (strError, "WSAEPROTONOSUPPORT, Protocol not supported");
- break;
-
- case WSAESOCKTNOSUPPORT:
- rtl_uString_newFromAscii (strError, "WSAESOCKTNOSUPPORT, Socket type not supported");
- break;
-
- case WSAEOPNOTSUPP:
- rtl_uString_newFromAscii (strError, "WSAEOPNOTSUPP, Operation not supported on socket");
- break;
-
- case WSAEPFNOSUPPORT:
- rtl_uString_newFromAscii (strError, "WSAEPFNOSUPPORT, Protocol family not supported");
- break;
-
- case WSAEAFNOSUPPORT:
- rtl_uString_newFromAscii (strError, "WSEAFNOSUPPORT, Addr family not supported by protocol family");
- break;
-
- case WSAEADDRINUSE:
- rtl_uString_newFromAscii (strError, "WSAEADDRINUSE, Triggered by bind() because a process went down without closing a socket.");
- break;
-
- case WSAEADDRNOTAVAIL:
- rtl_uString_newFromAscii (strError, "WSAEADDRNOTAVAIL, Can't assign requested Addr");
- break;
-
- case WSAENETDOWN:
- rtl_uString_newFromAscii (strError, "WSAENETDOWN, Network is down");
- break;
-
- case WSAENETUNREACH:
- rtl_uString_newFromAscii (strError, "WSAENETUNREACH, Network is unreachable");
- break;
-
- case WSAENETRESET:
- rtl_uString_newFromAscii (strError, "WSAENETRESET, Network dropped connection or reset");
- break;
-
- case WSAECONNABORTED:
- rtl_uString_newFromAscii (strError, "WSAECONNABORTED, Software caused connection abort");
- break;
-
- case WSAECONNRESET:
- rtl_uString_newFromAscii (strError, "WSAECONNRESET, Connection reset by peer");
- break;
-
- case WSAENOBUFS:
- rtl_uString_newFromAscii (strError, "WSAENOBUFS, No buffer space available.");
- break;
-
- case WSAEISCONN:
- rtl_uString_newFromAscii (strError, "WSAEISCONN, Socket is already connected");
- break;
-
- case WSAENOTCONN:
- rtl_uString_newFromAscii (strError, "WSAENOTCONN, Socket is not connected");
- break;
-
- case WSAESHUTDOWN:
- rtl_uString_newFromAscii (strError, "WSAESHUTDOWN, Can't send after socket shutdown");
- break;
-
- case WSAETIMEDOUT:
- rtl_uString_newFromAscii (strError, "WSAETIMEDOUT, Connection timed out");
- break;
-
- case WSAECONNREFUSED:
- rtl_uString_newFromAscii (strError, "WSAECONNREFUSED, Connection refused");
- break;
-
- case WSAEHOSTDOWN:
- rtl_uString_newFromAscii (strError, "WSAEHOSTDOWN, Networking subsystem not started");
- break;
-
- case WSAEHOSTUNREACH:
- rtl_uString_newFromAscii (strError, "WSAEHOSTUNREACH, No route to host");
- break;
-
- case WSAEWOULDBLOCK:
- rtl_uString_newFromAscii (strError, "WSAEWOULDBLOCK, Operation would block");
- break;
-
- case WSAEINPROGRESS:
- rtl_uString_newFromAscii (strError, "WSAEINPROGRESS, Operation now in progress");
- break;
-
- case WSAEALREADY:
- rtl_uString_newFromAscii (strError, "WSAEALREADY, Operation already in progress");
- break;
-
- case WSAEINTR:
- rtl_uString_newFromAscii (strError, "WSAEALREADY, Operation was interrupted");
- break;
-
- case WSAEBADF:
- rtl_uString_newFromAscii (strError, "WSAEBADF, Bad file number");
- break;
-
- case WSAEACCES:
- rtl_uString_newFromAscii (strError, "WSAEACCES, Access is denied");
- break;
-
- case WSAEFAULT:
- rtl_uString_newFromAscii (strError, "WSAEFAULT, Bad memory Addr");
- break;
-
- case WSAEINVAL:
- rtl_uString_newFromAscii (strError, "WSAEINVAL, The socket has not been bound with bind() or is already connected");
- break;
-
- case WSAEMFILE:
- rtl_uString_newFromAscii (strError, "WSAEMFILE, No more file descriptors are available");
- break;
-
- case WSAETOOMANYREFS:
- rtl_uString_newFromAscii (strError, "WSAETOOMANYREFS, Undocumented WinSock error");
- break;
-
- case WSAENAMETOOLONG:
- rtl_uString_newFromAscii (strError, "WSAENAMETOOLONG, Undocumented WinSock error");
- break;
-
- case WSAENOTEMPTY:
- rtl_uString_newFromAscii (strError, "WSAENOTEMPTY, Undocumented WinSock error");
- break;
-
- case WSAEPROCLIM:
- rtl_uString_newFromAscii (strError, "WSAEPROCLIM, Undocumented WinSock error");
- break;
-
- case WSAEUSERS:
- rtl_uString_newFromAscii (strError, "WSAEUSERS, Undocumented WinSock error");
- break;
-
- case WSAEDQUOT:
- rtl_uString_newFromAscii (strError, "WSAEDQUOT, Undocumented WinSock error");
- break;
-
- case WSAESTALE:
- rtl_uString_newFromAscii (strError, "WSAESTALE, Undocumented WinSock error");
- break;
-
- case WSAEREMOTE:
- rtl_uString_newFromAscii (strError, "WSAEREMOTE, Undocumented WinSock error");
- break;
-
- case WSAEDISCON:
- rtl_uString_newFromAscii (strError, "WSAEDISCON, Circuit was gracefully terminated");
- break;
-
- case WSASYSNOTREADY:
- rtl_uString_newFromAscii (strError, "WSASYSNOTREADY, The underlying network subsystem is not ready for network communication");
- break;
-
- case WSAVERNOTSUPPORTED:
- rtl_uString_newFromAscii (strError, "WSAVERNOTSUPPORTED, The version of Windows Sockets API support requested is not provided by this particular Windows Sockets implementation");
- break;
-
- case WSANOTINITIALISED:
- rtl_uString_newFromAscii (strError, "WSANOTINITIALISED, WSAStartup() has not been called");
- break;
-
- case WSAHOST_NOT_FOUND:
- rtl_uString_newFromAscii (strError, "WSAHOST_NOT_FOUND, Authoritative answer host not found");
- break;
-
- case WSATRY_AGAIN:
- rtl_uString_newFromAscii (strError, "WSATRY_AGAIN, Non-authoritative answer host not found or SERVERFAIL");
- break;
-
- case WSANO_RECOVERY:
- rtl_uString_newFromAscii (strError, "WSANO_RECOVERY, Non recoverable errors, FORMERR, REFUSED, NOTIMP");
- break;
-
- case WSANO_DATA:
- rtl_uString_newFromAscii (strError, "WSANO_DATA or WSANO_ADDRESS, Valid name, no data record of requested type");
- break;
-
- default:
- {
- sal_Unicode message[128];
-
- wsprintfW(reinterpret_cast<LPWSTR>(message), L"Unknown WinSock Error Number %d", error);
- rtl_uString_newFromStr (strError, message);
- }
-
- return;
-
- }
-}
-
-/*****************************************************************************/
-/* osl_getLastSocketError */
-/*****************************************************************************/
-oslSocketError SAL_CALL osl_getLastSocketError(oslSocket /*Socket*/)
-{
- return ERROR_FROM_NATIVE(WSAGetLastError());
-}
-
-/*****************************************************************************/
-/* SocketSet */
-/*****************************************************************************/
-typedef struct _TSocketSetImpl
-{
- fd_set m_Set; /* the set of descriptors */
-
-} TSocketSetImpl;
-
-/*****************************************************************************/
-/* osl_createSocketSet */
-/*****************************************************************************/
-oslSocketSet SAL_CALL osl_createSocketSet()
-{
- TSocketSetImpl* pSet;
-
- pSet = (TSocketSetImpl*) rtl_allocateMemory(sizeof(TSocketSetImpl));
-
- if(pSet)
- {
- FD_ZERO(&pSet->m_Set);
- }
-
- return (oslSocketSet)pSet;
-}
-
-/*****************************************************************************/
-/* osl_destroySocketSet */
-/*****************************************************************************/
-void SAL_CALL osl_destroySocketSet (oslSocketSet Set)
-{
- if(Set)
- rtl_freeMemory(Set);
-}
-
-/*****************************************************************************/
-/* osl_clearSocketSet */
-/*****************************************************************************/
-void SAL_CALL osl_clearSocketSet (oslSocketSet Set)
-{
- TSocketSetImpl* pSet;
-
- pSet= (TSocketSetImpl*)Set;
-
- if (pSet)
- FD_ZERO(&pSet->m_Set);
-}
-
-/*****************************************************************************/
-/* osl_addToSocketSet */
-/*****************************************************************************/
-void SAL_CALL osl_addToSocketSet (
- oslSocketSet Set,
- oslSocket Socket)
-{
- TSocketSetImpl* pSet;
- oslSocketImpl* pSockImpl;
-
- pSet= (TSocketSetImpl*)Set;
- pSockImpl= (oslSocketImpl*)Socket;
-
- if (pSet && pSockImpl)
- FD_SET(pSockImpl->m_Socket, &pSet->m_Set);
-}
-
-/*****************************************************************************/
-/* osl_removeFromSocketSet */
-/*****************************************************************************/
-void SAL_CALL osl_removeFromSocketSet (
- oslSocketSet Set,
- oslSocket Socket)
-{
- TSocketSetImpl* pSet;
- oslSocketImpl* pSockImpl;
-
- pSet= (TSocketSetImpl*)Set;
- pSockImpl= (oslSocketImpl*)Socket;
-
- if (pSet && pSockImpl)
- FD_CLR(pSockImpl->m_Socket, &pSet->m_Set);
-}
-
-/*****************************************************************************/
-/* osl_isInSocketSet */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_isInSocketSet (
- oslSocketSet Set,
- oslSocket Socket)
-{
- TSocketSetImpl* pSet;
- oslSocketImpl* pSockImpl;
-
- pSet= (TSocketSetImpl*)Set;
- pSockImpl= (oslSocketImpl*)Socket;
-
- if (pSet && pSockImpl)
- return (FD_ISSET(pSockImpl->m_Socket, &pSet->m_Set) != 0);
- else
- return sal_False;
-}
-
-/*****************************************************************************/
-/* osl_demultiplexSocketEvents */
-/*****************************************************************************/
-sal_Int32 SAL_CALL osl_demultiplexSocketEvents (
- oslSocketSet IncomingSet,
- oslSocketSet OutgoingSet,
- oslSocketSet OutOfBandSet,
- const TimeValue* pTimeout)
-{
- int MaxHandle= 0;
- struct timeval tv;
- TSocketSetImpl* pInSet;
- TSocketSetImpl* pOutSet;
- TSocketSetImpl* pOOBSet;
-
- if(pTimeout)
- {
- /* divide milliseconds into seconds and microseconds */
- tv.tv_sec = pTimeout->Seconds;
- tv.tv_usec = pTimeout->Nanosec / 1000L;
- }
-
- /* map opaque data to impl-types */
- pInSet= (TSocketSetImpl*)IncomingSet;
- pOutSet= (TSocketSetImpl*)OutgoingSet;
- pOOBSet= (TSocketSetImpl*)OutOfBandSet;
-
- return select(MaxHandle, /* redundant in WIN32 */
- pInSet ? &pInSet->m_Set : 0,
- pOutSet ? &pOutSet->m_Set : 0,
- pOOBSet ? &pOOBSet->m_Set : 0,
- pTimeout ? &tv : 0);
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/sockimpl.h b/sal/osl/w32/sockimpl.h
deleted file mode 100644
index 6bffb9f4a..000000000
--- a/sal/osl/w32/sockimpl.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_SOCKETIMPL_H_
-#define _OSL_SOCKETIMPL_H_
-
-#include <osl/socket.h>
-#include <osl/interlck.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*****************************************************************************/
-/* oslSocketImpl */
-/*****************************************************************************/
-#define OSL_SOCKET_FLAGS_NONBLOCKING 0x0001
-
-typedef void* (SAL_CALL * oslCloseCallback) (void*);
-
-struct oslSocketImpl {
- oslInterlockedCount m_nRefCount;
- SOCKET m_Socket;
- int m_Flags;
- oslCloseCallback m_CloseCallback;
- void* m_CallbackArg;
-};
-
-struct oslSocketAddrImpl
-{
- struct sockaddr m_sockaddr;
- oslInterlockedCount m_nRefCount;
-};
-
-oslSocket __osl_createSocketImpl(SOCKET Socket);
-void __osl_destroySocketImpl(oslSocket pImpl);
-
-/*****************************************************************************/
-/* oslSocketDialupImpl */
-/*****************************************************************************/
-#define INTERNET_MODULE_NAME "wininet.dll"
-
-#define INTERNET_CONNECTION_MODEM 0x00000001L
-#define INTERNET_CONNECTION_LAN 0x00000002L
-#define INTERNET_CONNECTION_HANGUP 0x80000000L
-
-typedef DWORD (WINAPI *INTERNETATTEMPTCONNECT) (
- DWORD dwReserved);
-typedef BOOL (WINAPI *INTERNETAUTODIAL) (
- DWORD dwFlags, DWORD dwReserved);
-typedef BOOL (WINAPI *INTERNETAUTODIALHANGUP) (
- DWORD dwReserved);
-typedef BOOL (WINAPI *INTERNETGETCONNECTEDSTATE) (
- LPDWORD lpdwFlags, DWORD dwReserved);
-
-typedef struct osl_socket_dialup_impl_st
-{
- CRITICAL_SECTION m_hMutex;
- HINSTANCE m_hModule;
- INTERNETATTEMPTCONNECT m_pfnAttemptConnect;
- INTERNETAUTODIAL m_pfnAutodial;
- INTERNETAUTODIALHANGUP m_pfnAutodialHangup;
- INTERNETGETCONNECTEDSTATE m_pfnGetConnectedState;
- DWORD m_dwFlags;
-} oslSocketDialupImpl;
-
-static oslSocketDialupImpl* __osl_createSocketDialupImpl (void);
-static void __osl_initSocketDialupImpl (oslSocketDialupImpl *pImpl);
-static void __osl_destroySocketDialupImpl (oslSocketDialupImpl *pImpl);
-
-static sal_Bool __osl_querySocketDialupImpl (void);
-static sal_Bool __osl_attemptSocketDialupImpl (void);
-
-/*****************************************************************************/
-/* The End */
-/*****************************************************************************/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/system.h b/sal/osl/w32/system.h
deleted file mode 100644
index d778828a1..000000000
--- a/sal/osl/w32/system.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#if OSL_DEBUG_LEVEL == 0
-# define NO_DEBUG_CRT
-#endif
-
-#ifndef _WIN32_WINNT
-# define _WIN32_WINNT 0x0400
-# define _CTYPE_DISABLE_MACROS /* wg. dynamischer C-Runtime MH */
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <ctype.h>
-#include <malloc.h>
-#include <limits.h>
-#include <process.h>
-#include <time.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <io.h>
-#include <share.h>
-#include <direct.h>
-
-/* Must define this else build breaks because Winsock2.h
- includes Windows.h and without WIN32_LEAN_AND_MEAN
- also includes mswsock.h which needs a forward typedef
- of SOCKET ...
-*/
-#define WIN32_LEAN_AND_MEAN
-
-#ifdef GCC
- // windows.h includes winsock2.h
- // if _WIN32_WINNT > 0x0400
- // so someone cannot include winsock.h
- // at the same time without patching
- // windows.h
- #include <windows.h>
-#ifdef __MINGW32__
- #include <winsock2.h>
- #include <ws2tcpip.h>
-#endif
- #include <shlobj.h>
- #ifndef NO_DEBUG_CRT
- #include <crtdbg.h>
- #endif
-#else
- // winsock2.h includes windows.h
- #pragma warning(push,1) /* disable warnings within system headers */
- #pragma warning(disable:4917)
- #include <winsock2.h>
- #include <wsipx.h>
- #include <shlobj.h>
- #ifndef NO_DEBUG_CRT
- #include <crtdbg.h>
- #endif
- #pragma warning(pop)
-#endif
-
-#define _MAX_CMD 4096 /* maximum length of commandline */
-/* #define _MAX_ENV 4096 maximum length of environment var (isn't used anywhere) */
-
-#ifdef GCC
- # ifndef SA_FAMILY_DECL
- # define SA_FAMILY_DECL short sa_family
- # endif
-
- typedef struct sockaddr_ipx {
- SA_FAMILY_DECL;
- char sa_netnum[4];
- char sa_nodenum[6];
- unsigned short sa_socket;
- } SOCKADDR_IPX;
-
- # define NSPROTO_IPX 1000
- # define NSPROTO_SPX 1256
- # define NSPROTO_SPXII 1257
-#endif // #ifdef GCC
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/tempfile.cxx b/sal/osl/w32/tempfile.cxx
deleted file mode 100644
index 2b43af005..000000000
--- a/sal/osl/w32/tempfile.cxx
+++ /dev/null
@@ -1,274 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#define UNICODE
-#define _UNICODE
-#define _WIN32_WINNT 0x0500
-#include "systools/win32/uwinapi.h"
-
-#include "osl/file.h"
-
-#include "file_error.h"
-#include "file_url.h"
-#include "path_helper.hxx"
-
-#include "osl/diagnose.h"
-
-#include <malloc.h>
-#include <tchar.h>
-
-//#####################################################
-// Allocate n number of t's on the stack return a pointer to it in p
-#ifdef __MINGW32__
-#define STACK_ALLOC(p, t, n) (p) = reinterpret_cast<t*>(_alloca((n)*sizeof(t)));
-#else
-#define STACK_ALLOC(p, t, n) __try {(p) = reinterpret_cast<t*>(_alloca((n)*sizeof(t)));} \
- __except(EXCEPTION_EXECUTE_HANDLER) {(p) = 0;}
-#endif
-
-extern "C" oslFileHandle SAL_CALL osl_createFileHandleFromOSHandle(HANDLE hFile, sal_uInt32 uFlags);
-
-//#####################################################
-// Temp file functions
-//#####################################################
-
-static oslFileError osl_setup_base_directory_impl_(
- rtl_uString* pustrDirectoryURL,
- rtl_uString** ppustr_base_dir)
-{
- rtl_uString* dir_url = 0;
- rtl_uString* dir = 0;
- oslFileError error = osl_File_E_None;
-
- if (pustrDirectoryURL)
- rtl_uString_assign(&dir_url, pustrDirectoryURL);
- else
- error = osl_getTempDirURL(&dir_url);
-
- if (osl_File_E_None == error)
- {
- error = _osl_getSystemPathFromFileURL(dir_url, &dir, sal_False);
- rtl_uString_release(dir_url);
- }
-
- if (osl_File_E_None == error )
- {
- rtl_uString_assign(ppustr_base_dir, dir);
- rtl_uString_release(dir);
- }
-
- return error;
-}
-
-//#####################################################
-static oslFileError osl_setup_createTempFile_impl_(
- rtl_uString* pustrDirectoryURL,
- oslFileHandle* pHandle,
- rtl_uString** ppustrTempFileURL,
- rtl_uString** ppustr_base_dir,
- sal_Bool* b_delete_on_close)
-{
- oslFileError osl_error;
-
- OSL_PRECOND(((0 != pHandle) || (0 != ppustrTempFileURL)), "Invalid parameter!");
-
- if ((0 == pHandle) && (0 == ppustrTempFileURL))
- {
- osl_error = osl_File_E_INVAL;
- }
- else
- {
- osl_error = osl_setup_base_directory_impl_(
- pustrDirectoryURL, ppustr_base_dir);
-
- *b_delete_on_close = (sal_Bool)(0 == ppustrTempFileURL);
- }
-
- return osl_error;
-}
-
-//#####################################################
-static oslFileError osl_win32_GetTempFileName_impl_(
- rtl_uString* base_directory, LPWSTR temp_file_name)
-{
- oslFileError osl_error = osl_File_E_None;
-
- if (0 == GetTempFileNameW(
- reinterpret_cast<LPCWSTR>(rtl_uString_getStr(base_directory)),
- L"",
- 0,
- temp_file_name))
- {
- osl_error = oslTranslateFileError(GetLastError());
- }
-
- return osl_error;
-}
-
-//#####################################################
-static sal_Bool osl_win32_CreateFile_impl_(
- LPCWSTR file_name, sal_Bool b_delete_on_close, oslFileHandle* p_handle)
-{
- DWORD flags = FILE_ATTRIBUTE_NORMAL;
- HANDLE hFile;
-
- OSL_ASSERT(p_handle);
-
- if (b_delete_on_close)
- flags |= FILE_FLAG_DELETE_ON_CLOSE;
-
- hFile = CreateFileW(
- file_name,
- GENERIC_READ | GENERIC_WRITE,
- 0,
- NULL,
- TRUNCATE_EXISTING,
- flags,
- NULL);
-
- // @@@ ERROR HANDLING @@@
- if (IsValidHandle(hFile))
- *p_handle = osl_createFileHandleFromOSHandle(hFile, osl_File_OpenFlag_Read | osl_File_OpenFlag_Write);
-
- return (sal_Bool)IsValidHandle(hFile);
-}
-
-//#############################################
-static oslFileError osl_createTempFile_impl_(
- rtl_uString* base_directory,
- LPWSTR tmp_name,
- sal_Bool b_delete_on_close,
- oslFileHandle* pHandle,
- rtl_uString** ppustrTempFileURL)
-{
- oslFileError osl_error;
-
- do
- {
- osl_error = osl_win32_GetTempFileName_impl_(base_directory, tmp_name);
-
- /* if file could not be opened try again */
-
- if ((osl_File_E_None != osl_error) || (0 == pHandle) ||
- osl_win32_CreateFile_impl_(tmp_name, b_delete_on_close, pHandle))
- break;
-
- } while(1); // try until success
-
- if ((osl_File_E_None == osl_error) && !b_delete_on_close)
- {
- rtl_uString* pustr = 0;
- rtl_uString_newFromStr(&pustr, reinterpret_cast<const sal_Unicode*>(tmp_name));
- osl_getFileURLFromSystemPath(pustr, ppustrTempFileURL);
- rtl_uString_release(pustr);
- }
-
- return osl_error;
-}
-
-//#############################################
-oslFileError SAL_CALL osl_createTempFile(
- rtl_uString* pustrDirectoryURL,
- oslFileHandle* pHandle,
- rtl_uString** ppustrTempFileURL)
-{
- rtl_uString* base_directory = 0;
- LPWSTR tmp_name;
- sal_Bool b_delete_on_close;
- oslFileError osl_error;
-
- osl_error = osl_setup_createTempFile_impl_(
- pustrDirectoryURL,
- pHandle,
- ppustrTempFileURL,
- &base_directory,
- &b_delete_on_close);
-
- if (osl_File_E_None != osl_error)
- return osl_error;
-
- /* allocate enough space on the stack, the file name can not be longer than MAX_PATH */
- STACK_ALLOC(tmp_name, WCHAR, (rtl_uString_getLength(base_directory) + MAX_PATH));
-
- if (tmp_name)
- {
- osl_createTempFile_impl_(
- base_directory,
- tmp_name,
- b_delete_on_close,
- pHandle,
- ppustrTempFileURL);
- }
- else // stack alloc failed
- {
- osl_error = osl_File_E_NOMEM;
- }
-
- if (base_directory)
- rtl_uString_release(base_directory);
-
- return osl_error;
-}
-
-//#############################################
-oslFileError SAL_CALL osl_getTempDirURL(rtl_uString** pustrTempDir)
-{
- ::osl::LongPathBuffer< sal_Unicode > aBuffer( MAX_LONG_PATH );
- LPWSTR lpBuffer = ::osl::mingw_reinterpret_cast<LPWSTR>(aBuffer);
- DWORD nBufferLength = aBuffer.getBufSizeInSymbols() - 1;
-
- DWORD nLength;
- oslFileError error;
-
- nLength = GetTempPathW( aBuffer.getBufSizeInSymbols(), lpBuffer );
-
- if ( nLength > nBufferLength )
- {
- // the provided path has invalid length
- error = osl_File_E_NOENT;
- }
- else if ( nLength )
- {
- rtl_uString *ustrTempPath = NULL;
-
- if ( '\\' == lpBuffer[nLength-1] )
- lpBuffer[nLength-1] = 0;
-
- rtl_uString_newFromStr( &ustrTempPath, reinterpret_cast<const sal_Unicode*>(lpBuffer) );
-
- error = osl_getFileURLFromSystemPath( ustrTempPath, pustrTempDir );
-
- rtl_uString_release( ustrTempPath );
- }
- else
- error = oslTranslateFileError( GetLastError() );
-
- return error;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/thread.c b/sal/osl/w32/thread.c
deleted file mode 100755
index fc0c5ab37..000000000
--- a/sal/osl/w32/thread.c
+++ /dev/null
@@ -1,620 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "system.h"
-
-#include <osl/diagnose.h>
-#include <osl/thread.h>
-#include <rtl/alloc.h>
-#include <osl/time.h>
-#include <osl/interlck.h>
-#include <rtl/tencinfo.h>
-
-/*
- Thread-data structure hidden behind oslThread:
-*/
-typedef struct _osl_TThreadImpl
-{
- HANDLE m_hThread; /* OS-handle used for all thread-functions */
- unsigned m_ThreadId; /* identifier for this thread */
- sal_Int32 m_nTerminationRequested;
- oslWorkerFunction m_WorkerFunction;
- void* m_pData;
-
-} osl_TThreadImpl;
-
-#define THREADIMPL_FLAGS_TERMINATE 0x0001
-
-static unsigned __stdcall oslWorkerWrapperFunction(void* pData);
-static oslThread oslCreateThread(oslWorkerFunction pWorker, void* pThreadData, sal_uInt32 nFlags);
-
-/*****************************************************************************/
-/* oslWorkerWrapperFunction */
-/*****************************************************************************/
-static unsigned __stdcall oslWorkerWrapperFunction(void* pData)
-{
- osl_TThreadImpl* pThreadImpl= (osl_TThreadImpl*)pData;
-
- /* Initialize COM */
-
- CoInitializeEx(NULL, COINIT_MULTITHREADED);
-
- /* call worker-function with data */
-
- pThreadImpl->m_WorkerFunction(pThreadImpl->m_pData);
-
- CoUninitialize();
-
- return (0);
-}
-
-/*****************************************************************************/
-/* oslCreateThread */
-/*****************************************************************************/
-static oslThread oslCreateThread(oslWorkerFunction pWorker,
- void* pThreadData,
- sal_uInt32 nFlags)
-{
- osl_TThreadImpl* pThreadImpl;
-
- /* alloc mem. for our internal data structure */
- pThreadImpl= malloc(sizeof(osl_TThreadImpl));
-
- OSL_ASSERT(pThreadImpl);
-
- if ( pThreadImpl == 0 )
- {
- return 0;
- }
-
- pThreadImpl->m_WorkerFunction= pWorker;
- pThreadImpl->m_pData= pThreadData;
- pThreadImpl->m_nTerminationRequested= 0;
-
- pThreadImpl->m_hThread=
- (HANDLE)_beginthreadex(NULL, /* no security */
- 0, /* default stack-size */
- oslWorkerWrapperFunction, /* worker-function */
- pThreadImpl, /* provide worker-function with data */
- nFlags, /* start thread immediately or suspended */
- &pThreadImpl->m_ThreadId);
-
- if(pThreadImpl->m_hThread == 0)
- {
- /* create failed */
- free(pThreadImpl);
- return 0;
- }
-
- return (oslThread)pThreadImpl;
-}
-
-/*****************************************************************************/
-/* osl_createThread */
-/*****************************************************************************/
-oslThread SAL_CALL osl_createThread(oslWorkerFunction pWorker,
- void* pThreadData)
-{
- return oslCreateThread(pWorker, pThreadData, 0);
-}
-
-/*****************************************************************************/
-/* osl_createSuspendedThread */
-/*****************************************************************************/
-oslThread SAL_CALL osl_createSuspendedThread(oslWorkerFunction pWorker,
- void* pThreadData)
-{
- return oslCreateThread(pWorker, pThreadData, CREATE_SUSPENDED);
-}
-
-/*****************************************************************************/
-/* osl_getThreadIdentifier */
-/*****************************************************************************/
-oslThreadIdentifier SAL_CALL osl_getThreadIdentifier(oslThread Thread)
-{
- osl_TThreadImpl* pThreadImpl= (osl_TThreadImpl*)Thread;
-
- if (pThreadImpl != NULL)
- return ((oslThreadIdentifier)pThreadImpl->m_ThreadId);
- else
- return ((oslThreadIdentifier)GetCurrentThreadId());
-}
-
-/*****************************************************************************/
-/* osl_destroyThread */
-/*****************************************************************************/
-void SAL_CALL osl_destroyThread(oslThread Thread)
-{
- osl_TThreadImpl* pThreadImpl= (osl_TThreadImpl*)Thread;
-
- if (Thread == 0) /* valid ptr? */
- {
- /* thread already destroyed or not created */
- return;
- }
-
- /* !!!! _exitthreadex does _not_ call CloseHandle !!! */
- CloseHandle( pThreadImpl->m_hThread );
-
- /* free memory */
- free(Thread);
-}
-
-/*****************************************************************************/
-/* osl_resumeThread */
-/*****************************************************************************/
-void SAL_CALL osl_resumeThread(oslThread Thread)
-{
- osl_TThreadImpl* pThreadImpl= (osl_TThreadImpl*)Thread;
-
- OSL_ASSERT(pThreadImpl); /* valid ptr? */
-
- ResumeThread(pThreadImpl->m_hThread);
-}
-
-/*****************************************************************************/
-/* osl_suspendThread */
-/*****************************************************************************/
-void SAL_CALL osl_suspendThread(oslThread Thread)
-{
- osl_TThreadImpl* pThreadImpl= (osl_TThreadImpl*)Thread;
-
- OSL_ASSERT(pThreadImpl); /* valid ptr? */
-
- SuspendThread(pThreadImpl->m_hThread);
-}
-
-/*****************************************************************************/
-/* osl_setThreadPriority */
-/*****************************************************************************/
-void SAL_CALL osl_setThreadPriority(oslThread Thread,
- oslThreadPriority Priority)
-{
- int winPriority;
- osl_TThreadImpl* pThreadImpl= (osl_TThreadImpl*)Thread;
-
- OSL_ASSERT(pThreadImpl); /* valid ptr? */
-
-
- /* map enum to WIN32 levels
- it would be faster and more elegant to preset
- the enums, but that would require an #ifdef in
- the exported header, which is not desired.
- */
- switch(Priority) {
-
- case osl_Thread_PriorityHighest:
- winPriority= THREAD_PRIORITY_HIGHEST;
- break;
-
- case osl_Thread_PriorityAboveNormal:
- winPriority= THREAD_PRIORITY_ABOVE_NORMAL;
- break;
-
- case osl_Thread_PriorityNormal:
- winPriority= THREAD_PRIORITY_NORMAL;
- break;
-
- case osl_Thread_PriorityBelowNormal:
- winPriority= THREAD_PRIORITY_BELOW_NORMAL;
- break;
-
- case osl_Thread_PriorityLowest:
- winPriority= THREAD_PRIORITY_LOWEST;
- break;
-
- case osl_Thread_PriorityUnknown:
- OSL_ASSERT(FALSE); /* only fools try this...*/
-
- /* let release-version behave friendly */
- return;
-
- default:
- OSL_ASSERT(FALSE); /* enum expanded, but forgotten here...*/
-
- /* let release-version behave friendly */
- return;
- }
-
- SetThreadPriority(pThreadImpl->m_hThread, winPriority);
-}
-
-/*****************************************************************************/
-/* osl_getThreadPriority */
-/*****************************************************************************/
-oslThreadPriority SAL_CALL osl_getThreadPriority(const oslThread Thread)
-{
- int winPriority;
- oslThreadPriority Priority;
-
- osl_TThreadImpl* pThreadImpl= (osl_TThreadImpl*)Thread;
-
- /* invalid arguments ?*/
- if(pThreadImpl==0 || pThreadImpl->m_hThread==0)
- {
- return osl_Thread_PriorityUnknown;
- }
-
- winPriority=
- GetThreadPriority(pThreadImpl->m_hThread);
-
-
- if(winPriority == THREAD_PRIORITY_ERROR_RETURN)
- {
- return osl_Thread_PriorityUnknown;
- }
-
- /* map WIN32 priority to enum */
- switch(winPriority)
- {
- case THREAD_PRIORITY_TIME_CRITICAL:
- case THREAD_PRIORITY_HIGHEST:
- Priority= osl_Thread_PriorityHighest;
- break;
-
- case THREAD_PRIORITY_ABOVE_NORMAL:
- Priority= osl_Thread_PriorityAboveNormal;
- break;
-
- case THREAD_PRIORITY_NORMAL:
- Priority= osl_Thread_PriorityNormal;
- break;
-
- case THREAD_PRIORITY_BELOW_NORMAL:
- Priority= osl_Thread_PriorityBelowNormal;
- break;
-
- case THREAD_PRIORITY_IDLE:
- case THREAD_PRIORITY_LOWEST:
- Priority= osl_Thread_PriorityLowest;
- break;
-
- default:
- OSL_ASSERT(FALSE); /* WIN32 API changed, incorporate new prio-level! */
-
- /* release-version behaves friendly */
- Priority= osl_Thread_PriorityUnknown;
- }
-
- return Priority;
-}
-
-/*****************************************************************************/
-/* osl_isThreadRunning */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_isThreadRunning(const oslThread Thread)
-{
- osl_TThreadImpl* pThreadImpl= (osl_TThreadImpl*)Thread;
-
- /* invalid arguments ?*/
- if(pThreadImpl==0 || pThreadImpl->m_hThread==0)
- {
- return sal_False;
- }
-
- return (sal_Bool)(WaitForSingleObject(pThreadImpl->m_hThread, 0) != WAIT_OBJECT_0);
-}
-
-/*****************************************************************************/
-/* osl_joinWithThread */
-/*****************************************************************************/
-void SAL_CALL osl_joinWithThread(oslThread Thread)
-{
- osl_TThreadImpl* pThreadImpl= (osl_TThreadImpl*)Thread;
-
- /* invalid arguments?*/
- if(pThreadImpl==0 || pThreadImpl->m_hThread==0)
- {
- /* assume thread is not running */
- return;
- }
-
- WaitForSingleObject(pThreadImpl->m_hThread, INFINITE);
-}
-
-/*****************************************************************************/
-/* osl_waitThread */
-/*****************************************************************************/
-void SAL_CALL osl_waitThread(const TimeValue* pDelay)
-{
- if (pDelay)
- {
- DWORD millisecs = pDelay->Seconds * 1000L + pDelay->Nanosec / 1000000L;
-
- Sleep(millisecs);
- }
-}
-
-/*****************************************************************************/
-/* osl_terminateThread */
-/*****************************************************************************/
-void SAL_CALL osl_terminateThread(oslThread Thread)
-{
- osl_TThreadImpl* pThreadImpl= (osl_TThreadImpl*)Thread;
-
- /* invalid arguments?*/
- if (pThreadImpl==0 || pThreadImpl->m_hThread==0)
- {
- /* assume thread is not running */
- return;
- }
-
- osl_incrementInterlockedCount(&(pThreadImpl->m_nTerminationRequested));
-}
-
-
-/*****************************************************************************/
-/* osl_scheduleThread */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_scheduleThread(oslThread Thread)
-{
- osl_TThreadImpl* pThreadImpl= (osl_TThreadImpl*)Thread;
-
- osl_yieldThread();
-
- /* invalid arguments?*/
- if (pThreadImpl==0 || pThreadImpl->m_hThread==0)
- {
- /* assume thread is not running */
- return sal_False;
- }
-
- return (sal_Bool)(0 == pThreadImpl->m_nTerminationRequested);
-}
-
-/*****************************************************************************/
-/* osl_yieldThread */
-/*****************************************************************************/
-void SAL_CALL osl_yieldThread(void)
-{
- Sleep(0);
-}
-
-void SAL_CALL osl_setThreadName(char const * name) {
-#ifdef _MSC_VER
- /* See <http://msdn.microsoft.com/en-us/library/xcb2z8hs.aspx>: */
-#pragma pack(push, 8)
- struct {
- DWORD dwType;
- LPCSTR szName;
- DWORD dwThreadID;
- DWORD dwFlags;
- } info;
-#pragma pack(pop)
- info.dwType = 0x1000;
- info.szName = name;
- info.dwThreadID = (DWORD) -1;
- info.dwFlags = 0;
- __try {
- RaiseException(
- 0x406D1388, 0, sizeof info / sizeof (ULONG_PTR),
- (ULONG_PTR *) &info);
- } __except (EXCEPTION_EXECUTE_HANDLER) {}
-#else
- (void) name;
-#endif
-}
-
-typedef struct _TLS
-{
- DWORD dwIndex;
- oslThreadKeyCallbackFunction pfnCallback;
- struct _TLS *pNext, *pPrev;
-} TLS, *PTLS;
-
-static PTLS g_pThreadKeyList = NULL;
-CRITICAL_SECTION g_ThreadKeyListCS;
-
-static void AddKeyToList( PTLS pTls )
-{
- if ( pTls )
- {
- EnterCriticalSection( &g_ThreadKeyListCS );
-
- pTls->pNext = g_pThreadKeyList;
- pTls->pPrev = 0;
-
- if ( g_pThreadKeyList )
- g_pThreadKeyList->pPrev = pTls;
-
- g_pThreadKeyList = pTls;
-
- LeaveCriticalSection( &g_ThreadKeyListCS );
- }
-}
-
-static void RemoveKeyFromList( PTLS pTls )
-{
- if ( pTls )
- {
- EnterCriticalSection( &g_ThreadKeyListCS );
- if ( pTls->pPrev )
- pTls->pPrev->pNext = pTls->pNext;
- else
- {
- OSL_ASSERT( pTls == g_pThreadKeyList );
- g_pThreadKeyList = pTls->pNext;
- }
-
- if ( pTls->pNext )
- pTls->pNext->pPrev = pTls->pPrev;
- LeaveCriticalSection( &g_ThreadKeyListCS );
- }
-}
-
-void SAL_CALL _osl_callThreadKeyCallbackOnThreadDetach(void)
-{
- PTLS pTls;
-
-
- EnterCriticalSection( &g_ThreadKeyListCS );
- pTls = g_pThreadKeyList;
- while ( pTls )
- {
- if ( pTls->pfnCallback )
- {
- void *pValue = TlsGetValue( pTls->dwIndex );
-
- if ( pValue )
- pTls->pfnCallback( pValue );
- }
-
- pTls = pTls->pNext;
- }
- LeaveCriticalSection( &g_ThreadKeyListCS );
-}
-
-/*****************************************************************************/
-/* osl_createThreadKey */
-/*****************************************************************************/
-oslThreadKey SAL_CALL osl_createThreadKey(oslThreadKeyCallbackFunction pCallback)
-{
- PTLS pTls = rtl_allocateMemory( sizeof(TLS) );
-
- if ( pTls )
- {
- pTls->pfnCallback = pCallback;
- if ( (DWORD)-1 == (pTls->dwIndex = TlsAlloc()) )
- {
- rtl_freeMemory( pTls );
- pTls = 0;
- }
- else
- AddKeyToList( pTls );
- }
-
- return ((oslThreadKey)pTls);
-}
-
-/*****************************************************************************/
-/* osl_destroyThreadKey */
-/*****************************************************************************/
-void SAL_CALL osl_destroyThreadKey(oslThreadKey Key)
-{
- if (Key != 0)
- {
- PTLS pTls = (PTLS)Key;
-
- RemoveKeyFromList( pTls );
- TlsFree( pTls->dwIndex );
- rtl_freeMemory( pTls );
- }
-}
-
-/*****************************************************************************/
-/* osl_getThreadKeyData */
-/*****************************************************************************/
-void* SAL_CALL osl_getThreadKeyData(oslThreadKey Key)
-{
- if (Key != 0)
- {
- PTLS pTls = (PTLS)Key;
-
- return (TlsGetValue( pTls->dwIndex ));
- }
-
- return (NULL);
-}
-
-/*****************************************************************************/
-/* osl_setThreadKeyData */
-/*****************************************************************************/
-sal_Bool SAL_CALL osl_setThreadKeyData(oslThreadKey Key, void *pData)
-{
- if (Key != 0)
- {
- PTLS pTls = (PTLS)Key;
- void* pOldData = NULL;
- BOOL fSuccess;
-
- if ( pTls->pfnCallback )
- pOldData = TlsGetValue( pTls->dwIndex );
-
- fSuccess = TlsSetValue( pTls->dwIndex, pData );
-
- if ( fSuccess && pTls->pfnCallback && pOldData )
- pTls->pfnCallback( pOldData );
-
- return (sal_Bool)(fSuccess != FALSE);
- }
-
- return (sal_False);
-}
-
-
-/*****************************************************************************/
-/* osl_getThreadTextEncoding */
-/*****************************************************************************/
-
-DWORD g_dwTLSTextEncodingIndex = (DWORD)-1;
-
-
-rtl_TextEncoding SAL_CALL osl_getThreadTextEncoding(void)
-{
- DWORD dwEncoding;
- rtl_TextEncoding _encoding;
- BOOL gotACP;
-
- if ( (DWORD)-1 == g_dwTLSTextEncodingIndex )
- g_dwTLSTextEncodingIndex = TlsAlloc();
-
- dwEncoding = (DWORD)TlsGetValue( g_dwTLSTextEncodingIndex );
- _encoding = LOWORD(dwEncoding);
- gotACP = HIWORD(dwEncoding);
-
-
- if ( !gotACP )
- {
- char *pszEncoding;
-
- if ( NULL != (pszEncoding = getenv( "SOLAR_USER_RTL_TEXTENCODING" )) )
- _encoding = (rtl_TextEncoding)atoi(pszEncoding);
- else
- _encoding = rtl_getTextEncodingFromWindowsCodePage( GetACP() );
-
- TlsSetValue( g_dwTLSTextEncodingIndex, (LPVOID)MAKELONG( _encoding, TRUE ) );
- }
-
- return _encoding;
-}
-
-/*****************************************************************************/
-/* osl_getThreadTextEncoding */
-/*****************************************************************************/
-rtl_TextEncoding SAL_CALL osl_setThreadTextEncoding( rtl_TextEncoding Encoding )
-{
- rtl_TextEncoding oldEncoding = osl_getThreadTextEncoding();
-
- TlsSetValue( g_dwTLSTextEncodingIndex, (LPVOID)MAKELONG( Encoding, TRUE) );
-
- return oldEncoding;
-}
-
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/time.c b/sal/osl/w32/time.c
deleted file mode 100644
index 6ce388d32..000000000
--- a/sal/osl/w32/time.c
+++ /dev/null
@@ -1,218 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "system.h"
-
-#include <osl/diagnose.h>
-#include <osl/time.h>
-#include <sys/timeb.h>
-
-extern sal_Bool TimeValueToFileTime(const TimeValue *cpTimeVal, FILETIME *pFTime);
-
-extern BOOL FileTimeToTimeValue( const FILETIME *cpFTime, TimeValue *pTimeVal );
-
-//--------------------------------------------------
-// osl_getSystemTime
-//--------------------------------------------------
-
-sal_Bool SAL_CALL osl_getSystemTime(TimeValue* pTimeVal)
-{
- SYSTEMTIME SystemTime;
- FILETIME CurTime, OffTime;
- __int64 Value;
-
- OSL_ASSERT(pTimeVal != 0);
-
- GetSystemTime(&SystemTime);
- SystemTimeToFileTime(&SystemTime, &CurTime);
-
- SystemTime.wYear = 1970;
- SystemTime.wMonth = 1;
- SystemTime.wDayOfWeek = 0;
- SystemTime.wDay = 1;
- SystemTime.wHour = 0;
- SystemTime.wMinute = 0;
- SystemTime.wSecond = 0;
- SystemTime.wMilliseconds = 0;
-
- SystemTimeToFileTime(&SystemTime, &OffTime);
-
- Value = *((__int64 *)&CurTime) - *((__int64 *)&OffTime);
-
- pTimeVal->Seconds = (unsigned long) (Value / 10000000L);
- pTimeVal->Nanosec = (unsigned long)((Value % 10000000L) * 100);
-
- return (sal_True);
-}
-
-//--------------------------------------------------
-// osl_getDateTimeFromTimeValue
-//--------------------------------------------------
-
-sal_Bool SAL_CALL osl_getDateTimeFromTimeValue( TimeValue* pTimeVal, oslDateTime* pDateTime )
-{
- FILETIME aFileTime;
- SYSTEMTIME aSystemTime;
-
- if ( TimeValueToFileTime(pTimeVal, &aFileTime) )
- {
- if ( FileTimeToSystemTime( &aFileTime, &aSystemTime ) )
- {
- pDateTime->NanoSeconds = pTimeVal->Nanosec;
-
- pDateTime->Seconds = aSystemTime.wSecond;
- pDateTime->Minutes = aSystemTime.wMinute;
- pDateTime->Hours = aSystemTime.wHour;
- pDateTime->Day = aSystemTime.wDay;
- pDateTime->DayOfWeek = aSystemTime.wDayOfWeek;
- pDateTime->Month = aSystemTime.wMonth;
- pDateTime->Year = aSystemTime.wYear;
-
- return sal_True;
- }
- }
-
- return sal_False;
-}
-
-//--------------------------------------------------
-// osl_getTimeValueFromDateTime
-//--------------------------------------------------
-
-sal_Bool SAL_CALL osl_getTimeValueFromDateTime( oslDateTime* pDateTime, TimeValue* pTimeVal )
-{
- FILETIME aFileTime;
- SYSTEMTIME aSystemTime;
-
- aSystemTime.wMilliseconds = 0;
- aSystemTime.wSecond = pDateTime->Seconds;
- aSystemTime.wMinute = pDateTime->Minutes;
- aSystemTime.wHour = pDateTime->Hours;
- aSystemTime.wDay = pDateTime->Day;
- aSystemTime.wDayOfWeek = pDateTime->DayOfWeek;
- aSystemTime.wMonth = pDateTime->Month;
- aSystemTime.wYear = pDateTime->Year;
-
- if ( SystemTimeToFileTime( &aSystemTime, &aFileTime ) )
- {
- if (FileTimeToTimeValue( &aFileTime, pTimeVal ) )
- {
- pTimeVal->Nanosec = pDateTime->NanoSeconds;
- return sal_True;
- }
- }
-
- return sal_False;
-}
-
-
-//--------------------------------------------------
-// osl_getLocalTimeFromSystemTime
-//--------------------------------------------------
-
-sal_Bool SAL_CALL osl_getLocalTimeFromSystemTime( TimeValue* pSystemTimeVal, TimeValue* pLocalTimeVal )
-{
- TIME_ZONE_INFORMATION aTimeZoneInformation;
- DWORD Success;
- sal_Int64 bias;
-
- // get timezone information
- if ( ( Success=GetTimeZoneInformation( &aTimeZoneInformation ) ) != TIME_ZONE_ID_INVALID)
- {
- bias=aTimeZoneInformation.Bias;
-
- // add bias for daylight saving time
- if ( Success== TIME_ZONE_ID_DAYLIGHT )
- bias+=aTimeZoneInformation.DaylightBias;
-
- if ( (sal_Int64) pSystemTimeVal->Seconds > ( bias * 60 ) )
- {
- pLocalTimeVal->Seconds = (sal_uInt32) (pSystemTimeVal->Seconds - ( bias * 60) );
- pLocalTimeVal->Nanosec = pSystemTimeVal->Nanosec;
-
- return sal_True;
- }
- }
-
- return sal_False;
-}
-
-//--------------------------------------------------
-// osl_getSystemTimeFromLocalTime
-//--------------------------------------------------
-
-sal_Bool SAL_CALL osl_getSystemTimeFromLocalTime( TimeValue* pLocalTimeVal, TimeValue* pSystemTimeVal )
-{
- TIME_ZONE_INFORMATION aTimeZoneInformation;
- DWORD Success;
- sal_Int64 bias;
-
- // get timezone information
- if ( ( Success=GetTimeZoneInformation( &aTimeZoneInformation ) ) != TIME_ZONE_ID_INVALID)
- {
- bias=aTimeZoneInformation.Bias;
-
- // add bias for daylight saving time
- if ( Success== TIME_ZONE_ID_DAYLIGHT )
- bias+=aTimeZoneInformation.DaylightBias;
-
- if ( (sal_Int64) pLocalTimeVal->Seconds + ( bias * 60 ) > 0 )
- {
- pSystemTimeVal->Seconds = (sal_uInt32) ( pLocalTimeVal->Seconds + ( bias * 60) );
- pSystemTimeVal->Nanosec = pLocalTimeVal->Nanosec;
-
- return sal_True;
- }
- }
-
- return sal_False;
-}
-
-
-static struct _timeb startTime;
-static sal_Bool bGlobalTimer = sal_False;
-
-sal_uInt32 SAL_CALL osl_getGlobalTimer(void)
-{
- struct _timeb currentTime;
- sal_uInt32 nSeconds;
-
- if ( bGlobalTimer == sal_False )
- {
- _ftime( &startTime );
- bGlobalTimer=sal_True;
- }
-
- _ftime( &currentTime );
-
- nSeconds = (sal_uInt32)( currentTime.time - startTime.time );
-
- return ( nSeconds * 1000 ) + (long)( currentTime.millitm - startTime.millitm );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/osl/w32/util.c b/sal/osl/w32/util.c
deleted file mode 100644
index ebf5a43eb..000000000
--- a/sal/osl/w32/util.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "osl/util.h"
-
-
-
-extern sal_Bool SAL_CALL osl_getEthernetAddress( sal_uInt8* pAddr )
-{
- (void)pAddr; //unused, but part of the API/ABI
- return sal_False;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/prj/build.lst b/sal/prj/build.lst
deleted file mode 100644
index 8222001e7..000000000
--- a/sal/prj/build.lst
+++ /dev/null
@@ -1,33 +0,0 @@
-sa sal : NATIVE:xml2cmp external BOOST:boost CPPUNIT:cppunit NULL
-sa sal usr1 - all sa_mkout NULL
-sa sal\inc nmake - all sa_inc NULL
-sa sal\typesconfig nmake - all sa_tc sa_inc NULL
-sa sal\cpprt nmake - u sa_cpprt sa_util sa_inc NULL
-sa sal\rtl\source nmake - all sa_rtl sa_tc.u sa_inc NULL
-sa sal\textenc nmake - all sa_textenc sa_tc.u sa_inc NULL
-sa sal\systools\win32\uwinapi nmake - n sa_uwinapi sa_inc NULL
-sa sal\systools\win32\onlineupdate nmake - n sa_onlineupdate sa_uwinapi.n sa_inc NULL
-sa sal\osl\w32 nmake - n sa_osln sa_inc NULL
-sa sal\osl\os2 nmake - p sa_oslp sa_inc NULL
-sa sal\qa nmake - all sa_qa sa_util NULL
-sa sal\osl\unx nmake - u sa_oslu sa_tc.u sa_inc NULL
-sa sal\osl\all nmake - all sa_oslall sa_tc.u sa_inc NULL
-sa sal\util nmake - all sa_util sa_tc.u sa_oslall sa_uwinapi.n sa_onlineupdate.n sa_osln.n sa_oslp.p sa_oslu.u sa_rtl sa_textenc NULL
-sa sal\cppunittester nmake - all sa_cppunittester sa_cpprt.u sa_util NULL
-sa sal\qa\ByteSequence nmake - all sa_qa_ByteSequence sa_cppunittester sa_util NULL
-sa sal\qa\OStringBuffer nmake - all sa_qa_OStringBuffer sa_cppunittester sa_util NULL
-sa sal\qa\osl\getsystempathfromfileurl nmake - all sa_qa_osl_getsystempathfromfileurl sa_cppunittester sa_util NULL
-sa sal\qa\osl\file nmake - u sa_qa_osl_file sa_cppunittester sa_util NULL
-sa sal\qa\osl\module nmake - u sa_qa_osl_module sa_cppunittester sa_util NULL
-sa sal\qa\osl\condition nmake - all sa_qa_osl_condition sa_cppunittester sa_util NULL
-sa sal\qa\osl\security nmake - all sa_qa_osl_security sa_cppunittester sa_util NULL
-sa sal\qa\osl\process nmake - all sa_qa_osl_process sa_cppunittester sa_util NULL
-sa sal\qa\rtl\strings nmake - all sa_qa_rt_strings sa_cppunittester sa_util NULL
-sa sal\qa\rtl\oustringbuffer nmake - all sa_qa_rt_oustringbuffer sa_cppunittester sa_util NULL
-sa sal\qa\rtl\alloc nmake - all sa_qa_rt_alloc sa_cppunittester sa_util NULL
-sa sal\qa\rtl\crc32 nmake - all sa_qa_rtl_crc32 sa_cppunittester sa_util NULL
-sa sal\qa\rtl\cipher nmake - all sa_qa_rtl_cipher sa_cppunittester sa_util NULL
-sa sal\qa\rtl\doublelock nmake - all sa_qa_rtl_doublelock sa_cppunittester sa_util NULL
-sa sal\qa\rtl\locale nmake - all sa_qa_rtl_locale sa_cppunittester sa_util NULL
-sa sal\qa\sal nmake - all sa_qa_sal sa_cppunittester sa_util NULL
-sa sal\qa\static nmake - u sal_qa_static sa_qa_sal NULL
diff --git a/sal/prj/d.lst b/sal/prj/d.lst
deleted file mode 100644
index 981fc5ecb..000000000
--- a/sal/prj/d.lst
+++ /dev/null
@@ -1,42 +0,0 @@
-mkdir: %_DEST%\bin\cppunit
-mkdir: %_DEST%\inc\cppunittester
-mkdir: %_DEST%\inc\sal
-mkdir: %_DEST%\inc\osl
-mkdir: %_DEST%\inc\rtl
-mkdir: %_DEST%\inc\systools
-mkdir: %_DEST%\inc\systools\win32
-
-..\inc\cppunittester\protectorfactory.hxx %_DEST%\inc\protectorfactory.hxx
-..\%__SRC%\inc\rtlbootstrap.mk %_DEST%\inc\rtlbootstrap.mk
-..\inc\sal\*.h %_DEST%\inc\sal\*.h
-..\%__SRC%\inc\sal\typesizes.h %_DEST%\inc\sal\typesizes.h
-..\inc\osl\*.h %_DEST%\inc\osl\*.h
-..\inc\osl\*.hxx %_DEST%\inc\osl\*.hxx
-..\inc\rtl\*.h %_DEST%\inc\rtl\*.h
-..\inc\rtl\*.hxx %_DEST%\inc\rtl\*.hxx
-..\inc\systools\win32\*.h %_DEST%\inc\systools\win32\*.h
-..\inc\systools\win32\*.hxx %_DEST%\inc\systools\win32\*.hxx
-
-..\%__SRC%\lib\libuno_sal.so.3 %_DEST%\lib\libuno_sal.so.3
-symlink: %_DEST%\lib\libuno_sal.so.3 %_DEST%\lib\libuno_sal.so
-..\%__SRC%\lib\libuno_sal.dylib.3 %_DEST%\lib\libuno_sal.dylib.3
-symlink: %_DEST%\lib\libuno_sal.dylib.3 %_DEST%\lib\libuno_sal.dylib
-..\%__SRC%\lib\libsal_textenc.so.3 %_DEST%\lib\libsal_textenc.so.3
-symlink: %_DEST%\lib\libsal_textenc.so.3 %_DEST%\lib\libsal_textenc.so
-..\%__SRC%\lib\libsal_textenc.dylib.3 %_DEST%\lib\libsal_textenc.dylib.3
-symlink: %_DEST%\lib\libsal_textenc.dylib.3 %_DEST%\lib\libsal_textenc.dylib
-..\%__SRC%\lib\*.sl %_DEST%\lib\*.sl
-..\%__SRC%\lib\*.a %_DEST%\lib\*.a
-
-..\%__SRC%\slb\sal.lib %_DEST%\lib\xsal.lib
-
-..\%__SRC%\bin\*.dll %_DEST%\bin\*.dll
-..\%__SRC%\lib\*.lib %_DEST%\lib\*.lib
-..\%__SRC%\bin\*.bin %_DEST%\bin\*.bin
-..\%__SRC%\misc\*.hid %_DEST%\bin\*.hid
-..\%__SRC%\bin\*.res %_DEST%\bin\*.res
-
-..\%__SRC%\inc\udkversion.h %_DEST%\inc\sal\udkversion.h
-
-..\%__SRC%\bin\cppunittester.exe %_DEST%\bin\cppunit\cppunittester.exe
-..\%__SRC%\bin\cppunittester %_DEST%\bin\cppunit\cppunittester
diff --git a/sal/qa/ByteSequence/ByteSequence.cxx b/sal/qa/ByteSequence/ByteSequence.cxx
deleted file mode 100644
index f715c9013..000000000
--- a/sal/qa/ByteSequence/ByteSequence.cxx
+++ /dev/null
@@ -1,197 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
-*
-* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-*
-* Copyright 2000, 2010 Oracle and/or its affiliates.
-*
-* OpenOffice.org - a multi-platform office productivity suite
-*
-* This file is part of OpenOffice.org.
-*
-* OpenOffice.org is free software: you can redistribute it and/or modify
-* it under the terms of the GNU Lesser General Public License version 3
-* only, as published by the Free Software Foundation.
-*
-* OpenOffice.org is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU Lesser General Public License version 3 for more details
-* (a copy is included in the LICENSE file that accompanied this code).
-*
-* You should have received a copy of the GNU Lesser General Public License
-* version 3 along with OpenOffice.org. If not, see
-* <http://www.openoffice.org/license.html>
-* for a copy of the LGPLv3 License.
-*
-************************************************************************/
-
-#include "precompiled_sal.hxx"
-#include "sal/config.h"
-
-#include "cppunit/TestAssert.h"
-#include "cppunit/TestFixture.h"
-#include "cppunit/extensions/HelperMacros.h"
-#include "cppunit/plugin/TestPlugIn.h"
-#include "rtl/byteseq.hxx"
-#include "sal/types.h"
-
-namespace {
-
-class Test: public CppUnit::TestFixture {
-public:
- void test_default() {
- rtl::ByteSequence s;
- CPPUNIT_ASSERT_EQUAL(sal_Int32(0), s.getLength());
- }
-
- void test_size0() {
- rtl::ByteSequence s(sal_Int32(0));
- CPPUNIT_ASSERT_EQUAL(sal_Int32(0), s.getLength());
- }
-
- void test_size5() {
- rtl::ByteSequence s(5);
- sal_Int8 const * p = s.getConstArray();
- CPPUNIT_ASSERT_EQUAL(sal_Int32(5), s.getLength());
- CPPUNIT_ASSERT_EQUAL(sal_Int8(0), p[0]);
- CPPUNIT_ASSERT_EQUAL(sal_Int8(0), p[1]);
- CPPUNIT_ASSERT_EQUAL(sal_Int8(0), p[2]);
- CPPUNIT_ASSERT_EQUAL(sal_Int8(0), p[3]);
- CPPUNIT_ASSERT_EQUAL(sal_Int8(0), p[4]);
- }
-
- void test_noinit0() {
- rtl::ByteSequence s(0, rtl::BYTESEQ_NODEFAULT);
- CPPUNIT_ASSERT_EQUAL(sal_Int32(0), s.getLength());
- }
-
- void test_noinit5() {
- rtl::ByteSequence s(5, rtl::BYTESEQ_NODEFAULT);
- CPPUNIT_ASSERT_EQUAL(sal_Int32(5), s.getLength());
- }
-
- void test_elem0() {
- rtl::ByteSequence s(0, 0);
- CPPUNIT_ASSERT_EQUAL(sal_Int32(0), s.getLength());
- }
-
- void test_elem5() {
- sal_Int8 const a[5] = { 0, 1, 2, 3, 4 };
- rtl::ByteSequence s(a, 5);
- sal_Int8 const * p = s.getConstArray();
- CPPUNIT_ASSERT_EQUAL(sal_Int32(5), s.getLength());
- CPPUNIT_ASSERT_EQUAL(sal_Int8(0), p[0]);
- CPPUNIT_ASSERT_EQUAL(sal_Int8(1), p[1]);
- CPPUNIT_ASSERT_EQUAL(sal_Int8(2), p[2]);
- CPPUNIT_ASSERT_EQUAL(sal_Int8(3), p[3]);
- CPPUNIT_ASSERT_EQUAL(sal_Int8(4), p[4]);
- }
-
- void test_copy() {
- rtl::ByteSequence s1(5);
- {
- rtl::ByteSequence s2(s1);
- CPPUNIT_ASSERT_EQUAL(sal_Int32(5), s2.getLength());
- CPPUNIT_ASSERT_EQUAL(s1.getConstArray(), s2.getConstArray());
- CPPUNIT_ASSERT_EQUAL(s1.getHandle(), s2.getHandle());
- CPPUNIT_ASSERT_EQUAL(sal_Int32(2), s1.getHandle()->nRefCount);
- }
- CPPUNIT_ASSERT_EQUAL(sal_Int32(1), s1.getHandle()->nRefCount);
- }
-
- void test_fromC() {
- sal_Sequence c = { 1, 1, { 0 } };
- {
- rtl::ByteSequence s(&c);
- CPPUNIT_ASSERT_EQUAL(sal_Int32(1), s.getLength());
- CPPUNIT_ASSERT_EQUAL(
- static_cast< void const * >(c.elements),
- static_cast< void const * >(s.getConstArray()));
- CPPUNIT_ASSERT_EQUAL(&c, s.getHandle());
- CPPUNIT_ASSERT_EQUAL(sal_Int32(2), c.nRefCount);
- }
- CPPUNIT_ASSERT_EQUAL(sal_Int32(1), c.nRefCount);
- }
-
- void test_noacquire() {
- sal_Sequence c = { 2, 1, { 0 } };
- {
- rtl::ByteSequence s(&c, rtl::BYTESEQ_NOACQUIRE);
- CPPUNIT_ASSERT_EQUAL(sal_Int32(1), s.getLength());
- CPPUNIT_ASSERT_EQUAL(
- static_cast< void const * >(c.elements),
- static_cast< void const * >(s.getConstArray()));
- CPPUNIT_ASSERT_EQUAL(&c, s.getHandle());
- CPPUNIT_ASSERT_EQUAL(sal_Int32(2), c.nRefCount);
- }
- CPPUNIT_ASSERT_EQUAL(sal_Int32(1), c.nRefCount);
- }
-
- void test_getArray() {
- sal_Int8 const a[5] = { 0, 1, 2, 3, 4 };
- rtl::ByteSequence s1(a, 5);
- rtl::ByteSequence s2(s1);
- sal_Int8 * p = s2.getArray();
- p[2] = 10;
- CPPUNIT_ASSERT_EQUAL(sal_Int32(1), s1.getHandle()->nRefCount);
- CPPUNIT_ASSERT_EQUAL(sal_Int32(1), s2.getHandle()->nRefCount);
- CPPUNIT_ASSERT_EQUAL(sal_Int8(2), s1.getConstArray()[2]);
- CPPUNIT_ASSERT_EQUAL(sal_Int8(10), s2.getConstArray()[2]);
- }
-
- void test_same0() {
- rtl::ByteSequence s1;
- rtl::ByteSequence s2;
- CPPUNIT_ASSERT_EQUAL(sal_True, s1 == s2);
- CPPUNIT_ASSERT_EQUAL(sal_True, s2 == s1);
- CPPUNIT_ASSERT_EQUAL(sal_False, s1 != s2);
- CPPUNIT_ASSERT_EQUAL(sal_False, s2 != s1);
- }
-
- void test_diffLen() {
- sal_Int8 const a[5] = { 0, 1, 2, 3, 4 };
- rtl::ByteSequence s1(a, 5);
- rtl::ByteSequence s2(a, 4);
- CPPUNIT_ASSERT_EQUAL(sal_False, s1 == s2);
- CPPUNIT_ASSERT_EQUAL(sal_False, s2 == s1);
- CPPUNIT_ASSERT_EQUAL(sal_True, s1 != s2);
- CPPUNIT_ASSERT_EQUAL(sal_True, s2 != s1);
- }
-
- void test_diffElem() {
- sal_Int8 const a1[5] = { 0, 1, 2, 3, 4 };
- rtl::ByteSequence s1(a1, 5);
- sal_Int8 const a2[5] = { 0, 1, 10, 3, 4 };
- rtl::ByteSequence s2(a2, 5);
- CPPUNIT_ASSERT_EQUAL(sal_False, s1 == s2);
- CPPUNIT_ASSERT_EQUAL(sal_False, s2 == s1);
- CPPUNIT_ASSERT_EQUAL(sal_True, s1 != s2);
- CPPUNIT_ASSERT_EQUAL(sal_True, s2 != s1);
- }
-
- CPPUNIT_TEST_SUITE(Test);
- CPPUNIT_TEST(test_default);
- CPPUNIT_TEST(test_size0);
- CPPUNIT_TEST(test_size5);
- CPPUNIT_TEST(test_noinit0);
- CPPUNIT_TEST(test_noinit5);
- CPPUNIT_TEST(test_elem0);
- CPPUNIT_TEST(test_elem5);
- CPPUNIT_TEST(test_copy);
- CPPUNIT_TEST(test_fromC);
- CPPUNIT_TEST(test_noacquire);
- CPPUNIT_TEST(test_getArray);
- CPPUNIT_TEST(test_same0);
- CPPUNIT_TEST(test_diffLen);
- CPPUNIT_TEST(test_diffElem);
- CPPUNIT_TEST_SUITE_END();
-};
-
-CPPUNIT_TEST_SUITE_REGISTRATION(Test);
-
-}
-
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/ByteSequence/makefile.mk b/sal/qa/ByteSequence/makefile.mk
deleted file mode 100644
index cc2d79dbf..000000000
--- a/sal/qa/ByteSequence/makefile.mk
+++ /dev/null
@@ -1,53 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#***********************************************************************/
-
-PRJ = ../..
-PRJNAME = sal
-TARGET = qa_ByteSequence
-
-ENABLE_EXCEPTIONS = TRUE
-
-.INCLUDE: settings.mk
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-
-.IF "$(OS)" == "IOS"
-CFLAGSCXX += -DCPPUNIT_PLUGIN_EXPORTED_NAME=cppunitTest_$(TARGET)
-.ENDIF
-
-SHL1IMPLIB = i$(SHL1TARGET)
-SHL1OBJS = $(SLO)/ByteSequence.obj
-SHL1RPATH = NONE
-SHL1STDLIBS = $(CPPUNITLIB) $(SALLIB)
-SHL1TARGET = rtl_ByteSequence
-SHL1VERSIONMAP = $(PRJ)/qa/export.map
-DEF1NAME = $(SHL1TARGET)
-
-SLOFILES = $(SHL1OBJS)
-
-.INCLUDE: target.mk
-.INCLUDE: $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/OStringBuffer/makefile.mk b/sal/qa/OStringBuffer/makefile.mk
deleted file mode 100644
index 4149c5848..000000000
--- a/sal/qa/OStringBuffer/makefile.mk
+++ /dev/null
@@ -1,71 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=sal
-TARGET=qa_ostringbuffer
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-.IF "$(OS)" == "IOS"
-CFLAGSCXX += -DCPPUNIT_PLUGIN_EXPORTED_NAME=cppunitTest_$(TARGET)
-.ENDIF
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-
-#----------------------------------- OStringBuffer -----------------------------------
-
-SHL1OBJS= \
- $(SLO)$/rtl_OStringBuffer.obj \
- $(SLO)$/rtl_String_Utils.obj
-
-SHL1TARGET= rtl_OStringBuffer
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-# SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-DEF1NAME =$(SHL1TARGET)
-SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
-SHL1RPATH = NONE
-
-#------------------------------- All object files -------------------------------
-# do this here, so we get right dependencies
-SLOFILES=$(SHL1OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE: $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx b/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
deleted file mode 100644
index 172c436cb..000000000
--- a/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+++ /dev/null
@@ -1,16625 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <rtl/string.hxx>
-#include <rtl_String_Const.h>
-#include <rtl_String_Utils.hxx>
-#include <rtl/strbuf.hxx>
-
-#include "cppunit/TestAssert.h"
-#include "cppunit/TestFixture.h"
-#include "cppunit/extensions/HelperMacros.h"
-#include "cppunit/plugin/TestPlugIn.h"
-#include <string.h>
-
-using ::rtl::OStringBuffer;
-using ::rtl::OString;
-// This file contains cppunit tests for the
-// OString and OStringBuffer classes
-
-//------------------------------------------------------------------------
-// testing constructors
-//------------------------------------------------------------------------
-
-namespace rtl_OStringBuffer
-{
- class ctors : public CppUnit::TestFixture
- {
- public:
-
- void ctor_001()
- {
- ::rtl::OStringBuffer aStrBuf;
- const sal_Char* pStr = aStrBuf.getStr();
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "New OStringBuffer containing no characters",
- aStrBuf.getLength() == 0 &&
- *pStr == '\0' && aStrBuf.getCapacity() == 16
- );
- }
-
- void ctor_002()
- {
- ::rtl::OString aStrtmp( kTestStr1 );
- ::rtl::OStringBuffer aStrBuftmp( aStrtmp );
- ::rtl::OStringBuffer aStrBuf( aStrBuftmp );
- // sal_Bool res = cmpstr(aStrBuftmp.getStr(),aStrBuf.getStr());
-
- sal_Int32 nLenStrBuftmp = aStrBuftmp.getLength();
-
- rtl::OString sStr(aStrBuftmp.getStr());
- sal_Bool res = aStrtmp.equals( sStr );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "New OStringBuffer from another OStringBuffer",
- aStrBuf.getLength() == nLenStrBuftmp &&
- aStrBuf.getCapacity() == aStrBuftmp.getCapacity() &&
- res
- );
-
- }
-
- void ctor_003()
- {
- ::rtl::OStringBuffer aStrBuf1(kTestStr2Len);
- ::rtl::OStringBuffer aStrBuf2(0);
-
- const sal_Char* pStr1 = aStrBuf1.getStr();
- const sal_Char* pStr2 = aStrBuf2.getStr();
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "New OStringBuffer containing no characters and contain assigned capacity",
- aStrBuf1.getLength() == 0 &&
- *pStr1 == '\0' &&
- aStrBuf1.getCapacity() == kTestStr2Len &&
- aStrBuf2.getLength() == 0 &&
- *pStr2 == '\0' &&
- aStrBuf2.getCapacity() == 0
- );
-
- }
-
- void ctor_003_1()
- {
- // StringBuffer with created negative size are the
- // same as empty StringBuffers
- ::rtl::OStringBuffer aStrBuf3(kNonSInt32Max);
-
- const sal_Char* pStr = aStrBuf3.getStr();
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "New OStringBuffer containing no characters and contain assigned capacity",
- aStrBuf3.getLength() == 0 &&
- *pStr == '\0' &&
- aStrBuf3.getCapacity() == kNonSInt32Max
- );
- }
-
- void ctor_004()
- {
- ::rtl::OString aStrtmp( kTestStr1 );
- ::rtl::OStringBuffer aStrBuf( aStrtmp );
- sal_Int32 leg = aStrBuf.getLength();
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "New OStringBuffer from OString",
- aStrBuf.getStr() == aStrtmp &&
- leg == aStrtmp.pData->length &&
- aStrBuf.getCapacity() == leg+16
-
- );
- }
-
- void ctor_005() {
- rtl::OStringBuffer b1;
- b1.makeStringAndClear();
- rtl::OStringBuffer b2(b1);
- }
-
- void ctor_006()
- {
- //pass in a const char*, get a temp
- //OString
- ::rtl::OStringBuffer aStrBuf(kTestStr1);
- sal_Int32 leg = aStrBuf.getLength();
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "New OStringBuffer from const char*",
- leg == rtl_str_getLength(kTestStr1) &&
- aStrBuf.getCapacity() == leg+16
- );
- }
-
- CPPUNIT_TEST_SUITE(ctors);
- CPPUNIT_TEST(ctor_001);
- CPPUNIT_TEST(ctor_002);
- CPPUNIT_TEST(ctor_003);
- CPPUNIT_TEST(ctor_003_1);
- CPPUNIT_TEST(ctor_004);
- CPPUNIT_TEST(ctor_005);
- CPPUNIT_TEST(ctor_006);
- CPPUNIT_TEST_SUITE_END();
- };
-
-// -----------------------------------------------------------------------------
-
- class makeStringAndClear : public CppUnit::TestFixture
- {
- OString* arrOUS[6];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr1 );
- arrOUS[1] = new OString( kTestStr14 );
- arrOUS[2] = new OString( kTestStr25 );
- arrOUS[3] = new OString( kTestStr27 );
- arrOUS[4] = new OString( kTestStr29 );
- arrOUS[5] = new OString( "\0" );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4]; delete arrOUS[5];
- }
-
- void makeStringAndClear_001()
- {
- ::rtl::OStringBuffer aStrBuf1;
- ::rtl::OString aStr1;
-
- sal_Bool lastRes = (aStrBuf1.makeStringAndClear() == aStr1 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "two empty strings(def. constructor)",
- lastRes && ( aStrBuf1.getCapacity() == 0 ) &&
- ( *(aStrBuf1.getStr()) == '\0' )
- );
-
- }
-
- void makeStringAndClear_002()
- {
- ::rtl::OStringBuffer aStrBuf2(26);
- ::rtl::OString aStr2;
-
- sal_Bool lastRes = (aStrBuf2.makeStringAndClear() == aStr2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "two empty strings(with a argu)",
- lastRes && ( aStrBuf2.getCapacity() == 0 ) &&
- ( *(aStrBuf2.getStr()) == '\0' )
- );
-
- }
-
- void makeStringAndClear_003()
- {
- ::rtl::OStringBuffer aStrBuf3(*arrOUS[0]);
- ::rtl::OString aStr3(*arrOUS[0]);
-
- sal_Bool lastRes = (aStrBuf3.makeStringAndClear() == aStr3 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "normal string",
- lastRes && ( aStrBuf3.getCapacity() == 0 ) &&
- ( *(aStrBuf3.getStr()) == '\0' )
- );
-
- }
-
- void makeStringAndClear_004()
- {
- ::rtl::OStringBuffer aStrBuf4(*arrOUS[1]);
- ::rtl::OString aStr4(*arrOUS[1]);
-
- sal_Bool lastRes = (aStrBuf4.makeStringAndClear() == aStr4 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "string with space ",
- lastRes && ( aStrBuf4.getCapacity() == 0 ) &&
- ( *(aStrBuf4.getStr()) == '\0' )
- );
- }
-
- void makeStringAndClear_005()
- {
- ::rtl::OStringBuffer aStrBuf5(*arrOUS[2]);
- ::rtl::OString aStr5(*arrOUS[2]);
-
- sal_Bool lastRes = (aStrBuf5.makeStringAndClear() == aStr5 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "empty string",
- lastRes && ( aStrBuf5.getCapacity() == 0 ) &&
- ( *(aStrBuf5.getStr()) == '\0' )
- );
- }
-
- void makeStringAndClear_006()
- {
- ::rtl::OStringBuffer aStrBuf6(*arrOUS[3]);
- ::rtl::OString aStr6(*arrOUS[3]);
-
- sal_Bool lastRes = (aStrBuf6.makeStringAndClear() == aStr6 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "string with a character",
- lastRes && ( aStrBuf6.getCapacity() == 0 ) &&
- ( *(aStrBuf6.getStr()) == '\0' )
- );
- }
-
- void makeStringAndClear_007()
- {
- ::rtl::OStringBuffer aStrBuf7(*arrOUS[4]);
- ::rtl::OString aStr7(*arrOUS[4]);
-
- sal_Bool lastRes = (aStrBuf7.makeStringAndClear() == aStr7 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "string with special characters",
- lastRes && ( aStrBuf7.getCapacity() == 0 ) &&
- ( *(aStrBuf7.getStr()) == '\0' )
- );
- }
-
- void makeStringAndClear_008()
- {
- ::rtl::OStringBuffer aStrBuf8(*arrOUS[5]);
- ::rtl::OString aStr8(*arrOUS[5]);
-
- sal_Bool lastRes = (aStrBuf8.makeStringAndClear() == aStr8 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "string only with (\0)",
- lastRes && ( aStrBuf8.getCapacity() == 0 ) &&
- ( *(aStrBuf8.getStr()) == '\0' )
- );
- }
-
- CPPUNIT_TEST_SUITE(makeStringAndClear);
- CPPUNIT_TEST(makeStringAndClear_001);
- CPPUNIT_TEST(makeStringAndClear_002);
- CPPUNIT_TEST(makeStringAndClear_003);
- CPPUNIT_TEST(makeStringAndClear_004);
- CPPUNIT_TEST(makeStringAndClear_005);
- CPPUNIT_TEST(makeStringAndClear_006);
- CPPUNIT_TEST(makeStringAndClear_007);
- CPPUNIT_TEST(makeStringAndClear_008);
- CPPUNIT_TEST_SUITE_END();
- };
-
-
- class remove : public CppUnit::TestFixture
- {
- public:
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void remove_001()
- {
- ::rtl::OStringBuffer sb(
- RTL_CONSTASCII_STRINGPARAM("Red Hat, Inc."));
-
- sb.remove(0, 4);
- CPPUNIT_ASSERT(sb.toString().equalsL(
- RTL_CONSTASCII_STRINGPARAM("Hat, Inc.")));
-
- sb.remove(3, 6);
- CPPUNIT_ASSERT(sb.toString().equalsL(
- RTL_CONSTASCII_STRINGPARAM("Hat")));
-
- sb.remove(0, 100);
-
- CPPUNIT_ASSERT(sb.toString().isEmpty());
-
- sb.append(RTL_CONSTASCII_STRINGPARAM("Red Hat, Inc."));
-
- sb.remove(3, 100);
-
- CPPUNIT_ASSERT(sb.toString().equalsL(
- RTL_CONSTASCII_STRINGPARAM("Red")));
-
- sb.remove(0, sb.getLength());
-
- CPPUNIT_ASSERT(sb.toString().isEmpty());
- }
-
- CPPUNIT_TEST_SUITE(remove);
- CPPUNIT_TEST(remove_001);
- CPPUNIT_TEST_SUITE_END();
- };
-
-
-// -----------------------------------------------------------------------------
-
- class getLength : public CppUnit::TestFixture
- {
- OString* arrOUS[6];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr1 );
- arrOUS[1] = new OString( "1" );
- arrOUS[2] = new OString( );
- arrOUS[3] = new OString( "" );
- arrOUS[4] = new OString( "\0" );
- arrOUS[5] = new OString( kTestStr2 );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4]; delete arrOUS[5];
- }
-
- void getLength_001()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- sal_Int32 expVal = kTestStr1Len;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "length of ascii string",
- aStrBuf.getLength() == expVal
- );
-
- }
-
- void getLength_002()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- sal_Int32 expVal = 1;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "length of ascci string of size 1",
- aStrBuf.getLength() == expVal
- );
- }
-
- void getLength_003()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- sal_Int32 expVal = 0;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "length of empty string",
- aStrBuf.getLength() == expVal
- );
- }
-
- void getLength_004()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- sal_Int32 expVal = 0;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "length of empty string (empty ascii string arg)",
- aStrBuf.getLength() == expVal
- );
- }
-
- void getLength_005()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- sal_Int32 expVal = 0;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "length of empty string (string arg = '\\0')",
- aStrBuf.getLength() == expVal
- );
- }
-
- void getLength_006()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[5] );
- sal_Int32 expVal = kTestStr2Len;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "length(>16) of ascii string",
- aStrBuf.getLength() == expVal
- );
- }
-
- void getLength_007()
- {
- ::rtl::OStringBuffer aStrBuf;
- sal_Int32 expVal = 0;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "length of empty string (default constructor)",
- aStrBuf.getLength()== expVal
- );
- }
-
- void getLength_008()
- {
- ::rtl::OStringBuffer aStrBuf( 26 );
- sal_Int32 expVal = 0;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "length of empty string (with capacity)",
- aStrBuf.getLength()== expVal
- );
- }
-
- CPPUNIT_TEST_SUITE( getLength );
- CPPUNIT_TEST( getLength_001 );
- CPPUNIT_TEST( getLength_002 );
- CPPUNIT_TEST( getLength_003 );
- CPPUNIT_TEST( getLength_004 );
- CPPUNIT_TEST( getLength_005 );
- CPPUNIT_TEST( getLength_006 );
- CPPUNIT_TEST( getLength_007 );
- CPPUNIT_TEST( getLength_008 );
- CPPUNIT_TEST_SUITE_END();
- };
-
-// -----------------------------------------------------------------------------
-
- class getCapacity : public CppUnit::TestFixture
- {
- OString* arrOUS[6];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr1 );
- arrOUS[1] = new OString( "1" );
- arrOUS[2] = new OString( );
- arrOUS[3] = new OString( "" );
- arrOUS[4] = new OString( "\0" );
- arrOUS[5] = new OString( kTestStr2 );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4]; delete arrOUS[5];
- }
-
- void getCapacity_001()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- sal_Int32 expVal = kTestStr1Len+16;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity of ascii string",
- aStrBuf.getCapacity()== expVal
- );
-
- }
-
- void getCapacity_002()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- sal_Int32 expVal = 1+16;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity of ascci string of size 1",
- aStrBuf.getCapacity() == expVal
- );
- }
-
- void getCapacity_003()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- sal_Int32 expVal = 0+16;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity of empty string",
- aStrBuf.getCapacity() == expVal
- );
- }
-
- void getCapacity_004()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- sal_Int32 expVal = 0+16;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity of empty string (empty ascii string arg)",
- aStrBuf.getCapacity()== expVal
- );
- }
-
- void getCapacity_005()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- sal_Int32 expVal = 0+16;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity of empty string (string arg = '\\0')",
- aStrBuf.getCapacity() == expVal
- );
- }
-
- void getCapacity_006()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[5] );
- sal_Int32 expVal = kTestStr2Len+16;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity(>16) of ascii string",
- aStrBuf.getCapacity() == expVal
- );
- }
-
- void getCapacity_007()
- {
- ::rtl::OStringBuffer aStrBuf;
- sal_Int32 expVal = 16;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity of empty string (default constructor)",
- aStrBuf.getCapacity() == expVal
- );
- }
-
- void getCapacity_009()
- {
- ::rtl::OStringBuffer aStrBuf( kNonSInt32Max );
- sal_Int32 expVal = kNonSInt32Max;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity of empty string (with capacity -2147483648)",
- aStrBuf.getCapacity() == expVal
- );
- }
-
- void getCapacity_010()
- {
- ::rtl::OStringBuffer aStrBuf( 16 );
- sal_Int32 expVal = 16;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity of empty string (with capacity 16)",
- aStrBuf.getCapacity() == expVal
- );
- }
-
- void getCapacity_011()
- {
- ::rtl::OStringBuffer aStrBuf( 6 );
- sal_Int32 expVal = 6;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity of empty string (with capacity 6)",
- aStrBuf.getCapacity() == expVal
- );
- }
-
- void getCapacity_012()
- {
- ::rtl::OStringBuffer aStrBuf( 0 );
- sal_Int32 expVal = 0;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity of empty string (with capacity 0)",
- aStrBuf.getCapacity() == expVal
- );
- }
-
- void getCapacity_013()
- {
- ::rtl::OStringBuffer aStrBuf( -2 );
- sal_Int32 expVal = -2;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity of empty string (with capacity -2)",
- aStrBuf.getCapacity() == expVal
- );
- }
-
- CPPUNIT_TEST_SUITE( getCapacity );
- CPPUNIT_TEST( getCapacity_001 );
- CPPUNIT_TEST( getCapacity_002 );
- CPPUNIT_TEST( getCapacity_003 );
- CPPUNIT_TEST( getCapacity_004 );
- CPPUNIT_TEST( getCapacity_005 );
- CPPUNIT_TEST( getCapacity_006 );
- CPPUNIT_TEST( getCapacity_007 );
- CPPUNIT_TEST( getCapacity_009 );
- CPPUNIT_TEST( getCapacity_010 );
- CPPUNIT_TEST( getCapacity_011 );
- CPPUNIT_TEST( getCapacity_012 );
- CPPUNIT_TEST( getCapacity_013 );
- CPPUNIT_TEST_SUITE_END();
- };
-// -----------------------------------------------------------------------------
-
- class ensureCapacity : public CppUnit::TestFixture
- {
- void ensureCapacity_001()
- {
- sal_Int32 expVal = 16;
- ::rtl::OStringBuffer aStrBuf;
- sal_Int32 input = 5;
-
- aStrBuf.ensureCapacity( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity equal to 16, minimum is 5",
- aStrBuf.getCapacity() == expVal
- );
-
- }
-
- void ensureCapacity_002()
- {
- sal_Int32 expVal = 16;
- ::rtl::OStringBuffer aStrBuf;
- sal_Int32 input = -5;
-
- aStrBuf.ensureCapacity( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity equal to 16, minimum is -5",
- aStrBuf.getCapacity() == expVal
- );
-
- }
-
- void ensureCapacity_003()
- {
- sal_Int32 expVal = 16;
- ::rtl::OStringBuffer aStrBuf;
- sal_Int32 input = 0;
-
- aStrBuf.ensureCapacity( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity equal to 16, minimum is 0",
- aStrBuf.getCapacity() == expVal
- );
-
- }
-
- void ensureCapacity_004() //the testcase is based on comments
- {
- sal_Int32 expVal = 20;
- ::rtl::OStringBuffer aStrBuf;
- sal_Int32 input = 20;
-
- aStrBuf.ensureCapacity( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity equal to 16, minimum is 20",
- aStrBuf.getCapacity() == expVal
- );
-
- }
-
- void ensureCapacity_005()
- {
- sal_Int32 expVal = 50;
- ::rtl::OStringBuffer aStrBuf;
- sal_Int32 input = 50;
-
- aStrBuf.ensureCapacity( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity equal to 16, minimum is 50",
- aStrBuf.getCapacity() == expVal
- );
-
- }
-
- void ensureCapacity_006()
- {
- sal_Int32 expVal = 20;
- ::rtl::OStringBuffer aStrBuf( 6 );
- sal_Int32 input = 20;
-
- aStrBuf.ensureCapacity( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity equal to 6, minimum is 20",
- aStrBuf.getCapacity() == expVal
- );
-
- }
-
- void ensureCapacity_007()
- {
- sal_Int32 expVal = 6;
- ::rtl::OStringBuffer aStrBuf( 6 );
- sal_Int32 input = 2;
-
- aStrBuf.ensureCapacity( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity equal to 6, minimum is 2",
- aStrBuf.getCapacity() == expVal
- );
-
- }
-
- void ensureCapacity_008()
- {
- sal_Int32 expVal = 6;
- ::rtl::OStringBuffer aStrBuf( 6 );
- sal_Int32 input = -6;
-
- aStrBuf.ensureCapacity( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity equal to 6, minimum is -6",
- aStrBuf.getCapacity() == expVal
- );
-
- }
-
- void ensureCapacity_009() //the testcase is based on comments
- {
- sal_Int32 expVal = 10;
- ::rtl::OStringBuffer aStrBuf( 6 );
- sal_Int32 input = 10;
-
- aStrBuf.ensureCapacity( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity equal to 6, minimum is -6",
- aStrBuf.getCapacity() == expVal
- );
-
- }
-
- void ensureCapacity_010()
- {
- sal_Int32 expVal = 6;
- ::rtl::OStringBuffer aStrBuf( 0 );
- sal_Int32 input = 6;
-
- aStrBuf.ensureCapacity( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity equal to 0, minimum is 6",
- aStrBuf.getCapacity() == expVal
- );
-
- }
-
- void ensureCapacity_011() //the testcase is based on comments
- {
- sal_Int32 expVal = 2; // capacity is x = (str->length + 1) * 2; minimum < x ? x : minimum
- ::rtl::OStringBuffer aStrBuf( 0 );
- sal_Int32 input = 1;
-
- aStrBuf.ensureCapacity( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity equal to 0, minimum is 1",
- aStrBuf.getCapacity() == expVal
- );
-
- }
-
- void ensureCapacity_012()
- {
- sal_Int32 expVal = 0;
- ::rtl::OStringBuffer aStrBuf( 0 );
- sal_Int32 input = -1;
-
- aStrBuf.ensureCapacity( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity equal to 0, minimum is -1",
- aStrBuf.getCapacity() == expVal
- );
-
- }
-
- void ensureCapacity_018()
- {
- sal_Int32 expVal = 65535;
- ::rtl::OStringBuffer aStrBuf( kNonSInt32Max );
- sal_Int32 input = 65535;
-
- aStrBuf.ensureCapacity( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity equal to -2147483648, minimum is 65535",
- aStrBuf.getCapacity() == expVal
- );
-
- }
-
- void ensureCapacity_020()
- {
- sal_Int32 expVal = 2;
- ::rtl::OStringBuffer aStrBuf( kNonSInt32Max );
- sal_Int32 input = -1;
-
- aStrBuf.ensureCapacity( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity equal to -2147483648, minimum is -1",
- aStrBuf.getCapacity() == expVal
- );
-
- }
-
- void ensureCapacity_021()
- {
- sal_Int32 expVal = 2;
- ::rtl::OStringBuffer aStrBuf( kNonSInt32Max );
- sal_Int32 input = 0;
-
- aStrBuf.ensureCapacity( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity equal to -2147483648, minimum is 0",
- aStrBuf.getCapacity() == expVal
- );
-
- }
-
- void ensureCapacity_022()
- {
- sal_Int32 expVal = kNonSInt32Max;
- ::rtl::OStringBuffer aStrBuf( kNonSInt32Max );
- sal_Int32 input = kNonSInt32Max;
-
- aStrBuf.ensureCapacity( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "capacity equal to -2147483648, minimum is -2147483648",
- aStrBuf.getCapacity() == expVal
- );
-
- }
-
- CPPUNIT_TEST_SUITE( ensureCapacity );
- CPPUNIT_TEST( ensureCapacity_001 );
- CPPUNIT_TEST( ensureCapacity_002 );
- CPPUNIT_TEST( ensureCapacity_003 );
- CPPUNIT_TEST( ensureCapacity_004 );
- CPPUNIT_TEST( ensureCapacity_005 );
- CPPUNIT_TEST( ensureCapacity_006 );
- CPPUNIT_TEST( ensureCapacity_007 );
- CPPUNIT_TEST( ensureCapacity_008 );
- CPPUNIT_TEST( ensureCapacity_009 );
- CPPUNIT_TEST( ensureCapacity_010 );
- CPPUNIT_TEST( ensureCapacity_011 );
- CPPUNIT_TEST( ensureCapacity_012 );
- CPPUNIT_TEST( ensureCapacity_018 );
- CPPUNIT_TEST( ensureCapacity_020 );
- CPPUNIT_TEST( ensureCapacity_021 );
- CPPUNIT_TEST( ensureCapacity_022 );
- CPPUNIT_TEST_SUITE_END();
- };
-
-// -----------------------------------------------------------------------------
-
- class setLength : public CppUnit::TestFixture
- {
- OString* arrOUS[6];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr1 );
- arrOUS[1] = new OString( "1" );
- arrOUS[2] = new OString( );
- arrOUS[3] = new OString( "" );
- arrOUS[4] = new OString( "\0" );
- arrOUS[5] = new OString( kTestStr2 );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4]; delete arrOUS[5];
- }
-
- void setLength_001()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- sal_Int32 expVal1 = 50;
- ::rtl::OString expVal2( kTestStr1 );
- sal_Int32 expVal3 = 50;
- sal_Int32 input = 50;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength more than the capacity of OStringBuffer(kTestStr1)",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- void setLength_002()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- sal_Int32 expVal1 = kTestStr13Len;
- ::rtl::OString expVal2( kTestStr1 );
- sal_Int32 expVal3 = 32;
- sal_Int32 input = kTestStr13Len;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength more than the length of OStringBuffer(kTestStr1)",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- void setLength_003()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- sal_Int32 expVal1 = kTestStr1Len;
- ::rtl::OString expVal2( kTestStr1 );
- sal_Int32 expVal3 = 32;
- sal_Int32 input = kTestStr1Len;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength equal to the length of OStringBuffer(kTestStr1)",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- void setLength_004()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- sal_Int32 expVal1 = kTestStr7Len;
- ::rtl::OString expVal2( kTestStr7 );
- sal_Int32 expVal3 = 32;
- sal_Int32 input = kTestStr7Len;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength less than the length of OStringBuffer(kTestStr1)",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- void setLength_005()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- sal_Int32 expVal1 = 0;
- ::rtl::OString expVal2;
- sal_Int32 expVal3 = 32;
- sal_Int32 input = 0;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength equal to 0",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- void setLength_006()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- sal_Int32 expVal1 = 25;
- ::rtl::OString expVal2( *arrOUS[1] );
- sal_Int32 expVal3 = 25;
- sal_Int32 input = 25;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength more than the capacity of OStringBuffer(1)",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- void setLength_007()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- sal_Int32 expVal1 = kTestStr27Len;
- ::rtl::OString expVal2( *arrOUS[1] );
- sal_Int32 expVal3 = 17;
- sal_Int32 input = kTestStr27Len;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength equal to the length of OStringBuffer(1)",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- void setLength_008()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- sal_Int32 expVal1 = 0;
- ::rtl::OString expVal2;
- sal_Int32 expVal3 = 17;
- sal_Int32 input = 0;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength less than the length of OUStringBuffer(1)",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- void setLength_009()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- sal_Int32 expVal1 = 20;
- ::rtl::OString expVal2;
- sal_Int32 expVal3 = 20;
- sal_Int32 input = 20;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength more than the capacity of OStringBuffer()",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- void setLength_010()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- sal_Int32 expVal1 = 3;
- ::rtl::OString expVal2;
- sal_Int32 expVal3 = 16;
- sal_Int32 input = 3;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength more than the length of OStringBuffer()",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- void setLength_011()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- sal_Int32 expVal1 = 0;
- ::rtl::OString expVal2;
- sal_Int32 expVal3 = 16;
- sal_Int32 input = 0;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength more than the length of OStringBuffer()",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- void setLength_012()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- sal_Int32 expVal1 = 20;
- ::rtl::OString expVal2;
- sal_Int32 expVal3 = 20;
- sal_Int32 input = 20;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength more than the capacity of OStringBuffer("")",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- void setLength_013()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- sal_Int32 expVal1 = 5;
- ::rtl::OString expVal2;
- sal_Int32 expVal3 = 16;
- sal_Int32 input = 5;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength more than the length of OStringBuffer("")",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- void setLength_014()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- sal_Int32 expVal1 = 0;
- ::rtl::OString expVal2;
- sal_Int32 expVal3 = 16;
- sal_Int32 input = 0;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength less than the length of OStringBuffer("")",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- void setLength_015()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- sal_Int32 expVal1 = 20;
- ::rtl::OString expVal2;
- sal_Int32 expVal3 = 20;
- sal_Int32 input = 20;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength more than the length of OStringBuffer(\0)",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- void setLength_016()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- sal_Int32 expVal1 = 5;
- ::rtl::OString expVal2;
- sal_Int32 expVal3 = 16;
- sal_Int32 input = 5;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength more than the length of OStringBuffer(\0)",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- void setLength_017()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- sal_Int32 expVal1 = 0;
- ::rtl::OString expVal2;
- sal_Int32 expVal3 = 16;
- sal_Int32 input = 0;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength less than the length of OStringBuffer(\0)",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- void setLength_018()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[5] );
- sal_Int32 expVal1 = 50;
- ::rtl::OString expVal2( kTestStr2 );
- sal_Int32 expVal3 = 66;
- sal_Int32 input = 50;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength more than the capacity of OStringBuffer(kTestStr2)",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- void setLength_019()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[5] );
- sal_Int32 expVal1 = 40;
- ::rtl::OString expVal2(kTestStr2);
- sal_Int32 expVal3 = 48;
- sal_Int32 input = 40;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength more than the length of OStringBuffer(kTestStr2)",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- void setLength_020()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[5] );
- sal_Int32 expVal1 = kTestStr2Len;
- ::rtl::OString expVal2(kTestStr2);
- sal_Int32 expVal3 = 48;
- sal_Int32 input = kTestStr2Len;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength equal to the length of OUStringBuffer(kTestStr2)",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- void setLength_021()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[5] );
- sal_Int32 expVal1 = kTestStr7Len;
- ::rtl::OString expVal2(kTestStr7);
- sal_Int32 expVal3 = 48;
- sal_Int32 input = kTestStr7Len;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength less than the length of OUStringBuffer(TestStr2)",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- void setLength_022()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[5] );
- sal_Int32 expVal1 = 0;
- ::rtl::OString expVal2;
- sal_Int32 expVal3 = 48;
- sal_Int32 input = 0;
-
- aStrBuf.setLength( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "newLength equal to 0",
- aStrBuf.getStr() == expVal2 &&
- aStrBuf.getLength() == expVal1 &&
- aStrBuf.getCapacity() == expVal3
- );
-
- }
-
- CPPUNIT_TEST_SUITE( setLength );
- CPPUNIT_TEST( setLength_001 );
- CPPUNIT_TEST( setLength_002 );
- CPPUNIT_TEST( setLength_003 );
- CPPUNIT_TEST( setLength_004 );
- CPPUNIT_TEST( setLength_005 );
- CPPUNIT_TEST( setLength_006 );
- CPPUNIT_TEST( setLength_007 );
- CPPUNIT_TEST( setLength_008 );
- CPPUNIT_TEST( setLength_009 );
- CPPUNIT_TEST( setLength_010 );
- CPPUNIT_TEST( setLength_011 );
- CPPUNIT_TEST( setLength_012 );
- CPPUNIT_TEST( setLength_013 );
- CPPUNIT_TEST( setLength_014 );
- CPPUNIT_TEST( setLength_015 );
- CPPUNIT_TEST( setLength_016 );
- CPPUNIT_TEST( setLength_017 );
- CPPUNIT_TEST( setLength_018 );
- CPPUNIT_TEST( setLength_019 );
- CPPUNIT_TEST( setLength_020 );
- CPPUNIT_TEST( setLength_021 );
- CPPUNIT_TEST( setLength_022 );
- CPPUNIT_TEST_SUITE_END();
- };
-
-// -----------------------------------------------------------------------------
-
- class charAt : public CppUnit::TestFixture
- {
- OString* arrOUS[4];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr1 );
- arrOUS[1] = new OString( kTestStr27 );
- arrOUS[2] = new OString( kTestStr28 );
- arrOUS[3] = new OString( );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3];
- }
-
- void charAt_001()
- {
- sal_Unicode expVal = 83;
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- sal_Int32 input = 0;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "return the first character of OStringBuffer(kTestStr1)",
- aStrBuf.charAt(input) == expVal
- );
-
- }
-
- void charAt_002()
- {
- sal_Unicode expVal = 32;
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- sal_Int32 input = 3;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "return the middle character of OStringBuffer(kTestStr1)",
- aStrBuf.charAt(input) == expVal
- );
-
- }
-
- void charAt_003()
- {
- sal_Unicode expVal = 115;
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- sal_Int32 input = 15;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "return the last character of OStringBuffer(kTestStr1)",
- aStrBuf.charAt(input) == expVal
- );
-
- }
-
- void charAt_004()
- {
- sal_Unicode expVal = 115;
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- sal_Int32 input = 0;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "return the only character of OStringBuffer(kTestStr27)",
- aStrBuf.charAt(input) == expVal
- );
-
- }
-
- void charAt_005()
- {
- sal_Unicode expVal = 40;
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- sal_Int32 input = 0;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "return the first of OStringBuffer(kTestStr28) with special character",
- aStrBuf.charAt(input) == expVal
- );
-
- }
-
- void charAt_006()
- {
- sal_Unicode expVal = 11;
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- sal_Int32 input = 5;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "return the mid of OStringBuffer(kTestStr28) with special character",
- aStrBuf.charAt(input) == expVal
- );
-
- }
-
- void charAt_007()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "invalid character of OStringBuffer()",
- sal_True
- );
-
- }
-
- void charAt_008()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "invalid character of OStringBuffer()",
- sal_True
- );
-
- }
-
- CPPUNIT_TEST_SUITE( charAt );
- CPPUNIT_TEST( charAt_001 );
- CPPUNIT_TEST( charAt_002 );
- CPPUNIT_TEST( charAt_003 );
- CPPUNIT_TEST( charAt_004 );
- CPPUNIT_TEST( charAt_005 );
- CPPUNIT_TEST( charAt_006 );
- CPPUNIT_TEST( charAt_007 );
- CPPUNIT_TEST( charAt_008 );
- CPPUNIT_TEST_SUITE_END();
- };
-// -----------------------------------------------------------------------------
-
- class csuc : public CppUnit::TestFixture
- {
- void csuc_001()
- {
- const sal_Char* expVal = kTestStr1;
- ::rtl::OStringBuffer aStrBuf( kTestStr1 );
- sal_Int32 cmpLen = kTestStr1Len;
-
- // LLA: wrong access! const sal_Char* pstr = *&aStrBuf;
- const sal_Char* pstr = aStrBuf.getStr();
- int nEqual = strncmp(pstr, expVal, cmpLen);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "test normal string",
- /* cmpstr( pstr, expVal, cmpLen ) */
- nEqual == 0
- );
-
- }
-
- void csuc_002()
- {
- ::rtl::OStringBuffer aStrBuf;
-
- // LLA: wrong access! const sal_Char* pstr = *&aStrBuf;
- const sal_Char* pstr = aStrBuf.getStr();
- sal_Int32 nLen = strlen(pstr);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "test empty string",
- // cmpstr( pstr, &expVal, cmpLen )
- nLen == 0
- );
-
- }
-
- CPPUNIT_TEST_SUITE( csuc );
- CPPUNIT_TEST( csuc_001 );
- CPPUNIT_TEST( csuc_002 );
- CPPUNIT_TEST_SUITE_END();
- };
-
-// -----------------------------------------------------------------------------
-
- class getStr : public CppUnit::TestFixture
- {
- void getStr_001()
- {
- const sal_Char* expVal = kTestStr1;
- ::rtl::OStringBuffer aStrBuf( kTestStr1 );
- sal_Int32 cmpLen = kTestStr1Len;
-
- const sal_Char* pstr = aStrBuf.getStr();
- int nEqual = strncmp(pstr, expVal, cmpLen);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "test normal string",
- nEqual == 0
- );
-
- }
-
- void getStr_002()
- {
- // const sal_Char tmpUC=0x0;
- // const sal_Char* expVal=&tmpUC;
- ::rtl::OStringBuffer aStrBuf;
- // sal_Int32 cmpLen = 1;
-
- const sal_Char* pstr = aStrBuf.getStr();
- sal_Int32 nLen = strlen(pstr);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "test empty string",
- pstr != 0 &&
- nLen == 0
- );
-
- }
-
- CPPUNIT_TEST_SUITE( getStr );
- CPPUNIT_TEST( getStr_001 );
- CPPUNIT_TEST( getStr_002 );
- CPPUNIT_TEST_SUITE_END();
- };
-
-// -----------------------------------------------------------------------------
-
- class setCharAt : public CppUnit::TestFixture
- {
- OString* arrOUS[4];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr1 );
- arrOUS[1] = new OString( kTestStr27 );
- arrOUS[2] = new OString( kTestStr28 );
- arrOUS[3] = new OString( );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3];
- }
-
- void setCharAt_001()
- {
- OString expVal( kTestStr31 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- sal_Int32 input1 = 0;
- sal_Char input2 = 's';
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "set the first character of OStringBuffer(kTestStr1) with s",
- (aStrBuf.setCharAt(input1, input2)).getStr() == expVal
- );
-
- }
-
- void setCharAt_002()
- {
- OString expVal( kTestStr3 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- sal_Int32 input1 = 4;
- sal_Char input2 = 'm';
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "set the middle character of OStringBuffer(kTestStr1) with m",
- (aStrBuf.setCharAt(input1, input2)).getStr() == expVal
- );
-
- }
-
- void setCharAt_003()
- {
- OString expVal( kTestStr32 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- sal_Int32 input1 = 15;
- sal_Char input2 = ' ';
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "set the last character of OStringBuffer(kTestStr1) with ' '",
- (aStrBuf.setCharAt(input1, input2)).getStr() == expVal
- );
-
- }
-
- void setCharAt_004()
- {
- OString expVal( kTestStr33 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- sal_Int32 input1 = 0;
- sal_Char input2 = ' ';
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "set the only character of OStringBuffer(kTestStr27) with ' '",
- (aStrBuf.setCharAt(input1, input2)).getStr() == expVal
- );
-
- }
-
- void setCharAt_005()
- {
- OString expVal( kTestStr34 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- sal_Int32 input1 = 1;
- sal_Char input2 = (sal_Char)5;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "set the only of OStringBuffer(kTestStr28) with special character",
- (aStrBuf.setCharAt(input1, input2)).getStr() == expVal
- );
-
- }
-
- void setCharAt_006()
- {
- OString expVal( kTestStr35 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- sal_Int32 input1 = 1;
- sal_Char input2 = (sal_Char)-5;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "set the only of OStringBuffer(kTestStr28) with special character",
- (aStrBuf.setCharAt(input1, input2)).getStr() == expVal
- );
-
- }
-#ifdef WITH_CORE
- void setCharAt_007()
- {
- OString* expVal = 0;
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- sal_Int32 input1 = 0;
- sal_Char input2 = (sal_Char)5;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "invalid character of OStringBuffer()",
- sal_True
- );
-
- delete expVal;
-
- }
-
- void setCharAt_008()
- {
- OString* expVal = 0;
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- sal_Int32 input1 = -2;
- sal_Char input2 = (sal_Char)5;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "invalid character of OStringBuffer()",
- sal_True
- );
-
- delete expVal;
-
- }
-
- void setCharAt_009()
- {
- OString* expVal = 0;
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- sal_Int32 input1 = 3;
- sal_Char input2 = (sal_Char)5;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "invalid character of OStringBuffer()",
- sal_True
- );
-
- delete expVal;
-
- }
-#endif
- CPPUNIT_TEST_SUITE( setCharAt );
- CPPUNIT_TEST( setCharAt_001 );
- CPPUNIT_TEST( setCharAt_002 );
- CPPUNIT_TEST( setCharAt_003 );
- CPPUNIT_TEST( setCharAt_004 );
- CPPUNIT_TEST( setCharAt_005 );
- CPPUNIT_TEST( setCharAt_006 );
-#ifdef WITH_CORE
- CPPUNIT_TEST( setCharAt_007 );
- CPPUNIT_TEST( setCharAt_008 );
- CPPUNIT_TEST( setCharAt_009 );
-#endif
- CPPUNIT_TEST_SUITE_END();
- };
-
-// -----------------------------------------------------------------------------
-
- class append_001 : public CppUnit::TestFixture
- {
- OString* arrOUS[5];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr7 );
- arrOUS[1] = new OString( );
- arrOUS[2] = new OString( kTestStr25 );
- arrOUS[3] = new OString( "\0" );
- arrOUS[4] = new OString( kTestStr28 );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4];
- }
-
- void append_001_001()
- {
- OString expVal( kTestStr1 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString input2( kTestStr8 );
-
- aStrBuf.append( input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length less than 16) to the string buffer arrOUS[0]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_001_002()
- {
- OString expVal( kTestStr2 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString input2( kTestStr36 );
-
- aStrBuf.append( input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length more than 16) to the string buffer arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_001_003()
- {
- OString expVal( kTestStr37 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString input2( kTestStr23 );
-
- aStrBuf.append( input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 16) to the string buffer arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_001_004()
- {
- OString expVal( kTestStr7 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString input2;
-
- aStrBuf.append( input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 0) to the string buffer arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_001_005()
- {
- OString expVal( kTestStr7 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString input2( kTestStr7 );
-
- aStrBuf.append( input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length less than 16) to the string buffer arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_001_006()
- {
- OString expVal( kTestStr2 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString input2( kTestStr2 );
-
- aStrBuf.append( input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length more than 16) to the string buffer arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_001_007()
- {
- OString expVal( kTestStr1 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString input2( kTestStr1 );
-
- aStrBuf.append( input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 16) to the string buffer arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_001_008()
- {
- OString expVal;
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString input2;
-
- aStrBuf.append( input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 0) to the string buffer arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_001_009()
- {
- OString expVal( kTestStr7 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString input2( kTestStr7 );
-
- aStrBuf.append( input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length less than 16) to the string buffer arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_001_010()
- {
- OString expVal( kTestStr2 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString input2( kTestStr2 );
-
- aStrBuf.append( input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length more than 16) to the string buffer arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_001_011()
- {
- OString expVal( kTestStr1 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString input2( kTestStr1 );
-
- aStrBuf.append( input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 16) to the string buffer arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_001_012()
- {
- OString expVal;
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString input2;
-
- aStrBuf.append( input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 0) to the string buffer arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_001_013()
- {
- OString expVal( kTestStr7 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString input2( kTestStr7 );
-
- aStrBuf.append( input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length less than 16) to the string buffer arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_001_014()
- {
- OString expVal( kTestStr2 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString input2( kTestStr2 );
-
- aStrBuf.append( input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length more than 16) to the string buffer arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_001_015()
- {
- OString expVal( kTestStr1 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString input2( kTestStr1 );
-
- aStrBuf.append( input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 16) to the string buffer arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_001_016()
- {
- OString expVal;
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString input2;
-
- aStrBuf.append( input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 0) to the string buffer arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_001_017()
- {
- OString expVal( kTestStr29 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString input2( kTestStr38 );
-
- aStrBuf.append( input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length less than 16) to the string buffer arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_001_018()
- {
- OString expVal( kTestStr39 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString input2( kTestStr17 );
-
- aStrBuf.append( input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length more than 16) to the string buffer arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_001_019()
- {
- OString expVal( kTestStr40 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString input2( kTestStr31 );
-
- aStrBuf.append( input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 16) to the string buffer arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_001_020()
- {
- OString expVal( kTestStr28 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString input2;
-
- aStrBuf.append( input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 0) to the string buffer arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
-#ifdef WITH_CORE
- void append_001_021()
- {
- OString expVal;
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- OString input2;
-
- aStrBuf.append( input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 0) to the string buffer arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-#endif
-
- CPPUNIT_TEST_SUITE( append_001 );
- CPPUNIT_TEST( append_001_001 );
- CPPUNIT_TEST( append_001_002 );
- CPPUNIT_TEST( append_001_003 );
- CPPUNIT_TEST( append_001_004 );
- CPPUNIT_TEST( append_001_005 );
- CPPUNIT_TEST( append_001_006 );
- CPPUNIT_TEST( append_001_007 );
- CPPUNIT_TEST( append_001_008 );
- CPPUNIT_TEST( append_001_009 );
- CPPUNIT_TEST( append_001_010 );
- CPPUNIT_TEST( append_001_011 );
- CPPUNIT_TEST( append_001_012 );
- CPPUNIT_TEST( append_001_013 );
- CPPUNIT_TEST( append_001_014 );
- CPPUNIT_TEST( append_001_015 );
- CPPUNIT_TEST( append_001_016 );
- CPPUNIT_TEST( append_001_017 );
- CPPUNIT_TEST( append_001_018 );
- CPPUNIT_TEST( append_001_019 );
- CPPUNIT_TEST( append_001_020 );
-#ifdef WITH_CORE
- CPPUNIT_TEST( append_001_021 );
-#endif
- CPPUNIT_TEST_SUITE_END();
- };
-
-// -----------------------------------------------------------------------------
-
- class append_002 : public CppUnit::TestFixture
- {
- OString* arrOUS[5];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr7 );
- arrOUS[1] = new OString( );
- arrOUS[2] = new OString( kTestStr25 );
- arrOUS[3] = new OString( "\0" );
- arrOUS[4] = new OString( kTestStr28 );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4];
- }
-
- void append_002_001()
- {
- OString expVal( kTestStr1 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- const sal_Char* input = kTestStr8;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length less than 16) to the string buffer arrOUS[0]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_002_002()
- {
- OString expVal( kTestStr2 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- const sal_Char* input = kTestStr36;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length more than 16) to the string buffer arrOUS[0]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_002_003()
- {
- OString expVal( kTestStr37 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- const sal_Char* input = kTestStr23;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 16) to the string buffer arrOUS[0]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_002_004()
- {
- OString expVal( kTestStr7 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- const sal_Char* input = kTestStr25;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 0) to the string buffer arrOUS[0]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_002_005()
- {
- OString expVal( kTestStr7 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- const sal_Char* input = kTestStr7;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length less than 16) to the string buffer arrOUS[1]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_002_006()
- {
- OString expVal( kTestStr2 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- const sal_Char* input = kTestStr2;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length more than 16) to the string buffer arrOUS[1]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_002_007()
- {
- OString expVal( kTestStr1 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- const sal_Char* input = kTestStr1;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 16) to the string buffer arrOUS[1]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_002_008()
- {
- OString expVal;
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- const sal_Char* input = kTestStr25;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 0) to the string buffer arrOUS[1]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_002_009()
- {
- OString expVal( kTestStr7 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- const sal_Char* input = kTestStr7;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length less than 16) to the string buffer arrOUS[2]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_002_010()
- {
- OString expVal( kTestStr2 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- const sal_Char* input = kTestStr2;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length more than 16) to the string buffer arrOUS[2]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_002_011()
- {
- OString expVal( kTestStr1 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- const sal_Char* input = kTestStr1;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 16) to the string buffer arrOUS[2]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_002_012()
- {
- OString expVal;
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- const sal_Char* input = kTestStr25;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 0) to the string buffer arrOUS[2]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_002_013()
- {
- OString expVal( kTestStr7 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- const sal_Char* input = kTestStr7;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length less than 16) to the string buffer arrOUS[3]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_002_014()
- {
- OString expVal( kTestStr2 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- const sal_Char* input = kTestStr2;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length more than 16) to the string buffer arrOUS[3]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_002_015()
- {
- OString expVal( kTestStr1 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- const sal_Char* input = kTestStr1;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 16) to the string buffer arrOUS[3]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_002_016()
- {
- OString expVal;
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- const sal_Char* input = kTestStr25;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 0) to the string buffer arrOUS[3]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_002_017()
- {
- OString expVal( kTestStr29 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- const sal_Char* input = kTestStr38;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length less than 16) to the string buffer arrOUS[4]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_002_018()
- {
- OString expVal( kTestStr39 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- const sal_Char* input = kTestStr17;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length more than 16) to the string buffer arrOUS[4]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_002_019()
- {
- OString expVal( kTestStr40 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- const sal_Char* input = kTestStr31;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 16) to the string buffer arrOUS[4]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_002_020()
- {
- OString expVal( kTestStr28 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- const sal_Char* input = kTestStr25;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 0) to the string buffer arrOUS[4]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
-#ifdef WITH_CORE
- void append_002_021()
- {
- OString expVal;
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- const sal_Char* input = kTestStr25;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 0) to the string buffer(with INT_MAX)",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-#endif
-
- CPPUNIT_TEST_SUITE( append_002 );
- CPPUNIT_TEST( append_002_001 );
- CPPUNIT_TEST( append_002_002 );
- CPPUNIT_TEST( append_002_003 );
- CPPUNIT_TEST( append_002_004 );
- CPPUNIT_TEST( append_002_005 );
- CPPUNIT_TEST( append_002_006 );
- CPPUNIT_TEST( append_002_007 );
- CPPUNIT_TEST( append_002_008 );
- CPPUNIT_TEST( append_002_009 );
- CPPUNIT_TEST( append_002_010 );
- CPPUNIT_TEST( append_002_011 );
- CPPUNIT_TEST( append_002_012 );
- CPPUNIT_TEST( append_002_013 );
- CPPUNIT_TEST( append_002_014 );
- CPPUNIT_TEST( append_002_015 );
- CPPUNIT_TEST( append_002_016 );
- CPPUNIT_TEST( append_002_017 );
- CPPUNIT_TEST( append_002_018 );
- CPPUNIT_TEST( append_002_019 );
- CPPUNIT_TEST( append_002_020 );
-#ifdef WITH_CORE
- CPPUNIT_TEST( append_002_021 );
-#endif
- CPPUNIT_TEST_SUITE_END();
- };
-// -----------------------------------------------------------------------------
-
- class append_003 : public CppUnit::TestFixture
- {
- OString* arrOUS[5];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr7 );
- arrOUS[1] = new OString( );
- arrOUS[2] = new OString( kTestStr25 );
- arrOUS[3] = new OString( "\0" );
- arrOUS[4] = new OString( kTestStr28 );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4];
- }
-
- void append_003_001()
- {
- OString expVal( kTestStr1 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- const sal_Char* input1 = kTestStr36;
- sal_Int32 input2 = 12;
-
- aStrBuf.append( input1, input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length less than 16) to the string buffer arrOUS[0]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_003_002()
- {
- OString expVal( kTestStr2 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- const sal_Char* input1 = kTestStr36;
- sal_Int32 input2 = 28;
-
- aStrBuf.append( input1, input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length more than 16) to the string buffer arrOUS[0]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_003_003()
- {
- OString expVal( kTestStr37 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- const sal_Char* input1 = kTestStr23;
- sal_Int32 input2 = 16;
-
- aStrBuf.append( input1, input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 16) to the string buffer arrOUS[0]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_003_004()
- {
- OString expVal( kTestStr7 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- const sal_Char* input1 = kTestStr2;
- sal_Int32 input2 = 0;
-
- aStrBuf.append( input1, input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 0) to the string buffer arrOUS[0]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_003_006()
- {
- OString expVal( kTestStr7 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- const sal_Char* input1 = kTestStr2;
- sal_Int32 input2 = 4;
-
- aStrBuf.append( input1, input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length less than 16) to the string buffer arrOUS[1]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_003_007()
- {
- OString expVal( kTestStr2 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- const sal_Char* input1 = kTestStr2;
- sal_Int32 input2 = 32;
-
- aStrBuf.append( input1, input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length more than 16) to the string buffer arrOUS[1]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_003_008()
- {
- OString expVal( kTestStr1 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- const sal_Char* input1 = kTestStr2;
- sal_Int32 input2 = 16;
-
- aStrBuf.append( input1, input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 16) to the string buffer arrOUS[1]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_003_009()
- {
- OString expVal;
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- const sal_Char* input1 = kTestStr2;
- sal_Int32 input2 = 0;
-
- aStrBuf.append( input1, input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 0) to the string buffer arrOUS[1]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_003_011()
- {
- OString expVal( kTestStr7 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- const sal_Char* input1 = kTestStr2;
- sal_Int32 input2 = 4;
-
- aStrBuf.append( input1, input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length less than 16) to the string buffer arrOUS[2]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_003_012()
- {
- OString expVal( kTestStr2 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- const sal_Char* input1 = kTestStr2;
- sal_Int32 input2 = 32;
-
- aStrBuf.append( input1, input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length more than 16) to the string buffer arrOUS[2]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_003_013()
- {
- OString expVal( kTestStr1 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- const sal_Char* input1 = kTestStr2;
- sal_Int32 input2 = 16;
-
- aStrBuf.append( input1, input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 16) to the string buffer arrOUS[2]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_003_014()
- {
- OString expVal;
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- const sal_Char* input1 = kTestStr2;
- sal_Int32 input2 = 0;
-
- aStrBuf.append( input1, input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 0) to the string buffer arrOUS[2]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_003_016()
- {
- OString expVal( kTestStr7 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- const sal_Char* input1 = kTestStr2;
- sal_Int32 input2 = 4;
-
- aStrBuf.append( input1, input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length less than 16) to the string buffer arrOUS[3]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_003_017()
- {
- OString expVal( kTestStr2 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- const sal_Char* input1 = kTestStr2;
- sal_Int32 input2 = 32;
-
- aStrBuf.append( input1, input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length more than 16) to the string buffer arrOUS[3]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_003_018()
- {
- OString expVal( kTestStr1 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- const sal_Char* input1 = kTestStr2;
- sal_Int32 input2 = 16;
-
- aStrBuf.append( input1, input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 16) to the string buffer arrOUS[3]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_003_019()
- {
- OString expVal;
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- const sal_Char* input1 = kTestStr2;
- sal_Int32 input2 = 0;
-
- aStrBuf.append( input1, input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 0) to the string buffer arrOUS[3]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_003_021()
- {
- OString expVal( kTestStr29 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- const sal_Char* input1 = kTestStr38;
- sal_Int32 input2 = 7;
-
- aStrBuf.append( input1, input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length less than 16) to the string buffer arrOUS[4]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_003_022()
- {
- OString expVal( kTestStr39 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- const sal_Char* input1 = kTestStr17;
- sal_Int32 input2 = 22;
-
- aStrBuf.append( input1, input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length more than 16) to the string buffer arrOUS[4]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_003_023()
- {
- OString expVal( kTestStr40 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- const sal_Char* input1 = kTestStr31;
- sal_Int32 input2 = 16;
-
- aStrBuf.append( input1, input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 16) to the string buffer arrOUS[4]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_003_024()
- {
- OString expVal( kTestStr28 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- const sal_Char* input1 = kTestStr2;
- sal_Int32 input2 = 0;
-
- aStrBuf.append( input1, input2 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the string(length equal to 0) to the string buffer arrOUS[4]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- CPPUNIT_TEST_SUITE( append_003 );
- CPPUNIT_TEST( append_003_001 );
- CPPUNIT_TEST( append_003_002 );
- CPPUNIT_TEST( append_003_003 );
- CPPUNIT_TEST( append_003_004 );
- CPPUNIT_TEST( append_003_006 );
- CPPUNIT_TEST( append_003_007 );
- CPPUNIT_TEST( append_003_008 );
- CPPUNIT_TEST( append_003_009 );
- CPPUNIT_TEST( append_003_011 );
- CPPUNIT_TEST( append_003_012 );
- CPPUNIT_TEST( append_003_013 );
- CPPUNIT_TEST( append_003_014 );
- CPPUNIT_TEST( append_003_016 );
- CPPUNIT_TEST( append_003_017 );
- CPPUNIT_TEST( append_003_018 );
- CPPUNIT_TEST( append_003_019 );
- CPPUNIT_TEST( append_003_021 );
- CPPUNIT_TEST( append_003_022 );
- CPPUNIT_TEST( append_003_023 );
- CPPUNIT_TEST( append_003_024 );
- CPPUNIT_TEST_SUITE_END();
- };
-//-----------------------------------------------------------------------------
-
- class append_004 : public CppUnit::TestFixture
- {
- OString* arrOUS[5];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr7 );
- arrOUS[1] = new OString( );
- arrOUS[2] = new OString( kTestStr25 );
- arrOUS[3] = new OString( "\0" );
- arrOUS[4] = new OString( kTestStr28 );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4];
- }
-
- void append_004_001()
- {
- OString expVal( kTestStr45 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- sal_Bool input = sal_True;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Bool(sal_True) to the string buffer arrOUS[0]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_004_002()
- {
- OString expVal( kTestStr46 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- sal_Bool input = sal_False;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Bool(sal_False) to the string buffer arrOUS[0]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_004_003()
- {
- OString expVal( kTestStr47 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- sal_Bool input = sal_True;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Bool(sal_True) to the string buffer arrOUS[1]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_004_004()
- {
- OString expVal( kTestStr48 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- sal_Bool input = sal_False;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Bool(sal_False) to the string buffer arrOUS[1]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_004_005()
- {
- OString expVal( kTestStr47 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- sal_Bool input = sal_True;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Bool(sal_True) to the string buffer arrOUS[2]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_004_006()
- {
- OString expVal( kTestStr48 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- sal_Bool input = sal_False;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Bool(sal_False) to the string buffer arrOUS[2]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_004_007()
- {
- OString expVal( kTestStr47 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- sal_Bool input = sal_True;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Bool(sal_True) to the string buffer arrOUS[3]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_004_008()
- {
- OString expVal( kTestStr48 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- sal_Bool input = sal_False;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Bool(sal_False) to the string buffer arrOUS[3]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_004_009()
- {
- OString expVal( kTestStr49 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- sal_Bool input = sal_True;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Bool(sal_True) to the string buffer arrOUS[4]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_004_010()
- {
- OString expVal( kTestStr50 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- sal_Bool input = sal_False;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Bool(sal_False) to the string buffer arrOUS[4]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
-#ifdef WITH_CORE
- void append_004_011()
- {
- OString expVal( kTestStr47 );
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- sal_Bool input = sal_True;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Bool(sal_True) to the string buffer(with INT_MAX)",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_004_012()
- {
- OString expVal( kTestStr48 );
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- sal_Bool input = sal_False;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Bool(sal_False) to the string buffer(with INT_MAX)",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-#endif
-
- CPPUNIT_TEST_SUITE( append_004 );
- CPPUNIT_TEST( append_004_001 );
- CPPUNIT_TEST( append_004_002 );
- CPPUNIT_TEST( append_004_003 );
- CPPUNIT_TEST( append_004_004 );
- CPPUNIT_TEST( append_004_005 );
- CPPUNIT_TEST( append_004_006 );
- CPPUNIT_TEST( append_004_007 );
- CPPUNIT_TEST( append_004_008 );
- CPPUNIT_TEST( append_004_009 );
- CPPUNIT_TEST( append_004_010 );
-#ifdef WITH_CORE
- CPPUNIT_TEST( append_004_011 );
- CPPUNIT_TEST( append_004_012 );
-#endif
- CPPUNIT_TEST_SUITE_END();
- };
-//------------------------------------------------------------------------
-// testing the method append(sal_Char c)
-//------------------------------------------------------------------------
- class append_005 : public CppUnit::TestFixture
- {
- OString* arrOUS[5];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr7 );
- arrOUS[1] = new OString( );
- arrOUS[2] = new OString( kTestStr25 );
- arrOUS[3] = new OString( "\0" );
- arrOUS[4] = new OString( kTestStr28 );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4];
- }
-
- void append_001()
- {
- OString expVal( kTestStr51 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- sal_Char input = 'M';
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Char(M) to the string buffer arrOUS[0]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_002()
- {
- OString expVal( kTestStr143 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- sal_Char input = static_cast<sal_Char>(SAL_MAX_UINT8);
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Unicode(kSInt8Max) to the string buffer arrOUS[0]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_003()
- {
- OString expVal( kTestStr27 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- sal_Char input = 's';
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Char(s) to the string buffer arrOUS[1]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_004()
- {
- OString expVal( kTestStr144 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- sal_Char input = static_cast<sal_Char>(SAL_MAX_UINT8);
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Char(kSInt8Max) to the string buffer arrOUS[1]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_005_005()
- {
- OString expVal( kTestStr27 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- sal_Char input = 's';
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Char(s) to the string buffer arrOUS[2]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_006()
- {
- OString expVal( kTestStr144 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- sal_Char input = static_cast<sal_Char>(SAL_MAX_UINT8);
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Char(kSInt8Max) to the string buffer arrOUS[2]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_007()
- {
- OString expVal( kTestStr27 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- sal_Char input = 's';
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Char(s) to the string buffer arrOUS[3]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_008()
- {
- OString expVal( kTestStr144 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- sal_Char input = static_cast<sal_Char>(SAL_MAX_UINT8);
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Char(kSInt8Max) to the string buffer arrOUS[3]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_009()
- {
- OString expVal( kTestStr56 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- sal_Char input = 's';
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Char(s) to the string buffer arrOUS[4]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_010()
- {
- OString expVal( kTestStr145 );
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- sal_Char input = static_cast<sal_Char>(SAL_MAX_UINT8);
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Char(kSInt8Max) to the string buffer arrOUS[4]",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
-#ifdef WITH_CORE
- void append_011()
- {
- OString expVal( kTestStr27 );
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- sal_Char input = 's';
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Char(s) to the string buffer(with INT_MAX)",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-
- void append_012()
- {
- OString expVal( kTestStr144 );
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- sal_Char input = static_cast<sal_Char>(SAL_MAX_UINT8);
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the sal_Char(kSInt8Max) to the string buffer with INT_MAX)",
- ( aStrBuf.getStr()== expVal) &&( aStrBuf.getLength() == expVal.getLength() )
- );
-
- }
-#endif
-
- CPPUNIT_TEST_SUITE( append_005 );
- CPPUNIT_TEST( append_001 );
- CPPUNIT_TEST( append_002 );
- CPPUNIT_TEST( append_003 );
- CPPUNIT_TEST( append_004 );
- CPPUNIT_TEST( append_005_005 );
- CPPUNIT_TEST( append_006 );
- CPPUNIT_TEST( append_007 );
- CPPUNIT_TEST( append_008 );
- CPPUNIT_TEST( append_009 );
- CPPUNIT_TEST( append_010 );
-#ifdef WITH_CORE
- CPPUNIT_TEST( append_011 );
- CPPUNIT_TEST( append_012 );
-#endif
- CPPUNIT_TEST_SUITE_END();
- };
-
- class append_006_Int32 : public CppUnit::TestFixture
- {
- OString* arrOUS[5];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr7 );
- arrOUS[1] = new OString( );
- arrOUS[2] = new OString( kTestStr25 );
- arrOUS[3] = new OString( "\0" );
- arrOUS[4] = new OString( kTestStr28 );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4];
- }
-
- void append_001()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 2;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_002()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 2;
-
- expVal += OString( "100" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_003()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 2;
-
- expVal += OString( "1000" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_004()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 15;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_005()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 8;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_kRadixOctol for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_006()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 8;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_kRadixOctol for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_007()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 8;
-
- expVal += OString( "10" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_kRadixOctol for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_008()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 15;
- sal_Int16 radix = 8;
-
- expVal += OString( "17" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_kRadixOctol for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_009()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 10;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_kRadixDecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_010()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 10;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_kRadixDecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_011()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 10;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_kRadixDecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_012()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 15;
- sal_Int16 radix = 10;
-
- expVal += OString( "15" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_kRadixDecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_013()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 16;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_kRadixHexdecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_014()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 16;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_kRadixHexdecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_015()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 16;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_kRadixHexdecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_016()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 15;
- sal_Int16 radix = 16;
-
- expVal += OString( "f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_kRadixHexdecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_017()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 36;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_kRadixBase36 for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_018()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 36;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_kRadixBase36 for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_019()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 36;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_kRadixBase36 for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_020()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 35;
- sal_Int16 radix = 36;
-
- expVal += OString( "z" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_kRadixBase36 for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_021()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 2;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_022()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 2;
-
- expVal += OString( "100" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_023()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 2;
-
- expVal += OString( "1000" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_024()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 15;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_025()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 8;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_kRadixOctol for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_026()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 8;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_kRadixOctol for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_027()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 8;
-
- expVal += OString( "10" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_kRadixOctol for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_028()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 15;
- sal_Int16 radix = 8;
-
- expVal += OString( "17" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_kRadixOctol for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_029()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 10;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_kRadixDecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_030()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 10;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_kRadixDecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_031()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 10;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_kRadixDecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_032()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 15;
- sal_Int16 radix = 10;
-
- expVal += OString( "15" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_kRadixDecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_033()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 16;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_kRadixHexdecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_034()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 16;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_kRadixHexdecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_035()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 16;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_kRadixHexdecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_036()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 15;
- sal_Int16 radix = 16;
-
- expVal += OString( "f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_kRadixHexdecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_037()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 36;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_kRadixBase36 for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_038()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 36;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_kRadixBase36 for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_039()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 36;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_kRadixBase36 for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_040()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 35;
- sal_Int16 radix = 36;
-
- expVal += OString( "z" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_kRadixBase36 for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_041()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 2;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_042()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 2;
-
- expVal += OString( "100" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_043()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 2;
-
- expVal += OString( "1000" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_044()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 15;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_045()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 8;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_kRadixOctol for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_046()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 8;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_kRadixOctol for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_047()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 8;
-
- expVal += OString( "10" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_kRadixOctol for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_048()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 15;
- sal_Int16 radix = 8;
-
- expVal += OString( "17" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_kRadixOctol for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_049()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 10;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_kRadixDecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_050()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 10;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_kRadixDecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_051()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 10;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_kRadixDecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_052()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 15;
- sal_Int16 radix = 10;
-
- expVal += OString( "15" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_kRadixDecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_053()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 16;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_kRadixHexdecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_054()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 16;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_kRadixHexdecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_055()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 16;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_kRadixHexdecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_056()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 15;
- sal_Int16 radix = 16;
-
- expVal += OString( "f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_kRadixHexdecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_057()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 36;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_kRadixBase36 for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_058()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 36;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_kRadixBase36 for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_059()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 36;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_kRadixBase36 for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_060()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 35;
- sal_Int16 radix = 36;
-
- expVal += OString( "z" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_kRadixBase36 for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_061()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 2;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_062()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 2;
-
- expVal += OString( "100" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_063()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 2;
-
- expVal += OString( "1000" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_064()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 15;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_065()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 8;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_kRadixOctol for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_066()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 8;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_kRadixOctol for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_067()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 8;
-
- expVal += OString( "10" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_kRadixOctol for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_068()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 15;
- sal_Int16 radix = 8;
-
- expVal += OString( "17" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_kRadixOctol for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_069()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 10;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_kRadixDecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_070()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 10;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_kRadixDecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_071()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 10;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_kRadixDecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_072()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 15;
- sal_Int16 radix = 10;
-
- expVal += OString( "15" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_kRadixDecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_073()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 16;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_kRadixHexdecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_074()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 16;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_kRadixHexdecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_075()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 16;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_kRadixHexdecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_076()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 15;
- sal_Int16 radix = 16;
-
- expVal += OString( "f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_kRadixHexdecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_077()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 36;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_kRadixBase36 for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_078()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 36;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_kRadixBase36 for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_079()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 36;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_kRadixBase36 for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_080()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 35;
- sal_Int16 radix = 36;
-
- expVal += OString( "z" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_kRadixBase36 for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_081()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 2;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_082()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 2;
-
- expVal += OString( "100" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_083()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 2;
-
- expVal += OString( "1000" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_084()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 15;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_085()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 8;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_kRadixOctol for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_086()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 8;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_kRadixOctol for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_087()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 8;
-
- expVal += OString( "10" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_kRadixOctol for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_088()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 15;
- sal_Int16 radix = 8;
-
- expVal += OString( "17" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_kRadixOctol for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_089()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 10;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_kRadixDecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_090()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 10;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_kRadixDecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_091()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 10;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_kRadixDecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_092()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 15;
- sal_Int16 radix = 10;
-
- expVal += OString( "15" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_kRadixDecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_093()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 16;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_kRadixHexdecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_094()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 16;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_kRadixHexdecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_095()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 16;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_kRadixHexdecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_096()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 15;
- sal_Int16 radix = 16;
-
- expVal += OString( "f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_kRadixHexdecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_097()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 0;
- sal_Int16 radix = 36;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_kRadixBase36 for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_098()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 4;
- sal_Int16 radix = 36;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_kRadixBase36 for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_099()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 8;
- sal_Int16 radix = 36;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_kRadixBase36 for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_100()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = 35;
- sal_Int16 radix = 36;
-
- expVal += OString( "z" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_kRadixBase36 for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- CPPUNIT_TEST_SUITE( append_006_Int32 );
- CPPUNIT_TEST( append_001 ); CPPUNIT_TEST( append_002 );
- CPPUNIT_TEST( append_003 ); CPPUNIT_TEST( append_004 );
- CPPUNIT_TEST( append_005 ); CPPUNIT_TEST( append_006 );
- CPPUNIT_TEST( append_007 ); CPPUNIT_TEST( append_008 );
- CPPUNIT_TEST( append_009 ); CPPUNIT_TEST( append_010 );
- CPPUNIT_TEST( append_011 ); CPPUNIT_TEST( append_012 );
- CPPUNIT_TEST( append_013 ); CPPUNIT_TEST( append_014 );
- CPPUNIT_TEST( append_015 ); CPPUNIT_TEST( append_016 );
- CPPUNIT_TEST( append_017 ); CPPUNIT_TEST( append_018 );
- CPPUNIT_TEST( append_019 ); CPPUNIT_TEST( append_020 );
- CPPUNIT_TEST( append_021 ); CPPUNIT_TEST( append_022 );
- CPPUNIT_TEST( append_023 ); CPPUNIT_TEST( append_024 );
- CPPUNIT_TEST( append_025 ); CPPUNIT_TEST( append_026 );
- CPPUNIT_TEST( append_027 ); CPPUNIT_TEST( append_028 );
- CPPUNIT_TEST( append_029 ); CPPUNIT_TEST( append_030 );
- CPPUNIT_TEST( append_031 ); CPPUNIT_TEST( append_032 );
- CPPUNIT_TEST( append_033 ); CPPUNIT_TEST( append_034 );
- CPPUNIT_TEST( append_035 ); CPPUNIT_TEST( append_036 );
- CPPUNIT_TEST( append_037 ); CPPUNIT_TEST( append_038 );
- CPPUNIT_TEST( append_039 ); CPPUNIT_TEST( append_040 );
- CPPUNIT_TEST( append_041 ); CPPUNIT_TEST( append_042 );
- CPPUNIT_TEST( append_043 ); CPPUNIT_TEST( append_044 );
- CPPUNIT_TEST( append_045 ); CPPUNIT_TEST( append_046 );
- CPPUNIT_TEST( append_047 ); CPPUNIT_TEST( append_048 );
- CPPUNIT_TEST( append_049 ); CPPUNIT_TEST( append_050 );
- CPPUNIT_TEST( append_051 ); CPPUNIT_TEST( append_052 );
- CPPUNIT_TEST( append_053 ); CPPUNIT_TEST( append_054 );
- CPPUNIT_TEST( append_055 ); CPPUNIT_TEST( append_056 );
- CPPUNIT_TEST( append_057 ); CPPUNIT_TEST( append_058 );
- CPPUNIT_TEST( append_059 ); CPPUNIT_TEST( append_060 );
- CPPUNIT_TEST( append_061 ); CPPUNIT_TEST( append_062 );
- CPPUNIT_TEST( append_063 ); CPPUNIT_TEST( append_064 );
- CPPUNIT_TEST( append_065 ); CPPUNIT_TEST( append_066 );
- CPPUNIT_TEST( append_067 ); CPPUNIT_TEST( append_068 );
- CPPUNIT_TEST( append_069 ); CPPUNIT_TEST( append_070 );
- CPPUNIT_TEST( append_071 ); CPPUNIT_TEST( append_072 );
- CPPUNIT_TEST( append_073 ); CPPUNIT_TEST( append_074 );
- CPPUNIT_TEST( append_075 ); CPPUNIT_TEST( append_076 );
- CPPUNIT_TEST( append_077 ); CPPUNIT_TEST( append_078 );
- CPPUNIT_TEST( append_079 ); CPPUNIT_TEST( append_080 );
- CPPUNIT_TEST( append_081 ); CPPUNIT_TEST( append_082 );
- CPPUNIT_TEST( append_083 ); CPPUNIT_TEST( append_084 );
- CPPUNIT_TEST( append_085 ); CPPUNIT_TEST( append_086 );
- CPPUNIT_TEST( append_087 ); CPPUNIT_TEST( append_088 );
- CPPUNIT_TEST( append_089 ); CPPUNIT_TEST( append_090 );
- CPPUNIT_TEST( append_091 ); CPPUNIT_TEST( append_092 );
- CPPUNIT_TEST( append_093 ); CPPUNIT_TEST( append_094 );
- CPPUNIT_TEST( append_095 ); CPPUNIT_TEST( append_096 );
- CPPUNIT_TEST( append_097 ); CPPUNIT_TEST( append_098 );
- CPPUNIT_TEST( append_099 ); CPPUNIT_TEST( append_100 );
- CPPUNIT_TEST_SUITE_END();
- };
-//------------------------------------------------------------------------
-// testing the method append( sal_Int32 i, sal_Int16 radix=2 )
-// where i = large constants
-// testing the method append( sal_Int32 i, sal_Int16 radix=8 )
-// where i = large constants
-// testing the method append( sal_Int32 i, sal_Int16 radix=10 )
-// where i = large constants
-// testing the method append( sal_Int32 i, sal_Int16 radix=16 )
-// where i = large constants
-// testing the method append( sal_Int32 i, sal_Int16 radix=36 )
-// where i = large constants
-//------------------------------------------------------------------------
- class append_006_Int32_Bounderies : public CppUnit::TestFixture
- {
- OString* arrOUS[5];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr7 );
- arrOUS[1] = new OString( );
- arrOUS[2] = new OString( kTestStr25 );
- arrOUS[3] = new OString( "\0" );
- arrOUS[4] = new OString( kTestStr28 );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4];
- }
-
- void append_001()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_Bounderies_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_002()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111111111111111111111111111111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_Bounderies_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_003()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 8;
-
- expVal += OString( "177" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_Bounderies_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_004()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 8;
-
- expVal += OString( "17777777777" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_Bounderies_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_005()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 10;
-
- expVal += OString( "127" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_Bounderies_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_006()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 10;
-
- expVal += OString( "2147483647" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_Bounderies_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_007()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 16;
-
- expVal += OString( "7f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_Bounderies_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_008()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 16;
-
- expVal += OString( "7fffffff" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_Bounderies_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_009()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 36;
-
- expVal += OString( "3j" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_Bounderies_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_010()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 36;
-
- expVal += OString( "zik0zj" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_Bounderies_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_011()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_Bounderies_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_012()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111111111111111111111111111111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_Bounderies_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_013()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 8;
-
- expVal += OString( "177" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_Bounderies_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_014()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 8;
-
- expVal += OString( "17777777777" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_Bounderies_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_015()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 10;
-
- expVal += OString( "127" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_Bounderies_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_016()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 10;
-
- expVal += OString( "2147483647" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_Bounderies_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_017()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 16;
-
- expVal += OString( "7f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_Bounderies_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_018()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 16;
-
- expVal += OString( "7fffffff" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_Bounderies_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_019()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 36;
-
- expVal += OString( "3j" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_Bounderies_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_020()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 36;
-
- expVal += OString( "zik0zj" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_Bounderies_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_021()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_Bounderies_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_022()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111111111111111111111111111111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_Bounderies_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_023()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 8;
-
- expVal += OString( "177" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_Bounderies_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_024()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 8;
-
- expVal += OString( "17777777777" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_Bounderies_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_025()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 10;
-
- expVal += OString( "127" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_Bounderies_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_026()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 10;
-
- expVal += OString( "2147483647" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_Bounderies_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_027()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 16;
-
- expVal += OString( "7f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_Bounderies_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_028()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 16;
-
- expVal += OString( "7fffffff" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_Bounderies_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_029()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 36;
-
- expVal += OString( "3j" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_Bounderies_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_030()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 36;
-
- expVal += OString( "zik0zj" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_Bounderies_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_031()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_Bounderies_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_032()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111111111111111111111111111111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_Bounderies_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_033()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 8;
-
- expVal += OString( "177" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_Bounderies_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_034()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 8;
-
- expVal += OString( "17777777777" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_Bounderies_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_035()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 10;
-
- expVal += OString( "127" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_Bounderies_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_036()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 10;
-
- expVal += OString( "2147483647" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_Bounderies_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_037()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 16;
-
- expVal += OString( "7f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_Bounderies_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_038()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 16;
-
- expVal += OString( "7fffffff" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_Bounderies_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_039()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 36;
-
- expVal += OString( "3j" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_Bounderies_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_040()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 36;
-
- expVal += OString( "zik0zj" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_Bounderies_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_041()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_Bounderies_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_042()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111111111111111111111111111111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_Bounderies_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_043()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 8;
-
- expVal += OString( "177" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_Bounderies_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_044()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 8;
-
- expVal += OString( "17777777777" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_Bounderies_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_045()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 10;
-
- expVal += OString( "127" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_Bounderies_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_046()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 10;
-
- expVal += OString( "2147483647" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_Bounderies_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_047()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 16;
-
- expVal += OString( "7f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_Bounderies_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_048()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 16;
-
- expVal += OString( "7fffffff" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_Bounderies_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_049()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt8Max;
- sal_Int16 radix = 36;
-
- expVal += OString( "3j" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_Bounderies_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_050()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = kSInt32Max;
- sal_Int16 radix = 36;
-
- expVal += OString( "zik0zj" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_Bounderies_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- CPPUNIT_TEST_SUITE( append_006_Int32_Bounderies );
- CPPUNIT_TEST( append_001 ); CPPUNIT_TEST( append_002 );
- CPPUNIT_TEST( append_003 ); CPPUNIT_TEST( append_004 );
- CPPUNIT_TEST( append_005 ); CPPUNIT_TEST( append_006 );
- CPPUNIT_TEST( append_007 ); CPPUNIT_TEST( append_008 );
- CPPUNIT_TEST( append_009 ); CPPUNIT_TEST( append_010 );
- CPPUNIT_TEST( append_011 ); CPPUNIT_TEST( append_012 );
- CPPUNIT_TEST( append_013 ); CPPUNIT_TEST( append_014 );
- CPPUNIT_TEST( append_015 ); CPPUNIT_TEST( append_016 );
- CPPUNIT_TEST( append_017 ); CPPUNIT_TEST( append_018 );
- CPPUNIT_TEST( append_019 ); CPPUNIT_TEST( append_020 );
- CPPUNIT_TEST( append_021 ); CPPUNIT_TEST( append_022 );
- CPPUNIT_TEST( append_023 ); CPPUNIT_TEST( append_024 );
- CPPUNIT_TEST( append_025 ); CPPUNIT_TEST( append_026 );
- CPPUNIT_TEST( append_027 ); CPPUNIT_TEST( append_028 );
- CPPUNIT_TEST( append_029 ); CPPUNIT_TEST( append_030 );
- CPPUNIT_TEST( append_031 ); CPPUNIT_TEST( append_032 );
- CPPUNIT_TEST( append_033 ); CPPUNIT_TEST( append_034 );
- CPPUNIT_TEST( append_035 ); CPPUNIT_TEST( append_036 );
- CPPUNIT_TEST( append_037 ); CPPUNIT_TEST( append_038 );
- CPPUNIT_TEST( append_039 ); CPPUNIT_TEST( append_040 );
- CPPUNIT_TEST( append_041 ); CPPUNIT_TEST( append_042 );
- CPPUNIT_TEST( append_043 ); CPPUNIT_TEST( append_044 );
- CPPUNIT_TEST( append_045 ); CPPUNIT_TEST( append_046 );
- CPPUNIT_TEST( append_047 ); CPPUNIT_TEST( append_048 );
- CPPUNIT_TEST( append_049 ); CPPUNIT_TEST( append_050 );
- CPPUNIT_TEST_SUITE_END();
- };
-//------------------------------------------------------------------------
-// testing the method append( sal_Int32 i, sal_Int16 radix=2 )
-// for negative value
-// testing the method append( sal_Int32 i, sal_Int16 radix=8 )
-// for negative value
-// testing the method append( sal_Int32 i, sal_Int16 radix=10 )
-// for negative value
-// testing the method append( sal_Int32 i, sal_Int16 radix=16 )
-// for negative value
-// testing the method append( sal_Int32 i, sal_Int16 radix=36 )
-// for negative value
-//------------------------------------------------------------------------
- class append_006_Int32_Negative : public CppUnit::TestFixture
- {
- OString* arrOUS[5];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr7 );
- arrOUS[1] = new OString( );
- arrOUS[2] = new OString( kTestStr25 );
- arrOUS[3] = new OString( "\0" );
- arrOUS[4] = new OString( kTestStr28 );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4];
- }
-
- void append_001()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 2;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_negative_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_002()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "100" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_negative_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_003()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "1000" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_negative_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_004()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -15;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "1111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_negative_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_005()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 8;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_negative_kRadixOctol for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_006()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_negative_kRadixOctol for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_007()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "10" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_negative_kRadixOctol for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_008()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -15;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "17" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_negative_kRadixOctol for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_009()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 10;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_negative_kRadixDecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_010()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_negative_kRadixDecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_011()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_negative_kRadixDecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_012()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -15;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "15" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_negative_kRadixDecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_013()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 16;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_negative_kRadixHexdecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_014()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_negative_kRadixHexdecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_015()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_negative_kRadixHexdecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_016()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -15;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_negative_kRadixHexdecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_017()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 36;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_negative_kRadixBase36 for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_018()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_negative_kRadixBase36 for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_019()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_negative_kRadixBase36 for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_020()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -35;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "z" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_negative_kRadixBase36 for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_021()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 2;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_negative_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_022()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "100" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_negative_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_023()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "1000" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_negative_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_024()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -15;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "1111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_negative_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_025()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 8;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_negative_kRadixOctol for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_026()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_negative_kRadixOctol for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_027()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "10" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_negative_kRadixOctol for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_028()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -15;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "17" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_negative_kRadixOctol for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_029()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 10;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_negative_kRadixDecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_030()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_negative_kRadixDecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_031()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_negative_kRadixDecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_032()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -15;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "15" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_negative_kRadixDecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_033()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 16;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_negative_kRadixHexdecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_034()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_negative_kRadixHexdecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_035()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_negative_kRadixHexdecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_036()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -15;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_negative_kRadixHexdecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_037()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 36;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_negative_kRadixBase36 for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_038()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_negative_kRadixBase36 for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_039()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_negative_kRadixBase36 for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_040()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -35;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "z" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_negative_kRadixBase36 for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_041()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 2;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_negative_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_042()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "100" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_negative_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_043()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "1000" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_negative_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_044()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -15;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "1111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_negative_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_045()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 8;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_negative_kRadixOctol for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_046()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_negative_kRadixOctol for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_047()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "10" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_negative_kRadixOctol for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_048()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -15;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "17" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_negative_kRadixOctol for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_049()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 10;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_negative_kRadixDecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_050()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_negative_kRadixDecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_051()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_negative_kRadixDecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_052()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -15;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "15" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_negative_kRadixDecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_053()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 16;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_negative_kRadixHexdecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_054()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_negative_kRadixHexdecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_055()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_negative_kRadixHexdecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_056()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -15;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_negative_kRadixHexdecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_057()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 36;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_negative_kRadixBase36 for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_058()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_negative_kRadixBase36 for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_059()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_negative_kRadixBase36 for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_060()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -35;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "z" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_negative_kRadixBase36 for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_061()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 2;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_negative_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_062()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "100" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_negative_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_063()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "1000" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_negative_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_064()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -15;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "1111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_negative_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_065()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 8;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_negative_kRadixOctol for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_066()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_negative_kRadixOctol for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_067()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "10" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_negative_kRadixOctol for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_068()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -15;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "17" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_negative_kRadixOctol for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_069()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 10;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_negative_kRadixDecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_070()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_negative_kRadixDecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_071()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_negative_kRadixDecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_072()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -15;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "15" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_negative_kRadixDecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_073()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 16;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_negative_kRadixHexdecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_074()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_negative_kRadixHexdecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_075()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_negative_kRadixHexdecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_076()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -15;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_negative_kRadixHexdecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_077()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 36;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_negative_kRadixBase36 for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_078()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_negative_kRadixBase36 for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_079()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_negative_kRadixBase36 for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_080()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -35;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "z" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_negative_kRadixBase36 for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_081()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 2;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_negative_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_082()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "100" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_negative_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_083()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "1000" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_negative_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_084()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -15;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "1111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 2)_006_negative_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_085()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 8;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_negative_kRadixOctol for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_086()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_negative_kRadixOctol for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_087()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "10" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_negative_kRadixOctol for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_088()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -15;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "17" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 8)_006_negative_kRadixOctol for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_089()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 10;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_negative_kRadixDecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_090()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_negative_kRadixDecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_091()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_negative_kRadixDecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_092()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -15;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "15" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 10)_006_negative_kRadixDecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_093()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 16;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_negative_kRadixHexdecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_094()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_negative_kRadixHexdecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_095()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_negative_kRadixHexdecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_096()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -15;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 16)_006_negative_kRadixHexdecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_097()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -0;
- sal_Int16 radix = 36;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_negative_kRadixBase36 for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_098()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -4;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_negative_kRadixBase36 for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_099()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -8;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_negative_kRadixBase36 for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_100()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int32 input = -35;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "z" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int32, radix 36)_006_negative_kRadixBase36 for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- CPPUNIT_TEST_SUITE( append_006_Int32_Negative );
- CPPUNIT_TEST( append_001 ); CPPUNIT_TEST( append_002 );
- CPPUNIT_TEST( append_003 ); CPPUNIT_TEST( append_004 );
- CPPUNIT_TEST( append_005 ); CPPUNIT_TEST( append_006 );
- CPPUNIT_TEST( append_007 ); CPPUNIT_TEST( append_008 );
- CPPUNIT_TEST( append_009 ); CPPUNIT_TEST( append_010 );
- CPPUNIT_TEST( append_011 ); CPPUNIT_TEST( append_012 );
- CPPUNIT_TEST( append_013 ); CPPUNIT_TEST( append_014 );
- CPPUNIT_TEST( append_015 ); CPPUNIT_TEST( append_016 );
- CPPUNIT_TEST( append_017 ); CPPUNIT_TEST( append_018 );
- CPPUNIT_TEST( append_019 ); CPPUNIT_TEST( append_020 );
- CPPUNIT_TEST( append_021 ); CPPUNIT_TEST( append_022 );
- CPPUNIT_TEST( append_023 ); CPPUNIT_TEST( append_024 );
- CPPUNIT_TEST( append_025 ); CPPUNIT_TEST( append_026 );
- CPPUNIT_TEST( append_027 ); CPPUNIT_TEST( append_028 );
- CPPUNIT_TEST( append_029 ); CPPUNIT_TEST( append_030 );
- CPPUNIT_TEST( append_031 ); CPPUNIT_TEST( append_032 );
- CPPUNIT_TEST( append_033 ); CPPUNIT_TEST( append_034 );
- CPPUNIT_TEST( append_035 ); CPPUNIT_TEST( append_036 );
- CPPUNIT_TEST( append_037 ); CPPUNIT_TEST( append_038 );
- CPPUNIT_TEST( append_039 ); CPPUNIT_TEST( append_040 );
- CPPUNIT_TEST( append_041 ); CPPUNIT_TEST( append_042 );
- CPPUNIT_TEST( append_043 ); CPPUNIT_TEST( append_044 );
- CPPUNIT_TEST( append_045 ); CPPUNIT_TEST( append_046 );
- CPPUNIT_TEST( append_047 ); CPPUNIT_TEST( append_048 );
- CPPUNIT_TEST( append_049 ); CPPUNIT_TEST( append_050 );
- CPPUNIT_TEST( append_051 ); CPPUNIT_TEST( append_052 );
- CPPUNIT_TEST( append_053 ); CPPUNIT_TEST( append_054 );
- CPPUNIT_TEST( append_055 ); CPPUNIT_TEST( append_056 );
- CPPUNIT_TEST( append_057 ); CPPUNIT_TEST( append_058 );
- CPPUNIT_TEST( append_059 ); CPPUNIT_TEST( append_060 );
- CPPUNIT_TEST( append_061 ); CPPUNIT_TEST( append_062 );
- CPPUNIT_TEST( append_063 ); CPPUNIT_TEST( append_064 );
- CPPUNIT_TEST( append_065 ); CPPUNIT_TEST( append_066 );
- CPPUNIT_TEST( append_067 ); CPPUNIT_TEST( append_068 );
- CPPUNIT_TEST( append_069 ); CPPUNIT_TEST( append_070 );
- CPPUNIT_TEST( append_071 ); CPPUNIT_TEST( append_072 );
- CPPUNIT_TEST( append_073 ); CPPUNIT_TEST( append_074 );
- CPPUNIT_TEST( append_075 ); CPPUNIT_TEST( append_076 );
- CPPUNIT_TEST( append_077 ); CPPUNIT_TEST( append_078 );
- CPPUNIT_TEST( append_079 ); CPPUNIT_TEST( append_080 );
- CPPUNIT_TEST( append_081 ); CPPUNIT_TEST( append_082 );
- CPPUNIT_TEST( append_083 ); CPPUNIT_TEST( append_084 );
- CPPUNIT_TEST( append_085 ); CPPUNIT_TEST( append_086 );
- CPPUNIT_TEST( append_087 ); CPPUNIT_TEST( append_088 );
- CPPUNIT_TEST( append_089 ); CPPUNIT_TEST( append_090 );
- CPPUNIT_TEST( append_091 ); CPPUNIT_TEST( append_092 );
- CPPUNIT_TEST( append_093 ); CPPUNIT_TEST( append_094 );
- CPPUNIT_TEST( append_095 ); CPPUNIT_TEST( append_096 );
- CPPUNIT_TEST( append_097 ); CPPUNIT_TEST( append_098 );
- CPPUNIT_TEST( append_099 ); CPPUNIT_TEST( append_100 );
- CPPUNIT_TEST_SUITE_END();
- };
-//------------------------------------------------------------------------
-// testing the method append( sal_Int32 i, sal_Int16 radix ) where radix = -5
-//------------------------------------------------------------------------
- class append_006_Int32_WrongRadix : public CppUnit::TestFixture
- {
- OString* arrOUS[5];
- sal_Int32 intVal;
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr7 );
- arrOUS[1] = new OString( );
- arrOUS[2] = new OString( kTestStr25 );
- arrOUS[3] = new OString( "\0" );
- arrOUS[4] = new OString( kTestStr28 );
- intVal = 11;
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4];
- }
-
- void append_001()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( kTestStr59 );
-
- aStrBuf.append( intVal, -5 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the WrongRadix to the string buffer arrOUS[0]",
- sal_True
- );
-
- }
-
- void append_002()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( kTestStr60 );
-
- aStrBuf.append( intVal, -5 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the WrongRadix to the string buffer arrOUS[1]",
- sal_True
- );
-
- }
-
- void append_003()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( kTestStr60 );
-
- aStrBuf.append( intVal, -5 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the WrongRadix to the string buffer arrOUS[2]",
- sal_True
- );
-
- }
-
- void append_004()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( kTestStr60 );
-
- aStrBuf.append( intVal, -5 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the WrongRadix to the string buffer arrOUS[3]",
- sal_True
- );
-
- }
-
- void append_005()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( kTestStr61 );
-
- aStrBuf.append( intVal, -5 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the WrongRadix to the string buffer arrOUS[4]",
- sal_True
- );
-
- }
-#ifdef WITH_CORE
- void append_006()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- OString expVal( kTestStr60 );
-
- aStrBuf.append( intVal, -5 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the WrongRadix to the string buffer(with INT_MAX)",
- sal_True
- );
-
- }
-#endif
-
- CPPUNIT_TEST_SUITE( append_006_Int32_WrongRadix );
- CPPUNIT_TEST( append_001 );
- CPPUNIT_TEST( append_002 );
- CPPUNIT_TEST( append_003 );
- CPPUNIT_TEST( append_004 );
- CPPUNIT_TEST( append_005 );
-#ifdef WITH_CORE
- CPPUNIT_TEST( append_006 );
-#endif
- CPPUNIT_TEST_SUITE_END();
- };
-//------------------------------------------------------------------------
- class append_006_Int32_defaultParam : public CppUnit::TestFixture
- {
- OString* arrOUS[5];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr7 );
- arrOUS[1] = new OString( );
- arrOUS[2] = new OString( kTestStr25 );
- arrOUS[3] = new OString( "\0" );
- arrOUS[4] = new OString( kTestStr28 );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4];
- }
-
- void append_001()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( kTestStr59 );
- sal_Int32 input = 11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 11 and return OStringBuffer[0]+11",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_002()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( kTestStr62 );
- sal_Int32 input = 0;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 0 and return OStringBuffer[0]+0",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_003()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( kTestStr63 );
- sal_Int32 input = -11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 -11 and return OStringBuffer[0]+(-11)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_004()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( kTestStr64 );
- sal_Int32 input = 2147483647;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 2147483647 and return OStringBuffer[0]+2147483647",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_005()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( kTestStr65 );
- sal_Int32 input = kNonSInt32Max;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 -2147483648 and return OStringBuffer[0]+(-2147483648)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_006()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( kTestStr60 );
- sal_Int32 input = 11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 11 and return OStringBuffer[1]+11",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_007()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( kTestStr66 );
- sal_Int32 input = 0;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 0 and return OStringBuffer[1]+0",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_008()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( kTestStr67 );
- sal_Int32 input = -11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 -11 and return OStringBuffer[1]+(-11)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_009()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( kTestStr68 );
- sal_Int32 input = 2147483647;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 2147483647 and return OStringBuffer[1]+2147483647",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_010()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( kTestStr69 );
- sal_Int32 input = SAL_MIN_INT32 /*-2147483648*/;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 -2147483648 and return OStringBuffer[1]+(-2147483648)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_011()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( kTestStr60 );
- sal_Int32 input = 11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 11 and return OStringBuffer[2]+11",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_012()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( kTestStr66 );
- sal_Int32 input = 0;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 0 and return OUStringBuffer[2]+0",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_013()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( kTestStr67 );
- sal_Int32 input = -11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 -11 and return OUStringBuffer[2]+(-11)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_014()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( kTestStr68 );
- sal_Int32 input = 2147483647;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 2147483647 and return OStringBuffer[2]+2147483647",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_015()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( kTestStr69 );
- sal_Int32 input = SAL_MIN_INT32;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 -2147483648 and return OStringBuffer[2]+(-2147483648)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_016()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( kTestStr60 );
- sal_Int32 input = 11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 11 and return OStringBuffer[3]+11",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_017()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( kTestStr66 );
- sal_Int32 input = 0;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 0 and return OStringBuffer[3]+0",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_018()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( kTestStr67 );
- sal_Int32 input = -11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 -11 and return OStringBuffer[3]+(-11)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_019()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( kTestStr68 );
- sal_Int32 input = 2147483647;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 2147483647 and return OStringBuffer[3]+2147483647",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_020()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( kTestStr69 );
- sal_Int32 input = SAL_MIN_INT32;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 -2147483648 and return OStringBuffer[3]+(-2147483648)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_021()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( kTestStr61 );
- sal_Int32 input = 11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 11 and return OStringBuffer[4]+11",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_022()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( kTestStr70 );
- sal_Int32 input = 0;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 0 and return OStringBuffer[4]+0",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_023()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( kTestStr71 );
- sal_Int32 input = -11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 -11 and return OStringBuffer[4]+(-11)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_024()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( kTestStr72 );
- sal_Int32 input = 2147483647;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 2147483647 and return OStringBuffer[4]+2147483647",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_025()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( kTestStr73 );
- sal_Int32 input = SAL_MIN_INT32;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 -2147483648 and return OStringBuffer[4]+(-2147483648)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-#ifdef WITH_CORE
- void append_026()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- OString expVal( kTestStr60 );
- sal_Int32 input = 11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 11 and return OStringBuffer(kSInt32Max)+11",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_027()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- OString expVal( kTestStr66 );
- sal_Int32 input = 0;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 0 and return OStringBuffer(kSInt32Max)+0",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_028()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- OString expVal( kTestStr67 );
- sal_Int32 input = -11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 -11 and return OStringBuffer(kSInt32Max)+(-11)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_029()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- OString expVal( kTestStr68 );
- sal_Int32 input = 2147483647;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 2147483647 and return OStringBuffer(kSInt32Max)+2147483647",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_030()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- OString expVal( kTestStr69 );
- sal_Int32 input = SAL_MIN_INT32;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int32 -2147483648 and return OStringBuffer(kSInt32Max)+(-2147483648)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-#endif
-
- CPPUNIT_TEST_SUITE( append_006_Int32_defaultParam );
- CPPUNIT_TEST( append_001 );
- CPPUNIT_TEST( append_002 );
- CPPUNIT_TEST( append_003 );
- CPPUNIT_TEST( append_004 );
- CPPUNIT_TEST( append_005 );
- CPPUNIT_TEST( append_006 );
- CPPUNIT_TEST( append_007 );
- CPPUNIT_TEST( append_008 );
- CPPUNIT_TEST( append_009 );
- CPPUNIT_TEST( append_010 );
- CPPUNIT_TEST( append_011 );
- CPPUNIT_TEST( append_012 );
- CPPUNIT_TEST( append_013 );
- CPPUNIT_TEST( append_014 );
- CPPUNIT_TEST( append_015 );
- CPPUNIT_TEST( append_016 );
- CPPUNIT_TEST( append_017 );
- CPPUNIT_TEST( append_018 );
- CPPUNIT_TEST( append_019 );
- CPPUNIT_TEST( append_020 );
- CPPUNIT_TEST( append_021 );
- CPPUNIT_TEST( append_022 );
- CPPUNIT_TEST( append_023 );
- CPPUNIT_TEST( append_024 );
- CPPUNIT_TEST( append_025 );
-#ifdef WITH_CORE
- CPPUNIT_TEST( append_026 );
- CPPUNIT_TEST( append_027 );
- CPPUNIT_TEST( append_028 );
- CPPUNIT_TEST( append_029 );
- CPPUNIT_TEST( append_030 );
-#endif
- CPPUNIT_TEST_SUITE_END();
- };
-//------------------------------------------------------------------------
-// testing the method append( sal_Int64 l, sal_Int16 radix=2 )
-// testing the method append( sal_Int64 l, sal_Int16 radix=8 )
-// testing the method append( sal_Int64 l, sal_Int16 radix=10 )
-// testing the method append( sal_Int64 l, sal_Int16 radix=16 )
-// testing the method append( sal_Int64 l, sal_Int16 radix=36 )
-//------------------------------------------------------------------------
- class append_007_Int64 : public CppUnit::TestFixture
- {
- OString* arrOUS[5];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr7 );
- arrOUS[1] = new OString( );
- arrOUS[2] = new OString( kTestStr25 );
- arrOUS[3] = new OString( "\0" );
- arrOUS[4] = new OString( kTestStr28 );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4];
- }
-
- void append_001()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 2;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_002()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 2;
-
- expVal += OString( "100" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_003()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 2;
-
- expVal += OString( "1000" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_004()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 15;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_005()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 8;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_kRadixOctol for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_006()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 8;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_kRadixOctol for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_007()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 8;
-
- expVal += OString( "10" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_kRadixOctol for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_008()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 15;
- sal_Int16 radix = 8;
-
- expVal += OString( "17" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_kRadixOctol for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_009()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 10;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_kRadixDecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_010()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 10;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_kRadixDecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_011()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 10;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_kRadixDecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_012()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 15;
- sal_Int16 radix = 10;
-
- expVal += OString( "15" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_kRadixDecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_013()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 16;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_kRadixHexdecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_014()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 16;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_kRadixHexdecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_015()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 16;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_kRadixHexdecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_016()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 15;
- sal_Int16 radix = 16;
-
- expVal += OString( "f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_kRadixHexdecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_017()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 36;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_kRadixBase36 for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_018()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 36;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_kRadixBase36 for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_019()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 36;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_kRadixBase36 for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_020()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 35;
- sal_Int16 radix = 36;
-
- expVal += OString( "z" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_kRadixBase36 for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_021()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 2;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_022()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 2;
-
- expVal += OString( "100" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_023()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 2;
-
- expVal += OString( "1000" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_024()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 15;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_025()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 8;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_kRadixOctol for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_026()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 8;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_kRadixOctol for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_027()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 8;
-
- expVal += OString( "10" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_kRadixOctol for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_028()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 15;
- sal_Int16 radix = 8;
-
- expVal += OString( "17" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_kRadixOctol for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_029()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 10;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_kRadixDecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_030()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 10;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_kRadixDecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_031()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 10;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_kRadixDecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_032()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 15;
- sal_Int16 radix = 10;
-
- expVal += OString( "15" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_kRadixDecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_033()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 16;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_kRadixHexdecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_034()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 16;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_kRadixHexdecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_035()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 16;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_kRadixHexdecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_036()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 15;
- sal_Int16 radix = 16;
-
- expVal += OString( "f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_kRadixHexdecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_037()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 36;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_kRadixBase36 for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_038()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 36;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_kRadixBase36 for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_039()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 36;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_kRadixBase36 for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_040()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 35;
- sal_Int16 radix = 36;
-
- expVal += OString( "z" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_kRadixBase36 for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_041()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 2;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_042()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 2;
-
- expVal += OString( "100" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_043()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 2;
-
- expVal += OString( "1000" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_044()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 15;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_045()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 8;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_kRadixOctol for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_046()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 8;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_kRadixOctol for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_047()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 8;
-
- expVal += OString( "10" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_kRadixOctol for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_048()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 15;
- sal_Int16 radix = 8;
-
- expVal += OString( "17" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_kRadixOctol for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_049()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 10;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_kRadixDecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_050()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 10;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_kRadixDecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_051()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 10;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_kRadixDecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_052()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 15;
- sal_Int16 radix = 10;
-
- expVal += OString( "15" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_kRadixDecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_053()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 16;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_kRadixHexdecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_054()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 16;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_kRadixHexdecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_055()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 16;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_kRadixHexdecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_056()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 15;
- sal_Int16 radix = 16;
-
- expVal += OString( "f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_kRadixHexdecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_057()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 36;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_kRadixBase36 for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_058()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 36;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_kRadixBase36 for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_059()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 36;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_kRadixBase36 for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_060()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 35;
- sal_Int16 radix = 36;
-
- expVal += OString( "z" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_kRadixBase36 for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_061()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 2;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_062()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 2;
-
- expVal += OString( "100" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_063()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 2;
-
- expVal += OString( "1000" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_064()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 15;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_065()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 8;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_kRadixOctol for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_066()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 8;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_kRadixOctol for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_067()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 8;
-
- expVal += OString( "10" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_kRadixOctol for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_068()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 15;
- sal_Int16 radix = 8;
-
- expVal += OString( "17" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_kRadixOctol for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_069()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 10;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_kRadixDecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_070()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 10;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_kRadixDecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_071()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 10;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_kRadixDecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_072()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 15;
- sal_Int16 radix = 10;
-
- expVal += OString( "15" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_kRadixDecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_073()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 16;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_kRadixHexdecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_074()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 16;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_kRadixHexdecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_075()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 16;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_kRadixHexdecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_076()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 15;
- sal_Int16 radix = 16;
-
- expVal += OString( "f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_kRadixHexdecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_077()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 36;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_kRadixBase36 for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_078()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 36;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_kRadixBase36 for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_079()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 36;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_kRadixBase36 for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_080()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 35;
- sal_Int16 radix = 36;
-
- expVal += OString( "z" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_kRadixBase36 for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_081()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 2;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_082()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 2;
-
- expVal += OString( "100" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_083()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 2;
-
- expVal += OString( "1000" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_084()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 15;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_085()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 8;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_kRadixOctol for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_086()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 8;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_kRadixOctol for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_087()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 8;
-
- expVal += OString( "10" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_kRadixOctol for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_088()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 15;
- sal_Int16 radix = 8;
-
- expVal += OString( "17" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_kRadixOctol for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_089()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 10;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_kRadixDecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_090()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 10;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_kRadixDecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_091()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 10;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_kRadixDecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_092()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 15;
- sal_Int16 radix = 10;
-
- expVal += OString( "15" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_kRadixDecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_093()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 16;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_kRadixHexdecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_094()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 16;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_kRadixHexdecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_095()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 16;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_kRadixHexdecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_096()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 15;
- sal_Int16 radix = 16;
-
- expVal += OString( "f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_kRadixHexdecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_097()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 0;
- sal_Int16 radix = 36;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_kRadixBase36 for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_098()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 4;
- sal_Int16 radix = 36;
-
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_kRadixBase36 for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_099()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 8;
- sal_Int16 radix = 36;
-
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_kRadixBase36 for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_100()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = 35;
- sal_Int16 radix = 36;
-
- expVal += OString( "z" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_kRadixBase36 for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- CPPUNIT_TEST_SUITE( append_007_Int64 );
- CPPUNIT_TEST( append_001 ); CPPUNIT_TEST( append_002 );
- CPPUNIT_TEST( append_003 ); CPPUNIT_TEST( append_004 );
- CPPUNIT_TEST( append_005 ); CPPUNIT_TEST( append_006 );
- CPPUNIT_TEST( append_007 ); CPPUNIT_TEST( append_008 );
- CPPUNIT_TEST( append_009 ); CPPUNIT_TEST( append_010 );
- CPPUNIT_TEST( append_011 ); CPPUNIT_TEST( append_012 );
- CPPUNIT_TEST( append_013 ); CPPUNIT_TEST( append_014 );
- CPPUNIT_TEST( append_015 ); CPPUNIT_TEST( append_016 );
- CPPUNIT_TEST( append_017 ); CPPUNIT_TEST( append_018 );
- CPPUNIT_TEST( append_019 ); CPPUNIT_TEST( append_020 );
- CPPUNIT_TEST( append_021 ); CPPUNIT_TEST( append_022 );
- CPPUNIT_TEST( append_023 ); CPPUNIT_TEST( append_024 );
- CPPUNIT_TEST( append_025 ); CPPUNIT_TEST( append_026 );
- CPPUNIT_TEST( append_027 ); CPPUNIT_TEST( append_028 );
- CPPUNIT_TEST( append_029 ); CPPUNIT_TEST( append_030 );
- CPPUNIT_TEST( append_031 ); CPPUNIT_TEST( append_032 );
- CPPUNIT_TEST( append_033 ); CPPUNIT_TEST( append_034 );
- CPPUNIT_TEST( append_035 ); CPPUNIT_TEST( append_036 );
- CPPUNIT_TEST( append_037 ); CPPUNIT_TEST( append_038 );
- CPPUNIT_TEST( append_039 ); CPPUNIT_TEST( append_040 );
- CPPUNIT_TEST( append_041 ); CPPUNIT_TEST( append_042 );
- CPPUNIT_TEST( append_043 ); CPPUNIT_TEST( append_044 );
- CPPUNIT_TEST( append_045 ); CPPUNIT_TEST( append_046 );
- CPPUNIT_TEST( append_047 ); CPPUNIT_TEST( append_048 );
- CPPUNIT_TEST( append_049 ); CPPUNIT_TEST( append_050 );
- CPPUNIT_TEST( append_051 ); CPPUNIT_TEST( append_052 );
- CPPUNIT_TEST( append_053 ); CPPUNIT_TEST( append_054 );
- CPPUNIT_TEST( append_055 ); CPPUNIT_TEST( append_056 );
- CPPUNIT_TEST( append_057 ); CPPUNIT_TEST( append_058 );
- CPPUNIT_TEST( append_059 ); CPPUNIT_TEST( append_060 );
- CPPUNIT_TEST( append_061 ); CPPUNIT_TEST( append_062 );
- CPPUNIT_TEST( append_063 ); CPPUNIT_TEST( append_064 );
- CPPUNIT_TEST( append_065 ); CPPUNIT_TEST( append_066 );
- CPPUNIT_TEST( append_067 ); CPPUNIT_TEST( append_068 );
- CPPUNIT_TEST( append_069 ); CPPUNIT_TEST( append_070 );
- CPPUNIT_TEST( append_071 ); CPPUNIT_TEST( append_072 );
- CPPUNIT_TEST( append_073 ); CPPUNIT_TEST( append_074 );
- CPPUNIT_TEST( append_075 ); CPPUNIT_TEST( append_076 );
- CPPUNIT_TEST( append_077 ); CPPUNIT_TEST( append_078 );
- CPPUNIT_TEST( append_079 ); CPPUNIT_TEST( append_080 );
- CPPUNIT_TEST( append_081 ); CPPUNIT_TEST( append_082 );
- CPPUNIT_TEST( append_083 ); CPPUNIT_TEST( append_084 );
- CPPUNIT_TEST( append_085 ); CPPUNIT_TEST( append_086 );
- CPPUNIT_TEST( append_087 ); CPPUNIT_TEST( append_088 );
- CPPUNIT_TEST( append_089 ); CPPUNIT_TEST( append_090 );
- CPPUNIT_TEST( append_091 ); CPPUNIT_TEST( append_092 );
- CPPUNIT_TEST( append_093 ); CPPUNIT_TEST( append_094 );
- CPPUNIT_TEST( append_095 ); CPPUNIT_TEST( append_096 );
- CPPUNIT_TEST( append_097 ); CPPUNIT_TEST( append_098 );
- CPPUNIT_TEST( append_099 ); CPPUNIT_TEST( append_100 );
- CPPUNIT_TEST_SUITE_END();
- };
-//------------------------------------------------------------------------
-// testing the method append( sal_Int64 i, sal_Int16 radix=2 )
-// where i = large constants
-// testing the method append( sal_Int64 i, sal_Int16 radix=8 )
-// where i = large constants
-// testing the method append( sal_Int64 i, sal_Int16 radix=10 )
-// where i = large constants
-// testing the method append( sal_Int64 i, sal_Int16 radix=16 )
-// where i = large constants
-// testing the method append( sal_Int64 i, sal_Int16 radix=36 )
-// where i = large constants
-//------------------------------------------------------------------------
- class append_007_Int64_Bounderies : public CppUnit::TestFixture
- {
- OString* arrOUS[5];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr7 );
- arrOUS[1] = new OString( );
- arrOUS[2] = new OString( kTestStr25 );
- arrOUS[3] = new OString( "\0" );
- arrOUS[4] = new OString( kTestStr28 );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4];
- }
-
- void append_001()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_Bounderies_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_002()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 2;
-
- expVal += OString( "111111111111111111111111111111111111111111111111111111111111111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_Bounderies_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_003()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 8;
-
- expVal += OString( "177" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_Bounderies_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_004()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 8;
-
- expVal += OString( "777777777777777777777" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_Bounderies_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_005()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 10;
-
- expVal += OString( "127" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_Bounderies_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_006()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 10;
-
- expVal += OString( "9223372036854775807" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_Bounderies_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_007()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 16;
-
- expVal += OString( "7f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_Bounderies_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_008()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 16;
-
- expVal += OString( "7fffffffffffffff" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_Bounderies_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_009()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 36;
-
- expVal += OString( "3j" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_Bounderies_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_010()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 36;
-
- expVal += OString( "1y2p0ij32e8e7" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_Bounderies_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_011()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_Bounderies_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_012()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 2;
-
- expVal += OString( "111111111111111111111111111111111111111111111111111111111111111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_Bounderies_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_013()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 8;
-
- expVal += OString( "177" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_Bounderies_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_014()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 8;
-
- expVal += OString( "777777777777777777777" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_Bounderies_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_015()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 10;
-
- expVal += OString( "127" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_Bounderies_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_016()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 10;
-
- expVal += OString( "9223372036854775807" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_Bounderies_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_017()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 16;
-
- expVal += OString( "7f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_Bounderies_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_018()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 16;
-
- expVal += OString( "7fffffffffffffff" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_Bounderies_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_019()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 36;
-
- expVal += OString( "3j" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_Bounderies_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_020()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 36;
-
- expVal += OString( "1y2p0ij32e8e7" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_Bounderies_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_021()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_Bounderies_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_022()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 2;
-
- expVal += OString( "111111111111111111111111111111111111111111111111111111111111111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_Bounderies_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_023()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 8;
-
- expVal += OString( "177" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_Bounderies_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_024()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 8;
-
- expVal += OString( "777777777777777777777" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_Bounderies_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_025()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 10;
-
- expVal += OString( "127" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_Bounderies_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_026()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 10;
-
- expVal += OString( "9223372036854775807" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_Bounderies_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_027()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 16;
-
- expVal += OString( "7f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_Bounderies_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_028()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 16;
-
- expVal += OString( "7fffffffffffffff" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_Bounderies_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_029()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 36;
-
- expVal += OString( "3j" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_Bounderies_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_030()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 36;
-
- expVal += OString( "1y2p0ij32e8e7" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_Bounderies_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_031()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_Bounderies_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_032()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 2;
-
- expVal += OString( "111111111111111111111111111111111111111111111111111111111111111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_Bounderies_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_033()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 8;
-
- expVal += OString( "177" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_Bounderies_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_034()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 8;
-
- expVal += OString( "777777777777777777777" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_Bounderies_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_035()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 10;
-
- expVal += OString( "127" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_Bounderies_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_036()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 10;
-
- expVal += OString( "9223372036854775807" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_Bounderies_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_037()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 16;
-
- expVal += OString( "7f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_Bounderies_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_038()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 16;
-
- expVal += OString( "7fffffffffffffff" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_Bounderies_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_039()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 36;
-
- expVal += OString( "3j" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_Bounderies_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_040()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 36;
-
- expVal += OString( "1y2p0ij32e8e7" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_Bounderies_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_041()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 2;
-
- expVal += OString( "1111111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_Bounderies_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_042()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 2;
-
- expVal += OString( "111111111111111111111111111111111111111111111111111111111111111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_Bounderies_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_043()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 8;
-
- expVal += OString( "177" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_Bounderies_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_044()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 8;
-
- expVal += OString( "777777777777777777777" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_Bounderies_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_045()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 10;
-
- expVal += OString( "127" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_Bounderies_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_046()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 10;
-
- expVal += OString( "9223372036854775807" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_Bounderies_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_047()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 16;
-
- expVal += OString( "7f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_Bounderies_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_048()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 16;
-
- expVal += OString( "7fffffffffffffff" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_Bounderies_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_049()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt8Max;
- sal_Int16 radix = 36;
-
- expVal += OString( "3j" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_Bounderies_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_050()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = kSInt64Max;
- sal_Int16 radix = 36;
-
- expVal += OString( "1y2p0ij32e8e7" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_Bounderies_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- CPPUNIT_TEST_SUITE( append_007_Int64_Bounderies );
- CPPUNIT_TEST( append_001 ); CPPUNIT_TEST( append_002 );
- CPPUNIT_TEST( append_003 ); CPPUNIT_TEST( append_004 );
- CPPUNIT_TEST( append_005 ); CPPUNIT_TEST( append_006 );
- CPPUNIT_TEST( append_007 ); CPPUNIT_TEST( append_008 );
- CPPUNIT_TEST( append_009 ); CPPUNIT_TEST( append_010 );
- CPPUNIT_TEST( append_011 ); CPPUNIT_TEST( append_012 );
- CPPUNIT_TEST( append_013 ); CPPUNIT_TEST( append_014 );
- CPPUNIT_TEST( append_015 ); CPPUNIT_TEST( append_016 );
- CPPUNIT_TEST( append_017 ); CPPUNIT_TEST( append_018 );
- CPPUNIT_TEST( append_019 ); CPPUNIT_TEST( append_020 );
- CPPUNIT_TEST( append_021 ); CPPUNIT_TEST( append_022 );
- CPPUNIT_TEST( append_023 ); CPPUNIT_TEST( append_024 );
- CPPUNIT_TEST( append_025 ); CPPUNIT_TEST( append_026 );
- CPPUNIT_TEST( append_027 ); CPPUNIT_TEST( append_028 );
- CPPUNIT_TEST( append_029 ); CPPUNIT_TEST( append_030 );
- CPPUNIT_TEST( append_031 ); CPPUNIT_TEST( append_032 );
- CPPUNIT_TEST( append_033 ); CPPUNIT_TEST( append_034 );
- CPPUNIT_TEST( append_035 ); CPPUNIT_TEST( append_036 );
- CPPUNIT_TEST( append_037 ); CPPUNIT_TEST( append_038 );
- CPPUNIT_TEST( append_039 ); CPPUNIT_TEST( append_040 );
- CPPUNIT_TEST( append_041 ); CPPUNIT_TEST( append_042 );
- CPPUNIT_TEST( append_043 ); CPPUNIT_TEST( append_044 );
- CPPUNIT_TEST( append_045 ); CPPUNIT_TEST( append_046 );
- CPPUNIT_TEST( append_047 ); CPPUNIT_TEST( append_048 );
- CPPUNIT_TEST( append_049 ); CPPUNIT_TEST( append_050 );
- CPPUNIT_TEST_SUITE_END();
- };
-//------------------------------------------------------------------------
-// testing the method append( sal_Int64 i, sal_Int16 radix=2 )
-// for negative value
-// testing the method append( sal_Int64 i, sal_Int16 radix=8 )
-// for negative value
-// testing the method append( sal_Int64 i, sal_Int16 radix=10 )
-// for negative value
-// testing the method append( sal_Int64 i, sal_Int16 radix=16 )
-// for negative value
-// testing the method append( sal_Int64 i, sal_Int16 radix=36 )
-// for negative value
-//------------------------------------------------------------------------
- class append_007_Int64_Negative : public CppUnit::TestFixture
- {
- OString* arrOUS[5];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr7 );
- arrOUS[1] = new OString( );
- arrOUS[2] = new OString( kTestStr25 );
- arrOUS[3] = new OString( "\0" );
- arrOUS[4] = new OString( kTestStr28 );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4];
- }
-
- void append_001()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 2;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_negative_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_002()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "100" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_negative_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_003()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "1000" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_negative_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_004()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -15;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "1111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_negative_kRadixBinary for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_005()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 8;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_negative_kRadixOctol for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_006()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_negative_kRadixOctol for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_007()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "10" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_negative_kRadixOctol for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_008()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -15;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "17" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_negative_kRadixOctol for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_009()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 10;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_negative_kRadixDecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_010()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_negative_kRadixDecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_011()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_negative_kRadixDecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_012()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -15;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "15" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_negative_kRadixDecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_013()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 16;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_negative_kRadixHexdecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_014()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_negative_kRadixHexdecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_015()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_negative_kRadixHexdecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_016()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -15;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_negative_kRadixHexdecimal for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_017()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 36;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_negative_kRadixBase36 for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_018()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_negative_kRadixBase36 for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_019()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_negative_kRadixBase36 for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_020()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -35;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "z" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_negative_kRadixBase36 for arrOUS[0]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_021()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 2;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_negative_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_022()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "100" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_negative_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_023()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "1000" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_negative_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_024()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -15;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "1111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_negative_kRadixBinary for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_025()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 8;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_negative_kRadixOctol for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_026()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_negative_kRadixOctol for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_027()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "10" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_negative_kRadixOctol for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_028()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -15;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "17" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_negative_kRadixOctol for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_029()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 10;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_negative_kRadixDecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_030()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_negative_kRadixDecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_031()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_negative_kRadixDecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_032()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -15;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "15" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_negative_kRadixDecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_033()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 16;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_negative_kRadixHexdecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_034()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_negative_kRadixHexdecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_035()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_negative_kRadixHexdecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_036()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -15;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_negative_kRadixHexdecimal for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_037()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 36;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_negative_kRadixBase36 for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_038()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_negative_kRadixBase36 for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_039()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_negative_kRadixBase36 for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_040()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -35;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "z" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_negative_kRadixBase36 for arrOUS[1]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_041()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 2;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_negative_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_042()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "100" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_negative_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_043()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "1000" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_negative_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_044()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -15;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "1111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_negative_kRadixBinary for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_045()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 8;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_negative_kRadixOctol for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_046()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_negative_kRadixOctol for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_047()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "10" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_negative_kRadixOctol for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_048()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -15;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "17" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_negative_kRadixOctol for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_049()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 10;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_negative_kRadixDecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_050()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_negative_kRadixDecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_051()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_negative_kRadixDecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_052()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -15;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "15" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_negative_kRadixDecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_053()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 16;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_negative_kRadixHexdecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_054()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_negative_kRadixHexdecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_055()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_negative_kRadixHexdecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_056()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -15;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_negative_kRadixHexdecimal for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_057()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 36;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_negative_kRadixBase36 for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_058()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_negative_kRadixBase36 for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_059()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_negative_kRadixBase36 for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_060()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -35;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "z" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_negative_kRadixBase36 for arrOUS[2]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_061()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 2;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_negative_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_062()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "100" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_negative_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_063()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "1000" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_negative_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_064()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -15;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "1111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_negative_kRadixBinary for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_065()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 8;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_negative_kRadixOctol for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_066()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_negative_kRadixOctol for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_067()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "10" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_negative_kRadixOctol for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_068()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -15;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "17" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_negative_kRadixOctol for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_069()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 10;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_negative_kRadixDecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_070()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_negative_kRadixDecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_071()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_negative_kRadixDecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_072()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -15;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "15" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_negative_kRadixDecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_073()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 16;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_negative_kRadixHexdecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_074()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_negative_kRadixHexdecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_075()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_negative_kRadixHexdecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_076()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -15;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_negative_kRadixHexdecimal for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_077()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 36;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_negative_kRadixBase36 for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_078()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_negative_kRadixBase36 for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_079()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_negative_kRadixBase36 for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_080()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -35;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "z" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_negative_kRadixBase36 for arrOUS[3]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_081()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 2;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_negative_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_082()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "100" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_negative_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_083()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "1000" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_negative_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_084()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -15;
- sal_Int16 radix = 2;
-
- expVal += OString( "-" );
- expVal += OString( "1111" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 2)_006_negative_kRadixBinary for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_085()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 8;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_negative_kRadixOctol for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_086()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_negative_kRadixOctol for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_087()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "10" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_negative_kRadixOctol for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_088()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -15;
- sal_Int16 radix = 8;
-
- expVal += OString( "-" );
- expVal += OString( "17" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 8)_006_negative_kRadixOctol for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_089()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 10;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_negative_kRadixDecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_090()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_negative_kRadixDecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_091()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_negative_kRadixDecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_092()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -15;
- sal_Int16 radix = 10;
-
- expVal += OString( "-" );
- expVal += OString( "15" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 10)_006_negative_kRadixDecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_093()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 16;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_negative_kRadixHexdecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_094()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_negative_kRadixHexdecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_095()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_negative_kRadixHexdecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_096()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -15;
- sal_Int16 radix = 16;
-
- expVal += OString( "-" );
- expVal += OString( "f" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 16)_006_negative_kRadixHexdecimal for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_097()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -0;
- sal_Int16 radix = 36;
-
- expVal += OString( "0" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_negative_kRadixBase36 for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_098()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -4;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "4" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_negative_kRadixBase36 for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_099()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -8;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "8" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_negative_kRadixBase36 for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_100()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( aStrBuf.getStr() );
- sal_Int64 input = -35;
- sal_Int16 radix = 36;
-
- expVal += OString( "-" );
- expVal += OString( "z" );
- aStrBuf.append( input, radix );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "append(sal_Int64, radix 36)_006_negative_kRadixBase36 for arrOUS[4]",
- aStrBuf.getStr()== expVal &&
- aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- CPPUNIT_TEST_SUITE( append_007_Int64_Negative );
- CPPUNIT_TEST( append_001 ); CPPUNIT_TEST( append_002 );
- CPPUNIT_TEST( append_003 ); CPPUNIT_TEST( append_004 );
- CPPUNIT_TEST( append_005 ); CPPUNIT_TEST( append_006 );
- CPPUNIT_TEST( append_007 ); CPPUNIT_TEST( append_008 );
- CPPUNIT_TEST( append_009 ); CPPUNIT_TEST( append_010 );
- CPPUNIT_TEST( append_011 ); CPPUNIT_TEST( append_012 );
- CPPUNIT_TEST( append_013 ); CPPUNIT_TEST( append_014 );
- CPPUNIT_TEST( append_015 ); CPPUNIT_TEST( append_016 );
- CPPUNIT_TEST( append_017 ); CPPUNIT_TEST( append_018 );
- CPPUNIT_TEST( append_019 ); CPPUNIT_TEST( append_020 );
- CPPUNIT_TEST( append_021 ); CPPUNIT_TEST( append_022 );
- CPPUNIT_TEST( append_023 ); CPPUNIT_TEST( append_024 );
- CPPUNIT_TEST( append_025 ); CPPUNIT_TEST( append_026 );
- CPPUNIT_TEST( append_027 ); CPPUNIT_TEST( append_028 );
- CPPUNIT_TEST( append_029 ); CPPUNIT_TEST( append_030 );
- CPPUNIT_TEST( append_031 ); CPPUNIT_TEST( append_032 );
- CPPUNIT_TEST( append_033 ); CPPUNIT_TEST( append_034 );
- CPPUNIT_TEST( append_035 ); CPPUNIT_TEST( append_036 );
- CPPUNIT_TEST( append_037 ); CPPUNIT_TEST( append_038 );
- CPPUNIT_TEST( append_039 ); CPPUNIT_TEST( append_040 );
- CPPUNIT_TEST( append_041 ); CPPUNIT_TEST( append_042 );
- CPPUNIT_TEST( append_043 ); CPPUNIT_TEST( append_044 );
- CPPUNIT_TEST( append_045 ); CPPUNIT_TEST( append_046 );
- CPPUNIT_TEST( append_047 ); CPPUNIT_TEST( append_048 );
- CPPUNIT_TEST( append_049 ); CPPUNIT_TEST( append_050 );
- CPPUNIT_TEST( append_051 ); CPPUNIT_TEST( append_052 );
- CPPUNIT_TEST( append_053 ); CPPUNIT_TEST( append_054 );
- CPPUNIT_TEST( append_055 ); CPPUNIT_TEST( append_056 );
- CPPUNIT_TEST( append_057 ); CPPUNIT_TEST( append_058 );
- CPPUNIT_TEST( append_059 ); CPPUNIT_TEST( append_060 );
- CPPUNIT_TEST( append_061 ); CPPUNIT_TEST( append_062 );
- CPPUNIT_TEST( append_063 ); CPPUNIT_TEST( append_064 );
- CPPUNIT_TEST( append_065 ); CPPUNIT_TEST( append_066 );
- CPPUNIT_TEST( append_067 ); CPPUNIT_TEST( append_068 );
- CPPUNIT_TEST( append_069 ); CPPUNIT_TEST( append_070 );
- CPPUNIT_TEST( append_071 ); CPPUNIT_TEST( append_072 );
- CPPUNIT_TEST( append_073 ); CPPUNIT_TEST( append_074 );
- CPPUNIT_TEST( append_075 ); CPPUNIT_TEST( append_076 );
- CPPUNIT_TEST( append_077 ); CPPUNIT_TEST( append_078 );
- CPPUNIT_TEST( append_079 ); CPPUNIT_TEST( append_080 );
- CPPUNIT_TEST( append_081 ); CPPUNIT_TEST( append_082 );
- CPPUNIT_TEST( append_083 ); CPPUNIT_TEST( append_084 );
- CPPUNIT_TEST( append_085 ); CPPUNIT_TEST( append_086 );
- CPPUNIT_TEST( append_087 ); CPPUNIT_TEST( append_088 );
- CPPUNIT_TEST( append_089 ); CPPUNIT_TEST( append_090 );
- CPPUNIT_TEST( append_091 ); CPPUNIT_TEST( append_092 );
- CPPUNIT_TEST( append_093 ); CPPUNIT_TEST( append_094 );
- CPPUNIT_TEST( append_095 ); CPPUNIT_TEST( append_096 );
- CPPUNIT_TEST( append_097 ); CPPUNIT_TEST( append_098 );
- CPPUNIT_TEST( append_099 ); CPPUNIT_TEST( append_100 );
- CPPUNIT_TEST_SUITE_END();
- };
-//------------------------------------------------------------------------
-// testing the method append( sal_Int64 i, sal_Int16 radix ) where radix = -5
-//------------------------------------------------------------------------
- class append_007_Int64_WrongRadix : public CppUnit::TestFixture
- {
- OString* arrOUS[5];
- sal_Int64 intVal;
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr7 );
- arrOUS[1] = new OString( );
- arrOUS[2] = new OString( kTestStr25 );
- arrOUS[3] = new OString( "\0" );
- arrOUS[4] = new OString( kTestStr28 );
- intVal = 11;
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4];
- }
-
- void append_001()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( kTestStr59 );
-
- aStrBuf.append( intVal, -5 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the WrongRadix to the string buffer arrOUS[0]",
- sal_True
- );
-
- }
-
- void append_002()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( kTestStr60 );
-
- aStrBuf.append( intVal, -5 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the WrongRadix to the string buffer arrOUS[1]",
- sal_True
- );
-
- }
-
- void append_003()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( kTestStr60 );
-
- aStrBuf.append( intVal, -5 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the WrongRadix to the string buffer arrOUS[2]",
- sal_True
- );
-
- }
-
- void append_004()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( kTestStr60 );
-
- aStrBuf.append( intVal, -5 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the WrongRadix to the string buffer arrOUS[3]",
- sal_True
- );
-
- }
-
- void append_005()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( kTestStr61 );
-
- aStrBuf.append( intVal, -5 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the WrongRadix to the string buffer arrOUS[4]",
- sal_True
- );
-
- }
-#ifdef WITH_CORE
- void append_006()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt64Max );
- OString expVal( kTestStr60 );
-
- aStrBuf.append( intVal, -5 );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Appends the WrongRadix to the string buffer(with INT_MAX)",
- sal_True
- );
-
- }
-#endif
-
- CPPUNIT_TEST_SUITE( append_007_Int64_WrongRadix );
- CPPUNIT_TEST( append_001 );
- CPPUNIT_TEST( append_002 );
- CPPUNIT_TEST( append_003 );
- CPPUNIT_TEST( append_004 );
- CPPUNIT_TEST( append_005 );
-#ifdef WITH_CORE
- CPPUNIT_TEST( append_006 );
-#endif
- CPPUNIT_TEST_SUITE_END();
- };
-//------------------------------------------------------------------------
- class append_007_Int64_defaultParam : public CppUnit::TestFixture
- {
- OString* arrOUS[5];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr7 );
- arrOUS[1] = new OString( );
- arrOUS[2] = new OString( kTestStr25 );
- arrOUS[3] = new OString( "\0" );
- arrOUS[4] = new OString( kTestStr28 );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4];
- }
-
- void append_001()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( kTestStr59 );
- sal_Int64 input = 11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 11 and return OStringBuffer[0]+11",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_002()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( kTestStr62 );
- sal_Int64 input = 0;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 0 and return OStringBuffer[0]+0",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_003()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( kTestStr63 );
- sal_Int64 input = -11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 -11 and return OStringBuffer[0]+(-11)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_004()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( kTestStr116 );
- sal_Int64 input = SAL_CONST_INT64(9223372036854775807);
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 9223372036854775807 and return OStringBuffer[0]+9223372036854775807",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_005()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- OString expVal( kTestStr117 );
- sal_Int64 input = SAL_MIN_INT64/*-9223372036854775808*/; // LLA: this is not the same :-( kNonSInt64Max;
-
- aStrBuf.append( input );
-
- sal_Bool bRes = expVal.equals( aStrBuf.getStr() );
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 -9223372036854775808 and return OStringBuffer[0]+(-9223372036854775808)",
- bRes && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_006()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( kTestStr60 );
- sal_Int64 input = 11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 11 and return OStringBuffer[1]+11",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_007()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( kTestStr66 );
- sal_Int64 input = 0;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 0 and return OStringBuffer[1]+0",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_008()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( kTestStr67 );
- sal_Int64 input = -11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 -11 and return OStringBuffer[1]+(-11)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_009()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( kTestStr118 );
- sal_Int64 input = SAL_CONST_INT64(9223372036854775807);
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 9223372036854775807 and return OStringBuffer[1]+9223372036854775807",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_010()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- OString expVal( kTestStr119 );
- sal_Int64 input = SAL_MIN_INT64; // LLA: this is not the same :-( kNonSInt64Max;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 -9223372036854775808 and return OStringBuffer[1]+(-9223372036854775808)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_011()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( kTestStr60 );
- sal_Int64 input = 11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 11 and return OStringBuffer[2]+11",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_012()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( kTestStr66 );
- sal_Int64 input = 0;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 0 and return OUStringBuffer[2]+0",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_013()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( kTestStr67 );
- sal_Int64 input = -11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 -11 and return OUStringBuffer[2]+(-11)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_014()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( kTestStr118 );
- sal_Int64 input = SAL_CONST_INT64(9223372036854775807);
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 9223372036854775807 and return OStringBuffer[2]+9223372036854775807",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_015()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- OString expVal( kTestStr119 );
- sal_Int64 input = SAL_MIN_INT64; // LLA: this is not the same :-( kNonSInt64Max;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 -9223372036854775808 and return OStringBuffer[2]+(-9223372036854775808)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_016()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( kTestStr60 );
- sal_Int64 input = 11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 11 and return OStringBuffer[3]+11",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_017()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( kTestStr66 );
- sal_Int64 input = 0;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 0 and return OStringBuffer[3]+0",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_018()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( kTestStr67 );
- sal_Int64 input = -11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 -11 and return OStringBuffer[3]+(-11)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_019()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( kTestStr118 );
- sal_Int64 input = SAL_CONST_INT64(9223372036854775807);
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 9223372036854775807 and return OStringBuffer[3]+9223372036854775807",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_020()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- OString expVal( kTestStr119 );
- sal_Int64 input = SAL_MIN_INT64; // LLA: this is not the same :-( kNonSInt64Max;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 -9223372036854775808 and return OStringBuffer[3]+(-9223372036854775808)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_021()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( kTestStr61 );
- sal_Int64 input = 11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 11 and return OStringBuffer[4]+11",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_022()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( kTestStr70 );
- sal_Int64 input = 0;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 0 and return OStringBuffer[4]+0",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_023()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( kTestStr71 );
- sal_Int64 input = -11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 -11 and return OStringBuffer[4]+(-11)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_024()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( kTestStr120 );
- sal_Int64 input = SAL_CONST_INT64(9223372036854775807);
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 9223372036854775807 and return OStringBuffer[4]+9223372036854775807",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_025()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- OString expVal( kTestStr121 );
- sal_Int64 input = SAL_MIN_INT64; // LLA: this is not the same :-( kNonSInt64Max;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 -9223372036854775808 and return OStringBuffer[4]+(-9223372036854775808)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-#ifdef WITH_CORE
- void append_026()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt64Max );
- OString expVal( kTestStr60 );
- sal_Int64 input = 11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 11 and return OStringBuffer(kSInt64Max)+11",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_027()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt64Max );
- OString expVal( kTestStr66 );
- sal_Int64 input = 0;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 0 and return OStringBuffer(kSInt64Max)+0",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_028()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt64Max );
- OString expVal( kTestStr67 );
- sal_Int64 input = -11;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 -11 and return OStringBuffer(kSInt64Max)+(-11)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_029()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt64Max );
- OString expVal( kTestStr118 );
- sal_Int64 input = 9223372036854775807;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 9223372036854775807 and return OStringBuffer(kSInt64Max)+9223372036854775807",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-
- void append_030()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt64Max );
- OString expVal( kTestStr119 );
- sal_Int64 input = SAL_MIN_INT64; // LLA: this is not the same :-( kNonSInt64Max;
-
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "input Int64 -9223372036854775808 and return OStringBuffer(kSInt64Max)+(-9223372036854775808)",
- aStrBuf == expVal && aStrBuf.getLength() == expVal.getLength()
- );
-
- }
-#endif
-
- CPPUNIT_TEST_SUITE( append_007_Int64_defaultParam );
- CPPUNIT_TEST( append_001 );
- CPPUNIT_TEST( append_002 );
- CPPUNIT_TEST( append_003 );
- CPPUNIT_TEST( append_004 );
- CPPUNIT_TEST( append_005 );
- CPPUNIT_TEST( append_006 );
- CPPUNIT_TEST( append_007 );
- CPPUNIT_TEST( append_008 );
- CPPUNIT_TEST( append_009 );
- CPPUNIT_TEST( append_010 );
- CPPUNIT_TEST( append_011 );
- CPPUNIT_TEST( append_012 );
- CPPUNIT_TEST( append_013 );
- CPPUNIT_TEST( append_014 );
- CPPUNIT_TEST( append_015 );
- CPPUNIT_TEST( append_016 );
- CPPUNIT_TEST( append_017 );
- CPPUNIT_TEST( append_018 );
- CPPUNIT_TEST( append_019 );
- CPPUNIT_TEST( append_020 );
- CPPUNIT_TEST( append_021 );
- CPPUNIT_TEST( append_022 );
- CPPUNIT_TEST( append_023 );
- CPPUNIT_TEST( append_024 );
- CPPUNIT_TEST( append_025 );
-#ifdef WITH_CORE
- CPPUNIT_TEST( append_026 );
- CPPUNIT_TEST( append_027 );
- CPPUNIT_TEST( append_028 );
- CPPUNIT_TEST( append_029 );
- CPPUNIT_TEST( append_030 );
-#endif
- CPPUNIT_TEST_SUITE_END();
- };
-//------------------------------------------------------------------------
-// testing the method append( float f )
-//------------------------------------------------------------------------
- class checkfloat : public CppUnit::TestFixture
- {
- public:
- bool checkIfStrBufContainAtPosTheFloat(rtl::OStringBuffer const& _sStrBuf, sal_Int32 _nLen, float _nFloat)
- {
- OString sFloatValue;
- sFloatValue = rtl::OString::valueOf(_nFloat);
-
- OString sBufferString(_sStrBuf.getStr());
- sal_Int32 nPos = sBufferString.indexOf(sFloatValue);
- if ( nPos >= 0 && nPos == _nLen)
- {
- return true;
- }
- return false;
- }
- };
-// -----------------------------------------------------------------------------
- class append_008_float : public checkfloat
- {
- OString* arrOUS[5];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr7 );
- arrOUS[1] = new OString( );
- arrOUS[2] = new OString( kTestStr25 );
- arrOUS[3] = new OString( "\0" );
- arrOUS[4] = new OString( kTestStr28 );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4];
- }
-
- void append_001()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- float input = (float)atof("3.0");
-
- // LLA:
- // the complex problem is here, that a float value is not really what we write.
- // So a 3.0 could also be 3 or 3.0 or 3.0000001 or 2.9999999
- // this has to be checked.
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[0] append 3.0",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_002()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- float input = (float)atof("3.5");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[0] append 3.5",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_003()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- float input = (float)atof("3.0625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[0] append 3.0625",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_004()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- float input = (float)atof("3.502525");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[0] append 3.502525",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_005()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- float input = (float)atof("3.141592");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[0] append 3.141592",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_006()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- float input = (float)atof("3.5025255");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[0] append 3.5025255",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_007()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- float input = (float)atof("3.00390625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[0] append 3.0039062",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_008()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- float input = (float)atof("3.0");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[1] append 3.0",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_009()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- float input = (float)atof("3.5");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[1] append 3.5",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_010()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- float input = (float)atof("3.0625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[1] append 3.0625",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_011()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- float input = (float)atof("3.502525");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[1] append 3.502525",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_012()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- float input = (float)atof("3.141592");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[1] append 3.141592",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_013()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- float input = (float)atof("3.5025255");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[1] append 3.5025255",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_014()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- float input = (float)atof("3.00390625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[1] append 3.0039062",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_015()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- float input = (float)atof("3.0");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[2] append 3.0",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_016()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- float input = (float)atof("3.5");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[2] append 3.5",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_017()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- float input = (float)atof("3.0625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[2] append 3.0625",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_018()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- float input = (float)atof("3.502525");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[2] append 3.502525",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_019()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- float input = (float)atof("3.141592");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[2] append 3.141592",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_020()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- float input = (float)atof("3.5025255");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[2] append 3.5025255",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_021()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- float input = (float)atof("3.00390625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[2] append 3.0039062",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_022()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- float input = (float)atof("3.0");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[3] append 3.0",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_023()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- float input = (float)atof("3.5");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[3] append 3.5",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_024()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- float input = (float)atof("3.0625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[3] append 3.0625",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_025()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- float input = (float)atof("3.502525");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[3] append 3.502525",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_026()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- float input = (float)atof("3.141592");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[3] append 3.141592",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_027()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- float input = (float)atof("3.5025255");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[3] append 3.5025255",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_028()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- float input = (float)atof("3.00390625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[3] append 3.0039062",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_029()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- float input = (float)atof("3.0");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[4] append 3.0",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_030()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- float input = (float)atof("3.5");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[4] append 3.5",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_031()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- float input = (float)atof("3.0625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[4] append 3.0625",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_032()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- float input = (float)atof("3.502525");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[4] append 3.502525",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_033()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- float input = (float)atof("3.141592");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[4] append 3.141592",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_034()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- float input = (float)atof("3.5025255");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[4] append 3.5025255",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_035()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- float input = (float)atof("3.00390625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[4] append 3.0039062",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-#ifdef WITH_CORE
- void append_036()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- float input = (float)atof("3.0");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "OStringBuffer( kSInt32Max ) append 3.0",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_037()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- float input = (float)atof("3.5");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "OStringBuffer( kSInt32Max ) append 3.5",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_038()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- float input = (float)atof("3.0625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "OStringBuffer( kSInt32Max ) append 3.0625",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_039()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- float input = (float)atof("3.502525");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "OStringBuffer( kSInt32Max ) append 3.502525",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_040()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- float input = (float)atof("3.141592");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "OStringBuffer( kSInt32Max ) append 3.141592",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_041()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- float input = (float)atof("3.5025255");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "OStringBuffer( kSInt32Max ) append 3.5025255",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_042()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- float input = (float)atof("3.00390625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "OStringBuffer( kSInt32Max ) append 3.0039062",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-#endif
-
- CPPUNIT_TEST_SUITE( append_008_float );
- CPPUNIT_TEST( append_001 );
- CPPUNIT_TEST( append_002 );
- CPPUNIT_TEST( append_003 );
- CPPUNIT_TEST( append_004 );
- CPPUNIT_TEST( append_005 );
- CPPUNIT_TEST( append_006 );
- CPPUNIT_TEST( append_007 );
- CPPUNIT_TEST( append_008 );
- CPPUNIT_TEST( append_009 );
- CPPUNIT_TEST( append_010 );
- CPPUNIT_TEST( append_011 );
- CPPUNIT_TEST( append_012 );
- CPPUNIT_TEST( append_013 );
- CPPUNIT_TEST( append_014 );
- CPPUNIT_TEST( append_015 );
- CPPUNIT_TEST( append_016 );
- CPPUNIT_TEST( append_017 );
- CPPUNIT_TEST( append_018 );
- CPPUNIT_TEST( append_019 );
- CPPUNIT_TEST( append_020 );
- CPPUNIT_TEST( append_021 );
- CPPUNIT_TEST( append_022 );
- CPPUNIT_TEST( append_023 );
- CPPUNIT_TEST( append_024 );
- CPPUNIT_TEST( append_025 );
-#ifdef WITH_CORE
- CPPUNIT_TEST( append_026 );
- CPPUNIT_TEST( append_027 );
- CPPUNIT_TEST( append_028 );
- CPPUNIT_TEST( append_029 );
- CPPUNIT_TEST( append_030 );
-#endif
- CPPUNIT_TEST_SUITE_END();
- };
-//------------------------------------------------------------------------
-// testing the method append( float f ) for negative value
-//------------------------------------------------------------------------
- class append_008_Float_Negative : public checkfloat
- {
- OString* arrOUS[5];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr7 );
- arrOUS[1] = new OString( );
- arrOUS[2] = new OString( kTestStr25 );
- arrOUS[3] = new OString( "\0" );
- arrOUS[4] = new OString( kTestStr28 );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4];
- }
-
- void append_001()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- float input = (float)atof("-3.0");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[0] append -3.0",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_002()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- float input = (float)atof("-3.5");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[0] append -3.5",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_003()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- float input = (float)atof("-3.0625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[0] append -3.0625",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_004()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- float input = (float)atof("-3.502525");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[0] append -3.502525",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_005()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- float input = (float)atof("-3.141592");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[0] append -3.141592",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_006()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- float input = (float)atof("-3.5025255");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[0] append -3.5025255",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_007()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- float input = (float)atof("-3.00390625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[0] append -3.0039062",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_008()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- float input = (float)atof("-3.0");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[1] append -3.0",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_009()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- float input = (float)atof("-3.5");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[1] append -3.5",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_010()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- float input = (float)atof("-3.0625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[1] append -3.0625",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_011()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- float input = (float)atof("-3.502525");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[1] append -3.502525",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_012()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- float input = (float)atof("-3.141592");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[1] append -3.141592",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_013()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- float input = (float)atof("-3.5025255");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[1] append -3.5025255",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_014()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[1] );
- float input = (float)atof("-3.00390625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[1] append -3.0039062",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_015()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- float input = (float)atof("-3.0");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[2] append -3.0",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_016()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- float input = (float)atof("-3.5");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[2] append -3.5",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_017()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- float input = (float)atof("-3.0625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[2] append -3.0625",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_018()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- float input = (float)atof("-3.502525");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[2] append -3.502525",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_019()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- float input = (float)atof("-3.141592");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[2] append -3.141592",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_020()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- float input = (float)atof("-3.5025255");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[2] append -3.5025255",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_021()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[2] );
- float input = (float)atof("-3.00390625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[2] append -3.0039062",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_022()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- float input = (float)atof("-3.0");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[3] append -3.0",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_023()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- float input = (float)atof("-3.5");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[3] append -3.5",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_024()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- float input = (float)atof("-3.0625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[3] append -3.0625",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_025()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- float input = (float)atof("-3.502525");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[3] append -3.502525",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_026()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- float input = (float)atof("-3.141592");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[3] append -3.141592",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_027()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- float input = (float)atof("-3.5025255");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[3] append -3.5025255",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_028()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[3] );
- float input = (float)atof("-3.00390625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[3] append -3.0039062",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_029()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- float input = (float)atof("-3.0");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[4] append -3.0",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_030()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- float input = (float)atof("-3.5");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[4] append -3.5",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_031()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- float input = (float)atof("-3.0625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[4] append -3.0625",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_032()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- float input = (float)atof("-3.502525");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[4] append -3.502525",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_033()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- float input = (float)atof("-3.141592");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[4] append -3.141592",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_034()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- float input = (float)atof("-3.5025255");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[4] append -3.5025255",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_035()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- float input = (float)atof("-3.00390625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[4] append -3.0039062",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-#ifdef WITH_CORE
- void append_036()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- float input = (float)atof("-3.0");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "OStringBuffer( kSInt32Max ) append -3.0",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_037()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- float input = (float)atof("-3.5");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "OStringBuffer( kSInt32Max ) append -3.5",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_038()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- float input = (float)atof("-3.0625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "OStringBuffer( kSInt32Max ) append -3.0625",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_039()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- float input = (float)atof("-3.502525");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "OStringBuffer( kSInt32Max ) append -3.502525",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_040()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- float input = (float)atof("-3.141592");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "OStringBuffer( kSInt32Max ) append -3.141592",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_041()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- float input = (float)atof("-3.5025255");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "OStringBuffer( kSInt32Max ) append -3.5025255",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-
- void append_042()
- {
- ::rtl::OStringBuffer aStrBuf( kSInt32Max );
- float input = (float)atof("-3.00390625");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "OStringBuffer( kSInt32Max ) append -3.0039062",
- checkIfStrBufContainAtPosTheFloat(aStrBuf, nLen, input)
- );
-
- }
-#endif
-
- CPPUNIT_TEST_SUITE( append_008_Float_Negative );
- CPPUNIT_TEST( append_001 );
- CPPUNIT_TEST( append_002 );
- CPPUNIT_TEST( append_003 );
- CPPUNIT_TEST( append_004 );
- CPPUNIT_TEST( append_005 );
- CPPUNIT_TEST( append_006 );
- CPPUNIT_TEST( append_007 );
- CPPUNIT_TEST( append_008 );
- CPPUNIT_TEST( append_009 );
- CPPUNIT_TEST( append_010 );
- CPPUNIT_TEST( append_011 );
- CPPUNIT_TEST( append_012 );
- CPPUNIT_TEST( append_013 );
- CPPUNIT_TEST( append_014 );
- CPPUNIT_TEST( append_015 );
- CPPUNIT_TEST( append_016 );
- CPPUNIT_TEST( append_017 );
- CPPUNIT_TEST( append_018 );
- CPPUNIT_TEST( append_019 );
- CPPUNIT_TEST( append_020 );
- CPPUNIT_TEST( append_021 );
- CPPUNIT_TEST( append_022 );
- CPPUNIT_TEST( append_023 );
- CPPUNIT_TEST( append_024 );
- CPPUNIT_TEST( append_025 );
-#ifdef WITH_CORE
- CPPUNIT_TEST( append_026 );
- CPPUNIT_TEST( append_027 );
- CPPUNIT_TEST( append_028 );
- CPPUNIT_TEST( append_029 );
- CPPUNIT_TEST( append_030 );
-#endif
- CPPUNIT_TEST_SUITE_END();
- };
-//------------------------------------------------------------------------
-// testing the method append( double d )
-//------------------------------------------------------------------------
-
- class checkdouble : public CppUnit::TestFixture
- {
- public:
- bool checkIfStrBufContainAtPosTheDouble(rtl::OStringBuffer const& _sStrBuf, sal_Int32 _nLen, double _nDouble)
- {
- OString sDoubleValue;
- sDoubleValue = rtl::OString::valueOf(_nDouble);
-
- OString sBufferString(_sStrBuf.getStr());
- sal_Int32 nPos = sBufferString.indexOf(sDoubleValue);
- if ( nPos >= 0 && nPos == _nLen)
- {
- return true;
- }
- return false;
- }
- };
-
- class append_009_double : public checkdouble
- {
- OString* arrOUS[5];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr7 );
- arrOUS[1] = new OString( );
- arrOUS[2] = new OString( kTestStr25 );
- arrOUS[3] = new OString( "\0" );
- arrOUS[4] = new OString( kTestStr28 );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4];
- }
-
- void append_001()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- double input = atof("3.0");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[0] append 3.0",
- checkIfStrBufContainAtPosTheDouble(aStrBuf, nLen, input)
- );
-
- }
-
- void append_035()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- double input = atof("3.141592653589793238462643");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[4] append 3.141592653589793238462643",
- checkIfStrBufContainAtPosTheDouble(aStrBuf, nLen, input)
- );
-
- }
-
- CPPUNIT_TEST_SUITE( append_009_double );
- CPPUNIT_TEST( append_001 );
- CPPUNIT_TEST( append_035 );
- CPPUNIT_TEST_SUITE_END();
- };
-
-//------------------------------------------------------------------------
-// testing the method append( double f ) for negative value
-//------------------------------------------------------------------------
- class append_009_Double_Negative : public checkdouble
- {
- OString* arrOUS[5];
-
- public:
- void setUp()
- {
- arrOUS[0] = new OString( kTestStr7 );
- arrOUS[1] = new OString( );
- arrOUS[2] = new OString( kTestStr25 );
- arrOUS[3] = new OString( "\0" );
- arrOUS[4] = new OString( kTestStr28 );
-
- }
-
- void tearDown()
- {
- delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2];
- delete arrOUS[3]; delete arrOUS[4];
- }
-
- void append_001()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[0] );
- double input = atof("-3.0");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[0] append -3.0",
- checkIfStrBufContainAtPosTheDouble(aStrBuf, nLen, input)
- );
-
- }
-
- void append_035()
- {
- ::rtl::OStringBuffer aStrBuf( *arrOUS[4] );
- double input = atof("-3.141592653589793238462643");
-
- sal_Int32 nLen = aStrBuf.getLength();
- aStrBuf.append( input );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "arrOUS[4] append -3.141592653589793238462643",
- checkIfStrBufContainAtPosTheDouble(aStrBuf, nLen, input)
- );
-
- }
-
- CPPUNIT_TEST_SUITE( append_009_Double_Negative );
- CPPUNIT_TEST( append_001 );
- CPPUNIT_TEST( append_035 );
- CPPUNIT_TEST_SUITE_END();
- };
-} // namespace rtl_OStringBuffer
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::ctors);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::makeStringAndClear);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::getLength);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::getCapacity);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::ensureCapacity);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::setLength);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::charAt);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::csuc);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::getStr);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::setCharAt);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_001);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_002);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_003);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_004);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_005);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_006_Int32);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_006_Int32_Bounderies);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_006_Int32_Negative);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_006_Int32_WrongRadix);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_006_Int32_defaultParam);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_007_Int64);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_007_Int64_Bounderies);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_007_Int64_Negative);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_007_Int64_WrongRadix);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_007_Int64_defaultParam);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_008_float);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_008_Float_Negative);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_009_double);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_009_Double_Negative);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::remove);
-
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/OStringBuffer/rtl_String_Const.h b/sal/qa/OStringBuffer/rtl_String_Const.h
deleted file mode 100644
index 03fe53c0c..000000000
--- a/sal/qa/OStringBuffer/rtl_String_Const.h
+++ /dev/null
@@ -1,505 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_STRING_CONST_H_
-#define _RTL_STRING_CONST_H_
-
-#ifndef _RTL_STRING_UTILS_HXX_
- #include <rtl_String_Utils.hxx>
-#endif
-
-#include <limits.h>
-
-#ifndef _SAL_TYPES_H_
- #include <sal/types.h>
-#endif
-
-#ifndef _RTL_TEXTENC_H
- #include <rtl/textenc.h>
-#endif
-
-#ifndef _RTL_USTRING_H_
- #include <rtl/ustring.h>
-#endif
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-static const rtl_TextEncoding kEncodingRTLTextUSASCII = RTL_TEXTENCODING_ASCII_US;
-
-static const sal_uInt32 kConvertFlagsOUStringToOString = OUSTRING_TO_OSTRING_CVTFLAGS;
-static const sal_uInt32 kConvertFlagsOStringToOUString = OSTRING_TO_OUSTRING_CVTFLAGS;
-
-static const sal_Char *kTestStr1 = "Sun Microsystems";
-static const sal_Char *kTestStr2 = "Sun Microsystems Java Technology";
-static const sal_Char *kTestStr3 = "Sun microsystems";
-static const sal_Char *kTestStr7 = "Sun ";
-static const sal_Char *kTestStr8 = "Microsystems";
-static const sal_Char *kTestStr14 = " Sun Microsystems";
-static const sal_Char *kTestStr17 = " Sun Microsystems ";
-static const sal_Char *kTestStr23 = " Java Technology";
-static const sal_Char *kTestStr25 = "";
-static const sal_Char *kTestStr27 = "s";
-static const sal_Char *kTestStr28 = "\50\3\5\7\11\13\15\17sun";
-static const sal_Char *kTestStr29 = "\50\3\5\7\11\13\15\17sun\21\23\25\27\31\33\50";
-static const sal_Char *kTestStr31 = "sun Microsystems";
-static const sal_Char *kTestStr32 = "Sun Microsystem ";
-static const sal_Char *kTestStr33 = " ";
-static const sal_Char *kTestStr34 = "\50\5\5\7\11\13\15\17sun";
-static const sal_Char *kTestStr35 = "\50\373\5\7\11\13\15\17sun";
-static const sal_Char *kTestStr36 = "Microsystems Java Technology";
-static const sal_Char *kTestStr37 = "Sun Java Technology";
-static const sal_Char *kTestStr38 = "\21\23\25\27\31\33\50";
-static const sal_Char *kTestStr39 = "\50\3\5\7\11\13\15\17sun Sun Microsystems ";
-static const sal_Char *kTestStr40 = "\50\3\5\7\11\13\15\17sunsun Microsystems";
-static const sal_Char *kTestStr45 = "Sun true";
-static const sal_Char *kTestStr46 = "Sun false";
-static const sal_Char *kTestStr47 = "true";
-static const sal_Char *kTestStr48 = "false";
-static const sal_Char *kTestStr49 = "\50\3\5\7\11\13\15\17suntrue";
-static const sal_Char *kTestStr50 = "\50\3\5\7\11\13\15\17sunfalse";
-static const sal_Char *kTestStr51 = "Sun M";
-//static const sal_Char *kTestStr52 = "Sun \077777";
-//static const sal_Char *kTestStr53 = "Sun \100000";
-//static const sal_Char *kTestStr54 = "\77777";
-//static const sal_Char *kTestStr55 = "\100000";
-static const sal_Char *kTestStr56 = "\50\3\5\7\11\13\15\17suns";
-//static const sal_Char *kTestStr57 = "\50\3\5\7\11\13\15\17sun\77777";
-//static const sal_Char *kTestStr58 = "\50\3\5\7\11\13\15\17sun\10000";
-static const sal_Char *kTestStr59 = "Sun 11";
-static const sal_Char *kTestStr60 = "11";
-static const sal_Char *kTestStr61 = "\50\3\5\7\11\13\15\17sun11";
-static const sal_Char *kTestStr62 = "Sun 0";
-static const sal_Char *kTestStr63 = "Sun -11";
-static const sal_Char *kTestStr64 = "Sun 2147483647";
-static const sal_Char *kTestStr65 = "Sun -2147483648";
-static const sal_Char *kTestStr66 = "0";
-static const sal_Char *kTestStr67 = "-11";
-static const sal_Char *kTestStr68 = "2147483647";
-static const sal_Char *kTestStr69 = "-2147483648";
-static const sal_Char *kTestStr70 = "\50\3\5\7\11\13\15\17sun0";
-static const sal_Char *kTestStr71 = "\50\3\5\7\11\13\15\17sun-11";
-static const sal_Char *kTestStr72 = "\50\3\5\7\11\13\15\17sun2147483647";
-static const sal_Char *kTestStr73 = "\50\3\5\7\11\13\15\17sun-2147483648";
-static const sal_Char *kTestStr116 = "Sun 9223372036854775807";
-static const sal_Char *kTestStr117 = "Sun -9223372036854775808";
-static const sal_Char *kTestStr118 = "9223372036854775807";
-static const sal_Char *kTestStr119 = "-9223372036854775808";
-static const sal_Char *kTestStr120 = "\50\3\5\7\11\13\15\17sun9223372036854775807";
-static const sal_Char *kTestStr121 = "\50\3\5\7\11\13\15\17sun-9223372036854775808";
-static const sal_Char *kTestStr143 = "Sun \377";
-static const sal_Char *kTestStr144 = "\377";
-static const sal_Char *kTestStr145 = "\50\3\5\7\11\13\15\17sun\377";
-
-static const sal_Int32 kTestStr1Len = 16;
-static const sal_Int32 kTestStr2Len = 32;
-static const sal_Int32 kTestStr3Len = 16;
-static const sal_Int32 kTestStr4Len = 16;
-static const sal_Int32 kTestStr5Len = 16;
-static const sal_Int32 kTestStr6Len = 15;
-static const sal_Int32 kTestStr7Len = 4;
-static const sal_Int32 kTestStr8Len = 12;
-static const sal_Int32 kTestStr9Len = 32;
-static const sal_Int32 kTestStr10Len = 17;
-static const sal_Int32 kTestStr11Len = 17;
-static const sal_Int32 kTestStr12Len = 18;
-static const sal_Int32 kTestStr13Len = 19;
-static const sal_Int32 kTestStr14Len = 19;
-static const sal_Int32 kTestStr15Len = 20;
-static const sal_Int32 kTestStr16Len = 20;
-static const sal_Int32 kTestStr17Len = 22;
-static const sal_Int32 kTestStr18Len = 16;
-static const sal_Int32 kTestStr19Len = 22;
-static const sal_Int32 kTestStr20Len = 3;
-static const sal_Int32 kTestStr21Len = 3;
-static const sal_Int32 kTestStr22Len = 32;
-static const sal_Int32 kTestStr23Len = 16;
-static const sal_Int32 kTestStr24Len = 31;
-static const sal_Int32 kTestStr25Len = 0;
-static const sal_Int32 kTestStr26Len = 4;
-static const sal_Int32 kTestStr27Len = 1;
-static const sal_Int32 kTestStr28Len = 11;
-static const sal_Int32 kTestStr29Len = 18;
-static const sal_Int32 kTestStr30Len = 10;
-static const sal_Int32 kTestStr31Len = 16;
-static const sal_Int32 kTestStr32Len = 16;
-static const sal_Int32 kTestStr33Len = 1;
-static const sal_Int32 kTestStr34Len = 11;
-static const sal_Int32 kTestStr35Len = 11;
-static const sal_Int32 kTestStr36Len = 28;
-static const sal_Int32 kTestStr37Len = 20;
-static const sal_Int32 kTestStr38Len = 7;
-static const sal_Int32 kTestStr39Len = 33;
-static const sal_Int32 kTestStr40Len = 27;
-static const sal_Int32 kTestStr41Len = 3;
-static const sal_Int32 kTestStr42Len = 10;
-static const sal_Int32 kTestStr43Len = 13;
-static const sal_Int32 kTestStr44Len = 2;
-static const sal_Int32 kTestStr45Len = 8;
-static const sal_Int32 kTestStr46Len = 9;
-static const sal_Int32 kTestStr47Len = 4;
-static const sal_Int32 kTestStr48Len = 5;
-static const sal_Int32 kTestStr49Len = 15;
-static const sal_Int32 kTestStr50Len = 16;
-static const sal_Int32 kTestStr51Len = 5;
-static const sal_Int32 kTestStr52Len = 5;
-static const sal_Int32 kTestStr53Len = 5;
-static const sal_Int32 kTestStr54Len = 1;
-static const sal_Int32 kTestStr55Len = 1;
-static const sal_Int32 kTestStr56Len = 12;
-static const sal_Int32 kTestStr57Len = 12;
-static const sal_Int32 kTestStr58Len = 12;
-static const sal_Int32 kTestStr59Len = 6;
-static const sal_Int32 kTestStr60Len = 2;
-static const sal_Int32 kTestStr61Len = 13;
-static const sal_Int32 kTestStr62Len = 5;
-static const sal_Int32 kTestStr63Len = 7;
-static const sal_Int32 kTestStr64Len = 14;
-static const sal_Int32 kTestStr65Len = 15;
-static const sal_Int32 kTestStr66Len = 1;
-static const sal_Int32 kTestStr67Len = 3;
-static const sal_Int32 kTestStr68Len = 10;
-static const sal_Int32 kTestStr69Len = 11;
-static const sal_Int32 kTestStr70Len = 12;
-static const sal_Int32 kTestStr71Len = 14;
-static const sal_Int32 kTestStr72Len = 21;
-static const sal_Int32 kTestStr73Len = 22;
-static const sal_Int32 kTestStr74Len = 7;
-static const sal_Int32 kTestStr75Len = 7;
-static const sal_Int32 kTestStr76Len = 10;
-static const sal_Int32 kTestStr77Len = 12;
-static const sal_Int32 kTestStr78Len = 12;
-static const sal_Int32 kTestStr79Len = 13;
-static const sal_Int32 kTestStr80Len = 13;
-static const sal_Int32 kTestStr81Len = 3;
-static const sal_Int32 kTestStr82Len = 3;
-static const sal_Int32 kTestStr83Len = 6;
-static const sal_Int32 kTestStr84Len = 8;
-static const sal_Int32 kTestStr85Len = 8;
-static const sal_Int32 kTestStr86Len = 9;
-static const sal_Int32 kTestStr87Len = 9;
-static const sal_Int32 kTestStr88Len = 14;
-static const sal_Int32 kTestStr89Len = 14;
-static const sal_Int32 kTestStr90Len = 17;
-static const sal_Int32 kTestStr91Len = 19;
-static const sal_Int32 kTestStr92Len = 19;
-static const sal_Int32 kTestStr93Len = 20;
-static const sal_Int32 kTestStr94Len = 20;
-static const sal_Int32 kTestStr95Len = 8;
-static const sal_Int32 kTestStr96Len = 8;
-static const sal_Int32 kTestStr97Len = 11;
-static const sal_Int32 kTestStr98Len = 13;
-static const sal_Int32 kTestStr99Len = 13;
-static const sal_Int32 kTestStr100Len = 14;
-static const sal_Int32 kTestStr101Len = 14;
-static const sal_Int32 kTestStr102Len = 4;
-static const sal_Int32 kTestStr103Len = 4;
-static const sal_Int32 kTestStr104Len = 7;
-static const sal_Int32 kTestStr105Len = 9;
-static const sal_Int32 kTestStr106Len = 9;
-static const sal_Int32 kTestStr107Len = 10;
-static const sal_Int32 kTestStr108Len = 10;
-static const sal_Int32 kTestStr109Len = 15;
-static const sal_Int32 kTestStr110Len = 15;
-static const sal_Int32 kTestStr111Len = 18;
-static const sal_Int32 kTestStr112Len = 20;
-static const sal_Int32 kTestStr113Len = 20;
-static const sal_Int32 kTestStr114Len = 21;
-static const sal_Int32 kTestStr115Len = 21;
-static const sal_Int32 kTestStr116Len = 23;
-static const sal_Int32 kTestStr117Len = 24;
-static const sal_Int32 kTestStr118Len = 19;
-static const sal_Int32 kTestStr119Len = 20;
-static const sal_Int32 kTestStr120Len = 30;
-static const sal_Int32 kTestStr121Len = 31;
-static const sal_Int32 kTestStr122Len = 16;
-static const sal_Int32 kTestStr123Len = 21;
-static const sal_Int32 kTestStr124Len = 23;
-static const sal_Int32 kTestStr125Len = 30;
-static const sal_Int32 kTestStr126Len = 12;
-static const sal_Int32 kTestStr127Len = 17;
-static const sal_Int32 kTestStr128Len = 19;
-static const sal_Int32 kTestStr129Len = 26;
-static const sal_Int32 kTestStr130Len = 23;
-static const sal_Int32 kTestStr131Len = 28;
-static const sal_Int32 kTestStr132Len = 30;
-static const sal_Int32 kTestStr133Len = 37;
-static const sal_Int32 kTestStr134Len = 22;
-static const sal_Int32 kTestStr135Len = 24;
-static const sal_Int32 kTestStr136Len = 31;
-static const sal_Int32 kTestStr137Len = 18;
-static const sal_Int32 kTestStr138Len = 20;
-static const sal_Int32 kTestStr139Len = 27;
-static const sal_Int32 kTestStr140Len = 29;
-static const sal_Int32 kTestStr141Len = 31;
-static const sal_Int32 kTestStr142Len = 38;
-static const sal_Int32 kTestStr143Len = 5;
-static const sal_Int32 kTestStr144Len = 1;
-static const sal_Int32 kTestStr145Len = 12;
-static const sal_Int32 kTestStr146Len = 19;
-static const sal_Int32 kTestStr147Len = 19;
-static const sal_Int32 kTestStr148Len = 19;
-static const sal_Int32 kTestStr149Len = 32;
-static const sal_Int32 kTestStr150Len = 32;
-static const sal_Int32 kTestStr151Len = 31;
-static const sal_Int32 kTestStr152Len = 31;
-static const sal_Int32 kTestStr153Len = 31;
-static const sal_Int32 kTestStr154Len = 36;
-static const sal_Int32 kTestStr155Len = 36;
-static const sal_Int32 kTestStr156Len = 36;
-static const sal_Int32 kTestStr157Len = 49;
-static const sal_Int32 kTestStr158Len = 49;
-static const sal_Int32 kTestStr159Len = 49;
-static const sal_Int32 kTestStr160Len = 48;
-static const sal_Int32 kTestStr161Len = 48;
-static const sal_Int32 kTestStr162Len = 48;
-static const sal_Int32 kTestStr163Len = 15;
-static const sal_Int32 kTestStr164Len = 15;
-static const sal_Int32 kTestStr165Len = 15;
-static const sal_Int32 kTestStr166Len = 28;
-static const sal_Int32 kTestStr167Len = 28;
-static const sal_Int32 kTestStr168Len = 28;
-static const sal_Int32 kTestStr169Len = 27;
-static const sal_Int32 kTestStr170Len = 27;
-static const sal_Int32 kTestStr171Len = 27;
-static const sal_Int32 kTestStr1PlusStr6Len = kTestStr1Len + kTestStr6Len;
-
-static const sal_Int32 uTestStr1Len = 16;
-static const sal_Int32 uTestStr2Len = 32;
-static const sal_Int32 uTestStr3Len = 16;
-static const sal_Int32 uTestStr4Len = 16;
-static const sal_Int32 uTestStr5Len = 16;
-static const sal_Int32 uTestStr9Len = 32;
-static const sal_Int32 uTestStr22Len = 32;
-
-const sal_Unicode uTestStr31[]= {0x400,0x410,0x4DF};
-const sal_Unicode uTestStr32[]= {0x9F9F,0xA000,0x8F80,0x9AD9};
-
-static const sal_Int32 uTestStr31Len = 3;
-static const sal_Int32 uTestStr32Len = 4;
-
-static const sal_Int16 kRadixBinary = 2;
-static const sal_Int16 kRadixOctol = 8;
-static const sal_Int16 kRadixDecimal = 10;
-static const sal_Int16 kRadixHexdecimal = 16;
-static const sal_Int16 kRadixBase36 = 36;
-
-static const sal_Int8 kSInt8Max = SCHAR_MAX;
-static const sal_Int16 kUInt8Max = UCHAR_MAX;
-static const sal_Int16 kSInt16Max = SHRT_MAX;
-static const sal_Int32 kUInt16Max = USHRT_MAX;
-static const sal_Int32 kSInt32Max = INT_MAX;
-static const sal_Int64 kUInt32Max = UINT_MAX;
-static const sal_Int64 kSInt64Max = SAL_CONST_INT64(9223372036854775807);
-
-//------------------------------------------------------------------------
-
-static const sal_Int32 kInt32MaxNumsCount = 5;
-
-static const sal_Int32 kInt32MaxNums[kInt32MaxNumsCount] =
- {
- kSInt8Max, kUInt8Max,
- kSInt16Max, kUInt16Max,
- kSInt32Max
- };
-
-static const sal_Int32 kInt64MaxNumsCount = 7;
-
-static const sal_Int64 kInt64MaxNums[kInt64MaxNumsCount] =
- {
- kSInt8Max, kUInt8Max,
- kSInt16Max, kUInt16Max,
- kSInt32Max, kUInt32Max,
- kSInt64Max
- };
-
-static const sal_Int32 kBinaryNumsCount = 16;
-
-static const sal_Int32 kBinaryMaxNumsCount = 7;
-
-//------------------------------------------------------------------------
-
-static const sal_Int32 kOctolNumsCount = 16;
-
-static const sal_Int32 kOctolMaxNumsCount = 7;
-
-//------------------------------------------------------------------------
-
-static const sal_Int32 kDecimalNumsCount = 16;
-
-static const sal_Int32 kDecimalMaxNumsCount = 7;
-
-//------------------------------------------------------------------------
-
-static const sal_Int32 kHexDecimalNumsCount = 16;
-
-static const sal_Int32 kHexDecimalMaxNumsCount = 7;
-
-//------------------------------------------------------------------------
-
-static const sal_Int32 kBase36NumsCount = 36;
-
-static const sal_Int32 kBase36MaxNumsCount = 7;
-
-static const sal_Int32 nDoubleCount=24;
-static const double expValDouble[nDoubleCount]=
- {
- 3.0,3.1,3.1415,3.1415926535,3.141592653589793,
- 3.1415926535897932,3.14159265358979323,3.1,
- 3.141592653589793238462643,9.1096e-31,2.997925e8,6.241e18,5.381e18,
- 1.7e-309,6.5822e-16,1.7e+307,2.2e30,3.1,3.1,-3.1,
- 0.0,0.0,0.0,1.00e+308
- };
-//------------------------------------------------------------------------
-static const sal_Int32 nFloatCount=22;
-static const float expValFloat[nFloatCount] =
- {
- 3.0f,3.1f,3.1415f,3.14159f,3.141592f,
- 3.1415926f,3.14159265f,3.141592653589793238462643f,
- 6.5822e-16f,9.1096e-31f,2.997925e8f,6.241e18f,
- 1.00e38f,6.241e-37f,6.241e37f,3.1f,3.1f,-3.1f,
- 3.1f,0.0f,0.0f,0.0f
- };
-//------------------------------------------------------------------------
-static const sal_Int32 nCharCount=15;
-static const sal_Unicode expValChar[nCharCount] =
- {
- 65,97,48,45,95,
- 21,27,29,
- 64,10,39,34,
- 0,0,83
- };
-//------------------------------------------------------------------------
-static const sal_Int32 nDefaultCount=6;
-static const sal_Unicode input1Default[nDefaultCount] =
- {
- 77,115,85,119,32,0
- };
-static const sal_Int32 input2Default[nDefaultCount] =
- {
- 0,0,0,0,0,0
- };
-static const sal_Int32 expValDefault[nDefaultCount] =
- {
- 4,9,-1,-1,3,-1
- };
-//------------------------------------------------------------------------
-static const sal_Int32 nNormalCount=10;
-static const sal_Unicode input1Normal[nNormalCount] =
- {
- 77,77,77,115,115,115,119,119,0,0
- };
-static const sal_Int32 input2Normal[nNormalCount] =
- {
- 0,32,80,0,13,20,0,80,0,32
- };
-static const sal_Int32 expValNormal[nNormalCount] =
- {
- 4,-1,-1,9,15,-1,-1,-1,-1,-1
- };
-//------------------------------------------------------------------------
-static const sal_Int32 nlastDefaultCount=5;
-static const sal_Unicode input1lastDefault[nlastDefaultCount] =
- {
- 77,115,119,32,0
- };
-static const sal_Int32 input2lastDefault[nlastDefaultCount] =
- {
- 31,31,31,31,31
- };
-static const sal_Int32 expVallastDefault[nlastDefaultCount] =
- {
- 4,15,-1,21,-1
- };
-//------------------------------------------------------------------------
-static const sal_Int32 nlastNormalCount=8;
-static const sal_Unicode input1lastNormal[nlastNormalCount] =
- {
- 77,77,77,115,115,119,119,0
- };
-static const sal_Int32 input2lastNormal[nlastNormalCount] =
- {
- 29,0,80,31,3,31,80,31
- };
-static const sal_Int32 expVallastNormal[nlastNormalCount] =
- {
- 4,-1,4,15,-1,-1,-1,-1
- };
-//------------------------------------------------------------------------
-static const sal_Int32 nStrDefaultCount=6;
-static const sal_Int32 input2StrDefault[nStrDefaultCount] =
- {
- 0,0,0,0,0,0
- };
-static const sal_Int32 expValStrDefault[nStrDefaultCount] =
- {
- 0,4,-1,-1,-1,3
- };
-//------------------------------------------------------------------------
-static const sal_Int32 nStrNormalCount=9;
-static const sal_Int32 input2StrNormal[nStrNormalCount] =
- {
- 0,32,0,30,0,0,0,32,0
- };
-static const sal_Int32 expValStrNormal[nStrNormalCount] =
- {
- 0,-1,4,-1,-1,-1,-1,-1,3
- };
-//------------------------------------------------------------------------
-static const sal_Int32 nStrLastDefaultCount=6;
-static const sal_Int32 input2StrLastDefault[nStrLastDefaultCount] =
- {
- 31,31,31,31,31,31
- };
-static const sal_Int32 expValStrLastDefault[nStrLastDefaultCount] =
- {
- 0,4,-1,-1,-1,3
- };
-//------------------------------------------------------------------------
-static const sal_Int32 nStrLastNormalCount=12;
-static const sal_Int32 input2StrLastNormal[nStrLastNormalCount] =
- {
- 31,0,80,31,2,31,31,31,0,31,31,14
- };
-static const sal_Int32 expValStrLastNormal[nStrLastNormalCount] =
- {
- 0,-1,0,4,-1,-1,-1,-1,-1,3,15,11
- };
-//------------------------------------------------------------------------
-static const sal_Int32 kNonSInt32Max = INT_MIN;
-static const sal_Int32 kNonSInt16Max = SHRT_MIN;
-//------------------------------------------------------------------------
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RTL_STRING_CONST_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/OStringBuffer/rtl_String_Utils.cxx b/sal/qa/OStringBuffer/rtl_String_Utils.cxx
deleted file mode 100644
index f6c5bb3f1..000000000
--- a/sal/qa/OStringBuffer/rtl_String_Utils.cxx
+++ /dev/null
@@ -1,211 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
-#
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
-#*************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <math.h>
-#include <stdlib.h>
-
-#ifndef _SAL_TYPES_H_
- #include <sal/types.h>
-#endif
-
-#ifndef _RTL_USTRING_H_
- #include <rtl/ustring.h>
-#endif
-
-#ifndef _RTL_STRING_HXX_
- #include <rtl/string.hxx>
-#endif
-
-#ifndef _RTL_STRING_UTILS_CONST_H_
- #include <rtl_String_Utils_Const.h>
-#endif
-
-using ::rtl::OString;
-sal_uInt32 AStringLen( const sal_Char *pAStr )
-{
- sal_uInt32 nStrLen = 0;
-
- if ( pAStr != NULL )
- {
- const sal_Char *pTempStr = pAStr;
-
- while( *pTempStr )
- {
- pTempStr++;
- } // while
-
- nStrLen = (sal_uInt32)( pTempStr - pAStr );
- } // if
-
- return nStrLen;
-} // AStringLen
-/* disable assignment within condition expression */
-#ifdef WNT
-#pragma warning( disable : 4706 )
-#endif
-sal_Char* cpystr( sal_Char* dst, const sal_Char* src )
-{
- const sal_Char* psrc = src;
- sal_Char* pdst = dst;
-
- while( (*pdst++ = *psrc++) ) {}
-
- return dst;
-}
-
-sal_Char* cpynstr( sal_Char* dst, const sal_Char* src, sal_uInt32 cnt )
-{
-
- const sal_Char* psrc = src;
- sal_Char* pdst = dst;
- sal_uInt32 len = cnt;
- sal_uInt32 i;
-
- if ( len >= AStringLen(src) )
- {
- return( cpystr( dst, src ) );
- }
-
- // copy string by char
- for( i = 0; i < len; i++ )
- *pdst++ = *psrc++;
- *pdst = '\0';
-
- return ( dst );
-}
-
-//------------------------------------------------------------------------
-sal_Bool cmpstr( const sal_Char* str1, const sal_Char* str2, sal_uInt32 len )
-{
- const sal_Char* pBuf1 = str1;
- const sal_Char* pBuf2 = str2;
- sal_uInt32 i = 0;
-
- while ( (*pBuf1 == *pBuf2) && i < len )
- {
- (pBuf1)++;
- (pBuf2)++;
- i++;
- }
- return( i == len );
-}
-//-----------------------------------------------------------------------
-sal_Bool cmpstr( const sal_Char* str1, const sal_Char* str2 )
-{
- const sal_Char* pBuf1 = str1;
- const sal_Char* pBuf2 = str2;
- sal_Bool res = sal_True;
-
- while ( (*pBuf1 == *pBuf2) && *pBuf1 !='\0' && *pBuf2 != '\0')
- {
- (pBuf1)++;
- (pBuf2)++;
- }
- if (*pBuf1 == '\0' && *pBuf2 == '\0')
- res = sal_True;
- else
- res = sal_False;
- return (res);
-}
-//------------------------------------------------------------------------
-sal_Bool cmpustr( const sal_Unicode* str1, const sal_Unicode* str2, sal_uInt32 len )
-{
- const sal_Unicode* pBuf1 = str1;
- const sal_Unicode* pBuf2 = str2;
- sal_uInt32 i = 0;
-
- while ( (*pBuf1 == *pBuf2) && i < len )
- {
- (pBuf1)++;
- (pBuf2)++;
- i++;
- }
- return( i == len );
-}
-
-//-----------------------------------------------------------------------
-sal_Bool cmpustr( const sal_Unicode* str1, const sal_Unicode* str2 )
-{
- const sal_Unicode* pBuf1 = str1;
- const sal_Unicode* pBuf2 = str2;
- sal_Bool res = sal_True;
-
- while ( (*pBuf1 == *pBuf2) && *pBuf1 !='\0' && *pBuf2 != '\0')
- {
- (pBuf1)++;
- (pBuf2)++;
- }
- if (*pBuf1 == '\0' && *pBuf2 == '\0')
- res = sal_True;
- else
- res = sal_False;
- return (res);
-}
-
-sal_Char* createName( sal_Char* dst, const sal_Char* meth, sal_uInt32 cnt )
-{
- sal_Char* pdst = dst;
- sal_Char nstr[16];
- sal_Char* pstr = nstr;
- rtl_str_valueOfInt32( pstr, cnt, 10 );
-
- cpystr( pdst, meth );
- cpystr( pdst+ AStringLen(meth), "_" );
-
- if ( cnt < 100 )
- {
- cpystr(pdst + AStringLen(pdst), "0" );
- }
- if ( cnt < 10 )
- {
- cpystr(pdst + AStringLen(pdst), "0" );
- }
-
- cpystr( pdst + AStringLen(pdst), nstr );
- return( pdst );
-}
-
-//------------------------------------------------------------------------
-
-static inline sal_Int32 ACharToUCharCompare( const sal_Unicode *pUStr,
- const sal_Char *pAStr
- )
-{
- sal_Int32 nCmp = 0;
- sal_Int32 nUChar = (sal_Int32)*pUStr;
- sal_Int32 nChar = (sal_Int32)((unsigned char)*pAStr);
-
- nCmp = nUChar - nChar;
-
- return nCmp;
-} // ACharToUCharCompare
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/OStringBuffer/rtl_String_Utils.hxx b/sal/qa/OStringBuffer/rtl_String_Utils.hxx
deleted file mode 100644
index 3eb160d7e..000000000
--- a/sal/qa/OStringBuffer/rtl_String_Utils.hxx
+++ /dev/null
@@ -1,89 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
-#
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
-#*************************************************************************/
-
-#ifndef _RTL_STRING_UTILS_HXX_
-#define _RTL_STRING_UTILS_HXX_
-
-#ifdef __cplusplus
-
-#include <math.h>
-#include <stdlib.h>
-
-#ifndef _SAL_TYPES_H_
- #include <sal/types.h>
-#endif
-
-#ifndef _RTL_USTRING_H_
- #include <rtl/ustring.h>
-#endif
-
-#ifndef _RTL_STRING_HXX_
- #include <rtl/string.hxx>
-#endif
-
-sal_Char* cpystr( sal_Char* dst, const sal_Char* src );
-sal_Char* cpynstr( sal_Char* dst, const sal_Char* src, sal_uInt32 cnt );
-
-sal_Bool cmpstr( const sal_Char* str1, const sal_Char* str2, sal_uInt32 len );
-sal_Bool cmpstr( const sal_Char* str1, const sal_Char* str2 );
-sal_Bool cmpustr( const sal_Unicode* str1, const sal_Unicode* str2, sal_uInt32 len );
-sal_Bool cmpustr( const sal_Unicode* str1, const sal_Unicode* str2 );
-
-sal_Char* createName( sal_Char* dst, const sal_Char* src, sal_uInt32 cnt );
-
-
-sal_uInt32 AStringLen( const sal_Char *pAStr );
-
-//------------------------------------------------------------------------
-
-sal_Bool AStringNIsValid( const sal_Char *pAStr,
- const sal_uInt32 nStrLen
- );
-
-//------------------------------------------------------------------------
-
-sal_Int32 AStringToUStringCompare( const sal_Unicode *pUStr,
- const sal_Char *pAStr
- );
-
-sal_Int32 AStringToUStringNCompare( const sal_Unicode *pUStr,
- const sal_Char *pAStr,
- const sal_uInt32 nAStrCount
- );
-
-#endif /* __cplusplus */
-
-#endif /* _RTL_STRING_UTILS_HXX */
-
-
-
-
-
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/OStringBuffer/rtl_String_Utils_Const.h b/sal/qa/OStringBuffer/rtl_String_Utils_Const.h
deleted file mode 100644
index f6488ad9e..000000000
--- a/sal/qa/OStringBuffer/rtl_String_Utils_Const.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_STRING_UTILS_CONST_H_
-#define _RTL_STRING_UTILS_CONST_H_
-
-#ifndef _SAL_TYPES_H_
- #include <sal/types.h>
-#endif
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-static const sal_Int32 kErrCompareAStringToUString = -2;
-static const sal_Int32 kErrCompareNAStringToUString = -3;
-static const sal_Int32 kErrCompareAStringToRTLUString = -4;
-static const sal_Int32 kErrCompareNAStringToRTLUString = -5;
-static const sal_Int32 kErrAStringToByteStringCompare = -6;
-static const sal_Int32 kErrAStringToByteStringNCompare = -7;
-static const sal_Int32 kErrCompareAStringToString = -8;
-static const sal_Int32 kErrCompareNAStringToString = -9;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RTL_STRING_UTILS_CONST_H_ */
-
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/buildall.pl b/sal/qa/buildall.pl
deleted file mode 100644
index 8adc9f19c..000000000
--- a/sal/qa/buildall.pl
+++ /dev/null
@@ -1,502 +0,0 @@
-eval 'exec perl -wS $0 ${1+"$@"}'
- if 0;
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#************************************************************************
-
-# #!/usr/bin/perl -w
-
-use strict;
-use POSIX;
-use Cwd;
-use File::Path;
-use English;
-use Cwd 'chdir';
-
-my $cwd = getcwd();
-
-# Prototypes
-sub initEnvironment();
-sub main($);
-sub checkForKillobj();
-sub checkARGVFor($);
-
-my $g_sTempDir = "";
-my $FS = "";
-
-my $nGlobalFailures = 0;
-
-my %libraryRunThrough;
-my $bBuildAll = 0;
-
-# LLA: this does not exist, ... use a little bit simpler method.
-# use File::Temp qw/ :POSIX /;
-
-my $params;
-my $param;
-
-if ($#ARGV < 0)
-{
- $params = "test "; # debug=t TESTOPTADD=\"-boom\" TESTOPTADD=\"-noerroronexit\"
-
- # my $nNumber = 55;
- # my $sLocalParams = $params;
- # $sLocalParams =~ s/test\s/test$nNumber /;
- # print "Testparams: $sLocalParams\n";
- # exit 1;
- print "Default ";
-}
-else
-{
- # special hack!
- if (checkForKillobj() == 1)
- {
- $params = "killobj";
- }
- elsif (checkARGVFor("buildall") == 1)
- {
- $bBuildAll = 1;
- $params = "test";
- }
- else
- {
- # always run test, but envelope the other in 'TESTOPT="..."'
- $params = "test TESTOPT=\"";
-
- foreach $param (@ARGV)
- {
- $params = $params . " " . $param;
- }
- $params = $params . "\"";
- }
- print "User defined ";
-}
-
-print "parameters for dmake: $params\n";
-
-initEnvironment();
-main($params);
-
-# ------------------------------------------------------------------------------
-sub checkARGVFor($)
-{
- my $sCheckValue = shift;
- my $sLocalParam;
- my $nBackValue = 0;
- foreach $sLocalParam (@ARGV)
- {
- if ($sLocalParam =~ /^${sCheckValue}$/)
- {
- $nBackValue = 1;
- last;
- }
- }
- return $nBackValue;
-}
-# ------------------------------------------------------------------------------
-sub checkForKillobj()
-{
- my $sLocalParam;
- my $nBackValue = 0;
- foreach $sLocalParam (@ARGV)
- {
- if ($sLocalParam =~ /^killobj$/)
- {
- $nBackValue = 1;
- last;
- }
- }
- return $nBackValue;
-}
-
-# ------------------------------------------------------------------------------
-sub initEnvironment()
-{
- my $gui = $ENV{GUI};
- # no error output in forms of message boxes
- $ENV{'DISABLE_SAL_DBGBOX'}="t";
-
- SWITCH: {
- if ( $gui eq "WNT" ) {
- $FS = "\\";
- $g_sTempDir = $ENV{TMP} ? "$ENV{TMP}${FS}" : "c:${FS}tmp${FS}";
- last SWITCH;
- }
- if ( $gui eq "WIN" ) {
- $FS = "\\";
- $g_sTempDir = $ENV{TMP} ? "$ENV{TMP}${FS}" : "c:${FS}tmp${FS}";
- last SWITCH;
- }
- if ( $gui eq "UNX" ) {
- $FS = "/";
- $g_sTempDir = $ENV{TMP} ? "$ENV{TMP}${FS}" : "${FS}tmp${FS}";
- last SWITCH;
- }
- print STDERR "buildall.pl: unkown platform\n";
- exit(1);
- }
-}
-# ------------------------------------------------------------------------------
-
-sub trim($)
-{
- my $oldstr = shift;
- $oldstr =~ s/^\s*(.*?)\s*$/$1/;
- return $oldstr;
-}
-
-# ------------------------------------------------------------------------------
-sub getLibName($)
-{
- my $sFile = shift;
- if ($OSNAME eq "linux" || $OSNAME eq "solaris")
- {
- return "lib" . $sFile . ".so";
- }
- if ($OSNAME eq "MSWin32")
- {
- return $sFile . ".dll";
- }
- return $sFile;
-}
-# ------------------------------------------------------------------------------
-sub giveOutAll($)
-{
- my $sFailureFile = shift;
- local *IN;
- if (! open(IN, $sFailureFile))
- {
- print "ERROR: Can't open output file $sFailureFile\n";
- return;
- }
- my $line;
- while ($line = <IN>)
- {
- chomp($line);
- print "$line\n";
- }
- close(IN);
-}
-# ------------------------------------------------------------------------------
-sub giveOutFailures($$)
-{
- my $sTest = shift;
- my $sFailureFile = shift;
-
- my $bBegin = 0;
- my $nFailures = 0;
-
- my $line;
- local *IN;
- if (! open(IN, $sFailureFile))
- {
- print "ERROR: Can't open output file $sFailureFile\n";
- return;
- }
-
- my $bStartUnitTest = 0;
- while ($line = <IN>)
- {
- chomp($line);
- if ( $line =~ /^- start unit test/)
- {
- $bStartUnitTest = 1;
- }
- }
- close(IN);
-
- if ($bStartUnitTest == 0)
- {
- print "\nFailure: Unit test not started. Maybe compiler error.\n";
- giveOutAll($sFailureFile);
- $nFailures++;
- # exit(1);
- }
- else
- {
- open(IN, $sFailureFile);
- # check if testshl2 was started
- while ($line = <IN>)
- {
- chomp($line);
-
- # handling of the states
- if ( $line =~ /^\# -- BEGIN:/)
- {
- $bBegin = 1;
- }
- elsif ( $line =~ /^\# -- END:/)
- {
- $bBegin = 0;
- }
- else
- {
- if ($bBegin == 1)
- {
- print "$line\n";
- $nFailures++;
- }
- }
- }
- close(IN);
- }
-
- if ($nFailures > 0)
- {
- # extra return for a better output
- print "\nFailures occurred: $nFailures\n";
- print "The whole output can be found in $sFailureFile\n";
- print "\n";
-
- # Statistics
- $nGlobalFailures += $nFailures;
- }
-}
-# ------------------------------------------------------------------------------
-sub printOnLibrary($)
-{
- my $sTarget = shift;
- print " on library: " . getLibName($sTarget);
-}
-# ------------------------------------------------------------------------------
-sub runASingleTest($$)
-{
- my $sTarget = shift;
- my $params = shift;
- my $dmake = "dmake $params";
-
- my $sLogPath = $g_sTempDir . "dmake_out_$$";
- mkdir($sLogPath);
- my $sLogFile = $sLogPath . "/" . $sTarget . ".out";
-
- # due to the fact, a library name in one project is distinct, we should remember all already run through libraries and
- # supress same libraries, if they occur one more.
-
- if (exists $libraryRunThrough{getLibName($sTarget)})
- {
- # already done
- return;
- }
- printOnLibrary($sTarget);
- print "\n";
-
-# redirect tcsh ">&" (stdout, stderr)
-# redirect 4nt ">" (stdout), "2>" (stderr)
-# print "OSNAME: $OSNAME\n";
-# LLA: redirect check canceled, seems to be not work as I want.
-# my $redirect = "";
-# if ($OSNAME eq "linux" || $OSNAME eq "solaris")
-# {
-# # print "UNIX, linux or solaris\n";
-# $redirect = '>>&!' . $sLogFile;
-# }
-# else
-# {
-# if ($OSNAME eq "MSWin32")
-# {
-# # test
-# $redirect = ">>$sLogFile 2>>$sLogFile";
-# }
-# }
-# print "$dmake $redirect\n";
-
-# LLA: so system does also not work as I imagine
-# system("$dmake $redirect");
-
-# LLA: next check, use open with pipe
-
- local *LOGFILE;
- if (! open( LOGFILE, '>' . "$sLogFile"))
- {
- print "ERROR: can't open logfile: $sLogFile\n";
- return;
- }
-
- my $line;
- local *DMAKEOUTPUT;
- if (! open( DMAKEOUTPUT, "$dmake 2>&1 |"))
- {
- print "ERROR: can't open dmake\n";
- return;
- }
- while ($line = <DMAKEOUTPUT>)
- {
- chomp($line);
- print LOGFILE "$line\n";
- }
- close(DMAKEOUTPUT);
- close(LOGFILE);
-
- giveOutFailures($sTarget, $sLogFile);
-
- $libraryRunThrough{getLibName($sTarget)} = "done";
-}
-
-# ------------------------------------------------------------------------------
-sub interpretLine($)
-{
- my $line = shift;
-
- my $path;
- my $file;
-
- if ($line =~ /^\#/ || $line =~ /^$/)
- {
- # remark or empty line
- }
- else
- {
- # special format, $file == $path
- ($path, $file) = split(/;/, $line);
- if (! $file)
- {
- $file = $path;
- }
- $file = trim($file);
- $path = trim($path);
- }
- return $path, $file;
-}
-# ------------------------------------------------------------------------------
-sub runTestsOnPath($$$)
-{
- my $path = shift;
- my $file = shift;
- my $params = shift;
-
- # empty values
- if (!$path || $path eq "")
- {
- # DBG: print "empty path '$path'\n";
- return;
- }
- if (!$file || $file eq "")
- {
- # DBG: print "empty file '$file'\n";
- return;
- }
-
-# print "File: '$file', Path: '$path'\n";
- print "Work in directory: $path\n";
- my $newpath = $cwd . $FS . $path;
-# print "chdir to $newpath\n";
-
- my $error = chdir($newpath);
- cwd();
-
- # run through the hole makefile.mk and check if SHL<D>TARGET = ... exist, for every target call "dmake test<D>"
-
- local *MAKEFILE_MK;
- if (! open(MAKEFILE_MK, "makefile.mk"))
- {
- print "ERROR: can't open makefile.mk in path: $newpath\n";
- print "please check your libs2test.txt file in qa directory.\n";
- }
- my $line;
- my $nNumber;
- my $sTarget;
- my $sLocalParams;
-
- while($line = <MAKEFILE_MK>)
- {
- chomp($line);
-
- if ($line =~ /SHL(\d)TARGET=(.*)/)
- {
- $nNumber = $1;
- $sTarget = trim($2);
-
- # DBG: print "test$number is lib: $target\n";
- $sLocalParams = $params . " "; # append a whitespace, so we can check if 'test' exist without additional digits
- $sLocalParams =~ s/test\s/test$nNumber/;
- # DBG: print "$sLocalParams\n";
- if ($bBuildAll == 1 ||
- $file eq $sTarget)
- {
- # print "runASingleTest on Target: $sTarget 'dmake $sLocalParams'\n";
- runASingleTest($sTarget, $sLocalParams);
- }
- else
- {
- # printOnLibrary($sTarget);
- # print " suppressed, not in libs2test.txt\n";
- }
- }
- }
- close(MAKEFILE_MK);
-}
-
-# ------------------------------------------------------------------------------
-
-sub main($)
-{
- my $params = shift;
-# my $sLogFile = shift; # "buildall_$$.out";
- local *LIBS2TEST;
- my $filename = "libs2test.txt";
- my $line;
-
- open(LIBS2TEST, $filename) || die "can't open $filename\n";
-
- while($line = <LIBS2TEST>)
- {
- chomp($line);
- # DOS Hack grrrr...
- while ($line =~ /
-$/)
- {
- $line = substr($line, 0, -1);
- }
-
- # print "$line\n";
- my $path;
- my $file;
- ($path, $file) = interpretLine($line);
- runTestsOnPath($path, $file, $params);
- }
- close(LIBS2TEST);
-
- print "\nComplete logging information will be found in dir: ".$g_sTempDir."dmake_out_$$/\n";
-
- if ($nGlobalFailures > 0)
- {
- print "\nFailures over all occurred: $nGlobalFailures\n";
- print "\nPASSED FAILED.\n";
- }
- else
- {
- print "\nPASSED OK.\n";
- }
-}
-
-# ------------------------------------------------------------------------------
-
-# TODO:
-# -verbose
-# -fan - \ | /
-
-# END!
-
diff --git a/sal/qa/cppunit_local.mk b/sal/qa/cppunit_local.mk
deleted file mode 100644
index eaa662877..000000000
--- a/sal/qa/cppunit_local.mk
+++ /dev/null
@@ -1,34 +0,0 @@
-# Version: MPL 1.1 / GPLv3+ / LGPLv3+
-#
-# The contents of this file are subject to the Mozilla Public License Version
-# 1.1 (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.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-# for the specific language governing rights and limitations under the
-# License.
-#
-# The Initial Developer of the Original Code is
-# Red Hat, Inc.
-# Portions created by the Initial Developer are Copyright (C) 2011 the
-# Initial Developer. All Rights Reserved.
-#
-# Contributor(s): David Tardon <dtardon@redhat.com>
-#
-# Alternatively, the contents of this file may be used under the terms of
-# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
-# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
-# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
-# instead of those above.
-
-# cppunittester is built in this module; cannot use delivered version
-# this should be kept in sync with the definition in solenv/inc/settings.mk
-.IF "$(CROSS_COMPILING)"=="YES"
-CPPUNITTESTER=\#
-.ELSE
-CPPUNITTESTER = $(AUGMENT_LIBRARY_PATH_LOCAL) $(GDBCPPUNITTRACE) $(VALGRINDTOOL) $(BIN)/cppunittester
-.ENDIF
-
-.INCLUDE : _cppunit.mk
diff --git a/sal/qa/export.map b/sal/qa/export.map
deleted file mode 100755
index 0dbbcc5a7..000000000
--- a/sal/qa/export.map
+++ /dev/null
@@ -1,34 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-UDK_3_0_0 {
- global:
- cppunitTestPlugIn;
-
- local:
- *;
-};
diff --git a/sal/qa/helper/gcov/build_coverage b/sal/qa/helper/gcov/build_coverage
deleted file mode 100755
index 8948789a8..000000000
--- a/sal/qa/helper/gcov/build_coverage
+++ /dev/null
@@ -1,23 +0,0 @@
-
-# this is a helper, to build sal with the right compiler parameters
-# IMPORTANT, this works only within Linux
-
-if ( `uname` == "Linux" ) then
- echo "running on Linux Intel, ok."
-
- build killobj
-
- # setenv OLDCFLAGS $ENVCFLAGS
-
- setenv ENVCFLAGS "-fprofile-arcs -ftest-coverage"
-
- build
-
- # setenv ENVCFLAGS $OLDCFLAGS
-
-else
-
- echo "Sorry, gcov works only within Linux environment."
-
-endif
-
diff --git a/sal/qa/helper/gcov/deprecated.txt b/sal/qa/helper/gcov/deprecated.txt
deleted file mode 100644
index a46a94acc..000000000
--- a/sal/qa/helper/gcov/deprecated.txt
+++ /dev/null
@@ -1,213 +0,0 @@
-# contain all functions, which are mark as deprecated
-# this function will removed from the allexportlist
-# Format of a line MUST be / (.*);/
-
- rtl_ustr_trim;
- rtl_str_trim;
-
-# since 16.9.2003
-# Function List:
-# A. deprecated functions:
-# 1) Profile class and all its sub C API:
- osl_openProfile;
- osl_closeProfile;
- osl_flushProfile;
- osl_readProfileString;
-
- osl_readProfileBool;
- osl_readProfileIdent;
- osl_writeProfileString;
-
- osl_writeProfileBool;
- osl_writeProfileIdent;
- osl_removeProfileEntry;
-
- osl_getProfileSectionEntries;
- osl_getProfileSections;
-
-# 2) VolumeDevice class and all this sub C API:
- osl_unmountVolumeDevice;
- osl_automountVolumeDevice;
- osl_releaseVolumeDeviceHandle;
-
- osl_acquireVolumeDeviceHandle;
- osl_getVolumeDeviceMountPath;
-
-# 3) in FileBase class:
- osl_getCanonicalName;
-
-# B. untested functions:
-# functions need Client/Server model and blocking mode of transmission. some of the functions
-# can not run through on testshl2 env while the same code can run successfully in normal seperate
-# files.
-# 1) in DatagramSocket class:
-# osl_receiveFromSocket;
-# osl_sendToSocket;
-
-# 2) in StreamSocket class:
-# osl_readSocket;
-# osl_writeSocket;
-# osl_receiveSocket;
-# osl_sendSocket;
-
-# 3) in Socket class:
- osl_isExceptionPending;
-# osl_shutdownSocket;
-
-# 4) in Pipe class:
-# osl_acceptPipe;
-
-# 5) in StreamPipe class:
-# osl_readPipe;
-# osl_writePipe;
-# osl_receivePipe;
-# osl_sendPipe;
-
-#C. unreachable functions
-# (*)in .map file but does not appear in.hxx header file thus unreachable,
-# mostly for internal use, can not be reached by accessing class, so need
-# not be tested.
-# 1) in file module*:
- osl_abbreviateSystemPath;
-
-# 2) in socket module*:
- osl_addToSocketSet;
- osl_clearSocketSet;
- osl_createSocketSet;
- osl_destroySocketSet;
- osl_isInSocketSet;
- osl_removeFromSocketSet
-
- osl_createHostAddrByName;
- osl_createHostAddrByAddr;
-
- osl_createHostAddr;
- osl_copyHostAddr;
- osl_destroyHostAddr;
- osl_getHostnameOfHostAddr;
- osl_getSocketAddrOfHostAddr;
- osl_createInetBroadcastAddr;
-
- osl_demultiplexSocketEvents;
- osl_getDottedInetAddrOfSocketAddr;
- osl_getFamilyOfSocketAddr;
-
-# 3) in thread module*:
- osl_createThread;
- osl_setThreadTextEncoding;
-
-# or (#)does not wrapper into a class, only in C API. does not in our Class
-# check list.
-# 1) all diagnose module#:
- osl_breakDebug;
- osl_assertFailedLine;
- osl_trace;
- osl_reportError;
-
- osl_setDebugMessageFunc;
-
-# 2) all signal module#:
- osl_addSignalHandler;
- osl_removeSignalHandler;
- osl_raiseSignal;
-
-# 3) all time module#:
- osl_getSystemTime;
- osl_getDateTimeFromTimeValue;
-
- osl_getTimeValueFromDateTime;
- osl_getLocalTimeFromSystemTime;
-
- osl_getSystemTimeFromLocalTime;
- osl_getGlobalTimer;
-
-# 4) all process module#:
- osl_executeProcess;
- osl_executeProcess_WithRedirectedIO;
-
- osl_terminateProcess;
- osl_getProcess;
-
- osl_freeProcessHandle;
- osl_joinProcess;
- osl_joinProcessWithTimeout;
-
- osl_getProcessInfo;
- osl_getExecutableFile;
- osl_getCommandArgCount;
-
- osl_getCommandArg;
- osl_getEnvironment;
- osl_getProcessWorkingDir;
-
- osl_getProcessLocale;
- osl_setProcessLocale;
- osl_sendResourcePipe;
-
- osl_receiveResourcePipe;
-
-# 5) all util module#:
- osl_getEthernetAddress;
-
-
-
-###
-# LLA:
-# this functions are not deprecated, they only marked as deprecated, to say that
-# there is no test need.
-###
- rtl_zeroMemory;
- rtl_fillMemory;
- rtl_copyMemory;
- rtl_moveMemory;
- rtl_compareMemory;
- rtl_findInMemory;
-
-# LLA:
-# Marked as deprecated by Stephan Bergmann
-
- rtl_byte_sequence_reference2One;
- rtl_byte_sequence_realloc;
- rtl_byte_sequence_acquire;
- rtl_byte_sequence_release;
- rtl_byte_sequence_construct;
- rtl_byte_sequence_constructNoDefault;
- rtl_byte_sequence_constructFromArray;
- rtl_byte_sequence_assign;
- rtl_byte_sequence_equals;
- rtl_byte_sequence_getConstArray;
- rtl_byte_sequence_getLength;
-
-# LLA:
-# old test environment need no extra test
- rtl_tres_create;
- rtl_tres_destroy;
-
-# LLA:
-# found in source code, marked as deprecated
-# rtl_locale_getDefault;
-# rtl_locale_setDefault;
-
-# LLA:
-# marked as deprecated, due to the fact there is no access from outside
-# so this functions are not really accessable
-# They are used in rtl/source/locale.c
- rtl_hashentry_destroy;
- rtl_hashfunc;
- rtl_hashtable_add;
- rtl_hashtable_destroy;
- rtl_hashtable_find;
- rtl_hashtable_grow;
- rtl_hashtable_init;
-
-# LLA:
-# marked as deprecated by Joachim Lingner 20040414
- rtl_moduleCount_acquire;
- rtl_moduleCount_release;
- rtl_moduleCount_canUnload;
- rtl_registerModuleForUnloading;
- rtl_unregisterModuleForUnloading;
- rtl_unloadUnusedModules;
- rtl_addUnloadingListener;
- rtl_removeUnloadingListener;
-
diff --git a/sal/qa/helper/gcov/gcov_all b/sal/qa/helper/gcov/gcov_all
deleted file mode 100755
index dad1f736c..000000000
--- a/sal/qa/helper/gcov/gcov_all
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-# $Id: gcov_all,v 1.4 2005-11-02 17:23:43 kz Exp $
-# This helper run lists all c and cxx files from selected directories.
-
-# PRJ points to the flat project directory
-PRJ='../../..'
-
-# selected directories
-FILES=`/bin/ls $PRJ/osl/unx/*.c $PRJ/osl/unx/*.cxx $PRJ/rtl/source/*.c $PRJ/rtl/source/*.cxx $PRJ/osl/all/*.c $PRJ/osl/all/*.cxx $PRJ/textenc/*.c`
-
-# Use gcov_filter on every c/cxx file.
-for file in $FILES; do
- # echo $file
- perl gcov_filter.pl -o $PRJ/unxlngi6/slo -i $PRJ/util/sal.map $file $*
-done
diff --git a/sal/qa/helper/gcov/gcov_filter.pl b/sal/qa/helper/gcov/gcov_filter.pl
deleted file mode 100755
index fc3348849..000000000
--- a/sal/qa/helper/gcov/gcov_filter.pl
+++ /dev/null
@@ -1,427 +0,0 @@
-#!/usr/bin/perl -w
-#
-# $Id: gcov_filter.pl,v 1.4 2005-11-02 17:23:57 kz Exp $
-#
-
-# GCOV_FILTER
-#
-# Helper to filter the gcov output.
-# Handle a compare between the hole gcov output and a given select list of exported functions.
-#
-# Q: Why perl?
-# A: regexp ;-)
-#
-
-
-use strict;
-use File::Basename;
-use Getopt::Long;
-
-# Global constants
-our $version_info = 'gcov helper $Revision: 1.4 $ ';
-our $help; # Help option flag
-our $version; # Version option flag
-our $cwd = `pwd`; # current working directory
-chomp($cwd);
-# our $tool_dir = dirname($0);
-# our $tool_file = basename($0);
-
-# our $output_filename;
-our $input_allfunc;
-# our $input_filename;
-
-our $allfuncinfo; # allfuncinfo option flag
-our $showallfunc; # showallfunc option flag
-our $no_percentage; # no_percentage option flag
-our $donotfilter; # donotfilter option flag
-our $objectdir;
-
-# Prototypes
-sub print_usage(*);
-sub read_gcov_function_file($);
-sub get_PRJ_from_makefile_mk();
-# sub read_ExportedFunctionList();
-sub read_List($);
-
-# if (! ($tool_dir =~ /^\/(.*)$/))
-# {
-# $tool_dir = "$cwd/$tool_dir";
-# }
-
-# Parse command line options
-if (!GetOptions( "input-allfunc=s" => \$input_allfunc,
- "allfuncinfo" => \$allfuncinfo,
- "showallfunc" => \$showallfunc,
- "no-percentage" => \$no_percentage,
- "do-not-filter" => \$donotfilter,
- "objectdir=s" => \$objectdir,
- "help" => \$help,
- "version" => \$version
- ))
-{
- print_usage(*STDERR);
- exit(1);
-}
-
-# Check for help option
-if ($help)
-{
- print_usage(*STDOUT);
- exit(0);
-}
-
-# Check for version option
-if ($version)
-{
- print("$version_info\n");
- exit(0);
-}
-
-# check if enough parameters
-if ($#ARGV < 0)
-{
- print("No input filename specified\n");
- print_usage(*STDERR);
- exit(1);
-}
-
-# special case:
-# the filename contains a . or '/' at the beginning
-my $startdir = $ARGV[0];
-if ( ($startdir =~ /^\.\./) ||
- ($startdir =~ /^\//) )
-{
- $startdir = dirname($startdir);
- # print("start directory is $startdir\n");
- # chdir $startdir;
-}
-else
-{
- $startdir = "";
-}
-
-# check for sal.map
-if ( ! $input_allfunc )
-{
- # this is a try, to get the project directory form a found makefile.mk
- # may work, but fails due to some disunderstandings may be problems in perl :-(
- my $sDir = get_PRJ_from_makefile_mk();
- # chomp($sDir);
- # HDW: print("PRJ is $dir\n");
-
- # $sDir2 = "../..";
- my $sMapFile = "$sDir" . "/util/sal.map";
- # $sMapFile = "$sDir2" . "/util/sal.map";
-
- if ( -e $sMapFile)
- {
- $input_allfunc = $sMapFile;
- }
- else
- {
- print("No input-allfunc filename specified\n");
- print_usage(*STDERR);
- exit(1);
- }
-}
-our @aDeprecatedList;
-our @aExportedFunctionList;
-# read_ExportedFunctionList();
-@aExportedFunctionList = read_List($input_allfunc);
-@aDeprecatedList = read_List("deprecated.txt");
-
-if ($allfuncinfo)
-{
- print("Count of all functions: $#aExportedFunctionList\n");
- exit(0);
-}
-
-if ($showallfunc)
-{
- my $func;
- foreach $func (@aExportedFunctionList)
- {
- print("$func\n");
- }
- exit(0);
-}
-
-# back to current directory
-# this chdir was for a before chdir (in $startdir creation) but due to the fact,
-# that the get_PRJ_from_makefile_mk works but the after concat of strings not, this
-# chdir is also remarked.
-# chdir $cwd;
-
-# HWD: print "count of param: \n";
-# $input_filename = $ARGV[0];
-
-my $nCount = $#ARGV + 1;
-my $nIdx;
-
-for ($nIdx = 0; $nIdx < $nCount ; ++$nIdx)
-{
- my $file = $ARGV[$nIdx];
- # print("processing: $file\n");
-
- # change directory, to the current file, due to the fact, that we may be need to call gcov
- # and gcov will create some extra files, like *.gcov near the current file.
- # if ( $startdir ne "" )
- # {
- # chdir $startdir;
- # $file = basename($file);
- # }
-
- my $OBJECTS="";
- if ($objectdir)
- {
- $OBJECTS = "-o " . $objectdir;
- }
-
- if (! ($file =~ /\.f$/ ))
- {
- my $filef = "$file.f";
- # if (! -e $filef )
- # {
- # print "gcov $OBJECTS -l -f $file >$filef\n";
- my $blah = `gcov $OBJECTS -n -f $file >$filef`;
- # }
- $file = $filef;
- }
- read_gcov_function_file($file);
-
- # go back to old directory, because it's possible to change relative to an other directory.
- if ( $startdir ne "" )
- {
- chdir $cwd;
- }
-}
-
-# print "$tool_dir\n";
-# print "all is right\n";
-exit(0);
-
-
-# --------------------------------------------------------------------------------
-# Read the map file, which should contain all exported functions.
-sub read_List($)
-{
- local *INPUT_HANDLE;
- my $filename = $_[0];
- my @list;
- my $line = "";
- open(INPUT_HANDLE, $filename);
- # or die("ERROR: cannot open $filename!\n");
-
- while ($line = <INPUT_HANDLE>)
- {
- chomp($line);
- # reg exp: [spaces]functionname[semicolon][line end]
- if ($line =~ /^\s+(\w*);$/)
- {
- # print("$1\n");
- push(@list, $1);
- }
- }
- close(INPUT_HANDLE);
- return @list;
-}
-
-# --------------------------------------------------------------------------------
-# Helper function, test is a given value is found in the global exported function list.
-# the given value format could be a simple function name
-# or a prototype
-# e.g.
-# osl_getSystemPathFromFileURL
-# or
-# void getSystemPathFromFileURL( const char* rtl_...)
-#
-sub contain_in_List($$)
-{
- my $func;
- my $value = $_[0];
- my $list = $_[1];
-
- if ($donotfilter)
- {
- return $value;
- }
-
- foreach $func (@$list) # (@aExportedFunctionList)
- {
- # first try, direct check
- if ($value eq $func)
- {
- # HWD: print("$value eq $func\n");
- return $value;
- }
-
- # value not found, second try, may be we found it if we search word wise.
- # helper, to insert a space after the word, before '('
- $value =~ s/\(/ \(/g;
- # may be here we should replace all white spaces by ' '
-
- # split by 'space'
- my @list = split(' ', $value);
- for(@list)
- {
- # HWD: print "$list[$n]\n";
- if ($_ eq $func)
- {
- # HWD: print ("found $func in $value\n");
- return $_;
- }
- }
- }
- # not found
- return "";
-}
-# --------------------------------------------------------------------------------
-# Read the gcov function (gcov -f) file
-# and compare line by line with the export function list
-# so we get a list of functions, which are only exported, and not all stuff.
-# sample of output
-# new gcov gcc 3.4 format
-sub read_gcov_function_file($)
-{
- local *INPUT_HANDLE;
- my $file = $_[0];
- my $line = "";
- open(INPUT_HANDLE, $file)
- or die("ERROR: cannot open $file!\n");
-
- while ($line = <INPUT_HANDLE>)
- {
- chomp($line);
- # sample line (for reg exp:)
- # 100.00% of 3 source lines executed in function osl_thread_init_Impl
- if ($line =~ /^Function \`(.*)\'$/ )
- {
- my $sFunctionName = $1;
- my $sPercentage;
- $line = <INPUT_HANDLE>;
- if ($line =~ /^Lines executed:(.*)% of/ )
- {
- $sPercentage = $1;
- }
- my $value = contain_in_List( $sFunctionName, \@aExportedFunctionList );
- if ($value)
- {
- my $isDeprecated = contain_in_List( $sFunctionName, \@aDeprecatedList );
- if ($isDeprecated)
- {
- # Function is deprecated, do not export it.
- }
- else
- {
- if ($no_percentage)
- {
- print("$value\n");
- }
- else
- {
- print("$sPercentage $value\n");
- }
- }
- }
- # push(@aExportedFunctionList, $1);
- }
- }
- close(INPUT_HANDLE);
-}
-
-# gcov format since gcc 3.3.6
-# 100.00% von 3 Zeilen in function helloworld ausgeführt
-# 100.00% von 5 Zeilen in function main ausgeführt
-# 100.00% von 8 Zeilen in file tmp.c ausgeführt
-sub read_gcov_function_file_old_gcc_3($)
-{
- local *INPUT_HANDLE;
- my $file = $_[0];
- my $line = "";
- open(INPUT_HANDLE, $file)
- or die("ERROR: cannot open $file!\n");
-
- while ($line = <INPUT_HANDLE>)
- {
- chomp($line);
- # sample line (for reg exp:)
- # 100.00% of 3 source lines executed in function osl_thread_init_Impl
- if ($line =~ /^(.*)% of \d+ source lines executed in function (.*)$/ )
- {
- my $value = contain_in_List( $2, \@aExportedFunctionList );
- if ($value)
- {
- my $isDeprecated = contain_in_List( $2, \@aDeprecatedList );
- if ($isDeprecated)
- {
- # Function is deprecated, do not export it.
- }
- else
- {
- if ($no_percentage)
- {
- print("$value\n");
- }
- else
- {
- print("$1 $value\n");
- }
- }
- }
- # push(@aExportedFunctionList, $1);
- }
- }
- close(INPUT_HANDLE);
-}
-
-# ------------------------------------------------------------------------------
-# helper, to read the PRJ value out of a makefile.mk file
-sub get_PRJ_from_makefile_mk()
-{
- local *INPUT_HANDLE;
- # my $startdir = @_[0];
- my $line = "";
- my $value = "";
- open(INPUT_HANDLE, "makefile.mk")
- or die("ERROR: cannot open makefile.mk\n");
-
- while ($line = <INPUT_HANDLE>)
- {
- chomp($line);
- # sample line
- # PRJ=
- # HWD: print("$line\n");
- if ($line =~ /^PRJ\s*=(.*)\s*$/)
- {
- # HWD: print("FOUND #####\n");
- $value = $1;
- chomp($value);
- $value =~ s/\$\//\//g;
- }
- }
- close(INPUT_HANDLE);
- return $value;
-}
-
-# ----------------------------------------------------------------------------
-sub print_usage(*)
-{
- local *HANDLE = $_[0];
- my $tool_name = basename($0);
-
- print(HANDLE <<END_OF_USAGE);
-
-Usage: $tool_name [OPTIONS] INPUTFILE
-
- -h, --help Print this help, then exit
- -v, --version Print version number, then exit
- -i, --input-allfunc FILENAME Map file, which contain all exported functions
- -s, --showallfunc Shows all exported functions then exit
- -a, --allfuncinfo Shows the count of all exported functions then quit
- -n, --no-percentage Suppress the output of the percent value for tested functions
- -d, --do-not-filter Show all functions, which gcov -f produce
-
-END_OF_USAGE
- ;
-}
-
diff --git a/sal/qa/helper/gcov/gcov_result.pl b/sal/qa/helper/gcov/gcov_result.pl
deleted file mode 100644
index 1731a965e..000000000
--- a/sal/qa/helper/gcov/gcov_result.pl
+++ /dev/null
@@ -1,232 +0,0 @@
-#!/usr/bin/perl -w
-#
-# $Id: gcov_result.pl,v 1.2 2003-06-11 16:36:30 vg Exp $
-#
-
-# GCOV_RESULT
-#
-# Helper, to interpret the result and put the result via html in a database.
-# Put into DB works via php.
-#
-# Q: Why perl?
-# A: regexp ;-)
-#
-
-use strict;
-use File::Basename;
-use Getopt::Long;
-use Time::localtime;
-
-our $version_info = 'gcov helper $Revision: 1.2 $ ';
-
-our $help; # Help option flag
-our $version; # Version option flag
-# our $infile;
-
-our $usedFunctions; # name of all functions filename, which have a value > 0
-our $nonusedFunctions; # name of all functions filename, which have a value == 0
-our $complete; # name of all functions filename, which have a value == 100
-our $incomplete; # name of all functions filename, which have a value > 0 && < 100
-
-our $environment;
-our $major;
-our $minor;
-our $cwsname;
-our $outputDir;
-
-# Prototypes
-sub print_usage(*);
-sub read_gcov_function_file($);
-sub create2DigitNumber($);
-
-# Parse command line options
-if (!GetOptions(
- "help" => \$help,
- "version" => \$version,
-
- "usedfunctions=s" => \$usedFunctions,
- "nonusedfunctions=s" => \$nonusedFunctions,
- "complete=s" => \$complete,
- "incomplete=s" => \$incomplete,
- "cwsname=s" => \$cwsname,
- "major=s" => \$major,
- "minor=s" => \$minor,
- "environment=s" => \$environment,
- "outputdir=s" => \$outputDir
- ))
-{
- print_usage(*STDERR);
- exit(1);
-}
-
-# Check for help option
-if ($help)
-{
- print_usage(*STDOUT);
- exit(0);
-}
-
-# Check for version option
-if ($version)
-{
- print("$version_info\n");
- exit(0);
-}
-
-# check if enough parameters
-# if ($#ARGV < 0)
-# {
-# print("No input filename specified\n");
-# print_usage(*STDERR);
-# exit(1);
-# }
-
-# ------------------------------------------------------------------------------
-
-my $sURL = "http://mahler.germany.sun.com/qadev/baselib/gcov_result_in_db_putter.php";
-
-my $next = "?";
-
-if ($complete)
-{
- my $result = `cat $complete | wc -l`;
- chomp($result);
- $result =~ / *(\d+)/;
- $sURL = $sURL . "$next" . "complete=$1";
- $next = "&";
-}
-
-if ($nonusedFunctions)
-{
- my $result = `cat $nonusedFunctions | wc -l`;
- chomp($result);
- $result =~ / *(\d+)/;
- $sURL = $sURL . "$next" . "notused=$1";
- $next = "&";
-}
-if ($usedFunctions)
-{
- my $result = `cat $usedFunctions | wc -l`;
- chomp($result);
- $result =~ / *(\d+)/;
- $sURL = $sURL . "$next" . "used=$1";
- $next = "&";
-}
-if ($incomplete)
-{
- my $result = `cat $incomplete | wc -l`;
- chomp($result);
- $result =~ / *(\d+)/;
- $sURL = $sURL . "$next" . "incomplete=$1";
- $next = "&";
-}
-
-if ($cwsname)
-{
- # qadev8
- $sURL = $sURL . "$next" . "cwsname=$cwsname";
- $next = "&";
-}
-if ($major)
-{
- # srx645
- $sURL = $sURL . "$next" . "major=$major";
- $next = "&";
-}
-if ($minor)
-{
- # m3s1
- $sURL = $sURL . "$next" . "minor=$minor";
- $next = "&";
-}
-
-if ($environment)
-{
- # unxlngi5
- $sURL = $sURL . "$next" . "environment=$environment";
- $next = "&";
-}
-
-my $year = localtime->year() + 1900;
-my $month = create2DigitNumber(localtime->mon() + 1);
-my $day = create2DigitNumber(localtime->mday());
-$sURL = $sURL . "$next" . "date=$year-$month-$day";
-$next = "&";
-
-my $output;
-if ($outputDir)
-{
- chomp($outputDir);
- $output = $outputDir;
-}
-
-# check if output ends with "/"
-if ( $output =~ /\/$/ )
-{
- print "Output name ends with '/'\n";
-}
-else
-{
- print "Output name does not end with '/'\n";
- $output = $output . "/";
-}
-$output = $output . "php_result.txt";
-
-my $result = `wget -O $output "$sURL"`;
-print "$sURL\n";
-
-print `cat $output`;
-
-
-# ----------------------------------------------------------------------------
-sub print_usage(*)
-{
- local *HANDLE = $_[0];
- my $tool_name = basename($0);
-
- print(HANDLE <<END_OF_USAGE);
-
-Usage: $tool_name [OPTIONS]
-
- -u, --usedfunctions count of all functions, which have a value > 0
- -n, --nonusedfunctions count of all functions, which have a value == 0
- -co, --complete count of all functions, which have a value == 100
- -i, --incomplete count of all functions, which have a value > 0 && < 100
-
- -cw, --cwsname set cwsname
- -ma, --major set major number
- -mi, --minor set minor number
- -e, --environment set environment
-
- -o, --outputdir set the directory, where to store the wget result
-
- -h, --help Print this help, then exit
- -v, --version Print version number, then exit
-
-END_OF_USAGE
- ;
-}
-# ------------------------------------------------------------------------------
-sub create2DigitNumber($)
-{
- my $digit = $_[0];
- my $str;
- my $nDigitLen = length $digit;
-
- if ($nDigitLen == 1)
- {
- $str = "0" . $digit;
- }
- else
- {
- if ($nDigitLen > 2)
- {
- $str = substr $digit, $nDigitLen - 2, 2;
- }
- else
- {
- $str = $digit;
- }
- }
- return $str;
-}
diff --git a/sal/qa/helper/gcov/gcov_resultcompare.pl b/sal/qa/helper/gcov/gcov_resultcompare.pl
deleted file mode 100644
index bb0f86c0a..000000000
--- a/sal/qa/helper/gcov/gcov_resultcompare.pl
+++ /dev/null
@@ -1,151 +0,0 @@
-#!/usr/bin/perl -w
-#
-# $Id: gcov_resultcompare.pl,v 1.2 2004-03-19 14:46:51 obo Exp $
-#
-
-# GCOV_RESULTCOMPARE
-#
-# Helper, to compare two different results
-#
-# Q: Why perl?
-# A: regexp ;-)
-#
-
-use strict;
-use File::Basename;
-use Getopt::Long;
-
-our $version_info = 'gcov_resultcompare $Revision: 1.2 $ ';
-
-our $help; # Help option flag
-our $version; # Version option flag
-# our $infile;
-
-our $orig;
-our $compare;
-
-# Prototypes
-sub print_usage(*);
-sub read_gcov_function_file($);
-
-# Parse command line options
-if (!GetOptions(
- "o=s" => \$orig,
- "c=s" => \$compare,
- "help" => \$help,
- "version" => \$version
- ))
-{
- print_usage(*STDERR);
- exit(1);
-}
-
-# Check for help option
-if ($help)
-{
- print_usage(*STDOUT);
- exit(0);
-}
-
-# Check for version option
-if ($version)
-{
- print("$version_info\n");
- exit(0);
-}
-
-# check if enough parameters
-# if ($#ARGV < 1)
-# {
-# print("No input filenames specified\n");
-# print_usage(*STDERR);
-# exit(1);
-# }
-
-if (! $orig)
-{
- print_usage(*STDOUT);
- exit(0);
-}
-if (! $compare)
-{
- print_usage(*STDOUT);
- exit(0);
-}
-
-# ------------------------------------------------------------------------------
-
-my %origlist = read_gcov_function_file($orig);
-my %cmplist = read_gcov_function_file($compare);
-
-my $key;
-my $value;
-
-while (($key, $value) = each %origlist)
-{
- my $cmpvalue = $cmplist{$key};
-
- if ($cmpvalue != 0.00)
- {
- if ($value < 100.00)
- {
- if ($cmpvalue > $value && $value < 90.0)
- {
- print "$key, $value, CMP:$cmpvalue\n";
- }
- }
- }
-}
-
-# --------------------------------------------------------------------------------
-# Read the gcov function (gcov -f) file
-# and compare line by line with the export function list
-# so we get a list of functions, which are only exported, and not all stuff.
-
-sub read_gcov_function_file($)
-{
- local *INPUT_HANDLE;
- my $file = shift;
- my %list;
- my $line = "";
-
- open(INPUT_HANDLE, $file)
- or die("ERROR: cannot open $file!\n");
-
- while ($line = <INPUT_HANDLE>)
- {
- chomp($line);
- # sample line (for reg exp:)
- # 100.00 rtl_ustr_toDouble
- if ($line =~ /^(.{6}) (\w+)$/ )
- {
- my $percent = $1;
- my $value = $2;
-
- $list{$value} = $percent;
- }
- }
- close(INPUT_HANDLE);
- return %list;
-}
-
-# ----------------------------------------------------------------------------
-sub print_usage(*)
-{
- local *HANDLE = $_[0];
- my $tool_name = basename($0);
-
- print(HANDLE <<END_OF_USAGE);
-
-Usage: $tool_name [OPTIONS] INPUTFILE
-
- -o Original File, which gives the main values
- if here a value is smaller than in compare, the found value is a candidate for better check.
- -c Compare file.
-
- -h, --help Print this help, then exit
- -v, --version Print version number, then exit
-
-END_OF_USAGE
- ;
-}
diff --git a/sal/qa/helper/gcov/gcov_resultinterpreter.pl b/sal/qa/helper/gcov/gcov_resultinterpreter.pl
deleted file mode 100644
index 56ce13a59..000000000
--- a/sal/qa/helper/gcov/gcov_resultinterpreter.pl
+++ /dev/null
@@ -1,172 +0,0 @@
-#!/usr/bin/perl -w
-#
-# $Id: gcov_resultinterpreter.pl,v 1.3 2005-11-02 17:24:12 kz Exp $
-#
-
-# GCOV_RESULTINTERPRETER
-#
-# Helper, to interpret the result
-#
-# Q: Why perl?
-# A: regexp ;-)
-#
-
-use strict;
-use File::Basename;
-use Getopt::Long;
-
-our $version_info = 'gcov helper $Revision: 1.3 $ ';
-
-our $help; # Help option flag
-our $version; # Version option flag
-# our $infile;
-
-our $usedFunctions; # show all functions, which have a value > 0
-our $nonusedFunctions; # show all functions, which have a value == 0
-our $nPercent; # show all functions, which have a value > $nPercent
-our $complete; # show all functions, which have a value == 100
-our $incomplete; # show all functions, which have a value > 0 && < 100
-
-# Prototypes
-sub print_usage(*);
-sub read_gcov_function_file($);
-
-# Parse command line options
-if (!GetOptions(
- "usedfunctions" => \$usedFunctions,
- "nonusedfunctions" => \$nonusedFunctions,
- "percent=s" => \$nPercent,
- "complete" => \$complete,
- "incomplete" => \$incomplete,
- "help" => \$help,
- "version" => \$version
- ))
-{
- print_usage(*STDERR);
- exit(1);
-}
-
-# Check for help option
-if ($help)
-{
- print_usage(*STDOUT);
- exit(0);
-}
-
-# Check for version option
-if ($version)
-{
- print("$version_info\n");
- exit(0);
-}
-
-# check if enough parameters
-if ($#ARGV < 0)
-{
- print("No input filename specified\n");
- print_usage(*STDERR);
- exit(1);
-}
-
-if ($complete)
-{
- $nPercent = 100.00;
-}
-# ------------------------------------------------------------------------------
-
-my %list = read_gcov_function_file($ARGV[0]);
-
-my $key;
-my $value;
-
-while (($key, $value) = each %list)
-{
- # print "function: $key = $value\n";
- if ($nonusedFunctions)
- {
- if ($value <= 0.00)
- {
- print "$key\n";
- }
- }
- elsif ($usedFunctions)
- {
- if ($value != 0.00)
- {
- print "$key, $value\n";
- }
- }
- elsif ($nPercent)
- {
- if ($value >= $nPercent)
- {
- print "$key, $value\n";
- }
- }
- elsif ($incomplete)
- {
- if ($value > 0.00 && $value < 100.00)
- {
- print "$key, $value\n";
- }
- }
- else
- {
- print "$key, $value\n";
- }
-}
-
-# --------------------------------------------------------------------------------
-# Read the gcov function (gcov -f) file
-# and compare line by line with the export function list
-# so we get a list of functions, which are only exported, and not all stuff.
-
-sub read_gcov_function_file($)
-{
- local *INPUT_HANDLE;
- my $file = $_[0];
- my %list;
- my $line = "";
-
- open(INPUT_HANDLE, $file)
- or die("ERROR: cannot open $file!\n");
-
- while ($line = <INPUT_HANDLE>)
- {
- chomp($line);
- # sample line (for reg exp:)
- # 100.00 rtl_ustr_toDouble
- if ($line =~ /^(.*) (\w+)$/ )
- {
- my $percent = $1;
- my $value = $2;
-
- $list{$value} = $percent;
- }
- }
- close(INPUT_HANDLE);
- return %list;
-}
-
-# ----------------------------------------------------------------------------
-sub print_usage(*)
-{
- local *HANDLE = $_[0];
- my $tool_name = basename($0);
-
- print(HANDLE <<END_OF_USAGE);
-
-Usage: $tool_name [OPTIONS] INPUTFILE
-
- -u, --usedFunctions show all functions, which have a value > 0
- -n, --nonusedFunctions show all functions, which have a value == 0
- -p, --percent show all functions, which have a value > percent
- -c, --complete show all functions, which have a value == 100
- -i, --incomplete show all functions, which have a value > 0 && < 100
-
- -h, --help Print this help, then exit
- -v, --version Print version number, then exit
-
-END_OF_USAGE
- ;
-}
diff --git a/sal/qa/helper/gcov/gcov_run.sh b/sal/qa/helper/gcov/gcov_run.sh
deleted file mode 100755
index 31a4c4e44..000000000
--- a/sal/qa/helper/gcov/gcov_run.sh
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/bin/tcsh -f
-
-# This is a helper file, to start a coverage test by hand
-
-# ----- INIT ENVIRONMENT -----
-# setup a complete build environment, copy from our beanshell environment
-setenv SHELL /bin/tcsh
-source /net/margritte/usr/qaapi/workspace/qadev/scripts/init/staroffice.cshrc
-
-# do a setsolar
-
-setenv SOURCE_ROOT /cws/so-cwsserv06/qadev16
-setsolar -cwsname qadev16 -sourceroot -src680 -ver m25 -jdk14 unxlngi5
-
-
-# ----- CLEAN OLD COVERAGE INFOS -----
-
-setenv SALDIR /cws/so-cwsserv06/qadev16/SRC680/src.m25/sal
-
-# this is a patch for sal, to see also "ustr" in string
-cd $SALDIR/rtl/source
-
-# strtmpl.c contains code, which is used for strings and ustrings. This file contain lot of makros
-# which unpacked at compile time. Due to the fact, gcov has some problems with such things, an idea is
-# to copy strtmpl.c to ustrtmpl.c and replace the include command in ustring.c
-# this is done be the follows lines.
-
-# cat ustring.c | sed -e "s/strtmpl.c/ustrtmpl.c/" > ustring.c.new ; mv -f ustring.c.new ustring.c
-# cp strtmpl.c ustrtmpl.c
-
-cd $SALDIR
-
-rm -f `find . -type f -name '*.bb' -print`
-rm -f `find . -type f -name '*.bbg' -print`
-rm -f `find . -type f -name '*.f' -print`
-rm -f `find . -type f -name '*.da' -print`
-rm -f `find . -type f -name '*.gcov' -print`
-
-rm -rf unxlngi5
-
-# ----- START A NEW BUILD WITH COVERAGE -----
-setenv ENVCFLAGS "-O0 -ftest-coverage -fprofile-arcs"
-build TESTCOVERAGE=t
-deliver
-
-
-# ----- START THE TESTS -----
-
-# unsetenv ENVCFLAGS
-cd cd $SALDIR/qa
-# cd qa/osl/file
-dmake test
-
-
-# ----- BUILD GCOV (coverage) FILES -----
-cd cd $SALDIR/qa/helper/gcov
-statistics
-
-# the statistics file create some *.txt files, the most interesting one is realallchecked.txt,
-# which contain only the interface functions and it's run through in percent.
-# the gcov_resultcompare.pl use two of these files to give out a compare.
-
-# usage: gcov_resultcompare.pl -o realallchecked.txt -c <other>/realallchecked.txt
-
diff --git a/sal/qa/helper/gcov/readme.txt b/sal/qa/helper/gcov/readme.txt
deleted file mode 100644
index 6c9f46b22..000000000
--- a/sal/qa/helper/gcov/readme.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-GCOV Coverage information helper functions
-
-# Files:
-deprecated.txt
-gcov_all
-gcov_filter.pl
-gcov_result.pl
-gcov_resultinterpreter.pl
-statistics
-
-\\mahler\automat\docs\qadev\baselib\gcov_result_in_db_putter.php
-
-
diff --git a/sal/qa/helper/gcov/statistics b/sal/qa/helper/gcov/statistics
deleted file mode 100755
index cbb374c17..000000000
--- a/sal/qa/helper/gcov/statistics
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-# $Id: statistics,v 1.3 2003-06-11 16:38:03 vg Exp $
-
-./gcov_filter.pl -i ../../../util/sal.map --showallfunc FOO | sort | uniq >exportedfunctions.txt
-
-# gives the number off all files.
-./gcov_filter.pl -i ../../../util/sal.map --allfuncinfo FOO
-
-./gcov_all --no-percentage | sort | uniq >allchecked.txt
-
-# gives the number of all testable functions
-echo -n " testable functions: "
-cat allchecked.txt | wc -l
-
-# gives a list of all checked functions within gcov.
-./gcov_all | sort +1 | uniq >realallchecked.txt
-
-# output all functions, which are not tested by gcov -f, due to the fact, that they where not found
-comm -3 exportedfunctions.txt allchecked.txt >notfound.txt
-
diff --git a/sal/qa/inc/stringhelper.hxx b/sal/qa/inc/stringhelper.hxx
deleted file mode 100644
index 93da3ef9b..000000000
--- a/sal/qa/inc/stringhelper.hxx
+++ /dev/null
@@ -1,19 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-#ifndef STRINGHELPER_HXX
-#define STRINGHELPER_HXX
-
-#include <rtl/ustring.hxx>
-#include <rtl/string.hxx>
-
-inline void operator <<= (rtl::OString& _rAsciiString, rtl::OUString const & _rUnicodeString)
-{
- _rAsciiString = rtl::OUStringToOString(_rUnicodeString,RTL_TEXTENCODING_ASCII_US);
-}
-inline void operator <<= (rtl::OUString& _rUnicodeString, rtl::OString const & _rAsciiString )
-{
- _rUnicodeString = rtl::OStringToOUString(_rAsciiString, RTL_TEXTENCODING_ASCII_US);
-}
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/inc/valueequal.hxx b/sal/qa/inc/valueequal.hxx
deleted file mode 100644
index 782362a3f..000000000
--- a/sal/qa/inc/valueequal.hxx
+++ /dev/null
@@ -1,136 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-#include <math.h>
-
-#define PREC_float 1
-#define PREC_double 2
-#define PREC_long_double 3
-
-template<class T>
-bool is_equal(T x, T y, sal_Int16 _nPrec)
-{
- // due to the fact that this check looks only if both values are equal
- // we only need to look on one value
-
- // 14 digits will announce the checkPrecisionSize
-
- sal_Int32 nPRECISION;
- switch(_nPrec)
- {
- case PREC_float:
- nPRECISION = 6;
- break;
- case PREC_double:
- nPRECISION = 14;
- break;
- case PREC_long_double:
- nPRECISION = 20;
- break;
- default:
- nPRECISION = 2;
- }
-
- if (x < 0)
- {
- x = -x;
- }
- if (y < 0)
- {
- y = -y;
- }
-
- // LLA: due to a bug in printf with '%f' and long double within linux environment
- // we have to use %lf instead.
-
- if (_nPrec != PREC_long_double)
- {
- printf("double equal: %.20f\n", x);
- printf(" %.20f\n", y);
- }
- //here nPrecOfN is the number after dot
- sal_Int32 nBeforeDot = sal_Int32( log10(x) );
- if ( nBeforeDot < 0)
- {
- nBeforeDot = 0;
- }
- //printf("nPRECISION is %d\n", nPRECISION);
- sal_Int32 nPrecOfN = -nPRECISION + nBeforeDot;
-
- if (_nPrec != PREC_long_double)
- printf("nPrecOfN is %d\n", nPrecOfN);
-
- long double nPrec = pow(0.1, -nPrecOfN);
-
- if (_nPrec != PREC_long_double)
- printf(" prec: %.20f\n", nPrec);
-
- long double nDelta = fabs( x - y ) ;
-
- if (_nPrec != PREC_long_double)
- {
- printf(" delta: %.20f\n", nDelta);
- printf(" nPrec: %.20f\n", nPrec);
- printf("delta must be less or equal to prec!\n\n");
- }
-
- if (nDelta > nPrec)
- {
- // printf("values are not equal! ndelta:%.20f\n", nDelta);
- return false;
- }
- // else
- // {
- // printf("values are equal. ndelta:%.20f\n", nDelta);
- return true;
- // }
-}
-
-// LLA: bool is_float_equal(float x, float y)
-// LLA: {
-// LLA: // due to the fact that this check looks only if both values are equal
-// LLA: // we only need to look on one value
-// LLA:
-// LLA: // 6 digits will announce the checkPrecisionSize
-// LLA:
-// LLA: const sal_Int32 nPRECISION = 6;
-// LLA: if (x < 0)
-// LLA: {
-// LLA: x = -x;
-// LLA: }
-// LLA: if (y < 0)
-// LLA: {
-// LLA: y = -y;
-// LLA: }
-// LLA:
-// LLA: printf("double equal: %.20f\n# %.20f\n", x, y);
-// LLA: sal_Int32 nPrecOfN = -nPRECISION + sal_Int32( log10(x) );
-// LLA:
-// LLA: printf("prec: %d\n", nPrecOfN);
-// LLA: double nPrec = pow(10, nPrecOfN) * 1;
-// LLA:
-// LLA: printf(" prec: %.20f\n", nPrec);
-// LLA:
-// LLA: double nDelta = fabs( x - y );
-// LLA: printf(" delta: %.20f\n\n", nDelta);
-// LLA:
-// LLA: if (nDelta > nPrec)
-// LLA: {
-// LLA: // printf("values are not equal! ndelta:%.20f\n", nDelta);
-// LLA: return false;
-// LLA: }
-// LLA: // else
-// LLA: // {
-// LLA: // printf("values are equal. ndelta:%.20f\n", nDelta);
-// LLA: return true;
-// LLA: // }
-// LLA: }
-
-bool is_float_equal(float x, float y)
-{
- return is_equal<float>(x, y, PREC_float);
-}
-bool is_double_equal(double x, double y)
-{
- return is_equal<double>(x, y, PREC_double);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/libs2test.txt b/sal/qa/libs2test.txt
deleted file mode 100644
index 7aa97ef3e..000000000
--- a/sal/qa/libs2test.txt
+++ /dev/null
@@ -1,84 +0,0 @@
-# This file contain a list of todos for testshl2 automated tests.
-#
-# Legend:
-# there exist 2 formats
-# 1. file
-# 2. path ; file
-#
-# 1. if only a file exist, it will be assume, that a directory with name 'file'
-# exist, and a library with name 'file' create.
-# 2. if the path to the file differ from the library file, use this format.
-#
-
-
-# LLA: marked as deprecated by Stephan Bergmann
-ByteSequence ; rtl_ByteSequence
-
-OStringBuffer ; rtl_OStringBuffer
-
-rtl_strings ; rtl_OUString
-rtl_strings ; rtl_OString
-rtl_strings ; rtl_OUStringBuffer
-
-# replacements for old rtl::XString tests
-rtl/oustring ; rtl_OUString2
-rtl/ostring ; rtl_OString2
-
-osl/file ; osl_File
-# LLA: temporaly removed, there are lot of problems with our environment
-osl/socket ; osl_StreamSocket
-osl/socket ; osl_DatagramSocket
-osl/socket ; osl_SocketAddr
-osl/socket ; osl_Socket2
-osl/socket ; osl_ConnectorSocket
-osl/socket ; osl_AcceptorSocket
-
-osl/mutex ; osl_Mutex
-osl/pipe ; osl_Pipe
-osl/semaphore ; osl_Semaphore
-osl/condition ; osl_Condition
-osl/module ; osl_Module
-osl/security ; osl_Security
-
-rtl/math ; rtl_math
-rtl/math ; rtl_math2
-
-# new 20040315
-rtl/alloc ; rtl_Alloc
-rtl/crc32 ; rtl_crc32
-rtl/digest ; rtl_digest
-rtl/bootstrap ; rtl_Bootstrap
-rtl/ostring ; rtl_str
-rtl/ostring ; rtl_string
-rtl/random ; rtl_Random
-
-# new 20040324
-rtl/oustring ; rtl_ustr
-
-# new 20040326
-rtl/cipher ; rtl_cipher
-
-# new 20040331
-rtl/locale ; rtl_locale
-rtl/uuid ; rtl_Uuid
-rtl/process ; rtl_Process
-
-# new 20040413
-rtl/textenc ; rtl_textcvt
-rtl/textenc ; rtl_tencinfo
-rtl/oustringbuffer; rtl_OUStringBuffer2
-
-# new 20040420
-rtl/uri ; rtl_Uri
-rtl/logfile ; rtl_logfile
-
-# LLA: Due to the fact, that thread testing seams to be little bit error prone, now
-# check this at the end.
-osl/process ; osl_Thread
-
-# not ready yet
-# strings ; test_oustring
-
-# new 20041025
-rtl/doublelock ; rtl_doublelocking
-
diff --git a/sal/qa/makefile.mk b/sal/qa/makefile.mk
deleted file mode 100644
index 391ac66b8..000000000
--- a/sal/qa/makefile.mk
+++ /dev/null
@@ -1,62 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..
-
-PRJNAME=sal
-TARGET=whole_sal_qa
-
-# LLA: irrelevant
-# ENABLE_EXCEPTIONS=TRUE
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# BEGIN ------------------------------------------------------------
-# END --------------------------------------------------------------
-
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
-.IF "$(runtests)"!=""
-ALLTAR : test_all
-.ENDIF
-
-# OTHER STUFF ------------------------------------------------------
-# test : test_all
-
-# start tests with consideration of libs2test.txt with 'dmake test'
-# run through all tests directories (from libs2test.txt) and try to start all tests
-# use 'dmake test TESTOPT="buildall"'
-
-# ALLTAR
-test_all:
- @echo ----------------------------------------------------------
- @echo - start sal unit tests
- @echo ----------------------------------------------------------
- $(PERL) buildall.pl $(TESTOPT)
diff --git a/sal/qa/osl/condition/makefile.mk b/sal/qa/osl/condition/makefile.mk
deleted file mode 100644
index 9683f20a7..000000000
--- a/sal/qa/osl/condition/makefile.mk
+++ /dev/null
@@ -1,63 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-
-PRJNAME=sal
-TARGET=qa_osl_condition
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-.IF "$(OS)" == "IOS"
-CFLAGSCXX += -DCPPUNIT_PLUGIN_EXPORTED_NAME=cppunitTest_$(TARGET)
-.ENDIF
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-SHL1OBJS= \
- $(SLO)$/osl_Condition.obj
-
-SHL1TARGET= osl_Condition
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-
-DEF1NAME =$(SHL1TARGET)
-SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
-# ------------------------------------------------------------------
-SLOFILES=$(SHL1OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
-
diff --git a/sal/qa/osl/condition/osl_Condition.cxx b/sal/qa/osl/condition/osl_Condition.cxx
deleted file mode 100644
index 6f19e83a0..000000000
--- a/sal/qa/osl/condition/osl_Condition.cxx
+++ /dev/null
@@ -1,369 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
- /*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-//------------------------------------------------------------------------
-// include files
-//------------------------------------------------------------------------
-#include <osl_Condition_Const.h>
-#include <stdlib.h>
-
-using namespace osl;
-using namespace rtl;
-
-
-//------------------------------------------------------------------------
-// helper functions and classes
-//------------------------------------------------------------------------
-
-/** print Boolean value.
-*/
-inline void printBool( sal_Bool bOk )
-{
- printf("#printBool# " );
- ( sal_True == bOk ) ? printf("TRUE!\n" ): printf("FALSE!\n" );
-}
-
-/** print a UNI_CODE String.
-*/
-inline void printUString( const ::rtl::OUString & str )
-{
- rtl::OString aString;
-
- printf("#printUString_u# " );
- aString = ::rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US );
- printf("%s\n", aString.getStr( ) );
-}
-
-enum ConditionType
-{
- thread_type_set,
- thread_type_reset,
- thread_type_wait,
- thread_type_check
-};
-
-/** thread for testing Condition.
- */
-class ConditionThread : public Thread
-{
-public:
- //get the Condition to operate
- ConditionThread( ::osl::Condition& Con, ConditionType tType): m_MyCon( Con ), m_MyType( tType ) { }
-
- ~ConditionThread( )
- {
- // LLA: do not throw in DTors!
- // LLA: CPPUNIT_ASSERT_MESSAGE( "#ConditionThread does not shutdown properly.\n", sal_False == this -> isRunning( ) );
- }
-protected:
- ::osl::Condition& m_MyCon;
- ConditionType m_MyType;
-
- void SAL_CALL run()
- {
- switch ( m_MyType )
- {
- case thread_type_wait:
- m_MyCon.wait(); break;
- case thread_type_set:
- m_MyCon.set(); break;
- case thread_type_reset:
- m_MyCon.reset(); break;
- default:
- break;
- }
- }
-};
-
-
-//------------------------------------------------------------------------
-// test code start here
-//------------------------------------------------------------------------
-
-namespace osl_Condition
-{
-
- /** testing the method:
- Condition()
- */
- class ctors : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void ctors_001( )
- {
- ::osl::Condition aCond;
- bRes = aCond.check( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: create a condition its initial check state should be sal_False.",
- sal_False == bRes );
- }
-
- void ctors_002( )
- {
- ::osl::Condition aCond;
- aCond.set( );
- bRes = aCond.check( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: create a condition and set it.",
- sal_True == bRes );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_001 );
- CPPUNIT_TEST( ctors_002 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class ctors
-
-
- /** testing the method:
- void set()
- */
- class set : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1, bRes2;
-
- void set_001( )
- {
- ::osl::Condition aCond;
- aCond.set( );
- bRes = aCond.check( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: check state should be sal_True after set.",
- sal_True == bRes );
- }
-
- void set_002( )
- {
- ::osl::Condition aCond;
- ConditionThread myThread1( aCond, thread_type_wait );
- myThread1.create();
- bRes = myThread1.isRunning( );
-
- ConditionThread myThread2( aCond, thread_type_set );
- myThread2.create();
-
- myThread1.join( );
- bRes1 = myThread1.isRunning( );
- bRes2 = aCond.check( );
- myThread2.join( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: use one thread to set the condition in order to release another thread.",
- sal_True == bRes && sal_False == bRes1 && sal_True == bRes2 );
- }
-
-
- CPPUNIT_TEST_SUITE( set );
- CPPUNIT_TEST( set_001 );
- CPPUNIT_TEST( set_002 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class set
-
-
- /** testing the method:
- void reset()
- */
- class reset : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1, bRes2;
-
- void reset_001( )
- {
- ::osl::Condition aCond;
- aCond.reset( );
-
- ConditionThread myThread( aCond, thread_type_wait );
- myThread.create();
- bRes = myThread.isRunning( );
- bRes2 = aCond.check( );
-
- aCond.set( );
- myThread.join( );
- bRes1 = myThread.isRunning( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: wait will cause a reset thread block, use set to release it.",
- sal_True == bRes && sal_False == bRes1 && sal_False == bRes2 );
- }
-
- void reset_002( )
- {
- ::osl::Condition aCond;
- aCond.reset( );
- bRes = aCond.check( );
- aCond.set( );
- bRes1 = aCond.check( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: create a condition and reset/set it.",
- ( sal_False == bRes && sal_True == bRes1 ) );
- }
-
- CPPUNIT_TEST_SUITE( reset );
- CPPUNIT_TEST( reset_001 );
- CPPUNIT_TEST( reset_002 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class reset
-
-
- /** testing the method:
- Result wait(const TimeValue *pTimeout = 0)
- */
- class wait : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1, bRes2;
- TimeValue *tv1;
-
- void setUp( )
- {
- tv1 = new TimeValue;
- tv1->Seconds = 1;
- tv1->Nanosec = 0;
-
- }
-
- void tearDown( )
- {
- delete tv1;
- }
-
-
- void wait_001( )
- {
- ::osl::Condition cond1;
- ::osl::Condition cond2;
- ::osl::Condition cond3;
-
- cond1.set();
- cond2.set();
-
- osl::Condition::Result r1=cond1.wait(tv1);
- osl::Condition::Result r2=cond2.wait();
- osl::Condition::Result r3=cond3.wait(tv1);
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test three types of wait.",
- (r1 == ::osl::Condition::result_ok) &&
- (r2 == ::osl::Condition::result_ok) &&
- (r3 == ::osl::Condition::result_timeout) );
- }
-
- void wait_002( )
- {
- ::osl::Condition aCond;
- ::osl::Condition::Result wRes, wRes1;
-
- aCond.reset( );
- bRes = aCond.check( );
- wRes = aCond.wait( tv1 );
-
- aCond.set( );
- wRes1 = aCond.wait( tv1 );
- bRes1 = aCond.check( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: wait a condition after set/reset.",
- ( sal_False == bRes ) && ( sal_True == bRes1 ) &&
- ( ::osl::Condition::result_timeout == wRes ) &&
- ( ::osl::Condition::result_ok == wRes1 ) );
- }
-
- CPPUNIT_TEST_SUITE( wait );
- CPPUNIT_TEST( wait_001 );
- CPPUNIT_TEST( wait_002 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class wait
-
-
- /** testing the method:
- sal_Bool check()
- */
- class check : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1, bRes2;
-
- void check_001( )
- {
- ::osl::Condition aCond;
-
- aCond.reset( );
- bRes = aCond.check( );
- aCond.set( );
- bRes1 = aCond.check( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: check the condition states.",
- ( sal_False == bRes && sal_True == bRes1 ) );
- }
-
- void check_002( )
- {
- ::osl::Condition aCond;
- aCond.reset( );
-
- ConditionThread myThread( aCond, thread_type_set );
- myThread.create( );
- myThread.join( );
- bRes = aCond.check( );
-
- ConditionThread myThread1( aCond, thread_type_reset );
- myThread1.create( );
- myThread1.join( );
- bRes1 = aCond.check( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: use threads to set/reset Condition and check it in main routine.",
- ( sal_True == bRes && sal_False == bRes1 ) );
- }
-
- CPPUNIT_TEST_SUITE( check );
- CPPUNIT_TEST( check_001 );
- CPPUNIT_TEST( check_002 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class check
-
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Condition::ctors);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Condition::set);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Condition::reset);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Condition::wait);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Condition::check);
-// -----------------------------------------------------------------------------
-
-} // namespace osl_Condition
-
-
-// -----------------------------------------------------------------------------
-
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/condition/osl_Condition_Const.h b/sal/qa/osl/condition/osl_Condition_Const.h
deleted file mode 100644
index fafd6ba1a..000000000
--- a/sal/qa/osl/condition/osl_Condition_Const.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_CONDITION_CONST_H_
-#define _OSL_CONDITION_CONST_H_
-
-#include <sal/types.h>
-#include <rtl/ustring.hxx>
-
-#ifndef _OSL_THREAD_HXX_
-#include <osl/thread.hxx>
-#endif
-#include <osl/mutex.hxx>
-#include <osl/pipe.hxx>
-
-#ifndef _OSL_SEMAPHOR_HXX_
-#include <osl/semaphor.hxx>
-#endif
-
-#ifndef _OSL_CONDITION_HXX_
-#include <osl/conditn.hxx>
-#endif
-#include <osl/time.h>
-
-#ifdef UNX
-#include <unistd.h>
-#endif
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#define OSLTEST_DECLARE_USTRING( str_name, str_value ) \
- ::rtl::OUString a##str_name = rtl::OUString::createFromAscii( str_value )
-
-//------------------------------------------------------------------------
-// condition names
-//------------------------------------------------------------------------
-OSLTEST_DECLARE_USTRING( TestCon, "testcondition" );
-
-const char pTestString[17] = "Sun Microsystems";
-
-
-#endif /* _OSL_CONDITION_CONST_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/file/makefile.mk b/sal/qa/osl/file/makefile.mk
deleted file mode 100644
index de85e5e5e..000000000
--- a/sal/qa/osl/file/makefile.mk
+++ /dev/null
@@ -1,85 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-
-PRJNAME=sal
-TARGET=qa_osl_file
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-# --- BEGIN --------------------------------------------------------
-SHL1OBJS= \
- $(SLO)$/osl_File.obj
-SHL1TARGET= osl_File
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-
-DEF1NAME =$(SHL1TARGET)
-SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
-
-#-------------------------------------------------------------------
-
-SHL2OBJS=$(SLO)$/test_cpy_wrt_file.obj
-SHL2TARGET=tcwf
-SHL2STDLIBS= $(SALLIB) $(CPPUNITLIB)
-SHL2IMPLIB=i$(SHL2TARGET)
-SHL2DEF=$(MISC)$/$(SHL2TARGET).def
-SHL2VERSIONMAP = $(PRJ)$/qa$/export.map
-DEF2NAME =$(SHL2TARGET)
-
-
-# END --------------------------------------------------------------
-
-# --- BEGIN --------------------------------------------------------
-SHL3OBJS= \
- $(SLO)$/osl_old_test_file.obj
-SHL3TARGET= osl_old_test_file
-SHL3STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL3IMPLIB= i$(SHL3TARGET)
-
-DEF3NAME =$(SHL3TARGET)
-SHL3VERSIONMAP = $(PRJ)$/qa$/export.map
-# END --------------------------------------------------------------
-
-#------------------------------- All object files -------------------------------
-# do this here, so we get right dependencies
-SLOFILES=$(SHL1OBJS) $(SHL2OBJS) $(SHL3OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/osl/file/osl_File.cxx b/sal/qa/osl/file/osl_File.cxx
deleted file mode 100644
index ffa19b569..000000000
--- a/sal/qa/osl/file/osl_File.cxx
+++ /dev/null
@@ -1,6343 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#ifdef IOS
-#define CPPUNIT_PLUGIN_EXPORTED_NAME cppunitTest_qa_osl_File
-#endif
-
-//------------------------------------------------------------------------
-// include files
-//------------------------------------------------------------------------
-#include <sal/types.h>
-#include <rtl/ustring.hxx>
-#include <rtl/ustrbuf.hxx>
-
-#include "osl/thread.h"
-
-#include "rtl/ustrbuf.hxx"
-#include <osl/file.hxx>
-#include <osl_File_Const.h>
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-using namespace osl;
-
-using ::rtl::OUString;
-using ::rtl::OUStringToOString;
-using ::rtl::OString;
-using ::rtl::OStringToOUString;
-
-//------------------------------------------------------------------------
-// helper functions
-//------------------------------------------------------------------------
-
-/** detailed wrong message.
-*/
-inline ::rtl::OString errorToString( const ::osl::FileBase::RC _nError )
-{
- ::rtl::OString sResult;
- switch ( _nError ) {
- case ::osl::FileBase::E_None:
- sResult = "Success";
- break;
- case ::osl::FileBase::E_PERM:
- sResult = "Operation not permitted";
- break;
- case ::osl::FileBase::E_NOENT:
- sResult = "No such file or directory";
- break;
- case ::osl::FileBase::E_EXIST:
- sResult = "Already Exist";
- break;
- case ::osl::FileBase::E_ACCES:
- sResult = "Permission denied";
- break;
- case ::osl::FileBase::E_INVAL:
- sResult = "The format of the parameters was not valid";
- break;
- case ::osl::FileBase::E_NOTDIR:
- sResult = "Not a directory";
- break;
- case ::osl::FileBase::E_ISDIR:
- sResult = "Is a directory";
- break;
- case ::osl::FileBase::E_BADF:
- sResult = "Bad file";
- break;
- case ::osl::FileBase::E_NOTEMPTY:
- sResult = "The directory is not empty";
- break;
- default:
- sResult = "Unknown Error";
- break;
- }
- return sResult;
-}
-
-rtl::OString errorToStr( ::osl::FileBase::RC const& nError)
-{
- rtl::OString suBuf;
- suBuf += "The returned error is: " ;
- suBuf += errorToString(nError);
- suBuf += "!\n";
- return suBuf;
-}
-
-/** print a file type name.
-*/
-inline void printFileType( const ::osl::FileStatus::Type nType )
-{
- printf( "#printFileType# " );
- switch ( nType ) {
- case ::osl::FileStatus::Directory:
- printf( "This file is a: Directory.\n" );
- break;
- case ::osl::FileStatus::Volume:
- printf( "This file is a: volume device.\n" );
- break;
- case ::osl::FileStatus::Regular:
- printf( "This file is a: regular file.\n" );
- break;
- case ::osl::FileStatus::Fifo:
- printf( "This file is a: fifo.\n" );
- break;
- case ::osl::FileStatus::Socket:
- printf( "This file is a: socket.\n" );
- break;
- case ::osl::FileStatus::Link:
- printf( "This file is a: link file.\n" );
- break;
- case ::osl::FileStatus::Special:
- printf( "This file is a: special.\n" );
- break;
- case ::osl::FileStatus::Unknown:
- printf( "The file type is unknown %d \n", nType );
- break;
- }
-}
-
-/** print a file attributes.
-*/
-inline void printFileAttributes( const sal_Int64 nAttributes )
-{
- printf( "#printFileAttributes# This file is a: (" );
- if ( ( nAttributes | osl_File_Attribute_ReadOnly ) == nAttributes )
- printf( " ReadOnly " );
- if ( ( nAttributes | osl_File_Attribute_Hidden ) == nAttributes )
- printf( " Hidden " );
- if ( ( nAttributes | osl_File_Attribute_Executable ) == nAttributes )
- printf( " Executable " );
- if ( ( nAttributes | osl_File_Attribute_GrpWrite ) == nAttributes )
- printf( " GrpWrite " );
- if ( ( nAttributes | osl_File_Attribute_GrpRead ) == nAttributes )
- printf( " GrpRead " );
- if ( ( nAttributes | osl_File_Attribute_GrpExe ) == nAttributes )
- printf( " GrpExe " );
- if ( ( nAttributes | osl_File_Attribute_OwnWrite ) == nAttributes )
- printf( " OwnWrite " );
- if ( ( nAttributes | osl_File_Attribute_OwnRead ) == nAttributes )
- printf( " OwnRead " );
- if ( ( nAttributes | osl_File_Attribute_OwnExe ) == nAttributes )
- printf( " OwnExe " );
- if ( ( nAttributes | osl_File_Attribute_OthWrite ) == nAttributes )
- printf( " OthWrite " );
- if ( ( nAttributes | osl_File_Attribute_OthRead ) == nAttributes )
- printf( " OthRead " );
- if ( ( nAttributes | osl_File_Attribute_OthExe ) == nAttributes )
- printf( " OthExe " );
- printf( ") file!\n" );
-}
-
-/** print an output wrong message.
-*/
-inline void printError( const ::osl::FileBase::RC nError )
-{
- printf( "#printError# " );
- printf( "%s\n", errorToStr(nError).getStr() );
-}
-
-/** print an signed Integer Number.
-*/
-inline void printInt( sal_Int64 i )
-{
- printf( "#printInt_i64# " );
- printf( "The Integer64 is %"SAL_PRIdINT64"\n", i);
-}
-
-/** print an unsigned Integer Number.
-*/
-inline void printInt( sal_uInt64 i )
-{
- printf( "#printInt_u64# " );
- printf( "The unsigned Integer64 is %"SAL_PRIuUINT64"\n", i);
-}
-
-/** print Boolean value.
-*/
-inline void printBool( sal_Bool bOk )
-{
- printf( "#printBool# " );
- ( sal_True == bOk ) ? printf( "YES!\n" ): printf( "NO!\n" );
-}
-
-/** print struct TimeValue in local time format.
-*/
-inline void printTime( TimeValue *tv )
-{
- oslDateTime *pDateTime = ( oslDateTime* )malloc( sizeof( oslDateTime ) ) ;
- CPPUNIT_ASSERT_MESSAGE( "Error in printTime() function,malloc ", pDateTime != NULL );
- TimeValue *pLocalTV = ( TimeValue* )malloc( sizeof( TimeValue ) );
- CPPUNIT_ASSERT_MESSAGE( "Error in printTime() function,malloc ", pLocalTV != NULL );
-
- CPPUNIT_ASSERT_MESSAGE( "Error in printTime() function,osl_getLocalTimeFromSystemTime ",sal_True == osl_getLocalTimeFromSystemTime( tv, pLocalTV ) );
- CPPUNIT_ASSERT_MESSAGE( "Error in printTime() function,osl_gepDateTimeFromTimeValue ",sal_True == osl_getDateTimeFromTimeValue( pLocalTV, pDateTime ) );
-
- printf( "#printTime# " );
- printf( " Time is: %d/%d/%d ", pDateTime->Month, pDateTime->Day, pDateTime->Year);
- switch ( pDateTime->DayOfWeek )
- {
- case 0: printf("Sun. "); break;
- case 1: printf("Mon. "); break;
- case 2: printf("Tue. "); break;
- case 3: printf("Thr. "); break;
- case 4: printf("Wen. "); break;
- case 5: printf("Fri. "); break;
- case 6: printf("Sat. "); break;
- }
- printf( " %d:%d:%d %d nsecs\n", pDateTime->Hours, pDateTime->Minutes, pDateTime->Seconds, (int) pDateTime->NanoSeconds);
-
- free( pDateTime );
- free( pLocalTV );
-}
-
-/** compare two TimeValue, unit is "ms", since Windows time precision is better than UNX.
-*/
-/* FIXME: the above assertion is bogus */
-
-#if ( defined UNX ) //precision of time in Windows is better than UNX
-# define delta 2000 //time precision, 2000ms
-#else
-# define delta 1800 //time precision, 1.8s
-#endif
-
-inline sal_Int64 t_abs64(sal_Int64 _nValue)
-{
- // std::abs() seems to have some ambiguity problems (so-texas)
- // return abs(_nValue);
- printf("t_abs64(%ld)\n", (long) _nValue);
- // CPPUNIT_ASSERT(_nValue < 2147483647);
-
- if (_nValue < 0)
- {
- _nValue = -_nValue;
- }
- return _nValue;
-}
-
-inline sal_Bool t_compareTime( TimeValue *m_aEndTime, TimeValue *m_aStartTime, sal_Int32 nDelta)
-{
- // sal_uInt64 uTimeValue;
- // sal_Int64 iTimeValue;
- //
- // iTimeValue = t_abs64(( tv1->Seconds - tv2->Seconds) * 1000000000 + tv1->Nanosec - tv2->Nanosec);
- // uTimeValue = ( iTimeValue / 1000000 );
-
- sal_Int32 nDeltaSeconds = m_aEndTime->Seconds - m_aStartTime->Seconds;
- sal_Int32 nDeltaNanoSec = sal_Int32(m_aEndTime->Nanosec) - sal_Int32(m_aStartTime->Nanosec);
- if (nDeltaNanoSec < 0)
- {
- nDeltaNanoSec = 1000000000 + nDeltaNanoSec;
- nDeltaSeconds--;
- }
-
- sal_Int32 nDeltaMilliSec = (nDeltaSeconds * 1000) + (nDeltaNanoSec / 1000000);
- return ( nDeltaMilliSec < nDelta );
-}
-
-/** compare two OUString file name.
-*/
-inline sal_Bool compareFileName( const ::rtl::OUString & ustr1, const ::rtl::OUString & ustr2 )
-{
- sal_Bool bOk;
-//on Windows, the seperatar is '\', so here change to '/', then compare
-#if defined (WNT )
- ::rtl::OUString ustr1new,ustr2new;
- sal_Unicode reverseSlash = (sal_Unicode)'\\';
-
- if (ustr1.lastIndexOf(reverseSlash) != -1)
- ustr1new = ustr1.replace(reverseSlash,(sal_Unicode)'/');
- else
- ustr1new = ustr1;
- if (ustr2.lastIndexOf(reverseSlash) != -1)
- ustr2new = ustr2.replace(reverseSlash,(sal_Unicode)'/');
- else
- ustr2new = ustr2;
- bOk = ustr1new.equalsIgnoreAsciiCase( ustr2new ) ;
-#else
- bOk = ustr1.equalsIgnoreAsciiCase( ustr2 );
-#endif
- return bOk;
-}
-
-/** compare a OUString and an ASCII file name.
-*/
-inline sal_Bool compareFileName( const ::rtl::OUString & ustr, const sal_Char *astr )
-{
- (void)ustr;
- ::rtl::OUString ustr1 = rtl::OUString::createFromAscii( astr );
- sal_Bool bOk = ustr1.equalsIgnoreAsciiCase( ustr1 ); // TODO: does it really compare with the same var?
-
- return bOk;
-}
-
-/** simple version to judge if a file name or directory name is a URL or a system path, just to see if it
- is start with "file:///";.
-*/
-inline sal_Bool isURL( const sal_Char *pathname )
-{
- return ( 0 == strncmp( pathname, FILE_PREFIX, sizeof( FILE_PREFIX ) - 1 ) );
-}
-
-/** simple version to judge if a file name or directory name is a URL or a system path, just to see if it
- is start with "file:///";.
-*/
-inline sal_Bool isURL( const ::rtl::OUString pathname )
-{
- return ( ( pathname.indexOf( aPreURL ) == 0 ) ? sal_True : sal_False );
-}
-
-/** concat two part to form a URL or system path, add PATH_SEPERATOR between them if necessary, add "file:///" to begining if necessary.
-*/
-inline void concatURL( ::rtl::OUString & pathname1, const ::rtl::OUString & pathname2 )
-{
- //check if pathname1 is full qualified URL;
- if ( !isURL( pathname1 ) )
- {
- ::rtl::OUString aPathName = pathname1.copy( 0 );
- ::osl::FileBase::getFileURLFromSystemPath( pathname1, aPathName ); //convert if not full qualified URL
- pathname1 = aPathName.copy( 0 );
- }
-
- sal_Int32 index = 0;
- //check if '/' is in the end of pathname1 or at the begin of pathname2;
- if ( ( ( index = pathname1.lastIndexOf( aSlashURL ) ) != ( pathname1.getLength( ) - 1 ) ) &&
- ( ( index = pathname2.indexOf( aSlashURL ) ) != 0 ) )
- pathname1 += aSlashURL;
- pathname1 += pathname2;
-}
-
-/** create a temp test file using OUString name of full qualified URL or system path.
-*/
-inline void createTestFile( const ::rtl::OUString filename )
-{
- ::rtl::OUString aPathURL = filename.copy( 0 );
- ::osl::FileBase::RC nError;
-
- if ( !isURL( filename ) )
- ::osl::FileBase::getFileURLFromSystemPath( filename, aPathURL ); //convert if not full qualified URL
-
- File aFile(aPathURL);
- nError = aFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write | osl_File_OpenFlag_Create );
- //CPPUNIT_ASSERT_MESSAGE( "In createTestFile Function: creation ", ( ::osl::FileBase::E_None == nError ) || ( nError == ::osl::FileBase::E_EXIST ) );
- if ( ( ::osl::FileBase::E_None != nError ) && ( nError != ::osl::FileBase::E_EXIST ))
- {
- printf("createTestFile failed!\n");
- }
- aFile.close();
-
-}
-
-/** create a temp test file using OUString name of full qualified URL or system path in a base directory.
-*/
-inline void createTestFile( const ::rtl::OUString basename, const ::rtl::OUString filename )
-{
- ::rtl::OUString aBaseURL = basename.copy( 0 );
-
- concatURL( aBaseURL, filename );
- createTestFile( aBaseURL );
-}
-
-/** detete a temp test file using OUString name.
-*/
-inline void deleteTestFile( const ::rtl::OUString filename )
-{
- // LLA: printf("deleteTestFile\n");
- ::rtl::OUString aPathURL = filename.copy( 0 );
- ::osl::FileBase::RC nError;
-
- if ( !isURL( filename ) )
- ::osl::FileBase::getFileURLFromSystemPath( filename, aPathURL ); //convert if not full qualified URL
-
- nError = ::osl::File::setAttributes( aPathURL, osl_File_Attribute_GrpWrite| osl_File_Attribute_OwnWrite| osl_File_Attribute_OthWrite ); // if readonly, make writtenable.
- CPPUNIT_ASSERT_MESSAGE( "In deleteTestFile Function: set writtenable ", ( ::osl::FileBase::E_None == nError ) || ( ::osl::FileBase::E_NOENT == nError ) );
-
- nError = ::osl::File::remove( aPathURL );
- CPPUNIT_ASSERT_MESSAGE( "In deleteTestFile Function: remove ", ( ::osl::FileBase::E_None == nError ) || ( nError == ::osl::FileBase::E_NOENT ) );
-}
-
-/** delete a temp test file using OUString name of full qualified URL or system path in a base directory.
-*/
-inline void deleteTestFile( const ::rtl::OUString basename, const ::rtl::OUString filename )
-{
- ::rtl::OUString aBaseURL = basename.copy( 0 );
-
- concatURL( aBaseURL, filename );
- deleteTestFile( aBaseURL );
-}
-
-/** create a temp test directory using OUString name of full qualified URL or system path.
-*/
-inline void createTestDirectory( const ::rtl::OUString dirname )
-{
- ::rtl::OUString aPathURL = dirname.copy( 0 );
- ::osl::FileBase::RC nError;
-
- if ( !isURL( dirname ) )
- ::osl::FileBase::getFileURLFromSystemPath( dirname, aPathURL ); //convert if not full qualified URL
- nError = ::osl::Directory::create( aPathURL );
- //CPPUNIT_ASSERT_MESSAGE( "In createTestDirectory Function: creation: ", ( ::osl::FileBase::E_None == nError ) || ( nError == ::osl::FileBase::E_EXIST ) );
- if ( ( ::osl::FileBase::E_None != nError ) && ( nError != ::osl::FileBase::E_EXIST ))
- printf("createTestDirectory failed!\n");
-}
-
-/** create a temp test directory using OUString name of full qualified URL or system path in a base directory.
-*/
-inline void createTestDirectory( const ::rtl::OUString basename, const ::rtl::OUString dirname )
-{
- ::rtl::OUString aBaseURL = basename.copy( 0 );
- ::rtl::OString aString;
-
- concatURL( aBaseURL, dirname );
- createTestDirectory( aBaseURL );
-}
-
-/** delete a temp test directory using OUString name of full qualified URL or system path.
-*/
-inline void deleteTestDirectory( const ::rtl::OUString dirname )
-{
- ::rtl::OUString aPathURL = dirname.copy( 0 );
- ::osl::FileBase::RC nError;
- if ( !isURL( dirname ) )
- ::osl::FileBase::getFileURLFromSystemPath( dirname, aPathURL ); //convert if not full qualified URL
-
- ::osl::Directory testDir( aPathURL );
- if ( testDir.isOpen( ) == sal_True )
- testDir.close( ); //close if still open.
-
- nError = ::osl::Directory::remove( aPathURL );
-
- rtl::OString strError (RTL_CONSTASCII_STRINGPARAM("In deleteTestDirectory function: remove Directory "));
- strError += ::rtl::OUStringToOString( aPathURL, RTL_TEXTENCODING_ASCII_US );
- CPPUNIT_ASSERT_MESSAGE( strError.getStr(), ( ::osl::FileBase::E_None == nError ) || ( nError == ::osl::FileBase::E_NOENT ) );
-}
-
-/** delete a temp test directory using OUString name of full qualified URL or system path in a base directory.
-*/
-inline void deleteTestDirectory( const ::rtl::OUString basename, const ::rtl::OUString dirname )
-{
- ::rtl::OUString aBaseURL = basename.copy( 0 );
-
- concatURL( aBaseURL, dirname );
- deleteTestDirectory( aBaseURL );
-}
-
-
-/** Check for the file and directory access right.
-*/
-typedef enum {
- osl_Check_Mode_Exist,
- osl_Check_Mode_OpenAccess,
- osl_Check_Mode_ReadAccess,
- osl_Check_Mode_WriteAccess
-} oslCheckMode;
-
-// not used here
-inline sal_Bool checkFile( const ::rtl::OUString & str, oslCheckMode nCheckMode )
-{
- ::osl::FileBase::RC nError1, nError2;
- ::osl::File testFile( str );
- sal_Bool bCheckResult;
-
- bCheckResult = sal_False;
- nError1 = testFile.open ( osl_File_OpenFlag_Read );
- if ( ( ::osl::FileBase::E_NOENT != nError1 ) && ( ::osl::FileBase::E_ACCES != nError1 ) ){
-
- switch ( nCheckMode ) {
- case osl_Check_Mode_Exist:
- /// check if the file is exist.
- if ( ::osl::FileBase::E_None == nError1 )
- bCheckResult = sal_True;
- break;
- case osl_Check_Mode_OpenAccess:
- /// check if the file is openable.
- if ( ::osl::FileBase::E_None == nError1 )
- bCheckResult = sal_True;
- break;
- case osl_Check_Mode_WriteAccess:
- /// check the file name and whether it can be written.
- /// write chars into the file.
- sal_uInt64 nCount_write;
- nError2 = testFile.write( pBuffer_Char, 10, nCount_write );
- if ( ::osl::FileBase::E_None == nError2 )
- bCheckResult = sal_True;
- break;
-
- default:
- bCheckResult = sal_False;
- }/// swith
-
- nError2 = testFile.close( );
- CPPUNIT_ASSERT_MESSAGE( " in CheckFile() function, close file ", nError2 == FileBase::E_None );
-
- }
-
- return bCheckResult;
-}
-
-//check if the file exist
-inline sal_Bool ifFileExist( const ::rtl::OUString & str )
-{
- sal_Bool bCheckResult = sal_False;
-
-/*#ifdef WNT
- ::rtl::OUString aUStr = str.copy( 0 );
- if ( isURL( str ) )
- ::osl::FileBase::getSystemPathFromFileURL( str, aUStr );
-
- ::rtl::OString aString = ::rtl::OUStringToOString( aUStr, RTL_TEXTENCODING_ASCII_US );
- const char *path = aString.getStr( );
- if (( _access( path, 0 ) ) != -1 )
- bCheckResult = sal_True;
-#else*/
- ::rtl::OString aString = ::rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US );
- // const char *path = aString.getStr( );
- ::osl::File testFile( str );
- bCheckResult = ( osl::FileBase::E_None == testFile.open( osl_File_OpenFlag_Read ) );
- //if (bCheckResult)
- //printf("%s exist!\n", path);
- //else
- //printf("%s not exist!\n", path);
-//#endif
- return bCheckResult;
-
-}
-
-//check if the file can be writen
-inline sal_Bool ifFileCanWrite( const ::rtl::OUString & str )
-{
- sal_Bool bCheckResult = sal_False;
- //on Windows, the file has no write right, but can be written
-#ifdef WNT
- ::rtl::OUString aUStr = str.copy( 0 );
- if ( isURL( str ) )
- ::osl::FileBase::getSystemPathFromFileURL( str, aUStr );
-
- ::rtl::OString aString = ::rtl::OUStringToOString( aUStr, RTL_TEXTENCODING_ASCII_US );
- const char *path = aString.getStr( );
- if (( _access( path, 2 ) ) != -1 )
- bCheckResult = sal_True;
- //on UNX, just test if open success with osl_File_OpenFlag_Write
-#else
- ::osl::File testFile( str );
- bCheckResult = (osl::FileBase::E_None == testFile.open( osl_File_OpenFlag_Write ));
-#endif
- return bCheckResult;
-}
-
-inline sal_Bool checkDirectory( const ::rtl::OUString & str, oslCheckMode nCheckMode )
-{
- rtl::OUString aUString;
- DirectoryItem rItem;
- FileBase::RC rc;
- sal_Bool bCheckResult= sal_False;
-
- //::std::auto_ptr<Directory> pDir( new Directory( str ) );
- Directory aDir( str );
- rc = aDir.open( );
-
- if ( ( ::osl::FileBase::E_NOENT != rc ) && ( ::osl::FileBase::E_ACCES != rc ) ){
-
- switch ( nCheckMode ) {
- case osl_Check_Mode_Exist:
- if ( rc == ::osl::FileBase::E_None )
- bCheckResult = sal_True;
- break;
- case osl_Check_Mode_OpenAccess:
- if ( rc == ::osl::FileBase::E_None )
- bCheckResult = sal_True;
- break;
- case osl_Check_Mode_ReadAccess:
- //rc = pDir->getNextItem( rItem, 0 );
- rc = aDir.getNextItem( rItem, 0 );
- if ( ( rc == ::osl::FileBase::E_None ) || ( rc == ::osl::FileBase::E_NOENT ) )
- bCheckResult = sal_True;
- else
- bCheckResult = sal_False;
- break;
- case osl_Check_Mode_WriteAccess:
- ( ( aUString += str ) += aSlashURL ) += aTmpName2;
- //if ( ( rc = pDir->create( aUString ) ) == ::osl::FileBase::E_None )
- if ( ( rc = Directory::create( aUString ) ) == ::osl::FileBase::E_None )
- {
- bCheckResult = sal_True;
- //rc = pDir->remove( aUString );
- rc = Directory::remove( aUString );
- CPPUNIT_ASSERT( rc == ::osl::FileBase::E_None );
- }
- else
- bCheckResult = sal_False;
- break;
-
- default:
- bCheckResult = sal_False;
- }// switch
-
- rc = aDir.close( );
- CPPUNIT_ASSERT( rc == FileBase::E_None );
-
- }//if
-
- return bCheckResult;
-}
-
-/** construct error message
-*/
-inline ::rtl::OString outputError( const ::rtl::OString & returnVal, const ::rtl::OString & rightVal, const sal_Char * msg = "")
-{
- ::rtl::OString aString;
- if ( returnVal.equals( rightVal ) )
- return aString;
- aString += msg;
- aString += ": the returned value is '";
- aString += returnVal;
- aString += "', but the value should be '";
- aString += rightVal;
- aString += "'.";
- return aString;
-}
-
-/** Change file mode, two version in UNIX and Windows;.
-*/
-#if ( defined UNX ) //chmod() method is differ in Windows
-inline void changeFileMode( ::rtl::OUString & filepath, sal_Int32 mode )
-{
- rtl::OString aString;
- rtl::OUString aUStr = filepath.copy( 0 );
-
- if ( isURL( filepath ) )
- ::osl::FileBase::getSystemPathFromFileURL( filepath, aUStr );
- aString = ::rtl::OUStringToOString( aUStr, RTL_TEXTENCODING_ASCII_US );
- chmod( aString.getStr( ), mode );
-}
-#else //Windows version
-inline void changeFileMode( ::rtl::OUString & filepath, sal_Int32 mode )
-{
- (void)filepath;
- (void)mode;
- printf("this method is not implemented yet");
-}
-#endif
-
-inline ::rtl::OUString getCurrentPID( void );
-
-
-
-//------------------------------------------------------------------------
-// Beginning of the test cases for FileBase class
-//------------------------------------------------------------------------
-namespace osl_FileBase
-{
-
- //---------------------------------------------------------------------
- // testing the method
- // static inline RC getAbsoluteFileURL( const ::rtl::OUString& ustrBaseDirectoryURL,
- // const ::rtl::OUString& ustrRelativeFileURL,
- // ::rtl::OUString& ustrAbsoluteFileURL )
- //---------------------------------------------------------------------
-
- class getAbsoluteFileURL:public CppUnit::TestFixture
- {
- //::osl::FileBase aFileBase;
- ::rtl::OUString aResultURL1, aResultURL2, aResultURL3, aResultURL4, aResultURL5, aResultURL6;
- // ::osl::FileBase::RC nError;
- sal_Bool bOk;
-
- public:
-
- void check_getAbsoluteFileURL( rtl::OUString const& _suBaseURL, rtl::OString const& _sRelativeURL, ::osl::FileBase::RC _nAssumeError, rtl::OUString const& _suAssumeResultStr );
-
- void getAbsoluteFileURL_001_1();
- void getAbsoluteFileURL_001_2();
- void getAbsoluteFileURL_001_3();
- void getAbsoluteFileURL_001_4();
- void getAbsoluteFileURL_001_5();
- void getAbsoluteFileURL_001_6();
- void getAbsoluteFileURL_001_7();
- void getAbsoluteFileURL_001_8();
- void getAbsoluteFileURL_002();
- void getAbsoluteFileURL_003();
- void getAbsoluteFileURL_004();
-
- CPPUNIT_TEST_SUITE( getAbsoluteFileURL );
- CPPUNIT_TEST( getAbsoluteFileURL_001_1 );
- CPPUNIT_TEST( getAbsoluteFileURL_001_2 );
- CPPUNIT_TEST( getAbsoluteFileURL_001_3 );
- CPPUNIT_TEST( getAbsoluteFileURL_001_4 );
- CPPUNIT_TEST( getAbsoluteFileURL_001_5 );
- CPPUNIT_TEST( getAbsoluteFileURL_001_6 );
- CPPUNIT_TEST( getAbsoluteFileURL_001_7 );
- CPPUNIT_TEST( getAbsoluteFileURL_001_8 );
- CPPUNIT_TEST( getAbsoluteFileURL_002 );
- CPPUNIT_TEST( getAbsoluteFileURL_003 );
- CPPUNIT_TEST( getAbsoluteFileURL_004 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; //class getAbsoluteFileURL
-
- void getAbsoluteFileURL::check_getAbsoluteFileURL( rtl::OUString const& _suBaseURL, rtl::OString const& _sRelativeURL, ::osl::FileBase::RC _nAssumeError, rtl::OUString const& _suAssumeResultStr )
- {
- rtl::OUString suRelativeURL = rtl::OStringToOUString(_sRelativeURL, RTL_TEXTENCODING_UTF8);
- rtl::OString sBaseURL = rtl::OUStringToOString(_suBaseURL, RTL_TEXTENCODING_UTF8);
- rtl::OUString suResultURL;
- osl::FileBase::RC nError = FileBase::getAbsoluteFileURL( _suBaseURL, suRelativeURL, suResultURL );
- rtl::OString sResultURL = rtl::OUStringToOString( suResultURL, RTL_TEXTENCODING_UTF8);
- rtl::OString sError = errorToString(nError);
- printf("getAbsoluteFileURL('%s','%s') deliver absolute URL: '%s', error '%s'\n", sBaseURL.getStr(), _sRelativeURL.getStr(),sResultURL.getStr(), sError.getStr() );
- CPPUNIT_ASSERT_MESSAGE( "Assumption is wrong: error number is wrong", nError == _nAssumeError );
- if ( nError == ::osl::FileBase::E_None )
- {
- sal_Bool bStrAreEqual = _suAssumeResultStr.equals( suResultURL );
- CPPUNIT_ASSERT_MESSAGE( "Assumption is wrong: ResultURL is not equal to expected URL ", bStrAreEqual == sal_True );
- }
- }
-
- void getAbsoluteFileURL::getAbsoluteFileURL_001_1()
- {
- rtl::OUString suAssume = aUserDirectoryURL.concat( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/relative/file1")) );
- check_getAbsoluteFileURL( aUserDirectoryURL, "relative/file1",::osl::FileBase::E_None, suAssume );
- }
- void getAbsoluteFileURL::getAbsoluteFileURL_001_2()
- {
- rtl::OUString suAssume = aUserDirectoryURL.concat( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/relative/file2")) );
- check_getAbsoluteFileURL( aUserDirectoryURL, "relative/./file2",::osl::FileBase::E_None, suAssume );
- }
- void getAbsoluteFileURL::getAbsoluteFileURL_001_3()
- {
- rtl::OUString suAssume = aUserDirectoryURL.concat( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/file3")) );
- check_getAbsoluteFileURL( aUserDirectoryURL, "relative/../file3",::osl::FileBase::E_None, suAssume );
- }
- void getAbsoluteFileURL::getAbsoluteFileURL_001_4()
- {
- rtl::OUString suAssume = aUserDirectoryURL.concat( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/file4")) );
- check_getAbsoluteFileURL( aUserDirectoryURL, "././relative/../file4",::osl::FileBase::E_None, suAssume );
- }
- void getAbsoluteFileURL::getAbsoluteFileURL_001_5()
- {
- rtl::OUString suAssume;
-#if ( defined UNX )
- suAssume = aUserDirectoryURL.concat( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/relative/")) );
-#else
- suAssume = aUserDirectoryURL.concat( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/relative")) );
-#endif
- check_getAbsoluteFileURL( aUserDirectoryURL, "././relative/.",::osl::FileBase::E_None, suAssume );
- }
- void getAbsoluteFileURL::getAbsoluteFileURL_001_6()
- {
- rtl::OUString suAssume = aUserDirectoryURL.concat( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/.relative")) );
- check_getAbsoluteFileURL( aUserDirectoryURL, "./.relative",::osl::FileBase::E_None, suAssume );
- }
- void getAbsoluteFileURL::getAbsoluteFileURL_001_7()
- {
- rtl::OUString suAssume;
-#if (defined UNX )
- suAssume = aUserDirectoryURL.concat( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/.a/")) );
-#else //windows
- suAssume = aUserDirectoryURL.concat( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/.a")) );
-#endif
- check_getAbsoluteFileURL( aUserDirectoryURL, "./.a/mydir/..",::osl::FileBase::E_None, suAssume );
- }
- void getAbsoluteFileURL::getAbsoluteFileURL_001_8()
- {
- rtl::OUString suAssume = aUserDirectoryURL.concat( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/tmp/ok")) );
-#if ( defined UNX )
- check_getAbsoluteFileURL( aUserDirectoryURL, "tmp//ok",::osl::FileBase::E_None, suAssume );
-#else
- check_getAbsoluteFileURL( aUserDirectoryURL, "tmp//ok",::osl::FileBase::E_INVAL, suAssume );
-#endif
- }
- void getAbsoluteFileURL::getAbsoluteFileURL_002()
- {
-#if ( defined UNX ) //Link is not defined in Windows
- ::rtl::OUString aUStr_AbsURL, aUStr_LnkFileSys( aTempDirectorySys ), aUStr_SrcFileSys( aTempDirectorySys );
- ( ( aUStr_LnkFileSys += aSlashURL ) += getCurrentPID( ) ) += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/link.file"));
- ( ( aUStr_SrcFileSys += aSlashURL ) += getCurrentPID( ) ) += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/canonical.name"));
-
- rtl::OString strLinkFileName, strSrcFileName;
- strLinkFileName = OUStringToOString( aUStr_LnkFileSys, RTL_TEXTENCODING_ASCII_US );
- strSrcFileName = OUStringToOString( aUStr_SrcFileSys, RTL_TEXTENCODING_ASCII_US );
-
- createTestFile( aCanURL1 );
- sal_Int32 fd = symlink( strSrcFileName.getStr(), strLinkFileName.getStr() );
- CPPUNIT_ASSERT( fd == 0 );
- rtl::OString sLnkURL = OUStringToOString( aLnkURL1, RTL_TEXTENCODING_ASCII_US );
- rtl::OUString suAssume = aUserDirectoryURL.concat( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/canonical.name")) );
- check_getAbsoluteFileURL( aUserDirectoryURL, sLnkURL, ::osl::FileBase::E_None, suAssume );
- deleteTestFile( aCanURL1 );
- fd = remove( strLinkFileName.getStr() );
- CPPUNIT_ASSERT( fd == 0 );
-#endif
- }
- //please see line# 930
- void getAbsoluteFileURL::getAbsoluteFileURL_003()
- {
- }
- void getAbsoluteFileURL::getAbsoluteFileURL_004()
- {
- //create two level directories under $Temp/PID/
- ::rtl::OUString aUStrUpBase = aUserDirectoryURL + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/test1"));
- createTestDirectory( aUStrUpBase );
- ::rtl::OUString aUStrBase = aUserDirectoryURL + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/test1/dir1"));
- createTestDirectory( aUStrBase );
-
- ::rtl::OUString suAssume = aUserDirectoryURL.concat( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/mytestfile")) );
- check_getAbsoluteFileURL( aUStrBase, "../../mytestfile" , ::osl::FileBase::E_None, suAssume );
- deleteTestDirectory( aUStrBase );
- deleteTestDirectory( aUStrUpBase );
- }
- //---------------------------------------------------------------------
- // testing two methods:
- // static inline RC getSystemPathFromFileURL( const ::rtl::OUString& ustrFileURL,
- // ::rtl::OUString& ustrSystemPath )
- // static RC getFileURLFromSystemPath( const ::rtl::OUString & ustrSystemPath,
- // ::rtl::OUString & ustrFileURL );
- //---------------------------------------------------------------------
- class SystemPath_FileURL:public CppUnit::TestFixture
- {
- //::osl::FileBase aFileBase;
- // ::rtl::OUString aUStr;
- // ::osl::FileBase::RC nError;
-
- //void check_getSystemPathFromFileURL(rtl::OString const& _sURL, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sAssumeResultStr);
- void check_SystemPath_FileURL(rtl::OString const& _sSource, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sAssumeResultStr, sal_Bool bDirection = sal_True );
- void checkWNTBehaviour_getSystemPathFromFileURL(rtl::OString const& _sURL, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sWNTAssumeResultString );
- void checkUNXBehaviour_getSystemPathFromFileURL(rtl::OString const& _sURL, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sUnixAssumeResultString );
- void checkWNTBehaviour_getFileURLFromSystemPath(rtl::OString const& _sSysPath, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sWNTAssumeResultString);
- void checkUNXBehaviour_getFileURLFromSystemPath(rtl::OString const& _sSysPath, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sUnixAssumeResultString);
-
- public:
- // test code.
- void getSystemPathFromFileURL_001_1( );
- void getSystemPathFromFileURL_001_2( );
- void getSystemPathFromFileURL_001_21( );
- void getSystemPathFromFileURL_001_22( );
- void getSystemPathFromFileURL_001_3( );
- void getSystemPathFromFileURL_001_31( );
- void getSystemPathFromFileURL_001_4( );
- void getSystemPathFromFileURL_001_41( );
- void getSystemPathFromFileURL_001_5( );
- void getSystemPathFromFileURL_001_51( );
- void getSystemPathFromFileURL_001_52( );
- void getSystemPathFromFileURL_001_53( );
- void getSystemPathFromFileURL_001_6( );
- void getSystemPathFromFileURL_001_61( );
- void getSystemPathFromFileURL_001_7( );
- void getSystemPathFromFileURL_001_71( );
- void getSystemPathFromFileURL_001_8( );
- void getSystemPathFromFileURL_001_81( );
- void getSystemPathFromFileURL_001_9( );
- void getSystemPathFromFileURL_001_91( );
- void getSystemPathFromFileURL_001_92( );
- void getSystemPathFromFileURL_004( );
- void getSystemPathFromFileURL_005( );
-
- //test case fot getFileURLFromSystemPath
- void getFileURLFromSystemPath_001( );
- void getFileURLFromSystemPath_002( );
- void getFileURLFromSystemPath_003( );
- void getFileURLFromSystemPath_004( );
- void getFileURLFromSystemPath_005( );
-
- CPPUNIT_TEST_SUITE( SystemPath_FileURL );
- CPPUNIT_TEST( getSystemPathFromFileURL_001_1 );
- CPPUNIT_TEST( getSystemPathFromFileURL_001_2 );
- CPPUNIT_TEST( getSystemPathFromFileURL_001_21 );
- CPPUNIT_TEST( getSystemPathFromFileURL_001_22 );
- CPPUNIT_TEST( getSystemPathFromFileURL_001_3 );
- CPPUNIT_TEST( getSystemPathFromFileURL_001_31 );
- CPPUNIT_TEST( getSystemPathFromFileURL_001_4 );
- CPPUNIT_TEST( getSystemPathFromFileURL_001_41 );
- CPPUNIT_TEST( getSystemPathFromFileURL_001_5 );
- CPPUNIT_TEST( getSystemPathFromFileURL_001_51 );
- CPPUNIT_TEST( getSystemPathFromFileURL_001_52 );
- CPPUNIT_TEST( getSystemPathFromFileURL_001_53 );
- CPPUNIT_TEST( getSystemPathFromFileURL_001_6 );
- CPPUNIT_TEST( getSystemPathFromFileURL_001_61 );
- CPPUNIT_TEST( getSystemPathFromFileURL_001_7 );
- CPPUNIT_TEST( getSystemPathFromFileURL_001_71 );
- CPPUNIT_TEST( getSystemPathFromFileURL_001_8 );
- CPPUNIT_TEST( getSystemPathFromFileURL_001_81 );
- CPPUNIT_TEST( getSystemPathFromFileURL_001_9 );
- CPPUNIT_TEST( getSystemPathFromFileURL_001_91 );
- CPPUNIT_TEST( getSystemPathFromFileURL_001_92 );
- CPPUNIT_TEST( getSystemPathFromFileURL_004 );
- CPPUNIT_TEST( getSystemPathFromFileURL_005 );
- CPPUNIT_TEST( getFileURLFromSystemPath_001 );
- CPPUNIT_TEST( getFileURLFromSystemPath_002 );
- CPPUNIT_TEST( getFileURLFromSystemPath_003 );
- CPPUNIT_TEST( getFileURLFromSystemPath_004 );
- CPPUNIT_TEST( getFileURLFromSystemPath_005 );
- CPPUNIT_TEST_SUITE_END( );
- };// class SystemPath_FileURL
-
-
- // if bDirection==sal_True, check getSystemPathFromFileURL
- // if bDirection==sal_False, check getFileURLFromSystemPath
- void SystemPath_FileURL::check_SystemPath_FileURL(rtl::OString const& _sSource, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sAssumeResultStr, sal_Bool bDirection)
- {
- // PRE: URL as String
- rtl::OUString suSource;
- rtl::OUString suStr;
- suSource = rtl::OStringToOUString(_sSource, RTL_TEXTENCODING_UTF8);
- ::osl::FileBase::RC nError;
- if ( bDirection == sal_True )
- nError = osl::FileBase::getSystemPathFromFileURL( suSource, suStr );
- else
- nError = osl::FileBase::getFileURLFromSystemPath( suSource, suStr );
-
- // if the given string is gt length 0,
- // we check also this string
- rtl::OString sStr = rtl::OUStringToOString(suStr, RTL_TEXTENCODING_UTF8);
- rtl::OString sError = errorToString(nError);
- if ( bDirection == sal_True )
- printf("getSystemPathFromFileURL('%s') deliver system path: '%s', error '%s'\n", _sSource.getStr(), sStr.getStr(), sError.getStr() );
- else
- printf("getFileURLFromSystemPath('%s') deliver File URL: '%s', error '%s'\n", _sSource.getStr(), sStr.getStr(), sError.getStr() );
-
- // rtl::OUString suStrEncode = rtl::Uri::encode(suStr, rtl_UriCharClassUnoParamValue, rtl_UriEncodeKeepEscapes, RTL_TEXTENCODING_UTF8);
- // sStr = rtl::OUStringToOString(suStr, RTL_TEXTENCODING_UTF8);
- // printf("UTF8: %s\n", sStr.getStr() );
-
- if (_sAssumeResultStr.getLength() > 0)
- {
- sal_Bool bStrAreEqual = _sAssumeResultStr.equals(sStr);
- CPPUNIT_ASSERT_MESSAGE( "Assumption is wrong",
- nError == _nAssumeError && bStrAreEqual == sal_True );
- }
- else
- {
- CPPUNIT_ASSERT_MESSAGE( "Assumption is wrong", nError == _nAssumeError );
- }
- }
- void SystemPath_FileURL::checkWNTBehaviour_getSystemPathFromFileURL(rtl::OString const& _sURL, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sWNTAssumeResultString)
- {
-#if ( defined WNT )
- check_SystemPath_FileURL(_sURL, _nAssumeError, _sWNTAssumeResultString);
-#else
- (void)_sURL;
- (void)_nAssumeError;
- (void)_sWNTAssumeResultString;
-#endif
- }
-
- void SystemPath_FileURL::checkUNXBehaviour_getSystemPathFromFileURL(rtl::OString const& _sURL, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sUnixAssumeResultString)
- {
-#if ( defined UNX )
- check_SystemPath_FileURL(_sURL, _nAssumeError, _sUnixAssumeResultString);
-#else
- (void)_sURL;
- (void)_nAssumeError;
- (void)_sUnixAssumeResultString;
-#endif
- }
-
- void SystemPath_FileURL::checkWNTBehaviour_getFileURLFromSystemPath(rtl::OString const& _sSysPath, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sWNTAssumeResultString)
- {
-#if ( defined WNT )
- check_SystemPath_FileURL(_sSysPath, _nAssumeError, _sWNTAssumeResultString, sal_False );
-#else
- (void)_sSysPath;
- (void)_nAssumeError;
- (void)_sWNTAssumeResultString;
-#endif
- }
-
- void SystemPath_FileURL::checkUNXBehaviour_getFileURLFromSystemPath(rtl::OString const& _sSysPath, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sUnixAssumeResultString)
- {
-#if ( defined UNX )
- check_SystemPath_FileURL(_sSysPath, _nAssumeError, _sUnixAssumeResultString, sal_False );
-#else
- (void)_sSysPath;
- (void)_nAssumeError;
- (void)_sUnixAssumeResultString;
-#endif
- }
-
- /** LLA: Test for getSystemPathFromFileURL()
- this test is splitted into 2 different OS tests,
- the first function checkUNXBehaviour... runs only on Unix based Systems,
- the second only on windows based systems
- the first parameter are a file URL where we want to get the system path of,
- the second parameter is the assumed error of the osl_getSystemPathFromFileURL() function,
- the thrid parameter is the assumed result string, the string will only test, if it's length is greater 0
- */
-
- void SystemPath_FileURL::getSystemPathFromFileURL_001_1()
- {
- rtl::OString sURL("");
- checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, "");
- checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, "");
- }
-
- void SystemPath_FileURL::getSystemPathFromFileURL_001_2()
- {
- rtl::OString sURL("/");
- checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, "");
- checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "\\");
- }
- void SystemPath_FileURL::getSystemPathFromFileURL_001_21()
- {
- // rtl::OString sURL("%2f");
- rtl::OString sURL("%2F");
- checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "/"); // LLA: this is may be a BUG
- checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, "");
- }
- void SystemPath_FileURL::getSystemPathFromFileURL_001_22()
- {
- rtl::OString sURL("file:///tmp%2Fmydir");
- checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, "");
- checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, "");
- }
- void SystemPath_FileURL::getSystemPathFromFileURL_001_3()
- {
- rtl::OString sURL("a");
- checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "a");
- checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "a");
- }
- void SystemPath_FileURL::getSystemPathFromFileURL_001_31()
- {
- rtl::OString sURL("tmpname");
- checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "tmpname");
- checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "tmpname");
- }
- void SystemPath_FileURL::getSystemPathFromFileURL_001_4()
- {
- rtl::OString sURL("file://");
- checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "");
- checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, "");
- }
- void SystemPath_FileURL::getSystemPathFromFileURL_001_41()
- {
- rtl::OString sURL("file://localhost/tmp");
- checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "");
- checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, "");
- }
- void SystemPath_FileURL::getSystemPathFromFileURL_001_5()
- {
- rtl::OString sURL("file:///tmp");
- checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "/tmp");
- checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, "");
- }
- void SystemPath_FileURL::getSystemPathFromFileURL_001_51()
- {
- rtl::OString sURL("file://c:/tmp");
- checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "c:/tmp"); // LLA: this is may be a BUG
- checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, "");
- }
- void SystemPath_FileURL::getSystemPathFromFileURL_001_52()
- {
- rtl::OString sURL("file:///c:/tmp");
- checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "/c:/tmp");
- checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "c:\\tmp");
- }
- void SystemPath_FileURL::getSystemPathFromFileURL_001_53()
- {
-// LLA: is this a legal file path?
- rtl::OString sURL("file:///c|/tmp");
- checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "/c|/tmp");
- checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "c:\\tmp");
- }
- void SystemPath_FileURL::getSystemPathFromFileURL_001_6()
- {
- rtl::OString sURL("file:///tmp/first");
- checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "/tmp/first");
- checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, "");
- }
- void SystemPath_FileURL::getSystemPathFromFileURL_001_61()
- {
- rtl::OString sURL("file:///c:/tmp/first");
- checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "/c:/tmp/first");
- checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "c:\\tmp\\first");
- }
- void SystemPath_FileURL::getSystemPathFromFileURL_001_7()
- {
- rtl::OString sURL("file:///tmp/../second");
- checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "/tmp/../second"); // LLA: may be a BUG
- checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, "");
- }
- void SystemPath_FileURL::getSystemPathFromFileURL_001_71()
- {
- rtl::OString sURL("file:///c:/tmp/../second");
- checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "/c:/tmp/../second");
- checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "c:\\tmp\\..\\second");
- }
- void SystemPath_FileURL::getSystemPathFromFileURL_001_8()
- {
- rtl::OString sURL("../tmp");
- checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "../tmp");
- checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "..\\tmp");
- }
- void SystemPath_FileURL::getSystemPathFromFileURL_001_81()
- {
- rtl::OString sURL("file://~/tmp");
- char* home_path;
- home_path = getenv("HOME");
- rtl::OString expResult(home_path);
- expResult += "/tmp";
- checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, expResult );
- // checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "\\tmp");
- }
- void SystemPath_FileURL::getSystemPathFromFileURL_001_9()
- {
- rtl::OString sURL("file:///tmp/first%20second");
- checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "/tmp/first second");
- checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, "");
- }
- void SystemPath_FileURL::getSystemPathFromFileURL_001_91()
- {
- rtl::OString sURL("file:///c:/tmp/first%20second");
- checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "/c:/tmp/first second");
- checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "c:\\tmp\\first second");
- }
-
- void SystemPath_FileURL::getSystemPathFromFileURL_001_92()
- {
- rtl::OString sURL("ca@#;+.,$///78no%01ni..name");
- checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "");
- checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, "");
- }
-
- //normal legal case
- void SystemPath_FileURL::getSystemPathFromFileURL_004( )
- {
- ::rtl::OUString aUStr;
- ::rtl::OUString aUNormalURL( aTmpName6 );
- ::rtl::OUString aUResultURL ( aSysPath4 );
- ::osl::FileBase::RC nError = osl::FileBase::getSystemPathFromFileURL( aUNormalURL, aUStr );
-
- sal_Bool bOk = compareFileName( aUStr, aUResultURL );
-
- ::rtl::OString sError("test for getSystemPathFromFileURL(' ");
- sError += ::rtl::OUStringToOString( aUNormalURL, RTL_TEXTENCODING_ASCII_US );
- sError += " ') function:use an absolute file URL, ";
- sError += outputError(::rtl::OUStringToOString( aUStr, RTL_TEXTENCODING_ASCII_US ),
- ::rtl::OUStringToOString( aUResultURL, RTL_TEXTENCODING_ASCII_US ));
-
- CPPUNIT_ASSERT_MESSAGE(sError.getStr(), ( osl::FileBase::E_None == nError ) && ( sal_True == bOk ) );
-
- }
-
- //CJK charactors case
- void SystemPath_FileURL::getSystemPathFromFileURL_005( )
- {
- ::rtl::OUString aUStr;
- createTestDirectory( aTmpName10 );
- ::rtl::OUString aUNormalURL( aTmpName10 );
- ::rtl::OUString aUResultURL ( aSysPath5 );
-
- ::osl::FileBase::RC nError = osl::FileBase::getSystemPathFromFileURL( aUNormalURL, aUStr );
-
- sal_Bool bOk = compareFileName( aUStr, aUResultURL );
-
- ::rtl::OString sError("test for getSystemPathFromFileURL(' ");
- sError += ::rtl::OUStringToOString( aUNormalURL, RTL_TEXTENCODING_ASCII_US );
- sError += " ') function:use a CJK coded absolute URL, ";
- sError += outputError(::rtl::OUStringToOString( aUStr, RTL_TEXTENCODING_ASCII_US ),
- ::rtl::OUStringToOString( aUResultURL, RTL_TEXTENCODING_ASCII_US ));
- deleteTestDirectory( aTmpName10 );
-
- CPPUNIT_ASSERT_MESSAGE( sError.getStr(), ( osl::FileBase::E_None == nError ) && ( sal_True == bOk ) );
- }
-
- void SystemPath_FileURL::getFileURLFromSystemPath_001()
- {
- rtl::OString sSysPath("~/tmp");
- char* home_path;
- home_path = getenv("HOME");
- rtl::OString expResult(home_path);
- expResult = "file://"+ expResult + "/tmp";
- checkUNXBehaviour_getFileURLFromSystemPath(sSysPath, osl::FileBase::E_None, expResult );
- checkWNTBehaviour_getFileURLFromSystemPath(sSysPath, osl::FileBase::E_None, "~/tmp");
- }
- void SystemPath_FileURL::getFileURLFromSystemPath_002()
- {
- rtl::OString sSysPath("c:/tmp");
- checkUNXBehaviour_getFileURLFromSystemPath(sSysPath, osl::FileBase::E_None, "c:/tmp");
- checkWNTBehaviour_getFileURLFromSystemPath(sSysPath, osl::FileBase::E_None, "file:///c:/tmp");
- }
- void SystemPath_FileURL::getFileURLFromSystemPath_003()
- {
- rtl::OString sSysPath("file:///temp");
- checkUNXBehaviour_getFileURLFromSystemPath(sSysPath, osl::FileBase::E_INVAL, "");
- checkWNTBehaviour_getFileURLFromSystemPath(sSysPath, osl::FileBase::E_INVAL, "");
- }
- void SystemPath_FileURL::getFileURLFromSystemPath_004()
- {
- rtl::OString sSysPath("//tmp//first start");
- checkUNXBehaviour_getFileURLFromSystemPath(sSysPath, osl::FileBase::E_None, "file:///tmp/first%20start");
- checkWNTBehaviour_getFileURLFromSystemPath(sSysPath, osl::FileBase::E_INVAL, "");
- }
- void SystemPath_FileURL::getFileURLFromSystemPath_005()
- {
- rtl::OString sSysPath("");
- checkUNXBehaviour_getFileURLFromSystemPath(sSysPath, osl::FileBase::E_INVAL, "");
- checkWNTBehaviour_getFileURLFromSystemPath(sSysPath, osl::FileBase::E_INVAL, "");
- }
- // start with "~user", not impletment
- // void SystemPath_FileURL::getFileURLFromSystemPath_006()
-
-
-
-
- //---------------------------------------------------------------------
- // testing the method
- // static inline RC searchFileURL( const ::rtl::OUString& ustrFileName,
- // const ::rtl::OUString& ustrSearchPath,
- // ::rtl::OUString& ustrFileURL )
- //---------------------------------------------------------------------
- class searchFileURL:public CppUnit::TestFixture
- {
- //::osl::FileBase aFileBase;
- ::rtl::OUString aUStr;
- ::osl::FileBase::RC nError1, nError2, nError3,nError4;
-
- public:
-
- // test code.
- void searchFileURL_001( )
- {
- /* search file is passed by system filename */
- nError1 = ::osl::FileBase::searchFileURL( aTmpName1, aUserDirectorySys, aUStr );
- /* search file is passed by full qualified file URL */
- nError2 = ::osl::FileBase::searchFileURL( aCanURL1, aUserDirectorySys, aUStr );
- /* search file is passed by relative file path */
- nError3 = ::osl::FileBase::searchFileURL( aRelURL4, aUserDirectorySys, aUStr );
-
- CPPUNIT_ASSERT_MESSAGE( "test for searchFileURL function: system filename/URL filename/relative path, system directory, searched files that is not exist, but it reply invalid error, did not pass in (W32) ",
- ( osl::FileBase::E_NOENT == nError1 ) &&
- ( osl::FileBase::E_NOENT == nError2 ) &&
- ( osl::FileBase::E_NOENT == nError3 ));
- }
-
- void searchFileURL_002( )
- {
- /* search file is passed by system filename */
- nError1 = ::osl::FileBase::searchFileURL( aTempDirectorySys, aRootSys, aUStr );
- sal_Bool bOk1 = compareFileName( aUStr, aTempDirectoryURL );
- /* search file is passed by full qualified file URL */
- nError2 = ::osl::FileBase::searchFileURL( aTempDirectoryURL, aRootSys, aUStr );
- sal_Bool bOk2 = compareFileName( aUStr, aTempDirectoryURL );
- /* search file is passed by relative file path */
- nError3 = ::osl::FileBase::searchFileURL( aRelURL5, aRootSys, aUStr );
- sal_Bool bOk3 = compareFileName( aUStr, aTempDirectoryURL );
- /* search file is passed by an exist file */
- createTestFile( aCanURL1 );
- nError4 = ::osl::FileBase::searchFileURL( aCanURL4, aUserDirectorySys, aUStr );
- sal_Bool bOk4 = compareFileName( aUStr, aCanURL1 );
- deleteTestFile( aCanURL1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for searchFileURL function: system filename/URL filename/relative path, system directory, searched file already exist.",
- ( osl::FileBase::E_None == nError1 ) &&
- ( osl::FileBase::E_None == nError2 ) &&
- ( osl::FileBase::E_None == nError3 ) &&
- ( osl::FileBase::E_None == nError4 ) &&
- ( sal_True == bOk1 ) &&
- ( sal_True == bOk2 ) &&
- ( sal_True == bOk3 ) &&
- ( sal_True == bOk4 ) );
- }
-
-
- void searchFileURL_003( )
- {
- OSLTEST_DECLARE( SystemPathList, TEST_PLATFORM_ROOT":"TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP":"TEST_PLATFORM_ROOT"system/path" );
- nError1 = ::osl::FileBase::searchFileURL( aUserDirectoryURL, aSystemPathList, aUStr );
- sal_Bool bOk = compareFileName( aUStr, aUserDirectoryURL );
- CPPUNIT_ASSERT_MESSAGE( "test for searchFileURL function: search directory is a list of system paths",
- ( osl::FileBase::E_None == nError1 ) &&
- ( sal_True == bOk ) );
- }
-
- void searchFileURL_004( )
- {
- OSLTEST_DECLARE( SystemPathList, TEST_PLATFORM_ROOT PATH_LIST_DELIMITER TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP PATH_LIST_DELIMITER TEST_PLATFORM_ROOT "system/path/../name" );
- nError1 = ::osl::FileBase::searchFileURL( aUserDirectoryURL, aSystemPathList, aUStr );
- sal_Bool bOk = compareFileName( aUStr, aUserDirectoryURL );
- CPPUNIT_ASSERT_MESSAGE( "test for searchFileURL function: search directory is a list of system paths",
- ( osl::FileBase::E_None == nError1 ) &&
- ( sal_True == bOk ) );
- }
-
- void searchFileURL_005( )
- {
- nError1 = ::osl::FileBase::searchFileURL( aUserDirectoryURL, aNullURL, aUStr );
- sal_Bool bOk = compareFileName( aUStr, aUserDirectoryURL );
- CPPUNIT_ASSERT_MESSAGE( "test for searchFileURL function: search directory is NULL",
- ( osl::FileBase::E_None == nError1 ) &&
- ( sal_True == bOk ) );
- }
-
- CPPUNIT_TEST_SUITE( searchFileURL );
- CPPUNIT_TEST( searchFileURL_001 );
- CPPUNIT_TEST( searchFileURL_002 );
- CPPUNIT_TEST( searchFileURL_003 );
- CPPUNIT_TEST( searchFileURL_004 );
- CPPUNIT_TEST( searchFileURL_005 );
- CPPUNIT_TEST_SUITE_END( );
- };// class searchFileURL
-
-
- //---------------------------------------------------------------------
- // testing the method
- // static inline RC getTempDirURL( ::rtl::OUString& ustrTempDirURL )
- //---------------------------------------------------------------------
- class getTempDirURL:public CppUnit::TestFixture
- {
- //::osl::FileBase aFileBase;
- ::rtl::OUString aUStr;
- ::osl::FileBase::RC nError;
-
- public:
- // initialization
- void setUp( )
- {
- nError = FileBase::getTempDirURL( aUStr );
- }
-
- void tearDown( )
- {
- }
-
- // test code.
- void getTempDirURL_001( )
- {
-
- CPPUNIT_ASSERT_MESSAGE( "test for getTempDirURL function: excution",
- ( osl::FileBase::E_None == nError ) );
- }
-
- void getTempDirURL_002( )
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getTempDirURL function: test for open and write access rights",
- checkDirectory( aUStr, osl_Check_Mode_OpenAccess ) &&
- checkDirectory( aUStr, osl_Check_Mode_ReadAccess ) &&
- checkDirectory( aUStr,osl_Check_Mode_WriteAccess ) );
- }
-
- CPPUNIT_TEST_SUITE( getTempDirURL );
- CPPUNIT_TEST( getTempDirURL_001 );
- CPPUNIT_TEST( getTempDirURL_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getTempDirURL
-
-
- //---------------------------------------------------------------------
- // testing the method
- // static inline RC createTempFile( ::rtl::OUString* pustrDirectoryURL,
- // oslFileHandle* pHandle,
- // ::rtl::OUString* pustrTempFileURL)
- //---------------------------------------------------------------------
- class createTempFile:public CppUnit::TestFixture
- {
- //::osl::FileBase aFileBase;
- ::osl::FileBase::RC nError1, nError2;
- sal_Bool bOK;
-
- oslFileHandle *pHandle;
- ::rtl::OUString *pUStr_DirURL;
- ::rtl::OUString *pUStr_FileURL;
-
- public:
-
- // initialization
- void setUp( )
- {
- pHandle = new oslFileHandle();
- pUStr_DirURL = new ::rtl::OUString( aUserDirectoryURL );
- pUStr_FileURL = new ::rtl::OUString();
- //*pUStr_DirURL = aUserDirectoryURL; /// create temp file in /tmp/PID or c:\temp\PID.*/
- }
-
- void tearDown( )
- {
- delete pUStr_DirURL;
- delete pUStr_FileURL;
- delete pHandle;
- }
-
- // test code.
- void createTempFile_001( )
- {
- nError1 = FileBase::createTempFile( pUStr_DirURL, pHandle, pUStr_FileURL );
- ::osl::File testFile( *pUStr_FileURL );
- nError2 = testFile.open( osl_File_OpenFlag_Create );
- if ( osl::FileBase::E_EXIST == nError2 ) {
- osl_closeFile( *pHandle );
- deleteTestFile( *pUStr_FileURL );
- }
-
- CPPUNIT_ASSERT_MESSAGE( "test for createTempFile function: create temp file and test the existence",
- ( osl::FileBase::E_None == nError1 ) && ( pHandle != NULL ) && ( osl::FileBase::E_EXIST== nError2 ) );
- }
-
- void createTempFile_002( )
- {
- bOK = sal_False;
- nError1 = FileBase::createTempFile( pUStr_DirURL, pHandle, pUStr_FileURL );
- ::osl::File testFile( *pUStr_FileURL );
- nError2 = testFile.open( osl_File_OpenFlag_Create );
-
- CPPUNIT_ASSERT_MESSAGE( "createTempFile function: create a temp file, but it does not exist",
- ( osl::FileBase::E_None == nError1 ) && ( pHandle != NULL ) &&
- ( osl::FileBase::E_EXIST == nError2 ) );
-
- //check file if have the write permission
- if ( osl::FileBase::E_EXIST == nError2 ) {
- bOK = ifFileCanWrite( *pUStr_FileURL );
- osl_closeFile( *pHandle );
- deleteTestFile( *pUStr_FileURL );
- }
-
- CPPUNIT_ASSERT_MESSAGE( "test for open and write access rights, in (W32), it did not have write access right, but it should be writtenable.",
- ( sal_True == bOK ) );
- }
-
- void createTempFile_003( )
- {
- nError1 = FileBase::createTempFile( pUStr_DirURL, pHandle, 0 );
- //the temp file will be removed when return from createTempFile
- bOK = ( pHandle != NULL && pHandle != 0);
- if ( sal_True == bOK )
- osl_closeFile( *pHandle );
-
- CPPUNIT_ASSERT_MESSAGE( "test for createTempFile function: set pUStrFileURL to 0 to let it remove the file after call.",
- ( ::osl::FileBase::E_None == nError1 ) &&( sal_True == bOK ) );
- }
- void createTempFile_004( )
- {
- nError1 = FileBase::createTempFile( pUStr_DirURL, 0, pUStr_FileURL );
- bOK = ( pUStr_FileURL != 0);
- ::osl::File testFile( *pUStr_FileURL );
- nError2 = testFile.open( osl_File_OpenFlag_Create );
- deleteTestFile( *pUStr_FileURL );
- CPPUNIT_ASSERT_MESSAGE( "createTempFile function: create a temp file, but it does not exist",
- ( osl::FileBase::E_None == nError1 ) && ( osl::FileBase::E_EXIST == nError2 ) &&( sal_True == bOK ) );
-
- }
-
- CPPUNIT_TEST_SUITE( createTempFile );
- CPPUNIT_TEST( createTempFile_001 );
- CPPUNIT_TEST( createTempFile_002 );
- CPPUNIT_TEST( createTempFile_003 );
- CPPUNIT_TEST( createTempFile_004 );
- CPPUNIT_TEST_SUITE_END( );
- };// class createTempFile
-
- // -----------------------------------------------------------------------------
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileBase::getAbsoluteFileURL, "osl_FileBase" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileBase::SystemPath_FileURL, "osl_FileBase" );
- // CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileBase::getFileURLFromSystemPath, "osl_FileBase" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileBase::searchFileURL, "osl_FileBase" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileBase::getTempDirURL, "osl_FileBase" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileBase::createTempFile, "osl_FileBase" );
-}// namespace osl_FileBase
-
-
-//------------------------------------------------------------------------
-// Beginning of the test cases for VolumeInfo class
-//------------------------------------------------------------------------
-namespace osl_VolumeInfo
-{
-
- //---------------------------------------------------------------------
- // testing the method
- // VolumeInfo( sal_uInt32 nMask ): _nMask( nMask )
- //---------------------------------------------------------------------
- class ctors : public CppUnit::TestFixture
- {
- ::rtl::OUString aUStr;
- ::osl::FileBase::RC nError1, nError2;
-
- ::osl::VolumeDevice aVolumeDevice1;
-
- public:
- // initialization
- void setUp( )
- {
- }
-
- void tearDown( )
- {
- }
-
- // test code.
- void ctors_001( )
- {
- ::osl::VolumeInfo aVolumeInfo( 0 );
- nError1 = ::osl::Directory::getVolumeInfo( aRootURL, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- sal_uInt64 uiTotalSpace = aVolumeInfo.getTotalSpace( );
- sal_uInt32 uiMaxPathLength = aVolumeInfo.getMaxPathLength( );
- aUStr = aVolumeInfo.getFileSystemName( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors function: mask is empty",
- ( 0 == uiTotalSpace ) &&
- ( 0 == uiMaxPathLength ) &&
- sal_True == compareFileName( aUStr, aNullURL ) );
- }
-
-#if ( defined UNX )
- void ctors_002( )
- {
- ::osl::VolumeInfo aVolumeInfo( osl_VolumeInfo_Mask_TotalSpace |
- osl_VolumeInfo_Mask_UsedSpace |
- osl_VolumeInfo_Mask_FileSystemName );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL4, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- //CPPUNIT_ASSERT( aVolumeInfo.isValid( mask ) );
- sal_uInt64 uiTotalSpace = aVolumeInfo.getTotalSpace( );
- sal_uInt64 uiUsedSpace = aVolumeInfo.getUsedSpace( );
- aUStr = aVolumeInfo.getFileSystemName( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors function: mask is specified as certain valid fields, and get the masked fields",
- ( 0 != uiTotalSpace ) &&
- ( 0 != uiUsedSpace ) &&
- sal_True == compareFileName( aUStr, "nfs" ) );
- }
-#else /// Windows version,here we can not determine whichvolume in Windows is serve as an nfs volume.
- void ctors_002( )
- {
- CPPUNIT_ASSERT_MESSAGE( "test for ctors function: mask is specified as certain valid fields, and get the masked fields( Windows version )",
- 1 == 1 );
- }
-#endif
-
- void ctors_003( )
- {
-
- sal_Int32 mask1 = osl_VolumeInfo_Mask_FreeSpace;
- ::osl::VolumeInfo aVolumeInfo1( mask1 );
- nError1 = ::osl::Directory::getVolumeInfo( aRootURL, aVolumeInfo1 );
- CPPUNIT_ASSERT( sal_True == aVolumeInfo1.isValid( mask1 ) );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
-
- sal_uInt64 uiTotalSpace1 = aVolumeInfo1.getTotalSpace( );
- aUStr = aVolumeInfo1.getFileSystemName( );
-
- sal_Int32 mask2 = osl_VolumeInfo_Mask_TotalSpace;
- ::osl::VolumeInfo aVolumeInfo2( mask2 );
- nError2 = ::osl::Directory::getVolumeInfo( aRootURL, aVolumeInfo2 );
- CPPUNIT_ASSERT( sal_True == aVolumeInfo2.isValid( mask2 ) );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError2 );
-
- sal_uInt64 uiTotalSpace2 = aVolumeInfo2.getTotalSpace( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors function: mask is specified as certain valid fields, but get unmasked fields, use mask to FreeSpace, but I can get TotalSpace, did not pass in (UNX)(W32)",
- ( 0 == uiTotalSpace1 ) && ( 0 != uiTotalSpace2 ) &&
- sal_True == compareFileName( aUStr, aNullURL ) );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_001 );
- CPPUNIT_TEST( ctors_002 );
- CPPUNIT_TEST( ctors_003 );
- CPPUNIT_TEST_SUITE_END( );
- };// class ctors
-
-
- //---------------------------------------------------------------------
- // testing the method
- // inline sal_Bool isValid( sal_uInt32 nMask ) const
- //---------------------------------------------------------------------
- class isValid : public CppUnit::TestFixture
- {
- ::osl::VolumeDevice aVolumeDevice;
- ::rtl::OUString aUStr;
- ::osl::FileBase::RC nError1, nError2;
-
- public:
- // initialization
- void setUp( )
- {
- }
-
- void tearDown( )
- {
-
- }
-
- // test code.
- void isValid_001( )
- {
- sal_Int32 mask = 0;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL4, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isValid function: no fields specified.",
- sal_True == aVolumeInfo.isValid( mask ) );
- }
-
-#if ( defined UNX )
- void isValid_002( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_Attributes | osl_VolumeInfo_Mask_TotalSpace | osl_VolumeInfo_Mask_UsedSpace |
- osl_VolumeInfo_Mask_FreeSpace | osl_VolumeInfo_Mask_MaxNameLength |
- osl_VolumeInfo_Mask_MaxPathLength | osl_VolumeInfo_Mask_FileSystemName;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL4, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isValid function: all valid fields specified for a nfs volume.",
- sal_True == aVolumeInfo.isValid( mask ) );
- }
-#else /// Windows version,here we can not determine whichvolume in Windows is serve as an nfs volume.
- void isValid_002( )
- {
- CPPUNIT_ASSERT_MESSAGE( "test for isValid function: all valid fields specified for a nfs volume.( Windows version )",
- 1 == 1 );
- }
-#endif
-
- void isValid_003( )
- {
- ::osl::VolumeDevice aVolumeDevice1;
- sal_Int32 mask = osl_VolumeInfo_Mask_Attributes;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- sal_Bool bOk1 = aVolumeInfo.isValid( mask );
-
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL2, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- sal_Bool bOk2 = aVolumeInfo.isValid( mask );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isValid function: osl_VolumeInfo_Mask_Attributes, it should be valid for some volume such as /, floppy, cdrom, etc. but it did not pass",
- ( sal_True == bOk1 ) && ( sal_True == bOk2 ) );
- }
-
- CPPUNIT_TEST_SUITE( isValid );
- CPPUNIT_TEST( isValid_001 );
- CPPUNIT_TEST( isValid_002 );
- CPPUNIT_TEST( isValid_003 );
- CPPUNIT_TEST_SUITE_END( );
- };// class isValid
-
- //---------------------------------------------------------------------
- // testing the method
- // inline sal_Bool getRemoteFlag() const
- //---------------------------------------------------------------------
- class getRemoteFlag : public CppUnit::TestFixture
- {
- ::osl::VolumeDevice aVolumeDevice;
- ::rtl::OUString aUStr;
- ::osl::FileBase::RC nError1, nError2;
-
- public:
- // test code.
- void getRemoteFlag_001( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_Attributes;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- sal_Bool bOk = aVolumeInfo.getRemoteFlag( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getRemoteFlag function: get a volume device which is not remote.",
- ( sal_False == bOk ) );
- }
-
- #if ( defined UNX ) //remote Volume is different in Solaris and Windows
- void getRemoteFlag_002( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_Attributes;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL4, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- sal_Bool bOk = aVolumeInfo.getRemoteFlag( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getRemoteFlag function: get a volume device which is remote( Solaris version ).",
- ( sal_True == bOk ) );
- }
-#else //Windows version
- void getRemoteFlag_002( )
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getRemoteFlag function: get a volume device which is remote( Windows version )",
- 1 == 1 );
- }
-#endif
-
- CPPUNIT_TEST_SUITE( getRemoteFlag );
- CPPUNIT_TEST( getRemoteFlag_001 );
- CPPUNIT_TEST( getRemoteFlag_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getRemoteFlag
-
- //---------------------------------------------------------------------
- // testing the method
- // inline sal_Bool getRemoveableFlag() const
- //---------------------------------------------------------------------
- class getRemoveableFlag : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2;
-
- public:
- // test code.
- void getRemoveableFlag_001( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_Attributes;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- sal_Bool bOk = aVolumeInfo.getRemoveableFlag( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getRemoveableFlag function: get a volume device which is not removable.",
- sal_False == bOk );
- }
-
- void getRemoveableFlag_002( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_Attributes;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL2, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- sal_Bool bOk = aVolumeInfo.getRemoveableFlag( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getRemoveableFlag function: get a volume device which is removable, not sure, here we use floppy disk, but it did not pass.",
- sal_True == bOk );
- }
- CPPUNIT_TEST_SUITE( getRemoveableFlag );
- CPPUNIT_TEST( getRemoveableFlag_001 );
- CPPUNIT_TEST( getRemoveableFlag_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getRemoveableFlag
-
-
- //---------------------------------------------------------------------
- // testing the method
- // inline sal_Bool getCompactDiscFlag() const
- //---------------------------------------------------------------------
- class getCompactDiscFlag : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1;
-
- public:
- // test code.
- void getCompactDiscFlag_001( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_Attributes;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- sal_Bool bOk = aVolumeInfo.getCompactDiscFlag( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getCompactDiscFlag function: get a volume device which is not a cdrom.",
- ( sal_False == bOk ) );
- }
-
- void getCompactDiscFlag_002( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_Attributes;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL6, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- sal_Bool bOk = aVolumeInfo.getCompactDiscFlag( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getCompactDiscFlag function: get a cdrom volume device flag, it did not pass.",
- ( sal_True == bOk ) );
- }
- CPPUNIT_TEST_SUITE( getCompactDiscFlag );
- CPPUNIT_TEST( getCompactDiscFlag_001 );
- CPPUNIT_TEST( getCompactDiscFlag_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getCompactDiscFlag
-
-
- //---------------------------------------------------------------------
- // testing the method
- // inline sal_Bool getFloppyDiskFlag() const
- //---------------------------------------------------------------------
- class getFloppyDiskFlag : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1;
-
- public:
- // test code.
- void getFloppyDiskFlag_001( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_Attributes;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- sal_Bool bOk = aVolumeInfo.getFloppyDiskFlag( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getFloppyDiskFlag function: get a volume device which is not a floppy disk.",
- ( sal_False == bOk ) );
- }
-
- void getFloppyDiskFlag_002( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_Attributes;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL2, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- sal_Bool bOk = aVolumeInfo.getFloppyDiskFlag( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getFloppyDiskFlag function: get a floppy volume device flag, it did not pass.",
- ( sal_True == bOk ) );
- }
- CPPUNIT_TEST_SUITE( getFloppyDiskFlag );
- CPPUNIT_TEST( getFloppyDiskFlag_001 );
- CPPUNIT_TEST( getFloppyDiskFlag_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getFloppyDiskFlag
-
-
- //---------------------------------------------------------------------
- // testing the method
- // inline sal_Bool getFixedDiskFlag() const
- //---------------------------------------------------------------------
- class getFixedDiskFlag : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1;
-
- public:
- // test code.
- void getFixedDiskFlag_001( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_Attributes;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL2, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- sal_Bool bOk = aVolumeInfo.getFixedDiskFlag( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getFixedDiskFlag function: get a volume device which is not a fixed disk.",
- ( sal_False == bOk ) );
- }
-
- void getFixedDiskFlag_002( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_Attributes;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- sal_Bool bOk = aVolumeInfo.getFixedDiskFlag( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getFixedDiskFlag function: get a fixed disk volume device flag, it did not pass.",
- ( sal_True == bOk ) );
- }
- CPPUNIT_TEST_SUITE( getFixedDiskFlag );
- CPPUNIT_TEST( getFixedDiskFlag_001 );
- CPPUNIT_TEST( getFixedDiskFlag_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getFixedDiskFlag
-
- //---------------------------------------------------------------------
- // testing the method
- // inline sal_Bool getRAMDiskFlag() const
- //---------------------------------------------------------------------
- class getRAMDiskFlag : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1;
-
- public:
- // test code.
- void getRAMDiskFlag_001( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_Attributes;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- sal_Bool bOk = aVolumeInfo.getRAMDiskFlag( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getRAMDiskFlag function: get a volume device which is not a RAM disk.",
- ( sal_False == bOk ) );
- }
-
- void getRAMDiskFlag_002( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_Attributes;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- sal_Bool bOk = aVolumeInfo.getRAMDiskFlag( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getRAMDiskFlag function: FIX ME, don't know how to get a RAM disk flag, perhaps Windows 98 boot disk can create a RAM disk, it did not pass in (UNX)(W32).",
- ( sal_True == bOk ) );
- }
- CPPUNIT_TEST_SUITE( getRAMDiskFlag );
- CPPUNIT_TEST( getRAMDiskFlag_001 );
- CPPUNIT_TEST( getRAMDiskFlag_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getRAMDiskFlag
-
-
- //---------------------------------------------------------------------
- // testing the method
- // inline sal_uInt64 getTotalSpace() const
- //---------------------------------------------------------------------
- class getTotalSpace : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1;
-
- public:
- // test code.
- void getTotalSpace_001( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_TotalSpace;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) );
- sal_uInt64 uiTotalSpace = aVolumeInfo.getTotalSpace( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getTotalSpace function: get total space of Fixed disk volume mounted on /, it should not be 0",
- 0 != uiTotalSpace );
- }
-
- #if defined( UNX )
- void getTotalSpace_002( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_TotalSpace;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL3, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) );
- sal_uInt64 uiTotalSpace = aVolumeInfo.getTotalSpace( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getTotalSpace function: get total space of /proc, it should be 0",
- 0 == uiTotalSpace );
- }
-#else /// Windows version, in Windows, there is no /proc directory
- void getTotalSpace_002( )
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getTotalSpace function:not applicable for /proc( Windows version )",
- 1 == 1 );
- }
-#endif
-
-
-
-#if defined(SOLARIS)
- void getTotalSpace_003( )
- {
- struct statvfs aStatFS;
- static const sal_Char name[] = "/";
-
- memset (&aStatFS, 0, sizeof(aStatFS));
- statvfs( name, &aStatFS);
- sal_uInt64 TotalSpace = aStatFS.f_frsize * aStatFS.f_blocks ;
-
- sal_Int32 mask = osl_VolumeInfo_Mask_TotalSpace;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) );
- sal_uInt64 uiTotalSpace = aVolumeInfo.getTotalSpace( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getTotalSpace function: get total space by hand, then compare with getTotalSpace, it did not pass",
- uiTotalSpace == TotalSpace );
- }
-#else /// Windows version
- void getTotalSpace_003( )
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getTotalSpace function:not implemented yet( Windows version )",
- 1 == 1 );
- }
-#endif
-
- CPPUNIT_TEST_SUITE( getTotalSpace );
- CPPUNIT_TEST( getTotalSpace_001 );
- CPPUNIT_TEST( getTotalSpace_002 );
- CPPUNIT_TEST( getTotalSpace_003 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getTotalSpace
-
- //---------------------------------------------------------------------
- // testing the method
- // inline sal_uInt64 getFreeSpace() const
- //---------------------------------------------------------------------
- class getFreeSpace : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1;
-
- public:
- // test code.
- void getFreeSpace_001( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_FreeSpace;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) );
- sal_uInt64 uiFreeSpace = aVolumeInfo.getFreeSpace( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getFreeSpace function: get free space of Fixed disk volume mounted on /, it should not be 0, suggestion: returned value, -1 is better, since some times the free space may be 0",
- 0 != uiFreeSpace );
- }
-
-#if defined( UNX )
- void getFreeSpace_002( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_FreeSpace;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL3, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) );
- sal_uInt64 uiFreeSpace = aVolumeInfo.getFreeSpace( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getFreeSpace function: get free space of /proc, it should be 0",
- 0 == uiFreeSpace );
- }
-#else /// Windows version, in Windows, there is no /proc directory
- void getFreeSpace_002( )
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getFreeSpace function: not applicable for /proc( Windows version )",
- 1 == 1 );
- }
-#endif
-
-
-#if defined(SOLARIS)
- void getFreeSpace_003( )
- {
- struct statvfs aStatFS;
- static const sal_Char name[] = "/";
-
- memset (&aStatFS, 0, sizeof(aStatFS));
- statvfs( name, &aStatFS);
- sal_uInt64 FreeSpace = aStatFS.f_bfree * aStatFS.f_frsize ;
-
- sal_Int32 mask = osl_VolumeInfo_Mask_FreeSpace;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) );
- sal_uInt64 uiFreeSpace = aVolumeInfo.getFreeSpace( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getFreeSpace function: get free space by hand, then compare with getFreeSpace, it did not pass",
- uiFreeSpace == FreeSpace );
- }
-#else //Windows version
- void getFreeSpace_003( )
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getFreeSpace function: not implemented yet( Windows version )",
- 1 == 1 );
- }
-#endif
-
-
- CPPUNIT_TEST_SUITE( getFreeSpace );
- CPPUNIT_TEST( getFreeSpace_001 );
- CPPUNIT_TEST( getFreeSpace_002 );
- CPPUNIT_TEST( getFreeSpace_003 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getFreeSpace
-
- //---------------------------------------------------------------------
- // testing the method
- // inline sal_uInt64 getUsedSpace() const
- //---------------------------------------------------------------------
- class getUsedSpace : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1;
-
- public:
- // test code.
- void getUsedSpace_001( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_UsedSpace;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) );
- sal_uInt64 uiUsedSpace = aVolumeInfo.getUsedSpace( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getUsedSpace function: get used space of Fixed disk volume mounted on /, it should not be 0, suggestion: returned value, -1 is better, since some times the used space may be 0",
- 0 != uiUsedSpace );
- }
-
-#if defined( UNX )
- void getUsedSpace_002( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_UsedSpace;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL3, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) );
- sal_uInt64 uiUsedSpace = aVolumeInfo.getUsedSpace( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getUsedSpace function: get used space of /proc, it should be 0",
- 0 == uiUsedSpace );
- }
-#else /// Windows version, in Windows, there is no /proc directory
- void getUsedSpace_002( )
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getUsedSpace function: not applicable for /proc( Windows version )",
- 1 == 1 );
- }
-#endif
-
-
-#if defined(SOLARIS)
- void getUsedSpace_003( )
- {
- struct statvfs aStatFS;
- static const sal_Char name[] = "/";
-
- memset (&aStatFS, 0, sizeof(aStatFS));
- statvfs( name, &aStatFS);
- sal_uInt64 UsedSpace = ( aStatFS.f_blocks - aStatFS.f_bavail ) * aStatFS.f_frsize;
-
-
- sal_Int32 mask = osl_VolumeInfo_Mask_UsedSpace;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) );
- sal_uInt64 uiUsedSpace = aVolumeInfo.getUsedSpace( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getUsedSpace function: get used space by hand, then compare with getUsedSpace, it did not pass",
- uiUsedSpace == UsedSpace );
- }
-#else //Windows version
- void getUsedSpace_003( )
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getUsedSpace function: not implemented yet( Windows version )",
- 1 == 1 );
- }
-#endif
-
-
- CPPUNIT_TEST_SUITE( getUsedSpace );
- CPPUNIT_TEST( getUsedSpace_001 );
- CPPUNIT_TEST( getUsedSpace_002 );
- CPPUNIT_TEST( getUsedSpace_003 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getUsedSpace
-
-
- //---------------------------------------------------------------------
- // testing the method
- // inline sal_uInt32 getMaxNameLength() const
- //---------------------------------------------------------------------
- class getMaxNameLength : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1;
-
- public:
- // test code.
- void getMaxNameLength_001( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_MaxNameLength;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) );
- sal_uInt32 uiMaxNameLength = aVolumeInfo.getMaxNameLength( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getMaxNameLength function: get max name length of Fixed disk volume mounted on /, it should not be 0",
- 0 != uiMaxNameLength );
- }
-
-
-#if defined(UNX) && !defined(ANDROID)
- void getMaxNameLength_002( )
- {
- struct statvfs aStatFS;
- static const sal_Char name[] = "/";
-
- memset (&aStatFS, 0, sizeof(aStatFS));
- statvfs( name, &aStatFS);
- sal_uInt64 MaxNameLength = aStatFS.f_namemax;
-
- sal_Int32 mask = osl_VolumeInfo_Mask_MaxNameLength;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) );
- sal_uInt64 uiMaxNameLength = aVolumeInfo.getMaxNameLength( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getMaxNameLength function: get max name length by hand, then compare with getMaxNameLength",
- uiMaxNameLength == MaxNameLength );
- }
-#else //Windows version
- void getMaxNameLength_002( )
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getMaxNameLength function: not implemented yet( Windows version )",
- 1 == 1 );
- }
-#endif
-
- CPPUNIT_TEST_SUITE( getMaxNameLength );
- CPPUNIT_TEST( getMaxNameLength_001 );
- CPPUNIT_TEST( getMaxNameLength_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getMaxNameLength
-
-
- //---------------------------------------------------------------------
- // testing the method
- // inline sal_uInt32 getMaxPathLength() const
- //---------------------------------------------------------------------
- class getMaxPathLength : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1;
-
- public:
- // test code.
- void getMaxPathLength_001( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_MaxPathLength;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) );
- sal_uInt32 uiMaxPathLength = aVolumeInfo.getMaxPathLength( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getMaxPathLength function: get max path length of Fixed disk volume mounted on /, it should not be 0",
- 0 != uiMaxPathLength );
- }
-
-
-#if ( defined UNX )
- void getMaxPathLength_002( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_MaxPathLength;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) );
- sal_uInt64 uiMaxPathLength = aVolumeInfo.getMaxPathLength( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getMaxPathLength function: get max path length by hand, then compare with getMaxPathLength",
- uiMaxPathLength == PATH_MAX );
- }
-#else //Windows version
- void getMaxPathLength_002( )
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getMaxPathLength function: not implemented yet( Windows version )",
- 1 == 1 );
- }
-#endif
-
-
- CPPUNIT_TEST_SUITE( getMaxPathLength );
- CPPUNIT_TEST( getMaxPathLength_001 );
- CPPUNIT_TEST( getMaxPathLength_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getMaxPathLength
-
-
- //---------------------------------------------------------------------
- // testing the method
- // inline ::rtl::OUString getFileSystemName() const
- //---------------------------------------------------------------------
- class getFileSystemName : public CppUnit::TestFixture
- {
- ::rtl::OUString aUStr;
- ::osl::FileBase::RC nError1;
-
- public:
- // test code.
- void getFileSystemName_001( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_FileSystemName;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) );
- aUStr = aVolumeInfo.getFileSystemName( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getFileSystemName function: get file system name of Fixed disk volume mounted on /, it should not be empty string",
- sal_False == compareFileName( aNullURL, aUStr ) );
- }
-
-
-#if defined(SOLARIS)
- void getFileSystemName_002( )
- {
- struct statvfs aStatFS;
- static const sal_Char name[] = "/";
-
- memset (&aStatFS, 0, sizeof(aStatFS));
- statvfs( name, &aStatFS);
- sal_Char * astrFileSystemName = aStatFS.f_basetype;
-
- sal_Int32 mask = osl_VolumeInfo_Mask_FileSystemName;
- ::osl::VolumeInfo aVolumeInfo( mask );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
- CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) );
- aUStr = aVolumeInfo.getFileSystemName( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getFileSystemName function: get file system name by hand, then compare with getFileSystemName",
- sal_True == compareFileName( aUStr, astrFileSystemName ) );
- }
-#else //Windows version
- void getFileSystemName_002( )
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getFileSystemName function: not implemented yet( Windows version )",
- 1 == 1 );
- }
-#endif
-
-
- CPPUNIT_TEST_SUITE( getFileSystemName );
- CPPUNIT_TEST( getFileSystemName_001 );
- CPPUNIT_TEST( getFileSystemName_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getFileSystemName
-
- //---------------------------------------------------------------------
- // testing the method
- // inline VolumeDevice getDeviceHandle() const
- //---------------------------------------------------------------------
- class getDeviceHandle : public CppUnit::TestFixture
- {
- ::rtl::OUString aUStr;
- ::osl::FileBase::RC nError1;
-
- public:
- // test code.
- void getDeviceHandle_001( )
- {
- ::osl::VolumeInfo aVolumeInfo( osl_VolumeInfo_Mask_Attributes );
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 );
-
- ::osl::VolumeDevice aVolumeDevice1( aVolumeInfo.getDeviceHandle( ) );
- sal_Bool bOk = compareFileName( aNullURL, aVolumeDevice1.getMountPath( ) );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getDeviceHandle function: get device handle of Fixed disk volume mounted on /, it should not be NULL, it did not pass in (W32) (UNX).",
- ( sal_False == bOk ) );
- }
-
- CPPUNIT_TEST_SUITE( getDeviceHandle );
- CPPUNIT_TEST( getDeviceHandle_001 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getDeviceHandle
-
-
- // -----------------------------------------------------------------------------
- /*CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::ctors, "osl_VolumeInfo" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::isValid, "osl_VolumeInfo" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getRemoteFlag, "osl_VolumeInfo" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getRemoveableFlag, "osl_VolumeInfo" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getCompactDiscFlag, "osl_VolumeInfo" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getFloppyDiskFlag, "osl_VolumeInfo" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getFixedDiskFlag, "osl_VolumeInfo" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getRAMDiskFlag, "osl_VolumeInfo" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getTotalSpace, "osl_VolumeInfo" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getFreeSpace, "osl_VolumeInfo" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getUsedSpace, "osl_VolumeInfo" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getMaxNameLength, "osl_VolumeInfo" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getMaxPathLength, "osl_VolumeInfo" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getFileSystemName, "osl_VolumeInfo" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getDeviceHandle, "osl_VolumeInfo" );*/
-}// namespace osl_VolumeInfo
-
-
-
-//------------------------------------------------------------------------
-// Beginning of the test cases for VolumeDevice class
-//------------------------------------------------------------------------
-namespace osl_FileStatus
-{
-
- //---------------------------------------------------------------------
- // testing the method
- // FileStatus( sal_uInt32 nMask ): _nMask( nMask )
- //---------------------------------------------------------------------
- class ctors : public CppUnit::TestFixture
- {
- ::rtl::OUString aUStr;
- ::osl::FileBase::RC nError1, nError2;
- ::osl::DirectoryItem rItem;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpdir/tmpname.
- createTestDirectory( aTmpName3 );
- createTestFile( aTmpName4 );
-
- ::std::auto_ptr<Directory> pDir( new Directory( aTmpName3 ) );
- nError1 = pDir->open( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = pDir->getNextItem( rItem, 0 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- pDir->close();
- /*
- Directory aDir( aTmpName3 );
- nError1 = aDir.open();
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = aDir.getNextItem( rItem, 0 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- aDir.close();
- */
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpdir/tmpname.
- deleteTestFile( aTmpName4 );
- deleteTestDirectory( aTmpName3 );
- }
-
- // test code.
- void ctors_001( )
- {
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_All );
- nError1 = rItem.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- aUStr = rFileStatus.getFileName( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors function: mask all and see the file name",
- sal_True == compareFileName( aUStr, aTmpName2) );
- }
-
- void ctors_002( )
- {
- ::osl::FileStatus rFileStatus( 0 );
- nError1 = rItem.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- aUStr = rFileStatus.getFileName( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors function: mask is empty",
- sal_True == compareFileName( aUStr, aNullURL) );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_001 );
- CPPUNIT_TEST( ctors_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class ctors
-
-
- //---------------------------------------------------------------------
- // testing the method
- // inline sal_Bool isValid( sal_uInt32 nMask ) const
- //---------------------------------------------------------------------
- class isValid : public CppUnit::TestFixture
- {
- ::rtl::OUString aUStr;
- ::osl::Directory *pDir;
- ::osl::DirectoryItem rItem_file, rItem_link;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpdir/tmpname.
- createTestDirectory( aTmpName3 );
- createTestFile( aTmpName4 );
-
- pDir = new Directory( aTmpName3 );
- //::std::auto_ptr<Directory> pDir( new Directory( aTmpName3 ) );
- ::osl::FileBase::RC nError1 = pDir->open( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = pDir->getNextItem( rItem_file, 1 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- }
-
- void tearDown( )
- {
- ::osl::FileBase::RC nError1 = pDir->close( );
- delete pDir;
- CPPUNIT_ASSERT_MESSAGE( errorToStr(nError1).getStr(), ::osl::FileBase::E_None == nError1 );
-
- // remove the tempfile in $TEMP/tmpdir/tmpname.
- deleteTestFile( aTmpName4 );
- deleteTestDirectory( aTmpName3 );
- }
-
- // test code.
- void isValid_001( )
- {
- sal_uInt32 mask = 0;
- ::osl::FileStatus rFileStatus( mask );
- ::osl::FileBase::RC nError1 = rItem_file.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- sal_Bool bOk = rFileStatus.isValid( mask );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isValid function: no fields specified",
- ( sal_True == bOk ) );
- }
-
- void check_FileStatus(::osl::FileStatus const& _aStatus)
- {
- rtl::OString sStat;
- if (_aStatus.isValid(osl_FileStatus_Mask_Type))
- {
- sStat += "type ";
- }
- if (_aStatus.isValid(osl_FileStatus_Mask_Attributes))
- {
- sStat += "attributes ";
- }
- if (_aStatus.isValid(osl_FileStatus_Mask_CreationTime))
- {
- sStat += "ctime ";
- }
- if (_aStatus.isValid(osl_FileStatus_Mask_AccessTime))
- {
- sStat += "atime ";
- }
- if (_aStatus.isValid(osl_FileStatus_Mask_ModifyTime))
- {
- sStat += "mtime ";
- }
- if (_aStatus.isValid(osl_FileStatus_Mask_FileSize))
- {
- sStat += "filesize ";
- }
- if (_aStatus.isValid(osl_FileStatus_Mask_FileName))
- {
- sStat += "filename ";
- }
- if (_aStatus.isValid(osl_FileStatus_Mask_FileURL))
- {
- sStat += "fileurl ";
- }
- printf("mask: %s\n", sStat.getStr());
- }
-
- void isValid_002( )
- {
- createTestFile( aTmpName6 );
- sal_uInt32 mask_file = ( osl_FileStatus_Mask_Type | osl_FileStatus_Mask_Attributes |
- osl_FileStatus_Mask_CreationTime | osl_FileStatus_Mask_AccessTime |
- osl_FileStatus_Mask_ModifyTime | osl_FileStatus_Mask_FileSize |
- osl_FileStatus_Mask_FileName | osl_FileStatus_Mask_FileURL) ;
- ::osl::FileStatus rFileStatus( mask_file );
- ::osl::FileBase::RC nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem_file );
- nError1 = rItem_file.getFileStatus( rFileStatus );
-
- CPPUNIT_ASSERT_MESSAGE( errorToStr(nError1).getStr(), ::osl::FileBase::E_None == nError1 );
-
-// LLA: this is wrong, we never should try to check on all masks
-// only on one.
-// Second, it's not a bug, if a value is not valid, it's an unhandled feature.
-
-// sal_Bool bOk = rFileStatus.isValid( mask_file );
-
- check_FileStatus(rFileStatus);
- deleteTestFile( aTmpName6 );
-
- // CPPUNIT_ASSERT_MESSAGE( "test for isValid function: regular file mask fields test, #osl_FileStatus_Mask_CreationTime# should be valid field for regular file, but feedback is invalid",
- // ( sal_True == bOk ) );
- }
-
- //Link is not defined in Windows, and on Linux, we can not get the directory item of the link file
- // LLA: we have to differ to filesystems, normal filesystems support links (EXT2, ...)
- // castrated filesystems don't (FAT, FAT32)
- // Windows NT NTFS support links, but the windows api don't :-(
-
- void isValid_003( )
- {
-#if defined ( UNX )
- // ::osl::FileBase::RC nError;
- sal_Int32 fd;
-
- ::rtl::OUString aUStr_LnkFileSys( aTempDirectorySys ), aUStr_SrcFileSys( aTempDirectorySys );
- ( ( aUStr_LnkFileSys += aSlashURL ) += getCurrentPID( ) ) += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/tmpdir/link.file"));
- ( ( aUStr_SrcFileSys += aSlashURL ) += getCurrentPID( ) ) += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/tmpdir/tmpname"));
-
- rtl::OString strLinkFileName;
- rtl::OString strSrcFileName;
- strLinkFileName = OUStringToOString( aUStr_LnkFileSys, RTL_TEXTENCODING_ASCII_US );
- strSrcFileName = OUStringToOString( aUStr_SrcFileSys, RTL_TEXTENCODING_ASCII_US );
-
- //create a link file and link it to file "/tmp/PID/tmpdir/tmpname"
- fd = symlink( strSrcFileName.getStr(), strLinkFileName.getStr() );
- CPPUNIT_ASSERT( fd == 0 );
-
- // testDirectory is "/tmp/PID/tmpdir/"
- ::osl::Directory testDirectory( aTmpName3 );
- ::osl::FileBase::RC nError1 = testDirectory.open( );
- ::rtl::OUString aFileName (RTL_CONSTASCII_USTRINGPARAM("link.file"));
- sal_Bool bOk = sal_False;
- while (1) {
- nError1 = testDirectory.getNextItem( rItem_link, 4 );
- if (::osl::FileBase::E_None == nError1) {
- sal_uInt32 mask_link = osl_FileStatus_Mask_FileName | osl_FileStatus_Mask_LinkTargetURL;
- ::osl::FileStatus rFileStatus( mask_link );
- rItem_link.getFileStatus( rFileStatus );
- if ( compareFileName( rFileStatus.getFileName( ), aFileName) == sal_True )
- {
- //printf("find the link file");
- if ( sal_True == rFileStatus.isValid( osl_FileStatus_Mask_LinkTargetURL ) )
- {
- bOk = sal_True;
- break;
- }
- }
- }
- else
- break;
- };
-
- fd = remove( strLinkFileName.getStr() );
- CPPUNIT_ASSERT( fd == 0 );
-
- CPPUNIT_ASSERT_MESSAGE("test for isValid function: link file, check for LinkTargetURL",
- ( sal_True == bOk ) );
-#endif
- }
-
- void isValid_004( )
- {
- sal_uInt32 mask_file_all = osl_FileStatus_Mask_All;
- ::osl::FileStatus rFileStatus_all( mask_file_all );
- ::osl::FileBase::RC nError1 = rItem_file.getFileStatus( rFileStatus_all );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- check_FileStatus(rFileStatus_all);
-// LLA: this is wrong
-// sal_Bool bOk1 = rFileStatus_all.isValid( mask_file_all );
-
- sal_uInt32 mask_file_val = osl_FileStatus_Mask_Validate;
- ::osl::FileStatus rFileStatus_val( mask_file_val );
- nError1 = rItem_file.getFileStatus( rFileStatus_val );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- // sal_Bool bOk2 = rFileStatus_val.isValid( mask_file_val );
-
- check_FileStatus(rFileStatus_val);
- // CPPUNIT_ASSERT_MESSAGE( "test for isValid function: check for Mask_All and Validate, really not sure what validate used for and how to use it, help me. did not pass (W32)(UNX).",
- // ( sal_False == bOk1 ) && ( sal_True == bOk2 ) );
- }
-
-
- CPPUNIT_TEST_SUITE( isValid );
- CPPUNIT_TEST( isValid_001 );
- CPPUNIT_TEST( isValid_002 );
- CPPUNIT_TEST( isValid_003 );
- CPPUNIT_TEST( isValid_004 );
- CPPUNIT_TEST_SUITE_END( );
- };// class ctors
-
-
- //---------------------------------------------------------------------
- // testing the method
- // inline Type getFileType() const
- //---------------------------------------------------------------------
- class getFileType : public CppUnit::TestFixture
- {
- ::rtl::OUString aUStr;
- ::osl::FileBase::RC nError1, nError2;
-
- ::osl::DirectoryItem m_aItem_1, m_aItem_2, m_aVolumeItem, m_aFifoItem;
- ::osl::DirectoryItem m_aLinkItem, m_aSocketItem, m_aSpecialItem;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile: $TEMP/tmpdir/tmpname.
- // a tempdirectory: $TEMP/tmpdir/tmpdir.
- // use $ROOT/staroffice as volume ---> use dev/fd as volume.
- // and get their directory item.
- createTestDirectory( aTmpName3 );
- createTestFile( aTmpName3, aTmpName2 );
- createTestDirectory( aTmpName3, aTmpName1 );
-
- ::std::auto_ptr<Directory> pDir( new Directory( aTmpName3 ) );
- nError1 = pDir->open( );
- CPPUNIT_ASSERT_MESSAGE("open aTmpName3 failed!", ::osl::FileBase::E_None == nError1 );
- //getNextItem can not assure which item retrieved
- nError1 = pDir->getNextItem( m_aItem_1, 1 );
- CPPUNIT_ASSERT_MESSAGE("get first item failed!", ::osl::FileBase::E_None == nError1 );
-
- nError1 = pDir->getNextItem( m_aItem_2 );
- CPPUNIT_ASSERT_MESSAGE("get second item failed!", ::osl::FileBase::E_None == nError1 );
- pDir->close();
- //mindy: failed on my RH9,so removed temporaly
- //nError1 = ::osl::DirectoryItem::get( aVolURL2, m_aVolumeItem );
- //CPPUNIT_ASSERT_MESSAGE("get volume item failed!", ::osl::FileBase::E_None == nError1 );
-
- }
-
- void tearDown( )
- {
- // remove all in $TEMP/tmpdir.
- deleteTestDirectory( aTmpName3, aTmpName1 );
- deleteTestFile( aTmpName3, aTmpName2 );
- deleteTestDirectory( aTmpName3 );
- }
-
- // test code.
- void getFileType_001( )
- {
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_Type | osl_FileStatus_Mask_FileName );
- nError1 = m_aItem_1.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT_MESSAGE("getFileStatus failed", ::osl::FileBase::E_None == nError1 );
-
- check_FileType(rFileStatus);
- }
-
- void check_FileType(osl::FileStatus const& _rFileStatus )
- {
- sal_Bool bOK = sal_False;
- if ( _rFileStatus.isValid(osl_FileStatus_Mask_FileName))
- {
- rtl::OUString suFilename = _rFileStatus.getFileName();
-
- if ( _rFileStatus.isValid(osl_FileStatus_Mask_Type))
- {
- osl::FileStatus::Type eType = _rFileStatus.getFileType( );
-
- if ( compareFileName( suFilename, aTmpName2) == sal_True )
- {
- // regular
- bOK = ( eType == osl::FileStatus::Regular );
- }
- if ( compareFileName( suFilename, aTmpName1) == sal_True )
- {
- // directory
- bOK = ( eType == ::osl::FileStatus::Directory );
- }
-
- CPPUNIT_ASSERT_MESSAGE( "test for getFileType function: ",
- ( bOK == sal_True ) );
- }
- }
- // LLA: it's not a bug, if a FileStatus not exist, so no else
- }
-
- void getFileType_002( )
- {
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_Type | osl_FileStatus_Mask_FileName );
- nError1 = m_aItem_2.getFileStatus( rFileStatus );
-
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- check_FileType(rFileStatus);
- }
-
- void getFileType_003( )
- {
- }
-
-/*
- * LLA: removed, m_aSocketItem is wrong initialised.
- */
-
-// LLA: void getFileType_005( )
-// LLA: {
-// LLA: #if defined ( SOLARIS ) //Socket file may differ in Windows
-// LLA: // nError1 = ::osl::DirectoryItem::get( aTypeURL1, m_aSocketItem );
-// LLA: nError1 = ::osl::DirectoryItem::get( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/dev/null")), m_aSocketItem );
-// LLA: printError(nError1);
-// LLA: CPPUNIT_ASSERT_MESSAGE("get Socket type file failed", ::osl::FileBase::E_None == nError1 );
-// LLA:
-// LLA: //check for File type
-// LLA: ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_Type );
-// LLA:
-// LLA: nError1 = m_aSocketItem.getFileStatus( rFileStatus );
-// LLA: CPPUNIT_ASSERT_MESSAGE("getFileStatus failed", ::osl::FileBase::E_None == nError1 );
-// LLA:
-// LLA: if (rFileStatus.isValid( osl_FileStatus_Mask_Type ))
-// LLA: {
-// LLA: osl::FileStatus::Type eType = rFileStatus.getFileType( );
-// LLA: printFileType(eType);
-// LLA: CPPUNIT_ASSERT_MESSAGE( "test for getFileType function: Socket, Solaris version ",
-// LLA: ( eType == ::osl::FileStatus::Socket ) );
-// LLA: }
-// LLA: #endif
-// LLA: }
-
-
-// deprecated since there is a same case Directory::getNextItem_004
-/*#if defined 0 //( UNX ) //( SOLARIS ) //Link file is not defined in Windows
- void getFileType_006( )
- {
- nError1 = ::osl::DirectoryItem::get( aTypeURL3, m_aLinkItem );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- //check for File type
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_Type );
- nError1 = m_aLinkItem.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getFileType function: Link, UNX version ",
- ( ::osl::FileStatus::Link == rFileStatus.getFileType( ) ) );
- }
-#endif */
-
- void getFileType_007( )
- {
-#if defined ( SOLARIS ) //Special file is differ in Windows
- nError1 = ::osl::DirectoryItem::get( aTypeURL2, m_aSpecialItem );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- //check for File type
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_Type );
- nError1 = m_aSpecialItem.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- if (rFileStatus.isValid(osl_FileStatus_Mask_Type))
- {
- osl::FileStatus::Type eType = rFileStatus.getFileType( );
-
-
- CPPUNIT_ASSERT_MESSAGE( "test for getFileType function: Special, Solaris version ",
- ( eType == ::osl::FileStatus::Special ) );
- }
-#endif
- }
-
- CPPUNIT_TEST_SUITE( getFileType );
- CPPUNIT_TEST( getFileType_001 );
- CPPUNIT_TEST( getFileType_002 );
- CPPUNIT_TEST( getFileType_003 );
- // LLA: CPPUNIT_TEST( getFileType_005 );
- //CPPUNIT_TEST( getFileType_006 );
- CPPUNIT_TEST( getFileType_007 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getFileType
-
- //---------------------------------------------------------------------
- // testing the method
- // inline sal_uInt64 getAttributes() const
- //---------------------------------------------------------------------
- class getAttributes : public CppUnit::TestFixture
- {
- ::rtl::OUString aTypeURL, aTypeURL_Hid;
- ::osl::FileBase::RC nError;
- ::osl::DirectoryItem rItem, rItem_hidden;
-
- public:
- // initialization
- void setUp( )
- {
- aTypeURL = aUserDirectoryURL.copy( 0 );
- concatURL( aTypeURL, aTmpName2 );
- createTestFile( aTypeURL );
- nError = ::osl::DirectoryItem::get( aTypeURL, rItem );
- CPPUNIT_ASSERT( nError == FileBase::E_None );
-
- aTypeURL_Hid = aUserDirectoryURL.copy( 0 );
- concatURL( aTypeURL_Hid, aHidURL1 );
- createTestFile( aTypeURL_Hid );
- nError = ::osl::DirectoryItem::get( aTypeURL_Hid, rItem_hidden );
- CPPUNIT_ASSERT( nError == FileBase::E_None );
- }
-
- void tearDown( )
- {
- deleteTestFile( aTypeURL );
- deleteTestFile( aTypeURL_Hid );
- }
-
- // test code.
-#if ( defined UNX )
-//windows only 3 file attributes: normal, readonly, hidden
- void getAttributes_001( )
- {
- changeFileMode( aTypeURL, S_IRUSR | S_IRGRP | S_IROTH );
-
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_Attributes );
- nError = rItem.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( nError == FileBase::E_None );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getAttributes function: ReadOnly, GrpRead, OwnRead, OthRead( UNX version ) ",
- ( osl_File_Attribute_ReadOnly | osl_File_Attribute_GrpRead | osl_File_Attribute_OwnRead | osl_File_Attribute_OthRead ) ==
- rFileStatus.getAttributes( ) );
- }
-#else //Windows version
- void getAttributes_001( )
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getAttributes function: ReadOnly, GrpRead, OwnRead, OthRead( Windows version )",
- 1 == 1 );
- }
-#endif
-
-
- void getAttributes_002( )
- {
-#if ( defined UNX )
- changeFileMode( aTypeURL, S_IXUSR | S_IXGRP | S_IXOTH );
-
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_Attributes );
- nError = rItem.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( nError == FileBase::E_None );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getAttributes function: Executable, GrpExe, OwnExe, OthExe, the result is Readonly, Executable, GrpExe, OwnExe, OthExe, it partly not pass( Solaris version )",
- ( osl_File_Attribute_ReadOnly | osl_File_Attribute_Executable | osl_File_Attribute_GrpExe | osl_File_Attribute_OwnExe | osl_File_Attribute_OthExe ) ==
- rFileStatus.getAttributes( ) );
-#endif
- }
-
-
-#if ( defined UNX )
- void getAttributes_003( )
- {
- changeFileMode( aTypeURL, S_IWUSR | S_IWGRP | S_IWOTH );
-
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_Attributes );
- nError = rItem.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( nError == FileBase::E_None );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getAttributes function: GrpWrite, OwnWrite, OthWrite( Solaris version )",
- ( osl_File_Attribute_GrpWrite | osl_File_Attribute_OwnWrite | osl_File_Attribute_OthWrite ) ==
- rFileStatus.getAttributes( ) );
- }
-#else //Windows version
- void getAttributes_003( )
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getAttributes function: GrpWrite, OwnWrite, OthWrite( Windows version )",
- 1 == 1 );
- }
-#endif
-
-#if ( defined UNX ) //hidden file definition may different in Windows
- void getAttributes_004( )
- {
- sal_Int32 test_Attributes = osl_File_Attribute_Hidden;
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_Attributes );
- nError = rItem_hidden.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( nError == FileBase::E_None );
- test_Attributes &= rFileStatus.getAttributes( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getAttributes function: Hidden files( Solaris version )",
- test_Attributes == osl_File_Attribute_Hidden );
- }
-#else //Windows version
- void getAttributes_004( )
- {
- ::rtl::OUString aUserHiddenFileURL (RTL_CONSTASCII_USTRINGPARAM("file:///c:/AUTOEXEC.BAT"));
- nError = ::osl::DirectoryItem::get( aUserHiddenFileURL, rItem_hidden );
- CPPUNIT_ASSERT_MESSAGE("get item fail", nError == FileBase::E_None );
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_Attributes );
- nError = rItem_hidden.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( nError == FileBase::E_None );
-
- CPPUNIT_ASSERT_MESSAGE( "Hidden files(Windows version), please check if hidden file c:/AUTOEXEC.BAT exists ",
- (rFileStatus.getAttributes( ) & osl_File_Attribute_Hidden)!= 0 );
- }
-#endif
-
- CPPUNIT_TEST_SUITE( getAttributes );
- CPPUNIT_TEST( getAttributes_001 );
- CPPUNIT_TEST( getAttributes_002 );
- CPPUNIT_TEST( getAttributes_003 );
- CPPUNIT_TEST( getAttributes_004 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getAttributes
-
- //---------------------------------------------------------------------
- // testing the method
- // inline TimeValue getAccessTime() const
- //---------------------------------------------------------------------
- class getAccessTime : public CppUnit::TestFixture
- {
- ::rtl::OUString aTypeURL;
- ::osl::FileBase::RC nError;
- ::osl::DirectoryItem rItem;
-
- public:
- // initialization
- void setUp( )
- {
- aTypeURL = aUserDirectoryURL.copy( 0 );
- concatURL( aTypeURL, aTmpName2 );
- createTestFile( aTypeURL );
- nError = ::osl::DirectoryItem::get( aTypeURL, rItem );
- CPPUNIT_ASSERT( nError == FileBase::E_None );
-
- }
-
- void tearDown( )
- {
- deleteTestFile( aTypeURL );
- }
-
- // test code.
- void getAccessTime_001( )
- {
- TimeValue *pTV_current = NULL;
- CPPUNIT_ASSERT( ( pTV_current = ( TimeValue* )malloc( sizeof( TimeValue ) ) ) != NULL );
- TimeValue *pTV_access = NULL;
- CPPUNIT_ASSERT( ( pTV_access = ( TimeValue* )malloc( sizeof( TimeValue ) ) ) != NULL );
-
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_AccessTime );
- nError = rItem.getFileStatus( rFileStatus );
- sal_Bool bOk = osl_getSystemTime( pTV_current );
- CPPUNIT_ASSERT( sal_True == bOk && nError == FileBase::E_None );
-
- *pTV_access = rFileStatus.getAccessTime( );
-
- sal_Bool bOK = t_compareTime( pTV_access, pTV_current, delta );
- free( pTV_current );
- free( pTV_access );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getAccessTime function: This test turns out that UNX pricision is no more than 1 sec, don't know how to test this function, in Windows test, it lost hour min sec, only have date time. ",
- sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getAccessTime );
- CPPUNIT_TEST( getAccessTime_001 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getAccessTime
-
- //---------------------------------------------------------------------
- // testing the method
- // inline TimeValue getModifyTime() const
- //---------------------------------------------------------------------
- class getModifyTime : public CppUnit::TestFixture
- {
- ::rtl::OUString aTypeURL;
- ::osl::FileBase::RC nError;
- ::osl::DirectoryItem rItem;
-
- public:
-
- // test code.
- void getModifyTime_001( )
- {
- TimeValue *pTV_current = NULL;
- CPPUNIT_ASSERT( ( pTV_current = ( TimeValue* )malloc( sizeof( TimeValue ) ) ) != NULL );
-
- //create file
- aTypeURL = aUserDirectoryURL.copy( 0 );
- concatURL( aTypeURL, aTmpName2 );
- createTestFile( aTypeURL );
-
- //get current time
- sal_Bool bOk = osl_getSystemTime( pTV_current );
- CPPUNIT_ASSERT( sal_True == bOk );
-
- //get instance item and filestatus
- nError = ::osl::DirectoryItem::get( aTypeURL, rItem );
- CPPUNIT_ASSERT( nError == FileBase::E_None );
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_ModifyTime );
- nError = rItem.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( nError == FileBase::E_None );
-
- //get modify time
- TimeValue *pTV_modify = NULL;
- CPPUNIT_ASSERT( ( pTV_modify = ( TimeValue* )malloc( sizeof( TimeValue ) ) ) != NULL );
- *pTV_modify = rFileStatus.getModifyTime( );
-
- sal_Bool bOK = t_compareTime( pTV_modify, pTV_current, delta );
- //delete file
- deleteTestFile( aTypeURL );
- free( pTV_current );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getModifyTime function: This test turns out that UNX pricision is no more than 1 sec, don't know how to improve this function. ",
- sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getModifyTime );
- CPPUNIT_TEST( getModifyTime_001 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getModifyTime
-
-
- //---------------------------------------------------------------------
- // testing the method
- // inline sal_uInt64 getFileSize() const
- //---------------------------------------------------------------------
- class getFileSize : public CppUnit::TestFixture
- {
- ::rtl::OUString aTypeURL;
- ::osl::FileBase::RC nError;
- ::osl::DirectoryItem rItem;
-
- public:
- // initialization
- void setUp( )
- {
- aTypeURL = aUserDirectoryURL.copy( 0 );
- concatURL( aTypeURL, aTmpName2 );
- createTestFile( aTypeURL );
- nError = ::osl::DirectoryItem::get( aTypeURL, rItem );
- CPPUNIT_ASSERT( nError == FileBase::E_None );
- }
-
- void tearDown( )
- {
- deleteTestFile( aTypeURL );
- }
-
- // test code.
- void getFileSize_001( )
- {
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_FileSize );
- nError = rItem.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( nError == FileBase::E_None );
-
- sal_uInt64 uFileSize = rFileStatus.getFileSize( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getFileSize function: empty file ",
- 0 == uFileSize );
- }
-
- void getFileSize_002( )
- {
- ::osl::File testfile( aTypeURL );
- nError = testfile.open( osl_File_OpenFlag_Write | osl_File_OpenFlag_Read );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError );
- nError = testfile.setSize( TEST_FILE_SIZE );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError );
-
- nError = ::osl::DirectoryItem::get( aTypeURL, rItem );
- CPPUNIT_ASSERT( nError == FileBase::E_None );
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_FileSize );
- nError = rItem.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( nError == FileBase::E_None );
- sal_uInt64 uFileSize = rFileStatus.getFileSize( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getFileSize function: file with size of TEST_FILE_SIZE, did not pass in (W32). ",
- TEST_FILE_SIZE == uFileSize );
- }
- CPPUNIT_TEST_SUITE( getFileSize );
- CPPUNIT_TEST( getFileSize_001 );
- CPPUNIT_TEST( getFileSize_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getFileSize
-
- //---------------------------------------------------------------------
- // testing the method
- // inline ::rtl::OUString getFileName() const
- //---------------------------------------------------------------------
- class getFileName : public CppUnit::TestFixture
- {
- ::rtl::OUString aTypeURL;
- ::osl::FileBase::RC nError;
- ::osl::DirectoryItem rItem;
-
- public:
- // initialization
- void setUp( )
- {
- aTypeURL = aUserDirectoryURL.copy( 0 );
- concatURL( aTypeURL, aTmpName2 );
- createTestFile( aTypeURL );
- nError = ::osl::DirectoryItem::get( aTypeURL, rItem );
- CPPUNIT_ASSERT( nError == FileBase::E_None );
- }
-
- void tearDown( )
- {
- deleteTestFile( aTypeURL );
- }
-
- // test code.
- void getFileName_001( )
- {
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_FileName );
- nError = rItem.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( nError == FileBase::E_None );
-
- ::rtl::OUString aFileName = rFileStatus.getFileName( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getFileName function: name compare with specify",
- sal_True == compareFileName( aFileName, aTmpName2 ) );
- }
-
- CPPUNIT_TEST_SUITE( getFileName );
- CPPUNIT_TEST( getFileName_001 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getFileName
-
- //---------------------------------------------------------------------
- // testing the method
- // inline ::rtl::OUString getFileURL() const
- //---------------------------------------------------------------------
- class getFileURL : public CppUnit::TestFixture
- {
- ::rtl::OUString aTypeURL;
- ::osl::FileBase::RC nError;
- ::osl::DirectoryItem rItem;
-
- public:
- // initialization
- void setUp( )
- {
- createTestFile( aTmpName6 );
- nError = ::osl::DirectoryItem::get( aTmpName6, rItem );
- CPPUNIT_ASSERT( nError == FileBase::E_None );
- }
-
- void tearDown( )
- {
- deleteTestFile( aTmpName6 );
- }
-
- // test code.
- void getFileURL_001( )
- {
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_FileURL );
- nError = rItem.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( nError == FileBase::E_None );
-
- ::rtl::OUString aFileURL = rFileStatus.getFileURL( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getFileURL function: ",
- sal_True == compareFileName( aFileURL, aTmpName6 ) );
- }
-
- CPPUNIT_TEST_SUITE( getFileURL );
- CPPUNIT_TEST( getFileURL_001 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getFileURL
-
- //---------------------------------------------------------------------
- // testing the method
- // inline ::rtl::OUString getLinkTargetURL() const
- //---------------------------------------------------------------------
- class getLinkTargetURL : public CppUnit::TestFixture
- {
- ::rtl::OUString aTypeURL;
- ::osl::FileBase::RC nError;
- ::osl::DirectoryItem rItem;
-
- public:
- // test code.
- // initialization
- void setUp( )
- {
- aTypeURL = aUserDirectoryURL.copy( 0 );
- concatURL( aTypeURL, aTmpName2 );
- createTestFile( aTypeURL );
- }
-
- void tearDown( )
- {
- deleteTestFile( aTypeURL );
- }
-
-#if ( defined UNX ) //Link file is not define in Windows
- void getLinkTargetURL_001( )
- {
- //create a link file;
- ::rtl::OUString aUStr_LnkFileSys( aTempDirectorySys ), aUStr_SrcFileSys( aTempDirectorySys );
- ( ( aUStr_LnkFileSys += aSlashURL ) += getCurrentPID( ) ) += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/link.file"));
- ( ( aUStr_SrcFileSys += aSlashURL ) += getCurrentPID( ) ) += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/tmpname"));
-
- rtl::OString strLinkFileName, strSrcFileName;
- strLinkFileName = OUStringToOString( aUStr_LnkFileSys, RTL_TEXTENCODING_ASCII_US );
- strSrcFileName = OUStringToOString( aUStr_SrcFileSys, RTL_TEXTENCODING_ASCII_US );
-
- sal_Int32 fd;
- fd = symlink( strSrcFileName.getStr(), strLinkFileName.getStr() );
- CPPUNIT_ASSERT_MESSAGE( "in creating link file", fd == 0 );
-
- //get linkTarget URL
- nError = ::osl::DirectoryItem::get( aLnkURL1, rItem );
- CPPUNIT_ASSERT_MESSAGE( "in getting link file item", nError == FileBase::E_None );
-
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_LinkTargetURL );
- nError = rItem.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT_MESSAGE( "in getting link file status", nError == FileBase::E_None );
- ::rtl::OUString aFileURL = rFileStatus.getLinkTargetURL( );
-
- //remove link file
- fd = remove( strLinkFileName.getStr() );
- CPPUNIT_ASSERT_MESSAGE( "in deleting link file", fd == 0 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getLinkTargetURL function: Solaris version, creat a file, and a link file link to it, get its LinkTargetURL and compare",
- sal_True == compareFileName( aFileURL, aTypeURL ) );
- }
-#else
- void getLinkTargetURL_001( )
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getLinkTargetURL function: Windows version, not tested",
- 1 );
- }
-#endif
-
- CPPUNIT_TEST_SUITE( getLinkTargetURL );
- CPPUNIT_TEST( getLinkTargetURL_001 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getLinkTargetURL
-
- // -----------------------------------------------------------------------------
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileStatus::ctors, "osl_FileStatus" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileStatus::isValid, "osl_FileStatus" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileStatus::getFileType, "osl_FileStatus" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileStatus::getAttributes, "osl_FileStatus" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileStatus::getAccessTime, "osl_FileStatus" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileStatus::getModifyTime, "osl_FileStatus" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileStatus::getFileSize, "osl_FileStatus" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileStatus::getFileName, "osl_FileStatus" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileStatus::getFileURL, "osl_FileStatus" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileStatus::getLinkTargetURL, "osl_FileStatus" );
-}// namespace osl_FileStatus
-
-
-
-//------------------------------------------------------------------------
-// Beginning of the test cases for File class
-//------------------------------------------------------------------------
-namespace osl_File
-{
- //---------------------------------------------------------------------
- // testing the method
- // File( const ::rtl::OUString& ustrFileURL )
- //---------------------------------------------------------------------
- class ctors : public CppUnit::TestFixture
- {
- // ::osl::FileBase::RC nError1;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpdir/tmpname.
- createTestDirectory( aTmpName3 );
- createTestFile( aTmpName4 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpdir/tmpname.
- deleteTestFile( aTmpName4 );
- deleteTestDirectory( aTmpName3 );
- }
-
- // test code.
- void ctors_001( )
- {
- ::osl::File testFile( aTmpName4 );
-
- ::osl::FileBase::RC nError1 = testFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write );
- ::osl::FileBase::RC nError2 = testFile.close( );
- CPPUNIT_ASSERT_MESSAGE( "test for ctors function: initialize a File and test its open and close",
- ( ::osl::FileBase::E_None == nError1 ) && ( ::osl::FileBase::E_None == nError2 ) );
- }
-
- void ctors_002( )
- {
- ::osl::File testFile( aTmpName5 );
- sal_Char buffer[30] = "Test for File constructor";
- sal_uInt64 nCount;
-
- ::osl::FileBase::RC nError1 = testFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write );
- ::osl::FileBase::RC nError2 = testFile.write( buffer, 30, nCount );
- testFile.close( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors function: test relative file URL, this test show that relative file URL is also acceptable",
- ( ::osl::FileBase::E_None == nError1 ) && ( ::osl::FileBase::E_None == nError2 ) );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_001 );
- CPPUNIT_TEST( ctors_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class ctors
-
- //---------------------------------------------------------------------
- // testing the method
- // inline RC open( sal_uInt32 uFlags )
- //---------------------------------------------------------------------
- class open : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2, nError3;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpdir/tmpname.
- createTestDirectory( aTmpName3 );
- createTestFile( aTmpName4 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpdir/tmpname.
- deleteTestFile( aTmpName4 );
- deleteTestDirectory( aTmpName3 );
- }
-
- // test code.
- void open_001( )
- {
- ::osl::File testFile( aTmpName4 );
-
- nError1 = testFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write );
- nError2 = testFile.close( );
- CPPUNIT_ASSERT_MESSAGE("close error", ::osl::FileBase::E_None == nError2 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for open function: open a regular file",
- ::osl::FileBase::E_None == nError1 );
- }
-
- void open_002( )
- {
- ::osl::File testFile( aTmpName3 );
-
- nError1 = testFile.open( osl_File_OpenFlag_Read );
-
- CPPUNIT_ASSERT_MESSAGE( "test for open function: open a directory",
- ( File::E_INVAL == nError1 ) || ( File::E_ACCES == nError1 ) );
- }
-
- void open_003( )
- {
- ::osl::File testFile( aCanURL1 );
-
- nError1 = testFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write );
-
- CPPUNIT_ASSERT_MESSAGE( "test for open function: open a non-exist file",
- File::E_NOENT == nError1 );
- }
-
- void open_004( )
- {
- ::rtl::OUString aTestFile( aRootURL );
- concatURL( aTestFile, aTmpName2 );
- ::osl::File testFile( aTestFile );
-
- nError1 = testFile.open( osl_File_OpenFlag_Create );
- sal_Bool bOK = ( File::E_ACCES == nError1 );
-#if defined (WNT )
- bOK = sal_True; /// in Windows, you can create file in c:/ any way.
- testFile.close( );
- deleteTestFile( aTestFile);
-#endif
-
- CPPUNIT_ASSERT_MESSAGE( "test for open function: create an illegal file",
- bOK == sal_True );
- }
-
- void open_005( )
- {
- ::osl::File testFile( aTmpName4 );
-
- nError1 = testFile.open( osl_File_OpenFlag_Create );
-
- CPPUNIT_ASSERT_MESSAGE( "test for open function: create an exist file",
- File::E_EXIST == nError1 );
- }
-
- void open_006( )
- {
- ::osl::File testFile( aCanURL1 );
- sal_Char buffer_write[30] = "Test for File open";
- sal_Char buffer_read[30];
- sal_uInt64 nCount_write, nCount_read;
-
- nError1 = testFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write | osl_File_OpenFlag_Create );
- nError2 = testFile.write( buffer_write, 30, nCount_write );
- ::osl::FileBase::RC nError4 = testFile.setPos( osl_Pos_Absolut, 0 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError4 );
- nError3 = testFile.read( buffer_read, 10, nCount_read );
-
- ::osl::FileBase::RC nError5 = testFile.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError5 );
- ::osl::FileBase::RC nError6 = testFile.remove( aCanURL1 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError6 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for open function: test for osl_File_OpenFlag_Read, osl_File_OpenFlag_Write and osl_File_OpenFlag_Create",
- ( ::osl::FileBase::E_None == nError1 ) &&
- ( ::osl::FileBase::E_None == nError2 ) &&
- ( ::osl::FileBase::E_None == nError3 ) &&
- ( 30 == nCount_write ) &&
- ( 10 == nCount_read ) );
- }
-
- CPPUNIT_TEST_SUITE( open );
- CPPUNIT_TEST( open_001 );
- CPPUNIT_TEST( open_002 );
- CPPUNIT_TEST( open_003 );
- CPPUNIT_TEST( open_004 );
- CPPUNIT_TEST( open_005 );
- CPPUNIT_TEST( open_006 );
- CPPUNIT_TEST_SUITE_END( );
- };// class open
-
- //---------------------------------------------------------------------
- // testing the method
- // inline RC close()
- //---------------------------------------------------------------------
- class close : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2, nError3;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpdir/tmpname.
- createTestDirectory( aTmpName3 );
- createTestFile( aTmpName4 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpdir/tmpname.
- deleteTestFile( aTmpName4 );
- deleteTestDirectory( aTmpName3 );
- }
-
- // test code.
- void close_001( )
- {
- ::osl::File testFile( aTmpName4 );
-
- nError1 = testFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- nError2 = testFile.close( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for close function: close a regular file",
- ::osl::FileBase::E_None == nError2 );
- }
-
- void close_002( )
- {
- ::osl::File testFile( aTmpName4 );
-
- nError1 = testFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- nError2 = testFile.close( );
-
- nError3 = testFile.setPos( osl_Pos_Absolut, 0 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for close function: manipulate a file after it has been closed",
- ( ::osl::FileBase::E_None == nError2 ) &&
- ( ::osl::FileBase::E_None != nError3 ) );
- }
-
- CPPUNIT_TEST_SUITE( close );
- CPPUNIT_TEST( close_001 );
- CPPUNIT_TEST( close_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class close
-
-
- //---------------------------------------------------------------------
- // testing the method
- // inline RC setPos( sal_uInt32 uHow, sal_Int64 uPos )
- //---------------------------------------------------------------------
- class setPos : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1;
- sal_uInt64 nCount_write, nCount_read;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpdir/tmpname.
- createTestDirectory( aTmpName3 );
- createTestFile( aTmpName4 );
-
- //write chars into the file.
- ::osl::File testFile( aTmpName4 );
-
- nError1 = testFile.open( osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.write( pBuffer_Char, sizeof( pBuffer_Char ), nCount_write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpdir/tmpname.
- deleteTestFile( aTmpName4 );
- deleteTestDirectory( aTmpName3 );
- }
-
- // test code.
- void setPos_001( )
- {
- ::osl::File testFile( aTmpName4 );
- sal_Char buffer_read[2];
-
- nError1 = testFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.setPos( osl_Pos_Absolut, 26 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.read( buffer_read, 1, nCount_read );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for setPos function: test for osl_Pos_Absolut, set the position to 26, test if the 26th char in file is correct",
- buffer_read[0] == pBuffer_Char[26] );
- }
-
- void setPos_002( )
- {
- ::osl::File testFile( aTmpName4 );
- sal_Char buffer_read[2];
-
- nError1 = testFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.setPos( osl_Pos_Absolut, sizeof( pBuffer_Char ) - 2 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.setPos( osl_Pos_Current, 0);
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.read( buffer_read, 1, nCount_read );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for setPos function: test for osl_Pos_Current, set the position to end, test if the ( end -1 ) char in file is correct",
- buffer_read[0] == pBuffer_Char[sizeof( pBuffer_Char ) - 2] );
- }
-
- void setPos_003( )
- {
- ::osl::File testFile( aTmpName4 );
- sal_Char buffer_read[2];
-
- nError1 = testFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- //the file size is smaller than 100
- nError1 = testFile.setPos( osl_Pos_End, -100 );
- CPPUNIT_ASSERT_MESSAGE( "should return error", ::osl::FileBase::E_INVAL == nError1 );
-
- nError1 = testFile.setPos( osl_Pos_End, -53 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.read( buffer_read, 1, nCount_read );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for setPos function: test for osl_Pos_End, set the position to end, test if the first char in file is correct",
- buffer_read[0] == pBuffer_Char[0] );
- }
-
- CPPUNIT_TEST_SUITE( setPos );
- CPPUNIT_TEST( setPos_001 );
- CPPUNIT_TEST( setPos_002 );
- CPPUNIT_TEST( setPos_003 );
- CPPUNIT_TEST_SUITE_END( );
- };// class setPos
-
- //---------------------------------------------------------------------
- // testing the method
- // inline RC getPos( sal_uInt64& uPos )
- //---------------------------------------------------------------------
- class getPos : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1;
- sal_uInt64 nCount_write, nCount_read;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpdir/tmpname.
- createTestDirectory( aTmpName3 );
- createTestFile( aTmpName4 );
-
- //write chars into the file.
- ::osl::File testFile( aTmpName4 );
-
- nError1 = testFile.open( osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.write( pBuffer_Char, sizeof( pBuffer_Char ), nCount_write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpdir/tmpname.
- deleteTestFile( aTmpName4 );
- deleteTestDirectory( aTmpName3 );
- }
-
- // test code.
- void getPos_001( )
- {
- ::osl::File testFile( aTmpName4 );
- sal_uInt64 nFilePointer;
-
- nError1 = testFile.getPos( nFilePointer );
- CPPUNIT_ASSERT( ::osl::FileBase::E_INVAL == nError1 );
-
- nError1 = testFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- nError1 = testFile.setPos( osl_Pos_Absolut, 26 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.getPos( nFilePointer );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- nError1 = testFile.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getPos function: set the position to 26, get position and check if it is right",
- 26 == nFilePointer );
- }
-
- CPPUNIT_TEST_SUITE( getPos );
- CPPUNIT_TEST( getPos_001 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getPos
-
-
- //---------------------------------------------------------------------
- // testing the method
- // inline RC isEndOfFile( sal_Bool *pIsEOF )
- //---------------------------------------------------------------------
- class isEndOfFile : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1;
- sal_uInt64 nCount_write, nCount_read;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpdir/tmpname.
- createTestDirectory( aTmpName3 );
- createTestFile( aTmpName4 );
-
- //write chars into the file.
- ::osl::File testFile( aTmpName4 );
-
- nError1 = testFile.open( osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.write( pBuffer_Char, sizeof( pBuffer_Char ), nCount_write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpdir/tmpname.
- deleteTestFile( aTmpName4 );
- deleteTestDirectory( aTmpName3 );
- }
-
- // test code.
- void isEndOfFile_001( )
- {
- ::osl::File testFile( aTmpName4 );
- sal_Bool bEOF = sal_False;
- sal_Bool *pEOF = &bEOF;
-
-
- nError1 = testFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- nError1 = testFile.setPos( osl_Pos_End, 0 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.isEndOfFile( pEOF );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- nError1 = testFile.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isEndOfFile function: set the position to end, check if reach end",
- sal_True == *pEOF );
- }
-
- void isEndOfFile_002( )
- {
- ::osl::File testFile( aTmpName4 );
- sal_Bool bEOF = sal_False;
- sal_Bool *pEOF = &bEOF;
- sal_uInt64 nFilePointer = 0;
-
- nError1 = testFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- nError1 = testFile.setPos( osl_Pos_Absolut, 0 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- *pEOF = sal_False;
- while ( !( *pEOF ) )
- {
- nError1 = testFile.isEndOfFile( pEOF );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.setPos( osl_Pos_Current, 1 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- }
- nError1 = testFile.getPos( nFilePointer );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- nError1 = testFile.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isEndOfFile function: use isEndOfFile to move pointer step by step",
- sizeof( pBuffer_Char ) + 1 == nFilePointer );
- }
- CPPUNIT_TEST_SUITE( isEndOfFile );
- CPPUNIT_TEST( isEndOfFile_001 );
- CPPUNIT_TEST( isEndOfFile_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class isEndOfFile
-
-
- //---------------------------------------------------------------------
- // testing the method
- // inline RC setSize( sal_uInt64 uSize )
- //---------------------------------------------------------------------
- class setSize : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1;
- sal_uInt64 nCount_write, nCount_read;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpdir/tmpname.
- createTestDirectory( aTmpName3 );
- createTestFile( aTmpName4 );
-
- //write chars into the file.
- ::osl::File testFile( aTmpName4 );
-
- nError1 = testFile.open( osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.write( pBuffer_Char, sizeof( pBuffer_Char ), nCount_write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpdir/tmpname.
- deleteTestFile( aTmpName4 );
- deleteTestDirectory( aTmpName3 );
- }
-
- // test code.
- void setSize_001( )
- {
- ::osl::File testFile( aTmpName4 );
- // sal_Bool bEOF = sal_False;
- // sal_Bool *pEOF = &bEOF;
- sal_uInt64 nFilePointer;
-
-
- nError1 = testFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- //enlarge the file to size of 100;
- nError1 = testFile.setSize( 100 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- //get the file size;
- nError1 = testFile.setPos( osl_Pos_End, 0 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.getPos( nFilePointer );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- nError1 = testFile.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for setSize function: enlarge the file ",
- 100 == nFilePointer );
- }
-
- void setSize_002( )
- {
- ::osl::File testFile( aTmpName4 );
- // sal_Bool bEOF = sal_False;
- // sal_Bool *pEOF = &bEOF;
- sal_uInt64 nFilePointer;
-
-
- nError1 = testFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- //enlarge the file to size of 100;
- nError1 = testFile.setSize( 10 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- //get the file size;
- nError1 = testFile.setPos( osl_Pos_End, 0 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.getPos( nFilePointer );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- nError1 = testFile.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for setSize function: truncate the file ",
- 10 == nFilePointer );
- }
-
- CPPUNIT_TEST_SUITE( setSize );
- CPPUNIT_TEST( setSize_001 );
- CPPUNIT_TEST( setSize_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class setSize
-
-
- //---------------------------------------------------------------------
- // testing the method
- // inline RC read( void *pBuffer, sal_uInt64 uBytesRequested, sal_uInt64& rBytesRead )
- //---------------------------------------------------------------------
- class read : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1;
- sal_uInt64 nCount_write, nCount_read;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpdir/tmpname.
- createTestDirectory( aTmpName3 );
- createTestFile( aTmpName4 );
-
- //write chars into the file.
- ::osl::File testFile( aTmpName4 );
-
- nError1 = testFile.open( osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.write( pBuffer_Char, sizeof( pBuffer_Char ), nCount_write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpdir/tmpname.
- deleteTestFile( aTmpName4 );
- deleteTestDirectory( aTmpName3 );
- }
-
- // test code.
- void read_001( )
- {
- ::osl::File testFile( aTmpName4 );
- sal_uInt64 nFilePointer;
- sal_Char buffer_read[10];
-
-
- nError1 = testFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- nError1 = testFile.read( buffer_read, 10, nCount_read );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.getPos( nFilePointer );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- nError1 = testFile.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for read function: read whole content in the file to a buffer",
- ( 10 == nFilePointer ) && ( 0 == strncmp( buffer_read, pBuffer_Char, 10 ) ) );
- }
-
- void read_002( )
- {
- ::osl::File testFile( aTmpName4 );
- sal_uInt64 nFilePointer;
- sal_Char buffer_read[26];
-
-
- nError1 = testFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- nError1 = testFile.setPos( osl_Pos_Absolut, 26 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.read( buffer_read, 26, nCount_read );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.getPos( nFilePointer );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- nError1 = testFile.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for read function: read from a special positon in the file",
- ( 52 == nFilePointer ) && ( 26 == nCount_read ) && ( 0 == strncmp( buffer_read, &pBuffer_Char[26], 26 ) ) );
- }
-
- CPPUNIT_TEST_SUITE( read );
- CPPUNIT_TEST( read_001 );
- CPPUNIT_TEST( read_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class read
-
- //---------------------------------------------------------------------
- // testing the method
- // inline RC write(const void *pBuffer, sal_uInt64 uBytesToWrite, sal_uInt64& rBytesWritten)
- //---------------------------------------------------------------------
- class write : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1;
- sal_uInt64 nCount_write, nCount_read;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpname.
- createTestFile( aTmpName6 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpname.
- deleteTestFile( aTmpName6 );
- }
-
- // test code.
- void write_001( )
- {
- ::osl::File testFile( aTmpName6 );
- sal_uInt64 nFilePointer;
- sal_Char buffer_read[10];
-
- nError1 = testFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- //write chars into the file.
- nError1 = testFile.write( pBuffer_Char, 10, nCount_write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- //get the current pointer;
- nError1 = testFile.getPos( nFilePointer );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- //reset pointer to the begining;
- nError1 = testFile.setPos( osl_Pos_Absolut, 0 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.read( buffer_read, 10, nCount_read );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- nError1 = testFile.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for write function: read whole content in the file to a buffer. Note, buffer size can not smaller than the read size",
- ( 10 == nFilePointer ) &&
- ( 0 == strncmp( buffer_read, pBuffer_Char, 10 ) ) &&
- ( 10 == nCount_write ) );
- }
-
- CPPUNIT_TEST_SUITE( write );
- CPPUNIT_TEST( write_001 );
- CPPUNIT_TEST_SUITE_END( );
- };// class write
-
- //---------------------------------------------------------------------
- // testing the method
- // inline RC readLine( ::rtl::ByteSequence& aSeq )
- //---------------------------------------------------------------------
- class readLine : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1;
- sal_uInt64 nCount_write, nCount_read;
- ::rtl::ByteSequence aSequence;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpname.
- createTestFile( aTmpName6 );
-
- //write some strings into the file.
- ::osl::File testFile( aTmpName6 );
- sal_Char ppStrSeq[3][27] = { "abcde\n",
- "1234567890\n",
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- };
-
- nError1 = testFile.open( osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- for ( int nCount = 0; nCount < 3; nCount++ )
- {
- nError1 = testFile.write( ppStrSeq[nCount], strlen( ppStrSeq[nCount] ), nCount_write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- }
-
- nError1 = testFile.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpname.
- deleteTestFile( aTmpName6 );
- }
-
- // test code.
- void readLine_001( )
- {
- ::osl::File testFile( aTmpName6 );
-
- nError1 = testFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.readLine( aSequence );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for readLine function: read the first line of the file.",
- ( ::osl::FileBase::E_None == nError1 ) &&
- ( 0 == strncmp( ( const char * )aSequence.getArray( ), pBuffer_Char, 5 ) ) );
- }
-
- void readLine_002( )
- {
- ::osl::File testFile( aTmpName6 );
- sal_Bool bEOF = sal_False;
- sal_Bool *pEOF = &bEOF;
-
- nError1 = testFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- for ( int nCount = 0; nCount < 3; nCount++ )
- {
- nError1 = testFile.readLine( aSequence );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- }
- nError1 = testFile.isEndOfFile( pEOF );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for readLine function: read three lines of the file and check the file pointer moving.",
- *pEOF &&
- ( 0 == strncmp( ( const char * )aSequence.getArray( ), &pBuffer_Char[26], 26 ) ) );
- }
- CPPUNIT_TEST_SUITE( readLine );
- CPPUNIT_TEST( readLine_001 );
- CPPUNIT_TEST( readLine_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class readLine
-
- //---------------------------------------------------------------------
- // testing the method
- // inline static RC copy( const ::rtl::OUString& ustrSourceFileURL, const ::rtl::OUString& ustrDestFileURL )
- //---------------------------------------------------------------------
- class copy : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1;
- sal_uInt64 nCount_write, nCount_read;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpdir/tmpname.
- createTestDirectory( aTmpName3 );
- createTestFile( aTmpName4 );
-
- //write chars into the file.
- ::osl::File testFile( aTmpName4 );
-
- nError1 = testFile.open( osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.write( pBuffer_Char, sizeof( pBuffer_Char ), nCount_write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpdir/tmpname.
- deleteTestFile( aTmpName4 );
- deleteTestDirectory( aTmpName3 );
- }
-
- // test code.
- void copy_001( )
- {
- ::osl::File testFile( aTmpName6 );
-
- //copy $TEMP/tmpdir/tmpname to $TEMP/tmpname.
- nError1 = ::osl::File::copy( aTmpName4, aTmpName6 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- //check
- nError1 = testFile.open( osl_File_OpenFlag_Create );
- deleteTestFile( aTmpName6 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for copy function: copy file to upper directory",
- ::osl::FileBase::E_EXIST == nError1 );
- }
-
- void copy_002( )
- {
- //copy $TEMP/tmpdir/tmpname to $TEMP/tmpdir.
- nError1 = ::osl::File::copy( aTmpName4, aTmpName3 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for copy function: use directory as destination",
- ( ::osl::FileBase::E_ISDIR == nError1 ) ||( ::osl::FileBase::E_ACCES == nError1 ) );
- }
-
- void copy_003( )
- {
- //copy $TEMP/tmpdir/tmpname to $ROOT/tmpname.
- nError1 = ::osl::File::copy( aTmpName4, aTmpName7 );
-#if defined (WNT )
- nError1 = ::osl::FileBase::E_ACCES; /// for Windows, c:/ is writtenable any way.
- deleteTestFile( aTmpName7);
-#endif
- CPPUNIT_ASSERT_MESSAGE( "test for copy function: copy to an illigal place",
- ::osl::FileBase::E_ACCES == nError1 );
- }
-
- void copy_004( )
- {
- //copy $TEMP/tmpname to $TEMP/tmpdir/tmpname.
- nError1 = ::osl::File::copy( aTmpName6, aTmpName4 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for copy function: copy a not exist file",
- ::osl::FileBase::E_NOENT == nError1 );
- }
-
- void copy_005( )
- {
- //copy $TEMP/tmpname to $TEMP/system.path using system path.
- nError1 = ::osl::File::copy( aTmpName6, aSysPath1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for copy function: copy a file using system file path",
- ::osl::FileBase::E_INVAL == nError1 );
- }
- void copy_006( )
- {
- createTestFile( aTmpName6 );
- File tmpFile( aTmpName6 );
- FileBase::RC err = tmpFile.open( osl_File_OpenFlag_Write | osl_File_OpenFlag_Read );
- (void)err;
- tmpFile.setSize( 200 );
- tmpFile.close();
- //copy to new path
- nError1 = ::osl::File::copy( aTmpName6, aTmpName4 );
- CPPUNIT_ASSERT( nError1 == FileBase::E_None );
-
- //check if is the new file
- File newFile( aTmpName4 );
- newFile.open( osl_File_OpenFlag_Write | osl_File_OpenFlag_Read );
- nError1 = newFile.setPos( osl_Pos_End, 0 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- sal_uInt64 nFilePointer;
- nError1 = newFile.getPos( nFilePointer );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- newFile.close( );
- deleteTestFile( aTmpName6 );
- CPPUNIT_ASSERT_MESSAGE( "test for copy function: the dest file exist",
- nFilePointer == 200 );
- }
- //copyLink has not been impletmented yet
- void copy_007( )
- {
-#if ( defined UNX )
-
- CPPUNIT_ASSERT_MESSAGE( "test for copy function: source file is link file",
- ::osl::FileBase::E_INVAL == nError1 );
-#endif
- }
-
- CPPUNIT_TEST_SUITE( copy );
- CPPUNIT_TEST( copy_001 );
- CPPUNIT_TEST( copy_002 );
- CPPUNIT_TEST( copy_003 );
- CPPUNIT_TEST( copy_004 );
- CPPUNIT_TEST( copy_005 );
- CPPUNIT_TEST( copy_006 );
- CPPUNIT_TEST_SUITE_END( );
- };// class copy
-
- //---------------------------------------------------------------------
- // testing the method
- // inline static RC move( const ::rtl::OUString& ustrSourceFileURL, const ::rtl::OUString& ustrDestFileURL )
- //---------------------------------------------------------------------
- class move : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2;
- sal_uInt64 nCount_write, nCount_read;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpdir/tmpname.
- createTestDirectory( aTmpName3 );
- createTestFile( aTmpName4 );
-
- //write chars into the file.
- ::osl::File testFile( aTmpName4 );
-
- nError1 = testFile.open( osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.write( pBuffer_Char, sizeof( pBuffer_Char ), nCount_write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpdir/tmpname.
- deleteTestFile( aTmpName4 );
- deleteTestDirectory( aTmpName3 );
- }
-
- // test code.
- void move_001( )
- {
- //rename $TEMP/tmpdir/tmpname to $TEMP/canonical.name.
- nError1 = ::osl::File::move( aTmpName4, aCanURL1 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- //check
- ::osl::File testFile( aCanURL1 );
- nError2 = testFile.open( osl_File_OpenFlag_Create );
- deleteTestFile( aCanURL1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for move function: rename file to another directory",
- ::osl::FileBase::E_EXIST == nError2 );
- }
-
- void move_002( )
- {
- //move $TEMP/tmpdir/tmpname to $TEMP/tmpdir.
- nError1 = ::osl::File::move( aTmpName4, aTmpName3 );
- //returned ::osl::FileBase::E_ACCES on WNT
- CPPUNIT_ASSERT_MESSAGE( "test for move function: use directory as destination",
- ( ::osl::FileBase::E_ACCES == nError1 || ::osl::FileBase::E_ISDIR == nError1 ) ||( ::osl::FileBase::E_EXIST == nError1 ) );
- }
-
- void move_003( )
- {
- //move $TEMP/tmpdir/tmpname to $ROOT/tmpname.
- nError1 = ::osl::File::move( aTmpName4, aTmpName7 );
-#if defined (WNT )
- nError1 = ::osl::FileBase::E_ACCES; /// for Windows, c:/ is writtenable any way.
- deleteTestFile( aTmpName7);
-#endif
-
- CPPUNIT_ASSERT_MESSAGE( "test for move function: move to an illigal place",
- ::osl::FileBase::E_ACCES == nError1 );
- }
-
- void move_004( )
- {
- //move $TEMP/tmpname to $TEMP/tmpdir/tmpname.
- nError1 = ::osl::File::move( aTmpName6, aTmpName4 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for move function: move a not exist file",
- ::osl::FileBase::E_NOENT == nError1 );
- }
-
- void move_005( )
- {
- //move $TEMP/tmpname to $TEMP/system.path using system path.
- nError1 = ::osl::File::move( aTmpName6, aSysPath1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for move function: move a file using system file",
- ::osl::FileBase::E_INVAL == nError1 );
- }
-
- void move_006( )
- {
- //move directory $TEMP/tmpname to $TEMP/tmpdir/tmpname.
- createTestDirectory( aTmpName6 );
- nError1 = ::osl::File::move( aTmpName6, aTmpName4 );
- //move file $TEMP/tmpdir/tmpname to $TEMP/tmpname
- nError2 = ::osl::File::move( aTmpName4, aTmpName6 );
- deleteTestDirectory( aTmpName6 );
-#if defined ( WNT )
- deleteTestDirectory( aTmpName4 );// in Windows, it can be moved!!!!! this is only for not influence the following test.
- deleteTestFile( aTmpName6 );
- nError1 = ::osl::FileBase::E_NOTDIR;
- nError2 = ::osl::FileBase::E_ISDIR;
-#endif
- CPPUNIT_ASSERT_MESSAGE( "test for move function: move a directory to an exist file with same name, did not pass in (W32)",
- ::osl::FileBase::E_NOTDIR == nError1 && ::osl::FileBase::E_ISDIR == nError2 );
- }
-
- void move_007( )
- {
- //create directory $TEMP/tmpname.
- createTestDirectory( aTmpName6 );
- //move directory $TEMP/tmpdir to $TEMP/tmpname/tmpdir
- nError1 = ::osl::File::move( aTmpName3, aTmpName8 );
- //check
- nError2 = ::osl::Directory::create( aTmpName8 );
- ::osl::File::move( aTmpName8, aTmpName3 );
- deleteTestDirectory( aTmpName6 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for move function: move a directory to an exist file with same name",
- (::osl::FileBase::E_None == nError1 ) &&
- (::osl::FileBase::E_EXIST == nError2 ) );
- }
- // oldpath and newpath are not on the same filesystem.EXDEV,no such error no on Solaris, only on linux
- void move_008( )
- {
- CPPUNIT_ASSERT_MESSAGE( "oldpath and newpath are not on the same filesystem, should error returns",
- ::osl::FileBase::E_None == nError1 );
- }
- //bugid# 115420, after the bug fix, add the case
- void move_009( )
- {
- //create directory $TEMP/tmpname.
- createTestDirectory( aTmpName6 );
- //create directory $TEMP/tmpname/tmpdir
- createTestDirectory( aTmpName8 );
- //move directory $TEMP/tmpname to $TEMP/tmpname/tmpdir/tmpname
- rtl::OUString newName = aTmpName8 + OUString(RTL_CONSTASCII_USTRINGPARAM("/tmpname"));
- nError1 = ::osl::File::move( aTmpName3, newName );
- //deleteTestDirectory( newName + OUString(RTL_CONSTASCII_USTRINGPARAM("/tmpname")) );
- //deleteTestDirectory( newName );
- deleteTestDirectory( aTmpName8 );
- deleteTestDirectory( aTmpName6 );
- CPPUNIT_ASSERT_MESSAGE( "test for move function: move a directory to it's subdirectory",
- ::osl::FileBase::E_None != nError1 );
- }
-
- CPPUNIT_TEST_SUITE( move );
- CPPUNIT_TEST( move_001 );
- CPPUNIT_TEST( move_002 );
- CPPUNIT_TEST( move_003 );
- CPPUNIT_TEST( move_004 );
- CPPUNIT_TEST( move_005 );
- CPPUNIT_TEST( move_006 );
- CPPUNIT_TEST( move_007 );
- // CPPUNIT_TEST( move_008 );
- //CPPUNIT_TEST( move_009 );
- CPPUNIT_TEST_SUITE_END( );
- };// class move
-
-
- //---------------------------------------------------------------------
- // testing the method
- // inline static RC remove( const ::rtl::OUString& ustrFileURL )
- //---------------------------------------------------------------------
- class remove : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2;
- sal_uInt64 nCount_write, nCount_read;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpdir/tmpname.
- createTestDirectory( aTmpName3 );
- createTestFile( aTmpName4 );
-
- //write chars into the file.
- ::osl::File testFile( aTmpName4 );
-
- nError1 = testFile.open( osl_File_OpenFlag_Write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.write( pBuffer_Char, sizeof( pBuffer_Char ), nCount_write );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = testFile.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpdir/tmpname.
- deleteTestFile( aTmpName4 );
- deleteTestDirectory( aTmpName3 );
- }
-
- // test code.
- void remove_001( )
- {
- //remove $TEMP/tmpdir/tmpname.
- nError1 = ::osl::File::remove( aTmpName4 );
- //check
- ::osl::File testFile( aTmpName4 );
- nError2 = testFile.open( osl_File_OpenFlag_Create );
-
- CPPUNIT_ASSERT_MESSAGE( "test for remove function: remove a file",
- ( ::osl::FileBase::E_None == nError1 ) &&
- ( ::osl::FileBase::E_EXIST != nError2 ) );
- }
-
- void remove_002( )
- {
- //remove $TEMP/tmpname.
- nError1 = ::osl::File::remove( aTmpName6 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for remove function: remove a file not exist",
- ( ::osl::FileBase::E_NOENT == nError1 ) );
- }
-
- void remove_003( )
- {
- //remove $TEMP/system/path.
- nError1 = ::osl::File::remove( aSysPath2 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for remove function: removing a file not using full qualified URL",
- ( ::osl::FileBase::E_INVAL == nError1 ) );
- }
-
- void remove_004( )
- {
- //remove $TEMP/tmpdir.
- nError1 = ::osl::File::remove( aTmpName3 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for remove function: remove a directory",
- ( ::osl::FileBase::E_ISDIR == nError1 ) || ( ::osl::FileBase::E_ACCES == nError1 ));
- }
-
- CPPUNIT_TEST_SUITE( remove );
- CPPUNIT_TEST( remove_001 );
- CPPUNIT_TEST( remove_002 );
- CPPUNIT_TEST( remove_003 );
- CPPUNIT_TEST( remove_004 );
- CPPUNIT_TEST_SUITE_END( );
- };// class remove
-
-
- //---------------------------------------------------------------------
- // testing the method
- // inline static RC setAttributes( const ::rtl::OUString& ustrFileURL, sal_uInt64 uAttributes )
- //---------------------------------------------------------------------
- class setAttributes : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2;
- ::osl::DirectoryItem rItem, rItem_hidden;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpdir/tmpname.
- createTestFile( aTmpName6 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpdir/tmpname.
- deleteTestFile( aTmpName6 );
- }
-
- // test code.
- void setAttributes_001( )
- {
- //on windows, only can set 2 attributes: osl_File_Attribute_ReadOnly, osl_File_Attribute_Hidden
-#ifdef UNX
- //set the file to readonly
- nError2 = ::osl::File::setAttributes( aTmpName6, osl_File_Attribute_ReadOnly | osl_File_Attribute_GrpRead | osl_File_Attribute_OwnRead | osl_File_Attribute_OthRead );
- CPPUNIT_ASSERT( nError2 == FileBase::E_None);
- nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem );
- CPPUNIT_ASSERT( nError1 == FileBase::E_None);
- //get the file attributes
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_Attributes );
- nError1 = rItem.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( nError1 == FileBase::E_None );
-
- CPPUNIT_ASSERT_MESSAGE( "test for setAttributes function: set file attributes and get it to verify.",
- ( osl_File_Attribute_ReadOnly | osl_File_Attribute_GrpRead | osl_File_Attribute_OwnRead | osl_File_Attribute_OthRead ) ==
- rFileStatus.getAttributes( ) );
-#else
- //please see GetFileAttributes
- nError2 = ::osl::File::setAttributes( aTmpName6, osl_File_Attribute_ReadOnly );
- CPPUNIT_ASSERT( nError2 == FileBase::E_None);
- nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem );
- CPPUNIT_ASSERT( nError1 == FileBase::E_None);
- //get the file attributes
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_Attributes );
- nError1 = rItem.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( nError1 == FileBase::E_None );
- //here the file has 2 Attributes: FILE_ATTRIBUTE_READONLY and FILE_ATTRIBUTE_NORMAL,
- // but FILE_ATTRIBUTE_NORMAL is valid only if used alone, so this is maybe a bug
- /*::rtl::OString aString = ::rtl::OUStringToOString( aTmpName6, RTL_TEXTENCODING_ASCII_US );
- DWORD dwFileAttributes = GetFileAttributes( aString.getStr( ) );
- if (dwFileAttributes & FILE_ATTRIBUTE_NORMAL)
- printf("has normal attribute");
- if (dwFileAttributes & FILE_ATTRIBUTE_READONLY)
- printf("has readonly attribute");
- */
- CPPUNIT_ASSERT_MESSAGE( "test for setAttributes function: set file attributes READONLY and get it to verify.",
- (osl_File_Attribute_ReadOnly & rFileStatus.getAttributes( )) != 0 );
-#endif
- }
- void setAttributes_002( )
- {
- //on UNX, can not set hidden attribute to file, rename file can set the attribute
-#ifdef WNT
- //set the file to hidden
- nError2 = ::osl::File::setAttributes( aTmpName6, osl_File_Attribute_Hidden);
-
- CPPUNIT_ASSERT( nError2 == FileBase::E_None);
- nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem );
- CPPUNIT_ASSERT( nError1 == FileBase::E_None);
- //get the file attributes
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_Attributes );
- nError1 = rItem.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( nError1 == FileBase::E_None );
-
- CPPUNIT_ASSERT_MESSAGE( "test for setAttributes function: set file attributes and get it to verify.",
- (osl_File_Attribute_Hidden & rFileStatus.getAttributes( )) != 0 );
-#endif
- }
-
- CPPUNIT_TEST_SUITE( setAttributes );
- CPPUNIT_TEST( setAttributes_001 );
- CPPUNIT_TEST( setAttributes_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class setAttributes
-
-
- //---------------------------------------------------------------------
- // testing the method
- // inline static RC setTime(
- // const ::rtl::OUString& ustrFileURL,
- // const TimeValue& rCreationTime,
- // const TimeValue& rLastAccessTime,
- // const TimeValue& rLastWriteTime )
- //---------------------------------------------------------------------
- class setTime : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2;
- ::osl::DirectoryItem rItem;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpdir/tmpname.
- createTestFile( aTmpName6 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpdir/tmpname.
- deleteTestFile( aTmpName6 );
- }
-
- // test code.
- void setTime_001( )
- {
- TimeValue *pTV_current = NULL;
- CPPUNIT_ASSERT( ( pTV_current = ( TimeValue* )malloc( sizeof( TimeValue ) ) ) != NULL );
- TimeValue *pTV_creation = NULL;
- CPPUNIT_ASSERT( ( pTV_creation = ( TimeValue* )malloc( sizeof( TimeValue ) ) ) != NULL );
- TimeValue *pTV_access = NULL;
- CPPUNIT_ASSERT( ( pTV_access = ( TimeValue* )malloc( sizeof( TimeValue ) ) ) != NULL );
- TimeValue *pTV_modify = NULL;
- CPPUNIT_ASSERT( ( pTV_modify = ( TimeValue* )malloc( sizeof( TimeValue ) ) ) != NULL );
-
- //get current time
- sal_Bool bOk = osl_getSystemTime( pTV_current );
- CPPUNIT_ASSERT( sal_True == bOk );
-
- //set the file time
- nError2 = ::osl::File::setTime( aTmpName6, *pTV_current, *pTV_current, *pTV_current );
- CPPUNIT_ASSERT_MESSAGE( errorToStr( nError2 ).getStr(), nError2 == FileBase::E_None);
-
- //get the file access time, creation time, modify time
- nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem );
- CPPUNIT_ASSERT_MESSAGE( errorToStr( nError1 ).getStr(), nError1 == FileBase::E_None);
-
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_AccessTime );
- nError1 = rItem.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT_MESSAGE( errorToStr( nError1 ).getStr(),nError1 == FileBase::E_None );
- *pTV_access = rFileStatus.getAccessTime( );
-
- ::osl::FileStatus rFileStatus1( osl_FileStatus_Mask_CreationTime );
- nError1 = rItem.getFileStatus( rFileStatus1 );
- CPPUNIT_ASSERT_MESSAGE( errorToStr( nError1 ).getStr(), nError1 == FileBase::E_None );
- *pTV_creation = rFileStatus1.getCreationTime( );
-
- ::osl::FileStatus rFileStatus2( osl_FileStatus_Mask_ModifyTime );
- nError1 = rItem.getFileStatus( rFileStatus2 );
- CPPUNIT_ASSERT_MESSAGE( errorToStr( nError1 ).getStr(), nError1 == FileBase::E_None );
- *pTV_modify = rFileStatus2.getModifyTime( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for setTime function: set access time then get it. time precision is still a problem for it cut off the nanosec.",
- sal_True == t_compareTime( pTV_access, pTV_current, delta ) );
-#if defined ( WNT )
- //Unfortunately there is no way to get the creation time of a file under Unix (its a Windows only feature).
- //That means the flag osl_FileStatus_Mask_CreationTime should be deprecated under Unix.
- CPPUNIT_ASSERT_MESSAGE( "test for setTime function: set creation time then get it. ",
- sal_True == t_compareTime( pTV_creation, pTV_current, delta ) ) ;
-#endif
- CPPUNIT_ASSERT_MESSAGE( "test for setTime function: set modify time then get it. ",
- sal_True == t_compareTime( pTV_modify, pTV_current, delta ) );
- free( pTV_current );
- free( pTV_creation );
- free( pTV_access );
- free( pTV_modify );
- }
-
- CPPUNIT_TEST_SUITE( setTime );
- CPPUNIT_TEST( setTime_001 );
- CPPUNIT_TEST_SUITE_END( );
- };// class setTime
-
- //---------------------------------------------------------------------
- // testing the method
- // inline static RC sync()
- //---------------------------------------------------------------------
- class sync : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2;
- ::osl::DirectoryItem rItem;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpdir/tmpname.
- createTestFile( aTmpName6 );
-
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpdir/tmpname.
- deleteTestFile( aTmpName6 );
- }
-
- // test case: if The file is located on a read only file system.
- void sync_001( )
- {
-#ifdef UNX
- nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem );
- CPPUNIT_ASSERT( nError1 == FileBase::E_None);
-
- File tmp_file( aTmpName6 );
- FileBase::RC err = tmp_file.open(osl_File_OpenFlag_Write );
-
- CPPUNIT_ASSERT_MESSAGE("File open failed", err == FileBase::E_None);
-
- char buffer[50000];
- sal_uInt64 written = 0;
- nError1 = tmp_file.write((void*)buffer, sizeof(buffer), written);
- CPPUNIT_ASSERT_MESSAGE("write failed!", nError1 == FileBase::E_None);
-
- //set the file to readonly
- nError2 = ::osl::File::setAttributes( aTmpName6, osl_File_Attribute_ReadOnly | osl_File_Attribute_GrpRead | osl_File_Attribute_OwnRead | osl_File_Attribute_OthRead );
- CPPUNIT_ASSERT( nError2 == FileBase::E_None);
-
- nError2 = tmp_file.sync();
-
- CPPUNIT_ASSERT_MESSAGE("can not sync to readonly file!", nError2 == FileBase::E_None);
-
- tmp_file.close();
-#endif
- }
- //test case:no enough space, how to create such case???see test_cpy_wrt_file.cxx::test_osl_writeFile
-
-
-
- CPPUNIT_TEST_SUITE( sync );
- CPPUNIT_TEST( sync_001 );
- CPPUNIT_TEST_SUITE_END( );
- };// class setTime
-
- // -----------------------------------------------------------------------------
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::ctors, "osl_File" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::open, "osl_File" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::close, "osl_File" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::setPos, "osl_File" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::getPos, "osl_File" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::isEndOfFile, "osl_File" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::setSize, "osl_File" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::read, "osl_File" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::write, "osl_File" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::readLine, "osl_File" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::copy, "osl_File" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::move, "osl_File" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::remove, "osl_File" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::setAttributes, "osl_File" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::setTime, "osl_File" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::sync, "osl_File" );
-
-}// namespace osl_File
-
-
-//------------------------------------------------------------------------
-// Beginning of the test cases for DirectoryItem class
-//------------------------------------------------------------------------
-namespace osl_DirectoryItem
-{
- //---------------------------------------------------------------------
- // testing the method
- // DirectoryItem(): _pData( NULL )
- //---------------------------------------------------------------------
- class ctors : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpname.
- createTestFile( aTmpName6 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpname.
- deleteTestFile( aTmpName6 );
- }
-
- // test code.
- void ctors_001( )
- {
- ::osl::File testFile( aTmpName6 );
- ::osl::DirectoryItem rItem; //constructor
-
- //get the DirectoryItem.
- nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem );
- CPPUNIT_ASSERT( FileBase::E_None == nError1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors function: initialize a new instance of DirectoryItem and get an item to check.",
- ::osl::FileBase::E_None == nError1 );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_001 );
- CPPUNIT_TEST_SUITE_END( );
- };// class ctors
-
- //---------------------------------------------------------------------
- // testing the method
- // DirectoryItem( const DirectoryItem& rItem ): _pData( rItem._pData)
- //---------------------------------------------------------------------
- class copy_assin_Ctors : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpname.
- createTestFile( aTmpName6 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpname.
- deleteTestFile( aTmpName6 );
- }
-
- // test code.
- void copy_assin_Ctors_001( )
- {
- ::osl::DirectoryItem rItem; //constructor
- //get the DirectoryItem.
- nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem );
- CPPUNIT_ASSERT( FileBase::E_None == nError1 );
-
- ::osl::DirectoryItem copyItem( rItem ); //copy constructor
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_FileName );
- nError1 = copyItem.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( nError1 == FileBase::E_None );
-
- CPPUNIT_ASSERT_MESSAGE( "test for copy_assin_Ctors function: use copy constructor to get an item and check filename.",
- ( sal_True == compareFileName( rFileStatus.getFileName( ), aTmpName2 ) ) );
- }
-
- void copy_assin_Ctors_002( )
- {
- ::osl::DirectoryItem rItem; //constructor
- //get the DirectoryItem.
- nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem );
- CPPUNIT_ASSERT( FileBase::E_None == nError1 );
-
- ::osl::DirectoryItem copyItem;
- copyItem = rItem; //assinment operator
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_FileName );
- nError1 = copyItem.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( nError1 == FileBase::E_None );
-
- CPPUNIT_ASSERT_MESSAGE( "test for copy_assin_Ctors function: test assinment operator here since it is same as copy constructor in test way.",
- ( sal_True == compareFileName( rFileStatus.getFileName( ), aTmpName2 ) ) );
- }
-
- CPPUNIT_TEST_SUITE( copy_assin_Ctors );
- CPPUNIT_TEST( copy_assin_Ctors_001 );
- CPPUNIT_TEST( copy_assin_Ctors_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class copy_assin_Ctors
-
- //---------------------------------------------------------------------
- // testing the method
- // inline sal_Bool is()
- //---------------------------------------------------------------------
- class is : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpname.
- createTestFile( aTmpName6 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpname.
- deleteTestFile( aTmpName6 );
- }
-
- // test code.
- void is_001( )
- {
- ::osl::DirectoryItem rItem; //constructor
-
- CPPUNIT_ASSERT_MESSAGE( "test for is function: use an uninitialized instance.",
- !rItem.is( ) );
- }
-
- void is_002( )
- {
- ::osl::DirectoryItem rItem; //constructor
- //get the DirectoryItem.
- nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem );
- CPPUNIT_ASSERT( FileBase::E_None == nError1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for is function: use an uninitialized instance.",
- ( sal_True == rItem.is( ) ) );
- }
-
- CPPUNIT_TEST_SUITE( is );
- CPPUNIT_TEST( is_001 );
- CPPUNIT_TEST( is_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class is
-
- //---------------------------------------------------------------------
- // testing the method
- // static inline RC get( const ::rtl::OUString& ustrFileURL, DirectoryItem& rItem )
- //---------------------------------------------------------------------
- class get : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpname.
- createTestFile( aTmpName6 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpname.
- deleteTestFile( aTmpName6 );
- }
-
- // test code.
- void get_001( )
- {
- ::osl::DirectoryItem rItem; //constructor
- //get the DirectoryItem.
- nError2 = ::osl::DirectoryItem::get( aTmpName6, rItem );
-
- //check the file name
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_FileName );
- nError1 = rItem.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( nError1 == FileBase::E_None );
-
- CPPUNIT_ASSERT_MESSAGE( "test for get function: use copy constructor to get an item and check filename.",
- ( ::osl::FileBase::E_None == nError2 ) &&
- ( sal_True == compareFileName( rFileStatus.getFileName( ), aTmpName2 ) ) );
- }
-
- void get_002( )
- {
- ::osl::DirectoryItem rItem;
- //get the DirectoryItem.
- nError1 = ::osl::DirectoryItem::get( aSysPath1, rItem );
-
- CPPUNIT_ASSERT_MESSAGE( "test for get function: use a system name instead of a URL.",
- FileBase::E_INVAL == nError1 );
- }
-
- void get_003( )
- {
- ::osl::DirectoryItem rItem;
- //get the DirectoryItem.
- nError1 = ::osl::DirectoryItem::get( aTmpName3, rItem );
-
- CPPUNIT_ASSERT_MESSAGE( "test for get function: use a non existed file URL.",
- FileBase::E_NOENT == nError1 );
- }
-
- CPPUNIT_TEST_SUITE( get );
- CPPUNIT_TEST( get_001 );
- CPPUNIT_TEST( get_002 );
- CPPUNIT_TEST( get_003 );
- CPPUNIT_TEST_SUITE_END( );
- };// class get
-
- //---------------------------------------------------------------------
- // testing the method
- // inline RC getFileStatus( FileStatus& rStatus )
- //---------------------------------------------------------------------
- class getFileStatus : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpdir/tmpname.
- createTestDirectory( aTmpName3 );
- createTestFile( aTmpName4 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpdir/tmpname.
- deleteTestFile( aTmpName4 );
- deleteTestDirectory( aTmpName3 );
- }
-
- // test code.
- void getFileStatus_001( )
- {
- ::osl::DirectoryItem rItem; //constructor
- //get the DirectoryItem.
- nError1 = ::osl::DirectoryItem::get( aTmpName4, rItem );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- //check the file name
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_FileName );
- nError2 = rItem.getFileStatus( rFileStatus );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getFileStatus function: get file status and check filename",
- ( ::osl::FileBase::E_None == nError2 ) &&
- ( sal_True == compareFileName( rFileStatus.getFileName( ), aTmpName2 ) ) );
- }
-
- void getFileStatus_002( )
- {
- ::osl::DirectoryItem rItem; //constructor
- //get the DirectoryItem.
- nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem );
-
- //check the file name
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_FileName );
- nError2 = rItem.getFileStatus( rFileStatus );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getFileStatus function: file not existed",
- ( ::osl::FileBase::E_INVAL == nError2 ) );
- }
-
- void getFileStatus_003( )
- {
- ::osl::DirectoryItem rItem; //constructor
- //get the DirectoryItem.
- nError1 = ::osl::DirectoryItem::get( aTmpName3, rItem );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- //check the file name
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_FileName );
- nError2 = rItem.getFileStatus( rFileStatus );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getFileStatus function: get directory information",
- ( ::osl::FileBase::E_None == nError2 ) &&
- ( sal_True == compareFileName( rFileStatus.getFileName( ), aTmpName1 ) ) );
- }
-
-
- CPPUNIT_TEST_SUITE( getFileStatus );
- CPPUNIT_TEST( getFileStatus_001 );
- CPPUNIT_TEST( getFileStatus_002 );
- CPPUNIT_TEST( getFileStatus_003 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getFileStatus
-
-
-
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_DirectoryItem::ctors, "osl_DirectoryItem" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_DirectoryItem::copy_assin_Ctors, "osl_DirectoryItem" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_DirectoryItem::is, "osl_DirectoryItem" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_DirectoryItem::get, "osl_DirectoryItem" );
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_DirectoryItem::getFileStatus, "osl_DirectoryItem" );
-}// namespace osl_DirectoryItem
-
-//Use to deliberately silence warnings for a deliberate error
-extern "C" void SAL_CALL suppressOslDebugMessage( const sal_Char *, sal_Int32, const sal_Char * )
-{
-}
-
-//------------------------------------------------------------------------
-// Beginning of the test cases for Directory class
-//------------------------------------------------------------------------
-namespace osl_Directory
-{
- //---------------------------------------------------------------------
- // testing the method
- // Directory( const ::rtl::OUString& strPath ): _pData( 0 ), _aPath( strPath )
- //---------------------------------------------------------------------
- class ctors : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpdir/tmpname.
- createTestDirectory( aTmpName3 );
- createTestFile( aTmpName4 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpdir/tmpname.
- deleteTestFile( aTmpName4 );
- deleteTestDirectory( aTmpName3 );
- // LLA: t_print("tearDown done.\n");
- }
-
- // test code.
- void ctors_001( )
- {
- ::osl::Directory testDirectory( aTmpName3 ); //constructor
-
- //open a directory
- nError1 = testDirectory.open( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- //close a directory
- nError2 = testDirectory.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError2 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors function: create an instance and check open and close",
- ( ::osl::FileBase::E_None == nError1 ) &&
- ( ::osl::FileBase::E_None == nError2 ) );
- }
-
- void ctors_002( )
- {
- ::osl::Directory testDirectory( aTmpName9 ); //constructor
-
- //open a directory
- nError1 = testDirectory.open( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- //close a directory
- nError2 = testDirectory.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError2 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors function: relative URL, :-), it is also worked",
- ( ::osl::FileBase::E_None == nError1 ) &&
- ( ::osl::FileBase::E_None == nError2 ) );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_001 );
- CPPUNIT_TEST( ctors_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class ctors
-
- //---------------------------------------------------------------------
- // testing the method
- // inline RC open()
- //---------------------------------------------------------------------
- class open : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpdir/tmpname.
- createTestDirectory( aTmpName3 );
- createTestFile( aTmpName4 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpdir/tmpname.
- deleteTestFile( aTmpName4 );
- deleteTestDirectory( aTmpName3 );
- }
-
- // test code.
- void open_001( )
- {
- ::osl::Directory testDirectory( aTmpName3 ); //constructor
-
- //open a directory
- nError1 = testDirectory.open( );
- //check if directory is opened.
- sal_Bool bOk = testDirectory.isOpen( );
- //close a directory
- nError2 = testDirectory.close( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for open function: open a directory and check for open",
- ( sal_True == bOk ) &&
- ( ::osl::FileBase::E_None == nError1 ) &&
- ( ::osl::FileBase::E_None == nError2 ) );
- }
-
- void open_002( )
- {
- ::osl::Directory testDirectory( aTmpName6 ); //constructor
-
- //open a directory
- nError1 = testDirectory.open( );
- if ( ::osl::FileBase::E_None == nError1 )
- {
- nError2 = testDirectory.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError2 );
- }
-
- CPPUNIT_ASSERT_MESSAGE( "test for open function: open a file that is not existed",
- ( ::osl::FileBase::E_NOENT == nError1 ) );
- }
-
- void open_003( )
- {
- ::osl::Directory testDirectory( aUserDirectorySys ); //constructor
-
- //open a directory
- nError1 = testDirectory.open( );
- if ( ::osl::FileBase::E_None == nError1 )
- {
- nError2 = testDirectory.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError2 );
- }
-
- CPPUNIT_ASSERT_MESSAGE( "test for open function: using system path",
- ( ::osl::FileBase::E_INVAL == nError1 ) );
- }
-
- void open_004( )
- {
- ::osl::Directory testDirectory( aTmpName4 ); //constructor
-
- //open a directory
- nError1 = testDirectory.open( );
- if ( ::osl::FileBase::E_None == nError1 )
- {
- nError2 = testDirectory.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError2 );
- }
-
- CPPUNIT_ASSERT_MESSAGE( "test for open function: open a file instead of a directory",
- ( ::osl::FileBase::E_NOTDIR == nError1 ) || ( ::osl::FileBase::E_ACCES ) );
- }
-
- CPPUNIT_TEST_SUITE( open );
- CPPUNIT_TEST( open_001 );
- CPPUNIT_TEST( open_002 );
- CPPUNIT_TEST( open_003 );
- CPPUNIT_TEST( open_004 );
- CPPUNIT_TEST_SUITE_END( );
- };// class open
-
- //---------------------------------------------------------------------
- // testing the method
- // inline sal_Bool isOpen() { return _pData != NULL; };
- //---------------------------------------------------------------------
- class isOpen : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempfile in $TEMP/tmpdir/tmpname.
- createTestDirectory( aTmpName3 );
- createTestFile( aTmpName4 );
- }
-
- void tearDown( )
- {
- // remove the tempfile in $TEMP/tmpdir/tmpname.
- deleteTestFile( aTmpName4 );
- deleteTestDirectory( aTmpName3 );
- }
-
- // test code.
- void isOpen_001( )
- {
- ::osl::Directory testDirectory( aTmpName3 ); //constructor
-
- //open a directory
- nError1 = testDirectory.open( );
- //check if directory is opened.
- sal_Bool bOk = testDirectory.isOpen( );
- //close a directory
- nError2 = testDirectory.close( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isOpen function: open a directory and check for open",
- ( sal_True == bOk ) );
- }
-
- void isOpen_002( )
- {
- ::osl::Directory testDirectory( aTmpName3 ); //constructor
-
- //check if directory is opened.
- sal_Bool bOk = testDirectory.isOpen( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isOpen function: do not open a directory and check for open",
- !( sal_True == bOk ) );
- }
-
- CPPUNIT_TEST_SUITE( isOpen );
- CPPUNIT_TEST( isOpen_001 );
- CPPUNIT_TEST( isOpen_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class isOpen
-
- //---------------------------------------------------------------------
- // testing the method
- // inline RC close()
- //---------------------------------------------------------------------
- class close : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempdirectory : $TEMP/tmpdir.
- createTestDirectory( aTmpName3 );
- }
-
- void tearDown( )
- {
- // remove a tempdirectory : $TEMP/tmpdir.
- deleteTestDirectory( aTmpName3 );
- }
-
- // test code.
- void close_001( )
- {
- ::osl::Directory testDirectory( aTmpName3 ); //constructor
-
- //open a directory
- nError1 = testDirectory.open( );
- //close a directory
- nError2 = testDirectory.close( );
- //check if directory is opened.
- sal_Bool bOk = testDirectory.isOpen( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isOpen function: close a directory and check for open",
- !( sal_True == bOk ) );
- }
-
- void close_002( )
- {
- ::osl::Directory testDirectory( aTmpName3 ); //constructor
-
- //close a directory
- nError1 = testDirectory.close( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isOpen function: close a not opened directory",
- ( ::osl::FileBase::E_BADF == nError1 ) );
- }
-
-
- CPPUNIT_TEST_SUITE( close );
- CPPUNIT_TEST( close_001 );
- CPPUNIT_TEST( close_002 );
- CPPUNIT_TEST_SUITE_END( );
- };// class close
-
- //---------------------------------------------------------------------
- // testing the method
- // inline RC reset()
- //---------------------------------------------------------------------
- class reset : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2;
- ::osl::DirectoryItem rItem;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempdirectory : $TEMP/tmpdir.
- createTestDirectory( aTmpName3 );
- // create three files : $TEMP/tmpdir/tmpname, $TEMP/tmpdir/tmpdir, $TEMP/tmpdir/hiddenfile,
- createTestFile( aTmpName3, aTmpName2);
- createTestFile( aTmpName3, aTmpName1);
- createTestFile( aTmpName3, aHidURL1);
- }
-
- void tearDown( )
- {
- // remove three files : $TEMP/tmpdir/tmpname, $TEMP/tmpdir/tmpdir, $TEMP/tmpdir/hiddenfile,
- deleteTestFile( aTmpName3, aHidURL1);
- deleteTestFile( aTmpName3, aTmpName1);
- deleteTestFile( aTmpName3, aTmpName2);
- // remove a tempdirectory : $TEMP/tmpdir.
- deleteTestDirectory( aTmpName3 );
- }
-
- // test code.
- void reset_001( )
- {
- ::osl::Directory testDirectory( aTmpName3 ); //constructor
-
- //open a directory
- nError1 = testDirectory.open( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- //get first Item
- nError1 = testDirectory.getNextItem( rItem, 1 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- //check the file name of first Item
- ::osl::FileStatus rFileStatusFirst( osl_FileStatus_Mask_FileName );
- nError1 = rItem.getFileStatus( rFileStatusFirst );
-
- //get second Item
- //mindy: nError1 = testDirectory.getNextItem( rItem, 0 );
- //mindy: CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- //reset enumeration
- nError2 = testDirectory.reset( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError2 );
- //get reseted Item, if reset does not work, getNextItem() should return the second Item (aTmpName1)
- nError1 = testDirectory.getNextItem( rItem, 0 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- //check the file name again
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_FileName );
- nError1 = rItem.getFileStatus( rFileStatus );
- //close a directory
- nError1 = testDirectory.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- sal_Bool bOK1,bOK2,bOK3;
- bOK1 = compareFileName( rFileStatus.getFileName( ), aTmpName2 );
- bOK2 = compareFileName( rFileStatus.getFileName( ), aHidURL1 );
- bOK3 = compareFileName( rFileStatus.getFileName( ), rFileStatusFirst.getFileName( ) );
- CPPUNIT_ASSERT_MESSAGE( "test for reset function: get two directory item, reset it, then get again, check the filename",
- ( ::osl::FileBase::E_None == nError2 ) &&
- ( sal_True == bOK1 || bOK2 || bOK3 ) );
- }
-
- void reset_002( )
- {
- ::osl::Directory testDirectory( aTmpName6 ); //constructor
-
- //close a directory
- nError1 = testDirectory.reset( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for reset function: reset a non existed directory",
- ( ::osl::FileBase::E_NOENT == nError1 ) );
- }
-
-
- void reset_003( )
- {
- ::osl::Directory testDirectory( aTmpName4 ); //constructor
-
- //close a directory
- nError1 = testDirectory.reset( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for reset function: reset a file instead of a directory",
- ( ::osl::FileBase::E_NOTDIR == nError1 ) || ( ::osl::FileBase::E_NOENT == nError1 ) );
- }
-
- void reset_004( )
- {
- ::osl::Directory testDirectory( aUserDirectorySys ); //constructor
-
- //close a directory
- nError1 = testDirectory.reset( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for reset function: use a system path",
- ( ::osl::FileBase::E_INVAL == nError1 ) );
- }
-
- CPPUNIT_TEST_SUITE( reset );
- CPPUNIT_TEST( reset_001 );
- CPPUNIT_TEST( reset_002 );
- CPPUNIT_TEST( reset_003 );
- CPPUNIT_TEST( reset_004 );
- CPPUNIT_TEST_SUITE_END( );
- };// class reset
-
- //---------------------------------------------------------------------
- // testing the method
- // inline RC getNextItem( DirectoryItem& rItem, sal_uInt32 nHint = 0 )
- //---------------------------------------------------------------------
- class getNextItem : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2;
- ::osl::DirectoryItem rItem;
-
- public:
- // initialization
- void setUp( )
- {
- // create a tempdirectory : $TEMP/tmpdir.
- createTestDirectory( aTmpName3 );
- // create three files : $TEMP/tmpdir/tmpname, $TEMP/tmpdir/tmpdir, $TEMP/tmpdir/hiddenfile,
- createTestFile( aTmpName3, aTmpName2 );
- createTestFile( aTmpName3, aTmpName1 );
- createTestFile( aTmpName3, aHidURL1 );
-
- }
-
- void tearDown( )
- {
- // remove three files : $TEMP/tmpdir/tmpname, $TEMP/tmpdir/tmpdir, $TEMP/tmpdir/hiddenfile,
- deleteTestFile( aTmpName3, aHidURL1 );
- deleteTestFile( aTmpName3, aTmpName1 );
- deleteTestFile( aTmpName3, aTmpName2 );
- // remove a tempdirectory : $TEMP/tmpdir.
- deleteTestDirectory( aTmpName3 );
- }
-
- // test code.
- void getNextItem_001( )
- {
- ::osl::Directory testDirectory( aTmpName3 ); //constructor
-
- //open a directory
- nError1 = testDirectory.open( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- //check the file name
- ::rtl::OUString strFilename;
- sal_Bool bOk1 = sal_False;
- sal_Bool bOk2 = sal_False;
- sal_Bool bOk3 = sal_False;
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_FileName );
- for ( int nCount = 0; nCount < 3; nCount++ )
- {
- //get three Items
- nError1 = testDirectory.getNextItem( rItem, 2 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- nError1 = rItem.getFileStatus( rFileStatus );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- // a special order is not guaranteed. So any file may occur on any time.
- // But every file name should occur only once.
- if ( bOk1 == sal_False && compareFileName( rFileStatus.getFileName( ), aTmpName1 ) )
- {
- bOk1 = sal_True;
- }
-
- if ( bOk2 == sal_False && compareFileName( rFileStatus.getFileName( ), aTmpName2 ) )
- {
- bOk2 = sal_True;
- }
-
- if ( bOk3 == sal_False && compareFileName( rFileStatus.getFileName( ), aHidURL1 ) )
- {
- bOk3 = sal_True;
- }
- }
-
- //close a directory
- nError1 = testDirectory.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getNextItem function: retrive three items and check their names.",
- ( sal_True == bOk1 ) && ( sal_True == bOk2 ) && ( sal_True == bOk3 ) );
- }
-
- void getNextItem_002( )
- {
- ::osl::Directory testDirectory( aTmpName3 ); //constructor
- //deliberate error, suppress run-time warning
- pfunc_osl_printDetailedDebugMessage pOldDebugMessageFunc = osl_setDetailedDebugMessageFunc( &suppressOslDebugMessage );
- nError1 = testDirectory.getNextItem( rItem );
- osl_setDetailedDebugMessageFunc( pOldDebugMessageFunc );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getNextItem function: retrive an item in a directory which is not opened, also test for nHint's default value.",
- ( ::osl::FileBase::E_INVAL == nError1 ) );
- }
-
- void getNextItem_003( )
- {
- ::osl::Directory testDirectory( aTmpName3 ); //constructor
-
- //open a directory
- nError1 = testDirectory.open( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- for ( int nCount = 0; nCount < 4; nCount++ )
- {
- nError2 = testDirectory.getNextItem( rItem, 3 );
- }
-
- //close a directory
- nError1 = testDirectory.close( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getNextItem function: retrive 4 times in a directory which contain only 3 files.",
- ( ::osl::FileBase::E_NOENT == nError2 ) );
- }
-
- void getNextItem_004( )
- {
- //create a link file(can not on Windows), then check if getNextItem can get it.
-#ifdef UNX
- sal_Bool bLnkOK = sal_False;
- sal_Bool bFoundOK = sal_False;
-
- ::rtl::OUString aUStr_LnkFileSys( aTempDirectorySys ), aUStr_SrcFileSys( aTempDirectorySys );
- ( aUStr_LnkFileSys += aSlashURL ) += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/tmpdir/link.file"));
- ( aUStr_SrcFileSys += aSlashURL ) += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/tmpdir/tmpname"));
-
- ::rtl::OString strLinkFileName, strSrcFileName;
- strLinkFileName = OUStringToOString( aUStr_LnkFileSys, RTL_TEXTENCODING_ASCII_US );
- strSrcFileName = OUStringToOString( aUStr_SrcFileSys, RTL_TEXTENCODING_ASCII_US );
-
- // create a link file and link it to file "/tmp/PID/tmpdir/tmpname"
- sal_Int32 fd = symlink( strSrcFileName.getStr(), strLinkFileName.getStr() );
- CPPUNIT_ASSERT( fd == 0 );
- ::osl::Directory testDirectory( aTmpName3 );
-
- //open a directory
- nError1 = testDirectory.open( );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- ::rtl::OUString aFileName (RTL_CONSTASCII_USTRINGPARAM("link.file"));
-
- while (1) {
- nError1 = testDirectory.getNextItem( rItem, 4 );
- if (::osl::FileBase::E_None == nError1) {
- ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_FileName | osl_FileStatus_Mask_Type );
- rItem.getFileStatus( rFileStatus );
- if ( compareFileName( rFileStatus.getFileName( ), aFileName) == sal_True )
- {
- bFoundOK = sal_True;
- if ( FileStatus::Link == rFileStatus.getFileType( ))
- {
- bLnkOK = sal_True;
- break;
- }
- }
- }
- else
- break;
- };
- fd = std::remove( strLinkFileName.getStr() );
- CPPUNIT_ASSERT_MESSAGE( "remove link file failed", fd == 0 );
- CPPUNIT_ASSERT_MESSAGE( "test for getNextItem function: check if can retrieve the link file name",
- ( bFoundOK == sal_True ) );
- CPPUNIT_ASSERT_MESSAGE( "test for getNextItem function: check if link file has file type link",
- ( bLnkOK == sal_True ) );
-#endif
- }
-
- CPPUNIT_TEST_SUITE( getNextItem );
- CPPUNIT_TEST( getNextItem_001 );
- CPPUNIT_TEST( getNextItem_002 );
- CPPUNIT_TEST( getNextItem_003 );
- CPPUNIT_TEST( getNextItem_004 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getNextItem
-
- //---------------------------------------------------------------------
- // testing the method
- // inline static RC getVolumeInfo( const ::rtl::OUString& ustrDirectoryURL, VolumeInfo& rInfo )
- //---------------------------------------------------------------------
- class getVolumeInfo : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2;
-
- public:
-
- // test code.
- void checkValidMask(osl::VolumeInfo const& _aVolumeInfo, sal_Int32 _nMask)
- {
- if (_nMask == osl_VolumeInfo_Mask_FileSystemName)
- {
- //get file system name
- ::rtl::OUString aFileSysName( aNullURL );
- aFileSysName = _aVolumeInfo.getFileSystemName( );
-
- sal_Bool bRes2 = compareFileName( aFileSysName, aNullURL );
- CPPUNIT_ASSERT_MESSAGE( "test for getVolumeInfo function: getVolumeInfo of root directory.",
- ( osl::FileBase::E_None == nError1 ) &&
- ( sal_False == bRes2 ) );
- }
- if (_nMask == osl_VolumeInfo_Mask_Attributes)
- {
- sal_Bool b1 = _aVolumeInfo.getRemoteFlag();
- sal_Bool b2 = _aVolumeInfo.getRemoveableFlag();
- sal_Bool b3 = _aVolumeInfo.getCompactDiscFlag();
- sal_Bool b4 = _aVolumeInfo.getFloppyDiskFlag();
- sal_Bool b5 = _aVolumeInfo.getFixedDiskFlag();
- sal_Bool b6 = _aVolumeInfo.getRAMDiskFlag();
-
- rtl::OString sAttr;
- if (b1) sAttr = "Remote";
- if (b2) sAttr += " Removeable";
- if (b3) sAttr += " CDROM";
- if (b4) sAttr += " Floppy";
- if (b5) sAttr += " FixedDisk";
- if (b6) sAttr += " RAMDisk";
-
- printf("Attributes: %s\n", sAttr.getStr() );
- }
- if (_nMask == osl_VolumeInfo_Mask_TotalSpace)
- {
- // within Linux, df / * 1024 bytes is the result
- sal_uInt64 nSize = _aVolumeInfo.getTotalSpace();
- printf("Total space: %"SAL_PRIuUINT64"\n", nSize);
- }
- if (_nMask == osl_VolumeInfo_Mask_UsedSpace)
- {
- sal_uInt64 nSize = _aVolumeInfo.getUsedSpace();
- printf(" Used space: %"SAL_PRIuUINT64"\n", nSize);
- }
- if (_nMask == osl_VolumeInfo_Mask_FreeSpace)
- {
- sal_uInt64 nSize = _aVolumeInfo.getFreeSpace();
- printf(" Free space: %"SAL_PRIuUINT64"\n", nSize);
- }
- if (_nMask == osl_VolumeInfo_Mask_MaxNameLength)
- {
- sal_uInt32 nLength = _aVolumeInfo.getMaxNameLength();
- printf("max name length: %"SAL_PRIuUINT32"\n", nLength);
- }
- if (_nMask == osl_VolumeInfo_Mask_MaxPathLength)
- {
- sal_uInt32 nLength = _aVolumeInfo.getMaxPathLength();
- printf("max path length: %"SAL_PRIuUINT32"\n", nLength);
- }
- if (_nMask == osl_VolumeInfo_Mask_FileSystemCaseHandling)
- {
- bool bIsCase = _aVolumeInfo.isCaseSensitiveFileSystem();
- printf("filesystem case sensitive: %s\n", bIsCase ? "yes" : "no");
- }
- }
-
- void checkVolumeInfo(sal_Int32 _nMask)
- {
- ::osl::VolumeInfo aVolumeInfo( _nMask );
- //call getVolumeInfo here
- nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo );
- // LLA: IMHO it's not a bug, if VolumeInfo is not valid, it's a feature
- // LLA: CPPUNIT_ASSERT_MESSAGE("mask is not valid", sal_True == aVolumeInfo.isValid( _nMask ) );
- if (aVolumeInfo.isValid( _nMask))
- {
- checkValidMask(aVolumeInfo, _nMask);
- }
- }
-
-
- void getVolumeInfo_001_1( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_FileSystemName;
- checkVolumeInfo(mask);
- }
- void getVolumeInfo_001_2( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_Attributes;
- checkVolumeInfo(mask);
- }
- void getVolumeInfo_001_3( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_TotalSpace;
- checkVolumeInfo(mask);
- }
- void getVolumeInfo_001_4( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_UsedSpace;
- checkVolumeInfo(mask);
- }
- void getVolumeInfo_001_5( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_FreeSpace;
- checkVolumeInfo(mask);
- }
- void getVolumeInfo_001_6( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_MaxNameLength;
- checkVolumeInfo(mask);
- }
- void getVolumeInfo_001_7( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_MaxPathLength;
- checkVolumeInfo(mask);
- }
- void getVolumeInfo_001_8( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_FileSystemCaseHandling;
- checkVolumeInfo(mask);
- }
-
- void getVolumeInfo_002( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_FileSystemName;
- ::osl::VolumeInfo aVolumeInfo( mask );
- //call getVolumeInfo here
-
- // LLA: rtl::OUString aRootSysURL;
- // LLA: nError1 = osl::File::getFileURLFromSystemPath(aRootSys, aRootSysURL);
- // LLA:
- // LLA: CPPUNIT_ASSERT_MESSAGE( "can't convert root path to file url",
- // LLA: ( osl::FileBase::E_NONE == nError1 ) );
-
- nError1 = ::osl::Directory::getVolumeInfo( aRootSys, aVolumeInfo );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getVolumeInfo function: use system path as parameter.",
- ( osl::FileBase::E_INVAL == nError1 ) );
- }
-
- void getVolumeInfo_003( )
- {
- sal_Int32 mask = osl_VolumeInfo_Mask_FileSystemName;
- ::osl::VolumeInfo aVolumeInfo( mask );
- //call getVolumeInfo here
- nError1 = ::osl::Directory::getVolumeInfo( aTmpName3, aVolumeInfo );
-
-// LLA: in Windows, it reply no error, it did not pass in (W32).
-#if defined(UNX) && !defined(IOS)
- CPPUNIT_ASSERT_MESSAGE( "test for getVolumeInfo function: non-existence test. ",
- ( osl::FileBase::E_NOENT == nError1 ) );
-#endif
- }
-
- CPPUNIT_TEST_SUITE( getVolumeInfo );
- CPPUNIT_TEST( getVolumeInfo_001_1 );
- CPPUNIT_TEST( getVolumeInfo_001_2 );
- CPPUNIT_TEST( getVolumeInfo_001_3 );
- CPPUNIT_TEST( getVolumeInfo_001_4 );
- CPPUNIT_TEST( getVolumeInfo_001_5 );
- CPPUNIT_TEST( getVolumeInfo_001_6 );
- CPPUNIT_TEST( getVolumeInfo_001_7 );
- CPPUNIT_TEST( getVolumeInfo_001_8 );
- CPPUNIT_TEST( getVolumeInfo_002 );
- CPPUNIT_TEST( getVolumeInfo_003 );
- CPPUNIT_TEST_SUITE_END( );
- };// class getVolumeInfo
-
-
- //---------------------------------------------------------------------
- // testing the method
- // inline static RC create( const ::rtl::OUString& ustrDirectoryURL )
- //---------------------------------------------------------------------
- class create : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2;
-
- public:
-
- // test code.
- void create_001( )
- {
- //create directory in $TEMP/tmpdir
- nError1 = ::osl::Directory::create( aTmpName3 );
- //check for existence
- nError2 = ::osl::Directory::create( aTmpName3 );
- //remove it
- deleteTestDirectory( aTmpName3 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for create function: create a directory and check its existence.",
- ( osl::FileBase::E_None == nError1 ) &&
- ( osl::FileBase::E_EXIST== nError2 ) );
- }
-
- void create_002( )
- {
-#if !defined (WNT) && !defined (MACOSX) && defined (SAL_UNX)
- if (geteuid() == 0) //don't test if building as root
- return;
-
- rtl::OUString aTmpDir;
- nError1 = FileBase::createTempFile(NULL, NULL, &aTmpDir);
- CPPUNIT_ASSERT_MESSAGE("temp File creation failed", osl::FileBase::E_None == nError1);
-
- nError1 = ::osl::File::remove(aTmpDir);
- CPPUNIT_ASSERT_MESSAGE("temp File removal failed", osl::FileBase::E_None == nError1);
-
- nError1 = ::osl::Directory::create(aTmpDir);
- ::rtl::OString sError("test for create function: create a directory '");
- sError += ::rtl::OUStringToOString(aTmpDir, RTL_TEXTENCODING_ASCII_US);
- sError += "' and check its existence.";
- CPPUNIT_ASSERT_MESSAGE(sError.getStr(), osl::FileBase::E_None == nError1);
- osl_setFileAttributes(aTmpDir.pData, 0); //no access allowed now
-
- //Shouldn't be possible now to create a dir underneath it
- rtl::OUString aTmpSubLevel = aTmpDir + OUString(RTL_CONSTASCII_USTRINGPARAM("/notallowedhere"));
- nError1 = ::osl::Directory::create(aTmpSubLevel);
-
- //allow removal
- osl_setFileAttributes(aTmpDir.pData,
- osl_File_Attribute_OwnRead |
- osl_File_Attribute_OwnWrite |
- osl_File_Attribute_OwnExe);
- deleteTestDirectory(aTmpDir);
- sError = ::rtl::OString("test for create function: create a directory under '");
- sError += ::rtl::OUStringToOString(aTmpDir, RTL_TEXTENCODING_ASCII_US);
- sError += "' for access test.";
- CPPUNIT_ASSERT_MESSAGE(sError.getStr(), osl::FileBase::E_ACCES == nError1);
-#endif
- }
-
- void create_003( )
- {
- //create directory in /tmpname
- nError1 = ::osl::Directory::create( aSysPath1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for create function: create a directory using system path.",
- ( osl::FileBase::E_INVAL == nError1 ) );
- }
-
- CPPUNIT_TEST_SUITE( create );
- CPPUNIT_TEST( create_001 );
- CPPUNIT_TEST( create_002 );
- CPPUNIT_TEST( create_003 );
- CPPUNIT_TEST_SUITE_END( );
- };// class create
-
- //---------------------------------------------------------------------
- // testing the method
- // inline static RC remove( const ::rtl::OUString& ustrDirectoryURL )
- //---------------------------------------------------------------------
- class remove : public CppUnit::TestFixture
- {
- ::osl::FileBase::RC nError1, nError2;
-
- public:
-
- // test code.
- void remove_001( )
- {
- //create directory in $TEMP/tmpdir
- nError1 = ::osl::Directory::create( aTmpName3 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- //remove it
- nError1 = ::osl::Directory::remove( aTmpName3 );
- //check for existence
- ::osl::Directory rDirectory( aTmpName3 );
- nError2 = rDirectory.open( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for remove function: remove a directory and check its existence.",
- ( osl::FileBase::E_None == nError1 ) &&
- ( osl::FileBase::E_NOENT == nError2 ) );
- }
-
- void remove_002( )
- {
- //create directory in $TEMP/tmpdir
- nError1 = ::osl::Directory::create( aTmpName3 );
- CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
- //try to remove it by system path
- nError1 = ::osl::Directory::remove( aSysPath3 );
- //check for existence
- ::osl::Directory rDirectory( aTmpName3 );
- nError2 = rDirectory.open( );
- if ( osl::FileBase::E_NOENT != nError2 )
- ::osl::Directory::remove( aTmpName3 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for remove function: remove a directory by its system path, and check its existence.",
- ( osl::FileBase::E_INVAL == nError1 ) );
- }
-
- void remove_003( )
- {
- //try to remove a non-existed directory
- nError1 = ::osl::Directory::remove( aTmpName6 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for remove function: try to remove a non-existed directory.",
- ( osl::FileBase::E_NOENT == nError1 ) );
- }
-
- void remove_004( )
- {
- createTestFile( aTmpName6 );
- sal_Bool bExist = ifFileExist( aTmpName6 );
- //try to remove file.
- nError1 = ::osl::Directory::remove( aTmpName6 );
- deleteTestFile( aTmpName6 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for remove function: try to remove a file but not directory.",
- bExist == sal_True &&(( osl::FileBase::E_NOTDIR == nError1 ) || ( osl::FileBase::E_NOENT == nError1 )) );
- }
-
- void remove_005( )
- {
- createTestDirectory( aTmpName3 );
- createTestFile( aTmpName4 );
- nError1 = ::osl::Directory::remove( aTmpName3 );
- deleteTestFile( aTmpName4 );
- deleteTestDirectory( aTmpName3 );
- ::rtl::OString sError = "test for remove function: try to remove a directory that is not empty.";
- sError += errorToStr( nError1 ).getStr();
-#if defined ( SOLARIS )
- //on UNX, the implementation uses rmdir(), which EEXIST is thrown on Solaris when the directory is not empty, refer to: 'man -s 2 rmdir', while on linux, ENOTEMPTY is thrown.
- //EEXIST The directory contains entries other than those for "." and "..".
- printf("#Solaris test\n");
- CPPUNIT_ASSERT_MESSAGE( sError.getStr(), ( osl::FileBase::E_EXIST == nError1 ) );
-#else
- CPPUNIT_ASSERT_MESSAGE( sError.getStr(), ( osl::FileBase::E_NOTEMPTY == nError1 ) );
-#endif
- }
-
- CPPUNIT_TEST_SUITE( remove );
- CPPUNIT_TEST( remove_001 );
- CPPUNIT_TEST( remove_002 );
- CPPUNIT_TEST( remove_003 );
- CPPUNIT_TEST( remove_004 );
- CPPUNIT_TEST( remove_005 );
- CPPUNIT_TEST_SUITE_END( );
- };// class remove
-
- //########################################
- // TEST Directory::createPath
- //########################################
-
- #ifdef WNT
- # define PATH_BUFFER_SIZE MAX_PATH
- #else
- # define PATH_BUFFER_SIZE PATH_MAX
- #endif
-
- char TEST_PATH_POSTFIX[] = "hello/world";
-
- //########################################
- OUString get_test_path()
- {
- static OUString test_path;
- if (test_path.isEmpty())
- {
- OUString tmp;
- FileBase::RC rc = FileBase::getTempDirURL(tmp);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Getting the location of TMP dir failed",
- rc == FileBase::E_None
- );
-
- OUString system_path;
- rc = FileBase::getSystemPathFromFileURL(tmp, system_path);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Cannot convert the TMP dir to system path",
- rc == FileBase::E_None
- );
-
- OString tmp_x(rtl::OUStringToOString(system_path, RTL_TEXTENCODING_UTF8 ));
- if (tmp_x.lastIndexOf('/') != (tmp_x.getLength() - 1))
- tmp_x += rtl::OString('/');
-
-#if !defined(WNT) && !defined(ANDROID)
- // FIXME would be nice to create unique dir even on Windows
- tmp_x += rtl::OString("XXXXXX");
- char *out = mkdtemp(const_cast<char*>(tmp_x.getStr()));
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "mkdtemp call failed",
- out != NULL
- );
-
- tmp_x += rtl::OString('/');
-#endif
- tmp_x += rtl::OString(TEST_PATH_POSTFIX);
-
- rc = FileBase::getFileURLFromSystemPath(rtl::OStringToOUString(tmp_x, RTL_TEXTENCODING_UTF8), test_path);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Cannot convert the system path back to an URL",
- rc == FileBase::E_None
- );
- }
- return test_path;
- }
-
- //########################################
- void rm_test_path(const OUString& path)
- {
- sal_Unicode buffer[PATH_BUFFER_SIZE];
- rtl_copyMemory(buffer, path.getStr(), (path.getLength() + 1) * sizeof(sal_Unicode));
-
- sal_Int32 i = rtl_ustr_lastIndexOfChar(buffer, '/');
- if (i == path.getLength())
- buffer[i] = 0;
-
- Directory::remove(buffer);
-
- i = rtl_ustr_lastIndexOfChar(buffer, '/');
- buffer[i] = 0;
- Directory::remove(buffer);
- }
-
- //########################################
- class DirCreatedObserver : public DirectoryCreationObserver
- {
- public:
- DirCreatedObserver() : i(0)
- {
- }
-
- virtual void DirectoryCreated(const rtl::OUString& /*aDirectoryUrl*/)
- {
- i++;
- };
-
- int number_of_dirs_created() const
- {
- return i;
- }
-
- private:
- int i;
- };
-
-
- //########################################
- class createPath : public CppUnit::TestFixture
- {
- public:
- //##########################################
- createPath()
- {}
-
- //##########################################
- void with_relative_path()
- {
- FileBase::RC rc = Directory::createPath(
- OUString(RTL_CONSTASCII_USTRINGPARAM(TEST_PATH_POSTFIX)));
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_createDirectoryPath contract broken",
- rc == FileBase::E_INVAL
- );
- }
-
- //##########################################
- void without_callback()
- {
- OUString tp_url = get_test_path();
-
- rm_test_path(tp_url);
-
- FileBase::RC rc = Directory::createPath(tp_url);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_createDirectoryPath failed",
- rc == FileBase::E_None
- );
- }
-
- //##########################################
- void with_callback()
- {
- OUString tp_url = get_test_path();
-
- rm_test_path(tp_url);
-
- DirCreatedObserver* observer = new DirCreatedObserver;
- FileBase::RC rc = Directory::createPath(tp_url, observer);
- int nDirs = observer->number_of_dirs_created();
- delete observer;
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_createDirectoryPath failed",
- (rc == FileBase::E_None) && (nDirs > 0)
- );
-
- }
-
-#ifdef WNT
-
- //##########################################
- char* get_unused_drive_letter()
- {
- static char m_aBuff[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
-
- DWORD ld = GetLogicalDrives();
- DWORD i = 4;
- DWORD j = 2;
-
- while ((ld & i) && (i > 1))
- { i = i << 1; j++; }
-
- if (i > 2)
- return m_aBuff + j;
-
- return NULL;
- }
-
- //##########################################
- void at_invalid_logical_drive()
- {
- char* drv = get_unused_drive_letter();
- char buff[PATH_BUFFER_SIZE];
- rtl_zeroMemory(buff, sizeof(buff));
-
- strncpy(buff, drv, 1);
- strcat(buff, ":\\");
- strcat(buff, TEST_PATH_POSTFIX);
-
- OUString path = OUString::createFromAscii(buff);
- OUString tp_url;
- FileBase::getFileURLFromSystemPath(path, tp_url);
-
- FileBase::RC rc = Directory::createPath(tp_url);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_createDirectoryPath doesn't fail on unused logical drive letters",
- rc != FileBase::E_None
- );
- }
-
- //##########################################
- void with_UNC_path()
- {
-
- OUString tp_unc (RTL_CONSTASCII_USTRINGPARAM("\\\\Tra-1\\TRA_D\\hello\\world\\"));
- OUString tp_url;
- FileBase::getFileURLFromSystemPath(tp_unc, tp_url);
-
- FileBase::RC rc = Directory::createPath(tp_url);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_createDirectoryPath fails with UNC path",
- rc == FileBase::E_None
- );
- }
-
-#endif /* WNT */
-
- CPPUNIT_TEST_SUITE(createPath);
- CPPUNIT_TEST(with_relative_path);
- CPPUNIT_TEST(without_callback);
- CPPUNIT_TEST(with_callback);
-#ifdef WNT
- CPPUNIT_TEST(at_invalid_logical_drive);
-
- // adapt the UNC path in method createDirectoryPath_with_UNC_path
- // in order to run this test successfully
- //CPPUNIT_TEST(with_UNC_path);
-#endif
- CPPUNIT_TEST_SUITE_END();
-
- }; // class createPath
-
- // -----------------------------------------------------------------------------
- CPPUNIT_TEST_SUITE_REGISTRATION( osl_Directory::ctors );
- CPPUNIT_TEST_SUITE_REGISTRATION( osl_Directory::open );
- CPPUNIT_TEST_SUITE_REGISTRATION( osl_Directory::isOpen );
- CPPUNIT_TEST_SUITE_REGISTRATION( osl_Directory::close );
- CPPUNIT_TEST_SUITE_REGISTRATION( osl_Directory::reset );
- CPPUNIT_TEST_SUITE_REGISTRATION( osl_Directory::getNextItem );
- CPPUNIT_TEST_SUITE_REGISTRATION( osl_Directory::getVolumeInfo );
- CPPUNIT_TEST_SUITE_REGISTRATION( osl_Directory::create );
- CPPUNIT_TEST_SUITE_REGISTRATION( osl_Directory::remove );
- CPPUNIT_TEST_SUITE_REGISTRATION( osl_Directory::createPath );
-}// namespace osl_Directory
-
-
-
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-
-
-/** get Current PID.
-*/
-inline ::rtl::OUString getCurrentPID( )
-{
- //~ Get current PID and turn it into OUString;
- int nPID = 0;
-#ifdef WNT
- nPID = GetCurrentProcessId();
-#else
- nPID = getpid();
-#endif
- return ( ::rtl::OUString::valueOf( ( long )nPID ) );
-}
-
-
-//~ do some clean up work after all test completed.
-class GlobalObject
-{
- public:
- ~GlobalObject()
- {
- try
- {
- //~ special clean up task in Windows and Unix seperately;
-#if ( defined UNX )
- //~ some clean up task for UNIX OS
- ;
-#else
- //~ some clean up task for Windows OS
- //~ check if some files are in the way, remove them if necessary.
- if ( ifFileExist( aTmpName6 ) == sal_True )
- deleteTestFile( aTmpName6 );
- if ( ifFileExist( aTmpName4 ) == sal_True )
- deleteTestFile( aTmpName4 );
- if ( checkDirectory( aTmpName4, osl_Check_Mode_Exist ) == sal_True )
- deleteTestDirectory( aTmpName4 );
- if ( ifFileExist( aTmpName3 ) == sal_True )
- deleteTestFile( aTmpName3 );
- if ( checkDirectory( aTmpName3, osl_Check_Mode_Exist ) == sal_True )
- deleteTestDirectory( aTmpName3 );
-
- ::rtl::OUString aUStr( aUserDirectoryURL );
- concatURL( aUStr, aHidURL1 );
- if ( ifFileExist( aUStr ) == sal_True )
- deleteTestFile( aUStr );
-
- ::rtl::OUString aUStr1( aRootURL );
- concatURL( aUStr1, aTmpName2 );
- if ( ifFileExist( aUStr1 ) == sal_True )
- deleteTestFile( aUStr1 );
-#endif
-
- }
- catch (const CppUnit::Exception &e)
- {
- printf("Exception caught in GlobalObject dtor(). Exception message: '%s'. Source line: %d\n", e.what(), e.sourceLine().lineNumber());
- }
- catch (...)
- {
- printf("Exception caught (...) in GlobalObject dtor()\n");
- }
- }
-};
-
-GlobalObject theGlobalObject;
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/file/osl_File_Const.h b/sal/qa/osl/file/osl_File_Const.h
deleted file mode 100644
index 88df98ef0..000000000
--- a/sal/qa/osl/file/osl_File_Const.h
+++ /dev/null
@@ -1,232 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_FILE_CONST_H_
-#define _OSL_FILE_CONST_H_
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <sal/types.h>
-#include <rtl/textenc.h>
-
-#include <rtl/ustring.hxx>
-#include <rtl/uri.hxx>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-
-
-//------------------------------------------------------------------------
-// common used string resource
-// these common used string will be used as assist resource in test
-// they are mostly OS independent, some of the resource can be reused
-// so, acommon test data repository will be better since it can be
-// shared among all test code
-//------------------------------------------------------------------------
-
-const sal_Char pBuffer_Char[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
-const sal_Char pBuffer_Number[] = "1234567890";
-const sal_Char pBuffer_Blank[] = "";
-
-#define TRUNC_LEN 10;
-#define ENLARG_LEN 100;
-
-
-
-//------------------------------------------------------------------------
-// OS dependent/independent definitions/includes
-// we use FILE_PREFIX for URL prefix,
-// TEST_PLATFORM for test platform initial,
-// TEST_PLATFORM_ROOT for root dir in comrresponding platform,
-// TEST_PLATFORM_TEMP for temp dir in comrresponding platform,
-// PATH_LIST_DELIMITER for seperator of path list in comrresponding platform,
-// PATH_SEPERATOR for seperator in URL or system path in comrresponding platform,
-// PATH_MAX/MAX_PATH for max path length in comrresponding platform,
-//------------------------------------------------------------------------
-
-//------------------------------------------------------------------------
-// OS independent const definition
-//------------------------------------------------------------------------
-# define FILE_PREFIX "file:///"
-# define TEST_FILE_SIZE 1024
-
-//------------------------------------------------------------------------
-// OS dependent declaration and includes
-//------------------------------------------------------------------------
-#if ( defined UNX ) //Unix
-# include <unistd.h>
-# include <limits.h>
-# include <math.h>
-# include <errno.h>
-# include <fcntl.h>
-# include <sys/stat.h>
-# if !defined(MACOSX) && !defined(IOS) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined (DRAGONFLY)
-# include <sys/statfs.h>
-# else
-# include <sys/param.h>
-# include <sys/mount.h>
-# endif
-# if !defined(ANDROID)
-# include <sys/statvfs.h>
-# endif
-# include <sys/types.h>
-# define TEST_PLATFORM ""
-# define TEST_PLATFORM_ROOT "/"
-# define TEST_PLATFORM_TEMP "tmp"
-# define PATH_LIST_DELIMITER ":"
-# define PATH_SEPERATOR "/"
-#endif
-
-#if (defined WNT ) // Windows
-# include <tchar.h>
-# include <io.h>
-# include <stdio.h>
-# include <stdlib.h>
-# define PATH_MAX MAX_PATH
-# define TEST_PLATFORM "c:/"
-# define TEST_PLATFORM_ROOT "c:/"
-# define TEST_PLATFORM_TEMP "temp"
-# define PATH_LIST_DELIMITER ";"
-# define PATH_SEPERATOR "/"
-#endif
-
-
-//------------------------------------------------------------------------
-// macro definition for the ASCII array/OUString declarations,
-// we use p### for the ASCII array,
-// a### for the OUString,
-// n###Len for its length
-//------------------------------------------------------------------------
-
-#define OSLTEST_DECLARE( str_name, str_value ) \
- ::rtl::OUString a##str_name = rtl::OUString::createFromAscii( ( str_value ) )
-
-#define OSLTEST_DECLARE_UTF8(str_name, str_value ) \
- ::rtl::OUString a##str_name = ::rtl::Uri::decode( ::rtl::OUString::createFromAscii( ( str_value ) ), rtl_UriDecodeToIuri, RTL_TEXTENCODING_UTF8)
-
-//------------------------------------------------------------------------
-// OS independent file definition
-//------------------------------------------------------------------------
-OSLTEST_DECLARE( NullURL, "" );
-OSLTEST_DECLARE( SlashURL, PATH_SEPERATOR );
-OSLTEST_DECLARE( PreURL, FILE_PREFIX );
-OSLTEST_DECLARE( RootURL, FILE_PREFIX TEST_PLATFORM );
-
-OSLTEST_DECLARE( TempDirectoryURL, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP );
-OSLTEST_DECLARE( TempDirectorySys, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP );
-OSLTEST_DECLARE( UserDirectoryURL, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "" );
-OSLTEST_DECLARE( UserDirectorySys, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "" );
-
-//------------------------------------------------------------------------
-// common used URL:temp, canonical, root, relative, link,etc
-//------------------------------------------------------------------------
-OSLTEST_DECLARE( CanURL1, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/canonical.name" );
-OSLTEST_DECLARE( CanURL2, "ca@#;+.,$///78no\0ni..name" );
-OSLTEST_DECLARE( CanURL3, "ca@#;+.,$//tmp/678nonical//name" );
-OSLTEST_DECLARE( CanURL4, "canonical.name" );
-OSLTEST_DECLARE( TmpName1, "tmpdir" );
-OSLTEST_DECLARE( TmpName2, "tmpname" );
-OSLTEST_DECLARE( TmpName3, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpdir" );
-OSLTEST_DECLARE( TmpName4, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpdir/tmpname" );
-OSLTEST_DECLARE( TmpName5, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpdir/../tmpdir/./tmpname" );
-OSLTEST_DECLARE( TmpName6, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpname" );
-OSLTEST_DECLARE( TmpName7, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/noaccess" );
-OSLTEST_DECLARE( TmpName8, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpname/tmpdir" );
-OSLTEST_DECLARE( TmpName9, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpdir/../tmpdir/./" );
-OSLTEST_DECLARE_UTF8( TmpName10, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/%E6%9C%AA%E5%91%BD%E5%90%8Dzhgb18030" );
-
-OSLTEST_DECLARE( RelURL1, "relative/file1" );
-OSLTEST_DECLARE( RelURL2, "relative/./file2" );
-OSLTEST_DECLARE( RelURL3, "relative/../file3" );
-OSLTEST_DECLARE( RelURL4, "././relative/../file4" );
-OSLTEST_DECLARE( RelURL5, TEST_PLATFORM_TEMP "/./../" TEST_PLATFORM_TEMP );
-OSLTEST_DECLARE( LnkURL1, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/link.file" );
-OSLTEST_DECLARE( HidURL1, ".hiddenfile" );
-
-//------------------------------------------------------------------------
-// common used System Path:temp, root,etc
-//------------------------------------------------------------------------
-OSLTEST_DECLARE( RootSys, TEST_PLATFORM_ROOT );
-OSLTEST_DECLARE( SysPath1, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/system.path" );
-OSLTEST_DECLARE( SysPath2, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/system/path" );
-OSLTEST_DECLARE( SysPath3, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/tmpdir" );
-OSLTEST_DECLARE( SysPath4, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/tmpname" );
-OSLTEST_DECLARE_UTF8( SysPath5, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/%E6%9C%AA%E5%91%BD%E5%90%8Dzhgb18030" );
-OSLTEST_DECLARE( SysPathLnk, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/link.file" );
-OSLTEST_DECLARE( FifoSys, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/tmpdir/fifo" );
-
-//------------------------------------------------------------------------
-// FileType URL, we pick some canonical file in corresponding system for test:
-// socket, link, etc.
-// Note that this may be changed in the different platform, so be careful to use.
-//------------------------------------------------------------------------
-#if ( defined UNX ) // Unix
-OSLTEST_DECLARE( TypeURL1, FILE_PREFIX "dev/ccv"); //socket Solaris/Linux
-OSLTEST_DECLARE( TypeURL2, FILE_PREFIX "devices/pseudo/tcp@0:tcp"); //special Solaris/Linux
-OSLTEST_DECLARE( TypeURL3, FILE_PREFIX "lib" ); //link Solaris
-#else // Windows
-OSLTEST_DECLARE( TypeURL1, FILE_PREFIX "" );
-OSLTEST_DECLARE( TypeURL2, FILE_PREFIX "" );
-OSLTEST_DECLARE( TypeURL3, FILE_PREFIX "" );
-#endif
-
-//------------------------------------------------------------------------
-// Volume device URL, we pick some canonical volume device for test:
-// UNIX file system, Floppy Disk, Proc file system, Temp file system, Compact Disk.
-//------------------------------------------------------------------------
-#if ( defined UNX ) // Unix
-OSLTEST_DECLARE( VolURL1, FILE_PREFIX ""); //ufs Solaris/Linux
-#ifdef SOLARIS
-OSLTEST_DECLARE( VolURL2, FILE_PREFIX "dev/fd" ); //fd Solaris
-#else
-OSLTEST_DECLARE( VolURL2, FILE_PREFIX "dev/floppy/0u1440" ); //fd0 Linux
-#endif
-OSLTEST_DECLARE( VolURL3, FILE_PREFIX "proc" ); //proc Solaris/Linux
-OSLTEST_DECLARE( VolURL4, FILE_PREFIX "staroffice" ); //nfs Solaris/Linux
-OSLTEST_DECLARE( VolURL5, FILE_PREFIX "tmp" ); //tmpfs Solaris
-OSLTEST_DECLARE( VolURL6, FILE_PREFIX "cdrom" ); //cd Solaris
-#else // Windows
-OSLTEST_DECLARE( VolURL1, FILE_PREFIX "c:/" );
-OSLTEST_DECLARE( VolURL2, FILE_PREFIX "a:/" );
-OSLTEST_DECLARE( VolURL3, FILE_PREFIX "" );
-OSLTEST_DECLARE( VolURL4, FILE_PREFIX "" );
-OSLTEST_DECLARE( VolURL5, FILE_PREFIX "c:/temp" );
-OSLTEST_DECLARE( VolURL6, FILE_PREFIX "e:/" );
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OSL_FILE_CONST_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/file/osl_old_test_file.cxx b/sal/qa/osl/file/osl_old_test_file.cxx
deleted file mode 100644
index e18649055..000000000
--- a/sal/qa/osl/file/osl_old_test_file.cxx
+++ /dev/null
@@ -1,295 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#ifdef IOS
-#define CPPUNIT_PLUGIN_EXPORTED_NAME cppunitTest_osl_old_test_file
-#endif
-
-// LLA:
-// this file is converted to use with testshl2
-// original was placed in sal/test/textenc.cxx
-
-#include <stdio.h>
-
-#include <osl/file.h>
-#include <osl/process.h>
-#include <rtl/ustring.hxx>
-#ifdef SAL_UNX
-#include <unistd.h>
-#include <limits.h>
-#include <string.h>
-#include <sys/stat.h>
-#define TEST_VOLUME ""
-#else
-// WINDOWS
-#define TEST_VOLUME "c:/"
-#endif
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-namespace osl_test_file
-{
-
-// -----------------------------------------------------------------------------
-
-class oldtestfile : public CppUnit::TestFixture
-{
-public:
- oldtestfile()
- {
- //SAL_ALLOW_LINKOO_SYMLINKS for the make dev-install hack breaks this test
- rtl::OUString envVar(RTL_CONSTASCII_USTRINGPARAM("SAL_ALLOW_LINKOO_SYMLINKS"));
- osl_clearEnvironment(envVar.pData);
- }
-
- void test_file_001();
- void test_file_002();
- void test_file_003();
- void test_file_004();
-
- CPPUNIT_TEST_SUITE( oldtestfile );
- CPPUNIT_TEST( test_file_001 );
- CPPUNIT_TEST( test_file_002 );
- // so buggy!! CPPUNIT_TEST( test_file_003 );
- CPPUNIT_TEST( test_file_004 );
- CPPUNIT_TEST_SUITE_END( );
-};
-
-const char * const aSource1[] =
-{
- "a" , "file:///" TEST_VOLUME "bla/a",
- ///TODO: check if last slash must be omitted in resolved path.
-// "a/" , "file:///" TEST_VOLUME "bla/a",
- "../a" , "file:///" TEST_VOLUME "a" ,
- "a/.." , "file:///" TEST_VOLUME "bla/",
- "a/../b" , "file:///" TEST_VOLUME "bla/b",
- ".." , "file:///" TEST_VOLUME "",
- "a/b/c/d" , "file:///" TEST_VOLUME "bla/a/b/c/d",
- "a/./c" , "file:///" TEST_VOLUME "bla/a/c",
- "file:///bla/blub", "file:///" "bla/blub",
- 0 , 0
-};
-
-const char * const aSource2[ ] =
-{
- "a" , "file:///" TEST_VOLUME "bla/blubs/schnubbel/a",
- ///TODO: check if last slash must be omitted in resolved path.
-// "a/", "file:///" TEST_VOLUME "bla/blubs/schnubbel/a",
- "../a", "file:///" TEST_VOLUME "bla/blubs/a",
- "../../a", "file:///" TEST_VOLUME "bla/a",
- "../../../a", "file:///" TEST_VOLUME "a",
- "../../../a/b/c/d", "file:///" TEST_VOLUME "a/b/c/d",
- 0,0
-};
-
-const char * const aSource3[ ] =
-{
- ".." , "/a",
- "../a" , "/a/a",
- "e/f" , "/c/e/f",
- "../..", "",
- 0,0
-};
-
-using ::rtl::OUString;
-using ::rtl::OUStringToOString;
-using ::rtl::OString;
-void oldtestfile::test_file_001()
-{
-#ifdef WIN32
- return;
-#endif
-
- OUString base1( RTL_CONSTASCII_USTRINGPARAM( "file:///" TEST_VOLUME "bla" ) );
- int i;
- for( i = 0 ; aSource1[i] ; i +=2 )
- {
- OUString target;
- OUString rel = OUString::createFromAscii( aSource1[i] );
- oslFileError e = osl_getAbsoluteFileURL( base1.pData, rel.pData , &target.pData );
- //fprintf(stderr, "%d : %s -- %s -- %s\n", i, aSource1[i], aSource1[i+1], OUStringToOString(target , RTL_TEXTENCODING_ASCII_US ).getStr() );
- CPPUNIT_ASSERT_MESSAGE("failure #1", osl_File_E_None == e );
- if( osl_File_E_None == e )
- {
- CPPUNIT_ASSERT_MESSAGE("failure #1.1", target.equalsAscii( aSource1[i+1] ) );
- }
- OString o = OUStringToOString( target , RTL_TEXTENCODING_ASCII_US );
- OString obase = OUStringToOString( base1 , RTL_TEXTENCODING_ASCII_US );
- // fprintf( stderr, "%d %s + %s = %s\n" ,e, obase.getStr(), aSource1[i], o.pData->buffer );
- }
-
- OUString err1( RTL_CONSTASCII_USTRINGPARAM( "../.." ) );
- OUString target;
- // CPPUNIT_ASSERT_MESSAGE("failure #11", osl_File_E_None != osl_getAbsoluteFileURL( base1.pData , err1.pData , &target.pData ) );
-
-}
-
-void oldtestfile::test_file_002()
-{
-#ifdef WIN32
- return;
-#endif
-
- OUString base2( RTL_CONSTASCII_USTRINGPARAM( "file:///" TEST_VOLUME "bla/blubs/schnubbel" ) );
- int i;
- for( i = 0 ; aSource2[i] ; i +=2 )
- {
- OUString target;
- OUString rel = OUString::createFromAscii( aSource2[i] );
- oslFileError e = osl_getAbsoluteFileURL( base2.pData, rel.pData , &target.pData );
- //fprintf(stderr, "%d : %s -- %s -- %s\n", i, aSource2[i], aSource2[i+1], OUStringToOString(target , RTL_TEXTENCODING_ASCII_US ).getStr() );
- CPPUNIT_ASSERT_MESSAGE("failure #2", osl_File_E_None == e );
- if( osl_File_E_None == e )
- {
- CPPUNIT_ASSERT_MESSAGE("failure #2.1", target.equalsAscii( aSource2[i+1] ) );
- }
- OString o = OUStringToOString( target , RTL_TEXTENCODING_ASCII_US );
- OString obase = OUStringToOString( base2 , RTL_TEXTENCODING_ASCII_US );
-// fprintf( stderr, "%d %s + %s = %s\n" ,e, obase.getStr(), aSource2[i], o.pData->buffer );
- }
-}
-
-void oldtestfile::test_file_003()
-{
-#ifdef WIN32
- return;
-#endif
-
- // links !
-#ifdef UNX
- int i;
- char buf[PATH_MAX];
- if( getcwd( buf, PATH_MAX -1 ) )
- {
- char buf2[PATH_MAX];
- strcpy( buf2 , "/tmp" );
- strcat( buf2, "/a" );
-
- if( 0 == mkdir( buf2 , S_IRWXG | S_IRWXO | S_IRWXU ) )
- {
- strcat( buf2, "/b" );
- if( 0 == mkdir( buf2, S_IRWXU | S_IRWXO | S_IRWXU ) )
- {
- if( 0 == symlink( buf2 , "/tmp/c" ) )
- {
- OUString dir;
- osl_getProcessWorkingDir( &(dir.pData) );
-
- OUString base3 = dir;
- base3 += OUString( RTL_CONSTASCII_USTRINGPARAM( "/c" ) );
- for( i = 0 ; aSource3[i] ; i +=2 )
- {
- OUString target;
- OUString rel = OUString::createFromAscii( aSource3[i] );
- oslFileError e = osl_getAbsoluteFileURL( base3.pData, rel.pData , &target.pData );
- CPPUNIT_ASSERT_MESSAGE("failure #3", osl_File_E_None == e );
- if( osl_File_E_None == e )
- {
- CPPUNIT_ASSERT_MESSAGE("failure #4", target.getLength() >= dir.getLength() );
- if( target.getLength() >= dir.getLength() )
- {
- int j = dir.getLength();
- while (j < target.getLength() &&
- aSource3[i+1][j-dir.getLength()] == target[j])
- {
- ++j;
- }
- CPPUNIT_ASSERT_MESSAGE("failure #5", j == target.getLength() );
- }
- }
- OString o = OUStringToOString( target , RTL_TEXTENCODING_ASCII_US );
- OString obase = OUStringToOString( base3 , RTL_TEXTENCODING_ASCII_US );
- //fprintf( stderr, "%d %s + %s = %s\n" ,e, obase.getStr(), aSource3[i], o.pData->buffer );
- }
- unlink( "/tmp/c" );
- }
- else
- {
- CPPUNIT_ASSERT_MESSAGE("failure #6", 0 );
- }
- rmdir( "/tmp/a/b" );
- }
- else
- {
- CPPUNIT_ASSERT_MESSAGE("failure #7", 0 );
- }
- rmdir( "/tmp/a" );
- }
- else
- {
- CPPUNIT_ASSERT_MESSAGE("failure #8", 0 );
- }
- }
- else
- {
- CPPUNIT_ASSERT_MESSAGE("failure #9", 0 );
- }
-#endif
-}
-
-void oldtestfile::test_file_004()
-{
-#ifdef WIN32
- return;
-#endif
-
- OUString base4( RTL_CONSTASCII_USTRINGPARAM( "file:///" TEST_VOLUME "bla/" ) );
- int i;
- for( i = 0 ; aSource1[i] ; i +=2 )
- {
- OUString target;
- OUString rel = OUString::createFromAscii( aSource1[i] );
- oslFileError e = osl_getAbsoluteFileURL( base4.pData, rel.pData , &target.pData );
- CPPUNIT_ASSERT_MESSAGE("failure #10", osl_File_E_None == e );
- if( osl_File_E_None == e )
- {
- CPPUNIT_ASSERT_MESSAGE("failure #10.1", target.equalsAscii( aSource1[i+1] ) );
- }
- OString o = OUStringToOString( target , RTL_TEXTENCODING_ASCII_US );
- OString obase = OUStringToOString( base4 , RTL_TEXTENCODING_ASCII_US );
- //fprintf( stderr, "%d %s + %s = %s\n" ,e, obase.getStr(), aSource1[i], o.pData->buffer );
- }
-
-
-// fprintf( stderr, "test_file done\n" );
-}
-
-} // namespace osl_test_file
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( osl_test_file::oldtestfile);
-
-// -----------------------------------------------------------------------------
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/file/test_cpy_wrt_file.cxx b/sal/qa/osl/file/test_cpy_wrt_file.cxx
deleted file mode 100644
index 56135301e..000000000
--- a/sal/qa/osl/file/test_cpy_wrt_file.cxx
+++ /dev/null
@@ -1,108 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#ifdef IOS
-#define CPPUNIT_PLUGIN_EXPORTED_NAME cppunitTest_tcwf
-#endif
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-#include <osl/file.hxx>
-#include <osl/thread.h>
-#include <rtl/ustring.hxx>
-
-using namespace osl;
-
-using ::rtl::OUString;
-using ::rtl::OUStringToOString;
-using ::rtl::OString;
-
-//Use to silence OSL_ warnings for a deliberate error
-extern "C" void SAL_CALL suppressOslDebugMessage2( const sal_Char *, sal_Int32, const sal_Char * )
-{
-}
-
-class test_osl_writeFile : public CppUnit::TestFixture
-{
-public:
- void wrt_file()
- {
- FileBase::RC err;
-
- //create a tempfile
- rtl::OUString aTmpFile;
- err = FileBase::createTempFile(NULL, NULL, &aTmpFile);
- CPPUNIT_ASSERT_MESSAGE("temp File creation failed", err == osl::FileBase::E_None);
-
- //now attempt to open with Create flag an existing file, should get E_EXIST
- File tmp_file(aTmpFile);
- err = tmp_file.open(osl_File_OpenFlag_Write | osl_File_OpenFlag_Create);
-
- rtl::OString sErrorMsg = "Expected that '";
- sErrorMsg += rtl::OUStringToOString(aTmpFile, RTL_TEXTENCODING_ASCII_US);
- sErrorMsg += "' would exist!";
- CPPUNIT_ASSERT_MESSAGE(sErrorMsg.getStr(), err == FileBase::E_EXIST);
-
- //deliberate errors, suppress run-time warning for operations on
- //un-opened File
- pfunc_osl_printDetailedDebugMessage pOldDebugMessageFunc =
- osl_setDetailedDebugMessageFunc( &suppressOslDebugMessage2 );
-
- char buffer[1];
- sal_uInt64 written = 0;
- err = tmp_file.write((void*)buffer, sizeof(buffer), written);
- CPPUNIT_ASSERT_MESSAGE("write on unconnected file should fail",
- err != osl::FileBase::E_None && written == 0);
-
- err = tmp_file.sync();
- CPPUNIT_ASSERT_MESSAGE("sync on unconnected file should fail", err != FileBase::E_None);
- err = tmp_file.close();
- CPPUNIT_ASSERT_MESSAGE("close on unconnected file should fail", err != FileBase::E_None);
-
- osl_setDetailedDebugMessageFunc( pOldDebugMessageFunc );
-
- err = ::osl::File::remove(aTmpFile);
- CPPUNIT_ASSERT_MESSAGE("temp file should have existed", err == FileBase::E_None);
- }
-
- CPPUNIT_TEST_SUITE(test_osl_writeFile);
- CPPUNIT_TEST(wrt_file);
- CPPUNIT_TEST_SUITE_END();
-};
-
-//#####################################
-// register test suites
-CPPUNIT_TEST_SUITE_REGISTRATION(test_osl_writeFile);
-
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/getsystempathfromfileurl/makefile.mk b/sal/qa/osl/getsystempathfromfileurl/makefile.mk
deleted file mode 100644
index 71597ba07..000000000
--- a/sal/qa/osl/getsystempathfromfileurl/makefile.mk
+++ /dev/null
@@ -1,61 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2011 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#***********************************************************************/
-
-.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
-nothing .PHONY:
-.ELSE
-
-PRJ = ../../..
-PRJNAME = sal
-TARGET = qa_osl_getsystempathfromfileurl
-
-ENABLE_EXCEPTIONS = TRUE
-
-.INCLUDE: settings.mk
-
-.IF "$(OS)" == "IOS"
-CFLAGSCXX += -DCPPUNIT_PLUGIN_EXPORTED_NAME=cppunitTest_$(TARGET)
-.ENDIF
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-
-DLLPRE =
-
-SHL1IMPLIB = i$(SHL1TARGET)
-SHL1OBJS = $(SLO)/test-getsystempathfromfileurl.obj
-SHL1RPATH = NONE
-SHL1STDLIBS = $(CPPUNITLIB) $(SALLIB)
-SHL1TARGET = test-getsystempathfromfileurl
-SHL1VERSIONMAP = version.map
-DEF1NAME = $(SHL1TARGET)
-
-SLOFILES = $(SHL1OBJS)
-
-.INCLUDE: target.mk
-.INCLUDE: _cppunit.mk
-
-.END
diff --git a/sal/qa/osl/getsystempathfromfileurl/test-getsystempathfromfileurl.cxx b/sal/qa/osl/getsystempathfromfileurl/test-getsystempathfromfileurl.cxx
deleted file mode 100644
index 4d9e65586..000000000
--- a/sal/qa/osl/getsystempathfromfileurl/test-getsystempathfromfileurl.cxx
+++ /dev/null
@@ -1,281 +0,0 @@
-/*************************************************************************
-*
-* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-*
-* Copyright 2000, 2011 Oracle and/or its affiliates.
-*
-* OpenOffice.org - a multi-platform office productivity suite
-*
-* This file is part of OpenOffice.org.
-*
-* OpenOffice.org is free software: you can redistribute it and/or modify
-* it under the terms of the GNU Lesser General Public License version 3
-* only, as published by the Free Software Foundation.
-*
-* OpenOffice.org is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU Lesser General Public License version 3 for more details
-* (a copy is included in the LICENSE file that accompanied this code).
-*
-* You should have received a copy of the GNU Lesser General Public License
-* version 3 along with OpenOffice.org. If not, see
-* <http://www.openoffice.org/license.html>
-* for a copy of the LGPLv3 License.
-*
-************************************************************************/
-
-#include "precompiled_sal.hxx"
-#include "sal/config.h"
-
-#include "cppunit/TestAssert.h"
-#include "cppunit/TestFixture.h"
-#include "cppunit/extensions/HelperMacros.h"
-#include "cppunit/plugin/TestPlugIn.h"
-#include "osl/file.hxx"
-
-#if defined WNT
-#define MY_PATH_IN "/c:/foo/bar"
-#define MY_PATH_OUT "c:\\foo\\bar"
-#define MY_PATH_OUT_CONT MY_PATH_OUT "\\"
-#define MY_PATH_OUT_REL "foo\\bar"
-#else
-#define MY_PATH_IN "/foo/bar"
-#define MY_PATH_OUT MY_PATH_IN
-#define MY_PATH_OUT_CONT MY_PATH_OUT "/"
-#define MY_PATH_OUT_REL "foo/bar"
-#endif
-
-namespace {
-
-class Test: public CppUnit::TestFixture {
-private:
- CPPUNIT_TEST_SUITE(Test);
- CPPUNIT_TEST(testBadScheme);
- CPPUNIT_TEST(testNoScheme);
- CPPUNIT_TEST(testBadAuthority);
- CPPUNIT_TEST(testLocalhost1Authority);
- CPPUNIT_TEST(testLocalhost2Authority);
- CPPUNIT_TEST(testLocalhost3Authority);
- CPPUNIT_TEST(testNoAuthority);
- CPPUNIT_TEST(testEmptyPath);
- CPPUNIT_TEST(testHomeAbbreviation);
- CPPUNIT_TEST(testOtherHomeAbbreviation);
- CPPUNIT_TEST(testRelative);
- CPPUNIT_TEST(testEscape);
- CPPUNIT_TEST(testBadEscape2f);
- CPPUNIT_TEST(testBadEscape2F);
- CPPUNIT_TEST(testBad0);
- CPPUNIT_TEST(testBadEscape0);
- CPPUNIT_TEST(testBadQuery);
- CPPUNIT_TEST(testBadFragment);
- CPPUNIT_TEST_SUITE_END();
-
- void testBadScheme();
- void testNoScheme();
- void testBadAuthority();
- void testLocalhost1Authority();
- void testLocalhost2Authority();
- void testLocalhost3Authority();
- void testNoAuthority();
- void testEmptyPath();
- void testHomeAbbreviation();
- void testOtherHomeAbbreviation();
- void testRelative();
- void testEscape();
- void testBadEscape2f();
- void testBadEscape2F();
- void testBad0();
- void testBadEscape0();
- void testBadQuery();
- void testBadFragment();
-};
-
-void Test::testBadScheme() {
- rtl::OUString p;
- osl::FileBase::RC e = osl::FileBase::getSystemPathFromFileURL(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("foo:bar")), p);
- CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_INVAL, e);
- CPPUNIT_ASSERT_EQUAL(rtl::OUString(), p);
-}
-
-void Test::testNoScheme() {
-#if !defined WNT //TODO
- rtl::OUString p;
- osl::FileBase::RC e = osl::FileBase::getSystemPathFromFileURL(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("//" MY_PATH_IN)), p);
- CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_None, e);
- CPPUNIT_ASSERT_EQUAL(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(MY_PATH_OUT)), p);
-#endif
-}
-
-void Test::testBadAuthority() {
-#if defined UNX
- rtl::OUString p;
- osl::FileBase::RC e = osl::FileBase::getSystemPathFromFileURL(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("file://baz" MY_PATH_IN)), p);
- CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_INVAL, e);
- CPPUNIT_ASSERT_EQUAL(rtl::OUString(), p);
-#endif
-}
-
-void Test::testLocalhost1Authority() {
- rtl::OUString p;
- osl::FileBase::RC e = osl::FileBase::getSystemPathFromFileURL(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("file://localhost" MY_PATH_IN)),
- p);
- CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_None, e);
- CPPUNIT_ASSERT_EQUAL(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(MY_PATH_OUT)), p);
-}
-
-void Test::testLocalhost2Authority() {
- rtl::OUString p;
- osl::FileBase::RC e = osl::FileBase::getSystemPathFromFileURL(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("file://LOCALHOST" MY_PATH_IN)),
- p);
- CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_None, e);
- CPPUNIT_ASSERT_EQUAL(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(MY_PATH_OUT)), p);
-}
-
-void Test::testLocalhost3Authority() {
- rtl::OUString p;
- osl::FileBase::RC e = osl::FileBase::getSystemPathFromFileURL(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("file://127.0.0.1" MY_PATH_IN)),
- p);
- CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_None, e);
- CPPUNIT_ASSERT_EQUAL(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(MY_PATH_OUT)), p);
-}
-
-void Test::testNoAuthority() {
-#if !defined WNT //TODO
- rtl::OUString p;
- osl::FileBase::RC e = osl::FileBase::getSystemPathFromFileURL(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(MY_PATH_IN)), p);
- CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_None, e);
- CPPUNIT_ASSERT_EQUAL(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(MY_PATH_OUT)), p);
-#endif
-}
-
-void Test::testEmptyPath() {
-#if defined UNX
- rtl::OUString p;
- osl::FileBase::RC e = osl::FileBase::getSystemPathFromFileURL(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("file://")), p);
- CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_None, e);
- CPPUNIT_ASSERT_EQUAL(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/")), p);
-#endif
-}
-
-void Test::testHomeAbbreviation() {
-#if defined UNX
- rtl::OUString p;
- osl::FileBase::RC e = osl::FileBase::getSystemPathFromFileURL(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("file:///~" MY_PATH_IN)), p);
- CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_None, e);
- // could theoretically fail due to osl::Security::getHomeDir problem
- CPPUNIT_ASSERT(p.endsWithAsciiL(RTL_CONSTASCII_STRINGPARAM(MY_PATH_OUT)));
-#endif
-}
-
-void Test::testOtherHomeAbbreviation() {
-#if defined UNX
- rtl::OUString p;
- osl::FileBase::RC e = osl::FileBase::getSystemPathFromFileURL(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("file:///~baz" MY_PATH_IN)),
- p);
- CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_INVAL, e); // not supported for now
- CPPUNIT_ASSERT_EQUAL(rtl::OUString(), p);
-#endif
-}
-
-void Test::testRelative() {
- rtl::OUString p;
- osl::FileBase::RC e = osl::FileBase::getSystemPathFromFileURL(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("foo/bar")), p);
- CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_None, e);
- CPPUNIT_ASSERT(
- p.endsWithAsciiL(RTL_CONSTASCII_STRINGPARAM(MY_PATH_OUT_REL)));
-}
-
-void Test::testEscape() {
- rtl::OUString p;
- osl::FileBase::RC e = osl::FileBase::getSystemPathFromFileURL(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("file://" MY_PATH_IN "/b%61z")),
- p);
- CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_None, e);
- CPPUNIT_ASSERT_EQUAL(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(MY_PATH_OUT_CONT "baz")), p);
-}
-
-void Test::testBadEscape2f() {
- rtl::OUString p;
- osl::FileBase::RC e = osl::FileBase::getSystemPathFromFileURL(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("file://" MY_PATH_IN "/b%2fz")),
- p);
- CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_INVAL, e);
- CPPUNIT_ASSERT_EQUAL(rtl::OUString(), p);
-}
-
-void Test::testBadEscape2F() {
- rtl::OUString p;
- osl::FileBase::RC e = osl::FileBase::getSystemPathFromFileURL(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("file://" MY_PATH_IN "/b%2Fz")),
- p);
- CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_INVAL, e);
- CPPUNIT_ASSERT_EQUAL(rtl::OUString(), p);
-}
-
-void Test::testBad0() {
- rtl::OUString p;
- osl::FileBase::RC e = osl::FileBase::getSystemPathFromFileURL(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("file://" MY_PATH_IN "/b\x00z")),
- p);
- CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_INVAL, e);
- CPPUNIT_ASSERT_EQUAL(rtl::OUString(), p);
-}
-
-void Test::testBadEscape0() {
- rtl::OUString p;
- osl::FileBase::RC e = osl::FileBase::getSystemPathFromFileURL(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("file://" MY_PATH_IN "/b%00z")),
- p);
- CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_INVAL, e);
- CPPUNIT_ASSERT_EQUAL(rtl::OUString(), p);
-}
-
-void Test::testBadQuery() {
- rtl::OUString p;
- osl::FileBase::RC e = osl::FileBase::getSystemPathFromFileURL(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("file://" MY_PATH_IN "?baz")),
- p);
- CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_INVAL, e);
- CPPUNIT_ASSERT_EQUAL(rtl::OUString(), p);
-}
-
-void Test::testBadFragment() {
- rtl::OUString p;
- osl::FileBase::RC e = osl::FileBase::getSystemPathFromFileURL(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("file://" MY_PATH_IN "#baz")),
- p);
- CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_INVAL, e);
- CPPUNIT_ASSERT_EQUAL(rtl::OUString(), p);
-}
-
-CPPUNIT_TEST_SUITE_REGISTRATION(Test);
-
-}
-
-CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sal/qa/osl/getsystempathfromfileurl/version.map b/sal/qa/osl/getsystempathfromfileurl/version.map
deleted file mode 100644
index ef2ab497c..000000000
--- a/sal/qa/osl/getsystempathfromfileurl/version.map
+++ /dev/null
@@ -1,34 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2011 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#***********************************************************************/
-
-UDK_3_0_0 {
- global:
- cppunitTestPlugIn;
-
- local:
- *;
-};
diff --git a/sal/qa/osl/module/export_dll.map b/sal/qa/osl/module/export_dll.map
deleted file mode 100644
index b6a8ce0c8..000000000
--- a/sal/qa/osl/module/export_dll.map
+++ /dev/null
@@ -1,35 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-UDK_3_0_0 {
- global:
- firstfunc;
- cppunitTestPlugIn;
-
- local:
- *;
-};
diff --git a/sal/qa/osl/module/makefile.mk b/sal/qa/osl/module/makefile.mk
deleted file mode 100644
index 7fdf0ca43..000000000
--- a/sal/qa/osl/module/makefile.mk
+++ /dev/null
@@ -1,83 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-
-PRJNAME=sal
-TARGET=qa_module
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-.IF "$(OS)" == "IOS"
-CFLAGSCXX += -DCPPUNIT_PLUGIN_EXPORTED_NAME=cppunitTest_$(TARGET)
-.ENDIF
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-# BEGIN ----------------------------------------------------------------
-
-# --- test dll ------------------------------------------------------
-SHL1TARGET = Module_DLL
-SHL1OBJS = $(SLO)$/osl_Module_DLL.obj
-SHL1STDLIBS = $(SALLIB) $(CPPUNITLIB)
-SHL1IMPLIB = i$(SHL1TARGET)
-SHL1DEF = $(MISC)$/$(SHL1TARGET).def
-DEF1NAME = $(SHL1TARGET)
-SHL1VERSIONMAP = export_dll.map
-
-
-# --- main l ------------------------------------------------------
-SHL2OBJS= $(SLO)$/osl_Module.obj
-
-SHL2TARGET= osl_Module
-SHL2STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-.IF "$(GUI)" == "WNT"
-SHL2STDLIBS+=i$(SHL2TARGET).lib
-.ENDIF
-.IF "$(GUI)" == "UNX"
-APP3STDLIBS+=-l$(SHL2TARGET)
-.ENDIF
-
-SHL2DEPN= $(SHL1OBJS)
-SHL2IMPLIB= i$(SHL2TARGET)
-SHL2DEF= $(MISC)$/$(SHL2TARGET).def
-
-DEF2NAME =$(SHL2TARGET)
-SHL2VERSIONMAP= $(PRJ)$/qa$/export.map
-
-SLOFILES = $(SHL2OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/osl/module/osl_Module.cxx b/sal/qa/osl/module/osl_Module.cxx
deleted file mode 100644
index 983cfe7e9..000000000
--- a/sal/qa/osl/module/osl_Module.cxx
+++ /dev/null
@@ -1,529 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
- /*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-//------------------------------------------------------------------------
-// include files
-//------------------------------------------------------------------------
-#include <osl_Module_Const.h>
-
-using namespace osl;
-
-using ::rtl::OUString;
-using ::rtl::OUStringToOString;
-using ::rtl::OString;
-//------------------------------------------------------------------------
-// helper functions and classes
-//------------------------------------------------------------------------
-
-/** print Boolean value.
-*/
-inline void printBool( sal_Bool bOk )
-{
- printf("#printBool# " );
- ( sal_True == bOk ) ? printf( "TRUE!\n" )
- : printf( "FALSE!\n" );
-}
-
-/** print a UNI_CODE String.
-*/
-inline void printUString( const ::rtl::OUString & str )
-{
- rtl::OString aString;
-
- printf("#printUString_u# " );
- aString = ::rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US );
- printf("%s\n", aString.getStr( ) );
-}
-
-/** get dll file URL.
-*/
-inline ::rtl::OUString getDllURL( void )
-{
-#if ( defined WNT ) // lib in Unix and lib in Windows are not same in file name.
- ::rtl::OUString libPath( RTL_CONSTASCII_USTRINGPARAM("Module_DLL.dll") );
-#else
- ::rtl::OUString libPath( RTL_CONSTASCII_USTRINGPARAM("libModule_DLL.so") );
-#endif
-
- ::rtl::OUString dirPath, dllPath;
- osl::Module::getUrlFromAddress( ( void* ) &getDllURL, dirPath );
- dirPath = dirPath.copy( 0, dirPath.lastIndexOf('/') + 1);
- osl::FileBase::getAbsoluteFileURL( dirPath, libPath, dllPath );
-
- return dllPath;
-}
-
-inline sal_Bool isURL( const ::rtl::OUString pathname )
-{
- ::rtl::OUString aPreURL( RTL_CONSTASCII_USTRINGPARAM("file:///") );
- return ( ( pathname.indexOf( aPreURL ) == 0 ) ? sal_True : sal_False );
-}
-
-/** create a temp test directory using OUString name of full qualified URL or system path.
-*/
-inline void createTestDirectory( const ::rtl::OUString dirname )
-{
- ::rtl::OUString aPathURL = dirname.copy( 0 );
- ::osl::FileBase::RC nError;
-
- if ( !isURL( dirname ) )
- ::osl::FileBase::getFileURLFromSystemPath( dirname, aPathURL ); //convert if not full qualified URL
- nError = ::osl::Directory::create( aPathURL );
- CPPUNIT_ASSERT_MESSAGE( "In createTestDirectory Function: creation: ", ( ::osl::FileBase::E_None == nError ) || ( nError == ::osl::FileBase::E_EXIST ) );
-}
-
-/** delete a temp test directory using OUString name of full qualified URL or system path.
-*/
-inline void deleteTestDirectory( const ::rtl::OUString dirname )
-{
- ::rtl::OUString aPathURL = dirname.copy( 0 );
- ::osl::FileBase::RC nError;
- if ( !isURL( dirname ) )
- ::osl::FileBase::getFileURLFromSystemPath( dirname, aPathURL ); //convert if not full qualified URL
-
- ::osl::Directory testDir( aPathURL );
- if ( testDir.isOpen( ) == sal_True )
- {
- testDir.close( ); //close if still open.
- }
-
- nError = ::osl::Directory::remove( aPathURL );
- CPPUNIT_ASSERT_MESSAGE( "In deleteTestDirectory function: remove ", ( ::osl::FileBase::E_None == nError ) || ( nError == ::osl::FileBase::E_NOENT ) );
-}
-
-//check if the file exist
-inline sal_Bool ifFileExist( const ::rtl::OUString & str )
-{
- ::rtl::OUString aUStr;
- if ( isURL( str ) )
- ::osl::FileBase::getSystemPathFromFileURL( str, aUStr );
- else
- return sal_False;
-
- ::osl::File strFile( aUStr );
- ::osl::FileBase::RC nError = strFile.open( osl_File_OpenFlag_Read );
- if ( ::File::E_NOENT == nError )
- return sal_False;
- else{
- strFile.close( );
- return sal_True;
- }
-}
-
-/** detete a temp test file using OUString name.
-*/
-inline void deleteTestFile( const ::rtl::OUString filename )
-{
- ::rtl::OUString aPathURL = filename.copy( 0 );
- ::osl::FileBase::RC nError;
-
- if ( !isURL( filename ) )
- ::osl::FileBase::getFileURLFromSystemPath( filename, aPathURL ); //convert if not full qualified URL
-
- nError = ::osl::File::setAttributes( aPathURL, osl_File_Attribute_GrpWrite| osl_File_Attribute_OwnWrite| osl_File_Attribute_OthWrite ); // if readonly, make writtenable.
- CPPUNIT_ASSERT_MESSAGE( "In deleteTestFile Function: set writtenable ", ( ::osl::FileBase::E_None == nError ) || ( ::osl::FileBase::E_NOENT == nError ) );
-
- nError = ::osl::File::remove( aPathURL );
- CPPUNIT_ASSERT_MESSAGE( "In deleteTestFile Function: remove ", ( ::osl::FileBase::E_None == nError ) || ( nError == ::osl::FileBase::E_NOENT ) );
-}
-
-
-//------------------------------------------------------------------------
-// test code start here
-//------------------------------------------------------------------------
-
-namespace osl_Module
-{
-
- /** class and member function that is available for module test :
- */
-
- class testClass
- {
- public:
- static void myFunc()
- {
- printf("#Sun Microsystem\n");
- };
- };
-
-
- /** testing the methods:
- Module();
- Module( const ::rtl::OUString& strModuleName, sal_Int32 nRtldMode = SAL_LOADMODULE_DEFAULT);
- */
- class ctors : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void ctors_none( )
- {
- ::osl::Module aMod;
- bRes = aMod.is();
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test constructor without parameter.",
- sal_False == bRes );
- }
-
- void ctors_name_mode( )
- {
- OUString aFileURL;
- bRes = osl::Module::getUrlFromAddress( ( void* ) &::osl_Module::testClass::myFunc, aFileURL );
-
- if ( !( bRes ) )
- {
- CPPUNIT_ASSERT_MESSAGE("Cannot locate current module.", sal_False );
- }
-
- ::osl::Module aMod( aFileURL );
- bRes = aMod.is( );
- aMod.unload( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test constructor with load action.",
- sal_True == bRes );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_none );
- CPPUNIT_TEST( ctors_name_mode );
- CPPUNIT_TEST_SUITE_END( );
- }; // class ctors
-
-
- /** testing the methods:
- static sal_Bool getUrlFromAddress(void * addr, ::rtl::OUString & libraryUrl)
- */
- class getUrlFromAddress : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void getUrlFromAddress_001( )
- {
- OUString aFileURL;
- bRes = osl::Module::getUrlFromAddress( ( void* ) &::osl_Module::testClass::myFunc, aFileURL ) ;
- if ( !( bRes ) )
- {
- CPPUNIT_ASSERT_MESSAGE("Cannot locate current module.", sal_False );
- }
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test get Module URL from address.",
- sal_True == bRes && 0 < aFileURL.lastIndexOf('/') );
- }
-
- void getUrlFromAddress_002( )
- {
-#if !defined( MACOSX )
- // TODO: Find out why this fails on Mac OS X
- ::osl::Module aMod( getDllURL( ) );
- FuncPtr pFunc = ( FuncPtr ) aMod.getSymbol( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("firstfunc")) );
-
- OUString aFileURL;
- bRes = osl::Module::getUrlFromAddress( ( void* )pFunc, aFileURL );
- if ( !( bRes ) )
- {
- CPPUNIT_ASSERT_MESSAGE("Cannot locate current module.", sal_False );
- }
- aMod.unload( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: load an external library, get its function address and get its URL.",
- sal_True == bRes && 0 < aFileURL.lastIndexOf('/') && aFileURL.equalsIgnoreAsciiCase( getDllURL( ) ) );
-#endif
- }
-
- /* tester comments: another case is getFunctionSymbol_001*/
-
- CPPUNIT_TEST_SUITE( getUrlFromAddress );
- CPPUNIT_TEST( getUrlFromAddress_001 );
- CPPUNIT_TEST( getUrlFromAddress_002 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class getUrlFromAddress
-
-
- /** testing the method:
- sal_Bool SAL_CALL load( const ::rtl::OUString& strModuleName,
- sal_Int32 nRtldMode = SAL_LOADMODULE_DEFAULT)
- */
- class load : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void load_001( )
- {
- ::osl::Module aMod( getDllURL( ) );
- ::osl::Module aMod1;
-
- aMod1.load( getDllURL( ) );
- bRes = oslModule(aMod) == oslModule(aMod1);
- aMod.unload( );
- aMod1.unload( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: load function should do the same thing as constructor with library name.",
- sal_True == bRes );
- }
- // load lib which is under a CJK directory
- void load_002( )
- {
-#if defined( UNX ) && !defined( MACOSX )
- // TODO: Find out why this fails on Mac OS X
- //Can not get a CJK directory already exist, so here create one. Perhaps reason is encoding problem.
- ::rtl::OUString aPidDirURL = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("file:///tmp/")) + ::rtl::OUString::valueOf( ( long )getpid( ) );
- ::rtl::OUString aMyDirURL = aPidDirURL + aKname;
- createTestDirectory( aPidDirURL );
- createTestDirectory( aMyDirURL );
-
- ::rtl::OUString aDLLURL = aMyDirURL + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/libModule_DLL.so"));
- //check if the lib exist.
- //FIXME: if assert condition is false, the case will return, so the directory will not be clean-up
- CPPUNIT_ASSERT_MESSAGE( "#Source file is not exist. please manually clean-up directory and file under /tmp", ifFileExist( getDllURL( ) ) == sal_True );
- ::osl::FileBase::RC nError = ::osl::File::copy( getDllURL( ), aDLLURL );
- CPPUNIT_ASSERT_MESSAGE( "#copy failed. please manually clean-up directory and file under /tmp", nError == ::osl::FileBase::E_None );
- //ifFileExist returned false but the file exist
- CPPUNIT_ASSERT_MESSAGE( "#This file is not exist, copy failed. please manually clean-up directory and file under /tmp", ifFileExist( aDLLURL ) == sal_True );
-
- //test if can create a normal file
- ::rtl::OUString aFileURL = aMyDirURL + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/test_file"));
- ::osl::File testFile( aFileURL );
- nError = testFile.open( osl_File_OpenFlag_Create );
- CPPUNIT_ASSERT_MESSAGE( "#create failed. please manually clean-up directory and file under /tmp", nError == ::osl::FileBase::E_None );
- CPPUNIT_ASSERT_MESSAGE( "#This file is not exist, create failed. please manually clean-up directory and file under /tmp", ifFileExist( aFileURL ) == sal_True );
-
- //load the copied dll
- ::osl::Module aMod( aDLLURL );
- ::osl::Module aMod1;
-
- sal_Bool bOK = aMod1.load( aDLLURL );
- bRes = oslModule(aMod) == oslModule(aMod1);
- aMod.unload( );
- aMod1.unload( );
- deleteTestFile( aFileURL );
- deleteTestFile( aDLLURL );
- deleteTestDirectory( aMyDirURL );
- deleteTestDirectory( aPidDirURL );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: load lib which is under a CJK directory.",
- sal_True == bRes && bOK == sal_True );
-#endif
- }
-
- CPPUNIT_TEST_SUITE( load );
- CPPUNIT_TEST( load_001 );
- CPPUNIT_TEST( load_002 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class load
-
-
- /** testing the method:
- void SAL_CALL unload()
- */
- class unload : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void unload_001( )
- {
- ::osl::Module aMod( getDllURL( ) );
-
- aMod.unload( );
- bRes = oslModule(aMod) ==NULL;
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: unload function should do the same thing as destructor.",
- sal_True == bRes );
- }
-
- CPPUNIT_TEST_SUITE( unload );
- CPPUNIT_TEST( unload_001 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class unload
-
-
- /** testing the methods:
- sal_Bool SAL_CALL is() const
- */
- class is : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void is_001( )
- {
- OUString aFileURL;
- bRes = osl::Module::getUrlFromAddress( ( void* ) &::osl_Module::testClass::myFunc, aFileURL );
- if ( !( bRes ) )
- {
- CPPUNIT_ASSERT_MESSAGE("Cannot locate current module - using executable instead", sal_False );
- }
-
- ::osl::Module aMod;
- bRes = aMod.is( );
- aMod.load( aFileURL );
- bRes1 = aMod.is( );
- aMod.unload( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test if a module is a loaded module.",
- sal_False == bRes && sal_True == bRes1);
- }
- CPPUNIT_TEST_SUITE( is );
- CPPUNIT_TEST( is_001 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class is
-
-
- /** testing the methods:
- void* SAL_CALL getSymbol( const ::rtl::OUString& strSymbolName)
- */
- class getSymbol : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes;
-
- void getSymbol_001( )
- {
-#if !defined( MACOSX )
- // TODO: Find out why this fails on Mac OS X
- ::osl::Module aMod( getDllURL( ) );
- FuncPtr pFunc = ( FuncPtr ) aMod.getSymbol( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("firstfunc")) );
- bRes = sal_False;
- if ( pFunc )
- bRes = pFunc( bRes );
- aMod.unload();
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: load a dll and call one function in it.",
- sal_True == bRes );
-#endif
- }
-
- CPPUNIT_TEST_SUITE( getSymbol );
- CPPUNIT_TEST( getSymbol_001 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class getSymbol
-
-
- /** testing the methods:
- operator oslModule() const
- */
- class optr_oslModule : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void optr_oslModule_001( )
- {
-#if !defined( MACOSX )
- // TODO: Find out why this fails on Mac OS X
- ::osl::Module aMod;
- bRes = ( (oslModule)aMod == NULL );
-
- aMod.load( getDllURL( ) );
- bRes1 = (oslModule)aMod != NULL;
-
- aMod.unload( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: the m_Module of a Module instance will be NULL when is not loaded, it will not be NULL after loaded.",
- sal_True == bRes && sal_True == bRes1);
-#endif
- }
-
- void optr_oslModule_002( )
- {
-#if !defined( MACOSX )
- // TODO: Find out why this fails on Mac OS X
- ::osl::Module aMod( getDllURL( ) );
- ::rtl::OUString funcName( RTL_CONSTASCII_USTRINGPARAM("firstfunc") );
-
- FuncPtr pFunc = ( FuncPtr ) osl_getSymbol( (oslModule)aMod, funcName.pData );
- bRes = sal_False;
- if ( pFunc )
- bRes = pFunc( bRes );
-
- aMod.unload();
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: use m_Module to call osl_getSymbol() function.",
- sal_True == bRes );
-#endif
- }
-
- CPPUNIT_TEST_SUITE( optr_oslModule );
- CPPUNIT_TEST( optr_oslModule_001 );
- CPPUNIT_TEST( optr_oslModule_002 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class optr_oslModule
-
- /** testing the methods:
- oslGenericFunction SAL_CALL getFunctionSymbol( const ::rtl::OUString& ustrFunctionSymbolName )
- */
- class getFunctionSymbol : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void getFunctionSymbol_001( )
- {
-#if !defined( MACOSX )
- // TODO: Find out why this fails on Mac OS X
- ::osl::Module aMod( getDllURL( ) );
- oslGenericFunction oslFunc = aMod.getFunctionSymbol( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("firstfunc")) );
- ::rtl::OUString aLibraryURL;
- bRes = ::osl::Module::getUrlFromAddress( oslFunc, aLibraryURL);
- aMod.unload();
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: load a dll and get its function addr and get its URL.",
- sal_True == bRes && aLibraryURL.equalsIgnoreAsciiCase( getDllURL() ) );
-#endif
- }
-
- CPPUNIT_TEST_SUITE( getFunctionSymbol );
- CPPUNIT_TEST( getFunctionSymbol_001 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class getFunctionSymbol
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Module::ctors);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Module::getUrlFromAddress);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Module::load);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Module::unload);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Module::is);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Module::getSymbol);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Module::optr_oslModule);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Module::getFunctionSymbol);
-// -----------------------------------------------------------------------------
-
-} // namespace osl_Module
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/module/osl_Module_Const.h b/sal/qa/osl/module/osl_Module_Const.h
deleted file mode 100644
index 1174c018a..000000000
--- a/sal/qa/osl/module/osl_Module_Const.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_MODULE_CONST_H_
-#define _OSL_MODULE_CONST_H_
-
-
-#include <sal/types.h>
-#include <rtl/ustring.hxx>
-#include <osl/module.hxx>
-#include <osl/file.hxx>
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#if ( defined UNX ) //Unix
-# include <unistd.h>
-#endif
-#if ( defined WNT ) // Windows
-# include <io.h>
-#endif
-
-# define FILE_PREFIX "file:///"
-
-//Korea charactors
-::rtl::OUString aKname(
- RTL_CONSTASCII_STRINGPARAM(
- "/\xEC\x95\x88\xEB\x85\x95\xED\x95\x98\xEC\x84\xB8\xEC\x9A\x94"),
- RTL_TEXTENCODING_ISO_8859_1);
- // zero-extend the individual byte-sized characters one-to-one to individual
- // sal_Unicode-sized characters; not sure whether this is what was
- // intended...
-
-//------------------------------------------------------------------------
-// function pointer type.
-//------------------------------------------------------------------------
-typedef sal_Bool (* FuncPtr )( sal_Bool );
-
-
-#endif /* _OSL_MODULE_CONST_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/module/osl_Module_DLL.cxx b/sal/qa/osl/module/osl_Module_DLL.cxx
deleted file mode 100644
index fa4cdaf82..000000000
--- a/sal/qa/osl/module/osl_Module_DLL.cxx
+++ /dev/null
@@ -1,47 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <osl_Module_Const.h>
-
-#include <stdio.h>
-#include <sal/types.h>
-
-// This module contains no tests. It is loaded as a dynamic library by
-// osl_Module.
-// But we instatiate a test plugin to fake the build process.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-extern "C" sal_Bool SAL_CALL firstfunc( sal_Bool bRes )
-{
- return ( bRes = sal_True );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/mutex/osl_Mutex.cxx b/sal/qa/osl/mutex/osl_Mutex.cxx
deleted file mode 100644
index c083a184f..000000000
--- a/sal/qa/osl/mutex/osl_Mutex.cxx
+++ /dev/null
@@ -1,938 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-//------------------------------------------------------------------------
-// include files
-//------------------------------------------------------------------------
-#include <sal/cppunit.h>
-
-#include <osl_Mutex_Const.h>
-
-using namespace osl;
-using namespace rtl;
-
-//------------------------------------------------------------------------
-// helper functions
-//------------------------------------------------------------------------
-
-/** print a UNI_CODE String.
-*/
-inline void printUString( const ::rtl::OUString & str )
-{
- rtl::OString aString;
-
- printf("#printUString_u# " );
- aString = ::rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US );
- printf("%s\n", aString.getStr( ) );
-}
-
-/** print Boolean value.
-*/
-inline void printBool( sal_Bool bOk )
-{
- printf("#printBool# " );
- ( sal_True == bOk ) ? printf("YES!\n" ): printf("NO!\n" );
-}
-
-/** pause nSec seconds helper function.
-*/
-namespace ThreadHelper
-{
- void thread_sleep( sal_Int32 _nSec )
- {
- /// print statement in thread process must use fflush() to force display.
- // t_print("# wait %d seconds. ", _nSec );
- fflush(stdout);
-
-#ifdef WNT //Windows
- Sleep( _nSec * 1000 );
-#endif
-#if ( defined UNX ) //Unix
- sleep( _nSec );
-#endif
- // printf("# done\n" );
- }
- void thread_sleep_tenth_sec(sal_Int32 _nTenthSec)
- {
-#ifdef WNT //Windows
- Sleep(_nTenthSec * 100 );
-#endif
-#if ( defined UNX ) //Unix
- TimeValue nTV;
- nTV.Seconds = static_cast<sal_uInt32>( _nTenthSec/10 );
- nTV.Nanosec = ( (_nTenthSec%10 ) * 100000000 );
- osl_waitThread(&nTV);
-#endif
- }
-}
-
-
-//------------------------------------------------------------------------
-// Beginning of the test cases for osl_Mutex class
-//------------------------------------------------------------------------
-
-
-/** mutually exclusive data
-*/
-struct resource {
- sal_Int32 data1;
- sal_Int32 data2;
- Mutex lock;
-};
-
-/** IncreaseThread provide data.
-*/
-class IncreaseThread : public Thread
-{
-public:
- IncreaseThread( struct resource *pData ): pResource( pData ) { }
-
- ~IncreaseThread( )
- {
- CPPUNIT_ASSERT_MESSAGE( "#IncreaseThread does not shutdown properly.\n", sal_False == this -> isRunning( ) );
- }
-protected:
- struct resource *pResource;
-
- void SAL_CALL run( )
- {
- pResource->lock.acquire( );
- for( sal_Int8 i = 0; i < 3; i++ )
- {
- pResource->data1++;
- yield( ); //yield() give CPU time to other thread, other thread if not block, they will change the data;
- }
- if ( pResource->data2 == 0 )
- pResource->data2 = ( pResource->data1 > 0 ? pResource->data1 : 0 - pResource->data1 );
- pResource->lock.release();
- }
-};
-
-/** DecreaseThread consume data.
-*/
-class DecreaseThread : public Thread
-{
-public:
- DecreaseThread( struct resource *pData ): pResource( pData ) { }
-
- ~DecreaseThread( )
- {
- CPPUNIT_ASSERT_MESSAGE( "#DecreaseThread does not shutdown properly.\n", sal_False == this -> isRunning( ) );
- }
-protected:
- struct resource *pResource;
-
- void SAL_CALL run( )
- {
- pResource->lock.acquire( );
- for( sal_Int8 i = 0; i < 3; i++ )
- {
- pResource->data1--;
- yield( ); //yield() give CPU time to other thread, other thread if not block, they will change the data;
- }
- if ( pResource->data2 == 0 )
- pResource->data2 = ( pResource->data1 > 0 ? pResource->data1 : 0 - pResource->data1 );
- pResource->lock.release();
- }
-};
-
-
-/** chain structure used in Threads as critical resource
-*/
-struct chain {
- sal_Int32 buffer[ BUFFER_SIZE ];
- Mutex lock;
- sal_Int8 pos;
-};
-
-/** PutThread write to the chain structure in a mutex manner.
-*/
-class PutThread : public Thread
-{
-public:
- //get the struct pointer to write data to buffer
- PutThread( struct chain* pData ): pChain( pData ) { }
-
- ~PutThread( )
- {
- CPPUNIT_ASSERT_MESSAGE( "#PutThread does not shutdown properly.\n", sal_False == this -> isRunning( ) );
- }
-protected:
- struct chain* pChain;
-
- void SAL_CALL run( )
- {
- //block here if the mutex has been acquired
- pChain->lock.acquire( );
-
- //current position in buffer to write
- sal_Int8 nPos = pChain->pos;
- oslThreadIdentifier oId = getIdentifier( );
- //write data
- sal_Int8 i;
- for ( i = 0; i < 5; i++ )
- {
- pChain->buffer[ nPos + i ] = oId;
- yield( );
- }
- //revise the position
- pChain->pos = nPos + i;
-
- //finish writing, release the mutex
- pChain->lock.release();
- }
-};
-
-/** thread for testing Mutex acquire.
- */
-class HoldThread : public Thread
-{
-public:
- //get the Mutex pointer to operate
- HoldThread( Mutex* pMutex ): pMyMutex( pMutex ) { }
-
- ~HoldThread( )
- {
- CPPUNIT_ASSERT_MESSAGE( "#HoldThread does not shutdown properly.\n", sal_False == this -> isRunning( ) );
- }
-protected:
- Mutex* pMyMutex;
-
- void SAL_CALL run()
- {
- // block here if the mutex has been acquired
- pMyMutex->acquire( );
- printf("# Mutex acquired. \n" );
- pMyMutex->release( );
- }
-};
-
-class WaitThread : public Thread
-{
-public:
- //get the Mutex pointer to operate
- WaitThread( Mutex* pMutex ): pMyMutex( pMutex ) { }
-
- ~WaitThread( )
- {
- CPPUNIT_ASSERT_MESSAGE( "#WaitThread does not shutdown properly.\n", sal_False == this -> isRunning( ) );
- }
-protected:
- Mutex* pMyMutex;
-
- void SAL_CALL run( )
- {
- // block here if the mutex has been acquired
- pMyMutex->acquire( );
- ThreadHelper::thread_sleep_tenth_sec( 2 );
- pMyMutex->release( );
- }
-};
-
-/** thread for testing getGlobalMutex.
- */
-class GlobalMutexThread : public Thread
-{
-public:
- //get the Mutex pointer to operate
- GlobalMutexThread( ){ }
-
- ~GlobalMutexThread( )
- {
- CPPUNIT_ASSERT_MESSAGE( "#GlobalMutexThread does not shutdown properly.\n", sal_False == this -> isRunning( ) );
- }
-protected:
- void SAL_CALL run( )
- {
- // block here if the mutex has been acquired
- Mutex* pGlobalMutex;
- pGlobalMutex = pGlobalMutex->getGlobalMutex( );
- pGlobalMutex->acquire( );
- printf("# Global Mutex acquired. \n" );
- pGlobalMutex->release( );
- }
-};
-
-
-//--------------------------------------------------------------
-namespace osl_Mutex
-{
-
- /** Test of the osl::Mutex::constructor
- */
- class ctor : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- struct chain m_Data;
- struct resource m_Res;
-
- void setUp( )
- {
- for ( sal_Int8 i=0; i < BUFFER_SIZE; i++ )
- m_Data.buffer[i] = 0;
- m_Data.pos = 0;
-
- m_Res.data1 = 0;
- m_Res.data2 = 0;
- }
-
- void tearDown()
- {
- }
-
- /** Create two threads to write data to the same buffer, use Mutex to assure
- during one thread write data five times, the other thread should not begin writing.
- the two threads wrote two different datas: their thread ID, so we can check the datas
- in buffer to know the order of the two threads writing
- */
- void ctor_001()
- {
- PutThread myThread1( &m_Data );
- PutThread myThread2( &m_Data );
-
- myThread1.create( );
- myThread2.create( );
-
- //wait until the two threads terminate
- myThread1.join( );
- myThread2.join( );
-
- sal_Bool bRes = sal_False;
-
- // every 5 datas should the same
- // LLA: this is not a good check, it's too fix
- if (m_Data.buffer[0] == m_Data.buffer[1] &&
- m_Data.buffer[1] == m_Data.buffer[2] &&
- m_Data.buffer[2] == m_Data.buffer[3] &&
- m_Data.buffer[3] == m_Data.buffer[4] &&
- m_Data.buffer[5] == m_Data.buffer[6] &&
- m_Data.buffer[6] == m_Data.buffer[7] &&
- m_Data.buffer[7] == m_Data.buffer[8] &&
- m_Data.buffer[8] == m_Data.buffer[9])
- bRes = sal_True;
-
- /*for (sal_Int8 i=0; i<BUFFER_SIZE; i++)
- printf("#data in buffer is %d\n", m_Data.buffer[i]);
- */
-
- CPPUNIT_ASSERT_MESSAGE("Mutex ctor", bRes == sal_True);
-
- }
-
- /** Create two threads to write data to operate on the same number , use Mutex to assure,
- one thread increase data 3 times, the other thread decrease 3 times, store the operate
- result when the first thread complete, if it is interrupt by the other thread, the stored
- number will not be 3.
- */
- void ctor_002()
- {
- IncreaseThread myThread1( &m_Res );
- DecreaseThread myThread2( &m_Res );
-
- myThread1.create( );
- myThread2.create( );
-
- //wait until the two threads terminate
- myThread1.join( );
- myThread2.join( );
-
- sal_Bool bRes = sal_False;
-
- // every 5 datas should the same
- if ( ( m_Res.data1 == 0 ) && ( m_Res.data2 == 3 ) )
- bRes = sal_True;
-
- CPPUNIT_ASSERT_MESSAGE( "test Mutex ctor function: increase and decrease a number 3 times without interrupt.", bRes == sal_True );
- }
-
- CPPUNIT_TEST_SUITE( ctor );
- CPPUNIT_TEST( ctor_001 );
- CPPUNIT_TEST( ctor_002 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class ctor
-
-
- /** Test of the osl::Mutex::acquire method
- */
- class acquire : public CppUnit::TestFixture
- {
- public:
- // acquire mutex in main thread, and then call acquire again in myThread,
- // the child thread should block, wait 2 secs, it still block.
- // Then release mutex in main thread, the child thread could return from acquire,
- // and go to exec next statement, so could terminate quickly.
- void acquire_001( )
- {
- Mutex aMutex;
- //acquire here
- sal_Bool bRes = aMutex.acquire( );
- // pass the pointer of mutex to child thread
- HoldThread myThread( &aMutex );
- myThread.create( );
-
- ThreadHelper::thread_sleep_tenth_sec( 2 );
- // if acquire in myThread does not work, 2 secs is long enough,
- // myThread should terminate now, and bRes1 should be sal_False
- sal_Bool bRes1 = myThread.isRunning( );
-
- aMutex.release( );
- ThreadHelper::thread_sleep_tenth_sec( 1 );
- // after release mutex, myThread stops blocking and will terminate immediately
- sal_Bool bRes2 = myThread.isRunning( );
- myThread.join( );
-
- CPPUNIT_ASSERT_MESSAGE( "Mutex acquire",
- bRes == sal_True && bRes1 == sal_True && bRes2 == sal_False );
- }
-
- //in the same thread, acquire twice should success
- void acquire_002()
- {
- Mutex aMutex;
- //acquire here
- sal_Bool bRes = aMutex.acquire();
- sal_Bool bRes1 = aMutex.acquire();
-
- sal_Bool bRes2 = aMutex.tryToAcquire();
-
- aMutex.release();
-
- CPPUNIT_ASSERT_MESSAGE("Mutex acquire",
- bRes == sal_True && bRes1 == sal_True && bRes2 == sal_True);
-
- }
-
- CPPUNIT_TEST_SUITE( acquire );
- CPPUNIT_TEST( acquire_001 );
- CPPUNIT_TEST( acquire_002 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class acquire
-
-
- /** Test of the osl::Mutex::tryToAcquire method
- */
- class tryToAcquire : public CppUnit::TestFixture
- {
- public:
- // First let child thread acquire the mutex, and wait 2 secs, during the 2 secs,
- // in main thread, tryToAcquire mutex should return False
- // then after the child thread terminated, tryToAcquire should return True
- void tryToAcquire_001()
- {
- Mutex aMutex;
- WaitThread myThread(&aMutex);
- myThread.create();
-
- // ensure the child thread acquire the mutex
- ThreadHelper::thread_sleep_tenth_sec(1);
-
- sal_Bool bRes1 = aMutex.tryToAcquire();
-
- if (bRes1 == sal_True)
- aMutex.release();
- // wait the child thread terminate
- myThread.join();
-
- sal_Bool bRes2 = aMutex.tryToAcquire();
-
- if (bRes2 == sal_True)
- aMutex.release();
-
- CPPUNIT_ASSERT_MESSAGE("Try to acquire Mutex",
- bRes1 == sal_False && bRes2 == sal_True);
- }
-
- CPPUNIT_TEST_SUITE(tryToAcquire);
- CPPUNIT_TEST(tryToAcquire_001);
- CPPUNIT_TEST_SUITE_END();
- }; // class tryToAcquire
-
- /** Test of the osl::Mutex::release method
- */
- class release : public CppUnit::TestFixture
- {
- public:
- /** acquire/release are not used in pairs: after child thread acquired mutex,
- the main thread release it, then any thread could acquire it.
- */
- void release_001()
- {
- Mutex aMutex;
- WaitThread myThread( &aMutex );
- myThread.create( );
-
- // ensure the child thread acquire the mutex
- ThreadHelper::thread_sleep_tenth_sec( 1 );
-
- sal_Bool bRunning = myThread.isRunning( );
- sal_Bool bRes1 = aMutex.tryToAcquire( );
- // wait the child thread terminate
- myThread.join( );
-
- sal_Bool bRes2 = aMutex.tryToAcquire( );
-
- if ( bRes2 == sal_True )
- aMutex.release( );
-
- CPPUNIT_ASSERT_MESSAGE( "release Mutex: try to aquire before and after the mutex has been released",
- bRes1 == sal_False && bRes2 == sal_True && bRunning == sal_True );
-
- }
-
- // how about release twice?
- void release_002()
- {
- }
-
- CPPUNIT_TEST_SUITE( release );
- CPPUNIT_TEST( release_001 );
- CPPUNIT_TEST( release_002 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class release
-
-
-
- /** Test of the osl::Mutex::getGlobalMutex method
- */
- class getGlobalMutex : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void getGlobalMutex_001()
- {
- Mutex* pGlobalMutex;
- pGlobalMutex = pGlobalMutex->getGlobalMutex();
- pGlobalMutex->acquire();
-
- GlobalMutexThread myThread;
- myThread.create();
-
- ThreadHelper::thread_sleep_tenth_sec(1);
- sal_Bool bRes1 = myThread.isRunning();
-
- pGlobalMutex->release();
- ThreadHelper::thread_sleep_tenth_sec(1);
- // after release mutex, myThread stops blocking and will terminate immediately
- sal_Bool bRes2 = myThread.isRunning();
-
- CPPUNIT_ASSERT_MESSAGE("Global Mutex works",
- bRes1 == sal_True && bRes2 == sal_False);
- }
-
- void getGlobalMutex_002( )
- {
- sal_Bool bRes;
-
- Mutex *pGlobalMutex;
- pGlobalMutex = pGlobalMutex->getGlobalMutex( );
- pGlobalMutex->acquire( );
- {
- Mutex *pGlobalMutex1;
- pGlobalMutex1 = pGlobalMutex1->getGlobalMutex( );
- bRes = pGlobalMutex1->release( );
- }
-
- CPPUNIT_ASSERT_MESSAGE( "Global Mutex works: if the code between {} get the different mutex as the former one, it will return false when release.",
- bRes == sal_True );
- }
-
- CPPUNIT_TEST_SUITE(getGlobalMutex);
- CPPUNIT_TEST(getGlobalMutex_001);
- CPPUNIT_TEST(getGlobalMutex_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class getGlobalMutex
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Mutex::ctor, "osl_Mutex");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Mutex::acquire, "osl_Mutex");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Mutex::tryToAcquire, "osl_Mutex");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Mutex::release, "osl_Mutex");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Mutex::getGlobalMutex, "osl_Mutex");
-} // namespace osl_Mutex
-
-
-//------------------------------------------------------------------------
-// Beginning of the test cases for osl_Guard class
-//------------------------------------------------------------------------
-
-class GuardThread : public Thread
-{
-public:
- //get the Mutex pointer to operate
- GuardThread( Mutex* pMutex ): pMyMutex( pMutex ) { }
-
- ~GuardThread( )
- {
- CPPUNIT_ASSERT_MESSAGE( "#GuardThread does not shutdown properly.\n", sal_False == this -> isRunning( ) );
- }
-protected:
- Mutex* pMyMutex;
-
- void SAL_CALL run( )
- {
- // block here if the mutex has been acquired
- MutexGuard aGuard( pMyMutex );
- ThreadHelper::thread_sleep_tenth_sec( 2 );
- }
-};
-
-
-namespace osl_Guard
-{
- class ctor : public CppUnit::TestFixture
- {
- public:
- // insert your test code here.
- void ctor_001()
- {
- Mutex aMutex;
- GuardThread myThread(&aMutex);
- myThread.create();
-
- ThreadHelper::thread_sleep_tenth_sec(1);
- sal_Bool bRes = aMutex.tryToAcquire();
- // after 1 second, the mutex has been guarded, and the child thread should be running
- sal_Bool bRes1 = myThread.isRunning();
-
- myThread.join();
- sal_Bool bRes2 = aMutex.tryToAcquire();
-
- CPPUNIT_ASSERT_MESSAGE("GuardThread constructor",
- bRes == sal_False && bRes1 == sal_True && bRes2 == sal_True);
- }
-
- void ctor_002( )
- {
- Mutex aMutex;
-
- /// use reference constructor here
- MutexGuard myGuard( aMutex );
-
- /// the GuardThread will block here when it is initialised.
- GuardThread myThread( &aMutex );
- myThread.create( );
-
- /// is it still blocking?
- ThreadHelper::thread_sleep_tenth_sec( 2 );
- sal_Bool bRes = myThread.isRunning( );
-
- /// oh, release him.
- aMutex.release( );
- myThread.join( );
-
- CPPUNIT_ASSERT_MESSAGE("GuardThread constructor: reference initialization, aquire the mutex before running the thread, then check if it is blocking.",
- bRes == sal_True);
- }
-
- CPPUNIT_TEST_SUITE(ctor);
- CPPUNIT_TEST(ctor_001);
- CPPUNIT_TEST(ctor_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class ctor
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Guard::ctor, "osl_Guard");
-} // namespace osl_Guard
-
-
-//------------------------------------------------------------------------
-// Beginning of the test cases for osl_ClearableGuard class
-//------------------------------------------------------------------------
-
-/** Thread for test ClearableGuard
- */
-class ClearGuardThread : public Thread
-{
-public:
- //get the Mutex pointer to operate
- ClearGuardThread( Mutex* pMutex ): pMyMutex( pMutex ) {}
-
- ~ClearGuardThread( )
- {
- CPPUNIT_ASSERT_MESSAGE( "#ClearGuardThread does not shutdown properly.\n", sal_False == this -> isRunning( ) );
- }
-protected:
- Mutex* pMyMutex;
-
- void SAL_CALL run( )
- {
- // acquire the mutex
- // printf("# ClearGuardThread" );
- ClearableMutexGuard aGuard( pMyMutex );
- ThreadHelper::thread_sleep( 5 );
-
- // release the mutex
- aGuard.clear( );
- ThreadHelper::thread_sleep( 2 );
- }
-};
-
-// -----------------------------------------------------------------------------
-namespace osl_ClearableGuard
-{
-
- class ctor : public CppUnit::TestFixture
- {
- public:
- void ctor_001()
- {
- Mutex aMutex;
-
- /// now, the aMutex has been guarded.
- ClearableMutexGuard myMutexGuard( &aMutex );
-
- /// it will return sal_False if the aMutex has not been Guarded.
- sal_Bool bRes = aMutex.release( );
-
- CPPUNIT_ASSERT_MESSAGE("ClearableMutexGuard constructor, test the aquire operation when initilized.",
- bRes == sal_True );
- }
-
- void ctor_002( )
- {
- Mutex aMutex;
-
- /// now, the aMutex has been guarded, this time, we use reference constructor.
- ClearableMutexGuard myMutexGuard( aMutex );
-
- /// it will return sal_False if the aMutex has not been Guarded.
- sal_Bool bRes = aMutex.release( );
-
- CPPUNIT_ASSERT_MESSAGE("ClearableMutexGuard constructor, test the aquire operation when initilized, we use reference constructor this time.",
- bRes == sal_True );
- }
-
- CPPUNIT_TEST_SUITE(ctor);
- CPPUNIT_TEST(ctor_001);
- CPPUNIT_TEST(ctor_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class ctor
-
- class clear : public CppUnit::TestFixture
- {
- public:
- void clear_001()
- {
- Mutex aMutex;
- ClearGuardThread myThread(&aMutex);
- myThread.create();
-
- TimeValue aTimeVal_befor;
- osl_getSystemTime( &aTimeVal_befor );
- // wait 1 second to assure the child thread has begun
- ThreadHelper::thread_sleep(1);
-
- while (1)
- {
- if (aMutex.tryToAcquire() == sal_True)
- {
- break;
- }
- ThreadHelper::thread_sleep(1);
- }
- TimeValue aTimeVal_after;
- osl_getSystemTime( &aTimeVal_after );
- sal_Int32 nSec = aTimeVal_after.Seconds - aTimeVal_befor.Seconds;
- printf("nSec is %"SAL_PRIdINT32"\n", nSec);
-
- myThread.join();
-
- CPPUNIT_ASSERT_MESSAGE("ClearableGuard method: clear",
- nSec < 7 && nSec > 1);
- }
-
- void clear_002( )
- {
- Mutex aMutex;
-
- /// now, the aMutex has been guarded.
- ClearableMutexGuard myMutexGuard( &aMutex );
-
- /// launch the HoldThread, it will be blocked here.
- HoldThread myThread( &aMutex );
- myThread.create( );
-
- /// is it blocking?
- ThreadHelper::thread_sleep_tenth_sec( 4 );
- sal_Bool bRes = myThread.isRunning( );
-
- /// use clear to release.
- myMutexGuard.clear( );
- myThread.join( );
- sal_Bool bRes1 = myThread.isRunning( );
-
- CPPUNIT_ASSERT_MESSAGE( "ClearableGuard method: clear, control the HoldThread's running status!",
- ( sal_True == bRes ) && ( sal_False == bRes1 ) );
- }
-
- CPPUNIT_TEST_SUITE( clear );
- CPPUNIT_TEST( clear_001 );
- CPPUNIT_TEST( clear_002 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class clear
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_ClearableGuard::ctor, "osl_ClearableGuard" );
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_ClearableGuard::clear, "osl_ClearableGuard" );
-} // namespace osl_ClearableGuard
-
-
-//------------------------------------------------------------------------
-// Beginning of the test cases for osl_ResettableGuard class
-//------------------------------------------------------------------------
-
-/** Thread for test ResettableGuard
- */
-class ResetGuardThread : public Thread
-{
-public:
- //get the Mutex pointer to operate
- ResetGuardThread( Mutex* pMutex ): pMyMutex( pMutex ) {}
-
- ~ResetGuardThread( )
- {
- CPPUNIT_ASSERT_MESSAGE( "#ResetGuardThread does not shutdown properly.\n", sal_False == this -> isRunning( ) );
- }
-protected:
- Mutex* pMyMutex;
-
- void SAL_CALL run( )
- {
- // acquire the mutex
- printf("# ResettableGuard\n" );
- ResettableMutexGuard aGuard( pMyMutex );
- // release the mutex
- aGuard.clear( );
- ThreadHelper::thread_sleep_tenth_sec( 2 );
- }
-};
-
-// -----------------------------------------------------------------------------
-namespace osl_ResettableGuard
-{
- class ctor : public CppUnit::TestFixture
- {
- public:
- void ctor_001()
- {
- Mutex aMutex;
-
- /// now, the aMutex has been guarded.
- ResettableMutexGuard myMutexGuard( &aMutex );
-
- /// it will return sal_False if the aMutex has not been Guarded.
- sal_Bool bRes = aMutex.release( );
-
- CPPUNIT_ASSERT_MESSAGE("ResettableMutexGuard constructor, test the aquire operation when initilized.",
- bRes == sal_True );
- }
-
- void ctor_002( )
- {
- Mutex aMutex;
-
- /// now, the aMutex has been guarded, this time, we use reference constructor.
- ResettableMutexGuard myMutexGuard( aMutex );
-
- /// it will return sal_False if the aMutex has not been Guarded.
- sal_Bool bRes = aMutex.release( );
-
- CPPUNIT_ASSERT_MESSAGE( "ResettableMutexGuard constructor, test the aquire operation when initilized, we use reference constructor this time.",
- bRes == sal_True );
- }
-
-
- CPPUNIT_TEST_SUITE(ctor);
- CPPUNIT_TEST(ctor_001);
- CPPUNIT_TEST(ctor_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class ctor
-
- class reset : public CppUnit::TestFixture
- {
- public:
- void reset_001( )
- {
- Mutex aMutex;
- ResetGuardThread myThread( &aMutex );
- ResettableMutexGuard myMutexGuard( aMutex );
- myThread.create( );
-
- /// is it running? and clear done?
- sal_Bool bRes = myThread.isRunning( );
- myMutexGuard.clear( );
- ThreadHelper::thread_sleep_tenth_sec( 1 );
-
- /// if reset is not success, the release will return sal_False
- myMutexGuard.reset( );
- sal_Bool bRes1 = aMutex.release( );
- myThread.join( );
-
- CPPUNIT_ASSERT_MESSAGE( "ResettableMutexGuard method: reset",
- ( sal_True == bRes ) && ( sal_True == bRes1 ) );
- }
-
- void reset_002( )
- {
- Mutex aMutex;
- ResettableMutexGuard myMutexGuard( &aMutex );
-
- /// shouldn't release after clear;
- myMutexGuard.clear( );
- sal_Bool bRes = aMutex.release( );
-
- /// can release after reset.
- myMutexGuard.reset( );
- sal_Bool bRes1 = aMutex.release( );
-
- CPPUNIT_ASSERT_MESSAGE( "ResettableMutexGuard method: reset, release after clear and reset, on Solaris, the mutex can be release without aquire, so it can not passed on (SOLARIS), but not the reason for reset_002",
- ( sal_False == bRes ) && ( sal_True == bRes1 ) );
- }
-
- CPPUNIT_TEST_SUITE(reset);
- CPPUNIT_TEST(reset_001);
-#ifdef LINUX
- CPPUNIT_TEST(reset_002);
-#endif
- CPPUNIT_TEST_SUITE_END();
- }; // class reset
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_ResettableGuard::ctor);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_ResettableGuard::reset);
-} // namespace osl_ResettableGuard
-
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-// The following sets variables for GNU EMACS
-// Local Variables:
-// tab-width:4
-// End:
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/mutex/osl_Mutex_Const.h b/sal/qa/osl/mutex/osl_Mutex_Const.h
deleted file mode 100644
index b235c8b7a..000000000
--- a/sal/qa/osl/mutex/osl_Mutex_Const.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_MUTEX_CONST_H_
-#define _OSL_MUTEX_CONST_H_
-
-#include <sal/types.h>
-#include <rtl/ustring.hxx>
-
-#ifndef _OSL_THREAD_HXX
-#include <osl/thread.hxx>
-#endif
-
-#ifndef _OSL_MUTEX_HXX
-#include <osl/mutex.hxx>
-#endif
-#include <osl/time.h>
-
-#ifdef UNX
-#include <unistd.h>
-#endif
-
-#define BUFFER_SIZE 16
-
-
-#endif /* _OSL_MUTEX_CONST_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/pipe/osl_Pipe.cxx b/sal/qa/osl/pipe/osl_Pipe.cxx
deleted file mode 100644
index a293ae9f8..000000000
--- a/sal/qa/osl/pipe/osl_Pipe.cxx
+++ /dev/null
@@ -1,1054 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-//------------------------------------------------------------------------
-// include files
-//------------------------------------------------------------------------
-
-#include <sal/cppunit.h>
-#include "test/uniquepipename.hxx"
-#include <sal/types.h>
-#include <rtl/ustring.hxx>
-
-#include <osl/thread.hxx>
-
-#include <osl/mutex.hxx>
-
-#include <osl/pipe.hxx>
-#include <osl/time.h>
-
-#ifdef UNX
-#include <unistd.h>
-#endif
-#include <string.h>
-
-using namespace osl;
-
-using ::rtl::OUString;
-using ::rtl::OUStringToOString;
-using ::rtl::OString;
-
-//------------------------------------------------------------------------
-// helper functions
-//------------------------------------------------------------------------
-
-/** print Boolean value.
- */
-inline void printBool( sal_Bool bOk )
-{
- printf("#printBool# " );
- ( sal_True == bOk ) ? printf("YES!\n" ): printf("NO!\n" );
-}
-
-/** print a UNI_CODE String.
- */
-inline void printUString( const ::rtl::OUString & str )
-{
- rtl::OString aString;
-
- printf("#printUString_u# " );
- aString = ::rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US );
- printf("%s\n", aString.getStr( ) );
-}
-
-/** print last error of pipe system.
- */
-inline void printPipeError( ::osl::Pipe aPipe )
-{
- oslPipeError nError = aPipe.getError( );
- printf("#printPipeError# " );
- switch ( nError ) {
- case osl_Pipe_E_None:
- printf("Success!\n" );
- break;
- case osl_Pipe_E_NotFound:
- printf("The returned error is: Not found!\n" );
- break;
- case osl_Pipe_E_AlreadyExists:
- printf("The returned error is: Already exist!\n" );
- break;
- case osl_Pipe_E_NoProtocol:
- printf("The returned error is: No protocol!\n" );
- break;
- case osl_Pipe_E_NetworkReset:
- printf("The returned error is: Network reset!\n" );
- break;
- case osl_Pipe_E_ConnectionAbort:
- printf("The returned error is: Connection aborted!\n" );
- break;
- case osl_Pipe_E_ConnectionReset:
- printf("The returned error is: Connection reset!\n" );
- break;
- case osl_Pipe_E_NoBufferSpace:
- printf("The returned error is: No buffer space!\n" );
- break;
- case osl_Pipe_E_TimedOut:
- printf("The returned error is: Timeout!\n" );
- break;
- case osl_Pipe_E_ConnectionRefused:
- printf("The returned error is: Connection refused!\n" );
- break;
- case osl_Pipe_E_invalidError:
- printf("The returned error is: Invalid error!\n" );
- break;
- default:
- printf("The returned error is: Number %d, Unknown Error\n", nError );
- break;
- }
-}
-
-
-
-//------------------------------------------------------------------------
-// pipe name and transfer contents
-//------------------------------------------------------------------------
-const rtl::OUString aTestPipeName(RTL_CONSTASCII_USTRINGPARAM("testpipe2"));
-const rtl::OUString aTestPipe1(RTL_CONSTASCII_USTRINGPARAM("testpipe1"));
-const rtl::OUString aTestString(RTL_CONSTASCII_USTRINGPARAM("Sun Microsystems"));
-
-const OString m_pTestString1("Sun Microsystems");
-const OString m_pTestString2("test pipe PASS/OK");
-
-//------------------------------------------------------------------------
-// test code start here
-//------------------------------------------------------------------------
-
-namespace osl_Pipe
-{
-
-//------------------------------------------------------------------------
-// most return value -1 denote a fail of operation.
-//------------------------------------------------------------------------
-#define OSL_PIPE_FAIL -1
-
- /** testing the methods:
- inline Pipe();
- inline Pipe(const ::rtl::OUString& strName, oslPipeOptions Options);
- inline Pipe(const ::rtl::OUString& strName, oslPipeOptions Options,const Security & rSecurity);
- inline Pipe(const Pipe& pipe);
- inline Pipe(oslPipe pipe, __sal_NoAcquire noacquire );
- inline Pipe(oslPipe Pipe);
- */
- class ctors : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void setUp( )
- {
- }
-
- void tearDown( )
- {
- }
-
- void ctors_none( )
- {
- ::osl::Pipe aPipe;
- bRes = aPipe.is( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test constructor with no parameter, yet no case to test.",
- sal_False == bRes );
- }
-
- void ctors_name_option( )
- {
- /// create a named pipe.
- ::osl::Pipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- ::osl::Pipe aAssignPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_OPEN );
-
- bRes = aPipe.is( ) && aAssignPipe.is( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test constructor with name and option.",
- sal_True == bRes );
- }
-
- void ctors_name_option_security( )
- {
- /// create a security pipe.
- const ::osl::Security rSecurity;
- ::osl::Pipe aSecurityPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE, rSecurity );
-
- bRes = aSecurityPipe.is( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test constructor with name, option and security, the test of security is not implemented yet.",
- sal_True == bRes );
- }
-
- void ctors_copy( )
- {
- /// create a pipe.
- ::osl::Pipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- /// create a pipe using copy constructor.
- ::osl::Pipe aCopyPipe( aPipe );
-
- bRes = aCopyPipe.is( ) && aCopyPipe == aPipe;
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test copy constructor.",
- sal_True == bRes );
- }
-
- /** tester comment:
-
- When test the following two constructors, don't know how to test the
- acquire and no acquire action. possible plans:
- 1.release one handle and check the other( did not success since the
- other still exist and valid. )
- 2. release one handle twice to see getLastError( )(the getLastError
- always returns invalidError(LINUX)).
- */
-
- void ctors_no_acquire( )
- {
- /// create a pipe.
- ::osl::Pipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- /// constructs a pipe reference without acquiring the handle.
- ::osl::Pipe aNoAcquirePipe( aPipe.getHandle( ), SAL_NO_ACQUIRE );
-
- bRes = aNoAcquirePipe.is( );
- ///aPipe.clear( );
- ///bRes1 = aNoAcquirePipe.is( );
-
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test constructor with no aquire of handle, only validation test, do not know how to test no acquire.",
- sal_True == bRes );
- }
-
- void ctors_acquire( )
- {
- /// create a base pipe.
- ::osl::Pipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- /// constructs two pipes without acquiring the handle on the base pipe.
- ::osl::Pipe aAcquirePipe( aPipe.getHandle( ) );
- ::osl::Pipe aAcquirePipe1( NULL );
-
- bRes = aAcquirePipe.is( );
- bRes1 = aAcquirePipe1.is( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test constructor with no aquire of handle.only validation test, do not know how to test no acquire.",
- sal_True == bRes && sal_False == bRes1 );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_none );
- CPPUNIT_TEST( ctors_name_option );
- CPPUNIT_TEST( ctors_name_option_security );
- CPPUNIT_TEST( ctors_copy );
- CPPUNIT_TEST( ctors_no_acquire );
- CPPUNIT_TEST( ctors_acquire );
- CPPUNIT_TEST_SUITE_END( );
- }; // class ctors
-
-
- /** testing the method:
- inline sal_Bool SAL_CALL is() const;
- */
- class is : public CppUnit::TestFixture
- {
- public:
- void is_001( )
- {
- ::osl::Pipe aPipe;
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test is(), check if the pipe is a valid one.", sal_False == aPipe.is( ) );
- }
-
- void is_002( )
- {
- ::osl::Pipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test is(), a normal pipe creation.", sal_True == aPipe.is( ) );
- }
-
- void is_003( )
- {
- ::osl::Pipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- aPipe.clear( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test is(), an invalid case.", sal_False == aPipe.is( ) );
- }
-
- void is_004( )
- {
- ::osl::Pipe aPipe( NULL );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test is(), an invalid constructor.", sal_False == aPipe.is( ) );
- }
-
- CPPUNIT_TEST_SUITE( is );
- CPPUNIT_TEST( is_001 );
- CPPUNIT_TEST( is_002 );
- CPPUNIT_TEST( is_003 );
- CPPUNIT_TEST( is_004 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class is
-
-
- /** testing the methods:
- inline sal_Bool create( const ::rtl::OUString & strName,
- oslPipeOptions Options, const Security &rSec );
- nline sal_Bool create( const ::rtl::OUString & strName,
- oslPipeOptions Options = osl_Pipe_OPEN );
- */
- class create : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- /** tester comment:
-
- security create only be tested creation, security section is
- untested yet.
- */
-
- void create_named_security_001( )
- {
- const Security rSec;
- ::osl::Pipe aPipe;
- bRes = aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE, rSec );
- bRes1 = aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE, rSec );
- aPipe.clear( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test creation.",
- sal_True == bRes && sal_False == bRes1);
- }
-
- void create_named_security_002( )
- {
- const Security rSec;
- ::osl::Pipe aPipe, aPipe1;
- bRes = aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE, rSec );
- bRes1 = aPipe1.create( test::uniquePipeName(aTestPipeName), osl_Pipe_OPEN, rSec );
- aPipe.clear( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test creation and open.",
- sal_True == bRes && sal_True == bRes1);
- }
-
- void create_named_001( )
- {
- ::osl::Pipe aPipe;
- bRes = aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- bRes1 = aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- aPipe.clear( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test creation.",
- sal_True == bRes && sal_False == bRes1);
- }
-
- void create_named_002( )
- {
- ::osl::Pipe aPipe, aPipe1;
- bRes = aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- bRes1 = aPipe1.create( test::uniquePipeName(aTestPipeName), osl_Pipe_OPEN );
- aPipe.clear( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test creation and open.",
- sal_True == bRes && sal_True == bRes1);
- }
-
- void create_named_003( )
- {
- ::osl::Pipe aPipe;
- bRes = aPipe.create( test::uniquePipeName(aTestPipeName) );
- aPipe.clear( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test default option is open.",
- sal_False == bRes );
- }
-
- CPPUNIT_TEST_SUITE( create );
- CPPUNIT_TEST( create_named_security_001 );
- CPPUNIT_TEST( create_named_security_002 );
- CPPUNIT_TEST( create_named_001 );
- CPPUNIT_TEST( create_named_002 );
- CPPUNIT_TEST( create_named_003 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class create
-
-
- /** testing the method:
- inline void SAL_CALL clear();
- */
- class clear : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void clear_001( )
- {
- ::osl::Pipe aPipe;
- aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- aPipe.clear( );
- bRes = aPipe.is( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test clear.",
- sal_False == bRes );
- }
-
- CPPUNIT_TEST_SUITE( clear );
- CPPUNIT_TEST( clear_001 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class clear
-
-
- /** testing the methods:
- inline Pipe& SAL_CALL operator= (const Pipe& pipe);
- inline Pipe& SAL_CALL operator= (const oslPipe pipe );
- */
- class assign : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void assign_ref( )
- {
- ::osl::Pipe aPipe, aPipe1;
- aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- aPipe1 = aPipe;
- bRes = aPipe1.is( );
- bRes1 = aPipe == aPipe1;
- aPipe.close( );
- aPipe1.close( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test assign with reference.",
- sal_True == bRes && sal_True == bRes1 );
- }
-
- void assign_handle( )
- {
- ::osl::Pipe aPipe, aPipe1;
- aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- aPipe1 = aPipe.getHandle( );
- bRes = aPipe1.is( );
- bRes1 = aPipe == aPipe1;
- aPipe.close( );
- aPipe1.close( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test assign with handle.",
- sal_True == bRes && sal_True == bRes1 );
- }
-
- CPPUNIT_TEST_SUITE( assign );
- CPPUNIT_TEST( assign_ref );
- CPPUNIT_TEST( assign_handle );
- CPPUNIT_TEST_SUITE_END( );
- }; // class assign
-
-
- /** testing the method:
- inline sal_Bool SAL_CALL isValid() const;
- isValid( ) has not been implemented under the following platforms, please refer to osl/pipe.hxx
- */
- /*class isValid : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void isValid_001( )
- {
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: isValid() has not been implemented on all platforms.",
- sal_False );
- }
-
- CPPUNIT_TEST_SUITE( isValid );
- CPPUNIT_TEST( isValid_001 );
- CPPUNIT_TEST_SUITE_END( );
- };*/ // class isValid
-
-
- /** testing the method:
- inline sal_Bool SAL_CALL operator==( const Pipe& rPipe ) const;
- */
- class isEqual : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void isEqual_001( )
- {
- ::osl::Pipe aPipe;
- aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- bRes = aPipe == aPipe;
- aPipe.close( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test isEqual(), compare its self.",
- sal_True == bRes );
- }
-
- void isEqual_002( )
- {
- ::osl::Pipe aPipe, aPipe1, aPipe2;
- aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
-
- aPipe1 = aPipe;
- aPipe2.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
-
- bRes = aPipe == aPipe1;
- bRes1 = aPipe == aPipe2;
- aPipe.close( );
- aPipe1.close( );
- aPipe2.close( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test isEqual(),create one copy instance, and compare.",
- sal_True == bRes && sal_False == bRes1 );
- }
-
- CPPUNIT_TEST_SUITE( isEqual );
- CPPUNIT_TEST( isEqual_001 );
- CPPUNIT_TEST( isEqual_002 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class isEqual
-
-
- /** testing the method:
- inline void SAL_CALL close();
- */
- class close : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void close_001( )
- {
- ::osl::Pipe aPipe( test::uniquePipeName(aTestPipe1), osl_Pipe_CREATE );
- aPipe.close( );
- bRes = aPipe.is( );
-
- aPipe.clear( );
- bRes1 = aPipe.is( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: difference between close and clear.",
- sal_True == bRes && sal_False == bRes1);
- }
-
- void close_002( )
- {
- ::osl::StreamPipe aPipe( test::uniquePipeName(aTestPipe1), osl_Pipe_CREATE );
- aPipe.close( );
- int nRet = aPipe.send( m_pTestString1.getStr(), 3 );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: use after close.",
- OSL_PIPE_FAIL == nRet );
- }
-
- CPPUNIT_TEST_SUITE( close );
- CPPUNIT_TEST( close_001 );
- CPPUNIT_TEST( close_002 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class close
-
-
- /** testing the method:
- inline oslPipeError SAL_CALL accept(StreamPipe& Connection);
- please refer to StreamPipe::recv
- */
- /* class accept : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void accept_001( )
- {
-
- // CPPUNIT_ASSERT_MESSAGE( "#test comment#: accept, untested.", 1 == 1 );
- //CPPUNIT_ASSERT_STUB();
- }
-
- CPPUNIT_TEST_SUITE( accept );
- CPPUNIT_TEST( accept_001 );
- CPPUNIT_TEST_SUITE_END( );
- };*/ // class accept
-
-
- /** testing the method:
- inline oslPipeError SAL_CALL getError() const;
- */
- class getError : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
- /*
- PipeError[]= {
- { 0, osl_Pipe_E_None }, // no error
- { EPROTOTYPE, osl_Pipe_E_NoProtocol }, // Protocol wrong type for socket
- { ENOPROTOOPT, osl_Pipe_E_NoProtocol }, // Protocol not available
- { EPROTONOSUPPORT, osl_Pipe_E_NoProtocol }, // Protocol not supported
- { ESOCKTNOSUPPORT, osl_Pipe_E_NoProtocol }, // Socket type not supported
- { EPFNOSUPPORT, osl_Pipe_E_NoProtocol }, // Protocol family not supported
- { EAFNOSUPPORT, osl_Pipe_E_NoProtocol }, // Address family not supported by
- // protocol family
- { ENETRESET, osl_Pipe_E_NetworkReset }, // Network dropped connection because
- // of reset
- { ECONNABORTED, osl_Pipe_E_ConnectionAbort }, // Software caused connection abort
- { ECONNRESET, osl_Pipe_E_ConnectionReset }, // Connection reset by peer
- { ENOBUFS, osl_Pipe_E_NoBufferSpace }, // No buffer space available
- { ETIMEDOUT, osl_Pipe_E_TimedOut }, // Connection timed out
- { ECONNREFUSED, osl_Pipe_E_ConnectionRefused }, // Connection refused
- { -1, osl_Pipe_E_invalidError }
- };
- did not define osl_Pipe_E_NotFound, osl_Pipe_E_AlreadyExists
- */
-
- void getError_001( )
- {
- ::osl::Pipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_OPEN );
- oslPipeError nError = aPipe.getError( );
- printPipeError( aPipe );
- aPipe.clear( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: open a non-exist pipe.",
- nError != osl_Pipe_E_None );
- }
-
- void getError_002( )
- {
- ::osl::Pipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- ::osl::Pipe aPipe1( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- oslPipeError nError = aPipe.getError( );
- printPipeError( aPipe );
- aPipe.clear( );
- aPipe1.clear( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: create an already exist pipe.",
- nError != osl_Pipe_E_None );
- }
-
- CPPUNIT_TEST_SUITE( getError );
- CPPUNIT_TEST( getError_001 );
- CPPUNIT_TEST( getError_002 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class getError
-
-
- /** testing the method:
- inline oslPipe SAL_CALL getHandle() const;
- */
- class getHandle : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void getHandle_001( )
- {
- ::osl::Pipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_OPEN );
- bRes = aPipe == aPipe.getHandle( );
- aPipe.clear( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: one pipe should equal to its handle.",
- sal_True == bRes );
- }
-
- void getHandle_002( )
- {
- ::osl::Pipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- ::osl::Pipe aPipe1( aPipe.getHandle( ) );
- bRes = aPipe == aPipe1;
- aPipe.clear( );
- aPipe1.clear( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: one pipe derived from another pipe's handle.",
- sal_True == bRes );
- }
-
- CPPUNIT_TEST_SUITE( getHandle );
- CPPUNIT_TEST( getHandle_001 );
- CPPUNIT_TEST( getHandle_002 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class getHandle
-
-
-// -----------------------------------------------------------------------------
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::ctors);
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::is);
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::create);
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::clear);
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::assign);
-//CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::isValid);
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::isEqual);
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::close);
- //CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::accept);
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::getError);
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::getHandle);
-// -----------------------------------------------------------------------------
-
-} // namespace osl_Pipe
-
-
-namespace osl_StreamPipe
-{
-
- /** testing the methods:
- inline StreamPipe();
- inline StreamPipe(oslPipe Pipe);;
- inline StreamPipe(const StreamPipe& Pipe);
- inline StreamPipe(const ::rtl::OUString& strName, oslPipeOptions Options = osl_Pipe_OPEN);
- inline StreamPipe(const ::rtl::OUString& strName, oslPipeOptions Options, const Security &rSec );
- inline StreamPipe( oslPipe pipe, __sal_NoAcquire noacquire );
- */
- class ctors : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void ctors_none( )
- {
- // create a pipe.
- ::osl::StreamPipe aStreamPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- // create an unattached pipe.
- ::osl::StreamPipe aStreamPipe1;
- bRes = aStreamPipe1.is( );
-
- // assign it and check.
- aStreamPipe1 = aStreamPipe;
- bRes1 = aStreamPipe1.is( );
- aStreamPipe.clear( );
- aStreamPipe1.clear( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test constructor with no parameter, before and after assign.",
- sal_False == bRes && sal_True == bRes1 );
- }
-
- void ctors_handle( )
- {
- // create a pipe.
- ::osl::StreamPipe aStreamPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- // create a pipe with last handle.
- ::osl::StreamPipe aStreamPipe1( aStreamPipe.getHandle( ) );
- bRes = aStreamPipe1.is( ) && aStreamPipe == aStreamPipe1;
- aStreamPipe.clear( );
- aStreamPipe1.clear( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test constructor with other's handle.",
- sal_True == bRes );
- }
-
- void ctors_copy( )
- {
- // create a pipe.
- ::osl::StreamPipe aStreamPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- // create an unattached pipe.
- ::osl::StreamPipe aStreamPipe1( aStreamPipe );
- bRes = aStreamPipe1.is( ) && aStreamPipe == aStreamPipe1;
- aStreamPipe.clear( );
- aStreamPipe1.clear( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test copy constructor.",
- sal_True == bRes );
- }
-
- void ctors_name_option( )
- {
- // create a pipe.
- ::osl::StreamPipe aStreamPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- // create an unattached pipe.
- ::osl::StreamPipe aStreamPipe1( test::uniquePipeName(aTestPipeName), osl_Pipe_OPEN );
- bRes = aStreamPipe1.is( ) && aStreamPipe.is( );
- aStreamPipe.clear( );
- aStreamPipe1.clear( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test constructor with name and option.",
- sal_True == bRes );
- }
-
- void ctors_name_option_security( )
- {
- /// create a security pipe.
- const ::osl::Security rSecurity;
- ::osl::StreamPipe aSecurityPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE, rSecurity );
-
- bRes = aSecurityPipe.is( );
- aSecurityPipe.clear( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test constructor with name, option and security, the test of security is not implemented yet.",
- sal_True == bRes );
- }
-
- /** tester comment:
-
- When test the following constructor, don't know how to test the
- acquire and no acquire action. possible plans:
- 1.release one handle and check the other( did not success since the
- other still exist and valid. )
- 2. release one handle twice to see getLastError( )(the getLastError
- always returns invalidError(LINUX)).
- */
-
- void ctors_no_acquire( )
- {
- // create a pipe.
- ::osl::StreamPipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- // constructs a pipe reference without acquiring the handle.
- ::osl::StreamPipe aNoAcquirePipe( aPipe.getHandle( ), SAL_NO_ACQUIRE );
-
- bRes = aNoAcquirePipe.is( );
- aPipe.clear( );
- // bRes1 = aNoAcquirePipe.is( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test constructor with no aquire of handle, only validation test, do not know how to test no acquire.",
- sal_True == bRes );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_none );
- CPPUNIT_TEST( ctors_handle );
- CPPUNIT_TEST( ctors_copy );
- CPPUNIT_TEST( ctors_name_option );
- CPPUNIT_TEST( ctors_name_option_security );
- CPPUNIT_TEST( ctors_no_acquire );
- CPPUNIT_TEST_SUITE_END( );
- }; // class ctors
-
-
- /** testing the methods:
- inline StreamPipe & SAL_CALL operator=(oslPipe Pipe);
- inline StreamPipe& SAL_CALL operator=(const Pipe& pipe);
- mindy: not implementated in osl/pipe.hxx, so remove the cases
- */
- /*
- class assign : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void assign_ref( )
- {
- ::osl::StreamPipe aPipe, aPipe1;
- aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- aPipe1 = aPipe;
- bRes = aPipe1.is( );
- bRes1 = aPipe == aPipe1;
- aPipe.close( );
- aPipe1.close( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test assign with reference.",
- sal_True == bRes && sal_True == bRes1 );
- }
-
- void assign_handle( )
- {
- ::osl::StreamPipe * pPipe = new ::osl::StreamPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- ::osl::StreamPipe * pAssignPipe = new ::osl::StreamPipe;
- *pAssignPipe = pPipe->getHandle( );
-
- bRes = pAssignPipe->is( );
- bRes1 = ( *pPipe == *pAssignPipe );
- pPipe->close( );
-
- delete pAssignPipe;
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test assign with handle., seems not implemented under (LINUX)(W32)",
- sal_True == bRes && sal_True == bRes1 );
- }
-
- CPPUNIT_TEST_SUITE( assign );
- CPPUNIT_TEST( assign_ref );
- CPPUNIT_TEST( assign_handle );
- CPPUNIT_TEST_SUITE_END( );
- };*/ // class assign
-
-
- /** wait _nSec seconds.
- */
- void thread_sleep( sal_Int32 _nSec )
- {
- /// print statement in thread process must use fflush() to force display.
- // printf("wait %d seconds. ", _nSec );
- fflush(stdout);
-
-#ifdef WNT //Windows
- Sleep( _nSec * 1000 );
-#endif
-#if ( defined UNX ) //Unix
- sleep( _nSec );
-#endif
- // printf("done\n" );
- }
- // test read/write & send/recv data to pipe
- // -----------------------------------------------------------------------------
-
- class Pipe_DataSink_Thread : public Thread
- {
- public:
- sal_Char buf[256];
- Pipe_DataSink_Thread( ) { }
-
- ~Pipe_DataSink_Thread( )
- {
- }
- protected:
- void SAL_CALL run( )
- {
- sal_Int32 nChars = 0;
-
- printf("open pipe\n");
- ::osl::StreamPipe aSenderPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_OPEN ); // test::uniquePipeName(aTestPipeName) is a string = "TestPipe"
- if ( aSenderPipe.is() == sal_False )
- {
- printf("pipe open failed! \n");
- }
- else
- {
- printf("read\n");
- nChars = aSenderPipe.read( buf, m_pTestString1.getLength() + 1 );
- if ( nChars < 0 )
- {
- printf("read failed! \n");
- return;
- }
- printf("buffer is %s \n", buf);
- printf("send\n");
- nChars = aSenderPipe.send( m_pTestString2.getStr(), m_pTestString2.getLength() + 1 );
- if ( nChars < 0 )
- {
- printf("client send failed! \n");
- return;
- }
- }
- }
-
- };
-
- // -----------------------------------------------------------------------------
-
- class Pipe_DataSource_Thread : public Thread
- {
- public:
- sal_Char buf[256];
- //::osl::StreamPipe aListenPipe; //( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- ::osl::Pipe aListenPipe;
- ::osl::StreamPipe aConnectionPipe;
- Pipe_DataSource_Thread( )
- {
- printf("create pipe\n");
- aListenPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- }
- ~Pipe_DataSource_Thread( )
- {
- aListenPipe.close();
- }
- protected:
- void SAL_CALL run( )
- {
- //create pipe.
- sal_Int32 nChars;
- //::osl::StreamPipe aListenPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
- printf("listen\n");
- if ( aListenPipe.is() == sal_False )
- {
- printf("pipe create failed! \n");
- }
- else
- {
- //::osl::StreamPipe aConnectionPipe;
-
- //start server and wait for connection.
- printf("accept\n");
- if ( osl_Pipe_E_None != aListenPipe.accept( aConnectionPipe ) )
- {
- printf("pipe accept failed!");
- return;
- }
- printf("write\n");
- // write to pipe
- nChars = aConnectionPipe.write( m_pTestString1.getStr(), m_pTestString1.getLength() + 1 );
- if ( nChars < 0)
- {
- printf("server write failed! \n");
- return;
- }
- printf("recv\n");
- nChars = aConnectionPipe.recv( buf, 256 );
-
- if ( nChars < 0)
- {
- printf("server receive failed! \n");
- return;
- }
- //thread_sleep( 2 );
- printf("received message is: %s\n", buf );
- //aConnectionPipe.close();
- }
- }
- };
-
- /** testing the method: read/write/send/recv and Pipe::accept
- */
- class recv : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void recv_001( )
- {
- //launch threads.
- Pipe_DataSource_Thread myDataSourceThread;
- Pipe_DataSink_Thread myDataSinkThread;
- myDataSourceThread.create( );
- thread_sleep( 1 );
- myDataSinkThread.create( );
-
- //wait until the thread terminate
- myDataSinkThread.join( );
- myDataSourceThread.join( );
-
- int nCompare1 = strcmp( myDataSinkThread.buf, m_pTestString1.getStr() );
- int nCompare2 = strcmp( myDataSourceThread.buf, m_pTestString2.getStr() );
- CPPUNIT_ASSERT_MESSAGE( "test send/recv/write/read.", nCompare1 == 0 && nCompare2 == 0 );
- }
- //close pipe when accept
- void recv_002()
- {
- thread_sleep( 1 );
-
- Pipe_DataSource_Thread myDataSourceThread;
- Pipe_DataSink_Thread myDataSinkThread;
- myDataSourceThread.create( );
- thread_sleep( 1 );
- myDataSourceThread.aListenPipe.close();
- myDataSourceThread.join( );
- //no condition judgement here, if the case could finish excuting within 1 or 2 seconds, it passes.
- }
-
- CPPUNIT_TEST_SUITE( recv );
- CPPUNIT_TEST( recv_001 );
- CPPUNIT_TEST( recv_002 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class recv
-
-// -----------------------------------------------------------------------------
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_StreamPipe::ctors);
-//CPPUNIT_TEST_SUITE_REGISTRATION(osl_StreamPipe::assign);
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_StreamPipe::recv);
-// -----------------------------------------------------------------------------
-
-} // namespace osl_StreamPipe
-
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/process/batch.bat b/sal/qa/osl/process/batch.bat
deleted file mode 100755
index 7a47559e9..000000000
--- a/sal/qa/osl/process/batch.bat
+++ /dev/null
@@ -1,2 +0,0 @@
-@echo off
-echo "Hello world" \ No newline at end of file
diff --git a/sal/qa/osl/process/batch.sh b/sal/qa/osl/process/batch.sh
deleted file mode 100755
index fd3828c6a..000000000
--- a/sal/qa/osl/process/batch.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-echo "Hello world" \ No newline at end of file
diff --git a/sal/qa/osl/process/makefile.mk b/sal/qa/osl/process/makefile.mk
deleted file mode 100644
index 73360cbd0..000000000
--- a/sal/qa/osl/process/makefile.mk
+++ /dev/null
@@ -1,81 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..$/..
-
-PRJNAME=sal
-TARGET=qa_osl_process
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-.IF "$(COM)" == "MSC"
- CFLAGS+=/Ob1
-.ENDIF
-
-SHL1OBJS=$(SLO)$/osl_Thread.obj
-SHL1TARGET=osl_Thread
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-SHL1IMPLIB=i$(SHL1TARGET)
-DEF1NAME=$(SHL1TARGET)
-SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
-
-SHL2OBJS=$(SLO)$/osl_process.obj
-SHL2TARGET=osl_process
-SHL2STDLIBS= $(SALLIB) $(CPPUNITLIB)
-SHL2IMPLIB=i$(SHL2TARGET)
-DEF2NAME=$(SHL2TARGET)
-SHL2VERSIONMAP = $(PRJ)$/qa$/export.map
-
-OBJ3FILES=$(OBJ)$/osl_process_child.obj
-APP3TARGET=osl_process_child
-APP3OBJS=$(OBJ3FILES)
-APP3STDLIBS=$(SALLIB)
-
-SHL2DEPN=$(APP3TARGETN) \
- $(BIN)/batch.sh \
- $(BIN)/batch.bat
-
-#------------------------------- All object files -------------------------------
-SLOFILES=$(SHL1OBJS) $(SHL2OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
-$(BIN)/batch.sh: batch.sh
- $(COPY) $< $@
-
-$(BIN)/batch.bat: batch.bat
- $(COPY) $< $@
-
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/osl/process/osl_Thread.cxx b/sal/qa/osl/process/osl_Thread.cxx
deleted file mode 100644
index de0589f45..000000000
--- a/sal/qa/osl/process/osl_Thread.cxx
+++ /dev/null
@@ -1,2208 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#ifdef IOS
-#define CPPUNIT_PLUGIN_EXPORTED_NAME cppunitTest_osl_Thread
-#endif
-
-#ifdef WNT
-#define NOMINMAX
-#include <windows.h>
-#else
-#include <unistd.h>
-#include <time.h>
-#endif
-
-//------------------------------------------------------------------------
-// include files
-//------------------------------------------------------------------------
-#include <sal/types.h>
-
-#include <rtl/string.hxx>
-
-#include <rtl/strbuf.hxx>
-
-#include <osl/thread.hxx>
-
-#include <osl/mutex.hxx>
-#include <osl/time.h>
-
-#include <string.h>
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#define t_print printf
-
-using namespace osl;
-
-using ::rtl::OString;
-
-// -----------------------------------------------------------------------------
-// Kleine Stopuhr
-class StopWatch {
- TimeValue t1,t2; // Start und Stopzeit
-
-protected:
- sal_Int32 m_nNanoSec;
- sal_Int32 m_nSeconds;
-
- bool m_bIsValid; // TRUE, wenn gestartet und gestoppt
- bool m_bIsRunning; // TRUE, wenn gestartet.
-
-public:
- StopWatch();
- ~StopWatch() {}
-
- void start(); // Startet Timer
- void stop(); // Stoppt Timer
-
- double getSeconds() const;
- double getTenthSec() const;
-};
-
-// ================================= Stop Watch =================================
-
-// Eine kleine Stop-Uhr fuer den internen Gebrauch.
-// (c) Lars Langhans 29.12.1996 22:10
-
-StopWatch::StopWatch():m_bIsValid(false),m_bIsRunning(false) {}
-
-void StopWatch::start()
-{
-// pre: %
-// post: Start Timer
-
- m_bIsValid = false;
- m_bIsRunning = true;
- osl_getSystemTime( &t1 );
- t_print("# %u %u nsecs\n", (unsigned)t1.Seconds, (unsigned)t1.Nanosec);
- // gettimeofday(&t1, 0);
-}
-
-void StopWatch::stop()
-{
-// pre: Timer should be started
-// post: Timer will stopped
-
- // gettimeofday(&t2, 0); // Timer ausfragen
- osl_getSystemTime( &t2 );
- t_print("# %u %u nsecs\n", (unsigned) t2.Seconds, (unsigned) t2.Nanosec);
-
- if (m_bIsRunning)
- { // check ob gestartet.
- m_nSeconds = static_cast<sal_Int32>(t2.Seconds) - static_cast<sal_Int32>(t1.Seconds);
- if ( t2.Nanosec > t1.Nanosec )
- m_nNanoSec = static_cast<sal_Int32>(t2.Nanosec) - static_cast<sal_Int32>(t1.Nanosec);
- else
- {
- m_nNanoSec = 1000000000 + static_cast<sal_Int32>(t2.Nanosec) - static_cast<sal_Int32>(t1.Nanosec);
- m_nSeconds -= 1;
- }
- t_print("# %u %u nsecs\n", (unsigned) m_nSeconds, (unsigned) m_nNanoSec );
- //if (m_nNanoSec < 0)
- //{
- //m_nNanoSec += 1000000000;
- //m_nSeconds -= 1;
- //}
- m_bIsValid = true;
- m_bIsRunning = false;
- }
-}
-
-double StopWatch::getSeconds() const
-{
-// pre: gueltig = TRUE
-// BACK: Zeit in Sekunden.
-
- double nValue = 0.0;
- if (m_bIsValid)
- {
- nValue = double(m_nNanoSec) / 1000000000.0 + m_nSeconds; // milli micro nano
- }
- return nValue;
-}
-
-double StopWatch::getTenthSec() const
-{
- double nValue = 0.0;
- if (m_bIsValid)
- {
- nValue = double(m_nNanoSec) / 100000000.0 + m_nSeconds * 10;
- }
- return nValue ;
-}
-
-// -----------------------------------------------------------------------------
-template <class T>
-class ThreadSafeValue
-{
- T m_nFlag;
- Mutex m_aMutex;
-public:
- ThreadSafeValue(T n = 0): m_nFlag(n) {}
- T getValue()
- {
- //block if already acquired by another thread.
- osl::MutexGuard g(m_aMutex);
- return m_nFlag;
- }
- void addValue(T n)
- {
- //only one thread operate on the flag.
- osl::MutexGuard g(m_aMutex);
- m_nFlag += n;
- }
- void acquire() {m_aMutex.acquire();}
- void release() {m_aMutex.release();}
-};
-
-// -----------------------------------------------------------------------------
-namespace ThreadHelper
-{
- void thread_sleep_tenth_sec(sal_Int32 _nTenthSec)
- {
-#ifdef WNT
- Sleep(_nTenthSec * 100 );
-#else
- TimeValue nTV;
- nTV.Seconds = static_cast<sal_uInt32>( _nTenthSec/10 );
- nTV.Nanosec = ( (_nTenthSec%10 ) * 100000000 );
- osl_waitThread(&nTV);
-#endif
- }
-
- void outputPriority(oslThreadPriority const& _aPriority)
- {
- // LLA: output the priority
- if (_aPriority == osl_Thread_PriorityHighest)
- {
- t_print("Prio is High\n");
- }
- else if (_aPriority == osl_Thread_PriorityAboveNormal)
- {
- t_print("Prio is above normal\n");
- }
- else if (_aPriority == osl_Thread_PriorityNormal)
- {
- t_print("Prio is normal\n");
- }
- else if (_aPriority == osl_Thread_PriorityBelowNormal)
- {
- t_print("Prio is below normal\n");
- }
- else if (_aPriority == osl_Thread_PriorityLowest)
- {
- t_print("Prio is lowest\n");
- }
- else
- {
- t_print("Prio is unknown\n");
- }
- }
-}
-
-/** Simple thread for testing Thread-create.
-
- Just add 1 of value 0, and after running, result is 1.
- */
-class myThread : public Thread
-{
- ThreadSafeValue<sal_Int32> m_aFlag;
-public:
- sal_Int32 getValue() { return m_aFlag.getValue(); }
-protected:
- /** guarded value which initialized 0
-
- @see ThreadSafeValue
- */
- void SAL_CALL run()
- {
- while(schedule())
- {
- m_aFlag.addValue(1);
- ThreadHelper::thread_sleep_tenth_sec(1);
- }
- }
-
-public:
-
- virtual void SAL_CALL suspend()
- {
- m_aFlag.acquire();
- ::osl::Thread::suspend();
- m_aFlag.release();
- }
-
- ~myThread()
- {
- if (isRunning())
- {
- t_print("error: not terminated.\n");
- }
- }
-
-};
-
-// -----------------------------------------------------------------------------
-/** Thread which has a flag add 1 every second until 20
- */
-class OCountThread : public Thread
-{
- ThreadSafeValue<sal_Int32> m_aFlag;
-public:
- OCountThread()
- {
- m_nWaitSec = 0;
- t_print("new OCountThread thread %u!\n", (unsigned) getIdentifier());
- }
- sal_Int32 getValue() { return m_aFlag.getValue(); }
-
- void setWait(sal_Int32 nSec)
- {
- m_nWaitSec = nSec;
- //m_bWait = sal_True;
- }
-
- virtual void SAL_CALL suspend()
- {
- m_aFlag.acquire();
- ::osl::Thread::suspend();
- m_aFlag.release();
- }
-
-protected:
- //sal_Bool m_bWait;
- sal_Int32 m_nWaitSec;
-
- void SAL_CALL run()
- {
- /// if the thread should terminate, schedule return false
- while (m_aFlag.getValue() < 20 && schedule() == sal_True)
- {
- m_aFlag.addValue(1);
- ThreadHelper::thread_sleep_tenth_sec(1);
-
- if (m_nWaitSec != 0)
- {
- TimeValue nTV;
- nTV.Seconds = m_nWaitSec / 10 ;
- nTV.Nanosec = ( m_nWaitSec%10 ) * 100000000 ;
- wait( nTV );
- m_nWaitSec = 0;
- }
- }
- }
- void SAL_CALL onTerminated()
- {
- t_print("normally terminate this thread %u!\n", (unsigned) getIdentifier());
- }
-public:
-
- ~OCountThread()
- {
- if (isRunning())
- {
- t_print("error: not terminated.\n");
- }
- }
-
-};
-
-/** call suspend in the run method
-*/
-class OSuspendThread : public Thread
-{
- ThreadSafeValue<sal_Int32> m_aFlag;
-public:
- OSuspendThread(){ m_bSuspend = sal_False; }
- sal_Int32 getValue() { return m_aFlag.getValue(); }
- void setSuspend()
- {
- m_bSuspend = sal_True;
- }
- virtual void SAL_CALL suspend()
- {
- m_aFlag.acquire();
- ::osl::Thread::suspend();
- m_aFlag.release();
- }
-protected:
- sal_Bool m_bSuspend;
- void SAL_CALL run()
- {
- //if the thread should terminate, schedule return false
- while (schedule() == sal_True)
- {
- m_aFlag.addValue(1);
-
- ThreadHelper::thread_sleep_tenth_sec(1);
- if (m_bSuspend == sal_True)
- {
- suspend();
- m_bSuspend = sal_False;
- }
- }
- }
-public:
-
- ~OSuspendThread()
- {
- if (isRunning())
- {
- t_print("error: not terminated.\n");
- }
- }
-
-};
-
-/** no call schedule in the run method
-*/
-class ONoScheduleThread : public Thread
-{
- ThreadSafeValue<sal_Int32> m_aFlag;
-public:
- sal_Int32 getValue() { return m_aFlag.getValue(); }
-
- virtual void SAL_CALL suspend()
- {
- m_aFlag.acquire();
- ::osl::Thread::suspend();
- m_aFlag.release();
- }
-protected:
- void SAL_CALL run()
- {
- while (m_aFlag.getValue() < 10)
- {
- m_aFlag.addValue(1);
- ThreadHelper::thread_sleep_tenth_sec(1);
- }
- }
- void SAL_CALL onTerminated()
- {
- t_print("normally terminate this thread %u!\n", (unsigned) getIdentifier());
- }
-public:
- ONoScheduleThread()
- {
- t_print("new thread id %u!\n", (unsigned) getIdentifier());
- }
- ~ONoScheduleThread()
- {
- if (isRunning())
- {
- t_print("error: not terminated.\n");
- }
- }
-
-};
-
-/**
-*/
-class OAddThread : public Thread
-{
- ThreadSafeValue<sal_Int32> m_aFlag;
-public:
- //oslThreadIdentifier m_id, m_CurId;
- OAddThread(){}
- sal_Int32 getValue() { return m_aFlag.getValue(); }
-
- virtual void SAL_CALL suspend()
- {
- m_aFlag.acquire();
- ::osl::Thread::suspend();
- m_aFlag.release();
- }
-protected:
- void SAL_CALL run()
- {
- //if the thread should terminate, schedule return false
- while (schedule() == sal_True)
- {
- m_aFlag.addValue(1);
- }
- }
- void SAL_CALL onTerminated()
- {
- // t_print("normally terminate this thread %d!\n", getIdentifier());
- }
-public:
-
- ~OAddThread()
- {
- if (isRunning())
- {
- // t_print("error: not terminated.\n");
- }
- }
-
-};
-
-namespace osl_Thread
-{
-
- void resumeAndWaitThread(Thread* _pThread)
- {
- // This functions starts a thread, wait a second and suspends the thread
- // Due to the fact, that a suspend and never run thread never really exists.
-
- // Note: on UNX, after createSuspended, and then terminate the thread, it performs well;
- // while on Windows, after createSuspended, the thread can not terminate, wait endlessly,
- // so here call resume at first, then call terminate.
-#ifdef WNT
- t_print("resumeAndWaitThread\n");
- _pThread->resume();
- ThreadHelper::thread_sleep_tenth_sec(1);
-#else
- _pThread->resume();
-#endif
- }
-
- // kill a running thread and join it, if it has terminated, do nothing
- void termAndJoinThread(Thread* _pThread)
- {
- _pThread->terminate();
-
-// LLA: Windows feature???, a suspended thread can not terminated, so we have to weak it up
-#ifdef WNT
- _pThread->resume();
- ThreadHelper::thread_sleep_tenth_sec(1);
-#endif
- t_print("#wait for join.\n");
- _pThread->join();
- }
-/** Test of the osl::Thread::create method
- */
-
- class create : public CppUnit::TestFixture
- {
- public:
-
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- /** Simple create a thread.
-
- Create a simple thread, it just does add 1 to value(which initialized 0),
- if the thread run, the value should be 1.
- */
- void create_001()
- {
- myThread* newthread = new myThread();
- sal_Bool bRes = newthread->create();
- CPPUNIT_ASSERT_MESSAGE("Can not creates a new thread!\n", bRes == sal_True );
-
- ThreadHelper::thread_sleep_tenth_sec(1); // wait short
- sal_Bool isRunning = newthread->isRunning(); // check if thread is running
- /// wait for the new thread to assure it has run
- ThreadHelper::thread_sleep_tenth_sec(3);
- sal_Int32 nValue = newthread->getValue();
- /// to assure the new thread has terminated
- termAndJoinThread(newthread);
- delete newthread;
-
- t_print(" nValue = %d\n", (int) nValue);
- t_print("isRunning = %s\n", isRunning == sal_True ? "true" : "false");
-
- CPPUNIT_ASSERT_MESSAGE(
- "Creates a new thread",
- nValue >= 1 && isRunning == sal_True
- );
-
- }
-
- /** only one running thread per instance, return false if create secondly
- */
- void create_002()
- {
- myThread* newthread = new myThread();
- sal_Bool res1 = newthread->create();
- sal_Bool res2 = newthread->create();
- t_print("In non pro, an assertion should occurred. This behaviour is right.\n");
- termAndJoinThread(newthread);
- delete newthread;
-
- CPPUNIT_ASSERT_MESSAGE(
- "Creates a new thread: can not create two threads per instance",
- res1 && !res2
- );
-
- }
-
- CPPUNIT_TEST_SUITE(create);
- CPPUNIT_TEST(create_001);
- CPPUNIT_TEST(create_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class create
-
-
-
- /** Test of the osl::Thread::createSuspended method
- */
- class createSuspended : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- /** Create a suspended thread, use the same class as create_001
-
- after create, wait enough time, check the value, if it's still the initial value, pass
- */
- void createSuspended_001()
- {
- myThread* newthread = new myThread();
- sal_Bool bRes = newthread->createSuspended();
- CPPUNIT_ASSERT_MESSAGE("Can not creates a new thread!", bRes == sal_True );
-
- ThreadHelper::thread_sleep_tenth_sec(1);
- sal_Bool isRunning = newthread->isRunning();
- ThreadHelper::thread_sleep_tenth_sec(3);
- sal_Int32 nValue = newthread->getValue();
-
- resumeAndWaitThread(newthread);
-
- termAndJoinThread(newthread);
- delete newthread;
-
- CPPUNIT_ASSERT_MESSAGE(
- "Creates a new suspended thread",
- nValue == 0 && isRunning
- );
- }
-
- void createSuspended_002()
- {
- myThread* newthread = new myThread();
- sal_Bool res1 = newthread->createSuspended();
- sal_Bool res2 = newthread->createSuspended();
-
- resumeAndWaitThread(newthread);
-
- termAndJoinThread(newthread);
-
- delete newthread;
-
- CPPUNIT_ASSERT_MESSAGE(
- "Creates a new thread: can not create two threads per instance",
- res1 && !res2
- );
- }
-
- CPPUNIT_TEST_SUITE(createSuspended);
- CPPUNIT_TEST(createSuspended_001);
- // LLA: Deadlocked!!!
- CPPUNIT_TEST(createSuspended_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class createSuspended
-
- /** when the count value equal to or more than 3, suspend the thread.
- */
- void suspendCountThread(OCountThread* _pCountThread)
- {
- sal_Int32 nValue = 0;
- while (1)
- {
- nValue = _pCountThread->getValue();
- if (nValue >= 3)
- {
- _pCountThread->suspend();
- break;
- }
- }
- }
-
- /** Test of the osl::Thread::suspend method
- */
- class suspend : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- /** Use a thread which has a flag added 1 every second
-
- ALGORITHM:
- create the thread, after running special time, record value of flag, then suspend it,
- wait a long time, check the flag, if it remains unchanged during suspending
- */
- void suspend_001()
- {
- OCountThread* aCountThread = new OCountThread();
- sal_Bool bRes = aCountThread->create();
- CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
- // the thread run for some seconds, but not terminate
- suspendCountThread( aCountThread );
-
- // the value just after calling suspend
- sal_Int32 nValue = aCountThread->getValue(); // (2)
-
- ThreadHelper::thread_sleep_tenth_sec(3);
-
- // the value after waiting 3 seconds
- sal_Int32 nLaterValue = aCountThread->getValue(); // (3)
-
- resumeAndWaitThread(aCountThread);
- termAndJoinThread(aCountThread);
- delete aCountThread;
-
- CPPUNIT_ASSERT_MESSAGE(
- "Suspend the thread",
- bRes == sal_True && nValue == nLaterValue
- );
-
- }
- /** suspend a thread in it's worker-function, the ALGORITHM is same as suspend_001
- reason of deadlocked I think: no schedule can schedule other threads to go on excuting
- */
- void suspend_002()
- {
- OSuspendThread* aThread = new OSuspendThread();
- sal_Bool bRes = aThread->create();
- CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
- // first the thread run for some seconds, but not terminate
- sal_Int32 nValue = 0;
- //while (1)
- //{
- ThreadHelper::thread_sleep_tenth_sec(3);
- nValue = aThread->getValue(); // (1)
- t_print(" getValue is %d !", (int) nValue );
- if (nValue >= 2)
- {
- aThread->setSuspend();
- //break;
- }
- //}
- t_print(" after while!");
- // the value just after calling suspend
- nValue = aThread->getValue(); // (2)
-
- ThreadHelper::thread_sleep_tenth_sec(3);
- t_print(" after sleep!");
- // the value after waiting 3 seconds
- sal_Int32 nLaterValue = aThread->getValue(); // (3)
-
- //resumeAndWaitThread(aThread);
- aThread->resume();
- termAndJoinThread(aThread);
- delete aThread;
-
- CPPUNIT_ASSERT_MESSAGE(
- "Suspend the thread",
- bRes == sal_True && nValue == nLaterValue
- );
- }
-
- CPPUNIT_TEST_SUITE(suspend);
- CPPUNIT_TEST(suspend_001);
- // LLA: Deadlocked!!!
- // CPPUNIT_TEST(createSuspended_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class suspend
-
- /** Test of the osl::Thread::resume method
- */
- class resume : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- /** check if the thread run samely as usual after suspend and resume
-
- ALGORITHM:
- compare the values before and after suspend, they should be same,
- then compare values before and after resume, the difference should be same as the sleep seconds number
- */
- void resume_001()
- {
- OCountThread* pCountThread = new OCountThread();
- sal_Bool bRes = pCountThread->create();
- CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
-
- suspendCountThread(pCountThread);
-
- sal_Int32 nSuspendValue = pCountThread->getValue(); // (2)
- // suspend for 3 seconds
- ThreadHelper::thread_sleep_tenth_sec(3);
- pCountThread->resume();
-
- ThreadHelper::thread_sleep_tenth_sec(3);
- sal_Int32 nResumeValue = pCountThread->getValue();
-
- ThreadHelper::thread_sleep_tenth_sec(3);
- sal_Int32 nLaterValue = pCountThread->getValue();
-
- termAndJoinThread(pCountThread);
- delete pCountThread;
-
- t_print("SuspendValue: %d\n", (int) nSuspendValue);
- t_print("ResumeValue: %d\n", (int) nResumeValue);
- t_print("LaterValue: %d\n", (int) nLaterValue);
-
- /* LLA: this assumption is no longer relevant: nResumeValue == nSuspendValue && */
- CPPUNIT_ASSERT_MESSAGE(
- "Suspend then resume the thread",
- nLaterValue >= 9 &&
- nResumeValue > nSuspendValue &&
- nLaterValue > nResumeValue
- );
-
- }
-
- /** Create a suspended thread then resume, check if the thread has run
- */
- void resume_002()
- {
- myThread* newthread = new myThread();
- sal_Bool bRes = newthread->createSuspended();
- CPPUNIT_ASSERT_MESSAGE ( "Can't create thread!", bRes == sal_True );
-
- newthread->resume();
- ThreadHelper::thread_sleep_tenth_sec(2);
- sal_Int32 nValue = newthread->getValue();
-
- termAndJoinThread(newthread);
- delete newthread;
-
- t_print(" nValue = %d\n", (int) nValue);
-
- CPPUNIT_ASSERT_MESSAGE(
- "Creates a suspended thread, then resume",
- nValue >= 1
- );
- }
-
- CPPUNIT_TEST_SUITE(resume);
- CPPUNIT_TEST(resume_001);
- CPPUNIT_TEST(resume_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class resume
-
- /** Test of the osl::Thread::terminate method
- */
- class terminate : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- /** Check after call terminate if the running thread running go on executing
-
- ALGORITHM:
- before and after call terminate, the values should be the same
- */
- void terminate_001()
- {
- OCountThread* aCountThread = new OCountThread();
- sal_Bool bRes = aCountThread->create();
- CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
-
- ThreadHelper::thread_sleep_tenth_sec(2);
- sal_Int32 nValue = aCountThread->getValue();
- aCountThread->terminate();
- ThreadHelper::thread_sleep_tenth_sec(2);
- sal_Int32 nLaterValue = aCountThread->getValue();
-
- // isRunning should be false after terminate
- sal_Bool isRunning = aCountThread->isRunning();
- aCountThread->join();
- delete aCountThread;
-
- t_print(" nValue = %d\n", (int) nValue);
- t_print("nLaterValue = %d\n", (int) nLaterValue);
-
- CPPUNIT_ASSERT_MESSAGE(
- "Terminate the thread",
- isRunning == sal_False && nLaterValue >= nValue
- );
- }
- /** Check if a suspended thread will terminate after call terminate, different on w32 and on UNX
- */
- void terminate_002()
- {
- OCountThread* aCountThread = new OCountThread();
- sal_Bool bRes = aCountThread->create();
- CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
-
- ThreadHelper::thread_sleep_tenth_sec(1);
- suspendCountThread(aCountThread);
- sal_Int32 nValue = aCountThread->getValue();
-
- // seems a suspended thread can not be terminated on W32, while on Solaris can
- resumeAndWaitThread(aCountThread);
-
- ThreadHelper::thread_sleep_tenth_sec(2);
-
- termAndJoinThread(aCountThread);
- sal_Int32 nLaterValue = aCountThread->getValue();
- delete aCountThread;
-
- t_print(" nValue = %d\n", (int) nValue);
- t_print("nLaterValue = %d\n", (int) nLaterValue);
-
- CPPUNIT_ASSERT_MESSAGE(
- "Suspend then resume the thread",
- nLaterValue > nValue );
- }
-
- CPPUNIT_TEST_SUITE(terminate);
- CPPUNIT_TEST(terminate_001);
- CPPUNIT_TEST(terminate_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class terminate
-
- /** Test of the osl::Thread::join method
- */
- class join : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- /** Check after call terminate if the thread running function will not go on executing
-
- the next statement after join will not exec before the thread terminate
- ALGORITHM:
- recode system time at the beginning of the thread run, call join, then record system time again,
- the difference of the two time should be equal or more than 20 seconds, the CountThead normally terminate
- */
- void join_001()
- {
- OCountThread *aCountThread = new OCountThread();
- sal_Bool bRes = aCountThread->create();
- CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
-
- StopWatch aStopWatch;
- aStopWatch.start();
- // TimeValue aTimeVal_befor;
- // osl_getSystemTime( &aTimeVal_befor );
- //t_print("#join:the system time is %d,%d\n", pTimeVal_befor->Seconds,pTimeVal_befor->Nanosec);
-
- aCountThread->join();
-
- //the below line will be executed after aCountThread terminate
- // TimeValue aTimeVal_after;
- // osl_getSystemTime( &aTimeVal_after );
- aStopWatch.stop();
- // sal_uInt32 nSec = aTimeVal_after.Seconds - aTimeVal_befor.Seconds;
- double nSec = aStopWatch.getSeconds();
- t_print("join_001 nSec=%f\n", nSec);
- delete aCountThread;
-
- CPPUNIT_ASSERT_MESSAGE(
- "Join the thread: after the thread terminate",
- nSec >= 2
- );
-
- }
- /** after terminated by another thread, join exited immediately
-
- ALGORITHM:
- terminate the thread when value>=3, call join, check the beginning time and time after join,
- the difference should be 3 seconds, join costs little time
- */
- void join_002()
- {
- OCountThread *aCountThread = new OCountThread();
- sal_Bool bRes = aCountThread->create();
- CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
-
- //record the time when the running begin
- // TimeValue aTimeVal_befor;
- // osl_getSystemTime( &aTimeVal_befor );
- StopWatch aStopWatch;
- aStopWatch.start();
-
- ThreadHelper::thread_sleep_tenth_sec(10);
- termAndJoinThread(aCountThread);
-
- //the below line will be executed after aCountThread terminate
- // TimeValue aTimeVal_after;
- // osl_getSystemTime( &aTimeVal_after );
- // sal_uInt32 nSec = aTimeVal_after.Seconds - aTimeVal_befor.Seconds;
- aStopWatch.stop();
- double nSec = aStopWatch.getSeconds();
- t_print("join_002 nSec=%f\n", nSec);
-
- delete aCountThread;
- CPPUNIT_ASSERT_MESSAGE(
- "Join the thread: after thread terminate by another thread",
- nSec >= 1
- );
- }
-
- CPPUNIT_TEST_SUITE(join);
- CPPUNIT_TEST(join_001);
- CPPUNIT_TEST(join_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class join
-
- /** Test of the osl::Thread::isRunning method
- */
- class isRunning : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- /**
- */
- void isRunning_001()
- {
- OCountThread *aCountThread = new OCountThread();
- sal_Bool bRes = aCountThread->create();
- CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
-
- sal_Bool bRun = aCountThread->isRunning();
-
- ThreadHelper::thread_sleep_tenth_sec(2);
- termAndJoinThread(aCountThread);
- sal_Bool bTer = aCountThread->isRunning();
- delete aCountThread;
-
- CPPUNIT_ASSERT_MESSAGE(
- "Test isRunning",
- bRun == sal_True && bTer == sal_False
- );
- }
- /** check the value of isRunning when suspending and after resume
- */
- void isRunning_002()
- {
- OCountThread *aCountThread = new OCountThread();
- sal_Bool bRes = aCountThread->create();
- CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
-
- // sal_Bool bRunning = aCountThread->isRunning();
- // sal_Int32 nValue = 0;
- suspendCountThread(aCountThread);
-
- sal_Bool bRunning_sup = aCountThread->isRunning();
- ThreadHelper::thread_sleep_tenth_sec(2);
- aCountThread->resume();
- ThreadHelper::thread_sleep_tenth_sec(2);
- sal_Bool bRunning_res = aCountThread->isRunning();
- termAndJoinThread(aCountThread);
- sal_Bool bRunning_ter = aCountThread->isRunning();
- delete aCountThread;
-
- CPPUNIT_ASSERT_MESSAGE(
- "Test isRunning",
- bRes == sal_True &&
- bRunning_sup == sal_True &&
- bRunning_res == sal_True &&
- bRunning_ter == sal_False
- );
-
- }
-
- CPPUNIT_TEST_SUITE(isRunning);
- CPPUNIT_TEST(isRunning_001);
- CPPUNIT_TEST(isRunning_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class isRunning
-
-
- /// check osl::Thread::setPriority
- class setPriority : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // insert your test code here.
- rtl::OString getPrioName(oslThreadPriority _aPriority)
- {
- rtl::OString sPrioStr;
- switch (_aPriority)
- {
- case osl_Thread_PriorityHighest:
- sPrioStr = "Highest";
- break;
-
- case osl_Thread_PriorityAboveNormal:
- sPrioStr = "AboveNormal";
- break;
-
- case osl_Thread_PriorityNormal:
- sPrioStr = "Normal";
- break;
-
- case osl_Thread_PriorityBelowNormal:
- sPrioStr = "BelowNormal";
- break;
-
- case osl_Thread_PriorityLowest:
- sPrioStr = "Lowest";
- break;
- default:
- sPrioStr = "unknown";
- }
- return sPrioStr;
- }
-
-
- /** check 2 threads.
-
- ALGORITHM:
- Here the function should show, that 2 different threads,
- which only increase a value, should run at the same time with same prio.
- The test fails, if the difference between the two values is more than 5%
- but IMHO this isn't a failure, it's only a feature of the OS.
- */
-
- void check2Threads(oslThreadPriority _aPriority)
- {
- // initial 5 threads with different priorities
- OAddThread* pThread = new OAddThread();
- OAddThread* p2Thread = new OAddThread();
-
- //Create them and start running at the same time
- pThread->create();
- pThread->setPriority(_aPriority);
- p2Thread->create();
- p2Thread->setPriority(_aPriority);
-
- ThreadHelper::thread_sleep_tenth_sec(5);
-
- pThread->terminate();
- p2Thread->terminate();
-
- sal_Int32 nValueNormal = 0;
- nValueNormal = pThread->getValue();
-
- sal_Int32 nValueNormal2 = 0;
- nValueNormal2 = p2Thread->getValue();
-
- rtl::OString sPrio = getPrioName(_aPriority);
- t_print("After 10 tenth seconds\n");
-
- t_print("nValue in %s Prio Thread is %d\n",sPrio.getStr(), (int) nValueNormal);
- t_print("nValue in %s Prio Thread is %d\n", sPrio.getStr(), (int) nValueNormal2);
-
- // ThreadHelper::thread_sleep_tenth_sec(1);
- pThread->join();
- p2Thread->join();
-
- delete pThread;
- delete p2Thread;
-
- sal_Int32 nDelta = abs(nValueNormal - nValueNormal2);
- double nQuotient = std::max(nValueNormal, nValueNormal2);
- CPPUNIT_ASSERT_MESSAGE(
- "Quotient is zero, which means, there exist no right values.",
- nQuotient != 0
- );
- double nDeltaPercent = nDelta / nQuotient * 100;
-
- t_print("Delta value %d, percent %f\n", (int) nDelta, nDeltaPercent);
-
- // LLA: it's not a bug if the current OS is not able to handle thread scheduling right and good.
- // like Windows XP
- // LLA: CPPUNIT_ASSERT_MESSAGE(
- // LLA: "Run 2 normal threads, the count diff more than 5 percent.",
- // LLA: nDeltaPercent <= 5
- // LLA: );
- }
-
- void setPriority_001_1()
- {
- check2Threads(osl_Thread_PriorityHighest);
- }
- void setPriority_001_2()
- {
- check2Threads(osl_Thread_PriorityAboveNormal);
- }
- void setPriority_001_3()
- {
- check2Threads(osl_Thread_PriorityNormal);
- }
- void setPriority_001_4()
- {
- check2Threads(osl_Thread_PriorityBelowNormal);
- }
- void setPriority_001_5()
- {
- check2Threads(osl_Thread_PriorityLowest);
- }
-
- void setPriority_002()
- {
- // initial 5 threads with different priorities
-
- OAddThread aHighestThread;
- OAddThread aAboveNormalThread;
- OAddThread aNormalThread;
- //OAddThread *aBelowNormalThread = new OAddThread();
- //OAddThread *aLowestThread = new OAddThread();
-
- //Create them and start running at the same time
- aHighestThread.createSuspended();
- aHighestThread.setPriority(osl_Thread_PriorityHighest);
-
- aAboveNormalThread.createSuspended();
- aAboveNormalThread.setPriority(osl_Thread_PriorityAboveNormal);
-
- aNormalThread.createSuspended();
- aNormalThread.setPriority(osl_Thread_PriorityNormal);
- /*aBelowNormalThread->create();
- aBelowNormalThread->setPriority(osl_Thread_PriorityBelowNormal);
- aLowestThread->create();
- aLowestThread->setPriority(osl_Thread_PriorityLowest);
- */
-
- aHighestThread.resume();
- aAboveNormalThread.resume();
- aNormalThread.resume();
-
- ThreadHelper::thread_sleep_tenth_sec(5);
-
- aHighestThread.suspend();
- aAboveNormalThread.suspend();
- aNormalThread.suspend();
-
- termAndJoinThread(&aNormalThread);
- termAndJoinThread(&aAboveNormalThread);
- termAndJoinThread(&aHighestThread);
- //aBelowNormalThread->terminate();
- //aLowestThread->terminate();
-
- sal_Int32 nValueHighest = 0;
- nValueHighest = aHighestThread.getValue();
-
- sal_Int32 nValueAboveNormal = 0;
- nValueAboveNormal = aAboveNormalThread.getValue();
-
- sal_Int32 nValueNormal = 0;
- nValueNormal = aNormalThread.getValue();
-
- t_print("After 10 tenth seconds\n");
- t_print("nValue in Highest Prio Thread is %d\n", (int) nValueHighest);
- t_print("nValue in AboveNormal Prio Thread is %d\n", (int) nValueAboveNormal);
- t_print("nValue in Normal Prio Thread is %d\n", (int) nValueNormal);
-
-#ifndef WNT
- CPPUNIT_ASSERT_MESSAGE(
- "SetPriority",
- nValueHighest > 0 &&
- nValueAboveNormal > 0 &&
- nValueNormal > 0
- );
-#endif
- }
-
- void setPriority_003()
- {
- // initial 5 threads with different priorities
- OAddThread *pHighestThread = new OAddThread();
- OAddThread *pAboveNormalThread = new OAddThread();
- OAddThread *pNormalThread = new OAddThread();
- OAddThread *pBelowNormalThread = new OAddThread();
- OAddThread *pLowestThread = new OAddThread();
-
- //Create them and start running at the same time
- pHighestThread->createSuspended();
- pHighestThread->setPriority(osl_Thread_PriorityHighest);
-
- pAboveNormalThread->createSuspended();
- pAboveNormalThread->setPriority(osl_Thread_PriorityAboveNormal);
-
- pNormalThread->createSuspended();
- pNormalThread->setPriority(osl_Thread_PriorityNormal);
-
- pBelowNormalThread->createSuspended();
- pBelowNormalThread->setPriority(osl_Thread_PriorityBelowNormal);
-
- pLowestThread->createSuspended();
- pLowestThread->setPriority(osl_Thread_PriorityLowest);
-
- pHighestThread->resume();
- pAboveNormalThread->resume();
- pNormalThread->resume();
- pBelowNormalThread->resume();
- pLowestThread->resume();
-
- ThreadHelper::thread_sleep_tenth_sec(5);
-
- pHighestThread->suspend();
- pAboveNormalThread->suspend();
- pNormalThread->suspend();
- pBelowNormalThread->suspend();
- pLowestThread->suspend();
-
- termAndJoinThread(pHighestThread);
- termAndJoinThread(pAboveNormalThread);
- termAndJoinThread(pNormalThread);
- termAndJoinThread(pBelowNormalThread);
- termAndJoinThread(pLowestThread);
-
- sal_Int32 nValueHighest = 0;
- nValueHighest = pHighestThread->getValue();
-
- sal_Int32 nValueAboveNormal = 0;
- nValueAboveNormal = pAboveNormalThread->getValue();
-
- sal_Int32 nValueNormal = 0;
- nValueNormal = pNormalThread->getValue();
-
- sal_Int32 nValueBelowNormal = 0;
- nValueBelowNormal = pBelowNormalThread->getValue();
-
- sal_Int32 nValueLowest = 0;
- nValueLowest = pLowestThread->getValue();
-
- t_print("After 10 tenth seconds\n");
- t_print("nValue in Highest Prio Thread is %d\n", (int) nValueHighest);
- t_print("nValue in AboveNormal Prio Thread is %d\n", (int) nValueAboveNormal);
- t_print("nValue in Normal Prio Thread is %d\n", (int) nValueNormal);
- t_print("nValue in BelowNormal Prio Thread is %d\n", (int) nValueBelowNormal);
- t_print("nValue in Lowest Prio Thread is %d\n", (int) nValueLowest);
-
- delete pHighestThread;
- delete pAboveNormalThread;
- delete pNormalThread;
- delete pBelowNormalThread;
- delete pLowestThread;
-
-#ifndef WNT
- CPPUNIT_ASSERT_MESSAGE(
- "SetPriority",
- nValueHighest > 0 &&
- nValueAboveNormal > 0 &&
- nValueNormal > 0 &&
- nValueBelowNormal > 0 &&
- nValueLowest > 0
- );
-#endif
- }
-
- void setPriority_004()
- {
- // initial 5 threads with different priorities
- // OAddThread *pHighestThread = new OAddThread();
- OAddThread *pAboveNormalThread = new OAddThread();
- OAddThread *pNormalThread = new OAddThread();
- OAddThread *pBelowNormalThread = new OAddThread();
- OAddThread *pLowestThread = new OAddThread();
-
- //Create them and start running at the same time
- // pHighestThread->createSuspended();
- // pHighestThread->setPriority(osl_Thread_PriorityHighest);
-
- pAboveNormalThread->createSuspended();
- pAboveNormalThread->setPriority(osl_Thread_PriorityAboveNormal);
-
- pNormalThread->createSuspended();
- pNormalThread->setPriority(osl_Thread_PriorityNormal);
-
- pBelowNormalThread->createSuspended();
- pBelowNormalThread->setPriority(osl_Thread_PriorityBelowNormal);
-
- pLowestThread->createSuspended();
- pLowestThread->setPriority(osl_Thread_PriorityLowest);
-
- // pHighestThread->resume();
- pAboveNormalThread->resume();
- pNormalThread->resume();
- pBelowNormalThread->resume();
- pLowestThread->resume();
-
- ThreadHelper::thread_sleep_tenth_sec(5);
-
- // pHighestThread->suspend();
- pAboveNormalThread->suspend();
- pNormalThread->suspend();
- pBelowNormalThread->suspend();
- pLowestThread->suspend();
-
- // termAndJoinThread(pHighestThread);
- termAndJoinThread(pAboveNormalThread);
- termAndJoinThread(pNormalThread);
- termAndJoinThread(pBelowNormalThread);
- termAndJoinThread(pLowestThread);
-
- // sal_Int32 nValueHighest = 0;
- // nValueHighest = pHighestThread->getValue();
-
- sal_Int32 nValueAboveNormal = 0;
- nValueAboveNormal = pAboveNormalThread->getValue();
-
- sal_Int32 nValueNormal = 0;
- nValueNormal = pNormalThread->getValue();
-
- sal_Int32 nValueBelowNormal = 0;
- nValueBelowNormal = pBelowNormalThread->getValue();
-
- sal_Int32 nValueLowest = 0;
- nValueLowest = pLowestThread->getValue();
-
- t_print("After 5 tenth seconds\n");
- t_print("nValue in AboveNormal Prio Thread is %d\n", (int) nValueAboveNormal);
- t_print("nValue in Normal Prio Thread is %d\n", (int) nValueNormal);
- t_print("nValue in BelowNormal Prio Thread is %d\n", (int) nValueBelowNormal);
- t_print("nValue in Lowest Prio Thread is %d\n", (int) nValueLowest);
-
- // delete pHighestThread;
- delete pAboveNormalThread;
- delete pNormalThread;
- delete pBelowNormalThread;
- delete pLowestThread;
-
-#ifndef WNT
- CPPUNIT_ASSERT_MESSAGE(
- "SetPriority",
- /* nValueHighest > 0 && */
- nValueAboveNormal > 0 &&
- nValueNormal > 0 &&
- nValueBelowNormal > 0 &&
- nValueLowest > 0
- );
-#endif
- }
- void setPriority_005()
- {
- // initial 5 threads with different priorities
- // OAddThread *pHighestThread = new OAddThread();
- // OAddThread *pAboveNormalThread = new OAddThread();
- OAddThread *pNormalThread = new OAddThread();
- OAddThread *pBelowNormalThread = new OAddThread();
- OAddThread *pLowestThread = new OAddThread();
-
- //Create them and start running at the same time
- // pHighestThread->createSuspended();
- // pHighestThread->setPriority(osl_Thread_PriorityHighest);
-
- // pAboveNormalThread->createSuspended();
- // pAboveNormalThread->setPriority(osl_Thread_PriorityAboveNormal);
-
- pNormalThread->createSuspended();
- pNormalThread->setPriority(osl_Thread_PriorityNormal);
-
- pBelowNormalThread->createSuspended();
- pBelowNormalThread->setPriority(osl_Thread_PriorityBelowNormal);
-
- pLowestThread->createSuspended();
- pLowestThread->setPriority(osl_Thread_PriorityLowest);
-
- // pHighestThread->resume();
- // pAboveNormalThread->resume();
- pNormalThread->resume();
- pBelowNormalThread->resume();
- pLowestThread->resume();
-
- ThreadHelper::thread_sleep_tenth_sec(5);
-
- // pHighestThread->suspend();
- // pAboveNormalThread->suspend();
- pNormalThread->suspend();
- pBelowNormalThread->suspend();
- pLowestThread->suspend();
-
- // termAndJoinThread(pHighestThread);
- // termAndJoinThread(pAboveNormalThread);
- termAndJoinThread(pNormalThread);
- termAndJoinThread(pBelowNormalThread);
- termAndJoinThread(pLowestThread);
-
- // sal_Int32 nValueHighest = 0;
- // nValueHighest = pHighestThread->getValue();
-
- // sal_Int32 nValueAboveNormal = 0;
- // nValueAboveNormal = pAboveNormalThread->getValue();
-
- sal_Int32 nValueNormal = 0;
- nValueNormal = pNormalThread->getValue();
-
- sal_Int32 nValueBelowNormal = 0;
- nValueBelowNormal = pBelowNormalThread->getValue();
-
- sal_Int32 nValueLowest = 0;
- nValueLowest = pLowestThread->getValue();
-
- t_print("After 5 tenth seconds\n");
- t_print("nValue in Normal Prio Thread is %d\n", (int) nValueNormal);
- t_print("nValue in BelowNormal Prio Thread is %d\n", (int) nValueBelowNormal);
- t_print("nValue in Lowest Prio Thread is %d\n", (int) nValueLowest);
-
- delete pNormalThread;
- delete pBelowNormalThread;
- delete pLowestThread;
-
-#ifndef WNT
- CPPUNIT_ASSERT_MESSAGE(
- "SetPriority",
- /* nValueHighest > 0 && */
- /* nValueAboveNormal > 0 && */
- nValueNormal > 0 &&
- nValueBelowNormal > 0 &&
- nValueLowest > 0
- );
-#endif
- }
-
-
- CPPUNIT_TEST_SUITE(setPriority);
-#ifndef SOLARIS
- CPPUNIT_TEST(setPriority_002);
- CPPUNIT_TEST(setPriority_003);
- CPPUNIT_TEST(setPriority_004);
- CPPUNIT_TEST(setPriority_005);
-#endif
- CPPUNIT_TEST(setPriority_001_1);
- CPPUNIT_TEST(setPriority_001_2);
- CPPUNIT_TEST(setPriority_001_3);
- CPPUNIT_TEST(setPriority_001_4);
- CPPUNIT_TEST(setPriority_001_5);
- CPPUNIT_TEST_SUITE_END();
- }; // class setPriority
-
- /** Test of the osl::Thread::getPriority method
- */
- class getPriority : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // insert your test code here.
- void getPriority_001()
- {
- OAddThread *pHighestThread = new OAddThread();
-
- //Create them and start running at the same time
- pHighestThread->create();
- pHighestThread->setPriority(osl_Thread_PriorityHighest);
-
- oslThreadPriority aPriority = pHighestThread->getPriority();
- termAndJoinThread(pHighestThread);
- delete pHighestThread;
-
- ThreadHelper::outputPriority(aPriority);
-
-// LLA: Priority settings may not work within some OS versions.
-#if ( defined WNT ) || ( defined SOLARIS )
- CPPUNIT_ASSERT_MESSAGE(
- "getPriority",
- aPriority == osl_Thread_PriorityHighest
- );
-#else
-// LLA: Linux
-// NO_PTHREAD_PRIORITY ???
- CPPUNIT_ASSERT_MESSAGE(
- "getPriority",
- aPriority == osl_Thread_PriorityNormal
- );
-#endif
- }
-
- void getPriority_002()
- {
-
- }
-
- CPPUNIT_TEST_SUITE(getPriority);
- CPPUNIT_TEST(getPriority_001);
- CPPUNIT_TEST(getPriority_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class getPriority
-
-
- class getIdentifier : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // insert your test code here.
- void getIdentifier_001()
- {
-
- }
-
- void getIdentifier_002()
- {
-
- }
-
- CPPUNIT_TEST_SUITE(getIdentifier);
- CPPUNIT_TEST(getIdentifier_001);
- CPPUNIT_TEST(getIdentifier_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class getIdentifier
-
- /** Test of the osl::Thread::getCurrentIdentifier method
- */
- class getCurrentIdentifier : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // insert your test code here.
- void getCurrentIdentifier_001()
- {
- oslThreadIdentifier oId;
- OCountThread* pCountThread = new OCountThread;
- pCountThread->create();
- pCountThread->setWait(3);
- oId = Thread::getCurrentIdentifier();
- oslThreadIdentifier oIdChild = pCountThread->getIdentifier();
- termAndJoinThread(pCountThread);
- delete pCountThread;
-
- CPPUNIT_ASSERT_MESSAGE(
- "Get the identifier for the current active thread.",
- oId != oIdChild
- );
-
- }
-
- void getCurrentIdentifier_002()
- {
- }
-
- CPPUNIT_TEST_SUITE(getCurrentIdentifier);
- CPPUNIT_TEST(getCurrentIdentifier_001);
- //CPPUNIT_TEST(getCurrentIdentifier_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class getCurrentIdentifier
-
- /** Test of the osl::Thread::wait method
- */
- class wait : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- /** call wait in the run method
-
- ALGORITHM:
- tested thread wait nWaitSec seconds, main thread sleep (2) seconds,
- then terminate the tested thread, due to the fact that the thread do a sleep(1) + wait(5)
- it's finish after 6 seconds.
- */
- void wait_001()
- {
- OCountThread *aCountThread = new OCountThread();
- sal_Int32 nWaitSec = 5;
- aCountThread->setWait(nWaitSec);
- // thread runs at least 5 seconds.
- sal_Bool bRes = aCountThread->create();
- CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
-
- //record the time when the running begin
- StopWatch aStopWatch;
- aStopWatch.start();
-
- // wait a little bit, to let the thread the time, to start
- ThreadHelper::thread_sleep_tenth_sec( 4 );
-
- // if wait works,
- // this function returns, after 4 sec. later
- termAndJoinThread(aCountThread);
-
- // value should be one.
- sal_Int32 nValue = aCountThread->getValue();
-
- aStopWatch.stop();
-
- // sal_uInt32 nSec = aTimeVal_after.Seconds - aTimeVal_befor.Seconds;
- double nTenthSec = aStopWatch.getTenthSec();
- double nSec = aStopWatch.getSeconds();
- delete aCountThread;
- t_print("nTenthSec = %f \n", nTenthSec);
- t_print("nSec = %f \n", nSec);
- t_print("nValue = %d \n", (int) nValue);
-
- CPPUNIT_ASSERT_MESSAGE(
- "Wait: Blocks the calling thread for the given number of time.",
- nTenthSec >= 5 && nValue == 1
- );
-
- }
-
- CPPUNIT_TEST_SUITE(wait);
- CPPUNIT_TEST(wait_001);
- CPPUNIT_TEST_SUITE_END();
- }; // class wait
-
- /** osl::Thread::yield method: can not design good test scenario to test up to now
- */
- class yield : public CppUnit::TestFixture
- {
- public:
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // insert your test code here.
- void yield_001()
- {
- }
-
-
- CPPUNIT_TEST_SUITE(yield);
- CPPUNIT_TEST(yield_001);
- CPPUNIT_TEST_SUITE_END();
- }; // class yield
-
- /** Test of the osl::Thread::schedule method
- */
- class schedule : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- /** The requested thread will get terminate the next time schedule() is called.
-
- Note: on UNX, if call suspend thread is not the to be suspended thread, the to be
- suspended thread will get suspended the next time schedule() is called,
- while on w32, it's nothing with schedule.
-
- check if suspend and terminate work well via schedule
- */
- void schedule_001()
- {
- OAddThread* aThread = new OAddThread();
- sal_Bool bRes = aThread->create();
- CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
-
- ThreadHelper::thread_sleep_tenth_sec(2);
- aThread->suspend();
- ThreadHelper::thread_sleep_tenth_sec(1);
- sal_Int32 nValue = aThread->getValue();
- ThreadHelper::thread_sleep_tenth_sec(3);
- sal_Int32 nLaterValue = aThread->getValue();
- // resumeAndWaitThread(aThread);
- t_print(" value = %d\n", (int) nValue);
- t_print("later value = %d\n", (int) nLaterValue);
- // if value and latervalue not equal, than the thread would not suspended
-
- CPPUNIT_ASSERT_MESSAGE(
- "Schedule: suspend works.",
- nLaterValue == nValue
- );
-
- aThread->resume();
- ThreadHelper::thread_sleep_tenth_sec(2);
-
- aThread->terminate();
- sal_Int32 nValue_term = aThread->getValue();
-
- aThread->join();
- sal_Int32 nValue_join = aThread->getValue();
-
- t_print("value after term = %d\n", (int) nValue_term);
- t_print("value after join = %d\n", (int) nValue_join);
-
- // nValue_term and nValue_join should be the same
- // but should be differ from nValue
-
- delete aThread;
- //check if thread really terminate after call terminate, if join immediatlly return
- CPPUNIT_ASSERT_MESSAGE(
- "Schedule: Returns False if the thread should terminate.",
- nValue_join - nValue_term <= 1 && nValue_join - nValue_term >= 0
- );
-
- }
-
- /** design a thread that has not call schedule in the workfunction--run method
- */
- void schedule_002()
- {
- ONoScheduleThread aThread; // this thread runs 10 sec. (no schedule() used)
- sal_Bool bRes = aThread.create();
- CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
-
- ThreadHelper::thread_sleep_tenth_sec(2);
- aThread.suspend();
- sal_Int32 nValue = aThread.getValue();
-
- ThreadHelper::thread_sleep_tenth_sec(3);
- sal_Int32 nLaterValue = aThread.getValue();
- ThreadHelper::thread_sleep_tenth_sec(5);
-
- resumeAndWaitThread(&aThread);
-
- t_print(" value = %d\n", (int) nValue);
- t_print("later value = %d\n", (int) nLaterValue);
-
- //On windows, suspend works, so the values are same
-#ifdef WNT
- CPPUNIT_ASSERT_MESSAGE(
- "Schedule: don't schedule in thread run method, suspend works.",
- nLaterValue == nValue
- );
-#endif
-
- //On UNX, suspend does not work, so the difference of the values equals to sleep seconds number
-#ifdef UNX
- aThread.resume();
- CPPUNIT_ASSERT_MESSAGE(
- "Schedule: don't schedule in thread run method, suspend does not work too.",
- nLaterValue > nValue
- );
-#endif
-
- // terminate will not work if no schedule in thread's work function
- termAndJoinThread(&aThread);
- sal_Int32 nValue_term = aThread.getValue();
-
- t_print(" value term = %d\n", (int) nValue_term);
-
- CPPUNIT_ASSERT_MESSAGE(
- "Schedule: don't schedule in thread run method, terminate failed.",
- nValue_term == 10
- );
- }
-
- CPPUNIT_TEST_SUITE(schedule);
- CPPUNIT_TEST(schedule_001);
- CPPUNIT_TEST(schedule_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class schedule
-
-// -----------------------------------------------------------------------------
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Thread::create, "osl_Thread");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Thread::createSuspended, "osl_Thread");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Thread::suspend, "osl_Thread");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Thread::resume, "osl_Thread");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Thread::terminate, "osl_Thread");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Thread::join, "osl_Thread");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Thread::isRunning, "osl_Thread");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Thread::setPriority, "osl_Thread");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Thread::getPriority, "osl_Thread");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Thread::getIdentifier, "osl_Thread");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Thread::getCurrentIdentifier, "osl_Thread");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Thread::wait, "osl_Thread");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Thread::yield, "osl_Thread");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Thread::schedule, "osl_Thread");
-} // namespace osl_Thread
-
-
-// -----------------------------------------------------------------------------
-// destroy function when the binding thread terminate
-void SAL_CALL destroyCallback(void * data)
-{
- delete[] (char *) data;
-}
-
-static ThreadData myThreadData(destroyCallback);
-
-/**
-*/
-class myKeyThread : public Thread
-{
-public:
- // a public char member for test result checking
- char m_Char_Test;
- // for pass thread-special data to thread
- myKeyThread(const char cData)
- {
- m_nData = cData;
- }
-private:
- char m_nData;
-
- void SAL_CALL run()
- {
- char * pc = new char[2];
-// strcpy(pc, &m_nData);
- memcpy(pc, &m_nData, 1);
- pc[1] = '\0';
-
- myThreadData.setData(pc);
- char* pData = (char*)myThreadData.getData();
- m_Char_Test = *pData;
- // wait for long time to check the data value in main thread
- ThreadHelper::thread_sleep_tenth_sec(3);
- }
-public:
- ~myKeyThread()
- {
- if (isRunning())
- {
- t_print("error: not terminated.\n");
- }
- }
-};
-
-static ThreadData idData;
-
-class idThread: public Thread
-{
-public:
- oslThreadIdentifier m_Id;
-private:
- void SAL_CALL run()
- {
- oslThreadIdentifier* pId = new oslThreadIdentifier;
- *pId = getIdentifier();
- idData.setData(pId);
- oslThreadIdentifier* pIdData = (oslThreadIdentifier*)idData.getData();
- //t_print("Thread %d has Data %d\n", getIdentifier(), *pIdData);
- m_Id = *pIdData;
- delete pId;
- }
-
-public:
- ~idThread()
- {
- if (isRunning())
- {
- t_print("error: not terminated.\n");
- }
- }
-};
-
-namespace osl_ThreadData
-{
-
- class ctors : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // insert your test code here.
- void ctor_001()
- {
-
- }
-
- CPPUNIT_TEST_SUITE(ctors);
- CPPUNIT_TEST(ctor_001);
- CPPUNIT_TEST_SUITE_END();
- }; // class ctors
-
-
- class setData : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- /** the same instance of the class can have different values in different threads
- */
- void setData_001()
- {
- idThread aThread1;
- aThread1.create();
- idThread aThread2;
- aThread2.create();
-
- aThread1.join();
- aThread2.join();
-
- oslThreadIdentifier aThreadId1 = aThread1.getIdentifier();
- oslThreadIdentifier aThreadId2 = aThread2.getIdentifier();
-
- CPPUNIT_ASSERT_MESSAGE(
- "ThreadData setData: ",
- aThread1.m_Id == aThreadId1 && aThread2.m_Id == aThreadId2
- );
-
- }
-
- void setData_002()
- {
- // at first, set the data a value
- char* pc = new char[2];
- char m_nData = 'm';
-// LLA: this is a copy functions only and really only for \0 terminated strings
-// m_nData is not a string, it's a character
-// strcpy(pc, &m_nData);
- memcpy(pc, &m_nData, 1);
- pc[1] = '\0';
-
- myThreadData.setData(pc);
-
- myKeyThread aThread1('a');
- aThread1.create();
- myKeyThread aThread2('b');
- aThread2.create();
- // aThread1 and aThread2 should have not terminated yet, check current data, not 'a' 'b'
- char* pChar = (char*)myThreadData.getData();
- char aChar = *pChar;
-
- aThread1.join();
- aThread2.join();
-
- // the saved thread data of aThread1 & aThread2, different
- char cData1 = aThread1.m_Char_Test;
- char cData2 = aThread2.m_Char_Test;
-
- CPPUNIT_ASSERT_MESSAGE(
- "ThreadData setData: ",
- cData1 == 'a' && cData2 == 'b' && aChar == 'm'
- );
-
- }
- /** setData the second time, and then getData
- */
- void setData_003()
- {
- // at first, set the data a value
- char* pc = new char[2];
- char m_nData = 'm';
- memcpy(pc, &m_nData, 1);
- pc[1] = '\0';
- myThreadData.setData(pc);
-
- myKeyThread aThread1('a');
- aThread1.create();
- myKeyThread aThread2('b');
- aThread2.create();
- // aThread1 and aThread2 should have not terminated yet
- // setData the second time
- char* pc2 = new char[2];
- m_nData = 'o';
- memcpy(pc2, &m_nData, 1);
- pc2[1] = '\0';
-
- myThreadData.setData(pc2);
- char* pChar = (char*)myThreadData.getData();
- char aChar = *pChar;
-
- aThread1.join();
- aThread2.join();
-
- // the saved thread data of aThread1 & aThread2, different
- char cData1 = aThread1.m_Char_Test;
- char cData2 = aThread2.m_Char_Test;
-
- CPPUNIT_ASSERT_MESSAGE(
- "ThreadData setData: ",
- cData1 == 'a' && cData2 == 'b' && aChar == 'o'
- );
- }
-
- CPPUNIT_TEST_SUITE(setData);
- CPPUNIT_TEST(setData_001);
- CPPUNIT_TEST(setData_002);
- CPPUNIT_TEST(setData_003);
- CPPUNIT_TEST_SUITE_END();
- }; // class setData
-
- class getData : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // After setData in child threads, get Data in the main thread, should be independent
- void getData_001()
- {
- char* pc = new char[2];
- char m_nData[] = "i";
- strcpy(pc, m_nData);
- myThreadData.setData(pc);
-
- myKeyThread aThread1('c');
- aThread1.create();
- myKeyThread aThread2('d');
- aThread2.create();
-
- aThread1.join();
- aThread2.join();
-
- char cData1 = aThread1.m_Char_Test;
- char cData2 = aThread2.m_Char_Test;
-
- char* pChar = (char*)myThreadData.getData();
- char aChar = *pChar;
-
- CPPUNIT_ASSERT_MESSAGE(
- "ThreadData setData: ",
- cData1 == 'c' && cData2 == 'd' && aChar == 'i'
- );
- }
-
- // setData then change the value in the address data pointer points,
- // and then getData, should get the new value
- void getData_002()
- {
- char* pc = new char[2];
- char m_nData = 'i';
- memcpy(pc, &m_nData, 1);
- pc[1] = '\0';
-
- myThreadData.setData(pc);
-
- myKeyThread aThread1('a');
- aThread1.create();
- myKeyThread aThread2('b');
- aThread2.create();
-
- // change the value which pc points
- char m_nData2 = 'j';
- memcpy(pc, &m_nData2, 1);
- pc[1] = '\0';
-
- void* pChar = myThreadData.getData();
- char aChar = *(char*)pChar;
-
- aThread1.join();
- aThread2.join();
-
- char cData1 = aThread1.m_Char_Test;
- char cData2 = aThread2.m_Char_Test;
-
- CPPUNIT_ASSERT_MESSAGE(
- "ThreadData setData: ",
- cData1 == 'a' && cData2 == 'b' && aChar == 'j'
- );
-
- }
-
- CPPUNIT_TEST_SUITE(getData);
- CPPUNIT_TEST(getData_001);
- CPPUNIT_TEST(getData_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class getData
-
-// -----------------------------------------------------------------------------
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_ThreadData::ctors);
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_ThreadData::setData);
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_ThreadData::getData);
-} // namespace osl_ThreadData
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/process/osl_Thread.xsce b/sal/qa/osl/process/osl_Thread.xsce
deleted file mode 100644
index 42d9ef269..000000000
--- a/sal/qa/osl/process/osl_Thread.xsce
+++ /dev/null
@@ -1 +0,0 @@
-osl_Thread.setPriority.setPriority_001_1 unxsols4
diff --git a/sal/qa/osl/process/osl_process.cxx b/sal/qa/osl/process/osl_process.cxx
deleted file mode 100644
index 573a12241..000000000
--- a/sal/qa/osl/process/osl_process.cxx
+++ /dev/null
@@ -1,761 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#ifdef IOS
-#define CPPUNIT_PLUGIN_EXPORTED_NAME cppunitTest_osl_process
-#endif
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#define t_print printf
-
-#include <osl/process.h>
-#include <osl/file.hxx>
-#include <osl/thread.h>
-#include <rtl/ustring.hxx>
-#include <unistd.h>
-#include <signal.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <osl/module.hxx>
-#include <sal/macros.h>
-
-#if ( defined WNT ) // Windows
-# include <windows.h>
-# include <tchar.h>
-#endif
-
-#include "rtl/allocator.hxx"
-
-#include <iostream>
-#include <fstream>
-#include <vector>
-#include <algorithm>
-#include <iterator>
-#include <string>
-
-#ifdef UNX
-#if defined( MACOSX )
-# include <crt_externs.h>
-# define environ (*_NSGetEnviron())
-# else
- extern char** environ;
-# endif
-#endif
-
-#if defined(WNT)
- const rtl::OUString EXECUTABLE_NAME (RTL_CONSTASCII_USTRINGPARAM("osl_process_child.exe"));
-#else
- const rtl::OUString EXECUTABLE_NAME (RTL_CONSTASCII_USTRINGPARAM("osl_process_child"));
-#endif
-
-//########################################
-using namespace osl;
-
-using ::rtl::OUString;
-using ::rtl::OUStringToOString;
-using ::rtl::OString;
-
-/** print a UNI_CODE String.
-*/
-inline void printUString( const ::rtl::OUString & str )
-{
- rtl::OString aString;
-
- t_print("#printUString_u# " );
- aString = ::rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US );
- t_print("%s\n", aString.getStr( ) );
-}
-
-/** get binary Path.
-*/
-inline ::rtl::OUString getExecutablePath( void )
-{
- ::rtl::OUString dirPath;
- osl::Module::getUrlFromAddress( ( void* ) &getExecutablePath, dirPath );
- dirPath = dirPath.copy( 0, dirPath.lastIndexOf('/') );
- dirPath = dirPath.copy( 0, dirPath.lastIndexOf('/') + 1);
- dirPath += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("bin"));
- return dirPath;
-}
-
-//rtl::OUString CWD = getExecutablePath();
-
-//########################################
-class Test_osl_joinProcess : public CppUnit::TestFixture
-{
- const OUString join_param_;
- const OUString wait_time_;
- OUString suCWD;
- OUString suExecutableFileURL;
-
- rtl_uString* parameters_[2];
- int parameters_count_;
-
-public:
-
- Test_osl_joinProcess() :
- join_param_(OUString(RTL_CONSTASCII_USTRINGPARAM("-join"))),
- wait_time_(OUString(RTL_CONSTASCII_USTRINGPARAM("1"))),
- parameters_count_(2)
- {
- parameters_[0] = join_param_.pData;
- parameters_[1] = wait_time_.pData;
- suCWD = getExecutablePath();
- suExecutableFileURL = suCWD;
- suExecutableFileURL += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- suExecutableFileURL += EXECUTABLE_NAME;
- }
-
- /*-------------------------------------
- Start a process and join with this
- process specify a timeout so that
- osl_joinProcessWithTimeout returns
- osl_Process_E_TimedOut
- -------------------------------------*/
-
- void osl_joinProcessWithTimeout_timeout_failure()
- {
- oslProcess process;
- oslProcessError osl_error = osl_executeProcess(
- suExecutableFileURL.pData,
- parameters_,
- parameters_count_,
- osl_Process_NORMAL,
- osl_getCurrentSecurity(),
- suCWD.pData,
- NULL,
- 0,
- &process);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_createProcess failed",
- osl_error == osl_Process_E_None
- );
-
- TimeValue timeout;
- timeout.Seconds = 1;
- timeout.Nanosec = 0;
-
- osl_error = osl_joinProcessWithTimeout(process, &timeout);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_joinProcessWithTimeout returned without timeout failure",
- osl_Process_E_TimedOut == osl_error
- );
-
- osl_error = osl_terminateProcess(process);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_terminateProcess failed",
- osl_error == osl_Process_E_None
- );
-
- osl_freeProcessHandle(process);
- }
-
- /*-------------------------------------
- Start a process and join with this
- process specify a timeout so that
- osl_joinProcessWithTimeout returns
- osl_Process_E_None
- -------------------------------------*/
-
- void osl_joinProcessWithTimeout_without_timeout_failure()
- {
- oslProcess process;
- oslProcessError osl_error = osl_executeProcess(
- suExecutableFileURL.pData,
- parameters_,
- parameters_count_,
- osl_Process_NORMAL,
- osl_getCurrentSecurity(),
- suCWD.pData,
- NULL,
- 0,
- &process);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_createProcess failed",
- osl_error == osl_Process_E_None
- );
-
- TimeValue timeout;
- timeout.Seconds = 10;
- timeout.Nanosec = 0;
-
- osl_error = osl_joinProcessWithTimeout(process, &timeout);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_joinProcessWithTimeout returned with failure",
- osl_Process_E_None == osl_error
- );
-
- osl_freeProcessHandle(process);
- }
-
- /*-------------------------------------
- Start a process and join with this
- process specify an infinite timeout
- -------------------------------------*/
-
- void osl_joinProcessWithTimeout_infinite()
- {
- oslProcess process;
- oslProcessError osl_error = osl_executeProcess(
- suExecutableFileURL.pData,
- parameters_,
- parameters_count_,
- osl_Process_NORMAL,
- osl_getCurrentSecurity(),
- suCWD.pData,
- NULL,
- 0,
- &process);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_createProcess failed",
- osl_error == osl_Process_E_None
- );
-
- osl_error = osl_joinProcessWithTimeout(process, NULL);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_joinProcessWithTimeout returned with failure",
- osl_Process_E_None == osl_error
- );
-
- osl_freeProcessHandle(process);
- }
-
- /*-------------------------------------
- Start a process and join with this
- process using osl_joinProcess
- -------------------------------------*/
-
- void osl_joinProcess()
- {
- oslProcess process;
- oslProcessError osl_error = osl_executeProcess(
- suExecutableFileURL.pData,
- parameters_,
- parameters_count_,
- osl_Process_NORMAL,
- osl_getCurrentSecurity(),
- suCWD.pData,
- NULL,
- 0,
- &process);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_createProcess failed",
- osl_error == osl_Process_E_None
- );
-
- osl_error = ::osl_joinProcess(process);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_joinProcess returned with failure",
- osl_Process_E_None == osl_error
- );
-
- osl_freeProcessHandle(process);
- }
-
- CPPUNIT_TEST_SUITE(Test_osl_joinProcess);
- CPPUNIT_TEST(osl_joinProcessWithTimeout_timeout_failure);
- CPPUNIT_TEST(osl_joinProcessWithTimeout_without_timeout_failure);
- CPPUNIT_TEST(osl_joinProcessWithTimeout_infinite);
- CPPUNIT_TEST(osl_joinProcess);
- CPPUNIT_TEST_SUITE_END();
-};
-
-//#########################################################
-
-typedef std::vector<std::string, rtl::Allocator<std::string> > string_container_t;
-typedef string_container_t::const_iterator string_container_const_iter_t;
-typedef string_container_t::iterator string_container_iter_t;
-
-//#########################################################
-class exclude : public std::unary_function<std::string, bool>
-{
-public:
- //------------------------------------------------
- exclude(const string_container_t& exclude_list)
- {
- string_container_const_iter_t iter = exclude_list.begin();
- string_container_const_iter_t iter_end = exclude_list.end();
- for (/**/; iter != iter_end; ++iter)
- exclude_list_.push_back(env_var_name(*iter));
- }
-
- //------------------------------------------------
- bool operator() (const std::string& env_var) const
- {
- return (exclude_list_.end() !=
- std::find(
- exclude_list_.begin(),
- exclude_list_.end(),
- env_var_name(env_var)));
- }
-
-private:
- //-------------------------------------------------
- // extract the name from an environment variable
- // that is given in the form "NAME=VALUE"
- std::string env_var_name(const std::string& env_var) const
- {
- std::string::size_type pos_equal_sign =
- env_var.find_first_of("=");
-
- if (std::string::npos != pos_equal_sign)
- return std::string(env_var, 0, pos_equal_sign);
-
- return std::string();
- }
-
-private:
- string_container_t exclude_list_;
-};
-
-namespace
-{
- class starts_with
- : public std::unary_function<const std::string&, bool>
- {
- private:
- const std::string m_rString;
- public:
- starts_with(const char *pString) : m_rString(pString) {}
- bool operator()(const std::string &rEntry) const
- {
- return rEntry.find(m_rString) == 0;
- }
- };
-
- void tidy_container(string_container_t &env_container)
- {
- //sort them because there are no guarantees to ordering
- std::sort(env_container.begin(), env_container.end());
- //remove LD_PRELOAD because valgrind injects that into the
- //parent process
- env_container.erase(std::remove_if(env_container.begin(), env_container.end(),
- starts_with("LD_PRELOAD=")), env_container.end());
- }
-}
-
-#ifdef WNT
- void read_parent_environment(string_container_t* env_container)
- {
- LPTSTR env = reinterpret_cast<LPTSTR>(GetEnvironmentStrings());
- LPTSTR p = env;
-
- while (size_t l = _tcslen(p))
- {
- env_container->push_back(std::string(p));
- p += l + 1;
- }
- FreeEnvironmentStrings(env);
- tidy_container(*env_container);
- }
-#else
- void read_parent_environment(string_container_t* env_container)
- {
- for (int i = 0; NULL != environ[i]; i++)
- env_container->push_back(std::string(environ[i]));
- tidy_container(*env_container);
- }
-#endif
-
-//#########################################################
-class Test_osl_executeProcess : public CppUnit::TestFixture
-{
- const OUString env_param_;
-
- OUString temp_file_url_;
- OUString temp_file_path_;
- rtl_uString* parameters_[2];
- int parameters_count_;
- OUString suCWD;
- OUString suExecutableFileURL;
-
-public:
-
- //------------------------------------------------
- // ctor
- Test_osl_executeProcess() :
- env_param_(OUString(RTL_CONSTASCII_USTRINGPARAM("-env"))),
- parameters_count_(2)
- {
- parameters_[0] = env_param_.pData;
- suCWD = getExecutablePath();
- suExecutableFileURL = suCWD;
- suExecutableFileURL += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- suExecutableFileURL += EXECUTABLE_NAME;
- }
-
- //------------------------------------------------
- virtual void setUp()
- {
- temp_file_path_ = create_temp_file(temp_file_url_);
- parameters_[1] = temp_file_path_.pData;
- }
-
- virtual void tearDown()
- {
- osl::File::remove(temp_file_url_);
- }
-
- //------------------------------------------------
- OUString create_temp_file(OUString &temp_file_url)
- {
- FileBase::RC rc = FileBase::createTempFile(0, 0, &temp_file_url);
- CPPUNIT_ASSERT_MESSAGE("createTempFile failed", FileBase::E_None == rc);
-
- OUString temp_file_path;
- rc = FileBase::getSystemPathFromFileURL(temp_file_url, temp_file_path);
- CPPUNIT_ASSERT_MESSAGE("getSystemPathFromFileURL failed", FileBase::E_None == rc);
-
- return temp_file_path;
- }
-
- //------------------------------------------------
- void read_child_environment(string_container_t* env_container)
- {
- OString temp_file_name = OUStringToOString(OUString(
- parameters_[1]), osl_getThreadTextEncoding());
- std::ifstream file(temp_file_name.getStr());
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "I/O error, cannot open child environment file",
- file.is_open()
- );
-
- std::string line;
- line.reserve(1024);
- while (std::getline(file, line, '\0'))
- env_container->push_back(line);
- tidy_container(*env_container);
- }
-
- //------------------------------------------------
- // environment of the child process that was
- // started. The child process writes his
- // environment into a file
- bool compare_environments()
- {
- string_container_t parent_env;
- read_parent_environment(&parent_env);
-
- string_container_t child_env;
- read_child_environment(&child_env);
-
- return ((parent_env.size() == child_env.size()) &&
- (std::equal(child_env.begin(), child_env.end(), parent_env.begin())));
- }
-
- //------------------------------------------------
- // compare the equal environment parts and the
- // different part of the child environment
- bool compare_merged_environments(const string_container_t& different_env_vars)
- {
- string_container_t parent_env;
- read_parent_environment(&parent_env);
-
-#if OSL_DEBUG_LEVEL > 1
- for (string_container_t::const_iterator iter = parent_env.begin(), end = parent_env.end(); iter != end; ++iter)
- std::cerr << "initially parent env: " << *iter << std::endl;
-#endif
-
- //remove the environment variables that we have changed
- //in the child environment from the read parent environment
- parent_env.erase(
- std::remove_if(parent_env.begin(), parent_env.end(), exclude(different_env_vars)),
- parent_env.end());
-
-#if OSL_DEBUG_LEVEL > 1
- for (string_container_t::const_iterator iter = parent_env.begin(), end = parent_env.end(); iter != end; ++iter)
- std::cerr << "stripped parent env: " << *iter << std::endl;
-#endif
-
- //read the child environment and exclude the variables that
- //are different
- string_container_t child_env;
- read_child_environment(&child_env);
-
-#if OSL_DEBUG_LEVEL > 1
- for (string_container_t::const_iterator iter = child_env.begin(), end = child_env.end(); iter != end; ++iter)
- std::cerr << "initial child env: " << *iter << std::endl;
-#endif
- //partition the child environment into the variables that
- //are different to the parent environment (they come first)
- //and the variables that should be equal between parent
- //and child environment
- string_container_iter_t iter_logical_end =
- std::stable_partition(child_env.begin(), child_env.end(), exclude(different_env_vars));
-
- string_container_t different_child_env_vars(child_env.begin(), iter_logical_end);
- child_env.erase(child_env.begin(), iter_logical_end);
-
-#if OSL_DEBUG_LEVEL > 1
- for (string_container_t::const_iterator iter = child_env.begin(), end = child_env.end(); iter != end; ++iter)
- std::cerr << "stripped child env: " << *iter << std::endl;
-#endif
-
- bool common_env_size_equals = (parent_env.size() == child_env.size());
- bool common_env_content_equals = std::equal(child_env.begin(), child_env.end(), parent_env.begin());
-
-#if OSL_DEBUG_LEVEL > 1
- for (string_container_t::const_iterator iter = different_env_vars.begin(), end = different_env_vars.end(); iter != end; ++iter)
- std::cerr << "different should be: " << *iter << std::endl;
-#endif
-
-
-#if OSL_DEBUG_LEVEL > 1
- for (string_container_t::const_iterator iter = different_child_env_vars.begin(), end = different_child_env_vars.end(); iter != end; ++iter)
- std::cerr << "different are: " << *iter << std::endl;
-#endif
-
- bool different_env_size_equals = (different_child_env_vars.size() == different_env_vars.size());
- bool different_env_content_equals =
- std::equal(different_env_vars.begin(), different_env_vars.end(), different_child_env_vars.begin());
-
- return (common_env_size_equals && common_env_content_equals &&
- different_env_size_equals && different_env_content_equals);
- }
-
- //------------------------------------------------
- // test that parent and child process have the
- // same environment when osl_executeProcess will
- // be called with out setting new environment
- // variables
- void osl_execProc_parent_equals_child_environment()
- {
- oslProcess process;
- oslProcessError osl_error = osl_executeProcess(
- suExecutableFileURL.pData,
- parameters_,
- parameters_count_,
- osl_Process_NORMAL,
- NULL,
- suCWD.pData,
- NULL,
- 0,
- &process);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_createProcess failed",
- osl_error == osl_Process_E_None
- );
-
- osl_error = ::osl_joinProcess(process);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_joinProcess returned with failure",
- osl_Process_E_None == osl_error
- );
-
- osl_freeProcessHandle(process);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Parent and child environment not equal",
- compare_environments()
- );
- }
-
- //------------------------------------------------
- #define ENV1 "PAT=a:\\"
- #define ENV2 "PATHb=b:\\"
- #define ENV3 "Patha=c:\\"
- #define ENV4 "Patha=d:\\"
-
- void osl_execProc_merged_child_environment()
- {
- rtl_uString* child_env[4];
- OUString env1(RTL_CONSTASCII_USTRINGPARAM(ENV1));
- OUString env2(RTL_CONSTASCII_USTRINGPARAM(ENV2));
- OUString env3(RTL_CONSTASCII_USTRINGPARAM(ENV3));
- OUString env4(RTL_CONSTASCII_USTRINGPARAM(ENV4));
-
- child_env[0] = env1.pData;
- child_env[1] = env2.pData;
- child_env[2] = env3.pData;
- child_env[3] = env4.pData;
-
- oslProcess process;
- oslProcessError osl_error = osl_executeProcess(
- suExecutableFileURL.pData,
- parameters_,
- parameters_count_,
- osl_Process_NORMAL,
- NULL,
- suCWD.pData,
- child_env,
- SAL_N_ELEMENTS(child_env),
- &process);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_createProcess failed",
- osl_error == osl_Process_E_None
- );
-
- osl_error = ::osl_joinProcess(process);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_joinProcess returned with failure",
- osl_Process_E_None == osl_error
- );
-
- osl_freeProcessHandle(process);
-
- string_container_t different_child_env_vars;
- different_child_env_vars.push_back(ENV1);
- different_child_env_vars.push_back(ENV2);
- different_child_env_vars.push_back(ENV4);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_execProc_merged_child_environment",
- compare_merged_environments(different_child_env_vars)
- );
- }
-
- void osl_execProc_test_batch()
- {
- oslProcess process;
-#if defined(WNT)
- rtl::OUString suBatch = suCWD + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/")) + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("batch.bat"));
-#else
- rtl::OUString suBatch = suCWD + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/")) + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("batch.sh"));
-#endif
- oslProcessError osl_error = osl_executeProcess(
- suBatch.pData,
- NULL,
- 0,
- osl_Process_NORMAL,
- NULL,
- suCWD.pData,
- NULL,
- 0,
- &process);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_createProcess failed",
- osl_error == osl_Process_E_None
- );
-
- osl_error = ::osl_joinProcess(process);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_joinProcess returned with failure",
- osl_Process_E_None == osl_error
- );
-
- osl_freeProcessHandle(process);
- }
-
- void osl_execProc_exe_name_in_argument_list()
- {
- rtl_uString* params[3];
-
- params[0] = suExecutableFileURL.pData;
- params[1] = env_param_.pData;
- params[2] = temp_file_path_.pData;
- oslProcess process;
- oslProcessError osl_error = osl_executeProcess(
- NULL,
- params,
- 3,
- osl_Process_NORMAL,
- NULL,
- suCWD.pData,
- NULL,
- 0,
- &process);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_createProcess failed",
- osl_error == osl_Process_E_None
- );
-
- osl_error = ::osl_joinProcess(process);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_joinProcess returned with failure",
- osl_Process_E_None == osl_error
- );
-
- osl_freeProcessHandle(process);
- }
-
- CPPUNIT_TEST_SUITE(Test_osl_executeProcess);
- //TODO: Repair these under windows.
-#ifndef WNT
- CPPUNIT_TEST(osl_execProc_parent_equals_child_environment);
- CPPUNIT_TEST(osl_execProc_merged_child_environment);
-#endif
- ///TODO: Repair makefile to get the batch.sh, batch.bat copied to $(BIN) for test execution
- // CPPUNIT_TEST(osl_execProc_test_batch);
- ///TODO: Repair test (or tested function ;-) - test fails.
- // CPPUNIT_TEST(osl_execProc_exe_name_in_argument_list);
- CPPUNIT_TEST_SUITE_END();
-};
-
-//#####################################
-// register test suites
-//CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(Test_osl_joinProcess, "Test_osl_joinProcess");
-CPPUNIT_TEST_SUITE_REGISTRATION(Test_osl_executeProcess);
-
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/process/osl_process_child.cxx b/sal/qa/osl/process/osl_process_child.cxx
deleted file mode 100644
index cbc72cd73..000000000
--- a/sal/qa/osl/process/osl_process_child.cxx
+++ /dev/null
@@ -1,127 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-//########################################
-// includes
-
-#if ( defined WNT ) // Windows
-# define UNICODE
-# define _UNICODE
-# define WIN32_LEAN_AND_MEAN
-# include <windows.h>
-# include <tchar.h>
-#else
-# include <unistd.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <iostream>
-#include <fstream>
-#include <string.h>
-
-#include <rtl/ustring.hxx>
-
-#ifdef UNX
-#if defined( MACOSX )
-# include <crt_externs.h>
-# define environ (*_NSGetEnviron())
-# else
- extern char** environ;
-# endif
-#endif
-
-//########################################
-// defines
-
-#ifdef WNT
-# define SLEEP(t) (Sleep((t)*1000))
-#else
-# define SLEEP(t) (sleep((t)))
-#endif
-
-//########################################
-void wait_for_seconds(char* time)
-{
- SLEEP(atoi(time));
-}
-
-//########################################
-
-#ifdef WNT
-//########################################
-void w_to_a(LPCTSTR _strW, LPSTR strA, DWORD size)
-{
- LPCWSTR strW = reinterpret_cast<LPCWSTR>(_strW);
- WideCharToMultiByte(CP_ACP, 0, strW, -1, strA, size, NULL, NULL);
-}
-//########################################
- void dump_env(char* file_path)
- {
- LPTSTR env = reinterpret_cast<LPTSTR>(
- GetEnvironmentStrings());
- LPTSTR p = env;
-
- std::ofstream file(file_path);
-
- char buffer[32767];
- while (size_t l = _tcslen(reinterpret_cast<wchar_t*>(p)))
- {
- w_to_a(p, buffer, sizeof(buffer));
- file << buffer << '\0';
- p += l + 1;
- }
- FreeEnvironmentStrings(env);
- }
-#else
- void dump_env(char* file_path)
- {
- std::ofstream file(file_path);
- for (int i = 0; NULL != environ[i]; ++i)
- file << environ[i] << '\0';
- }
-#endif
-
-//########################################
-int main(int argc, char* argv[])
-{
- if (argc > 2)
- {
- if (0 == strcmp("-join", argv[1]))
- wait_for_seconds(argv[2]);
- else if (0 == strcmp("-env", argv[1]))
- dump_env(argv[2]);
- }
-
- return 0;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/profile/osl_old_testprofile.cxx b/sal/qa/osl/profile/osl_old_testprofile.cxx
deleted file mode 100644
index 5d9dfcc81..000000000
--- a/sal/qa/osl/profile/osl_old_testprofile.cxx
+++ /dev/null
@@ -1,96 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// LLA:
-// this file is converted to use with testshl2
-// original was placed in sal/test/textenc.cxx
-
-
-// -----------------------------------------------------------------------------
-#include <stdio.h>
-#include <osl/profile.h>
-#include <sal/cppunit.h>
-
-
-//==================================================================================================
-// -----------------------------------------------------------------------------
-namespace osl_Profile
-{
- class oldtests : public CppUnit::TestFixture
- {
- public:
- void test_profile();
-
- CPPUNIT_TEST_SUITE( oldtests );
- CPPUNIT_TEST( test_profile );
- CPPUNIT_TEST_SUITE_END( );
- };
-
-void oldtests::test_profile(void)
-{
- oslProfile hProfile;
- rtl_uString* ustrProfileName=0;
- rtl_uString* ustrProfileName2=0;
-
- rtl_uString_newFromAscii(&ustrProfileName,"//./tmp/soffice.ini");
- rtl_uString_newFromAscii(&ustrProfileName2,"//./tmp/not_existing_path/soffice.ini");
-
-
- // successful write
- hProfile = osl_openProfile( ustrProfileName, 0 );
- if (hProfile != 0)
- {
- if (! osl_writeProfileBool( hProfile, "testsection", "testbool", 1 ))
- printf( "### cannot write into init file!\n" );
-
- osl_closeProfile( hProfile );
- }
-
- // unsuccessful write
- hProfile = osl_openProfile( ustrProfileName2, 0 );
- if (hProfile != 0)
- {
- if (osl_writeProfileBool( hProfile, "testsection", "testbool", 1 ))
- printf( "### unexpected success writing into test2.ini!\n" );
-
- osl_closeProfile( hProfile );
- }
-
- rtl_uString_release(ustrProfileName);
- rtl_uString_release(ustrProfileName2);
-}
-
-} // namespace osl_Profile
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( osl_Profile::oldtests );
-
-// -----------------------------------------------------------------------------
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/security/makefile.mk b/sal/qa/osl/security/makefile.mk
deleted file mode 100755
index 85d9beb44..000000000
--- a/sal/qa/osl/security/makefile.mk
+++ /dev/null
@@ -1,66 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-
-PRJNAME=sal
-TARGET=qa_osl_security
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-.IF "$(OS)" == "IOS"
-CFLAGSCXX += -DCPPUNIT_PLUGIN_EXPORTED_NAME=cppunitTest_$(TARGET)
-.ENDIF
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-SHL1OBJS= \
- $(SLO)$/osl_Security.obj
-
-SHL1TARGET= osl_Security
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-.IF "$(GUI)" == "WNT"
-SHL1STDLIBS+= $(ADVAPI32LIB)
-.ENDIF
-
-SHL1IMPLIB= i$(SHL1TARGET)
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-DEF1NAME =$(SHL1TARGET)
-SHL1VERSIONMAP= $(PRJ)$/qa$/export.map
-
-SLOFILES = $(SHL1OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/osl/security/osl_Security.cxx b/sal/qa/osl/security/osl_Security.cxx
deleted file mode 100644
index 230b27e96..000000000
--- a/sal/qa/osl/security/osl_Security.cxx
+++ /dev/null
@@ -1,677 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
- /*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-//------------------------------------------------------------------------
-// header file
-//------------------------------------------------------------------------
-#ifdef WNT
-#include <windows.h>
-#endif
-#include <osl_Security_Const.h>
-
-using namespace osl;
-using namespace rtl;
-
-
-//------------------------------------------------------------------------
-// helper functions and classes
-//------------------------------------------------------------------------
-
-/** print Boolean value.
-*/
-inline void printBool( sal_Bool bOk )
-{
- //t_print("#printBool# " );
- ( sal_True == bOk ) ? t_print("TRUE!\n" ): t_print("FALSE!\n" );
-}
-
-/** print a UNI_CODE String.
-*/
-inline void printUString( const ::rtl::OUString & str )
-{
- rtl::OString aString;
-
- //t_print("#printUString_u# " );
- aString = ::rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US );
- t_print("%s\n", aString.getStr( ) );
-}
-
-
-//------------------------------------------------------------------------
-// test code start here
-//------------------------------------------------------------------------
-
-namespace osl_Security
-{
-
- /** testing the method:
- Security()
- */
- class ctors : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void ctors_001( )
- {
- ::osl::Security aSec;
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: create a security its handle should not be NULL.",
- aSec.getHandle( ) != NULL );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_001 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class ctors
-
-
- /** testing the methods:
- inline sal_Bool SAL_CALL logonUser(const ::rtl::OUString& strName,
- const ::rtl::OUString& strPasswd);
- inline sal_Bool SAL_CALL logonUser(const ::rtl::OUString & strName,
- const ::rtl::OUString & strPasswd,
- const ::rtl::OUString & strFileServer);
- */
- class logonUser : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes;
-
- void logonUser_user_pwd( )
- {
- ::osl::Security aSec;
- bRes = aSec.logonUser( aLogonUser, aLogonPasswd );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: check logon user through forwarded user name, pwd, passed in (UNX), failed in (W32).",
- ( sal_True == bRes ) );
- }
-
- void logonUser_user_pwd_server( )
- {
- ::osl::Security aSec;
- bRes = aSec.logonUser( aLogonUser, aLogonPasswd, aFileServer );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: check logon user through forwarded user name, pwd and server name, failed in (UNX)(W32).",
- ( sal_True == bRes ) );
- }
-
-
- CPPUNIT_TEST_SUITE( logonUser );
- if ( !aStringForward.equals( aNullUrl ) && aStringForward.indexOf( (sal_Unicode)' ' ) != -1 && ( aStringForward.indexOf( ( sal_Unicode ) ' ' ) == aStringForward.lastIndexOf( ( sal_Unicode ) ' ' ) ) )
- /// if user name and passwd are forwarded
- {
- CPPUNIT_TEST( logonUser_user_pwd );
- }
- if ( !aStringForward.equals( aNullUrl ) && aStringForward.indexOf( (sal_Unicode)' ' ) != -1 && ( aStringForward.indexOf( ( sal_Unicode ) ' ' ) != aStringForward.lastIndexOf( ( sal_Unicode ) ' ' ) ) )
- /// if user name and passwd and file server are forwarded
- {
- CPPUNIT_TEST( logonUser_user_pwd_server );
- }
- CPPUNIT_TEST_SUITE_END( );
- }; // class logonUser
-
-
- /** testing the method:
- inline sal_Bool Security::getUserIdent( rtl::OUString& strIdent) const
- */
- class getUserIdent : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void getUserIdent_001( )
- {
- ::osl::Security aSec;
- ::rtl::OUString strID;
- bRes = aSec.getUserIdent( strID );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: get UserID and compare it with names got at the beginning of the test.",
- ( sal_True == strUserID.equals( strID ) ) && ( sal_True == bRes ));
- }
-
- CPPUNIT_TEST_SUITE( getUserIdent );
- CPPUNIT_TEST( getUserIdent_001 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class getUserIdent
-
-
- /** testing the method:
- inline sal_Bool SAL_CALL getUserName( ::rtl::OUString& strName) const;
- */
- class getUserName : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void getUserName_001( )
- {
- ::osl::Security aSec;
-#ifdef WNT
- ::rtl::OUString strName( strUserName ), strGetName;
-#else
- ::rtl::OUString strName( strUserName ), strGetName;
-#endif
- bRes = aSec.getUserName( strGetName );
-
- sal_Int32 nPos = -1;
- if (strName.getLength() > 0)
- {
- nPos = strGetName.indexOf(strName);
- }
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: get UserName and compare it with names got at the beginning of the test.",
- ( nPos >= 0 ) && ( sal_True == bRes ) );
- }
-
- CPPUNIT_TEST_SUITE( getUserName );
- CPPUNIT_TEST( getUserName_001 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class getUserName
-
-
- /** testing the method:
- inline sal_Bool Security::getConfigDir( rtl::OUString& strDirectory ) const
- */
- class getConfigDir : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void getConfigDir_001( )
- {
- ::osl::Security aSec;
- ::rtl::OUString strConfig;
- bRes = aSec.getConfigDir( strConfig );
-
- CPPUNIT_ASSERT_MESSAGE( "failed to find a ConfigDir!",
- ( sal_True == bRes ));
- }
-
- CPPUNIT_TEST_SUITE( getConfigDir );
- CPPUNIT_TEST( getConfigDir_001 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class getConfigDir
-
- /** testing the method:
- inline sal_Bool SAL_CALL isAdministrator() const;
- */
- class isAdministrator : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes;
-
- void isAdministrator_001( )
- {
- ::osl::Security aSec;
- bRes = aSec.isAdministrator( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: check if the user is administrator at beginning, compare here.",
- bRes == isAdmin );
- }
-
- CPPUNIT_TEST_SUITE( isAdministrator );
- CPPUNIT_TEST( isAdministrator_001 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class isAdministrator
-
- /** testing the method:
- inline oslSecurity getHandle() const;
- */
- class getHandle : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes;
-
- void getHandle_001( )
- {
- ::osl::Security aSec;
- bRes = aSec.isAdministrator( ) == osl_isAdministrator( aSec.getHandle( ) );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: use getHandle function to call C API.",
- bRes == sal_True );
- }
-
- CPPUNIT_TEST_SUITE( getHandle );
- CPPUNIT_TEST( getHandle_001 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class getHandle
-
-
- class UserProfile : public CppUnit::TestFixture
- {
- public:
-
- void loadUserProfile( )
- {
- ::osl::Security aSec;
- sal_Bool bValue = osl_loadUserProfile(aSec.getHandle());
-
- CPPUNIT_ASSERT_MESSAGE( "empty function.", bValue == sal_False );
- }
-
- void unloadUserProfile( )
- {
- ::osl::Security aSec;
- osl_unloadUserProfile(aSec.getHandle());
- CPPUNIT_ASSERT_MESSAGE( "empty function.", sal_True );
- }
-
- CPPUNIT_TEST_SUITE( UserProfile );
- CPPUNIT_TEST( loadUserProfile );
- CPPUNIT_TEST( unloadUserProfile );
- CPPUNIT_TEST_SUITE_END( );
- }; // class UserProfile
-
- class loginUserOnFileServer : public CppUnit::TestFixture
- {
- public:
-
- void loginUserOnFileServer_001( )
- {
- rtl::OUString suUserName;
- rtl::OUString suPassword;
- rtl::OUString suFileServer;
- ::osl::Security aSec;
- oslSecurity pSec = aSec.getHandle();
-
- oslSecurityError erg = osl_loginUserOnFileServer(suUserName.pData, suPassword.pData, suFileServer.pData, &pSec);
-
- CPPUNIT_ASSERT_MESSAGE( "empty function.", erg == osl_Security_E_UserUnknown );
- }
-
- CPPUNIT_TEST_SUITE( loginUserOnFileServer );
- CPPUNIT_TEST( loginUserOnFileServer_001 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class loginUserOnFileServer
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Security::ctors);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Security::logonUser);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Security::getUserIdent);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Security::getUserName);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Security::getConfigDir);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Security::isAdministrator);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Security::getHandle);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Security::UserProfile);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Security::loginUserOnFileServer);
-
-// -----------------------------------------------------------------------------
-
-} // namespace osl_Security
-
-
-/* This defines an own TestPlugIn implementation with an own initialize()
- method that will be called after loading the PlugIn
- */
-#include <cppunit/plugin/TestPlugInDefaultImpl.h>
-
-class MyTestPlugInImpl: public CPPUNIT_NS::TestPlugInDefaultImpl
-{
- public:
- MyTestPlugInImpl() {};
- void initialize( CPPUNIT_NS::TestFactoryRegistry *registry,
- const CPPUNIT_NS::PlugInParameters &parameters );
-};
-
-
-void MyTestPlugInImpl::initialize( CPPUNIT_NS::TestFactoryRegistry *,
- const CPPUNIT_NS::PlugInParameters & parameters)
-{
- /// start message
- t_print("#Initializing ...\n" );
- t_print("#\n#logonUser function need root/Administrator account to test.\n" );
- t_print("#You can test by login with root/Administrator, and excute:\n" );
- t_print("#testshl2 -forward \"username password\" ../../../wntmsci9/bin/Security.dll\n" );
- t_print("# where username and password are forwarded account info.\n" );
- t_print("#if no text forwarded, this function will be skipped.\n" );
-
- /// get system information
-#if ( defined UNX )
- /// some initialization work for UNIX OS
-
-
- struct passwd* pw;
- CPPUNIT_ASSERT_MESSAGE( "getpwuid: no password entry\n",( pw = getpwuid( getuid() ) ) != NULL );
-
- /// get user ID;
- strUserID = ::rtl::OUString::valueOf( ( sal_Int32 )getuid( ) );
-
- /// get user Name;
- strUserName = ::rtl::OUString::createFromAscii( pw->pw_name );
-
- /// get home directory;
- char *pw_dir = pw->pw_dir;
- if( getenv( "FAKEROOTKEY" ) )
- pw_dir = getenv("HOME");
- CPPUNIT_ASSERT_MESSAGE( "#Convert from system path to URL failed.",
- ::osl::File::E_None == ::osl::File::getFileURLFromSystemPath( ::rtl::OUString::createFromAscii( pw_dir ), strHomeDirectory ) );
-
- /// get config directory;
- strConfigDirectory = strHomeDirectory.copy(0);
-
- /// is administrator;
- if( !getuid( ) )
- isAdmin = sal_True;
-
-#endif
-#if defined ( WNT )
- /// some initialization work for Windows OS
-
-
- /// Get the user name, computer name, user home directory.
- LPTSTR lpszSystemInfo; // pointer to system information string
- DWORD cchBuff = BUFSIZE; // size of computer or user name
- TCHAR tchBuffer[BUFSIZE]; // buffer for string
-
- lpszSystemInfo = tchBuffer;
- cchBuff = BUFSIZE;
- if( GetUserNameA(lpszSystemInfo, &cchBuff) )
- strUserName = ::rtl::OUString::createFromAscii( lpszSystemInfo );
-
- if( GetComputerName(lpszSystemInfo, &cchBuff) )
- strComputerName = ::rtl::OUString::createFromAscii( lpszSystemInfo );
-
- /// Get user home directory.
- HKEY hRegKey;
- sal_Char PathA[_MAX_PATH];
- ::rtl::OUString strHome;
- if (RegOpenKey(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", &hRegKey) == ERROR_SUCCESS)
- {
- LONG lRet, lSize = sizeof(PathA);
- DWORD Type;
-
- lRet = RegQueryValueEx(hRegKey, "AppData", NULL, &Type, ( unsigned char * )PathA, ( unsigned long * )&lSize);
- if ( ( lRet == ERROR_SUCCESS ) && ( Type == REG_SZ ) && ( _access( PathA, 0 ) == 0 ) )
- {
- CPPUNIT_ASSERT_MESSAGE( "#Convert from system path to URL failed.",
- ::osl::File::E_None == ::osl::File::getFileURLFromSystemPath( ::rtl::OUString::createFromAscii( PathA ), strConfigDirectory ) );
- }
-
- lRet = RegQueryValueEx(hRegKey, "Personal", NULL, &Type, ( unsigned char * )PathA, ( unsigned long * )&lSize);
- if ( ( lRet == ERROR_SUCCESS ) && ( Type == REG_SZ ) && ( _access( PathA, 0 ) == 0 ) )
- {
- CPPUNIT_ASSERT_MESSAGE( "#Convert from system path to URL failed.",
- ::osl::File::E_None == ::osl::File::getFileURLFromSystemPath( ::rtl::OUString::createFromAscii( PathA ), strHomeDirectory ) );
- }
-
- RegCloseKey(hRegKey);
- }
-
-
- /// Get user Security ID:
-
- // Create buffers that may be large enough. If a buffer is too small, the count parameter will be set to the size needed.
- const DWORD INITIAL_SIZE = 32;
- DWORD cbSid = 0;
- DWORD dwSidBufferSize = INITIAL_SIZE;
- DWORD cchDomainName = 0;
- DWORD dwDomainBufferSize = INITIAL_SIZE;
- WCHAR * wszDomainName = NULL;
- SID_NAME_USE eSidType;
- DWORD dwErrorCode = 0;
-
- LPCWSTR wszAccName = ( LPWSTR ) strUserName.getStr( );
-
- // Create buffers for the SID and the domain name.
- PSID pSid = (PSID) new BYTE[dwSidBufferSize];
- CPPUNIT_ASSERT_MESSAGE("# creating SID buffer failed.\n", pSid!= NULL );
- memset( pSid, 0, dwSidBufferSize);
-
- wszDomainName = new WCHAR[dwDomainBufferSize];
- CPPUNIT_ASSERT_MESSAGE("# creating Domain name buffer failed.\n", wszDomainName != NULL );
- memset(wszDomainName, 0, dwDomainBufferSize*sizeof(WCHAR));
-
- // Obtain the SID for the account name passed.
- for ( ; ; )
- {
- // Set the count variables to the buffer sizes and retrieve the SID.
- cbSid = dwSidBufferSize;
- cchDomainName = dwDomainBufferSize;
- if (LookupAccountNameW(
- NULL, // Computer name. NULL for the local computer
- wszAccName,
- pSid, // Pointer to the SID buffer. Use NULL to get the size needed,
- &cbSid, // Size of the SID buffer needed.
- wszDomainName, // wszDomainName,
- &cchDomainName,
- &eSidType
- ))
- {
- if (IsValidSid( pSid) == FALSE)
- wprintf(L"# The SID for %s is invalid.\n", wszAccName);
- break;
- }
- dwErrorCode = GetLastError();
-
- // Check if one of the buffers was too small.
- if (dwErrorCode == ERROR_INSUFFICIENT_BUFFER)
- {
- if (cbSid > dwSidBufferSize)
- {
- // Reallocate memory for the SID buffer.
- wprintf(L"# The SID buffer was too small. It will be reallocated.\n");
- FreeSid( pSid);
- pSid = (PSID) new BYTE[cbSid];
- CPPUNIT_ASSERT_MESSAGE("# re-creating SID buffer failed.\n", pSid!= NULL );
- memset( pSid, 0, cbSid);
- dwSidBufferSize = cbSid;
- }
- if (cchDomainName > dwDomainBufferSize)
- {
- // Reallocate memory for the domain name buffer.
- wprintf(L"# The domain name buffer was too small. It will be reallocated.\n");
- delete [] wszDomainName;
- wszDomainName = new WCHAR[cchDomainName];
- CPPUNIT_ASSERT_MESSAGE("# re-creating domain name buffer failed.\n", wszDomainName!= NULL );
- memset(wszDomainName, 0, cchDomainName*sizeof(WCHAR));
- dwDomainBufferSize = cchDomainName;
- }
- }
- else
- {
- wprintf(L"# LookupAccountNameW failed. GetLastError returned: %d\n", dwErrorCode);
- break;
- }
- }
-
- // now got SID successfully, only need to compare SID, so I copied the rest lines from source to convert SID to OUString.
- PSID_IDENTIFIER_AUTHORITY psia;
- DWORD dwSubAuthorities;
- DWORD dwSidRev=SID_REVISION;
- DWORD dwCounter;
- DWORD dwSidSize;
- sal_Char *Ident;
-
- /* obtain SidIdentifierAuthority */
- psia=GetSidIdentifierAuthority(pSid);
-
- /* obtain sidsubauthority count */
- dwSubAuthorities=*GetSidSubAuthorityCount(pSid)<=5?*GetSidSubAuthorityCount(pSid):5;
-
- /* buffer length: S-SID_REVISION- + identifierauthority- + subauthorities- + NULL */
- Ident=(sal_Char * )malloc(88*sizeof(sal_Char));
-
- /* prepare S-SID_REVISION- */
- dwSidSize=wsprintf(Ident, TEXT("S-%lu-"), dwSidRev);
-
- /* prepare SidIdentifierAuthority */
- if ((psia->Value[0] != 0) || (psia->Value[1] != 0))
- {
- dwSidSize+=wsprintf(Ident + strlen(Ident),
- TEXT("0x%02hx%02hx%02hx%02hx%02hx%02hx"),
- (sal_uInt16)psia->Value[0],
- (sal_uInt16)psia->Value[1],
- (sal_uInt16)psia->Value[2],
- (sal_uInt16)psia->Value[3],
- (sal_uInt16)psia->Value[4],
- (sal_uInt16)psia->Value[5]);
- }
- else
- {
- dwSidSize+=wsprintf(Ident + strlen(Ident),
- TEXT("%lu"),
- (sal_uInt32)(psia->Value[5] ) +
- (sal_uInt32)(psia->Value[4] << 8) +
- (sal_uInt32)(psia->Value[3] << 16) +
- (sal_uInt32)(psia->Value[2] << 24) );
- }
-
- /* loop through SidSubAuthorities */
- for (dwCounter=0; dwCounter < dwSubAuthorities; dwCounter++)
- {
- dwSidSize+=wsprintf(Ident + dwSidSize, TEXT("-%lu"),
- *GetSidSubAuthority(pSid, dwCounter) );
- }
-
- strUserID = ::rtl::OUString::createFromAscii( Ident );
-
- free(Ident);
- delete pSid;
- delete [] wszDomainName;
-
-
- /// check if logged in user is administrator:
-
- BOOL b;
- SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY;
- PSID AdministratorsGroup;
- b = AllocateAndInitializeSid(
- &NtAuthority,
- 2,
- SECURITY_BUILTIN_DOMAIN_RID,
- DOMAIN_ALIAS_RID_ADMINS,
- 0, 0, 0, 0, 0, 0,
- &AdministratorsGroup);
- if(b)
- {
- if (!CheckTokenMembership( NULL, AdministratorsGroup, &b))
- {
- b = FALSE;
- }
- FreeSid(AdministratorsGroup);
- }
-
- isAdmin = ( sal_Bool )b;
-
-#endif
-
- /// print the information.
- t_print("#\n#Retrived system information is below:\n");
-
- t_print("Computer Name: ");
- if ( strComputerName == aNullUrl )
- t_print("Not retrived\n" );
- else
- printUString( strComputerName );
-
- t_print("Current User Name: ");
- if ( strUserName == aNullUrl )
- t_print("Not retrived\n" );
- else
- printUString( strUserName );
-
- t_print("Current User Home Directory:");
- if ( strHomeDirectory == aNullUrl )
- t_print("Not retrived\n" );
- else
- printUString( strHomeDirectory );
-
- t_print("Current Config Directory: ");
- if ( strConfigDirectory == aNullUrl )
- t_print("Not retrived\n" );
- else
- printUString( strConfigDirectory );
-
- t_print("Current UserID: ");
- if ( strUserID == aNullUrl )
- t_print("Not retrived\n" );
- else
- printUString( strUserID );
-
- t_print("Current User is: ");
- if ( isAdmin == sal_False )
- t_print("NOT Administrator.\n" );
- else
- t_print("Administrator.\n" );
-
- /// get and display forwarded text if available.
- aStringForward = ::rtl::OUString::createFromAscii( parameters.getCommandLine().c_str() );
- if ( !aStringForward.equals( aNullUrl ) && aStringForward.indexOf( (sal_Unicode)' ' ) != -1 )
- {
- sal_Int32 nFirstSpacePoint = aStringForward.indexOf( (sal_Unicode)' ' );;
- sal_Int32 nLastSpacePoint = aStringForward.lastIndexOf( (sal_Unicode)' ' );;
- if ( nFirstSpacePoint == nLastSpacePoint )
- /// only forwarded two parameters, username and password.
- {
- aLogonUser = aStringForward.copy( 0, nFirstSpacePoint );
- t_print("\n#Forwarded username: ");
- printUString( aLogonUser);
-
- aLogonPasswd = aStringForward.copy( nFirstSpacePoint +1, aStringForward.getLength( ) - 1 );
- t_print("#Forwarded password: ");
- for (int i = nFirstSpacePoint+1; i <= aStringForward.getLength()-1; ++i)
- t_print("*");
- t_print("\n" );
- }
- else
- /// forwarded three parameters, username, password and fileserver.
- {
- aLogonUser = aStringForward.copy( 0, nFirstSpacePoint );
- t_print("#Forwarded username: ");
- printUString( aLogonUser);
-
- aLogonPasswd = aStringForward.copy( nFirstSpacePoint +1, nLastSpacePoint );
- t_print("#Forwarded password: ");
- for (int i = nFirstSpacePoint+1; i <= nLastSpacePoint; ++i)
- t_print("*");
- t_print("\n" );
-
- aFileServer = aStringForward.copy( nLastSpacePoint +1, aStringForward.getLength( ) - 1 );
- t_print("#Forwarded FileServer: ");
- printUString( aFileServer );
-
- }
- }
-
- t_print("#\n#Initialization Done.\n" );
-
-}
-
-/* Instantiate and register the own TestPlugIn and instantiate the default
- main() function.
- (This is done by CPPUNIT_PLUGIN_IMPLEMENT() for TestPlugInDefaultImpl)
- */
-
-CPPUNIT_PLUGIN_EXPORTED_FUNCTION_IMPL( MyTestPlugInImpl );
-CPPUNIT_PLUGIN_IMPLEMENT_MAIN();
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/security/osl_Security_Const.h b/sal/qa/osl/security/osl_Security_Const.h
deleted file mode 100644
index 197745f7d..000000000
--- a/sal/qa/osl/security/osl_Security_Const.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_SECURITY_CONST_H_
-#define _OSL_SECURITY_CONST_H_
-
-#if ( defined WNT ) // Windows
-#include <io.h>
-#endif
-
-#include <sal/types.h>
-#include <rtl/ustring.hxx>
-#include <osl/file.hxx>
-#include <osl/security.hxx>
-
-#include <stdlib.h>
-#include <stdio.h>
-
-#if ( defined UNX )
-#include <unistd.h>
-#include <pwd.h>
-#endif
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-#include <cppunit/plugin/TestPlugInDefaultImpl.h>
-
-#define t_print printf
-
-#define BUFSIZE 1024
-const char pTestString[17] = "Sun Microsystems";
-
-
-#define OSLTEST_DECLARE_USTRING( str_name, str_value ) \
- ::rtl::OUString a##str_name = rtl::OUString::createFromAscii( str_value )
-
-//------------------------------------------------------------------------
-// condition names
-//------------------------------------------------------------------------
-
-// Intentionally different from the aNullURL in osl_File_Const.h to avoid
-// duplicate symbols as all the unit tests here get linked together for iOS...
-
-OSLTEST_DECLARE_USTRING( NullUrl, "" );
-
-::rtl::OUString aLogonUser( aNullUrl ), aLogonPasswd( aNullUrl ), aFileServer( aNullUrl ), aStringForward( aNullUrl );
-::rtl::OUString strUserName( aNullUrl ) , strComputerName( aNullUrl ) , strHomeDirectory( aNullUrl );
-::rtl::OUString strConfigDirectory( aNullUrl ), strUserID( aNullUrl );
-
-sal_Bool isAdmin = sal_False;
-
-#endif /* _OSL_SECURITY_CONST_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/setthreadname/test-setthreadname.cxx b/sal/qa/osl/setthreadname/test-setthreadname.cxx
deleted file mode 100644
index b969ad511..000000000
--- a/sal/qa/osl/setthreadname/test-setthreadname.cxx
+++ /dev/null
@@ -1,83 +0,0 @@
-/*************************************************************************
-*
-* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-*
-* Copyright 2000, 2011 Oracle and/or its affiliates.
-*
-* OpenOffice.org - a multi-platform office productivity suite
-*
-* This file is part of OpenOffice.org.
-*
-* OpenOffice.org is free software: you can redistribute it and/or modify
-* it under the terms of the GNU Lesser General Public License version 3
-* only, as published by the Free Software Foundation.
-*
-* OpenOffice.org is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU Lesser General Public License version 3 for more details
-* (a copy is included in the LICENSE file that accompanied this code).
-*
-* You should have received a copy of the GNU Lesser General Public License
-* version 3 along with OpenOffice.org. If not, see
-* <http://www.openoffice.org/license.html>
-* for a copy of the LGPLv3 License.
-*
-************************************************************************/
-
-#include "sal/config.h"
-#include <sal/cppunit.h>
-
-#include <cstdlib>
-#include <iostream>
-#include <limits>
-
-#include "boost/noncopyable.hpp"
-#include "osl/thread.hxx"
-
-namespace {
-
-class TestThread: public osl::Thread, private boost::noncopyable {
-private:
- virtual void SAL_CALL run();
-};
-
-void TestThread::run() {
-#if defined WNT
- if (std::getenv("URE_TEST_SETTHREADNAME") != 0) {
- // On Windows, setting thread names appears to only take effect when the
- // process is being debugged, so attach a debugger now:
- std::cout << "set: ";
- std::cin.ignore(std::numeric_limits< int >::max(), '\n');
- }
-#endif
- setName("TestThread");
- if (std::getenv("URE_TEST_SETTHREADNAME") != 0) {
- // On Linux, the thread name can now be observed with "ps -L"; on
- // Windows with the Microsoft compiler, the thread name can now be
- // observed in a debugger.
- std::cout << "stop: ";
- std::cin.ignore(std::numeric_limits< int >::max(), '\n');
- }
-}
-
-class Test: public CppUnit::TestFixture {
-private:
- CPPUNIT_TEST_SUITE(Test);
- CPPUNIT_TEST(test);
- CPPUNIT_TEST_SUITE_END();
-
- void test();
-};
-
-void Test::test() {
- TestThread t;
- t.create();
- t.join();
-}
-
-CPPUNIT_TEST_SUITE_REGISTRATION(Test);
-
-}
-
-CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sal/qa/osl/setthreadname/version.map b/sal/qa/osl/setthreadname/version.map
deleted file mode 100644
index ef2ab497c..000000000
--- a/sal/qa/osl/setthreadname/version.map
+++ /dev/null
@@ -1,34 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2011 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#***********************************************************************/
-
-UDK_3_0_0 {
- global:
- cppunitTestPlugIn;
-
- local:
- *;
-};
diff --git a/sal/qa/osl/socket/export.exp b/sal/qa/osl/socket/export.exp
deleted file mode 100755
index a13529da5..000000000
--- a/sal/qa/osl/socket/export.exp
+++ /dev/null
@@ -1 +0,0 @@
-registerAllTestFunction
diff --git a/sal/qa/osl/socket/makefile.mk b/sal/qa/osl/socket/makefile.mk
deleted file mode 100755
index cdc268a24..000000000
--- a/sal/qa/osl/socket/makefile.mk
+++ /dev/null
@@ -1,223 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-
-PRJNAME=sal
-TARGET=qa_osl_socket
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-# BEGIN ----------------------------------------------------------------
-# auto generated Target:Socket by codegen.pl
-SHL1OBJS= \
- $(SLO)$/osl_Socket.obj
-
-SHL1TARGET=osl_SocketOld
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-.IF "$(GUI)" == "WNT"
-SHL1STDLIBS+= $(WS2_32LIB)
-.ENDIF
-
-.IF "$(GUI)" == "UNX"
-SHL1STDLIBS+= -ldl -lnsl
-.ENDIF
-
-SHL1IMPLIB= i$(SHL1TARGET)
-# SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-DEF1NAME=$(SHL1TARGET)
-# DEF1EXPORTFILE= export.exp
-SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
-# auto generated Target:Socket
-# END ------------------------------------------------------------------
-
-# --- BEGIN --------------------------------------------------------
-SHL2OBJS= \
- $(SLO)$/osl_Socket_tests.obj
-SHL2TARGET= osl_Socket_tests
-SHL2STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL2IMPLIB= i$(SHL2TARGET)
-DEF2NAME= $(SHL2TARGET)
-SHL2VERSIONMAP = $(PRJ)$/qa$/export.map
-
-# END --------------------------------------------------------------
-
-# BEGIN ----------------------------------------------------------------
-# auto generated Target:Socket by codegen.pl
-SHL3OBJS= \
- $(SLO)$/sockethelper.obj \
- $(SLO)$/osl_StreamSocket.obj
-
-SHL3TARGET= osl_StreamSocket
-SHL3STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-.IF "$(GUI)" == "WNT"
-SHL3STDLIBS += $(WS2_32LIB)
-.ENDIF
-
-.IF "$(GUI)" == "UNX"
-SHL3STDLIBS += -ldl -lnsl
-.ENDIF
-
-SHL3IMPLIB= i$(SHL3TARGET)
-DEF3NAME= $(SHL3TARGET)
-SHL3VERSIONMAP = $(PRJ)$/qa$/export.map
-# auto generated Target:Socket
-# END ------------------------------------------------------------------
-
-# BEGIN ----------------------------------------------------------------
-# auto generated Target:Socket by codegen.pl
-SHL4OBJS= \
- $(SLO)$/sockethelper.obj \
- $(SLO)$/osl_DatagramSocket.obj
-
-SHL4TARGET= osl_DatagramSocket
-SHL4STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-.IF "$(GUI)" == "WNT"
-SHL4STDLIBS += $(WS2_32LIB)
-.ENDIF
-
-.IF "$(GUI)" == "UNX"
-SHL4STDLIBS += -ldl -lnsl
-.ENDIF
-
-SHL4IMPLIB= i$(SHL4TARGET)
-DEF4NAME= $(SHL4TARGET)
-SHL4VERSIONMAP = $(PRJ)$/qa$/export.map
-# auto generated Target:Socket
-# END ------------------------------------------------------------------
-
-# BEGIN ----------------------------------------------------------------
-# auto generated Target:Socket by codegen.pl
-SHL5OBJS= \
- $(SLO)$/sockethelper.obj \
- $(SLO)$/osl_SocketAddr.obj
-
-SHL5TARGET= osl_SocketAddr
-SHL5STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-.IF "$(GUI)" == "WNT"
-SHL5STDLIBS += $(WS2_32LIB)
-.ENDIF
-
-.IF "$(GUI)" == "UNX"
-SHL5STDLIBS += -ldl -lnsl
-.ENDIF
-
-SHL5IMPLIB= i$(SHL5TARGET)
-DEF5NAME= $(SHL5TARGET)
-SHL5VERSIONMAP = $(PRJ)$/qa$/export.map
-# auto generated Target:Socket
-# END ------------------------------------------------------------------
-
-# BEGIN ----------------------------------------------------------------
-# auto generated Target:Socket by codegen.pl
-SHL6OBJS= \
- $(SLO)$/sockethelper.obj \
- $(SLO)$/osl_Socket2.obj
-
-SHL6TARGET= osl_Socket2
-SHL6STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-.IF "$(GUI)" == "WNT"
-SHL6STDLIBS += $(WS2_32LIB)
-.ENDIF
-
-.IF "$(GUI)" == "UNX"
-SHL6STDLIBS += -ldl -lnsl
-.ENDIF
-
-SHL6IMPLIB= i$(SHL6TARGET)
-DEF6NAME= $(SHL6TARGET)
-SHL6VERSIONMAP = $(PRJ)$/qa$/export.map
-# auto generated Target:Socket
-# END ------------------------------------------------------------------
-
-# BEGIN ----------------------------------------------------------------
-# auto generated Target:Socket by codegen.pl
-SHL7OBJS= \
- $(SLO)$/sockethelper.obj \
- $(SLO)$/osl_ConnectorSocket.obj
-
-SHL7TARGET= osl_ConnectorSocket
-SHL7STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-.IF "$(GUI)" == "WNT"
-SHL7STDLIBS += $(WS2_32LIB)
-.ENDIF
-
-.IF "$(GUI)" == "UNX"
-SHL7STDLIBS += -ldl -lnsl
-.ENDIF
-
-SHL7IMPLIB= i$(SHL7TARGET)
-DEF7NAME= $(SHL7TARGET)
-SHL7VERSIONMAP = $(PRJ)$/qa$/export.map
-# auto generated Target:Socket
-# END ------------------------------------------------------------------
-
-# BEGIN ----------------------------------------------------------------
-# auto generated Target:Socket by codegen.pl
-SHL8OBJS= \
- $(SLO)$/sockethelper.obj \
- $(SLO)$/osl_AcceptorSocket.obj
-
-SHL8TARGET= osl_AcceptorSocket
-SHL8STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-.IF "$(GUI)" == "WNT"
-SHL8STDLIBS += $(WS2_32LIB)
-.ENDIF
-
-.IF "$(GUI)" == "UNX"
-SHL8STDLIBS += -ldl -lnsl
-.ENDIF
-
-SHL8IMPLIB= i$(SHL8TARGET)
-DEF8NAME= $(SHL8TARGET)
-SHL8VERSIONMAP = $(PRJ)$/qa$/export.map
-# auto generated Target:Socket
-# END ------------------------------------------------------------------
-
-#------------------------------- All object files -------------------------------
-# do this here, so we get right dependencies
-# SLOFILES=$(SHL1OBJS) $(SHL2OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/osl/socket/osl_AcceptorSocket.cxx b/sal/qa/osl/socket/osl_AcceptorSocket.cxx
deleted file mode 100644
index 2430a93aa..000000000
--- a/sal/qa/osl/socket/osl_AcceptorSocket.cxx
+++ /dev/null
@@ -1,266 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-/** test coder preface:
- 1. the BSD socket function will meet "unresolved external symbol error" on Windows platform
- if you are not including ws2_32.lib in makefile.mk, the including format will be like this:
-
- .IF "$(GUI)" == "WNT"
- SHL1STDLIBS += $(SOLARLIBDIR)$/cppunit.lib
- SHL1STDLIBS += ws2_32.lib
- .ENDIF
-
- likewise on Solaris platform.
- .IF "$(GUI)" == "UNX"
- SHL1STDLIBS+=$(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a
- SHL1STDLIBS += -lsocket -ldl -lnsl
- .ENDIF
-
- 2. since the Socket implementation of osl is only IPv4 oriented, our test are mainly focus on IPv4
- category.
-
- 3. some fragment of Socket source implementation are lack of comment so it is hard for testers
- guess what the exact functionality or usage of a member. Hope the Socket section's comment
- will be added.
-
- 4. following functions are declared but not implemented:
- inline sal_Bool SAL_CALL operator== (const SocketAddr & Addr) const;
- */
-
-//------------------------------------------------------------------------
-// include files
-//------------------------------------------------------------------------
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#include "osl_Socket_Const.h"
-#include "sockethelper.hxx"
-
-using namespace osl;
-using ::rtl::OUString;
-
-#define IP_PORT_FTP 21
-#define IP_PORT_MYPORT9 8897
-#define IP_PORT_MYPORT4 8885
-#define IP_PORT_MYPORT3 8884
-
-//------------------------------------------------------------------------
-// helper functions
-//------------------------------------------------------------------------
-
-// just used to test socket::close() when accepting
-class AcceptorThread : public Thread
-{
- ::osl::AcceptorSocket asAcceptorSocket;
- ::rtl::OUString aHostIP;
- sal_Bool bOK;
-protected:
- void SAL_CALL run( )
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIP, IP_PORT_MYPORT9 );
- ::osl::StreamSocket ssStreamConnection;
-
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //integer not sal_Bool : sal_True);
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- if ( sal_True != bOK1 )
- {
- t_print("# AcceptorSocket bind address failed.\n" ) ;
- return;
- }
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- if ( sal_True != bOK2 )
- {
- t_print("# AcceptorSocket listen address failed.\n" ) ;
- return;
- }
-
- asAcceptorSocket.enableNonBlockingMode( sal_False );
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection( ssStreamConnection );
- if (eResult != osl_Socket_Ok )
- {
- bOK = sal_True;
- t_print("AcceptorThread: acceptConnection failed! \n");
- }
- }
-public:
- AcceptorThread(::osl::AcceptorSocket & asSocket, ::rtl::OUString const& aBindIP )
- : asAcceptorSocket( asSocket ), aHostIP( aBindIP )
- {
- bOK = sal_False;
- }
-
- sal_Bool isOK() { return bOK; }
-
- ~AcceptorThread( )
- {
- if ( isRunning( ) )
- {
- asAcceptorSocket.shutdown();
- t_print("# error: Acceptor thread not terminated.\n" );
- }
- }
-};
-
-namespace osl_AcceptorSocket
-{
-
- /** testing the methods:
- inline AcceptorSocket(oslAddrFamily Family = osl_Socket_FamilyInet,
- oslProtocol Protocol = osl_Socket_ProtocolIp,
- oslSocketType Type = osl_Socket_TypeStream);
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
-
- void ctors_001()
- {
- /// Socket constructor.
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_001 constructor function: check if the acceptor socket was created successfully.",
- osl_Socket_TypeStream == asSocket.getType( ) );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class ctors
-
- /** testing the method:
- inline sal_Bool SAL_CALL listen(sal_Int32 MaxPendingConnections= -1);
- inline oslSocketResult SAL_CALL acceptConnection( StreamSocket& Connection);
- inline oslSocketResult SAL_CALL acceptConnection( StreamSocket& Connection, SocketAddr & PeerAddr);
- */
-
- class listen_accept : public CppUnit::TestFixture
- {
- public:
- TimeValue *pTimeout;
- ::osl::AcceptorSocket asAcceptorSocket;
- ::osl::ConnectorSocket csConnectorSocket;
-
-
- // initialization
- void setUp( )
- {
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1);
- // sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- free( pTimeout );
- // sHandle = NULL;
- asAcceptorSocket.close( );
- csConnectorSocket.close( );
- }
-
-
- void listen_accept_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT3 );
- ::osl::SocketAddr saTargetSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT3 );
- ::osl::StreamSocket ssConnection;
-
- /// launch server socket
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
- asAcceptorSocket.enableNonBlockingMode( sal_True );
-
- /// launch client socket
- csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- CPPUNIT_ASSERT_MESSAGE( "test for listen_accept function: try to create a connection with remote host, using listen and accept.",
- ( osl_Socket_Ok == eResult ) );
- }
-
- void listen_accept_002()
- {
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT4 );
- ::osl::SocketAddr saTargetSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT4 );
- ::osl::SocketAddr saPeerSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("129.158.217.202")), IP_PORT_FTP );
- ::osl::StreamSocket ssConnection;
-
- /// launch server socket
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
- asAcceptorSocket.enableNonBlockingMode( sal_True );
-
- /// launch client socket
- csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection(ssConnection, saPeerSocketAddr); /// waiting for incoming connection...
-
- CPPUNIT_ASSERT_MESSAGE( "test for listen_accept function: try to create a connection with remote host, using listen and accept, accept with peer address.",
- ( sal_True == bOK2 ) &&
- ( osl_Socket_Ok == eResult ) &&
- ( sal_True == compareSocketAddr( saPeerSocketAddr, saLocalSocketAddr ) ) );
- }
-
-
- CPPUNIT_TEST_SUITE( listen_accept );
- CPPUNIT_TEST( listen_accept_001 );
- CPPUNIT_TEST( listen_accept_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class listen_accept
-
-
-// -----------------------------------------------------------------------------
-
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_AcceptorSocket::ctors);
-//CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_AcceptorSocket::operator_assign, "osl_AcceptorSocket");
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_AcceptorSocket::listen_accept);
-
-} // namespace osl_AcceptorSocket
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/osl_ConnectorSocket.cxx b/sal/qa/osl/socket/osl_ConnectorSocket.cxx
deleted file mode 100644
index 2bfe25e61..000000000
--- a/sal/qa/osl/socket/osl_ConnectorSocket.cxx
+++ /dev/null
@@ -1,269 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-/** test coder preface:
- 1. the BSD socket function will meet "unresolved external symbol error" on Windows platform
- if you are not including ws2_32.lib in makefile.mk, the including format will be like this:
-
- .IF "$(GUI)" == "WNT"
- SHL1STDLIBS += $(SOLARLIBDIR)$/cppunit.lib
- SHL1STDLIBS += ws2_32.lib
- .ENDIF
-
- likewise on Solaris platform.
- .IF "$(GUI)" == "UNX"
- SHL1STDLIBS+=$(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a
- SHL1STDLIBS += -lsocket -ldl -lnsl
- .ENDIF
-
- 2. since the Socket implementation of osl is only IPv4 oriented, our test are mainly focus on IPv4
- category.
-
- 3. some fragment of Socket source implementation are lack of comment so it is hard for testers
- guess what the exact functionality or usage of a member. Hope the Socket section's comment
- will be added.
-
- 4. following functions are declared but not implemented:
- inline sal_Bool SAL_CALL operator== (const SocketAddr & Addr) const;
- */
-
-//------------------------------------------------------------------------
-// include files
-//------------------------------------------------------------------------
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#include "osl_Socket_Const.h"
-#include "sockethelper.hxx"
-
-using namespace osl;
-using ::rtl::OUString;
-
-#define IP_PORT_MYPORT2 8883
-#define IP_PORT_FTP 21
-#define IP_PORT_MYPORT3 8884
-
-//------------------------------------------------------------------------
-// helper functions
-//------------------------------------------------------------------------
-
-class CloseSocketThread : public Thread
-{
- ::osl::Socket &m_sSocket;
-protected:
- void SAL_CALL run( )
- {
- thread_sleep( 1 );
- m_sSocket.close( );
- }
-public:
- CloseSocketThread(::osl::Socket & sSocket )
- : m_sSocket( sSocket )
- {
- }
-
- ~CloseSocketThread( )
- {
- if ( isRunning( ) )
- {
- t_print("# error: CloseSocketThread not terminated.\n" );
- }
- }
-};
-
-namespace osl_ConnectorSocket
-{
-
- /** testing the method:
- ConnectorSocket(oslAddrFamily Family = osl_Socket_FamilyInet,
- oslProtocol Protocol = osl_Socket_ProtocolIp,
- oslSocketType Type = osl_Socket_TypeStream);
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
- void ctors_001()
- {
- /// Socket constructor.
- ::osl::ConnectorSocket csSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_001 constructor function: check if the connector socket was created successfully.",
- osl_Socket_TypeStream == csSocket.getType( ) );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class ctors
-
- /** testing the method:
- oslSocketResult SAL_CALL connect(const SocketAddr& TargetHost, const TimeValue* pTimeout = 0);
- */
-
- class connect : public CppUnit::TestFixture
- {
- public:
- TimeValue *pTimeout;
- ::osl::AcceptorSocket asAcceptorSocket;
- ::osl::ConnectorSocket csConnectorSocket;
-
-
- // initialization
- void setUp( )
- {
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- // sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- free( pTimeout );
- // sHandle = NULL;
- asAcceptorSocket.close( );
- csConnectorSocket.close( );
- }
-
-
- void connect_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT2 );
- ::osl::SocketAddr saTargetSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT2 );
- ::osl::SocketAddr saPeerSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("129.158.217.202")), IP_PORT_FTP );
- ::osl::StreamSocket ssConnection;
-
- /// launch server socket
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
-
- //asAcceptorSocket.enableNonBlockingMode( sal_True );
- //oslSocketResult eResultAccept = asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
- //CPPUNIT_ASSERT_MESSAGE( "accept failed.", osl_Socket_Ok == eResultAccept );
- /// launch client socket
- oslSocketResult eResult = csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
- CPPUNIT_ASSERT_MESSAGE( "connect failed.", osl_Socket_Ok == eResult );
-
- /// get peer information
- csConnectorSocket.getPeerAddr( saPeerSocketAddr );/// connected.
-
- CPPUNIT_ASSERT_MESSAGE( "test for connect function: try to create a connection with remote host. and check the setup address.",
- ( sal_True == compareSocketAddr( saPeerSocketAddr, saLocalSocketAddr ) ) &&
- ( osl_Socket_Ok == eResult ));
- }
- //non-blocking mode connect?
- void connect_002()
- {
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT3 );
- ::osl::SocketAddr saTargetSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT3 );
- ::osl::SocketAddr saPeerSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("129.158.217.202")), IP_PORT_FTP );
-
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- asAcceptorSocket.enableNonBlockingMode( sal_True );
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
-
- csConnectorSocket.enableNonBlockingMode( sal_True );
-
- oslSocketResult eResult = csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
- CPPUNIT_ASSERT_MESSAGE( "connect failed.", osl_Socket_InProgress == eResult || osl_Socket_Ok == eResult );
-
- /// get peer information
- csConnectorSocket.getPeerAddr( saPeerSocketAddr );
-
- CPPUNIT_ASSERT_MESSAGE( "test for connect function: try to create a connection with remote host. and check the setup address.",
- sal_True == compareSocketAddr( saPeerSocketAddr, saLocalSocketAddr ) ) ;
- }
- // really an error or just delayed
- // how to design senarios that will return osl_Socket_Interrupted, osl_Socket_TimedOut
- void connect_003()
- {
- ::osl::SocketAddr saTargetSocketAddr1( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT3 );
- ::osl::SocketAddr saTargetSocketAddr2( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("123.345.67.89")), IP_PORT_MYPORT3 );
-
- csConnectorSocket.enableNonBlockingMode( sal_False );
-
- oslSocketResult eResult1 = csConnectorSocket.connect( saTargetSocketAddr1, pTimeout );
- oslSocketResult eResult2 = csConnectorSocket.connect( saTargetSocketAddr2, pTimeout );
- CloseSocketThread myCloseThread( csConnectorSocket );
- oslSocketResult eResult3 = csConnectorSocket.connect( saTargetSocketAddr2, pTimeout );
- myCloseThread.join();
- CPPUNIT_ASSERT_MESSAGE( "connect should failed.", osl_Socket_Error == eResult1 &&
- osl_Socket_Error == eResult2 && osl_Socket_Error == eResult3 );
-
- }
-
- // really an error in non-blocking mode
- void connect_004()
- {
- ::osl::SocketAddr saTargetSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("123.345.67.89")), IP_PORT_MYPORT3 );
-
- csConnectorSocket.enableNonBlockingMode( sal_True );
-
- oslSocketResult eResult = csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
- CPPUNIT_ASSERT_MESSAGE( "connect should failed.", osl_Socket_Error == eResult );
- }
- /** here need a case: immediate connection, say in non-blocking mode connect return osl_Socket_Ok
- */
-
- CPPUNIT_TEST_SUITE( connect );
- CPPUNIT_TEST( connect_001 );
- CPPUNIT_TEST( connect_002 );
- CPPUNIT_TEST( connect_003 );
- CPPUNIT_TEST( connect_004 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class connect
-
-
-// -----------------------------------------------------------------------------
-
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_ConnectorSocket::ctors);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_ConnectorSocket::connect);
-
-} // namespace osl_ConnectorSocket
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/osl_ConnectorSocket.xsce b/sal/qa/osl/socket/osl_ConnectorSocket.xsce
deleted file mode 100644
index 6c04ae2eb..000000000
--- a/sal/qa/osl/socket/osl_ConnectorSocket.xsce
+++ /dev/null
@@ -1 +0,0 @@
-osl_ConnectorSocket.connect.connect_003 wntmsci
diff --git a/sal/qa/osl/socket/osl_DatagramSocket.cxx b/sal/qa/osl/socket/osl_DatagramSocket.cxx
deleted file mode 100644
index f7c0ef529..000000000
--- a/sal/qa/osl/socket/osl_DatagramSocket.cxx
+++ /dev/null
@@ -1,320 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-/** test coder preface:
- 1. the BSD socket function will meet "unresolved external symbol error" on Windows platform
- if you are not including ws2_32.lib in makefile.mk, the including format will be like this:
-
- .IF "$(GUI)" == "WNT"
- SHL1STDLIBS += $(SOLARLIBDIR)$/cppunit.lib
- SHL1STDLIBS += ws2_32.lib
- .ENDIF
-
- likewise on Solaris platform.
- .IF "$(GUI)" == "UNX"
- SHL1STDLIBS+=$(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a
- SHL1STDLIBS += -lsocket -ldl -lnsl
- .ENDIF
-
- 2. since the Socket implementation of osl is only IPv4 oriented, our test are mainly focus on IPv4
- category.
-
- 3. some fragment of Socket source implementation are lack of comment so it is hard for testers
- guess what the exact functionality or usage of a member. Hope the Socket section's comment
- will be added.
-
- 4. following functions are declared but not implemented:
- inline sal_Bool SAL_CALL operator== (const SocketAddr & Addr) const;
- */
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#include "sockethelper.hxx"
-
-using namespace osl;
-
-using ::rtl::OUString;
-
-#define IP_PORT_MYPORT9 8897
-#define IP_PORT_MYPORT10 8898
-
-const char * pTestString1 = "test socket";
-const char * pTestString2 = " Passed#OK";
-
-//------------------------------------------------------------------------
-// helper functions
-//------------------------------------------------------------------------
-
-class CloseSocketThread : public Thread
-{
- ::osl::Socket m_sSocket;
-protected:
- void SAL_CALL run( )
- {
- thread_sleep( 1 );
- m_sSocket.close( );
- }
-public:
- CloseSocketThread(::osl::Socket & sSocket )
- : m_sSocket( sSocket )
- {
- }
-
- ~CloseSocketThread( )
- {
- if ( isRunning( ) )
- {
- t_print("# error: CloseSocketThread not terminated.\n" );
- }
- }
-};
-
-//------------------------------------------------------------------------
-// tests cases begins here
-//------------------------------------------------------------------------
-
-namespace osl_DatagramSocket
-{
-
- /** testing the methods:
- inline DatagramSocket(oslAddrFamily Family= osl_Socket_FamilyInet,
- oslProtocol Protocol= osl_Socket_ProtocolIp,
- oslSocketType Type= osl_Socket_TypeDgram);
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
-
- void ctors_001()
- {
- /// Socket constructor.
- ::osl::DatagramSocket dsSocket;
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_001 constructor function: check if the datagram socket was created successfully.",
- osl_Socket_TypeDgram == dsSocket.getType( ) );
- }
-
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class ctors
-
-/**thread do sendTo, refer to http://www.coding-zone.co.uk/cpp/articles/140101networkprogrammingv.shtml
-*/
-class TalkerThread : public Thread
-{
-protected:
- ::osl::SocketAddr saTargetSocketAddr;
- ::osl::DatagramSocket dsSocket;
-
- void SAL_CALL run( )
- {
- dsSocket.sendTo( saTargetSocketAddr, pTestString1, strlen( pTestString1 ) + 1 ); // "test socket"
- dsSocket.shutdown();
- }
-
- void SAL_CALL onTerminated( )
- {
- }
-
-public:
- TalkerThread( ):
- saTargetSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT9 )
- {
- }
-
- ~TalkerThread( )
- {
- if ( isRunning( ) )
- t_print("# error: TalkerThread not terminated normally.\n" );
- }
-};
-
-/**thread do listen, refer to http://www.coding-zone.co.uk/cpp/articles/140101networkprogrammingv.shtml
-*/
-class ListenerThread : public Thread
-{
-protected:
- ::osl::SocketAddr saTargetSocketAddr;
- ::osl::DatagramSocket dsSocket;
-
- void SAL_CALL run( )
- {
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT10 );
- dsSocket.setOption( osl_Socket_OptionReuseAddr, 1 );
- if ( dsSocket.bind( saLocalSocketAddr ) == sal_False )
- {
- t_print("DatagramSocket bind failed \n");
- return;
- }
- //blocking mode: default
-#if !SILENT_TEST
- sal_Int32 nRecv =
-#endif
- dsSocket.recvFrom( pRecvBuffer, 30, &saTargetSocketAddr); //strlen( pTestString2 ) + 1
- t_print("After recvFrom, nRecv is %d\n", (int) nRecv);
- }
-
- void SAL_CALL onTerminated( )
- {
- }
-
-public:
- sal_Char pRecvBuffer[30];
- ListenerThread( ):
- saTargetSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT10 )
- {
- pRecvBuffer[0] = '\0';
- }
-
- ~ListenerThread( )
- {
- if ( isRunning( ) )
- t_print("# error: ListenerThread not terminated normally.\n" );
- }
-
-};
-
- /** testing the methods:
- inline sal_Int32 DatagramSocket::recvFrom(void* pBuffer, sal_uInt32 BufferSize,
- SocketAddr* pSenderAddr, oslSocketMsgFlag Flag )
- inline sal_Int32 DatagramSocket::sendTo( const SocketAddr& ReceiverAddr,
- const void* pBuffer, sal_uInt32 BufferSize, oslSocketMsgFlag Flag )
- */
-
- class sendTo_recvFrom : public CppUnit::TestFixture
- {
- public:
-
- void sr_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT9 );
- ::osl::DatagramSocket dsSocket;
- dsSocket.setOption( osl_Socket_OptionReuseAddr, 1 );
- dsSocket.bind( saLocalSocketAddr );
-
- sal_Char pReadBuffer[30];
- TalkerThread myTalkThread;
- myTalkThread.create();
- sal_Int32 nRecv = dsSocket.recvFrom( pReadBuffer, 30, &saLocalSocketAddr);
- myTalkThread.join();
- //t_print("#received buffer is %s# \n", pReadBuffer);
-
- sal_Bool bOk = ( strcmp(pReadBuffer, pTestString1) == 0 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for sendTo/recvFrom function: create a talker thread and recvFrom in the main thread, check if the datagram socket can communicate successfully.",
- nRecv > 0 && bOk == sal_True );
- }
-
- void sr_002()
- {
- ::osl::SocketAddr saListenSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT10 );
- ::osl::DatagramSocket dsSocket;
-
- //listener thread construct a DatagramSocket, recvFrom waiting for data, then main thread sendto data
- ListenerThread myListenThread;
- myListenThread.create();
- //to grantee the recvFrom is before sendTo
- thread_sleep( 1 );
-
- sal_Int32 nSend = dsSocket.sendTo( saListenSocketAddr, pTestString2, strlen( pTestString2 ) + 1 );
-
- CPPUNIT_ASSERT_MESSAGE( "DatagramSocket sendTo failed: nSend <= 0.", nSend > 0);
-
- myListenThread.join();
- //t_print("#received buffer is %s# \n", myListenThread.pRecvBuffer);
-
- sal_Bool bOk = ( strcmp( myListenThread.pRecvBuffer, pTestString2) == 0 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for sendTo/recvFrom function: create a listener thread and sendTo in the main thread, check if the datagram socket can communicate successfully.",
- bOk == sal_True );
- }
-
- //sendTo error, return -1; recvFrom error, return -1
- void sr_003()
- {
- ::osl::SocketAddr saListenSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("123.345.67.89")), IP_PORT_MYPORT10 );
- ::osl::DatagramSocket dsSocket;
- // Transport endpoint is not connected
- sal_Int32 nSend = dsSocket.sendTo( saListenSocketAddr, pTestString2, strlen( pTestString2 ) + 1 );
- CPPUNIT_ASSERT_MESSAGE( "DatagramSocket sendTo should fail: nSend <= 0.",
- nSend == -1 );
- }
-
- void sr_004()
- {
- ::osl::SocketAddr saListenSocketAddr1( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("123.345.67.89")), IP_PORT_MYPORT10 );
- ::osl::SocketAddr saListenSocketAddr2( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("129.158.217.202")), IP_PORT_MYPORT10 );
- ::osl::DatagramSocket dsSocket;
-
- dsSocket.enableNonBlockingMode( sal_True );
-
- sal_Char pReadBuffer[30];
- //sal_Int32 nRecv1 = dsSocket.recvFrom( pReadBuffer, 30, &saListenSocketAddr1 );
-
- // will block ?
- CloseSocketThread myThread( dsSocket );
- myThread.create();
- sal_Int32 nRecv2 = dsSocket.recvFrom( pReadBuffer, 30, &saListenSocketAddr1 );
- myThread.join();
- //t_print("#nRecv1 is %d nRecv2 is %d\n", nRecv1, nRecv2 );
- CPPUNIT_ASSERT_MESSAGE( "DatagramSocket sendTo should fail: nSend <= 0.",
- nRecv2 == -1 );
- }
-
- CPPUNIT_TEST_SUITE( sendTo_recvFrom );
- CPPUNIT_TEST( sr_001 );
- CPPUNIT_TEST( sr_002 );
- CPPUNIT_TEST( sr_003 );
- CPPUNIT_TEST( sr_004 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class sendTo_recvFrom
-
-// -----------------------------------------------------------------------------
-
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_DatagramSocket::ctors);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_DatagramSocket::sendTo_recvFrom);
-
-} // namespace osl_DatagramSocket
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/osl_Socket.cxx b/sal/qa/osl/socket/osl_Socket.cxx
deleted file mode 100644
index 221a75824..000000000
--- a/sal/qa/osl/socket/osl_Socket.cxx
+++ /dev/null
@@ -1,3720 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-/** test coder preface:
- 1. the BSD socket function will meet "unresolved external symbol error" on Windows platform
- if you are not including ws2_32.lib in makefile.mk, the including format will be like this:
-
- .IF "$(GUI)" == "WNT"
- SHL1STDLIBS += $(SOLARLIBDIR)$/cppunit.lib
- SHL1STDLIBS += ws2_32.lib
- .ENDIF
-
- likewise on Solaris platform.
- .IF "$(GUI)" == "UNX"
- SHL1STDLIBS+=$(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a
- SHL1STDLIBS += -lsocket -ldl -lnsl
- .ENDIF
-
- 2. since the Socket implementation of osl is only IPv4 oriented, our test are mainly focus on IPv4
- category.
-
- 3. some fragment of Socket source implementation are lack of comment so it is hard for testers
- guess what the exact functionality or usage of a member. Hope the Socket section's comment
- will be added.
-
- 4. following functions are declared but not implemented:
- inline sal_Bool SAL_CALL operator== (const SocketAddr & Addr) const;
- */
-
-
-//------------------------------------------------------------------------
-// include files
-//------------------------------------------------------------------------
-
-#include <osl_Socket_Const_orig.h>
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-/** test output if SILENT_TEST is 0
-*/
-#if OSL_DEBUG_LEVEL > 0
-# define SILENT_TEST 0
-#else
-# define SILENT_TEST 1
-#endif
-
-#if SILENT_TEST
-# define t_print(...) { }
-#else
-# define t_print printf
-#endif
-
-/** convert UString and OUString to std::string
-*/
-#define STD_STRING(s) (std::string((const char *)s.getStr()))
-
-using namespace osl;
-
-using ::rtl::OUString;
-using ::rtl::OUStringToOString;
-using ::rtl::OString;
-
-//------------------------------------------------------------------------
-// helper functions
-//------------------------------------------------------------------------
-
-/** compare two OUString.
-*/
-inline sal_Bool compareUString( const ::rtl::OUString & ustr1, const ::rtl::OUString & ustr2 )
-{
- sal_Bool bOk = ustr1.equalsIgnoreAsciiCase( ustr2 );
-
- return bOk;
-}
-
-/** compare a OUString and an ASCII string.
-*/
-inline sal_Bool compareUString( const ::rtl::OUString & ustr, const sal_Char *astr )
-{
- ::rtl::OUString ustr2 = rtl::OUString::createFromAscii( astr );
- sal_Bool bOk = ustr.equalsIgnoreAsciiCase( ustr2 );
-
- return bOk;
-}
-
-/** compare two socket address.
-*/
-inline sal_Bool compareSocketAddr( const ::osl::SocketAddr & addr1 , const ::osl::SocketAddr & addr2 )
-{
- return ( ( sal_True == compareUString( addr1.getHostname( 0 ), addr2.getHostname( 0 ) ) ) && ( addr2.getPort( ) == addr2.getPort( ) ) );
-}
-
-inline char * oustring2char( const ::rtl::OUString & str )
-{
- rtl::OString aString;
- aString = ::rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US );
- return (char *)aString.getStr( );
-}
-
-/** print a UNI_CODE String. And also print some comments of the string.
-*/
-inline void printUString( const ::rtl::OUString & str, const sal_Char * msg = "" )
-{
-#if SILENT_TEST
- (void)str;
- (void)msg;
-#else
- t_print("#%s #printUString_u# ", msg );
- t_print("%s\n", oustring2char( str ) );
-#endif
-}
-
-/** get the local host name.
- mindy: gethostbyname( "localhost" ), on Linux, it returns the hostname in /etc/hosts + domain name,
- if no entry in /etc/hosts, it returns "localhost" + domain name
-*/
-inline ::rtl::OUString getHost( void )
-{
- struct hostent *hptr;
-
- hptr = gethostbyname( "localhost" );
- CPPUNIT_ASSERT_MESSAGE( "#In getHostname function, error on gethostbyname()", hptr != NULL );
- ::rtl::OUString aUString = ::rtl::OUString::createFromAscii( (const sal_Char *) hptr->h_name );
-
- return aUString;
-}
-
-/** get the full host name of the current processor, such as "aegean.prc.sun.com" --mindyliu
-*/
-inline ::rtl::OUString getThisHostname( void )
-{
- ::rtl::OUString aUString;
-#ifdef WNT
- struct hostent *hptr;
- hptr = gethostbyname( "localhost" );
- CPPUNIT_ASSERT_MESSAGE( "#In getHostname function, error on gethostbyname()", hptr != NULL );
- aUString = ::rtl::OUString::createFromAscii( (const sal_Char *) hptr->h_name );
-#else
- char hostname[255];
- CPPUNIT_ASSERT_MESSAGE( "#Error: gethostname failed.", gethostname(hostname, 255) == 0 );
-
- struct hostent *hptr;
- //first search /ets/hosts, then search from dns
- hptr = gethostbyname( hostname);
- if ( hptr != NULL )
- {
- strcpy( hostname, hptr->h_name );
- }
-
- t_print("hostname is %s \n", hostname );
- aUString = ::rtl::OUString::createFromAscii( (const sal_Char *) hostname );
-#endif
- return aUString;
-}
-
-/** get IP by name, search /etc/hosts first, then search from dns, fail return OUString("")
-*/
-inline ::rtl::OUString getIPbyName( rtl::OString const& str_name )
-{
- ::rtl::OUString aUString;
- struct hostent *hptr;
- //first search /ets/hosts, then search from dns
- hptr = gethostbyname( str_name.getStr());
- if ( hptr != NULL )
- {
- struct in_addr ** addrptr;
- addrptr = (struct in_addr **) hptr->h_addr_list ;
- //if there are more than one IPs on the same machine, we select one
- for (; *addrptr; addrptr++)
- {
- t_print("#Local IP Address: %s\n", inet_ntoa(**addrptr));
- aUString = ::rtl::OUString::createFromAscii( (sal_Char *) (inet_ntoa(**addrptr)) );
- }
- }
- return aUString;
-}
-
-/** get local ethernet IP
-*/
-inline ::rtl::OUString getLocalIP( )
-{
- char hostname[255];
- gethostname(hostname, 255);
-
- return getIPbyName( hostname );
-}
-
-/** construct error message
-*/
-inline ::rtl::OUString outputError( const ::rtl::OUString & returnVal, const ::rtl::OUString & rightVal, const sal_Char * msg = "")
-{
- ::rtl::OUString aUString;
- if ( returnVal.equals( rightVal ) )
- return aUString;
- aUString += ::rtl::OUString::createFromAscii(msg);
- aUString += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(": the returned value is '"));
- aUString += returnVal;
- aUString += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("', but the value should be '"));
- aUString += rightVal;
- aUString += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("'."));
- return aUString;
-}
-
-/** wait _nSec seconds.
-*/
-void thread_sleep( sal_Int32 _nSec )
-{
- /// print statement in thread process must use fflush() to force display.
- t_print("# wait %d seconds. ", (int) _nSec );
- fflush(stdout);
-
-#ifdef WNT //Windows
- Sleep( _nSec * 100 );
-#endif
-#if ( defined UNX ) //Unix
- usleep(_nSec * 100000);
-#endif
- t_print("# done\n" );
-}
-
-/** print Boolean value.
-*/
-inline void printBool( sal_Bool bOk )
-{
-#if SILENT_TEST
- (void)bOk;
-#else
- t_print("#printBool# " );
- t_print ("%s", (sal_True == bOk) ? "YES!\n" : "NO!\n");
-#endif
-}
-
-/** print content of a ByteSequence.
-*/
-inline void printByteSequence_IP( const ::rtl::ByteSequence & bsByteSeq, sal_Int32 nLen )
-{
-#if SILENT_TEST
- (void)bsByteSeq;
- (void)nLen;
-#else
- t_print("#ByteSequence is: " );
- for ( int i = 0; i < nLen; i++ ){
- if ( bsByteSeq[i] < 0 )
- t_print("%d ", 256 + bsByteSeq[i] );
- else
- t_print("%d ", bsByteSeq[i] );
- }
- t_print(" .\n" );
-#endif
-}
-
-/** convert an IP which is stored as a UString format to a ByteSequence array for later use.
-*/
-inline ::rtl::ByteSequence UStringIPToByteSequence( ::rtl::OUString aUStr )
-{
-
- rtl::OString aString = ::rtl::OUStringToOString( aUStr, RTL_TEXTENCODING_ASCII_US );
- const sal_Char *pChar = aString.getStr( ) ;
- sal_Char tmpBuffer[4];
- sal_Int32 nCharCounter = 0;
- ::rtl::ByteSequence bsByteSequence( IP_VER );
- sal_Int32 nByteSeqCounter = 0;
-
- for ( int i = 0; i < aString.getLength( ) + 1 ; i++ )
- {
- if ( ( *pChar != '.' ) && ( i !=aString.getLength( ) ) )
- tmpBuffer[nCharCounter++] = *pChar;
- else
- {
- tmpBuffer[nCharCounter] = '\0';
- nCharCounter = 0;
- bsByteSequence[nByteSeqCounter++] = static_cast<sal_Int8>( atoi( tmpBuffer ) );
- }
- pChar++;
- }
- return bsByteSequence;
-}
-
-/** print a socket result name.
-*/
-inline void printSocketResult( oslSocketResult eResult )
-{
- t_print("#printSocketResult# " );
- if (!eResult)
- switch (eResult)
- {
- case osl_Socket_Ok:
- t_print("client connected\n");
- break;
- case osl_Socket_Error:
- t_print("got an error ... exiting\r\n\r\n" );
- break;
- case osl_Socket_TimedOut:
- t_print("timeout\n");
- break;
-
- case osl_Socket_FORCE_EQUAL_SIZE:
- t_print("FORCE EQUAL SIZE\n");
- break;
- case osl_Socket_InProgress:
- t_print("In Progress\n");
- break;
- case osl_Socket_Interrupted:
- t_print("Interrupted\n");
- break;
- }
-}
-
-/** Client Socket Thread, served as a temp little client to communicate with server.
-*/
-class ClientSocketThread : public Thread
-{
-protected:
- oslThreadIdentifier m_id;
- ::osl::SocketAddr saTargetSocketAddr;
- ::osl::ConnectorSocket csConnectorSocket;
-
- void SAL_CALL run( )
- {
- TimeValue *pTimeout;
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 5;
- pTimeout->Nanosec = 0;
-
- /// if the thread should terminate, schedule return false
- //while ( schedule( ) == sal_True )
- //{
- if ( osl_Socket_Ok == csConnectorSocket.connect( saTargetSocketAddr, pTimeout ))
- {
- csConnectorSocket.send( pTestString1, 11 ); // "test socket"
- csConnectorSocket.send( pTestString2, 10);
- }
- else
- t_print("# ClientSocketThread: connect failed! \n");
- // terminate();
- //}
- csConnectorSocket.close();
- free( pTimeout );
- }
-
- void SAL_CALL onTerminated( )
- {
- //t_print("# normally terminate this thread %d!\n", m_id );
- }
-
-public:
- ClientSocketThread( ):
- saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT9 ),
- csConnectorSocket( )
- {
- m_id = getIdentifier( );
- //t_print("# successfully creat this client thread %d!\n", m_id );
- }
-
- ~ClientSocketThread( )
- {
- if ( isRunning( ) )
- t_print("# error: client thread not terminated.\n" );
- }
-
-};
-
-
-/** Server Socket Thread, served as a temp little server to communicate with client.
-*/
-class ServerSocketThread : public Thread
-{
-protected:
- oslThreadIdentifier m_id;
-
- void SAL_CALL run( )
- {
- ::osl::AcceptorSocket asAcceptorSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT9 );
- ::osl::StreamSocket ssStreamConnection;
-
- //if has not set this option, socket addr can not be binded in some time(maybe 2 minutes) by another socket
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //integer not sal_Bool : sal_True);
- while ( schedule( ) == sal_True )
- {
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- if ( sal_True != bOK1 )
- {
- t_print("# ServerSocketThread: AcceptorSocket bind address failed.\n" ) ;
- break;
- }
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- if ( sal_True != bOK2 )
- {
- t_print("# ServerSocketThread: AcceptorSocket listen address failed.\n" ) ;
- break;
- }
-
- asAcceptorSocket.enableNonBlockingMode( sal_False );
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection( ssStreamConnection );
- if (eResult != osl_Socket_Ok )
- {
- t_print("ServerSocketThread: acceptConnection failed! \n");
- break;
- }
- sal_Int32 nReadNumber1 = ssStreamConnection.recv( pReadBuffer, 11 );
- sal_Int32 nReadNumber2 = ssStreamConnection.recv( pReadBuffer + nReadNumber1, 11 );
- pReadBuffer[nReadNumber1 + nReadNumber2] = '\0';
- //t_print("# read buffer content: %s\n", pReadBuffer );
- break;
- }
- ssStreamConnection.close();
- asAcceptorSocket.close();
-
- }
-
- void SAL_CALL onTerminated( )
- {
- //t_print("# normally terminate this server thread %d!\n", m_id );
- }
-
-public:
- // public to check if data transmition is OK
- sal_Char pReadBuffer[30];
- ServerSocketThread( )
- {
- m_id = getIdentifier( );
- //t_print("# successfully creat this server thread %d!\n", m_id );
- }
-
- ~ServerSocketThread( )
- {
- if ( isRunning( ) )
- t_print("# error: server thread not terminated.\n" );
- }
-};
-
-// -----------------------------------------------------------------------------
-// Helper functions, to create buffers, check buffers
-class ValueCheckProvider
-{
- bool m_bFoundFailure;
- char *m_pBuffer;
- sal_Int32 m_nBufferSize;
-
-public:
- ValueCheckProvider()
- :
- m_bFoundFailure(false),
- m_pBuffer(NULL),
- m_nBufferSize(0)
- {
- }
-
- bool isFailure() {return m_bFoundFailure;}
-
- const char* getBuffer() {return m_pBuffer;}
- char* getWriteBuffer() {return m_pBuffer;}
-
- sal_Int32 getBufferSize() {return m_nBufferSize;}
-
- bool checkValues(sal_Int32 _nLength, int _nValue)
- {
- m_bFoundFailure = false;
- for(sal_Int32 i=0;i<_nLength;i++)
- {
- if (m_pBuffer[i] != _nValue)
- {
- m_bFoundFailure = true;
- }
- }
- return m_bFoundFailure;
- }
-
- void createBuffer(sal_Int32 _nLength, int _nValue)
- {
- m_nBufferSize = _nLength;
- m_pBuffer = (char*) malloc(m_nBufferSize);
- if (m_pBuffer)
- {
- memset(m_pBuffer, _nValue, m_nBufferSize);
- }
- }
-
- void freeBuffer()
- {
- if (m_pBuffer) free(m_pBuffer);
- }
-
-};
-
-// -----------------------------------------------------------------------------
-/** Client Socket Thread, served as a temp little client to communicate with server.
-*/
-
-class ReadSocketThread : public Thread
-{
- int m_nValue;
- ValueCheckProvider m_aValues;
-
-protected:
- oslThreadIdentifier m_id;
- ::osl::SocketAddr saTargetSocketAddr;
- ::osl::ConnectorSocket csConnectorSocket;
-
- void SAL_CALL run( )
- {
- TimeValue *pTimeout;
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 5;
- pTimeout->Nanosec = 0;
-
- /// if the thread should terminate, schedule return false
- //while ( schedule( ) == sal_True )
- //{
- if ( osl_Socket_Ok == csConnectorSocket.connect( saTargetSocketAddr, pTimeout ))
- {
- sal_Int32 nReadCount = csConnectorSocket.read( m_aValues.getWriteBuffer(), m_aValues.getBufferSize() );
- m_aValues.checkValues(nReadCount, m_nValue);
- }
- else
- {
- t_print("# ReadSocketThread: connect failed! \n");
- }
- // terminate();
- //}
- //remove this line for deadlock on solaris( margritte.germany )
- csConnectorSocket.close();
- free( pTimeout );
- }
-
- void SAL_CALL onTerminated( )
- {
- //t_print("# normally terminate this thread %d!\n", m_id );
- }
-
-public:
- sal_Int32 getCount() {return m_aValues.getBufferSize();}
- bool isOk() {return m_aValues.isFailure() == true ? false : true;}
-
- ReadSocketThread(sal_Int32 _nBufferSize, int _nValue )
- :
- m_nValue( _nValue ),
- saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT10 ),
- csConnectorSocket( )
- {
- m_id = getIdentifier( );
- //t_print("# successfully creat this client thread %d!\n", m_id );
- m_aValues.createBuffer(_nBufferSize, 0);
- }
-
- ~ReadSocketThread( )
- {
- if ( isRunning( ) )
- t_print("# error: client thread not terminated.\n" );
- m_aValues.freeBuffer();
- }
-
-};
-
-/** Server Socket Thread, write a file which is large
-*/
-class WriteSocketThread : public Thread
-{
- ValueCheckProvider m_aValues;
-
-protected:
- oslThreadIdentifier m_id;
-
- void SAL_CALL run( )
- {
- ::osl::AcceptorSocket asAcceptorSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT10 );
- ::osl::StreamSocket ssStreamConnection;
-
- //if has not set this option, socket addr can not be binded in some time(maybe 2 minutes) by another socket
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- /// if the thread should terminate, schedule return false
- while ( schedule( ) == sal_True )
- {
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- if ( sal_True != bOK1 )
- {
- t_print("# WriteSocketThread: AcceptorSocket bind address failed. \n" ) ;
- break;
- }
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- if ( sal_True != bOK2 )
- {
- t_print("# WriteSocketThread: AcceptorSocket listen address failed. \n" ) ;
- break;
- }
- // blocking mode, if read/recv failed, block until success
- asAcceptorSocket.enableNonBlockingMode( sal_False);
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection( ssStreamConnection );
- if (eResult != osl_Socket_Ok )
- {
- t_print("WriteSocketThread: acceptConnection failed! \n");
- break;
- }
-
- ssStreamConnection.write( m_aValues.getBuffer(), m_aValues.getBufferSize() );
- break;
- }
- ssStreamConnection.close();
- asAcceptorSocket.close();
- }
-
- void SAL_CALL onTerminated( )
- {
- //t_print("# normally terminate this server thread %d!\n", m_id );
- }
-
-public:
- // public to check if data transmition is OK
- WriteSocketThread(sal_Int32 _nBufferSize, int _nValue )
- {
- m_id = getIdentifier( );
- //t_print("# successfully creat this server thread %d!\n", m_id );
-
- m_aValues.createBuffer(_nBufferSize, _nValue);
- }
-
- ~WriteSocketThread( )
- {
- if ( isRunning( ) )
- t_print("# error: server thread not terminated.\n" );
- m_aValues.freeBuffer();
- }
-
-};
-
-// -----------------------------------------------------------------------------
-// just used to test socket::close() when accepting
-class AcceptorThread : public Thread
-{
- ::osl::AcceptorSocket asAcceptorSocket;
- ::rtl::OUString aHostIP;
- sal_Bool bOK;
-protected:
- void SAL_CALL run( )
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIP, IP_PORT_MYPORT9 );
- ::osl::StreamSocket ssStreamConnection;
-
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //integer not sal_Bool : sal_True);
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- if ( sal_True != bOK1 )
- {
- t_print("# AcceptorSocket bind address failed.\n" ) ;
- return;
- }
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- if ( sal_True != bOK2 )
- {
- t_print("# AcceptorSocket listen address failed.\n" ) ;
- return;
- }
-
- asAcceptorSocket.enableNonBlockingMode( sal_False );
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection( ssStreamConnection );
- if (eResult != osl_Socket_Ok )
- {
- bOK = sal_True;
- t_print("AcceptorThread: acceptConnection failed! \n");
- }
- }
-public:
- AcceptorThread(::osl::AcceptorSocket & asSocket, ::rtl::OUString & aBindIP )
- : asAcceptorSocket( asSocket ), aHostIP( aBindIP )
- {
- bOK = sal_False;
- }
-
- sal_Bool isOK() { return bOK; }
-
- ~AcceptorThread( )
- {
- if ( isRunning( ) )
- {
- asAcceptorSocket.shutdown();
- t_print("# error: Acceptor thread not terminated.\n" );
- }
- }
-};
-
-class CloseSocketThread : public Thread
-{
- ::osl::Socket m_sSocket;
-protected:
- void SAL_CALL run( )
- {
- thread_sleep( 1 );
- m_sSocket.close( );
- }
-public:
- CloseSocketThread(::osl::Socket & sSocket )
- : m_sSocket( sSocket )
- {
- }
-
- ~CloseSocketThread( )
- {
- if ( isRunning( ) )
- {
- t_print("# error: CloseSocketThread not terminated.\n" );
- }
- }
-};
-
-//------------------------------------------------------------------------
-// tests cases begins here
-//------------------------------------------------------------------------
-
-namespace osl_SocketAddr
-{
-
- /** testing the methods:
- inline SocketAddr();
- inline SocketAddr(const SocketAddr& Addr);
- inline SocketAddr(const oslSocketAddr , __osl_socket_NoCopy nocopy );
- inline SocketAddr(oslSocketAddr Addr);
- inline SocketAddr( const ::rtl::OUString& strAddrOrHostName, sal_Int32 nPort );
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
-
- void ctors_none()
- {
- /// SocketAddr constructor.
- ::osl::SocketAddr saSocketAddr;
-
- // oslSocketResult aResult;
- // rtl::OUString suHost = saSocketAddr.getLocalHostname( &aResult);
-
- // rtl::OUString suHost2 = getThisHostname();
-
- CPPUNIT_ASSERT_MESSAGE("test for none parameter constructor function: check if the socket address was created successfully",
- sal_True == saSocketAddr.is( ) );
- }
-
- void ctors_none_000()
- {
- /// SocketAddr constructor.
- ::osl::SocketAddr saSocketAddr;
-
- oslSocketResult aResult;
- rtl::OUString suHost = saSocketAddr.getLocalHostname( &aResult);
- rtl::OUString suHost2 = getThisHostname();
-
- sal_Bool bOk = compareUString(suHost, suHost2);
-
- rtl::OUString suError (RTL_CONSTASCII_USTRINGPARAM("Host names should be the same. From SocketAddr.getLocalHostname() it is'"));
- suError += suHost;
- suError += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("', from getThisHostname() it is '"));
- suError += suHost2;
- suError += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("'."));
-
- CPPUNIT_ASSERT_MESSAGE(STD_STRING(suError), sal_True == bOk);
- }
-
- void ctors_copy()
- {
- /// SocketAddr copy constructor.
- ::osl::SocketAddr saSocketAddr( aHostName1, IP_PORT_HTTP1 );
- ::osl::SocketAddr saCopySocketAddr( saSocketAddr );
-
- sal_Int32 nPort = saCopySocketAddr.getPort( );
-
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr copy constructor function: copy constructor, do an action of copy construction then check the port with original set.",
- ( sal_True == saCopySocketAddr.is( ) ) && ( nPort == IP_PORT_HTTP1 ) );
- }
-
- void ctors_copy_no_001()
- {
-
- ::osl::SocketAddr* pSocketAddr = new ::osl::SocketAddr( aHostName1, IP_PORT_HTTP1 );
- CPPUNIT_ASSERT_MESSAGE("check for new SocketAddr", pSocketAddr != NULL);
-
- oslSocketAddr psaOSLSocketAddr = pSocketAddr->getHandle( );
-
- ::osl::SocketAddr* pSocketAddrCopy = new ::osl::SocketAddr( psaOSLSocketAddr, SAL_NO_COPY );
-
- pSocketAddrCopy->setPort( IP_PORT_HTTP2 );
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr no copy constructor function: do a no copy constructor on a given SocketAddr instance, modify the new instance's port, check the original one.",
- pSocketAddr->getPort( ) == IP_PORT_HTTP2 );
-
- delete pSocketAddrCopy;
- // LLA: don't do this also: delete pSocketAddr;
- }
-
- void ctors_copy_no_002()
- {
- ::osl::SocketAddr* pSocketAddr = new ::osl::SocketAddr( aHostName1, IP_PORT_HTTP1 );
- CPPUNIT_ASSERT_MESSAGE("check for new SocketAddr", pSocketAddr != NULL);
- oslSocketAddr psaOSLSocketAddr = pSocketAddr->getHandle( );
- ::osl::SocketAddr* pSocketAddrCopy = new ::osl::SocketAddr( psaOSLSocketAddr, SAL_NO_COPY );
-
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr no copy constructor function: do a no copy constructor on a given SocketAddr instance, modify the new instance's port, check the original one.",
- pSocketAddr->getHandle( ) == pSocketAddrCopy->getHandle( ) );
-
- delete pSocketAddrCopy;
- }
-
- void ctors_copy_handle_001()
- {
- ::osl::SocketAddr saSocketAddr( aHostName1, IP_PORT_HTTP1 );
- ::osl::SocketAddr saSocketAddrCopy( saSocketAddr.getHandle( ) );
-
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr copy handle constructor function: copy another Socket's handle, get its port to check copy effect.",
- saSocketAddrCopy.getPort( ) == IP_PORT_HTTP1 );
- }
-
- void ctors_copy_handle_002()
- {
- ::osl::SocketAddr saSocketAddr( aHostName1, IP_PORT_HTTP1 );
- ::osl::SocketAddr saSocketAddrCopy( saSocketAddr.getHandle( ) );
- saSocketAddrCopy.setPort( IP_PORT_HTTP2 );
-
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr copy handle constructor function: copy another Socket's handle, the original one should not be changed.",
- saSocketAddr.getPort( ) != IP_PORT_HTTP2 );
- }
-
- void ctors_hostname_port_001()
- {
- /// tcpip-specif constructor.
- ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_FTP );
- printUString(saSocketAddr.getHostname( ), "ctors_hostname_port_001:getHostname");
-
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr tcpip specif constructor function: do a constructor using tcpip spec, check the result.",
- saSocketAddr.is( ) == sal_True &&
- ( saSocketAddr.getPort( ) == IP_PORT_FTP )/*&&
- ( sal_True == compareUString( saSocketAddr.getHostname( ), aHostName1 ) ) */);
- }
-
- //same as is_002
- void ctors_hostname_port_002()
- {
- /// tcpip-specif constructor.
- ::osl::SocketAddr saSocketAddr( aHostIpInval1, IP_PORT_MYPORT2 );
-
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr tcpip specif constructor function: using an invalid IP address, the socketaddr ctors should fail", sal_False == saSocketAddr.is( ));
- }
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_none );
- CPPUNIT_TEST( ctors_none_000 );
- CPPUNIT_TEST( ctors_copy );
- CPPUNIT_TEST( ctors_copy_no_001 );
- CPPUNIT_TEST( ctors_copy_no_002 );
- CPPUNIT_TEST( ctors_copy_handle_001 );
- CPPUNIT_TEST( ctors_copy_handle_002 );
- CPPUNIT_TEST( ctors_hostname_port_001 );
- CPPUNIT_TEST( ctors_hostname_port_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class ctors
-
-
- /** testing the method:
- inline sal_Bool is() const;
- */
-
- class is : public CppUnit::TestFixture
- {
- public:
- void is_001()
- {
- ::osl::SocketAddr saSocketAddr;
-
- CPPUNIT_ASSERT_MESSAGE("test for is() function: create an unknown type socket, it should be True when call is.",
- sal_True == saSocketAddr.is( ) );
- }
- // refer to setPort_003()
- void is_002()
- {
- ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_INVAL );
-
- CPPUNIT_ASSERT_MESSAGE("test for is() function: create a tcp-ip socket using invalid port number",
- sal_True == saSocketAddr.is( ) );
- }
-
- void is_003()
- {
- ::osl::SocketAddr saSocketAddr( aHostIpInval1, IP_PORT_MYPORT );
-
- CPPUNIT_ASSERT_MESSAGE("test for is() function: create a tcp-ip socket using invalid Ip number",
- sal_True != saSocketAddr.is( ) );
- }
-
- CPPUNIT_TEST_SUITE( is );
- CPPUNIT_TEST( is_001 );
- CPPUNIT_TEST( is_002 );
- CPPUNIT_TEST( is_003 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class is
-
-
- /** testing the method:
- inline ::rtl::OUString SAL_CALL getHostname( oslSocketResult *pResult = 0 ) const;
- */
-
- class getHostname : public CppUnit::TestFixture
- {
- public:
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void getHostname_000()
- {
- ::osl::SocketAddr saSocketAddr( aHostIp4, IP_PORT_FTP );
-
- }
-
- /** it will search the Ip in current machine's /etc/hosts at first, if find, then return the
- mapped hostname, otherwise, it will search via DNS server, and often return hostname+ Domain name
- like "sceri.PRC.Sun.COM"
- The process is same as Socket::getLocalHost(), but getLocalHost can only return hostname of the current machine.
- */
- void getHostname_001()
- {
- ::osl::SocketAddr saSocketAddr( aHostIp4, IP_PORT_FTP );
- rtl::OUString suResult = saSocketAddr.getHostname( 0 );
- rtl::OUString suError = outputError(suResult, aHostName4, "test for getHostname(0)");
- sal_Bool bOK = compareUString( suResult, aHostName4 );
- // search the returned hostname in /etc/hosts, if find, and the IP in the row is same as IP
- // in the Addr, it's right also.
- if ( bOK == sal_False)
- {
- if ( compareUString( getIPbyName( oustring2char( suResult ) ), aHostIp4 ) == sal_True )
- bOK = sal_True;
- }
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_True == bOK);
- }
-
-// LLA: now we have to control, if this behaviour is right.
-// LLA: this function does not work in company (Linux, Windows) but at home
- void getHostname_002()
- {
- rtl::OUString suHostname (RTL_CONSTASCII_USTRINGPARAM("cn-1.germany.sun.com"));
- rtl::OUString aHostIP = getIPbyName( oustring2char( suHostname ) );
-
- ::osl::SocketAddr saSocketAddr( aHostName1, IP_PORT_FTP );
- sal_Bool bOK = saSocketAddr.setHostname( suHostname );
- CPPUNIT_ASSERT_MESSAGE("#SocketAddr.setHostname failed", sal_True == bOK );
- oslSocketResult aResult;
- rtl::OUString suResult = saSocketAddr.getHostname( &aResult );
- CPPUNIT_ASSERT_MESSAGE("SocketAddr.getHostname failed.", aResult == osl_Socket_Ok);
-
- rtl::OUString suError = outputError(suResult, suHostname, "test for getHostname(0)");
- bOK = compareUString( suResult, suHostname );
- if ( bOK == sal_False)
- {
- rtl::OString aString = ::rtl::OUStringToOString( suResult, RTL_TEXTENCODING_ASCII_US );
- if ( compareUString( getIPbyName( aString) , aHostIp6 ) == sal_True )
- {
- bOK = sal_True;
- }
- }
-
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_True == bOK );
- }
-
-
- CPPUNIT_TEST_SUITE( getHostname );
- CPPUNIT_TEST( getHostname_001 );
- CPPUNIT_TEST( getHostname_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getHostname
-
-
- /** testing the method:
- inline sal_Int32 SAL_CALL getPort() const;
- */
-
- class getPort : public CppUnit::TestFixture
- {
- public:
- void getPort_001()
- {
- ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_FTP );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getPort() function: get a normal port number.",
- IP_PORT_FTP == saSocketAddr.getPort( ) );
- }
-
- void getPort_002()
- {
- ::osl::SocketAddr saSocketAddr( aHostIp2, IP_PORT_INVAL );
-
- //t_print("#getPort_002: Port number is %d \n", saSocketAddr.getPort( ));
-
- CPPUNIT_ASSERT_MESSAGE( "test for getPort( ) function: give an invalid port to a SocketAddr, get the port to see if it can detect. it did not pass in (W32).",
- saSocketAddr.getPort( )>=1 && saSocketAddr.getPort( ) <= 65535 );
- }
- //two cases will return OSL_INVALID_PORT: 1. not valid SocketAddr
- //2. SocketAddr family is not osl_Socket_FamilyInet, but case 2 could not be constructed
- void getPort_003()
- {
- ::osl::SocketAddr saSocketAddr( aHostIpInval1, IP_PORT_MYPORT );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getPort( ) function: give an invalid IP to a SocketAddr, get the port to see returned value. ",
- saSocketAddr.getPort( ) == OSL_INVALID_PORT );
- }
-
- CPPUNIT_TEST_SUITE( getPort );
- CPPUNIT_TEST( getPort_001 );
- CPPUNIT_TEST( getPort_002 );
- CPPUNIT_TEST( getPort_003 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class getPort
-
-
- /** testing the method:
- inline sal_Bool SAL_CALL setPort( sal_Int32 nPort );
- rfc1413.txt: TCP port numbers are from 1-65535
- rfc1700.txt: 0/tcp Reserved ; 0/udp Reserved
- */
-
- class setPort : public CppUnit::TestFixture
- {
- public:
- void setPort_001()
- {
- ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_FTP );
- sal_Bool bOK = saSocketAddr.setPort( IP_PORT_TELNET );
-
- CPPUNIT_ASSERT_MESSAGE( "test for setPort() function: modify a port number setting, and check it.",
- ( sal_True == bOK ) &&
- ( IP_PORT_TELNET == saSocketAddr.getPort( ) ) );
- }
-
- /** 0 to 1024 is known as the reserved port range (traditionally only root can assign programs to ports in
- this range) and the ephemeral port range from 1025 to 65535.
- As many of you programmers will know, when you specify the source port of 0 when you connect to a host,
- the OS automatically reassigns the port number to high numbered ephemeral port. The same happens if you
- try to bind a listening socket to port 0.
- http://www.securiteam.com/securityreviews/5XP0Q2AAKS.html
- another: http://www.muq.org/~cynbe/muq/mufref_564.html
- */
- void setPort_002()
- {
- ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_FTP );
- sal_Bool bOK = saSocketAddr.setPort( IP_PORT_ZERO );
-
- oslSocket sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 );//sal_True);
- sal_Bool bOK1 = sSocket.bind( saSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "bind SocketAddr failed", bOK1 == sal_True );
-
- sal_Int32 newPort = sSocket.getLocalPort();
- //t_print("#new port is %d\n", newPort );
-
- CPPUNIT_ASSERT_MESSAGE( "test for setPort() function: port number should be in 1 ~ 65535, set port 0, it should be converted to a port number between 1024~65535.",
- ( 1024 <= newPort ) && ( 65535 >= newPort ) && ( bOK == sal_True ) );
-
- }
-
- void setPort_003()
- {
- ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_FTP);
- sal_Bool bOK = saSocketAddr.setPort( IP_PORT_INVAL );
- //on Linux, getPort return 34463
- //t_print("#Port number is %d \n", saSocketAddr.getPort( ));
-
- CPPUNIT_ASSERT_MESSAGE( "test for setPort( ) function: set an address with invalid port. it should return error or convert it to a valid port.",
- ( ( 1 <= saSocketAddr.getPort( ) ) && ( 65535 >= saSocketAddr.getPort( ) ) &&( bOK == sal_True ) ) ||
- bOK == sal_False);
- }
-
- /* this is not a inet-addr => can't set port */
- void setPort_004()
- {
- ::osl::SocketAddr saSocketAddr( aHostIpInval1, IP_PORT_FTP);
- sal_Bool bOK = saSocketAddr.setPort( IP_PORT_MYPORT );
-
- CPPUNIT_ASSERT_MESSAGE( "test for setPort( ) function: set an invalid address with valid port. it should return error.",
- bOK == sal_False);
- }
-
-
- CPPUNIT_TEST_SUITE( setPort );
- CPPUNIT_TEST( setPort_001 );
- CPPUNIT_TEST( setPort_002 );
- CPPUNIT_TEST( setPort_003 );
- CPPUNIT_TEST( setPort_004 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class setPort
-
-
- /** tester comment:
-
- In the following two functions, it use ::rtl::ByteSequence as an intermediate storage for address,
- the ByteSequence object can hold sal_Int8 arrays, which is raged [-127, 127], in case of IP addr
- that is greater than 127, say 129.158.217.202, it will stored as -127, -98, -39, -54, it is unique
- in the range of sal_Int8, but lack of readability.
- so may be a sal_uInt8 array is better.
- */
-
-
- /** testing the method:
- inline sal_Bool SAL_CALL setAddr( const ::rtl::ByteSequence & address );
- */
-
- class setAddr : public CppUnit::TestFixture
- {
- public:
- void setAddr_001()
- {
- ::osl::SocketAddr saSocketAddr( aHostIp2, IP_PORT_FTP );
- saSocketAddr.setAddr( UStringIPToByteSequence( aHostIp1 ) );
- ::rtl::ByteSequence bsSocketAddr = saSocketAddr.getAddr( 0 );
- sal_Bool bOK = sal_False;
-
- if ( ( bsSocketAddr[0] == 127 ) && ( bsSocketAddr[1] == 0 ) && ( bsSocketAddr[2] == 0 ) && ( bsSocketAddr[3] == 1 ) )
- bOK = sal_True;
-
- CPPUNIT_ASSERT_MESSAGE( "test for setAddr() function: construct Addr with \"129.158.217.202\", set it to \"127.0.0.1\", and check the correctness ",
- sal_True == bOK );
- }
-
-
- CPPUNIT_TEST_SUITE( setAddr );
- CPPUNIT_TEST( setAddr_001 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class setAddr
-
-
- /** testing the method:
- inline ::rtl::ByteSequence SAL_CALL getAddr( oslSocketResult *pResult = 0 ) const;
- */
-
- class getAddr : public CppUnit::TestFixture
- {
- public:
- void getAddr_001()
- {
- oslSocketResult SocketResult;
- ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_FTP );
- ::rtl::ByteSequence bsSocketAddr = saSocketAddr.getAddr( &SocketResult );
-
- sal_Bool bOK = sal_False;
-
- if ( ( osl_Socket_Ok == SocketResult ) &&( bsSocketAddr[0] == 127 ) && ( bsSocketAddr[1] == 0 ) &&( bsSocketAddr[2] == 0 ) && ( bsSocketAddr[3] == 1 ) )
- bOK = sal_True;
-
- CPPUNIT_ASSERT_MESSAGE( "test for getAddr() function: construct a socketaddr with IP assigned, get the address to check correctness.Caught unknown exception on (Win32)",
- sal_True == bOK && SocketResult == osl_Socket_Ok);
- }
-
- CPPUNIT_TEST_SUITE( getAddr );
- CPPUNIT_TEST( getAddr_001 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class getAddr
-
-
- /** testing the methods:
- inline SocketAddr & SAL_CALL operator= (oslSocketAddr Addr);
- inline SocketAddr & SAL_CALL operator= (const SocketAddr& Addr);
- inline SocketAddr & SAL_CALL assign( oslSocketAddr Addr, __osl_socket_NoCopy nocopy );
- inline sal_Bool SAL_CALL operator== (oslSocketAddr Addr) const;
- inline sal_Bool SAL_CALL operator== (const SocketAddr & Addr) const; /// not implemented.
- */
-
- class operator_equal : public CppUnit::TestFixture
- {
- public:
- void operator_equal_001()
- {
- ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_TELNET);
- ::osl::SocketAddr saSocketAddrEqual( aHostIp2, IP_PORT_FTP );
-
- saSocketAddrEqual = saSocketAddr;
- sal_Bool bOK = sal_False;
- ::rtl::ByteSequence bsSocketAddr = saSocketAddrEqual.getAddr( 0 );
-
- if ( ( IP_PORT_TELNET == saSocketAddrEqual.getPort( ) ) &&( bsSocketAddr[0] == 127 ) && ( bsSocketAddr[1] == 0 ) &&( bsSocketAddr[2] == 0 ) && ( bsSocketAddr[3] == 1 ) )
- bOK = sal_True;
-
- CPPUNIT_ASSERT_MESSAGE( "test for operator_equal() function: use operator= to assign Ip1 to Ip2, check its modification.",
- sal_True == bOK );
- }
-
-
- void operator_equal_002()
- {
- ::osl::SocketAddr saSocketAddr( aHostIp3, IP_PORT_TELNET);
- ::osl::SocketAddr saSocketAddrEqual( aHostIp2, IP_PORT_FTP );
-
- saSocketAddrEqual = saSocketAddr;
- CPPUNIT_ASSERT_MESSAGE( "after assign, the assigned SocketAddr is not same as the original Addr",
- IP_PORT_TELNET == saSocketAddrEqual.getPort( ) );
- saSocketAddrEqual.setPort( IP_PORT_MYPORT3 );
- saSocketAddr.setPort( IP_PORT_HTTP2 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for operator_equal() function: perform an equal action, then try to change the original address's port. it should not be changed ( handle released), it did not pass in (W32), this is under discussion.",
- IP_PORT_MYPORT3 == saSocketAddrEqual.getPort( ) );
- }
-
- void operator_equal_const_001()
- {
- const ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_TELNET);
- ::osl::SocketAddr saSocketAddrEqual( aHostIp2, IP_PORT_FTP );
-
- saSocketAddrEqual = saSocketAddr;
- sal_Bool bOK = sal_False;
- ::rtl::ByteSequence bsSocketAddr = saSocketAddrEqual.getAddr( 0 );
-
- if ( ( IP_PORT_TELNET == saSocketAddrEqual.getPort( ) ) &&( bsSocketAddr[0] == 127 ) && ( bsSocketAddr[1] == 0 ) &&( bsSocketAddr[2] == 0 ) && ( bsSocketAddr[3] == 1 ) )
- bOK = sal_True;
-
- CPPUNIT_ASSERT_MESSAGE( "test for operator_equal_const() function: use operator= const to assign Ip1 to Ip2, verify the change on the second one.",
- sal_True == bOK );
- }
-
- void operator_equal_const_002()
- {
- const ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_TELNET);
- ::osl::SocketAddr saSocketAddrEqual( aHostIp2, IP_PORT_FTP );
-
- saSocketAddrEqual = saSocketAddr;
- saSocketAddrEqual.setPort( IP_PORT_HTTP1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for operator_equal_const() function: change the second instance, the first one should not be altered, since it does not released the handle.",
- IP_PORT_HTTP1 != saSocketAddr.getPort( ) );
- }
-
- void operator_equal_assign_001()
- {
- ::osl::SocketAddr* pSocketAddr = new ::osl::SocketAddr( aHostIp1, IP_PORT_TELNET );
- CPPUNIT_ASSERT_MESSAGE("check for new SocketAddr", pSocketAddr != NULL);
- ::osl::SocketAddr* pSocketAddrAssign = new ::osl::SocketAddr( aHostIp2, IP_PORT_FTP );
- oslSocketAddr poslSocketAddr = pSocketAddr->getHandle( );
- //if( m_handle ) osl_destroySocketAddr( m_handle ); so pSocketAddrAssign had been destroyed and then point to pSocketAddr
- pSocketAddrAssign->assign(poslSocketAddr, SAL_NO_COPY);
-
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr no copy constructor function: do a no copy constructor on a given SocketAddr instance, modify the new instance's port, check the original one.",
- pSocketAddrAssign->getPort( ) == IP_PORT_TELNET );
-
- delete pSocketAddrAssign;
- }
-
- void operator_is_equal_001()
- {
- ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_TELNET);
- ::osl::SocketAddr saSocketAddrequal( aHostIp1, IP_PORT_TELNET );
-
- CPPUNIT_ASSERT_MESSAGE( "test for operator_equal_equal() function: check two identical Address.",
- sal_True == ( saSocketAddrequal == saSocketAddr.getHandle( ) ) );
- }
-
- void operator_is_equal_002()
- {
- ::osl::SocketAddr saSocketAddr( aHostIp2, IP_PORT_FTP);
- ::osl::SocketAddr saSocketAddrequal( aHostIp1, IP_PORT_TELNET );
-
- CPPUNIT_ASSERT_MESSAGE( "test for operator_equal_equal() function: check two different Address.",
- sal_False == ( saSocketAddrequal == saSocketAddr.getHandle( ) ) );
- }
-
- CPPUNIT_TEST_SUITE( operator_equal );
- CPPUNIT_TEST( operator_equal_001 );
- CPPUNIT_TEST( operator_equal_002 );
- CPPUNIT_TEST( operator_equal_const_001 );
- CPPUNIT_TEST( operator_equal_const_002 );
- CPPUNIT_TEST( operator_equal_assign_001 );
- CPPUNIT_TEST( operator_is_equal_001 );
- CPPUNIT_TEST( operator_is_equal_002 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class operator_equal
-
-
-
- /** testing the method:
- inline oslSocketAddr SAL_CALL getHandle() const;
- */
-
- class getSocketAddrHandle : public CppUnit::TestFixture
- {
- public:
-
- void getSocketAddrHandle_001()
- {
- ::osl::SocketAddr* pSocketAddr = new ::osl::SocketAddr( aHostName1, IP_PORT_HTTP1 );
- CPPUNIT_ASSERT_MESSAGE("check for new SocketAddr", pSocketAddr != NULL);
- oslSocketAddr psaOSLSocketAddr = pSocketAddr->getHandle( );
- ::osl::SocketAddr* pSocketAddrCopy = new ::osl::SocketAddr( psaOSLSocketAddr, SAL_NO_COPY );
-
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr no copy constructor function: do a no copy constructor on a given SocketAddr instance, modify the new instance's port, check the original one.",
- pSocketAddr->getHandle( ) == pSocketAddrCopy->getHandle( ) );
-
- delete pSocketAddrCopy;
- }
-
- void getSocketAddrHandle_002()
- {
- ::osl::SocketAddr saSocketAddr( aHostName3, IP_PORT_MYPORT4 );
- oslSocketAddr poslSocketAddr = saSocketAddr.getHandle( );
-
- sal_Bool bOK = ( saSocketAddr == poslSocketAddr );
- //t_print("getSocketAddrHandle_002\n");
- CPPUNIT_ASSERT_MESSAGE( "test for getHandle() function: use getHandle() function as an intermediate way to create identical address.",
- sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getSocketAddrHandle );
- CPPUNIT_TEST( getSocketAddrHandle_001 );
- CPPUNIT_TEST( getSocketAddrHandle_002 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class getSocketAddrHandle
-
-
- /** testing the method:
- static inline ::rtl::OUString SAL_CALL getLocalHostname( oslSocketResult *pResult = 0);
- */
-
- class getLocalHostname : public CppUnit::TestFixture
- {
- public:
- /* the process of getLocalHostname: 1.gethostname (same as /bin/hostname) returned name A
- 2. search A in /etc/hosts, if there is an alias name is A, return the name in the same row
- */
-
- void getLocalHostname_000()
- {
- // _osl_getFullQualifiedDomainName( );
- oslSocketResult aResult = osl_Socket_Error;
- rtl::OUString suHostname = osl::SocketAddr::getLocalHostname(&aResult);
- CPPUNIT_ASSERT_MESSAGE("getLocalHostname failed", aResult == osl_Socket_Ok);
- }
-
- void getLocalHostname_001()
- {
- oslSocketResult *pResult = NULL;
- //printSocketResult(*pResult);
- ::rtl::OUString suResult = ::osl::SocketAddr::getLocalHostname( pResult );
-
- // LLA: IMHO localhost, or hostname by itself should be ok.
- rtl::OUString suThisHost = getThisHostname( );
- bool bOk = false;
- if (suThisHost.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("localhost"))))
- {
- bOk = true;
- }
- else
- {
- if (suThisHost.equals(suResult))
- {
- bOk = true;
- }
- }
-
- ::rtl::OUString suError;
- suError = outputError(suResult, getThisHostname( ), "test for getLocalHostname() function");
-
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), bOk == true );
- }
-
- CPPUNIT_TEST_SUITE( getLocalHostname );
- CPPUNIT_TEST( getLocalHostname_000 );
- CPPUNIT_TEST( getLocalHostname_001 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class getLocalHostname
-
-
- /** testing the method:
- static inline void SAL_CALL resolveHostname( const ::rtl::OUString & strHostName , SocketAddr & Addr );
- */
-
- class resolveHostname : public CppUnit::TestFixture
- {
- public:
- void resolveHostname_001()
- {
- ::osl::SocketAddr saSocketAddr;
- ::osl::SocketAddr::resolveHostname( aHostIp1, saSocketAddr );
- ::rtl::ByteSequence bsSocketAddr = saSocketAddr.getAddr( 0 );
- sal_Bool bOK = sal_False;
-
- if ( ( bsSocketAddr[0] == 127 ) && ( bsSocketAddr[1] == 0 ) &&( bsSocketAddr[2] == 0 ) && ( bsSocketAddr[3] == 1 ) )
- bOK = sal_True;
-
- CPPUNIT_ASSERT_MESSAGE( "test for resolveHostname() function: try to resolve localhost to 127.0.0.1.",
- sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( resolveHostname );
- CPPUNIT_TEST( resolveHostname_001 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class resolveHostname
-
-
- /** testing the method:
- static inline sal_Int32 SAL_CALL getServicePort(
- const ::rtl::OUString& strServiceName,
- const ::rtl::OUString & strProtocolName= ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("tcp")) );
- */
-
- class gettheServicePort : public CppUnit::TestFixture
- {
- public:
- void gettheServicePort_001()
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getServicePort() function: try to get ftp service port on TCP protocol.",
- IP_PORT_FTP== ::osl::SocketAddr::getServicePort( aServiceFTP, aProtocolTCP ) );
- }
-
- void gettheServicePort_002()
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getServicePort() function: try to get telnet service port on TCP protocol.",
- IP_PORT_TELNET== ::osl::SocketAddr::getServicePort( aServiceTELNET, aProtocolTCP ) );
- }
-
- void gettheServicePort_003()
- {
- //Solaris has no service called "https", please see /etc/services
- CPPUNIT_ASSERT_MESSAGE( "test for getServicePort() function: try to get netbios-ssn service port on UDP protocol.",
- IP_PORT_NETBIOS_DGM == ::osl::SocketAddr::getServicePort( aServiceNETBIOS, aProtocolUDP ) );
- }
-
- void gettheServicePort_004()
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getServicePort() function: try to get a service port which is not exist.",
- OSL_INVALID_PORT == ::osl::SocketAddr::getServicePort( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("notexist")), aProtocolUDP ) );
- }
-
- CPPUNIT_TEST_SUITE( gettheServicePort );
- CPPUNIT_TEST( gettheServicePort_001 );
- CPPUNIT_TEST( gettheServicePort_002 );
- CPPUNIT_TEST( gettheServicePort_003 );
- CPPUNIT_TEST( gettheServicePort_004 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class gettheServicePort
-
-// -----------------------------------------------------------------------------
-
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::ctors, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::is, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::getHostname, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::getPort, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::setPort, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::setAddr, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::getAddr, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::operator_equal, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::getSocketAddrHandle, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::getLocalHostname, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::resolveHostname, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::gettheServicePort, "osl_SocketAddr");
-
-
-} // namespace osl_SocketAddr
-
-
-
-namespace osl_Socket
-{
-
- /** testing the methods:
- inline Socket( );
- inline Socket( const Socket & socket );
- inline Socket( oslSocket socketHandle );
- inline Socket( oslSocket socketHandle, __sal_NoAcquire noacquire );
- */
-
- /** test writer's comment:
-
- class Socket can not be initialized by its protected constructor, though the protected
- constructor is the most convenient way to create a new socket.
- it only allow the method of C function osl_createSocket like:
- ::osl::Socket sSocket( osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream,
- osl_Socket_ProtocolIp ) );
- the use of C method lost some of the transparent of tester using C++ wrapper.
- */
-
-
- class ctors : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
-
- void ctors_none()
- {
- /// Socket constructor.
- // ::osl::Socket sSocket;
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_none constructor function: check if the socket was created successfully, if no exception occurred",
- 1 == 1 );
- }
-
- void ctors_acquire()
- {
- /// Socket constructor.
- ::osl::Socket sSocket( sHandle );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_acquire constructor function: check if the socket was created successfully",
- osl_Socket_TypeStream == sSocket.getType( ) );
- }
-
- void ctors_no_acquire()
- {
- /// Socket constructor.
- ::osl::Socket sSocket( sHandle, SAL_NO_ACQUIRE );
-
- CPPUNIT_ASSERT_MESSAGE(" test for ctors_no_acquire constructor function: check if the socket was created successfully",
- osl_Socket_TypeStream == sSocket.getType( ) );
- }
-
- void ctors_copy_ctor()
- {
- ::osl::Socket sSocket( sHandle );
- /// Socket copy constructor.
- ::osl::Socket copySocket( sSocket );
-
- CPPUNIT_ASSERT_MESSAGE(" test for ctors_copy_ctor constructor function: create new Socket instance using copy constructor",
- osl_Socket_TypeStream == copySocket.getType( ) );
- }
-
- void ctors_TypeRaw()
- {
-#ifdef WNT
- oslSocket sHandleRaw = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeRaw, osl_Socket_ProtocolIp );
-// LLA: ? ::osl::Socket sSocket( sHandleRaw );
- CPPUNIT_ASSERT_MESSAGE( " type osl_Socket_TypeRaw socket create failed on UNX ", sHandleRaw != NULL);
-#else
- oslSocket sHandleRaw = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeRaw, osl_Socket_ProtocolIp );
- CPPUNIT_ASSERT_MESSAGE( " can't create socket with type osl_Socket_TypeRaw within UNX is ok.", sHandleRaw == NULL);
-#endif
- }
-
- void ctors_family_Ipx()
- {
- oslSocket sHandleIpx = osl_createSocket( osl_Socket_FamilyIpx, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- CPPUNIT_ASSERT_MESSAGE( " family osl_Socket_FamilyIpx socket create failed! ", sHandleIpx != NULL);
- ::osl::Socket sSocket( sHandleIpx ); //, SAL_NO_ACQUIRE );
- t_print("#Type is %d \n", sSocket.getType( ) );
-
- CPPUNIT_ASSERT_MESSAGE(" test for create new Socket instance that family is osl_Socket_FamilyIpx",
- osl_Socket_TypeStream == sSocket.getType( ) );
- }
-
-
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_none );
- CPPUNIT_TEST( ctors_acquire );
- CPPUNIT_TEST( ctors_no_acquire );
- CPPUNIT_TEST( ctors_copy_ctor );
- CPPUNIT_TEST( ctors_TypeRaw );
- CPPUNIT_TEST( ctors_family_Ipx );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class ctors
-
-
- /** testing the methods:
- inline Socket& SAL_CALL operator= ( oslSocket socketHandle);
- inline Socket& SAL_CALL operator= (const Socket& sock);
- inline sal_Bool SAL_CALL operator==( const Socket& rSocket ) const ;
- inline sal_Bool SAL_CALL operator==( const oslSocket socketHandle ) const;
- */
-
- class operators : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
-
- /** test writer's comment:
-
- the assignment operator does not support direct assinment like:
- ::osl::Socket sSocket = sHandle.
- */
- void operators_assignment_handle()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::Socket assignSocket = sSocket.getHandle();
-
- CPPUNIT_ASSERT_MESSAGE( "test for operators_assignment_handle function: test the assignment operator.",
- osl_Socket_TypeStream == assignSocket.getType( ) );
- }
-
- void operators_assignment()
- {
- ::osl::Socket sSocket( sHandle );
- ::osl::Socket assignSocket = sSocket;
-
- CPPUNIT_ASSERT_MESSAGE( "test for operators_assignment function: assignment operator",
- osl_Socket_TypeStream == assignSocket.getType( ) );
- }
-
- void operators_equal_handle_001()
- {
- /// Socket constructor.
- ::osl::Socket sSocket( sHandle );
- ::osl::Socket equalSocket = sSocket;
-
- CPPUNIT_ASSERT_MESSAGE(" test for operators_equal_handle_001 function: check equal.",
- equalSocket == sHandle );
- }
-
- void operators_equal_handle_002()
- {
- /// Socket constructor.
- ::osl::Socket equalSocket( osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp ) );
-
- CPPUNIT_ASSERT_MESSAGE(" test for operators_equal_handle_001 function: check unequal.",
- !( equalSocket == sHandle ) );
- }
-
- void operators_equal_001()
- {
- ::osl::Socket sSocket( sHandle );
- /// Socket copy constructor.
- ::osl::Socket equalSocket( sSocket );
-
- CPPUNIT_ASSERT_MESSAGE(" test for operators_equal function: check equal.",
- equalSocket == sSocket );
- }
-
- void operators_equal_002()
- {
- ::osl::Socket sSocket( sHandle );
- /// Socket copy constructor.
- ::osl::Socket equalSocket( osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp ) );
-
- CPPUNIT_ASSERT_MESSAGE(" test for operators_equal_002 function: check unequal.",
- !( equalSocket == sSocket ) );
- }
-
- CPPUNIT_TEST_SUITE( operators );
- CPPUNIT_TEST( operators_assignment_handle );
- CPPUNIT_TEST( operators_assignment );
- CPPUNIT_TEST( operators_equal_handle_001 );
- CPPUNIT_TEST( operators_equal_handle_002 );
- CPPUNIT_TEST( operators_equal_001 );
- CPPUNIT_TEST( operators_equal_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class operators
-
-
- /** testing the methods:
- inline void SAL_CALL shutdown( oslSocketDirection Direction = osl_Socket_DirReadWrite );
- inline void SAL_CALL close();
- */
-
- class close : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
-
- void close_001()
- {
- ::osl::Socket sSocket(sHandle);
- sSocket.close();
-
- CPPUNIT_ASSERT_MESSAGE( "test for close_001 function: this function is reserved for test.",
- sSocket.getHandle() == sHandle );
- }
-
- void close_002()
- {
-//#if defined(LINUX)
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- AcceptorThread myAcceptorThread( asSocket, aHostIp1 );
- myAcceptorThread.create();
-
- thread_sleep( 1 );
- //when accepting, close the socket, the thread will not block for accepting
- //man close:Any locks held on the file it was associated with, and owned by the process, are removed
- asSocket.close();
- //thread_sleep( 2 );
- myAcceptorThread.join();
-
- CPPUNIT_ASSERT_MESSAGE( "test for close when is accepting: the socket will quit accepting status.",
- myAcceptorThread.isOK() == sal_True );
-//#endif
- }
-
- // to cover "if ( pSockAddrIn->sin_addr.s_addr == htonl(INADDR_ANY) )" in osl_closeSocket( )
- void close_003()
- {
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- AcceptorThread myAcceptorThread( asSocket, aHostIpZero );
- myAcceptorThread.create();
-
- thread_sleep( 1 );
- asSocket.close();
- myAcceptorThread.join();
-
- CPPUNIT_ASSERT_MESSAGE( "test for close when is accepting: the socket will quit accepting status.",
- myAcceptorThread.isOK() == sal_True );
- }
-
- CPPUNIT_TEST_SUITE( close );
- CPPUNIT_TEST( close_001 );
- CPPUNIT_TEST( close_002 );
- CPPUNIT_TEST( close_003 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class close
-
- /** testing the method:
- inline void SAL_CALL getLocalAddr( SocketAddr &Addr ) const;
- */
-
- class getLocalAddr : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- // get the Address of the local end of the socket
- void getLocalAddr_001()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( aHostIp1, IP_PORT_MYPORT8 );
- ::osl::SocketAddr saLocalSocketAddr;
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- ::rtl::OUString suError1 = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Socket bind fail:")) + sSocket.getErrorAsString();
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError1), sal_True == bOK1 );
-
- sSocket.getLocalAddr( saLocalSocketAddr );
-
- sal_Bool bOK = compareUString( saLocalSocketAddr.getHostname( 0 ), sSocket.getLocalHost() ) ;
-
- CPPUNIT_ASSERT_MESSAGE( "test for getLocalAddr function: first create a new socket, then a socket address, bind them, and check the address.",
- sal_True == bOK );
- }
-
-
- CPPUNIT_TEST_SUITE( getLocalAddr );
- CPPUNIT_TEST( getLocalAddr_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getLocalAddr
-
-
- /** testing the method:
- inline sal_Int32 SAL_CALL getLocalPort() const;
- */
-
- class getLocalPort : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
-
- void getLocalPort_001()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( aHostIp1, IP_PORT_MYPORT7 ); // aHostIp1 localhost
- ::osl::SocketAddr saLocalSocketAddr;
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- ::rtl::OUString suError1 = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Socket bind fail:")) + sSocket.getErrorAsString();
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError1), sal_True == bOK1 );
- sal_Bool bOK = ( IP_PORT_MYPORT7 == sSocket.getLocalPort( ) );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getLocalPort function: first create a new socket, then a socket address, bind them, and check the port.",
- sal_True == bOK );
- }
-
- /** test writer's comment:
-
- the invalid port number can not be set by giving invalid port number
- such as 99999 or -1, it will convert to ( x mod 65535 ), so it will always be
- valid, the only instance that the getLocalPort returns OSL_INVALID_PORT
- is when saSocketAddr itself is an invalid one, that is , the IP or host name
- can not be found, then the created socket address is not valid.
- */
- void getLocalPort_002()
- {
- ::osl::SocketAddr saBindSocketAddr( aHostIpInval, IP_PORT_TELNET);
-#ifdef WNT
- ::osl::Socket sSocket(sHandle);
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); // sal_True);
- sSocket.bind( saBindSocketAddr );
- //Invalid IP, so bind should fail
- ::rtl::OUString suError = outputError(::rtl::OUString::valueOf(sSocket.getLocalPort( )),
- ::rtl::OUString::valueOf((sal_Int32)OSL_INVALID_PORT),
- "test for getLocalPort function: first create a new socket, then an invalid socket address, bind them, and check the port assigned.");
- sal_Bool bOK = ( OSL_INVALID_PORT == sSocket.getLocalPort( ) );
- (void)bOK;
-#else
- //on Unix, if Addr is not an address of type osl_Socket_FamilyInet, it returns OSL_INVALID_PORT
- ::rtl::OUString suError (RTL_CONSTASCII_USTRINGPARAM("on Unix, if Addr is not an address of type osl_Socket_FamilyInet, it returns OSL_INVALID_PORT, but can not create Addr of that case"));
-#endif
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_False );
-
- }
-
- void getLocalPort_003()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( getLocalIP(), IP_PORT_INVAL);
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- ::rtl::OUString suError1 = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Socket bind fail:")) + sSocket.getErrorAsString();
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError1), sal_True == bOK1 );
- ::rtl::OUString suError = outputError(::rtl::OUString::valueOf(sSocket.getLocalPort( )),
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("34463")),
- "test for getLocalPort function: first create a new socket, then an invalid socket address, bind them, and check the port assigned");
- sal_Bool bOK = ( sSocket.getLocalPort( ) >= 1 && sSocket.getLocalPort( ) <= 65535);
-
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getLocalPort );
- CPPUNIT_TEST( getLocalPort_001 );
-// LLA: CPPUNIT_TEST( getLocalPort_002 );
- CPPUNIT_TEST( getLocalPort_003 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getLocalPort
-
-
- /** testing the method:
- inline ::rtl::OUString SAL_CALL getLocalHost() const;
-
- Mindyliu: on Linux, at first it will check the binded in /etc/hosts, if it has the binded IP, it will return the hostname in it;
- else if the binded IP is "127.0.0.1", it will return "localhost", if it's the machine's ethernet ip such as "129.158.217.90", it
- will return hostname of current processor such as "aegean.PRC.Sun.COM"
- */
-
- class getLocalHost : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
-
- void getLocalHost_001()
- {
- ::osl::Socket sSocket(sHandle);
- //port number from IP_PORT_HTTP1 to IP_PORT_MYPORT6, mindyliu
- ::osl::SocketAddr saBindSocketAddr( aHostIp1, IP_PORT_MYPORT6 );
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- ::rtl::OUString suError1 = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Socket bind fail:")) + sSocket.getErrorAsString();
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError1), sal_True == bOK1 );
- sal_Bool bOK;
- ::rtl::OUString suError;
-#ifdef WNT
- bOK = compareUString( sSocket.getLocalHost( ), getThisHostname( ) ) ;
- suError = outputError(sSocket.getLocalHost( ), getThisHostname( ),
-"test for getLocalHost function: create localhost socket and check name");
-#else
- ::rtl::OUString aUString = ::rtl::OUString::createFromAscii( (const sal_Char *) "localhost" );
- sal_Bool bRes1, bRes2;
- bRes1 = compareUString( sSocket.getLocalHost( ), aUString ) ;
- bRes2 = compareUString( sSocket.getLocalHost( ), saBindSocketAddr.getHostname(0) ) ;
- bOK = bRes1 || bRes2;
- suError = outputError(sSocket.getLocalHost( ), aUString, "test for getLocalHost function: create localhost socket and check name");
-#endif
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_True == bOK );
- }
-
- void getLocalHost_002()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( aHostIpInval, IP_PORT_POP3);
- ::osl::SocketAddr saLocalSocketAddr;
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sSocket.bind( saBindSocketAddr );
- //Invalid IP, so bind should fail
- sal_Bool bOK = compareUString( sSocket.getLocalHost( ), aNullURL ) ;
- ::rtl::OUString suError = outputError(sSocket.getLocalHost( ), aNullURL, "test for getLocalHost function: getLocalHost with invalid SocketAddr");
-
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getLocalHost );
- CPPUNIT_TEST( getLocalHost_001 );
- CPPUNIT_TEST( getLocalHost_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getLocalHost
-
-
- /** testing the methods:
- inline void SAL_CALL getPeerAddr( SocketAddr & Addr) const;
- inline sal_Int32 SAL_CALL getPeerPort() const;
- inline ::rtl::OUString SAL_CALL getPeerHost() const;
- */
- class getPeer : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- TimeValue *pTimeout;
- ::osl::AcceptorSocket asAcceptorSocket;
- ::osl::ConnectorSocket csConnectorSocket;
-
-
- // initialization
- void setUp( )
- {
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- free( pTimeout );
- sHandle = NULL;
- asAcceptorSocket.close( );
- csConnectorSocket.close( );
- }
-
-
- void getPeer_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT );
- ::osl::SocketAddr saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT );
- ::osl::SocketAddr saPeerSocketAddr( aHostIp2, IP_PORT_FTP );
- ::osl::StreamSocket ssConnection;
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- /// launch server socket
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind '127.0.0.1' address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
-
- asAcceptorSocket.enableNonBlockingMode( sal_True );
- asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- /// launch client socket
- csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
-
- /// get peer information
- csConnectorSocket.getPeerAddr( saPeerSocketAddr );/// connected.
- sal_Int32 peerPort = csConnectorSocket.getPeerPort( );
- ::rtl::OUString peerHost = csConnectorSocket.getPeerHost( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getPeer function: setup a connection and then get the peer address, port and host from client side.",
- ( sal_True == compareSocketAddr( saPeerSocketAddr, saLocalSocketAddr ) )&&
- ( sal_True == compareUString( peerHost, saLocalSocketAddr.getHostname( 0 ) ) ) &&
- ( peerPort == saLocalSocketAddr.getPort( ) ));
- }
-
-
- CPPUNIT_TEST_SUITE( getPeer );
- CPPUNIT_TEST( getPeer_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getPeer
-
-
- /** testing the methods:
- inline sal_Bool SAL_CALL bind(const SocketAddr& LocalInterface);
- */
-
-
- class bind : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
-
- void bind_001()
- {
- ::osl::Socket sSocket(sHandle);
- //bind must use local IP address ---mindyliu
- ::osl::SocketAddr saBindSocketAddr( getLocalIP(), IP_PORT_MYPORT5 );
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "Socket bind fail.", sal_True == bOK1 );
-
- sal_Bool bOK2 = compareUString( sSocket.getLocalHost( ), saBindSocketAddr.getHostname( ) ) ;
-
- sSocket.close();
- CPPUNIT_ASSERT_MESSAGE( "test for bind function: bind a valid address.", sal_True == bOK2 );
- }
-
- void bind_002()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( aHostIpInval, IP_PORT_NETBIOS );
- ::osl::SocketAddr saLocalSocketAddr;
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1); // sal_True);
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- sal_Bool bOK2 = compareUString( sSocket.getLocalHost( ), getThisHostname( ) ) ;
-
- CPPUNIT_ASSERT_MESSAGE( "test for bind function: bind a valid address.",
- ( sal_False == bOK1 ) && ( sal_False == bOK2 ) );
- }
-
- CPPUNIT_TEST_SUITE( bind );
- CPPUNIT_TEST( bind_001 );
- CPPUNIT_TEST( bind_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class bind
-
-
- /** testing the methods:
- inline sal_Bool SAL_CALL isRecvReady(const TimeValue *pTimeout = 0) const;
-
- */
- class isRecvReady : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- TimeValue *pTimeout;
- ::osl::AcceptorSocket asAcceptorSocket;
- ::osl::ConnectorSocket csConnectorSocket;
-
-
- // initialization
- void setUp( )
- {
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- free( pTimeout );
- sHandle = NULL;
- asAcceptorSocket.close( );
- csConnectorSocket.close( );
- }
-
-
- void isRecvReady_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT1 );
- ::osl::SocketAddr saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT1 );
- ::osl::SocketAddr saPeerSocketAddr( aHostIp2, IP_PORT_FTP );
- ::osl::StreamSocket ssConnection;
- /// launch server socket
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); // sal_True);
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
- asAcceptorSocket.enableNonBlockingMode( sal_True );
- asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- /// launch client socket
- csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
-
- /// is receive ready?
- sal_Bool bOK3 = asAcceptorSocket.isRecvReady( pTimeout );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isRecvReady function: setup a connection and then check if it can transmit data.",
- ( sal_True == bOK3 ) );
- }
-
-
- CPPUNIT_TEST_SUITE( isRecvReady );
- CPPUNIT_TEST( isRecvReady_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class isRecvReady
-
-
- /** testing the methods:
- inline sal_Bool SAL_CALL isSendReady(const TimeValue *pTimeout = 0) const;
- */
- class isSendReady : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- TimeValue *pTimeout;
- ::osl::AcceptorSocket asAcceptorSocket;
- ::osl::ConnectorSocket csConnectorSocket;
-
-
- // initialization
- void setUp( )
- {
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- free( pTimeout );
- sHandle = NULL;
- asAcceptorSocket.close( );
- csConnectorSocket.close( );
- }
-
-
- void isSendReady_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT );
- ::osl::SocketAddr saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT );
- ::osl::SocketAddr saPeerSocketAddr( aHostIp2, IP_PORT_FTP );
- ::osl::StreamSocket ssConnection;
-
- /// launch server socket
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
- asAcceptorSocket.enableNonBlockingMode( sal_True );
- asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- /// launch client socket
- csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
-
- /// is send ready?
- sal_Bool bOK3 = csConnectorSocket.isSendReady( pTimeout );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isSendReady function: setup a connection and then check if it can transmit data.",
- ( sal_True == bOK3 ) );
- }
-
-
- CPPUNIT_TEST_SUITE( isSendReady );
- CPPUNIT_TEST( isSendReady_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class isSendReady
-
-
- /** testing the methods:
- inline oslSocketType SAL_CALL getType() const;
-
- */
-
- class getType : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
-
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
-
- void getType_001()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- CPPUNIT_ASSERT_MESSAGE( "test for getType function: get type of socket.",
- osl_Socket_TypeStream == sSocket.getType( ) );
- }
-
- void getType_002()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- CPPUNIT_ASSERT_MESSAGE( "test for getType function: get type of socket.",
- osl_Socket_TypeDgram == sSocket.getType( ) );
- }
-
-#ifdef UNX
- // mindy: since on LINUX and SOLARIS, Raw type socket can not be created, so do not test getType() here
- // mindy: and add one test case to test creating Raw type socket--> ctors_TypeRaw()
- void getType_003()
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getType function: get type of socket.this is not passed in (LINUX, SOLARIS), the osl_Socket_TypeRaw, type socket can not be created.",
- sal_True);
- }
-#else
- void getType_003()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeRaw, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- CPPUNIT_ASSERT_MESSAGE( "test for getType function: get type of socket.",
- osl_Socket_TypeRaw == sSocket.getType( ) );
- }
-#endif
-
- CPPUNIT_TEST_SUITE( getType );
- CPPUNIT_TEST( getType_001 );
- CPPUNIT_TEST( getType_002 );
- CPPUNIT_TEST( getType_003 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getType
-
-
-
- /** testing the methods:
- inline sal_Int32 SAL_CALL getOption(
- oslSocketOption Option,
- void* pBuffer,
- sal_uInt32 BufferLen,
- oslSocketOptionLevel Level= osl_Socket_LevelSocket) const;
-
- inline sal_Int32 getOption( oslSocketOption option ) const;
-
- */
-
- class getOption : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
-
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- /** test writer's comment:
-
- in oslSocketOption, the osl_Socket_OptionType denote 1 as osl_Socket_TypeStream.
- 2 as osl_Socket_TypeDgram, etc which is not mapping the oslSocketType enum. differ
- in 1.
- */
-
- void getOption_001()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
- sal_Int32 * pType = ( sal_Int32 * )malloc( sizeof ( sal_Int32 ) );
- *pType = 0;
- sSocket.getOption( osl_Socket_OptionType, pType, sizeof ( sal_Int32 ) );
- sal_Bool bOK = ( SOCK_STREAM == *pType );
- // there is a TypeMap(socket.c) which map osl_Socket_TypeStream to SOCK_STREAM on UNX, and SOCK_STREAM != osl_Socket_TypeStream
- //sal_Bool bOK = ( TYPE_TO_NATIVE(osl_Socket_TypeStream) == *pType );
- free( pType );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getOption function: get type option of socket.",
- sal_True == bOK );
- }
-
- // getsockopt error
- void getOption_004()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- sal_Bool * pbDontRoute = ( sal_Bool * )malloc( sizeof ( sal_Bool ) );
- sal_Int32 nRes = sSocket.getOption( osl_Socket_OptionInvalid, pbDontRoute, sizeof ( sal_Bool ) );
- free( pbDontRoute );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getOption function: get invalid option of socket, should return -1.",
- nRes == -1 );
- }
-
- void getOption_simple_001()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- sal_Bool bOK = ( sal_False == sSocket.getOption( osl_Socket_OptionDontRoute ) );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getOption function: get debug option of socket.",
- sal_True == bOK );
- }
-
- void getOption_simple_002()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- sal_Bool bOK = ( sal_False == sSocket.getOption( osl_Socket_OptionDebug ) );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getOption function: get debug option of socket.",
- sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getOption );
- CPPUNIT_TEST( getOption_001 );
- CPPUNIT_TEST( getOption_004 );
- CPPUNIT_TEST( getOption_simple_001 );
- CPPUNIT_TEST( getOption_simple_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getOption
-
-
- /** testing the methods:
- inline sal_Bool SAL_CALL setOption( oslSocketOption Option,
- void* pBuffer,
- sal_uInt32 BufferLen,
- oslSocketOptionLevel Level= osl_Socket_LevelSocket ) const;
- */
-
- class setOption : public CppUnit::TestFixture
- {
- public:
- TimeValue *pTimeout;
-// LLA: maybe there is an error in the source,
-// as long as I remember, if a derived class do not overload all ctors there is a problem.
-
- ::osl::AcceptorSocket asAcceptorSocket;
-
- void setUp( )
- {
-
- }
-
- void tearDown( )
- {
- asAcceptorSocket.close( );
- }
-
-
- // LLA:
- // getSocketOption returns BufferLen, or -1 if something failed
-
- // setSocketOption returns sal_True, if option could stored
- // else sal_False
-
- void setOption_001()
- {
- /// set and get option.
- int nBufferLen = sizeof ( sal_Int32);
- // LLA: SO_DONTROUTE expect an integer boolean, what ever it is, it's not sal_Bool!
-
- sal_Int32 * pbDontRouteSet = ( sal_Int32 * )malloc( sizeof ( sal_Int32 ) );
- *pbDontRouteSet = 1; // sal_True;
-
- sal_Int32 * pGetBuffer = ( sal_Int32 * )malloc( sizeof ( sal_Int32 ) );
- *pGetBuffer = 0;
-
- // maybe asAcceptorSocket is not right initialized
- sal_Bool b1 = asAcceptorSocket.setOption( osl_Socket_OptionDontRoute, pbDontRouteSet, nBufferLen );
- CPPUNIT_ASSERT_MESSAGE( "setOption function failed.", ( sal_True == b1 ) );
- sal_Int32 n2 = asAcceptorSocket.getOption( osl_Socket_OptionDontRoute, pGetBuffer, nBufferLen );
- CPPUNIT_ASSERT_MESSAGE( "getOption function failed.", ( n2 == nBufferLen ) );
-
- // on Linux, the value of option is 1, on Solaris, it's 16, but it's not important the exact value,
- // just judge it is zero or not!
- sal_Bool bOK = ( 0 != *pGetBuffer );
- t_print("#setOption_001: getOption is %"SAL_PRIdINT32" \n", *pGetBuffer);
-
- // toggle check, set to 0
- *pbDontRouteSet = 0;
-
- sal_Bool b3 = asAcceptorSocket.setOption( osl_Socket_OptionDontRoute, pbDontRouteSet, sizeof ( sal_Int32 ) );
- CPPUNIT_ASSERT_MESSAGE( "setOption function failed.", ( sal_True == b3 ) );
- sal_Int32 n4 = asAcceptorSocket.getOption( osl_Socket_OptionDontRoute, pGetBuffer, nBufferLen );
- CPPUNIT_ASSERT_MESSAGE( "getOption (DONTROUTE) function failed.", ( n4 == nBufferLen ) );
-
- sal_Bool bOK2 = ( 0 == *pGetBuffer );
-
- t_print("#setOption_001: getOption is %"SAL_PRIdINT32" \n", *pGetBuffer);
-
-// LLA: sal_Bool * pbDontTouteSet = ( sal_Bool * )malloc( sizeof ( sal_Bool ) );
-// LLA: *pbDontTouteSet = sal_True;
-// LLA: sal_Bool * pbDontTouteGet = ( sal_Bool * )malloc( sizeof ( sal_Bool ) );
-// LLA: *pbDontTouteGet = sal_False;
-// LLA: asAcceptorSocket.setOption( osl_Socket_OptionDontRoute, pbDontTouteSet, sizeof ( sal_Bool ) );
-// LLA: asAcceptorSocket.getOption( osl_Socket_OptionDontRoute, pbDontTouteGet, sizeof ( sal_Bool ) );
-// LLA: ::rtl::OUString suError = outputError(::rtl::OUString::valueOf((sal_Int32)*pbDontTouteGet),
-// LLA: ::rtl::OUString::valueOf((sal_Int32)*pbDontTouteSet),
-// LLA: "test for setOption function: set osl_Socket_OptionDontRoute and then check");
-// LLA:
-// LLA: sal_Bool bOK = ( sal_True == *pbDontTouteGet );
-// LLA: free( pbDontTouteSet );
-// LLA: free( pbDontTouteGet );
-
- CPPUNIT_ASSERT_MESSAGE( "test for setOption function: set option of a socket and then check.",
- ( sal_True == bOK ) && (sal_True == bOK2) );
-
- free( pbDontRouteSet );
- free( pGetBuffer );
-// LLA: CPPUNIT_ASSERT_MESSAGE( suError, sal_True == bOK );
- }
-
- void setOption_002()
- {
- /// set and get option.
-
- // sal_Int32 * pbLingerSet = ( sal_Int32 * )malloc( nBufferLen );
- // *pbLingerSet = 7;
- // sal_Int32 * pbLingerGet = ( sal_Int32 * )malloc( nBufferLen );
- /* struct */linger aLingerSet;
- sal_Int32 nBufferLen = sizeof( struct linger );
- aLingerSet.l_onoff = 1;
- aLingerSet.l_linger = 7;
-
- linger aLingerGet;
-
- asAcceptorSocket.setOption( osl_Socket_OptionLinger, &aLingerSet, nBufferLen );
-
- sal_Int32 n1 = asAcceptorSocket.getOption( osl_Socket_OptionLinger, &aLingerGet, nBufferLen );
- CPPUNIT_ASSERT_MESSAGE( "getOption (SO_LINGER) function failed.", ( n1 == nBufferLen ) );
-
- //t_print("#setOption_002: getOption is %d \n", aLingerGet.l_linger);
- sal_Bool bOK = ( 7 == aLingerGet.l_linger );
- CPPUNIT_ASSERT_MESSAGE( "test for setOption function: set option of a socket and then check. ",
- sal_True == bOK );
-
- }
-
- void setOption_003()
- {
- linger aLingerSet;
- aLingerSet.l_onoff = 1;
- aLingerSet.l_linger = 7;
-
- sal_Bool b1 = asAcceptorSocket.setOption( osl_Socket_OptionLinger, &aLingerSet, 0 );
- printUString( asAcceptorSocket.getErrorAsString() );
- CPPUNIT_ASSERT_MESSAGE( "setOption (SO_LINGER) function failed for optlen is 0.",
- ( b1 == sal_False ) );
- }
-
- void setOption_simple_001()
- {
- /// set and get option.
- asAcceptorSocket.setOption( osl_Socket_OptionDontRoute, 1 ); //sal_True );
- sal_Bool bOK = ( 0 != asAcceptorSocket.getOption( osl_Socket_OptionDontRoute ) );
-
- t_print("setOption_simple_001(): getoption is %d \n", (int) asAcceptorSocket.getOption( osl_Socket_OptionDontRoute ) );
- CPPUNIT_ASSERT_MESSAGE( "test for setOption function: set option of a socket and then check.",
- ( sal_True == bOK ) );
- }
-
- void setOption_simple_002()
- {
- /// set and get option.
- // LLA: this does not work, due to the fact that SO_LINGER is a structure
-// LLA: asAcceptorSocket.setOption( osl_Socket_OptionLinger, 7 );
-// LLA: sal_Bool bOK = ( 7 == asAcceptorSocket.getOption( osl_Socket_OptionLinger ) );
-
-// LLA: CPPUNIT_ASSERT_MESSAGE( "test for setOption function: set option of a socket and then check.",
-// LLA: ( sal_True == bOK ) );
- }
-
- CPPUNIT_TEST_SUITE( setOption );
- CPPUNIT_TEST( setOption_001 );
- CPPUNIT_TEST( setOption_002 );
- CPPUNIT_TEST( setOption_003 );
- CPPUNIT_TEST( setOption_simple_001 );
-// LLA: CPPUNIT_TEST( setOption_simple_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class setOption
-
-
-
- /** testing the method:
- inline sal_Bool SAL_CALL enableNonBlockingMode( sal_Bool bNonBlockingMode);
- */
- class enableNonBlockingMode : public CppUnit::TestFixture
- {
- public:
- ::osl::AcceptorSocket asAcceptorSocket;
-
- void enableNonBlockingMode_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT );
- ::osl::StreamSocket ssConnection;
-
- /// launch server socket
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
- asAcceptorSocket.enableNonBlockingMode( sal_True );
- asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- /// if reach this statement, it is non-blocking mode, since acceptConnection will blocked by default.
- sal_Bool bOK = sal_True;
- asAcceptorSocket.close( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for enableNonBlockingMode function: launch a server socket and make it non blocking. if it can pass the acceptConnection statement, it is non-blocking",
- ( sal_True == bOK ) );
- }
-
-
- CPPUNIT_TEST_SUITE( enableNonBlockingMode );
- CPPUNIT_TEST( enableNonBlockingMode_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class enableNonBlockingMode
-
-
- /** testing the method:
- inline sal_Bool SAL_CALL isNonBlockingMode() const;
- */
- class isNonBlockingMode : public CppUnit::TestFixture
- {
- public:
- ::osl::AcceptorSocket asAcceptorSocket;
-
- void isNonBlockingMode_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT );
- ::osl::StreamSocket ssConnection;
-
- /// launch server socket
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); // sal_True);
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
-
- sal_Bool bOK3 = asAcceptorSocket.isNonBlockingMode( );
- asAcceptorSocket.enableNonBlockingMode( sal_True );
- asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- /// if reach this statement, it is non-blocking mode, since acceptConnection will blocked by default.
- sal_Bool bOK4 = asAcceptorSocket.isNonBlockingMode( );
- asAcceptorSocket.close( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isNonBlockingMode function: launch a server socket and make it non blocking. it is expected to change from blocking mode to non-blocking mode.",
- ( sal_False == bOK3 ) && ( sal_True == bOK4 ) );
- }
-
-
- CPPUNIT_TEST_SUITE( isNonBlockingMode );
- CPPUNIT_TEST( isNonBlockingMode_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class isNonBlockingMode
-
- /** testing the method:
- inline void SAL_CALL clearError() const;
- */
- class clearError : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
-
- void clearError_001()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( aHostIpInval, IP_PORT_HTTP2 );
- ::osl::SocketAddr saLocalSocketAddr;
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sSocket.bind( saBindSocketAddr );//build an error "osl_Socket_E_AddrNotAvail"
- oslSocketError seBind = sSocket.getError( );
- sSocket.clearError( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for clearError function: trick an error called sSocket.getError( ), and then clear the error states, check the result.",
- osl_Socket_E_None == sSocket.getError( ) && seBind != osl_Socket_E_None );
- }
-
-
- CPPUNIT_TEST_SUITE( clearError );
- CPPUNIT_TEST( clearError_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class clearError
-
-
- /** testing the methods:
- inline oslSocketError getError() const;
- inline ::rtl::OUString getErrorAsString( ) const;
- */
- class getError : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
-
- void getError_001()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( aHostIp1, IP_PORT_FTP );
- ::osl::SocketAddr saLocalSocketAddr;
-
- CPPUNIT_ASSERT_MESSAGE( "test for getError function: should get no error.",
- osl_Socket_E_None == sSocket.getError( ) );
- }
-
- void getError_002()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( aHostIpInval, IP_PORT_FTP );
- ::osl::SocketAddr saLocalSocketAddr;
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sSocket.bind( saBindSocketAddr );//build an error "osl_Socket_E_AddrNotAvail"
- //on Solaris, the error no is EACCES, but it has no mapped value, so getError() returned osl_Socket_E_InvalidError.
-#if defined(SOLARIS)
- CPPUNIT_ASSERT_MESSAGE( "trick an error called sSocket.getError( ), check the getError result.Failed on Solaris, returned osl_Socket_E_InvalidError because no entry to map the errno EACCES. ",
- osl_Socket_E_InvalidError == sSocket.getError( ) );
-#else
- //while on Linux & Win32, the errno is EADDRNOTAVAIL, getError returned osl_Socket_E_AddrNotAvail.
-
- CPPUNIT_ASSERT_MESSAGE( "trick an error called sSocket.getError( ), check the getError result.Failed on Solaris, returned osl_Socket_E_InvalidError because no entry to map the errno EACCES. Passed on Linux & Win32",
- osl_Socket_E_AddrNotAvail == sSocket.getError( ) );
-#endif
- }
-
- CPPUNIT_TEST_SUITE( getError );
- CPPUNIT_TEST( getError_001 );
- CPPUNIT_TEST( getError_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getError
-
-
-
- /** testing the methods:
- inline oslSocket getHandle() const;
- */
-
- class getHandle : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void getHandle_001()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::Socket assignSocket = sSocket.getHandle();
-
- CPPUNIT_ASSERT_MESSAGE( "test for operators_assignment_handle function: test the assignment operator.",
- osl_Socket_TypeStream == assignSocket.getType( ) );
- }
-
- void getHandle_002()
- {
- ::osl::Socket sSocket( sHandle );
- ::osl::Socket assignSocket ( sSocket.getHandle( ) );
-
- CPPUNIT_ASSERT_MESSAGE( "test for operators_assignment function: assignment operator",
- osl_Socket_TypeStream == assignSocket.getType( ) );
- }
-
- CPPUNIT_TEST_SUITE( getHandle );
- CPPUNIT_TEST( getHandle_001 );
- CPPUNIT_TEST( getHandle_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getHandle
-
-
-// -----------------------------------------------------------------------------
-
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::ctors, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::operators, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::close, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getLocalAddr, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getLocalPort, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getLocalHost, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getPeer, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::bind, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::isRecvReady, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::isSendReady, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getType, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getOption, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::setOption, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::enableNonBlockingMode, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::isNonBlockingMode, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::clearError, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getError, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getHandle, "osl_Socket");
-
-} // namespace osl_Socket
-
-
-
-namespace osl_StreamSocket
-{
-
- /** testing the methods:
- inline StreamSocket(oslAddrFamily Family = osl_Socket_FamilyInet,
- oslProtocol Protocol = osl_Socket_ProtocolIp,
- oslSocketType Type = osl_Socket_TypeStream);
-
- inline StreamSocket( const StreamSocket & );
-
- inline StreamSocket( oslSocket Socket , __sal_NoAcquire noacquire );
-
- inline StreamSocket( oslSocket Socket );
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
-
- void ctors_none()
- {
- /// Socket constructor.
- ::osl::StreamSocket ssSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_none constructor function: check if the stream socket was created successfully.",
- osl_Socket_TypeStream == ssSocket.getType( ) );
- }
-
- void ctors_acquire()
- {
- /// Socket constructor.
- ::osl::StreamSocket ssSocket( sHandle );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_acquire constructor function: check if the socket was created successfully",
- osl_Socket_TypeStream == ssSocket.getType( ) );
- }
-
- void ctors_no_acquire()
- {
- /// Socket constructor.
- ::osl::StreamSocket ssSocket( sHandle, SAL_NO_ACQUIRE );
-
- CPPUNIT_ASSERT_MESSAGE(" test for ctors_no_acquire constructor function: check if the socket was created successfully",
- osl_Socket_TypeStream == ssSocket.getType( ) );
- }
-
- void ctors_copy_ctor()
- {
- /// Socket constructor.
- ::osl::StreamSocket ssSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- /// Socket copy constructor.
- ::osl::StreamSocket copySocket( ssSocket );
-
- CPPUNIT_ASSERT_MESSAGE(" test for ctors_copy_ctor constructor function: create new Socket instance using copy constructor",
- osl_Socket_TypeStream == copySocket.getType( ) );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_none );
- CPPUNIT_TEST( ctors_acquire );
- CPPUNIT_TEST( ctors_no_acquire );
- CPPUNIT_TEST( ctors_copy_ctor );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class ctors
-
- class send_recv: public CppUnit::TestFixture
- {
- public:
- // initialization
- void setUp( )
- {
- }
-
- void tearDown( )
- {
-
- }
-
- void send_recv1()
- {
- //client sent two strings, and server received, check the order and value
- ServerSocketThread myServerThread;
- ClientSocketThread myClientThread;
- myServerThread.create( );
- myClientThread.create( );
-
- //wait until the thread terminate
- myClientThread.join( );
- myServerThread.join( );
- sal_Char myStr[30] = "";
- strcat( myStr, pTestString1 );
- strcat( myStr, pTestString2 );
- sal_Int32 nRes = strcmp( myServerThread.pReadBuffer, myStr );
- CPPUNIT_ASSERT_MESSAGE(" test for send/recv with two threads: launch Server/Client threads, send data from client, check received data in Server thread.",
- nRes == 0 );
- }
-
- // error when recv
- void send_recv2()
- {
- ::osl::AcceptorSocket asAcceptorSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT9 );
- ::osl::StreamSocket ssStreamConnection;
- sal_Char pReadBuffer[30] = "";
-
- ClientSocketThread myClientThread;
- myClientThread.create( );
-
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 );
-
- asAcceptorSocket.bind( saLocalSocketAddr );
- asAcceptorSocket.listen( 1 );
- asAcceptorSocket.enableNonBlockingMode( sal_True );
- asAcceptorSocket.acceptConnection( ssStreamConnection );
- sal_Int32 nReadNumber = ssStreamConnection.recv( pReadBuffer, 11 );
-
- myClientThread.join( ) ;
- ssStreamConnection.close();
- asAcceptorSocket.close();
- CPPUNIT_ASSERT_MESSAGE(" test for send/recv, recv error!", nReadNumber == -1 );
- }
-
- void write_read(sal_Int32 _nBufferSize, int _nValue)
- {
- //client sent two strings, and server received, check the order and value
- WriteSocketThread myServerThread(_nBufferSize, _nValue);
- ReadSocketThread myClientThread(_nBufferSize, _nValue);
- myServerThread.create( );
-// thread_sleep( 1 );
- myClientThread.create( );
-
- //wait until the thread terminate
- myClientThread.join( );
- myServerThread.join( );
-
- //Maximum Packet Size is ( ARPANET, MILNET = 1007 Ethernet (10Mb) = 1500
- // Proteon PRONET = 2046), so here test read 4000 bytes
- sal_Int32 nLength = myClientThread.getCount();
- bool bIsOk = myClientThread.isOk(); // check if the values are right.
-
- t_print("Length:=%d\n", (int) nLength);
- t_print(" bIsOk:=%d\n", bIsOk);
-
- CPPUNIT_ASSERT_MESSAGE(" test for write/read values with two threads: send data from server, check readed data in client.",
- nLength == _nBufferSize && bIsOk == true);
- }
-
- void write_read_001()
- {
- write_read(50, 10);
- }
- void write_read_002()
- {
- write_read(1024, 20);
- }
- void write_read_003()
- {
- write_read(4000, 1);
- }
- void write_read_004()
- {
- write_read(8192, 3);
- }
-
- CPPUNIT_TEST_SUITE( send_recv );
- CPPUNIT_TEST( write_read_001 );
- CPPUNIT_TEST( write_read_002 );
- CPPUNIT_TEST( write_read_003 );
- CPPUNIT_TEST( write_read_004 );
- CPPUNIT_TEST( send_recv1 );
- CPPUNIT_TEST( send_recv2 );
-// CPPUNIT_TEST( write_read );
- CPPUNIT_TEST_SUITE_END();
- }; // class send_recv
-
-class SendClientThread : public ClientSocketThread
-{
-protected:
-
- void SAL_CALL run( )
- {
- TimeValue *pTimeout;
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 5;
- pTimeout->Nanosec = 0;
-
- if ( osl_Socket_Ok == csConnectorSocket.connect( saTargetSocketAddr, pTimeout ))
- {
-#if !SILENT_TEST
- sal_Int32 nWrite1 =
-#endif
- csConnectorSocket.write( pTestString1, 11 ); // "test socket"
-
-#if !SILENT_TEST
- sal_Int32 nWrite2 =
-#endif
- csConnectorSocket.write( pTestString2, strlen( pTestString2 ) + 1 );
- thread_sleep( 2 );
- csConnectorSocket.write( pTestString2, strlen( pTestString2 ) + 1 );
- t_print("nWrite1 is %d, nWrite2 is %d\n", (int)nWrite1, (int)nWrite2 );
- //thread_sleep( 1 );
- }
- else
- t_print("# SendClientThread: connect failed! \n");
-
- csConnectorSocket.close();
- free( pTimeout );
- }
-
-};
-
- class shutdown: public CppUnit::TestFixture
- {
- public:
- // initialization
- void setUp( )
- {
- }
-
- void tearDown( )
- {
-
- }
-
- // similar to close_002
- void shutdown_001()
- {
-#if defined(LINUX)
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- AcceptorThread myAcceptorThread( asSocket, aHostIp1 );
- myAcceptorThread.create();
-
- thread_sleep( 1 );
-
- //when accepting, shutdown the socket, the thread will not block for accepting
- asSocket.shutdown();
- myAcceptorThread.join();
-
- CPPUNIT_ASSERT_MESSAGE( "test for close when is accepting: the socket will quit accepting status.",
- myAcceptorThread.isOK( ) == sal_True );
-#endif
- }
-
- void shutdown_002()
- {
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT9);
- asSocket.setOption( osl_Socket_OptionReuseAddr, 1 );
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: bind fail", asSocket.bind( saLocalSocketAddr ) == sal_True);
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: listen fail", asSocket.listen( 1 ) == sal_True );
- sal_Char pReadBuffer[40];
- SendClientThread mySendThread;
- mySendThread.create();
-
- asSocket.enableNonBlockingMode( sal_False );
- ::osl::StreamSocket ssConnectionSocket;
- oslSocketResult eResult = asSocket.acceptConnection( ssConnectionSocket );
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: acceptConnection fail", eResult == osl_Socket_Ok );
-
- /* set socket option SO_LINGER 0, so close immediatly */
- linger aLingerSet;
- sal_Int32 nBufferLen = sizeof( struct linger );
- aLingerSet.l_onoff = 0;
- aLingerSet.l_linger = 0;
-
- ssConnectionSocket.setOption( osl_Socket_OptionLinger, &aLingerSet, nBufferLen );
- thread_sleep( 1 );
- //sal_uInt32 nRecv1 = 0;
- sal_Int32 nRead1 = ssConnectionSocket.read( pReadBuffer, 11 );
-
- //shutdown read after client the first send complete
- ssConnectionSocket.shutdown( osl_Socket_DirRead );
-
- sal_Int32 nRead2 = ssConnectionSocket.read( pReadBuffer + nRead1, 12 );
- sal_Int32 nRead3 = ssConnectionSocket.read( pReadBuffer + nRead1 + nRead2, 12 );
- t_print("after read 2, nRead1 is %d, nRead2 is %d, nRead3 is %d \n", (int) nRead1, (int) nRead2, (int) nRead3 );
- mySendThread.join();
-
- ssConnectionSocket.close();
- asSocket.close();
-
- /* on Linux, if send is before shutdown(DirRead), can read, nRecv2 still > 0,
- http://dbforums.com/arch/186/2002/12/586417
- While on Solaris, after shutdown(DirRead), all read will return 0
- */
-#ifdef LINUX
- CPPUNIT_ASSERT_MESSAGE( "test for shutdown read direction: the socket can not read(recv).",
- nRead1 > 0 && nRead3 == 0 );
-#else
- CPPUNIT_ASSERT_MESSAGE( "test for shutdown read direction: the socket can not read(recv).",
- nRead1 > 0 && nRead2 == 0 && nRead3 == 0 );
-#endif
-
- }
-
- void shutdown_003()
- {
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT9);
- asSocket.setOption( osl_Socket_OptionReuseAddr, 1 );
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: bind fail", asSocket.bind( saLocalSocketAddr ) == sal_True);
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: listen fail", asSocket.listen( 1 ) == sal_True );
- sal_Char pReadBuffer[40];
- SendClientThread mySendThread;
- mySendThread.create();
-
- asSocket.enableNonBlockingMode( sal_False );
- ::osl::StreamSocket ssConnectionSocket;
- oslSocketResult eResult = asSocket.acceptConnection( ssConnectionSocket );
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: acceptConnection fail", eResult == osl_Socket_Ok );
-
- thread_sleep( 1 );
- //shutdown write after client the first send complete
- ssConnectionSocket.shutdown( osl_Socket_DirWrite );
-
- // recv should not shutdown
- sal_Int32 nRead1 = ssConnectionSocket.read( pReadBuffer, 11 );
-
- sal_Int32 nWrite = ssConnectionSocket.write( pReadBuffer, 11 );
- // still can read
- sal_Int32 nRead3 = ssConnectionSocket.read( pReadBuffer + nRead1 , 12 );
- t_print("after read 2, nRead1 is %d, nWrite is %d, nRead3 is %d\n", (int) nRead1, (int) nWrite, (int) nRead3 );
- mySendThread.join();
- ssConnectionSocket.close();
- asSocket.close();
-
- CPPUNIT_ASSERT_MESSAGE( "test for shutdown read direction: the socket can not send(write).",
- nRead1 > 0 && nWrite == 0 && nRead3 > 0);
-
- }
-
- CPPUNIT_TEST_SUITE( shutdown );
- CPPUNIT_TEST( shutdown_001 );
- CPPUNIT_TEST( shutdown_002 );
- CPPUNIT_TEST( shutdown_003 );
- CPPUNIT_TEST_SUITE_END();
- }; // class shutdown
-
- class isExceptionPending: public CppUnit::TestFixture
- {
- public:
- void isExPending_001()
- {
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- TimeValue *pTimeout;
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- sal_Bool bOk = asSocket.isExceptionPending( pTimeout );
- free( pTimeout );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isExceptionPending.",
- bOk == sal_False );
- }
-
- /**tester's comments: lack of a case that return sal_True, do not know when it will return sal_True*/
-
-
- CPPUNIT_TEST_SUITE( isExceptionPending );
- CPPUNIT_TEST( isExPending_001 );
- CPPUNIT_TEST_SUITE_END();
- }; // class isExceptionPending
-
-// -----------------------------------------------------------------------------
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_StreamSocket::ctors, "osl_StreamSocket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_StreamSocket::send_recv, "osl_StreamSocket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_StreamSocket::shutdown, "osl_StreamSocket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_StreamSocket::isExceptionPending, "osl_StreamSocket");
-
-} // namespace osl_StreamSocket
-
-
-namespace osl_ConnectorSocket
-{
-
- /** testing the method:
- ConnectorSocket(oslAddrFamily Family = osl_Socket_FamilyInet,
- oslProtocol Protocol = osl_Socket_ProtocolIp,
- oslSocketType Type = osl_Socket_TypeStream);
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
- void ctors_001()
- {
- /// Socket constructor.
- ::osl::ConnectorSocket csSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_001 constructor function: check if the connector socket was created successfully.",
- osl_Socket_TypeStream == csSocket.getType( ) );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class ctors
-
- /** testing the method:
- oslSocketResult SAL_CALL connect(const SocketAddr& TargetHost, const TimeValue* pTimeout = 0);
- */
-
- class connect : public CppUnit::TestFixture
- {
- public:
- TimeValue *pTimeout;
- ::osl::AcceptorSocket asAcceptorSocket;
- ::osl::ConnectorSocket csConnectorSocket;
-
-
- // initialization
- void setUp( )
- {
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- // sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- free( pTimeout );
- // sHandle = NULL;
- asAcceptorSocket.close( );
- csConnectorSocket.close( );
- }
-
-
- void connect_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT2 );
- ::osl::SocketAddr saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT2 );
- ::osl::SocketAddr saPeerSocketAddr( aHostIp2, IP_PORT_FTP );
- ::osl::StreamSocket ssConnection;
-
- /// launch server socket
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
-
- //asAcceptorSocket.enableNonBlockingMode( sal_True );
- //oslSocketResult eResultAccept = asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
- //CPPUNIT_ASSERT_MESSAGE( "accept failed.", osl_Socket_Ok == eResultAccept );
- /// launch client socket
- oslSocketResult eResult = csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
- CPPUNIT_ASSERT_MESSAGE( "connect failed.", osl_Socket_Ok == eResult );
-
- /// get peer information
- csConnectorSocket.getPeerAddr( saPeerSocketAddr );/// connected.
-
- CPPUNIT_ASSERT_MESSAGE( "test for connect function: try to create a connection with remote host. and check the setup address.",
- ( sal_True == compareSocketAddr( saPeerSocketAddr, saLocalSocketAddr ) ) &&
- ( osl_Socket_Ok == eResult ));
- }
- //non-blocking mode connect?
- void connect_002()
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT3 );
- ::osl::SocketAddr saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT3 );
- ::osl::SocketAddr saPeerSocketAddr( aHostIp2, IP_PORT_FTP );
-
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- asAcceptorSocket.enableNonBlockingMode( sal_True );
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
-
- csConnectorSocket.enableNonBlockingMode( sal_True );
-
- oslSocketResult eResult = csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
- CPPUNIT_ASSERT_MESSAGE( "connect failed.", osl_Socket_InProgress == eResult || osl_Socket_Ok == eResult );
-
- /// get peer information
- csConnectorSocket.getPeerAddr( saPeerSocketAddr );
-
- CPPUNIT_ASSERT_MESSAGE( "test for connect function: try to create a connection with remote host. and check the setup address.",
- sal_True == compareSocketAddr( saPeerSocketAddr, saLocalSocketAddr ) ) ;
- }
- // really an error or just delayed
- // how to design senarios that will return osl_Socket_Interrupted, osl_Socket_TimedOut
- void connect_003()
- {
- ::osl::SocketAddr saTargetSocketAddr1( aHostIp1, IP_PORT_MYPORT3 );
- ::osl::SocketAddr saTargetSocketAddr2( aHostIpInval1, IP_PORT_MYPORT3 );
-
- csConnectorSocket.enableNonBlockingMode( sal_False );
-
- oslSocketResult eResult1 = csConnectorSocket.connect( saTargetSocketAddr1, pTimeout );
- oslSocketResult eResult2 = csConnectorSocket.connect( saTargetSocketAddr2, pTimeout );
- CloseSocketThread myCloseThread( csConnectorSocket );
- oslSocketResult eResult3 = csConnectorSocket.connect( saTargetSocketAddr2, pTimeout );
- myCloseThread.join();
- CPPUNIT_ASSERT_MESSAGE( "connect should failed.", osl_Socket_Error == eResult1 &&
- osl_Socket_Error == eResult2 && osl_Socket_Error == eResult3 );
-
- }
-
- // really an error in non-blocking mode
- void connect_004()
- {
- ::osl::SocketAddr saTargetSocketAddr( aHostIpInval1, IP_PORT_MYPORT3 );
-
- csConnectorSocket.enableNonBlockingMode( sal_True );
-
- oslSocketResult eResult = csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
- CPPUNIT_ASSERT_MESSAGE( "connect should failed.", osl_Socket_Error == eResult );
- }
- /** here need a case: immediate connection, say in non-blocking mode connect return osl_Socket_Ok
- */
-
- CPPUNIT_TEST_SUITE( connect );
- CPPUNIT_TEST( connect_001 );
- CPPUNIT_TEST( connect_002 );
- CPPUNIT_TEST( connect_003 );
- CPPUNIT_TEST( connect_004 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class connect
-
-
-// -----------------------------------------------------------------------------
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_ConnectorSocket::ctors, "osl_ConnectorSocket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_ConnectorSocket::connect, "osl_ConnectorSocket");
-
-} // namespace osl_ConnectorSocket
-
-
-
-namespace osl_AcceptorSocket
-{
-
- /** testing the methods:
- inline AcceptorSocket(oslAddrFamily Family = osl_Socket_FamilyInet,
- oslProtocol Protocol = osl_Socket_ProtocolIp,
- oslSocketType Type = osl_Socket_TypeStream);
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
-
- void ctors_001()
- {
- /// Socket constructor.
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_001 constructor function: check if the acceptor socket was created successfully.",
- osl_Socket_TypeStream == asSocket.getType( ) );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class ctors
-
- /** testing the method:
- inline sal_Bool SAL_CALL listen(sal_Int32 MaxPendingConnections= -1);
- inline oslSocketResult SAL_CALL acceptConnection( StreamSocket& Connection);
- inline oslSocketResult SAL_CALL acceptConnection( StreamSocket& Connection, SocketAddr & PeerAddr);
- */
-
- class listen_accept : public CppUnit::TestFixture
- {
- public:
- TimeValue *pTimeout;
- ::osl::AcceptorSocket asAcceptorSocket;
- ::osl::ConnectorSocket csConnectorSocket;
-
-
- // initialization
- void setUp( )
- {
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1);
- // sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- free( pTimeout );
- // sHandle = NULL;
- asAcceptorSocket.close( );
- csConnectorSocket.close( );
- }
-
-
- void listen_accept_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT3 );
- ::osl::SocketAddr saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT3 );
- ::osl::StreamSocket ssConnection;
-
- /// launch server socket
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
- asAcceptorSocket.enableNonBlockingMode( sal_True );
-
- /// launch client socket
- csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- CPPUNIT_ASSERT_MESSAGE( "test for listen_accept function: try to create a connection with remote host, using listen and accept.",
- ( osl_Socket_Ok == eResult ) );
- }
-
- void listen_accept_002()
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT4 );
- ::osl::SocketAddr saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT4 );
- ::osl::SocketAddr saPeerSocketAddr( aHostIp2, IP_PORT_FTP );
- ::osl::StreamSocket ssConnection;
-
- /// launch server socket
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
- asAcceptorSocket.enableNonBlockingMode( sal_True );
-
- /// launch client socket
- csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection(ssConnection, saPeerSocketAddr); /// waiting for incoming connection...
-
- CPPUNIT_ASSERT_MESSAGE( "test for listen_accept function: try to create a connection with remote host, using listen and accept, accept with peer address.",
- ( sal_True == bOK2 ) &&
- ( osl_Socket_Ok == eResult ) &&
- ( sal_True == compareSocketAddr( saPeerSocketAddr, saLocalSocketAddr ) ) );
- }
-
- void listen_accept_003()
- {
-
- }
-
- CPPUNIT_TEST_SUITE( listen_accept );
- CPPUNIT_TEST( listen_accept_001 );
- CPPUNIT_TEST( listen_accept_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class listen_accept
-
-
-// -----------------------------------------------------------------------------
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_AcceptorSocket::ctors, "osl_AcceptorSocket");
-//CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_AcceptorSocket::operator_assign, "osl_AcceptorSocket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_AcceptorSocket::listen_accept, "osl_AcceptorSocket");
-
-} // namespace osl_AcceptorSocket
-
-
-namespace osl_DatagramSocket
-{
-
- /** testing the methods:
- inline DatagramSocket(oslAddrFamily Family= osl_Socket_FamilyInet,
- oslProtocol Protocol= osl_Socket_ProtocolIp,
- oslSocketType Type= osl_Socket_TypeDgram);
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
-
- void ctors_001()
- {
- /// Socket constructor.
- ::osl::DatagramSocket dsSocket;
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_001 constructor function: check if the datagram socket was created successfully.",
- osl_Socket_TypeDgram == dsSocket.getType( ) );
- }
-
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class ctors
-
-/**thread do sendTo, refer to http://www.coding-zone.co.uk/cpp/articles/140101networkprogrammingv.shtml
-*/
-class TalkerThread : public Thread
-{
-protected:
- ::osl::SocketAddr saTargetSocketAddr;
- ::osl::DatagramSocket dsSocket;
-
- void SAL_CALL run( )
- {
- dsSocket.sendTo( saTargetSocketAddr, pTestString1, strlen( pTestString1 ) + 1 ); // "test socket"
- dsSocket.shutdown();
- }
-
- void SAL_CALL onTerminated( )
- {
- }
-
-public:
- TalkerThread( ):
- saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT9 )
- {
- }
-
- ~TalkerThread( )
- {
- if ( isRunning( ) )
- t_print("# error: TalkerThread not terminated normally.\n" );
- }
-};
-
-/**thread do listen, refer to http://www.coding-zone.co.uk/cpp/articles/140101networkprogrammingv.shtml
-*/
-class ListenerThread : public Thread
-{
-protected:
- ::osl::SocketAddr saTargetSocketAddr;
- ::osl::DatagramSocket dsSocket;
-
- void SAL_CALL run( )
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT10 );
- dsSocket.setOption( osl_Socket_OptionReuseAddr, 1 );
- if ( dsSocket.bind( saLocalSocketAddr ) == sal_False )
- {
- t_print("DatagramSocket bind failed \n");
- return;
- }
- //blocking mode: default
-#if !SILENT_TEST
- sal_Int32 nRecv =
-#endif
- dsSocket.recvFrom( pRecvBuffer, 30, &saTargetSocketAddr);
- t_print("After recvFrom, nRecv is %d\n", (int) nRecv);
- }
-
- void SAL_CALL onTerminated( )
- {
- }
-
-public:
- sal_Char pRecvBuffer[30];
- ListenerThread( ):
- saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT10 )
- {
- pRecvBuffer[0] = '\0';
- }
-
- ~ListenerThread( )
- {
- if ( isRunning( ) )
- t_print("# error: ListenerThread not terminated normally.\n" );
- }
-
-};
-
- /** testing the methods:
- inline sal_Int32 DatagramSocket::recvFrom(void* pBuffer, sal_uInt32 BufferSize,
- SocketAddr* pSenderAddr, oslSocketMsgFlag Flag )
- inline sal_Int32 DatagramSocket::sendTo( const SocketAddr& ReceiverAddr,
- const void* pBuffer, sal_uInt32 BufferSize, oslSocketMsgFlag Flag )
- */
-
- class sendTo_recvFrom : public CppUnit::TestFixture
- {
- public:
-
- void sr_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT9 );
- ::osl::DatagramSocket dsSocket;
- dsSocket.setOption( osl_Socket_OptionReuseAddr, 1 );
- dsSocket.bind( saLocalSocketAddr );
-
- sal_Char pReadBuffer[30];
- TalkerThread myTalkThread;
- myTalkThread.create();
- sal_Int32 nRecv = dsSocket.recvFrom( pReadBuffer, 30, &saLocalSocketAddr);
- myTalkThread.join();
- //t_print("#received buffer is %s# \n", pReadBuffer);
-
- sal_Bool bOk = ( strcmp(pReadBuffer, pTestString1) == 0 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for sendTo/recvFrom function: create a talker thread and recvFrom in the main thread, check if the datagram socket can communicate successfully.",
- nRecv > 0 && bOk == sal_True );
- }
-
- void sr_002()
- {
- ::osl::SocketAddr saListenSocketAddr( aHostIp1, IP_PORT_MYPORT10 );
- ::osl::DatagramSocket dsSocket;
-
- //listener thread construct a DatagramSocket, recvFrom waiting for data, then main thread sendto data
- ListenerThread myListenThread;
- myListenThread.create();
- //to grantee the recvFrom is before sendTo
- thread_sleep( 1 );
-
- sal_Int32 nSend = dsSocket.sendTo( saListenSocketAddr, pTestString2, strlen( pTestString2 ) + 1 );
-
- CPPUNIT_ASSERT_MESSAGE( "DatagramSocket sendTo failed: nSend <= 0.", nSend > 0);
-
- myListenThread.join();
- //t_print("#received buffer is %s# \n", myListenThread.pRecvBuffer);
-
- sal_Bool bOk = ( strcmp( myListenThread.pRecvBuffer, pTestString2) == 0 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for sendTo/recvFrom function: create a listener thread and sendTo in the main thread, check if the datagram socket can communicate successfully.",
- bOk == sal_True );
- }
-
- //sendTo error, return -1; recvFrom error, return -1
- void sr_003()
- {
- ::osl::SocketAddr saListenSocketAddr( aHostIpInval1, IP_PORT_MYPORT10 );
- ::osl::DatagramSocket dsSocket;
- // Transport endpoint is not connected
- sal_Int32 nSend = dsSocket.sendTo( saListenSocketAddr, pTestString2, strlen( pTestString2 ) + 1 );
- CPPUNIT_ASSERT_MESSAGE( "DatagramSocket sendTo should fail: nSend <= 0.",
- nSend == -1 );
- }
-
- void sr_004()
- {
- ::osl::SocketAddr saListenSocketAddr1( aHostIpInval1, IP_PORT_MYPORT10 );
- ::osl::SocketAddr saListenSocketAddr2( aHostIp2, IP_PORT_MYPORT10 );
- ::osl::DatagramSocket dsSocket;
-
- dsSocket.enableNonBlockingMode( sal_True );
-
- sal_Char pReadBuffer[30];
- //sal_Int32 nRecv1 = dsSocket.recvFrom( pReadBuffer, 30, &saListenSocketAddr1 );
-
- // will block ?
- CloseSocketThread myThread( dsSocket );
- myThread.create();
- sal_Int32 nRecv2 = dsSocket.recvFrom( pReadBuffer, 30, &saListenSocketAddr1 );
- myThread.join();
- //t_print("#nRecv1 is %d nRecv2 is %d\n", nRecv1, nRecv2 );
- CPPUNIT_ASSERT_MESSAGE( "DatagramSocket sendTo should fail: nSend <= 0.",
- nRecv2 == -1 );
- }
-
- CPPUNIT_TEST_SUITE( sendTo_recvFrom );
- CPPUNIT_TEST( sr_001 );
- CPPUNIT_TEST( sr_002 );
- CPPUNIT_TEST( sr_003 );
- CPPUNIT_TEST( sr_004 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class sendTo_recvFrom
-
-// -----------------------------------------------------------------------------
-
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_DatagramSocket::ctors);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_DatagramSocket::sendTo_recvFrom);
-
-} // namespace osl_DatagramSocket
-
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/osl_Socket.xsce b/sal/qa/osl/socket/osl_Socket.xsce
deleted file mode 100644
index 38c02c8c7..000000000
--- a/sal/qa/osl/socket/osl_Socket.xsce
+++ /dev/null
@@ -1,5 +0,0 @@
-osl_Socket.ctors.ctors_family_Ipx
-osl_SocketAddr.getHostname.getHostname_002
-
-osl_StreamSocket.send_recv.write_read_003 unxsols
-osl_StreamSocket.send_recv.write_read_004 unxsols
diff --git a/sal/qa/osl/socket/osl_Socket2.cxx b/sal/qa/osl/socket/osl_Socket2.cxx
deleted file mode 100644
index 2d39ac60b..000000000
--- a/sal/qa/osl/socket/osl_Socket2.cxx
+++ /dev/null
@@ -1,1470 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-/** test coder preface:
- 1. the BSD socket function will meet "unresolved external symbol error" on Windows platform
- if you are not including ws2_32.lib in makefile.mk, the including format will be like this:
-
- .IF "$(GUI)" == "WNT"
- SHL1STDLIBS += $(SOLARLIBDIR)$/cppunit.lib
- SHL1STDLIBS += ws2_32.lib
- .ENDIF
-
- likewise on Solaris platform.
- .IF "$(GUI)" == "UNX"
- SHL1STDLIBS+=$(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a
- SHL1STDLIBS += -lsocket -ldl -lnsl
- .ENDIF
-
- 2. since the Socket implementation of osl is only IPv4 oriented, our test are mainly focus on IPv4
- category.
-
- 3. some fragment of Socket source implementation are lack of comment so it is hard for testers
- guess what the exact functionality or usage of a member. Hope the Socket section's comment
- will be added.
-
- 4. following functions are declared but not implemented:
- inline sal_Bool SAL_CALL operator== (const SocketAddr & Addr) const;
- */
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#include "sockethelper.hxx"
-
-using namespace osl;
-using ::rtl::OUString;
-
-#define IP_PORT_FTP 21
-#define IP_PORT_TELNET 23
-#define IP_PORT_HTTP2 8080
-#define IP_PORT_INVAL 99999
-#define IP_PORT_POP3 110
-#define IP_PORT_NETBIOS 139
-#define IP_PORT_MYPORT 8881
-#define IP_PORT_MYPORT1 8882
-#define IP_PORT_MYPORT5 8886
-#define IP_PORT_MYPORT6 8887
-#define IP_PORT_MYPORT7 8895
-#define IP_PORT_MYPORT8 8896
-#define IP_PORT_MYPORT9 8897
-
-//------------------------------------------------------------------------
-// helper functions
-//------------------------------------------------------------------------
-
-// just used to test socket::close() when accepting
-class AcceptorThread : public Thread
-{
- ::osl::AcceptorSocket asAcceptorSocket;
- ::rtl::OUString aHostIP;
- sal_Bool bOK;
-protected:
- void SAL_CALL run( )
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIP, IP_PORT_MYPORT9 );
- ::osl::StreamSocket ssStreamConnection;
-
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //integer not sal_Bool : sal_True);
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- if ( sal_True != bOK1 )
- {
- t_print("# AcceptorSocket bind address failed.\n" ) ;
- return;
- }
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- if ( sal_True != bOK2 )
- {
- t_print("# AcceptorSocket listen address failed.\n" ) ;
- return;
- }
-
- asAcceptorSocket.enableNonBlockingMode( sal_False );
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection( ssStreamConnection );
- if (eResult != osl_Socket_Ok )
- {
- bOK = sal_True;
- t_print("AcceptorThread: acceptConnection failed! \n");
- }
- }
-public:
- AcceptorThread(::osl::AcceptorSocket & asSocket, ::rtl::OUString const& aBindIP )
- : asAcceptorSocket( asSocket ), aHostIP( aBindIP )
- {
- bOK = sal_False;
- }
-
- sal_Bool isOK() { return bOK; }
-
- ~AcceptorThread( )
- {
- if ( isRunning( ) )
- {
- asAcceptorSocket.shutdown();
- t_print("# error: Acceptor thread not terminated.\n" );
- }
- }
-};
-
-namespace osl_Socket
-{
-
- /** testing the methods:
- inline Socket( );
- inline Socket( const Socket & socket );
- inline Socket( oslSocket socketHandle );
- inline Socket( oslSocket socketHandle, __sal_NoAcquire noacquire );
- */
-
- /** test writer's comment:
-
- class Socket can not be initialized by its protected constructor, though the protected
- constructor is the most convenient way to create a new socket.
- it only allow the method of C function osl_createSocket like:
- ::osl::Socket sSocket( osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream,
- osl_Socket_ProtocolIp ) );
- the use of C method lost some of the transparent of tester using C++ wrapper.
- */
-
-
- class ctors : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
-
- void ctors_none()
- {
- /// Socket constructor.
- // ::osl::Socket sSocket();
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_none constructor function: check if the socket was created successfully, if no exception occurred",
- 1 == 1 );
- }
-
- void ctors_acquire()
- {
- /// Socket constructor.
- ::osl::Socket sSocket( sHandle );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_acquire constructor function: check if the socket was created successfully",
- osl_Socket_TypeStream == sSocket.getType( ) );
- }
-
- void ctors_no_acquire()
- {
- /// Socket constructor.
- ::osl::Socket sSocket( sHandle, SAL_NO_ACQUIRE );
-
- CPPUNIT_ASSERT_MESSAGE(" test for ctors_no_acquire constructor function: check if the socket was created successfully",
- osl_Socket_TypeStream == sSocket.getType( ) );
- }
-
- void ctors_copy_ctor()
- {
- ::osl::Socket sSocket( sHandle );
- /// Socket copy constructor.
- ::osl::Socket copySocket( sSocket );
-
- CPPUNIT_ASSERT_MESSAGE(" test for ctors_copy_ctor constructor function: create new Socket instance using copy constructor",
- osl_Socket_TypeStream == copySocket.getType( ) );
- }
-
- void ctors_TypeRaw()
- {
-#ifdef WNT
- oslSocket sHandleRaw = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeRaw, osl_Socket_ProtocolIp );
-// LLA: ? ::osl::Socket sSocket( sHandleRaw );
- CPPUNIT_ASSERT_MESSAGE( " type osl_Socket_TypeRaw socket create failed on UNX ", sHandleRaw != NULL);
-#else
- oslSocket sHandleRaw = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeRaw, osl_Socket_ProtocolIp );
- CPPUNIT_ASSERT_MESSAGE( " can't create socket with type osl_Socket_TypeRaw within UNX is ok.", sHandleRaw == NULL);
-#endif
- }
-
- void ctors_family_Ipx()
- {
- oslSocket sHandleIpx = osl_createSocket( osl_Socket_FamilyIpx, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- CPPUNIT_ASSERT_MESSAGE( " family osl_Socket_FamilyIpx socket create failed! ", sHandleIpx != NULL);
- ::osl::Socket sSocket( sHandleIpx ); //, SAL_NO_ACQUIRE );
- t_print("#Type is %d \n", sSocket.getType( ) );
-
- CPPUNIT_ASSERT_MESSAGE(" test for create new Socket instance that family is osl_Socket_FamilyIpx",
- osl_Socket_TypeStream == sSocket.getType( ) );
- }
-
-
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_none );
- CPPUNIT_TEST( ctors_acquire );
- CPPUNIT_TEST( ctors_no_acquire );
- CPPUNIT_TEST( ctors_copy_ctor );
- CPPUNIT_TEST( ctors_TypeRaw );
- //TODO: Check if family_Ipx is still in use?
- // CPPUNIT_TEST( ctors_family_Ipx );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class ctors
-
-
- /** testing the methods:
- inline Socket& SAL_CALL operator= ( oslSocket socketHandle);
- inline Socket& SAL_CALL operator= (const Socket& sock);
- inline sal_Bool SAL_CALL operator==( const Socket& rSocket ) const ;
- inline sal_Bool SAL_CALL operator==( const oslSocket socketHandle ) const;
- */
-
- class operators : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
-
- /** test writer's comment:
-
- the assignment operator does not support direct assinment like:
- ::osl::Socket sSocket = sHandle.
- */
- void operators_assignment_handle()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::Socket assignSocket = sSocket.getHandle();
-
- CPPUNIT_ASSERT_MESSAGE( "test for operators_assignment_handle function: test the assignment operator.",
- osl_Socket_TypeStream == assignSocket.getType( ) );
- }
-
- void operators_assignment()
- {
- ::osl::Socket sSocket( sHandle );
- ::osl::Socket assignSocket = sSocket;
-
- CPPUNIT_ASSERT_MESSAGE( "test for operators_assignment function: assignment operator",
- osl_Socket_TypeStream == assignSocket.getType( ) );
- }
-
- void operators_equal_handle_001()
- {
- /// Socket constructor.
- ::osl::Socket sSocket( sHandle );
- ::osl::Socket equalSocket = sSocket;
-
- CPPUNIT_ASSERT_MESSAGE(" test for operators_equal_handle_001 function: check equal.",
- equalSocket == sHandle );
- }
-
- void operators_equal_handle_002()
- {
- /// Socket constructor.
- ::osl::Socket equalSocket( osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp ) );
-
- CPPUNIT_ASSERT_MESSAGE(" test for operators_equal_handle_001 function: check unequal.",
- !( equalSocket == sHandle ) );
- }
-
- void operators_equal_001()
- {
- ::osl::Socket sSocket( sHandle );
- /// Socket copy constructor.
- ::osl::Socket equalSocket( sSocket );
-
- CPPUNIT_ASSERT_MESSAGE(" test for operators_equal function: check equal.",
- equalSocket == sSocket );
- }
-
- void operators_equal_002()
- {
- ::osl::Socket sSocket( sHandle );
- /// Socket copy constructor.
- ::osl::Socket equalSocket( osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp ) );
-
- CPPUNIT_ASSERT_MESSAGE(" test for operators_equal_002 function: check unequal.",
- !( equalSocket == sSocket ) );
- }
-
- CPPUNIT_TEST_SUITE( operators );
- CPPUNIT_TEST( operators_assignment_handle );
- CPPUNIT_TEST( operators_assignment );
- CPPUNIT_TEST( operators_equal_handle_001 );
- CPPUNIT_TEST( operators_equal_handle_002 );
- CPPUNIT_TEST( operators_equal_001 );
- CPPUNIT_TEST( operators_equal_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class operators
-
-
- /** testing the methods:
- inline void SAL_CALL shutdown( oslSocketDirection Direction = osl_Socket_DirReadWrite );
- inline void SAL_CALL close();
- */
-
- class close : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
-
- void close_001()
- {
- ::osl::Socket sSocket(sHandle);
- sSocket.close();
-
- CPPUNIT_ASSERT_MESSAGE( "test for close_001 function: this function is reserved for test.",
- sSocket.getHandle() == sHandle );
- }
-
- void close_002()
- {
-//#if defined(LINUX)
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- AcceptorThread myAcceptorThread( asSocket, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")) );
- myAcceptorThread.create();
-
- thread_sleep( 1 );
- //when accepting, close the socket, the thread will not block for accepting
- //man close:Any locks held on the file it was associated with, and owned by the process, are removed
- asSocket.close();
- //thread_sleep( 2 );
- myAcceptorThread.join();
-
- CPPUNIT_ASSERT_MESSAGE( "test for close when is accepting: the socket will quit accepting status.",
- myAcceptorThread.isOK() == sal_True );
-//#endif
- }
-
- // to cover "if ( pSockAddrIn->sin_addr.s_addr == htonl(INADDR_ANY) )" in osl_closeSocket( )
- void close_003()
- {
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- AcceptorThread myAcceptorThread( asSocket, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("0.0.0.0")) );
- myAcceptorThread.create();
-
- thread_sleep( 1 );
- asSocket.close();
- myAcceptorThread.join();
-
- CPPUNIT_ASSERT_MESSAGE( "test for close when is accepting: the socket will quit accepting status.",
- myAcceptorThread.isOK() == sal_True );
- }
-
- CPPUNIT_TEST_SUITE( close );
- CPPUNIT_TEST( close_001 );
- CPPUNIT_TEST( close_002 );
- CPPUNIT_TEST( close_003 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class close
-
- /** testing the method:
- inline void SAL_CALL getLocalAddr( SocketAddr &Addr ) const;
- */
-
- class getLocalAddr : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- // get the Address of the local end of the socket
- void getLocalAddr_001()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT8 );
- ::osl::SocketAddr saLocalSocketAddr;
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- ::rtl::OUString suError1 = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Socket bind fail:")) + sSocket.getErrorAsString();
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError1), sal_True == bOK1 );
-
- sSocket.getLocalAddr( saLocalSocketAddr );
-
- sal_Bool bOK = compareUString( saLocalSocketAddr.getHostname( 0 ), sSocket.getLocalHost() ) ;
-
- CPPUNIT_ASSERT_MESSAGE( "test for getLocalAddr function: first create a new socket, then a socket address, bind them, and check the address.",
- sal_True == bOK );
- }
-
-
- CPPUNIT_TEST_SUITE( getLocalAddr );
- CPPUNIT_TEST( getLocalAddr_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getLocalAddr
-
-
- /** testing the method:
- inline sal_Int32 SAL_CALL getLocalPort() const;
- */
-
- class getLocalPort : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
-
- void getLocalPort_001()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT7 ); // aHostIp1 localhost
- ::osl::SocketAddr saLocalSocketAddr;
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- ::rtl::OUString suError1 = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Socket bind fail:")) + sSocket.getErrorAsString();
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError1), sal_True == bOK1 );
- sal_Bool bOK = ( IP_PORT_MYPORT7 == sSocket.getLocalPort( ) );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getLocalPort function: first create a new socket, then a socket address, bind them, and check the port.",
- sal_True == bOK );
- }
-
- /** test writer's comment:
-
- the invalid port number can not be set by giving invalid port number
- such as 99999 or -1, it will convert to ( x mod 65535 ), so it will always be
- valid, the only instance that the getLocalPort returns OSL_INVALID_PORT
- is when saSocketAddr itself is an invalid one, that is , the IP or host name
- can not be found, then the created socket address is not valid.
- */
- void getLocalPort_002()
- {
- ::osl::SocketAddr saBindSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("123.45.67.89")), IP_PORT_TELNET);
-#ifdef WNT
- ::osl::Socket sSocket(sHandle);
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); // sal_True);
- sSocket.bind( saBindSocketAddr );
- //Invalid IP, so bind should fail
- ::rtl::OUString suError = outputError(::rtl::OUString::valueOf(sSocket.getLocalPort( )),
- ::rtl::OUString::valueOf((sal_Int32)OSL_INVALID_PORT),
- "test for getLocalPort function: first create a new socket, then an invalid socket address, bind them, and check the port assigned.");
- sal_Bool bOK = ( OSL_INVALID_PORT == sSocket.getLocalPort( ) );
- (void)bOK;
-#else
- //on Unix, if Addr is not an address of type osl_Socket_FamilyInet, it returns OSL_INVALID_PORT
- ::rtl::OUString suError (RTL_CONSTASCII_USTRINGPARAM("on Unix, if Addr is not an address of type osl_Socket_FamilyInet, it returns OSL_INVALID_PORT, but can not create Addr of that case"));
-#endif
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_False );
-
- }
-
- void getLocalPort_003()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( getLocalIP(), IP_PORT_INVAL);
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- ::rtl::OUString suError1 = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Socket bind fail:")) + sSocket.getErrorAsString();
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError1), sal_True == bOK1 );
- ::rtl::OUString suError = outputError(::rtl::OUString::valueOf(sSocket.getLocalPort( )),
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("34463")),
- "test for getLocalPort function: first create a new socket, then an invalid socket address, bind them, and check the port assigned");
- sal_Bool bOK = ( sSocket.getLocalPort( ) >= 1 && sSocket.getLocalPort( ) <= 65535);
-
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getLocalPort );
- CPPUNIT_TEST( getLocalPort_001 );
-// LLA: CPPUNIT_TEST( getLocalPort_002 );
- CPPUNIT_TEST( getLocalPort_003 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getLocalPort
-
-
- /** testing the method:
- inline ::rtl::OUString SAL_CALL getLocalHost() const;
-
- Mindyliu: on Linux, at first it will check the binded in /etc/hosts, if it has the binded IP, it will return the hostname in it;
- else if the binded IP is "127.0.0.1", it will return "localhost", if it's the machine's ethernet ip such as "129.158.217.90", it
- will return hostname of current processor such as "aegean.PRC.Sun.COM"
- */
-
- class getLocalHost : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
-
- void getLocalHost_001()
- {
- ::osl::Socket sSocket(sHandle);
- //port number from IP_PORT_HTTP1 to IP_PORT_MYPORT6, mindyliu
- ::osl::SocketAddr saBindSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT6 );
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- ::rtl::OUString suError1 = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Socket bind fail:")) + sSocket.getErrorAsString();
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError1), sal_True == bOK1 );
- sal_Bool bOK;
- ::rtl::OUString suError;
-#ifdef WNT
- bOK = compareUString( sSocket.getLocalHost( ), getThisHostname( ) ) ;
- suError = outputError(sSocket.getLocalHost( ), getThisHostname( ),
-"test for getLocalHost function: create localhost socket and check name");
-#else
- ::rtl::OUString aUString = ::rtl::OUString::createFromAscii( (const sal_Char *) "localhost" );
- sal_Bool bRes1, bRes2;
- bRes1 = compareUString( sSocket.getLocalHost( ), aUString ) ;
- bRes2 = compareUString( sSocket.getLocalHost( ), saBindSocketAddr.getHostname(0) ) ;
- bOK = bRes1 || bRes2;
- suError = outputError(sSocket.getLocalHost( ), aUString, "test for getLocalHost function: create localhost socket and check name");
-#endif
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_True == bOK );
- }
-
- void getLocalHost_002()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("123.45.67.89")), IP_PORT_POP3);
- ::osl::SocketAddr saLocalSocketAddr;
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sSocket.bind( saBindSocketAddr );
- //Invalid IP, so bind should fail
- sal_Bool bOK = compareUString( sSocket.getLocalHost( ), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("")) ) ;
- ::rtl::OUString suError = outputError(sSocket.getLocalHost( ), rtl::OUString(), "test for getLocalHost function: getLocalHost with invalid SocketAddr");
-
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getLocalHost );
- CPPUNIT_TEST( getLocalHost_001 );
- CPPUNIT_TEST( getLocalHost_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getLocalHost
-
-
- /** testing the methods:
- inline void SAL_CALL getPeerAddr( SocketAddr & Addr) const;
- inline sal_Int32 SAL_CALL getPeerPort() const;
- inline ::rtl::OUString SAL_CALL getPeerHost() const;
- */
- class getPeer : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- TimeValue *pTimeout;
- ::osl::AcceptorSocket asAcceptorSocket;
- ::osl::ConnectorSocket csConnectorSocket;
-
-
- // initialization
- void setUp( )
- {
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- free( pTimeout );
- sHandle = NULL;
- asAcceptorSocket.close( );
- csConnectorSocket.close( );
- }
-
-
- void getPeer_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT );
- ::osl::SocketAddr saTargetSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT );
- ::osl::SocketAddr saPeerSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("129.158.217.202")), IP_PORT_FTP );
- ::osl::StreamSocket ssConnection;
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- /// launch server socket
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind '127.0.0.1' address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
-
- asAcceptorSocket.enableNonBlockingMode( sal_True );
- asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- /// launch client socket
- csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
-
- /// get peer information
- csConnectorSocket.getPeerAddr( saPeerSocketAddr );/// connected.
- sal_Int32 peerPort = csConnectorSocket.getPeerPort( );
- ::rtl::OUString peerHost = csConnectorSocket.getPeerHost( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getPeer function: setup a connection and then get the peer address, port and host from client side.",
- ( sal_True == compareSocketAddr( saPeerSocketAddr, saLocalSocketAddr ) )&&
- ( sal_True == compareUString( peerHost, saLocalSocketAddr.getHostname( 0 ) ) ) &&
- ( peerPort == saLocalSocketAddr.getPort( ) ));
- }
-
-
- CPPUNIT_TEST_SUITE( getPeer );
- CPPUNIT_TEST( getPeer_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getPeer
-
-
- /** testing the methods:
- inline sal_Bool SAL_CALL bind(const SocketAddr& LocalInterface);
- */
-
-
- class bind : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
-
- void bind_001()
- {
- ::osl::Socket sSocket(sHandle);
- //bind must use local IP address ---mindyliu
- ::osl::SocketAddr saBindSocketAddr( getLocalIP(), IP_PORT_MYPORT5 );
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "Socket bind fail.", sal_True == bOK1 );
-
- sal_Bool bOK2 = compareUString( sSocket.getLocalHost( ), saBindSocketAddr.getHostname( ) ) ;
-
- sSocket.close();
- CPPUNIT_ASSERT_MESSAGE( "test for bind function: bind a valid address.", sal_True == bOK2 );
- }
-
- void bind_002()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("123.45.67.89")), IP_PORT_NETBIOS );
- ::osl::SocketAddr saLocalSocketAddr;
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1); // sal_True);
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- sal_Bool bOK2 = compareUString( sSocket.getLocalHost( ), getThisHostname( ) ) ;
-
- CPPUNIT_ASSERT_MESSAGE( "test for bind function: bind a valid address.",
- ( sal_False == bOK1 ) && ( sal_False == bOK2 ) );
- }
-
- CPPUNIT_TEST_SUITE( bind );
- CPPUNIT_TEST( bind_001 );
- CPPUNIT_TEST( bind_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class bind
-
-
- /** testing the methods:
- inline sal_Bool SAL_CALL isRecvReady(const TimeValue *pTimeout = 0) const;
-
- */
- class isRecvReady : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- TimeValue *pTimeout;
- ::osl::AcceptorSocket asAcceptorSocket;
- ::osl::ConnectorSocket csConnectorSocket;
-
-
- // initialization
- void setUp( )
- {
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- free( pTimeout );
- sHandle = NULL;
- asAcceptorSocket.close( );
- csConnectorSocket.close( );
- }
-
-
- void isRecvReady_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT1 );
- ::osl::SocketAddr saTargetSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT1 );
- ::osl::SocketAddr saPeerSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("129.158.217.202")), IP_PORT_FTP );
- ::osl::StreamSocket ssConnection;
- /// launch server socket
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); // sal_True);
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
- asAcceptorSocket.enableNonBlockingMode( sal_True );
- asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- /// launch client socket
- csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
-
- /// is receive ready?
- sal_Bool bOK3 = asAcceptorSocket.isRecvReady( pTimeout );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isRecvReady function: setup a connection and then check if it can transmit data.",
- ( sal_True == bOK3 ) );
- }
-
-
- CPPUNIT_TEST_SUITE( isRecvReady );
- CPPUNIT_TEST( isRecvReady_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class isRecvReady
-
-
- /** testing the methods:
- inline sal_Bool SAL_CALL isSendReady(const TimeValue *pTimeout = 0) const;
- */
- class isSendReady : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- TimeValue *pTimeout;
- ::osl::AcceptorSocket asAcceptorSocket;
- ::osl::ConnectorSocket csConnectorSocket;
-
-
- // initialization
- void setUp( )
- {
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- free( pTimeout );
- sHandle = NULL;
- asAcceptorSocket.close( );
- csConnectorSocket.close( );
- }
-
-
- void isSendReady_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT );
- ::osl::SocketAddr saTargetSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT );
- ::osl::SocketAddr saPeerSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("129.158.217.202")), IP_PORT_FTP );
- ::osl::StreamSocket ssConnection;
-
- /// launch server socket
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
- asAcceptorSocket.enableNonBlockingMode( sal_True );
- asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- /// launch client socket
- csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
-
- /// is send ready?
- sal_Bool bOK3 = csConnectorSocket.isSendReady( pTimeout );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isSendReady function: setup a connection and then check if it can transmit data.",
- ( sal_True == bOK3 ) );
- }
-
-
- CPPUNIT_TEST_SUITE( isSendReady );
- CPPUNIT_TEST( isSendReady_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class isSendReady
-
-
- /** testing the methods:
- inline oslSocketType SAL_CALL getType() const;
-
- */
-
- class getType : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
-
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
-
- void getType_001()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- CPPUNIT_ASSERT_MESSAGE( "test for getType function: get type of socket.",
- osl_Socket_TypeStream == sSocket.getType( ) );
- }
-
- void getType_002()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- CPPUNIT_ASSERT_MESSAGE( "test for getType function: get type of socket.",
- osl_Socket_TypeDgram == sSocket.getType( ) );
- }
-
-#ifdef UNX
- // mindy: since on LINUX and SOLARIS, Raw type socket can not be created, so do not test getType() here
- // mindy: and add one test case to test creating Raw type socket--> ctors_TypeRaw()
- void getType_003()
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getType function: get type of socket.this is not passed in (LINUX, SOLARIS), the osl_Socket_TypeRaw, type socket can not be created.",
- sal_True);
- }
-#else
- void getType_003()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeRaw, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- CPPUNIT_ASSERT_MESSAGE( "test for getType function: get type of socket.",
- osl_Socket_TypeRaw == sSocket.getType( ) );
- }
-#endif
-
- CPPUNIT_TEST_SUITE( getType );
- CPPUNIT_TEST( getType_001 );
- CPPUNIT_TEST( getType_002 );
- CPPUNIT_TEST( getType_003 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getType
-
-
-
- /** testing the methods:
- inline sal_Int32 SAL_CALL getOption(
- oslSocketOption Option,
- void* pBuffer,
- sal_uInt32 BufferLen,
- oslSocketOptionLevel Level= osl_Socket_LevelSocket) const;
-
- inline sal_Int32 getOption( oslSocketOption option ) const;
-
- */
-
- class getOption : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
-
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- /** test writer's comment:
-
- in oslSocketOption, the osl_Socket_OptionType denote 1 as osl_Socket_TypeStream.
- 2 as osl_Socket_TypeDgram, etc which is not mapping the oslSocketType enum. differ
- in 1.
- */
-
- void getOption_001()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
- sal_Int32 * pType = ( sal_Int32 * )malloc( sizeof ( sal_Int32 ) );
- *pType = 0;
- sSocket.getOption( osl_Socket_OptionType, pType, sizeof ( sal_Int32 ) );
- sal_Bool bOK = ( SOCK_STREAM == *pType );
- // there is a TypeMap(socket.c) which map osl_Socket_TypeStream to SOCK_STREAM on UNX, and SOCK_STREAM != osl_Socket_TypeStream
- //sal_Bool bOK = ( TYPE_TO_NATIVE(osl_Socket_TypeStream) == *pType );
- free( pType );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getOption function: get type option of socket.",
- sal_True == bOK );
- }
-
- // getsockopt error
- void getOption_004()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- sal_Bool * pbDontRoute = ( sal_Bool * )malloc( sizeof ( sal_Bool ) );
- sal_Int32 nRes = sSocket.getOption( osl_Socket_OptionInvalid, pbDontRoute, sizeof ( sal_Bool ) );
- free( pbDontRoute );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getOption function: get invalid option of socket, should return -1.",
- nRes == -1 );
- }
-
- void getOption_simple_001()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- sal_Bool bOK = ( sal_False == sSocket.getOption( osl_Socket_OptionDontRoute ) );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getOption function: get debug option of socket.",
- sal_True == bOK );
- }
-
- void getOption_simple_002()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- sal_Bool bOK = ( sal_False == sSocket.getOption( osl_Socket_OptionDebug ) );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getOption function: get debug option of socket.",
- sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getOption );
- CPPUNIT_TEST( getOption_001 );
- CPPUNIT_TEST( getOption_004 );
- CPPUNIT_TEST( getOption_simple_001 );
- CPPUNIT_TEST( getOption_simple_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getOption
-
-
- /** testing the methods:
- inline sal_Bool SAL_CALL setOption( oslSocketOption Option,
- void* pBuffer,
- sal_uInt32 BufferLen,
- oslSocketOptionLevel Level= osl_Socket_LevelSocket ) const;
- */
-
- class setOption : public CppUnit::TestFixture
- {
- public:
- TimeValue *pTimeout;
-// LLA: maybe there is an error in the source,
-// as long as I remember, if a derived class do not overload all ctors there is a problem.
-
- ::osl::AcceptorSocket asAcceptorSocket;
-
- void setUp( )
- {
-
- }
-
- void tearDown( )
- {
- asAcceptorSocket.close( );
- }
-
-
- // LLA:
- // getSocketOption returns BufferLen, or -1 if something failed
-
- // setSocketOption returns sal_True, if option could stored
- // else sal_False
-
- void setOption_001()
- {
- /// set and get option.
- int nBufferLen = sizeof ( sal_Int32);
- // LLA: SO_DONTROUTE expect an integer boolean, what ever it is, it's not sal_Bool!
-
- sal_Int32 * pbDontRouteSet = ( sal_Int32 * )malloc( sizeof ( sal_Int32 ) );
- *pbDontRouteSet = 1; // sal_True;
-
- sal_Int32 * pGetBuffer = ( sal_Int32 * )malloc( sizeof ( sal_Int32 ) );
- *pGetBuffer = 0;
-
- // maybe asAcceptorSocket is not right initialized
- sal_Bool b1 = asAcceptorSocket.setOption( osl_Socket_OptionDontRoute, pbDontRouteSet, nBufferLen );
- CPPUNIT_ASSERT_MESSAGE( "setOption function failed.", ( sal_True == b1 ) );
- sal_Int32 n2 = asAcceptorSocket.getOption( osl_Socket_OptionDontRoute, pGetBuffer, nBufferLen );
- CPPUNIT_ASSERT_MESSAGE( "getOption function failed.", ( n2 == nBufferLen ) );
-
- // on Linux, the value of option is 1, on Solaris, it's 16, but it's not important the exact value,
- // just judge it is zero or not!
- sal_Bool bOK = ( 0 != *pGetBuffer );
- t_print("#setOption_001: getOption is %"SAL_PRIdINT32" \n", *pGetBuffer);
-
- // toggle check, set to 0
- *pbDontRouteSet = 0;
-
- sal_Bool b3 = asAcceptorSocket.setOption( osl_Socket_OptionDontRoute, pbDontRouteSet, sizeof ( sal_Int32 ) );
- CPPUNIT_ASSERT_MESSAGE( "setOption function failed.", ( sal_True == b3 ) );
- sal_Int32 n4 = asAcceptorSocket.getOption( osl_Socket_OptionDontRoute, pGetBuffer, nBufferLen );
- CPPUNIT_ASSERT_MESSAGE( "getOption (DONTROUTE) function failed.", ( n4 == nBufferLen ) );
-
- sal_Bool bOK2 = ( 0 == *pGetBuffer );
-
- t_print("#setOption_001: getOption is %"SAL_PRIdINT32" \n", *pGetBuffer);
-
-// LLA: sal_Bool * pbDontTouteSet = ( sal_Bool * )malloc( sizeof ( sal_Bool ) );
-// LLA: *pbDontTouteSet = sal_True;
-// LLA: sal_Bool * pbDontTouteGet = ( sal_Bool * )malloc( sizeof ( sal_Bool ) );
-// LLA: *pbDontTouteGet = sal_False;
-// LLA: asAcceptorSocket.setOption( osl_Socket_OptionDontRoute, pbDontTouteSet, sizeof ( sal_Bool ) );
-// LLA: asAcceptorSocket.getOption( osl_Socket_OptionDontRoute, pbDontTouteGet, sizeof ( sal_Bool ) );
-// LLA: ::rtl::OUString suError = outputError(::rtl::OUString::valueOf((sal_Int32)*pbDontTouteGet),
-// LLA: ::rtl::OUString::valueOf((sal_Int32)*pbDontTouteSet),
-// LLA: "test for setOption function: set osl_Socket_OptionDontRoute and then check");
-// LLA:
-// LLA: sal_Bool bOK = ( sal_True == *pbDontTouteGet );
-// LLA: free( pbDontTouteSet );
-// LLA: free( pbDontTouteGet );
-
- CPPUNIT_ASSERT_MESSAGE( "test for setOption function: set option of a socket and then check.",
- ( sal_True == bOK ) && (sal_True == bOK2) );
-
- free( pbDontRouteSet );
- free( pGetBuffer );
-// LLA: CPPUNIT_ASSERT_MESSAGE( suError, sal_True == bOK );
- }
-
- void setOption_002()
- {
- /// set and get option.
-
- // sal_Int32 * pbLingerSet = ( sal_Int32 * )malloc( nBufferLen );
- // *pbLingerSet = 7;
- // sal_Int32 * pbLingerGet = ( sal_Int32 * )malloc( nBufferLen );
- /* struct */linger aLingerSet;
- sal_Int32 nBufferLen = sizeof( struct linger );
- aLingerSet.l_onoff = 1;
- aLingerSet.l_linger = 7;
-
- linger aLingerGet;
-
- asAcceptorSocket.setOption( osl_Socket_OptionLinger, &aLingerSet, nBufferLen );
-
- sal_Int32 n1 = asAcceptorSocket.getOption( osl_Socket_OptionLinger, &aLingerGet, nBufferLen );
- CPPUNIT_ASSERT_MESSAGE( "getOption (SO_LINGER) function failed.", ( n1 == nBufferLen ) );
-
- //t_print("#setOption_002: getOption is %d \n", aLingerGet.l_linger);
- sal_Bool bOK = ( 7 == aLingerGet.l_linger );
- CPPUNIT_ASSERT_MESSAGE( "test for setOption function: set option of a socket and then check. ",
- sal_True == bOK );
-
- }
-
- void setOption_003()
- {
- linger aLingerSet;
- aLingerSet.l_onoff = 1;
- aLingerSet.l_linger = 7;
-
- sal_Bool b1 = asAcceptorSocket.setOption( osl_Socket_OptionLinger, &aLingerSet, 0 );
- printUString( asAcceptorSocket.getErrorAsString( ) );
- CPPUNIT_ASSERT_MESSAGE( "setOption (SO_LINGER) function failed for optlen is 0.",
- ( b1 == sal_False ) );
- }
-
- void setOption_simple_001()
- {
- /// set and get option.
- asAcceptorSocket.setOption( osl_Socket_OptionDontRoute, 1 ); //sal_True );
- sal_Bool bOK = ( 0 != asAcceptorSocket.getOption( osl_Socket_OptionDontRoute ) );
-
- t_print("setOption_simple_001(): getoption is %d \n", (int) asAcceptorSocket.getOption( osl_Socket_OptionDontRoute ) );
- CPPUNIT_ASSERT_MESSAGE( "test for setOption function: set option of a socket and then check.",
- ( sal_True == bOK ) );
- }
-
- void setOption_simple_002()
- {
- /// set and get option.
- // LLA: this does not work, due to the fact that SO_LINGER is a structure
-// LLA: asAcceptorSocket.setOption( osl_Socket_OptionLinger, 7 );
-// LLA: sal_Bool bOK = ( 7 == asAcceptorSocket.getOption( osl_Socket_OptionLinger ) );
-
-// LLA: CPPUNIT_ASSERT_MESSAGE( "test for setOption function: set option of a socket and then check.",
-// LLA: ( sal_True == bOK ) );
- }
-
- CPPUNIT_TEST_SUITE( setOption );
-// CPPUNIT_TEST( setOption_001 );
- CPPUNIT_TEST( setOption_002 );
- CPPUNIT_TEST( setOption_003 );
- //TODO: Check this test
-// CPPUNIT_TEST( setOption_simple_001 );
-// LLA: CPPUNIT_TEST( setOption_simple_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class setOption
-
-
-
- /** testing the method:
- inline sal_Bool SAL_CALL enableNonBlockingMode( sal_Bool bNonBlockingMode);
- */
- class enableNonBlockingMode : public CppUnit::TestFixture
- {
- public:
- ::osl::AcceptorSocket asAcceptorSocket;
-
- void enableNonBlockingMode_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT );
- ::osl::StreamSocket ssConnection;
-
- /// launch server socket
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
- asAcceptorSocket.enableNonBlockingMode( sal_True );
- asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- /// if reach this statement, it is non-blocking mode, since acceptConnection will blocked by default.
- sal_Bool bOK = sal_True;
- asAcceptorSocket.close( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for enableNonBlockingMode function: launch a server socket and make it non blocking. if it can pass the acceptConnection statement, it is non-blocking",
- ( sal_True == bOK ) );
- }
-
-
- CPPUNIT_TEST_SUITE( enableNonBlockingMode );
- CPPUNIT_TEST( enableNonBlockingMode_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class enableNonBlockingMode
-
-
- /** testing the method:
- inline sal_Bool SAL_CALL isNonBlockingMode() const;
- */
- class isNonBlockingMode : public CppUnit::TestFixture
- {
- public:
- ::osl::AcceptorSocket asAcceptorSocket;
-
- void isNonBlockingMode_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT );
- ::osl::StreamSocket ssConnection;
-
- /// launch server socket
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); // sal_True);
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
-
- sal_Bool bOK3 = asAcceptorSocket.isNonBlockingMode( );
- asAcceptorSocket.enableNonBlockingMode( sal_True );
- asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- /// if reach this statement, it is non-blocking mode, since acceptConnection will blocked by default.
- sal_Bool bOK4 = asAcceptorSocket.isNonBlockingMode( );
- asAcceptorSocket.close( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isNonBlockingMode function: launch a server socket and make it non blocking. it is expected to change from blocking mode to non-blocking mode.",
- ( sal_False == bOK3 ) && ( sal_True == bOK4 ) );
- }
-
-
- CPPUNIT_TEST_SUITE( isNonBlockingMode );
- CPPUNIT_TEST( isNonBlockingMode_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class isNonBlockingMode
-
- /** testing the method:
- inline void SAL_CALL clearError() const;
- */
- class clearError : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
-
- void clearError_001()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("123.45.67.89")), IP_PORT_HTTP2 );
- ::osl::SocketAddr saLocalSocketAddr;
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sSocket.bind( saBindSocketAddr );//build an error "osl_Socket_E_AddrNotAvail"
- oslSocketError seBind = sSocket.getError( );
- sSocket.clearError( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for clearError function: trick an error called sSocket.getError( ), and then clear the error states, check the result.",
- osl_Socket_E_None == sSocket.getError( ) && seBind != osl_Socket_E_None );
- }
-
-
- CPPUNIT_TEST_SUITE( clearError );
- CPPUNIT_TEST( clearError_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class clearError
-
-
- /** testing the methods:
- inline oslSocketError getError() const;
- inline ::rtl::OUString getErrorAsString( ) const;
- */
- class getError : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
-
- void getError_001()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_FTP );
- ::osl::SocketAddr saLocalSocketAddr;
-
- CPPUNIT_ASSERT_MESSAGE( "test for getError function: should get no error.",
- osl_Socket_E_None == sSocket.getError( ) );
- }
-
- void getError_002()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("123.45.67.89")), IP_PORT_FTP );
- ::osl::SocketAddr saLocalSocketAddr;
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sSocket.bind( saBindSocketAddr );//build an error "osl_Socket_E_AddrNotAvail"
- //on Solaris, the error no is EACCES, but it has no mapped value, so getError() returned osl_Socket_E_InvalidError.
-#if defined(SOLARIS)
- CPPUNIT_ASSERT_MESSAGE( "trick an error called sSocket.getError( ), check the getError result.Failed on Solaris, returned osl_Socket_E_InvalidError because no entry to map the errno EACCES. ",
- osl_Socket_E_InvalidError == sSocket.getError( ) );
-#else
- //while on Linux & Win32, the errno is EADDRNOTAVAIL, getError returned osl_Socket_E_AddrNotAvail.
-
- CPPUNIT_ASSERT_MESSAGE( "trick an error called sSocket.getError( ), check the getError result.Failed on Solaris, returned osl_Socket_E_InvalidError because no entry to map the errno EACCES. Passed on Linux & Win32",
- osl_Socket_E_AddrNotAvail == sSocket.getError( ) );
-#endif
- }
-
- CPPUNIT_TEST_SUITE( getError );
- CPPUNIT_TEST( getError_001 );
- CPPUNIT_TEST( getError_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getError
-
-
-
- /** testing the methods:
- inline oslSocket getHandle() const;
- */
-
- class getHandle : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void getHandle_001()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::Socket assignSocket = sSocket.getHandle();
-
- CPPUNIT_ASSERT_MESSAGE( "test for operators_assignment_handle function: test the assignment operator.",
- osl_Socket_TypeStream == assignSocket.getType( ) );
- }
-
- void getHandle_002()
- {
- ::osl::Socket sSocket( sHandle );
- ::osl::Socket assignSocket ( sSocket.getHandle( ) );
-
- CPPUNIT_ASSERT_MESSAGE( "test for operators_assignment function: assignment operator",
- osl_Socket_TypeStream == assignSocket.getType( ) );
- }
-
- CPPUNIT_TEST_SUITE( getHandle );
- CPPUNIT_TEST( getHandle_001 );
- CPPUNIT_TEST( getHandle_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getHandle
-
-
-// -----------------------------------------------------------------------------
-
-
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::ctors);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::operators);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::close);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::getLocalAddr);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::getLocalPort);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::getLocalHost);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::getPeer);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::bind);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::isRecvReady);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::isSendReady);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::getType);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::getOption);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::setOption);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::enableNonBlockingMode);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::isNonBlockingMode);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::clearError);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::getError);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::getHandle);
-
-} // namespace osl_Socket
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/osl_Socket2.xsce b/sal/qa/osl/socket/osl_Socket2.xsce
deleted file mode 100644
index 66e3bf137..000000000
--- a/sal/qa/osl/socket/osl_Socket2.xsce
+++ /dev/null
@@ -1,2 +0,0 @@
-osl_Socket.ctors.ctors_family_Ipx
-osl_Socket.getLocalHost.getLocalHost_001 wntmsci
diff --git a/sal/qa/osl/socket/osl_SocketAddr.cxx b/sal/qa/osl/socket/osl_SocketAddr.cxx
deleted file mode 100644
index 4e6e89c3d..000000000
--- a/sal/qa/osl/socket/osl_SocketAddr.cxx
+++ /dev/null
@@ -1,890 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-/** test coder preface:
- 1. the BSD socket function will meet "unresolved external symbol error" on Windows platform
- if you are not including ws2_32.lib in makefile.mk, the including format will be like this:
-
- .IF "$(GUI)" == "WNT"
- SHL1STDLIBS += $(SOLARLIBDIR)$/cppunit.lib
- SHL1STDLIBS += ws2_32.lib
- .ENDIF
-
- likewise on Solaris platform.
- .IF "$(GUI)" == "UNX"
- SHL1STDLIBS+=$(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a
- SHL1STDLIBS += -lsocket -ldl -lnsl
- .ENDIF
-
- 2. since the Socket implementation of osl is only IPv4 oriented, our test are mainly focus on IPv4
- category.
-
- 3. some fragment of Socket source implementation are lack of comment so it is hard for testers
- guess what the exact functionality or usage of a member. Hope the Socket section's comment
- will be added.
-
- 4. following functions are declared but not implemented:
- inline sal_Bool SAL_CALL operator== (const SocketAddr & Addr) const;
- */
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-
-#include "sockethelper.hxx"
-
-using namespace osl;
-
-using ::rtl::OUString;
-using ::rtl::OUStringToOString;
-using ::rtl::OString;
-
-#define IP_PORT_ZERO 0
-#define IP_PORT_FTP 21
-#define IP_PORT_TELNET 23
-#define IP_PORT_HTTP1 80
-#define IP_PORT_HTTP2 8080
-
-#define IP_PORT_MYPORT 8881 //8888
-#define IP_PORT_MYPORT2 8883 //8890
-#define IP_PORT_MYPORT3 8884 //8891
-#define IP_PORT_INVAL 99999
-#define IP_PORT_MYPORT4 8885 //8892
-#define IP_PORT_NETBIOS_DGM 138
-
-
-namespace osl_SocketAddr
-{
-
- /** testing the methods:
- inline SocketAddr();
- inline SocketAddr(const SocketAddr& Addr);
- inline SocketAddr(const oslSocketAddr , __osl_socket_NoCopy nocopy );
- inline SocketAddr(oslSocketAddr Addr);
- inline SocketAddr( const ::rtl::OUString& strAddrOrHostName, sal_Int32 nPort );
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
-
- void ctors_none()
- {
- /// SocketAddr constructor.
- ::osl::SocketAddr saSocketAddr;
-
- // oslSocketResult aResult;
- // rtl::OUString suHost = saSocketAddr.getLocalHostname( &aResult);
-
- // rtl::OUString suHost2 = getThisHostname();
-
- CPPUNIT_ASSERT_MESSAGE("test for none parameter constructor function: check if the socket address was created successfully",
- sal_True == saSocketAddr.is( ) );
- }
-
- void ctors_none_000()
- {
- /// SocketAddr constructor.
- ::osl::SocketAddr saSocketAddr;
-
- oslSocketResult aResult;
- rtl::OUString suHost = saSocketAddr.getLocalHostname( &aResult);
- rtl::OUString suHost2 = getThisHostname();
-
- sal_Bool bOk = compareUString(suHost, suHost2);
-
- rtl::OUString suError (RTL_CONSTASCII_USTRINGPARAM("Host names should be the same. From SocketAddr.getLocalHostname() it is'"));
- suError += suHost;
- suError += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("', from getThisHostname() it is '"));
- suError += suHost2;
- suError += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("'."));
-
- CPPUNIT_ASSERT_MESSAGE(STD_STRING(suError), sal_True == bOk);
- }
-
- void ctors_copy()
- {
- /// SocketAddr copy constructor.
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("localhost")), IP_PORT_HTTP1 );
- ::osl::SocketAddr saCopySocketAddr( saSocketAddr );
-
- sal_Int32 nPort = saCopySocketAddr.getPort( );
-
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr copy constructor function: copy constructor, do an action of copy construction then check the port with original set.",
- ( sal_True == saCopySocketAddr.is( ) ) && ( nPort == IP_PORT_HTTP1 ) );
- }
-
- void ctors_copy_no_001()
- {
- ::osl::SocketAddr* pSocketAddr = new ::osl::SocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("localhost")), IP_PORT_HTTP1 );
- CPPUNIT_ASSERT_MESSAGE("check for new SocketAddr", pSocketAddr != NULL);
-
- oslSocketAddr psaOSLSocketAddr = pSocketAddr->getHandle( );
-
- ::osl::SocketAddr* pSocketAddrCopy = new ::osl::SocketAddr( psaOSLSocketAddr, SAL_NO_COPY );
-
- pSocketAddrCopy->setPort( IP_PORT_HTTP2 );
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr no copy constructor function: do a no copy constructor on a given SocketAddr instance, modify the new instance's port, check the original one.",
- pSocketAddr->getPort( ) == IP_PORT_HTTP2 );
-
- delete pSocketAddrCopy;
- // LLA: don't do this also: delete pSocketAddr;
- }
-
- void ctors_copy_no_002()
- {
- ::osl::SocketAddr* pSocketAddr = new ::osl::SocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("localhost")), IP_PORT_HTTP1 );
- CPPUNIT_ASSERT_MESSAGE("check for new SocketAddr", pSocketAddr != NULL);
- oslSocketAddr psaOSLSocketAddr = pSocketAddr->getHandle( );
- ::osl::SocketAddr* pSocketAddrCopy = new ::osl::SocketAddr( psaOSLSocketAddr, SAL_NO_COPY );
-
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr no copy constructor function: do a no copy constructor on a given SocketAddr instance, modify the new instance's port, check the original one.",
- pSocketAddr->getHandle( ) == pSocketAddrCopy->getHandle( ) );
-
- delete pSocketAddrCopy;
- }
-
- void ctors_copy_handle_001()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("localhost")), IP_PORT_HTTP1 );
- ::osl::SocketAddr saSocketAddrCopy( saSocketAddr.getHandle( ) );
-
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr copy handle constructor function: copy another Socket's handle, get its port to check copy effect.",
- saSocketAddrCopy.getPort( ) == IP_PORT_HTTP1 );
- }
-
- void ctors_copy_handle_002()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("localhost")), IP_PORT_HTTP1 );
- ::osl::SocketAddr saSocketAddrCopy( saSocketAddr.getHandle( ) );
- saSocketAddrCopy.setPort( IP_PORT_HTTP2 );
-
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr copy handle constructor function: copy another Socket's handle, the original one should not be changed.",
- saSocketAddr.getPort( ) != IP_PORT_HTTP2 );
- }
-
- void ctors_hostname_port_001()
- {
- /// tcpip-specif constructor.
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_FTP );
- printUString( saSocketAddr.getHostname( ), "ctors_hostname_port_001:getHostname");
-
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr tcpip specif constructor function: do a constructor using tcpip spec, check the result.",
- saSocketAddr.is( ) == sal_True &&
- ( saSocketAddr.getPort( ) == IP_PORT_FTP )
- );
- }
-
- //same as is_002
- void ctors_hostname_port_002()
- {
- /// tcpip-specif constructor.
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("123.345.67.89")), IP_PORT_MYPORT2 );
-
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr tcpip specif constructor function: using an invalid IP address, the socketaddr ctors should fail", sal_False == saSocketAddr.is( ));
- }
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_none );
- CPPUNIT_TEST( ctors_none_000 );
- CPPUNIT_TEST( ctors_copy );
- CPPUNIT_TEST( ctors_copy_no_001 );
- CPPUNIT_TEST( ctors_copy_no_002 );
- CPPUNIT_TEST( ctors_copy_handle_001 );
- CPPUNIT_TEST( ctors_copy_handle_002 );
- CPPUNIT_TEST( ctors_hostname_port_001 );
- CPPUNIT_TEST( ctors_hostname_port_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class ctors
-
-
- /** testing the method:
- inline sal_Bool is() const;
- */
-
- class is : public CppUnit::TestFixture
- {
- public:
- void is_001()
- {
- ::osl::SocketAddr saSocketAddr;
-
- CPPUNIT_ASSERT_MESSAGE("test for is() function: create an unknown type socket, it should be True when call is.",
- sal_True == saSocketAddr.is( ) );
- }
- // refer to setPort_003()
- void is_002()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_INVAL );
-
- CPPUNIT_ASSERT_MESSAGE("test for is() function: create a tcp-ip socket using invalid port number",
- sal_True == saSocketAddr.is( ) );
- }
-
- void is_003()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("123.345.67.89")), IP_PORT_MYPORT );
-
- CPPUNIT_ASSERT_MESSAGE("test for is() function: create a tcp-ip socket using invalid Ip number",
- sal_True != saSocketAddr.is( ) );
- }
-
- CPPUNIT_TEST_SUITE( is );
- CPPUNIT_TEST( is_001 );
- CPPUNIT_TEST( is_002 );
- CPPUNIT_TEST( is_003 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class is
-
-
- /** testing the method:
- inline ::rtl::OUString SAL_CALL getHostname( oslSocketResult *pResult = 0 ) const;
- */
-
- class getHostname : public CppUnit::TestFixture
- {
- public:
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void getHostname_000()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("129.158.217.107")), IP_PORT_FTP );
- rtl::OUString suResult = saSocketAddr.getHostname( 0 );
-
- }
-
- /** it will search the Ip in current machine's /etc/hosts at first, if find, then return the
- mapped hostname, otherwise, it will search via DNS server, and often return hostname+ Domain name
- like "sceri.PRC.Sun.COM"
- The process is same as Socket::getLocalHost(), but getLocalHost can only return hostname of the current machine.
- */
- void getHostname_001()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("129.158.217.107")), IP_PORT_FTP );
- rtl::OUString suResult = saSocketAddr.getHostname( 0 );
- rtl::OUString suError = outputError(suResult, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sceri.PRC.Sun.COM")), "test for getHostname(0)");
- sal_Bool bOK = compareUString( suResult, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sceri.PRC.Sun.COM")) );
- // search the returned hostname in /etc/hosts, if find, and the IP in the row is same as IP
- // in the Addr, it's right also.
- if ( bOK == sal_False)
- {
- rtl::OString aString = ::rtl::OUStringToOString( suResult, RTL_TEXTENCODING_ASCII_US );
- if ( compareUString( getIPbyName( aString ), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("129.158.217.107")) ) == sal_True )
- bOK = sal_True;
- }
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_True == bOK);
- }
-
-// LLA: now we have to control, if this behaviour is right.
-// LLA: this function does not work in company (Linux, Windows) but at home
- void getHostname_002()
- {
- rtl::OUString suHostname (RTL_CONSTASCII_USTRINGPARAM("cn-1.germany.sun.com"));
- rtl::OString aString = ::rtl::OUStringToOString( suHostname, RTL_TEXTENCODING_ASCII_US );
- rtl::OUString aHostIP = getIPbyName( aString );
-
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("localhost")), IP_PORT_FTP );
- sal_Bool bOK = saSocketAddr.setHostname( suHostname );
- CPPUNIT_ASSERT_MESSAGE("#SocketAddr.setHostname failed", sal_True == bOK );
- oslSocketResult aResult;
- rtl::OUString suResult = saSocketAddr.getHostname( &aResult );
- CPPUNIT_ASSERT_MESSAGE("SocketAddr.getHostname failed.", aResult == osl_Socket_Ok);
-
- rtl::OUString suError = outputError(suResult, suHostname, "test for getHostname(0)");
- bOK = compareUString( suResult, suHostname );
- if ( bOK == sal_False)
- {
- rtl::OString aStringResult = ::rtl::OUStringToOString( suResult, RTL_TEXTENCODING_ASCII_US );
- rtl::OString aStringHostname = ::rtl::OUStringToOString( suHostname, RTL_TEXTENCODING_ASCII_US );
- if ( compareUString( getIPbyName( aStringResult ) , getIPbyName( aStringHostname ) ) == sal_True )
- {
- bOK = sal_True;
- }
- }
-
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_True == bOK );
- }
-
-
- CPPUNIT_TEST_SUITE( getHostname );
- CPPUNIT_TEST( getHostname_001 );
- CPPUNIT_TEST( getHostname_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getHostname
-
-
- /** testing the method:
- inline sal_Int32 SAL_CALL getPort() const;
- */
-
- class getPort : public CppUnit::TestFixture
- {
- public:
- void getPort_001()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_FTP );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getPort() function: get a normal port number.",
- IP_PORT_FTP == saSocketAddr.getPort( ) );
- }
-
- void getPort_002()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("129.158.217.202")), IP_PORT_INVAL );
-
- //t_print("#getPort_002: Port number is %d \n", saSocketAddr.getPort( ));
-
- CPPUNIT_ASSERT_MESSAGE( "test for getPort( ) function: give an invalid port to a SocketAddr, get the port to see if it can detect. it did not pass in (W32).",
- saSocketAddr.getPort( )>=1 && saSocketAddr.getPort( ) <= 65535 );
- }
- //two cases will return OSL_INVALID_PORT: 1. not valid SocketAddr
- //2. SocketAddr family is not osl_Socket_FamilyInet, but case 2 could not be constructed
- void getPort_003()
- {
- rtl::OUString suInvalidIP (RTL_CONSTASCII_USTRINGPARAM("123.345.67.89"));
- ::osl::SocketAddr saSocketAddr( suInvalidIP, IP_PORT_MYPORT );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getPort( ) function: give an invalid IP to a SocketAddr, get the port to see returned value. ",
- saSocketAddr.getPort( ) == OSL_INVALID_PORT );
- }
-
- CPPUNIT_TEST_SUITE( getPort );
- CPPUNIT_TEST( getPort_001 );
- CPPUNIT_TEST( getPort_002 );
- CPPUNIT_TEST( getPort_003 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class getPort
-
-
- /** testing the method:
- inline sal_Bool SAL_CALL setPort( sal_Int32 nPort );
- rfc1413.txt: TCP port numbers are from 1-65535
- rfc1700.txt: 0/tcp Reserved ; 0/udp Reserved
- */
-
- class setPort : public CppUnit::TestFixture
- {
- public:
- void setPort_001()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_FTP );
- sal_Bool bOK = saSocketAddr.setPort( IP_PORT_TELNET );
-
- CPPUNIT_ASSERT_MESSAGE( "test for setPort() function: modify a port number setting, and check it.",
- ( sal_True == bOK ) &&
- ( IP_PORT_TELNET == saSocketAddr.getPort( ) ) );
- }
-
- /** 0 to 1024 is known as the reserved port range (traditionally only root can assign programs to ports in
- this range) and the ephemeral port range from 1025 to 65535.
- As many of you programmers will know, when you specify the source port of 0 when you connect to a host,
- the OS automatically reassigns the port number to high numbered ephemeral port. The same happens if you
- try to bind a listening socket to port 0.
- http://www.securiteam.com/securityreviews/5XP0Q2AAKS.html
- another: http://www.muq.org/~cynbe/muq/mufref_564.html
- */
- void setPort_002()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_FTP );
- sal_Bool bOK = saSocketAddr.setPort( IP_PORT_ZERO );
-
- oslSocket sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 );//sal_True);
- sal_Bool bOK1 = sSocket.bind( saSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "bind SocketAddr failed", bOK1 == sal_True );
-
- sal_Int32 newPort = sSocket.getLocalPort();
- //t_print("#new port is %d\n", newPort );
-
- CPPUNIT_ASSERT_MESSAGE( "test for setPort() function: port number should be in 1 ~ 65535, set port 0, it should be converted to a port number between 1024~65535.",
- ( 1024 <= newPort ) && ( 65535 >= newPort ) && ( bOK == sal_True ) );
-
- }
-
- void setPort_003()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_FTP);
- sal_Bool bOK = saSocketAddr.setPort( IP_PORT_INVAL );
- //on Linux, getPort return 34463
- //t_print("#Port number is %d \n", saSocketAddr.getPort( ));
-
- CPPUNIT_ASSERT_MESSAGE( "test for setPort( ) function: set an address with invalid port. it should return error or convert it to a valid port.",
- ( ( 1 <= saSocketAddr.getPort( ) ) && ( 65535 >= saSocketAddr.getPort( ) ) &&( bOK == sal_True ) ) ||
- bOK == sal_False);
- }
-
- /* this is not a inet-addr => can't set port */
- void setPort_004()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("123.345.67.89")), IP_PORT_FTP);
- sal_Bool bOK = saSocketAddr.setPort( IP_PORT_MYPORT );
-
- CPPUNIT_ASSERT_MESSAGE( "test for setPort( ) function: set an invalid address with valid port. it should return error.",
- bOK == sal_False);
- }
-
-
- CPPUNIT_TEST_SUITE( setPort );
- CPPUNIT_TEST( setPort_001 );
- CPPUNIT_TEST( setPort_002 );
- CPPUNIT_TEST( setPort_003 );
- CPPUNIT_TEST( setPort_004 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class setPort
-
-
- /** tester comment:
-
- In the following two functions, it use ::rtl::ByteSequence as an intermediate storage for address,
- the ByteSequence object can hold sal_Int8 arrays, which is raged [-127, 127], in case of IP addr
- that is greater than 127, say 129.158.217.202, it will stored as -127, -98, -39, -54, it is unique
- in the range of sal_Int8, but lack of readability.
- so may be a sal_uInt8 array is better.
- */
-
-
- /** testing the method:
- inline sal_Bool SAL_CALL setAddr( const ::rtl::ByteSequence & address );
- */
-
- class setAddr : public CppUnit::TestFixture
- {
- public:
- void setAddr_001()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("129.158.217.202")), IP_PORT_FTP );
- saSocketAddr.setAddr( UStringIPToByteSequence( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")) ) );
- ::rtl::ByteSequence bsSocketAddr = saSocketAddr.getAddr( 0 );
- sal_Bool bOK = sal_False;
-
- // if ( ( bsSocketAddr[0] == 127 ) && ( bsSocketAddr[1] == 0 ) && ( bsSocketAddr[2] == 0 ) && ( bsSocketAddr[3] == 1 ) )
- // bOK = sal_True;
- bOK = ifIpv4is( bsSocketAddr, 127, 0, 0, 1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for setAddr() function: construct Addr with \"129.158.217.202\", set it to \"127.0.0.1\", and check the correctness ",
- sal_True == bOK );
- }
-
-
- CPPUNIT_TEST_SUITE( setAddr );
- CPPUNIT_TEST( setAddr_001 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class setAddr
-
-
- /** testing the method:
- inline ::rtl::ByteSequence SAL_CALL getAddr( oslSocketResult *pResult = 0 ) const;
- */
-
- class getAddr : public CppUnit::TestFixture
- {
- public:
- void getAddr_001()
- {
- oslSocketResult SocketResult;
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_FTP );
- ::rtl::ByteSequence bsSocketAddr = saSocketAddr.getAddr( &SocketResult );
-
- sal_Bool bOK = sal_False;
-
- //if ( ( osl_Socket_Ok == SocketResult ) &&( bsSocketAddr[0] == 127 ) && ( bsSocketAddr[1] == 0 ) &&( bsSocketAddr[2] == 0 ) && ( bsSocketAddr[3] == 1 ) )
- // bOK = sal_True;
- bOK = ifIpv4is( bsSocketAddr, 127, 0, 0, 1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getAddr() function: construct a socketaddr with IP assigned, get the address to check correctness.Caught unknown exception on (Win32)",
- sal_True == bOK && SocketResult == osl_Socket_Ok);
- }
-
- CPPUNIT_TEST_SUITE( getAddr );
- CPPUNIT_TEST( getAddr_001 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class getAddr
-
-
- /** testing the methods:
- inline SocketAddr & SAL_CALL operator= (oslSocketAddr Addr);
- inline SocketAddr & SAL_CALL operator= (const SocketAddr& Addr);
- inline SocketAddr & SAL_CALL assign( oslSocketAddr Addr, __osl_socket_NoCopy nocopy );
- inline sal_Bool SAL_CALL operator== (oslSocketAddr Addr) const;
- inline sal_Bool SAL_CALL operator== (const SocketAddr & Addr) const; /// not implemented.
- */
-
- class operator_equal : public CppUnit::TestFixture
- {
- public:
- void operator_equal_001()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_TELNET);
- ::osl::SocketAddr saSocketAddrEqual( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("129.158.217.202")), IP_PORT_FTP );
-
- saSocketAddrEqual = saSocketAddr;
- sal_Bool bOK = sal_False;
- ::rtl::ByteSequence bsSocketAddr = saSocketAddrEqual.getAddr( 0 );
-
- // if ( ( IP_PORT_TELNET == saSocketAddrEqual.getPort( ) ) &&( bsSocketAddr[0] == 127 ) && ( bsSocketAddr[1] == 0 ) &&( bsSocketAddr[2] == 0 ) && ( bsSocketAddr[3] == 1 ) )
- if ( ( IP_PORT_TELNET == saSocketAddrEqual.getPort( ) ) && ( ifIpv4is( bsSocketAddr, 127, 0, 0, 1 ) == sal_True ) )
- bOK = sal_True;
-
- CPPUNIT_ASSERT_MESSAGE( "test for operator_equal() function: use operator= to assign Ip1 to Ip2, check its modification.",
- sal_True == bOK );
- }
-
-
- void operator_equal_002()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("129.158.217.199")), IP_PORT_TELNET);
- ::osl::SocketAddr saSocketAddrEqual( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("129.158.217.202")), IP_PORT_FTP );
-
- saSocketAddrEqual = saSocketAddr;
- CPPUNIT_ASSERT_MESSAGE( "after assign, the assigned SocketAddr is not same as the original Addr",
- IP_PORT_TELNET == saSocketAddrEqual.getPort( ) );
- saSocketAddrEqual.setPort( IP_PORT_MYPORT3 );
- saSocketAddr.setPort( IP_PORT_HTTP2 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for operator_equal() function: perform an equal action, then try to change the original address's port. it should not be changed ( handle released), it did not pass in (W32), this is under discussion.",
- IP_PORT_MYPORT3 == saSocketAddrEqual.getPort( ) );
- }
-
- void operator_equal_const_001()
- {
- const ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_TELNET);
- ::osl::SocketAddr saSocketAddrEqual( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("129.158.217.202")), IP_PORT_FTP );
-
- saSocketAddrEqual = saSocketAddr;
- sal_Bool bOK = sal_False;
- ::rtl::ByteSequence bsSocketAddr = saSocketAddrEqual.getAddr( 0 );
-
- // if ( ( IP_PORT_TELNET == saSocketAddrEqual.getPort( ) ) &&( bsSocketAddr[0] == 127 ) && ( bsSocketAddr[1] == 0 ) &&( bsSocketAddr[2] == 0 ) && ( bsSocketAddr[3] == 1 ) )
- if ( ( IP_PORT_TELNET == saSocketAddrEqual.getPort( ) ) && ifIpv4is( bsSocketAddr, 127, 0, 0, 1 ) == sal_True )
- bOK = sal_True;
-
- CPPUNIT_ASSERT_MESSAGE( "test for operator_equal_const() function: use operator= const to assign Ip1 to Ip2, verify the change on the second one.",
- sal_True == bOK );
- }
-
- void operator_equal_const_002()
- {
- const ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_TELNET);
- ::osl::SocketAddr saSocketAddrEqual( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("129.158.217.202")), IP_PORT_FTP );
-
- saSocketAddrEqual = saSocketAddr;
- saSocketAddrEqual.setPort( IP_PORT_HTTP1 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for operator_equal_const() function: change the second instance, the first one should not be altered, since it does not released the handle.",
- IP_PORT_HTTP1 != saSocketAddr.getPort( ) );
- }
-
- void operator_equal_assign_001()
- {
- ::osl::SocketAddr* pSocketAddr = new ::osl::SocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_TELNET );
- CPPUNIT_ASSERT_MESSAGE("check for new SocketAddr", pSocketAddr != NULL);
- ::osl::SocketAddr* pSocketAddrAssign = new ::osl::SocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("129.158.217.202")), IP_PORT_FTP );
- oslSocketAddr poslSocketAddr = pSocketAddr->getHandle( );
- //if( m_handle ) osl_destroySocketAddr( m_handle ); so pSocketAddrAssign had been destroyed and then point to pSocketAddr
- pSocketAddrAssign->assign(poslSocketAddr, SAL_NO_COPY);
-
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr no copy constructor function: do a no copy constructor on a given SocketAddr instance, modify the new instance's port, check the original one.",
- pSocketAddrAssign->getPort( ) == IP_PORT_TELNET );
-
- delete pSocketAddrAssign;
- }
-
- void operator_is_equal_001()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_TELNET);
- ::osl::SocketAddr saSocketAddrequal( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_TELNET );
-
- CPPUNIT_ASSERT_MESSAGE( "test for operator_equal_equal() function: check two identical Address.",
- sal_True == ( saSocketAddrequal == saSocketAddr.getHandle( ) ) );
- }
-
- void operator_is_equal_002()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("129.158.217.202")), IP_PORT_FTP);
- ::osl::SocketAddr saSocketAddrequal( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_TELNET );
-
- CPPUNIT_ASSERT_MESSAGE( "test for operator_equal_equal() function: check two different Address.",
- sal_False == ( saSocketAddrequal == saSocketAddr.getHandle( ) ) );
- }
-
- CPPUNIT_TEST_SUITE( operator_equal );
- CPPUNIT_TEST( operator_equal_001 );
- CPPUNIT_TEST( operator_equal_002 );
- CPPUNIT_TEST( operator_equal_const_001 );
- CPPUNIT_TEST( operator_equal_const_002 );
- CPPUNIT_TEST( operator_equal_assign_001 );
- CPPUNIT_TEST( operator_is_equal_001 );
- CPPUNIT_TEST( operator_is_equal_002 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class operator_equal
-
-
-
- /** testing the method:
- inline oslSocketAddr SAL_CALL getHandle() const;
- */
-
- class getSocketAddrHandle : public CppUnit::TestFixture
- {
- public:
-
- void getSocketAddrHandle_001()
- {
- ::osl::SocketAddr* pSocketAddr = new ::osl::SocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("localhost")), IP_PORT_HTTP1 );
- CPPUNIT_ASSERT_MESSAGE("check for new SocketAddr", pSocketAddr != NULL);
- oslSocketAddr psaOSLSocketAddr = pSocketAddr->getHandle( );
- ::osl::SocketAddr* pSocketAddrCopy = new ::osl::SocketAddr( psaOSLSocketAddr, SAL_NO_COPY );
-
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr no copy constructor function: do a no copy constructor on a given SocketAddr instance, modify the new instance's port, check the original one.",
- pSocketAddr->getHandle( ) == pSocketAddrCopy->getHandle( ) );
-
- delete pSocketAddrCopy;
- }
-
- void getSocketAddrHandle_002()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("deuce.PRC.Sun.COM")), IP_PORT_MYPORT4 );
- oslSocketAddr poslSocketAddr = saSocketAddr.getHandle( );
-
- sal_Bool bOK = ( saSocketAddr == poslSocketAddr );
- //t_print("getSocketAddrHandle_002\n");
- CPPUNIT_ASSERT_MESSAGE( "test for getHandle() function: use getHandle() function as an intermediate way to create identical address.",
- sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getSocketAddrHandle );
- CPPUNIT_TEST( getSocketAddrHandle_001 );
- CPPUNIT_TEST( getSocketAddrHandle_002 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class getSocketAddrHandle
-
-
- /** testing the method:
- static inline ::rtl::OUString SAL_CALL getLocalHostname( oslSocketResult *pResult = 0);
- */
-
- class getLocalHostname : public CppUnit::TestFixture
- {
- public:
- /* the process of getLocalHostname: 1.gethostname (same as /bin/hostname) returned name A
- 2. search A in /etc/hosts, if there is an alias name is A, return the name in the same row
- */
-
- void getLocalHostname_000()
- {
- // _osl_getFullQualifiedDomainName( );
- oslSocketResult aResult = osl_Socket_Error;
- rtl::OUString suHostname = osl::SocketAddr::getLocalHostname(&aResult);
- CPPUNIT_ASSERT_MESSAGE("getLocalHostname failed", aResult == osl_Socket_Ok);
- }
-
- void getLocalHostname_001()
- {
- oslSocketResult *pResult = NULL;
- //printSocketResult(*pResult);
- ::rtl::OUString suResult = ::osl::SocketAddr::getLocalHostname( pResult );
-
- // LLA: IMHO localhost, or hostname by itself should be ok.
- rtl::OUString suThisHost = getThisHostname( );
- bool bOk = false;
- if (suThisHost.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("localhost"))))
- {
- bOk = true;
- }
- else
- {
- if (suThisHost.equals(suResult))
- {
- bOk = true;
- }
- }
-
- ::rtl::OUString suError;
- suError = outputError(suResult, getThisHostname( ), "test for getLocalHostname() function");
-
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), bOk == true );
- }
-
- CPPUNIT_TEST_SUITE( getLocalHostname );
- CPPUNIT_TEST( getLocalHostname_000 );
- CPPUNIT_TEST( getLocalHostname_001 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class getLocalHostname
-
-
- /** testing the method:
- static inline void SAL_CALL resolveHostname( const ::rtl::OUString & strHostName , SocketAddr & Addr );
- */
-
- class resolveHostname : public CppUnit::TestFixture
- {
- public:
- void resolveHostname_001()
- {
- ::osl::SocketAddr saSocketAddr;
- ::osl::SocketAddr::resolveHostname( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), saSocketAddr );
- ::rtl::ByteSequence bsSocketAddr = saSocketAddr.getAddr( 0 );
- sal_Bool bOK = sal_False;
-
- if ( ( bsSocketAddr[0] == 127 ) && ( bsSocketAddr[1] == 0 ) &&( bsSocketAddr[2] == 0 ) && ( bsSocketAddr[3] == 1 ) )
- bOK = sal_True;
-
- CPPUNIT_ASSERT_MESSAGE( "test for resolveHostname() function: try to resolve localhost to 127.0.0.1.",
- sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( resolveHostname );
- CPPUNIT_TEST( resolveHostname_001 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class resolveHostname
-
-
- /** testing the method:
- static inline sal_Int32 SAL_CALL getServicePort(
- const ::rtl::OUString& strServiceName,
- const ::rtl::OUString & strProtocolName= ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("tcp")) );
- */
-
- class gettheServicePort : public CppUnit::TestFixture
- {
- public:
- void gettheServicePort_001()
- {
- rtl::OUString suServiceFTP (RTL_CONSTASCII_USTRINGPARAM("ftp"));
- rtl::OUString suProtocolTCP (RTL_CONSTASCII_USTRINGPARAM("tcp"));
-
- CPPUNIT_ASSERT_MESSAGE( "test for getServicePort() function: try to get ftp service port on TCP protocol.",
- IP_PORT_FTP== ::osl::SocketAddr::getServicePort( suServiceFTP, suProtocolTCP ) );
- }
-
- void gettheServicePort_002()
- {
- rtl::OUString suServiceTELNET (RTL_CONSTASCII_USTRINGPARAM("telnet"));
- rtl::OUString suProtocolTCP (RTL_CONSTASCII_USTRINGPARAM("tcp"));
- CPPUNIT_ASSERT_MESSAGE( "test for getServicePort() function: try to get telnet service port on TCP protocol.",
- IP_PORT_TELNET== ::osl::SocketAddr::getServicePort( suServiceTELNET, suProtocolTCP ) );
- }
-
- void gettheServicePort_003()
- {
- //Solaris has no service called "https", please see /etc/services
- rtl::OUString suServiceNETBIOS (RTL_CONSTASCII_USTRINGPARAM("netbios-dgm"));
- rtl::OUString suProtocolUDP (RTL_CONSTASCII_USTRINGPARAM("udp"));
- CPPUNIT_ASSERT_MESSAGE( "test for getServicePort() function: try to get netbios-ssn service port on UDP protocol.",
- IP_PORT_NETBIOS_DGM == ::osl::SocketAddr::getServicePort( suServiceNETBIOS, suProtocolUDP ) );
- }
-
- void gettheServicePort_004()
- {
- rtl::OUString suProtocolUDP(RTL_CONSTASCII_USTRINGPARAM( "udp" ));
- CPPUNIT_ASSERT_MESSAGE( "test for getServicePort() function: try to get a service port which is not exist.",
- OSL_INVALID_PORT == ::osl::SocketAddr::getServicePort( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("notexist")), suProtocolUDP ) );
- }
-
- CPPUNIT_TEST_SUITE( gettheServicePort );
- CPPUNIT_TEST( gettheServicePort_001 );
- CPPUNIT_TEST( gettheServicePort_002 );
- CPPUNIT_TEST( gettheServicePort_003 );
- CPPUNIT_TEST( gettheServicePort_004 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class gettheServicePort
-
- /** testing the method:
-
- */
-
- class getFamilyOfSocketAddr : public CppUnit::TestFixture
- {
- public:
- void getFamilyOfSocketAddr_001()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("localhost")), IP_PORT_HTTP1 );
- oslSocketAddr psaOSLSocketAddr = saSocketAddr.getHandle( );
- CPPUNIT_ASSERT_EQUAL(
- osl_Socket_FamilyInet,
- osl_getFamilyOfSocketAddr( psaOSLSocketAddr ) );
-
- CPPUNIT_ASSERT_MESSAGE( "test for osl_getFamilyOfSocketAddr.",
- osl_getFamilyOfSocketAddr( psaOSLSocketAddr ) == osl_Socket_FamilyInet );
- }
-
- CPPUNIT_TEST_SUITE( getFamilyOfSocketAddr );
- CPPUNIT_TEST( getFamilyOfSocketAddr_001 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class getFamilyOfSocketAddr
-
-// -----------------------------------------------------------------------------
-
-
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::ctors);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::is);
-//TODO: enable Test with valid host names
-//CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::getHostname);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::getPort);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::setPort);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::setAddr);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::getAddr);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::operator_equal);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::getSocketAddrHandle);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::getLocalHostname);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::resolveHostname);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::gettheServicePort);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::getFamilyOfSocketAddr);
-
-} // namespace osl_SocketAddr
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/osl_SocketAddr.xsce b/sal/qa/osl/socket/osl_SocketAddr.xsce
deleted file mode 100644
index e69de29bb..000000000
--- a/sal/qa/osl/socket/osl_SocketAddr.xsce
+++ /dev/null
diff --git a/sal/qa/osl/socket/osl_SocketOld.xsce b/sal/qa/osl/socket/osl_SocketOld.xsce
deleted file mode 100644
index 3f8120fc6..000000000
--- a/sal/qa/osl/socket/osl_SocketOld.xsce
+++ /dev/null
@@ -1,14 +0,0 @@
-osl_Socket.ctors.ctors_family_Ipx
-osl_SocketAddr.getHostname.getHostname_002
-osl_StreamSocket.send_recv.write_read_001
-
-osl_ConnectorSocket.connect.connect_003 wntmsci
-osl_Socket.getLocalHost.getLocalHost_001 wntmsci
-
-# hangs within solaris
-osl_StreamSocket.send_recv.write_read_002 unxsols
-osl_StreamSocket.send_recv.write_read_003 unxsols
-osl_StreamSocket.send_recv.write_read_004 unxsols
-
-# hangs within solaris
-osl_StreamSocket.send_recv.send_recv1 unxsols
diff --git a/sal/qa/osl/socket/osl_Socket_Const.h b/sal/qa/osl/socket/osl_Socket_Const.h
deleted file mode 100644
index da8d80f4c..000000000
--- a/sal/qa/osl/socket/osl_Socket_Const.h
+++ /dev/null
@@ -1,181 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_SOCKET_CONST_H_
-#define _OSL_SOCKET_CONST_H_
-
-#include <sal/types.h>
-#include <rtl/textenc.h>
-#include <rtl/ustring.hxx>
-#include <rtl/ustring.h>
-
-#ifndef _OSL_SOCLET_HXX_
-#include <osl/socket.hxx>
-#endif
-#include <osl/socket.h>
-
-#ifndef _OSL_THREAD_HXX
-#include <osl/thread.hxx>
-#endif
-
-#ifndef _OSL_FILE_HXX
-#include <osl/file.hxx>
-#endif
-
-#ifndef _OSL_MUTEX_HXX
-#include <osl/mutex.hxx>
-#endif
-#include <osl/time.h>
-
-const char * pTestString1 = "test socket";
-const char * pTestString2 = " Passed#OK";
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-# include <stdio.h>
-//------------------------------------------------------------------------
-// OS dependent declaration and includes
-//------------------------------------------------------------------------
-#if ( defined UNX ) //Unix
-# include <unistd.h>
-# include <limits.h>
-# include <string.h>
-# include <math.h>
-# include <errno.h>
-# include <fcntl.h>
-# include <sys/stat.h>
-# include <sys/statfs.h>
-# include <sys/statvfs.h>
-# include <sys/types.h>
-# include <sys/socket.h>
-# include <netdb.h>
-# include <netinet/in.h>
-# include <arpa/inet.h>
-#endif
-#if ( defined WNT ) // Windows
-# include <winsock.h>
-# include <string.h>
-#endif
-
-
-//------------------------------------------------------------------------
-// macro definition for the ASCII array/OUString declarations,
-// we use p### for the ASCII array,
-// a### for the OUString,
-// n###Len for its length
-//------------------------------------------------------------------------
-
-#define OSLTEST_DECLARE( str_name, str_value ) \
- static const sal_Char p##str_name[] = str_value; \
- static const sal_Int32 n##str_name##Len = sizeof( p##str_name ) -1; \
- ::rtl::OUString a##str_name = rtl::OUString::createFromAscii( p##str_name )
-
-
-//------------------------------------------------------------------------
-// Ip version definition
-//------------------------------------------------------------------------
-#define IP_VER 4 /// currently only IPv4 is considered.
-
-//------------------------------------------------------------------------
-// Ip port definition
-//------------------------------------------------------------------------
-// #define IP_PORT_ZERO 0
-// #define IP_PORT_TELNET 23
-// #define IP_PORT_SMTP 25
-// #define IP_PORT_GOPHER 70
-// #define IP_PORT_POP3 110
-// #define IP_PORT_NETBIOS_DGM 138
-// #define IP_PORT_NETBIOS 139
-// #define IP_PORT_IMAP 143
-// #define IP_PORT_HTTPS 443
-// /**reference: http://www.iana.org/assignments/port-numbers */
-// #define IP_PORT_MYPORT 8881 //8888
-// #define IP_PORT_MYPORT1 8882 //8889
-// #define IP_PORT_MYPORT3 8884 //8891
-// #define IP_PORT_MYPORT4 8885 //8892
-// #define IP_PORT_MYPORT5 8886 //8893
-// #define IP_PORT_MYPORT6 8887 //8894
-// #define IP_PORT_MYPORT7 8895
-// #define IP_PORT_MYPORT8 8896
-// #define IP_PORT_MYPORT9 8897
-// #define IP_PORT_MYPORT10 8898
-//
-// #define IP_PORT_TMP 9999
-// #define IP_PORT_INVAL 99999
-
-//------------------------------------------------------------------------
-// service definitions.
-//------------------------------------------------------------------------
-// OSLTEST_DECLARE( ServiceFTP, "ftp" );
-// OSLTEST_DECLARE( ServiceTELNET, "telnet" );
-// OSLTEST_DECLARE( ServiceGOPHER, "gopher" );
-// OSLTEST_DECLARE( ServiceIMAP, "imap" );
-// OSLTEST_DECLARE( ServiceHTTPS, "https" );
-// OSLTEST_DECLARE( ServiceNETBIOS, "netbios-dgm" );
-
-//------------------------------------------------------------------------
-// protocol definitions.
-//------------------------------------------------------------------------
-// OSLTEST_DECLARE( ProtocolTCP, "tcp" );
-// OSLTEST_DECLARE( ProtocolUDP, "udp" );
-
-//------------------------------------------------------------------------
-// Hostnames.
-//------------------------------------------------------------------------
-// OSLTEST_DECLARE( HostName1, "localhost" );
-// OSLTEST_DECLARE( HostIp1, "127.0.0.1" );
-OSLTEST_DECLARE( HostName2, "longshot.prc.sun.com" );
-OSLTEST_DECLARE( HostIp2, "129.158.217.202" );
-OSLTEST_DECLARE( HostName3, "deuce.prc.sun.com" );
-OSLTEST_DECLARE( HostIp3, "129.158.217.199" );
-OSLTEST_DECLARE( HostName4, "sceri.PRC.Sun.COM" ); //Beijing server for test
-OSLTEST_DECLARE( HostIp4, "129.158.217.107" );
-OSLTEST_DECLARE( HostName5, "koori.SFBay.Sun.COM" ); //"grande.Germany.Sun.COM" ); //Germany server for test
-OSLTEST_DECLARE( HostIp5, "10.5.32.20" );
-OSLTEST_DECLARE( HostName6, "crumple.SFBay.Sun.COM" ); //sfbay
-OSLTEST_DECLARE( HostIp6, "10.6.103.83" );
-OSLTEST_DECLARE( HostIpInval, "123.45.67.89" ); //this is valid ip number,but can not arrive --mindy
-// OSLTEST_DECLARE( HostIpInval1, "123.345.67.89" ); //this is real invalid ip number --mindy
-OSLTEST_DECLARE( HostNameInval, "www.the_hostname_that_can_not_resolvable_to_an_IP_Address.com" );
-OSLTEST_DECLARE( HostIpZero, "0.0.0.0" );
-
-//------------------------------------------------------------------------
-// OS independent file definition
-//------------------------------------------------------------------------
-OSLTEST_DECLARE( NullURL, "" );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OSL_SOCKET_CONST_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/osl_Socket_Const_orig.h b/sal/qa/osl/socket/osl_Socket_Const_orig.h
deleted file mode 100644
index 09569ab90..000000000
--- a/sal/qa/osl/socket/osl_Socket_Const_orig.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSL_SOCKET_CONST_H_
-#define _OSL_SOCKET_CONST_H_
-
-#include <sal/types.h>
-#include <rtl/textenc.h>
-#include <rtl/ustring.hxx>
-#include <rtl/ustring.h>
-
-#ifndef _OSL_SOCLET_HXX_
-#include <osl/socket.hxx>
-#endif
-#include <osl/socket.h>
-
-#ifndef _OSL_THREAD_HXX
-#include <osl/thread.hxx>
-#endif
-
-#ifndef _OSL_FILE_HXX
-#include <osl/file.hxx>
-#endif
-
-#ifndef _OSL_MUTEX_HXX
-#include <osl/mutex.hxx>
-#endif
-#include <osl/time.h>
-
-const char * pTestString1 = "test socket";
-const char * pTestString2 = " Passed#OK";
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-# include <stdio.h>
-//------------------------------------------------------------------------
-// OS dependent declaration and includes
-//------------------------------------------------------------------------
-#if ( defined UNX ) //Unix
-# include <unistd.h>
-# include <limits.h>
-# include <string.h>
-# include <math.h>
-# include <errno.h>
-# include <fcntl.h>
-# include <sys/stat.h>
-# include <sys/statfs.h>
-# include <sys/statvfs.h>
-# include <sys/types.h>
-# include <sys/socket.h>
-# include <netdb.h>
-# include <netinet/in.h>
-# include <arpa/inet.h>
-#endif
-#if ( defined WNT ) // Windows
-# include <winsock.h>
-# include <string.h>
-#endif
-
-
-//------------------------------------------------------------------------
-// macro definition for the ASCII array/OUString declarations,
-// we use p### for the ASCII array,
-// a### for the OUString,
-// n###Len for its length
-//------------------------------------------------------------------------
-
-#define OSLTEST_DECLARE( str_name, str_value ) \
- static const sal_Char p##str_name[] = str_value; \
- static const sal_Int32 n##str_name##Len = sizeof( p##str_name ) -1; \
- ::rtl::OUString a##str_name = rtl::OUString::createFromAscii( p##str_name )
-
-
-//------------------------------------------------------------------------
-// Ip version definition
-//------------------------------------------------------------------------
-#define IP_VER 4 /// currently only IPv4 is considered.
-
-//------------------------------------------------------------------------
-// Ip port definition
-//------------------------------------------------------------------------
-#define IP_PORT_ZERO 0
-#define IP_PORT_FTP 21
-#define IP_PORT_TELNET 23
-#define IP_PORT_SMTP 25
-#define IP_PORT_GOPHER 70
-#define IP_PORT_HTTP1 80
-#define IP_PORT_POP3 110
-#define IP_PORT_NETBIOS_DGM 138
-#define IP_PORT_NETBIOS 139
-#define IP_PORT_IMAP 143
-#define IP_PORT_HTTPS 443
-#define IP_PORT_HTTP2 8080
-/**reference: http://www.iana.org/assignments/port-numbers */
-#define IP_PORT_MYPORT 8881 //8888
-#define IP_PORT_MYPORT1 8882 //8889
-#define IP_PORT_MYPORT2 8883 //8890
-#define IP_PORT_MYPORT3 8884 //8891
-#define IP_PORT_MYPORT4 8885 //8892
-#define IP_PORT_MYPORT5 8886 //8893
-#define IP_PORT_MYPORT6 8887 //8894
-#define IP_PORT_MYPORT7 8895
-#define IP_PORT_MYPORT8 8896
-#define IP_PORT_MYPORT9 8897
-#define IP_PORT_MYPORT10 8898
-
-#define IP_PORT_TMP 9999
-#define IP_PORT_INVAL 99999
-
-//------------------------------------------------------------------------
-// service definitions.
-//------------------------------------------------------------------------
-OSLTEST_DECLARE( ServiceFTP, "ftp" );
-OSLTEST_DECLARE( ServiceTELNET, "telnet" );
-OSLTEST_DECLARE( ServiceGOPHER, "gopher" );
-OSLTEST_DECLARE( ServiceIMAP, "imap" );
-OSLTEST_DECLARE( ServiceHTTPS, "https" );
-OSLTEST_DECLARE( ServiceNETBIOS, "netbios-dgm" );
-
-//------------------------------------------------------------------------
-// protocol definitions.
-//------------------------------------------------------------------------
-OSLTEST_DECLARE( ProtocolTCP, "tcp" );
-OSLTEST_DECLARE( ProtocolUDP, "udp" );
-
-//------------------------------------------------------------------------
-// Hostnames.
-//------------------------------------------------------------------------
-OSLTEST_DECLARE( HostName1, "localhost" );
-OSLTEST_DECLARE( HostIp1, "127.0.0.1" );
-OSLTEST_DECLARE( HostName2, "longshot.prc.sun.com" );
-OSLTEST_DECLARE( HostIp2, "129.158.217.202" );
-OSLTEST_DECLARE( HostName3, "deuce.prc.sun.com" );
-OSLTEST_DECLARE( HostIp3, "129.158.217.199" );
-OSLTEST_DECLARE( HostName4, "sceri.PRC.Sun.COM" ); //Beijing server for test
-OSLTEST_DECLARE( HostIp4, "129.158.217.107" );
-OSLTEST_DECLARE( HostName5, "koori.SFBay.Sun.COM" ); //"grande.Germany.Sun.COM" ); //Germany server for test
-OSLTEST_DECLARE( HostIp5, "10.5.32.20" );
-OSLTEST_DECLARE( HostName6, "crumple.SFBay.Sun.COM" ); //sfbay
-OSLTEST_DECLARE( HostIp6, "10.6.103.83" );
-OSLTEST_DECLARE( HostIpInval, "123.45.67.89" ); //this is valid ip number,but can not arrive --mindy
-OSLTEST_DECLARE( HostIpInval1, "123.345.67.89" ); //this is real invalid ip number --mindy
-OSLTEST_DECLARE( HostNameInval, "www.the_hostname_that_can_not_resolvable_to_an_IP_Address.com" );
-OSLTEST_DECLARE( HostIpZero, "0.0.0.0" );
-
-//------------------------------------------------------------------------
-// OS independent file definition
-//------------------------------------------------------------------------
-OSLTEST_DECLARE( NullURL, "" );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OSL_SOCKET_CONST_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/osl_Socket_tests.cxx b/sal/qa/osl/socket/osl_Socket_tests.cxx
deleted file mode 100644
index a53d814c3..000000000
--- a/sal/qa/osl/socket/osl_Socket_tests.cxx
+++ /dev/null
@@ -1,93 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-//------------------------------------------------------------------------
-// include files
-//------------------------------------------------------------------------
-#include <osl_Socket_Const.h>
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-#include <osl/socket.hxx>
-//------------------------------------------------------------------------
-// helper functions
-//------------------------------------------------------------------------
-
-//------------------------------------------------------------------------
-// tests cases begins here
-//------------------------------------------------------------------------
-
-namespace osl_Socket
-{
-
- class tests : public CppUnit::TestFixture
- {
- public:
-
- void test_001()
- {
- // _osl_getFullQualifiedDomainName( );
- oslSocketResult aResult;
- rtl::OUString suHostname = osl::SocketAddr::getLocalHostname(&aResult);
- CPPUNIT_ASSERT_MESSAGE("getLocalHostname failed", aResult == osl_Socket_Ok);
- }
-
- CPPUNIT_TEST_SUITE( tests );
- CPPUNIT_TEST( test_001 );
- CPPUNIT_TEST_SUITE_END();
- };
-
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::tests);
-}
-
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-
-/*#if (defined LINUX)
-
-void RegisterAdditionalFunctions( FktRegFuncPtr _pFunc )
-{
- // for cover lines in _osl_getFullQualifiedDomainName( )
- // STAR_OVERRIDE_DOMAINNAME is more an internal HACK for 5.2, which should remove from sal
- setenv( "STAR_OVERRIDE_DOMAINNAME", "PRC.Sun.COM", 0 );
-}
-
-#else*/
-
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-//#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/osl_Socket_tests.xsce b/sal/qa/osl/socket/osl_Socket_tests.xsce
deleted file mode 100644
index d247b2365..000000000
--- a/sal/qa/osl/socket/osl_Socket_tests.xsce
+++ /dev/null
@@ -1 +0,0 @@
-osl_SocketTest.tests.test_001
diff --git a/sal/qa/osl/socket/osl_StreamSocket.cxx b/sal/qa/osl/socket/osl_StreamSocket.cxx
deleted file mode 100644
index 7b0c8a2c1..000000000
--- a/sal/qa/osl/socket/osl_StreamSocket.cxx
+++ /dev/null
@@ -1,1431 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-/** test coder preface:
- 1. the BSD socket function will meet "unresolved external symbol error" on Windows platform
- if you are not including ws2_32.lib in makefile.mk, the including format will be like this:
-
- .IF "$(GUI)" == "WNT"
- SHL1STDLIBS += $(SOLARLIBDIR)$/cppunit.lib
- SHL1STDLIBS += ws2_32.lib
- .ENDIF
-
- likewise on Solaris platform.
- .IF "$(GUI)" == "UNX"
- SHL1STDLIBS+=$(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a
- SHL1STDLIBS += -lsocket -ldl -lnsl
- .ENDIF
-
- 2. since the Socket implementation of osl is only IPv4 oriented, our test are mainly focus on IPv4
- category.
-
- 3. some fragment of Socket source implementation are lack of comment so it is hard for testers
- guess what the exact functionality or usage of a member. Hope the Socket section's comment
- will be added.
-
- 4. following functions are declared but not implemented:
- inline sal_Bool SAL_CALL operator== (const SocketAddr & Addr) const;
-*/
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#include "sockethelper.hxx"
-#include <osl/conditn.hxx>
-
-using namespace osl;
-
-using ::rtl::OUString;
-using ::rtl::OString;
-
-#define IP_PORT_MYPORT9 8897
-#define IP_PORT_MYPORT10 18900
-
-const char * pTestString1 = "test socket";
-const char * pTestString2 = " Passed#OK";
-
-//------------------------------------------------------------------------
-// helper functions
-//------------------------------------------------------------------------
-
-// just used to test socket::close() when accepting
-class AcceptorThread : public Thread
-{
- ::osl::AcceptorSocket asAcceptorSocket;
- ::rtl::OUString aHostIP;
- sal_Bool bOK;
-protected:
- void SAL_CALL run( )
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIP, IP_PORT_MYPORT9 );
- ::osl::StreamSocket ssStreamConnection;
-
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //integer not sal_Bool : sal_True);
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- if ( sal_True != bOK1 )
- {
- t_print("# AcceptorSocket bind address failed.\n" ) ;
- return;
- }
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- if ( sal_True != bOK2 )
- {
- t_print("# AcceptorSocket listen address failed.\n" ) ;
- return;
- }
-
- asAcceptorSocket.enableNonBlockingMode( sal_False );
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection( ssStreamConnection );
- if (eResult != osl_Socket_Ok )
- {
- bOK = sal_True;
- t_print("AcceptorThread: acceptConnection failed! \n");
- }
- }
-public:
- AcceptorThread(::osl::AcceptorSocket & asSocket, ::rtl::OUString const& aBindIP )
- : asAcceptorSocket( asSocket ), aHostIP( aBindIP )
- {
- bOK = sal_False;
- }
-
- sal_Bool isOK() { return bOK; }
-
- ~AcceptorThread( )
- {
- if ( isRunning( ) )
- {
- asAcceptorSocket.shutdown();
- t_print("# error: Acceptor thread not terminated.\n" );
- }
- }
-};
-
-/** Server Socket Thread, served as a temp little server to communicate with client.
- */
-class ServerSocketThread : public Thread
-{
- osl::Condition &m_aCondition;
-protected:
- oslThreadIdentifier m_id;
-
- void SAL_CALL run( )
- {
- ::osl::AcceptorSocket asAcceptorSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT9 );
- ::osl::StreamSocket ssStreamConnection;
-
- //if has not set this option, socket addr can not be binded in some time(maybe 2 minutes) by another socket
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //integer not sal_Bool : sal_True);
- while ( schedule( ) == sal_True )
- {
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- if ( sal_True != bOK1 )
- {
- t_print("# ServerSocketThread: AcceptorSocket bind address failed.\n" ) ;
- break;
- }
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- if ( sal_True != bOK2 )
- {
- t_print("# ServerSocketThread: AcceptorSocket listen address failed.\n" ) ;
- break;
- }
-
- asAcceptorSocket.enableNonBlockingMode( sal_False );
- m_aCondition.set();
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection( ssStreamConnection );
- if (eResult != osl_Socket_Ok )
- {
- t_print("ServerSocketThread: acceptConnection failed! \n");
- break;
- }
- sal_Int32 nReadNumber1 = ssStreamConnection.recv( pReadBuffer, 11 );
- sal_Int32 nReadNumber2 = ssStreamConnection.recv( pReadBuffer + nReadNumber1, 11 );
- pReadBuffer[nReadNumber1 + nReadNumber2] = '\0';
- //t_print("# read buffer content: %s\n", pReadBuffer );
- break;
- }
- ssStreamConnection.close();
- asAcceptorSocket.close();
-
- }
-
- void SAL_CALL onTerminated( )
- {
- //t_print("# normally terminate this server thread %d!\n", m_id );
- }
-
-public:
- // public to check if data transmition is OK
- sal_Char pReadBuffer[30];
- ServerSocketThread( osl::Condition &_aCond ):m_aCondition(_aCond)
- {
- m_aCondition.reset();
- t_print("#init ServerSocketThread\n");
- m_id = getIdentifier( );
- //t_print("# successfully creat this ServerSocketThread %d!\n", m_id );
- }
-
- ~ServerSocketThread( )
- {
- if ( isRunning( ) )
- t_print("# error: ServerSocketThread has not terminated.\n" );
- }
-};
-
-/** Client Socket Thread, served as a temp little client to communicate with server.
- */
-class ClientSocketThread : public Thread
-{
-protected:
- osl::Condition &m_aCondition;
- oslThreadIdentifier m_id;
- ::osl::SocketAddr m_saTargetSocketAddr;
- ::osl::ConnectorSocket m_csConnectorSocket;
-
- void SAL_CALL run( )
- {
- TimeValue *pTimeout;
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 5;
- pTimeout->Nanosec = 0;
-
- /// if the thread should terminate, schedule return false
- //while ( schedule( ) == sal_True )
- //{
- if ( osl::Condition::result_ok != m_aCondition.wait( pTimeout ) )
- {
- free( pTimeout );
- return;
- }
-
- if ( osl_Socket_Ok == m_csConnectorSocket.connect( m_saTargetSocketAddr, pTimeout ))
- {
- m_csConnectorSocket.send( pTestString1, 11 ); // "test socket"
- m_csConnectorSocket.send( pTestString2, 10);
- }
- else
- t_print("# ClientSocketThread: connect failed! \n");
- // terminate();
- //}
- m_csConnectorSocket.close();
- free( pTimeout );
- }
-
- void SAL_CALL onTerminated( )
- {
- //t_print("# normally terminate this thread %d!\n", m_id );
- }
-
-public:
- ClientSocketThread( osl::Condition &_aCond ):
- m_aCondition(_aCond),
- m_saTargetSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT9 ),
- m_csConnectorSocket( )
- {
- m_id = getIdentifier( );
- //t_print("# successfully creat this client thread %d!\n", m_id );
- }
-
- ~ClientSocketThread( )
- {
- if ( isRunning( ) )
- t_print("# error: client thread not terminated.\n" );
- }
-
-};
-
-// -----------------------------------------------------------------------------
-// Helper functions, to create buffers, check buffers
-class ValueCheckProvider
-{
- bool m_bFoundFailure;
- char *m_pBuffer;
- sal_Int32 m_nBufferSize;
-
-public:
- ValueCheckProvider()
- :m_bFoundFailure(false),
- m_pBuffer(NULL),
- m_nBufferSize(0)
- {
- }
-
- bool isFailure() {return m_bFoundFailure;}
-
- const char* getBuffer() {return m_pBuffer;}
- char* getWriteBuffer() {return m_pBuffer;}
-
- sal_Int32 getBufferSize() {return m_nBufferSize;}
-
- bool checkValues(sal_Int32 _nLength, int _nValue)
- {
- m_bFoundFailure = false;
- for(sal_Int32 i=0;i<_nLength;i++)
- {
- if (m_pBuffer[i] != _nValue)
- {
- m_bFoundFailure = true;
- }
- }
- return m_bFoundFailure;
- }
-
- void createBuffer(sal_Int32 _nLength, int _nValue)
- {
- m_nBufferSize = _nLength;
- m_pBuffer = (char*) malloc(m_nBufferSize);
- if (m_pBuffer)
- {
- memset(m_pBuffer, _nValue, m_nBufferSize);
- }
- }
-
- void freeBuffer()
- {
- if (m_pBuffer) free(m_pBuffer);
- }
-
-};
-
-// -----------------------------------------------------------------------------
-/** Client Socket Thread, served as a temp little client to communicate with server.
- */
-
-class ReadSocketThread : public Thread
-{
- ValueCheckProvider m_aValues;
- int m_nValue;
- osl::Condition &m_aCondition;
-
-protected:
- oslThreadIdentifier m_id;
-
- void SAL_CALL run( )
- {
- ::osl::SocketAddr m_aTargetSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT10 );
- ::osl::ConnectorSocket m_aConnectorSocket;
-
- if (! m_aTargetSocketAddr.is())
- {
- t_print("# SocketAddr was NOT created successfully!\n");
- }
- else
- {
- t_print("start ReadSocketThread\n");
-
- TimeValue *pTimeout;
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 5;
- pTimeout->Nanosec = 0;
-
- m_aCondition.wait();
-
- t_print("connect()\n");
-
- oslSocketResult eResult = m_aConnectorSocket.connect( m_aTargetSocketAddr, pTimeout );
- if ( osl_Socket_Ok == eResult )
- {
- sal_Int32 nReadCount = m_aConnectorSocket.read( m_aValues.getWriteBuffer(), m_aValues.getBufferSize() );
- m_aValues.checkValues(nReadCount, m_nValue);
- }
- else
- {
- t_print("# ReadSocketThread: connect failed! \n");
- printSocketResult(eResult);
- }
-
- //remove this line for deadlock on solaris( margritte.germany )
- m_aConnectorSocket.close();
- free( pTimeout );
- }
- }
-
- void SAL_CALL onTerminated( )
- {
- //t_print("# normally terminate this thread %d!\n", m_id );
- }
-
-public:
- sal_Int32 getCount() {return m_aValues.getBufferSize();}
- bool isOk() {return m_aValues.isFailure() == true ? false : true;}
-
- ReadSocketThread(sal_Int32 _nBufferSize, int _nValue, osl::Condition &_aCond )
- : m_nValue( _nValue ),
- m_aCondition(_aCond)
- {
- t_print("#init ReadSocketThread\n");
- m_id = getIdentifier( );
-
- //t_print("# successfully creat this client thread %d!\n", m_id );
- m_aValues.createBuffer(_nBufferSize, 0);
- }
-
- ~ReadSocketThread( )
- {
- if ( isRunning( ) )
- t_print("# error: client thread not terminated.\n" );
- m_aValues.freeBuffer();
- }
-
-};
-
-/** Server Socket Thread, write a file which is large
- */
-class WriteSocketThread : public Thread
-{
- ValueCheckProvider m_aValues;
- osl::Condition &m_aCondition;
-
-protected:
- oslThreadIdentifier m_id;
-
- void SAL_CALL run( )
- {
- t_print("start WriteSocketThread\n");
- ::osl::AcceptorSocket asAcceptorSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT10 );
- if (! saLocalSocketAddr.is())
- {
- t_print("LocalSocketAddr was NOT created successfully!\n");
- }
-
- ::osl::StreamSocket ssStreamConnection;
-
- //if has not set this option, socket addr can not be binded in some time(maybe 2 minutes) by another socket
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- /// if the thread should terminate, schedule return false
- // while ( schedule( ) == sal_True )
- // {
- t_print("bind()\n");
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- if ( sal_True != bOK1 )
- {
- t_print("# WriteSocketThread: AcceptorSocket bind address failed. \n" ) ;
- }
- else
- {
- t_print("listen()\n");
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- if ( sal_True != bOK2 )
- {
- t_print("# WriteSocketThread: AcceptorSocket listen address failed. \n" ) ;
- }
- else
- {
-
- // blocking mode, if read/recv failed, block until success
- asAcceptorSocket.enableNonBlockingMode( sal_False);
- t_print("acceptConnection()\n");
- m_aCondition.set();
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection( ssStreamConnection );
- if (eResult != osl_Socket_Ok )
- {
- t_print("WriteSocketThread: acceptConnection failed! \n");
- }
- else
- {
-
- t_print("write()\n");
-
- ssStreamConnection.write( m_aValues.getBuffer(), m_aValues.getBufferSize() );
- t_print("done written.\n");
- }
- }
- }
- ssStreamConnection.close();
- asAcceptorSocket.close();
- }
-
- void SAL_CALL onTerminated( )
- {
- //t_print("# normally terminate this server thread %d!\n", m_id );
- }
-
-public:
- // public to check if data transmition is OK
- WriteSocketThread(sal_Int32 _nBufferSize, int _nValue, osl::Condition &_aCond )
- : m_aCondition(_aCond)
- {
- m_aCondition.reset();
-
- t_print("#init WriteSocketThread\n");
- m_id = getIdentifier( );
- //t_print("# successfully creat this server thread %d!\n", m_id );
-
- m_aValues.createBuffer(_nBufferSize, _nValue);
- }
-
- ~WriteSocketThread( )
- {
- if ( isRunning( ) )
- t_print("# error: server thread not terminated.\n" );
- m_aValues.freeBuffer();
- }
-};
-
-// -----------------------------------------------------------------------------
-
-namespace osl_StreamSocket
-{
-
- /** testing the methods:
- inline StreamSocket(oslAddrFamily Family = osl_Socket_FamilyInet,
- oslProtocol Protocol = osl_Socket_ProtocolIp,
- oslSocketType Type = osl_Socket_TypeStream);
-
- inline StreamSocket( const StreamSocket & );
-
- inline StreamSocket( oslSocket Socket , __sal_NoAcquire noacquire );
-
- inline StreamSocket( oslSocket Socket );
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
-
- void ctors_none()
- {
- /// Socket constructor.
- ::osl::StreamSocket ssSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_none constructor function: check if the stream socket was created successfully.",
- osl_Socket_TypeStream == ssSocket.getType( ) );
- }
-
- void ctors_acquire()
- {
- /// Socket constructor.
- ::osl::StreamSocket ssSocket( sHandle );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_acquire constructor function: check if the socket was created successfully",
- osl_Socket_TypeStream == ssSocket.getType( ) );
- }
-
- void ctors_no_acquire()
- {
- /// Socket constructor.
- ::osl::StreamSocket ssSocket( sHandle, SAL_NO_ACQUIRE );
-
- CPPUNIT_ASSERT_MESSAGE(" test for ctors_no_acquire constructor function: check if the socket was created successfully",
- osl_Socket_TypeStream == ssSocket.getType( ) );
- }
-
- void ctors_copy_ctor()
- {
- /// Socket constructor.
- ::osl::StreamSocket ssSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- /// Socket copy constructor.
- ::osl::StreamSocket copySocket( ssSocket );
-
- CPPUNIT_ASSERT_MESSAGE(" test for ctors_copy_ctor constructor function: create new Socket instance using copy constructor",
- osl_Socket_TypeStream == copySocket.getType( ) );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_none );
- CPPUNIT_TEST( ctors_acquire );
- CPPUNIT_TEST( ctors_no_acquire );
- CPPUNIT_TEST( ctors_copy_ctor );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class ctors
-
- class send_recv: public CppUnit::TestFixture
- {
- public:
- // initialization
- void setUp( )
- {
- }
-
- void tearDown( )
- {
-
- }
-
- void send_recv1()
- {
- osl::Condition aCondition;
- //client sent two strings, and server received, check the order and value
- ServerSocketThread myServerThread( aCondition );
- ClientSocketThread myClientThread( aCondition );
- myServerThread.create( );
- myClientThread.create( );
-
- //wait until the thread terminate
- myClientThread.join( );
- myServerThread.join( );
- sal_Char myStr[30] = "";
- strcat( myStr, pTestString1 );
- strcat( myStr, pTestString2 );
- sal_Int32 nRes = strcmp( myServerThread.pReadBuffer, myStr );
- CPPUNIT_ASSERT_MESSAGE(" test for send/recv with two threads: launch Server/Client threads, send data from client, check received data in Server thread.",
- nRes == 0 );
- }
-
- // error when recv
- void send_recv2()
- {
- ::osl::AcceptorSocket asAcceptorSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT9 );
- ::osl::StreamSocket ssStreamConnection;
- sal_Char pReadBuffer[30] = "";
-
- osl::Condition aCondition;
- aCondition.reset();
- ClientSocketThread myClientThread( aCondition );
- myClientThread.create( );
-
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 );
-
- asAcceptorSocket.bind( saLocalSocketAddr );
- asAcceptorSocket.listen( 1 );
- asAcceptorSocket.enableNonBlockingMode( sal_True );
- aCondition.set();
-
- asAcceptorSocket.acceptConnection( ssStreamConnection );
- sal_Int32 nReadNumber = ssStreamConnection.recv( pReadBuffer, 11 );
-
- myClientThread.join( ) ;
- ssStreamConnection.close();
- asAcceptorSocket.close();
- CPPUNIT_ASSERT_MESSAGE(" test for send/recv, recv error!", nReadNumber == -1 );
- }
-
- // LLA: This is a helper function, which create 2 threads, a server and a client.
- // the server writes the buffersize to the client.
-
- void write_read(sal_Int32 _nBufferSize, int _nValue)
- {
- //client sent two strings, and server received, check the order and value
- osl::Condition aCondition;
- WriteSocketThread myServerThread(_nBufferSize, _nValue, aCondition);
- ReadSocketThread myClientThread(_nBufferSize, _nValue, aCondition);
- myServerThread.create( );
-// thread_sleep( 1 );
- myClientThread.create( );
-
- //wait until the thread terminate
- myClientThread.join( );
- myServerThread.join( );
-
- //Maximum Packet Size is ( ARPANET, MILNET = 1007 Ethernet (10Mb) = 1500
- // Proteon PRONET = 2046), so here test read 4000 bytes
- sal_Int32 nLength = myClientThread.getCount();
- bool bIsOk = myClientThread.isOk(); // check if the values are right.
-
- t_print("Length:=%d\n", (int) nLength);
- t_print(" bIsOk:=%d\n", bIsOk);
-
- CPPUNIT_ASSERT_MESSAGE(" test for write/read values with two threads: send data from server, check readed data in client.",
- nLength == _nBufferSize && bIsOk == true);
- }
-
- // Tests with different values and sizes
- void write_read_001()
- {
- write_read(50, 10);
- }
- void write_read_002()
- {
- write_read(1024, 20);
- }
- void write_read_003()
- {
- write_read(4000, 1);
- }
- void write_read_004()
- {
- write_read(8192, 3);
- }
- void write_read_005()
- {
- write_read(32768, 3);
- }
-
- CPPUNIT_TEST_SUITE( send_recv );
- CPPUNIT_TEST( write_read_001 );
- CPPUNIT_TEST( write_read_002 );
- CPPUNIT_TEST( write_read_003 );
- CPPUNIT_TEST( write_read_004 );
- CPPUNIT_TEST( write_read_005 );
- CPPUNIT_TEST( send_recv1 );
- CPPUNIT_TEST( send_recv2 );
-// CPPUNIT_TEST( write_read );
- CPPUNIT_TEST_SUITE_END();
- }; // class send_recv
-
-// -----------------------------------------------------------------------------
-
- class SendClientThread : public Thread
- {
- protected:
- ::osl::SocketAddr m_saTargetSocketAddr;
- ::osl::ConnectorSocket m_csConnectorSocket;
- void SAL_CALL run( )
- {
- TimeValue *pTimeout;
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 5;
- pTimeout->Nanosec = 0;
-
- if ( osl_Socket_Ok == m_csConnectorSocket.connect( m_saTargetSocketAddr, pTimeout ))
- {
-#if !SILENT_TEST
- sal_Int32 nWrite1 =
-#endif
- m_csConnectorSocket.write( pTestString1, 11 ); // "test socket"
-#if !SILENT_TEST
- sal_Int32 nWrite2 =
-#endif
- m_csConnectorSocket.write( pTestString2, strlen( pTestString2 ) + 1 );
- thread_sleep( 2 );
- m_csConnectorSocket.write( pTestString2, strlen( pTestString2 ) + 1 );
- t_print("nWrite1 is %d, nWrite2 is %d\n", (int) nWrite1, (int) nWrite2 );
- //thread_sleep( 1 );
- }
- else
- t_print("# SendClientThread: connect failed! \n");
-
- m_csConnectorSocket.close();
- free( pTimeout );
- }
- public:
- SendClientThread( ):
- m_saTargetSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT9 ),
- m_csConnectorSocket( )
- {
- //t_print("# successfully creat this SendClientThread %d!\n", m_id );
- }
-
- ~SendClientThread( )
- {
- if ( isRunning( ) )
- t_print("# error: SendClientThread has not terminated.\n" );
- }
-
- };
-
- class shutdown: public CppUnit::TestFixture
- {
- public:
- // initialization
- void setUp( )
- {
- }
-
- void tearDown( )
- {
-
- }
-
- // similar to close_002
- void shutdown_001()
- {
-#if defined(LINUX)
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- AcceptorThread myAcceptorThread( asSocket, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")) );
- myAcceptorThread.create();
-
- thread_sleep( 1 );
-
- //when accepting, shutdown the socket, the thread will not block for accepting
- asSocket.shutdown();
- myAcceptorThread.join();
-
- CPPUNIT_ASSERT_MESSAGE( "test for close when is accepting: the socket will quit accepting status.",
- myAcceptorThread.isOK( ) == sal_True );
-#endif
- }
-
- void shutdown_002()
- {
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT9);
- asSocket.setOption( osl_Socket_OptionReuseAddr, 1 );
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: bind fail", asSocket.bind( saLocalSocketAddr ) == sal_True);
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: listen fail", asSocket.listen( 1 ) == sal_True );
- sal_Char pReadBuffer[40];
-// osl::Condition aCondition;
- SendClientThread mySendThread;
- mySendThread.create();
-
- asSocket.enableNonBlockingMode( sal_False );
- ::osl::StreamSocket ssConnectionSocket;
- oslSocketResult eResult = asSocket.acceptConnection( ssConnectionSocket );
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: acceptConnection fail", eResult == osl_Socket_Ok );
-
- /* set socket option SO_LINGER 0, so close immediatly */
- linger aLingerSet;
- sal_Int32 nBufferLen = sizeof( struct linger );
- aLingerSet.l_onoff = 0;
- aLingerSet.l_linger = 0;
-
- ssConnectionSocket.setOption( osl_Socket_OptionLinger, &aLingerSet, nBufferLen );
- thread_sleep( 1 );
- //sal_uInt32 nRecv1 = 0;
- sal_Int32 nRead1 = ssConnectionSocket.read( pReadBuffer, 11 );
-
- //shutdown read after client the first send complete
- ssConnectionSocket.shutdown( osl_Socket_DirRead );
-
- sal_Int32 nRead2 = ssConnectionSocket.read( pReadBuffer + nRead1, 12 );
- sal_Int32 nRead3 = ssConnectionSocket.read( pReadBuffer + nRead1 + nRead2, 12 );
- t_print("after read 2, nRead1 is %d, nRead2 is %d, nRead3 is %d \n", (int) nRead1, (int) nRead2, (int) nRead3 );
- mySendThread.join();
-
- ssConnectionSocket.close();
- asSocket.close();
-
- /* on Linux, if send is before shutdown(DirRead), can read, nRecv2 still > 0,
- http://dbforums.com/arch/186/2002/12/586417
- While on Solaris, after shutdown(DirRead), all read will return 0
- */
-#ifdef LINUX
- CPPUNIT_ASSERT_MESSAGE( "test for shutdown read direction: the socket can not read(recv).",
- nRead1 > 0 && nRead3 == 0 );
-#else
- CPPUNIT_ASSERT_MESSAGE( "test for shutdown read direction: the socket can not read(recv).",
- nRead1 > 0 && nRead2 == 0 && nRead3 == 0 );
-#endif
-
- }
-
- void shutdown_003()
- {
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("127.0.0.1")), IP_PORT_MYPORT9);
- asSocket.setOption( osl_Socket_OptionReuseAddr, 1 );
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: bind fail", asSocket.bind( saLocalSocketAddr ) == sal_True);
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: listen fail", asSocket.listen( 1 ) == sal_True );
- sal_Char pReadBuffer[40];
- osl::Condition aCondition;
- SendClientThread mySendThread;
- mySendThread.create();
-
- asSocket.enableNonBlockingMode( sal_False );
- ::osl::StreamSocket ssConnectionSocket;
- oslSocketResult eResult = asSocket.acceptConnection( ssConnectionSocket );
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: acceptConnection fail", eResult == osl_Socket_Ok );
-
- thread_sleep( 1 );
- //shutdown write after client the first send complete
- ssConnectionSocket.shutdown( osl_Socket_DirWrite );
-
- // recv should not shutdown
- sal_Int32 nRead1 = ssConnectionSocket.read( pReadBuffer, 11 );
-
- sal_Int32 nWrite = ssConnectionSocket.write( pReadBuffer, 11 );
- // still can read
- sal_Int32 nRead3 = ssConnectionSocket.read( pReadBuffer + nRead1 , 12 );
- t_print("after read 2, nRead1 is %d, nWrite is %d, nRead3 is %d\n", (int) nRead1, (int) nWrite, (int) nRead3 );
- mySendThread.join();
- ssConnectionSocket.close();
- asSocket.close();
-
- CPPUNIT_ASSERT_MESSAGE( "test for shutdown read direction: the socket can not send(write).",
- nRead1 > 0 && nWrite == 0 && nRead3 > 0);
-
- }
-
- CPPUNIT_TEST_SUITE( shutdown );
- CPPUNIT_TEST( shutdown_001 );
- CPPUNIT_TEST( shutdown_002 );
- CPPUNIT_TEST( shutdown_003 );
- CPPUNIT_TEST_SUITE_END();
- }; // class shutdown
-
- class isExceptionPending: public CppUnit::TestFixture
- {
- public:
- void isExPending_001()
- {
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- TimeValue *pTimeout;
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- sal_Bool bOk = asSocket.isExceptionPending( pTimeout );
- free( pTimeout );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isExceptionPending.",
- bOk == sal_False );
- }
-
- /**tester's comments: lack of a case that return sal_True, do not know when it will return sal_True*/
-
-
- CPPUNIT_TEST_SUITE( isExceptionPending );
- CPPUNIT_TEST( isExPending_001 );
- CPPUNIT_TEST_SUITE_END();
- }; // class isExceptionPending
-
-// -----------------------------------------------------------------------------
-/** Client Socket Thread, served as a temp little client to communicate with server.
- */
-
-#define IP_PORT_TEST 8900
-
- class ReadSocket2Thread : public Thread
- {
- osl::Condition &m_aCondition;
- char* m_pBuffer;
- sal_Int32 m_nBufferSize;
- sal_Int32 m_nReadCount;
- rtl::OString m_sAddr;
-
- bool m_bOk;
-
- void setFailed()
- {
- m_bOk = false;
- }
-
- protected:
- oslThreadIdentifier m_id;
-
- void read()
- {
- if (m_sAddr.getLength() == 0)
- {
- setFailed();
- return;
- }
-
- // 10.16.66.252
- ::osl::SocketAddr aSocketAddr( rtl::OUString::createFromAscii(m_sAddr.getStr()), IP_PORT_TEST );
- ::osl::ConnectorSocket aSocket; // ( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
-
- aSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True;
-
- m_aCondition.wait();
- t_print("wait done\n");
-
- TimeValue *pTimeout;
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 20;
- pTimeout->Nanosec = 0;
-
-
- // blocking mode, if read/recv failed, block until success
- t_print("enableNonBlockingMode(false)\n");
- aSocket.enableNonBlockingMode( sal_False );
-
-
- t_print("connect()\n");
- oslSocketResult eResult = aSocket.connect( aSocketAddr, pTimeout );
- if ( osl_Socket_Ok == eResult)
- {
- if (m_pBuffer)
- {
- t_print("read()\n");
- m_nReadCount = aSocket.read( m_pBuffer, m_nBufferSize );
- t_print("%d bytes recived.\n", (int) m_nReadCount);
- }
- }
- else
- {
- t_print("# ReadSocket2Thread: connect failed! \n");
- printSocketResult(eResult);
- setFailed();
- }
-
- //remove this line for deadlock on solaris( margritte.germany )
- aSocket.close();
- free( pTimeout );
- }
-
- void SAL_CALL run( )
- {
- read();
- }
-
- void SAL_CALL onTerminated( )
- {
- //t_print("# normally terminate this thread %d!\n", m_id );
- }
-
- public:
- sal_Int32 getCount() {return m_nReadCount;}
- bool isOk() {return m_nReadCount == 0 ? false : true;}
- bool getFailed() {return m_bOk == false ? true : false;}
-
- ReadSocket2Thread(osl::Condition &_aCondition)
- :m_aCondition(_aCondition),
- m_nReadCount(0),
- m_bOk( true )
- {
- m_aCondition.reset();
- m_pBuffer = (char*) malloc(1024);
- if (m_pBuffer)
- {
- m_nBufferSize = 1024;
- }
-
- m_id = getIdentifier( );
- //t_print("# successfully creat this client thread %d!\n", m_id );
- }
-
- void setAddr(rtl::OString const& _sAddr)
- {
- m_sAddr = _sAddr;
- }
-
- ~ReadSocket2Thread( )
- {
- if ( isRunning( ) )
- t_print("# error: client thread not terminated.\n" );
- free(m_pBuffer);
- }
-
- };
-
- // -----------------------------------------------------------------------------
-
- class justtest : public CppUnit::TestFixture
- {
- void send_Acceptor(rtl::OString const& _sAddr, osl::Condition &)
- {
- ::osl::AcceptorSocket aSocket; // ( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr aSocketAddr;
-
- if (! aSocketAddr.setPort(IP_PORT_TEST))
- {
- t_print("# cant set port\n" );
- }
-
- if (! aSocketAddr.setHostname(rtl::OUString::createFromAscii(_sAddr.getStr())))
- {
- t_print("# cant set hostname/ip\n" );
- }
-
- rtl::OUString aHostname = aSocketAddr.getHostname();
- aSocketAddr.getPort();
-
-
- //if has not set this option, socket addr can not be binded in some time(maybe 2 minutes) by another socket
- aSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- /// if the thread should terminate, schedule return false
- // while ( schedule( ) == sal_True )
- // {
- if (! aSocket.bind( aSocketAddr ))
- {
- t_print("# can't bind.\n" );
- }
- if (! aSocket.listen( ))
- {
- t_print("# can't listen. \n" );
- }
-
- // blocking mode, if read/recv failed, block until success
- aSocket.enableNonBlockingMode( sal_False);
- ::osl::StreamSocket ssStreamConnection;
-
- oslSocketResult eResult = aSocket.acceptConnection( ssStreamConnection );
- if (eResult != osl_Socket_Ok )
- {
- t_print("WriteSocketThread: acceptConnection failed! \n");
- // break;
- }
- char const * pBuffer = "Test String\n";
- sal_Int32 nBufferSize = strlen(pBuffer);
- ssStreamConnection.write( pBuffer, nBufferSize );
- // break;
- // }
-
- // ssStreamConnection.close();
- aSocket.close();
- }
-
- // -----------------------------------------------------------------------------
-
- void send_Connector(rtl::OString const& _sAddr, osl::Condition &/*_aCondition*/ )
- {
- ::osl::ConnectorSocket aSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr aSocketAddr( rtl::OUString::createFromAscii(_sAddr.getStr()), IP_PORT_TEST );
-
- if (! aSocketAddr.is())
- {
- t_print("is failed.\n");
- return;
- }
-
- //if has not set this option, socket addr can not be binded in some time(maybe 2 minutes) by another socket
- aSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True;
-
- oslSocketResult aResult = aSocket.connect( aSocketAddr );
- if ( aResult != osl_Socket_Ok )
- {
- t_print("# send_Connector: connect failed. \n" );
- }
- else
- {
- // blocking mode, if read/recv failed, block until success
-// aSocket.enableNonBlockingMode( sal_False );
-
-// _aCondition.set();
-
- ::osl::StreamSocket ssStreamConnection(aSocket);
-
- char const * pBuffer = "GET / HTTP/1.0\015\012\015\012";
- sal_Int32 nBufferSize = strlen(pBuffer);
- ssStreamConnection.write( pBuffer, nBufferSize );
-
- char *pBufferPeek = (char*) malloc(1024);
- sal_Int32 nReadNumber = ssStreamConnection.recv( pBufferPeek, 1024, osl_Socket_MsgPeek);
- free(pBufferPeek);
-
- char *pBuffer2 = (char*) malloc(nReadNumber + 1);
- sal_Int32 nReadNumberReal = ssStreamConnection.read( pBuffer2, nReadNumber );
- pBuffer2[nReadNumberReal] = '\0';
-
- t_print("received: %s\n", pBuffer2);
-
- rtl::OUString suError = ssStreamConnection.getErrorAsString();
- free(pBuffer2);
- // ssStreamConnection.close();
-
- // ssStreamConnection.close();
- }
- aSocket.shutdown(osl_Socket_DirReadWrite);
- aSocket.close();
- }
-
-
- public:
-// LLA: orig void send_recv()
-// LLA: orig {
-// LLA: orig if ( ifAvailable(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("margritte.germany"))) == sal_True )
-// LLA: orig t_print("margritte is alive ! \n");
-// LLA: orig if ( ifAvailable(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("10.16.66.252"))) == sal_False )
-// LLA: orig {
-// LLA: orig t_print("ip 10.16.66.252 is not alive! \n");
-// LLA: orig return;
-// LLA: orig }
-// LLA: orig ReadSocket2Thread myReadThread;
-// LLA: orig myReadThread.create();
-// LLA: orig
-// LLA: orig thread_sleep( 2 );
-// LLA: orig // send_Acceptor();
-// LLA: orig send_Connector();
-// LLA: orig
-// LLA: orig myReadThread.join();
-// LLA: orig
-// LLA: orig // statistics
-// LLA: orig sal_uInt32 nLength = myReadThread.getCount();
-// LLA: orig bool bIsOk = myReadThread.isOk(); // check if the values are right.
-// LLA: orig
-// LLA: orig t_print("Length:=%d\n", nLength);
-// LLA: orig t_print(" bIsOk:=%d\n", bIsOk);
-// LLA: orig }
-
- // -----------------------------------------------------------------------------
-
- // LLA: send_Connector_2_margritte works, it send strings to echo server on margritte
- // but can not receive anything
-
- void send_Connector_2_margritte(rtl::OString const& _sAddr)
- {
- ::osl::ConnectorSocket aSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr aSocketAddr( rtl::OUString::createFromAscii(_sAddr.getStr()), IP_PORT_TEST );
-
- //if has not set this option, socket addr can not be binded in some time(maybe 2 minutes) by another socket
- aSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True;
-
- oslSocketResult aResult = aSocket.connect( aSocketAddr );
- if ( aResult != osl_Socket_Ok )
- {
- t_print("# connect failed. \n" );
- }
- else
- {
- // blocking mode, if read/recv failed, block until success
- aSocket.enableNonBlockingMode( sal_False );
-
- ::osl::StreamSocket ssStreamConnection(aSocket);
-
- char const * pBuffer = "Test String\n";
- sal_Int32 nBufferSize = strlen(pBuffer);
- ssStreamConnection.write( pBuffer, nBufferSize );
-
- char const * pBuffer3 = "quit\n";
- nBufferSize = strlen(pBuffer3);
- ssStreamConnection.write( pBuffer3, nBufferSize );
-
- ssStreamConnection.close();
- }
- aSocket.close();
- }
-
- void send_recv_2_margritte()
- {
- rtl::OString sAddr;
- sAddr = "margritte.germany.sun.com";
- if ( ifAvailable(rtl::OUString::createFromAscii(sAddr.getStr())) == sal_True )
- {
- t_print("found %s!\n", sAddr.getStr());
- }
- send_Connector_2_margritte(sAddr);
- }
-
- // -----------------------------------------------------------------------------
-
- void send_recv()
- {
- rtl::OString sAddr;
- // if ( ifAvailable(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("margritte.germany"))) == sal_True )
- // {
- // t_print("margritte is alive ! \n");
- // sAddr = "margritte.germany";
- // }
-
- sAddr = "margritte.germany.sun.com";
- if ( ifAvailable(rtl::OUString::createFromAscii(sAddr.getStr())) == sal_True )
- {
- t_print("found %s!\n", sAddr.getStr());
- }
-// else
-// {
-// if ( ifAvailable(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("192.168.7.2"))) == sal_True )
-// {
-// sAddr = "192.168.7.2";
-// t_print("moon found ! \n");
-// }
-// else
-// {
-// if ( ifAvailable(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("moon.linux.bogus"))) == sal_True )
-// {
-// sAddr = "moon.linux.bogus";
-// t_print("moon found ! \n");
-// }
-// else
-// {
-// if ( ifAvailable(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("moon"))) == sal_True )
-// {
-// sAddr = "moon";
-// t_print("moon found ! \n");
-// }
-// }
-// }
-// }
-
- // if ( ifAvailable(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("10.16.64.196"))) == sal_False )
- // {
- // t_print("ip 10.16.64.196 is not alive! \n");
- // return;
- // }
-
- osl::Condition aCondition;
- ReadSocket2Thread myReadThread(aCondition);
- myReadThread.setAddr(sAddr);
-// myReadThread.create();
-
- thread_sleep( 2 );
- if (! myReadThread.getFailed())
- {
- // send_Acceptor(sAddr, aCondition);
- send_Connector(sAddr, aCondition);
-
- thread_sleep( 2 );
- if (myReadThread.isRunning())
- {
- myReadThread.join();
- }
- // termAndJoinThread(&myReadThread);
-
- // statistics
-#if !SILENT_TEST
- sal_uInt32 nLength =
-#endif
- myReadThread.getCount();
-
-#if !SILENT_TEST
- bool bIsOk =
-#endif
- myReadThread.isOk(); // check if the values are right.
-
- t_print("Length:=%d\n", (int) nLength);
- t_print(" bIsOk:=%d\n", bIsOk);
- }
- else
- {
- t_print("ERROR: No echo Server on %s found.\n", sAddr.getStr());
- }
- }
-
-
- void getPage(rtl::OString const& _sAddr);
- void test_getPage()
- {
- // rtl::OString sPage("lla-1.germany.sun.com");
- // getPage(sPage);
-
- rtl::OString sPage("lla-1");
- getPage(sPage);
- }
-
- CPPUNIT_TEST_SUITE( justtest );
- CPPUNIT_TEST( send_recv );
- CPPUNIT_TEST( test_getPage );
- CPPUNIT_TEST_SUITE_END();
- }; // class isExceptionPending
-
-
- void justtest::getPage(rtl::OString const& _sAddr)
- {
- rtl::OUString suAddr = rtl::OUString::createFromAscii(_sAddr.getStr());
- ::osl::ConnectorSocket aSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr aSocketAddr( suAddr, 80 );
-
- {
- // some checks
- aSocketAddr.getPort();
- oslSocketResult aResult;
- rtl::ByteSequence aSeq = aSocketAddr.getAddr(&aResult);
- if (aResult != osl_Socket_Ok)
- {
- t_print("problem with getAddr: ");
- printSocketResult(aResult);
- }
-
- rtl::OUString sStr = aSocketAddr.getHostname(&aResult);
- if (aResult != osl_Socket_Ok)
- {
- t_print("problem with hostname: ");
- printSocketResult(aResult);
- }
- }
-
- oslSocketResult aResult;
-
- // SocketAddr::resolveHostname(suAddr, aSocketAddr);
- // if (! aSocketAddr.is())
- // {
- // t_print("Can't resolve Hostname.\n");
- // return;
- // }
- // rtl::OUString sStr = aSocketAddr.getHostname(&aResult);
- // if (aResult != osl_Socket_Ok)
- // {
- // t_print("problem with hostname: ");
- // printSocketResult(aResult);
- //
- // }
-
- if (! aSocketAddr.is())
- {
- t_print("SocketAddr::is() failed.\n");
- return;
- }
-
- //if has not set this option, socket addr can not be binded in some time(maybe 2 minutes) by another socket
- aSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True;
-
- aResult = aSocket.connect( aSocketAddr );
- if ( aResult != osl_Socket_Ok )
- {
- t_print("# send_Connector: connect failed. \n" );
- }
- else
- {
- // blocking mode, if read/recv failed, block until success
-// aSocket.enableNonBlockingMode( sal_False );
-
-// _aCondition.set();
-
- ::osl::StreamSocket ssStreamConnection(aSocket);
-
- char const * pBuffer = "GET / HTTP/1.0\015\012\015\012";
- sal_Int32 nBufferSize = strlen(pBuffer);
- ssStreamConnection.write( pBuffer, nBufferSize );
-
-
- char *pBufferPeek = (char*) malloc(1024);
- sal_Int32 nReadNumber = 1;
- while ( nReadNumber != 0)
- {
- nReadNumber = ssStreamConnection.recv( pBufferPeek, 1024, osl_Socket_MsgPeek);
- if (nReadNumber > 0)
- {
- char *pBuffer2 = (char*) malloc(nReadNumber + 1);
- sal_Int32 nReadNumberReal = ssStreamConnection.read( pBuffer2, nReadNumber );
- pBuffer2[nReadNumberReal] = '\0';
- t_print("%s", pBuffer2);
- free(pBuffer2);
- }
- }
- free(pBufferPeek);
-
- rtl::OUString suError = ssStreamConnection.getErrorAsString();
- }
- aSocket.shutdown(osl_Socket_DirReadWrite);
- aSocket.close();
- }
-
-// -----------------------------------------------------------------------------
-
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_StreamSocket::ctors);
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_StreamSocket::send_recv);
-// CPPUNIT_TEST_SUITE_REGISTRATION(osl_StreamSocket::shutdown);
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_StreamSocket::isExceptionPending);
-
-// CPPUNIT_TEST_SUITE_REGISTRATION(osl_StreamSocket::justtest);
-
-} // namespace osl_StreamSocket
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/osl_StreamSocket.xsce b/sal/qa/osl/socket/osl_StreamSocket.xsce
deleted file mode 100644
index 9c9513969..000000000
--- a/sal/qa/osl/socket/osl_StreamSocket.xsce
+++ /dev/null
@@ -1,4 +0,0 @@
-osl_StreamSocket.send_recv.send_recv2
-osl_StreamSocket.send_recv.write_read_001 wntmsci unxsols
-osl_StreamSocket.justtest.test_getPage wntmsci
-
diff --git a/sal/qa/osl/socket/sockethelper.cxx b/sal/qa/osl/socket/sockethelper.cxx
deleted file mode 100644
index 3b0066719..000000000
--- a/sal/qa/osl/socket/sockethelper.cxx
+++ /dev/null
@@ -1,340 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-#include "sockethelper.hxx"
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#if OSL_DEBUG_LEVEL > 0
-# define SILENT_TEST 0
-#else
-# define SILENT_TEST 1
-#endif
-
-#if SILENT_TEST
-# define t_print(...) { }
-#else
-# define t_print printf
-#endif
-
-//------------------------------------------------------------------------
-// Ip version definition
-//------------------------------------------------------------------------
-#define IP_VER 4 /// currently only IPv4 is considered.
-
-//------------------------------------------------------------------------
-// helper functions
-//------------------------------------------------------------------------
-
-/** compare two OUString.
-*/
-sal_Bool compareUString( const ::rtl::OUString & ustr1, const ::rtl::OUString & ustr2 )
-{
- sal_Bool bOk = ustr1.equalsIgnoreAsciiCase( ustr2 );
-
- return bOk;
-}
-
-/** compare a OUString and an ASCII string.
-*/
-sal_Bool compareUString( const ::rtl::OUString & ustr, const sal_Char *astr )
-{
- ::rtl::OUString ustr2 = rtl::OUString::createFromAscii( astr );
- sal_Bool bOk = ustr.equalsIgnoreAsciiCase( ustr2 );
-
- return bOk;
-}
-
-/** compare two socket address.
-*/
-sal_Bool compareSocketAddr( const ::osl::SocketAddr & addr1 , const ::osl::SocketAddr & addr2 )
-{
- return ( ( sal_True == compareUString( addr1.getHostname( 0 ), addr2.getHostname( 0 ) ) ) && ( addr2.getPort( ) == addr2.getPort( ) ) );
-}
-
-/** print a UNI_CODE String. And also print some comments of the string.
-*/
-void printUString( const ::rtl::OUString & str, const char* msg)
-{
-#if SILENT_TEST
- (void)str;
- (void)msg;
-#else
- t_print("#%s #printUString_u# ", msg );
- rtl::OString aString;
- aString = ::rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US );
- t_print("%s\n", aString.getStr( ) );
-#endif
-}
-
-/** get the local host name.
- mindy: gethostbyname( "localhost" ), on Linux, it returns the hostname in /etc/hosts + domain name,
- if no entry in /etc/hosts, it returns "localhost" + domain name
-*/
-::rtl::OUString getHost( void )
-{
- struct hostent *hptr;
-
- hptr = gethostbyname( "localhost" );
- OSL_ENSURE( hptr != NULL, "#In getHostname function, error on gethostbyname()" );
- ::rtl::OUString aUString = ::rtl::OUString::createFromAscii( (const sal_Char *) hptr->h_name );
-
- return aUString;
-}
-
-/** get the full host name of the current processor, such as "aegean.prc.sun.com" --mindyliu
-*/
-::rtl::OUString getThisHostname( void )
-{
- ::rtl::OUString aUString;
-#ifdef WNT
- struct hostent *hptr;
- hptr = gethostbyname( "localhost" );
- OSL_ENSURE( hptr != NULL, "#In getHostname function, error on gethostbyname()" );
- rtl::OString sHostname(hptr->h_name);
- aUString = ::rtl::OStringToOUString(sHostname, RTL_TEXTENCODING_ASCII_US);
-#else
- char hostname[255];
- if (gethostname(hostname, 255) != 0) {
- OSL_FAIL( "#Error: gethostname failed." );
- }
-
- struct hostent *hptr;
- //first search /ets/hosts, then search from dns
- hptr = gethostbyname( hostname);
- if ( hptr != NULL )
- {
- strcpy( hostname, hptr->h_name );
- }
-
- t_print("hostname is %s \n", hostname );
- rtl::OString sHostname( hostname );
- aUString = ::rtl::OStringToOUString( sHostname, RTL_TEXTENCODING_ASCII_US );
- aUString.getLength();
-#endif
- return aUString;
-}
-
-/** get IP by name, search /etc/hosts first, then search from dns, fail return OUString("")
-*/
-::rtl::OUString getIPbyName( rtl::OString const& str_name )
-{
- ::rtl::OUString aUString;
- struct hostent *hptr;
- //first search /ets/hosts, then search from dns
- hptr = gethostbyname( str_name.getStr());
- if ( hptr != NULL )
- {
- struct in_addr ** addrptr;
- addrptr = (struct in_addr **) hptr->h_addr_list ;
- //if there are more than one IPs on the same machine, we select one
- for (; *addrptr; addrptr++)
- {
- t_print("#Local IP Address: %s\n", inet_ntoa(**addrptr));
- aUString = ::rtl::OUString::createFromAscii( (sal_Char *) (inet_ntoa(**addrptr)) );
- }
- }
- return aUString;
-}
-
-/** get local ethernet IP
-*/
-::rtl::OUString getLocalIP( )
-{
- char hostname[255];
- gethostname(hostname, 255);
-
- return getIPbyName( hostname );
-}
-
-/** construct error message
-*/
-::rtl::OUString outputError( const ::rtl::OUString & returnVal, const ::rtl::OUString & rightVal, const sal_Char * msg )
-{
- ::rtl::OUString aUString;
- if ( returnVal.equals( rightVal ) )
- return aUString;
- aUString += ::rtl::OUString::createFromAscii(msg);
- aUString += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(": the returned value is '"));
- aUString += returnVal;
- aUString += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("', but the value should be '"));
- aUString += rightVal;
- aUString += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("'."));
- return aUString;
-}
-
-/** wait _nSec seconds.
-*/
-void thread_sleep( sal_Int32 _nSec )
-{
- /// print statement in thread process must use fflush() to force display.
- // printf("wait %d seconds. ", _nSec );
- // fflush(stdout);
-
-#ifdef WNT //Windows
- Sleep( _nSec * 100 );
-#endif
-#if ( defined UNX ) //Unix
- usleep(_nSec * 100000);
-#endif
- // t_print("# done\n" );
-}
-
-/** print Boolean value.
-*/
-void printBool( sal_Bool bOk )
-{
-#if SILENT_TEST
- (void)bOk;
-#else
- t_print("#printBool# " );
- t_print ("%s", (sal_True == bOk) ? "YES!\n" : "NO!\n");
-#endif
-}
-
-/** print content of a ByteSequence.
-*/
-void printByteSequence_IP( const ::rtl::ByteSequence & bsByteSeq, sal_Int32 nLen )
-{
-#if SILENT_TEST
- (void)bsByteSeq;
- (void)nLen;
-#else
- t_print("#ByteSequence is: " );
- for ( int i = 0; i < nLen; i++ ){
- if ( bsByteSeq[i] < 0 )
- t_print("%d ", 256 + bsByteSeq[i] );
- else
- t_print("%d ", bsByteSeq[i] );
- }
- t_print(" .\n" );
-#endif
-}
-
-/** convert an IP which is stored as a UString format to a ByteSequence array for later use.
-*/
-::rtl::ByteSequence UStringIPToByteSequence( ::rtl::OUString aUStr )
-{
-
- rtl::OString aString = ::rtl::OUStringToOString( aUStr, RTL_TEXTENCODING_ASCII_US );
- const sal_Char *pChar = aString.getStr( ) ;
- sal_Char tmpBuffer[4];
- sal_Int32 nCharCounter = 0;
- ::rtl::ByteSequence bsByteSequence( IP_VER );
- sal_Int32 nByteSeqCounter = 0;
-
- for ( int i = 0; i < aString.getLength( ) + 1 ; i++ )
- {
- if ( ( *pChar != '.' ) && ( i !=aString.getLength( ) ) )
- tmpBuffer[nCharCounter++] = *pChar;
- else
- {
- tmpBuffer[nCharCounter] = '\0';
- nCharCounter = 0;
- bsByteSequence[nByteSeqCounter++] = static_cast<sal_Int8>(atoi( tmpBuffer ));
- }
- pChar++;
- }
- return bsByteSequence;
-}
-
-/** print a socket result name.
-*/
-void printSocketResult( oslSocketResult eResult )
-{
- t_print("printSocketResult: " );
- if (!eResult)
- switch (eResult)
- {
- case osl_Socket_Ok:
- t_print("client connected\n");
- break;
- case osl_Socket_Error:
- t_print("got an error ... exiting\r\n\r\n" );
- break;
- case osl_Socket_TimedOut:
- t_print("timeout\n");
- break;
- case osl_Socket_Interrupted:
- t_print("interrupted\n");
- break;
- case osl_Socket_InProgress:
- t_print("in progress\n");
- break;
- default:
- t_print("unknown result\n");
- break;
- }
-}
-
-/** if 4 parts of an IP addr are equal to specified values
-*/
-sal_Bool ifIpv4is( const ::rtl::ByteSequence Ipaddr, sal_Int8 seq1, sal_Int8 seq2, sal_Int8 seq3, sal_Int8 seq4 )
-{
- if ( ( Ipaddr[0] == seq1 ) && ( Ipaddr[1] == seq2 ) && ( Ipaddr[2] == seq3 ) && ( Ipaddr[3] == seq4 ) )
- return sal_True;
- return sal_False;
-}
-
-sal_Bool ifAvailable( rtl::OUString const& strAddrOrHostName )
-{
- ::osl::ConnectorSocket aSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr aSocketAddr( strAddrOrHostName, 7 );
-
- if (! aSocketAddr.is())
- {
- aSocket.close();
- return sal_False;
- }
-
- aSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True;
-
- TimeValue *pTimeout;
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
-
- oslSocketResult aResult = aSocket.connect( aSocketAddr, pTimeout );
- free( pTimeout );
- aSocket.close();
- if ( aResult != osl_Socket_Ok )
- {
- t_print("Error: ");
- printSocketResult(aResult);
- t_print("\n");
-
- return sal_False;
- }
- return sal_True;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/sockethelper.hxx b/sal/qa/osl/socket/sockethelper.hxx
deleted file mode 100644
index 77553bda3..000000000
--- a/sal/qa/osl/socket/sockethelper.hxx
+++ /dev/null
@@ -1,168 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SOCKETHELPER_HXX_
-#define _SOCKETHELPER_HXX_
-
-#include <sal/types.h>
-#include <rtl/textenc.h>
-#include <rtl/ustring.hxx>
-#include <rtl/ustring.h>
-
-#include <osl/socket.hxx>
-#include <osl/socket.h>
-
-#include <osl/thread.hxx>
-
-#include <osl/file.hxx>
-
-#include <osl/mutex.hxx>
-#include <osl/time.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-//------------------------------------------------------------------------
-// OS dependent declaration and includes
-//------------------------------------------------------------------------
-#if ( defined UNX ) //Unix
-
-#include <unistd.h>
-#include <limits.h>
-#include <string.h>
-#include <math.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <sys/statfs.h>
-#include <sys/statvfs.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <sys/wait.h>
-#endif
-
-#ifndef _OSL_SOCKET_CONST_H_
-
-#if ( defined WNT ) // Windows
-#include <winsock.h>
-#include <string.h>
-#endif
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-/** test output if SILENT_TEST is 0
-*/
-#if OSL_DEBUG_LEVEL > 0
-# define SILENT_TEST 0
-#else
-# define SILENT_TEST 1
-#endif
-
-#if SILENT_TEST
-# define t_print(...) { }
-#else
-# define t_print printf
-#endif
-
-/** convert UString and OUString to std::string
-*/
-#define STD_STRING(s) (std::string((const char *)s.getStr()))
-
-/** compare two OUString.
-*/
-sal_Bool compareUString( const ::rtl::OUString & ustr1, const ::rtl::OUString & ustr2 );
-/** compare a OUString and an ASCII string.
-*/
-sal_Bool compareUString( const ::rtl::OUString & ustr, const sal_Char *astr );
-/** compare two socket address.
-*/
-sal_Bool compareSocketAddr( const ::osl::SocketAddr & addr1 , const ::osl::SocketAddr & addr2 );
-//char * oustring2char( const ::rtl::OUString & str );
-/** print a UNI_CODE String. And also print some comments of the string.
-*/
-void printUString( const ::rtl::OUString & str, const char * msg = "" );
-/** get the local host name.
- mindy: gethostbyname( "localhost" ), on Linux, it returns the hostname in /etc/hosts + domain name,
- if no entry in /etc/hosts, it returns "localhost" + domain name
-*/
-::rtl::OUString getHost( void );
-/** get the full host name of the current processor, such as "aegean.prc.sun.com" --mindyliu
-*/
-::rtl::OUString getThisHostname( void );
-/** get IP by name, search /etc/hosts first, then search from dns, fail return OUString("")
-*/
-::rtl::OUString getIPbyName( rtl::OString const& str_name );
-/** get local ethernet IP
-*/
-::rtl::OUString getLocalIP( );
-/** construct error message
-*/
-::rtl::OUString outputError( const ::rtl::OUString & returnVal, const ::rtl::OUString & rightVal, const sal_Char * msg = "");
-void thread_sleep( sal_Int32 _nSec );
-/** print Boolean value.
-*/
-void printBool( sal_Bool bOk );
-/** print content of a ByteSequence.
-*/
-void printByteSequence_IP( const ::rtl::ByteSequence & bsByteSeq, sal_Int32 nLen );
-/** convert an IP which is stored as a UString format to a ByteSequence array for later use.
-*/
-::rtl::ByteSequence UStringIPToByteSequence( ::rtl::OUString aUStr );
-/** print a socket result name.
-*/
-void printSocketResult( oslSocketResult eResult );
-/** if 4 parts of an IP addr are equal to specified values
-*/
-sal_Bool ifIpv4is( const ::rtl::ByteSequence Ipaddr, sal_Int8 seq1, sal_Int8 seq2, sal_Int8 seq3, sal_Int8 seq4 );
-/** if the IP or hostname is availble( alive )
-*/
-//sal_Bool ifAvailable( const char * stringAddrOrHostName );
-sal_Bool ifAvailable( rtl::OUString const& strAddrOrHostName );
-/*
-class ClientSocketThread : public Thread
-class ServerSocketThread : public Thread
-class ValueCheckProvider
-class ClientReadSocketThread : public Thread
-class ServerWriteSocketThread : public Thread
-class AcceptorThread : public Thread
-class CloseSocketThread : public Thread
-
-*/
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/thread/makefile.mk b/sal/qa/osl/thread/makefile.mk
deleted file mode 100644
index 949fe0b0e..000000000
--- a/sal/qa/osl/thread/makefile.mk
+++ /dev/null
@@ -1,49 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ := ..$/..$/..
-PRJNAME := sal
-TARGET := qa_osl_thread
-
-ENABLE_EXCEPTIONS := TRUE
-
-.INCLUDE: settings.mk
-
-DLLPRE = # no leading "lib" on .so files
-
-SHL1TARGET = $(TARGET)
-SHL1OBJS = $(SLO)$/test_thread.obj
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
-SHL1IMPLIB = i$(SHL1TARGET)
-DEF1NAME = $(SHL1TARGET)
-
-SLOFILES = $(SHL1OBJS)
-
-.INCLUDE: target.mk
-
-.INCLUDE: $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/osl/thread/test_thread.cxx b/sal/qa/osl/thread/test_thread.cxx
deleted file mode 100644
index 78baa4a64..000000000
--- a/sal/qa/osl/thread/test_thread.cxx
+++ /dev/null
@@ -1,94 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include "sal/config.h"
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-#include "osl/conditn.hxx"
-#include "osl/thread.hxx"
-#include "osl/time.h"
-#include "sal/types.h"
-
-namespace {
-
-osl::Condition global;
-
-class Thread: public osl::Thread {
-public:
- explicit Thread(osl::Condition & cond): m_cond(cond) {}
-
-private:
- virtual void SAL_CALL run() {}
-
- virtual void SAL_CALL onTerminated() {
- m_cond.set();
- CPPUNIT_ASSERT_EQUAL(osl::Condition::result_ok, global.wait());
- }
-
- osl::Condition & m_cond;
-};
-
-class Test: public CppUnit::TestFixture {
-public:
- // Nondeterministic, best effort test that an osl::Thread can be destroyed
- // (and in particular osl_destroyThread---indirectly---be called) before the
- // corresponding thread has terminated:
- void test() {
- for (int i = 0; i < 50; ++i) {
- osl::Condition c;
- Thread t(c);
- CPPUNIT_ASSERT(t.create());
- // Make sure virtual Thread::run/onTerminated are called before
- // Thread::~Thread:
- CPPUNIT_ASSERT_EQUAL(osl::Condition::result_ok, c.wait());
- }
- // Make sure Thread::~Thread is called before each spawned thread
- // terminates:
- global.set();
- // Give the spawned threads enough time to terminate:
- TimeValue const twentySeconds = { 20, 0 };
- osl::Thread::wait(twentySeconds);
- }
-
- CPPUNIT_TEST_SUITE(Test);
- CPPUNIT_TEST(test);
- CPPUNIT_TEST_SUITE_END();
-};
-
-CPPUNIT_TEST_SUITE_REGISTRATION(Test);
-
-}
-
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/alloc/makefile.mk b/sal/qa/rtl/alloc/makefile.mk
deleted file mode 100755
index 1a015da3b..000000000
--- a/sal/qa/rtl/alloc/makefile.mk
+++ /dev/null
@@ -1,63 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..$/..
-
-PRJNAME=sal
-TARGET=qa_rtl_alloc
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-.IF "$(OS)" == "IOS"
-CFLAGSCXX += -DCPPUNIT_PLUGIN_EXPORTED_NAME=cppunitTest_$(TARGET)
-.ENDIF
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-
-SHL1OBJS= $(SLO)$/rtl_alloc.obj
-
-SHL1TARGET= rtl_Alloc
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-
-DEF1NAME =$(SHL1TARGET)
-SHL1VERSIONMAP= $(PRJ)$/qa$/export.map
-
-#------------------------------- All object files -------------------------------
-SLOFILES=$(SHL1OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/rtl/alloc/rtl_alloc.cxx b/sal/qa/rtl/alloc/rtl_alloc.cxx
deleted file mode 100644
index ca4166a4f..000000000
--- a/sal/qa/rtl/alloc/rtl_alloc.cxx
+++ /dev/null
@@ -1,158 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-// autogenerated file with codegen.pl
-
-#include <rtl/alloc.h>
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#include <memory.h>
-
-namespace rtl_alloc
-{
-
- // small memory check routine, which return false, if there is a problem
-
- bool checkMemory(char* _pMemory, sal_uInt32 _nSize, char _n)
- {
- bool bOk = true;
-
- for (sal_uInt32 i=0;i<_nSize;i++)
- {
- if (_pMemory[i] != _n)
- {
- bOk = false;
- }
- }
- return bOk;
- }
-
-class Memory : public CppUnit::TestFixture
-{
- // for normal alloc functions
- char *m_pMemory;
- sal_uInt32 m_nSizeOfMemory;
-
-public:
- Memory()
- : m_pMemory(NULL)
- , m_nSizeOfMemory(1024)
- {
- }
-
- // initialise your test code values here.
- void setUp()
- {
- m_pMemory = (char*) rtl_allocateMemory( m_nSizeOfMemory );
- }
-
- void tearDown()
- {
- rtl_freeMemory(m_pMemory);
- m_pMemory = NULL;
- }
-
- void rtl_allocateMemory_001()
- {
- CPPUNIT_ASSERT_MESSAGE( "Can get zero memory.", m_pMemory != NULL);
- memset(m_pMemory, 1, m_nSizeOfMemory);
- CPPUNIT_ASSERT_MESSAGE( "memory contains wrong value.", checkMemory(m_pMemory, m_nSizeOfMemory, 1) == true);
- }
-
- void rtl_reallocateMemory_001()
- {
- sal_uInt32 nSize = 2 * 1024;
- m_pMemory = (char*)rtl_reallocateMemory(m_pMemory, nSize);
-
- CPPUNIT_ASSERT_MESSAGE( "Can reallocate memory.", m_pMemory != NULL);
- memset(m_pMemory, 2, nSize);
- CPPUNIT_ASSERT_MESSAGE( "memory contains wrong value.", checkMemory(m_pMemory, nSize, 2) == true);
- }
-
- CPPUNIT_TEST_SUITE(Memory);
- CPPUNIT_TEST(rtl_allocateMemory_001);
- CPPUNIT_TEST(rtl_reallocateMemory_001);
- CPPUNIT_TEST_SUITE_END();
-}; // class test
-
-class ZeroMemory : public CppUnit::TestFixture
-{
- // for zero functions
- char *m_pZeroMemory;
- sal_uInt32 m_nSizeOfZeroMemory;
-
-public:
- ZeroMemory()
- : m_pZeroMemory(NULL)
- , m_nSizeOfZeroMemory( 50 * 1024 * 1024 )
- {
- }
-
- // initialise your test code values here.
- void setUp()
- {
- m_pZeroMemory = (char*) rtl_allocateZeroMemory( m_nSizeOfZeroMemory );
- }
-
- void tearDown()
- {
- rtl_freeZeroMemory(m_pZeroMemory, m_nSizeOfZeroMemory);
- // LLA: no check possible, may GPF if there is something wrong.
- // CPPUNIT_ASSERT_MESSAGE( "Can get zero memory.", pZeroMemory != NULL);
- }
-
- // insert your test code here.
-
- void rtl_allocateZeroMemory_001()
- {
- CPPUNIT_ASSERT_MESSAGE( "Can get zero memory.", m_pZeroMemory != NULL);
- CPPUNIT_ASSERT_MESSAGE( "memory contains wrong value.", checkMemory(m_pZeroMemory, m_nSizeOfZeroMemory, 0) == true);
-
- memset(m_pZeroMemory, 3, m_nSizeOfZeroMemory);
- CPPUNIT_ASSERT_MESSAGE( "memory contains wrong value.", checkMemory(m_pZeroMemory, m_nSizeOfZeroMemory, 3) == true);
- }
-
- CPPUNIT_TEST_SUITE(ZeroMemory);
- CPPUNIT_TEST(rtl_allocateZeroMemory_001);
- CPPUNIT_TEST_SUITE_END();
-};
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_alloc::Memory);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_alloc::ZeroMemory);
-} // namespace rtl_alloc
-
-
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/bootstrap/bootstrap_process.cxx b/sal/qa/rtl/bootstrap/bootstrap_process.cxx
deleted file mode 100644
index cc3746e4f..000000000
--- a/sal/qa/rtl/bootstrap/bootstrap_process.cxx
+++ /dev/null
@@ -1,121 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-#include <stdlib.h>
-#include <stdio.h>
-#include "sal/main.h"
-#include <rtl/bootstrap.hxx>
-#include <rtl/ustring.h>
-#include <rtl/ustring.hxx>
-
-using namespace ::rtl;
-
-// ----------------------------------- Main -----------------------------------
-SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
-{
- (void)argc;
- Bootstrap aBootstrap;
- //custom .ini/rc file
- Bootstrap aBs_custom( OUString::createFromAscii(argv[3]) );
- OUString suValue;
- OUString suDefault( RTL_CONSTASCII_USTRINGPARAM("mydefault") );
- int flag = atoi( argv[1] );
-
- switch( flag ) {
- case 1:
- // parameters may be passed by command line arguments
- aBootstrap.getFrom(
- OUString(RTL_CONSTASCII_USTRINGPARAM("UNO_SERVICES")),
- suValue );
- if (suValue.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("service.rdb")) )
- {
- return 10;
- }
- else
- return 11;
- case 2:
- // parameters may be passed by ini file
- aBootstrap.getFrom(
- OUString(RTL_CONSTASCII_USTRINGPARAM("EXECUTABLE_RC")),
- suValue );
- if (suValue.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("true")) )
- {
- return 20;
- }
- else
- return 21;
- case 3:
- // parameters may be passed by command line arguments
- aBootstrap.getFrom(
- OUString(RTL_CONSTASCII_USTRINGPARAM("QADEV_BOOTSTRAP")),
- suValue );
- if (suValue.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("sun&ms")) )
- {
- return 30;
- }
- else
- return 31;
- case 4:
- // parameters may be passed by custom .ini/rc file
- aBs_custom.getFrom(
- OUString(RTL_CONSTASCII_USTRINGPARAM("RTLVALUE")),
- suValue );
- if (suValue.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("qadev17")) )
- {
- return 40;
- }
- else
- return 41;
- case 5:
- // parameters may be passed by inheritance
- aBs_custom.getFrom(
- OUString(RTL_CONSTASCII_USTRINGPARAM("EXECUTABLE_RC")),
- suValue );
- if (suValue.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("true")) )
- {
- return 50;
- }
- else
- return 51;
- default:
- // parameters may be passed by inheritance
- aBs_custom.getFrom(
- OUString(RTL_CONSTASCII_USTRINGPARAM("ABCDE")),
- suValue, suDefault );
- if (suValue.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("mydefault")) )
- {
- return 60;
- }
- else
- return 61;
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/bootstrap/makefile.mk b/sal/qa/rtl/bootstrap/makefile.mk
deleted file mode 100644
index c1b9c2f3e..000000000
--- a/sal/qa/rtl/bootstrap/makefile.mk
+++ /dev/null
@@ -1,75 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-INCPRE+= $(PRJ)$/qa$/inc
-
-PRJNAME=sal
-TARGET=rtl_bootstrap
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-.IF "$(GUI)"=="WNT"
-BOOTSTRAPINI=testshl2.ini
-MY_SCRIPTCAT=cat
-.ELSE
-BOOTSTRAPINI=testshl2rc
-MY_SCRIPTCAT=tr -d "\015" <
-.ENDIF
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-
-# BEGIN ----------------------------------------------------------------
-# auto generated Target:joblist by codegen.pl
-SHL1OBJS= \
- $(SLO)$/rtl_Bootstrap.obj
-
-SHL1TARGET= rtl_Bootstrap
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-
-DEF1NAME =$(SHL1TARGET)
-SHL1VERSIONMAP= $(PRJ)$/qa$/export.map
-# END ------------------------------------------------------------------
-
-OBJ2FILES=$(OBJ)$/bootstrap_process.obj
-APP2TARGET=bootstrap_process
-APP2OBJS=$(OBJ2FILES)
-APP2STDLIBS=$(SALLIB)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/rtl/bootstrap/rtl_Bootstrap.cxx b/sal/qa/rtl/bootstrap/rtl_Bootstrap.cxx
deleted file mode 100644
index 7a432d542..000000000
--- a/sal/qa/rtl/bootstrap/rtl_Bootstrap.cxx
+++ /dev/null
@@ -1,946 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-// Documentation about bootstraping can be found at:
-// http://udk.openoffice.org/common/man/concept/micro_deployment.html
-
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <algorithm> // STL
-
-#include "testshl/stringhelper.hxx"
-
-#include <testshl/simpleheader.hxx>
-#include <rtl/bootstrap.hxx>
-
-#include <rtl/ustrbuf.hxx>
-#include <rtl/ustring.h>
-#include <rtl/ustring.hxx>
-#include <osl/file.hxx>
-#include <osl/module.hxx>
-#include <osl/process.h> /* osl_getExecutableFile() */
-
-#include <osl/thread.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-using ::rtl::OUStringToOString;
-using ::rtl::OString;
-#define TESTSHL2_INI "testshl2"
-#define PSEUDO_INI "pseudo"
-
-/** print a UNI_CODE String. And also print some comments of the string.
- */
-inline void printUString( const ::rtl::OUString & str, const sal_Char * msg = "" )
-{
-
- if (msg && msg[0] != 0)
- {
- t_print("%s: ", msg );
- }
- rtl::OString aString;
- aString = ::rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US );
- t_print("%s\n", (char *)aString.getStr( ) );
-}
-
-/** if the file exist
- */
-bool t_fileExist(rtl::OUString const& _sFilename)
-{
- ::osl::FileBase::RC nError1;
- ::osl::File aTestFile( _sFilename );
- nError1 = aTestFile.open ( osl_File_OpenFlag_Read );
- if ( ( ::osl::FileBase::E_NOENT != nError1 ) && ( ::osl::FileBase::E_ACCES != nError1 ) )
- {
- aTestFile.close( );
- return true;
- }
- return false;
-}
-
-/** get the exectutable path ( here is bootstrap_process), on Linux, such as "sal/unxlngi4.pro/bin/"
- */
-inline ::rtl::OUString getModulePath( void )
-{
- ::rtl::OUString suDirPath;
- ::osl::Module::getUrlFromAddress( ( oslGenericFunction ) &getModulePath, suDirPath );
-
- suDirPath = suDirPath.copy( 0, suDirPath.lastIndexOf('/') );
- suDirPath = suDirPath.copy( 0, suDirPath.lastIndexOf('/') + 1);
- suDirPath += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("bin"));
- return suDirPath;
-}
-
-#define TESTSHL2_INI "testshl2"
-#define PSEUDO_INI "pseudo"
-
-
-static rtl::OUString getExecutableDirectory()
-{
- rtl::OUString fileName;
- osl_getExecutableFile(&fileName.pData);
-
- sal_Int32 nDirEnd = fileName.lastIndexOf('/');
-
- OSL_ENSURE(nDirEnd >= 0, "Cannot locate executable directory");
-
- rtl::OUString aDirURL = fileName.copy(0, nDirEnd);
- return aDirURL;
-}
-
-
-// get the URL of testshl2rc/rtlrc/pseudorc
-inline rtl::OUString t_getSourcePath(rtl::OString const& _sFilename)
-{
-
- rtl::OUString aDirURL(getExecutableDirectory());
- aDirURL += OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- aDirURL += OUString::createFromAscii( _sFilename.getStr() );
-#if defined(WNT)
- aDirURL += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".ini"));
-#else
- aDirURL += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("rc"));
-#endif
- return aDirURL;
-}
-
-void thread_sleep_tenth_sec(sal_Int32 _nTenthSec)
-{
-#ifdef WNT //Windows
- Sleep(_nTenthSec * 100 );
-#endif
-#if ( defined UNX )
- TimeValue nTV;
- nTV.Seconds = static_cast<sal_uInt32>( _nTenthSec/10 );
- nTV.Nanosec = ( (_nTenthSec%10 ) * 100000000 );
- osl_waitThread(&nTV);
-#endif
-}
-
-// -----------------------------------------------------------------------------
-
-namespace rtl_Bootstrap
-{
- class ctor : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // ctor with ini name
- void ctor_001()
- {
- rtl::OUString suIniname = t_getSourcePath(TESTSHL2_INI);
- printUString( suIniname );
- Bootstrap aBootstrap( suIniname );
- rtl::OUString suGetname; // = rtl::OUString();
- aBootstrap.getIniName( suGetname );
- printUString( suGetname );
-
- // LLA: first: this seems to be a wrong test.
- // second: there seems to be a design hole, if I give a absolute path ini file,
- // but try to use ${file::KEYVALUE} than 'file' will only used out of the 'executable path'/file
- // not from the path given from the absolute path.
-
- // Due to the fact, we create at this position a file (createTestshl2rc() ), we check for existance
- bool bFileExist = t_fileExist( suGetname );
- CPPUNIT_ASSERT_MESSAGE("ctor error with initial file.", bFileExist == true );
- }
-
- void ctor_002()
- {
- rtl::Bootstrap aBootstrap;
- rtl::OUString suGetname;
- aBootstrap.getIniName( suGetname );
- printUString( suGetname );
- CPPUNIT_ASSERT_MESSAGE("ctor error without initial file.", suGetname.getLength() != 0 );
- }
-
- CPPUNIT_TEST_SUITE(ctor);
- CPPUNIT_TEST(ctor_001);
- CPPUNIT_TEST(ctor_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class ctor
-
- class getFrom : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
- // get the value of env variable
- void getFrom_001()
- {
- Bootstrap aBootstrap;
- rtl::OUString suValue;
- rtl::OUString suValuename (RTL_CONSTASCII_USTRINGPARAM("SOLAR_JAVA"));
- //aBootstrap.getFrom( suValuename, suValue );
- aBootstrap.getFrom( suValuename, suValue );
- sal_Char * pStr = getenv("SOLAR_JAVA");
- // printUString( suGetname );
- CPPUNIT_ASSERT_MESSAGE("get the value of environment variable.", suValue.compareToAscii( pStr ) == 0 );
- }
- /* Notes on Windows:
- void getFrom_001_1()
- {
- Bootstrap aBootstrap;
- rtl::OUString suValue;
- rtl::OUString suValuename (RTL_CONSTASCII_USTRINGPARAM("SRC_ROOT"));
- //aBootstrap.getFrom( suValuename, suValue );
- aBootstrap.getFrom( suValuename, suValue );
- sal_Char * pStr = getenv("SRC_ROOT");
- // printUString( suGetname );
- CPPUNIT_ASSERT_MESSAGE("get the value of environment variable.", suValue.compareToAscii( pStr ) == 0 );
- }
- The result on Windows:
- # # the SRC_ROOT is e:\Qadev\cvs\m19
- # # suValue is e:Qadevcvsm19
- reason:
- The problem is that the internally getenv()ed variable SRC_ROOT is macro expanded,
- thus every \ will introduce an escape.
- */
-
- // get the value of a variable in ini file
- void getFrom_002()
- {
- rtl::OUString suIniname = t_getSourcePath(TESTSHL2_INI);
- Bootstrap aBootstrap( suIniname );
- rtl::OUString suGetname;
- rtl::OUString suValuename (RTL_CONSTASCII_USTRINGPARAM("INHERITED_VALUE"));
- aBootstrap.getFrom( suValuename, suGetname );
- printUString( suGetname );
- CPPUNIT_ASSERT_MESSAGE("get the value of a variable in ini file.", suGetname.getLength() != 0 );
- }
-
- //use defaut value
- void getFrom_003()
- {
- rtl::OUString suIniname = t_getSourcePath(TESTSHL2_INI);
- Bootstrap aBootstrap( suIniname );
- rtl::OUString suGetname;
- rtl::OUString suValuename(RTL_CONSTASCII_USTRINGPARAM("MY_VALUE"));
- rtl::OUString myDefault(RTL_CONSTASCII_USTRINGPARAM("2"));
- aBootstrap.getFrom( suValuename, suGetname, myDefault );
- CPPUNIT_ASSERT_MESSAGE("getFrom use default.", suGetname.compareTo( myDefault ) == 0 );
- }
-
- void getFrom_004()
- {
- t_print("1\n");
- // initialise Bootstrap with an own ini file
- // PSEUDO_INI is pseudo(rc|.ini) created be create_pseudorc()
- rtl::OUString suIniname = t_getSourcePath(PSEUDO_INI);
- Bootstrap aBootstrap( suIniname );
-
- rtl::OUString suGetIniName;
- aBootstrap.getIniName( suGetIniName );
-
- printUString(suGetIniName, "Current bootstrap file");
- sal_Int32 nIndex = suGetIniName.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("pseudo")));
- CPPUNIT_ASSERT_MESSAGE("ini name must have 'pseudo' in name.", nIndex > 0);
-
- rtl::OUString suValue;
- rtl::OUString suKeyName(RTL_CONSTASCII_USTRINGPARAM("FILE"));
- aBootstrap.getFrom( suKeyName, suValue );
- printUString( suValue );
- sal_Int32 nCompare = suValue.compareTo( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("pseudo file")) );
-
- CPPUNIT_ASSERT_MESSAGE("<Bootstrap('pseudo')>.getFrom('FILE', ...) result is unexpected.", nCompare == 0);
- }
- void getFrom_004_1()
- {
- // get the same key out of the default context
- rtl::OUString suKeyName(RTL_CONSTASCII_USTRINGPARAM("FILE"));
- rtl::OUString suGetValue;
- Bootstrap::get( suKeyName, suGetValue );
- printUString( suGetValue );
-
- CPPUNIT_ASSERT_MESSAGE("Bootstrap::get('FILE', ...)", suGetValue.compareTo( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("testshl2 file")) ) == 0 );
- }
-
- /** helper function: return the child process's ret value( typedef sal_uInt32 oslProcessExitCode;)
- * param1 is the process's name(only file name, not include path)
- */
- oslProcessExitCode ini_execProcess( const sal_Char* process_name, const sal_Char * flag )
- {
- rtl::OUString suCWD = getModulePath();
- oslProcess hProcess = NULL;
- rtl::OUString suFileURL = suCWD;
- suFileURL += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/")) + rtl::OUString::createFromAscii(process_name) ;
-#if defined(WNT)
- suFileURL += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".exe"));
-#endif
- const int nParameterCount = 3;
- rtl_uString* pParameters[ nParameterCount ];
- OUString suFlag( OUString::createFromAscii(flag) );
- OUString suEnv1( RTL_CONSTASCII_USTRINGPARAM("-env:UNO_SERVICES=service.rdb") );
- OUString suIniname = t_getSourcePath("rtl");
- printUString( suIniname, "rtl path:");
-
- pParameters[0] = suFlag.pData;
- pParameters[1] = suEnv1.pData;
- // the custom ini/rc file's URL
- pParameters[2] = suIniname.pData;
-
- oslProcessError osl_error = osl_executeProcess(
- suFileURL.pData,
- pParameters,
- nParameterCount,
- osl_Process_WAIT,
- 0,
- suCWD.pData,
- NULL,
- 0,
- &hProcess );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_createProcess failed",
- osl_error == osl_Process_E_None
- );
- osl_joinProcess(hProcess);
- oslProcessInfo* pInfo = new oslProcessInfo;
- pInfo->Size = sizeof( oslProcessInfo );
- osl_error = osl_getProcessInfo( hProcess, osl_Process_EXITCODE, pInfo );
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_getProcessInfo returned with failure",
- osl_Process_E_None == osl_error
- );
-
- t_print("the exit code is %d.\n", pInfo->Code );
- oslProcessExitCode nCode = pInfo->Code;
- delete pInfo;
- return nCode;
- }
-
- void getFrom_005_1()
- {
- oslProcessExitCode nExitCode = ini_execProcess( "bootstrap_process", "1" );
- CPPUNIT_ASSERT_MESSAGE("Parameters passed by command line can not be gotten!",
- nExitCode == 10 );
- }
- void getFrom_005_2()
- {
- oslProcessExitCode nExitCode = ini_execProcess( "bootstrap_process", "2" );
- CPPUNIT_ASSERT_MESSAGE("Parameters passed by .ini/rc file can not be gotten!",
- nExitCode == 20 );
- }
- void getFrom_005_3()
- {
-#if (defined WNT) || (defined SOLARIS)
- putenv(const_cast< char * >("QADEV_BOOTSTRAP=sun&ms"));
-#else
- setenv("QADEV_BOOTSTRAP", "sun&ms", 0);
-#endif
- oslProcessExitCode nExitCode = ini_execProcess( "bootstrap_process", "3" );
- CPPUNIT_ASSERT_MESSAGE("Parameters passed by environment variables can not be gotten!",
- nExitCode == 30 );
- }
- void getFrom_005_4()
- {
- oslProcessExitCode nExitCode = ini_execProcess( "bootstrap_process", "4" );
- CPPUNIT_ASSERT_MESSAGE("Parameters passed by customed .ini/rc file can not be gotten!",
- nExitCode == 40 );
- }
- void getFrom_005_5()
- {
- oslProcessExitCode nExitCode = ini_execProcess( "bootstrap_process", "5" );
- CPPUNIT_ASSERT_MESSAGE("Parameters passed by inheritance can not be gotten!",
- nExitCode == 50 );
- }
- void getFrom_005_6()
- {
- oslProcessExitCode nExitCode = ini_execProcess( "bootstrap_process", "6" );
- CPPUNIT_ASSERT_MESSAGE("Parameters passed by default can not be gotten!",
- nExitCode == 60 );
- }
-
- CPPUNIT_TEST_SUITE(getFrom);
- CPPUNIT_TEST(getFrom_001);
- CPPUNIT_TEST(getFrom_002);
- CPPUNIT_TEST(getFrom_003);
- CPPUNIT_TEST(getFrom_004);
- CPPUNIT_TEST(getFrom_004_1);
- CPPUNIT_TEST(getFrom_005_1);
- CPPUNIT_TEST(getFrom_005_2);
- CPPUNIT_TEST(getFrom_005_3);
- CPPUNIT_TEST(getFrom_005_4);
- CPPUNIT_TEST(getFrom_005_5);
- CPPUNIT_TEST(getFrom_005_6);
- CPPUNIT_TEST_SUITE_END();
- }; // class getFrom
-
- class setIniFilename : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void setIniFilename_001()
- {
- Bootstrap aBootstrap;
-
- rtl::OUString suGetIniname;
- aBootstrap.getIniName( suGetIniname );
- //which should be .....testshl2rc
-
- rtl::OUString suIniname = t_getSourcePath(PSEUDO_INI);
- Bootstrap::setIniFilename( suIniname );
-
- rtl::OUString suGetname;
- aBootstrap.getIniName( suGetname );
-
- printUString( suGetname );
- CPPUNIT_ASSERT_MESSAGE("setIniFilename then get it.", suGetname.compareTo( suIniname ) == 0
- && suGetname.compareTo( suGetIniname ) != 0 );
- }
-
- void setIniFilename_002()
- {
- rtl::OUString suIniname = t_getSourcePath(TESTSHL2_INI);
-
- Bootstrap::setIniFilename( suIniname );
- rtl::OUString suGetname;
- rtl::OUString suValuename(RTL_CONSTASCII_USTRINGPARAM("INHERITED_VALUE"));
- Bootstrap::get( suValuename, suGetname );
- printUString( suGetname );
- CPPUNIT_ASSERT_MESSAGE("setIniFilename and get value of the argument.", suGetname.getLength() != 0 );
- }
-
- CPPUNIT_TEST_SUITE(setIniFilename);
- CPPUNIT_TEST(setIniFilename_001);
- CPPUNIT_TEST(setIniFilename_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class setIniFilename
-
- class getHandle : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void getHandle_001()
- {
- rtl::OUString suIniname = t_getSourcePath(TESTSHL2_INI);
- Bootstrap aBootstrap;
- rtlBootstrapHandle bsHandle = aBootstrap.getHandle();
- CPPUNIT_ASSERT_MESSAGE("getHandle should return 0 if the bootstrap has no ini file!", bsHandle == 0 );
- }
- void getHandle_002()
- {
- rtl::OUString suIniname = t_getSourcePath(PSEUDO_INI);
- Bootstrap aBootstrap( suIniname );
-
- rtlBootstrapHandle bsHandle = aBootstrap.getHandle();
- CPPUNIT_ASSERT_MESSAGE("getHandle return NULL!", bsHandle != 0);
-
- rtl::OUString suValue;
- rtl::OUString suKeyName(RTL_CONSTASCII_USTRINGPARAM("PSEUDOFILE"));
- rtl_bootstrap_get_from_handle(bsHandle, suKeyName.pData, &suValue.pData, NULL);
- printUString( suValue);
-
- CPPUNIT_ASSERT_MESSAGE("Can not use the handle which is returned by getHandle!", suValue.equals( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("be pseudo")) ) == sal_True );
- }
-
- CPPUNIT_TEST_SUITE(getHandle);
- CPPUNIT_TEST(getHandle_001);
- CPPUNIT_TEST(getHandle_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class getHandle
-
- class set : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void set_001()
- {
- //in ini fle, INHERITED_VALUE=inherited_value
- rtl::OUString suIniname = t_getSourcePath(TESTSHL2_INI);
- Bootstrap aBootstrap( suIniname);
- rtl::OUString suName(RTL_CONSTASCII_USTRINGPARAM("INHERITED_VALUE"));
- rtl::OUString suValue(RTL_CONSTASCII_USTRINGPARAM("ok"));
- // set to another value
- Bootstrap::set( suName, suValue );
- rtl::OUString suGetValue;
- Bootstrap::get( suName, suGetValue);
- CPPUNIT_ASSERT_MESSAGE("set and get argument failed.", suGetValue.compareTo(suValue) == 0 );
- }
- void set_002()
- {
- rtl::OUString suIniname = t_getSourcePath(TESTSHL2_INI);
- Bootstrap myBootstrap( suIniname);
- rtl::OUString suName(RTL_CONSTASCII_USTRINGPARAM("INHERITED_VALUE"));
- rtl::OUString suGetOrientValue;
- Bootstrap::get( suName, suGetOrientValue);
- // ?? INHERITED_VALUE = ok now, which is set in set_001
- printUString( suGetOrientValue );
-
- rtl::OUString suValue(RTL_CONSTASCII_USTRINGPARAM( TESTSHL2_INI ));
- // set to another value
- Bootstrap::set( suName, suValue );
- rtl::OUString suGetValue;
- Bootstrap::get( suName, suGetValue);
- CPPUNIT_ASSERT_MESSAGE("set and get argument failed.", suGetValue.compareTo(suValue) == 0 );
- }
-
- CPPUNIT_TEST_SUITE(set);
- CPPUNIT_TEST(set_001);
- CPPUNIT_TEST(set_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class set
-
- class expandMacrosFrom : public CppUnit::TestFixture
- {
- public:
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
- void expandMacrosFrom_001()
- {
- rtl::OUString suIniname = t_getSourcePath(TESTSHL2_INI);
- Bootstrap aBootstrap( suIniname);
- rtl::OUString suMacro(RTL_CONSTASCII_USTRINGPARAM("$MYVAR/expand1"));
- //expandMacro now
- aBootstrap.expandMacrosFrom( suMacro );
- rtl::OUString suExpectedMacro(RTL_CONSTASCII_USTRINGPARAM("src680_test/expand1"));
- CPPUNIT_ASSERT_MESSAGE("expandMacrosFrom failed.", suMacro.compareTo(suExpectedMacro) == 0 );
- }
-
- /** here a special macro should expand
- * if rtlrc is under sal/qa/rtl/bootstrap/, "${rtlrc:Bootstrap:RTLVALUE}" could be expanded
- * else rtlrc is under solver/680/unxlngi4.pro/bin/, "${file:/// ....solver/680/unxlngi4.pro/bin/rtlrc:Bootstrap:RTLVALUE}"
- * could not be expanded
- */
- void expandMacrosFrom_002()
- {
- // Build a string with '${rtl.ini:RTLVALUE}' and try to expand it.
- // In function 'create_rtlrc() is the content of the rtl.ini file.
-
- rtl::OUString suIniname = t_getSourcePath(TESTSHL2_INI);
- t_print("inifile is:");
- printUString( suIniname );
- Bootstrap aBootstrap( suIniname) ;
- rtl::OUString suMacro(RTL_CONSTASCII_USTRINGPARAM("${")); //rtlrc:Bootstrap:RTLVALUE}");
-
- rtl::OUString aDirURL(RTL_CONSTASCII_USTRINGPARAM("$ORIGIN"));
- aDirURL += OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- aDirURL += OUString(RTL_CONSTASCII_USTRINGPARAM("rtl"));
-#if defined(WNT)
- aDirURL += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".ini"));
-#else
- aDirURL += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("rc"));
-#endif
-
- suMacro += aDirURL;//t_getSourcePath("rtl");
- suMacro += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("::RTLVALUE}"));
-
- t_print("created macro is: ");
- printUString( suMacro );
- aBootstrap.expandMacrosFrom( suMacro );
- t_print("expanded macro is:");
- printUString( suMacro );
- rtl::OUString suExpectedMacro(RTL_CONSTASCII_USTRINGPARAM("qadev17"));
- CPPUNIT_ASSERT_MESSAGE("failed, can't expand '${file:///.../" SAL_CONFIGFILE("rtl") "::RTLVALUE}' to 'qadev17'", suMacro.compareTo(suExpectedMacro) == 0 );
- }
- void expandMacrosFrom_002_1()
- {
- rtl::OUString suIniname = t_getSourcePath(TESTSHL2_INI);
- t_print("inifile is:");
- printUString( suIniname );
- Bootstrap aBootstrap( suIniname);
-
- rtl::OUString suMacro;
- // just a simple test, if this really work.
- aBootstrap.getFrom(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SOFROMVALUE2")), suMacro );
- t_print("SOFROMVALUE2:");
- printUString( suMacro );
- CPPUNIT_ASSERT_MESSAGE("'SOFROMVALUE2' seems to do not exist.", suMacro.getLength() > 0 );
-
- aBootstrap.getFrom(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SOFROMVALUE")), suMacro );
-
- t_print("SOFROMVALUE:");
- printUString( suMacro );
-
- //expandMacro now
- // seems to be, that getFrom() already expand the string
- rtl::OUString suExpectedMacro(RTL_CONSTASCII_USTRINGPARAM("src680_qadev"));
- CPPUNIT_ASSERT_MESSAGE("failed, can't expand '${" SAL_CONFIGFILE("rtl") "::SOVALUE}' to 'src680_qadev'", suMacro.compareTo(suExpectedMacro) == 0 );
- }
- void expandMacrosFrom_002_2()
- {
- // test, to read and expand SOFROMVALUE3
- // SOFROMVALUE3 is 'rtl(.ini|rc)::TESTSHL_SOVALUE' which should expand to 'rtlfile' if all is ok.
-
- rtl::OUString suIniname = t_getSourcePath(TESTSHL2_INI);
- t_print("inifile is:");
- printUString( suIniname );
- Bootstrap aBootstrap( suIniname);
-
- rtl::OUString suMacro;
- aBootstrap.getFrom(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SOFROMVALUE3")), suMacro );
-
- t_print("SOFROMVALUE3:");
- printUString( suMacro );
-
- if (suMacro.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("testshl2_file")) ) == sal_True)
- {
- CPPUNIT_ASSERT_MESSAGE("Value 'SOFROMVALUE3' is read from the wrong ini file.", 0 );
- }
- else
- {
- CPPUNIT_ASSERT_MESSAGE("SOFROMVALUE3 should contain 'rtlfile'.", suMacro.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("rtlfile")) ) == sal_True );
- }
- }
- void expandMacrosFrom_003()
- {
- rtl::OUString suIniname = t_getSourcePath(TESTSHL2_INI);
- Bootstrap aBootstrap( suIniname);
- rtl::OUString suMacro[4];
- suMacro[0] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("$SYSUSERCONFIG"));
- suMacro[1] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("$SYSUSERHOME"));
- suMacro[2] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("$SYSBINDIR"));
- suMacro[3] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("$ORIGIN"));
-
- for ( int i = 0; i < 4; i++ )
- {
- aBootstrap.expandMacrosFrom( suMacro[i] );
- printUString(suMacro[i]);
- }
- CPPUNIT_ASSERT_MESSAGE("some integral variables.", suMacro[0].getLength() > 0 &&
- suMacro[1].getLength() > 0 &&
- suMacro[2].getLength() > 0 &&
- suMacro[3].getLength() > 0);
- }
-
- void testRecursion() {
- rtl::OUString t(RTL_CONSTASCII_USTRINGPARAM("$RECURSIVE"));
- Bootstrap(t_getSourcePath(TESTSHL2_INI)).expandMacrosFrom(t);
- CPPUNIT_ASSERT_MESSAGE(
- "recursion detection",
- t.equalsAsciiL(
- RTL_CONSTASCII_STRINGPARAM("***RECURSION DETECTED***")));
- }
-
- void testLink() {
- rtl::OUString t(RTL_CONSTASCII_USTRINGPARAM("$LINKED"));
- Bootstrap(t_getSourcePath(TESTSHL2_INI)).expandMacrosFrom(t);
- CPPUNIT_ASSERT_MESSAGE(
- "link file",
- t.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("qadev17")));
- }
-
- void testOverride() {
- rtl::OUString t1(
- RTL_CONSTASCII_USTRINGPARAM(
- "${.override:$ORIGIN/" SAL_CONFIGFILE("rtl") ":ORIGIN}"));
- Bootstrap(t_getSourcePath("rtl")).expandMacrosFrom(t1);
- CPPUNIT_ASSERT_MESSAGE(
- "override ORIGIN",
- t1.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("direct")));
- rtl::OUString t2(
- RTL_CONSTASCII_USTRINGPARAM(
- "${.override:$ORIGIN/" SAL_CONFIGFILE("none") ":MYVAR}"));
- Bootstrap::expandMacros(t2);
- CPPUNIT_ASSERT_MESSAGE(
- "override MYVAR",
- t2.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("src680_test")));
- }
-
- void testNonexisting() {
- rtl::OUString t(
- RTL_CONSTASCII_USTRINGPARAM(
- "${$ORIGIN/" SAL_CONFIGFILE("none") ":MYVAR}"));
- Bootstrap::expandMacros(t);
- CPPUNIT_ASSERT_MESSAGE(
- "nonexisting",
- t.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("src680_test")));
- }
-
- void testSection() {
- rtl::OUStringBuffer b;
- b.appendAscii(RTL_CONSTASCII_STRINGPARAM("${"));
- rtl::OUString p(t_getSourcePath(TESTSHL2_INI));
- for (sal_Int32 i = 0; i < p.getLength(); ++i) {
- if (p[i] != 'u') {
- b.append(static_cast< sal_Unicode >('\\'));
- }
- b.append(p[i]);
- }
- b.appendAscii(RTL_CONSTASCII_STRINGPARAM(":Other_Section:EXPAND}"));
- rtl::OUString t(b.makeStringAndClear());
- Bootstrap(t_getSourcePath(TESTSHL2_INI)).expandMacrosFrom(t);
- CPPUNIT_ASSERT_MESSAGE(
- "section expansion",
- t.equalsAsciiL(
- RTL_CONSTASCII_STRINGPARAM("$FILE")));
- // the correct answer would be "testshl2 file" instead, but
- // expansion including a section currently erroneously does not
- // recursively expand macros in the resulting replacement text
- }
-
- CPPUNIT_TEST_SUITE(expandMacrosFrom);
- CPPUNIT_TEST(expandMacrosFrom_001);
- CPPUNIT_TEST(expandMacrosFrom_002);
- CPPUNIT_TEST(expandMacrosFrom_002_1);
- CPPUNIT_TEST(expandMacrosFrom_002_2);
- CPPUNIT_TEST(expandMacrosFrom_003);
- CPPUNIT_TEST(testRecursion);
- CPPUNIT_TEST(testLink);
- CPPUNIT_TEST(testOverride);
- CPPUNIT_TEST(testNonexisting);
- CPPUNIT_TEST(testSection);
- CPPUNIT_TEST_SUITE_END();
- }; // class expandMacrosFrom
-
- class expandMacros : public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void expandMacros_001()
- {
- rtl::OUString suIniname = t_getSourcePath(TESTSHL2_INI);
- Bootstrap aBootstrap( suIniname) ;
- rtl::OUString suMacro(RTL_CONSTASCII_USTRINGPARAM("$INHERITED_VALUE/well"));
- Bootstrap::expandMacros( suMacro );
-
- rtl::OUString suName(RTL_CONSTASCII_USTRINGPARAM("INHERITED_VALUE"));
- OUString suGetValue;
- Bootstrap::get( suName, suGetValue );
- suGetValue += OUString(RTL_CONSTASCII_USTRINGPARAM("/well"));
- CPPUNIT_ASSERT_MESSAGE("expandMacros failed.", suGetValue.compareTo(suMacro) == 0 );
- }
-
- CPPUNIT_TEST_SUITE(expandMacros);
- CPPUNIT_TEST(expandMacros_001);
- // CPPUNIT_TEST(expandMacros_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class expandMacros
-
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_Bootstrap::ctor, "rtl_Bootstrap");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_Bootstrap::getFrom, "rtl_Bootstrap");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_Bootstrap::setIniFilename, "rtl_Bootstrap");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_Bootstrap::getHandle, "rtl_Bootstrap");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_Bootstrap::set, "rtl_Bootstrap");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_Bootstrap::expandMacrosFrom, "rtl_Bootstrap");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_Bootstrap::expandMacros, "rtl_Bootstrap");
-
-} // namespace rtl_Bootstrap
-
-// -----------------------------------------------------------------------------
-
-static void removeAndCreateFile(rtl::OUString const& _suFileURL, rtl::OString const& _sContent)
-{
- osl::File::remove(_suFileURL);
-
- ::std::auto_ptr<osl::File> pFile( new osl::File( _suFileURL ) );
- ::osl::FileBase::RC nError = pFile->open( osl_File_OpenFlag_Write | osl_File_OpenFlag_Create );
- if ( ::osl::FileBase::E_None == nError || ::osl::FileBase::E_EXIST == nError )
- {
- t_print(T_VERBOSE, "%s\n" , OString(_suFileURL, _suFileURL.getLength(), RTL_TEXTENCODING_ASCII_US).getStr());
- sal_uInt64 nWritenBytes;
- pFile->write(_sContent.getStr(), _sContent.getLength(), nWritenBytes);
-
- rtl::OString sError = "can't write enough bytes to file";
- sError += OString(_suFileURL, _suFileURL.getLength(), RTL_TEXTENCODING_ASCII_US);
- OSL_ENSURE(nWritenBytes == _sContent.getLength(), sError.getStr());
-
- pFile->close();
- }
- else
- {
- rtl::OString sError = "can't create file URL: '";
- rtl::OString sFile;
- sFile <<= _suFileURL;
- sError += sFile;
- sError += "' maybe no write access. If it is true with no write access, please create a local environment and start these tests again. rtl::Bootstrap test must quit.";
- t_print("%s\n", sError.getStr() );
- exit(1);
- }
- OSL_ASSERT(t_fileExist(_suFileURL) == true);
-}
-
-// -----------------------------------------------------------------------------
-static void create_rtlrc()
-{
- rtl::OUString aFileURL(getExecutableDirectory());
-#if defined(WNT)
- aFileURL += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/rtl.ini"));
-#else
- aFileURL += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/rtlrc"));
-#endif
-
- rtl::OString sLines;
- sLines += "[Bootstrap]\n";
- sLines += "SOVALUE=src680_qadev\n";
- sLines += "RTLVALUE=qadev17\n";
- sLines += "TESTSHL_SOVALUE=rtlfile\n";
- sLines += "RECURSIVE=${$ORIGIN/" SAL_CONFIGFILE("testshl2") ":RECURSIVE}\n";
- sLines += "ORIGIN=direct\n";
- sLines += "[Other_Section]\n";
- sLines += "TESTSHL_SOVALUE=rtlfile_other\n";
-
- removeAndCreateFile(aFileURL, sLines);
-}
-
-// -----------------------------------------------------------------------------
-static void create_testshl2rc()
-{
- rtl::OUString aFileURL(getExecutableDirectory());
-#if defined(WNT)
- aFileURL += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/testshl2.ini"));
-#else
- aFileURL += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/testshl2rc"));
-#endif
- rtl::OString sLines;
- sLines += "[Bootstrap]\n";
- sLines += "FILE=testshl2 file\n";
- sLines += "MYBOOTSTRAPTESTVALUE=file\n";
- sLines += "INHERITED_VALUE=inherited_value\n";
- sLines += "INHERITED_OVERWRITTEN_VALUE=not_overwritten\n";
- sLines += "MYVAR=src680_test\n";
- sLines += "SOFROMVALUE=${$ORIGIN/" SAL_CONFIGFILE("rtl") "::SOVALUE}\n";
- sLines += "SOFROMVALUE2=test\n";
- sLines += "SOFROMVALUE3=${$ORIGIN/" SAL_CONFIGFILE("rtl") "::TESTSHL_SOVALUE}\n";
- sLines += "TESTSHL_SOVALUE=testshl2_file\n";
- sLines += "ILLEGAL VALUE=test\n";
- sLines += "ILLEGAL.DOT=test\n";
- sLines += "ILLEGAL;SEMICOLON=test\n";
- sLines += "ILLEGAL:COLON=test\n";
- sLines += " KEY_FOR_TRIM_TEST = value for trim test \n";
- sLines += "RECURSIVE=${$ORIGIN/" SAL_CONFIGFILE("rtl") ":RECURSIVE}\n";
- sLines += "LINKED=${${.link:$ORIGIN/testshl2-link}:RTLVALUE}\n";
- sLines += "[Other_Section]\n";
- sLines += "FILE=testshl2 file other\n";
- sLines += "EXPAND=$FILE\n";
-
- removeAndCreateFile(aFileURL, sLines);
-
- removeAndCreateFile(
- (getExecutableDirectory() +
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/testshl2-link"))),
- SAL_CONFIGFILE("rtl"));
-}
-
-// -----------------------------------------------------------------------------
-
-static void create_pseudorc()
-{
- rtl::OUString aFileURL(getExecutableDirectory());
-#if defined(WNT)
- aFileURL += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/pseudo.ini"));
-#else
- aFileURL += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/pseudorc"));
-#endif
- rtl::OString sLines;
- sLines += "[Bootstrap]\n";
- sLines += "FILE=pseudo file\n";
- sLines += "PSEUDOFILE=be pseudo\n";
-
- removeAndCreateFile(aFileURL, sLines);
-}
-
-// -----------------------------------------------------------------------------
-void create_bootstrap_processrc()
-{
- rtl::OUString aDirURL(getModulePath());
-#if defined(WNT)
- aDirURL += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/bootstrap_process.ini"));
-#else
- aDirURL += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/bootstrap_processrc"));
-#endif
- rtl::OString sLines;
- sLines += "[Bootstrap]\n";
- sLines += "EXECUTABLE_RC=true\n";
- sLines += "IF_CUSTOM_RC=false\n";
-
- removeAndCreateFile(aDirURL, sLines);
-}
-// -----------------------------------------------------------------------------
-
-void RegisterAdditionalFunctions(FktRegFuncPtr _pFunc)
-{
- (void) _pFunc;
- // start message
- t_print(T_VERBOSE, "Initializing ...\n" );
- create_rtlrc();
- create_testshl2rc();
- create_pseudorc();
- create_bootstrap_processrc();
-
- t_print(T_VERBOSE, "Initialization Done.\n" );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/bootstrap/rtl_Bootstrap.xsce b/sal/qa/rtl/bootstrap/rtl_Bootstrap.xsce
deleted file mode 100644
index df7366961..000000000
--- a/sal/qa/rtl/bootstrap/rtl_Bootstrap.xsce
+++ /dev/null
@@ -1,7 +0,0 @@
-#i27888#
-rtl_Bootstrap.getFrom.getFrom_004
-
-#i27893#
-#rtl_Bootstrap.expandMacrosFrom.expandMacrosFrom_002
-#rtl_Bootstrap.expandMacrosFrom.expandMacrosFrom_002_1
-rtl_Bootstrap.expandMacrosFrom.expandMacrosFrom_002_2
diff --git a/sal/qa/rtl/cipher/makefile.mk b/sal/qa/rtl/cipher/makefile.mk
deleted file mode 100644
index fd95355ac..000000000
--- a/sal/qa/rtl/cipher/makefile.mk
+++ /dev/null
@@ -1,68 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-INCPRE+= $(PRJ)$/qa$/inc
-
-PRJNAME=sal
-TARGET=qa_rtl_cipher
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-.IF "$(OS)" == "IOS"
-CFLAGSCXX += -DCPPUNIT_PLUGIN_EXPORTED_NAME=cppunitTest_$(TARGET)
-.ENDIF
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-
-SHL1OBJS= \
- $(SLO)$/rtl_cipher.obj
-
-SHL1TARGET= rtl_cipher
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-# SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-DEF1NAME =$(SHL1TARGET)
-# DEF2EXPORTFILE= export.exp
-SHL1VERSIONMAP= $(PRJ)$/qa$/export.map
-
-#------------------------------- All object files -------------------------------
-SLOFILES=$(SHL1OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/rtl/cipher/rtl_cipher.cxx b/sal/qa/rtl/cipher/rtl_cipher.cxx
deleted file mode 100644
index 647d0f547..000000000
--- a/sal/qa/rtl/cipher/rtl_cipher.cxx
+++ /dev/null
@@ -1,664 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <cstring>
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#include <rtl/strbuf.hxx>
-#include <rtl/cipher.h>
-
-// -----------------------------------------------------------------------------
-namespace rtl_cipher
-{
-
-rtl::OString createHex(sal_uInt8 *_pKeyBuffer, sal_uInt32 _nKeyLen)
-{
- // Create hex-value string from the value to keep the string size minimal
- rtl::OStringBuffer aBuffer( _nKeyLen * 2 + 1 );
- for ( sal_uInt32 i = 0; i < _nKeyLen; i++ )
- {
- sal_Int32 nValue = (sal_Int32)_pKeyBuffer[i];
- if (nValue < 16) // maximul hex value for 1 byte
- {
- sal_Int32 nil = sal_Int32(0);
- aBuffer.append( nil, 16 /* radix */ );
- }
- aBuffer.append( nValue, 16 /* radix */ );
- }
-
- return aBuffer.makeStringAndClear();
-}
-
-// -----------------------------------------------------------------------------
-
-class create : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void create_001()
- {
- rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeECB);
- CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL);
- rtl_cipher_destroy(aCipher);
- }
- void create_002()
- {
- rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmInvalid, rtl_Cipher_ModeECB);
- CPPUNIT_ASSERT_MESSAGE("create provide wrong object.", aCipher == NULL);
- }
- void create_003()
- {
- rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeCBC);
- CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL);
- rtl_cipher_destroy(aCipher);
- }
- void create_004()
- {
- rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmInvalid, rtl_Cipher_ModeCBC);
- CPPUNIT_ASSERT_MESSAGE("create provide wrong object.", aCipher == NULL);
- }
- void create_005()
- {
- rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeStream);
- CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL);
- rtl_cipher_destroy(aCipher);
- }
- void create_006()
- {
- rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmInvalid, rtl_Cipher_ModeStream);
- CPPUNIT_ASSERT_MESSAGE("create provide wrong object.", aCipher == NULL);
- }
- void create_007()
- {
- rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeInvalid);
- CPPUNIT_ASSERT_MESSAGE("create provide wrong object.", aCipher == NULL);
- }
- void create_008()
- {
- rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmInvalid, rtl_Cipher_ModeInvalid);
- CPPUNIT_ASSERT_MESSAGE("create provide wrong object.", aCipher == NULL);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(create);
- CPPUNIT_TEST(create_001);
- CPPUNIT_TEST(create_002);
- CPPUNIT_TEST(create_003);
- CPPUNIT_TEST(create_004);
- CPPUNIT_TEST(create_005);
- CPPUNIT_TEST(create_006);
- CPPUNIT_TEST(create_007);
- CPPUNIT_TEST(create_008);
- CPPUNIT_TEST_SUITE_END();
-}; // class create
-
-// -----------------------------------------------------------------------------
-class createBF : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void createBF_001()
- {
- rtlCipher aCipher = rtl_cipher_createBF(rtl_Cipher_ModeECB);
- CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL);
- rtl_cipher_destroy(aCipher);
- }
- void createBF_002()
- {
- rtlCipher aCipher = rtl_cipher_createBF(rtl_Cipher_ModeCBC);
- CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL);
- rtl_cipher_destroy(aCipher);
- }
- void createBF_003()
- {
- rtlCipher aCipher = rtl_cipher_createBF(rtl_Cipher_ModeStream);
- CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL);
- rtl_cipher_destroy(aCipher);
- }
- void createBF_004()
- {
- rtlCipher aCipher = rtl_cipher_createBF(rtl_Cipher_ModeInvalid);
- CPPUNIT_ASSERT_MESSAGE("create provide wrong object.", aCipher == NULL);
- // rtl_cipher_destroy(aCipher);
- }
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(createBF);
- CPPUNIT_TEST(createBF_001);
- CPPUNIT_TEST(createBF_002);
- CPPUNIT_TEST(createBF_003);
- CPPUNIT_TEST(createBF_004);
- CPPUNIT_TEST_SUITE_END();
-}; // class createBF
-// -----------------------------------------------------------------------------
-class decode : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void test_encode(sal_uInt8 _nKeyValue, sal_uInt8 _nArgValue, rtl::OString const& _sPlainTextStr)
- {
- rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeECB);
- CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL);
-
- sal_uInt32 nKeyLen = 16;
- sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ];
- memset(pKeyBuffer, 0, nKeyLen);
- pKeyBuffer[0] = _nKeyValue;
-
- sal_uInt32 nArgLen = 16;
- sal_uInt8 *pArgBuffer = new sal_uInt8[ nArgLen ];
- memset(pArgBuffer, 0, nArgLen);
- pArgBuffer[0] = _nArgValue;
-
- rtlCipherError aError = rtl_cipher_init(aCipher, rtl_Cipher_DirectionEncode, pKeyBuffer, nKeyLen, pArgBuffer, nArgLen);
- CPPUNIT_ASSERT_MESSAGE("wrong init", aError == rtl_Cipher_E_None);
-
- sal_uInt32 nPlainTextLen = 16;
- sal_uInt8 *pPlainTextBuffer = new sal_uInt8[ nPlainTextLen ];
- memset(pPlainTextBuffer, 0, nPlainTextLen);
- strncpy((char*)pPlainTextBuffer, _sPlainTextStr.getStr(), 16);
-
- sal_uInt32 nCipherLen = 16;
- sal_uInt8 *pCipherBuffer = new sal_uInt8[ nCipherLen ];
- memset(pCipherBuffer, 0, nCipherLen);
-
- /* rtlCipherError */ aError = rtl_cipher_encode(aCipher, pPlainTextBuffer, nPlainTextLen, pCipherBuffer, nCipherLen);
- CPPUNIT_ASSERT_MESSAGE("wrong encode", aError == rtl_Cipher_E_None);
-
- sal_uInt32 nPlainText2Len = 16;
- sal_uInt8 *pPlainText2Buffer = new sal_uInt8[ nPlainText2Len ];
- memset(pPlainText2Buffer, 0, nPlainText2Len);
-
- /* rtlCipherError */ aError = rtl_cipher_decode(aCipher, pCipherBuffer, nCipherLen, pPlainText2Buffer, nPlainText2Len);
- CPPUNIT_ASSERT_MESSAGE("decode should not work", aError != rtl_Cipher_E_None);
-
- delete [] pPlainText2Buffer;
-
- delete [] pCipherBuffer;
- delete [] pPlainTextBuffer;
-
- delete [] pArgBuffer;
- delete [] pKeyBuffer;
-
- rtl_cipher_destroy(aCipher);
- }
-
- void test_encode_and_decode(sal_uInt8 _nKeyValue, sal_uInt8 _nArgValue, rtl::OString const& _sPlainTextStr)
- {
- rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeECB);
- CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL);
-
- sal_uInt32 nKeyLen = 16;
- sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ];
- memset(pKeyBuffer, 0, nKeyLen);
- pKeyBuffer[0] = _nKeyValue;
-
- sal_uInt32 nArgLen = 16;
- sal_uInt8 *pArgBuffer = new sal_uInt8[ nArgLen ];
- memset(pArgBuffer, 0, nArgLen);
- pArgBuffer[0] = _nArgValue;
-
- rtlCipherError aError = rtl_cipher_init(aCipher, rtl_Cipher_DirectionBoth, pKeyBuffer, nKeyLen, pArgBuffer, nArgLen);
- CPPUNIT_ASSERT_MESSAGE("wrong init", aError == rtl_Cipher_E_None);
-
- sal_uInt32 nPlainTextLen = 16;
- sal_uInt8 *pPlainTextBuffer = new sal_uInt8[ nPlainTextLen ];
- memset(pPlainTextBuffer, 0, nPlainTextLen);
- strncpy((char*)pPlainTextBuffer, _sPlainTextStr.getStr(), 16);
-
- sal_uInt32 nCipherLen = 16;
- sal_uInt8 *pCipherBuffer = new sal_uInt8[ nCipherLen ];
- memset(pCipherBuffer, 0, nCipherLen);
-
- /* rtlCipherError */ aError = rtl_cipher_encode(aCipher, pPlainTextBuffer, nPlainTextLen, pCipherBuffer, nCipherLen);
- CPPUNIT_ASSERT_MESSAGE("wrong encode", aError == rtl_Cipher_E_None);
-
- sal_uInt32 nPlainText2Len = 16;
- sal_uInt8 *pPlainText2Buffer = new sal_uInt8[ nPlainText2Len ];
- memset(pPlainText2Buffer, 0, nPlainText2Len);
-
- /* rtlCipherError */ aError = rtl_cipher_decode(aCipher, pCipherBuffer, nCipherLen, pPlainText2Buffer, nPlainText2Len);
- CPPUNIT_ASSERT_MESSAGE("wrong decode", aError == rtl_Cipher_E_None);
-
- rtl::OString sPlainText2Str((char*)pPlainText2Buffer, nPlainText2Len);
-
- sal_Int32 nCompare = memcmp(pPlainTextBuffer, pPlainText2Buffer, 16);
-
- CPPUNIT_ASSERT_MESSAGE("compare between plain and decoded plain failed", nCompare == 0);
-
- delete [] pPlainText2Buffer;
-
- delete [] pCipherBuffer;
- delete [] pPlainTextBuffer;
-
- delete [] pArgBuffer;
- delete [] pKeyBuffer;
-
- rtl_cipher_destroy(aCipher);
- }
-
- void decode_001()
- {
- test_encode_and_decode(0,0,"");
- test_encode_and_decode(0,0,"hallo");
- test_encode_and_decode(1,0,"B2Aahg5B");
- test_encode_and_decode(1,2,"Longer text string");
- }
-
- void decode_002()
- {
- test_encode(0,0,"");
- test_encode(0,0,"hallo");
- test_encode(1,0,"B2Aahg5B");
- test_encode(1,2,"Longer text string");
- }
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(decode);
- CPPUNIT_TEST(decode_001);
- CPPUNIT_TEST(decode_002);
- CPPUNIT_TEST_SUITE_END();
-}; // class decode
-// -----------------------------------------------------------------------------
-class decodeBF : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void decodeBF_001()
- {
- }
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(decodeBF);
- CPPUNIT_TEST(decodeBF_001);
- CPPUNIT_TEST_SUITE_END();
-}; // class decodeBF
-// -----------------------------------------------------------------------------
-class destroy : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void destroy_001()
- {
- rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeCBC);
- CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL);
- rtl_cipher_destroy(aCipher);
- }
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(destroy);
- CPPUNIT_TEST(destroy_001);
- CPPUNIT_TEST_SUITE_END();
-}; // class destroy
-// -----------------------------------------------------------------------------
-class destroyBF : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void destroyBF_001()
- {
- rtlCipher aCipher = rtl_cipher_createBF(rtl_Cipher_ModeECB);
- CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL);
- rtl_cipher_destroyBF(aCipher);
- // more proforma
- // should not GPF
- }
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(destroyBF);
- CPPUNIT_TEST(destroyBF_001);
- CPPUNIT_TEST_SUITE_END();
-}; // class destroyBF
-// -----------------------------------------------------------------------------
-class encode : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void test_encode(sal_uInt8 _nKeyValue, sal_uInt8 _nArgValue, sal_uInt8 _nDataValue)
- {
- rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeECB);
- CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL);
-
- sal_uInt32 nKeyLen = 16;
- sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ];
- memset(pKeyBuffer, 0, nKeyLen);
- pKeyBuffer[0] = _nKeyValue;
-
- sal_uInt32 nArgLen = 16;
- sal_uInt8 *pArgBuffer = new sal_uInt8[ nArgLen ];
- memset(pArgBuffer, 0, nArgLen);
- pArgBuffer[0] = _nArgValue;
-
- rtlCipherError aError = rtl_cipher_init(aCipher, rtl_Cipher_DirectionEncode, pKeyBuffer, nKeyLen, pArgBuffer, nArgLen);
- CPPUNIT_ASSERT_MESSAGE("wrong init", aError == rtl_Cipher_E_None);
-
- sal_uInt32 nDataLen = 16;
- sal_uInt8 *pDataBuffer = new sal_uInt8[ nDataLen ];
- memset(pDataBuffer, 0, nDataLen);
- pDataBuffer[0] = _nDataValue;
-
- sal_uInt32 nLen = 16;
- sal_uInt8 *pBuffer = new sal_uInt8[ nLen ];
- memset(pBuffer, 0, nLen);
-
- /* rtlCipherError */ aError = rtl_cipher_encode(aCipher, pDataBuffer, nDataLen, pBuffer, nLen);
- CPPUNIT_ASSERT_MESSAGE("wrong encode", aError == rtl_Cipher_E_None);
-
- delete [] pBuffer;
- delete [] pDataBuffer;
-
- delete [] pArgBuffer;
- delete [] pKeyBuffer;
-
- rtl_cipher_destroy(aCipher);
- }
-
- void encode_001()
- {
- test_encode(0,0,0);
- test_encode(1,0,0);
- test_encode(0,1,0);
- test_encode(1,1,0);
-
- test_encode(0,0,1);
- test_encode(1,0,1);
- test_encode(0,1,1);
- test_encode(1,1,1);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(encode);
- CPPUNIT_TEST(encode_001);
- CPPUNIT_TEST_SUITE_END();
-}; // class encode
-// -----------------------------------------------------------------------------
-class encodeBF : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void encodeBF_001()
- {
- }
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(encodeBF);
- CPPUNIT_TEST(encodeBF_001);
- CPPUNIT_TEST_SUITE_END();
-}; // class encodeBF
-// -----------------------------------------------------------------------------
-class init : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void init_001()
- {
- rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeECB);
- CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL);
-
- sal_uInt32 nKeyLen = 16;
- sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ];
- memset(pKeyBuffer, 0, nKeyLen);
-
- sal_uInt32 nArgLen = 16;
- sal_uInt8 *pArgBuffer = new sal_uInt8[ nArgLen ];
- memset(pArgBuffer, 0, nArgLen);
-
- rtlCipherError aError = rtl_cipher_init(aCipher, rtl_Cipher_DirectionEncode, pKeyBuffer, nKeyLen, pArgBuffer, nArgLen);
- CPPUNIT_ASSERT_MESSAGE("wrong init", aError == rtl_Cipher_E_None);
-
- delete [] pArgBuffer;
- delete [] pKeyBuffer;
-
- rtl_cipher_destroy(aCipher);
- }
-
- void init_002()
- {
- rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeECB);
- CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL);
-
- sal_uInt32 nKeyLen = 16;
- sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ];
- memset(pKeyBuffer, 0, nKeyLen);
- pKeyBuffer[0] = 1;
-
- sal_uInt32 nArgLen = 16;
- sal_uInt8 *pArgBuffer = new sal_uInt8[ nArgLen ];
- memset(pArgBuffer, 0, nArgLen);
-
- rtlCipherError aError = rtl_cipher_init(aCipher, rtl_Cipher_DirectionEncode, pKeyBuffer, nKeyLen, pArgBuffer, nArgLen);
- CPPUNIT_ASSERT_MESSAGE("wrong init", aError == rtl_Cipher_E_None);
-
- delete [] pArgBuffer;
- delete [] pKeyBuffer;
-
- rtl_cipher_destroy(aCipher);
- }
- void init_003()
- {
- rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeECB);
- CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL);
-
- sal_uInt32 nKeyLen = 16;
- sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ];
- memset(pKeyBuffer, 0, nKeyLen);
-
- sal_uInt32 nArgLen = 16;
- sal_uInt8 *pArgBuffer = new sal_uInt8[ nArgLen ];
- memset(pArgBuffer, 0, nArgLen);
- pArgBuffer[0] = 1;
-
- rtlCipherError aError = rtl_cipher_init(aCipher, rtl_Cipher_DirectionEncode, pKeyBuffer, nKeyLen, pArgBuffer, nArgLen);
- CPPUNIT_ASSERT_MESSAGE("wrong init", aError == rtl_Cipher_E_None);
-
- delete [] pArgBuffer;
- delete [] pKeyBuffer;
-
- rtl_cipher_destroy(aCipher);
- }
- void init_004()
- {
- rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeECB);
- CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL);
-
- sal_uInt32 nKeyLen = 16;
- sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ];
- memset(pKeyBuffer, 0, nKeyLen);
- pKeyBuffer[0] = 1;
-
- sal_uInt32 nArgLen = 16;
- sal_uInt8 *pArgBuffer = new sal_uInt8[ nArgLen ];
- memset(pArgBuffer, 0, nArgLen);
- pArgBuffer[0] = 1;
-
- rtlCipherError aError = rtl_cipher_init(aCipher, rtl_Cipher_DirectionEncode, pKeyBuffer, nKeyLen, pArgBuffer, nArgLen);
- CPPUNIT_ASSERT_MESSAGE("wrong init", aError == rtl_Cipher_E_None);
-
- delete [] pArgBuffer;
- delete [] pKeyBuffer;
-
- rtl_cipher_destroy(aCipher);
- }
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(init);
- CPPUNIT_TEST(init_001);
- CPPUNIT_TEST(init_002);
- CPPUNIT_TEST(init_003);
- CPPUNIT_TEST(init_004);
- CPPUNIT_TEST_SUITE_END();
-}; // class init
-// -----------------------------------------------------------------------------
-class initBF : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void initBF_001()
- {
- // seems to be the same as init, so empty
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(initBF);
- CPPUNIT_TEST(initBF_001);
- CPPUNIT_TEST_SUITE_END();
-}; // class initBF
-
-// -----------------------------------------------------------------------------
-
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_cipher::create);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_cipher::createBF);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_cipher::decode);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_cipher::decodeBF);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_cipher::destroy);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_cipher::destroyBF);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_cipher::encode);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_cipher::encodeBF);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_cipher::init);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_cipher::initBF);
-
-} // namespace rtl_cipher
-
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/crc32/makefile.mk b/sal/qa/rtl/crc32/makefile.mk
deleted file mode 100755
index 3820a8cf7..000000000
--- a/sal/qa/rtl/crc32/makefile.mk
+++ /dev/null
@@ -1,66 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..$/..
-
-PRJNAME=sal
-TARGET=qa_rtl_crc32
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-.IF "$(OS)" == "IOS"
-CFLAGSCXX += -DCPPUNIT_PLUGIN_EXPORTED_NAME=cppunitTest_$(TARGET)
-.ENDIF
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-
-SHL1OBJS= \
- $(SLO)$/rtl_crc32.obj
-
-SHL1TARGET= rtl_crc32
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-# SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-DEF1NAME =$(SHL1TARGET)
-# DEF1EXPORTFILE= export.exp
-SHL1VERSIONMAP= $(PRJ)$/qa$/export.map
-
-#------------------------------- All object files -------------------------------
-SLOFILES=$(SHL1OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/rtl/crc32/rtl_crc32.cxx b/sal/qa/rtl/crc32/rtl_crc32.cxx
deleted file mode 100644
index 56af66099..000000000
--- a/sal/qa/rtl/crc32/rtl_crc32.cxx
+++ /dev/null
@@ -1,186 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-// autogenerated file with codegen.pl
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#include <rtl/crc.h>
-
-namespace rtl_CRC32
-{
-
-class test : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
-
- // insert your test code here.
- void rtl_crc32_001()
- {
- // this is demonstration code
- // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
-
- sal_uInt32 nCRC = 0;
-
- char buf[] = {0};
- int num = 0;
-
- nCRC = rtl_crc32(nCRC, buf, num);
-
- CPPUNIT_ASSERT_MESSAGE("empty crc buffer", nCRC == 0);
- }
-
- void rtl_crc32_002()
- {
- sal_uInt32 nCRC = 0;
-
- char buf[] = {0,0};
- int num = sizeof(buf);
-
- nCRC = rtl_crc32(nCRC, buf, num);
-
- CPPUNIT_ASSERT_MESSAGE("buffer contain 2 empty bytes, crc is zero", nCRC != 0);
- }
-
- void rtl_crc32_002_1()
- {
- sal_uInt32 nCRC = 0;
-
- char buf[] = {0,0,0};
- int num = sizeof(buf);
-
- nCRC = rtl_crc32(nCRC, buf, num);
-
- CPPUNIT_ASSERT_MESSAGE("buffer contain 3 empty bytes, crc is zero", nCRC != 0);
- }
-
- /**
- * crc32 check:
- * Build checksum on two buffers with same size but different content,
- * the result (crc32 checksum) must differ
- */
-
- void rtl_crc32_003()
- {
- sal_uInt32 nCRC1 = 0;
- char buf1[] = {2};
- int num1 = sizeof(buf1);
-
- nCRC1 = rtl_crc32(nCRC1, buf1, num1);
-
- sal_uInt32 nCRC2 = 0;
- char buf2[] = {3};
- int num2 = sizeof(buf2);
-
- nCRC2 = rtl_crc32(nCRC2, buf2, num2);
-
- CPPUNIT_ASSERT_MESSAGE("checksum should differ for buf1 and buf2", nCRC1 != nCRC2);
- }
-
- /** check if the crc32 only use as much values, as given
- *
- */
- void rtl_crc32_003_1()
- {
- sal_uInt32 nCRC1 = 0;
- char buf1[] = {2,1};
- int num1 = sizeof(buf1) - 1;
-
- nCRC1 = rtl_crc32(nCRC1, buf1, num1);
-
- sal_uInt32 nCRC2 = 0;
- char buf2[] = {2,2};
- int num2 = sizeof(buf2) - 1;
-
- nCRC2 = rtl_crc32(nCRC2, buf2, num2);
-
- CPPUNIT_ASSERT_MESSAGE("checksum leave it's bounds", nCRC1 == nCRC2);
- }
-
- /** check if the crc32 differ at same content in reverse order
- *
- */
- void rtl_crc32_003_2()
- {
- sal_uInt32 nCRC1 = 0;
- char buf1[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
- int num1 = sizeof(buf1);
-
- nCRC1 = rtl_crc32(nCRC1, buf1, num1);
-
- sal_uInt32 nCRC2 = 0;
- char buf2[] = {20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0};
- int num2 = sizeof(buf2);
-
- nCRC2 = rtl_crc32(nCRC2, buf2, num2);
-
- CPPUNIT_ASSERT_MESSAGE("checksum should differ", nCRC1 != nCRC2);
- }
-
-
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(test);
- CPPUNIT_TEST(rtl_crc32_001);
- CPPUNIT_TEST(rtl_crc32_002);
- CPPUNIT_TEST(rtl_crc32_002_1);
- CPPUNIT_TEST(rtl_crc32_003);
- CPPUNIT_TEST(rtl_crc32_003_1);
- CPPUNIT_TEST(rtl_crc32_003_2);
- CPPUNIT_TEST_SUITE_END();
-}; // class test
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_CRC32::test);
-} // namespace rtl_CRC32
-
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/digest/makefile.mk b/sal/qa/rtl/digest/makefile.mk
deleted file mode 100644
index d6c557f7d..000000000
--- a/sal/qa/rtl/digest/makefile.mk
+++ /dev/null
@@ -1,61 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..$/..
-INCPRE+= $(PRJ)$/qa$/inc
-
-PRJNAME=sal
-TARGET=rtl_digest
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-DLLPRE = # no leading "lib" on .so files
-
-#----------------------------------- OStringBuffer -----------------------------------
-
-SHL1OBJS= \
- $(SLO)$/rtl_digest.obj
-
-SHL1TARGET= rtl_digest
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-DEF1NAME= $(SHL1TARGET)
-SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
-
-#------------------------------- All object files -------------------------------
-SLOFILES= \
- $(SHL1OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/rtl/digest/rtl_digest.cxx b/sal/qa/rtl/digest/rtl_digest.cxx
deleted file mode 100644
index fa515aff5..000000000
--- a/sal/qa/rtl/digest/rtl_digest.cxx
+++ /dev/null
@@ -1,1453 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <cppunit/TestAssert.h>
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#include <rtl/digest.h>
-#include <rtl/ustring.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <rtl/strbuf.hxx>
-
-#include <string.h>
-
-// sample, how to use digest
-
-rtl::OUString CreateMD5FromString( const rtl::OUString& aMsg )
-{
- // PRE: aStr "file"
- // BACK: Str "ababab....0f" Hexcode String
-
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmMD5 );
- if ( handle > 0 )
- {
- const sal_uInt8* pData = (const sal_uInt8*)aMsg.getStr();
- sal_uInt32 nSize = ( aMsg.getLength() * sizeof( sal_Unicode ));
- sal_uInt32 nMD5KeyLen = rtl_digest_queryLength( handle );
- sal_uInt8* pMD5KeyBuffer = new sal_uInt8[ nMD5KeyLen ];
-
- rtl_digest_init( handle, pData, nSize );
- rtl_digest_update( handle, pData, nSize );
- rtl_digest_get( handle, pMD5KeyBuffer, nMD5KeyLen );
- rtl_digest_destroy( handle );
-
- // Create hex-value string from the MD5 value to keep the string size minimal
- rtl::OUStringBuffer aBuffer( nMD5KeyLen * 2 + 1 );
- for ( sal_uInt32 i = 0; i < nMD5KeyLen; ++i )
- aBuffer.append( (sal_Int32)pMD5KeyBuffer[i], 16 );
-
- delete [] pMD5KeyBuffer;
- return aBuffer.makeStringAndClear();
- }
-
- return rtl::OUString();
-}
-
-// -----------------------------------------------------------------------------
-namespace rtl_digest
-{
-
- rtl::OString sSampleString = "This is a sample sentence, which we use to check some crypto functions in sal.";
- rtl::OString sSampleString_MD2 = "647ee6c9d4aa5fdd374ed9d7a156acbf";
- rtl::OString sSampleString_MD5 = "b16b903e6fc0b62ae389013ed93fe531";
- rtl::OString sSampleString_SHA = "eab2814429b2613301c8a077b806af3680548914";
- rtl::OString sSampleString_SHA1 = "2bc5bdb7506a2cdc2fd27fc8b9889343012d5008";
- rtl::OString sSampleString_HMAC_MD5 = "dd9cba48c972fba0a882baa72b079674";
- rtl::OString sSampleString_HMAC_SHA1 = "5d7f43ce6abd1de4438d7e69e01495864490cf3e";
-
- rtl::OString sSampleString_only_one_diff = "This is a sample sentence. which we use to check some crypto functions in sal.";
-
-class create : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void create_001()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmMD5 );
- CPPUNIT_ASSERT_MESSAGE("create with rtl_Digest_AlgorithmMD5", handle != 0);
- rtl_digest_destroy( handle );
- }
- void create_002()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmMD2 );
- CPPUNIT_ASSERT_MESSAGE("create with rtl_Digest_AlgorithmMD2", handle != 0);
- rtl_digest_destroy( handle );
- }
- void create_003()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmSHA );
- CPPUNIT_ASSERT_MESSAGE("create with rtl_Digest_AlgorithmSHA", handle != 0);
- rtl_digest_destroy( handle );
- }
- void create_004()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmSHA1 );
- CPPUNIT_ASSERT_MESSAGE("create with rtl_Digest_AlgorithmSHA1", handle != 0);
- rtl_digest_destroy( handle );
- }
- void create_005()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmHMAC_MD5 );
- CPPUNIT_ASSERT_MESSAGE("create with rtl_Digest_AlgorithmHMAC_MD5", handle != 0);
- rtl_digest_destroy( handle );
- }
- void create_006()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmHMAC_SHA1 );
- CPPUNIT_ASSERT_MESSAGE("create with rtl_Digest_AlgorithmHMAC_SHA1", handle != 0);
- rtl_digest_destroy( handle );
- }
-
- void create_007()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmInvalid );
- printf("Handle is %p\n", handle);
- CPPUNIT_ASSERT_MESSAGE("create with NULL", handle == 0);
- rtl_digest_destroy( handle );
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(create);
- CPPUNIT_TEST(create_001);
- CPPUNIT_TEST(create_002);
- CPPUNIT_TEST(create_003);
- CPPUNIT_TEST(create_004);
- CPPUNIT_TEST(create_005);
- CPPUNIT_TEST(create_006);
- CPPUNIT_TEST(create_007);
- CPPUNIT_TEST_SUITE_END();
-}; // class create
-
-
-
-
-// -----------------------------------------------------------------------------
-
-class createMD5 : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void createMD5_001()
- {
- rtlDigest handle = rtl_digest_createMD5();
-
- rtlDigestAlgorithm aAlgo = rtl_digest_queryAlgorithm(handle);
- CPPUNIT_ASSERT_MESSAGE("query handle", rtl_Digest_AlgorithmMD5 == aAlgo);
-
- rtl_digest_destroy( handle );
- }
- CPPUNIT_TEST_SUITE(createMD5);
- CPPUNIT_TEST(createMD5_001);
- CPPUNIT_TEST_SUITE_END();
-}; // class create
-
-
-// -----------------------------------------------------------------------------
-
-class createMD2 : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void createMD2_001()
- {
- rtlDigest handle = rtl_digest_createMD2( );
-
- rtlDigestAlgorithm aAlgo = rtl_digest_queryAlgorithm(handle);
- CPPUNIT_ASSERT_MESSAGE("query handle", rtl_Digest_AlgorithmMD2 == aAlgo);
-
- rtl_digest_destroy( handle );
- }
- CPPUNIT_TEST_SUITE(createMD2);
- CPPUNIT_TEST(createMD2_001);
- CPPUNIT_TEST_SUITE_END();
-}; // class create
-
-// -----------------------------------------------------------------------------
-
-class createSHA : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void createSHA_001()
- {
- rtlDigest handle = rtl_digest_createSHA( );
-
- rtlDigestAlgorithm aAlgo = rtl_digest_queryAlgorithm(handle);
- CPPUNIT_ASSERT_MESSAGE("query handle", rtl_Digest_AlgorithmSHA == aAlgo);
-
- rtl_digest_destroy( handle );
- }
- CPPUNIT_TEST_SUITE(createSHA);
- CPPUNIT_TEST(createSHA_001);
- CPPUNIT_TEST_SUITE_END();
-}; // class create
-// -----------------------------------------------------------------------------
-
-class createSHA1 : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void createSHA1_001()
- {
- rtlDigest handle = rtl_digest_createSHA1();
-
- rtlDigestAlgorithm aAlgo = rtl_digest_queryAlgorithm(handle);
- CPPUNIT_ASSERT_MESSAGE("query handle", rtl_Digest_AlgorithmSHA1 == aAlgo);
-
- rtl_digest_destroy( handle );
- }
- CPPUNIT_TEST_SUITE(createSHA1);
- CPPUNIT_TEST(createSHA1_001);
- CPPUNIT_TEST_SUITE_END();
-}; // class create
-// -----------------------------------------------------------------------------
-
-class createHMAC_MD5 : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void createHMAC_MD5_001()
- {
- rtlDigest handle = rtl_digest_createHMAC_MD5();
-
- rtlDigestAlgorithm aAlgo = rtl_digest_queryAlgorithm(handle);
- CPPUNIT_ASSERT_MESSAGE("query handle", rtl_Digest_AlgorithmHMAC_MD5 == aAlgo);
-
- rtl_digest_destroy( handle );
- }
- CPPUNIT_TEST_SUITE(createHMAC_MD5);
- CPPUNIT_TEST(createHMAC_MD5_001);
- CPPUNIT_TEST_SUITE_END();
-}; // class create
-// -----------------------------------------------------------------------------
-
-class createHMAC_SHA1 : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void createHMAC_SHA1_001()
- {
- rtlDigest handle = rtl_digest_createHMAC_SHA1();
-
- rtlDigestAlgorithm aAlgo = rtl_digest_queryAlgorithm(handle);
- CPPUNIT_ASSERT_MESSAGE("query handle", rtl_Digest_AlgorithmHMAC_SHA1 == aAlgo);
-
- rtl_digest_destroy( handle );
- }
-
-
- CPPUNIT_TEST_SUITE(createHMAC_SHA1);
- CPPUNIT_TEST(createHMAC_SHA1_001);
- CPPUNIT_TEST_SUITE_END();
-}; // class create
-
-// -----------------------------------------------------------------------------
-
-class queryAlgorithm : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void query_001()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmMD5 );
-
- rtlDigestAlgorithm aAlgo = rtl_digest_queryAlgorithm(handle);
- CPPUNIT_ASSERT_MESSAGE("query handle", rtl_Digest_AlgorithmMD5 == aAlgo);
-
- rtl_digest_destroy( handle );
- }
- void query_002()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmMD2 );
-
- rtlDigestAlgorithm aAlgo = rtl_digest_queryAlgorithm(handle);
- CPPUNIT_ASSERT_MESSAGE("query handle", rtl_Digest_AlgorithmMD2 == aAlgo);
-
- rtl_digest_destroy( handle );
- }
- void query_003()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmSHA );
-
- rtlDigestAlgorithm aAlgo = rtl_digest_queryAlgorithm(handle);
- CPPUNIT_ASSERT_MESSAGE("query handle", rtl_Digest_AlgorithmSHA == aAlgo);
-
- rtl_digest_destroy( handle );
- }
- void query_004()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmSHA1 );
-
- rtlDigestAlgorithm aAlgo = rtl_digest_queryAlgorithm(handle);
- CPPUNIT_ASSERT_MESSAGE("query handle", rtl_Digest_AlgorithmSHA1 == aAlgo);
-
- rtl_digest_destroy( handle );
- }
- void query_005()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmHMAC_MD5 );
-
- rtlDigestAlgorithm aAlgo = rtl_digest_queryAlgorithm(handle);
- CPPUNIT_ASSERT_MESSAGE("query handle", rtl_Digest_AlgorithmHMAC_MD5 == aAlgo);
-
- rtl_digest_destroy( handle );
- }
- void query_006()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmHMAC_SHA1 );
-
- rtlDigestAlgorithm aAlgo = rtl_digest_queryAlgorithm(handle);
- CPPUNIT_ASSERT_MESSAGE("query handle", rtl_Digest_AlgorithmHMAC_SHA1 == aAlgo);
-
- rtl_digest_destroy( handle );
- }
- void query_007()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmInvalid );
-
- rtlDigestAlgorithm aAlgo = rtl_digest_queryAlgorithm(handle);
- CPPUNIT_ASSERT_MESSAGE("query handle", rtl_Digest_AlgorithmInvalid == aAlgo);
-
- rtl_digest_destroy( handle );
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(queryAlgorithm);
- CPPUNIT_TEST( query_001 );
- CPPUNIT_TEST( query_002 );
- CPPUNIT_TEST( query_003 );
- CPPUNIT_TEST( query_004 );
- CPPUNIT_TEST( query_005 );
- CPPUNIT_TEST( query_006 );
- CPPUNIT_TEST( query_007 );
- CPPUNIT_TEST_SUITE_END();
-}; // class create
-
-
-// -----------------------------------------------------------------------------
-class queryLength : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void queryLength_MD5()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmMD5 );
-
- sal_uInt32 nAlgoLength = rtl_digest_queryLength(handle);
- // printf("nAlgoLength:=%d\n", nAlgoLength);
- CPPUNIT_ASSERT_MESSAGE("query Length", RTL_DIGEST_LENGTH_MD5 == nAlgoLength);
-
- rtl_digest_destroy( handle );
- }
- void queryLength_MD2()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmMD2 );
-
- sal_uInt32 nAlgoLength = rtl_digest_queryLength(handle);
- // printf("nAlgoLength:=%d\n", nAlgoLength);
- CPPUNIT_ASSERT_MESSAGE("query length", RTL_DIGEST_LENGTH_MD2 == nAlgoLength);
-
- rtl_digest_destroy( handle );
- }
- void queryLength_SHA()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmSHA );
-
- sal_uInt32 nAlgoLength = rtl_digest_queryLength(handle);
- // printf("nAlgoLength:=%d\n", nAlgoLength);
- CPPUNIT_ASSERT_MESSAGE("query length", RTL_DIGEST_LENGTH_SHA == nAlgoLength);
-
- rtl_digest_destroy( handle );
- }
- void queryLength_SHA1()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmSHA1 );
-
- sal_uInt32 nAlgoLength = rtl_digest_queryLength(handle);
- // printf("nAlgoLength:=%d\n", nAlgoLength);
- CPPUNIT_ASSERT_MESSAGE("query length", RTL_DIGEST_LENGTH_SHA1 == nAlgoLength);
-
- rtl_digest_destroy( handle );
- }
- void queryLength_HMAC_MD5()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmHMAC_MD5 );
-
- sal_uInt32 nAlgoLength = rtl_digest_queryLength(handle);
- // printf("nAlgoLength:=%d\n", nAlgoLength);
- CPPUNIT_ASSERT_MESSAGE("query length", RTL_DIGEST_LENGTH_HMAC_MD5 == nAlgoLength);
-
- rtl_digest_destroy( handle );
- }
- void queryLength_HMAC_SHA1()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmHMAC_SHA1 );
-
- sal_uInt32 nAlgoLength = rtl_digest_queryLength(handle);
- // printf("nAlgoLength:=%d\n", nAlgoLength);
- CPPUNIT_ASSERT_MESSAGE("query length", RTL_DIGEST_LENGTH_HMAC_SHA1 == nAlgoLength);
-
- rtl_digest_destroy( handle );
- }
-
- void queryLength_Illegal()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmInvalid );
-
- sal_uInt32 nAlgoLength = rtl_digest_queryLength(handle);
- // printf("nAlgoLength:=%d\n", nAlgoLength);
- CPPUNIT_ASSERT_MESSAGE("query length", 0 == nAlgoLength);
-
- rtl_digest_destroy( handle );
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(queryLength);
- CPPUNIT_TEST( queryLength_MD2 );
- CPPUNIT_TEST( queryLength_MD5 );
- CPPUNIT_TEST( queryLength_SHA );
- CPPUNIT_TEST( queryLength_SHA1 );
- CPPUNIT_TEST( queryLength_HMAC_MD5 );
- CPPUNIT_TEST( queryLength_HMAC_SHA1 );
- CPPUNIT_TEST( queryLength_Illegal );
- CPPUNIT_TEST_SUITE_END();
-}; // class create
-
-// -----------------------------------------------------------------------------
-
-rtl::OString createHex(sal_uInt8 *_pMD5KeyBuffer, sal_uInt32 _nMD5KeyLen)
-{
- // Create hex-value string from the MD5 value to keep the string size minimal
- rtl::OStringBuffer aBuffer( _nMD5KeyLen * 2 + 1 );
- for ( sal_uInt32 i = 0; i < _nMD5KeyLen; ++i )
- {
- sal_Int32 nValue = (sal_Int32)_pMD5KeyBuffer[i];
- if (nValue < 16) // maximul hex value for 1 byte
- aBuffer.append( static_cast<sal_Int32>(0), static_cast<sal_Int16>(16) /* radix */ );
- aBuffer.append( nValue, 16 /* radix */ );
- }
-
- return aBuffer.makeStringAndClear();
-}
-
-
-// -----------------------------------------------------------------------------
-class init : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void init_000()
- {
- rtlDigest handle = NULL;
-
- rtlDigestError aError = rtl_digest_init(handle, NULL, 0);
-
- CPPUNIT_ASSERT_MESSAGE("init(NULL, 0, 0)", aError == rtl_Digest_E_Argument);
- }
-
- void init_001()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmMD5 );
-
- rtlDigestError aError = rtl_digest_init(handle, NULL, 0);
-
- CPPUNIT_ASSERT_MESSAGE("init(handle, 0, 0)", aError == rtl_Digest_E_None);
-
- rtl_digest_destroy( handle );
- }
-
- // ------------------------------------
- void init_MD2()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmMD2 );
-
- rtl::OString aMsg = sSampleString;
- const sal_uInt8 *pData = (const sal_uInt8*)aMsg.getStr();
- sal_uInt32 nSize = ( aMsg.getLength() );
-
- rtlDigestError aError = rtl_digest_init(handle, pData, nSize);
-
- CPPUNIT_ASSERT_MESSAGE("init(handle, pData, nSize)", aError == rtl_Digest_E_None);
-
- rtl_digest_update( handle, pData, nSize );
-
- sal_uInt32 nKeyLen = rtl_digest_queryLength( handle );
- sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ];
-
- rtl_digest_get( handle, pKeyBuffer, nKeyLen );
- rtl::OString aSum = createHex(pKeyBuffer, nKeyLen);
- delete [] pKeyBuffer;
-
- printf("MD2 Sum: %s\n", aSum.getStr());
- // LLA: how to check right values
- // samples?
-
- rtl_digest_destroy( handle );
- }
-
- void init_MD5()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmMD5 );
-
- rtl::OString aMsg = sSampleString;
- const sal_uInt8 *pData = (const sal_uInt8*)aMsg.getStr();
- sal_uInt32 nSize = ( aMsg.getLength() );
-
- rtlDigestError aError = rtl_digest_init(handle, pData, nSize);
-
- CPPUNIT_ASSERT_MESSAGE("init(handle, pData, nSize)", aError == rtl_Digest_E_None);
-
- rtl_digest_update( handle, pData, nSize );
-
- sal_uInt32 nKeyLen = rtl_digest_queryLength( handle );
- sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ];
-
- rtl_digest_get( handle, pKeyBuffer, nKeyLen );
- rtl::OString aSum = createHex(pKeyBuffer, nKeyLen);
- delete [] pKeyBuffer;
-
- printf("MD5 Sum: %s\n", aSum.getStr());
- // LLA: how to check right values
- // samples?
-
- rtl_digest_destroy( handle );
- }
-
- void init_SHA()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmSHA );
-
- rtl::OString aMsg = sSampleString;
- const sal_uInt8 *pData = (const sal_uInt8*)aMsg.getStr();
- sal_uInt32 nSize = ( aMsg.getLength() );
-
- rtlDigestError aError = rtl_digest_init(handle, pData, nSize);
-
- CPPUNIT_ASSERT_MESSAGE("init(handle, pData, nSize)", aError == rtl_Digest_E_None);
-
- rtl_digest_update( handle, pData, nSize );
-
- sal_uInt32 nKeyLen = rtl_digest_queryLength( handle );
- sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ];
-
- rtl_digest_get( handle, pKeyBuffer, nKeyLen );
- rtl::OString aSum = createHex(pKeyBuffer, nKeyLen);
- delete [] pKeyBuffer;
-
- printf("SHA Sum: %s\n", aSum.getStr());
- // LLA: how to check right values
- // samples?
-
- rtl_digest_destroy( handle );
- }
- void init_SHA1()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmSHA1 );
-
- rtl::OString aMsg = sSampleString;
- const sal_uInt8 *pData = (const sal_uInt8*)aMsg.getStr();
- sal_uInt32 nSize = ( aMsg.getLength() );
-
- rtlDigestError aError = rtl_digest_init(handle, pData, nSize);
-
- CPPUNIT_ASSERT_MESSAGE("init(handle, pData, nSize)", aError == rtl_Digest_E_None);
-
- rtl_digest_update( handle, pData, nSize );
-
- sal_uInt32 nKeyLen = rtl_digest_queryLength( handle );
- sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ];
-
- rtl_digest_get( handle, pKeyBuffer, nKeyLen );
- rtl::OString aSum = createHex(pKeyBuffer, nKeyLen);
- delete [] pKeyBuffer;
-
- printf("SHA1 Sum: %s\n", aSum.getStr());
- // LLA: how to check right values
- // samples?
-
- rtl_digest_destroy( handle );
- }
- void init_HMAC_MD5()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmHMAC_MD5 );
-
- rtl::OString aMsg = sSampleString;
- const sal_uInt8 *pData = (const sal_uInt8*)aMsg.getStr();
- sal_uInt32 nSize = ( aMsg.getLength() );
-
- sal_uInt32 nKeyLen = rtl_digest_queryLength( handle );
- CPPUNIT_ASSERT_MESSAGE( "Keylen must be greater 0", nKeyLen );
-
- sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ];
- CPPUNIT_ASSERT( pKeyBuffer );
- memset(pKeyBuffer, 0, nKeyLen);
-
- rtlDigestError aError = rtl_digest_init(handle, pKeyBuffer, nKeyLen );
-
- CPPUNIT_ASSERT_MESSAGE("init(handle, pData, nSize)", aError == rtl_Digest_E_None);
-
- rtl_digest_update( handle, pData, nSize );
-
- rtl_digest_get( handle, pKeyBuffer, nKeyLen );
- rtl::OString aSum = createHex(pKeyBuffer, nKeyLen);
- delete [] pKeyBuffer;
-
- printf("HMAC_MD5 Sum: %s\n", aSum.getStr());
- // LLA: how to check right values
- // samples?
-
- rtl_digest_destroy( handle );
- }
- void init_HMAC_SHA1()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmHMAC_SHA1 );
-
- rtl::OString aMsg = sSampleString;
- const sal_uInt8 *pData = (const sal_uInt8*)aMsg.getStr();
- sal_uInt32 nSize = ( aMsg.getLength() );
-
- sal_uInt32 nKeyLen = rtl_digest_queryLength( handle );
- CPPUNIT_ASSERT_MESSAGE( "Keylen must be greater 0", nKeyLen );
-
- sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ];
- CPPUNIT_ASSERT( pKeyBuffer );
- memset(pKeyBuffer, 0, nKeyLen);
-
- rtlDigestError aError = rtl_digest_init(handle, pKeyBuffer, nKeyLen );
-
- CPPUNIT_ASSERT_MESSAGE("init(handle, pData, nSize)", aError == rtl_Digest_E_None);
-
- rtl_digest_update( handle, pData, nSize );
-
- rtl_digest_get( handle, pKeyBuffer, nKeyLen );
- rtl::OString aSum = createHex(pKeyBuffer, nKeyLen);
- delete [] pKeyBuffer;
-
- printf("HMAC_SHA1 Sum: %s\n", aSum.getStr());
- // LLA: how to check right values
- // samples?
-
- rtl_digest_destroy( handle );
- }
-
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(init);
- CPPUNIT_TEST( init_000 );
- CPPUNIT_TEST( init_001 );
- CPPUNIT_TEST( init_MD2 );
- CPPUNIT_TEST( init_MD5 );
- CPPUNIT_TEST( init_SHA );
- CPPUNIT_TEST( init_SHA1 );
- CPPUNIT_TEST( init_HMAC_MD5 );
- CPPUNIT_TEST( init_HMAC_SHA1 );
- CPPUNIT_TEST_SUITE_END();
-}; // class init
-
-// ------------------------------------
-
-rtl::OString getMD5Sum(rtl::OString const& _aMsg )
-{
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmMD5 );
-
- const sal_uInt8 *pData = (const sal_uInt8*)_aMsg.getStr();
- sal_uInt32 nSize = ( _aMsg.getLength() );
-
- rtl_digest_init(handle, pData, nSize);
- rtl_digest_update( handle, pData, nSize );
-
- sal_uInt32 nMD5KeyLen = rtl_digest_queryLength( handle );
- sal_uInt8 *pMD5KeyBuffer = new sal_uInt8[ nMD5KeyLen ];
-
- rtl_digest_get( handle, pMD5KeyBuffer, nMD5KeyLen );
- rtl::OString aMD5Sum = createHex(pMD5KeyBuffer, nMD5KeyLen);
- delete [] pMD5KeyBuffer;
-
- rtl_digest_destroy( handle );
- return aMD5Sum;
-}
-
-// -----------------------------------------------------------------------------
-
-class equalTests : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // ------------------------------------
- void equal_001()
- {
- rtl::OString aMsg1 = sSampleString;
- rtl::OString aMsg2 = sSampleString;
-
- rtl::OString aMsgMD5Sum1 = getMD5Sum(aMsg1);
- rtl::OString aMsgMD5Sum2 = getMD5Sum(aMsg2);
-
- CPPUNIT_ASSERT_MESSAGE("md5sum must have a length", aMsgMD5Sum1.getLength() == 32 && aMsgMD5Sum2.getLength() == 32 );
- CPPUNIT_ASSERT_MESSAGE("source is the same, dest must be also the same", aMsgMD5Sum1.equals(aMsgMD5Sum2) == sal_True);
- }
- // ------------------------------------
- void equal_002()
- {
- rtl::OString aMsg1 = sSampleString;
- rtl::OString aMsg2 = sSampleString_only_one_diff;
-
- rtl::OString aMsgMD5Sum1 = getMD5Sum(aMsg1);
- rtl::OString aMsgMD5Sum2 = getMD5Sum(aMsg2);
-
- CPPUNIT_ASSERT_MESSAGE("md5sum must have a length", aMsgMD5Sum1.getLength() == 32 && aMsgMD5Sum2.getLength() == 32 );
- CPPUNIT_ASSERT_MESSAGE("differ only in one char", aMsgMD5Sum1.equals(aMsgMD5Sum2) == sal_False);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(equalTests);
- CPPUNIT_TEST( equal_001 );
- CPPUNIT_TEST( equal_002 );
- CPPUNIT_TEST_SUITE_END();
-}; // class create
-
-
-// -----------------------------------------------------------------------------
-class digest_MD2 : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // ------------------------------------
- void MD2_001()
- {
- rtl::OString aMsg1 = sSampleString;
-
- sal_uInt8 *pBuffer = new sal_uInt8[ RTL_DIGEST_LENGTH_MD2 ];
- CPPUNIT_ASSERT( pBuffer );
- memset(pBuffer, 0, RTL_DIGEST_LENGTH_MD2 );
-
- sal_uInt8 *pMsg1 = (sal_uInt8*)aMsg1.getStr();
- sal_Int32 nLen = aMsg1.getLength();
-
- rtlDigestError aError = rtl_digest_MD2(pMsg1, nLen, pBuffer, RTL_DIGEST_LENGTH_MD2);
-
- CPPUNIT_ASSERT(aError == rtl_Digest_E_None );
-
- rtl::OString aStr = createHex(pBuffer, RTL_DIGEST_LENGTH_MD2);
- printf("Decrypt MD2: %s\n", aStr.getStr());
- CPPUNIT_ASSERT_MESSAGE("checksum of sample string is wrong. Code changes or sample problems, please check.", aStr.equals(sSampleString_MD2) );
-
- delete [] pBuffer;
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(digest_MD2);
- CPPUNIT_TEST( MD2_001 );
- CPPUNIT_TEST_SUITE_END();
-}; // class create
-// -----------------------------------------------------------------------------
-class digest_MD5 : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
- // ------------------------------------
- void MD5_001()
- {
- rtl::OString aMsg1 = sSampleString;
-
- sal_uInt8 *pBuffer = new sal_uInt8[ RTL_DIGEST_LENGTH_MD5 ];
- CPPUNIT_ASSERT( pBuffer );
- memset(pBuffer, 0, RTL_DIGEST_LENGTH_MD5 );
-
- sal_uInt8 *pMsg1 = (sal_uInt8*)aMsg1.getStr();
- sal_Int32 nLen = aMsg1.getLength();
-
- rtlDigestError aError = rtl_digest_MD5(pMsg1, nLen, pBuffer, RTL_DIGEST_LENGTH_MD5);
-
- CPPUNIT_ASSERT(aError == rtl_Digest_E_None );
-
- rtl::OString aStr = createHex(pBuffer, RTL_DIGEST_LENGTH_MD5);
- printf("Decrypt MD5: %s\n", aStr.getStr());
- CPPUNIT_ASSERT_MESSAGE("checksum of sample string is wrong. Code changes or sample problems, please check.", aStr.equals(sSampleString_MD5) );
-
- delete [] pBuffer;
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(digest_MD5);
- CPPUNIT_TEST( MD5_001 );
- CPPUNIT_TEST_SUITE_END();
-}; // class create
-
-// -----------------------------------------------------------------------------
-class digest_SHA : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // ------------------------------------
- void SHA_001()
- {
- rtl::OString aMsg1 = sSampleString;
-
- sal_uInt8 *pBuffer = new sal_uInt8[ RTL_DIGEST_LENGTH_SHA ];
- CPPUNIT_ASSERT( pBuffer );
- memset(pBuffer, 0, RTL_DIGEST_LENGTH_SHA);
-
- sal_uInt8 *pMsg1 = (sal_uInt8*)aMsg1.getStr();
- sal_Int32 nLen = aMsg1.getLength();
-
- rtlDigestError aError = rtl_digest_SHA(pMsg1, nLen, pBuffer, RTL_DIGEST_LENGTH_SHA);
-
- CPPUNIT_ASSERT(aError == rtl_Digest_E_None );
-
- rtl::OString aStr = createHex(pBuffer, RTL_DIGEST_LENGTH_SHA);
- printf("Decrypt SHA: %s\n", aStr.getStr());
- CPPUNIT_ASSERT_MESSAGE("checksum of sample string is wrong. Code changes or sample problems, please check.", aStr.equals(sSampleString_SHA) );
-
- delete [] pBuffer;
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(digest_SHA);
- CPPUNIT_TEST( SHA_001 );
- CPPUNIT_TEST_SUITE_END();
-}; // class create
-
-// -----------------------------------------------------------------------------
-class digest_SHA1 : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // ------------------------------------
- void SHA1_001()
- {
- rtl::OString aMsg1 = sSampleString;
-
- sal_uInt8 *pBuffer = new sal_uInt8[ RTL_DIGEST_LENGTH_SHA1 ];
- CPPUNIT_ASSERT( pBuffer );
- memset(pBuffer, 0, RTL_DIGEST_LENGTH_SHA1);
-
- sal_uInt8 *pMsg1 = (sal_uInt8*)aMsg1.getStr();
- sal_Int32 nLen = aMsg1.getLength();
-
- rtlDigestError aError = rtl_digest_SHA1(pMsg1, nLen, pBuffer, RTL_DIGEST_LENGTH_SHA1);
-
- CPPUNIT_ASSERT(aError == rtl_Digest_E_None );
-
- rtl::OString aStr = createHex(pBuffer, RTL_DIGEST_LENGTH_SHA1);
- printf("Decrypt SHA1: %s\n", aStr.getStr());
- CPPUNIT_ASSERT_MESSAGE("checksum of sample string is wrong. Code changes or sample problems, please check.", aStr.equals(sSampleString_SHA1) );
-
- delete [] pBuffer;
- }
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(digest_SHA1);
- CPPUNIT_TEST( SHA1_001 );
- CPPUNIT_TEST_SUITE_END();
-}; // class create
-// -----------------------------------------------------------------------------
-class digest_HMAC_MD5 : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // ------------------------------------
- void HMAC_MD5_001()
- {
- rtl::OString aMsg1 = sSampleString;
-
- sal_uInt8 *pKeyBuffer = new sal_uInt8[ RTL_DIGEST_LENGTH_HMAC_MD5 ];
- CPPUNIT_ASSERT( pKeyBuffer );
- memset(pKeyBuffer, 0, RTL_DIGEST_LENGTH_HMAC_MD5);
-
- sal_uInt8 *pBuffer = new sal_uInt8[ RTL_DIGEST_LENGTH_HMAC_MD5 ];
- CPPUNIT_ASSERT( pBuffer );
- memset(pBuffer, 0, RTL_DIGEST_LENGTH_HMAC_MD5);
-
- sal_uInt8 *pMsg1 = (sal_uInt8*)aMsg1.getStr();
- sal_Int32 nLen = aMsg1.getLength();
-
- rtlDigestError aError = rtl_digest_HMAC_MD5(pKeyBuffer, RTL_DIGEST_LENGTH_HMAC_MD5, pMsg1, nLen, pBuffer, RTL_DIGEST_LENGTH_HMAC_MD5);
-
- CPPUNIT_ASSERT(aError == rtl_Digest_E_None );
-
- rtl::OString aStr = createHex(pBuffer, RTL_DIGEST_LENGTH_HMAC_MD5);
- printf("Decrypt HMAC_MD5: %s\n", aStr.getStr());
- CPPUNIT_ASSERT_MESSAGE("md5sum of sample string is wrong. Code changes or sample problems, please check.", aStr.equals(sSampleString_HMAC_MD5) );
-
- delete [] pBuffer;
- }
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(digest_HMAC_MD5);
- CPPUNIT_TEST( HMAC_MD5_001 );
- CPPUNIT_TEST_SUITE_END();
-}; // class create
-// -----------------------------------------------------------------------------
-class digest_HMAC_SHA1 : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // ------------------------------------
- void HMAC_SHA1_001()
- {
- rtl::OString aMsg1 = sSampleString;
-
- sal_uInt8 *pKeyBuffer = new sal_uInt8[ RTL_DIGEST_LENGTH_HMAC_SHA1 ];
- CPPUNIT_ASSERT( pKeyBuffer );
- memset(pKeyBuffer, 0, RTL_DIGEST_LENGTH_HMAC_SHA1);
-
- sal_uInt8 *pBuffer = new sal_uInt8[ RTL_DIGEST_LENGTH_HMAC_SHA1 ];
- CPPUNIT_ASSERT( pBuffer );
- memset(pBuffer, 0, RTL_DIGEST_LENGTH_HMAC_SHA1);
-
- sal_uInt8 *pMsg1 = (sal_uInt8*)aMsg1.getStr();
- sal_Int32 nLen = aMsg1.getLength();
-
- rtlDigestError aError = rtl_digest_HMAC_SHA1(pKeyBuffer, RTL_DIGEST_LENGTH_HMAC_SHA1, pMsg1, nLen, pBuffer, RTL_DIGEST_LENGTH_HMAC_SHA1);
-
- CPPUNIT_ASSERT(aError == rtl_Digest_E_None );
-
- rtl::OString aStr = createHex(pBuffer, RTL_DIGEST_LENGTH_HMAC_SHA1);
- printf("Decrypt HMAC_SHA1: %s\n", aStr.getStr());
- CPPUNIT_ASSERT_MESSAGE("md5sum of sample string is wrong. Code changes or sample problems, please check.", aStr.equals(sSampleString_HMAC_SHA1) );
-
- delete [] pBuffer;
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(digest_HMAC_SHA1);
- CPPUNIT_TEST( HMAC_SHA1_001 );
- CPPUNIT_TEST_SUITE_END();
-}; // class create
-// -----------------------------------------------------------------------------
-class digest_PBKDF2 : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // ------------------------------------
- rtl::OString /* key */ run_check_PBKDF2(rtl::OString const& _sPassword, bool _bClearSalt, sal_uInt32 _nCount)
- {
- sal_uInt32 nKeyLen = RTL_DIGEST_LENGTH_HMAC_SHA1;
- sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ];
- CPPUNIT_ASSERT( pKeyBuffer );
- memset(pKeyBuffer, 0, nKeyLen);
-
- sal_uInt8 *pPassword = (sal_uInt8*)_sPassword.getStr();
- sal_Int32 nPasswordLen = _sPassword.getLength();
-
- sal_uInt32 nSaltDataLen = RTL_DIGEST_LENGTH_HMAC_SHA1;
- sal_uInt8 *pSaltData = new sal_uInt8[ nSaltDataLen ];
- CPPUNIT_ASSERT( pSaltData );
- memset(pSaltData, 0, nSaltDataLen);
-
- if (! _bClearSalt)
- {
- // wilful contamination
- pSaltData[0] = 1;
- }
-
- rtlDigestError aError = rtl_digest_PBKDF2(pKeyBuffer, nKeyLen, pPassword, nPasswordLen, pSaltData, nSaltDataLen, _nCount);
-
- CPPUNIT_ASSERT(aError == rtl_Digest_E_None );
-
- rtl::OString aKey = createHex(pKeyBuffer, nKeyLen);
- printf("Key: %s\n", aKey.getStr());
-
- // rtl::OString sSalt = createHex(pSaltData, nSaltDataLen);
- // printf("Salt: %s\n", sSalt.getStr());
-
- // CPPUNIT_ASSERT_MESSAGE("md5sum of sample string is wrong. Code changes or sample problems, please check.", aStr.equals(sSampleString_PBKDF2) );
-
- delete [] pSaltData;
- delete [] pKeyBuffer;
- return aKey;
- }
-
- void PBKDF2_001()
- {
- rtl::OString aPassword = "Password";
-
- // all permutations
- run_check_PBKDF2(aPassword, false, 1);
- run_check_PBKDF2(aPassword, false, 2);
- run_check_PBKDF2(aPassword, true, 1);
- run_check_PBKDF2(aPassword, true, 2);
- run_check_PBKDF2(aPassword, false, 3);
- run_check_PBKDF2(aPassword, false, 4);
- run_check_PBKDF2(aPassword, true, 3);
- run_check_PBKDF2(aPassword, true, 4);
- }
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(digest_PBKDF2);
- CPPUNIT_TEST( PBKDF2_001 );
- CPPUNIT_TEST_SUITE_END();
-}; // class create
-// -----------------------------------------------------------------------------
-
-class update : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void update_000()
- {
- rtlDigest aHandle = NULL;
- rtlDigestError aError = rtl_digest_update(aHandle, NULL, 0);
- CPPUNIT_ASSERT_MESSAGE("does not handle wrong parameter", aError == rtl_Digest_E_Argument );
- }
-
- void updateMD2_000()
- {
- rtlDigest aHandle = NULL;
- rtlDigestError aError = rtl_digest_updateMD2(aHandle, NULL, 0);
- CPPUNIT_ASSERT_MESSAGE("does not handle wrong parameter", aError == rtl_Digest_E_Argument );
- }
-
- void updateMD2_001()
- {
- rtlDigest aHandle = rtl_digest_create( rtl_Digest_AlgorithmMD2 );
- CPPUNIT_ASSERT_MESSAGE("create with rtl_Digest_AlgorithmMD2", aHandle != 0);
-
- rtl::OString aMsg = sSampleString;
- const sal_uInt8* pData = (const sal_uInt8*)aMsg.getStr();
-
- rtlDigestError aError = rtl_digest_updateMD2(aHandle, NULL, 0);
- CPPUNIT_ASSERT_MESSAGE("handle parameter 'pData' wrong", aError == rtl_Digest_E_Argument );
-
- /* rtlDigestError */ aError = rtl_digest_updateMD2(aHandle, pData, 0);
- CPPUNIT_ASSERT_MESSAGE("handle parameter 'nSize' wrong", aError == rtl_Digest_E_None );
-
- rtl_digest_destroyMD2(aHandle);
- }
- void updateMD5_000()
- {
- rtlDigest aHandle = NULL;
- rtlDigestError aError = rtl_digest_updateMD5(aHandle, NULL, 0);
- CPPUNIT_ASSERT_MESSAGE("does not handle wrong parameter", aError == rtl_Digest_E_Argument );
- }
-
- void updateMD5_001()
- {
- // use wrong Algorithm!!! This is volitional!
- rtlDigest aHandle = rtl_digest_create( rtl_Digest_AlgorithmMD2 );
- CPPUNIT_ASSERT_MESSAGE("create with rtl_Digest_AlgorithmMD2", aHandle != 0);
-
- rtl::OString aMsg = sSampleString;
- const sal_uInt8* pData = (const sal_uInt8*)aMsg.getStr();
- sal_uInt32 nSize = ( aMsg.getLength() );
-
- rtlDigestError aError = rtl_digest_updateMD5(aHandle, pData, nSize);
- CPPUNIT_ASSERT_MESSAGE("handle parameter 'handle' wrong", aError == rtl_Digest_E_Algorithm );
-
- rtl_digest_destroyMD5(aHandle);
- }
-
- void updateMD5_002()
- {
- rtlDigest aHandle = rtl_digest_create( rtl_Digest_AlgorithmMD5 );
- CPPUNIT_ASSERT_MESSAGE("create with rtl_Digest_AlgorithmMD5", aHandle != 0);
-
- rtl::OString aMsg = sSampleString;
- const sal_uInt8* pData = (const sal_uInt8*)aMsg.getStr();
-
- rtlDigestError aError = rtl_digest_updateMD5(aHandle, NULL, 0);
- CPPUNIT_ASSERT_MESSAGE("handle parameter 'pData' wrong", aError == rtl_Digest_E_Argument );
-
- /* rtlDigestError */ aError = rtl_digest_updateMD5(aHandle, pData, 0);
- CPPUNIT_ASSERT_MESSAGE("handle parameter 'nSize' wrong", aError == rtl_Digest_E_None );
-
- rtl_digest_destroyMD5(aHandle);
- }
-
- void updateSHA_000()
- {
- rtlDigest aHandle = NULL;
- rtlDigestError aError = rtl_digest_updateSHA(aHandle, NULL, 0);
- CPPUNIT_ASSERT_MESSAGE("does not handle wrong parameter", aError == rtl_Digest_E_Argument );
- }
-
- void updateSHA1_000()
- {
- rtlDigest aHandle = NULL;
- rtlDigestError aError = rtl_digest_updateSHA1(aHandle, NULL, 0);
- CPPUNIT_ASSERT_MESSAGE("does not handle wrong parameter", aError == rtl_Digest_E_Argument );
- }
-
- void updateHMAC_MD5_000()
- {
- rtlDigest aHandle = NULL;
- rtlDigestError aError = rtl_digest_updateHMAC_MD5(aHandle, NULL, 0);
- CPPUNIT_ASSERT_MESSAGE("does not handle wrong parameter", aError == rtl_Digest_E_Argument );
- }
-
- void updateHMAC_SHA1_000()
- {
- rtlDigest aHandle = NULL;
- rtlDigestError aError = rtl_digest_updateHMAC_SHA1(aHandle, NULL, 0);
- CPPUNIT_ASSERT_MESSAGE("does not handle wrong parameter", aError == rtl_Digest_E_Argument );
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(update);
- CPPUNIT_TEST(update_000);
- CPPUNIT_TEST(updateMD5_000);
- CPPUNIT_TEST(updateMD5_001);
- CPPUNIT_TEST(updateMD5_002);
- CPPUNIT_TEST(updateMD5_000);
- CPPUNIT_TEST(updateSHA_000);
- CPPUNIT_TEST(updateSHA1_000);
- CPPUNIT_TEST(updateHMAC_MD5_000);
- CPPUNIT_TEST(updateHMAC_SHA1_000);
- CPPUNIT_TEST_SUITE_END();
-}; // class create
-// -----------------------------------------------------------------------------
-
-class get : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void get_000()
- {
- rtlDigest aHandle = NULL;
- rtlDigestError aError = rtl_digest_get(aHandle, NULL, 0);
- CPPUNIT_ASSERT_MESSAGE("does not handle wrong parameter", aError == rtl_Digest_E_Argument );
- }
- void getMD5_000()
- {
- rtlDigest aHandle = NULL;
- rtlDigestError aError = rtl_digest_getMD5(aHandle, NULL, 0);
- CPPUNIT_ASSERT_MESSAGE("does not handle wrong parameter", aError == rtl_Digest_E_Argument );
- }
- void getMD5_001()
- {
- // test with wrong algorithm
- rtlDigest aHandle = rtl_digest_create( rtl_Digest_AlgorithmMD2 );
- CPPUNIT_ASSERT_MESSAGE("create with rtl_Digest_AlgorithmMD2", aHandle != 0);
-
- sal_uInt32 nKeyLen = rtl_digest_queryLength( aHandle );
- sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ];
-
- rtlDigestError aError = rtl_digest_getMD5(aHandle, NULL, 0);
- CPPUNIT_ASSERT_MESSAGE("handle 2. parameter wrong", aError == rtl_Digest_E_Argument );
-
- /* rtlDigestError */ aError = rtl_digest_getMD5(aHandle, pKeyBuffer, 0);
- CPPUNIT_ASSERT_MESSAGE("handle parameter 'handle' wrong", aError == rtl_Digest_E_Algorithm );
-
- rtl_digest_destroyMD2(aHandle);
- }
-
- void getMD5_002()
- {
- rtlDigest aHandle = rtl_digest_create( rtl_Digest_AlgorithmMD5 );
- CPPUNIT_ASSERT_MESSAGE("create with rtl_Digest_AlgorithmMD5", aHandle != 0);
-
- sal_uInt32 nKeyLen = rtl_digest_queryLength( aHandle );
- sal_uInt8 *pKeyBuffer = new sal_uInt8[ nKeyLen ];
-
- rtlDigestError aError = rtl_digest_getMD5(aHandle, NULL /* pKeyBuffer */ , nKeyLen);
- CPPUNIT_ASSERT_MESSAGE("handle parameter 'pData' wrong", aError == rtl_Digest_E_Argument );
-
- /* rtlDigestError */ aError = rtl_digest_getMD5(aHandle, pKeyBuffer, 0);
- CPPUNIT_ASSERT_MESSAGE("handle parameter 'nSize' wrong", aError == rtl_Digest_E_BufferSize );
-
- rtl_digest_destroyMD5(aHandle);
- delete [] pKeyBuffer;
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(get);
- CPPUNIT_TEST(get_000);
- CPPUNIT_TEST(getMD5_000);
- CPPUNIT_TEST(getMD5_001);
- CPPUNIT_TEST(getMD5_002);
- CPPUNIT_TEST_SUITE_END();
-}; // class create
-
-// -----------------------------------------------------------------------------
-class destroy : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void destroy_001()
- {
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmMD5 );
- CPPUNIT_ASSERT_MESSAGE("create with rtl_Digest_AlgorithmMD5", handle != 0);
-
- // not really testable
- // LLA: good will test.
- rtl_digest_destroy( handle );
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(destroy);
- CPPUNIT_TEST(destroy_001);
- CPPUNIT_TEST_SUITE_END();
-}; // class create
-// -----------------------------------------------------------------------------
-
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::create);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::createMD2);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::createMD5);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::createSHA);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::createSHA1);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::createHMAC_MD5);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::createHMAC_SHA1);
-
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::destroy);
-
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::queryAlgorithm);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::queryLength);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::init);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::equalTests);
-
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::digest_MD2);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::digest_MD5);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::digest_SHA);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::digest_SHA1);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::digest_HMAC_MD5);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::digest_HMAC_SHA1);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::digest_PBKDF2);
-
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::update);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::get);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_digest::destroy);
-} // namespace rtl_digest
-
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/doublelock/makefile.mk b/sal/qa/rtl/doublelock/makefile.mk
deleted file mode 100644
index a1d035673..000000000
--- a/sal/qa/rtl/doublelock/makefile.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..$/..
-
-PRJNAME=sal
-TARGET=qa_rtl_doublelock
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-.IF "$(OS)" == "IOS"
-CFLAGSCXX += -DCPPUNIT_PLUGIN_EXPORTED_NAME=cppunitTest_$(TARGET)
-.ENDIF
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-
-.IF "$(COM)" == "MSC"
- CFLAGS+=/Ob1
-.ENDIF
-
-SHL1OBJS= \
- $(SLO)$/rtl_doublelocking.obj
-
-SHL1TARGET= rtl_doublelocking
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-DEF1NAME =$(SHL1TARGET)
-SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
-
-#------------------------------- All object files -------------------------------
-SLOFILES=$(SHL1OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/rtl/doublelock/rtl_doublelocking.cxx b/sal/qa/rtl/doublelock/rtl_doublelocking.cxx
deleted file mode 100644
index 2690091eb..000000000
--- a/sal/qa/rtl/doublelock/rtl_doublelocking.cxx
+++ /dev/null
@@ -1,260 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-//------------------------------------------------------------------------
-// include files
-//------------------------------------------------------------------------
-#include <sal/types.h>
-
-#include <osl/thread.hxx>
-#include <osl/time.h>
-
-#include <rtl/instance.hxx>
-#include <rtl/ustring.hxx>
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#ifdef WNT
-#include <windows.h>
-#else
-#include <unistd.h>
-#include <time.h>
-#endif
-
-// -----------------------------------------------------------------------------
-#define CONST_TEST_STRING "gregorian"
-
-namespace {
-struct Gregorian : public rtl::StaticWithInit<rtl::OUString, Gregorian> {
- const rtl::OUString operator () () {
- return rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( CONST_TEST_STRING ));
- }
-};
-}
-
-// -----------------------------------------------------------------------------
-namespace ThreadHelper
-{
- // typedef enum {
- // QUIET=1,
- // VERBOSE
- // } eSleepVerboseMode;
-
- void thread_sleep_tenth_sec(sal_Int32 _nTenthSec/*, eSleepVerboseMode nVerbose = VERBOSE*/)
- {
- // if (nVerbose == VERBOSE)
- // {
- // printf("wait %d tenth seconds. ", _nTenthSec );
- // fflush(stdout);
- // }
-#ifdef WNT //Windows
- Sleep(_nTenthSec * 100 );
-#endif
-#if ( defined UNX )
- TimeValue nTV;
- nTV.Seconds = static_cast<sal_uInt32>( _nTenthSec/10 );
- nTV.Nanosec = ( (_nTenthSec%10 ) * 100000000 );
- osl_waitThread(&nTV);
-#endif
- // if (nVerbose == VERBOSE)
- // {
- // printf("done\n");
- // }
- }
-}
-
-// -----------------------------------------------------------------------------
-
-/** Simple thread for testing Thread-create.
- * Just add 1 of value 0, and after running, result is 1.
- */
-class OGetThread : public osl::Thread
-{
- sal_Int32 m_nOK;
- sal_Int32 m_nFails;
-
- rtl::OUString m_sConstStr;
-public:
- OGetThread()
- :m_nOK(0),
- m_nFails(0)
- {
- m_sConstStr = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( CONST_TEST_STRING ));
- }
-
- sal_Int32 getOK() { return m_nOK; }
- sal_Int32 getFails() {return m_nFails;}
-
-protected:
-
- /** guarded value which initialized 0
-
- @see ThreadSafeValue
- */
- void SAL_CALL run()
- {
- while(schedule())
- {
- rtl::OUString aStr = Gregorian::get();
- if (aStr.equals(m_sConstStr))
- {
- m_nOK++;
- }
- else
- {
- m_nFails++;
- }
- ThreadHelper::thread_sleep_tenth_sec(1);
- }
- }
-
-public:
-
- virtual void SAL_CALL suspend()
- {
- ::osl::Thread::suspend();
- }
-
- ~OGetThread()
- {
- if (isRunning())
- {
- printf("error: not terminated.\n");
- }
- }
-};
-
-// -----------------------------------------------------------------------------
-namespace rtl_DoubleLocking
-{
-
-/** Test of the osl::Thread::create method
- */
-
- class getValue : public CppUnit::TestFixture
- {
- public:
-
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
-
- void getValue_001()
- {
- rtl::OUString aStr = Gregorian::get();
-
- CPPUNIT_ASSERT_MESSAGE(
- "Gregorian::get() failed, wrong value expected.",
- aStr.getLength() != 0
- );
- }
-
- /** check 2 threads.
-
- ALGORITHM:
- Here the function should show, that 2 different threads,
- which only increase a value, should run at the same time with same prio.
- The test fails, if the difference between the two values is more than 5%
- but IMHO this isn't a failure, it's only a feature of the OS.
- */
-
- void getValue_002()
- {
- // initial 5 threads with different priorities
- OGetThread* pThread = new OGetThread();
- OGetThread* p2Thread = new OGetThread();
-
- //Create them and start running at the same time
- pThread->create();
- p2Thread->create();
-
- ThreadHelper::thread_sleep_tenth_sec(5);
-
- pThread->terminate();
- p2Thread->terminate();
-
- pThread->join();
- p2Thread->join();
-
- sal_Int32 nValueOK = 0;
- nValueOK = pThread->getOK();
-
- sal_Int32 nValueOK2 = 0;
- nValueOK2 = p2Thread->getOK();
-
-#if OSL_DEBUG_LEVEL > 2
- printf("Value in Thread #1 is %d\n", nValueOK);
- printf("Value in Thread #2 is %d\n", nValueOK2);
-#else
- (void)nValueOK2;
-#endif
-
- sal_Int32 nValueFails = 0;
- nValueFails = pThread->getFails();
-
- sal_Int32 nValueFails2 = 0;
- nValueFails2 = p2Thread->getFails();
-
-#if OSL_DEBUG_LEVEL > 2
- printf("Fails in Thread #1 is %d\n", nValueFails);
- printf("Fails in Thread #2 is %d\n", nValueFails2);
-#endif
-
- delete pThread;
- delete p2Thread;
-
- CPPUNIT_ASSERT_MESSAGE(
- "getValue() failed, wrong value expected.",
- nValueOK != 0 && nValueFails == 0 && nValueFails2 == 0
- );
- }
-
- CPPUNIT_TEST_SUITE(getValue);
- CPPUNIT_TEST(getValue_001);
- CPPUNIT_TEST(getValue_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class create
-// -----------------------------------------------------------------------------
- CPPUNIT_TEST_SUITE_REGISTRATION(rtl_DoubleLocking::getValue);
-} // namespace rtl_DoubleLocking
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/locale/makefile.mk b/sal/qa/rtl/locale/makefile.mk
deleted file mode 100644
index 0d1c8f83f..000000000
--- a/sal/qa/rtl/locale/makefile.mk
+++ /dev/null
@@ -1,66 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..$/..
-
-PRJNAME=sal
-TARGET=qa_rtl_locale
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-.IF "$(OS)" == "IOS"
-CFLAGSCXX += -DCPPUNIT_PLUGIN_EXPORTED_NAME=cppunitTest_$(TARGET)
-.ENDIF
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-
-SHL1OBJS= \
- $(SLO)$/rtl_locale.obj
-
-SHL1TARGET= rtl_locale
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-# SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-DEF1NAME =$(SHL1TARGET)
-# DEF1EXPORTFILE= export.exp
-SHL1VERSIONMAP= $(PRJ)$/qa$/export.map
-
-#------------------------------- All object files -------------------------------
-SLOFILES=$(SHL1OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/rtl/locale/rtl_locale.cxx b/sal/qa/rtl/locale/rtl_locale.cxx
deleted file mode 100644
index 4f2b3dda3..000000000
--- a/sal/qa/rtl/locale/rtl_locale.cxx
+++ /dev/null
@@ -1,347 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-// autogenerated file with codegen.pl
-
-#include <osl/thread.h>
-#include <rtl/locale.hxx>
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-namespace rtl_locale
-{
- // default locale for test purpose
- void setDefaultLocale()
- {
- rtl::OLocale::setDefault(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("de")), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DE")), /* rtl::OUString() */ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("hochdeutsch")) );
- }
-
-class getDefault : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- // start message
- rtl_locale::setDefaultLocale();
- }
-
- void tearDown()
- {
- }
-
- // insert your test code here.
- void getDefault_000()
- {
- // this is demonstration code
- // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
-
- // due to the fact, we set the default locale at first, this test is no longer possible
- // ::rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
- // CPPUNIT_ASSERT_MESSAGE("locale must be null", aLocale.getData() == NULL);
-
- }
-
- void getDefault_001()
- {
- // rtl::OLocale::setDefault(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("de")), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DE")), rtl::OUString());
- rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
- CPPUNIT_ASSERT_MESSAGE("locale must not null", aLocale.getData() != NULL);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(getDefault);
- CPPUNIT_TEST(getDefault_000);
- CPPUNIT_TEST(getDefault_001);
- CPPUNIT_TEST_SUITE_END();
-}; // class getDefault
-
-
-class setDefault : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- // start message
- rtl_locale::setDefaultLocale();
- }
-
- void tearDown()
- {
- setDefaultLocale();
- }
-
- // insert your test code here.
- void setDefault_001()
- {
- rtl::OLocale::setDefault(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("en")), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("US")), rtl::OUString());
- rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
- CPPUNIT_ASSERT_MESSAGE("locale must not null", aLocale.getData() != NULL);
-
- // be sure to not GPF
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(setDefault);
- CPPUNIT_TEST(setDefault_001);
- CPPUNIT_TEST_SUITE_END();
-}; // class setDefault
-
-
-class getLanguage : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- // start message
- rtl_locale::setDefaultLocale();
- }
-
- void tearDown()
- {
- }
-
- // insert your test code here.
- void getLanguage_001()
- {
- rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
- rtl::OUString suLanguage = aLocale.getLanguage();
- CPPUNIT_ASSERT_MESSAGE("locale language must be 'de'", suLanguage.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("de"))));
- }
- void getLanguage_002()
- {
- rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
- rtl::OUString suLanguage(rtl_locale_getLanguage(aLocale.getData()), SAL_NO_ACQUIRE);
- CPPUNIT_ASSERT_MESSAGE("locale language must be 'de'", suLanguage.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("de"))));
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(getLanguage);
- CPPUNIT_TEST(getLanguage_001);
- CPPUNIT_TEST(getLanguage_002);
- CPPUNIT_TEST_SUITE_END();
-}; // class getLanguage
-
-
-class getCountry : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- // start message
- rtl_locale::setDefaultLocale();
- }
-
- void tearDown()
- {
- }
-
- // insert your test code here.
- void getCountry_001()
- {
- rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
- rtl::OUString suCountry = aLocale.getCountry();
- CPPUNIT_ASSERT_MESSAGE("locale country must be 'DE'", suCountry.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DE"))));
- }
- void getCountry_002()
- {
- rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
- rtl::OUString suCountry(rtl_locale_getCountry(aLocale.getData()), SAL_NO_ACQUIRE);
- CPPUNIT_ASSERT_MESSAGE("locale country must be 'DE'", suCountry.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DE"))));
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(getCountry);
- CPPUNIT_TEST(getCountry_001);
- CPPUNIT_TEST(getCountry_002);
- CPPUNIT_TEST_SUITE_END();
-}; // class getCountry
-
-
-class getVariant : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- // start message
- rtl_locale::setDefaultLocale();
- }
-
- void tearDown()
- {
- }
-
- // insert your test code here.
- void getVariant_001()
- {
- rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
- rtl::OUString suVariant = aLocale.getVariant();
- CPPUNIT_ASSERT_MESSAGE("locale variant must be 'hochdeutsch'", suVariant.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("hochdeutsch"))));
- }
- void getVariant_002()
- {
- rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
- rtl::OUString suVariant(rtl_locale_getVariant(aLocale.getData()), SAL_NO_ACQUIRE);
- CPPUNIT_ASSERT_MESSAGE("locale variant must be 'hochdeutsch'", suVariant.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("hochdeutsch"))));
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(getVariant);
- CPPUNIT_TEST(getVariant_001);
- CPPUNIT_TEST(getVariant_002);
- CPPUNIT_TEST_SUITE_END();
-}; // class getVariant
-
-
-class hashCode : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- // start message
- rtl_locale::setDefaultLocale();
- }
-
- void tearDown()
- {
- }
-
- // insert your test code here.
- void hashCode_001()
- {
- rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
- sal_Int32 nHashCode = aLocale.hashCode();
- CPPUNIT_ASSERT_MESSAGE("locale hashcode must be 3831", nHashCode != 0);
- }
- void hashCode_002()
- {
- rtl::OLocale aLocale = ::rtl::OLocale::getDefault();
- sal_Int32 nHashCode = rtl_locale_hashCode(aLocale.getData());
- CPPUNIT_ASSERT_MESSAGE("locale hashcode must be 3831", nHashCode != 0);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(hashCode);
- CPPUNIT_TEST(hashCode_001);
- CPPUNIT_TEST(hashCode_002);
- CPPUNIT_TEST_SUITE_END();
-}; // class hashCode
-
-
-class equals : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- // start message
- rtl_locale::setDefaultLocale();
- }
-
- void tearDown()
- {
- }
-
- // insert your test code here.
- void equals_001()
- {
- rtl::OLocale aLocale1 = rtl::OLocale::registerLocale(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("en")), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("US")), rtl::OUString());
- rtl::OLocale aLocale2 = rtl::OLocale::registerLocale(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("en")), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("US")));
-
- sal_Bool bLocaleAreEqual = sal_False;
- bLocaleAreEqual = (aLocale1 == aLocale2);
-
- CPPUNIT_ASSERT_MESSAGE("check operator ==()", bLocaleAreEqual == sal_True);
- }
-
- void equals_002()
- {
- rtl::OLocale aLocale1 = rtl::OLocale::registerLocale(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("en")), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("US")), rtl::OUString());
- rtl::OLocale aLocale2 = rtl::OLocale::registerLocale(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("en")), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("US")));
-
- sal_Int32 nEqual = rtl_locale_equals(aLocale1.getData(), aLocale2.getData());
- CPPUNIT_ASSERT(nEqual != 0);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(equals);
- CPPUNIT_TEST(equals_001);
- CPPUNIT_TEST(equals_002);
- CPPUNIT_TEST_SUITE_END();
-}; // class equals
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_locale::getDefault);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_locale::setDefault);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_locale::getLanguage);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_locale::getCountry);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_locale::getVariant);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_locale::hashCode);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_locale::equals);
-} // namespace rtl_locale
-
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/logfile/makefile.mk b/sal/qa/rtl/logfile/makefile.mk
deleted file mode 100644
index 6660011f3..000000000
--- a/sal/qa/rtl/logfile/makefile.mk
+++ /dev/null
@@ -1,63 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-
-PRJNAME=sal
-TARGET=qa_rtl_logfile
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-
-# --- BEGIN --------------------------------------------------------
-SHL1OBJS= \
- $(SLO)$/rtl_logfile.obj
-SHL1TARGET= rtl_logfile
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-DEF1NAME =$(SHL1TARGET)
-SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
-
-# END --------------------------------------------------------------
-
-#------------------------------- All object files -------------------------------
-# do this here, so we get right dependencies
-# SLOFILES=$(SHL1OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/rtl/logfile/rtl_logfile.cxx b/sal/qa/rtl/logfile/rtl_logfile.cxx
deleted file mode 100644
index ac3dfc165..000000000
--- a/sal/qa/rtl/logfile/rtl_logfile.cxx
+++ /dev/null
@@ -1,255 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-// LLA:
-// this file is converted to use with testshl2
-// original was placed in sal/test/textenc.cxx
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#if defined(UNX)
-# include <unistd.h>
-#endif
-
-#include <rtl/logfile.hxx>
-
-#include <osl/file.hxx>
-#if ( defined WNT ) // Windows
-#include <tchar.h>
-#endif
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-using namespace ::osl;
-
-inline void printUString( const ::rtl::OUString & str, const sal_Char * msg = "" )
-{
-
- if (strlen(msg) > 0)
- {
- printf("%s: ", msg );
- }
- rtl::OString aString;
- aString = ::rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US );
- printf("%s\n", (char *)aString.getStr( ) );
-}
-
-/** get the absolute source file URL "file:///.../sal/qa/rtl/logfile/"
- */
-
-inline ::rtl::OUString getTempPath( void )
-{
-#ifdef UNX
- rtl::OUString suDirURL( RTL_CONSTASCII_USTRINGPARAM("file:///tmp/") );
-#else /* Windows */
- rtl::OUString suDirURL( RTL_CONSTASCII_USTRINGPARAM("file:///c:/temp/") );
-#endif
- return suDirURL;
-}
-
-/** if the file exist
- */
-bool t_fileExist(rtl::OUString const& _sFilename)
-{
- ::osl::FileBase::RC nError1;
- ::osl::File aTestFile( _sFilename );
- nError1 = aTestFile.open ( osl_File_OpenFlag_Read );
- if ( ( ::osl::FileBase::E_NOENT != nError1 ) && ( ::osl::FileBase::E_ACCES != nError1 ) )
- {
- aTestFile.close( );
- return true;
- }
- return false;
-}
-/** get Current PID.
-*/
-inline ::rtl::OUString getCurrentPID( )
-{
- //~ Get current PID and turn it into OUString;
- int nPID = 0;
-#ifdef WNT
- nPID = GetCurrentProcessId();
-#else
- nPID = getpid();
-#endif
- return ( ::rtl::OUString::valueOf( ( long )nPID ) );
-}
-
-
-// -----------------------------------------------------------------------------
-/*
- * LLA:
- * check if logfile is create
- * be careful with relative logfiles they will create near the source, maybe it's no write access to it.
- * use absolute path to logfile instead.
- */
-namespace rtl_logfile
-{
- class logfile : public CppUnit::TestFixture
- {
- public:
-
- //directly call rtl_logfile_trace
- void logfile_001()
- {
-#ifdef SOLARIS
- putenv(const_cast< char * >("RTL_LOGFILE=/tmp/logfile1"));
-#endif
-#ifdef WNT
- putenv("RTL_LOGFILE=c:\\temp\\logfile1");
-#endif
-#ifdef LINUX
- setenv("RTL_LOGFILE", "/tmp/logfile1", 0);
-#endif
- rtl_logfile_trace("trace %d\n", 2 );
- rtl_logfile_trace("trace %d %d\n" , 1,2 );
- rtl_logfile_trace("trace %d %d %d\n" , 1 , 2 ,3 );
-
- rtl::OUString suFilePath = getTempPath();
- suFilePath += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("logfile1_")) + getCurrentPID( );
- suFilePath += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".log"));
-
- ::osl::FileBase::RC nError1;
- ::osl::File aTestFile( suFilePath );
- printUString( suFilePath );
- nError1 = aTestFile.open ( osl_File_OpenFlag_Read );
- CPPUNIT_ASSERT_MESSAGE("create the log file: but the logfile does not exist",
- ( ::osl::FileBase::E_NOENT != nError1 ) &&
- ( ::osl::FileBase::E_ACCES != nError1 ) );
- sal_Char buffer_read[400];
- sal_uInt64 nCount_read;
- nError1 = aTestFile.read( buffer_read, 400, nCount_read );
- //printf("buffer is %s\n", buffer_read );
- CPPUNIT_ASSERT_MESSAGE("write right logs", strstr( buffer_read, "trace 1 2 3") != NULL );
- aTestFile.sync();
- aTestFile.close();
- /*// delete logfile on the disk
-
- nError1 = osl::File::remove( suFilePath );
- printError( nError1 );
- CPPUNIT_ASSERT_MESSAGE( "In deleteTestFile Function: remove ", ( ::osl::FileBase::E_None == nError1 ) || ( nError1 == ::osl::FileBase::E_NOENT ) );
- */
- }
- //Profiling output should only be generated for a special product version of OpenOffice
- // which is compiled with a defined preprocessor symbol 'TIMELOG'. Now, the symbol not defined
- void logfile_002()
- {
-#ifdef SOLARIS
- putenv(const_cast< char * >("RTL_LOGFILE=/tmp/logfile2"));
-#endif
-#ifdef WNT
- putenv("RTL_LOGFILE=c:\\temp\\logfile2");
-#endif
-#ifdef LINUX
- setenv("RTL_LOGFILE", "/tmp/logfile2", 0);
-#endif
- RTL_LOGFILE_TRACE( "trace the log" );
- RTL_LOGFILE_TRACE1( "trace %d" , 1 );
- RTL_LOGFILE_TRACE2( "trace %d %d" , 1,2 );
- RTL_LOGFILE_TRACE3( "trace %d %d %d" , 1 , 2 ,3 );
-// TODO: assertion test!
- }
-
- void logfile_003()
- {
-#ifdef SOLARIS
- putenv(const_cast< char * >("RTL_LOGFILE=/tmp/logfile2"));
-#endif
-#ifdef WNT
- putenv("RTL_LOGFILE=c:\\temp\\logfile2");
-#endif
-#ifdef LINUX
- setenv("RTL_LOGFILE", "/tmp/logfile2", 0);
-#endif
- RTL_LOGFILE_CONTEXT ( foo , "foo-function" );
- RTL_LOGFILE_CONTEXT_TRACE ( foo , "trace" );
- RTL_LOGFILE_CONTEXT_TRACE1 ( foo , "trace %d" , 1 );
- RTL_LOGFILE_CONTEXT_TRACE2 ( foo , "trace %d %d" , 1 , 2 );
- RTL_LOGFILE_CONTEXT_TRACE3 ( foo , "trace %d %d %d" , 1 , 2 , 3);
-// TODO: assertion test!
- }
-
-
- CPPUNIT_TEST_SUITE( logfile );
- CPPUNIT_TEST( logfile_001 );
- CPPUNIT_TEST( logfile_002 );
- CPPUNIT_TEST( logfile_003 );
- CPPUNIT_TEST_SUITE_END( );
- };
-
-} // namespace rtl_logfile
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( rtl_logfile::logfile);
-
-// -----------------------------------------------------------------------------
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-//~ do some clean up work after all test completed.
-class GlobalObject
-{
-public:
- ~GlobalObject()
- {
- try
- {
- printf( "\n#Do some clean-ups ... only delete logfile1_*.log here!\n" );
- rtl::OUString suFilePath = getTempPath();
- suFilePath += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("logfile1_")) + getCurrentPID( );
- suFilePath += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".log"));
-
- //if ( ifFileExist( suFilePath ) == sal_True )
- ::osl::FileBase::RC nError1;
- nError1 = osl::File::remove( suFilePath );
-#ifdef WNT
- printf("Please remove logfile* manully! Error is Permision denied!");
-#endif
- }
- catch (const CppUnit::Exception &e)
- {
- printf("Exception caught in GlobalObject dtor(). Exception message: '%s'. Source line: %d\n", e.what(), e.sourceLine().lineNumber());
- }
- catch (...)
- {
- printf("Exception caught (...) in GlobalObject dtor()\n");
- }
- }
-};
-
-GlobalObject theGlobalObject;
-
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/math/rtl_math.cxx b/sal/qa/rtl/math/rtl_math.cxx
deleted file mode 100644
index 9fe5c82ae..000000000
--- a/sal/qa/rtl/math/rtl_math.cxx
+++ /dev/null
@@ -1,631 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-#ifdef WIN32
-// LLA: take a look into Microsofts math.h implementation, why this define is need
-#define _USE_MATH_DEFINES
-#endif
-
-#include <math.h>
-#include <rtl/math.h>
-#include <rtl/string.hxx>
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#include "valueequal.hxx"
-
-namespace rtl_math
-{
-
-class test : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
-
- void equalCheck(double _nResult, double _nExpect) /* throws Exception */
- {
- bool bEqualResult = is_double_equal(_nResult, _nExpect);
-
- rtl::OString sError = "rtl_math_round expected result is wrong should:(";
- sError += rtl::OString::valueOf(_nExpect);
- sError += ") but is:(";
- sError += rtl::OString::valueOf(_nResult);
- sError += ")";
-
- CPPUNIT_ASSERT_MESSAGE(sError.getStr(), bEqualResult == true);
- }
-
- // insert your test code here.
- void round_000()
- {
- // this is demonstration code
- // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
-
- double nValue = M_PI;
- double nResult = 0.0;
-
- nResult = rtl_math_round(nValue, 0, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(3.0));
-
- nResult = rtl_math_round(nValue, 2, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(3.14));
-
- nResult = rtl_math_round(nValue, 3, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(3.142));
-
- nResult = rtl_math_round(nValue, 10, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(3.1415926536));
- }
-
- // insert your test code here.
- void round_001_positiv()
- {
- // this is demonstration code
- // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
-
- double nResult = 0.0;
-
- nResult = rtl_math_round(0.1, 1, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.11, 1, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.13, 1, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.14, 1, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.1499999, 1, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.15, 1, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.151, 1, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.16, 1, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.199999999, 1, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(0.2));
- }
-
- void round_001_negativ()
- {
- // this is demonstration code
- // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
-
- double nResult = 0.0;
-
- nResult = rtl_math_round(-0.1, 1, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.11, 1, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.13, 1, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.14, 1, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.1499999, 1, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.15, 1, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.151, 1, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.16, 1, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.19999999999, 1, rtl_math_RoundingMode_Corrected);
- equalCheck(nResult, double(-0.2));
- }
-// -----------------------------------------------------------------------------
- void round_002_positiv()
- {
- // this is demonstration code
- // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
-
- double nResult = 0.0;
-
- nResult = rtl_math_round(0.1, 1, rtl_math_RoundingMode_Down);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.11, 1, rtl_math_RoundingMode_Down);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.13, 1, rtl_math_RoundingMode_Down);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.14, 1, rtl_math_RoundingMode_Down);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.1499999, 1, rtl_math_RoundingMode_Down);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.15, 1, rtl_math_RoundingMode_Down);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.151, 1, rtl_math_RoundingMode_Down);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.16, 1, rtl_math_RoundingMode_Down);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.199999999, 1, rtl_math_RoundingMode_Down);
- equalCheck(nResult, double(0.1));
- }
-
- void round_002_negativ()
- {
- // this is demonstration code
- // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
-
- double nResult = 0.0;
-
- nResult = rtl_math_round(-0.1, 1, rtl_math_RoundingMode_Down);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.11, 1, rtl_math_RoundingMode_Down);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.13, 1, rtl_math_RoundingMode_Down);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.14, 1, rtl_math_RoundingMode_Down);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.1499999, 1, rtl_math_RoundingMode_Down);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.15, 1, rtl_math_RoundingMode_Down);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.151, 1, rtl_math_RoundingMode_Down);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.16, 1, rtl_math_RoundingMode_Down);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.19999999999, 1, rtl_math_RoundingMode_Down);
- equalCheck(nResult, double(-0.1));
- }
-// -----------------------------------------------------------------------------
- void round_003_positiv()
- {
- // this is demonstration code
- // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
-
- double nResult = 0.0;
-
- nResult = rtl_math_round(0.1, 1, rtl_math_RoundingMode_Up);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.11, 1, rtl_math_RoundingMode_Up);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.13, 1, rtl_math_RoundingMode_Up);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.14, 1, rtl_math_RoundingMode_Up);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.1499999, 1, rtl_math_RoundingMode_Up);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.15, 1, rtl_math_RoundingMode_Up);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.151, 1, rtl_math_RoundingMode_Up);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.16, 1, rtl_math_RoundingMode_Up);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.199999999, 1, rtl_math_RoundingMode_Up);
- equalCheck(nResult, double(0.2));
- }
-
- void round_003_negativ()
- {
- // this is demonstration code
- // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
-
- double nResult = 0.0;
-
- nResult = rtl_math_round(-0.1, 1, rtl_math_RoundingMode_Up);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.11, 1, rtl_math_RoundingMode_Up);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.13, 1, rtl_math_RoundingMode_Up);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.14, 1, rtl_math_RoundingMode_Up);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.1499999, 1, rtl_math_RoundingMode_Up);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.15, 1, rtl_math_RoundingMode_Up);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.151, 1, rtl_math_RoundingMode_Up);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.16, 1, rtl_math_RoundingMode_Up);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.19999999999, 1, rtl_math_RoundingMode_Up);
- equalCheck(nResult, double(-0.2));
- }
-// -----------------------------------------------------------------------------
- void round_004_positiv()
- {
- // this is demonstration code
- // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
-
- double nResult = 0.0;
-
- nResult = rtl_math_round(0.1, 1, rtl_math_RoundingMode_Floor);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.11, 1, rtl_math_RoundingMode_Floor);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.13, 1, rtl_math_RoundingMode_Floor);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.14, 1, rtl_math_RoundingMode_Floor);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.1499999, 1, rtl_math_RoundingMode_Floor);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.15, 1, rtl_math_RoundingMode_Floor);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.151, 1, rtl_math_RoundingMode_Floor);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.16, 1, rtl_math_RoundingMode_Floor);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.199999999, 1, rtl_math_RoundingMode_Floor);
- equalCheck(nResult, double(0.1));
- }
-
- void round_004_negativ()
- {
- // this is demonstration code
- // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
-
- double nResult = 0.0;
-
- nResult = rtl_math_round(-0.1, 1, rtl_math_RoundingMode_Floor);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.11, 1, rtl_math_RoundingMode_Floor);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.13, 1, rtl_math_RoundingMode_Floor);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.14, 1, rtl_math_RoundingMode_Floor);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.1499999, 1, rtl_math_RoundingMode_Floor);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.15, 1, rtl_math_RoundingMode_Floor);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.151, 1, rtl_math_RoundingMode_Floor);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.16, 1, rtl_math_RoundingMode_Floor);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.19999999999, 1, rtl_math_RoundingMode_Floor);
- equalCheck(nResult, double(-0.2));
- }
-// -----------------------------------------------------------------------------
- void round_005_positiv()
- {
- // this is demonstration code
- // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
-
- double nResult = 0.0;
-
- nResult = rtl_math_round(0.1, 1, rtl_math_RoundingMode_Ceiling);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.11, 1, rtl_math_RoundingMode_Ceiling);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.13, 1, rtl_math_RoundingMode_Ceiling);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.14, 1, rtl_math_RoundingMode_Ceiling);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.1499999, 1, rtl_math_RoundingMode_Ceiling);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.15, 1, rtl_math_RoundingMode_Ceiling);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.151, 1, rtl_math_RoundingMode_Ceiling);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.16, 1, rtl_math_RoundingMode_Ceiling);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.199999999, 1, rtl_math_RoundingMode_Ceiling);
- equalCheck(nResult, double(0.2));
- }
-
- void round_005_negativ()
- {
- // this is demonstration code
- // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
-
- double nResult = 0.0;
-
- nResult = rtl_math_round(-0.1, 1, rtl_math_RoundingMode_Ceiling);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.11, 1, rtl_math_RoundingMode_Ceiling);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.13, 1, rtl_math_RoundingMode_Ceiling);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.14, 1, rtl_math_RoundingMode_Ceiling);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.1499999, 1, rtl_math_RoundingMode_Ceiling);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.15, 1, rtl_math_RoundingMode_Ceiling);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.151, 1, rtl_math_RoundingMode_Ceiling);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.16, 1, rtl_math_RoundingMode_Ceiling);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.19999999999, 1, rtl_math_RoundingMode_Ceiling);
- equalCheck(nResult, double(-0.1));
- }
-// -----------------------------------------------------------------------------
- void round_006_positiv()
- {
- // this is demonstration code
- // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
-
- double nResult = 0.0;
-
- nResult = rtl_math_round(0.1, 1, rtl_math_RoundingMode_HalfDown);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.11, 1, rtl_math_RoundingMode_HalfDown);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.13, 1, rtl_math_RoundingMode_HalfDown);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.14, 1, rtl_math_RoundingMode_HalfDown);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.1499999, 1, rtl_math_RoundingMode_HalfDown);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.15, 1, rtl_math_RoundingMode_HalfDown);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.151, 1, rtl_math_RoundingMode_HalfDown);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.16, 1, rtl_math_RoundingMode_HalfDown);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.199999999, 1, rtl_math_RoundingMode_HalfDown);
- equalCheck(nResult, double(0.2));
- }
-
- void round_006_negativ()
- {
- // this is demonstration code
- // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
-
- double nResult = 0.0;
-
- nResult = rtl_math_round(-0.1, 1, rtl_math_RoundingMode_HalfDown);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.11, 1, rtl_math_RoundingMode_HalfDown);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.13, 1, rtl_math_RoundingMode_HalfDown);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.14, 1, rtl_math_RoundingMode_HalfDown);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.1499999, 1, rtl_math_RoundingMode_HalfDown);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.15, 1, rtl_math_RoundingMode_HalfDown);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.151, 1, rtl_math_RoundingMode_HalfDown);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.16, 1, rtl_math_RoundingMode_HalfDown);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.19999999999, 1, rtl_math_RoundingMode_HalfDown);
- equalCheck(nResult, double(-0.2));
- }
-// -----------------------------------------------------------------------------
- void round_007_positiv()
- {
- // this is demonstration code
- // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
-
- double nResult = 0.0;
-
- nResult = rtl_math_round(0.1, 1, rtl_math_RoundingMode_HalfUp);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.11, 1, rtl_math_RoundingMode_HalfUp);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.13, 1, rtl_math_RoundingMode_HalfUp);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.14, 1, rtl_math_RoundingMode_HalfUp);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.1499999, 1, rtl_math_RoundingMode_HalfUp);
- equalCheck(nResult, double(0.1));
-
- nResult = rtl_math_round(0.15, 1, rtl_math_RoundingMode_HalfUp);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.151, 1, rtl_math_RoundingMode_HalfUp);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.16, 1, rtl_math_RoundingMode_HalfUp);
- equalCheck(nResult, double(0.2));
-
- nResult = rtl_math_round(0.199999999, 1, rtl_math_RoundingMode_HalfUp);
- equalCheck(nResult, double(0.2));
- }
-
- void round_007_negativ()
- {
- // this is demonstration code
- // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
-
- double nResult = 0.0;
-
- nResult = rtl_math_round(-0.1, 1, rtl_math_RoundingMode_HalfUp);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.11, 1, rtl_math_RoundingMode_HalfUp);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.13, 1, rtl_math_RoundingMode_HalfUp);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.14, 1, rtl_math_RoundingMode_HalfUp);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.1499999, 1, rtl_math_RoundingMode_HalfUp);
- equalCheck(nResult, double(-0.1));
-
- nResult = rtl_math_round(-0.15, 1, rtl_math_RoundingMode_HalfUp);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.151, 1, rtl_math_RoundingMode_HalfUp);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.16, 1, rtl_math_RoundingMode_HalfUp);
- equalCheck(nResult, double(-0.2));
-
- nResult = rtl_math_round(-0.19999999999, 1, rtl_math_RoundingMode_HalfUp);
- equalCheck(nResult, double(-0.2));
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(test);
- CPPUNIT_TEST(round_000);
-
- CPPUNIT_TEST(round_001_positiv);
- CPPUNIT_TEST(round_001_negativ);
-
- CPPUNIT_TEST(round_002_positiv);
- CPPUNIT_TEST(round_002_negativ);
-
- CPPUNIT_TEST(round_003_positiv);
- CPPUNIT_TEST(round_003_negativ);
-
- CPPUNIT_TEST(round_004_positiv);
- CPPUNIT_TEST(round_004_negativ);
-
- CPPUNIT_TEST(round_005_positiv);
- CPPUNIT_TEST(round_005_negativ);
-
- CPPUNIT_TEST(round_006_positiv);
- CPPUNIT_TEST(round_006_negativ);
-
- CPPUNIT_TEST(round_007_positiv);
- CPPUNIT_TEST(round_007_negativ);
-
- CPPUNIT_TEST_SUITE_END();
-}; // class test
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_math::test);
-} // namespace rtl_math
-
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/math/test-rtl-math.cxx b/sal/qa/rtl/math/test-rtl-math.cxx
deleted file mode 100644
index 41b4ea211..000000000
--- a/sal/qa/rtl/math/test-rtl-math.cxx
+++ /dev/null
@@ -1,72 +0,0 @@
-/*************************************************************************
-*
-* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-*
-* Copyright 2000, 2010 Oracle and/or its affiliates.
-*
-* OpenOffice.org - a multi-platform office productivity suite
-*
-* This file is part of OpenOffice.org.
-*
-* OpenOffice.org is free software: you can redistribute it and/or modify
-* it under the terms of the GNU Lesser General Public License version 3
-* only, as published by the Free Software Foundation.
-*
-* OpenOffice.org is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU Lesser General Public License version 3 for more details
-* (a copy is included in the LICENSE file that accompanied this code).
-*
-* You should have received a copy of the GNU Lesser General Public License
-* version 3 along with OpenOffice.org. If not, see
-* <http://www.openoffice.org/license.html>
-* for a copy of the LGPLv3 License.
-*
-************************************************************************/
-
-#include "sal/config.h"
-
-#include <sal/cppunit.h>
-#include "rtl/math.hxx"
-#include "rtl/ustring.h"
-#include "rtl/ustring.hxx"
-#include "sal/types.h"
-
-namespace {
-
-class Test: public CppUnit::TestFixture {
-public:
- void test_stringToDouble_good() {
- rtl_math_ConversionStatus status;
- sal_Int32 end;
- double res = rtl::math::stringToDouble(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" +1.E01foo")),
- sal_Unicode('.'), sal_Unicode(','), &status, &end);
- CPPUNIT_ASSERT_EQUAL(rtl_math_ConversionStatus_Ok, status);
- CPPUNIT_ASSERT_EQUAL(sal_Int32(RTL_CONSTASCII_LENGTH(" +1.E01")), end);
- CPPUNIT_ASSERT_EQUAL(10.0, res);
- }
-
- void test_stringToDouble_bad() {
- rtl_math_ConversionStatus status;
- sal_Int32 end;
- double res = rtl::math::stringToDouble(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" +Efoo")),
- sal_Unicode('.'), sal_Unicode(','), &status, &end);
- CPPUNIT_ASSERT_EQUAL(rtl_math_ConversionStatus_Ok, status);
- CPPUNIT_ASSERT_EQUAL(sal_Int32(0), end);
- CPPUNIT_ASSERT_EQUAL(0.0, res);
- }
-
- CPPUNIT_TEST_SUITE(Test);
- CPPUNIT_TEST(test_stringToDouble_good);
- CPPUNIT_TEST(test_stringToDouble_bad);
- CPPUNIT_TEST_SUITE_END();
-};
-
-CPPUNIT_TEST_SUITE_REGISTRATION(Test);
-
-}
-
-CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sal/qa/rtl/math/test_rtl_math.cxx b/sal/qa/rtl/math/test_rtl_math.cxx
deleted file mode 100644
index 7ac9a9d50..000000000
--- a/sal/qa/rtl/math/test_rtl_math.cxx
+++ /dev/null
@@ -1,657 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "rtl/math.h"
-#include "rtl/math.hxx"
-#include "rtl/strbuf.hxx"
-#include "rtl/string.h"
-#include "rtl/string.hxx"
-#include "rtl/textenc.h"
-#include "rtl/ustring.hxx"
-#include "sal/types.h"
-#include <sal/macros.h>
-
-#include <stdlib.h>
-
-#include <sal/cppunit.h>
-
-namespace {
-
-struct FloatTraits
-{
- typedef float Number;
-
- static inline char const * getPrefix() { return "float"; }
-};
-
-struct DoubleTraits
-{
- typedef double Number;
-
- static inline char const * getPrefix() { return "double"; }
-};
-
-struct StringTraits
-{
- typedef rtl::OString String;
-
- static inline char const * getPrefix() { return "OString"; }
-
- static inline rtl::OString createFromAscii(char const * pString)
- { return rtl::OString(pString); }
-
- static inline void appendBuffer(rtl::OStringBuffer & rBuffer,
- rtl::OString const & rString)
- { rBuffer.append(rString); }
-
- static inline rtl::OString doubleToString(double fValue,
- rtl_math_StringFormat eFormat,
- sal_Int32 nDecPlaces,
- sal_Char cDecSeparator,
- bool bEraseTrailingDecZeros)
- {
- return rtl::math::doubleToString(fValue, eFormat, nDecPlaces,
- cDecSeparator, bEraseTrailingDecZeros);
- }
-};
-
-struct UStringTraits
-{
- typedef rtl::OUString String;
-
- static inline char const * getPrefix() { return "OUString"; }
-
- static inline rtl::OUString createFromAscii(char const * pString)
- { return rtl::OUString::createFromAscii(pString); }
-
- static inline void appendBuffer(rtl::OStringBuffer & rBuffer,
- rtl::OUString const & rString)
- { rBuffer.append(rtl::OUStringToOString(rString, RTL_TEXTENCODING_UTF8)); }
-
- static inline rtl::OUString doubleToString(double fValue,
- rtl_math_StringFormat eFormat,
- sal_Int32 nDecPlaces,
- sal_Unicode cDecSeparator,
- bool bEraseTrailingDecZeros)
- {
- return rtl::math::doubleToUString(fValue, eFormat, nDecPlaces,
- cDecSeparator,
- bEraseTrailingDecZeros);
- }
-};
-
-struct TestNumberToString
-{
- double fValue;
- rtl_math_StringFormat eFormat;
- sal_Int32 nDecPlaces;
- char cDecSeparator;
- bool bEraseTrailingDecZeros;
- char const * pResult;
-};
-
-template< typename StringT, typename NumberT >
-void testNumberToString(TestNumberToString const & rTest)
-{
- typename NumberT::Number fValue = static_cast< typename NumberT::Number >(rTest.fValue);
- if (fValue != rTest.fValue)
- return;
-
- // LLA: t_print("size: %d ", sizeof(fValue));
- typename StringT::String aResult1;
-
- aResult1 = StringT::doubleToString(fValue, rTest.eFormat, rTest.nDecPlaces,
- rTest.cDecSeparator,
- rTest.bEraseTrailingDecZeros);
-
- typename StringT::String aResult2(StringT::createFromAscii(rTest.pResult));
-
- rtl::OStringBuffer aBuffer;
- aBuffer.append(StringT::getPrefix());
- aBuffer.append(RTL_CONSTASCII_STRINGPARAM("/"));
- aBuffer.append(NumberT::getPrefix());
- aBuffer.append(RTL_CONSTASCII_STRINGPARAM(" doubleToString("));
- aBuffer.append(fValue);
- aBuffer.append(RTL_CONSTASCII_STRINGPARAM(", "));
- aBuffer.append(static_cast< sal_Int32 >(rTest.eFormat));
- aBuffer.append(RTL_CONSTASCII_STRINGPARAM(", "));
- aBuffer.append(rTest.nDecPlaces);
- aBuffer.append(RTL_CONSTASCII_STRINGPARAM(", "));
- aBuffer.append(rTest.cDecSeparator);
- aBuffer.append(RTL_CONSTASCII_STRINGPARAM(", "));
- aBuffer.append(static_cast< sal_Int32 >(rTest.bEraseTrailingDecZeros));
- aBuffer.append(RTL_CONSTASCII_STRINGPARAM("): "));
- StringT::appendBuffer(aBuffer, aResult1);
- if (aResult1 != aResult2)
- {
- aBuffer.append(RTL_CONSTASCII_STRINGPARAM(" != "));
- StringT::appendBuffer(aBuffer, aResult2);
- }
- CPPUNIT_ASSERT_MESSAGE(aBuffer.getStr(), aResult1 == aResult2);
-}
-
-template< typename StringT, typename NumberT >
-void testNumberToString(TestNumberToString const * pTests, size_t nCount)
-{
- for (size_t i = 0; i < nCount; ++i)
- testNumberToString< StringT, NumberT >(pTests[i]);
-}
-
-struct TestStringToNumberToString
-{
- char const * pValue;
- rtl_math_StringFormat eFormat;
- sal_Int32 nDecPlaces;
- char cDecSeparator;
- bool bEraseTrailingDecZeros;
- char const * pResult;
-};
-
-template< typename StringT >
-void testStringToNumberToString(TestStringToNumberToString const & rTest)
-{
- double d = rtl::math::stringToDouble(StringT::createFromAscii(rTest.pValue),
- rTest.cDecSeparator, 0, 0, 0);
- typename StringT::String aResult1(
- StringT::doubleToString(d, rTest.eFormat, rTest.nDecPlaces,
- rTest.cDecSeparator,
- rTest.bEraseTrailingDecZeros));
- typename StringT::String aResult2(StringT::createFromAscii(rTest.pResult));
- rtl::OStringBuffer aBuffer;
- aBuffer.append(StringT::getPrefix());
- aBuffer.append(RTL_CONSTASCII_STRINGPARAM(
- " doubleToString(stringToDouble("));
- aBuffer.append(rTest.pValue);
- aBuffer.append(RTL_CONSTASCII_STRINGPARAM(", "));
- aBuffer.append(rTest.cDecSeparator);
- aBuffer.append(RTL_CONSTASCII_STRINGPARAM("), "));
- aBuffer.append(static_cast< sal_Int32 >(rTest.eFormat));
- aBuffer.append(RTL_CONSTASCII_STRINGPARAM(", "));
- aBuffer.append(rTest.nDecPlaces);
- aBuffer.append(RTL_CONSTASCII_STRINGPARAM(", "));
- aBuffer.append(rTest.cDecSeparator);
- aBuffer.append(RTL_CONSTASCII_STRINGPARAM(", "));
- aBuffer.append(static_cast< sal_Int32 >(rTest.bEraseTrailingDecZeros));
- aBuffer.append(RTL_CONSTASCII_STRINGPARAM("): "));
- StringT::appendBuffer(aBuffer, aResult1);
- if (aResult1 != aResult2)
- {
- aBuffer.append(RTL_CONSTASCII_STRINGPARAM(" != "));
- StringT::appendBuffer(aBuffer, aResult2);
- }
- CPPUNIT_ASSERT_MESSAGE(aBuffer.getStr(), aResult1 == aResult2);
-}
-
-template< typename StringT >
-void testStringToNumberToString(TestStringToNumberToString const * pTests,
- size_t nCount)
-{
- for (size_t i = 0; i < nCount; ++i)
- testStringToNumberToString< StringT >(pTests[i]);
-}
-
-}
-
-class Math : public CppUnit::TestFixture
-{
-public:
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void rtl_math_001()
- {
- static TestNumberToString const aTest[]
- = { // 1, 1+2^-1, ..., 1+2^-52
- // Too few decimal digits are printed, so that various different
- // double values lead to the same output:
- { 1, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1" },
- { 1.5, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.5" },
- { 1.25, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.25" },
- { 1.125, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.125" },
- { 1.0625, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.0625" },
- { 1.03125, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.03125" },
- { 1.015625, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.015625" },
- { 1.0078125, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.0078125" },
- { 1.00390625, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.00390625" },
- { 1.001953125, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.001953125" },
- { 1.0009765625, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.0009765625" },
- { 1.00048828125, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.00048828125" },
- { 1.000244140625, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.000244140625" },
- { 1.0001220703125, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.0001220703125" },
- { 1.00006103515625, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.00006103515625" },
- { 1.000030517578125, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.00003051757813" },
- { 1.0000152587890625, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.00001525878906" },
- { 1.00000762939453125, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.00000762939453" },
- { 1.000003814697265625, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.00000381469727" },
- { 1.0000019073486328125, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.00000190734863" },
- { 1.00000095367431640625, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.00000095367432" },
- { 1.000000476837158203125, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.00000047683716" },
- { 1.0000002384185791015625, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.00000023841858" },
- { 1.00000011920928955078125, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.00000011920929" },
- { 1.000000059604644775390625, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.00000005960464" },
- { 1.0000000298023223876953125, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.00000002980232" },
- { 1.00000001490116119384765625, rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1.00000001490116" },
- { 1.000000007450580596923828125,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1.00000000745058" },
- { 1.0000000037252902984619140625,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1.00000000372529" },
- { 1.00000000186264514923095703125,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1.00000000186265" },
- { 1.000000000931322574615478515625,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1.00000000093132" },
- { 1.0000000004656612873077392578125,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1.00000000046566" },
- { 1.00000000023283064365386962890625,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1.00000000023283" },
- { 1.000000000116415321826934814453125,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1.00000000011642" },
- { 1.0000000000582076609134674072265625,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1.00000000005821" },
- { 1.00000000002910383045673370361328125,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1.0000000000291" },
- { 1.000000000014551915228366851806640625,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1.00000000001455" },
- { 1.0000000000072759576141834259033203125,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1.00000000000728" },
- { 1.00000000000363797880709171295166015625,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1.00000000000364" },
- { 1.000000000001818989403545856475830078125,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1.00000000000182" },
- { 1.0000000000009094947017729282379150390625,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1.00000000000091" },
- { 1.00000000000045474735088646411895751953125,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1.00000000000045" },
- { 1.000000000000227373675443232059478759765625,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1.00000000000023" },
- { 1.0000000000001136868377216160297393798828125,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1.00000000000011" },
- { 1.00000000000005684341886080801486968994140625,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1.00000000000006" },
- { 1.000000000000028421709430404007434844970703125,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1.00000000000003" },
- { 1.0000000000000142108547152020037174224853515625,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1.00000000000001" },
- { 1.00000000000000710542735760100185871124267578125,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1.00000000000001" },
- { 1.000000000000003552713678800500929355621337890625,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1" },
- { 1.0000000000000017763568394002504646778106689453125,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1" },
- { 1.00000000000000088817841970012523233890533447265625,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1" },
- { 1.000000000000000444089209850062616169452667236328125,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1" },
- { 1.0000000000000002220446049250313080847263336181640625,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true, "1" },
-
- // 1, 1+2^-1, ..., 1+2^-52
- // Too few decimal digits are printed, so that various different
- // double values lead to the same output:
- { 1, rtl_math_StringFormat_F, 53, '.', false,
- "1.00000000000000000000000000000000000000000000000000000" },
- { 1.5, rtl_math_StringFormat_F, 53, '.', false,
- "1.50000000000000000000000000000000000000000000000000000" },
- { 1.25, rtl_math_StringFormat_F, 53, '.', false,
- "1.25000000000000000000000000000000000000000000000000000" },
- { 1.125, rtl_math_StringFormat_F, 53, '.', false,
- "1.12500000000000000000000000000000000000000000000000000" },
- { 1.0625, rtl_math_StringFormat_F, 53, '.', false,
- "1.06250000000000000000000000000000000000000000000000000" },
- { 1.03125, rtl_math_StringFormat_F, 53, '.', false,
- "1.03125000000000000000000000000000000000000000000000000" },
- { 1.015625, rtl_math_StringFormat_F, 53, '.', false,
- "1.01562500000000000000000000000000000000000000000000000" },
- { 1.0078125, rtl_math_StringFormat_F, 53, '.', false,
- "1.00781250000000000000000000000000000000000000000000000" },
- { 1.00390625, rtl_math_StringFormat_F, 53, '.', false,
- "1.00390625000000000000000000000000000000000000000000000" },
- { 1.001953125, rtl_math_StringFormat_F, 53, '.', false,
- "1.00195312500000000000000000000000000000000000000000000" },
- { 1.0009765625, rtl_math_StringFormat_F, 53, '.', false,
- "1.00097656250000000000000000000000000000000000000000000" },
- { 1.00048828125, rtl_math_StringFormat_F, 53, '.', false,
- "1.00048828125000000000000000000000000000000000000000000" },
- { 1.000244140625, rtl_math_StringFormat_F, 53, '.', false,
- "1.00024414062500000000000000000000000000000000000000000" },
- { 1.0001220703125, rtl_math_StringFormat_F, 53, '.', false,
- "1.00012207031250000000000000000000000000000000000000000" },
- { 1.00006103515625, rtl_math_StringFormat_F, 53, '.', false,
- "1.00006103515625000000000000000000000000000000000000000" },
- { 1.000030517578125, rtl_math_StringFormat_F, 53, '.', false,
- "1.00003051757813000000000000000000000000000000000000000" },
- { 1.0000152587890625, rtl_math_StringFormat_F, 53, '.', false,
- "1.00001525878906000000000000000000000000000000000000000" },
- { 1.00000762939453125, rtl_math_StringFormat_F, 53, '.', false,
- "1.00000762939453000000000000000000000000000000000000000" },
- { 1.000003814697265625, rtl_math_StringFormat_F, 53, '.', false,
- "1.00000381469727000000000000000000000000000000000000000" },
- { 1.0000019073486328125, rtl_math_StringFormat_F, 53, '.',
- false,
- "1.00000190734863000000000000000000000000000000000000000" },
- { 1.00000095367431640625, rtl_math_StringFormat_F, 53, '.',
- false,
- "1.00000095367432000000000000000000000000000000000000000" },
- { 1.000000476837158203125, rtl_math_StringFormat_F, 53, '.',
- false,
- "1.00000047683716000000000000000000000000000000000000000" },
- { 1.0000002384185791015625, rtl_math_StringFormat_F, 53, '.',
- false,
- "1.00000023841858000000000000000000000000000000000000000" },
- { 1.00000011920928955078125, rtl_math_StringFormat_F, 53, '.',
- false,
- "1.00000011920929000000000000000000000000000000000000000" },
- { 1.000000059604644775390625, rtl_math_StringFormat_F, 53, '.',
- false,
- "1.00000005960464000000000000000000000000000000000000000" },
- { 1.0000000298023223876953125, rtl_math_StringFormat_F, 53, '.',
- false,
- "1.00000002980232000000000000000000000000000000000000000" },
- { 1.00000001490116119384765625, rtl_math_StringFormat_F, 53,
- '.', false,
- "1.00000001490116000000000000000000000000000000000000000" },
- { 1.000000007450580596923828125, rtl_math_StringFormat_F, 53,
- '.', false,
- "1.00000000745058000000000000000000000000000000000000000" },
- { 1.0000000037252902984619140625, rtl_math_StringFormat_F, 53,
- '.', false,
- "1.00000000372529000000000000000000000000000000000000000" },
- { 1.00000000186264514923095703125, rtl_math_StringFormat_F, 53,
- '.', false,
- "1.00000000186265000000000000000000000000000000000000000" },
- { 1.000000000931322574615478515625, rtl_math_StringFormat_F, 53,
- '.', false,
- "1.00000000093132000000000000000000000000000000000000000" },
- { 1.0000000004656612873077392578125, rtl_math_StringFormat_F,
- 53, '.', false,
- "1.00000000046566000000000000000000000000000000000000000" },
- { 1.00000000023283064365386962890625, rtl_math_StringFormat_F,
- 53, '.', false,
- "1.00000000023283000000000000000000000000000000000000000" },
- { 1.000000000116415321826934814453125, rtl_math_StringFormat_F,
- 53, '.', false,
- "1.00000000011642000000000000000000000000000000000000000" },
- { 1.0000000000582076609134674072265625, rtl_math_StringFormat_F,
- 53, '.', false,
- "1.00000000005821000000000000000000000000000000000000000" },
- { 1.00000000002910383045673370361328125,
- rtl_math_StringFormat_F, 53, '.', false,
- "1.00000000002910000000000000000000000000000000000000000" },
- { 1.000000000014551915228366851806640625,
- rtl_math_StringFormat_F, 53, '.', false,
- "1.00000000001455000000000000000000000000000000000000000" },
- { 1.0000000000072759576141834259033203125,
- rtl_math_StringFormat_F, 53, '.', false,
- "1.00000000000728000000000000000000000000000000000000000" },
- { 1.00000000000363797880709171295166015625,
- rtl_math_StringFormat_F, 53, '.', false,
- "1.00000000000364000000000000000000000000000000000000000" },
- { 1.000000000001818989403545856475830078125,
- rtl_math_StringFormat_F, 53, '.', false,
- "1.00000000000182000000000000000000000000000000000000000" },
- { 1.0000000000009094947017729282379150390625,
- rtl_math_StringFormat_F, 53, '.', false,
- "1.00000000000091000000000000000000000000000000000000000" },
- { 1.00000000000045474735088646411895751953125,
- rtl_math_StringFormat_F, 53, '.', false,
- "1.00000000000045000000000000000000000000000000000000000" },
- { 1.000000000000227373675443232059478759765625,
- rtl_math_StringFormat_F, 53, '.', false,
- "1.00000000000023000000000000000000000000000000000000000" },
- { 1.0000000000001136868377216160297393798828125,
- rtl_math_StringFormat_F, 53, '.', false,
- "1.00000000000011000000000000000000000000000000000000000" },
- { 1.00000000000005684341886080801486968994140625,
- rtl_math_StringFormat_F, 53, '.', false,
- "1.00000000000006000000000000000000000000000000000000000" },
- { 1.000000000000028421709430404007434844970703125,
- rtl_math_StringFormat_F, 53, '.', false,
- "1.00000000000003000000000000000000000000000000000000000" },
- { 1.0000000000000142108547152020037174224853515625,
- rtl_math_StringFormat_F, 53, '.', false,
- "1.00000000000001000000000000000000000000000000000000000" },
- { 1.00000000000000710542735760100185871124267578125,
- rtl_math_StringFormat_F, 53, '.', false,
- "1.00000000000001000000000000000000000000000000000000000" },
- { 1.000000000000003552713678800500929355621337890625,
- rtl_math_StringFormat_F, 53, '.', false,
- "1.00000000000000000000000000000000000000000000000000000" },
- { 1.0000000000000017763568394002504646778106689453125,
- rtl_math_StringFormat_F, 53, '.', false,
- "1.00000000000000000000000000000000000000000000000000000" },
- { 1.00000000000000088817841970012523233890533447265625,
- rtl_math_StringFormat_F, 53, '.', false,
- "1.00000000000000000000000000000000000000000000000000000" },
- { 1.000000000000000444089209850062616169452667236328125,
- rtl_math_StringFormat_F, 53, '.', false,
- "1.00000000000000000000000000000000000000000000000000000" },
- { 1.0000000000000002220446049250313080847263336181640625,
- rtl_math_StringFormat_F, 53, '.', false,
- "1.00000000000000000000000000000000000000000000000000000" } };
- size_t const nCount = SAL_N_ELEMENTS(aTest);
-
-//LLA: the float tests are wrong here, due to the fact that
-// we calculate with too less digits after the point
-
-// bReturn &= testNumberToString< StringTraits, FloatTraits >(
-// pTestResult, aTest, nCount);
- testNumberToString< StringTraits, DoubleTraits >(aTest, nCount);
-// bReturn &= testNumberToString< UStringTraits, FloatTraits >(
-// pTestResult, aTest, nCount);
- testNumberToString< UStringTraits, DoubleTraits >(aTest, nCount);
- }
-
- void rtl_math_002()
- {
- static TestStringToNumberToString const aTest[]
- = { { "1", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1" },
- { " 1", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1" },
- { " 1", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1" },
- { "\t1", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1" },
- { "\t 1", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1" },
- { " \t1", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "1" },
-
- { "-1", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "-1" },
- { " -1", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "-1" },
- { " -1", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "-1" },
- { "\t-1", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "-1" },
- { "\t -1", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "-1" },
- { " \t-1", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true, "-1" },
-
- { "1.#INF", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "1.#INF" },
- { " 1.#INF", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "1.#INF" },
- { " 1.#INF", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "1.#INF" },
- { "\t1.#INF", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "1.#INF" },
- { "\t 1.#INF", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "1.#INF" },
- { " \t1.#INF", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "1.#INF" },
-
- { "-1.#INF", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "-1.#INF" },
- { " -1.#INF", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "-1.#INF" },
- { " -1.#INF", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "-1.#INF" },
- { "\t-1.#INF", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "-1.#INF" },
- { "\t -1.#INF", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "-1.#INF" },
- { " \t-1.#INF", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "-1.#INF" },
-
- { "1.#NAN", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "1.#NAN" },
- { " 1.#NAN", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "1.#NAN" },
- { " 1.#NAN", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "1.#NAN" },
- { "\t1.#NAN", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "1.#NAN" },
- { "\t 1.#NAN", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "1.#NAN" },
- { " \t1.#NAN", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "1.#NAN" },
-
- { "-1.#NAN", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "-1.#NAN" },
- { " -1.#NAN", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "-1.#NAN" },
- { " -1.#NAN", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "-1.#NAN" },
- { "\t-1.#NAN", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "-1.#NAN" },
- { "\t -1.#NAN", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "-1.#NAN" },
- { " \t-1.#NAN", rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', false, "-1.#NAN" },
-
- { "3.14E-2000", rtl_math_StringFormat_E, 4, '.', false,
- "0.0000E+000" },
- { "3.14E-200", rtl_math_StringFormat_E, 4, '.', false,
- "3.1400E-200" },
- { "3.14E-20", rtl_math_StringFormat_E, 4, '.', false,
- "3.1400E-020" },
- { "3.14E-2", rtl_math_StringFormat_E, 4, '.', false,
- "3.1400E-002" },
- { "3.14E2", rtl_math_StringFormat_E, 4, '.', false,
- "3.1400E+002" },
- { "3.14E20", rtl_math_StringFormat_E, 4, '.', false,
- "3.1400E+020" },
- { "3.14E200", rtl_math_StringFormat_E, 4, '.', false,
- "3.1400E+200" },
- { "3.14E2000", rtl_math_StringFormat_E, 4, '.', false,
- "1.#INF" },
- };
- size_t const nCount = SAL_N_ELEMENTS(aTest);
- testStringToNumberToString< StringTraits >(aTest, nCount);
- testStringToNumberToString< UStringTraits >(aTest, nCount);
- }
-
- CPPUNIT_TEST_SUITE(Math);
- CPPUNIT_TEST(rtl_math_001);
- CPPUNIT_TEST(rtl_math_002);
- CPPUNIT_TEST_SUITE_END();
-};
-
-// -----------------------------------------------------------------------------
-//extern "C" void /* sal_Bool */ SAL_CALL test_rtl_math2( hTestResult hRtlTestResult )
-//{
-// c_rtl_tres_state_start(hRtlTestResult, "rtl_math" );
-//
-// test_rtl_math( hRtlTestResult );
-//
-// c_rtl_tres_state_end(hRtlTestResult, "rtl_math" );
-//}
-// -----------------------------------------------------------------------------
-//void RegisterAdditionalFunctions(FktRegFuncPtr _pFunc)
-//{
-// if (_pFunc)
-// {
-// (_pFunc)(&test_rtl_math2, "");
-// }
-//}
-
-CPPUNIT_TEST_SUITE_REGISTRATION(::Math);
-
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/ostring/makefile.mk b/sal/qa/rtl/ostring/makefile.mk
deleted file mode 100644
index 5436736cd..000000000
--- a/sal/qa/rtl/ostring/makefile.mk
+++ /dev/null
@@ -1,92 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-INCPRE+= $(PRJ)$/qa$/inc
-
-PRJNAME=sal
-TARGET=qa_rtl_ostring2
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-
-# BEGIN ----------------------------------------------------------------
-# auto generated Target:joblist by codegen.pl
-SHL1OBJS= \
- $(SLO)$/rtl_OString2.obj
-
-SHL1TARGET= rtl_OString2
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-# SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-DEF1NAME =$(SHL1TARGET)
-# DEF2EXPORTFILE= export.exp
-SHL1VERSIONMAP= $(PRJ)$/qa$/export.map
-# auto generated Target:joblist
-# END ------------------------------------------------------------------
-
-# BEGIN ----------------------------------------------------------------
-SHL2OBJS= \
- $(SLO)$/rtl_str.obj
-
-SHL2TARGET= rtl_str
-SHL2STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL2IMPLIB= i$(SHL2TARGET)
-DEF2NAME =$(SHL2TARGET)
-SHL2VERSIONMAP= $(PRJ)$/qa$/export.map
-# END ------------------------------------------------------------------
-
-# BEGIN ----------------------------------------------------------------
-SHL3OBJS= \
- $(SLO)$/rtl_string.obj
-
-SHL3TARGET= rtl_string
-SHL3STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL3IMPLIB= i$(SHL3TARGET)
-DEF3NAME =$(SHL3TARGET)
-SHL3VERSIONMAP= $(PRJ)$/qa$/export.map
-# END ------------------------------------------------------------------
-#------------------------------- All object files -------------------------------
-# do this here, so we get right dependencies
-# SLOFILES=$(SHL1OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/rtl/ostring/rtl_OString2.cxx b/sal/qa/rtl/ostring/rtl_OString2.cxx
deleted file mode 100644
index e81a73462..000000000
--- a/sal/qa/rtl/ostring/rtl_OString2.cxx
+++ /dev/null
@@ -1,575 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-// autogenerated file with codegen.pl
-// There exist some more test code in sal/qa/rtl_strings/rtl_OString.cxx
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#include <rtl/string.hxx>
-
-#include "valueequal.hxx"
-
-namespace rtl_OString
-{
-
-class valueOf : public CppUnit::TestFixture
-{
- void valueOf_float_test_impl(float _nValue)
- {
- rtl::OString sValue;
- sValue = rtl::OString::valueOf( _nValue );
- printf("nFloat := %.9f sValue := %s\n", _nValue, sValue.getStr());
-
- float nValueATOF = static_cast<float>(atof( sValue.getStr() ));
-
- bool bEqualResult = is_float_equal(_nValue, nValueATOF);
- CPPUNIT_ASSERT_MESSAGE("Values are not equal.", bEqualResult == true);
- }
-
- void valueOf_float_test(float _nValue)
- {
- valueOf_float_test_impl(_nValue);
-
- // test also the negative part.
- float nNegativeValue = -_nValue;
- valueOf_float_test_impl(nNegativeValue);
- }
-
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // insert your test code here.
- void valueOf_float_test_001()
- {
- // this is demonstration code
- // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
- float nValue = 3.0f;
- valueOf_float_test(nValue);
- }
-
- void valueOf_float_test_002()
- {
- float nValue = 3.5f;
- valueOf_float_test(nValue);
- }
-
- void valueOf_float_test_003()
- {
- float nValue = 3.0625f;
- valueOf_float_test(nValue);
- }
-
- void valueOf_float_test_004()
- {
- float nValue = 3.502525f;
- valueOf_float_test(nValue);
- }
-
- void valueOf_float_test_005()
- {
- float nValue = 3.141592f;
- valueOf_float_test(nValue);
- }
-
- void valueOf_float_test_006()
- {
- float nValue = 3.5025255f;
- valueOf_float_test(nValue);
- }
-
- void valueOf_float_test_007()
- {
- float nValue = 3.0039062f;
- valueOf_float_test(nValue);
- }
-
-private:
-
- void valueOf_double_test_impl(double _nValue)
- {
- rtl::OString sValue;
- sValue = rtl::OString::valueOf( _nValue );
- printf("nDouble := %.20f sValue := %s\n", _nValue, sValue.getStr());
-
- double nValueATOF = atof( sValue.getStr() );
-
- bool bEqualResult = is_double_equal(_nValue, nValueATOF);
- CPPUNIT_ASSERT_MESSAGE("Values are not equal.", bEqualResult == true);
- }
-
- void valueOf_double_test(double _nValue)
- {
- valueOf_double_test_impl(_nValue);
-
- // test also the negative part.
- double nNegativeValue = -_nValue;
- valueOf_double_test_impl(nNegativeValue);
- }
-public:
-
- // valueOf double
- void valueOf_double_test_001()
- {
- double nValue = 3.0;
- valueOf_double_test(nValue);
- }
- void valueOf_double_test_002()
- {
- double nValue = 3.5;
- valueOf_double_test(nValue);
- }
- void valueOf_double_test_003()
- {
- double nValue = 3.0625;
- valueOf_double_test(nValue);
- }
- void valueOf_double_test_004()
- {
- double nValue = 3.1415926535;
- valueOf_double_test(nValue);
- }
- void valueOf_double_test_005()
- {
- double nValue = 3.141592653589793;
- valueOf_double_test(nValue);
- }
- void valueOf_double_test_006()
- {
- double nValue = 3.1415926535897932;
- valueOf_double_test(nValue);
- }
- void valueOf_double_test_007()
- {
- double nValue = 3.14159265358979323;
- valueOf_double_test(nValue);
- }
- void valueOf_double_test_008()
- {
- double nValue = 3.141592653589793238462643;
- valueOf_double_test(nValue);
- }
-
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(valueOf);
- CPPUNIT_TEST(valueOf_float_test_001);
- CPPUNIT_TEST(valueOf_float_test_002);
- CPPUNIT_TEST(valueOf_float_test_003);
- CPPUNIT_TEST(valueOf_float_test_004);
- CPPUNIT_TEST(valueOf_float_test_005);
- CPPUNIT_TEST(valueOf_float_test_006);
- CPPUNIT_TEST(valueOf_float_test_007);
-
- CPPUNIT_TEST(valueOf_double_test_001);
- CPPUNIT_TEST(valueOf_double_test_002);
- CPPUNIT_TEST(valueOf_double_test_003);
- CPPUNIT_TEST(valueOf_double_test_004);
- CPPUNIT_TEST(valueOf_double_test_005);
- CPPUNIT_TEST(valueOf_double_test_006);
- CPPUNIT_TEST(valueOf_double_test_007);
- CPPUNIT_TEST(valueOf_double_test_008);
- CPPUNIT_TEST_SUITE_END();
-}; // class valueOf
-
-// -----------------------------------------------------------------------------
-// - toDouble (tests)
-// -----------------------------------------------------------------------------
-class toDouble : public CppUnit::TestFixture
-{
-
-public:
-
- toDouble()
- {
- // testPrecision a;
- }
-
-
-
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void toDouble_test_impl(rtl::OString const& _sValue)
- {
- double nValueATOF = atof( _sValue.getStr() );
-
- // rtl::OUString suValue = rtl::OUString::createFromAscii( _sValue.getStr() );
- double nValueToDouble = _sValue.toDouble();
-
- bool bEqualResult = is_double_equal(nValueToDouble, nValueATOF);
- CPPUNIT_ASSERT_MESSAGE("Values are not equal.", bEqualResult == true);
- }
-
- void toDouble_test(rtl::OString const& _sValue)
- {
- toDouble_test_impl(_sValue);
-
- // test also the negativ part.
- rtl::OString sNegativValue("-");
- sNegativValue += _sValue;
- toDouble_test_impl(sNegativValue);
- }
-
- // insert your test code here.
- void toDouble_selftest()
- {
- printf("Start selftest:\n");
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.01) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.001) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.0001) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.00001) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.000001) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.0000001) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.00000001) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.000000001) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.0000000001) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.00000000001) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.000000000001) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.0000000000001) == false);
- // we check til 14 values after comma
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.00000000000001) == true);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.000000000000001) == true);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.0000000000000001) == true);
- printf("Selftest done.\n");
- }
-
- void toDouble_test_3()
- {
- rtl::OString sValue("3");
- toDouble_test(sValue);
- }
- void toDouble_test_3_5()
- {
- rtl::OString sValue("3.5");
- toDouble_test(sValue);
- }
- void toDouble_test_3_0625()
- {
- rtl::OString sValue("3.0625");
- toDouble_test(sValue);
- }
- void toDouble_test_pi()
- {
- // value from http://www.angio.net/pi/digits/50.txt
- rtl::OString sValue("3.141592653589793238462643383279502884197169399375");
- toDouble_test(sValue);
- }
-
- void toDouble_test_1()
- {
- rtl::OString sValue("1");
- toDouble_test(sValue);
- }
- void toDouble_test_10()
- {
- rtl::OString sValue("10");
- toDouble_test(sValue);
- }
- void toDouble_test_100()
- {
- rtl::OString sValue("100");
- toDouble_test(sValue);
- }
- void toDouble_test_1000()
- {
- rtl::OString sValue("1000");
- toDouble_test(sValue);
- }
- void toDouble_test_10000()
- {
- rtl::OString sValue("10000");
- toDouble_test(sValue);
- }
- void toDouble_test_1e99()
- {
- rtl::OString sValue("1e99");
- toDouble_test(sValue);
- }
- void toDouble_test_1e_n99()
- {
- rtl::OString sValue("1e-99");
- toDouble_test(sValue);
- }
- void toDouble_test_1e308()
- {
- rtl::OString sValue("1e308");
- toDouble_test(sValue);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(toDouble);
- CPPUNIT_TEST(toDouble_selftest);
-
- CPPUNIT_TEST(toDouble_test_3);
- CPPUNIT_TEST(toDouble_test_3_5);
- CPPUNIT_TEST(toDouble_test_3_0625);
- CPPUNIT_TEST(toDouble_test_pi);
- CPPUNIT_TEST(toDouble_test_1);
- CPPUNIT_TEST(toDouble_test_10);
- CPPUNIT_TEST(toDouble_test_100);
- CPPUNIT_TEST(toDouble_test_1000);
- CPPUNIT_TEST(toDouble_test_10000);
- CPPUNIT_TEST(toDouble_test_1e99);
- CPPUNIT_TEST(toDouble_test_1e_n99);
- CPPUNIT_TEST(toDouble_test_1e308);
- CPPUNIT_TEST_SUITE_END();
-}; // class toDouble
-
-// -----------------------------------------------------------------------------
-// - getToken (tests)
-// -----------------------------------------------------------------------------
-class getToken : public CppUnit::TestFixture
-{
-
-public:
-
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // -----------------------------------------------------------------------------
-
- void getToken_000()
- {
- rtl::OString sTokenStr;
-
- sal_Int32 nIndex = 0;
- do
- {
- rtl::OString sToken = sTokenStr.getToken( 0, ';', nIndex );
- }
- while ( nIndex >= 0 );
- // printf("Index %d\n", nIndex);
- // should not GPF
- }
-
- void getToken_001()
- {
- rtl::OString sTokenStr = "a;b";
-
- sal_Int32 nIndex = 0;
-
- rtl::OString sToken = sTokenStr.getToken( 0, ';', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be a 'a'", sToken.equals("a") == sal_True);
-
- /* rtl::OString */ sToken = sTokenStr.getToken( 0, ';', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be a 'b'", sToken.equals("b") == sal_True);
- CPPUNIT_ASSERT_MESSAGE("index should be negative", nIndex == -1);
- }
-
- void getToken_002()
- {
- rtl::OString sTokenStr = "a;b.c";
-
- sal_Int32 nIndex = 0;
-
- rtl::OString sToken = sTokenStr.getToken( 0, ';', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be a 'a'", sToken.equals("a") == sal_True);
-
- /* rtl::OString */ sToken = sTokenStr.getToken( 0, '.', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be a 'b'", sToken.equals("b") == sal_True);
-
- /* rtl::OString */ sToken = sTokenStr.getToken( 0, '.', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be a 'c'", sToken.equals("c") == sal_True);
- CPPUNIT_ASSERT_MESSAGE("index should be negative", nIndex == -1);
- }
-
- void getToken_003()
- {
- rtl::OString sTokenStr = "a;;b";
-
- sal_Int32 nIndex = 0;
-
- rtl::OString sToken = sTokenStr.getToken( 0, ';', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be a 'a'", sToken.equals("a") == sal_True);
-
- /* rtl::OString */ sToken = sTokenStr.getToken( 0, ';', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be empty", sToken.getLength() == 0);
-
- /* rtl::OString */ sToken = sTokenStr.getToken( 0, ';', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be a 'b'", sToken.equals("b") == sal_True);
- CPPUNIT_ASSERT_MESSAGE("index should be negative", nIndex == -1);
- }
-
- void getToken_004()
- {
- rtl::OString sTokenStr = "longer.then.ever.";
-
- sal_Int32 nIndex = 0;
-
- rtl::OString sToken = sTokenStr.getToken( 0, '.', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be 'longer'", sToken.equals("longer") == sal_True);
-
- /* rtl::OString */ sToken = sTokenStr.getToken( 0, '.', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be 'then'", sToken.equals("then") == sal_True);
-
- /* rtl::OString */ sToken = sTokenStr.getToken( 0, '.', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be 'ever'", sToken.equals("ever") == sal_True);
-
- /* rtl::OString */ sToken = sTokenStr.getToken( 0, '.', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be empty", sToken.getLength() == 0);
-
- CPPUNIT_ASSERT_MESSAGE("index should be negative", nIndex == -1);
- }
-
-
- CPPUNIT_TEST_SUITE(getToken);
- CPPUNIT_TEST(getToken_000);
- CPPUNIT_TEST(getToken_001);
- CPPUNIT_TEST(getToken_002);
- CPPUNIT_TEST(getToken_003);
- CPPUNIT_TEST(getToken_004);
- CPPUNIT_TEST_SUITE_END();
-}; // class getToken
-
-// -----------------------------------------------------------------------------
-// testing the method replaceAt( sal_Int32 index, sal_Int32 count,
-// const OString& newStr )
-// -----------------------------------------------------------------------------
-
-// Developer note: Mindy Liu, 2004-04-23
-// stollen from sal/qa/rtl_strings/rtl_OString.cxx
-
-class replaceAt : public CppUnit::TestFixture
-{
-
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
- sal_Bool check_replaceAt( const rtl::OString* expVal, const rtl::OString* input,
- const rtl::OString* newStr, sal_Int32 index, sal_Int32 count)
- {
- ::rtl::OString aStr1;
- aStr1= input->replaceAt( index, count, *newStr );
-
- printf("the result OString is %s#\n", aStr1.getStr() );
-
- sal_Bool bRes = ( expVal->compareTo(aStr1) == 0 );
- return bRes;
- }
- // -----------------------------------------------------------------------------
-
- void replaceAt_001()
- {
- sal_Bool bRes = check_replaceAt(new rtl::OString("Java@Sun"),
- new rtl::OString("Sun java"), new rtl::OString("Java@Sun"), 0, 8 );
- CPPUNIT_ASSERT_MESSAGE("string differs, replace whole string", bRes == sal_True);
- }
-
- void replaceAt_002()
- {
- sal_Bool bRes = check_replaceAt(new rtl::OString("Sun Java desktop system"),
- new rtl::OString("Sun "), new rtl::OString("Java desktop system"), 10, 8 );
- CPPUNIT_ASSERT_MESSAGE("index > length of input string", bRes == sal_True);
- }
-
- void replaceAt_003()
- {
- sal_Bool bRes = check_replaceAt(new rtl::OString("SuJava desktop system"),
- new rtl::OString("Sun "), new rtl::OString("Java desktop system"), 2, 64 );
- CPPUNIT_ASSERT_MESSAGE("larger count", bRes == sal_True);
- }
-
- void replaceAt_004()
- {
-
- sal_Bool bRes = check_replaceAt(new rtl::OString("Java desktop system"),
- new rtl::OString("Sun "), new rtl::OString("Java desktop system"), -4, 8 );
- CPPUNIT_ASSERT_MESSAGE("navigate index", bRes == sal_True);
- }
- void replaceAt_005()
- {
-
- sal_Bool bRes = check_replaceAt(new rtl::OString("Sun Jesktop System"),
- new rtl::OString("Sun Java Desktop System"), new rtl::OString(""), 5, 5 );
- CPPUNIT_ASSERT_MESSAGE("replace with null string", bRes == sal_True);
- }
-
-
- CPPUNIT_TEST_SUITE(replaceAt);
- CPPUNIT_TEST(replaceAt_001);
- CPPUNIT_TEST(replaceAt_002);
- CPPUNIT_TEST(replaceAt_003);
- CPPUNIT_TEST(replaceAt_004);
- CPPUNIT_TEST(replaceAt_005);
- CPPUNIT_TEST_SUITE_END();
-}; // class replaceAt
-
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OString::valueOf);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OString::toDouble);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OString::getToken);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OString::replaceAt);
-
-} // namespace rtl_OString
-
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/ostring/rtl_str.cxx b/sal/qa/rtl/ostring/rtl_str.cxx
deleted file mode 100644
index eede2e291..000000000
--- a/sal/qa/rtl/ostring/rtl_str.cxx
+++ /dev/null
@@ -1,899 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#include <rtl/string.hxx>
-#include <cstring>
-
-namespace rtl_str
-{
-
- class compare : public CppUnit::TestFixture
- {
- public:
-
- void compare_000()
- {
- rtl_str_compare( NULL, NULL);
- }
-
- void compare_000_1()
- {
- rtl::OString aStr1 = "Line must be equal.";
- rtl_str_compare( aStr1.getStr(), NULL);
- }
- void compare_001()
- {
- rtl::OString aStr1 = "";
- rtl::OString aStr2 = "";
-
- sal_Int32 nValue = rtl_str_compare( aStr1.getStr(), aStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
- }
-
- void compare_002()
- {
- rtl::OString aStr1 = "Line must be equal.";
- rtl::OString aStr2 = "Line must be equal.";
-
- sal_Int32 nValue = rtl_str_compare( aStr1.getStr(), aStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
- }
-
- void compare_003()
- {
- rtl::OString aStr1 = "Line must differ.";
- rtl::OString aStr2 = "Line foo bar, ok, differ.";
-
- sal_Int32 nValue = rtl_str_compare( aStr1.getStr(), aStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings differ.", nValue != 0);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(compare);
- CPPUNIT_TEST(compare_000);
- CPPUNIT_TEST(compare_000_1);
- CPPUNIT_TEST(compare_001);
- CPPUNIT_TEST(compare_002);
- CPPUNIT_TEST(compare_003);
- CPPUNIT_TEST_SUITE_END();
-}; // class compare
-
-
- class compareIgnoreAsciiCase : public CppUnit::TestFixture
- {
- public:
-
- void compare_000()
- {
- rtl_str_compareIgnoreAsciiCase( NULL, NULL);
- }
-
- void compare_000_1()
- {
- rtl::OString aStr1 = "Line must be equal.";
- rtl_str_compareIgnoreAsciiCase( aStr1.getStr(), NULL);
- }
- void compare_001()
- {
- rtl::OString aStr1 = "";
- rtl::OString aStr2 = "";
-
- sal_Int32 nValue = rtl_str_compareIgnoreAsciiCase( aStr1.getStr(), aStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
- }
-
- void compare_002()
- {
- rtl::OString aStr1 = "Line must be equal.";
- rtl::OString aStr2 = "Line must be equal.";
-
- sal_Int32 nValue = rtl_str_compareIgnoreAsciiCase( aStr1.getStr(), aStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
- }
-
- void compare_002_1()
- {
- rtl::OString aStr1 = "Line must be equal.";
- rtl::OString aStr2 = "LINE MUST BE EQUAL.";
-
- sal_Int32 nValue = rtl_str_compareIgnoreAsciiCase( aStr1.getStr(), aStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal (if case insensitve).", nValue == 0);
- }
-
- void compare_003()
- {
- rtl::OString aStr1 = "Line must differ.";
- rtl::OString aStr2 = "Line foo bar, ok, differ.";
-
- sal_Int32 nValue = rtl_str_compareIgnoreAsciiCase( aStr1.getStr(), aStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings differ.", nValue != 0);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(compareIgnoreAsciiCase);
- CPPUNIT_TEST(compare_000);
- CPPUNIT_TEST(compare_000_1);
- CPPUNIT_TEST(compare_001);
- CPPUNIT_TEST(compare_002);
- CPPUNIT_TEST(compare_002_1);
- CPPUNIT_TEST(compare_003);
- CPPUNIT_TEST_SUITE_END();
- }; // class compareIgnoreAsciiCase
-
-// -----------------------------------------------------------------------------
-
- class shortenedCompareIgnoreAsciiCase_WithLength : public CppUnit::TestFixture
- {
- public:
-
- void compare_000()
- {
- rtl_str_shortenedCompareIgnoreAsciiCase_WithLength( NULL, 0, NULL, 0, 0);
- }
-
- void compare_000_1()
- {
- rtl::OString aStr1 = "Line must be equal.";
- rtl_str_shortenedCompareIgnoreAsciiCase_WithLength( aStr1.getStr(), aStr1.getLength(), NULL, 0, 1);
- }
- void compare_001()
- {
- rtl::OString aStr1 = "";
- rtl::OString aStr2 = "";
-
- sal_Int32 nValue = rtl_str_shortenedCompareIgnoreAsciiCase_WithLength( aStr1.getStr(), aStr1.getLength(), aStr2.getStr(), aStr2.getLength(), aStr1.getLength());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
- }
-
- void compare_002()
- {
- rtl::OString aStr1 = "Line must be equal.";
- rtl::OString aStr2 = "Line must be equal.";
-
- sal_Int32 nValue = rtl_str_shortenedCompareIgnoreAsciiCase_WithLength( aStr1.getStr(), aStr1.getLength(),
- aStr2.getStr(), aStr2.getLength(),
- aStr1.getLength());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
- }
-
- void compare_002_1()
- {
- rtl::OString aStr1 = "Line must be equal.";
- rtl::OString aStr2 = "LINE MUST BE EQUAL.";
-
- sal_Int32 nValue = rtl_str_shortenedCompareIgnoreAsciiCase_WithLength( aStr1.getStr(), aStr1.getLength(),
- aStr2.getStr(), aStr2.getLength(),
- aStr1.getLength());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal (if case insensitve).", nValue == 0);
- }
-
- void compare_003()
- {
- rtl::OString aStr1 = "Line must differ.";
- rtl::OString aStr2 = "Line foo bar, ok, differ.";
-
- sal_Int32 nValue = rtl_str_shortenedCompareIgnoreAsciiCase_WithLength( aStr1.getStr(), aStr1.getLength(),
- aStr2.getStr(), aStr2.getLength(),
- 5);
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal first 5 characters.", nValue == 0);
- }
-
- void compare_004()
- {
- rtl::OString aStr1 = "Line must differ.";
- rtl::OString aStr2 = "Line foo bar, ok, differ.";
-
- sal_Int32 nValue = rtl_str_shortenedCompareIgnoreAsciiCase_WithLength( aStr1.getStr(), aStr1.getLength(),
- aStr2.getStr(), aStr2.getLength(),
- aStr1.getLength());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings differ.", nValue != 0);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(shortenedCompareIgnoreAsciiCase_WithLength);
- CPPUNIT_TEST(compare_000);
- CPPUNIT_TEST(compare_000_1);
- CPPUNIT_TEST(compare_001);
- CPPUNIT_TEST(compare_002);
- CPPUNIT_TEST(compare_002_1);
- CPPUNIT_TEST(compare_003);
- CPPUNIT_TEST(compare_004);
- CPPUNIT_TEST_SUITE_END();
-}; // class compare
-
-
-// -----------------------------------------------------------------------------
-
- class hashCode : public CppUnit::TestFixture
- {
- public:
-
- void hashCode_000()
- {
- rtl_str_hashCode( NULL );
- }
-
- void hashCode_001()
- {
- rtl::OString aStr1 = "Line for a hashCode.";
- sal_Int32 nHashCode = rtl_str_hashCode( aStr1.getStr() );
- printf("hashcode: %d\n", nHashCode);
- // CPPUNIT_ASSERT_MESSAGE("failed.", nValue == 0);
- }
-
- void hashCode_002()
- {
- rtl::OString aStr1 = "Line for a hashCode.";
- sal_Int32 nHashCode1 = rtl_str_hashCode( aStr1.getStr() );
-
- rtl::OString aStr2 = "Line for a hashCode.";
- sal_Int32 nHashCode2 = rtl_str_hashCode( aStr2.getStr() );
-
- CPPUNIT_ASSERT_MESSAGE("hashcodes must be equal.", nHashCode1 == nHashCode2 );
- }
-
- void hashCode_003()
- {
- rtl::OString aStr1 = "Line for a hashCode.";
- sal_Int32 nHashCode1 = rtl_str_hashCode( aStr1.getStr() );
-
- rtl::OString aStr2 = "Line for an other hashcode.";
- sal_Int32 nHashCode2 = rtl_str_hashCode( aStr2.getStr() );
-
- CPPUNIT_ASSERT_MESSAGE("hashcodes must differ.", nHashCode1 != nHashCode2 );
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(hashCode);
- CPPUNIT_TEST(hashCode_000);
- CPPUNIT_TEST(hashCode_001);
- CPPUNIT_TEST(hashCode_002);
- CPPUNIT_TEST(hashCode_003);
- CPPUNIT_TEST_SUITE_END();
- }; // class compare
-
-
-// -----------------------------------------------------------------------------
-
- class indexOfChar : public CppUnit::TestFixture
- {
- public:
-
- void indexOfChar_000()
- {
- rtl_str_indexOfChar( NULL, 0 );
- }
-
- void indexOfChar_001()
- {
- rtl::OString aStr1 = "Line for a indexOfChar.";
-
- sal_Int32 nIndex = rtl_str_indexOfChar( aStr1.getStr(), 'L' );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 0);
-
- /* sal_Int32 */ nIndex = rtl_str_indexOfChar( aStr1.getStr(), 'i' );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 1);
-
- /* sal_Int32 */ nIndex = rtl_str_indexOfChar( aStr1.getStr(), 'n' );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 2);
-
- /* sal_Int32 */ nIndex = rtl_str_indexOfChar( aStr1.getStr(), 'e' );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 3);
- }
-
- void indexOfChar_002()
- {
- rtl::OString aStr1 = "Line for a indexOfChar.";
- sal_Int32 nIndex = rtl_str_indexOfChar( aStr1.getStr(), 'y' );
-
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == -1 );
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(indexOfChar);
- CPPUNIT_TEST(indexOfChar_000);
- CPPUNIT_TEST(indexOfChar_001);
- CPPUNIT_TEST(indexOfChar_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class compare
-
-// -----------------------------------------------------------------------------
- class lastIndexOfChar : public CppUnit::TestFixture
- {
- public:
-
- void lastIndexOfChar_000()
- {
- rtl_str_lastIndexOfChar( NULL, 0 );
- }
-
- void lastIndexOfChar_001()
- {
- rtl::OString aStr1 = "Line for a lastIndexOfChar.";
-
- sal_Int32 nIndex = rtl_str_lastIndexOfChar( aStr1.getStr(), 'C' );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 22);
-
- /* sal_Int32 */ nIndex = rtl_str_lastIndexOfChar( aStr1.getStr(), 'h' );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 23);
-
- /* sal_Int32 */ nIndex = rtl_str_lastIndexOfChar( aStr1.getStr(), 'a' );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 24);
-
- /* sal_Int32 */ nIndex = rtl_str_lastIndexOfChar( aStr1.getStr(), 'r' );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 25);
- }
-
- void lastIndexOfChar_002()
- {
- rtl::OString aStr1 = "Line for a lastIndexOfChar.";
- sal_Int32 nIndex = rtl_str_lastIndexOfChar( aStr1.getStr(), 'y' );
-
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == -1 );
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(lastIndexOfChar);
- CPPUNIT_TEST(lastIndexOfChar_000);
- CPPUNIT_TEST(lastIndexOfChar_001);
- CPPUNIT_TEST(lastIndexOfChar_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class lastIndexOfChar
-
-
-// -----------------------------------------------------------------------------
-
- class indexOfStr : public CppUnit::TestFixture
- {
- public:
-
- void indexOfStr_000()
- {
- rtl_str_indexOfStr( NULL, 0 );
- }
-
- void indexOfStr_000_1()
- {
- rtl::OString aStr1 = "Line for a indexOfStr.";
- rtl_str_indexOfStr( aStr1.getStr(), 0 );
- }
-
- void indexOfStr_001()
- {
- rtl::OString aStr1 = "Line for a indexOfStr.";
-
- sal_Int32 nIndex = rtl_str_indexOfStr( aStr1.getStr(), "Line" );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 0);
-
- /* sal_Int32 */ nIndex = rtl_str_indexOfStr( aStr1.getStr(), "for" );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 5);
-
- /* sal_Int32 */ nIndex = rtl_str_indexOfStr( aStr1.getStr(), "a" );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 9);
-
- /* sal_Int32 */ nIndex = rtl_str_indexOfStr( aStr1.getStr(), "a index" );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex ==9);
- }
-
- void indexOfStr_002()
- {
- rtl::OString aStr1 = "Line for a indexOfStr.";
- sal_Int32 nIndex = rtl_str_indexOfStr( aStr1.getStr(), "not exist" );
-
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == -1 );
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(indexOfStr);
- CPPUNIT_TEST(indexOfStr_000);
- CPPUNIT_TEST(indexOfStr_001);
- CPPUNIT_TEST(indexOfStr_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class compare
-// -----------------------------------------------------------------------------
-
-
- class lastIndexOfStr : public CppUnit::TestFixture
- {
- public:
-
- void lastIndexOfStr_000()
- {
- rtl_str_lastIndexOfStr( NULL, NULL );
- }
-
- void lastIndexOfStr_000_1()
- {
- rtl::OString aStr1 = "Line for a lastIndexOfStr.";
- rtl_str_lastIndexOfStr( aStr1.getStr(), NULL );
- }
-
- void lastIndexOfStr_001()
- {
- rtl::OString aStr1 = "Line for a lastIndexOfStr.";
- rtl::OString aSearchStr = "Index";
-
- sal_Int32 nIndex = rtl_str_lastIndexOfStr( aStr1.getStr(), aSearchStr.getStr() );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 15);
-
- /* rtl::OString */ aSearchStr = "Line";
- /* sal_Int32 */ nIndex = rtl_str_lastIndexOfStr( aStr1.getStr(), aSearchStr.getStr() );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 0);
-
- /* rtl::OString */ aSearchStr = "";
- /* sal_Int32 */ nIndex = rtl_str_lastIndexOfStr( aStr1.getStr(), aSearchStr.getStr() );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == -1);
- }
-
- void lastIndexOfStr_002()
- {
- rtl::OString aStr1 = "Line for a lastIndexOfStr.";
- rtl::OString aSearchStr = "foo";
- sal_Int32 nIndex = rtl_str_lastIndexOfStr( aStr1.getStr(), aSearchStr.getStr() );
-
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == -1 );
- }
-
- void lastIndexOfStr_003()
- {
- rtl::OString aStr1 = "Line for a lastIndexOfStr.";
- rtl::OString aSearchStr = "O";
- sal_Int32 nIndex = rtl_str_lastIndexOfStr( aStr1.getStr(), aSearchStr.getStr() );
-
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 20 );
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(lastIndexOfStr);
- CPPUNIT_TEST(lastIndexOfStr_000);
- CPPUNIT_TEST(lastIndexOfStr_001);
- CPPUNIT_TEST(lastIndexOfStr_002);
- CPPUNIT_TEST(lastIndexOfStr_003);
- CPPUNIT_TEST_SUITE_END();
- }; // class lastIndexOfStr
-
-// -----------------------------------------------------------------------------
-
- class replaceChar : public CppUnit::TestFixture
- {
- public:
-
- void replaceChar_000()
- {
- rtl_str_replaceChar( NULL, 0, 0 );
- }
-
- void replaceChar_001()
- {
- rtl::OString aStr1 = "replace char.";
- rtl::OString aShouldStr1 = "ruplacu char.";
-
- sal_Char* pStr = (sal_Char*) malloc(aStr1.getLength() + 1);
- CPPUNIT_ASSERT_MESSAGE("can't get memory for test", pStr != NULL);
- strcpy(pStr, aStr1.getStr());
-
- rtl_str_replaceChar( pStr, 'e', 'u' );
-
- CPPUNIT_ASSERT_MESSAGE("replace failed", aShouldStr1.equals(rtl::OString(pStr)) == sal_True);
- free(pStr);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(replaceChar);
- CPPUNIT_TEST(replaceChar_000);
- CPPUNIT_TEST(replaceChar_001);
- CPPUNIT_TEST_SUITE_END();
- }; // class replaceChar
-
-// -----------------------------------------------------------------------------
-
- class replaceChar_WithLength : public CppUnit::TestFixture
- {
- public:
-
- void replaceChar_WithLength_000()
- {
- rtl_str_replaceChar_WithLength( NULL, 0, 0, 0 );
- }
-
- void replaceChar_WithLength_000_1()
- {
- rtl_str_replaceChar_WithLength( NULL, 1, 0, 0 );
- }
- void replaceChar_WithLength_001()
- {
- rtl::OString aStr1 = "replace char.";
- rtl::OString aShouldStr1 = "ruplace char.";
-
- sal_Char* pStr = (sal_Char*) malloc(aStr1.getLength() + 1);
- CPPUNIT_ASSERT_MESSAGE("can't get memory for test", pStr != NULL);
- strcpy(pStr, aStr1.getStr());
-
- rtl_str_replaceChar_WithLength( pStr, 6, 'e', 'u' );
-
- CPPUNIT_ASSERT_MESSAGE("replace failed", aShouldStr1.equals(rtl::OString(pStr)) == sal_True);
- free(pStr);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(replaceChar_WithLength);
- CPPUNIT_TEST(replaceChar_WithLength_000);
- CPPUNIT_TEST(replaceChar_WithLength_000_1);
- CPPUNIT_TEST(replaceChar_WithLength_001);
- CPPUNIT_TEST_SUITE_END();
- }; // class replaceChar
-
-
-// -----------------------------------------------------------------------------
-
- class toAsciiLowerCase : public CppUnit::TestFixture
- {
- public:
-
- void toAsciiLowerCase_000()
- {
- rtl_str_toAsciiLowerCase( NULL );
- }
-
- void toAsciiLowerCase_001()
- {
- rtl::OString aStr1 = "CHANGE THIS TO ASCII LOWER CASE.";
- rtl::OString aShouldStr1 = "change this to ascii lower case.";
-
- sal_Char* pStr = (sal_Char*) malloc(aStr1.getLength() + 1);
- CPPUNIT_ASSERT_MESSAGE("can't get memory for test", pStr != NULL);
- strcpy(pStr, aStr1.getStr());
-
- rtl_str_toAsciiLowerCase( pStr );
-
- CPPUNIT_ASSERT_MESSAGE("failed", aShouldStr1.equals(rtl::OString(pStr)) == sal_True);
- free(pStr);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(toAsciiLowerCase);
- CPPUNIT_TEST(toAsciiLowerCase_000);
- CPPUNIT_TEST(toAsciiLowerCase_001);
- CPPUNIT_TEST_SUITE_END();
- }; // class replaceChar
-
-
- class toAsciiLowerCase_WithLength : public CppUnit::TestFixture
- {
- public:
-
- void toAsciiLowerCase_WithLength_000()
- {
- rtl_str_toAsciiLowerCase_WithLength( NULL, 0 );
- }
-
- void toAsciiLowerCase_WithLength_001()
- {
- rtl::OString aStr1 = "CHANGE THIS TO ASCII LOWER CASE.";
- rtl::OString aShouldStr1 = "change thiS TO ASCII LOWER CASE.";
-
- sal_Char* pStr = (sal_Char*) malloc(aStr1.getLength() + 1);
- CPPUNIT_ASSERT_MESSAGE("can't get memory for test", pStr != NULL);
- strcpy(pStr, aStr1.getStr());
-
- rtl_str_toAsciiLowerCase_WithLength( pStr, 10 );
-
- printf("Lowercase with length: '%s'\n", pStr);
- CPPUNIT_ASSERT_MESSAGE("failed", aShouldStr1.equals(rtl::OString(pStr)) == sal_True);
- free(pStr);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(toAsciiLowerCase_WithLength);
- CPPUNIT_TEST(toAsciiLowerCase_WithLength_000);
- CPPUNIT_TEST(toAsciiLowerCase_WithLength_001);
- CPPUNIT_TEST_SUITE_END();
- }; // class replaceChar
-
-// -----------------------------------------------------------------------------
-
- class toAsciiUpperCase : public CppUnit::TestFixture
- {
- public:
-
- void toAsciiUpperCase_000()
- {
- rtl_str_toAsciiUpperCase( NULL );
- }
-
- void toAsciiUpperCase_001()
- {
- rtl::OString aStr1 = "change this to ascii upper case.";
- rtl::OString aShouldStr1 = "CHANGE THIS TO ASCII UPPER CASE.";
-
- sal_Char* pStr = (sal_Char*) malloc(aStr1.getLength() + 1);
- CPPUNIT_ASSERT_MESSAGE("can't get memory for test", pStr != NULL);
- strcpy(pStr, aStr1.getStr());
-
- rtl_str_toAsciiUpperCase( pStr );
-
- CPPUNIT_ASSERT_MESSAGE("failed", aShouldStr1.equals(rtl::OString(pStr)) == sal_True);
- free(pStr);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(toAsciiUpperCase);
- CPPUNIT_TEST(toAsciiUpperCase_000);
- CPPUNIT_TEST(toAsciiUpperCase_001);
- CPPUNIT_TEST_SUITE_END();
- }; // class replaceChar
-
-
- class toAsciiUpperCase_WithLength : public CppUnit::TestFixture
- {
- public:
-
- void toAsciiUpperCase_WithLength_000()
- {
- rtl_str_toAsciiUpperCase_WithLength( NULL, 0 );
- }
-
- void toAsciiUpperCase_WithLength_001()
- {
- rtl::OString aStr1 = "change this to ascii lower case.";
- rtl::OString aShouldStr1 = "CHANGE THIs to ascii lower case.";
-
- sal_Char* pStr = (sal_Char*) malloc(aStr1.getLength() + 1);
- CPPUNIT_ASSERT_MESSAGE("can't get memory for test", pStr != NULL);
-
- strcpy(pStr, aStr1.getStr());
- rtl_str_toAsciiUpperCase_WithLength( pStr, 10 );
-
- printf("Uppercase with length: '%s'\n", aStr1.getStr());
- CPPUNIT_ASSERT_MESSAGE("failed", aShouldStr1.equals(rtl::OString(pStr)) == sal_True);
- free(pStr);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(toAsciiUpperCase_WithLength);
- CPPUNIT_TEST(toAsciiUpperCase_WithLength_000);
- CPPUNIT_TEST(toAsciiUpperCase_WithLength_001);
- CPPUNIT_TEST_SUITE_END();
- }; // class replaceChar
-
-
- // -----------------------------------------------------------------------------
-
- class trim_WithLength : public CppUnit::TestFixture
- {
- public:
- void trim_WithLength_000()
- {
- rtl_str_trim_WithLength(NULL, 0);
- // should not GPF
- }
-
- void trim_WithLength_000_1()
- {
- char pStr[] = { " trim this" };
- rtl_str_trim_WithLength( pStr, 0 );
- }
-
- void trim_WithLength_001()
- {
- char const *pStr = " trim this";
- sal_Char *pStr2 = (sal_Char*)malloc(strlen(pStr) + 1);
- if (pStr2)
- {
- strcpy(pStr2, pStr);
- rtl_str_trim_WithLength( pStr2, 2 );
-
- CPPUNIT_ASSERT_MESSAGE("string should be empty", strlen(pStr2) == 0);
- free(pStr2);
- }
- }
-
- void trim_WithLength_002()
- {
- char const *pStr = "trim this";
- sal_Char *pStr2 = (sal_Char*)malloc(strlen(pStr) + 1);
- if (pStr2)
- {
- strcpy(pStr2, pStr);
- rtl_str_trim_WithLength( pStr2, 5 );
-
- CPPUNIT_ASSERT_MESSAGE("string should contain 'trim'", strlen(pStr2) == 4);
- free(pStr2);
- }
- }
-
- void trim_WithLength_003()
- {
- char const *pStr = " trim this";
- sal_Char *pStr2 = (sal_Char*)malloc(strlen(pStr) + 1);
- if (pStr2)
- {
- strcpy(pStr2, pStr);
- rtl_str_trim_WithLength( pStr2, 11 );
-
- CPPUNIT_ASSERT_MESSAGE("string should contain 'trim'", strlen(pStr2) == 4);
- free(pStr2);
- }
- }
-
- void trim_WithLength_004()
- {
- char const *pStr = "\r\n\t \n\r trim \n this";
- sal_Char *pStr2 = (sal_Char*)malloc(strlen(pStr) + 1);
- if (pStr2)
- {
- strcpy(pStr2, pStr);
- rtl_str_trim_WithLength( pStr2, 17 );
-
- CPPUNIT_ASSERT_MESSAGE("string should contain 'trim'", strlen(pStr2) == 4);
- free(pStr2);
- }
- }
-
- void trim_WithLength_005()
- {
- char const *pStr = "\r\n\t \n\r trim \t this \n\r\t\t ";
- sal_Char *pStr2 = (sal_Char*)malloc(strlen(pStr) + 1);
- if (pStr2)
- {
- strcpy(pStr2, pStr);
- rtl_str_trim_WithLength( pStr2, strlen(pStr2) );
-
- CPPUNIT_ASSERT_MESSAGE("string should contain 'trim'", strlen(pStr2) == 11);
- free(pStr2);
- }
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(trim_WithLength);
- CPPUNIT_TEST(trim_WithLength_000);
- CPPUNIT_TEST(trim_WithLength_000_1);
- CPPUNIT_TEST(trim_WithLength_001);
- CPPUNIT_TEST(trim_WithLength_002);
- CPPUNIT_TEST(trim_WithLength_003);
- CPPUNIT_TEST(trim_WithLength_004);
- CPPUNIT_TEST(trim_WithLength_005);
- CPPUNIT_TEST_SUITE_END();
- };
-
- // -----------------------------------------------------------------------------
-
- class valueOfChar : public CppUnit::TestFixture
- {
- public:
- void valueOfChar_000()
- {
- rtl_str_valueOfChar(NULL, 0);
- // should not GPF
- }
- void valueOfChar_001()
- {
- sal_Char *pStr = (sal_Char*)malloc(RTL_STR_MAX_VALUEOFCHAR);
- if (pStr)
- {
- rtl_str_valueOfChar(pStr, 'A');
-
- CPPUNIT_ASSERT_MESSAGE("string should contain 'A'", pStr[0] == 'A');
- free(pStr);
- }
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(valueOfChar);
- CPPUNIT_TEST(valueOfChar_000);
- CPPUNIT_TEST(valueOfChar_001);
- CPPUNIT_TEST_SUITE_END();
- };
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_str::compare);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_str::compareIgnoreAsciiCase);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_str::shortenedCompareIgnoreAsciiCase_WithLength);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_str::hashCode);
-
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_str::indexOfChar);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_str::lastIndexOfChar);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_str::indexOfStr);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_str::lastIndexOfStr);
-
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_str::replaceChar);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_str::replaceChar_WithLength);
-
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_str::toAsciiLowerCase);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_str::toAsciiLowerCase_WithLength);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_str::toAsciiUpperCase);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_str::toAsciiUpperCase_WithLength);
-
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_str::trim_WithLength);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_str::valueOfChar);
-
-} // namespace rtl_str
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/ostring/rtl_str.xsce b/sal/qa/rtl/ostring/rtl_str.xsce
deleted file mode 100644
index e7a624ae2..000000000
--- a/sal/qa/rtl/ostring/rtl_str.xsce
+++ /dev/null
@@ -1,26 +0,0 @@
-# signaled with SIGNAL 11
-rtl_str.compare.compare_000
-rtl_str.compare.compare_000_1
-
-rtl_str.compareIgnoreAsciiCase.compare_000
-rtl_str.compareIgnoreAsciiCase.compare_000_1
-
-rtl_str.hashCode.hashCode_000
-
-rtl_str.indexOfChar.indexOfChar_000
-
-rtl_str.lastIndexOfChar.lastIndexOfChar_000
-
-rtl_str.indexOfStr.indexOfStr_000
-
-rtl_str.lastIndexOfStr.lastIndexOfStr_000
-
-rtl_str.replaceChar.replaceChar_000
-
-rtl_str.replaceChar_WithLength.replaceChar_WithLength_000_1
-
-rtl_str.toAsciiLowerCase.toAsciiLowerCase_000
-
-rtl_str.toAsciiUpperCase.toAsciiUpperCase_000
-
-rtl_str.valueOfChar.valueOfChar_000
diff --git a/sal/qa/rtl/ostring/rtl_string.cxx b/sal/qa/rtl/ostring/rtl_string.cxx
deleted file mode 100644
index 06a5eea8e..000000000
--- a/sal/qa/rtl/ostring/rtl_string.cxx
+++ /dev/null
@@ -1,192 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#include <rtl/ustring.hxx>
-#include <cstring>
-
-namespace rtl_string
-{
-
- class getLength : public CppUnit::TestFixture
- {
- public:
-
- void getLength_000()
- {
- rtl_string_getLength( NULL );
- // should not GPF
- }
-
- void getLength_001()
- {
- rtl::OString aStr("Test Length.");
- sal_Int32 nValue = rtl_string_getLength( aStr.pData );
-
- CPPUNIT_ASSERT_MESSAGE("Length must equal getLength()", aStr.getLength() == nValue);
- CPPUNIT_ASSERT_MESSAGE(
- "Length must equal strlen()",
- nValue >= 0
- && (strlen(aStr.getStr())
- == sal::static_int_cast< sal_uInt32 >(nValue)));
- }
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(getLength);
- CPPUNIT_TEST(getLength_000);
- CPPUNIT_TEST(getLength_001);
- CPPUNIT_TEST_SUITE_END();
- }; // class getLength
-
-// -----------------------------------------------------------------------------
-
- class newFromString : public CppUnit::TestFixture
- {
- public:
-
- // void newFromString_000()
- // {
- // sal_Int32 nValue = rtl_string_newFromString( NULL, NULL );
- // // should not GPF
- // }
-
- void newFromString_001()
- {
- rtl::OString aStr("Test Length.");
- rtl_String *pStr = NULL;
-
- rtl_string_newFromString( &pStr, aStr.pData );
-
- rtl::OString aNewStr(pStr);
- CPPUNIT_ASSERT_MESSAGE("Strings must be equal", aStr.equals(aNewStr) == sal_True);
-
- rtl_string_release(pStr);
- }
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(newFromString);
- // CPPUNIT_TEST(newFromString_000);
- CPPUNIT_TEST(newFromString_001);
- CPPUNIT_TEST_SUITE_END();
- }; // class newFromString
-
- // -----------------------------------------------------------------------------
-
- class convertUStringToString : public CppUnit::TestFixture
- {
- public:
-
- // void newFromString_000()
- // {
- // sal_Int32 nValue = rtl_string_newFromString( NULL, NULL );
- // // should not GPF
- // }
-
- void convertUStringToString_001()
- {
- rtl::OUString suString(RTL_CONSTASCII_USTRINGPARAM("Hello"));
- rtl::OString sString;
- sal_Bool bRet = rtl_convertUStringToString(&sString.pData, suString.getStr(), suString.getLength(), RTL_TEXTENCODING_ASCII_US, OUSTRING_TO_OSTRING_CVTFLAGS);
-
- CPPUNIT_ASSERT_MESSAGE("Strings must be equal", bRet == sal_True && sString.equals(rtl::OString("Hello")) == sal_True);
- }
-
- void convertUStringToString_002()
- {
- rtl::OString sStr("H\xE4llo");
- rtl::OUString suString = rtl::OStringToOUString(sStr, RTL_TEXTENCODING_ISO_8859_15);
-
- rtl::OString sString;
- sal_Bool bRet = rtl_convertUStringToString(&sString.pData, suString.getStr(), suString.getLength(), RTL_TEXTENCODING_ISO_8859_15, OUSTRING_TO_OSTRING_CVTFLAGS);
-
- CPPUNIT_ASSERT_MESSAGE("Strings must be equal", bRet == sal_True && sString.equals(rtl::OString("H\xE4llo")) == sal_True);
- }
-
- void convertUStringToString_003()
- {
- rtl::OString sStr("H\xC3\xA4llo");
- rtl::OUString suString = rtl::OStringToOUString(sStr, RTL_TEXTENCODING_UTF8);
-
- rtl::OString sString;
- sal_Bool bRet = rtl_convertUStringToString(&sString.pData, suString.getStr(), suString.getLength(), RTL_TEXTENCODING_ISO_8859_15, OUSTRING_TO_OSTRING_CVTFLAGS);
-
- CPPUNIT_ASSERT_MESSAGE("Strings must be equal", bRet == sal_True && sString.equals(rtl::OString("H\xE4llo")) == sal_True);
- }
-
- void convertUStringToString_004()
- {
- rtl::OString sStr("Tsch\xFC\xDF");
- rtl::OUString suString = rtl::OStringToOUString(sStr, RTL_TEXTENCODING_ISO_8859_15);
- rtl::OString sString;
-
- sal_Bool bRet = rtl_convertUStringToString(&sString.pData, suString.getStr(), suString.getLength(), RTL_TEXTENCODING_UTF8, OUSTRING_TO_OSTRING_CVTFLAGS);
- /* sal_Bool */ bRet = rtl_convertUStringToString(&sString.pData, suString.getStr(), suString.getLength(), RTL_TEXTENCODING_ISO_8859_15, OUSTRING_TO_OSTRING_CVTFLAGS);
- CPPUNIT_ASSERT_MESSAGE("Strings must be equal", bRet == sal_True && sString.equals(rtl::OString("Tsch\xFC\xDF")) == sal_True);
- }
-
-
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(convertUStringToString);
- CPPUNIT_TEST(convertUStringToString_001);
- CPPUNIT_TEST(convertUStringToString_002);
- CPPUNIT_TEST(convertUStringToString_003);
- CPPUNIT_TEST(convertUStringToString_004);
- CPPUNIT_TEST_SUITE_END();
- }; // class convertUStringToString
-
-
-
-} // namespace rtl_string
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_string::getLength);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_string::newFromString);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_string::convertUStringToString);
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/ostring/rtl_string.xsce b/sal/qa/rtl/ostring/rtl_string.xsce
deleted file mode 100644
index 0e37ab00b..000000000
--- a/sal/qa/rtl/ostring/rtl_string.xsce
+++ /dev/null
@@ -1 +0,0 @@
-rtl_string.getLength.getLength_000
diff --git a/sal/qa/rtl/oustring/joblist.txt b/sal/qa/rtl/oustring/joblist.txt
deleted file mode 100644
index 5d52da1e3..000000000
--- a/sal/qa/rtl/oustring/joblist.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-# JobFile for rtl_OUString
-# header source sal/inc/rtl/ustring.hxx
-
-rtl_OUString.valueOf.valueOf_double_001
-rtl_OUString.valueOf.valueOf_double_002
-rtl_OUString.valueOf.valueOf_double_003
-rtl_OUString.valueOf.valueOf_double_004
-rtl_OUString.valueOf.valueOf_double_005
-rtl_OUString.valueOf.valueOf_double_006
-rtl_OUString.valueOf.valueOf_double_007
diff --git a/sal/qa/rtl/oustring/makefile.mk b/sal/qa/rtl/oustring/makefile.mk
deleted file mode 100644
index b84860357..000000000
--- a/sal/qa/rtl/oustring/makefile.mk
+++ /dev/null
@@ -1,81 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-INCPRE+= $(PRJ)$/qa$/inc
-
-PRJNAME=sal
-TARGET=rtl_oustring2
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-
-# BEGIN ----------------------------------------------------------------
-# auto generated Target:joblist by codegen.pl
-SHL1OBJS= \
- $(SLO)$/rtl_OUString2.obj
-
-SHL1TARGET= rtl_OUString2
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-# SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-DEF1NAME =$(SHL1TARGET)
-# DEF1EXPORTFILE= export.exp
-SHL1VERSIONMAP= $(PRJ)$/qa$/export.map
-# auto generated Target:joblist
-# END ------------------------------------------------------------------
-
-# BEGIN ----------------------------------------------------------------
-SHL2OBJS= \
- $(SLO)$/rtl_ustr.obj
-
-SHL2TARGET= rtl_ustr
-SHL2STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL2IMPLIB= i$(SHL2TARGET)
-DEF2NAME =$(SHL2TARGET)
-SHL2VERSIONMAP= $(PRJ)$/qa$/export.map
-# END ------------------------------------------------------------------
-
-#------------------------------- All object files -------------------------------
-# do this here, so we get right dependencies
-# SLOFILES=$(SHL1OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/rtl/oustring/rtl_OUString2.cxx b/sal/qa/rtl/oustring/rtl_OUString2.cxx
deleted file mode 100644
index b81cd0f57..000000000
--- a/sal/qa/rtl/oustring/rtl_OUString2.cxx
+++ /dev/null
@@ -1,1283 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-// autogenerated file with codegen.pl
-
-#include <math.h>
-#include <stdio.h>
-
-#include <algorithm> // STL
-
-#include <testshl/simpleheader.hxx>
-#include "stringhelper.hxx"
-#include "valueequal.hxx"
-
-inline void printOUString( ::rtl::OUString const & _suStr )
-{
- rtl::OString aString;
-
- t_print( "OUString: " );
- aString = ::rtl::OUStringToOString( _suStr, RTL_TEXTENCODING_ASCII_US );
- t_print( "'%s'\n", aString.getStr( ) );
-}
-
-namespace rtl_OUString
-{
-
- class ctors_rtl_uString : public CppUnit::TestFixture
- {
-
- public:
- /// test of OUString(rtl_uString*)
- void ctors_001()
- {
- rtl::OUString *pStr = new rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("a String") );
-
- rtl::OUString aStrToTest(pStr->pData);
- delete pStr;
-
- // maybe here should we do something with current memory
- char* pBuffer = (char*) malloc(2 * 8);
- memset(pBuffer, 0, 2 * 8);
- free(pBuffer);
-
- sal_Bool bResult = aStrToTest.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("a String")));
- CPPUNIT_ASSERT_MESSAGE("String must not be empty", bResult == sal_True);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(ctors_rtl_uString);
- CPPUNIT_TEST(ctors_001);
- CPPUNIT_TEST_SUITE_END();
- };
-
-// -----------------------------------------------------------------------------
-class valueOf : public CppUnit::TestFixture
-{
- void valueOf_float_test_impl(float _nValue)
- {
- rtl::OUString suValue;
- suValue = rtl::OUString::valueOf( _nValue );
- rtl::OString sValue;
- sValue <<= suValue;
- t_print(T_VERBOSE, "nFloat := %.9f sValue := %s\n", _nValue, sValue.getStr());
-
- float nValueATOF = static_cast<float>(atof( sValue.getStr() ));
-
- bool bEqualResult = is_float_equal(_nValue, nValueATOF);
- CPPUNIT_ASSERT_MESSAGE("Values are not equal.", bEqualResult == true);
- }
-
- void valueOf_float_test(float _nValue)
- {
- valueOf_float_test_impl(_nValue);
-
- // test also the negative part.
- float nNegativeValue = -_nValue;
- valueOf_float_test_impl(nNegativeValue);
- }
-
-public:
- // insert your test code here.
- void valueOf_float_test_001()
- {
- // this is demonstration code
- // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
- float nValue = 3.0f;
- valueOf_float_test(nValue);
- }
-
- void valueOf_float_test_002()
- {
- float nValue = 3.5f;
- valueOf_float_test(nValue);
- }
-
- void valueOf_float_test_003()
- {
- float nValue = 3.0625f;
- valueOf_float_test(nValue);
- }
-
- void valueOf_float_test_004()
- {
- float nValue = 3.502525f;
- valueOf_float_test(nValue);
- }
-
- void valueOf_float_test_005()
- {
- float nValue = 3.141592f;
- valueOf_float_test(nValue);
- }
-
- void valueOf_float_test_006()
- {
- float nValue = 3.5025255f;
- valueOf_float_test(nValue);
- }
-
- void valueOf_float_test_007()
- {
- float nValue = 3.0039062f;
- valueOf_float_test(nValue);
- }
-
-private:
-
- void valueOf_double_test_impl(double _nValue)
- {
- rtl::OUString suValue;
- suValue = rtl::OUString::valueOf( _nValue );
- rtl::OString sValue;
- sValue <<= suValue;
- t_print(T_VERBOSE, "nDouble := %.20f sValue := %s\n", _nValue, sValue.getStr());
-
- double nValueATOF = atof( sValue.getStr() );
-
- bool bEqualResult = is_double_equal(_nValue, nValueATOF);
- CPPUNIT_ASSERT_MESSAGE("Values are not equal.", bEqualResult == true);
- }
-
- void valueOf_double_test(double _nValue)
- {
- valueOf_double_test_impl(_nValue);
-
- // test also the negative part.
- double nNegativeValue = -_nValue;
- valueOf_double_test_impl(nNegativeValue);
- }
-public:
-
- // valueOf double
- void valueOf_double_test_001()
- {
- double nValue = 3.0;
- valueOf_double_test(nValue);
- }
- void valueOf_double_test_002()
- {
- double nValue = 3.5;
- valueOf_double_test(nValue);
- }
- void valueOf_double_test_003()
- {
- double nValue = 3.0625;
- valueOf_double_test(nValue);
- }
- void valueOf_double_test_004()
- {
- double nValue = 3.1415926535;
- valueOf_double_test(nValue);
- }
- void valueOf_double_test_005()
- {
- double nValue = 3.141592653589793;
- valueOf_double_test(nValue);
- }
- void valueOf_double_test_006()
- {
- double nValue = 3.1415926535897932;
- valueOf_double_test(nValue);
- }
- void valueOf_double_test_007()
- {
- double nValue = 3.14159265358979323;
- valueOf_double_test(nValue);
- }
- void valueOf_double_test_008()
- {
- double nValue = 3.141592653589793238462643;
- valueOf_double_test(nValue);
- }
-
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(valueOf);
- CPPUNIT_TEST(valueOf_float_test_001);
- CPPUNIT_TEST(valueOf_float_test_002);
- CPPUNIT_TEST(valueOf_float_test_003);
- CPPUNIT_TEST(valueOf_float_test_004);
- CPPUNIT_TEST(valueOf_float_test_005);
- CPPUNIT_TEST(valueOf_float_test_006);
- CPPUNIT_TEST(valueOf_float_test_007);
-
- CPPUNIT_TEST(valueOf_double_test_001);
- CPPUNIT_TEST(valueOf_double_test_002);
- CPPUNIT_TEST(valueOf_double_test_003);
- CPPUNIT_TEST(valueOf_double_test_004);
- CPPUNIT_TEST(valueOf_double_test_005);
- CPPUNIT_TEST(valueOf_double_test_006);
- CPPUNIT_TEST(valueOf_double_test_007);
- CPPUNIT_TEST(valueOf_double_test_008);
- CPPUNIT_TEST_SUITE_END();
-}; // class valueOf
-
-//------------------------------------------------------------------------
-// testing the method toDouble()
-//------------------------------------------------------------------------
-template<class T>
-sal_Int16 SAL_CALL checkPrecisionSize()
-{
- // sal_Int16 nSize = sizeof(T);
- volatile T nCalcValue = 1.0;
-
-
- // (i + 1) is the current precision
- // numerical series
- // 1.1
- // 10.1
- // 100.1
- // ...
- // 1000...0.1
-
- sal_Int16 i = 0;
- for (i=0;i<50;i++)
- {
- nCalcValue *= 10;
- volatile T nValue = nCalcValue + static_cast<T>(0.1);
- volatile T dSub = nValue - nCalcValue;
- // ----- 0.11 ---- 0.1 ---- 0.09 -----
- if (0.11 > dSub && dSub < 0.09)
- {
- // due to the fact, that the value is break down we sub 1 from the precision value
- // but to suppress this, we start at zero, precision is i+1 till here --i;
- break;
- }
- }
-
- sal_Int16 j= 0;
- nCalcValue = 1.0;
-
- // numerical series
- // 1.1
- // 1.01
- // 1.001
- // ...
- // 1.000...001
-
- for (j=0;j<50;j++)
- {
- nCalcValue /= 10;
- volatile T nValue = nCalcValue + static_cast<T>(1.0);
- volatile T dSub = nValue - static_cast<T>(1.0);
- // ---- 0.02 ----- 0.01 ---- 0 --- -0.99 ---- -0.98 ----
- // volatile T dSubAbsolut = fabs(dSub);
- // ---- 0.02 ----- 0.01 ---- 0 (cut)
- if ( dSub == 0)
- break;
- }
- if (i != j)
- {
- // hmmm....
- // imho i +- 1 == j is a good value
- int n = i - j;
- if (n < 0) n = -n;
- if (n <= 1)
- {
- return std::min(i,j);
- }
- else
- {
- t_print("warning: presision differs more than 1!\n");
- }
- }
-
- return i;
-}
-
-// -----------------------------------------------------------------------------
-
- class testPrecision
- {
- public:
- testPrecision()
- {
- sal_Int16 nPrecision;
- nPrecision = checkPrecisionSize<float>();
- t_print("precision of float: %d sizeof()=%d \n", nPrecision, sizeof(float));
-
- nPrecision = checkPrecisionSize<double>();
- t_print("precision of double: %d sizeof()=%d \n", nPrecision, sizeof(double));
-
- nPrecision = checkPrecisionSize<long double>();
- t_print("precision of long double: %d sizeof()=%d \n", nPrecision, sizeof(long double));
-
- }
-
- };
-
- class toInt: public CppUnit::TestFixture {
- public:
- void test() {
- CPPUNIT_ASSERT_EQUAL(
- static_cast< sal_Int32 >(-0x76543210),
- (rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-76543210")).
- toInt32(16)));
- CPPUNIT_ASSERT_EQUAL(
- static_cast< sal_Int32 >(0xFEDCBA98),
- (rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("+FEDCBA98")).
- toInt32(16)));
- CPPUNIT_ASSERT_EQUAL(
- static_cast< sal_Int64 >(-SAL_CONST_INT64(0x76543210FEDCBA98)),
- (rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("-76543210FEDCBA98")).
- toInt64(16)));
- CPPUNIT_ASSERT_EQUAL(
- static_cast< sal_Int64 >(SAL_CONST_INT64(0xFEDCBA9876543210)),
- (rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("+FEDCBA9876543210")).
- toInt64(16)));
- }
-
- CPPUNIT_TEST_SUITE(toInt);
- CPPUNIT_TEST(test);
- CPPUNIT_TEST_SUITE_END();
- };
-
-// -----------------------------------------------------------------------------
-// - toDouble (tests)
-// -----------------------------------------------------------------------------
- class toDouble : public CppUnit::TestFixture
- {
- public:
- void toDouble_test_impl(rtl::OString const& _sValue)
- {
- //t_print("the original str is %s\n", _sValue.getStr());
- double nValueATOF = atof( _sValue.getStr() );
- //t_print("original data is %e\n", nValueATOF);
- rtl::OUString suValue = rtl::OUString::createFromAscii( _sValue.getStr() );
- double nValueToDouble = suValue.toDouble();
- //t_print("result data is %e\n", nValueToDouble);
-
- bool bEqualResult = is_double_equal(nValueToDouble, nValueATOF);
- CPPUNIT_ASSERT_MESSAGE("Values are not equal.", bEqualResult == true);
- }
-
- void toDouble_test(rtl::OString const& _sValue)
- {
- toDouble_test_impl(_sValue);
-
- // test also the negativ part.
- rtl::OString sNegativValue("-");
- sNegativValue += _sValue;
- toDouble_test_impl(sNegativValue);
- }
-
- // insert your test code here.
- void toDouble_selftest()
- {
- t_print("Start selftest:\n");
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.01) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.001) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.0001) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.00001) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.000001) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.0000001) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.00000001) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.000000001) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.0000000001) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.00000000001) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.000000000001) == false);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.0000000000001) == false);
- // we check til 15 values after comma
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.00000000000001) == true);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.000000000000001) == true);
- CPPUNIT_ASSERT (is_double_equal(1.0, 1.0000000000000001) == true);
- t_print("Selftest done.\n");
- }
-
- void toDouble_test_3()
- {
- rtl::OString sValue("3");
- toDouble_test(sValue);
- }
- void toDouble_test_3_5()
- {
- rtl::OString sValue("3.5");
- toDouble_test(sValue);
- }
- void toDouble_test_3_0625()
- {
- rtl::OString sValue("3.0625");
- toDouble_test(sValue);
- }
- void toDouble_test_pi()
- {
- // value from http://www.angio.net/pi/digits/50.txt
- rtl::OString sValue("3.141592653589793238462643383279502884197169399375");
- toDouble_test(sValue);
- }
-
- void toDouble_test_1()
- {
- rtl::OString sValue("1");
- toDouble_test(sValue);
- }
- void toDouble_test_10()
- {
- rtl::OString sValue("10");
- toDouble_test(sValue);
- }
- void toDouble_test_100()
- {
- rtl::OString sValue("100");
- toDouble_test(sValue);
- }
- void toDouble_test_1000()
- {
- rtl::OString sValue("1000");
- toDouble_test(sValue);
- }
- void toDouble_test_10000()
- {
- rtl::OString sValue("10000");
- toDouble_test(sValue);
- }
- void toDouble_test_1e99()
- {
- rtl::OString sValue("1e99");
- toDouble_test(sValue);
- }
- void toDouble_test_1e_n99()
- {
- rtl::OString sValue("1e-99");
- toDouble_test(sValue);
- }
- void toDouble_test_1e308()
- {
- rtl::OString sValue("1e308");
- toDouble_test(sValue);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(toDouble);
- CPPUNIT_TEST(toDouble_selftest);
-
- CPPUNIT_TEST(toDouble_test_3);
- CPPUNIT_TEST(toDouble_test_3_5);
- CPPUNIT_TEST(toDouble_test_3_0625);
- CPPUNIT_TEST(toDouble_test_pi);
- CPPUNIT_TEST(toDouble_test_1);
- CPPUNIT_TEST(toDouble_test_10);
- CPPUNIT_TEST(toDouble_test_100);
- CPPUNIT_TEST(toDouble_test_1000);
- CPPUNIT_TEST(toDouble_test_10000);
- CPPUNIT_TEST(toDouble_test_1e99);
- CPPUNIT_TEST(toDouble_test_1e_n99);
- CPPUNIT_TEST(toDouble_test_1e308);
- CPPUNIT_TEST_SUITE_END();
- }; // class toDouble
-
-// -----------------------------------------------------------------------------
-// - toFloat (tests)
-// -----------------------------------------------------------------------------
- class toFloat : public CppUnit::TestFixture
- {
- public:
- void toFloat_test_impl(rtl::OString const& _sValue)
- {
- //t_print("the original str is %s\n", _sValue.getStr());
- float nValueATOF = static_cast<float>(atof( _sValue.getStr() ));
- //t_print("the original str is %.10f\n", nValueATOF);
- rtl::OUString suValue = rtl::OUString::createFromAscii( _sValue.getStr() );
- float nValueToFloat = suValue.toFloat();
- //t_print("the result str is %.10f\n", nValueToFloat);
-
- bool bEqualResult = is_float_equal(nValueToFloat, nValueATOF);
- CPPUNIT_ASSERT_MESSAGE("Values are not equal.", bEqualResult == true);
- }
-
- void toFloat_test(rtl::OString const& _sValue)
- {
- toFloat_test_impl(_sValue);
-
- // test also the negativ part.
- rtl::OString sNegativValue("-");
- sNegativValue += _sValue;
- toFloat_test_impl(sNegativValue);
- }
-
- // insert your test code here.
- void toFloat_selftest()
- {
- t_print("Start selftest:\n");
- CPPUNIT_ASSERT (is_float_equal(1.0f, 1.01f) == false);
- CPPUNIT_ASSERT (is_float_equal(1.0f, 1.001f) == false);
- CPPUNIT_ASSERT (is_float_equal(1.0f, 1.0001f) == false);
- CPPUNIT_ASSERT (is_float_equal(1.0f, 1.00001f) == false);
- CPPUNIT_ASSERT (is_float_equal(1.0f, 1.000002f) == false);
- CPPUNIT_ASSERT (is_float_equal(1.0f, 1.0000001f) == true);
- CPPUNIT_ASSERT (is_float_equal(1.0f, 1.00000001f) == true);
- CPPUNIT_ASSERT (is_float_equal(1.0f, 1.000000001f) == true);
-
- t_print("Selftest done.\n");
- }
-
- void toFloat_test_3()
- {
- rtl::OString sValue("3");
- toFloat_test(sValue);
- }
- void toFloat_test_3_5()
- {
- rtl::OString sValue("3.5");
- toFloat_test(sValue);
- }
- void toFloat_test_3_0625()
- {
- rtl::OString sValue("3.0625");
- toFloat_test(sValue);
- }
- void toFloat_test_3_0625_e()
- {
- rtl::OString sValue("3.0625e-4");
- toFloat_test(sValue);
- }
- void toFloat_test_pi()
- {
- // value from http://www.angio.net/pi/digits/50.txt
- rtl::OString sValue("3.141592653589793238462643383279502884197169399375");
- toFloat_test(sValue);
- }
-
- void toFloat_test_1()
- {
- rtl::OString sValue("1");
- toFloat_test(sValue);
- }
- void toFloat_test_10()
- {
- rtl::OString sValue("10");
- toFloat_test(sValue);
- }
- void toFloat_test_100()
- {
- rtl::OString sValue("100");
- toFloat_test(sValue);
- }
- void toFloat_test_1000()
- {
- rtl::OString sValue("1000");
- toFloat_test(sValue);
- }
- void toFloat_test_10000()
- {
- rtl::OString sValue("10000");
- toFloat_test(sValue);
- }
- void toFloat_test_mix()
- {
- rtl::OString sValue("456789321455.123456789012");
- toFloat_test(sValue);
- }
- void toFloat_test_1e99()
- {
- rtl::OString sValue("1e99");
- toFloat_test(sValue);
- }
- void toFloat_test_1e_n99()
- {
- rtl::OString sValue("1e-9");
- toFloat_test(sValue);
- }
- void toFloat_test_1e308()
- {
- rtl::OString sValue("1e308");
- toFloat_test(sValue);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(toFloat);
- CPPUNIT_TEST(toFloat_selftest);
-
- CPPUNIT_TEST(toFloat_test_3);
- CPPUNIT_TEST(toFloat_test_3_5);
- CPPUNIT_TEST(toFloat_test_3_0625);
- CPPUNIT_TEST(toFloat_test_3_0625_e);
- CPPUNIT_TEST(toFloat_test_pi);
- CPPUNIT_TEST(toFloat_test_1);
- CPPUNIT_TEST(toFloat_test_10);
- CPPUNIT_TEST(toFloat_test_100);
- CPPUNIT_TEST(toFloat_test_1000);
- CPPUNIT_TEST(toFloat_test_10000);
- CPPUNIT_TEST(toFloat_test_mix);
- CPPUNIT_TEST(toFloat_test_1e99);
- CPPUNIT_TEST(toFloat_test_1e_n99);
- CPPUNIT_TEST(toFloat_test_1e308);
- CPPUNIT_TEST_SUITE_END();
- }; // class toFloat
-
-// -----------------------------------------------------------------------------
-// - lastIndexOf (tests)
-// -----------------------------------------------------------------------------
-class lastIndexOf : public CppUnit::TestFixture
-{
-
-public:
- void lastIndexOf_oustring(rtl::OUString const& _suStr, rtl::OUString const& _suSearchStr, sal_Int32 _nExpectedResultPos)
- {
- // Algorithm
- // search the string _suSearchStr (rtl::OUString) in the string _suStr.
- // check if the _nExpectedResultPos occurs.
-
- sal_Int32 nPos = _suStr.lastIndexOf(_suSearchStr);
- CPPUNIT_ASSERT_MESSAGE("expected position is wrong", nPos == _nExpectedResultPos);
- }
-
- void lastIndexOf_salunicode(rtl::OUString const& _suStr, sal_Unicode _cuSearchChar, sal_Int32 _nExpectedResultPos)
- {
- // Algorithm
- // search the unicode char _suSearchChar (sal_Unicode) in the string _suStr.
- // check if the _nExpectedResultPos occurs.
-
- sal_Int32 nPos = _suStr.lastIndexOf(_cuSearchChar);
- CPPUNIT_ASSERT_MESSAGE("expected position is wrong", nPos == _nExpectedResultPos);
- }
-
- void lastIndexOf_oustring_offset(rtl::OUString const& _suStr, rtl::OUString const& _suSearchStr, sal_Int32 _nExpectedResultPos, sal_Int32 _nStartOffset)
- {
- sal_Int32 nPos = _suStr.lastIndexOf(_suSearchStr, _nStartOffset);
- CPPUNIT_ASSERT_MESSAGE("expected position is wrong", nPos == _nExpectedResultPos);
- }
-
- void lastIndexOf_salunicode_offset(rtl::OUString const& _suStr, sal_Unicode _cuSearchChar, sal_Int32 _nExpectedResultPos, sal_Int32 _nStartOffset)
- {
- sal_Int32 nPos = _suStr.lastIndexOf(_cuSearchChar, _nStartOffset);
- CPPUNIT_ASSERT_MESSAGE("expected position is wrong", nPos == _nExpectedResultPos);
- }
-
- // -----------------------------------------------------------------------------
-
- void lastIndexOf_test_oustring_offset_001()
- {
- // search for sun, start at the end, found (pos==0)
- rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("sun java system"));
- rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("sun"));
- lastIndexOf_oustring_offset(aStr, aSearchStr, 0, aStr.getLength());
- }
-
- void lastIndexOf_test_oustring_offset_002()
- {
- // search for sun, start at pos = 3, found (pos==0)
- rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("sun java system"));
- rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("sun"));
- lastIndexOf_oustring_offset(aStr, aSearchStr, 0, 3);
- }
-
- void lastIndexOf_test_oustring_offset_003()
- {
- // search for sun, start at pos = 2, found (pos==-1)
- rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("sun java system"));
- rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("sun"));
- lastIndexOf_oustring_offset(aStr, aSearchStr, -1, 2);
- }
-
- void lastIndexOf_test_oustring_offset_004()
- {
- // search for sun, start at the end, found (pos==0)
- rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("sun java system"));
- rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("sun"));
- lastIndexOf_oustring_offset(aStr, aSearchStr, -1, -1);
- }
-
- void lastIndexOf_test_oustring_001()
- {
- // search for sun, found (pos==0)
- rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("sun java system"));
- rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("sun"));
- lastIndexOf_oustring(aStr, aSearchStr, 0);
- }
-
- void lastIndexOf_test_oustring_002()
- {
- // search for sun, found (pos==4)
- rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the sun java system"));
- rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("sun"));
- lastIndexOf_oustring(aStr, aSearchStr, 4);
- }
-
- void lastIndexOf_test_oustring_003()
- {
- // search for sun, found (pos==8)
- rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the sun sun java system"));
- rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("sun"));
- lastIndexOf_oustring(aStr, aSearchStr, 8);
- }
-
- void lastIndexOf_test_oustring_004()
- {
- // search for sun, found (pos==8)
- rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the sun sun"));
- rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("sun"));
- lastIndexOf_oustring(aStr, aSearchStr, 8);
- }
-
- void lastIndexOf_test_oustring_005()
- {
- // search for sun, found (pos==4)
- rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the sun su"));
- rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("sun"));
- lastIndexOf_oustring(aStr, aSearchStr, 4);
- }
-
- void lastIndexOf_test_oustring_006()
- {
- // search for sun, found (pos==-1)
- rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the su su"));
- rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("sun"));
- lastIndexOf_oustring(aStr, aSearchStr, -1);
- }
-
- void lastIndexOf_test_oustring_007()
- {
- // search for earth, not found (-1)
- rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the su su"));
- rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("earth"));
- lastIndexOf_oustring(aStr, aSearchStr, -1);
- }
-
- void lastIndexOf_test_oustring_008()
- {
- // search for earth, not found (-1)
- rtl::OUString aStr = rtl::OUString();
- rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("earth"));
- lastIndexOf_oustring(aStr, aSearchStr, -1);
- }
-
- void lastIndexOf_test_oustring_009()
- {
- // search for earth, not found (-1)
- rtl::OUString aStr = rtl::OUString();
- rtl::OUString aSearchStr = rtl::OUString();
- lastIndexOf_oustring(aStr, aSearchStr, -1);
-
- }
-
- void lastIndexOf_test_salunicode_001()
- {
- // search for 's', found (19)
- rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the sun sun java system"));
- sal_Unicode suChar = L's';
- lastIndexOf_salunicode(aStr, suChar, 19);
- }
-
- void lastIndexOf_test_salunicode_002()
- {
- // search for 'x', not found (-1)
- rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the sun sun java system"));
- sal_Unicode suChar = L'x';
- lastIndexOf_salunicode(aStr, suChar, -1);
- }
-
- void lastIndexOf_test_salunicode_offset_001()
- {
- // search for 's', start from pos last char, found (19)
- rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the sun sun java system"));
- sal_Unicode cuChar = L's';
- lastIndexOf_salunicode_offset(aStr, cuChar, 19, aStr.getLength());
- }
- void lastIndexOf_test_salunicode_offset_002()
- {
- // search for 's', start pos is last occur from search behind, found (17)
- rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the sun sun java system"));
- sal_Unicode cuChar = L's';
- lastIndexOf_salunicode_offset(aStr, cuChar, 17, 19);
- }
- void lastIndexOf_test_salunicode_offset_003()
- {
- // search for 't', start pos is 1, found (0)
- rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the sun sun java system"));
- sal_Unicode cuChar = L't';
- lastIndexOf_salunicode_offset(aStr, cuChar, 0, 1);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(lastIndexOf);
- CPPUNIT_TEST(lastIndexOf_test_oustring_001);
- CPPUNIT_TEST(lastIndexOf_test_oustring_002);
- CPPUNIT_TEST(lastIndexOf_test_oustring_003);
- CPPUNIT_TEST(lastIndexOf_test_oustring_004);
- CPPUNIT_TEST(lastIndexOf_test_oustring_005);
- CPPUNIT_TEST(lastIndexOf_test_oustring_006);
- CPPUNIT_TEST(lastIndexOf_test_oustring_007);
- CPPUNIT_TEST(lastIndexOf_test_oustring_008);
- CPPUNIT_TEST(lastIndexOf_test_oustring_009);
-
- CPPUNIT_TEST(lastIndexOf_test_oustring_offset_001);
- CPPUNIT_TEST(lastIndexOf_test_oustring_offset_002);
- CPPUNIT_TEST(lastIndexOf_test_oustring_offset_003);
- CPPUNIT_TEST(lastIndexOf_test_oustring_offset_004);
-
- CPPUNIT_TEST(lastIndexOf_test_salunicode_001);
- CPPUNIT_TEST(lastIndexOf_test_salunicode_002);
-
- CPPUNIT_TEST(lastIndexOf_test_salunicode_offset_001);
- CPPUNIT_TEST(lastIndexOf_test_salunicode_offset_002);
- CPPUNIT_TEST(lastIndexOf_test_salunicode_offset_003);
-
- CPPUNIT_TEST_SUITE_END();
-}; // class lastIndexOf
-
-
-// -----------------------------------------------------------------------------
-// - getToken (tests)
-// -----------------------------------------------------------------------------
-class getToken : public CppUnit::TestFixture
-{
-
-public:
- void getToken_000()
- {
- rtl::OUString suTokenStr;
-
- sal_Int32 nIndex = 0;
- do
- {
- rtl::OUString suToken = suTokenStr.getToken( 0, ';', nIndex );
- }
- while ( nIndex >= 0 );
- t_print("Index %d\n", nIndex);
- // should not GPF
- }
-
- void getToken_001()
- {
- rtl::OUString suTokenStr(RTL_CONSTASCII_USTRINGPARAM("a;b"));
-
- sal_Int32 nIndex = 0;
-
- rtl::OUString suToken = suTokenStr.getToken( 0, ';', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be a 'a'", suToken.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("a"))) == sal_True);
-
- /* rtl::OUString */ suToken = suTokenStr.getToken( 0, ';', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be a 'b'", suToken.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("b"))) == sal_True);
- CPPUNIT_ASSERT_MESSAGE("index should be negative", nIndex == -1);
- }
-
- void getToken_002()
- {
- rtl::OUString suTokenStr(RTL_CONSTASCII_USTRINGPARAM("a;b.c"));
-
- sal_Int32 nIndex = 0;
-
- rtl::OUString suToken = suTokenStr.getToken( 0, ';', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be a 'a'", suToken.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("a"))) == sal_True);
-
- /* rtl::OUString */ suToken = suTokenStr.getToken( 0, '.', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be a 'b'", suToken.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("b"))) == sal_True);
-
- /* rtl::OUString */ suToken = suTokenStr.getToken( 0, '.', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be a 'c'", suToken.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("c"))) == sal_True);
- CPPUNIT_ASSERT_MESSAGE("index should be negative", nIndex == -1);
- }
-
- void getToken_003()
- {
- rtl::OUString suTokenStr(RTL_CONSTASCII_USTRINGPARAM("a;;b"));
-
- sal_Int32 nIndex = 0;
-
- rtl::OUString suToken = suTokenStr.getToken( 0, ';', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be a 'a'", suToken.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("a"))) == sal_True);
-
- /* rtl::OUString */ suToken = suTokenStr.getToken( 0, ';', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be empty", suToken.getLength() == 0);
-
- /* rtl::OUString */ suToken = suTokenStr.getToken( 0, ';', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be a 'b'", suToken.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("b"))) == sal_True);
- CPPUNIT_ASSERT_MESSAGE("index should be negative", nIndex == -1);
- }
-
- void getToken_004()
- {
- rtl::OUString suTokenStr(RTL_CONSTASCII_USTRINGPARAM("longer.then.ever."));
-
- sal_Int32 nIndex = 0;
-
- rtl::OUString suToken = suTokenStr.getToken( 0, '.', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be 'longer'", suToken.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("longer"))) == sal_True);
-
- /* rtl::OUString */ suToken = suTokenStr.getToken( 0, '.', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be 'then'", suToken.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("then"))) == sal_True);
-
- /* rtl::OUString */ suToken = suTokenStr.getToken( 0, '.', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be 'ever'", suToken.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ever"))) == sal_True);
-
- /* rtl::OUString */ suToken = suTokenStr.getToken( 0, '.', nIndex );
- CPPUNIT_ASSERT_MESSAGE("Token should be empty", suToken.getLength() == 0);
-
- CPPUNIT_ASSERT_MESSAGE("index should be negative", nIndex == -1);
- }
-
- void getToken_005() {
- rtl::OUString ab(RTL_CONSTASCII_USTRINGPARAM("ab"));
- sal_Int32 n = 0;
- CPPUNIT_ASSERT_MESSAGE(
- "token should be 'ab'", ab.getToken(0, '-', n) == ab);
- CPPUNIT_ASSERT_MESSAGE("n should be -1", n == -1);
- CPPUNIT_ASSERT_MESSAGE(
- "token should be empty", ab.getToken(0, '-', n).getLength() == 0);
- }
-
- CPPUNIT_TEST_SUITE(getToken);
- CPPUNIT_TEST(getToken_000);
- CPPUNIT_TEST(getToken_001);
- CPPUNIT_TEST(getToken_002);
- CPPUNIT_TEST(getToken_003);
- CPPUNIT_TEST(getToken_004);
- CPPUNIT_TEST(getToken_005);
- CPPUNIT_TEST_SUITE_END();
-}; // class getToken
-
-class convertToString: public CppUnit::TestFixture {
-public:
- void test();
-
- CPPUNIT_TEST_SUITE(convertToString);
- CPPUNIT_TEST(test);
- CPPUNIT_TEST_SUITE_END();
-};
-
-void convertToString::test() {
- static sal_Unicode const utf16[] = { 0x0041, 0x00E4, 0x0061 };
- rtl::OString s;
- CPPUNIT_ASSERT(
- rtl::OUString(utf16, SAL_N_ELEMENTS(utf16)).convertToString(
- &s, RTL_TEXTENCODING_UTF7,
- (RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR |
- RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR)));
- CPPUNIT_ASSERT_EQUAL(
- rtl::OString(RTL_CONSTASCII_STRINGPARAM("A+AOQ-a")), s);
-}
-
-// -----------------------------------------------------------------------------
-// - string construction & interning (tests)
-// -----------------------------------------------------------------------------
-class construction : public CppUnit::TestFixture
-{
-public:
- void construct()
- {
-#ifdef RTL_INLINE_STRINGS
- ::rtl::OUString aFoo( RTL_CONSTASCII_USTRINGPARAM("foo") );
- CPPUNIT_ASSERT_MESSAGE("string contents", aFoo[0] == 'f');
- CPPUNIT_ASSERT_MESSAGE("string contents", aFoo[1] == 'o');
- CPPUNIT_ASSERT_MESSAGE("string contents", aFoo[2] == 'o');
- CPPUNIT_ASSERT_MESSAGE("string length", aFoo.getLength() == 3);
-
- ::rtl::OUString aBaa( RTL_CONSTASCII_USTRINGPARAM("this is a very long string with a lot of long things inside it and it goes on and on and on forever etc.") );
- CPPUNIT_ASSERT_MESSAGE("string length", aBaa.getLength() == 104);
- // Dig at the internals ... FIXME: should we have the bit-flag defines public ?
- CPPUNIT_ASSERT_MESSAGE("string static flags", (aBaa.pData->refCount & 1<<30) != 0);
-#endif
- }
-
- void intern()
- {
- // The empty string is 'static' a special case ...
- rtl::OUString aEmpty = rtl::OUString().intern();
- rtl::OUString aEmpty2 = rtl::OUString::intern( RTL_CONSTASCII_USTRINGPARAM( "" ) );
-
- ::rtl::OUString aFoo( RTL_CONSTASCII_USTRINGPARAM("foo") );
- ::rtl::OUString aFooIntern = aFoo.intern();
- CPPUNIT_ASSERT_MESSAGE("string contents", aFooIntern.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("foo")));
- CPPUNIT_ASSERT_MESSAGE("string length", aFooIntern.getLength() == 3);
- // We have to dup due to no atomic 'intern' bit-set operation
- CPPUNIT_ASSERT_MESSAGE("intern dups", aFoo.pData != aFooIntern.pData);
-
- // Test interning lots of things
- int i;
- static const int nSequence = 4096;
- rtl::OUString *pStrs;
- sal_uIntPtr *pValues;
-
- pStrs = new rtl::OUString[nSequence];
- pValues = new sal_uIntPtr[nSequence];
- for (i = 0; i < nSequence; i++)
- {
- pStrs[i] = rtl::OUString::valueOf( sqrt( static_cast<double>(i) ) ).intern();
- pValues[i] = reinterpret_cast<sal_uIntPtr>( pStrs[i].pData );
- }
- for (i = 0; i < nSequence; i++)
- {
- rtl::OUString aNew = rtl::OUString::valueOf( sqrt( static_cast<double>(i) ) ).intern();
- CPPUNIT_ASSERT_MESSAGE("double intern failed",
- aNew.pData == pStrs[i].pData);
- }
-
- // Free strings to check for leaks
- for (i = 0; i < nSequence; i++)
- {
- // Overwrite - hopefully this re-uses the memory
- pStrs[i] = rtl::OUString();
- pStrs[i] = rtl::OUString::valueOf( sqrt( static_cast<double>(i) ) );
- }
-
- for (i = 0; i < nSequence; i++)
- {
- rtl::OUString aIntern;
- sal_uIntPtr nValue;
- aIntern = rtl::OUString::valueOf( sqrt( static_cast<double>(i) ) ).intern();
-
- nValue = reinterpret_cast<sal_uIntPtr>( aIntern.pData );
- // This may not be 100% reliable: memory may
- // have been re-used, but it's worth checking.
- CPPUNIT_ASSERT_MESSAGE("intern leaking", nValue != pValues[i]);
- }
- delete [] pValues;
- delete [] pStrs;
- }
-
- CPPUNIT_TEST_SUITE(construction);
- CPPUNIT_TEST(construct);
- CPPUNIT_TEST(intern);
- CPPUNIT_TEST_SUITE_END();
-};
-
-class indexOfAscii: public CppUnit::TestFixture {
-public:
- void test();
-
- CPPUNIT_TEST_SUITE(indexOfAscii);
- CPPUNIT_TEST(test);
- CPPUNIT_TEST_SUITE_END();
-};
-
-void indexOfAscii::test() {
- CPPUNIT_ASSERT_EQUAL(
- sal_Int32(-1),
- rtl::OUString().indexOfAsciiL(RTL_CONSTASCII_STRINGPARAM("")));
- CPPUNIT_ASSERT_EQUAL(
- sal_Int32(-1),
- rtl::OUString().lastIndexOfAsciiL(RTL_CONSTASCII_STRINGPARAM("")));
- CPPUNIT_ASSERT_EQUAL(
- sal_Int32(0),
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("foo")).indexOfAsciiL(
- RTL_CONSTASCII_STRINGPARAM("foo")));
- CPPUNIT_ASSERT_EQUAL(
- sal_Int32(0),
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("foo")).lastIndexOfAsciiL(
- RTL_CONSTASCII_STRINGPARAM("foo")));
- CPPUNIT_ASSERT_EQUAL(
- sal_Int32(2),
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("fofoobar")).indexOfAsciiL(
- RTL_CONSTASCII_STRINGPARAM("foo")));
- CPPUNIT_ASSERT_EQUAL(
- sal_Int32(3),
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("foofoofob")).
- lastIndexOfAsciiL(RTL_CONSTASCII_STRINGPARAM("foo")));
- CPPUNIT_ASSERT_EQUAL(
- sal_Int32(3),
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("foofoobar")).indexOfAsciiL(
- RTL_CONSTASCII_STRINGPARAM("foo"), 1));
-}
-
-class endsWith: public CppUnit::TestFixture {
-public:
- void test();
-
- CPPUNIT_TEST_SUITE(endsWith);
- CPPUNIT_TEST(test);
- CPPUNIT_TEST_SUITE_END();
-};
-
-void endsWith::test() {
- CPPUNIT_ASSERT_EQUAL(
- true,
- rtl::OUString().endsWithAsciiL(RTL_CONSTASCII_STRINGPARAM("")));
- CPPUNIT_ASSERT_EQUAL(
- false,
- rtl::OUString().endsWithAsciiL(RTL_CONSTASCII_STRINGPARAM("foo")));
- CPPUNIT_ASSERT_EQUAL(
- true,
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("bar")).endsWithAsciiL(
- RTL_CONSTASCII_STRINGPARAM("bar")));
- CPPUNIT_ASSERT_EQUAL(
- true,
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("foobar")).endsWithAsciiL(
- RTL_CONSTASCII_STRINGPARAM("bar")));
- CPPUNIT_ASSERT_EQUAL(
- false,
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FOOBAR")).endsWithAsciiL(
- RTL_CONSTASCII_STRINGPARAM("bar")));
-}
-
-class createFromCodePoints: public CppUnit::TestFixture {
-public:
- void test();
-
- CPPUNIT_TEST_SUITE(createFromCodePoints);
- CPPUNIT_TEST(test);
- CPPUNIT_TEST_SUITE_END();
-};
-
-void createFromCodePoints::test() {
- CPPUNIT_ASSERT_EQUAL(
- sal_Int32(0),
- rtl::OUString(static_cast< sal_uInt32 const * >(NULL), 0).getLength());
- static sal_uInt32 const cp[] = { 0, 0xD800, 0xFFFF, 0x10000, 0x10FFFF };
- rtl::OUString s(cp, sizeof cp / sizeof (sal_uInt32));
- CPPUNIT_ASSERT_EQUAL(sal_Int32(7), s.getLength());
- CPPUNIT_ASSERT_EQUAL(sal_Unicode(0), s[0]);
- CPPUNIT_ASSERT_EQUAL(sal_Unicode(0xD800), s[1]);
- CPPUNIT_ASSERT_EQUAL(sal_Unicode(0xFFFF), s[2]);
- CPPUNIT_ASSERT_EQUAL(sal_Unicode(0xD800), s[3]);
- CPPUNIT_ASSERT_EQUAL(sal_Unicode(0xDC00), s[4]);
- CPPUNIT_ASSERT_EQUAL(sal_Unicode(0xDBFF), s[5]);
- CPPUNIT_ASSERT_EQUAL(sal_Unicode(0xDFFF), s[6]);
-}
-
-class iterateCodePoints: public CppUnit::TestFixture {
-public:
- void testNotWellFormed();
-
- CPPUNIT_TEST_SUITE(iterateCodePoints);
- CPPUNIT_TEST(testNotWellFormed);
- CPPUNIT_TEST_SUITE_END();
-};
-
-void iterateCodePoints::testNotWellFormed() {
- static sal_Unicode const utf16[] =
- { 0xD800, 0xDC00, 0x0041, 0xDBFF, 0xDFFF, 0xDDEF, 0xD9AB };
- rtl::OUString s(utf16, sizeof utf16 / sizeof (sal_Unicode));
- sal_Int32 i = 0;
- CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x10000), s.iterateCodePoints(&i));
- CPPUNIT_ASSERT_EQUAL(sal_Int32(2), i);
- CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x0041), s.iterateCodePoints(&i));
- CPPUNIT_ASSERT_EQUAL(sal_Int32(3), i);
- CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x10FFFF), s.iterateCodePoints(&i));
- CPPUNIT_ASSERT_EQUAL(sal_Int32(5), i);
- CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xDDEF), s.iterateCodePoints(&i));
- CPPUNIT_ASSERT_EQUAL(sal_Int32(6), i);
- CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xD9AB), s.iterateCodePoints(&i));
- CPPUNIT_ASSERT_EQUAL(sal_Int32(7), i);
- CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xD9AB), s.iterateCodePoints(&i, -1));
- CPPUNIT_ASSERT_EQUAL(sal_Int32(6), i);
- CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xDDEF), s.iterateCodePoints(&i, -1));
- CPPUNIT_ASSERT_EQUAL(sal_Int32(5), i);
- CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x10FFFF), s.iterateCodePoints(&i, -1));
- CPPUNIT_ASSERT_EQUAL(sal_Int32(3), i);
- CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x0041), s.iterateCodePoints(&i, -1));
- CPPUNIT_ASSERT_EQUAL(sal_Int32(2), i);
- CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x10000), s.iterateCodePoints(&i, -1));
- CPPUNIT_ASSERT_EQUAL(sal_Int32(0), i);
- i = 1;
- CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xDC00), s.iterateCodePoints(&i, 2));
- CPPUNIT_ASSERT_EQUAL(sal_Int32(3), i);
- i = 4;
- CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x10000), s.iterateCodePoints(&i, -3));
- CPPUNIT_ASSERT_EQUAL(sal_Int32(0), i);
-}
-
-class convertFromString: public CppUnit::TestFixture {
-public:
- void test();
-
- CPPUNIT_TEST_SUITE(createFromCodePoints);
- CPPUNIT_TEST(test);
- CPPUNIT_TEST_SUITE_END();
-};
-
-void convertFromString::test() {
- rtl::OUString t;
- CPPUNIT_ASSERT(
- !rtl_convertStringToUString(
- &t.pData, RTL_CONSTASCII_STRINGPARAM("\x80"), RTL_TEXTENCODING_UTF8,
- (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR |
- RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR |
- RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR)));
- CPPUNIT_ASSERT(
- !rtl_convertStringToUString(
- &t.pData, RTL_CONSTASCII_STRINGPARAM("\xC0"), RTL_TEXTENCODING_UTF8,
- (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR |
- RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR |
- RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR)));
- CPPUNIT_ASSERT(
- !rtl_convertStringToUString(
- &t.pData, RTL_CONSTASCII_STRINGPARAM("\xFF"), RTL_TEXTENCODING_UTF8,
- (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR |
- RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR |
- RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR)));
- CPPUNIT_ASSERT(
- rtl_convertStringToUString(
- &t.pData, RTL_CONSTASCII_STRINGPARAM("abc"), RTL_TEXTENCODING_UTF8,
- (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR |
- RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR |
- RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR)));
- CPPUNIT_ASSERT(t.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("abc")));
-}
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::valueOf, "rtl_OUString");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::toInt, "rtl_OUString");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::toDouble, "rtl_OUString");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::toFloat, "rtl_OUString");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::lastIndexOf, "rtl_OUString");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::getToken, "rtl_OUString");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(
- rtl_OUString::convertToString, "rtl_OUString");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::construction, "rtl_OUString");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(
- rtl_OUString::indexOfAscii, "rtl_OUString");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::endsWith, "rtl_OUString");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(
- rtl_OUString::createFromCodePoints, "rtl_OUString");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(
- rtl_OUString::iterateCodePoints, "rtl_OUString");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(
- rtl_OUString::convertFromString, "rtl_OUString");
-
-} // namespace rtl_OUString
-
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-NOADDITIONAL;
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/oustring/rtl_ustr.cxx b/sal/qa/rtl/oustring/rtl_ustr.cxx
deleted file mode 100644
index 6179a170c..000000000
--- a/sal/qa/rtl/oustring/rtl_ustr.cxx
+++ /dev/null
@@ -1,1426 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-#include <testshl/simpleheader.hxx>
-
-/** print a UNI_CODE file name.
-*/
-inline void printOUString( ::rtl::OUString const & _suStr )
-{
- rtl::OString aString;
-
- t_print( "OUString: " );
- aString = ::rtl::OUStringToOString( _suStr, RTL_TEXTENCODING_ASCII_US );
- t_print( "%s\n", aString.getStr( ) );
-}
-
-
-namespace rtl_ustr
-{
-
- class compare : public CppUnit::TestFixture
- {
- public:
-
-
- void compare_000()
- {
- rtl_ustr_compare( NULL, NULL);
- // should not GPF
- }
-
- void compare_000_1()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
- rtl_ustr_compare( aStr1.getStr(), NULL);
- // should not GPF
- }
- void compare_001()
- {
- rtl::OUString aStr1;
- rtl::OUString aStr2;
-
- sal_Int32 nValue = rtl_ustr_compare( aStr1.getStr(), aStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
- }
-
- void compare_002()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
- rtl::OUString aStr2(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
-
- sal_Int32 nValue = rtl_ustr_compare( aStr1.getStr(), aStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
- }
-
- void compare_003()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line must differ."));
- rtl::OUString aStr2(RTL_CONSTASCII_USTRINGPARAM("Line foo bar, ok, differ."));
-
- sal_Int32 nValue = rtl_ustr_compare( aStr1.getStr(), aStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings differ.", nValue != 0);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(compare);
- CPPUNIT_TEST(compare_000);
- CPPUNIT_TEST(compare_000_1);
- CPPUNIT_TEST(compare_001);
- CPPUNIT_TEST(compare_002);
- CPPUNIT_TEST(compare_003);
- CPPUNIT_TEST_SUITE_END();
-}; // class compare
-
-
- class compareIgnoreAsciiCase : public CppUnit::TestFixture
- {
- public:
-
- void compare_000()
- {
- rtl_ustr_compareIgnoreAsciiCase( NULL, NULL);
- }
-
- void compare_000_1()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
- rtl_ustr_compareIgnoreAsciiCase( aStr1.getStr(), NULL);
- }
- void compare_001()
- {
- rtl::OUString aStr1;
- rtl::OUString aStr2;
-
- sal_Int32 nValue = rtl_ustr_compareIgnoreAsciiCase( aStr1.getStr(), aStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
- }
-
- void compare_002()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
- rtl::OUString aStr2(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
-
- sal_Int32 nValue = rtl_ustr_compareIgnoreAsciiCase( aStr1.getStr(), aStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
- }
-
- void compare_002_1()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
- rtl::OUString aStr2(RTL_CONSTASCII_USTRINGPARAM("LINE MUST BE EQUAL."));
-
- sal_Int32 nValue = rtl_ustr_compareIgnoreAsciiCase( aStr1.getStr(), aStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal (if case insensitve).", nValue == 0);
- }
-
- void compare_003()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line must differ."));
- rtl::OUString aStr2(RTL_CONSTASCII_USTRINGPARAM("Line foo bar, ok, differ."));
-
- sal_Int32 nValue = rtl_ustr_compareIgnoreAsciiCase( aStr1.getStr(), aStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings differ.", nValue != 0);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(compareIgnoreAsciiCase);
- CPPUNIT_TEST(compare_000);
- CPPUNIT_TEST(compare_000_1);
- CPPUNIT_TEST(compare_001);
- CPPUNIT_TEST(compare_002);
- CPPUNIT_TEST(compare_002_1);
- CPPUNIT_TEST(compare_003);
- CPPUNIT_TEST_SUITE_END();
- }; // class compareIgnoreAsciiCase
-
-// -----------------------------------------------------------------------------
-
- class shortenedCompareIgnoreAsciiCase_WithLength : public CppUnit::TestFixture
- {
- public:
-
- void compare_000()
- {
- rtl_ustr_shortenedCompareIgnoreAsciiCase_WithLength( NULL, 0, NULL, 0, 0);
- }
-
- void compare_000_1()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
- rtl_ustr_shortenedCompareIgnoreAsciiCase_WithLength( aStr1.getStr(), aStr1.getLength(), NULL, 0, 1);
- }
- void compare_001()
- {
- rtl::OUString aStr1;
- rtl::OUString aStr2;
-
- sal_Int32 nValue = rtl_ustr_shortenedCompareIgnoreAsciiCase_WithLength( aStr1.getStr(), aStr1.getLength(), aStr2.getStr(), aStr2.getLength(), aStr1.getLength());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
- }
-
- void compare_002()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
- rtl::OUString aStr2(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
-
- sal_Int32 nValue = rtl_ustr_shortenedCompareIgnoreAsciiCase_WithLength( aStr1.getStr(), aStr1.getLength(),
- aStr2.getStr(), aStr2.getLength(),
- aStr1.getLength());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
- }
-
- void compare_002_1()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
- rtl::OUString aStr2(RTL_CONSTASCII_USTRINGPARAM("LINE MUST BE EQUAL."));
-
- sal_Int32 nValue = rtl_ustr_shortenedCompareIgnoreAsciiCase_WithLength( aStr1.getStr(), aStr1.getLength(),
- aStr2.getStr(), aStr2.getLength(),
- aStr1.getLength());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal (if case insensitve).", nValue == 0);
- }
-
- void compare_003()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line must differ."));
- rtl::OUString aStr2(RTL_CONSTASCII_USTRINGPARAM("Line foo bar, ok, differ."));
-
- sal_Int32 nValue = rtl_ustr_shortenedCompareIgnoreAsciiCase_WithLength( aStr1.getStr(), aStr1.getLength(),
- aStr2.getStr(), aStr2.getLength(),
- 5);
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal first 5 characters.", nValue == 0);
- }
-
- void compare_004()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line must differ."));
- rtl::OUString aStr2(RTL_CONSTASCII_USTRINGPARAM("Line foo bar, ok, differ."));
-
- sal_Int32 nValue = rtl_ustr_shortenedCompareIgnoreAsciiCase_WithLength( aStr1.getStr(), aStr1.getLength(),
- aStr2.getStr(), aStr2.getLength(),
- aStr1.getLength());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings differ.", nValue != 0);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(shortenedCompareIgnoreAsciiCase_WithLength);
- CPPUNIT_TEST(compare_000);
- CPPUNIT_TEST(compare_000_1);
- CPPUNIT_TEST(compare_001);
- CPPUNIT_TEST(compare_002);
- CPPUNIT_TEST(compare_002_1);
- CPPUNIT_TEST(compare_003);
- CPPUNIT_TEST(compare_004);
- CPPUNIT_TEST_SUITE_END();
-}; // class compare
-
-
-// // -----------------------------------------------------------------------------
-//
-// class hashCode : public CppUnit::TestFixture
-// {
-// public:
-//
-// void hashCode_000()
-// {
-// sal_Int32 nHashCode = rtl_ustr_hashCode( NULL );
-// volatile int dummy = 0;
-// }
-//
-// void hashCode_001()
-// {
-// rtl::OString aStr1 = "Line for a hashCode.";
-// sal_Int32 nHashCode = rtl_ustr_hashCode( aStr1.getStr() );
-// t_print("hashcode: %d\n", nHashCode);
-// // CPPUNIT_ASSERT_MESSAGE("failed.", nValue == 0);
-// }
-//
-// void hashCode_002()
-// {
-// rtl::OString aStr1 = "Line for a hashCode.";
-// sal_Int32 nHashCode1 = rtl_ustr_hashCode( aStr1.getStr() );
-//
-// rtl::OString aStr2 = "Line for a hashCode.";
-// sal_Int32 nHashCode2 = rtl_ustr_hashCode( aStr2.getStr() );
-//
-// CPPUNIT_ASSERT_MESSAGE("hashcodes must be equal.", nHashCode1 == nHashCode2 );
-// }
-//
-// void hashCode_003()
-// {
-// rtl::OString aStr1 = "Line for a hashCode.";
-// sal_Int32 nHashCode1 = rtl_ustr_hashCode( aStr1.getStr() );
-//
-// rtl::OString aStr2 = "Line for an other hashcode.";
-// sal_Int32 nHashCode2 = rtl_ustr_hashCode( aStr2.getStr() );
-//
-// CPPUNIT_ASSERT_MESSAGE("hashcodes must differ.", nHashCode1 != nHashCode2 );
-// }
-//
-// // Change the following lines only, if you add, remove or rename
-// // member functions of the current class,
-// // because these macros are need by auto register mechanism.
-//
-// CPPUNIT_TEST_SUITE(hashCode);
-// CPPUNIT_TEST(hashCode_000);
-// CPPUNIT_TEST(hashCode_001);
-// CPPUNIT_TEST(hashCode_002);
-// CPPUNIT_TEST(hashCode_003);
-// CPPUNIT_TEST_SUITE_END();
-// }; // class compare
-//
-//
-// // -----------------------------------------------------------------------------
-//
- class indexOfChar : public CppUnit::TestFixture
- {
- public:
-
- void indexOfChar_000()
- {
- rtl_ustr_indexOfChar( NULL, 0 );
- }
-
- void indexOfChar_001()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line for a indexOfChar."));
-
- sal_Int32 nIndex = rtl_ustr_indexOfChar( aStr1.getStr(), 'L' );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 0);
-
- /* sal_Int32 */ nIndex = rtl_ustr_indexOfChar( aStr1.getStr(), 'i' );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 1);
-
- /* sal_Int32 */ nIndex = rtl_ustr_indexOfChar( aStr1.getStr(), 'n' );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 2);
-
- /* sal_Int32 */ nIndex = rtl_ustr_indexOfChar( aStr1.getStr(), 'e' );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 3);
- }
-
- void indexOfChar_002()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line for a indexOfChar."));
- sal_Int32 nIndex = rtl_ustr_indexOfChar( aStr1.getStr(), 'y' );
-
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == -1 );
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(indexOfChar);
- CPPUNIT_TEST(indexOfChar_000);
- CPPUNIT_TEST(indexOfChar_001);
- CPPUNIT_TEST(indexOfChar_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class indexOfChar
-
-// // -----------------------------------------------------------------------------
- class lastIndexOfChar : public CppUnit::TestFixture
- {
- public:
-
- void lastIndexOfChar_000()
- {
- rtl_ustr_lastIndexOfChar( NULL, 0 );
- }
-
- void lastIndexOfChar_001()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line for a lastIndexOfChar."));
-
- sal_Int32 nIndex = rtl_ustr_lastIndexOfChar( aStr1.getStr(), 'C' );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 22);
-
- /* sal_Int32 */ nIndex = rtl_ustr_lastIndexOfChar( aStr1.getStr(), 'h' );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 23);
-
- /* sal_Int32 */ nIndex = rtl_ustr_lastIndexOfChar( aStr1.getStr(), 'a' );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 24);
-
- /* sal_Int32 */ nIndex = rtl_ustr_lastIndexOfChar( aStr1.getStr(), 'r' );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 25);
- }
-
- void lastIndexOfChar_002()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line for a lastIndexOfChar."));
- sal_Int32 nIndex = rtl_ustr_lastIndexOfChar( aStr1.getStr(), 'y' );
-
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == -1 );
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(lastIndexOfChar);
- CPPUNIT_TEST(lastIndexOfChar_000);
- CPPUNIT_TEST(lastIndexOfChar_001);
- CPPUNIT_TEST(lastIndexOfChar_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class lastIndexOfChar
-
-
-// -----------------------------------------------------------------------------
-
- class indexOfStr : public CppUnit::TestFixture
- {
- public:
-
- void indexOfStr_000()
- {
- rtl_ustr_indexOfStr( NULL, 0 );
- }
-
- void indexOfStr_000_1()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line for a indexOfStr."));
- rtl_ustr_indexOfStr( aStr1.getStr(), 0 );
- }
-
- void indexOfStr_001()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line for a indexOfStr."));
-
- rtl::OUString suSearch(RTL_CONSTASCII_USTRINGPARAM("Line"));
- sal_Int32 nIndex = rtl_ustr_indexOfStr( aStr1.getStr(), suSearch );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 0);
-
- /* rtl::OUString */ suSearch(RTL_CONSTASCII_USTRINGPARAM("for"));
- /* sal_Int32 */ nIndex = rtl_ustr_indexOfStr( aStr1.getStr(), suSearch );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 5);
-
- /* rtl::OUString */ suSearch(RTL_CONSTASCII_USTRINGPARAM("a"));
- /* sal_Int32 */ nIndex = rtl_ustr_indexOfStr( aStr1.getStr(), suSearch );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 9);
-
- /* rtl::OUString */ suSearch(RTL_CONSTASCII_USTRINGPARAM("a index"));
- /* sal_Int32 */ nIndex = rtl_ustr_indexOfStr( aStr1.getStr(), suSearch );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex ==9);
- }
-
- void indexOfStr_002()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line for a indexOfStr."));
- rtl::OUString suSearch(RTL_CONSTASCII_USTRINGPARAM("not exist"));
- sal_Int32 nIndex = rtl_ustr_indexOfStr( aStr1.getStr(), suSearch );
-
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == -1 );
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(indexOfStr);
- CPPUNIT_TEST(indexOfStr_000);
- CPPUNIT_TEST(indexOfStr_001);
- CPPUNIT_TEST(indexOfStr_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class compare
-// -----------------------------------------------------------------------------
-
-
- class lastIndexOfStr : public CppUnit::TestFixture
- {
- public:
-
- void lastIndexOfStr_000()
- {
- rtl_ustr_lastIndexOfStr( NULL, NULL );
- }
-
- void lastIndexOfStr_000_1()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line for a lastIndexOfStr."));
- rtl_ustr_lastIndexOfStr( aStr1.getStr(), NULL );
- }
-
- void lastIndexOfStr_001()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line for a lastIndexOfStr."));
- rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("Index"));
-
- sal_Int32 nIndex = rtl_ustr_lastIndexOfStr( aStr1.getStr(), aSearchStr.getStr() );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 15);
-
- /* rtl::OString */ aSearchStr = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Line"));
- /* sal_Int32 */ nIndex = rtl_ustr_lastIndexOfStr( aStr1.getStr(), aSearchStr.getStr() );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 0);
-
- /* rtl::OString */ aSearchStr = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(""));
- /* sal_Int32 */ nIndex = rtl_ustr_lastIndexOfStr( aStr1.getStr(), aSearchStr.getStr() );
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == -1);
- }
-
- void lastIndexOfStr_002()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line for a lastIndexOfStr."));
- rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("foo"));
- sal_Int32 nIndex = rtl_ustr_lastIndexOfStr( aStr1.getStr(), aSearchStr.getStr() );
-
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == -1 );
- }
-
- void lastIndexOfStr_003()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line for a lastIndexOfStr."));
- rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("O"));
- sal_Int32 nIndex = rtl_ustr_lastIndexOfStr( aStr1.getStr(), aSearchStr.getStr() );
-
- CPPUNIT_ASSERT_MESSAGE("index is wrong.", nIndex == 20 );
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(lastIndexOfStr);
- CPPUNIT_TEST(lastIndexOfStr_000);
- CPPUNIT_TEST(lastIndexOfStr_001);
- CPPUNIT_TEST(lastIndexOfStr_002);
- CPPUNIT_TEST(lastIndexOfStr_003);
- CPPUNIT_TEST_SUITE_END();
- }; // class lastIndexOfStr
-
-// -----------------------------------------------------------------------------
-
- class replaceChar : public CppUnit::TestFixture
- {
- public:
-
- void replaceChar_000()
- {
- rtl_ustr_replaceChar( NULL, 0, 0 );
- }
-
- void replaceChar_001()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("replace char."));
- rtl::OUString aShouldStr1(RTL_CONSTASCII_USTRINGPARAM("ruplacu char."));
-
- sal_uInt32 nLength = aStr1.getLength() * sizeof(sal_Unicode);
- sal_Unicode* pStr = (sal_Unicode*) malloc( nLength + sizeof(sal_Unicode)); // length + 1 (null terminator)
- CPPUNIT_ASSERT_MESSAGE("can't get memory for test", pStr != NULL);
- memset(pStr, 0, nLength + sizeof(sal_Unicode));
- memcpy(pStr, aStr1.getStr(), nLength);
-
- rtl_ustr_replaceChar( pStr, 'e', 'u' );
- rtl::OUString suStr(pStr, aStr1.getLength());
-
- CPPUNIT_ASSERT_MESSAGE("replace failed", aShouldStr1.equals(suStr) == sal_True);
- free(pStr);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(replaceChar);
- CPPUNIT_TEST(replaceChar_000);
- CPPUNIT_TEST(replaceChar_001);
- CPPUNIT_TEST_SUITE_END();
- }; // class replaceChar
-
-// -----------------------------------------------------------------------------
-
- class replaceChar_WithLength : public CppUnit::TestFixture
- {
- public:
-
- void replaceChar_WithLength_000()
- {
- rtl_ustr_replaceChar_WithLength( NULL, 0, 0, 0 );
- }
-
- void replaceChar_WithLength_000_1()
- {
- rtl_ustr_replaceChar_WithLength( NULL, 1, 0, 0 );
- }
- void replaceChar_WithLength_001()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("replace char."));
- rtl::OUString aShouldStr1(RTL_CONSTASCII_USTRINGPARAM("ruplace char."));
-
- sal_uInt32 nLength = aStr1.getLength() * sizeof(sal_Unicode);
- sal_Unicode* pStr = (sal_Unicode*) malloc(nLength);
- CPPUNIT_ASSERT_MESSAGE("can't get memory for test", pStr != NULL);
- memcpy(pStr, aStr1.getStr(), nLength);
-
- rtl_ustr_replaceChar_WithLength( pStr, 6, 'e', 'u' );
- rtl::OUString suStr(pStr, aStr1.getLength());
-
- CPPUNIT_ASSERT_MESSAGE("replace failed", aShouldStr1.equals(suStr) == sal_True);
- free(pStr);
- }
-
- void replaceChar_WithLength_002()
- {
- rtl::OUString aStr1 (RTL_CONSTASCII_USTRINGPARAM("eeeeeeeeeeeee"));
- rtl::OUString aShouldStr1(RTL_CONSTASCII_USTRINGPARAM("uuuuuueeeeeee"));
-
- sal_uInt32 nLength = aStr1.getLength() * sizeof(sal_Unicode);
- sal_Unicode* pStr = (sal_Unicode*) malloc(nLength); // no null terminator is need
- CPPUNIT_ASSERT_MESSAGE("can't get memory for test", pStr != NULL);
- memcpy(pStr, aStr1.getStr(), nLength);
-
- rtl_ustr_replaceChar_WithLength( pStr, 6, 'e', 'u' );
- rtl::OUString suStr(pStr, aStr1.getLength());
-
- CPPUNIT_ASSERT_MESSAGE("replace failed", aShouldStr1.equals(suStr) == sal_True);
- free(pStr);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(replaceChar_WithLength);
- CPPUNIT_TEST(replaceChar_WithLength_000);
- CPPUNIT_TEST(replaceChar_WithLength_000_1);
- CPPUNIT_TEST(replaceChar_WithLength_001);
- CPPUNIT_TEST(replaceChar_WithLength_002);
- CPPUNIT_TEST_SUITE_END();
- }; // class replaceChar
-
-
-// -----------------------------------------------------------------------------
-
- class toAsciiLowerCase : public CppUnit::TestFixture
- {
- public:
-
- void toAsciiLowerCase_000()
- {
- rtl_ustr_toAsciiLowerCase( NULL );
- }
-
- void toAsciiLowerCase_001()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("CHANGE THIS TO ASCII LOWER CASE."));
- rtl::OUString aShouldStr1(RTL_CONSTASCII_USTRINGPARAM("change this to ascii lower case."));
-
- sal_uInt32 nLength = aStr1.getLength() * sizeof(sal_Unicode);
- sal_Unicode* pStr = (sal_Unicode*) malloc(nLength + sizeof(sal_Unicode) ); // we need to add '\0' so one more
- CPPUNIT_ASSERT_MESSAGE("can't get memory for test", pStr != NULL);
- memset(pStr, 0, nLength + sizeof(sal_Unicode)); // empty the sal_Unicode array
- memcpy(pStr, aStr1.getStr(), nLength);
-
- rtl_ustr_toAsciiLowerCase( pStr );
- rtl::OUString suStr(pStr, aStr1.getLength());
-
- CPPUNIT_ASSERT_MESSAGE("failed", aShouldStr1.equals(suStr) == sal_True);
- free(pStr);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(toAsciiLowerCase);
- CPPUNIT_TEST(toAsciiLowerCase_000);
- CPPUNIT_TEST(toAsciiLowerCase_001);
- CPPUNIT_TEST_SUITE_END();
- }; // class replaceChar
-
-
- class toAsciiLowerCase_WithLength : public CppUnit::TestFixture
- {
- public:
-
- void toAsciiLowerCase_WithLength_000()
- {
- rtl_ustr_toAsciiLowerCase_WithLength( NULL, 0 );
- }
-
- void toAsciiLowerCase_WithLength_001()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("CHANGE THIS TO ASCII LOWER CASE."));
- rtl::OUString aShouldStr1(RTL_CONSTASCII_USTRINGPARAM("change thiS TO ASCII LOWER CASE."));
-
- sal_uInt32 nLength = aStr1.getLength() * sizeof(sal_Unicode);
- sal_Unicode* pStr = (sal_Unicode*) malloc(nLength);
- CPPUNIT_ASSERT_MESSAGE("can't get memory for test", pStr != NULL);
- memcpy(pStr, aStr1.getStr(), nLength);
-
- rtl_ustr_toAsciiLowerCase_WithLength( pStr, 10 );
-
- rtl::OUString suStr(pStr, aStr1.getLength());
- sal_Bool bResult = aShouldStr1.equals(suStr);
-
- printOUString(suStr);
- t_print("Result length: %d\n", suStr.getLength() );
- t_print("Result: %d\n", bResult);
-
- CPPUNIT_ASSERT_MESSAGE("failed", bResult == sal_True);
- free(pStr);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(toAsciiLowerCase_WithLength);
- CPPUNIT_TEST(toAsciiLowerCase_WithLength_000);
- CPPUNIT_TEST(toAsciiLowerCase_WithLength_001);
- CPPUNIT_TEST_SUITE_END();
- }; // class replaceChar
-
-// -----------------------------------------------------------------------------
-
- class toAsciiUpperCase : public CppUnit::TestFixture
- {
- public:
-
- void toAsciiUpperCase_000()
- {
- rtl_ustr_toAsciiUpperCase( NULL );
- }
-
- void toAsciiUpperCase_001()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("change this to ascii upper case."));
- rtl::OUString aShouldStr1(RTL_CONSTASCII_USTRINGPARAM("CHANGE THIS TO ASCII UPPER CASE."));
-
- sal_uInt32 nLength = aStr1.getLength() * sizeof(sal_Unicode);
- sal_Unicode* pStr = (sal_Unicode*) malloc(nLength + sizeof(sal_Unicode)); // length + null terminator
- CPPUNIT_ASSERT_MESSAGE("can't get memory for test", pStr != NULL);
- memset(pStr, 0, nLength + sizeof(sal_Unicode));
- memcpy(pStr, aStr1.getStr(), nLength);
-
- rtl_ustr_toAsciiUpperCase( pStr );
- rtl::OUString suStr(pStr, aStr1.getLength());
-
- CPPUNIT_ASSERT_MESSAGE("failed", aShouldStr1.equals(suStr) == sal_True);
- free(pStr);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(toAsciiUpperCase);
- CPPUNIT_TEST(toAsciiUpperCase_000);
- CPPUNIT_TEST(toAsciiUpperCase_001);
- CPPUNIT_TEST_SUITE_END();
- }; // class replaceChar
-
-
- class toAsciiUpperCase_WithLength : public CppUnit::TestFixture
- {
- public:
-
- void toAsciiUpperCase_WithLength_000()
- {
- rtl_ustr_toAsciiUpperCase_WithLength( NULL, 0 );
- }
-
- void toAsciiUpperCase_WithLength_001()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("change this to ascii lower case."));
- rtl::OUString aShouldStr1(RTL_CONSTASCII_USTRINGPARAM("CHANGE THIs to ascii lower case."));
-
- sal_uInt32 nLength = aStr1.getLength() * sizeof(sal_Unicode);
- sal_Unicode* pStr = (sal_Unicode*) malloc(nLength);
- CPPUNIT_ASSERT_MESSAGE("can't get memory for test", pStr != NULL);
-
- memcpy(pStr, aStr1.getStr(), nLength);
- rtl_ustr_toAsciiUpperCase_WithLength( pStr, 10 );
- rtl::OUString suStr(pStr, aStr1.getLength());
-
- // t_print("Uppercase with length: '%s'\n", aStr1.getStr());
- CPPUNIT_ASSERT_MESSAGE("failed", aShouldStr1.equals(suStr) == sal_True);
- free(pStr);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(toAsciiUpperCase_WithLength);
- CPPUNIT_TEST(toAsciiUpperCase_WithLength_000);
- CPPUNIT_TEST(toAsciiUpperCase_WithLength_001);
- CPPUNIT_TEST_SUITE_END();
- }; // class replaceChar
-
-
- // -----------------------------------------------------------------------------
-
- class trim_WithLength : public CppUnit::TestFixture
- {
- public:
- void trim_WithLength_000()
- {
- rtl_ustr_trim_WithLength(NULL, 0);
- // should not GPF
- }
-
- void trim_WithLength_000_1()
- {
- rtl::OUString suStr(RTL_CONSTASCII_USTRINGPARAM(" trim this"));
-
- sal_uInt32 nLength = suStr.getLength() * sizeof(sal_Unicode);
- sal_Unicode *pStr = (sal_Unicode*)malloc(nLength);
- memcpy(pStr, suStr.getStr(), nLength);
-
- rtl_ustr_trim_WithLength( pStr, 0 );
- free(pStr);
- }
-
- void trim_WithLength_001()
- {
- rtl::OUString suStr(RTL_CONSTASCII_USTRINGPARAM(" trim this"));
- sal_uInt32 nLength = suStr.getLength() * sizeof(sal_Unicode);
- sal_Unicode *pStr = (sal_Unicode*)malloc(nLength);
- memcpy(pStr, suStr.getStr(), nLength);
-
- rtl_ustr_trim_WithLength( pStr, 2 );
-
- CPPUNIT_ASSERT_MESSAGE("string should be empty", rtl::OUString(pStr).getLength() == 0);
- free(pStr);
- }
-
-
- void trim_WithLength_002()
- {
- rtl::OUString suStr(RTL_CONSTASCII_USTRINGPARAM("trim this"));
-
- sal_uInt32 nLength = suStr.getLength() * sizeof(sal_Unicode);
- sal_Unicode *pStr = (sal_Unicode*)malloc(nLength);
- memcpy(pStr, suStr.getStr(), nLength);
-
- rtl_ustr_trim_WithLength( pStr, 5 );
-
- CPPUNIT_ASSERT_MESSAGE("string should contain 'trim'", rtl::OUString(pStr).getLength() == 4);
- free(pStr);
- }
-
-
- void trim_WithLength_003()
- {
- rtl::OUString suStr(RTL_CONSTASCII_USTRINGPARAM(" trim this"));
-
- sal_uInt32 nLength = suStr.getLength() * sizeof(sal_Unicode);
- sal_Unicode *pStr = (sal_Unicode*)malloc(nLength);
- memcpy(pStr, suStr.getStr(), nLength);
-
- rtl_ustr_trim_WithLength( pStr, 11 );
-
- CPPUNIT_ASSERT_MESSAGE("string should contain 'trim'", rtl::OUString(pStr).getLength() == 4);
- free(pStr);
- }
-
- void trim_WithLength_004()
- {
- rtl::OUString suStr(RTL_CONSTASCII_USTRINGPARAM("\r\n\t \n\r trim \n this"));
-
- sal_uInt32 nLength = suStr.getLength() * sizeof(sal_Unicode);
- sal_Unicode *pStr = (sal_Unicode*)malloc(nLength);
- memcpy(pStr, suStr.getStr(), nLength);
-
- rtl_ustr_trim_WithLength( pStr, 17 );
-
- CPPUNIT_ASSERT_MESSAGE("string should contain 'trim'", rtl::OUString(pStr).getLength() == 4);
- free(pStr);
- }
-
- void trim_WithLength_005()
- {
- rtl::OUString suStr(RTL_CONSTASCII_USTRINGPARAM("\r\n\t \n\r trim \t this \n\r\t\t "));
-
- sal_uInt32 nLength = suStr.getLength() * sizeof(sal_Unicode);
- sal_Unicode *pStr = (sal_Unicode*)malloc(nLength);
- memcpy(pStr, suStr.getStr(), nLength);
-
- rtl_ustr_trim_WithLength( pStr, suStr.getLength() );
-
- CPPUNIT_ASSERT_MESSAGE("string should contain 'trim \\t this'", rtl::OUString(pStr).getLength() == 11);
- free(pStr);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(trim_WithLength);
- CPPUNIT_TEST(trim_WithLength_000);
- CPPUNIT_TEST(trim_WithLength_000_1);
- CPPUNIT_TEST(trim_WithLength_001);
- CPPUNIT_TEST(trim_WithLength_002);
- CPPUNIT_TEST(trim_WithLength_003);
- CPPUNIT_TEST(trim_WithLength_004);
- CPPUNIT_TEST(trim_WithLength_005);
- CPPUNIT_TEST_SUITE_END();
- };
-
- // -----------------------------------------------------------------------------
-
- class valueOfChar : public CppUnit::TestFixture
- {
- public:
- void valueOfChar_000()
- {
- rtl_ustr_valueOfChar(NULL, 0);
- // should not GPF
- }
- void valueOfChar_001()
- {
- sal_Unicode *pStr = (sal_Unicode*)malloc(RTL_USTR_MAX_VALUEOFCHAR);
- if (pStr)
- {
- rtl_ustr_valueOfChar(pStr, 'A');
-
- CPPUNIT_ASSERT_MESSAGE("string should contain 'A'", pStr[0] == L'A');
- free(pStr);
- }
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(valueOfChar);
- CPPUNIT_TEST(valueOfChar_000);
- CPPUNIT_TEST(valueOfChar_001);
- CPPUNIT_TEST_SUITE_END();
- };
-
-
-
-
- class ascii_compare_WithLength : public CppUnit::TestFixture
- {
- public:
- void zero_length()
- {
- sal_Unicode pUnicode[] = {0xffff, 0xffff};
- char const * pAscii = "reference";
-
- sal_Int32 value = rtl_ustr_ascii_compare_WithLength(pUnicode, 0, pAscii);
- CPPUNIT_ASSERT_MESSAGE("ref string is empty, compare failed, needs to be <0.", value < 0);
- }
-
- void equal_ascii_shorter()
- {
- rtl::OUString refStr(RTL_CONSTASCII_USTRINGPARAM("referenceString"));
- char const * pAscii = "reference";
-
- sal_Int32 value = rtl_ustr_ascii_compare_WithLength(refStr.pData->buffer, refStr.pData->length, pAscii);
- CPPUNIT_ASSERT_MESSAGE("ref string is bigger, compare failed, needs to be >0.", value > 0);
- }
-
- void equal_ascii_shorter_asciiLength()
- {
- rtl::OUString refStr(RTL_CONSTASCII_USTRINGPARAM("referenceString"));
- char const * pAscii = "reference";
-
- sal_Int32 value = rtl_ustr_ascii_compare_WithLength(refStr.pData->buffer, rtl_str_getLength(pAscii), pAscii);
- CPPUNIT_ASSERT_MESSAGE("ref string is bigger despite ascii length, compare failed, needs to be == 0.", value == 0);
- }
-
- void equal_ref_shorter()
- {
- rtl::OUString refStr(RTL_CONSTASCII_USTRINGPARAM("reference"));
- char const * pAscii = "referenceString";
-
- sal_Int32 value = rtl_ustr_ascii_compare_WithLength(refStr.pData->buffer, refStr.pData->length, pAscii);
- CPPUNIT_ASSERT_MESSAGE("ascii string is bigger, but only compared to ref length, needs to be 0.", value < 0);
- }
-
- void equal()
- {
- rtl::OUString refStr(RTL_CONSTASCII_USTRINGPARAM("reference"));
- char const * pAscii = "reference";
-
- sal_Int32 value = rtl_ustr_ascii_compare_WithLength(refStr.pData->buffer, refStr.pData->length, pAscii);
- CPPUNIT_ASSERT_MESSAGE("strings are equal, compare failed, needs to be 0.", value == 0);
- }
-
- void unequal_reference_bigger()
- {
- rtl::OUString refStr(RTL_CONSTASCII_USTRINGPARAM("defghi"));
- char const * pAscii = "abc";
-
- sal_Int32 value = rtl_ustr_ascii_compare_WithLength(refStr.pData->buffer, refStr.pData->length, pAscii);
- CPPUNIT_ASSERT_MESSAGE("strings are unequal and ref is bigger, needs to be >0.", value > 0);
- }
-
- void unequal_ascii_bigger()
- {
- rtl::OUString refStr(RTL_CONSTASCII_USTRINGPARAM("abc"));
- char const * pAscii = "defghi";
-
- sal_Int32 value = rtl_ustr_ascii_compare_WithLength(refStr.pData->buffer, refStr.pData->length, pAscii);
-
- CPPUNIT_ASSERT_MESSAGE("strings are unequal and ascii is bigger, needs to be <0.", value < 0);
- }
-
- CPPUNIT_TEST_SUITE(ascii_compare_WithLength);
- CPPUNIT_TEST(zero_length);
- CPPUNIT_TEST(equal_ascii_shorter);
- CPPUNIT_TEST(equal_ascii_shorter_asciiLength);
- CPPUNIT_TEST(equal_ref_shorter);
- CPPUNIT_TEST(equal);
- CPPUNIT_TEST(unequal_reference_bigger);
- CPPUNIT_TEST(unequal_ascii_bigger);
- CPPUNIT_TEST_SUITE_END();
- };
-
-
-
-
- class ascii_shortenedCompareIgnoreAsciiCase_WithLength : public CppUnit::TestFixture
- {
- public:
-
- void ascii_shortenedCompareIgnoreAsciiCase_WithLength_000()
- {
- rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength( NULL, 0, NULL, 0);
- // should not GPF
- }
-
- void ascii_shortenedCompareIgnoreAsciiCase_WithLength_000_1()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
- rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength( aStr1.getStr(), aStr1.getLength(), NULL, 0);
- // should not GPF
- }
- void ascii_shortenedCompareIgnoreAsciiCase_WithLength_000_2()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
- rtl::OString sStr2 = "Line is shorter.";
- rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength( aStr1.getStr(), sStr2.getLength(), sStr2.getStr(), 0);
- // should not GPF
- }
- void ascii_shortenedCompareIgnoreAsciiCase_WithLength_001()
- {
- rtl::OUString suStr1;
- rtl::OString sStr2;
-
- sal_Int32 nValue = rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength( suStr1, 0, sStr2.getStr(), 0);
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
- }
-
- void ascii_shortenedCompareIgnoreAsciiCase_WithLength_002()
- {
- rtl::OUString suStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
- rtl::OString sStr2 = "Line must be equal.";
-
- sal_Int32 nValue = rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength( suStr1.getStr(), suStr1.getLength(), sStr2.getStr(), sStr2.getLength());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
- }
-
- void ascii_shortenedCompareIgnoreAsciiCase_WithLength_003()
- {
- rtl::OUString suStr1(RTL_CONSTASCII_USTRINGPARAM("Line must differ."));
- rtl::OString sStr2 = "Line must be differ and longer.";
-
- sal_Int32 nValue = rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength( suStr1.getStr(), suStr1.getLength(), sStr2.getStr(), sStr2.getLength());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings differ.", nValue != 0);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(ascii_shortenedCompareIgnoreAsciiCase_WithLength);
- CPPUNIT_TEST(ascii_shortenedCompareIgnoreAsciiCase_WithLength_000);
- CPPUNIT_TEST(ascii_shortenedCompareIgnoreAsciiCase_WithLength_000_1);
- CPPUNIT_TEST(ascii_shortenedCompareIgnoreAsciiCase_WithLength_000_2);
- CPPUNIT_TEST(ascii_shortenedCompareIgnoreAsciiCase_WithLength_001);
- CPPUNIT_TEST(ascii_shortenedCompareIgnoreAsciiCase_WithLength_002);
- CPPUNIT_TEST(ascii_shortenedCompareIgnoreAsciiCase_WithLength_003);
- CPPUNIT_TEST_SUITE_END();
- }; // class ascii_shortenedCompareIgnoreAsciiCase_WithLength
-
-// -----------------------------------------------------------------------------
-
- class ascii_compareIgnoreAsciiCase_WithLength : public CppUnit::TestFixture
- {
- public:
-
- void ascii_compareIgnoreAsciiCase_WithLength_000()
- {
- rtl_ustr_ascii_compareIgnoreAsciiCase_WithLength( NULL, 0, NULL);
- // should not GPF
- }
-
- void ascii_compareIgnoreAsciiCase_WithLength_000_1()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
- rtl_ustr_ascii_compareIgnoreAsciiCase_WithLength( aStr1.getStr(), 0, NULL);
- // should not GPF
- }
- void ascii_compareIgnoreAsciiCase_WithLength_000_2()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
- rtl::OString sStr2 = "Line is shorter.";
- rtl_ustr_ascii_compareIgnoreAsciiCase_WithLength( aStr1.getStr(), sStr2.getLength(), sStr2.getStr());
- // should not GPF
- }
- void ascii_compareIgnoreAsciiCase_WithLength_001()
- {
- rtl::OUString suStr1;
- rtl::OString sStr2;
-
- sal_Int32 nValue = rtl_ustr_ascii_compareIgnoreAsciiCase_WithLength( suStr1, 0, sStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compareIgnoreAsciiCase_WithLength failed, strings are equal.", nValue == 0);
- }
-
- void ascii_compareIgnoreAsciiCase_WithLength_002()
- {
- rtl::OUString suStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
- rtl::OString sStr2 = "Line must be equal.";
-
- sal_Int32 nValue = rtl_ustr_ascii_compareIgnoreAsciiCase_WithLength( suStr1.getStr(), suStr1.getLength(), sStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
- }
-
- void ascii_compareIgnoreAsciiCase_WithLength_003()
- {
- rtl::OUString suStr1(RTL_CONSTASCII_USTRINGPARAM("Line must differ."));
- rtl::OString sStr2 = "Line must be differ and longer.";
-
- sal_Int32 nValue = rtl_ustr_ascii_compareIgnoreAsciiCase_WithLength( suStr1.getStr(), suStr1.getLength(), sStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings differ.", nValue != 0);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(ascii_compareIgnoreAsciiCase_WithLength);
- CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_WithLength_000);
- CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_WithLength_000_1);
- CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_WithLength_000_2);
- CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_WithLength_001);
- CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_WithLength_002);
- CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_WithLength_003);
- CPPUNIT_TEST_SUITE_END();
- }; // class ascii_compareIgnoreAsciiCase_WithLength
-
-// -----------------------------------------------------------------------------
-
- class ascii_compare : public CppUnit::TestFixture
- {
- public:
-
- void ascii_compare_000()
- {
- rtl_ustr_ascii_compare( NULL, NULL);
- // should not GPF
- }
-
- void ascii_compare_000_1()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
- rtl_ustr_ascii_compare( aStr1.getStr(), NULL);
- // should not GPF
- }
- void ascii_compare_001()
- {
- rtl::OUString suStr1;
- rtl::OString sStr2;
-
- sal_Int32 nValue = rtl_ustr_ascii_compare( suStr1, sStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
- }
-
- void ascii_compare_002()
- {
- rtl::OUString suStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
- rtl::OString sStr2 = "Line must be equal.";
-
- sal_Int32 nValue = rtl_ustr_ascii_compare( suStr1.getStr(), sStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
- }
-
- void ascii_compare_003()
- {
- rtl::OUString suStr1(RTL_CONSTASCII_USTRINGPARAM("Line must differ."));
- rtl::OString sStr2 = "Line foo bar, ok, differ.";
-
- sal_Int32 nValue = rtl_ustr_ascii_compare( suStr1.getStr(), sStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings differ.", nValue != 0);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(ascii_compare);
- CPPUNIT_TEST(ascii_compare_000);
- CPPUNIT_TEST(ascii_compare_000_1);
- CPPUNIT_TEST(ascii_compare_001);
- CPPUNIT_TEST(ascii_compare_002);
- CPPUNIT_TEST(ascii_compare_003);
- CPPUNIT_TEST_SUITE_END();
- }; // class ascii_compare
-
-// -----------------------------------------------------------------------------
-
- class ascii_compareIgnoreAsciiCase : public CppUnit::TestFixture
- {
- public:
-
- void ascii_compareIgnoreAsciiCase_000()
- {
- rtl_ustr_ascii_compareIgnoreAsciiCase( NULL, NULL);
- // should not GPF
- }
-
- void ascii_compareIgnoreAsciiCase_000_1()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
- rtl_ustr_ascii_compareIgnoreAsciiCase( aStr1.getStr(), NULL);
- // should not GPF
- }
- void ascii_compareIgnoreAsciiCase_001()
- {
- rtl::OUString suStr1;
- rtl::OString sStr2;
-
- sal_Int32 nValue = rtl_ustr_ascii_compareIgnoreAsciiCase( suStr1, sStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
- }
-
- void ascii_compareIgnoreAsciiCase_002()
- {
- rtl::OUString suStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
- rtl::OString sStr2 = "Line must be equal.";
-
- sal_Int32 nValue = rtl_ustr_ascii_compareIgnoreAsciiCase( suStr1.getStr(), sStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
- }
-
- void ascii_compareIgnoreAsciiCase_002_1()
- {
- rtl::OUString suStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal, when ignore case."));
- rtl::OString sStr2 = "LINE MUST BE EQUAL, WHEN IGNORE CASE.";
-
- sal_Int32 nValue = rtl_ustr_ascii_compareIgnoreAsciiCase( suStr1.getStr(), sStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal (if case insensitve).", nValue == 0);
- }
-
- void ascii_compareIgnoreAsciiCase_003()
- {
- rtl::OUString suStr1(RTL_CONSTASCII_USTRINGPARAM("Line must differ."));
- rtl::OString sStr2 = "Line foo bar, ok, differ.";
-
- sal_Int32 nValue = rtl_ustr_ascii_compareIgnoreAsciiCase( suStr1.getStr(), sStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings differ.", nValue != 0);
- }
-
- //! LLA: some more tests with some high level strings
-
- // void ascii_compareIgnoreAsciiCase_001()
- // {
- // rtl::OUString suStr1(RTL_CONSTASCII_USTRINGPARAM("change this to ascii upper case."));
- // rtl::OUString aShouldStr1(RTL_CONSTASCII_USTRINGPARAM("CHANGE THIS TO ASCII UPPER CASE."));
- //
- // sal_uInt32 nLength = suStr1.getLength() * sizeof(sal_Unicode);
- // sal_Unicode* pStr = (sal_Unicode*) malloc(nLength + sizeof(sal_Unicode)); // length + null terminator
- // CPPUNIT_ASSERT_MESSAGE("can't get memory for test", pStr != NULL);
- // memset(pStr, 0, nLength + sizeof(sal_Unicode));
- // memcpy(pStr, suStr1.getStr(), nLength);
- //
- // rtl_ustr_ascii_compareIgnoreAsciiCase( pStr );
- // rtl::OUString suStr(pStr, suStr1.getLength());
- //
- // CPPUNIT_ASSERT_MESSAGE("failed", aShouldStr1.equals(suStr) == sal_True);
- // free(pStr);
- // }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(ascii_compareIgnoreAsciiCase);
- CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_000);
- CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_000_1);
- CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_001);
- CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_002);
- CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_002_1);
- CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_003);
- CPPUNIT_TEST_SUITE_END();
- }; // class ascii_compareIgnoreAsciiCase
-
-
- // sample out of inc/rtl/ustring.hxx
- // rtl_uString * pToken = NULL;
- // sal_Int32 nIndex = 0;
- // do
- // {
- // ...
- // nIndex = rtl_uString_getToken(&pToken, pStr, 0, ';', nIndex);
- // ...
- // }
- // while (nIndex >= 0);
-
- class getToken : public CppUnit::TestFixture
- {
- public:
-
- void getToken_000()
- {
- rtl_ustr_ascii_compareIgnoreAsciiCase( NULL, NULL);
- // should not GPF
- }
-
- void ascii_compareIgnoreAsciiCase_000_1()
- {
- rtl::OUString aStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
- rtl_ustr_ascii_compareIgnoreAsciiCase( aStr1.getStr(), NULL);
- // should not GPF
- }
- void ascii_compareIgnoreAsciiCase_001()
- {
- rtl::OUString suStr1;
- rtl::OString sStr2;
-
- sal_Int32 nValue = rtl_ustr_ascii_compareIgnoreAsciiCase( suStr1, sStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
- }
-
- void ascii_compareIgnoreAsciiCase_002()
- {
- rtl::OUString suStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal."));
- rtl::OString sStr2 = "Line must be equal.";
-
- sal_Int32 nValue = rtl_ustr_ascii_compareIgnoreAsciiCase( suStr1.getStr(), sStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
- }
-
- void ascii_compareIgnoreAsciiCase_002_1()
- {
- rtl::OUString suStr1(RTL_CONSTASCII_USTRINGPARAM("Line must be equal, when ignore case."));
- rtl::OString sStr2 = "LINE MUST BE EQUAL, WHEN IGNORE CASE.";
-
- sal_Int32 nValue = rtl_ustr_ascii_compareIgnoreAsciiCase( suStr1.getStr(), sStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal (if case insensitve).", nValue == 0);
- }
-
- void ascii_compareIgnoreAsciiCase_003()
- {
- rtl::OUString suStr1(RTL_CONSTASCII_USTRINGPARAM("Line must differ."));
- rtl::OString sStr2 = "Line foo bar, ok, differ.";
-
- sal_Int32 nValue = rtl_ustr_ascii_compareIgnoreAsciiCase( suStr1.getStr(), sStr2.getStr());
- CPPUNIT_ASSERT_MESSAGE("compare failed, strings differ.", nValue != 0);
- }
-
- //! LLA: some more tests with some high level strings
-
- // void ascii_compareIgnoreAsciiCase_001()
- // {
- // rtl::OUString suStr1(RTL_CONSTASCII_USTRINGPARAM("change this to ascii upper case."));
- // rtl::OUString aShouldStr1(RTL_CONSTASCII_USTRINGPARAM("CHANGE THIS TO ASCII UPPER CASE."));
- //
- // sal_uInt32 nLength = suStr1.getLength() * sizeof(sal_Unicode);
- // sal_Unicode* pStr = (sal_Unicode*) malloc(nLength + sizeof(sal_Unicode)); // length + null terminator
- // CPPUNIT_ASSERT_MESSAGE("can't get memory for test", pStr != NULL);
- // memset(pStr, 0, nLength + sizeof(sal_Unicode));
- // memcpy(pStr, suStr1.getStr(), nLength);
- //
- // rtl_ustr_ascii_compareIgnoreAsciiCase( pStr );
- // rtl::OUString suStr(pStr, suStr1.getLength());
- //
- // CPPUNIT_ASSERT_MESSAGE("failed", aShouldStr1.equals(suStr) == sal_True);
- // free(pStr);
- // }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(ascii_compareIgnoreAsciiCase);
- CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_000);
- CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_000_1);
- CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_001);
- CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_002);
- CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_002_1);
- CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_003);
- CPPUNIT_TEST_SUITE_END();
- }; // class ascii_compareIgnoreAsciiCase
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ustr::compare, "rtl_ustr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ustr::compareIgnoreAsciiCase, "rtl_ustr");
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ustr::ascii_compare_WithLength, "rtl_ustr");
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ustr::shortenedCompareIgnoreAsciiCase_WithLength, "rtl_ustr");
-// CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ustr::hashCode, "rtl_ustr");
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ustr::indexOfChar, "rtl_ustr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ustr::lastIndexOfChar, "rtl_ustr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ustr::indexOfStr, "rtl_ustr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ustr::lastIndexOfStr, "rtl_ustr");
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ustr::replaceChar, "rtl_ustr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ustr::replaceChar_WithLength, "rtl_ustr");
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ustr::toAsciiLowerCase, "rtl_ustr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ustr::toAsciiLowerCase_WithLength, "rtl_ustr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ustr::toAsciiUpperCase, "rtl_ustr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ustr::toAsciiUpperCase_WithLength, "rtl_ustr");
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ustr::trim_WithLength, "rtl_ustr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ustr::valueOfChar, "rtl_ustr");
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ustr::ascii_compare, "rtl_ustr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ustr::ascii_compareIgnoreAsciiCase, "rtl_ustr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ustr::ascii_compareIgnoreAsciiCase_WithLength, "rtl_ustr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ustr::ascii_shortenedCompareIgnoreAsciiCase_WithLength, "rtl_ustr");
-
-} // namespace rtl_ustr
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-NOADDITIONAL;
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/oustring/rtl_ustr.xsce b/sal/qa/rtl/oustring/rtl_ustr.xsce
deleted file mode 100644
index 0c098eb83..000000000
--- a/sal/qa/rtl/oustring/rtl_ustr.xsce
+++ /dev/null
@@ -1,33 +0,0 @@
-# functions which are gpf
-
-rtl_ustr.compare.compare_000
-rtl_ustr.compare.compare_000_1
-
-rtl_ustr.compareIgnoreAsciiCase.compare_000
-rtl_ustr.compareIgnoreAsciiCase.compare_000_1
-
-rtl_ustr.indexOfChar.indexOfChar_000
-
-rtl_ustr.lastIndexOfChar.lastIndexOfChar_000
-
-rtl_ustr.indexOfStr.indexOfStr_000
-
-rtl_ustr.lastIndexOfStr.lastIndexOfStr_000
-
-rtl_ustr.replaceChar.replaceChar_000
-
-rtl_ustr.replaceChar_WithLength.replaceChar_WithLength_000_1
-
-rtl_ustr.toAsciiLowerCase.toAsciiLowerCase_000
-
-rtl_ustr.toAsciiUpperCase.toAsciiUpperCase_000
-
-rtl_ustr.valueOfChar.valueOfChar_000
-
-rtl_ustr.ascii_compare.ascii_compare_000
-rtl_ustr.ascii_compare.ascii_compare_000_1
-rtl_ustr.ascii_compareIgnoreAsciiCase.ascii_compareIgnoreAsciiCase_000
-rtl_ustr.ascii_compareIgnoreAsciiCase.ascii_compareIgnoreAsciiCase_000_1
-rtl_ustr.ascii_compareIgnoreAsciiCase_WithLength.ascii_compareIgnoreAsciiCase_WithLength_000
-rtl_ustr.ascii_compareIgnoreAsciiCase_WithLength.ascii_compareIgnoreAsciiCase_WithLength_000_1
-
diff --git a/sal/qa/rtl/oustringbuffer/makefile.mk b/sal/qa/rtl/oustringbuffer/makefile.mk
deleted file mode 100644
index 0db90281a..000000000
--- a/sal/qa/rtl/oustringbuffer/makefile.mk
+++ /dev/null
@@ -1,57 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ := ..$/..$/..
-PRJNAME := sal
-
-TARGET := qa_rtl_oustringbuffer
-
-ENABLE_EXCEPTIONS := TRUE
-
-.INCLUDE: settings.mk
-
-.IF "$(OS)" == "IOS"
-CFLAGSCXX += -DCPPUNIT_PLUGIN_EXPORTED_NAME=cppunitTest_$(TARGET)
-.ENDIF
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-
-SHL1TARGET := $(TARGET)
-SHL1OBJS := \
- $(SLO)$/test_oustringbuffer_utf32.obj \
- $(SLO)$/test_oustringbuffer_tostring.obj \
- $(SLO)$/test_oustringbuffer_noadditional.obj
-SHL1IMPLIB := i$(SHL1TARGET)
-SHL1STDLIBS := $(SALLIB) $(CPPUNITLIB)
-SHL1VERSIONMAP := $(PRJ)$/qa$/export.map
-DEF1NAME := $(SHL1TARGET)
-
-.INCLUDE: target.mk
-.INCLUDE: $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/rtl/oustringbuffer/test_oustringbuffer_noadditional.cxx b/sal/qa/rtl/oustringbuffer/test_oustringbuffer_noadditional.cxx
deleted file mode 100644
index 18e8a6344..000000000
--- a/sal/qa/rtl/oustringbuffer/test_oustringbuffer_noadditional.cxx
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <cppunit/plugin/TestPlugIn.h>
-
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/oustringbuffer/test_oustringbuffer_tostring.cxx b/sal/qa/rtl/oustringbuffer/test_oustringbuffer_tostring.cxx
deleted file mode 100644
index df38ce629..000000000
--- a/sal/qa/rtl/oustringbuffer/test_oustringbuffer_tostring.cxx
+++ /dev/null
@@ -1,64 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/TestAssert.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include "rtl/ustrbuf.hxx"
-#include "rtl/ustring.hxx"
-
-namespace test { namespace oustringbuffer {
-
-class ToString: public CppUnit::TestFixture {
-private:
- void testToString();
-
- CPPUNIT_TEST_SUITE(ToString);
- CPPUNIT_TEST(testToString);
- CPPUNIT_TEST_SUITE_END();
-};
-
-} }
-
-CPPUNIT_TEST_SUITE_REGISTRATION(test::oustringbuffer::ToString);
-
-void test::oustringbuffer::ToString::testToString() {
- rtl::OUStringBuffer sb(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("test string")));
- rtl::OUString str = sb.toString();
- CPPUNIT_ASSERT(str.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("test string")));
- // returned OUString must be independent from sb
- sb.append( (sal_Unicode)'a' );
- CPPUNIT_ASSERT(str.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("test string")));
- sb.setLength(0);
- CPPUNIT_ASSERT(str.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("test string")));
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/oustringbuffer/test_oustringbuffer_utf32.cxx b/sal/qa/rtl/oustringbuffer/test_oustringbuffer_utf32.cxx
deleted file mode 100644
index a7609c5d4..000000000
--- a/sal/qa/rtl/oustringbuffer/test_oustringbuffer_utf32.cxx
+++ /dev/null
@@ -1,136 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/TestAssert.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include "rtl/strbuf.hxx"
-#include "rtl/ustrbuf.hxx"
-#include "rtl/ustring.h"
-#include "rtl/ustring.hxx"
-
-namespace test { namespace oustringbuffer {
-
-class Utf32: public CppUnit::TestFixture {
-private:
- void appendUtf32();
-
- void insertUtf32();
-
- CPPUNIT_TEST_SUITE(Utf32);
- CPPUNIT_TEST(appendUtf32);
- CPPUNIT_TEST(insertUtf32);
- CPPUNIT_TEST_SUITE_END();
-};
-
-} }
-
-CPPUNIT_TEST_SUITE_REGISTRATION(test::oustringbuffer::Utf32);
-
-namespace {
-
-void appendString(rtl::OStringBuffer & buffer, rtl::OUString const & string) {
- buffer.append('"');
- for (int i = 0; i < string.getLength(); ++i) {
- buffer.append(RTL_CONSTASCII_STRINGPARAM("\\u"));
- sal_Unicode c = string[i];
- if (c < 0x1000) {
- buffer.append('0');
- if (c < 0x100) {
- buffer.append('0');
- if (c < 0x10) {
- buffer.append('0');
- }
- }
- }
- buffer.append(
- static_cast< sal_Int32 >(c), static_cast< sal_Int16 >(16));
- }
- buffer.append('"');
-}
-
-void createMessage(
- rtl::OStringBuffer & message, rtl::OUString const & string1,
- rtl::OUString const & string2)
-{
- message.setLength(0);
- appendString(message, string1);
- message.append(RTL_CONSTASCII_STRINGPARAM(" vs. "));
- appendString(message, string2);
-}
-
-}
-
-void test::oustringbuffer::Utf32::appendUtf32() {
- int const str1Len = 3;
- sal_Unicode const str1[str1Len] = { 'a', 'b', 'c' };
- int const str2Len = 4;
- sal_Unicode const str2[str2Len] = { 'a', 'b', 'c', 'd' };
- int const str3Len = 6;
- sal_Unicode const str3[str3Len] = { 'a', 'b', 'c', 'd', 0xD800, 0xDC00 };
- rtl::OStringBuffer message;
- rtl::OUStringBuffer buf1(rtl::OUString(str1, str1Len));
- buf1.appendUtf32('d');
- rtl::OUString res1(buf1.makeStringAndClear());
- createMessage(message, res1, rtl::OUString(str2, str2Len));
- CPPUNIT_ASSERT_MESSAGE(
- (const char *) message.getStr(), res1 == rtl::OUString(str2, str2Len));
- rtl::OUStringBuffer buf2(rtl::OUString(str2, str2Len));
- buf2.appendUtf32(0x10000);
- rtl::OUString res2(buf2.makeStringAndClear());
- createMessage(message, res2, rtl::OUString(str3, str3Len));
- CPPUNIT_ASSERT_MESSAGE(
- (const char *)message.getStr(), res2 == rtl::OUString(str3, str3Len));
-}
-
-void test::oustringbuffer::Utf32::insertUtf32() {
- int const str1Len = 3;
- sal_Unicode const str1[str1Len] = { 'a', 'b', 'c' };
- int const str2Len = 4;
- sal_Unicode const str2[str2Len] = { 'a', 'b', 'd', 'c' };
- int const str3Len = 6;
- sal_Unicode const str3[str3Len] = { 'a', 'b', 0xDBFF, 0xDFFF, 'd', 'c' };
- rtl::OStringBuffer message;
- rtl::OUStringBuffer buf1(rtl::OUString(str1, str1Len));
- buf1.insertUtf32(2, 'd');
- rtl::OUString res1(buf1.makeStringAndClear());
- createMessage(message, res1, rtl::OUString(str2, str2Len));
- CPPUNIT_ASSERT_MESSAGE(
- (const char *) message.getStr(), res1 == rtl::OUString(str2, str2Len));
- rtl::OUStringBuffer buf2(rtl::OUString(str2, str2Len));
- buf2.insertUtf32(2, 0x10FFFF);
- rtl::OUString res2(buf2.makeStringAndClear());
- createMessage(message, res2, rtl::OUString(str3, str3Len));
- CPPUNIT_ASSERT_MESSAGE(
- (const char *) message.getStr(), res2 == rtl::OUString(str3, str3Len));
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/process/child_process.cxx b/sal/qa/rtl/process/child_process.cxx
deleted file mode 100644
index 186860acf..000000000
--- a/sal/qa/rtl/process/child_process.cxx
+++ /dev/null
@@ -1,74 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <stdio.h>
-#include "sal/main.h"
-#include <rtl/process.h>
-#include <rtl_Process_Const.h>
-
-using namespace ::rtl;
-
-// ----------------------------------- Main -----------------------------------
-SAL_IMPLEMENT_MAIN_WITH_ARGS(, argv)
-{
- printf("# %s is called.\n", argv[0]);
-
- sal_Int32 nCount = rtl_getAppCommandArgCount();
- if ( nCount != 4 )
- {
- printf(
- "# not enough arguments found, need 4 found %ld.\n",
- sal::static_int_cast< long >(nCount));
- return 0;
- }
-
- OUString suArg[4];
- for( sal_Int32 i = 0 ; i < nCount ; i ++ )
- {
- rtl_getAppCommandArg( i , &(suArg[i].pData) );
- rtl::OString aString;
- aString = ::rtl::OUStringToOString( suArg[i], RTL_TEXTENCODING_ASCII_US );
- printf(
- "# Parameter[%ld] is %s\n", sal::static_int_cast< long >(i),
- aString.getStr());
- }
-
- if ( suArg[0].compareTo( suParam0) != 0 ||
- suArg[1].compareTo( suParam1) != 0 ||
- suArg[2].compareTo( suParam2) != 0 ||
- suArg[3].compareTo( suParam3) != 0 )
- {
- return 0;
- }
- return 2;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/process/child_process_id.cxx b/sal/qa/rtl/process/child_process_id.cxx
deleted file mode 100644
index 8431e867e..000000000
--- a/sal/qa/rtl/process/child_process_id.cxx
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <stdio.h>
-#include "sal/main.h"
-#include <rtl/process.h>
-#include <rtl_Process_Const.h>
-
-void printUuid( sal_uInt8 *pNode )
-{
- for( sal_Int32 i1 = 0 ; i1 < 4 ; i1++ )
- {
- for( sal_Int32 i2 = 0 ; i2 < 4 ; i2++ )
- {
- sal_uInt8 nValue = pNode[i1*4 +i2];
- if (nValue < 16)
- {
- printf( "0");
- }
- printf( "%02x" ,nValue );
- }
- if( i1 == 3 )
- break;
- //printf( "-" );
- }
-}
-
-// ----------------------------------- Main -----------------------------------
-
-SAL_IMPLEMENT_MAIN()
-{
- sal_uInt8 pTargetUUID[16];
- rtl_getGlobalProcessId( pTargetUUID );
- printUuid( pTargetUUID );
- return 1;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/process/makefile.mk b/sal/qa/rtl/process/makefile.mk
deleted file mode 100644
index e3a26c931..000000000
--- a/sal/qa/rtl/process/makefile.mk
+++ /dev/null
@@ -1,76 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-INCPRE+= $(PRJ)$/qa$/inc
-
-PRJNAME=sal
-TARGET=rtl_Process
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-
-# BEGIN ----------------------------------------------------------------
-# auto generated Target:joblist by codegen.pl
-SHL1OBJS= \
- $(SLO)$/rtl_Process.obj
-
-SHL1TARGET= rtl_Process
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-
-DEF1NAME =$(SHL1TARGET)
-SHL1VERSIONMAP= $(PRJ)$/qa$/export.map
-# END ------------------------------------------------------------------
-
-OBJ3FILES=$(OBJ)$/child_process.obj
-APP3TARGET=child_process
-APP3OBJS=$(OBJ3FILES)
-APP3STDLIBS=$(SALLIB)
-
-OBJ4FILES=$(OBJ)$/child_process_id.obj
-APP4TARGET=child_process_id
-APP4OBJS=$(OBJ4FILES)
-APP4STDLIBS=$(SALLIB)
-
-#------------------------------- All object files -------------------------------
-# do this here, so we get right dependencies
-SLOFILES=$(SHL1OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/rtl/process/rtl_Process.cxx b/sal/qa/rtl/process/rtl_Process.cxx
deleted file mode 100644
index f51a6edaf..000000000
--- a/sal/qa/rtl/process/rtl_Process.cxx
+++ /dev/null
@@ -1,302 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <sal/types.h>
-
-#include <testshl/simpleheader.hxx>
-#include <rtl/ustring.hxx>
-#include <rtl/string.hxx>
-#include <rtl/process.h>
-#include <osl/process.h>
-#include <osl/module.hxx>
-
-#include "rtl_Process_Const.h"
-
-using namespace osl;
-
-using ::rtl::OUString;
-using ::rtl::OString;
-using ::rtl::OUStringToOString;
-
-/** print a UNI_CODE String. And also print some comments of the string.
-*/
-inline void printUString( const ::rtl::OUString & str, const sal_Char * msg = NULL )
-{
- if ( msg != NULL )
- {
- t_print("#%s #printUString_u# ", msg );
- }
- rtl::OString aString;
- aString = ::rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US );
- t_print("%s\n", (char *)aString.getStr( ) );
-}
-
-// -----------------------------------------------------------------------------
-inline ::rtl::OUString getModulePath( void )
-{
- ::rtl::OUString suDirPath;
- ::osl::Module::getUrlFromAddress(
- reinterpret_cast< oslGenericFunction >(getModulePath), suDirPath );
-
- printUString(suDirPath, "modulePath:");
- suDirPath = suDirPath.copy( 0, suDirPath.lastIndexOf('/') );
- suDirPath = suDirPath.copy( 0, suDirPath.lastIndexOf('/') + 1);
- suDirPath += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("bin"));
- return suDirPath;
-}
-
-// -----------------------------------------------------------------------------
-
-namespace rtl_Process
-{
-class getAppCommandArg : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void getAppCommandArg_001()
- {
-#if defined(WNT)
- const rtl::OUString EXECUTABLE_NAME(RTL_CONSTASCII_USTRINGPARAM("child_process.exe"));
-#else
- const rtl::OUString EXECUTABLE_NAME(RTL_CONSTASCII_USTRINGPARAM("child_process"));
-#endif
- rtl::OUString suCWD = getModulePath();
- // rtl::OUString suCWD2 = getExecutableDirectory();
-
- printUString(suCWD, "path to the current module");
- // printUString(suCWD2, "suCWD2");
-
- oslProcess hProcess = NULL;
-
- const int nParameterCount = 4;
- rtl_uString* pParameters[ nParameterCount ];
-
- pParameters[0] = suParam0.pData;
- pParameters[1] = suParam1.pData;
- pParameters[2] = suParam2.pData;
- pParameters[3] = suParam3.pData;
-
- rtl::OUString suFileURL = suCWD;
- suFileURL += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- suFileURL += EXECUTABLE_NAME;
-
- oslProcessError osl_error = osl_executeProcess(
- suFileURL.pData,
- pParameters,
- nParameterCount,
- osl_Process_WAIT,
- 0, /* osl_getCurrentSecurity() */
- suCWD.pData,
- NULL,
- 0,
- &hProcess );
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_createProcess failed",
- osl_error == osl_Process_E_None
- );
- //we could get return value only after the process terminated
- osl_joinProcess(hProcess);
- // CPPUNIT_ASSERT_MESSAGE
- // (
- // "osl_joinProcess returned with failure",
- // osl_Process_E_None == osl_error
- // );
- oslProcessInfo* pInfo = new oslProcessInfo;
- //please pay attention to initial the Size to sizeof(oslProcessInfo), or else
- //you will get unknow error when call osl_getProcessInfo
- pInfo->Size = sizeof(oslProcessInfo);
- osl_error = osl_getProcessInfo( hProcess, osl_Process_EXITCODE, pInfo );
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_getProcessInfo returned with failure",
- osl_Process_E_None == osl_error
- );
-
- t_print("the exit code is %d.\n", pInfo->Code );
- CPPUNIT_ASSERT_MESSAGE("rtl_getAppCommandArg or rtl_getAppCommandArgCount error.", pInfo->Code == 2);
- delete pInfo;
- }
-
-
- CPPUNIT_TEST_SUITE(getAppCommandArg);
- CPPUNIT_TEST(getAppCommandArg_001);
- // CPPUNIT_TEST(getAppCommandArg_002);
- CPPUNIT_TEST_SUITE_END();
-}; // class getAppCommandArg
-
-/************************************************************************
- * For diagnostics( from sal/test/testuuid.cxx )
- ************************************************************************/
-void printUuid( sal_uInt8 *pNode )
-{
- printf("# UUID is: ");
- for( sal_Int32 i1 = 0 ; i1 < 4 ; i1++ )
- {
- for( sal_Int32 i2 = 0 ; i2 < 4 ; i2++ )
- {
- sal_uInt8 nValue = pNode[i1*4 +i2];
- if (nValue < 16)
- {
- printf( "0");
- }
- printf( "%02x" ,nValue );
- }
- if( i1 == 3 )
- break;
- printf( "-" );
- }
- printf("\n");
-}
-
-/**************************************************************************
- * output UUID to a string
- **************************************************************************/
-void printUuidtoBuffer( sal_uInt8 *pNode, sal_Char * pBuffer )
-{
- sal_Int8 nPtr = 0;
- for( sal_Int32 i1 = 0 ; i1 < 16 ; i1++ )
- {
- sal_uInt8 nValue = pNode[i1];
- if (nValue < 16)
- {
- sprintf( (sal_Char *)(pBuffer + nPtr), "0");
- nPtr++;
- }
- sprintf( (sal_Char *)(pBuffer + nPtr), "%02x", nValue );
- nPtr += 2 ;
- }
-}
-
-class getGlobalProcessId : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
- //gets a 16-byte fixed size identifier which is guaranteed not to change during the current process.
- void getGlobalProcessId_001()
- {
- sal_uInt8 pTargetUUID1[16];
- sal_uInt8 pTargetUUID2[16];
- rtl_getGlobalProcessId( pTargetUUID1 );
- rtl_getGlobalProcessId( pTargetUUID2 );
- CPPUNIT_ASSERT_MESSAGE("getGlobalProcessId: got two same ProcessIds.", !memcmp( pTargetUUID1 , pTargetUUID2 , 16 ) );
- }
- //different processes different pids
- void getGlobalProcessId_002()
- {
-#if defined(WNT)
- const rtl::OUString EXEC_NAME(RTL_CONSTASCII_USTRINGPARAM("child_process_id.exe"));
-#else
- const rtl::OUString EXEC_NAME(RTL_CONSTASCII_USTRINGPARAM("child_process_id"));
-#endif
- sal_uInt8 pTargetUUID1[16];
- rtl_getGlobalProcessId( pTargetUUID1 );
- printUuid( pTargetUUID1 );
- sal_Char pUUID1[32];
- printUuidtoBuffer( pTargetUUID1, pUUID1 );
- printf("# UUID to String is %s\n", pUUID1);
-
- rtl::OUString suCWD = getModulePath();
- oslProcess hProcess = NULL;
- rtl::OUString suFileURL = suCWD;
- suFileURL += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- suFileURL += EXEC_NAME;
- oslFileHandle* pChildOutputRead = new oslFileHandle();
- oslProcessError osl_error = osl_executeProcess_WithRedirectedIO(
- suFileURL.pData,
- NULL,
- 0,
- osl_Process_WAIT,
- 0,
- suCWD.pData,
- NULL,
- 0,
- &hProcess,
- NULL,
- pChildOutputRead,
- NULL);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_createProcess failed",
- osl_error == osl_Process_E_None
- );
- //we could get return value only after the process terminated
- osl_joinProcess(hProcess);
-
- sal_Char pUUID2[33];
- pUUID2[32] = '\0';
- sal_uInt64 nRead = 0;
- osl_readFile( *pChildOutputRead, pUUID2, 32, &nRead );
- t_print("read buffer is %s, nRead is %d \n", pUUID2, nRead );
- OUString suUUID2 = OUString::createFromAscii( pUUID2 );
- CPPUNIT_ASSERT_MESSAGE("getGlobalProcessId: got two same ProcessIds.", suUUID2.equalsAsciiL( pUUID1, 32) == sal_False );
- }
-
- CPPUNIT_TEST_SUITE(getGlobalProcessId);
- CPPUNIT_TEST(getGlobalProcessId_001);
- CPPUNIT_TEST(getGlobalProcessId_002);
- CPPUNIT_TEST_SUITE_END();
-
-}; // class getGlobalProcessId
-
-} // namespace rtl_Process
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_Process::getAppCommandArg, "rtl_Process");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_Process::getGlobalProcessId, "rtl_Process");
-
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-NOADDITIONAL;
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/process/rtl_Process_Const.h b/sal/qa/rtl/process/rtl_Process_Const.h
deleted file mode 100644
index 106af3c73..000000000
--- a/sal/qa/rtl/process/rtl_Process_Const.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-
-#ifndef _RTL_PROCESS_CONST_H_
-#define _RTL_PROCESS_CONST_H_
-
-//------------------------------------------------------------------------
-#include <rtl/ustring.hxx>
-
-using namespace ::rtl;
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-//------------------------------------------------------------------------
-::rtl::OUString suParam0(RTL_CONSTASCII_USTRINGPARAM("-join"));
-::rtl::OUString suParam1(RTL_CONSTASCII_USTRINGPARAM("-with"));
-::rtl::OUString suParam2(RTL_CONSTASCII_USTRINGPARAM("-child"));
-::rtl::OUString suParam3(RTL_CONSTASCII_USTRINGPARAM("-process"));
-
-//------------------------------------------------------------------------
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* RTL_PROCESS_CONST_H*/
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/random/makefile.add b/sal/qa/rtl/random/makefile.add
deleted file mode 100644
index eb45c312e..000000000
--- a/sal/qa/rtl/random/makefile.add
+++ /dev/null
@@ -1,19 +0,0 @@
-# BEGIN ----------------------------------------------------------------
-# auto generated Target:job by codegen.pl
-SHL1OBJS= \
- $(SLO)$/rtl_random.obj
-
-SHL1TARGET= job
-SHL1STDLIBS=\
- $(SALLIB) \
- $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-# SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-DEF1NAME =$(SHL1TARGET)
-# DEF1EXPORTFILE= export.exp
-SHL1VERSIONMAP= export.map
-# auto generated Target:job
-# END ------------------------------------------------------------------
-
diff --git a/sal/qa/rtl/random/makefile.mk b/sal/qa/rtl/random/makefile.mk
deleted file mode 100644
index ef5a86ced..000000000
--- a/sal/qa/rtl/random/makefile.mk
+++ /dev/null
@@ -1,58 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..$/..
-
-PRJNAME=sal
-TARGET=qa_rtl_random
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-DLLPRE = # no leading "lib" on .so files
-
-SHL1OBJS= \
- $(SLO)$/rtl_random.obj
-
-SHL1TARGET= rtl_Random
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-DEF1NAME =$(SHL1TARGET)
-SHL1VERSIONMAP= $(PRJ)$/qa$/export.map
-
-#------------------------------- All object files -------------------------------
-SLOFILES= \
- $(SHL1OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/rtl/random/random.txt b/sal/qa/rtl/random/random.txt
deleted file mode 100644
index d7eb1f1b2..000000000
--- a/sal/qa/rtl/random/random.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-rtl_random.createPool.createPool_001
-rtl_random.destroyPool.destroyPool_001
-rtl_random.addBytes.addBytes_001
-rtl_random.getBytes.getBytes_001
-
diff --git a/sal/qa/rtl/random/rtl_random.cxx b/sal/qa/rtl/random/rtl_random.cxx
deleted file mode 100644
index 411e89732..000000000
--- a/sal/qa/rtl/random/rtl_random.cxx
+++ /dev/null
@@ -1,418 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <algorithm>
-
-#include <cppunit/TestAssert.h>
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#include <osl/diagnose.h>
-#include <rtl/random.h>
-
-#include <string.h>
-
-namespace rtl_random
-{
-
-class createPool : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // insert your test code here.
- // this is only demonstration code
- void createPool_001()
- {
- // this is demonstration code
-
- rtlRandomPool aPool = rtl_random_createPool();
-
- // LLA: seems to be that an other test is not possible for createPool()
- CPPUNIT_ASSERT_MESSAGE("create failed", aPool != NULL);
-
- rtl_random_destroyPool(aPool);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(createPool);
- CPPUNIT_TEST(createPool_001);
- CPPUNIT_TEST_SUITE_END();
-}; // class createPool
-
-
-class destroyPool : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // insert your test code here.
- void destroyPool_000()
- {
- // GPF, if failed
- rtl_random_destroyPool(NULL);
- }
-
- void destroyPool_001()
- {
- rtlRandomPool aPool = rtl_random_createPool();
-
- // LLA: seems to be that an other test is not possible for createPool()
- CPPUNIT_ASSERT_MESSAGE("create failed", aPool != NULL);
-
- rtl_random_destroyPool(aPool);
- }
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(destroyPool);
- CPPUNIT_TEST(destroyPool_000);
- CPPUNIT_TEST(destroyPool_001);
- CPPUNIT_TEST_SUITE_END();
-}; // class destroyPool
-
-
-class addBytes : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // insert your test code here.
- // this is only demonstration code
- void addBytes_000()
- {
- rtlRandomPool aPool = rtl_random_createPool();
-
- sal_uInt32 nBufLen = 4;
- sal_uInt8 *pBuffer = new sal_uInt8[ nBufLen ];
- memset(pBuffer, 0, nBufLen);
-
- rtlRandomError aError = rtl_random_addBytes(NULL, NULL, 0);
- CPPUNIT_ASSERT_MESSAGE("wrong parameter", aError == rtl_Random_E_Argument);
-
- /* rtlRandomError */ aError = rtl_random_addBytes(aPool, NULL, 0);
- CPPUNIT_ASSERT_MESSAGE("wrong parameter", aError == rtl_Random_E_Argument);
-
- /* rtlRandomError */ aError = rtl_random_addBytes(aPool, pBuffer, nBufLen);
- CPPUNIT_ASSERT_MESSAGE("wrong parameter", aError == rtl_Random_E_None);
-
- rtl_random_destroyPool(aPool);
- delete [] pBuffer;
-
- }
-
- void addBytes_001()
- {
- rtlRandomPool aPool = rtl_random_createPool();
-
- sal_uInt32 nBufLen = 4;
- sal_uInt8 *pBuffer = new sal_uInt8[ nBufLen ];
-
- memset(pBuffer, 0, nBufLen);
-
- rtl_random_addBytes(aPool, pBuffer, nBufLen);
-
- printf("%2x %2x %2x %2x\n", pBuffer[0], pBuffer[1], pBuffer[2], pBuffer[3]);
-
- rtl_random_destroyPool(aPool);
- delete [] pBuffer;
- }
-
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(addBytes);
- CPPUNIT_TEST(addBytes_000);
- CPPUNIT_TEST(addBytes_001);
- CPPUNIT_TEST_SUITE_END();
-}; // class addBytes
-
-
-class Statistics
-{
- int m_nDispensation[256];
-
- int m_nMin;
- int m_nMax;
- int m_nAverage;
- int m_nMinDeviation;
- int m_nMaxDeviation;
-
-public:
- void clearDispensation()
- {
- for (int i = 0;i < 256;++i) // clear array
- {
- m_nDispensation[i] = 0;
- }
- }
- Statistics()
- : m_nMin(0)
- , m_nMax(0)
- , m_nAverage(0)
- , m_nMinDeviation(0)
- , m_nMaxDeviation(0)
- {
- clearDispensation();
- }
- ~Statistics(){}
-
- void addValue(sal_Int16 _nIndex, sal_Int32 _nValue)
- {
- OSL_ASSERT(_nIndex >= 0 && _nIndex < 256);
- m_nDispensation[_nIndex] += _nValue;
- }
-
- void build(sal_Int32 _nCountMax)
- {
- m_nMin = _nCountMax;
- m_nMax = 0;
-
- m_nAverage = _nCountMax / 256;
-
- m_nMinDeviation = _nCountMax;
- m_nMaxDeviation = 0;
-
- for (int i = 0;i < 256;++i) // show dispensation
- {
- m_nMin = std::min(m_nMin, m_nDispensation[i]);
- m_nMax = std::max(m_nMax, m_nDispensation[i]);
-
- m_nMinDeviation = std::min(m_nMinDeviation, abs(m_nAverage - m_nDispensation[i]));
- m_nMaxDeviation = std::max(m_nMaxDeviation, abs(m_nAverage - m_nDispensation[i]));
- }
- }
-
- void print()
- {
- // LLA: these are only info values
- printf("\nSome statistics\n");
- printf("Min: %d\n", m_nMin);
- printf("Max: %d\n", m_nMax);
- printf("Average: %d\n", m_nAverage);
- printf("Min abs deviation: %d\n", m_nMinDeviation);
- printf("Max abs deviation: %d\n", m_nMaxDeviation);
- }
-
- sal_Int32 getAverage() const {return m_nAverage;}
- sal_Int32 getMaxDeviation() const {return m_nMaxDeviation;}
-
-};
-
-class getBytes : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // insert your test code here.
- void getBytes_000()
- {
- rtlRandomPool aPool = rtl_random_createPool();
-
- sal_uInt32 nBufLen = 4;
- sal_uInt8 *pBuffer = new sal_uInt8[ nBufLen ];
- memset(pBuffer, 0, nBufLen);
-
- rtlRandomError aError = rtl_random_getBytes(NULL, NULL, 0);
- CPPUNIT_ASSERT_MESSAGE("wrong parameter", aError == rtl_Random_E_Argument);
-
- /* rtlRandomError */ aError = rtl_random_getBytes(aPool, NULL, 0);
- CPPUNIT_ASSERT_MESSAGE("wrong parameter", aError == rtl_Random_E_Argument);
-
- /* rtlRandomError */ aError = rtl_random_getBytes(aPool, pBuffer, nBufLen);
- CPPUNIT_ASSERT_MESSAGE("wrong parameter", aError == rtl_Random_E_None);
-
- rtl_random_destroyPool(aPool);
- delete [] pBuffer;
- }
-
- void getBytes_001()
- {
- rtlRandomPool aPool = rtl_random_createPool();
-
- sal_uInt32 nBufLen = 4;
- sal_uInt8 *pBuffer = new sal_uInt8[ nBufLen ];
- memset(pBuffer, 0, nBufLen);
-
- rtlRandomError aError = rtl_random_getBytes(aPool, pBuffer, nBufLen);
- CPPUNIT_ASSERT_MESSAGE("wrong parameter", aError == rtl_Random_E_None);
-
- printf("%2x %2x %2x %2x\n", pBuffer[0], pBuffer[1], pBuffer[2], pBuffer[3]);
-
- rtl_random_destroyPool(aPool);
- delete [] pBuffer;
- }
-
- void getBytes_002()
- {
- rtlRandomPool aPool = rtl_random_createPool();
-
- sal_uInt32 nBufLen = 4;
- sal_uInt8 *pBuffer = new sal_uInt8[ nBufLen << 1 ];
- memset(pBuffer, 0, nBufLen << 1);
-
- CPPUNIT_ASSERT_MESSAGE("memset failed", pBuffer[4] == 0 && pBuffer[5] == 0 && pBuffer[6] == 0 && pBuffer[7] == 0);
-
- rtlRandomError aError = rtl_random_getBytes(aPool, pBuffer, nBufLen);
- CPPUNIT_ASSERT_MESSAGE("wrong parameter", aError == rtl_Random_E_None);
-
- printf("%2x %2x %2x %2x %2x %2x %2x %2x\n", pBuffer[0], pBuffer[1], pBuffer[2], pBuffer[3], pBuffer[4], pBuffer[5], pBuffer[6], pBuffer[7]);
-
- CPPUNIT_ASSERT_MESSAGE("internal memory overwrite", pBuffer[4] == 0 && pBuffer[5] == 0 && pBuffer[6] == 0 && pBuffer[7] == 0);
-
- rtl_random_destroyPool(aPool);
- delete [] pBuffer;
- }
-
- void getBytes_003()
- {
- rtlRandomPool aPool = rtl_random_createPool();
-
- sal_uInt32 nBufLen = 1;
- sal_uInt8 *pBuffer = new sal_uInt8[ nBufLen ];
- memset(pBuffer, 0, nBufLen);
-
- Statistics aStat;
-
- CPPUNIT_ASSERT_MESSAGE("memset failed", pBuffer[0] == 0);
-
- int nCount = 0;
-
- int nCountMax = 1000000;
- for(nCount = 0;nCount < nCountMax; ++nCount) // run 100000000 through getBytes(...)
- {
- /* rtlRandomError aError = */ rtl_random_getBytes(aPool, pBuffer, nBufLen);
- /* CPPUNIT_ASSERT_MESSAGE("wrong parameter", aError == rtl_Random_E_None); */
-
- aStat.addValue(pBuffer[0], 1);
- }
-
- aStat.build(nCountMax);
- aStat.print();
-
- CPPUNIT_ASSERT_MESSAGE("deviation should be less average", aStat.getMaxDeviation() < aStat.getAverage());
-
- rtl_random_destroyPool(aPool);
- delete [] pBuffer;
- }
-
- void getBytes_003_1()
- {
- rtlRandomPool aPool = rtl_random_createPool();
-
- sal_uInt32 nBufLen = 256;
- sal_uInt8 *pBuffer = new sal_uInt8[ nBufLen ];
- memset(pBuffer, 0, nBufLen);
-
- Statistics aStat;
-
- CPPUNIT_ASSERT_MESSAGE("memset failed", pBuffer[0] == 0);
-
- int nCount = 0;
-
- int nCountMax = 10000;
- for(nCount = 0;nCount < nCountMax; ++nCount) // run 100000000 through getBytes(...)
- {
- /* rtlRandomError aError = */ rtl_random_getBytes(aPool, pBuffer, nBufLen);
- // CPPUNIT_ASSERT_MESSAGE("wrong parameter", aError == rtl_Random_E_None);
-
- for (sal_uInt32 i=0;i<nBufLen;++i)
- aStat.addValue(pBuffer[i], 1);
- }
-
- aStat.build(nCountMax * nBufLen);
- aStat.print();
-
- CPPUNIT_ASSERT_MESSAGE("deviation should be less average", aStat.getMaxDeviation() < aStat.getAverage());
-
- rtl_random_destroyPool(aPool);
- delete [] pBuffer;
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(getBytes);
- CPPUNIT_TEST(getBytes_000);
- CPPUNIT_TEST(getBytes_001);
- CPPUNIT_TEST(getBytes_002);
- CPPUNIT_TEST(getBytes_003);
- CPPUNIT_TEST(getBytes_003_1);
- CPPUNIT_TEST_SUITE_END();
-}; // class getBytes
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_random::createPool);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_random::destroyPool);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_random::addBytes);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_random::getBytes);
-} // namespace rtl_random
-
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/strings/makefile.mk b/sal/qa/rtl/strings/makefile.mk
deleted file mode 100644
index c58476e59..000000000
--- a/sal/qa/rtl/strings/makefile.mk
+++ /dev/null
@@ -1,58 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ := ..$/..$/..
-PRJNAME := sal
-
-TARGET := qa_rtl_strings
-
-ENABLE_EXCEPTIONS := TRUE
-
-.INCLUDE: settings.mk
-
-.IF "$(OS)" == "IOS"
-CFLAGSCXX += -DCPPUNIT_PLUGIN_EXPORTED_NAME=cppunitTest_$(TARGET)
-.ENDIF
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-
-SHL1TARGET := $(TARGET)
-SHL1OBJS := \
- $(SLO)$/test_oustring_compare.obj \
- $(SLO)$/test_oustring_convert.obj \
- $(SLO)$/test_oustring_endswith.obj \
- $(SLO)$/test_oustring_noadditional.obj
-SHL1IMPLIB := i$(SHL1TARGET)
-SHL1STDLIBS := $(SALLIB) $(CPPUNITLIB)
-SHL1VERSIONMAP := $(PRJ)$/qa$/export.map
-DEF1NAME := $(SHL1TARGET)
-
-.INCLUDE: target.mk
-.INCLUDE: $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/rtl/strings/test_oustring_compare.cxx b/sal/qa/rtl/strings/test_oustring_compare.cxx
deleted file mode 100644
index 1d4246d5e..000000000
--- a/sal/qa/rtl/strings/test_oustring_compare.cxx
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include "rtl/string.h"
-#include "rtl/ustring.hxx"
-
-namespace test { namespace oustring {
-
-class Compare: public CppUnit::TestFixture
-{
-private:
- void equalsIgnoreAsciiCaseAscii();
-
-CPPUNIT_TEST_SUITE(Compare);
-CPPUNIT_TEST(equalsIgnoreAsciiCaseAscii);
-CPPUNIT_TEST_SUITE_END();
-};
-
-} }
-
-CPPUNIT_TEST_SUITE_REGISTRATION(test::oustring::Compare);
-
-void test::oustring::Compare::equalsIgnoreAsciiCaseAscii()
-{
- CPPUNIT_ASSERT(!rtl::OUString().equalsIgnoreAsciiCaseAscii("abc"));
- CPPUNIT_ASSERT(!rtl::OUString().equalsIgnoreAsciiCaseAsciiL(
- RTL_CONSTASCII_STRINGPARAM("abc")));
- CPPUNIT_ASSERT(!rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("abc")).
- equalsIgnoreAsciiCaseAscii(""));
- CPPUNIT_ASSERT(!rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("abc")).
- equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("")));
-
- CPPUNIT_ASSERT(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("abc")).
- equalsIgnoreAsciiCaseAscii("abc"));
- CPPUNIT_ASSERT(!rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("abcd")).
- equalsIgnoreAsciiCaseAscii("abc"));
- CPPUNIT_ASSERT(!rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("abc")).
- equalsIgnoreAsciiCaseAscii("abcd"));
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/strings/test_oustring_convert.cxx b/sal/qa/rtl/strings/test_oustring_convert.cxx
deleted file mode 100644
index 1a1933e45..000000000
--- a/sal/qa/rtl/strings/test_oustring_convert.cxx
+++ /dev/null
@@ -1,188 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include "rtl/strbuf.hxx"
-#include "rtl/string.hxx"
-#include "rtl/ustring.hxx"
-#include <sal/macros.h>
-
-namespace test { namespace oustring {
-
-class Convert: public CppUnit::TestFixture
-{
-private:
- void convertToString();
-
- CPPUNIT_TEST_SUITE(Convert);
- CPPUNIT_TEST(convertToString);
- CPPUNIT_TEST_SUITE_END();
-};
-
-} }
-
-CPPUNIT_TEST_SUITE_REGISTRATION(test::oustring::Convert);
-
-namespace {
-
-struct TestConvertToString
-{
- sal_Unicode aSource[100];
- sal_Int32 nLength;
- rtl_TextEncoding nEncoding;
- sal_uInt32 nFlags;
- char const * pStrict;
- char const * pRelaxed;
-};
-
-void testConvertToString(TestConvertToString const & rTest)
-{
- const rtl::OUString aSource(rTest.aSource, rTest.nLength);
- rtl::OString aStrict(RTL_CONSTASCII_STRINGPARAM("12345"));
- bool bSuccess = aSource.convertToString(&aStrict, rTest.nEncoding,
- rTest.nFlags);
- rtl::OString aRelaxed(rtl::OUStringToOString(aSource, rTest.nEncoding,
- rTest.nFlags));
-
- rtl::OStringBuffer aPrefix;
- aPrefix.append(RTL_CONSTASCII_STRINGPARAM("{"));
- for (sal_Int32 i = 0; i < rTest.nLength; ++i)
- {
- aPrefix.append(RTL_CONSTASCII_STRINGPARAM("U+"));
- aPrefix.append(static_cast< sal_Int32 >(rTest.aSource[i]), 16);
- if (i + 1 < rTest.nLength)
- aPrefix.append(RTL_CONSTASCII_STRINGPARAM(","));
- }
- aPrefix.append(RTL_CONSTASCII_STRINGPARAM("}, "));
- aPrefix.append(static_cast< sal_Int32 >(rTest.nEncoding));
- aPrefix.append(RTL_CONSTASCII_STRINGPARAM(", 0x"));
- aPrefix.append(static_cast< sal_Int32 >(rTest.nFlags), 16);
- aPrefix.append(RTL_CONSTASCII_STRINGPARAM(" -> "));
-
- if (bSuccess)
- {
- if (rTest.pStrict == 0 || !aStrict.equals(rTest.pStrict))
- {
- rtl::OStringBuffer aMessage(aPrefix);
- aMessage.append(RTL_CONSTASCII_STRINGPARAM("strict = \""));
- aMessage.append(aStrict);
- aMessage.append(RTL_CONSTASCII_STRINGPARAM("\""));
- CPPUNIT_ASSERT_MESSAGE(aMessage.getStr(), false);
- }
- }
- else
- {
- if (!aStrict.equals(rtl::OString(RTL_CONSTASCII_STRINGPARAM("12345"))))
- {
- rtl::OStringBuffer aMessage(aPrefix);
- aMessage.append(RTL_CONSTASCII_STRINGPARAM("modified output"));
- CPPUNIT_ASSERT_MESSAGE(aMessage.getStr(), false);
- }
- if (rTest.pStrict != 0)
- {
- rtl::OStringBuffer aMessage(aPrefix);
- aMessage.append(RTL_CONSTASCII_STRINGPARAM("failed"));
- CPPUNIT_ASSERT_MESSAGE(aMessage.getStr(), false);
- }
- }
- if (!aRelaxed.equals(rTest.pRelaxed))
- {
- rtl::OStringBuffer aMessage(aPrefix);
- aMessage.append(RTL_CONSTASCII_STRINGPARAM("relaxed = \""));
- aMessage.append(aRelaxed);
- aMessage.append(RTL_CONSTASCII_STRINGPARAM("\""));
- CPPUNIT_ASSERT_MESSAGE(aMessage.getStr(), false);
- }
-}
-
-}
-
-void test::oustring::Convert::convertToString()
-{
- TestConvertToString const aTests[]
- = { { { 0 },
- 0,
- RTL_TEXTENCODING_ASCII_US,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
- | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR,
- "",
- "" },
- { { 0 },
- 0,
- RTL_TEXTENCODING_ASCII_US,
- OUSTRING_TO_OSTRING_CVTFLAGS,
- "",
- "" },
- { { 0x0041,0x0042,0x0043 },
- 3,
- RTL_TEXTENCODING_ASCII_US,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
- | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR,
- "ABC",
- "ABC" },
- { { 0x0041,0x0042,0x0043 },
- 3,
- RTL_TEXTENCODING_ASCII_US,
- OUSTRING_TO_OSTRING_CVTFLAGS,
- "ABC",
- "ABC" },
- { { 0xB800 },
- 1,
- RTL_TEXTENCODING_ISO_2022_JP,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
- | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR,
- 0,
- "" },
- { { 0x3001, 0xB800 },
- 2,
- RTL_TEXTENCODING_ISO_2022_JP,
- OUSTRING_TO_OSTRING_CVTFLAGS,
- "\x1b\x24\x42\x21\x22\x1b\x28\x42\x3f",
- "\x1b\x24\x42\x21\x22\x1b\x28\x42\x3f" },
- { { 0x0041,0x0100,0x0042 },
- 3,
- RTL_TEXTENCODING_ISO_8859_1,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
- | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR,
- 0,
- "A" },
- { { 0x0041,0x0100,0x0042 },
- 3,
- RTL_TEXTENCODING_ISO_8859_1,
- OUSTRING_TO_OSTRING_CVTFLAGS,
- "A?B",
- "A?B" } };
- for (unsigned int i = 0; i < SAL_N_ELEMENTS(aTests); ++i)
- testConvertToString(aTests[i]);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/strings/test_oustring_endswith.cxx b/sal/qa/rtl/strings/test_oustring_endswith.cxx
deleted file mode 100644
index 390808105..000000000
--- a/sal/qa/rtl/strings/test_oustring_endswith.cxx
+++ /dev/null
@@ -1,126 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include "rtl/strbuf.hxx"
-#include "rtl/string.h"
-#include "rtl/string.hxx"
-#include "rtl/textenc.h"
-#include "rtl/ustring.hxx"
-#include "sal/types.h"
-#include <sal/macros.h>
-
-namespace test { namespace oustring {
-
-class EndsWith: public CppUnit::TestFixture
-{
-private:
- void endsWith();
-
- CPPUNIT_TEST_SUITE(EndsWith);
- CPPUNIT_TEST(endsWith);
- CPPUNIT_TEST_SUITE_END();
-};
-
-} }
-
-CPPUNIT_TEST_SUITE_REGISTRATION(test::oustring::EndsWith);
-
-namespace {
-
-void appendString(rtl::OStringBuffer & buffer, rtl::OString const & string)
-{
- buffer.append('"');
- for (int i = 0; i < string.getLength(); ++i) {
- char c = string[i];
- if (c < ' ' || c == '"' || c == '\\' || c > '~') {
- buffer.append('\\');
- sal_Int32 n = static_cast< sal_Int32 >(
- static_cast< unsigned char >(c));
- if (n < 16) {
- buffer.append('0');
- }
- buffer.append(n, 16);
- } else {
- buffer.append(c);
- }
- }
- buffer.append('"');
-}
-
-}
-
-void test::oustring::EndsWith::endsWith()
-{
- struct Data {
- char const * str1;
- sal_Int32 str1Len;
- char const * str2;
- sal_Int32 str2Len;
- bool endsWith;
- };
- Data const data[] = {
- { RTL_CONSTASCII_STRINGPARAM(""), RTL_CONSTASCII_STRINGPARAM(""),
- true },
- { RTL_CONSTASCII_STRINGPARAM("abc"), RTL_CONSTASCII_STRINGPARAM(""),
- true },
- { RTL_CONSTASCII_STRINGPARAM(""), RTL_CONSTASCII_STRINGPARAM("abc"),
- false },
- { RTL_CONSTASCII_STRINGPARAM("ABC"), RTL_CONSTASCII_STRINGPARAM("abc"),
- true },
- { RTL_CONSTASCII_STRINGPARAM("abcd"), RTL_CONSTASCII_STRINGPARAM("bcd"),
- true },
- { RTL_CONSTASCII_STRINGPARAM("bcd"), RTL_CONSTASCII_STRINGPARAM("abcd"),
- false },
- { RTL_CONSTASCII_STRINGPARAM("a\0b\0c"),
- RTL_CONSTASCII_STRINGPARAM("b\0c"), true },
- { RTL_CONSTASCII_STRINGPARAM("a\0b\0c"),
- RTL_CONSTASCII_STRINGPARAM("b"), false } };
- for (size_t i = 0; i < SAL_N_ELEMENTS(data); ++i) {
- rtl::OStringBuffer msg;
- appendString(msg, rtl::OString(data[i].str1, data[i].str1Len));
- msg.append(
- RTL_CONSTASCII_STRINGPARAM(".endsWithIgnoreAsciiCaseAsciiL("));
- appendString(msg, rtl::OString(data[i].str2, data[i].str2Len));
- msg.append(RTL_CONSTASCII_STRINGPARAM(") == "));
- msg.append(static_cast< sal_Bool >(data[i].endsWith));
- CPPUNIT_ASSERT_MESSAGE(
- msg.getStr(),
- rtl::OUString(
- data[i].str1, data[i].str1Len,
- RTL_TEXTENCODING_ASCII_US).endsWithIgnoreAsciiCaseAsciiL(
- data[i].str2, data[i].str2Len)
- == data[i].endsWith);
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/strings/test_oustring_noadditional.cxx b/sal/qa/rtl/strings/test_oustring_noadditional.cxx
deleted file mode 100644
index d5a1de59f..000000000
--- a/sal/qa/rtl/strings/test_oustring_noadditional.cxx
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <cppunit/plugin/TestPlugIn.h>
-
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/textenc/makefile.mk b/sal/qa/rtl/textenc/makefile.mk
deleted file mode 100644
index 4e6126235..000000000
--- a/sal/qa/rtl/textenc/makefile.mk
+++ /dev/null
@@ -1,75 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-
-PRJNAME=sal
-TARGET=qa_rtl_textenc
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-
-# --- BEGIN --------------------------------------------------------
-SHL1OBJS= \
- $(SLO)$/rtl_textcvt.obj
-SHL1TARGET= rtl_textcvt
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-DEF1NAME =$(SHL1TARGET)
-SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
-
-# END --------------------------------------------------------------
-
-# --- BEGIN --------------------------------------------------------
-SHL2OBJS= \
- $(SLO)$/rtl_tencinfo.obj
-SHL2TARGET= rtl_tencinfo
-SHL2STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL2IMPLIB= i$(SHL2TARGET)
-DEF2NAME =$(SHL2TARGET)
-SHL2VERSIONMAP = $(PRJ)$/qa$/export.map
-
-# END --------------------------------------------------------------
-
-#------------------------------- All object files -------------------------------
-# do this here, so we get right dependencies
-# SLOFILES=$(SHL1OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/rtl/textenc/rtl_tencinfo.cxx b/sal/qa/rtl/textenc/rtl_tencinfo.cxx
deleted file mode 100644
index 89c1e4b1d..000000000
--- a/sal/qa/rtl/textenc/rtl_tencinfo.cxx
+++ /dev/null
@@ -1,1904 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-#include <string.h>
-
-#include <osl/thread.h>
-#include <rtl/tencinfo.h>
-
-#include <testshl/simpleheader.hxx>
-
-// -----------------------------------------------------------------------------
-
-namespace rtl_tencinfo
-{
- class getBestMime : public CppUnit::TestFixture
- {
- public:
- void setUp()
- {
- }
-
- void check( const sal_Char* _pRTL_TEXTENCODING, rtl_TextEncoding _aCurrentEncode )
- {
- const sal_Char *pCharSet = rtl_getBestMimeCharsetFromTextEncoding( _aCurrentEncode );
- if (pCharSet == 0)
- {
- t_print("rtl_getBestMimeCharsetFromTextEncoding(%s) (%d) doesn't seem to exist.\n\n", _pRTL_TEXTENCODING, _aCurrentEncode);
- }
- else
- {
- t_print(T_VERBOSE, "'%s' is charset: '%s'\n", _pRTL_TEXTENCODING, pCharSet);
-
- rtl_TextEncoding eTextEnc = rtl_getTextEncodingFromMimeCharset( pCharSet );
- if (_aCurrentEncode != eTextEnc &&
- eTextEnc != RTL_TEXTENCODING_DONTKNOW)
- {
- t_print("rtl_getBestMimeCharsetFromTextEncoding(%s) is charset: %s\n", _pRTL_TEXTENCODING, pCharSet);
- t_print("rtl_getTextEncodingFromMimeCharset() differ: %s %d -> %d\n\n", _pRTL_TEXTENCODING, _aCurrentEncode, eTextEnc );
- }
- // rtl::OString sError = "getTextEncodingFromMimeCharset(";
- // sError += pCharSet;
- // sError += ") returns null";
- // CPPUNIT_ASSERT_MESSAGE(sError.getStr(), eTextEnc != RTL_TEXTENCODING_DONTKNOW);
- // CPPUNIT_ASSERT_MESSAGE("Does not realize itself", _aCurrentEncode == eTextEnc );
- }
- }
-
-// the defines for the follows test could be found in file inc/rtl/textenc.h
-
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_MS_1252()
- {
- check( "RTL_TEXTENCODING_MS_1252", RTL_TEXTENCODING_MS_1252 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_APPLE_ROMAN()
- {
- check( "RTL_TEXTENCODING_APPLE_ROMAN", RTL_TEXTENCODING_APPLE_ROMAN );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_IBM_437()
- {
- check( "RTL_TEXTENCODING_IBM_437", RTL_TEXTENCODING_IBM_437 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_IBM_850()
- {
- check( "RTL_TEXTENCODING_IBM_850", RTL_TEXTENCODING_IBM_850 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_IBM_860()
- {
- check( "RTL_TEXTENCODING_IBM_860", RTL_TEXTENCODING_IBM_860 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_IBM_861()
- {
- check( "RTL_TEXTENCODING_IBM_861", RTL_TEXTENCODING_IBM_861 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_IBM_863()
- {
- check( "RTL_TEXTENCODING_IBM_863", RTL_TEXTENCODING_IBM_863 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_IBM_865()
- {
- check( "RTL_TEXTENCODING_IBM_865", RTL_TEXTENCODING_IBM_865 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_SYMBOL()
- {
- check( "RTL_TEXTENCODING_SYMBOL", RTL_TEXTENCODING_SYMBOL );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_ASCII_US()
- {
- check( "RTL_TEXTENCODING_ASCII_US", RTL_TEXTENCODING_ASCII_US );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_ISO_8859_1()
- {
- check( "RTL_TEXTENCODING_ISO_8859_1", RTL_TEXTENCODING_ISO_8859_1 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_ISO_8859_2()
- {
- check( "RTL_TEXTENCODING_ISO_8859_2", RTL_TEXTENCODING_ISO_8859_2 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_ISO_8859_3()
- {
- check( "RTL_TEXTENCODING_ISO_8859_3", RTL_TEXTENCODING_ISO_8859_3 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_ISO_8859_4()
- {
- check( "RTL_TEXTENCODING_ISO_8859_4", RTL_TEXTENCODING_ISO_8859_4 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_ISO_8859_5()
- {
- check( "RTL_TEXTENCODING_ISO_8859_5", RTL_TEXTENCODING_ISO_8859_5 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_ISO_8859_6()
- {
- check( "RTL_TEXTENCODING_ISO_8859_6", RTL_TEXTENCODING_ISO_8859_6 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_ISO_8859_7()
- {
- check( "RTL_TEXTENCODING_ISO_8859_7", RTL_TEXTENCODING_ISO_8859_7 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_ISO_8859_8()
- {
- check( "RTL_TEXTENCODING_ISO_8859_8", RTL_TEXTENCODING_ISO_8859_8 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_ISO_8859_9()
- {
- check( "RTL_TEXTENCODING_ISO_8859_9", RTL_TEXTENCODING_ISO_8859_9 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_ISO_8859_14()
- {
- check( "RTL_TEXTENCODING_ISO_8859_14", RTL_TEXTENCODING_ISO_8859_14 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_ISO_8859_15()
- {
- check( "RTL_TEXTENCODING_ISO_8859_15", RTL_TEXTENCODING_ISO_8859_15 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_IBM_737()
- {
- check( "RTL_TEXTENCODING_IBM_737", RTL_TEXTENCODING_IBM_737 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_IBM_775()
- {
- check( "RTL_TEXTENCODING_IBM_775", RTL_TEXTENCODING_IBM_775 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_IBM_852()
- {
- check( "RTL_TEXTENCODING_IBM_852", RTL_TEXTENCODING_IBM_852 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_IBM_855()
- {
- check( "RTL_TEXTENCODING_IBM_855", RTL_TEXTENCODING_IBM_855 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_IBM_857()
- {
- check( "RTL_TEXTENCODING_IBM_857", RTL_TEXTENCODING_IBM_857 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_IBM_862()
- {
- check( "RTL_TEXTENCODING_IBM_862", RTL_TEXTENCODING_IBM_862 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_IBM_864()
- {
- check( "RTL_TEXTENCODING_IBM_864", RTL_TEXTENCODING_IBM_864 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_IBM_866()
- {
- check( "RTL_TEXTENCODING_IBM_866", RTL_TEXTENCODING_IBM_866 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_IBM_869()
- {
- check( "RTL_TEXTENCODING_IBM_869", RTL_TEXTENCODING_IBM_869 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_MS_874()
- {
- check( "RTL_TEXTENCODING_MS_874", RTL_TEXTENCODING_MS_874 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_MS_1250()
- {
- check( "RTL_TEXTENCODING_MS_1250", RTL_TEXTENCODING_MS_1250 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_MS_1251()
- {
- check( "RTL_TEXTENCODING_MS_1251", RTL_TEXTENCODING_MS_1251 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_MS_1253()
- {
- check( "RTL_TEXTENCODING_MS_1253", RTL_TEXTENCODING_MS_1253 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_MS_1254()
- {
- check( "RTL_TEXTENCODING_MS_1254", RTL_TEXTENCODING_MS_1254 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_MS_1255()
- {
- check( "RTL_TEXTENCODING_MS_1255", RTL_TEXTENCODING_MS_1255 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_MS_1256()
- {
- check( "RTL_TEXTENCODING_MS_1256", RTL_TEXTENCODING_MS_1256 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_MS_1257()
- {
- check( "RTL_TEXTENCODING_MS_1257", RTL_TEXTENCODING_MS_1257 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_MS_1258()
- {
- check( "RTL_TEXTENCODING_MS_1258", RTL_TEXTENCODING_MS_1258 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_APPLE_ARABIC()
- {
- check( "RTL_TEXTENCODING_APPLE_ARABIC", RTL_TEXTENCODING_APPLE_ARABIC );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_APPLE_CENTEURO()
- {
- check( "RTL_TEXTENCODING_APPLE_CENTEURO", RTL_TEXTENCODING_APPLE_CENTEURO );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_APPLE_CROATIAN()
- {
- check( "RTL_TEXTENCODING_APPLE_CROATIAN", RTL_TEXTENCODING_APPLE_CROATIAN );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_APPLE_CYRILLIC()
- {
- check( "RTL_TEXTENCODING_APPLE_CYRILLIC", RTL_TEXTENCODING_APPLE_CYRILLIC );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_APPLE_DEVANAGARI()
- {
- check( "RTL_TEXTENCODING_APPLE_DEVANAGARI", RTL_TEXTENCODING_APPLE_DEVANAGARI );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_APPLE_FARSI()
- {
- check( "RTL_TEXTENCODING_APPLE_FARSI", RTL_TEXTENCODING_APPLE_FARSI );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_APPLE_GREEK()
- {
- check( "RTL_TEXTENCODING_APPLE_GREEK", RTL_TEXTENCODING_APPLE_GREEK );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_APPLE_GUJARATI()
- {
- check( "RTL_TEXTENCODING_APPLE_GUJARATI", RTL_TEXTENCODING_APPLE_GUJARATI );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_APPLE_GURMUKHI()
- {
- check( "RTL_TEXTENCODING_APPLE_GURMUKHI", RTL_TEXTENCODING_APPLE_GURMUKHI );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_APPLE_HEBREW()
- {
- check( "RTL_TEXTENCODING_APPLE_HEBREW", RTL_TEXTENCODING_APPLE_HEBREW );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_APPLE_ICELAND()
- {
- check( "RTL_TEXTENCODING_APPLE_ICELAND", RTL_TEXTENCODING_APPLE_ICELAND );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_APPLE_ROMANIAN()
- {
- check( "RTL_TEXTENCODING_APPLE_ROMANIAN", RTL_TEXTENCODING_APPLE_ROMANIAN );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_APPLE_THAI()
- {
- check( "RTL_TEXTENCODING_APPLE_THAI", RTL_TEXTENCODING_APPLE_THAI );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_APPLE_TURKISH()
- {
- check( "RTL_TEXTENCODING_APPLE_TURKISH", RTL_TEXTENCODING_APPLE_TURKISH );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_APPLE_UKRAINIAN()
- {
- check( "RTL_TEXTENCODING_APPLE_UKRAINIAN", RTL_TEXTENCODING_APPLE_UKRAINIAN );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_APPLE_CHINSIMP()
- {
- check( "RTL_TEXTENCODING_APPLE_CHINSIMP", RTL_TEXTENCODING_APPLE_CHINSIMP );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_APPLE_CHINTRAD()
- {
- check( "RTL_TEXTENCODING_APPLE_CHINTRAD", RTL_TEXTENCODING_APPLE_CHINTRAD );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_APPLE_JAPANESE()
- {
- check( "RTL_TEXTENCODING_APPLE_JAPANESE", RTL_TEXTENCODING_APPLE_JAPANESE );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_APPLE_KOREAN()
- {
- check( "RTL_TEXTENCODING_APPLE_KOREAN", RTL_TEXTENCODING_APPLE_KOREAN );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_MS_932()
- {
- check( "RTL_TEXTENCODING_MS_932", RTL_TEXTENCODING_MS_932 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_MS_936()
- {
- check( "RTL_TEXTENCODING_MS_936", RTL_TEXTENCODING_MS_936 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_MS_949()
- {
- check( "RTL_TEXTENCODING_MS_949", RTL_TEXTENCODING_MS_949 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_MS_950()
- {
- check( "RTL_TEXTENCODING_MS_950", RTL_TEXTENCODING_MS_950 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_SHIFT_JIS()
- {
- check( "RTL_TEXTENCODING_SHIFT_JIS", RTL_TEXTENCODING_SHIFT_JIS );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_GB_2312()
- {
- check( "RTL_TEXTENCODING_GB_2312", RTL_TEXTENCODING_GB_2312 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_GBT_12345()
- {
- check( "RTL_TEXTENCODING_GBT_12345", RTL_TEXTENCODING_GBT_12345 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_GBK()
- {
- check( "RTL_TEXTENCODING_GBK", RTL_TEXTENCODING_GBK );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_BIG5()
- {
- check( "RTL_TEXTENCODING_BIG5", RTL_TEXTENCODING_BIG5 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_EUC_JP()
- {
- check( "RTL_TEXTENCODING_EUC_JP", RTL_TEXTENCODING_EUC_JP );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_EUC_CN()
- {
- check( "RTL_TEXTENCODING_EUC_CN", RTL_TEXTENCODING_EUC_CN );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_EUC_TW()
- {
- check( "RTL_TEXTENCODING_EUC_TW", RTL_TEXTENCODING_EUC_TW );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_ISO_2022_JP()
- {
- check( "RTL_TEXTENCODING_ISO_2022_JP", RTL_TEXTENCODING_ISO_2022_JP );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_ISO_2022_CN()
- {
- check( "RTL_TEXTENCODING_ISO_2022_CN", RTL_TEXTENCODING_ISO_2022_CN );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_KOI8_R()
- {
- check( "RTL_TEXTENCODING_KOI8_R", RTL_TEXTENCODING_KOI8_R );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_UTF7()
- {
- check( "RTL_TEXTENCODING_UTF7", RTL_TEXTENCODING_UTF7 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_UTF8()
- {
- check( "RTL_TEXTENCODING_UTF8", RTL_TEXTENCODING_UTF8 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_ISO_8859_10()
- {
- check( "RTL_TEXTENCODING_ISO_8859_10", RTL_TEXTENCODING_ISO_8859_10 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_ISO_8859_13()
- {
- check( "RTL_TEXTENCODING_ISO_8859_13", RTL_TEXTENCODING_ISO_8859_13 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_EUC_KR()
- {
- check( "RTL_TEXTENCODING_EUC_KR", RTL_TEXTENCODING_EUC_KR );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_ISO_2022_KR()
- {
- check( "RTL_TEXTENCODING_ISO_2022_KR", RTL_TEXTENCODING_ISO_2022_KR );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_JIS_X_0201()
- {
- check( "RTL_TEXTENCODING_JIS_X_0201", RTL_TEXTENCODING_JIS_X_0201 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_JIS_X_0208()
- {
- check( "RTL_TEXTENCODING_JIS_X_0208", RTL_TEXTENCODING_JIS_X_0208 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_JIS_X_0212()
- {
- check( "RTL_TEXTENCODING_JIS_X_0212", RTL_TEXTENCODING_JIS_X_0212 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_MS_1361()
- {
- check( "RTL_TEXTENCODING_MS_1361", RTL_TEXTENCODING_MS_1361 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_GB_18030()
- {
- check( "RTL_TEXTENCODING_GB_18030", RTL_TEXTENCODING_GB_18030 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_BIG5_HKSCS()
- {
- check( "RTL_TEXTENCODING_BIG5_HKSCS", RTL_TEXTENCODING_BIG5_HKSCS );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_TIS_620()
- {
- check( "RTL_TEXTENCODING_TIS_620", RTL_TEXTENCODING_TIS_620 );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_KOI8_U()
- {
- check( "RTL_TEXTENCODING_KOI8_U", RTL_TEXTENCODING_KOI8_U );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_ISCII_DEVANAGARI()
- {
- check( "RTL_TEXTENCODING_ISCII_DEVANAGARI", RTL_TEXTENCODING_ISCII_DEVANAGARI );
- }
- // ----------------------------------------
- void MimeCharsetFromTextEncoding_JAVA_UTF8()
- {
- check( "RTL_TEXTENCODING_JAVA_UTF8", RTL_TEXTENCODING_JAVA_UTF8 );
- }
-
-/* ATTENTION! Whenever some encoding is added here, make sure to update
- * rtl_isOctetEncoding in tencinfo.c.
- */
-
-// RTL_TEXTENCODING_USER_START
-// RTL_TEXTENCODING_USER_END
-
-// check( "RTL_TEXTENCODING_UCS4", RTL_TEXTENCODING_UCS4 );
-// check( "RTL_TEXTENCODING_UCS2", RTL_TEXTENCODING_UCS2 );
-// check( "RTL_TEXTENCODING_UNICODE", RTL_TEXTENCODING_UNICODE /* RTL_TEXTENCODING_UCS2 */ );
-
- CPPUNIT_TEST_SUITE( getBestMime );
-
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_MS_1252 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_APPLE_ROMAN );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_IBM_437 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_IBM_850 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_IBM_860 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_IBM_861 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_IBM_863 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_IBM_865 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_SYMBOL );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_ASCII_US );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_ISO_8859_1 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_ISO_8859_2 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_ISO_8859_3 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_ISO_8859_4 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_ISO_8859_5 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_ISO_8859_6 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_ISO_8859_7 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_ISO_8859_8 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_ISO_8859_9 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_ISO_8859_14 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_ISO_8859_15 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_IBM_737 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_IBM_775 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_IBM_852 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_IBM_855 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_IBM_857 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_IBM_862 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_IBM_864 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_IBM_866 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_IBM_869 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_MS_874 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_MS_1250 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_MS_1251 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_MS_1253 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_MS_1254 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_MS_1255 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_MS_1256 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_MS_1257 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_MS_1258 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_APPLE_ARABIC );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_APPLE_CENTEURO );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_APPLE_CROATIAN );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_APPLE_CYRILLIC );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_APPLE_DEVANAGARI );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_APPLE_FARSI );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_APPLE_GREEK );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_APPLE_GUJARATI );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_APPLE_GURMUKHI );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_APPLE_HEBREW );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_APPLE_ICELAND );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_APPLE_ROMANIAN );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_APPLE_THAI );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_APPLE_TURKISH );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_APPLE_UKRAINIAN );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_APPLE_CHINSIMP );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_APPLE_CHINTRAD );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_APPLE_JAPANESE );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_APPLE_KOREAN );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_MS_932 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_MS_936 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_MS_949 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_MS_950 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_SHIFT_JIS );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_GB_2312 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_GBT_12345 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_GBK );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_BIG5 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_EUC_JP );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_EUC_CN );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_EUC_TW );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_ISO_2022_JP );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_ISO_2022_CN );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_KOI8_R );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_UTF7 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_UTF8 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_ISO_8859_10 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_ISO_8859_13 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_EUC_KR );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_ISO_2022_KR );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_JIS_X_0201 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_JIS_X_0208 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_JIS_X_0212 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_MS_1361 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_GB_18030 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_BIG5_HKSCS );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_TIS_620 );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_KOI8_U );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_ISCII_DEVANAGARI );
- CPPUNIT_TEST( MimeCharsetFromTextEncoding_JAVA_UTF8 );
-
- CPPUNIT_TEST_SUITE_END( );
- };
-
- // -----------------------------------------------------------------------------
-
- class getBestUnix : public CppUnit::TestFixture
- {
- public:
- void setUp()
- {
- }
-
- void check( const sal_Char* _pRTL_TEXTENCODING, rtl_TextEncoding _aCurrentEncode )
- {
- const sal_Char *pCharSet = rtl_getBestUnixCharsetFromTextEncoding( _aCurrentEncode );
- if (pCharSet == 0)
- {
- t_print("rtl_getBestUnixCharsetFromTextEncoding(%s) (%d) doesn't seem to exist.\n\n", _pRTL_TEXTENCODING, _aCurrentEncode);
- }
- else
- {
- t_print(T_VERBOSE, "'%s' is charset: '%s'\n", _pRTL_TEXTENCODING, pCharSet);
-
- rtl_TextEncoding eTextEnc = rtl_getTextEncodingFromUnixCharset( pCharSet );
- if (_aCurrentEncode != eTextEnc &&
- eTextEnc != RTL_TEXTENCODING_DONTKNOW)
- {
- t_print("rtl_getBestUnixCharsetFromTextEncoding(%s) is charset: %s\n", _pRTL_TEXTENCODING, pCharSet);
- t_print("rtl_getTextEncodingFromUnixCharset() differ: %s %d -> %d\n\n", _pRTL_TEXTENCODING, _aCurrentEncode, eTextEnc );
- }
- // rtl::OString sError = "getTextEncodingFromUnixCharset(";
- // sError += pCharSet;
- // sError += ") returns null";
- // CPPUNIT_ASSERT_MESSAGE(sError.getStr(), eTextEnc != RTL_TEXTENCODING_DONTKNOW);
- // CPPUNIT_ASSERT_MESSAGE("Does not realize itself", _aCurrentEncode == eTextEnc );
- }
- }
-
-
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_MS_1252()
- {
- check( "RTL_TEXTENCODING_MS_1252", RTL_TEXTENCODING_MS_1252 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_APPLE_ROMAN()
- {
- check( "RTL_TEXTENCODING_APPLE_ROMAN", RTL_TEXTENCODING_APPLE_ROMAN );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_IBM_437()
- {
- check( "RTL_TEXTENCODING_IBM_437", RTL_TEXTENCODING_IBM_437 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_IBM_850()
- {
- check( "RTL_TEXTENCODING_IBM_850", RTL_TEXTENCODING_IBM_850 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_IBM_860()
- {
- check( "RTL_TEXTENCODING_IBM_860", RTL_TEXTENCODING_IBM_860 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_IBM_861()
- {
- check( "RTL_TEXTENCODING_IBM_861", RTL_TEXTENCODING_IBM_861 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_IBM_863()
- {
- check( "RTL_TEXTENCODING_IBM_863", RTL_TEXTENCODING_IBM_863 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_IBM_865()
- {
- check( "RTL_TEXTENCODING_IBM_865", RTL_TEXTENCODING_IBM_865 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_SYMBOL()
- {
- check( "RTL_TEXTENCODING_SYMBOL", RTL_TEXTENCODING_SYMBOL );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_ASCII_US()
- {
- check( "RTL_TEXTENCODING_ASCII_US", RTL_TEXTENCODING_ASCII_US );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_ISO_8859_1()
- {
- check( "RTL_TEXTENCODING_ISO_8859_1", RTL_TEXTENCODING_ISO_8859_1 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_ISO_8859_2()
- {
- check( "RTL_TEXTENCODING_ISO_8859_2", RTL_TEXTENCODING_ISO_8859_2 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_ISO_8859_3()
- {
- check( "RTL_TEXTENCODING_ISO_8859_3", RTL_TEXTENCODING_ISO_8859_3 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_ISO_8859_4()
- {
- check( "RTL_TEXTENCODING_ISO_8859_4", RTL_TEXTENCODING_ISO_8859_4 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_ISO_8859_5()
- {
- check( "RTL_TEXTENCODING_ISO_8859_5", RTL_TEXTENCODING_ISO_8859_5 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_ISO_8859_6()
- {
- check( "RTL_TEXTENCODING_ISO_8859_6", RTL_TEXTENCODING_ISO_8859_6 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_ISO_8859_7()
- {
- check( "RTL_TEXTENCODING_ISO_8859_7", RTL_TEXTENCODING_ISO_8859_7 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_ISO_8859_8()
- {
- check( "RTL_TEXTENCODING_ISO_8859_8", RTL_TEXTENCODING_ISO_8859_8 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_ISO_8859_9()
- {
- check( "RTL_TEXTENCODING_ISO_8859_9", RTL_TEXTENCODING_ISO_8859_9 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_ISO_8859_14()
- {
- check( "RTL_TEXTENCODING_ISO_8859_14", RTL_TEXTENCODING_ISO_8859_14 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_ISO_8859_15()
- {
- check( "RTL_TEXTENCODING_ISO_8859_15", RTL_TEXTENCODING_ISO_8859_15 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_IBM_737()
- {
- check( "RTL_TEXTENCODING_IBM_737", RTL_TEXTENCODING_IBM_737 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_IBM_775()
- {
- check( "RTL_TEXTENCODING_IBM_775", RTL_TEXTENCODING_IBM_775 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_IBM_852()
- {
- check( "RTL_TEXTENCODING_IBM_852", RTL_TEXTENCODING_IBM_852 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_IBM_855()
- {
- check( "RTL_TEXTENCODING_IBM_855", RTL_TEXTENCODING_IBM_855 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_IBM_857()
- {
- check( "RTL_TEXTENCODING_IBM_857", RTL_TEXTENCODING_IBM_857 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_IBM_862()
- {
- check( "RTL_TEXTENCODING_IBM_862", RTL_TEXTENCODING_IBM_862 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_IBM_864()
- {
- check( "RTL_TEXTENCODING_IBM_864", RTL_TEXTENCODING_IBM_864 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_IBM_866()
- {
- check( "RTL_TEXTENCODING_IBM_866", RTL_TEXTENCODING_IBM_866 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_IBM_869()
- {
- check( "RTL_TEXTENCODING_IBM_869", RTL_TEXTENCODING_IBM_869 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_MS_874()
- {
- check( "RTL_TEXTENCODING_MS_874", RTL_TEXTENCODING_MS_874 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_MS_1250()
- {
- check( "RTL_TEXTENCODING_MS_1250", RTL_TEXTENCODING_MS_1250 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_MS_1251()
- {
- check( "RTL_TEXTENCODING_MS_1251", RTL_TEXTENCODING_MS_1251 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_MS_1253()
- {
- check( "RTL_TEXTENCODING_MS_1253", RTL_TEXTENCODING_MS_1253 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_MS_1254()
- {
- check( "RTL_TEXTENCODING_MS_1254", RTL_TEXTENCODING_MS_1254 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_MS_1255()
- {
- check( "RTL_TEXTENCODING_MS_1255", RTL_TEXTENCODING_MS_1255 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_MS_1256()
- {
- check( "RTL_TEXTENCODING_MS_1256", RTL_TEXTENCODING_MS_1256 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_MS_1257()
- {
- check( "RTL_TEXTENCODING_MS_1257", RTL_TEXTENCODING_MS_1257 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_MS_1258()
- {
- check( "RTL_TEXTENCODING_MS_1258", RTL_TEXTENCODING_MS_1258 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_APPLE_ARABIC()
- {
- check( "RTL_TEXTENCODING_APPLE_ARABIC", RTL_TEXTENCODING_APPLE_ARABIC );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_APPLE_CENTEURO()
- {
- check( "RTL_TEXTENCODING_APPLE_CENTEURO", RTL_TEXTENCODING_APPLE_CENTEURO );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_APPLE_CROATIAN()
- {
- check( "RTL_TEXTENCODING_APPLE_CROATIAN", RTL_TEXTENCODING_APPLE_CROATIAN );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_APPLE_CYRILLIC()
- {
- check( "RTL_TEXTENCODING_APPLE_CYRILLIC", RTL_TEXTENCODING_APPLE_CYRILLIC );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_APPLE_DEVANAGARI()
- {
- check( "RTL_TEXTENCODING_APPLE_DEVANAGARI", RTL_TEXTENCODING_APPLE_DEVANAGARI );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_APPLE_FARSI()
- {
- check( "RTL_TEXTENCODING_APPLE_FARSI", RTL_TEXTENCODING_APPLE_FARSI );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_APPLE_GREEK()
- {
- check( "RTL_TEXTENCODING_APPLE_GREEK", RTL_TEXTENCODING_APPLE_GREEK );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_APPLE_GUJARATI()
- {
- check( "RTL_TEXTENCODING_APPLE_GUJARATI", RTL_TEXTENCODING_APPLE_GUJARATI );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_APPLE_GURMUKHI()
- {
- check( "RTL_TEXTENCODING_APPLE_GURMUKHI", RTL_TEXTENCODING_APPLE_GURMUKHI );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_APPLE_HEBREW()
- {
- check( "RTL_TEXTENCODING_APPLE_HEBREW", RTL_TEXTENCODING_APPLE_HEBREW );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_APPLE_ICELAND()
- {
- check( "RTL_TEXTENCODING_APPLE_ICELAND", RTL_TEXTENCODING_APPLE_ICELAND );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_APPLE_ROMANIAN()
- {
- check( "RTL_TEXTENCODING_APPLE_ROMANIAN", RTL_TEXTENCODING_APPLE_ROMANIAN );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_APPLE_THAI()
- {
- check( "RTL_TEXTENCODING_APPLE_THAI", RTL_TEXTENCODING_APPLE_THAI );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_APPLE_TURKISH()
- {
- check( "RTL_TEXTENCODING_APPLE_TURKISH", RTL_TEXTENCODING_APPLE_TURKISH );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_APPLE_UKRAINIAN()
- {
- check( "RTL_TEXTENCODING_APPLE_UKRAINIAN", RTL_TEXTENCODING_APPLE_UKRAINIAN );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_APPLE_CHINSIMP()
- {
- check( "RTL_TEXTENCODING_APPLE_CHINSIMP", RTL_TEXTENCODING_APPLE_CHINSIMP );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_APPLE_CHINTRAD()
- {
- check( "RTL_TEXTENCODING_APPLE_CHINTRAD", RTL_TEXTENCODING_APPLE_CHINTRAD );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_APPLE_JAPANESE()
- {
- check( "RTL_TEXTENCODING_APPLE_JAPANESE", RTL_TEXTENCODING_APPLE_JAPANESE );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_APPLE_KOREAN()
- {
- check( "RTL_TEXTENCODING_APPLE_KOREAN", RTL_TEXTENCODING_APPLE_KOREAN );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_MS_932()
- {
- check( "RTL_TEXTENCODING_MS_932", RTL_TEXTENCODING_MS_932 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_MS_936()
- {
- check( "RTL_TEXTENCODING_MS_936", RTL_TEXTENCODING_MS_936 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_MS_949()
- {
- check( "RTL_TEXTENCODING_MS_949", RTL_TEXTENCODING_MS_949 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_MS_950()
- {
- check( "RTL_TEXTENCODING_MS_950", RTL_TEXTENCODING_MS_950 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_SHIFT_JIS()
- {
- check( "RTL_TEXTENCODING_SHIFT_JIS", RTL_TEXTENCODING_SHIFT_JIS );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_GB_2312()
- {
- check( "RTL_TEXTENCODING_GB_2312", RTL_TEXTENCODING_GB_2312 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_GBT_12345()
- {
- check( "RTL_TEXTENCODING_GBT_12345", RTL_TEXTENCODING_GBT_12345 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_GBK()
- {
- check( "RTL_TEXTENCODING_GBK", RTL_TEXTENCODING_GBK );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_BIG5()
- {
- check( "RTL_TEXTENCODING_BIG5", RTL_TEXTENCODING_BIG5 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_EUC_JP()
- {
- check( "RTL_TEXTENCODING_EUC_JP", RTL_TEXTENCODING_EUC_JP );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_EUC_CN()
- {
- check( "RTL_TEXTENCODING_EUC_CN", RTL_TEXTENCODING_EUC_CN );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_EUC_TW()
- {
- check( "RTL_TEXTENCODING_EUC_TW", RTL_TEXTENCODING_EUC_TW );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_ISO_2022_JP()
- {
- check( "RTL_TEXTENCODING_ISO_2022_JP", RTL_TEXTENCODING_ISO_2022_JP );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_ISO_2022_CN()
- {
- check( "RTL_TEXTENCODING_ISO_2022_CN", RTL_TEXTENCODING_ISO_2022_CN );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_KOI8_R()
- {
- check( "RTL_TEXTENCODING_KOI8_R", RTL_TEXTENCODING_KOI8_R );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_UTF7()
- {
- check( "RTL_TEXTENCODING_UTF7", RTL_TEXTENCODING_UTF7 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_UTF8()
- {
- check( "RTL_TEXTENCODING_UTF8", RTL_TEXTENCODING_UTF8 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_ISO_8859_10()
- {
- check( "RTL_TEXTENCODING_ISO_8859_10", RTL_TEXTENCODING_ISO_8859_10 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_ISO_8859_13()
- {
- check( "RTL_TEXTENCODING_ISO_8859_13", RTL_TEXTENCODING_ISO_8859_13 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_EUC_KR()
- {
- check( "RTL_TEXTENCODING_EUC_KR", RTL_TEXTENCODING_EUC_KR );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_ISO_2022_KR()
- {
- check( "RTL_TEXTENCODING_ISO_2022_KR", RTL_TEXTENCODING_ISO_2022_KR );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_JIS_X_0201()
- {
- check( "RTL_TEXTENCODING_JIS_X_0201", RTL_TEXTENCODING_JIS_X_0201 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_JIS_X_0208()
- {
- check( "RTL_TEXTENCODING_JIS_X_0208", RTL_TEXTENCODING_JIS_X_0208 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_JIS_X_0212()
- {
- check( "RTL_TEXTENCODING_JIS_X_0212", RTL_TEXTENCODING_JIS_X_0212 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_MS_1361()
- {
- check( "RTL_TEXTENCODING_MS_1361", RTL_TEXTENCODING_MS_1361 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_GB_18030()
- {
- check( "RTL_TEXTENCODING_GB_18030", RTL_TEXTENCODING_GB_18030 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_BIG5_HKSCS()
- {
- check( "RTL_TEXTENCODING_BIG5_HKSCS", RTL_TEXTENCODING_BIG5_HKSCS );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_TIS_620()
- {
- check( "RTL_TEXTENCODING_TIS_620", RTL_TEXTENCODING_TIS_620 );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_KOI8_U()
- {
- check( "RTL_TEXTENCODING_KOI8_U", RTL_TEXTENCODING_KOI8_U );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_ISCII_DEVANAGARI()
- {
- check( "RTL_TEXTENCODING_ISCII_DEVANAGARI", RTL_TEXTENCODING_ISCII_DEVANAGARI );
- }
- // ----------------------------------------
- void UnixCharsetFromTextEncoding_JAVA_UTF8()
- {
- check( "RTL_TEXTENCODING_JAVA_UTF8", RTL_TEXTENCODING_JAVA_UTF8 );
- }
- // ----------------------------------------
-
- CPPUNIT_TEST_SUITE( getBestUnix );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_MS_1252 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_APPLE_ROMAN );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_IBM_437 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_IBM_850 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_IBM_860 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_IBM_861 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_IBM_863 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_IBM_865 );
-
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_SYMBOL );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_ASCII_US );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_ISO_8859_1 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_ISO_8859_2 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_ISO_8859_3 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_ISO_8859_4 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_ISO_8859_5 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_ISO_8859_6 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_ISO_8859_7 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_ISO_8859_8 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_ISO_8859_9 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_ISO_8859_14 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_ISO_8859_15 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_IBM_737 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_IBM_775 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_IBM_852 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_IBM_855 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_IBM_857 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_IBM_862 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_IBM_864 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_IBM_866 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_IBM_869 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_MS_874 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_MS_1250 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_MS_1251 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_MS_1253 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_MS_1254 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_MS_1255 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_MS_1256 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_MS_1257 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_MS_1258 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_APPLE_ARABIC );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_APPLE_CENTEURO );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_APPLE_CROATIAN );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_APPLE_CYRILLIC );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_APPLE_DEVANAGARI );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_APPLE_FARSI );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_APPLE_GREEK );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_APPLE_GUJARATI );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_APPLE_GURMUKHI );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_APPLE_HEBREW );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_APPLE_ICELAND );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_APPLE_ROMANIAN );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_APPLE_THAI );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_APPLE_TURKISH );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_APPLE_UKRAINIAN );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_APPLE_CHINSIMP );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_APPLE_CHINTRAD );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_APPLE_JAPANESE );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_APPLE_KOREAN );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_MS_932 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_MS_936 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_MS_949 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_MS_950 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_SHIFT_JIS );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_GB_2312 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_GBT_12345 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_GBK );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_BIG5 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_EUC_JP );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_EUC_CN );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_EUC_TW );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_ISO_2022_JP );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_ISO_2022_CN );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_KOI8_R );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_UTF7 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_UTF8 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_ISO_8859_10 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_ISO_8859_13 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_EUC_KR );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_ISO_2022_KR );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_JIS_X_0201 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_JIS_X_0208 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_JIS_X_0212 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_MS_1361 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_GB_18030 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_BIG5_HKSCS );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_TIS_620 );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_KOI8_U );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_ISCII_DEVANAGARI );
- CPPUNIT_TEST( UnixCharsetFromTextEncoding_JAVA_UTF8 );
-
- CPPUNIT_TEST_SUITE_END( );
- };
-
- // -----------------------------------------------------------------------------
-
-
- class getBestWindows : public CppUnit::TestFixture
- {
- public:
- void setUp()
- {
- }
-
- void check( const sal_Char* _pRTL_TEXTENCODING, rtl_TextEncoding _aCurrentEncode )
- {
- const sal_uInt8 nCharSet = rtl_getBestWindowsCharsetFromTextEncoding( _aCurrentEncode );
- if (nCharSet == 1)
- {
- t_print("rtl_getBestWindowsCharsetFromTextEncoding(%s) (%d) doesn't seem to exist.\n\n", _pRTL_TEXTENCODING, _aCurrentEncode);
- }
- else
- {
- t_print(T_VERBOSE, "'%s' is charset: '%d'\n", _pRTL_TEXTENCODING, nCharSet);
-
- rtl_TextEncoding eTextEnc = rtl_getTextEncodingFromWindowsCharset( nCharSet );
- if (_aCurrentEncode != eTextEnc &&
- eTextEnc != RTL_TEXTENCODING_DONTKNOW)
- {
- t_print("rtl_getBestUnixCharsetFromTextEncoding(%s) is charset: %d\n", _pRTL_TEXTENCODING, nCharSet);
- t_print("rtl_getTextEncodingFromWindowsCharset() differ: %s %d -> %d\n\n", _pRTL_TEXTENCODING, _aCurrentEncode, eTextEnc );
- }
- // rtl::OString sError = "getTextEncodingFromWindowsCharset(";
- // sError += rtl::OString::valueOf(nCharSet);
- // sError += ") returns nul.";
-
- // CPPUNIT_ASSERT_MESSAGE(sError.getStr(), eTextEnc != RTL_TEXTENCODING_DONTKNOW);
- // CPPUNIT_ASSERT_MESSAGE("Does not realize itself", _aCurrentEncode == eTextEnc );
- }
- }
-
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_MS_1252()
- {
- check( "RTL_TEXTENCODING_MS_1252", RTL_TEXTENCODING_MS_1252 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_APPLE_ROMAN()
- {
- check( "RTL_TEXTENCODING_APPLE_ROMAN", RTL_TEXTENCODING_APPLE_ROMAN );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_IBM_437()
- {
- check( "RTL_TEXTENCODING_IBM_437", RTL_TEXTENCODING_IBM_437 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_IBM_850()
- {
- check( "RTL_TEXTENCODING_IBM_850", RTL_TEXTENCODING_IBM_850 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_IBM_860()
- {
- check( "RTL_TEXTENCODING_IBM_860", RTL_TEXTENCODING_IBM_860 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_IBM_861()
- {
- check( "RTL_TEXTENCODING_IBM_861", RTL_TEXTENCODING_IBM_861 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_IBM_863()
- {
- check( "RTL_TEXTENCODING_IBM_863", RTL_TEXTENCODING_IBM_863 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_IBM_865()
- {
- check( "RTL_TEXTENCODING_IBM_865", RTL_TEXTENCODING_IBM_865 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_SYMBOL()
- {
- check( "RTL_TEXTENCODING_SYMBOL", RTL_TEXTENCODING_SYMBOL );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_ASCII_US()
- {
- check( "RTL_TEXTENCODING_ASCII_US", RTL_TEXTENCODING_ASCII_US );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_ISO_8859_1()
- {
- check( "RTL_TEXTENCODING_ISO_8859_1", RTL_TEXTENCODING_ISO_8859_1 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_ISO_8859_2()
- {
- check( "RTL_TEXTENCODING_ISO_8859_2", RTL_TEXTENCODING_ISO_8859_2 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_ISO_8859_3()
- {
- check( "RTL_TEXTENCODING_ISO_8859_3", RTL_TEXTENCODING_ISO_8859_3 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_ISO_8859_4()
- {
- check( "RTL_TEXTENCODING_ISO_8859_4", RTL_TEXTENCODING_ISO_8859_4 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_ISO_8859_5()
- {
- check( "RTL_TEXTENCODING_ISO_8859_5", RTL_TEXTENCODING_ISO_8859_5 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_ISO_8859_6()
- {
- check( "RTL_TEXTENCODING_ISO_8859_6", RTL_TEXTENCODING_ISO_8859_6 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_ISO_8859_7()
- {
- check( "RTL_TEXTENCODING_ISO_8859_7", RTL_TEXTENCODING_ISO_8859_7 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_ISO_8859_8()
- {
- check( "RTL_TEXTENCODING_ISO_8859_8", RTL_TEXTENCODING_ISO_8859_8 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_ISO_8859_9()
- {
- check( "RTL_TEXTENCODING_ISO_8859_9", RTL_TEXTENCODING_ISO_8859_9 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_ISO_8859_14()
- {
- check( "RTL_TEXTENCODING_ISO_8859_14", RTL_TEXTENCODING_ISO_8859_14 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_ISO_8859_15()
- {
- check( "RTL_TEXTENCODING_ISO_8859_15", RTL_TEXTENCODING_ISO_8859_15 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_IBM_737()
- {
- check( "RTL_TEXTENCODING_IBM_737", RTL_TEXTENCODING_IBM_737 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_IBM_775()
- {
- check( "RTL_TEXTENCODING_IBM_775", RTL_TEXTENCODING_IBM_775 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_IBM_852()
- {
- check( "RTL_TEXTENCODING_IBM_852", RTL_TEXTENCODING_IBM_852 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_IBM_855()
- {
- check( "RTL_TEXTENCODING_IBM_855", RTL_TEXTENCODING_IBM_855 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_IBM_857()
- {
- check( "RTL_TEXTENCODING_IBM_857", RTL_TEXTENCODING_IBM_857 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_IBM_862()
- {
- check( "RTL_TEXTENCODING_IBM_862", RTL_TEXTENCODING_IBM_862 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_IBM_864()
- {
- check( "RTL_TEXTENCODING_IBM_864", RTL_TEXTENCODING_IBM_864 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_IBM_866()
- {
- check( "RTL_TEXTENCODING_IBM_866", RTL_TEXTENCODING_IBM_866 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_IBM_869()
- {
- check( "RTL_TEXTENCODING_IBM_869", RTL_TEXTENCODING_IBM_869 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_MS_874()
- {
- check( "RTL_TEXTENCODING_MS_874", RTL_TEXTENCODING_MS_874 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_MS_1250()
- {
- check( "RTL_TEXTENCODING_MS_1250", RTL_TEXTENCODING_MS_1250 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_MS_1251()
- {
- check( "RTL_TEXTENCODING_MS_1251", RTL_TEXTENCODING_MS_1251 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_MS_1253()
- {
- check( "RTL_TEXTENCODING_MS_1253", RTL_TEXTENCODING_MS_1253 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_MS_1254()
- {
- check( "RTL_TEXTENCODING_MS_1254", RTL_TEXTENCODING_MS_1254 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_MS_1255()
- {
- check( "RTL_TEXTENCODING_MS_1255", RTL_TEXTENCODING_MS_1255 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_MS_1256()
- {
- check( "RTL_TEXTENCODING_MS_1256", RTL_TEXTENCODING_MS_1256 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_MS_1257()
- {
- check( "RTL_TEXTENCODING_MS_1257", RTL_TEXTENCODING_MS_1257 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_MS_1258()
- {
- check( "RTL_TEXTENCODING_MS_1258", RTL_TEXTENCODING_MS_1258 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_APPLE_ARABIC()
- {
- check( "RTL_TEXTENCODING_APPLE_ARABIC", RTL_TEXTENCODING_APPLE_ARABIC );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_APPLE_CENTEURO()
- {
- check( "RTL_TEXTENCODING_APPLE_CENTEURO", RTL_TEXTENCODING_APPLE_CENTEURO );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_APPLE_CROATIAN()
- {
- check( "RTL_TEXTENCODING_APPLE_CROATIAN", RTL_TEXTENCODING_APPLE_CROATIAN );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_APPLE_CYRILLIC()
- {
- check( "RTL_TEXTENCODING_APPLE_CYRILLIC", RTL_TEXTENCODING_APPLE_CYRILLIC );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_APPLE_DEVANAGARI()
- {
- check( "RTL_TEXTENCODING_APPLE_DEVANAGARI", RTL_TEXTENCODING_APPLE_DEVANAGARI );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_APPLE_FARSI()
- {
- check( "RTL_TEXTENCODING_APPLE_FARSI", RTL_TEXTENCODING_APPLE_FARSI );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_APPLE_GREEK()
- {
- check( "RTL_TEXTENCODING_APPLE_GREEK", RTL_TEXTENCODING_APPLE_GREEK );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_APPLE_GUJARATI()
- {
- check( "RTL_TEXTENCODING_APPLE_GUJARATI", RTL_TEXTENCODING_APPLE_GUJARATI );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_APPLE_GURMUKHI()
- {
- check( "RTL_TEXTENCODING_APPLE_GURMUKHI", RTL_TEXTENCODING_APPLE_GURMUKHI );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_APPLE_HEBREW()
- {
- check( "RTL_TEXTENCODING_APPLE_HEBREW", RTL_TEXTENCODING_APPLE_HEBREW );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_APPLE_ICELAND()
- {
- check( "RTL_TEXTENCODING_APPLE_ICELAND", RTL_TEXTENCODING_APPLE_ICELAND );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_APPLE_ROMANIAN()
- {
- check( "RTL_TEXTENCODING_APPLE_ROMANIAN", RTL_TEXTENCODING_APPLE_ROMANIAN );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_APPLE_THAI()
- {
- check( "RTL_TEXTENCODING_APPLE_THAI", RTL_TEXTENCODING_APPLE_THAI );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_APPLE_TURKISH()
- {
- check( "RTL_TEXTENCODING_APPLE_TURKISH", RTL_TEXTENCODING_APPLE_TURKISH );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_APPLE_UKRAINIAN()
- {
- check( "RTL_TEXTENCODING_APPLE_UKRAINIAN", RTL_TEXTENCODING_APPLE_UKRAINIAN );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_APPLE_CHINSIMP()
- {
- check( "RTL_TEXTENCODING_APPLE_CHINSIMP", RTL_TEXTENCODING_APPLE_CHINSIMP );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_APPLE_CHINTRAD()
- {
- check( "RTL_TEXTENCODING_APPLE_CHINTRAD", RTL_TEXTENCODING_APPLE_CHINTRAD );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_APPLE_JAPANESE()
- {
- check( "RTL_TEXTENCODING_APPLE_JAPANESE", RTL_TEXTENCODING_APPLE_JAPANESE );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_APPLE_KOREAN()
- {
- check( "RTL_TEXTENCODING_APPLE_KOREAN", RTL_TEXTENCODING_APPLE_KOREAN );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_MS_932()
- {
- check( "RTL_TEXTENCODING_MS_932", RTL_TEXTENCODING_MS_932 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_MS_936()
- {
- check( "RTL_TEXTENCODING_MS_936", RTL_TEXTENCODING_MS_936 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_MS_949()
- {
- check( "RTL_TEXTENCODING_MS_949", RTL_TEXTENCODING_MS_949 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_MS_950()
- {
- check( "RTL_TEXTENCODING_MS_950", RTL_TEXTENCODING_MS_950 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_SHIFT_JIS()
- {
- check( "RTL_TEXTENCODING_SHIFT_JIS", RTL_TEXTENCODING_SHIFT_JIS );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_GB_2312()
- {
- check( "RTL_TEXTENCODING_GB_2312", RTL_TEXTENCODING_GB_2312 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_GBT_12345()
- {
- check( "RTL_TEXTENCODING_GBT_12345", RTL_TEXTENCODING_GBT_12345 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_GBK()
- {
- check( "RTL_TEXTENCODING_GBK", RTL_TEXTENCODING_GBK );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_BIG5()
- {
- check( "RTL_TEXTENCODING_BIG5", RTL_TEXTENCODING_BIG5 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_EUC_JP()
- {
- check( "RTL_TEXTENCODING_EUC_JP", RTL_TEXTENCODING_EUC_JP );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_EUC_CN()
- {
- check( "RTL_TEXTENCODING_EUC_CN", RTL_TEXTENCODING_EUC_CN );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_EUC_TW()
- {
- check( "RTL_TEXTENCODING_EUC_TW", RTL_TEXTENCODING_EUC_TW );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_ISO_2022_JP()
- {
- check( "RTL_TEXTENCODING_ISO_2022_JP", RTL_TEXTENCODING_ISO_2022_JP );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_ISO_2022_CN()
- {
- check( "RTL_TEXTENCODING_ISO_2022_CN", RTL_TEXTENCODING_ISO_2022_CN );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_KOI8_R()
- {
- check( "RTL_TEXTENCODING_KOI8_R", RTL_TEXTENCODING_KOI8_R );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_UTF7()
- {
- check( "RTL_TEXTENCODING_UTF7", RTL_TEXTENCODING_UTF7 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_UTF8()
- {
- check( "RTL_TEXTENCODING_UTF8", RTL_TEXTENCODING_UTF8 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_ISO_8859_10()
- {
- check( "RTL_TEXTENCODING_ISO_8859_10", RTL_TEXTENCODING_ISO_8859_10 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_ISO_8859_13()
- {
- check( "RTL_TEXTENCODING_ISO_8859_13", RTL_TEXTENCODING_ISO_8859_13 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_EUC_KR()
- {
- check( "RTL_TEXTENCODING_EUC_KR", RTL_TEXTENCODING_EUC_KR );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_ISO_2022_KR()
- {
- check( "RTL_TEXTENCODING_ISO_2022_KR", RTL_TEXTENCODING_ISO_2022_KR );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_JIS_X_0201()
- {
- check( "RTL_TEXTENCODING_JIS_X_0201", RTL_TEXTENCODING_JIS_X_0201 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_JIS_X_0208()
- {
- check( "RTL_TEXTENCODING_JIS_X_0208", RTL_TEXTENCODING_JIS_X_0208 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_JIS_X_0212()
- {
- check( "RTL_TEXTENCODING_JIS_X_0212", RTL_TEXTENCODING_JIS_X_0212 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_MS_1361()
- {
- check( "RTL_TEXTENCODING_MS_1361", RTL_TEXTENCODING_MS_1361 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_GB_18030()
- {
- check( "RTL_TEXTENCODING_GB_18030", RTL_TEXTENCODING_GB_18030 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_BIG5_HKSCS()
- {
- check( "RTL_TEXTENCODING_BIG5_HKSCS", RTL_TEXTENCODING_BIG5_HKSCS );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_TIS_620()
- {
- check( "RTL_TEXTENCODING_TIS_620", RTL_TEXTENCODING_TIS_620 );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_KOI8_U()
- {
- check( "RTL_TEXTENCODING_KOI8_U", RTL_TEXTENCODING_KOI8_U );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_ISCII_DEVANAGARI()
- {
- check( "RTL_TEXTENCODING_ISCII_DEVANAGARI", RTL_TEXTENCODING_ISCII_DEVANAGARI );
- }
- // ----------------------------------------
- void WindowsCharsetFromTextEncoding_JAVA_UTF8()
- {
- check( "RTL_TEXTENCODING_JAVA_UTF8", RTL_TEXTENCODING_JAVA_UTF8 );
- }
- // ----------------------------------------
-
- CPPUNIT_TEST_SUITE( getBestWindows );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_MS_1252 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_APPLE_ROMAN );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_IBM_437 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_IBM_850 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_IBM_860 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_IBM_861 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_IBM_863 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_IBM_865 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_SYMBOL );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_ASCII_US );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_ISO_8859_1 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_ISO_8859_2 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_ISO_8859_3 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_ISO_8859_4 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_ISO_8859_5 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_ISO_8859_6 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_ISO_8859_7 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_ISO_8859_8 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_ISO_8859_9 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_ISO_8859_14 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_ISO_8859_15 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_IBM_737 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_IBM_775 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_IBM_852 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_IBM_855 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_IBM_857 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_IBM_862 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_IBM_864 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_IBM_866 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_IBM_869 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_MS_874 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_MS_1250 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_MS_1251 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_MS_1253 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_MS_1254 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_MS_1255 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_MS_1256 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_MS_1257 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_MS_1258 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_APPLE_ARABIC );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_APPLE_CENTEURO );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_APPLE_CROATIAN );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_APPLE_CYRILLIC );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_APPLE_DEVANAGARI );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_APPLE_FARSI );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_APPLE_GREEK );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_APPLE_GUJARATI );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_APPLE_GURMUKHI );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_APPLE_HEBREW );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_APPLE_ICELAND );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_APPLE_ROMANIAN );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_APPLE_THAI );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_APPLE_TURKISH );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_APPLE_UKRAINIAN );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_APPLE_CHINSIMP );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_APPLE_CHINTRAD );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_APPLE_JAPANESE );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_APPLE_KOREAN );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_MS_932 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_MS_936 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_MS_949 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_MS_950 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_SHIFT_JIS );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_GB_2312 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_GBT_12345 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_GBK );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_BIG5 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_EUC_JP );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_EUC_CN );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_EUC_TW );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_ISO_2022_JP );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_ISO_2022_CN );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_KOI8_R );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_UTF7 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_UTF8 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_ISO_8859_10 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_ISO_8859_13 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_EUC_KR );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_ISO_2022_KR );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_JIS_X_0201 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_JIS_X_0208 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_JIS_X_0212 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_MS_1361 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_GB_18030 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_BIG5_HKSCS );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_TIS_620 );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_KOI8_U );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_ISCII_DEVANAGARI );
- CPPUNIT_TEST( WindowsCharsetFromTextEncoding_JAVA_UTF8 );
-
- CPPUNIT_TEST_SUITE_END( );
- };
- class getTextEncodingInfo: public CppUnit::TestFixture
- {
- public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // not implemented encoding test
- void getTextEncodingInfo_001()
- {
- rtl_TextEncodingInfo aInfo1, aInfo2, aInfo3, aInfo4, aInfo5;
- aInfo1.StructSize = 4;
- // not implemented
- sal_Bool bRes1 = rtl_getTextEncodingInfo( RTL_TEXTENCODING_APPLE_ARABIC, &aInfo1 );
- // implemented
- sal_Bool bRes11 = rtl_getTextEncodingInfo( RTL_TEXTENCODING_APPLE_CYRILLIC, &aInfo1 );
- CPPUNIT_ASSERT_MESSAGE("should return sal_False.", bRes1 == sal_False && bRes11 == sal_False );
-
- aInfo2.StructSize = 5;
- sal_Bool bRes2 = rtl_getTextEncodingInfo( RTL_TEXTENCODING_APPLE_ARABIC, &aInfo2 );
- sal_Bool bRes21 = rtl_getTextEncodingInfo( RTL_TEXTENCODING_APPLE_CYRILLIC, &aInfo2 );
- CPPUNIT_ASSERT_MESSAGE("StructSize<6 should return sal_True", bRes2 == sal_True && bRes21 == sal_True && aInfo2.MinimumCharSize >=1 );
-
- aInfo3.StructSize = 6;
- sal_Bool bRes3 = rtl_getTextEncodingInfo( RTL_TEXTENCODING_APPLE_ARABIC, &aInfo3 );
- sal_Bool bRes31 = rtl_getTextEncodingInfo( RTL_TEXTENCODING_APPLE_CYRILLIC, &aInfo3 );
- CPPUNIT_ASSERT_MESSAGE("StructSize<6 should return sal_True", bRes3 == sal_True && bRes31 == sal_True );
-//&& aInfo2.MinimumCharSize >=1 );
-
- aInfo4.StructSize = 8;
- sal_Bool bRes4 = rtl_getTextEncodingInfo( RTL_TEXTENCODING_APPLE_ARABIC, &aInfo4 );
- sal_Bool bRes41 = rtl_getTextEncodingInfo( RTL_TEXTENCODING_APPLE_CYRILLIC, &aInfo4);
- CPPUNIT_ASSERT_MESSAGE("StructSize<6 should return sal_True", bRes4 == sal_True && bRes41 == sal_True);
-// && aInfo2.MinimumCharSize >=1 );
-
- aInfo5.StructSize = sizeof aInfo5;
- sal_Bool bRes5 = rtl_getTextEncodingInfo( RTL_TEXTENCODING_APPLE_ARABIC, &aInfo5 );
- CPPUNIT_ASSERT_MESSAGE("StructSize<6 should return sal_True", bRes5 == sal_False && aInfo5.Flags == 0);
-
- }
- CPPUNIT_TEST_SUITE(getTextEncodingInfo);
- CPPUNIT_TEST(getTextEncodingInfo_001);
- //CPPUNIT_TEST(getTextEncodingInfo_002);
- CPPUNIT_TEST_SUITE_END();
- };
-}
-
-namespace {
-
-class TestEncodingFromUnix: public CppUnit::TestFixture {
-public:
- void testIso8859() {
- check(RTL_TEXTENCODING_DONTKNOW, "ISO8859");
- check(RTL_TEXTENCODING_DONTKNOW, "ISO8859-0");
- check(RTL_TEXTENCODING_DONTKNOW, "ISO8859-01");
- check(RTL_TEXTENCODING_DONTKNOW, "ISO8859_1");
- check(RTL_TEXTENCODING_DONTKNOW, "ISO88591");
- check(RTL_TEXTENCODING_ISO_8859_1, "ISO8859-1");
- check(RTL_TEXTENCODING_ISO_8859_2, "ISO8859-2");
- check(RTL_TEXTENCODING_ISO_8859_3, "ISO8859-3");
- check(RTL_TEXTENCODING_ISO_8859_4, "ISO8859-4");
- check(RTL_TEXTENCODING_ISO_8859_5, "ISO8859-5");
- check(RTL_TEXTENCODING_ISO_8859_6, "ISO8859-6");
- check(RTL_TEXTENCODING_ISO_8859_7, "ISO8859-7");
- check(RTL_TEXTENCODING_ISO_8859_8, "ISO8859-8");
- check(RTL_TEXTENCODING_ISO_8859_9, "ISO8859-9");
- check(RTL_TEXTENCODING_ISO_8859_10, "ISO8859-10");
- check(RTL_TEXTENCODING_TIS_620, "ISO8859-11");
- check(RTL_TEXTENCODING_ISO_8859_13, "ISO8859-13");
- check(RTL_TEXTENCODING_ISO_8859_14, "ISO8859-14");
- check(RTL_TEXTENCODING_ISO_8859_15, "ISO8859-15");
- }
-
- void testTis620() {
- check(RTL_TEXTENCODING_DONTKNOW, "TIS620");
- check(RTL_TEXTENCODING_TIS_620, "TIS620-0");
- check(RTL_TEXTENCODING_DONTKNOW, "TIS620-1");
- check(RTL_TEXTENCODING_TIS_620, "TIS620-2529");
- check(RTL_TEXTENCODING_TIS_620, "TIS620-2533");
- check(RTL_TEXTENCODING_DONTKNOW, "TIS620.2529-0");
- check(RTL_TEXTENCODING_TIS_620, "TIS620.2529-1");
- check(RTL_TEXTENCODING_DONTKNOW, "TIS620.2529-2");
- check(RTL_TEXTENCODING_TIS_620, "TIS620.2533-0");
- check(RTL_TEXTENCODING_TIS_620, "TIS620.2533-1");
- check(RTL_TEXTENCODING_DONTKNOW, "TIS620.2533-2");
- }
-
- CPPUNIT_TEST_SUITE(TestEncodingFromUnix);
- CPPUNIT_TEST(testIso8859);
- CPPUNIT_TEST(testTis620);
- CPPUNIT_TEST_SUITE_END();
-
-private:
- void check(rtl_TextEncoding expected, char const * input) {
- CPPUNIT_ASSERT_EQUAL_MESSAGE(
- input, expected, rtl_getTextEncodingFromUnixCharset(input));
- }
-};
-
-}
-
-// -----------------------------------------------------------------------------
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( rtl_tencinfo::getBestMime, "rtl_tencinfo" );
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( rtl_tencinfo::getBestUnix, "rtl_tencinfo" );
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( rtl_tencinfo::getBestWindows, "rtl_tencinfo" );
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( rtl_tencinfo::getTextEncodingInfo, "rtl_tencinfo" );
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(
- TestEncodingFromUnix, "TestEncodingFromUnix");
-
-// -----------------------------------------------------------------------------
-
-NOADDITIONAL;
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/textenc/rtl_textcvt.cxx b/sal/qa/rtl/textenc/rtl_textcvt.cxx
deleted file mode 100644
index 5adafc5ee..000000000
--- a/sal/qa/rtl/textenc/rtl_textcvt.cxx
+++ /dev/null
@@ -1,2905 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include "sal/config.h"
-
-#include <cstddef>
-#include <cstring>
-
-#include "testshl/simpleheader.hxx"
-#include "rtl/string.hxx"
-#include "rtl/tencinfo.h"
-#include "rtl/textcvt.h"
-#include "rtl/textenc.h"
-#include "sal/types.h"
-#include <sal/macros.h>
-
-namespace {
-
-struct SingleByteCharSet {
- rtl_TextEncoding m_nEncoding;
- sal_Unicode m_aMap[256];
-};
-
-void testSingleByteCharSet(SingleByteCharSet const & rSet) {
- sal_Char aText[256];
- sal_Unicode aUnicode[256];
- sal_Size nNumber = 0;
- for (int i = 0; i < 256; ++i) {
- if (rSet.m_aMap[i] != 0xFFFF) {
- aText[nNumber++] = static_cast< sal_Char >(i);
- }
- }
- {
- rtl_TextToUnicodeConverter aConverter
- = rtl_createTextToUnicodeConverter(rSet.m_nEncoding);
- rtl_TextToUnicodeContext aContext
- = rtl_createTextToUnicodeContext(aConverter);
- CPPUNIT_ASSERT_MESSAGE("failure #1", aConverter && aContext);
- sal_Size nSize;
- sal_uInt32 nInfo;
- sal_Size nConverted;
- nSize = rtl_convertTextToUnicode(
- aConverter, aContext, aText, nNumber, aUnicode, nNumber,
- (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
- | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
- | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR),
- &nInfo, &nConverted);
- CPPUNIT_ASSERT_MESSAGE(
- "failure #2",
- nSize == nNumber && nInfo == 0 && nConverted == nNumber);
- rtl_destroyTextToUnicodeContext(aConverter, aContext);
- rtl_destroyTextToUnicodeConverter(aConverter);
- }
- {
- bool bSuccess = true;
- int j = 0;
- for (int i = 0; i < 256; ++i) {
- if (rSet.m_aMap[i] != 0xFFFF && aUnicode[j++] != rSet.m_aMap[i]) {
- bSuccess = false;
- break;
- }
- }
- CPPUNIT_ASSERT_MESSAGE("failure #3", bSuccess);
- }
- if (rSet.m_nEncoding == RTL_TEXTENCODING_ASCII_US) {
- nNumber = 128;
- }
- {
- rtl_UnicodeToTextConverter aConverter
- = rtl_createUnicodeToTextConverter(rSet.m_nEncoding);
- rtl_UnicodeToTextContext aContext
- = rtl_createUnicodeToTextContext(aConverter);
- CPPUNIT_ASSERT_MESSAGE("failure #4", aConverter && aContext);
- sal_Size nSize;
- sal_uInt32 nInfo;
- sal_Size nConverted;
- nSize = rtl_convertUnicodeToText(
- aConverter, aContext, aUnicode, nNumber, aText, nNumber,
- (RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
- | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR),
- &nInfo, &nConverted);
- CPPUNIT_ASSERT_MESSAGE(
- "failure #5",
- nSize == nNumber && nInfo == 0 && nConverted == nNumber);
- rtl_destroyUnicodeToTextContext(aConverter, aContext);
- rtl_destroyUnicodeToTextConverter(aConverter);
- }
- {
- bool bSuccess = true;
- int j = 0;
- for (int i = 0; i < 256; ++i) {
- if (rSet.m_aMap[i] != 0xFFFF
- && aText[j++] != static_cast< sal_Char >(i))
- {
- bSuccess = false;
- break;
- }
- }
- CPPUNIT_ASSERT_MESSAGE("failure #6", bSuccess);
- }
- for (int i = 0; i < 256; ++i) {
- if (rSet.m_aMap[i] == 0xFFFF) {
- aText[0] = static_cast< sal_Char >(i);
- rtl_TextToUnicodeConverter aConverter
- = rtl_createTextToUnicodeConverter(rSet.m_nEncoding);
- rtl_TextToUnicodeContext aContext
- = rtl_createTextToUnicodeContext(aConverter);
- CPPUNIT_ASSERT_MESSAGE("failure #7", aConverter && aContext);
- sal_Size nSize;
- sal_uInt32 nInfo;
- sal_Size nConverted;
- nSize = rtl_convertTextToUnicode(
- aConverter, aContext, aText, 1, aUnicode, 1,
- (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
- | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
- | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR),
- &nInfo, &nConverted);
- CPPUNIT_ASSERT_MESSAGE(
- "failure #9",
- (nSize == 0
- && (nInfo
- == (RTL_TEXTTOUNICODE_INFO_ERROR
- | RTL_TEXTTOUNICODE_INFO_UNDEFINED))
- && nConverted == 0));
- rtl_destroyTextToUnicodeContext(aConverter, aContext);
- rtl_destroyTextToUnicodeConverter(aConverter);
- }
- }
-}
-
-int const TEST_STRING_SIZE = 1000;
-
-struct ComplexCharSetTest {
- rtl_TextEncoding m_nEncoding;
- char const * m_pText;
- sal_Size m_nTextSize;
- sal_Unicode m_aUnicode[TEST_STRING_SIZE];
- sal_Size m_nUnicodeSize;
- bool m_bNoContext;
- bool m_bForward;
- bool m_bReverse;
- bool m_bGlobalSignature;
- sal_uInt32 m_nReverseUndefined;
-};
-
-void doComplexCharSetTest(ComplexCharSetTest const & rTest) {
- if (rTest.m_bForward) {
- sal_Unicode aUnicode[TEST_STRING_SIZE];
- rtl_TextToUnicodeConverter aConverter
- = rtl_createTextToUnicodeConverter(rTest.m_nEncoding);
- rtl_TextToUnicodeContext aContext
- = rtl_createTextToUnicodeContext(aConverter);
- CPPUNIT_ASSERT_MESSAGE("failure #10", aConverter && aContext);
- sal_Size nSize;
- sal_uInt32 nInfo;
- sal_Size nConverted;
- nSize = rtl_convertTextToUnicode(
- aConverter, aContext,
- reinterpret_cast< sal_Char const * >(rTest.m_pText),
- rTest.m_nTextSize, aUnicode, TEST_STRING_SIZE,
- (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
- | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
- | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR
- | RTL_TEXTTOUNICODE_FLAGS_FLUSH
- | (rTest.m_bGlobalSignature ?
- RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE : 0)),
- &nInfo, &nConverted);
- CPPUNIT_ASSERT_MESSAGE(
- "failure #11",
- (nSize == rTest.m_nUnicodeSize && nInfo == 0
- && nConverted == rTest.m_nTextSize));
- rtl_destroyTextToUnicodeContext(aConverter, aContext);
- rtl_destroyTextToUnicodeConverter(aConverter);
- bool bSuccess = true;
- for (sal_Size i = 0; i < rTest.m_nUnicodeSize; ++i) {
- if (aUnicode[i] != rTest.m_aUnicode[i]) {
- bSuccess = false;
- break;
- }
- }
- CPPUNIT_ASSERT_MESSAGE("failure #12", bSuccess);
- }
- if (rTest.m_bForward) {
- sal_Unicode aUnicode[TEST_STRING_SIZE];
- rtl_TextToUnicodeConverter aConverter
- = rtl_createTextToUnicodeConverter(rTest.m_nEncoding);
- rtl_TextToUnicodeContext aContext
- = rtl_createTextToUnicodeContext(aConverter);
- CPPUNIT_ASSERT_MESSAGE("failure #13", aConverter && aContext);
- if (aContext != (rtl_TextToUnicodeContext) 1) {
- sal_Size nInput = 0;
- sal_Size nOutput = 0;
- for (bool bFlush = true; nInput < rTest.m_nTextSize || bFlush;) {
- sal_Size nSrcBytes = 1;
- sal_uInt32 nFlags
- = (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
- | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
- | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR
- | (rTest.m_bGlobalSignature ?
- RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE : 0));
- if (nInput >= rTest.m_nTextSize) {
- nSrcBytes = 0;
- nFlags |= RTL_TEXTTOUNICODE_FLAGS_FLUSH;
- bFlush = false;
- }
- sal_uInt32 nInfo;
- sal_Size nConverted;
- sal_Size nSize = rtl_convertTextToUnicode(
- aConverter, aContext,
- reinterpret_cast< sal_Char const * >(rTest.m_pText + nInput),
- nSrcBytes, aUnicode + nOutput, TEST_STRING_SIZE - nOutput,
- nFlags, &nInfo, &nConverted);
- nOutput += nSize;
- nInput += nConverted;
- CPPUNIT_ASSERT_MESSAGE(
- "failure #14",
- (nInfo & ~RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL) == 0);
- }
- CPPUNIT_ASSERT_MESSAGE(
- "failure #15",
- nOutput == rTest.m_nUnicodeSize && nInput == rTest.m_nTextSize);
- bool bSuccess = true;
- for (sal_Size i = 0; i < rTest.m_nUnicodeSize; ++i) {
- if (aUnicode[i] != rTest.m_aUnicode[i]) {
- bSuccess = false;
- break;
- }
- }
- CPPUNIT_ASSERT_MESSAGE("failure #16", bSuccess);
- }
- rtl_destroyTextToUnicodeContext(aConverter, aContext);
- rtl_destroyTextToUnicodeConverter(aConverter);
- }
- if (rTest.m_bNoContext && rTest.m_bForward) {
- sal_Unicode aUnicode[TEST_STRING_SIZE];
- int nSize = 0;
- rtl_TextToUnicodeConverter aConverter
- = rtl_createTextToUnicodeConverter(rTest.m_nEncoding);
- CPPUNIT_ASSERT_MESSAGE("failure #17", aConverter);
- for (sal_Size i = 0;;) {
- if (i == rTest.m_nTextSize) {
- goto done;
- }
- sal_Char c1 = rTest.m_pText[i++];
- sal_Unicode aUC[2];
- sal_uInt32 nInfo = 0;
- sal_Size nCvtBytes;
- sal_Size nChars = rtl_convertTextToUnicode(
- aConverter, 0, &c1, 1, aUC, 2,
- (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
- | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
- | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR
- | (rTest.m_bGlobalSignature ?
- RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE : 0)),
- &nInfo, &nCvtBytes);
- if ((nInfo & RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL) != 0) {
- sal_Char sBuffer[10];
- sBuffer[0] = c1;
- sal_uInt16 nLen = 1;
- while ((nInfo & RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL) != 0
- && nLen < 10)
- {
- if (i == rTest.m_nTextSize) {
- goto done;
- }
- c1 = rTest.m_pText[i++];
- sBuffer[nLen++] = c1;
- nChars = rtl_convertTextToUnicode(
- aConverter, 0, sBuffer, nLen, aUC, 2,
- (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
- | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
- | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR
- | (rTest.m_bGlobalSignature ?
- RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE : 0)),
- &nInfo, &nCvtBytes);
- }
- if (nChars == 1 && nInfo == 0) {
- OSL_ASSERT(nCvtBytes == nLen);
- aUnicode[nSize++] = aUC[0];
- } else if (nChars == 2 && nInfo == 0) {
- OSL_ASSERT(nCvtBytes == nLen);
- aUnicode[nSize++] = aUC[0];
- aUnicode[nSize++] = aUC[1];
- } else {
- OSL_ASSERT(
- (nInfo & RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL) == 0
- && nChars == 0 && nInfo != 0);
- aUnicode[nSize++] = sBuffer[0];
- i -= nLen - 1;
- }
- } else if (nChars == 1 && nInfo == 0) {
- OSL_ASSERT(nCvtBytes == 1);
- aUnicode[nSize++] = aUC[0];
- } else if (nChars == 2 && nInfo == 0) {
- OSL_ASSERT(nCvtBytes == 1);
- aUnicode[nSize++] = aUC[0];
- aUnicode[nSize++] = aUC[1];
- } else {
- OSL_ASSERT(nChars == 0 && nInfo != 0);
- aUnicode[nSize++] = c1;
- }
- }
- done:
- rtl_destroyTextToUnicodeConverter(aConverter);
- bool bSuccess = true;
- for (sal_Size i = 0; i < rTest.m_nUnicodeSize; ++i) {
- if (aUnicode[i] != rTest.m_aUnicode[i]) {
- bSuccess = false;
- break;
- }
- }
- CPPUNIT_ASSERT_MESSAGE("failure #18", bSuccess);
- }
- if (rTest.m_bReverse) {
- sal_Char aText[TEST_STRING_SIZE];
- rtl_UnicodeToTextConverter aConverter
- = rtl_createUnicodeToTextConverter(rTest.m_nEncoding);
- rtl_UnicodeToTextContext aContext
- = rtl_createUnicodeToTextContext(aConverter);
- CPPUNIT_ASSERT_MESSAGE("failure #19", aConverter && aContext);
- sal_Size nSize;
- sal_uInt32 nInfo;
- sal_Size nConverted;
- nSize = rtl_convertUnicodeToText(
- aConverter, aContext, rTest.m_aUnicode, rTest.m_nUnicodeSize, aText,
- TEST_STRING_SIZE,
- (rTest.m_nReverseUndefined | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR
- | RTL_UNICODETOTEXT_FLAGS_FLUSH
- | (rTest.m_bGlobalSignature ?
- RTL_UNICODETOTEXT_FLAGS_GLOBAL_SIGNATURE : 0)),
- &nInfo, &nConverted);
- CPPUNIT_ASSERT_MESSAGE(
- "failure #20",
- (nSize == rTest.m_nTextSize
- && (nInfo == 0
- || (nInfo == RTL_UNICODETOTEXT_INFO_UNDEFINED
- && (rTest.m_nReverseUndefined
- != RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR)))
- && nConverted == rTest.m_nUnicodeSize));
- rtl_destroyUnicodeToTextContext(aConverter, aContext);
- rtl_destroyUnicodeToTextConverter(aConverter);
- bool bSuccess = true;
- for (sal_Size i = 0; i < rTest.m_nTextSize; ++i) {
- if (aText[i] != rTest.m_pText[i]) {
- bSuccess = false;
- break;
- }
- }
- CPPUNIT_ASSERT_MESSAGE("failure #21", bSuccess);
- }
-}
-
-void doComplexCharSetCutTest(ComplexCharSetTest const & rTest) {
- if (rTest.m_bNoContext) {
- sal_Unicode aUnicode[TEST_STRING_SIZE];
- rtl_TextToUnicodeConverter aConverter
- = rtl_createTextToUnicodeConverter(rTest.m_nEncoding);
- CPPUNIT_ASSERT_MESSAGE("failure #22", aConverter);
- sal_Size nSize;
- sal_uInt32 nInfo;
- sal_Size nConverted;
- nSize = rtl_convertTextToUnicode(
- aConverter, 0, reinterpret_cast< sal_Char const * >(rTest.m_pText),
- rTest.m_nTextSize, aUnicode, TEST_STRING_SIZE,
- (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
- | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
- | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR),
- &nInfo, &nConverted);
- CPPUNIT_ASSERT_MESSAGE(
- "failure #23",
- (nSize <= rTest.m_nUnicodeSize
- && (nInfo == RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL
- || (nInfo
- == (RTL_TEXTTOUNICODE_INFO_ERROR
- | RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL)))
- && nConverted < rTest.m_nTextSize));
- rtl_destroyTextToUnicodeConverter(aConverter);
- bool bSuccess = true;
- for (sal_Size i = 0; i < nSize; ++i) {
- if (aUnicode[i] != rTest.m_aUnicode[i]) {
- bSuccess = false;
- break;
- }
- }
- CPPUNIT_ASSERT_MESSAGE("failure #24", bSuccess);
- }
-}
-
-class Test: public CppUnit::TestFixture {
-public:
- void testSingleByte();
-
- void testComplex();
-
- void testComplexCut();
-
- void testSRCBUFFERTOSMALL();
-
- void testMime();
-
- void testWindows();
-
- void testInfo();
-
- CPPUNIT_TEST_SUITE(Test);
- CPPUNIT_TEST(testSingleByte);
- CPPUNIT_TEST(testComplex);
- CPPUNIT_TEST(testComplexCut);
- CPPUNIT_TEST(testSRCBUFFERTOSMALL);
- CPPUNIT_TEST(testMime);
- CPPUNIT_TEST(testWindows);
- CPPUNIT_TEST(testInfo);
- CPPUNIT_TEST_SUITE_END();
-};
-
-void Test::testSingleByte() {
- static SingleByteCharSet const data[]
- = { { RTL_TEXTENCODING_MS_1250,
- { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
- 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
- 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
- 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
- 0x20AC,0xFFFF,0x201A,0xFFFF,0x201E,0x2026,0x2020,0x2021,
- 0xFFFF,0x2030,0x0160,0x2039,0x015A,0x0164,0x017D,0x0179,
- 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
- 0xFFFF,0x2122,0x0161,0x203A,0x015B,0x0165,0x017E,0x017A,
- 0x00A0,0x02C7,0x02D8,0x0141,0x00A4,0x0104,0x00A6,0x00A7,
- 0x00A8,0x00A9,0x015E,0x00AB,0x00AC,0x00AD,0x00AE,0x017B,
- 0x00B0,0x00B1,0x02DB,0x0142,0x00B4,0x00B5,0x00B6,0x00B7,
- 0x00B8,0x0105,0x015F,0x00BB,0x013D,0x02DD,0x013E,0x017C,
- 0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7,
- 0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E,
- 0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7,
- 0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF,
- 0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7,
- 0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F,
- 0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7,
- 0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9 } },
- { RTL_TEXTENCODING_MS_1251,
- { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
- 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
- 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
- 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
- 0x0402,0x0403,0x201A,0x0453,0x201E,0x2026,0x2020,0x2021,
- 0x20AC,0x2030,0x0409,0x2039,0x040A,0x040C,0x040B,0x040F,
- 0x0452,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
- 0xFFFF,0x2122,0x0459,0x203A,0x045A,0x045C,0x045B,0x045F,
- 0x00A0,0x040E,0x045E,0x0408,0x00A4,0x0490,0x00A6,0x00A7,
- 0x0401,0x00A9,0x0404,0x00AB,0x00AC,0x00AD,0x00AE,0x0407,
- 0x00B0,0x00B1,0x0406,0x0456,0x0491,0x00B5,0x00B6,0x00B7,
- 0x0451,0x2116,0x0454,0x00BB,0x0458,0x0405,0x0455,0x0457,
- 0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
- 0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,
- 0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
- 0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,
- 0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
- 0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,
- 0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
- 0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F } },
- { RTL_TEXTENCODING_MS_1252,
- { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
- 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
- 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
- 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
- 0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
- 0x02C6,0x2030,0x0160,0x2039,0x0152,0xFFFF,0x017D,0xFFFF,
- 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
- 0x02DC,0x2122,0x0161,0x203A,0x0153,0xFFFF,0x017E,0x0178,
- 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
- 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
- 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
- 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
- 0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,
- 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
- 0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,
- 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF,
- 0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,
- 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
- 0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,
- 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF } },
- { RTL_TEXTENCODING_MS_1253,
- { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
- 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
- 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
- 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
- 0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
- 0xFFFF,0x2030,0xFFFF,0x2039,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
- 0xFFFF,0x2122,0xFFFF,0x203A,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0x00A0,0x0385,0x0386,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
- 0x00A8,0x00A9,0xFFFF,0x00AB,0x00AC,0x00AD,0x00AE,0x2015,
- 0x00B0,0x00B1,0x00B2,0x00B3,0x0384,0x00B5,0x00B6,0x00B7,
- 0x0388,0x0389,0x038A,0x00BB,0x038C,0x00BD,0x038E,0x038F,
- 0x0390,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,
- 0x0398,0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F,
- 0x03A0,0x03A1,0xFFFF,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,
- 0x03A8,0x03A9,0x03AA,0x03AB,0x03AC,0x03AD,0x03AE,0x03AF,
- 0x03B0,0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,
- 0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,
- 0x03C0,0x03C1,0x03C2,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,
- 0x03C8,0x03C9,0x03CA,0x03CB,0x03CC,0x03CD,0x03CE,0xFFFF } },
- { RTL_TEXTENCODING_MS_1254,
- { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
- 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
- 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
- 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
- 0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
- 0x02C6,0x2030,0x0160,0x2039,0x0152,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
- 0x02DC,0x2122,0x0161,0x203A,0x0153,0xFFFF,0xFFFF,0x0178,
- 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
- 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
- 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
- 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
- 0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,
- 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
- 0x011E,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,
- 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x0130,0x015E,0x00DF,
- 0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,
- 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
- 0x011F,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,
- 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x0131,0x015F,0x00FF } },
- { RTL_TEXTENCODING_APPLE_ROMAN,
- { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
- 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
- 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E, 0x7F,
- 0x00C4,0x00C5,0x00C7,0x00C9,0x00D1,0x00D6,0x00DC,0x00E1,
- 0x00E0,0x00E2,0x00E4,0x00E3,0x00E5,0x00E7,0x00E9,0x00E8,
- 0x00EA,0x00EB,0x00ED,0x00EC,0x00EE,0x00EF,0x00F1,0x00F3,
- 0x00F2,0x00F4,0x00F6,0x00F5,0x00FA,0x00F9,0x00FB,0x00FC,
- 0x2020,0x00B0,0x00A2,0x00A3,0x00A7,0x2022,0x00B6,0x00DF,
- 0x00AE,0x00A9,0x2122,0x00B4,0x00A8,0x2260,0x00C6,0x00D8,
- 0x221E,0x00B1,0x2264,0x2265,0x00A5,0x00B5,0x2202,0x2211,
- 0x220F,0x03C0,0x222B,0x00AA,0x00BA,0x03A9,0x00E6,0x00F8,
- 0x00BF,0x00A1,0x00AC,0x221A,0x0192,0x2248,0x2206,0x00AB,
- 0x00BB,0x2026,0x00A0,0x00C0,0x00C3,0x00D5,0x0152,0x0153,
- 0x2013,0x2014,0x201C,0x201D,0x2018,0x2019,0x00F7,0x25CA,
- 0x00FF,0x0178,0x2044,0x20AC,0x2039,0x203A,0xFB01,0xFB02,
- 0x2021,0x00B7,0x201A,0x201E,0x2030,0x00C2,0x00CA,0x00C1,
- 0x00CB,0x00C8,0x00CD,0x00CE,0x00CF,0x00CC,0x00D3,0x00D4,
- 0xF8FF,0x00D2,0x00DA,0x00DB,0x00D9,0x0131,0x02C6,0x02DC,
- 0x00AF,0x02D8,0x02D9,0x02DA,0x00B8,0x02DD,0x02DB,0x02C7 } },
- { RTL_TEXTENCODING_IBM_437,
- { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
- 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
- 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
- 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
- 0x00c7,0x00fc,0x00e9,0x00e2,0x00e4,0x00e0,0x00e5,0x00e7,
- 0x00ea,0x00eb,0x00e8,0x00ef,0x00ee,0x00ec,0x00c4,0x00c5,
- 0x00c9,0x00e6,0x00c6,0x00f4,0x00f6,0x00f2,0x00fb,0x00f9,
- 0x00ff,0x00d6,0x00dc,0x00a2,0x00a3,0x00a5,0x20a7,0x0192,
- 0x00e1,0x00ed,0x00f3,0x00fa,0x00f1,0x00d1,0x00aa,0x00ba,
- 0x00bf,0x2310,0x00ac,0x00bd,0x00bc,0x00a1,0x00ab,0x00bb,
- 0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,
- 0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510,
- 0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f,
- 0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567,
- 0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b,
- 0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580,
- 0x03b1,0x00df,0x0393,0x03c0,0x03a3,0x03c3,0x00b5,0x03c4,
- 0x03a6,0x0398,0x03a9,0x03b4,0x221e,0x03c6,0x03b5,0x2229,
- 0x2261,0x00b1,0x2265,0x2264,0x2320,0x2321,0x00f7,0x2248,
- 0x00b0,0x2219,0x00b7,0x221a,0x207f,0x00b2,0x25a0,0x00a0 } },
- // ...
- { RTL_TEXTENCODING_ASCII_US,
- { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
- 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
- 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
- 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
- 0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, // !
- 0x02C6,0x2030,0x0160,0x2039,0x0152,0xFFFF,0x017D,0xFFFF, // !
- 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, // !
- 0x02DC,0x2122,0x0161,0x203A,0x0153,0xFFFF,0x017E,0x0178, // !
- 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
- 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7,
- 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
- 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
- 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
- 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF } },
- { RTL_TEXTENCODING_ISO_8859_1,
- { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
- 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
- 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
- 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
- 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
- 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
- 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
- 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
- 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
- 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
- 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
- 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
- 0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,
- 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
- 0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,
- 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF,
- 0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,
- 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
- 0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,
- 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF } },
- { RTL_TEXTENCODING_ISO_8859_2,
- { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
- 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
- 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
- 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
- 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
- 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
- 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
- 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
- 0x00A0,0x0104,0x02D8,0x0141,0x00A4,0x013D,0x015A,0x00A7,
- 0x00A8,0x0160,0x015E,0x0164,0x0179,0x00AD,0x017D,0x017B,
- 0x00B0,0x0105,0x02DB,0x0142,0x00B4,0x013E,0x015B,0x02C7,
- 0x00B8,0x0161,0x015F,0x0165,0x017A,0x02DD,0x017E,0x017C,
- 0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7,
- 0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E,
- 0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7,
- 0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF,
- 0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7,
- 0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F,
- 0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7,
- 0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9 } },
- { RTL_TEXTENCODING_ISO_8859_3,
- { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
- 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
- 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
- 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
- 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
- 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
- 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
- 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
- 0x00A0,0x0126,0x02D8,0x00A3,0x00A4,0xFFFF,0x0124,0x00A7,
- 0x00A8,0x0130,0x015E,0x011E,0x0134,0x00AD,0xFFFF,0x017B,
- 0x00B0,0x0127,0x00B2,0x00B3,0x00B4,0x00B5,0x0125,0x00B7,
- 0x00B8,0x0131,0x015F,0x011F,0x0135,0x00BD,0xFFFF,0x017C,
- 0x00C0,0x00C1,0x00C2,0xFFFF,0x00C4,0x010A,0x0108,0x00C7,
- 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
- 0xFFFF,0x00D1,0x00D2,0x00D3,0x00D4,0x0120,0x00D6,0x00D7,
- 0x011C,0x00D9,0x00DA,0x00DB,0x00DC,0x016C,0x015C,0x00DF,
- 0x00E0,0x00E1,0x00E2,0xFFFF,0x00E4,0x010B,0x0109,0x00E7,
- 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
- 0xFFFF,0x00F1,0x00F2,0x00F3,0x00F4,0x0121,0x00F6,0x00F7,
- 0x011D,0x00F9,0x00FA,0x00FB,0x00FC,0x016D,0x015D,0x02D9 } },
- // ...
- { RTL_TEXTENCODING_ISO_8859_6,
- { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
- 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
- 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
- 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
- 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
- 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
- 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
- 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
- 0x00A0,0xFFFF,0xFFFF,0xFFFF,0x00A4,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x060C,0x00AD,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0x061B,0xFFFF,0xFFFF,0xFFFF,0x061F,
- 0xFFFF,0x0621,0x0622,0x0623,0x0624,0x0625,0x0626,0x0627,
- 0x0628,0x0629,0x062A,0x062B,0x062C,0x062D,0x062E,0x062F,
- 0x0630,0x0631,0x0632,0x0633,0x0634,0x0635,0x0636,0x0637,
- 0x0638,0x0639,0x063A,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0x0640,0x0641,0x0642,0x0643,0x0644,0x0645,0x0646,0x0647,
- 0x0648,0x0649,0x064A,0x064B,0x064C,0x064D,0x064E,0x064F,
- 0x0650,0x0651,0x0652,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF } },
- // ...
- { RTL_TEXTENCODING_ISO_8859_8,
- { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
- 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
- 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
- 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
- 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
- 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
- 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
- 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
- 0x00A0,0xFFFF,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
- 0x00A8,0x00A9,0x00D7,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
- 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
- 0x00B8,0x00B9,0x00F7,0x00BB,0x00BC,0x00BD,0x00BE,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x2017,
- 0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7,
- 0x05D8,0x05D9,0x05DA,0x05DB,0x05DC,0x05DD,0x05DE,0x05DF,
- 0x05E0,0x05E1,0x05E2,0x05E3,0x05E4,0x05E5,0x05E6,0x05E7,
- 0x05E8,0x05E9,0x05EA,0xFFFF,0xFFFF,0x200E,0x200F,0xFFFF } },
- // ...
- { RTL_TEXTENCODING_TIS_620,
- { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
- 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
- 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
- 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
- 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
- 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
- 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
- 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
- 0x00A0,0x0E01,0x0E02,0x0E03,0x0E04,0x0E05,0x0E06,0x0E07, // !
- 0x0E08,0x0E09,0x0E0A,0x0E0B,0x0E0C,0x0E0D,0x0E0E,0x0E0F,
- 0x0E10,0x0E11,0x0E12,0x0E13,0x0E14,0x0E15,0x0E16,0x0E17,
- 0x0E18,0x0E19,0x0E1A,0x0E1B,0x0E1C,0x0E1D,0x0E1E,0x0E1F,
- 0x0E20,0x0E21,0x0E22,0x0E23,0x0E24,0x0E25,0x0E26,0x0E27,
- 0x0E28,0x0E29,0x0E2A,0x0E2B,0x0E2C,0x0E2D,0x0E2E,0x0E2F,
- 0x0E30,0x0E31,0x0E32,0x0E33,0x0E34,0x0E35,0x0E36,0x0E37,
- 0x0E38,0x0E39,0x0E3A,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x0E3F,
- 0x0E40,0x0E41,0x0E42,0x0E43,0x0E44,0x0E45,0x0E46,0x0E47,
- 0x0E48,0x0E49,0x0E4A,0x0E4B,0x0E4C,0x0E4D,0x0E4E,0x0E4F,
- 0x0E50,0x0E51,0x0E52,0x0E53,0x0E54,0x0E55,0x0E56,0x0E57,
- 0x0E58,0x0E59,0x0E5A,0x0E5B,0xFFFF,0xFFFF,0xFFFF,0xFFFF } },
- { RTL_TEXTENCODING_MS_874,
- { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
- 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
- 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
- 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
- 0x20AC,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x2026,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0x00A0,0x0E01,0x0E02,0x0E03,0x0E04,0x0E05,0x0E06,0x0E07,
- 0x0E08,0x0E09,0x0E0A,0x0E0B,0x0E0C,0x0E0D,0x0E0E,0x0E0F,
- 0x0E10,0x0E11,0x0E12,0x0E13,0x0E14,0x0E15,0x0E16,0x0E17,
- 0x0E18,0x0E19,0x0E1A,0x0E1B,0x0E1C,0x0E1D,0x0E1E,0x0E1F,
- 0x0E20,0x0E21,0x0E22,0x0E23,0x0E24,0x0E25,0x0E26,0x0E27,
- 0x0E28,0x0E29,0x0E2A,0x0E2B,0x0E2C,0x0E2D,0x0E2E,0x0E2F,
- 0x0E30,0x0E31,0x0E32,0x0E33,0x0E34,0x0E35,0x0E36,0x0E37,
- 0x0E38,0x0E39,0x0E3A,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x0E3F,
- 0x0E40,0x0E41,0x0E42,0x0E43,0x0E44,0x0E45,0x0E46,0x0E47,
- 0x0E48,0x0E49,0x0E4A,0x0E4B,0x0E4C,0x0E4D,0x0E4E,0x0E4F,
- 0x0E50,0x0E51,0x0E52,0x0E53,0x0E54,0x0E55,0x0E56,0x0E57,
- 0x0E58,0x0E59,0x0E5A,0x0E5B,0xFFFF,0xFFFF,0xFFFF,0xFFFF } },
- { RTL_TEXTENCODING_MS_1255,
- { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
- 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
- 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
- 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
- 0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
- 0x02C6,0x2030,0xFFFF,0x2039,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
- 0x02DC,0x2122,0xFFFF,0x203A,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0x00A0,0x00A1,0x00A2,0x00A3,0x20AA,0x00A5,0x00A6,0x00A7,
- 0x00A8,0x00A9,0x00D7,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
- 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
- 0x00B8,0x00B9,0x00F7,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
- 0x05B0,0x05B1,0x05B2,0x05B3,0x05B4,0x05B5,0x05B6,0x05B7,
- 0x05B8,0x05B9,0xFFFF,0x05BB,0x05BC,0x05BD,0x05BE,0x05BF,
- 0x05C0,0x05C1,0x05C2,0x05C3,0x05F0,0x05F1,0x05F2,0x05F3,
- 0x05F4,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7,
- 0x05D8,0x05D9,0x05DA,0x05DB,0x05DC,0x05DD,0x05DE,0x05DF,
- 0x05E0,0x05E1,0x05E2,0x05E3,0x05E4,0x05E5,0x05E6,0x05E7,
- 0x05E8,0x05E9,0x05EA,0xFFFF,0xFFFF,0x200E,0x200F,0xFFFF } },
- { RTL_TEXTENCODING_MS_1256,
- { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
- 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
- 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
- 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
- 0x20AC,0x067E,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
- 0x02C6,0x2030,0x0679,0x2039,0x0152,0x0686,0x0698,0x0688,
- 0x06AF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
- 0x06A9,0x2122,0x0691,0x203A,0x0153,0x200C,0x200D,0x06BA,
- 0x00A0,0x060C,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
- 0x00A8,0x00A9,0x06BE,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
- 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
- 0x00B8,0x00B9,0x061B,0x00BB,0x00BC,0x00BD,0x00BE,0x061F,
- 0x06C1,0x0621,0x0622,0x0623,0x0624,0x0625,0x0626,0x0627,
- 0x0628,0x0629,0x062A,0x062B,0x062C,0x062D,0x062E,0x062F,
- 0x0630,0x0631,0x0632,0x0633,0x0634,0x0635,0x0636,0x00D7,
- 0x0637,0x0638,0x0639,0x063A,0x0640,0x0641,0x0642,0x0643,
- 0x00E0,0x0644,0x00E2,0x0645,0x0646,0x0647,0x0648,0x00E7,
- 0x00E8,0x00E9,0x00EA,0x00EB,0x0649,0x064A,0x00EE,0x00EF,
- 0x064B,0x064C,0x064D,0x064E,0x00F4,0x064F,0x0650,0x00F7,
- 0x0651,0x00F9,0x0652,0x00FB,0x00FC,0x200E,0x200F,0x06D2 } },
- { RTL_TEXTENCODING_MS_1257,
- { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
- 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
- 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
- 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
- 0x20AC,0xFFFF,0x201A,0xFFFF,0x201E,0x2026,0x2020,0x2021,
- 0xFFFF,0x2030,0xFFFF,0x2039,0xFFFF,0x00A8,0x02C7,0x00B8,
- 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
- 0xFFFF,0x2122,0xFFFF,0x203A,0xFFFF,0x00AF,0x02DB,0xFFFF,
- 0x00A0,0xFFFF,0x00A2,0x00A3,0x00A4,0xFFFF,0x00A6,0x00A7,
- 0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6,
- 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
- 0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6,
- 0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112,
- 0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B,
- 0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7,
- 0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF,
- 0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113,
- 0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C,
- 0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7,
- 0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x02D9 } },
- { RTL_TEXTENCODING_MS_1258,
- { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
- 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
- 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
- 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
- 0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
- 0x02C6,0x2030,0xFFFF,0x2039,0x0152,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
- 0x02DC,0x2122,0xFFFF,0x203A,0x0153,0xFFFF,0xFFFF,0x0178,
- 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
- 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
- 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
- 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
- 0x00C0,0x00C1,0x00C2,0x0102,0x00C4,0x00C5,0x00C6,0x00C7,
- 0x00C8,0x00C9,0x00CA,0x00CB,0x0300,0x00CD,0x00CE,0x00CF,
- 0x0110,0x00D1,0x0309,0x00D3,0x00D4,0x01A0,0x00D6,0x00D7,
- 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x01AF,0x0303,0x00DF,
- 0x00E0,0x00E1,0x00E2,0x0103,0x00E4,0x00E5,0x00E6,0x00E7,
- 0x00E8,0x00E9,0x00EA,0x00EB,0x0301,0x00ED,0x00EE,0x00EF,
- 0x0111,0x00F1,0x0323,0x00F3,0x00F4,0x01A1,0x00F6,0x00F7,
- 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x01B0,0x20AB,0x00FF } },
- { RTL_TEXTENCODING_KOI8_U, // RFC 2319
- { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
- 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
- 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
- 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
- 0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524,
- 0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590,
- 0x2591,0x2592,0x2593,0x2320,0x25A0,0x2219,0x221A,0x2248,
- 0x2264,0x2265,0x00A0,0x2321,0x00B0,0x00B2,0x00B7,0x00F7,
- 0x2550,0x2551,0x2552,0x0451,0x0454,0x2554,0x0456,0x0457,
- 0x2557,0x2558,0x2559,0x255A,0x255B,0x0491,0x255D,0x255E,
- 0x255F,0x2560,0x2561,0x0401,0x0404,0x2563,0x0406,0x0407,
- 0x2566,0x2567,0x2568,0x2569,0x256A,0x0490,0x256C,0x00A9,
- 0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433,
- 0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,
- 0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432,
- 0x044C,0x044B,0x0437,0x0448,0x044D,0x0449,0x0447,0x044A,
- 0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413,
- 0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,
- 0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412,
- 0x042C,0x042B,0x0417,0x0428,0x042D,0x0429,0x0427,0x042A } },
- { RTL_TEXTENCODING_ISCII_DEVANAGARI,
- { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
- 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
- 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
- 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0x0901,0x0902,0x0903,0x0905,0x0906,0x0907,0x0908,
- 0x0909,0x090A,0x090B,0x090E,0x090F,0x0910,0x090D,0x0912,
- 0x0913,0x0914,0x0911,0x0915,0x0916,0x0917,0x0918,0x0919,
- 0x091A,0x091B,0x091C,0x091D,0x091E,0x091F,0x0920,0x0921,
- 0x0922,0x0923,0x0924,0x0925,0x0926,0x0927,0x0928,0x0929,
- 0x092A,0x092B,0x092C,0x092D,0x092E,0x092F,0x095F,0x0930,
- 0x0931,0x0932,0x0933,0x0934,0x0935,0x0936,0x0937,0x0938,
- 0x0939,0xFFFF,0x093E,0x093F,0x0940,0x0941,0x0942,0x0943,
- 0x0946,0x0947,0x0948,0x0945,0x094A,0x094B,0x094C,0x0949,
- 0x094D,0x093C,0x0964,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0x0966,0x0967,0x0968,0x0969,0x096A,0x096B,0x096C,
- 0x096D,0x096E,0x096F,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF } },
- { RTL_TEXTENCODING_ADOBE_STANDARD,
- { 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x2019,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x2018,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0x00A1,0x00A2,0x00A3,0x2215,0x00A5,0x0192,0x00A7,
- 0x00A4,0x0027,0x201C,0x00AB,0x2039,0x203A,0xFB01,0xFB02,
- 0xFFFF,0x2013,0x2020,0x2021,0x00B7,0xFFFF,0x00B6,0x2022,
- 0x201A,0x201E,0x201D,0x00BB,0x2026,0x2030,0xFFFF,0x00BF,
- 0xFFFF,0x0060,0x00B4,0x02C6,0x02DC,0x00AF,0x02D8,0x02D9,
- 0x00A8,0xFFFF,0x02DA,0x00B8,0xFFFF,0x02DD,0x02DB,0x02C7,
- 0x2014,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0x00C6,0xFFFF,0x00AA,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0x0141,0x00D8,0x0152,0x00BA,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0x00E6,0xFFFF,0xFFFF,0xFFFF,0x0131,0xFFFF,0xFFFF,
- 0x0142,0x00F8,0x0153,0x00DF,0xFFFF,0xFFFF,0xFFFF,0xFFFF } },
- { RTL_TEXTENCODING_ADOBE_SYMBOL,
- { 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0x0020,0x0021,0x2200,0x0023,0x2203,0x0025,0x0026,0x220B,
- 0x0028,0x0029,0x2217,0x002B,0x002C,0x2212,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x2245,0x0391,0x0392,0x03A7,0x0394,0x0395,0x03A6,0x0393,
- 0x0397,0x0399,0x03D1,0x039A,0x039B,0x039C,0x039D,0x039F,
- 0x03A0,0x0398,0x03A1,0x03A3,0x03A4,0x03A5,0x03C2,0x03A9,
- 0x039E,0x03A8,0x0396,0x005B,0x2234,0x005D,0x22A5,0x005F,
- 0xF8E5,0x03B1,0x03B2,0x03C7,0x03B4,0x03B5,0x03C6,0x03B3,
- 0x03B7,0x03B9,0x03D5,0x03BA,0x03BB,0x03BC,0x03BD,0x03BF,
- 0x03C0,0x03B8,0x03C1,0x03C3,0x03C4,0x03C5,0x03D6,0x03C9,
- 0x03BE,0x03C8,0x03B6,0x007B,0x007C,0x007D,0x223C,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0x20AC,0x03D2,0x2032,0x2264,0x2215,0x221E,0x0192,0x2663,
- 0x2666,0x2665,0x2660,0x2194,0x2190,0x2191,0x2192,0x2193,
- 0x00B0,0x00B1,0x2033,0x2265,0x00D7,0x221D,0x2202,0x2022,
- 0x00F7,0x2260,0x2261,0x2248,0x2026,0x23AF,0x23D0,0x21B5,
- 0x2135,0x2111,0x211C,0x2118,0x2297,0x2295,0x2205,0x2229,
- 0x222A,0x2283,0x2287,0x2284,0x2282,0x2286,0x2208,0x2209,
- 0x2220,0x2207,0xF6DA,0xF6D9,0xF6DB,0x220F,0x221A,0x22C5,
- 0x00AC,0x2227,0x2228,0x21D4,0x21D0,0x21D1,0x21D2,0x21D3,
- 0x25CA,0x2329,0xF8E8,0xF8E9,0xF8EA,0x2211,0x239B,0x239C,
- 0x239D,0x23A1,0x23A2,0x23A3,0x23A7,0x23A8,0x23A9,0x23AA,
- 0xFFFF,0x232A,0x222B,0x2320,0x23AE,0x2321,0x239E,0x239F,
- 0x23A0,0x23A4,0x23A5,0x23A6,0x23AB,0x23AC,0x23AD,0xFFFF } },
- { RTL_TEXTENCODING_ADOBE_DINGBATS,
- { 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
-// 20
- 0x0020,0x2701,0x2702,0x2703,0x2704,0x260E,0x2706,0x2707,
- 0x2708,0x2709,0x261B,0x261E,0x270C,0x270D,0x270E,0x270F,
- 0x2710,0x2711,0x2712,0x2713,0x2714,0x2715,0x2716,0x2717,
- 0x2718,0x2719,0x271A,0x271B,0x271C,0x271D,0x271E,0x271F,
-// 40
- 0x2720,0x2721,0x2722,0x2723,0x2724,0x2725,0x2726,0x2727,
- 0x2605,0x2729,0x272A,0x272B,0x272C,0x272D,0x272E,0x272F,
- 0x2730,0x2731,0x2732,0x2733,0x2734,0x2735,0x2736,0x2737,
- 0x2738,0x2739,0x273A,0x273B,0x273C,0x273D,0x273E,0x273F,
-// 60
- 0x2740,0x2741,0x2742,0x2743,0x2744,0x2745,0x2746,0x2747,
- 0x2748,0x2749,0x274A,0x274B,0x27CF,0x274D,0x25A0,0x274F,
- 0x2750,0x2751,0x2752,0x25B2,0x25BC,0x25C6,0x2756,0x25D7,
- 0x2758,0x2759,0x275A,0x275B,0x275C,0x275D,0x275E,0xFFFF,
-// 80
- 0xF8D7,0xF8D8,0xF8D9,0xF8DA,0xF8DB,0xF8DC,0xF8DD,0xF8DE,
- 0xF8DF,0xF8E0,0xF8E1,0xF8E2,0xF8E3,0xF8E4,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
- 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
-// A0
- 0xFFFF,0x2761,0x2762,0x2763,0x2764,0x2765,0x2766,0x2767,
- 0x2663,0x2666,0x2665,0x2660,0x2460,0x2461,0x2462,0x2463,
- 0x2464,0x2465,0x2466,0x2467,0x2468,0x2469,0x2776,0x2777,
- 0x2778,0x2779,0x277A,0x277B,0x277C,0x277D,0x277E,0x277F,
-// C0
- 0x2780,0x2781,0x2782,0x2783,0x2784,0x2785,0x2786,0x2787,
- 0x2788,0x2789,0x278A,0x278B,0x278C,0x278D,0x278E,0x278F,
- 0x2790,0x2791,0x2792,0x2793,0x2794,0x2795,0x2796,0x2797,
- 0x2798,0x2799,0x279A,0x279B,0x279C,0x279D,0x279E,0x279F,
-// E0
- 0x27A0,0x27A1,0x27A2,0x27A3,0x27A4,0x27A5,0x27A6,0x27A7,
- 0x27A8,0x27A9,0x27AA,0x27AB,0x27AC,0x27AD,0x27AE,0x27AF,
- 0xFFFF,0x27B1,0x27B2,0x27B3,0x27B4,0x27B5,0x27B6,0x27B7,
- 0x27B8,0x27B9,0x27BA,0x27BB,0x27BC,0x27BD,0x27BE,0xFFFF } },
- { RTL_TEXTENCODING_PT154,
- { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
- 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
- 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
- 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
- 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
- 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
- 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
- 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
- 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
- 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
- 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
- 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
- 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
- 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
- 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
- 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
- 0x0496,0x0492,0x04EE,0x0493,0x201E,0x2026,0x04B6,0x04AE,
- 0x04B2,0x04AF,0x04A0,0x04E2,0x04A2,0x049A,0x04BA,0x04B8,
- 0x0497,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
- 0x04B3,0x04B7,0x04A1,0x04E3,0x04A3,0x049B,0x04BB,0x04B9,
- 0x00A0,0x040E,0x045E,0x0408,0x04E8,0x0498,0x04B0,0x00A7,
- 0x0401,0x00A9,0x04D8,0x00AB,0x00AC,0x04EF,0x00AE,0x049C,
- 0x00B0,0x04B1,0x0406,0x0456,0x0499,0x04E9,0x00B6,0x00B7,
- 0x0451,0x2116,0x04D9,0x00BB,0x0458,0x04AA,0x04AB,0x049D,
- 0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
- 0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,
- 0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
- 0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,
- 0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
- 0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,
- 0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
- 0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F } } };
- for (std::size_t i = 0; i < SAL_N_ELEMENTS(data); ++i) {
- testSingleByteCharSet(data[i]);
- }
-}
-
-void Test::testComplex() {
- static ComplexCharSetTest const data[]
- = { { RTL_TEXTENCODING_ASCII_US,
- RTL_CONSTASCII_STRINGPARAM("\x01\"3De$~"),
- { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E },
- 7,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_EUC_CN,
- RTL_CONSTASCII_STRINGPARAM("\x01\"3De$~\xA1\xB9\xF0\xC5"),
- { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E,
- 0x300D,0x9E4B },
- 9,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_EUC_TW,
- RTL_CONSTASCII_STRINGPARAM(
- "\x01\"3De$~\xC5\xF0\x8E\xA4\xDC\xD9"),
- { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E,
- 0x4ED9,0xD87E,0xDD68 },
- 10,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_GB_18030,
- RTL_CONSTASCII_STRINGPARAM("\x01\"3De$~"),
- { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E },
- 7,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_GB_18030,
- RTL_CONSTASCII_STRINGPARAM("\x81\x40\xFE\xFE"),
- { 0x4E02,0xE4C5 },
- 2,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_GB_18030,
- RTL_CONSTASCII_STRINGPARAM(
- "\x81\x30\xB1\x33\x81\x30\xD3\x30\x81\x36\xA5\x31"),
- { 0x028A,0x0452,0x200F },
- 3,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_GB_18030,
- RTL_CONSTASCII_STRINGPARAM(
- "\xFE\x50\xFE\x51\xFE\x52\xFE\x53\xFE\x54\xFE\x55\xFE\x56"
- "\xFE\x57\xFE\x58\xFE\x59\xFE\x5A\xFE\x5B\xFE\x5C\xFE\x5D"
- "\xFE\x5E\xFE\x5F\xFE\x60\xFE\x61\xFE\x62\xFE\x63\xFE\x64"
- "\xFE\x65\xFE\x66\xFE\x67\xFE\x68\xFE\x69\xFE\x6A\xFE\x6B"
- "\xFE\x6C\xFE\x6D\xFE\x6E\xFE\x6F\xFE\x70\xFE\x71\xFE\x72"
- "\xFE\x73\xFE\x74\xFE\x75\xFE\x76\xFE\x77\xFE\x78\xFE\x79"
- "\xFE\x7A\xFE\x7B\xFE\x7C\xFE\x7D\xFE\x7E\xFE\x80\xFE\x81"
- "\xFE\x82\xFE\x83\xFE\x84\xFE\x85\xFE\x86\xFE\x87\xFE\x88"
- "\xFE\x89\xFE\x8A\xFE\x8B\xFE\x8C\xFE\x8D\xFE\x8E\xFE\x8F"
- "\xFE\x90\xFE\x91\xFE\x92\xFE\x93\xFE\x94\xFE\x95\xFE\x96"
- "\xFE\x97\xFE\x98\xFE\x99\xFE\x9A\xFE\x9B\xFE\x9C\xFE\x9D"
- "\xFE\x9E\xFE\x9F\xFE\xA0"),
- { 0x2E81,0xE816,0xE817,0xE818,0x2E84,0x3473,0x3447,0x2E88,
- 0x2E8B,0xE81E,0x359E,0x361A,0x360E,0x2E8C,0x2E97,0x396E,
- 0x3918,0xE826,0x39CF,0x39DF,0x3A73,0x39D0,0xE82B,0xE82C,
- 0x3B4E,0x3C6E,0x3CE0,0x2EA7,0xE831,0xE832,0x2EAA,0x4056,
- 0x415F,0x2EAE,0x4337,0x2EB3,0x2EB6,0x2EB7,0xE83B,0x43B1,
- 0x43AC,0x2EBB,0x43DD,0x44D6,0x4661,0x464C,0xE843,0x4723,
- 0x4729,0x477C,0x478D,0x2ECA,0x4947,0x497A,0x497D,0x4982,
- 0x4983,0x4985,0x4986,0x499F,0x499B,0x49B7,0x49B6,0xE854,
- 0xE855,0x4CA3,0x4C9F,0x4CA0,0x4CA1,0x4C77,0x4CA2,0x4D13,
- 0x4D14,0x4D15,0x4D16,0x4D17,0x4D18,0x4D19,0x4DAE,0xE864 },
- 80,
- true,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ISO_2022_JP,
- RTL_CONSTASCII_STRINGPARAM("\x01\"3De$\\~"),
- { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x005C,0x007E },
- 8,
- false,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ISO_2022_JP,
- RTL_CONSTASCII_STRINGPARAM("\x1B(B\x01\"3De$\\~"),
- { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x005C,0x007E },
- 8,
- false,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ISO_2022_JP,
- RTL_CONSTASCII_STRINGPARAM("\x1B(J\x01\"3De$\\~"),
- { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x00A5,0x00AF },
- 8,
- false,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ISO_2022_JP,
- RTL_CONSTASCII_STRINGPARAM("\x1B$B\x26\x21\x27\x71\x1B(B"),
- { 0x0391,0x044F },
- 2,
- false,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ISO_2022_KR,
- RTL_CONSTASCII_STRINGPARAM("\x1B$)C\x01\"3De$\\~"),
- { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x005C,0x007E },
- 8,
- false,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ISO_2022_KR,
- RTL_CONSTASCII_STRINGPARAM(
- "\x1B$)C\x0E\x25\x21\x0F\x0D\x0Ax\x0E\x48\x7E\x0F"),
- { 0x2170,0x000D,0x000A,0x0078,0xD79D },
- 5,
- false,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ISO_2022_CN,
- RTL_CONSTASCII_STRINGPARAM(
- "\x01\"3De$\\~\x1B$)G\x0E\x45\x70\x1B$*H\x1BN\x22\x22"
- "\x45\x70\x0F\x1B$)A\x0E\x26\x21\x0F"),
- { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x005C,0x007E,
- 0x4ED9,0x531F,0x4ED9,0x0391 },
- 12,
- false,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ISO_2022_CN,
- RTL_CONSTASCII_STRINGPARAM(
- "\x01\"3De$\\~\x1B$)A\x0E\x26\x21\x1B$*H\x1BN\x22\x22"
- "\x26\x21\x0F\x0D\x0A\x1B$)A\x0E\x26\x21\x0F"),
- { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x005C,0x007E,
- 0x0391,0x531F,0x0391,0x000D,0x000A,0x0391 },
- 14,
- false,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- // The following does not work as long as Big5-HKSCS maps to
- // Unicode PUA instead of Plane 2. Use the next two tests
- // instead:
-// { RTL_TEXTENCODING_BIG5_HKSCS,
-// RTL_CONSTASCII_STRINGPARAM(
-// "\x01\"3De$~\x88\x56\xF9\xFE\xFA\x5E\xA1\x40\xF9\xD5"),
-// { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E,0x0100,
-// 0xFFED,0xD849,0xDD13,0x3000,0x9F98 },
-// 13,
-// true,
-// true,
-// true,
-// false,
-// RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_BIG5_HKSCS,
- RTL_CONSTASCII_STRINGPARAM(
- "\x01\"3De$~\x88\x56\xF9\xFE\xFA\x5E\xA1\x40\xF9\xD5"),
- { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E,0x0100,
- 0xFFED,0xE01E,0x3000,0x9F98 },
- 12,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_BIG5_HKSCS,
- RTL_CONSTASCII_STRINGPARAM(
- "\x01\"3De$~\x88\x56\xF9\xFE\xFA\x5E\xA1\x40\xF9\xD5"),
- { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E,0x0100,
- 0xFFED,0xD849,0xDD13,0x3000,0x9F98 },
- 13,
- true,
- false,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_BIG5_HKSCS,
- RTL_CONSTASCII_STRINGPARAM(
- "\xC6\xA1\xC6\xCF\xC6\xD3\xC6\xD5\xC6\xD7\xC6\xDE\xC6\xDF"
- "\xC6\xFE\xC7\x40\xC7\x7E\xC7\xA1\xC7\xFE"),
- { 0x2460,0xF6E0,0xF6E4,0xF6E6,0xF6E8,0xF6EF,0xF6F0,0x3058,
- 0x3059,0x30A4,0x30A5,0x041A },
- 12,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_BIG5_HKSCS,
- RTL_CONSTASCII_STRINGPARAM("\x81\x40\x84\xFE"),
- { 0xEEB8,0xF12B },
- 2,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_BIG5_HKSCS,
- RTL_CONSTASCII_STRINGPARAM(
- "\x81\x40\x8D\xFE\x8E\x40\xA0\xFE\xC6\xA1\xC8\xFE\xFA\x40"
- "\xFE\xFE"),
- { 0xEEB8,0xF6B0,0xE311,0xEEB7,0xF6B1,0xF848,0xE000,0xE310 },
- 8,
- true,
- false,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_BIG5_HKSCS,
- RTL_CONSTASCII_STRINGPARAM("\xAD\xC5\x94\x55"),
- { 0x5029,0x7250 },
- 2,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_BIG5_HKSCS,
- RTL_CONSTASCII_STRINGPARAM("\xFA\x5F\xA0\xE4"),
- { 0x5029,0x7250 },
- 2,
- true,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_BIG5_HKSCS,
- RTL_CONSTASCII_STRINGPARAM("\xA0\x40\xA0\x7E\xA0\xA1\xA0\xFE"),
- { 0xEE1B,0xEE59,0xEE5A,0xEEB7 },
- 4,
- true,
- false,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_BIG5,
- RTL_CONSTASCII_STRINGPARAM("\xA1\x45"),
- { 0x2027 },
- 1,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_BIG5,
- RTL_CONSTASCII_STRINGPARAM(
- "\xC6\xCF\xC6\xD3\xC6\xD5\xC6\xD7\xC6\xDE\xC6\xDF"),
- { 0x306B,0x306F,0x3071,0x3073,0x307A,0x307B },
- 6,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_BIG5,
- RTL_CONSTASCII_STRINGPARAM(
- "\xC7\xFD\xC7\xFE\xC8\x40\xC8\x7E\xC8\xA1\xC8\xFE"),
- { 0xF7AA,0xF7AB,0xF7AC,0xF7EA,0xF7EB,0xF848 },
- 6,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_BIG5,
- RTL_CONSTASCII_STRINGPARAM("\xA0\x40\xA0\x7E\xA0\xA1\xA0\xFE"),
- { 0xEE1B,0xEE59,0xEE5A,0xEEB7 },
- 4,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_MS_950,
- RTL_CONSTASCII_STRINGPARAM(
- "\xC6\xA1\xC6\xFE\xC7\x40\xC7\x7E\xC7\xA1\xC7\xFE\xC8\x40"
- "\xC8\x7E\xC8\xA1\xC8\xFE"),
- { 0xF6B1,0xF70E,0xF70F,0xF74D,0xF74E,0xF7AB,0xF7AC,0xF7EA,
- 0xF7EB,0xF848 },
- 10,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_MS_950,
- RTL_CONSTASCII_STRINGPARAM("\xA0\x40\xA0\x7E\xA0\xA1\xA0\xFE"),
- { 0xEE1B,0xEE59,0xEE5A,0xEEB7 },
- 4,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
-
- // Test Unicode beyond BMP:
-
- // FIXME The second m_bForward test (requiring a context) does not
- // work for UTF7:
-// { RTL_TEXTENCODING_UTF7,
-// RTL_CONSTASCII_STRINGPARAM("+2EndEw-"),
-// { 0xD849,0xDD13 },
-// 2,
-// true,
-// true,
-// true,
-// false,
-// RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_UTF8,
- RTL_CONSTASCII_STRINGPARAM("\xF0\xA2\x94\x93"),
- { 0xD849,0xDD13 },
- 2,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_GB_18030,
- RTL_CONSTASCII_STRINGPARAM("\x95\x39\xC5\x37"),
- { 0xD849,0xDD13 },
- 2,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_BIG5_HKSCS,
- RTL_CONSTASCII_STRINGPARAM("\xFA\x5E"),
- { 0xD849,0xDD13 },
- 2,
- true,
- false,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
-
- // Test GBK (aka CP936):
-
- { RTL_TEXTENCODING_GBK,
- RTL_CONSTASCII_STRINGPARAM("\xFD\x7C\xC1\xFA\xFD\x9B"),
- { 0x9F76,0x9F99,0x9FA5 },
- 3,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_MS_936,
- RTL_CONSTASCII_STRINGPARAM("\xFD\x7C\xC1\xFA\xFD\x9B"),
- { 0x9F76,0x9F99,0x9FA5 },
- 3,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_GBK,
- RTL_CONSTASCII_STRINGPARAM(
- "\xFE\x50\xFE\x54\xFE\x55\xFE\x56"
- "\xFE\x57\xFE\x58\xFE\x5A\xFE\x5B\xFE\x5C\xFE\x5D"
- "\xFE\x5E\xFE\x5F\xFE\x60\xFE\x62\xFE\x63\xFE\x64"
- "\xFE\x65\xFE\x68\xFE\x69\xFE\x6A\xFE\x6B"
- "\xFE\x6E\xFE\x6F\xFE\x70\xFE\x71\xFE\x72"
- "\xFE\x73\xFE\x74\xFE\x75\xFE\x77\xFE\x78\xFE\x79"
- "\xFE\x7A\xFE\x7B\xFE\x7C\xFE\x7D\xFE\x80\xFE\x81"
- "\xFE\x82\xFE\x83\xFE\x84\xFE\x85\xFE\x86\xFE\x87\xFE\x88"
- "\xFE\x89\xFE\x8A\xFE\x8B\xFE\x8C\xFE\x8D\xFE\x8E\xFE\x8F"
- "\xFE\x92\xFE\x93\xFE\x94\xFE\x95\xFE\x96"
- "\xFE\x97\xFE\x98\xFE\x99\xFE\x9A\xFE\x9B\xFE\x9C\xFE\x9D"
- "\xFE\x9E\xFE\x9F"),
- { 0x2E81,0x2E84,0x3473,0x3447,0x2E88,0x2E8B,0x359E,0x361A,
- 0x360E,0x2E8C,0x2E97,0x396E,0x3918,0x39CF,0x39DF,0x3A73,
- 0x39D0,0x3B4E,0x3C6E,0x3CE0,0x2EA7,0x2EAA,0x4056,0x415F,
- 0x2EAE,0x4337,0x2EB3,0x2EB6,0x2EB7,0x43B1,0x43AC,0x2EBB,
- 0x43DD,0x44D6,0x4661,0x464C,0x4723,0x4729,0x477C,0x478D,
- 0x2ECA,0x4947,0x497A,0x497D,0x4982,0x4983,0x4985,0x4986,
- 0x499F,0x499B,0x49B7,0x49B6,0x4CA3,0x4C9F,0x4CA0,0x4CA1,
- 0x4C77,0x4CA2,0x4D13,0x4D14,0x4D15,0x4D16,0x4D17,0x4D18,
- 0x4D19,0x4DAE },
- 66,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_EUC_JP,
- RTL_CONSTASCII_STRINGPARAM("?"),
- { 0xFF0D },
- 1,
- true,
- false,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_QUESTIONMARK },
-
- // Test of "JIS X 0208 row 13" (taken from CP932; added to
- // ISO-2022-JP and EUC-JP; 74 of the 83 characters introduce
- // mappings to new Unicode characters):
- { RTL_TEXTENCODING_MS_932,
- RTL_CONSTASCII_STRINGPARAM(
- "\x87\x40\x87\x41\x87\x42\x87\x43\x87\x44\x87\x45\x87\x46"
- "\x87\x47\x87\x48\x87\x49\x87\x4A\x87\x4B\x87\x4C\x87\x4D"
- "\x87\x4E\x87\x4F\x87\x50\x87\x51\x87\x52\x87\x53\x87\x54"
- "\x87\x55\x87\x56\x87\x57\x87\x58\x87\x59\x87\x5A\x87\x5B"
- "\x87\x5C\x87\x5D\x87\x5F\x87\x60\x87\x61\x87\x62\x87\x63"
- "\x87\x64\x87\x65\x87\x66\x87\x67\x87\x68\x87\x69\x87\x6A"
- "\x87\x6B\x87\x6C\x87\x6D\x87\x6E\x87\x6F\x87\x70\x87\x71"
- "\x87\x72\x87\x73\x87\x74\x87\x75\x87\x7E\x87\x80\x87\x81"
- "\x87\x82\x87\x83\x87\x84\x87\x85\x87\x86\x87\x87\x87\x88"
- "\x87\x89\x87\x8A\x87\x8B\x87\x8C\x87\x8D\x87\x8E\x87\x8F"
- "\x87\x90\x87\x91\x87\x92\x87\x93\x87\x94\x87\x95\x87\x96"
- "\x87\x97\x87\x98\x87\x99\x87\x9A\x87\x9B\x87\x9C"),
- { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
- 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
- 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
- 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
- 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
- 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
- 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
- 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x2252,0x2261,
- 0x222B,0x222E,0x2211,0x221A,0x22A5,0x2220,0x221F,0x22BF,0x2235,
- 0x2229,0x222A },
- 83,
- true,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_SHIFT_JIS,
- RTL_CONSTASCII_STRINGPARAM(
- "\x87\x40\x87\x41\x87\x42\x87\x43\x87\x44\x87\x45\x87\x46"
- "\x87\x47\x87\x48\x87\x49\x87\x4A\x87\x4B\x87\x4C\x87\x4D"
- "\x87\x4E\x87\x4F\x87\x50\x87\x51\x87\x52\x87\x53\x87\x54"
- "\x87\x55\x87\x56\x87\x57\x87\x58\x87\x59\x87\x5A\x87\x5B"
- "\x87\x5C\x87\x5D\x87\x5F\x87\x60\x87\x61\x87\x62\x87\x63"
- "\x87\x64\x87\x65\x87\x66\x87\x67\x87\x68\x87\x69\x87\x6A"
- "\x87\x6B\x87\x6C\x87\x6D\x87\x6E\x87\x6F\x87\x70\x87\x71"
- "\x87\x72\x87\x73\x87\x74\x87\x75\x87\x7E\x87\x80\x87\x81"
- "\x87\x82\x87\x83\x87\x84\x87\x85\x87\x86\x87\x87\x87\x88"
- "\x87\x89\x87\x8A\x87\x8B\x87\x8C\x87\x8D\x87\x8E\x87\x8F"
- "\x87\x90\x87\x91\x87\x92\x87\x93\x87\x94\x87\x95\x87\x96"
- "\x87\x97\x87\x98\x87\x99\x87\x9A\x87\x9B\x87\x9C"),
- { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
- 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
- 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
- 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
- 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
- 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
- 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
- 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x2252,0x2261,
- 0x222B,0x222E,0x2211,0x221A,0x22A5,0x2220,0x221F,0x22BF,0x2235,
- 0x2229,0x222A },
- 83,
- true,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ISO_2022_JP,
- RTL_CONSTASCII_STRINGPARAM(
- "\x1B$B\x2D\x21\x2D\x22\x2D\x23\x2D\x24\x2D\x25\x2D\x26"
- "\x2D\x27\x2D\x28\x2D\x29\x2D\x2A\x2D\x2B\x2D\x2C\x2D\x2D"
- "\x2D\x2E\x2D\x2F\x2D\x30\x2D\x31\x2D\x32\x2D\x33\x2D\x34"
- "\x2D\x35\x2D\x36\x2D\x37\x2D\x38\x2D\x39\x2D\x3A\x2D\x3B"
- "\x2D\x3C\x2D\x3D\x2D\x3E\x2D\x40\x2D\x41\x2D\x42\x2D\x43"
- "\x2D\x44\x2D\x45\x2D\x46\x2D\x47\x2D\x48\x2D\x49\x2D\x4A"
- "\x2D\x4B\x2D\x4C\x2D\x4D\x2D\x4E\x2D\x4F\x2D\x50\x2D\x51"
- "\x2D\x52\x2D\x53\x2D\x54\x2D\x55\x2D\x56\x2D\x5F\x2D\x60"
- "\x2D\x61\x2D\x62\x2D\x63\x2D\x64\x2D\x65\x2D\x66\x2D\x67"
- "\x2D\x68\x2D\x69\x2D\x6A\x2D\x6B\x2D\x6C\x2D\x6D\x2D\x6E"
- "\x2D\x6F\x2D\x70\x2D\x71\x2D\x72\x2D\x73\x2D\x74\x2D\x75"
- "\x2D\x76\x2D\x77\x2D\x78\x2D\x79\x2D\x7A\x2D\x7B\x2D\x7C"
- "\x1B(B"),
- { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
- 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
- 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
- 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
- 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
- 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
- 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
- 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x2252,0x2261,
- 0x222B,0x222E,0x2211,0x221A,0x22A5,0x2220,0x221F,0x22BF,0x2235,
- 0x2229,0x222A },
- 83,
- false,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ISO_2022_JP,
- RTL_CONSTASCII_STRINGPARAM(
- "\x1B$B\x2D\x21\x2D\x22\x2D\x23\x2D\x24\x2D\x25\x2D\x26"
- "\x2D\x27\x2D\x28\x2D\x29\x2D\x2A\x2D\x2B\x2D\x2C\x2D\x2D"
- "\x2D\x2E\x2D\x2F\x2D\x30\x2D\x31\x2D\x32\x2D\x33\x2D\x34"
- "\x2D\x35\x2D\x36\x2D\x37\x2D\x38\x2D\x39\x2D\x3A\x2D\x3B"
- "\x2D\x3C\x2D\x3D\x2D\x3E\x2D\x40\x2D\x41\x2D\x42\x2D\x43"
- "\x2D\x44\x2D\x45\x2D\x46\x2D\x47\x2D\x48\x2D\x49\x2D\x4A"
- "\x2D\x4B\x2D\x4C\x2D\x4D\x2D\x4E\x2D\x4F\x2D\x50\x2D\x51"
- "\x2D\x52\x2D\x53\x2D\x54\x2D\x55\x2D\x56\x2D\x5F\x2D\x60"
- "\x2D\x61\x2D\x62\x2D\x63\x2D\x64\x2D\x65\x2D\x66\x2D\x67"
- "\x2D\x68\x2D\x69\x2D\x6A\x2D\x6B\x2D\x6C\x2D\x6D\x2D\x6E"
- "\x2D\x6F\x2D\x73\x2D\x74\x2D\x78\x2D\x79\x1B(B"),
- { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
- 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
- 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
- 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
- 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
- 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
- 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
- 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x222E,0x2211,
- 0x221F,0x22BF },
- 74,
- false,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_EUC_JP,
- RTL_CONSTASCII_STRINGPARAM(
- "\xAD\xA1\xAD\xA2\xAD\xA3\xAD\xA4\xAD\xA5\xAD\xA6\xAD\xA7"
- "\xAD\xA8\xAD\xA9\xAD\xAA\xAD\xAB\xAD\xAC\xAD\xAD\xAD\xAE"
- "\xAD\xAF\xAD\xB0\xAD\xB1\xAD\xB2\xAD\xB3\xAD\xB4\xAD\xB5"
- "\xAD\xB6\xAD\xB7\xAD\xB8\xAD\xB9\xAD\xBA\xAD\xBB\xAD\xBC"
- "\xAD\xBD\xAD\xBE\xAD\xC0\xAD\xC1\xAD\xC2\xAD\xC3\xAD\xC4"
- "\xAD\xC5\xAD\xC6\xAD\xC7\xAD\xC8\xAD\xC9\xAD\xCA\xAD\xCB"
- "\xAD\xCC\xAD\xCD\xAD\xCE\xAD\xCF\xAD\xD0\xAD\xD1\xAD\xD2"
- "\xAD\xD3\xAD\xD4\xAD\xD5\xAD\xD6\xAD\xDF\xAD\xE0\xAD\xE1"
- "\xAD\xE2\xAD\xE3\xAD\xE4\xAD\xE5\xAD\xE6\xAD\xE7\xAD\xE8"
- "\xAD\xE9\xAD\xEA\xAD\xEB\xAD\xEC\xAD\xED\xAD\xEE\xAD\xEF"
- "\xAD\xF0\xAD\xF1\xAD\xF2\xAD\xF3\xAD\xF4\xAD\xF5\xAD\xF6"
- "\xAD\xF7\xAD\xF8\xAD\xF9\xAD\xFA\xAD\xFB\xAD\xFC"),
- { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
- 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
- 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
- 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
- 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
- 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
- 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
- 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x2252,0x2261,
- 0x222B,0x222E,0x2211,0x221A,0x22A5,0x2220,0x221F,0x22BF,0x2235,
- 0x2229,0x222A },
- 83,
- true,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_EUC_JP,
- RTL_CONSTASCII_STRINGPARAM(
- "\xAD\xA1\xAD\xA2\xAD\xA3\xAD\xA4\xAD\xA5\xAD\xA6\xAD\xA7"
- "\xAD\xA8\xAD\xA9\xAD\xAA\xAD\xAB\xAD\xAC\xAD\xAD\xAD\xAE"
- "\xAD\xAF\xAD\xB0\xAD\xB1\xAD\xB2\xAD\xB3\xAD\xB4\xAD\xB5"
- "\xAD\xB6\xAD\xB7\xAD\xB8\xAD\xB9\xAD\xBA\xAD\xBB\xAD\xBC"
- "\xAD\xBD\xAD\xBE\xAD\xC0\xAD\xC1\xAD\xC2\xAD\xC3\xAD\xC4"
- "\xAD\xC5\xAD\xC6\xAD\xC7\xAD\xC8\xAD\xC9\xAD\xCA\xAD\xCB"
- "\xAD\xCC\xAD\xCD\xAD\xCE\xAD\xCF\xAD\xD0\xAD\xD1\xAD\xD2"
- "\xAD\xD3\xAD\xD4\xAD\xD5\xAD\xD6\xAD\xDF\xAD\xE0\xAD\xE1"
- "\xAD\xE2\xAD\xE3\xAD\xE4\xAD\xE5\xAD\xE6\xAD\xE7\xAD\xE8"
- "\xAD\xE9\xAD\xEA\xAD\xEB\xAD\xEC\xAD\xED\xAD\xEE\xAD\xEF"
- "\xAD\xF3\xAD\xF4\xAD\xF8\xAD\xF9"),
- { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
- 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
- 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
- 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
- 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
- 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
- 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
- 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x222E,0x2211,
- 0x221F,0x22BF },
- 74,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
-
- { RTL_TEXTENCODING_EUC_JP,
- RTL_CONSTASCII_STRINGPARAM("\xB9\xF5"),
- { 0x9ED2 },
- 1,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
-
- // Test ISO-8859-x/MS-125x range 0x80--9F:
-
- { RTL_TEXTENCODING_ISO_8859_1,
- RTL_CONSTASCII_STRINGPARAM(
- "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
- "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
- "\x9E\x9F"),
- { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
- 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
- 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
- 0x009B,0x009C,0x009D,0x009E,0x009F },
- 32,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ISO_8859_2,
- RTL_CONSTASCII_STRINGPARAM(
- "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
- "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
- "\x9E\x9F"),
- { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
- 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
- 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
- 0x009B,0x009C,0x009D,0x009E,0x009F },
- 32,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ISO_8859_3,
- RTL_CONSTASCII_STRINGPARAM(
- "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
- "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
- "\x9E\x9F"),
- { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
- 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
- 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
- 0x009B,0x009C,0x009D,0x009E,0x009F },
- 32,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ISO_8859_4,
- RTL_CONSTASCII_STRINGPARAM(
- "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
- "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
- "\x9E\x9F"),
- { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
- 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
- 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
- 0x009B,0x009C,0x009D,0x009E,0x009F },
- 32,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ISO_8859_5,
- RTL_CONSTASCII_STRINGPARAM(
- "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
- "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
- "\x9E\x9F"),
- { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
- 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
- 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
- 0x009B,0x009C,0x009D,0x009E,0x009F },
- 32,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ISO_8859_6,
- RTL_CONSTASCII_STRINGPARAM(
- "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
- "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
- "\x9E\x9F"),
- { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
- 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
- 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
- 0x009B,0x009C,0x009D,0x009E,0x009F },
- 32,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ISO_8859_7,
- RTL_CONSTASCII_STRINGPARAM(
- "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
- "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
- "\x9E\x9F"),
- { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
- 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
- 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
- 0x009B,0x009C,0x009D,0x009E,0x009F },
- 32,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ISO_8859_8,
- RTL_CONSTASCII_STRINGPARAM(
- "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
- "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
- "\x9E\x9F"),
- { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
- 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
- 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
- 0x009B,0x009C,0x009D,0x009E,0x009F },
- 32,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ISO_8859_9,
- RTL_CONSTASCII_STRINGPARAM(
- "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
- "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
- "\x9E\x9F"),
- { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
- 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
- 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
- 0x009B,0x009C,0x009D,0x009E,0x009F },
- 32,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ISO_8859_14,
- RTL_CONSTASCII_STRINGPARAM(
- "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
- "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
- "\x9E\x9F"),
- { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
- 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
- 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
- 0x009B,0x009C,0x009D,0x009E,0x009F },
- 32,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ISO_8859_15,
- RTL_CONSTASCII_STRINGPARAM(
- "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
- "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
- "\x9E\x9F"),
- { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
- 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
- 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
- 0x009B,0x009C,0x009D,0x009E,0x009F },
- 32,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_MS_874,
- RTL_CONSTASCII_STRINGPARAM(""),
- { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
- 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
- 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
- 0x009B,0x009C,0x009D,0x009E,0x009F },
- 32,
- true,
- false,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
- { RTL_TEXTENCODING_MS_1250,
- RTL_CONSTASCII_STRINGPARAM(""),
- { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
- 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
- 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
- 0x009B,0x009C,0x009D,0x009E,0x009F },
- 32,
- true,
- false,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
- { RTL_TEXTENCODING_MS_1251,
- RTL_CONSTASCII_STRINGPARAM(""),
- { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
- 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
- 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
- 0x009B,0x009C,0x009D,0x009E,0x009F },
- 32,
- true,
- false,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
- { RTL_TEXTENCODING_MS_1252,
- RTL_CONSTASCII_STRINGPARAM(""),
- { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
- 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
- 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
- 0x009B,0x009C,0x009D,0x009E,0x009F },
- 32,
- true,
- false,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
- { RTL_TEXTENCODING_MS_1253,
- RTL_CONSTASCII_STRINGPARAM(""),
- { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
- 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
- 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
- 0x009B,0x009C,0x009D,0x009E,0x009F },
- 32,
- true,
- false,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
- { RTL_TEXTENCODING_MS_1254,
- RTL_CONSTASCII_STRINGPARAM(""),
- { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
- 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
- 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
- 0x009B,0x009C,0x009D,0x009E,0x009F },
- 32,
- true,
- false,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
- { RTL_TEXTENCODING_MS_1255,
- RTL_CONSTASCII_STRINGPARAM(""),
- { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
- 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
- 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
- 0x009B,0x009C,0x009D,0x009E,0x009F },
- 32,
- true,
- false,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
- { RTL_TEXTENCODING_MS_1256,
- RTL_CONSTASCII_STRINGPARAM(""),
- { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
- 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
- 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
- 0x009B,0x009C,0x009D,0x009E,0x009F },
- 32,
- true,
- false,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
- { RTL_TEXTENCODING_MS_1257,
- RTL_CONSTASCII_STRINGPARAM(""),
- { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
- 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
- 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
- 0x009B,0x009C,0x009D,0x009E,0x009F },
- 32,
- true,
- false,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
- { RTL_TEXTENCODING_MS_1258,
- RTL_CONSTASCII_STRINGPARAM(""),
- { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
- 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
- 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
- 0x009B,0x009C,0x009D,0x009E,0x009F },
- 32,
- true,
- false,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
- { RTL_TEXTENCODING_MS_949,
- RTL_CONSTASCII_STRINGPARAM(
- "\xB0\xA1\xB0\xA2\x81\x41\x81\x42\xB0\xA3\x81\x43\x81\x44"
- "\xB0\xA4\xB0\xA5\xB0\xA6\xB0\xA7\x81\x45\x81\x46\x81\x47"
- "\x81\x48\x81\x49\xB0\xA8\xB0\xA9\xB0\xAA\xB0\xAB\xB0\xAC"
- "\xB0\xAD\xB0\xAE\xB0\xAF\x81\x4A\xB0\xB0\xB0\xB1\xB0\xB2"),
- { 0xAC00,0xAC01,0xAC02,0xAC03,0xAC04,0xAC05,0xAC06,0xAC07,0xAC08,
- 0xAC09,0xAC0A,0xAC0B,0xAC0C,0xAC0D,0xAC0E,0xAC0F,0xAC10,0xAC11,
- 0xAC12,0xAC13,0xAC14,0xAC15,0xAC16,0xAC17,0xAC18,0xAC19,0xAC1A,
- 0xAC1B },
- 28,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_MS_949,
- RTL_CONSTASCII_STRINGPARAM(
- "\xC9\xA1\xC9\xA2\xC9\xA3\xC9\xFC\xC9\xFD\xC9\xFE"
- "\xFE\xA1\xFE\xA2\xFE\xA3\xFE\xFC\xFE\xFD\xFE\xFE"),
- { 0xE000,0xE001,0xE002,0xE05B,0xE05C,0xE05D,
- 0xE05E,0xE05F,0xE060,0xE0B9,0xE0BA,0xE0BB },
- 12,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_EUC_KR,
- RTL_CONSTASCII_STRINGPARAM(
- "\xB0\xA1\xB0\xA2" "\xB0\xA3"
- "\xB0\xA4\xB0\xA5\xB0\xA6\xB0\xA7"
- "\xB0\xA8\xB0\xA9\xB0\xAA\xB0\xAB\xB0\xAC"
- "\xB0\xAD\xB0\xAE\xB0\xAF" "\xB0\xB0\xB0\xB1\xB0\xB2"),
- { 0xAC00,0xAC01, 0xAC04, 0xAC07,0xAC08,
- 0xAC09,0xAC0A, 0xAC10,0xAC11,
- 0xAC12,0xAC13,0xAC14,0xAC15,0xAC16,0xAC17, 0xAC19,0xAC1A,
- 0xAC1B },
- 18,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_EUC_KR,
- RTL_CONSTASCII_STRINGPARAM(
- "\xB0\xA1\xB0\xA2" "\xB0\xA3"
- "\xB0\xA4\xB0\xA5\xB0\xA6\xB0\xA7"
- "\xB0\xA8\xB0\xA9\xB0\xAA\xB0\xAB\xB0\xAC"
- "\xB0\xAD\xB0\xAE\xB0\xAF" "\xB0\xB0\xB0\xB1\xB0\xB2"),
- { 0xAC00,0xAC01,0xAC02,0xAC03,0xAC04,0xAC05,0xAC06,0xAC07,0xAC08,
- 0xAC09,0xAC0A,0xAC0B,0xAC0C,0xAC0D,0xAC0E,0xAC0F,0xAC10,0xAC11,
- 0xAC12,0xAC13,0xAC14,0xAC15,0xAC16,0xAC17,0xAC18,0xAC19,0xAC1A,
- 0xAC1B },
- 28,
- true,
- false,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
- { RTL_TEXTENCODING_EUC_KR,
- RTL_CONSTASCII_STRINGPARAM(
- "\xC9\xA1\xC9\xA2\xC9\xA3\xC9\xFC\xC9\xFD\xC9\xFE"
- "\xFE\xA1\xFE\xA2\xFE\xA3\xFE\xFC\xFE\xFD\xFE\xFE"),
- { 0xE000,0xE001,0xE002,0xE05B,0xE05C,0xE05D,
- 0xE05E,0xE05F,0xE060,0xE0B9,0xE0BA,0xE0BB },
- 12,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
-
- // Test UTF-8:
-
- { RTL_TEXTENCODING_UTF8,
- RTL_CONSTASCII_STRINGPARAM("\x00"),
- { 0x0000 },
- 1,
- false,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_UTF8,
- RTL_CONSTASCII_STRINGPARAM("\xEF\xBB\xBF"),
- { 0xFEFF },
- 1,
- false,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_UTF8,
- RTL_CONSTASCII_STRINGPARAM("\xEF\xBB\xBF\xEF\xBB\xBF"),
- { 0xFEFF,0xFEFF },
- 2,
- false,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_UTF8,
- RTL_CONSTASCII_STRINGPARAM("\xEF\xBB\xBF"),
- { 0 },
- 0,
- false,
- true,
- true,
- true,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_UTF8,
- RTL_CONSTASCII_STRINGPARAM("\xEF\xBB\xBF\xEF\xBB\xBF"),
- { 0xFEFF },
- 1,
- false,
- true,
- true,
- true,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_UTF8,
- RTL_CONSTASCII_STRINGPARAM("\x01\x02\x7E\x7F"),
- { 0x0001,0x0002,0x007E,0x007F },
- 4,
- false,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_UTF8,
- RTL_CONSTASCII_STRINGPARAM(
- "\xC0\x80\xE0\x80\x81\xF0\x80\x80\x82\xF8\x80\x80\x80\x83"
- "\xFC\x80\x80\x80\x80\x84"),
- { 0x0000,0x0001,0x0002,0x0003,0x0004 },
- 5,
- false,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_UTF8,
- RTL_CONSTASCII_STRINGPARAM("\xED\xA1\x89\xED\xB4\x93"),
- { 0xD849,0xDD13 },
- 2,
- false,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_UTF8,
- RTL_CONSTASCII_STRINGPARAM("\xED\xA1\x89\x41"),
- { 0xD849,0x0041 },
- 2,
- false,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
-
- // Test Java UTF-8:
-
- { RTL_TEXTENCODING_JAVA_UTF8,
- RTL_CONSTASCII_STRINGPARAM(
- "\xEF\xBB\xBF\xC0\x80\x01\x20\x41\x7F\xED\xA0\x80"
- "\xED\xB0\x80"),
- { 0xFEFF,0x0000,0x0001,0x0020,0x0041,0x007F,0xD800,0xDC00 },
- 8,
- false,
- true,
- true,
- true,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
-
- // Bug #112949#:
-
- { RTL_TEXTENCODING_SHIFT_JIS,
- RTL_CONSTASCII_STRINGPARAM("\x81\x63"),
- { 0x2026 },
- 1,
- false,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_SHIFT_JIS,
- RTL_CONSTASCII_STRINGPARAM("\xA0\xFD\xFE\xFF"),
- { 0x00A0, 0x00A9, 0x2122, 0x2026 },
- 4,
- false,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_SHIFT_JIS,
- RTL_CONSTASCII_STRINGPARAM(""),
- { 0x00A0, 0x00A9, 0x2122 },
- 3,
- false,
- false,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
- { RTL_TEXTENCODING_MS_932,
- RTL_CONSTASCII_STRINGPARAM("\x81\x63"),
- { 0x2026 },
- 1,
- false,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_MS_932,
- RTL_CONSTASCII_STRINGPARAM("\xA0\xFD\xFE\xFF"),
- { 0x00A0, 0x00A9, 0x2122, 0x2026 },
- 4,
- false,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_MS_932,
- RTL_CONSTASCII_STRINGPARAM(""),
- { 0x00A0, 0x00A9, 0x2122 },
- 3,
- false,
- false,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
- { RTL_TEXTENCODING_APPLE_JAPANESE,
- RTL_CONSTASCII_STRINGPARAM("\xA0\xFD\xFE\x81\x63"),
- { 0x00A0, 0x00A9, 0x2122, 0x2026 },
- 4,
- false,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_APPLE_JAPANESE,
- RTL_CONSTASCII_STRINGPARAM("\xFF"),
- { 0x2026 },
- 1,
- false,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
-
- { RTL_TEXTENCODING_ADOBE_STANDARD,
- RTL_CONSTASCII_STRINGPARAM("\x20\x2D\xA4\xB4\xC5"),
- { 0x0020, 0x002D, 0x2215, 0x00B7, 0x00AF },
- 5,
- false,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ADOBE_STANDARD,
- RTL_CONSTASCII_STRINGPARAM("\x20\x2D\xA4\xB4\xC5"),
- { 0x00A0, 0x00AD, 0x2044, 0x2219, 0x02C9 },
- 5,
- false,
- false,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
-
- { RTL_TEXTENCODING_ADOBE_SYMBOL,
- RTL_CONSTASCII_STRINGPARAM("\x20\x44\x57\x6D\xA4"),
- { 0x0020, 0x0394, 0x03A9, 0x03BC, 0x2215 },
- 5,
- false,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_ADOBE_SYMBOL,
- RTL_CONSTASCII_STRINGPARAM("\x20\x44\x57\x6D\xA4"),
- { 0x00A0, 0x2206, 0x2126, 0x00B5, 0x2044 },
- 5,
- false,
- false,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
-
- // Bug #i62310#:
- { RTL_TEXTENCODING_SHIFT_JIS,
- RTL_CONSTASCII_STRINGPARAM(
- "\xF0\x40\xF0\x7E\xF0\x80\xF0\xFC\xF1\x40\xF9\xFC"),
- { 0xE000, 0xE03E, 0xE03F, 0xE0BB, 0xE0BC, 0xE757 },
- 6,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
-
- // Bug #i73103#:
- { RTL_TEXTENCODING_MS_1258,
- RTL_CONSTASCII_STRINGPARAM(
- "\xC0\x41\xDE\xE3\xD2\xD4\xEC\xFD\xF2"),
- { 0x00C0, 0x0041, 0x0303, 0x0103, 0x0309, 0x00D4, 0x0301, 0x01B0,
- 0x0323 },
- 9,
- true,
- true,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_MS_1258,
- RTL_CONSTASCII_STRINGPARAM(
- "\xC0\x41\xDE\xE3\xD2\xD4\xEC\xFD\xF2"),
- { 0x00C0, 0x00C3, 0x1EB3, 0x1ED0, 0x1EF1 },
- 5,
- false,
- false,
- true,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }
- };
- for (std::size_t i = 0; i < SAL_N_ELEMENTS(data); ++i) {
- doComplexCharSetTest(data[i]);
- }
-}
-
-void Test::testComplexCut() {
- static ComplexCharSetTest const data[]
- = { { RTL_TEXTENCODING_EUC_JP,
- RTL_CONSTASCII_STRINGPARAM("\xA1"),
- { 0 },
- 0,
- true,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_EUC_JP,
- RTL_CONSTASCII_STRINGPARAM("\x8E"),
- { 0 },
- 0,
- true,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_EUC_JP,
- RTL_CONSTASCII_STRINGPARAM("\x8F"),
- { 0 },
- 0,
- true,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_EUC_JP,
- RTL_CONSTASCII_STRINGPARAM("\x8F\xA1"),
- { 0 },
- 0,
- true,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_EUC_CN,
- RTL_CONSTASCII_STRINGPARAM("\xA1"),
- { 0 },
- 0,
- true,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR } /* ,
- { RTL_TEXTENCODING_EUC_TW,
- RTL_CONSTASCII_STRINGPARAM("\xA1"),
- { 0 },
- 0,
- true,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_EUC_TW,
- RTL_CONSTASCII_STRINGPARAM("\x8E"),
- { 0 },
- 0,
- true,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_EUC_TW,
- RTL_CONSTASCII_STRINGPARAM("\x8E\xA1"),
- { 0 },
- 0,
- true,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
- { RTL_TEXTENCODING_EUC_TW,
- RTL_CONSTASCII_STRINGPARAM("\x8E\xA1\xA1"),
- { 0 },
- 0,
- true,
- true,
- false,
- false,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR } */ };
- for (std::size_t i = 0; i < SAL_N_ELEMENTS(data); ++i) {
- doComplexCharSetCutTest(data[i]);
- }
-}
-
-void Test::testSRCBUFFERTOSMALL() {
- rtl_TextToUnicodeConverter cv = rtl_createTextToUnicodeConverter(
- RTL_TEXTENCODING_EUC_JP);
- OSL_ASSERT(cv != NULL);
- rtl_TextToUnicodeContext cx = rtl_createTextToUnicodeContext(cv);
- OSL_ASSERT(cx != NULL);
- char src = '\xA1';
- sal_Unicode dst[10];
- sal_uInt32 info;
- sal_Size cvt;
- CPPUNIT_ASSERT_EQUAL(
- sal_Size(0),
- rtl_convertTextToUnicode(
- cv, cx, &src, 1, dst, sizeof dst / sizeof (sal_Unicode),
- (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR |
- RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR |
- RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR),
- &info, &cvt));
- CPPUNIT_ASSERT_EQUAL(RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL, info);
- CPPUNIT_ASSERT(cvt <= 1);
- rtl_destroyTextToUnicodeContext(cv, cx);
- rtl_destroyTextToUnicodeConverter(cv);
-}
-
-void Test::testMime() {
- struct Data {
- char const * mime;
- rtl_TextEncoding encoding;
- bool reverse;
- };
- static Data const data[] = {
- { "GBK", RTL_TEXTENCODING_GBK, false },
- { "CP936", RTL_TEXTENCODING_GBK, false },
- { "MS936", RTL_TEXTENCODING_GBK, false },
- { "windows-936", RTL_TEXTENCODING_GBK, false },
-
- { "GB18030", RTL_TEXTENCODING_GB_18030, false },
-
- { "TIS-620", RTL_TEXTENCODING_TIS_620, true },
- { "ISO-8859-11", RTL_TEXTENCODING_TIS_620, false }, // not registered
-
- { "CP874", RTL_TEXTENCODING_MS_874, false }, // not registered
- { "MS874", RTL_TEXTENCODING_MS_874, false }, // not registered
- { "windows-874", RTL_TEXTENCODING_MS_874, true }, // not registered
-
- { "ISO_8859-8:1988", RTL_TEXTENCODING_ISO_8859_8, false },
- { "iso-ir-138", RTL_TEXTENCODING_ISO_8859_8, false },
- { "ISO_8859-8", RTL_TEXTENCODING_ISO_8859_8, false },
- { "ISO-8859-8", RTL_TEXTENCODING_ISO_8859_8, true },
- { "hebrew", RTL_TEXTENCODING_ISO_8859_8, false },
- { "csISOLatinHebrew", RTL_TEXTENCODING_ISO_8859_8, false },
-
- { "windows-1255", RTL_TEXTENCODING_MS_1255, true },
-
- { "IBM862", RTL_TEXTENCODING_IBM_862, true },
- { "cp862", RTL_TEXTENCODING_IBM_862, false },
- { "862", RTL_TEXTENCODING_IBM_862, false },
- { "csPC862LatinHebrew", RTL_TEXTENCODING_IBM_862, false },
-
- { "ISO_8859-6:1987", RTL_TEXTENCODING_ISO_8859_6, false },
- { "iso-ir-127", RTL_TEXTENCODING_ISO_8859_6, false },
- { "ISO_8859-6", RTL_TEXTENCODING_ISO_8859_6, false },
- { "ISO-8859-6", RTL_TEXTENCODING_ISO_8859_6, true },
- { "ECMA-114", RTL_TEXTENCODING_ISO_8859_6, false },
- { "ASMO-708", RTL_TEXTENCODING_ISO_8859_6, false },
- { "arabic", RTL_TEXTENCODING_ISO_8859_6, false },
- { "csISOLatinArabic", RTL_TEXTENCODING_ISO_8859_6, false },
-
- { "windows-1256", RTL_TEXTENCODING_MS_1256, true },
-
- { "IBM864", RTL_TEXTENCODING_IBM_864, true },
- { "cp864", RTL_TEXTENCODING_IBM_864, false },
- { "csIBM864", RTL_TEXTENCODING_IBM_864, false },
-
- { "KOI8-R", RTL_TEXTENCODING_KOI8_R, false },
- { "csKOI8R", RTL_TEXTENCODING_KOI8_R, false },
- { "koi8-r", RTL_TEXTENCODING_KOI8_R, true },
-
- { "KOI8-U", RTL_TEXTENCODING_KOI8_U, true },
-
- { "IBM860", RTL_TEXTENCODING_IBM_860, true },
- { "cp860", RTL_TEXTENCODING_IBM_860, false },
- { "860", RTL_TEXTENCODING_IBM_860, false },
- { "csIBM860", RTL_TEXTENCODING_IBM_860, false },
-
- { "IBM861", RTL_TEXTENCODING_IBM_861, true },
- { "cp861", RTL_TEXTENCODING_IBM_861, false },
- { "861", RTL_TEXTENCODING_IBM_861, false },
- { "cp-is", RTL_TEXTENCODING_IBM_861, false },
- { "csIBM861", RTL_TEXTENCODING_IBM_861, false },
-
- { "IBM863", RTL_TEXTENCODING_IBM_863, true },
- { "cp863", RTL_TEXTENCODING_IBM_863, false },
- { "863", RTL_TEXTENCODING_IBM_863, false },
- { "csIBM863", RTL_TEXTENCODING_IBM_863, false },
-
- { "IBM865", RTL_TEXTENCODING_IBM_865, true },
- { "cp865", RTL_TEXTENCODING_IBM_865, false },
- { "865", RTL_TEXTENCODING_IBM_865, false },
- { "csIBM865", RTL_TEXTENCODING_IBM_865, false },
-
- { "Latin-9", RTL_TEXTENCODING_ISO_8859_15, false },
-
- { "KS_C_5601-1987", RTL_TEXTENCODING_MS_949, false },
- { "iso-ir-149", RTL_TEXTENCODING_MS_949, false },
- { "KS_C_5601-1989", RTL_TEXTENCODING_MS_949, false },
- { "KSC_5601", RTL_TEXTENCODING_MS_949, false },
- { "korean", RTL_TEXTENCODING_MS_949, false },
- { "csKSC56011987", RTL_TEXTENCODING_MS_949, false },
- { 0, RTL_TEXTENCODING_MS_949, true },
-
- { "Adobe-Standard-Encoding", RTL_TEXTENCODING_ADOBE_STANDARD, false },
- { "csAdobeStandardEncoding", RTL_TEXTENCODING_ADOBE_STANDARD, false },
- { "Adobe-Symbol-Encoding", RTL_TEXTENCODING_ADOBE_SYMBOL, false },
- { "csHPPSMath", RTL_TEXTENCODING_ADOBE_SYMBOL, false },
-
- { "PTCP154", RTL_TEXTENCODING_PT154, true },
- { "csPTCP154", RTL_TEXTENCODING_PT154, false },
- { "PT154", RTL_TEXTENCODING_PT154, false },
- { "CP154", RTL_TEXTENCODING_PT154, false },
- { "Cyrillic-Asian", RTL_TEXTENCODING_PT154, false }
- };
- for (std::size_t i = 0; i < SAL_N_ELEMENTS(data); ++i) {
- if (data[i].mime == 0) {
- OSL_ASSERT(data[i].reverse);
- CPPUNIT_ASSERT_EQUAL(
- static_cast< char const * >(0),
- rtl_getMimeCharsetFromTextEncoding(data[i].encoding));
- } else {
- CPPUNIT_ASSERT_EQUAL(
- data[i].encoding,
- rtl_getTextEncodingFromMimeCharset(data[i].mime));
- if (data[i].reverse) {
- CPPUNIT_ASSERT_EQUAL(
- rtl::OString(data[i].mime),
- rtl::OString(
- rtl_getMimeCharsetFromTextEncoding(data[i].encoding)));
- }
- }
- }
-}
-
-void Test::testWindows() {
- struct Data {
- sal_uInt32 codePage;
- rtl_TextEncoding encoding;
- bool reverse;
- };
- static Data const data[] = {
- { 437, RTL_TEXTENCODING_IBM_437, true },
- { 708, RTL_TEXTENCODING_ISO_8859_6, false },
- { 737, RTL_TEXTENCODING_IBM_737, true },
- { 775, RTL_TEXTENCODING_IBM_775, true },
- { 850, RTL_TEXTENCODING_IBM_850, true },
- { 852, RTL_TEXTENCODING_IBM_852, true },
- { 855, RTL_TEXTENCODING_IBM_855, true },
- { 857, RTL_TEXTENCODING_IBM_857, true },
- { 860, RTL_TEXTENCODING_IBM_860, true },
- { 861, RTL_TEXTENCODING_IBM_861, true },
- { 862, RTL_TEXTENCODING_IBM_862, true },
- { 863, RTL_TEXTENCODING_IBM_863, true },
- { 864, RTL_TEXTENCODING_IBM_864, true },
- { 865, RTL_TEXTENCODING_IBM_865, true },
- { 866, RTL_TEXTENCODING_IBM_866, true },
- { 869, RTL_TEXTENCODING_IBM_869, true },
- { 874, RTL_TEXTENCODING_MS_874, true },
- { 932, RTL_TEXTENCODING_MS_932, true },
- { 936, RTL_TEXTENCODING_MS_936, true },
- { 949, RTL_TEXTENCODING_MS_949, true },
- { 950, RTL_TEXTENCODING_MS_950, true },
- { 1250, RTL_TEXTENCODING_MS_1250, true },
- { 1251, RTL_TEXTENCODING_MS_1251, true },
- { 1252, RTL_TEXTENCODING_MS_1252, true },
- { 1253, RTL_TEXTENCODING_MS_1253, true },
- { 1254, RTL_TEXTENCODING_MS_1254, true },
- { 1255, RTL_TEXTENCODING_MS_1255, true },
- { 1256, RTL_TEXTENCODING_MS_1256, true },
- { 1257, RTL_TEXTENCODING_MS_1257, true },
- { 1258, RTL_TEXTENCODING_MS_1258, true },
- { 1361, RTL_TEXTENCODING_MS_1361, true },
- { 10000, RTL_TEXTENCODING_APPLE_ROMAN, true },
- { 10001, RTL_TEXTENCODING_APPLE_JAPANESE, true },
- { 10002, RTL_TEXTENCODING_APPLE_CHINTRAD, true },
- { 10003, RTL_TEXTENCODING_APPLE_KOREAN, true },
- { 10004, RTL_TEXTENCODING_APPLE_ARABIC, true },
- { 10005, RTL_TEXTENCODING_APPLE_HEBREW, true },
- { 10006, RTL_TEXTENCODING_APPLE_GREEK, true },
- { 10007, RTL_TEXTENCODING_APPLE_CYRILLIC, true },
- { 10008, RTL_TEXTENCODING_APPLE_CHINSIMP, true },
- { 10010, RTL_TEXTENCODING_APPLE_ROMANIAN, true },
- { 10017, RTL_TEXTENCODING_APPLE_UKRAINIAN, true },
- { 10029, RTL_TEXTENCODING_APPLE_CENTEURO, true },
- { 10079, RTL_TEXTENCODING_APPLE_ICELAND, true },
- { 10081, RTL_TEXTENCODING_APPLE_TURKISH, true },
- { 10082, RTL_TEXTENCODING_APPLE_CROATIAN, true },
- { 20127, RTL_TEXTENCODING_ASCII_US, true },
- { 20866, RTL_TEXTENCODING_KOI8_R, true },
- { 21866, RTL_TEXTENCODING_KOI8_U, true },
- { 28591, RTL_TEXTENCODING_ISO_8859_1, true },
- { 28592, RTL_TEXTENCODING_ISO_8859_2, true },
- { 28593, RTL_TEXTENCODING_ISO_8859_3, true },
- { 28594, RTL_TEXTENCODING_ISO_8859_4, true },
- { 28595, RTL_TEXTENCODING_ISO_8859_5, true },
- { 28596, RTL_TEXTENCODING_ISO_8859_6, true },
- { 28597, RTL_TEXTENCODING_ISO_8859_7, true },
- { 28598, RTL_TEXTENCODING_ISO_8859_8, true },
- { 28599, RTL_TEXTENCODING_ISO_8859_9, true },
- { 28605, RTL_TEXTENCODING_ISO_8859_15, true },
- { 50220, RTL_TEXTENCODING_ISO_2022_JP, true },
- { 50225, RTL_TEXTENCODING_ISO_2022_KR, true },
- { 51932, RTL_TEXTENCODING_EUC_JP, true },
- { 51936, RTL_TEXTENCODING_EUC_CN, true },
- { 51949, RTL_TEXTENCODING_EUC_KR, true },
- { 65000, RTL_TEXTENCODING_UTF7, true },
- { 65001, RTL_TEXTENCODING_UTF8, true },
- { 1200, RTL_TEXTENCODING_DONTKNOW, false }, // UTF_16LE
- { 1201, RTL_TEXTENCODING_DONTKNOW, false }, // UTF_16LE
- { 0, RTL_TEXTENCODING_DONTKNOW, true },
- { 0, RTL_TEXTENCODING_UCS4, true },
- { 0, RTL_TEXTENCODING_UCS2, true },
- { 0, RTL_TEXTENCODING_ISCII_DEVANAGARI, true }
- };
- for (std::size_t i = 0; i < SAL_N_ELEMENTS(data); ++i) {
- OSL_ASSERT(data[i].codePage != 0 || data[i].reverse);
- if (data[i].codePage != 0) {
- CPPUNIT_ASSERT_EQUAL(
- data[i].encoding,
- rtl_getTextEncodingFromWindowsCodePage(data[i].codePage));
- }
- if (data[i].reverse) {
- CPPUNIT_ASSERT_EQUAL(
- data[i].codePage,
- rtl_getWindowsCodePageFromTextEncoding(data[i].encoding));
- }
- }
-}
-
-void Test::testInfo() {
- struct Data {
- rtl_TextEncoding encoding;
- sal_uInt32 flag;
- bool value;
- };
- static Data const data[] = {
- { RTL_TEXTENCODING_APPLE_CHINTRAD, RTL_TEXTENCODING_INFO_ASCII, false },
- { RTL_TEXTENCODING_APPLE_JAPANESE, RTL_TEXTENCODING_INFO_ASCII, false },
- { RTL_TEXTENCODING_APPLE_KOREAN, RTL_TEXTENCODING_INFO_ASCII, false },
- { RTL_TEXTENCODING_BIG5, RTL_TEXTENCODING_INFO_ASCII, false },
- { RTL_TEXTENCODING_BIG5_HKSCS, RTL_TEXTENCODING_INFO_ASCII, false },
- { RTL_TEXTENCODING_EUC_CN, RTL_TEXTENCODING_INFO_ASCII, true },
- { RTL_TEXTENCODING_EUC_JP, RTL_TEXTENCODING_INFO_ASCII, true },
- { RTL_TEXTENCODING_EUC_KR, RTL_TEXTENCODING_INFO_ASCII, true },
- { RTL_TEXTENCODING_EUC_TW, RTL_TEXTENCODING_INFO_ASCII, true },
- { RTL_TEXTENCODING_GBK, RTL_TEXTENCODING_INFO_ASCII, false },
- { RTL_TEXTENCODING_GB_18030, RTL_TEXTENCODING_INFO_ASCII, false },
- { RTL_TEXTENCODING_GB_18030, RTL_TEXTENCODING_INFO_UNICODE, true },
- { RTL_TEXTENCODING_ISO_2022_CN, RTL_TEXTENCODING_INFO_CONTEXT, true },
- { RTL_TEXTENCODING_ISO_2022_CN, RTL_TEXTENCODING_INFO_ASCII, false },
- { RTL_TEXTENCODING_ISO_2022_JP, RTL_TEXTENCODING_INFO_CONTEXT, true },
- { RTL_TEXTENCODING_ISO_2022_JP, RTL_TEXTENCODING_INFO_ASCII, false },
- { RTL_TEXTENCODING_ISO_2022_KR, RTL_TEXTENCODING_INFO_CONTEXT, true },
- { RTL_TEXTENCODING_ISO_2022_KR, RTL_TEXTENCODING_INFO_ASCII, false },
- { RTL_TEXTENCODING_MS_1361, RTL_TEXTENCODING_INFO_ASCII, false },
- { RTL_TEXTENCODING_MS_874, RTL_TEXTENCODING_INFO_ASCII, true },
- { RTL_TEXTENCODING_MS_932, RTL_TEXTENCODING_INFO_ASCII, false },
- { RTL_TEXTENCODING_MS_936, RTL_TEXTENCODING_INFO_ASCII, false },
- { RTL_TEXTENCODING_MS_949, RTL_TEXTENCODING_INFO_ASCII, false },
- { RTL_TEXTENCODING_MS_950, RTL_TEXTENCODING_INFO_ASCII, false },
- { RTL_TEXTENCODING_SHIFT_JIS, RTL_TEXTENCODING_INFO_ASCII, false },
- { RTL_TEXTENCODING_KOI8_R, RTL_TEXTENCODING_INFO_ASCII, true },
- { RTL_TEXTENCODING_KOI8_R, RTL_TEXTENCODING_INFO_MIME, true },
- { RTL_TEXTENCODING_KOI8_U, RTL_TEXTENCODING_INFO_ASCII, true },
- { RTL_TEXTENCODING_KOI8_U, RTL_TEXTENCODING_INFO_MIME, true },
- { RTL_TEXTENCODING_IBM_860, RTL_TEXTENCODING_INFO_MIME, true },
- { RTL_TEXTENCODING_IBM_861, RTL_TEXTENCODING_INFO_MIME, true },
- { RTL_TEXTENCODING_IBM_863, RTL_TEXTENCODING_INFO_MIME, true },
- { RTL_TEXTENCODING_IBM_865, RTL_TEXTENCODING_INFO_MIME, true },
- { RTL_TEXTENCODING_ISCII_DEVANAGARI, RTL_TEXTENCODING_INFO_ASCII, true },
- { RTL_TEXTENCODING_ISCII_DEVANAGARI, RTL_TEXTENCODING_INFO_MIME, false },
- { RTL_TEXTENCODING_ADOBE_STANDARD, RTL_TEXTENCODING_INFO_ASCII, false },
- { RTL_TEXTENCODING_ADOBE_STANDARD, RTL_TEXTENCODING_INFO_MIME, true },
- { RTL_TEXTENCODING_ADOBE_STANDARD, RTL_TEXTENCODING_INFO_SYMBOL, false },
- { RTL_TEXTENCODING_ADOBE_SYMBOL, RTL_TEXTENCODING_INFO_ASCII, false },
- { RTL_TEXTENCODING_ADOBE_SYMBOL, RTL_TEXTENCODING_INFO_MIME, true },
- { RTL_TEXTENCODING_ADOBE_SYMBOL, RTL_TEXTENCODING_INFO_SYMBOL, true },
- { RTL_TEXTENCODING_PT154, RTL_TEXTENCODING_INFO_ASCII, true },
- { RTL_TEXTENCODING_PT154, RTL_TEXTENCODING_INFO_MIME, true }
- };
- for (std::size_t i = 0; i < SAL_N_ELEMENTS(data); ++i) {
- rtl_TextEncodingInfo info;
- info.StructSize = sizeof info;
- CPPUNIT_ASSERT(rtl_getTextEncodingInfo(data[i].encoding, &info));
- CPPUNIT_ASSERT_EQUAL(data[i].value, ((info.Flags & data[i].flag) != 0));
- }
-}
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(Test, "rtl_textcvt");
-
-}
-
-NOADDITIONAL;
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/uri/makefile.mk b/sal/qa/rtl/uri/makefile.mk
deleted file mode 100644
index 5d3fc19dc..000000000
--- a/sal/qa/rtl/uri/makefile.mk
+++ /dev/null
@@ -1,75 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-
-PRJNAME=sal
-TARGET=qa_rtl_uritest
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-
-# --- BEGIN --------------------------------------------------------
-SHL1OBJS= \
- $(SLO)$/rtl_Uri.obj
-SHL1TARGET= rtl_uri_simple
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-DEF1NAME =$(SHL1TARGET)
-SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
-
-# END --------------------------------------------------------------
-
-# --- BEGIN --------------------------------------------------------
-SHL2OBJS= \
- $(SLO)$/rtl_testuri.obj
-SHL2TARGET= rtl_Uri
-SHL2STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL2IMPLIB= i$(SHL2TARGET)
-DEF2NAME =$(SHL2TARGET)
-SHL2VERSIONMAP = $(PRJ)$/qa$/export.map
-
-# END --------------------------------------------------------------
-
-#------------------------------- All object files -------------------------------
-# do this here, so we get right dependencies
-# SLOFILES=$(SHL1OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/rtl/uri/rtl_Uri.cxx b/sal/qa/rtl/uri/rtl_Uri.cxx
deleted file mode 100644
index 1f9f99613..000000000
--- a/sal/qa/rtl/uri/rtl_Uri.cxx
+++ /dev/null
@@ -1,300 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-#include <stdlib.h>
-#include <rtl/ustring.hxx>
-#include <rtl/strbuf.hxx>
-#include <rtl/uri.hxx>
-#include <osl/thread.h>
-#include <osl/file.hxx>
-
-#include <testshl/simpleheader.hxx>
-
-// -----------------------------------------------------------------------------
-
-namespace Stringtest
-{
- rtl::OString toHex(unsigned char _c)
- {
- rtl::OStringBuffer sStrBuf;
- static char cHex[] = "0123456789ABCDEF";
-
- int nhigh = int(_c) >> 4 & 0xf;
- int nlow = int(_c) & 0xf;
- sStrBuf.append( cHex[nhigh] );
- sStrBuf.append( cHex[nlow] );
- return sStrBuf.makeStringAndClear();
- }
-
- rtl::OString escapeString(rtl::OString const& _sStr)
- {
- rtl::OStringBuffer sStrBuf;
- sal_Int32 nLength = _sStr.getLength();
- for(int i=0;i<nLength;++i)
- {
- unsigned char c = (unsigned char)_sStr[i];
- if (c > 127)
- {
- sStrBuf.append("%");
- sStrBuf.append(toHex(c));
- }
- else
- {
- sStrBuf.append((char)c);
- }
- }
- return sStrBuf.makeStringAndClear();
- }
-
- // -----------------------------------------------------------------------------
-
- class Convert : public CppUnit::TestFixture
- {
- rtl::OUString m_aStr;
- public:
- /*
- rtl::OString toUTF8(rtl::OUString const& _suStr)
- {
- rtl::OString sStrAsUTF8 = rtl::OUStringToOString(_suStr, RTL_TEXTENCODING_UTF8);
- t_print("%s\n", escapeString(sStrAsUTF8).getStr());
- return sStrAsUTF8;
- }
- */
- rtl::OUString fromUTF8(rtl::OString const& _suStr)
- {
- rtl::OUString suStr = rtl::OStringToOUString(_suStr, RTL_TEXTENCODING_UTF8);
- return suStr;
- }
-
- rtl::OString convertToOString(rtl::OUString const& _suStr)
- {
- return rtl::OUStringToOString(_suStr, osl_getThreadTextEncoding()/*RTL_TEXTENCODING_ASCII_US*/);
- }
-
- void showContent(rtl::OUString const& _suStr)
- {
- rtl::OString sStr = convertToOString(_suStr);
- t_print("%s\n", sStr.getStr());
- }
-
- void toUTF8_mech(rtl::OUString const& _suStr, rtl_UriEncodeMechanism _eMechanism)
- {
- rtl::OUString suStr;
- suStr = rtl::Uri::encode(_suStr, rtl_UriCharClassNone, _eMechanism, RTL_TEXTENCODING_UTF8);
- showContent(suStr);
- suStr = rtl::Uri::encode(_suStr, rtl_UriCharClassUric, _eMechanism, RTL_TEXTENCODING_UTF8);
- showContent(suStr);
- suStr = rtl::Uri::encode(_suStr, rtl_UriCharClassUricNoSlash, _eMechanism, RTL_TEXTENCODING_UTF8);
- showContent(suStr);
- suStr = rtl::Uri::encode(_suStr, rtl_UriCharClassRelSegment, _eMechanism, RTL_TEXTENCODING_UTF8);
- showContent(suStr);
- suStr = rtl::Uri::encode(_suStr, rtl_UriCharClassRegName, _eMechanism, RTL_TEXTENCODING_UTF8);
- showContent(suStr);
- suStr = rtl::Uri::encode(_suStr, rtl_UriCharClassUserinfo, _eMechanism, RTL_TEXTENCODING_UTF8);
- showContent(suStr);
- suStr = rtl::Uri::encode(_suStr, rtl_UriCharClassPchar, _eMechanism, RTL_TEXTENCODING_UTF8);
- showContent(suStr);
- suStr = rtl::Uri::encode(_suStr, rtl_UriCharClassUnoParamValue, _eMechanism, RTL_TEXTENCODING_UTF8);
- showContent(suStr);
- }
-
- void toUTF8(rtl::OUString const& _suStr)
- {
- t_print("rtl_UriEncodeIgnoreEscapes \n");
- toUTF8_mech(_suStr, rtl_UriEncodeIgnoreEscapes);
- t_print("\n");
- t_print("# rtl_UriEncodeKeepEscapes\n");
- toUTF8_mech(_suStr, rtl_UriEncodeKeepEscapes);
- t_print("\n");
- t_print("# rtl_UriEncodeCheckEscapes\n");
- toUTF8_mech(_suStr, rtl_UriEncodeCheckEscapes);
- t_print("\n");
- }
-
- void test_FromUTF8_001()
- {
- // string --> ustring
- rtl::OString sStrUTF8("h%C3%A4llo");
- rtl::OUString suStrUTF8 = rtl::OStringToOUString(sStrUTF8, RTL_TEXTENCODING_ASCII_US);
-
- // UTF8 --> real ustring
- rtl::OUString suStr_UriDecodeToIuri = rtl::Uri::decode(suStrUTF8, rtl_UriDecodeToIuri, RTL_TEXTENCODING_UTF8);
- showContent(suStr_UriDecodeToIuri);
-
- // string --> ustring
- rtl::OString sStr("h\xE4llo");
- rtl::OUString suString = rtl::OStringToOUString(sStr, RTL_TEXTENCODING_ISO_8859_15);
-
- CPPUNIT_ASSERT_MESSAGE("Strings must be equal", suString.equals(suStr_UriDecodeToIuri) == sal_True);
-
- // ustring --> ustring (UTF8)
- rtl::OUString suStr2 = rtl::Uri::encode(suStr_UriDecodeToIuri, rtl_UriCharClassUnoParamValue, rtl_UriEncodeKeepEscapes, RTL_TEXTENCODING_UTF8);
- showContent(suStr2);
-
- CPPUNIT_ASSERT_MESSAGE("Strings must be equal", suStr2.equals(suStrUTF8) == sal_True);
- // suStr should be equal to suStr2
- }
-
- // "%C3%84qypten";
- // testshl2 ../../../unxlngi4.pro/lib/libConvert.so "-onlyerrors"
- // # Type: 'Directory' file name '%E6%89%8B%E6%9C%BA%E5%8F%B7%E7%A0%81'
- // # Type: 'Directory' file name '%E6%9C%AA%E5%91%BD%E5%90%8Dzhgb18030'
- // # Type: 'Regular file' file name '%E5%B7%A5%E4%BD%9C'
- // # Type: 'Regular file' file name '%E4%BA%8C%E6%89%8B%E6%88%BF%E4%B9%B0%E5%8D%96%E5%90%88%E5%90%8C%E8%8D%89%E7%A8%BF.doc'
- // ls
- rtl::OString getFileTypeName(osl::FileStatus const& _aStatus)
- {
- rtl::OString sType;
- if (_aStatus.isValid(osl_FileStatus_Mask_Type))
- {
- osl::FileStatus::Type aType = _aStatus.getFileType();
- if (aType == osl::FileStatus::Directory)
- {
- sType = "Directory";
- }
- else if (aType == osl::FileStatus::Regular)
- {
- sType = "Regular file";
- }
- else if (aType == osl::FileStatus::Volume)
- {
- sType = "Volume";
- }
- else if (aType == osl::FileStatus::Fifo)
- {
- sType = "Fifo";
- }
- else if (aType == osl::FileStatus::Socket)
- {
- sType = "Socket";
- }
- else if (aType == osl::FileStatus::Link)
- {
- sType = "Link";
- }
- else if (aType == osl::FileStatus::Special)
- {
- sType = "Special";
- }
- else if (aType == osl::FileStatus::Unknown)
- {
- sType = "Unknown";
- }
- else
- {
- sType = "Not handled yet";
- }
- }
- else
- {
- sType = "ERROR: osl_FileStatus_Mask_Type not set for FileStatus!";
- }
- return sType;
- }
-
-
- void test_UTF8_files()
- {
-#ifdef UNX
- rtl::OUString suDirURL(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("file:///tmp/atestdir")));
-#else /* Windows */
- rtl::OUString suDirURL(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("file:///c:/temp/atestdir")));
-#endif
- osl::Directory aDir(suDirURL);
- aDir.open();
- if (aDir.isOpen())
- {
- osl::DirectoryItem aItem;
- osl::FileStatus aStatus(osl_FileStatus_Mask_FileName | osl_FileStatus_Mask_Attributes | osl_FileStatus_Mask_Type);
- while (aDir.getNextItem(aItem) == ::osl::FileBase::E_None)
- {
- if (osl::FileBase::E_None == aItem.getFileStatus(aStatus) &&
- aStatus.isValid(osl_FileStatus_Mask_FileName | osl_FileStatus_Mask_Attributes))
- {
- rtl::OString sType = getFileTypeName(aStatus);
-
- rtl::OUString suFilename = aStatus.getFileName();
- // rtl::OUString suFullFileURL;
-
- rtl::OUString suStrUTF8 = rtl::Uri::encode(suFilename, rtl_UriCharClassUnoParamValue, rtl_UriEncodeKeepEscapes, RTL_TEXTENCODING_UTF8);
- rtl::OString sStrUTF8 = convertToOString(suStrUTF8);
- t_print("Type: '%s' file name '%s'\n", sType.getStr(), sStrUTF8.getStr());
- }
- }
- aDir.close();
- }
- else
- {
- rtl::OString sStr;
- sStr = rtl::OUStringToOString(suDirURL, osl_getThreadTextEncoding());
- t_print("can't open dir:'%s'\n", sStr.getStr());
- }
- }
-
- void test_FromUTF8()
- {
- rtl::OString sStr("h%C3%A4llo");
- rtl::OUString suStr = rtl::OStringToOUString(sStr, osl_getThreadTextEncoding());
-
-// rtl_UriEncodeIgnoreEscapes,
-// rtl_UriEncodeKeepEscapes,
-// rtl_UriEncodeCheckEscapes,
-// rtl::OUString suStr2 = rtl::Uri::encode(suStr, rtl_UriCharClassRegName, rtl_UriEncodeCheckEscapes, RTL_TEXTENCODING_UTF8);
- rtl::OUString suStr_UriDecodeNone = rtl::Uri::decode(suStr, rtl_UriDecodeNone, RTL_TEXTENCODING_UTF8);
- showContent(suStr_UriDecodeNone);
- toUTF8(suStr_UriDecodeNone);
-
- rtl::OUString suStr_UriDecodeToIuri = rtl::Uri::decode(suStr, rtl_UriDecodeToIuri, RTL_TEXTENCODING_UTF8);
- showContent(suStr_UriDecodeToIuri);
- toUTF8(suStr_UriDecodeToIuri);
-
- rtl::OUString suStr_UriDecodeWithCharset = rtl::Uri::decode(suStr, rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8);
- showContent(suStr_UriDecodeWithCharset);
- toUTF8(suStr_UriDecodeWithCharset);
- }
-
- CPPUNIT_TEST_SUITE( Convert );
- CPPUNIT_TEST( test_FromUTF8_001 );
-// CPPUNIT_TEST( test_UTF8_files );
-// CPPUNIT_TEST( test_FromUTF8 );
- CPPUNIT_TEST_SUITE_END( );
- };
-
-}
-
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( Stringtest::Convert, "Stringtest" );
-
-// LLA: doku anpassen!!!
-
-NOADDITIONAL;
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/uri/rtl_testuri.cxx b/sal/qa/rtl/uri/rtl_testuri.cxx
deleted file mode 100644
index fe8ed6c41..000000000
--- a/sal/qa/rtl/uri/rtl_testuri.cxx
+++ /dev/null
@@ -1,548 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include "rtl/strbuf.hxx"
-#include "rtl/textenc.h"
-#include "rtl/uri.h"
-#include "rtl/uri.hxx"
-#include "rtl/ustrbuf.hxx"
-#include "rtl/ustring.h"
-#include "rtl/ustring.hxx"
-
-#include "testshl/simpleheader.hxx"
-
-#include <cstddef>
-#include <stdio.h>
-
-namespace {
-
-struct Test: public CppUnit::TestFixture {
- void test_Uri();
-
- CPPUNIT_TEST_SUITE(Test);
- CPPUNIT_TEST(test_Uri);
- CPPUNIT_TEST_SUITE_END();
-};
-
-void Test::test_Uri() {
- rtl_UriCharClass const eFirstCharClass = rtl_UriCharClassNone;
- rtl_UriCharClass const eLastCharClass = rtl_UriCharClassUnoParamValue;
-
- rtl::OUStringBuffer aBuffer;
- rtl::OUString aText1;
- rtl::OUString aText2;
-
- // Check that all characters map back to themselves when encoded/decoded:
-
- aText1 = rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "\0x00\0x01\0x02\0x03\0x04\0x05\0x06\0x07"
- "\0x08\0x09\0x0A\0x0B\0x0C\0x0D\0x0E\0x0F"
- "\0x10\0x11\0x12\0x13\0x14\0x15\0x16\0x17"
- "\0x18\0x19\0x1A\0x1B\0x1C\0x1D\0x1E\0x1F"
- "\0x20\0x21\0x22\0x23\0x24\0x25\0x26\0x27"
- "\0x28\0x29\0x2A\0x2B\0x2C\0x2D\0x2E\0x2F"
- "\0x30\0x31\0x32\0x33\0x34\0x35\0x36\0x37"
- "\0x38\0x39\0x3A\0x3B\0x3C\0x3D\0x3E\0x3F"
- "\0x40\0x41\0x42\0x43\0x44\0x45\0x46\0x47"
- "\0x48\0x49\0x4A\0x4B\0x4C\0x4D\0x4E\0x4F"
- "\0x50\0x51\0x52\0x53\0x54\0x55\0x56\0x57"
- "\0x58\0x59\0x5A\0x5B\0x5C\0x5D\0x5E\0x5F"
- "\0x60\0x61\0x62\0x63\0x64\0x65\0x66\0x67"
- "\0x68\0x69\0x6A\0x6B\0x6C\0x6D\0x6E\0x6F"
- "\0x70\0x71\0x72\0x73\0x74\0x75\0x76\0x77"
- "\0x78\0x79\0x7A\0x7B\0x7C\0x7D\0x7E\0x7F"));
- aText2 = aText1;
- {for (rtl_UriCharClass eCharClass = eFirstCharClass;
- eCharClass <= eLastCharClass;
- eCharClass = static_cast< rtl_UriCharClass >(eCharClass + 1))
- {
- CPPUNIT_ASSERT_MESSAGE(
- "failure 1",
- (rtl::Uri::decode(
- rtl::Uri::encode(
- aText1, eCharClass, rtl_UriEncodeKeepEscapes,
- RTL_TEXTENCODING_ISO_8859_1),
- rtl_UriDecodeWithCharset, RTL_TEXTENCODING_ASCII_US)
- == aText2));
- CPPUNIT_ASSERT_MESSAGE(
- "failure 2",
- (rtl::Uri::decode(
- rtl::Uri::encode(
- aText1, eCharClass, rtl_UriEncodeCheckEscapes,
- RTL_TEXTENCODING_ISO_8859_1),
- rtl_UriDecodeWithCharset, RTL_TEXTENCODING_ASCII_US)
- == aText2));
- CPPUNIT_ASSERT_MESSAGE(
- "failure 3",
- (rtl::Uri::decode(
- rtl::Uri::encode(
- aText1, eCharClass, rtl_UriEncodeKeepEscapes,
- RTL_TEXTENCODING_ISO_8859_1),
- rtl_UriDecodeWithCharset, RTL_TEXTENCODING_ISO_8859_1)
- == aText2));
- CPPUNIT_ASSERT_MESSAGE(
- "failure 4",
- (rtl::Uri::decode(
- rtl::Uri::encode(
- aText1, eCharClass, rtl_UriEncodeCheckEscapes,
- RTL_TEXTENCODING_ISO_8859_1),
- rtl_UriDecodeWithCharset, RTL_TEXTENCODING_ISO_8859_1)
- == aText2));
- CPPUNIT_ASSERT_MESSAGE(
- "failure 5",
- (rtl::Uri::decode(
- rtl::Uri::encode(
- aText1, eCharClass, rtl_UriEncodeKeepEscapes,
- RTL_TEXTENCODING_ISO_8859_1),
- rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8)
- == aText2));
- CPPUNIT_ASSERT_MESSAGE(
- "failure 6",
- (rtl::Uri::decode(
- rtl::Uri::encode(
- aText1, eCharClass, rtl_UriEncodeCheckEscapes,
- RTL_TEXTENCODING_ISO_8859_1),
- rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8)
- == aText2));
- }}
-
- aText1 = rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "\0x00\0x01\0x02\0x03\0x04\0x05\0x06\0x07"
- "\0x08\0x09\0x0A\0x0B\0x0C\0x0D\0x0E\0x0F"
- "\0x10\0x11\0x12\0x13\0x14\0x15\0x16\0x17"
- "\0x18\0x19\0x1A\0x1B\0x1C\0x1D\0x1E\0x1F"
- "\0x20\0x21\0x22\0x23\0x24\0x25\0x26\0x27"
- "\0x28\0x29\0x2A\0x2B\0x2C\0x2D\0x2E\0x2F"
- "\0x30\0x31\0x32\0x33\0x34\0x35\0x36\0x37"
- "\0x38\0x39\0x3A\0x3B\0x3C\0x3D\0x3E\0x3F"
- "\0x40\0x41\0x42\0x43\0x44\0x45\0x46\0x47"
- "\0x48\0x49\0x4A\0x4B\0x4C\0x4D\0x4E\0x4F"
- "\0x50\0x51\0x52\0x53\0x54\0x55\0x56\0x57"
- "\0x58\0x59\0x5A\0x5B\0x5C\0x5D\0x5E\0x5F"
- "\0x60\0x61\0x62\0x63\0x64\0x65\0x66\0x67"
- "\0x68\0x69\0x6A\0x6B\0x6C\0x6D\0x6E\0x6F"
- "\0x70\0x71\0x72\0x73\0x74\0x75\0x76\0x77"
- "\0x78\0x79\0x7A\0x7B\0x7C\0x7D\0x7E\0x7F"
- "\0x80\0x81\0x82\0x83\0x84\0x85\0x86\0x87"
- "\0x88\0x89\0x8A\0x8B\0x8C\0x8D\0x8E\0x8F"
- "\0x90\0x91\0x92\0x93\0x94\0x95\0x96\0x97"
- "\0x98\0x99\0x9A\0x9B\0x9C\0x9D\0x9E\0x9F"
- "\0xA0\0xA1\0xA2\0xA3\0xA4\0xA5\0xA6\0xA7"
- "\0xA8\0xA9\0xAA\0xAB\0xAC\0xAD\0xAE\0xAF"
- "\0xB0\0xB1\0xB2\0xB3\0xB4\0xB5\0xB6\0xB7"
- "\0xB8\0xB9\0xBA\0xBB\0xBC\0xBD\0xBE\0xBF"
- "\0xC0\0xC1\0xC2\0xC3\0xC4\0xC5\0xC6\0xC7"
- "\0xC8\0xC9\0xCA\0xCB\0xCC\0xCD\0xCE\0xCF"
- "\0xD0\0xD1\0xD2\0xD3\0xD4\0xD5\0xD6\0xD7"
- "\0xD8\0xD9\0xDA\0xDB\0xDC\0xDD\0xDE\0xDF"
- "\0xE0\0xE1\0xE2\0xE3\0xE4\0xE5\0xE6\0xE7"
- "\0xE8\0xE9\0xEA\0xEB\0xEC\0xED\0xEE\0xEF"
- "\0xF0\0xF1\0xF2\0xF3\0xF4\0xF5\0xF6\0xF7"
- "\0xF8\0xF9\0xFA\0xFB\0xFC\0xFD\0xFE\0xFF"));
- aText2 = aText1;
- {for (rtl_UriCharClass eCharClass = eFirstCharClass;
- eCharClass <= eLastCharClass;
- eCharClass = static_cast< rtl_UriCharClass >(eCharClass + 1))
- {
- CPPUNIT_ASSERT_MESSAGE(
- "failure 7",
- (rtl::Uri::decode(
- rtl::Uri::encode(
- aText1, eCharClass, rtl_UriEncodeKeepEscapes,
- RTL_TEXTENCODING_ISO_8859_1),
- rtl_UriDecodeWithCharset, RTL_TEXTENCODING_ISO_8859_1)
- == aText2));
- CPPUNIT_ASSERT_MESSAGE(
- "failure 8",
- (rtl::Uri::decode(
- rtl::Uri::encode(
- aText1, eCharClass, rtl_UriEncodeCheckEscapes,
- RTL_TEXTENCODING_ISO_8859_1),
- rtl_UriDecodeWithCharset, RTL_TEXTENCODING_ISO_8859_1)
- == aText2));
- CPPUNIT_ASSERT_MESSAGE(
- "failure 9",
- (rtl::Uri::decode(
- rtl::Uri::encode(
- aText1, eCharClass, rtl_UriEncodeKeepEscapes,
- RTL_TEXTENCODING_UTF8),
- rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8)
- == aText2));
- CPPUNIT_ASSERT_MESSAGE(
- "failure 10",
- (rtl::Uri::decode(
- rtl::Uri::encode(
- aText1, eCharClass, rtl_UriEncodeCheckEscapes,
- RTL_TEXTENCODING_UTF8),
- rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8)
- == aText2));
- }}
-
- // Check surrogate handling:
-
- aBuffer.append(static_cast< sal_Unicode >(0xD800)); // %ED%A0%80
- aBuffer.append(static_cast< sal_Unicode >(0xD800)); // %F0%90%8F%BF
- aBuffer.append(static_cast< sal_Unicode >(0xDFFF));
- aBuffer.append(static_cast< sal_Unicode >(0xDFFF)); // %ED%BF%BF
- aBuffer.append(static_cast< sal_Unicode >('A')); // A
- aText1 = aBuffer.makeStringAndClear();
- aText2 = rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "%ED%A0%80" "%F0%90%8F%BF" "%ED%BF%BF" "A"));
- CPPUNIT_ASSERT_MESSAGE(
- "failure 11",
- (rtl::Uri::encode(
- aText1, rtl_UriCharClassUric, rtl_UriEncodeIgnoreEscapes,
- RTL_TEXTENCODING_UTF8)
- == aText2));
- CPPUNIT_ASSERT_MESSAGE(
- "failure 12",
- (rtl::Uri::encode(
- aText1, rtl_UriCharClassUric, rtl_UriEncodeKeepEscapes,
- RTL_TEXTENCODING_UTF8)
- == aText2));
- CPPUNIT_ASSERT_MESSAGE(
- "failure 13",
- (rtl::Uri::encode(
- aText1, rtl_UriCharClassUric, rtl_UriEncodeCheckEscapes,
- RTL_TEXTENCODING_UTF8)
- == aText2));
-
- aText1 = rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "%ed%a0%80" "%f0%90%8f%bf" "%ed%bf%bf" "A"));
- aBuffer.appendAscii(RTL_CONSTASCII_STRINGPARAM("%ED%A0%80"));
- aBuffer.append(static_cast< sal_Unicode >(0xD800));
- aBuffer.append(static_cast< sal_Unicode >(0xDFFF));
- aBuffer.appendAscii(RTL_CONSTASCII_STRINGPARAM("%ED%BF%BF"));
- aBuffer.append(static_cast< sal_Unicode >('A'));
- aText2 = aBuffer.makeStringAndClear();
- CPPUNIT_ASSERT_MESSAGE(
- "failure 14",
- (rtl::Uri::decode(aText1, rtl_UriDecodeToIuri, RTL_TEXTENCODING_UTF8)
- == aText2));
- CPPUNIT_ASSERT_MESSAGE(
- "failure 15",
- (rtl::Uri::decode(
- aText1, rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8)
- == aText2));
-
- // Check UTF-8 handling:
-
- aText1 = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%E0%83%BF"));
- // \U+00FF encoded with three instead of two bytes
- aText2 = aText1;
- CPPUNIT_ASSERT_MESSAGE(
- "failure 16",
- (rtl::Uri::encode(
- aText1, rtl_UriCharClassUric, rtl_UriEncodeCheckEscapes,
- RTL_TEXTENCODING_UTF8)
- == aText2));
-
- aText1 = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%EF%BF%BF"));
- // \U+FFFF is no legal character
- aText2 = aText1;
- CPPUNIT_ASSERT_MESSAGE(
- "failure 17",
- (rtl::Uri::encode(
- aText1, rtl_UriCharClassUric, rtl_UriEncodeCheckEscapes,
- RTL_TEXTENCODING_UTF8)
- == aText2));
-
- // Check IURI handling:
-
- aText1 = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%30%C3%BF"));
- aBuffer.appendAscii(RTL_CONSTASCII_STRINGPARAM("%30"));
- aBuffer.append(static_cast< sal_Unicode >(0x00FF));
- aText2 = aBuffer.makeStringAndClear();
- CPPUNIT_ASSERT_MESSAGE(
- "failure 18",
- (rtl::Uri::decode(aText1, rtl_UriDecodeToIuri, RTL_TEXTENCODING_UTF8)
- == aText2));
-
- // Check modified rtl_UriCharClassUnoParamValue (removed '[' and ']'):
-
- aText1 = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[]%5B%5D"));
- aText2 = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%5B%5D%5B%5D"));
- CPPUNIT_ASSERT_MESSAGE(
- "failure 19",
- (rtl::Uri::encode(
- aText1, rtl_UriCharClassUnoParamValue, rtl_UriEncodeCheckEscapes,
- RTL_TEXTENCODING_ASCII_US)
- == aText2));
-
- // Check Uri::convertRelToAbs:
-
- struct RelToAbsTest
- {
- char const * pBase;
- char const * pRel;
- char const * pAbs;
- };
- static RelToAbsTest const aRelToAbsTest[]
- = { // The following tests are taken from RFC 2396:
- { "http://a/b/c/d;p?q", "g:h", "g:h" },
- { "http://a/b/c/d;p?q", "g", "http://a/b/c/g" },
- { "http://a/b/c/d;p?q", "./g", "http://a/b/c/g" },
- { "http://a/b/c/d;p?q", "g/", "http://a/b/c/g/" },
- { "http://a/b/c/d;p?q", "/g", "http://a/g" },
- { "http://a/b/c/d;p?q", "//g", "http://g" },
- { "http://a/b/c/d;p?q", "?y", "http://a/b/c/?y" },
- { "http://a/b/c/d;p?q", "g?y", "http://a/b/c/g?y" },
- { "http://a/b/c/d;p?q", "#s", "http://a/b/c/d;p?q#s" },
- { "http://a/b/c/d;p?q", "g#s", "http://a/b/c/g#s" },
- { "http://a/b/c/d;p?q", "g?y#s", "http://a/b/c/g?y#s" },
- { "http://a/b/c/d;p?q", ";x", "http://a/b/c/;x" },
- { "http://a/b/c/d;p?q", "g;x", "http://a/b/c/g;x" },
- { "http://a/b/c/d;p?q", "g;x?y#s", "http://a/b/c/g;x?y#s" },
- { "http://a/b/c/d;p?q", ".", "http://a/b/c/" },
- { "http://a/b/c/d;p?q", "./", "http://a/b/c/" },
- { "http://a/b/c/d;p?q", "..", "http://a/b/" },
- { "http://a/b/c/d;p?q", "../", "http://a/b/" },
- { "http://a/b/c/d;p?q", "../g", "http://a/b/g" },
- { "http://a/b/c/d;p?q", "../..", "http://a/" },
- { "http://a/b/c/d;p?q", "../../", "http://a/" },
- { "http://a/b/c/d;p?q", "../../g", "http://a/g" },
- { "http://a/b/c/d;p?q", "", "http://a/b/c/d;p?q" },
- { "http://a/b/c/d;p?q", "../../../g", "http://a/../g" },
- { "http://a/b/c/d;p?q", "../../../../g", "http://a/../../g" },
- { "http://a/b/c/d;p?q", "/./g", "http://a/./g" },
- { "http://a/b/c/d;p?q", "/../g", "http://a/../g" },
- { "http://a/b/c/d;p?q", "g.", "http://a/b/c/g." },
- { "http://a/b/c/d;p?q", ".g", "http://a/b/c/.g" },
- { "http://a/b/c/d;p?q", "g..", "http://a/b/c/g.." },
- { "http://a/b/c/d;p?q", "..g", "http://a/b/c/..g" },
- { "http://a/b/c/d;p?q", "./../g", "http://a/b/g" },
- { "http://a/b/c/d;p?q", "./g/.", "http://a/b/c/g/" },
- { "http://a/b/c/d;p?q", "g/./h", "http://a/b/c/g/h" },
- { "http://a/b/c/d;p?q", "g/../h", "http://a/b/c/h" },
- { "http://a/b/c/d;p?q", "g;x=1/./y", "http://a/b/c/g;x=1/y" },
- { "http://a/b/c/d;p?q", "g;x=1/../y", "http://a/b/c/y" },
- { "http://a/b/c/d;p?q", "g?y/./x", "http://a/b/c/g?y/./x" },
- { "http://a/b/c/d;p?q", "g?y/../x", "http://a/b/c/g?y/../x" },
- { "http://a/b/c/d;p?q", "g#s/./x", "http://a/b/c/g#s/./x" },
- { "http://a/b/c/d;p?q", "g#s/../x", "http://a/b/c/g#s/../x" },
- { "http://a/b/c/d;p?q", "http:g", "http:g" },
- { "http!://a/b/c/d;p?q", "g:h", "g:h" },
- { "http!://a/b/c/d;p?q", "g", 0 },
- { "http:b/c/d;p?q", "g:h", "g:h" },
- { "http:b/c/d;p?q", "g", 0 },
- { "http://a/b/../", "../c", "http://a/b/../../c" },
- { "http://a/b/..", "../c", "http://a/c" },
- { "http://a/./b/", ".././.././../c", "http://a/./../../c" } };
- for (std::size_t i = 0; i < sizeof aRelToAbsTest / sizeof (RelToAbsTest); ++i)
- {
- rtl::OUString aAbs;
- bool bMalformed = false;
- try {
- aAbs = rtl::Uri::convertRelToAbs(
- rtl::OUString::createFromAscii(aRelToAbsTest[i].pBase),
- rtl::OUString::createFromAscii(aRelToAbsTest[i].pRel));
- } catch (const rtl::MalformedUriException &) {
- bMalformed = true;
- }
- if (bMalformed
- ? aRelToAbsTest[i].pAbs != 0
- : (aRelToAbsTest[i].pAbs == 0
- || !aAbs.equalsAscii(aRelToAbsTest[i].pAbs)))
- {
- printf(
- "FAILED convertRelToAbs(%s, %s) -> %s != %s\n",
- aRelToAbsTest[i].pBase, aRelToAbsTest[i].pRel,
- (bMalformed
- ? "<MALFORMED>"
- : rtl::OUStringToOString(
- aAbs, RTL_TEXTENCODING_UTF8).getStr()),
- (aRelToAbsTest[i].pAbs == 0
- ? "<MALFORMED>" : aRelToAbsTest[i].pAbs));
- CPPUNIT_ASSERT(false);
- }
- }
-
- // Check encode with unusual text encodings:
-
- {
- sal_Unicode const aText1U[] = { ' ', '!', 0x0401, 0x045F, 0 };
- aText1 = rtl::OUString(aText1U);
- aText2 = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%20!%A1%FF"));
- CPPUNIT_ASSERT_MESSAGE(
- "failure 20",
- (rtl::Uri::encode(
- aText1, rtl_UriCharClassUric, rtl_UriEncodeIgnoreEscapes,
- RTL_TEXTENCODING_ISO_8859_5)
- == aText2));
- CPPUNIT_ASSERT_MESSAGE(
- "failure 20a",
- (rtl::Uri::decode(
- aText2, rtl_UriDecodeWithCharset, RTL_TEXTENCODING_ISO_8859_5)
- == aText1));
- }
- {
- sal_Unicode const aText1U[] = { ' ', '!', 0x0401, 0x0700, 0x045F, 0 };
- aText1 = rtl::OUString(aText1U);
- sal_Unicode const aText2U[] = {
- '%', '2', '0', '!', '%', 'A', '1', 0x0700, '%', 'F', 'F', 0 };
- aText2 = rtl::OUString(aText2U);
- CPPUNIT_ASSERT_MESSAGE(
- "failure 21",
- (rtl::Uri::encode(
- aText1, rtl_UriCharClassUric, rtl_UriEncodeIgnoreEscapes,
- RTL_TEXTENCODING_ISO_8859_5)
- == aText2));
- CPPUNIT_ASSERT_MESSAGE(
- "failure 21a",
- (rtl::Uri::decode(
- aText2, rtl_UriDecodeWithCharset, RTL_TEXTENCODING_ISO_8859_5)
- == aText1));
- }
- {
- sal_Unicode const aText1U[] = { ' ', '!', 0x028A, 0xD849, 0xDD13, 0 };
- aText1 = rtl::OUString(aText1U);
- aText2 = rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("%20!%81%30%B1%33%95%39%C5%37"));
- CPPUNIT_ASSERT_MESSAGE(
- "failure 22",
- (rtl::Uri::encode(
- aText1, rtl_UriCharClassUric, rtl_UriEncodeIgnoreEscapes,
- RTL_TEXTENCODING_GB_18030)
- == aText2));
- CPPUNIT_ASSERT_MESSAGE(
- "failure 22a",
- (rtl::Uri::decode(
- aText2, rtl_UriDecodeWithCharset, RTL_TEXTENCODING_GB_18030)
- == aText1));
- }
-
- // Check strict mode:
-
- {
- sal_Unicode const aText1U[] = { ' ', '!', 0x0401, 0x0700, 0x045F, 0 };
- aText1 = rtl::OUString(aText1U);
- aText2 = rtl::OUString();
- CPPUNIT_ASSERT_MESSAGE(
- "failure 23",
- (rtl::Uri::encode(
- aText1, rtl_UriCharClassUric, rtl_UriEncodeStrict,
- RTL_TEXTENCODING_ISO_8859_5)
- == aText2));
- }
- {
- aText1 = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%20%C4%80%FF"));
- aText2 = rtl::OUString();
- CPPUNIT_ASSERT_MESSAGE(
- "failure 24",
- (rtl::Uri::decode(
- aText1, rtl_UriDecodeStrict, RTL_TEXTENCODING_UTF8)
- == aText2));
- }
- {
- aText1 = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%81 "));
- aText2 = rtl::OUString();
- CPPUNIT_ASSERT_MESSAGE(
- "failure 25",
- (rtl::Uri::decode(
- aText1, rtl_UriDecodeStrict, RTL_TEXTENCODING_GB_18030)
- == aText2));
- }
- {
- aText1 = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%81%20"));
- aText2 = rtl::OUString();
- CPPUNIT_ASSERT_MESSAGE(
- "failure 26",
- (rtl::Uri::decode(
- aText1, rtl_UriDecodeStrict, RTL_TEXTENCODING_GB_18030)
- == aText2));
- }
- {
- aText1 = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%81%30%B1%33"));
- sal_Unicode const aText2U[] = { 0x028A, 0 };
- aText2 = rtl::OUString(aText2U);
- CPPUNIT_ASSERT_MESSAGE(
- "failure 27",
- (rtl::Uri::decode(
- aText1, rtl_UriDecodeStrict, RTL_TEXTENCODING_GB_18030)
- == aText2));
- }
- {
- aText1 = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%810%B13"));
- sal_Unicode const aText2U[] = { 0x028A, 0 };
- aText2 = rtl::OUString(aText2U);
- CPPUNIT_ASSERT_MESSAGE(
- "failure 28",
- (rtl::Uri::decode(
- aText1, rtl_UriDecodeStrict, RTL_TEXTENCODING_GB_18030)
- == aText2));
- }
-
- // Check rtl_UriEncodeStrictKeepEscapes mode:
-
- {
- aText1 = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%%ea%c3%aa"));
- aText2 = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%25%EA%C3%AA"));
- CPPUNIT_ASSERT_MESSAGE(
- "failure 29",
- (rtl::Uri::encode(
- aText1, rtl_UriCharClassUric, rtl_UriEncodeStrictKeepEscapes,
- RTL_TEXTENCODING_UTF8)
- == aText2));
- }
- {
- sal_Unicode const aText1U[] = { 0x00EA, 0 };
- aText1 = rtl::OUString(aText1U);
- aText2 = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%C3%AA"));
- CPPUNIT_ASSERT_MESSAGE(
- "failure 30",
- (rtl::Uri::encode(
- aText1, rtl_UriCharClassUric, rtl_UriEncodeStrictKeepEscapes,
- RTL_TEXTENCODING_UTF8)
- == aText2));
- }
- {
- sal_Unicode const aText1U[] = { ' ', '!', 0x0401, 0x0700, 0x045F, 0 };
- aText1 = rtl::OUString(aText1U);
- aText2 = rtl::OUString();
- CPPUNIT_ASSERT_MESSAGE(
- "failure 23",
- (rtl::Uri::encode(
- aText1, rtl_UriCharClassUric, rtl_UriEncodeStrictKeepEscapes,
- RTL_TEXTENCODING_ISO_8859_5)
- == aText2));
- }
-}
-
-}
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(Test, "rtl_testuri");
-NOADDITIONAL;
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl/uuid/makefile.mk b/sal/qa/rtl/uuid/makefile.mk
deleted file mode 100644
index ff1dc961f..000000000
--- a/sal/qa/rtl/uuid/makefile.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-INCPRE+= $(PRJ)$/qa$/inc
-
-PRJNAME=sal
-TARGET=rtl_uuid
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-
-# BEGIN ----------------------------------------------------------------
-# auto generated Target:joblist by codegen.pl
-SHL1OBJS= \
- $(SLO)$/rtl_Uuid.obj
-
-SHL1TARGET= rtl_Uuid
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-# SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-DEF1NAME =$(SHL1TARGET)
-# DEF1EXPORTFILE= export.exp
-SHL1VERSIONMAP= $(PRJ)$/qa$/export.map
-# END ------------------------------------------------------------------
-#------------------------------- All object files -------------------------------
-# do this here, so we get right dependencies
-SLOFILES=$(SHL1OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/rtl/uuid/rtl_Uuid.cxx b/sal/qa/rtl/uuid/rtl_Uuid.cxx
deleted file mode 100644
index 26018ef88..000000000
--- a/sal/qa/rtl/uuid/rtl_Uuid.cxx
+++ /dev/null
@@ -1,231 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
- /*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <math.h>
-#include <stdio.h>
-
-#include <testshl/simpleheader.hxx>
-#include <rtl/uuid.h>
-#include <rtl/ustring.h>
-#include <rtl/ustring.hxx>
-
-#ifdef UNX
-#include <unistd.h>
-#include <time.h>
-#endif
-
-using ::rtl::OUString;
-using ::rtl::OUStringToOString;
-using ::rtl::OString;
-/** print a UNI_CODE String. And also print some comments of the string.
-*/
-inline void printUString( const ::rtl::OUString & str, const sal_Char * msg = "" )
-{
- t_print("#%s #printUString_u# ", msg );
- rtl::OString aString;
- aString = ::rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US );
- t_print("%s\n", (char *)aString.getStr( ) );
-}
-
-/************************************************************************
- * For diagnostics( from sal/test/testuuid.cxx )
- ************************************************************************/
-
-void printUuid( sal_uInt8 *pNode )
-{
- for( sal_Int32 i1 = 0 ; i1 < 4 ; i1++ )
- {
- for( sal_Int32 i2 = 0 ; i2 < 4 ; i2++ )
- {
- printf( "%02x" , pNode[i1*4 +i2] );
- }
- if( i1 == 3 )
- break;
- printf( "-" );
- }
-
- printf( "\n# " );
-}
-
-namespace rtl_Uuid
-{
-class createUuid : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
-#define TEST_UUID 20
- void createUuid_001()
- {
- sal_uInt8 aNode[TEST_UUID][16];
- sal_Int32 i,i2;
- for( i = 0 ; i < TEST_UUID ; i ++ )
- {
- rtl_createUuid( aNode[i], 0, sal_False );
- }
- sal_Bool bRes = sal_True;
- for( i = 0 ; i < TEST_UUID ; i ++ )
- {
- for( i2 = i+1 ; i2 < TEST_UUID ; i2 ++ )
- {
- if ( rtl_compareUuid( aNode[i] , aNode[i2] ) == 0 )
- {
- bRes = sal_False;
- break;
- }
- }
- if ( bRes == sal_False )
- break;
- }
- CPPUNIT_ASSERT_MESSAGE("createUuid: every uuid must be different.", bRes == sal_True );
- }
- /*
- void createUuid_002()
- {
- sal_uInt8 pNode[16];
- sal_uInt8 aNode[TEST_UUID][16];
- sal_Int32 i,i2;
- for( i = 0 ; i < TEST_UUID ; i ++ )
- {
- rtl_createUuid( aNode[i], pNode, sal_True );
- }
- sal_Bool bRes = sal_True;
- for( i = 0 ; i < TEST_UUID ; i ++ )
- {
- //printUuid( aNode[i] );
- for( i2 = i+1 ; i2 < TEST_UUID ; i2 ++ )
- {
- if ( rtl_compareUuid( aNode[i] , aNode[i2] ) == 0 )
- {
- bRes = sal_False;
- break;
- }
- }
- if ( bRes == sal_False )
- break;
- }
- CPPUNIT_ASSERT_MESSAGE("createUuid: every uuid must be different.", bRes == sal_True );
- }*/
-
- CPPUNIT_TEST_SUITE(createUuid);
- CPPUNIT_TEST(createUuid_001);
- //CPPUNIT_TEST(createUuid_002);
- CPPUNIT_TEST_SUITE_END();
-}; // class createUuid
-
-namespace ThreadHelper
-{
- void thread_sleep(sal_Int32 _nSec)
- {
-#ifdef WNT //Windows
- Sleep(_nSec * 10 );
-#endif
-#if ( defined UNX )
- sleep( _nSec );
-#endif
- }
-}
-
-class createNamedUuid : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void createNamedUuid_001()
- {
- sal_uInt8 NameSpace_DNS[16] = RTL_UUID_NAMESPACE_DNS;
- sal_uInt8 NameSpace_URL[16] = RTL_UUID_NAMESPACE_URL;
- sal_uInt8 pPriorCalculatedUUID[16] = {
- 0x52,0xc9,0x30,0xa5,
- 0xd1,0x61,0x3b,0x16,
- 0x98,0xc5,0xf8,0xd1,
- 0x10,0x10,0x6d,0x4d };
-
- sal_uInt8 pNamedUUID[16], pNamedUUID2[16];
-
- // Same name does generate the same uuid
- rtl_String *pName = 0;
- rtl_string_newFromStr( &pName , "this is a bla.blubs.DNS-Name" );
- rtl_createNamedUuid( pNamedUUID , NameSpace_DNS , pName );
- rtl_createNamedUuid( pNamedUUID2 , NameSpace_DNS , pName );
- CPPUNIT_ASSERT_MESSAGE( "Same name should generate the same uuid", ! memcmp( pNamedUUID , pNamedUUID2 , 16 ) && rtl_compareUuid( pNamedUUID , pNamedUUID2 ) == 0 );
- CPPUNIT_ASSERT_MESSAGE( "Same name should generate the same uuid", ! memcmp( pNamedUUID , pPriorCalculatedUUID , 16 ) );
-
- // Different names does not generate the same uuid
- rtl_string_newFromStr( &pName , "this is a bla.blubs.DNS-Namf" );
- rtl_createNamedUuid( pNamedUUID2 , NameSpace_DNS , pName );
- CPPUNIT_ASSERT_MESSAGE("Different names does not generate the same uuid.", memcmp( pNamedUUID , pNamedUUID2 , 16 ) );
-
- // the same name with different namespace uuid produces different uuids
- rtl_createNamedUuid( pNamedUUID , NameSpace_URL , pName );
- CPPUNIT_ASSERT_MESSAGE( " same name with different namespace uuid produces different uuids", memcmp( pNamedUUID , pNamedUUID2 , 16 ) && rtl_compareUuid( pNamedUUID , pNamedUUID2 ) != 0);
-
- //test compareUuid
- if ( rtl_compareUuid( pNamedUUID , pNamedUUID2 ) > 0 )
- { CPPUNIT_ASSERT_MESSAGE( " compare uuids", rtl_compareUuid( pNamedUUID2 , pNamedUUID ) < 0);
- }
- else
- CPPUNIT_ASSERT_MESSAGE( " compare uuids", rtl_compareUuid( pNamedUUID2 , pNamedUUID ) > 0);
-
- rtl_string_release( pName );
- }
-
- CPPUNIT_TEST_SUITE(createNamedUuid);
- CPPUNIT_TEST(createNamedUuid_001);
- CPPUNIT_TEST_SUITE_END();
-}; // class createNamedUuid
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_Uuid::createUuid, "rtl_Uuid");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_Uuid::createNamedUuid, "rtl_Uuid");
-} // namespace rtl_Uuid
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-NOADDITIONAL;
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl_strings/export.exp b/sal/qa/rtl_strings/export.exp
deleted file mode 100644
index a13529da5..000000000
--- a/sal/qa/rtl_strings/export.exp
+++ /dev/null
@@ -1 +0,0 @@
-registerAllTestFunction
diff --git a/sal/qa/rtl_strings/makefile.mk b/sal/qa/rtl_strings/makefile.mk
deleted file mode 100644
index b319fbf68..000000000
--- a/sal/qa/rtl_strings/makefile.mk
+++ /dev/null
@@ -1,150 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME=sal
-TARGET=qa_rtl_strings
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-# BEGIN ----------------------------------------------------------------
-# auto generated Target:FileBase by codegen.pl
-SHL1OBJS= \
- $(SLO)$/rtl_String_Utils.obj \
- $(SLO)$/rtl_OString.obj
-
-SHL1TARGET= rtl_OString
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-# SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-DEF1NAME =$(SHL1TARGET)
-# DEF1EXPORTFILE= export.exp
-SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
-
-# auto generated Target:FileBase
-# END ------------------------------------------------------------------
-
-# BEGIN ----------------------------------------------------------------
-# auto generated Target:FileBase by codegen.pl
-SHL2OBJS= \
- $(SLO)$/rtl_String_Utils.obj \
- $(SLO)$/rtl_OUString.obj
-
-SHL2TARGET= rtl_OUString
-SHL2STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL2IMPLIB= i$(SHL2TARGET)
-# SHL2DEF= $(MISC)$/$(SHL2TARGET).def
-
-DEF2NAME =$(SHL2TARGET)
-# DEF2EXPORTFILE= export.exp
-SHL2VERSIONMAP = $(PRJ)$/qa$/export.map
-
-# auto generated Target:FileBase
-# END ------------------------------------------------------------------
-
-# BEGIN ----------------------------------------------------------------
-# auto generated Target:FileBase by codegen.pl
-SHL3OBJS= \
- $(SLO)$/rtl_String_Utils.obj \
- $(SLO)$/rtl_OUStringBuffer.obj
-
-SHL3TARGET= rtl_OUStringBuffer
-SHL3STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL3IMPLIB= i$(SHL3TARGET)
-# SHL3DEF= $(MISC)$/$(SHL3TARGET).def
-
-DEF3NAME =$(SHL3TARGET)
-# DEF3EXPORTFILE= export.exp
-SHL3VERSIONMAP = $(PRJ)$/qa$/export.map
-
-# auto generated Target:FileBase
-# END ------------------------------------------------------------------
-
-# BEGIN ----------------------------------------------------------------
-SHL4OBJS= \
- $(SLO)$/rtl_old_teststrbuf.obj
-
-SHL4TARGET= rtl_old_teststrbuf
-SHL4STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL4IMPLIB= i$(SHL4TARGET)
-DEF4NAME =$(SHL4TARGET)
-SHL4VERSIONMAP = $(PRJ)$/qa$/export.map
-
-# END ------------------------------------------------------------------
-
-# BEGIN ----------------------------------------------------------------
-SHL5OBJS= \
- $(SLO)$/rtl_old_testowstring.obj
-
-SHL5TARGET= rtl_old_testowstring
-SHL5STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL5IMPLIB= i$(SHL5TARGET)
-DEF5NAME =$(SHL5TARGET)
-SHL5VERSIONMAP = $(PRJ)$/qa$/export.map
-
-# END ------------------------------------------------------------------
-
-# BEGIN ----------------------------------------------------------------
-SHL6OBJS= \
- $(SLO)$/rtl_old_testostring.obj
-
-SHL6TARGET= rtl_old_testostring
-SHL6STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL6IMPLIB= i$(SHL6TARGET)
-DEF6NAME =$(SHL6TARGET)
-SHL6VERSIONMAP = $(PRJ)$/qa$/export.map
-
-# END ------------------------------------------------------------------
-
-#------------------------------- All object files -------------------------------
-# do this here, so we get right dependencies
-SLOFILES=\
- $(SHL1OBJS) \
- $(SHL2OBJS) \
- $(SHL3OBJS) \
- $(SHL4OBJS) \
- $(SHL5OBJS) \
- $(SHL6OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/rtl_strings/readme.txt b/sal/qa/rtl_strings/readme.txt
deleted file mode 100644
index 388c98751..000000000
--- a/sal/qa/rtl_strings/readme.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-This is the old test implemantation of rtl::XString.
-If you want to write new or better tests:
-Identify the test function in the source and remark it.
-
-The best way to remark old tests, go to the end of the source code and remark
-only the test_rtl_<X>String_<function>(hRtlTestResult); so the test will not
-executed any longer.
-
-There are already some new tests for rtl::XString, take a look into the
-directory sal/qa/rtl/ostring or sal/qa/rtl/oustring, where are some
-replacements added.
-
-
-Any other Questions?
-
-Do not hesitate to contact me at 'lla<at>openoffice.org'.
-
-best regards,
-Lars
-
diff --git a/sal/qa/rtl_strings/rtl_OString.cxx b/sal/qa/rtl_strings/rtl_OString.cxx
deleted file mode 100644
index 7fdd1ef99..000000000
--- a/sal/qa/rtl_strings/rtl_OString.cxx
+++ /dev/null
@@ -1,3603 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-#include <string.h>
-
-#ifndef _SAL_TYPES_H_
- #include <sal/types.h>
-#endif
-
-#include <testshl/tresstatewrapper.hxx>
-
-#ifndef _RTL_STRING_HXX_
- #include <rtl/string.hxx>
-#endif
-
-#ifndef _RTL_STRING_CONST_H_
- #include <rtl_String_Const.h>
-#endif
-
-#ifndef _RTL_STRING_UTILS_HXX_
- #include <rtl_String_Utils.hxx>
-#endif
-#include <rtl/ustring.h>
-
-using ::rtl::OString;
-//------------------------------------------------------------------------
-// test classes
-//------------------------------------------------------------------------
-const int MAXBUFLENGTH = 255;
-//------------------------------------------------------------------------
-// helper functions
-//------------------------------------------------------------------------
-
-static void unused()
-{
- test_ini_uString();
- (void)inputChar;
- (void)input1StrDefault;
- (void)input1StrNormal;
- (void)input1StrLastDefault;
- (void)input1StrLastNormal;
- unused();
-}
-
-//------------------------------------------------------------------------
-// testing constructors
-//------------------------------------------------------------------------
-static sal_Bool test_rtl_OString_ctor_001( hTestResult hRtlTestResult )
-{
- ::rtl::OString aStr;
- rtl_String* pData = aStr.pData;
-
-
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- pData->length == 0 &&
- ! *pData->buffer,
- "New OString containing no characters",
- "ctor_001"
- )
- );
-}
-
-//------------------------------------------------------------------------
-
-static sal_Bool SAL_CALL test_rtl_OString_ctor_002(
- hTestResult hRtlTestResult )
-{
- ::rtl::OString aStr(kTestStr1);
- rtl_String* pData = aStr.pData;
-
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- pData->refCount == 1 &&
- pData->length == kTestStr1Len &&
- cmpstr( (const sal_Char*)pData->buffer, kTestStr1, kTestStr1Len ),
- "New OString from a character buffer array",
- "ctor_002"
- )
- );
-}
-//------------------------------------------------------------------------
-
-static sal_Bool SAL_CALL test_rtl_OString_ctor_003(
- hTestResult hRtlTestResult )
-{
- ::rtl::OString aStr(kTestStr2, kTestStr1Len);
- rtl_String* pData = aStr.pData;
-
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- pData->refCount == 1 &&
- pData->length == kTestStr1Len &&
- cmpstr( (const sal_Char*)pData->buffer, kTestStr2, kTestStr1Len ),
- "New OString from the first n chars of ascii string",
- "ctor_003"
- )
- );
-}
-
-//------------------------------------------------------------------------
-
-static sal_Bool SAL_CALL test_rtl_OString_ctor_004(
- hTestResult hRtlTestResult)
-{
- ::rtl::OString aStr1(kTestStr1);
- ::rtl::OString aStr2(aStr1);
- rtl_String* pData1 = aStr1.pData;
- rtl_String* pData2 = aStr2.pData;
-
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- pData1->refCount == pData2->refCount &&
- pData1->length == kTestStr1Len &&
- pData1->buffer == pData2->buffer,
- "New OString from an OString",
- "ctor_004"
- )
- );
-}
-//------------------------------------------------------------------------
-
-static sal_Bool test_rtl_OString_ctor_005( hTestResult hRtlTestResult )
-{
- rtl_String *aStr1 = NULL;
-
- rtl_string_newFromStr( &aStr1, kTestStr1 );
-
- if ( aStr1 != NULL )
- {
- ::rtl::OString aStr2(aStr1);
- rtl_String* pData2 = aStr2.pData;
-
- sal_Bool bOK = c_rtl_tres_state
- (
- hRtlTestResult,
- aStr1->refCount == pData2->refCount &&
- pData2->length == kTestStr1Len &&
- aStr1->buffer == pData2->buffer,
- "new OString from a RTL String",
- "ctor_005"
- );
-
- rtl_string_release( aStr1 );
- aStr1 = NULL;
- return ( bOK );
- }
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- sal_False,
- "copying an ascii string to a RTL String!",
- "ctor_005"
- )
- );
-}
-
-//------------------------------------------------------------------------
-
-static sal_Bool test_rtl_OString_ctor_006( hTestResult hRtlTestResult )
-{
-
- sal_Unicode aStr1[kTestStr1Len+1];
-
- if ( AStringToUStringNCopy( aStr1, kTestStr1, kTestStr1Len ) )
- {
- if ( AStringToUStringNCompare( aStr1, kTestStr1, kTestStr1Len ) == 0 )
- {
- // const sal_Char *kTCMessage[2] = { "", "array." };
-
- ::rtl::OString aStr2
- (
- aStr1,
- kTestStr1Len,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOUStringToOString
- );
-
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- aStr2 == kTestStr1,
- "new OString from a unicode character buffer",
- "ctor_006"
- )
- );
- } /// end if AStringToUStringNCompare
-
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- sal_False,
- "compare ascii string with unicode string!",
- "ctor_006"
- )
- );
- } /// end if AStringToUStringNCopy
-
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- sal_False,
- "copy ascii string to unicode string!",
- "ctor_006"
- )
- );
-}
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_ctors(
- hTestResult hRtlTestResult )
-{
-
- c_rtl_tres_state_start(hRtlTestResult, "ctor");
- sal_Bool bTSState = test_rtl_OString_ctor_001( hRtlTestResult );
-
- bTSState &= test_rtl_OString_ctor_002( hRtlTestResult);
- bTSState &= test_rtl_OString_ctor_003( hRtlTestResult);
- bTSState &= test_rtl_OString_ctor_004( hRtlTestResult);
- bTSState &= test_rtl_OString_ctor_005( hRtlTestResult);
- bTSState &= test_rtl_OString_ctor_006( hRtlTestResult);
-
- c_rtl_tres_state_end(hRtlTestResult, "ctor");
-
-// return( bTSState );
-}
-
-
-
-//------------------------------------------------------------------------
-// testing the method getLength
-//------------------------------------------------------------------------
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_getLength(
- hTestResult hRtlTestResult)
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- c_rtl_tres_state_start(hRtlTestResult, "getLength");
-
-typedef struct TestCase
-{
- sal_Char* comments;
- sal_Int32 expVal;
- OString* input;
- ~TestCase() { delete input;}
-} TestCase;
-
-TestCase arrTestCase[]={
-
- {"length of ascii string", kTestStr1Len, new OString(kTestStr1)},
- {"length of ascci string of size 1", 1, new OString("1")},
- {"length of empty string (default constructor)", 0, new OString()},
- {"length of empty string (empty ascii string arg)",0,new OString("")},
- {"length of empty string (string arg = '\\0')",0,new OString("\0")}
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Int32 length = arrTestCase[i].input->getLength();
- sal_Bool lastRes = (length == arrTestCase[i].expVal);
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "getLength", i )
-
- );
- res &= lastRes;
- }
- c_rtl_tres_state_end(hRtlTestResult, "getLength");
-// return ( res );
-}
-
-
-
-//------------------------------------------------------------------------
-// testing the method equals( const OString & aStr )
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_equals(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- c_rtl_tres_state_start(hRtlTestResult, "equals");
-
- typedef struct TestCase
-{
- sal_Char* comments;
- sal_Bool expVal;
- OString* input1;
- OString* input2;
- ~TestCase() { delete input1;delete input2;}
-} TestCase;
-
-TestCase arrTestCase[]={
-
- {"same size", sal_True, new OString(kTestStr1),new OString(kTestStr1)},
- {"different size", sal_False, new OString(kTestStr1),
- new OString(kTestStr2)},
- {"same size, no case match", sal_False, new OString(kTestStr1),
- new OString(kTestStr3)},
- {"two empty strings(def. constructor)", sal_True, new OString(),
- new OString()},
- {"empty(def.constructor) and non empty", sal_False, new OString(),
- new OString(kTestStr2)},
- {"non empty and empty(def. constructor)", sal_False,
- new OString(kTestStr1),new OString()},
- {"two empty strings(string arg = '\\0')", sal_True,
- new OString(""),new OString("")},
- {"empty(string arg = '\\0') and non empty", sal_False,
- new OString(""),new OString(kTestStr2)},
- {"non empty and empty(string arg = '\\0')", sal_False,
- new OString(kTestStr1),new OString("")}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Bool lastRes =
- ( arrTestCase[i].input1->equals(*(arrTestCase[i].input2)) ==
- arrTestCase[i].expVal );
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "equals", i )
- );
-
- res &= lastRes;
- }
- c_rtl_tres_state_end(hRtlTestResult, "equals");
-// return (res);
-}
-
-//------------------------------------------------------------------------
-// testing the method equalsIgnoreAsciiCase( const OString & aStr )
-//------------------------------------------------------------------------
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_equalsIgnoreAsciiCase(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- c_rtl_tres_state_start(hRtlTestResult, "equalsIgnoreAsciiCase");
- typedef struct TestCase
-{
- sal_Char* comments;
- sal_Bool expVal;
- OString* input1;
- OString* input2;
- ~TestCase() { delete input1;delete input2;}
-} TestCase;
-
-TestCase arrTestCase[]={
- {"same strings but different cases",sal_True,new OString(kTestStr4),
- new OString(kTestStr5)},
- {"same strings",sal_True,new OString(kTestStr4),
- new OString(kTestStr4)},
- {"with equal beginning",sal_False,new OString(kTestStr2),
- new OString(kTestStr4)},
- {"empty(def.constructor) and non empty",sal_False,new OString(),
- new OString(kTestStr5)},
- {"non empty and empty(def.constructor)",sal_False,
- new OString(kTestStr4), new OString()},
- {"two empty strings(def.constructor)",sal_True,new OString(),
- new OString()},
- {"different strings with equal length",sal_False,
- new OString(kTestStr10), new OString(kTestStr11)}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Bool lastRes =
- (arrTestCase[i].input1->equalsIgnoreAsciiCase(*arrTestCase[i].input2)
- == arrTestCase[i].expVal);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "equalsIgnoreAsciiCase", i )
- );
-
- res &= lastRes;
- }
- c_rtl_tres_state_end(hRtlTestResult, "equalsIgnoreAsciiCase");
-
-// return (res);
-}
-
-static sal_Bool SAL_CALL test_rtl_OString_compareTo_001(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- typedef struct TestCase
-{
- sal_Char* comments;
- sal_Int32 expVal;
- OString* input1;
- OString* input2;
- ~TestCase() { delete input1;delete input2;}
-} TestCase;
-
-TestCase arrTestCase[]={
-
- {"simple compare, str1 to str5",-1,new OString(kTestStr1),
- new OString(kTestStr5)},
- {"simple compare, str2 to str5",-1,new OString(kTestStr2),
- new OString(kTestStr5)},
- {"simple compare, str1 to str9",-1,new OString(kTestStr1),
- new OString(kTestStr9)},
- {"simple compare, str1 to str2",-1,new OString(kTestStr1),
- new OString(kTestStr2)},
- {"simple compare, str4 to str5",-1,new OString(kTestStr4),
- new OString(kTestStr5)},
- {"simple compare, str1 to str3",-1,new OString(kTestStr1),
- new OString(kTestStr3)},
- {"simple compare, str5 to str1",+1,new OString(kTestStr5),
- new OString(kTestStr1)},
- {"simple compare, str2 to str1",+1,new OString(kTestStr2),
- new OString(kTestStr1)},
- {"simple compare, str9 to str5",+1,new OString(kTestStr9),
- new OString(kTestStr5)},
- {"simple compare, str5 to str4",+1,new OString(kTestStr5),
- new OString(kTestStr4)},
- {"simple compare, str1 to str1",0,new OString(kTestStr1),
- new OString(kTestStr1)},
- {"simple compare, nullString to nullString",0,new OString(),
- new OString()},
- {"simple compare, nullString to str2",-1,new OString(),
- new OString(kTestStr2)},
- {"simple compare, str1 to nullString",+1,new OString(kTestStr1),
- new OString()}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Int32 cmpRes =
- arrTestCase[i].input1->compareTo(*arrTestCase[i].input2);
- cmpRes = ( cmpRes == 0 ) ? 0 : ( cmpRes > 0 ) ? +1 : -1 ;
- sal_Bool lastRes = ( cmpRes == arrTestCase[i].expVal);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "compareTo(const OString&)", i )
- );
-
- res &= lastRes;
- }
-
- return (res);
-}
-
-
-//------------------------------------------------------------------------
-// testing the method compareTo( const OString & rObj, sal_Int32 length )
-//------------------------------------------------------------------------
-static sal_Bool SAL_CALL test_rtl_OString_compareTo_002(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Int32 expVal;
- sal_Int32 maxLength;
- OString* input1;
- OString* input2;
- ~TestCase() { delete input1;delete input2;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"compare with maxlength, str1 to str9, 16",-1,16,
- new OString(kTestStr1), new OString(kTestStr9)},
- {"compare with maxlength, str2 to str9, 32",-1,32,
- new OString(kTestStr2), new OString(kTestStr9)},
- {"compare with maxlength, str9 to str4, 16",+1,16,
- new OString(kTestStr9), new OString(kTestStr4)},
- {"compare with maxlength, str9 to str22, 32",+1,32,
- new OString(kTestStr9), new OString(kTestStr22)},
- {"compare with maxlength, str9 to str5, 16",0,16,
- new OString(kTestStr9), new OString(kTestStr5)},
- {"compare with maxlength, str9 to str9, 32",0,32,
- new OString(kTestStr9), new OString(kTestStr9)},
- {"compare with maxlength, str1 to str2, 32",-1,32,
- new OString(kTestStr1), new OString(kTestStr2)},
- {"compare with maxlength, str1 to str2, 32",-1,32,
- new OString(kTestStr1), new OString(kTestStr2)}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Int32 cmpRes =
- arrTestCase[i].input1->compareTo(*arrTestCase[i].input2,
- arrTestCase[i].maxLength);
- cmpRes = (cmpRes == 0) ? 0 : (cmpRes > 0) ? +1 : -1 ;
- sal_Bool lastRes = (cmpRes == arrTestCase[i].expVal);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "compareTo(const OString&, sal_Int32)", i )
- );
-
- res &= lastRes;
- }
-
- return (res);
-}
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_compareTo(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start(hRtlTestResult, "compareTo");
- sal_Bool res = test_rtl_OString_compareTo_001(hRtlTestResult);
- res &= test_rtl_OString_compareTo_002(hRtlTestResult);
- c_rtl_tres_state_end(hRtlTestResult, "compareTo");
-// return (res);
-}
-
-//------------------------------------------------------------------------
-// testing the operator == ( const OString& rStr1, const OString& rStr2 )
-// testing the operator == ( const OString& rStr1, const sal_Char *rStr2 )
-// testing the operator == ( const sal_Char *rStr1, const OString& rStr2 )
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_op_cmp(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start(hRtlTestResult, "op_cmp");
- const sal_Int16 NCASES = 7;
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
- const sal_Char *arrOStr[NCASES][2] =
- {
- {kTestStr1, kTestStr1},
- {kTestStr1, kTestStr3},
- {kTestStr1, kTestStr2},
- {0, 0},
- {0, kTestStr2},
- {kTestStr1, 0},
- {"", ""}
- };
-
- sal_Bool arrExpVal[NCASES] =
- {
- sal_True,
- sal_False,
- sal_False,
- sal_True,
- sal_False,
- sal_False,
- sal_True
- };
-
- sal_Char *arrComments[NCASES] =
- {
- "'Sun Microsystems'=='Sun Microsystems'",
- "!('Sun Microsystems'=='Sun microsystems')",
- "!('Sun Microsystems'=='Sun Microsystems Java Technology')",
- "two empty strings(def.constructor)",
- "!(empty string=='Sun Microsystems Java Technology')",
- "!('Sun Microsystems Java Technology'==empty string)",
- "''==''"
- };
-
- sal_Bool res = sal_True;
- sal_Int32 i;
-
- for(i = 0; i < NCASES; i++)
- {
- OString *str1, *str2;
- str1 = (arrOStr[i][0]) ? new OString(arrOStr[i][0]) : new OString() ;
- str2 = (arrOStr[i][1]) ? new OString(arrOStr[i][1]) : new OString() ;
-
- sal_Bool cmpRes = (*str1 == *str2);
- sal_Bool lastRes = (cmpRes == arrExpVal[i]);
- res &= lastRes;
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrComments[i],
- createName( pMeth, "operator ==(OString&, OString&)", i )
- );
-
- cmpRes = (*str1 == arrOStr[i][1]);
- lastRes = (cmpRes == arrExpVal[i]);
- res &= lastRes;
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrComments[i],
- createName( pMeth, "operator ==(OString&, sal_Char *)", i )
- );
-
- cmpRes = (arrOStr[i][0] == *str2);
- lastRes = (cmpRes == arrExpVal[i]);
- res &= lastRes;
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrComments[i],
- createName( pMeth, "operator ==(sal_Char *, OString&)", i )
- );
-
- delete str2;
- delete str1;
- }
-
- c_rtl_tres_state_end(hRtlTestResult, "op_cmp");
-// return ( res );
-}
-
-//------------------------------------------------------------------------
-// testing the operator != (const OString& rStr1, const OString& rStr2)
-// testing the operator != (const OString& rStr1, const sal_Char *rStr2)
-// testing the operator != (const sal_Char *rStr1, const OString& rStr2)
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_op_neq(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start(hRtlTestResult, "op_neq");
- const sal_Int16 NCASES = 6;
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- const sal_Char *arrOStr[NCASES][2] =
- {
- {kTestStr1, kTestStr3},
- {kTestStr1, kTestStr2},
- {kTestStr1, kTestStr1},
- {0, kTestStr2},
- {kTestStr1, 0},
- {0, 0}
- };
-
- sal_Bool arrExpVal[NCASES] =
- {
- sal_True,
- sal_True,
- sal_False,
- sal_True,
- sal_True,
- sal_False
- };
-
- sal_Char *arrComments[NCASES] =
- {
- "'Sun Microsystems'!='Sun microsystems'",
- "'Sun Microsystems'!='Sun Microsystems Java Technology'",
- "!('Sun Microsystems'!='Sun Microsystems')",
- "empty string!='Sun Microsystems Java Technology'",
- "'Sun Microsystems Java Technology'!=empty string", "!(''!='')"
- };
-
- sal_Bool res = sal_True;
- sal_Int32 i;
-
- for(i = 0; i < NCASES; i++)
- {
- OString *str1, *str2;
- str1 = (arrOStr[i][0]) ? new OString(arrOStr[i][0]) : new OString() ;
- str2 = (arrOStr[i][1]) ? new OString(arrOStr[i][1]) : new OString() ;
-
- sal_Bool cmpRes = (*str1 != *str2);
- sal_Bool lastRes = (cmpRes == arrExpVal[i]);
- res &= lastRes;
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrComments[i],
- createName( pMeth, "operator !=(OString&, OString&)", i )
- );
-
- cmpRes = (*str1 != arrOStr[i][1]);
- lastRes = (cmpRes == arrExpVal[i]);
- res &= lastRes;
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrComments[i],
- createName( pMeth, "operator !=(OString&, sal_Char *)", i )
- );
-
- cmpRes = (arrOStr[i][0] != *str2);
- lastRes = (cmpRes == arrExpVal[i]);
- res &= lastRes;
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrComments[i],
- createName( pMeth, "operator !=(sal_Char *, OString&)", i )
- );
-
- delete str2;
- delete str1;
- }
-
- c_rtl_tres_state_end(hRtlTestResult, "op_neq");
-// return ( res );
-}
-
-
-//------------------------------------------------------------------------
-// testing the operator > (const OString& rStr1, const OString& rStr2)
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_op_g(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- c_rtl_tres_state_start(hRtlTestResult, "op_g");
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Bool expVal;
- OString* input1;
- OString* input2;
- ~TestCase() { delete input1;delete input2;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- { "'Sun microsystems'>'Sun Microsystems'",sal_True,
- new OString(kTestStr3), new OString(kTestStr1)},
- {"!('Sun Microsystems'>'Sun microsystems')",sal_False,
- new OString(kTestStr1), new OString(kTestStr3)},
- {"'Sun Microsystems Java Technology'>'Sun Microsystems'",sal_True,
- new OString(kTestStr2), new OString(kTestStr1)},
- {"!('Sun Microsystems'>'Sun Microsystems Java Technology')",sal_False,
- new OString(kTestStr1), new OString(kTestStr2)},
- {"!('Sun Microsystems'>'Sun Microsystems'",sal_False,
- new OString(kTestStr1), new OString(kTestStr1)},
- {"'Sun Microsystems'>''",sal_True,new OString(kTestStr1),
- new OString()},
- {"!(''>'Sun Microsystems')",sal_False,new OString(),
- new OString(kTestStr1)},
- {"!(''>'')",sal_False,new OString(), new OString()}
-};
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Bool cmpRes = (*arrTestCase[i].input1 > *arrTestCase[i].input2);
- sal_Bool lastRes = (cmpRes == arrTestCase[i].expVal);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "operator >", i )
- );
-
- res &= lastRes;
-
- }
-
- c_rtl_tres_state_end(hRtlTestResult, "op_g");
-// return ( res );
-}
-
-//------------------------------------------------------------------------
-// testing the operator < (const OString& rStr1, const OString& rStr2)
-//------------------------------------------------------------------------
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_op_l(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- c_rtl_tres_state_start(hRtlTestResult, "op_l");
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Bool expVal;
- OString* input1;
- OString* input2;
- ~TestCase() { delete input1;delete input2;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"!('Sun microsystems'<'Sun Microsystems')",sal_False,
- new OString(kTestStr3), new OString(kTestStr1)},
- {"'Sun Microsystems'<'Sun microsystems'",sal_True,
- new OString(kTestStr1), new OString(kTestStr3)},
- {"'Sun Microsystems'<'Sun Microsystems Java Technology'",sal_True,
- new OString(kTestStr1), new OString(kTestStr2)},
- {"!('Sun Microsystems Java Technology'<'Sun Microsystems')",sal_False,
- new OString(kTestStr2), new OString(kTestStr1)},
- {"!('Sun Microsystems'<'Sun Microsystems'", sal_False,
- new OString(kTestStr1), new OString(kTestStr1)},
- {"'Sun Microsystems'<''",sal_False,new OString(kTestStr1),
- new OString()},
- {"''<'Sun Microsystems Java Technology'",sal_True,new OString(),
- new OString(kTestStr2)},
- {"!(''<'')",sal_False,new OString(), new OString()}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Bool cmpRes = (*arrTestCase[i].input1 < *arrTestCase[i].input2);
- sal_Bool lastRes = (cmpRes == arrTestCase[i].expVal);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "operator <", i )
- );
-
- res &= lastRes;
-
- }
-
- c_rtl_tres_state_end(hRtlTestResult, "op_l");
-// return ( res );
-}
-
-//------------------------------------------------------------------------
-// testing the operator >= (const OString& rStr1, const OString& rStr2)
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_op_ge(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- c_rtl_tres_state_start(hRtlTestResult, "op_ge");
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Bool expVal;
- OString* input1;
- OString* input2;
- ~TestCase() { delete input1;delete input2;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"'Sun microsystems'>='Sun Microsystems'",sal_True,
- new OString(kTestStr3), new OString(kTestStr1)},
- {"!('Sun Microsystems'>='Sun microsystems')",sal_False,
- new OString(kTestStr1), new OString(kTestStr3)},
- {"!('Sun Microsystems'>='Sun Microsystems Java Technology')",sal_False,
- new OString(kTestStr1), new OString(kTestStr2)},
- {"'Sun Microsystems Java Technology'>='Sun Microsystems'",sal_True,
- new OString(kTestStr2), new OString(kTestStr1)},
- {"'Sun Microsystems'>='Sun Microsystems'", sal_True,
- new OString(kTestStr1), new OString(kTestStr1)},
- {"'Sun Microsystems'>=''",sal_True,new OString(kTestStr1),
- new OString()},
- { "''>='Sun microsystems'",sal_False,new OString(),
- new OString(kTestStr3)},
- {"''>=''",sal_True,new OString(), new OString()}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Bool cmpRes = (*arrTestCase[i].input1 >= *arrTestCase[i].input2);
- sal_Bool lastRes = (cmpRes == arrTestCase[i].expVal);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "operator >=", i )
- );
-
- res &= lastRes;
-
- }
-
- c_rtl_tres_state_end(hRtlTestResult, "op_ge");
-// return ( res );
-}
-
-//------------------------------------------------------------------------
-// testing the operator <= (const OString& rStr1, const OString& rStr2)
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_op_le(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- c_rtl_tres_state_start(hRtlTestResult, "op_le");
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Bool expVal;
- OString* input1;
- OString* input2;
- ~TestCase() { delete input1;delete input2;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"!('Sun microsystems'<='Sun Microsystems')",sal_False,
- new OString(kTestStr3), new OString(kTestStr1)},
- {"'Sun Microsystems'<='Sun microsystems'",sal_True,
- new OString(kTestStr1), new OString(kTestStr3)},
- {"'Sun Microsystems'<='Sun Microsystems Java Technology'",sal_True,
- new OString(kTestStr1),
- new OString(kTestStr2)},
- {"!('Sun Microsystems Java Technology'<='Sun Microsystems')",sal_False,
- new OString(kTestStr2),
- new OString(kTestStr1)},
- {"!('Sun Microsystems'<='Sun Microsystems'", sal_True,
- new OString(kTestStr1), new OString(kTestStr1)},
- {"'Sun Microsystems'<=''",sal_False,new OString(kTestStr1),
- new OString()},
- {"''<='Sun Microsystems Java Technology'",sal_True,new OString(),
- new OString(kTestStr2)},
- {"!(''<='')",sal_True,new OString(), new OString()}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Bool cmpRes = (*arrTestCase[i].input1 <= *arrTestCase[i].input2);
- sal_Bool lastRes = (cmpRes == arrTestCase[i].expVal);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "operator <=", i )
- );
-
- res &= lastRes;
-
- }
-
- c_rtl_tres_state_end(hRtlTestResult, "op_le");
-// return ( res );
-}
-
-
-//------------------------------------------------------------------------
-// testing the operator =
-//------------------------------------------------------------------------
-static sal_Bool test_rtl_OString_op_eq_001( hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Bool expVal;
- OString* input1;
- OString* input2;
- ~TestCase() { delete input1;delete input2;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"'' = str1, str1 == str2",sal_True,new OString(kTestStr1),
- new OString()},
- {"str1 = str2, str1 == str2",sal_True,new OString(kTestStr1),
- new OString(kTestStr6)},
- {"str2 = '', str1 == str2",sal_True,new OString(),
- new OString(kTestStr2)},
- {"'' = '', str1 == str2",sal_True,new OString(),
- new OString()}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- *(arrTestCase[i].input1) = *(arrTestCase[i].input2);
-
- sal_Bool cmpRes =
- (*(arrTestCase[i].input1) == *(arrTestCase[i].input2));
- sal_Bool lastRes = (cmpRes == arrTestCase[i].expVal);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "operator =", i )
- );
-
- res &= lastRes;
- }
-
- return ( res );
-}
-
-static sal_Bool test_rtl_OString_op_eq_002(
- hTestResult hRtlTestResult )
-{
- ::rtl::OString aStr;
- aStr = OString(kTestStr1);
-
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- aStr == kTestStr1,
- "str = OString(\"%s\"), str == \"%s\"",
- "operator ="
- )
- );
-}
-
-static sal_Bool test_rtl_OString_op_eq_003(
- hTestResult hRtlTestResult )
-{
- sal_Bool bTCState = false;
-
- ::rtl::OString aStr1(kTestStr1);
- ::rtl::OString aStr2;
- ::rtl::OString aStr3;
-
- aStr3 = aStr2 = aStr1;
-
- bTCState = ( aStr1 == aStr2 )
- && ( aStr1 == aStr3 )
- && ( aStr2 == aStr3 );
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- bTCState,
- "str3=str2=str1,(str1 == str2)&&(str1 == str3)&&(str2 == str3)",
- "operator ="
- );
-
- return bTCState;
-}
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_op_eq(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start(hRtlTestResult, "op_eq");
- sal_Bool res = test_rtl_OString_op_eq_001( hRtlTestResult );
- res &= test_rtl_OString_op_eq_002( hRtlTestResult );
- res &= test_rtl_OString_op_eq_003( hRtlTestResult );
- c_rtl_tres_state_end(hRtlTestResult, "op_eq");
-
-// return ( res );
-}
-
-//------------------------------------------------------------------------
-// testing the operator +
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_op_plus(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- c_rtl_tres_state_start(hRtlTestResult, "op_plus");
- typedef struct TestCase
- {
- sal_Char* comments;
- OString* expVal;
- OString* input1;
- OString* input2;
- ~TestCase() { delete input1;delete input2; delete expVal;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"str1 = str7 + str8",new OString(kTestStr1),
- new OString(kTestStr7), new OString(kTestStr8)},
- {"str1 = str1 + '' ",new OString(kTestStr1),
- new OString(kTestStr1), new OString("")},
- {"str1 = '' + str1", new OString(kTestStr1),
- new OString(""), new OString(kTestStr1)},
- {" '' = '' + '' ", new OString(""),new OString(""),
- new OString("")},
- {"str1 = str1 + def.constr", new OString(kTestStr1),
- new OString(kTestStr1), new OString()},
- {" str1 = def.constr + str1 ",new OString(kTestStr1),
- new OString(), new OString(kTestStr1)},
- {" def.constr= def.constr + def.constr", new OString(),
- new OString(), new OString()}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- OString str = (*arrTestCase[i].input1) + (*arrTestCase[i].input2);
- sal_Bool lastRes = (str == *arrTestCase[i].expVal);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "operator +", i )
- );
-
- res &= lastRes;
-
- }
-
- c_rtl_tres_state_end(hRtlTestResult, "op_plus");
-// return ( res );
-}
-
-//------------------------------------------------------------------------
-// testing the operator +=
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_op_peq(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- c_rtl_tres_state_start(hRtlTestResult, "op_peq");
- typedef struct TestCase
- {
- sal_Char* comments;
- OString* expVal;
- OString* input1;
- OString* input2;
- ~TestCase() { delete input1;delete input2; delete expVal;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"str1 == (str7 += str8)",new OString(kTestStr1),
- new OString(kTestStr7), new OString(kTestStr8)},
- {"str1 == (str1 += '')",new OString(kTestStr1),
- new OString(kTestStr1), new OString("")},
- {"str1 == ('' += str1)", new OString(kTestStr1),
- new OString(""), new OString(kTestStr1)},
- {" '' == ('' += '')", new OString(""),
- new OString(""), new OString("")},
- {"str1 == (str1 += def.constr)", new OString(kTestStr1),
- new OString(kTestStr1), new OString()},
- {" str1 == (def.constr += str1)",new OString(kTestStr1),
- new OString(), new OString(kTestStr1)},
- {" def.constr== (def.constr += def.constr)",
- new OString(),new OString(), new OString()}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- { OString str;
- str += (*arrTestCase[i].input1); str += (*arrTestCase[i].input2);
- sal_Bool lastRes = (str == *arrTestCase[i].expVal);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "operator +", i )
- );
-
- res &= lastRes;
-
- }
-
- c_rtl_tres_state_end(hRtlTestResult, "op_peq");
-// return ( res );
-}
-
-//------------------------------------------------------------------------
-// testing the operator const sal_Char * (cscs for short)
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_op_cscs(
- hTestResult hRtlTestResult )
-{
-sal_Char methName[MAXBUFLENGTH];
-sal_Char* pMeth = methName;
-
- c_rtl_tres_state_start(hRtlTestResult, "op_cscs");
-typedef struct TestCase
- {
- sal_Char* comments;
- const sal_Char* expVal;
- sal_Int32 cmpLen;
- OString* input1;
- ~TestCase() { delete input1;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"test normal string",kTestStr1,kTestStr1Len,new OString(kTestStr1)},
- {"test empty string","",1,new OString()}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- const sal_Char* pstr = (*arrTestCase[i].input1);
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- cmpstr((sal_Char*)pstr,(sal_Char*)arrTestCase[i].expVal,
- arrTestCase[i].cmpLen),
- arrTestCase[i].comments,
- createName( pMeth, "const sal_Char*", i )
- );
- }
- c_rtl_tres_state_end(hRtlTestResult, "op_cscs");
-// return ( res );
-}
-
-
-//------------------------------------------------------------------------
-// testing the method getStr()
-//------------------------------------------------------------------------
-
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_getStr(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- c_rtl_tres_state_start(hRtlTestResult, "getStr");
- typedef struct TestCase
- {
- sal_Char* comments;
- const sal_Char* expVal;
- sal_Int32 cmpLen;
- OString* input1;
- ~TestCase() { delete input1;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"test normal string",kTestStr1,kTestStr1Len,new OString(kTestStr1)},
- {"test empty string","",0,new OString()}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- const sal_Char* pstr = arrTestCase[i].input1->getStr();
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- cmpstr(pstr, arrTestCase[i].expVal,
- arrTestCase[i].cmpLen),
- arrTestCase[i].comments,
- createName( pMeth, "getStr", i )
- );
- }
- c_rtl_tres_state_end(hRtlTestResult, "getStr");
-// return ( res );
-}
-
-
-
-//------------------------------------------------------------------------
-// testing the method copy( sal_Int32 beginIndex )
-//------------------------------------------------------------------------
-static sal_Bool SAL_CALL test_rtl_OString_copy_001(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- const sal_Char* srcStr;
- const sal_Char* arrExpStr;
- // string for comparing with result
- sal_Int32 beginIndex;
- // beginIndex for the method copy
- sal_Int32 lengthForCmp;
- // number of symbols for comparing
- // (if value is equal to 0 then pointers to buffers must be equal)
- sal_Int32 expLength;
- //expected length of the result string
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"beginIndex == 0 ( whole string )", kTestStr2,kTestStr2,
- 0, kTestStr2Len, kTestStr2Len},
- {"beginIndex == strlen-2 ( last two char )", kTestStr2,"gy",
- kTestStr2Len-2, 2, 2},
- {"beginIndex == strlen-1( last char )", kTestStr2, "y",
- kTestStr2Len-1, 1, 1}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i <(sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- OString src(arrTestCase[i].srcStr);
- OString dst;
- // rtl_String* pDataSrc = src.pData;
-
- dst = src.copy(arrTestCase[i].beginIndex);
-
- // rtl_String* pDataDst = dst.pData;
-
- sal_Bool lastRes;
-
- lastRes= (dst== arrTestCase[i].arrExpStr);
-
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth,
- "copy_001(beginIndex)(check buffer and length)", i )
- );
-
- res &= lastRes;
-
- }
-
- return (res);
-}
-
-
-//------------------------------------------------------------------------
-// testing the method copy( sal_Int32 beginIndex, sal_Int32 count )
-//------------------------------------------------------------------------
-static sal_Bool SAL_CALL test_rtl_OString_copy_002(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- const sal_Char* arrExpStr;
- sal_Int32 beginIndex;
- sal_Int32 count;
- sal_Int32 expLen;
-
- } TestCase;
-
- TestCase arrTestCase[] ={
-
- {"copy substring", kTestStr6, kTestStr11Len, kTestStr2Len - kTestStr11Len,kTestStr6Len},
- /* LLA: it is a bug, beginIndex + count > kTestStr2.getLength() */
- /* {"copy normal substring with incorrect count",kTestStr6, kTestStr11Len, 31, 15}, */
- {"copy whole string", kTestStr2, 0, kTestStr2Len, kTestStr2Len},
- /* {"copy whole string with incorrect count larger than len and index 0", kTestStr2, 0, 40, 32}, */
- /* LLA: bug beginIndex + count > kTestStr2 {"copy last character", "y",kTestStr2Len - 1, 31,1}, */
- {"copy last character", "y",kTestStr2Len - 1, 1,1},
- /* LLA: bug, beginIndex > kTestStr2 {"beginindex larger than len","",60, 0,0}, */
- {"beginindex exact as large as it's length","",kTestStr2Len, 0,0}
- /* LLA: bug, negative count is not allowed. {"count is nagative int","",3, -1,0} */
- };
- sal_Bool res = sal_True;
-
- sal_uInt32 i;
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++) {
- OString src(kTestStr2);
- OString dst;
- dst = src.copy(arrTestCase[i].beginIndex, arrTestCase[i].count);
- // rtl_String* pDataSrc = src.pData;
- // rtl_String* pDataDst = dst.pData;
-
- sal_Bool lastRes=sal_True;
- // checks buffer and length
- //t_print("this is copy__002 #%d\n", i);
- //t_print("dst buffer =%s\n", pDataDst->buffer);
- //t_print("expStr =%s\n", arrTestCase[i].arrExpStr);
- //t_print("dst length =%d\n", pDataDst->length);
- //t_print("count =%d\n", arrTestCase[i].count);
- //t_print("expLen =%d\n", arrTestCase[i].expLen);
-
- lastRes = (dst.equals(arrTestCase[i].arrExpStr)) ? sal_True : sal_False;
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth,
- "copy_002(beginIndex,count)(check buffer and length)", i)
- );
- res &= lastRes;
-
-
- }
-
- return (res);
-}
-
-
-static sal_Bool SAL_CALL test_rtl_OString_copy_003(
- hTestResult hRtlTestResult )
-{
- sal_Bool res = sal_True;
- char comment[] = "copy whole short string to long string";
-
- OString src(kTestStr1);
- // rtl_String* pDataSrc = src.pData;
- OString dst(kTestStr2);
-
- dst = src.copy(0);
- // rtl_String* pDataDst = dst.pData;
- //check buffer and length
- sal_Bool lastRes =(dst==src);
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- comment,
- "copy_003(beginIndex)(check buffer and length)"
- );
- res &= lastRes;
-
- return (res);
-}
-
-
-static sal_Bool SAL_CALL test_rtl_OString_copy_004(
- hTestResult hRtlTestResult )
-{
- sal_Bool res = sal_True;
- sal_Char comment[] = "copy whole long string to short string";
-
- OString src(kTestStr2);
- // rtl_String* pDataSrc = src.pData;
- OString dst(kTestStr1);
-
- dst = src.copy(0);
- // rtl_String* pDataDst = dst.pData;
- //check buffer and length
- sal_Bool lastRes =(dst==src);
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- comment,
- "copy_004(beginIndex)(check buffer and length)"
- );
-
- res &= lastRes;
- return (res);
-}
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_copy(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start(hRtlTestResult, "copy");
- sal_Bool res = test_rtl_OString_copy_001(hRtlTestResult);
- res &= test_rtl_OString_copy_002(hRtlTestResult);
- res &= test_rtl_OString_copy_003(hRtlTestResult);
- res &= test_rtl_OString_copy_004(hRtlTestResult);
- c_rtl_tres_state_end(hRtlTestResult, "copy");
-
-// return ( res );
-}
-
-//------------------------------------------------------------------------
-// testing the method concat( const OString & aStr )
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_concat(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth =methName;
-
- c_rtl_tres_state_start(hRtlTestResult, "concat");
- typedef struct TestCase
- {
- sal_Char* comments;
- OString* expVal;
- OString* input1;
- OString* input2;
- ~TestCase() { delete input1;delete input2; delete expVal;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"concatenates two strings",new OString(kTestStr1),
- new OString(kTestStr7),
- new OString(kTestStr8)},
- {"concatenates empty string",new OString(kTestStr1),
- new OString(kTestStr1),
- new OString("")},
- {"concatenates to empty string",new OString(kTestStr1),
- new OString(""),
- new OString(kTestStr1)},
- {"concatenates two empty strings",new OString(""),new OString(""),
- new OString("")},
- {"concatenates string constructed by default constructor",
- new OString(kTestStr1),
- new OString(kTestStr1), new OString()},
- {"concatenates to string constructed by default constructor",
- new OString(kTestStr1),
- new OString(), new OString(kTestStr1)},
- {"concatenates two strings constructed by default constructor",
- new OString(),
- new OString(), new OString()}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- OString str =
- arrTestCase[i].input1->concat(*arrTestCase[i].input2);
- sal_Bool lastRes = (str == *arrTestCase[i].expVal);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "concat", i)
- );
-
- res &= lastRes;
-
- }
-
- c_rtl_tres_state_end(hRtlTestResult, "concat");
-// return ( res );
-}
-
-
-//------------------------------------------------------------------------
-// testing the method toAsciiLowerCase()
-//-----------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_toAsciiLowerCase(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth =methName;
-
- c_rtl_tres_state_start(hRtlTestResult, "toAsciiLowerCase");
- typedef struct TestCase
- {
- sal_Char* comments;
- OString* expVal;
- OString* input1;
- ~TestCase() { delete input1; delete expVal;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
-
- {"only uppercase",new OString(kTestStr5),new OString(kTestStr4)},
- {"different cases",new OString(kTestStr5),new OString(kTestStr1)},
- {"different cases",new OString(kTestStr5),new OString(kTestStr3)},
- {"only lowercase",new OString(kTestStr5),new OString(kTestStr5)},
- {"empty string",new OString(""),new OString("")},
- {"string constructed by default constructor",
- new OString(),new OString()}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- OString str = arrTestCase[i].input1->toAsciiLowerCase();
- sal_Bool lastRes = (str ==* arrTestCase[i].expVal);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "toAsciiLowerCase", i)
- );
-
- res &= lastRes;
- }
-
- c_rtl_tres_state_end(hRtlTestResult, "toAsciiLowerCase");
-// return ( res );
-}
-
-//------------------------------------------------------------------------
-// testing the method toAsciiUpperCase()
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_toAsciiUpperCase(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth =methName;
-
- c_rtl_tres_state_start(hRtlTestResult, "toAsciiUpperCase");
- typedef struct TestCase
- {
- sal_Char* comments;
- OString* expVal;
- OString* input1;
- ~TestCase() { delete input1; delete expVal;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"only lowercase",new OString(kTestStr4),new OString(kTestStr5)},
- {"mixed cases",new OString(kTestStr4),new OString(kTestStr3)},
- {"miced cases",new OString(kTestStr4),new OString(kTestStr1)},
- {"only uppercase",new OString(kTestStr4),new OString(kTestStr4)},
- {"empty string",new OString(""),new OString("")},
- {"string constructed by default constructor",
- new OString(),new OString()}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- OString str = arrTestCase[i].input1->toAsciiUpperCase();
- sal_Bool lastRes = (str == *arrTestCase[i].expVal);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "toAsciiLowerCase", i)
- );
-
- res &= lastRes;
- }
- c_rtl_tres_state_end(hRtlTestResult, "toAsciiUpperCase");
-
-// return ( res );
-}
-
-
-//------------------------------------------------------------------------
-// testing the method trim()
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_trim(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth =methName;
-
- c_rtl_tres_state_start(hRtlTestResult, "trim");
- typedef struct TestCase
- {
- sal_Char* comments;
- OString* expVal;
- OString* input1;
- ~TestCase() { delete input1; delete expVal;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"removes space from the front",new OString(kTestStr1),
- new OString(kTestStr10)},
- {"removes space from the end",new OString(kTestStr1),
- new OString(kTestStr11)},
- {"removes space from the front and end",new OString(kTestStr1),
- new OString(kTestStr12)},
- {"removes several spaces from the end",new OString(kTestStr1),
- new OString(kTestStr13)},
- {"removes several spaces from the front",new OString(kTestStr1),
- new OString(kTestStr14)},
- {"removes several spaces from the front and one from the end",
- new OString(kTestStr1),
- new OString(kTestStr15)},
- {"removes one space from the front and several from the end",
- new OString(kTestStr1),
- new OString(kTestStr16)},
- {"removes several spaces from the front and end",
- new OString(kTestStr1),
- new OString(kTestStr17)},
- {"removes characters that have codes <= 32",new OString(kTestStr20),
- new OString("\1\3\5\7\11\13\15\17sun\21\23\25\27\31\33\40")},
- {"no spaces",new OString(kTestStr8),new OString(kTestStr8)}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- OString strRes = arrTestCase[i].input1->trim();
- sal_Bool lastRes = (strRes == *arrTestCase[i].expVal);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "trim", i)
- );
-
- res &= lastRes;
-
- }
-
- c_rtl_tres_state_end(hRtlTestResult, "trim");
-// return ( res );
-}
-
-
-
-//------------------------------------------------------------------------
-// testing the method valueOf( sal_Bool b )
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OString_valueOf_sal_Bool(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth =methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Bool input1;
- OString* expVal;
- ~TestCase() {delete expVal;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"true",sal_True,new OString("true")},
- {"false",sal_False, new OString("false")}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- ::rtl::OString aStr1;
- aStr1 = aStr1.valueOf( arrTestCase[i].input1 );
- sal_Bool lastRes = (arrTestCase[i].expVal->compareTo(aStr1) == 0);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "valueof_bool", i)
- );
-
- res &= lastRes;
-
- }
-
- return ( res );
-}
-
-sal_Bool SAL_CALL test_rtl_OString_valueOf_sal_Char(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth =methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Char input1;
- OString* expVal;
- ~TestCase() {delete expVal;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"A",'A',new OString("A")},
- {"a",'a', new OString("a")},
- {"0",'0', new OString("0")},
- {"-",'-', new OString("-")},
- {"_",'_', new OString("_")},
- {"|",'|', new OString("|")},
- {"?",'?', new OString("?")},
- {"?",'?', new OString("?")},
- {"\n",'\n', new OString("\n")},
- {"\'",'\'', new OString("\'")},
- {"\"",'\"', new OString("\"")}
-
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- ::rtl::OString aStr1;
- aStr1 = aStr1.valueOf( arrTestCase[i].input1 );
- sal_Bool lastRes = (arrTestCase[i].expVal->compareTo(aStr1) == 0);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "valueof_char", i)
- );
-
- res &= lastRes;
-
- }
-
- return ( res );
-}
-
-/**
- * Calls the method valueOf(T, radix) and compares
- * returned strings with strings that passed in the array resArray.
- *
- * @param T, type of argument, passed to valueOf
- * @param resArray, array of result strings to compare to
- * @param n the number of elements in the array resArray (testcases)
- * @param pTestResult the instance of the class TestResult
- * @param inArray [optional], array of value that is passed as first argument
- * to valueOf
- *
- * @return true, if all returned strings are equal to corresponding string in
- * resArray else, false.
- */
-template <class T>
-sal_Bool test_valueOf( const char** resArray, int n, sal_Int16 radix,
- hTestResult hRtlTestResult, const T *inArray )
-{
- sal_Bool bRes = sal_True;
-
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
- sal_Int32 i;
-
- for (i = 0; i < n; i++)
- {
- ::rtl::OString aStr1;
- ::rtl::OString aStr2( resArray[i] );
-
- if (inArray == 0)
- aStr1 = ::rtl::OString::valueOf((T)i, radix);
- else
- {
- if ( inArray[i] < 0 )
- {
- aStr2 = "-";
- aStr2 += resArray[i];
- }
- aStr1 = ::rtl::OString::valueOf((T)inArray[i], radix);
- }
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- aStr2.compareTo(aStr1) == 0,
- (sal_Char*)resArray[i],
- createName( pMeth, "valueOf", i )
- );
- }
-
- return (bRes);
-}
-
-
-#define test_valueOf_Int32 test_valueOf<sal_Int32>
-#define test_valueOf_Int64 test_valueOf<sal_Int64>
-// LLA: #define test_valueOf_float test_valueOf<float>
-// LLA: #define test_valueOf_double test_valueOf<double>
-
-//------------------------------------------------------------------------
-// testing the method valueOf( sal_Int32 i, sal_Int16 radix=2 )
-// testing the method valueOf( sal_Int32 i, sal_Int16 radix=8 )
-// testing the method valueOf( sal_Int32 i, sal_Int16 radix=10 )
-// testing the method valueOf( sal_Int32 i, sal_Int16 radix=16 )
-// testing the method valueOf( sal_Int32 i, sal_Int16 radix=36 )
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OString_valueOf_Int32(
- hTestResult hRtlTestResult )
-{
- sal_Bool bRes = sal_False;
-
- bRes = c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32((const char**)kBinaryNumsStr,
- kBinaryNumsCount, kRadixBinary, hRtlTestResult, 0 ),
- "kRadixBinary",
- "valueOf(sal_Int32, radix 2)"
- );
-
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32((const char**)kOctolNumsStr,
- kOctolNumsCount, kRadixOctol, hRtlTestResult, 0),
- "kRadixOctol",
- "valueOf(sal_Int32, radix 8)"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32((const char**)kDecimalNumsStr,
- kDecimalNumsCount, kRadixDecimal, hRtlTestResult, 0),
- "kRadixDecimal",
- "valueOf(sal_Int32, radix 10)"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32((const char**)kHexDecimalNumsStr,
- kHexDecimalNumsCount, kRadixHexdecimal, hRtlTestResult, 0),
- "kRadixHexdecimal",
- "valueOf(sal_Int32, radix 16)"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32((const char**)kBase36NumsStr,
- kBase36NumsCount, kRadixBase36, hRtlTestResult, 0),
- "kRadixBase36",
- "valueOf(sal_Int32, radix 36)"
- );
-
-
- return ( bRes );
-}
-
-//------------------------------------------------------------------------
-// testing the method valueOf( sal_Int32 l, sal_Int32 radix=2 )
-// where l = large constants
-// testing the method valueOf( sal_Int32 l, sal_Int32 radix=8 )
-// where l = large constants
-// testing the method valueOf( sal_Int32 l, sal_Int32 radix=10 )
-// where l = large constants
-// testing the method valueOf( sal_Int32 l, sal_Int32 radix=16 )
-// where l = large constants
-// testing the method valueOf( sal_Int32 l, sal_Int32 radix=36 )
-// where l = large constants
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OString_valueOf_Int32_Bounderies(
- hTestResult hRtlTestResult )
-{
- sal_Bool bRes = sal_False;
-
- bRes = c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32((const char**)kBinaryMaxNumsStr,
- kInt32MaxNumsCount, kRadixBinary, hRtlTestResult,
- kInt32MaxNums),
- "kRadixBinary",
- "valueOf(salInt32, radix 2) Bounderies"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32((const char**)kOctolMaxNumsStr,
- kInt32MaxNumsCount, kRadixOctol, hRtlTestResult,
- kInt32MaxNums),
- "kRadixOctol",
- "valueOf(salInt32, radix 8) Bounderies"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32((const char**)kDecimalMaxNumsStr,
- kInt32MaxNumsCount, kRadixDecimal,
- hRtlTestResult, kInt32MaxNums),
- "kRadixDecimal",
- "valueOf(salInt32, radix 10) Bounderies"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32((const char**)kHexDecimalMaxNumsStr,
- kInt32MaxNumsCount, kRadixHexdecimal,
- hRtlTestResult, kInt32MaxNums),
- "kRadixHexdecimal",
- "valueOf(salInt32, radix 16) Bounderies"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32((const char**)kBase36MaxNumsStr,
- kInt32MaxNumsCount, kRadixBase36,
- hRtlTestResult, kInt32MaxNums),
- "kRadixBase36",
- "valueOf(salInt32, radix 36) Bounderies"
- );
-
- return ( bRes );
-}
-
-//------------------------------------------------------------------------
-// testing the method valueOf( sal_Int32 i, sal_Int16 radix=2 )
-// for negative value
-// testing the method valueOf( sal_Int32 i, sal_Int16 radix=8 )
-// for negative value
-// testing the method valueOf( sal_Int32 i, sal_Int16 radix=10 )
-// for negative value
-// testing the method valueOf( sal_Int32 i, sal_Int16 radix=16 )
-// for negative value
-// testing the method valueOf( sal_Int32 i, sal_Int16 radix=36 )
-// for negative value
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OString_valueOf_Int32_Negative(
- hTestResult hRtlTestResult )
-{
- sal_Bool bRes = sal_False;
- sal_Int32 inArr[kBase36NumsCount];
- sal_Int32 i;
-
- for (i = 0; i < kBase36NumsCount; i++ )
- inArr[i] = -i;
-
- bRes = c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32( kBinaryNumsStr, kBinaryNumsCount,
- kRadixBinary, hRtlTestResult, inArr ),
- "negative Int32, kRadixBinary",
- "valueOf( negative Int32, radix 2 )"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32( kOctolNumsStr, kOctolNumsCount,
- kRadixOctol, hRtlTestResult, inArr ),
- "negative Int32, kRadixOctol",
- "valueOf( negative Int32, radix 8 )"
- );
-
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32( kDecimalNumsStr, kDecimalNumsCount,
- kRadixDecimal, hRtlTestResult, inArr ),
- "negative Int32, kRadixDecimal",
- "valueOf( negative Int32, radix 10 )"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32( kHexDecimalNumsStr, kHexDecimalNumsCount,
- kRadixHexdecimal, hRtlTestResult, inArr ),
- "negative Int32, kRadixHexdecimal",
- "valueOf( negative Int32, radix 16 )"
- );
-
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32( kBase36NumsStr, kBase36NumsCount,
- kRadixBase36, hRtlTestResult, inArr ),
- "negative Int32, kRadixBase36",
- "valueOf( negative Int32, radix 36 )"
- );
-
- return ( bRes );
-}
-//------------------------------------------------------------------------
-// testing the method valueOf( sal_Int32 l, sal_Int32 radix ) where radix = -5
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OString_valueOf_Int32_WrongRadix(
- hTestResult hRtlTestResult )
-{
- sal_Bool bRes = sal_False;
-
- sal_Int32 intVal = 11;
-
- ::rtl::OString aStr1;
- ::rtl::OString aStr2("11");
-
- aStr1 = aStr1.valueOf( intVal, -5 );
-
- bRes = c_rtl_tres_state
- (
- hRtlTestResult,
- aStr2.compareTo( aStr1 ) == 0,
- "if radix not valid then radix must be 10",
- "valueOf(sal_Int32, sal_Int32 radix): radix = -5"
- );
-
- return (bRes);
-}
-
-//------------------------------------------------------------------------
-// testing the method valueOf( sal_Int32 l, sal_Int32 radix )
-// where l = -2147483648 (smallest negative value)
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OString_valueOf_Int32_SmallestNegativeValue(
- hTestResult hRtlTestResult)
-{
- // Standard-conforming way to assign -2147483648 to n:
- sal_Int32 n = -1;
- for (int i = 1; i < 32; ++i)
- n *= 2;
- return c_rtl_tres_state
- (
- hRtlTestResult,
- ::rtl::OString::valueOf(n) == "-2147483648",
- "-2147483648",
- "valueOf(sal_Int32 -2147483648)"
- );
-}
-
-//------------------------------------------------------------------------
-// testing the method valueOf( sal_Int64 l, sal_Int16 radix=2 )
-// testing the method valueOf( sal_Int64 l, sal_Int16 radix=8 )
-// testing the method valueOf( sal_Int64 l, sal_Int16 radix=10 )
-// testing the method valueOf( sal_Int64 l, sal_Int16 radix=16 )
-// testing the method valueOf( sal_Int64 l, sal_Int16 radix=36 )
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OString_valueOf_Int64(
- hTestResult hRtlTestResult )
-{
- sal_Bool bRes = sal_False;
-
- bRes = c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64((const char**)kBinaryNumsStr,
- kBinaryNumsCount, kRadixBinary, hRtlTestResult, 0),
- "kRadixBinary",
- "valueOf(sal_Int64, radix 2)_"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64((const char**)kOctolNumsStr,
- kOctolNumsCount, kRadixOctol, hRtlTestResult, 0),
- "kRadixOctol",
- "valueOf(sal_Int64, radix 8)_"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64((const char**)kDecimalNumsStr,
- kDecimalNumsCount, kRadixDecimal, hRtlTestResult, 0),
- "kRadixDecimal",
- "valueOf(sal_Int64, radix 10)_"
- );
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64((const char**)kHexDecimalNumsStr,
- kHexDecimalNumsCount, kRadixHexdecimal, hRtlTestResult, 0),
- "kRadixHexdecimal",
- "valueOf(sal_Int64, radix 16)_"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64((const char**)kBase36NumsStr,
- kBase36NumsCount, kRadixBase36, hRtlTestResult, 0),
- "kRadixBase36",
- "valueOf(sal_Int64, radix 36)_"
- );
-
- return (bRes);
-}
-
-//------------------------------------------------------------------------
-// testing the method valueOf( sal_Int64 l, sal_Int32 radix=2 )
-// where l = large constants
-// testing the method valueOf( sal_Int64 l, sal_Int32 radix=8 )
-// where l = large constants
-// testing the method valueOf( sal_Int64 l, sal_Int32 radix=10 )
-// where l = large constants
-// testing the method valueOf( sal_Int64 l, sal_Int32 radix=16 )
-// where l = large constants
-// testing the method valueOf( sal_Int64 l, sal_Int32 radix=36 )
-// where l = large constants
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OString_valueOf_Int64_Bounderies(
- hTestResult hRtlTestResult )
-{
- sal_Bool bRes = sal_False;
-
- bRes = c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64((const char**)kBinaryMaxNumsStr,
- kInt64MaxNumsCount, kRadixBinary,
- hRtlTestResult, kInt64MaxNums),
- "kRadixBinary",
- "valueOf(salInt64, radix 2) Bounderies"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64((const char**)kOctolMaxNumsStr,
- kInt64MaxNumsCount, kRadixOctol,
- hRtlTestResult, kInt64MaxNums),
- "kRadixOctol",
- "valueOf(salInt64, radix 8) Bounderies"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64((const char**)kDecimalMaxNumsStr,
- kInt64MaxNumsCount, kRadixDecimal,
- hRtlTestResult, kInt64MaxNums),
- "kRadixDecimal",
- "valueOf(salInt64, radix 10) Bounderies"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64((const char**)kHexDecimalMaxNumsStr,
- kInt64MaxNumsCount, kRadixHexdecimal,
- hRtlTestResult, kInt64MaxNums),
- "kRadixHexdecimal",
- "valueOf(salInt64, radix 16) Bounderies"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64((const char**)kBase36MaxNumsStr,
- kInt64MaxNumsCount, kRadixBase36,
- hRtlTestResult, kInt64MaxNums),
- "kRadixBase36",
- "valueOf(salInt64, radix 36) Bounderies"
- );
-
- return ( bRes );
-}
-
-//------------------------------------------------------------------------
-// testing the method valueOf( sal_Int64 l, sal_Int16 radix=2 )
-// for negative value
-// testing the method valueOf( sal_Int64 l, sal_Int16 radix=8 )
-// for negative value
-// testing the method valueOf( sal_Int64 l, sal_Int16 radix=10 )
-// for negative value
-// testing the method valueOf( sal_Int64 l, sal_Int16 radix=16 )
-// for negative value
-// testing the method valueOf( sal_Int64 l, sal_Int16 radix=36 )
-// for negative value
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OString_valueOf_Int64_Negative(
- hTestResult hRtlTestResult )
-{
- sal_Bool bRes = sal_False;
-
- sal_Int64 inArr[36];
- sal_Int32 i;
-
- for (i = 0; i < 36; i++) {
- inArr[i] = -i;
- }
-
-
- bRes = c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64( kBinaryNumsStr, kBinaryNumsCount,
- kRadixBinary, hRtlTestResult, inArr ),
- "negative Int64, kRadixBinary",
- "valueOf( negative Int64, radix 2 )"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64( kOctolNumsStr, kOctolNumsCount,
- kRadixOctol, hRtlTestResult, inArr ),
- "negative Int64, kRadixOctol",
- "valueOf( negative Int64, radix 8 )"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64( kDecimalNumsStr, kDecimalNumsCount,
- kRadixDecimal, hRtlTestResult, inArr ),
- "negative Int64, kRadixDecimal",
- "valueOf( negative Int64, radix 10 )"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64( kHexDecimalNumsStr, kHexDecimalNumsCount,
- kRadixHexdecimal, hRtlTestResult, inArr ),
- "negative Int64, kRadixHexDecimal",
- "valueOf( negative Int64, radix 16 )"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64( kBase36NumsStr, kBase36NumsCount,
- kRadixBase36, hRtlTestResult, inArr),
- "negative Int64, kRadixBase36",
- "valueOf( negative Int64, radix 36 )"
- );
-
- return (bRes);
-}
-//------------------------------------------------------------------------
-// testing the method valueOf( sal_Int64 l, sal_Int32 radix )
-// where radix = -5
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OString_valueOf_Int64_WrongRadix(
- hTestResult hRtlTestResult )
-{
- sal_Bool bRes = sal_False;
-
- sal_Int64 intVal = 11;
-
- ::rtl::OString aStr1;
- ::rtl::OString aStr2("11");
-
- aStr1 = aStr1.valueOf( intVal, -5 );
-
- bRes = c_rtl_tres_state
- (
- hRtlTestResult,
- aStr2.compareTo(aStr1) == 0,
- "if radix not valid then radix must be 10",
- "valueOf(sal_Int64, sal_Int32 radix): radix = -5"
- );
-
- return (bRes);
-}
-
-//------------------------------------------------------------------------
-// testing the method valueOf( sal_Int64 l, sal_Int32 radix )
-// where l = -9223372036854775808 (smallest negative value)
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OString_valueOf_Int64_SmallestNegativeValue(
- hTestResult hRtlTestResult)
-{
- // Standard-conforming way to assign -9223372036854775808 to n:
- sal_Int64 n = -1;
- for (int i = 1; i < 64; ++i)
- n *= 2;
- return c_rtl_tres_state
- (
- hRtlTestResult,
- ::rtl::OString::valueOf(n) == "-9223372036854775808",
- "-9223372036854775808",
- "valueOf(sal_Int64 -9223372036854775808)"
- );
-}
-
-//------------------------------------------------------------------------
-// testing the method valueOf( float f )
-//------------------------------------------------------------------------
-// LLA: sal_Bool SAL_CALL test_rtl_OString_valueOf_float(
-// LLA: hTestResult hRtlTestResult )
-// LLA: {
-// LLA: sal_Char methName[MAXBUFLENGTH];
-// LLA: sal_Char* pMeth =methName;
-// LLA:
-// LLA: typedef struct TestCase
-// LLA: {
-// LLA: sal_Char* comments;
-// LLA: float input1;
-// LLA: OString* expVal;
-// LLA:
-// LLA: ~TestCase() {delete expVal;}
-// LLA: } TestCase;
-// LLA:
-// LLA: TestCase arrTestCase[] =
-// LLA: {
-// LLA: { "3.0", 3.0, new OString("3.0") },
-// LLA: { "3.5", 3.5f, new OString("3.5")},
-// LLA: { "3.0625", 3.0625f, new OString("3.0625")},
-// LLA: { "3.502525", 3.502525f, new OString("3.502525") },
-// LLA: { "3.141592", 3.141592f, new OString("3.141592") },
-// LLA: { "3.5025255", 3.5025255f, new OString("3.5025255") },
-// LLA: { "3.0039062", 3.00390625f, new OString("3.0039062") }
-// LLA: };
-// LLA:
-// LLA: sal_Bool res = sal_True;
-// LLA: sal_Int32 i;
-// LLA:
-// LLA: for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
-// LLA: {
-// LLA: ::rtl::OString aStr1;
-// LLA: aStr1 = aStr1.valueOf( arrTestCase[i].input1 );
-// LLA: sal_Bool lastRes = (arrTestCase[i].expVal->compareTo(aStr1) == 0);
-// LLA:
-// LLA: c_rtl_tres_state
-// LLA: (
-// LLA: hRtlTestResult,
-// LLA: lastRes,
-// LLA: arrTestCase[i].comments,
-// LLA: createName( pMeth, "valueof_float", i)
-// LLA: );
-// LLA:
-// LLA: res &= lastRes;
-// LLA:
-// LLA: }
-// LLA:
-// LLA: return ( res );
-// LLA: }
-
-
-
-
-//------------------------------------------------------------------------
-// testing the method valueOf( float f ) for negative value
-//------------------------------------------------------------------------
-// LLA: sal_Bool SAL_CALL test_rtl_OString_valueOf_Float_Negative(
-// LLA: hTestResult hRtlTestResult )
-// LLA: {
-// LLA: sal_Char methName[MAXBUFLENGTH];
-// LLA: sal_Char* pMeth =methName;
-// LLA:
-// LLA: typedef struct TestCase
-// LLA: {
-// LLA: sal_Char* comments;
-// LLA: float input1;
-// LLA: OString* expVal;
-// LLA:
-// LLA: ~TestCase() {delete expVal;}
-// LLA: } TestCase;
-// LLA:
-// LLA: TestCase arrTestCase[] =
-// LLA: {
-// LLA: { "-3.0", -3.0, new OString("-3.0") },
-// LLA: { "-3.5", -3.5f, new OString("-3.5")},
-// LLA: { "-3.0625", -3.0625f, new OString("-3.0625")},
-// LLA: { "-3.502525", -3.502525f, new OString("-3.502525") },
-// LLA: { "-3.141592", -3.141592f, new OString("-3.141592") },
-// LLA: { "-3.5025255", -3.5025255f, new OString("-3.5025255") },
-// LLA: { "-3.0039062", -3.00390625f, new OString("-3.0039062") }
-// LLA: };
-// LLA:
-// LLA: sal_Bool res = sal_True;
-// LLA: sal_Int32 i;
-// LLA:
-// LLA: for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
-// LLA: {
-// LLA: ::rtl::OString aStr1;
-// LLA: aStr1 = aStr1.valueOf( arrTestCase[i].input1 );
-// LLA: sal_Bool lastRes = (arrTestCase[i].expVal->compareTo(aStr1) == 0);
-// LLA:
-// LLA: c_rtl_tres_state
-// LLA: (
-// LLA: hRtlTestResult,
-// LLA: lastRes,
-// LLA: arrTestCase[i].comments,
-// LLA: createName( pMeth, "valueof_negative float", i)
-// LLA: );
-// LLA:
-// LLA: res &= lastRes;
-// LLA:
-// LLA: }
-// LLA:
-// LLA: return ( res );
-// LLA: }
-
-//------------------------------------------------------------------------
-// testing the method valueOf( double f )
-//------------------------------------------------------------------------
-// LLA: sal_Bool SAL_CALL test_rtl_OString_valueOf_double(
-// LLA: hTestResult hRtlTestResult )
-// LLA: {
-// LLA: sal_Char methName[MAXBUFLENGTH];
-// LLA: sal_Char* pMeth =methName;
-// LLA:
-// LLA: typedef struct TestCase
-// LLA: {
-// LLA: sal_Char* comments;
-// LLA: double input1;
-// LLA: OString* expVal;
-// LLA:
-// LLA: ~TestCase() {delete expVal;}
-// LLA: } TestCase;
-// LLA:
-// LLA: TestCase arrTestCase[] =
-// LLA: {
-// LLA: {"3.0", 3.0, new OString("3.0")},
-// LLA: {"3.5", 3.5, new OString("3.5")},
-// LLA: {"3.0625", 3.0625, new OString("3.0625")},
-// LLA: {"3.1415926535", 3.1415926535, new OString("3.1415926535")},
-// LLA: {"3.1415926535897931", 3.141592653589793,
-// LLA: new OString("3.1415926535897931")},
-// LLA: {"3.1415926535897931", 3.1415926535897932,
-// LLA: new OString("3.1415926535897931")},
-// LLA: {"3.1415926535897931", 3.14159265358979323,
-// LLA: new OString("3.1415926535897931")},
-// LLA: {"3.1415926535897931", 3.141592653589793238462643,
-// LLA: new OString("3.1415926535897931")}
-// LLA: };
-// LLA:
-// LLA: sal_Bool res = sal_True;
-// LLA: sal_Int32 i;
-// LLA:
-// LLA: for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
-// LLA: {
-// LLA: ::rtl::OString aStr1;
-// LLA: aStr1 = aStr1.valueOf( arrTestCase[i].input1 );
-// LLA: sal_Bool lastRes = (arrTestCase[i].expVal->compareTo(aStr1) == 0);
-// LLA:
-// LLA: c_rtl_tres_state
-// LLA: (
-// LLA: hRtlTestResult,
-// LLA: lastRes,
-// LLA: arrTestCase[i].comments,
-// LLA: createName( pMeth, "valueof_double", i)
-// LLA: );
-// LLA:
-// LLA: res &= lastRes;
-// LLA:
-// LLA: }
-// LLA:
-// LLA: return ( res );
-// LLA: }
-
-
-//------------------------------------------------------------------------
-// testing the method valueOf( double f ) for negative value
-//------------------------------------------------------------------------
-// LLA: sal_Bool SAL_CALL test_rtl_OString_valueOf_Double_Negative(
-// LLA: hTestResult hRtlTestResult )
-// LLA: {
-// LLA: sal_Char methName[MAXBUFLENGTH];
-// LLA: sal_Char* pMeth =methName;
-// LLA:
-// LLA: typedef struct TestCase
-// LLA: {
-// LLA: sal_Char* comments;
-// LLA: double input1;
-// LLA: OString* expVal;
-// LLA:
-// LLA: ~TestCase() {delete expVal;}
-// LLA: } TestCase;
-// LLA:
-// LLA: TestCase arrTestCase[] =
-// LLA: {
-// LLA: {"-3.0", -3.0, new OString("-3.0")},
-// LLA: {"-3.5", -3.5, new OString("-3.5")},
-// LLA: {"-3.0625", -3.0625, new OString("-3.0625")},
-// LLA: {"-3.1415926535", -3.1415926535, new OString("-3.1415926535")},
-// LLA: {"-3.1415926535897931", -3.141592653589793,
-// LLA: new OString("-3.1415926535897931")},
-// LLA: {"-3.1415926535897931", -3.1415926535897932,
-// LLA: new OString("-3.1415926535897931")},
-// LLA: {"-3.1415926535897931", -3.14159265358979323,
-// LLA: new OString("-3.1415926535897931")},
-// LLA: {"-3.1415926535897931", -3.141592653589793238462643,
-// LLA: new OString("-3.1415926535897931")}
-// LLA: };
-// LLA:
-// LLA: sal_Bool res = sal_True;
-// LLA: sal_Int32 i;
-// LLA:
-// LLA: for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
-// LLA: {
-// LLA: ::rtl::OString aStr1;
-// LLA: aStr1 = aStr1.valueOf( arrTestCase[i].input1 );
-// LLA: sal_Bool lastRes = (arrTestCase[i].expVal->compareTo(aStr1) == 0);
-// LLA:
-// LLA: c_rtl_tres_state
-// LLA: (
-// LLA: hRtlTestResult,
-// LLA: lastRes,
-// LLA: arrTestCase[i].comments,
-// LLA: createName( pMeth, "valueof_nagative double", i)
-// LLA: );
-// LLA:
-// LLA: res &= lastRes;
-// LLA:
-// LLA: }
-// LLA:
-// LLA: return ( res );
-// LLA: }
-
-//------------------------------------------------------------------------
-// testing the method valueOf()
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_valueOf(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start(hRtlTestResult, "valueOf");
- sal_Bool bTState = test_rtl_OString_valueOf_sal_Bool( hRtlTestResult );
-
- bTState &= test_rtl_OString_valueOf_sal_Char( hRtlTestResult );
-
- bTState &= test_rtl_OString_valueOf_Int32( hRtlTestResult );
- bTState &= test_rtl_OString_valueOf_Int32_Bounderies( hRtlTestResult );
- bTState &= test_rtl_OString_valueOf_Int32_Negative( hRtlTestResult );
- bTState &= test_rtl_OString_valueOf_Int32_WrongRadix( hRtlTestResult );
- bTState &= test_rtl_OString_valueOf_Int32_SmallestNegativeValue(
- hRtlTestResult );
-
- bTState &= test_rtl_OString_valueOf_Int64( hRtlTestResult );
- bTState &= test_rtl_OString_valueOf_Int64_Bounderies( hRtlTestResult );
- bTState &= test_rtl_OString_valueOf_Int64_Negative( hRtlTestResult );
- bTState &= test_rtl_OString_valueOf_Int64_WrongRadix( hRtlTestResult );
- bTState &= test_rtl_OString_valueOf_Int64_SmallestNegativeValue(
- hRtlTestResult );
-
- // LLA: the tests for valueOf(float) and valueOf(double) are moved to file
- // sal/qa/rtl/ostring/rtl_OString2.cxx
-
- // LLA: bTState &= test_rtl_OString_valueOf_float( hRtlTestResult );
- // LLA: bTState &= test_rtl_OString_valueOf_Float_Negative( hRtlTestResult );
-
- // LLA: bTState &= test_rtl_OString_valueOf_double( hRtlTestResult );
- // LLA: bTState &= test_rtl_OString_valueOf_Double_Negative( hRtlTestResult );
-
- c_rtl_tres_state_end(hRtlTestResult, "valueOf");
-// return ( bTState );
-}
-
-
-//------------------------------------------------------------------------
-// testing the method toChar()
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_toChar(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- c_rtl_tres_state_start(hRtlTestResult, "toChar");
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Char expVal;
- OString* input1;
- ~TestCase() {delete input1;}
- } TestCase;
-
-
- TestCase arrTestCase[] =
- {
- {"A", 'A', new OString("A")},
- {"a", 'a', new OString("a")},
- {"0", '0',new OString("0")},
- {"-", '-',new OString("-")},
- {"_", '_',new OString("_")},
-
-// TODO: may be UTF-8 values
-// {"0„6", '0„6',new OString("0„6")},
-// { "0„7", '0„7',new OString("0„7")},
-// {"0‹0", '0‹0',new OString("0‹0")},
-// {"06", '06',new OString("06")},
- {"\n", '\n',new OString("\n")},
- {"\'", '\'',new OString("\'")},
- {"\"", '\"',new OString("\"")},
- {"\0", '\0',new OString("\0")},
- {"", '\0',new OString("")},
- {"Sun Microsystems", 'S', new OString(kTestStr1)}
- };
-
-
- // sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++ )
- {
- sal_Char strRes = arrTestCase[i].input1->toChar();
- sal_Bool lastRes = ( strRes == arrTestCase[i].expVal );
-
- char com[MAXBUFLENGTH];
- com[0] = '\'';
- cpynstr(com + 1, (*arrTestCase[i].input1), MAXBUFLENGTH);
- int length = AStringLen( (*arrTestCase[i].input1) );
- com[length + 1] = '\'';
- com[length + 2] = 0;
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- com,
- createName( pMeth, "toChar", i )
- );
-
- }
-
- c_rtl_tres_state_end(hRtlTestResult, "toChar");
-// return (res);
-}
-
-
-//------------------------------------------------------------------------
-// testing the method toFloat()
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_toFloat(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- c_rtl_tres_state_start(hRtlTestResult, "toFloat");
- typedef struct TestCase
- {
- float expVal;
- OString* input1;
- float m_nPrecision;
- ~TestCase() {delete input1;}
- } TestCase;
-
-
- TestCase arrTestCase[] =
- {
- {3.0f, new OString("3"), 3e-7f},
- {3.1f, new OString("3.1"), 3e-7f},
- {3.1415f, new OString("3.1415"), 3e-7f},
- {3.14159f, new OString("3.14159"), 3e-7f},
- {3.141592f, new OString("3.141592"), 3e-7f},
- {3.1415926f, new OString("3.1415926"), 3e-7f},
- {3.14159265f, new OString("3.14159265"), 3e-7f},
- {3.141592653589793238462643f,
- new OString("3.141592653589793238462643"), 3e-7f},
- {6.5822e-16f, new OString("6.5822e-16"), 6e-16f * 1e-7f},
- {9.1096e-31f, new OString("9.1096e-31"), 9e-31f * 1e-7f},
- {2.997925e8f, new OString("2.997925e8"), 3e8f * 1e-7f},
- {6.241e18f, new OString("6.241e18"), 6e18f * 1e-7f},
- {3.1f, new OString("03.1"), 3e-7f},
- {3.1f, new OString(" 3.1"), 3e-7f},
- {-3.1f, new OString("-3.1"), 3e-7f},
- {3.1f, new OString("+3.1"), 3e-7f},
- {0.0f, new OString("-0.0"), 1e-7f}
- };
-
-
- // sal_Bool res = sal_True;
- sal_uInt32 i;
-
- t_print("sizeof(float)=%d, sizeof(double)=%d\n", sizeof(float), sizeof(double));
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++ )
- {
- float fA = arrTestCase[i].input1->toFloat();
- float fB = arrTestCase[i].expVal;
- float fPrec = arrTestCase[i].m_nPrecision;
- float fResult = (float) fabs(fA - fB);
- // t_print("float result: A:(%.9f) B:(%.9f) fabs(A-B):%E\n", fA, fB, fResult);
- t_print("float result: A:(%E) B:(%E) fabs(A-B):%E\n", fA, fB, (float) fResult);
- sal_Bool lastRes = ( fResult <= fPrec );
-
- char com[MAXBUFLENGTH];
- com[0] = '\'';
- cpynstr(com + 1, (*arrTestCase[i].input1), MAXBUFLENGTH);
- int length = AStringLen( (*arrTestCase[i].input1) );
- com[length + 1] = '\'';
- com[length + 2] = 0;
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- com,
- createName( pMeth, "toFloat", i )
- );
-
- }
-
- c_rtl_tres_state_end(hRtlTestResult, "toFloat");
-// return (res);
-}
-
-
-//------------------------------------------------------------------------
-// testing the method toDouble()
-//------------------------------------------------------------------------
-// LLA: extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_toDouble(
-// LLA: hTestResult hRtlTestResult )
-// LLA: {
-// LLA: sal_Char methName[MAXBUFLENGTH];
-// LLA: sal_Char* pMeth = methName;
-// LLA:
-// LLA: c_rtl_tres_state_start(hRtlTestResult, "toDouble");
-// LLA: typedef struct TestCase
-// LLA: {
-// LLA: double expVal;
-// LLA: double expDiff;
-// LLA: OString* input1;
-// LLA: ~TestCase() {delete input1;}
-// LLA: } TestCase;
-// LLA:
-// LLA:
-// LLA: TestCase arrTestCase[] =
-// LLA: {
-// LLA: {3.0, 1e-35, new OString("3")},
-// LLA: {3.1, 1e-2, new OString("3.1")},
-// LLA: {3.1415, 1e-5, new OString("3.1415")},
-// LLA: {3.1415926535, 1e-11, new OString("3.1415926535")},
-// LLA: {3.141592653589793, 1e-15,
-// LLA: new OString("3.141592653589793")},
-// LLA: {3.1415926535897932, 1e-16,
-// LLA: new OString("3.1415926535897932")},
-// LLA: {3.14159265358979323, 1e-15,
-// LLA: new OString("3.14159265358979323")},
-// LLA: {3.141592653589793238462643, 1e-15,
-// LLA: new OString("3.141592653589793238462643")},
-// LLA: {6.5822e-16, 1e-20, new OString("6.5822e-16")},
-// LLA: {9.1096e-31, 1e-35, new OString("9.1096e-31")},
-// LLA: {2.997925e8, 10, new OString("2.997925e8")},
-// LLA: {6.241e18, 100, new OString("6.241e18")},
-// LLA: {1.7e-308, 1e-35, new OString("1.7e-308")},
-// LLA: {1.7e+308, 100, new OString("1.7e+308")},
-// LLA: {3.1, 1e-2, new OString("03.1")},
-// LLA: {3.1, 1e-2, new OString(" 3.1")},
-// LLA: {-3.1, 1e-2, new OString("-3.1")},
-// LLA: {3.1, 1e-2, new OString("+3.1")},
-// LLA: {0.0, 1e-2, new OString("-0.0")}
-// LLA: };
-// LLA:
-// LLA: sal_Bool res = sal_True;
-// LLA: sal_Int32 i;
-// LLA:
-// LLA: for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++ )
-// LLA: {
-// LLA: double dRes = arrTestCase[i].input1->toDouble();
-// LLA: double dErg = dRes - arrTestCase[i].expVal ;
-// LLA: double dComp = fabs( dErg );
-// LLA: sal_Bool lastRes = ( dComp <= arrTestCase[i].expDiff );
-// LLA:
-// LLA: char com[MAXBUFLENGTH];
-// LLA: com[0] = '\'';
-// LLA: cpynstr(com + 1, (*arrTestCase[i].input1), MAXBUFLENGTH);
-// LLA: int length = AStringLen( (*arrTestCase[i].input1) );
-// LLA: com[length + 1] = '\'';
-// LLA: com[length + 2] = 0;
-// LLA:
-// LLA: c_rtl_tres_state
-// LLA: (
-// LLA: hRtlTestResult,
-// LLA: lastRes,
-// LLA: com,
-// LLA: createName( pMeth, "toDouble", i )
-// LLA: );
-// LLA:
-// LLA: }
-// LLA:
-// LLA: c_rtl_tres_state_end(hRtlTestResult, "toDouble");
-// LLA: // return (res);
-// LLA: }
-
-//------------------------------------------------------------------------
-// testing the method toBoolean()
-//------------------------------------------------------------------------
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_toBoolean(
- hTestResult hRtlTestResult)
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- c_rtl_tres_state_start(hRtlTestResult, "toBoolean");
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Bool expVal;
- OString* input;
-
- } TestCase;
-
- TestCase arrTestCase[]={
-
- {"expected true", sal_True, new OString("True")},
- {"expected false", sal_False, new OString("False")},
- {"expected true", sal_True, new OString("1")}
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Bool bRes = arrTestCase[i].input->toBoolean();
- sal_Bool lastRes = (bRes == arrTestCase[i].expVal);
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "toBoolean", i )
-
- );
- res &= lastRes;
- }
- c_rtl_tres_state_end(hRtlTestResult, "toBoolean");
-// return ( res );
-}
-
-
-
-//------------------------------------------------------------------------
-// testing the method toInt32( sal_Int16 radix = 2,8,10,16,36 )
-//------------------------------------------------------------------------
-sal_Bool test_toInt32( int num, const sal_Char** in,
-const sal_Int32 *expVal,sal_Int16 radix, hTestResult hRtlTestResult )
-{
- sal_Bool res = sal_True;
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
- sal_Int32 i;
-
- for( i = 0; i < num; i++ )
- {
- OString str(in[i]);
- sal_Int32 intRes = str.toInt32(radix);
- sal_Bool lastRes = (intRes == expVal[i]);
-
- char buf[MAXBUFLENGTH];
- buf[0] = '\'';
- cpynstr( buf + 1, in[i], MAXBUFLENGTH );
- int length = AStringLen( in[i] );
- buf[length + 1] = '\'';
- buf[length + 2] = 0;
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- buf,
- createName( pMeth,"toInt32", i )
- );
-
- res &= lastRes;
- }
-
- return( res );
-}
-
-sal_Bool SAL_CALL test_rtl_OString_toInt32_wrongRadix(
- hTestResult hRtlTestResult )
-{
- ::rtl::OString str("0");
-
- sal_Int32 iRes = str.toInt32(-1);
-
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- iRes == 0,
- "wrong radix -1",
- "toInt32( 0, wrong radix -1 )"
- )
- );
-}
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_toInt32(
- hTestResult hRtlTestResult )
-{
- sal_Int32 expValues[kBase36NumsCount];
- sal_Int32 i;
-
- c_rtl_tres_state_start(hRtlTestResult, "toInt32");
- for ( i = 0; i < kBase36NumsCount; i++ )
- expValues[i] = i;
-
- sal_Bool res = c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt32( kBinaryNumsCount, kBinaryNumsStr,
- expValues, kRadixBinary, hRtlTestResult ),
- "kBinaryNumsStr",
- "toInt32( radix 2 )"
- );
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt32( kInt32MaxNumsCount, kBinaryMaxNumsStr,
- kInt32MaxNums, kRadixBinary, hRtlTestResult ),
- "kBinaryMaxNumsStr",
- "toInt32_Boundaries( radix 2 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt32( kOctolNumsCount, kOctolNumsStr,
- expValues, kRadixOctol, hRtlTestResult ),
- "kOctolNumsStr",
- "toInt32( radix 8 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt32( kInt32MaxNumsCount, kOctolMaxNumsStr,
- (sal_Int32*)kInt32MaxNums, kRadixOctol, hRtlTestResult ),
- "kOctolMaxNumsStr",
- "toInt32_Boundaries( radix 8 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt32( kDecimalNumsCount, kDecimalNumsStr, expValues,
- kRadixDecimal, hRtlTestResult ),
- "kDecimalNumsStr",
- "toInt32( radix 10 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt32( kInt32MaxNumsCount, kDecimalMaxNumsStr,
- (sal_Int32*)kInt32MaxNums, kRadixDecimal, hRtlTestResult ),
- "kDecimalMaxNumsStr",
- "toInt32_Boundaries( radix 10 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt32( kHexDecimalNumsCount, kHexDecimalNumsStr, expValues,
- kRadixHexdecimal, hRtlTestResult ),
- "kHexDecimalNumsStr",
- "toInt32( radix 16 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt32( kInt32MaxNumsCount, kHexDecimalMaxNumsStr,
- (sal_Int32*)kInt32MaxNums, kRadixHexdecimal, hRtlTestResult ),
- "kHexDecimalMaxNumsStr",
- "toInt32_Boundaries( radix 16 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt32( kBase36NumsCount, kBase36NumsStr, expValues,
- kRadixBase36, hRtlTestResult ),
- "kBase36NumsStr",
- "toInt32( radix 36 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt32( kInt32MaxNumsCount, kBase36MaxNumsStr,
- (sal_Int32*)kInt32MaxNums, kRadixBase36, hRtlTestResult ),
- "kBase36MaxNumsStr",
- "toInt32_Boundaries( radix 36 )"
- );
-
- const sal_Int16 nSpecCases = 5;
- static const sal_Char *spString[nSpecCases] =
- {
- "-1",
- "+1",
- " 1",
- " -1",
- "001"
- };
-
- sal_Int32 expSpecVal[nSpecCases] =
- {
- -1,
- 1,
- 1,
- -1,
- 1
- };
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt32( nSpecCases, spString, expSpecVal,
- kRadixDecimal, hRtlTestResult ),
- "special cases",
- "toInt32( specialcases )"
- );
-
- res &= test_rtl_OString_toInt32_wrongRadix( hRtlTestResult );
-
- c_rtl_tres_state_end(hRtlTestResult, "toInt32");
-// return ( res );
-}
-
-//------------------------------------------------------------------------
-// testing the method toInt64( sal_Int16 radix = 2,8,10,16,36 )
-//------------------------------------------------------------------------
-sal_Bool test_toInt64( int num, const sal_Char** in,
-const sal_Int64 *expVal,sal_Int16 radix, hTestResult hRtlTestResult )
-{
- sal_Bool res = sal_True;
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
- sal_Int32 i;
-
- for( i = 0; i < num; i++ )
- {
- OString str( in[i] );
- sal_Int64 intRes = str.toInt64( radix );
- sal_Bool lastRes = ( intRes == expVal[i] );
-
- char buf[MAXBUFLENGTH];
- buf[0] = '\'';
- cpynstr( buf + 1, in[i], MAXBUFLENGTH );
- int length = AStringLen(in[i]);
- buf[length + 1] = '\'';
- buf[length + 2] = 0;
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- buf,
- createName( pMeth, "toInt64", i )
- );
-
- res &= lastRes;
- }
- return (res);
-}
-
-sal_Bool SAL_CALL test_rtl_OString_toInt64_wrongRadix(
- hTestResult hRtlTestResult )
-{
- ::rtl::OString str("0");
-
- sal_Int64 iRes = str.toInt64(-1);
-
- return (
-
- c_rtl_tres_state
- ( hRtlTestResult,
- iRes == 0,
- "wrong radix -1",
- "toInt64( wrong radix -1)"
- )
- );
-}
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_toInt64(
- hTestResult hRtlTestResult )
-{
- sal_Int64 expValues[kBase36NumsCount];
- sal_Int32 i;
-
- c_rtl_tres_state_start(hRtlTestResult, "toInt64");
- for (i = 0; i < kBase36NumsCount; expValues[i] = i, i++);
-
- sal_Bool res = c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt64( kBinaryNumsCount, kBinaryNumsStr, expValues,
- kRadixBinary, hRtlTestResult ),
- "kBinaryNumsStr",
- "toInt64( radix 2 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt64( kInt32MaxNumsCount, kBinaryMaxNumsStr,
- (sal_Int64*)kInt64MaxNums, kRadixBinary, hRtlTestResult ),
- "kBinaryMaxNumsStr",
- "toInt64_Boundaries( radix 2 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt64( kOctolNumsCount, kOctolNumsStr, expValues,
- kRadixOctol, hRtlTestResult ),
- "kOctolNumsStr",
- "toInt64( radix 8 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt64( kInt32MaxNumsCount, kOctolMaxNumsStr,
- (sal_Int64*)kInt64MaxNums, kRadixOctol, hRtlTestResult ),
- "kOctolMaxNumsStr",
- "toInt64_Boundaries( radix 8 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt64( kDecimalNumsCount, kDecimalNumsStr, expValues,
- kRadixDecimal, hRtlTestResult ),
- "kDecimalNumsStr",
- "toInt64( radix 10 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt64( kInt32MaxNumsCount, kDecimalMaxNumsStr,
- (sal_Int64*)kInt64MaxNums, kRadixDecimal, hRtlTestResult ),
- "kDecimalMaxNumsStr",
- "toInt64_Boundaries( radix 10 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt64( kHexDecimalNumsCount, kHexDecimalNumsStr, expValues,
- kRadixHexdecimal, hRtlTestResult ),
- "kHexDecimalNumsStr",
- "toInt64( radix 16 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt64( kInt32MaxNumsCount, kHexDecimalMaxNumsStr,
- (sal_Int64*)kInt64MaxNums, kRadixHexdecimal, hRtlTestResult ),
- "kHexDecimalMaxNumsStr",
- "toInt64_Boundaries( radix 16 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt64( kBase36NumsCount, kBase36NumsStr, expValues,
- kRadixBase36, hRtlTestResult ),
- "kBase36NumsStr",
- "toInt64( radix 36 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt64( kInt32MaxNumsCount, kBase36MaxNumsStr,
- (sal_Int64*)kInt64MaxNums, kRadixBase36, hRtlTestResult ),
- "kBase36MaxNumsStr",
- "toInt64_Boundaries( radix 36 )"
- );
-
-
-
- const sal_Int16 nSpecCases = 5;
- static const sal_Char *spString[nSpecCases] =
- {
- "-1",
- "+1",
- " 1",
- " -1",
- "001"
- };
-
- sal_Int64 expSpecVal[nSpecCases] =
- {
- -1,
- 1,
- 1,
- -1,
- 1
- };
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toInt64( nSpecCases, spString, expSpecVal,
- kRadixDecimal, hRtlTestResult ),
- "special cases",
- "toInt64( specialcases )"
- );
-
- res &= test_rtl_OString_toInt64_wrongRadix( hRtlTestResult );
-
- c_rtl_tres_state_end(hRtlTestResult, "toInt64");
-// return (res);
-}
-
-//------------------------------------------------------------------------
-// testing the method replace( sal_Char oldChar, sal_Char newChar )
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_replace(
- hTestResult hRtlTestResult)
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- c_rtl_tres_state_start(hRtlTestResult, "replace");
-typedef struct TestCase
-{
- sal_Char* comments;
- OString* expVal;
- OString* input;
- sal_Char oldChar;
- sal_Char newChar;
-
- ~TestCase() { delete input; delete expVal;}
-} TestCase;
-
-TestCase arrTestCase[]={
-
- {"string differs", new OString(kTestStr18),
- new OString(kTestStr4),'S','s'},
- {"string differs", new OString(kTestStr19),
- new OString(kTestStr17),(sal_Char)' ',(sal_Char)'-'},
- {"same string, no replace ", new OString(kTestStr22),
- new OString(kTestStr22),'*','8'}
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- ::rtl::OString aStr1;
- aStr1= arrTestCase[i].input->replace(arrTestCase[i].oldChar,
- arrTestCase[i].newChar);
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- (arrTestCase[i].expVal->compareTo(aStr1) == 0),
- arrTestCase[i].comments,
- createName( pMeth, "replace", i )
-
- );
- }
- c_rtl_tres_state_end(hRtlTestResult, "replace");
-// return ( res );
-}
-
-
-
-//------------------------------------------------------------------------
-// testing the method replaceAt( sal_Int32 index, sal_Int32 count,
-// const OString& newStr )
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString_replaceAt(
- hTestResult hRtlTestResult)
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- c_rtl_tres_state_start(hRtlTestResult, "replaceAt");
- typedef struct TestCase
- {
- sal_Char* comments;
- OString* expVal;
- OString* input;
- OString* newStr;
- sal_Int32 index;
- sal_Int32 count;
-
- ~TestCase() { delete input; delete expVal; delete newStr;}
- } TestCase;
-
- TestCase arrTestCase[]=
- {
-
- { "string differs", new OString(kTestStr2), new OString(kTestStr22),
- new OString(kTestStr2), 0, kTestStr22Len },
-
- { "larger index", new OString(kTestStr1), new OString(kTestStr7),
- new OString(kTestStr8), 64, kTestStr8Len },
-
- { "larger count", new OString(kTestStr2), new OString(kTestStr22),
- new OString(kTestStr2),0, 64 },
-
- { "navigate index", new OString(kTestStr2), new OString(kTestStr22),
- new OString(kTestStr2), -64, 64 },
-
- { "null string", new OString(""),
- new OString(kTestStr14),new OString(""), 0, kTestStr14Len }
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- ::rtl::OString aStr1;
- aStr1= arrTestCase[i].input->replaceAt( arrTestCase[i].index,
- arrTestCase[i].count, *arrTestCase[i].newStr );
-
- sal_Bool lastRes = ( arrTestCase[i].expVal->compareTo(aStr1) == 0 );
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "replaceAt", i )
-
- );
- res &= lastRes;
- }
- c_rtl_tres_state_end(hRtlTestResult, "replaceAt");
-// return ( res );
-}
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OString( hTestResult hRtlTestResult )
-{
-
- c_rtl_tres_state_start(hRtlTestResult, "rtl_OString" );
-
- test_rtl_OString_ctors( hRtlTestResult );
- test_rtl_OString_getLength( hRtlTestResult );
- test_rtl_OString_equals( hRtlTestResult );
- test_rtl_OString_equalsIgnoreAsciiCase( hRtlTestResult );
- test_rtl_OString_compareTo( hRtlTestResult );
- test_rtl_OString_op_cmp( hRtlTestResult );
- test_rtl_OString_op_neq( hRtlTestResult );
- test_rtl_OString_op_g( hRtlTestResult );
- test_rtl_OString_op_l( hRtlTestResult );
- test_rtl_OString_op_ge( hRtlTestResult );
- test_rtl_OString_op_le( hRtlTestResult );
- test_rtl_OString_op_eq( hRtlTestResult );
- test_rtl_OString_op_plus( hRtlTestResult );
- test_rtl_OString_op_peq( hRtlTestResult );
- test_rtl_OString_op_cscs( hRtlTestResult );
- test_rtl_OString_getStr( hRtlTestResult );
- test_rtl_OString_copy( hRtlTestResult );
- test_rtl_OString_concat( hRtlTestResult );
- test_rtl_OString_toAsciiLowerCase( hRtlTestResult );
- test_rtl_OString_toAsciiUpperCase( hRtlTestResult );
- test_rtl_OString_trim( hRtlTestResult );
- test_rtl_OString_valueOf( hRtlTestResult );
- test_rtl_OString_toChar( hRtlTestResult );
- test_rtl_OString_toFloat( hRtlTestResult );
- // LLA: test_rtl_OString_toDouble( hRtlTestResult );
- test_rtl_OString_toBoolean( hRtlTestResult );
- test_rtl_OString_toInt32( hRtlTestResult );
- test_rtl_OString_toInt64( hRtlTestResult );
- test_rtl_OString_replace( hRtlTestResult );
- test_rtl_OString_replaceAt( hRtlTestResult );
-
- c_rtl_tres_state_end(hRtlTestResult, "rtl_OString");
-}
-
-
-// -----------------------------------------------------------------------------
-void RegisterAdditionalFunctions(FktRegFuncPtr _pFunc)
-{
- if (_pFunc)
- {
- (_pFunc)(&test_rtl_OString, "");
-
- //# (_pFunc)(&test_rtl_OString_ctors, "");
- //# (_pFunc)(&test_rtl_OString_getLength, "");
- //# (_pFunc)(&test_rtl_OString_equals, "");
- //# (_pFunc)(&test_rtl_OString_equalsIgnoreAsciiCase, "");
- //# (_pFunc)(&test_rtl_OString_compareTo, "");
- //# (_pFunc)(&test_rtl_OString_op_cmp, "");
- //# (_pFunc)(&test_rtl_OString_op_neq, "");
- //# (_pFunc)(&test_rtl_OString_op_g, "");
- //# (_pFunc)(&test_rtl_OString_op_l, "");
- //# (_pFunc)(&test_rtl_OString_op_ge, "");
- //# (_pFunc)(&test_rtl_OString_op_le, "");
- //# (_pFunc)(&test_rtl_OString_op_eq, "");
- //# (_pFunc)(&test_rtl_OString_op_plus, "");
- //# (_pFunc)(&test_rtl_OString_op_peq, "");
- //# (_pFunc)(&test_rtl_OString_op_cscs, "");
- //# (_pFunc)(&test_rtl_OString_getStr, "");
- //# (_pFunc)(&test_rtl_OString_copy, "");
- //# (_pFunc)(&test_rtl_OString_concat, "");
- //# (_pFunc)(&test_rtl_OString_toAsciiLowerCase, "");
- //# (_pFunc)(&test_rtl_OString_toAsciiUpperCase, "");
- //# (_pFunc)(&test_rtl_OString_trim, "");
- //# (_pFunc)(&test_rtl_OString_valueOf, "");
- //# (_pFunc)(&test_rtl_OString_toChar, "");
- //# (_pFunc)(&test_rtl_OString_toFloat, "");
- //# (_pFunc)(&test_rtl_OString_toDouble, "");
- //# (_pFunc)(&test_rtl_OString_toBoolean, "");
- //# (_pFunc)(&test_rtl_OString_toInt32, "");
- //# (_pFunc)(&test_rtl_OString_toInt64, "");
- //# (_pFunc)(&test_rtl_OString_replace, "");
- //# (_pFunc)(&test_rtl_OString_replaceAt, "");
- }
-}
-
-/*
-D:\local\644\SRX644\sal\qa\rtl_OString.cxx(3559) : error C2664:
-'unsigned char (void (__cdecl *)(void *),const char *)'
- : cannot convert parameter 1 from
-'unsigned char (__cdecl *)(void *)' to 'void (__cdecl *)(void *)'
-
- This conversion requires a reinterpret_cast, a C-style cast or function-
-style cast
-*/
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl_strings/rtl_OUString.cxx b/sal/qa/rtl_strings/rtl_OUString.cxx
deleted file mode 100644
index 4e5dc49cc..000000000
--- a/sal/qa/rtl_strings/rtl_OUString.cxx
+++ /dev/null
@@ -1,3857 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-#include <sal/types.h>
-
-//# #include <rtl/tres.h>
-#include <testshl/tresstatewrapper.hxx>
-#include "stringhelper.hxx"
-#include <rtl/string.hxx>
-#include <rtl/ustring.h>
-#include <rtl/ustring.hxx>
-
-#include <osl/thread.h>
-#include <rtl_String_Const.h>
-#include <rtl_String_Utils.hxx>
-
-
-using ::rtl::OUString;
-using ::rtl::OString;
-
-//------------------------------------------------------------------------
-// test classes
-//------------------------------------------------------------------------
-const int MAXBUFLENGTH = 255;
-//------------------------------------------------------------------------
-// helper functions
-//------------------------------------------------------------------------
-static void unused()
-{
- // NEVER CALL SUCH FUNCTION!!!
- (void)input1StrLastDefault;
- (void)input1StrLastNormal;
- unused();
-}
-
-//------------------------------------------------------------------------
-// testing constructors
-//------------------------------------------------------------------------
-static sal_Bool test_rtl_OUString_ctor_001( hTestResult hRtlTestResult )
-{
-
- ::rtl::OUString aUStr;
- rtl_uString * pData = aUStr.pData;
-
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- pData->length == 0 &&
- ! *pData->buffer,
- "New OUString containing no characters",
- "ctor_001"
- )
- );
-}
-
-//------------------------------------------------------------------------
-
-static sal_Bool SAL_CALL test_rtl_OUString_ctor_002(
- hTestResult hRtlTestResult )
-{
- ::rtl::OUString aUStr( kTestStr1,
- kTestStr1Len,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString
- );
-
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- aUStr == aUStr1,
- "OUString from an ascii string",
- "ctor_002"
- )
- );
-}
-//------------------------------------------------------------------------
-
-static sal_Bool SAL_CALL test_rtl_OUString_ctor_003(
- hTestResult hRtlTestResult )
-{
- rtl_uString *rtlUStr =NULL ;
- rtl_uString_newFromAscii( &rtlUStr, kTestStr1 );
- ::rtl::OUString aUStr( rtlUStr );
-
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- aUStr == aUStr1,
- "New OUString from a rtl_uString",
- "ctor_003"
- )
- );
-}
-
-//------------------------------------------------------------------------
-
-static sal_Bool SAL_CALL test_rtl_OUString_ctor_004(
- hTestResult hRtlTestResult)
-{
- ::rtl::OUString aUStr( aUStr1 );
-
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- aUStr == aUStr1,
- "New OUString from unicode string",
- "ctor_004"
- )
- );
-}
-//------------------------------------------------------------------------
-
-static sal_Bool test_rtl_OUString_ctor_005( hTestResult hRtlTestResult )
-{
- ::rtl::OUString aUStr( aUStr2, kTestStr1Len );
-
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- aUStr == aUStr1,
- "New OUString from the first n characters of unicode string",
- "ctor_004"
- )
- );
-
-}
-
-
-//------------------------------------------------------------------------
-
-static sal_Bool test_rtl_OUString_ctor_006( hTestResult hRtlTestResult )
-{
- ::rtl::OUString aUStrtmp( aUStr1 );
- ::rtl::OUString aUStr( aUStrtmp );
-
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- aUStr==aUStrtmp,
- "New OUString from another OUString",
- "ctor_006"
- )
- );
-}
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_ctors(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "ctors");
- sal_Bool DCState = test_ini_uString();
- (void)DCState;
- sal_Bool bTSState = test_rtl_OUString_ctor_001( hRtlTestResult );
- bTSState &= test_rtl_OUString_ctor_002( hRtlTestResult);
- bTSState &= test_rtl_OUString_ctor_003( hRtlTestResult);
- bTSState &= test_rtl_OUString_ctor_004( hRtlTestResult);
- bTSState &= test_rtl_OUString_ctor_005( hRtlTestResult);
- bTSState &= test_rtl_OUString_ctor_006( hRtlTestResult);
- c_rtl_tres_state_end( hRtlTestResult, "ctors");
-// return( bTSState );
-}
-
-
-
-//------------------------------------------------------------------------
-// testing the method getLength
-//------------------------------------------------------------------------
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_getLength(
- hTestResult hRtlTestResult)
-{
- c_rtl_tres_state_start( hRtlTestResult, "getLength");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Int32 expVal;
- OUString* input;
- ~TestCase() { delete input;}
- } TestCase;
-
- TestCase arrTestCase[]={
-
- {"length of ascii string", kTestStr1Len,
- new OUString( kTestStr1,
- kTestStr1Len,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)},
- {"length of ascci string of size 1", 1,
- new OUString( "1",
- 1,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)},
- {"length of empty string (default constructor)", 0, new OUString()},
- {"length of empty string (empty ascii string arg)",0,
- new OUString( "",
- 0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)},
- {"length of empty string (string arg = '\\0')", 0,
- new OUString( "\0",
- 0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)}
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Int32 length = arrTestCase[i].input->getLength();
- sal_Bool lastRes = (length == arrTestCase[i].expVal);
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "getLength", i )
-
- );
- res &= lastRes;
- }
- c_rtl_tres_state_end( hRtlTestResult, "getLength");
-// return ( res );
-}
-
-//------------------------------------------------------------------------
-// testing the method equals( const OString & aStr )
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_equals(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "equals");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Bool expVal;
- OUString* input1;
- OUString* input2;
- ~TestCase() { delete input1;delete input2;}
- } TestCase;
-
- TestCase arrTestCase[]={
-
- {"same size", sal_True, new OUString(aUStr1), new OUString(aUStr1)},
- {"different size", sal_False, new OUString(aUStr1),
- new OUString(aUStr2)
- },
- {"same size, no case match", sal_False, new OUString(aUStr1),
- new OUString(aUStr3)
- },
- {"two empty strings(def. constructor)", sal_True, new OUString(),
- new OUString()
- },
- {"empty(def.constructor) and non empty", sal_False, new OUString(),
- new OUString(aUStr2)
- },
- {"non empty and empty(def. constructor)", sal_False,
- new OUString(aUStr1),
- new OUString()
- },
- {"two empty strings(string arg = '\\0')", sal_True,
- new OUString( "",
- 0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString),
- new OUString( "",
- 0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)
- },
- {"empty(string arg = '\\0') and non empty", sal_False,
- new OUString( "",
- 0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString),
- new OUString(aUStr2)
- },
- {"non empty and empty(string arg = '\\0')", sal_False,
- new OUString(aUStr1),
- new OUString( "",
- 0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)
- }
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Bool lastRes =
- ( arrTestCase[i].input1->equals(*(arrTestCase[i].input2)) ==
- arrTestCase[i].expVal );
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "equals", i )
- );
-
- res &= lastRes;
- }
- c_rtl_tres_state_end( hRtlTestResult, "equals");
-// return (res);
-}
-
-//------------------------------------------------------------------------
-// testing the method equalsIgnoreAsciiCase( const OString & aStr )
-//------------------------------------------------------------------------
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_equalsIgnoreAsciiCase(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "equalsIgnoreAsciiCase");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Bool expVal;
- OUString* input1;
- OUString* input2;
- ~TestCase() { delete input1;delete input2;}
- } TestCase;
-
- TestCase arrTestCase[]={
- {"same strings but different cases",sal_True,new OUString(aUStr4),
- new OUString(aUStr5)
- },
- {"same strings",sal_True,new OUString(aUStr4),
- new OUString(aUStr4)},
- {"with equal beginning",sal_False,new OUString(aUStr2),
- new OUString(aUStr4)
- },
- {"empty(def.constructor) and non empty",sal_False,new OUString(),
- new OUString(aUStr5)
- },
- {"non empty and empty(def.constructor)",sal_False,
- new OUString(aUStr4),
- new OUString()
- },
- {"two empty strings(def.constructor)",sal_True,new OUString(),
- new OUString()
- },
- {"different strings with equal length",sal_False,
- new OUString(aUStr10),
- new OUString(aUStr11)
- }
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Bool lastRes =
- (arrTestCase[i].input1->equalsIgnoreAsciiCase(*arrTestCase[i].input2) ==
- arrTestCase[i].expVal);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "equalsIgnoreAsciiCase", i )
- );
-
- res &= lastRes;
- }
- c_rtl_tres_state_end( hRtlTestResult, "equalsIgnoreAsciiCase");
-// return (res);
-}
-
-
-static sal_Bool SAL_CALL test_rtl_OUString_compareTo_001(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Int32 expVal;
- OUString* input1;
- OUString* input2;
- ~TestCase() { delete input1;delete input2;}
- } TestCase;
-
- TestCase arrTestCase[]={
-
- {"simple compare, str1 to str5",-1,new OUString(aUStr1),
- new OUString(aUStr5)
- },
- {"simple compare, str2 to str5",-1,new OUString(aUStr2),
- new OUString(aUStr5)
- },
- {"simple compare, str1 to str9",-1,new OUString(aUStr1),
- new OUString(aUStr9)
- },
- {"simple compare, str1 to str2",-1,new OUString(aUStr1),
- new OUString(aUStr2)
- },
- {"simple compare, str4 to str5",-1,new OUString(aUStr4),
- new OUString(aUStr5)
- },
- {"simple compare, str1 to str3",-1,new OUString(aUStr1),
- new OUString(aUStr3)
- },
- {"simple compare, str5 to str1",+1,new OUString(aUStr5),
- new OUString(aUStr1)
- },
- {"simple compare, str2 to str1",+1,new OUString(aUStr2),
- new OUString(aUStr1)
- },
- {"simple compare, str9 to str5",+1,new OUString(aUStr9),
- new OUString(aUStr5)
- },
- {"simple compare, str5 to str4",+1,new OUString(aUStr5),
- new OUString(aUStr4)
- },
- {"simple compare, str1 to str1",0,new OUString(aUStr1),
- new OUString(aUStr1)
- },
- {"simple compare, nullString to nullString",0,new OUString(),
- new OUString()
- },
- {"simple compare, nullString to str2",-1,new OUString(),
- new OUString(aUStr2)
- },
- {"simple compare, str1 to nullString",+1,new OUString(aUStr1),
- new OUString()
- }
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Int32 cmpRes = arrTestCase[i].input1->compareTo
- (*arrTestCase[i].input2);
- cmpRes = ( cmpRes == 0 ) ? 0 : ( cmpRes > 0 ) ? +1 : -1 ;
- sal_Bool lastRes = ( cmpRes == arrTestCase[i].expVal);
-
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "compareTo_001(const OString&)", i )
- );
-
- res &= lastRes;
- }
-
- return (res);
-}
-
-
-//------------------------------------------------------------------------
-// testing the method compareTo( const OString & rObj, sal_Int32 length )
-//------------------------------------------------------------------------
-static sal_Bool SAL_CALL test_rtl_OUString_compareTo_002(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Int32 expVal;
- sal_Int32 maxLength;
- OUString* input1;
- OUString* input2;
- ~TestCase() { delete input1;delete input2;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"compare with maxlength, str1 to str9, 16",-1,16,
- new OUString(aUStr1), new OUString(aUStr9)},
- {"compare with maxlength, str2 to str9, 32",-1,32,
- new OUString(aUStr2), new OUString(aUStr9)},
- {"compare with maxlength, str9 to str4, 16",+1,16,
- new OUString(aUStr9), new OUString(aUStr4)},
- {"compare with maxlength, str9 to str22, 32",+1,32,
- new OUString(aUStr9), new OUString(aUStr22)},
- {"compare with maxlength, str9 to str5, 16",0,16,
- new OUString(aUStr9), new OUString(aUStr5)},
- {"compare with maxlength, str9 to str9, 32",0,32,
- new OUString(aUStr9), new OUString(aUStr9)},
- {"compare with maxlength, str1 to str2, 32",-1,32,
- new OUString(aUStr1), new OUString(aUStr2)},
- {"compare with maxlength, str1 to str2, 32",-1,32,
- new OUString(aUStr1), new OUString(aUStr2)},
- {"compare with maxlength, str1 to str2", 0,-1,
- new OUString(aUStr1), new OUString(aUStr2)}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Int32 cmpRes = arrTestCase[i].input1->compareTo
- (*arrTestCase[i].input2, arrTestCase[i].maxLength);
- cmpRes = (cmpRes == 0) ? 0 : (cmpRes > 0) ? +1 : -1 ;
- sal_Bool lastRes = (cmpRes == arrTestCase[i].expVal);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "compareTo_002(const OString&, sal_Int32)", i )
- );
-
- res &= lastRes;
- }
-
- return (res);
-}
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_compareTo(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "compareTo");
- sal_Bool res = test_rtl_OUString_compareTo_001(hRtlTestResult);
- res &= test_rtl_OUString_compareTo_002(hRtlTestResult);
- c_rtl_tres_state_end( hRtlTestResult, "compareTo");
-// return (res);
-}
-
-//------------------------------------------------------------------------
-// testing the method match( const OUString & str, sal_Int32 fromIndex = 0 )
-//------------------------------------------------------------------------
-static sal_Bool SAL_CALL test_rtl_OUString_match_001(
- hTestResult hRtlTestResult)
-
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Bool expVal;
- OUString* input1;
- OUString* input2;
- ~TestCase() { delete input1;delete input2;}
- } TestCase;
-
- TestCase arrTestCase[]={
-
- {"aUStr2 and aUStr1", sal_True, new OUString(aUStr2),
- new OUString(aUStr1)},
- {"aUStr1 and aUStr2", sal_False, new OUString(aUStr1),
- new OUString(aUStr2)},
- {"aUStr5 and aUStr6", sal_False, new OUString(aUStr5),
- new OUString(aUStr6)},
- {"null and aUStr1", sal_False, new OUString( "",
- 0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString),
- new OUString(aUStr1)}
-
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Bool lastRes = ( arrTestCase[i].input1->match(
- *(arrTestCase[i].input2)) == arrTestCase[i].expVal );
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "match(const OUString & str)", i )
- );
-
- res &= lastRes;
- }
- return (res);
-}
-
-static sal_Bool SAL_CALL test_rtl_OUString_match_002(
- hTestResult hRtlTestResult )
-
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Bool expVal;
- sal_Int32 fromIndex;
- OUString* input1;
- OUString* input2;
- ~TestCase() { delete input1;delete input2;}
- } TestCase;
-
- TestCase arrTestCase[]={
-
- {"aUStr2 from 17 and aUStr6", sal_True, 17,
- new OUString(aUStr2),new OUString(aUStr6)},
- {"aUStr2 from 5 and aUStr6", sal_False, 5,
- new OUString(aUStr2),new OUString(aUStr6)},
- {"aUStr2 from 0 and aUStr1", sal_True, 0,
- new OUString(aUStr2),new OUString(aUStr1)},
- {"aUStr1 from 16 and null", sal_True, 16,
- new OUString(aUStr1),
- new OUString( "",
- 0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString
- )
- },
- {"aUStr1 from 5 and null", sal_True, 5,
- new OUString(aUStr1),
- new OUString( "",
- 0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString
- )
- },
- {"aUStr2 from -1 and aUStr1", sal_False, -1,
- new OUString(aUStr2),new OUString(aUStr1)},
- {"aUStr5 from 2 and aUStr4", sal_False, 2,
- new OUString(aUStr5),new OUString(aUStr4)},
- {"aUStr2 from 18 and aUStr1", sal_False, 18,
- new OUString(aUStr2),new OUString(aUStr1)}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Bool lastRes = ( arrTestCase[i].input1->match
- (*(arrTestCase[i].input2),arrTestCase[i].fromIndex) ==
- arrTestCase[i].expVal );
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth,
- "match(const OUString & str,sal_Int32 fromIndex = 0)", i )
-
- );
-
- res &= lastRes;
- }
- return (res);
-}
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_match(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "match");
- sal_Bool res = test_rtl_OUString_match_001(hRtlTestResult);
- res &= test_rtl_OUString_match_002(hRtlTestResult);
- c_rtl_tres_state_end( hRtlTestResult, "match");
-// return (res);
-}
-
-//------------------------------------------------------------------------
-// testing the operator +=
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_op_eq(
- hTestResult hRtlTestResult)
-{
- c_rtl_tres_state_start( hRtlTestResult, "eq");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- OUString* input1;
- OUString* input2;
- ~TestCase() { delete input1; delete input2;}
- } TestCase;
-
- TestCase arrTestCase[]={
- {"null and Ustr1", new OUString, new OUString(aUStr1)},
- {"Ustr2 and Ustr1", new OUString(aUStr2),
- new OUString(aUStr1)},
- {""" and Ustr1 from bit charactor buffer",
- new OUString(aUStr1),
- new OUString( "",
- 0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString
- )},
- {"Ustr1 and Ustr2 from value and length",
- new OUString( aUStr2, kTestStr2Len ),
- new OUString(aUStr1)}
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- *(arrTestCase[i].input1) = *(arrTestCase[i].input2);
- sal_Bool lastRes = (*(arrTestCase[i].input1) ==
- *(arrTestCase[i].input2));
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "op_eq", i )
-
- );
- res &= lastRes;
- }
- c_rtl_tres_state_end( hRtlTestResult, "eq");
-// return ( res );
-}
-
-//------------------------------------------------------------------------
-// testing the operator +=
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_op_peq(
- hTestResult hRtlTestResult)
-{
- c_rtl_tres_state_start( hRtlTestResult, "peq");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- OUString* expVal;
- OUString* input1;
- OUString* input2;
- ~TestCase() { delete input1; delete input2;}
- } TestCase;
-
- TestCase arrTestCase[]={
- {" ' '= ''+='' ", new OUString( "",
- 0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString
- ),
- new OUString( "",
- 0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString
- ),
- new OUString( "",
- 0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString
- )},
- {"Ustr1= null += Ustr1", new OUString(aUStr1),
- new OUString(), new OUString(aUStr1)},
- {"Ustr1= '' += Ustr1", new OUString(aUStr1),
- /*new OUString( "",
- 0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString
- )*/
- new OUString(),
- new OUString(aUStr1)},
- {"Ustr1PlusUStr6 = Ustr1 += Ustr6",
- new OUString(aUStr1PlusUStr6), new OUString(aUStr1),
- new OUString(aUStr6)},
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- *(arrTestCase[i].input1) += *(arrTestCase[i].input2);
- sal_Bool lastRes = (*(arrTestCase[i].expVal) ==
- *(arrTestCase[i].input1));
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "op_peq", i )
-
- );
- res &= lastRes;
- }
- c_rtl_tres_state_end( hRtlTestResult, "peq");
-// return ( res );
-}
-
-//------------------------------------------------------------------------
-// testing the operator const sal_Unicode * (csuc for short)
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_csuc(
- hTestResult hRtlTestResult)
-{
- c_rtl_tres_state_start( hRtlTestResult, "csuc");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- const sal_Unicode tmpUC=0x0;
- rtl_uString* tmpUstring = NULL;
- const sal_Char *tmpStr=kTestStr1;
- sal_Int32 tmpLen=(sal_Int32) kTestStr1Len;
- // sal_Int32 cmpLen = 0;
-
- rtl_string2UString( &tmpUstring, tmpStr, tmpLen,
- osl_getThreadTextEncoding(), OSTRING_TO_OUSTRING_CVTFLAGS );
- OSL_ASSERT(tmpUstring != NULL);
-
-
- typedef struct TestCase
- {
- sal_Char* comments;
- const sal_Unicode* expVal;
- sal_Int32 cmpLen;
- OUString* input1;
- ~TestCase() { delete input1;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"test normal ustring",(*tmpUstring).buffer,kTestStr1Len,
- new OUString(aUStr1)},
- {"test empty ustring",&tmpUC, 1, new OUString()}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- const sal_Unicode* pstr = *arrTestCase[i].input1;
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- cmpstr((sal_Char*)pstr,
- (sal_Char*)arrTestCase[i].expVal,
- arrTestCase[i].cmpLen),
- arrTestCase[i].comments,
- createName( pMeth, "const sal_Unicode*", i )
- );
- }
- c_rtl_tres_state_end( hRtlTestResult, "csuc");
-// return ( res );
-}
-
-//------------------------------------------------------------------------
-// testing the method const sal_Unicode * getStr()
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_getStr(
- hTestResult hRtlTestResult)
-{
- c_rtl_tres_state_start( hRtlTestResult, "getStr");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- const sal_Unicode tmpUC=0x0;
- rtl_uString* tmpUstring = NULL;
- const sal_Char *tmpStr=kTestStr1;
- sal_Int32 tmpLen=(sal_Int32) kTestStr1Len;
- // sal_Int32 cmpLen = 0;
-
- rtl_string2UString( &tmpUstring, tmpStr, tmpLen,
- osl_getThreadTextEncoding(), OSTRING_TO_OUSTRING_CVTFLAGS );
- OSL_ASSERT(tmpUstring != NULL);
-
-
- typedef struct TestCase
- {
- sal_Char* comments;
- const sal_Unicode* expVal;
- sal_Int32 cmpLen;
- OUString* input1;
- ~TestCase() { delete input1;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"test normal ustring",(*tmpUstring).buffer,kTestStr1Len,
- new OUString(aUStr1)},
- {"test empty ustring",&tmpUC, 1, new OUString()}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- const sal_Unicode* pstr = arrTestCase[i].input1->getStr();
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- cmpstr((sal_Char*)pstr,
- (sal_Char*)arrTestCase[i].expVal,
- arrTestCase[i].cmpLen),
- arrTestCase[i].comments,
- createName( pMeth, "getStr", i )
- );
- }
- c_rtl_tres_state_end( hRtlTestResult, "getStr");
-// return ( res );
-}
-
-
-//------------------------------------------------------------------------
-// testing the method sal_Int32 reverseCompareTo( const OUString & str )
-//-------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_reverseCompareTo(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "reverseCompareTo");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Int32 expVal;
- OUString* input1;
- OUString* input2;
- ~TestCase() { delete input1;delete input2;}
- } TestCase;
-
- TestCase arrTestCase[]={
-
- {"simple compare, str1 to str5",-1,new OUString(aUStr1),
- new OUString(aUStr5)
- },
- {"simple compare, str2 to str5",1,new OUString(aUStr2),
- new OUString(aUStr5)
- },
- {"simple compare, str1 to str9",-1,new OUString(aUStr1),
- new OUString(aUStr9)
- },
- {"simple compare, str4 to str5",-1,new OUString(aUStr4),
- new OUString(aUStr5)
- },
- {"simple compare, str5 to str1",+1,new OUString(aUStr5),
- new OUString(aUStr1)
- },
- {"simple compare, str2 to str1",+1,new OUString(aUStr2),
- new OUString(aUStr1)
- },
- {"simple compare, str1 to str1",0,new OUString(aUStr1),
- new OUString(aUStr1)
- },
- {"simple compare, nullString to nullString",0,new OUString(),
- new OUString()
- },
- {"simple compare, nullString to str2",-1,new OUString(),
- new OUString(aUStr2)
- },
- {"simple compare, str1 to nullString",+1,new OUString(aUStr1),
- new OUString()
- }
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Int32 cmpRes = arrTestCase[i].input1->reverseCompareTo
- (*arrTestCase[i].input2);
- cmpRes = ( cmpRes == 0 ) ? 0 : ( cmpRes > 0 ) ? +1 : -1 ;
- sal_Bool lastRes = ( cmpRes == arrTestCase[i].expVal);
-
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "compareTo(const OString&)", i )
- );
-
- res &= lastRes;
- }
- c_rtl_tres_state_end( hRtlTestResult, "reverseCompareTo");
-// return (res);
-}
-
-//------------------------------------------------------------------------
-// testing the method sal_Bool equalsAscii( const sal_Char* asciiStr )
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_equalsAscii(
- hTestResult hRtlTestResult)
-{
- c_rtl_tres_state_start( hRtlTestResult, "equalsAscii");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- const sal_Char *tmpAstr1="Sun Microsystems\0";
- const sal_Char *tmpAstr2="\0";
-
-
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Bool expVal;
- OUString* input1;
- const sal_Char* input2;
- ~TestCase() { delete input1;}
- } TestCase;
-
- TestCase arrTestCase[]={
- {"str1 with str1 ", sal_True, new OUString( kTestStr1,
- kTestStr1Len,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString
- ), tmpAstr1},
- {"str2 with str1 ", sal_False,new OUString( kTestStr2,
- kTestStr2Len,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString
- ), tmpAstr1},
- {"null with str1 ", sal_False, new OUString(), tmpAstr1},
- {"null with '' ", sal_True, new OUString(), tmpAstr2},
- {"'' with ''", sal_True, new OUString( "",
- 0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString
- ),
- tmpAstr2}
-
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
-
- sal_Bool lastRes = (arrTestCase[i].expVal ==
- arrTestCase[i].input1->equalsAscii(arrTestCase[i].input2));
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "equalsAscii", i )
-
- );
- res &= lastRes;
- }
- c_rtl_tres_state_end( hRtlTestResult, "equalsAscii");
-// return ( res );
-}
-
-
-
-//------------------------------------------------------------------------
-// testing the method sal_Bool equalsAsciiL(
-// const sal_Char* asciiStr, sal_Int32 asciiStrLength )
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_equalsAsciiL(
- hTestResult hRtlTestResult)
-{
- c_rtl_tres_state_start( hRtlTestResult, "equalsAsciiL");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- const sal_Char *tmpAstr1="Sun Microsystems\0";
- const sal_Char *tmpAstr2="\0";
- const sal_Char *tmpAstr3="Sun Microsystems Java Technology\0";
-
-
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Bool expVal;
- OUString* input1;
- const sal_Char* input2;
- sal_Int32 cmpLen;
- ~TestCase() { delete input1;}
- } TestCase;
-
- TestCase arrTestCase[]={
- {"str1 with str1,str1Len ", sal_True, new OUString( kTestStr1,
- kTestStr1Len,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString
- ), tmpAstr1, kTestStr1Len},
- {"str2 with str1,str1Len", sal_False,new OUString( kTestStr2,
- kTestStr2Len,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString
- ), tmpAstr1, kTestStr1Len},
- {"str1 with str2,str1Len", sal_True,new OUString( kTestStr1,
- kTestStr1Len,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString
- ), tmpAstr3, kTestStr1Len},
- {"null with str1,1 ", sal_False, new OUString(), tmpAstr1, 1},
- {"null with '',1 ", sal_False, new OUString(), tmpAstr2, 1},
- {"'' with '', 1", sal_False, new OUString( "",
- 0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString
- ),
- tmpAstr2, 1}
-
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
-
- sal_Bool lastRes = (arrTestCase[i].expVal ==
- arrTestCase[i].input1->equalsAsciiL(arrTestCase[i].input2,
- arrTestCase[i].cmpLen)
- );
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "equalsAsciiL", i )
-
- );
- res &= lastRes;
- }
- c_rtl_tres_state_end( hRtlTestResult, "equalsAsciiL");
-// return ( res );
-}
-
-//------------------------------------------------------------------------
-// testing the method sal_Int32 compareToAscii( const sal_Char* asciiStr )
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_compareToAscii(
- hTestResult hRtlTestResult)
-{
- c_rtl_tres_state_start( hRtlTestResult, "compareToAscii");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- const sal_Char *tmpAstr1="Sun Microsystems\0";
- const sal_Char *tmpAstr2="\0";
- const sal_Char *tmpAstr3="sun microsystems java technology\0";
- const sal_Char *tmpAstr4="Sun Microsystems Java Technology\0";
-
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Int32 expVal;
- OUString* input1;
- const sal_Char* input2;
- ~TestCase() { delete input1;}
- } TestCase;
-
- TestCase arrTestCase[]={
- {"str1 with str1 ", 0, new OUString( kTestStr1,
- kTestStr1Len,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString
- ), tmpAstr1},
- {"str1 with '' ", 83, new OUString( kTestStr1,
- kTestStr1Len,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString
- ), tmpAstr2},
- {"null with str1 ", -83 , new OUString(), tmpAstr1},
- {"null with '' ", 0, new OUString(), tmpAstr2},
- {"str1 with str9", -32, new OUString( kTestStr1,
- kTestStr1Len,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString
- ),
- tmpAstr3},
- {"str1 with str2", -32, new OUString( kTestStr1,
- kTestStr1Len,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString
- ),
- tmpAstr4}
-
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Bool lastRes = (arrTestCase[i].expVal ==
- arrTestCase[i].input1->compareToAscii(arrTestCase[i].input2));
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "equalsAscii", i )
-
- );
- res &= lastRes;
- }
- c_rtl_tres_state_end( hRtlTestResult, "compareToAscii");
-// return ( res );
-}
-
-
-//------------------------------------------------------------------------
-// testing the method valueOf( sal_Bool b )
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_valueOf_sal_Bool(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "Bool");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- OUString* expVal;
- sal_Bool input1;
-
- ~TestCase() {delete expVal;}
- }TestCase;
-
- TestCase arrTestCase[]=
- {
- {"input Bool 'true' and return OUString 'true'",
- new OUString("true",4,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString),
- sal_True
- },
- {"input Bool 'false' and return OUString 'false'",
- new OUString("false",5,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString),
- sal_False
- }
- };
-
- sal_Bool res;
- sal_uInt32 i;
-
- for(i=0;i<(sizeof(arrTestCase))/(sizeof(TestCase));i++)
- {
- sal_Bool lastRes=(*arrTestCase[i].expVal==
- OUString::valueOf(arrTestCase[i].input1)
-
- );
-
- c_rtl_tres_state(hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "valueOf( sal_Bool b )", i )
- );
-
- res &= lastRes;
- }
- c_rtl_tres_state_end( hRtlTestResult, "Bool");
-// return(res);
-}
-
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_valueOf_sal_Unicode(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "Unicode");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- sal_Unicode tmpchar1=97;
- sal_Unicode tmpchar2=53;
- sal_Unicode tmpchar3=0;
- sal_Unicode tmpchar4=32;
- sal_Unicode tmpchar5=47;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- OUString* expVal;
- sal_Unicode input1;
-
- ~TestCase() {delete expVal;}
- }TestCase;
-
- TestCase arrTestCase[]=
- {
- {"input Unicode 'a' and return OUString 'a'",
- new OUString(&tmpchar1,1),tmpchar1
- },
- {"input Unicode '5' and return OUString '5'",
- new OUString(&tmpchar2,1), tmpchar2
- },
- {"input Unicode 0 and return OUString 0",
- new OUString(&tmpchar3,1),tmpchar3
- },
- {"input Unicode ' ' and return OUString ' '",
- new OUString(&tmpchar4,1),tmpchar4
- },
- {"input Unicode '/' and return OUString ' '",
- new OUString(&tmpchar5,1),tmpchar5
- }
- };
-
- sal_Bool res=sal_True;
- sal_uInt32 i;
-
- for(i=0;i<(sizeof(arrTestCase))/(sizeof(TestCase));i++)
- {
- sal_Bool lastRes=(*(arrTestCase[i].expVal)==
- OUString::valueOf(arrTestCase[i].input1));
-
- c_rtl_tres_state(hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "valueOf( sal_Unicode c )", i )
- );
-
- res &= lastRes;
- }
- c_rtl_tres_state_end( hRtlTestResult, "Unicode");
-// return(res);
-}
-
-
-/**
- * Calls the method valueOf(T, radix) and compares
- * returned ustrings with ustrings that passed in the array resArray.
- *
- * @param T, type of argument, passed to valueOf
- * @param resArray, array of result ustrings to compare to
- * @param n the number of elements in the array resArray (testcases)
- * @param pTestResult the instance of the class TestResult
- * @param inArray [optional], array of value that is passed as first argument
- * to valueOf
- *
- * @return true, if all returned ustrings are equal to corresponding ustring in
- * resArray else, false.
- */
-template <class T>
-sal_Bool test_valueOf( const char** resArray, int n, sal_Int16 radix,
- hTestResult hRtlTestResult, const T *inArray )
-{
- sal_Bool bRes = sal_True;
-
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
- sal_Int32 i;
-// static sal_Unicode aUchar[50]={0x12};
-
- for (i = 0; i < n; i++)
- {
- ::rtl::OUString aStr1;
-
- OSL_ENSURE( i < 50, "ERROR: leave aUchar bound");
-
-// AStringToUStringCopy(aUchar,resArray[i]);
-// ::rtl::OUString aStr2(aUchar);
- rtl::OUString aStr2;
- aStr2 = OUString::createFromAscii(resArray[i]);
-
- ::rtl::OUString aStr3( "-",1,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString);
-
- if (inArray == 0)
- {
- aStr1 = ::rtl::OUString::valueOf((T)i, radix);
- }
- else
- {
- if ( inArray[i] < 0 )
- {
- sal_Unicode aStr4[100];
- OSL_ASSERT(strlen(resArray[i]) < 100);
-
- if(AStringToUStringCopy(aStr4,resArray[i]))
- {
- aStr2 = aStr3;
- aStr2 += aStr4;
- }
-
- }
- aStr1 = ::rtl::OUString::valueOf((T)inArray[i], radix);
- }
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- aStr2.compareTo(aStr1) == 0,
- (sal_Char*)resArray[i],
- createName( pMeth, "valueOf", i )
- );
- }
-
- return (bRes);
-}
-
-
-#define test_valueOf_Int32 test_valueOf<sal_Int32>
-#define test_valueOf_Int64 test_valueOf<sal_Int64>
-// LLA: #define test_valueOf_float test_valueOf<float>
-// LLA: #define test_valueOf_double test_valueOf<double>
-
-//------------------------------------------------------------------------
-// testing the method valueOf( sal_Int32 i, sal_Int16 radix=2 )
-// testing the method valueOf( sal_Int32 i, sal_Int16 radix=8 )
-// testing the method valueOf( sal_Int32 i, sal_Int16 radix=10 )
-// testing the method valueOf( sal_Int32 i, sal_Int16 radix=16 )
-// testing the method valueOf( sal_Int32 i, sal_Int16 radix=36 )
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int32(
- hTestResult hRtlTestResult )
-{
- sal_Bool bRes = sal_False;
-
- bRes = c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32((const char**)kBinaryNumsStr,
- kBinaryNumsCount, kRadixBinary, hRtlTestResult, 0 ),
- "kRadixBinary",
- "valueOf(sal_Int32, radix 2)"
- );
-
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32((const char**)kOctolNumsStr,
- kOctolNumsCount, kRadixOctol, hRtlTestResult, 0),
- "kRadixOctol",
- "valueOf(sal_Int32, radix 8)"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32((const char**)kDecimalNumsStr,
- kDecimalNumsCount, kRadixDecimal, hRtlTestResult, 0),
- "kRadixDecimal",
- "valueOf(sal_Int32, radix 10)"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32((const char**)kHexDecimalNumsStr,
- kHexDecimalNumsCount, kRadixHexdecimal, hRtlTestResult, 0),
- "kRadixHexdecimal",
- "valueOf(sal_Int32, radix 16)"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32((const char**)kBase36NumsStr,
- kBase36NumsCount, kRadixBase36, hRtlTestResult, 0),
- "kRadixBase36",
- "valueOf(sal_Int32, radix 36)"
- );
-
-
- return ( bRes );
-}
-
-//------------------------------------------------------------------------
-// testing the method valueOf( sal_Int32 l, sal_Int32 radix=2 )
-// where l = large constants
-// testing the method valueOf( sal_Int32 l, sal_Int32 radix=8 )
-// where l = large constants
-// testing the method valueOf( sal_Int32 l, sal_Int32 radix=10 )
-// where l = large constants
-// testing the method valueOf( sal_Int32 l, sal_Int32 radix=16 )
-// where l = large constants
-// testing the method valueOf( sal_Int32 l, sal_Int32 radix=36 )
-// where l = large constants
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int32_Bounderies(
- hTestResult hRtlTestResult )
-{
- sal_Bool bRes = sal_False;
-
- bRes = c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32((const char**)kBinaryMaxNumsStr,
- kInt32MaxNumsCount, kRadixBinary,
- hRtlTestResult, kInt32MaxNums),
- "kRadixBinary",
- "valueOf(salInt32, radix 2) Bounderies"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32((const char**)kOctolMaxNumsStr,
- kInt32MaxNumsCount, kRadixOctol,
- hRtlTestResult, kInt32MaxNums),
- "kRadixOctol",
- "valueOf(salInt32, radix 8) Bounderies"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32((const char**)kDecimalMaxNumsStr,
- kInt32MaxNumsCount, kRadixDecimal,
- hRtlTestResult, kInt32MaxNums),
- "kRadixDecimal",
- "valueOf(salInt32, radix 10) Bounderies"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32((const char**)kHexDecimalMaxNumsStr,
- kInt32MaxNumsCount, kRadixHexdecimal,
- hRtlTestResult, kInt32MaxNums),
- "kRadixHexdecimal",
- "valueOf(salInt32, radix 16) Bounderies"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32((const char**)kBase36MaxNumsStr,
- kInt32MaxNumsCount, kRadixBase36,
- hRtlTestResult, kInt32MaxNums),
- "kRadixBase36",
- "valueOf(salInt32, radix 36) Bounderies"
- );
-
- return ( bRes );
-}
-
-//------------------------------------------------------------------------
-// testing the method valueOf( sal_Int32 i, sal_Int16 radix=2 )
-// for negative value
-// testing the method valueOf( sal_Int32 i, sal_Int16 radix=8 )
-// for negative value
-// testing the method valueOf( sal_Int32 i, sal_Int16 radix=10 )
-// for negative value
-// testing the method valueOf( sal_Int32 i, sal_Int16 radix=16 )
-// for negative value
-// testing the method valueOf( sal_Int32 i, sal_Int16 radix=36 )
-// for negative value
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int32_Negative(
- hTestResult hRtlTestResult )
-{
- sal_Bool bRes = sal_False;
- sal_Int32 inArr[kBase36NumsCount];
- sal_Int32 i;
-
- for (i = 0; i < kBase36NumsCount; i++ )
- inArr[i] = -i;
-
- bRes = c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32( kBinaryNumsStr, kBinaryNumsCount,
- kRadixBinary, hRtlTestResult, inArr ),
- "negative Int32, kRadixBinary",
- "valueOf( negative Int32, radix 2 )"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32( kOctolNumsStr, kOctolNumsCount,
- kRadixOctol, hRtlTestResult, inArr ),
- "negative Int32, kRadixOctol",
- "valueOf( negative Int32, radix 8 )"
- );
-
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32( kDecimalNumsStr, kDecimalNumsCount,
- kRadixDecimal, hRtlTestResult, inArr ),
- "negative Int32, kRadixDecimal",
- "valueOf( negative Int32, radix 10 )"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32( kHexDecimalNumsStr, kHexDecimalNumsCount,
- kRadixHexdecimal, hRtlTestResult, inArr ),
- "negative Int32, kRadixHexdecimal",
- "valueOf( negative Int32, radix 16 )"
- );
-
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int32( kBase36NumsStr, kBase36NumsCount,
- kRadixBase36, hRtlTestResult, inArr ),
- "negative Int32, kRadixBase36",
- "valueOf( negative Int32, radix 36 )"
- );
-
- return ( bRes );
-}
-//------------------------------------------------------------------------
-// testing the method valueOf( sal_Int32 l, sal_Int32 radix ) where radix = -5
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int32_WrongRadix(
- hTestResult hRtlTestResult )
-{
- sal_Bool bRes = sal_False;
-
- sal_Int32 intVal = 11;
-
- ::rtl::OUString aStr1;
- ::rtl::OUString aStr2("11",2,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString);
-
- aStr1 = aStr1.valueOf( intVal, -5 );
-
- bRes = c_rtl_tres_state
- (
- hRtlTestResult,
- aStr2.compareTo( aStr1 ) == 0,
- "if radix not valid then radix must be 10",
- "valueOf(sal_Int32, sal_Int32 radix): radix = -5"
- );
-
- return (bRes);
-}
-
-
-//------------------------------------------------------------------------
-static sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int32_defaultParam(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- sal_Char* newUChar1="15";
- sal_Char* newUChar2="0";
- sal_Char* newUChar3="-15";
- sal_Char* newUChar4="2147483647";
- sal_Char* newUChar5="-2147483648";
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Int32 input1;
- OUString* expVal;
- ~TestCase() {delete expVal;}
- }TestCase;
-
- TestCase arrTestCase[]=
- {
- {"input Int32 15 and return OUString 15",15,
- new OUString(newUChar1,2,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)
- },
- {"input Int32 0 and return OUString 0",0,
- new OUString(newUChar2,1,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)
- },
- {"input Int32 -15 and return OUString -15",-15,
- new OUString(newUChar3,3,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)
- },
- {"input Int32 2147483647 and return OUString 2147483647", SAL_MAX_INT32 /* 2147483647 */,
- new OUString(newUChar4,10,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)
- },
- {"input Int32 -2147483648 and return OUString -2147483648",
- SAL_MIN_INT32 /* 2-2147483648 */,
- new OUString(newUChar5,11,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)
- }
- };
-
- sal_Bool res=sal_True;
- sal_uInt32 i;
-
- for(i=0;i<(sizeof(arrTestCase))/(sizeof(TestCase));i++)
- {
- sal_Bool lastRes=(*(arrTestCase[i].expVal)==
- OUString::valueOf(arrTestCase[i].input1));
-
- c_rtl_tres_state(hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth,
- "valueOf( sal_Int32 i, sal_Int16 radix = 10 )", i )
- );
-
- res &= lastRes;
- }
-
- return(res);
-
-}
-//------------------------------------------------------------------------
-// testing the method valueOf( sal_Int64 l, sal_Int16 radix=2 )
-// testing the method valueOf( sal_Int64 l, sal_Int16 radix=8 )
-// testing the method valueOf( sal_Int64 l, sal_Int16 radix=10 )
-// testing the method valueOf( sal_Int64 l, sal_Int16 radix=16 )
-// testing the method valueOf( sal_Int64 l, sal_Int16 radix=36 )
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int64(
- hTestResult hRtlTestResult )
-{
- sal_Bool bRes = sal_False;
-
- bRes = c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64((const char**)kBinaryNumsStr,
- kBinaryNumsCount, kRadixBinary, hRtlTestResult, 0),
- "kRadixBinary",
- "valueOf(sal_Int64, radix 2)_"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64((const char**)kOctolNumsStr,
- kOctolNumsCount, kRadixOctol, hRtlTestResult, 0),
- "kRadixOctol",
- "valueOf(sal_Int64, radix 8)_"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64((const char**)kDecimalNumsStr,
- kDecimalNumsCount, kRadixDecimal, hRtlTestResult, 0),
- "kRadixDecimal",
- "valueOf(sal_Int64, radix 10)_"
- );
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64((const char**)kHexDecimalNumsStr,
- kHexDecimalNumsCount, kRadixHexdecimal, hRtlTestResult, 0),
- "kRadixHexdecimal",
- "valueOf(sal_Int64, radix 16)_"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64((const char**)kBase36NumsStr,
- kBase36NumsCount, kRadixBase36, hRtlTestResult, 0),
- "kRadixBase36",
- "valueOf(sal_Int64, radix 36)_"
- );
-
- return (bRes);
-}
-
-//------------------------------------------------------------------------
-// testing the method valueOf( sal_Int64 l, sal_Int32 radix=2 )
-// where l = large constants
-// testing the method valueOf( sal_Int64 l, sal_Int32 radix=8 )
-// where l = large constants
-// testing the method valueOf( sal_Int64 l, sal_Int32 radix=10 )
-// where l = large constants
-// testing the method valueOf( sal_Int64 l, sal_Int32 radix=16 )
-// where l = large constants
-// testing the method valueOf( sal_Int64 l, sal_Int32 radix=36 )
-// where l = large constants
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int64_Bounderies(
- hTestResult hRtlTestResult )
-{
- sal_Bool bRes = sal_False;
-
- bRes = c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64((const char**)kBinaryMaxNumsStr,
- kInt64MaxNumsCount, kRadixBinary,
- hRtlTestResult, kInt64MaxNums),
- "kRadixBinary",
- "valueOf(salInt64, radix 2) Bounderies"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64((const char**)kOctolMaxNumsStr,
- kInt64MaxNumsCount, kRadixOctol,
- hRtlTestResult, kInt64MaxNums),
- "kRadixOctol",
- "valueOf(salInt64, radix 8) Bounderies"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64((const char**)kDecimalMaxNumsStr,
- kInt64MaxNumsCount, kRadixDecimal,
- hRtlTestResult, kInt64MaxNums),
- "kRadixDecimal",
- "valueOf(salInt64, radix 10) Bounderies"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64((const char**)kHexDecimalMaxNumsStr,
- kInt64MaxNumsCount, kRadixHexdecimal,
- hRtlTestResult, kInt64MaxNums),
- "kRadixHexdecimal",
- "valueOf(salInt64, radix 16) Bounderies"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64((const char**)kBase36MaxNumsStr,
- kInt64MaxNumsCount, kRadixBase36,
- hRtlTestResult, kInt64MaxNums),
- "kRadixBase36",
- "valueOf(salInt64, radix 36) Bounderies"
- );
-
- return ( bRes );
-}
-
-//------------------------------------------------------------------------
-// testing the method valueOf( sal_Int64 l, sal_Int16 radix=2 )
-// for negative value
-// testing the method valueOf( sal_Int64 l, sal_Int16 radix=8 )
-// for negative value
-// testing the method valueOf( sal_Int64 l, sal_Int16 radix=10 )
-// for negative value
-// testing the method valueOf( sal_Int64 l, sal_Int16 radix=16 )
-// for negative value
-// testing the method valueOf( sal_Int64 l, sal_Int16 radix=36 )
-// for negative value
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int64_Negative(
- hTestResult hRtlTestResult )
-{
- sal_Bool bRes = sal_False;
-
- sal_Int64 inArr[36];
- sal_Int32 i;
-
- for (i = 0; i < 36; i++) {
- inArr[i] = -i;
- }
-
-
- bRes = c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64( kBinaryNumsStr, kBinaryNumsCount,
- kRadixBinary, hRtlTestResult, inArr ),
- "negative Int64, kRadixBinary",
- "valueOf( negative Int64, radix 2 )"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64( kOctolNumsStr, kOctolNumsCount,
- kRadixOctol, hRtlTestResult, inArr ),
- "negative Int64, kRadixOctol",
- "valueOf( negative Int64, radix 8 )"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64( kDecimalNumsStr, kDecimalNumsCount,
- kRadixDecimal, hRtlTestResult, inArr ),
- "negative Int64, kRadixDecimal",
- "valueOf( negative Int64, radix 10 )"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64( kHexDecimalNumsStr, kHexDecimalNumsCount,
- kRadixHexdecimal, hRtlTestResult, inArr ),
- "negative Int64, kRadixHexDecimal",
- "valueOf( negative Int64, radix 16 )"
- );
-
- bRes &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_valueOf_Int64( kBase36NumsStr, kBase36NumsCount,
- kRadixBase36, hRtlTestResult, inArr),
- "negative Int64, kRadixBase36",
- "valueOf( negative Int64, radix 36 )"
- );
-
- return (bRes);
-}
-//------------------------------------------------------------------------
-// testing the method valueOf( sal_Int64 l, sal_Int32 radix )
-// where radix = -5
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int64_WrongRadix(
- hTestResult hRtlTestResult )
-{
- sal_Bool bRes = sal_False;
-
- sal_Int64 intVal = 11;
-
- ::rtl::OUString aStr1;
- ::rtl::OUString aStr2("11",2,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString);
-
- aStr1 = aStr1.valueOf( intVal, -5 );
-
- bRes = c_rtl_tres_state
- (
- hRtlTestResult,
- aStr2.compareTo(aStr1) == 0,
- "if radix not valid then radix must be 10",
- "valueOf(sal_Int64, sal_Int32 radix): radix = -5"
- );
-
- return (bRes);
-}
-
-//------------------------------------------------------------------------
-static sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int64_defaultParam(
- hTestResult hRtlTestResult )
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- sal_Char* newUChar1="15";
- sal_Char* newUChar2="0";
- sal_Char* newUChar3="-15";
- sal_Char* newUChar4= "9223372036854775807";
- sal_Char* newUChar5="-9223372036854775808";
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Int64 input1;
- OUString* expVal;
- ~TestCase() {delete expVal;}
- }TestCase;
-
- TestCase arrTestCase[]=
- {
- {"input Int64 15 and return OUString 15",15,
- new OUString(newUChar1,2,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)
- },
- {"input Int64 0 and return OUString 0",0,
- new OUString(newUChar2,1,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)
- },
- {"input Int64 -15 and return OUString -15",-15,
- new OUString(newUChar3,3,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)
- },
- {"input Int64 9223372036854775807 and return 9223372036854775807",
- SAL_MAX_INT64 /* 9223372036854775807*/,
- new OUString(newUChar4,19,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)
- },
- {"input Int64 -9223372036854775808 and return -9223372036854775808",
- SAL_MIN_INT64 /* 9223372036854775808*/,
- new OUString(newUChar5,20,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)
- }
- };
-
- sal_Bool res=sal_True;
- sal_uInt32 i;
-
- for(i=0;i<(sizeof(arrTestCase))/(sizeof(TestCase));i++)
- {
- sal_Bool lastRes=(*(arrTestCase[i].expVal)==
- OUString::valueOf(arrTestCase[i].input1));
-
- c_rtl_tres_state(hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth,
- "valueOf( sal_Int64 i, sal_Int16 radix = 10 )", i )
- );
-
- res &= lastRes;
- }
-
- return(res);
-
-}
-//------------------------------------------------------------------------
-// testing the method valueOf( float f )
-//------------------------------------------------------------------------
-// LLA: sal_Bool SAL_CALL test_rtl_OUString_valueOf_float(
-// LLA: hTestResult hRtlTestResult )
-// LLA: {
-// LLA: sal_Char methName[MAXBUFLENGTH];
-// LLA: sal_Char* pMeth =methName;
-// LLA:
-// LLA: typedef struct TestCase
-// LLA: {
-// LLA: sal_Char* comments;
-// LLA: float input1;
-// LLA: OUString* expVal;
-// LLA:
-// LLA: ~TestCase() {delete expVal;}
-// LLA: } TestCase;
-// LLA:
-// LLA: TestCase arrTestCase[] =
-// LLA: {
-// LLA: { "3.0", 3.0, new OUString("3.0",3,kEncodingRTLTextUSASCII,
-// LLA: kConvertFlagsOStringToOUString) },
-// LLA: { "3.5", 3.5f, new OUString("3.5",3,kEncodingRTLTextUSASCII,
-// LLA: kConvertFlagsOStringToOUString)},
-// LLA: { "3.0625", 3.0625f, new OUString("3.0625",6,kEncodingRTLTextUSASCII,
-// LLA: kConvertFlagsOStringToOUString)},
-// LLA: { "3.502525", 3.502525f, new OUString("3.502525",8,
-// LLA: kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString) },
-// LLA: { "3.141592", 3.141592f, new OUString("3.141592",8,
-// LLA: kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString) },
-// LLA: { "3.5025255", 3.5025255f, new OUString("3.5025255",9,
-// LLA: kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString) },
-// LLA: { "3.0039062", 3.00390625f, new OUString("3.0039062",9,
-// LLA: kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString) }
-// LLA: };
-// LLA:
-// LLA: sal_Bool res = sal_True;
-// LLA: sal_Int32 i;
-// LLA:
-// LLA: for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
-// LLA: {
-// LLA: ::rtl::OUString aStr1;
-// LLA: aStr1 = aStr1.valueOf( arrTestCase[i].input1 );
-// LLA: sal_Bool lastRes = (arrTestCase[i].expVal->compareTo(aStr1) == 0);
-// LLA:
-// LLA: c_rtl_tres_state
-// LLA: (
-// LLA: hRtlTestResult,
-// LLA: lastRes,
-// LLA: arrTestCase[i].comments,
-// LLA: createName( pMeth, "valueof_float", i)
-// LLA: );
-// LLA:
-// LLA: res &= lastRes;
-// LLA:
-// LLA: }
-// LLA:
-// LLA: return ( res );
-// LLA: }
-
-//------------------------------------------------------------------------
-// testing the method valueOf( float f ) for negative value
-//------------------------------------------------------------------------
-// LLA: sal_Bool SAL_CALL test_rtl_OUString_valueOf_Float_Negative(
-// LLA: hTestResult hRtlTestResult )
-// LLA: {
-// LLA: sal_Char methName[MAXBUFLENGTH];
-// LLA: sal_Char* pMeth =methName;
-// LLA:
-// LLA: typedef struct TestCase
-// LLA: {
-// LLA: sal_Char* comments;
-// LLA: float input1;
-// LLA: OUString* expVal;
-// LLA:
-// LLA: ~TestCase() {delete expVal;}
-// LLA: } TestCase;
-// LLA:
-// LLA: TestCase arrTestCase[] =
-// LLA: {
-// LLA: { "-3.0", -3.0, new OUString("-3.0",4,kEncodingRTLTextUSASCII,
-// LLA: kConvertFlagsOStringToOUString) },
-// LLA: { "-3.5", -3.5f, new OUString("-3.5",4,kEncodingRTLTextUSASCII,
-// LLA: kConvertFlagsOStringToOUString)},
-// LLA: { "-3.0625", -3.0625f, new OUString("-3.0625",7,
-// LLA: kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString)},
-// LLA: { "-3.502525", -3.502525f, new OUString("-3.502525",9,
-// LLA: kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString) },
-// LLA: { "-3.141592", -3.141592f, new OUString("-3.141592",9,
-// LLA: kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString) },
-// LLA: { "-3.5025255", -3.5025255f, new OUString("-3.5025255",10,
-// LLA: kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString) },
-// LLA: { "-3.0039062", -3.00390625f, new OUString("-3.0039062",10,
-// LLA: kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString) }
-// LLA: };
-// LLA:
-// LLA: sal_Bool res = sal_True;
-// LLA: sal_Int32 i;
-// LLA:
-// LLA: for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
-// LLA: {
-// LLA: ::rtl::OUString aStr1;
-// LLA: aStr1 = aStr1.valueOf( arrTestCase[i].input1 );
-// LLA: sal_Bool lastRes = (arrTestCase[i].expVal->compareTo(aStr1) == 0);
-// LLA:
-// LLA: c_rtl_tres_state
-// LLA: (
-// LLA: hRtlTestResult,
-// LLA: lastRes,
-// LLA: arrTestCase[i].comments,
-// LLA: createName( pMeth, "valueof_negative float", i)
-// LLA: );
-// LLA:
-// LLA: res &= lastRes;
-// LLA:
-// LLA: }
-// LLA:
-// LLA: return ( res );
-// LLA: }
-
-//------------------------------------------------------------------------
-// testing the method valueOf( double f )
-//------------------------------------------------------------------------
-// LLA: sal_Bool SAL_CALL test_rtl_OUString_valueOf_double(
-// LLA: hTestResult hRtlTestResult )
-// LLA: {
-// LLA: sal_Char methName[MAXBUFLENGTH];
-// LLA: sal_Char* pMeth =methName;
-// LLA:
-// LLA: typedef struct TestCase
-// LLA: {
-// LLA: sal_Char* comments;
-// LLA: double input1;
-// LLA: OUString* expVal;
-// LLA:
-// LLA: ~TestCase() {delete expVal;}
-// LLA: } TestCase;
-// LLA:
-// LLA: TestCase arrTestCase[] =
-// LLA: {
-// LLA: {"3.0", 3.0, new OUString("3.0",3,kEncodingRTLTextUSASCII,
-// LLA: kConvertFlagsOStringToOUString)},
-// LLA: {"3.5", 3.5, new OUString("3.5",3,kEncodingRTLTextUSASCII,
-// LLA: kConvertFlagsOStringToOUString)},
-// LLA: {"3.0625", 3.0625, new OUString("3.0625",6,kEncodingRTLTextUSASCII,
-// LLA: kConvertFlagsOStringToOUString)},
-// LLA: {"3.1415926535", 3.1415926535, new OUString("3.1415926535",12,
-// LLA: kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString)},
-// LLA: {"3.1415926535897931", 3.141592653589793,
-// LLA: new OUString("3.1415926535897931",18,kEncodingRTLTextUSASCII,
-// LLA: kConvertFlagsOStringToOUString)},
-// LLA: {"3.1415926535897931", 3.1415926535897932,
-// LLA: new OUString("3.1415926535897931",18,kEncodingRTLTextUSASCII,
-// LLA: kConvertFlagsOStringToOUString)},
-// LLA: {"3.1415926535897931", 3.14159265358979323,
-// LLA: new OUString("3.1415926535897931",18,kEncodingRTLTextUSASCII,
-// LLA: kConvertFlagsOStringToOUString)},
-// LLA: {"3.1415926535897931", 3.141592653589793238462643,
-// LLA: new OUString("3.1415926535897931",18,kEncodingRTLTextUSASCII,
-// LLA: kConvertFlagsOStringToOUString)}
-// LLA: };
-// LLA:
-// LLA: sal_Bool res = sal_True;
-// LLA: sal_Int32 i;
-// LLA:
-// LLA: for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
-// LLA: {
-// LLA: ::rtl::OUString aStr1;
-// LLA: aStr1 = aStr1.valueOf( arrTestCase[i].input1 );
-// LLA: sal_Bool lastRes = (arrTestCase[i].expVal->compareTo(aStr1) == 0);
-// LLA:
-// LLA: c_rtl_tres_state
-// LLA: (
-// LLA: hRtlTestResult,
-// LLA: lastRes,
-// LLA: arrTestCase[i].comments,
-// LLA: createName( pMeth, "valueof_double", i)
-// LLA: );
-// LLA:
-// LLA: res &= lastRes;
-// LLA:
-// LLA: }
-// LLA:
-// LLA: return ( res );
-// LLA: }
-
-
-//------------------------------------------------------------------------
-// testing the method valueOf( double f ) for negative value
-//------------------------------------------------------------------------
-// LLA: sal_Bool SAL_CALL test_rtl_OUString_valueOf_Double_Negative(
-// LLA: hTestResult hRtlTestResult )
-// LLA: {
-// LLA: sal_Char methName[MAXBUFLENGTH];
-// LLA: sal_Char* pMeth =methName;
-// LLA:
-// LLA: typedef struct TestCase
-// LLA: {
-// LLA: sal_Char* comments;
-// LLA: double input1;
-// LLA: OUString* expVal;
-// LLA:
-// LLA: ~TestCase() {delete expVal;}
-// LLA: } TestCase;
-// LLA:
-// LLA: TestCase arrTestCase[] =
-// LLA: {
-// LLA: {"-3.0", -3.0, new OUString("-3.0",4,kEncodingRTLTextUSASCII,
-// LLA: kConvertFlagsOStringToOUString)},
-// LLA: {"-3.5", -3.5, new OUString("-3.5",4,kEncodingRTLTextUSASCII,
-// LLA: kConvertFlagsOStringToOUString)},
-// LLA: {"-3.0625", -3.0625, new OUString("-3.0625",7,kEncodingRTLTextUSASCII,
-// LLA: kConvertFlagsOStringToOUString)},
-// LLA: {"-3.1415926535", -3.1415926535,
-// LLA: new OUString("-3.1415926535",13,kEncodingRTLTextUSASCII,
-// LLA: kConvertFlagsOStringToOUString)},
-// LLA: {"-3.1415926535897931", -3.141592653589793,
-// LLA: new OUString("-3.1415926535897931",19,kEncodingRTLTextUSASCII,
-// LLA: kConvertFlagsOStringToOUString)},
-// LLA: {"-3.1415926535897931", -3.1415926535897932,
-// LLA: new OUString("-3.1415926535897931",19,kEncodingRTLTextUSASCII,
-// LLA: kConvertFlagsOStringToOUString)},
-// LLA: {"-3.1415926535897931", -3.14159265358979323,
-// LLA: new OUString("-3.1415926535897931",19,kEncodingRTLTextUSASCII,
-// LLA: kConvertFlagsOStringToOUString)},
-// LLA: {"-3.1415926535897931", -3.141592653589793238462643,
-// LLA: new OUString("-3.1415926535897931",19,kEncodingRTLTextUSASCII,
-// LLA: kConvertFlagsOStringToOUString)}
-// LLA: };
-// LLA:
-// LLA: sal_Bool res = sal_True;
-// LLA: sal_Int32 i;
-// LLA:
-// LLA: for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
-// LLA: {
-// LLA: ::rtl::OUString aStr1;
-// LLA: aStr1 = aStr1.valueOf( arrTestCase[i].input1 );
-// LLA: sal_Bool lastRes = (arrTestCase[i].expVal->compareTo(aStr1) == 0);
-// LLA:
-// LLA: c_rtl_tres_state
-// LLA: (
-// LLA: hRtlTestResult,
-// LLA: lastRes,
-// LLA: arrTestCase[i].comments,
-// LLA: createName( pMeth, "valueof_nagative double", i)
-// LLA: );
-// LLA:
-// LLA: res &= lastRes;
-// LLA:
-// LLA: }
-// LLA:
-// LLA: return ( res );
-// LLA: }
-
-//------------------------------------------------------------------------
-// testing the method valueOf()
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_valueOf(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "valueOf");
- sal_Bool bTState = test_rtl_OUString_valueOf_Int32( hRtlTestResult );
- bTState &= test_rtl_OUString_valueOf_Int32_Bounderies( hRtlTestResult );
- bTState &= test_rtl_OUString_valueOf_Int32_Negative( hRtlTestResult );
- bTState &= test_rtl_OUString_valueOf_Int32_WrongRadix( hRtlTestResult );
- bTState &= test_rtl_OUString_valueOf_Int32_defaultParam(
- hRtlTestResult );
- bTState &= test_rtl_OUString_valueOf_Int64( hRtlTestResult );
- bTState &= test_rtl_OUString_valueOf_Int64_Bounderies( hRtlTestResult );
- bTState &= test_rtl_OUString_valueOf_Int64_Negative( hRtlTestResult );
- bTState &= test_rtl_OUString_valueOf_Int64_WrongRadix( hRtlTestResult );
- bTState &= test_rtl_OUString_valueOf_Int64_defaultParam(
- hRtlTestResult );
- // LLA: bTState &= test_rtl_OUString_valueOf_float( hRtlTestResult );
- // LLA: bTState &= test_rtl_OUString_valueOf_Float_Negative( hRtlTestResult );
-
- // LLA: bTState &= test_rtl_OUString_valueOf_double( hRtlTestResult );
- // LLA: bTState &= test_rtl_OUString_valueOf_Double_Negative( hRtlTestResult );
- c_rtl_tres_state_end( hRtlTestResult, "valueOf");
-// return ( bTState );
-}
-//------------------------------------------------------------------------
-// this is my testing code
-// testing the method createFromAscii( const sal_Char * value )
-//------------------------------------------------------------------------
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_createFromAscii(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "createFromAscii");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
-
- typedef struct TestCase
- {
- sal_Char* comments;
- const sal_Char* input1;
- OUString* expVal;
- ~TestCase() {delete expVal;}
-
- }TestCase;
-
- TestCase arrTestCase[]=
- {
-
- { "create OUString from sal_Char" ,kTestStr1,
- new OUString(kTestStr1,kTestStr1Len,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)
- },
- {
- "create OUString from empty", "",
- new OUString()
- },
- {
- "create OUString from empty(string arg = '\\0')","",
- new OUString("",0,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)
- }
-
- };
-
- sal_Bool res;
- sal_uInt32 i;
-
- for(i=0;i<(sizeof(arrTestCase))/(sizeof(TestCase));i++)
- {
- sal_Bool lastRes=(*(arrTestCase[i].expVal)==
- OUString::createFromAscii(arrTestCase[i].input1));
-
-
- {
- c_rtl_tres_state(hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "createFromAscii", i )
- );
- }
-
- res&=lastRes;
-
- }
-
- c_rtl_tres_state_end( hRtlTestResult, "createFromAscii");
-// return(res);
-}
-//------------------------------------------------------------------------
-// testing the method index( )
-//------------------------------------------------------------------------
-template <class T>
-sal_Bool test_index( const T* input1, int num,const sal_Int32* input2,
- const sal_Int32* expVal,int base,rtlTestResult hRtlTestResult)
-{
- sal_Bool res=sal_True;
- sal_Char methName[MAXBUFLENGTH];
- sal_Char *meth = '\0';
- sal_Char* pMeth=methName;
- sal_Int32 i;
- sal_Bool lastRes=sal_False;
-
- for(i=0;i<num;i++)
- {
- OUString str(aUStr2);
-
- if(base==0)
- {
- lastRes=(str.indexOf(input1[i])==expVal[i]);
- meth="indexOf_001";
- }
- if(base==1)
- {
- lastRes=(str.indexOf(input1[i],input2[i])==expVal[i]);
- meth="indexOf_002";
- }
-// LLA: if(base==2)
-// LLA: {
-// LLA: lastRes=(str.lastIndexOf(input1[i])==expVal[i]);
-// LLA: meth="lastIndexOf_001(sal_Unicode)";
-// LLA: }
-// LLA: if(base==3)
-// LLA: {
-// LLA: /*
-// LLA: OUString s4(&input1[i]);
-// LLA: rtl::OString sStr;
-// LLA: sStr <<= str;
-// LLA: t_print("str = %s\n", sStr.getStr());
-// LLA: rtl::OString sInput1;
-// LLA: sInput1 <<= s4; // rtl::OUString((sal_Unicode*)input1[i]);
-// LLA: t_print("%d = lastIndexOf(\"%s\", %d) =? %d\n", str.lastIndexOf(input1[i], input2[i]), sInput1.getStr(), input2[i], expVal[i]);
-// LLA: */
-// LLA: lastRes=(str.lastIndexOf(input1[i],input2[i])==expVal[i]);
-// LLA: meth="lastIndexOf_002(sal_Unicode , sal_Int32 )";
-// LLA: }
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- "index",
- createName( pMeth,meth, i )
- );
-
- res &= lastRes;
- }
-
- return( res );
-}
-template <class T>
-sal_Bool test_indexStr( const T** input1, int num,const sal_Int32* input2,
- const sal_Int32* expVal,int base,rtlTestResult hRtlTestResult)
-{
- sal_Bool res=sal_True;
- sal_Char methName[MAXBUFLENGTH];
- sal_Char *meth = '\0';
- sal_Char* pMeth=methName;
- sal_Int32 i;
- sal_Bool lastRes=sal_False;
-
- for(i=0;i<num;i++)
- {
- OUString str(aUStr2);
-
-
- if(base==0)
- {
- OUString s1(input1[i]);
- lastRes=(str.indexOf(s1)==expVal[i]);
- meth="indexOf_003";
- }
- if(base==1)
- {
- OUString s2(input1[i]);
- lastRes=(str.indexOf(s2,input2[i])==expVal[i]);
- meth="indexOf_004";
- }
-// LLA: if(base==2)
-// LLA: {
-// LLA: OUString s3(input1[i]);
-// LLA: lastRes=(str.lastIndexOf(s3)==expVal[i]);
-// LLA: meth="lastIndexOf_003(const OUString)";
-// LLA: }
-// LLA: if(base==3)
-// LLA: {
-// LLA: OUString s4(input1[i]);
-// LLA:
-// LLA: rtl::OString sStr;
-// LLA: sStr <<= str;
-// LLA: t_print("str = \"%s\"\n", sStr.getStr());
-// LLA: rtl::OString sInput1;
-// LLA: sInput1 <<= s4; // rtl::OUString((sal_Unicode*)input1[i]);
-// LLA: t_print("%d = lastIndexOf(\"%s\", %d) =? %d\n", str.lastIndexOf(input1[i], input2[i]), sInput1.getStr(), input2[i], expVal[i]);
-// LLA:
-// LLA: lastRes=(str.lastIndexOf(s4,input2[i])==expVal[i]);
-// LLA: meth="lastIndexOf_004(const OUString,sal_Int32)";
-// LLA: }
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- "index",
- createName( pMeth,meth, i )
- );
-
- res &= lastRes;
- }
-
- return( res );
-}
-//------------------------------------------------------------------------
-// testing the method indexOf( )
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OUString_indexOf_001(
- hTestResult hRtlTestResult )
-{
- sal_Bool bRes=sal_False;
-
- bRes=c_rtl_tres_state
- (
- hRtlTestResult,
- test_index<sal_Unicode>((const sal_Unicode*)input1Default,
- nDefaultCount,input2Default,
- expValDefault,0,hRtlTestResult),
- "index",
- "indexDefault(sal_Unicode ch, sal_Int32 fromIndex = 0)"
- );
-
- return ( bRes );
-}
-//------------------------------------------------------------------------
-// testing the method indexOf( )
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OUString_indexOf_002(
- hTestResult hRtlTestResult )
-{
- sal_Bool bRes=sal_False;
-
- bRes=c_rtl_tres_state
- (
- hRtlTestResult,
- test_index<sal_Unicode>((const sal_Unicode*)input1Normal,
- nNormalCount,input2Normal,
- expValNormal,1,hRtlTestResult),
- "index",
- "indexNormal(sal_Unicode ch, sal_Int32 fromIndex)"
- );
-
- return ( bRes );
-}
-//------------------------------------------------------------------------
-// testing the method indexOf( OUString ch, sal_Int32 fromIndex = 0 )
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OUString_indexOf_003(
- hTestResult hRtlTestResult )
-{
- sal_Bool bRes=sal_False;
-
- bRes=c_rtl_tres_state
- (
- hRtlTestResult,
- test_indexStr<sal_Unicode>((const sal_Unicode**)input1StrDefault,
- nStrDefaultCount,input2StrDefault,
- expValStrDefault,0,hRtlTestResult),
- "index",
- "indexDefault(OUString ch, sal_Int32 fromIndex = 0)"
- );
-
- return ( bRes );
-}
-//------------------------------------------------------------------------
-// testing the method indexOf( OUString ch, sal_Int32 fromIndex )
-//------------------------------------------------------------------------
-sal_Bool SAL_CALL test_rtl_OUString_indexOf_004(
- hTestResult hRtlTestResult )
-{
- sal_Bool bRes=sal_False;
-
- bRes=c_rtl_tres_state
- (
- hRtlTestResult,
- test_indexStr<sal_Unicode>((const sal_Unicode**)input1StrNormal,
- nStrNormalCount,input2StrNormal,
- expValStrNormal,1,hRtlTestResult),
- "indexOf",
- "indexOf(OUString ch, sal_Int32 fromIndex)"
- );
-
- return ( bRes );
-}
-// LLA: //------------------------------------------------------------------------
-// LLA: // testing the method lastIndexOf( sal_Unicode ch )
-// LLA: //------------------------------------------------------------------------
-// LLA: sal_Bool SAL_CALL test_rtl_OUString_lastIndexOf_001(
-// LLA: hTestResult hRtlTestResult )
-// LLA: {
-// LLA: sal_Bool bRes=sal_False;
-// LLA:
-// LLA: bRes=c_rtl_tres_state
-// LLA: (
-// LLA: hRtlTestResult,
-// LLA: test_index<sal_Unicode>((const sal_Unicode*)input1lastDefault,
-// LLA: nlastDefaultCount,input2lastDefault,
-// LLA: expVallastDefault,2,hRtlTestResult),
-// LLA: "lastIndex",
-// LLA: "lastIndexDefault(sal_Unicode ch)"
-// LLA: );
-// LLA:
-// LLA: return ( bRes );
-// LLA: }
-// LLA: //------------------------------------------------------------------------
-// LLA: // testing the method lastIndexOf( sal_Unicode ch, sal_Int32 fromIndex )
-// LLA: //------------------------------------------------------------------------
-// LLA: sal_Bool SAL_CALL test_rtl_OUString_lastIndexOf_002(
-// LLA: hTestResult hRtlTestResult )
-// LLA: {
-// LLA: sal_Bool bRes=sal_False;
-// LLA:
-// LLA: bRes=c_rtl_tres_state
-// LLA: (
-// LLA: hRtlTestResult,
-// LLA: test_index<sal_Unicode>((const sal_Unicode*)input1lastNormal,
-// LLA: nlastNormalCount,input2lastNormal,
-// LLA: expVallastNormal,3,hRtlTestResult),
-// LLA: "lastIndex",
-// LLA: "lastIndexNormal(sal_Unicode ch, sal_Int32 fromIndex)"
-// LLA: );
-// LLA:
-// LLA: return ( bRes );
-// LLA: }
-// LLA: //------------------------------------------------------------------------
-// LLA: // testing the method lastIndexOf( OUString ch )
-// LLA: //------------------------------------------------------------------------
-// LLA: sal_Bool SAL_CALL test_rtl_OUString_lastIndexOf_003(
-// LLA: hTestResult hRtlTestResult )
-// LLA: {
-// LLA: sal_Bool bRes=sal_False;
-// LLA:
-// LLA: bRes=c_rtl_tres_state
-// LLA: (
-// LLA: hRtlTestResult,
-// LLA: test_indexStr<sal_Unicode>((const sal_Unicode**)input1StrLastDefault,
-// LLA: nStrLastDefaultCount,input2StrLastDefault,
-// LLA: expValStrLastDefault,2,hRtlTestResult),
-// LLA: "lastIndexOf",
-// LLA: "lastIndexOf(OUString ch)"
-// LLA: );
-// LLA:
-// LLA: return ( bRes );
-// LLA: }
-// LLA: //------------------------------------------------------------------------
-// LLA: // testing the method lastIndexOf( OUString ch, sal_Int32 fromIndex )
-// LLA: //------------------------------------------------------------------------
-// LLA: sal_Bool SAL_CALL test_rtl_OUString_lastIndexOf_004(
-// LLA: hTestResult hRtlTestResult )
-// LLA: {
-// LLA: sal_Bool bRes=sal_False;
-// LLA:
-// LLA: for (int i=0;i<nStrLastNormalCount;i++)
-// LLA: {
-// LLA: rtl::OUString aStr = rtl::OUString(input1StrLastNormal[i]);
-// LLA: volatile int dummy = 0;
-// LLA: }
-// LLA:
-// LLA: bRes=c_rtl_tres_state
-// LLA: (
-// LLA: hRtlTestResult,
-// LLA: test_indexStr<sal_Unicode>((const sal_Unicode**)input1StrLastNormal,
-// LLA: nStrLastNormalCount,input2StrLastNormal,
-// LLA: expValStrLastNormal,3,hRtlTestResult),
-// LLA: "lastIndexOf",
-// LLA: "lastIndexOf(OUString ch, sal_Int32 fromIndex)"
-// LLA: );
-// LLA:
-// LLA: return ( bRes );
-// LLA: }
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_indexOf(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "indexOf");
- sal_Bool res = test_rtl_OUString_indexOf_001(hRtlTestResult);
- res &= test_rtl_OUString_indexOf_002(hRtlTestResult);
- res &= test_rtl_OUString_indexOf_003(hRtlTestResult);
- res &= test_rtl_OUString_indexOf_004(hRtlTestResult);
- c_rtl_tres_state_end( hRtlTestResult, "indexOf");
-// return ( res );
-}
-//------------------------------------------------------------------------
-// LLA: extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_lastIndexOf(
-// LLA: hTestResult hRtlTestResult )
-// LLA: {
-// LLA: c_rtl_tres_state_start( hRtlTestResult, "lastIndexOf");
-// LLA: sal_Bool res = test_rtl_OUString_lastIndexOf_001(hRtlTestResult);
-// LLA: res &= test_rtl_OUString_lastIndexOf_002(hRtlTestResult);
-// LLA: res &= test_rtl_OUString_lastIndexOf_003(hRtlTestResult);
-// LLA: res &= test_rtl_OUString_lastIndexOf_004(hRtlTestResult);
-// LLA: c_rtl_tres_state_end( hRtlTestResult, "lastIndexOf");
-// LLA: // return ( res );
-// LLA: }
-//------------------------------------------------------------------------
-// testing the method concat( const OString & aStr )
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_concat(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "concat");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth =methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- OUString* expVal;
- OUString* input1;
- OUString* input2;
- ~TestCase() { delete input1;delete input2; delete expVal;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"concatenates two ustrings",new OUString(aUStr1),
- new OUString(aUStr7), new OUString(aUStr8)},
- {"concatenates empty ustring",new OUString(aUStr1),
- new OUString(aUStr1), new OUString("",0,
- kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString)},
- {"concatenates to empty ustring",new OUString(aUStr1),new OUString("",
- 0,kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString),
- new OUString(aUStr1)},
- {"concatenates two empty ustrings",new OUString("",0,
- kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString),
- new OUString("",0,
- kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString),
- new OUString("",0,
- kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString)},
- {"concatenates ustring constructed by default constructor",
- new OUString(aUStr1),new OUString(aUStr1), new OUString()},
- {"concatenates to ustring constructed by default constructor",
- new OUString(aUStr1),new OUString(), new OUString(aUStr1)},
- {"concatenates two ustrings constructed by default constructor",
- new OUString(),new OUString(), new OUString()}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- OUString str = arrTestCase[i].input1->concat(*arrTestCase[i].input2);
- sal_Bool lastRes = (str == *arrTestCase[i].expVal);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "concat", i)
- );
-
- res &= lastRes;
-
- }
- c_rtl_tres_state_end( hRtlTestResult, "concat");
-// return ( res );
-}
-//------------------------------------------------------------------------
-// testing the method replaceAt( sal_Int32 index, sal_Int32 count,
-// const OUString& newStr )
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_replaceAt(
- rtlTestResult hRtlTestResult)
-{
- c_rtl_tres_state_start( hRtlTestResult, "replaceAt");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- OUString* expVal;
- OUString* input;
- OUString* newStr;
- sal_Int32 index;
- sal_Int32 count;
-
- ~TestCase() { delete input; delete expVal; delete newStr;}
- } TestCase;
-
- TestCase arrTestCase[]=
- {
-
- { "string differs", new OUString(aUStr2), new OUString(aUStr22),
- new OUString(aUStr2), 0, kTestStr22Len },
-
- { "larger index", new OUString(aUStr1), new OUString(aUStr7),
- new OUString(aUStr8), 64, kTestStr8Len },
-
- { "larger count", new OUString(aUStr2), new OUString(aUStr22),
- new OUString(aUStr2),0, 64 },
-
- { "navigate index", new OUString(aUStr2), new OUString(aUStr22),
- new OUString(aUStr2), -64, 64 },
-
- { "null ustring",
- new OUString("",0,
- kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString),
- new OUString(aUStr14),
- new OUString("",0,
- kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString),
- 0, kTestStr14Len }
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- ::rtl::OUString aStr1;
- aStr1 = arrTestCase[i].input->replaceAt( arrTestCase[i].index,
- arrTestCase[i].count, *arrTestCase[i].newStr );
-
- sal_Bool lastRes = ( arrTestCase[i].expVal->compareTo(aStr1) == 0 );
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "replaceAt", i )
-
- );
- res &= lastRes;
- }
-
- c_rtl_tres_state_end( hRtlTestResult, "replaceAt");
-// return ( res );
-}
-//------------------------------------------------------------------------
-// this is my testing code
-// testing the method replace( sal_Unicode oldChar, sal_Unicode newChar )
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_replace(
- hTestResult hRtlTestResult)
-{
- c_rtl_tres_state_start( hRtlTestResult, "replace");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- OUString* expVal;
- OUString* input;
- sal_Unicode oldChar;
- sal_Unicode newChar;
-
- ~TestCase() { delete input; delete expVal;}
- } TestCase;
-
- TestCase arrTestCase[]=
- {
- {"ustring differs", new OUString(aUStr18), new OUString(aUStr4),83,115},
- {"ustring differs", new OUString(aUStr19), new OUString(aUStr17),32,45},
- {"ustring must be empty", new OUString("",0,
- kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString),
- new OUString("",0,
- kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString),83,23},
- {"ustring must be empty", new OUString(),
- new OUString("",0,
- kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString),83,23},
- {"same ustring, no replace ", new OUString(aUStr22),
- new OUString(aUStr22),42,56}
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- ::rtl::OUString aStr1;
- aStr1= arrTestCase[i].input->replace(arrTestCase[i].oldChar,arrTestCase[i].newChar);
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- (arrTestCase[i].expVal->compareTo(aStr1) == 0),
- arrTestCase[i].comments,
- createName( pMeth, "replace", i )
-
- );
- }
- c_rtl_tres_state_end( hRtlTestResult, "replace");
-// return ( res );
-}
-//------------------------------------------------------------------------
-// testing the method toAsciiLowerCase()
-//-----------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_toAsciiLowerCase(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "toAsciiLowerCase");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth =methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- OUString* expVal;
- OUString* input1;
- ~TestCase() { delete input1; delete expVal;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
-
- {"only uppercase",new OUString(aUStr5),new OUString(aUStr4)},
- {"different cases",new OUString(aUStr5),new OUString(aUStr1)},
- {"different cases",new OUString(aUStr5),new OUString(aUStr3)},
- {"only lowercase",new OUString(aUStr5),new OUString(aUStr5)},
- {"empty ustring",new OUString("",0,
- kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString),
- new OUString("",0,
- kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString)},
- {"ustring constructed by default constructor",new OUString(),
- new OUString()},
- {"have special Unicode",new OUString("\23\12\34sun\13\45",6,
- kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString),
- new OUString("\23\12\34sun\13\45",6,
- kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString)}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
- sal_Bool lastRes=sal_False;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- OUString str = arrTestCase[i].input1->toAsciiLowerCase();
- if(i<=5)
- {
- lastRes = (str ==* arrTestCase[i].expVal);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "toAsciiLowerCase", i)
- );
- }
- else
- {
- c_rtl_tres_state
- (
- hRtlTestResult,
- sal_True,
- arrTestCase[i].comments,
- createName( pMeth, "toAsciiLowerCase", i)
- );
- }
- res &= lastRes;
- }
- c_rtl_tres_state_end( hRtlTestResult, "toAsciiLowerCase");
-// return ( res );
-}
-//------------------------------------------------------------------------
-// testing the method toAsciiUpperCase()
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_toAsciiUpperCase(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "toAsciiUpperCase");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth =methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- OUString* expVal;
- OUString* input1;
- ~TestCase() { delete input1; delete expVal;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"only lowercase",new OUString(aUStr4),new OUString(aUStr5)},
- {"mixed cases",new OUString(aUStr4),new OUString(aUStr3)},
- {"mixed cases",new OUString(aUStr4),new OUString(aUStr1)},
- {"only uppercase",new OUString(aUStr4),new OUString(aUStr4)},
- {"empty ustring",new OUString("",0,
- kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString),
- new OUString("",0,
- kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString)},
- {"ustring constructed by default constructor",new OUString(),
- new OUString()},
- {"have special Unicode",new OUString("\23\12\34SUN\13\45",6,
- kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString),
- new OUString("\23\12\34sun\13\45",6,
- kEncodingRTLTextUSASCII,kConvertFlagsOStringToOUString)}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
- sal_Bool lastRes=sal_False;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- OUString str = arrTestCase[i].input1->toAsciiUpperCase();
- if(i<=5)
- {
- lastRes = (str == *arrTestCase[i].expVal);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "toAsciiUpperCase", i)
- );
- }
- else
- {
- c_rtl_tres_state
- (
- hRtlTestResult,
- sal_True,
- arrTestCase[i].comments,
- createName( pMeth, "toAsciiUpperCase", i)
- );
- }
-
- res &= lastRes;
- }
- c_rtl_tres_state_end( hRtlTestResult, "toAsciiUpperCase");
-// return ( res );
-}
-
-//------------------------------------------------------------------------
-// testing the method trim()
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_trim(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "trim");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth =methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- OUString* expVal;
- OUString* input1;
- ~TestCase() { delete input1; delete expVal;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"removes space from the front",new OUString(aUStr1),
- new OUString(aUStr10)},
- {"removes space from the end",new OUString(aUStr1),
- new OUString(aUStr11)},
- {"removes space from the front and end",new OUString(aUStr1),
- new OUString(aUStr12)},
- {"removes several spaces from the end",new OUString(aUStr1),
- new OUString(aUStr13)},
- {"removes several spaces from the front",new OUString(aUStr1),
- new OUString(aUStr14)},
- {"removes several spaces from the front and one from the end",
- new OUString(aUStr1),
- new OUString(aUStr15)},
- {"removes one space from the front and several from the end",
- new OUString(aUStr1),
- new OUString(aUStr16)},
- {"removes several spaces from the front and end",
- new OUString(aUStr1),
- new OUString(aUStr17)},
- {"removes characters that have codes <= 32",new OUString(aUStr30),
- new OUString("\1\3\5\7\11\13\15\17sun\21\23\25\27\31\33\50",
- 18,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)},
- {"removes characters that have codes <= 32",new OUString(aUStr28),
- new OUString("\50\3\5\7\11\13\15\17sun\21\23\25\27\31\33\1",
- 18,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)},
- {"removes characters that have codes <= 32",new OUString(aUStr29),
- new OUString("\50\3\5\7\11\13\15\17sun\21\23\25\27\31\33\50",
- 18,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)},
- {"removes characters that have codes <= 32",new OUString(aUStr20),
- new OUString("\1\3\5\7\11\13\15\17sun\21\23\25\27\31\23\20",
- 18,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)},
- {"no spaces",new OUString(aUStr8),
- new OUString(aUStr8)}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- OUString strRes = arrTestCase[i].input1->trim();
- sal_Bool lastRes = (strRes == *arrTestCase[i].expVal);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "trim", i)
- );
-
- res &= lastRes;
-
- }
- c_rtl_tres_state_end( hRtlTestResult, "trim");
-// return ( res );
-}
-//------------------------------------------------------------------------
-// testing the method toData()
-//------------------------------------------------------------------------
-
-template <class T>
-sal_Bool test_toData( const char** input, int num, sal_Int16 radix,
- const T* expVal,int base,
- const T* _fPrecision,
- rtlTestResult hRtlTestResult)
-{
- (void)_fPrecision;
- sal_Bool res=sal_True;
- sal_Char methName[MAXBUFLENGTH];
- sal_Char *meth = '\0';
- sal_Char* pMeth=methName;
- sal_Int32 i;
-// static sal_Unicode aUchar[60]={0x00};
- T intRes;
- sal_Bool lastRes=sal_False;
-
- for(i=0;i<num;i++)
- {
- OSL_ENSURE( i < 60, "ERROR: leave aUchar bound");
-
-// LLA: stored for the posterity
-// AStringToUStringCopy(aUchar,input[i]);
-// OUString str(aUchar);
-
- OUString str;
- str = OUString::createFromAscii(input[i]);
-
-
- if(base==0)
- {
- intRes=static_cast<T>(str.toInt32());
- lastRes=(intRes==expVal[i]);
- meth="toInt32default";
- }
- if(base==1)
- {
- intRes=static_cast<T>(str.toInt32(radix));
- lastRes=(intRes==expVal[i]);
- meth="toInt32normal";
- }
- if(base==2)
- {
- intRes=static_cast<T>(str.toInt64());
- lastRes=(intRes==expVal[i]);
- meth="toInt64default";
- }
- if(base==3)
- {
- intRes=static_cast<T>(str.toInt64(radix));
- lastRes=(intRes==expVal[i]);
- meth="toInt64normal";
- }
-// LLA: does no longer exist, moved to rtl/oustring
-// LLA: if(base==4)
-// LLA: {
-// LLA: intRes=str.toDouble();
-// LLA: lastRes=(fabs(intRes-expVal[i])<=1e-35);
-// LLA: meth="toDouble";
-// LLA: }
-
-// LLA: dt:20040802 create compile problems within wntmsci10
-// if(base==5)
-// {
-// intRes=str.toFloat();
-// T nPrec = _fPrecision[i];
-// lastRes=(fabs((T)(intRes-expVal[i])) <= nPrec /* 1e-35 */ );
-// meth="toFloat";
-// }
- if(base==6)
- {
- intRes=str.toChar();
- lastRes=(intRes==expVal[i]);
- meth="toChar";
- }
-
- char buf[MAXBUFLENGTH];
- buf[0] = '\'';
- cpynstr( buf + 1, input[i], MAXBUFLENGTH );
- int length = AStringLen( input[i] );
- buf[length + 1] = '\'';
- buf[length + 2] = 0;
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- buf,
- createName( pMeth,meth, i )
- );
-
- res &= lastRes;
- }
-
- return( res );
-}
-//------------------------------------------------------------------------
-// testing the method toDouble()
-//------------------------------------------------------------------------
-
-// LLA: extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_toDouble(
-// LLA: hTestResult hRtlTestResult )
-// LLA: {
-// LLA: c_rtl_tres_state_start( hRtlTestResult, "toDouble");
-// LLA: sal_Bool bRes=sal_False;
-// LLA:
-// LLA: bRes=c_rtl_tres_state
-// LLA: (
-// LLA: hRtlTestResult,
-// LLA: test_toData<double>((const char**)inputDouble,nDoubleCount,10,
-// LLA: expValDouble,4,hRtlTestResult),
-// LLA: "toDouble",
-// LLA: "toDouble()"
-// LLA: );
-// LLA: c_rtl_tres_state_end( hRtlTestResult, "toDouble");
-// LLA: // return ( bRes );
-// LLA: }
-
-//------------------------------------------------------------------------
-// testing the method toFloat()
-//------------------------------------------------------------------------
-// LLA: dt:20040802 the test_toData() has compile problems.
-// LLA: extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_toFloat(
-// LLA: hTestResult hRtlTestResult )
-// LLA: {
-// LLA: c_rtl_tres_state_start( hRtlTestResult, "toFloat");
-// LLA: sal_Bool bRes=sal_False;
-// LLA:
-// LLA: bRes=c_rtl_tres_state
-// LLA: (
-// LLA: hRtlTestResult,
-// LLA: test_toData<float>((const char**)inputFloat,
-// LLA: nFloatCount,
-// LLA: 10, /* radix */
-// LLA: expValFloat,
-// LLA: 5, /* float */
-// LLA: fPrecision,
-// LLA: hRtlTestResult),
-// LLA: "toFloat",
-// LLA: "toFloat()"
-// LLA: );
-// LLA:
-// LLA: c_rtl_tres_state_end( hRtlTestResult, "toFloat");
-// LLA: // return ( bRes );
-// LLA:
-// LLA: }
-//------------------------------------------------------------------------
-// testing the method toChar()
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_toChar(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "toChar");
- sal_Bool bRes=sal_False;
-
- bRes=c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Unicode>((const char**)inputChar,nCharCount,
- 10,expValChar,6,NULL,hRtlTestResult),
- "toChar",
- "toChar()"
- );
-
- c_rtl_tres_state_end( hRtlTestResult, "toChar");
-// return ( bRes );
-
-}
-//------------------------------------------------------------------------
-// testing the method toBoolean()
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_toBoolean(
- hTestResult hRtlTestResult)
-{
- c_rtl_tres_state_start( hRtlTestResult, "toBoolean");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Bool expVal;
- OUString* input;
-
- ~TestCase() {delete input;}
- }TestCase;
-
- TestCase arrTestCase[]={
-
- {"expected true", sal_True, new OUString("True",4,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)},
- {"expected false", sal_False, new OUString("False",5,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)},
- {"expected true", sal_True, new OUString("1",1,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Bool bRes = arrTestCase[i].input->toBoolean();
- sal_Bool lastRes = (bRes == arrTestCase[i].expVal);
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "toBoolean", i )
-
- );
- res &= lastRes;
- }
- c_rtl_tres_state_end( hRtlTestResult, "toBoolean");
-// return ( res );
-}
-//------------------------------------------------------------------------
-// testing the method toInt32()
-//------------------------------------------------------------------------
-
-sal_Bool SAL_CALL test_rtl_OUString_toInt32_normal(
- hTestResult hRtlTestResult )
-{
- sal_Int32 expValues[kBase36NumsCount];
- sal_Int32 i;
-
- for ( i = 0; i < kBase36NumsCount; i++ )
- expValues[i] = i;
-
- sal_Bool res = c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int32>( kBinaryNumsStr,kBinaryNumsCount,
- kRadixBinary,expValues,1,NULL,hRtlTestResult ),
- "kBinaryNumsStr",
- "toInt32( radix 2 )"
- );
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int32>( kBinaryMaxNumsStr,kInt32MaxNumsCount,
- kRadixBinary,kInt32MaxNums,1,NULL,hRtlTestResult ),
- "kBinaryMaxNumsStr",
- "toInt32_Boundaries( radix 2 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int32>( kOctolNumsStr,kOctolNumsCount,
- kRadixOctol,expValues,1,NULL,hRtlTestResult ),
- "kOctolNumsStr",
- "toInt32( radix 8 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int32>( kOctolMaxNumsStr,kInt32MaxNumsCount,
- kRadixOctol,(sal_Int32*)kInt32MaxNums,1,NULL,hRtlTestResult ),
- "kOctolMaxNumsStr",
- "toInt32_Boundaries( radix 8 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int32>( kDecimalNumsStr,kDecimalNumsCount,
- kRadixDecimal,expValues,1,NULL,hRtlTestResult ),
- "kDecimalNumsStr",
- "toInt32( radix 10 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int32>( kDecimalMaxNumsStr,kInt32MaxNumsCount,
- kRadixDecimal,(sal_Int32*)kInt32MaxNums,1,NULL,hRtlTestResult ),
- "kDecimalMaxNumsStr",
- "toInt32_Boundaries( radix 10 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int32>( kHexDecimalNumsStr,kHexDecimalNumsCount,
- kRadixHexdecimal,expValues,1,NULL,hRtlTestResult ),
- "kHexDecimalNumsStr",
- "toInt32( radix 16 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int32>( kHexDecimalMaxNumsStr,kInt32MaxNumsCount,
- kRadixHexdecimal,(sal_Int32*)kInt32MaxNums,1,NULL,hRtlTestResult ),
- "kHexDecimalMaxNumsStr",
- "toInt32_Boundaries( radix 16 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int32>( kBase36NumsStr,kBase36NumsCount,
- kRadixBase36, expValues,1,NULL,hRtlTestResult ),
- "kBase36NumsStr",
- "toInt32( radix 36 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int32>( kBase36MaxNumsStr,kInt32MaxNumsCount,
- kRadixBase36,(sal_Int32*)kInt32MaxNums,1,NULL,hRtlTestResult ),
- "kBase36MaxNumsStr",
- "toInt32_Boundaries( radix 36 )"
- );
-
- const sal_Int16 nSpecCases = 5;
- static const sal_Char *spString[nSpecCases] =
- {
- "-1",
- "+1",
- " 1",
- " -1",
- "001"
- };
-
- sal_Int32 expSpecVal[nSpecCases] =
- {
- -1,
- 1,
- 1,
- -1,
- 1
- };
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int32>( spString,nSpecCases,
- kRadixDecimal,expSpecVal,1,NULL,hRtlTestResult ),
- "special cases",
- "toInt32( specialcases )"
- );
-
- return ( res );
-}
-sal_Bool SAL_CALL test_rtl_OUString_toInt32_wrongRadix(
- hTestResult hRtlTestResult )
-{
- ::rtl::OUString str("0",1,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString);
-
- sal_Int32 iRes =str.toInt32(-1);
-
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- iRes == 0,
- "wrong radix -1",
- "toInt32( 0, wrong radix -1 )"
- )
- );
-}
-sal_Bool SAL_CALL test_rtl_OUString_toInt32_defaultParam(
- hTestResult hRtlTestResult )
-{
- sal_Int32 expValues[kBase36NumsCount];
- sal_Int32 i;
-
- for ( i = 0; i < kBase36NumsCount; i++ )
- expValues[i] = i;
-
- sal_Bool res = c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int32>( kDecimalNumsStr,kDecimalNumsCount,
- kRadixDecimal,expValues,0,NULL,hRtlTestResult ),
- "kBinaryNumsStr",
- "toInt32( radix 2 )"
- );
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int32>( kDecimalMaxNumsStr,kInt32MaxNumsCount,
- kRadixDecimal,(sal_Int32*)kInt32MaxNums,0,NULL,hRtlTestResult ),
- "kDecimalMaxNumsStr",
- "toInt32_Boundaries( radix 10 )"
- );
- const sal_Int16 nSpecCases = 5;
- static const sal_Char *spString[nSpecCases] =
- {
- "-1",
- "+1",
- " 1",
- " -1",
- "001"
- };
-
- sal_Int32 expSpecVal[nSpecCases] =
- {
- -1,
- 1,
- 1,
- -1,
- 1
- };
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int32>( spString,nSpecCases,
- kRadixDecimal,expSpecVal,0,NULL,hRtlTestResult ),
- "special cases",
- "toInt32( specialcases )"
- );
-
- return ( res );
-}
-
-//------------------------------------------------------------------------
-// testing the method toInt32()
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_toInt32(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "toInt32");
- sal_Bool bTState = test_rtl_OUString_toInt32_normal( hRtlTestResult );
- bTState &= test_rtl_OUString_toInt32_defaultParam( hRtlTestResult );
- bTState &= test_rtl_OUString_toInt32_wrongRadix( hRtlTestResult );
- c_rtl_tres_state_end( hRtlTestResult, "toInt32");
-// return ( bTState );
-}
-//------------------------------------------------------------------------
-// testing the method toInt64( sal_Int16 radix = 2,8,10,16,36 )
-//------------------------------------------------------------------------
-
-sal_Bool SAL_CALL test_rtl_OUString_toInt64_normal(
- hTestResult hRtlTestResult )
-{
- sal_Int64 expValues[kBase36NumsCount];
- sal_Int32 i;
-
- for (i = 0; i < kBase36NumsCount; expValues[i] = i, i++);
-
- sal_Bool res = c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int64>( kBinaryNumsStr,kBinaryNumsCount,
- kRadixBinary,expValues,3,NULL,hRtlTestResult ),
- "kBinaryNumsStr",
- "toInt64( radix 2 )"
- );
-
-/* LLA: does not work within wntmsci8.pro
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int64>( kBinaryMaxNumsStr,kInt64MaxNumsCount,
- kRadixBinary,kInt64MaxNums,3,hRtlTestResult ),
- "kBinaryMaxNumsStr",
- "toInt64_Boundaries( radix 2 )"
- );
-*/
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int64>( kOctolNumsStr,kOctolNumsCount,
- kRadixOctol,expValues,3,NULL,hRtlTestResult ),
- "kOctolNumsStr",
- "toInt64( radix 8 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int64>( kOctolMaxNumsStr,kInt64MaxNumsCount,
- kRadixOctol,(sal_Int64*)kInt64MaxNums,3,NULL,hRtlTestResult ),
- "kOctolMaxNumsStr",
- "toInt64_Boundaries( radix 8 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int64>( kDecimalNumsStr,kDecimalNumsCount,
- kRadixDecimal,expValues,3,NULL,hRtlTestResult ),
- "kDecimalNumsStr",
- "toInt64( radix 10 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int64>( kDecimalMaxNumsStr,kInt64MaxNumsCount,
- kRadixDecimal,(sal_Int64*)kInt64MaxNums,3,NULL,hRtlTestResult ),
- "kDecimalMaxNumsStr",
- "toInt64_Boundaries( radix 10 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int64>( kHexDecimalNumsStr,kHexDecimalNumsCount,
- kRadixHexdecimal,expValues,3,NULL,hRtlTestResult ),
- "kHexDecimalNumsStr",
- "toInt64( radix 16 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int64>( kHexDecimalMaxNumsStr,kInt64MaxNumsCount,
- kRadixHexdecimal,(sal_Int64*)kInt64MaxNums,3,NULL,hRtlTestResult ),
- "kHexDecimalMaxNumsStr",
- "toInt64_Boundaries( radix 16 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int64>( kBase36NumsStr,kBase36NumsCount,
- kRadixBase36, expValues,3,NULL,hRtlTestResult ),
- "kBase36NumsStr",
- "toInt64( radix 36 )"
- );
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int64>( kBase36MaxNumsStr,kInt64MaxNumsCount,
- kRadixBase36,(sal_Int64*)kInt64MaxNums,3,NULL,hRtlTestResult ),
- "kBase36MaxNumsStr",
- "toInt64_Boundaries( radix 36 )"
- );
-
-
-
- const sal_Int16 nSpecCases = 5;
- static const sal_Char *spString[nSpecCases] =
- {
- "-1",
- "+1",
- " 1",
- " -1",
- "001"
- };
-
- sal_Int64 expSpecVal[nSpecCases] =
- {
- -1,
- 1,
- 1,
- -1,
- 1
- };
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int64>( spString,nSpecCases,
- kRadixDecimal,expSpecVal,3,NULL,hRtlTestResult ),
- "special cases",
- "toInt64( specialcases )"
- );
-
- return (res);
-}
-
-sal_Bool SAL_CALL test_rtl_OUString_toInt64_wrongRadix(
- hTestResult hRtlTestResult )
-{
- ::rtl::OUString str("0",1,kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString);
-
- sal_Int64 iRes = str.toInt64(-1);
-
- return (
- c_rtl_tres_state
- (
- hRtlTestResult,
- iRes == 0,
- "wrong radix -1",
- "toInt64( wrong radix -1)"
- )
- );
-}
-sal_Bool SAL_CALL test_rtl_OUString_toInt64_defaultParam(
- hTestResult hRtlTestResult )
-{
- sal_Int64 expValues[kBase36NumsCount];
- sal_Int32 i;
-
- for ( i = 0; i < kBase36NumsCount; i++ )
- expValues[i] = i;
-
- sal_Bool res = c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int64>( kDecimalNumsStr,kDecimalNumsCount,
- kRadixDecimal,expValues,2,NULL,hRtlTestResult ),
- "kBinaryNumsStr",
- "toInt64( radix 10 )"
- );
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int64>( kDecimalMaxNumsStr,kInt64MaxNumsCount,
- kRadixDecimal,(sal_Int64*)kInt64MaxNums,2,NULL,hRtlTestResult ),
- "kDecimalMaxNumsStr",
- "toInt64_Boundaries( radix 10 )"
- );
- const sal_Int16 nSpecCases = 5;
- static const sal_Char *spString[nSpecCases] =
- {
- "-1",
- "+1",
- " 1",
- " -1",
- "001"
- };
-
- sal_Int64 expSpecVal[nSpecCases] =
- {
- -1,
- 1,
- 1,
- -1,
- 1
- };
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- test_toData<sal_Int64>( spString,nSpecCases,
- kRadixDecimal,expSpecVal,2,NULL,hRtlTestResult ),
- "special cases",
- "toInt64( specialcases )"
- );
-
- return ( res );
-}
-
-//------------------------------------------------------------------------
-// testing the method toInt64()
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_toInt64(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "toInt64");
- sal_Bool bTState = test_rtl_OUString_toInt64_normal( hRtlTestResult );
- bTState &= test_rtl_OUString_toInt64_defaultParam (hRtlTestResult );
- bTState &= test_rtl_OUString_toInt64_wrongRadix( hRtlTestResult );
- c_rtl_tres_state_end( hRtlTestResult, "toInt64");
-// return ( bTState );
-}
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString( hTestResult hRtlTestResult )
-{
-
- c_rtl_tres_state_start(hRtlTestResult, "rtl_OUString" );
-
- test_rtl_OUString_ctors( hRtlTestResult );
- test_rtl_OUString_getLength( hRtlTestResult );
- test_rtl_OUString_equals( hRtlTestResult );
- test_rtl_OUString_equalsIgnoreAsciiCase( hRtlTestResult );
- test_rtl_OUString_compareTo( hRtlTestResult );
- test_rtl_OUString_match( hRtlTestResult );
- test_rtl_OUString_op_eq( hRtlTestResult );
- test_rtl_OUString_op_peq( hRtlTestResult );
- test_rtl_OUString_csuc( hRtlTestResult );
- test_rtl_OUString_getStr( hRtlTestResult );
- test_rtl_OUString_reverseCompareTo( hRtlTestResult );
- test_rtl_OUString_equalsAscii( hRtlTestResult );
- test_rtl_OUString_equalsAsciiL( hRtlTestResult );
- test_rtl_OUString_compareToAscii( hRtlTestResult );
- test_rtl_OUString_valueOf_sal_Bool( hRtlTestResult );
- test_rtl_OUString_valueOf_sal_Unicode( hRtlTestResult );
- test_rtl_OUString_valueOf( hRtlTestResult );
- test_rtl_OUString_createFromAscii( hRtlTestResult );
- test_rtl_OUString_indexOf( hRtlTestResult );
-// LLA: removed, it is in a new test in rtl/oustring. test_rtl_OUString_lastIndexOf( hRtlTestResult );
- test_rtl_OUString_concat( hRtlTestResult );
- test_rtl_OUString_replaceAt( hRtlTestResult );
- test_rtl_OUString_replace( hRtlTestResult );
- test_rtl_OUString_toAsciiLowerCase( hRtlTestResult );
- test_rtl_OUString_toAsciiUpperCase( hRtlTestResult );
- test_rtl_OUString_trim( hRtlTestResult );
-// LLA: removed, it is in a new test in rtl/oustring. test_rtl_OUString_toDouble( hRtlTestResult );
-// LLA: removed, has compile problems. test_rtl_OUString_toFloat( hRtlTestResult );
- test_rtl_OUString_toChar( hRtlTestResult );
- test_rtl_OUString_toBoolean( hRtlTestResult );
- test_rtl_OUString_toInt32( hRtlTestResult );
- test_rtl_OUString_toInt64( hRtlTestResult );
-
- c_rtl_tres_state_end(hRtlTestResult, "rtl_OUString");
-}
-// -----------------------------------------------------------------------------
-void RegisterAdditionalFunctions(FktRegFuncPtr _pFunc)
-{
- if (_pFunc)
- {
- (_pFunc)(&test_rtl_OUString, "");
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl_strings/rtl_OUStringBuffer.cxx b/sal/qa/rtl_strings/rtl_OUStringBuffer.cxx
deleted file mode 100644
index 165d30c86..000000000
--- a/sal/qa/rtl_strings/rtl_OUStringBuffer.cxx
+++ /dev/null
@@ -1,1732 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#ifndef _SAL_TYPES_H_
- #include <sal/types.h>
-#endif
-
-#include <testshl/tresstatewrapper.hxx>
-
-#ifndef _RTL_STRING_HXX_
- #include <rtl/string.hxx>
-#endif
-
-#ifndef _RTL_USTRING_H_
- #include <rtl/ustring.h>
-#endif
-
-#ifndef _RTL_USTRING_HXX_
- #include <rtl/ustring.hxx>
-#endif
-
-#ifndef _RTL_USTRBUF_H_
- #include <rtl/ustrbuf.h>
-#endif
-
-#ifndef _RTL_USTRBUF_HXX
- #include <rtl/ustrbuf.hxx>
-#endif
-
-#ifndef _OSL_THREAD_H_
- #include <osl/thread.h>
-#endif
-
-#ifndef _RTL_STRING_CONST_H_
- #include <rtl_String_Const.h>
-#endif
-
-#ifndef _RTL_STRING_UTILS_HXX_
- #include <rtl_String_Utils.hxx>
-#endif
-
-#include "stdio.h"
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-//------------------------------------------------------------------------
-// test classes
-//------------------------------------------------------------------------
-const int MAXBUFLENGTH = 255;
-//------------------------------------------------------------------------
-// helper functions
-//------------------------------------------------------------------------
-static void unused()
-{
- (void)kBinaryNumsStr;
- (void)kOctolNumsStr;
- (void)kDecimalNumsStr;
- (void)kHexDecimalNumsStr;
- (void)kBase36NumsStr;
- (void)inputChar;
- (void)input1StrDefault;
- (void)input1StrNormal;
- (void)input1StrLastDefault;
- (void)input1StrLastNormal;
- unused();
-}
-
-//------------------------------------------------------------------------
-// testing constructors
-//------------------------------------------------------------------------
-static sal_Bool test_rtl_OUStringBuffer_ctor_001( hTestResult hRtlTestResult )
-{
-
- ::rtl::OUStringBuffer aUStrBuf;
-
- bool b1 =
- aUStrBuf.getLength() == 0 &&
- ! *(aUStrBuf.getStr()) && aUStrBuf.getCapacity() == 16;
-
- ::rtl::OUStringBuffer aUStrBuf2(0);
-
- bool b2 =
- aUStrBuf2.getLength() == 0 &&
- ! *(aUStrBuf2.getStr()) && aUStrBuf2.getCapacity() == /* LLA: !!! */ 0;
-
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- b1 && b2,
- "New OUStringBuffer containing no characters",
- "ctor_001"
- )
- );
-}
-
-//------------------------------------------------------------------------
-
-static sal_Bool SAL_CALL test_rtl_OUStringBuffer_ctor_002(
- hTestResult hRtlTestResult )
-{
- ::rtl::OUStringBuffer aUStrBuftmp( aUStr1 );
- ::rtl::OUStringBuffer aUStrBuf( aUStrBuftmp );
- sal_Bool res = cmpustr(aUStrBuftmp.getStr(),aUStrBuf.getStr());
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- aUStrBuf.getLength()==aUStrBuftmp.getLength() &&
- aUStrBuf.getCapacity() == aUStrBuftmp.getCapacity() && res ,
- "New OUStringBuffer from another OUStringBuffer",
- "ctor_002"
- )
- );
-}
-//------------------------------------------------------------------------
-
-/* static */
-sal_Bool SAL_CALL test_rtl_OUStringBuffer_ctor_003(
- hTestResult hRtlTestResult )
-{
- ::rtl::OUStringBuffer aUStrBuf1(kTestStr2Len);
- ::rtl::OUStringBuffer aUStrBuf2(0);
- ::rtl::OUStringBuffer aUStrBuf3(kNonSInt32Max);
-
-
- bool b1 =
- aUStrBuf1.getLength() == 0 &&
- ! *(aUStrBuf1.getStr()) && aUStrBuf1.getCapacity() == kTestStr2Len ;
-
- bool b2 =
- aUStrBuf2.getLength() == 0 &&
- ! *(aUStrBuf2.getStr()) && aUStrBuf2.getCapacity() == /* LLA: ??? 16 */ 0;
-
- bool b3 =
- aUStrBuf3.getLength() == 0 &&
- ! *(aUStrBuf3.getStr()) && aUStrBuf3.getCapacity() == kNonSInt32Max;
-
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- b1 && b2 && b3,
- "New OUStringBuffer containing no characters and contain assigned capacity",
- "ctor_003( will core dump,because the kSInt32Max )"
- )
- );
-
-}
-
-//------------------------------------------------------------------------
-
-static sal_Bool SAL_CALL test_rtl_OUStringBuffer_ctor_004(
- hTestResult hRtlTestResult)
-{
- ::rtl::OUString aUStrtmp( aUStr1 );
- ::rtl::OUStringBuffer aUStrBuf( aUStrtmp );
- sal_Int32 leg = aUStrBuf.getLength();
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- aUStrBuf.getStr() == aUStrtmp &&
- leg == aUStrtmp.pData->length &&
- aUStrBuf.getCapacity() == leg+16 ,
- "New OUStringBuffer from OUstring",
- "ctor_004"
- )
- );
-}
-
-static sal_Bool SAL_CALL test_rtl_OUStringBuffer_ctor_005(
- hTestResult hRtlTestResult)
-{
- ::rtl::OUStringBuffer aUStrBuftmp( aUStr1 );
- ::rtl::OUString aUStrtmp = aUStrBuftmp.makeStringAndClear();
- ::rtl::OUStringBuffer aUStrBuf( aUStrBuftmp );
- sal_Bool res = cmpustr(aUStrBuftmp.getStr(),aUStrBuf.getStr());
- sal_Int32 leg = aUStrBuf.getLength();
- return
- (
- c_rtl_tres_state
- (
- hRtlTestResult,
- aUStrBuf.getLength()==aUStrBuftmp.getLength() &&
- aUStrBuf.getCapacity() == aUStrBuftmp.getCapacity() &&
- res && leg == 0,
- "New OUStringBuffer from another OUStringBuffer after makeClearFromString",
- "ctor_005"
- )
- );
-}
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_ctors(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "ctors");
- sal_Bool DCState = test_ini_uString();
- (void)DCState;
- sal_Bool bTSState = test_rtl_OUStringBuffer_ctor_001( hRtlTestResult );
- bTSState &= test_rtl_OUStringBuffer_ctor_002( hRtlTestResult);
- bTSState &= test_rtl_OUStringBuffer_ctor_003( hRtlTestResult);
- bTSState &= test_rtl_OUStringBuffer_ctor_004( hRtlTestResult);
- bTSState &= test_rtl_OUStringBuffer_ctor_005( hRtlTestResult);
-
- c_rtl_tres_state_end( hRtlTestResult, "ctors");
-// return( bTSState );
-}
-
-//------------------------------------------------------------------------
-// testing the method makeStringAndClear()
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_makeStringAndClear(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "makeStringAndClear");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- OUString* expVal;
- OUStringBuffer* input1;
-
- ~TestCase() { delete input1;}
- } TestCase;
-
- OUString arrOUS[6]={
- OUString( aUStr1 ),
- OUString( aUStr14 ),
- OUString( aUStr25 ),
- OUString( aUStr27 ),
- OUString( aUStr29 ),
- OUString( "\0",0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString)
- };
-
- TestCase arrTestCase[]={
-
- {"two empty strings(def. constructor)", new OUString(),
- new OUStringBuffer()},
- {"two empty strings(with a argu)", new OUString(),
- new OUStringBuffer(26)},
- {"normal string", new OUString(arrOUS[0]),
- new OUStringBuffer(arrOUS[0])},
- {"string with space ", new OUString(arrOUS[1]),
- new OUStringBuffer(arrOUS[1])},
- {"empty string", new OUString(arrOUS[2]),
- new OUStringBuffer(arrOUS[2])},
- {"string with a character", new OUString(arrOUS[3]),
- new OUStringBuffer(arrOUS[3])},
- {"string with special characters", new OUString(arrOUS[4]),
- new OUStringBuffer(arrOUS[4])},
- {"string only with (\0)", new OUString(arrOUS[5]),
- new OUStringBuffer(arrOUS[5])}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Bool lastRes =
- ( arrTestCase[i].input1->makeStringAndClear() ==
- *( arrTestCase[i].expVal ));
- lastRes = lastRes && ( arrTestCase[i].input1->getCapacity() == 0 );
- lastRes = lastRes && ( *(arrTestCase[i].input1->getStr()) == '\0' );
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "makeStringAndClear", i )
- );
-
- res &= lastRes;
- }
- c_rtl_tres_state_end( hRtlTestResult, "makeStringAndClear");
-// return (res);
-}
-//------------------------------------------------------------------------
-// testing the method getLength
-//------------------------------------------------------------------------
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_getLength(
- hTestResult hRtlTestResult)
-{
- c_rtl_tres_state_start( hRtlTestResult, "getLength");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- OUString arrOUS[6]={OUString( aUStr1 ),
- OUString( "1",1,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString),
- OUString(),
- OUString( "",0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString),
- OUString( "\0",0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString),
- OUString( aUStr2 )};
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Int32 expVal;
- OUStringBuffer* input;
- ~TestCase() { delete input;}
- } TestCase;
-
- TestCase arrTestCase[]={
-
- {"length of ascii string", kTestStr1Len,
- new OUStringBuffer(arrOUS[0]) },
- {"length of ascci string of size 1", 1,
- new OUStringBuffer(arrOUS[1])},
- {"length of empty string", 0,
- new OUStringBuffer(arrOUS[2])},
- {"length of empty string (empty ascii string arg)",0,
- new OUStringBuffer(arrOUS[3])},
- {"length of empty string (string arg = '\\0')", 0,
- new OUStringBuffer(arrOUS[4])},
- {"length(>16) of ascii string", kTestStr2Len,
- new OUStringBuffer(arrOUS[5]) },
- {"length of empty string (default constructor)", 0,
- new OUStringBuffer()},
- {"length of empty string (with capacity)", 0,
- new OUStringBuffer(26)}
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Int32 length = arrTestCase[i].input->getLength();
- sal_Bool lastRes = (length == arrTestCase[i].expVal);
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "getLength", i )
-
- );
- res &= lastRes;
- }
- c_rtl_tres_state_end( hRtlTestResult, "getLength");
-// return ( res );
-}
-//------------------------------------------------------------------------
-// testing the method getCapacity()
-//------------------------------------------------------------------------
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_getCapacity(
- hTestResult hRtlTestResult)
-{
- c_rtl_tres_state_start( hRtlTestResult, "getCapacity");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- OUString arrOUS[6]={OUString( aUStr1 ),
- OUString( "1",1,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString),
- OUString(),
- OUString( "",0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString),
- OUString( "\0",0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString),
- OUString( aUStr2 )};
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Int32 expVal;
- OUStringBuffer* input;
- ~TestCase() { delete input;}
- } TestCase;
-
- TestCase arrTestCase[]={
-
- {"capacity of ascii string", kTestStr1Len+16,
- new OUStringBuffer(arrOUS[0]) },
- {"capacity of ascci string of size 1", 1+16,
- new OUStringBuffer(arrOUS[1]) },
- {"capacity of empty string", 0+16,
- new OUStringBuffer(arrOUS[2]) },
- {"capacity of empty string (empty ascii string arg)",0+16,
- new OUStringBuffer(arrOUS[3]) },
- {"capacity of empty string (string arg = '\\0')", 0+16,
- new OUStringBuffer(arrOUS[4]) },
- {"capacity(>16) of ascii string", kTestStr2Len+16,
- new OUStringBuffer(arrOUS[5]) },
- {"capacity of empty string (default constructor)", 16,
- new OUStringBuffer() },
- {"capacity of empty string (with capacity -2147483648)", kNonSInt32Max,
- new OUStringBuffer(kNonSInt32Max) },
- {"capacity of empty string (with capacity 16)", 16,
- new OUStringBuffer(16) },
- {"capacity of empty string (with capacity 6)", 6,
- new OUStringBuffer(6) },
- {"capacity of empty string (with capacity 0)", 0,
- new OUStringBuffer(0) },
- {"capacity of empty string (with capacity -2)", -2,
- new OUStringBuffer(-2) }
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Int32 length = arrTestCase[i].input->getCapacity();
- sal_Bool lastRes = (length == arrTestCase[i].expVal);
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "getCapacity", i )
-
- );
- res &= lastRes;
- }
- c_rtl_tres_state_end( hRtlTestResult, "getCapacity");
-// return ( res );
-}
-//------------------------------------------------------------------------
-// testing the method ensureCapacity(sal_Int32 minimumCapacity)
-//------------------------------------------------------------------------
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_ensureCapacity(
- hTestResult hRtlTestResult)
-{
- c_rtl_tres_state_start( hRtlTestResult, "ensureCapacity");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Int32 expVal;
- OUStringBuffer* input1;
- sal_Int32 input2;
- ~TestCase() { delete input1;}
- } TestCase;
-
- TestCase arrTestCase[]={
-
- {"capacity equal to 16, minimum is 5 ", 16,
- new OUStringBuffer(), 5 },
- {"capacity equal to 16, minimum is -5", 16,
- new OUStringBuffer(), -5},
- {"capacity equal to 16, minimum is 0", 16,
- new OUStringBuffer(), 0},
- {"capacity equal to 16, minimum is 20", 20, //the testcase is based on comments
- new OUStringBuffer(), 20},
- {"capacity equal to 16, minimum is 50", 50,
- new OUStringBuffer(), 50},
- {"capacity equal to 6, minimum is 20", 20,
- new OUStringBuffer(6), 20 },
- {"capacity equal to 6, minimum is 2", 6,
- new OUStringBuffer(6), 2},
- {"capacity equal to 6, minimum is -6", 6,
- new OUStringBuffer(6), -6},
- {"capacity equal to 6, minimum is -6", 10, //the testcase is based on comments
- new OUStringBuffer(6), 10},
- {"capacity equal to 0, minimum is 6", 6,
- new OUStringBuffer(0), 6},
- {"capacity equal to 0, minimum is 1", 2, //the testcase is based on comments
- new OUStringBuffer(0), 1},
- /*
- {"capacity equal to 0, minimum is -1", 0,
- new OUStringBuffer(0), -1},
- */
- {"capacity equal to -2147483648, minimum is 65535", 65535,
- new OUStringBuffer(kNonSInt32Max), 65535},
- {"capacity equal to -2147483648, minimum is -1", 2,
- new OUStringBuffer(kNonSInt32Max), -1},
- {"capacity equal to -2147483648, minimum is 0", 2,
- new OUStringBuffer(kNonSInt32Max), 0},
- {"capacity equal to -2147483648, minimum is -2147483648", kNonSInt32Max,
- new OUStringBuffer(kNonSInt32Max), kNonSInt32Max}
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- arrTestCase[i].input1->ensureCapacity(arrTestCase[i].input2);
- sal_Int32 length = arrTestCase[i].input1->getCapacity();
- sal_Bool lastRes = (length == arrTestCase[i].expVal);
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "ensureCapacity", i )
-
- );
- res &= lastRes;
- }
- c_rtl_tres_state_end( hRtlTestResult, "ensureCapacity");
-// return ( res );
-}
-//------------------------------------------------------------------------
-// testing the method setLength(sal_Int32 newLength)
-//------------------------------------------------------------------------
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_setLength(
- hTestResult hRtlTestResult)
-{
- c_rtl_tres_state_start( hRtlTestResult, "setLength");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- OUString arrOUS[6]={OUString( aUStr1 ),
- OUString( aUStr27),
- OUString(),
- OUString( "",0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString),
- OUString( "\0",0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString),
- OUString( aUStr2 )};
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Int32 expVal1;
- OUString* expVal2;
- sal_Int32 expVal3;
- OUStringBuffer* input1;
- sal_Int32 input2;
- ~TestCase() { delete input1; delete expVal2;}
- } TestCase;
-
- TestCase arrTestCase[]={
-
- {"newLength more than the capacity of OUStringBuffer(aUStr1)",
- 50, new OUString(aUStr1), 50,
- new OUStringBuffer(arrOUS[0]), 50 },
- {"newLength more than the length of OUStringBuffer(aUStr1)",
- kTestStr13Len, new OUString(aUStr1), 32,
- new OUStringBuffer(arrOUS[0]), kTestStr13Len },
- {"newLength equal to the length of OUStringBuffer(aUStr1)",
- kTestStr1Len, new OUString(aUStr1), 32,
- new OUStringBuffer(arrOUS[0]), kTestStr1Len },
- {"newLength less than the length of OUStringBuffer(aUStr1)",
- kTestStr7Len, new OUString(aUStr7), 32,
- new OUStringBuffer(arrOUS[0]), kTestStr7Len},
- {"newLength equal to 0",
- 0, new OUString(), 32,
- new OUStringBuffer(arrOUS[0]), 0},
- {"newLength more than the capacity of OUStringBuffer(1)",
- 25, new OUString(arrOUS[1]), 25,
- new OUStringBuffer(arrOUS[1]), 25},
- {"newLength more than the length of OUStringBuffer(1)",
- 5, new OUString(arrOUS[1]), 17,
- new OUStringBuffer(arrOUS[1]), 5},
- {"newLength equal to the length of OUStringBuffer(1)",
- kTestStr27Len, new OUString(arrOUS[1]), 17,
- new OUStringBuffer(arrOUS[1]), kTestStr27Len},
- {"newLength less than the length of OUStringBuffer(1)",
- 0, new OUString(), 17,
- new OUStringBuffer(arrOUS[1]), 0},
- {"newLength more than the capacity of OUStringBuffer()",
- 20, new OUString(), 20,
- new OUStringBuffer(arrOUS[2]), 20},
- {"newLength more than the length of OUStringBuffer()",
- 3, new OUString(), 16,
- new OUStringBuffer(arrOUS[2]), 3},
- {"newLength less than the length of OUStringBuffer()",
- 0, new OUString(), 16,
- new OUStringBuffer(arrOUS[2]), 0},
- {"newLength more than the capacity of OUStringBuffer("")",
- 20, new OUString(), 20,
- new OUStringBuffer(arrOUS[3]), 20},
- {"newLength more than the length of OUStringBuffer("")",
- 5, new OUString(), 16,
- new OUStringBuffer(arrOUS[3]), 5},
- {"newLength less than the length of OUStringBuffer("")",
- 0, new OUString(), 16,
- new OUStringBuffer(arrOUS[3]), 0},
- {"newLength more than the length of OUStringBuffer(\0)",
- 20, new OUString(), 20,
- new OUStringBuffer(arrOUS[4]), 20},
- {"newLength more than the length of OUStringBuffer(\0)",
- 5, new OUString(), 16,
- new OUStringBuffer(arrOUS[4]), 5},
- {"newLength less than the length of OUStringBuffer(\0)",
- 0, new OUString(), 16,
- new OUStringBuffer(arrOUS[4]), 0},
- {"newLength more than the capacity of OUStringBuffer(aUStr2)",
- 50, new OUString(aUStr2), 66,
- new OUStringBuffer(arrOUS[5]), 50,},
- {"newLength more than the length of OUStringBuffer(aUStr2)",
- 40, new OUString(aUStr2), 48,
- new OUStringBuffer(arrOUS[5]), 40,},
- {"newLength equal to the length of OUStringBuffer(aUStr2)",
- kTestStr2Len, new OUString(aUStr2), 48,
- new OUStringBuffer(arrOUS[5]), kTestStr2Len,},
- {"newLength less than the length of OUStringBuffer(aUStr2)",
- kTestStr7Len, new OUString(aUStr7), 48,
- new OUStringBuffer(arrOUS[5]), kTestStr7Len},
- {"newLength equal to 0",
- 0, new OUString(), 48,
- new OUStringBuffer(arrOUS[5]), 0}
-
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- arrTestCase[i].input1->setLength(arrTestCase[i].input2);
- sal_Bool lastRes =
- ( arrTestCase[i].input1->getStr() == *(arrTestCase[i].expVal2) &&
- arrTestCase[i].input1->getLength() == arrTestCase[i].expVal1 &&
- arrTestCase[i].input1->getCapacity() == arrTestCase[i].expVal3 );
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "setLength", i )
-
- );
- res &= lastRes;
- }
- c_rtl_tres_state_end( hRtlTestResult, "setLength");
-// return ( res );
-}
-//------------------------------------------------------------------------
-// testing the method charAt( sal_Int32 index )
-//------------------------------------------------------------------------
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_charAt(
- hTestResult hRtlTestResult)
-{
- c_rtl_tres_state_start( hRtlTestResult, "charAt");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- OUString arrOUS[4]={OUString( aUStr1 ), // "Sun Microsystems";
- OUString( aUStr27), // "s";
- OUString( aUStr28), // "\50\3\5\7\11\13\15\17sun";
- OUString( )};
-
- typedef struct TestCase
- {
- sal_Char* comments;
- sal_Unicode expVal;
- OUStringBuffer* input1;
- sal_Int32 input2;
- ~TestCase() { delete input1;}
- } TestCase;
-
- TestCase arrTestCase[]={
-
- {"return the first character of OUStringBuffer(aUStr1)",
- 83, new OUStringBuffer(arrOUS[0]), 0 },
- {"return the middle character of OUStringBuffer(aUStr1)",
- 32, new OUStringBuffer(arrOUS[0]), 3 },
- {"return the last character of OUStringBuffer(aUStr1)",
- 115, new OUStringBuffer(arrOUS[0]), 15 },
- {"return the only character of OUStringBuffer(aUStr27)",
- 115, new OUStringBuffer(arrOUS[1]), 0},
- {"return the first of OUStringBuffer(aUStr28) with special character",
- 40, new OUStringBuffer(arrOUS[2]), 0},
- /*
-{"return the mid of OUStringBuffer(aUStr28) with special character",
- 11, new OUStringBuffer(arrOUS[2]), 5},
-*/
-/*
- {"invalid character of OUStringBuffer()",
- 0, new OUStringBuffer(arrOUS[3]), 0},
-*/
-/*
- {"invalid character of OUStringBuffer()",
- 0, new OUStringBuffer(arrOUS[3]), -2}
-*/
-
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Bool lastRes =
- ( arrTestCase[i].input1->charAt(arrTestCase[i].input2) ==
- arrTestCase[i].expVal );
- // LLA: last case removed, due to the fact of complexity of the test code :-(
- // LLA: if(i<=7)
- // LLA: {
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "charAt", i )
-
- );
- // LLA: }
- // LLA: else
- // LLA: {
- // LLA: c_rtl_tres_state
- // LLA: (
- // LLA: hRtlTestResult,
- // LLA: sal_True,
- // LLA: arrTestCase[i].comments,
- // LLA: createName( pMeth, "charAt", i )
- // LLA:
- // LLA: );
- // LLA: }
- res &= lastRes;
- }
- c_rtl_tres_state_end( hRtlTestResult, "charAt");
-// return ( res );
-}
-//------------------------------------------------------------------------
-// testing the operator const sal_Unicode * (csuc for short)
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_csuc(
- hTestResult hRtlTestResult)
-{
- c_rtl_tres_state_start( hRtlTestResult, "csuc");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- const sal_Unicode tmpUC=0x0;
- rtl_uString* tmpUstring = NULL;
- const sal_Char *tmpStr=kTestStr1;
- sal_Int32 tmpLen=(sal_Int32) kTestStr1Len;
- //sal_Int32 cmpLen = 0;
- OUString tempString(aUStr1);
-
- rtl_string2UString( &tmpUstring, tmpStr, tmpLen,
- osl_getThreadTextEncoding(), OSTRING_TO_OUSTRING_CVTFLAGS );
- OSL_ASSERT(tmpUstring != NULL);
-
-
- typedef struct TestCase
- {
- sal_Char* comments;
- const sal_Unicode* expVal;
- sal_Int32 cmpLen;
- OUStringBuffer* input1;
- ~TestCase() { delete input1; }
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"test normal ustring",(*tmpUstring).buffer,kTestStr1Len,
- new OUStringBuffer(tempString)},
- {"test empty ustring",&tmpUC, 1, new OUStringBuffer()}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- const sal_Unicode* pstr = *arrTestCase[i].input1;
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- cmpustr( pstr, arrTestCase[i].expVal, arrTestCase[i].cmpLen ),
- arrTestCase[i].comments,
- createName( pMeth, "const sal_Unicode*", i )
- );
- }
- c_rtl_tres_state_end( hRtlTestResult, "csuc");
-// return ( res );
-}
-//------------------------------------------------------------------------
-// testing the method const sal_Unicode * getStr()
-//------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_getStr(
- hTestResult hRtlTestResult)
-{
- c_rtl_tres_state_start( hRtlTestResult, "getStr");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- const sal_Unicode tmpUC=0x0;
- rtl_uString* tmpUstring = NULL;
- const sal_Char *tmpStr=kTestStr1;
- sal_Int32 tmpLen=(sal_Int32) kTestStr1Len;
- //sal_Int32 cmpLen = 0;
- OUString tempString(aUStr1);
-
- rtl_string2UString( &tmpUstring, tmpStr, tmpLen,
- osl_getThreadTextEncoding(), OSTRING_TO_OUSTRING_CVTFLAGS );
- OSL_ASSERT(tmpUstring != NULL);
-
-
- typedef struct TestCase
- {
- sal_Char* comments;
- const sal_Unicode* expVal;
- sal_Int32 cmpLen;
- OUStringBuffer* input1;
- ~TestCase() { delete input1;}
- } TestCase;
-
- TestCase arrTestCase[] =
- {
- {"test normal ustring",(*tmpUstring).buffer,kTestStr1Len,
- new OUStringBuffer(tempString)},
- {"test empty ustring",&tmpUC, 1, new OUStringBuffer()}
- };
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
- for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- const sal_Unicode* pstr = arrTestCase[i].input1->getStr();
-
- res &= c_rtl_tres_state
- (
- hRtlTestResult,
- cmpustr( pstr, arrTestCase[i].expVal, arrTestCase[i].cmpLen ),
- arrTestCase[i].comments,
- createName( pMeth, "getStr", i )
- );
- }
- c_rtl_tres_state_end( hRtlTestResult, "getStr");
-// return ( res );
-}
-//------------------------------------------------------------------------
-// testing the method setCharAt(sal_Int32 index, sal_Unicode ch)
-//------------------------------------------------------------------------
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_setCharAt(
- hTestResult hRtlTestResult)
-{
- c_rtl_tres_state_start( hRtlTestResult, "setCharAt");
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- OUString arrOUS[4]={OUString( aUStr1 ),
- OUString( aUStr27),
- OUString( aUStr28),
- OUString( )};
-
- typedef struct TestCase
- {
- sal_Char* comments;
- OUString* expVal;
- OUStringBuffer* input1;
- sal_Int32 input2;
- sal_Unicode input3;
- ~TestCase() { delete input1; delete expVal; }
- } TestCase;
-
- TestCase arrTestCase[]={
-
- {"set the first character of OUStringBuffer(aUStr1) with s",
- new OUString(aUStr31),
- new OUStringBuffer(arrOUS[0]), 0, 115 },
- {"set the middle character of OUStringBuffer(aUStr1) with m",
- new OUString(aUStr3),
- new OUStringBuffer(arrOUS[0]), 4, 109 },
- {"set the last character of OUStringBuffer(aUStr1) with ' '",
- new OUString(aUStr32),
- new OUStringBuffer(arrOUS[0]), 15, 32 },
- {"set the only character of OUStringBuffer(aUStr27) with ' '",
- new OUString(aUStr33),
- new OUStringBuffer(arrOUS[1]), 0, 32},
- {"set the only of OUStringBuffer(aUStr28) with special character",
- new OUString(aUStr34),
- new OUStringBuffer(arrOUS[2]), 1, 5},
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- sal_Bool lastRes =
- ( (arrTestCase[i].input1->setCharAt(arrTestCase[i].input2,
- arrTestCase[i].input3)).getStr() == *(arrTestCase[i].expVal) );
- if(i<=4)
- {
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "setCharAt", i )
-
- );
- }
- else
- {
- c_rtl_tres_state
- (
- hRtlTestResult,
- sal_True,
- arrTestCase[i].comments,
- createName( pMeth, "setCharAt", i )
-
- );
- }
- res &= lastRes;
- }
- c_rtl_tres_state_end( hRtlTestResult, "setCharAt");
-// return ( res );
-}
-//------------------------------------------------------------------------
-// testing the method append(const OUString &str)
-//------------------------------------------------------------------------
-
-sal_Bool SAL_CALL test_rtl_OUStringBuffer_append_001(
- hTestResult hRtlTestResult)
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- OUString arrOUS[5]={OUString( aUStr7 ),
- OUString(),
- OUString( aUStr25 ),
- OUString( "\0",0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString),
- OUString( aUStr28 )};
-
- typedef struct TestCase
- {
- sal_Char* comments;
- OUString* expVal;
- OUStringBuffer* input1;
- OUString* input2;
-
- ~TestCase() { delete input1; delete input2; delete expVal; }
- } TestCase;
-
- TestCase arrTestCase[]={
-
- {"Appends the string(length less than 16) to the string buffer arrOUS[0]",
- new OUString(aUStr1),
- new OUStringBuffer(arrOUS[0]), new OUString(aUStr8) },
- {"Appends the string(length more than 16) to the string buffer arrOUS[0]",
- new OUString(aUStr2),
- new OUStringBuffer(arrOUS[0]), new OUString(aUStr36) },
- {"Appends the string(length equal to 16) to the string buffer arrOUS[0]",
- new OUString(aUStr37),
- new OUStringBuffer(arrOUS[0]), new OUString(aUStr23) },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[0]",
- new OUString(aUStr7),
- new OUStringBuffer(arrOUS[0]), new OUString()},
- {"Appends the string(length less than 16) to the string buffer arrOUS[1]",
- new OUString(aUStr7),
- new OUStringBuffer(arrOUS[1]), new OUString(aUStr7)},
- {"Appends the string(length more than 16) to the string buffer arrOUS[1]",
- new OUString(aUStr2),
- new OUStringBuffer(arrOUS[1]), new OUString(aUStr2)},
- {"Appends the string(length equal to 16) to the string buffer arrOUS[1]",
- new OUString(aUStr1),
- new OUStringBuffer(arrOUS[1]), new OUString(aUStr1) },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[1]",
- new OUString(),
- new OUStringBuffer(arrOUS[1]), new OUString()},
- {"Appends the string(length less than 16) to the string buffer arrOUS[2]",
- new OUString(aUStr7),
- new OUStringBuffer(arrOUS[2]), new OUString(aUStr7)},
- {"Appends the string(length more than 16) to the string buffer arrOUS[2]",
- new OUString(aUStr2),
- new OUStringBuffer(arrOUS[2]), new OUString(aUStr2)},
- {"Appends the string(length equal to 16) to the string buffer arrOUS[2]",
- new OUString(aUStr1),
- new OUStringBuffer(arrOUS[2]), new OUString(aUStr1) },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[2]",
- new OUString(),
- new OUStringBuffer(arrOUS[2]), new OUString()},
- {"Appends the string(length less than 16) to the string buffer arrOUS[3]",
- new OUString(aUStr7),
- new OUStringBuffer(arrOUS[3]), new OUString(aUStr7)},
- {"Appends the string(length more than 16) to the string buffer arrOUS[3]",
- new OUString(aUStr2),
- new OUStringBuffer(arrOUS[3]), new OUString(aUStr2)},
- {"Appends the string(length equal to 16) to the string buffer arrOUS[3]",
- new OUString(aUStr1),
- new OUStringBuffer(arrOUS[3]), new OUString(aUStr1) },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[3]",
- new OUString(),
- new OUStringBuffer(arrOUS[3]), new OUString()},
- {"Appends the string(length less than 16) to the string buffer arrOUS[4]",
- new OUString(aUStr29),
- new OUStringBuffer(arrOUS[4]), new OUString(aUStr38)},
- {"Appends the string(length more than 16) to the string buffer arrOUS[4]",
- new OUString(aUStr39),
- new OUStringBuffer(arrOUS[4]), new OUString(aUStr17)},
- {"Appends the string(length equal to 16) to the string buffer arrOUS[4]",
- new OUString(aUStr40),
- new OUStringBuffer(arrOUS[4]), new OUString(aUStr31) },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[4]",
- new OUString(aUStr28),
- new OUStringBuffer(arrOUS[4]), new OUString()}
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- arrTestCase[i].input1->append( *(arrTestCase[i].input2) );
- sal_Bool lastRes =
- ( arrTestCase[i].input1->getStr()== *(arrTestCase[i].expVal) &&
- arrTestCase[i].input1->getLength() == arrTestCase[i].expVal->getLength() );
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "append(const OUString &str)_001", i )
-
- );
-
- res &= lastRes;
- }
-
- return ( res );
-}
-//------------------------------------------------------------------------
-// testing the method append( const sal_Unicode * str )
-//------------------------------------------------------------------------
-
-sal_Bool SAL_CALL test_rtl_OUStringBuffer_append_002(
- hTestResult hRtlTestResult)
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- OUString arrOUS[5]={OUString( aUStr7 ),
- OUString(),
- OUString( aUStr25 ),
- OUString( "\0",0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString),
- OUString( aUStr28 )};
-
- typedef struct TestCase
- {
- sal_Char* comments;
- OUString* expVal;
- OUStringBuffer* input1;
- sal_Unicode* input2;
-
- ~TestCase() { delete input1; delete expVal; }
- } TestCase;
-
- TestCase arrTestCase[]={
-
- {"Appends the string(length less than 16) to the string buffer arrOUS[0]",
- new OUString(aUStr1),
- new OUStringBuffer(arrOUS[0]), aUStr8 },
- {"Appends the string(length more than 16) to the string buffer arrOUS[0]",
- new OUString(aUStr2),
- new OUStringBuffer(arrOUS[0]), aUStr36 },
- {"Appends the string(length equal to 16) to the string buffer arrOUS[0]",
- new OUString(aUStr37),
- new OUStringBuffer(arrOUS[0]), aUStr23 },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[0]",
- new OUString(aUStr7),
- new OUStringBuffer(arrOUS[0]), aUStr25 },
- {"Appends the string(length less than 16) to the string buffer arrOUS[1]",
- new OUString(aUStr7),
- new OUStringBuffer(arrOUS[1]), aUStr7 },
- {"Appends the string(length more than 16) to the string buffer arrOUS[1]",
- new OUString(aUStr2),
- new OUStringBuffer(arrOUS[1]), aUStr2 },
- {"Appends the string(length equal to 16) to the string buffer arrOUS[1]",
- new OUString(aUStr1),
- new OUStringBuffer(arrOUS[1]), aUStr1 },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[1]",
- new OUString(),
- new OUStringBuffer(arrOUS[1]), aUStr25 },
- {"Appends the string(length less than 16) to the string buffer arrOUS[2]",
- new OUString(aUStr7),
- new OUStringBuffer(arrOUS[2]), aUStr7 },
- {"Appends the string(length more than 16) to the string buffer arrOUS[2]",
- new OUString(aUStr2),
- new OUStringBuffer(arrOUS[2]), aUStr2 },
- {"Appends the string(length equal to 16) to the string buffer arrOUS[2]",
- new OUString(aUStr1),
- new OUStringBuffer(arrOUS[2]), aUStr1 },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[2]",
- new OUString(),
- new OUStringBuffer(arrOUS[2]), aUStr25 },
- {"Appends the string(length less than 16) to the string buffer arrOUS[3]",
- new OUString(aUStr7),
- new OUStringBuffer(arrOUS[3]), aUStr7 },
- {"Appends the string(length more than 16) to the string buffer arrOUS[3]",
- new OUString(aUStr2),
- new OUStringBuffer(arrOUS[3]), aUStr2 },
- {"Appends the string(length equal to 16) to the string buffer arrOUS[3]",
- new OUString(aUStr1),
- new OUStringBuffer(arrOUS[3]), aUStr1 },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[3]",
- new OUString(),
- new OUStringBuffer(arrOUS[3]), aUStr25 },
- {"Appends the string(length less than 16) to the string buffer arrOUS[4]",
- new OUString(aUStr29),
- new OUStringBuffer(arrOUS[4]), aUStr38 },
- {"Appends the string(length more than 16) to the string buffer arrOUS[4]",
- new OUString(aUStr39),
- new OUStringBuffer(arrOUS[4]), aUStr17 },
- {"Appends the string(length equal to 16) to the string buffer arrOUS[4]",
- new OUString(aUStr40),
- new OUStringBuffer(arrOUS[4]), aUStr31 },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[4]",
- new OUString(aUStr28),
- new OUStringBuffer(arrOUS[4]), aUStr25 }
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- arrTestCase[i].input1->append( arrTestCase[i].input2 );
- sal_Bool lastRes =
- ( arrTestCase[i].input1->getStr()== *(arrTestCase[i].expVal) &&
- arrTestCase[i].input1->getLength() == arrTestCase[i].expVal->getLength() );
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "append( const sal_Unicode * str )_002", i )
-
- );
-
- res &= lastRes;
- }
-
- return ( res );
-}
-//------------------------------------------------------------------------
-// testing the method append( const sal_Unicode * str, sal_Int32 len)
-//------------------------------------------------------------------------
-
-sal_Bool SAL_CALL test_rtl_OUStringBuffer_append_003(
- hTestResult hRtlTestResult)
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- OUString arrOUS[5]={OUString( aUStr7 ),
- OUString(),
- OUString( aUStr25 ),
- OUString( "\0",0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString),
- OUString( aUStr28 )};
-
- typedef struct TestCase
- {
- sal_Char* comments;
- OUString* expVal;
- OUStringBuffer* input1;
- sal_Unicode* input2;
- sal_Int32 input3;
-
- ~TestCase() { delete input1; delete expVal; }
- } TestCase;
-
- TestCase arrTestCase[]={
-
- {"Appends the string(length less than 16) to the string buffer arrOUS[0]",
- new OUString(aUStr1),
- new OUStringBuffer(arrOUS[0]), aUStr36, 12 },
- {"Appends the string(length more than 16) to the string buffer arrOUS[0]",
- new OUString(aUStr2),
- new OUStringBuffer(arrOUS[0]), aUStr36, 28 },
- {"Appends the string(length equal to 16) to the string buffer arrOUS[0]",
- new OUString(aUStr37),
- new OUStringBuffer(arrOUS[0]), aUStr23, 16 },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[0]",
- new OUString(aUStr7),
- new OUStringBuffer(arrOUS[0]), aUStr2, 0 },
- /* LLA: input3 must null < 0
- {"Appends the string(length less than 0) to the string buffer arrOUS[0]",
- new OUString(aUStr41),
- new OUStringBuffer(arrOUS[0]), aUStr2, -1 },
- */
- {"Appends the string(length less than 16) to the string buffer arrOUS[1]",
- new OUString(aUStr7),
- new OUStringBuffer(arrOUS[1]), aUStr2, 4 },
- {"Appends the string(length more than 16) to the string buffer arrOUS[1]",
- new OUString(aUStr2),
- new OUStringBuffer(arrOUS[1]), aUStr2, 32 },
- {"Appends the string(length equal to 16) to the string buffer arrOUS[1]",
- new OUString(aUStr1),
- new OUStringBuffer(arrOUS[1]), aUStr2, 16 },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[1]",
- new OUString(),
- new OUStringBuffer(arrOUS[1]), aUStr2, 0 },
- /* LLA: input3 must null < 0
- {"Appends the string(length less than 0) to the string buffer arrOUS[1]",
- new OUString(),
- new OUStringBuffer(arrOUS[1]), aUStr2, -1 },
- */
- {"Appends the string(length less than 16) to the string buffer arrOUS[2]",
- new OUString(aUStr7),
- new OUStringBuffer(arrOUS[2]), aUStr2, 4 },
- {"Appends the string(length more than 16) to the string buffer arrOUS[2]",
- new OUString(aUStr2),
- new OUStringBuffer(arrOUS[2]), aUStr2, 32 },
- {"Appends the string(length equal to 16) to the string buffer arrOUS[2]",
- new OUString(aUStr1),
- new OUStringBuffer(arrOUS[2]), aUStr2, 16 },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[2]",
- new OUString(),
- new OUStringBuffer(arrOUS[2]), aUStr2, 0 },
- /* LLA: input3 must null < 0
- {"Appends the string(length less than 0) to the string buffer arrOUS[2]",
- new OUString(),
- new OUStringBuffer(arrOUS[2]), aUStr2, -1 },
- */
- {"Appends the string(length less than 16) to the string buffer arrOUS[3]",
- new OUString(aUStr7),
- new OUStringBuffer(arrOUS[3]), aUStr2, 4 },
- {"Appends the string(length more than 16) to the string buffer arrOUS[3]",
- new OUString(aUStr2),
- new OUStringBuffer(arrOUS[3]), aUStr2, 32 },
- {"Appends the string(length equal to 16) to the string buffer arrOUS[3]",
- new OUString(aUStr1),
- new OUStringBuffer(arrOUS[3]), aUStr2, 16 },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[3]",
- new OUString(),
- new OUStringBuffer(arrOUS[3]), aUStr2, 0 },
- /* LLA: input3 must null < 0
- {"Appends the string(length less than 0) to the string buffer arrOUS[3]",
- new OUString(),
- new OUStringBuffer(arrOUS[3]), aUStr2, -1 },
- */
- {"Appends the string(length less than 16) to the string buffer arrOUS[4]",
- new OUString(aUStr29),
- new OUStringBuffer(arrOUS[4]), aUStr38, 7 },
- {"Appends the string(length more than 16) to the string buffer arrOUS[4]",
- new OUString(aUStr39),
- new OUStringBuffer(arrOUS[4]), aUStr17, 22 },
- {"Appends the string(length equal to 16) to the string buffer arrOUS[4]",
- new OUString(aUStr40),
- new OUStringBuffer(arrOUS[4]), aUStr31, 16 },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[4]",
- new OUString(aUStr28),
- new OUStringBuffer(arrOUS[4]), aUStr2, 0 },
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- arrTestCase[i].input1->append(
- arrTestCase[i].input2, arrTestCase[i].input3);
- sal_Bool lastRes =
- ( arrTestCase[i].input1->getStr()== *(arrTestCase[i].expVal) &&
- arrTestCase[i].input1->getLength() == arrTestCase[i].expVal->getLength() );
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "append( const sal_Unicode * str, sal_Int32 len)_003", i )
-
- );
-
- res &= lastRes;
- }
-
- return ( res );
-}
-//------------------------------------------------------------------------
-// testing the method append(sal_Bool b)
-//------------------------------------------------------------------------
-
-sal_Bool SAL_CALL test_rtl_OUStringBuffer_append_004(
- hTestResult hRtlTestResult)
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- OUString arrOUS[5]={OUString( aUStr7 ),
- OUString(),
- OUString( aUStr25 ),
- OUString( "\0",0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString),
- OUString( aUStr28 )};
-
- typedef struct TestCase
- {
- sal_Char* comments;
- OUString* expVal;
- OUStringBuffer* input1;
- sal_Bool input2;
-
- ~TestCase() { delete input1; delete expVal; }
- } TestCase;
-
- TestCase arrTestCase[]={
-
- {"Appends the sal_Bool(sal_True) to the string buffer arrOUS[0]",
- new OUString(aUStr45),
- new OUStringBuffer(arrOUS[0]), sal_True },
- {"Appends the sal_Bool(sal_False) to the string buffer arrOUS[0]",
- new OUString(aUStr46),
- new OUStringBuffer(arrOUS[0]), sal_False },
- {"Appends the sal_Bool(sal_True) to the string buffer arrOUS[1]",
- new OUString(aUStr47),
- new OUStringBuffer(arrOUS[1]), sal_True },
- {"Appends the sal_Bool(sal_False) to the string buffer arrOUS[1]",
- new OUString(aUStr48),
- new OUStringBuffer(arrOUS[1]), sal_False },
- {"Appends the sal_Bool(sal_True) to the string buffer arrOUS[2]",
- new OUString(aUStr47),
- new OUStringBuffer(arrOUS[2]), sal_True },
- {"Appends the sal_Bool(sal_False) to the string buffer arrOUS[2]",
- new OUString(aUStr48),
- new OUStringBuffer(arrOUS[2]), sal_False },
- {"Appends the sal_Bool(sal_True) to the string buffer arrOUS[3]",
- new OUString(aUStr47),
- new OUStringBuffer(arrOUS[3]), sal_True },
- {"Appends the sal_Bool(sal_False) to the string buffer arrOUS[3]",
- new OUString(aUStr48),
- new OUStringBuffer(arrOUS[3]), sal_False },
- {"Appends the sal_Bool(sal_True) to the string buffer arrOUS[4]",
- new OUString(aUStr49),
- new OUStringBuffer(arrOUS[4]), sal_True },
- {"Appends the sal_Bool(sal_False) to the string buffer arrOUS[4]",
- new OUString(aUStr50),
- new OUStringBuffer(arrOUS[4]), sal_False }
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- arrTestCase[i].input1->append(
- arrTestCase[i].input2 );
- sal_Bool lastRes =
- ( arrTestCase[i].input1->getStr()== *(arrTestCase[i].expVal) &&
- arrTestCase[i].input1->getLength() == arrTestCase[i].expVal->getLength() );
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "append( sal_Bool b)_004", i )
-
- );
-
- res &= lastRes;
- }
-
- return ( res );
-}
-
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_appends(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "appends");
- sal_Bool bTSState = test_rtl_OUStringBuffer_append_001( hRtlTestResult );
- bTSState &= test_rtl_OUStringBuffer_append_002( hRtlTestResult);
- bTSState &= test_rtl_OUStringBuffer_append_003( hRtlTestResult);
- bTSState &= test_rtl_OUStringBuffer_append_004( hRtlTestResult);
-
- c_rtl_tres_state_end( hRtlTestResult, "appends");
-// return( bTSState );
-}
-//------------------------------------------------------------------------
-// testing the method appendAscii( const sal_Char * str )
-//------------------------------------------------------------------------
-
-sal_Bool SAL_CALL test_rtl_OUStringBuffer_appendAscii_001(
- hTestResult hRtlTestResult)
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- OUString arrOUS[5]={OUString( aUStr7 ),
- OUString(),
- OUString( aUStr25 ),
- OUString( "\0",0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString),
- OUString( aUStr28 )};
-
- typedef struct TestCase
- {
- sal_Char* comments;
- OUString* expVal;
- OUStringBuffer* input1;
- const sal_Char* input2;
-
- ~TestCase() { delete input1; delete expVal; }
- } TestCase;
-
- TestCase arrTestCase[]={
-
- {"Appends the string(length less than 16) to the string buffer arrOUS[0]",
- new OUString(aUStr1),
- new OUStringBuffer(arrOUS[0]), kTestStr8 },
- {"Appends the string(length more than 16) to the string buffer arrOUS[0]",
- new OUString(aUStr2),
- new OUStringBuffer(arrOUS[0]), kTestStr36 },
- {"Appends the string(length equal to 16) to the string buffer arrOUS[0]",
- new OUString(aUStr37),
- new OUStringBuffer(arrOUS[0]), kTestStr23 },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[0]",
- new OUString(aUStr7),
- new OUStringBuffer(arrOUS[0]), kTestStr25 },
- {"Appends the string(length less than 16) to the string buffer arrOUS[1]",
- new OUString(aUStr7),
- new OUStringBuffer(arrOUS[1]), kTestStr7 },
- {"Appends the string(length more than 16) to the string buffer arrOUS[1]",
- new OUString(aUStr2),
- new OUStringBuffer(arrOUS[1]), kTestStr2 },
- {"Appends the string(length equal to 16) to the string buffer arrOUS[1]",
- new OUString(aUStr1),
- new OUStringBuffer(arrOUS[1]), kTestStr1 },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[1]",
- new OUString(),
- new OUStringBuffer(arrOUS[1]), kTestStr25 },
- {"Appends the string(length less than 16) to the string buffer arrOUS[2]",
- new OUString(aUStr7),
- new OUStringBuffer(arrOUS[2]), kTestStr7 },
- {"Appends the string(length more than 16) to the string buffer arrOUS[2]",
- new OUString(aUStr2),
- new OUStringBuffer(arrOUS[2]), kTestStr2 },
- {"Appends the string(length equal to 16) to the string buffer arrOUS[2]",
- new OUString(aUStr1),
- new OUStringBuffer(arrOUS[2]), kTestStr1 },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[2]",
- new OUString(),
- new OUStringBuffer(arrOUS[2]), kTestStr25 },
- {"Appends the string(length less than 16) to the string buffer arrOUS[3]",
- new OUString(aUStr7),
- new OUStringBuffer(arrOUS[3]), kTestStr7 },
- {"Appends the string(length more than 16) to the string buffer arrOUS[3]",
- new OUString(aUStr2),
- new OUStringBuffer(arrOUS[3]), kTestStr2 },
- {"Appends the string(length equal to 16) to the string buffer arrOUS[3]",
- new OUString(aUStr1),
- new OUStringBuffer(arrOUS[3]), kTestStr1 },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[3]",
- new OUString(),
- new OUStringBuffer(arrOUS[3]), kTestStr25 },
- {"Appends the string(length less than 16) to the string buffer arrOUS[4]",
- new OUString(aUStr29),
- new OUStringBuffer(arrOUS[4]), kTestStr38 },
- {"Appends the string(length more than 16) to the string buffer arrOUS[4]",
- new OUString(aUStr39),
- new OUStringBuffer(arrOUS[4]), kTestStr17 },
- {"Appends the string(length equal to 16) to the string buffer arrOUS[4]",
- new OUString(aUStr40),
- new OUStringBuffer(arrOUS[4]), kTestStr31 },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[4]",
- new OUString(aUStr28),
- new OUStringBuffer(arrOUS[4]), kTestStr25 }
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- arrTestCase[i].input1->appendAscii( arrTestCase[i].input2 );
- sal_Bool lastRes =
- ( arrTestCase[i].input1->getStr()== *(arrTestCase[i].expVal) &&
- arrTestCase[i].input1->getLength() == arrTestCase[i].expVal->getLength() );
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "appendAscii_001", i )
- );
-
- res &= lastRes;
- }
- return ( res );
-}
-//------------------------------------------------------------------------
-// testing the method appendAscii( const sal_Char * str, sal_Int32 len)
-//------------------------------------------------------------------------
-
-sal_Bool SAL_CALL test_rtl_OUStringBuffer_appendAscii_002(
- hTestResult hRtlTestResult)
-{
- sal_Char methName[MAXBUFLENGTH];
- sal_Char* pMeth = methName;
-
- OUString arrOUS[5]={OUString( aUStr7 ),
- OUString(),
- OUString( aUStr25 ),
- OUString( "\0",0,
- kEncodingRTLTextUSASCII,
- kConvertFlagsOStringToOUString),
- OUString( aUStr28 )};
-
- typedef struct TestCase
- {
- sal_Char* comments;
- OUString* expVal;
- OUStringBuffer* input1;
- const sal_Char* input2;
- sal_Int32 input3;
-
- ~TestCase() { delete input1; delete expVal; }
- } TestCase;
-
- TestCase arrTestCase[]={
-
- {"Appends the string(length less than 16) to the string buffer arrOUS[0]",
- new OUString(aUStr1),
- new OUStringBuffer(arrOUS[0]), kTestStr36, 12 },
- {"Appends the string(length more than 16) to the string buffer arrOUS[0]",
- new OUString(aUStr2),
- new OUStringBuffer(arrOUS[0]), kTestStr36, 28 },
- {"Appends the string(length equal to 16) to the string buffer arrOUS[0]",
- new OUString(aUStr37),
- new OUStringBuffer(arrOUS[0]), kTestStr23, 16 },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[0]",
- new OUString(aUStr7),
- new OUStringBuffer(arrOUS[0]), kTestStr2, 0 },
- /* LLA: input3 must null < 0
- {"Appends the string(length less than 0) to the string buffer arrOUS[0]",
- new OUString(aUStr41),
- new OUStringBuffer(arrOUS[0]), kTestStr2, -1 },
- */
- {"Appends the string(length less than 16) to the string buffer arrOUS[1]",
- new OUString(aUStr7),
- new OUStringBuffer(arrOUS[1]), kTestStr2, 4 },
- {"Appends the string(length more than 16) to the string buffer arrOUS[1]",
- new OUString(aUStr2),
- new OUStringBuffer(arrOUS[1]), kTestStr2, 32 },
- {"Appends the string(length equal to 16) to the string buffer arrOUS[1]",
- new OUString(aUStr1),
- new OUStringBuffer(arrOUS[1]), kTestStr2, 16 },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[1]",
- new OUString(),
- new OUStringBuffer(arrOUS[1]), kTestStr2, 0 },
- /* LLA: input3 must null < 0
- {"Appends the string(length less than 0) to the string buffer arrOUS[1]",
- new OUString(),
- new OUStringBuffer(arrOUS[1]), kTestStr2, -1 },
- */
- {"Appends the string(length less than 16) to the string buffer arrOUS[2]",
- new OUString(aUStr7),
- new OUStringBuffer(arrOUS[2]), kTestStr2, 4 },
- {"Appends the string(length more than 16) to the string buffer arrOUS[2]",
- new OUString(aUStr2),
- new OUStringBuffer(arrOUS[2]), kTestStr2, 32 },
- {"Appends the string(length equal to 16) to the string buffer arrOUS[2]",
- new OUString(aUStr1),
- new OUStringBuffer(arrOUS[2]), kTestStr2, 16 },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[2]",
- new OUString(),
- new OUStringBuffer(arrOUS[2]), kTestStr2, 0 },
- /* LLA: input3 must null < 0
- {"Appends the string(length less than 0) to the string buffer arrOUS[2]",
- new OUString(),
- new OUStringBuffer(arrOUS[2]), kTestStr2, -1 },
- */
- {"Appends the string(length less than 16) to the string buffer arrOUS[3]",
- new OUString(aUStr7),
- new OUStringBuffer(arrOUS[3]), kTestStr2, 4 },
- {"Appends the string(length more than 16) to the string buffer arrOUS[3]",
- new OUString(aUStr2),
- new OUStringBuffer(arrOUS[3]), kTestStr2, 32 },
- {"Appends the string(length equal to 16) to the string buffer arrOUS[3]",
- new OUString(aUStr1),
- new OUStringBuffer(arrOUS[3]), kTestStr2, 16 },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[3]",
- new OUString(),
- new OUStringBuffer(arrOUS[3]), kTestStr2, 0 },
- /* LLA: input3 must null < 0
- {"Appends the string(length less than 0) to the string buffer arrOUS[3]",
- new OUString(),
- new OUStringBuffer(arrOUS[3]), kTestStr2, -1 },
- */
- {"Appends the string(length less than 16) to the string buffer arrOUS[4]",
- new OUString(aUStr29),
- new OUStringBuffer(arrOUS[4]), kTestStr38, 7 },
- {"Appends the string(length more than 16) to the string buffer arrOUS[4]",
- new OUString(aUStr39),
- new OUStringBuffer(arrOUS[4]), kTestStr17, 22 },
- {"Appends the string(length equal to 16) to the string buffer arrOUS[4]",
- new OUString(aUStr40),
- new OUStringBuffer(arrOUS[4]), kTestStr31, 16 },
- {"Appends the string(length equal to 0) to the string buffer arrOUS[4]",
- new OUString(aUStr28),
- new OUStringBuffer(arrOUS[4]), kTestStr2, 0 },
- };
-
-
- sal_Bool res = sal_True;
- sal_uInt32 i;
-
- for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
- {
- arrTestCase[i].input1->appendAscii(
- arrTestCase[i].input2, arrTestCase[i].input3);
- sal_Bool lastRes =
- ( arrTestCase[i].input1->getStr()== *(arrTestCase[i].expVal) &&
- arrTestCase[i].input1->getLength() == arrTestCase[i].expVal->getLength() );
-
- c_rtl_tres_state
- (
- hRtlTestResult,
- lastRes,
- arrTestCase[i].comments,
- createName( pMeth, "appendAscii_002", i )
-
- );
-
- res &= lastRes;
- }
- return ( res );
-}
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_appendAsciis(
- hTestResult hRtlTestResult )
-{
- c_rtl_tres_state_start( hRtlTestResult, "appendAsciis");
- sal_Bool bTSState = test_rtl_OUStringBuffer_appendAscii_001( hRtlTestResult );
- bTSState &= test_rtl_OUStringBuffer_appendAscii_002( hRtlTestResult);
-
- c_rtl_tres_state_end( hRtlTestResult, "appendAsciis");
-// return( bTSState );
-}
-// -----------------------------------------------------------------------------
-extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer( hTestResult hRtlTestResult )
-{
-
- c_rtl_tres_state_start(hRtlTestResult, "rtl_OUStringBuffer" );
-
- test_rtl_OUStringBuffer_ctors( hRtlTestResult );
- test_rtl_OUStringBuffer_makeStringAndClear( hRtlTestResult );
- test_rtl_OUStringBuffer_getLength( hRtlTestResult );
- test_rtl_OUStringBuffer_getCapacity( hRtlTestResult );
- test_rtl_OUStringBuffer_ensureCapacity( hRtlTestResult );
- test_rtl_OUStringBuffer_setLength( hRtlTestResult );
- test_rtl_OUStringBuffer_charAt( hRtlTestResult );
- test_rtl_OUStringBuffer_csuc( hRtlTestResult );
- test_rtl_OUStringBuffer_getStr( hRtlTestResult );
- test_rtl_OUStringBuffer_setCharAt( hRtlTestResult );
- test_rtl_OUStringBuffer_appends( hRtlTestResult );
- test_rtl_OUStringBuffer_appendAsciis( hRtlTestResult );
-
- c_rtl_tres_state_end(hRtlTestResult, "rtl_OUStringBuffer");
-}
-
-// -----------------------------------------------------------------------------
-void RegisterAdditionalFunctions(FktRegFuncPtr _pFunc)
-{
- if (_pFunc)
- {
- (_pFunc)(&test_rtl_OUStringBuffer, "");
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl_strings/rtl_String_Const.h b/sal/qa/rtl_strings/rtl_String_Const.h
deleted file mode 100644
index d6fa04d24..000000000
--- a/sal/qa/rtl_strings/rtl_String_Const.h
+++ /dev/null
@@ -1,836 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_STRING_CONST_H_
-#define _RTL_STRING_CONST_H_
-
-#ifndef _RTL_STRING_UTILS_HXX_
- #include <rtl_String_Utils.hxx>
-#endif
-
-#include <limits.h>
-
-#ifndef _SAL_TYPES_H_
- #include <sal/types.h>
-#endif
-
-#ifndef _RTL_TEXTENC_H
- #include <rtl/textenc.h>
-#endif
-
-#ifndef _RTL_USTRING_H_
- #include <rtl/ustring.h>
-#endif
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-static const rtl_TextEncoding kEncodingRTLTextUSASCII = RTL_TEXTENCODING_ASCII_US;
-
-static const sal_uInt32 kConvertFlagsOUStringToOString = OUSTRING_TO_OSTRING_CVTFLAGS;
-static const sal_uInt32 kConvertFlagsOStringToOUString = OSTRING_TO_OUSTRING_CVTFLAGS;
-
-static const sal_Char *kTestStr1 = "Sun Microsystems";
-static const sal_Char *kTestStr2 = "Sun Microsystems Java Technology";
-static const sal_Char *kTestStr3 = "Sun microsystems";
-static const sal_Char *kTestStr4 = "SUN MICROSYSTEMS";
-static const sal_Char *kTestStr5 = "sun microsystems";
-static const sal_Char *kTestStr6 = "Java Technology";
-static const sal_Char *kTestStr7 = "Sun ";
-static const sal_Char *kTestStr8 = "Microsystems";
-static const sal_Char *kTestStr9 = "sun microsystems java technology";
-static const sal_Char *kTestStr10 = " Sun Microsystems";
-static const sal_Char *kTestStr11 = "Sun Microsystems ";
-static const sal_Char *kTestStr12 = " Sun Microsystems ";
-static const sal_Char *kTestStr13 = "Sun Microsystems ";
-static const sal_Char *kTestStr14 = " Sun Microsystems";
-static const sal_Char *kTestStr15 = " Sun Microsystems ";
-static const sal_Char *kTestStr16 = " Sun Microsystems ";
-static const sal_Char *kTestStr17 = " Sun Microsystems ";
-static const sal_Char *kTestStr18 = "sUN MICROsYsTEMs";
-static const sal_Char *kTestStr19 = "---Sun-Microsystems---";
-static const sal_Char *kTestStr20 = "sun";
-static const sal_Char *kTestStr21 = "SUN";
-static const sal_Char *kTestStr22 = "SUN MICROSYSTEMS JAVA TECHNOLOGY";
-static const sal_Char *kTestStr23 = " Java Technology";
-static const sal_Char *kTestStr24 = "Sun Microsystems Java Technolog";
-static const sal_Char *kTestStr25 = "";
-static const sal_Char *kTestStr26 = " Mic";
-static const sal_Char *kTestStr27 = "s";
-static const sal_Char *kTestStr28 = "\50\3\5\7\11\13\15\17sun";
-static const sal_Char *kTestStr29 = "\50\3\5\7\11\13\15\17sun\21\23\25\27\31\33\50";
-static const sal_Char *kTestStr30 = "sun\21\23\25\27\31\33\50";
-static const sal_Char *kTestStr31 = "sun Microsystems";
-static const sal_Char *kTestStr32 = "Sun Microsystem ";
-static const sal_Char *kTestStr33 = " ";
-static const sal_Char *kTestStr34 = "\50\5\5\7\11\13\15\17sun";
-static const sal_Char *kTestStr35 = "\50\373\5\7\11\13\15\17sun";
-static const sal_Char *kTestStr36 = "Microsystems Java Technology";
-static const sal_Char *kTestStr37 = "Sun Java Technology";
-static const sal_Char *kTestStr38 = "\21\23\25\27\31\33\50";
-static const sal_Char *kTestStr39 = "\50\3\5\7\11\13\15\17sun Sun Microsystems ";
-static const sal_Char *kTestStr40 = "\50\3\5\7\11\13\15\17sunsun Microsystems";
-static const sal_Char *kTestStr41 = "Sun";
-static const sal_Char *kTestStr42 = "\50\3\5\7\11\13\15\17su";
-static const sal_Char *kTestStr43 = "\50\3\5\7\11\13\15\17sun\256\345";
-static const sal_Char *kTestStr44 = "\256\345";
-static const sal_Char *kTestStr45 = "Sun true";
-static const sal_Char *kTestStr46 = "Sun false";
-static const sal_Char *kTestStr47 = "true";
-static const sal_Char *kTestStr48 = "false";
-static const sal_Char *kTestStr49 = "\50\3\5\7\11\13\15\17suntrue";
-static const sal_Char *kTestStr50 = "\50\3\5\7\11\13\15\17sunfalse";
-static const sal_Char *kTestStr51 = "Sun M";
-//static const sal_Char *kTestStr52 = "Sun \077777";
-//static const sal_Char *kTestStr53 = "Sun \100000";
-//static const sal_Char *kTestStr54 = "\77777";
-//static const sal_Char *kTestStr55 = "\100000";
-static const sal_Char *kTestStr56 = "\50\3\5\7\11\13\15\17suns";
-//static const sal_Char *kTestStr57 = "\50\3\5\7\11\13\15\17sun\77777";
-//static const sal_Char *kTestStr58 = "\50\3\5\7\11\13\15\17sun\10000";
-static const sal_Char *kTestStr1PlusStr6 = "Sun Microsystems" "Java Technology";
-
-static const sal_Int32 kTestStr1Len = 16;
-static const sal_Int32 kTestStr2Len = 32;
-static const sal_Int32 kTestStr3Len = 16;
-static const sal_Int32 kTestStr4Len = 16;
-static const sal_Int32 kTestStr5Len = 16;
-static const sal_Int32 kTestStr6Len = 15;
-static const sal_Int32 kTestStr7Len = 4;
-static const sal_Int32 kTestStr8Len = 12;
-static const sal_Int32 kTestStr9Len = 32;
-static const sal_Int32 kTestStr10Len = 17;
-static const sal_Int32 kTestStr11Len = 17;
-static const sal_Int32 kTestStr12Len = 18;
-static const sal_Int32 kTestStr13Len = 19;
-static const sal_Int32 kTestStr14Len = 19;
-static const sal_Int32 kTestStr15Len = 20;
-static const sal_Int32 kTestStr16Len = 20;
-static const sal_Int32 kTestStr17Len = 22;
-static const sal_Int32 kTestStr18Len = 16;
-static const sal_Int32 kTestStr19Len = 22;
-static const sal_Int32 kTestStr20Len = 3;
-static const sal_Int32 kTestStr21Len = 3;
-static const sal_Int32 kTestStr22Len = 32;
-static const sal_Int32 kTestStr23Len = 16;
-static const sal_Int32 kTestStr24Len = 31;
-static const sal_Int32 kTestStr25Len = 0;
-static const sal_Int32 kTestStr26Len = 4;
-static const sal_Int32 kTestStr27Len = 1;
-static const sal_Int32 kTestStr28Len = 11;
-static const sal_Int32 kTestStr29Len = 18;
-static const sal_Int32 kTestStr30Len = 10;
-static const sal_Int32 kTestStr31Len = 16;
-static const sal_Int32 kTestStr32Len = 16;
-static const sal_Int32 kTestStr33Len = 1;
-static const sal_Int32 kTestStr34Len = 11;
-static const sal_Int32 kTestStr35Len = 11;
-static const sal_Int32 kTestStr36Len = 28;
-static const sal_Int32 kTestStr37Len = 20;
-static const sal_Int32 kTestStr38Len = 7;
-static const sal_Int32 kTestStr39Len = 33;
-static const sal_Int32 kTestStr40Len = 27;
-static const sal_Int32 kTestStr41Len = 3;
-static const sal_Int32 kTestStr42Len = 10;
-static const sal_Int32 kTestStr43Len = 13;
-static const sal_Int32 kTestStr44Len = 2;
-static const sal_Int32 kTestStr45Len = 8;
-static const sal_Int32 kTestStr46Len = 9;
-static const sal_Int32 kTestStr47Len = 4;
-static const sal_Int32 kTestStr48Len = 5;
-static const sal_Int32 kTestStr49Len = 15;
-static const sal_Int32 kTestStr50Len = 16;
-static const sal_Int32 kTestStr51Len = 5;
-static const sal_Int32 kTestStr52Len = 5;
-static const sal_Int32 kTestStr53Len = 5;
-static const sal_Int32 kTestStr54Len = 1;
-static const sal_Int32 kTestStr55Len = 1;
-static const sal_Int32 kTestStr56Len = 12;
-static const sal_Int32 kTestStr57Len = 12;
-static const sal_Int32 kTestStr58Len = 12;
-static const sal_Int32 kTestStr1PlusStr6Len = kTestStr1Len + kTestStr6Len;
-
- static sal_Unicode aUStr1[kTestStr1Len+1];
- static sal_Unicode aUStr2[kTestStr2Len+1];
- static sal_Unicode aUStr3[kTestStr3Len+1];
- static sal_Unicode aUStr4[kTestStr4Len+1];
- static sal_Unicode aUStr5[kTestStr5Len+1];
- static sal_Unicode aUStr6[kTestStr6Len+1];
- static sal_Unicode aUStr7[kTestStr7Len+1];
- static sal_Unicode aUStr8[kTestStr8Len+1];
- static sal_Unicode aUStr9[kTestStr9Len+1];
- static sal_Unicode aUStr10[kTestStr10Len+1];
- static sal_Unicode aUStr11[kTestStr11Len+1];
- static sal_Unicode aUStr12[kTestStr12Len+1];
- static sal_Unicode aUStr13[kTestStr13Len+1];
- static sal_Unicode aUStr14[kTestStr14Len+1];
- static sal_Unicode aUStr15[kTestStr15Len+1];
- static sal_Unicode aUStr16[kTestStr16Len+1];
- static sal_Unicode aUStr17[kTestStr17Len+1];
- static sal_Unicode aUStr18[kTestStr18Len+1];
- static sal_Unicode aUStr19[kTestStr19Len+1];
- static sal_Unicode aUStr20[kTestStr20Len+1];
- static sal_Unicode aUStr21[kTestStr21Len+1];
- static sal_Unicode aUStr22[kTestStr22Len+1];
- static sal_Unicode aUStr23[kTestStr23Len+1];
- static sal_Unicode aUStr24[kTestStr24Len+1];
- static sal_Unicode aUStr25[kTestStr25Len+1];
- static sal_Unicode aUStr26[kTestStr26Len+1];
- static sal_Unicode aUStr27[kTestStr27Len+1];
- static sal_Unicode aUStr28[kTestStr28Len+1];
- static sal_Unicode aUStr29[kTestStr29Len+1];
- static sal_Unicode aUStr30[kTestStr30Len+1];
- static sal_Unicode aUStr31[kTestStr31Len+1];
- static sal_Unicode aUStr32[kTestStr32Len+1];
- static sal_Unicode aUStr33[kTestStr33Len+1];
- static sal_Unicode aUStr34[kTestStr34Len+1];
- static sal_Unicode aUStr35[kTestStr35Len+1];
- static sal_Unicode aUStr36[kTestStr36Len+1];
- static sal_Unicode aUStr37[kTestStr37Len+1];
- static sal_Unicode aUStr38[kTestStr38Len+1];
- static sal_Unicode aUStr39[kTestStr39Len+1];
- static sal_Unicode aUStr40[kTestStr40Len+1];
- static sal_Unicode aUStr41[kTestStr41Len+1];
- static sal_Unicode aUStr42[kTestStr42Len+1];
- static sal_Unicode aUStr43[kTestStr43Len+1];
- static sal_Unicode aUStr44[kTestStr44Len+1];
- static sal_Unicode aUStr45[kTestStr45Len+1];
- static sal_Unicode aUStr46[kTestStr46Len+1];
- static sal_Unicode aUStr47[kTestStr47Len+1];
- static sal_Unicode aUStr48[kTestStr48Len+1];
- static sal_Unicode aUStr49[kTestStr49Len+1];
- static sal_Unicode aUStr50[kTestStr50Len+1];
- static sal_Unicode aUStr51[kTestStr51Len+1];
-// static sal_Unicode aUStr52[kTestStr52Len+1]={83,117,110,32,32767};
-// static sal_Unicode aUStr53[kTestStr53Len+1]={83,117,110,32,SAL_MIN_INT16 /*-32768*/};
-// static sal_Unicode aUStr54[kTestStr54Len+1]={32767};
-// static sal_Unicode aUStr55[kTestStr55Len+1]={SAL_MIN_INT16 /*-32768*/};
- static sal_Unicode aUStr56[kTestStr56Len+1];
-// static sal_Unicode aUStr57[kTestStr57Len+1]={40,3,5,7,9,11,13,15,115,117,110,32767};
-// static sal_Unicode aUStr58[kTestStr58Len+1]={40,3,5,7,9,11,13,15,115,117,110,SAL_MIN_INT16 /*-32768*/};
- static sal_Unicode aUStr1PlusUStr6[kTestStr1Len + kTestStr6Len + 1];
-
-// we are already in "C"
-
-static sal_Bool SAL_CALL test_ini_uString()
-{
-
- sal_Bool iniResult= sal_True;
-
- iniResult &=AStringToUStringNCopy( aUStr1, kTestStr1, kTestStr1Len );
-
- iniResult &=AStringToUStringNCopy( aUStr2, kTestStr2, kTestStr2Len );
-
- iniResult &=AStringToUStringNCopy( aUStr3, kTestStr3, kTestStr3Len );
-
- iniResult &=AStringToUStringNCopy( aUStr4, kTestStr4, kTestStr4Len );
-
- iniResult &=AStringToUStringNCopy( aUStr5, kTestStr5, kTestStr5Len );
-
- iniResult &=AStringToUStringNCopy( aUStr6, kTestStr6, kTestStr6Len );
-
- iniResult &=AStringToUStringNCopy( aUStr7, kTestStr7, kTestStr7Len );
-
- iniResult &=AStringToUStringNCopy( aUStr8, kTestStr8, kTestStr8Len );
-
- iniResult &=AStringToUStringNCopy( aUStr9, kTestStr9, kTestStr9Len );
-
- iniResult &=AStringToUStringNCopy( aUStr10, kTestStr10, kTestStr10Len );
-
- iniResult &=AStringToUStringNCopy( aUStr11, kTestStr11, kTestStr11Len );
-
- iniResult &=AStringToUStringNCopy( aUStr12, kTestStr12, kTestStr12Len );
-
- iniResult &=AStringToUStringNCopy( aUStr13, kTestStr13, kTestStr13Len );
-
- iniResult &=AStringToUStringNCopy( aUStr14, kTestStr14, kTestStr14Len );
-
- iniResult &=AStringToUStringNCopy( aUStr15, kTestStr15, kTestStr15Len );
-
- iniResult &=AStringToUStringNCopy( aUStr16, kTestStr16, kTestStr16Len );
-
- iniResult &=AStringToUStringNCopy( aUStr17, kTestStr17, kTestStr17Len );
-
- iniResult &=AStringToUStringNCopy( aUStr18, kTestStr18, kTestStr18Len );
-
- iniResult &=AStringToUStringNCopy( aUStr19, kTestStr19, kTestStr19Len );
-
- iniResult &=AStringToUStringNCopy( aUStr20, kTestStr20, kTestStr20Len );
-
- iniResult &=AStringToUStringNCopy( aUStr21, kTestStr21, kTestStr21Len );
-
- iniResult &=AStringToUStringNCopy( aUStr22, kTestStr22, kTestStr22Len );
-
- iniResult &=AStringToUStringNCopy( aUStr23, kTestStr23, kTestStr23Len );
-
- iniResult &=AStringToUStringNCopy( aUStr1PlusUStr6, kTestStr1PlusStr6, kTestStr1PlusStr6Len );
-
- iniResult &=AStringToUStringNCopy( aUStr24, kTestStr24, kTestStr24Len );
-
- iniResult &=AStringToUStringNCopy( aUStr25, kTestStr25, kTestStr25Len );
-
- iniResult &=AStringToUStringNCopy( aUStr26, kTestStr26, kTestStr26Len );
-
- iniResult &=AStringToUStringNCopy( aUStr27, kTestStr27, kTestStr27Len );
-
- iniResult &=AStringToUStringNCopy( aUStr28, kTestStr28, kTestStr28Len );
-
- iniResult &=AStringToUStringNCopy( aUStr29, kTestStr29, kTestStr29Len );
-
- iniResult &=AStringToUStringNCopy( aUStr30, kTestStr30, kTestStr30Len );
-
- iniResult &=AStringToUStringNCopy( aUStr31, kTestStr31, kTestStr31Len );
-
- iniResult &=AStringToUStringNCopy( aUStr32, kTestStr32, kTestStr32Len );
-
- iniResult &=AStringToUStringNCopy( aUStr33, kTestStr33, kTestStr33Len );
-
- iniResult &=AStringToUStringNCopy( aUStr34, kTestStr34, kTestStr34Len );
-
- iniResult &=AStringToUStringNCopy( aUStr35, kTestStr35, kTestStr35Len );
-
- iniResult &=AStringToUStringNCopy( aUStr36, kTestStr36, kTestStr36Len );
-
- iniResult &=AStringToUStringNCopy( aUStr37, kTestStr37, kTestStr37Len );
-
- iniResult &=AStringToUStringNCopy( aUStr38, kTestStr38, kTestStr38Len );
-
- iniResult &=AStringToUStringNCopy( aUStr39, kTestStr39, kTestStr39Len );
-
- iniResult &=AStringToUStringNCopy( aUStr40, kTestStr40, kTestStr40Len );
-
- iniResult &=AStringToUStringNCopy( aUStr41, kTestStr41, kTestStr41Len );
-
- iniResult &=AStringToUStringNCopy( aUStr42, kTestStr42, kTestStr42Len );
-
- iniResult &=AStringToUStringNCopy( aUStr43, kTestStr43, kTestStr43Len );
-
- iniResult &=AStringToUStringNCopy( aUStr44, kTestStr44, kTestStr44Len );
-
- iniResult &=AStringToUStringNCopy( aUStr45, kTestStr45, kTestStr45Len );
-
- iniResult &=AStringToUStringNCopy( aUStr46, kTestStr46, kTestStr46Len );
-
- iniResult &=AStringToUStringNCopy( aUStr47, kTestStr47, kTestStr47Len );
-
- iniResult &=AStringToUStringNCopy( aUStr48, kTestStr48, kTestStr48Len );
-
- iniResult &=AStringToUStringNCopy( aUStr49, kTestStr49, kTestStr49Len );
-
- iniResult &=AStringToUStringNCopy( aUStr50, kTestStr50, kTestStr50Len );
-
- iniResult &=AStringToUStringNCopy( aUStr51, kTestStr51, kTestStr51Len );
-
- //iniResult &=AStringToUStringNCopy( aUStr52, kTestStr52, kTestStr52Len );
-
- // iniResult &=AStringToUStringNCopy( aUStr53, kTestStr53, kTestStr53Len );
-
- //iniResult &=AStringToUStringNCopy( aUStr54, kTestStr54, kTestStr54Len );
-
- //iniResult &=AStringToUStringNCopy( aUStr55, kTestStr55, kTestStr55Len );
-
- iniResult &=AStringToUStringNCopy( aUStr56, kTestStr56, kTestStr56Len );
-
- // iniResult &=AStringToUStringNCopy( aUStr57, kTestStr57, kTestStr57Len );
-
- //iniResult &=AStringToUStringNCopy( aUStr58, kTestStr58, kTestStr58Len );
- return iniResult;
-
-}
-
-
-
-
-static const sal_Int32 uTestStr1Len = 16;
-static const sal_Int32 uTestStr2Len = 32;
-static const sal_Int32 uTestStr3Len = 16;
-static const sal_Int32 uTestStr4Len = 16;
-static const sal_Int32 uTestStr5Len = 16;
-static const sal_Int32 uTestStr9Len = 32;
-static const sal_Int32 uTestStr22Len = 32;
-
-const sal_Unicode uTestStr31[]= {0x400,0x410,0x4DF};
-const sal_Unicode uTestStr32[]= {0x9F9F,0xA000,0x8F80,0x9AD9};
-
-static const sal_Int32 uTestStr31Len = 3;
-static const sal_Int32 uTestStr32Len = 4;
-
-static const sal_Int16 kRadixBinary = 2;
-static const sal_Int16 kRadixOctol = 8;
-static const sal_Int16 kRadixDecimal = 10;
-static const sal_Int16 kRadixHexdecimal = 16;
-static const sal_Int16 kRadixBase36 = 36;
-
-static const sal_Int8 kSInt8Max = SCHAR_MAX;
-static const sal_Int16 kUInt8Max = UCHAR_MAX;
-static const sal_Int16 kSInt16Max = SHRT_MAX;
-static const sal_Int32 kUInt16Max = USHRT_MAX;
-static const sal_Int32 kSInt32Max = INT_MAX;
-static const sal_Int64 kUInt32Max = UINT_MAX;
-#if (defined UNX)
-static const sal_Int64 kSInt64Max = 9223372036854775807LL;
-#else
-static const sal_Int64 kSInt64Max = 9223372036854775807;
-#endif
-//------------------------------------------------------------------------
-
-static const sal_Int32 kInt32MaxNumsCount = 5;
-
-static const sal_Int32 kInt32MaxNums[kInt32MaxNumsCount] =
- {
- kSInt8Max, kUInt8Max,
- kSInt16Max, kUInt16Max,
- kSInt32Max
- };
-
-static const sal_Int32 kInt64MaxNumsCount = 7;
-
-static const sal_Int64 kInt64MaxNums[kInt64MaxNumsCount] =
- {
- kSInt8Max, kUInt8Max,
- kSInt16Max, kUInt16Max,
- kSInt32Max, kUInt32Max,
- kSInt64Max
- };
-
-static const sal_Char *kSInt8MaxBinaryStr = "1111111";
-static const sal_Char *kUInt8MaxBinaryStr = "11111111";
-static const sal_Char *kSInt16MaxBinaryStr = "111111111111111";
-static const sal_Char *kUInt16MaxBinaryStr = "1111111111111111";
-static const sal_Char *kSInt32MaxBinaryStr =
- "1111111111111111111111111111111";
-static const sal_Char *kUInt32MaxBinaryStr =
- "11111111111111111111111111111111";
-static const sal_Char *kSInt64MaxBinaryStr =
- "111111111111111111111111111111111111111111111111111111111111111";
-
-//------------------------------------------------------------------------
-
-static const sal_Char *kSInt8MaxOctolStr = "177";
-static const sal_Char *kUInt8MaxOctolStr = "377";
-static const sal_Char *kSInt16MaxOctolStr = "77777";
-static const sal_Char *kUInt16MaxOctolStr = "177777";
-static const sal_Char *kSInt32MaxOctolStr = "17777777777";
-static const sal_Char *kUInt32MaxOctolStr = "37777777777";
-static const sal_Char *kSInt64MaxOctolStr = "777777777777777777777";
-
-//------------------------------------------------------------------------
-
-static const sal_Char *kSInt8MaxDecimalStr = "127";
-static const sal_Char *kUInt8MaxDecimalStr = "255";
-static const sal_Char *kSInt16MaxDecimalStr = "32767";
-static const sal_Char *kUInt16MaxDecimalStr = "65535";
-static const sal_Char *kSInt32MaxDecimalStr = "2147483647";
-static const sal_Char *kUInt32MaxDecimalStr = "4294967295";
-static const sal_Char *kSInt64MaxDecimalStr = "9223372036854775807";
-
-//------------------------------------------------------------------------
-
-static const sal_Char *kSInt8MaxHexDecimalStr = "7f";
-static const sal_Char *kUInt8MaxHexDecimalStr = "ff";
-static const sal_Char *kSInt16MaxHexDecimalStr = "7fff";
-static const sal_Char *kUInt16MaxHexDecimalStr = "ffff";
-static const sal_Char *kSInt32MaxHexDecimalStr = "7fffffff";
-static const sal_Char *kUInt32MaxHexDecimalStr = "ffffffff";
-static const sal_Char *kSInt64MaxHexDecimalStr = "7fffffffffffffff";
-
-//------------------------------------------------------------------------
-
-static const sal_Char *kSInt8MaxBase36Str = "3j";
-static const sal_Char *kUInt8MaxBase36Str = "73";
-static const sal_Char *kSInt16MaxBase36Str = "pa7";
-static const sal_Char *kUInt16MaxBase36Str = "1ekf";
-static const sal_Char *kSInt32MaxBase36Str = "zik0zj";
-static const sal_Char *kUInt32MaxBase36Str = "1z141z3";
-static const sal_Char *kSInt64MaxBase36Str = "1y2p0ij32e8e7";
-
-static const sal_Int32 kBinaryNumsCount = 16;
-
-static const sal_Char *kBinaryNumsStr[kBinaryNumsCount] =
- {
- "0", "1", "10", "11",
- "100", "101", "110", "111",
- "1000", "1001", "1010", "1011",
- "1100", "1101", "1110", "1111"
- };
-
-static const sal_Int32 kBinaryMaxNumsCount = 7;
-
-static const sal_Char *kBinaryMaxNumsStr[kBinaryMaxNumsCount] =
- {
- kSInt8MaxBinaryStr,
- kUInt8MaxBinaryStr,
- kSInt16MaxBinaryStr,
- kUInt16MaxBinaryStr,
- kSInt32MaxBinaryStr,
- kUInt32MaxBinaryStr,
- kSInt64MaxBinaryStr
- };
-
-//------------------------------------------------------------------------
-
-static const sal_Int32 kOctolNumsCount = 16;
-
-static const sal_Char *kOctolNumsStr[kOctolNumsCount] =
- {
- "0", "1", "2", "3",
- "4", "5", "6", "7",
- "10", "11", "12", "13",
- "14", "15", "16", "17"
- };
-
-static const sal_Int32 kOctolMaxNumsCount = 7;
-
-static const sal_Char *kOctolMaxNumsStr[kOctolMaxNumsCount] =
- {
- kSInt8MaxOctolStr,
- kUInt8MaxOctolStr,
- kSInt16MaxOctolStr,
- kUInt16MaxOctolStr,
- kSInt32MaxOctolStr,
- kUInt32MaxOctolStr,
- kSInt64MaxOctolStr
- };
-
-//------------------------------------------------------------------------
-
-static const sal_Int32 kDecimalNumsCount = 16;
-
-static const sal_Char *kDecimalNumsStr[kDecimalNumsCount] =
- {
- "0", "1", "2", "3",
- "4", "5", "6", "7",
- "8", "9", "10", "11",
- "12", "13", "14", "15"
- };
-
-static const sal_Int32 kDecimalMaxNumsCount = 7;
-
-static const sal_Char *kDecimalMaxNumsStr[kDecimalMaxNumsCount] =
- {
- kSInt8MaxDecimalStr,
- kUInt8MaxDecimalStr,
- kSInt16MaxDecimalStr,
- kUInt16MaxDecimalStr,
- kSInt32MaxDecimalStr,
- kUInt32MaxDecimalStr,
- kSInt64MaxDecimalStr
- };
-
-//------------------------------------------------------------------------
-
-static const sal_Int32 kHexDecimalNumsCount = 16;
-
-static const sal_Char *kHexDecimalNumsStr[kHexDecimalNumsCount] =
- {
- "0", "1", "2", "3",
- "4", "5", "6", "7",
- "8", "9", "a", "b",
- "c", "d", "e", "f"
- };
-
-static const sal_Int32 kHexDecimalMaxNumsCount = 7;
-
-static const sal_Char *kHexDecimalMaxNumsStr[kHexDecimalMaxNumsCount] =
- {
- kSInt8MaxHexDecimalStr,
- kUInt8MaxHexDecimalStr,
- kSInt16MaxHexDecimalStr,
- kUInt16MaxHexDecimalStr,
- kSInt32MaxHexDecimalStr,
- kUInt32MaxHexDecimalStr,
- kSInt64MaxHexDecimalStr
- };
-
-//------------------------------------------------------------------------
-
-static const sal_Int32 kBase36NumsCount = 36;
-
-static const sal_Char *kBase36NumsStr[kBase36NumsCount] =
- {
- "0", "1", "2", "3",
- "4", "5", "6", "7",
- "8", "9", "a", "b",
- "c", "d", "e", "f",
- "g", "h", "i", "j",
- "k", "l", "m", "n",
- "o", "p", "q", "r",
- "s", "t", "u", "v",
- "w", "x", "y", "z"
- };
-
-static const sal_Int32 kBase36MaxNumsCount = 7;
-
-static const sal_Char *kBase36MaxNumsStr[kBase36MaxNumsCount] =
- {
- kSInt8MaxBase36Str,
- kUInt8MaxBase36Str,
- kSInt16MaxBase36Str,
- kUInt16MaxBase36Str,
- kSInt32MaxBase36Str,
- kUInt32MaxBase36Str,
- kSInt64MaxBase36Str
- };
-
-static const sal_Int32 nDoubleCount=24;
-// static const sal_Char *inputDouble[nDoubleCount] =
-// {
-// "3","3.1","3.1415","3.1415926535","3.141592653589793",
-// "3.1415926535897932","3.14159265358979323","+3.1",
-// "3.141592653589793238462643","9.1096e-31","2.997925e8","6.241e18","5.381e+18",
-// "1.7e-309","6.5822e-16","1.7e+307","2.2e30","03.1"," 3.1","-3.1",
-// "-0.0","0.0","","1.00e308"
-// };
-static const double expValDouble[nDoubleCount]=
- {
- 3.0,3.1,3.1415,3.1415926535,3.141592653589793,
- 3.1415926535897932,3.14159265358979323,3.1,
- 3.141592653589793238462643,9.1096e-31,2.997925e8,6.241e18,5.381e18,
- 1.7e-309,6.5822e-16,1.7e+307,2.2e30,3.1,3.1,-3.1,
- 0.0,0.0,0.0,1.00e+308
- };
-//------------------------------------------------------------------------
-static const sal_Int32 nFloatCount=22;
-// static const sal_Char *inputFloat[nFloatCount] =
-// {
-// "3",
-// "3.1",
-// "3.1415",
-// "3.14159",
-// "3.141592",
-// "3.1415926",
-// "3.14159265",
-// "3.141592653589793238462643",
-// "6.5822e-16",
-// "9.1096e-31",
-// "2.997925e8",
-// "6.241e18",
-// "1.00e38",
-// "6.241e-37",
-// "6.241e37",
-// "03.1",
-// " 3.1",
-// "-3.1",
-// "+3.1",
-// "-0.0",
-// "0.0",
-// ""
-// };
-static const float expValFloat[nFloatCount] =
- {
- 3.0f,
- 3.1f,
- 3.1415f,
- 3.14159f,
- 3.141592f,
- 3.1415926f,
- 3.14159265f,
- 3.141592653589793238462643f,
- 6.5822e-16f,
- 9.1096e-31f,
- 2.997925e8f,
- 6.241e18f,
- 1.00e38f,
- 6.241e-37f,
- 6.241e37f,
- 3.1f,
- 3.1f,
- -3.1f,
- 3.1f,
- 0.0f,
- 0.0f,
- 0.0f
- };
-static const float fPrecision[nFloatCount] =
- {
- 3e-7f,
- 3e-7f,
- 3e-7f,
- 3e-7f,
- 3e-7f,
- 3e-7f,
- 3e-7f,
- 3e-7f,
- 6e-16f * 1e-7f,
- 9e-31f * 1e-7f,
- 3e8f * 1e-7f,
- 6e18f * 1e-7f,
- 1e38f * 1e-7f,
- 6e-37f * 1e-7f,
- 6e37f * 1e-7f,
- 3e-7f,
- 3e-7f,
- 3e-7f,
- 3e-7f,
- 1e-7f,
- 1e-7f,
- 1e-7f
- };
-//------------------------------------------------------------------------
-static const sal_Int32 nCharCount=15;
-static const sal_Char *inputChar[nCharCount] =
- {
- "A","a","0","-","_",
- "\25","\33","\35",
- "@","\n","\'","\"",
- "\0","","Sun Microsystems"
- };
-static const sal_Unicode expValChar[nCharCount] =
- {
- 65,97,48,45,95,
- 21,27,29,
- 64,10,39,34,
- 0,0,83
- };
-//------------------------------------------------------------------------
-static const sal_Int32 nDefaultCount=6;
-static const sal_Unicode input1Default[nDefaultCount] =
- {
- 77,115,85,119,32,0
- };
-static const sal_Int32 input2Default[nDefaultCount] =
- {
- 0,0,0,0,0,0
- };
-static const sal_Int32 expValDefault[nDefaultCount] =
- {
- 4,9,-1,-1,3,-1
- };
-//------------------------------------------------------------------------
-static const sal_Int32 nNormalCount=10;
-static const sal_Unicode input1Normal[nNormalCount] =
- {
- 77,77,77,115,115,115,119,119,0,0
- };
-static const sal_Int32 input2Normal[nNormalCount] =
- {
- 0,32,80,0,13,20,0,80,0,32
- };
-static const sal_Int32 expValNormal[nNormalCount] =
- {
- 4,-1,-1,9,15,-1,-1,-1,-1,-1
- };
-//------------------------------------------------------------------------
-static const sal_Int32 nlastDefaultCount=5;
-static const sal_Unicode input1lastDefault[nlastDefaultCount] =
- {
- 77,115,119,32,0
- };
-static const sal_Int32 input2lastDefault[nlastDefaultCount] =
- {
- 31,31,31,31,31
- };
-static const sal_Int32 expVallastDefault[nlastDefaultCount] =
- {
- 4,15,-1,21,-1
- };
-//------------------------------------------------------------------------
-static const sal_Int32 nlastNormalCount=8;
-static const sal_Unicode input1lastNormal[nlastNormalCount] =
- {
- 77,77,77,115,115,119,119,0
- };
-static const sal_Int32 input2lastNormal[nlastNormalCount] =
- {
- 29,0,80,31,3,31,80,31
- };
-static const sal_Int32 expVallastNormal[nlastNormalCount] =
- {
- 4,-1,4,15,-1,-1,-1,-1
- };
-//------------------------------------------------------------------------
-static const sal_Int32 nStrDefaultCount=6;
-static const sal_Unicode *input1StrDefault[nStrDefaultCount] =
- {
- aUStr7,aUStr8,aUStr21,
- aUStr30,aUStr25,aUStr26
- };
-static const sal_Int32 input2StrDefault[nStrDefaultCount] =
- {
- 0,0,0,0,0,0
- };
-static const sal_Int32 expValStrDefault[nStrDefaultCount] =
- {
- 0,4,-1,-1,-1,3
- };
-//------------------------------------------------------------------------
-static const sal_Int32 nStrNormalCount=9;
-static const sal_Unicode *input1StrNormal[nStrNormalCount] =
- {
- aUStr7,aUStr7,aUStr8,aUStr8,aUStr21,aUStr30,aUStr25,aUStr25,aUStr26
- };
-static const sal_Int32 input2StrNormal[nStrNormalCount] =
- {
- 0,32,0,30,0,0,0,32,0
- };
-static const sal_Int32 expValStrNormal[nStrNormalCount] =
- {
- 0,-1,4,-1,-1,-1,-1,-1,3
- };
-//------------------------------------------------------------------------
-static const sal_Int32 nStrLastDefaultCount=6;
-static const sal_Unicode *input1StrLastDefault[nStrLastDefaultCount] =
- {
- aUStr7,aUStr8,aUStr21,aUStr30,aUStr25,aUStr26
- };
-static const sal_Int32 input2StrLastDefault[nStrLastDefaultCount] =
- {
- 31,31,31,31,31,31
- };
-static const sal_Int32 expValStrLastDefault[nStrLastDefaultCount] =
- {
- 0,4,-1,-1,-1,3
- };
-//------------------------------------------------------------------------
-static const sal_Int32 nStrLastNormalCount=12;
-static const sal_Unicode *input1StrLastNormal[nStrLastNormalCount] =
- {
- aUStr7,aUStr7,aUStr7,aUStr8,aUStr8,aUStr21,aUStr30,
- aUStr25,aUStr25,aUStr26,aUStr27,aUStr27
- };
-static const sal_Int32 input2StrLastNormal[nStrLastNormalCount] =
- {
- 31,0,80,31,2,31,31,31,0,31,31,14
- };
-static const sal_Int32 expValStrLastNormal[nStrLastNormalCount] =
- {
- 0,-1,0,4,-1,-1,-1,-1,-1,3,15,11
- };
-//------------------------------------------------------------------------
-static const sal_Int32 kNonSInt32Max = INT_MIN;
-static const sal_Int32 kNonSInt16Max = SHRT_MIN;
-//------------------------------------------------------------------------
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RTL_STRING_CONST_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl_strings/rtl_String_Utils.cxx b/sal/qa/rtl_strings/rtl_String_Utils.cxx
deleted file mode 100644
index 62302441a..000000000
--- a/sal/qa/rtl_strings/rtl_String_Utils.cxx
+++ /dev/null
@@ -1,188 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
-#
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
-#*************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <math.h>
-#include <stdlib.h>
-
-#ifndef _SAL_TYPES_H_
- #include <sal/types.h>
-#endif
-
-#ifndef _RTL_USTRING_H_
- #include <rtl/ustring.h>
-#endif
-
-#ifndef _RTL_STRING_HXX_
- #include <rtl/string.hxx>
-#endif
-
-#ifndef _RTL_STRING_UTILS_CONST_H_
- #include <rtl_String_Utils_Const.h>
-#endif
-
-using ::rtl::OString;
-sal_uInt32 AStringLen( const sal_Char *pAStr )
-{
- sal_uInt32 nStrLen = 0;
-
- if ( pAStr != NULL )
- {
- const sal_Char *pTempStr = pAStr;
-
- while( *pTempStr )
- {
- pTempStr++;
- } // while
-
- nStrLen = (sal_uInt32)( pTempStr - pAStr );
- } // if
-
- return nStrLen;
-} // AStringLen
-sal_Char* cpystr( sal_Char* dst, const sal_Char* src )
-{
- const sal_Char* psrc = src;
- sal_Char* pdst = dst;
-
- while( *pdst++ = *psrc++ );
- return ( dst );
-}
-
-sal_Char* cpynstr( sal_Char* dst, const sal_Char* src, sal_uInt32 cnt )
-{
-
- const sal_Char* psrc = src;
- sal_Char* pdst = dst;
- sal_uInt32 len = cnt;
- sal_uInt32 i;
-
- if ( len >= AStringLen(src) )
- {
- return( cpystr( dst, src ) );
- }
-
- // copy string by char
- for( i = 0; i < len; i++ )
- *pdst++ = *psrc++;
- *pdst = '\0';
-
- return ( dst );
-}
-
-//------------------------------------------------------------------------
-sal_Bool cmpstr( const sal_Char* str1, const sal_Char* str2, sal_uInt32 len )
-{
- const sal_Char* pBuf1 = str1;
- const sal_Char* pBuf2 = str2;
- sal_uInt32 i = 0;
-
- while ( (*pBuf1 == *pBuf2) && i < len )
- {
- (pBuf1)++;
- (pBuf2)++;
- i++;
- }
- return( i == len );
-}
-//------------------------------------------------------------------------
-sal_Bool cmpustr( const sal_Unicode* str1, const sal_Unicode* str2, sal_uInt32 len )
-{
- const sal_Unicode* pBuf1 = str1;
- const sal_Unicode* pBuf2 = str2;
- sal_uInt32 i = 0;
-
- while ( (*pBuf1 == *pBuf2) && i < len )
- {
- (pBuf1)++;
- (pBuf2)++;
- i++;
- }
- return( i == len );
-}
-
-//-----------------------------------------------------------------------
-sal_Bool cmpustr( const sal_Unicode* str1, const sal_Unicode* str2 )
-{
- const sal_Unicode* pBuf1 = str1;
- const sal_Unicode* pBuf2 = str2;
- sal_Bool res = sal_True;
-
- while ( (*pBuf1 == *pBuf2) && *pBuf1 !='\0' && *pBuf2 != '\0')
- {
- (pBuf1)++;
- (pBuf2)++;
- }
- if (*pBuf1 == '\0' && *pBuf2 == '\0')
- res = sal_True;
- else
- res = sal_False;
- return (res);
-}
-
-sal_Char* createName( sal_Char* dst, const sal_Char* meth, sal_uInt32 cnt )
-{
- sal_Char* pdst = dst;
- sal_Char nstr[16];
- sal_Char* pstr = nstr;
- rtl_str_valueOfInt32( pstr, cnt, 10 );
-
- cpystr( pdst, meth );
- cpystr( pdst+ AStringLen(meth), "_" );
-
- if ( cnt < 100 )
- {
- cpystr(pdst + AStringLen(pdst), "0" );
- }
- if ( cnt < 10 )
- {
- cpystr(pdst + AStringLen(pdst), "0" );
- }
-
- cpystr( pdst + AStringLen(pdst), nstr );
- return( pdst );
-}
-
-//------------------------------------------------------------------------
-
-static inline sal_Int32 ACharToUCharCompare( const sal_Unicode *pUStr,
- const sal_Char *pAStr
- )
-{
- sal_Int32 nCmp = 0;
- sal_Int32 nUChar = (sal_Int32)*pUStr;
- sal_Int32 nChar = (sal_Int32)((unsigned char)*pAStr);
-
- nCmp = nUChar - nChar;
-
- return nCmp;
-} // ACharToUCharCompare
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl_strings/rtl_String_Utils.hxx b/sal/qa/rtl_strings/rtl_String_Utils.hxx
deleted file mode 100644
index fc0e29be0..000000000
--- a/sal/qa/rtl_strings/rtl_String_Utils.hxx
+++ /dev/null
@@ -1,82 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
-#
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
-#*************************************************************************/
-
-#ifndef _RTL_STRING_UTILS_HXX_
-#define _RTL_STRING_UTILS_HXX_
-
-#ifdef __cplusplus
-
-#include <math.h>
-#include <stdlib.h>
-
-#ifndef _SAL_TYPES_H_
- #include <sal/types.h>
-#endif
-
-#ifndef _RTL_USTRING_H_
- #include <rtl/ustring.h>
-#endif
-
-#ifndef _RTL_STRING_HXX_
- #include <rtl/string.hxx>
-#endif
-
-sal_Char* cpystr( sal_Char* dst, const sal_Char* src );
-sal_Char* cpynstr( sal_Char* dst, const sal_Char* src, sal_uInt32 cnt );
-
-sal_Bool cmpstr( const sal_Char* str1, const sal_Char* str2, sal_uInt32 len );
-sal_Bool cmpustr( const sal_Unicode* str1, const sal_Unicode* str2, sal_uInt32 len );
-sal_Bool cmpustr( const sal_Unicode* str1, const sal_Unicode* str2 );
-
-sal_Char* createName( sal_Char* dst, const sal_Char* src, sal_uInt32 cnt );
-
-
-sal_uInt32 AStringLen( const sal_Char *pAStr );
-
-//------------------------------------------------------------------------
-
-sal_Bool AStringNIsValid( const sal_Char *pAStr,
- const sal_uInt32 nStrLen
- );
-
-//------------------------------------------------------------------------
-
-sal_Int32 AStringToUStringCompare( const sal_Unicode *pUStr,
- const sal_Char *pAStr
- );
-
-sal_Int32 AStringToUStringNCompare( const sal_Unicode *pUStr,
- const sal_Char *pAStr,
- const sal_uInt32 nAStrCount
- );
-
-#endif /* __cplusplus */
-
-#endif /* _RTL_STRING_UTILS_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl_strings/rtl_String_Utils_Const.h b/sal/qa/rtl_strings/rtl_String_Utils_Const.h
deleted file mode 100644
index f6488ad9e..000000000
--- a/sal/qa/rtl_strings/rtl_String_Utils_Const.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_STRING_UTILS_CONST_H_
-#define _RTL_STRING_UTILS_CONST_H_
-
-#ifndef _SAL_TYPES_H_
- #include <sal/types.h>
-#endif
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-static const sal_Int32 kErrCompareAStringToUString = -2;
-static const sal_Int32 kErrCompareNAStringToUString = -3;
-static const sal_Int32 kErrCompareAStringToRTLUString = -4;
-static const sal_Int32 kErrCompareNAStringToRTLUString = -5;
-static const sal_Int32 kErrAStringToByteStringCompare = -6;
-static const sal_Int32 kErrAStringToByteStringNCompare = -7;
-static const sal_Int32 kErrCompareAStringToString = -8;
-static const sal_Int32 kErrCompareNAStringToString = -9;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RTL_STRING_UTILS_CONST_H_ */
-
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl_strings/rtl_old_testostring.cxx b/sal/qa/rtl_strings/rtl_old_testostring.cxx
deleted file mode 100644
index c08a86229..000000000
--- a/sal/qa/rtl_strings/rtl_old_testostring.cxx
+++ /dev/null
@@ -1,246 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-// LLA:
-// this file is converted to use with testshl2
-// original was placed in sal/test/textenc.cxx
-
-#include <string.h>
-#include <stdio.h>
-
-#include <rtl/string.hxx>
-
-#include <testshl/simpleheader.hxx>
-
-#define TEST_ENSURE(c, m) CPPUNIT_ASSERT_MESSAGE((m), (c))
-using ::rtl::OString;
-namespace rtl_OString
-{
- class oldtests : public CppUnit::TestFixture
- {
- public:
- void test_OString();
-
- CPPUNIT_TEST_SUITE( oldtests );
- CPPUNIT_TEST( test_OString );
- CPPUNIT_TEST_SUITE_END( );
- };
-
-
-#ifdef WNT
-#pragma warning( disable : 4723 )
-#endif
-
-void oldtests::test_OString()
-{
- TEST_ENSURE( sal_True, "_USENAMEPSACE defined");
-
- // "Mein erster RTL OString\n"
- // | | | | |
- // Index 0 5 10 15 20
- OString s1("Mein erster RTL OString\n");
- TEST_ENSURE( s1 == "Mein erster RTL OString\n", "test_OString error 1");
- TEST_ENSURE( s1.getLength() == 24, "test_OString error 2");
-
- OString s2 = s1;
- TEST_ENSURE( s2[16] == 'O', "test_OString error 3");
- TEST_ENSURE( s2.equals(s1), "test_OString error 4");
- TEST_ENSURE( s2.indexOf('O') == 16, "test_OString error 5");
- TEST_ENSURE( s2.indexOf('O', 5) == 16, "test_OString error 5a");
- TEST_ENSURE( s2.lastIndexOf('r') == 19, "test_OString error 6");
- TEST_ENSURE( s2[19] == 'r', "test_OString error 7");
- TEST_ENSURE( s2[23] == '\n', "test_OString error 8");
- TEST_ENSURE( s2.lastIndexOf('\n') == 23, "test_OString error 9");
- TEST_ENSURE( s2.lastIndexOf('M') == 0, "test_OString error 10");
- TEST_ENSURE( s2.lastIndexOf('t', s2.getLength() - 8) == 8, "test_OString error 9");
-
-
- // "Mein erster RTL OString ist ein String aus der RTL Library\n"
- // | | | | | | | | | | | |
- // Index 0 5 10 15 20 25 30 35 40 45 50 55
- OString s3 = s2.copy(0, s2.getLength() - 1);
- OString s4 = s3.concat(" ist ein String aus der RTL Library\n");
- TEST_ENSURE( s4.getLength() == 59, "test_OString error 11");
-
- s1 = s4.copy(0, 38);
- OString s5;
- s5 = s1 + " aus der RTL Library\n";
- TEST_ENSURE( s5.compareTo(s4) == 0 , "test_OString error 12");
- TEST_ENSURE( s5.indexOf("RTL") == 12, "test_OString error 13");
- TEST_ENSURE( s5.lastIndexOf("RTL") == 47, "test_OString error 13");
-
- sal_Bool b = sal_False;
- OString s6 = s5.valueOf(b);
- TEST_ENSURE( s6.compareTo("false") == 0, "test_OString error 14");
- s6 = s5.valueOf('H');
- TEST_ENSURE( s6.compareTo("H") == 0, "test_OString error 15");
- sal_Int32 n = 123456789L;
- s6 = s5.valueOf(n);
- TEST_ENSURE( s6.compareTo("123456789") == 0, "test_OString error 16");
-
-#ifdef SAL_UNX
- sal_Int64 m = -3223372036854775807LL;
-#else
- sal_Int64 m = -3223372036854775807;
-#endif
- s6 = s5.valueOf(m);
- TEST_ENSURE( s6.compareTo("-3223372036854775807") == 0, "test_OString error 17");
-
- OString s7("HaLLo");
- s7 = s7.toAsciiLowerCase();
- TEST_ENSURE( s7 == "hallo", "test_OString error 19");
- s7 = s7.toAsciiUpperCase();
- TEST_ENSURE( s7 == "HALLO", "test_OString error 20");
-
- OString s8("HaLLo ICH BIn eIn StRiNg");
- s7 = s8.toAsciiLowerCase();
-
- TEST_ENSURE( s8.equalsIgnoreAsciiCase(s7), "test_OString error 21");
-
- s8 = s7.toAsciiUpperCase();
- TEST_ENSURE( s8 == "HALLO ICH BIN EIN STRING", "test_OString error 22");
-
- s7 = " ";
- s8 = s7 + s8 + " ";
- TEST_ENSURE( s8 == " HALLO ICH BIN EIN STRING ",
- "test_OString error 23");
-
- s7 = s8.trim();
- TEST_ENSURE( s7 == "HALLO ICH BIN EIN STRING", "test_OString error 24");
- TEST_ENSURE( strcmp(s7.getStr(), "HALLO ICH BIN EIN STRING") == 0,
- "test_OString error 25");
-
- s7 = "Hallo";
- s8 = "aber Hallo";
-
- TEST_ENSURE( s7 < s8, "test_OString error 26");
- TEST_ENSURE( s8 > s7, "test_OString error 27");
- TEST_ENSURE( s7 != s8, "test_OString error 28");
- TEST_ENSURE( s7 != "blabla", "test_OString error 29");
- TEST_ENSURE( "blabla" != s7, "test_OString error 30");
-
- s8 = "Hallo";
- TEST_ENSURE( s7 <= s8, "test_OString error 31");
- TEST_ENSURE( s7 >= s8, "test_OString error 32");
-
- s8 = s8.replace('l', 'r');
- TEST_ENSURE( s8 == "Harro", "test_OString error 33");
-
- sal_Int32 nIndex = 0;
- s8 = "|hallo1|hallo2|hallo3|hallo4|hallo5|hallo6|hallo7|hallo8|";
- TEST_ENSURE( s8.getToken(3,'|', nIndex) == "hallo3", "test_OString error 40");
-
- char* Tokens[10] = { "", "hallo1", "hallo2", "hallo3", "hallo4",
- "hallo5", "hallo6", "hallo7", "hallo8", "" };
-
- nIndex = 0;
- sal_Int32 i = 0;
- do
- {
- TEST_ENSURE( s8.getToken(0,'|',nIndex) == Tokens[i], "test_OString error 40e");
- i++;
- }
- while ( nIndex >= 0 );
-
- s7 = "";
- s7 += s8;
- TEST_ENSURE( s7 == s8, "test_OString error 41");
-
- s7 = s8.replaceAt(8, 6, "mmmmmmmmmm");
- TEST_ENSURE( s7.getLength() == 61, "test_OString error 42");
-
- s8 = s7.replaceAt(8, 11, "");
- TEST_ENSURE( s8.getLength() == 50, "test_OString error 43");
-
- s7 = s8.replaceAt(8, 0, "hallo2|");
- TEST_ENSURE( s7.getLength() == 57, "test_OString error 44");
-
- sal_Int32 pos = 0;
- while ((pos = s7.indexOf("|")) >= 0)
- {
- s8 = s7.replaceAt(pos, 1, "**");
- s7 = s8;
- }
- TEST_ENSURE( s7.getLength() == 66, "test_OString error 45");
-
- TEST_ENSURE( OString( "aaa" ).compareTo( OString( "bbb" ) ) < 0, "test_OString error 46" );
- TEST_ENSURE( OString( "aaa" ).compareTo( OString( "aaa" ) ) == 0, "test_OString error 47" );
- TEST_ENSURE( OString( "bbb" ).compareTo( OString( "aaa" ) ) > 0, "test_OString error 48" );
- TEST_ENSURE( OString( "aaaa" ).compareTo( OString( "bbb" ) ) < 0, "test_OString error 49" );
- TEST_ENSURE( OString( "aaa" ).compareTo( OString( "bbbb" ) ) < 0, "test_OString error 50" );
- TEST_ENSURE( OString( "aaa" ).compareTo( OString( "aaaa" ) ) < 0, "test_OString error 51" );
- TEST_ENSURE( OString( "aaaa" ).compareTo( OString( "aaa" ) ) > 0, "test_OString error 52" );
- TEST_ENSURE( OString( "bbbb" ).compareTo( OString( "bbb" ) ) > 0, "test_OString error 53" );
- TEST_ENSURE( OString( "bbb" ) == OString( "bbb" ), "test_OString error 54" );
- TEST_ENSURE( OString( "bbb" ) == "bbb", "test_OString error 55" );
-
-/*
- * As clarified in #104229#, calling copy with invalid arguments causes
- * undefined behaviour, so the following test does no longer work:
-
- s7 = "Hallo jetzt komm ich";
- s8 = s7.copy(0, s7.indexOf(':'));
- TEST_ENSURE( s8.getLength() == 0, "test_OString error 56");
- TEST_ENSURE( s8.compareTo("") == 0, "test_OString error 57");
-*/
-
- double f = OString("1.7e-10").toDouble();
- TEST_ENSURE(f > 1E-10 && f < 2E-10, "1.7e-10 problem");
- f = OString("1.7e+10").toDouble();
- TEST_ENSURE(f > 1E10 && f < 2E10, "1.7e+10 problem");
- f = OString("1.7e10").toDouble();
- TEST_ENSURE(f > 1E10 && f < 2E10, "1.7e308 problem");
-
- {
- float f0 = 0;
- float f1 = 1;
- float fInf = f1 / f0;
- OString aStr1(OString::valueOf(fInf));
- OString aStr2("1.#INF");
- bool bSuccess = aStr1 == aStr2;
- if (!bSuccess)
- printf("ERROR: OString::valueOf(1f/0f): %s\n", aStr1.getStr());
- TEST_ENSURE(bSuccess, "OString::valueOf(1f/0f)");
- }
-
- printf("test_OString OK !!!\n");
- return;
-}
-
-} // namespace rtl_OString
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( rtl_OString::oldtests, "rtl_OString" );
-
-// -----------------------------------------------------------------------------
-NOADDITIONAL;
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl_strings/rtl_old_testowstring.cxx b/sal/qa/rtl_strings/rtl_old_testowstring.cxx
deleted file mode 100644
index 58065e793..000000000
--- a/sal/qa/rtl_strings/rtl_old_testowstring.cxx
+++ /dev/null
@@ -1,401 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-// LLA:
-// this file is converted to use with testshl2
-// original was placed in sal/test/textenc.cxx
-
-#include <string.h>
-#include <stdio.h>
-
-#ifdef UNX
-#include <wchar.h>
-#endif
-
-#include <rtl/ustring.hxx>
-
-#include <rtl/string.hxx>
-
-#include <rtl/locale.hxx>
-
-#include <testshl/simpleheader.hxx>
-
-#define TEST_ENSURE(c, m) CPPUNIT_ASSERT_MESSAGE((m), (c))
-
-using ::rtl::OUString;
-using ::rtl::OUStringToOString;
-using ::rtl::OStringToOUString;
-
-namespace rtl_OUString
-{
- class oldtests : public CppUnit::TestFixture
- {
- public:
- void test_OUString();
- void test_OString2OUStringAndViceVersa();
-
- CPPUNIT_TEST_SUITE( oldtests );
- CPPUNIT_TEST( test_OUString );
- CPPUNIT_TEST( test_OString2OUStringAndViceVersa );
- CPPUNIT_TEST_SUITE_END( );
- };
-
-
-void oldtests::test_OUString()
-{
- // "Mein erster RTL OUString\n"
- // | | | | |
- // Index 0 5 10 15 20
- OUString s1(OUString(RTL_CONSTASCII_USTRINGPARAM("Mein erster RTL OUString\n")));
- TEST_ENSURE( s1 == OUString(RTL_CONSTASCII_USTRINGPARAM("Mein erster RTL OUString\n")), "test_OWString error 1");
- TEST_ENSURE( s1.getLength() == 25, "test_OWString error 2");
-
- OUString s2 = s1;
- TEST_ENSURE( s2[16] == (sal_Unicode)'O', "test_OWString error 3");
- TEST_ENSURE( s2.equals(s1), "test_OWString error 4");
- TEST_ENSURE( OUString( OUString(RTL_CONSTASCII_USTRINGPARAM("hallo"))) == OUString(RTL_CONSTASCII_USTRINGPARAM("hallo")), "test_OWString error 4");
- TEST_ENSURE( s2.indexOf((sal_Unicode)'O') == 16, "test_OWString error 5");
- TEST_ENSURE( s2.indexOf((sal_Unicode)'O', 5) == 16, "test_OWString error 5a");
- TEST_ENSURE( s2.lastIndexOf((sal_Unicode)'r') == 20, "test_OWString error 6");
- TEST_ENSURE( s2[20] == (sal_Unicode)'r', "test_OWString error 7");
- TEST_ENSURE( s2[24] == (sal_Unicode)'\n', "test_OWString error 8");
- TEST_ENSURE( s2.lastIndexOf((sal_Unicode)'\n') == 24, "test_OWString error 9");
- TEST_ENSURE( s2.lastIndexOf((sal_Unicode)'M') == 0, "test_OWString error 10");
- TEST_ENSURE( s2.lastIndexOf((sal_Unicode)'t', s2.getLength() - 8) == 8, "test_OWString error 9");
-
-
- // "Mein erster RTL OUString ist ein String aus der RTL Library\n"
- // | | | | | | | | | | | |
- // Index 0 5 10 15 20 25 30 35 40 45 50 55
- OUString s3 = s2.copy(0, s2.getLength() - 1);
- OUString s4 = s3.concat( OUString(RTL_CONSTASCII_USTRINGPARAM(" ist ein String aus der RTL Library\n")) );
- TEST_ENSURE( s4.getLength() == 60, "test_OWString error 11");
-
- s1 = s4.copy(0, 39);
- OUString s5;
- s5 = s1 + OUString(RTL_CONSTASCII_USTRINGPARAM(" aus der RTL Library\n"));
- TEST_ENSURE( s5.compareTo(s4) == 0 , "test_OWString error 12");
- TEST_ENSURE( s5.indexOf(OUString(RTL_CONSTASCII_USTRINGPARAM("RTL"))) == 12, "test_OWString error 13");
- TEST_ENSURE( s5.lastIndexOf(OUString(RTL_CONSTASCII_USTRINGPARAM("RTL"))) == 48, "test_OWString error 13");
-
- sal_Bool b = sal_False;
- OUString s6 = s5.valueOf(b);
-// TEST_ENSURE( s6.compareTo(OUString(RTL_CONSTASCII_USTRINGPARAM("False"))) == 0, "test_OWString error 14");
- s6 = s5.valueOf((sal_Unicode)'H');
- TEST_ENSURE( s6.compareTo(OUString(RTL_CONSTASCII_USTRINGPARAM("H"))) == 0, "test_OWString error 15");
- sal_Int32 n = 123456789L;
- s6 = s5.valueOf(n);
- TEST_ENSURE( s6.compareTo(OUString(RTL_CONSTASCII_USTRINGPARAM("123456789"))) == 0, "test_OWString error 16");
-
-#ifdef SAL_UNX
- sal_Int64 m = -3223372036854775807LL;
-#else
- sal_Int64 m = -3223372036854775807;
-#endif
- s6 = s5.valueOf(m);
- TEST_ENSURE( s6.compareTo( OUString(RTL_CONSTASCII_USTRINGPARAM("-3223372036854775807")) ) == 0, "test_OWString error 17");
-
-// LLA: locale tests removed ::rtl::OLocale locale = ::rtl::OLocale::getDefault();
-// LLA: locale tests removed
-// LLA: locale tests removed OUString s61(OUString(RTL_CONSTASCII_USTRINGPARAM("HaLLo")));
-// LLA: locale tests removed s61 = s61.toLowerCase(locale);
-// LLA: locale tests removed TEST_ENSURE( s61 == OUString(RTL_CONSTASCII_USTRINGPARAM("hallo")), "test_OWString error 17a");
-// LLA: locale tests removed s61 = s61.toUpperCase();
-// LLA: locale tests removed TEST_ENSURE( s61 == OUString(RTL_CONSTASCII_USTRINGPARAM("HALLO")), "test_OWString error 17b");
-// LLA: locale tests removed s61 = s61.toLowerCase();
-// LLA: locale tests removed TEST_ENSURE( s61 == OUString(RTL_CONSTASCII_USTRINGPARAM("hallo")), "test_OWString error 17c");
-// LLA: locale tests removed
-// LLA: locale tests removed ::rtl::OLocale::setDefault( OUString(RTL_CONSTASCII_USTRINGPARAM("de")), OUString(RTL_CONSTASCII_USTRINGPARAM("DE")), OUString() );
-// LLA: locale tests removed locale = OLocale::getDefault();
-// LLA: locale tests removed
-// LLA: locale tests removed // AB, 24.3.2000, removed NAMESPACE_RTL(OLocale)::getENGLISH() and error 18
-// LLA: locale tests removed
-// LLA: locale tests removed OUString s7(OUString(RTL_CONSTASCII_USTRINGPARAM("HaLLo")));
-// LLA: locale tests removed s7 = s7.toLowerCase(locale);
-// LLA: locale tests removed TEST_ENSURE( s7 == OUString(RTL_CONSTASCII_USTRINGPARAM("hallo")), "test_OWString error 19");
-// LLA: locale tests removed s7 = s7.toUpperCase(locale);
-// LLA: locale tests removed TEST_ENSURE( s7 == OUString(RTL_CONSTASCII_USTRINGPARAM("HALLO")), "test_OWString error 20");
-// LLA: locale tests removed
-// LLA: locale tests removed OUString s8(OUString(RTL_CONSTASCII_USTRINGPARAM("HaLLo ICH BIn eIn ")));
-// LLA: locale tests removed s8 += OUString::valueOf( (sal_Unicode)0xDF );
-// LLA: locale tests removed locale = OLocale::registerLocale( OUString(RTL_CONSTASCII_USTRINGPARAM("tr")), OUString(RTL_CONSTASCII_USTRINGPARAM("TR")), OUString());
-// LLA: locale tests removed s8 = s8.toLowerCase(locale);
-// LLA: locale tests removed s8 = s8.toUpperCase(locale);
-// LLA: locale tests removed TEST_ENSURE( s8 == OUString(RTL_CONSTASCII_USTRINGPARAM("HALLO ICH BIN EIN SS")), "test_OWString error 21");
-// LLA: locale tests removed
-// LLA: locale tests removed s7 = OUString(RTL_CONSTASCII_USTRINGPARAM("Hallo ich bIn ein I"));
-// LLA: locale tests removed s7 = s8.toUpperCase(locale);
-// LLA: locale tests removed TEST_ENSURE( s7 != OUString(RTL_CONSTASCII_USTRINGPARAM("HALLO ICH BIN EIN I")), "test_OWString error 21.b");
-
- OUString s7;
- OUString s8(OUString(RTL_CONSTASCII_USTRINGPARAM("HALLO ICH BIN EIN SS")));
- s7 = OUString(RTL_CONSTASCII_USTRINGPARAM(" "));
- s8 = s7 + s8 + OUString(RTL_CONSTASCII_USTRINGPARAM(" "));
- TEST_ENSURE( s8 == OUString(RTL_CONSTASCII_USTRINGPARAM(" HALLO ICH BIN EIN SS ")),
- "test_OWString error 22");
-
- s7 = s8.trim();
- TEST_ENSURE( s7 == OUString(RTL_CONSTASCII_USTRINGPARAM("HALLO ICH BIN EIN SS")), "test_OWString error 23");
-// TEST_ENSURE( wcscmp(s7.getStr(), L"HALLO ICH BIN EIN SS") == 0, "test_OWString error 24");
-
- s7 = OUString(RTL_CONSTASCII_USTRINGPARAM("Hallo"));
- s8 = OUString(RTL_CONSTASCII_USTRINGPARAM("aber Hallo"));
-
- TEST_ENSURE( s7 < s8, "test_OWString error 25");
- TEST_ENSURE( s8 > s7, "test_OWString error 26");
- TEST_ENSURE( s7 != s8, "test_OWString error 27");
- TEST_ENSURE( s7 != OUString(RTL_CONSTASCII_USTRINGPARAM("blabla")), "test_OWString error 28");
- TEST_ENSURE( OUString(RTL_CONSTASCII_USTRINGPARAM("blabla")) != s7, "test_OWString error 29");
-
- s8 = OUString(RTL_CONSTASCII_USTRINGPARAM("Hallo"));
- TEST_ENSURE( s7 <= s8, "test_OWString error 30");
- TEST_ENSURE( s7 >= s8, "test_OwString error 31");
-
- s8 = s8.replace((sal_Unicode)'l', (sal_Unicode)'r');
- TEST_ENSURE( s8 == OUString(RTL_CONSTASCII_USTRINGPARAM("Harro")), "test_OWString error 32");
-// LLA: len() unknown TEST_ENSURE( s8.len() == 5, "test_OWString error 33");
-
- // "Ich bin ein String mit einem A und C und vielen m, m, m, m"
- // | | | | | | | | | | | |
- //index 0 5 10 15 20 25 30 35 40 45 50 55
- s8 = OUString(RTL_CONSTASCII_USTRINGPARAM("Ich bin ein String mit einem A und C und vielen m, m, m, m"));
-// LLA: no matching TEST_ENSURE( s8.search((sal_Unicode)'I') == 0, "test_OWString error 34");
-// LLA: no matching TEST_ENSURE( s8.search((sal_Unicode)'A') == 29, "test_OWString error 35");
-// LLA: no matching s7 = OUString(RTL_CONSTASCII_USTRINGPARAM("A und C"));
-// LLA: no matching TEST_ENSURE( s8.search(s7) == 29, "test_OWString error 36");
-// LLA: no matching TEST_ENSURE( s8.search(OUString(RTL_CONSTASCII_USTRINGPARAM("mit einem A"))) == 19, "test_OWString error 37");
-// LLA: no matching
-// LLA: no matching s8 = OUString(RTL_CONSTASCII_USTRINGPARAM("||token1|token2|token3||token4|token5||"));
-// LLA: no matching TEST_ENSURE( s8.getTokenCount('|') == 10, "test_OWString error 38a");
-// LLA: no matching TEST_ENSURE( s8.getToken(10,'|') == OUString(), "test_OWString error 39a");
-// LLA: no matching
-// LLA: no matching s8 = OUString(RTL_CONSTASCII_USTRINGPARAM("token1"));
-// LLA: no matching TEST_ENSURE( s8.getTokenCount('|') == 1, "test_OWString error 38b");
-// LLA: no matching TEST_ENSURE( s8.getToken(0,'|') == OUString(RTL_CONSTASCII_USTRINGPARAM("token1")), "test_OWString error 39b");
-// LLA: no matching TEST_ENSURE( s8.getToken(-1,'|') == OUString(), "test_OWString error 39c");
-// LLA: no matching TEST_ENSURE( s8.getToken(1,'|') == OUString(), "test_OWString error 39d");
-// LLA: no matching
-// LLA: no matching s8 = OUString(RTL_CONSTASCII_USTRINGPARAM("|hallo1|hallo2|hallo3|hallo4|hallo5|hallo6|hallo7|hallo8|"));
-// LLA: no matching TEST_ENSURE( s8.getTokenCount((sal_Unicode)'|') == 10, "test_OWString error 38");
-// LLA: no matching TEST_ENSURE( s8.getToken(3, (sal_Unicode)'|') == OUString(RTL_CONSTASCII_USTRINGPARAM("hallo3")), "test_OWString error 39");
-
-// LLA: removed due to the fact, this is not a clean test!
-
-// LLA: s7 = OUString();
-// LLA: s7 += s8;
-// LLA: TEST_ENSURE( s7 == s8, "test_OWString error 40");
-// LLA:
-// LLA: s7 = s8.replaceAt(8, 6, OUString(RTL_CONSTASCII_USTRINGPARAM("mmmmmmmmmm")));
-// LLA: TEST_ENSURE( s7.getLength() == 61, "test_OWString error 41");
-// LLA:
-// LLA: s8 = s7.replaceAt(8, 11, OUString());
-// LLA: TEST_ENSURE( s8.getLength() == 50, "test_OWString error 42");
-// LLA:
-// LLA: s7 = s8.replaceAt(8, 0, OUString(RTL_CONSTASCII_USTRINGPARAM("hallo2|")));
-// LLA: TEST_ENSURE( s7.getLength() == 57, "test_OWString error 43");
-// LLA:
-// LLA: sal_Int32 pos = 0;
-// LLA: while ((pos = s7.indexOf(OUString(RTL_CONSTASCII_USTRINGPARAM("|")))) >= 0)
-// LLA: {
-// LLA: s8 = s7.replaceAt(pos, 1, OUString(RTL_CONSTASCII_USTRINGPARAM("**")));
-// LLA: s7 = s8;
-// LLA: }
-// LLA: TEST_ENSURE( s7.getLength() == 66, "test_OWString error 44");
-
- TEST_ENSURE( OUString(RTL_CONSTASCII_USTRINGPARAM("aaa")).compareTo( OUString(RTL_CONSTASCII_USTRINGPARAM("bbb")) ) < 0, "test_OWString error 46" );
- TEST_ENSURE( OUString(RTL_CONSTASCII_USTRINGPARAM("aaa")).compareTo( OUString(RTL_CONSTASCII_USTRINGPARAM("aaa")) ) == 0, "test_OWString error 46" );
- TEST_ENSURE( OUString(RTL_CONSTASCII_USTRINGPARAM("bbb")).compareTo( OUString(RTL_CONSTASCII_USTRINGPARAM("aaa")) ) > 0, "test_OWString error 47" );
- TEST_ENSURE( OUString(RTL_CONSTASCII_USTRINGPARAM("aaaa")).compareTo( OUString(RTL_CONSTASCII_USTRINGPARAM("bbb")) ) < 0, "test_OWString error 48" );
- TEST_ENSURE( OUString(RTL_CONSTASCII_USTRINGPARAM("aaa")).compareTo( OUString(RTL_CONSTASCII_USTRINGPARAM("bbbb")) ) < 0, "test_OWString error 49" );
- TEST_ENSURE( OUString(RTL_CONSTASCII_USTRINGPARAM("aaa")).compareTo( OUString(RTL_CONSTASCII_USTRINGPARAM("aaaa")) ) < 0, "test_OWString error 50" );
- TEST_ENSURE( OUString(RTL_CONSTASCII_USTRINGPARAM("aaaa")).compareTo( OUString(RTL_CONSTASCII_USTRINGPARAM("aaa")) ) > 0, "test_OWString error 51" );
- TEST_ENSURE( OUString(RTL_CONSTASCII_USTRINGPARAM("bbbb")).compareTo( OUString(RTL_CONSTASCII_USTRINGPARAM("bbb")) ) > 0, "test_OWString error 52" );
- TEST_ENSURE( OUString(RTL_CONSTASCII_USTRINGPARAM("bbb")) == OUString(RTL_CONSTASCII_USTRINGPARAM("bbb")), "test_OWString error 53" );
- TEST_ENSURE( OUString(RTL_CONSTASCII_USTRINGPARAM("bbb")) == OUString(RTL_CONSTASCII_USTRINGPARAM("bbb")), "test_OWString error 54" );
-
- {
- OUString uStr = OUString(RTL_CONSTASCII_USTRINGPARAM("Hallo"));
- TEST_ENSURE( uStr.compareTo( OUString(RTL_CONSTASCII_USTRINGPARAM("Hallo")), 5 ) == 0, "test_OWString error 54.2.1" );
- TEST_ENSURE( uStr.compareTo( OUString(RTL_CONSTASCII_USTRINGPARAM("Halloa")), 6 ) < 0 , "test_OWString error 54.2.2" );
- TEST_ENSURE( uStr.compareTo( OUString(RTL_CONSTASCII_USTRINGPARAM("1Hallo")), 6 ) > 0, "test_OWString error 54.2.3" );
- TEST_ENSURE( uStr.compareTo( OUString(RTL_CONSTASCII_USTRINGPARAM("Aallo")), 5 ) > 0, "test_OWString error 54.2.4" );
- TEST_ENSURE( uStr.compareTo( OUString(RTL_CONSTASCII_USTRINGPARAM("Halla")), 5 ) > 0, "test_OWString error 54.2.5" );
- TEST_ENSURE( uStr.compareTo( OUString(RTL_CONSTASCII_USTRINGPARAM("Mallo")), 5 ) < 0, "test_OWString error 54.2.6" );
- TEST_ENSURE( uStr.compareTo( OUString(RTL_CONSTASCII_USTRINGPARAM("Hallp")), 5 ) < 0, "test_OWString error 54.2.7" );
- }
-
-#if OSL_DEBUG_LEVEL == 0
-//YD will fail copy assert on indexes, because ':' returns -1
- s7 = OUString(RTL_CONSTASCII_USTRINGPARAM("Hallo jetzt komm ich"));
- s8 = s7.copy(0, s7.indexOf((sal_Unicode)':'));
- TEST_ENSURE( s8.getLength() == 0, "test_OWString error 55");
- TEST_ENSURE( s8.compareTo(OUString()) == 0, "test_OWString error 56");
-#endif
-
- // ASCII-Schnittstellen, AB 15.10.1999
-
- // "Ich bin ein reiner ASCII-String mit ein paar Zahlen 0123456789 und Zeichen"
- // | | | | | | | | | | | | | | |
- //index 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70
- //
- // "Ich bin ein weiterer ASCII-String"
- // | | | | | | |
- //index 0 5 10 15 20 25 30
- sal_Char ascii_str1[] = "Ich bin ein reiner ASCII-String mit ein paar Zahlen 0123456789 und Zeichen";
- sal_Char ascii_str2[] = "Ich bin ein weiterer ASCII-String";
- OUString OWAsciiStr1 = OUString::createFromAscii( ascii_str1 );
- sal_Int32 nLen1 = OWAsciiStr1.getLength();
- TEST_ENSURE( nLen1 == 74, "test_OWString error 57" );
- OUString OWAsciiStr2 = OUString::createFromAscii( ascii_str2 );
- sal_Int32 nLen2 = OWAsciiStr2.getLength();
- TEST_ENSURE( nLen2 == 33, "test_OWString error 58" );
-
- sal_Int32 nCompareResult11 = OWAsciiStr1.compareToAscii( ascii_str1 );
- TEST_ENSURE( nCompareResult11 == 0, "test_OWString error 59" );
- sal_Int32 nCompareResult12 = OWAsciiStr1.compareToAscii( ascii_str2 );
- TEST_ENSURE( nCompareResult12 < 0, "test_OWString error 60" );
-
- sal_Int32 nCompareResult21 = OWAsciiStr2.compareToAscii( ascii_str1 );
- TEST_ENSURE( nCompareResult21 > 0, "test_OWString error 61" );
- sal_Int32 nCompareResult22 = OWAsciiStr2.compareToAscii( ascii_str2 );
- TEST_ENSURE( nCompareResult22 == 0, "test_OWString error 62" );
-
- sal_Int32 nCompareResult12_Len12 = OWAsciiStr1.compareToAscii( ascii_str2, 12 );
- TEST_ENSURE( nCompareResult12_Len12 == 0, "test_OWString error 63" );
- sal_Int32 nCompareResult12_Len13 = OWAsciiStr1.compareToAscii( ascii_str2, 13 );
- TEST_ENSURE( nCompareResult12_Len13 < 0, "test_OWString error 64" );
-
- sal_Int32 nCompareResult21_Len12 = OWAsciiStr2.compareToAscii( ascii_str1, 12 );
- TEST_ENSURE( nCompareResult21_Len12 == 0, "test_OWString error 65" );
- sal_Int32 nCompareResult21_Len13 = OWAsciiStr2.compareToAscii( ascii_str1, 13 );
- TEST_ENSURE( nCompareResult21_Len13 > 0, "test_OWString error 66" );
-
- {
- OUString uStr = OUString(RTL_CONSTASCII_USTRINGPARAM("Hallo"));
- TEST_ENSURE( uStr.equalsAsciiL( "Hallo", 5 ), "test_OWString error 66.1.1" );
- TEST_ENSURE( !uStr.equalsAsciiL( "Hallo1", 6 ), "test_OWString error 66.1.2" );
- TEST_ENSURE( !uStr.equalsAsciiL( "1Hallo", 6 ), "test_OWString error 66.1.3" );
- TEST_ENSURE( !uStr.equalsAsciiL( "aallo", 5 ), "test_OWString error 66.1.2" );
- TEST_ENSURE( !uStr.equalsAsciiL( "Halla", 5 ), "test_OWString error 66.1.3" );
-
- TEST_ENSURE( uStr.reverseCompareToAsciiL( "Hallo", 5 ) == 0, "test_OWString error 66.2.1" );
- TEST_ENSURE( uStr.reverseCompareToAsciiL( "Halloa", 6 ) > 0 , "test_OWString error 66.2.2" );
- TEST_ENSURE( uStr.reverseCompareToAsciiL( "1Hallo", 6 ) < 0, "test_OWString error 66.2.3" );
- TEST_ENSURE( uStr.reverseCompareToAsciiL( "Aallo", 5 ) > 0, "test_OWString error 66.2.4" );
- TEST_ENSURE( uStr.reverseCompareToAsciiL( "Halla", 5 ) > 0, "test_OWString error 66.2.5" );
- TEST_ENSURE( uStr.reverseCompareToAsciiL( "Mallo", 5 ) < 0, "test_OWString error 66.2.6" );
- TEST_ENSURE( uStr.reverseCompareToAsciiL( "Hallp", 5 ) < 0, "test_OWString error 66.2.7" );
- }
-
- // toInt64
- OUString s9( OUString(RTL_CONSTASCII_USTRINGPARAM(" -3223372036854775807")) );
- sal_Int64 ln1 = s9.toInt64();
-#if (defined UNX)
- TEST_ENSURE( ln1 == -3223372036854775807LL, "test_OWString error 67" );
-#else
- TEST_ENSURE( ln1 == -3223372036854775807, "test_OWString error 67" );
-#endif
- OUString s10( OUString(RTL_CONSTASCII_USTRINGPARAM("13243A65f1H45")) );
- sal_Int64 ln2 = s10.toInt64();
- TEST_ENSURE( ln2 == 13243, "test_OWString error 68" );
-
- sal_Int64 ln3 = s10.toInt64( 16 );
-#if (defined UNX)
- TEST_ENSURE( ln3 == 0x13243A65F1LL, "test_OWString error 69" );
-#else
- TEST_ENSURE( ln3 == 0x13243A65F1, "test_OWString error 69" );
-#endif
- // Exotic base
- OUString s11( OUString(RTL_CONSTASCII_USTRINGPARAM("H4A")) );
- sal_Int64 ln4 = s11.toInt64( 23 );
- TEST_ENSURE( ln4 == 23*23*17 + 4 * 23 + 10, "test_OWString error 70" );
-
- // toInt32
- OUString s12( OUString(RTL_CONSTASCII_USTRINGPARAM(" -220368507")) );
- sal_Int32 n1 = s12.toInt32();
- TEST_ENSURE( n1 == -220368507, "test_OWString error 71" );
-
- OUString s13( OUString(RTL_CONSTASCII_USTRINGPARAM("4423A61H45")) );
- sal_Int64 n2 = s13.toInt32();
- TEST_ENSURE( n2 == 4423, "test_OWString error 72" );
-
- sal_Int64 n3 = s13.toInt64( 16 );
- TEST_ENSURE( n3 == 0x4423A61, "test_OWString error 73" );
-
-// LLA: Value tests fails most the time, this is not a good test
-// LLA: double d = 1.23456781;
-// LLA: OUString sDouble = OUString::valueOf( d );
-// LLA: char str[] = "1.2345678099999999";
-// LLA: sal_Int32 nLength = sDouble.getLength();
-// LLA: TEST_ENSURE( nLength == strlen( str ), "test_OWString error 74" );
-// LLA: sal_Int32 nCompare = sDouble.compareToAscii( str );
-// LLA: TEST_ENSURE( nCompare == 0, "test_OWString error 75" );
-
- printf("test_OWString OK !!!\n");
- return;
-}
-
-// -----------------------------------------------------------------------------
-
-void oldtests::test_OString2OUStringAndViceVersa()
-{
- OString s1("Hallo jetzt komm ich");
- OUString u1 = OStringToOUString(s1, RTL_TEXTENCODING_MS_1252);
- TEST_ENSURE( u1.equals(OUString(RTL_CONSTASCII_USTRINGPARAM("Hallo jetzt komm ich"))), "test_OString2OWStringAndViceVersa error 1" );
- u1 = OStringToOUString(s1, RTL_TEXTENCODING_IBM_850);
- TEST_ENSURE( u1.equals(OUString(RTL_CONSTASCII_USTRINGPARAM("Hallo jetzt komm ich"))), "test_OString2OWStringAndViceVersa error 2" );
- u1 = OStringToOUString(s1, RTL_TEXTENCODING_ISO_8859_15);
- TEST_ENSURE( u1.equals(OUString(RTL_CONSTASCII_USTRINGPARAM("Hallo jetzt komm ich"))), "test_OString2OWStringAndViceVersa error 3" );
- u1 = OStringToOUString(s1, RTL_TEXTENCODING_ASCII_US);
- TEST_ENSURE( u1.equals(OUString(RTL_CONSTASCII_USTRINGPARAM("Hallo jetzt komm ich"))), "test_OString2OWStringAndViceVersa error 4" );
-
- OString s2 = OUStringToOString(u1, RTL_TEXTENCODING_MS_1252);
- TEST_ENSURE( s2.equals("Hallo jetzt komm ich"), "test_OString2OWStringAndViceVersa error 5" );
- s2 = OUStringToOString(u1, RTL_TEXTENCODING_IBM_850);
- TEST_ENSURE( s2.equals("Hallo jetzt komm ich"), "test_OString2OWStringAndViceVersa error 6" );
- s2 = OUStringToOString(u1, RTL_TEXTENCODING_ISO_8859_15);
- TEST_ENSURE( s2.equals("Hallo jetzt komm ich"), "test_OString2OWStringAndViceVersa error 7" );
- s2 = OUStringToOString(u1, RTL_TEXTENCODING_ASCII_US);
- TEST_ENSURE( s2.equals("Hallo jetzt komm ich"), "test_OString2OWStringAndViceVersa error 8" );
-
- printf("test_OString2OWStringAndViceVersa OK !!!\n");
-}
-
-} // namespace rtl_OUString
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( rtl_OUString::oldtests, "rtl_OUString" );
-
-// -----------------------------------------------------------------------------
-NOADDITIONAL;
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/rtl_strings/rtl_old_teststrbuf.cxx b/sal/qa/rtl_strings/rtl_old_teststrbuf.cxx
deleted file mode 100644
index 0c5fba5a8..000000000
--- a/sal/qa/rtl_strings/rtl_old_teststrbuf.cxx
+++ /dev/null
@@ -1,243 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-// LLA:
-// this file is converted to use with testshl2
-// original was placed in sal/test/textenc.cxx
-
-#include <string.h>
-#include <stdio.h>
-
-#include <rtl/strbuf.hxx>
-
-#include <rtl/ustrbuf.hxx>
-
-#include <testshl/simpleheader.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OString;
-using ::rtl::OUStringBuffer;
-using ::rtl::OStringBuffer;
-#define TEST_ENSURE(c, m) CPPUNIT_ASSERT_MESSAGE((m), (c))
-
-
-namespace rtl_OStringBuffer
-{
- class oldtests : public CppUnit::TestFixture
- {
- public:
- void test_OStringBuffer();
-
- CPPUNIT_TEST_SUITE( oldtests );
- CPPUNIT_TEST( test_OStringBuffer );
- CPPUNIT_TEST_SUITE_END( );
- };
-
-
-void oldtests::test_OStringBuffer()
-{
- // "Mein erster RTL OString\n"
- // | | | | |
- // Index 0 5 10 15 20
- OString s1("Mein erster RTL OString\n");
-
- OStringBuffer b1(s1);
-
- TEST_ENSURE( b1.getCapacity() == 16 + s1.getLength(), "test_OStringBuffer error 1");
-
- b1.insert(b1.getLength() - 1, "Buffer");
- s1 = "Mein erster RTL OStringBuffer\n";
- TEST_ENSURE( s1 == b1.getStr(), "test_OStringBuffer error 2");
-
- b1.insert(b1.getLength() - 1, " ist viel zu gross fuer den alten Buffer");
- TEST_ENSURE( b1.getCapacity() == b1.getLength(), "test_OStringBuffer error 3");
-
- OStringBuffer b2(30);
-
- s1 = "false";
- sal_Bool b = sal_False;
- b2.append(b);
- TEST_ENSURE( s1 == b2.getStr(), "test_OStringBuffer error 4");
-
- sal_Int32 n = 123456789L;
- s1 += " 123456789";
- b2.append(" ");
- b2.append(n);
- TEST_ENSURE( s1 == b2.getStr(), "test_OStringBuffer error 5");
-
-#ifdef SAL_UNX
- sal_Int64 m = -3223372036854775807LL;
-#else
- sal_Int64 m = -3223372036854775807;
-#endif
- s1 += " -3223372036854775807";
- b2.append(" ");
- b2.append(m);
- TEST_ENSURE( s1 == b2.getStr(), "test_OStringBuffer error 6");
-
- OString s2(b2.makeStringAndClear());
- TEST_ENSURE( s1 == s2, "test_OStringBuffer error 7");
-
- b2.ensureCapacity(50);
- TEST_ENSURE( b2.getCapacity() == 50, "test_OStringBuffer error 8");
-
- b2.append("Hier fuege ich jetzt ein > <\n");
- b2.insert(26, " Hallo");
- s2 = "Hier fuege ich jetzt ein > Hallo <\n";
- TEST_ENSURE( s2 == b2.getStr(), "test_OStringBuffer error 9");
-
- b2.insert(26, b);
- b2.insert(26, " ");
- s2 = "Hier fuege ich jetzt ein > false Hallo <\n";
- TEST_ENSURE( s2 == b2.getStr(), "test_OStringBuffer error 10");
-
- b2.insert(26, n);
- b2.insert(26, " ");
- s2 = "Hier fuege ich jetzt ein > 123456789 false Hallo <\n";
- TEST_ENSURE( s2 == b2.getStr(), "test_OStringBuffer error 11");
-
- b2.insert(26, m);
- b2.insert(26, " ");
- s2 = "Hier fuege ich jetzt ein > -3223372036854775807 123456789 false Hallo <\n";
- TEST_ENSURE( s2 == b2.getStr(), "test_OStringBuffer error 12");
-
- printf("test_OStringBuffer OK !!!\n");
- return;
-}
-} // namespace rtl_OStringBuffer
-
-// -----------------------------------------------------------------------------
-
-namespace rtl_OUStringBuffer
-{
- class oldtests : public CppUnit::TestFixture
- {
- public:
- void test_OUStringBuffer();
-
- CPPUNIT_TEST_SUITE( oldtests );
- CPPUNIT_TEST( test_OUStringBuffer );
- CPPUNIT_TEST_SUITE_END( );
- };
-
-
-void oldtests::test_OUStringBuffer()
-{
- // "Mein erster RTL OUString\n"
- // | | | | |
- // Index 0 5 10 15 20
- OUString s1(OUString(RTL_CONSTASCII_USTRINGPARAM("Mein erster RTL OUString\n")));
-
- OUStringBuffer b1(s1);
-
- TEST_ENSURE( b1.getCapacity() == 16 + s1.getLength(), "test_OWStringBuffer error 1");
-
- b1.insert(b1.getLength() - 1, OUString(RTL_CONSTASCII_USTRINGPARAM("Buffer")));
- s1 = OUString(RTL_CONSTASCII_USTRINGPARAM("Mein erster RTL OUStringBuffer\n"));
- TEST_ENSURE( s1 == b1.getStr(), "test_OWStringBuffer error 2");
-
- b1.insert(b1.getLength() - 1, OUString(RTL_CONSTASCII_USTRINGPARAM(" ist viel zu gross fuer den alten Buffer")));
- //TEST_ENSURE( b1.getCapacity() == b1.getLength(), "test_OWStringBuffer error 3");
-
- OUStringBuffer b2(30);
-
- s1 = OUString(RTL_CONSTASCII_USTRINGPARAM("false"));
- sal_Bool b = sal_False;
- b2.append(b);
- TEST_ENSURE( s1 == b2.getStr(), "test_OWStringBuffer error 4");
-
- sal_Int32 n = 123456789L;
- s1 += OUString(RTL_CONSTASCII_USTRINGPARAM(" 123456789"));
- b2.append(OUString(RTL_CONSTASCII_USTRINGPARAM(" ")));
- b2.append(n);
- TEST_ENSURE( s1 == b2.getStr(), "test_OWStringBuffer error 5");
-
-#ifdef SAL_UNX
- sal_Int64 m = -3223372036854775807LL;
-#else
- sal_Int64 m = -3223372036854775807;
-#endif
- s1 += OUString(RTL_CONSTASCII_USTRINGPARAM(" -3223372036854775807"));
- b2.append(OUString(RTL_CONSTASCII_USTRINGPARAM(" ")));
- b2.append(m);
- TEST_ENSURE( s1 == b2.getStr(), "test_OWStringBuffer error 6");
-
- OUString s2(b2.makeStringAndClear());
- TEST_ENSURE( s1 == s2, "test_OWStringBuffer error 7");
-
- b2.ensureCapacity(50);
- TEST_ENSURE( b2.getCapacity() == 50, "test_OWStringBuffer error 8");
-
- b2.append(OUString(RTL_CONSTASCII_USTRINGPARAM("Hier fuege ich jetzt ein > <\n")));
- b2.insert(26, OUString(RTL_CONSTASCII_USTRINGPARAM(" Hallo")));
- s2 = OUString(RTL_CONSTASCII_USTRINGPARAM("Hier fuege ich jetzt ein > Hallo <\n"));
- TEST_ENSURE( s2 == b2.getStr(), "test_OWStringBuffer error 9");
-
- b2.insert(26, b);
- b2.insert(26, OUString(RTL_CONSTASCII_USTRINGPARAM(" ")));
- s2 = OUString(RTL_CONSTASCII_USTRINGPARAM("Hier fuege ich jetzt ein > false Hallo <\n"));
- TEST_ENSURE( s2 == b2.getStr(), "test_OWStringBuffer error 10");
-
- b2.insert(26, n);
- b2.insert(26, OUString(RTL_CONSTASCII_USTRINGPARAM(" ")));
- s2 = OUString(RTL_CONSTASCII_USTRINGPARAM("Hier fuege ich jetzt ein > 123456789 false Hallo <\n"));
- TEST_ENSURE( s2 == b2.getStr(), "test_OWStringBuffer error 11");
-
- b2.insert(26, m);
- b2.insert(26, OUString(RTL_CONSTASCII_USTRINGPARAM(" ")));
- s2 = OUString(RTL_CONSTASCII_USTRINGPARAM("Hier fuege ich jetzt ein > -3223372036854775807 123456789 false Hallo <\n"));
- TEST_ENSURE( s2 == b2.getStr(), "test_OWStringBuffer error 12");
-
- // ASCII-Schnittstelle, AB 15.10.1999
- OUString s3(OUString(RTL_CONSTASCII_USTRINGPARAM("Noch'n RTL OUString")));
- OUStringBuffer b3(s3);
- sal_Char aAsciiStr[] = " mit appendetem ASCII\n";
- b3.appendAscii( aAsciiStr );
- s3 = OUString(RTL_CONSTASCII_USTRINGPARAM("Noch'n RTL OUString mit appendetem ASCII\n"));
- TEST_ENSURE( b3.getStr() == s3 , "test_OWStringBuffer error 13");
-
-
-
- printf("test_OWStringBuffer OK !!!\n");
- return;
-}
-
-} // namespace rtl_OUStringBuffer
-
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( rtl_OUStringBuffer::oldtests, "rtl_OUStringBuffer" );
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( rtl_OStringBuffer::oldtests, "rtl_OStringBuffer" );
-
-// -----------------------------------------------------------------------------
-NOADDITIONAL;
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/sal/makefile.mk b/sal/qa/sal/makefile.mk
deleted file mode 100644
index 0677acc24..000000000
--- a/sal/qa/sal/makefile.mk
+++ /dev/null
@@ -1,50 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ := ..$/..
-PRJNAME := sal
-TARGET := qa_sal
-
-ENABLE_EXCEPTIONS := TRUE
-
-.INCLUDE: settings.mk
-
-.IF "$(OS)" == "IOS"
-CFLAGSCXX += -DCPPUNIT_PLUGIN_EXPORTED_NAME=cppunitTest_$(TARGET)
-.ENDIF
-
-SHL1TARGET = $(TARGET)_types
-SHL1OBJS = $(SLO)$/test_types.obj
-SHL1STDLIBS = $(SALLIB) $(CPPUNITLIB)
-SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
-SHL1IMPLIB = i$(SHL1TARGET)
-DEF1NAME = $(SHL1TARGET)
-
-SLOFILES = $(SHL1OBJS)
-
-.INCLUDE: target.mk
-.INCLUDE: $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/sal/test_types.cxx b/sal/qa/sal/test_types.cxx
deleted file mode 100644
index 03d30a11c..000000000
--- a/sal/qa/sal/test_types.cxx
+++ /dev/null
@@ -1,87 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "precompiled_sal.hxx"
-#include "sal/config.h"
-
-#include <cstddef>
-#include <stdio.h> // C99 snprintf not necessarily in <cstdio>
-#include <string.h> // wntmsci10 does not know <cstring> std::strcmp
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#include "sal/types.h"
-
-namespace {
-
-template< typename T > void testPrintf(
- char const * result, char const * format, T argument)
-{
- std::size_t const bufsize = 1000;
- char buf[bufsize];
- int n = snprintf(buf, bufsize, format, argument);
- CPPUNIT_ASSERT(n >= 0 && sal::static_int_cast< unsigned int >(n) < bufsize);
- CPPUNIT_ASSERT(strcmp(buf, result) == 0);
-}
-
-class Test: public CppUnit::TestFixture {
-public:
- void test();
-
- CPPUNIT_TEST_SUITE(Test);
- CPPUNIT_TEST(test);
- CPPUNIT_TEST_SUITE_END();
-};
-
-void Test::test() {
- testPrintf("-2147483648", "%" SAL_PRIdINT32, SAL_MIN_INT32);
- testPrintf("4294967295", "%" SAL_PRIuUINT32, SAL_MAX_UINT32);
- testPrintf("ffffffff", "%" SAL_PRIxUINT32, SAL_MAX_UINT32);
- testPrintf("FFFFFFFF", "%" SAL_PRIXUINT32, SAL_MAX_UINT32);
- testPrintf("-9223372036854775808", "%" SAL_PRIdINT64, SAL_MIN_INT64);
- testPrintf("18446744073709551615", "%" SAL_PRIuUINT64, SAL_MAX_UINT64);
- testPrintf("ffffffffffffffff", "%" SAL_PRIxUINT64, SAL_MAX_UINT64);
- testPrintf("FFFFFFFFFFFFFFFF", "%" SAL_PRIXUINT64, SAL_MAX_UINT64);
- testPrintf("123", "%" SAL_PRI_SIZET "u", static_cast< std::size_t >(123));
- testPrintf(
- "-123", "%" SAL_PRI_PTRDIFFT "d", static_cast< std::ptrdiff_t >(-123));
- testPrintf("-123", "%" SAL_PRIdINTPTR, static_cast< sal_IntPtr >(-123));
- testPrintf("123", "%" SAL_PRIuUINTPTR, static_cast< sal_uIntPtr >(123));
- testPrintf("abc", "%" SAL_PRIxUINTPTR, static_cast< sal_uIntPtr >(0xabc));
- testPrintf("ABC", "%" SAL_PRIXUINTPTR, static_cast< sal_uIntPtr >(0xabc));
-}
-
-CPPUNIT_TEST_SUITE_REGISTRATION(Test);
-
-}
-
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/static/makefile.mk b/sal/qa/static/makefile.mk
deleted file mode 100644
index 71c308544..000000000
--- a/sal/qa/static/makefile.mk
+++ /dev/null
@@ -1,68 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#***********************************************************************/
-
-PRJ = ../..
-PRJNAME = sal
-TARGET = sal_cppunittester_all
-
-ENABLE_EXCEPTIONS = TRUE
-LIBTARGET = NO
-
-.INCLUDE: settings.mk
-
-CFLAGSCXX += $(CPPUNIT_CFLAGS)
-
-.IF "$(OS)" != "IOS"
-
-ALL :
- @echo This is only for iOS
-
-.ENDIF
-
-CFLAGSCXX += -x objective-c++ -fobjc-abi-version=2 -fobjc-legacy-dispatch -D__IPHONE_OS_VERSION_MIN_REQUIRED=40300
-
-OBJFILES = $(APP1OBJS)
-
-APP1OBJS = $(OBJ)/sal_cppunittester_all.obj
-APP1RPATH = NONE
-APP1LIBS += \
- $(SLB)/qa_ByteSequence.lib \
- $(SLB)/qa_ostringbuffer.lib \
- $(SLB)/qa_osl_condition.lib \
- $(SLB)/qa_osl_file.lib \
- $(SLB)/qa_osl_security.lib \
- $(SLB)/qa_rtl_alloc.lib \
- $(SLB)/qa_rtl_cipher.lib \
- $(SLB)/qa_rtl_crc32.lib \
- $(SLB)/qa_rtl_doublelock.lib \
- $(SLB)/qa_rtl_locale.lib \
- $(SLB)/qa_sal.lib
-
-APP1STDLIBS = $(CPPUNITLIB) $(SALLIB)
-APP1TARGET = $(TARGET)
-
-.INCLUDE: target.mk
diff --git a/sal/qa/static/sal_cppunittester_all.cxx b/sal/qa/static/sal_cppunittester_all.cxx
deleted file mode 100644
index 4c3d942c1..000000000
--- a/sal/qa/static/sal_cppunittester_all.cxx
+++ /dev/null
@@ -1,161 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
-*
-* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-*
-* Copyright 2000, 2010 Oracle and/or its affiliates.
-*
-* OpenOffice.org - a multi-platform office productivity suite
-*
-* This file is part of OpenOffice.org.
-*
-* OpenOffice.org is free software: you can redistribute it and/or modify
-* it under the terms of the GNU Lesser General Public License version 3
-* only, as published by the Free Software Foundation.
-*
-* OpenOffice.org is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU Lesser General Public License version 3 for more details
-* (a copy is included in the LICENSE file that accompanied this code).
-*
-* You should have received a copy of the GNU Lesser General Public License
-* version 3 along with OpenOffice.org. If not, see
-* <http://www.openoffice.org/license.html>
-* for a copy of the LGPLv3 License.
-*
-************************************************************************/
-
-#include "precompiled_sal.hxx"
-#include "sal/config.h"
-
-#include <cstdlib>
-#include <iostream>
-#include <limits>
-#include <string>
-#include "cppunittester/protectorfactory.hxx"
-#include "osl/module.h"
-#include "osl/module.hxx"
-#include "osl/thread.h"
-#include "rtl/process.h"
-#include "rtl/string.h"
-#include "rtl/string.hxx"
-#include "rtl/textcvt.h"
-#include "rtl/ustring.hxx"
-#include "sal/main.h"
-#include "sal/types.h"
-
-#include "cppunit/CompilerOutputter.h"
-#include "cppunit/TestResult.h"
-#include "cppunit/TestResultCollector.h"
-#include "cppunit/TestRunner.h"
-#include "cppunit/plugin/TestPlugIn.h"
-#include "cppunit/plugin/PlugInParameters.h"
-#include "cppunit/extensions/TestFactoryRegistry.h"
-#include "cppunit/portability/Stream.h"
-
-#include "boost/noncopyable.hpp"
-
-namespace {
-
-void usageFailure() {
- std::cerr
- << ("Usage: cppunittester (--protector <shared-library-path>"
- " <function-symbol>)* <shared-library-path>")
- << std::endl;
- std::exit(EXIT_FAILURE);
-}
-
-rtl::OUString getArgument(sal_Int32 index) {
- rtl::OUString arg;
- rtl_getAppCommandArg(index, &arg.pData);
- return arg;
-}
-
-std::string convertLazy(rtl::OUString const & s16) {
- rtl::OString s8(rtl::OUStringToOString(s16, osl_getThreadTextEncoding()));
- return std::string(
- s8.getStr(),
- ((static_cast< sal_uInt32 >(s8.getLength())
- > (std::numeric_limits< std::string::size_type >::max)())
- ? (std::numeric_limits< std::string::size_type >::max)()
- : static_cast< std::string::size_type >(s8.getLength())));
-}
-
-//Allow the whole uniting testing framework to be run inside a "Protector"
-//which knows about uno exceptions, so it can print the content of the
-//exception before falling over and dying
-class CPPUNIT_API ProtectedFixtureFunctor : public CppUnit::Functor, private boost::noncopyable
-{
-private:
- const std::string &args;
- CppUnit::TestResult &result;
-public:
- ProtectedFixtureFunctor(const std::string &args_, CppUnit::TestResult &result_)
- : args(args_)
- , result(result_)
- {
- }
- bool run() const
- {
- CppUnit::TestRunner runner;
- runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
- CppUnit::TestResultCollector collector;
- result.addListener(&collector);
- runner.run(result);
- CppUnit::CompilerOutputter(&collector, CppUnit::stdCErr()).write();
- return collector.wasSuccessful();
- }
- virtual bool operator()() const
- {
- return run();
- }
-};
-}
-
-extern "C" CppUnitTestPlugIn *cppunitTest_qa_ByteSequence(void),
- *cppunitTest_qa_ostringbuffer(void),
- *cppunitTest_qa_osl_condition(void),
- *cppunitTest_qa_osl_File(void),
- *cppunitTest_tcwf(void),
- *cppunitTest_osl_old_test_file(void),
- *cppunitTest_qa_osl_security(void),
- *cppunitTest_qa_rtl_alloc(void),
- *cppunitTest_qa_rtl_cipher(void),
- *cppunitTest_qa_rtl_crc32(void),
- *cppunitTest_qa_rtl_doublelock(void),
- *cppunitTest_qa_rtl_locale(void),
- *cppunitTest_qa_sal(void);
-
-SAL_IMPLEMENT_MAIN() {
- TestPlugInSignature plugs[] = {
- cppunitTest_qa_ByteSequence,
- cppunitTest_qa_ostringbuffer,
- cppunitTest_qa_osl_condition,
- cppunitTest_qa_osl_File,
- cppunitTest_tcwf,
- cppunitTest_osl_old_test_file,
- cppunitTest_qa_osl_security,
- cppunitTest_qa_rtl_alloc,
- cppunitTest_qa_rtl_cipher,
- cppunitTest_qa_rtl_crc32,
- cppunitTest_qa_rtl_doublelock,
- cppunitTest_qa_rtl_locale,
- cppunitTest_qa_sal,
- NULL
- };
- CppUnit::TestResult result;
- std::string args;
- bool ok = false;
- for (TestPlugInSignature *plug = plugs; *plug != NULL; plug++) {
- CppUnitTestPlugIn *iface;
- iface = (*plug)();
- iface->initialize(&CppUnit::TestFactoryRegistry::getRegistry(), CppUnit::PlugInParameters());
- }
- ProtectedFixtureFunctor tests(args, result);
- ok = tests.run();
-
- return ok ? EXIT_SUCCESS : EXIT_FAILURE;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/systools/makefile.mk b/sal/qa/systools/makefile.mk
deleted file mode 100644
index 7b3798b74..000000000
--- a/sal/qa/systools/makefile.mk
+++ /dev/null
@@ -1,69 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-INCPRE+= $(PRJ)$/qa$/inc
-
-PRJNAME=sal
-TARGET=test_comtools
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-CFLAGS+=/Ob0
-
-# BEGIN ----------------------------------------------------------------
-# auto generated Target:joblist by codegen.pl
-SHL1OBJS= \
- $(SLO)$/test_comtools.obj
-
-SHL1TARGET= test_comtools
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB) uuid.lib
-
-SHL1IMPLIB= i$(SHL1TARGET)
-# SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-DEF1NAME =$(SHL1TARGET)
-# DEF1EXPORTFILE= export.exp
-SHL1VERSIONMAP= $(PRJ)$/qa$/export.map
-# auto generated Target:joblist
-# END ------------------------------------------------------------------
-
-#------------------------------- All object files -------------------------------
-# do this here, so we get right dependencies
-# SLOFILES=$(SHL1OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/systools/test_comtools.cxx b/sal/qa/systools/test_comtools.cxx
deleted file mode 100644
index e14debabd..000000000
--- a/sal/qa/systools/test_comtools.cxx
+++ /dev/null
@@ -1,252 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-// autogenerated file with codegen.pl
-
-#include <testshl/simpleheader.hxx>
-#include <systools/win32/comtools.hxx>
-
-class COMObject : public IUnknown
-{
-public:
- COMObject() : ref_count_(0)
- {
- }
-
- ~COMObject()
- {
- }
-
- ULONG __stdcall AddRef()
- {
- ref_count_++;
- return ref_count_;
- }
-
- ULONG __stdcall Release()
- {
- ULONG cnt = --ref_count_;
- if (cnt == 0)
- delete this;
- return cnt;
- }
-
- HRESULT __stdcall QueryInterface(REFIID riid, LPVOID* ppv)
- {
- if (riid == IID_IUnknown)
- {
- AddRef();
- *ppv = this;
- return S_OK;
- }
- return E_NOINTERFACE;
- }
-
- ULONG GetRefCount() const
- {
- return ref_count_;
- }
-
-private:
- ULONG ref_count_;
-};
-
-sal::systools::COMReference<IUnknown> comObjectSource()
-{
- return sal::systools::COMReference<IUnknown>(new COMObject);
-}
-
-bool comObjectSink(sal::systools::COMReference<IUnknown> r, ULONG expectedRefCountOnReturn)
-{
- r = sal::systools::COMReference<IUnknown>();
- COMObject* p = reinterpret_cast<COMObject*>(r.get());
- if (p)
- return (p->GetRefCount() == expectedRefCountOnReturn);
- else
- return (0 == expectedRefCountOnReturn);
-}
-
-void comObjectSource2(LPVOID* ppv)
-{
- COMObject* p = new COMObject;
- p->AddRef();
- *ppv = p;
-}
-
-namespace test_comtools
-{
-
- class test_COMReference : public CppUnit::TestFixture
- {
-
- public:
- /// test of COMReference<IUnknown> r;
- void default_ctor()
- {
- sal::systools::COMReference<IUnknown> r;
- CPPUNIT_ASSERT_MESSAGE("COMReference should be empty", r.get() == NULL);
- }
-
- void test_ctor_manual_AddRef()
- {
- COMObject* p = new COMObject;
- p->AddRef();
- sal::systools::COMReference<IUnknown> r(p, false);
- CPPUNIT_ASSERT_MESSAGE("Wrong reference count 1 is expected", reinterpret_cast<COMObject*>(r.get())->GetRefCount() == 1);
- }
-
- void test_copy_ctor()
- {
- sal::systools::COMReference<IUnknown> r(comObjectSource());
- CPPUNIT_ASSERT_MESSAGE("Wrong reference count 1 is expected", reinterpret_cast<COMObject*>(r.get())->GetRefCount() == 1);
- }
-
- void test_copy_assignment()
- {
- sal::systools::COMReference<IUnknown> r;
- CPPUNIT_ASSERT_MESSAGE("COMReference should be empty", r.get() == NULL);
-
- r = comObjectSource();
- CPPUNIT_ASSERT_MESSAGE("COMReference should be empty", r.get() != NULL);
- CPPUNIT_ASSERT_MESSAGE("Wrong reference count 1 is expected", reinterpret_cast<COMObject*>(r.get())->GetRefCount() == 1);
- }
-
- void test_ref_to_ref_assignment()
- {
- sal::systools::COMReference<IUnknown> r1 = comObjectSource();
- sal::systools::COMReference<IUnknown> r2 = r1;
- CPPUNIT_ASSERT_MESSAGE("Wrong reference count 2 is expected", reinterpret_cast<COMObject*>(r2.get())->GetRefCount() == 2);
- }
-
- void test_pointer_to_ref_assignment()
- {
- sal::systools::COMReference<IUnknown> r;
- r = new COMObject;
- CPPUNIT_ASSERT_MESSAGE("Wrong reference count 1 is expected", reinterpret_cast<COMObject*>(r.get())->GetRefCount() == 1);
- }
-
- void test_pointer_to_ref_assignment2()
- {
- sal::systools::COMReference<IUnknown> r = comObjectSource();
- r = new COMObject;
- CPPUNIT_ASSERT_MESSAGE("Wrong reference count 1 is expected", reinterpret_cast<COMObject*>(r.get())->GetRefCount() == 1);
- }
-
- void test_source_sink()
- {
- CPPUNIT_ASSERT_MESSAGE("Wrong reference count, 0 is expected", comObjectSink(comObjectSource(), 0));
- }
-
- void test_address_operator()
- {
- sal::systools::COMReference<IUnknown> r;
- comObjectSource2(reinterpret_cast<LPVOID*>(&r));
- CPPUNIT_ASSERT_MESSAGE("Wrong reference count, 1 is expected", reinterpret_cast<COMObject*>(r.get())->GetRefCount() == 1);
- }
-
- void test_address_operator2()
- {
- sal::systools::COMReference<IUnknown> r1 = comObjectSource();
- sal::systools::COMReference<IUnknown> r2 = r1;
- CPPUNIT_ASSERT_MESSAGE("Wrong reference count 2 is expected", reinterpret_cast<COMObject*>(r2.get())->GetRefCount() == 2);
- comObjectSource2(reinterpret_cast<LPVOID*>(&r1));
- CPPUNIT_ASSERT_MESSAGE("Wrong reference count 1 is expected", reinterpret_cast<COMObject*>(r1.get())->GetRefCount() == 1);
- CPPUNIT_ASSERT_MESSAGE("Wrong reference count 1 is expected", reinterpret_cast<COMObject*>(r2.get())->GetRefCount() == 1);
- }
-
- void test_clear()
- {
- sal::systools::COMReference<IUnknown> r = comObjectSource();
- CPPUNIT_ASSERT_MESSAGE("Wrong reference count 1 is expected", reinterpret_cast<COMObject*>(r.get())->GetRefCount() == 1);
- r.clear();
- CPPUNIT_ASSERT_MESSAGE("Expect reference to be empty", !r.is());
- }
-
- void test_query_interface()
- {
- try
- {
- sal::systools::COMReference<IUnknown> r1 = comObjectSource();
- sal::systools::COMReference<IUnknown> r2 = r1.QueryInterface<IUnknown>(IID_IUnknown);
- CPPUNIT_ASSERT_MESSAGE("Wrong reference count, 2 is expected", reinterpret_cast<COMObject*>(r2.get())->GetRefCount() == 2);
- }
- catch(const sal::systools::ComError& ex)
- {
- CPPUNIT_ASSERT_MESSAGE("Exception should not have been thrown", false);
- }
- }
-
- void test_query_interface_throw()
- {
- try
- {
- sal::systools::COMReference<IUnknown> r1 = comObjectSource();
- sal::systools::COMReference<IPersistFile> r2 = r1.QueryInterface<IPersistFile>(IID_IPersistFile);
- }
- catch(const sal::systools::ComError& ex)
- {
- return;
- }
- CPPUNIT_ASSERT_MESSAGE("Exception should have been thrown", false);
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(test_COMReference);
- CPPUNIT_TEST(default_ctor);
- CPPUNIT_TEST(test_ctor_manual_AddRef);
- CPPUNIT_TEST(test_copy_ctor);
- CPPUNIT_TEST(test_copy_assignment);
- CPPUNIT_TEST(test_ref_to_ref_assignment);
- CPPUNIT_TEST(test_pointer_to_ref_assignment);
- CPPUNIT_TEST(test_pointer_to_ref_assignment2);
- CPPUNIT_TEST(test_source_sink);
- CPPUNIT_TEST(test_address_operator);
- CPPUNIT_TEST(test_address_operator2);
- CPPUNIT_TEST(test_clear);
- CPPUNIT_TEST(test_query_interface);
- CPPUNIT_TEST(test_query_interface_throw);
- CPPUNIT_TEST_SUITE_END();
- };
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(test_comtools::test_COMReference, "test_comtools");
-
-} // namespace rtl_OUString
-
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-NOADDITIONAL;
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/testHelperFunctions/makefile.mk b/sal/qa/testHelperFunctions/makefile.mk
deleted file mode 100644
index e7c2f9887..000000000
--- a/sal/qa/testHelperFunctions/makefile.mk
+++ /dev/null
@@ -1,63 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=sal
-TARGET=qa_testHelperFunctions
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-# --- BEGIN --------------------------------------------------------
-SHL1OBJS= \
- $(SLO)$/testHelperFunctions.obj \
- $(SLO)$/testHelperFunctions2.obj
-
-SHL1TARGET= testHelperFunctions
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-DEF1NAME =$(SHL1TARGET)
-SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
-
-# END --------------------------------------------------------------
-
-#------------------------------- All object files -------------------------------
-# do this here, so we get right dependencies
-# SLOFILES=$(SHL1OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : $(PRJ)$/qa$/cppunit_local.mk
diff --git a/sal/qa/testHelperFunctions/testHelperFunctions.cxx b/sal/qa/testHelperFunctions/testHelperFunctions.cxx
deleted file mode 100644
index 217eaac35..000000000
--- a/sal/qa/testHelperFunctions/testHelperFunctions.cxx
+++ /dev/null
@@ -1,457 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-// This is a test of helperfunctions
-
-#include <osl/time.h>
-#include <osl/thread.hxx>
-
-#include "stringhelper.hxx"
-
-#include <testshl/simpleheader.hxx>
-
-// void isJaBloed()
-// {
-// t_print("Ist ja echt bloed.\n");
-// }
-
-inline sal_Int64 t_abs64(sal_Int64 _nValue)
-{
- // std::abs() seems to have some ambiguity problems (so-texas)
- // return abs(_nValue);
- t_print("t_abs64(%ld)\n", _nValue);
- // CPPUNIT_ASSERT(_nValue < 2147483647);
-
- if (_nValue < 0)
- {
- _nValue = -_nValue;
- }
- return _nValue;
-}
-
-void t_print64(sal_Int64 n)
-{
- if (n < 0)
- {
- // negativ
- printf("-");
- n = -n;
- }
- if (n > 2147483647)
- {
- sal_Int64 n64 = n >> 32;
- sal_uInt32 n32 = n64 & 0xffffffff;
- printf("0x%.8x ", n32);
- n32 = n & 0xffffffff;
- printf("%.8x (64bit)", n32);
- }
- else
- {
- sal_uInt32 n32 = n & 0xffffffff;
- printf("0x%.8x (32bit) ", n32);
- }
- printf("\n");
-}
-
-// -----------------------------------------------------------------------------
-namespace testOfHelperFunctions
-{
- class test_t_abs64 : public CppUnit::TestFixture
- {
- public:
- void test0();
- void test1_0();
- void test1();
- void test1_1();
- void test2();
- void test3();
- void test4();
-
- CPPUNIT_TEST_SUITE( test_t_abs64 );
- CPPUNIT_TEST( test0 );
- CPPUNIT_TEST( test1_0 );
- CPPUNIT_TEST( test1 );
- CPPUNIT_TEST( test1_1 );
- CPPUNIT_TEST( test2 );
- CPPUNIT_TEST( test3 );
- CPPUNIT_TEST( test4 );
- CPPUNIT_TEST_SUITE_END( );
- };
-
- void test_t_abs64::test0()
- {
- // this values has an overrun!
- sal_Int32 n32 = 2147483648;
- t_print("n32 should be -2^31 is: %d\n", n32);
- CPPUNIT_ASSERT_MESSAGE("n32!=2147483648", n32 == -2147483648 );
- }
-
-
- void test_t_abs64::test1_0()
- {
- sal_Int64 n;
- n = 1073741824;
- n <<= 9;
- t_print("Value of n is ");
- t_print64(n);
- CPPUNIT_ASSERT_MESSAGE("n=2^30 << 9", t_abs64(n) > 0 );
- }
-
- void test_t_abs64::test1()
- {
- sal_Int64 n;
- n = 2147483648 << 8;
- t_print("Value of n is ");
- t_print64(n);
- CPPUNIT_ASSERT_MESSAGE("n=2^31 << 8", t_abs64(n) > 0 );
- }
- void test_t_abs64::test1_1()
- {
- sal_Int64 n;
- n = sal_Int64(2147483648) << 8;
- t_print("Value of n is ");
- t_print64(n);
- CPPUNIT_ASSERT_MESSAGE("n=2^31 << 8", t_abs64(n) > 0 );
- }
-
- void test_t_abs64::test2()
- {
- sal_Int64 n;
- n = 2147483648 << 1;
- t_print("Value of n is ");
- t_print64(n);
-
- CPPUNIT_ASSERT_MESSAGE("(2147483648 << 1) is != 0", n != 0 );
-
- sal_Int64 n2 = 2147483648 * 2;
- CPPUNIT_ASSERT_MESSAGE("2147483648 * 2 is != 0", n2 != 0 );
-
- sal_Int64 n3 = 4294967296LL;
- CPPUNIT_ASSERT_MESSAGE("4294967296 is != 0", n3 != 0 );
-
- CPPUNIT_ASSERT_MESSAGE("n=2^31 << 1, n2 = 2^31 * 2, n3 = 2^32, all should equal!", n == n2 && n == n3 );
- }
-
-
- void test_t_abs64::test3()
- {
- sal_Int64 n = 0;
- CPPUNIT_ASSERT_MESSAGE("n=0", t_abs64(n) == 0 );
-
- n = 1;
- CPPUNIT_ASSERT_MESSAGE("n=1", t_abs64(n) > 0 );
-
- n = 2147483647;
- CPPUNIT_ASSERT_MESSAGE("n=2^31 - 1", t_abs64(n) > 0 );
-
- n = 2147483648;
- CPPUNIT_ASSERT_MESSAGE("n=2^31", t_abs64(n) > 0 );
- }
-
- void test_t_abs64::test4()
- {
- sal_Int64 n = 0;
- n = -1;
- t_print("Value of n is -1 : ");
- t_print64(n);
- CPPUNIT_ASSERT_MESSAGE("n=-1", t_abs64(n) > 0 );
-
- n = -2147483648;
- t_print("Value of n is -2^31 : ");
- t_print64(n);
- CPPUNIT_ASSERT_MESSAGE("n=-2^31", t_abs64(n) > 0 );
-
- n = -8589934592LL;
- t_print("Value of n is -2^33 : ");
- t_print64(n);
- CPPUNIT_ASSERT_MESSAGE("n=-2^33", t_abs64(n) > 0 );
- }
-
-
-// -----------------------------------------------------------------------------
- class test_t_print : public CppUnit::TestFixture
- {
- public:
- void t_print_001();
-
- CPPUNIT_TEST_SUITE( test_t_print );
- CPPUNIT_TEST( t_print_001 );
- CPPUNIT_TEST_SUITE_END( );
- };
-
- void test_t_print::t_print_001( )
- {
- t_print("This is only a test of some helper functions\n");
- sal_Int32 nValue = 12345;
- t_print("a value %d (should be 12345)\n", nValue);
-
- rtl::OString sValue("foo bar");
- t_print("a String '%s' (should be 'foo bar')\n", sValue.getStr());
-
- rtl::OUString suValue(RTL_CONSTASCII_USTRINGPARAM("a unicode string"));
- sValue <<= suValue;
- t_print("a String '%s'\n", sValue.getStr());
- }
-
-
- class StopWatch
- {
- TimeValue m_aStartTime;
- TimeValue m_aEndTime;
- bool m_bStarted;
- public:
- StopWatch()
- :m_bStarted(false)
- {
- }
-
- void start()
- {
- m_bStarted = true;
- osl_getSystemTime(&m_aStartTime);
- }
- void stop()
- {
- osl_getSystemTime(&m_aEndTime);
- OSL_ENSURE(m_bStarted, "Not Started.");
- m_bStarted = false;
- }
- rtl::OString makeTwoDigits(rtl::OString const& _sStr)
- {
- rtl::OString sBack;
- if (_sStr.getLength() == 0)
- {
- sBack = "00";
- }
- else
- {
- if (_sStr.getLength() == 1)
- {
- sBack = "0" + _sStr;
- }
- else
- {
- sBack = _sStr;
- }
- }
- return sBack;
- }
- rtl::OString makeThreeDigits(rtl::OString const& _sStr)
- {
- rtl::OString sBack;
- if (_sStr.getLength() == 0)
- {
- sBack = "000";
- }
- else
- {
- if (_sStr.getLength() == 1)
- {
- sBack = "00" + _sStr;
- }
- else
- {
- if (_sStr.getLength() == 2)
- {
- sBack = "0" + _sStr;
- }
- else
- {
- sBack = _sStr;
- }
- }
- }
- return sBack;
- }
-
- void showTime(const rtl::OString & aWhatStr)
- {
- OSL_ENSURE(!m_bStarted, "Not Stopped.");
-
- sal_Int32 nSeconds = m_aEndTime.Seconds - m_aStartTime.Seconds;
- sal_Int32 nNanoSec = sal_Int32(m_aEndTime.Nanosec) - sal_Int32(m_aStartTime.Nanosec);
- // printf("Seconds: %d Nanosec: %d ", nSeconds, nNanoSec);
- if (nNanoSec < 0)
- {
- nNanoSec = 1000000000 + nNanoSec;
- nSeconds--;
- // printf(" NEW Seconds: %d Nanosec: %d\n", nSeconds, nNanoSec);
- }
-
- rtl::OString aStr = "Time for ";
- aStr += aWhatStr;
- aStr += " ";
- aStr += makeTwoDigits(rtl::OString::valueOf(nSeconds / 3600));
- aStr += ":";
- aStr += makeTwoDigits(rtl::OString::valueOf((nSeconds % 3600) / 60));
- aStr += ":";
- aStr += makeTwoDigits(rtl::OString::valueOf((nSeconds % 60)));
- aStr += ":";
- aStr += makeThreeDigits(rtl::OString::valueOf((nNanoSec % 1000000000) / 1000000));
- aStr += ":";
- aStr += makeThreeDigits(rtl::OString::valueOf((nNanoSec % 1000000) / 1000));
- aStr += ":";
- aStr += makeThreeDigits(rtl::OString::valueOf((nNanoSec % 1000)));
-
- printf("%s\n", aStr.getStr());
- // cout << aStr.getStr() << endl;
- }
-
- };
-
-static sal_Bool isEqualTimeValue ( const TimeValue* time1, const TimeValue* time2)
-{
- if( time1->Seconds == time2->Seconds &&
- time1->Nanosec == time2->Nanosec)
- return sal_True;
- else
- return sal_False;
-}
-
-static sal_Bool isGreaterTimeValue( const TimeValue* time1, const TimeValue* time2)
-{
- sal_Bool retval= sal_False;
- if ( time1->Seconds > time2->Seconds)
- retval= sal_True;
- else if ( time1->Seconds == time2->Seconds)
- {
- if( time1->Nanosec > time2->Nanosec)
- retval= sal_True;
- }
- return retval;
-}
-
-static sal_Bool isGreaterEqualTimeValue( const TimeValue* time1, const TimeValue* time2)
-{
- if( isEqualTimeValue( time1, time2) )
- return sal_True;
- else if( isGreaterTimeValue( time1, time2))
- return sal_True;
- else
- return sal_False;
-}
-
-bool isBTimeGreaterATime(TimeValue const& A, TimeValue const& B)
-{
- if (B.Seconds > A.Seconds) return true;
- if (B.Nanosec > A.Nanosec) return true;
-
- // lower or equal
- return false;
-}
- // -----------------------------------------------------------------------------
-
-
- class test_TimeValues : public CppUnit::TestFixture
- {
- public:
-
- void t_time1();
- void t_time2();
- void t_time3();
-
- CPPUNIT_TEST_SUITE( test_TimeValues );
- CPPUNIT_TEST( t_time1 );
- CPPUNIT_TEST( t_time2 );
- CPPUNIT_TEST( t_time3 );
- CPPUNIT_TEST_SUITE_END( );
- };
-
-void test_TimeValues::t_time1()
-{
- StopWatch aWatch;
- aWatch.start();
- TimeValue aTimeValue={3,0};
- osl::Thread::wait(aTimeValue);
- aWatch.stop();
- aWatch.showTime("Wait for 3 seconds");
-}
-
-void test_TimeValues::t_time2()
-{
- t_print("Wait repeats 20 times.\n");
- int i=0;
- while(i++<20)
- {
- StopWatch aWatch;
- aWatch.start();
- TimeValue aTimeValue={0,1000 * 1000 * 500};
- osl::Thread::wait(aTimeValue);
- aWatch.stop();
- aWatch.showTime("wait for 500msec");
- }
-}
-
-void test_TimeValues::t_time3()
-{
- t_print("Wait repeats 100 times.\n");
- int i=0;
- while(i++<20)
- {
- StopWatch aWatch;
- aWatch.start();
- TimeValue aTimeValue={0,1000*1000*100};
- osl::Thread::wait(aTimeValue);
- aWatch.stop();
- aWatch.showTime("wait for 100msec");
- }
-}
-
- // void demoTimeValue()
- // {
- // TimeValue aStartTime, aEndTime;
- // osl_getSystemTime(&aStartTime);
- // // testSession(xORB, false);
- // osl_getSystemTime(&aEndTime);
- //
- // sal_Int32 nSeconds = aEndTime.Seconds - aStartTime.Seconds;
- // sal_Int32 nNanoSec = aEndTime.Nanosec - aStartTime.Nanosec;
- // if (nNanoSec < 0)
- // {
- // nNanoSec = 1000000000 - nNanoSec;
- // nSeconds++;
- // }
- //
- // // cout << "Time: " << nSeconds << ". " << nNanoSec << endl;
- // }
-
-
-} // namespace testOfHelperFunctions
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( testOfHelperFunctions::test_t_print, "helperFunctions" );
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( testOfHelperFunctions::test_t_abs64, "helperFunctions" );
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( testOfHelperFunctions::test_TimeValues, "helperFunctions" );
-
-// -----------------------------------------------------------------------------
-NOADDITIONAL;
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/testHelperFunctions/testHelperFunctions2.cxx b/sal/qa/testHelperFunctions/testHelperFunctions2.cxx
deleted file mode 100644
index 7bef2c4c3..000000000
--- a/sal/qa/testHelperFunctions/testHelperFunctions2.cxx
+++ /dev/null
@@ -1,64 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-#include <testshl/simpleheader.hxx>
-#include "stringhelper.hxx"
-
-namespace testOfHelperFunctions
-{
- class test_valueequal : public CppUnit::TestFixture
- {
- public:
- void valueequal_001();
-
- CPPUNIT_TEST_SUITE( test_valueequal );
- CPPUNIT_TEST( valueequal_001 );
- CPPUNIT_TEST_SUITE_END( );
- };
-
- void test_valueequal::valueequal_001( )
- {
- rtl::OString sValue;
- rtl::OUString suValue(RTL_CONSTASCII_USTRINGPARAM("This is only a test of some helper functions"));
- sValue <<= suValue;
- t_print("'%s'\n", sValue.getStr());
- }
-
-} // namespace testOfHelperFunctions
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( testOfHelperFunctions::test_valueequal, "helperFunctions" );
-
-// -----------------------------------------------------------------------------
-// This is only allowed to be in one file!
-// NOADDITIONAL;
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/alloc_arena.c b/sal/rtl/source/alloc_arena.c
deleted file mode 100644
index 6b4403414..000000000
--- a/sal/rtl/source/alloc_arena.c
+++ /dev/null
@@ -1,1349 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#define _BSD_SOURCE /* sys/mman.h: MAP_ANON */
-#include "alloc_arena.h"
-
-#include "alloc_impl.h"
-#include "internal/once.h"
-#include "sal/macros.h"
-#include "osl/diagnose.h"
-
-#include <string.h>
-#include <stdio.h>
-
-/* ================================================================= *
- *
- * arena internals.
- *
- * ================================================================= */
-
-/** g_arena_list
- * @internal
- */
-struct rtl_arena_list_st
-{
- rtl_memory_lock_type m_lock;
- rtl_arena_type m_arena_head;
-};
-
-static struct rtl_arena_list_st g_arena_list;
-
-
-/** gp_arena_arena
- * provided for arena_type allocations, and hash_table resizing.
- *
- * @internal
- */
-static rtl_arena_type * gp_arena_arena = 0;
-
-
-/** gp_machdep_arena
- *
- * Low level virtual memory (pseudo) arena
- * (platform dependent implementation)
- *
- * @internal
- */
-static rtl_arena_type * gp_machdep_arena = 0;
-
-
-static void *
-SAL_CALL rtl_machdep_alloc (
- rtl_arena_type * pArena,
- sal_Size * pSize
-);
-
-static void
-SAL_CALL rtl_machdep_free (
- rtl_arena_type * pArena,
- void * pAddr,
- sal_Size nSize
-);
-
-static sal_Size
-rtl_machdep_pagesize (void);
-
-
-/** gp_default_arena
- */
-rtl_arena_type * gp_default_arena = 0;
-
-
-/* ================================================================= */
-
-/** rtl_arena_segment_constructor()
- */
-static int
-rtl_arena_segment_constructor (void * obj)
-{
- rtl_arena_segment_type * segment = (rtl_arena_segment_type*)(obj);
-
- QUEUE_START_NAMED(segment, s);
- QUEUE_START_NAMED(segment, f);
-
- return (1);
-}
-
-
-/** rtl_arena_segment_destructor()
- */
-static void
-rtl_arena_segment_destructor (void * obj)
-{
-#if OSL_DEBUG_LEVEL == 0
- (void) obj; /* unused */
-#else /* OSL_DEBUG_LEVEL */
- rtl_arena_segment_type * segment = (rtl_arena_segment_type*)(obj);
-
- OSL_ASSERT(QUEUE_STARTED_NAMED(segment, s));
- OSL_ASSERT(QUEUE_STARTED_NAMED(segment, f));
-#endif /* OSL_DEBUG_LEVEL */
-}
-
-/* ================================================================= */
-
-/** rtl_arena_segment_populate()
- *
- * @precond arena->m_lock acquired.
- */
-static int
-rtl_arena_segment_populate (
- rtl_arena_type * arena
-)
-{
- rtl_arena_segment_type *span;
- sal_Size size = rtl_machdep_pagesize();
-
- span = rtl_machdep_alloc(gp_machdep_arena, &size);
- if (span != 0)
- {
- rtl_arena_segment_type *first, *last, *head;
- sal_Size count = size / sizeof(rtl_arena_segment_type);
-
- /* insert onto reserve span list */
- QUEUE_INSERT_TAIL_NAMED(&(arena->m_segment_reserve_span_head), span, s);
- QUEUE_START_NAMED(span, f);
- span->m_addr = (sal_uIntPtr)(span);
- span->m_size = size;
- span->m_type = RTL_ARENA_SEGMENT_TYPE_SPAN;
-
- /* insert onto reserve list */
- head = &(arena->m_segment_reserve_head);
- for (first = span + 1, last = span + count; first < last; ++first)
- {
- QUEUE_INSERT_TAIL_NAMED(head, first, s);
- QUEUE_START_NAMED(first, f);
- first->m_addr = 0;
- first->m_size = 0;
- first->m_type = 0;
- }
- }
- return (span != 0);
-}
-
-
-/** rtl_arena_segment_get()
- *
- * @precond arena->m_lock acquired.
- * @precond (*ppSegment == 0)
- */
-static RTL_MEMORY_INLINE void
-rtl_arena_segment_get (
- rtl_arena_type * arena,
- rtl_arena_segment_type ** ppSegment
-)
-{
- rtl_arena_segment_type * head;
-
- OSL_ASSERT(*ppSegment == 0);
-
- head = &(arena->m_segment_reserve_head);
- if ((head->m_snext != head) || rtl_arena_segment_populate (arena))
- {
- (*ppSegment) = head->m_snext;
- QUEUE_REMOVE_NAMED((*ppSegment), s);
- }
-}
-
-#if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-#pragma inline(rtl_arena_segment_get)
-#endif
-
-
-/** rtl_arena_segment_put()
- *
- * @precond arena->m_lock acquired.
- * @postcond (*ppSegment == 0)
- */
-static RTL_MEMORY_INLINE void
-rtl_arena_segment_put (
- rtl_arena_type * arena,
- rtl_arena_segment_type ** ppSegment
-)
-{
- rtl_arena_segment_type * head;
-
- OSL_ASSERT(QUEUE_STARTED_NAMED((*ppSegment), s));
- OSL_ASSERT(QUEUE_STARTED_NAMED((*ppSegment), f));
-
- (*ppSegment)->m_addr = 0;
- (*ppSegment)->m_size = 0;
-
- OSL_ASSERT((*ppSegment)->m_type != RTL_ARENA_SEGMENT_TYPE_HEAD);
- (*ppSegment)->m_type = 0;
-
- /* keep as reserve */
- head = &(arena->m_segment_reserve_head);
- QUEUE_INSERT_HEAD_NAMED(head, (*ppSegment), s);
-
- /* clear */
- (*ppSegment) = 0;
-}
-
-#if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-#pragma inline(rtl_arena_segment_put)
-#endif
-
-/* ================================================================= */
-
-/** rtl_arena_freelist_insert()
- *
- * @precond arena->m_lock acquired.
- */
-static RTL_MEMORY_INLINE void
-rtl_arena_freelist_insert (
- rtl_arena_type * arena,
- rtl_arena_segment_type * segment
-)
-{
- rtl_arena_segment_type * head;
-
- head = &(arena->m_freelist_head[highbit(segment->m_size) - 1]);
- QUEUE_INSERT_TAIL_NAMED(head, segment, f);
-
- arena->m_freelist_bitmap |= head->m_size;
-}
-
-#if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-#pragma inline(rtl_arena_freelist_insert)
-#endif /* __SUNPRO_C */
-
-
-/** rtl_arena_freelist_remove()
- *
- * @precond arena->m_lock acquired.
- */
-static RTL_MEMORY_INLINE void
-rtl_arena_freelist_remove (
- rtl_arena_type * arena,
- rtl_arena_segment_type * segment
-)
-{
- if ((segment->m_fnext->m_type == RTL_ARENA_SEGMENT_TYPE_HEAD) &&
- (segment->m_fprev->m_type == RTL_ARENA_SEGMENT_TYPE_HEAD) )
- {
- rtl_arena_segment_type * head;
-
- head = segment->m_fprev;
- OSL_ASSERT(arena->m_freelist_bitmap & head->m_size);
- arena->m_freelist_bitmap ^= head->m_size;
- }
- QUEUE_REMOVE_NAMED(segment, f);
-}
-
-#if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-#pragma inline(rtl_arena_freelist_remove)
-#endif /* __SUNPRO_C */
-
-
-/* ================================================================= */
-
-/** RTL_ARENA_HASH_INDEX()
- */
-#define RTL_ARENA_HASH_INDEX_IMPL(a, s, q, m) \
- ((((a) + ((a) >> (s)) + ((a) >> ((s) << 1))) >> (q)) & (m))
-
-#define RTL_ARENA_HASH_INDEX(arena, addr) \
- RTL_ARENA_HASH_INDEX_IMPL((addr), (arena)->m_hash_shift, (arena)->m_quantum_shift, ((arena)->m_hash_size - 1))
-
-/** rtl_arena_hash_rescale()
- *
- * @precond arena->m_lock released.
- */
-static void
-rtl_arena_hash_rescale (
- rtl_arena_type * arena,
- sal_Size new_size
-)
-{
- rtl_arena_segment_type ** new_table;
- sal_Size new_bytes;
-
- new_bytes = new_size * sizeof(rtl_arena_segment_type*);
- new_table = (rtl_arena_segment_type **)rtl_arena_alloc (gp_arena_arena, &new_bytes);
-
- if (new_table != 0)
- {
- rtl_arena_segment_type ** old_table;
- sal_Size old_size, i;
-
- memset (new_table, 0, new_bytes);
-
- RTL_MEMORY_LOCK_ACQUIRE(&(arena->m_lock));
-
- old_table = arena->m_hash_table;
- old_size = arena->m_hash_size;
-
- OSL_TRACE(
- "rtl_arena_hash_rescale(\"%s\"): "
- "nseg: %"PRIu64" (ave: %"PRIu64"), frees: %"PRIu64" "
- "[old_size: %lu, new_size: %lu]",
- arena->m_name,
- arena->m_stats.m_alloc - arena->m_stats.m_free,
- (arena->m_stats.m_alloc - arena->m_stats.m_free) >> arena->m_hash_shift,
- arena->m_stats.m_free,
- old_size, new_size
- );
-
- arena->m_hash_table = new_table;
- arena->m_hash_size = new_size;
- arena->m_hash_shift = highbit(arena->m_hash_size) - 1;
-
- for (i = 0; i < old_size; i++)
- {
- rtl_arena_segment_type * curr = old_table[i];
- while (curr != 0)
- {
- rtl_arena_segment_type * next = curr->m_fnext;
- rtl_arena_segment_type ** head;
-
- head = &(arena->m_hash_table[RTL_ARENA_HASH_INDEX(arena, curr->m_addr)]);
- curr->m_fnext = (*head);
- (*head) = curr;
-
- curr = next;
- }
- old_table[i] = 0;
- }
-
- RTL_MEMORY_LOCK_RELEASE(&(arena->m_lock));
-
- if (old_table != arena->m_hash_table_0)
- {
- sal_Size old_bytes = old_size * sizeof(rtl_arena_segment_type*);
- rtl_arena_free (gp_arena_arena, old_table, old_bytes);
- }
- }
-}
-
-
-/** rtl_arena_hash_insert()
- * ...and update stats.
- */
-static RTL_MEMORY_INLINE void
-rtl_arena_hash_insert (
- rtl_arena_type * arena,
- rtl_arena_segment_type * segment
-)
-{
- rtl_arena_segment_type ** ppSegment;
-
- ppSegment = &(arena->m_hash_table[RTL_ARENA_HASH_INDEX(arena, segment->m_addr)]);
-
- segment->m_fnext = (*ppSegment);
- (*ppSegment) = segment;
-
- arena->m_stats.m_alloc += 1;
- arena->m_stats.m_mem_alloc += segment->m_size;
-}
-
-#if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-#pragma inline(rtl_arena_hash_insert)
-#endif /* __SUNPRO_C */
-
-
-/** rtl_arena_hash_remove()
- * ...and update stats.
- */
-static rtl_arena_segment_type *
-rtl_arena_hash_remove (
- rtl_arena_type * arena,
- sal_uIntPtr addr,
- sal_Size size
-)
-{
- rtl_arena_segment_type *segment, **segpp;
- sal_Size lookups = 0;
-
-#if OSL_DEBUG_LEVEL == 0
- (void) size; /* unused */
-#endif /* OSL_DEBUG_LEVEL */
-
- segpp = &(arena->m_hash_table[RTL_ARENA_HASH_INDEX(arena, addr)]);
- while ((segment = *segpp) != 0)
- {
- if (segment->m_addr == addr)
- {
- *segpp = segment->m_fnext, segment->m_fnext = segment->m_fprev = segment;
- break;
- }
-
- /* update lookup miss stats */
- lookups += 1;
- segpp = &(segment->m_fnext);
- }
-
- OSL_POSTCOND(segment != 0, "rtl_arena_hash_remove(): bad free.");
- if (segment != 0)
- {
- OSL_POSTCOND(segment->m_size == size, "rtl_arena_hash_remove(): wrong size.");
-
- arena->m_stats.m_free += 1;
- arena->m_stats.m_mem_alloc -= segment->m_size;
-
- if (lookups > 1)
- {
- sal_Size nseg = (sal_Size)(arena->m_stats.m_alloc - arena->m_stats.m_free);
- if (nseg > 4 * arena->m_hash_size)
- {
- if (!(arena->m_flags & RTL_ARENA_FLAG_RESCALE))
- {
- sal_Size ave = nseg >> arena->m_hash_shift;
- sal_Size new_size = arena->m_hash_size << (highbit(ave) - 1);
-
- arena->m_flags |= RTL_ARENA_FLAG_RESCALE;
- RTL_MEMORY_LOCK_RELEASE(&(arena->m_lock));
- rtl_arena_hash_rescale (arena, new_size);
- RTL_MEMORY_LOCK_ACQUIRE(&(arena->m_lock));
- arena->m_flags &= ~RTL_ARENA_FLAG_RESCALE;
- }
- }
- }
- }
-
- return (segment);
-}
-
-/* ================================================================= */
-
-/** rtl_arena_segment_alloc()
- * allocate (and remove) segment from freelist
- *
- * @precond arena->m_lock acquired
- * @precond (*ppSegment == 0)
- */
-static int
-rtl_arena_segment_alloc (
- rtl_arena_type * arena,
- sal_Size size,
- rtl_arena_segment_type ** ppSegment
-)
-{
- int index = 0;
-
- OSL_ASSERT(*ppSegment == 0);
- if (!RTL_MEMORY_ISP2(size))
- {
- int msb = highbit(size);
- if (RTL_ARENA_FREELIST_SIZE == SAL_INT_CAST(size_t, msb))
- {
- /* highest possible freelist: fall back to first fit */
- rtl_arena_segment_type *head, *segment;
-
- head = &(arena->m_freelist_head[msb - 1]);
- for (segment = head->m_fnext; segment != head; segment = segment->m_fnext)
- {
- if (segment->m_size >= size)
- {
- /* allocate first fit segment */
- (*ppSegment) = segment;
- break;
- }
- }
- goto dequeue_and_leave;
- }
-
- /* roundup to next power of 2 */
- size = (1UL << msb);
- }
-
- index = lowbit(RTL_MEMORY_P2ALIGN(arena->m_freelist_bitmap, size));
- if (index > 0)
- {
- /* instant fit: allocate first free segment */
- rtl_arena_segment_type *head;
-
- head = &(arena->m_freelist_head[index - 1]);
- (*ppSegment) = head->m_fnext;
- OSL_ASSERT((*ppSegment) != head);
- }
-
-dequeue_and_leave:
- if (*ppSegment != 0)
- {
- /* remove from freelist */
- rtl_arena_freelist_remove (arena, (*ppSegment));
- }
- return (*ppSegment != 0);
-}
-
-
-/** rtl_arena_segment_create()
- * import new (span) segment from source arena
- *
- * @precond arena->m_lock acquired
- * @precond (*ppSegment == 0)
- */
-static int
-rtl_arena_segment_create (
- rtl_arena_type * arena,
- sal_Size size,
- rtl_arena_segment_type ** ppSegment
-)
-{
- OSL_ASSERT((*ppSegment) == 0);
- if (arena->m_source_alloc != 0)
- {
- rtl_arena_segment_get (arena, ppSegment);
- if (*ppSegment != 0)
- {
- rtl_arena_segment_type * span = 0;
- rtl_arena_segment_get (arena, &span);
- if (span != 0)
- {
- /* import new span from source arena */
- RTL_MEMORY_LOCK_RELEASE(&(arena->m_lock));
-
- span->m_size = size;
- span->m_addr = (sal_uIntPtr)(arena->m_source_alloc)(
- arena->m_source_arena, &(span->m_size));
-
- RTL_MEMORY_LOCK_ACQUIRE(&(arena->m_lock));
- if (span->m_addr != 0)
- {
- /* insert onto segment list, update stats */
- span->m_type = RTL_ARENA_SEGMENT_TYPE_SPAN;
- QUEUE_INSERT_HEAD_NAMED(&(arena->m_segment_head), span, s);
- arena->m_stats.m_mem_total += span->m_size;
-
- (*ppSegment)->m_addr = span->m_addr;
- (*ppSegment)->m_size = span->m_size;
- (*ppSegment)->m_type = RTL_ARENA_SEGMENT_TYPE_FREE;
- QUEUE_INSERT_HEAD_NAMED(span, (*ppSegment), s);
-
- /* report success */
- return (1);
- }
- rtl_arena_segment_put (arena, &span);
- }
- rtl_arena_segment_put (arena, ppSegment);
- }
- }
- return (0);
-}
-
-
-/** rtl_arena_segment_coalesce()
- * mark as free and join with adjacent free segment(s)
- *
- * @precond arena->m_lock acquired
- * @precond segment marked 'used'
- */
-static void
-rtl_arena_segment_coalesce (
- rtl_arena_type * arena,
- rtl_arena_segment_type * segment
-)
-{
- rtl_arena_segment_type *next, *prev;
-
- /* mark segment free */
- OSL_ASSERT(segment->m_type == RTL_ARENA_SEGMENT_TYPE_USED);
- segment->m_type = RTL_ARENA_SEGMENT_TYPE_FREE;
-
- /* try to merge w/ next segment */
- next = segment->m_snext;
- if (next->m_type == RTL_ARENA_SEGMENT_TYPE_FREE)
- {
- OSL_ASSERT(segment->m_addr + segment->m_size == next->m_addr);
- segment->m_size += next->m_size;
-
- /* remove from freelist */
- rtl_arena_freelist_remove (arena, next);
-
- /* remove from segment list */
- QUEUE_REMOVE_NAMED(next, s);
-
- /* release segment descriptor */
- rtl_arena_segment_put (arena, &next);
- }
-
- /* try to merge w/ prev segment */
- prev = segment->m_sprev;
- if (prev->m_type == RTL_ARENA_SEGMENT_TYPE_FREE)
- {
- OSL_ASSERT(prev->m_addr + prev->m_size == segment->m_addr);
- segment->m_addr = prev->m_addr;
- segment->m_size += prev->m_size;
-
- /* remove from freelist */
- rtl_arena_freelist_remove (arena, prev);
-
- /* remove from segment list */
- QUEUE_REMOVE_NAMED(prev, s);
-
- /* release segment descriptor */
- rtl_arena_segment_put (arena, &prev);
- }
-}
-
-/* ================================================================= */
-
-/** rtl_arena_constructor()
- */
-static void
-rtl_arena_constructor (void * obj)
-{
- rtl_arena_type * arena = (rtl_arena_type*)(obj);
- rtl_arena_segment_type * head;
- size_t i;
-
- memset (arena, 0, sizeof(rtl_arena_type));
-
- QUEUE_START_NAMED(arena, arena_);
-
- (void) RTL_MEMORY_LOCK_INIT(&(arena->m_lock));
-
- head = &(arena->m_segment_reserve_span_head);
- rtl_arena_segment_constructor (head);
- head->m_type = RTL_ARENA_SEGMENT_TYPE_HEAD;
-
- head = &(arena->m_segment_reserve_head);
- rtl_arena_segment_constructor (head);
- head->m_type = RTL_ARENA_SEGMENT_TYPE_HEAD;
-
- head = &(arena->m_segment_head);
- rtl_arena_segment_constructor (head);
- head->m_type = RTL_ARENA_SEGMENT_TYPE_HEAD;
-
- for (i = 0; i < RTL_ARENA_FREELIST_SIZE; i++)
- {
- head = &(arena->m_freelist_head[i]);
- rtl_arena_segment_constructor (head);
-
- head->m_size = (1UL << i);
- head->m_type = RTL_ARENA_SEGMENT_TYPE_HEAD;
- }
-
- arena->m_hash_table = arena->m_hash_table_0;
- arena->m_hash_size = RTL_ARENA_HASH_SIZE;
- arena->m_hash_shift = highbit(arena->m_hash_size) - 1;
-}
-
-
-/** rtl_arena_destructor()
- */
-static void
-rtl_arena_destructor (void * obj)
-{
- rtl_arena_type * arena = (rtl_arena_type*)(obj);
- rtl_arena_segment_type * head;
- size_t i;
-
- OSL_ASSERT(QUEUE_STARTED_NAMED(arena, arena_));
-
- RTL_MEMORY_LOCK_DESTROY(&(arena->m_lock));
-
- head = &(arena->m_segment_reserve_span_head);
- OSL_ASSERT(head->m_type == RTL_ARENA_SEGMENT_TYPE_HEAD);
- rtl_arena_segment_destructor (head);
-
- head = &(arena->m_segment_reserve_head);
- OSL_ASSERT(head->m_type == RTL_ARENA_SEGMENT_TYPE_HEAD);
- rtl_arena_segment_destructor (head);
-
- head = &(arena->m_segment_head);
- OSL_ASSERT(head->m_type == RTL_ARENA_SEGMENT_TYPE_HEAD);
- rtl_arena_segment_destructor (head);
-
- for (i = 0; i < RTL_ARENA_FREELIST_SIZE; i++)
- {
- head = &(arena->m_freelist_head[i]);
-
- OSL_ASSERT(head->m_size == (1UL << i));
- OSL_ASSERT(head->m_type == RTL_ARENA_SEGMENT_TYPE_HEAD);
-
- rtl_arena_segment_destructor (head);
- }
-
- OSL_ASSERT(arena->m_hash_table == arena->m_hash_table_0);
- OSL_ASSERT(arena->m_hash_size == RTL_ARENA_HASH_SIZE);
- OSL_ASSERT(
- arena->m_hash_shift ==
- SAL_INT_CAST(unsigned, highbit(arena->m_hash_size) - 1));
-}
-
-/* ================================================================= */
-
-/** rtl_arena_activate()
- */
-static rtl_arena_type *
-rtl_arena_activate (
- rtl_arena_type * arena,
- const char * name,
- sal_Size quantum,
- sal_Size quantum_cache_max,
- rtl_arena_type * source_arena,
- void * (SAL_CALL * source_alloc)(rtl_arena_type *, sal_Size *),
- void (SAL_CALL * source_free) (rtl_arena_type *, void *, sal_Size)
-)
-{
- OSL_ASSERT(arena != 0);
- if (arena != 0)
- {
- (void) snprintf (arena->m_name, sizeof(arena->m_name), "%s", name);
-
- if (!RTL_MEMORY_ISP2(quantum))
- {
- /* roundup to next power of 2 */
- quantum = (1UL << highbit(quantum));
- }
- quantum_cache_max = RTL_MEMORY_P2ROUNDUP(quantum_cache_max, quantum);
-
- arena->m_quantum = quantum;
- arena->m_quantum_shift = highbit(arena->m_quantum) - 1;
- arena->m_qcache_max = quantum_cache_max;
-
- arena->m_source_arena = source_arena;
- arena->m_source_alloc = source_alloc;
- arena->m_source_free = source_free;
-
- if (arena->m_qcache_max > 0)
- {
- char name[RTL_ARENA_NAME_LENGTH + 1];
- int i, n = (arena->m_qcache_max >> arena->m_quantum_shift);
-
- sal_Size size = n * sizeof(rtl_cache_type*);
- arena->m_qcache_ptr = (rtl_cache_type**)rtl_arena_alloc (gp_arena_arena, &size);
- if (!(arena->m_qcache_ptr))
- {
- /* out of memory */
- return (0);
- }
- for (i = 1; i <= n; i++)
- {
- size = i * arena->m_quantum;
- (void) snprintf (name, sizeof(name), "%s_%lu", arena->m_name, size);
- arena->m_qcache_ptr[i - 1] = rtl_cache_create(name, size, 0, NULL, NULL, NULL, NULL, arena, RTL_CACHE_FLAG_QUANTUMCACHE);
- }
- }
-
- /* insert into arena list */
- RTL_MEMORY_LOCK_ACQUIRE(&(g_arena_list.m_lock));
- QUEUE_INSERT_TAIL_NAMED(&(g_arena_list.m_arena_head), arena, arena_);
- RTL_MEMORY_LOCK_RELEASE(&(g_arena_list.m_lock));
- }
- return (arena);
-}
-
-/** rtl_arena_deactivate()
- */
-static void
-rtl_arena_deactivate (
- rtl_arena_type * arena
-)
-{
- rtl_arena_segment_type * head, * segment;
-
- /* remove from arena list */
- RTL_MEMORY_LOCK_ACQUIRE(&(g_arena_list.m_lock));
- QUEUE_REMOVE_NAMED(arena, arena_);
- RTL_MEMORY_LOCK_RELEASE(&(g_arena_list.m_lock));
-
- /* cleanup quantum cache(s) */
- if ((arena->m_qcache_max > 0) && (arena->m_qcache_ptr != 0))
- {
- int i, n = (arena->m_qcache_max >> arena->m_quantum_shift);
- for (i = 1; i <= n; i++)
- {
- if (arena->m_qcache_ptr[i - 1] != 0)
- {
- rtl_cache_destroy (arena->m_qcache_ptr[i - 1]);
- arena->m_qcache_ptr[i - 1] = 0;
- }
- }
- rtl_arena_free (
- gp_arena_arena,
- arena->m_qcache_ptr,
- n * sizeof(rtl_cache_type*));
-
- arena->m_qcache_ptr = 0;
- }
-
- /* check for leaked segments */
- OSL_TRACE(
- "rtl_arena_deactivate(\"%s\"): "
- "allocs: %"PRIu64", frees: %"PRIu64"; total: %lu, used: %lu",
- arena->m_name,
- arena->m_stats.m_alloc, arena->m_stats.m_free,
- arena->m_stats.m_mem_total, arena->m_stats.m_mem_alloc
- );
- if (arena->m_stats.m_alloc > arena->m_stats.m_free)
- {
- sal_Size i, n;
-
- OSL_TRACE(
- "rtl_arena_deactivate(\"%s\"): "
- "cleaning up %"PRIu64" leaked segment(s) [%lu bytes]",
- arena->m_name,
- arena->m_stats.m_alloc - arena->m_stats.m_free,
- arena->m_stats.m_mem_alloc
- );
-
- /* cleanup still used segment(s) */
- for (i = 0, n = arena->m_hash_size; i < n; i++)
- {
- while ((segment = arena->m_hash_table[i]) != 0)
- {
- /* pop from hash table */
- arena->m_hash_table[i] = segment->m_fnext, segment->m_fnext = segment->m_fprev = segment;
-
- /* coalesce w/ adjacent free segment(s) */
- rtl_arena_segment_coalesce (arena, segment);
-
- /* insert onto freelist */
- rtl_arena_freelist_insert (arena, segment);
- }
- }
- }
-
- /* cleanup hash table */
- if (arena->m_hash_table != arena->m_hash_table_0)
- {
- rtl_arena_free (
- gp_arena_arena,
- arena->m_hash_table,
- arena->m_hash_size * sizeof(rtl_arena_segment_type*));
-
- arena->m_hash_table = arena->m_hash_table_0;
- arena->m_hash_size = RTL_ARENA_HASH_SIZE;
- arena->m_hash_shift = highbit(arena->m_hash_size) - 1;
- }
-
- /* cleanup segment list */
- head = &(arena->m_segment_head);
- for (segment = head->m_snext; segment != head; segment = head->m_snext)
- {
- if (segment->m_type == RTL_ARENA_SEGMENT_TYPE_FREE)
- {
- /* remove from freelist */
- rtl_arena_freelist_remove (arena, segment);
- }
- else
- {
- /* can have only free and span segments here */
- OSL_ASSERT(segment->m_type == RTL_ARENA_SEGMENT_TYPE_SPAN);
- }
-
- /* remove from segment list */
- QUEUE_REMOVE_NAMED(segment, s);
-
- /* release segment descriptor */
- rtl_arena_segment_put (arena, &segment);
- }
-
- /* cleanup segment reserve list */
- head = &(arena->m_segment_reserve_head);
- for (segment = head->m_snext; segment != head; segment = head->m_snext)
- {
- /* remove from segment list */
- QUEUE_REMOVE_NAMED(segment, s);
- }
-
- /* cleanup segment reserve span(s) */
- head = &(arena->m_segment_reserve_span_head);
- for (segment = head->m_snext; segment != head; segment = head->m_snext)
- {
- /* can have only span segments here */
- OSL_ASSERT(segment->m_type == RTL_ARENA_SEGMENT_TYPE_SPAN);
-
- /* remove from segment list */
- QUEUE_REMOVE_NAMED(segment, s);
-
- /* return span to g_machdep_arena */
- rtl_machdep_free (gp_machdep_arena, (void*)(segment->m_addr), segment->m_size);
- }
-}
-
-/* ================================================================= *
- *
- * arena implementation.
- *
- * ================================================================= */
-
-extern void ensureArenaSingleton();
-
-/** rtl_arena_create()
- */
-rtl_arena_type *
-SAL_CALL rtl_arena_create (
- const char * name,
- sal_Size quantum,
- sal_Size quantum_cache_max,
- rtl_arena_type * source_arena,
- void * (SAL_CALL * source_alloc)(rtl_arena_type *, sal_Size *),
- void (SAL_CALL * source_free) (rtl_arena_type *, void *, sal_Size),
- int flags
-) SAL_THROW_EXTERN_C()
-{
- rtl_arena_type * result = 0;
- sal_Size size = sizeof(rtl_arena_type);
-
- (void) flags; /* unused */
-
-try_alloc:
- result = (rtl_arena_type*)rtl_arena_alloc (gp_arena_arena, &size);
- if (result != 0)
- {
- rtl_arena_type * arena = result;
- VALGRIND_CREATE_MEMPOOL(arena, 0, 0);
- rtl_arena_constructor (arena);
-
- if (!source_arena)
- {
- OSL_ASSERT(gp_default_arena != 0);
- source_arena = gp_default_arena;
- }
-
- result = rtl_arena_activate (
- arena,
- name,
- quantum,
- quantum_cache_max,
- source_arena,
- source_alloc,
- source_free
- );
-
- if (result == 0)
- {
- rtl_arena_deactivate (arena);
- rtl_arena_destructor (arena);
- VALGRIND_DESTROY_MEMPOOL(arena);
- rtl_arena_free (gp_arena_arena, arena, size);
- }
- }
- else if (gp_arena_arena == 0)
- {
- ensureArenaSingleton();
- if (gp_arena_arena)
- {
- /* try again */
- goto try_alloc;
- }
- }
- return (result);
-}
-
-/** rtl_arena_destroy()
- */
-void
-SAL_CALL rtl_arena_destroy (
- rtl_arena_type * arena
-)
-{
- if (arena != 0)
- {
- rtl_arena_deactivate (arena);
- rtl_arena_destructor (arena);
- VALGRIND_DESTROY_MEMPOOL(arena);
- rtl_arena_free (gp_arena_arena, arena, sizeof(rtl_arena_type));
- }
-}
-
-/** rtl_arena_alloc()
- */
-void *
-SAL_CALL rtl_arena_alloc (
- rtl_arena_type * arena,
- sal_Size * pSize
-) SAL_THROW_EXTERN_C()
-{
- void * addr = 0;
-
- if ((arena != 0) && (pSize != 0))
- {
- sal_Size size = RTL_MEMORY_ALIGN((*pSize), arena->m_quantum);
- if (size > arena->m_qcache_max)
- {
- /* allocate from segment list */
- rtl_arena_segment_type *segment = 0;
-
- RTL_MEMORY_LOCK_ACQUIRE(&(arena->m_lock));
- if (rtl_arena_segment_alloc (arena, size, &segment) ||
- rtl_arena_segment_create(arena, size, &segment) )
- {
- /* shrink to fit */
- sal_Size oversize;
-
- /* mark segment used */
- OSL_ASSERT(segment->m_type == RTL_ARENA_SEGMENT_TYPE_FREE);
- segment->m_type = RTL_ARENA_SEGMENT_TYPE_USED;
-
- /* resize */
- OSL_ASSERT(segment->m_size >= size);
- oversize = segment->m_size - size;
- if (oversize >= SAL_MAX(arena->m_quantum, arena->m_qcache_max))
- {
- rtl_arena_segment_type * remainder = 0;
- rtl_arena_segment_get (arena, &remainder);
- if (remainder != 0)
- {
- segment->m_size = size;
-
- remainder->m_addr = segment->m_addr + segment->m_size;
- remainder->m_size = oversize;
- remainder->m_type = RTL_ARENA_SEGMENT_TYPE_FREE;
- QUEUE_INSERT_HEAD_NAMED(segment, remainder, s);
-
- rtl_arena_freelist_insert (arena, remainder);
- }
- }
-
- rtl_arena_hash_insert (arena, segment);
-
- /* DEBUG ONLY: mark allocated, undefined */
- OSL_DEBUG_ONLY(memset((void*)(segment->m_addr), 0x77777777, segment->m_size));
- VALGRIND_MEMPOOL_ALLOC(arena, segment->m_addr, segment->m_size);
-
- (*pSize) = segment->m_size;
- addr = (void*)(segment->m_addr);
- }
- RTL_MEMORY_LOCK_RELEASE(&(arena->m_lock));
- }
- else if (size > 0)
- {
- /* allocate from quantum cache(s) */
- int index = (size >> arena->m_quantum_shift) - 1;
- OSL_ASSERT (arena->m_qcache_ptr[index] != 0);
-
- addr = rtl_cache_alloc (arena->m_qcache_ptr[index]);
- if (addr != 0)
- (*pSize) = size;
- }
- }
- return (addr);
-}
-
-/** rtl_arena_free()
- */
-void
-SAL_CALL rtl_arena_free (
- rtl_arena_type * arena,
- void * addr,
- sal_Size size
-) SAL_THROW_EXTERN_C()
-{
- if (arena != 0)
- {
- size = RTL_MEMORY_ALIGN(size, arena->m_quantum);
- if (size > arena->m_qcache_max)
- {
- /* free to segment list */
- rtl_arena_segment_type * segment;
-
- RTL_MEMORY_LOCK_ACQUIRE(&(arena->m_lock));
-
- segment = rtl_arena_hash_remove (arena, (sal_uIntPtr)(addr), size);
- if (segment != 0)
- {
- rtl_arena_segment_type *next, *prev;
-
- /* DEBUG ONLY: mark unallocated, undefined */
- VALGRIND_MEMPOOL_FREE(arena, segment->m_addr);
- /* OSL_DEBUG_ONLY() */ VALGRIND_MAKE_MEM_UNDEFINED(segment->m_addr, segment->m_size);
- OSL_DEBUG_ONLY(memset((void*)(segment->m_addr), 0x33333333, segment->m_size));
-
- /* coalesce w/ adjacent free segment(s) */
- rtl_arena_segment_coalesce (arena, segment);
-
- /* determine (new) next and prev segment */
- next = segment->m_snext, prev = segment->m_sprev;
-
- /* entire span free when prev is a span, and next is either a span or a list head */
- if (((prev->m_type == RTL_ARENA_SEGMENT_TYPE_SPAN)) &&
- ((next->m_type == RTL_ARENA_SEGMENT_TYPE_SPAN) ||
- (next->m_type == RTL_ARENA_SEGMENT_TYPE_HEAD)) )
- {
- OSL_ASSERT((prev->m_addr == segment->m_addr) &&
- (prev->m_size == segment->m_size) );
-
- if (arena->m_source_free)
- {
- addr = (void*)(prev->m_addr);
- size = prev->m_size;
-
- /* remove from segment list */
- QUEUE_REMOVE_NAMED(segment, s);
-
- /* release segment descriptor */
- rtl_arena_segment_put (arena, &segment);
-
- /* remove from segment list */
- QUEUE_REMOVE_NAMED(prev, s);
-
- /* release (span) segment descriptor */
- rtl_arena_segment_put (arena, &prev);
-
- /* update stats, return span to source arena */
- arena->m_stats.m_mem_total -= size;
- RTL_MEMORY_LOCK_RELEASE(&(arena->m_lock));
-
- (arena->m_source_free)(arena->m_source_arena, addr, size);
- return;
- }
- }
-
- /* insert onto freelist */
- rtl_arena_freelist_insert (arena, segment);
- }
-
- RTL_MEMORY_LOCK_RELEASE(&(arena->m_lock));
- }
- else if (size > 0)
- {
- /* free to quantum cache(s) */
- int index = (size >> arena->m_quantum_shift) - 1;
- OSL_ASSERT (arena->m_qcache_ptr[index] != 0);
-
- rtl_cache_free (arena->m_qcache_ptr[index], addr);
- }
- }
-}
-
-/* ================================================================= *
- *
- * machdep internals.
- *
- * ================================================================= */
-
-#if defined(SAL_UNX)
-#include <sys/mman.h>
-#elif defined(SAL_W32)
-#define MAP_FAILED 0
-#endif /* SAL_UNX || SAL_W32 */
-
-/** rtl_machdep_alloc()
- */
-static void *
-SAL_CALL rtl_machdep_alloc (
- rtl_arena_type * pArena,
- sal_Size * pSize
-)
-{
- void * addr;
- sal_Size size = (*pSize);
-
- OSL_PRECOND(pArena == gp_machdep_arena, "rtl_machdep_alloc(): invalid argument");
-
-#if defined(SOLARIS) && defined(SPARC)
- /* see @ mmap(2) man pages */
- size += (pArena->m_quantum + pArena->m_quantum); /* "red-zone" pages */
- if (size > (4 << 20))
- size = RTL_MEMORY_P2ROUNDUP(size, (4 << 20));
- else if (size > (512 << 10))
- size = RTL_MEMORY_P2ROUNDUP(size, (512 << 10));
- else
- size = RTL_MEMORY_P2ROUNDUP(size, (64 << 10));
- size -= (pArena->m_quantum + pArena->m_quantum); /* "red-zone" pages */
-#else
- /* default allocation granularity */
- size = RTL_MEMORY_P2ROUNDUP(size, SAL_MAX(pArena->m_quantum, 64 << 10));
-#endif
-
-#if defined(SAL_UNX)
- addr = mmap (NULL, (size_t)(size), PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
-#elif defined(SAL_W32)
- addr = VirtualAlloc (NULL, (SIZE_T)(size), MEM_COMMIT, PAGE_READWRITE);
-#endif /* (SAL_UNX || SAL_W32) */
-
- if (addr != MAP_FAILED)
- {
- pArena->m_stats.m_alloc += 1;
- pArena->m_stats.m_mem_total += size;
- pArena->m_stats.m_mem_alloc += size;
-
- (*pSize) = size;
- return (addr);
- }
- return (NULL);
-}
-
-/** rtl_machdep_free()
- */
-static void
-SAL_CALL rtl_machdep_free (
- rtl_arena_type * pArena,
- void * pAddr,
- sal_Size nSize
-)
-{
- OSL_PRECOND(pArena == gp_machdep_arena, "rtl_machdep_free(): invalid argument");
-
- pArena->m_stats.m_free += 1;
- pArena->m_stats.m_mem_total -= nSize;
- pArena->m_stats.m_mem_alloc -= nSize;
-
-#if defined(SAL_UNX)
- (void) munmap(pAddr, nSize);
-#elif defined(SAL_W32)
- (void) VirtualFree ((LPVOID)(pAddr), (SIZE_T)(0), MEM_RELEASE);
-#endif /* (SAL_UNX || SAL_W32) */
-}
-
-/** rtl_machdep_pagesize()
- */
-static sal_Size
-rtl_machdep_pagesize (void)
-{
-#if defined(SAL_UNX)
-#if defined(FREEBSD) || defined(NETBSD) || defined(DRAGONFLY)
- return ((sal_Size)getpagesize());
-#else /* POSIX */
- return ((sal_Size)sysconf(_SC_PAGESIZE));
-#endif /* xBSD || POSIX */
-#elif defined(SAL_W32)
- SYSTEM_INFO info;
- GetSystemInfo (&info);
- return ((sal_Size)(info.dwPageSize));
-#endif /* (SAL_UNX || SAL_W32) */
-}
-
-/* ================================================================= *
- *
- * arena initialization.
- *
- * ================================================================= */
-
-void
-rtl_arena_init (void)
-{
- {
- /* list of arenas */
- RTL_MEMORY_LOCK_INIT(&(g_arena_list.m_lock));
- rtl_arena_constructor (&(g_arena_list.m_arena_head));
- }
- {
- /* machdep (pseudo) arena */
- static rtl_arena_type g_machdep_arena;
-
- OSL_ASSERT(gp_machdep_arena == 0);
- VALGRIND_CREATE_MEMPOOL(&g_machdep_arena, 0, 0);
- rtl_arena_constructor (&g_machdep_arena);
-
- gp_machdep_arena = rtl_arena_activate (
- &g_machdep_arena,
- "rtl_machdep_arena",
- rtl_machdep_pagesize(),
- 0, /* no quantum caching */
- 0, 0, 0 /* no source */
- );
- OSL_ASSERT(gp_machdep_arena != 0);
- }
- {
- /* default arena */
- static rtl_arena_type g_default_arena;
-
- OSL_ASSERT(gp_default_arena == 0);
- VALGRIND_CREATE_MEMPOOL(&g_default_arena, 0, 0);
- rtl_arena_constructor (&g_default_arena);
-
- gp_default_arena = rtl_arena_activate (
- &g_default_arena,
- "rtl_default_arena",
- rtl_machdep_pagesize(),
- 0, /* no quantum caching */
- gp_machdep_arena, /* source */
- rtl_machdep_alloc,
- rtl_machdep_free
- );
- OSL_ASSERT(gp_default_arena != 0);
- }
- {
- /* arena internal arena */
- static rtl_arena_type g_arena_arena;
-
- OSL_ASSERT(gp_arena_arena == 0);
- VALGRIND_CREATE_MEMPOOL(&g_arena_arena, 0, 0);
- rtl_arena_constructor (&g_arena_arena);
-
- gp_arena_arena = rtl_arena_activate (
- &g_arena_arena,
- "rtl_arena_internal_arena",
- 64, /* quantum */
- 0, /* no quantum caching */
- gp_default_arena, /* source */
- rtl_arena_alloc,
- rtl_arena_free
- );
- OSL_ASSERT(gp_arena_arena != 0);
- }
- OSL_TRACE("rtl_arena_init completed");
-}
-
-/* ================================================================= */
-
-void
-rtl_arena_fini (void)
-{
- if (gp_arena_arena != 0)
- {
- rtl_arena_type * arena, * head;
-
- RTL_MEMORY_LOCK_ACQUIRE(&(g_arena_list.m_lock));
- head = &(g_arena_list.m_arena_head);
-
- for (arena = head->m_arena_next; arena != head; arena = arena->m_arena_next)
- {
- OSL_TRACE(
- "rtl_arena_fini(\"%s\"): "
- "allocs: %"PRIu64", frees: %"PRIu64"; total: %lu, used: %lu",
- arena->m_name,
- arena->m_stats.m_alloc, arena->m_stats.m_free,
- arena->m_stats.m_mem_total, arena->m_stats.m_mem_alloc
- );
- }
- RTL_MEMORY_LOCK_RELEASE(&(g_arena_list.m_lock));
- }
- OSL_TRACE("rtl_arena_fini completed");
-}
-
-/* ================================================================= */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/alloc_arena.h b/sal/rtl/source/alloc_arena.h
deleted file mode 100644
index f06e8b5df..000000000
--- a/sal/rtl/source/alloc_arena.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_ALLOC_ARENA_H
-#define INCLUDED_RTL_ALLOC_ARENA_H
-
-#include "sal/types.h"
-#include "rtl/alloc.h"
-#include "alloc_impl.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** rtl_arena_stat_type
- * @internal
- */
-typedef struct rtl_arena_stat_st rtl_arena_stat_type;
-struct rtl_arena_stat_st
-{
- sal_uInt64 m_alloc;
- sal_uInt64 m_free;
-
- sal_Size m_mem_total;
- sal_Size m_mem_alloc;
-};
-
-
-/** rtl_arena_segment_type
- * @internal
- */
-#define RTL_ARENA_SEGMENT_TYPE_HEAD ((sal_Size)(0x01))
-#define RTL_ARENA_SEGMENT_TYPE_SPAN ((sal_Size)(0x02))
-#define RTL_ARENA_SEGMENT_TYPE_FREE ((sal_Size)(0x04))
-#define RTL_ARENA_SEGMENT_TYPE_USED ((sal_Size)(0x08))
-
-typedef struct rtl_arena_segment_st rtl_arena_segment_type;
-struct rtl_arena_segment_st
-{
- /* segment list linkage */
- rtl_arena_segment_type * m_snext;
- rtl_arena_segment_type * m_sprev;
-
- /* free/used list linkage */
- rtl_arena_segment_type * m_fnext;
- rtl_arena_segment_type * m_fprev;
-
- /* segment description */
- sal_uIntPtr m_addr;
- sal_Size m_size;
- sal_Size m_type;
-};
-
-
-/** rtl_arena_type
- * @internal
- */
-#define RTL_ARENA_FREELIST_SIZE (sizeof(void*) * 8)
-#define RTL_ARENA_HASH_SIZE 64
-
-#define RTL_ARENA_FLAG_RESCALE 1 /* within hash rescale operation */
-
-struct rtl_arena_st
-{
- /* linkage */
- rtl_arena_type * m_arena_next;
- rtl_arena_type * m_arena_prev;
-
- /* properties */
- char m_name[RTL_ARENA_NAME_LENGTH + 1];
- long m_flags;
-
- rtl_memory_lock_type m_lock;
- rtl_arena_stat_type m_stats;
-
- rtl_arena_type * m_source_arena;
- void * (SAL_CALL * m_source_alloc)(rtl_arena_type *, sal_Size *);
- void (SAL_CALL * m_source_free) (rtl_arena_type *, void *, sal_Size);
-
- sal_Size m_quantum;
- sal_Size m_quantum_shift; /* log2(m_quantum) */
-
- rtl_arena_segment_type m_segment_reserve_span_head;
- rtl_arena_segment_type m_segment_reserve_head;
-
- rtl_arena_segment_type m_segment_head;
-
- rtl_arena_segment_type m_freelist_head[RTL_ARENA_FREELIST_SIZE];
- sal_Size m_freelist_bitmap;
-
- rtl_arena_segment_type ** m_hash_table;
- rtl_arena_segment_type * m_hash_table_0[RTL_ARENA_HASH_SIZE];
- sal_Size m_hash_size; /* m_hash_mask + 1 */
- sal_Size m_hash_shift; /* log2(m_hash_size) */
-
- sal_Size m_qcache_max;
- rtl_cache_type ** m_qcache_ptr;
-};
-
-
-/** gp_default_arena
- * default arena with pagesize quantum
- *
- * @internal
- */
-extern rtl_arena_type * gp_default_arena;
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* INCLUDED_RTL_ALLOC_ARENA_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/alloc_cache.c b/sal/rtl/source/alloc_cache.c
deleted file mode 100644
index dfd86a39a..000000000
--- a/sal/rtl/source/alloc_cache.c
+++ /dev/null
@@ -1,1739 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "alloc_cache.h"
-#include "alloc_impl.h"
-#include "alloc_arena.h"
-#include "internal/once.h"
-#include "sal/macros.h"
-#include "osl/diagnose.h"
-
-#ifndef INCLUDED_STRING_H
-#include <string.h>
-#endif
-
-#ifndef INCLUDED_STDIO_H
-#include <stdio.h>
-#endif
-
-/* ================================================================= *
- *
- * cache internals.
- *
- * ================================================================= */
-
-/** g_cache_list
- * @internal
- */
-struct rtl_cache_list_st
-{
- rtl_memory_lock_type m_lock;
- rtl_cache_type m_cache_head;
-
-#if defined(SAL_UNX)
- pthread_t m_update_thread;
- pthread_cond_t m_update_cond;
-#elif defined(SAL_W32)
- HANDLE m_update_thread;
- HANDLE m_update_cond;
-#endif /* SAL_UNX || SAL_W32 */
- int m_update_done;
-};
-
-static struct rtl_cache_list_st g_cache_list;
-
-
-/** gp_cache_arena
- * provided for cache_type allocations, and hash_table resizing.
- *
- * @internal
- */
-static rtl_arena_type * gp_cache_arena = 0;
-
-
-/** gp_cache_magazine_cache
- * @internal
- */
-static rtl_cache_type * gp_cache_magazine_cache = 0;
-
-
-/** gp_cache_slab_cache
- * @internal
- */
-static rtl_cache_type * gp_cache_slab_cache = 0;
-
-
-/** gp_cache_bufctl_cache
- * @internal
- */
-static rtl_cache_type * gp_cache_bufctl_cache = 0;
-
-
-/* ================================================================= */
-
-/** RTL_CACHE_HASH_INDEX()
- */
-#define RTL_CACHE_HASH_INDEX_IMPL(a, s, q, m) \
- ((((a) + ((a) >> (s)) + ((a) >> ((s) << 1))) >> (q)) & (m))
-
-#define RTL_CACHE_HASH_INDEX(cache, addr) \
- RTL_CACHE_HASH_INDEX_IMPL((addr), (cache)->m_hash_shift, (cache)->m_type_shift, ((cache)->m_hash_size - 1))
-
-
-/** rtl_cache_hash_rescale()
- */
-static void
-rtl_cache_hash_rescale (
- rtl_cache_type * cache,
- sal_Size new_size
-)
-{
- rtl_cache_bufctl_type ** new_table;
- sal_Size new_bytes;
-
- new_bytes = new_size * sizeof(rtl_cache_bufctl_type*);
- new_table = (rtl_cache_bufctl_type**)rtl_arena_alloc(gp_cache_arena, &new_bytes);
-
- if (new_table != 0)
- {
- rtl_cache_bufctl_type ** old_table;
- sal_Size old_size, i;
-
- memset (new_table, 0, new_bytes);
-
- RTL_MEMORY_LOCK_ACQUIRE(&(cache->m_slab_lock));
-
- old_table = cache->m_hash_table;
- old_size = cache->m_hash_size;
-
- OSL_TRACE(
- "rtl_cache_hash_rescale(\"%s\"): "
- "nbuf: % " PRIu64 " (ave: %" PRIu64 "), frees: %" PRIu64 " "
- "[old_size: %lu, new_size: %lu]",
- cache->m_name,
- cache->m_slab_stats.m_alloc - cache->m_slab_stats.m_free,
- (cache->m_slab_stats.m_alloc - cache->m_slab_stats.m_free) >> cache->m_hash_shift,
- cache->m_slab_stats.m_free,
- old_size, new_size);
-
- cache->m_hash_table = new_table;
- cache->m_hash_size = new_size;
- cache->m_hash_shift = highbit(cache->m_hash_size) - 1;
-
- for (i = 0; i < old_size; i++)
- {
- rtl_cache_bufctl_type * curr = old_table[i];
- while (curr != 0)
- {
- rtl_cache_bufctl_type * next = curr->m_next;
- rtl_cache_bufctl_type ** head;
-
- head = &(cache->m_hash_table[RTL_CACHE_HASH_INDEX(cache, curr->m_addr)]);
- curr->m_next = (*head);
- (*head) = curr;
-
- curr = next;
- }
- old_table[i] = 0;
- }
-
- RTL_MEMORY_LOCK_RELEASE(&(cache->m_slab_lock));
-
- if (old_table != cache->m_hash_table_0)
- {
- sal_Size old_bytes = old_size * sizeof(rtl_cache_bufctl_type*);
- rtl_arena_free (gp_cache_arena, old_table, old_bytes);
- }
- }
-}
-
-/** rtl_cache_hash_insert()
- */
-static RTL_MEMORY_INLINE sal_uIntPtr
-rtl_cache_hash_insert (
- rtl_cache_type * cache,
- rtl_cache_bufctl_type * bufctl
-)
-{
- rtl_cache_bufctl_type ** ppHead;
-
- ppHead = &(cache->m_hash_table[RTL_CACHE_HASH_INDEX(cache, bufctl->m_addr)]);
-
- bufctl->m_next = (*ppHead);
- (*ppHead) = bufctl;
-
- return (bufctl->m_addr);
-}
-
-#if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-#pragma inline(rtl_cache_hash_insert)
-#endif /* __SUNPRO_C */
-
-
-/** rtl_cache_hash_remove()
- */
-static rtl_cache_bufctl_type *
-rtl_cache_hash_remove (
- rtl_cache_type * cache,
- sal_uIntPtr addr
-)
-{
- rtl_cache_bufctl_type ** ppHead;
- rtl_cache_bufctl_type * bufctl;
- sal_Size lookups = 0;
-
- ppHead = &(cache->m_hash_table[RTL_CACHE_HASH_INDEX(cache, addr)]);
- while ((bufctl = *ppHead) != 0)
- {
- if (bufctl->m_addr == addr)
- {
- *ppHead = bufctl->m_next, bufctl->m_next = 0;
- break;
- }
-
- lookups += 1;
- ppHead = &(bufctl->m_next);
- }
-
- OSL_ASSERT (bufctl != 0); /* bad free */
-
- if (lookups > 1)
- {
- sal_Size nbuf = (sal_Size)(cache->m_slab_stats.m_alloc - cache->m_slab_stats.m_free);
- if (nbuf > 4 * cache->m_hash_size)
- {
- if (!(cache->m_features & RTL_CACHE_FEATURE_RESCALE))
- {
- sal_Size ave = nbuf >> cache->m_hash_shift;
- sal_Size new_size = cache->m_hash_size << (highbit(ave) - 1);
-
- cache->m_features |= RTL_CACHE_FEATURE_RESCALE;
- RTL_MEMORY_LOCK_RELEASE(&(cache->m_slab_lock));
- rtl_cache_hash_rescale (cache, new_size);
- RTL_MEMORY_LOCK_ACQUIRE(&(cache->m_slab_lock));
- cache->m_features &= ~RTL_CACHE_FEATURE_RESCALE;
- }
- }
- }
-
- return (bufctl);
-}
-
-/* ================================================================= */
-
-/** RTL_CACHE_SLAB()
- */
-#define RTL_CACHE_SLAB(addr, size) \
- (((rtl_cache_slab_type*)(RTL_MEMORY_P2END((sal_uIntPtr)(addr), (size)))) - 1)
-
-
-/** rtl_cache_slab_constructor()
- */
-static int
-rtl_cache_slab_constructor (void * obj, void * arg)
-{
- rtl_cache_slab_type * slab = (rtl_cache_slab_type*)(obj);
-
- (void) arg; /* unused */
-
- QUEUE_START_NAMED(slab, slab_);
- slab->m_ntypes = 0;
-
- return (1);
-}
-
-
-/** rtl_cache_slab_destructor()
- */
-static void
-rtl_cache_slab_destructor (void * obj, void * arg)
-{
-#if OSL_DEBUG_LEVEL == 0
- (void) obj; /* unused */
-#else /* OSL_DEBUG_LEVEL */
- rtl_cache_slab_type * slab = (rtl_cache_slab_type*)(obj);
-
- /* assure removed from queue(s) */
- OSL_ASSERT(QUEUE_STARTED_NAMED(slab, slab_));
-
- /* assure no longer referenced */
- OSL_ASSERT(slab->m_ntypes == 0);
-#endif /* OSL_DEBUG_LEVEL */
-
- (void) arg; /* unused */
-}
-
-
-/** rtl_cache_slab_create()
- *
- * @precond cache->m_slab_lock released.
- */
-static rtl_cache_slab_type *
-rtl_cache_slab_create (
- rtl_cache_type * cache
-)
-{
- rtl_cache_slab_type * slab = 0;
- void * addr;
- sal_Size size;
-
- size = cache->m_slab_size;
- addr = rtl_arena_alloc (cache->m_source, &size);
- if (addr != 0)
- {
- OSL_ASSERT(size >= cache->m_slab_size);
-
- if (cache->m_features & RTL_CACHE_FEATURE_HASH)
- {
- /* allocate slab struct from slab cache */
- OSL_ASSERT (cache != gp_cache_slab_cache);
- slab = (rtl_cache_slab_type*)rtl_cache_alloc (gp_cache_slab_cache);
- }
- else
- {
- /* construct embedded slab struct */
- slab = RTL_CACHE_SLAB(addr, cache->m_slab_size);
- (void) rtl_cache_slab_constructor (slab, 0);
- }
- if (slab != 0)
- {
- slab->m_data = (sal_uIntPtr)(addr);
-
- /* dynamic freelist initialization */
- slab->m_bp = slab->m_data;
- slab->m_sp = 0;
- }
- else
- {
- rtl_arena_free (cache->m_source, addr, size);
- }
- }
- return (slab);
-}
-
-
-/** rtl_cache_slab_destroy()
- *
- * @precond cache->m_slab_lock released.
- */
-static void
-rtl_cache_slab_destroy (
- rtl_cache_type * cache,
- rtl_cache_slab_type * slab
-)
-{
- void * addr = (void*)(slab->m_data);
- sal_Size refcnt = slab->m_ntypes; slab->m_ntypes = 0;
-
- if (cache->m_features & RTL_CACHE_FEATURE_HASH)
- {
- /* cleanup bufctl(s) for free buffer(s) */
- sal_Size ntypes = (slab->m_bp - slab->m_data) / cache->m_type_size;
- for (ntypes -= refcnt; slab->m_sp != 0; ntypes--)
- {
- rtl_cache_bufctl_type * bufctl = slab->m_sp;
-
- /* pop from freelist */
- slab->m_sp = bufctl->m_next, bufctl->m_next = 0;
-
- /* return bufctl struct to bufctl cache */
- rtl_cache_free (gp_cache_bufctl_cache, bufctl);
- }
- OSL_ASSERT(ntypes == 0);
-
- /* return slab struct to slab cache */
- rtl_cache_free (gp_cache_slab_cache, slab);
- }
- else
- {
- /* destruct embedded slab struct */
- rtl_cache_slab_destructor (slab, 0);
- }
-
- if ((refcnt == 0) || (cache->m_features & RTL_CACHE_FEATURE_BULKDESTROY))
- {
- /* free memory */
- rtl_arena_free (cache->m_source, addr, cache->m_slab_size);
- }
-}
-
-
-/** rtl_cache_slab_populate()
- *
- * @precond cache->m_slab_lock acquired.
- */
-static int
-rtl_cache_slab_populate (
- rtl_cache_type * cache
-)
-{
- rtl_cache_slab_type * slab;
-
- RTL_MEMORY_LOCK_RELEASE(&(cache->m_slab_lock));
- slab = rtl_cache_slab_create (cache);
- RTL_MEMORY_LOCK_ACQUIRE(&(cache->m_slab_lock));
- if (slab != 0)
- {
- /* update buffer start addr w/ current color */
- slab->m_bp += cache->m_ncolor;
-
- /* update color for next slab */
- cache->m_ncolor += cache->m_type_align;
- if (cache->m_ncolor > cache->m_ncolor_max)
- cache->m_ncolor = 0;
-
- /* update stats */
- cache->m_slab_stats.m_mem_total += cache->m_slab_size;
-
- /* insert onto 'free' queue */
- QUEUE_INSERT_HEAD_NAMED(&(cache->m_free_head), slab, slab_);
- }
- return (slab != 0);
-}
-
-/* ================================================================= */
-
-/** rtl_cache_slab_alloc()
- *
- * Allocate a buffer from slab layer; used by magazine layer.
- */
-static void *
-rtl_cache_slab_alloc (
- rtl_cache_type * cache
-)
-{
- void * addr = 0;
- rtl_cache_slab_type * head;
-
- RTL_MEMORY_LOCK_ACQUIRE(&(cache->m_slab_lock));
-
- head = &(cache->m_free_head);
- if ((head->m_slab_next != head) || rtl_cache_slab_populate (cache))
- {
- rtl_cache_slab_type * slab;
- rtl_cache_bufctl_type * bufctl;
-
- slab = head->m_slab_next;
- OSL_ASSERT(slab->m_ntypes < cache->m_ntypes);
-
- if (slab->m_sp == 0)
- {
- /* initialize bufctl w/ current 'slab->m_bp' */
- OSL_ASSERT (slab->m_bp < slab->m_data + cache->m_ntypes * cache->m_type_size + cache->m_ncolor_max);
- if (cache->m_features & RTL_CACHE_FEATURE_HASH)
- {
- /* allocate bufctl */
- OSL_ASSERT (cache != gp_cache_bufctl_cache);
- bufctl = (rtl_cache_bufctl_type*)rtl_cache_alloc (gp_cache_bufctl_cache);
- if (bufctl == 0)
- {
- /* out of memory */
- RTL_MEMORY_LOCK_RELEASE(&(cache->m_slab_lock));
- return (0);
- }
-
- bufctl->m_addr = slab->m_bp;
- bufctl->m_slab = (sal_uIntPtr)(slab);
- }
- else
- {
- /* embedded bufctl */
- bufctl = (rtl_cache_bufctl_type*)(slab->m_bp);
- }
- bufctl->m_next = 0;
-
- /* update 'slab->m_bp' to next free buffer */
- slab->m_bp += cache->m_type_size;
-
- /* assign bufctl to freelist */
- slab->m_sp = bufctl;
- }
-
- /* pop front */
- bufctl = slab->m_sp;
- slab->m_sp = bufctl->m_next;
-
- /* increment usage, check for full slab */
- if ((slab->m_ntypes += 1) == cache->m_ntypes)
- {
- /* remove from 'free' queue */
- QUEUE_REMOVE_NAMED(slab, slab_);
-
- /* insert onto 'used' queue (tail) */
- QUEUE_INSERT_TAIL_NAMED(&(cache->m_used_head), slab, slab_);
- }
-
- /* update stats */
- cache->m_slab_stats.m_alloc += 1;
- cache->m_slab_stats.m_mem_alloc += cache->m_type_size;
-
- if (cache->m_features & RTL_CACHE_FEATURE_HASH)
- addr = (void*)rtl_cache_hash_insert (cache, bufctl);
- else
- addr = bufctl;
-
- /* DEBUG ONLY: mark allocated, undefined */
- OSL_DEBUG_ONLY(memset(addr, 0x77777777, cache->m_type_size));
- VALGRIND_MEMPOOL_ALLOC(cache, addr, cache->m_type_size);
- }
-
- RTL_MEMORY_LOCK_RELEASE(&(cache->m_slab_lock));
- return (addr);
-}
-
-
-/** rtl_cache_slab_free()
- *
- * Return a buffer to slab layer; used by magazine layer.
- */
-static void
-rtl_cache_slab_free (
- rtl_cache_type * cache,
- void * addr
-)
-{
- rtl_cache_bufctl_type * bufctl;
- rtl_cache_slab_type * slab;
-
- RTL_MEMORY_LOCK_ACQUIRE(&(cache->m_slab_lock));
-
- /* DEBUG ONLY: mark unallocated, undefined */
- VALGRIND_MEMPOOL_FREE(cache, addr);
- /* OSL_DEBUG_ONLY() */ VALGRIND_MAKE_MEM_UNDEFINED(addr, cache->m_type_size);
- OSL_DEBUG_ONLY(memset(addr, 0x33333333, cache->m_type_size));
-
- /* determine slab from addr */
- if (cache->m_features & RTL_CACHE_FEATURE_HASH)
- {
- bufctl = rtl_cache_hash_remove (cache, (sal_uIntPtr)(addr));
- slab = (bufctl != 0) ? (rtl_cache_slab_type*)(bufctl->m_slab) : 0;
- }
- else
- {
- /* embedded slab struct */
- bufctl = (rtl_cache_bufctl_type*)(addr);
- slab = RTL_CACHE_SLAB(addr, cache->m_slab_size);
- }
-
- if (slab != 0)
- {
- /* check for full slab */
- if (slab->m_ntypes == cache->m_ntypes)
- {
- /* remove from 'used' queue */
- QUEUE_REMOVE_NAMED(slab, slab_);
-
- /* insert onto 'free' queue (head) */
- QUEUE_INSERT_HEAD_NAMED(&(cache->m_free_head), slab, slab_);
- }
-
- /* push front */
- bufctl->m_next = slab->m_sp;
- slab->m_sp = bufctl;
-
- /* update stats */
- cache->m_slab_stats.m_free += 1;
- cache->m_slab_stats.m_mem_alloc -= cache->m_type_size;
-
- /* decrement usage, check for empty slab */
- if ((slab->m_ntypes -= 1) == 0)
- {
- /* remove from 'free' queue */
- QUEUE_REMOVE_NAMED(slab, slab_);
-
- /* update stats */
- cache->m_slab_stats.m_mem_total -= cache->m_slab_size;
-
- /* free 'empty' slab */
- RTL_MEMORY_LOCK_RELEASE(&(cache->m_slab_lock));
- rtl_cache_slab_destroy (cache, slab);
- return;
- }
- }
-
- RTL_MEMORY_LOCK_RELEASE(&(cache->m_slab_lock));
-}
-
-/* ================================================================= */
-
-/** rtl_cache_magazine_constructor()
- */
-static int
-rtl_cache_magazine_constructor (void * obj, void * arg)
-{
- rtl_cache_magazine_type * mag = (rtl_cache_magazine_type*)(obj);
- /* @@@ sal_Size size = (sal_Size)(arg); @@@ */
-
- (void) arg; /* unused */
-
- mag->m_mag_next = 0;
- mag->m_mag_size = RTL_CACHE_MAGAZINE_SIZE;
- mag->m_mag_used = 0;
-
- return (1);
-}
-
-
-/** rtl_cache_magazine_destructor()
- */
-static void
-rtl_cache_magazine_destructor (void * obj, void * arg)
-{
-#if OSL_DEBUG_LEVEL == 0
- (void) obj; /* unused */
-#else /* OSL_DEBUG_LEVEL */
- rtl_cache_magazine_type * mag = (rtl_cache_magazine_type*)(obj);
-
- /* assure removed from queue(s) */
- OSL_ASSERT(mag->m_mag_next == 0);
-
- /* assure no longer referenced */
- OSL_ASSERT(mag->m_mag_used == 0);
-#endif /* OSL_DEBUG_LEVEL */
-
- (void) arg; /* unused */
-}
-
-
-/** rtl_cache_magazine_clear()
- */
-static void
-rtl_cache_magazine_clear (
- rtl_cache_type * cache,
- rtl_cache_magazine_type * mag
-)
-{
- for (; mag->m_mag_used > 0; --mag->m_mag_used)
- {
- void * obj = mag->m_objects[mag->m_mag_used - 1];
- mag->m_objects[mag->m_mag_used - 1] = 0;
-
- /* DEBUG ONLY: mark cached object allocated, undefined */
- VALGRIND_MEMPOOL_ALLOC(cache, obj, cache->m_type_size);
- if (cache->m_destructor != 0)
- {
- /* DEBUG ONLY: keep constructed object defined */
- VALGRIND_MAKE_MEM_DEFINED(obj, cache->m_type_size);
-
- /* destruct object */
- (cache->m_destructor)(obj, cache->m_userarg);
- }
-
- /* return buffer to slab layer */
- rtl_cache_slab_free (cache, obj);
- }
-}
-
-/* ================================================================= */
-
-/** rtl_cache_depot_enqueue()
- *
- * @precond cache->m_depot_lock acquired.
- */
-static RTL_MEMORY_INLINE void
-rtl_cache_depot_enqueue (
- rtl_cache_depot_type * depot,
- rtl_cache_magazine_type * mag
-)
-{
- /* enqueue empty magazine */
- mag->m_mag_next = depot->m_mag_next;
- depot->m_mag_next = mag;
-
- /* update depot stats */
- depot->m_mag_count++;
-}
-
-#if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-#pragma inline(rtl_cache_depot_enqueue)
-#endif /* __SUNPRO_C */
-
-
-/** rtl_cache_depot_dequeue()
- *
- * @precond cache->m_depot_lock acquired.
- */
-static RTL_MEMORY_INLINE rtl_cache_magazine_type *
-rtl_cache_depot_dequeue (
- rtl_cache_depot_type * depot
-)
-{
- rtl_cache_magazine_type * mag = 0;
- if (depot->m_mag_count > 0)
- {
- /* dequeue magazine */
- OSL_ASSERT(depot->m_mag_next != 0);
-
- mag = depot->m_mag_next;
- depot->m_mag_next = mag->m_mag_next;
- mag->m_mag_next = 0;
-
- /* update depot stats */
- depot->m_mag_count--;
- depot->m_curr_min = SAL_MIN(depot->m_curr_min, depot->m_mag_count);
- }
- return (mag);
-}
-
-#if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-#pragma inline(rtl_cache_depot_dequeue)
-#endif /* __SUNPRO_C */
-
-
-/** rtl_cache_depot_exchange_alloc()
- *
- * @precond cache->m_depot_lock acquired.
- */
-static RTL_MEMORY_INLINE rtl_cache_magazine_type *
-rtl_cache_depot_exchange_alloc (
- rtl_cache_type * cache,
- rtl_cache_magazine_type * empty
-)
-{
- rtl_cache_magazine_type * full;
-
- OSL_ASSERT((empty == 0) || (empty->m_mag_used == 0));
-
- /* dequeue full magazine */
- full = rtl_cache_depot_dequeue (&(cache->m_depot_full));
- if ((full != 0) && (empty != 0))
- {
- /* enqueue empty magazine */
- rtl_cache_depot_enqueue (&(cache->m_depot_empty), empty);
- }
-
- OSL_ASSERT((full == 0) || (full->m_mag_used > 0));
-
- return (full);
-}
-
-#if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-#pragma inline(rtl_cache_depot_exchange_alloc)
-#endif /* __SUNPRO_C */
-
-
-/** rtl_cache_depot_exchange_free()
- *
- * @precond cache->m_depot_lock acquired.
- */
-static RTL_MEMORY_INLINE rtl_cache_magazine_type *
-rtl_cache_depot_exchange_free (
- rtl_cache_type * cache,
- rtl_cache_magazine_type * full
-)
-{
- rtl_cache_magazine_type * empty;
-
- OSL_ASSERT((full == 0) || (full->m_mag_used > 0));
-
- /* dequeue empty magazine */
- empty = rtl_cache_depot_dequeue (&(cache->m_depot_empty));
- if ((empty != 0) && (full != 0))
- {
- /* enqueue full magazine */
- rtl_cache_depot_enqueue (&(cache->m_depot_full), full);
- }
-
- OSL_ASSERT((empty == 0) || (empty->m_mag_used == 0));
-
- return (empty);
-}
-
-#if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-#pragma inline(rtl_cache_depot_exchange_free)
-#endif /* __SUNPRO_C */
-
-
-/** rtl_cache_depot_populate()
- *
- * @precond cache->m_depot_lock acquired.
- */
-static int
-rtl_cache_depot_populate (
- rtl_cache_type * cache
-)
-{
- rtl_cache_magazine_type * empty = 0;
-
- if (cache->m_magazine_cache != 0)
- {
- /* allocate new empty magazine */
- RTL_MEMORY_LOCK_RELEASE(&(cache->m_depot_lock));
- empty = (rtl_cache_magazine_type*)rtl_cache_alloc (cache->m_magazine_cache);
- RTL_MEMORY_LOCK_ACQUIRE(&(cache->m_depot_lock));
- if (empty != 0)
- {
- /* enqueue (new) empty magazine */
- rtl_cache_depot_enqueue (&(cache->m_depot_empty), empty);
- }
- }
- return (empty != 0);
-}
-
-/* ================================================================= */
-
-/** rtl_cache_constructor()
- */
-static int
-rtl_cache_constructor (void * obj)
-{
- rtl_cache_type * cache = (rtl_cache_type*)(obj);
-
- memset (cache, 0, sizeof(rtl_cache_type));
-
- /* linkage */
- QUEUE_START_NAMED(cache, cache_);
-
- /* slab layer */
- (void)RTL_MEMORY_LOCK_INIT(&(cache->m_slab_lock));
-
- QUEUE_START_NAMED(&(cache->m_free_head), slab_);
- QUEUE_START_NAMED(&(cache->m_used_head), slab_);
-
- cache->m_hash_table = cache->m_hash_table_0;
- cache->m_hash_size = RTL_CACHE_HASH_SIZE;
- cache->m_hash_shift = highbit(cache->m_hash_size) - 1;
-
- /* depot layer */
- (void)RTL_MEMORY_LOCK_INIT(&(cache->m_depot_lock));
-
- return (1);
-}
-
-/** rtl_cache_destructor()
- */
-static void
-rtl_cache_destructor (void * obj)
-{
- rtl_cache_type * cache = (rtl_cache_type*)(obj);
-
- /* linkage */
- OSL_ASSERT(QUEUE_STARTED_NAMED(cache, cache_));
-
- /* slab layer */
- (void)RTL_MEMORY_LOCK_DESTROY(&(cache->m_slab_lock));
-
- OSL_ASSERT(QUEUE_STARTED_NAMED(&(cache->m_free_head), slab_));
- OSL_ASSERT(QUEUE_STARTED_NAMED(&(cache->m_used_head), slab_));
-
- OSL_ASSERT(cache->m_hash_table == cache->m_hash_table_0);
- OSL_ASSERT(cache->m_hash_size == RTL_CACHE_HASH_SIZE);
- OSL_ASSERT(cache->m_hash_shift == (sal_Size)(highbit(cache->m_hash_size) - 1));
-
- /* depot layer */
- (void)RTL_MEMORY_LOCK_DESTROY(&(cache->m_depot_lock));
-}
-
-/* ================================================================= */
-
-/** rtl_cache_activate()
- */
-static rtl_cache_type *
-rtl_cache_activate (
- rtl_cache_type * cache,
- const char * name,
- size_t objsize,
- size_t objalign,
- int (SAL_CALL * constructor)(void * obj, void * userarg),
- void (SAL_CALL * destructor) (void * obj, void * userarg),
- void (SAL_CALL * reclaim) (void * userarg),
- void * userarg,
- rtl_arena_type * source,
- int flags
-)
-{
- OSL_ASSERT(cache != 0);
- if (cache != 0)
- {
- sal_Size slabsize;
-
- snprintf (cache->m_name, sizeof(cache->m_name), "%s", name);
-
- /* ensure minimum size (embedded bufctl linkage) */
- objsize = SAL_MAX(objsize, sizeof(rtl_cache_bufctl_type*));
-
- if (objalign == 0)
- {
- /* determine default alignment */
- if (objsize >= RTL_MEMORY_ALIGNMENT_8)
- objalign = RTL_MEMORY_ALIGNMENT_8;
- else
- objalign = RTL_MEMORY_ALIGNMENT_4;
- }
- else
- {
- /* ensure minimum alignment */
- objalign = SAL_MAX(objalign, RTL_MEMORY_ALIGNMENT_4);
- }
- OSL_ASSERT(RTL_MEMORY_ISP2(objalign));
-
- cache->m_type_size = objsize = RTL_MEMORY_P2ROUNDUP(objsize, objalign);
- cache->m_type_align = objalign;
- cache->m_type_shift = highbit(cache->m_type_size) - 1;
-
- cache->m_constructor = constructor;
- cache->m_destructor = destructor;
- cache->m_reclaim = reclaim;
- cache->m_userarg = userarg;
-
- /* slab layer */
- cache->m_source = source;
-
- slabsize = source->m_quantum; /* minimum slab size */
- if (flags & RTL_CACHE_FLAG_QUANTUMCACHE)
- {
- /* next power of 2 above 3 * qcache_max */
- slabsize = SAL_MAX(slabsize, (1UL << highbit(3 * source->m_qcache_max)));
- }
- else
- {
- /* waste at most 1/8 of slab */
- slabsize = SAL_MAX(slabsize, cache->m_type_size * 8);
- }
-
- slabsize = RTL_MEMORY_P2ROUNDUP(slabsize, source->m_quantum);
- if (!RTL_MEMORY_ISP2(slabsize))
- slabsize = 1UL << highbit(slabsize);
- cache->m_slab_size = slabsize;
-
- if (cache->m_slab_size > source->m_quantum)
- {
- OSL_ASSERT(gp_cache_slab_cache != 0);
- OSL_ASSERT(gp_cache_bufctl_cache != 0);
-
- cache->m_features |= RTL_CACHE_FEATURE_HASH;
- cache->m_ntypes = cache->m_slab_size / cache->m_type_size;
- cache->m_ncolor_max = cache->m_slab_size % cache->m_type_size;
- }
- else
- {
- /* embedded slab struct */
- cache->m_ntypes = (cache->m_slab_size - sizeof(rtl_cache_slab_type)) / cache->m_type_size;
- cache->m_ncolor_max = (cache->m_slab_size - sizeof(rtl_cache_slab_type)) % cache->m_type_size;
- }
-
- OSL_ASSERT(cache->m_ntypes > 0);
- cache->m_ncolor = 0;
-
- if (flags & RTL_CACHE_FLAG_BULKDESTROY)
- {
- /* allow bulk slab delete upon cache deactivation */
- cache->m_features |= RTL_CACHE_FEATURE_BULKDESTROY;
- }
-
- /* magazine layer */
- if (!(flags & RTL_CACHE_FLAG_NOMAGAZINE))
- {
- OSL_ASSERT(gp_cache_magazine_cache != 0);
- cache->m_magazine_cache = gp_cache_magazine_cache;
- }
-
- /* insert into cache list */
- RTL_MEMORY_LOCK_ACQUIRE(&(g_cache_list.m_lock));
- QUEUE_INSERT_TAIL_NAMED(&(g_cache_list.m_cache_head), cache, cache_);
- RTL_MEMORY_LOCK_RELEASE(&(g_cache_list.m_lock));
- }
- return (cache);
-}
-
-/** rtl_cache_deactivate()
- */
-static void
-rtl_cache_deactivate (
- rtl_cache_type * cache
-)
-{
- int active = 1;
-
- /* remove from cache list */
- RTL_MEMORY_LOCK_ACQUIRE(&(g_cache_list.m_lock));
- active = QUEUE_STARTED_NAMED(cache, cache_) == 0;
- QUEUE_REMOVE_NAMED(cache, cache_);
- RTL_MEMORY_LOCK_RELEASE(&(g_cache_list.m_lock));
-
- OSL_PRECOND(active, "rtl_cache_deactivate(): orphaned cache.");
- (void)active;
-
- /* cleanup magazine layer */
- if (cache->m_magazine_cache != 0)
- {
- rtl_cache_type * mag_cache;
- rtl_cache_magazine_type * mag;
-
- /* prevent recursion */
- mag_cache = cache->m_magazine_cache, cache->m_magazine_cache = 0;
-
- /* cleanup cpu layer */
- if ((mag = cache->m_cpu_curr) != 0)
- {
- cache->m_cpu_curr = 0;
- rtl_cache_magazine_clear (cache, mag);
- rtl_cache_free (mag_cache, mag);
- }
- if ((mag = cache->m_cpu_prev) != 0)
- {
- cache->m_cpu_prev = 0;
- rtl_cache_magazine_clear (cache, mag);
- rtl_cache_free (mag_cache, mag);
- }
-
- /* cleanup depot layer */
- while ((mag = rtl_cache_depot_dequeue(&(cache->m_depot_full))) != 0)
- {
- rtl_cache_magazine_clear (cache, mag);
- rtl_cache_free (mag_cache, mag);
- }
- while ((mag = rtl_cache_depot_dequeue(&(cache->m_depot_empty))) != 0)
- {
- rtl_cache_magazine_clear (cache, mag);
- rtl_cache_free (mag_cache, mag);
- }
- }
-
- OSL_TRACE(
- "rtl_cache_deactivate(\"%s\"): "
- "[slab]: allocs: %"PRIu64", frees: %"PRIu64"; total: %lu, used: %lu; "
- "[cpu]: allocs: %"PRIu64", frees: %"PRIu64"; "
- "[total]: allocs: %"PRIu64", frees: %"PRIu64"",
- cache->m_name,
- cache->m_slab_stats.m_alloc, cache->m_slab_stats.m_free,
- cache->m_slab_stats.m_mem_total, cache->m_slab_stats.m_mem_alloc,
- cache->m_cpu_stats.m_alloc, cache->m_cpu_stats.m_free,
- cache->m_slab_stats.m_alloc + cache->m_cpu_stats.m_alloc,
- cache->m_slab_stats.m_free + cache->m_cpu_stats.m_free
- );
-
- /* cleanup slab layer */
- if (cache->m_slab_stats.m_alloc > cache->m_slab_stats.m_free)
- {
- OSL_TRACE(
- "rtl_cache_deactivate(\"%s\"): "
- "cleaning up %"PRIu64" leaked buffer(s) [%lu bytes] [%lu total]",
- cache->m_name,
- cache->m_slab_stats.m_alloc - cache->m_slab_stats.m_free,
- cache->m_slab_stats.m_mem_alloc, cache->m_slab_stats.m_mem_total
- );
-
- if (cache->m_features & RTL_CACHE_FEATURE_HASH)
- {
- /* cleanup bufctl(s) for leaking buffer(s) */
- sal_Size i, n = cache->m_hash_size;
- for (i = 0; i < n; i++)
- {
- rtl_cache_bufctl_type * bufctl;
- while ((bufctl = cache->m_hash_table[i]) != 0)
- {
- /* pop from hash table */
- cache->m_hash_table[i] = bufctl->m_next, bufctl->m_next = 0;
-
- /* return to bufctl cache */
- rtl_cache_free (gp_cache_bufctl_cache, bufctl);
- }
- }
- }
- {
- /* force cleanup of remaining slabs */
- rtl_cache_slab_type *head, *slab;
-
- head = &(cache->m_used_head);
- for (slab = head->m_slab_next; slab != head; slab = head->m_slab_next)
- {
- /* remove from 'used' queue */
- QUEUE_REMOVE_NAMED(slab, slab_);
-
- /* update stats */
- cache->m_slab_stats.m_mem_total -= cache->m_slab_size;
-
- /* free slab */
- rtl_cache_slab_destroy (cache, slab);
- }
-
- head = &(cache->m_free_head);
- for (slab = head->m_slab_next; slab != head; slab = head->m_slab_next)
- {
- /* remove from 'free' queue */
- QUEUE_REMOVE_NAMED(slab, slab_);
-
- /* update stats */
- cache->m_slab_stats.m_mem_total -= cache->m_slab_size;
-
- /* free slab */
- rtl_cache_slab_destroy (cache, slab);
- }
- }
- }
-
- if (cache->m_hash_table != cache->m_hash_table_0)
- {
- rtl_arena_free (
- gp_cache_arena,
- cache->m_hash_table,
- cache->m_hash_size * sizeof(rtl_cache_bufctl_type*));
-
- cache->m_hash_table = cache->m_hash_table_0;
- cache->m_hash_size = RTL_CACHE_HASH_SIZE;
- cache->m_hash_shift = highbit(cache->m_hash_size) - 1;
- }
-}
-
-/* ================================================================= *
- *
- * cache implementation.
- *
- * ================================================================= */
-
-extern void ensureCacheSingleton();
-
-/** rtl_cache_create()
- */
-rtl_cache_type *
-SAL_CALL rtl_cache_create (
- const char * name,
- sal_Size objsize,
- sal_Size objalign,
- int (SAL_CALL * constructor)(void * obj, void * userarg),
- void (SAL_CALL * destructor) (void * obj, void * userarg),
- void (SAL_CALL * reclaim) (void * userarg),
- void * userarg,
- rtl_arena_type * source,
- int flags
-) SAL_THROW_EXTERN_C()
-{
- rtl_cache_type * result = 0;
- sal_Size size = sizeof(rtl_cache_type);
-
-try_alloc:
- result = (rtl_cache_type*)rtl_arena_alloc (gp_cache_arena, &size);
- if (result != 0)
- {
- rtl_cache_type * cache = result;
- VALGRIND_CREATE_MEMPOOL(cache, 0, 0);
- (void) rtl_cache_constructor (cache);
-
- if (!source)
- {
- /* use default arena */
- OSL_ASSERT(gp_default_arena != 0);
- source = gp_default_arena;
- }
-
- result = rtl_cache_activate (
- cache,
- name,
- objsize,
- objalign,
- constructor,
- destructor,
- reclaim,
- userarg,
- source,
- flags
- );
-
- if (result == 0)
- {
- /* activation failed */
- rtl_cache_deactivate (cache);
- rtl_cache_destructor (cache);
- VALGRIND_DESTROY_MEMPOOL(cache);
- rtl_arena_free (gp_cache_arena, cache, size);
- }
- }
- else if (gp_cache_arena == 0)
- {
- ensureCacheSingleton();
- if (gp_cache_arena)
- {
- /* try again */
- goto try_alloc;
- }
- }
- return (result);
-}
-
-/** rtl_cache_destroy()
- */
-void SAL_CALL rtl_cache_destroy (
- rtl_cache_type * cache
-) SAL_THROW_EXTERN_C()
-{
- if (cache != 0)
- {
- rtl_cache_deactivate (cache);
- rtl_cache_destructor (cache);
- VALGRIND_DESTROY_MEMPOOL(cache);
- rtl_arena_free (gp_cache_arena, cache, sizeof(rtl_cache_type));
- }
-}
-
-/** rtl_cache_alloc()
- */
-void *
-SAL_CALL rtl_cache_alloc (
- rtl_cache_type * cache
-) SAL_THROW_EXTERN_C()
-{
- void * obj = 0;
-
- if (cache == 0)
- return (0);
-
- RTL_MEMORY_LOCK_ACQUIRE(&(cache->m_depot_lock));
- if (cache->m_cpu_curr != 0)
- {
- for (;;)
- {
- /* take object from magazine layer */
- rtl_cache_magazine_type *curr, *prev, *temp;
-
- curr = cache->m_cpu_curr;
- if ((curr != 0) && (curr->m_mag_used > 0))
- {
- obj = curr->m_objects[--curr->m_mag_used];
-#if defined(HAVE_VALGRIND_MEMCHECK_H)
- VALGRIND_MEMPOOL_ALLOC(cache, obj, cache->m_type_size);
- if (cache->m_constructor != 0)
- {
- /* keep constructed object defined */
- VALGRIND_MAKE_MEM_DEFINED(obj, cache->m_type_size);
- }
-#endif /* HAVE_VALGRIND_MEMCHECK_H */
- cache->m_cpu_stats.m_alloc += 1;
- RTL_MEMORY_LOCK_RELEASE(&(cache->m_depot_lock));
-
- return (obj);
- }
-
- prev = cache->m_cpu_prev;
- if ((prev != 0) && (prev->m_mag_used > 0))
- {
- temp = cache->m_cpu_curr;
- cache->m_cpu_curr = cache->m_cpu_prev;
- cache->m_cpu_prev = temp;
-
- continue;
- }
-
- temp = rtl_cache_depot_exchange_alloc (cache, prev);
- if (temp != 0)
- {
- cache->m_cpu_prev = cache->m_cpu_curr;
- cache->m_cpu_curr = temp;
-
- continue;
- }
-
- /* no full magazine: fall through to slab layer */
- break;
- }
- }
- RTL_MEMORY_LOCK_RELEASE(&(cache->m_depot_lock));
-
- /* alloc buffer from slab layer */
- obj = rtl_cache_slab_alloc (cache);
- if ((obj != 0) && (cache->m_constructor != 0))
- {
- /* construct object */
- if (!((cache->m_constructor)(obj, cache->m_userarg)))
- {
- /* construction failure */
- rtl_cache_slab_free (cache, obj), obj = 0;
- }
- }
- return (obj);
-}
-
-/** rtl_cache_free()
- */
-void
-SAL_CALL rtl_cache_free (
- rtl_cache_type * cache,
- void * obj
-) SAL_THROW_EXTERN_C()
-{
- if ((obj != 0) && (cache != 0))
- {
- RTL_MEMORY_LOCK_ACQUIRE(&(cache->m_depot_lock));
-
- for (;;)
- {
- /* return object to magazine layer */
- rtl_cache_magazine_type *curr, *prev, *temp;
-
- curr = cache->m_cpu_curr;
- if ((curr != 0) && (curr->m_mag_used < curr->m_mag_size))
- {
- curr->m_objects[curr->m_mag_used++] = obj;
-#if defined(HAVE_VALGRIND_MEMCHECK_H)
- VALGRIND_MEMPOOL_FREE(cache, obj);
-#endif /* HAVE_VALGRIND_MEMCHECK_H */
- cache->m_cpu_stats.m_free += 1;
- RTL_MEMORY_LOCK_RELEASE(&(cache->m_depot_lock));
-
- return;
- }
-
- prev = cache->m_cpu_prev;
- if ((prev != 0) && (prev->m_mag_used == 0))
- {
- temp = cache->m_cpu_curr;
- cache->m_cpu_curr = cache->m_cpu_prev;
- cache->m_cpu_prev = temp;
-
- continue;
- }
-
- temp = rtl_cache_depot_exchange_free (cache, prev);
- if (temp != 0)
- {
- cache->m_cpu_prev = cache->m_cpu_curr;
- cache->m_cpu_curr = temp;
-
- continue;
- }
-
- if (rtl_cache_depot_populate(cache) != 0)
- {
- continue;
- }
-
- /* no empty magazine: fall through to slab layer */
- break;
- }
-
- RTL_MEMORY_LOCK_RELEASE(&(cache->m_depot_lock));
-
- /* no space for constructed object in magazine layer */
- if (cache->m_destructor != 0)
- {
- /* destruct object */
- (cache->m_destructor)(obj, cache->m_userarg);
- }
-
- /* return buffer to slab layer */
- rtl_cache_slab_free (cache, obj);
- }
-}
-
-/* ================================================================= *
- *
- * cache wsupdate (machdep) internals.
- *
- * ================================================================= */
-
-/** rtl_cache_wsupdate_init()
- *
- * @precond g_cache_list.m_lock initialized
- */
-static void
-rtl_cache_wsupdate_init (void);
-
-
-/** rtl_cache_wsupdate_wait()
- *
- * @precond g_cache_list.m_lock acquired
- */
-static void
-rtl_cache_wsupdate_wait (
- unsigned int seconds
-);
-
-/** rtl_cache_wsupdate_fini()
- *
- */
-static void
-rtl_cache_wsupdate_fini (void);
-
-/* ================================================================= */
-
-#if defined(SAL_UNX)
-
-#include <sys/time.h>
-
-static void *
-rtl_cache_wsupdate_all (void * arg);
-
-static void
-rtl_cache_wsupdate_init (void)
-{
- RTL_MEMORY_LOCK_ACQUIRE(&(g_cache_list.m_lock));
- g_cache_list.m_update_done = 0;
- (void) pthread_cond_init (&(g_cache_list.m_update_cond), NULL);
- if (pthread_create (
- &(g_cache_list.m_update_thread), NULL, rtl_cache_wsupdate_all, (void*)(10)) != 0)
- {
- /* failure */
- g_cache_list.m_update_thread = (pthread_t)(0);
- }
- RTL_MEMORY_LOCK_RELEASE(&(g_cache_list.m_lock));
-}
-
-static void
-rtl_cache_wsupdate_wait (unsigned int seconds)
-{
- if (seconds > 0)
- {
- struct timeval now;
- struct timespec wakeup;
-
- gettimeofday(&now, 0);
- wakeup.tv_sec = now.tv_sec + (seconds);
- wakeup.tv_nsec = now.tv_usec * 1000;
-
- (void) pthread_cond_timedwait (
- &(g_cache_list.m_update_cond),
- &(g_cache_list.m_lock),
- &wakeup);
- }
-}
-
-static void
-rtl_cache_wsupdate_fini (void)
-{
- RTL_MEMORY_LOCK_ACQUIRE(&(g_cache_list.m_lock));
- g_cache_list.m_update_done = 1;
- pthread_cond_signal (&(g_cache_list.m_update_cond));
- RTL_MEMORY_LOCK_RELEASE(&(g_cache_list.m_lock));
-
- if (g_cache_list.m_update_thread != (pthread_t)(0))
- pthread_join (g_cache_list.m_update_thread, NULL);
-}
-
-/* ================================================================= */
-
-#elif defined(SAL_W32)
-
-static DWORD WINAPI
-rtl_cache_wsupdate_all (void * arg);
-
-static void
-rtl_cache_wsupdate_init (void)
-{
- DWORD dwThreadId;
-
- RTL_MEMORY_LOCK_ACQUIRE(&(g_cache_list.m_lock));
- g_cache_list.m_update_done = 0;
- g_cache_list.m_update_cond = CreateEvent (0, TRUE, FALSE, 0);
-
- g_cache_list.m_update_thread =
- CreateThread (NULL, 0, rtl_cache_wsupdate_all, (LPVOID)(10), 0, &dwThreadId);
- RTL_MEMORY_LOCK_RELEASE(&(g_cache_list.m_lock));
-}
-
-static void
-rtl_cache_wsupdate_wait (unsigned int seconds)
-{
- if (seconds > 0)
- {
- RTL_MEMORY_LOCK_RELEASE(&(g_cache_list.m_lock));
- WaitForSingleObject (g_cache_list.m_update_cond, (DWORD)(seconds * 1000));
- RTL_MEMORY_LOCK_ACQUIRE(&(g_cache_list.m_lock));
- }
-}
-
-static void
-rtl_cache_wsupdate_fini (void)
-{
- RTL_MEMORY_LOCK_ACQUIRE(&(g_cache_list.m_lock));
- g_cache_list.m_update_done = 1;
- SetEvent (g_cache_list.m_update_cond);
- RTL_MEMORY_LOCK_RELEASE(&(g_cache_list.m_lock));
-
- WaitForSingleObject (g_cache_list.m_update_thread, INFINITE);
-}
-
-#endif /* SAL_UNX || SAL_W32 */
-
-/* ================================================================= */
-
-/** rtl_cache_depot_wsupdate()
- * update depot stats and purge excess magazines.
- *
- * @precond cache->m_depot_lock acquired
- */
-static void
-rtl_cache_depot_wsupdate (
- rtl_cache_type * cache,
- rtl_cache_depot_type * depot
-)
-{
- sal_Size npurge;
-
- depot->m_prev_min = depot->m_curr_min;
- depot->m_curr_min = depot->m_mag_count;
-
- npurge = SAL_MIN(depot->m_curr_min, depot->m_prev_min);
- for (; npurge > 0; npurge--)
- {
- rtl_cache_magazine_type * mag = rtl_cache_depot_dequeue (depot);
- if (mag != 0)
- {
- RTL_MEMORY_LOCK_RELEASE(&(cache->m_depot_lock));
- rtl_cache_magazine_clear (cache, mag);
- rtl_cache_free (cache->m_magazine_cache, mag);
- RTL_MEMORY_LOCK_ACQUIRE(&(cache->m_depot_lock));
- }
- }
-}
-
-/** rtl_cache_wsupdate()
- *
- * @precond cache->m_depot_lock released
- */
-static void
-rtl_cache_wsupdate (
- rtl_cache_type * cache
-)
-{
- if (cache->m_magazine_cache != 0)
- {
- RTL_MEMORY_LOCK_ACQUIRE(&(cache->m_depot_lock));
-
- OSL_TRACE(
- "rtl_cache_wsupdate(\"%s\") "
- "[depot: count, curr_min, prev_min] "
- "full: %lu, %lu, %lu; empty: %lu, %lu, %lu",
- cache->m_name,
- cache->m_depot_full.m_mag_count,
- cache->m_depot_full.m_curr_min,
- cache->m_depot_full.m_prev_min,
- cache->m_depot_empty.m_mag_count,
- cache->m_depot_empty.m_curr_min,
- cache->m_depot_empty.m_prev_min
- );
-
- rtl_cache_depot_wsupdate (cache, &(cache->m_depot_full));
- rtl_cache_depot_wsupdate (cache, &(cache->m_depot_empty));
-
- RTL_MEMORY_LOCK_RELEASE(&(cache->m_depot_lock));
- }
-}
-
-/** rtl_cache_wsupdate_all()
- *
- */
-#if defined(SAL_UNX)
-static void *
-#elif defined(SAL_W32)
-static DWORD WINAPI
-#endif /* SAL_UNX || SAL_W32 */
-rtl_cache_wsupdate_all (void * arg)
-{
- unsigned int seconds = (unsigned int)SAL_INT_CAST(sal_uIntPtr, arg);
-
- RTL_MEMORY_LOCK_ACQUIRE(&(g_cache_list.m_lock));
- while (!g_cache_list.m_update_done)
- {
- rtl_cache_wsupdate_wait (seconds);
- if (!g_cache_list.m_update_done)
- {
- rtl_cache_type * head, * cache;
-
- head = &(g_cache_list.m_cache_head);
- for (cache = head->m_cache_next;
- cache != head;
- cache = cache->m_cache_next)
- {
- rtl_cache_wsupdate (cache);
- }
- }
- }
- RTL_MEMORY_LOCK_RELEASE(&(g_cache_list.m_lock));
-
- return (0);
-}
-
-/* ================================================================= *
- *
- * cache initialization.
- *
- * ================================================================= */
-
-void
-rtl_cache_init (void)
-{
- {
- /* list of caches */
- RTL_MEMORY_LOCK_INIT(&(g_cache_list.m_lock));
- (void) rtl_cache_constructor (&(g_cache_list.m_cache_head));
- }
- {
- /* cache: internal arena */
- OSL_ASSERT(gp_cache_arena == 0);
-
- gp_cache_arena = rtl_arena_create (
- "rtl_cache_internal_arena",
- 64, /* quantum */
- 0, /* no quantum caching */
- NULL, /* default source */
- rtl_arena_alloc,
- rtl_arena_free,
- 0 /* flags */
- );
- OSL_ASSERT(gp_cache_arena != 0);
-
- /* check 'gp_default_arena' initialization */
- OSL_ASSERT(gp_default_arena != 0);
- }
- {
- /* cache: magazine cache */
- static rtl_cache_type g_cache_magazine_cache;
-
- OSL_ASSERT(gp_cache_magazine_cache == 0);
- VALGRIND_CREATE_MEMPOOL(&g_cache_magazine_cache, 0, 0);
- (void) rtl_cache_constructor (&g_cache_magazine_cache);
-
- gp_cache_magazine_cache = rtl_cache_activate (
- &g_cache_magazine_cache,
- "rtl_cache_magazine_cache",
- sizeof(rtl_cache_magazine_type), /* objsize */
- 0, /* objalign */
- rtl_cache_magazine_constructor,
- rtl_cache_magazine_destructor,
- 0, /* reclaim */
- 0, /* userarg: NYI */
- gp_default_arena, /* source */
- RTL_CACHE_FLAG_NOMAGAZINE /* during bootstrap; activated below */
- );
- OSL_ASSERT(gp_cache_magazine_cache != 0);
-
- /* activate magazine layer */
- g_cache_magazine_cache.m_magazine_cache = gp_cache_magazine_cache;
- }
- {
- /* cache: slab (struct) cache */
- static rtl_cache_type g_cache_slab_cache;
-
- OSL_ASSERT(gp_cache_slab_cache == 0);
- VALGRIND_CREATE_MEMPOOL(&g_cache_slab_cache, 0, 0);
- (void) rtl_cache_constructor (&g_cache_slab_cache);
-
- gp_cache_slab_cache = rtl_cache_activate (
- &g_cache_slab_cache,
- "rtl_cache_slab_cache",
- sizeof(rtl_cache_slab_type), /* objsize */
- 0, /* objalign */
- rtl_cache_slab_constructor,
- rtl_cache_slab_destructor,
- 0, /* reclaim */
- 0, /* userarg: none */
- gp_default_arena, /* source */
- 0 /* flags: none */
- );
- OSL_ASSERT(gp_cache_slab_cache != 0);
- }
- {
- /* cache: bufctl cache */
- static rtl_cache_type g_cache_bufctl_cache;
-
- OSL_ASSERT(gp_cache_bufctl_cache == 0);
- VALGRIND_CREATE_MEMPOOL(&g_cache_bufctl_cache, 0, 0);
- (void) rtl_cache_constructor (&g_cache_bufctl_cache);
-
- gp_cache_bufctl_cache = rtl_cache_activate (
- &g_cache_bufctl_cache,
- "rtl_cache_bufctl_cache",
- sizeof(rtl_cache_bufctl_type), /* objsize */
- 0, /* objalign */
- 0, /* constructor */
- 0, /* destructor */
- 0, /* reclaim */
- 0, /* userarg */
- gp_default_arena, /* source */
- 0 /* flags: none */
- );
- OSL_ASSERT(gp_cache_bufctl_cache != 0);
- }
-
- rtl_cache_wsupdate_init();
- OSL_TRACE("rtl_cache_init completed");
-}
-
-/* ================================================================= */
-
-void
-rtl_cache_fini (void)
-{
- if (gp_cache_arena != 0)
- {
- rtl_cache_type * cache, * head;
-
- rtl_cache_wsupdate_fini();
-
- if (gp_cache_bufctl_cache != 0)
- {
- cache = gp_cache_bufctl_cache, gp_cache_bufctl_cache = 0;
- rtl_cache_deactivate (cache);
- rtl_cache_destructor (cache);
- VALGRIND_DESTROY_MEMPOOL(cache);
- }
- if (gp_cache_slab_cache != 0)
- {
- cache = gp_cache_slab_cache, gp_cache_slab_cache = 0;
- rtl_cache_deactivate (cache);
- rtl_cache_destructor (cache);
- VALGRIND_DESTROY_MEMPOOL(cache);
- }
- if (gp_cache_magazine_cache != 0)
- {
- cache = gp_cache_magazine_cache, gp_cache_magazine_cache = 0;
- rtl_cache_deactivate (cache);
- rtl_cache_destructor (cache);
- VALGRIND_DESTROY_MEMPOOL(cache);
- }
- if (gp_cache_arena != 0)
- {
- rtl_arena_destroy (gp_cache_arena);
- gp_cache_arena = 0;
- }
-
- RTL_MEMORY_LOCK_ACQUIRE(&(g_cache_list.m_lock));
- head = &(g_cache_list.m_cache_head);
- for (cache = head->m_cache_next; cache != head; cache = cache->m_cache_next)
- {
- OSL_TRACE(
- "rtl_cache_fini(\"%s\") "
- "[slab]: allocs: %"PRIu64", frees: %"PRIu64"; total: %lu, used: %lu; "
- "[cpu]: allocs: %"PRIu64", frees: %"PRIu64"; "
- "[total]: allocs: %"PRIu64", frees: %"PRIu64"",
- cache->m_name,
- cache->m_slab_stats.m_alloc, cache->m_slab_stats.m_free,
- cache->m_slab_stats.m_mem_total, cache->m_slab_stats.m_mem_alloc,
- cache->m_cpu_stats.m_alloc, cache->m_cpu_stats.m_free,
- cache->m_slab_stats.m_alloc + cache->m_cpu_stats.m_alloc,
- cache->m_slab_stats.m_free + cache->m_cpu_stats.m_free
- );
- }
- RTL_MEMORY_LOCK_RELEASE(&(g_cache_list.m_lock));
- }
- OSL_TRACE("rtl_cache_fini completed");
-}
-
-/* ================================================================= */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/alloc_cache.h b/sal/rtl/source/alloc_cache.h
deleted file mode 100644
index 29d4fa7be..000000000
--- a/sal/rtl/source/alloc_cache.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_ALLOC_CACHE_H
-#define INCLUDED_RTL_ALLOC_CACHE_H
-
-#include "sal/types.h"
-#include "rtl/alloc.h"
-#include "alloc_impl.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** rtl_cache_stat_type
- * @internal
- */
-typedef struct rtl_cache_stat_st rtl_cache_stat_type;
-struct rtl_cache_stat_st
-{
- sal_uInt64 m_alloc;
- sal_uInt64 m_free;
-
- sal_Size m_mem_total;
- sal_Size m_mem_alloc;
-};
-
-
-/** rtl_cache_bufctl_type
- * @internal
- */
-typedef struct rtl_cache_bufctl_st rtl_cache_bufctl_type;
-struct rtl_cache_bufctl_st
-{
- rtl_cache_bufctl_type * m_next; /* linkage */
-
- sal_uIntPtr m_addr; /* buffer address */
- sal_uIntPtr m_slab; /* parent slab address */
-};
-
-
-/** rtl_cache_slab_type
- * @internal
- */
-typedef struct rtl_cache_slab_st rtl_cache_slab_type;
-struct rtl_cache_slab_st
-{
- rtl_cache_slab_type * m_slab_next; /* slab linkage */
- rtl_cache_slab_type * m_slab_prev; /* slab linkage */
-
- sal_Size m_ntypes; /* number of buffers used */
- sal_uIntPtr m_data; /* buffer start addr */
-
- sal_uIntPtr m_bp; /* free buffer linkage 'base pointer' */
- rtl_cache_bufctl_type * m_sp; /* free buffer linkage 'stack pointer' */
-};
-
-
-/** rtl_cache_magazine_type
- * @internal
- */
-#define RTL_CACHE_MAGAZINE_SIZE 61
-
-typedef struct rtl_cache_magazine_st rtl_cache_magazine_type;
-struct rtl_cache_magazine_st
-{
- rtl_cache_magazine_type * m_mag_next; /* depot linkage */
-
- sal_Size m_mag_size;
- sal_Size m_mag_used;
-
- void * m_objects[RTL_CACHE_MAGAZINE_SIZE];
-};
-
-
-/** rtl_cache_depot_type
- * @internal
- */
-typedef struct rtl_cache_depot_st rtl_cache_depot_type;
-struct rtl_cache_depot_st
-{
- /* magazine list */
- rtl_cache_magazine_type * m_mag_next; /* linkage */
- sal_Size m_mag_count; /* count */
-
- /* working set parameters */
- sal_Size m_curr_min;
- sal_Size m_prev_min;
-};
-
-
-/** rtl_cache_type
- * @internal
- */
-#define RTL_CACHE_HASH_SIZE 8
-
-#define RTL_CACHE_FEATURE_HASH 1
-#define RTL_CACHE_FEATURE_BULKDESTROY 2
-#define RTL_CACHE_FEATURE_RESCALE 4 /* within hash rescale operation */
-
-struct rtl_cache_st
-{
- /* linkage */
- rtl_cache_type * m_cache_next;
- rtl_cache_type * m_cache_prev;
-
- /* properties */
- char m_name[RTL_CACHE_NAME_LENGTH + 1];
- long m_features;
-
- sal_Size m_type_size; /* const */
- sal_Size m_type_align; /* const */
- sal_Size m_type_shift; /* log2(m_type_size); const */
-
- int (SAL_CALL * m_constructor)(void * obj, void * userarg); /* const */
- void (SAL_CALL * m_destructor) (void * obj, void * userarg); /* const */
- void (SAL_CALL * m_reclaim) (void * userarg); /* const */
- void * m_userarg;
-
- /* slab layer */
- rtl_memory_lock_type m_slab_lock;
- rtl_cache_stat_type m_slab_stats;
-
- rtl_arena_type * m_source; /* slab supplier; const */
- sal_Size m_slab_size; /* const */
- sal_Size m_ntypes; /* number of buffers per slab; const */
- sal_Size m_ncolor; /* next slab color */
- sal_Size m_ncolor_max; /* max. slab color */
-
- rtl_cache_slab_type m_free_head;
- rtl_cache_slab_type m_used_head;
-
- rtl_cache_bufctl_type ** m_hash_table;
- rtl_cache_bufctl_type * m_hash_table_0[RTL_CACHE_HASH_SIZE];
- sal_Size m_hash_size; /* m_hash_mask + 1 */
- sal_Size m_hash_shift; /* log2(m_hash_size) */
-
- /* depot layer */
- rtl_memory_lock_type m_depot_lock;
-
- rtl_cache_depot_type m_depot_empty;
- rtl_cache_depot_type m_depot_full;
-
- rtl_cache_type * m_magazine_cache; /* magazine supplier; const */
-
- /* cpu layer */
- rtl_cache_magazine_type * m_cpu_curr;
- rtl_cache_magazine_type * m_cpu_prev;
-
- rtl_cache_stat_type m_cpu_stats;
-};
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* INCLUDED_RTL_ALLOC_CACHE_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/alloc_fini.cxx b/sal/rtl/source/alloc_fini.cxx
deleted file mode 100644
index dfd359953..000000000
--- a/sal/rtl/source/alloc_fini.cxx
+++ /dev/null
@@ -1,123 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <rtl/instance.hxx>
-
-extern "C" void rtl_memory_fini (void);
-extern "C" void rtl_memory_init (void);
-namespace
-{
- struct rtlMemorySingleton
- {
- rtlMemorySingleton()
- {
- rtl_memory_init();
- }
- ~rtlMemorySingleton()
- {
- rtl_memory_fini();
- }
- };
- class theMemorySingleton
- : public rtl::Static<rtlMemorySingleton, theMemorySingleton>{};
-}
-extern "C" void ensureMemorySingleton()
-{
- theMemorySingleton::get();
-}
-
-extern "C" void rtl_cache_fini (void);
-extern "C" void rtl_cache_init (void);
-namespace
-{
- struct rtlCacheSingleton
- {
- rtlCacheSingleton()
- {
- rtl_cache_init();
- }
- ~rtlCacheSingleton()
- {
- rtl_cache_fini();
- }
- };
- class theCacheSingleton
- : public rtl::Static<rtlCacheSingleton, theCacheSingleton>{};
-}
-extern "C" void ensureCacheSingleton()
-{
- theCacheSingleton::get();
-}
-
-extern "C" void rtl_arena_fini (void);
-extern "C" void rtl_arena_init (void);
-namespace
-{
- struct rtlArenaSingleton
- {
- rtlArenaSingleton()
- {
- rtl_arena_init();
- }
- ~rtlArenaSingleton()
- {
- rtl_arena_fini();
- }
- };
- class theArenaSingleton
- : public rtl::Static<rtlArenaSingleton, theArenaSingleton>{};
-}
-extern "C" void ensureArenaSingleton()
-{
- theArenaSingleton::get();
-}
-
-extern "C" void rtl_locale_fini (void);
-extern "C" void rtl_locale_init (void);
-namespace
-{
- struct rtlLocaleSingleton
- {
- rtlLocaleSingleton()
- {
- rtl_locale_init();
- }
- ~rtlLocaleSingleton()
- {
- rtl_locale_fini();
- }
- };
- class theLocaleSingleton
- : public rtl::Static<rtlLocaleSingleton, theLocaleSingleton>{};
-}
-extern "C" void ensureLocaleSingleton()
-{
- theLocaleSingleton::get();
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/alloc_global.c b/sal/rtl/source/alloc_global.c
deleted file mode 100644
index fb95e83dc..000000000
--- a/sal/rtl/source/alloc_global.c
+++ /dev/null
@@ -1,402 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "alloc_impl.h"
-#include "rtl/alloc.h"
-#include <sal/macros.h>
-#include <osl/diagnose.h>
-
-#include <string.h>
-#include <stdio.h>
-
-#if !defined(FORCE_SYSALLOC)
-
-typedef enum { AMode_CUSTOM, AMode_SYSTEM, AMode_UNSET } AllocMode;
-
-static AllocMode alloc_mode = AMode_UNSET;
-
-static void determine_alloc_mode(void)
-{
- /* This shouldn't happen, but still ... */
- if (alloc_mode != AMode_UNSET)
- return;
-
- if (getenv("G_SLICE") != NULL)
- {
- alloc_mode = AMode_SYSTEM;
- fprintf(stderr, "LibreOffice: Using system memory allocator.\n");
- fprintf(stderr, "LibreOffice: This is for debugging only. To disable,\n");
- fprintf(stderr, "LibreOffice: unset the environment variable G_SLICE.\n");
- }
- else
- {
- alloc_mode = AMode_CUSTOM;
- }
-}
-
-/* ================================================================= *
- *
- * custom allocator includes.
- *
- * ================================================================= */
-
-#include "internal/once.h"
-#include "sal/macros.h"
-
-/* ================================================================= *
- *
- * custom allocator internals.
- *
- * ================================================================= */
-
-static const sal_Size g_alloc_sizes[] =
-{
- /* powers of 2**(1/4) */
- 4 * 4, 6 * 4,
- 4 * 8, 5 * 8, 6 * 8, 7 * 8,
- 4 * 16, 5 * 16, 6 * 16, 7 * 16,
- 4 * 32, 5 * 32, 6 * 32, 7 * 32,
- 4 * 64, 5 * 64, 6 * 64, 7 * 64,
- 4 * 128, 5 * 128, 6 * 128, 7 * 128,
- 4 * 256, 5 * 256, 6 * 256, 7 * 256,
- 4 * 512, 5 * 512, 6 * 512, 7 * 512,
- 4 * 1024, 5 * 1024, 6 * 1024, 7 * 1024,
- 4 * 2048, 5 * 2048, 6 * 2048, 7 * 2048,
- 4 * 4096
-};
-
-#define RTL_MEMORY_CACHED_LIMIT 4 * 4096
-#define RTL_MEMORY_CACHED_SIZES (SAL_N_ELEMENTS(g_alloc_sizes))
-
-static rtl_cache_type * g_alloc_caches[RTL_MEMORY_CACHED_SIZES] =
-{
- 0,
-};
-
-#define RTL_MEMALIGN 8
-#define RTL_MEMALIGN_SHIFT 3
-
-static rtl_cache_type * g_alloc_table[RTL_MEMORY_CACHED_LIMIT >> RTL_MEMALIGN_SHIFT] =
-{
- 0,
-};
-
-static rtl_arena_type * gp_alloc_arena = 0;
-
-extern void ensureMemorySingleton();
-
-/* ================================================================= *
- *
- * custom allocator implemenation.
- *
- * ================================================================= */
-
-void *
-SAL_CALL rtl_allocateMemory_CUSTOM (sal_Size n) SAL_THROW_EXTERN_C()
-{
- void * p = 0;
- if (n > 0)
- {
- char * addr;
- sal_Size size = RTL_MEMORY_ALIGN(n + RTL_MEMALIGN, RTL_MEMALIGN);
-
- OSL_ASSERT(RTL_MEMALIGN >= sizeof(sal_Size));
- if (n >= SAL_MAX_SIZE - (RTL_MEMALIGN + RTL_MEMALIGN - 1))
- {
- /* requested size too large for roundup alignment */
- return 0;
- }
-
-try_alloc:
- if (size <= RTL_MEMORY_CACHED_LIMIT)
- addr = (char*)rtl_cache_alloc(g_alloc_table[(size - 1) >> RTL_MEMALIGN_SHIFT]);
- else
- addr = (char*)rtl_arena_alloc (gp_alloc_arena, &size);
-
- if (addr != 0)
- {
- ((sal_Size*)(addr))[0] = size;
- p = addr + RTL_MEMALIGN;
- }
- else if (gp_alloc_arena == 0)
- {
- ensureMemorySingleton();
- if (gp_alloc_arena)
- {
- /* try again */
- goto try_alloc;
- }
- }
- }
- return (p);
-}
-
-/* ================================================================= */
-
-void SAL_CALL rtl_freeMemory_CUSTOM (void * p) SAL_THROW_EXTERN_C()
-{
- if (p != 0)
- {
- char * addr = (char*)(p) - RTL_MEMALIGN;
- sal_Size size = ((sal_Size*)(addr))[0];
-
- if (size <= RTL_MEMORY_CACHED_LIMIT)
- rtl_cache_free(g_alloc_table[(size - 1) >> RTL_MEMALIGN_SHIFT], addr);
- else
- rtl_arena_free (gp_alloc_arena, addr, size);
- }
-}
-
-/* ================================================================= */
-
-void * SAL_CALL rtl_reallocateMemory_CUSTOM (void * p, sal_Size n) SAL_THROW_EXTERN_C()
-{
- if (n > 0)
- {
- if (p != 0)
- {
- void * p_old = p;
- sal_Size n_old = ((sal_Size*)( (char*)(p) - RTL_MEMALIGN ))[0] - RTL_MEMALIGN;
-
- p = rtl_allocateMemory (n);
- if (p != 0)
- {
- memcpy (p, p_old, SAL_MIN(n, n_old));
- rtl_freeMemory (p_old);
- }
- }
- else
- {
- p = rtl_allocateMemory (n);
- }
- }
- else if (p != 0)
- {
- rtl_freeMemory (p), p = 0;
- }
- return (p);
-}
-
-#endif
-
-/* ================================================================= *
- *
- * custom allocator initialization / finalization.
- *
- * ================================================================= */
-
-void rtl_memory_init (void)
-{
-#if !defined(FORCE_SYSALLOC)
- {
- /* global memory arena */
- OSL_ASSERT(gp_alloc_arena == 0);
-
- gp_alloc_arena = rtl_arena_create (
- "rtl_alloc_arena",
- 2048, /* quantum */
- 0, /* w/o quantum caching */
- 0, /* default source */
- rtl_arena_alloc,
- rtl_arena_free,
- 0 /* flags */
- );
- OSL_ASSERT(gp_alloc_arena != 0);
- }
- {
- sal_Size size;
- int i, n = RTL_MEMORY_CACHED_SIZES;
-
- for (i = 0; i < n; i++)
- {
- char name[RTL_CACHE_NAME_LENGTH + 1];
- (void) snprintf (name, sizeof(name), "rtl_alloc_%lu", g_alloc_sizes[i]);
- g_alloc_caches[i] = rtl_cache_create (name, g_alloc_sizes[i], 0, NULL, NULL, NULL, NULL, NULL, 0);
- }
-
- size = RTL_MEMALIGN;
- for (i = 0; i < n; i++)
- {
- while (size <= g_alloc_sizes[i])
- {
- g_alloc_table[(size - 1) >> RTL_MEMALIGN_SHIFT] = g_alloc_caches[i];
- size += RTL_MEMALIGN;
- }
- }
- }
-#endif
- OSL_TRACE("rtl_memory_init completed");
-}
-
-/* ================================================================= */
-
-void rtl_memory_fini (void)
-{
-#if !defined(FORCE_SYSALLOC)
- int i, n;
-
- /* clear g_alloc_table */
- memset (g_alloc_table, 0, sizeof(g_alloc_table));
-
- /* cleanup g_alloc_caches */
- for (i = 0, n = RTL_MEMORY_CACHED_SIZES; i < n; i++)
- {
- if (g_alloc_caches[i] != 0)
- {
- rtl_cache_destroy (g_alloc_caches[i]);
- g_alloc_caches[i] = 0;
- }
- }
-
- /* cleanup gp_alloc_arena */
- if (gp_alloc_arena != 0)
- {
- rtl_arena_destroy (gp_alloc_arena);
- gp_alloc_arena = 0;
- }
-#endif
- OSL_TRACE("rtl_memory_fini completed");
-}
-
-/* ================================================================= *
- *
- * system allocator implemenation.
- *
- * ================================================================= */
-
-void * SAL_CALL rtl_allocateMemory_SYSTEM (sal_Size n)
-{
- return malloc (n);
-}
-
-/* ================================================================= */
-
-void SAL_CALL rtl_freeMemory_SYSTEM (void * p)
-{
- free (p);
-}
-
-/* ================================================================= */
-
-void * SAL_CALL rtl_reallocateMemory_SYSTEM (void * p, sal_Size n)
-{
- return realloc (p, n);
-}
-
-/* ================================================================= */
-
-void* SAL_CALL rtl_allocateMemory (sal_Size n) SAL_THROW_EXTERN_C()
-{
-#if !defined(FORCE_SYSALLOC)
- while (1)
- {
- if (alloc_mode == AMode_CUSTOM)
- {
- return rtl_allocateMemory_CUSTOM(n);
- }
- if (alloc_mode == AMode_SYSTEM)
- {
- return rtl_allocateMemory_SYSTEM(n);
- }
- determine_alloc_mode();
- }
-#else
- return rtl_allocateMemory_SYSTEM(n);
-#endif
-}
-
-void* SAL_CALL rtl_reallocateMemory (void * p, sal_Size n) SAL_THROW_EXTERN_C()
-{
-#if !defined(FORCE_SYSALLOC)
- while (1)
- {
- if (alloc_mode == AMode_CUSTOM)
- {
- return rtl_reallocateMemory_CUSTOM(p,n);
- }
- if (alloc_mode == AMode_SYSTEM)
- {
- return rtl_reallocateMemory_SYSTEM(p,n);
- }
- determine_alloc_mode();
- }
-#else
- return rtl_reallocateMemory_SYSTEM(p,n);
-#endif
-}
-
-void SAL_CALL rtl_freeMemory (void * p) SAL_THROW_EXTERN_C()
-{
-#if !defined(FORCE_SYSALLOC)
- while (1)
- {
- if (alloc_mode == AMode_CUSTOM)
- {
- rtl_freeMemory_CUSTOM(p);
- return;
- }
- if (alloc_mode == AMode_SYSTEM)
- {
- rtl_freeMemory_SYSTEM(p);
- return;
- }
- determine_alloc_mode();
- }
-#else
- rtl_freeMemory_SYSTEM(p);
-#endif
-}
-
-/* ================================================================= *
- *
- * rtl_(allocate|free)ZeroMemory() implemenation.
- *
- * ================================================================= */
-
-void * SAL_CALL rtl_allocateZeroMemory (sal_Size n) SAL_THROW_EXTERN_C()
-{
- void * p = rtl_allocateMemory (n);
- if (p != 0)
- memset (p, 0, n);
- return (p);
-}
-
-/* ================================================================= */
-
-void SAL_CALL rtl_freeZeroMemory (void * p, sal_Size n) SAL_THROW_EXTERN_C()
-{
- if (p != 0)
- {
- memset (p, 0, n);
- rtl_freeMemory (p);
- }
-}
-
-/* ================================================================= */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/alloc_impl.h b/sal/rtl/source/alloc_impl.h
deleted file mode 100644
index 490120a3a..000000000
--- a/sal/rtl/source/alloc_impl.h
+++ /dev/null
@@ -1,274 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_ALLOC_IMPL_H
-#define INCLUDED_RTL_ALLOC_IMPL_H
-
-#include "sal/types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/** Alignment macros
- */
-#if SAL_TYPES_ALIGNMENT4 > 1
-#define RTL_MEMORY_ALIGNMENT_4 SAL_TYPES_ALIGNMENT4
-#else
-#define RTL_MEMORY_ALIGNMENT_4 sizeof(int)
-#endif /* SAL_TYPES_ALIGNMENT4 */
-
-#if SAL_TYPES_ALIGNMENT8 > 1
-#define RTL_MEMORY_ALIGNMENT_8 SAL_TYPES_ALIGNMENT8
-#else
-#define RTL_MEMORY_ALIGNMENT_8 sizeof(void*)
-#endif /* SAL_TYPES_ALIGNMENT8 */
-
-#if 0 /* @@@ */
-#define RTL_MEMORY_ALIGNMENT_1 8
-#define RTL_MEMORY_ALIGNMENT_2 (sizeof(void*) * 2)
-#endif /* @@@ */
-
-#define RTL_MEMORY_ALIGN(value, align) (((value) + ((align) - 1)) & ~((align) - 1))
-
-#define RTL_MEMORY_ISP2(value) (((value) & ((value) - 1)) == 0)
-#define RTL_MEMORY_P2ALIGN(value, align) ((value) & -(sal_IntPtr)(align))
-
-#define RTL_MEMORY_P2ROUNDUP(value, align) \
- (-(-(sal_IntPtr)(value) & -(sal_IntPtr)(align)))
-#define RTL_MEMORY_P2END(value, align) \
- (-(~(sal_IntPtr)(value) & -(sal_IntPtr)(align)))
-
-
-/** Function inlining macros
- * (compiler dependent)
- */
-#ifndef RTL_MEMORY_INLINE
-#if defined(__GNUC__)
-#define RTL_MEMORY_INLINE __inline__
-#elif defined(_MSC_VER)
-#define RTL_MEMORY_INLINE __inline
-#else
-#define RTL_MEMORY_INLINE
-#endif /* __GNUC__ || _MSC_VER */
-#endif /* RTL_MEMORY_INLINE */
-
-
-/** printf() format specifier(s)
- * (from C90 <sys/int_fmtio.h>)
- */
-#ifndef PRIu64
-#if defined(_MSC_VER)
-#define PRIu64 "I64u"
-#else /* !_MSC_VER */
-#define PRIu64 "llu"
-#endif /* !_MSC_VER */
-#endif /* PRIu64 */
-
-
-/** highbit(): log2() + 1
- * (complexity O(1))
- */
-static RTL_MEMORY_INLINE int
-highbit(sal_Size n)
-{
- register int k = 1;
-
- if (n == 0)
- return (0);
-#if SAL_TYPES_SIZEOFLONG == 8
- if (n & 0xffffffff00000000ul)
- k |= 32, n >>= 32;
-#endif
- if (n & 0xffff0000)
- k |= 16, n >>= 16;
- if (n & 0xff00)
- k |= 8, n >>= 8;
- if (n & 0xf0)
- k |= 4, n >>= 4;
- if (n & 0x0c)
- k |= 2, n >>= 2;
- if (n & 0x02)
- k++;
-
- return (k);
-}
-
-#if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-#pragma inline(highbit)
-#endif /* __SUNPRO_C */
-
-
-/** lowbit(): find first bit set
- * (complexity O(1))
- */
-static RTL_MEMORY_INLINE int
-lowbit(sal_Size n)
-{
- register int k = 1;
-
- if (n == 0)
- return (0);
-#if SAL_TYPES_SIZEOFLONG == 8
- if (!(n & 0xffffffff))
- k |= 32, n >>= 32;
-#endif
- if (!(n & 0xffff))
- k |= 16, n >>= 16;
- if (!(n & 0xff))
- k |= 8, n >>= 8;
- if (!(n & 0xf))
- k |= 4, n >>= 4;
- if (!(n & 0x3))
- k |= 2, n >>= 2;
- if (!(n & 0x1))
- k++;
- return (k);
-}
-
-#if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-#pragma inline(lowbit)
-#endif /* __SUNPRO_C */
-
-
-/** Queue manipulation macros
- * (doubly linked circular list)
- * (complexity O(1))
- */
-#define QUEUE_STARTED_NAMED(entry, name) \
- (((entry)->m_##name##next == (entry)) && ((entry)->m_##name##prev == (entry)))
-
-#define QUEUE_START_NAMED(entry, name) \
-{ \
- (entry)->m_##name##next = (entry); \
- (entry)->m_##name##prev = (entry); \
-}
-
-#define QUEUE_REMOVE_NAMED(entry, name) \
-{ \
- (entry)->m_##name##prev->m_##name##next = (entry)->m_##name##next; \
- (entry)->m_##name##next->m_##name##prev = (entry)->m_##name##prev; \
- QUEUE_START_NAMED(entry, name); \
-}
-
-#define QUEUE_INSERT_HEAD_NAMED(head, entry, name) \
-{ \
- (entry)->m_##name##prev = (head); \
- (entry)->m_##name##next = (head)->m_##name##next; \
- (head)->m_##name##next = (entry); \
- (entry)->m_##name##next->m_##name##prev = (entry); \
-}
-
-#define QUEUE_INSERT_TAIL_NAMED(head, entry, name) \
-{ \
- (entry)->m_##name##next = (head); \
- (entry)->m_##name##prev = (head)->m_##name##prev; \
- (head)->m_##name##prev = (entry); \
- (entry)->m_##name##prev->m_##name##next = (entry); \
-}
-
-
-/** rtl_memory_lock_type
- * (platform dependent)
- */
-#if defined(SAL_UNX)
-
-#include <unistd.h>
-#include <pthread.h>
-
-typedef pthread_mutex_t rtl_memory_lock_type;
-
-#define RTL_MEMORY_LOCK_INIT(lock) pthread_mutex_init((lock), NULL)
-#define RTL_MEMORY_LOCK_DESTROY(lock) pthread_mutex_destroy((lock))
-
-#define RTL_MEMORY_LOCK_ACQUIRE(lock) pthread_mutex_lock((lock))
-#define RTL_MEMORY_LOCK_RELEASE(lock) pthread_mutex_unlock((lock))
-
-#elif defined(SAL_W32)
-
-#define WIN32_LEAN_AND_MEAN
-#ifdef _MSC_VER
-#pragma warning(push,1) /* disable warnings within system headers */
-#endif
-#include <windows.h>
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-
-typedef CRITICAL_SECTION rtl_memory_lock_type;
-
-#define RTL_MEMORY_LOCK_INIT(lock) InitializeCriticalSection((lock))
-#define RTL_MEMORY_LOCK_DESTROY(lock) DeleteCriticalSection((lock))
-
-#define RTL_MEMORY_LOCK_ACQUIRE(lock) EnterCriticalSection((lock))
-#define RTL_MEMORY_LOCK_RELEASE(lock) LeaveCriticalSection((lock))
-
-#else
-#error Unknown platform
-#endif /* SAL_UNX | SAL_W32 */
-
-
-/** Cache creation flags.
- * @internal
- */
-#define RTL_CACHE_FLAG_NOMAGAZINE (1 << 13) /* w/o magazine layer */
-#define RTL_CACHE_FLAG_QUANTUMCACHE (2 << 13) /* used as arena quantum cache */
-
-
-/** Valgrind support macros.
- */
-#if !defined(HAVE_MEMCHECK_H) || (OSL_DEBUG_LEVEL == 0)
-#if !defined(NVALGRIND)
-#define NVALGRIND 1
-#endif /* ! NVALGRIND */
-#endif /* ! HAVE_MEMCHECK_H || (OSL_DEBUG_LEVEL == 0) */
-
-#if defined(NVALGRIND)
-#define VALGRIND_MAKE_MEM_UNDEFINED(addr, size)
-#define VALGRIND_MAKE_MEM_DEFINED(addr, size)
-#define VALGRIND_MALLOCLIKE_BLOCK(addr, sizeB, rzB, is_zeroed)
-#define VALGRIND_FREELIKE_BLOCK(addr, rzB)
-#define VALGRIND_CREATE_MEMPOOL(pool, rzB, is_zeroed)
-#define VALGRIND_DESTROY_MEMPOOL(pool)
-#define VALGRIND_MEMPOOL_ALLOC(pool, addr, size)
-#define VALGRIND_MEMPOOL_FREE(pool, addr)
-#elif defined(HAVE_MEMCHECK_H)
-#include <memcheck.h>
-#if !defined(FORCE_SYSALLOC)
-#define FORCE_SYSALLOC 1
-#endif /* !FORCE_SYSALLOC */
-#endif /* NVALGRIND || HAVE_MEMCHECK_H */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* INCLUDED_RTL_ALLOC_IMPL_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/bootstrap.cxx b/sal/rtl/source/bootstrap.cxx
deleted file mode 100644
index a58dd0e1d..000000000
--- a/sal/rtl/source/bootstrap.cxx
+++ /dev/null
@@ -1,1054 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include "rtl/bootstrap.h"
-#include "rtl/bootstrap.hxx"
-#include <osl/diagnose.h>
-#include <osl/module.h>
-#include <osl/process.h>
-#include <osl/file.hxx>
-#include <osl/mutex.hxx>
-#include <osl/profile.hxx>
-#include <osl/security.hxx>
-#include <rtl/alloc.h>
-#include <rtl/string.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <rtl/ustring.hxx>
-#include <rtl/byteseq.hxx>
-#include <rtl/instance.hxx>
-#include <rtl/malformeduriexception.hxx>
-#include <rtl/uri.hxx>
-#include "rtl/allocator.hxx"
-
-#include "macro.hxx"
-
-#include <boost/unordered_map.hpp>
-#include <list>
-
-#define MY_STRING_(x) # x
-#define MY_STRING(x) MY_STRING_(x)
-
-//----------------------------------------------------------------------------
-
-using osl::DirectoryItem;
-using osl::FileStatus;
-
-using rtl::OString;
-using rtl::OUString;
-using rtl::OUStringToOString;
-
-struct Bootstrap_Impl;
-
-namespace {
-
-static char const VND_SUN_STAR_PATHNAME[] = "vnd.sun.star.pathname:";
-
-bool isPathnameUrl(rtl::OUString const & url) {
- return url.matchIgnoreAsciiCaseAsciiL(
- RTL_CONSTASCII_STRINGPARAM(VND_SUN_STAR_PATHNAME));
-}
-
-bool resolvePathnameUrl(rtl::OUString * url) {
- OSL_ASSERT(url != NULL);
- if (!isPathnameUrl(*url) ||
- (osl::FileBase::getFileURLFromSystemPath(
- url->copy(RTL_CONSTASCII_LENGTH(VND_SUN_STAR_PATHNAME)), *url) ==
- osl::FileBase::E_None))
- {
- return true;
- } else {
- *url = rtl::OUString();
- return false;
- }
-}
-
-enum LookupMode {
- LOOKUP_MODE_NORMAL, LOOKUP_MODE_URE_BOOTSTRAP,
- LOOKUP_MODE_URE_BOOTSTRAP_EXPANSION };
-
-struct ExpandRequestLink {
- ExpandRequestLink const * next;
- Bootstrap_Impl const * file;
- rtl::OUString key;
-};
-
-rtl::OUString expandMacros(
- Bootstrap_Impl const * file, rtl::OUString const & text, LookupMode mode,
- ExpandRequestLink const * requestStack);
-
-rtl::OUString recursivelyExpandMacros(
- Bootstrap_Impl const * file, rtl::OUString const & text, LookupMode mode,
- Bootstrap_Impl const * requestFile, rtl::OUString const & requestKey,
- ExpandRequestLink const * requestStack)
-{
- for (; requestStack != NULL; requestStack = requestStack->next) {
- if (requestStack->file == requestFile &&
- requestStack->key == requestKey)
- {
- return rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("***RECURSION DETECTED***"));
- }
- }
- ExpandRequestLink link = { requestStack, requestFile, requestKey };
- return expandMacros(file, text, mode, &link);
-}
-
-}
-
-//----------------------------------------------------------------------------
-
-struct rtl_bootstrap_NameValue
-{
- OUString sName;
- OUString sValue;
-
- inline rtl_bootstrap_NameValue() SAL_THROW( () )
- {}
- inline rtl_bootstrap_NameValue(
- OUString const & name, OUString const & value ) SAL_THROW( () )
- : sName( name ),
- sValue( value )
- {}
-};
-
-typedef std::list<
- rtl_bootstrap_NameValue,
- rtl::Allocator< rtl_bootstrap_NameValue >
-> NameValueList;
-
-bool find(
- NameValueList const & list, rtl::OUString const & key,
- rtl::OUString * value)
-{
- OSL_ASSERT(value != NULL);
- for (NameValueList::const_iterator i(list.begin()); i != list.end(); ++i) {
- if (i->sName == key) {
- *value = i->sValue;
- return true;
- }
- }
- return false;
-}
-
-namespace {
- struct rtl_bootstrap_set_list :
- public rtl::Static< NameValueList, rtl_bootstrap_set_list > {};
-}
-
-//----------------------------------------------------------------------------
-
-static sal_Bool getFromCommandLineArgs(
- rtl::OUString const & key, rtl::OUString * value )
-{
- OSL_ASSERT(value != NULL);
- static NameValueList *pNameValueList = 0;
- if( ! pNameValueList )
- {
- static NameValueList nameValueList;
-
- sal_Int32 nArgCount = osl_getCommandArgCount();
- for(sal_Int32 i = 0; i < nArgCount; ++ i)
- {
- rtl_uString *pArg = 0;
- osl_getCommandArg( i, &pArg );
- if( ('-' == pArg->buffer[0] || '/' == pArg->buffer[0] ) &&
- 'e' == pArg->buffer[1] &&
- 'n' == pArg->buffer[2] &&
- 'v' == pArg->buffer[3] &&
- ':' == pArg->buffer[4] )
- {
- sal_Int32 nIndex = rtl_ustr_indexOfChar( pArg->buffer, '=' );
- if( nIndex >= 0 )
- {
-
- rtl_bootstrap_NameValue nameValue;
- nameValue.sName = OUString( &(pArg->buffer[5]), nIndex - 5 );
- nameValue.sValue = OUString( &(pArg->buffer[nIndex+1]) );
- if( i == nArgCount-1 &&
- nameValue.sValue.getLength() &&
- nameValue.sValue[nameValue.sValue.getLength()-1] == 13 )
- {
- // avoid the 13 linefeed for the last argument,
- // when the executable is started from a script,
- // that was edited on windows
- nameValue.sValue = nameValue.sValue.copy(0,nameValue.sValue.getLength()-1);
- }
- nameValueList.push_back( nameValue );
- }
- }
- rtl_uString_release( pArg );
- }
- pNameValueList = &nameValueList;
- }
-
- sal_Bool found = sal_False;
-
- for( NameValueList::iterator ii = pNameValueList->begin() ;
- ii != pNameValueList->end() ;
- ++ii )
- {
- if( (*ii).sName.equals(key) )
- {
- *value = (*ii).sValue;
- found = sal_True;
- break;
- }
- }
-
- return found;
-}
-
-//----------------------------------------------------------------------------
-
-extern "C" oslProcessError SAL_CALL osl_bootstrap_getExecutableFile_Impl (
- rtl_uString ** ppFileURL) SAL_THROW_EXTERN_C();
-
-inline void getExecutableFile_Impl (rtl_uString ** ppFileURL)
-{
- osl_bootstrap_getExecutableFile_Impl (ppFileURL);
-}
-
-//----------------------------------------------------------------------------
-
-static void getExecutableDirectory_Impl (rtl_uString ** ppDirURL)
-{
- OUString fileName;
- getExecutableFile_Impl (&(fileName.pData));
-
- sal_Int32 nDirEnd = fileName.lastIndexOf('/');
- OSL_ENSURE(nDirEnd >= 0, "Cannot locate executable directory");
-
- rtl_uString_newFromStr_WithLength(ppDirURL,fileName.getStr(),nDirEnd);
-}
-
-//----------------------------------------------------------------------------
-
-static OUString & getIniFileName_Impl()
-{
- static OUString *pStaticName = 0;
- if( ! pStaticName )
- {
- OUString fileName;
-
- if(getFromCommandLineArgs(
- OUString(RTL_CONSTASCII_USTRINGPARAM("INIFILENAME")), &fileName))
- {
- resolvePathnameUrl(&fileName);
- }
- else
- {
- getExecutableFile_Impl (&(fileName.pData));
-
- // get rid of a potential executable extension
- OUString progExt (RTL_CONSTASCII_USTRINGPARAM(".bin"));
- if(fileName.getLength() > progExt.getLength()
- && fileName.copy(fileName.getLength() - progExt.getLength()).equalsIgnoreAsciiCase(progExt))
- fileName = fileName.copy(0, fileName.getLength() - progExt.getLength());
-
- progExt = OUString(RTL_CONSTASCII_USTRINGPARAM(".exe"));
- if(fileName.getLength() > progExt.getLength()
- && fileName.copy(fileName.getLength() - progExt.getLength()).equalsIgnoreAsciiCase(progExt))
- fileName = fileName.copy(0, fileName.getLength() - progExt.getLength());
-
- // append config file suffix
- fileName += OUString(RTL_CONSTASCII_USTRINGPARAM(SAL_CONFIGFILE("")));
- }
-
- static OUString theFileName;
- if(fileName.getLength())
- theFileName = fileName;
-
- pStaticName = &theFileName;
- }
-
- return *pStaticName;
-}
-
-//----------------------------------------------------------------------------
-
-static inline bool path_exists( OUString const & path )
-{
- DirectoryItem dirItem;
- return (DirectoryItem::E_None == DirectoryItem::get( path, dirItem ));
-}
-
-//----------------------------------------------------------------------------
-// #111772#
-// ensure the given file url has no final slash
-
-inline void EnsureNoFinalSlash (rtl::OUString & url)
-{
- sal_Int32 i = url.getLength();
- if (i > 0 && url[i - 1] == '/') {
- url = url.copy(0, i - 1);
- }
-}
-
-struct Bootstrap_Impl
-{
- sal_Int32 _nRefCount;
- Bootstrap_Impl * _base_ini;
-
- NameValueList _nameValueList;
- OUString _iniName;
-
- explicit Bootstrap_Impl (OUString const & rIniName);
- ~Bootstrap_Impl();
-
- static void * operator new (std::size_t n) SAL_THROW(())
- { return rtl_allocateMemory (sal_uInt32(n)); }
- static void operator delete (void * p , std::size_t) SAL_THROW(())
- { rtl_freeMemory (p); }
-
- bool getValue(
- rtl::OUString const & key, rtl_uString ** value,
- rtl_uString * defaultValue, LookupMode mode, bool override,
- ExpandRequestLink const * requestStack) const;
- bool getDirectValue(
- rtl::OUString const & key, rtl_uString ** value, LookupMode mode,
- ExpandRequestLink const * requestStack) const;
- bool getAmbienceValue(
- rtl::OUString const & key, rtl_uString ** value, LookupMode mode,
- ExpandRequestLink const * requestStack) const;
- void expandValue(
- rtl_uString ** value, rtl::OUString const & text, LookupMode mode,
- Bootstrap_Impl const * requestFile, rtl::OUString const & requestKey,
- ExpandRequestLink const * requestStack) const;
-};
-
-//----------------------------------------------------------------------------
-
-Bootstrap_Impl::Bootstrap_Impl( OUString const & rIniName )
- : _nRefCount( 0 ),
- _base_ini( 0 ),
- _iniName (rIniName)
-{
- OUString base_ini( getIniFileName_Impl() );
- // normalize path
- FileStatus status( osl_FileStatus_Mask_FileURL );
- DirectoryItem dirItem;
- if (DirectoryItem::E_None == DirectoryItem::get( base_ini, dirItem ) &&
- DirectoryItem::E_None == dirItem.getFileStatus( status ))
- {
- base_ini = status.getFileURL();
- if (! rIniName.equals( base_ini ))
- {
- _base_ini = static_cast< Bootstrap_Impl * >(
- rtl_bootstrap_args_open( base_ini.pData ) );
- }
- }
-
-#if OSL_DEBUG_LEVEL > 1
- OString sFile = OUStringToOString(_iniName, RTL_TEXTENCODING_ASCII_US);
- OSL_TRACE(__FILE__" -- Bootstrap_Impl() - %s\n", sFile.getStr());
-#endif /* OSL_DEBUG_LEVEL > 1 */
-
- oslFileHandle handle;
- if (_iniName.getLength() &&
- osl_File_E_None == osl_openFile(_iniName.pData, &handle, osl_File_OpenFlag_Read))
- {
- rtl::ByteSequence seq;
-
- while (osl_File_E_None == osl_readLine(handle , (sal_Sequence **)&seq))
- {
- OString line( (const sal_Char *) seq.getConstArray(), seq.getLength() );
- sal_Int32 nIndex = line.indexOf('=');
- if (nIndex >= 1)
- {
- struct rtl_bootstrap_NameValue nameValue;
- nameValue.sName = OStringToOUString(
- line.copy(0,nIndex).trim(), RTL_TEXTENCODING_ASCII_US );
- nameValue.sValue = OStringToOUString(
- line.copy(nIndex+1).trim(), RTL_TEXTENCODING_UTF8 );
-
-#if OSL_DEBUG_LEVEL > 1
- OString name_tmp = OUStringToOString(nameValue.sName, RTL_TEXTENCODING_ASCII_US);
- OString value_tmp = OUStringToOString(nameValue.sValue, RTL_TEXTENCODING_UTF8);
- OSL_TRACE(
- __FILE__" -- pushing: name=%s value=%s\n",
- name_tmp.getStr(), value_tmp.getStr() );
-#endif /* OSL_DEBUG_LEVEL > 1 */
-
- _nameValueList.push_back(nameValue);
- }
- }
- osl_closeFile(handle);
- }
-#if OSL_DEBUG_LEVEL > 1
- else
- {
- OString file_tmp = OUStringToOString(_iniName, RTL_TEXTENCODING_ASCII_US);
- OSL_TRACE( __FILE__" -- couldn't open file: %s", file_tmp.getStr() );
- }
-#endif /* OSL_DEBUG_LEVEL > 1 */
-}
-
-//----------------------------------------------------------------------------
-
-Bootstrap_Impl::~Bootstrap_Impl()
-{
- if (_base_ini != 0)
- rtl_bootstrap_args_close( _base_ini );
-}
-
-//----------------------------------------------------------------------------
-
-namespace {
-
-Bootstrap_Impl * get_static_bootstrap_handle() SAL_THROW(())
-{
- osl::MutexGuard guard( osl::Mutex::getGlobalMutex() );
- static Bootstrap_Impl * s_handle = 0;
- if (s_handle == 0)
- {
- OUString iniName (getIniFileName_Impl());
- s_handle = static_cast< Bootstrap_Impl * >(
- rtl_bootstrap_args_open( iniName.pData ) );
- if (s_handle == 0)
- {
- Bootstrap_Impl * that = new Bootstrap_Impl( iniName );
- ++that->_nRefCount;
- s_handle = that;
- }
- }
- return s_handle;
-}
-
-struct FundamentalIniData {
- rtlBootstrapHandle ini;
-
- FundamentalIniData() {
- OUString uri;
- ini =
- ((static_cast< Bootstrap_Impl * >(get_static_bootstrap_handle())->
- getValue(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("URE_BOOTSTRAP")),
- &uri.pData, 0, LOOKUP_MODE_NORMAL, false, 0)) &&
- resolvePathnameUrl(&uri))
- ? rtl_bootstrap_args_open(uri.pData) : NULL;
- }
-
- ~FundamentalIniData() { rtl_bootstrap_args_close(ini); }
-
-private:
- FundamentalIniData(FundamentalIniData &); // not defined
- void operator =(FundamentalIniData &); // not defined
-};
-
-struct FundamentalIni: public rtl::Static< FundamentalIniData, FundamentalIni >
-{};
-
-}
-
-bool Bootstrap_Impl::getValue(
- rtl::OUString const & key, rtl_uString ** value, rtl_uString * defaultValue,
- LookupMode mode, bool override, ExpandRequestLink const * requestStack)
- const
-{
- if (mode == LOOKUP_MODE_NORMAL &&
- key.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("URE_BOOTSTRAP")))
- {
- mode = LOOKUP_MODE_URE_BOOTSTRAP;
- }
- if (override && getDirectValue(key, value, mode, requestStack)) {
- return true;
- }
- if (key.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("_OS"))) {
- rtl_uString_assign(
- value, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(THIS_OS)).pData);
- return true;
- }
- if (key.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("_ARCH"))) {
- rtl_uString_assign(
- value, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(THIS_ARCH)).pData);
- return true;
- }
- if (key.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("_CPPU_ENV"))) {
- rtl_uString_assign(
- value,
- (rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(MY_STRING(CPPU_ENV))).
- pData));
- return true;
- }
- if (key.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("ORIGIN"))) {
- rtl_uString_assign(
- value,
- _iniName.copy(
- 0, std::max<sal_Int32>(0, _iniName.lastIndexOf('/'))).pData);
- return true;
- }
- if (getAmbienceValue(key, value, mode, requestStack)) {
- return true;
- }
- if (key.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("SYSUSERCONFIG"))) {
- rtl::OUString v;
- bool b = osl::Security().getConfigDir(v);
- EnsureNoFinalSlash(v);
- rtl_uString_assign(value, v.pData);
- return b;
- }
- if (key.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("SYSUSERHOME"))) {
- rtl::OUString v;
- bool b = osl::Security().getHomeDir(v);
- EnsureNoFinalSlash(v);
- rtl_uString_assign(value, v.pData);
- return b;
- }
- if (key.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("SYSBINDIR"))) {
- getExecutableDirectory_Impl(value);
- return true;
- }
- if (_base_ini != NULL &&
- _base_ini->getDirectValue(key, value, mode, requestStack))
- {
- return true;
- }
- if (!override && getDirectValue(key, value, mode, requestStack)) {
- return true;
- }
- if (mode == LOOKUP_MODE_NORMAL) {
- FundamentalIniData const & d = FundamentalIni::get();
- Bootstrap_Impl const * b = static_cast<Bootstrap_Impl const *>(d.ini);
- if (b != NULL && b != this &&
- b->getDirectValue(key, value, mode, requestStack))
- {
- return true;
- }
- }
- if (defaultValue != NULL) {
- rtl_uString_assign(value, defaultValue);
- return true;
- }
- rtl_uString_new(value);
- return false;
-}
-
-bool Bootstrap_Impl::getDirectValue(
- rtl::OUString const & key, rtl_uString ** value, LookupMode mode,
- ExpandRequestLink const * requestStack) const
-{
- rtl::OUString v;
- if (find(_nameValueList, key, &v)) {
- expandValue(value, v, mode, this, key, requestStack);
- return true;
- } else {
- return false;
- }
-}
-
-bool Bootstrap_Impl::getAmbienceValue(
- rtl::OUString const & key, rtl_uString ** value, LookupMode mode,
- ExpandRequestLink const * requestStack) const
-{
- rtl::OUString v;
- bool f;
- {
- osl::MutexGuard g(osl::Mutex::getGlobalMutex());
- f = find(rtl_bootstrap_set_list::get(), key, &v);
- }
- if (f || getFromCommandLineArgs(key, &v) ||
- osl_getEnvironment(key.pData, &v.pData) == osl_Process_E_None)
- {
- expandValue(value, v, mode, NULL, key, requestStack);
- return true;
- } else {
- return false;
- }
-}
-
-void Bootstrap_Impl::expandValue(
- rtl_uString ** value, rtl::OUString const & text, LookupMode mode,
- Bootstrap_Impl const * requestFile, rtl::OUString const & requestKey,
- ExpandRequestLink const * requestStack) const
-{
- rtl_uString_assign(
- value,
- (mode == LOOKUP_MODE_URE_BOOTSTRAP && isPathnameUrl(text) ?
- text :
- recursivelyExpandMacros(
- this, text,
- (mode == LOOKUP_MODE_URE_BOOTSTRAP ?
- LOOKUP_MODE_URE_BOOTSTRAP_EXPANSION : mode),
- requestFile, requestKey, requestStack)).pData);
-}
-
-namespace {
-
-struct bootstrap_map {
- typedef boost::unordered_map<
- rtl::OUString, Bootstrap_Impl *,
- rtl::OUStringHash, std::equal_to< rtl::OUString >,
- rtl::Allocator< OUString > > t;
-
- // get and release must only be called properly synchronized via some mutex
- // (e.g., osl::Mutex::getGlobalMutex()):
-
- static t * get() {
- if (m_map == NULL) {
- m_map = new t;
- }
- return m_map;
- }
-
- static void release() {
- if (m_map != NULL && m_map->empty()) {
- delete m_map;
- m_map = NULL;
- }
- }
-
-private:
- bootstrap_map(); // not defined
-
- static t * m_map;
-};
-
-bootstrap_map::t * bootstrap_map::m_map = NULL;
-
-}
-
-//----------------------------------------------------------------------------
-
-rtlBootstrapHandle SAL_CALL rtl_bootstrap_args_open (
- rtl_uString * pIniName
-) SAL_THROW_EXTERN_C()
-{
- OUString iniName( pIniName );
-
- // normalize path
- FileStatus status( osl_FileStatus_Mask_FileURL );
- DirectoryItem dirItem;
- if (DirectoryItem::E_None != DirectoryItem::get( iniName, dirItem ) ||
- DirectoryItem::E_None != dirItem.getFileStatus( status ))
- {
- return 0;
- }
- iniName = status.getFileURL();
-
- Bootstrap_Impl * that;
- osl::ResettableMutexGuard guard( osl::Mutex::getGlobalMutex() );
- bootstrap_map::t* p_bootstrap_map = bootstrap_map::get();
- bootstrap_map::t::const_iterator iFind( p_bootstrap_map->find( iniName ) );
- if (iFind == p_bootstrap_map->end())
- {
- bootstrap_map::release();
- guard.clear();
- that = new Bootstrap_Impl( iniName );
- guard.reset();
- p_bootstrap_map = bootstrap_map::get();
- iFind = p_bootstrap_map->find( iniName );
- if (iFind == p_bootstrap_map->end())
- {
- ++that->_nRefCount;
- ::std::pair< bootstrap_map::t::iterator, bool > insertion(
- p_bootstrap_map->insert(
- bootstrap_map::t::value_type( iniName, that ) ) );
- OSL_ASSERT( insertion.second );
- }
- else
- {
- Bootstrap_Impl * obsolete = that;
- that = iFind->second;
- ++that->_nRefCount;
- guard.clear();
- delete obsolete;
- }
- }
- else
- {
- that = iFind->second;
- ++that->_nRefCount;
- }
- return static_cast< rtlBootstrapHandle >( that );
-}
-
-//----------------------------------------------------------------------------
-
-void SAL_CALL rtl_bootstrap_args_close (
- rtlBootstrapHandle handle
-) SAL_THROW_EXTERN_C()
-{
- if (handle == 0)
- return;
- Bootstrap_Impl * that = static_cast< Bootstrap_Impl * >( handle );
-
- osl::MutexGuard guard( osl::Mutex::getGlobalMutex() );
- bootstrap_map::t* p_bootstrap_map = bootstrap_map::get();
- OSL_ASSERT(
- p_bootstrap_map->find( that->_iniName )->second == that );
- --that->_nRefCount;
- if (that->_nRefCount == 0)
- {
- ::std::size_t nLeaking = 8; // only hold up to 8 files statically
-
-#if OSL_DEBUG_LEVEL == 1 // nonpro
- nLeaking = 0;
-#elif OSL_DEBUG_LEVEL > 1 // debug
- nLeaking = 1;
-#endif /* OSL_DEBUG_LEVEL */
-
- if (p_bootstrap_map->size() > nLeaking)
- {
- ::std::size_t erased = p_bootstrap_map->erase( that->_iniName );
- if (erased != 1) {
- OSL_ASSERT( false );
- }
- delete that;
- }
- bootstrap_map::release();
- }
-}
-
-//----------------------------------------------------------------------------
-
-sal_Bool SAL_CALL rtl_bootstrap_get_from_handle(
- rtlBootstrapHandle handle,
- rtl_uString * pName,
- rtl_uString ** ppValue,
- rtl_uString * pDefault
-) SAL_THROW_EXTERN_C()
-{
- osl::MutexGuard guard( osl::Mutex::getGlobalMutex() );
-
- sal_Bool found = sal_False;
- if(ppValue && pName)
- {
- if (handle == 0)
- handle = get_static_bootstrap_handle();
- found = static_cast< Bootstrap_Impl * >( handle )->getValue(
- pName, ppValue, pDefault, LOOKUP_MODE_NORMAL, false, NULL );
- }
-
- return found;
-}
-
-//----------------------------------------------------------------------------
-
-void SAL_CALL rtl_bootstrap_get_iniName_from_handle (
- rtlBootstrapHandle handle,
- rtl_uString ** ppIniName
-) SAL_THROW_EXTERN_C()
-{
- if(ppIniName)
- {
- if(handle)
- {
- Bootstrap_Impl * pImpl = static_cast<Bootstrap_Impl*>(handle);
- rtl_uString_assign(ppIniName, pImpl->_iniName.pData);
- }
- else
- {
- const OUString & iniName = getIniFileName_Impl();
- rtl_uString_assign(ppIniName, iniName.pData);
- }
- }
-}
-
-//----------------------------------------------------------------------------
-
-void SAL_CALL rtl_bootstrap_setIniFileName (
- rtl_uString * pName
-) SAL_THROW_EXTERN_C()
-{
- osl::MutexGuard guard( osl::Mutex::getGlobalMutex() );
- OUString & file = getIniFileName_Impl();
- file = pName;
-}
-
-//----------------------------------------------------------------------------
-
-sal_Bool SAL_CALL rtl_bootstrap_get (
- rtl_uString * pName,
- rtl_uString ** ppValue,
- rtl_uString * pDefault
-) SAL_THROW_EXTERN_C()
-{
- return rtl_bootstrap_get_from_handle(0, pName, ppValue, pDefault);
-}
-
-//----------------------------------------------------------------------------
-
-void SAL_CALL rtl_bootstrap_set (
- rtl_uString * pName,
- rtl_uString * pValue
-) SAL_THROW_EXTERN_C()
-{
- const OUString name( pName );
- const OUString value( pValue );
-
- osl::MutexGuard guard( osl::Mutex::getGlobalMutex() );
-
- NameValueList& r_rtl_bootstrap_set_list = rtl_bootstrap_set_list::get();
- NameValueList::iterator iPos( r_rtl_bootstrap_set_list.begin() );
- NameValueList::iterator iEnd( r_rtl_bootstrap_set_list.end() );
- for ( ; iPos != iEnd; ++iPos )
- {
- if (iPos->sName.equals( name ))
- {
- iPos->sValue = value;
- return;
- }
- }
-
-#if OSL_DEBUG_LEVEL > 1
- OString cstr_name( OUStringToOString( name, RTL_TEXTENCODING_ASCII_US ) );
- OString cstr_value( OUStringToOString( value, RTL_TEXTENCODING_ASCII_US ) );
- OSL_TRACE(
- "bootstrap.cxx: explicitly setting: name=%s value=%s\n",
- cstr_name.getStr(), cstr_value.getStr() );
-#endif /* OSL_DEBUG_LEVEL > 1 */
-
- r_rtl_bootstrap_set_list.push_back( rtl_bootstrap_NameValue( name, value ) );
-}
-
-//----------------------------------------------------------------------------
-
-void SAL_CALL rtl_bootstrap_expandMacros_from_handle (
- rtlBootstrapHandle handle,
- rtl_uString ** macro
-) SAL_THROW_EXTERN_C()
-{
- if (handle == NULL) {
- handle = get_static_bootstrap_handle();
- }
- OUString expanded( expandMacros( static_cast< Bootstrap_Impl * >( handle ),
- * reinterpret_cast< OUString const * >( macro ),
- LOOKUP_MODE_NORMAL, NULL ) );
- rtl_uString_assign( macro, expanded.pData );
-}
-
-//----------------------------------------------------------------------------
-
-void SAL_CALL rtl_bootstrap_expandMacros(
- rtl_uString ** macro )
- SAL_THROW_EXTERN_C()
-{
- rtl_bootstrap_expandMacros_from_handle(NULL, macro);
-}
-
-void rtl_bootstrap_encode( rtl_uString const * value, rtl_uString ** encoded )
- SAL_THROW_EXTERN_C()
-{
- OSL_ASSERT(value != NULL);
- rtl::OUStringBuffer b;
- for (sal_Int32 i = 0; i < value->length; ++i) {
- sal_Unicode c = value->buffer[i];
- if (c == '$' || c == '\\') {
- b.append(sal_Unicode('\\'));
- }
- b.append(c);
- }
- rtl_uString_assign(encoded, b.makeStringAndClear().pData);
-}
-
-namespace {
-
-int hex(sal_Unicode c) {
- return
- c >= '0' && c <= '9' ? c - '0' :
- c >= 'A' && c <= 'F' ? c - 'A' + 10 :
- c >= 'a' && c <= 'f' ? c - 'a' + 10 : -1;
-}
-
-sal_Unicode read(rtl::OUString const & text, sal_Int32 * pos, bool * escaped) {
- OSL_ASSERT(
- pos != NULL && *pos >= 0 && *pos < text.getLength() && escaped != NULL);
- sal_Unicode c = text[(*pos)++];
- if (c == '\\') {
- int n1, n2, n3, n4;
- if (*pos < text.getLength() - 4 && text[*pos] == 'u' &&
- ((n1 = hex(text[*pos + 1])) >= 0) &&
- ((n2 = hex(text[*pos + 2])) >= 0) &&
- ((n3 = hex(text[*pos + 3])) >= 0) &&
- ((n4 = hex(text[*pos + 4])) >= 0))
- {
- *pos += 5;
- *escaped = true;
- return static_cast< sal_Unicode >(
- (n1 << 12) | (n2 << 8) | (n3 << 4) | n4);
- } else if (*pos < text.getLength()) {
- *escaped = true;
- return text[(*pos)++];
- }
- }
- *escaped = false;
- return c;
-}
-
-rtl::OUString lookup(
- Bootstrap_Impl const * file, LookupMode mode, bool override,
- rtl::OUString const & key, ExpandRequestLink const * requestStack)
-{
- rtl::OUString v;
- (file == NULL ? get_static_bootstrap_handle() : file)->getValue(
- key, &v.pData, NULL, mode, override, requestStack);
- return v;
-}
-
-rtl::OUString expandMacros(
- Bootstrap_Impl const * file, rtl::OUString const & text, LookupMode mode,
- ExpandRequestLink const * requestStack)
-{
- rtl::OUStringBuffer buf;
- for (sal_Int32 i = 0; i < text.getLength();) {
- bool escaped;
- sal_Unicode c = read(text, &i, &escaped);
- if (escaped || c != '$') {
- buf.append(c);
- } else {
- if (i < text.getLength() && text[i] == '{') {
- ++i;
- sal_Int32 p = i;
- sal_Int32 nesting = 0;
- rtl::OUString seg[3];
- int n = 0;
- while (i < text.getLength()) {
- sal_Int32 j = i;
- c = read(text, &i, &escaped);
- if (!escaped) {
- switch (c) {
- case '{':
- ++nesting;
- break;
- case '}':
- if (nesting == 0) {
- seg[n++] = text.copy(p, j - p);
- goto done;
- } else {
- --nesting;
- }
- break;
- case ':':
- if (nesting == 0 && n < 2) {
- seg[n++] = text.copy(p, j - p);
- p = i;
- }
- break;
- }
- }
- }
- done:
- for (int j = 0; j < n; ++j) {
- seg[j] = expandMacros(file, seg[j], mode, requestStack);
- }
- if (n == 3 && seg[1].getLength() == 0) {
- // For backward compatibility, treat ${file::key} the same
- // as just ${file:key}:
- seg[1] = seg[2];
- n = 2;
- }
- if (n == 1) {
- buf.append(lookup(file, mode, false, seg[0], requestStack));
- } else if (n == 2) {
- if (seg[0].equalsAsciiL(
- RTL_CONSTASCII_STRINGPARAM(".link")))
- {
- osl::File f(seg[1]);
- rtl::ByteSequence seq;
- rtl::OUString line;
- rtl::OUString url;
- // Silently ignore any errors (is that good?):
- if (f.open(osl_File_OpenFlag_Read) == osl::FileBase::E_None &&
- f.readLine(seq) == osl::FileBase::E_None &&
- rtl_convertStringToUString(
- &line.pData,
- reinterpret_cast< char const * >(
- seq.getConstArray()),
- seq.getLength(), RTL_TEXTENCODING_UTF8,
- (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR |
- RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR |
- RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR)) &&
- (osl::File::getFileURLFromSystemPath(line, url) ==
- osl::FileBase::E_None))
- {
- try {
- buf.append(
- rtl::Uri::convertRelToAbs(seg[1], url));
- } catch (const rtl::MalformedUriException &) {}
- }
- } else {
- buf.append(
- lookup(
- static_cast< Bootstrap_Impl * >(
- rtl::Bootstrap(seg[0]).getHandle()),
- mode, false, seg[1], requestStack));
- }
- } else if (seg[0].equalsAsciiL(
- RTL_CONSTASCII_STRINGPARAM(".override")))
- {
- rtl::Bootstrap b(seg[1]);
- Bootstrap_Impl * f = static_cast< Bootstrap_Impl * >(
- b.getHandle());
- buf.append(
- lookup(f, mode, f != NULL, seg[2], requestStack));
- } else {
- // Going through osl::Profile, this code erroneously does
- // not recursively expand macros in the resulting
- // replacement text (and if it did, it would fail to detect
- // cycles that pass through here):
- buf.append(
- rtl::OStringToOUString(
- osl::Profile(seg[0]).readString(
- rtl::OUStringToOString(
- seg[1], RTL_TEXTENCODING_UTF8),
- rtl::OUStringToOString(
- seg[2], RTL_TEXTENCODING_UTF8),
- rtl::OString()),
- RTL_TEXTENCODING_UTF8));
- }
- } else {
- rtl::OUStringBuffer kbuf;
- for (; i < text.getLength();) {
- sal_Int32 j = i;
- c = read(text, &j, &escaped);
- if (!escaped &&
- (c == ' ' || c == '$' || c == '-' || c == '/' ||
- c == ';' || c == '\\'))
- {
- break;
- }
- kbuf.append(c);
- i = j;
- }
- buf.append(
- lookup(
- file, mode, false, kbuf.makeStringAndClear(),
- requestStack));
- }
- }
- }
- return buf.makeStringAndClear();
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/byteseq.c b/sal/rtl/source/byteseq.c
deleted file mode 100644
index 5d72497ec..000000000
--- a/sal/rtl/source/byteseq.c
+++ /dev/null
@@ -1,257 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <osl/diagnose.h>
-#include <osl/interlck.h>
-
-#include <rtl/byteseq.h>
-#include <rtl/alloc.h>
-#include <rtl/memory.h>
-
-/* static data to be referenced by all empty strings
- * the refCount is predefined to 1 and must never become 0 !
- */
-static sal_Sequence aEmpty_rtl_ByteSeq =
-{
- 1, /* sal_Int32 refCount; */
- 0, /* sal_Int32 length; */
- { 0 } /* sal_Unicode buffer[1]; */
-};
-
-//==================================================================================================
-void SAL_CALL rtl_byte_sequence_reference2One(
- sal_Sequence ** ppSequence )
-{
- sal_Sequence * pSequence, * pNew;
- sal_Int32 nElements;
-
- OSL_ENSURE( ppSequence, "### null ptr!" );
- pSequence = *ppSequence;
-
- if (pSequence->nRefCount > 1)
- {
- nElements = pSequence->nElements;
- if (nElements)
- {
- pNew = (sal_Sequence *)rtl_allocateMemory( SAL_SEQUENCE_HEADER_SIZE + nElements );
-
- if ( pNew != 0 )
- rtl_copyMemory( pNew->elements, pSequence->elements, nElements );
-
- if (! osl_decrementInterlockedCount( &pSequence->nRefCount ))
- rtl_freeMemory( pSequence );
- }
- else
- {
- pNew = (sal_Sequence *)rtl_allocateMemory( SAL_SEQUENCE_HEADER_SIZE );
- }
-
- if ( pNew != 0 )
- {
- pNew->nRefCount = 1;
- pNew->nElements = nElements;
- }
-
- *ppSequence = pNew;
- }
-}
-
-//==================================================================================================
-void SAL_CALL rtl_byte_sequence_realloc(
- sal_Sequence ** ppSequence, sal_Int32 nSize )
-{
- sal_Sequence * pSequence, * pNew;
- sal_Int32 nElements;
-
- OSL_ENSURE( ppSequence, "### null ptr!" );
- pSequence = *ppSequence;
- nElements = pSequence->nElements;
-
- if (nElements == nSize)
- return;
-
- if (pSequence->nRefCount > 1) // split
- {
- pNew = (sal_Sequence *)rtl_allocateMemory( SAL_SEQUENCE_HEADER_SIZE + nSize );
-
- if ( pNew != 0 )
- {
- if (nSize > nElements)
- {
- rtl_copyMemory( pNew->elements, pSequence->elements, nElements );
- rtl_zeroMemory( pNew->elements + nElements, nSize - nElements );
- }
- else
- {
- rtl_copyMemory( pNew->elements, pSequence->elements, nSize );
- }
- }
-
- if (! osl_decrementInterlockedCount( &pSequence->nRefCount ))
- rtl_freeMemory( pSequence );
- pSequence = pNew;
- }
- else
- {
- pSequence = (sal_Sequence *)rtl_reallocateMemory(
- pSequence, SAL_SEQUENCE_HEADER_SIZE + nSize );
- }
-
- if ( pSequence != 0 )
- {
- pSequence->nRefCount = 1;
- pSequence->nElements = nSize;
- }
-
- *ppSequence = pSequence;
-}
-
-//==================================================================================================
-void SAL_CALL rtl_byte_sequence_acquire( sal_Sequence *pSequence )
-{
- OSL_ASSERT( pSequence );
- osl_incrementInterlockedCount( &(pSequence->nRefCount) );
-}
-
-//==================================================================================================
-void SAL_CALL rtl_byte_sequence_release( sal_Sequence *pSequence )
-{
- if ( pSequence != 0 )
- {
- if (! osl_decrementInterlockedCount( &(pSequence->nRefCount )) )
- {
- rtl_freeMemory( pSequence );
- }
- }
-}
-
-//==================================================================================================
-void SAL_CALL rtl_byte_sequence_construct( sal_Sequence **ppSequence , sal_Int32 nLength )
-{
- OSL_ASSERT( ppSequence );
- if( *ppSequence )
- {
- rtl_byte_sequence_release( *ppSequence );
- *ppSequence = 0;
- }
-
- if( nLength )
- {
- *ppSequence = (sal_Sequence *) rtl_allocateZeroMemory( SAL_SEQUENCE_HEADER_SIZE + nLength );
-
- if ( *ppSequence != 0 )
- {
- (*ppSequence)->nRefCount = 1;
- (*ppSequence)->nElements = nLength;
- }
- }
- else
- {
- *ppSequence = &aEmpty_rtl_ByteSeq;
- rtl_byte_sequence_acquire( *ppSequence );
- }
-}
-
-//==================================================================================================
-void SAL_CALL rtl_byte_sequence_constructNoDefault( sal_Sequence **ppSequence , sal_Int32 nLength )
-{
- OSL_ASSERT( ppSequence );
- if( *ppSequence )
- {
- rtl_byte_sequence_release( *ppSequence );
- *ppSequence = 0;
- }
-
- *ppSequence = (sal_Sequence *) rtl_allocateMemory( SAL_SEQUENCE_HEADER_SIZE + nLength );
-
- if ( *ppSequence != 0 )
- {
- (*ppSequence)->nRefCount = 1;
- (*ppSequence)->nElements = nLength;
- }
-}
-
-//==================================================================================================
-void SAL_CALL rtl_byte_sequence_constructFromArray(
- sal_Sequence **ppSequence, const sal_Int8 *pData , sal_Int32 nLength )
-{
- rtl_byte_sequence_constructNoDefault( ppSequence , nLength );
- if ( *ppSequence != 0 )
- rtl_copyMemory( (*ppSequence)->elements, pData, nLength );
-}
-
-//==================================================================================================
-void SAL_CALL rtl_byte_sequence_assign( sal_Sequence **ppSequence , sal_Sequence *pSequence )
-{
- if ( *ppSequence != pSequence)
- {
- if( *ppSequence )
- {
- rtl_byte_sequence_release( *ppSequence );
- }
- *ppSequence = pSequence;
- rtl_byte_sequence_acquire( *ppSequence );
- }
-// else
-// nothing to do
-
-}
-
-//==================================================================================================
-sal_Bool SAL_CALL rtl_byte_sequence_equals( sal_Sequence *pSequence1 , sal_Sequence *pSequence2 )
-{
- OSL_ASSERT( pSequence1 );
- OSL_ASSERT( pSequence2 );
- if (pSequence1 == pSequence2)
- {
- return sal_True;
- }
- if (pSequence1->nElements != pSequence2->nElements)
- {
- return sal_False;
- }
- return (sal_Bool)
- (rtl_compareMemory(
- pSequence1->elements, pSequence2->elements, pSequence1->nElements )
- == 0);
-}
-
-
-//==================================================================================================
-const sal_Int8 *SAL_CALL rtl_byte_sequence_getConstArray( sal_Sequence *pSequence )
-{
- return ((const sal_Int8*)(pSequence->elements));
-}
-
-//==================================================================================================
-sal_Int32 SAL_CALL rtl_byte_sequence_getLength( sal_Sequence *pSequence )
-{
- return pSequence->nElements;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/cipher.c b/sal/rtl/source/cipher.c
deleted file mode 100644
index 1b750b0a8..000000000
--- a/sal/rtl/source/cipher.c
+++ /dev/null
@@ -1,1365 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#define _RTL_CIPHER_C_
-
-#include <sal/types.h>
-#include <rtl/alloc.h>
-#include <rtl/memory.h>
-#include <rtl/cipher.h>
-
-/*========================================================================
- *
- * rtlCipher internals.
- *
- *======================================================================*/
-#define RTL_CIPHER_NTOHL(c, l) \
- ((l) = ((sal_uInt32)(*((c)++))) << 24L, \
- (l) |= ((sal_uInt32)(*((c)++))) << 16L, \
- (l) |= ((sal_uInt32)(*((c)++))) << 8L, \
- (l) |= ((sal_uInt32)(*((c)++))))
-
-#define RTL_CIPHER_HTONL(l, c) \
- (*((c)++) = (sal_uInt8)(((l) >> 24L) & 0xff), \
- *((c)++) = (sal_uInt8)(((l) >> 16L) & 0xff), \
- *((c)++) = (sal_uInt8)(((l) >> 8L) & 0xff), \
- *((c)++) = (sal_uInt8)(((l) ) & 0xff))
-
-#define RTL_CIPHER_NTOHL64(c, xl, xr, n) \
-{ \
- (xl) = (xr) = 0; \
- (c) += (n); \
- switch ((n)) \
- { \
- case 8: (xr) = ((sal_uInt32)(*(--(c)))); \
- case 7: (xr) |= ((sal_uInt32)(*(--(c)))) << 8L; \
- case 6: (xr) |= ((sal_uInt32)(*(--(c)))) << 16L; \
- case 5: (xr) |= ((sal_uInt32)(*(--(c)))) << 24L; \
- case 4: (xl) = ((sal_uInt32)(*(--(c)))); \
- case 3: (xl) |= ((sal_uInt32)(*(--(c)))) << 8L; \
- case 2: (xl) |= ((sal_uInt32)(*(--(c)))) << 16L; \
- case 1: (xl) |= ((sal_uInt32)(*(--(c)))) << 24L; \
- } \
-}
-
-#define RTL_CIPHER_HTONL64(xl, xr, c, n) \
-{ \
- (c) += (n); \
- switch ((n)) \
- { \
- case 8: *(--(c)) = (sal_uInt8)(((xr) ) & 0xff); \
- case 7: *(--(c)) = (sal_uInt8)(((xr) >> 8L) & 0xff); \
- case 6: *(--(c)) = (sal_uInt8)(((xr) >> 16L) & 0xff); \
- case 5: *(--(c)) = (sal_uInt8)(((xr) >> 24L) & 0xff); \
- case 4: *(--(c)) = (sal_uInt8)(((xl) ) & 0xff); \
- case 3: *(--(c)) = (sal_uInt8)(((xl) >> 8L) & 0xff); \
- case 2: *(--(c)) = (sal_uInt8)(((xl) >> 16L) & 0xff); \
- case 1: *(--(c)) = (sal_uInt8)(((xl) >> 24L) & 0xff); \
- } \
-}
-
-typedef rtlCipherError (SAL_CALL cipher_init_t) (
- rtlCipher Cipher,
- rtlCipherDirection Direction,
- const sal_uInt8 *pKeyData, sal_Size nKeyLen,
- const sal_uInt8 *pArgData, sal_Size nArgLen);
-
-typedef rtlCipherError (SAL_CALL cipher_update_t) (
- rtlCipher Cipher,
- const void *pData, sal_Size nDatLen,
- sal_uInt8 *pBuffer, sal_Size nBufLen);
-
-typedef void (SAL_CALL cipher_delete_t) (rtlCipher Cipher);
-
-/** Cipher_Impl.
- */
-typedef struct cipher_impl_st
-{
- rtlCipherAlgorithm m_algorithm;
- rtlCipherDirection m_direction;
- rtlCipherMode m_mode;
-
- cipher_init_t *m_init;
- cipher_update_t *m_encode;
- cipher_update_t *m_decode;
- cipher_delete_t *m_delete;
-} Cipher_Impl;
-
-/*========================================================================
- *
- * rtlCipher implementation.
- *
- *======================================================================*/
-/*
- * rtl_cipher_create.
- */
-rtlCipher SAL_CALL rtl_cipher_create (
- rtlCipherAlgorithm Algorithm,
- rtlCipherMode Mode)
-{
- rtlCipher Cipher = (rtlCipher)NULL;
- switch (Algorithm)
- {
- case rtl_Cipher_AlgorithmBF:
- Cipher = rtl_cipher_createBF (Mode);
- break;
-
- case rtl_Cipher_AlgorithmARCFOUR:
- Cipher = rtl_cipher_createARCFOUR (Mode);
- break;
-
- default: /* rtl_Cipher_AlgorithmInvalid */
- break;
- }
- return Cipher;
-}
-
-/*
- * rtl_cipher_init.
- */
-rtlCipherError SAL_CALL rtl_cipher_init (
- rtlCipher Cipher,
- rtlCipherDirection Direction,
- const sal_uInt8 *pKeyData, sal_Size nKeyLen,
- const sal_uInt8 *pArgData, sal_Size nArgLen)
-{
- Cipher_Impl *pImpl = (Cipher_Impl*)Cipher;
- if (pImpl == NULL)
- return rtl_Cipher_E_Argument;
- if (pImpl->m_init == NULL)
- return rtl_Cipher_E_Unknown;
-
- return (pImpl->m_init)(
- Cipher, Direction, pKeyData, nKeyLen, pArgData, nArgLen);
-}
-
-/*
- * rtl_cipher_encode.
- */
-rtlCipherError SAL_CALL rtl_cipher_encode (
- rtlCipher Cipher,
- const void *pData, sal_Size nDatLen,
- sal_uInt8 *pBuffer, sal_Size nBufLen)
-{
- Cipher_Impl *pImpl = (Cipher_Impl*)Cipher;
- if (pImpl == NULL)
- return rtl_Cipher_E_Argument;
- if (pImpl->m_encode == NULL)
- return rtl_Cipher_E_Unknown;
-
- return (pImpl->m_encode)(Cipher, pData, nDatLen, pBuffer, nBufLen);
-}
-
-/*
- * rtl_cipher_decode.
- */
-rtlCipherError SAL_CALL rtl_cipher_decode (
- rtlCipher Cipher,
- const void *pData, sal_Size nDatLen,
- sal_uInt8 *pBuffer, sal_Size nBufLen)
-{
- Cipher_Impl *pImpl = (Cipher_Impl*)Cipher;
- if (pImpl == NULL)
- return rtl_Cipher_E_Argument;
- if (pImpl->m_decode == NULL)
- return rtl_Cipher_E_Unknown;
-
- return (pImpl->m_decode)(Cipher, pData, nDatLen, pBuffer, nBufLen);
-}
-
-/*
- * rtl_cipher_destroy.
- */
-void SAL_CALL rtl_cipher_destroy (rtlCipher Cipher)
-{
- Cipher_Impl *pImpl = (Cipher_Impl*)Cipher;
- if (pImpl && pImpl->m_delete)
- pImpl->m_delete (Cipher);
-}
-
-/*========================================================================
- *
- * rtl_cipherBF (Blowfish) internals.
- *
- *======================================================================*/
-#define CIPHER_ROUNDS_BF 16
-
-typedef struct cipherBF_key_st
-{
- sal_uInt32 m_S[4][256];
- sal_uInt32 m_P[CIPHER_ROUNDS_BF + 2];
-} CipherKeyBF;
-
-typedef struct cipherBF_context_st
-{
- CipherKeyBF m_key;
- union
- {
- sal_uInt32 m_long[2];
- sal_uInt8 m_byte[8];
- } m_iv;
- sal_uInt32 m_offset;
-} CipherContextBF;
-
-typedef struct cipherBF_impl_st
-{
- Cipher_Impl m_cipher;
- CipherContextBF m_context;
-} CipherBF_Impl;
-
-/** __rtl_cipherBF_init.
- */
-static rtlCipherError __rtl_cipherBF_init (
- CipherContextBF *ctx,
- rtlCipherMode eMode,
- const sal_uInt8 *pKeyData, sal_Size nKeyLen,
- const sal_uInt8 *pArgData, sal_Size nArgLen);
-
-/** __rtl_cipherBF_update.
- */
-static rtlCipherError __rtl_cipherBF_update (
- CipherContextBF *ctx,
- rtlCipherMode eMode,
- rtlCipherDirection eDirection,
- const sal_uInt8 *pData, sal_Size nDatLen,
- sal_uInt8 *pBuffer, sal_Size nBufLen);
-
-/** __rtl_cipherBF_updateECB.
- */
-static void __rtl_cipherBF_updateECB (
- CipherContextBF *ctx,
- rtlCipherDirection direction,
- const sal_uInt8 *pData,
- sal_uInt8 *pBuffer,
- sal_Size nLength);
-
-/** __rtl_cipherBF_updateCBC.
- */
-static void __rtl_cipherBF_updateCBC (
- CipherContextBF *ctx,
- rtlCipherDirection direction,
- const sal_uInt8 *pData,
- sal_uInt8 *pBuffer,
- sal_Size nLength);
-
-/** __rtl_cipherBF_updateCFB.
- */
-static void __rtl_cipherBF_updateCFB (
- CipherContextBF *ctx,
- rtlCipherDirection direction,
- const sal_uInt8 *pData,
- sal_uInt8 *pBuffer);
-
-/** __rtl_cipher_encode.
- */
-static void __rtl_cipherBF_encode (
- CipherKeyBF *key, sal_uInt32 *xl, sal_uInt32 *xr);
-
-/** __rtl_cipherBF_decode.
- */
-static void __rtl_cipherBF_decode (
- CipherKeyBF *key, sal_uInt32 *xl, sal_uInt32 *xr);
-
-/** __rtl_cipherBF.
- */
-static sal_uInt32 __rtl_cipherBF (
- CipherKeyBF *key, sal_uInt32 x);
-
-/** __rtl_cipherBF_key.
- */
-static const CipherKeyBF __rtl_cipherBF_key =
-{
- /* S */
- {
- /* S[0] */
- {
- /* 0 */
- 0xD1310BA6L, 0x98DFB5ACL, 0x2FFD72DBL, 0xD01ADFB7L,
- 0xB8E1AFEDL, 0x6A267E96L, 0xBA7C9045L, 0xF12C7F99L,
- 0x24A19947L, 0xB3916CF7L, 0x0801F2E2L, 0x858EFC16L,
- 0x636920D8L, 0x71574E69L, 0xA458FEA3L, 0xF4933D7EL,
-
- /* 1 */
- 0x0D95748FL, 0x728EB658L, 0x718BCD58L, 0x82154AEEL,
- 0x7B54A41DL, 0xC25A59B5L, 0x9C30D539L, 0x2AF26013L,
- 0xC5D1B023L, 0x286085F0L, 0xCA417918L, 0xB8DB38EFL,
- 0x8E79DCB0L, 0x603A180EL, 0x6C9E0E8BL, 0xB01E8A3EL,
-
- /* 2 */
- 0xD71577C1L, 0xBD314B27L, 0x78AF2FDAL, 0x55605C60L,
- 0xE65525F3L, 0xAA55AB94L, 0x57489862L, 0x63E81440L,
- 0x55CA396AL, 0x2AAB10B6L, 0xB4CC5C34L, 0x1141E8CEL,
- 0xA15486AFL, 0x7C72E993L, 0xB3EE1411L, 0x636FBC2AL,
-
- /* 3 */
- 0x2BA9C55DL, 0x741831F6L, 0xCE5C3E16L, 0x9B87931EL,
- 0xAFD6BA33L, 0x6C24CF5CL, 0x7A325381L, 0x28958677L,
- 0x3B8F4898L, 0x6B4BB9AFL, 0xC4BFE81BL, 0x66282193L,
- 0x61D809CCL, 0xFB21A991L, 0x487CAC60L, 0x5DEC8032L,
-
- /* 4 */
- 0xEF845D5DL, 0xE98575B1L, 0xDC262302L, 0xEB651B88L,
- 0x23893E81L, 0xD396ACC5L, 0x0F6D6FF3L, 0x83F44239L,
- 0x2E0B4482L, 0xA4842004L, 0x69C8F04AL, 0x9E1F9B5EL,
- 0x21C66842L, 0xF6E96C9AL, 0x670C9C61L, 0xABD388F0L,
-
- /* 5 */
- 0x6A51A0D2L, 0xD8542F68L, 0x960FA728L, 0xAB5133A3L,
- 0x6EEF0B6CL, 0x137A3BE4L, 0xBA3BF050L, 0x7EFB2A98L,
- 0xA1F1651DL, 0x39AF0176L, 0x66CA593EL, 0x82430E88L,
- 0x8CEE8619L, 0x456F9FB4L, 0x7D84A5C3L, 0x3B8B5EBEL,
-
- /* 6 */
- 0xE06F75D8L, 0x85C12073L, 0x401A449FL, 0x56C16AA6L,
- 0x4ED3AA62L, 0x363F7706L, 0x1BFEDF72L, 0x429B023DL,
- 0x37D0D724L, 0xD00A1248L, 0xDB0FEAD3L, 0x49F1C09BL,
- 0x075372C9L, 0x80991B7BL, 0x25D479D8L, 0xF6E8DEF7L,
-
- /* 7 */
- 0xE3FE501AL, 0xB6794C3BL, 0x976CE0BDL, 0x04C006BAL,
- 0xC1A94FB6L, 0x409F60C4L, 0x5E5C9EC2L, 0x196A2463L,
- 0x68FB6FAFL, 0x3E6C53B5L, 0x1339B2EBL, 0x3B52EC6FL,
- 0x6DFC511FL, 0x9B30952CL, 0xCC814544L, 0xAF5EBD09L,
-
- /* 8 */
- 0xBEE3D004L, 0xDE334AFDL, 0x660F2807L, 0x192E4BB3L,
- 0xC0CBA857L, 0x45C8740FL, 0xD20B5F39L, 0xB9D3FBDBL,
- 0x5579C0BDL, 0x1A60320AL, 0xD6A100C6L, 0x402C7279L,
- 0x679F25FEL, 0xFB1FA3CCL, 0x8EA5E9F8L, 0xDB3222F8L,
-
- /* 9 */
- 0x3C7516DFL, 0xFD616B15L, 0x2F501EC8L, 0xAD0552ABL,
- 0x323DB5FAL, 0xFD238760L, 0x53317B48L, 0x3E00DF82L,
- 0x9E5C57BBL, 0xCA6F8CA0L, 0x1A87562EL, 0xDF1769DBL,
- 0xD542A8F6L, 0x287EFFC3L, 0xAC6732C6L, 0x8C4F5573L,
-
- /* A */
- 0x695B27B0L, 0xBBCA58C8L, 0xE1FFA35DL, 0xB8F011A0L,
- 0x10FA3D98L, 0xFD2183B8L, 0x4AFCB56CL, 0x2DD1D35BL,
- 0x9A53E479L, 0xB6F84565L, 0xD28E49BCL, 0x4BFB9790L,
- 0xE1DDF2DAL, 0xA4CB7E33L, 0x62FB1341L, 0xCEE4C6E8L,
-
- /* B */
- 0xEF20CADAL, 0x36774C01L, 0xD07E9EFEL, 0x2BF11FB4L,
- 0x95DBDA4DL, 0xAE909198L, 0xEAAD8E71L, 0x6B93D5A0L,
- 0xD08ED1D0L, 0xAFC725E0L, 0x8E3C5B2FL, 0x8E7594B7L,
- 0x8FF6E2FBL, 0xF2122B64L, 0x8888B812L, 0x900DF01CL,
-
- /* C */
- 0x4FAD5EA0L, 0x688FC31CL, 0xD1CFF191L, 0xB3A8C1ADL,
- 0x2F2F2218L, 0xBE0E1777L, 0xEA752DFEL, 0x8B021FA1L,
- 0xE5A0CC0FL, 0xB56F74E8L, 0x18ACF3D6L, 0xCE89E299L,
- 0xB4A84FE0L, 0xFD13E0B7L, 0x7CC43B81L, 0xD2ADA8D9L,
-
- /* D */
- 0x165FA266L, 0x80957705L, 0x93CC7314L, 0x211A1477L,
- 0xE6AD2065L, 0x77B5FA86L, 0xC75442F5L, 0xFB9D35CFL,
- 0xEBCDAF0CL, 0x7B3E89A0L, 0xD6411BD3L, 0xAE1E7E49L,
- 0x00250E2DL, 0x2071B35EL, 0x226800BBL, 0x57B8E0AFL,
-
- /* E */
- 0x2464369BL, 0xF009B91EL, 0x5563911DL, 0x59DFA6AAL,
- 0x78C14389L, 0xD95A537FL, 0x207D5BA2L, 0x02E5B9C5L,
- 0x83260376L, 0x6295CFA9L, 0x11C81968L, 0x4E734A41L,
- 0xB3472DCAL, 0x7B14A94AL, 0x1B510052L, 0x9A532915L,
-
- /* F */
- 0xD60F573FL, 0xBC9BC6E4L, 0x2B60A476L, 0x81E67400L,
- 0x08BA6FB5L, 0x571BE91FL, 0xF296EC6BL, 0x2A0DD915L,
- 0xB6636521L, 0xE7B9F9B6L, 0xFF34052EL, 0xC5855664L,
- 0x53B02D5DL, 0xA99F8FA1L, 0x08BA4799L, 0x6E85076AL
- },
-
- /* S[1] */
- {
- 0x4B7A70E9L, 0xB5B32944L, 0xDB75092EL, 0xC4192623L,
- 0xAD6EA6B0L, 0x49A7DF7DL, 0x9CEE60B8L, 0x8FEDB266L,
- 0xECAA8C71L, 0x699A17FFL, 0x5664526CL, 0xC2B19EE1L,
- 0x193602A5L, 0x75094C29L, 0xA0591340L, 0xE4183A3EL,
-
- 0x3F54989AL, 0x5B429D65L, 0x6B8FE4D6L, 0x99F73FD6L,
- 0xA1D29C07L, 0xEFE830F5L, 0x4D2D38E6L, 0xF0255DC1L,
- 0x4CDD2086L, 0x8470EB26L, 0x6382E9C6L, 0x021ECC5EL,
- 0x09686B3FL, 0x3EBAEFC9L, 0x3C971814L, 0x6B6A70A1L,
-
- 0x687F3584L, 0x52A0E286L, 0xB79C5305L, 0xAA500737L,
- 0x3E07841CL, 0x7FDEAE5CL, 0x8E7D44ECL, 0x5716F2B8L,
- 0xB03ADA37L, 0xF0500C0DL, 0xF01C1F04L, 0x0200B3FFL,
- 0xAE0CF51AL, 0x3CB574B2L, 0x25837A58L, 0xDC0921BDL,
-
- 0xD19113F9L, 0x7CA92FF6L, 0x94324773L, 0x22F54701L,
- 0x3AE5E581L, 0x37C2DADCL, 0xC8B57634L, 0x9AF3DDA7L,
- 0xA9446146L, 0x0FD0030EL, 0xECC8C73EL, 0xA4751E41L,
- 0xE238CD99L, 0x3BEA0E2FL, 0x3280BBA1L, 0x183EB331L,
-
- 0x4E548B38L, 0x4F6DB908L, 0x6F420D03L, 0xF60A04BFL,
- 0x2CB81290L, 0x24977C79L, 0x5679B072L, 0xBCAF89AFL,
- 0xDE9A771FL, 0xD9930810L, 0xB38BAE12L, 0xDCCF3F2EL,
- 0x5512721FL, 0x2E6B7124L, 0x501ADDE6L, 0x9F84CD87L,
-
- 0x7A584718L, 0x7408DA17L, 0xBC9F9ABCL, 0xE94B7D8CL,
- 0xEC7AEC3AL, 0xDB851DFAL, 0x63094366L, 0xC464C3D2L,
- 0xEF1C1847L, 0x3215D908L, 0xDD433B37L, 0x24C2BA16L,
- 0x12A14D43L, 0x2A65C451L, 0x50940002L, 0x133AE4DDL,
-
- 0x71DFF89EL, 0x10314E55L, 0x81AC77D6L, 0x5F11199BL,
- 0x043556F1L, 0xD7A3C76BL, 0x3C11183BL, 0x5924A509L,
- 0xF28FE6EDL, 0x97F1FBFAL, 0x9EBABF2CL, 0x1E153C6EL,
- 0x86E34570L, 0xEAE96FB1L, 0x860E5E0AL, 0x5A3E2AB3L,
-
- 0x771FE71CL, 0x4E3D06FAL, 0x2965DCB9L, 0x99E71D0FL,
- 0x803E89D6L, 0x5266C825L, 0x2E4CC978L, 0x9C10B36AL,
- 0xC6150EBAL, 0x94E2EA78L, 0xA5FC3C53L, 0x1E0A2DF4L,
- 0xF2F74EA7L, 0x361D2B3DL, 0x1939260FL, 0x19C27960L,
-
- 0x5223A708L, 0xF71312B6L, 0xEBADFE6EL, 0xEAC31F66L,
- 0xE3BC4595L, 0xA67BC883L, 0xB17F37D1L, 0x018CFF28L,
- 0xC332DDEFL, 0xBE6C5AA5L, 0x65582185L, 0x68AB9802L,
- 0xEECEA50FL, 0xDB2F953BL, 0x2AEF7DADL, 0x5B6E2F84L,
-
- 0x1521B628L, 0x29076170L, 0xECDD4775L, 0x619F1510L,
- 0x13CCA830L, 0xEB61BD96L, 0x0334FE1EL, 0xAA0363CFL,
- 0xB5735C90L, 0x4C70A239L, 0xD59E9E0BL, 0xCBAADE14L,
- 0xEECC86BCL, 0x60622CA7L, 0x9CAB5CABL, 0xB2F3846EL,
-
- 0x648B1EAFL, 0x19BDF0CAL, 0xA02369B9L, 0x655ABB50L,
- 0x40685A32L, 0x3C2AB4B3L, 0x319EE9D5L, 0xC021B8F7L,
- 0x9B540B19L, 0x875FA099L, 0x95F7997EL, 0x623D7DA8L,
- 0xF837889AL, 0x97E32D77L, 0x11ED935FL, 0x16681281L,
-
- 0x0E358829L, 0xC7E61FD6L, 0x96DEDFA1L, 0x7858BA99L,
- 0x57F584A5L, 0x1B227263L, 0x9B83C3FFL, 0x1AC24696L,
- 0xCDB30AEBL, 0x532E3054L, 0x8FD948E4L, 0x6DBC3128L,
- 0x58EBF2EFL, 0x34C6FFEAL, 0xFE28ED61L, 0xEE7C3C73L,
-
- 0x5D4A14D9L, 0xE864B7E3L, 0x42105D14L, 0x203E13E0L,
- 0x45EEE2B6L, 0xA3AAABEAL, 0xDB6C4F15L, 0xFACB4FD0L,
- 0xC742F442L, 0xEF6ABBB5L, 0x654F3B1DL, 0x41CD2105L,
- 0xD81E799EL, 0x86854DC7L, 0xE44B476AL, 0x3D816250L,
-
- 0xCF62A1F2L, 0x5B8D2646L, 0xFC8883A0L, 0xC1C7B6A3L,
- 0x7F1524C3L, 0x69CB7492L, 0x47848A0BL, 0x5692B285L,
- 0x095BBF00L, 0xAD19489DL, 0x1462B174L, 0x23820E00L,
- 0x58428D2AL, 0x0C55F5EAL, 0x1DADF43EL, 0x233F7061L,
-
- 0x3372F092L, 0x8D937E41L, 0xD65FECF1L, 0x6C223BDBL,
- 0x7CDE3759L, 0xCBEE7460L, 0x4085F2A7L, 0xCE77326EL,
- 0xA6078084L, 0x19F8509EL, 0xE8EFD855L, 0x61D99735L,
- 0xA969A7AAL, 0xC50C06C2L, 0x5A04ABFCL, 0x800BCADCL,
-
- 0x9E447A2EL, 0xC3453484L, 0xFDD56705L, 0x0E1E9EC9L,
- 0xDB73DBD3L, 0x105588CDL, 0x675FDA79L, 0xE3674340L,
- 0xC5C43465L, 0x713E38D8L, 0x3D28F89EL, 0xF16DFF20L,
- 0x153E21E7L, 0x8FB03D4AL, 0xE6E39F2BL, 0xDB83ADF7L
- },
-
- /* S[2] */
- {
- 0xE93D5A68L, 0x948140F7L, 0xF64C261CL, 0x94692934L,
- 0x411520F7L, 0x7602D4F7L, 0xBCF46B2EL, 0xD4A20068L,
- 0xD4082471L, 0x3320F46AL, 0x43B7D4B7L, 0x500061AFL,
- 0x1E39F62EL, 0x97244546L, 0x14214F74L, 0xBF8B8840L,
-
- 0x4D95FC1DL, 0x96B591AFL, 0x70F4DDD3L, 0x66A02F45L,
- 0xBFBC09ECL, 0x03BD9785L, 0x7FAC6DD0L, 0x31CB8504L,
- 0x96EB27B3L, 0x55FD3941L, 0xDA2547E6L, 0xABCA0A9AL,
- 0x28507825L, 0x530429F4L, 0x0A2C86DAL, 0xE9B66DFBL,
-
- 0x68DC1462L, 0xD7486900L, 0x680EC0A4L, 0x27A18DEEL,
- 0x4F3FFEA2L, 0xE887AD8CL, 0xB58CE006L, 0x7AF4D6B6L,
- 0xAACE1E7CL, 0xD3375FECL, 0xCE78A399L, 0x406B2A42L,
- 0x20FE9E35L, 0xD9F385B9L, 0xEE39D7ABL, 0x3B124E8BL,
-
- 0x1DC9FAF7L, 0x4B6D1856L, 0x26A36631L, 0xEAE397B2L,
- 0x3A6EFA74L, 0xDD5B4332L, 0x6841E7F7L, 0xCA7820FBL,
- 0xFB0AF54EL, 0xD8FEB397L, 0x454056ACL, 0xBA489527L,
- 0x55533A3AL, 0x20838D87L, 0xFE6BA9B7L, 0xD096954BL,
-
- 0x55A867BCL, 0xA1159A58L, 0xCCA92963L, 0x99E1DB33L,
- 0xA62A4A56L, 0x3F3125F9L, 0x5EF47E1CL, 0x9029317CL,
- 0xFDF8E802L, 0x04272F70L, 0x80BB155CL, 0x05282CE3L,
- 0x95C11548L, 0xE4C66D22L, 0x48C1133FL, 0xC70F86DCL,
-
- 0x07F9C9EEL, 0x41041F0FL, 0x404779A4L, 0x5D886E17L,
- 0x325F51EBL, 0xD59BC0D1L, 0xF2BCC18FL, 0x41113564L,
- 0x257B7834L, 0x602A9C60L, 0xDFF8E8A3L, 0x1F636C1BL,
- 0x0E12B4C2L, 0x02E1329EL, 0xAF664FD1L, 0xCAD18115L,
-
- 0x6B2395E0L, 0x333E92E1L, 0x3B240B62L, 0xEEBEB922L,
- 0x85B2A20EL, 0xE6BA0D99L, 0xDE720C8CL, 0x2DA2F728L,
- 0xD0127845L, 0x95B794FDL, 0x647D0862L, 0xE7CCF5F0L,
- 0x5449A36FL, 0x877D48FAL, 0xC39DFD27L, 0xF33E8D1EL,
-
- 0x0A476341L, 0x992EFF74L, 0x3A6F6EABL, 0xF4F8FD37L,
- 0xA812DC60L, 0xA1EBDDF8L, 0x991BE14CL, 0xDB6E6B0DL,
- 0xC67B5510L, 0x6D672C37L, 0x2765D43BL, 0xDCD0E804L,
- 0xF1290DC7L, 0xCC00FFA3L, 0xB5390F92L, 0x690FED0BL,
-
- 0x667B9FFBL, 0xCEDB7D9CL, 0xA091CF0BL, 0xD9155EA3L,
- 0xBB132F88L, 0x515BAD24L, 0x7B9479BFL, 0x763BD6EBL,
- 0x37392EB3L, 0xCC115979L, 0x8026E297L, 0xF42E312DL,
- 0x6842ADA7L, 0xC66A2B3BL, 0x12754CCCL, 0x782EF11CL,
-
- 0x6A124237L, 0xB79251E7L, 0x06A1BBE6L, 0x4BFB6350L,
- 0x1A6B1018L, 0x11CAEDFAL, 0x3D25BDD8L, 0xE2E1C3C9L,
- 0x44421659L, 0x0A121386L, 0xD90CEC6EL, 0xD5ABEA2AL,
- 0x64AF674EL, 0xDA86A85FL, 0xBEBFE988L, 0x64E4C3FEL,
-
- 0x9DBC8057L, 0xF0F7C086L, 0x60787BF8L, 0x6003604DL,
- 0xD1FD8346L, 0xF6381FB0L, 0x7745AE04L, 0xD736FCCCL,
- 0x83426B33L, 0xF01EAB71L, 0xB0804187L, 0x3C005E5FL,
- 0x77A057BEL, 0xBDE8AE24L, 0x55464299L, 0xBF582E61L,
-
- 0x4E58F48FL, 0xF2DDFDA2L, 0xF474EF38L, 0x8789BDC2L,
- 0x5366F9C3L, 0xC8B38E74L, 0xB475F255L, 0x46FCD9B9L,
- 0x7AEB2661L, 0x8B1DDF84L, 0x846A0E79L, 0x915F95E2L,
- 0x466E598EL, 0x20B45770L, 0x8CD55591L, 0xC902DE4CL,
-
- 0xB90BACE1L, 0xBB8205D0L, 0x11A86248L, 0x7574A99EL,
- 0xB77F19B6L, 0xE0A9DC09L, 0x662D09A1L, 0xC4324633L,
- 0xE85A1F02L, 0x09F0BE8CL, 0x4A99A025L, 0x1D6EFE10L,
- 0x1AB93D1DL, 0x0BA5A4DFL, 0xA186F20FL, 0x2868F169L,
-
- 0xDCB7DA83L, 0x573906FEL, 0xA1E2CE9BL, 0x4FCD7F52L,
- 0x50115E01L, 0xA70683FAL, 0xA002B5C4L, 0x0DE6D027L,
- 0x9AF88C27L, 0x773F8641L, 0xC3604C06L, 0x61A806B5L,
- 0xF0177A28L, 0xC0F586E0L, 0x006058AAL, 0x30DC7D62L,
-
- 0x11E69ED7L, 0x2338EA63L, 0x53C2DD94L, 0xC2C21634L,
- 0xBBCBEE56L, 0x90BCB6DEL, 0xEBFC7DA1L, 0xCE591D76L,
- 0x6F05E409L, 0x4B7C0188L, 0x39720A3DL, 0x7C927C24L,
- 0x86E3725FL, 0x724D9DB9L, 0x1AC15BB4L, 0xD39EB8FCL,
-
- 0xED545578L, 0x08FCA5B5L, 0xD83D7CD3L, 0x4DAD0FC4L,
- 0x1E50EF5EL, 0xB161E6F8L, 0xA28514D9L, 0x6C51133CL,
- 0x6FD5C7E7L, 0x56E14EC4L, 0x362ABFCEL, 0xDDC6C837L,
- 0xD79A3234L, 0x92638212L, 0x670EFA8EL, 0x406000E0L
- },
-
- /* S[3] */
- {
- 0x3A39CE37L, 0xD3FAF5CFL, 0xABC27737L, 0x5AC52D1BL,
- 0x5CB0679EL, 0x4FA33742L, 0xD3822740L, 0x99BC9BBEL,
- 0xD5118E9DL, 0xBF0F7315L, 0xD62D1C7EL, 0xC700C47BL,
- 0xB78C1B6BL, 0x21A19045L, 0xB26EB1BEL, 0x6A366EB4L,
-
- 0x5748AB2FL, 0xBC946E79L, 0xC6A376D2L, 0x6549C2C8L,
- 0x530FF8EEL, 0x468DDE7DL, 0xD5730A1DL, 0x4CD04DC6L,
- 0x2939BBDBL, 0xA9BA4650L, 0xAC9526E8L, 0xBE5EE304L,
- 0xA1FAD5F0L, 0x6A2D519AL, 0x63EF8CE2L, 0x9A86EE22L,
-
- 0xC089C2B8L, 0x43242EF6L, 0xA51E03AAL, 0x9CF2D0A4L,
- 0x83C061BAL, 0x9BE96A4DL, 0x8FE51550L, 0xBA645BD6L,
- 0x2826A2F9L, 0xA73A3AE1L, 0x4BA99586L, 0xEF5562E9L,
- 0xC72FEFD3L, 0xF752F7DAL, 0x3F046F69L, 0x77FA0A59L,
-
- 0x80E4A915L, 0x87B08601L, 0x9B09E6ADL, 0x3B3EE593L,
- 0xE990FD5AL, 0x9E34D797L, 0x2CF0B7D9L, 0x022B8B51L,
- 0x96D5AC3AL, 0x017DA67DL, 0xD1CF3ED6L, 0x7C7D2D28L,
- 0x1F9F25CFL, 0xADF2B89BL, 0x5AD6B472L, 0x5A88F54CL,
-
- 0xE029AC71L, 0xE019A5E6L, 0x47B0ACFDL, 0xED93FA9BL,
- 0xE8D3C48DL, 0x283B57CCL, 0xF8D56629L, 0x79132E28L,
- 0x785F0191L, 0xED756055L, 0xF7960E44L, 0xE3D35E8CL,
- 0x15056DD4L, 0x88F46DBAL, 0x03A16125L, 0x0564F0BDL,
-
- 0xC3EB9E15L, 0x3C9057A2L, 0x97271AECL, 0xA93A072AL,
- 0x1B3F6D9BL, 0x1E6321F5L, 0xF59C66FBL, 0x26DCF319L,
- 0x7533D928L, 0xB155FDF5L, 0x03563482L, 0x8ABA3CBBL,
- 0x28517711L, 0xC20AD9F8L, 0xABCC5167L, 0xCCAD925FL,
-
- 0x4DE81751L, 0x3830DC8EL, 0x379D5862L, 0x9320F991L,
- 0xEA7A90C2L, 0xFB3E7BCEL, 0x5121CE64L, 0x774FBE32L,
- 0xA8B6E37EL, 0xC3293D46L, 0x48DE5369L, 0x6413E680L,
- 0xA2AE0810L, 0xDD6DB224L, 0x69852DFDL, 0x09072166L,
-
- 0xB39A460AL, 0x6445C0DDL, 0x586CDECFL, 0x1C20C8AEL,
- 0x5BBEF7DDL, 0x1B588D40L, 0xCCD2017FL, 0x6BB4E3BBL,
- 0xDDA26A7EL, 0x3A59FF45L, 0x3E350A44L, 0xBCB4CDD5L,
- 0x72EACEA8L, 0xFA6484BBL, 0x8D6612AEL, 0xBF3C6F47L,
-
- 0xD29BE463L, 0x542F5D9EL, 0xAEC2771BL, 0xF64E6370L,
- 0x740E0D8DL, 0xE75B1357L, 0xF8721671L, 0xAF537D5DL,
- 0x4040CB08L, 0x4EB4E2CCL, 0x34D2466AL, 0x0115AF84L,
- 0xE1B00428L, 0x95983A1DL, 0x06B89FB4L, 0xCE6EA048L,
-
- 0x6F3F3B82L, 0x3520AB82L, 0x011A1D4BL, 0x277227F8L,
- 0x611560B1L, 0xE7933FDCL, 0xBB3A792BL, 0x344525BDL,
- 0xA08839E1L, 0x51CE794BL, 0x2F32C9B7L, 0xA01FBAC9L,
- 0xE01CC87EL, 0xBCC7D1F6L, 0xCF0111C3L, 0xA1E8AAC7L,
-
- 0x1A908749L, 0xD44FBD9AL, 0xD0DADECBL, 0xD50ADA38L,
- 0x0339C32AL, 0xC6913667L, 0x8DF9317CL, 0xE0B12B4FL,
- 0xF79E59B7L, 0x43F5BB3AL, 0xF2D519FFL, 0x27D9459CL,
- 0xBF97222CL, 0x15E6FC2AL, 0x0F91FC71L, 0x9B941525L,
-
- 0xFAE59361L, 0xCEB69CEBL, 0xC2A86459L, 0x12BAA8D1L,
- 0xB6C1075EL, 0xE3056A0CL, 0x10D25065L, 0xCB03A442L,
- 0xE0EC6E0EL, 0x1698DB3BL, 0x4C98A0BEL, 0x3278E964L,
- 0x9F1F9532L, 0xE0D392DFL, 0xD3A0342BL, 0x8971F21EL,
-
- 0x1B0A7441L, 0x4BA3348CL, 0xC5BE7120L, 0xC37632D8L,
- 0xDF359F8DL, 0x9B992F2EL, 0xE60B6F47L, 0x0FE3F11DL,
- 0xE54CDA54L, 0x1EDAD891L, 0xCE6279CFL, 0xCD3E7E6FL,
- 0x1618B166L, 0xFD2C1D05L, 0x848FD2C5L, 0xF6FB2299L,
-
- 0xF523F357L, 0xA6327623L, 0x93A83531L, 0x56CCCD02L,
- 0xACF08162L, 0x5A75EBB5L, 0x6E163697L, 0x88D273CCL,
- 0xDE966292L, 0x81B949D0L, 0x4C50901BL, 0x71C65614L,
- 0xE6C6C7BDL, 0x327A140AL, 0x45E1D006L, 0xC3F27B9AL,
-
- 0xC9AA53FDL, 0x62A80F00L, 0xBB25BFE2L, 0x35BDD2F6L,
- 0x71126905L, 0xB2040222L, 0xB6CBCF7CL, 0xCD769C2BL,
- 0x53113EC0L, 0x1640E3D3L, 0x38ABBD60L, 0x2547ADF0L,
- 0xBA38209CL, 0xF746CE76L, 0x77AFA1C5L, 0x20756060L,
-
- 0x85CBFE4EL, 0x8AE88DD8L, 0x7AAAF9B0L, 0x4CF9AA7EL,
- 0x1948C25CL, 0x02FB8A8CL, 0x01C36AE4L, 0xD6EBE1F9L,
- 0x90D4F869L, 0xA65CDEA0L, 0x3F09252DL, 0xC208E69FL,
- 0xB74E6132L, 0xCE77E25BL, 0x578FDFE3L, 0x3AC372E6L
- }
- },
-
- /* P */
- {
- 0x243F6A88L, 0x85A308D3L, 0x13198A2EL, 0x03707344L,
- 0xA4093822L, 0x299F31D0L, 0x082EFA98L, 0xEC4E6C89L,
- 0x452821E6L, 0x38D01377L, 0xBE5466CFL, 0x34E90C6CL,
- 0xC0AC29B7L, 0xC97C50DDL, 0x3F84D5B5L, 0xB5470917L,
- 0x9216D5D9L, 0x8979FB1BL
- }
-};
-
-/*
- * __rtl_cipherBF_init.
- */
-static rtlCipherError __rtl_cipherBF_init (
- CipherContextBF *ctx,
- rtlCipherMode eMode,
- const sal_uInt8 *pKeyData, sal_Size nKeyLen,
- const sal_uInt8 *pArgData, sal_Size nArgLen)
-{
- CipherKeyBF *key;
- sal_uInt32 D, DL, DR;
- sal_uInt16 i, j, k;
-
- key = &(ctx->m_key);
-
- rtl_copyMemory (key, &__rtl_cipherBF_key, sizeof (CipherKeyBF));
- rtl_zeroMemory (&(ctx->m_iv), sizeof(ctx->m_iv));
- ctx->m_offset = 0;
-
- for (i = 0, k = 0; i < CIPHER_ROUNDS_BF + 2; ++i)
- {
- D = 0;
- for (j = 0; j < 4; ++j)
- {
- D = ((D << 8) | pKeyData[k]);
- k++;
- if (k >= nKeyLen)
- k = 0;
- }
- key->m_P[i] ^= D;
- }
-
- DL = 0;
- DR = 0;
-
- for (i = 0; i < CIPHER_ROUNDS_BF + 2; i += 2)
- {
- __rtl_cipherBF_encode (key, &DL, &DR);
- key->m_P[i ] = DL;
- key->m_P[i + 1] = DR;
- }
-
- for (i = 0; i < 4; ++i)
- {
- for (k = 0; k < 256; k += 2)
- {
- __rtl_cipherBF_encode (key, &DL, &DR);
- key->m_S[i][k ] = DL;
- key->m_S[i][k + 1] = DR;
- }
- }
-
- if (pArgData && nArgLen)
- {
- nArgLen = ((nArgLen < 8) ? nArgLen : 8);
- if (eMode == rtl_Cipher_ModeStream)
- {
- rtl_copyMemory (ctx->m_iv.m_byte, pArgData, nArgLen);
- }
- else
- {
- RTL_CIPHER_NTOHL64 (pArgData, DL, DR, nArgLen);
- ctx->m_iv.m_long[0] = DL;
- ctx->m_iv.m_long[1] = DR;
- }
- }
-
- D = DL = DR = 0;
- return rtl_Cipher_E_None;
-}
-
-/*
- * __rtl_cipherBF_update.
- */
-static rtlCipherError __rtl_cipherBF_update (
- CipherContextBF *ctx,
- rtlCipherMode eMode,
- rtlCipherDirection eDirection,
- const sal_uInt8 *pData, sal_Size nDatLen,
- sal_uInt8 *pBuffer, sal_Size nBufLen)
-{
- /* Check arguments. */
- if ((pData == NULL) || (pBuffer == NULL))
- return rtl_Cipher_E_Argument;
-
- if (!((0 < nDatLen) && (nDatLen <= nBufLen)))
- return rtl_Cipher_E_BufferSize;
-
- /* Update. */
- if (eMode == rtl_Cipher_ModeECB)
- {
- /* Block mode. */
- while (nDatLen > 8)
- {
- __rtl_cipherBF_updateECB (ctx, eDirection, pData, pBuffer, 8);
- nDatLen -= 8;
- pData += 8;
- pBuffer += 8;
- }
- __rtl_cipherBF_updateECB (ctx, eDirection, pData, pBuffer, nDatLen);
- }
- else if (eMode == rtl_Cipher_ModeCBC)
- {
- /* Block mode. */
- while (nDatLen > 8)
- {
- __rtl_cipherBF_updateCBC (ctx, eDirection, pData, pBuffer, 8);
- nDatLen -= 8;
- pData += 8;
- pBuffer += 8;
- }
- __rtl_cipherBF_updateCBC (ctx, eDirection, pData, pBuffer, nDatLen);
- }
- else
- {
- /* Stream mode. */
- while (nDatLen > 0)
- {
- __rtl_cipherBF_updateCFB (ctx, eDirection, pData, pBuffer);
- nDatLen -= 1;
- pData += 1;
- pBuffer += 1;
- }
- }
- return rtl_Cipher_E_None;
-}
-
-/*
- * __rtl_cipherBF_updateECB.
- */
-static void __rtl_cipherBF_updateECB (
- CipherContextBF *ctx,
- rtlCipherDirection direction,
- const sal_uInt8 *pData,
- sal_uInt8 *pBuffer,
- sal_Size nLength)
-{
- CipherKeyBF *key;
- sal_uInt32 DL, DR;
-
- key = &(ctx->m_key);
- if (direction == rtl_Cipher_DirectionEncode)
- {
- RTL_CIPHER_NTOHL64(pData, DL, DR, nLength);
-
- __rtl_cipherBF_encode (key, &DL, &DR);
-
- RTL_CIPHER_HTONL(DL, pBuffer);
- RTL_CIPHER_HTONL(DR, pBuffer);
- }
- else
- {
- RTL_CIPHER_NTOHL(pData, DL);
- RTL_CIPHER_NTOHL(pData, DR);
-
- __rtl_cipherBF_decode (key, &DL, &DR);
-
- RTL_CIPHER_HTONL64(DL, DR, pBuffer, nLength);
- }
- DL = DR = 0;
-}
-
-/*
- * __rtl_cipherBF_updateCBC.
- */
-static void __rtl_cipherBF_updateCBC (
- CipherContextBF *ctx,
- rtlCipherDirection direction,
- const sal_uInt8 *pData,
- sal_uInt8 *pBuffer,
- sal_Size nLength)
-{
- CipherKeyBF *key;
- sal_uInt32 DL, DR;
-
- key = &(ctx->m_key);
- if (direction == rtl_Cipher_DirectionEncode)
- {
- RTL_CIPHER_NTOHL64(pData, DL, DR, nLength);
-
- DL ^= ctx->m_iv.m_long[0];
- DR ^= ctx->m_iv.m_long[1];
-
- __rtl_cipherBF_encode (key, &DL, &DR);
-
- ctx->m_iv.m_long[0] = DL;
- ctx->m_iv.m_long[1] = DR;
-
- RTL_CIPHER_HTONL(DL, pBuffer);
- RTL_CIPHER_HTONL(DR, pBuffer);
- }
- else
- {
- sal_uInt32 IVL, IVR;
-
- RTL_CIPHER_NTOHL(pData, DL);
- RTL_CIPHER_NTOHL(pData, DR);
-
- IVL = DL;
- IVR = DR;
-
- __rtl_cipherBF_decode (key, &DL, &DR);
-
- DL ^= ctx->m_iv.m_long[0];
- DR ^= ctx->m_iv.m_long[1];
-
- ctx->m_iv.m_long[0] = IVL;
- ctx->m_iv.m_long[1] = IVR;
-
- RTL_CIPHER_HTONL64(DL, DR, pBuffer, nLength);
- IVL = IVR = 0;
- }
- DL = DR = 0;
-}
-
-/*
- * __rtl_cipherBF_updateCFB.
- */
-static void __rtl_cipherBF_updateCFB (
- CipherContextBF *ctx,
- rtlCipherDirection direction,
- const sal_uInt8 *pData,
- sal_uInt8 *pBuffer)
-{
- sal_uInt8 *iv;
- sal_uInt32 k;
-
- iv = ctx->m_iv.m_byte;
- k = ctx->m_offset;
-
- if (k == 0)
- {
- sal_uInt32 IVL, IVR;
-
- RTL_CIPHER_NTOHL64(iv, IVL, IVR, 8);
- __rtl_cipherBF_encode (&(ctx->m_key), &IVL, &IVR);
- RTL_CIPHER_HTONL64(IVL, IVR, iv, 8);
-
- IVL = IVR = 0;
- }
-
- if (direction == rtl_Cipher_DirectionEncode)
- {
- iv[k] ^= *pData;
- *pBuffer = iv[k];
- }
- else
- {
- sal_uInt8 c = iv[k];
- iv[k] = *pData;
- *pBuffer = *pData ^ c;
- }
-
- ctx->m_offset = ((k + 1) & 0x07);
- iv = NULL;
-}
-
-/*
- * __rtl_cipherBF_encode.
- */
-static void __rtl_cipherBF_encode (
- CipherKeyBF *key, sal_uInt32 *xl, sal_uInt32 *xr)
-{
- sal_uInt32 t, XL, XR;
- sal_uInt16 i;
-
- XL = *xl;
- XR = *xr;
-
- for (i = 0; i < CIPHER_ROUNDS_BF; ++i)
- {
- XL ^= key->m_P[i];
- XR ^= __rtl_cipherBF (key, XL);
-
- t = XL;
- XL = XR;
- XR = t;
- }
-
- t = XL;
- XL = XR;
- XR = t;
-
- XR ^= key->m_P[CIPHER_ROUNDS_BF ];
- XL ^= key->m_P[CIPHER_ROUNDS_BF + 1];
-
- *xl = XL;
- *xr = XR;
-
- t = XL = XR = 0;
-}
-
-/*
- * __rtl_cipherBF_decode.
- */
-static void __rtl_cipherBF_decode (
- CipherKeyBF *key, sal_uInt32 *xl, sal_uInt32 *xr)
-{
- sal_uInt32 t, XL, XR;
- sal_uInt16 i;
-
- XL = *xl;
- XR = *xr;
-
- for (i = CIPHER_ROUNDS_BF + 1; i > 1; --i)
- {
- XL ^= key->m_P[i];
- XR ^= __rtl_cipherBF (key, XL);
-
- t = XL;
- XL = XR;
- XR = t;
- }
-
- t = XL;
- XL = XR;
- XR = t;
-
- XR ^= key->m_P[1];
- XL ^= key->m_P[0];
-
- *xl = XL;
- *xr = XR;
-
- t = XL = XR = 0;
-}
-
-/*
- * __rtl_cipherBF.
- */
-static sal_uInt32 __rtl_cipherBF (CipherKeyBF *key, sal_uInt32 x)
-{
- sal_uInt16 a, b, c, d;
- sal_uInt32 y;
-
- d = (sal_uInt16)(x & 0x00ff);
- x >>= 8;
- c = (sal_uInt16)(x & 0x00ff);
- x >>= 8;
- b = (sal_uInt16)(x & 0x00ff);
- x >>= 8;
- a = (sal_uInt16)(x & 0x00ff);
-
- y = key->m_S[0][a];
- y += key->m_S[1][b];
- y ^= key->m_S[2][c];
- y += key->m_S[3][d];
-
- return y;
-}
-
-/*========================================================================
- *
- * rtl_cipherBF (Blowfish) implementation.
- *
- * Reference:
- * Bruce Schneier: Applied Cryptography, 2nd edition, ch. 14.3
- *
- *======================================================================*/
-/*
- * rtl_cipher_createBF.
- */
-rtlCipher SAL_CALL rtl_cipher_createBF (rtlCipherMode Mode)
-{
- CipherBF_Impl *pImpl = (CipherBF_Impl*)NULL;
-
- if (Mode == rtl_Cipher_ModeInvalid)
- return ((rtlCipher)NULL);
-
- pImpl = ((CipherBF_Impl*)rtl_allocateZeroMemory (sizeof (CipherBF_Impl)));
- if (pImpl)
- {
- pImpl->m_cipher.m_algorithm = rtl_Cipher_AlgorithmBF;
- pImpl->m_cipher.m_direction = rtl_Cipher_DirectionInvalid;
- pImpl->m_cipher.m_mode = Mode;
-
- pImpl->m_cipher.m_init = rtl_cipher_initBF;
- pImpl->m_cipher.m_encode = rtl_cipher_encodeBF;
- pImpl->m_cipher.m_decode = rtl_cipher_decodeBF;
- pImpl->m_cipher.m_delete = rtl_cipher_destroyBF;
- }
- return ((rtlCipher)pImpl);
-}
-
-/*
- * rtl_cipher_initBF.
- */
-rtlCipherError SAL_CALL rtl_cipher_initBF (
- rtlCipher Cipher,
- rtlCipherDirection Direction,
- const sal_uInt8 *pKeyData, sal_Size nKeyLen,
- const sal_uInt8 *pArgData, sal_Size nArgLen)
-{
- CipherBF_Impl *pImpl = (CipherBF_Impl*)Cipher;
-
- if ((pImpl == NULL) || (pKeyData == NULL))
- return rtl_Cipher_E_Argument;
-
- if (!(pImpl->m_cipher.m_algorithm == rtl_Cipher_AlgorithmBF))
- return rtl_Cipher_E_Algorithm;
-
- if (!(Direction == rtl_Cipher_DirectionInvalid))
- pImpl->m_cipher.m_direction = Direction;
- else
- return rtl_Cipher_E_Direction;
-
- return __rtl_cipherBF_init (
- &(pImpl->m_context), pImpl->m_cipher.m_mode,
- pKeyData, nKeyLen, pArgData, nArgLen);
-}
-
-/*
- * rtl_cipher_encodeBF.
- */
-rtlCipherError SAL_CALL rtl_cipher_encodeBF (
- rtlCipher Cipher,
- const void *pData, sal_Size nDatLen,
- sal_uInt8 *pBuffer, sal_Size nBufLen)
-{
- CipherBF_Impl *pImpl = (CipherBF_Impl*)Cipher;
- if (pImpl == NULL)
- return rtl_Cipher_E_Argument;
-
- if (!(pImpl->m_cipher.m_algorithm == rtl_Cipher_AlgorithmBF))
- return rtl_Cipher_E_Algorithm;
-
- if (pImpl->m_cipher.m_direction == rtl_Cipher_DirectionInvalid)
- return rtl_Cipher_E_Direction;
- if (pImpl->m_cipher.m_direction == rtl_Cipher_DirectionDecode)
- return rtl_Cipher_E_Direction;
-
- return __rtl_cipherBF_update (
- &(pImpl->m_context), pImpl->m_cipher.m_mode,
- rtl_Cipher_DirectionEncode,
- (const sal_uInt8*)pData, nDatLen, pBuffer, nBufLen);
-}
-
-/*
- * rtl_cipher_decodeBF.
- */
-rtlCipherError SAL_CALL rtl_cipher_decodeBF (
- rtlCipher Cipher,
- const void *pData, sal_Size nDatLen,
- sal_uInt8 *pBuffer, sal_Size nBufLen)
-{
- CipherBF_Impl *pImpl = (CipherBF_Impl*)Cipher;
- if (pImpl == NULL)
- return rtl_Cipher_E_Argument;
-
- if (!(pImpl->m_cipher.m_algorithm == rtl_Cipher_AlgorithmBF))
- return rtl_Cipher_E_Algorithm;
-
- if (pImpl->m_cipher.m_direction == rtl_Cipher_DirectionInvalid)
- return rtl_Cipher_E_Direction;
- if (pImpl->m_cipher.m_direction == rtl_Cipher_DirectionEncode)
- return rtl_Cipher_E_Direction;
-
- return __rtl_cipherBF_update (
- &(pImpl->m_context), pImpl->m_cipher.m_mode,
- rtl_Cipher_DirectionDecode,
- (const sal_uInt8*)pData, nDatLen, pBuffer, nBufLen);
-}
-
-/*
- * rtl_cipher_destroyBF.
- */
-void SAL_CALL rtl_cipher_destroyBF (rtlCipher Cipher)
-{
- CipherBF_Impl *pImpl = (CipherBF_Impl*)Cipher;
- if (pImpl)
- {
- if (pImpl->m_cipher.m_algorithm == rtl_Cipher_AlgorithmBF)
- rtl_freeZeroMemory (pImpl, sizeof (CipherBF_Impl));
- else
- rtl_freeMemory (pImpl);
- }
-}
-
-/*========================================================================
- *
- * rtl_cipher_ARCFOUR (RC4) internals.
- *
- *======================================================================*/
-#define CIPHER_CBLOCK_ARCFOUR 256
-
-typedef struct cipherARCFOUR_context_st
-{
- unsigned int m_S[CIPHER_CBLOCK_ARCFOUR];
- unsigned int m_X, m_Y;
-} ContextARCFOUR_Impl;
-
-typedef struct cipherARCFOUR_impl_st
-{
- Cipher_Impl m_cipher;
- ContextARCFOUR_Impl m_context;
-} CipherARCFOUR_Impl;
-
-/** rtl_cipherARCFOUR_update_Impl.
- */
-static rtlCipherError rtl_cipherARCFOUR_update_Impl (
- ContextARCFOUR_Impl *ctx,
- const sal_uInt8 *pData, sal_Size nDatLen,
- sal_uInt8 *pBuffer, sal_Size nBufLen);
-
-/*
- * rtl_cipherARCFOUR_init_Impl.
- */
-static rtlCipherError rtl_cipherARCFOUR_init_Impl (
- ContextARCFOUR_Impl *ctx,
- const sal_uInt8 *pKeyData, sal_Size nKeyLen)
-{
- unsigned int K[CIPHER_CBLOCK_ARCFOUR];
- unsigned int *L, *S;
- unsigned int x, y, t;
- sal_Size n, k;
-
- S = &(ctx->m_S[0]);
-
- /* Initialize S linearly. */
- for (x = 0; x < CIPHER_CBLOCK_ARCFOUR; x++)
- S[x] = x;
-
- /* Initialize K with key, repeat key as necessary. */
- for (L = K, n = CIPHER_CBLOCK_ARCFOUR; n > nKeyLen; n -= nKeyLen)
- {
- for (k = 0; k < nKeyLen; k++) L[k] = pKeyData[k];
- L += nKeyLen;
- }
- for (k = 0; k < n; k++) L[k] = pKeyData[k];
-
- /* Initialize S with K. */
- for (x = 0, y = 0; x < CIPHER_CBLOCK_ARCFOUR; x++)
- {
- y = (y + S[x] + K[x]) % CIPHER_CBLOCK_ARCFOUR;
- t = S[x], S[x] = S[y], S[y] = t; /* swap S[x] and S[y] */
- }
-
- /* Initialize counters X and Y. */
- ctx->m_X = 0;
- ctx->m_Y = 0;
-
- return rtl_Cipher_E_None;
-}
-
-/*
- * rtl_cipherARCFOUR_update_Impl.
- */
-static rtlCipherError rtl_cipherARCFOUR_update_Impl (
- ContextARCFOUR_Impl *ctx,
- const sal_uInt8 *pData, sal_Size nDatLen,
- sal_uInt8 *pBuffer, sal_Size nBufLen)
-{
- register unsigned int *S;
- register unsigned int x, y, t;
- sal_Size k;
-
- /* Check arguments. */
- if ((pData == NULL) || (pBuffer == NULL))
- return rtl_Cipher_E_Argument;
-
- if (!((0 < nDatLen) && (nDatLen <= nBufLen)))
- return rtl_Cipher_E_BufferSize;
-
- /* Update. */
- S = &(ctx->m_S[0]);
- for (k = 0; k < nDatLen; k++)
- {
- /* Update counters X and Y. */
- x = ctx->m_X;
- y = ctx->m_Y;
- x = (x + 1 ) % CIPHER_CBLOCK_ARCFOUR;
- y = (y + S[x]) % CIPHER_CBLOCK_ARCFOUR;
- ctx->m_X = x;
- ctx->m_Y = y;
-
- /* Swap S[x] and S[y]. */
- t = S[x], S[x] = S[y], S[y] = t;
-
- /* Evaluate next key byte S[t]. */
- t = (S[x] + S[y]) % CIPHER_CBLOCK_ARCFOUR;
- pBuffer[k] = pData[k] ^ ((sal_uInt8)(S[t] & 0xff));
- }
-
- return rtl_Cipher_E_None;
-}
-
-/*========================================================================
- *
- * rtl_cipher_ARCFOUR (RC4) implementation.
- *
- * Reference:
- * Bruce Schneier: Applied Cryptography, 2nd edition, ch. 17.1
- *
- *======================================================================*/
-/*
- * rtl_cipher_createARCFOUR.
- */
-rtlCipher SAL_CALL rtl_cipher_createARCFOUR (rtlCipherMode Mode)
-{
- CipherARCFOUR_Impl *pImpl = (CipherARCFOUR_Impl*)NULL;
-
- if (!(Mode == rtl_Cipher_ModeStream))
- return ((rtlCipher)NULL);
-
- pImpl = ((CipherARCFOUR_Impl*)rtl_allocateZeroMemory (sizeof (CipherARCFOUR_Impl)));
- if (pImpl)
- {
- pImpl->m_cipher.m_algorithm = rtl_Cipher_AlgorithmARCFOUR;
- pImpl->m_cipher.m_direction = rtl_Cipher_DirectionInvalid;
- pImpl->m_cipher.m_mode = rtl_Cipher_ModeStream;
-
- pImpl->m_cipher.m_init = rtl_cipher_initARCFOUR;
- pImpl->m_cipher.m_encode = rtl_cipher_encodeARCFOUR;
- pImpl->m_cipher.m_decode = rtl_cipher_decodeARCFOUR;
- pImpl->m_cipher.m_delete = rtl_cipher_destroyARCFOUR;
- }
- return ((rtlCipher)pImpl);
-}
-
-/*
- * rtl_cipher_initARCFOUR.
- */
-rtlCipherError SAL_CALL rtl_cipher_initARCFOUR (
- rtlCipher Cipher,
- rtlCipherDirection Direction,
- const sal_uInt8 *pKeyData, sal_Size nKeyLen,
- const sal_uInt8 *pArgData, sal_Size nArgLen)
-{
- CipherARCFOUR_Impl *pImpl = (CipherARCFOUR_Impl*)Cipher;
- (void) pArgData; // avoid warning
- (void) nArgLen; // avoid warning
-
- if ((pImpl == NULL) || (pKeyData == NULL))
- return rtl_Cipher_E_Argument;
-
- if (!(pImpl->m_cipher.m_algorithm == rtl_Cipher_AlgorithmARCFOUR))
- return rtl_Cipher_E_Algorithm;
-
- if (!(Direction == rtl_Cipher_DirectionInvalid))
- pImpl->m_cipher.m_direction = Direction;
- else
- return rtl_Cipher_E_Direction;
-
- return rtl_cipherARCFOUR_init_Impl (&(pImpl->m_context), pKeyData, nKeyLen);
-}
-
-/*
- * rtl_cipher_encodeARCFOUR.
- */
-rtlCipherError SAL_CALL rtl_cipher_encodeARCFOUR (
- rtlCipher Cipher,
- const void *pData, sal_Size nDatLen,
- sal_uInt8 *pBuffer, sal_Size nBufLen)
-{
- CipherARCFOUR_Impl *pImpl = (CipherARCFOUR_Impl*)Cipher;
- if (pImpl == NULL)
- return rtl_Cipher_E_Argument;
-
- if (!(pImpl->m_cipher.m_algorithm == rtl_Cipher_AlgorithmARCFOUR))
- return rtl_Cipher_E_Algorithm;
-
- if (pImpl->m_cipher.m_direction == rtl_Cipher_DirectionInvalid)
- return rtl_Cipher_E_Direction;
-
- return rtl_cipherARCFOUR_update_Impl (
- &(pImpl->m_context),
- (const sal_uInt8*)pData, nDatLen, pBuffer, nBufLen);
-}
-
-/*
- * rtl_cipher_decodeARCFOUR.
- */
-rtlCipherError SAL_CALL rtl_cipher_decodeARCFOUR (
- rtlCipher Cipher,
- const void *pData, sal_Size nDatLen,
- sal_uInt8 *pBuffer, sal_Size nBufLen)
-{
- CipherARCFOUR_Impl *pImpl = (CipherARCFOUR_Impl*)Cipher;
- if (pImpl == NULL)
- return rtl_Cipher_E_Argument;
-
- if (!(pImpl->m_cipher.m_algorithm == rtl_Cipher_AlgorithmARCFOUR))
- return rtl_Cipher_E_Algorithm;
-
- if (pImpl->m_cipher.m_direction == rtl_Cipher_DirectionInvalid)
- return rtl_Cipher_E_Direction;
-
- return rtl_cipherARCFOUR_update_Impl (
- &(pImpl->m_context),
- (const sal_uInt8*)pData, nDatLen, pBuffer, nBufLen);
-}
-
-/*
- * rtl_cipher_destroyARCFOUR.
- */
-void SAL_CALL rtl_cipher_destroyARCFOUR (rtlCipher Cipher)
-{
- CipherARCFOUR_Impl *pImpl = (CipherARCFOUR_Impl*)Cipher;
- if (pImpl)
- {
- if (pImpl->m_cipher.m_algorithm == rtl_Cipher_AlgorithmARCFOUR)
- rtl_freeZeroMemory (pImpl, sizeof (CipherARCFOUR_Impl));
- else
- rtl_freeMemory (pImpl);
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/cmdargs.cxx b/sal/rtl/source/cmdargs.cxx
deleted file mode 100644
index 108a0316f..000000000
--- a/sal/rtl/source/cmdargs.cxx
+++ /dev/null
@@ -1,112 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <osl/mutex.hxx>
-#include <rtl/process.h>
-#include <rtl/ustring.hxx>
-
-namespace {
-
-rtl_uString ** g_ppCommandArgs = 0;
-sal_uInt32 g_nCommandArgCount = 0;
-
-struct ArgHolder
-{
- ~ArgHolder();
-};
-
-ArgHolder::~ArgHolder()
-{
- while (g_nCommandArgCount > 0)
- rtl_uString_release (g_ppCommandArgs[--g_nCommandArgCount]);
-
- rtl_freeMemory (g_ppCommandArgs);
- g_ppCommandArgs = 0;
-}
-
-// The destructor of this static ArgHolder is "activated" by the assignments to
-// g_ppCommandArgs and g_nCommandArgCount in init():
-ArgHolder argHolder;
-
-void init()
-{
- osl::MutexGuard guard( osl::Mutex::getGlobalMutex() );
- if (!g_ppCommandArgs)
- {
- sal_Int32 i, n = osl_getCommandArgCount();
-
- g_ppCommandArgs =
- (rtl_uString**)rtl_allocateZeroMemory (n * sizeof(rtl_uString*));
- for (i = 0; i < n; i++)
- {
- rtl_uString * pArg = 0;
- osl_getCommandArg (i, &pArg);
- if (('-' == pArg->buffer[0] || '/' == pArg->buffer[0]) &&
- 'e' == pArg->buffer[1] &&
- 'n' == pArg->buffer[2] &&
- 'v' == pArg->buffer[3] &&
- ':' == pArg->buffer[4] &&
- rtl_ustr_indexOfChar (&(pArg->buffer[5]), '=') >= 0 )
- {
- // ignore.
- rtl_uString_release (pArg);
- }
- else
- {
- // assign.
- g_ppCommandArgs[g_nCommandArgCount++] = pArg;
- }
- }
- }
-}
-
-}
-
-oslProcessError SAL_CALL rtl_getAppCommandArg (
- sal_uInt32 nArg, rtl_uString **ppCommandArg)
-{
- init();
- oslProcessError result = osl_Process_E_NotFound;
- if( nArg < g_nCommandArgCount )
- {
- rtl_uString_assign( ppCommandArg, g_ppCommandArgs[nArg] );
- result = osl_Process_E_None;
- }
- return (result);
-}
-
-sal_uInt32 SAL_CALL rtl_getAppCommandArgCount (void)
-{
- init();
- return g_nCommandArgCount;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/crc.c b/sal/rtl/source/crc.c
deleted file mode 100644
index 03e72de69..000000000
--- a/sal/rtl/source/crc.c
+++ /dev/null
@@ -1,166 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#define _RTL_CRC_C_
-
-#include <sal/types.h>
-#include <rtl/crc.h>
-
-/*========================================================================
- *
- * rtl_crc32Table (CRC polynomial 0xEDB88320).
- *
- *======================================================================*/
-static const sal_uInt32 rtl_crc32Table[256] =
-{
- /* 0 */
- 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,
- 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,
- 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,
- 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,
-
- /* 1 */
- 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,
- 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,
- 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,
- 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,
-
- /* 2 */
- 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,
- 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,
- 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,
- 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,
-
- /* 3 */
- 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,
- 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,
- 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,
- 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,
-
- /* 4 */
- 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,
- 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,
- 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,
- 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,
-
- /* 5 */
- 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,
- 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,
- 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,
- 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,
-
- /* 6 */
- 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,
- 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,
- 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,
- 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,
-
- /* 7 */
- 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,
- 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,
- 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,
- 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,
-
- /* 8 */
- 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,
- 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,
- 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,
- 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,
-
- /* 9 */
- 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,
- 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,
- 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,
- 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,
-
- /* A */
- 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,
- 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,
- 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,
- 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,
-
- /* B */
- 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,
- 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,
- 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,
- 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,
-
- /* C */
- 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,
- 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,
- 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,
- 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,
-
- /* D */
- 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,
- 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,
- 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,
- 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,
-
- /* E */
- 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,
- 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,
- 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,
- 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,
-
- /* F */
- 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,
- 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,
- 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,
- 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D
-};
-
-/*========================================================================
- *
- * rtl_crc32 implementation.
- *
- *======================================================================*/
-#define UPDCRC32(crc, octet) \
- (rtl_crc32Table[((crc) ^ (octet)) & 0xff] ^ ((crc) >> 8))
-
-/*
- * rtl_crc32.
- */
-sal_uInt32 SAL_CALL rtl_crc32 (
- sal_uInt32 Crc,
- const void *Data, sal_uInt32 DatLen)
-{
- if (Data)
- {
- register const sal_uInt8 *p = (const sal_uInt8 *)Data;
- register const sal_uInt8 *q = p + DatLen;
-
- Crc = ~Crc;
- while (p < q)
- Crc = UPDCRC32(Crc, *(p++));
- Crc = ~Crc;
- }
- return Crc;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/debugprint.cxx b/sal/rtl/source/debugprint.cxx
deleted file mode 100644
index 38d4cb587..000000000
--- a/sal/rtl/source/debugprint.cxx
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <rtl/string.hxx>
-#include <rtl/strbuf.hxx>
-#include <rtl/ustring.hxx>
-#include <rtl/ustrbuf.hxx>
-
-const sal_Char *dbg_dump(const rtl::OString &rStr)
-{
- return rStr.getStr();
-}
-
-const sal_Char *dbg_dump(const rtl::OStringBuffer &rStrBuf)
-{
- return rStrBuf.getStr();
-}
-
-const sal_Char *dbg_dump(rtl_String *pStr)
-{
- return rtl_string_getStr(pStr);
-}
-
-const sal_Char *dbg_dump(const rtl::OUString &rStr)
-{
- return dbg_dump(rtl::OUStringToOString(rStr, RTL_TEXTENCODING_UTF8));
-}
-
-const sal_Char *dbg_dump(const rtl::OUStringBuffer &rStrBuf)
-{
- return dbg_dump(rtl::OUString(rStrBuf.getStr()));
-}
-
-const sal_Char *dbg_dump(rtl_uString *pStr)
-{
- return dbg_dump(rtl::OUString(pStr));
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/digest.c b/sal/rtl/source/digest.c
deleted file mode 100644
index 1d43fc8ba..000000000
--- a/sal/rtl/source/digest.c
+++ /dev/null
@@ -1,2121 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#define _RTL_DIGEST_C_
-
-#include <sal/types.h>
-#include <sal/macros.h>
-#include <osl/endian.h>
-#include <rtl/alloc.h>
-#include <rtl/memory.h>
-#include <rtl/digest.h>
-
-/*========================================================================
- *
- * rtlDigest internals.
- *
- *======================================================================*/
-#define RTL_DIGEST_CREATE(T) ((T*)(rtl_allocateZeroMemory(sizeof(T))))
-
-#define RTL_DIGEST_ROTL(a,n) (((a) << (n)) | ((a) >> (32 - (n))))
-
-#define RTL_DIGEST_HTONL(l,c) \
- (*((c)++) = (sal_uInt8)(((l) >> 24L) & 0xff), \
- *((c)++) = (sal_uInt8)(((l) >> 16L) & 0xff), \
- *((c)++) = (sal_uInt8)(((l) >> 8L) & 0xff), \
- *((c)++) = (sal_uInt8)(((l) ) & 0xff))
-
-#define RTL_DIGEST_LTOC(l,c) \
- (*((c)++) = (sal_uInt8)(((l) ) & 0xff), \
- *((c)++) = (sal_uInt8)(((l) >> 8L) & 0xff), \
- *((c)++) = (sal_uInt8)(((l) >> 16L) & 0xff), \
- *((c)++) = (sal_uInt8)(((l) >> 24L) & 0xff))
-
-typedef rtlDigestError (SAL_CALL Digest_init_t) (
- void *ctx, const sal_uInt8 *Data, sal_uInt32 DatLen);
-
-typedef void (SAL_CALL Digest_delete_t) (void *ctx);
-
-typedef rtlDigestError (SAL_CALL Digest_update_t) (
- void *ctx, const void *Data, sal_uInt32 DatLen);
-
-typedef rtlDigestError (SAL_CALL Digest_get_t) (
- void *ctx, sal_uInt8 *Buffer, sal_uInt32 BufLen);
-
-typedef struct digest_impl_st
-{
- rtlDigestAlgorithm m_algorithm;
- sal_uInt32 m_length;
-
- Digest_init_t *m_init;
- Digest_delete_t *m_delete;
- Digest_update_t *m_update;
- Digest_get_t *m_get;
-} Digest_Impl;
-
-/*
- * __rtl_digest_swapLong.
- */
-static void __rtl_digest_swapLong (sal_uInt32 *pData, sal_uInt32 nDatLen)
-{
- register sal_uInt32 *X;
- register int i, n;
-
- X = pData;
- n = nDatLen;
-
- for (i = 0; i < n; i++)
- X[i] = OSL_SWAPDWORD(X[i]);
-}
-
-/*========================================================================
- *
- * rtlDigest implementation.
- *
- *======================================================================*/
-/*
- * rtl_digest_create.
- */
-rtlDigest SAL_CALL rtl_digest_create (rtlDigestAlgorithm Algorithm)
-{
- rtlDigest Digest = (rtlDigest)NULL;
- switch (Algorithm)
- {
- case rtl_Digest_AlgorithmMD2:
- Digest = rtl_digest_createMD2();
- break;
-
- case rtl_Digest_AlgorithmMD5:
- Digest = rtl_digest_createMD5();
- break;
-
- case rtl_Digest_AlgorithmSHA:
- Digest = rtl_digest_createSHA();
- break;
-
- case rtl_Digest_AlgorithmSHA1:
- Digest = rtl_digest_createSHA1();
- break;
-
- case rtl_Digest_AlgorithmHMAC_MD5:
- Digest = rtl_digest_createHMAC_MD5();
- break;
-
- case rtl_Digest_AlgorithmHMAC_SHA1:
- Digest = rtl_digest_createHMAC_SHA1();
- break;
-
- default: /* rtl_Digest_AlgorithmInvalid */
- break;
- }
- return Digest;
-}
-
-/*
- * rtl_digest_queryAlgorithm.
- */
-rtlDigestAlgorithm SAL_CALL rtl_digest_queryAlgorithm (rtlDigest Digest)
-{
- Digest_Impl *pImpl = (Digest_Impl *)Digest;
- if (pImpl)
- return pImpl->m_algorithm;
- else
- return rtl_Digest_AlgorithmInvalid;
-}
-
-/*
- * rtl_digest_queryLength.
- */
-sal_uInt32 SAL_CALL rtl_digest_queryLength (rtlDigest Digest)
-{
- Digest_Impl *pImpl = (Digest_Impl *)Digest;
- if (pImpl)
- return pImpl->m_length;
- else
- return 0;
-}
-
-/*
- * rtl_digest_init.
- */
-rtlDigestError SAL_CALL rtl_digest_init (
- rtlDigest Digest, const sal_uInt8 *pData, sal_uInt32 nDatLen)
-{
- Digest_Impl *pImpl = (Digest_Impl *)Digest;
- if (pImpl)
- {
- if (pImpl->m_init)
- return pImpl->m_init (Digest, pData, nDatLen);
- else
- return rtl_Digest_E_None;
- }
- return rtl_Digest_E_Argument;
-}
-
-/*
- * rtl_digest_update.
- */
-rtlDigestError SAL_CALL rtl_digest_update (
- rtlDigest Digest, const void *pData, sal_uInt32 nDatLen)
-{
- Digest_Impl *pImpl = (Digest_Impl *)Digest;
- if (pImpl && pImpl->m_update)
- return pImpl->m_update (Digest, pData, nDatLen);
- else
- return rtl_Digest_E_Argument;
-}
-
-/*
- * rtl_digest_get.
- */
-rtlDigestError SAL_CALL rtl_digest_get (
- rtlDigest Digest, sal_uInt8 *pBuffer, sal_uInt32 nBufLen)
-{
- Digest_Impl *pImpl = (Digest_Impl *)Digest;
- if (pImpl && pImpl->m_get)
- return pImpl->m_get (Digest, pBuffer, nBufLen);
- else
- return rtl_Digest_E_Argument;
-}
-
-/*
- * rtl_digest_destroy.
- */
-void SAL_CALL rtl_digest_destroy (rtlDigest Digest)
-{
- Digest_Impl *pImpl = (Digest_Impl *)Digest;
- if (pImpl && pImpl->m_delete)
- pImpl->m_delete (Digest);
-}
-
-/*========================================================================
- *
- * rtl_digest_MD2 internals.
- *
- *======================================================================*/
-#define DIGEST_CBLOCK_MD2 16
-#define DIGEST_LBLOCK_MD2 16
-
-typedef struct digestMD2_context_st
-{
- sal_uInt32 m_nDatLen;
- sal_uInt8 m_pData[DIGEST_CBLOCK_MD2];
- sal_uInt32 m_state[DIGEST_LBLOCK_MD2];
- sal_uInt32 m_chksum[DIGEST_LBLOCK_MD2];
-} DigestContextMD2;
-
-typedef struct digestMD2_impl_st
-{
- Digest_Impl m_digest;
- DigestContextMD2 m_context;
-} DigestMD2_Impl;
-
-static void __rtl_digest_initMD2 (DigestContextMD2 *ctx);
-static void __rtl_digest_updateMD2 (DigestContextMD2 *ctx);
-static void __rtl_digest_endMD2 (DigestContextMD2 *ctx);
-
-static const sal_uInt32 S[256] =
-{
- 0x29, 0x2E, 0x43, 0xC9, 0xA2, 0xD8, 0x7C, 0x01,
- 0x3D, 0x36, 0x54, 0xA1, 0xEC, 0xF0, 0x06, 0x13,
- 0x62, 0xA7, 0x05, 0xF3, 0xC0, 0xC7, 0x73, 0x8C,
- 0x98, 0x93, 0x2B, 0xD9, 0xBC, 0x4C, 0x82, 0xCA,
- 0x1E, 0x9B, 0x57, 0x3C, 0xFD, 0xD4, 0xE0, 0x16,
- 0x67, 0x42, 0x6F, 0x18, 0x8A, 0x17, 0xE5, 0x12,
- 0xBE, 0x4E, 0xC4, 0xD6, 0xDA, 0x9E, 0xDE, 0x49,
- 0xA0, 0xFB, 0xF5, 0x8E, 0xBB, 0x2F, 0xEE, 0x7A,
- 0xA9, 0x68, 0x79, 0x91, 0x15, 0xB2, 0x07, 0x3F,
- 0x94, 0xC2, 0x10, 0x89, 0x0B, 0x22, 0x5F, 0x21,
- 0x80, 0x7F, 0x5D, 0x9A, 0x5A, 0x90, 0x32, 0x27,
- 0x35, 0x3E, 0xCC, 0xE7, 0xBF, 0xF7, 0x97, 0x03,
- 0xFF, 0x19, 0x30, 0xB3, 0x48, 0xA5, 0xB5, 0xD1,
- 0xD7, 0x5E, 0x92, 0x2A, 0xAC, 0x56, 0xAA, 0xC6,
- 0x4F, 0xB8, 0x38, 0xD2, 0x96, 0xA4, 0x7D, 0xB6,
- 0x76, 0xFC, 0x6B, 0xE2, 0x9C, 0x74, 0x04, 0xF1,
- 0x45, 0x9D, 0x70, 0x59, 0x64, 0x71, 0x87, 0x20,
- 0x86, 0x5B, 0xCF, 0x65, 0xE6, 0x2D, 0xA8, 0x02,
- 0x1B, 0x60, 0x25, 0xAD, 0xAE, 0xB0, 0xB9, 0xF6,
- 0x1C, 0x46, 0x61, 0x69, 0x34, 0x40, 0x7E, 0x0F,
- 0x55, 0x47, 0xA3, 0x23, 0xDD, 0x51, 0xAF, 0x3A,
- 0xC3, 0x5C, 0xF9, 0xCE, 0xBA, 0xC5, 0xEA, 0x26,
- 0x2C, 0x53, 0x0D, 0x6E, 0x85, 0x28, 0x84, 0x09,
- 0xD3, 0xDF, 0xCD, 0xF4, 0x41, 0x81, 0x4D, 0x52,
- 0x6A, 0xDC, 0x37, 0xC8, 0x6C, 0xC1, 0xAB, 0xFA,
- 0x24, 0xE1, 0x7B, 0x08, 0x0C, 0xBD, 0xB1, 0x4A,
- 0x78, 0x88, 0x95, 0x8B, 0xE3, 0x63, 0xE8, 0x6D,
- 0xE9, 0xCB, 0xD5, 0xFE, 0x3B, 0x00, 0x1D, 0x39,
- 0xF2, 0xEF, 0xB7, 0x0E, 0x66, 0x58, 0xD0, 0xE4,
- 0xA6, 0x77, 0x72, 0xF8, 0xEB, 0x75, 0x4B, 0x0A,
- 0x31, 0x44, 0x50, 0xB4, 0x8F, 0xED, 0x1F, 0x1A,
- 0xDB, 0x99, 0x8D, 0x33, 0x9F, 0x11, 0x83, 0x14,
-};
-
-/*
- * __rtl_digest_MD2.
- */
-static const Digest_Impl __rtl_digest_MD2 =
-{
- rtl_Digest_AlgorithmMD2,
- RTL_DIGEST_LENGTH_MD2,
-
- NULL,
- rtl_digest_destroyMD2,
- rtl_digest_updateMD2,
- rtl_digest_getMD2
-};
-
-/*
- * __rtl_digest_initMD2.
- */
-static void __rtl_digest_initMD2 (DigestContextMD2 *ctx)
-{
- rtl_zeroMemory (ctx, sizeof (DigestContextMD2));
-}
-
-/*
- * __rtl_digest_updateMD2.
- */
-static void __rtl_digest_updateMD2 (DigestContextMD2 *ctx)
-{
- register sal_uInt8 *X;
- register sal_uInt32 *sp1, *sp2;
- register sal_uInt32 i, k, t;
-
- sal_uInt32 state[48];
-
- X = ctx->m_pData;
- sp1 = ctx->m_state;
- sp2 = ctx->m_chksum;
-
- k = sp2[DIGEST_LBLOCK_MD2 - 1];
- for (i = 0; i < 16; i++)
- {
- state[i + 0] = sp1[i];
- state[i + 16] = t = X[i];
- state[i + 32] = t ^ sp1[i];
- k = sp2[i] ^= S[t^k];
- }
-
- t = 0;
- for (i = 0; i < 18; i++)
- {
- for (k = 0; k < 48; k += 8)
- {
- t = state[k + 0] ^= S[t];
- t = state[k + 1] ^= S[t];
- t = state[k + 2] ^= S[t];
- t = state[k + 3] ^= S[t];
- t = state[k + 4] ^= S[t];
- t = state[k + 5] ^= S[t];
- t = state[k + 6] ^= S[t];
- t = state[k + 7] ^= S[t];
- }
- t = ((t + i) & 0xff);
- }
-
- rtl_copyMemory (sp1, state, 16 * sizeof(sal_uInt32));
- rtl_zeroMemory (state, 48 * sizeof(sal_uInt32));
-}
-
-/*
- * __rtl_digest_endMD2.
- */
-static void __rtl_digest_endMD2 (DigestContextMD2 *ctx)
-{
- register sal_uInt8 *X;
- register sal_uInt32 *C;
- sal_uInt32 i, n;
-
- X = ctx->m_pData;
- C = ctx->m_chksum;
- n = DIGEST_CBLOCK_MD2 - ctx->m_nDatLen;
-
- for (i = ctx->m_nDatLen; i < DIGEST_CBLOCK_MD2; i++)
- X[i] = (sal_uInt8)(n & 0xff);
- __rtl_digest_updateMD2 (ctx);
-
- for (i = 0; i < DIGEST_CBLOCK_MD2; i++)
- X[i] = (sal_uInt8)(C[i] & 0xff);
- __rtl_digest_updateMD2 (ctx);
-}
-
-/*========================================================================
- *
- * rtl_digest_MD2 implementation.
- *
- *======================================================================*/
-/*
- * rtl_digest_MD2.
- */
-rtlDigestError SAL_CALL rtl_digest_MD2 (
- const void *pData, sal_uInt32 nDatLen,
- sal_uInt8 *pBuffer, sal_uInt32 nBufLen)
-{
- DigestMD2_Impl digest;
- rtlDigestError result;
-
- digest.m_digest = __rtl_digest_MD2;
- __rtl_digest_initMD2 (&(digest.m_context));
-
- result = rtl_digest_updateMD2 (&digest, pData, nDatLen);
- if (result == rtl_Digest_E_None)
- result = rtl_digest_getMD2 (&digest, pBuffer, nBufLen);
-
- rtl_zeroMemory (&digest, sizeof (digest));
- return (result);
-}
-
-/*
- * rtl_digest_createMD2.
- */
-rtlDigest SAL_CALL rtl_digest_createMD2 (void)
-{
- DigestMD2_Impl *pImpl = (DigestMD2_Impl*)NULL;
- pImpl = RTL_DIGEST_CREATE(DigestMD2_Impl);
- if (pImpl)
- {
- pImpl->m_digest = __rtl_digest_MD2;
- __rtl_digest_initMD2 (&(pImpl->m_context));
- }
- return ((rtlDigest)pImpl);
-}
-
-/*
- * rtl_digest_updateMD2.
- */
-rtlDigestError SAL_CALL rtl_digest_updateMD2 (
- rtlDigest Digest, const void *pData, sal_uInt32 nDatLen)
-{
- DigestMD2_Impl *pImpl = (DigestMD2_Impl *)Digest;
- const sal_uInt8 *d = (const sal_uInt8 *)pData;
-
- DigestContextMD2 *ctx;
-
- if ((pImpl == NULL) || (pData == NULL))
- return rtl_Digest_E_Argument;
-
- if (!(pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmMD2))
- return rtl_Digest_E_Algorithm;
-
- if (nDatLen == 0)
- return rtl_Digest_E_None;
-
- ctx = &(pImpl->m_context);
-
- if (ctx->m_nDatLen)
- {
- sal_uInt8 *p = ctx->m_pData + ctx->m_nDatLen;
- sal_uInt32 n = DIGEST_CBLOCK_MD2 - ctx->m_nDatLen;
-
- if (nDatLen < n)
- {
- rtl_copyMemory (p, d, nDatLen);
- ctx->m_nDatLen += nDatLen;
-
- return rtl_Digest_E_None;
- }
-
- rtl_copyMemory (p, d, n);
- d += n;
- nDatLen -= n;
-
- __rtl_digest_updateMD2 (ctx);
- ctx->m_nDatLen = 0;
- }
-
- while (nDatLen >= DIGEST_CBLOCK_MD2)
- {
- rtl_copyMemory (ctx->m_pData, d, DIGEST_CBLOCK_MD2);
- d += DIGEST_CBLOCK_MD2;
- nDatLen -= DIGEST_CBLOCK_MD2;
-
- __rtl_digest_updateMD2 (ctx);
- }
-
- rtl_copyMemory (ctx->m_pData, d, nDatLen);
- ctx->m_nDatLen = nDatLen;
-
- return rtl_Digest_E_None;
-}
-
-/*
- * rtl_digest_getMD2.
- */
-rtlDigestError SAL_CALL rtl_digest_getMD2 (
- rtlDigest Digest, sal_uInt8 *pBuffer, sal_uInt32 nBufLen)
-{
- DigestMD2_Impl *pImpl = (DigestMD2_Impl *)Digest;
- sal_uInt32 i;
-
- DigestContextMD2 *ctx;
-
- if ((pImpl == NULL) || (pBuffer == NULL))
- return rtl_Digest_E_Argument;
-
- if (!(pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmMD2))
- return rtl_Digest_E_Algorithm;
-
- if (!(pImpl->m_digest.m_length <= nBufLen))
- return rtl_Digest_E_BufferSize;
-
- ctx = &(pImpl->m_context);
-
- __rtl_digest_endMD2 (ctx);
- for (i = 0; i < DIGEST_CBLOCK_MD2; i++)
- pBuffer[i] = (sal_uInt8)(ctx->m_state[i] & 0xff);
- __rtl_digest_initMD2 (ctx);
-
- return rtl_Digest_E_None;
-}
-
-/*
- * rtl_digest_destroyMD2.
- */
-void SAL_CALL rtl_digest_destroyMD2 (rtlDigest Digest)
-{
- DigestMD2_Impl *pImpl = (DigestMD2_Impl *)Digest;
- if (pImpl)
- {
- if (pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmMD2)
- rtl_freeZeroMemory (pImpl, sizeof (DigestMD2_Impl));
- else
- rtl_freeMemory (pImpl);
- }
-}
-
-/*========================================================================
- *
- * rtl_digest_MD5 internals.
- *
- *======================================================================*/
-#define DIGEST_CBLOCK_MD5 64
-#define DIGEST_LBLOCK_MD5 16
-
-typedef struct digestMD5_context_st
-{
- sal_uInt32 m_nDatLen;
- sal_uInt32 m_pData[DIGEST_LBLOCK_MD5];
- sal_uInt32 m_nA, m_nB, m_nC, m_nD;
- sal_uInt32 m_nL, m_nH;
-} DigestContextMD5;
-
-typedef struct digestMD5_impl_st
-{
- Digest_Impl m_digest;
- DigestContextMD5 m_context;
-} DigestMD5_Impl;
-
-static void __rtl_digest_initMD5 (DigestContextMD5 *ctx);
-static void __rtl_digest_updateMD5 (DigestContextMD5 *ctx);
-static void __rtl_digest_endMD5 (DigestContextMD5 *ctx);
-
-#define F(x,y,z) ((((y) ^ (z)) & (x)) ^ (z))
-#define G(x,y,z) ((((x) ^ (y)) & (z)) ^ (y))
-#define H(x,y,z) ((x) ^ (y) ^ (z))
-#define I(x,y,z) (((x) | (~(z))) ^ (y))
-
-#define R0(a,b,c,d,k,s,t) { \
- a += ((k) + (t) + F((b), (c), (d))); \
- a = RTL_DIGEST_ROTL(a, s); \
- a += b; }
-
-#define R1(a,b,c,d,k,s,t) { \
- a += ((k) + (t) + G((b), (c), (d))); \
- a = RTL_DIGEST_ROTL(a, s); \
- a += b; }
-
-#define R2(a,b,c,d,k,s,t) { \
- a += ((k) + (t) + H((b), (c), (d))); \
- a = RTL_DIGEST_ROTL(a, s); \
- a += b; }
-
-#define R3(a,b,c,d,k,s,t) { \
- a += ((k) + (t) + I((b), (c), (d))); \
- a = RTL_DIGEST_ROTL(a, s); \
- a += b; }
-
-/*
- * __rtl_digest_MD5.
- */
-static const Digest_Impl __rtl_digest_MD5 =
-{
- rtl_Digest_AlgorithmMD5,
- RTL_DIGEST_LENGTH_MD5,
-
- NULL,
- rtl_digest_destroyMD5,
- rtl_digest_updateMD5,
- rtl_digest_getMD5
-};
-
-/*
- * __rtl_digest_initMD5.
- */
-static void __rtl_digest_initMD5 (DigestContextMD5 *ctx)
-{
- rtl_zeroMemory (ctx, sizeof (DigestContextMD5));
-
- ctx->m_nA = (sal_uInt32)0x67452301L;
- ctx->m_nB = (sal_uInt32)0xefcdab89L;
- ctx->m_nC = (sal_uInt32)0x98badcfeL;
- ctx->m_nD = (sal_uInt32)0x10325476L;
-}
-
-/*
- * __rtl_digest_updateMD5.
- */
-static void __rtl_digest_updateMD5 (DigestContextMD5 *ctx)
-{
- register sal_uInt32 A, B, C, D;
- register sal_uInt32 *X;
-
- A = ctx->m_nA;
- B = ctx->m_nB;
- C = ctx->m_nC;
- D = ctx->m_nD;
- X = ctx->m_pData;
-
- R0 (A, B, C, D, X[ 0], 7, 0xd76aa478L);
- R0 (D, A, B, C, X[ 1], 12, 0xe8c7b756L);
- R0 (C, D, A, B, X[ 2], 17, 0x242070dbL);
- R0 (B, C, D, A, X[ 3], 22, 0xc1bdceeeL);
- R0 (A, B, C, D, X[ 4], 7, 0xf57c0fafL);
- R0 (D, A, B, C, X[ 5], 12, 0x4787c62aL);
- R0 (C, D, A, B, X[ 6], 17, 0xa8304613L);
- R0 (B, C, D, A, X[ 7], 22, 0xfd469501L);
- R0 (A, B, C, D, X[ 8], 7, 0x698098d8L);
- R0 (D, A, B, C, X[ 9], 12, 0x8b44f7afL);
- R0 (C, D, A, B, X[10], 17, 0xffff5bb1L);
- R0 (B, C, D, A, X[11], 22, 0x895cd7beL);
- R0 (A, B, C, D, X[12], 7, 0x6b901122L);
- R0 (D, A, B, C, X[13], 12, 0xfd987193L);
- R0 (C, D, A, B, X[14], 17, 0xa679438eL);
- R0 (B, C, D, A, X[15], 22, 0x49b40821L);
-
- R1 (A, B, C, D, X[ 1], 5, 0xf61e2562L);
- R1 (D, A, B, C, X[ 6], 9, 0xc040b340L);
- R1 (C, D, A, B, X[11], 14, 0x265e5a51L);
- R1 (B, C, D, A, X[ 0], 20, 0xe9b6c7aaL);
- R1 (A, B, C, D, X[ 5], 5, 0xd62f105dL);
- R1 (D, A, B, C, X[10], 9, 0x02441453L);
- R1 (C, D, A, B, X[15], 14, 0xd8a1e681L);
- R1 (B, C, D, A, X[ 4], 20, 0xe7d3fbc8L);
- R1 (A, B, C, D, X[ 9], 5, 0x21e1cde6L);
- R1 (D, A, B, C, X[14], 9, 0xc33707d6L);
- R1 (C, D, A, B, X[ 3], 14, 0xf4d50d87L);
- R1 (B, C, D, A, X[ 8], 20, 0x455a14edL);
- R1 (A, B, C, D, X[13], 5, 0xa9e3e905L);
- R1 (D, A, B, C, X[ 2], 9, 0xfcefa3f8L);
- R1 (C, D, A, B, X[ 7], 14, 0x676f02d9L);
- R1 (B, C, D, A, X[12], 20, 0x8d2a4c8aL);
-
- R2 (A, B, C, D, X[ 5], 4, 0xfffa3942L);
- R2 (D, A, B, C, X[ 8], 11, 0x8771f681L);
- R2 (C, D, A, B, X[11], 16, 0x6d9d6122L);
- R2 (B, C, D, A, X[14], 23, 0xfde5380cL);
- R2 (A, B, C, D, X[ 1], 4, 0xa4beea44L);
- R2 (D, A, B, C, X[ 4], 11, 0x4bdecfa9L);
- R2 (C, D, A, B, X[ 7], 16, 0xf6bb4b60L);
- R2 (B, C, D, A, X[10], 23, 0xbebfbc70L);
- R2 (A, B, C, D, X[13], 4, 0x289b7ec6L);
- R2 (D, A, B, C, X[ 0], 11, 0xeaa127faL);
- R2 (C, D, A, B, X[ 3], 16, 0xd4ef3085L);
- R2 (B, C, D, A, X[ 6], 23, 0x04881d05L);
- R2 (A, B, C, D, X[ 9], 4, 0xd9d4d039L);
- R2 (D, A, B, C, X[12], 11, 0xe6db99e5L);
- R2 (C, D, A, B, X[15], 16, 0x1fa27cf8L);
- R2 (B, C, D, A, X[ 2], 23, 0xc4ac5665L);
-
- R3 (A, B, C, D, X[ 0], 6, 0xf4292244L);
- R3 (D, A, B, C, X[ 7], 10, 0x432aff97L);
- R3 (C, D, A, B, X[14], 15, 0xab9423a7L);
- R3 (B, C, D, A, X[ 5], 21, 0xfc93a039L);
- R3 (A, B, C, D, X[12], 6, 0x655b59c3L);
- R3 (D, A, B, C, X[ 3], 10, 0x8f0ccc92L);
- R3 (C, D, A, B, X[10], 15, 0xffeff47dL);
- R3 (B, C, D, A, X[ 1], 21, 0x85845dd1L);
- R3 (A, B, C, D, X[ 8], 6, 0x6fa87e4fL);
- R3 (D, A, B, C, X[15], 10, 0xfe2ce6e0L);
- R3 (C, D, A, B, X[ 6], 15, 0xa3014314L);
- R3 (B, C, D, A, X[13], 21, 0x4e0811a1L);
- R3 (A, B, C, D, X[ 4], 6, 0xf7537e82L);
- R3 (D, A, B, C, X[11], 10, 0xbd3af235L);
- R3 (C, D, A, B, X[ 2], 15, 0x2ad7d2bbL);
- R3 (B, C, D, A, X[ 9], 21, 0xeb86d391L);
-
- ctx->m_nA += A;
- ctx->m_nB += B;
- ctx->m_nC += C;
- ctx->m_nD += D;
-}
-
-/*
- * __rtl_digest_endMD5.
- */
-static void __rtl_digest_endMD5 (DigestContextMD5 *ctx)
-{
- static const sal_uInt8 end[4] =
- {
- 0x80, 0x00, 0x00, 0x00
- };
- register const sal_uInt8 *p = end;
-
- register sal_uInt32 *X;
- register int i;
-
- X = ctx->m_pData;
- i = (ctx->m_nDatLen >> 2);
-
-#ifdef OSL_BIGENDIAN
- __rtl_digest_swapLong (X, i + 1);
-#endif /* OSL_BIGENDIAN */
-
- switch (ctx->m_nDatLen & 0x03)
- {
- case 1: X[i] &= 0x000000ff; break;
- case 2: X[i] &= 0x0000ffff; break;
- case 3: X[i] &= 0x00ffffff; break;
- }
-
- switch (ctx->m_nDatLen & 0x03)
- {
- case 0: X[i] = ((sal_uInt32)(*(p++))) << 0L;
- case 1: X[i] |= ((sal_uInt32)(*(p++))) << 8L;
- case 2: X[i] |= ((sal_uInt32)(*(p++))) << 16L;
- case 3: X[i] |= ((sal_uInt32)(*p)) << 24L;
- }
-
- i += 1;
-
- if (i >= (DIGEST_LBLOCK_MD5 - 2))
- {
- for (; i < DIGEST_LBLOCK_MD5; i++)
- X[i] = 0;
- __rtl_digest_updateMD5 (ctx);
- i = 0;
- }
-
- for (; i < (DIGEST_LBLOCK_MD5 - 2); i++)
- X[i] = 0;
-
- X[DIGEST_LBLOCK_MD5 - 2] = ctx->m_nL;
- X[DIGEST_LBLOCK_MD5 - 1] = ctx->m_nH;
-
- __rtl_digest_updateMD5 (ctx);
-}
-
-/*========================================================================
- *
- * rtl_digest_MD5 implementation.
- *
- *======================================================================*/
-/*
- * rtl_digest_MD5.
- */
-rtlDigestError SAL_CALL rtl_digest_MD5 (
- const void *pData, sal_uInt32 nDatLen,
- sal_uInt8 *pBuffer, sal_uInt32 nBufLen)
-{
- DigestMD5_Impl digest;
- rtlDigestError result;
-
- digest.m_digest = __rtl_digest_MD5;
- __rtl_digest_initMD5 (&(digest.m_context));
-
- result = rtl_digest_update (&digest, pData, nDatLen);
- if (result == rtl_Digest_E_None)
- result = rtl_digest_getMD5 (&digest, pBuffer, nBufLen);
-
- rtl_zeroMemory (&digest, sizeof (digest));
- return (result);
-}
-
-/*
- * rtl_digest_createMD5.
- */
-rtlDigest SAL_CALL rtl_digest_createMD5 (void)
-{
- DigestMD5_Impl *pImpl = (DigestMD5_Impl*)NULL;
- pImpl = RTL_DIGEST_CREATE(DigestMD5_Impl);
- if (pImpl)
- {
- pImpl->m_digest = __rtl_digest_MD5;
- __rtl_digest_initMD5 (&(pImpl->m_context));
- }
- return ((rtlDigest)pImpl);
-}
-
-/*
- * rtl_digest_updateMD5.
- */
-rtlDigestError SAL_CALL rtl_digest_updateMD5 (
- rtlDigest Digest, const void *pData, sal_uInt32 nDatLen)
-{
- DigestMD5_Impl *pImpl = (DigestMD5_Impl *)Digest;
- const sal_uInt8 *d = (const sal_uInt8 *)pData;
-
- DigestContextMD5 *ctx;
- sal_uInt32 len;
-
- if ((pImpl == NULL) || (pData == NULL))
- return rtl_Digest_E_Argument;
-
- if (!(pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmMD5))
- return rtl_Digest_E_Algorithm;
-
- if (nDatLen == 0)
- return rtl_Digest_E_None;
-
- ctx = &(pImpl->m_context);
-
- len = ctx->m_nL + (nDatLen << 3);
- if (len < ctx->m_nL) ctx->m_nH += 1;
- ctx->m_nH += (nDatLen >> 29);
- ctx->m_nL = len;
-
- if (ctx->m_nDatLen)
- {
- sal_uInt8 *p = (sal_uInt8 *)(ctx->m_pData) + ctx->m_nDatLen;
- sal_uInt32 n = DIGEST_CBLOCK_MD5 - ctx->m_nDatLen;
-
- if (nDatLen < n)
- {
- rtl_copyMemory (p, d, nDatLen);
- ctx->m_nDatLen += nDatLen;
-
- return rtl_Digest_E_None;
- }
-
- rtl_copyMemory (p, d, n);
- d += n;
- nDatLen -= n;
-
-#ifdef OSL_BIGENDIAN
- __rtl_digest_swapLong (ctx->m_pData, DIGEST_LBLOCK_MD5);
-#endif /* OSL_BIGENDIAN */
-
- __rtl_digest_updateMD5 (ctx);
- ctx->m_nDatLen = 0;
- }
-
- while (nDatLen >= DIGEST_CBLOCK_MD5)
- {
- rtl_copyMemory (ctx->m_pData, d, DIGEST_CBLOCK_MD5);
- d += DIGEST_CBLOCK_MD5;
- nDatLen -= DIGEST_CBLOCK_MD5;
-
-#ifdef OSL_BIGENDIAN
- __rtl_digest_swapLong (ctx->m_pData, DIGEST_LBLOCK_MD5);
-#endif /* OSL_BIGENDIAN */
-
- __rtl_digest_updateMD5 (ctx);
- }
-
- rtl_copyMemory (ctx->m_pData, d, nDatLen);
- ctx->m_nDatLen = nDatLen;
-
- return rtl_Digest_E_None;
-}
-
-/*
- * rtl_digest_getMD5.
- */
-rtlDigestError SAL_CALL rtl_digest_getMD5 (
- rtlDigest Digest, sal_uInt8 *pBuffer, sal_uInt32 nBufLen)
-{
- DigestMD5_Impl *pImpl = (DigestMD5_Impl *)Digest;
- sal_uInt8 *p = pBuffer;
-
- DigestContextMD5 *ctx;
-
- if ((pImpl == NULL) || (pBuffer == NULL))
- return rtl_Digest_E_Argument;
-
- if (!(pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmMD5))
- return rtl_Digest_E_Algorithm;
-
- if (!(pImpl->m_digest.m_length <= nBufLen))
- return rtl_Digest_E_BufferSize;
-
- ctx = &(pImpl->m_context);
-
- __rtl_digest_endMD5 (ctx);
- RTL_DIGEST_LTOC (ctx->m_nA, p);
- RTL_DIGEST_LTOC (ctx->m_nB, p);
- RTL_DIGEST_LTOC (ctx->m_nC, p);
- RTL_DIGEST_LTOC (ctx->m_nD, p);
- __rtl_digest_initMD5 (ctx);
-
- return rtl_Digest_E_None;
-}
-
-/*
- * rtl_digest_rawMD5.
- */
-rtlDigestError SAL_CALL rtl_digest_rawMD5 (
- rtlDigest Digest, sal_uInt8 *pBuffer, sal_uInt32 nBufLen)
-{
- DigestMD5_Impl *pImpl = (DigestMD5_Impl *)Digest;
- sal_uInt8 *p = pBuffer;
-
- DigestContextMD5 *ctx;
-
- if ((pImpl == NULL) || (pBuffer == NULL))
- return rtl_Digest_E_Argument;
-
- if (!(pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmMD5))
- return rtl_Digest_E_Algorithm;
-
- if (!(pImpl->m_digest.m_length <= nBufLen))
- return rtl_Digest_E_BufferSize;
-
- ctx = &(pImpl->m_context);
-
- /* __rtl_digest_endMD5 (ctx); *//* not finalized */
- RTL_DIGEST_LTOC (ctx->m_nA, p);
- RTL_DIGEST_LTOC (ctx->m_nB, p);
- RTL_DIGEST_LTOC (ctx->m_nC, p);
- RTL_DIGEST_LTOC (ctx->m_nD, p);
- __rtl_digest_initMD5 (ctx);
-
- return rtl_Digest_E_None;
-}
-
-/*
- * rtl_digest_destroyMD5.
- */
-void SAL_CALL rtl_digest_destroyMD5 (rtlDigest Digest)
-{
- DigestMD5_Impl *pImpl = (DigestMD5_Impl *)Digest;
- if (pImpl)
- {
- if (pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmMD5)
- rtl_freeZeroMemory (pImpl, sizeof (DigestMD5_Impl));
- else
- rtl_freeMemory (pImpl);
- }
-}
-
-/*========================================================================
- *
- * rtl_digest_(SHA|SHA1) common internals.
- *
- *======================================================================*/
-#define DIGEST_CBLOCK_SHA 64
-#define DIGEST_LBLOCK_SHA 16
-
-typedef sal_uInt32 DigestSHA_update_t (sal_uInt32 x);
-
-static sal_uInt32 __rtl_digest_updateSHA_0 (sal_uInt32 x);
-static sal_uInt32 __rtl_digest_updateSHA_1 (sal_uInt32 x);
-
-typedef struct digestSHA_context_st
-{
- DigestSHA_update_t *m_update;
- sal_uInt32 m_nDatLen;
- sal_uInt32 m_pData[DIGEST_LBLOCK_SHA];
- sal_uInt32 m_nA, m_nB, m_nC, m_nD, m_nE;
- sal_uInt32 m_nL, m_nH;
-} DigestContextSHA;
-
-typedef struct digestSHA_impl_st
-{
- Digest_Impl m_digest;
- DigestContextSHA m_context;
-} DigestSHA_Impl;
-
-static void __rtl_digest_initSHA (
- DigestContextSHA *ctx, DigestSHA_update_t *fct);
-
-static void __rtl_digest_updateSHA (DigestContextSHA *ctx);
-static void __rtl_digest_endSHA (DigestContextSHA *ctx);
-
-#define K_00_19 (sal_uInt32)0x5a827999L
-#define K_20_39 (sal_uInt32)0x6ed9eba1L
-#define K_40_59 (sal_uInt32)0x8f1bbcdcL
-#define K_60_79 (sal_uInt32)0xca62c1d6L
-
-#define F_00_19(b,c,d) ((((c) ^ (d)) & (b)) ^ (d))
-#define F_20_39(b,c,d) ((b) ^ (c) ^ (d))
-#define F_40_59(b,c,d) (((b) & (c)) | ((b) & (d)) | ((c) & (d)))
-#define F_60_79(b,c,d) F_20_39(b,c,d)
-
-#define BODY_X(i) \
- (X[(i)&0x0f] ^ X[((i)+2)&0x0f] ^ X[((i)+8)&0x0f] ^ X[((i)+13)&0x0f])
-
-#define BODY_00_15(u,i,a,b,c,d,e,f) \
- (f) = X[i]; \
- (f) += (e) + K_00_19 + RTL_DIGEST_ROTL((a), 5) + F_00_19((b), (c), (d)); \
- (b) = RTL_DIGEST_ROTL((b), 30);
-
-#define BODY_16_19(u,i,a,b,c,d,e,f) \
- (f) = BODY_X((i)); \
- (f) = X[(i)&0x0f] = (u)((f)); \
- (f) += (e) + K_00_19 + RTL_DIGEST_ROTL((a), 5) + F_00_19((b), (c), (d)); \
- (b) = RTL_DIGEST_ROTL((b), 30);
-
-#define BODY_20_39(u,i,a,b,c,d,e,f) \
- (f) = BODY_X((i)); \
- (f) = X[(i)&0x0f] = (u)((f)); \
- (f) += (e) + K_20_39 + RTL_DIGEST_ROTL((a), 5) + F_20_39((b), (c), (d)); \
- (b) = RTL_DIGEST_ROTL((b), 30);
-
-#define BODY_40_59(u,i,a,b,c,d,e,f) \
- (f) = BODY_X((i)); \
- (f) = X[(i)&0x0f] = (u)((f)); \
- (f) += (e) + K_40_59 + RTL_DIGEST_ROTL((a), 5) + F_40_59((b), (c), (d)); \
- (b) = RTL_DIGEST_ROTL((b), 30);
-
-#define BODY_60_79(u,i,a,b,c,d,e,f) \
- (f) = BODY_X((i)); \
- (f) = X[(i)&0x0f] = (u)((f)); \
- (f) += (e) + K_60_79 + RTL_DIGEST_ROTL((a), 5) + F_60_79((b), (c), (d)); \
- (b) = RTL_DIGEST_ROTL((b), 30);
-
-/*
- * __rtl_digest_initSHA.
- */
-static void __rtl_digest_initSHA (
- DigestContextSHA *ctx, DigestSHA_update_t *fct)
-{
- rtl_zeroMemory (ctx, sizeof (DigestContextSHA));
- ctx->m_update = fct;
-
- ctx->m_nA = (sal_uInt32)0x67452301L;
- ctx->m_nB = (sal_uInt32)0xefcdab89L;
- ctx->m_nC = (sal_uInt32)0x98badcfeL;
- ctx->m_nD = (sal_uInt32)0x10325476L;
- ctx->m_nE = (sal_uInt32)0xc3d2e1f0L;
-}
-
-/*
- * __rtl_digest_updateSHA.
- */
-static void __rtl_digest_updateSHA (DigestContextSHA *ctx)
-{
- register sal_uInt32 A, B, C, D, E, T;
- register sal_uInt32 *X;
-
- register DigestSHA_update_t *U;
- U = ctx->m_update;
-
- A = ctx->m_nA;
- B = ctx->m_nB;
- C = ctx->m_nC;
- D = ctx->m_nD;
- E = ctx->m_nE;
- X = ctx->m_pData;
-
- BODY_00_15 (U, 0, A, B, C, D, E, T);
- BODY_00_15 (U, 1, T, A, B, C, D, E);
- BODY_00_15 (U, 2, E, T, A, B, C, D);
- BODY_00_15 (U, 3, D, E, T, A, B, C);
- BODY_00_15 (U, 4, C, D, E, T, A, B);
- BODY_00_15 (U, 5, B, C, D, E, T, A);
- BODY_00_15 (U, 6, A, B, C, D, E, T);
- BODY_00_15 (U, 7, T, A, B, C, D, E);
- BODY_00_15 (U, 8, E, T, A, B, C, D);
- BODY_00_15 (U, 9, D, E, T, A, B, C);
- BODY_00_15 (U, 10, C, D, E, T, A, B);
- BODY_00_15 (U, 11, B, C, D, E, T, A);
- BODY_00_15 (U, 12, A, B, C, D, E, T);
- BODY_00_15 (U, 13, T, A, B, C, D, E);
- BODY_00_15 (U, 14, E, T, A, B, C, D);
- BODY_00_15 (U, 15, D, E, T, A, B, C);
- BODY_16_19 (U, 16, C, D, E, T, A, B);
- BODY_16_19 (U, 17, B, C, D, E, T, A);
- BODY_16_19 (U, 18, A, B, C, D, E, T);
- BODY_16_19 (U, 19, T, A, B, C, D, E);
-
- BODY_20_39 (U, 20, E, T, A, B, C, D);
- BODY_20_39 (U, 21, D, E, T, A, B, C);
- BODY_20_39 (U, 22, C, D, E, T, A, B);
- BODY_20_39 (U, 23, B, C, D, E, T, A);
- BODY_20_39 (U, 24, A, B, C, D, E, T);
- BODY_20_39 (U, 25, T, A, B, C, D, E);
- BODY_20_39 (U, 26, E, T, A, B, C, D);
- BODY_20_39 (U, 27, D, E, T, A, B, C);
- BODY_20_39 (U, 28, C, D, E, T, A, B);
- BODY_20_39 (U, 29, B, C, D, E, T, A);
- BODY_20_39 (U, 30, A, B, C, D, E, T);
- BODY_20_39 (U, 31, T, A, B, C, D, E);
- BODY_20_39 (U, 32, E, T, A, B, C, D);
- BODY_20_39 (U, 33, D, E, T, A, B, C);
- BODY_20_39 (U, 34, C, D, E, T, A, B);
- BODY_20_39 (U, 35, B, C, D, E, T, A);
- BODY_20_39 (U, 36, A, B, C, D, E, T);
- BODY_20_39 (U, 37, T, A, B, C, D, E);
- BODY_20_39 (U, 38, E, T, A, B, C, D);
- BODY_20_39 (U, 39, D, E, T, A, B, C);
-
- BODY_40_59 (U, 40, C, D, E, T, A, B);
- BODY_40_59 (U, 41, B, C, D, E, T, A);
- BODY_40_59 (U, 42, A, B, C, D, E, T);
- BODY_40_59 (U, 43, T, A, B, C, D, E);
- BODY_40_59 (U, 44, E, T, A, B, C, D);
- BODY_40_59 (U, 45, D, E, T, A, B, C);
- BODY_40_59 (U, 46, C, D, E, T, A, B);
- BODY_40_59 (U, 47, B, C, D, E, T, A);
- BODY_40_59 (U, 48, A, B, C, D, E, T);
- BODY_40_59 (U, 49, T, A, B, C, D, E);
- BODY_40_59 (U, 50, E, T, A, B, C, D);
- BODY_40_59 (U, 51, D, E, T, A, B, C);
- BODY_40_59 (U, 52, C, D, E, T, A, B);
- BODY_40_59 (U, 53, B, C, D, E, T, A);
- BODY_40_59 (U, 54, A, B, C, D, E, T);
- BODY_40_59 (U, 55, T, A, B, C, D, E);
- BODY_40_59 (U, 56, E, T, A, B, C, D);
- BODY_40_59 (U, 57, D, E, T, A, B, C);
- BODY_40_59 (U, 58, C, D, E, T, A, B);
- BODY_40_59 (U, 59, B, C, D, E, T, A);
-
- BODY_60_79 (U, 60, A, B, C, D, E, T);
- BODY_60_79 (U, 61, T, A, B, C, D, E);
- BODY_60_79 (U, 62, E, T, A, B, C, D);
- BODY_60_79 (U, 63, D, E, T, A, B, C);
- BODY_60_79 (U, 64, C, D, E, T, A, B);
- BODY_60_79 (U, 65, B, C, D, E, T, A);
- BODY_60_79 (U, 66, A, B, C, D, E, T);
- BODY_60_79 (U, 67, T, A, B, C, D, E);
- BODY_60_79 (U, 68, E, T, A, B, C, D);
- BODY_60_79 (U, 69, D, E, T, A, B, C);
- BODY_60_79 (U, 70, C, D, E, T, A, B);
- BODY_60_79 (U, 71, B, C, D, E, T, A);
- BODY_60_79 (U, 72, A, B, C, D, E, T);
- BODY_60_79 (U, 73, T, A, B, C, D, E);
- BODY_60_79 (U, 74, E, T, A, B, C, D);
- BODY_60_79 (U, 75, D, E, T, A, B, C);
- BODY_60_79 (U, 76, C, D, E, T, A, B);
- BODY_60_79 (U, 77, B, C, D, E, T, A);
- BODY_60_79 (U, 78, A, B, C, D, E, T);
- BODY_60_79 (U, 79, T, A, B, C, D, E);
-
- ctx->m_nA += E;
- ctx->m_nB += T;
- ctx->m_nC += A;
- ctx->m_nD += B;
- ctx->m_nE += C;
-}
-
-/*
- * __rtl_digest_endSHA.
- */
-static void __rtl_digest_endSHA (DigestContextSHA *ctx)
-{
- static const sal_uInt8 end[4] =
- {
- 0x80, 0x00, 0x00, 0x00
- };
- register const sal_uInt8 *p = end;
-
- register sal_uInt32 *X;
- register int i;
-
- X = ctx->m_pData;
- i = (ctx->m_nDatLen >> 2);
-
-#ifdef OSL_BIGENDIAN
- __rtl_digest_swapLong (X, i + 1);
-#endif /* OSL_BIGENDIAN */
-
- switch (ctx->m_nDatLen & 0x03)
- {
- case 1: X[i] &= 0x000000ff; break;
- case 2: X[i] &= 0x0000ffff; break;
- case 3: X[i] &= 0x00ffffff; break;
- }
-
- switch (ctx->m_nDatLen & 0x03)
- {
- case 0: X[i] = ((sal_uInt32)(*(p++))) << 0L;
- case 1: X[i] |= ((sal_uInt32)(*(p++))) << 8L;
- case 2: X[i] |= ((sal_uInt32)(*(p++))) << 16L;
- case 3: X[i] |= ((sal_uInt32)(*(p++))) << 24L;
- }
-
- __rtl_digest_swapLong (X, i + 1);
-
- i += 1;
-
- if (i >= (DIGEST_LBLOCK_SHA - 2))
- {
- for (; i < DIGEST_LBLOCK_SHA; i++)
- X[i] = 0;
- __rtl_digest_updateSHA (ctx);
- i = 0;
- }
-
- for (; i < (DIGEST_LBLOCK_SHA - 2); i++)
- X[i] = 0;
-
- X[DIGEST_LBLOCK_SHA - 2] = ctx->m_nH;
- X[DIGEST_LBLOCK_SHA - 1] = ctx->m_nL;
-
- __rtl_digest_updateSHA (ctx);
-}
-
-/*========================================================================
- *
- * rtl_digest_SHA internals.
- *
- *======================================================================*/
-/*
- * __rtl_digest_SHA_0.
- */
-static const Digest_Impl __rtl_digest_SHA_0 =
-{
- rtl_Digest_AlgorithmSHA,
- RTL_DIGEST_LENGTH_SHA,
-
- NULL,
- rtl_digest_destroySHA,
- rtl_digest_updateSHA,
- rtl_digest_getSHA
-};
-
-/*
- * __rtl_digest_updateSHA_0.
- */
-static sal_uInt32 __rtl_digest_updateSHA_0 (sal_uInt32 x)
-{
- return x;
-}
-
-/*========================================================================
- *
- * rtl_digest_SHA implementation.
- *
- *======================================================================*/
-/*
- * rtl_digest_SHA.
- */
-rtlDigestError SAL_CALL rtl_digest_SHA (
- const void *pData, sal_uInt32 nDatLen,
- sal_uInt8 *pBuffer, sal_uInt32 nBufLen)
-{
- DigestSHA_Impl digest;
- rtlDigestError result;
-
- digest.m_digest = __rtl_digest_SHA_0;
- __rtl_digest_initSHA (&(digest.m_context), __rtl_digest_updateSHA_0);
-
- result = rtl_digest_updateSHA (&digest, pData, nDatLen);
- if (result == rtl_Digest_E_None)
- result = rtl_digest_getSHA (&digest, pBuffer, nBufLen);
-
- rtl_zeroMemory (&digest, sizeof (digest));
- return (result);
-}
-
-/*
- * rtl_digest_createSHA.
- */
-rtlDigest SAL_CALL rtl_digest_createSHA (void)
-{
- DigestSHA_Impl *pImpl = (DigestSHA_Impl*)NULL;
- pImpl = RTL_DIGEST_CREATE(DigestSHA_Impl);
- if (pImpl)
- {
- pImpl->m_digest = __rtl_digest_SHA_0;
- __rtl_digest_initSHA (&(pImpl->m_context), __rtl_digest_updateSHA_0);
- }
- return ((rtlDigest)pImpl);
-}
-
-/*
- * rtl_digest_updateSHA.
- */
-rtlDigestError SAL_CALL rtl_digest_updateSHA (
- rtlDigest Digest, const void *pData, sal_uInt32 nDatLen)
-{
- DigestSHA_Impl *pImpl = (DigestSHA_Impl *)Digest;
- const sal_uInt8 *d = (const sal_uInt8 *)pData;
-
- DigestContextSHA *ctx;
- sal_uInt32 len;
-
- if ((pImpl == NULL) || (pData == NULL))
- return rtl_Digest_E_Argument;
-
- if (!(pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmSHA))
- return rtl_Digest_E_Algorithm;
-
- if (nDatLen == 0)
- return rtl_Digest_E_None;
-
- ctx = &(pImpl->m_context);
-
- len = ctx->m_nL + (nDatLen << 3);
- if (len < ctx->m_nL) ctx->m_nH += 1;
- ctx->m_nH += (nDatLen >> 29);
- ctx->m_nL = len;
-
- if (ctx->m_nDatLen)
- {
- sal_uInt8 *p = (sal_uInt8 *)(ctx->m_pData) + ctx->m_nDatLen;
- sal_uInt32 n = DIGEST_CBLOCK_SHA - ctx->m_nDatLen;
-
- if (nDatLen < n)
- {
- rtl_copyMemory (p, d, nDatLen);
- ctx->m_nDatLen += nDatLen;
-
- return rtl_Digest_E_None;
- }
-
- rtl_copyMemory (p, d, n);
- d += n;
- nDatLen -= n;
-
-#ifndef OSL_BIGENDIAN
- __rtl_digest_swapLong (ctx->m_pData, DIGEST_LBLOCK_SHA);
-#endif /* OSL_BIGENDIAN */
-
- __rtl_digest_updateSHA (ctx);
- ctx->m_nDatLen = 0;
- }
-
- while (nDatLen >= DIGEST_CBLOCK_SHA)
- {
- rtl_copyMemory (ctx->m_pData, d, DIGEST_CBLOCK_SHA);
- d += DIGEST_CBLOCK_SHA;
- nDatLen -= DIGEST_CBLOCK_SHA;
-
-#ifndef OSL_BIGENDIAN
- __rtl_digest_swapLong (ctx->m_pData, DIGEST_LBLOCK_SHA);
-#endif /* OSL_BIGENDIAN */
-
- __rtl_digest_updateSHA (ctx);
- }
-
- rtl_copyMemory (ctx->m_pData, d, nDatLen);
- ctx->m_nDatLen = nDatLen;
-
- return rtl_Digest_E_None;
-}
-
-/*
- * rtl_digest_getSHA.
- */
-rtlDigestError SAL_CALL rtl_digest_getSHA (
- rtlDigest Digest, sal_uInt8 *pBuffer, sal_uInt32 nBufLen)
-{
- DigestSHA_Impl *pImpl = (DigestSHA_Impl *)Digest;
- sal_uInt8 *p = pBuffer;
-
- DigestContextSHA *ctx;
-
- if ((pImpl == NULL) || (pBuffer == NULL))
- return rtl_Digest_E_Argument;
-
- if (!(pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmSHA))
- return rtl_Digest_E_Algorithm;
-
- if (!(pImpl->m_digest.m_length <= nBufLen))
- return rtl_Digest_E_BufferSize;
-
- ctx = &(pImpl->m_context);
-
- __rtl_digest_endSHA (ctx);
- RTL_DIGEST_HTONL (ctx->m_nA, p);
- RTL_DIGEST_HTONL (ctx->m_nB, p);
- RTL_DIGEST_HTONL (ctx->m_nC, p);
- RTL_DIGEST_HTONL (ctx->m_nD, p);
- RTL_DIGEST_HTONL (ctx->m_nE, p);
- __rtl_digest_initSHA (ctx, __rtl_digest_updateSHA_0);
-
- return rtl_Digest_E_None;
-}
-
-/*
- * rtl_digest_destroySHA.
- */
-void SAL_CALL rtl_digest_destroySHA (rtlDigest Digest)
-{
- DigestSHA_Impl *pImpl = (DigestSHA_Impl *)Digest;
- if (pImpl)
- {
- if (pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmSHA)
- rtl_freeZeroMemory (pImpl, sizeof (DigestSHA_Impl));
- else
- rtl_freeMemory (pImpl);
- }
-}
-
-/*========================================================================
- *
- * rtl_digest_SHA1 internals.
- *
- *======================================================================*/
-/*
- * __rtl_digest_SHA_1.
- */
-static const Digest_Impl __rtl_digest_SHA_1 =
-{
- rtl_Digest_AlgorithmSHA1,
- RTL_DIGEST_LENGTH_SHA1,
-
- NULL,
- rtl_digest_destroySHA1,
- rtl_digest_updateSHA1,
- rtl_digest_getSHA1
-};
-
-/*
- * __rtl_digest_updateSHA_1.
- */
-static sal_uInt32 __rtl_digest_updateSHA_1 (sal_uInt32 x)
-{
- return RTL_DIGEST_ROTL (x, 1);
-}
-
-/*========================================================================
- *
- * rtl_digest_SHA1 implementation.
- *
- *======================================================================*/
-/*
- * rtl_digest_SHA1.
- */
-rtlDigestError SAL_CALL rtl_digest_SHA1 (
- const void *pData, sal_uInt32 nDatLen,
- sal_uInt8 *pBuffer, sal_uInt32 nBufLen)
-{
- DigestSHA_Impl digest;
- rtlDigestError result;
-
- digest.m_digest = __rtl_digest_SHA_1;
- __rtl_digest_initSHA (&(digest.m_context), __rtl_digest_updateSHA_1);
-
- result = rtl_digest_updateSHA1 (&digest, pData, nDatLen);
- if (result == rtl_Digest_E_None)
- result = rtl_digest_getSHA1 (&digest, pBuffer, nBufLen);
-
- rtl_zeroMemory (&digest, sizeof (digest));
- return (result);
-}
-
-/*
- * rtl_digest_createSHA1.
- */
-rtlDigest SAL_CALL rtl_digest_createSHA1 (void)
-{
- DigestSHA_Impl *pImpl = (DigestSHA_Impl*)NULL;
- pImpl = RTL_DIGEST_CREATE(DigestSHA_Impl);
- if (pImpl)
- {
- pImpl->m_digest = __rtl_digest_SHA_1;
- __rtl_digest_initSHA (&(pImpl->m_context), __rtl_digest_updateSHA_1);
- }
- return ((rtlDigest)pImpl);
-}
-
-/*
- * rtl_digest_updateSHA1.
- */
-rtlDigestError SAL_CALL rtl_digest_updateSHA1 (
- rtlDigest Digest, const void *pData, sal_uInt32 nDatLen)
-{
- DigestSHA_Impl *pImpl = (DigestSHA_Impl *)Digest;
- const sal_uInt8 *d = (const sal_uInt8 *)pData;
-
- DigestContextSHA *ctx;
- sal_uInt32 len;
-
- if ((pImpl == NULL) || (pData == NULL))
- return rtl_Digest_E_Argument;
-
- if (!(pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmSHA1))
- return rtl_Digest_E_Algorithm;
-
- if (nDatLen == 0)
- return rtl_Digest_E_None;
-
- ctx = &(pImpl->m_context);
-
- len = ctx->m_nL + (nDatLen << 3);
- if (len < ctx->m_nL) ctx->m_nH += 1;
- ctx->m_nH += (nDatLen >> 29);
- ctx->m_nL = len;
-
- if (ctx->m_nDatLen)
- {
- sal_uInt8 *p = (sal_uInt8 *)(ctx->m_pData) + ctx->m_nDatLen;
- sal_uInt32 n = DIGEST_CBLOCK_SHA - ctx->m_nDatLen;
-
- if (nDatLen < n)
- {
- rtl_copyMemory (p, d, nDatLen);
- ctx->m_nDatLen += nDatLen;
-
- return rtl_Digest_E_None;
- }
-
- rtl_copyMemory (p, d, n);
- d += n;
- nDatLen -= n;
-
-#ifndef OSL_BIGENDIAN
- __rtl_digest_swapLong (ctx->m_pData, DIGEST_LBLOCK_SHA);
-#endif /* OSL_BIGENDIAN */
-
- __rtl_digest_updateSHA (ctx);
- ctx->m_nDatLen = 0;
- }
-
- while (nDatLen >= DIGEST_CBLOCK_SHA)
- {
- rtl_copyMemory (ctx->m_pData, d, DIGEST_CBLOCK_SHA);
- d += DIGEST_CBLOCK_SHA;
- nDatLen -= DIGEST_CBLOCK_SHA;
-
-#ifndef OSL_BIGENDIAN
- __rtl_digest_swapLong (ctx->m_pData, DIGEST_LBLOCK_SHA);
-#endif /* OSL_BIGENDIAN */
-
- __rtl_digest_updateSHA (ctx);
- }
-
- rtl_copyMemory (ctx->m_pData, d, nDatLen);
- ctx->m_nDatLen = nDatLen;
-
- return rtl_Digest_E_None;
-}
-
-/*
- * rtl_digest_getSHA1.
- */
-rtlDigestError SAL_CALL rtl_digest_getSHA1 (
- rtlDigest Digest, sal_uInt8 *pBuffer, sal_uInt32 nBufLen)
-{
- DigestSHA_Impl *pImpl = (DigestSHA_Impl *)Digest;
- sal_uInt8 *p = pBuffer;
-
- DigestContextSHA *ctx;
-
- if ((pImpl == NULL) || (pBuffer == NULL))
- return rtl_Digest_E_Argument;
-
- if (!(pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmSHA1))
- return rtl_Digest_E_Algorithm;
-
- if (!(pImpl->m_digest.m_length <= nBufLen))
- return rtl_Digest_E_BufferSize;
-
- ctx = &(pImpl->m_context);
-
- __rtl_digest_endSHA (ctx);
- RTL_DIGEST_HTONL (ctx->m_nA, p);
- RTL_DIGEST_HTONL (ctx->m_nB, p);
- RTL_DIGEST_HTONL (ctx->m_nC, p);
- RTL_DIGEST_HTONL (ctx->m_nD, p);
- RTL_DIGEST_HTONL (ctx->m_nE, p);
- __rtl_digest_initSHA (ctx, __rtl_digest_updateSHA_1);
-
- return rtl_Digest_E_None;
-}
-
-/*
- * rtl_digest_destroySHA1.
- */
-void SAL_CALL rtl_digest_destroySHA1 (rtlDigest Digest)
-{
- DigestSHA_Impl *pImpl = (DigestSHA_Impl *)Digest;
- if (pImpl)
- {
- if (pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmSHA1)
- rtl_freeZeroMemory (pImpl, sizeof (DigestSHA_Impl));
- else
- rtl_freeMemory (pImpl);
- }
-}
-
-/*========================================================================
- *
- * rtl_digest_HMAC_MD5 internals.
- *
- *======================================================================*/
-#define DIGEST_CBLOCK_HMAC_MD5 64
-
-typedef struct _contextHMAC_MD5_st
-{
- DigestMD5_Impl m_hash;
- sal_uInt8 m_opad[DIGEST_CBLOCK_HMAC_MD5];
-} ContextHMAC_MD5;
-
-typedef struct _digestHMAC_MD5_impl_st
-{
- Digest_Impl m_digest;
- ContextHMAC_MD5 m_context;
-} DigestHMAC_MD5_Impl;
-
-static void __rtl_digest_initHMAC_MD5 (ContextHMAC_MD5 * ctx);
-static void __rtl_digest_ipadHMAC_MD5 (ContextHMAC_MD5 * ctx);
-static void __rtl_digest_opadHMAC_MD5 (ContextHMAC_MD5 * ctx);
-
-/*
- * __rtl_digest_HMAC_MD5.
- */
-static const Digest_Impl __rtl_digest_HMAC_MD5 =
-{
- rtl_Digest_AlgorithmHMAC_MD5,
- RTL_DIGEST_LENGTH_MD5,
-
- rtl_digest_initHMAC_MD5,
- rtl_digest_destroyHMAC_MD5,
- rtl_digest_updateHMAC_MD5,
- rtl_digest_getHMAC_MD5
-};
-
-/*
- * __rtl_digest_initHMAC_MD5.
- */
-static void __rtl_digest_initHMAC_MD5 (ContextHMAC_MD5 * ctx)
-{
- DigestMD5_Impl *pImpl = &(ctx->m_hash);
-
- pImpl->m_digest = __rtl_digest_MD5;
- __rtl_digest_initMD5 (&(pImpl->m_context));
-
- rtl_zeroMemory (ctx->m_opad, DIGEST_CBLOCK_HMAC_MD5);
-}
-
-/*
- * __rtl_digest_ipadHMAC_MD5.
- */
-static void __rtl_digest_ipadHMAC_MD5 (ContextHMAC_MD5 * ctx)
-{
- register sal_uInt32 i;
-
- for (i = 0; i < DIGEST_CBLOCK_HMAC_MD5; i++)
- ctx->m_opad[i] ^= 0x36;
- rtl_digest_updateMD5 (
- &(ctx->m_hash), ctx->m_opad, DIGEST_CBLOCK_HMAC_MD5);
- for (i = 0; i < DIGEST_CBLOCK_HMAC_MD5; i++)
- ctx->m_opad[i] ^= 0x36;
-}
-
-/*
- * __rtl_digest_opadHMAC_MD5.
- */
-static void __rtl_digest_opadHMAC_MD5 (ContextHMAC_MD5 * ctx)
-{
- register sal_uInt32 i;
-
- for (i = 0; i < DIGEST_CBLOCK_HMAC_MD5; i++)
- ctx->m_opad[i] ^= 0x5c;
-}
-
-/*========================================================================
- *
- * rtl_digest_HMAC_MD5 implementation.
- *
- *======================================================================*/
-/*
- * rtl_digest_HMAC_MD5.
- */
-rtlDigestError SAL_CALL rtl_digest_HMAC_MD5 (
- const sal_uInt8 *pKeyData, sal_uInt32 nKeyLen,
- const void *pData, sal_uInt32 nDatLen,
- sal_uInt8 *pBuffer, sal_uInt32 nBufLen)
-{
- DigestHMAC_MD5_Impl digest;
- rtlDigestError result;
-
- digest.m_digest = __rtl_digest_HMAC_MD5;
-
- result = rtl_digest_initHMAC_MD5 (&digest, pKeyData, nKeyLen);
- if (result == rtl_Digest_E_None)
- {
- result = rtl_digest_updateHMAC_MD5 (&digest, pData, nDatLen);
- if (result == rtl_Digest_E_None)
- result = rtl_digest_getHMAC_MD5 (&digest, pBuffer, nBufLen);
- }
-
- rtl_zeroMemory (&digest, sizeof (digest));
- return (result);
-}
-
-/*
- * rtl_digest_createHMAC_MD5.
- */
-rtlDigest SAL_CALL rtl_digest_createHMAC_MD5 (void)
-{
- DigestHMAC_MD5_Impl *pImpl = (DigestHMAC_MD5_Impl*)NULL;
- pImpl = RTL_DIGEST_CREATE(DigestHMAC_MD5_Impl);
- if (pImpl)
- {
- pImpl->m_digest = __rtl_digest_HMAC_MD5;
- __rtl_digest_initHMAC_MD5 (&(pImpl->m_context));
- }
- return ((rtlDigest)pImpl);
-}
-
-/*
- * rtl_digest_initHMAC_MD5.
- */
-rtlDigestError SAL_CALL rtl_digest_initHMAC_MD5 (
- rtlDigest Digest, const sal_uInt8 *pKeyData, sal_uInt32 nKeyLen)
-{
- DigestHMAC_MD5_Impl *pImpl = (DigestHMAC_MD5_Impl*)Digest;
- ContextHMAC_MD5 *ctx;
-
- if ((pImpl == NULL) || (pKeyData == NULL))
- return rtl_Digest_E_Argument;
-
- if (!(pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmHMAC_MD5))
- return rtl_Digest_E_Algorithm;
-
- ctx = &(pImpl->m_context);
- __rtl_digest_initHMAC_MD5 (ctx);
-
- if (nKeyLen > DIGEST_CBLOCK_HMAC_MD5)
- {
- /* Initialize 'opad' with hashed 'KeyData' */
- rtl_digest_updateMD5 (
- &(ctx->m_hash), pKeyData, nKeyLen);
- rtl_digest_getMD5 (
- &(ctx->m_hash), ctx->m_opad, RTL_DIGEST_LENGTH_MD5);
- }
- else
- {
- /* Initialize 'opad' with plain 'KeyData' */
- rtl_copyMemory (ctx->m_opad, pKeyData, nKeyLen);
- }
-
- __rtl_digest_ipadHMAC_MD5 (ctx);
- __rtl_digest_opadHMAC_MD5 (ctx);
-
- return rtl_Digest_E_None;
-}
-
-/*
- * rtl_digest_updateHMAC_MD5.
- */
-rtlDigestError SAL_CALL rtl_digest_updateHMAC_MD5 (
- rtlDigest Digest, const void *pData, sal_uInt32 nDatLen)
-{
- DigestHMAC_MD5_Impl *pImpl = (DigestHMAC_MD5_Impl*)Digest;
- ContextHMAC_MD5 *ctx;
-
- if ((pImpl == NULL) || (pData == NULL))
- return rtl_Digest_E_Argument;
-
- if (!(pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmHMAC_MD5))
- return rtl_Digest_E_Algorithm;
-
- ctx = &(pImpl->m_context);
- rtl_digest_updateMD5 (&(ctx->m_hash), pData, nDatLen);
-
- return rtl_Digest_E_None;
-}
-
-/*
- * rtl_digest_getHMAC_MD5.
- */
-rtlDigestError SAL_CALL rtl_digest_getHMAC_MD5 (
- rtlDigest Digest, sal_uInt8 *pBuffer, sal_uInt32 nBufLen)
-{
- DigestHMAC_MD5_Impl *pImpl = (DigestHMAC_MD5_Impl*)Digest;
- ContextHMAC_MD5 *ctx;
-
- if ((pImpl == NULL) || (pBuffer == NULL))
- return rtl_Digest_E_Argument;
-
- if (!(pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmHMAC_MD5))
- return rtl_Digest_E_Algorithm;
-
- if (!(pImpl->m_digest.m_length <= nBufLen))
- return rtl_Digest_E_BufferSize;
-
- nBufLen = pImpl->m_digest.m_length;
-
- ctx = &(pImpl->m_context);
- rtl_digest_getMD5 (&(ctx->m_hash), pBuffer, nBufLen);
-
- rtl_digest_updateMD5 (&(ctx->m_hash), ctx->m_opad, 64);
- rtl_digest_updateMD5 (&(ctx->m_hash), pBuffer, nBufLen);
- rtl_digest_getMD5 (&(ctx->m_hash), pBuffer, nBufLen);
-
- __rtl_digest_opadHMAC_MD5 (ctx);
- __rtl_digest_ipadHMAC_MD5 (ctx);
- __rtl_digest_opadHMAC_MD5 (ctx);
-
- return rtl_Digest_E_None;
-}
-
-/*
- * rtl_digest_destroyHMAC_MD5.
- */
-void SAL_CALL rtl_digest_destroyHMAC_MD5 (rtlDigest Digest)
-{
- DigestHMAC_MD5_Impl *pImpl = (DigestHMAC_MD5_Impl*)Digest;
- if (pImpl)
- {
- if (pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmHMAC_MD5)
- rtl_freeZeroMemory (pImpl, sizeof (DigestHMAC_MD5_Impl));
- else
- rtl_freeMemory (pImpl);
- }
-}
-
-/*========================================================================
- *
- * rtl_digest_HMAC_SHA1 internals.
- *
- *======================================================================*/
-#define DIGEST_CBLOCK_HMAC_SHA1 64
-
-typedef struct _contextHMAC_SHA1_st
-{
- DigestSHA_Impl m_hash;
- sal_uInt8 m_opad[DIGEST_CBLOCK_HMAC_SHA1];
-} ContextHMAC_SHA1;
-
-typedef struct _digestHMAC_SHA1_impl_st
-{
- Digest_Impl m_digest;
- ContextHMAC_SHA1 m_context;
-} DigestHMAC_SHA1_Impl;
-
-static void __rtl_digest_initHMAC_SHA1 (ContextHMAC_SHA1 * ctx);
-static void __rtl_digest_ipadHMAC_SHA1 (ContextHMAC_SHA1 * ctx);
-static void __rtl_digest_opadHMAC_SHA1 (ContextHMAC_SHA1 * ctx);
-
-/*
- * __rtl_digest_HMAC_SHA1.
- */
-static const Digest_Impl __rtl_digest_HMAC_SHA1 =
-{
- rtl_Digest_AlgorithmHMAC_SHA1,
- RTL_DIGEST_LENGTH_SHA1,
-
- rtl_digest_initHMAC_SHA1,
- rtl_digest_destroyHMAC_SHA1,
- rtl_digest_updateHMAC_SHA1,
- rtl_digest_getHMAC_SHA1
-};
-
-/*
- * __rtl_digest_initHMAC_SHA1.
- */
-static void __rtl_digest_initHMAC_SHA1 (ContextHMAC_SHA1 * ctx)
-{
- DigestSHA_Impl *pImpl = &(ctx->m_hash);
-
- pImpl->m_digest = __rtl_digest_SHA_1;
- __rtl_digest_initSHA (&(pImpl->m_context), __rtl_digest_updateSHA_1);
-
- rtl_zeroMemory (ctx->m_opad, DIGEST_CBLOCK_HMAC_SHA1);
-}
-
-/*
- * __rtl_digest_ipadHMAC_SHA1.
- */
-static void __rtl_digest_ipadHMAC_SHA1 (ContextHMAC_SHA1 * ctx)
-{
- register sal_uInt32 i;
-
- for (i = 0; i < DIGEST_CBLOCK_HMAC_SHA1; i++)
- ctx->m_opad[i] ^= 0x36;
- rtl_digest_updateSHA1 (
- &(ctx->m_hash), ctx->m_opad, DIGEST_CBLOCK_HMAC_SHA1);
- for (i = 0; i < DIGEST_CBLOCK_HMAC_SHA1; i++)
- ctx->m_opad[i] ^= 0x36;
-}
-
-/*
- * __rtl_digest_opadHMAC_SHA1.
- */
-static void __rtl_digest_opadHMAC_SHA1 (ContextHMAC_SHA1 * ctx)
-{
- register sal_uInt32 i;
-
- for (i = 0; i < DIGEST_CBLOCK_HMAC_SHA1; i++)
- ctx->m_opad[i] ^= 0x5c;
-}
-
-/*========================================================================
- *
- * rtl_digest_HMAC_SHA1 implementation.
- *
- *======================================================================*/
-/*
- * rtl_digest_HMAC_SHA1.
- */
-rtlDigestError SAL_CALL rtl_digest_HMAC_SHA1 (
- const sal_uInt8 *pKeyData, sal_uInt32 nKeyLen,
- const void *pData, sal_uInt32 nDatLen,
- sal_uInt8 *pBuffer, sal_uInt32 nBufLen)
-{
- DigestHMAC_SHA1_Impl digest;
- rtlDigestError result;
-
- digest.m_digest = __rtl_digest_HMAC_SHA1;
-
- result = rtl_digest_initHMAC_SHA1 (&digest, pKeyData, nKeyLen);
- if (result == rtl_Digest_E_None)
- {
- result = rtl_digest_updateHMAC_SHA1 (&digest, pData, nDatLen);
- if (result == rtl_Digest_E_None)
- result = rtl_digest_getHMAC_SHA1 (&digest, pBuffer, nBufLen);
- }
-
- rtl_zeroMemory (&digest, sizeof (digest));
- return (result);
-}
-
-/*
- * rtl_digest_createHMAC_SHA1.
- */
-rtlDigest SAL_CALL rtl_digest_createHMAC_SHA1 (void)
-{
- DigestHMAC_SHA1_Impl *pImpl = (DigestHMAC_SHA1_Impl*)NULL;
- pImpl = RTL_DIGEST_CREATE(DigestHMAC_SHA1_Impl);
- if (pImpl)
- {
- pImpl->m_digest = __rtl_digest_HMAC_SHA1;
- __rtl_digest_initHMAC_SHA1 (&(pImpl->m_context));
- }
- return ((rtlDigest)pImpl);
-}
-
-/*
- * rtl_digest_initHMAC_SHA1.
- */
-rtlDigestError SAL_CALL rtl_digest_initHMAC_SHA1 (
- rtlDigest Digest, const sal_uInt8 *pKeyData, sal_uInt32 nKeyLen)
-{
- DigestHMAC_SHA1_Impl *pImpl = (DigestHMAC_SHA1_Impl*)Digest;
- ContextHMAC_SHA1 *ctx;
-
- if ((pImpl == NULL) || (pKeyData == NULL))
- return rtl_Digest_E_Argument;
-
- if (!(pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmHMAC_SHA1))
- return rtl_Digest_E_Algorithm;
-
- ctx = &(pImpl->m_context);
- __rtl_digest_initHMAC_SHA1 (ctx);
-
- if (nKeyLen > DIGEST_CBLOCK_HMAC_SHA1)
- {
- /* Initialize 'opad' with hashed 'KeyData' */
- rtl_digest_updateSHA1 (
- &(ctx->m_hash), pKeyData, nKeyLen);
- rtl_digest_getSHA1 (
- &(ctx->m_hash), ctx->m_opad, RTL_DIGEST_LENGTH_SHA1);
- }
- else
- {
- /* Initialize 'opad' with plain 'KeyData' */
- rtl_copyMemory (ctx->m_opad, pKeyData, nKeyLen);
- }
-
- __rtl_digest_ipadHMAC_SHA1 (ctx);
- __rtl_digest_opadHMAC_SHA1 (ctx);
-
- return rtl_Digest_E_None;
-}
-
-/*
- * rtl_digest_updateHMAC_SHA1.
- */
-rtlDigestError SAL_CALL rtl_digest_updateHMAC_SHA1 (
- rtlDigest Digest, const void *pData, sal_uInt32 nDatLen)
-{
- DigestHMAC_SHA1_Impl *pImpl = (DigestHMAC_SHA1_Impl*)Digest;
- ContextHMAC_SHA1 *ctx;
-
- if ((pImpl == NULL) || (pData == NULL))
- return rtl_Digest_E_Argument;
-
- if (!(pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmHMAC_SHA1))
- return rtl_Digest_E_Algorithm;
-
- ctx = &(pImpl->m_context);
- rtl_digest_updateSHA1 (&(ctx->m_hash), pData, nDatLen);
-
- return rtl_Digest_E_None;
-}
-
-/*
- * rtl_digest_getHMAC_SHA1.
- */
-rtlDigestError SAL_CALL rtl_digest_getHMAC_SHA1 (
- rtlDigest Digest, sal_uInt8 *pBuffer, sal_uInt32 nBufLen)
-{
- DigestHMAC_SHA1_Impl *pImpl = (DigestHMAC_SHA1_Impl*)Digest;
- ContextHMAC_SHA1 *ctx;
-
- if ((pImpl == NULL) || (pBuffer == NULL))
- return rtl_Digest_E_Argument;
-
- if (!(pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmHMAC_SHA1))
- return rtl_Digest_E_Algorithm;
-
- if (!(pImpl->m_digest.m_length <= nBufLen))
- return rtl_Digest_E_BufferSize;
-
- nBufLen = pImpl->m_digest.m_length;
-
- ctx = &(pImpl->m_context);
- rtl_digest_getSHA1 (&(ctx->m_hash), pBuffer, nBufLen);
-
- rtl_digest_updateSHA1 (&(ctx->m_hash), ctx->m_opad, sizeof(ctx->m_opad));
- rtl_digest_updateSHA1 (&(ctx->m_hash), pBuffer, nBufLen);
- rtl_digest_getSHA1 (&(ctx->m_hash), pBuffer, nBufLen);
-
- __rtl_digest_opadHMAC_SHA1 (ctx);
- __rtl_digest_ipadHMAC_SHA1 (ctx);
- __rtl_digest_opadHMAC_SHA1 (ctx);
-
- return rtl_Digest_E_None;
-}
-
-/*
- * rtl_digest_destroyHMAC_SHA1.
- */
-void SAL_CALL rtl_digest_destroyHMAC_SHA1 (rtlDigest Digest)
-{
- DigestHMAC_SHA1_Impl *pImpl = (DigestHMAC_SHA1_Impl*)Digest;
- if (pImpl)
- {
- if (pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmHMAC_SHA1)
- rtl_freeZeroMemory (pImpl, sizeof (DigestHMAC_SHA1_Impl));
- else
- rtl_freeMemory (pImpl);
- }
-}
-
-/*========================================================================
- *
- * rtl_digest_PBKDF2 internals.
- *
- *======================================================================*/
-#define DIGEST_CBLOCK_PBKDF2 RTL_DIGEST_LENGTH_HMAC_SHA1
-
-/*
- * __rtl_digest_updatePBKDF2.
- */
-static void __rtl_digest_updatePBKDF2 (
- rtlDigest hDigest,
- sal_uInt8 T[DIGEST_CBLOCK_PBKDF2],
- const sal_uInt8 *pSaltData, sal_uInt32 nSaltLen,
- sal_uInt32 nCount, sal_uInt32 nIndex)
-{
- /* T_i = F (P, S, c, i) */
- sal_uInt8 U[DIGEST_CBLOCK_PBKDF2];
- register sal_uInt32 i, k;
-
- /* U_(1) = PRF (P, S || INDEX) */
- rtl_digest_updateHMAC_SHA1 (hDigest, pSaltData, nSaltLen);
- rtl_digest_updateHMAC_SHA1 (hDigest, &nIndex, sizeof(nIndex));
- rtl_digest_getHMAC_SHA1 (hDigest, U, DIGEST_CBLOCK_PBKDF2);
-
- /* T = U_(1) */
- for (k = 0; k < DIGEST_CBLOCK_PBKDF2; k++) T[k] = U[k];
-
- /* T ^= U_(2) ^ ... ^ U_(c) */
- for (i = 1; i < nCount; i++)
- {
- /* U_(i) = PRF (P, U_(i-1)) */
- rtl_digest_updateHMAC_SHA1 (hDigest, U, DIGEST_CBLOCK_PBKDF2);
- rtl_digest_getHMAC_SHA1 (hDigest, U, DIGEST_CBLOCK_PBKDF2);
-
- /* T ^= U_(i) */
- for (k = 0; k < DIGEST_CBLOCK_PBKDF2; k++) T[k] ^= U[k];
- }
-
- rtl_zeroMemory (U, DIGEST_CBLOCK_PBKDF2);
-}
-
-/*========================================================================
- *
- * rtl_digest_PBKDF2 implementation.
- *
- *======================================================================*/
-/*
- * rtl_digest_PBKDF2.
- */
-rtlDigestError SAL_CALL rtl_digest_PBKDF2 (
- sal_uInt8 *pKeyData , sal_uInt32 nKeyLen,
- const sal_uInt8 *pPassData, sal_uInt32 nPassLen,
- const sal_uInt8 *pSaltData, sal_uInt32 nSaltLen,
- sal_uInt32 nCount)
-{
- DigestHMAC_SHA1_Impl digest;
- sal_uInt32 i = 1;
-
- if ((pKeyData == NULL) || (pPassData == NULL) || (pSaltData == NULL))
- return rtl_Digest_E_Argument;
-
- digest.m_digest = __rtl_digest_HMAC_SHA1;
- rtl_digest_initHMAC_SHA1 (&digest, pPassData, nPassLen);
-
- /* DK = T_(1) || T_(2) || ... || T_(l) */
- while (nKeyLen >= DIGEST_CBLOCK_PBKDF2)
- {
- /* T_(i) = F (P, S, c, i); DK ||= T_(i) */
- __rtl_digest_updatePBKDF2 (
- &digest, pKeyData,
- pSaltData, nSaltLen,
- nCount, OSL_NETDWORD(i));
-
- /* Next 'KeyData' block */
- pKeyData += DIGEST_CBLOCK_PBKDF2;
- nKeyLen -= DIGEST_CBLOCK_PBKDF2;
- i += 1;
- }
- if (nKeyLen > 0)
- {
- /* Last 'KeyData' block */
- sal_uInt8 T[DIGEST_CBLOCK_PBKDF2];
-
- /* T_i = F (P, S, c, i) */
- __rtl_digest_updatePBKDF2 (
- &digest, T,
- pSaltData, nSaltLen,
- nCount, OSL_NETDWORD(i));
-
- /* DK ||= T_(i) */
- rtl_copyMemory (pKeyData, T, nKeyLen);
- rtl_zeroMemory (T, DIGEST_CBLOCK_PBKDF2);
- }
-
- rtl_zeroMemory (&digest, sizeof (digest));
- return rtl_Digest_E_None;
-}
-
-/*========================================================================
- *
- * The End.
- *
- *======================================================================*/
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/hash.cxx b/sal/rtl/source/hash.cxx
deleted file mode 100644
index 0f381ea82..000000000
--- a/sal/rtl/source/hash.cxx
+++ /dev/null
@@ -1,242 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include "hash.h"
-#include "strimp.h"
-#include <osl/diagnose.h>
-#include <sal/macros.h>
-
-struct StringHashTableImpl {
- sal_uInt32 nEntries;
- sal_uInt32 nSize;
- rtl_uString **pData;
-};
-
-typedef StringHashTableImpl StringHashTable;
-
-// Only for use in the implementation
-static StringHashTable *rtl_str_hash_new (sal_uInt32 nSize);
-static void rtl_str_hash_free (StringHashTable *pHash);
-
-StringHashTable *
-getHashTable ()
-{
- static StringHashTable *pInternPool = NULL;
- if (pInternPool == NULL) {
- static StringHashTable* pHash = rtl_str_hash_new(1024);
- pInternPool = pHash;
- }
- return pInternPool;
-}
-
-// Better / smaller / faster hash set ....
-
-// TODO: add bottom bit-set list terminator to string list
-
-static sal_uInt32
-getNextSize (sal_uInt32 nSize)
-{
- // Sedgewick - Algorithms in C P577.
- static const sal_uInt32 nPrimes[] = { 1021, 2039, 4093, 8191, 16381, 32749,
- 65521, 131071,262139, 524287, 1048573,
- 2097143, 4194301, 8388593, 16777213,
- 33554393, 67108859, 134217689 };
-
- for (sal_uInt32 i = 0; i < SAL_N_ELEMENTS(nPrimes); i++)
- {
- if (nPrimes[i] > nSize)
- return nPrimes[i];
- }
- return nSize * 2;
-}
-
-static sal_uInt32
-hashString (rtl_uString *pString)
-{
- return (sal_uInt32) rtl_ustr_hashCode_WithLength (pString->buffer,
- pString->length);
-}
-
-static StringHashTable *
-rtl_str_hash_new (sal_uInt32 nSize)
-{
- StringHashTable *pHash = (StringHashTable *)malloc (sizeof (StringHashTable));
-
- pHash->nEntries = 0;
- pHash->nSize = getNextSize (nSize);
- pHash->pData = (rtl_uString **) calloc (sizeof (rtl_uString *), pHash->nSize);
-
- return pHash;
-}
-
-static void
-rtl_str_hash_free (StringHashTable *pHash)
-{
- if (!pHash)
- return;
- if (pHash->pData)
- free (pHash->pData);
- free (pHash);
-}
-
-static void
-rtl_str_hash_insert_nonequal (StringHashTable *pHash,
- rtl_uString *pString)
-{
- sal_uInt32 nHash = hashString (pString);
- sal_uInt32 n;
-
- n = nHash % pHash->nSize;
- while (pHash->pData[n] != NULL) {
- n++;
- if (n >= pHash->nSize)
- n = 0;
- }
- pHash->pData[n] = pString;
-}
-
-static void
-rtl_str_hash_resize (sal_uInt32 nNewSize)
-{
- sal_uInt32 i;
- StringHashTable *pNewHash;
- StringHashTable *pHash = getHashTable();
-
- OSL_ASSERT (nNewSize > pHash->nEntries);
-
- pNewHash = rtl_str_hash_new (nNewSize);
-
- for (i = 0; i < pHash->nSize; i++)
- {
- if (pHash->pData[i] != NULL)
- rtl_str_hash_insert_nonequal (pNewHash, pHash->pData[i]);
- }
- pNewHash->nEntries = pHash->nEntries;
- free (pHash->pData);
- *pHash = *pNewHash;
- pNewHash->pData = NULL;
- rtl_str_hash_free (pNewHash);
-}
-
-static int
-compareEqual (rtl_uString *pStringA, rtl_uString *pStringB)
-{
- if (pStringA == pStringB)
- return 1;
- if (pStringA->length != pStringB->length)
- return 0;
- return !rtl_ustr_compare_WithLength( pStringA->buffer, pStringA->length,
- pStringB->buffer, pStringB->length);
-}
-
-
-rtl_uString *
-rtl_str_hash_intern (rtl_uString *pString,
- int can_return)
-{
- sal_uInt32 nHash = hashString (pString);
- sal_uInt32 n;
- rtl_uString *pHashStr;
-
- StringHashTable *pHash = getHashTable();
-
- // Should we resize ?
- if (pHash->nEntries >= pHash->nSize/2)
- rtl_str_hash_resize (getNextSize(pHash->nSize));
-
- n = nHash % pHash->nSize;
- while ((pHashStr = pHash->pData[n]) != NULL) {
- if (compareEqual (pHashStr, pString))
- {
- rtl_uString_acquire (pHashStr);
- return pHashStr;
- }
- n++;
- if (n >= pHash->nSize)
- n = 0;
- }
-
- if (!can_return)
- {
- rtl_uString *pCopy = NULL;
- rtl_uString_newFromString( &pCopy, pString );
- pString = pCopy;
- if (!pString)
- return NULL;
- }
-
- if (!SAL_STRING_IS_STATIC (pString))
- pString->refCount |= SAL_STRING_INTERN_FLAG;
- pHash->pData[n] = pString;
- pHash->nEntries++;
-
- return pString;
-}
-
-void
-rtl_str_hash_remove (rtl_uString *pString)
-{
- sal_uInt32 n;
- sal_uInt32 nHash = hashString (pString);
- rtl_uString *pHashStr;
-
- StringHashTable *pHash = getHashTable();
-
- n = nHash % pHash->nSize;
- while ((pHashStr = pHash->pData[n]) != NULL) {
- if (compareEqual (pHashStr, pString))
- break;
- n++;
- if (n >= pHash->nSize)
- n = 0;
- }
- OSL_ASSERT (pHash->pData[n] != 0);
- if (pHash->pData[n] == NULL)
- return;
-
- pHash->pData[n++] = NULL;
- pHash->nEntries--;
-
- if (n >= pHash->nSize)
- n = 0;
-
- while ((pHashStr = pHash->pData[n]) != NULL) {
- pHash->pData[n] = NULL;
- // FIXME: rather unsophisticated and N^2 in chain-length, but robust.
- rtl_str_hash_insert_nonequal (pHash, pHashStr);
- n++;
- if (n >= pHash->nSize)
- n = 0;
- }
- // FIXME: Should we down-size ?
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/hash.h b/sal/rtl/source/hash.h
deleted file mode 100644
index 6a6518833..000000000
--- a/sal/rtl/source/hash.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-#ifndef INCLUDED_RTL_SOURCE_HASH_H
-#define INCLUDED_RTL_SOURCE_HASH_H
-
-#include <sal/types.h>
-#include <rtl/ustring.h>
-
-#if defined __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/* These functions are not multi-thread safe: */
-
-rtl_uString *rtl_str_hash_intern (rtl_uString *pString,
- int can_return);
-void rtl_str_hash_remove (rtl_uString *pString);
-
-#if defined __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* INCLUDED_RTL_SOURCE_HASH_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/locale.c b/sal/rtl/source/locale.c
deleted file mode 100644
index 79f2fb8b9..000000000
--- a/sal/rtl/source/locale.c
+++ /dev/null
@@ -1,352 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "rtl/locale.h"
-
-#include "osl/diagnose.h"
-#include "rtl/alloc.h"
-
-#include "internal/once.h"
-
-static sal_Int32 RTL_HASHTABLE_SIZE[] =
-{
- 7, 31, 127, 251, 509, 1021, 2039, 4093
-};
-
-typedef struct rtl_hashentry RTL_HASHENTRY;
-
-struct rtl_hashentry
-{
- rtl_Locale* Entry;
- RTL_HASHENTRY* Next;
-};
-
-typedef struct rtl_hashtable
-{
- sal_Int8 iSize;
- sal_Int32 Size;
- sal_Int32 Elements;
- RTL_HASHENTRY** Table;
-} RTL_HASHTABLE;
-
-static RTL_HASHTABLE* g_pLocaleTable = NULL;
-
-static rtl_Locale* g_pDefaultLocale = NULL;
-
-/*************************************************************************
- */
-void rtl_hashentry_destroy(RTL_HASHENTRY* entry)
-{
- rtl_uString_release(entry->Entry->Language);
- rtl_uString_release(entry->Entry->Country);
- rtl_uString_release(entry->Entry->Variant);
- if (entry->Next)
- rtl_hashentry_destroy(entry->Next);
-
- rtl_freeMemory(entry->Entry);
- rtl_freeMemory(entry);
-}
-
-void rtl_hashtable_destroy(RTL_HASHTABLE* table)
-{
- sal_Int32 size = 0;
-
- if (!table)
- return;
-
- size = table->Size;
-
- while (size)
- {
- if (table->Table[size - 1])
- rtl_hashentry_destroy(table->Table[size - 1]);
- size--;
- }
-
- rtl_freeMemory(table->Table);
- rtl_freeMemory(table);
-}
-
-void rtl_hashtable_init(RTL_HASHTABLE** table, sal_Int8 sizeIndex)
-{
- sal_Int32 nSize = RTL_HASHTABLE_SIZE[sizeIndex];
-
- if (*table)
- rtl_hashtable_destroy(*table);
-
- *table = (RTL_HASHTABLE*)rtl_allocateMemory( sizeof(RTL_HASHTABLE) );
-
- (*table)->iSize = sizeIndex;
- (*table)->Size = nSize;
- (*table)->Elements = 0;
- (*table)->Table = (RTL_HASHENTRY**)rtl_allocateMemory( (*table)->Size * sizeof(RTL_HASHENTRY*) );
-
- while (nSize)
- {
- (*table)->Table[nSize - 1] = NULL;
- nSize--;
- }
-}
-
-sal_Int32 rtl_hashfunc(RTL_HASHTABLE* table, sal_Int32 key)
-{
- return ( (sal_uInt32) key % table->Size);
-}
-
-sal_Bool rtl_hashtable_grow(RTL_HASHTABLE** table);
-
-rtl_Locale* rtl_hashtable_add(RTL_HASHTABLE** table, rtl_Locale* value)
-{
- sal_Int32 key = 0;
-
- if (!(*table))
- return NULL;
-
- if ((*table)->Elements > ((*table)->Size / 2))
- rtl_hashtable_grow(table);
-
- key = rtl_hashfunc(*table, value->HashCode);
-
- if (!(*table)->Table[key])
- {
- RTL_HASHENTRY *newEntry = (RTL_HASHENTRY*)rtl_allocateMemory( sizeof(RTL_HASHENTRY) );
- newEntry->Entry = value;
- newEntry->Next = NULL;
- (*table)->Table[key] = newEntry;
- (*table)->Elements++;
- return NULL;
- } else
- {
- RTL_HASHENTRY *pEntry = (*table)->Table[key];
- RTL_HASHENTRY *newEntry = NULL;
-
- while (pEntry)
- {
- if (value->HashCode == pEntry->Entry->HashCode)
- return pEntry->Entry;
-
- if (!pEntry->Next)
- break;
-
- pEntry = pEntry->Next;
- }
-
- newEntry = (RTL_HASHENTRY*)rtl_allocateMemory( sizeof(RTL_HASHENTRY) );
- newEntry->Entry = value;
- newEntry->Next = NULL;
- pEntry->Next = newEntry;
- (*table)->Elements++;
- return NULL;
- }
-}
-
-sal_Bool rtl_hashtable_grow(RTL_HASHTABLE** table)
-{
- RTL_HASHTABLE* pNewTable = NULL;
- sal_Int32 i = 0;
-
- rtl_hashtable_init(&pNewTable, (sal_Int8)((*table)->iSize + 1));
-
- while (i < (*table)->Size)
- {
- if ((*table)->Table[i])
- {
- RTL_HASHENTRY *pNext;
- RTL_HASHENTRY *pEntry = (*table)->Table[i];
-
- rtl_hashtable_add(&pNewTable, pEntry->Entry);
-
- while (pEntry->Next)
- {
- rtl_hashtable_add(&pNewTable, pEntry->Next->Entry);
- pNext = pEntry->Next;
- rtl_freeMemory(pEntry);
- pEntry = pNext;
- }
-
- rtl_freeMemory(pEntry);
- }
- i++;
- }
-
- rtl_freeMemory((*table)->Table);
- rtl_freeMemory((*table));
- (*table) = pNewTable;
-
- return sal_True;
-}
-
-sal_Bool rtl_hashtable_find(RTL_HASHTABLE * table, sal_Int32 key, sal_Int32 hashCode, rtl_Locale** pValue)
-{
- if (!table)
- return sal_False;
-
- if (table->Table[key])
- {
- RTL_HASHENTRY *pEntry = table->Table[key];
-
- while (pEntry && hashCode != pEntry->Entry->HashCode)
- pEntry = pEntry->Next;
-
- if (pEntry)
- *pValue = pEntry->Entry;
- else
- return sal_False;
- } else
- return sal_False;
-
- return sal_True;
-}
-
-/*************************************************************************
- * rtl_locale_init
- */
-void rtl_locale_init (void)
-{
- OSL_ASSERT(g_pLocaleTable == 0);
- rtl_hashtable_init(&g_pLocaleTable, 1);
-}
-
-/*************************************************************************
- * rtl_locale_fini
- */
-void rtl_locale_fini (void)
-{
- if (g_pLocaleTable != 0)
- {
- rtl_hashtable_destroy (g_pLocaleTable);
- g_pLocaleTable = 0;
- }
-}
-
-extern void ensureLocaleSingleton();
-
-/*************************************************************************
- * rtl_locale_register
- */
-rtl_Locale * SAL_CALL rtl_locale_register( const sal_Unicode * language, const sal_Unicode * country, const sal_Unicode * variant )
-{
- sal_Unicode c = 0;
- rtl_uString* sLanguage = NULL;
- rtl_uString* sCountry = NULL;
- rtl_uString* sVariant = NULL;
- rtl_Locale *newLocale = NULL;
- sal_Int32 hashCode = -1;
- sal_Int32 key = 0;
-
- if ( !country )
- country = &c;
- if ( !variant )
- variant = &c;
-
- ensureLocaleSingleton();
- if (!g_pLocaleTable)
- return NULL;
-
- hashCode = rtl_ustr_hashCode(language) ^ rtl_ustr_hashCode(country) ^ rtl_ustr_hashCode(variant);
- key = rtl_hashfunc(g_pLocaleTable, hashCode);
-
- if (rtl_hashtable_find(g_pLocaleTable, key, hashCode, &newLocale))
- return newLocale;
-
- rtl_uString_newFromStr(&sLanguage, language);
- rtl_uString_newFromStr(&sCountry, country);
- rtl_uString_newFromStr(&sVariant, variant);
-
- newLocale = (rtl_Locale*)rtl_allocateMemory( sizeof(rtl_Locale) );
-
- newLocale->Language = sLanguage;
- newLocale->Country = sCountry;
- newLocale->Variant = sVariant;
- newLocale->HashCode = hashCode;
-
- rtl_hashtable_add(&g_pLocaleTable, newLocale);
-
- return newLocale;
-}
-
-/*************************************************************************
- * rtl_locale_getDefault
- */
-rtl_Locale * SAL_CALL rtl_locale_getDefault()
-{
- return g_pDefaultLocale;
-}
-
-/*************************************************************************
- * rtl_locale_setDefault
- */
-void SAL_CALL rtl_locale_setDefault( const sal_Unicode * language, const sal_Unicode * country, const sal_Unicode * variant )
-{
- g_pDefaultLocale = rtl_locale_register(language, country, variant);
-}
-
-/*************************************************************************
- * rtl_locale_getLanguage
- */
-rtl_uString * SAL_CALL rtl_locale_getLanguage( rtl_Locale * This )
-{
- rtl_uString_acquire(This->Language);
- return This->Language;
-}
-
-/*************************************************************************
- * rtl_locale_getCountry
- */
-rtl_uString * SAL_CALL rtl_locale_getCountry( rtl_Locale * This )
-{
- rtl_uString_acquire(This->Country);
- return This->Country;
-}
-
-/*************************************************************************
- * rtl_locale_getVariant
- */
-rtl_uString * SAL_CALL rtl_locale_getVariant( rtl_Locale * This )
-{
- rtl_uString_acquire(This->Variant);
- return This->Variant;
-}
-
-/*************************************************************************
- * rtl_locale_hashCode
- */
-sal_Int32 SAL_CALL rtl_locale_hashCode( rtl_Locale * This )
-{
- return This->HashCode;
-}
-
-/*************************************************************************
- * rtl_locale_equals
- */
-sal_Int32 SAL_CALL rtl_locale_equals( rtl_Locale * This, rtl_Locale * obj )
-{
- return This == obj;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/logfile.cxx b/sal/rtl/source/logfile.cxx
deleted file mode 100644
index fa1955a88..000000000
--- a/sal/rtl/source/logfile.cxx
+++ /dev/null
@@ -1,251 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-#include <cstdarg>
-#include <cstdio>
-#include <stdio.h>
-#include <stdarg.h>
-
-#include <rtl/logfile.h>
-#include <osl/process.h>
-#include <osl/time.h>
-#include <osl/time.h>
-#include <osl/mutex.hxx>
-#include <rtl/bootstrap.h>
-#include <rtl/ustring.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <rtl/alloc.h>
-#include <rtl/instance.hxx>
-#include "osl/thread.h"
-
-#include <algorithm>
-
-#ifdef _MSC_VER
-#define vsnprintf _vsnprintf
-#endif
-
-using namespace osl;
-using namespace std;
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-namespace {
-
-static oslFileHandle g_aFile = 0;
-static sal_Bool g_bHasBeenCalled = sal_False;
-static const sal_Int32 g_BUFFERSIZE = 4096;
-static sal_Char *g_buffer = 0;
-
-class LoggerGuard
-{
-public:
- ~LoggerGuard();
-};
-
-LoggerGuard::~LoggerGuard()
-{
- if( g_buffer )
- {
- sal_Int64 nWritten, nConverted =
- sprintf( g_buffer, "closing log file at %06" SAL_PRIuUINT32, osl_getGlobalTimer() );
- if( nConverted > 0 )
- osl_writeFile( g_aFile, g_buffer, nConverted, (sal_uInt64 *)&nWritten );
- osl_closeFile( g_aFile );
- g_aFile = 0;
-
- rtl_freeMemory( g_buffer );
- g_buffer = 0;
- g_bHasBeenCalled = sal_False;
- }
-}
-
-// The destructor of this static LoggerGuard is "activated" by the assignment to
-// g_buffer in init():
-LoggerGuard loggerGuard;
-
-namespace
-{
- class theLogMutex : public rtl::Static<osl::Mutex, theLogMutex>{};
-}
-
-static Mutex & getLogMutex()
-{
- return theLogMutex::get();
-}
-
-OUString getFileUrl( const OUString &name )
-{
- OUString aRet;
- if ( osl_getFileURLFromSystemPath( name.pData, &aRet.pData )
- != osl_File_E_None )
- {
- OSL_ASSERT( false );
- }
-
- OUString aWorkingDirectory;
- osl_getProcessWorkingDir( &(aWorkingDirectory.pData) );
- osl_getAbsoluteFileURL( aWorkingDirectory.pData, aRet.pData, &(aRet.pData) );
-
- return aRet;
-}
-
-void init() {
- if( !g_bHasBeenCalled )
- {
- MutexGuard guard( getLogMutex() );
- if( ! g_bHasBeenCalled )
- {
- OUString name( RTL_CONSTASCII_USTRINGPARAM( "RTL_LOGFILE" ) );
- OUString value;
- if( rtl_bootstrap_get( name.pData, &value.pData, 0 ) )
- {
- // Obtain process id.
- oslProcessIdentifier aProcessId = 0;
- oslProcessInfo info;
- info.Size = sizeof (oslProcessInfo);
- if (osl_getProcessInfo (0, osl_Process_IDENTIFIER, &info) == osl_Process_E_None)
- aProcessId = info.Ident;
-
- // Construct name of log file and open the file.
- OUStringBuffer buf( 128 );
- buf.append( value );
-
- // if the filename ends with .nopid, the incoming filename is not modified
- if( value.getLength() < 6 /* ".nopid" */ ||
- rtl_ustr_ascii_compare_WithLength(
- value.getStr() + (value.getLength()-6) , 6 , ".nopid" ) )
- {
- buf.appendAscii( "_" );
- buf.append( (sal_Int32) aProcessId );
- buf.appendAscii( ".log" );
- }
-
- OUString o = getFileUrl( buf.makeStringAndClear() );
- oslFileError e = osl_openFile(
- o.pData, &g_aFile, osl_File_OpenFlag_Write|osl_File_OpenFlag_Create);
-
- if( osl_File_E_None == e )
- {
- TimeValue aCurrentTime;
- g_buffer = ( sal_Char * ) rtl_allocateMemory( g_BUFFERSIZE );
- sal_Int64 nConverted = 0;
- if (osl_getSystemTime (&aCurrentTime))
- {
- nConverted = (sal_Int64 ) sprintf (
- g_buffer,
- "opening log file %f seconds past January 1st 1970\n"
- "corresponding to %" SAL_PRIuUINT32 " ms after timer start\n",
- aCurrentTime.Seconds + 1e-9 * aCurrentTime.Nanosec,
- osl_getGlobalTimer());
-
- if( nConverted > 0 )
- {
- sal_Int64 nWritten;
- osl_writeFile( g_aFile, g_buffer, nConverted , (sal_uInt64 *)&nWritten );
- }
- }
-
- nConverted = sprintf (g_buffer, "Process id is %" SAL_PRIuUINT32 "\n", aProcessId);
- if( nConverted )
- {
- sal_Int64 nWritten;
- osl_writeFile( g_aFile, g_buffer, nConverted, (sal_uInt64 *)&nWritten );
- }
- }
- else
- {
- OSL_TRACE( "Couldn't open logfile %s(%d)" , o.getStr(), e );
- }
- }
- g_bHasBeenCalled = sal_True;
- }
- }
-}
-
-}
-
-extern "C" void SAL_CALL rtl_logfile_trace ( const char *pszFormat, ... )
-{
- init();
- if( g_buffer )
- {
- va_list args;
- va_start(args, pszFormat);
- {
- sal_Int64 nConverted, nWritten;
- MutexGuard guard( getLogMutex() );
- nConverted = vsnprintf( g_buffer , g_BUFFERSIZE, pszFormat, args );
- nConverted = (nConverted > g_BUFFERSIZE ? g_BUFFERSIZE : nConverted );
- if( nConverted > 0 )
- osl_writeFile( g_aFile, g_buffer, nConverted, (sal_uInt64*)&nWritten );
- }
- va_end(args);
- }
-}
-
-extern "C" void SAL_CALL rtl_logfile_longTrace(char const * format, ...) {
- init();
- if (g_buffer != 0) {
- sal_uInt32 time = osl_getGlobalTimer();
- oslThreadIdentifier threadId = osl_getThreadIdentifier(0);
- va_list args;
- va_start(args, format);
- {
- MutexGuard g(getLogMutex());
- int n1 = snprintf(
- g_buffer, g_BUFFERSIZE, "%06" SAL_PRIuUINT32 " %" SAL_PRIuUINT32 " ", time, threadId);
- if (n1 >= 0) {
- sal_uInt64 n2;
- osl_writeFile(
- g_aFile, g_buffer,
- static_cast< sal_uInt64 >(
- std::min(n1, static_cast< int >(g_BUFFERSIZE))),
- &n2);
- n1 = vsnprintf(g_buffer, g_BUFFERSIZE, format, args);
- if (n1 > 0) {
- osl_writeFile(
- g_aFile, g_buffer,
- static_cast< sal_uInt64 >(
- std::min(n1, static_cast< int >(g_BUFFERSIZE))),
- &n2);
- }
- }
- }
- va_end(args);
- }
-}
-
-extern "C" sal_Bool SAL_CALL rtl_logfile_hasLogFile( void ) {
- init();
- return g_buffer != 0;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/macro.hxx b/sal/rtl/source/macro.hxx
deleted file mode 100644
index b07c7705c..000000000
--- a/sal/rtl/source/macro.hxx
+++ /dev/null
@@ -1,116 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_MACRO_HXX
-#define _RTL_MACRO_HXX
-
-#include <rtl/bootstrap.h>
-#include <rtl/ustring.hxx>
-#include <osl/endian.h>
-
-#if defined WIN32
-#define THIS_OS "Windows"
-#elif defined SOLARIS
-#define THIS_OS "Solaris"
-#elif defined LINUX
-#ifdef __FreeBSD_kernel__
-#define THIS_OS "kFreeBSD"
-#else
-#define THIS_OS "Linux"
-#endif
-#elif defined ANDROID
-#define THIS_OS "Android"
-#elif defined MACOSX
-#define THIS_OS "MacOSX"
-#elif defined IOS
-#define THIS_OS "iOS"
-#elif defined NETBSD
-#define THIS_OS "NetBSD"
-#elif defined FREEBSD
-#define THIS_OS "FreeBSD"
-#elif defined AIX
-#define THIS_OS "AIX"
-#elif defined OPENBSD
-#define THIS_OS "OpenBSD"
-#elif defined DRAGONFLY
-#define THIS_OS "DragonFly"
-#endif
-
-#if ! defined THIS_OS
-#error "unknown OS -- insert your OS identifier above"
-this is inserted for the case that the preprocessor ignores error
-#endif
-
-#if defined X86_64
-# define THIS_ARCH "X86_64"
-#elif defined INTEL
-# define THIS_ARCH "x86"
-#elif defined POWERPC64
-# define THIS_ARCH "PowerPC_64"
-#elif defined POWERPC
-# define THIS_ARCH "PowerPC"
-#elif defined S390X
-# define THIS_ARCH "S390x"
-#elif defined S390
-# define THIS_ARCH "S390"
-#elif defined SPARC
-#if defined IS_LP64
-# define THIS_ARCH "SPARC64"
-#else
-# define THIS_ARCH "SPARC"
-#endif
-#elif defined MIPS
-# ifdef OSL_BIGENDIAN
-# define THIS_ARCH "MIPS_EB"
-# else
-# define THIS_ARCH "MIPS_EL"
-# endif
-#elif defined ARM
-# ifdef __ARM_EABI__
-# define THIS_ARCH "ARM_EABI"
-# else
-# define THIS_ARCH "ARM_OABI"
-# endif
-#elif defined IA64
-# define THIS_ARCH "IA64"
-#elif defined M68K
-# define THIS_ARCH "M68K"
-#elif defined HPPA
-# define THIS_ARCH "HPPA"
-#elif defined AXP
-# define THIS_ARCH "ALPHA"
-#endif
-
-#if ! defined THIS_ARCH
-#error "unknown ARCH -- insert your ARCH identifier above"
-this is inserted for the case that the preprocessor ignores error
-#endif
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/makefile.mk b/sal/rtl/source/makefile.mk
deleted file mode 100644
index 2f1f610a5..000000000
--- a/sal/rtl/source/makefile.mk
+++ /dev/null
@@ -1,165 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=sal
-TARGET=cpprtl
-ENABLE_EXCEPTIONS=TRUE
-USE_LDUMP2=TRUE
-
-PROJECTPCH4DLL=TRUE
-PROJECTPCH=cont_pch
-PROJECTPCHSOURCE=cont_pch
-
-TARGETTYPE=CUI
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-.IF "$(VALGRIND_CFLAGS)" != ""
-CFLAGS += $(VALGRIND_CFLAGS)
-CDEFS += -DHAVE_MEMCHECK_H=1
-.ENDIF # VALGRIND_CFLAGS
-
-.IF "$(ALLOC)" == "SYS_ALLOC" || "$(ALLOC)" == "TCMALLOC" || "$(ALLOC)" == "JEMALLOC"
-CDEFS+= -DFORCE_SYSALLOC
-.ENDIF
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-# --- Files --------------------------------------------------------
-
-.IF "$(header)" == ""
-
-.IF "$(OS)" != "AIX"
-ALWAYSDBGFILES=$(SLO)$/debugprint.obj
-.ENDIF
-
-.IF "$(ALWAYSDBGFILES)" != ""
-ALWAYSDBGTARGET=do_it_alwaysdebug
-.ENDIF
-
-SLOFILES= \
- $(SLO)$/memory.obj \
- $(SLO)$/cipher.obj \
- $(SLO)$/crc.obj \
- $(SLO)$/digest.obj \
- $(SLO)$/random.obj \
- $(SLO)$/locale.obj \
- $(SLO)$/strimp.obj \
- $(SLO)$/hash.obj \
- $(SLO)$/string.obj \
- $(SLO)$/ustring.obj \
- $(SLO)$/strbuf.obj \
- $(SLO)$/ustrbuf.obj \
- $(SLO)$/uuid.obj \
- $(SLO)$/rtl_process.obj \
- $(SLO)$/byteseq.obj \
- $(SLO)$/uri.obj \
- $(SLO)$/bootstrap.obj \
- $(SLO)$/cmdargs.obj \
- $(SLO)$/unload.obj \
- $(SLO)$/logfile.obj \
- $(SLO)$/tres.obj \
- $(SLO)$/debugprint.obj \
- $(SLO)$/math.obj \
- $(SLO)$/alloc_global.obj\
- $(SLO)$/alloc_cache.obj \
- $(SLO)$/alloc_arena.obj \
- $(SLO)$/alloc_fini.obj
-
-OBJFILES= \
- $(OBJ)$/memory.obj \
- $(OBJ)$/cipher.obj \
- $(OBJ)$/crc.obj \
- $(OBJ)$/digest.obj \
- $(OBJ)$/random.obj \
- $(OBJ)$/locale.obj \
- $(OBJ)$/strimp.obj \
- $(OBJ)$/hash.obj \
- $(OBJ)$/string.obj \
- $(OBJ)$/ustring.obj \
- $(OBJ)$/strbuf.obj \
- $(OBJ)$/ustrbuf.obj \
- $(OBJ)$/uuid.obj \
- $(OBJ)$/rtl_process.obj \
- $(OBJ)$/byteseq.obj \
- $(OBJ)$/uri.obj \
- $(OBJ)$/bootstrap.obj \
- $(OBJ)$/cmdargs.obj \
- $(OBJ)$/unload.obj \
- $(OBJ)$/logfile.obj \
- $(OBJ)$/tres.obj \
- $(OBJ)$/math.obj \
- $(OBJ)$/alloc_global.obj\
- $(OBJ)$/alloc_cache.obj \
- $(OBJ)$/alloc_arena.obj \
- $(OBJ)$/alloc_fini.obj
-
-
-.ENDIF
-
-# --- Makefile snippet --------------------------------------------
-
-# used by e.g. update info file
-BOOTSTRAPMK = $(OUT)$/inc$/rtlbootstrap.mk
-
-# --- Targets ------------------------------------------------------
-
-.IF "$(ALWAYSDBG_FLAG)"==""
-TARGETDEPS+=$(ALWAYSDBGTARGET)
-.ENDIF
-
-.INCLUDE : target.mk
-
-.IF "$(ALWAYSDBGTARGET)" != ""
-.IF "$(ALWAYSDBG_FLAG)" == ""
-# --------------------------------------------------
-# - ALWAYSDBG - files always compiled with debugging
-# --------------------------------------------------
-$(ALWAYSDBGTARGET):
- @echo --- ALWAYSDBGFILES ---
- @dmake $(MFLAGS) $(MAKEFILE) debug=true $(ALWAYSDBGFILES) ALWAYSDBG_FLAG=TRUE $(CALLMACROS)
- @echo --- ALWAYSDBGFILES OVER ---
-
-$(ALWAYSDBGFILES):
- @echo --- ALWAYSDBG ---
- @dmake $(MFLAGS) $(MAKEFILE) debug=true ALWAYSDBG_FLAG=TRUE $(CALLMACROS) $@
- @echo --- ALWAYSDBG OVER ---
-
-.ENDIF
-.ENDIF
-
-
-ALLTAR : $(BOOTSTRAPMK)
-
-$(BOOTSTRAPMK) :
- (echo '#include "macro.hxx"'; echo RTL_OS:=THIS_OS; echo RTL_ARCH:=THIS_ARCH) >$(BOOTSTRAPMK).c
- $(CC) -E $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(CFLAGSAPPEND) $(BOOTSTRAPMK).c | $(GREP) '^RTL_' | $(SED) -e 's/"//g' >$@
diff --git a/sal/rtl/source/math.cxx b/sal/rtl/source/math.cxx
deleted file mode 100644
index 1aee95642..000000000
--- a/sal/rtl/source/math.cxx
+++ /dev/null
@@ -1,1268 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include "rtl/math.h"
-
-#include "osl/diagnose.h"
-#include "rtl/alloc.h"
-#include "rtl/math.hxx"
-#include "rtl/strbuf.h"
-#include "rtl/string.h"
-#include "rtl/ustrbuf.h"
-#include "rtl/ustring.h"
-#include "sal/mathconf.h"
-#include "sal/types.h"
-
-#include <algorithm>
-#include <float.h>
-#include <limits.h>
-#include <math.h>
-#include <stdlib.h>
-
-
-static int const n10Count = 16;
-static double const n10s[2][n10Count] = {
- { 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8,
- 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16 },
- { 1e-1, 1e-2, 1e-3, 1e-4, 1e-5, 1e-6, 1e-7, 1e-8,
- 1e-9, 1e-10, 1e-11, 1e-12, 1e-13, 1e-14, 1e-15, 1e-16 }
-};
-
-// return pow(10.0,nExp) optimized for exponents in the interval [-16,16]
-static double getN10Exp( int nExp )
-{
- if ( nExp < 0 )
- {
- if ( -nExp <= n10Count )
- return n10s[1][-nExp-1];
- else
- return pow( 10.0, static_cast<double>( nExp ) );
- }
- else if ( nExp > 0 )
- {
- if ( nExp <= n10Count )
- return n10s[0][nExp-1];
- else
- return pow( 10.0, static_cast<double>( nExp ) );
- }
- else // ( nExp == 0 )
- return 1.0;
-}
-
-/** Approximation algorithm for erf for 0 < x < 0.65. */
-void lcl_Erf0065( double x, double& fVal )
-{
- static const double pn[] = {
- 1.12837916709551256,
- 1.35894887627277916E-1,
- 4.03259488531795274E-2,
- 1.20339380863079457E-3,
- 6.49254556481904354E-5
- };
- static const double qn[] = {
- 1.00000000000000000,
- 4.53767041780002545E-1,
- 8.69936222615385890E-2,
- 8.49717371168693357E-3,
- 3.64915280629351082E-4
- };
- double fPSum = 0.0;
- double fQSum = 0.0;
- double fXPow = 1.0;
- for ( unsigned int i = 0; i <= 4; ++i )
- {
- fPSum += pn[i]*fXPow;
- fQSum += qn[i]*fXPow;
- fXPow *= x*x;
- }
- fVal = x * fPSum / fQSum;
-}
-
-/** Approximation algorithm for erfc for 0.65 < x < 6.0. */
-void lcl_Erfc0600( double x, double& fVal )
-{
- double fPSum = 0.0;
- double fQSum = 0.0;
- double fXPow = 1.0;
- const double *pn;
- const double *qn;
-
- if ( x < 2.2 )
- {
- static const double pn22[] = {
- 9.99999992049799098E-1,
- 1.33154163936765307,
- 8.78115804155881782E-1,
- 3.31899559578213215E-1,
- 7.14193832506776067E-2,
- 7.06940843763253131E-3
- };
- static const double qn22[] = {
- 1.00000000000000000,
- 2.45992070144245533,
- 2.65383972869775752,
- 1.61876655543871376,
- 5.94651311286481502E-1,
- 1.26579413030177940E-1,
- 1.25304936549413393E-2
- };
- pn = pn22;
- qn = qn22;
- }
- else /* if ( x < 6.0 ) this is true, but the compiler does not know */
- {
- static const double pn60[] = {
- 9.99921140009714409E-1,
- 1.62356584489366647,
- 1.26739901455873222,
- 5.81528574177741135E-1,
- 1.57289620742838702E-1,
- 2.25716982919217555E-2
- };
- static const double qn60[] = {
- 1.00000000000000000,
- 2.75143870676376208,
- 3.37367334657284535,
- 2.38574194785344389,
- 1.05074004614827206,
- 2.78788439273628983E-1,
- 4.00072964526861362E-2
- };
- pn = pn60;
- qn = qn60;
- }
-
- for ( unsigned int i = 0; i < 6; ++i )
- {
- fPSum += pn[i]*fXPow;
- fQSum += qn[i]*fXPow;
- fXPow *= x;
- }
- fQSum += qn[6]*fXPow;
- fVal = exp( -1.0*x*x )* fPSum / fQSum;
-}
-
-/** Approximation algorithm for erfc for 6.0 < x < 26.54 (but used for all
- x > 6.0). */
-void lcl_Erfc2654( double x, double& fVal )
-{
- static const double pn[] = {
- 5.64189583547756078E-1,
- 8.80253746105525775,
- 3.84683103716117320E1,
- 4.77209965874436377E1,
- 8.08040729052301677
- };
- static const double qn[] = {
- 1.00000000000000000,
- 1.61020914205869003E1,
- 7.54843505665954743E1,
- 1.12123870801026015E2,
- 3.73997570145040850E1
- };
-
- double fPSum = 0.0;
- double fQSum = 0.0;
- double fXPow = 1.0;
-
- for ( unsigned int i = 0; i <= 4; ++i )
- {
- fPSum += pn[i]*fXPow;
- fQSum += qn[i]*fXPow;
- fXPow /= x*x;
- }
- fVal = exp(-1.0*x*x)*fPSum / (x*fQSum);
-}
-
-namespace {
-
-double const nKorrVal[] = {
- 0, 9e-1, 9e-2, 9e-3, 9e-4, 9e-5, 9e-6, 9e-7, 9e-8,
- 9e-9, 9e-10, 9e-11, 9e-12, 9e-13, 9e-14, 9e-15
-};
-
-struct StringTraits
-{
- typedef sal_Char Char;
-
- typedef rtl_String String;
-
- static inline void createString(rtl_String ** pString,
- sal_Char const * pChars, sal_Int32 nLen)
- {
- rtl_string_newFromStr_WithLength(pString, pChars, nLen);
- }
-
- static inline void createBuffer(rtl_String ** pBuffer,
- sal_Int32 * pCapacity)
- {
- rtl_string_new_WithLength(pBuffer, *pCapacity);
- }
-
- static inline void appendChar(rtl_String ** pBuffer, sal_Int32 * pCapacity,
- sal_Int32 * pOffset, sal_Char cChar)
- {
- rtl_stringbuffer_insert(pBuffer, pCapacity, *pOffset, &cChar, 1);
- ++*pOffset;
- }
-
- static inline void appendChars(rtl_String ** pBuffer, sal_Int32 * pCapacity,
- sal_Int32 * pOffset, sal_Char const * pChars,
- sal_Int32 nLen)
- {
- rtl_stringbuffer_insert(pBuffer, pCapacity, *pOffset, pChars, nLen);
- *pOffset += nLen;
- }
-
- static inline void appendAscii(rtl_String ** pBuffer, sal_Int32 * pCapacity,
- sal_Int32 * pOffset, sal_Char const * pStr,
- sal_Int32 nLen)
- {
- rtl_stringbuffer_insert(pBuffer, pCapacity, *pOffset, pStr, nLen);
- *pOffset += nLen;
- }
-};
-
-struct UStringTraits
-{
- typedef sal_Unicode Char;
-
- typedef rtl_uString String;
-
- static inline void createString(rtl_uString ** pString,
- sal_Unicode const * pChars, sal_Int32 nLen)
- {
- rtl_uString_newFromStr_WithLength(pString, pChars, nLen);
- }
-
- static inline void createBuffer(rtl_uString ** pBuffer,
- sal_Int32 * pCapacity)
- {
- rtl_uString_new_WithLength(pBuffer, *pCapacity);
- }
-
- static inline void appendChar(rtl_uString ** pBuffer, sal_Int32 * pCapacity,
- sal_Int32 * pOffset, sal_Unicode cChar)
- {
- rtl_uStringbuffer_insert(pBuffer, pCapacity, *pOffset, &cChar, 1);
- ++*pOffset;
- }
-
- static inline void appendChars(rtl_uString ** pBuffer,
- sal_Int32 * pCapacity, sal_Int32 * pOffset,
- sal_Unicode const * pChars, sal_Int32 nLen)
- {
- rtl_uStringbuffer_insert(pBuffer, pCapacity, *pOffset, pChars, nLen);
- *pOffset += nLen;
- }
-
- static inline void appendAscii(rtl_uString ** pBuffer,
- sal_Int32 * pCapacity, sal_Int32 * pOffset,
- sal_Char const * pStr, sal_Int32 nLen)
- {
- rtl_uStringbuffer_insert_ascii(pBuffer, pCapacity, *pOffset, pStr,
- nLen);
- *pOffset += nLen;
- }
-};
-
-
-// Solaris C++ 5.2 compiler has problems when "StringT ** pResult" is
-// "typename T::String ** pResult" instead:
-template< typename T, typename StringT >
-inline void doubleToString(StringT ** pResult,
- sal_Int32 * pResultCapacity, sal_Int32 nResultOffset,
- double fValue, rtl_math_StringFormat eFormat,
- sal_Int32 nDecPlaces, typename T::Char cDecSeparator,
- sal_Int32 const * pGroups,
- typename T::Char cGroupSeparator,
- bool bEraseTrailingDecZeros)
-{
- static double const nRoundVal[] = {
- 5.0e+0, 0.5e+0, 0.5e-1, 0.5e-2, 0.5e-3, 0.5e-4, 0.5e-5, 0.5e-6,
- 0.5e-7, 0.5e-8, 0.5e-9, 0.5e-10,0.5e-11,0.5e-12,0.5e-13,0.5e-14
- };
-
- // sign adjustment, instead of testing for fValue<0.0 this will also fetch
- // -0.0
- bool bSign = rtl::math::isSignBitSet( fValue );
- if( bSign )
- fValue = -fValue;
-
- if ( rtl::math::isNan( fValue ) )
- {
- // #i112652# XMLSchema-2
- sal_Int32 nCapacity = RTL_CONSTASCII_LENGTH("NaN");
- if (pResultCapacity == 0)
- {
- pResultCapacity = &nCapacity;
- T::createBuffer(pResult, pResultCapacity);
- nResultOffset = 0;
- }
- T::appendAscii(pResult, pResultCapacity, &nResultOffset,
- RTL_CONSTASCII_STRINGPARAM("NaN"));
-
- return;
- }
-
- bool bHuge = fValue == HUGE_VAL; // g++ 3.0.1 requires it this way...
- if ( bHuge || rtl::math::isInf( fValue ) )
- {
- // #i112652# XMLSchema-2
- sal_Int32 nCapacity = RTL_CONSTASCII_LENGTH("-INF");
- if (pResultCapacity == 0)
- {
- pResultCapacity = &nCapacity;
- T::createBuffer(pResult, pResultCapacity);
- nResultOffset = 0;
- }
- if ( bSign )
- T::appendAscii(pResult, pResultCapacity, &nResultOffset,
- RTL_CONSTASCII_STRINGPARAM("-"));
- T::appendAscii(pResult, pResultCapacity, &nResultOffset,
- RTL_CONSTASCII_STRINGPARAM("INF"));
-
- return;
- }
-
- // find the exponent
- int nExp = 0;
- if ( fValue > 0.0 )
- {
- nExp = static_cast< int >( floor( log10( fValue ) ) );
- fValue /= getN10Exp( nExp );
- }
-
- switch ( eFormat )
- {
- case rtl_math_StringFormat_Automatic :
- { // E or F depending on exponent magnitude
- int nPrec;
- if ( nExp <= -15 || nExp >= 15 ) // #58531# was <-16, >16
- {
- nPrec = 14;
- eFormat = rtl_math_StringFormat_E;
- }
- else
- {
- if ( nExp < 14 )
- {
- nPrec = 15 - nExp - 1;
- eFormat = rtl_math_StringFormat_F;
- }
- else
- {
- nPrec = 15;
- eFormat = rtl_math_StringFormat_F;
- }
- }
- if ( nDecPlaces == rtl_math_DecimalPlaces_Max )
- nDecPlaces = nPrec;
- }
- break;
- case rtl_math_StringFormat_G :
- { // G-Point, similar to sprintf %G
- if ( nDecPlaces == rtl_math_DecimalPlaces_DefaultSignificance )
- nDecPlaces = 6;
- if ( nExp < -4 || nExp >= nDecPlaces )
- {
- nDecPlaces = std::max< sal_Int32 >( 1, nDecPlaces - 1 );
- eFormat = rtl_math_StringFormat_E;
- }
- else
- {
- nDecPlaces = std::max< sal_Int32 >( 0, nDecPlaces - nExp - 1 );
- eFormat = rtl_math_StringFormat_F;
- }
- }
- break;
- default:
- break;
- }
-
- sal_Int32 nDigits = nDecPlaces + 1;
-
- if( eFormat == rtl_math_StringFormat_F )
- nDigits += nExp;
-
- // Round the number
- if( nDigits >= 0 )
- {
- if( ( fValue += nRoundVal[ nDigits > 15 ? 15 : nDigits ] ) >= 10 )
- {
- fValue = 1.0;
- nExp++;
- if( eFormat == rtl_math_StringFormat_F )
- nDigits++;
- }
- }
-
- static sal_Int32 const nBufMax = 256;
- typename T::Char aBuf[nBufMax];
- typename T::Char * pBuf;
- sal_Int32 nBuf = static_cast< sal_Int32 >
- ( nDigits <= 0 ? std::max< sal_Int32 >( nDecPlaces, abs(nExp) )
- : nDigits + nDecPlaces ) + 10 + (pGroups ? abs(nDigits) * 2 : 0);
- if ( nBuf > nBufMax )
- {
- pBuf = reinterpret_cast< typename T::Char * >(
- rtl_allocateMemory(nBuf * sizeof (typename T::Char)));
- OSL_ENSURE(pBuf != 0, "Out of memory");
- }
- else
- pBuf = aBuf;
- typename T::Char * p = pBuf;
- if ( bSign )
- *p++ = static_cast< typename T::Char >('-');
-
- bool bHasDec = false;
-
- int nDecPos;
- // Check for F format and number < 1
- if( eFormat == rtl_math_StringFormat_F )
- {
- if( nExp < 0 )
- {
- *p++ = static_cast< typename T::Char >('0');
- if ( nDecPlaces > 0 )
- {
- *p++ = cDecSeparator;
- bHasDec = true;
- }
- sal_Int32 i = ( nDigits <= 0 ? nDecPlaces : -nExp - 1 );
- while( (i--) > 0 )
- *p++ = static_cast< typename T::Char >('0');
- nDecPos = 0;
- }
- else
- nDecPos = nExp + 1;
- }
- else
- nDecPos = 1;
-
- int nGrouping = 0, nGroupSelector = 0, nGroupExceed = 0;
- if ( nDecPos > 1 && pGroups && pGroups[0] && cGroupSeparator )
- {
- while ( nGrouping + pGroups[nGroupSelector] < nDecPos )
- {
- nGrouping += pGroups[ nGroupSelector ];
- if ( pGroups[nGroupSelector+1] )
- {
- if ( nGrouping + pGroups[nGroupSelector+1] >= nDecPos )
- break; // while
- ++nGroupSelector;
- }
- else if ( !nGroupExceed )
- nGroupExceed = nGrouping;
- }
- }
-
- // print the number
- if( nDigits > 0 )
- {
- for ( int i = 0; ; i++ )
- {
- if( i < 15 )
- {
- int nDigit;
- if (nDigits-1 == 0 && i > 0 && i < 14)
- nDigit = static_cast< int >( floor( fValue
- + nKorrVal[15-i] ) );
- else
- nDigit = static_cast< int >( fValue + 1E-15 );
- if (nDigit >= 10)
- { // after-treatment of up-rounding to the next decade
- sal_Int32 sLen = static_cast< long >(p-pBuf)-1;
- if (sLen == -1)
- {
- p = pBuf;
- if ( eFormat == rtl_math_StringFormat_F )
- {
- *p++ = static_cast< typename T::Char >('1');
- *p++ = static_cast< typename T::Char >('0');
- }
- else
- {
- *p++ = static_cast< typename T::Char >('1');
- *p++ = cDecSeparator;
- *p++ = static_cast< typename T::Char >('0');
- nExp++;
- bHasDec = true;
- }
- }
- else
- {
- for (sal_Int32 j = sLen; j >= 0; j--)
- {
- typename T::Char cS = pBuf[j];
- if (cS != cDecSeparator)
- {
- if ( cS != static_cast< typename T::Char >('9'))
- {
- pBuf[j] = ++cS;
- j = -1; // break loop
- }
- else
- {
- pBuf[j]
- = static_cast< typename T::Char >('0');
- if (j == 0)
- {
- if ( eFormat == rtl_math_StringFormat_F)
- { // insert '1'
- typename T::Char * px = p++;
- while ( pBuf < px )
- {
- *px = *(px-1);
- px--;
- }
- pBuf[0] = static_cast<
- typename T::Char >('1');
- }
- else
- {
- pBuf[j] = static_cast<
- typename T::Char >('1');
- nExp++;
- }
- }
- }
- }
- }
- *p++ = static_cast< typename T::Char >('0');
- }
- fValue = 0.0;
- }
- else
- {
- *p++ = static_cast< typename T::Char >(
- nDigit + static_cast< typename T::Char >('0') );
- fValue = ( fValue - nDigit ) * 10.0;
- }
- }
- else
- *p++ = static_cast< typename T::Char >('0');
- if( !--nDigits )
- break; // for
- if( nDecPos )
- {
- if( !--nDecPos )
- {
- *p++ = cDecSeparator;
- bHasDec = true;
- }
- else if ( nDecPos == nGrouping )
- {
- *p++ = cGroupSeparator;
- nGrouping -= pGroups[ nGroupSelector ];
- if ( nGroupSelector && nGrouping < nGroupExceed )
- --nGroupSelector;
- }
- }
- }
- }
-
- if ( !bHasDec && eFormat == rtl_math_StringFormat_F )
- { // nDecPlaces < 0 did round the value
- while ( --nDecPos > 0 )
- { // fill before decimal point
- if ( nDecPos == nGrouping )
- {
- *p++ = cGroupSeparator;
- nGrouping -= pGroups[ nGroupSelector ];
- if ( nGroupSelector && nGrouping < nGroupExceed )
- --nGroupSelector;
- }
- *p++ = static_cast< typename T::Char >('0');
- }
- }
-
- if ( bEraseTrailingDecZeros && bHasDec && p > pBuf )
- {
- while ( *(p-1) == static_cast< typename T::Char >('0') )
- p--;
- if ( *(p-1) == cDecSeparator )
- p--;
- }
-
- // Print the exponent ('E', followed by '+' or '-', followed by exactly
- // three digits). The code in rtl_[u]str_valueOf{Float|Double} relies on
- // this format.
- if( eFormat == rtl_math_StringFormat_E )
- {
- if ( p == pBuf )
- *p++ = static_cast< typename T::Char >('1');
- // maybe no nDigits if nDecPlaces < 0
- *p++ = static_cast< typename T::Char >('E');
- if( nExp < 0 )
- {
- nExp = -nExp;
- *p++ = static_cast< typename T::Char >('-');
- }
- else
- *p++ = static_cast< typename T::Char >('+');
-// if (nExp >= 100 )
- *p++ = static_cast< typename T::Char >(
- nExp / 100 + static_cast< typename T::Char >('0') );
- nExp %= 100;
- *p++ = static_cast< typename T::Char >(
- nExp / 10 + static_cast< typename T::Char >('0') );
- *p++ = static_cast< typename T::Char >(
- nExp % 10 + static_cast< typename T::Char >('0') );
- }
-
- if (pResultCapacity == 0)
- T::createString(pResult, pBuf, p - pBuf);
- else
- T::appendChars(pResult, pResultCapacity, &nResultOffset, pBuf,
- p - pBuf);
-
- if ( pBuf != &aBuf[0] )
- rtl_freeMemory(pBuf);
-}
-
-}
-
-void SAL_CALL rtl_math_doubleToString(rtl_String ** pResult,
- sal_Int32 * pResultCapacity,
- sal_Int32 nResultOffset, double fValue,
- rtl_math_StringFormat eFormat,
- sal_Int32 nDecPlaces,
- sal_Char cDecSeparator,
- sal_Int32 const * pGroups,
- sal_Char cGroupSeparator,
- sal_Bool bEraseTrailingDecZeros)
- SAL_THROW_EXTERN_C()
-{
- doubleToString< StringTraits, StringTraits::String >(
- pResult, pResultCapacity, nResultOffset, fValue, eFormat, nDecPlaces,
- cDecSeparator, pGroups, cGroupSeparator, bEraseTrailingDecZeros);
-}
-
-void SAL_CALL rtl_math_doubleToUString(rtl_uString ** pResult,
- sal_Int32 * pResultCapacity,
- sal_Int32 nResultOffset, double fValue,
- rtl_math_StringFormat eFormat,
- sal_Int32 nDecPlaces,
- sal_Unicode cDecSeparator,
- sal_Int32 const * pGroups,
- sal_Unicode cGroupSeparator,
- sal_Bool bEraseTrailingDecZeros)
- SAL_THROW_EXTERN_C()
-{
- doubleToString< UStringTraits, UStringTraits::String >(
- pResult, pResultCapacity, nResultOffset, fValue, eFormat, nDecPlaces,
- cDecSeparator, pGroups, cGroupSeparator, bEraseTrailingDecZeros);
-}
-
-
-namespace {
-
-// if nExp * 10 + nAdd would result in overflow
-inline bool long10Overflow( long& nExp, int nAdd )
-{
- if ( nExp > (LONG_MAX/10)
- || (nExp == (LONG_MAX/10) && nAdd > (LONG_MAX%10)) )
- {
- nExp = LONG_MAX;
- return true;
- }
- return false;
-}
-
-// We are only concerned about ASCII arabic numerical digits here
-template< typename CharT >
-inline bool isDigit( CharT c )
-{
- return 0x30 <= c && c <= 0x39;
-}
-
-template< typename CharT >
-inline double stringToDouble(CharT const * pBegin, CharT const * pEnd,
- CharT cDecSeparator, CharT cGroupSeparator,
- rtl_math_ConversionStatus * pStatus,
- CharT const ** pParsedEnd)
-{
- double fVal = 0.0;
- rtl_math_ConversionStatus eStatus = rtl_math_ConversionStatus_Ok;
-
- CharT const * p0 = pBegin;
- while (p0 != pEnd && (*p0 == CharT(' ') || *p0 == CharT('\t')))
- ++p0;
- bool bSign;
- if (p0 != pEnd && *p0 == CharT('-'))
- {
- bSign = true;
- ++p0;
- }
- else
- {
- bSign = false;
- if (p0 != pEnd && *p0 == CharT('+'))
- ++p0;
- }
- CharT const * p = p0;
- bool bDone = false;
-
- // #i112652# XMLSchema-2
- if (3 >= (pEnd - p))
- {
- if ((CharT('N') == p[0]) && (CharT('a') == p[1])
- && (CharT('N') == p[2]))
- {
- p += 3;
- rtl::math::setNan( &fVal );
- bDone = true;
- }
- else if ((CharT('I') == p[0]) && (CharT('N') == p[1])
- && (CharT('F') == p[2]))
- {
- p += 3;
- fVal = HUGE_VAL;
- eStatus = rtl_math_ConversionStatus_OutOfRange;
- bDone = true;
- }
- }
-
- if (!bDone) // do not recognize e.g. NaN1.23
- {
- // leading zeros and group separators may be safely ignored
- while (p != pEnd && (*p == CharT('0') || *p == cGroupSeparator))
- ++p;
-
- long nValExp = 0; // carry along exponent of mantissa
-
- // integer part of mantissa
- for (; p != pEnd; ++p)
- {
- CharT c = *p;
- if (isDigit(c))
- {
- fVal = fVal * 10.0 + static_cast< double >( c - CharT('0') );
- ++nValExp;
- }
- else if (c != cGroupSeparator)
- break;
- }
-
- // fraction part of mantissa
- if (p != pEnd && *p == cDecSeparator)
- {
- ++p;
- double fFrac = 0.0;
- long nFracExp = 0;
- while (p != pEnd && *p == CharT('0'))
- {
- --nFracExp;
- ++p;
- }
- if ( nValExp == 0 )
- nValExp = nFracExp - 1; // no integer part => fraction exponent
- // one decimal digit needs ld(10) ~= 3.32 bits
- static const int nSigs = (DBL_MANT_DIG / 3) + 1;
- int nDigs = 0;
- for (; p != pEnd; ++p)
- {
- CharT c = *p;
- if (!isDigit(c))
- break;
- if ( nDigs < nSigs )
- { // further digits (more than nSigs) don't have any
- // significance
- fFrac = fFrac * 10.0 + static_cast<double>(c - CharT('0'));
- --nFracExp;
- ++nDigs;
- }
- }
- if ( fFrac != 0.0 )
- fVal += rtl::math::pow10Exp( fFrac, nFracExp );
- else if ( nValExp < 0 )
- nValExp = 0; // no digit other than 0 after decimal point
- }
-
- if ( nValExp > 0 )
- --nValExp; // started with offset +1 at the first mantissa digit
-
- // Exponent
- if (p != p0 && p != pEnd && (*p == CharT('E') || *p == CharT('e')))
- {
- ++p;
- bool bExpSign;
- if (p != pEnd && *p == CharT('-'))
- {
- bExpSign = true;
- ++p;
- }
- else
- {
- bExpSign = false;
- if (p != pEnd && *p == CharT('+'))
- ++p;
- }
- if ( fVal == 0.0 )
- { // no matter what follows, zero stays zero, but carry on the
- // offset
- while (p != pEnd && isDigit(*p))
- ++p;
- }
- else
- {
- bool bOverFlow = false;
- long nExp = 0;
- for (; p != pEnd; ++p)
- {
- CharT c = *p;
- if (!isDigit(c))
- break;
- int i = c - CharT('0');
- if ( long10Overflow( nExp, i ) )
- bOverFlow = true;
- else
- nExp = nExp * 10 + i;
- }
- if ( nExp )
- {
- if ( bExpSign )
- nExp = -nExp;
- long nAllExp = ( bOverFlow ? 0 : nExp + nValExp );
- if ( nAllExp > DBL_MAX_10_EXP || (bOverFlow && !bExpSign) )
- { // overflow
- fVal = HUGE_VAL;
- eStatus = rtl_math_ConversionStatus_OutOfRange;
- }
- else if ((nAllExp < DBL_MIN_10_EXP) ||
- (bOverFlow && bExpSign) )
- { // underflow
- fVal = 0.0;
- eStatus = rtl_math_ConversionStatus_OutOfRange;
- }
- else if ( nExp > DBL_MAX_10_EXP || nExp < DBL_MIN_10_EXP )
- { // compensate exponents
- fVal = rtl::math::pow10Exp( fVal, -nValExp );
- fVal = rtl::math::pow10Exp( fVal, nAllExp );
- }
- else
- fVal = rtl::math::pow10Exp( fVal, nExp ); // normal
- }
- }
- }
- else if (p - p0 == 2 && p != pEnd && p[0] == CharT('#')
- && p[-1] == cDecSeparator && p[-2] == CharT('1'))
- {
- if (pEnd - p >= 4 && p[1] == CharT('I') && p[2] == CharT('N')
- && p[3] == CharT('F'))
- {
- // "1.#INF", "+1.#INF", "-1.#INF"
- p += 4;
- fVal = HUGE_VAL;
- eStatus = rtl_math_ConversionStatus_OutOfRange;
- // Eat any further digits:
- while (p != pEnd && isDigit(*p))
- ++p;
- }
- else if (pEnd - p >= 4 && p[1] == CharT('N') && p[2] == CharT('A')
- && p[3] == CharT('N'))
- {
- // "1.#NAN", "+1.#NAN", "-1.#NAN"
- p += 4;
- rtl::math::setNan( &fVal );
- if (bSign)
- {
- union {
- double sd;
- sal_math_Double md;
- } m;
- m.sd = fVal;
- m.md.w32_parts.msw |= 0x80000000; // create negative NaN
- fVal = m.sd;
- bSign = false; // don't negate again
- }
- // Eat any further digits:
- while (p != pEnd && isDigit(*p))
- ++p;
- }
- }
- }
-
- // overflow also if more than DBL_MAX_10_EXP digits without decimal
- // separator, or 0. and more than DBL_MIN_10_EXP digits, ...
- bool bHuge = fVal == HUGE_VAL; // g++ 3.0.1 requires it this way...
- if ( bHuge )
- eStatus = rtl_math_ConversionStatus_OutOfRange;
-
- if ( bSign )
- fVal = -fVal;
-
- if (pStatus != 0)
- *pStatus = eStatus;
- if (pParsedEnd != 0)
- *pParsedEnd = p == p0 ? pBegin : p;
-
- return fVal;
-}
-
-}
-
-double SAL_CALL rtl_math_stringToDouble(sal_Char const * pBegin,
- sal_Char const * pEnd,
- sal_Char cDecSeparator,
- sal_Char cGroupSeparator,
- rtl_math_ConversionStatus * pStatus,
- sal_Char const ** pParsedEnd)
- SAL_THROW_EXTERN_C()
-{
- return stringToDouble(pBegin, pEnd, cDecSeparator, cGroupSeparator, pStatus,
- pParsedEnd);
-}
-
-double SAL_CALL rtl_math_uStringToDouble(sal_Unicode const * pBegin,
- sal_Unicode const * pEnd,
- sal_Unicode cDecSeparator,
- sal_Unicode cGroupSeparator,
- rtl_math_ConversionStatus * pStatus,
- sal_Unicode const ** pParsedEnd)
- SAL_THROW_EXTERN_C()
-{
- return stringToDouble(pBegin, pEnd, cDecSeparator, cGroupSeparator, pStatus,
- pParsedEnd);
-}
-
-double SAL_CALL rtl_math_round(double fValue, int nDecPlaces,
- enum rtl_math_RoundingMode eMode)
- SAL_THROW_EXTERN_C()
-{
- OSL_ASSERT(nDecPlaces >= -20 && nDecPlaces <= 20);
-
- if ( fValue == 0.0 )
- return fValue;
-
- // sign adjustment
- bool bSign = rtl::math::isSignBitSet( fValue );
- if ( bSign )
- fValue = -fValue;
-
- double fFac = 0;
- if ( nDecPlaces != 0 )
- {
- // max 20 decimals, we don't have unlimited precision
- // #38810# and no overflow on fValue*=fFac
- if ( nDecPlaces < -20 || 20 < nDecPlaces || fValue > (DBL_MAX / 1e20) )
- return bSign ? -fValue : fValue;
-
- fFac = getN10Exp( nDecPlaces );
- fValue *= fFac;
- }
- //else //! uninitialized fFac, not needed
-
- switch ( eMode )
- {
- case rtl_math_RoundingMode_Corrected :
- {
- int nExp; // exponent for correction
- if ( fValue > 0.0 )
- nExp = static_cast<int>( floor( log10( fValue ) ) );
- else
- nExp = 0;
- int nIndex = 15 - nExp;
- if ( nIndex > 15 )
- nIndex = 15;
- else if ( nIndex <= 1 )
- nIndex = 0;
- fValue = floor( fValue + 0.5 + nKorrVal[nIndex] );
- }
- break;
- case rtl_math_RoundingMode_Down :
- fValue = rtl::math::approxFloor( fValue );
- break;
- case rtl_math_RoundingMode_Up :
- fValue = rtl::math::approxCeil( fValue );
- break;
- case rtl_math_RoundingMode_Floor :
- fValue = bSign ? rtl::math::approxCeil( fValue )
- : rtl::math::approxFloor( fValue );
- break;
- case rtl_math_RoundingMode_Ceiling :
- fValue = bSign ? rtl::math::approxFloor( fValue )
- : rtl::math::approxCeil( fValue );
- break;
- case rtl_math_RoundingMode_HalfDown :
- {
- double f = floor( fValue );
- fValue = ((fValue - f) <= 0.5) ? f : ceil( fValue );
- }
- break;
- case rtl_math_RoundingMode_HalfUp :
- {
- double f = floor( fValue );
- fValue = ((fValue - f) < 0.5) ? f : ceil( fValue );
- }
- break;
- case rtl_math_RoundingMode_HalfEven :
-#if defined FLT_ROUNDS
-/*
- Use fast version. FLT_ROUNDS may be defined to a function by some compilers!
-
- DBL_EPSILON is the smallest fractional number which can be represented,
- its reciprocal is therefore the smallest number that cannot have a
- fractional part. Once you add this reciprocal to `x', its fractional part
- is stripped off. Simply subtracting the reciprocal back out returns `x'
- without its fractional component.
- Simple, clever, and elegant - thanks to Ross Cottrell, the original author,
- who placed it into public domain.
-
- volatile: prevent compiler from being too smart
-*/
- if ( FLT_ROUNDS == 1 )
- {
- volatile double x = fValue + 1.0 / DBL_EPSILON;
- fValue = x - 1.0 / DBL_EPSILON;
- }
- else
-#endif // FLT_ROUNDS
- {
- double f = floor( fValue );
- if ( (fValue - f) != 0.5 )
- fValue = floor( fValue + 0.5 );
- else
- {
- double g = f / 2.0;
- fValue = (g == floor( g )) ? f : (f + 1.0);
- }
- }
- break;
- default:
- OSL_ASSERT(false);
- break;
- }
-
- if ( nDecPlaces != 0 )
- fValue /= fFac;
-
- return bSign ? -fValue : fValue;
-}
-
-
-double SAL_CALL rtl_math_pow10Exp(double fValue, int nExp) SAL_THROW_EXTERN_C()
-{
- return fValue * getN10Exp( nExp );
-}
-
-
-double SAL_CALL rtl_math_approxValue( double fValue ) SAL_THROW_EXTERN_C()
-{
- if (fValue == 0.0 || fValue == HUGE_VAL || !::rtl::math::isFinite( fValue))
- // We don't handle these conditions. Bail out.
- return fValue;
-
- double fOrigValue = fValue;
-
- bool bSign = ::rtl::math::isSignBitSet( fValue);
- if (bSign)
- fValue = -fValue;
-
- int nExp = static_cast<int>( floor( log10( fValue)));
- nExp = 14 - nExp;
- double fExpValue = getN10Exp( nExp);
-
- fValue *= fExpValue;
- // If the original value was near DBL_MIN we got an overflow. Restore and
- // bail out.
- if (!rtl::math::isFinite( fValue))
- return fOrigValue;
- fValue = rtl_math_round( fValue, 0, rtl_math_RoundingMode_Corrected);
- fValue /= fExpValue;
- // If the original value was near DBL_MAX we got an overflow. Restore and
- // bail out.
- if (!rtl::math::isFinite( fValue))
- return fOrigValue;
-
- return bSign ? -fValue : fValue;
-}
-
-
-double SAL_CALL rtl_math_expm1( double fValue ) SAL_THROW_EXTERN_C()
-{
- double fe = exp( fValue );
- if (fe == 1.0)
- return fValue;
- if (fe-1.0 == -1.0)
- return -1.0;
- return (fe-1.0) * fValue / log(fe);
-}
-
-
-double SAL_CALL rtl_math_log1p( double fValue ) SAL_THROW_EXTERN_C()
-{
- // Use volatile because a compiler may be too smart "optimizing" the
- // condition such that in certain cases the else path was called even if
- // (fp==1.0) was true, where the term (fp-1.0) then resulted in 0.0 and
- // hence the entire expression resulted in NaN.
- // Happened with g++ 3.4.1 and an input value of 9.87E-18
- volatile double fp = 1.0 + fValue;
- if (fp == 1.0)
- return fValue;
- else
- return log(fp) * fValue / (fp-1.0);
-}
-
-
-double SAL_CALL rtl_math_atanh( double fValue ) SAL_THROW_EXTERN_C()
-{
- return 0.5 * rtl_math_log1p( 2.0 * fValue / (1.0-fValue) );
-}
-
-
-/** Parent error function (erf) that calls different algorithms based on the
- value of x. It takes care of cases where x is negative as erf is an odd
- function i.e. erf(-x) = -erf(x).
-
- Kramer, W., and Blomquist, F., 2000, Algorithms with Guaranteed Error Bounds
- for the Error Function and the Complementary Error Function
-
- http://www.math.uni-wuppertal.de/wrswt/literatur_en.html
-
- @author Kohei Yoshida <kohei@openoffice.org>
-
- @see #i55735#
- */
-double SAL_CALL rtl_math_erf( double x ) SAL_THROW_EXTERN_C()
-{
- if( x == 0.0 )
- return 0.0;
-
- bool bNegative = false;
- if ( x < 0.0 )
- {
- x = fabs( x );
- bNegative = true;
- }
-
- double fErf = 1.0;
- if ( x < 1.0e-10 )
- fErf = (double) (x*1.1283791670955125738961589031215452L);
- else if ( x < 0.65 )
- lcl_Erf0065( x, fErf );
- else
- fErf = 1.0 - rtl_math_erfc( x );
-
- if ( bNegative )
- fErf *= -1.0;
-
- return fErf;
-}
-
-
-/** Parent complementary error function (erfc) that calls different algorithms
- based on the value of x. It takes care of cases where x is negative as erfc
- satisfies relationship erfc(-x) = 2 - erfc(x). See the comment for Erf(x)
- for the source publication.
-
- @author Kohei Yoshida <kohei@openoffice.org>
-
- @see #i55735#, moved from module scaddins (#i97091#)
-
- */
-double SAL_CALL rtl_math_erfc( double x ) SAL_THROW_EXTERN_C()
-{
- if ( x == 0.0 )
- return 1.0;
-
- bool bNegative = false;
- if ( x < 0.0 )
- {
- x = fabs( x );
- bNegative = true;
- }
-
- double fErfc = 0.0;
- if ( x >= 0.65 )
- {
- if ( x < 6.0 )
- lcl_Erfc0600( x, fErfc );
- else
- lcl_Erfc2654( x, fErfc );
- }
- else
- fErfc = 1.0 - rtl_math_erf( x );
-
- if ( bNegative )
- fErfc = 2.0 - fErfc;
-
- return fErfc;
-}
-
-/** improved accuracy of asinh for |x| large and for x near zero
- @see #i97605#
- */
-double SAL_CALL rtl_math_asinh( double fX ) SAL_THROW_EXTERN_C()
-{
- if ( fX == 0.0 )
- return 0.0;
- else
- {
- double fSign = 1.0;
- if ( fX < 0.0 )
- {
- fX = - fX;
- fSign = -1.0;
- }
- if ( fX < 0.125 )
- return fSign * rtl_math_log1p( fX + fX*fX / (1.0 + sqrt( 1.0 + fX*fX)));
- else if ( fX < 1.25e7 )
- return fSign * log( fX + sqrt( 1.0 + fX*fX));
- else
- return fSign * log( 2.0*fX);
- }
-}
-
-/** improved accuracy of acosh for x large and for x near 1
- @see #i97605#
- */
-double SAL_CALL rtl_math_acosh( double fX ) SAL_THROW_EXTERN_C()
-{
- volatile double fZ = fX - 1.0;
- if ( fX < 1.0 )
- {
- double fResult;
- ::rtl::math::setNan( &fResult );
- return fResult;
- }
- else if ( fX == 1.0 )
- return 0.0;
- else if ( fX < 1.1 )
- return rtl_math_log1p( fZ + sqrt( fZ*fZ + 2.0*fZ));
- else if ( fX < 1.25e7 )
- return log( fX + sqrt( fX*fX - 1.0));
- else
- return log( 2.0*fX);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/memory.c b/sal/rtl/source/memory.c
deleted file mode 100644
index 888dfde56..000000000
--- a/sal/rtl/source/memory.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#include <string.h>
-#include <rtl/memory.h>
-
-void SAL_CALL rtl_zeroMemory(void *Ptr, sal_Size Bytes)
-{
- memset(Ptr, 0, Bytes);
-}
-
-void SAL_CALL rtl_fillMemory(void *Ptr, sal_Size Bytes, sal_uInt8 Fill)
-{
- memset(Ptr, Fill, Bytes);
-}
-
-void SAL_CALL rtl_copyMemory(void *Dst, const void *Src, sal_Size Bytes)
-{
- memcpy(Dst, Src, Bytes);
-}
-
-void SAL_CALL rtl_moveMemory(void *Dst, const void *Src, sal_Size Bytes)
-{
- memmove(Dst, Src, Bytes);
-}
-
-sal_Int32 SAL_CALL rtl_compareMemory(const void *MemA, const void *MemB, sal_Size Bytes)
-{
- return memcmp(MemA, MemB, Bytes);
-}
-
-void* SAL_CALL rtl_findInMemory(const void *MemA, sal_uInt8 ch, sal_Size Bytes)
-{
- return memchr(MemA, ch, Bytes);
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/random.c b/sal/rtl/source/random.c
deleted file mode 100644
index 4bdf88204..000000000
--- a/sal/rtl/source/random.c
+++ /dev/null
@@ -1,340 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#define _RTL_RANDOM_C_
-
-#include <sal/types.h>
-#include <osl/thread.h>
-#include <osl/time.h>
-#include <rtl/alloc.h>
-#include <rtl/digest.h>
-#include <rtl/random.h>
-#include <osl/time.h>
-
-/*========================================================================
- *
- * rtlRandom internals.
- *
- *======================================================================*/
-#define RTL_RANDOM_RNG_1(a) ((a) * 16807L)
-#define RTL_RANDOM_RNG_2(a) ((a) * 65539L)
-
-#define RTL_RANDOM_RNG(x, y, z) \
-{ \
- (x) = 170 * ((x) % 178) - 63 * ((x) / 178); \
- if ((x) < 0) (x) += 30328L; \
- \
- (y) = 171 * ((y) % 177) - 2 * ((y) / 177); \
- if ((y) < 0) (y) += 30269L; \
- \
- (z) = 172 * ((z) % 176) - 35 * ((z) / 176); \
- if ((z) < 0) (z) += 30307L; \
-}
-
-/** RandomData_Impl.
- */
-typedef struct random_data_impl_st
-{
- sal_Int16 m_nX;
- sal_Int16 m_nY;
- sal_Int16 m_nZ;
-} RandomData_Impl;
-
-/** __rtl_random_data.
- */
-static double __rtl_random_data (RandomData_Impl *pImpl);
-
-/** RandomPool_Impl.
- */
-#define RTL_RANDOM_DIGEST rtl_Digest_AlgorithmMD5
-#define RTL_RANDOM_SIZE_DIGEST RTL_DIGEST_LENGTH_MD5
-#define RTL_RANDOM_SIZE_POOL 1023
-
-typedef struct random_pool_impl_st
-{
- rtlDigest m_hDigest;
- sal_uInt8 m_pDigest[RTL_RANDOM_SIZE_DIGEST];
- sal_uInt8 m_pData[RTL_RANDOM_SIZE_POOL + 1];
- sal_uInt32 m_nData;
- sal_uInt32 m_nIndex;
- sal_uInt32 m_nCount;
-} RandomPool_Impl;
-
-/** __rtl_random_initPool.
- */
-static sal_Bool __rtl_random_initPool (
- RandomPool_Impl *pImpl);
-
-/** __rtl_random_seedPool.
- */
-static void __rtl_random_seedPool (
- RandomPool_Impl *pImpl, const sal_uInt8 *pBuffer, sal_Size nBufLen);
-
-/** __rtl_random_readPool.
- */
-static void __rtl_random_readPool (
- RandomPool_Impl *pImpl, sal_uInt8 *pBuffer, sal_Size nBufLen);
-
-/*
- * __rtl_random_data.
- */
-static double __rtl_random_data (RandomData_Impl *pImpl)
-{
- register double random;
-
- RTL_RANDOM_RNG (pImpl->m_nX, pImpl->m_nY, pImpl->m_nZ);
- random = (((double)(pImpl->m_nX) / 30328.0) +
- ((double)(pImpl->m_nY) / 30269.0) +
- ((double)(pImpl->m_nZ) / 30307.0) );
-
- random -= ((double)((sal_uInt32)(random)));
- return (random);
-}
-
-/*
- * __rtl_random_initPool.
- */
-static sal_Bool __rtl_random_initPool (RandomPool_Impl *pImpl)
-{
- pImpl->m_hDigest = rtl_digest_create (RTL_RANDOM_DIGEST);
- if (pImpl->m_hDigest)
- {
- oslThreadIdentifier id;
- TimeValue tv;
- RandomData_Impl rd;
- double seed;
-
- /* The use of uninitialized stack variables as a way to
- * enhance the entropy of the random pool triggers
- * memory checkers like purify and valgrind.
- */
-
- /*
- __rtl_random_seedPool (pImpl, (sal_uInt8*)&id, sizeof(id));
- __rtl_random_seedPool (pImpl, (sal_uInt8*)&tv, sizeof(tv));
- __rtl_random_seedPool (pImpl, (sal_uInt8*)&rd, sizeof(rd));
- */
-
- id = osl_getThreadIdentifier (NULL);
- id = RTL_RANDOM_RNG_2(RTL_RANDOM_RNG_1(id));
- __rtl_random_seedPool (pImpl, (sal_uInt8*)&id, sizeof(id));
-
- osl_getSystemTime (&tv);
- tv.Seconds = RTL_RANDOM_RNG_2(tv.Seconds);
- tv.Nanosec = RTL_RANDOM_RNG_2(tv.Nanosec);
- __rtl_random_seedPool (pImpl, (sal_uInt8*)&tv, sizeof(tv));
-
- rd.m_nX = (sal_Int16)(((id >> 1) << 1) + 1);
- rd.m_nY = (sal_Int16)(((tv.Seconds >> 1) << 1) + 1);
- rd.m_nZ = (sal_Int16)(((tv.Nanosec >> 1) << 1) + 1);
- __rtl_random_seedPool (pImpl, (sal_uInt8*)&rd, sizeof(rd));
-
- while (pImpl->m_nData < RTL_RANDOM_SIZE_POOL)
- {
- seed = __rtl_random_data (&rd);
- __rtl_random_seedPool (pImpl, (sal_uInt8*)&seed, sizeof(seed));
- }
- return sal_True;
- }
- return sal_False;
-}
-
-/*
- * __rtl_random_seedPool.
- */
-static void __rtl_random_seedPool (
- RandomPool_Impl *pImpl, const sal_uInt8 *pBuffer, sal_Size nBufLen)
-{
- sal_Size i;
- sal_sSize j, k;
-
- for (i = 0; i < nBufLen; i += RTL_RANDOM_SIZE_DIGEST)
- {
- j = nBufLen - i;
- if (j > RTL_RANDOM_SIZE_DIGEST)
- j = RTL_RANDOM_SIZE_DIGEST;
-
- rtl_digest_update (
- pImpl->m_hDigest, pImpl->m_pDigest, RTL_RANDOM_SIZE_DIGEST);
-
- k = (pImpl->m_nIndex + j) - RTL_RANDOM_SIZE_POOL;
- if (k > 0)
- {
- rtl_digest_update (
- pImpl->m_hDigest, &(pImpl->m_pData[pImpl->m_nIndex]), j - k);
- rtl_digest_update (
- pImpl->m_hDigest, &(pImpl->m_pData[0]), k);
- }
- else
- {
- rtl_digest_update (
- pImpl->m_hDigest, &(pImpl->m_pData[pImpl->m_nIndex]), j);
- }
-
- rtl_digest_update (pImpl->m_hDigest, pBuffer, j);
- pBuffer += j;
-
- rtl_digest_get (
- pImpl->m_hDigest, pImpl->m_pDigest, RTL_RANDOM_SIZE_DIGEST);
- for (k = 0; k < j; k++)
- {
- pImpl->m_pData[pImpl->m_nIndex++] ^= pImpl->m_pDigest[k];
- if (pImpl->m_nIndex >= RTL_RANDOM_SIZE_POOL)
- {
- pImpl->m_nData = RTL_RANDOM_SIZE_POOL;
- pImpl->m_nIndex = 0;
- }
- }
- }
-
- if (pImpl->m_nIndex > pImpl->m_nData)
- pImpl->m_nData = pImpl->m_nIndex;
-}
-
-/*
- * __rtl_random_readPool.
- */
-static void __rtl_random_readPool (
- RandomPool_Impl *pImpl, sal_uInt8 *pBuffer, sal_Size nBufLen)
-{
- sal_Int32 j, k;
-
- while (nBufLen > 0)
- {
- j = nBufLen;
- if (j > RTL_RANDOM_SIZE_DIGEST/2)
- j = RTL_RANDOM_SIZE_DIGEST/2;
- nBufLen -= j;
-
- rtl_digest_update (
- pImpl->m_hDigest,
- &(pImpl->m_pDigest[RTL_RANDOM_SIZE_DIGEST/2]),
- RTL_RANDOM_SIZE_DIGEST/2);
-
- k = (pImpl->m_nIndex + j) - pImpl->m_nData;
- if (k > 0)
- {
- rtl_digest_update (
- pImpl->m_hDigest, &(pImpl->m_pData[pImpl->m_nIndex]), j - k);
- rtl_digest_update (
- pImpl->m_hDigest, &(pImpl->m_pData[0]), k);
- }
- else
- {
- rtl_digest_update (
- pImpl->m_hDigest, &(pImpl->m_pData[pImpl->m_nIndex]), j);
- }
-
- rtl_digest_get (
- pImpl->m_hDigest, pImpl->m_pDigest, RTL_RANDOM_SIZE_DIGEST);
- for (k = 0; k < j; k++)
- {
- if (pImpl->m_nIndex >= pImpl->m_nData) pImpl->m_nIndex = 0;
- pImpl->m_pData[pImpl->m_nIndex++] ^= pImpl->m_pDigest[k];
- *pBuffer++ = pImpl->m_pDigest[k + RTL_RANDOM_SIZE_DIGEST/2];
- }
- }
-
- pImpl->m_nCount++;
- rtl_digest_update (
- pImpl->m_hDigest, &(pImpl->m_nCount), sizeof(pImpl->m_nCount));
- rtl_digest_update (
- pImpl->m_hDigest, pImpl->m_pDigest, RTL_RANDOM_SIZE_DIGEST);
- rtl_digest_get (
- pImpl->m_hDigest, pImpl->m_pDigest, RTL_RANDOM_SIZE_DIGEST);
-}
-
-/*========================================================================
- *
- * rtlRandom implementation.
- *
- *======================================================================*/
-/*
- * rtl_random_createPool.
- */
-rtlRandomPool SAL_CALL rtl_random_createPool (void)
-{
- RandomPool_Impl *pImpl = (RandomPool_Impl*)NULL;
- pImpl = (RandomPool_Impl*)rtl_allocateZeroMemory (sizeof(RandomPool_Impl));
- if (pImpl)
- {
- if (!__rtl_random_initPool (pImpl))
- {
- rtl_freeZeroMemory (pImpl, sizeof(RandomPool_Impl));
- pImpl = (RandomPool_Impl*)NULL;
- }
- }
- return ((rtlRandomPool)pImpl);
-}
-
-/*
- * rtl_random_destroyPool.
- */
-void SAL_CALL rtl_random_destroyPool (rtlRandomPool Pool)
-{
- RandomPool_Impl *pImpl = (RandomPool_Impl *)Pool;
- if (pImpl)
- {
- rtl_digest_destroy (pImpl->m_hDigest);
- rtl_freeZeroMemory (pImpl, sizeof (RandomPool_Impl));
- }
-}
-
-/*
- * rtl_random_addBytes.
- */
-rtlRandomError SAL_CALL rtl_random_addBytes (
- rtlRandomPool Pool, const void *Buffer, sal_Size Bytes)
-{
- RandomPool_Impl *pImpl = (RandomPool_Impl *)Pool;
- const sal_uInt8 *pBuffer = (const sal_uInt8 *)Buffer;
-
- if ((pImpl == NULL) || (pBuffer == NULL))
- return rtl_Random_E_Argument;
-
- __rtl_random_seedPool (pImpl, pBuffer, Bytes);
- return rtl_Random_E_None;
-}
-
-/*
- * rtl_random_getBytes.
- */
-rtlRandomError SAL_CALL rtl_random_getBytes (
- rtlRandomPool Pool, void *Buffer, sal_Size Bytes)
-{
- RandomPool_Impl *pImpl = (RandomPool_Impl *)Pool;
- sal_uInt8 *pBuffer = (sal_uInt8 *)Buffer;
-
- if ((pImpl == NULL) || (pBuffer == NULL))
- return rtl_Random_E_Argument;
-
- __rtl_random_readPool (pImpl, pBuffer, Bytes);
- return rtl_Random_E_None;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/rtl_process.c b/sal/rtl/source/rtl_process.c
deleted file mode 100644
index 0317cd1af..000000000
--- a/sal/rtl/source/rtl_process.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#include <string.h>
-#include <osl/mutex.h>
-#include <rtl/uuid.h>
-
-/* rtl_getCommandArg, rtl_getCommandArgCount see cmdargs.cxx */
-
-void SAL_CALL rtl_getGlobalProcessId( sal_uInt8 *pTargetUUID )
-{
- static sal_uInt8 *pUuid = 0;
- if( ! pUuid )
- {
- osl_acquireMutex( * osl_getGlobalMutex() );
- if( ! pUuid )
- {
- static sal_uInt8 aUuid[16];
- rtl_createUuid( aUuid , 0 , sal_False );
- pUuid = aUuid;
- }
- osl_releaseMutex( * osl_getGlobalMutex() );
- }
- memcpy( pTargetUUID , pUuid , 16 );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/strbuf.c b/sal/rtl/source/strbuf.c
deleted file mode 100644
index c0e9694dc..000000000
--- a/sal/rtl/source/strbuf.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <osl/interlck.h>
-
-#ifndef _RTL_STRING_HXX_
-#include <rtl/strbuf.hxx>
-#endif
-#include <rtl/memory.h>
-
-/*
-#include <rtl/alloc.h>
-*/
-
-
-
-/*************************************************************************
- * rtl_stringbuffer_newFromStr_WithLength
- */
-void SAL_CALL rtl_stringbuffer_newFromStr_WithLength( rtl_String ** newStr,
- const sal_Char * value,
- sal_Int32 count )
-{
- if (!value)
- {
- rtl_string_new_WithLength( newStr, 16 );
- return;
- }
-
- rtl_string_new_WithLength( newStr, count + 16 );
- (*newStr)->length = count;
- rtl_copyMemory( (*newStr)->buffer, value, count );
- return;
-}
-
-/*************************************************************************
- * rtl_stringbuffer_newFromStringBuffer
- */
-sal_Int32 SAL_CALL rtl_stringbuffer_newFromStringBuffer( rtl_String ** newStr,
- sal_Int32 capacity,
- rtl_String * oldStr )
-{
- sal_Int32 newCapacity = capacity;
-
- if (newCapacity < oldStr->length)
- newCapacity = oldStr->length;
-
- rtl_string_new_WithLength( newStr, newCapacity );
- if (oldStr->length > 0) {
- (*newStr)->length = oldStr->length;
- rtl_copyMemory( (*newStr)->buffer, oldStr->buffer, oldStr->length );
- }
- return newCapacity;
-}
-
-/*************************************************************************
- * rtl_stringbuffer_ensureCapacity
- */
-void SAL_CALL rtl_stringbuffer_ensureCapacity
- (rtl_String ** This, sal_Int32* capacity, sal_Int32 minimumCapacity)
-{
- if (minimumCapacity > *capacity)
- {
- rtl_String * pTmp = *This;
- rtl_String * pNew = NULL;
- *capacity = ((*This)->length + 1) * 2;
- if (minimumCapacity > *capacity)
- /* still lower, set to the minimum capacity */
- *capacity = minimumCapacity;
-
- rtl_string_new_WithLength(&pNew, *capacity);
- pNew->length = (*This)->length;
- *This = pNew;
-
- rtl_copyMemory( (*This)->buffer, pTmp->buffer, pTmp->length );
- rtl_string_release( pTmp );
- }
-}
-
-/*************************************************************************
- * rtl_stringbuffer_insert
- */
-void SAL_CALL rtl_stringbuffer_insert( rtl_String ** This,
- sal_Int32 * capacity,
- sal_Int32 offset,
- const sal_Char * str,
- sal_Int32 len )
-{
- sal_Int32 nOldLen;
- sal_Char * pBuf;
- sal_Int32 n;
- if( len != 0 )
- {
- if (*capacity < (*This)->length + len)
- rtl_stringbuffer_ensureCapacity( This, capacity, (*This)->length + len );
-
- /*
- if( len == 1 )
- This->buffer
- */
- nOldLen = (*This)->length;
- pBuf = (*This)->buffer;
-
- /* copy the tail */
- n = (nOldLen - offset);
- if( n == 1 )
- /* optimized for 1 character */
- pBuf[offset + len] = pBuf[offset];
- else if( n > 1 )
- rtl_moveMemory( pBuf + offset + len, pBuf + offset, n * sizeof(sal_Char) );
-
- /* insert the new characters */
- n = len;
- if( len == 1 )
- /* optimized for 1 character */
- pBuf[offset] = *str;
- else if( n > 1 )
- rtl_copyMemory( pBuf + offset, str, len * sizeof(sal_Char) );
- (*This)->length = nOldLen + len;
- pBuf[ nOldLen + len ] = 0;
- }
-}
-
-/*************************************************************************
- * rtl_stringbuffer_remove
- */
-void SAL_CALL rtl_stringbuffer_remove( rtl_String ** This,
- sal_Int32 start,
- sal_Int32 len )
-{
- sal_Int32 nTailLen;
- sal_Char * pBuf;
-
- if (len > (*This)->length - start)
- len = (*This)->length - start;
-
- //remove nothing
- if (!len)
- return;
-
- pBuf = (*This)->buffer;
- nTailLen = (*This)->length - ( start + len );
-
- if (nTailLen)
- {
- /* move the tail */
- rtl_moveMemory(pBuf + start, pBuf + start + len, nTailLen * sizeof(sal_Char));
- }
-
- (*This)->length-=len;
- pBuf[ (*This)->length ] = 0;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/strimp.c b/sal/rtl/source/strimp.c
deleted file mode 100644
index 3e66f0412..000000000
--- a/sal/rtl/source/strimp.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "strimp.h"
-
-sal_Int16 rtl_ImplGetDigit( sal_Unicode ch, sal_Int16 nRadix )
-{
- sal_Int16 n = -1;
- if ( (ch >= '0') && (ch <= '9') )
- n = ch-'0';
- else if ( (ch >= 'a') && (ch <= 'z') )
- n = ch-'a'+10;
- else if ( (ch >= 'A') && (ch <= 'Z') )
- n = ch-'A'+10;
- return (n < nRadix) ? n : -1;
-}
-
-sal_Bool rtl_ImplIsWhitespace( sal_Unicode c )
-{
- /* Space or Control character? */
- if ( (c <= 32) && c )
- return sal_True;
-
- /* Only in the General Punctuation area Space or Control characters are included? */
- if ( (c < 0x2000) || (c > 0x206F) )
- return sal_False;
-
- if ( ((c >= 0x2000) && (c <= 0x200B)) || /* All Spaces */
- (c == 0x2028) || /* LINE SEPARATOR */
- (c == 0x2029) ) /* PARAGRAPH SEPARATOR */
- return sal_True;
-
- return sal_False;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/strimp.h b/sal/rtl/source/strimp.h
deleted file mode 100644
index bbf3850c6..000000000
--- a/sal/rtl/source/strimp.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_SOURCE_STRIMP_H
-#define INCLUDED_RTL_SOURCE_STRIMP_H
-
-#include <osl/interlck.h>
-
-#include "sal/types.h"
-
-/* ======================================================================= */
-/* Help functions for String and UString */
-/* ======================================================================= */
-
-#if defined __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * refCount is opaqueincludes 2 bit-fields;
- * MSB: 'interned' - is stored in the intern hash
- * MSB-1: 'static' - is a const / static string,
- * do no ref counting
- */
-#define SAL_STRING_INTERN_FLAG 0x80000000
-#define SAL_STRING_STATIC_FLAG 0x40000000
-#define SAL_STRING_REFCOUNT(a) ((a) & 0x3fffffff)
-
-#define SAL_STRING_IS_INTERN(a) ((a)->refCount & SAL_STRING_INTERN_FLAG)
-#define SAL_STRING_IS_STATIC(a) ((a)->refCount & SAL_STRING_STATIC_FLAG)
-
-sal_Int16 rtl_ImplGetDigit( sal_Unicode ch, sal_Int16 nRadix );
-
-sal_Bool rtl_ImplIsWhitespace( sal_Unicode c );
-
-#if defined __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* INCLUDED_RTL_SOURCE_STRIMP_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/string.c b/sal/rtl/source/string.c
deleted file mode 100644
index 19680113d..000000000
--- a/sal/rtl/source/string.c
+++ /dev/null
@@ -1,323 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#if defined(_MSC_VER) && (_MSC_VER >= 1400)
-#pragma warning(disable:4738) // storing 32-bit float result in memory, possible loss of performance
-#endif
-
-#include <rtl/memory.h>
-#include <osl/interlck.h>
-#include <rtl/alloc.h>
-#include <osl/diagnose.h>
-#include <rtl/tencinfo.h>
-
-#include "strimp.h"
-#include "surrogates.h"
-#include <rtl/string.h>
-
-#include "rtl/math.h"
-#include "rtl/tencinfo.h"
-
-/* ======================================================================= */
-
-/* static data to be referenced by all empty strings
- * the refCount is predefined to 1 and must never become 0 !
- */
-static rtl_String const aImplEmpty_rtl_String =
-{
- SAL_STRING_STATIC_FLAG|1,
- /* sal_Int32 refCount; */
- 0, /* sal_Int32 length; */
- { 0 } /* sal_Char buffer[1]; */
-};
-
-/* ======================================================================= */
-
-#define IMPL_RTL_STRCODE sal_Char
-#define IMPL_RTL_USTRCODE( c ) ((unsigned char)c)
-#define IMPL_RTL_STRNAME( n ) rtl_str_ ## n
-
-#define IMPL_RTL_STRINGNAME( n ) rtl_string_ ## n
-#define IMPL_RTL_STRINGDATA rtl_String
-#define IMPL_RTL_EMPTYSTRING aImplEmpty_rtl_String
-
-/* ======================================================================= */
-
-/* Include String/UString template code */
-
-#include "strtmpl.c"
-
-sal_Int32 SAL_CALL rtl_str_valueOfFloat(sal_Char * pStr, float f)
-{
- rtl_String * pResult = NULL;
- sal_Int32 nLen;
- rtl_math_doubleToString(
- &pResult, 0, 0, f, rtl_math_StringFormat_G,
- RTL_STR_MAX_VALUEOFFLOAT - RTL_CONSTASCII_LENGTH("-x.E-xxx"), '.', 0, 0,
- sal_True);
- nLen = pResult->length;
- OSL_ASSERT(nLen < RTL_STR_MAX_VALUEOFFLOAT);
- rtl_copyMemory(pStr, pResult->buffer, (nLen + 1) * sizeof(sal_Char));
- rtl_string_release(pResult);
- return nLen;
-}
-
-sal_Int32 SAL_CALL rtl_str_valueOfDouble(sal_Char * pStr, double d)
-{
- rtl_String * pResult = NULL;
- sal_Int32 nLen;
- rtl_math_doubleToString(
- &pResult, 0, 0, d, rtl_math_StringFormat_G,
- RTL_STR_MAX_VALUEOFDOUBLE - RTL_CONSTASCII_LENGTH("-x.E-xxx"), '.', 0,
- 0, sal_True);
- nLen = pResult->length;
- OSL_ASSERT(nLen < RTL_STR_MAX_VALUEOFDOUBLE);
- rtl_copyMemory(pStr, pResult->buffer, (nLen + 1) * sizeof(sal_Char));
- rtl_string_release(pResult);
- return nLen;
-}
-
-float SAL_CALL rtl_str_toFloat(sal_Char const * pStr)
-{
- return (float) rtl_math_stringToDouble(pStr, pStr + rtl_str_getLength(pStr),
- '.', 0, 0, 0);
-}
-
-double SAL_CALL rtl_str_toDouble(sal_Char const * pStr)
-{
- return rtl_math_stringToDouble(pStr, pStr + rtl_str_getLength(pStr), '.', 0,
- 0, 0);
-}
-
-/* ======================================================================= */
-
-static int rtl_ImplGetFastUTF8ByteLen( const sal_Unicode* pStr, sal_Int32 nLen )
-{
- int n;
- sal_Unicode c;
- sal_uInt32 nUCS4Char;
- const sal_Unicode* pEndStr;
-
- n = 0;
- pEndStr = pStr+nLen;
- while ( pStr < pEndStr )
- {
- c = *pStr;
-
- if ( c < 0x80 )
- n++;
- else if ( c < 0x800 )
- n += 2;
- else
- {
- if ( !SAL_RTL_IS_HIGH_SURROGATE(c) )
- n += 3;
- else
- {
- nUCS4Char = c;
-
- if ( pStr+1 < pEndStr )
- {
- c = *(pStr+1);
- if ( SAL_RTL_IS_LOW_SURROGATE(c) )
- {
- nUCS4Char = SAL_RTL_COMBINE_SURROGATES(nUCS4Char, c);
- pStr++;
- }
- }
-
- if ( nUCS4Char < 0x10000 )
- n += 3;
- else if ( nUCS4Char < 0x200000 )
- n += 4;
- else if ( nUCS4Char < 0x4000000 )
- n += 5;
- else
- n += 6;
- }
- }
-
- pStr++;
- }
-
- return n;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Bool SAL_CALL rtl_impl_convertUStringToString(rtl_String ** pTarget,
- sal_Unicode const * pSource,
- sal_Int32 nLength,
- rtl_TextEncoding nEncoding,
- sal_uInt32 nFlags,
- sal_Bool bCheckErrors)
-{
- OSL_ASSERT(pTarget != NULL
- && (pSource != NULL || nLength == 0)
- && nLength >= 0
- && (nLength == 0 || rtl_isOctetTextEncoding(nEncoding)));
-
- if ( !nLength )
- rtl_string_new( pTarget );
- else
- {
- rtl_String* pTemp;
- rtl_UnicodeToTextConverter hConverter;
- sal_uInt32 nInfo;
- sal_Size nSrcChars;
- sal_Size nDestBytes;
- sal_Size nNewLen;
- sal_Size nNotConvertedChars;
- sal_Size nMaxCharLen;
-
- /* Optimization for UTF-8 - we try to calculate the exact length */
- /* For all other encoding we try an good estimation */
- if ( nEncoding == RTL_TEXTENCODING_UTF8 )
- {
- nNewLen = rtl_ImplGetFastUTF8ByteLen( pSource, nLength );
- /* Includes the string only ASCII, then we could copy
- the buffer faster */
- if ( nNewLen == (sal_Size)nLength )
- {
- IMPL_RTL_STRCODE* pBuffer;
- if ( *pTarget )
- IMPL_RTL_STRINGNAME( release )( *pTarget );
- *pTarget = IMPL_RTL_STRINGNAME( ImplAlloc )( nLength );
- OSL_ASSERT(*pTarget != NULL);
- pBuffer = (*pTarget)->buffer;
- do
- {
- /* Check ASCII range */
- OSL_ENSURE( *pSource <= 127,
- "rtl_uString2String() - UTF8 test is encoding is wrong" );
-
- *pBuffer = (IMPL_RTL_STRCODE)(unsigned char)*pSource;
- pBuffer++;
- pSource++;
- nLength--;
- }
- while ( nLength );
- return sal_True;
- }
-
- nMaxCharLen = 4;
- }
- else
- {
- rtl_TextEncodingInfo aTextEncInfo;
- aTextEncInfo.StructSize = sizeof( aTextEncInfo );
- if ( !rtl_getTextEncodingInfo( nEncoding, &aTextEncInfo ) )
- {
- aTextEncInfo.AverageCharSize = 1;
- aTextEncInfo.MaximumCharSize = 8;
- }
-
- nNewLen = nLength*aTextEncInfo.AverageCharSize;
- nMaxCharLen = aTextEncInfo.MaximumCharSize;
- }
-
- nFlags |= RTL_UNICODETOTEXT_FLAGS_FLUSH;
- hConverter = rtl_createUnicodeToTextConverter( nEncoding );
-
- for (;;)
- {
- pTemp = IMPL_RTL_STRINGNAME( ImplAlloc )( nNewLen );
- OSL_ASSERT(pTemp != NULL);
- nDestBytes = rtl_convertUnicodeToText( hConverter, 0,
- pSource, nLength,
- pTemp->buffer, nNewLen,
- nFlags,
- &nInfo, &nSrcChars );
- if (bCheckErrors && (nInfo & RTL_UNICODETOTEXT_INFO_ERROR) != 0)
- {
- rtl_freeMemory(pTemp);
- rtl_destroyUnicodeToTextConverter(hConverter);
- return sal_False;
- }
-
- if ((nInfo & RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL) == 0)
- break;
-
- /* Buffer not big enough, try again with enough space */
- rtl_freeMemory( pTemp );
-
- /* Try with the max. count of characters with
- additional overhead for replacing functionality */
- nNotConvertedChars = nLength-nSrcChars;
- nNewLen = nDestBytes+(nNotConvertedChars*nMaxCharLen)+nNotConvertedChars+4;
- }
-
- /* Set the buffer to the correct size or is there to
- much overhead, reallocate to the correct size */
- if ( nNewLen > nDestBytes+8 )
- {
- rtl_String* pTemp2 = IMPL_RTL_STRINGNAME( ImplAlloc )( nDestBytes );
- OSL_ASSERT(pTemp2 != NULL);
- rtl_str_ImplCopy( pTemp2->buffer, pTemp->buffer, nDestBytes );
- rtl_freeMemory( pTemp );
- pTemp = pTemp2;
- }
- else
- {
- pTemp->length = nDestBytes;
- pTemp->buffer[nDestBytes] = 0;
- }
-
- rtl_destroyUnicodeToTextConverter( hConverter );
- if ( *pTarget )
- IMPL_RTL_STRINGNAME( release )( *pTarget );
- *pTarget = pTemp;
-
- /* Results the conversion in an empty buffer -
- create an empty string */
- if ( pTemp && !nDestBytes )
- rtl_string_new( pTarget );
- }
- return sal_True;
-}
-
-void SAL_CALL rtl_uString2String( rtl_String** ppThis,
- const sal_Unicode* pUStr,
- sal_Int32 nULen,
- rtl_TextEncoding eTextEncoding,
- sal_uInt32 nCvtFlags )
-{
- rtl_impl_convertUStringToString(ppThis, pUStr, nULen, eTextEncoding,
- nCvtFlags, sal_False);
-}
-
-sal_Bool SAL_CALL rtl_convertUStringToString(rtl_String ** pTarget,
- sal_Unicode const * pSource,
- sal_Int32 nLength,
- rtl_TextEncoding nEncoding,
- sal_uInt32 nFlags)
-{
- return rtl_impl_convertUStringToString(pTarget, pSource, nLength, nEncoding,
- nFlags, sal_True);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/strtmpl.c b/sal/rtl/source/strtmpl.c
deleted file mode 100644
index 98c09f15a..000000000
--- a/sal/rtl/source/strtmpl.c
+++ /dev/null
@@ -1,1570 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-/* Internal C-String help functions which could be used without the */
-/* String-Class */
-/* ======================================================================= */
-
-/*
-inline void rtl_str_ImplCopy( IMPL_RTL_STRCODE* pDest,
- const IMPL_RTL_STRCODE* pSrc,
- sal_Int32 nCount )
-{
- while ( nCount > 0 )
- {
- *pDest = *pSrc;
- pDest++;
- pSrc++;
- nCount--;
- }
-}
-*/
-
-#define rtl_str_ImplCopy( _pDest, _pSrc, _nCount ) \
-{ \
- IMPL_RTL_STRCODE* __mm_pDest = _pDest; \
- const IMPL_RTL_STRCODE* __mm_pSrc = _pSrc; \
- sal_Int32 __mm_nCount = _nCount; \
- while ( __mm_nCount > 0 ) \
- { \
- *__mm_pDest = *__mm_pSrc; \
- __mm_pDest++; \
- __mm_pSrc++; \
- __mm_nCount--; \
- } \
-}
-
-/* ======================================================================= */
-/* C-String functions which could be used without the String-Class */
-/* ======================================================================= */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( getLength )( const IMPL_RTL_STRCODE* pStr )
-{
- const IMPL_RTL_STRCODE* pTempStr = pStr;
- while( *pTempStr )
- pTempStr++;
- return pTempStr-pStr;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( compare )( const IMPL_RTL_STRCODE* pStr1,
- const IMPL_RTL_STRCODE* pStr2 )
-{
- sal_Int32 nRet;
- while ( ((nRet = ((sal_Int32)(IMPL_RTL_USTRCODE(*pStr1)))-
- ((sal_Int32)(IMPL_RTL_USTRCODE(*pStr2)))) == 0) &&
- *pStr2 )
- {
- pStr1++;
- pStr2++;
- }
-
- return nRet;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( compare_WithLength )( const IMPL_RTL_STRCODE* pStr1,
- sal_Int32 nStr1Len,
- const IMPL_RTL_STRCODE* pStr2,
- sal_Int32 nStr2Len )
-{
- sal_Int32 nRet = nStr1Len - nStr2Len;
- int nCount = (nRet <= 0) ? nStr1Len : nStr2Len;
-
- --pStr1;
- --pStr2;
- while( (--nCount >= 0) && (*++pStr1 == *++pStr2) );
-
- if( nCount >= 0 )
- nRet = ((sal_Int32)(IMPL_RTL_USTRCODE( *pStr1 )))
- - ((sal_Int32)(IMPL_RTL_USTRCODE( *pStr2 )));
-
- return nRet;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( shortenedCompare_WithLength )( const IMPL_RTL_STRCODE* pStr1,
- sal_Int32 nStr1Len,
- const IMPL_RTL_STRCODE* pStr2,
- sal_Int32 nStr2Len,
- sal_Int32 nShortenedLength )
-{
- const IMPL_RTL_STRCODE* pStr1End = pStr1 + nStr1Len;
- const IMPL_RTL_STRCODE* pStr2End = pStr2 + nStr2Len;
- sal_Int32 nRet;
- while ( (nShortenedLength > 0) &&
- (pStr1 < pStr1End) && (pStr2 < pStr2End) )
- {
- nRet = ((sal_Int32)(IMPL_RTL_USTRCODE( *pStr1 )))-
- ((sal_Int32)(IMPL_RTL_USTRCODE( *pStr2 )));
- if ( nRet )
- return nRet;
-
- nShortenedLength--;
- pStr1++;
- pStr2++;
- }
-
- if ( nShortenedLength <= 0 )
- return 0;
- return nStr1Len - nStr2Len;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( reverseCompare_WithLength )( const IMPL_RTL_STRCODE* pStr1,
- sal_Int32 nStr1Len,
- const IMPL_RTL_STRCODE* pStr2,
- sal_Int32 nStr2Len )
-{
- const IMPL_RTL_STRCODE* pStr1Run = pStr1+nStr1Len;
- const IMPL_RTL_STRCODE* pStr2Run = pStr2+nStr2Len;
- sal_Int32 nRet;
- while ( (pStr1 < pStr1Run) && (pStr2 < pStr2Run) )
- {
- pStr1Run--;
- pStr2Run--;
- nRet = ((sal_Int32)(IMPL_RTL_USTRCODE( *pStr1Run )))-
- ((sal_Int32)(IMPL_RTL_USTRCODE( *pStr2Run )));
- if ( nRet )
- return nRet;
- }
-
- return nStr1Len - nStr2Len;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( compareIgnoreAsciiCase )( const IMPL_RTL_STRCODE* pStr1,
- const IMPL_RTL_STRCODE* pStr2 )
-{
- sal_Int32 nRet;
- sal_Int32 c1;
- sal_Int32 c2;
- do
- {
- /* If character between 'A' and 'Z', than convert it to lowercase */
- c1 = (sal_Int32)IMPL_RTL_USTRCODE( *pStr1 );
- c2 = (sal_Int32)IMPL_RTL_USTRCODE( *pStr2 );
- if ( (c1 >= 65) && (c1 <= 90) )
- c1 += 32;
- if ( (c2 >= 65) && (c2 <= 90) )
- c2 += 32;
- nRet = c1-c2;
- if ( nRet != 0 )
- return nRet;
-
- pStr1++;
- pStr2++;
- }
- while ( c2 );
-
- return 0;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( compareIgnoreAsciiCase_WithLength )( const IMPL_RTL_STRCODE* pStr1,
- sal_Int32 nStr1Len,
- const IMPL_RTL_STRCODE* pStr2,
- sal_Int32 nStr2Len )
-{
- const IMPL_RTL_STRCODE* pStr1End = pStr1 + nStr1Len;
- const IMPL_RTL_STRCODE* pStr2End = pStr2 + nStr2Len;
- sal_Int32 nRet;
- sal_Int32 c1;
- sal_Int32 c2;
- while ( (pStr1 < pStr1End) && (pStr2 < pStr2End) )
- {
- /* If character between 'A' and 'Z', than convert it to lowercase */
- c1 = (sal_Int32)IMPL_RTL_USTRCODE( *pStr1 );
- c2 = (sal_Int32)IMPL_RTL_USTRCODE( *pStr2 );
- if ( (c1 >= 65) && (c1 <= 90) )
- c1 += 32;
- if ( (c2 >= 65) && (c2 <= 90) )
- c2 += 32;
- nRet = c1-c2;
- if ( nRet != 0 )
- return nRet;
-
- pStr1++;
- pStr2++;
- }
-
- return nStr1Len - nStr2Len;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( shortenedCompareIgnoreAsciiCase_WithLength )( const IMPL_RTL_STRCODE* pStr1,
- sal_Int32 nStr1Len,
- const IMPL_RTL_STRCODE* pStr2,
- sal_Int32 nStr2Len,
- sal_Int32 nShortenedLength )
-{
- const IMPL_RTL_STRCODE* pStr1End = pStr1 + nStr1Len;
- const IMPL_RTL_STRCODE* pStr2End = pStr2 + nStr2Len;
- sal_Int32 nRet;
- sal_Int32 c1;
- sal_Int32 c2;
- while ( (nShortenedLength > 0) &&
- (pStr1 < pStr1End) && (pStr2 < pStr2End) )
- {
- /* If character between 'A' and 'Z', than convert it to lowercase */
- c1 = (sal_Int32)IMPL_RTL_USTRCODE( *pStr1 );
- c2 = (sal_Int32)IMPL_RTL_USTRCODE( *pStr2 );
- if ( (c1 >= 65) && (c1 <= 90) )
- c1 += 32;
- if ( (c2 >= 65) && (c2 <= 90) )
- c2 += 32;
- nRet = c1-c2;
- if ( nRet != 0 )
- return nRet;
-
- nShortenedLength--;
- pStr1++;
- pStr2++;
- }
-
- if ( nShortenedLength <= 0 )
- return 0;
- return nStr1Len - nStr2Len;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( hashCode )( const IMPL_RTL_STRCODE* pStr )
-{
- return IMPL_RTL_STRNAME( hashCode_WithLength )( pStr, IMPL_RTL_STRNAME( getLength )( pStr ) );
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( hashCode_WithLength )( const IMPL_RTL_STRCODE* pStr,
- sal_Int32 nLen )
-{
- sal_Int32 h = nLen;
-
- if ( nLen < 256 )
- {
- while ( nLen > 0 )
- {
- h = (h*37) + IMPL_RTL_USTRCODE( *pStr );
- pStr++;
- nLen--;
- }
- }
- else
- {
- sal_Int32 nSkip;
- const IMPL_RTL_STRCODE* pEndStr = pStr+nLen-5;
-
- /* only sample some characters */
- /* the first 3, some characters between, and the last 5 */
- h = (h*39) + IMPL_RTL_USTRCODE( *pStr );
- pStr++;
- h = (h*39) + IMPL_RTL_USTRCODE( *pStr );
- pStr++;
- h = (h*39) + IMPL_RTL_USTRCODE( *pStr );
- pStr++;
-
- if ( nLen < 32 )
- nSkip = nLen / 4;
- else
- nSkip = nLen / 8;
- nLen -= 8;
- while ( nLen > 0 )
- {
- h = (h*39) + IMPL_RTL_USTRCODE( *pStr );
- pStr += nSkip;
- nLen -= nSkip;
- }
-
- h = (h*39) + IMPL_RTL_USTRCODE( *pEndStr );
- pEndStr++;
- h = (h*39) + IMPL_RTL_USTRCODE( *pEndStr );
- pEndStr++;
- h = (h*39) + IMPL_RTL_USTRCODE( *pEndStr );
- pEndStr++;
- h = (h*39) + IMPL_RTL_USTRCODE( *pEndStr );
- pEndStr++;
- h = (h*39) + IMPL_RTL_USTRCODE( *pEndStr );
- }
-
- return h;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( indexOfChar )( const IMPL_RTL_STRCODE* pStr,
- IMPL_RTL_STRCODE c )
-{
- const IMPL_RTL_STRCODE* pTempStr = pStr;
- while ( *pTempStr )
- {
- if ( *pTempStr == c )
- return pTempStr-pStr;
-
- pTempStr++;
- }
-
- return -1;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( indexOfChar_WithLength )( const IMPL_RTL_STRCODE* pStr,
- sal_Int32 nLen,
- IMPL_RTL_STRCODE c )
-{
- const IMPL_RTL_STRCODE* pTempStr = pStr;
- while ( nLen > 0 )
- {
- if ( *pTempStr == c )
- return pTempStr-pStr;
-
- pTempStr++;
- nLen--;
- }
-
- return -1;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( lastIndexOfChar )( const IMPL_RTL_STRCODE* pStr,
- IMPL_RTL_STRCODE c )
-{
- return IMPL_RTL_STRNAME( lastIndexOfChar_WithLength )( pStr, IMPL_RTL_STRNAME( getLength )( pStr ), c );
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( lastIndexOfChar_WithLength )( const IMPL_RTL_STRCODE* pStr,
- sal_Int32 nLen,
- IMPL_RTL_STRCODE c )
-{
- pStr += nLen;
- while ( nLen > 0 )
- {
- nLen--;
- pStr--;
-
- if ( *pStr == c )
- return nLen;
- }
-
- return -1;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( indexOfStr )( const IMPL_RTL_STRCODE* pStr,
- const IMPL_RTL_STRCODE* pSubStr )
-{
- return IMPL_RTL_STRNAME( indexOfStr_WithLength )( pStr, IMPL_RTL_STRNAME( getLength )( pStr ),
- pSubStr, IMPL_RTL_STRNAME( getLength )( pSubStr ) );
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( indexOfStr_WithLength )( const IMPL_RTL_STRCODE* pStr,
- sal_Int32 nStrLen,
- const IMPL_RTL_STRCODE* pSubStr,
- sal_Int32 nSubLen )
-{
- /* faster search for a single character */
- if ( nSubLen < 2 )
- {
- /* an empty SubString is always not foundable */
- if ( nSubLen == 1 )
- {
- IMPL_RTL_STRCODE c = *pSubStr;
- const IMPL_RTL_STRCODE* pTempStr = pStr;
- while ( nStrLen > 0 )
- {
- if ( *pTempStr == c )
- return pTempStr-pStr;
-
- pTempStr++;
- nStrLen--;
- }
- }
- }
- else
- {
- const IMPL_RTL_STRCODE* pTempStr = pStr;
- while ( nStrLen > 0 )
- {
- if ( *pTempStr == *pSubStr )
- {
- /* Compare SubString */
- if ( nSubLen <= nStrLen )
- {
- const IMPL_RTL_STRCODE* pTempStr1 = pTempStr;
- const IMPL_RTL_STRCODE* pTempStr2 = pSubStr;
- sal_Int32 nTempLen = nSubLen;
- while ( nTempLen )
- {
- if ( *pTempStr1 != *pTempStr2 )
- break;
-
- pTempStr1++;
- pTempStr2++;
- nTempLen--;
- }
-
- if ( !nTempLen )
- return pTempStr-pStr;
- }
- else
- break;
- }
-
- nStrLen--;
- pTempStr++;
- }
- }
-
- return -1;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( lastIndexOfStr )( const IMPL_RTL_STRCODE* pStr,
- const IMPL_RTL_STRCODE* pSubStr )
-{
- return IMPL_RTL_STRNAME( lastIndexOfStr_WithLength )( pStr, IMPL_RTL_STRNAME( getLength )( pStr ),
- pSubStr, IMPL_RTL_STRNAME( getLength )( pSubStr ) );
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( lastIndexOfStr_WithLength )( const IMPL_RTL_STRCODE* pStr,
- sal_Int32 nStrLen,
- const IMPL_RTL_STRCODE* pSubStr,
- sal_Int32 nSubLen )
-{
- /* faster search for a single character */
- if ( nSubLen < 2 )
- {
- /* an empty SubString is always not foundable */
- if ( nSubLen == 1 )
- {
- IMPL_RTL_STRCODE c = *pSubStr;
- pStr += nStrLen;
- while ( nStrLen > 0 )
- {
- nStrLen--;
- pStr--;
-
- if ( *pStr == c )
- return nStrLen;
- }
- }
- }
- else
- {
- pStr += nStrLen;
- nStrLen -= nSubLen;
- pStr -= nSubLen;
- while ( nStrLen >= 0 )
- {
- const IMPL_RTL_STRCODE* pTempStr1 = pStr;
- const IMPL_RTL_STRCODE* pTempStr2 = pSubStr;
- sal_Int32 nTempLen = nSubLen;
- while ( nTempLen )
- {
- if ( *pTempStr1 != *pTempStr2 )
- break;
-
- pTempStr1++;
- pTempStr2++;
- nTempLen--;
- }
-
- if ( !nTempLen )
- return nStrLen;
-
- nStrLen--;
- pStr--;
- }
- }
-
- return -1;
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL IMPL_RTL_STRNAME( replaceChar )( IMPL_RTL_STRCODE* pStr,
- IMPL_RTL_STRCODE cOld,
- IMPL_RTL_STRCODE cNew )
-{
- while ( *pStr )
- {
- if ( *pStr == cOld )
- *pStr = cNew;
-
- pStr++;
- }
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL IMPL_RTL_STRNAME( replaceChar_WithLength )( IMPL_RTL_STRCODE* pStr,
- sal_Int32 nLen,
- IMPL_RTL_STRCODE cOld,
- IMPL_RTL_STRCODE cNew )
-{
- while ( nLen > 0 )
- {
- if ( *pStr == cOld )
- *pStr = cNew;
-
- pStr++;
- nLen--;
- }
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL IMPL_RTL_STRNAME( toAsciiLowerCase )( IMPL_RTL_STRCODE* pStr )
-{
- while ( *pStr )
- {
- /* Between A-Z (65-90), than to lowercase (+32) */
- if ( (*pStr >= 65) && (*pStr <= 90) )
- *pStr += 32;
-
- pStr++;
- }
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL IMPL_RTL_STRNAME( toAsciiLowerCase_WithLength )( IMPL_RTL_STRCODE* pStr,
- sal_Int32 nLen )
-{
- while ( nLen > 0 )
- {
- /* Between A-Z (65-90), than to lowercase (+32) */
- if ( (*pStr >= 65) && (*pStr <= 90) )
- *pStr += 32;
-
- pStr++;
- nLen--;
- }
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL IMPL_RTL_STRNAME( toAsciiUpperCase )( IMPL_RTL_STRCODE* pStr )
-{
- while ( *pStr )
- {
- /* Between a-z (97-122), than to uppercase (-32) */
- if ( (*pStr >= 97) && (*pStr <= 122) )
- *pStr -= 32;
-
- pStr++;
- }
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL IMPL_RTL_STRNAME( toAsciiUpperCase_WithLength )( IMPL_RTL_STRCODE* pStr,
- sal_Int32 nLen )
-{
- while ( nLen > 0 )
- {
- /* Between a-z (97-122), than to uppercase (-32) */
- if ( (*pStr >= 97) && (*pStr <= 122) )
- *pStr -= 32;
-
- pStr++;
- nLen--;
- }
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( trim )( IMPL_RTL_STRCODE* pStr )
-{
- return IMPL_RTL_STRNAME( trim_WithLength )( pStr, IMPL_RTL_STRNAME( getLength )( pStr ) );
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( trim_WithLength )( IMPL_RTL_STRCODE* pStr, sal_Int32 nLen )
-{
- sal_Int32 nPreSpaces = 0;
- sal_Int32 nPostSpaces = 0;
- sal_Int32 nIndex = nLen-1;
-
- while ( (nPreSpaces < nLen) && rtl_ImplIsWhitespace( IMPL_RTL_USTRCODE(*(pStr+nPreSpaces)) ) )
- nPreSpaces++;
-
- while ( (nIndex > nPreSpaces) && rtl_ImplIsWhitespace( IMPL_RTL_USTRCODE(*(pStr+nIndex)) ) )
- {
- nPostSpaces++;
- nIndex--;
- }
-
- if ( nPostSpaces )
- {
- nLen -= nPostSpaces;
- *(pStr+nLen) = 0;
- }
-
- if ( nPreSpaces )
- {
- IMPL_RTL_STRCODE* pNewStr = pStr+nPreSpaces;
-
- nLen -= nPreSpaces;
- nIndex = nLen;
-
- while ( nIndex )
- {
- *pStr = *pNewStr;
- pStr++;
- pNewStr++;
- nIndex--;
- }
- *pStr = 0;
- }
-
- return nLen;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( valueOfBoolean )( IMPL_RTL_STRCODE* pStr, sal_Bool b )
-{
- if ( b )
- {
- *pStr = 't';
- pStr++;
- *pStr = 'r';
- pStr++;
- *pStr = 'u';
- pStr++;
- *pStr = 'e';
- pStr++;
- *pStr = 0;
- return 4;
- }
- else
- {
- *pStr = 'f';
- pStr++;
- *pStr = 'a';
- pStr++;
- *pStr = 'l';
- pStr++;
- *pStr = 's';
- pStr++;
- *pStr = 'e';
- pStr++;
- *pStr = 0;
- return 5;
- }
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( valueOfChar )( IMPL_RTL_STRCODE* pStr,
- IMPL_RTL_STRCODE c )
-{
- *pStr++ = c;
- *pStr = 0;
- return 1;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( valueOfInt32 )( IMPL_RTL_STRCODE* pStr,
- sal_Int32 n,
- sal_Int16 nRadix )
-{
- sal_Char aBuf[RTL_STR_MAX_VALUEOFINT32];
- sal_Char* pBuf = aBuf;
- sal_Int32 nLen = 0;
- sal_uInt32 nValue;
-
- /* Radix must be valid */
- if ( (nRadix < RTL_STR_MIN_RADIX) || (nRadix > RTL_STR_MAX_RADIX) )
- nRadix = 10;
-
- /* is value negativ */
- if ( n < 0 )
- {
- *pStr = '-';
- pStr++;
- nLen++;
- nValue = -n; /* FIXME this code is not portable for n == -2147483648
- (smallest negative value for sal_Int32) */
- }
- else
- nValue = n;
-
- /* create a recursive buffer with all values, except the last one */
- do
- {
- sal_Char nDigit = (sal_Char)(nValue % nRadix);
- nValue /= nRadix;
- if ( nDigit > 9 )
- *pBuf = (nDigit-10) + 'a';
- else
- *pBuf = (nDigit + '0' );
- pBuf++;
- }
- while ( nValue > 0 );
-
- /* copy the values in the right direction into the destination buffer */
- do
- {
- pBuf--;
- *pStr = *pBuf;
- pStr++;
- nLen++;
- }
- while ( pBuf != aBuf );
- *pStr = 0;
-
- return nLen;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( valueOfInt64 )( IMPL_RTL_STRCODE* pStr,
- sal_Int64 n,
- sal_Int16 nRadix )
-{
- sal_Char aBuf[RTL_STR_MAX_VALUEOFINT64];
- sal_Char* pBuf = aBuf;
- sal_Int32 nLen = 0;
- sal_uInt64 nValue;
-
- /* Radix must be valid */
- if ( (nRadix < RTL_STR_MIN_RADIX) || (nRadix > RTL_STR_MAX_RADIX) )
- nRadix = 10;
-
- /* is value negativ */
- if ( n < 0 )
- {
- *pStr = '-';
- pStr++;
- nLen++;
- nValue = -n; /* FIXME this code is not portable for
- n == -9223372036854775808 (smallest negative value for
- sal_Int64) */
- }
- else
- nValue = n;
-
- /* create a recursive buffer with all values, except the last one */
- do
- {
- sal_Char nDigit = (sal_Char)(nValue % nRadix);
- nValue /= nRadix;
- if ( nDigit > 9 )
- *pBuf = (nDigit-10) + 'a';
- else
- *pBuf = (nDigit + '0' );
- pBuf++;
- }
- while ( nValue > 0 );
-
- /* copy the values in the right direction into the destination buffer */
- do
- {
- pBuf--;
- *pStr = *pBuf;
- pStr++;
- nLen++;
- }
- while ( pBuf != aBuf );
- *pStr = 0;
-
- return nLen;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Bool SAL_CALL IMPL_RTL_STRNAME( toBoolean )( const IMPL_RTL_STRCODE* pStr )
-{
- if ( *pStr == '1' )
- return sal_True;
-
- if ( (*pStr == 'T') || (*pStr == 't') )
- {
- pStr++;
- if ( (*pStr == 'R') || (*pStr == 'r') )
- {
- pStr++;
- if ( (*pStr == 'U') || (*pStr == 'u') )
- {
- pStr++;
- if ( (*pStr == 'E') || (*pStr == 'e') )
- return sal_True;
- }
- }
- }
-
- return sal_False;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRNAME( toInt32 )( const IMPL_RTL_STRCODE* pStr,
- sal_Int16 nRadix )
-{
- sal_Bool bNeg;
- sal_Int16 nDigit;
- sal_Int32 n = 0;
-
- if ( (nRadix < RTL_STR_MIN_RADIX) || (nRadix > RTL_STR_MAX_RADIX) )
- nRadix = 10;
-
- /* Skip whitespaces */
- while ( *pStr && rtl_ImplIsWhitespace( IMPL_RTL_USTRCODE( *pStr ) ) )
- pStr++;
-
- if ( *pStr == '-' )
- {
- bNeg = sal_True;
- pStr++;
- }
- else
- {
- if ( *pStr == '+' )
- pStr++;
- bNeg = sal_False;
- }
-
- while ( *pStr )
- {
- nDigit = rtl_ImplGetDigit( IMPL_RTL_USTRCODE( *pStr ), nRadix );
- if ( nDigit < 0 )
- break;
-
- n *= nRadix;
- n += nDigit;
-
- pStr++;
- }
-
- if ( bNeg )
- return -n;
- else
- return n;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int64 SAL_CALL IMPL_RTL_STRNAME( toInt64 )( const IMPL_RTL_STRCODE* pStr,
- sal_Int16 nRadix )
-{
- sal_Bool bNeg;
- sal_Int16 nDigit;
- sal_Int64 n = 0;
-
- if ( (nRadix < RTL_STR_MIN_RADIX) || (nRadix > RTL_STR_MAX_RADIX) )
- nRadix = 10;
-
- /* Skip whitespaces */
- while ( *pStr && rtl_ImplIsWhitespace( IMPL_RTL_USTRCODE( *pStr ) ) )
- pStr++;
-
- if ( *pStr == '-' )
- {
- bNeg = sal_True;
- pStr++;
- }
- else
- {
- if ( *pStr == '+' )
- pStr++;
- bNeg = sal_False;
- }
-
- while ( *pStr )
- {
- nDigit = rtl_ImplGetDigit( IMPL_RTL_USTRCODE( *pStr ), nRadix );
- if ( nDigit < 0 )
- break;
-
- n *= nRadix;
- n += nDigit;
-
- pStr++;
- }
-
- if ( bNeg )
- return -n;
- else
- return n;
-}
-
-/* ======================================================================= */
-/* Internal String-Class help functions */
-/* ======================================================================= */
-
-static IMPL_RTL_STRINGDATA* IMPL_RTL_STRINGNAME( ImplAlloc )( sal_Int32 nLen )
-{
- IMPL_RTL_STRINGDATA * pData
- = (SAL_INT_CAST(sal_uInt32, nLen)
- <= ((SAL_MAX_UINT32 - sizeof (IMPL_RTL_STRINGDATA))
- / sizeof (IMPL_RTL_STRCODE)))
- ? (IMPL_RTL_STRINGDATA *) rtl_allocateMemory(
- sizeof (IMPL_RTL_STRINGDATA) + nLen * sizeof (IMPL_RTL_STRCODE))
- : NULL;
- if (pData != NULL) {
- pData->refCount = 1;
- pData->length = nLen;
- pData->buffer[nLen] = 0;
- }
- return pData;
-}
-
-/* ----------------------------------------------------------------------- */
-
-static IMPL_RTL_STRCODE* IMPL_RTL_STRINGNAME( ImplNewCopy )( IMPL_RTL_STRINGDATA** ppThis,
- IMPL_RTL_STRINGDATA* pStr,
- sal_Int32 nCount )
-{
- IMPL_RTL_STRCODE* pDest;
- const IMPL_RTL_STRCODE* pSrc;
- IMPL_RTL_STRINGDATA* pData = IMPL_RTL_STRINGNAME( ImplAlloc )( pStr->length );
- OSL_ASSERT(pData != NULL);
-
- pDest = pData->buffer;
- pSrc = pStr->buffer;
- while ( nCount > 0 )
- {
- *pDest = *pSrc;
- pDest++;
- pSrc++;
- nCount--;
- }
-
- *ppThis = pData;
- return pDest;
-}
-
-/* ======================================================================= */
-/* String-Class functions */
-/* ======================================================================= */
-
-#define IMPL_RTL_AQUIRE( pThis ) \
-{ \
- if (!SAL_STRING_IS_STATIC (pThis)) \
- osl_incrementInterlockedCount( &((pThis)->refCount) ); \
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL IMPL_RTL_STRINGNAME( acquire )( IMPL_RTL_STRINGDATA* pThis )
-{
- IMPL_RTL_AQUIRE( pThis );
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL IMPL_RTL_STRINGNAME( release )( IMPL_RTL_STRINGDATA* pThis )
-{
- if (SAL_STRING_IS_STATIC (pThis))
- return;
-
-/* OString doesn't have an 'intern' */
-#ifdef IMPL_RTL_INTERN
- if (SAL_STRING_IS_INTERN (pThis))
- {
- internRelease (pThis);
- return;
- }
-#endif
-
- if ( pThis->refCount == 1 ||
- !osl_decrementInterlockedCount( &(pThis->refCount) ) )
- {
- rtl_freeMemory( pThis );
- }
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL IMPL_RTL_STRINGNAME( new )( IMPL_RTL_STRINGDATA** ppThis )
-{
- if ( *ppThis)
- IMPL_RTL_STRINGNAME( release )( *ppThis );
-
- *ppThis = (IMPL_RTL_STRINGDATA*) (&IMPL_RTL_EMPTYSTRING);
- IMPL_RTL_AQUIRE( *ppThis );
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL IMPL_RTL_STRINGNAME( new_WithLength )( IMPL_RTL_STRINGDATA** ppThis, sal_Int32 nLen )
-{
- if ( nLen <= 0 )
- IMPL_RTL_STRINGNAME( new )( ppThis );
- else
- {
- if ( *ppThis)
- IMPL_RTL_STRINGNAME( release )( *ppThis );
-
- *ppThis = IMPL_RTL_STRINGNAME( ImplAlloc )( nLen );
- OSL_ASSERT(*ppThis != NULL);
- (*ppThis)->length = 0;
-
- {
- IMPL_RTL_STRCODE* pTempStr = (*ppThis)->buffer;
- while ( nLen >= 0 )
- {
- *pTempStr = 0;
- pTempStr++;
- nLen--;
- }
- }
- }
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL IMPL_RTL_STRINGNAME( newFromString )( IMPL_RTL_STRINGDATA** ppThis,
- const IMPL_RTL_STRINGDATA* pStr )
-{
- IMPL_RTL_STRINGDATA* pOrg;
-
- if ( !pStr->length )
- {
- IMPL_RTL_STRINGNAME( new )( ppThis );
- return;
- }
-
- pOrg = *ppThis;
- *ppThis = IMPL_RTL_STRINGNAME( ImplAlloc )( pStr->length );
- OSL_ASSERT(*ppThis != NULL);
- rtl_str_ImplCopy( (*ppThis)->buffer, pStr->buffer, pStr->length );
-
- /* must be done at least, if pStr == *ppThis */
- if ( pOrg )
- IMPL_RTL_STRINGNAME( release )( pOrg );
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL IMPL_RTL_STRINGNAME( newFromStr )( IMPL_RTL_STRINGDATA** ppThis,
- const IMPL_RTL_STRCODE* pCharStr )
-{
- IMPL_RTL_STRCODE* pBuffer;
- IMPL_RTL_STRINGDATA* pOrg;
- sal_Int32 nLen;
-
- if ( pCharStr )
- {
- const IMPL_RTL_STRCODE* pTempStr = pCharStr;
- while( *pTempStr )
- pTempStr++;
- nLen = pTempStr-pCharStr;
- }
- else
- nLen = 0;
-
- if ( !nLen )
- {
- IMPL_RTL_STRINGNAME( new )( ppThis );
- return;
- }
-
- pOrg = *ppThis;
- *ppThis = IMPL_RTL_STRINGNAME( ImplAlloc )( nLen );
- OSL_ASSERT(*ppThis != NULL);
- pBuffer = (*ppThis)->buffer;
- do
- {
- *pBuffer = *pCharStr;
- pBuffer++;
- pCharStr++;
- }
- while ( *pCharStr );
-
- /* must be done at least, if pCharStr == *ppThis */
- if ( pOrg )
- IMPL_RTL_STRINGNAME( release )( pOrg );
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL IMPL_RTL_STRINGNAME( newFromStr_WithLength )( IMPL_RTL_STRINGDATA** ppThis,
- const IMPL_RTL_STRCODE* pCharStr,
- sal_Int32 nLen )
-{
- IMPL_RTL_STRINGDATA* pOrg;
-
- if ( !pCharStr || (nLen <= 0) )
- {
- IMPL_RTL_STRINGNAME( new )( ppThis );
- return;
- }
-
- pOrg = *ppThis;
- *ppThis = IMPL_RTL_STRINGNAME( ImplAlloc )( nLen );
- OSL_ASSERT(*ppThis != NULL);
- rtl_str_ImplCopy( (*ppThis)->buffer, pCharStr, nLen );
-
- /* must be done at least, if pCharStr == *ppThis */
- if ( pOrg )
- IMPL_RTL_STRINGNAME( release )( pOrg );
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL IMPL_RTL_STRINGNAME( assign )( IMPL_RTL_STRINGDATA** ppThis,
- IMPL_RTL_STRINGDATA* pStr )
-{
- /* must be done at first, if pStr == *ppThis */
- IMPL_RTL_AQUIRE( pStr );
-
- if ( *ppThis )
- IMPL_RTL_STRINGNAME( release )( *ppThis );
-
- *ppThis = pStr;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRINGNAME( getLength )( const IMPL_RTL_STRINGDATA* pThis )
-{
- return pThis->length;
-}
-
-/* ----------------------------------------------------------------------- */
-
-IMPL_RTL_STRCODE* SAL_CALL IMPL_RTL_STRINGNAME( getStr )( IMPL_RTL_STRINGDATA * pThis )
-{
- return pThis->buffer;
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL IMPL_RTL_STRINGNAME( newConcat )( IMPL_RTL_STRINGDATA** ppThis,
- IMPL_RTL_STRINGDATA* pLeft,
- IMPL_RTL_STRINGDATA* pRight )
-{
- IMPL_RTL_STRINGDATA* pOrg = *ppThis;
-
- /* Test for 0-Pointer - if not, change newReplaceStrAt! */
- if ( !pRight || !pRight->length )
- {
- *ppThis = pLeft;
- IMPL_RTL_AQUIRE( pLeft );
- }
- else if ( !pLeft || !pLeft->length )
- {
- *ppThis = pRight;
- IMPL_RTL_AQUIRE( pRight );
- }
- else
- {
- IMPL_RTL_STRINGDATA* pTempStr = IMPL_RTL_STRINGNAME( ImplAlloc )( pLeft->length + pRight->length );
- OSL_ASSERT(pTempStr != NULL);
- rtl_str_ImplCopy( pTempStr->buffer, pLeft->buffer, pLeft->length );
- rtl_str_ImplCopy( pTempStr->buffer+pLeft->length, pRight->buffer, pRight->length );
- *ppThis = pTempStr;
- }
-
- /* must be done at least, if left or right == *ppThis */
- if ( pOrg )
- IMPL_RTL_STRINGNAME( release )( pOrg );
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL IMPL_RTL_STRINGNAME( newReplaceStrAt )( IMPL_RTL_STRINGDATA** ppThis,
- IMPL_RTL_STRINGDATA* pStr,
- sal_Int32 nIndex,
- sal_Int32 nCount,
- IMPL_RTL_STRINGDATA* pNewSubStr )
-{
- /* Append? */
- if ( nIndex >= pStr->length )
- {
- /* newConcat test, if pNewSubStr is 0 */
- IMPL_RTL_STRINGNAME( newConcat )( ppThis, pStr, pNewSubStr );
- return;
- }
-
- /* negativ index? */
- if ( nIndex < 0 )
- {
- nCount -= nIndex;
- nIndex = 0;
- }
-
- /* not more than the String length could be deleted */
- if ( nCount >= pStr->length-nIndex )
- {
- nCount = pStr->length-nIndex;
-
- /* Assign of NewSubStr? */
- if ( !nIndex && (nCount >= pStr->length) )
- {
- if ( !pNewSubStr )
- IMPL_RTL_STRINGNAME( new )( ppThis );
- else
- IMPL_RTL_STRINGNAME( assign )( ppThis, pNewSubStr );
- return;
- }
- }
-
- /* Assign of Str? */
- if ( !nCount && (!pNewSubStr || !pNewSubStr->length) )
- {
- IMPL_RTL_STRINGNAME( assign )( ppThis, pStr );
- return;
- }
-
- {
- IMPL_RTL_STRINGDATA* pOrg = *ppThis;
- IMPL_RTL_STRCODE* pBuffer;
- sal_Int32 nNewLen;
-
- /* Calculate length of the new string */
- nNewLen = pStr->length-nCount;
- if ( pNewSubStr )
- nNewLen += pNewSubStr->length;
-
- /* Alloc New Buffer */
- *ppThis = IMPL_RTL_STRINGNAME( ImplAlloc )( nNewLen );
- OSL_ASSERT(*ppThis != NULL);
- pBuffer = (*ppThis)->buffer;
- if ( nIndex )
- {
- rtl_str_ImplCopy( pBuffer, pStr->buffer, nIndex );
- pBuffer += nIndex;
- }
- if ( pNewSubStr && pNewSubStr->length )
- {
- rtl_str_ImplCopy( pBuffer, pNewSubStr->buffer, pNewSubStr->length );
- pBuffer += pNewSubStr->length;
- }
- rtl_str_ImplCopy( pBuffer, pStr->buffer+nIndex+nCount, pStr->length-nIndex-nCount );
-
- /* must be done at least, if pStr or pNewSubStr == *ppThis */
- if ( pOrg )
- IMPL_RTL_STRINGNAME( release )( pOrg );
- }
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL IMPL_RTL_STRINGNAME( newReplace )( IMPL_RTL_STRINGDATA** ppThis,
- IMPL_RTL_STRINGDATA* pStr,
- IMPL_RTL_STRCODE cOld,
- IMPL_RTL_STRCODE cNew )
-{
- IMPL_RTL_STRINGDATA* pOrg = *ppThis;
- int bChanged = 0;
- sal_Int32 nLen = pStr->length;
- const IMPL_RTL_STRCODE* pCharStr = pStr->buffer;
-
- while ( nLen > 0 )
- {
- if ( *pCharStr == cOld )
- {
- /* Copy String */
- IMPL_RTL_STRCODE* pNewCharStr = IMPL_RTL_STRINGNAME( ImplNewCopy )( ppThis, pStr, pCharStr-pStr->buffer );
-
- /* replace/copy rest of the string */
- if ( pNewCharStr )
- {
- *pNewCharStr = cNew;
- pNewCharStr++;
- pCharStr++;
- nLen--;
-
- while ( nLen > 0 )
- {
- if ( *pCharStr == cOld )
- *pNewCharStr = cNew;
- else
- *pNewCharStr = *pCharStr;
-
- pNewCharStr++;
- pCharStr++;
- nLen--;
- }
- }
-
- bChanged = 1;
- break;
- }
-
- pCharStr++;
- nLen--;
- }
-
- if ( !bChanged )
- {
- *ppThis = pStr;
- IMPL_RTL_AQUIRE( pStr );
- }
-
- /* must be done at least, if pStr == *ppThis */
- if ( pOrg )
- IMPL_RTL_STRINGNAME( release )( pOrg );
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL IMPL_RTL_STRINGNAME( newToAsciiLowerCase )( IMPL_RTL_STRINGDATA** ppThis,
- IMPL_RTL_STRINGDATA* pStr )
-{
- IMPL_RTL_STRINGDATA* pOrg = *ppThis;
- int bChanged = 0;
- sal_Int32 nLen = pStr->length;
- const IMPL_RTL_STRCODE* pCharStr = pStr->buffer;
-
- while ( nLen > 0 )
- {
- /* Between A-Z (65-90), than to lowercase (+32) */
- if ( (*pCharStr >= 65) && (*pCharStr <= 90) )
- {
- /* Copy String */
- IMPL_RTL_STRCODE* pNewCharStr = IMPL_RTL_STRINGNAME( ImplNewCopy )( ppThis, pStr, pCharStr-pStr->buffer );
-
- /* replace/copy rest of the string */
- if ( pNewCharStr )
- {
- /* to lowercase (+32) */
- *pNewCharStr = *pCharStr+32;
- pNewCharStr++;
- pCharStr++;
- nLen--;
-
- while ( nLen > 0 )
- {
- /* Between A-Z (65-90), than to lowercase (+32) */
- if ( (*pCharStr >= 65) && (*pCharStr <= 90) )
- *pNewCharStr = *pCharStr+32;
- else
- *pNewCharStr = *pCharStr;
-
- pNewCharStr++;
- pCharStr++;
- nLen--;
- }
- }
-
- bChanged = 1;
- break;
- }
-
- pCharStr++;
- nLen--;
- }
-
- if ( !bChanged )
- {
- *ppThis = pStr;
- IMPL_RTL_AQUIRE( pStr );
- }
-
- /* must be done at least, if pStr == *ppThis */
- if ( pOrg )
- IMPL_RTL_STRINGNAME( release )( pOrg );
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL IMPL_RTL_STRINGNAME( newToAsciiUpperCase )( IMPL_RTL_STRINGDATA** ppThis,
- IMPL_RTL_STRINGDATA* pStr )
-{
- IMPL_RTL_STRINGDATA* pOrg = *ppThis;
- int bChanged = 0;
- sal_Int32 nLen = pStr->length;
- const IMPL_RTL_STRCODE* pCharStr = pStr->buffer;
-
- while ( nLen > 0 )
- {
- /* Between a-z (97-122), than to uppercase (-32) */
- if ( (*pCharStr >= 97) && (*pCharStr <= 122) )
- {
- /* Copy String */
- IMPL_RTL_STRCODE* pNewCharStr = IMPL_RTL_STRINGNAME( ImplNewCopy )( ppThis, pStr, pCharStr-pStr->buffer );
-
- /* replace/copy rest of the string */
- if ( pNewCharStr )
- {
- /* to uppercase (-32) */
- *pNewCharStr = *pCharStr-32;
- pNewCharStr++;
- pCharStr++;
- nLen--;
-
- while ( nLen > 0 )
- {
- /* Between a-z (97-122), than to uppercase (-32) */
- if ( (*pCharStr >= 97) && (*pCharStr <= 122) )
- *pNewCharStr = *pCharStr-32;
- else
- *pNewCharStr = *pCharStr;
-
- pNewCharStr++;
- pCharStr++;
- nLen--;
- }
- }
-
- bChanged = 1;
- break;
- }
-
- pCharStr++;
- nLen--;
- }
-
- if ( !bChanged )
- {
- *ppThis = pStr;
- IMPL_RTL_AQUIRE( pStr );
- }
-
- /* must be done at least, if pStr == *ppThis */
- if ( pOrg )
- IMPL_RTL_STRINGNAME( release )( pOrg );
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL IMPL_RTL_STRINGNAME( newTrim )( IMPL_RTL_STRINGDATA** ppThis,
- IMPL_RTL_STRINGDATA* pStr )
-{
- IMPL_RTL_STRINGDATA* pOrg = *ppThis;
- const IMPL_RTL_STRCODE* pCharStr = pStr->buffer;
- sal_Int32 nPreSpaces = 0;
- sal_Int32 nPostSpaces = 0;
- sal_Int32 nLen = pStr->length;
- sal_Int32 nIndex = nLen-1;
-
- while ( (nPreSpaces < nLen) && rtl_ImplIsWhitespace( IMPL_RTL_USTRCODE(*(pCharStr+nPreSpaces)) ) )
- nPreSpaces++;
-
- while ( (nIndex > nPreSpaces) && rtl_ImplIsWhitespace( IMPL_RTL_USTRCODE(*(pCharStr+nIndex)) ) )
- {
- nPostSpaces++;
- nIndex--;
- }
-
- if ( !nPreSpaces && !nPostSpaces )
- {
- *ppThis = pStr;
- IMPL_RTL_AQUIRE( pStr );
- }
- else
- {
- nLen -= nPostSpaces+nPreSpaces;
- *ppThis = IMPL_RTL_STRINGNAME( ImplAlloc )( nLen );
- OSL_ASSERT(*ppThis != NULL);
- if ( *ppThis )
- rtl_str_ImplCopy( (*ppThis)->buffer, pStr->buffer+nPreSpaces, nLen );
- }
-
- /* must be done at least, if pStr == *ppThis */
- if ( pOrg )
- IMPL_RTL_STRINGNAME( release )( pOrg );
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL IMPL_RTL_STRINGNAME( getToken )( IMPL_RTL_STRINGDATA** ppThis,
- IMPL_RTL_STRINGDATA* pStr,
- sal_Int32 nToken,
- IMPL_RTL_STRCODE cTok,
- sal_Int32 nIndex )
-{
- const IMPL_RTL_STRCODE* pCharStr = pStr->buffer;
- const IMPL_RTL_STRCODE* pCharStrStart;
- const IMPL_RTL_STRCODE* pOrgCharStr;
- sal_Int32 nLen = pStr->length-nIndex;
- sal_Int32 nTokCount = 0;
-
- // Set ppThis to an empty string and return -1 if either nToken or nIndex is
- // negative:
- if (nIndex < 0) {
- nToken = -1;
- }
-
- pCharStr += nIndex;
- pOrgCharStr = pCharStr;
- pCharStrStart = pCharStr;
- while ( nLen > 0 )
- {
- if ( *pCharStr == cTok )
- {
- nTokCount++;
-
- if ( nTokCount == nToken )
- pCharStrStart = pCharStr+1;
- else
- {
- if ( nTokCount > nToken )
- break;
- }
- }
-
- pCharStr++;
- nLen--;
- }
-
- if ( (nToken < 0) || (nTokCount < nToken) || (pCharStr == pCharStrStart) )
- {
- IMPL_RTL_STRINGNAME( new )( ppThis );
- if( (nToken < 0) || (nTokCount < nToken ) )
- return -1;
- else if( nLen > 0 )
- return nIndex+(pCharStr-pOrgCharStr)+1;
- else return -1;
- }
- else
- {
- IMPL_RTL_STRINGNAME( newFromStr_WithLength )( ppThis, pCharStrStart, pCharStr-pCharStrStart );
- if ( nLen )
- return nIndex+(pCharStr-pOrgCharStr)+1;
- else
- return -1;
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/surrogates.h b/sal/rtl/source/surrogates.h
deleted file mode 100644
index 3defb843c..000000000
--- a/sal/rtl/source/surrogates.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_SAL_RTL_SOURCE_SURROGATES_H
-#define INCLUDED_SAL_RTL_SOURCE_SURROGATES_H
-
-#include "sal/config.h"
-
-#define SAL_RTL_FIRST_HIGH_SURROGATE 0xD800
-#define SAL_RTL_LAST_HIGH_SURROGATE 0xDBFF
-#define SAL_RTL_FIRST_LOW_SURROGATE 0xDC00
-#define SAL_RTL_LAST_LOW_SURROGATE 0xDFFF
-
-#define SAL_RTL_IS_HIGH_SURROGATE(utf16) \
- ((utf16) >= SAL_RTL_FIRST_HIGH_SURROGATE && \
- (utf16) <= SAL_RTL_LAST_HIGH_SURROGATE)
-
-#define SAL_RTL_IS_LOW_SURROGATE(utf16) \
- ((utf16) >= SAL_RTL_FIRST_LOW_SURROGATE && \
- (utf16) <= SAL_RTL_LAST_LOW_SURROGATE)
-
-#define SAL_RTL_COMBINE_SURROGATES(high, low) \
- ((((high) - SAL_RTL_FIRST_HIGH_SURROGATE) << 10) + \
- ((low) - SAL_RTL_FIRST_LOW_SURROGATE) + 0x10000)
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/tres.c b/sal/rtl/source/tres.c
deleted file mode 100644
index 2041a00ef..000000000
--- a/sal/rtl/source/tres.c
+++ /dev/null
@@ -1,688 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <stdio.h>
-#include <rtl/tres.h>
-#include <osl/diagnose.h>
-#include <osl/time.h>
-
- /* force an assertion on false state */
-#define TST_BOOM(c, m) OSL_ENSURE(c, m)
-
-
-typedef struct _rtl_CmpState
-{
- struct _rtl_CmpState* m_next;
- struct _rtl_CmpState* m_prev;
-
- sal_Bool m_stat;
- rtl_String* m_msg;
-
-} rtl_CmpState;
-
-typedef struct _rtl_FuncState
-{
- struct _rtl_FuncState* m_next;
- struct _rtl_FuncState* m_prev;
- rtl_String* m_name;
- sal_uInt32 m_flags;
- sal_uInt32 m_start;
- sal_uInt32 m_stop;
- struct _rtl_CmpState* m_cmp;
-
-} rtl_FuncState;
-
-
-
-typedef struct _rtl_TestResult_Data
-{
- rtl_TestResult_vtable* m_funcs;
- void* m_externaldata;
-
- rtl_FuncState* m_state;
-
-} rtl_TestResult_Data;
-
-
- /**
- * internal helper functions
- */
-
- /* ...to create, link, unlink and destroy allocated memory */
-rtl_FuncState* SAL_CALL rtl_tres_create_funcstate( const sal_Char* meth );
-rtl_FuncState* SAL_CALL rtl_tres_link_funcstate( rtl_FuncState* ptr,
- rtl_FuncState* plink );
-rtl_FuncState* SAL_CALL rtl_tres_unlink_funcstate( rtl_FuncState* plink );
-rtl_CmpState* SAL_CALL rtl_tres_create_cmpstate(
- sal_Bool state,
- const sal_Char* msg
- );
-rtl_CmpState* SAL_CALL rtl_tres_link_cmpstate( rtl_CmpState* ptr,
- rtl_CmpState* plink );
-rtl_CmpState* SAL_CALL rtl_tres_unlink_cmpstate( rtl_CmpState* plink );
-sal_uInt32 SAL_CALL rtl_tres_timer();
-void SAL_CALL rtl_tres_destroy_funcstate( rtl_FuncState* pState_ );
-void SAL_CALL rtl_tres_destroy_funcstates( rtl_FuncState* pState_ );
-void SAL_CALL rtl_tres_destroy_cmpstates( rtl_CmpState* pState_ );
-void SAL_CALL rtl_tres_destroy_cmpstate( rtl_CmpState* pState_ );
-
-
- /* set and clear single bits */
-static void SAL_CALL rtl_tres_setbit( rtl_FuncState* pState_,
- sal_uInt32 flag );
-static void SAL_CALL rtl_tres_clearbit( rtl_FuncState* pState_,
- sal_uInt32 flag );
-
- /**
- * forward declarations of concrete function implementations overloadable
- * and accessible via vtable
- */
-static sal_Bool SAL_CALL rtl_tres_state(
- rtl_TestResult* pThis_,
- sal_Bool state,
- const sal_Char* msg,
- const sal_Char* sub,
- sal_Bool v
- );
-
-static void SAL_CALL rtl_tres_end( rtl_TestResult* pThis_,
- const sal_Char* msg );
-
-static rtl_funcstate SAL_CALL rtl_tres_funcstate( rtl_TestResult* pThis_ );
-
-static sal_Bool SAL_CALL rtl_tres_ispassed( rtl_TestResult* pThis_ );
-static sal_Bool SAL_CALL rtl_tres_isok( rtl_TestResult* pThis_ );
-
-static sal_Bool SAL_CALL rtl_tres_isbit( rtl_TestResult* pThis_,
- sal_uInt32 flag );
-
-static rtl_funcstate SAL_CALL rtl_tres_getnextfuncstate( rtl_funcstate );
-static rtl_funcstate SAL_CALL rtl_tres_getprevfuncstate( rtl_funcstate );
-static sal_uInt32 SAL_CALL rtl_tres_getflags( rtl_funcstate );
-sal_uInt32 SAL_CALL rtl_tres_getstarttime( rtl_funcstate );
-sal_uInt32 SAL_CALL rtl_tres_getstoptime( rtl_funcstate );
-static rtl_cmpstate SAL_CALL rtl_tres_getcmpstate( rtl_funcstate );
-
-static sal_Bool SAL_CALL rtl_tres_getstat( rtl_cmpstate );
-rtl_String* SAL_CALL rtl_tres_getname( rtl_funcstate );
-rtl_String* SAL_CALL rtl_tres_getmsg( rtl_cmpstate );
-static rtl_cmpstate SAL_CALL rtl_tres_getnextcmpstate( rtl_cmpstate );
-
-
- /**
- * initialize vtable with function pointers
- */
-static rtl_TestResult_vtable trVTable =
-{
- sizeof(rtl_TestResult_vtable),
- rtl_tres_state,
- rtl_tres_end,
- rtl_tres_ispassed,
- rtl_tres_isok,
- rtl_tres_funcstate,
- rtl_tres_isbit,
- rtl_tres_getnextfuncstate,
- rtl_tres_getprevfuncstate,
- rtl_tres_getflags,
- rtl_tres_getname,
- rtl_tres_getstarttime,
- rtl_tres_getstoptime,
- rtl_tres_getcmpstate,
- rtl_tres_getstat,
- rtl_tres_getmsg,
- rtl_tres_getnextcmpstate
-};
-
- /**
- * rtl_tres_create
- * create and initialize data struct for TestResult
- *
- * @param const sal_Char* meth = name of the method (entryname)
- * @param sal_uInt32 flags = bitmap of comandline and status flags
- *
- * @return rtl_TestResult* = pointer to a new allocated testresult struct
- */
-rtl_TestResult* rtl_tres_create( const sal_Char* meth, sal_uInt32 flags )
-{
- /* allocate memory for testresult data structure */
- rtl_TestResult_Data* pData = (rtl_TestResult_Data*) malloc( sizeof(
- rtl_TestResult_Data ) );
- /* initialize members... */
- pData->m_funcs = &trVTable; /* ...vtableptr to vtbladr */
- pData->m_externaldata = 0; /* ...external data pointer */
-
- /* allocate memory for state structure and initialize members */
- pData->m_state = rtl_tres_create_funcstate( meth );
- pData->m_state->m_flags = flags; /* ...option Bitmap */
-
- /* set OK flag initial */
- rtl_tres_setbit( pData->m_state, rtl_tres_Flag_OK );
-
- return (rtl_TestResult*)pData ;
-}
-
-/**
- * rtl_tres_create_funcstate
- * allocates and initializes a structure to represent the status of a test
- * entry or its substates
- *
- * @param const sal_Char* meth = the name of the method (entry or sub entry)
- *
- * @return rtl_FuncState* = pointer to a new allocated funcstate struct
- */
-rtl_FuncState* SAL_CALL rtl_tres_create_funcstate( const sal_Char* meth )
-{
- rtl_FuncState* pStat = 0; /* status structure */
-
- /* allocate memory for status structure */
- pStat = (rtl_FuncState*) malloc( sizeof( struct _rtl_FuncState ) );
-
- if ( pStat )
- {
- pStat->m_next = pStat; /* init ptr to next struct */
- pStat->m_prev = pStat; /* init ptr to prev struct */
-
- pStat->m_name = 0; /* init name */
- pStat->m_flags = 0; /* init flags */
- pStat->m_start = rtl_tres_timer(); /* init start milliseconds */
- pStat->m_stop = 0; /* init stop milliseconds */
- pStat->m_cmp = 0; /* init ptr to msg struct */
- rtl_string_newFromStr( &pStat->m_name, meth );/* copy meth to name */
-
- /* set ok flag initially */
- rtl_tres_setbit(pStat, rtl_tres_Flag_OK);
- }
-
- return ( pStat );
-}
- /**
- * rtl_tres_link_funcstate
- * link initialized funcstate structure to a circular double linked list
- *
- * @param rtl_FuncState* ptr = pointer to a funcstate where to link in new
- * @param rtl_FuncState* plink = pointer to a funcstate to link in list
- *
- * @return rtl_FuncState* = pointer to structure linked in new
- */
-rtl_FuncState* SAL_CALL rtl_tres_link_funcstate( rtl_FuncState* ptr,
- rtl_FuncState* plink )
-{
- ptr->m_next->m_prev = plink;
- ptr->m_next->m_prev->m_next = ptr->m_next;
- ptr->m_next->m_prev->m_prev = ptr;
- ptr->m_next = plink;
- return ( plink );
-}
-
- /**
- * rtl_tres_unlink_funcstate
- * unlink funcstate structure from a circular double linked list
- *
- * @param rtl_FuncState* plink = pointer to a funcstate to unlink from list
- *
- * @return rtl_FuncState* = pointer to funcstate struct unlinked from
- * list
- */
-rtl_FuncState* SAL_CALL rtl_tres_unlink_funcstate( rtl_FuncState* plink )
-{
- plink->m_next->m_prev = plink->m_prev;
- plink->m_prev->m_next = plink->m_next;
- plink->m_next = plink;
- plink->m_prev = plink;
- return ( plink );
-}
-
- /**
- * rtl_tres_link_cmpstate
- * link initialized cmpstate structure to a circular double linked list
- *
- * @param rtl_CmpState* ptr = pointer to a cmpstate where to link in new
- * @param rtl_CmpState* plink = pointer to a cmpstate to link in list
- *
- * @return rtl_CmpState* = pointer to cmpstate struct linked in new
- */
-rtl_CmpState* SAL_CALL rtl_tres_link_cmpstate( rtl_CmpState* ptr,
- rtl_CmpState* plink )
-{
- ptr->m_next->m_prev = plink;
- ptr->m_next->m_prev->m_next = ptr->m_next;
- ptr->m_next->m_prev->m_prev = ptr;
- ptr->m_next = plink;
- return ( plink );
-}
- /**
- * rtl_tres_unlink_cmpstate
- * unlink cmpstate structure from a circular double linked list
- *
- * @param rtl_CmpState* plink = pointer to a cmpstate to unlink from list
- *
- * @return rtl_CmpState* = pointer to cmpstate struct unlinked from list
- */
-rtl_CmpState* SAL_CALL rtl_tres_unlink_cmpstate( rtl_CmpState* plink )
-{
- plink->m_next->m_prev = plink->m_prev;
- plink->m_prev->m_next = plink->m_next;
- plink->m_next = plink;
- plink->m_prev = plink;
- return ( plink );
-}
-
- /**
- * rtl_tres_create_cmpstate
- * allocates and initializes a structure to represent the status of a test
- * comparison
- *
- * @param sal_Bool state = compare state
- * @param sal_Char* msg = message for logging and debug purposes
- *
- * @return rtl_CmpState* = pointer to the new allocated struct
- */
-rtl_CmpState* SAL_CALL rtl_tres_create_cmpstate(
- sal_Bool state,
- const sal_Char* msg
- )
-{
- /* allocate memory for cmpstate struct */
- rtl_CmpState* pStat = (rtl_CmpState*) malloc( sizeof( rtl_CmpState ) );
-
- /* initialize if memory could be allocated */
- if ( pStat )
- {
- pStat->m_next = pStat; /* init next with this */
- pStat->m_prev = pStat; /* init prev with this */
- pStat->m_msg = 0;
- pStat->m_stat = state; /* boolean state */
- rtl_string_newFromStr( &pStat->m_msg, msg ); /* copy message */
- }
- return ( pStat );
-}
-
- /**
- * rtl_tres_destroy
- * free allocated memory of testresult data struct
- *
- * @param rtl_TestResult* pThis_ = ponter to a valid testresult struct
- */
-void SAL_CALL rtl_tres_destroy( rtl_TestResult* pThis_ )
-{
- /* cast to implementation representation structure */
- rtl_TestResult_Data* pData = (rtl_TestResult_Data*) pThis_;
-
- /* destroy all funcstates */
- if ( pData->m_state )
- rtl_tres_destroy_funcstates( pData->m_state );
-
- /* free allocted memory and reinitialize to zero */
- /* to be able to prevent dangling pointer access*/
- free( pData ); pData = 0;
-}
-
- /**
- * rtl_tres_destroy_funcstates
- * free allocated memory occupied by the list of funcstate data structs
- * (iterates through next pointers)
- *
- * @param rtl_FuncState* pState_ = pointer to a valid funcstate struct
- */
-void SAL_CALL rtl_tres_destroy_funcstates( rtl_FuncState* pState_ )
-{
- rtl_FuncState* plink = pState_->m_next;
- while ( plink != plink->m_next )
- {
- rtl_tres_destroy_funcstate( rtl_tres_unlink_funcstate( plink ) );
- plink = pState_->m_next;
- }
- rtl_tres_destroy_funcstate( plink );
-}
-
- /**
- * rtl_tres_destroy_cmpstates
- * free allocated memory occupied by the list of cmpstate data structs
- * (iterates through next pointers)
- *
- * @param rtl_CmpState* pState_ = pointer to a valid cmpstate struct
- */
-void SAL_CALL rtl_tres_destroy_cmpstates( rtl_CmpState* pState_ )
-{
- rtl_CmpState* plink = pState_->m_next;
- while ( plink != plink->m_next )
- {
- rtl_tres_destroy_cmpstate( rtl_tres_unlink_cmpstate( plink ) );
- plink = pState_->m_next;
- }
- rtl_tres_destroy_cmpstate( plink );
-}
-
-
- /**
- * rtl_tres_destroy_funcstate
- * free allocated memory occupied by one funcstate and it's list
- * of cmpstate data structs
- *
- * @param rtl_FuncState* pState_ = pointer to a valid funcstate struct
- */
-void SAL_CALL rtl_tres_destroy_funcstate( rtl_FuncState* pState_ )
-{
- rtl_FuncState* plink = pState_;
-
- if ( plink->m_cmp )
- rtl_tres_destroy_cmpstates( plink->m_cmp );
-
- if ( plink->m_name )
- {
- rtl_string_release( plink->m_name );
- plink->m_name = 0;
- }
- plink->m_flags = 0;
- free( plink );
- plink = 0;
-}
-
- /**
- * rtl_tres_destroy_cmpstate
- * free allocated memory of a cmpstate data struct
- *
- * @param rtl_CmpState* pState_ = pointer to cmpstate struct to destroy
- */
-void SAL_CALL rtl_tres_destroy_cmpstate( rtl_CmpState* pState_ )
-{
-
- rtl_CmpState* plink = pState_;
-
- if ( plink->m_msg )
- {
- rtl_string_release( plink->m_msg );
- plink->m_msg = 0;
- }
- free( plink );
- plink = 0;
-}
- /**
- * central function to call in tests
- *
- * @param rtl_TestResult* pThis_ = self pointer to TestResult structure
- * @param sal_Bool state = boolean result of statement comparison
- * @param const sal_Char* msg = message for actual statementcomparison
- * @param const sal_Char* sub = name of sub testfunction
- * @param sal_Bool v = boolean verbose parameter
- *
- * @return sal_Bool = determines if statement comparison
- * was positive or not
- */
-static sal_Bool SAL_CALL rtl_tres_state(
- rtl_TestResult* pThis_,
- sal_Bool state,
- const sal_Char* msg,
- const sal_Char* sub,
- sal_Bool v
- )
-{
-
- /* cast pointer to testresult data implementation struct*/
- rtl_TestResult_Data* pData = (rtl_TestResult_Data*)pThis_;
-
- /* initialize funcstate pointer with masterstate */
- rtl_FuncState* pFunc = pData->m_state;
-
- /* if substate required */
- if ( sub )
- {
- /* link new created function state to last item */
- pFunc = rtl_tres_link_funcstate( pFunc->m_prev,
- rtl_tres_create_funcstate( sub ) );
-
- /* indicate this state as substate */
- rtl_tres_setbit( pFunc, rtl_tres_Flag_SUB );
-
- /* indicate prvious state as passed if no masterstate */
- if ( pFunc->m_prev != pData->m_state )
- rtl_tres_setbit( pFunc->m_prev, rtl_tres_Flag_PASSED );
- }
-
-
- /* test failed */
- if( ! state )
- {
- /* determine if assertion should be thrown */
- if ( rtl_tres_isbit( pThis_, rtl_tres_Flag_BOOM ) )
- {
- /* if message available */
- if ( msg )
- TST_BOOM( state, msg );
- else
- TST_BOOM( state, "no msg available" );
- }
-
- /* clear this state ok flag and masterstate ok flag */
- rtl_tres_clearbit( pFunc, rtl_tres_Flag_OK );
- rtl_tres_clearbit( pData->m_state, rtl_tres_Flag_OK );
- }
- /* message available */
- if( msg )
- {
- /* append a new comparison state */
- if (! pFunc->m_cmp )
- pFunc->m_cmp = rtl_tres_create_cmpstate( state, msg );
- else
- rtl_tres_link_cmpstate( pFunc->m_cmp,
- rtl_tres_create_cmpstate(state, msg ) );
-
- /* message to stderr required ? */
- if ( v || ( pFunc->m_next->m_flags & rtl_tres_Flag_VERBOSE ) )
- fprintf( stderr, "%s\n", msg );
- }
-
- pFunc->m_stop = rtl_tres_timer();
- return ( state );
-}
-
- /**
- * rtl_tres_timer
- * function to get actual timevalue
- * this has to be replaced by a high resolution timer
- */
-sal_uInt32 SAL_CALL rtl_tres_timer()
-{
- sal_uInt32 val = 0;
- TimeValue* tmv = (TimeValue*)malloc( sizeof( TimeValue ) );
- osl_getSystemTime( tmv );
- val = tmv->Nanosec/1000L;
- free( tmv );
- return ( val );
-}
-
-
-static void SAL_CALL rtl_tres_end( rtl_TestResult* pThis_,
- const sal_Char* msg )
-{
- rtl_TestResult_Data* pData = (rtl_TestResult_Data*) pThis_;
-
- if( msg )
- {
- if (! pData->m_state->m_cmp )
- pData->m_state->m_cmp = rtl_tres_create_cmpstate( sal_True, msg );
- else
- rtl_tres_link_cmpstate( pData->m_state->m_cmp,
- rtl_tres_create_cmpstate( sal_True, msg ) );
- }
- pData->m_state->m_prev->m_flags |= rtl_tres_Flag_PASSED;
- pData->m_state->m_flags |= rtl_tres_Flag_PASSED;
- pData->m_state->m_stop = rtl_tres_timer();
-}
-
-
-static sal_Bool SAL_CALL rtl_tres_ispassed( rtl_TestResult* pThis_ )
-{
- return rtl_tres_isbit( pThis_, rtl_tres_Flag_PASSED );
-}
-
-static sal_Bool SAL_CALL rtl_tres_isok( rtl_TestResult* pThis_ )
-{
- return rtl_tres_isbit( pThis_, rtl_tres_Flag_OK );
-}
- /**
- * return pointer to funcstate structure
- */
-static rtl_funcstate SAL_CALL rtl_tres_funcstate( rtl_TestResult* pThis_ )
-{
-
- rtl_TestResult_Data* pThis = (rtl_TestResult_Data*) pThis_;
- return (rtl_funcstate)pThis->m_state;
-}
-
- /**
- * determine if a flag is set or not
- */
-static sal_Bool SAL_CALL rtl_tres_isbit( rtl_TestResult* pThis_,
- sal_uInt32 flag )
-{
- return (sal_Bool)
- ((((rtl_TestResult_Data *) pThis_)->m_state->m_flags & flag) == flag);
-}
- /**
- * set one single bit
- */
-static void SAL_CALL rtl_tres_setbit( rtl_FuncState* pState_,
- sal_uInt32 flag )
-{
- pState_->m_flags |= flag;
-}
- /**
- * clear one single bit
- */
-static void SAL_CALL rtl_tres_clearbit( rtl_FuncState* pState_,
- sal_uInt32 flag )
-{
- pState_->m_flags = pState_->m_flags & ( ~flag );
-}
-
- /**
- * returns next pointer of passed funcstate structure
- */
-rtl_funcstate SAL_CALL rtl_tres_getnextfuncstate( rtl_funcstate fstate )
-{
- rtl_FuncState* fs = (rtl_FuncState*)fstate;
- return( (rtl_funcstate)fs->m_next );
-
-}
- /**
- * returns previous pointer of passed funcstate structure
- */
-rtl_funcstate SAL_CALL rtl_tres_getprevfuncstate( rtl_funcstate fstate )
-{
- rtl_FuncState* fs = (rtl_FuncState*)fstate;
- return( (rtl_funcstate)fs->m_prev );
-
-}
- /**
- * returns flag value of passed funcstate structure
- */
-sal_uInt32 SAL_CALL rtl_tres_getflags( rtl_funcstate fstate )
-{
- rtl_FuncState* fs = (rtl_FuncState*)fstate;
- return( fs->m_flags );
-}
- /**
- * returns name of passed funcstate structure
- */
-rtl_String* SAL_CALL rtl_tres_getname( rtl_funcstate fstate )
-{
- rtl_FuncState* fs = (rtl_FuncState*)fstate;
- return( fs->m_name );
-}
- /**
- * returns starttime of passed funcstate structure
- */
-sal_uInt32 SAL_CALL rtl_tres_getstarttime( rtl_funcstate fstate )
-{
- rtl_FuncState* fs = (rtl_FuncState*)fstate;
- return( fs->m_start );
-}
-
- /**
- * returns stoptime of passed funcstate structure
- */
-sal_uInt32 SAL_CALL rtl_tres_getstoptime( rtl_funcstate fstate )
-{
- rtl_FuncState* fs = (rtl_FuncState*)fstate;
- return( fs->m_stop );
-}
-
- /**
- * returns pointer to cmpstate of passed funcstate structure
- */
-rtl_cmpstate SAL_CALL rtl_tres_getcmpstate( rtl_funcstate fstate)
-{
- rtl_FuncState* fs = (rtl_FuncState*)fstate;
- return( (rtl_cmpstate)fs->m_cmp );
-
-}
- /**
- * returns boolean state of passed cmpstate structure
- */
-sal_Bool SAL_CALL rtl_tres_getstat( rtl_cmpstate cstate)
-{
- rtl_CmpState* cs = (rtl_CmpState*)cstate;
- return( cs->m_stat );
-}
- /**
- * returns message of passed cmpstate structure
- */
-rtl_String* SAL_CALL rtl_tres_getmsg( rtl_cmpstate cstate)
-{
- rtl_CmpState* cs = (rtl_CmpState*)cstate;
- return( cs->m_msg );
-}
- /**
- * returns next pointer of passed cmpstate structure
- */
-rtl_cmpstate SAL_CALL rtl_tres_getnextcmpstate( rtl_cmpstate cstate)
-{
- rtl_CmpState* cs = (rtl_CmpState*)cstate;
- return( (rtl_cmpstate)cs->m_next );
-}
-
-/*
-// <method_logPrintf>
-//inline void logPrintf ( const sal_Bool bTestCaseState,
-// const char *pFormatStr, ...
-// )
-//{
-// if( m_pFunctions && m_pFunctions->pLogPrintf )
-// {
-// va_list vArgumentList;
-// va_start ( vArgumentList, pFormatStr );
-
-// m_pFunctions->pLogPrintf( this, bTestCaseState, pFormatStr, vArgumentList );
-
-// va_end ( vArgumentList );
-// }
-//} // </method_logPrintf>
- */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/unload.cxx b/sal/rtl/source/unload.cxx
deleted file mode 100644
index 8785baf50..000000000
--- a/sal/rtl/source/unload.cxx
+++ /dev/null
@@ -1,416 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-#include <rtl/unload.h>
-#include <rtl/alloc.h>
-#include <rtl/ustring.hxx>
-#include <rtl/instance.hxx>
-#include <osl/mutex.hxx>
-#include <boost/unordered_map.hpp>
-#include "rtl/allocator.hxx"
-
-#include <functional>
-#include <list>
-#include <deque>
-
-using osl::MutexGuard;
-
-//----------------------------------------------------------------------------
-
-static void rtl_notifyUnloadingListeners();
-
-static sal_Bool isEqualTimeValue ( const TimeValue* time1, const TimeValue* time2)
-{
- if( time1->Seconds == time2->Seconds &&
- time1->Nanosec == time2->Nanosec)
- return sal_True;
- else
- return sal_False;
-}
-
-static sal_Bool isGreaterTimeValue( const TimeValue* time1, const TimeValue* time2)
-{
- sal_Bool retval= sal_False;
- if ( time1->Seconds > time2->Seconds)
- retval= sal_True;
- else if ( time1->Seconds == time2->Seconds)
- {
- if( time1->Nanosec > time2->Nanosec)
- retval= sal_True;
- }
- return retval;
-}
-
-static sal_Bool isGreaterEqualTimeValue( const TimeValue* time1, const TimeValue* time2)
-{
- if( isEqualTimeValue( time1, time2) )
- return sal_True;
- else if( isGreaterTimeValue( time1, time2))
- return sal_True;
- else
- return sal_False;
-}
-
-static void addTimeValue( const TimeValue* value1, const TimeValue* value2, TimeValue* result)
-{
- sal_uInt64 sum;
- result->Nanosec=0;
- result->Seconds=0;
-
- sum= value1->Nanosec + value2->Nanosec;
- if( sum >= 1000000000 )
- {
- result->Seconds=1;
- sum -= 1000000000;
- }
- result->Nanosec= (sal_uInt32)sum;
- result->Seconds += value1->Seconds + value2->Seconds;
-}
-
-
-static sal_Bool hasEnoughTimePassed( const TimeValue* unusedSince, const TimeValue* timespan)
-{
- sal_Bool retval= sal_False;
- TimeValue currentTime;
- if( osl_getSystemTime( &currentTime))
- {
- TimeValue addedTime;
- addTimeValue( unusedSince, timespan, &addedTime);
- if( isGreaterEqualTimeValue( &currentTime, &addedTime))
- retval= sal_True;
- }
-
- return retval;
-}
-
-namespace
-{
- class theUnloadingMutex : public rtl::Static<osl::Mutex, theUnloadingMutex>{};
-}
-
-static osl::Mutex& getUnloadingMutex()
-{
- return theUnloadingMutex::get();
-}
-
-extern "C" void rtl_moduleCount_acquire(rtl_ModuleCount * that )
-{
- rtl_StandardModuleCount* pMod= (rtl_StandardModuleCount*)that;
- osl_incrementInterlockedCount( &pMod->counter);
-}
-
-extern "C" void rtl_moduleCount_release( rtl_ModuleCount * that )
-{
- rtl_StandardModuleCount* pMod= (rtl_StandardModuleCount*)that;
- OSL_ENSURE( pMod->counter >0 , "library counter incorrect" );
- osl_decrementInterlockedCount( &pMod->counter);
- if( pMod->counter == 0)
- {
- MutexGuard guard( getUnloadingMutex());
-
- if( sal_False == osl_getSystemTime( &pMod->unusedSince) )
- {
- // set the time to 0 if we could not get the time
- pMod->unusedSince.Seconds= 0;
- pMod->unusedSince.Nanosec= 0;
- }
- }
-}
-
-
-struct hashModule
-{
- size_t operator()( const oslModule& rkey) const
- {
- return (size_t)rkey;
- }
-};
-
-typedef boost::unordered_map<
- oslModule,
- std::pair<sal_uInt32, component_canUnloadFunc>,
- hashModule,
- std::equal_to<oslModule>,
- rtl::Allocator<oslModule>
-> ModuleMap;
-
-typedef ModuleMap::iterator Mod_IT;
-
-static ModuleMap& getModuleMap()
-{
- static ModuleMap * g_pMap= NULL;
- if (!g_pMap)
- {
- MutexGuard guard( getUnloadingMutex() );
- if (!g_pMap)
- {
- static ModuleMap g_aModuleMap;
- g_pMap= &g_aModuleMap;
- }
- }
- return *g_pMap;
-}
-
-extern "C" sal_Bool rtl_moduleCount_canUnload( rtl_StandardModuleCount * that, TimeValue * libUnused)
-{
- if (that->counter == 0)
- {
- MutexGuard guard( getUnloadingMutex());
- if (libUnused && (that->counter == 0))
- {
- rtl_copyMemory(libUnused, &that->unusedSince, sizeof(TimeValue));
- }
- }
- return (that->counter == 0);
-}
-
-
-extern "C" sal_Bool SAL_CALL rtl_registerModuleForUnloading( oslModule module)
-{
- MutexGuard guard( getUnloadingMutex());
- ModuleMap& moduleMap= getModuleMap();
- sal_Bool ret= sal_True;
-
- // If the module has been registered before, then find it and increment
- // its reference cout
- Mod_IT it= moduleMap.find( module);
- if( it != moduleMap.end())
- {
- //module already registered, increment ref count
- it->second.first++;
- }
- else
- {
- // Test if the module supports unloading (exports component_canUnload)
- rtl::OUString name(RTL_CONSTASCII_USTRINGPARAM( COMPONENT_CANUNLOAD));
- component_canUnloadFunc pFunc=
- (component_canUnloadFunc)osl_getFunctionSymbol( module, name.pData);
- if (pFunc)
- {
- //register module for the first time, set ref count to 1
- moduleMap[module]= std::make_pair((sal_uInt32)1, pFunc);
- }
- else
- ret= sal_False;
- }
- return ret;
-}
-
-extern "C" void SAL_CALL rtl_unregisterModuleForUnloading( oslModule module)
-{
- MutexGuard guard( getUnloadingMutex());
-
- ModuleMap& moduleMap= getModuleMap();
- Mod_IT it= moduleMap.find( module);
- if( it != moduleMap.end() )
- {
- // The module is registered, decrement ref count.
- it->second.first --;
-
- // If the refcount == 0 then remove the module from the map
- if( it->second.first == 0)
- moduleMap.erase( it);
- }
-}
-
-extern "C" void SAL_CALL rtl_unloadUnusedModules( TimeValue* libUnused)
-{
- MutexGuard guard( getUnloadingMutex());
-
- typedef std::list< oslModule, rtl::Allocator<oslModule> > list_type;
- list_type unloadedModulesList;
-
- ModuleMap& moduleMap= getModuleMap();
- Mod_IT it_e= moduleMap.end();
-
- // notify all listeners
- rtl_notifyUnloadingListeners();
-
- // prepare default TimeValue if argumetn is NULL
- TimeValue nullTime={0,0};
- TimeValue* pLibUnused= libUnused? libUnused : &nullTime;
-
- Mod_IT it= moduleMap.begin();
- for (; it != it_e; ++it)
- {
- //can the module be unloaded?
- component_canUnloadFunc func= it->second.second;
- TimeValue unusedSince= {0, 0};
-
- if( func( &unusedSince) )
- {
- // module can be unloaded if it has not been used at least for the time
- // specified by the argument libUnused
- if( hasEnoughTimePassed( &unusedSince, pLibUnused))
- {
- // get the reference count and unload the module as many times
- sal_uInt32 refCount= it->second.first;
-
- for ( sal_uInt32 i=0; i < refCount; i++)
- osl_unloadModule( it->first);
-
- // mark the module for later removal
- unloadedModulesList.push_front( it->first);
- }
- }
- }
-
- // remove all entries containing invalid (unloaded) modules
- list_type::const_iterator un_it= unloadedModulesList.begin();
- for (; un_it != unloadedModulesList.end(); ++un_it)
- {
- moduleMap.erase( *un_it);
- }
-}
-
-
-// ==============================================================================
-// Unloading Listener Administration
-//===============================================================================
-struct hashListener
-{
- size_t operator()( const sal_Int32& rkey) const
- {
- return (size_t)rkey;
- }
-};
-
-typedef boost::unordered_map<
- sal_Int32,
- std::pair<rtl_unloadingListenerFunc, void*>,
- hashListener,
- std::equal_to<sal_Int32>,
- rtl::Allocator<sal_Int32>
-> ListenerMap;
-
-typedef ListenerMap::iterator Lis_IT;
-
-static ListenerMap& getListenerMap()
-{
- static ListenerMap * g_pListeners= NULL;
- if (!g_pListeners)
- {
- MutexGuard guard( getUnloadingMutex() );
- if (!g_pListeners)
- {
- static ListenerMap g_aListenerMap;
- g_pListeners= &g_aListenerMap;
- }
- }
- return *g_pListeners;
-}
-
-
-// This queue contains cookies which have been passed out by rtl_addUnloadingListener and
-// which have been regainded by rtl_removeUnloadingListener. When rtl_addUnloadingListener
-// is called then a cookie has to be returned. First we look into the set if there is one
-// availabe. Otherwise a new cookie will be provided.
-// not a new value is returned.
-
-typedef std::deque<
- sal_Int32,
- rtl::Allocator<sal_Int32>
-> queue_type;
-
-static queue_type& getCookieQueue()
-{
- static queue_type * g_pCookies= NULL;
- if (!g_pCookies)
- {
- MutexGuard guard( getUnloadingMutex() );
- if (!g_pCookies)
- {
- static queue_type g_aCookieQueue;
- g_pCookies= &g_aCookieQueue;
- }
- }
- return *g_pCookies;
-}
-
-static sal_Int32 getCookie()
-{
- static sal_Int32 cookieValue= 1;
-
- sal_Int32 retval;
- queue_type& regainedCookies= getCookieQueue();
- if( regainedCookies.empty() )
- retval= cookieValue++;
- else
- {
- retval= regainedCookies.front();
- regainedCookies.pop_front();
- }
- return retval;
-}
-
-static inline void recycleCookie( sal_Int32 i)
-{
- getCookieQueue().push_back(i);
-}
-
-
-// calling the function twice with the same arguments will return tow different cookies.
-// The listener will then notified twice.
-
-extern "C"
-sal_Int32 SAL_CALL rtl_addUnloadingListener( rtl_unloadingListenerFunc callback, void* _this)
-{
- MutexGuard guard( getUnloadingMutex());
-
- sal_Int32 cookie= getCookie();
- ListenerMap& listenerMap= getListenerMap();
- listenerMap[ cookie]= std::make_pair( callback, _this);
- return cookie;
-}
-
-
-extern "C"
-void SAL_CALL rtl_removeUnloadingListener( sal_Int32 cookie )
-{
- MutexGuard guard( getUnloadingMutex());
-
- ListenerMap& listenerMap= getListenerMap();
- size_t removedElements= listenerMap.erase( cookie);
- if( removedElements )
- recycleCookie( cookie);
-}
-
-
-static void rtl_notifyUnloadingListeners()
-{
- ListenerMap& listenerMap= getListenerMap();
- for( Lis_IT it= listenerMap.begin(); it != listenerMap.end(); ++it)
- {
- rtl_unloadingListenerFunc callbackFunc= it->second.first;
- callbackFunc( it->second.second);
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/uri.cxx b/sal/rtl/source/uri.cxx
deleted file mode 100644
index b27f93e39..000000000
--- a/sal/rtl/source/uri.cxx
+++ /dev/null
@@ -1,803 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include "rtl/uri.h"
-
-#include "surrogates.h"
-
-#include "osl/diagnose.h"
-#include "rtl/strbuf.hxx"
-#include "rtl/textenc.h"
-#include "rtl/textcvt.h"
-#include "rtl/uri.h"
-#include "rtl/ustrbuf.h"
-#include "rtl/ustrbuf.hxx"
-#include "rtl/ustring.h"
-#include "rtl/ustring.hxx"
-#include "sal/types.h"
-#include "sal/macros.h"
-
-#include <cstddef>
-
-namespace {
-
-std::size_t const nCharClassSize = 128;
-
-sal_Unicode const cEscapePrefix = 0x25; // '%'
-
-inline bool isDigit(sal_uInt32 nUtf32)
-{
- return nUtf32 >= 0x30 && nUtf32 <= 0x39; // '0'--'9'
-}
-
-inline bool isAlpha(sal_uInt32 nUtf32)
-{
- // 'A'--'Z', 'a'--'z'
- return (
- (nUtf32 >= 0x41 && nUtf32 <= 0x5A) ||
- (nUtf32 >= 0x61 && nUtf32 <= 0x7A)
- );
-}
-
-inline bool isHighSurrogate(sal_uInt32 nUtf16)
-{
- return SAL_RTL_IS_HIGH_SURROGATE(nUtf16);
-}
-
-inline bool isLowSurrogate(sal_uInt32 nUtf16)
-{
- return SAL_RTL_IS_LOW_SURROGATE(nUtf16);
-}
-
-inline sal_uInt32 combineSurrogates(sal_uInt32 high, sal_uInt32 low)
-{
- return SAL_RTL_COMBINE_SURROGATES(high, low);
-}
-
-inline int getHexWeight(sal_uInt32 nUtf32)
-{
- return nUtf32 >= 0x30 && nUtf32 <= 0x39 ? // '0'--'9'
- static_cast< int >(nUtf32 - 0x30) :
- nUtf32 >= 0x41 && nUtf32 <= 0x46 ? // 'A'--'F'
- static_cast< int >(nUtf32 - 0x41 + 10) :
- nUtf32 >= 0x61 && nUtf32 <= 0x66 ? // 'a'--'f'
- static_cast< int >(nUtf32 - 0x61 + 10) :
- -1; // not a hex digit
-}
-
-inline bool isValid(sal_Bool const * pCharClass, sal_uInt32 nUtf32)
-{
- return nUtf32 < nCharClassSize && pCharClass[nUtf32];
-}
-
-inline void writeUnicode(rtl_uString ** pBuffer, sal_Int32 * pCapacity,
- sal_Unicode cChar)
-{
- rtl_uStringbuffer_insert(pBuffer, pCapacity, (*pBuffer)->length, &cChar, 1);
-}
-
-enum EscapeType
-{
- EscapeNo,
- EscapeChar,
- EscapeOctet
-};
-
-/* Read any of the following:
-
- - sequence of escape sequences representing character from eCharset,
- translated to single UCS4 character; or
-
- - pair of UTF-16 surrogates, translated to single UCS4 character; or
-
- _ single UTF-16 character, extended to UCS4 character.
- */
-sal_uInt32 readUcs4(sal_Unicode const ** pBegin, sal_Unicode const * pEnd,
- bool bEncoded, rtl_TextEncoding eCharset,
- EscapeType * pType)
-{
- sal_uInt32 nChar = *(*pBegin)++;
- int nWeight1;
- int nWeight2;
- if (nChar == cEscapePrefix && bEncoded && pEnd - *pBegin >= 2
- && (nWeight1 = getHexWeight((*pBegin)[0])) >= 0
- && (nWeight2 = getHexWeight((*pBegin)[1])) >= 0)
- {
- *pBegin += 2;
- nChar = static_cast< sal_uInt32 >(nWeight1 << 4 | nWeight2);
- if (nChar <= 0x7F)
- *pType = EscapeChar;
- else if (eCharset == RTL_TEXTENCODING_UTF8)
- {
- if (nChar >= 0xC0 && nChar <= 0xF4)
- {
- sal_uInt32 nEncoded;
- int nShift;
- sal_uInt32 nMin;
- if (nChar <= 0xDF)
- {
- nEncoded = (nChar & 0x1F) << 6;
- nShift = 0;
- nMin = 0x80;
- }
- else if (nChar <= 0xEF)
- {
- nEncoded = (nChar & 0x0F) << 12;
- nShift = 6;
- nMin = 0x800;
- }
- else
- {
- nEncoded = (nChar & 0x07) << 18;
- nShift = 12;
- nMin = 0x10000;
- }
- sal_Unicode const * p = *pBegin;
- bool bUTF8 = true;
- for (; nShift >= 0; nShift -= 6)
- {
- if (pEnd - p < 3 || p[0] != cEscapePrefix
- || (nWeight1 = getHexWeight(p[1])) < 8
- || nWeight1 > 11
- || (nWeight2 = getHexWeight(p[2])) < 0)
- {
- bUTF8 = sal_False;
- break;
- }
- p += 3;
- nEncoded |= ((nWeight1 & 3) << 4 | nWeight2) << nShift;
- }
- if (bUTF8 && nEncoded >= nMin && !isHighSurrogate(nEncoded)
- && !isLowSurrogate(nEncoded) && nEncoded <= 0x10FFFF)
- {
- *pBegin = p;
- *pType = EscapeChar;
- return nEncoded;
- }
- }
- *pType = EscapeOctet;
- }
- else
- {
- rtl::OStringBuffer aBuf;
- aBuf.append(static_cast< char >(nChar));
- rtl_TextToUnicodeConverter aConverter
- = rtl_createTextToUnicodeConverter(eCharset);
- sal_Unicode const * p = *pBegin;
- for (;;)
- {
- sal_Unicode aDst[2];
- sal_uInt32 nInfo;
- sal_Size nConverted;
- sal_Size nDstSize = rtl_convertTextToUnicode(
- aConverter, 0, aBuf.getStr(), aBuf.getLength(), aDst,
- SAL_N_ELEMENTS( aDst ),
- (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
- | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
- | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR),
- &nInfo, &nConverted);
- if (nInfo == 0)
- {
- OSL_ASSERT(
- nConverted
- == sal::static_int_cast< sal_uInt32 >(
- aBuf.getLength()));
- rtl_destroyTextToUnicodeConverter(aConverter);
- *pBegin = p;
- *pType = EscapeChar;
- OSL_ASSERT(
- nDstSize == 1
- || (nDstSize == 2 && isHighSurrogate(aDst[0])
- && isLowSurrogate(aDst[1])));
- return nDstSize == 1
- ? aDst[0] : combineSurrogates(aDst[0], aDst[1]);
- }
- else if (nInfo == RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL
- && pEnd - p >= 3 && p[0] == cEscapePrefix
- && (nWeight1 = getHexWeight(p[1])) >= 0
- && (nWeight2 = getHexWeight(p[2])) >= 0)
- {
- p += 3;
- aBuf.append(static_cast< char >(nWeight1 << 4 | nWeight2));
- }
- else if (nInfo == RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL
- && p != pEnd && *p <= 0x7F)
- {
- aBuf.append(static_cast< char >(*p++));
- }
- else
- {
- OSL_ASSERT(
- (nInfo & RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL)
- == 0);
- break;
- }
- }
- rtl_destroyTextToUnicodeConverter(aConverter);
- *pType = EscapeOctet;
- }
- return nChar;
- }
- else
- {
- *pType = EscapeNo;
- return isHighSurrogate(nChar) && *pBegin < pEnd
- && isLowSurrogate(**pBegin) ?
- combineSurrogates(nChar, *(*pBegin)++) : nChar;
- }
-}
-
-void writeUcs4(rtl_uString ** pBuffer, sal_Int32 * pCapacity, sal_uInt32 nUtf32)
-{
- OSL_ENSURE(nUtf32 <= 0x10FFFF, "bad UTF-32 char");
- if (nUtf32 <= 0xFFFF) {
- writeUnicode(
- pBuffer, pCapacity, static_cast< sal_Unicode >(nUtf32));
- } else {
- nUtf32 -= 0x10000;
- writeUnicode(
- pBuffer, pCapacity,
- static_cast< sal_Unicode >(nUtf32 >> 10 | 0xD800));
- writeUnicode(
- pBuffer, pCapacity,
- static_cast< sal_Unicode >((nUtf32 & 0x3FF) | 0xDC00));
- }
-}
-
-void writeEscapeOctet(rtl_uString ** pBuffer, sal_Int32 * pCapacity,
- sal_uInt32 nOctet)
-{
- OSL_ENSURE(nOctet <= 0xFF, "bad octet");
-
- static sal_Unicode const aHex[16]
- = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
- 0x41, 0x42, 0x43, 0x44, 0x45, 0x46 }; /* '0'--'9', 'A'--'F' */
-
- writeUnicode(pBuffer, pCapacity, cEscapePrefix);
- writeUnicode(pBuffer, pCapacity, aHex[nOctet >> 4]);
- writeUnicode(pBuffer, pCapacity, aHex[nOctet & 15]);
-}
-
-bool writeEscapeChar(rtl_uString ** pBuffer, sal_Int32 * pCapacity,
- sal_uInt32 nUtf32, rtl_TextEncoding eCharset, bool bStrict)
-{
- OSL_ENSURE(nUtf32 <= 0x10FFFF, "bad UTF-32 char");
- if (eCharset == RTL_TEXTENCODING_UTF8) {
- if (nUtf32 < 0x80)
- writeEscapeOctet(pBuffer, pCapacity, nUtf32);
- else if (nUtf32 < 0x800)
- {
- writeEscapeOctet(pBuffer, pCapacity, nUtf32 >> 6 | 0xC0);
- writeEscapeOctet(pBuffer, pCapacity, (nUtf32 & 0x3F) | 0x80);
- }
- else if (nUtf32 < 0x10000)
- {
- writeEscapeOctet(pBuffer, pCapacity, nUtf32 >> 12 | 0xE0);
- writeEscapeOctet(pBuffer, pCapacity, (nUtf32 >> 6 & 0x3F) | 0x80);
- writeEscapeOctet(pBuffer, pCapacity, (nUtf32 & 0x3F) | 0x80);
- }
- else
- {
- writeEscapeOctet(pBuffer, pCapacity, nUtf32 >> 18 | 0xF0);
- writeEscapeOctet(pBuffer, pCapacity, (nUtf32 >> 12 & 0x3F) | 0x80);
- writeEscapeOctet(pBuffer, pCapacity, (nUtf32 >> 6 & 0x3F) | 0x80);
- writeEscapeOctet(pBuffer, pCapacity, (nUtf32 & 0x3F) | 0x80);
- }
- } else {
- rtl_UnicodeToTextConverter aConverter
- = rtl_createUnicodeToTextConverter(eCharset);
- sal_Unicode aSrc[2];
- sal_Size nSrcSize;
- if (nUtf32 <= 0xFFFF)
- {
- aSrc[0] = static_cast< sal_Unicode >(nUtf32);
- nSrcSize = 1;
- }
- else
- {
- aSrc[0] = static_cast< sal_Unicode >(
- ((nUtf32 - 0x10000) >> 10) | 0xD800);
- aSrc[1] = static_cast< sal_Unicode >(
- ((nUtf32 - 0x10000) & 0x3FF) | 0xDC00);
- nSrcSize = 2;
- }
- sal_Char aDst[32]; // FIXME random value
- sal_uInt32 nInfo;
- sal_Size nConverted;
- sal_Size nDstSize = rtl_convertUnicodeToText(
- aConverter, 0, aSrc, nSrcSize, aDst, sizeof aDst,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
- | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR
- | RTL_UNICODETOTEXT_FLAGS_FLUSH,
- &nInfo, &nConverted);
- OSL_ASSERT((nInfo & RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL) == 0);
- rtl_destroyUnicodeToTextConverter(aConverter);
- if (nInfo == 0) {
- OSL_ENSURE(nConverted == nSrcSize, "bad rtl_convertUnicodeToText");
- for (sal_Size i = 0; i < nDstSize; ++i)
- writeEscapeOctet(pBuffer, pCapacity,
- static_cast< unsigned char >(aDst[i]));
- // FIXME all octets are escaped, even if there is no need
- } else {
- if (bStrict) {
- return false;
- } else {
- writeUcs4(pBuffer, pCapacity, nUtf32);
- }
- }
- }
- return true;
-}
-
-struct Component
-{
- sal_Unicode const * pBegin;
- sal_Unicode const * pEnd;
-
- inline Component(): pBegin(0), pEnd(0) {}
-
- inline bool isPresent() const { return pBegin != 0; }
-
- inline sal_Int32 getLength() const;
-};
-
-inline sal_Int32 Component::getLength() const
-{
- OSL_ENSURE(isPresent(), "taking length of non-present component");
- return static_cast< sal_Int32 >(pEnd - pBegin);
-}
-
-struct Components
-{
- Component aScheme;
- Component aAuthority;
- Component aPath;
- Component aQuery;
- Component aFragment;
-};
-
-void parseUriRef(rtl_uString const * pUriRef, Components * pComponents)
-{
- // This algorithm is liberal and accepts various forms of illegal input.
-
- sal_Unicode const * pBegin = pUriRef->buffer;
- sal_Unicode const * pEnd = pBegin + pUriRef->length;
- sal_Unicode const * pPos = pBegin;
-
- if (pPos != pEnd && isAlpha(*pPos))
- for (sal_Unicode const * p = pPos + 1; p != pEnd; ++p)
- if (*p == ':')
- {
- pComponents->aScheme.pBegin = pBegin;
- pComponents->aScheme.pEnd = ++p;
- pPos = p;
- break;
- }
- else if (!isAlpha(*p) && !isDigit(*p) && *p != '+' && *p != '-'
- && *p != '.')
- break;
-
- if (pEnd - pPos >= 2 && pPos[0] == '/' && pPos[1] == '/')
- {
- pComponents->aAuthority.pBegin = pPos;
- pPos += 2;
- while (pPos != pEnd && *pPos != '/' && *pPos != '?' && *pPos != '#')
- ++pPos;
- pComponents->aAuthority.pEnd = pPos;
- }
-
- pComponents->aPath.pBegin = pPos;
- while (pPos != pEnd && *pPos != '?' && * pPos != '#')
- ++pPos;
- pComponents->aPath.pEnd = pPos;
-
- if (pPos != pEnd && *pPos == '?')
- {
- pComponents->aQuery.pBegin = pPos++;
- while (pPos != pEnd && * pPos != '#')
- ++pPos;
- pComponents->aQuery.pEnd = pPos;
- }
-
- if (pPos != pEnd)
- {
- OSL_ASSERT(*pPos == '#');
- pComponents->aFragment.pBegin = pPos;
- pComponents->aFragment.pEnd = pEnd;
- }
-}
-
-rtl::OUString joinPaths(Component const & rBasePath, Component const & rRelPath)
-{
- OSL_ASSERT(rBasePath.isPresent() && *rBasePath.pBegin == '/');
- OSL_ASSERT(rRelPath.isPresent());
-
- // The invariant of aBuffer is that it always starts and ends with a slash
- // (until probably right at the end of the algorithm, when the last segment
- // of rRelPath is added, which does not necessarily end in a slash):
- rtl::OUStringBuffer aBuffer(rBasePath.getLength() + rRelPath.getLength());
- // XXX numeric overflow
-
- // Segments "." and ".." within rBasePath are not conisdered special (but
- // are also not removed by ".." segments within rRelPath), RFC 2396 seems a
- // bit unclear about this point:
- sal_Int32 nFixed = 1;
- sal_Unicode const * p = rBasePath.pBegin + 1;
- for (sal_Unicode const * q = p; q != rBasePath.pEnd; ++q)
- if (*q == '/')
- {
- if (
- (q - p == 1 && p[0] == '.') ||
- (q - p == 2 && p[0] == '.' && p[1] == '.')
- )
- {
- nFixed = q + 1 - rBasePath.pBegin;
- }
- p = q + 1;
- }
- aBuffer.append(rBasePath.pBegin, p - rBasePath.pBegin);
-
- p = rRelPath.pBegin;
- if (p != rRelPath.pEnd)
- for (;;)
- {
- sal_Unicode const * q = p;
- sal_Unicode const * r;
- for (;;)
- {
- if (q == rRelPath.pEnd)
- {
- r = q;
- break;
- }
- if (*q == '/')
- {
- r = q + 1;
- break;
- }
- ++q;
- }
- if (q - p == 2 && p[0] == '.' && p[1] == '.')
- {
- // Erroneous excess segments ".." within rRelPath are left
- // intact, as the examples in RFC 2396, section C.2, suggest:
- sal_Int32 i = aBuffer.getLength() - 1;
- if (i < nFixed)
- {
- aBuffer.append(p, r - p);
- nFixed += 3;
- }
- else
- {
- while (aBuffer.charAt(i - 1) != '/')
- --i;
- aBuffer.setLength(i);
- }
- }
- else if (q - p != 1 || *p != '.')
- aBuffer.append(p, r - p);
- if (q == rRelPath.pEnd)
- break;
- p = q + 1;
- }
-
- return aBuffer.makeStringAndClear();
-}
-
-}
-
-sal_Bool const * SAL_CALL rtl_getUriCharClass(rtl_UriCharClass eCharClass)
- SAL_THROW_EXTERN_C()
-{
- static sal_Bool const aCharClass[][nCharClassSize]
- = {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* None */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* !"#$%&'()*+,-./*/
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*0123456789:;<=>?*/
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*@ABCDEFGHIJKLMNO*/
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*PQRSTUVWXYZ[\]^_*/
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*`abcdefghijklmno*/
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 /*pqrstuvwxyz{|}~ */
- },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Uric */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* !"#$%&'()*+,-./*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, /*0123456789:;<=>?*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, /*PQRSTUVWXYZ[\]^_*/
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0 /*pqrstuvwxyz{|}~ */
- },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* UricNoSlash */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, /* !"#$%&'()*+,-./*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, /*0123456789:;<=>?*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0 /*pqrstuvwxyz{|}~ */
- },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* RelSegment */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, /* !"#$%&'()*+,-./*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, /*0123456789:;<=>?*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0 /*pqrstuvwxyz{|}~ */
- },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* RegName */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, /* !"#$%&'()*+,-./*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, /*0123456789:;<=>?*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0 /*pqrstuvwxyz{|}~ */
- },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Userinfo */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, /* !"#$%&'()*+,-./*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, /*0123456789:;<=>?*/
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0 /*pqrstuvwxyz{|}~ */
- },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Pchar */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, /* !"#$%&'()*+,-./*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, /*0123456789:;<=>?*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0 /*pqrstuvwxyz{|}~ */
- },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* UnoParamValue */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, /* !"#$%&'()*+,-./*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*0123456789:;<=>?*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0 /*pqrstuvwxyz{|}~ */
- }};
- OSL_ENSURE(
- (eCharClass >= 0
- && (sal::static_int_cast< std::size_t >(eCharClass)
- < SAL_N_ELEMENTS(aCharClass))),
- "bad eCharClass");
- return aCharClass[eCharClass];
-}
-
-void SAL_CALL rtl_uriEncode(rtl_uString * pText, sal_Bool const * pCharClass,
- rtl_UriEncodeMechanism eMechanism,
- rtl_TextEncoding eCharset, rtl_uString ** pResult)
- SAL_THROW_EXTERN_C()
-{
- OSL_ENSURE(!pCharClass[0x25], "bad pCharClass");
- // make sure the percent sign is encoded...
-
- sal_Unicode const * p = pText->buffer;
- sal_Unicode const * pEnd = p + pText->length;
- sal_Int32 nCapacity = 0;
- rtl_uString_new(pResult);
- while (p < pEnd)
- {
- EscapeType eType;
- sal_uInt32 nUtf32 = readUcs4(
- &p, pEnd,
- (eMechanism == rtl_UriEncodeKeepEscapes
- || eMechanism == rtl_UriEncodeCheckEscapes
- || eMechanism == rtl_UriEncodeStrictKeepEscapes),
- eCharset, &eType);
- switch (eType)
- {
- case EscapeNo:
- if (isValid(pCharClass, nUtf32)) // implies nUtf32 <= 0x7F
- writeUnicode(pResult, &nCapacity,
- static_cast< sal_Unicode >(nUtf32));
- else if (!writeEscapeChar(
- pResult, &nCapacity, nUtf32, eCharset,
- (eMechanism == rtl_UriEncodeStrict
- || eMechanism == rtl_UriEncodeStrictKeepEscapes)))
- {
- rtl_uString_new(pResult);
- return;
- }
- break;
-
- case EscapeChar:
- if (eMechanism == rtl_UriEncodeCheckEscapes
- && isValid(pCharClass, nUtf32)) // implies nUtf32 <= 0x7F
- writeUnicode(pResult, &nCapacity,
- static_cast< sal_Unicode >(nUtf32));
- else if (!writeEscapeChar(
- pResult, &nCapacity, nUtf32, eCharset,
- (eMechanism == rtl_UriEncodeStrict
- || eMechanism == rtl_UriEncodeStrictKeepEscapes)))
- {
- rtl_uString_new(pResult);
- return;
- }
- break;
-
- case EscapeOctet:
- writeEscapeOctet(pResult, &nCapacity, nUtf32);
- break;
- }
- }
-}
-
-void SAL_CALL rtl_uriDecode(rtl_uString * pText,
- rtl_UriDecodeMechanism eMechanism,
- rtl_TextEncoding eCharset, rtl_uString ** pResult)
- SAL_THROW_EXTERN_C()
-{
- switch (eMechanism)
- {
- case rtl_UriDecodeNone:
- rtl_uString_assign(pResult, pText);
- break;
-
- case rtl_UriDecodeToIuri:
- eCharset = RTL_TEXTENCODING_UTF8;
- default: // rtl_UriDecodeWithCharset, rtl_UriDecodeStrict
- {
- sal_Unicode const * p = pText->buffer;
- sal_Unicode const * pEnd = p + pText->length;
- sal_Int32 nCapacity = 0;
- rtl_uString_new(pResult);
- while (p < pEnd)
- {
- EscapeType eType;
- sal_uInt32 nUtf32 = readUcs4(&p, pEnd, true, eCharset, &eType);
- switch (eType)
- {
- case EscapeChar:
- if (nUtf32 <= 0x7F && eMechanism == rtl_UriDecodeToIuri)
- {
- writeEscapeOctet(pResult, &nCapacity, nUtf32);
- break;
- }
- case EscapeNo:
- writeUcs4(pResult, &nCapacity, nUtf32);
- break;
-
- case EscapeOctet:
- if (eMechanism == rtl_UriDecodeStrict) {
- rtl_uString_new(pResult);
- return;
- }
- writeEscapeOctet(pResult, &nCapacity, nUtf32);
- break;
- }
- }
- }
- break;
- }
-}
-
-sal_Bool SAL_CALL rtl_uriConvertRelToAbs(rtl_uString * pBaseUriRef,
- rtl_uString * pRelUriRef,
- rtl_uString ** pResult,
- rtl_uString ** pException)
- SAL_THROW_EXTERN_C()
-{
- // If pRelUriRef starts with a scheme component it is an absolute URI
- // reference, and we are done (i.e., this algorithm does not support
- // backwards-compatible relative URIs starting with a scheme component, see
- // RFC 2396, section 5.2, step 3):
- Components aRelComponents;
- parseUriRef(pRelUriRef, &aRelComponents);
- if (aRelComponents.aScheme.isPresent())
- {
- rtl_uString_assign(pResult, pRelUriRef);
- return true;
- }
-
- // Parse pBaseUriRef; if the scheme component is not present or not valid,
- // or the path component is not empty and starts with anything but a slash,
- // an exception is raised:
- Components aBaseComponents;
- parseUriRef(pBaseUriRef, &aBaseComponents);
- if (!aBaseComponents.aScheme.isPresent())
- {
- rtl::OUString aMessage(pBaseUriRef);
- aMessage += rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- " does not start with a scheme component"));
- rtl_uString_assign(pException,
- const_cast< rtl::OUString & >(aMessage).pData);
- return false;
- }
- if (aBaseComponents.aPath.pBegin != aBaseComponents.aPath.pEnd
- && *aBaseComponents.aPath.pBegin != '/')
- {
- rtl::OUString aMessage(pBaseUriRef);
- aMessage += rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "path component does not start with slash"));
- rtl_uString_assign(pException, aMessage.pData);
- return false;
- }
-
- // Use the algorithm from RFC 2396, section 5.2, to turn the relative URI
- // into an absolute one (if the relative URI is a reference to the "current
- // document," the "current document" is here taken to be the base URI):
- rtl::OUStringBuffer aBuffer;
- aBuffer.append(aBaseComponents.aScheme.pBegin,
- aBaseComponents.aScheme.getLength());
- if (aRelComponents.aAuthority.isPresent())
- {
- aBuffer.append(aRelComponents.aAuthority.pBegin,
- aRelComponents.aAuthority.getLength());
- aBuffer.append(aRelComponents.aPath.pBegin,
- aRelComponents.aPath.getLength());
- if (aRelComponents.aQuery.isPresent())
- aBuffer.append(aRelComponents.aQuery.pBegin,
- aRelComponents.aQuery.getLength());
- }
- else
- {
- if (aBaseComponents.aAuthority.isPresent())
- aBuffer.append(aBaseComponents.aAuthority.pBegin,
- aBaseComponents.aAuthority.getLength());
- if (aRelComponents.aPath.pBegin == aRelComponents.aPath.pEnd
- && !aRelComponents.aQuery.isPresent())
- {
- aBuffer.append(aBaseComponents.aPath.pBegin,
- aBaseComponents.aPath.getLength());
- if (aBaseComponents.aQuery.isPresent())
- aBuffer.append(aBaseComponents.aQuery.pBegin,
- aBaseComponents.aQuery.getLength());
- }
- else
- {
- if (*aRelComponents.aPath.pBegin == '/')
- aBuffer.append(aRelComponents.aPath.pBegin,
- aRelComponents.aPath.getLength());
- else
- aBuffer.append(joinPaths(aBaseComponents.aPath,
- aRelComponents.aPath));
- if (aRelComponents.aQuery.isPresent())
- aBuffer.append(aRelComponents.aQuery.pBegin,
- aRelComponents.aQuery.getLength());
- }
- }
- if (aRelComponents.aFragment.isPresent())
- aBuffer.append(aRelComponents.aFragment.pBegin,
- aRelComponents.aFragment.getLength());
- rtl_uString_assign(pResult, aBuffer.makeStringAndClear().pData);
- return true;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/ustrbuf.c b/sal/rtl/source/ustrbuf.c
deleted file mode 100644
index 638b27eeb..000000000
--- a/sal/rtl/source/ustrbuf.c
+++ /dev/null
@@ -1,239 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <osl/interlck.h>
-
-#ifndef _RTL_STRING_HXX_
-#include <rtl/ustrbuf.hxx>
-#endif
-#include <rtl/memory.h>
-
-/*
-#include <rtl/alloc.h>
-*/
-
-
-
-/*************************************************************************
- * rtl_uStringbuffer_newFromStr_WithLength
- */
-void SAL_CALL rtl_uStringbuffer_newFromStr_WithLength( rtl_uString ** newStr,
- const sal_Unicode * value,
- sal_Int32 count)
-{
- if (!value)
- {
- rtl_uString_new_WithLength( newStr, 16 );
- return;
- }
-
- rtl_uString_new_WithLength( newStr, count + 16 );
- (*newStr)->length = count;
- rtl_copyMemory( (*newStr)->buffer, value, count * sizeof(sal_Unicode));
- return;
-}
-
-/*************************************************************************
- * rtl_uStringbuffer_newFromStringBuffer
- */
-sal_Int32 SAL_CALL rtl_uStringbuffer_newFromStringBuffer( rtl_uString ** newStr,
- sal_Int32 capacity,
- rtl_uString * oldStr )
-{
- sal_Int32 newCapacity = capacity;
-
- if (newCapacity < oldStr->length)
- newCapacity = oldStr->length;
-
- rtl_uString_new_WithLength( newStr, newCapacity );
-
- if (oldStr->length > 0) {
- (*newStr)->length = oldStr->length;
- rtl_copyMemory( (*newStr)->buffer, oldStr->buffer, oldStr->length * sizeof(sal_Unicode));
- }
- return newCapacity;
-}
-
-/*************************************************************************
- * rtl_uStringbuffer_ensureCapacity
- */
-void SAL_CALL rtl_uStringbuffer_ensureCapacity
- (rtl_uString ** This, sal_Int32* capacity, sal_Int32 minimumCapacity)
-{
- if (minimumCapacity > *capacity)
- {
- rtl_uString * pTmp = *This;
- rtl_uString * pNew = NULL;
- *capacity = ((*This)->length + 1) * 2;
- if (minimumCapacity > *capacity)
- /* still lower, set to the minimum capacity */
- *capacity = minimumCapacity;
-
- rtl_uString_new_WithLength(&pNew, *capacity);
- pNew->length = (*This)->length;
- *This = pNew;
-
- rtl_copyMemory( (*This)->buffer, pTmp->buffer, pTmp->length * sizeof(sal_Unicode) );
- rtl_uString_release( pTmp );
- }
-}
-
-/*************************************************************************
- * rtl_uStringbuffer_insert
- */
-void SAL_CALL rtl_uStringbuffer_insert( rtl_uString ** This,
- sal_Int32 * capacity,
- sal_Int32 offset,
- const sal_Unicode * str,
- sal_Int32 len)
-{
- sal_Int32 nOldLen;
- sal_Unicode * pBuf;
- sal_Int32 n;
- if( len != 0 )
- {
- if (*capacity < (*This)->length + len)
- rtl_uStringbuffer_ensureCapacity( This, capacity, (*This)->length + len );
-
- /*
- if( len == 1 )
- This->buffer
- */
- nOldLen = (*This)->length;
- pBuf = (*This)->buffer;
-
- /* copy the tail */
- n = (nOldLen - offset);
- if( n == 1 )
- /* optimized for 1 character */
- pBuf[offset + len] = pBuf[offset];
- else if( n > 1 )
- rtl_moveMemory( pBuf + offset + len, pBuf + offset, n * sizeof(sal_Unicode) );
-
- /* insert the new characters */
- if( len == 1 )
- /* optimized for 1 character */
- pBuf[offset] = *str;
- else if( len > 1 )
- rtl_copyMemory( pBuf + offset, str, len * sizeof(sal_Unicode) );
- (*This)->length = nOldLen + len;
- pBuf[ nOldLen + len ] = 0;
- }
-}
-
-void rtl_uStringbuffer_insertUtf32(
- rtl_uString ** pThis, sal_Int32 * capacity, sal_Int32 offset, sal_uInt32 c)
-{
- sal_Unicode buf[2];
- sal_Int32 len;
- OSL_ASSERT(c <= 0x10FFFF && !(c >= 0xD800 && c <= 0xDFFF));
- if (c <= 0xFFFF) {
- buf[0] = (sal_Unicode) c;
- len = 1;
- } else {
- c -= 0x10000;
- buf[0] = (sal_Unicode) ((c >> 10) | 0xD800);
- buf[1] = (sal_Unicode) ((c & 0x3FF) | 0xDC00);
- len = 2;
- }
- rtl_uStringbuffer_insert(pThis, capacity, offset, buf, len);
-}
-
-/*************************************************************************
- * rtl_uStringbuffer_insert_ascii
- */
-void SAL_CALL rtl_uStringbuffer_insert_ascii( /*inout*/rtl_uString ** This,
- /*inout*/sal_Int32 * capacity,
- sal_Int32 offset,
- const sal_Char * str,
- sal_Int32 len)
-{
- sal_Int32 nOldLen;
- sal_Unicode * pBuf;
- sal_Int32 n;
- if( len != 0 )
- {
- if (*capacity < (*This)->length + len)
- rtl_uStringbuffer_ensureCapacity( This, capacity, (*This)->length + len );
-
- nOldLen = (*This)->length;
- pBuf = (*This)->buffer;
-
- /* copy the tail */
- n = (nOldLen - offset);
- if( n == 1 )
- /* optimized for 1 character */
- pBuf[offset + len] = pBuf[offset];
- else if( n > 1 )
- rtl_moveMemory( pBuf + offset + len, pBuf + offset, n * sizeof(sal_Unicode) );
-
- /* insert the new characters */
- for( n = 0; n < len; n++ )
- {
- /* Check ASCII range */
- OSL_ENSURE( (*str & 0x80) == 0, "Found ASCII char > 127");
-
- pBuf[offset + n] = (sal_Unicode)*(str++);
- }
-
- (*This)->length = nOldLen + len;
- pBuf[ nOldLen + len ] = 0;
- }
-}
-
-/*************************************************************************
- * rtl_uStringbuffer_remove
- */
-void SAL_CALL rtl_uStringbuffer_remove( rtl_uString ** This,
- sal_Int32 start,
- sal_Int32 len )
-{
- sal_Int32 nTailLen;
- sal_Unicode * pBuf;
-
- if (len > (*This)->length - start)
- len = (*This)->length - start;
-
- //remove nothing
- if (!len)
- return;
-
- pBuf = (*This)->buffer;
- nTailLen = (*This)->length - ( start + len );
-
- if (nTailLen)
- {
- /* move the tail */
- rtl_moveMemory(pBuf + start, pBuf + start + len, nTailLen * sizeof(sal_Unicode));
- }
-
- (*This)->length-=len;
- pBuf[ (*This)->length ] = 0;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/ustring.c b/sal/rtl/source/ustring.c
deleted file mode 100644
index 89ba0a8bf..000000000
--- a/sal/rtl/source/ustring.c
+++ /dev/null
@@ -1,983 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#if defined(_MSC_VER) && (_MSC_VER >= 1400)
-#pragma warning(disable:4738) // storing 32-bit float result in memory, possible loss of performance
-#endif
-
-#include <rtl/memory.h>
-#include <osl/diagnose.h>
-#include <osl/interlck.h>
-#include <rtl/alloc.h>
-#include <osl/mutex.h>
-#include <osl/doublecheckedlocking.h>
-#include <rtl/tencinfo.h>
-
-#include <string.h>
-#include <sal/alloca.h>
-
-#include "hash.h"
-#include "strimp.h"
-#include "surrogates.h"
-#include <rtl/ustring.h>
-
-#include "rtl/math.h"
-#include "rtl/tencinfo.h"
-
-/* ======================================================================= */
-
-/* static data to be referenced by all empty strings
- * the refCount is predefined to 1 and must never become 0 !
- */
-static rtl_uString const aImplEmpty_rtl_uString =
-{
- (sal_Int32) (SAL_STRING_INTERN_FLAG|SAL_STRING_STATIC_FLAG|1), /*sal_Int32 refCount; */
- 0, /*sal_Int32 length; */
- { 0 } /*sal_Unicode buffer[1];*/
-};
-
-/* ======================================================================= */
-
-#define IMPL_RTL_STRCODE sal_Unicode
-#define IMPL_RTL_USTRCODE( c ) (c)
-#define IMPL_RTL_STRNAME( n ) rtl_ustr_ ## n
-
-#define IMPL_RTL_STRINGNAME( n ) rtl_uString_ ## n
-#define IMPL_RTL_STRINGDATA rtl_uString
-#define IMPL_RTL_EMPTYSTRING aImplEmpty_rtl_uString
-#define IMPL_RTL_INTERN
-static void internRelease (rtl_uString *pThis);
-
-/* ======================================================================= */
-
-/* Include String/UString template code */
-
-#include "strtmpl.c"
-
-sal_Int32 rtl_ustr_indexOfAscii_WithLength(
- sal_Unicode const * str, sal_Int32 len,
- char const * subStr, sal_Int32 subLen)
-{
- if (subLen > 0 && subLen <= len) {
- sal_Int32 i;
- for (i = 0; i <= len - subLen; ++i) {
- if (rtl_ustr_asciil_reverseEquals_WithLength(
- str + i, subStr, subLen))
- {
- return i;
- }
- }
- }
- return -1;
-}
-
-sal_Int32 rtl_ustr_lastIndexOfAscii_WithLength(
- sal_Unicode const * str, sal_Int32 len,
- char const * subStr, sal_Int32 subLen)
-{
- if (subLen > 0 && subLen <= len) {
- sal_Int32 i;
- for (i = len - subLen; i >= 0; --i) {
- if (rtl_ustr_asciil_reverseEquals_WithLength(
- str + i, subStr, subLen))
- {
- return i;
- }
- }
- }
- return -1;
-}
-
-sal_Int32 SAL_CALL rtl_ustr_valueOfFloat(sal_Unicode * pStr, float f)
-{
- rtl_uString * pResult = NULL;
- sal_Int32 nLen;
- rtl_math_doubleToUString(
- &pResult, 0, 0, f, rtl_math_StringFormat_G,
- RTL_USTR_MAX_VALUEOFFLOAT - RTL_CONSTASCII_LENGTH("-x.E-xxx"), '.', 0,
- 0, sal_True);
- nLen = pResult->length;
- OSL_ASSERT(nLen < RTL_USTR_MAX_VALUEOFFLOAT);
- rtl_copyMemory(pStr, pResult->buffer, (nLen + 1) * sizeof(sal_Unicode));
- rtl_uString_release(pResult);
- return nLen;
-}
-
-sal_Int32 SAL_CALL rtl_ustr_valueOfDouble(sal_Unicode * pStr, double d)
-{
- rtl_uString * pResult = NULL;
- sal_Int32 nLen;
- rtl_math_doubleToUString(
- &pResult, 0, 0, d, rtl_math_StringFormat_G,
- RTL_USTR_MAX_VALUEOFDOUBLE - RTL_CONSTASCII_LENGTH("-x.E-xxx"), '.', 0,
- 0, sal_True);
- nLen = pResult->length;
- OSL_ASSERT(nLen < RTL_USTR_MAX_VALUEOFDOUBLE);
- rtl_copyMemory(pStr, pResult->buffer, (nLen + 1) * sizeof(sal_Unicode));
- rtl_uString_release(pResult);
- return nLen;
-}
-
-float SAL_CALL rtl_ustr_toFloat(sal_Unicode const * pStr)
-{
- return (float) rtl_math_uStringToDouble(pStr,
- pStr + rtl_ustr_getLength(pStr),
- '.', 0, 0, 0);
-}
-
-double SAL_CALL rtl_ustr_toDouble(sal_Unicode const * pStr)
-{
- return rtl_math_uStringToDouble(pStr, pStr + rtl_ustr_getLength(pStr), '.',
- 0, 0, 0);
-}
-
-/* ======================================================================= */
-
-sal_Int32 SAL_CALL rtl_ustr_ascii_compare( const sal_Unicode* pStr1,
- const sal_Char* pStr2 )
-{
- sal_Int32 nRet;
- while ( ((nRet = ((sal_Int32)(*pStr1))-
- ((sal_Int32)((unsigned char)(*pStr2)))) == 0) &&
- *pStr2 )
- {
- pStr1++;
- pStr2++;
- }
-
- return nRet;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL rtl_ustr_ascii_compare_WithLength( const sal_Unicode* pStr1,
- sal_Int32 nStr1Len,
- const sal_Char* pStr2 )
-{
- sal_Int32 nRet = 0;
- while( ((nRet = (nStr1Len ? (sal_Int32)(*pStr1) : 0)-
- ((sal_Int32)((unsigned char)(*pStr2)))) == 0) &&
- nStr1Len && *pStr2 )
- {
- pStr1++;
- pStr2++;
- nStr1Len--;
- }
-
- return nRet;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL rtl_ustr_ascii_shortenedCompare_WithLength( const sal_Unicode* pStr1,
- sal_Int32 nStr1Len,
- const sal_Char* pStr2,
- sal_Int32 nShortenedLength )
-{
- const sal_Unicode* pStr1End = pStr1 + nStr1Len;
- sal_Int32 nRet;
- while ( (nShortenedLength > 0) &&
- (pStr1 < pStr1End) && *pStr2 )
- {
- /* Check ASCII range */
- OSL_ENSURE( (*pStr2 & 0x80) == 0, "Found ASCII char > 127");
-
- nRet = ((sal_Int32)*pStr1)-
- ((sal_Int32)(unsigned char)*pStr2);
- if ( nRet != 0 )
- return nRet;
-
- nShortenedLength--;
- pStr1++;
- pStr2++;
- }
-
- if ( nShortenedLength <= 0 )
- return 0;
-
- if ( *pStr2 )
- {
- OSL_ENSURE( pStr1 == pStr1End, "pStr1 == pStr1End failed" );
- // first is a substring of the second string => less (negative value)
- nRet = -1;
- }
- else
- {
- // greater or equal
- nRet = pStr1End - pStr1;
- }
-
- return nRet;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL rtl_ustr_asciil_reverseCompare_WithLength( const sal_Unicode* pStr1,
- sal_Int32 nStr1Len,
- const sal_Char* pStr2,
- sal_Int32 nStr2Len )
-{
- const sal_Unicode* pStr1Run = pStr1+nStr1Len;
- const sal_Char* pStr2Run = pStr2+nStr2Len;
- sal_Int32 nRet;
- while ( (pStr1 < pStr1Run) && (pStr2 < pStr2Run) )
- {
- pStr1Run--;
- pStr2Run--;
- nRet = ((sal_Int32)*pStr1Run)-((sal_Int32)*pStr2Run);
- if ( nRet )
- return nRet;
- }
-
- return nStr1Len - nStr2Len;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Bool SAL_CALL rtl_ustr_asciil_reverseEquals_WithLength( const sal_Unicode* pStr1,
- const sal_Char* pStr2,
- sal_Int32 nStrLen )
-{
- const sal_Unicode* pStr1Run = pStr1+nStrLen;
- const sal_Char* pStr2Run = pStr2+nStrLen;
- while ( pStr1 < pStr1Run )
- {
- pStr1Run--;
- pStr2Run--;
- if( *pStr1Run != (sal_Unicode)*pStr2Run )
- return sal_False;
- }
-
- return sal_True;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL rtl_ustr_ascii_compareIgnoreAsciiCase( const sal_Unicode* pStr1,
- const sal_Char* pStr2 )
-{
- sal_Int32 nRet;
- sal_Int32 c1;
- sal_Int32 c2;
- do
- {
- /* If character between 'A' and 'Z', than convert it to lowercase */
- c1 = (sal_Int32)*pStr1;
- c2 = (sal_Int32)((unsigned char)*pStr2);
- if ( (c1 >= 65) && (c1 <= 90) )
- c1 += 32;
- if ( (c2 >= 65) && (c2 <= 90) )
- c2 += 32;
- nRet = c1-c2;
- if ( nRet != 0 )
- return nRet;
-
- pStr1++;
- pStr2++;
- }
- while ( c2 );
-
- return 0;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL rtl_ustr_ascii_compareIgnoreAsciiCase_WithLength( const sal_Unicode* pStr1,
- sal_Int32 nStr1Len,
- const sal_Char* pStr2 )
-{
- sal_Int32 nRet;
- sal_Int32 c1;
- sal_Int32 c2;
- do
- {
- if ( !nStr1Len )
- return *pStr2 == '\0' ? 0 : -1;
-
- /* If character between 'A' and 'Z', than convert it to lowercase */
- c1 = (sal_Int32)*pStr1;
- c2 = (sal_Int32)((unsigned char)*pStr2);
- if ( (c1 >= 65) && (c1 <= 90) )
- c1 += 32;
- if ( (c2 >= 65) && (c2 <= 90) )
- c2 += 32;
- nRet = c1-c2;
- if ( nRet != 0 )
- return nRet;
-
- pStr1++;
- pStr2++;
- nStr1Len--;
- }
- while( c2 );
-
- return 0;
-}
-
-sal_Int32 rtl_ustr_ascii_compareIgnoreAsciiCase_WithLengths(
- sal_Unicode const * first, sal_Int32 firstLen,
- char const * second, sal_Int32 secondLen)
-{
- sal_Int32 i;
- sal_Int32 len = firstLen < secondLen ? firstLen : secondLen;
- for (i = 0; i < len; ++i) {
- sal_Int32 c1 = *first++;
- sal_Int32 c2 = (unsigned char) *second++;
- sal_Int32 d;
- if (c1 >= 65 && c1 <= 90) {
- c1 += 32;
- }
- if (c2 >= 65 && c2 <= 90) {
- c2 += 32;
- }
- d = c1 - c2;
- if (d != 0) {
- return d;
- }
- }
- return firstLen - secondLen;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Int32 SAL_CALL rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength( const sal_Unicode* pStr1,
- sal_Int32 nStr1Len,
- const sal_Char* pStr2,
- sal_Int32 nShortenedLength )
-{
- const sal_Unicode* pStr1End = pStr1 + nStr1Len;
- sal_Int32 nRet;
- sal_Int32 c1;
- sal_Int32 c2;
- while ( (nShortenedLength > 0) &&
- (pStr1 < pStr1End) && *pStr2 )
- {
- /* Check ASCII range */
- OSL_ENSURE( (*pStr2 & 0x80) == 0, "Found ASCII char > 127");
-
- /* If character between 'A' and 'Z', than convert it to lowercase */
- c1 = (sal_Int32)*pStr1;
- c2 = (sal_Int32)((unsigned char)*pStr2);
- if ( (c1 >= 65) && (c1 <= 90) )
- c1 += 32;
- if ( (c2 >= 65) && (c2 <= 90) )
- c2 += 32;
- nRet = c1-c2;
- if ( nRet != 0 )
- return nRet;
-
- nShortenedLength--;
- pStr1++;
- pStr2++;
- }
-
- if ( nShortenedLength <= 0 )
- return 0;
-
- if ( *pStr2 )
- {
- OSL_ENSURE( pStr1 == pStr1End, "pStr1 == pStr1End failed" );
- // first is a substring of the second string => less (negative value)
- nRet = -1;
- }
- else
- {
- // greater or equal
- nRet = pStr1End - pStr1;
- }
-
- return nRet;
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL rtl_uString_newFromAscii( rtl_uString** ppThis,
- const sal_Char* pCharStr )
-{
- sal_Int32 nLen;
-
- if ( pCharStr )
- {
- const sal_Char* pTempStr = pCharStr;
- while( *pTempStr )
- pTempStr++;
- nLen = pTempStr-pCharStr;
- }
- else
- nLen = 0;
-
- if ( !nLen )
- {
- IMPL_RTL_STRINGNAME( new )( ppThis );
- return;
- }
-
- if ( *ppThis )
- IMPL_RTL_STRINGNAME( release )( *ppThis );
-
- *ppThis = IMPL_RTL_STRINGNAME( ImplAlloc )( nLen );
- OSL_ASSERT(*ppThis != NULL);
- if ( (*ppThis) )
- {
- IMPL_RTL_STRCODE* pBuffer = (*ppThis)->buffer;
- do
- {
- /* Check ASCII range */
- OSL_ENSURE( ((unsigned char)*pCharStr) <= 127,
- "rtl_uString_newFromAscii() - Found ASCII char > 127" );
-
- *pBuffer = *pCharStr;
- pBuffer++;
- pCharStr++;
- }
- while ( *pCharStr );
- }
-}
-
-void SAL_CALL rtl_uString_newFromCodePoints(
- rtl_uString ** newString, sal_uInt32 const * codePoints,
- sal_Int32 codePointCount)
-{
- sal_Int32 n;
- sal_Int32 i;
- sal_Unicode * p;
- OSL_ASSERT(
- newString != NULL &&
- (codePoints != NULL || codePointCount == 0) &&
- codePointCount >= 0);
- if (codePointCount == 0) {
- rtl_uString_new(newString);
- return;
- }
- if (*newString != NULL) {
- rtl_uString_release(*newString);
- }
- n = codePointCount;
- for (i = 0; i < codePointCount; ++i) {
- OSL_ASSERT(codePoints[i] <= 0x10FFFF);
- if (codePoints[i] >= 0x10000) {
- ++n;
- }
- }
- /* Builds on the assumption that sal_Int32 uses 32 bit two's complement
- representation with wrap around (the necessary number of UTF-16 code
- units will be no larger than 2 * SAL_MAX_INT32, represented as
- sal_Int32 -2): */
- if (n < 0) {
- *newString = NULL;
- return;
- }
- *newString = rtl_uString_ImplAlloc(n);
- if (*newString == NULL) {
- return;
- }
- p = (*newString)->buffer;
- for (i = 0; i < codePointCount; ++i) {
- sal_uInt32 c = codePoints[i];
- if (c < 0x10000) {
- *p++ = (sal_Unicode) c;
- } else {
- c -= 0x10000;
- *p++ = (sal_Unicode) ((c >> 10) | SAL_RTL_FIRST_HIGH_SURROGATE);
- *p++ = (sal_Unicode) ((c & 0x3FF) | SAL_RTL_FIRST_LOW_SURROGATE);
- }
- }
-}
-
-/* ======================================================================= */
-
-static int rtl_ImplGetFastUTF8UnicodeLen( const sal_Char* pStr, sal_Int32 nLen )
-{
- int n;
- sal_uChar c;
- const sal_Char* pEndStr;
-
- n = 0;
- pEndStr = pStr+nLen;
- while ( pStr < pEndStr )
- {
- c = (sal_uChar)*pStr;
-
- if ( !(c & 0x80) )
- pStr++;
- else if ( (c & 0xE0) == 0xC0 )
- pStr += 2;
- else if ( (c & 0xF0) == 0xE0 )
- pStr += 3;
- else if ( (c & 0xF8) == 0xF0 )
- pStr += 4;
- else if ( (c & 0xFC) == 0xF8 )
- pStr += 5;
- else if ( (c & 0xFE) == 0xFC )
- pStr += 6;
- else
- pStr++;
-
- n++;
- }
-
- return n;
-}
-
-/* ----------------------------------------------------------------------- */
-
-static void rtl_string2UString_status( rtl_uString** ppThis,
- const sal_Char* pStr,
- sal_Int32 nLen,
- rtl_TextEncoding eTextEncoding,
- sal_uInt32 nCvtFlags,
- sal_uInt32 *pInfo )
-{
- OSL_ENSURE(nLen == 0 || rtl_isOctetTextEncoding(eTextEncoding),
- "rtl_string2UString_status() - Wrong TextEncoding" );
-
- if ( !nLen )
- {
- rtl_uString_new( ppThis );
- if (pInfo != NULL) {
- *pInfo = 0;
- }
- }
- else
- {
- if ( *ppThis )
- IMPL_RTL_STRINGNAME( release )( *ppThis );
-
- /* Optimization for US-ASCII */
- if ( eTextEncoding == RTL_TEXTENCODING_ASCII_US )
- {
- IMPL_RTL_STRCODE* pBuffer;
- *ppThis = IMPL_RTL_STRINGNAME( ImplAlloc )( nLen );
- if (*ppThis == NULL) {
- if (pInfo != NULL) {
- *pInfo = RTL_TEXTTOUNICODE_INFO_ERROR |
- RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- }
- return;
- }
- pBuffer = (*ppThis)->buffer;
- do
- {
- /* Check ASCII range */
- OSL_ENSURE( ((unsigned char)*pStr) <= 127,
- "rtl_string2UString_status() - Found char > 127 and RTL_TEXTENCODING_ASCII_US is specified" );
-
- *pBuffer = *pStr;
- pBuffer++;
- pStr++;
- nLen--;
- }
- while ( nLen );
- if (pInfo != NULL) {
- *pInfo = 0;
- }
- }
- else
- {
- rtl_uString* pTemp;
- rtl_uString* pTemp2 = NULL;
- rtl_TextToUnicodeConverter hConverter;
- sal_uInt32 nInfo;
- sal_Size nSrcBytes;
- sal_Size nDestChars;
- sal_Size nNewLen;
-
- /* Optimization for UTF-8 - we try to calculate the exact length */
- /* For all other encoding we try the maximum - and reallocate
- the buffer if needed */
- if ( eTextEncoding == RTL_TEXTENCODING_UTF8 )
- {
- nNewLen = rtl_ImplGetFastUTF8UnicodeLen( pStr, nLen );
- /* Includes the string only ASCII, then we could copy
- the buffer faster */
- if ( nNewLen == (sal_Size)nLen )
- {
- IMPL_RTL_STRCODE* pBuffer;
- *ppThis = IMPL_RTL_STRINGNAME( ImplAlloc )( nLen );
- if (*ppThis == NULL)
- {
- if (pInfo != NULL) {
- *pInfo = RTL_TEXTTOUNICODE_INFO_ERROR |
- RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- }
- return;
- }
- pBuffer = (*ppThis)->buffer;
- do
- {
- /* Check ASCII range */
- OSL_ENSURE( ((unsigned char)*pStr) <= 127,
- "rtl_string2UString_status() - UTF8 test encoding is wrong" );
-
- *pBuffer = *pStr;
- pBuffer++;
- pStr++;
- nLen--;
- }
- while ( nLen );
- if (pInfo != NULL) {
- *pInfo = 0;
- }
- return;
- }
- }
- else
- nNewLen = nLen;
-
- nCvtFlags |= RTL_TEXTTOUNICODE_FLAGS_FLUSH;
- hConverter = rtl_createTextToUnicodeConverter( eTextEncoding );
-
- pTemp = IMPL_RTL_STRINGNAME( ImplAlloc )( nNewLen );
- if (pTemp == NULL) {
- if (pInfo != NULL) {
- *pInfo = RTL_TEXTTOUNICODE_INFO_ERROR |
- RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- }
- return;
- }
- nDestChars = rtl_convertTextToUnicode( hConverter, 0,
- pStr, nLen,
- pTemp->buffer, nNewLen,
- nCvtFlags,
- &nInfo, &nSrcBytes );
-
- /* Buffer not big enough, try again with enough space */
- /* Shouldn't be the case, but if we get textencoding which
- could results in more unicode characters we have this
- code here. Could be the case for apple encodings */
- while ( nInfo & RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL )
- {
- rtl_freeMemory( pTemp );
- nNewLen += 8;
- pTemp = IMPL_RTL_STRINGNAME( ImplAlloc )( nNewLen );
- if (pTemp == NULL) {
- if (pInfo != NULL) {
- *pInfo = RTL_TEXTTOUNICODE_INFO_ERROR |
- RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- }
- return;
- }
- nDestChars = rtl_convertTextToUnicode( hConverter, 0,
- pStr, nLen,
- pTemp->buffer, nNewLen,
- nCvtFlags,
- &nInfo, &nSrcBytes );
- }
-
- if (pInfo)
- *pInfo = nInfo;
-
- /* Set the buffer to the correct size or if there is too
- much overhead, reallocate to the correct size */
- if ( nNewLen > nDestChars+8 )
- {
- pTemp2 = IMPL_RTL_STRINGNAME( ImplAlloc )( nDestChars );
- }
- if (pTemp2 != NULL)
- {
- rtl_str_ImplCopy(pTemp2->buffer, pTemp->buffer, nDestChars);
- rtl_freeMemory(pTemp);
- pTemp = pTemp2;
- }
- else
- {
- pTemp->length = nDestChars;
- pTemp->buffer[nDestChars] = 0;
- }
-
- rtl_destroyTextToUnicodeConverter( hConverter );
- *ppThis = pTemp;
-
- /* Results the conversion in an empty buffer -
- create an empty string */
- if ( pTemp && !nDestChars )
- rtl_uString_new( ppThis );
- }
- }
-}
-
-void SAL_CALL rtl_string2UString( rtl_uString** ppThis,
- const sal_Char* pStr,
- sal_Int32 nLen,
- rtl_TextEncoding eTextEncoding,
- sal_uInt32 nCvtFlags )
-{
- rtl_string2UString_status( ppThis, pStr, nLen, eTextEncoding,
- nCvtFlags, NULL );
-}
-
-/* ----------------------------------------------------------------------- */
-
-typedef enum {
- CANNOT_RETURN,
- CAN_RETURN = 1
-} StrLifecycle;
-
-static oslMutex
-getInternMutex()
-{
- static oslMutex pPoolGuard = NULL;
- if( !pPoolGuard )
- {
- oslMutex pGlobalGuard;
- pGlobalGuard = *osl_getGlobalMutex();
- osl_acquireMutex( pGlobalGuard );
- if( !pPoolGuard )
- {
- oslMutex p = osl_createMutex();
- OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
- pPoolGuard = p;
- }
- osl_releaseMutex( pGlobalGuard );
- }
- else
- {
- OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
- }
-
- return pPoolGuard;
-}
-
-/* returns true if we found a dup in the pool */
-static void rtl_ustring_intern_internal( rtl_uString ** newStr,
- rtl_uString * str,
- StrLifecycle can_return )
-{
- oslMutex pPoolMutex;
-
- pPoolMutex = getInternMutex();
-
- osl_acquireMutex( pPoolMutex );
-
- *newStr = rtl_str_hash_intern (str, can_return);
-
- osl_releaseMutex( pPoolMutex );
-
- if( can_return && *newStr != str )
- { /* we dupped, then found a match */
- rtl_freeMemory( str );
- }
-}
-
-void SAL_CALL rtl_uString_intern( rtl_uString ** newStr,
- rtl_uString * str)
-{
- if (SAL_STRING_IS_INTERN(str))
- {
- IMPL_RTL_AQUIRE( str );
- *newStr = str;
- }
- else
- {
- rtl_uString *pOrg = *newStr;
- *newStr = NULL;
- rtl_ustring_intern_internal( newStr, str, CANNOT_RETURN );
- if (pOrg)
- rtl_uString_release (pOrg);
- }
-}
-
-static int rtl_canGuessUOutputLength( int len, rtl_TextEncoding eTextEncoding )
-{
- // FIXME: Maybe we should use a bit flag in the higher bits of the
- // eTextEncoding value itself to determine the encoding type. But if we
- // do, be sure to mask the value in certain places that expect the values
- // to be numbered serially from 0 and up. One such place is
- // Impl_getTextEncodingData().
-
- switch ( eTextEncoding )
- {
- // 1 to 1 (with no zero elements)
- case RTL_TEXTENCODING_IBM_437:
- case RTL_TEXTENCODING_IBM_850:
- case RTL_TEXTENCODING_IBM_860:
- case RTL_TEXTENCODING_IBM_861:
- case RTL_TEXTENCODING_IBM_863:
- case RTL_TEXTENCODING_IBM_865:
- return len;
- break;
- }
- return 0;
-}
-
-void SAL_CALL rtl_uString_internConvert( rtl_uString ** newStr,
- const sal_Char * str,
- sal_Int32 len,
- rtl_TextEncoding eTextEncoding,
- sal_uInt32 convertFlags,
- sal_uInt32 * pInfo )
-{
- rtl_uString *scratch;
-
- if (*newStr)
- {
- rtl_uString_release (*newStr);
- *newStr = NULL;
- }
-
- if ( len < 256 )
- { // try various optimisations
- sal_Int32 ulen;
- if ( len < 0 )
- len = strlen( str );
- if ( eTextEncoding == RTL_TEXTENCODING_ASCII_US )
- {
- int i;
- rtl_uString *pScratch;
- pScratch = alloca( sizeof( rtl_uString )
- + len * sizeof (IMPL_RTL_STRCODE ) );
- for (i = 0; i < len; i++)
- {
- /* Check ASCII range */
- OSL_ENSURE( ((unsigned char)str[i]) <= 127,
- "rtl_ustring_internConvert() - Found char > 127 and RTL_TEXTENCODING_ASCII_US is specified" );
- pScratch->buffer[i] = str[i];
- }
- pScratch->length = len;
- rtl_ustring_intern_internal( newStr, pScratch, CANNOT_RETURN );
- return;
- }
- else if ( (ulen = rtl_canGuessUOutputLength(len, eTextEncoding)) != 0 )
- {
- rtl_uString *pScratch;
- rtl_TextToUnicodeConverter hConverter;
- sal_Size nSrcBytes;
- sal_uInt32 nInfo;
-
- pScratch = alloca( sizeof(rtl_uString) + ulen * sizeof (IMPL_RTL_STRCODE) );
-
- hConverter = rtl_createTextToUnicodeConverter( eTextEncoding );
- rtl_convertTextToUnicode(
- hConverter, 0, str, len, pScratch->buffer, ulen, convertFlags, &nInfo, &nSrcBytes );
- rtl_destroyTextToUnicodeConverter( hConverter );
-
- if (pInfo)
- *pInfo = nInfo;
-
- pScratch->length = ulen;
- rtl_ustring_intern_internal( newStr, pScratch, CANNOT_RETURN );
- return;
- }
-
- /* FIXME: we want a nice UTF-8 / alloca shortcut here */
- }
-
- scratch = NULL;
- rtl_string2UString_status( &scratch, str, len, eTextEncoding, convertFlags,
- pInfo );
- if (!scratch) {
- return;
- }
- rtl_ustring_intern_internal( newStr, scratch, CAN_RETURN );
-}
-
-static void
-internRelease (rtl_uString *pThis)
-{
- oslMutex pPoolMutex;
-
- rtl_uString *pFree = NULL;
- if ( SAL_STRING_REFCOUNT(
- osl_decrementInterlockedCount( &(pThis->refCount) ) ) == 0)
- {
- pPoolMutex = getInternMutex();
- osl_acquireMutex( pPoolMutex );
-
- rtl_str_hash_remove (pThis);
-
- /* May have been separately acquired */
- if ( SAL_STRING_REFCOUNT(
- osl_incrementInterlockedCount( &(pThis->refCount) ) ) == 1 )
- {
- /* we got the last ref */
- pFree = pThis;
- }
- else /* very unusual */
- {
- internRelease (pThis);
- }
-
- osl_releaseMutex( pPoolMutex );
- }
- if (pFree)
- rtl_freeMemory (pFree);
-}
-
-sal_uInt32 SAL_CALL rtl_uString_iterateCodePoints(
- rtl_uString const * string, sal_Int32 * indexUtf16,
- sal_Int32 incrementCodePoints)
-{
- sal_Int32 n;
- sal_Unicode cu;
- sal_uInt32 cp;
- OSL_ASSERT(string != NULL && indexUtf16 != NULL);
- n = *indexUtf16;
- OSL_ASSERT(n >= 0 && n <= string->length);
- while (incrementCodePoints < 0) {
- OSL_ASSERT(n > 0);
- cu = string->buffer[--n];
- if (SAL_RTL_IS_LOW_SURROGATE(cu) && n != 0 &&
- SAL_RTL_IS_HIGH_SURROGATE(string->buffer[n - 1]))
- {
- --n;
- }
- ++incrementCodePoints;
- }
- OSL_ASSERT(n >= 0 && n < string->length);
- cu = string->buffer[n];
- if (SAL_RTL_IS_HIGH_SURROGATE(cu) && string->length - n >= 2 &&
- SAL_RTL_IS_LOW_SURROGATE(string->buffer[n + 1]))
- {
- cp = SAL_RTL_COMBINE_SURROGATES(cu, string->buffer[n + 1]);
- } else {
- cp = cu;
- }
- while (incrementCodePoints > 0) {
- OSL_ASSERT(n < string->length);
- cu = string->buffer[n++];
- if (SAL_RTL_IS_HIGH_SURROGATE(cu) && n != string->length &&
- SAL_RTL_IS_LOW_SURROGATE(string->buffer[n]))
- {
- ++n;
- }
- --incrementCodePoints;
- }
- OSL_ASSERT(n >= 0 && n <= string->length);
- *indexUtf16 = n;
- return cp;
-}
-
-sal_Bool rtl_convertStringToUString(
- rtl_uString ** target, char const * source, sal_Int32 length,
- rtl_TextEncoding encoding, sal_uInt32 flags) SAL_THROW_EXTERN_C()
-{
- sal_uInt32 info;
- rtl_string2UString_status(target, source, length, encoding, flags, &info);
- return (sal_Bool) ((info & RTL_TEXTTOUNICODE_INFO_ERROR) == 0);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/source/uuid.cxx b/sal/rtl/source/uuid.cxx
deleted file mode 100644
index d824cea88..000000000
--- a/sal/rtl/source/uuid.cxx
+++ /dev/null
@@ -1,182 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-#include <osl/mutex.hxx>
-#include <rtl/random.h>
-#include <rtl/uuid.h>
-#include <rtl/digest.h>
-
-#define SWAP_INT32_TO_NETWORK(x)\
- { sal_uInt32 y = x;\
- sal_uInt8 *p = (sal_uInt8 * )&(x); \
- p[0] = (sal_uInt8) ( ( y >> 24 ) & 0xff );\
- p[1] = (sal_uInt8) ( ( y >> 16 ) & 0xff );\
- p[2] = (sal_uInt8) ( ( y >> 8 ) & 0xff );\
- p[3] = (sal_uInt8) ( ( y ) & 0xff);\
- }
-#define SWAP_INT16_TO_NETWORK(x)\
- { sal_uInt16 y = x;\
- sal_uInt8 *p = (sal_uInt8 * )&(x); \
- p[0] = (sal_uInt8) ( ( y >> 8 ) & 0xff );\
- p[1] = (sal_uInt8) ( ( y ) & 0xff);\
- }
-
-#define SWAP_NETWORK_TO_INT16(x)\
- { sal_uInt16 y = x;\
- sal_uInt8 *p = (sal_uInt8 * )&(y);\
- x = ( ( ((sal_uInt16)p[0]) & 0xff) << 8 ) |\
- ( ( (sal_uInt16)p[1]) & 0xff);\
- }
-#define SWAP_NETWORK_TO_INT32(x)\
- { sal_uInt32 y = x;\
- sal_uInt8 *p = (sal_uInt8 * )&(y); \
- x = ( ( ((sal_uInt32)p[0]) & 0xff) << 24 ) |\
- ( ( ((sal_uInt32)p[1]) & 0xff) << 16 ) |\
- ( ( ((sal_uInt32)p[2]) & 0xff) << 8 ) |\
- ( ( (sal_uInt32)p[3]) & 0xff);\
- }
-
-typedef struct _UUID
-{
- sal_uInt32 time_low;
- sal_uInt16 time_mid;
- sal_uInt16 time_hi_and_version;
- sal_uInt8 clock_seq_hi_and_reserved;
- sal_uInt8 clock_seq_low;
- sal_uInt8 node[6];
-} UUID;
-
-static void write_v3( sal_uInt8 *pUuid )
-{
- UUID uuid;
- // copy to avoid alignment problems
- memcpy( &uuid , pUuid , 16 );
-
- SWAP_NETWORK_TO_INT32( uuid.time_low );
- SWAP_NETWORK_TO_INT16( uuid.time_mid );
- SWAP_NETWORK_TO_INT16( uuid.time_hi_and_version );
-
- /* put in the variant and version bits */
- uuid.time_hi_and_version &= 0x0FFF;
- uuid.time_hi_and_version |= (3 << 12);
- uuid.clock_seq_hi_and_reserved &= 0x3F;
- uuid.clock_seq_hi_and_reserved |= 0x80;
-
- SWAP_INT32_TO_NETWORK( uuid.time_low );
- SWAP_INT16_TO_NETWORK( uuid.time_mid );
- SWAP_INT16_TO_NETWORK( uuid.time_hi_and_version );
-
- memcpy( pUuid , &uuid , 16 );
-}
-
-
-extern "C" void SAL_CALL rtl_createUuid( sal_uInt8 *pTargetUUID ,
- const sal_uInt8 *, sal_Bool )
-{
- {
- osl::MutexGuard g(osl::Mutex::getGlobalMutex());
- static rtlRandomPool pool = NULL;
- if (pool == NULL) {
- pool = rtl_random_createPool();
- if (pool == NULL) {
- abort();
- // only possible way to signal failure here (rtl_createUuid
- // being part of a fixed C API)
- }
- }
- if (rtl_random_getBytes(pool, pTargetUUID, 16) != rtl_Random_E_None) {
- abort();
- // only possible way to signal failure here (rtl_createUuid
- // being part of a fixed C API)
- }
- }
- // See ITU-T Recommendation X.667:
- pTargetUUID[6] &= 0x0F;
- pTargetUUID[6] |= 0x40;
- pTargetUUID[8] &= 0x3F;
- pTargetUUID[8] |= 0x80;
-}
-
-
-extern "C" void SAL_CALL rtl_createNamedUuid( sal_uInt8 *pTargetUUID,
- const sal_uInt8 *pNameSpaceUUID,
- const rtl_String *pName )
-{
- rtlDigest digest = rtl_digest_createMD5 ();
-
- rtl_digest_updateMD5( digest, pNameSpaceUUID , 16 );
- rtl_digest_updateMD5( digest, pName->buffer , pName->length );
-
- rtl_digest_getMD5( digest, pTargetUUID , 16 );
- rtl_digest_destroyMD5 (digest);
-
- write_v3(pTargetUUID);
-}
-
-
-
-extern "C" sal_Int32 SAL_CALL rtl_compareUuid( const sal_uInt8 *pUUID1 , const sal_uInt8 *pUUID2 )
-{
- int i;
- UUID u1;
- UUID u2;
- memcpy( &u1 , pUUID1 , 16 );
- memcpy( &u2 , pUUID2 , 16 );
-
- SWAP_NETWORK_TO_INT32( u1.time_low );
- SWAP_NETWORK_TO_INT16( u1.time_mid );
- SWAP_NETWORK_TO_INT16( u1.time_hi_and_version );
-
- SWAP_NETWORK_TO_INT32( u2.time_low );
- SWAP_NETWORK_TO_INT16( u2.time_mid );
- SWAP_NETWORK_TO_INT16( u2.time_hi_and_version );
-
-#define CHECK(f1, f2) if (f1 != f2) return f1 < f2 ? -1 : 1;
- CHECK(u1.time_low, u2.time_low);
- CHECK(u1.time_mid, u2.time_mid);
- CHECK(u1.time_hi_and_version, u2.time_hi_and_version);
- CHECK(u1.clock_seq_hi_and_reserved, u2.clock_seq_hi_and_reserved);
- CHECK(u1.clock_seq_low, u2.clock_seq_low);
- for (i = 0; i < 6; i++)
- {
- if (u1.node[i] < u2.node[i])
- return -1;
- if (u1.node[i] > u2.node[i])
- return 1;
- }
- return 0;
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/systools/win32/onlineupdate/makefile.mk b/sal/systools/win32/onlineupdate/makefile.mk
deleted file mode 100755
index 027ddef11..000000000
--- a/sal/systools/win32/onlineupdate/makefile.mk
+++ /dev/null
@@ -1,78 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-PRJNAME=sal
-TARGET=onlinecheck
-
-USE_DEFFILE=TRUE
-LIBTARGET=NO
-
-# --- Settings ----------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-# --- Targets ----------------------------------
-
-.IF "$(GUI)"=="WNT"
-
-.IF "$(COMEX)"=="9"
-.IF "$(PSDK_HOME)"!=""
-# Since the 02/2003 PSDK the "new" linker is needed here.
-LINK=$(WRAPCMD) "$(PSDK_HOME)$/Bin$/Win64$/LINK.EXE"
-.ENDIF
-.ENDIF
-
-SLOFILES=\
- $(SLO)$/onlinecheck.obj
-
-
-SHL1TARGET=$(TARGET)
-SHL1IMPLIB=$(SHL1TARGET)
-SHL1DEF=$(MISC)/$(SHL1TARGET).def
-DEF1NAME=$(SHL1TARGET)
-DEF1EXPORTFILE=$(SHL1TARGET).dxp
-
-DEF1DEPN=\
- $(DEF1EXPORTFILE)\
- makefile.mk
-
-SHL1OBJS=$(SLOFILES)
-
-SHL1STDLIBS=\
- $(KERNEL32LIB)\
- $(LIBCMT)\
- $(WININETLIB)
-
-
-.ENDIF
-
-.INCLUDE : target.mk
-
diff --git a/sal/systools/win32/onlineupdate/onlinecheck.cxx b/sal/systools/win32/onlineupdate/onlinecheck.cxx
deleted file mode 100644
index dd09b7d83..000000000
--- a/sal/systools/win32/onlineupdate/onlinecheck.cxx
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-#ifdef _MSC_VER
-#pragma warning( disable: 4668 )
-#endif
-
-#include <sal/types.h>
-#include <sal/macros.h>
-
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#include <wininet.h>
-
-#ifdef UNICODE
-#define _UNICODE
-#endif
-#include <tchar.h>
-
-// #i71984
-extern "C" sal_Bool SAL_CALL hasInternetConnection()
-{
- DWORD dwFlags;
- TCHAR szConnectionName[1024];
-
-#ifndef __MINGW32__
- __try {
-#endif
- BOOL fIsConnected = InternetGetConnectedStateEx(
- &dwFlags,
- szConnectionName,
- SAL_N_ELEMENTS(szConnectionName),
- 0 );
-
- return fIsConnected ? sal_True : sal_False;
-
-#ifndef __MINGW32__
- } __except( EXCEPTION_EXECUTE_HANDLER ) {
- return sal_False;
- }
-#endif
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/systools/win32/onlineupdate/onlinecheck.dxp b/sal/systools/win32/onlineupdate/onlinecheck.dxp
deleted file mode 100644
index 7d3a3cac0..000000000
--- a/sal/systools/win32/onlineupdate/onlinecheck.dxp
+++ /dev/null
@@ -1,28 +0,0 @@
-;*************************************************************************
-;
-; DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-;
-; Copyright 2000, 2010 Oracle and/or its affiliates.
-;
-; OpenOffice.org - a multi-platform office productivity suite
-;
-; This file is part of OpenOffice.org.
-;
-; OpenOffice.org is free software: you can redistribute it and/or modify
-; it under the terms of the GNU Lesser General Public License version 3
-; only, as published by the Free Software Foundation.
-;
-; OpenOffice.org is distributed in the hope that it will be useful,
-; but WITHOUT ANY WARRANTY; without even the implied warranty of
-; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-; GNU Lesser General Public License version 3 for more details
-; (a copy is included in the LICENSE file that accompanied this code).
-;
-; You should have received a copy of the GNU Lesser General Public License
-; version 3 along with OpenOffice.org. If not, see
-; <http://www.openoffice.org/license.html>
-; for a copy of the LGPLv3 License.
-;
-;*************************************************************************
-
-hasInternetConnection
diff --git a/sal/systools/win32/uwinapi/makefile.mk b/sal/systools/win32/uwinapi/makefile.mk
deleted file mode 100644
index 0989b6121..000000000
--- a/sal/systools/win32/uwinapi/makefile.mk
+++ /dev/null
@@ -1,86 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-PRJNAME=sal
-TARGET=uwinapi
-
-USE_DEFFILE=TRUE
-LIBTARGET=NO
-
-# --- Settings ----------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-# --- Targets ----------------------------------
-
-
-.IF "$(GUI)"=="WNT"
-.IF "$(COM)"=="GCC"
-CFLAGSCXX+=-Wno-unused-parameter -Wno-return-type
-.ENDIF
-
-SLOFILES=\
- $(SLO)$/snprintf.obj\
- $(SLO)$/snwprintf.obj
-
-SHL1TARGET=$(TARGET)
-SHL1IMPLIB=$(SHL1TARGET)
-SHL1DEF=$(MISC)/$(SHL1TARGET).def
-DEF1NAME=$(SHL1TARGET)
-DEF1DEPN=\
- $(DEF1EXPORTFILE)\
- makefile.mk
-
-SHL1OBJS=$(SLOFILES)
-
-#No default libraries
-STDSHL=
-
-.IF "$(COM)"=="GCC"
-SHL1STDLIBS=\
- -lmingw32 \
- $(MINGW_LIBGCC)
-MINGWSSTDOBJ=
-MINGWSSTDENDOBJ=
-.ENDIF
-
-SHL1STDLIBS+=\
- $(KERNEL32LIB)\
- $(USER32LIB)\
- $(ADVAPI32LIB)\
- $(VERSIONLIB)\
- $(LIBCMT)\
- $(SHLWAPILIB)
-
-
-.ENDIF
-
-.INCLUDE : target.mk
diff --git a/sal/systools/win32/uwinapi/snprintf.c b/sal/systools/win32/uwinapi/snprintf.c
deleted file mode 100644
index 3c07e6863..000000000
--- a/sal/systools/win32/uwinapi/snprintf.c
+++ /dev/null
@@ -1,13 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* Not unicode */
-#undef _UNICODE
-
-/* Support MBCS and SBCS */
-
-#ifndef _MBCS
-#define _MBCS
-#endif
-
-#include "sntprintf.c"
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/systools/win32/uwinapi/sntprintf.c b/sal/systools/win32/uwinapi/sntprintf.c
deleted file mode 100644
index b5316f022..000000000
--- a/sal/systools/win32/uwinapi/sntprintf.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-#define _SNPRINTF_DLLIMPORT __declspec( dllexport )
-
-#include <stdarg.h>
-#include <stdio.h>
-
-#ifdef __MINGW32__
-/* MinGW-w64 doesn't have a _tcsinc() inline or library function */
-#define _MB_MAP_DIRECT
-#endif
-#include <tchar.h>
-#include <systools/win32/snprintf.h>
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1400)
-#pragma warning(disable:4273) // inconsistent dll linkage
-#endif
-
-#if (defined(_MSC_VER) && (_MSC_VER < 1300)) || (defined(__MINGW32_VERSION) && ((__MINGW32_MAJOR_VERSION < 3)||((__MINGW32_MAJOR_VERSION == 3)&&(__MINGW32_MINOR_VERSION < 18))))
-
-/* The non-debug versions of _vscprintf/_scprintf are just calls
- to _vsprintf/_sprintf with string buffer pointer set to NULL,
- requires MSVCRT version 7.0 */
-#ifdef __MINGW32__
-static int __cdecl _vsctprintf( const TCHAR *format, va_list ap )
-#else
-static int __cdecl _vsctprintf( const _TXCHAR *format, va_list ap )
-#endif
-{
- FILE *fp = _tfopen( _T("NUL"), _T("wb") );
-
- if ( fp )
- {
- int retval = _vftprintf( fp, format, ap );
- fclose( fp );
-
- return retval;
- }
-
- return -1;
-}
-#endif
-
-/* This function retrieves the pointer to the last character of a buffer.
- That is the pointer to the last character of the buffer that fits
- completly into that buffer or the position of the terminating zero.
-
- buffer Pointer to a _TXCHAR buffer to be examined
- count size of the buffer to be examined
-
- return The pointer to the last character that fits into the buffer or
- NULL if count is zero or count is one and the first byte was a
- leading DBCS character
-*/
-
-static _TCHAR *GetLastBufferChar( _TCHAR *buffer, size_t count )
-{
- _TCHAR *last = NULL;
- _TCHAR *cur = buffer;
-
- while ( (size_t)(cur - buffer) < count )
- {
- last = cur;
-
- if ( !*last )
- break;
-
- cur = _tcsinc(last);
- }
-
- return last;
-}
-
-/* Implementation of snprintf following the ISO/IEC 9899:1999 (ISO C99) standard */
-
-_SNPRINTF_DLLIMPORT int __cdecl vsntprintf( _TCHAR *buffer, size_t count, const _TCHAR *format, va_list list )
-{
- int retval;
-
- /* First of all call the existing non POSIX standard function assuming
- the buffer size will be large enough */
-
- retval = _vsntprintf( buffer, count, format, list );
-
- if ( retval < 0 )
- {
- /* If the buffer wasn't large enough ensure that the buffer will be
- zero terminated */
-
- _TCHAR *last = GetLastBufferChar( buffer, count );
- if (last )
- *last = 0;
-
- /* Retrieve the count of characters that would have been written
- if the buffer were large enough */
-
- retval = _vsctprintf( format, list );
- }
- else if ( (size_t)retval == count && count )
- {
- /* If the buffer was large enough but not large enough for the trailing
- zero make the buffer zero terminated */
-
- _TCHAR *last = GetLastBufferChar( buffer, count );
- if (last )
- *last = 0;
- }
-
- return retval;
-}
-
-/* Implementation of snprintf following the ISO/IEC 9899:1999 (ISO C99) standard */
-
-_SNPRINTF_DLLIMPORT int __cdecl sntprintf( _TCHAR *buffer, size_t count, const _TCHAR *format, ... )
-{
- va_list list;
- int retval;
-
- va_start( list, format );
- retval = vsntprintf( buffer, count, format, list );
- va_end( list );
-
- return retval;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/systools/win32/uwinapi/snwprintf.c b/sal/systools/win32/uwinapi/snwprintf.c
deleted file mode 100644
index 9b159c9b2..000000000
--- a/sal/systools/win32/uwinapi/snwprintf.c
+++ /dev/null
@@ -1,8 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-#ifndef _UNICODE
-#define _UNICODE
-#endif
-
-#include "sntprintf.c"
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/test/bootstrap b/sal/test/bootstrap
deleted file mode 100644
index 6e307417e..000000000
--- a/sal/test/bootstrap
+++ /dev/null
@@ -1,65 +0,0 @@
-#/bin/tcsh
-
-setenv MYBOOTSTRAPTESTVALUE 0
-echo 1
-./testbootstrap 1 -env:MYBOOTSTRAPTESTVALUE=1
-
-echo 2
-./testbootstrap.bin file
-
-echo 3
-./testbootstrap.Bin file
-
-echo 4
-./testbootstrap.exe file
-
-echo 5
-./testbootstrap.Exe file
-
-echo 6
-./testbootstrap 0 -env:INIFILENAME=
-
-unsetenv MYBOOTSTRAPTESTVALUE
-echo 7
-./testbootstrap default -env:INIFILENAME=
-
-echo 8
-./testbootstrap default -env:MYBOOTSTRAPTESTVALUE2=1 -env:INIFILENAME=
-
-echo
-echo "macro tests"
-echo
-
-# simple macro expansion
-echo 9
-./testbootstrap _first_second_third_ -env:FIRST=first -env:SECOND=second -env:THIRD=third -env:MYBOOTSTRAPTESTVALUE='_${FIRST}_${SECOND}_${THIRD}_'
-
-# simple quoting
-echo 10
-./testbootstrap '_${FIRST}_${SECOND}_${THIRD}_' -env:FIRST=first -env:SECOND=second -env:THIRD=third -env:MYBOOTSTRAPTESTVALUE='_\$\{FIRST\}_\$\{SECOND\}_\$\{THIRD\}_'
-
-# simple ini access
-echo 11
-./testbootstrap TheKeysValue -env:'MYBOOTSTRAPTESTVALUE=${./bootstraptest.ini:TheSection:TheKey}'
-
-# ini access with simple macro expansion
-echo 12
-./testbootstrap TheKeysValue -env:ININAME=./bootstraptest.ini -env:SECTIONNAME=TheSection -env:KEYNAME=TheKey \
- -env:'MYBOOTSTRAPTESTVALUE=${$ININAME:$SECTIONNAME:$KEYNAME}'
-
-# ini access with complex macro expansion
-echo 13
-./testbootstrap TheKeysValue -env:ININAME=./bootstraptest.ini \
- -env:'MYBOOTSTRAPTESTVALUE=${$ININAME:${$ININAME:SecondSection:IndirectSection}:${$ININAME:SecondSection:IndirectKey}}'
-
-# test no infinit recursion
-echo 14
-./testbootstrap "***RECURSION DETECTED***" -env:'MYBOOTSTRAPTESTVALUE=$MYBOOTSTRAPTESTVALUE'
-
-# test unicode
-echo 15
-./testbootstrap AAABBBCCC000 -env:'MYBOOTSTRAPTESTVALUE=\u0041\u0041\u0041\u0042\u0042\u0042\u0043\u0043\u0043\u0030\u0030\u0030'
-
-echo
-echo "bootstrap test finished"
-echo
diff --git a/sal/test/bootstrap.bat b/sal/test/bootstrap.bat
deleted file mode 100755
index 2d3e9df3c..000000000
--- a/sal/test/bootstrap.bat
+++ /dev/null
@@ -1,62 +0,0 @@
-@echo off
-set MYBOOTSTRAPTESTVALUE=0
-echo 1
-.\testbootstrap 1 -env:MYBOOTSTRAPTESTVALUE=1
-
-echo 2
-.\testbootstrap.exe file
-
-echo 3
-.\testbootstrap.Exe file
-
-echo 4
-.\testbootstrap.bin file
-
-echo 5
-.\testbootstrap.Bin file
-
-echo 6
-.\testbootstrap 0 -env:INIFILENAME=
-
-echo 7
-set MYBOOTSTRAPTESTVALUE=
-rem simply ignore the file ....
-.\testbootstrap default -env:INIFILENAME=
-
-echo 8
-.\testbootstrap default -env:MYBOOTSTRAPTESTVALUE2=1 -env:INIFILENAME=
-
-echo
-echo "macro tests"
-echo
-
-rem simple macro expansion
-echo 9
-.\testbootstrap _first_second_third_ -env:FIRST=first -env:SECOND=second -env:THIRD=third -env:MYBOOTSTRAPTESTVALUE=_${FIRST}_${SECOND}_${THIRD}_
-
-rem simple quoting
-echo 10
-.\testbootstrap _${FIRST}_${SECOND}_${THIRD}_ -env:FIRST=first -env:SECOND=second -env:THIRD=third -env:MYBOOTSTRAPTESTVALUE=_\$\{FIRST\}_\$\{SECOND\}_\$\{THIRD\}_
-
-rem simple ini access
-echo 11
-.\testbootstrap TheKeysValue -env:MYBOOTSTRAPTESTVALUE=${./bootstraptest.ini:TheSection:TheKey}
-
-rem ini access with simple macro expansion
-echo 12
-.\testbootstrap TheKeysValue -env:ININAME=./bootstraptest.ini -env:SECTIONNAME=TheSection -env:KEYNAME=TheKey -env:MYBOOTSTRAPTESTVALUE=${$ININAME:$SECTIONNAME:$KEYNAME}
-
-rem ini access with complex macro expansion
-echo 13
-.\testbootstrap TheKeysValue -env:ININAME=./bootstraptest.ini -env:MYBOOTSTRAPTESTVALUE=${$ININAME:${$ININAME:SecondSection:IndirectSection}:${$ININAME:SecondSection:IndirectKey}}
-
-rem test no infinit recursion
-echo 14
-.\testbootstrap "***RECURSION DETECTED***" -env:MYBOOTSTRAPTESTVALUE=$MYBOOTSTRAPTESTVALUE
-
-rem test unicode
-echo 15
-.\testbootstrap AAABBBCCC000 -env:MYBOOTSTRAPTESTVALUE=\u0041\u0041\u0041\u0042\u0042\u0042\u0043\u0043\u0043\u0030\u0030\u0030
-
-
-@echo bootstrap test finished \ No newline at end of file
diff --git a/sal/test/bootstrap.pl b/sal/test/bootstrap.pl
deleted file mode 100755
index eae46962f..000000000
--- a/sal/test/bootstrap.pl
+++ /dev/null
@@ -1,260 +0,0 @@
-:
-eval 'exec perl -wS $0 ${1+"$@"}'
- if 0;
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-
-my $rc;
-my $state = 1;
-my $comment = "";
-
-$ENV{MYBOOTSTRAPTESTVALUE}=0;
-
-$rc = system "./testbootstrap", 1, "-env:MYBOOTSTRAPTESTVALUE=1";
-if (!$rc) {
- $comment = $comment . "commandline over environment test not passed\n";
- $state = 0;
-}
-
-$rc = system "./testbootstrap", "0", "-env:INIFILENAME=";
-if (!$rc) {
- $comment = $comment . "exe custom ini test not passed\n";
- $state = 0;
-}
-
-delete $ENV{MYBOOTSTRAPTESTVALUE};
-
-$rc = system "./testbootstrap.bin", "file";
-if (!$rc) {
- $comment = $comment . "extensions cut test not passed with .bin\n";
- $state = 0;
-}
-
-$rc = system "./testbootstrap.Bin", "file";
-if (!$rc) {
- $comment = $comment . "extensions cut test not passed with .Bin\n";
- $state = 0;
-}
-
-$rc = system "./testbootstrap.exe", "file";
-if (!$rc) {
- $comment = $comment . "extensions cut test not passed with .exe\n";
- $state = 0;
-}
-
-$rc = system "./testbootstrap.Exe", "file";
-if (!$rc) {
- $comment = $comment . "extensions cut test not passed with .Exe\n";
- $state = 0;
-}
-
-if ($ENV{GUI} eq "WNT") {
- $rc = system "./testbootstrap", "auxaux", "-env:iniName=ini.ini", '-env:MYBOOTSTRAPTESTVALUE=$CUSTOMINIVALUE';
-}
-else {
- $rc = system "./testbootstrap", "auxaux", "-env:iniName=inirc", '-env:MYBOOTSTRAPTESTVALUE=$CUSTOMINIVALUE';
-}
-if (!$rc) {
- $comment = $comment . "custom ini test not passed\n";
- $state = 0;
-}
-
-if ($ENV{GUI} eq "WNT") {
- $comment = $comment . '$SYSUSERHOME not testable under windows' . "\n";
-}
-else {
- $rc = system "./testbootstrap", "file://$ENV{HOME}", '-env:MYBOOTSTRAPTESTVALUE=$SYSUSERHOME';
- if (!$rc) {
- $comment = $comment . '$SYSUSERHOME test not passed' . "\n";
- $state = 0;
- }
-}
-
-if ($ENV{GUI} eq "WNT") {
- $comment = $comment . '$SYSUSERCONFIG' . " not testable under windows\n";
-}
-else {
- $rc = system "./testbootstrap", "file://$ENV{HOME}", '-env:MYBOOTSTRAPTESTVALUE=$SYSUSERCONFIG';
- if (!$rc) {
- $comment = $comment . '$SYSUSERCONFIG test not passed' . "\n";
- $state = 0;
- }
-}
-
-if ($ENV{GUI} eq "WNT") {
- $comment = $comment . '$SYSBINDIR' . " not testable under windows\n";
-}
-else {
- $rc = system "./testbootstrap", "file://$ENV{PWD}", '-env:MYBOOTSTRAPTESTVALUE=$SYSBINDIR';
- if (!$rc) {
- $comment = $comment . '$SYSBINDIR test not passed' . "\n";
- $state = 0;
- }
-}
-
-if ($ENV{GUI} eq "WNT") {
- $rc = system "./testbootstrap", "inherited_value", '-env:MYBOOTSTRAPTESTVALUE=$INHERITED_VALUE', "-env:iniName=ini.ini";
-}
-else {
- $rc = system "./testbootstrap", "inherited_value", '-env:MYBOOTSTRAPTESTVALUE=$INHERITED_VALUE', "-env:iniName=inirc";
-}
-if (!$rc) {
- $comment = $comment . "inherited value not passed\n";
- $state = 0;
-}
-
-if ($ENV{GUI} eq "WNT") {
- $rc = system "./testbootstrap", "not_overwritten", '-env:MYBOOTSTRAPTESTVALUE=$INHERITED_OVERWRITTEN_VALUE', "-env:iniName=ini.ini";
-}
-else {
- $rc = system "./testbootstrap", "not_overwritten", '-env:MYBOOTSTRAPTESTVALUE=$INHERITED_OVERWRITTEN_VALUE', "-env:iniName=inirc";
-}
-if (!$rc) {
- $comment = $comment . "inherited overwritten value not passed\n";
- $state = 0;
-}
-
-
-$rc = system "./testbootstrap", "defaultvalue", "-env:INIFILENAME=", "-env:Default=defaultvalue", "-env:USEDEFAULT=1";
-if (!$rc) {
- $comment = $comment . "default test from parameter not passed\n";
- $state = 0;
-}
-
-if ($ENV{GUI} eq "WNT") {
- $rc = system "./testbootstrap", "defaultValue", "-env:iniName=default.ini", "-env:INIFILENAME=", "-env:USEDEFAULT=1";
-}
-else {
- $rc = system "./testbootstrap", "defaultValue", "-env:iniName=defaultrc", "-env:INIFILENAME=", "-env:USEDEFAULT=1";
-}
-if (!$rc) {
- $comment = $comment . "default test from custom ini not passed\n";
- $state = 0;
-}
-
-# simple macro expansion
-$rc = system "./testbootstrap",
- "_first_second_third_",
- "-env:FIRST=first",
- "-env:SECOND=second",
- "-env:THIRD=third",
- '-env:MYBOOTSTRAPTESTVALUE=_${FIRST}_${SECOND}_${THIRD}_';
-if (!$rc) {
- $comment = $comment . "simple macro expansion test not passed\n";
- $state = 0;
-}
-
-# simple quoting
-$rc = system "./testbootstrap",
- '_${FIRST}_${SECOND}_${THIRD}_',
- "-env:FIRST=first",
- "-env:SECOND=second",
- "-env:THIRD=third",
- '-env:MYBOOTSTRAPTESTVALUE=_\$\{FIRST\}_\$\{SECOND\}_\$\{THIRD\}_';
-if (!$rc) {
- $comment = $comment . "simple macro quoting test not passed\n";
- $state = 0;
-}
-
-# simple ini access
-$rc = system "./testbootstrap",
- "TheIniKeysValue",
- '-env:MYBOOTSTRAPTESTVALUE=${./bootstraptest.ini:TheIniKey}';
-if (!$rc) {
- $comment = $comment . "simple macro ini access test not passed\n";
- $state = 0;
-}
-
-# simple profile access
-$rc = system "./testbootstrap",
- "TheKeysValue",
- '-env:MYBOOTSTRAPTESTVALUE=${./bootstraptest.ini:TheSection:TheKey}';
-if (!$rc) {
- $comment = $comment . "simple macro profile access test not passed\n";
- $state = 0;
-}
-
-# profile access with simple macro expansion
-$rc = system "./testbootstrap",
- "TheKeysValue",
- "-env:ININAME=./bootstraptest.ini",
- "-env:SECTIONNAME=TheSection",
- "-env:KEYNAME=TheKey",
- '-env:MYBOOTSTRAPTESTVALUE=${$ININAME:$SECTIONNAME:$KEYNAME}';
-if (!$rc) {
- $comment = $comment . "profile access with simple macro expansion test not passed\n";
- $state = 0;
-}
-
-# profile access with complex macro expansion
-$rc = system "./testbootstrap",
- "TheKeysValue",
- "-env:ININAME=./bootstraptest.ini",
- '-env:MYBOOTSTRAPTESTVALUE=${$ININAME:${$ININAME:SecondSection:IndirectSection}:${$ININAME:SecondSection:IndirectKey}}';
-if (!$rc) {
- $comment = $comment . "profile access with complex macro expansion test not passed\n";
- $state = 0;
-}
-
-# test no infinit recursion
-if ($ENV{GUI} eq "WNT") {
- $rc = system "./testbootstrap",
- '"***RECURSION DETECTED***"',
- '-env:MYBOOTSTRAPTESTVALUE=$MYBOOTSTRAPTESTVALUE';
-}
-else {
- $rc = system "./testbootstrap",
- '***RECURSION DETECTED***',
- '-env:MYBOOTSTRAPTESTVALUE=$MYBOOTSTRAPTESTVALUE';
-}
-if (!$rc) {
- $comment = $comment . "no infinit recursion test not passed\n";
- $state = 0;
-}
-
-# test unicode
-$rc = system "./testbootstrap",
- "AAABBBCCC000",
- '-env:MYBOOTSTRAPTESTVALUE=\u0041\u0041\u0041\u0042\u0042\u0042\u0043\u0043\u0043\u0030\u0030\u0030';
-if (!$rc) {
- $comment = $comment . "uncode not passed\n";
- $state = 0;
-}
-
-print "**************************\n";
-if($state) {
- print "****** tests passed ******\n";
-}
-else {
- print "**** tests NOT passed ****\n";
- print "Commnent:\n", $comment, "\n";
-}
-print "**************************\n";
-
-
-
diff --git a/sal/test/bootstraptest.ini b/sal/test/bootstraptest.ini
deleted file mode 100644
index c6569f367..000000000
--- a/sal/test/bootstraptest.ini
+++ /dev/null
@@ -1,11 +0,0 @@
-TheIniKey=TheIniKeysValue
-
-
-[TheSection]
-TheKey=TheKeysValue
-
-[SecondSection]
-IndirectSection=TheSection
-IndirectKey=TheKey
-
-
diff --git a/sal/test/makefile.mk b/sal/test/makefile.mk
deleted file mode 100644
index 1f4b339a1..000000000
--- a/sal/test/makefile.mk
+++ /dev/null
@@ -1,154 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..
-
-PRJNAME=sal
-TARGET=saltest
-TARGETTYPE=CUI
-LIBTARGET=NO
-USE_LDUMP2=TRUE
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-# ------------------------------------------------------------------
-
-.IF "$(GUI)"=="WNT"
-BOOTSTRAPSCRIPT=bootstrap.bat
-BOOTSTRAPINI=testbootstrap.ini
-MY_SCRIPTCAT=cat
-.ELSE
-BOOTSTRAPSCRIPT=bootstrap
-BOOTSTRAPINI=testbootstraprc
-MY_SCRIPTCAT=tr -d "\015" <
-.ENDIF
-
-APP2OBJS = $(OBJ)$/testbootstrap.obj
-
-OBJFILES= \
- $(APP2OBJS)
-
-APP2TARGET = testbootstrap
-APP2STDLIBS = $(SALLIB)
-
-APP3OBJS = $(OBJ)$/test_salmain.obj
-APP3TARGET = test_salmain
-APP3STDLIBS = $(SALLIB)
-
-APP4OBJS = $(OBJ)$/test_salmainwithargs.obj
-APP4TARGET = test_salmainwithargs
-APP4STDLIBS = $(SALLIB)
-
-
-# --- Targets ------------------------------------------------------
-
-.IF "$(depend)" == ""
-ALL : ALLTAR \
- $(BIN)$/$(BOOTSTRAPSCRIPT) \
- $(BIN)$/$(BOOTSTRAPINI) \
- $(BIN)$/bootstraptest.ini \
- $(BIN)$/$(APP2TARGET).bin \
- $(BIN)$/$(APP2TARGET).Bin \
- $(BIN)$/$(APP2TARGET).Exe \
- $(BIN)$/bootstrap.pl
-
-
-.IF "$(GUI)"=="UNX"
-ALL: $(BIN)$/$(APP2TARGET).exe \
- $(BIN)$/inirc \
- $(BIN)$/defaultrc
-
-$(BIN)$/$(APP2TARGET).exe : $(APP2TARGETN)
- cp $(APP2TARGETN) $@
-
-$(BIN)$/inirc:
- echo "CUSTOMINIVALUE=auxaux" > $@
- echo "INHERITED_OVERWRITTEN_VALUE=inherited_overwritten_value" >> $@
-
-$(BIN)$/defaultrc:
- echo "Default=defaultValue" > $@
-
-.ELSE
-
-ALL: $(BIN)$/ini.ini \
- $(BIN)$/default.ini
-
-$(BIN)$/ini.ini:
- echo CUSTOMINIVALUE=auxaux > $@
- echo INHERITED_OVERWRITTEN_VALUE=inherited_overwritten_value >> $@
-
-
-$(BIN)$/default.ini:
- echo Default=defaultValue > $@
-
-.ENDIF
-
-$(BIN)$/bootstrap.pl:
- cp bootstrap.pl $@
-
-$(BIN)$/$(APP2TARGET).bin : $(APP2TARGETN)
- cp $(APP2TARGETN) $@
-
-$(BIN)$/$(APP2TARGET).Bin : $(APP2TARGETN)
- cp $(APP2TARGETN) $@
-
-$(BIN)$/$(APP2TARGET).Exe : $(APP2TARGETN)
- cp $(APP2TARGETN) $@
-
-.ELSE
-ALL: ALLDEP
-.ENDIF
-
-.INCLUDE : target.mk
-
-
-$(BIN)$/$(BOOTSTRAPSCRIPT) : $(BOOTSTRAPSCRIPT)
- $(MY_SCRIPTCAT) $(BOOTSTRAPSCRIPT) > $@
-.IF "$(GUI)"!="WNT"
- chmod ug+x $@
-.ENDIF
-
-$(BIN)$/$(BOOTSTRAPINI) : $(APP2TARGET).ini
- $(MY_SCRIPTCAT) $(APP2TARGET).ini > $@
-
-$(BIN)$/bootstraptest.ini : bootstraptest.ini
- $(MY_SCRIPTCAT) bootstraptest.ini > $@
-
-
-# --- SO2-Filter-Datei ---
-
-$(MISC)$/tsl$(DLLPOSTFIX).flt:
- @echo ------------------------------
- @echo Making: $@
- @echo WEP>$@
- @echo LIBMAIN>>$@
- @echo LibMain>>$@
diff --git a/sal/test/test_salmain.cxx b/sal/test/test_salmain.cxx
deleted file mode 100644
index 6980995db..000000000
--- a/sal/test/test_salmain.cxx
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include "sal/main.h"
-
-#include <stdio.h>
-
-
-SAL_IMPLEMENT_MAIN()
-{
- fprintf(stderr, "success!\n");
-
- return 0;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/test/test_salmainwithargs.cxx b/sal/test/test_salmainwithargs.cxx
deleted file mode 100644
index c1f2a5b6d..000000000
--- a/sal/test/test_salmainwithargs.cxx
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include "sal/main.h"
-
-#include <stdio.h>
-
-
-SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
-{
- fprintf(stderr, "argc: %i argv: %p - success!\n", argc, argv);
-
- return 0;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/test/testbootstrap.cxx b/sal/test/testbootstrap.cxx
deleted file mode 100644
index 5eac60e58..000000000
--- a/sal/test/testbootstrap.cxx
+++ /dev/null
@@ -1,137 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-#include <stdio.h>
-
-#include <rtl/process.h>
-#include <rtl/bootstrap.hxx>
-#include <rtl/string.hxx>
-#include <rtl/byteseq.hxx>
-
-#include <osl/process.h>
-
-using namespace ::rtl;
-
-
-int main( int argc, char *argv[] )
-{
- osl_setCommandArgs (argc, argv);
-
- sal_Int32 nCount = rtl_getAppCommandArgCount();
-
-#if OSL_DEBUG_LEVEL > 1
- fprintf( stdout, "rtl-commandargs (%d) real args:%i ", nCount, argc);
- for( sal_Int32 i = 0 ; i < nCount ; i ++ )
- {
- OUString data;
- rtl_getAppCommandArg( i , &(data.pData) );
- OString o = OUStringToOString( data, RTL_TEXTENCODING_ASCII_US );
- fprintf( stdout, " %s", o.getStr() );
- }
- fprintf( stdout, "\n" );
-#endif
-
- if( nCount == 0 )
- {
- printf( "usage : testbootstrap <checkedValueOfMyBootstrapValue>\n" );
- exit( 1 );
- }
-
-
- OUString iniName;
- Bootstrap::get(OUString(RTL_CONSTASCII_USTRINGPARAM("iniName")), iniName, OUString());
-
-#if OSL_DEBUG_LEVEL > 1
- if(iniName.getLength())
- {
- OString tmp_iniName = OUStringToOString(iniName, RTL_TEXTENCODING_ASCII_US);
- fprintf(stderr, "using ini: %s\n", tmp_iniName.getStr());
- }
-#endif
-
- Bootstrap bootstrap(iniName);
-
-
- OUString name( RTL_CONSTASCII_USTRINGPARAM( "MYBOOTSTRAPTESTVALUE" ));
- OUString myDefault( RTL_CONSTASCII_USTRINGPARAM("$Default"));
-
- OUString value;
- sal_Bool useDefault;
-
- OUString aDummy;
- useDefault = bootstrap.getFrom(OUString(RTL_CONSTASCII_USTRINGPARAM("USEDEFAULT")), aDummy);
-
- sal_Bool result = sal_False;
- sal_Bool found = sal_True;
-
- if(useDefault)
- bootstrap.getFrom(name, value, myDefault);
-
- else
- found = bootstrap.getFrom(name, value);
-
- if(found)
- {
- OUString para(OUString::createFromAscii( argv[1] ));
-
- result = para == value;
-
- if(!result)
- {
- OString para_tmp = OUStringToOString(para, RTL_TEXTENCODING_ASCII_US);
- OString value_tmp = OUStringToOString(value, RTL_TEXTENCODING_ASCII_US);
-
- fprintf(stderr, "para(%s) != value(%s)\n", para_tmp.getStr(), value_tmp.getStr());
- }
- }
- else
- fprintf(stderr, "bootstrap parameter couldn't be found\n");
-
- // test the default case
- name = OUString( RTL_CONSTASCII_USTRINGPARAM( "no_one_has_set_this_name" ) );
- OSL_ASSERT( ! bootstrap.getFrom( name, value ) );
- result = result && !bootstrap.getFrom( name, value );
-
- myDefault = OUString( RTL_CONSTASCII_USTRINGPARAM( "1" ) );
- OUString myDefault2 = OUString( RTL_CONSTASCII_USTRINGPARAM( "2" ) );
-
- bootstrap.getFrom( name, value, myDefault );
- OSL_ASSERT( value == myDefault );
- result = result && (value == myDefault);
-
- bootstrap.getFrom( name, value, myDefault2 );
- OSL_ASSERT( value == myDefault2 );
- result = result && (value == myDefault2);
-
- return result;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/test/testbootstrap.ini b/sal/test/testbootstrap.ini
deleted file mode 100644
index 2cf7b667c..000000000
--- a/sal/test/testbootstrap.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-MYBOOTSTRAPTESTVALUE=file
-INHERITED_VALUE=inherited_value
-INHERITED_OVERWRITTEN_VALUE=not_overwritten
-
diff --git a/sal/test/unloading/exports.dxp b/sal/test/unloading/exports.dxp
deleted file mode 100644
index 9990690a9..000000000
--- a/sal/test/unloading/exports.dxp
+++ /dev/null
@@ -1,3 +0,0 @@
-component_writeInfo
-component_getFactory
-component_canUnload
diff --git a/sal/test/unloading/makefile.mk b/sal/test/unloading/makefile.mk
deleted file mode 100644
index 24800ef15..000000000
--- a/sal/test/unloading/makefile.mk
+++ /dev/null
@@ -1,119 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME= sal
-TARGET= unloading
-TARGET1=samplelib1
-TARGET2=samplelib2
-TARGETTYPE=CUI
-COMP1TYPELIST=$(TARGET1)
-
-NO_BSYMBOLIC= TRUE
-ENABLE_EXCEPTIONS=TRUE
-
-USE_DEFFILE= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-# --- Files --------------------------------------------------------
-
-UNOUCRDEP=$(SOLARBINDIR)$/udkapi.rdb
-UNOUCRRDB=$(SOLARBINDIR)$/udkapi.rdb
-
-CPPUMAKERFLAGS =
-
-.IF "$(BOOTSTRAP_SERVICE)" == "TRUE"
-UNOUCROUT= $(OUT)$/inc$/bootstrap
-INCPRE+= $(OUT)$/inc$/bootstrap
-.ELSE
-.IF "$(COM)" == "MSC"
-CPPUMAKERFLAGS = -L
-.ENDIF
-UNOUCROUT= $(OUT)$/inc$/light
-INCPRE+= $(OUT)$/inc$/light
-.ENDIF
-
-
-LIB1TARGET=$(SLB)$/$(TARGET1).lib
-LIB1OBJFILES= \
- $(SLO)$/samplelib1.obj
-
-SHL1TARGET= $(TARGET1)
-
-SHL1STDLIBS= \
- $(CPPULIB) \
- $(CPPUHELPERLIB) \
- $(SALLIB)
-
-SHL1DEPN=
-SHL1LIBS= $(SLB)$/$(TARGET1).lib
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-DEF1EXPORTFILE= exports.dxp
-DEF1NAME= $(SHL1TARGET)
-
-#-------------------------------------------------------
-
-LIB2TARGET=$(SLB)$/$(TARGET2).lib
-LIB2OBJFILES= \
- $(SLO)$/samplelib2.obj
-
-SHL2TARGET= $(TARGET2)
-
-SHL2STDLIBS= \
- $(CPPULIB) \
- $(CPPUHELPERLIB) \
- $(SALLIB)
-
-SHL2DEPN=
-SHL2LIBS= $(SLB)$/$(TARGET2).lib
-SHL2DEF= $(MISC)$/$(SHL2TARGET).def
-DEF2EXPORTFILE= exports.dxp
-DEF2NAME= $(SHL2TARGET)
-
-# ------------------------------------------------------------------
-
-APP1NOSAL=TRUE
-
-APP1TARGET= $(TARGET)
-
-APP1OBJS= $(OBJ)$/unloadTest.obj
-
-APP1STDLIBS= \
- $(SALLIB) \
- $(CPPUHELPERLIB) \
- $(CPPULIB)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/sal/test/unloading/readme.txt b/sal/test/unloading/readme.txt
deleted file mode 100644
index 7fae8850c..000000000
--- a/sal/test/unloading/readme.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-The test program test the unloading API, and the default factories from cppuhelper
-for their new XUnloadingPreference interface.
-
-The makefile produces the executable unloading.exe as wells as two
-libraries, samplelib1 and samplelib2, which contain services.
-
-
-Usage:
- Copy unloading, samplelib1, samplelib2 into the program directory
-of an office.
-
-Register samplelib1 and samplelib2 with regcomp
-
-Run unloading. \ No newline at end of file
diff --git a/sal/test/unloading/samplelib1.cxx b/sal/test/unloading/samplelib1.cxx
deleted file mode 100644
index a7b81a538..000000000
--- a/sal/test/unloading/samplelib1.cxx
+++ /dev/null
@@ -1,268 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <sal/types.h>
-#include <osl/time.h>
-#include <rtl/ustring.hxx>
-#include <uno/environment.h>
-#include <cppu/macros.hxx>
-#include <cppuhelper/factory.hxx>
-#include <com/sun/star/uno/Reference.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <cppuhelper/implbase1.hxx>
-#include <rtl/unload.h>
-#include <rtl/string.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/registry/XRegistryKey.hpp>
-
-using namespace ::com::sun::star::registry;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::rtl;
-using namespace ::cppu;
-
-#define IMPLNAME1 "com.sun.star.comp.sal.UnloadingTest1"
-#define SERVICENAME1 "com.sun.star.UnloadingTest1"
-#define IMPLNAME2 "com.sun.star.comp.sal.UnloadingTest2"
-#define SERVICENAME2 "com.sun.star.UnloadingTest2"
-#define IMPLNAME3 "com.sun.star.comp.sal.UnloadingTest3"
-#define SERVICENAME3 "com.sun.star.UnloadingTest3"
-#define IMPLNAME4 "com.sun.star.comp.sal.OneInstanceTest"
-#define SERVICENAME4 "com.sun.star.OneInstanceTest"
-
-
-// Unloading Support ----------------------------------------------
-rtl_StandardModuleCount globalModuleCount= MODULE_COUNT_INIT;
-//rtl_StandardModuleCount globalModuleCount= { {rtl_moduleCount_acquire,rtl_moduleCount_release}, rtl_moduleCount_canUnload,0,{0,0}}; //, 0, {0, 0}};
-// Services -------------------------------------------------------
-class TestService: public WeakImplHelper1<XServiceInfo>
-{
-OUString m_implName;
-OUString m_serviceName;
-public:
- TestService( OUString implName, OUString serviceName);
- ~TestService();
- virtual OUString SAL_CALL getImplementationName( ) throw (RuntimeException);
- virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw (RuntimeException);
- virtual Sequence<OUString > SAL_CALL getSupportedServiceNames( ) throw (RuntimeException);
-};
-
-TestService::TestService( OUString implName, OUString serviceName):
- m_implName(implName),m_serviceName(serviceName)
-{ // Library unloading support
- globalModuleCount.modCnt.acquire( &globalModuleCount.modCnt);
-}
-
-TestService::~TestService()
-{ // Library unloading support
- globalModuleCount.modCnt.release( &globalModuleCount.modCnt);
-}
-
-OUString SAL_CALL TestService::getImplementationName( ) throw (RuntimeException)
-{
- return m_implName;
-}
-sal_Bool SAL_CALL TestService::supportsService( const OUString& ServiceName ) throw (RuntimeException)
-{
- return ServiceName.equals( m_serviceName);
-}
-Sequence<OUString > SAL_CALL TestService::getSupportedServiceNames( ) throw (RuntimeException)
-{
- return Sequence<OUString>( &m_serviceName, 1);
-}
-
-
-// Creator functions for Services -------------------------------------------------
-static Reference<XInterface> SAL_CALL test1_createInstance(const Reference<XMultiServiceFactory> & rSMgr)
- throw (RuntimeException)
-{
- return Reference<XInterface>( static_cast<XWeak*>( new TestService(
- OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLNAME1)),
- OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME1)) )), UNO_QUERY);
-}
-static Reference<XInterface> SAL_CALL test2_createInstance(const Reference<XMultiServiceFactory> & rSMgr)
- throw (RuntimeException)
-{
- return Reference<XInterface>( static_cast<XWeak*>( new TestService(
- OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLNAME2)),
- OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME2)) )), UNO_QUERY);
-}
-static Reference<XInterface> SAL_CALL test3_createInstance(const Reference<XMultiServiceFactory> & rSMgr)
- throw (RuntimeException)
-{
- return Reference<XInterface>( static_cast<XWeak*>( new TestService(
- OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLNAME3)),
- OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME3)) )), UNO_QUERY);
-}
-static Reference<XInterface> SAL_CALL test4_createInstance(const Reference<XMultiServiceFactory> & rSMgr)
- throw (RuntimeException)
-{
- return Reference<XInterface>( static_cast<XWeak*>( new TestService(
- OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLNAME4)),
- OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME4)) )), UNO_QUERY);
-}
-
-
-// Standard UNO library interface -------------------------------------------------
-extern "C" {
- sal_Bool SAL_CALL component_writeInfo(void * pServiceManager, void * pRegistryKey) throw()
- {
- if (pRegistryKey)
- {
- try
- {
- Reference< XRegistryKey > xNewKey(
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
- OUString(RTL_CONSTASCII_USTRINGPARAM( "/" IMPLNAME1 "/UNO/SERVICES" )) ) );
-
- xNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME1)));
-
- xNewKey=
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
- OUString(RTL_CONSTASCII_USTRINGPARAM( "/" IMPLNAME2 "/UNO/SERVICES" )) );
-
- xNewKey->createKey(OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME2)));
- xNewKey=
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
- OUString(RTL_CONSTASCII_USTRINGPARAM( "/" IMPLNAME3 "/UNO/SERVICES" )) );
-
- xNewKey->createKey(OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME3)));
-
- xNewKey=
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
- OUString(RTL_CONSTASCII_USTRINGPARAM( "/" IMPLNAME4 "/UNO/SERVICES" )) );
-
- xNewKey->createKey(OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME4)));
- return sal_True;
- }
- catch (const InvalidRegistryException &)
- {
- OSL_FAIL( "### InvalidRegistryException!" );
- }
- }
- return sal_False;
- }
-
- SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey) throw()
- {
- void * pRet = 0;
-
-
- OUString implname1( RTL_CONSTASCII_USTRINGPARAM( IMPLNAME1) );
- OUString serviceName1( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME1) );
- OUString implname2( RTL_CONSTASCII_USTRINGPARAM( IMPLNAME2) );
- OUString serviceName2( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME2) );
- OUString implname3( RTL_CONSTASCII_USTRINGPARAM( IMPLNAME3) );
- OUString serviceName3( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME3) );
- OUString implname4( RTL_CONSTASCII_USTRINGPARAM( IMPLNAME4) );
- OUString serviceName4( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME4) );
-
- if (implname1.equals( OUString::createFromAscii(pImplName)))
- {
- Reference<XMultiServiceFactory> mgr= reinterpret_cast<XMultiServiceFactory *>(pServiceManager);
- Reference<XSingleServiceFactory> xFactory( createSingleFactory(
- reinterpret_cast<XMultiServiceFactory *>(pServiceManager),
- implname1,
- test1_createInstance,
- Sequence<OUString>( &serviceName1, 1),
- &globalModuleCount.modCnt
- ));
-
- if (xFactory.is())
- {
- xFactory->acquire();
- pRet = xFactory.get();
- }
- }
- else if( implname2.equals( OUString::createFromAscii(pImplName)))
- {
- Reference<XMultiServiceFactory> mgr= reinterpret_cast<XMultiServiceFactory *>(pServiceManager);
- Reference<XSingleServiceFactory> xFactory( createSingleFactory(
- reinterpret_cast<XMultiServiceFactory *>(pServiceManager),
- implname2,
- test2_createInstance,
- Sequence<OUString>( &serviceName2, 1),
- &globalModuleCount.modCnt
- ));
-
- if (xFactory.is())
- {
- xFactory->acquire();
- pRet = xFactory.get();
- }
- }
- else if( implname3.equals( OUString::createFromAscii(pImplName)))
- {
- Reference<XMultiServiceFactory> mgr= reinterpret_cast<XMultiServiceFactory *>(pServiceManager);
- Reference<XSingleServiceFactory> xFactory( createSingleFactory(
- reinterpret_cast<XMultiServiceFactory *>(pServiceManager),
- implname3,
- test3_createInstance,
- Sequence<OUString>( &serviceName3, 1),
- &globalModuleCount.modCnt
- ));
-
- if (xFactory.is())
- {
- xFactory->acquire();
- pRet = xFactory.get();
- }
- }
- else if( implname4.equals( OUString::createFromAscii(pImplName)))
- {
- Reference<XMultiServiceFactory> mgr= reinterpret_cast<XMultiServiceFactory *>(pServiceManager);
- Reference<XSingleServiceFactory> xFactory( createOneInstanceFactory(
- reinterpret_cast<XMultiServiceFactory *>(pServiceManager),
- implname3,
- test4_createInstance,
- Sequence<OUString>( &serviceName3, 1),
- &globalModuleCount.modCnt
- ));
-
- if (xFactory.is())
- {
- xFactory->acquire();
- pRet = xFactory.get();
- }
- }
- return pRet;
- }
-
- sal_Bool component_canUnload( TimeValue* libUnused)
- {
- return globalModuleCount.canUnload( &globalModuleCount, libUnused);
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/test/unloading/samplelib1.xml b/sal/test/unloading/samplelib1.xml
deleted file mode 100644
index 64ce8a8e6..000000000
--- a/sal/test/unloading/samplelib1.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd">
-<module-description xmlns:xlink="http://www.w3.org/1999/xlink">
- <module-name> samplelib1 </module-name>
- <component-description>
- <author> Joachim Lingner </author>
- <name> com.sun.star.comp.stoc.JavaVirtualMachine </name>
- <description>
- </description>
- <loader-name> com.sun.star.loader.SharedLibrary </loader-name>
- <language> c++ </language>
- <status value="final"/>
- <supported-service> com.sun.star.Unloading1 </supported-service>
- <service-dependency> ... </service-dependency>
- <type> com.sun.star.lang.XSingleComponentFactory </type>
- <type> com.sun.star.lang.XComponent </type>
- <type> com.sun.star.container.XNameAccess </type>
- <type> com.sun.star.container.XContentEnumerationAccess </type>
- <type> com.sun.star.container.XEnumeration </type>
- <type> com.sun.star.lang.XTypeProvider </type>
- <type> com.sun.star.lang.XServiceInfo </type>
- <type> com.sun.star.lang.XSingleServiceFactory </type>
- <type> com.sun.star.lang.XMultiServiceFactory </type>
- <type> com.sun.star.registry.XSimpleRegistry </type>
- <type> com.sun.star.lang.XSingleComponentFactory </type>
- <type> com.sun.star.uno.XComponentContext </type>
- <type> com.sun.star.uno.XUnloadingPreference </type>
- <type> com.sun.star.uno.XAggregation </type>
- <type> com.sun.star.uno.XWeak </type>
- <type> com.sun.star.uno.TypeClass </type>
- <type> com.sun.star.beans.XPropertySet </type>
- </component-description>
- <project-build-dependency> cppuhelper </project-build-dependency>
- <project-build-dependency> cppu </project-build-dependency>
- <project-build-dependency> tools </project-build-dependency>
- <project-build-dependency> sal </project-build-dependency>
- <runtime-module-dependency> cppuhelper3$(COM) </runtime-module-dependency>
- <runtime-module-dependency> cppu3 </runtime-module-dependency>
- <runtime-module-dependency> tl(COM) </runtime-module-dependency>
- <runtime-module-dependency> sal3 </runtime-module-dependency>
-</module-description>
diff --git a/sal/test/unloading/samplelib2.cxx b/sal/test/unloading/samplelib2.cxx
deleted file mode 100644
index c7a20f7d2..000000000
--- a/sal/test/unloading/samplelib2.cxx
+++ /dev/null
@@ -1,235 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <sal/types.h>
-#include <osl/time.h>
-#include <rtl/ustring.hxx>
-#include <uno/environment.h>
-#include <cppu/macros.hxx>
-#include <cppuhelper/factory.hxx>
-#include <com/sun/star/uno/Reference.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <cppuhelper/implbase1.hxx>
-#include <rtl/unload.h>
-#include <rtl/string.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/registry/XRegistryKey.hpp>
-
-using namespace ::com::sun::star::registry;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::rtl;
-using namespace ::cppu;
-
-#define IMPLNAME1 "com.sun.star.comp.sal.UnloadingTest21"
-#define SERVICENAME1 "com.sun.star.UnloadingTest21"
-#define IMPLNAME2 "com.sun.star.comp.sal.UnloadingTest22"
-#define SERVICENAME2 "com.sun.star.UnloadingTest22"
-#define IMPLNAME3 "com.sun.star.comp.sal.UnloadingTest23"
-#define SERVICENAME3 "com.sun.star.UnloadingTest23"
-
-// Unloading Support ----------------------------------------------
-rtl_StandardModuleCount globalModuleCount= MODULE_COUNT_INIT;
-//rtl_StandardModuleCount globalModuleCount= { {rtl_moduleCount_acquire,rtl_moduleCount_release}, rtl_moduleCount_canUnload,0,{0,0}}; //, 0, {0, 0}};
-// Services -------------------------------------------------------
-class TestService: public WeakImplHelper1<XServiceInfo>
-{
-OUString m_implName;
-OUString m_serviceName;
-public:
- TestService( OUString implName, OUString serviceName);
- ~TestService();
- virtual OUString SAL_CALL getImplementationName( ) throw (RuntimeException);
- virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw (RuntimeException);
- virtual Sequence<OUString > SAL_CALL getSupportedServiceNames( ) throw (RuntimeException);
-};
-
-TestService::TestService( OUString implName, OUString serviceName):
- m_implName(implName),m_serviceName(serviceName)
-{ // Library unloading support
- globalModuleCount.modCnt.acquire( &globalModuleCount.modCnt);
-}
-
-TestService::~TestService()
-{ // Library unloading support
- globalModuleCount.modCnt.release( &globalModuleCount.modCnt);
-}
-
-OUString SAL_CALL TestService::getImplementationName( ) throw (RuntimeException)
-{
- return m_implName;
-}
-sal_Bool SAL_CALL TestService::supportsService( const OUString& ServiceName ) throw (RuntimeException)
-{
- return ServiceName.equals( m_serviceName);
-}
-Sequence<OUString > SAL_CALL TestService::getSupportedServiceNames( ) throw (RuntimeException)
-{
- return Sequence<OUString>( &m_serviceName, 1);
-}
-
-
-// Creator functions for Services -------------------------------------------------
-static Reference<XInterface> SAL_CALL test21_createInstance(const Reference<XMultiServiceFactory> & rSMgr)
- throw (RuntimeException)
-{
- return Reference<XInterface>( static_cast<XWeak*>( new TestService(
- OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLNAME1)),
- OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME1)) )), UNO_QUERY);
-}
-static Reference<XInterface> SAL_CALL test22_createInstance(const Reference<XMultiServiceFactory> & rSMgr)
- throw (RuntimeException)
-{
- return Reference<XInterface>( static_cast<XWeak*>( new TestService(
- OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLNAME2)),
- OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME2)) )), UNO_QUERY);
-}
-static Reference<XInterface> SAL_CALL test23_createInstance(const Reference<XMultiServiceFactory> & rSMgr)
- throw (RuntimeException)
-{
- return Reference<XInterface>( static_cast<XWeak*>( new TestService(
- OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLNAME3)),
- OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME3)) )), UNO_QUERY);
-}
-
-
-// Standard UNO library interface -------------------------------------------------
-extern "C" {
- sal_Bool SAL_CALL component_writeInfo(void * pServiceManager, void * pRegistryKey) throw()
- {
- if (pRegistryKey)
- {
- try
- {
- Reference< XRegistryKey > xNewKey(
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
- OUString(RTL_CONSTASCII_USTRINGPARAM( "/" IMPLNAME1 "/UNO/SERVICES" )) ) );
-
- xNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME1)));
-
- xNewKey=
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
- OUString(RTL_CONSTASCII_USTRINGPARAM( "/" IMPLNAME2 "/UNO/SERVICES" )) );
-
- xNewKey->createKey(OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME2)));
- xNewKey=
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
- OUString(RTL_CONSTASCII_USTRINGPARAM( "/" IMPLNAME3 "/UNO/SERVICES" )) );
-
- xNewKey->createKey(OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME3)));
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_FAIL( "### InvalidRegistryException!" );
- }
- }
- return sal_False;
- }
-
- SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey) throw()
- {
- void * pRet = 0;
-
-
- OUString implname1( RTL_CONSTASCII_USTRINGPARAM( IMPLNAME1) );
- OUString serviceName1( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME1) );
- OUString implname2( RTL_CONSTASCII_USTRINGPARAM( IMPLNAME2) );
- OUString serviceName2( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME2) );
- OUString implname3( RTL_CONSTASCII_USTRINGPARAM( IMPLNAME3) );
- OUString serviceName3( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME3) );
-
- if (implname1.equals( OUString::createFromAscii(pImplName)))
- {
- Reference<XMultiServiceFactory> mgr= reinterpret_cast<XMultiServiceFactory *>(pServiceManager);
- Reference<XSingleServiceFactory> xFactory( createSingleFactory(
- reinterpret_cast<XMultiServiceFactory *>(pServiceManager),
- implname1,
- test21_createInstance,
- Sequence<OUString>( &serviceName1, 1),
- &globalModuleCount.modCnt
- ));
-
- if (xFactory.is())
- {
- xFactory->acquire();
- pRet = xFactory.get();
- }
- }
- else if( implname2.equals( OUString::createFromAscii(pImplName)))
- {
- Reference<XMultiServiceFactory> mgr= reinterpret_cast<XMultiServiceFactory *>(pServiceManager);
- Reference<XSingleServiceFactory> xFactory( createSingleFactory(
- reinterpret_cast<XMultiServiceFactory *>(pServiceManager),
- implname2,
- test22_createInstance,
- Sequence<OUString>( &serviceName2, 1),
- &globalModuleCount.modCnt
- ));
-
- if (xFactory.is())
- {
- xFactory->acquire();
- pRet = xFactory.get();
- }
- }
- else if( implname3.equals( OUString::createFromAscii(pImplName)))
- {
- Reference<XMultiServiceFactory> mgr= reinterpret_cast<XMultiServiceFactory *>(pServiceManager);
- Reference<XSingleServiceFactory> xFactory( createSingleFactory(
- reinterpret_cast<XMultiServiceFactory *>(pServiceManager),
- implname3,
- test23_createInstance,
- Sequence<OUString>( &serviceName3, 1),
- &globalModuleCount.modCnt
- ));
-
- if (xFactory.is())
- {
- xFactory->acquire();
- pRet = xFactory.get();
- }
- }
-
- return pRet;
- }
-
- sal_Bool component_canUnload( TimeValue* libUnused)
- {
- return globalModuleCount.canUnload( &globalModuleCount, libUnused);
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/test/unloading/unloadTest.cxx b/sal/test/unloading/unloadTest.cxx
deleted file mode 100644
index 54e077bba..000000000
--- a/sal/test/unloading/unloadTest.cxx
+++ /dev/null
@@ -1,659 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include<osl/module.hxx>
-#include <osl/time.h>
-#include <rtl/ustring.hxx>
-#include <stdio.h>
-#include <cppuhelper/factory.hxx>
-#include <cppuhelper/servicefactory.hxx>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/lang/XComponent.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <com/sun/star/uno/XUnloadingPreference.hpp>
-#include <com/sun/star/lang/XTypeProvider.hpp>
-#include <com/sun/star/container/XContentEnumerationAccess.hpp>
-
-#include <stdio.h>
-using namespace ::rtl;
-using namespace ::osl;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::cppu;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::container;
-
-#define IMPLNAME1 "com.sun.star.comp.sal.UnloadingTest1"
-#define SERVICENAME1 "com.sun.star.UnloadingTest1"
-#define IMPLNAME2 "com.sun.star.comp.sal.UnloadingTest2"
-#define SERVICENAME2 "com.sun.star.UnloadingTest2"
-#define IMPLNAME3 "com.sun.star.comp.sal.UnloadingTest3"
-#define SERVICENAME3 "com.sun.star.UnloadingTest3"
-#define IMPLNAME4 "com.sun.star.comp.sal.OneInstanceTest"
-#define SERVICENAME4 "com.sun.star.OneInstanceTest"
-
-#define IMPLNAME21 "com.sun.star.comp.sal.UnloadingTest21"
-#define SERVICENAME21 "com.sun.star.UnloadingTest21"
-#define IMPLNAME22 "com.sun.star.comp.sal.UnloadingTest22"
-#define SERVICENAME22 "com.sun.star.UnloadingTest22"
-#define IMPLNAME23 "com.sun.star.comp.sal.UnloadingTest23"
-#define SERVICENAME23 "com.sun.star.UnloadingTest23"
-
-#ifdef UNX
-#define LIBRARY1 "libsamplelib1.so"
-#define LIBRARY2 "libsamplelib2.so"
-#elif defined WNT
-#define LIBRARY1 "samplelib1"
-#define LIBRARY2 "samplelib2"
-#endif
-/*
-Tested: rtl_registerModuleForUnloading, rtl_unregisterModuleForUnloading, rtl_unloadUnusedLibraries
- 1 component.
-
-next: Test with multiple components
- Listener mechanism.
-*/
-
-sal_Bool test1();
-sal_Bool test2();
-sal_Bool test3();
-sal_Bool test4();
-sal_Bool test5();
-sal_Bool test6();
-sal_Bool test7();
-sal_Bool test8();
-sal_Bool test9();
-void SAL_CALL listenerCallback( void* id);
-
-int main(int argc, char* argv[])
-{
- // Test if the servicemanager can be created and if the sample libs
- // can be loaded
-// Reference<XMultiServiceFactory> serviceManager= createRegistryServiceFactory(
-// OUString( RTL_CONSTASCII_USTRINGPARAM("applicat.rdb")));
-// if( !serviceManager.is())
-// {
-// printf("\n ####################################################\n"
-// "Error: could not create service manager. \n"
-// "Is the executable in the office program directory?\n");
-// return -1;
-// }
-
-// Reference<XInterface> xint1= serviceManager->createInstance( OUString(
-// RTL_CONSTASCII_USTRINGPARAM(SERVICENAME1)));
-
-// if( !xint1.is())
-// {
-// printf("\n ###################################################\n"
-// "Error: could not create service from samplelib1\n"
-// "Is samplelib1 in the office program directory and is it "
-// "registered?\n");
-// return -1;
-// }
-// Reference<XInterface> xint2= serviceManager->createInstance( OUString(
-// RTL_CONSTASCII_USTRINGPARAM(SERVICENAME21)));
-// if( !xint2.is())
-// {
-// printf("\n ###################################################"
-// "Error: could not create service from samplelib2\n"
-// "Is samplelib2 in the office program directory and is it "
-// "registered?\n");
-// return -1;
-// }
-// //destroy servicemanager
-// Reference<XPropertySet> xSet( serviceManager, UNO_QUERY);
-// Any any_prop= xSet->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("DefaultContext")));
-// Reference<XComponentContext> xContext;
-// any_prop >>= xContext;
-// Reference<XComponent> xComponent( xContext, UNO_QUERY);
-// xComponent->dispose();
-
-// //unload samplelib1 and samplelib2. We need the handles, therefore load
-// // the libs
-// OUString libname1( RTL_CONSTASCII_USTRINGPARAM(LIBRARY1));
-// OUString libname2( RTL_CONSTASCII_USTRINGPARAM(LIBRARY2));
-// oslModule m1= osl_loadModule(libname1.pData, 0);
-// oslModule m2= osl_loadModule(libname2.pData, 0);
-// osl_unloadModule( m1);
-// osl_unloadModule( m1);
-// osl_unloadModule( m2);
-// osl_unloadModule( m2);
-
-
- sal_Bool ret1= test1();
- if( ret1) printf( "\n Test 1 successful \n");
- else printf("\n !!!!!! Test 1 failed\n");
- sal_Bool ret2= test2();
- if( ret2) printf( "\n Test 2 successful \n");
- else printf("\n !!!!!! Test 2 failed\n");
- sal_Bool ret3= test3();
- if( ret3) printf( "\n Test 3 successful \n");
- else printf("\n !!!!!! Test 3 failed\n");
- sal_Bool ret4= test4();
- if( ret4) printf( "\n Test 4 successful \n");
- else printf("\n !!!!!! Test 4 failed\n");
- sal_Bool ret5= test5();
- if( ret5) printf( "\n Test 5 successful \n");
- else printf("\n !!!!!! Test 5 failed\n");
- // takes some time (10s)
- sal_Bool ret6= test6();
- sal_Bool ret7= test7(); // prints message itself
- sal_Bool ret8= test8();
- if( ret8) printf( "\n Test 8 successful \n");
- else printf("\n !!!!!! Test 8 failed\n");
- sal_Bool ret9= test9();
- if( ret9) printf( "\n Test 9 successful: service manager is unloading listener\n");
- else printf("\n !!!!! Test 9 failed\n");
-
- return 0;
-}
-
-/* Create an instance of SERVICENAME1, call a function and unload module.
- This tests the loader and basic functionality.
- The library will be loaded once manually and the handle will be stored.
- Then the library will be unloaded. After rtl_unloadUnusedLibraries we try to
- get a symbol of the unloaded lib. If this fails then the test is successful.
-*/
-sal_Bool test1()
-{
- printf("Test 1 ####################################################\n");
- oslModule handleMod=0;
- OUString lib1Name( RTL_CONSTASCII_USTRINGPARAM(LIBRARY1));
- {
- Reference<XMultiServiceFactory> serviceManager= createRegistryServiceFactory(
- OUString( RTL_CONSTASCII_USTRINGPARAM("applicat.rdb")));
- Reference<XInterface> xint= serviceManager->createInstance( OUString(
- RTL_CONSTASCII_USTRINGPARAM(SERVICENAME1)));
-
- // get the handle
- handleMod= osl_loadModule( lib1Name.pData, 0);
- osl_unloadModule( handleMod);
- xint=0;
-
- Reference<XPropertySet> xSet( serviceManager, UNO_QUERY);
- Any any_prop= xSet->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("DefaultContext")));
- Reference<XComponentContext> xContext;
- any_prop >>= xContext;
- Reference<XComponent> xComponent( xContext, UNO_QUERY);
- xComponent->dispose();
- }
- rtl_unloadUnusedModules( NULL);
-
- // Try to get a symbol, must fail
- OUString sSymbol( RTL_CONSTASCII_USTRINGPARAM("component_getFactory"));
- void* pSymbol= osl_getSymbol( handleMod, sSymbol.pData);
-
- if( !pSymbol)
- return sal_True;
- return sal_False;
-}
-
-/* Multipe loadModule + rtl_registerModuleForUnloading.
-The module will be registered as often as it has been loaded.
-*/
-sal_Bool test2()
-{
- printf("Test 2 ####################################################\n");
- oslModule handleMod=0;
- OUString lib1Name( RTL_CONSTASCII_USTRINGPARAM(LIBRARY1));
- {
- Reference<XMultiServiceFactory> serviceManager= createRegistryServiceFactory(
- OUString( RTL_CONSTASCII_USTRINGPARAM("applicat.rdb")));
-
- Reference<XInterface> xint= serviceManager->createInstance( OUString(
- RTL_CONSTASCII_USTRINGPARAM(SERVICENAME1)));
-
- handleMod= osl_loadModule( lib1Name.pData, 0);
- osl_unloadModule( handleMod);
- //-----------------------------------------------------------
- oslModule mod1= osl_loadModule( lib1Name.pData, 0);
- oslModule mod2= osl_loadModule( lib1Name.pData, 0);
- oslModule mod3= osl_loadModule( lib1Name.pData, 0);
-
- rtl_registerModuleForUnloading(mod1);
- rtl_registerModuleForUnloading(mod2);
- rtl_registerModuleForUnloading(mod3);
- // ----------------------------------------------------------
- Reference<XPropertySet> xSet( serviceManager, UNO_QUERY);
- Any any_prop= xSet->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("DefaultContext")));
- Reference<XComponentContext> xContext;
- any_prop >>= xContext;
- Reference<XComponent> xComponent( xContext, UNO_QUERY);
- xComponent->dispose();
- }
- rtl_unloadUnusedModules( NULL);
-
- // Try to get a symbol, must fail
- OUString sSymbol( RTL_CONSTASCII_USTRINGPARAM("component_getFactory"));
- void* pSymbol= osl_getSymbol( handleMod, sSymbol.pData);
-
- if( !pSymbol)
- return sal_True;
- return sal_False;
-}
-
-/* Multipe loadModule + rtl_registerModuleForUnloading.
-The module will be registered one time less as it has been loaded.
-*/
-sal_Bool test3()
-{
- printf("Test 3 ####################################################\n");
- oslModule handleMod=0;
- sal_Bool retval=sal_False;
- OUString lib1Name( RTL_CONSTASCII_USTRINGPARAM(LIBRARY1));
- {
- Reference<XMultiServiceFactory> serviceManager= createRegistryServiceFactory(
- OUString( RTL_CONSTASCII_USTRINGPARAM("applicat.rdb")));
-
- Reference<XInterface> xint= serviceManager->createInstance( OUString(
- RTL_CONSTASCII_USTRINGPARAM(SERVICENAME1)));
-
- handleMod= osl_loadModule( lib1Name.pData, 0);
- osl_unloadModule( handleMod);
- //-----------------------------------------------------------
- oslModule mod1= osl_loadModule( lib1Name.pData, 0);
- oslModule mod2= osl_loadModule( lib1Name.pData, 0);
- oslModule mod3= osl_loadModule( lib1Name.pData, 0);
-
- rtl_registerModuleForUnloading(mod1);
- rtl_registerModuleForUnloading(mod2);
- // ----------------------------------------------------------
- Reference<XPropertySet> xSet( serviceManager, UNO_QUERY);
- Any any_prop= xSet->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("DefaultContext")));
- Reference<XComponentContext> xContext;
- any_prop >>= xContext;
- Reference<XComponent> xComponent( xContext, UNO_QUERY);
- xComponent->dispose();
- }
- rtl_unloadUnusedModules( NULL);
-
- // Try to get a symbol, must succeed
- OUString sSymbol( RTL_CONSTASCII_USTRINGPARAM("component_getFactory"));
- void* pSymbol= osl_getSymbol( handleMod, sSymbol.pData);
-
- if( pSymbol)
- {
- retval= sal_True;
- osl_unloadModule( handleMod);
- pSymbol= osl_getSymbol( handleMod, sSymbol.pData);
- }
- return retval;
-}
-/* 2 Modules
-
-*/
-sal_Bool test4()
-{
- printf("Test 4 ####################################################\n");
- oslModule handleMod1=0;
- oslModule handleMod2=0;
- OUString lib1Name( RTL_CONSTASCII_USTRINGPARAM(LIBRARY1));
- OUString lib2Name( RTL_CONSTASCII_USTRINGPARAM(LIBRARY2));
- {
- Reference<XMultiServiceFactory> serviceManager= createRegistryServiceFactory(
- OUString( RTL_CONSTASCII_USTRINGPARAM("applicat.rdb")));
-
- Reference<XInterface> xint= serviceManager->createInstance( OUString(
- RTL_CONSTASCII_USTRINGPARAM(SERVICENAME1)));
-
- handleMod1= osl_loadModule( lib1Name.pData, 0);
- osl_unloadModule( handleMod1);
- Reference<XInterface> xint2= serviceManager->createInstance( OUString(
- RTL_CONSTASCII_USTRINGPARAM(SERVICENAME21)));
-
- handleMod2= osl_loadModule( lib2Name.pData, 0);
- osl_unloadModule( handleMod2);
-
- //-----------------------------------------------------------
- // ----------------------------------------------------------
- Reference<XPropertySet> xSet( serviceManager, UNO_QUERY);
- Any any_prop= xSet->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("DefaultContext")));
- Reference<XComponentContext> xContext;
- any_prop >>= xContext;
- Reference<XComponent> xComponent( xContext, UNO_QUERY);
- xComponent->dispose();
- }
- rtl_unloadUnusedModules( NULL);
-
- // Try to get a symbol, must fail
- OUString sSymbol( RTL_CONSTASCII_USTRINGPARAM("component_getFactory"));
- void* pSymbol= osl_getSymbol( handleMod1, sSymbol.pData);
-
- void* pSymbol2= osl_getSymbol( handleMod2, sSymbol.pData);
- if( ! pSymbol && !pSymbol2)
- return sal_True;
- return sal_False;
-}
-
-/* 2 Modules and 6 services
-
-*/
-sal_Bool test5()
-{
- printf("test5 ####################################################\n");
- oslModule handleMod1=0;
- oslModule handleMod2=0;
- sal_Bool btest1= sal_False;
- OUString lib1Name( RTL_CONSTASCII_USTRINGPARAM(LIBRARY1));
- OUString lib2Name( RTL_CONSTASCII_USTRINGPARAM(LIBRARY2));
- OUString sSymbol( RTL_CONSTASCII_USTRINGPARAM("component_getFactory"));
- {
- Reference<XMultiServiceFactory> serviceManager= createRegistryServiceFactory(
- OUString( RTL_CONSTASCII_USTRINGPARAM("applicat.rdb")));
-
- //-----------------------------------------------------------
- Reference<XInterface> xint= serviceManager->createInstance( OUString(
- RTL_CONSTASCII_USTRINGPARAM(SERVICENAME1)));
- Reference<XInterface> xint2= serviceManager->createInstance( OUString(
- RTL_CONSTASCII_USTRINGPARAM(SERVICENAME2)));
- Reference<XInterface> xint3= serviceManager->createInstance( OUString(
- RTL_CONSTASCII_USTRINGPARAM(SERVICENAME3)));
- Reference<XInterface> xint4= serviceManager->createInstance( OUString(
- RTL_CONSTASCII_USTRINGPARAM(SERVICENAME21)));
- Reference<XInterface> xint5= serviceManager->createInstance( OUString(
- RTL_CONSTASCII_USTRINGPARAM(SERVICENAME22)));
- Reference<XInterface> xint6= serviceManager->createInstance( OUString(
- RTL_CONSTASCII_USTRINGPARAM(SERVICENAME23)));
-
- // ----------------------------------------------------------
- handleMod1= osl_loadModule( lib1Name.pData, 0);
- osl_unloadModule( handleMod1);
- handleMod2= osl_loadModule( lib2Name.pData, 0);
- osl_unloadModule( handleMod2);
-
- // get rid of the service manager
- Reference<XPropertySet> xSet( serviceManager, UNO_QUERY);
- Any any_prop= xSet->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("DefaultContext")));
- Reference<XComponentContext> xContext;
- any_prop >>= xContext;
- Reference<XComponent> xComponent( xContext, UNO_QUERY);
- xComponent->dispose();
-
- // try unloading, must fail
- rtl_unloadUnusedModules( NULL);
- void* pSymbol= osl_getSymbol( handleMod1, sSymbol.pData);
-
- void* pSymbol2= osl_getSymbol( handleMod2, sSymbol.pData);
- if( pSymbol && pSymbol2)
- btest1= sal_True;
-
- }
-
- // Try to get a symbol, must succeed
- rtl_unloadUnusedModules( NULL);
-
- void* pSymbol= osl_getSymbol( handleMod1, sSymbol.pData);
- void* pSymbol2= osl_getSymbol( handleMod2, sSymbol.pData);
- if( ! pSymbol && !pSymbol2 && btest1)
- return sal_True;
- return sal_False;
-}
-
-/*
-TimeValue Test
-rtl_unloadUnusedModules takes a TimeValue which determines a timespan
-a module must have been constantly unused in order to be unloaded.
-This is only a rough test. To make accurate tests, one should directly
-write code in the unload.cxx file.
-The function will not return (loop) when the test fails or the result value
-is far off the 10 seconds value.
-*/
-sal_Bool test6()
-{
- printf("test6 ####################################################\n");
- oslModule handleMod1=0;
- oslModule handleMod2=0;
- OUString lib1Name( RTL_CONSTASCII_USTRINGPARAM(LIBRARY1));
- OUString lib2Name( RTL_CONSTASCII_USTRINGPARAM(LIBRARY2));
- OUString sSymbol( RTL_CONSTASCII_USTRINGPARAM("component_getFactory"));
- {
- Reference<XMultiServiceFactory> serviceManager= createRegistryServiceFactory(
- OUString( RTL_CONSTASCII_USTRINGPARAM("applicat.rdb")));
- Reference<XInterface> xint= serviceManager->createInstance( OUString(
- RTL_CONSTASCII_USTRINGPARAM(SERVICENAME1)));
-
- // ----------------------------------------------------------
- handleMod1= osl_loadModule( lib1Name.pData, 0);
- osl_unloadModule( handleMod1);
-
- // get rid of the service manager
- Reference<XPropertySet> xSet( serviceManager, UNO_QUERY);
- Any any_prop= xSet->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("DefaultContext")));
- Reference<XComponentContext> xContext;
- any_prop >>= xContext;
- Reference<XComponent> xComponent( xContext, UNO_QUERY);
- xComponent->dispose();
- }
-
- // Enter a loop and try unloading. At least after 10 seconds
- // this should be successful.
- TimeValue time={10,0};
-
- TimeValue beforeTime={0,0};
- printf("\n unloading should take about 10 seconds\n");
- osl_getSystemTime( &beforeTime);
- for(;;)
- {
-
- rtl_unloadUnusedModules( &time);
- void* pSymbol= osl_getSymbol( handleMod1, sSymbol.pData);
- if( ! pSymbol)
- break;
- }
- TimeValue afterTime={0,0};
- osl_getSystemTime( &afterTime);
-
- printf("\n it took about %i seconds \n Check the value!!!", afterTime.Seconds - beforeTime.Seconds);
- printf(" hit return to continue\n");
- getchar();
-
- return sal_True;
-}
-
-/*
-*/
-sal_Bool test7()
-{
- printf("Test 7 ####################################################"
- "\nThe callback function should be called 3 times\n");
- sal_Int32 id1=1;
- sal_Int32 id2=2;
- sal_Int32 id3=3;
- sal_Int32 cookie1= rtl_addUnloadingListener( listenerCallback, &id1);
- sal_Int32 cookie2= rtl_addUnloadingListener( listenerCallback, &id2);
- sal_Int32 cookie3= rtl_addUnloadingListener( listenerCallback, &id3);
-
- printf("\nTest 7 \nThe listener should be called 3 times\n");
- rtl_unloadUnusedModules( NULL);
-
- rtl_removeUnloadingListener( cookie1);
- rtl_removeUnloadingListener( cookie2);
- rtl_removeUnloadingListener( cookie3);
-
- sal_Int32 cookie4= rtl_addUnloadingListener( listenerCallback, &id1);
- sal_Int32 cookie5= rtl_addUnloadingListener( listenerCallback, &id2);
- sal_Int32 cookie6= rtl_addUnloadingListener( listenerCallback, &id3);
-
- if( cookie1 == cookie4 &&
- cookie2 == cookie5 )
- {
- printf("\n###cookie recycling works\n");
- printf("hit return to continue\n");
- getchar();
- }
- else
- {
- printf("\n###cookie recycling failed!!!\n");
- printf("hit return to continue\n");
- getchar();
- }
-
- rtl_removeUnloadingListener( cookie1);
- rtl_removeUnloadingListener( cookie2);
- rtl_removeUnloadingListener( cookie3);
- return sal_True;
-}
-
-/* Test one-instance-service default factory (XUnloadingPreference)
- cppuhelper/source/factory.cxx
-*/
-sal_Bool test8()
-{
- printf("Test 8 ####################################################\n");
- oslModule handleMod1=0;
- OUString lib1Name( RTL_CONSTASCII_USTRINGPARAM(LIBRARY1));
- OUString sSymbol( RTL_CONSTASCII_USTRINGPARAM("component_getFactory"));
-
- sal_Bool b_ifaceSupported=sal_False;
- sal_Bool b_instances_identical= sal_False;
- sal_Bool b_releaseBeforeLoading= sal_False;
- sal_Bool b_releaseAfterLoading= sal_False;
- sal_Bool b_unloaded= sal_False;
-
- {
- Reference<XMultiServiceFactory> serviceManager= createRegistryServiceFactory(
- OUString( RTL_CONSTASCII_USTRINGPARAM("applicat.rdb")));
- Reference<XContentEnumerationAccess> xContent( serviceManager, UNO_QUERY);
- Reference<XEnumeration> xenum= xContent->createContentEnumeration(
- OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME4)));
-
- Any any_elem;
- if( xenum->hasMoreElements())
- any_elem= xenum->nextElement();
- Reference<XInterface> xinterfaceFact;
- any_elem>>=xinterfaceFact;
- Reference<XTypeProvider> xprov( xinterfaceFact, UNO_QUERY);
-
- Sequence<Type> seqTypes= xprov->getTypes();
-
- // XTypeProvider test
- for( sal_Int32 i=0; i<seqTypes.getLength(); i++)
- {
- OUString name= seqTypes[i].getTypeName();
- if( name == OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XUnloadingPreference")))
- b_ifaceSupported= sal_True;
- }
-
- // XUnloadingPreference::releaseOnNotification should return true now because we haven't
- // created an instance yet
- Reference<XUnloadingPreference> xreject( xinterfaceFact, UNO_QUERY);
- b_releaseBeforeLoading= xreject->releaseOnNotification();
-
- // Create instance. Afterwards releaseOnNotification should return false.
- Reference<XInterface> xint= serviceManager->createInstance( OUString(
- RTL_CONSTASCII_USTRINGPARAM(SERVICENAME4)));
- b_releaseAfterLoading= xreject->releaseOnNotification();
- b_releaseAfterLoading= b_releaseAfterLoading? sal_False : sal_True;
-
- // safe the handle of the module
- handleMod1= osl_loadModule( lib1Name.pData, 0);
- osl_unloadModule( handleMod1);
-
- // ----------------------------------------------------------
- // for debugging
- Reference<XServiceInfo> info( xint, UNO_QUERY);
- OUString s= info->getImplementationName();
-
- // get another instance which must be the same
- Reference<XInterface> xint2= serviceManager->createInstance( OUString(
- RTL_CONSTASCII_USTRINGPARAM(SERVICENAME4)));
-
- b_instances_identical= xint == xint2;
-
- // get rid of the service manager
- Reference<XPropertySet> xSet( serviceManager, UNO_QUERY);
- Any any_prop= xSet->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("DefaultContext")));
- Reference<XComponentContext> xContext;
- any_prop >>= xContext;
- Reference<XComponent> xComponent( xContext, UNO_QUERY);
- xComponent->dispose();
- }
-
- rtl_unloadUnusedModules( NULL);
-
- // The library must be unloaded now
- void* pSymbol= osl_getSymbol( handleMod1, sSymbol.pData);
- if( ! pSymbol )
- b_unloaded= sal_True;
-
- if( b_ifaceSupported && b_instances_identical && b_releaseBeforeLoading &&
- b_releaseAfterLoading && b_unloaded)
- return sal_True;
- return sal_False;
-}
-
-void SAL_CALL listenerCallback( void* id)
-{
- printf(" listener called with id= %i\n", *(sal_Int32*)id);
-}
-
-/*
-
- */
-sal_Bool test9()
-{
- printf("Test 9 ####################################################\n");
- oslModule handleMod=0;
- sal_Bool retval=sal_False;
- OUString lib1Name( RTL_CONSTASCII_USTRINGPARAM(LIBRARY1));
-
- Reference<XMultiServiceFactory> serviceManager= createRegistryServiceFactory(
- OUString( RTL_CONSTASCII_USTRINGPARAM("applicat.rdb")));
-
- Reference<XInterface> xint= serviceManager->createInstance( OUString(
- RTL_CONSTASCII_USTRINGPARAM(SERVICENAME1)));
- // Release the service. The library refcount should be 1
- xint=0;
-
- handleMod= osl_loadModule( lib1Name.pData, 0);
- osl_unloadModule( handleMod);
- //-----------------------------------------------------------
-
- // the service manager is still alive
- rtl_unloadUnusedModules( NULL);
- // Try to get a symbol, must fail
- OUString sSymbol( RTL_CONSTASCII_USTRINGPARAM("component_getFactory"));
- void* pSymbol= osl_getSymbol( handleMod, sSymbol.pData);
-
- if( pSymbol)
- {
- retval= sal_False;
- }
- else
- retval= sal_True;
- return retval;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/context.c b/sal/textenc/context.c
deleted file mode 100644
index 848dd954f..000000000
--- a/sal/textenc/context.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "context.h"
-#include "rtl/alloc.h"
-
-void * ImplCreateUnicodeToTextContext(void)
-{
- void * pContext = rtl_allocateMemory(sizeof (ImplUnicodeToTextContext));
- ((ImplUnicodeToTextContext *) pContext)->m_nHighSurrogate = 0;
- return pContext;
-}
-
-void ImplResetUnicodeToTextContext(void * pContext)
-{
- if (pContext)
- ((ImplUnicodeToTextContext *) pContext)->m_nHighSurrogate = 0;
-}
-
-void ImplDestroyContext(void * pContext)
-{
- rtl_freeMemory(pContext);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/context.h b/sal/textenc/context.h
deleted file mode 100644
index 0e4397d02..000000000
--- a/sal/textenc/context.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_TEXTENC_CONTEXT_H
-#define INCLUDED_RTL_TEXTENC_CONTEXT_H
-
-#include "sal/types.h"
-
-#if defined __cplusplus
-extern "C" {
-#endif /* __cpluscplus */
-
-typedef struct
-{
- sal_Unicode m_nHighSurrogate;
-} ImplUnicodeToTextContext;
-
-void * ImplCreateUnicodeToTextContext(void) SAL_THROW_EXTERN_C();
-
-void ImplResetUnicodeToTextContext(void * pContext) SAL_THROW_EXTERN_C();
-
-void ImplDestroyContext(void * pContext) SAL_THROW_EXTERN_C();
-
-#if defined __cplusplus
-}
-#endif /* __cpluscplus */
-
-#endif /* INCLUDED_RTL_TEXTENC_CONTEXT_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/convertadobe.tab b/sal/textenc/convertadobe.tab
deleted file mode 100644
index e63f33c4d..000000000
--- a/sal/textenc/convertadobe.tab
+++ /dev/null
@@ -1,327 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "context.h"
-#include "convertsinglebytetobmpunicode.hxx"
-#include "tenchelp.h"
-
-#include "rtl/tencinfo.h"
-#include <sal/macros.h>
-
-namespace {
-
-// RTL_TEXTENCODING_ADOBE_STANDARD is based on
-// <http://www.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/stdenc.txt> revision
-// "v0.2, 30 March 1999".
-
-rtl::textenc::BmpUnicodeToSingleByteRange const unicodeToAdobeStandardEncoding[]
-= { { 0x0020, 0x0026 - 0x0020, 0x20 }, { 0x0027, 0x0027 - 0x0027, 0xA9 },
- { 0x0028, 0x005F - 0x0028, 0x28 }, { 0x0060, 0x0060 - 0x0060, 0xC1 },
- { 0x0061, 0x007E - 0x0061, 0x61 }, { 0x00A0, 0x00A0 - 0x00A0, 0x20 },
- { 0x00A1, 0x00A3 - 0x00A1, 0xA1 }, { 0x00A4, 0x00A4 - 0x00A4, 0xA8 },
- { 0x00A5, 0x00A5 - 0x00A5, 0xA5 }, { 0x00A7, 0x00A7 - 0x00A7, 0xA7 },
- { 0x00A8, 0x00A8 - 0x00A8, 0xC8 }, { 0x00AA, 0x00AA - 0x00AA, 0xE3 },
- { 0x00AB, 0x00AB - 0x00AB, 0xAB }, { 0x00AD, 0x00AD - 0x00AD, 0x2D },
- { 0x00AF, 0x00AF - 0x00AF, 0xC5 }, { 0x00B4, 0x00B4 - 0x00B4, 0xC2 },
- { 0x00B6, 0x00B6 - 0x00B6, 0xB6 }, { 0x00B7, 0x00B7 - 0x00B7, 0xB4 },
- { 0x00B8, 0x00B8 - 0x00B8, 0xCB }, { 0x00BA, 0x00BA - 0x00BA, 0xEB },
- { 0x00BB, 0x00BB - 0x00BB, 0xBB }, { 0x00BF, 0x00BF - 0x00BF, 0xBF },
- { 0x00C6, 0x00C6 - 0x00C6, 0xE1 }, { 0x00D8, 0x00D8 - 0x00D8, 0xE9 },
- { 0x00DF, 0x00DF - 0x00DF, 0xFB }, { 0x00E6, 0x00E6 - 0x00E6, 0xF1 },
- { 0x00F8, 0x00F8 - 0x00F8, 0xF9 }, { 0x0131, 0x0131 - 0x0131, 0xF5 },
- { 0x0141, 0x0141 - 0x0141, 0xE8 }, { 0x0142, 0x0142 - 0x0142, 0xF8 },
- { 0x0152, 0x0152 - 0x0152, 0xEA }, { 0x0153, 0x0153 - 0x0153, 0xFA },
- { 0x0192, 0x0192 - 0x0192, 0xA6 }, { 0x02C6, 0x02C6 - 0x02C6, 0xC3 },
- { 0x02C7, 0x02C7 - 0x02C7, 0xCF }, { 0x02C9, 0x02C9 - 0x02C9, 0xC5 },
- { 0x02D8, 0x02D9 - 0x02D8, 0xC6 }, { 0x02DA, 0x02DA - 0x02DA, 0xCA },
- { 0x02DB, 0x02DB - 0x02DB, 0xCE }, { 0x02DC, 0x02DC - 0x02DC, 0xC4 },
- { 0x02DD, 0x02DD - 0x02DD, 0xCD }, { 0x2013, 0x2013 - 0x2013, 0xB1 },
- { 0x2014, 0x2014 - 0x2014, 0xD0 }, { 0x2018, 0x2018 - 0x2018, 0x60 },
- { 0x2019, 0x2019 - 0x2019, 0x27 }, { 0x201A, 0x201A - 0x201A, 0xB8 },
- { 0x201C, 0x201C - 0x201C, 0xAA }, { 0x201D, 0x201D - 0x201D, 0xBA },
- { 0x201E, 0x201E - 0x201E, 0xB9 }, { 0x2020, 0x2020 - 0x2020, 0xB2 },
- { 0x2021, 0x2021 - 0x2021, 0xB3 }, { 0x2022, 0x2022 - 0x2022, 0xB7 },
- { 0x2026, 0x2026 - 0x2026, 0xBC }, { 0x2030, 0x2030 - 0x2030, 0xBD },
- { 0x2039, 0x2039 - 0x2039, 0xAC }, { 0x203A, 0x203A - 0x203A, 0xAD },
- { 0x2044, 0x2044 - 0x2044, 0xA4 }, { 0x2215, 0x2215 - 0x2215, 0xA4 },
- { 0x2219, 0x2219 - 0x2219, 0xB4 }, { 0xFB01, 0xFB02 - 0xFB01, 0xAE } };
-
-rtl::textenc::BmpUnicodeToSingleByteConverterData const
-adobeStandardEncodingConverterData = {
- { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, // 0x00
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, // 0x10
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x2019, // 0x20
- 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
- 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, // 0x30
- 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
- 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, // 0x40
- 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
- 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, // 0x50
- 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
- 0x2018, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, // 0x60
- 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
- 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, // x070
- 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, // 0x80
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, // 0x90
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0x00A1, 0x00A2, 0x00A3, 0x2215, 0x00A5, 0x0192, 0x00A7, // 0xA0
- 0x00A4, 0x0027, 0x201C, 0x00AB, 0x2039, 0x203A, 0xFB01, 0xFB02,
- 0xffff, 0x2013, 0x2020, 0x2021, 0x00B7, 0xffff, 0x00B6, 0x2022, // 0xB0
- 0x201A, 0x201E, 0x201D, 0x00BB, 0x2026, 0x2030, 0xffff, 0x00BF,
- 0xffff, 0x0060, 0x00B4, 0x02C6, 0x02DC, 0x00AF, 0x02D8, 0x02D9, // 0xC0
- 0x00A8, 0xffff, 0x02DA, 0x00B8, 0xffff, 0x02DD, 0x02DB, 0x02C7,
- 0x2014, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, // 0xD0
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0x00C6, 0xffff, 0x00AA, 0xffff, 0xffff, 0xffff, 0xffff, // 0xE0
- 0x0141, 0x00D8, 0x0152, 0x00BA, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0x00E6, 0xffff, 0xffff, 0xffff, 0x0131, 0xffff, 0xffff, // 0xF0
- 0x0142, 0x00F8, 0x0153, 0x00DF, 0xffff, 0xffff, 0xffff, 0xffff },
- SAL_N_ELEMENTS(unicodeToAdobeStandardEncoding),
- unicodeToAdobeStandardEncoding };
-
-// RTL_TEXTENCODING_ADOBE_SYMBOL is based on
-// <http://www.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/symbol.txt> revision
-// "v0.2, 30 March 1999," with the modification that some mappings go to code
-// points newly assigned in Unicode 3.2/4.0, instead of to PUA:
-// 0xBD -> U+23AF (was U+F8E6)
-// 0xBE -> U+23D0 (was U+F8E7)
-// 0xE6--E8 -> U+239B--239D (was U+F8EB--F8ED)
-// 0xE9--EB -> U+23A1--23A3 (was U+F8EE--F8F0)
-// 0xEC--EF -> U+23A7--23AA (was U+F8F1--F8F4)
-// 0xF4 -> U+23AE (was U+F8F5)
-// 0xF6--F8 -> U+239E--23A0 (was U+F8F6--F8F8)
-// 0xF9--FB -> U+23A4--23A6 (was U+F8F9--F8FB)
-// 0xFC--FE -> U+23AB--23AD (was U+F8FC--F8FE)
-
-//TODO: Contains Unicode PUA mappings
-rtl::textenc::BmpUnicodeToSingleByteRange const unicodeToAdobeSymbolEncoding[]
-= { { 0x0020, 0x0021 - 0x0020, 0x20 }, { 0x0023, 0x0023 - 0x0023, 0x23 },
- { 0x0025, 0x0026 - 0x0025, 0x25 }, { 0x0028, 0x0029 - 0x0028, 0x28 },
- { 0x002B, 0x002C - 0x002B, 0x2B }, { 0x002E, 0x003F - 0x002E, 0x2E },
- { 0x005B, 0x005B - 0x005B, 0x5B }, { 0x005D, 0x005D - 0x005D, 0x5D },
- { 0x005F, 0x005F - 0x005F, 0x5F }, { 0x007B, 0x007D - 0x007B, 0x7B },
- { 0x00A0, 0x00A0 - 0x00A0, 0x20 }, { 0x00AC, 0x00AC - 0x00AC, 0xD8 },
- { 0x00B0, 0x00B1 - 0x00B0, 0xB0 }, { 0x00B5, 0x00B5 - 0x00B5, 0x6D },
- { 0x00D7, 0x00D7 - 0x00D7, 0xB4 }, { 0x00F7, 0x00F7 - 0x00F7, 0xB8 },
- { 0x0192, 0x0192 - 0x0192, 0xA6 }, { 0x0391, 0x0392 - 0x0391, 0x41 },
- { 0x0393, 0x0393 - 0x0393, 0x47 }, { 0x0394, 0x0395 - 0x0394, 0x44 },
- { 0x0396, 0x0396 - 0x0396, 0x5A }, { 0x0397, 0x0397 - 0x0397, 0x48 },
- { 0x0398, 0x0398 - 0x0398, 0x51 }, { 0x0399, 0x0399 - 0x0399, 0x49 },
- { 0x039A, 0x039D - 0x039A, 0x4B }, { 0x039E, 0x039E - 0x039E, 0x58 },
- { 0x039F, 0x03A0 - 0x039F, 0x4F }, { 0x03A1, 0x03A1 - 0x03A1, 0x52 },
- { 0x03A3, 0x03A5 - 0x03A3, 0x53 }, { 0x03A6, 0x03A6 - 0x03A6, 0x46 },
- { 0x03A7, 0x03A7 - 0x03A7, 0x43 }, { 0x03A8, 0x03A8 - 0x03A8, 0x59 },
- { 0x03A9, 0x03A9 - 0x03A9, 0x57 }, { 0x03B1, 0x03B2 - 0x03B1, 0x61 },
- { 0x03B3, 0x03B3 - 0x03B3, 0x67 }, { 0x03B4, 0x03B5 - 0x03B4, 0x64 },
- { 0x03B6, 0x03B6 - 0x03B6, 0x7A }, { 0x03B7, 0x03B7 - 0x03B7, 0x68 },
- { 0x03B8, 0x03B8 - 0x03B8, 0x71 }, { 0x03B9, 0x03B9 - 0x03B9, 0x69 },
- { 0x03BA, 0x03BD - 0x03BA, 0x6B }, { 0x03BE, 0x03BE - 0x03BE, 0x78 },
- { 0x03BF, 0x03C0 - 0x03BF, 0x6F }, { 0x03C1, 0x03C1 - 0x03C1, 0x72 },
- { 0x03C2, 0x03C2 - 0x03C2, 0x56 }, { 0x03C3, 0x03C5 - 0x03C3, 0x73 },
- { 0x03C6, 0x03C6 - 0x03C6, 0x66 }, { 0x03C7, 0x03C7 - 0x03C7, 0x63 },
- { 0x03C8, 0x03C8 - 0x03C8, 0x79 }, { 0x03C9, 0x03C9 - 0x03C9, 0x77 },
- { 0x03D1, 0x03D1 - 0x03D1, 0x4A }, { 0x03D2, 0x03D2 - 0x03D2, 0xA1 },
- { 0x03D5, 0x03D5 - 0x03D5, 0x6A }, { 0x03D6, 0x03D6 - 0x03D6, 0x76 },
- { 0x2022, 0x2022 - 0x2022, 0xB7 }, { 0x2026, 0x2026 - 0x2026, 0xBC },
- { 0x2032, 0x2032 - 0x2032, 0xA2 }, { 0x2033, 0x2033 - 0x2033, 0xB2 },
- { 0x2044, 0x2044 - 0x2044, 0xA4 }, { 0x20AC, 0x20AC - 0x20AC, 0xA0 },
- { 0x2111, 0x2111 - 0x2111, 0xC1 }, { 0x2118, 0x2118 - 0x2118, 0xC3 },
- { 0x211C, 0x211C - 0x211C, 0xC2 }, { 0x2126, 0x2126 - 0x2126, 0x57 },
- { 0x2135, 0x2135 - 0x2135, 0xC0 }, { 0x2190, 0x2193 - 0x2190, 0xAC },
- { 0x2194, 0x2194 - 0x2194, 0xAB }, { 0x21B5, 0x21B5 - 0x21B5, 0xBF },
- { 0x21D0, 0x21D3 - 0x21D0, 0xDC }, { 0x21D4, 0x21D4 - 0x21D4, 0xDB },
- { 0x2200, 0x2200 - 0x2200, 0x22 }, { 0x2202, 0x2202 - 0x2202, 0xB6 },
- { 0x2203, 0x2203 - 0x2203, 0x24 }, { 0x2205, 0x2205 - 0x2205, 0xC6 },
- { 0x2206, 0x2206 - 0x2206, 0x44 }, { 0x2207, 0x2207 - 0x2207, 0xD1 },
- { 0x2208, 0x2209 - 0x2208, 0xCE }, { 0x220B, 0x220B - 0x220B, 0x27 },
- { 0x220F, 0x220F - 0x220F, 0xD5 }, { 0x2211, 0x2211 - 0x2211, 0xE5 },
- { 0x2212, 0x2212 - 0x2212, 0x2D }, { 0x2215, 0x2215 - 0x2215, 0xA4 },
- { 0x2217, 0x2217 - 0x2217, 0x2A }, { 0x221A, 0x221A - 0x221A, 0xD6 },
- { 0x221D, 0x221D - 0x221D, 0xB5 }, { 0x221E, 0x221E - 0x221E, 0xA5 },
- { 0x2220, 0x2220 - 0x2220, 0xD0 }, { 0x2227, 0x2228 - 0x2227, 0xD9 },
- { 0x2229, 0x222A - 0x2229, 0xC7 }, { 0x222B, 0x222B - 0x222B, 0xF2 },
- { 0x2234, 0x2234 - 0x2234, 0x5C }, { 0x223C, 0x223C - 0x223C, 0x7E },
- { 0x2245, 0x2245 - 0x2245, 0x40 }, { 0x2248, 0x2248 - 0x2248, 0xBB },
- { 0x2260, 0x2261 - 0x2260, 0xB9 }, { 0x2264, 0x2264 - 0x2264, 0xA3 },
- { 0x2265, 0x2265 - 0x2265, 0xB3 }, { 0x2282, 0x2282 - 0x2282, 0xCC },
- { 0x2283, 0x2283 - 0x2283, 0xC9 }, { 0x2284, 0x2284 - 0x2284, 0xCB },
- { 0x2286, 0x2286 - 0x2286, 0xCD }, { 0x2287, 0x2287 - 0x2287, 0xCA },
- { 0x2295, 0x2295 - 0x2295, 0xC5 }, { 0x2297, 0x2297 - 0x2297, 0xC4 },
- { 0x22A5, 0x22A5 - 0x22A5, 0x5E }, { 0x22C5, 0x22C5 - 0x22C5, 0xD7 },
- { 0x2320, 0x2320 - 0x2320, 0xF3 }, { 0x2321, 0x2321 - 0x2321, 0xF5 },
- { 0x2329, 0x2329 - 0x2329, 0xE1 }, { 0x232A, 0x232A - 0x232A, 0xF1 },
- { 0x239B, 0x239D - 0x239B, 0xE6 }, { 0x239E, 0x23A0 - 0x239E, 0xF6 },
- { 0x23A1, 0x23A3 - 0x23A1, 0xE9 }, { 0x23A4, 0x23A6 - 0x23A4, 0xF9 },
- { 0x23A7, 0x23AA - 0x23A7, 0xEC }, { 0x23AB, 0x23AD - 0x23AB, 0xFC },
- { 0x23AE, 0x23AE - 0x23AE, 0xF4 }, { 0x23AF, 0x23AF - 0x23AF, 0xBD },
- { 0x23D0, 0x23D0 - 0x23D0, 0xBE }, { 0x25CA, 0x25CA - 0x25CA, 0xE0 },
- { 0x2660, 0x2660 - 0x2660, 0xAA }, { 0x2663, 0x2663 - 0x2663, 0xA7 },
- { 0x2665, 0x2665 - 0x2665, 0xA9 }, { 0x2666, 0x2666 - 0x2666, 0xA8 },
- { 0xF000, 0xF0FF - 0xF000, 0x00 }, // symbol aliasing U+F0XX->S+00XX
- { 0xF6D9, 0xF6D9 - 0xF6D9, 0xD3 }, { 0xF6DA, 0xF6DA - 0xF6DA, 0xD2 },
- { 0xF6DB, 0xF6DB - 0xF6DB, 0xD4 }, { 0xF8E5, 0xF8E5 - 0xF8E5, 0x60 },
- { 0xF8E8, 0xF8EA - 0xF8E8, 0xE2 } };
-
-//TODO: Contains Unicode PUA mappings
-rtl::textenc::BmpUnicodeToSingleByteConverterData const
-adobeSymbolEncodingConverterData = {
- { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, // 0x00
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, // 0x10
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x0020, 0x0021, 0x2200, 0x0023, 0x2203, 0x0025, 0x0026, 0x220B, // 0x20
- 0x0028, 0x0029, 0x2217, 0x002B, 0x002C, 0x2212, 0x002E, 0x002F,
- 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, // 0x30
- 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
- 0x2245, 0x0391, 0x0392, 0x03A7, 0x0394, 0x0395, 0x03A6, 0x0393, // 0x40
- 0x0397, 0x0399, 0x03D1, 0x039A, 0x039B, 0x039C, 0x039D, 0x039F,
- 0x03A0, 0x0398, 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03C2, 0x03A9, // 0x50
- 0x039E, 0x03A8, 0x0396, 0x005B, 0x2234, 0x005D, 0x22A5, 0x005F,
- 0xF8E5, 0x03B1, 0x03B2, 0x03C7, 0x03B4, 0x03B5, 0x03C6, 0x03B3, // 0x60
- 0x03B7, 0x03B9, 0x03D5, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BF,
- 0x03C0, 0x03B8, 0x03C1, 0x03C3, 0x03C4, 0x03C5, 0x03D6, 0x03C9, // 0x70
- 0x03BE, 0x03C8, 0x03B6, 0x007B, 0x007C, 0x007D, 0x223C, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, // 0x80
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, // 0x90
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x20AC, 0x03D2, 0x2032, 0x2264, 0x2215, 0x221E, 0x0192, 0x2663, // 0xA0
- 0x2666, 0x2665, 0x2660, 0x2194, 0x2190, 0x2191, 0x2192, 0x2193,
- 0x00B0, 0x00B1, 0x2033, 0x2265, 0x00D7, 0x221D, 0x2202, 0x2022, // 0xB0
- 0x00F7, 0x2260, 0x2261, 0x2248, 0x2026, 0x23AF, 0x23D0, 0x21B5,
- 0x2135, 0x2111, 0x211C, 0x2118, 0x2297, 0x2295, 0x2205, 0x2229, // 0xC0
- 0x222A, 0x2283, 0x2287, 0x2284, 0x2282, 0x2286, 0x2208, 0x2209,
- 0x2220, 0x2207, 0xF6DA, 0xF6D9, 0xF6DB, 0x220F, 0x221A, 0x22C5, // 0xD0
- 0x00AC, 0x2227, 0x2228, 0x21D4, 0x21D0, 0x21D1, 0x21D2, 0x21D3,
- 0x25CA, 0x2329, 0xF8E8, 0xF8E9, 0xF8EA, 0x2211, 0x239B, 0x239C, // 0xE0
- 0x239D, 0x23A1, 0x23A2, 0x23A3, 0x23A7, 0x23A8, 0x23A9, 0x23AA,
- 0xffff, 0x232A, 0x222B, 0x2320, 0x23AE, 0x2321, 0x239E, 0x239F, // 0xF0
- 0x23A0, 0x23A4, 0x23A5, 0x23A6, 0x23AB, 0x23AC, 0x23AD, 0xffff },
- SAL_N_ELEMENTS( unicodeToAdobeSymbolEncoding ),
- unicodeToAdobeSymbolEncoding };
-
-// RTL_TEXTENCODING_ADOBE_DINGBATS is based on
-// <http://www.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/zdingbat.txt> revision
-// "v0.2, 30 March 1999"
-
-//TODO: Contains Unicode PUA mappings
-rtl::textenc::BmpUnicodeToSingleByteRange const unicodeToAdobeDingbatsEncoding[]
-= { { 0x0020, 0x0020 - 0x0020, 0x20 }, { 0x00A0, 0x00A0 - 0x00A0, 0x20 },
- { 0x2192, 0x2192 - 0x2192, 0xD5 }, { 0x2194, 0x2195 - 0x2194, 0xD6 },
- { 0x2460, 0x2469 - 0x2460, 0xAB },
- { 0x25A0, 0x25A0 - 0x25A0, 0x6E },
- { 0x25B2, 0x25B2 - 0x25B2, 0x73 }, { 0x25BC, 0x25BC - 0x25BC, 0x74 },
- { 0x25C6, 0x25C6 - 0x25C6, 0x75 }, { 0x25CF, 0x25CF - 0x25CF, 0x6C },
- { 0x25D7, 0x25D7 - 0x25D7, 0x77 },
- { 0x2605, 0x2605 - 0x2605, 0x48 }, { 0x260E, 0x260E - 0x260E, 0x25 },
- { 0x261B, 0x261B - 0x261B, 0x2A }, { 0x261E, 0x261E - 0x261E, 0x2B },
- { 0x2660, 0x2660 - 0x2660, 0xAB }, { 0x2663, 0x2663 - 0x2663, 0xA8 },
- { 0x2665, 0x2665 - 0x2665, 0xAA }, { 0x2666, 0x2666 - 0x2666, 0xA9 },
- { 0x2701, 0x2704 - 0x2701, 0x21 }, { 0x2706, 0x2709 - 0x2706, 0x26 },
- { 0x270C, 0x2727 - 0x270C, 0x2C }, { 0x2729, 0x274B - 0x2729, 0x49 },
- { 0x274D, 0x274D - 0x274D, 0x6D }, { 0x274F, 0x2752 - 0x274F, 0x6F },
- { 0x2756, 0x2756 - 0x2756, 0x76 }, { 0x2758, 0x275E - 0x2758, 0x78 },
- { 0x2761, 0x2767 - 0x2761, 0xA1 }, { 0x2776, 0x2794 - 0x2776, 0xB6 },
- { 0x2798, 0x27AF - 0x2798, 0xD8 }, { 0x27B1, 0x27BE - 0x27B1, 0xF1 },
- { 0xF000, 0xF0FF - 0xF000, 0x00 }, // symbol aliasing U+F0XX->S+00XX
- { 0xF8D7, 0xF8E4 - 0xF8D7, 0x80 }};
-
-rtl::textenc::BmpUnicodeToSingleByteConverterData const
-adobeDingbatsEncodingConverterData = {
- { 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x00
- 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
- 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x10
- 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
- 0x0020, 0x2701, 0x2702, 0x2703, 0x2704, 0x260E, 0x2706, 0x2707, // 0x20
- 0x2708, 0x2709, 0x261B, 0x261E, 0x270C, 0x270D, 0x270E, 0x270F,
- 0x2710, 0x2711, 0x2712, 0x2713, 0x2714, 0x2715, 0x2716, 0x2717, // 0x30
- 0x2718, 0x2719, 0x271A, 0x271B, 0x271C, 0x271D, 0x271E, 0x271F,
- 0x2720, 0x2721, 0x2722, 0x2723, 0x2724, 0x2725, 0x2726, 0x2727, // 0x40
- 0x2605, 0x2729, 0x272A, 0x272B, 0x272C, 0x272D, 0x272E, 0x272F,
- 0x2730, 0x2731, 0x2732, 0x2733, 0x2734, 0x2735, 0x2736, 0x2737, // 0x50
- 0x2738, 0x2739, 0x273A, 0x273B, 0x273C, 0x273D, 0x273E, 0x273F,
- 0x2740, 0x2741, 0x2742, 0x2743, 0x2744, 0x2745, 0x2746, 0x2747, // 0x60
- 0x2748, 0x2749, 0x274A, 0x274B, 0x27CF, 0x274D, 0x25A0, 0x274F,
- 0x2750, 0x2751, 0x2752, 0x25B2, 0x25BC, 0x25C6, 0x2756, 0x25D7, // 0x70
- 0x2758, 0x2759, 0x275A, 0x275B, 0x275C, 0x275D, 0x275E, 0xFFFF,
- 0xF8D7, 0xF8D8, 0xF8D9, 0xF8DA, 0xF8DB, 0xF8DC, 0xF8DD, 0xF8DE, // 0x80
- 0xF8DF, 0xF8E0, 0xF8E1, 0xF8E2, 0xF8E3, 0xF8E4, 0xFFFF, 0xFFFF,
- 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x090
- 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
- 0xFFFF, 0x2761, 0x2762, 0x2763, 0x2764, 0x2765, 0x2766, 0x2767, // 0xA0
- 0x2663, 0x2666, 0x2665, 0x2660, 0x2460, 0x2461, 0x2462, 0x2463,
- 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x2776, 0x2777, // 0xB0
- 0x2778, 0x2779, 0x277A, 0x277B, 0x277C, 0x277D, 0x277E, 0x277F,
- 0x2780, 0x2781, 0x2782, 0x2783, 0x2784, 0x2785, 0x2786, 0x2787, // 0xC0
- 0x2788, 0x2789, 0x278A, 0x278B, 0x278C, 0x278D, 0x278E, 0x278F,
- 0x2790, 0x2791, 0x2792, 0x2793, 0x2794, 0x2795, 0x2796, 0x2797, // 0xD0
- 0x2798, 0x2799, 0x279A, 0x279B, 0x279C, 0x279D, 0x279E, 0x279F,
- 0x27A0, 0x27A1, 0x27A2, 0x27A3, 0x27A4, 0x27A5, 0x27A6, 0x27A7, // 0xE0
- 0x27A8, 0x27A9, 0x27AA, 0x27AB, 0x27AC, 0x27AD, 0x27AE, 0x27AF,
- 0xFFFF, 0x27B1, 0x27B2, 0x27B3, 0x27B4, 0x27B5, 0x27B6, 0x27B7, // 0xF0
- 0x27B8, 0x27B9, 0x27BA, 0x27BB, 0x27BC, 0x27BD, 0x27BE, 0xFFFF },
- (sizeof(unicodeToAdobeDingbatsEncoding) / sizeof(*unicodeToAdobeDingbatsEncoding)),
- unicodeToAdobeDingbatsEncoding };
-
-ImplTextEncodingData const adobeStandardEncodingData
-= { { &adobeStandardEncodingConverterData,
- &rtl_textenc_convertSingleByteToBmpUnicode,
- &rtl_textenc_convertBmpUnicodeToSingleByte,
- 0, 0, 0,
- ImplCreateUnicodeToTextContext, ImplDestroyContext,
- ImplResetUnicodeToTextContext },
- 1, 1, 1,
- 0, 0, "Adobe-Standard-Encoding",
- RTL_TEXTENCODING_INFO_MIME };
-
-ImplTextEncodingData const adobeSymbolEncodingData
-= { { &adobeSymbolEncodingConverterData,
- &rtl_textenc_convertSingleByteToBmpUnicode,
- &rtl_textenc_convertBmpUnicodeToSingleByte,
- 0, 0, 0,
- ImplCreateUnicodeToTextContext, ImplDestroyContext,
- ImplResetUnicodeToTextContext },
- 1, 1, 1,
- 0, 0, "Adobe-Symbol-Encoding",
- RTL_TEXTENCODING_INFO_SYMBOL | RTL_TEXTENCODING_INFO_MIME };
-
-ImplTextEncodingData const adobeDingbatsEncodingData
-= { { &adobeDingbatsEncodingConverterData,
- &rtl_textenc_convertSingleByteToBmpUnicode,
- &rtl_textenc_convertBmpUnicodeToSingleByte,
- 0, 0, 0,
- ImplCreateUnicodeToTextContext, ImplDestroyContext,
- ImplResetUnicodeToTextContext },
- 1, 1, 1,
- 0, 0, "Adobe-ZapfDingbats-Encoding",
- 0 }; // TODO: RTL_TEXTENCODING_INFO_DINGBATS
-
-}
diff --git a/sal/textenc/convertbig5hkscs.c b/sal/textenc/convertbig5hkscs.c
deleted file mode 100644
index 71ef64880..000000000
--- a/sal/textenc/convertbig5hkscs.c
+++ /dev/null
@@ -1,496 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "convertbig5hkscs.h"
-#include "context.h"
-#include "converter.h"
-#include "tenchelp.h"
-#include "unichars.h"
-#include "osl/diagnose.h"
-#include "rtl/alloc.h"
-#include "rtl/textcvt.h"
-#include "sal/types.h"
-
-typedef struct
-{
- sal_Int32 m_nRow; /* 0--255; 0 means none */
-} ImplBig5HkscsToUnicodeContext;
-
-void * ImplCreateBig5HkscsToUnicodeContext(void)
-{
- void * pContext
- = rtl_allocateMemory(sizeof (ImplBig5HkscsToUnicodeContext));
- ((ImplBig5HkscsToUnicodeContext *) pContext)->m_nRow = 0;
- return pContext;
-}
-
-void ImplResetBig5HkscsToUnicodeContext(void * pContext)
-{
- if (pContext)
- ((ImplBig5HkscsToUnicodeContext *) pContext)->m_nRow = 0;
-}
-
-sal_Size ImplConvertBig5HkscsToUnicode(ImplTextConverterData const * pData,
- void * pContext,
- sal_Char const * pSrcBuf,
- sal_Size nSrcBytes,
- sal_Unicode * pDestBuf,
- sal_Size nDestChars,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtBytes)
-{
- sal_uInt16 const * pBig5Hkscs2001Data
- = ((ImplBig5HkscsConverterData const *) pData)->
- m_pBig5Hkscs2001ToUnicodeData;
- sal_Int32 const * pBig5Hkscs2001RowOffsets
- = ((ImplBig5HkscsConverterData const *) pData)->
- m_pBig5Hkscs2001ToUnicodeRowOffsets;
- ImplDBCSToUniLeadTab const * pBig5Data
- = ((ImplBig5HkscsConverterData const *) pData)->
- m_pBig5ToUnicodeData;
- sal_Int32 nRow = 0;
- sal_uInt32 nInfo = 0;
- sal_Size nConverted = 0;
- sal_Unicode * pDestBufPtr = pDestBuf;
- sal_Unicode * pDestBufEnd = pDestBuf + nDestChars;
-
- if (pContext)
- nRow = ((ImplBig5HkscsToUnicodeContext *) pContext)->m_nRow;
-
- for (; nConverted < nSrcBytes; ++nConverted)
- {
- sal_Bool bUndefined = sal_True;
- sal_uInt32 nChar = *(sal_uChar const *) pSrcBuf++;
- if (nRow == 0)
- if (nChar < 0x80)
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++ = (sal_Unicode) nChar;
- else
- goto no_output;
- else if (nChar >= 0x81 && nChar <= 0xFE)
- nRow = nChar;
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- else
- if ((nChar >= 0x40 && nChar <= 0x7E)
- || (nChar >= 0xA1 && nChar <= 0xFE))
- {
- sal_uInt32 nUnicode = 0xFFFF;
- sal_Int32 nOffset = pBig5Hkscs2001RowOffsets[nRow];
- sal_uInt32 nFirst=0;
- sal_uInt32 nLast=0;
- if (nOffset != -1)
- {
- sal_uInt32 nFirstLast = pBig5Hkscs2001Data[nOffset++];
- nFirst = nFirstLast & 0xFF;
- nLast = nFirstLast >> 8;
- if (nChar >= nFirst && nChar <= nLast)
- nUnicode
- = pBig5Hkscs2001Data[nOffset + (nChar - nFirst)];
- }
- if (nUnicode == 0xFFFF)
- {
- sal_uInt32 nFirst = pBig5Data[nRow].mnTrailStart;
- if (nChar >= nFirst
- && nChar <= pBig5Data[nRow].mnTrailEnd)
- {
- nUnicode
- = pBig5Data[nRow].mpToUniTrailTab[nChar - nFirst];
- if (nUnicode == 0)
- nUnicode = 0xFFFF;
- OSL_VERIFY(!ImplIsHighSurrogate(nUnicode));
- }
- }
- if (nUnicode == 0xFFFF)
- {
- ImplDBCSEUDCData const * p
- = ((ImplBig5HkscsConverterData const *) pData)->
- m_pEudcData;
- sal_uInt32 nCount
- = ((ImplBig5HkscsConverterData const *) pData)->
- m_nEudcCount;
- sal_uInt32 i;
- for (i = 0; i < nCount; ++i)
- {
- if (nRow >= p->mnLeadStart && nRow <= p->mnLeadEnd)
- {
- if (nChar < p->mnTrail1Start)
- break;
- if (nChar <= p->mnTrail1End)
- {
- nUnicode
- = p->mnUniStart
- + (nRow - p->mnLeadStart)
- * p->mnTrailRangeCount
- + (nChar - p->mnTrail1Start);
- break;
- }
- if (p->mnTrailCount < 2
- || nChar < p->mnTrail2Start)
- break;
- if (nChar <= p->mnTrail2End)
- {
- nUnicode
- = p->mnUniStart
- + (nRow - p->mnLeadStart)
- * p->mnTrailRangeCount
- + (nChar - p->mnTrail2Start)
- + (p->mnTrail1End - p->mnTrail1Start
- + 1);
- break;
- }
- if (p->mnTrailCount < 3
- || nChar < p->mnTrail3Start)
- break;
- if (nChar <= p->mnTrail3End)
- {
- nUnicode
- = p->mnUniStart
- + (nRow - p->mnLeadStart)
- * p->mnTrailRangeCount
- + (nChar - p->mnTrail3Start)
- + (p->mnTrail1End - p->mnTrail1Start
- + 1)
- + (p->mnTrail2End - p->mnTrail2Start
- + 1);
- break;
- }
- break;
- }
- ++p;
- }
- OSL_VERIFY(!ImplIsHighSurrogate(nUnicode));
- }
- if (nUnicode == 0xFFFF)
- goto bad_input;
- if (ImplIsHighSurrogate(nUnicode))
- if (pDestBufEnd - pDestBufPtr >= 2)
- {
- nOffset += nLast - nFirst + 1;
- nFirst = pBig5Hkscs2001Data[nOffset++];
- *pDestBufPtr++ = (sal_Unicode) nUnicode;
- *pDestBufPtr++
- = (sal_Unicode) pBig5Hkscs2001Data[
- nOffset + (nChar - nFirst)];
- }
- else
- goto no_output;
- else
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++ = (sal_Unicode) nUnicode;
- else
- goto no_output;
- nRow = 0;
- }
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- continue;
-
- bad_input:
- switch (ImplHandleBadInputTextToUnicodeConversion(
- bUndefined, sal_True, 0, nFlags, &pDestBufPtr, pDestBufEnd,
- &nInfo))
- {
- case IMPL_BAD_INPUT_STOP:
- nRow = 0;
- break;
-
- case IMPL_BAD_INPUT_CONTINUE:
- nRow = 0;
- continue;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- goto no_output;
- }
- break;
-
- no_output:
- --pSrcBuf;
- nInfo |= RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- if (nRow != 0
- && (nInfo & (RTL_TEXTTOUNICODE_INFO_ERROR
- | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL))
- == 0)
- {
- if ((nFlags & RTL_TEXTTOUNICODE_FLAGS_FLUSH) == 0)
- nInfo |= RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL;
- else
- switch (ImplHandleBadInputTextToUnicodeConversion(
- sal_False, sal_True, 0, nFlags, &pDestBufPtr,
- pDestBufEnd, &nInfo))
- {
- case IMPL_BAD_INPUT_STOP:
- case IMPL_BAD_INPUT_CONTINUE:
- nRow = 0;
- break;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- nInfo |= RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
- }
-
- if (pContext)
- ((ImplBig5HkscsToUnicodeContext *) pContext)->m_nRow = nRow;
- if (pInfo)
- *pInfo = nInfo;
- if (pSrcCvtBytes)
- *pSrcCvtBytes = nConverted;
-
- return pDestBufPtr - pDestBuf;
-}
-
-sal_Size ImplConvertUnicodeToBig5Hkscs(ImplTextConverterData const * pData,
- void * pContext,
- sal_Unicode const * pSrcBuf,
- sal_Size nSrcChars,
- sal_Char * pDestBuf,
- sal_Size nDestBytes,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtChars)
-{
- sal_uInt16 const * pBig5Hkscs2001Data
- = ((ImplBig5HkscsConverterData const *) pData)->
- m_pUnicodeToBig5Hkscs2001Data;
- sal_Int32 const * pBig5Hkscs2001PageOffsets
- = ((ImplBig5HkscsConverterData const *) pData)->
- m_pUnicodeToBig5Hkscs2001PageOffsets;
- sal_Int32 const * pBig5Hkscs2001PlaneOffsets
- = ((ImplBig5HkscsConverterData const *) pData)->
- m_pUnicodeToBig5Hkscs2001PlaneOffsets;
- ImplUniToDBCSHighTab const * pBig5Data
- = ((ImplBig5HkscsConverterData const *) pData)->
- m_pUnicodeToBig5Data;
- sal_Unicode nHighSurrogate = 0;
- sal_uInt32 nInfo = 0;
- sal_Size nConverted = 0;
- sal_Char * pDestBufPtr = pDestBuf;
- sal_Char * pDestBufEnd = pDestBuf + nDestBytes;
-
- if (pContext)
- nHighSurrogate
- = ((ImplUnicodeToTextContext *) pContext)->m_nHighSurrogate;
-
- for (; nConverted < nSrcChars; ++nConverted)
- {
- sal_Bool bUndefined = sal_True;
- sal_uInt32 nChar = *pSrcBuf++;
- if (nHighSurrogate == 0)
- {
- if (ImplIsHighSurrogate(nChar))
- {
- nHighSurrogate = (sal_Unicode) nChar;
- continue;
- }
- }
- else if (ImplIsLowSurrogate(nChar))
- nChar = ImplCombineSurrogates(nHighSurrogate, nChar);
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
-
- if (ImplIsLowSurrogate(nChar) || ImplIsNoncharacter(nChar))
- {
- bUndefined = sal_False;
- goto bad_input;
- }
-
- if (nChar < 0x80)
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++ = (sal_Char) nChar;
- else
- goto no_output;
- else
- {
- sal_uInt32 nBytes = 0;
- sal_Int32 nOffset = pBig5Hkscs2001PlaneOffsets[nChar >> 16];
- if (nOffset != -1)
- {
- nOffset
- = pBig5Hkscs2001PageOffsets[nOffset + ((nChar & 0xFF00)
- >> 8)];
- if (nOffset != -1)
- {
- sal_uInt32 nFirstLast = pBig5Hkscs2001Data[nOffset++];
- sal_uInt32 nFirst = nFirstLast & 0xFF;
- sal_uInt32 nLast = nFirstLast >> 8;
- sal_uInt32 nIndex = nChar & 0xFF;
- if (nIndex >= nFirst && nIndex <= nLast)
- {
- nBytes
- = pBig5Hkscs2001Data[nOffset + (nIndex - nFirst)];
- }
- }
- }
- if (nBytes == 0)
- {
- sal_uInt32 nIndex1 = nChar >> 8;
- if (nIndex1 < 0x100)
- {
- sal_uInt32 nIndex2 = nChar & 0xFF;
- sal_uInt32 nFirst = pBig5Data[nIndex1].mnLowStart;
- if (nIndex2 >= nFirst
- && nIndex2 <= pBig5Data[nIndex1].mnLowEnd)
- nBytes = pBig5Data[nIndex1].
- mpToUniTrailTab[nIndex2 - nFirst];
- }
- }
- if (nBytes == 0)
- {
- ImplDBCSEUDCData const * p
- = ((ImplBig5HkscsConverterData const *) pData)->
- m_pEudcData;
- sal_uInt32 nCount
- = ((ImplBig5HkscsConverterData const *) pData)->
- m_nEudcCount;
- sal_uInt32 i;
- for (i = 0; i < nCount; ++i) {
- if (nChar >= p->mnUniStart && nChar <= p->mnUniEnd)
- {
- sal_uInt32 nIndex = nChar - p->mnUniStart;
- sal_uInt32 nLeadOff = nIndex / p->mnTrailRangeCount;
- sal_uInt32 nTrailOff = nIndex % p->mnTrailRangeCount;
- sal_uInt32 nSize;
- nBytes = (p->mnLeadStart + nLeadOff) << 8;
- nSize = p->mnTrail1End - p->mnTrail1Start + 1;
- if (nTrailOff < nSize)
- {
- nBytes |= p->mnTrail1Start + nTrailOff;
- break;
- }
- nTrailOff -= nSize;
- nSize = p->mnTrail2End - p->mnTrail2Start + 1;
- if (nTrailOff < nSize)
- {
- nBytes |= p->mnTrail2Start + nTrailOff;
- break;
- }
- nTrailOff -= nSize;
- nBytes |= p->mnTrail3Start + nTrailOff;
- break;
- }
- ++p;
- }
- }
- if (nBytes == 0)
- goto bad_input;
- if (pDestBufEnd - pDestBufPtr >= 2)
- {
- *pDestBufPtr++ = (sal_Char) (nBytes >> 8);
- *pDestBufPtr++ = (sal_Char) (nBytes & 0xFF);
- }
- else
- goto no_output;
- }
- nHighSurrogate = 0;
- continue;
-
- bad_input:
- switch (ImplHandleBadInputUnicodeToTextConversion(bUndefined,
- nChar,
- nFlags,
- &pDestBufPtr,
- pDestBufEnd,
- &nInfo,
- NULL,
- 0,
- NULL))
- {
- case IMPL_BAD_INPUT_STOP:
- nHighSurrogate = 0;
- break;
-
- case IMPL_BAD_INPUT_CONTINUE:
- nHighSurrogate = 0;
- continue;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- goto no_output;
- }
- break;
-
- no_output:
- --pSrcBuf;
- nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- if (nHighSurrogate != 0
- && (nInfo & (RTL_UNICODETOTEXT_INFO_ERROR
- | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL))
- == 0)
- {
- if ((nFlags & RTL_UNICODETOTEXT_FLAGS_FLUSH) != 0)
- nInfo |= RTL_UNICODETOTEXT_INFO_SRCBUFFERTOSMALL;
- else
- switch (ImplHandleBadInputUnicodeToTextConversion(sal_False,
- 0,
- nFlags,
- &pDestBufPtr,
- pDestBufEnd,
- &nInfo,
- NULL,
- 0,
- NULL))
- {
- case IMPL_BAD_INPUT_STOP:
- case IMPL_BAD_INPUT_CONTINUE:
- nHighSurrogate = 0;
- break;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
- }
-
- if (pContext)
- ((ImplUnicodeToTextContext *) pContext)->m_nHighSurrogate
- = nHighSurrogate;
- if (pInfo)
- *pInfo = nInfo;
- if (pSrcCvtChars)
- *pSrcCvtChars = nConverted;
-
- return pDestBufPtr - pDestBuf;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/convertbig5hkscs.h b/sal/textenc/convertbig5hkscs.h
deleted file mode 100644
index 77e5638e3..000000000
--- a/sal/textenc/convertbig5hkscs.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_TEXTENC_CONVERTBIG5HKSCS_H
-#define INCLUDED_RTL_TEXTENC_CONVERTBIG5HKSCS_H
-
-#include "tenchelp.h"
-#include "sal/types.h"
-
-#if defined __cplusplus
-extern "C" {
-#endif /* __cpluscplus */
-
-typedef struct
-{
- sal_uInt16 const * m_pBig5Hkscs2001ToUnicodeData;
- sal_Int32 const * m_pBig5Hkscs2001ToUnicodeRowOffsets;
- ImplDBCSToUniLeadTab const * m_pBig5ToUnicodeData;
- sal_uInt16 const * m_pUnicodeToBig5Hkscs2001Data;
- sal_Int32 const * m_pUnicodeToBig5Hkscs2001PageOffsets;
- sal_Int32 const * m_pUnicodeToBig5Hkscs2001PlaneOffsets;
- ImplUniToDBCSHighTab const * m_pUnicodeToBig5Data;
- ImplDBCSEUDCData const * m_pEudcData;
- int m_nEudcCount;
-} ImplBig5HkscsConverterData;
-
-void * ImplCreateBig5HkscsToUnicodeContext(void) SAL_THROW_EXTERN_C();
-
-void ImplResetBig5HkscsToUnicodeContext(void * pContext) SAL_THROW_EXTERN_C();
-
-sal_Size ImplConvertBig5HkscsToUnicode(ImplTextConverterData const * pData,
- void * pContext,
- sal_Char const * pSrcBuf,
- sal_Size nSrcBytes,
- sal_Unicode * pDestBuf,
- sal_Size nDestChars,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtBytes)
- SAL_THROW_EXTERN_C();
-
-sal_Size ImplConvertUnicodeToBig5Hkscs(ImplTextConverterData const * pData,
- void * pContext,
- sal_Unicode const * pSrcBuf,
- sal_Size nSrcChars,
- sal_Char * pDestBuf,
- sal_Size nDestBytes,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtChars)
- SAL_THROW_EXTERN_C();
-
-#if defined __cplusplus
-}
-#endif /* __cpluscplus */
-
-#endif /* INCLUDED_RTL_TEXTENC_CONVERTBIG5HKSCS_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/convertbig5hkscs.tab b/sal/textenc/convertbig5hkscs.tab
deleted file mode 100644
index 314ccc84e..000000000
--- a/sal/textenc/convertbig5hkscs.tab
+++ /dev/null
@@ -1,72 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_TEXTENC_CONTEXT_H
-#include "context.h"
-#endif
-#ifndef INCLUDED_RTL_TEXTENC_CONVERTBIG5HKSCS_H
-#include "convertbig5hkscs.h"
-#endif
-
-#ifndef _RTL_TENCINFO_H
-#include "rtl/tencinfo.h"
-#endif
-#ifndef _RTL_TEXTENC_H
-#include "rtl/textenc.h"
-#endif
-
-#include "generate/big5hkscs2001.tab"
-
-static ImplBig5HkscsConverterData const aImplBig5HkscsConvertData
- = { aImplBig5Hkscs2001ToUnicodeData,
- aImplBig5Hkscs2001ToUnicodeRowOffsets,
- aBIG5UniLeadTab, /* from tcvttcn6.tab */
- aImplUnicodeToBig5Hkscs2001Data,
- aImplUnicodeToBig5Hkscs2001PageOffsets,
- aImplUnicodeToBig5Hkscs2001PlaneOffsets,
- aBIG5DBCSHighTab, /* from tcvttcn6.tab */
- aImplMS950DBCSEUDCTab, /* from tcvttcn6.tab */
- DBCS_EUDC_MS950_COUNT }; /* from tcvttcn6.tab */
-
-static ImplTextEncodingData const aImplBig5HkscsTextEncodingData
- = { { &aImplBig5HkscsConvertData,
- &ImplConvertBig5HkscsToUnicode,
- &ImplConvertUnicodeToBig5Hkscs,
- &ImplCreateBig5HkscsToUnicodeContext,
- &ImplDestroyContext,
- &ImplResetBig5HkscsToUnicodeContext,
- &ImplCreateUnicodeToTextContext,
- &ImplDestroyContext,
- &ImplResetUnicodeToTextContext },
- 1,
- 2,
- 2,
- 136,
- "euc-tw",
- "Big5-HKSCS",
- RTL_TEXTENCODING_INFO_MULTIBYTE | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_CHINESE_TRADITIONAL */
diff --git a/sal/textenc/converter.c b/sal/textenc/converter.c
deleted file mode 100644
index c488c61fa..000000000
--- a/sal/textenc/converter.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "converter.h"
-#include "tenchelp.h"
-#include "unichars.h"
-#include "rtl/textcvt.h"
-#include "sal/types.h"
-
-ImplBadInputConversionAction ImplHandleBadInputTextToUnicodeConversion(
- sal_Bool bUndefined, sal_Bool bMultiByte, sal_Char cByte, sal_uInt32 nFlags,
- sal_Unicode ** pDestBufPtr, sal_Unicode * pDestBufEnd, sal_uInt32 * pInfo)
-{
- *pInfo |= bUndefined
- ? (bMultiByte
- ? RTL_TEXTTOUNICODE_INFO_MBUNDEFINED
- : RTL_TEXTTOUNICODE_INFO_UNDEFINED)
- : RTL_TEXTTOUNICODE_INFO_INVALID;
- switch (nFlags
- & (bUndefined
- ? (bMultiByte
- ? RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_MASK
- : RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MASK)
- : RTL_TEXTTOUNICODE_FLAGS_INVALID_MASK))
- {
- case RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR:
- case RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR:
- case RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR:
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR;
- return IMPL_BAD_INPUT_STOP;
-
- case RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE:
- case RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_IGNORE:
- case RTL_TEXTTOUNICODE_FLAGS_INVALID_IGNORE:
- return IMPL_BAD_INPUT_CONTINUE;
-
- case RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MAPTOPRIVATE:
- if (*pDestBufPtr != pDestBufEnd)
- {
- *(*pDestBufPtr)++ = RTL_TEXTCVT_BYTE_PRIVATE_START
- | ((sal_uChar) cByte);
- return IMPL_BAD_INPUT_CONTINUE;
- }
- else
- return IMPL_BAD_INPUT_NO_OUTPUT;
-
- default: /* RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_DEFAULT,
- RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_DEFAULT,
- RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT */
- if (*pDestBufPtr != pDestBufEnd)
- {
- *(*pDestBufPtr)++ = RTL_TEXTENC_UNICODE_REPLACEMENT_CHARACTER;
- return IMPL_BAD_INPUT_CONTINUE;
- }
- else
- return IMPL_BAD_INPUT_NO_OUTPUT;
- }
-}
-
-ImplBadInputConversionAction
-ImplHandleBadInputUnicodeToTextConversion(sal_Bool bUndefined,
- sal_uInt32 nUtf32,
- sal_uInt32 nFlags,
- sal_Char ** pDestBufPtr,
- sal_Char * pDestBufEnd,
- sal_uInt32 * pInfo,
- sal_Char const * pPrefix,
- sal_Size nPrefixLen,
- sal_Bool * pPrefixWritten)
-{
- /* TODO! RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACE
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACESTR */
-
- sal_Char cReplace;
-
- if (bUndefined)
- {
- if (ImplIsControlOrFormat(nUtf32))
- {
- if ((nFlags & RTL_UNICODETOTEXT_FLAGS_CONTROL_IGNORE) != 0)
- nFlags = RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE;
- }
- else if (ImplIsPrivateUse(nUtf32))
- {
- if ((nFlags & RTL_UNICODETOTEXT_FLAGS_PRIVATE_IGNORE) != 0)
- nFlags = RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE;
- else if ((nFlags & RTL_UNICODETOTEXT_FLAGS_PRIVATE_MAPTO0) != 0)
- nFlags = RTL_UNICODETOTEXT_FLAGS_UNDEFINED_0;
- }
- else if (ImplIsZeroWidth(nUtf32))
- {
- if ((nFlags & RTL_UNICODETOTEXT_FLAGS_NONSPACING_IGNORE) != 0)
- nFlags = RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE;
- }
- }
- *pInfo |= bUndefined ? RTL_UNICODETOTEXT_INFO_UNDEFINED :
- RTL_UNICODETOTEXT_INFO_INVALID;
- switch (nFlags & (bUndefined ? RTL_UNICODETOTEXT_FLAGS_UNDEFINED_MASK :
- RTL_UNICODETOTEXT_FLAGS_INVALID_MASK))
- {
- case RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR:
- case RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR:
- *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR;
- return IMPL_BAD_INPUT_STOP;
-
- case RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE:
- case RTL_UNICODETOTEXT_FLAGS_INVALID_IGNORE:
- if (pPrefixWritten)
- *pPrefixWritten = sal_False;
- return IMPL_BAD_INPUT_CONTINUE;
-
- case RTL_UNICODETOTEXT_FLAGS_UNDEFINED_0:
- case RTL_UNICODETOTEXT_FLAGS_INVALID_0:
- cReplace = 0;
- break;
-
- case RTL_UNICODETOTEXT_FLAGS_UNDEFINED_QUESTIONMARK:
- case RTL_UNICODETOTEXT_FLAGS_INVALID_QUESTIONMARK:
- default: /* RTL_UNICODETOTEXT_FLAGS_UNDEFINED_DEFAULT,
- RTL_UNICODETOTEXT_FLAGS_INVALID_DEFAULT */
- cReplace = '?';
- break;
-
- case RTL_UNICODETOTEXT_FLAGS_UNDEFINED_UNDERLINE:
- case RTL_UNICODETOTEXT_FLAGS_INVALID_UNDERLINE:
- cReplace = '_';
- break;
- }
- if ((sal_Size) (pDestBufEnd - *pDestBufPtr) > nPrefixLen)
- {
- while (nPrefixLen-- > 0)
- *(*pDestBufPtr)++ = *pPrefix++;
- *(*pDestBufPtr)++ = cReplace;
- if (pPrefixWritten)
- *pPrefixWritten = sal_True;
- return IMPL_BAD_INPUT_CONTINUE;
- }
- else
- return IMPL_BAD_INPUT_NO_OUTPUT;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/converter.h b/sal/textenc/converter.h
deleted file mode 100644
index 8284bde40..000000000
--- a/sal/textenc/converter.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_TEXTENC_CONVERTER_H
-#define INCLUDED_RTL_TEXTENC_CONVERTER_H
-
-#include "sal/types.h"
-
-#if defined __cplusplus
-extern "C" {
-#endif /* __cpluscplus */
-
-typedef enum
-{
- IMPL_BAD_INPUT_STOP,
- IMPL_BAD_INPUT_CONTINUE,
- IMPL_BAD_INPUT_NO_OUTPUT
-} ImplBadInputConversionAction;
-
-ImplBadInputConversionAction
-ImplHandleBadInputTextToUnicodeConversion(
- sal_Bool bUndefined, sal_Bool bMultiByte, sal_Char cByte, sal_uInt32 nFlags,
- sal_Unicode ** pDestBufPtr, sal_Unicode * pDestBufEnd, sal_uInt32 * pInfo)
- SAL_THROW_EXTERN_C();
-
-ImplBadInputConversionAction
-ImplHandleBadInputUnicodeToTextConversion(sal_Bool bUndefined,
- sal_uInt32 nUtf32,
- sal_uInt32 nFlags,
- sal_Char ** pDestBufPtr,
- sal_Char * pDestBufEnd,
- sal_uInt32 * pInfo,
- sal_Char const * pPrefix,
- sal_Size nPrefixLen,
- sal_Bool * pPrefixWritten)
- SAL_THROW_EXTERN_C();
-
-#if defined __cplusplus
-}
-#endif /* __cpluscplus */
-
-#endif /* INCLUDED_RTL_TEXTENC_CONVERTER_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/converteuctw.c b/sal/textenc/converteuctw.c
deleted file mode 100644
index 342575012..000000000
--- a/sal/textenc/converteuctw.c
+++ /dev/null
@@ -1,455 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "converteuctw.h"
-#include "context.h"
-#include "converter.h"
-#include "tenchelp.h"
-#include "unichars.h"
-#include "rtl/alloc.h"
-#include "rtl/textcvt.h"
-#include "sal/types.h"
-
-typedef enum
-{
- IMPL_EUC_TW_TO_UNICODE_STATE_0,
- IMPL_EUC_TW_TO_UNICODE_STATE_1,
- IMPL_EUC_TW_TO_UNICODE_STATE_2_1,
- IMPL_EUC_TW_TO_UNICODE_STATE_2_2,
- IMPL_EUC_TW_TO_UNICODE_STATE_2_3
-} ImplEucTwToUnicodeState;
-
-typedef struct
-{
- ImplEucTwToUnicodeState m_eState;
- sal_Int32 m_nPlane; /* 0--15 */
- sal_Int32 m_nRow; /* 0--93 */
-} ImplEucTwToUnicodeContext;
-
-void * ImplCreateEucTwToUnicodeContext(void)
-{
- void * pContext = rtl_allocateMemory(sizeof (ImplEucTwToUnicodeContext));
- ((ImplEucTwToUnicodeContext *) pContext)->m_eState
- = IMPL_EUC_TW_TO_UNICODE_STATE_0;
- return pContext;
-}
-
-void ImplResetEucTwToUnicodeContext(void * pContext)
-{
- if (pContext)
- ((ImplEucTwToUnicodeContext *) pContext)->m_eState
- = IMPL_EUC_TW_TO_UNICODE_STATE_0;
-}
-
-sal_Size ImplConvertEucTwToUnicode(ImplTextConverterData const * pData,
- void * pContext,
- sal_Char const * pSrcBuf,
- sal_Size nSrcBytes,
- sal_Unicode * pDestBuf,
- sal_Size nDestChars,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtBytes)
-{
- sal_uInt16 const * pCns116431992Data
- = ((ImplEucTwConverterData const *) pData)->
- m_pCns116431992ToUnicodeData;
- sal_Int32 const * pCns116431992RowOffsets
- = ((ImplEucTwConverterData const *) pData)->
- m_pCns116431992ToUnicodeRowOffsets;
- sal_Int32 const * pCns116431992PlaneOffsets
- = ((ImplEucTwConverterData const *) pData)->
- m_pCns116431992ToUnicodePlaneOffsets;
- ImplEucTwToUnicodeState eState = IMPL_EUC_TW_TO_UNICODE_STATE_0;
- sal_Int32 nPlane = 0;
- sal_Int32 nRow = 0;
- sal_uInt32 nInfo = 0;
- sal_Size nConverted = 0;
- sal_Unicode * pDestBufPtr = pDestBuf;
- sal_Unicode * pDestBufEnd = pDestBuf + nDestChars;
-
- if (pContext)
- {
- eState = ((ImplEucTwToUnicodeContext *) pContext)->m_eState;
- nPlane = ((ImplEucTwToUnicodeContext *) pContext)->m_nPlane;
- nRow = ((ImplEucTwToUnicodeContext *) pContext)->m_nRow;
- }
-
- for (; nConverted < nSrcBytes; ++nConverted)
- {
- sal_Bool bUndefined = sal_True;
- sal_uInt32 nChar = *(sal_uChar const *) pSrcBuf++;
- switch (eState)
- {
- case IMPL_EUC_TW_TO_UNICODE_STATE_0:
- if (nChar < 0x80)
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++ = (sal_Unicode) nChar;
- else
- goto no_output;
- else if (nChar >= 0xA1 && nChar <= 0xFE)
- {
- nRow = nChar - 0xA1;
- eState = IMPL_EUC_TW_TO_UNICODE_STATE_1;
- }
- else if (nChar == 0x8E)
- eState = IMPL_EUC_TW_TO_UNICODE_STATE_2_1;
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_EUC_TW_TO_UNICODE_STATE_1:
- if (nChar >= 0xA1 && nChar <= 0xFE)
- {
- nPlane = 0;
- goto transform;
- }
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_EUC_TW_TO_UNICODE_STATE_2_1:
- if (nChar >= 0xA1 && nChar <= 0xB0)
- {
- nPlane = nChar - 0xA1;
- ++eState;
- }
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_EUC_TW_TO_UNICODE_STATE_2_2:
- if (nChar >= 0xA1 && nChar <= 0xFE)
- {
- nRow = nChar - 0xA1;
- ++eState;
- }
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_EUC_TW_TO_UNICODE_STATE_2_3:
- if (nChar >= 0xA1 && nChar <= 0xFE)
- goto transform;
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
- }
- continue;
-
- transform:
- {
- sal_Int32 nPlaneOffset = pCns116431992PlaneOffsets[nPlane];
- if (nPlaneOffset == -1)
- goto bad_input;
- else
- {
- sal_Int32 nOffset
- = pCns116431992RowOffsets[nPlaneOffset + nRow];
- if (nOffset == -1)
- goto bad_input;
- else
- {
- sal_uInt32 nFirstLast = pCns116431992Data[nOffset++];
- sal_uInt32 nFirst = nFirstLast & 0xFF;
- sal_uInt32 nLast = nFirstLast >> 8;
- nChar -= 0xA0;
- if (nChar >= nFirst && nChar <= nLast)
- {
- sal_uInt32 nUnicode
- = pCns116431992Data[nOffset + (nChar - nFirst)];
- if (nUnicode == 0xFFFF)
- goto bad_input;
- else if (ImplIsHighSurrogate(nUnicode))
- if (pDestBufEnd - pDestBufPtr >= 2)
- {
- nOffset += nLast - nFirst + 1;
- nFirst = pCns116431992Data[nOffset++];
- *pDestBufPtr++ = (sal_Unicode) nUnicode;
- *pDestBufPtr++
- = (sal_Unicode)
- pCns116431992Data[
- nOffset + (nChar - nFirst)];
- }
- else
- goto no_output;
- else
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++ = (sal_Unicode) nUnicode;
- else
- goto no_output;
- }
- else
- goto bad_input;
- eState = IMPL_EUC_TW_TO_UNICODE_STATE_0;
- }
- }
- continue;
- }
-
- bad_input:
- switch (ImplHandleBadInputTextToUnicodeConversion(
- bUndefined, sal_True, 0, nFlags, &pDestBufPtr, pDestBufEnd,
- &nInfo))
- {
- case IMPL_BAD_INPUT_STOP:
- eState = IMPL_EUC_TW_TO_UNICODE_STATE_0;
- break;
-
- case IMPL_BAD_INPUT_CONTINUE:
- eState = IMPL_EUC_TW_TO_UNICODE_STATE_0;
- continue;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- goto no_output;
- }
- break;
-
- no_output:
- --pSrcBuf;
- nInfo |= RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- if (eState != IMPL_EUC_TW_TO_UNICODE_STATE_0
- && (nInfo & (RTL_TEXTTOUNICODE_INFO_ERROR
- | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL))
- == 0)
- {
- if ((nFlags & RTL_TEXTTOUNICODE_FLAGS_FLUSH) == 0)
- nInfo |= RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL;
- else
- switch (ImplHandleBadInputTextToUnicodeConversion(
- sal_False, sal_True, 0, nFlags, &pDestBufPtr,
- pDestBufEnd, &nInfo))
- {
- case IMPL_BAD_INPUT_STOP:
- case IMPL_BAD_INPUT_CONTINUE:
- eState = IMPL_EUC_TW_TO_UNICODE_STATE_0;
- break;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- nInfo |= RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
- }
-
- if (pContext)
- {
- ((ImplEucTwToUnicodeContext *) pContext)->m_eState = eState;
- ((ImplEucTwToUnicodeContext *) pContext)->m_nPlane = nPlane;
- ((ImplEucTwToUnicodeContext *) pContext)->m_nRow = nRow;
- }
- if (pInfo)
- *pInfo = nInfo;
- if (pSrcCvtBytes)
- *pSrcCvtBytes = nConverted;
-
- return pDestBufPtr - pDestBuf;
-}
-
-sal_Size ImplConvertUnicodeToEucTw(ImplTextConverterData const * pData,
- void * pContext,
- sal_Unicode const * pSrcBuf,
- sal_Size nSrcChars,
- sal_Char * pDestBuf,
- sal_Size nDestBytes,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtChars)
-{
- sal_uInt8 const * pCns116431992Data
- = ((ImplEucTwConverterData const *) pData)->
- m_pUnicodeToCns116431992Data;
- sal_Int32 const * pCns116431992PageOffsets
- = ((ImplEucTwConverterData const *) pData)->
- m_pUnicodeToCns116431992PageOffsets;
- sal_Int32 const * pCns116431992PlaneOffsets
- = ((ImplEucTwConverterData const *) pData)->
- m_pUnicodeToCns116431992PlaneOffsets;
- sal_Unicode nHighSurrogate = 0;
- sal_uInt32 nInfo = 0;
- sal_Size nConverted = 0;
- sal_Char * pDestBufPtr = pDestBuf;
- sal_Char * pDestBufEnd = pDestBuf + nDestBytes;
-
- if (pContext)
- nHighSurrogate
- = ((ImplUnicodeToTextContext *) pContext)->m_nHighSurrogate;
-
- for (; nConverted < nSrcChars; ++nConverted)
- {
- sal_Bool bUndefined = sal_True;
- sal_uInt32 nChar = *pSrcBuf++;
- if (nHighSurrogate == 0)
- {
- if (ImplIsHighSurrogate(nChar))
- {
- nHighSurrogate = (sal_Unicode) nChar;
- continue;
- }
- }
- else if (ImplIsLowSurrogate(nChar))
- nChar = ImplCombineSurrogates(nHighSurrogate, nChar);
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
-
- if (ImplIsLowSurrogate(nChar) || ImplIsNoncharacter(nChar))
- {
- bUndefined = sal_False;
- goto bad_input;
- }
-
- if (nChar < 0x80)
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++ = (sal_Char) nChar;
- else
- goto no_output;
- else
- {
- sal_Int32 nOffset = pCns116431992PlaneOffsets[nChar >> 16];
- sal_uInt32 nFirst;
- sal_uInt32 nLast;
- sal_uInt32 nPlane;
- if (nOffset == -1)
- goto bad_input;
- nOffset
- = pCns116431992PageOffsets[nOffset + ((nChar & 0xFF00) >> 8)];
- if (nOffset == -1)
- goto bad_input;
- nFirst = pCns116431992Data[nOffset++];
- nLast = pCns116431992Data[nOffset++];
- nChar &= 0xFF;
- if (nChar < nFirst || nChar > nLast)
- goto bad_input;
- nOffset += 3 * (nChar - nFirst);
- nPlane = pCns116431992Data[nOffset++];
- if (nPlane == 0)
- goto bad_input;
- if (pDestBufEnd - pDestBufPtr < (nPlane == 1 ? 2 : 4))
- goto no_output;
- if (nPlane != 1)
- {
- *pDestBufPtr++ = (sal_Char) (unsigned char) 0x8E;
- *pDestBufPtr++ = (sal_Char) (0xA0 + nPlane);
- }
- *pDestBufPtr++ = (sal_Char) (0xA0 + pCns116431992Data[nOffset++]);
- *pDestBufPtr++ = (sal_Char) (0xA0 + pCns116431992Data[nOffset]);
- }
- nHighSurrogate = 0;
- continue;
-
- bad_input:
- switch (ImplHandleBadInputUnicodeToTextConversion(bUndefined,
- nChar,
- nFlags,
- &pDestBufPtr,
- pDestBufEnd,
- &nInfo,
- NULL,
- 0,
- NULL))
- {
- case IMPL_BAD_INPUT_STOP:
- nHighSurrogate = 0;
- break;
-
- case IMPL_BAD_INPUT_CONTINUE:
- nHighSurrogate = 0;
- continue;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- goto no_output;
- }
- break;
-
- no_output:
- --pSrcBuf;
- nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- if (nHighSurrogate != 0
- && (nInfo & (RTL_UNICODETOTEXT_INFO_ERROR
- | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL))
- == 0)
- {
- if ((nFlags & RTL_UNICODETOTEXT_FLAGS_FLUSH) != 0)
- nInfo |= RTL_UNICODETOTEXT_INFO_SRCBUFFERTOSMALL;
- else
- switch (ImplHandleBadInputUnicodeToTextConversion(sal_False,
- 0,
- nFlags,
- &pDestBufPtr,
- pDestBufEnd,
- &nInfo,
- NULL,
- 0,
- NULL))
- {
- case IMPL_BAD_INPUT_STOP:
- case IMPL_BAD_INPUT_CONTINUE:
- nHighSurrogate = 0;
- break;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
- }
-
- if (pContext)
- ((ImplUnicodeToTextContext *) pContext)->m_nHighSurrogate
- = nHighSurrogate;
- if (pInfo)
- *pInfo = nInfo;
- if (pSrcCvtChars)
- *pSrcCvtChars = nConverted;
-
- return pDestBufPtr - pDestBuf;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/converteuctw.h b/sal/textenc/converteuctw.h
deleted file mode 100644
index 0edbe5735..000000000
--- a/sal/textenc/converteuctw.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_TEXTENC_CONVERTEUCTW_H
-#define INCLUDED_RTL_TEXTENC_CONVERTEUCTW_H
-
-#include "tenchelp.h"
-#include "sal/types.h"
-
-#if defined __cplusplus
-extern "C" {
-#endif /* __cpluscplus */
-
-typedef struct
-{
- sal_uInt16 const * m_pCns116431992ToUnicodeData;
- sal_Int32 const * m_pCns116431992ToUnicodeRowOffsets;
- sal_Int32 const * m_pCns116431992ToUnicodePlaneOffsets;
- sal_uInt8 const * m_pUnicodeToCns116431992Data;
- sal_Int32 const * m_pUnicodeToCns116431992PageOffsets;
- sal_Int32 const * m_pUnicodeToCns116431992PlaneOffsets;
-} ImplEucTwConverterData;
-
-void * ImplCreateEucTwToUnicodeContext(void) SAL_THROW_EXTERN_C();
-
-void ImplResetEucTwToUnicodeContext(void * pContext) SAL_THROW_EXTERN_C();
-
-sal_Size ImplConvertEucTwToUnicode(ImplTextConverterData const * pData,
- void * pContext,
- sal_Char const * pSrcBuf,
- sal_Size nSrcBytes,
- sal_Unicode * pDestBuf,
- sal_Size nDestChars,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtBytes)
- SAL_THROW_EXTERN_C();
-
-sal_Size ImplConvertUnicodeToEucTw(ImplTextConverterData const * pData,
- void * pContext,
- sal_Unicode const * pSrcBuf,
- sal_Size nSrcChars,
- sal_Char * pDestBuf,
- sal_Size nDestBytes,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtChars)
- SAL_THROW_EXTERN_C();
-
-#if defined __cplusplus
-}
-#endif /* __cpluscplus */
-
-#endif /* INCLUDED_RTL_TEXTENC_CONVERTEUCTW_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/converteuctw.tab b/sal/textenc/converteuctw.tab
deleted file mode 100644
index dda030915..000000000
--- a/sal/textenc/converteuctw.tab
+++ /dev/null
@@ -1,69 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_TEXTENC_CONTEXT_H
-#include "context.h"
-#endif
-#ifndef INCLUDED_RTL_TEXTENC_CONVERTEUCTW_H
-#include "converteuctw.h"
-#endif
-
-#ifndef _RTL_TENCINFO_H
-#include "rtl/tencinfo.h"
-#endif
-#ifndef _RTL_TEXTENC_H
-#include "rtl/textenc.h"
-#endif
-
-#include "generate/cns116431992.tab"
-
-static ImplEucTwConverterData const aImplEucTwConvertData
- = { aImplCns116431992ToUnicodeData,
- aImplCns116431992ToUnicodeRowOffsets,
- aImplCns116431992ToUnicodePlaneOffsets,
- aImplUnicodeToCns116431992Data,
- aImplUnicodeToCns116431992PageOffsets,
- aImplUnicodeToCns116431992PlaneOffsets };
-
-static ImplTextEncodingData const aImplEucTwTextEncodingData
- = { { &aImplEucTwConvertData,
- &ImplConvertEucTwToUnicode,
- &ImplConvertUnicodeToEucTw,
- &ImplCreateEucTwToUnicodeContext,
- &ImplDestroyContext,
- &ImplResetEucTwToUnicodeContext,
- &ImplCreateUnicodeToTextContext,
- &ImplDestroyContext,
- &ImplResetUnicodeToTextContext },
- 1,
- 4,
- 2,
- 136,
- "cns11643-1",
- "Big5",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MULTIBYTE };
- /* SCRIPT_CHINESE_TRADITIONAL */
diff --git a/sal/textenc/convertgb18030.c b/sal/textenc/convertgb18030.c
deleted file mode 100644
index 356eb8c7d..000000000
--- a/sal/textenc/convertgb18030.c
+++ /dev/null
@@ -1,471 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "convertgb18030.h"
-#include "context.h"
-#include "converter.h"
-#include "tenchelp.h"
-#include "unichars.h"
-#include "rtl/alloc.h"
-#include "rtl/textcvt.h"
-#include "sal/types.h"
-
-typedef enum
-{
- IMPL_GB_18030_TO_UNICODE_STATE_0,
- IMPL_GB_18030_TO_UNICODE_STATE_1,
- IMPL_GB_18030_TO_UNICODE_STATE_2,
- IMPL_GB_18030_TO_UNICODE_STATE_3
-} ImplGb18030ToUnicodeState;
-
-typedef struct
-{
- ImplGb18030ToUnicodeState m_eState;
- sal_uInt32 m_nCode;
-} ImplGb18030ToUnicodeContext;
-
-void * ImplCreateGb18030ToUnicodeContext(void)
-{
- void * pContext
- = rtl_allocateMemory(sizeof (ImplGb18030ToUnicodeContext));
- ((ImplGb18030ToUnicodeContext *) pContext)->m_eState
- = IMPL_GB_18030_TO_UNICODE_STATE_0;
- return pContext;
-}
-
-void ImplResetGb18030ToUnicodeContext(void * pContext)
-{
- if (pContext)
- ((ImplGb18030ToUnicodeContext *) pContext)->m_eState
- = IMPL_GB_18030_TO_UNICODE_STATE_0;
-}
-
-sal_Size ImplConvertGb18030ToUnicode(ImplTextConverterData const * pData,
- void * pContext,
- sal_Char const * pSrcBuf,
- sal_Size nSrcBytes,
- sal_Unicode * pDestBuf,
- sal_Size nDestChars,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtBytes)
-{
- sal_Unicode const * pGb18030Data
- = ((ImplGb18030ConverterData const *) pData)->m_pGb18030ToUnicodeData;
- ImplGb180302000ToUnicodeRange const * pGb18030Ranges
- = ((ImplGb18030ConverterData const *) pData)->
- m_pGb18030ToUnicodeRanges;
- ImplGb18030ToUnicodeState eState = IMPL_GB_18030_TO_UNICODE_STATE_0;
- sal_uInt32 nCode = 0;
- sal_uInt32 nInfo = 0;
- sal_Size nConverted = 0;
- sal_Unicode * pDestBufPtr = pDestBuf;
- sal_Unicode * pDestBufEnd = pDestBuf + nDestChars;
-
- if (pContext)
- {
- eState = ((ImplGb18030ToUnicodeContext *) pContext)->m_eState;
- nCode = ((ImplGb18030ToUnicodeContext *) pContext)->m_nCode;
- }
-
- for (; nConverted < nSrcBytes; ++nConverted)
- {
- sal_Bool bUndefined = sal_True;
- sal_uInt32 nChar = *(sal_uChar const *) pSrcBuf++;
- switch (eState)
- {
- case IMPL_GB_18030_TO_UNICODE_STATE_0:
- if (nChar < 0x80)
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++ = (sal_Unicode) nChar;
- else
- goto no_output;
- else if (nChar == 0x80)
- goto bad_input;
- else if (nChar <= 0xFE)
- {
- nCode = nChar - 0x81;
- eState = IMPL_GB_18030_TO_UNICODE_STATE_1;
- }
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_GB_18030_TO_UNICODE_STATE_1:
- if (nChar >= 0x30 && nChar <= 0x39)
- {
- nCode = nCode * 10 + (nChar - 0x30);
- eState = IMPL_GB_18030_TO_UNICODE_STATE_2;
- }
- else if ((nChar >= 0x40 && nChar <= 0x7E)
- || (nChar >= 0x80 && nChar <= 0xFE))
- {
- nCode = nCode * 190 + (nChar <= 0x7E ? nChar - 0x40 :
- nChar - 0x80 + 63);
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++ = pGb18030Data[nCode];
- else
- goto no_output;
- eState = IMPL_GB_18030_TO_UNICODE_STATE_0;
- }
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_GB_18030_TO_UNICODE_STATE_2:
- if (nChar >= 0x81 && nChar <= 0xFE)
- {
- nCode = nCode * 126 + (nChar - 0x81);
- eState = IMPL_GB_18030_TO_UNICODE_STATE_3;
- }
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_GB_18030_TO_UNICODE_STATE_3:
- if (nChar >= 0x30 && nChar <= 0x39)
- {
- nCode = nCode * 10 + (nChar - 0x30);
-
- /* 90 30 81 30 to E3 32 9A 35 maps to U+10000 to U+10FFFF: */
- if (nCode >= 189000 && nCode <= 1237575)
- if (pDestBufEnd - pDestBufPtr >= 2)
- {
- nCode -= 189000 - 0x10000;
- *pDestBufPtr++
- = (sal_Unicode) ImplGetHighSurrogate(nCode);
- *pDestBufPtr++
- = (sal_Unicode) ImplGetLowSurrogate(nCode);
- }
- else
- goto no_output;
- else
- {
- ImplGb180302000ToUnicodeRange const * pRange
- = pGb18030Ranges;
- sal_uInt32 nFirstNonRange = 0;
- for (;;)
- {
- if (pRange->m_nNonRangeDataIndex == -1)
- goto bad_input;
- else if (nCode < pRange->m_nFirstLinear)
- {
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++
- = pGb18030Data[
- pRange->m_nNonRangeDataIndex
- + (nCode - nFirstNonRange)];
- else
- goto no_output;
- break;
- }
- else if (nCode < pRange->m_nPastLinear)
- {
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++
- = (sal_Unicode)
- (pRange->m_nFirstUnicode
- + (nCode
- - pRange->
- m_nFirstLinear));
- else
- goto no_output;
- break;
- }
- nFirstNonRange = (pRange++)->m_nPastLinear;
- }
- }
- eState = IMPL_GB_18030_TO_UNICODE_STATE_0;
- }
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
- }
- continue;
-
- bad_input:
- switch (ImplHandleBadInputTextToUnicodeConversion(
- bUndefined, sal_True, 0, nFlags, &pDestBufPtr, pDestBufEnd,
- &nInfo))
- {
- case IMPL_BAD_INPUT_STOP:
- eState = IMPL_GB_18030_TO_UNICODE_STATE_0;
- break;
-
- case IMPL_BAD_INPUT_CONTINUE:
- eState = IMPL_GB_18030_TO_UNICODE_STATE_0;
- continue;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- goto no_output;
- }
- break;
-
- no_output:
- --pSrcBuf;
- nInfo |= RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- if (eState != IMPL_GB_18030_TO_UNICODE_STATE_0
- && (nInfo & (RTL_TEXTTOUNICODE_INFO_ERROR
- | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL))
- == 0)
- {
- if ((nFlags & RTL_TEXTTOUNICODE_FLAGS_FLUSH) == 0)
- nInfo |= RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL;
- else
- switch (ImplHandleBadInputTextToUnicodeConversion(
- sal_False, sal_True, 0, nFlags, &pDestBufPtr,
- pDestBufEnd, &nInfo))
- {
- case IMPL_BAD_INPUT_STOP:
- case IMPL_BAD_INPUT_CONTINUE:
- eState = IMPL_GB_18030_TO_UNICODE_STATE_0;
- break;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- nInfo |= RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
- }
-
- if (pContext)
- {
- ((ImplGb18030ToUnicodeContext *) pContext)->m_eState = eState;
- ((ImplGb18030ToUnicodeContext *) pContext)->m_nCode = nCode;
- }
- if (pInfo)
- *pInfo = nInfo;
- if (pSrcCvtBytes)
- *pSrcCvtBytes = nConverted;
-
- return pDestBufPtr - pDestBuf;
-}
-
-sal_Size ImplConvertUnicodeToGb18030(ImplTextConverterData const * pData,
- void * pContext,
- sal_Unicode const * pSrcBuf,
- sal_Size nSrcChars,
- sal_Char * pDestBuf,
- sal_Size nDestBytes,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtChars)
-{
- sal_uInt32 const * pGb18030Data
- = ((ImplGb18030ConverterData const *) pData)->
- m_pUnicodeToGb18030Data;
- ImplUnicodeToGb180302000Range const * pGb18030Ranges
- = ((ImplGb18030ConverterData const *) pData)->
- m_pUnicodeToGb18030Ranges;
- sal_Unicode nHighSurrogate = 0;
- sal_uInt32 nInfo = 0;
- sal_Size nConverted = 0;
- sal_Char * pDestBufPtr = pDestBuf;
- sal_Char * pDestBufEnd = pDestBuf + nDestBytes;
-
- if (pContext)
- nHighSurrogate
- = ((ImplUnicodeToTextContext *) pContext)->m_nHighSurrogate;
-
- for (; nConverted < nSrcChars; ++nConverted)
- {
- sal_Bool bUndefined = sal_True;
- sal_uInt32 nChar = *pSrcBuf++;
- if (nHighSurrogate == 0)
- {
- if (ImplIsHighSurrogate(nChar))
- {
- nHighSurrogate = (sal_Unicode) nChar;
- continue;
- }
- }
- else if (ImplIsLowSurrogate(nChar))
- nChar = ImplCombineSurrogates(nHighSurrogate, nChar);
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
-
- if (ImplIsLowSurrogate(nChar) || ImplIsNoncharacter(nChar))
- {
- bUndefined = sal_False;
- goto bad_input;
- }
-
- if (nChar < 0x80)
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++ = (sal_Char) nChar;
- else
- goto no_output;
- else if (nChar < 0x10000)
- {
- ImplUnicodeToGb180302000Range const * pRange = pGb18030Ranges;
- sal_Unicode nFirstNonRange = 0x80;
- for (;;)
- {
- if (nChar < pRange->m_nFirstUnicode)
- {
- sal_uInt32 nCode
- = pGb18030Data[pRange->m_nNonRangeDataIndex
- + (nChar - nFirstNonRange)];
- if (pDestBufEnd - pDestBufPtr
- >= (nCode <= 0xFFFF ? 2 : 4))
- {
- if (nCode > 0xFFFF)
- {
- *pDestBufPtr++ = (sal_Char) (nCode >> 24);
- *pDestBufPtr++ = (sal_Char) (nCode >> 16 & 0xFF);
- }
- *pDestBufPtr++ = (sal_Char) (nCode >> 8 & 0xFF);
- *pDestBufPtr++ = (sal_Char) (nCode & 0xFF);
- }
- else
- goto no_output;
- break;
- }
- else if (nChar <= pRange->m_nLastUnicode)
- {
- if (pDestBufEnd - pDestBufPtr >= 4)
- {
- sal_uInt32 nCode
- = pRange->m_nFirstLinear
- + (nChar - pRange->m_nFirstUnicode);
- *pDestBufPtr++ = (sal_Char) (nCode / 12600 + 0x81);
- *pDestBufPtr++
- = (sal_Char) (nCode / 1260 % 10 + 0x30);
- *pDestBufPtr++ = (sal_Char) (nCode / 10 % 126 + 0x81);
- *pDestBufPtr++ = (sal_Char) (nCode % 10 + 0x30);
- }
- else
- goto no_output;
- break;
- }
- nFirstNonRange
- = (sal_Unicode) ((pRange++)->m_nLastUnicode + 1);
- }
- }
- else
- if (pDestBufEnd - pDestBufPtr >= 4)
- {
- sal_uInt32 nCode = nChar - 0x10000;
- *pDestBufPtr++ = (sal_Char) (nCode / 12600 + 0x90);
- *pDestBufPtr++ = (sal_Char) (nCode / 1260 % 10 + 0x30);
- *pDestBufPtr++ = (sal_Char) (nCode / 10 % 126 + 0x81);
- *pDestBufPtr++ = (sal_Char) (nCode % 10 + 0x30);
- }
- else
- goto no_output;
- nHighSurrogate = 0;
- continue;
-
- bad_input:
- switch (ImplHandleBadInputUnicodeToTextConversion(bUndefined,
- nChar,
- nFlags,
- &pDestBufPtr,
- pDestBufEnd,
- &nInfo,
- NULL,
- 0,
- NULL))
- {
- case IMPL_BAD_INPUT_STOP:
- nHighSurrogate = 0;
- break;
-
- case IMPL_BAD_INPUT_CONTINUE:
- nHighSurrogate = 0;
- continue;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- goto no_output;
- }
- break;
-
- no_output:
- --pSrcBuf;
- nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- if (nHighSurrogate != 0
- && (nInfo & (RTL_UNICODETOTEXT_INFO_ERROR
- | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL))
- == 0)
- {
- if ((nFlags & RTL_UNICODETOTEXT_FLAGS_FLUSH) != 0)
- nInfo |= RTL_UNICODETOTEXT_INFO_SRCBUFFERTOSMALL;
- else
- switch (ImplHandleBadInputUnicodeToTextConversion(sal_False,
- 0,
- nFlags,
- &pDestBufPtr,
- pDestBufEnd,
- &nInfo,
- NULL,
- 0,
- NULL))
- {
- case IMPL_BAD_INPUT_STOP:
- case IMPL_BAD_INPUT_CONTINUE:
- nHighSurrogate = 0;
- break;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
- }
-
- if (pContext)
- ((ImplUnicodeToTextContext *) pContext)->m_nHighSurrogate
- = nHighSurrogate;
- if (pInfo)
- *pInfo = nInfo;
- if (pSrcCvtChars)
- *pSrcCvtChars = nConverted;
-
- return pDestBufPtr - pDestBuf;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/convertgb18030.h b/sal/textenc/convertgb18030.h
deleted file mode 100644
index 7279c80ac..000000000
--- a/sal/textenc/convertgb18030.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_TEXTENC_CONVERTGB18030_H
-#define INCLUDED_RTL_TEXTENC_CONVERTGB18030_H
-
-#include "tenchelp.h"
-#include "sal/types.h"
-
-#if defined __cplusplus
-extern "C" {
-#endif /* __cpluscplus */
-
-typedef struct
-{
- sal_Int32 m_nNonRangeDataIndex;
- sal_uInt32 m_nFirstLinear;
- sal_uInt32 m_nPastLinear;
- sal_Unicode m_nFirstUnicode;
-} ImplGb180302000ToUnicodeRange;
-
-typedef struct
-{
- sal_Int32 m_nNonRangeDataIndex;
- sal_Unicode m_nFirstUnicode;
- sal_Unicode m_nLastUnicode;
- sal_uInt32 m_nFirstLinear;
-} ImplUnicodeToGb180302000Range;
-
-typedef struct
-{
- sal_Unicode const * m_pGb18030ToUnicodeData;
- ImplGb180302000ToUnicodeRange const * m_pGb18030ToUnicodeRanges;
- sal_uInt32 const * m_pUnicodeToGb18030Data;
- ImplUnicodeToGb180302000Range const * m_pUnicodeToGb18030Ranges;
-} ImplGb18030ConverterData;
-
-void * ImplCreateGb18030ToUnicodeContext(void) SAL_THROW_EXTERN_C();
-
-void ImplResetGb18030ToUnicodeContext(void * pContext) SAL_THROW_EXTERN_C();
-
-sal_Size ImplConvertGb18030ToUnicode(ImplTextConverterData const * pData,
- void * pContext,
- sal_Char const * pSrcBuf,
- sal_Size nSrcBytes,
- sal_Unicode * pDestBuf,
- sal_Size nDestChars,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtBytes)
- SAL_THROW_EXTERN_C();
-
-sal_Size ImplConvertUnicodeToGb18030(ImplTextConverterData const * pData,
- void * pContext,
- sal_Unicode const * pSrcBuf,
- sal_Size nSrcChars,
- sal_Char * pDestBuf,
- sal_Size nDestBytes,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtChars)
- SAL_THROW_EXTERN_C();
-
-#if defined __cplusplus
-}
-#endif /* __cpluscplus */
-
-#endif /* INCLUDED_RTL_TEXTENC_CONVERTGB18030_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/convertgb18030.tab b/sal/textenc/convertgb18030.tab
deleted file mode 100644
index fd860b231..000000000
--- a/sal/textenc/convertgb18030.tab
+++ /dev/null
@@ -1,69 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_TEXTENC_CONTEXT_H
-#include "context.h"
-#endif
-#ifndef INCLUDED_RTL_TEXTENC_CONVERTGB18030_H
-#include "convertgb18030.h"
-#endif
-
-#ifndef _RTL_TENCINFO_H
-#include "rtl/tencinfo.h"
-#endif
-#ifndef _RTL_TEXTENC_H
-#include "rtl/textenc.h"
-#endif
-
-#include "generate/gb180302000.tab"
-
-static ImplGb18030ConverterData const aImplGb18030ConvertData
- = { aImplGb180302000ToUnicodeData,
- aImplGb180302000ToUnicodeRanges,
- aImplUnicodeToGb180302000Data,
- aImplUnicodeToGb180302000Ranges };
-
-static ImplTextEncodingData const aImplGb18030TextEncodingData
- = { { &aImplGb18030ConvertData,
- &ImplConvertGb18030ToUnicode,
- &ImplConvertUnicodeToGb18030,
- &ImplCreateGb18030ToUnicodeContext,
- &ImplDestroyContext,
- &ImplResetGb18030ToUnicodeContext,
- &ImplCreateUnicodeToTextContext,
- &ImplDestroyContext,
- &ImplResetUnicodeToTextContext },
- 1,
- 4,
- 2,
- 134,
- "gbk-0",
- "GB18030",
- RTL_TEXTENCODING_INFO_UNICODE
- | RTL_TEXTENCODING_INFO_MULTIBYTE
- | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_CHINESE_SIMPLIFIED */
diff --git a/sal/textenc/convertiscii.tab b/sal/textenc/convertiscii.tab
deleted file mode 100644
index 891ee8369..000000000
--- a/sal/textenc/convertiscii.tab
+++ /dev/null
@@ -1,112 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "tenchelp.h"
-
-#include "rtl/tencinfo.h"
-#include "sal/types.h"
-
-#include <stddef.h>
-
-/* Conversion tables for the Devanagari version of ISCII (IS 13194:1991).
- *
- * They do not map the ISCII characters INV (0xD9), ATR (0xEF), and EXT (0xF0).
- * They do not map U+0958--095E to sequences of two ISCII characters, of which
- * the second would be the combining nukta (0xE9).
- */
-
-/* The following table is based on LGPL code by Sandeep Patnaik
- * (patnaik@students.iiit.net) and Sunil Mohan Adapa
- * (sunilmohanadapa@postmark.net).
- */
-#define RTL_TEXTENC_ISCII_DEVANAGARI_START 0xA1
-#define RTL_TEXTENC_ISCII_DEVANAGARI_END 0xFA
-static sal_uInt16 const
-aImplIsciiDevanagariToUniTab[RTL_TEXTENC_ISCII_DEVANAGARI_END
- - RTL_TEXTENC_ISCII_DEVANAGARI_START + 1]
-= { 0x0901, 0x0902, 0x0903, 0x0905, 0x0906, 0x0907, 0x0908, /* A0 */
- 0x0909, 0x090A, 0x090B, 0x090E, 0x090F, 0x0910, 0x090D, 0x0912,
- 0x0913, 0x0914, 0x0911, 0x0915, 0x0916, 0x0917, 0x0918, 0x0919, /* B0 */
- 0x091A, 0x091B, 0x091C, 0x091D, 0x091E, 0x091F, 0x0920, 0x0921,
- 0x0922, 0x0923, 0x0924, 0x0925, 0x0926, 0x0927, 0x0928, 0x0929, /* C0 */
- 0x092A, 0x092B, 0x092C, 0x092D, 0x092E, 0x092F, 0x095F, 0x0930,
- 0x0931, 0x0932, 0x0933, 0x0934, 0x0935, 0x0936, 0x0937, 0x0938, /* D0 */
- 0x0939, 0, 0x093E, 0x093F, 0x0940, 0x0941, 0x0942, 0x0943,
- 0x0946, 0x0947, 0x0948, 0x0945, 0x094A, 0x094B, 0x094C, 0x0949, /* E0 */
- 0x094D, 0x093C, 0x0964, 0, 0, 0, 0, 0,
- 0, 0x0966, 0x0967, 0x0968, 0x0969, 0x096A, 0x096B, 0x096C, /* F0 */
- 0x096D, 0x096E, 0x096F };
-
-#define RTL_TEXTENC_UNICODE_DEVANAGARI_START 0x0901
-#define RTL_TEXTENC_UNICODE_DEVANAGARI_END 0x096F
-static sal_uChar const
-aImplUniToIsciiDevanagariTab[RTL_TEXTENC_UNICODE_DEVANAGARI_END
- - RTL_TEXTENC_UNICODE_DEVANAGARI_START + 1]
-= { 0xA1, 0xA2, 0xA3, 0, 0xA4, 0xA5, 0xA6, /* U+0900 */
- 0xA7, 0xA8, 0xA9, 0xAA, 0, 0xAE, 0xAB, 0xAC,
- 0xAD, 0xB2, 0xAF, 0xB0, 0xB1, 0xB3, 0xB4, 0xB5, /* U+0910 */
- 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD,
- 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, /* U+0920 */
- 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD,
- 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, /* U+0930 */
- 0xD7, 0xD8, 0, 0, 0xE9, 0, 0xDA, 0xDB,
- 0xDC, 0xDD, 0xDE, 0xDF, 0, 0xE3, 0xE0, 0xE1, /* U+0940 */
- 0xE2, 0xE7, 0xE4, 0xE5, 0xE6, 0xE8, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, /* U+0950 */
- 0, 0, 0, 0, 0, 0, 0, 0xCE,
- 0, 0, 0, 0, 0xEA, 0, 0xF1, 0xF2, /* U+0960 */
- 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA };
-
-static ImplByteConvertData const aImplIsciiDevanagariConvertData
-= { aImplIsciiDevanagariToUniTab,
- NULL,
- RTL_TEXTENC_ISCII_DEVANAGARI_START, RTL_TEXTENC_ISCII_DEVANAGARI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplUniToIsciiDevanagariTab,
- NULL,
- NULL,
- RTL_TEXTENC_UNICODE_DEVANAGARI_START, RTL_TEXTENC_UNICODE_DEVANAGARI_END,
- NOTABCHAR_START, NOTABCHAR_END,
- 0 };
-
-static ImplTextEncodingData const aImplIsciiDevanagariTextEncodingData
- = { { &aImplIsciiDevanagariConvertData,
- &ImplCharToUnicode,
- &ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 1,
- NULL,
- "x-iscii-de",
- RTL_TEXTENCODING_INFO_ASCII };
diff --git a/sal/textenc/convertiso2022cn.c b/sal/textenc/convertiso2022cn.c
deleted file mode 100644
index f18acbcd1..000000000
--- a/sal/textenc/convertiso2022cn.c
+++ /dev/null
@@ -1,865 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "convertiso2022cn.h"
-#include "context.h"
-#include "converter.h"
-#include "tenchelp.h"
-#include "unichars.h"
-#include "rtl/alloc.h"
-#include "rtl/textcvt.h"
-#include "sal/types.h"
-
-typedef enum /* order is important: */
-{
- IMPL_ISO_2022_CN_TO_UNICODE_STATE_ASCII,
- IMPL_ISO_2022_CN_TO_UNICODE_STATE_SO,
- IMPL_ISO_2022_CN_TO_UNICODE_STATE_SO_2,
- IMPL_ISO_2022_CN_TO_UNICODE_STATE_116432,
- IMPL_ISO_2022_CN_TO_UNICODE_STATE_116432_2,
- IMPL_ISO_2022_CN_TO_UNICODE_STATE_ESC,
- IMPL_ISO_2022_CN_TO_UNICODE_STATE_ESC_DOLLAR,
- IMPL_ISO_2022_CN_TO_UNICODE_STATE_ESC_DOLLAR_RPAREN,
- IMPL_ISO_2022_CN_TO_UNICODE_STATE_ESC_DOLLAR_ASTERISK
-} ImplIso2022CnToUnicodeState;
-
-typedef struct
-{
- ImplIso2022CnToUnicodeState m_eState;
- sal_uInt32 m_nRow;
- sal_Bool m_bSo;
- sal_Bool m_b116431;
-} ImplIso2022CnToUnicodeContext;
-
-typedef enum
-{
- IMPL_UNICODE_TO_ISO_2022_CN_DESIGNATOR_NONE,
- IMPL_UNICODE_TO_ISO_2022_CN_DESIGNATOR_2312,
- IMPL_UNICODE_TO_ISO_2022_CN_DESIGNATOR_116431
-} ImplUnicodeToIso2022CnDesignator;
-
-typedef struct
-{
- sal_Unicode m_nHighSurrogate;
- ImplUnicodeToIso2022CnDesignator m_eSoDesignator;
- sal_Bool m_b116432Designator;
- sal_Bool m_bSo;
-} ImplUnicodeToIso2022CnContext;
-
-void * ImplCreateIso2022CnToUnicodeContext(void)
-{
- void * pContext
- = rtl_allocateMemory(sizeof (ImplIso2022CnToUnicodeContext));
- ((ImplIso2022CnToUnicodeContext *) pContext)->m_eState
- = IMPL_ISO_2022_CN_TO_UNICODE_STATE_ASCII;
- ((ImplIso2022CnToUnicodeContext *) pContext)->m_bSo = sal_False;
- ((ImplIso2022CnToUnicodeContext *) pContext)->m_b116431 = sal_False;
- return pContext;
-}
-
-void ImplResetIso2022CnToUnicodeContext(void * pContext)
-{
- if (pContext)
- {
- ((ImplIso2022CnToUnicodeContext *) pContext)->m_eState
- = IMPL_ISO_2022_CN_TO_UNICODE_STATE_ASCII;
- ((ImplIso2022CnToUnicodeContext *) pContext)->m_bSo = sal_False;
- ((ImplIso2022CnToUnicodeContext *) pContext)->m_b116431 = sal_False;
- }
-}
-
-sal_Size ImplConvertIso2022CnToUnicode(ImplTextConverterData const * pData,
- void * pContext,
- sal_Char const * pSrcBuf,
- sal_Size nSrcBytes,
- sal_Unicode * pDestBuf,
- sal_Size nDestChars,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtBytes)
-{
- ImplDBCSToUniLeadTab const * pGb2312Data
- = ((ImplIso2022CnConverterData const *) pData)->
- m_pGb2312ToUnicodeData;
- sal_uInt16 const * pCns116431992Data
- = ((ImplIso2022CnConverterData const *) pData)->
- m_pCns116431992ToUnicodeData;
- sal_Int32 const * pCns116431992RowOffsets
- = ((ImplIso2022CnConverterData const *) pData)->
- m_pCns116431992ToUnicodeRowOffsets;
- sal_Int32 const * pCns116431992PlaneOffsets
- = ((ImplIso2022CnConverterData const *) pData)->
- m_pCns116431992ToUnicodePlaneOffsets;
- ImplIso2022CnToUnicodeState eState
- = IMPL_ISO_2022_CN_TO_UNICODE_STATE_ASCII;
- sal_uInt32 nRow = 0;
- sal_Bool bSo = sal_False;
- sal_Bool b116431 = sal_False;
- sal_uInt32 nInfo = 0;
- sal_Size nConverted = 0;
- sal_Unicode * pDestBufPtr = pDestBuf;
- sal_Unicode * pDestBufEnd = pDestBuf + nDestChars;
-
- if (pContext)
- {
- eState = ((ImplIso2022CnToUnicodeContext *) pContext)->m_eState;
- nRow = ((ImplIso2022CnToUnicodeContext *) pContext)->m_nRow;
- bSo = ((ImplIso2022CnToUnicodeContext *) pContext)->m_bSo;
- b116431 = ((ImplIso2022CnToUnicodeContext *) pContext)->m_b116431;
- }
-
- for (; nConverted < nSrcBytes; ++nConverted)
- {
- sal_Bool bUndefined = sal_True;
- sal_uInt32 nChar = *(sal_uChar const *) pSrcBuf++;
- sal_uInt32 nPlane;
- switch (eState)
- {
- case IMPL_ISO_2022_CN_TO_UNICODE_STATE_ASCII:
- if (nChar == 0x0E) /* SO */
- {
- bSo = sal_True;
- eState = IMPL_ISO_2022_CN_TO_UNICODE_STATE_SO;
- }
- else if (nChar == 0x1B) /* ESC */
- eState = IMPL_ISO_2022_CN_TO_UNICODE_STATE_ESC;
- else if (nChar < 0x80)
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++ = (sal_Unicode) nChar;
- else
- goto no_output;
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_ISO_2022_CN_TO_UNICODE_STATE_SO:
- if (nChar == 0x0F) /* SI */
- {
- bSo = sal_False;
- eState = IMPL_ISO_2022_CN_TO_UNICODE_STATE_ASCII;
- }
- else if (nChar == 0x1B) /* ESC */
- eState = IMPL_ISO_2022_CN_TO_UNICODE_STATE_ESC;
- else if (nChar >= 0x21 && nChar <= 0x7E)
- {
- nRow = nChar;
- eState = IMPL_ISO_2022_CN_TO_UNICODE_STATE_SO_2;
- }
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_ISO_2022_CN_TO_UNICODE_STATE_SO_2:
- if (nChar >= 0x21 && nChar <= 0x7E)
- if (b116431)
- {
- nPlane = 0;
- goto transform;
- }
- else
- {
- sal_uInt16 nUnicode = 0;
- sal_uInt32 nFirst;
- nRow += 0x80;
- nChar += 0x80;
- nFirst = pGb2312Data[nRow].mnTrailStart;
- if (nChar >= nFirst
- && nChar <= pGb2312Data[nRow].mnTrailEnd)
- nUnicode = pGb2312Data[nRow].
- mpToUniTrailTab[nChar - nFirst];
- if (nUnicode != 0)
- if (pDestBufPtr != pDestBufEnd)
- {
- *pDestBufPtr++ = (sal_Unicode) nUnicode;
- eState = IMPL_ISO_2022_CN_TO_UNICODE_STATE_SO;
- }
- else
- goto no_output;
- else
- goto bad_input;
- }
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_ISO_2022_CN_TO_UNICODE_STATE_116432:
- if (nChar >= 0x21 && nChar <= 0x7E)
- {
- nRow = nChar;
- eState = IMPL_ISO_2022_CN_TO_UNICODE_STATE_116432_2;
- }
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_ISO_2022_CN_TO_UNICODE_STATE_116432_2:
- if (nChar >= 0x21 && nChar <= 0x7E)
- {
- nPlane = 1;
- goto transform;
- }
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_ISO_2022_CN_TO_UNICODE_STATE_ESC:
- if (nChar == 0x24) /* $ */
- eState = IMPL_ISO_2022_CN_TO_UNICODE_STATE_ESC_DOLLAR;
- else if (nChar == 0x4E) /* N */
- eState = IMPL_ISO_2022_CN_TO_UNICODE_STATE_116432;
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_ISO_2022_CN_TO_UNICODE_STATE_ESC_DOLLAR:
- if (nChar == 0x29) /* ) */
- eState = IMPL_ISO_2022_CN_TO_UNICODE_STATE_ESC_DOLLAR_RPAREN;
- else if (nChar == 0x2A) /* * */
- eState
- = IMPL_ISO_2022_CN_TO_UNICODE_STATE_ESC_DOLLAR_ASTERISK;
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_ISO_2022_CN_TO_UNICODE_STATE_ESC_DOLLAR_RPAREN:
- if (nChar == 0x41) /* A */
- {
- b116431 = sal_False;
- eState = bSo ? IMPL_ISO_2022_CN_TO_UNICODE_STATE_SO :
- IMPL_ISO_2022_CN_TO_UNICODE_STATE_ASCII;
- }
- else if (nChar == 0x47) /* G */
- {
- b116431 = sal_True;
- eState = bSo ? IMPL_ISO_2022_CN_TO_UNICODE_STATE_SO :
- IMPL_ISO_2022_CN_TO_UNICODE_STATE_ASCII;
- }
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_ISO_2022_CN_TO_UNICODE_STATE_ESC_DOLLAR_ASTERISK:
- if (nChar == 0x48) /* H */
- eState = bSo ? IMPL_ISO_2022_CN_TO_UNICODE_STATE_SO :
- IMPL_ISO_2022_CN_TO_UNICODE_STATE_ASCII;
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
- }
- continue;
-
- transform:
- {
- sal_Int32 nPlaneOffset = pCns116431992PlaneOffsets[nPlane];
- if (nPlaneOffset == -1)
- goto bad_input;
- else
- {
- sal_Int32 nOffset
- = pCns116431992RowOffsets[nPlaneOffset + (nRow - 0x21)];
- if (nOffset == -1)
- goto bad_input;
- else
- {
- sal_uInt32 nFirstLast = pCns116431992Data[nOffset++];
- sal_uInt32 nFirst = nFirstLast & 0xFF;
- sal_uInt32 nLast = nFirstLast >> 8;
- nChar -= 0x20;
- if (nChar >= nFirst && nChar <= nLast)
- {
- sal_uInt32 nUnicode
- = pCns116431992Data[nOffset + (nChar - nFirst)];
- if (nUnicode == 0xFFFF)
- goto bad_input;
- else if (ImplIsHighSurrogate(nUnicode))
- if (pDestBufEnd - pDestBufPtr >= 2)
- {
- nOffset += nLast - nFirst + 1;
- nFirst = pCns116431992Data[nOffset++];
- *pDestBufPtr++ = (sal_Unicode) nUnicode;
- *pDestBufPtr++
- = (sal_Unicode)
- pCns116431992Data[
- nOffset + (nChar - nFirst)];
- }
- else
- goto no_output;
- else
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++ = (sal_Unicode) nUnicode;
- else
- goto no_output;
- }
- else
- goto bad_input;
- eState = bSo ? IMPL_ISO_2022_CN_TO_UNICODE_STATE_SO :
- IMPL_ISO_2022_CN_TO_UNICODE_STATE_ASCII;
- }
- }
- continue;
- }
-
- bad_input:
- switch (ImplHandleBadInputTextToUnicodeConversion(
- bUndefined, sal_True, 0, nFlags, &pDestBufPtr, pDestBufEnd,
- &nInfo))
- {
- case IMPL_BAD_INPUT_STOP:
- eState = IMPL_ISO_2022_CN_TO_UNICODE_STATE_ASCII;
- b116431 = sal_False;
- break;
-
- case IMPL_BAD_INPUT_CONTINUE:
- eState = IMPL_ISO_2022_CN_TO_UNICODE_STATE_ASCII;
- b116431 = sal_False;
- continue;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- goto no_output;
- }
- break;
-
- no_output:
- --pSrcBuf;
- nInfo |= RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- if (eState > IMPL_ISO_2022_CN_TO_UNICODE_STATE_SO
- && (nInfo & (RTL_TEXTTOUNICODE_INFO_ERROR
- | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL))
- == 0)
- {
- if ((nFlags & RTL_TEXTTOUNICODE_FLAGS_FLUSH) == 0)
- nInfo |= RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL;
- else
- switch (ImplHandleBadInputTextToUnicodeConversion(
- sal_False, sal_True, 0, nFlags, &pDestBufPtr, pDestBufEnd,
- &nInfo))
- {
- case IMPL_BAD_INPUT_STOP:
- case IMPL_BAD_INPUT_CONTINUE:
- eState = IMPL_ISO_2022_CN_TO_UNICODE_STATE_ASCII;
- b116431 = sal_False;
- break;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- nInfo |= RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
- }
-
- if (pContext)
- {
- ((ImplIso2022CnToUnicodeContext *) pContext)->m_eState = eState;
- ((ImplIso2022CnToUnicodeContext *) pContext)->m_nRow = nRow;
- ((ImplIso2022CnToUnicodeContext *) pContext)->m_bSo = bSo;
- ((ImplIso2022CnToUnicodeContext *) pContext)->m_b116431 = b116431;
- }
- if (pInfo)
- *pInfo = nInfo;
- if (pSrcCvtBytes)
- *pSrcCvtBytes = nConverted;
-
- return pDestBufPtr - pDestBuf;
-}
-
-void * ImplCreateUnicodeToIso2022CnContext(void)
-{
- void * pContext
- = rtl_allocateMemory(sizeof (ImplUnicodeToIso2022CnContext));
- ((ImplUnicodeToIso2022CnContext *) pContext)->m_nHighSurrogate = 0;
- ((ImplUnicodeToIso2022CnContext *) pContext)->m_eSoDesignator
- = IMPL_UNICODE_TO_ISO_2022_CN_DESIGNATOR_NONE;
- ((ImplUnicodeToIso2022CnContext *) pContext)->m_b116432Designator
- = sal_False;
- ((ImplUnicodeToIso2022CnContext *) pContext)->m_bSo = sal_False;
- return pContext;
-}
-
-void ImplResetUnicodeToIso2022CnContext(void * pContext)
-{
- if (pContext)
- {
- ((ImplUnicodeToIso2022CnContext *) pContext)->m_nHighSurrogate = 0;
- ((ImplUnicodeToIso2022CnContext *) pContext)->m_eSoDesignator
- = IMPL_UNICODE_TO_ISO_2022_CN_DESIGNATOR_NONE;
- ((ImplUnicodeToIso2022CnContext *) pContext)->m_b116432Designator
- = sal_False;
- ((ImplUnicodeToIso2022CnContext *) pContext)->m_bSo = sal_False;
- }
-}
-
-static sal_uInt32 ImplIso2022CnTranslateTo2312(ImplUniToDBCSHighTab const *
- pGb2312Data,
- sal_uInt32 nChar)
-{
- sal_uInt32 nIndex1 = nChar >> 8;
- if (nIndex1 < 0x100)
- {
- sal_uInt32 nIndex2 = nChar & 0xFF;
- sal_uInt32 nFirst = pGb2312Data[nIndex1].mnLowStart;
- if (nIndex2 >= nFirst && nIndex2 <= pGb2312Data[nIndex1].mnLowEnd)
- return pGb2312Data[nIndex1].mpToUniTrailTab[nIndex2 - nFirst]
- & 0x7F7F;
- }
- return 0;
-}
-
-static sal_uInt32
-ImplIso2022CnTranslateTo116431(sal_uInt8 const * pCns116431992Data,
- sal_Int32 const * pCns116431992PageOffsets,
- sal_Int32 const * pCns116431992PlaneOffsets,
- sal_uInt32 nChar)
-{
- sal_Int32 nOffset = pCns116431992PlaneOffsets[nChar >> 16];
- sal_uInt32 nFirst;
- sal_uInt32 nLast;
- sal_uInt32 nPlane;
- if (nOffset == -1)
- return 0;
- nOffset = pCns116431992PageOffsets[nOffset + ((nChar & 0xFF00) >> 8)];
- if (nOffset == -1)
- return 0;
- nFirst = pCns116431992Data[nOffset++];
- nLast = pCns116431992Data[nOffset++];
- nChar &= 0xFF;
- if (nChar < nFirst || nChar > nLast)
- return 0;
- nOffset += 3 * (nChar - nFirst);
- nPlane = pCns116431992Data[nOffset++];
- if (nPlane != 1)
- return 0;
- return (0x20 + pCns116431992Data[nOffset]) << 8
- | (0x20 + pCns116431992Data[nOffset + 1]);
-}
-
-sal_Size ImplConvertUnicodeToIso2022Cn(ImplTextConverterData const * pData,
- void * pContext,
- sal_Unicode const * pSrcBuf,
- sal_Size nSrcChars,
- sal_Char * pDestBuf,
- sal_Size nDestBytes,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtChars)
-{
- ImplUniToDBCSHighTab const * pGb2312Data
- = ((ImplIso2022CnConverterData const *) pData)->
- m_pUnicodeToGb2312Data;
- sal_uInt8 const * pCns116431992Data
- = ((ImplIso2022CnConverterData const *) pData)->
- m_pUnicodeToCns116431992Data;
- sal_Int32 const * pCns116431992PageOffsets
- = ((ImplIso2022CnConverterData const *) pData)->
- m_pUnicodeToCns116431992PageOffsets;
- sal_Int32 const * pCns116431992PlaneOffsets
- = ((ImplIso2022CnConverterData const *) pData)->
- m_pUnicodeToCns116431992PlaneOffsets;
- sal_Unicode nHighSurrogate = 0;
- ImplUnicodeToIso2022CnDesignator eSoDesignator
- = IMPL_UNICODE_TO_ISO_2022_CN_DESIGNATOR_NONE;
- sal_Bool b116432Designator = sal_False;
- sal_Bool bSo = sal_False;
- sal_uInt32 nInfo = 0;
- sal_Size nConverted = 0;
- sal_Char * pDestBufPtr = pDestBuf;
- sal_Char * pDestBufEnd = pDestBuf + nDestBytes;
- sal_Bool bWritten;
-
- if (pContext)
- {
- nHighSurrogate
- = ((ImplUnicodeToIso2022CnContext *) pContext)->m_nHighSurrogate;
- eSoDesignator
- = ((ImplUnicodeToIso2022CnContext *) pContext)->m_eSoDesignator;
- b116432Designator = ((ImplUnicodeToIso2022CnContext *) pContext)->
- m_b116432Designator;
- bSo = ((ImplUnicodeToIso2022CnContext *) pContext)->m_bSo;
- }
-
- for (; nConverted < nSrcChars; ++nConverted)
- {
- sal_Bool bUndefined = sal_True;
- sal_uInt32 nChar = *pSrcBuf++;
- if (nHighSurrogate == 0)
- {
- if (ImplIsHighSurrogate(nChar))
- {
- nHighSurrogate = (sal_Unicode) nChar;
- continue;
- }
- }
- else if (ImplIsLowSurrogate(nChar))
- nChar = ImplCombineSurrogates(nHighSurrogate, nChar);
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
-
- if (ImplIsLowSurrogate(nChar) || ImplIsNoncharacter(nChar))
- {
- bUndefined = sal_False;
- goto bad_input;
- }
-
- if (nChar == 0x0A || nChar == 0x0D) /* LF, CR */
- {
- if (bSo)
- {
- if (pDestBufPtr != pDestBufEnd)
- {
- *pDestBufPtr++ = 0x0F; /* SI */
- bSo = sal_False;
- eSoDesignator
- = IMPL_UNICODE_TO_ISO_2022_CN_DESIGNATOR_NONE;
- b116432Designator = sal_False;
- }
- else
- goto no_output;
- }
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++ = (sal_Char) nChar;
- else
- goto no_output;
- }
- else if (nChar == 0x0E || nChar == 0x0F || nChar == 0x1B)
- goto bad_input;
- else if (nChar < 0x80)
- {
- if (bSo)
- {
- if (pDestBufPtr != pDestBufEnd)
- {
- *pDestBufPtr++ = 0x0F; /* SI */
- bSo = sal_False;
- }
- else
- goto no_output;
- }
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++ = (sal_Char) nChar;
- else
- goto no_output;
- }
- else
- {
- sal_uInt32 nBytes = 0;
- ImplUnicodeToIso2022CnDesignator eNewDesignator =
- IMPL_UNICODE_TO_ISO_2022_CN_DESIGNATOR_NONE;
- switch (eSoDesignator)
- {
- case IMPL_UNICODE_TO_ISO_2022_CN_DESIGNATOR_NONE:
- nBytes = ImplIso2022CnTranslateTo2312(pGb2312Data, nChar);
- if (nBytes != 0)
- {
- eNewDesignator
- = IMPL_UNICODE_TO_ISO_2022_CN_DESIGNATOR_2312;
- break;
- }
- nBytes = ImplIso2022CnTranslateTo116431(
- pCns116431992Data,
- pCns116431992PageOffsets,
- pCns116431992PlaneOffsets,
- nChar);
- if (nBytes != 0)
- {
- eNewDesignator
- = IMPL_UNICODE_TO_ISO_2022_CN_DESIGNATOR_116431;
- break;
- }
- break;
-
- case IMPL_UNICODE_TO_ISO_2022_CN_DESIGNATOR_2312:
- nBytes = ImplIso2022CnTranslateTo2312(pGb2312Data, nChar);
- if (nBytes != 0)
- {
- eNewDesignator
- = IMPL_UNICODE_TO_ISO_2022_CN_DESIGNATOR_NONE;
- break;
- }
- nBytes = ImplIso2022CnTranslateTo116431(
- pCns116431992Data,
- pCns116431992PageOffsets,
- pCns116431992PlaneOffsets,
- nChar);
- if (nBytes != 0)
- {
- eNewDesignator
- = IMPL_UNICODE_TO_ISO_2022_CN_DESIGNATOR_116431;
- break;
- }
- break;
-
- case IMPL_UNICODE_TO_ISO_2022_CN_DESIGNATOR_116431:
- nBytes = ImplIso2022CnTranslateTo116431(
- pCns116431992Data,
- pCns116431992PageOffsets,
- pCns116431992PlaneOffsets,
- nChar);
- if (nBytes != 0)
- {
- eNewDesignator
- = IMPL_UNICODE_TO_ISO_2022_CN_DESIGNATOR_NONE;
- break;
- }
- nBytes = ImplIso2022CnTranslateTo2312(pGb2312Data, nChar);
- if (nBytes != 0)
- {
- eNewDesignator
- = IMPL_UNICODE_TO_ISO_2022_CN_DESIGNATOR_2312;
- break;
- }
- break;
- }
- if (nBytes != 0)
- {
- if (eNewDesignator
- != IMPL_UNICODE_TO_ISO_2022_CN_DESIGNATOR_NONE)
- {
- if (bSo)
- {
- if (pDestBufPtr != pDestBufEnd)
- {
- *pDestBufPtr++ = 0x0F; /* SI */
- bSo = sal_False;
- }
- else
- goto no_output;
- }
- if (pDestBufEnd - pDestBufPtr >= 4)
- {
- *pDestBufPtr++ = 0x1B; /* ESC */
- *pDestBufPtr++ = 0x24; /* $ */
- *pDestBufPtr++ = 0x29; /* ) */
- *pDestBufPtr++
- = eNewDesignator
- == IMPL_UNICODE_TO_ISO_2022_CN_DESIGNATOR_2312 ?
- 0x41 : 0x47; /* A, G */
- eSoDesignator = eNewDesignator;
- }
- else
- goto no_output;
- }
- if (!bSo)
- {
- if (pDestBufPtr != pDestBufEnd)
- {
- *pDestBufPtr++ = 0x0E; /* SO */
- bSo = sal_True;
- }
- else
- goto no_output;
- }
- if (pDestBufEnd - pDestBufPtr >= 4)
- {
- *pDestBufPtr++ = (sal_Char) (nBytes >> 8);
- *pDestBufPtr++ = (sal_Char) (nBytes & 0xFF);
- }
- else
- goto no_output;
- }
- else
- {
- sal_Int32 nOffset = pCns116431992PlaneOffsets[nChar >> 16];
- sal_uInt32 nFirst;
- sal_uInt32 nLast;
- sal_uInt32 nPlane;
- if (nOffset == -1)
- goto bad_input;
- nOffset
- = pCns116431992PageOffsets[nOffset
- + ((nChar & 0xFF00) >> 8)];
- if (nOffset == -1)
- goto bad_input;
- nFirst = pCns116431992Data[nOffset++];
- nLast = pCns116431992Data[nOffset++];
- nChar &= 0xFF;
- if (nChar < nFirst || nChar > nLast)
- goto bad_input;
- nOffset += 3 * (nChar - nFirst);
- nPlane = pCns116431992Data[nOffset++];
- if (nPlane != 2)
- goto bad_input;
- if (!b116432Designator)
- {
- if (pDestBufEnd - pDestBufPtr >= 4)
- {
- *pDestBufPtr++ = 0x1B; /* ESC */
- *pDestBufPtr++ = 0x24; /* $ */
- *pDestBufPtr++ = 0x2A; /* * */
- *pDestBufPtr++ = 0x48; /* H */
- b116432Designator = sal_True;
- }
- else
- goto no_output;
- }
- if (pDestBufEnd - pDestBufPtr >= 4)
- {
- *pDestBufPtr++ = 0x1B; /* ESC */
- *pDestBufPtr++ = 0x4E; /* N */
- *pDestBufPtr++
- = (sal_Char) (0x20 + pCns116431992Data[nOffset++]);
- *pDestBufPtr++
- = (sal_Char) (0x20 + pCns116431992Data[nOffset]);
- }
- else
- goto no_output;
- }
- }
- nHighSurrogate = 0;
- continue;
-
- bad_input:
- switch (ImplHandleBadInputUnicodeToTextConversion(bUndefined,
- nChar,
- nFlags,
- &pDestBufPtr,
- pDestBufEnd,
- &nInfo,
- "\x0F", /* SI */
- bSo ? 1 : 0,
- &bWritten))
- {
- case IMPL_BAD_INPUT_STOP:
- nHighSurrogate = 0;
- break;
-
- case IMPL_BAD_INPUT_CONTINUE:
- if (bWritten)
- bSo = sal_False;
- nHighSurrogate = 0;
- continue;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- goto no_output;
- }
- break;
-
- no_output:
- --pSrcBuf;
- nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- if ((nInfo & (RTL_UNICODETOTEXT_INFO_ERROR
- | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL))
- == 0)
- {
- sal_Bool bFlush = sal_True;
- if (nHighSurrogate != 0)
- {
- if ((nFlags & RTL_UNICODETOTEXT_FLAGS_FLUSH) != 0)
- nInfo |= RTL_UNICODETOTEXT_INFO_SRCBUFFERTOSMALL;
- else
- switch (ImplHandleBadInputUnicodeToTextConversion(
- sal_False,
- 0,
- nFlags,
- &pDestBufPtr,
- pDestBufEnd,
- &nInfo,
- "\x0F", /* SI */
- bSo ? 1 : 0,
- &bWritten))
- {
- case IMPL_BAD_INPUT_STOP:
- nHighSurrogate = 0;
- bFlush = sal_False;
- break;
-
- case IMPL_BAD_INPUT_CONTINUE:
- if (bWritten)
- bSo = sal_False;
- nHighSurrogate = 0;
- break;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
- }
- if (bFlush && bSo && (nFlags & RTL_UNICODETOTEXT_FLAGS_FLUSH) != 0)
- {
- if (pDestBufPtr != pDestBufEnd)
- {
- *pDestBufPtr++ = 0x0F; /* SI */
- bSo = sal_False;
- }
- else
- nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- }
- }
-
- if (pContext)
- {
- ((ImplUnicodeToIso2022CnContext *) pContext)->m_nHighSurrogate
- = nHighSurrogate;
- ((ImplUnicodeToIso2022CnContext *) pContext)->m_eSoDesignator
- = eSoDesignator;
- ((ImplUnicodeToIso2022CnContext *) pContext)->m_b116432Designator
- = b116432Designator;
- ((ImplUnicodeToIso2022CnContext *) pContext)->m_bSo = bSo;
- }
- if (pInfo)
- *pInfo = nInfo;
- if (pSrcCvtChars)
- *pSrcCvtChars = nConverted;
-
- return pDestBufPtr - pDestBuf;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/convertiso2022cn.h b/sal/textenc/convertiso2022cn.h
deleted file mode 100644
index b46cf60c4..000000000
--- a/sal/textenc/convertiso2022cn.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_TEXTENC_CONVERTISO2022CN_H
-#define INCLUDED_RTL_TEXTENC_CONVERTISO2022CN_H
-
-#include "tenchelp.h"
-#include "sal/types.h"
-
-#if defined __cplusplus
-extern "C" {
-#endif /* __cpluscplus */
-
-typedef struct
-{
- ImplDBCSToUniLeadTab const * m_pGb2312ToUnicodeData;
- sal_uInt16 const * m_pCns116431992ToUnicodeData;
- sal_Int32 const * m_pCns116431992ToUnicodeRowOffsets;
- sal_Int32 const * m_pCns116431992ToUnicodePlaneOffsets;
- ImplUniToDBCSHighTab const * m_pUnicodeToGb2312Data;
- sal_uInt8 const * m_pUnicodeToCns116431992Data;
- sal_Int32 const * m_pUnicodeToCns116431992PageOffsets;
- sal_Int32 const * m_pUnicodeToCns116431992PlaneOffsets;
-} ImplIso2022CnConverterData;
-
-void * ImplCreateIso2022CnToUnicodeContext(void) SAL_THROW_EXTERN_C();
-
-void ImplResetIso2022CnToUnicodeContext(void * pContext) SAL_THROW_EXTERN_C();
-
-sal_Size ImplConvertIso2022CnToUnicode(ImplTextConverterData const * pData,
- void * pContext,
- sal_Char const * pSrcBuf,
- sal_Size nSrcBytes,
- sal_Unicode * pDestBuf,
- sal_Size nDestChars,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtBytes)
- SAL_THROW_EXTERN_C();
-
-void * ImplCreateUnicodeToIso2022CnContext(void) SAL_THROW_EXTERN_C();
-
-void ImplResetUnicodeToIso2022CnContext(void * pContext) SAL_THROW_EXTERN_C();
-
-sal_Size ImplConvertUnicodeToIso2022Cn(ImplTextConverterData const * pData,
- void * pContext,
- sal_Unicode const * pSrcBuf,
- sal_Size nSrcChars,
- sal_Char * pDestBuf,
- sal_Size nDestBytes,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtChars)
- SAL_THROW_EXTERN_C();
-
-#if defined __cplusplus
-}
-#endif /* __cpluscplus */
-
-#endif /* INCLUDED_RTL_TEXTENC_CONVERTISO2022CN_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/convertiso2022cn.tab b/sal/textenc/convertiso2022cn.tab
deleted file mode 100644
index 045af04a3..000000000
--- a/sal/textenc/convertiso2022cn.tab
+++ /dev/null
@@ -1,77 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_TEXTENC_CONTEXT_H
-#include "context.h"
-#endif
-#ifndef INCLUDED_RTL_TEXTENC_CONVERTISO2022CN_H
-#include "convertiso2022cn.h"
-#endif
-#ifndef INCLUDED_RTL_TEXTENC_TENCHELP_H
-#include "tenchelp.h"
-#endif
-
-#ifndef _RTL_TENCINFO_H
-#include "rtl/tencinfo.h"
-#endif
-#ifndef _RTL_TEXTENC_H
-#include "rtl/textenc.h"
-#endif
-
-static ImplIso2022CnConverterData const aImplIso2022CnConvertData
- = { aGB2312UniLeadTab, /* from tcvtscn6.tab */
- aImplCns116431992ToUnicodeData, /* from generate/cns116431992.tab */
- aImplCns116431992ToUnicodeRowOffsets,
- /* from generate/cns116431992.tab */
- aImplCns116431992ToUnicodePlaneOffsets,
- /* from generate/cns116431992.tab */
- aGB2312DBCSHighTab, /* from tcvtscn6.tab */
- aImplUnicodeToCns116431992Data, /* from generate/cns116431992.tab */
- aImplUnicodeToCns116431992PageOffsets,
- /* from generate/cns116431992.tab */
- aImplUnicodeToCns116431992PlaneOffsets };
- /* from generate/cns116431992.tab */
-
-static ImplTextEncodingData const aImplIso2022CnTextEncodingData
- = { { &aImplIso2022CnConvertData,
- &ImplConvertIso2022CnToUnicode,
- &ImplConvertUnicodeToIso2022Cn,
- &ImplCreateIso2022CnToUnicodeContext,
- &ImplDestroyContext,
- &ImplResetIso2022CnToUnicodeContext,
- &ImplCreateUnicodeToIso2022CnContext,
- &ImplDestroyContext,
- &ImplResetUnicodeToIso2022CnContext },
- 1,
- 8,
- 2,
- 134,
- "euc-cn",
- "ISO-2022-CN",
- RTL_TEXTENCODING_INFO_CONTEXT
- | RTL_TEXTENCODING_INFO_MULTIBYTE
- | RTL_TEXTENCODING_INFO_MIME };
diff --git a/sal/textenc/convertiso2022jp.c b/sal/textenc/convertiso2022jp.c
deleted file mode 100644
index 9955e418c..000000000
--- a/sal/textenc/convertiso2022jp.c
+++ /dev/null
@@ -1,572 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "convertiso2022jp.h"
-#include "context.h"
-#include "converter.h"
-#include "tenchelp.h"
-#include "unichars.h"
-#include "rtl/alloc.h"
-#include "rtl/textcvt.h"
-#include "sal/types.h"
-
-typedef enum /* order is important: */
-{
- IMPL_ISO_2022_JP_TO_UNICODE_STATE_ASCII,
- IMPL_ISO_2022_JP_TO_UNICODE_STATE_JIS_ROMAN,
- IMPL_ISO_2022_JP_TO_UNICODE_STATE_0208,
- IMPL_ISO_2022_JP_TO_UNICODE_STATE_0208_2,
- IMPL_ISO_2022_JP_TO_UNICODE_STATE_ESC,
- IMPL_ISO_2022_JP_TO_UNICODE_STATE_ESC_LPAREN,
- IMPL_ISO_2022_JP_TO_UNICODE_STATE_ESC_DOLLAR
-} ImplIso2022JpToUnicodeState;
-
-typedef struct
-{
- ImplIso2022JpToUnicodeState m_eState;
- sal_uInt32 m_nRow;
-} ImplIso2022JpToUnicodeContext;
-
-typedef struct
-{
- sal_Unicode m_nHighSurrogate;
- sal_Bool m_b0208;
-} ImplUnicodeToIso2022JpContext;
-
-void * ImplCreateIso2022JpToUnicodeContext(void)
-{
- void * pContext
- = rtl_allocateMemory(sizeof (ImplIso2022JpToUnicodeContext));
- ((ImplIso2022JpToUnicodeContext *) pContext)->m_eState
- = IMPL_ISO_2022_JP_TO_UNICODE_STATE_ASCII;
- return pContext;
-}
-
-void ImplResetIso2022JpToUnicodeContext(void * pContext)
-{
- if (pContext)
- ((ImplIso2022JpToUnicodeContext *) pContext)->m_eState
- = IMPL_ISO_2022_JP_TO_UNICODE_STATE_ASCII;
-}
-
-sal_Size ImplConvertIso2022JpToUnicode(ImplTextConverterData const * pData,
- void * pContext,
- sal_Char const * pSrcBuf,
- sal_Size nSrcBytes,
- sal_Unicode * pDestBuf,
- sal_Size nDestChars,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtBytes)
-{
- ImplDBCSToUniLeadTab const * pJisX0208Data
- = ((ImplIso2022JpConverterData const *) pData)->
- m_pJisX0208ToUnicodeData;
- ImplIso2022JpToUnicodeState eState
- = IMPL_ISO_2022_JP_TO_UNICODE_STATE_ASCII;
- sal_uInt32 nRow = 0;
- sal_uInt32 nInfo = 0;
- sal_Size nConverted = 0;
- sal_Unicode * pDestBufPtr = pDestBuf;
- sal_Unicode * pDestBufEnd = pDestBuf + nDestChars;
-
- if (pContext)
- {
- eState = ((ImplIso2022JpToUnicodeContext *) pContext)->m_eState;
- nRow = ((ImplIso2022JpToUnicodeContext *) pContext)->m_nRow;
- }
-
- for (; nConverted < nSrcBytes; ++nConverted)
- {
- sal_Bool bUndefined = sal_True;
- sal_uInt32 nChar = *(sal_uChar const *) pSrcBuf++;
- switch (eState)
- {
- case IMPL_ISO_2022_JP_TO_UNICODE_STATE_ASCII:
- if (nChar == 0x1B) /* ESC */
- eState = IMPL_ISO_2022_JP_TO_UNICODE_STATE_ESC;
- else if (nChar < 0x80)
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++ = (sal_Unicode) nChar;
- else
- goto no_output;
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_ISO_2022_JP_TO_UNICODE_STATE_JIS_ROMAN:
- if (nChar == 0x1B) /* ESC */
- eState = IMPL_ISO_2022_JP_TO_UNICODE_STATE_ESC;
- else if (nChar < 0x80)
- if (pDestBufPtr != pDestBufEnd)
- {
- switch (nChar)
- {
- case 0x5C: /* \ */
- nChar = 0xA5; /* YEN SIGN */
- break;
-
- case 0x7E: /* ~ */
- nChar = 0xAF; /* MACRON */
- break;
- }
- *pDestBufPtr++ = (sal_Unicode) nChar;
- }
- else
- goto no_output;
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_ISO_2022_JP_TO_UNICODE_STATE_0208:
- if (nChar == 0x1B) /* ESC */
- eState = IMPL_ISO_2022_JP_TO_UNICODE_STATE_ESC;
- else if (nChar >= 0x21 && nChar <= 0x7E)
- {
- nRow = nChar;
- eState = IMPL_ISO_2022_JP_TO_UNICODE_STATE_0208_2;
- }
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_ISO_2022_JP_TO_UNICODE_STATE_0208_2:
- if (nChar >= 0x21 && nChar <= 0x7E)
- {
- sal_uInt16 nUnicode = 0;
- sal_uInt32 nFirst = pJisX0208Data[nRow].mnTrailStart;
- if (nChar >= nFirst
- && nChar <= pJisX0208Data[nRow].mnTrailEnd)
- nUnicode = pJisX0208Data[nRow].
- mpToUniTrailTab[nChar - nFirst];
- if (nUnicode != 0)
- if (pDestBufPtr != pDestBufEnd)
- {
- *pDestBufPtr++ = (sal_Unicode) nUnicode;
- eState = IMPL_ISO_2022_JP_TO_UNICODE_STATE_0208;
- }
- else
- goto no_output;
- else
- goto bad_input;
- }
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_ISO_2022_JP_TO_UNICODE_STATE_ESC:
- switch (nChar)
- {
- case 0x24: /* $ */
- eState = IMPL_ISO_2022_JP_TO_UNICODE_STATE_ESC_DOLLAR;
- break;
-
- case 0x28: /* ( */
- eState = IMPL_ISO_2022_JP_TO_UNICODE_STATE_ESC_LPAREN;
- break;
-
- default:
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_ISO_2022_JP_TO_UNICODE_STATE_ESC_LPAREN:
- switch (nChar)
- {
- case 0x42: /* A */
- eState = IMPL_ISO_2022_JP_TO_UNICODE_STATE_ASCII;
- break;
-
- case 0x4A: /* J */
- eState = IMPL_ISO_2022_JP_TO_UNICODE_STATE_JIS_ROMAN;
- break;
-
- default:
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_ISO_2022_JP_TO_UNICODE_STATE_ESC_DOLLAR:
- switch (nChar)
- {
- case 0x40: /* @ */
- case 0x42: /* B */
- eState = IMPL_ISO_2022_JP_TO_UNICODE_STATE_0208;
- break;
-
- default:
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
- }
- continue;
-
- bad_input:
- switch (ImplHandleBadInputTextToUnicodeConversion(
- bUndefined, sal_True, 0, nFlags, &pDestBufPtr, pDestBufEnd,
- &nInfo))
- {
- case IMPL_BAD_INPUT_STOP:
- eState = IMPL_ISO_2022_JP_TO_UNICODE_STATE_ASCII;
- break;
-
- case IMPL_BAD_INPUT_CONTINUE:
- eState = IMPL_ISO_2022_JP_TO_UNICODE_STATE_ASCII;
- continue;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- goto no_output;
- }
- break;
-
- no_output:
- --pSrcBuf;
- nInfo |= RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- if (eState > IMPL_ISO_2022_JP_TO_UNICODE_STATE_0208
- && (nInfo & (RTL_TEXTTOUNICODE_INFO_ERROR
- | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL))
- == 0)
- {
- if ((nFlags & RTL_TEXTTOUNICODE_FLAGS_FLUSH) == 0)
- nInfo |= RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL;
- else
- switch (ImplHandleBadInputTextToUnicodeConversion(
- sal_False, sal_True, 0, nFlags, &pDestBufPtr, pDestBufEnd,
- &nInfo))
- {
- case IMPL_BAD_INPUT_STOP:
- case IMPL_BAD_INPUT_CONTINUE:
- eState = IMPL_ISO_2022_JP_TO_UNICODE_STATE_ASCII;
- break;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- nInfo |= RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
- }
-
- if (pContext)
- {
- ((ImplIso2022JpToUnicodeContext *) pContext)->m_eState = eState;
- ((ImplIso2022JpToUnicodeContext *) pContext)->m_nRow = nRow;
- }
- if (pInfo)
- *pInfo = nInfo;
- if (pSrcCvtBytes)
- *pSrcCvtBytes = nConverted;
-
- return pDestBufPtr - pDestBuf;
-}
-
-void * ImplCreateUnicodeToIso2022JpContext(void)
-{
- void * pContext
- = rtl_allocateMemory(sizeof (ImplUnicodeToIso2022JpContext));
- ((ImplUnicodeToIso2022JpContext *) pContext)->m_nHighSurrogate = 0;
- ((ImplUnicodeToIso2022JpContext *) pContext)->m_b0208 = sal_False;
- return pContext;
-}
-
-void ImplResetUnicodeToIso2022JpContext(void * pContext)
-{
- if (pContext)
- {
- ((ImplUnicodeToIso2022JpContext *) pContext)->m_nHighSurrogate = 0;
- ((ImplUnicodeToIso2022JpContext *) pContext)->m_b0208 = sal_False;
- }
-}
-
-sal_Size ImplConvertUnicodeToIso2022Jp(ImplTextConverterData const * pData,
- void * pContext,
- sal_Unicode const * pSrcBuf,
- sal_Size nSrcChars,
- sal_Char * pDestBuf,
- sal_Size nDestBytes,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtChars)
-{
- ImplUniToDBCSHighTab const * pJisX0208Data
- = ((ImplIso2022JpConverterData const *) pData)->
- m_pUnicodeToJisX0208Data;
- sal_Unicode nHighSurrogate = 0;
- sal_Bool b0208 = sal_False;
- sal_uInt32 nInfo = 0;
- sal_Size nConverted = 0;
- sal_Char * pDestBufPtr = pDestBuf;
- sal_Char * pDestBufEnd = pDestBuf + nDestBytes;
- sal_Bool bWritten;
-
- if (pContext)
- {
- nHighSurrogate
- = ((ImplUnicodeToIso2022JpContext *) pContext)->m_nHighSurrogate;
- b0208 = ((ImplUnicodeToIso2022JpContext *) pContext)->m_b0208;
- }
-
- for (; nConverted < nSrcChars; ++nConverted)
- {
- sal_Bool bUndefined = sal_True;
- sal_uInt32 nChar = *pSrcBuf++;
- if (nHighSurrogate == 0)
- {
- if (ImplIsHighSurrogate(nChar))
- {
- nHighSurrogate = (sal_Unicode) nChar;
- continue;
- }
- }
- else if (ImplIsLowSurrogate(nChar))
- nChar = ImplCombineSurrogates(nHighSurrogate, nChar);
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
-
- if (ImplIsLowSurrogate(nChar) || ImplIsNoncharacter(nChar))
- {
- bUndefined = sal_False;
- goto bad_input;
- }
-
- if (nChar == 0x0A || nChar == 0x0D) /* LF, CR */
- {
- if (b0208)
- {
- if (pDestBufEnd - pDestBufPtr >= 3)
- {
- *pDestBufPtr++ = 0x1B; /* ESC */
- *pDestBufPtr++ = 0x28; /* ( */
- *pDestBufPtr++ = 0x42; /* B */
- b0208 = sal_False;
- }
- else
- goto no_output;
- }
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++ = (sal_Char) nChar;
- else
- goto no_output;
- }
- else if (nChar == 0x1B)
- goto bad_input;
- else if (nChar < 0x80)
- {
- if (b0208)
- {
- if (pDestBufEnd - pDestBufPtr >= 3)
- {
- *pDestBufPtr++ = 0x1B; /* ESC */
- *pDestBufPtr++ = 0x28; /* ( */
- *pDestBufPtr++ = 0x42; /* B */
- b0208 = sal_False;
- }
- else
- goto no_output;
- }
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++ = (sal_Char) nChar;
- else
- goto no_output;
- }
- else
- {
- sal_uInt16 nBytes = 0;
- sal_uInt32 nIndex1 = nChar >> 8;
- if (nIndex1 < 0x100)
- {
- sal_uInt32 nIndex2 = nChar & 0xFF;
- sal_uInt32 nFirst = pJisX0208Data[nIndex1].mnLowStart;
- if (nIndex2 >= nFirst
- && nIndex2 <= pJisX0208Data[nIndex1].mnLowEnd)
- {
- nBytes = pJisX0208Data[nIndex1].
- mpToUniTrailTab[nIndex2 - nFirst];
- if (nBytes == 0)
- /* For some reason, the tables in tcvtjp4.tab do not
- include these two conversions: */
- switch (nChar)
- {
- case 0xA5: /* YEN SIGN */
- nBytes = 0x216F;
- break;
-
- case 0xAF: /* MACRON */
- nBytes = 0x2131;
- break;
- }
- }
- }
- if (nBytes != 0)
- {
- if (!b0208)
- {
- if (pDestBufEnd - pDestBufPtr >= 3)
- {
- *pDestBufPtr++ = 0x1B; /* ESC */
- *pDestBufPtr++ = 0x24; /* $ */
- *pDestBufPtr++ = 0x42; /* B */
- b0208 = sal_True;
- }
- else
- goto no_output;
- }
- if (pDestBufEnd - pDestBufPtr >= 2)
- {
- *pDestBufPtr++ = (sal_Char) (nBytes >> 8);
- *pDestBufPtr++ = (sal_Char) (nBytes & 0xFF);
- }
- else
- goto no_output;
- }
- else
- goto bad_input;
- }
- nHighSurrogate = 0;
- continue;
-
- bad_input:
- switch (ImplHandleBadInputUnicodeToTextConversion(
- bUndefined,
- nChar,
- nFlags,
- &pDestBufPtr,
- pDestBufEnd,
- &nInfo,
- "\x1B(B",
- b0208 ? 3 : 0,
- &bWritten))
- {
- case IMPL_BAD_INPUT_STOP:
- nHighSurrogate = 0;
- break;
-
- case IMPL_BAD_INPUT_CONTINUE:
- if (bWritten)
- b0208 = sal_False;
- nHighSurrogate = 0;
- continue;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- goto no_output;
- }
- break;
-
- no_output:
- --pSrcBuf;
- nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- if ((nInfo & (RTL_UNICODETOTEXT_INFO_ERROR
- | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL))
- == 0)
- {
- sal_Bool bFlush = sal_True;
- if (nHighSurrogate != 0)
- {
- if ((nFlags & RTL_UNICODETOTEXT_FLAGS_FLUSH) != 0)
- nInfo |= RTL_UNICODETOTEXT_INFO_SRCBUFFERTOSMALL;
- else
- switch (ImplHandleBadInputUnicodeToTextConversion(
- sal_False,
- 0,
- nFlags,
- &pDestBufPtr,
- pDestBufEnd,
- &nInfo,
- "\x1B(B",
- b0208 ? 3 : 0,
- &bWritten))
- {
- case IMPL_BAD_INPUT_STOP:
- nHighSurrogate = 0;
- bFlush = sal_False;
- break;
-
- case IMPL_BAD_INPUT_CONTINUE:
- if (bWritten)
- b0208 = sal_False;
- nHighSurrogate = 0;
- break;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
- }
- if (bFlush
- && b0208
- && (nFlags & RTL_UNICODETOTEXT_FLAGS_FLUSH) != 0)
- {
- if (pDestBufEnd - pDestBufPtr >= 3)
- {
- *pDestBufPtr++ = 0x1B; /* ESC */
- *pDestBufPtr++ = 0x28; /* ( */
- *pDestBufPtr++ = 0x42; /* B */
- b0208 = sal_False;
- }
- else
- nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- }
- }
-
- if (pContext)
- {
- ((ImplUnicodeToIso2022JpContext *) pContext)->m_nHighSurrogate
- = nHighSurrogate;
- ((ImplUnicodeToIso2022JpContext *) pContext)->m_b0208 = b0208;
- }
- if (pInfo)
- *pInfo = nInfo;
- if (pSrcCvtChars)
- *pSrcCvtChars = nConverted;
-
- return pDestBufPtr - pDestBuf;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/convertiso2022jp.h b/sal/textenc/convertiso2022jp.h
deleted file mode 100644
index 1bbc7d3c0..000000000
--- a/sal/textenc/convertiso2022jp.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_TEXTENC_CONVERTISO2022JP_H
-#define INCLUDED_RTL_TEXTENC_CONVERTISO2022JP_H
-
-#include "tenchelp.h"
-#include "sal/types.h"
-
-#if defined __cplusplus
-extern "C" {
-#endif /* __cpluscplus */
-
-typedef struct
-{
- ImplDBCSToUniLeadTab const * m_pJisX0208ToUnicodeData;
- ImplUniToDBCSHighTab const * m_pUnicodeToJisX0208Data;
-} ImplIso2022JpConverterData;
-
-void * ImplCreateIso2022JpToUnicodeContext(void) SAL_THROW_EXTERN_C();
-
-void ImplResetIso2022JpToUnicodeContext(void * pContext) SAL_THROW_EXTERN_C();
-
-sal_Size ImplConvertIso2022JpToUnicode(ImplTextConverterData const * pData,
- void * pContext,
- sal_Char const * pSrcBuf,
- sal_Size nSrcBytes,
- sal_Unicode * pDestBuf,
- sal_Size nDestChars,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtBytes)
- SAL_THROW_EXTERN_C();
-
-void * ImplCreateUnicodeToIso2022JpContext(void) SAL_THROW_EXTERN_C();
-
-void ImplResetUnicodeToIso2022JpContext(void * pContext) SAL_THROW_EXTERN_C();
-
-sal_Size ImplConvertUnicodeToIso2022Jp(ImplTextConverterData const * pData,
- void * pContext,
- sal_Unicode const * pSrcBuf,
- sal_Size nSrcChars,
- sal_Char * pDestBuf,
- sal_Size nDestBytes,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtChars)
- SAL_THROW_EXTERN_C();
-
-#if defined __cplusplus
-}
-#endif /* __cpluscplus */
-
-#endif /* INCLUDED_RTL_TEXTENC_CONVERTISO2022JP_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/convertiso2022jp.tab b/sal/textenc/convertiso2022jp.tab
deleted file mode 100644
index 02fa65959..000000000
--- a/sal/textenc/convertiso2022jp.tab
+++ /dev/null
@@ -1,68 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_TEXTENC_CONTEXT_H
-#include "context.h"
-#endif
-#ifndef INCLUDED_RTL_TEXTENC_CONVERTISO2022JP_H
-#include "convertiso2022jp.h"
-#endif
-#ifndef INCLUDED_RTL_TEXTENC_TENCHELP_H
-#include "tenchelp.h"
-#endif
-
-#ifndef _RTL_TENCINFO_H
-#include "rtl/tencinfo.h"
-#endif
-#ifndef _RTL_TEXTENC_H
-#include "rtl/textenc.h"
-#endif
-
-static ImplIso2022JpConverterData const aImplIso2022JpConvertData
- = { aJIS0208UniLeadTab, /* from tcvtjp6.tab */
- aJIS0208DBCSHighTab }; /* from tcvtjp6.tab */
-
-static ImplTextEncodingData const aImplIso2022JpTextEncodingData
- = { { &aImplIso2022JpConvertData,
- &ImplConvertIso2022JpToUnicode,
- &ImplConvertUnicodeToIso2022Jp,
- &ImplCreateIso2022JpToUnicodeContext,
- &ImplDestroyContext,
- &ImplResetIso2022JpToUnicodeContext,
- &ImplCreateUnicodeToIso2022JpContext,
- &ImplDestroyContext,
- &ImplResetUnicodeToIso2022JpContext },
- 1,
- 8,
- 2,
- 128,
- "euc-jp",
- "ISO-2022-JP",
- RTL_TEXTENCODING_INFO_CONTEXT
- | RTL_TEXTENCODING_INFO_MULTIBYTE
- | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_JAPANESE */
diff --git a/sal/textenc/convertiso2022kr.c b/sal/textenc/convertiso2022kr.c
deleted file mode 100644
index 78b073d7f..000000000
--- a/sal/textenc/convertiso2022kr.c
+++ /dev/null
@@ -1,530 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "convertiso2022kr.h"
-#include "context.h"
-#include "converter.h"
-#include "tenchelp.h"
-#include "unichars.h"
-#include "rtl/alloc.h"
-#include "rtl/textcvt.h"
-#include "sal/types.h"
-
-typedef enum /* order is important: */
-{
- IMPL_ISO_2022_KR_TO_UNICODE_STATE_ASCII,
- IMPL_ISO_2022_KR_TO_UNICODE_STATE_1001,
- IMPL_ISO_2022_KR_TO_UNICODE_STATE_1001_2,
- IMPL_ISO_2022_KR_TO_UNICODE_STATE_ESC,
- IMPL_ISO_2022_KR_TO_UNICODE_STATE_ESC_DOLLAR,
- IMPL_ISO_2022_KR_TO_UNICODE_STATE_ESC_DOLLAR_RPAREN
-} ImplIso2022KrToUnicodeState;
-
-typedef struct
-{
- ImplIso2022KrToUnicodeState m_eState;
- sal_uInt32 m_nRow;
-} ImplIso2022KrToUnicodeContext;
-
-typedef enum
-{
- IMPL_UNICODE_TO_ISO_2022_KR_SET_NONE,
- IMPL_UNICODE_TO_ISO_2022_KR_SET_ASCII,
- IMPL_UNICODE_TO_ISO_2022_KR_SET_1001
-} ImplUnicodeToIso2022KrSet;
-
-typedef struct
-{
- sal_Unicode m_nHighSurrogate;
- ImplUnicodeToIso2022KrSet m_eSet;
-} ImplUnicodeToIso2022KrContext;
-
-void * ImplCreateIso2022KrToUnicodeContext(void)
-{
- void * pContext
- = rtl_allocateMemory(sizeof (ImplIso2022KrToUnicodeContext));
- ((ImplIso2022KrToUnicodeContext *) pContext)->m_eState
- = IMPL_ISO_2022_KR_TO_UNICODE_STATE_ASCII;
- return pContext;
-}
-
-void ImplResetIso2022KrToUnicodeContext(void * pContext)
-{
- if (pContext)
- ((ImplIso2022KrToUnicodeContext *) pContext)->m_eState
- = IMPL_ISO_2022_KR_TO_UNICODE_STATE_ASCII;
-}
-
-sal_Size ImplConvertIso2022KrToUnicode(ImplTextConverterData const * pData,
- void * pContext,
- sal_Char const * pSrcBuf,
- sal_Size nSrcBytes,
- sal_Unicode * pDestBuf,
- sal_Size nDestChars,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtBytes)
-{
- ImplDBCSToUniLeadTab const * pKsX1001Data
- = ((ImplIso2022KrConverterData const *) pData)->
- m_pKsX1001ToUnicodeData;
- ImplIso2022KrToUnicodeState eState
- = IMPL_ISO_2022_KR_TO_UNICODE_STATE_ASCII;
- sal_uInt32 nRow = 0;
- sal_uInt32 nInfo = 0;
- sal_Size nConverted = 0;
- sal_Unicode * pDestBufPtr = pDestBuf;
- sal_Unicode * pDestBufEnd = pDestBuf + nDestChars;
-
- if (pContext)
- {
- eState = ((ImplIso2022KrToUnicodeContext *) pContext)->m_eState;
- nRow = ((ImplIso2022KrToUnicodeContext *) pContext)->m_nRow;
- }
-
- for (; nConverted < nSrcBytes; ++nConverted)
- {
- sal_Bool bUndefined = sal_True;
- sal_uInt32 nChar = *(sal_uChar const *) pSrcBuf++;
- switch (eState)
- {
- case IMPL_ISO_2022_KR_TO_UNICODE_STATE_ASCII:
- if (nChar == 0x0E) /* SO */
- eState = IMPL_ISO_2022_KR_TO_UNICODE_STATE_1001;
- else if (nChar == 0x1B) /* ESC */
- eState = IMPL_ISO_2022_KR_TO_UNICODE_STATE_ESC;
- else if (nChar < 0x80)
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++ = (sal_Unicode) nChar;
- else
- goto no_output;
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_ISO_2022_KR_TO_UNICODE_STATE_1001:
- if (nChar == 0x0F) /* SI */
- eState = IMPL_ISO_2022_KR_TO_UNICODE_STATE_ASCII;
- else if (nChar >= 0x21 && nChar <= 0x7E)
- {
- nRow = nChar + 0x80;
- eState = IMPL_ISO_2022_KR_TO_UNICODE_STATE_1001_2;
- }
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_ISO_2022_KR_TO_UNICODE_STATE_1001_2:
- if (nChar >= 0x21 && nChar <= 0x7E)
- {
- sal_uInt16 nUnicode = 0;
- sal_uInt32 nFirst = pKsX1001Data[nRow].mnTrailStart;
- nChar += 0x80;
- if (nChar >= nFirst && nChar <= pKsX1001Data[nRow].mnTrailEnd)
- nUnicode = pKsX1001Data[nRow].
- mpToUniTrailTab[nChar - nFirst];
- if (nUnicode != 0)
- if (pDestBufPtr != pDestBufEnd)
- {
- *pDestBufPtr++ = (sal_Unicode) nUnicode;
- eState = IMPL_ISO_2022_KR_TO_UNICODE_STATE_1001;
- }
- else
- goto no_output;
- else
- goto bad_input;
- }
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_ISO_2022_KR_TO_UNICODE_STATE_ESC:
- if (nChar == 0x24) /* $ */
- eState = IMPL_ISO_2022_KR_TO_UNICODE_STATE_ESC_DOLLAR;
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_ISO_2022_KR_TO_UNICODE_STATE_ESC_DOLLAR:
- if (nChar == 0x29) /* ) */
- eState = IMPL_ISO_2022_KR_TO_UNICODE_STATE_ESC_DOLLAR_RPAREN;
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
-
- case IMPL_ISO_2022_KR_TO_UNICODE_STATE_ESC_DOLLAR_RPAREN:
- if (nChar == 0x43) /* C */
- eState = IMPL_ISO_2022_KR_TO_UNICODE_STATE_ASCII;
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
- break;
- }
- continue;
-
- bad_input:
- switch (ImplHandleBadInputTextToUnicodeConversion(
- bUndefined, sal_True, 0, nFlags, &pDestBufPtr, pDestBufEnd,
- &nInfo))
- {
- case IMPL_BAD_INPUT_STOP:
- eState = IMPL_ISO_2022_KR_TO_UNICODE_STATE_ASCII;
- break;
-
- case IMPL_BAD_INPUT_CONTINUE:
- eState = IMPL_ISO_2022_KR_TO_UNICODE_STATE_ASCII;
- continue;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- goto no_output;
- }
- break;
-
- no_output:
- --pSrcBuf;
- nInfo |= RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- if (eState > IMPL_ISO_2022_KR_TO_UNICODE_STATE_1001
- && (nInfo & (RTL_TEXTTOUNICODE_INFO_ERROR
- | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL))
- == 0)
- {
- if ((nFlags & RTL_TEXTTOUNICODE_FLAGS_FLUSH) == 0)
- nInfo |= RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL;
- else
- switch (ImplHandleBadInputTextToUnicodeConversion(
- sal_False, sal_True, 0, nFlags, &pDestBufPtr, pDestBufEnd,
- &nInfo))
- {
- case IMPL_BAD_INPUT_STOP:
- case IMPL_BAD_INPUT_CONTINUE:
- eState = IMPL_ISO_2022_KR_TO_UNICODE_STATE_ASCII;
- break;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- nInfo |= RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
- }
-
- if (pContext)
- {
- ((ImplIso2022KrToUnicodeContext *) pContext)->m_eState = eState;
- ((ImplIso2022KrToUnicodeContext *) pContext)->m_nRow = nRow;
- }
- if (pInfo)
- *pInfo = nInfo;
- if (pSrcCvtBytes)
- *pSrcCvtBytes = nConverted;
-
- return pDestBufPtr - pDestBuf;
-}
-
-void * ImplCreateUnicodeToIso2022KrContext(void)
-{
- void * pContext
- = rtl_allocateMemory(sizeof (ImplUnicodeToIso2022KrContext));
- ((ImplUnicodeToIso2022KrContext *) pContext)->m_nHighSurrogate = 0;
- ((ImplUnicodeToIso2022KrContext *) pContext)->m_eSet
- = IMPL_UNICODE_TO_ISO_2022_KR_SET_NONE;
- return pContext;
-}
-
-void ImplResetUnicodeToIso2022KrContext(void * pContext)
-{
- if (pContext)
- {
- ((ImplUnicodeToIso2022KrContext *) pContext)->m_nHighSurrogate = 0;
- ((ImplUnicodeToIso2022KrContext *) pContext)->m_eSet
- = IMPL_UNICODE_TO_ISO_2022_KR_SET_NONE;
- }
-}
-
-sal_Size ImplConvertUnicodeToIso2022Kr(ImplTextConverterData const * pData,
- void * pContext,
- sal_Unicode const * pSrcBuf,
- sal_Size nSrcChars,
- sal_Char * pDestBuf,
- sal_Size nDestBytes,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtChars)
-{
- ImplUniToDBCSHighTab const * pKsX1001Data
- = ((ImplIso2022KrConverterData const *) pData)->
- m_pUnicodeToKsX1001Data;
- sal_Unicode nHighSurrogate = 0;
- ImplUnicodeToIso2022KrSet eSet = IMPL_UNICODE_TO_ISO_2022_KR_SET_NONE;
- sal_uInt32 nInfo = 0;
- sal_Size nConverted = 0;
- sal_Char * pDestBufPtr = pDestBuf;
- sal_Char * pDestBufEnd = pDestBuf + nDestBytes;
- sal_Bool bWritten;
-
- if (pContext)
- {
- nHighSurrogate
- = ((ImplUnicodeToIso2022KrContext *) pContext)->m_nHighSurrogate;
- eSet = ((ImplUnicodeToIso2022KrContext *) pContext)->m_eSet;
- }
-
- if (eSet == IMPL_UNICODE_TO_ISO_2022_KR_SET_NONE)
- {
- if (pDestBufEnd - pDestBufPtr >= 4)
- {
- *pDestBufPtr++ = 0x1B; /* ESC */
- *pDestBufPtr++ = 0x24; /* $ */
- *pDestBufPtr++ = 0x29; /* ) */
- *pDestBufPtr++ = 0x43; /* C */
- eSet = IMPL_UNICODE_TO_ISO_2022_KR_SET_ASCII;
- }
- else
- nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- }
-
- if ((nInfo & RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL) == 0)
- for (; nConverted < nSrcChars; ++nConverted)
- {
- sal_Bool bUndefined = sal_True;
- sal_uInt32 nChar = *pSrcBuf++;
- if (nHighSurrogate == 0)
- {
- if (ImplIsHighSurrogate(nChar))
- {
- nHighSurrogate = (sal_Unicode) nChar;
- continue;
- }
- }
- else if (ImplIsLowSurrogate(nChar))
- nChar = ImplCombineSurrogates(nHighSurrogate, nChar);
- else
- {
- bUndefined = sal_False;
- goto bad_input;
- }
-
- if (ImplIsLowSurrogate(nChar) || ImplIsNoncharacter(nChar))
- {
- bUndefined = sal_False;
- goto bad_input;
- }
-
- if (nChar == 0x0A || nChar == 0x0D) /* LF, CR */
- {
- if (eSet == IMPL_UNICODE_TO_ISO_2022_KR_SET_1001)
- {
- if (pDestBufPtr != pDestBufEnd)
- {
- *pDestBufPtr++ = 0x0F; /* SI */
- eSet = IMPL_UNICODE_TO_ISO_2022_KR_SET_ASCII;
- }
- else
- goto no_output;
- }
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++ = (sal_Char) nChar;
- else
- goto no_output;
- }
- else if (nChar == 0x0E || nChar == 0x0F || nChar == 0x1B)
- goto bad_input;
- else if (nChar < 0x80)
- {
- if (eSet == IMPL_UNICODE_TO_ISO_2022_KR_SET_1001)
- {
- if (pDestBufPtr != pDestBufEnd)
- {
- *pDestBufPtr++ = 0x0F; /* SI */
- eSet = IMPL_UNICODE_TO_ISO_2022_KR_SET_ASCII;
- }
- else
- goto no_output;
- }
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++ = (sal_Char) nChar;
- else
- goto no_output;
- }
- else
- {
- sal_uInt16 nBytes = 0;
- sal_uInt32 nIndex1 = nChar >> 8;
- if (nIndex1 < 0x100)
- {
- sal_uInt32 nIndex2 = nChar & 0xFF;
- sal_uInt32 nFirst = pKsX1001Data[nIndex1].mnLowStart;
- if (nIndex2 >= nFirst
- && nIndex2 <= pKsX1001Data[nIndex1].mnLowEnd)
- nBytes = pKsX1001Data[nIndex1].
- mpToUniTrailTab[nIndex2 - nFirst];
- }
- if (nBytes != 0)
- {
- if (eSet == IMPL_UNICODE_TO_ISO_2022_KR_SET_ASCII)
- {
- if (pDestBufPtr != pDestBufEnd)
- {
- *pDestBufPtr++ = 0x0E; /* SO */
- eSet = IMPL_UNICODE_TO_ISO_2022_KR_SET_1001;
- }
- else
- goto no_output;
- }
- if (pDestBufEnd - pDestBufPtr >= 2)
- {
- *pDestBufPtr++ = (sal_Char) ((nBytes >> 8) & 0x7F);
- *pDestBufPtr++ = (sal_Char) (nBytes & 0x7F);
- }
- else
- goto no_output;
- }
- else
- goto bad_input;
- }
- nHighSurrogate = 0;
- continue;
-
- bad_input:
- switch (ImplHandleBadInputUnicodeToTextConversion(
- bUndefined,
- nChar,
- nFlags,
- &pDestBufPtr,
- pDestBufEnd,
- &nInfo,
- "\x0F", /* SI */
- eSet == IMPL_UNICODE_TO_ISO_2022_KR_SET_ASCII ? 0 : 1,
- &bWritten))
- {
- case IMPL_BAD_INPUT_STOP:
- nHighSurrogate = 0;
- break;
-
- case IMPL_BAD_INPUT_CONTINUE:
- if (bWritten)
- eSet = IMPL_UNICODE_TO_ISO_2022_KR_SET_ASCII;
- nHighSurrogate = 0;
- continue;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- goto no_output;
- }
- break;
-
- no_output:
- --pSrcBuf;
- nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- if ((nInfo & (RTL_UNICODETOTEXT_INFO_ERROR
- | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL))
- == 0)
- {
- sal_Bool bFlush = sal_True;
- if (nHighSurrogate != 0)
- {
- if ((nFlags & RTL_UNICODETOTEXT_FLAGS_FLUSH) != 0)
- nInfo |= RTL_UNICODETOTEXT_INFO_SRCBUFFERTOSMALL;
- else
- switch (ImplHandleBadInputUnicodeToTextConversion(
- sal_False,
- 0,
- nFlags,
- &pDestBufPtr,
- pDestBufEnd,
- &nInfo,
- "\x0F", /* SI */
- eSet == IMPL_UNICODE_TO_ISO_2022_KR_SET_ASCII ?
- 0 : 1,
- &bWritten))
- {
- case IMPL_BAD_INPUT_STOP:
- nHighSurrogate = 0;
- bFlush = sal_False;
- break;
-
- case IMPL_BAD_INPUT_CONTINUE:
- if (bWritten)
- eSet = IMPL_UNICODE_TO_ISO_2022_KR_SET_ASCII;
- nHighSurrogate = 0;
- break;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
- }
- if (bFlush
- && eSet == IMPL_UNICODE_TO_ISO_2022_KR_SET_1001
- && (nFlags & RTL_UNICODETOTEXT_FLAGS_FLUSH) != 0)
- {
- if (pDestBufPtr != pDestBufEnd)
- {
- *pDestBufPtr++ = 0x0F; /* SI */
- eSet = IMPL_UNICODE_TO_ISO_2022_KR_SET_ASCII;
- }
- else
- nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- }
- }
-
- if (pContext)
- {
- ((ImplUnicodeToIso2022KrContext *) pContext)->m_nHighSurrogate
- = nHighSurrogate;
- ((ImplUnicodeToIso2022KrContext *) pContext)->m_eSet = eSet;
- }
- if (pInfo)
- *pInfo = nInfo;
- if (pSrcCvtChars)
- *pSrcCvtChars = nConverted;
-
- return pDestBufPtr - pDestBuf;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/convertiso2022kr.h b/sal/textenc/convertiso2022kr.h
deleted file mode 100644
index 7b76fe561..000000000
--- a/sal/textenc/convertiso2022kr.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_TEXTENC_CONVERTISO2022KR_H
-#define INCLUDED_RTL_TEXTENC_CONVERTISO2022KR_H
-
-#include "tenchelp.h"
-#include "sal/types.h"
-
-#if defined __cplusplus
-extern "C" {
-#endif /* __cpluscplus */
-
-typedef struct
-{
- ImplDBCSToUniLeadTab const * m_pKsX1001ToUnicodeData;
- ImplUniToDBCSHighTab const * m_pUnicodeToKsX1001Data;
-} ImplIso2022KrConverterData;
-
-void * ImplCreateIso2022KrToUnicodeContext(void) SAL_THROW_EXTERN_C();
-
-void ImplResetIso2022KrToUnicodeContext(void * pContext) SAL_THROW_EXTERN_C();
-
-sal_Size ImplConvertIso2022KrToUnicode(ImplTextConverterData const * pData,
- void * pContext,
- sal_Char const * pSrcBuf,
- sal_Size nSrcBytes,
- sal_Unicode * pDestBuf,
- sal_Size nDestChars,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtBytes)
- SAL_THROW_EXTERN_C();
-
-void * ImplCreateUnicodeToIso2022KrContext(void) SAL_THROW_EXTERN_C();
-
-void ImplResetUnicodeToIso2022KrContext(void * pContext) SAL_THROW_EXTERN_C();
-
-sal_Size ImplConvertUnicodeToIso2022Kr(ImplTextConverterData const * pData,
- void * pContext,
- sal_Unicode const * pSrcBuf,
- sal_Size nSrcChars,
- sal_Char * pDestBuf,
- sal_Size nDestBytes,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtChars)
- SAL_THROW_EXTERN_C();
-
-#if defined __cplusplus
-}
-#endif /* __cpluscplus */
-
-#endif /* INCLUDED_RTL_TEXTENC_CONVERTISO2022KR_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/convertiso2022kr.tab b/sal/textenc/convertiso2022kr.tab
deleted file mode 100644
index 72eda4e26..000000000
--- a/sal/textenc/convertiso2022kr.tab
+++ /dev/null
@@ -1,68 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_TEXTENC_CONTEXT_H
-#include "context.h"
-#endif
-#ifndef INCLUDED_RTL_TEXTENC_CONVERTISO2022KR_H
-#include "convertiso2022kr.h"
-#endif
-#ifndef INCLUDED_RTL_TEXTENC_TENCHELP_H
-#include "tenchelp.h"
-#endif
-
-#ifndef _RTL_TENCINFO_H
-#include "rtl/tencinfo.h"
-#endif
-#ifndef _RTL_TEXTENC_H
-#include "rtl/textenc.h"
-#endif
-
-static ImplIso2022KrConverterData const aImplIso2022KrConvertData
- = { aKSC5601UniLeadTab, /* from tcvtkr6.tab */
- aKSC5601DBCSHighTab }; /* from tcvtkr6.tab */
-
-static ImplTextEncodingData const aImplIso2022KrTextEncodingData
- = { { &aImplIso2022KrConvertData,
- &ImplConvertIso2022KrToUnicode,
- &ImplConvertUnicodeToIso2022Kr,
- &ImplCreateIso2022KrToUnicodeContext,
- &ImplDestroyContext,
- &ImplResetIso2022KrToUnicodeContext,
- &ImplCreateUnicodeToIso2022KrContext,
- &ImplDestroyContext,
- &ImplResetUnicodeToIso2022KrContext },
- 1,
- 8,
- 2,
- 130,
- "euc-kr",
- "ISO-2022-KR",
- RTL_TEXTENCODING_INFO_CONTEXT
- | RTL_TEXTENCODING_INFO_MULTIBYTE
- | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_KOREAN */
diff --git a/sal/textenc/convertsinglebytetobmpunicode.cxx b/sal/textenc/convertsinglebytetobmpunicode.cxx
deleted file mode 100644
index 3fef475b9..000000000
--- a/sal/textenc/convertsinglebytetobmpunicode.cxx
+++ /dev/null
@@ -1,214 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include "context.h"
-#include "converter.h"
-#include "convertsinglebytetobmpunicode.hxx"
-#include "unichars.h"
-
-#include "osl/diagnose.h"
-#include "rtl/textcvt.h"
-#include "sal/types.h"
-
-#include <cstddef>
-
-sal_Size rtl_textenc_convertSingleByteToBmpUnicode(
- ImplTextConverterData const * data, void *, sal_Char const * srcBuf,
- sal_Size srcBytes, sal_Unicode * destBuf, sal_Size destChars,
- sal_uInt32 flags, sal_uInt32 * info, sal_Size * srcCvtBytes)
-{
- sal_Unicode const * map = static_cast<
- rtl::textenc::BmpUnicodeToSingleByteConverterData const * >(
- data)->byteToUnicode;
- sal_uInt32 infoFlags = 0;
- sal_Size converted = 0;
- sal_Unicode * destBufPtr = destBuf;
- sal_Unicode * destBufEnd = destBuf + destChars;
- for (; converted < srcBytes; ++converted) {
- bool undefined = true;
- sal_Char b = *srcBuf++;
- sal_Unicode c = map[static_cast< sal_uInt8 >(b)];
- if (c == 0xFFFF) {
- goto bad_input;
- }
- if (destBufEnd - destBufPtr < 1) {
- goto no_output;
- }
- *destBufPtr++ = c;
- continue;
- bad_input:
- switch (ImplHandleBadInputTextToUnicodeConversion(
- undefined, false, b, flags, &destBufPtr, destBufEnd,
- &infoFlags))
- {
- case IMPL_BAD_INPUT_STOP:
- break;
-
- case IMPL_BAD_INPUT_CONTINUE:
- continue;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- goto no_output;
- }
- break;
- no_output:
- --srcBuf;
- infoFlags |= RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
- if (info != 0) {
- *info = infoFlags;
- }
- if (srcCvtBytes != 0) {
- *srcCvtBytes = converted;
- }
- return destBufPtr - destBuf;
-}
-
-sal_Size rtl_textenc_convertBmpUnicodeToSingleByte(
- ImplTextConverterData const * data, void * context,
- sal_Unicode const * srcBuf, sal_Size srcChars, sal_Char * destBuf,
- sal_Size destBytes, sal_uInt32 flags, sal_uInt32 * info,
- sal_Size * srcCvtChars)
-{
- std::size_t entries = static_cast<
- rtl::textenc::BmpUnicodeToSingleByteConverterData const * >(
- data)->unicodeToByteEntries;
- rtl::textenc::BmpUnicodeToSingleByteRange const * ranges = static_cast<
- rtl::textenc::BmpUnicodeToSingleByteConverterData const * >(
- data)->unicodeToByte;
- sal_Unicode highSurrogate = 0;
- sal_uInt32 infoFlags = 0;
- sal_Size converted = 0;
- sal_Char * destBufPtr = destBuf;
- sal_Char * destBufEnd = destBuf + destBytes;
- if (context != 0) {
- highSurrogate = static_cast< ImplUnicodeToTextContext * >(context)->
- m_nHighSurrogate;
- }
- for (; converted < srcChars; ++converted) {
- bool undefined = true;
- sal_uInt32 c = *srcBuf++;
- if (highSurrogate == 0) {
- if (ImplIsHighSurrogate(c)) {
- highSurrogate = static_cast< sal_Unicode >(c);
- continue;
- }
- } else if (ImplIsLowSurrogate(c)) {
- c = ImplCombineSurrogates(highSurrogate, c);
- } else {
- undefined = false;
- goto bad_input;
- }
- if (ImplIsLowSurrogate(c) || ImplIsNoncharacter(c)) {
- undefined = false;
- goto bad_input;
- }
- // Linearly searching through the ranges if probably fastest, assuming
- // that most converted characters belong to the ASCII subset:
- for (std::size_t i = 0; i < entries; ++i) {
- if (c < ranges[i].unicode) {
- break;
- } else if (c <= sal::static_int_cast< sal_uInt32 >(
- ranges[i].unicode + ranges[i].range))
- {
- if (destBufEnd - destBufPtr < 1) {
- goto no_output;
- }
- *destBufPtr++ = static_cast< sal_Char >(
- ranges[i].byte + (c - ranges[i].unicode));
- goto done;
- }
- }
- goto bad_input;
- done:
- highSurrogate = 0;
- continue;
- bad_input:
- switch (ImplHandleBadInputUnicodeToTextConversion(
- undefined, c, flags, &destBufPtr, destBufEnd, &infoFlags, 0,
- 0, 0))
- {
- case IMPL_BAD_INPUT_STOP:
- highSurrogate = 0;
- break;
-
- case IMPL_BAD_INPUT_CONTINUE:
- highSurrogate = 0;
- continue;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- goto no_output;
- }
- break;
- no_output:
- --srcBuf;
- infoFlags |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
- if (highSurrogate != 0
- && ((infoFlags
- & (RTL_UNICODETOTEXT_INFO_ERROR
- | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL))
- == 0))
- {
- if ((flags & RTL_UNICODETOTEXT_FLAGS_FLUSH) != 0) {
- infoFlags |= RTL_UNICODETOTEXT_INFO_SRCBUFFERTOSMALL;
- } else {
- switch (ImplHandleBadInputUnicodeToTextConversion(
- false, 0, flags, &destBufPtr, destBufEnd, &infoFlags, 0,
- 0, 0))
- {
- case IMPL_BAD_INPUT_STOP:
- case IMPL_BAD_INPUT_CONTINUE:
- highSurrogate = 0;
- break;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- infoFlags |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
- }
- }
- if (context != 0) {
- static_cast< ImplUnicodeToTextContext * >(context)->m_nHighSurrogate
- = highSurrogate;
- }
- if (info != 0) {
- *info = infoFlags;
- }
- if (srcCvtChars != 0) {
- *srcCvtChars = converted;
- }
- return destBufPtr - destBuf;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/convertsinglebytetobmpunicode.hxx b/sal/textenc/convertsinglebytetobmpunicode.hxx
deleted file mode 100644
index c690cfa0a..000000000
--- a/sal/textenc/convertsinglebytetobmpunicode.hxx
+++ /dev/null
@@ -1,129 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_sal_textenc_convertsinglebytetobmpunicode_hxx
-#define INCLUDED_sal_textenc_convertsinglebytetobmpunicode_hxx
-
-#include "tenchelp.h"
-
-#include "sal/types.h"
-
-#include <cstddef>
-
-/// @HTML
-
-namespace rtl { namespace textenc {
-
-/**
- Maps a range of BMP Unicode code points to individual bytes.
-
- @see rtl::textenc::BmpUnicodeToSingleByteConverterData
- */
-struct BmpUnicodeToSingleByteRange {
- /**
- The start of the range of BMP Unicode code points.
- */
- sal_Unicode unicode;
-
- /**
- The extend of the range of BMP Unicode code points.
-
- <p>The range covers <code>unicode</code> to <code>unicode + range</code>,
- inclusive. It is an error if <code>unicode + range</code> is greater
- than <code>0xFFFF</code>.</p>
- */
- sal_uInt8 range;
-
- /**
- The start of the corresponding range of individual bytes.
-
- <p>It is an error if <code>byte + range</code> is greater than
- <code>0xFF</code>.</p>
- */
- sal_uInt8 byte;
-};
-
-/**
- Data to convert between BMP Unicode and a single-byte character set.
-
- <p>Only supports conversions where each legal unit from the single-byte
- character set has one or more mappings to individual BMP Unicode code points
- that are neither noncharacters nor surrogates.</p>
-
- @see rtl_textenc_convertSingleByteToBmpUnicode
- @see rtl_textenc_convertBmpUnicodeToSingleByte
- */
-struct BmpUnicodeToSingleByteConverterData {
- /**
- Mapping from the single-byte character set to BMP Unicode code points.
-
- <p>Illegal units from the single-byte character set are mapped to
- <code>0xFFFF</code>.</p>
- */
- sal_Unicode byteToUnicode[256];
-
- /**
- The number of Unicode-to-byte conversion ranges.
- */
- std::size_t unicodeToByteEntries;
-
- /**
- The array of Unicode-to-byte conversion ranges, sorted by increasing
- <code>unicode</code> values.
-
- <p>The ranges may not overlap.</p>
- */
- BmpUnicodeToSingleByteRange const * unicodeToByte;
-};
-
-} }
-
-/**
- Function to convert from a single-byte character set to BMP Unicode.
-
- @see ImplConvertToUnicodeProc
- */
-extern "C" sal_Size rtl_textenc_convertSingleByteToBmpUnicode(
- ImplTextConverterData const * data, void * context, sal_Char const * srcBuf,
- sal_Size srcBytes, sal_Unicode * destBuf, sal_Size destChars,
- sal_uInt32 flags, sal_uInt32 * info, sal_Size * srcCvtBytes);
-
-/**
- Function to convert from BMP Unicode to a single-byte character set.
-
- @see ImplConvertToTextProc
- */
-extern "C" sal_Size rtl_textenc_convertBmpUnicodeToSingleByte(
- ImplTextConverterData const * data, void * context,
- sal_Unicode const * srcBuf, sal_Size srcChars, sal_Char * destBuf,
- sal_Size destBytes, sal_uInt32 flags, sal_uInt32 * info,
- sal_Size * srcCvtChars);
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/generate/big5hkscs2001.pl b/sal/textenc/generate/big5hkscs2001.pl
deleted file mode 100644
index 26755653a..000000000
--- a/sal/textenc/generate/big5hkscs2001.pl
+++ /dev/null
@@ -1,806 +0,0 @@
-#!/usr/bin/perl
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-# The following files must be available in a ./input subdir:
-
-# <http://www.info.gov.hk/digital21/eng/hkscs/download/big5-iso.txt>
-
-# <http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT>:
-# "Unicode version: 1.1 Table version: 0.0d3 Date: 11 February 1994"
-# Only used to track Unicode characters that are mapped from both Big5 and
-# HKSCS.
-
-# <http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT>:
-# "Unicode version: 2.0 Table version: 2.01 Date: 1/7/2000"
-# Only used to track Unicode characters that are mapped from both CP950 and
-# HKSCS.
-
-$surrogates = 0; # set to 1 to allow mappings to Unicode beyond Plane 0
-
-$id = "Big5Hkscs2001";
-
-sub isValidUtf32
-{
- my $utf32 = $_[0];
- return $utf32 >= 0 && $utf32 <= 0x10FFFF
- && !($utf32 >= 0xD800 && $utf32 <= 0xDFFF)
- && !($utf32 >= 0xFDD0 && $utf32 <= 0xFDEF)
- && ($utf32 & 0xFFFF) < 0xFFFE;
-}
-
-sub printUtf32
-{
- my $utf32 = $_[0];
- return sprintf("U+%04X", $utf32);
-}
-
-sub isValidBig5
-{
- my $big5 = $_[0];
- my $big5_row = $big5 >> 8;
- my $big5_column = $big5 & 0xFF;
- return $big5_row >= 0x81 && $big5_row <= 0xFE
- && ($big5_column >= 0x40 && $big5_column <= 0x7E
- || $big5_column >= 0xA1 && $big5_column <= 0xFE);
-}
-
-sub printBig5
-{
- my $big5 = $_[0];
- return sprintf("%04X", $big5);
-}
-
-sub printStats
-{
- my $used = $_[0];
- my $space = $_[1];
- return sprintf("%d/%d bytes (%.1f%%)",
- $used,
- $space,
- $used * 100 / $space);
-}
-
-sub printSpaces
-{
- my $column_width = $_[0];
- my $columns_per_line = $_[1];
- my $end = $_[2];
- $output = "";
- for ($i = int($end / $columns_per_line) * $columns_per_line;
- $i < $end;
- ++$i)
- {
- for ($j = 0; $j < $column_width; ++$j)
- {
- $output = $output . " ";
- }
- }
- return $output;
-}
-
-sub addMapping
-{
- my $utf32 = $_[0];
- my $big5 = $_[1];
- my $comp = $_[2];
-
- $uni_plane = $utf32 >> 16;
- $uni_page = ($utf32 >> 8) & 0xFF;
- $uni_index = $utf32 & 0xFF;
-
- if (!defined($uni_plane_used[$uni_plane])
- || !defined($uni_page_used[$uni_plane][$uni_page])
- || !defined($uni_map[$uni_plane][$uni_page][$uni_index]))
- {
- $uni_map[$uni_plane][$uni_page][$uni_index] = $big5;
- $uni_plane_used[$uni_plane] = 1;
- $uni_page_used[$uni_plane][$uni_page] = 1;
- if ($comp != -1)
- {
- ++$compat[$comp];
- }
- }
- else
- {
- $big5_1 = $uni_map[$uni_plane][$uni_page][$uni_index];
- print "WARNING! Mapping ", printUtf32($utf32), " to ",
- printBig5($big5_1), ", NOT ", ($comp ? "compat " : ""),
- printBig5($big5), "\n";
- }
-}
-
-# Build mappings to track Unicode characters that are mapped from both Big5/
-# CP950 and HKSCS:
-{
- $filename = "BIG5.TXT";
- open IN, ("input/" . $filename) or die "Cannot read " . $filename;
- while (<IN>)
- {
- if (/(0x[0-9A-F][0-9A-F][0-9A-F][0-9A-F])[ \t]+(0x[0-9A-F]+)[ \t]+\#.*$/)
- {
- $big5 = oct($1);
- $utf32 = oct($2);
- isValidBig5($big5)
- or die "Bad Big5 char " . printBig5($big5);
- isValidUtf32($utf32)
- or die "Bad UTF32 char " . printUtf32($utf32);
- if ($utf32 != 0xFFFD)
- {
- if (defined($underlying_big5[$utf32]))
- {
- print "WARNING! In ", $filename, ", both ",
- printBig5($underlying_big5[$utf32]), " and ",
- printBig5($big5), " map to ", printUtf32($utf32),
- "\n";
- }
- else
- {
- $underlying_big5[$utf32] = $big5;
- }
- }
- }
- }
- close IN;
-
- $filename = "CP950.TXT";
- open IN, ("input/" . $filename) or die "Cannot read " . $filename;
- while (<IN>)
- {
- if (/(0x[0-9A-F][0-9A-F][0-9A-F][0-9A-F])[ \t]+(0x[0-9A-F]+)[ \t]+\#.*$/)
- {
- $big5 = oct($1);
- $utf32 = oct($2);
- isValidBig5($big5)
- or die "Bad Big5 char " . printBig5($big5);
- isValidUtf32($utf32)
- or die "Bad UTF32 char " . printUtf32($utf32);
- if (defined($underlying_cp950[$utf32]))
- {
- print "WARNING! In ", $filename, ", both ",
- printBig5($underlying_cp950[$utf32]), " and ",
- printBig5($big5), " map to ", printUtf32($utf32), "\n";
- }
- else
- {
- $underlying_cp950[$utf32] = $big5;
- }
- }
- }
- close IN;
-}
-
-# The following are mapped by the underlying RTL_TEXTENCODING_BIG5 to some
-# nonstandard Unicode points, so they are explicitly mentioned here to map
-# to the standard Unicode PUA points. (In the other direction, the unofficial
-# mappings from Unicode to RTL_TEXTENCODING_BIG5 C6A1--C7FE are harmless,
-# since all Unicode characters involved are already covered by the official
-# Big5-HKSCS mappings.)
-$big5_map[0xC6][0xCF] = 0xF6E0; addMapping(0xF6E0, 0xC6CF, -1);
-$big5_map[0xC6][0xD3] = 0xF6E4; addMapping(0xF6E4, 0xC6D3, -1);
-$big5_map[0xC6][0xD5] = 0xF6E6; addMapping(0xF6E6, 0xC6D5, -1);
-$big5_map[0xC6][0xD7] = 0xF6E8; addMapping(0xF6E8, 0xC6D7, -1);
-$big5_map[0xC6][0xDE] = 0xF6EF; addMapping(0xF6EF, 0xC6DE, -1);
-$big5_map[0xC6][0xDF] = 0xF6F0; addMapping(0xF6F0, 0xC6DF, -1);
-
-# The following implements the mapping of Big5-HKSCS compatibility points
-# (GCCS characters unified with other HKSCS characters) to Unicode. In the
-# other direction, characters from Unicode's PUA will map to these Big5-HKSCS
-# compatibility points. (See the first list in <http://www.info.gov.hk/
-# digital21/eng/hkscs/download/big5cmp.txt>.)
-$big5_map[0x8E][0x69] = 0x7BB8;
-$big5_map[0x8E][0x6F] = 0x7C06;
-$big5_map[0x8E][0x7E] = 0x7CCE;
-$big5_map[0x8E][0xAB] = 0x7DD2;
-$big5_map[0x8E][0xB4] = 0x7E1D;
-$big5_map[0x8E][0xCD] = 0x8005;
-$big5_map[0x8E][0xD0] = 0x8028;
-$big5_map[0x8F][0x57] = 0x83C1;
-$big5_map[0x8F][0x69] = 0x84A8;
-$big5_map[0x8F][0x6E] = 0x840F;
-$big5_map[0x8F][0xCB] = 0x89A6;
-$big5_map[0x8F][0xCC] = 0x89A9;
-$big5_map[0x8F][0xFE] = 0x8D77;
-$big5_map[0x90][0x6D] = 0x90FD;
-$big5_map[0x90][0x7A] = 0x92B9;
-$big5_map[0x90][0xDC] = 0x975C;
-$big5_map[0x90][0xF1] = 0x97FF;
-$big5_map[0x91][0xBF] = 0x9F16;
-$big5_map[0x92][0x44] = 0x8503;
-$big5_map[0x92][0xAF] = 0x5159;
-$big5_map[0x92][0xB0] = 0x515B;
-$big5_map[0x92][0xB1] = 0x515D;
-$big5_map[0x92][0xB2] = 0x515E;
-$big5_map[0x92][0xC8] = 0x936E;
-$big5_map[0x92][0xD1] = 0x7479;
-$big5_map[0x94][0x47] = 0x6D67;
-$big5_map[0x94][0xCA] = 0x799B;
-$big5_map[0x95][0xD9] = 0x9097;
-$big5_map[0x96][0x44] = 0x975D;
-$big5_map[0x96][0xED] = 0x701E;
-$big5_map[0x96][0xFC] = 0x5B28;
-$big5_map[0x9B][0x76] = 0x7201;
-$big5_map[0x9B][0x78] = 0x77D7;
-$big5_map[0x9B][0x7B] = 0x7E87;
-$big5_map[0x9B][0xC6] = 0x99D6;
-$big5_map[0x9B][0xDE] = 0x91D4;
-$big5_map[0x9B][0xEC] = 0x60DE;
-$big5_map[0x9B][0xF6] = 0x6FB6;
-$big5_map[0x9C][0x42] = 0x8F36;
-$big5_map[0x9C][0x53] = 0x4FBB;
-$big5_map[0x9C][0x62] = 0x71DF;
-$big5_map[0x9C][0x68] = 0x9104;
-$big5_map[0x9C][0x6B] = 0x9DF0;
-$big5_map[0x9C][0x77] = 0x83CF;
-$big5_map[0x9C][0xBC] = 0x5C10;
-$big5_map[0x9C][0xBD] = 0x79E3;
-$big5_map[0x9C][0xD0] = 0x5A67;
-$big5_map[0x9D][0x57] = 0x8F0B;
-$big5_map[0x9D][0x5A] = 0x7B51;
-$big5_map[0x9D][0xC4] = 0x62D0;
-$big5_map[0x9E][0xA9] = 0x6062;
-$big5_map[0x9E][0xEF] = 0x75F9;
-$big5_map[0x9E][0xFD] = 0x6C4A;
-$big5_map[0x9F][0x60] = 0x9B2E;
-$big5_map[0x9F][0x66] = 0x9F17;
-$big5_map[0x9F][0xCB] = 0x50ED;
-$big5_map[0x9F][0xD8] = 0x5F0C;
-$big5_map[0xA0][0x63] = 0x880F;
-$big5_map[0xA0][0x77] = 0x62CE;
-$big5_map[0xA0][0xD5] = 0x7468;
-$big5_map[0xA0][0xDF] = 0x7162;
-$big5_map[0xA0][0xE4] = 0x7250;
-$big5_map[0xFA][0x5F] = 0x5029;
-$big5_map[0xFA][0x66] = 0x507D;
-$big5_map[0xFA][0xBD] = 0x5305;
-$big5_map[0xFA][0xC5] = 0x5344;
-$big5_map[0xFA][0xD5] = 0x537F;
-$big5_map[0xFB][0x48] = 0x5605;
-$big5_map[0xFB][0xB8] = 0x5A77;
-$big5_map[0xFB][0xF3] = 0x5E75;
-$big5_map[0xFB][0xF9] = 0x5ED0;
-$big5_map[0xFC][0x4F] = 0x5F58;
-$big5_map[0xFC][0x6C] = 0x60A4;
-$big5_map[0xFC][0xB9] = 0x6490;
-$big5_map[0xFC][0xE2] = 0x6674;
-$big5_map[0xFC][0xF1] = 0x675E;
-$big5_map[0xFD][0xB7] = 0x6C9C;
-$big5_map[0xFD][0xB8] = 0x6E1D;
-$big5_map[0xFD][0xBB] = 0x6E2F;
-$big5_map[0xFD][0xF1] = 0x716E;
-$big5_map[0xFE][0x52] = 0x732A;
-$big5_map[0xFE][0x6F] = 0x745C;
-$big5_map[0xFE][0xAA] = 0x74E9;
-$big5_map[0xFE][0xDD] = 0x7809;
-
-$pua = 0;
-$compat[0] = 0; # 1993
-$compat[1] = 0; # 2000
-$compat[2] = 0; # 2001
-
-$filename = "big5-iso.txt";
-open IN, ("input/" . $filename) or die "Cannot read " . $filename;
-while (<IN>)
-{
- if (/^([0-9A-F]+) +([0-9A-F]+) +([0-9A-F]+) +([0-9A-F]+)$/)
- {
- $big5 = oct("0x" . $1);
- $utf32_1993 = oct("0x" . $2);
- $utf32_2000 = oct("0x" . $3);
- $utf32_2001 = oct("0x" . $4);
- isValidBig5($big5)
- or die "Bad Big5 char " . printBig5($big5);
- isValidUtf32($utf32_1993)
- or die "Bad UTF32 char " . printUtf32($utf32_1993);
- isValidUtf32($utf32_2000)
- or die "Bad UTF32 char " . printUtf32($utf32_2000);
- isValidUtf32($utf32_2001)
- or die "Bad UTF32 char " . printUtf32($utf32_2001);
-
- $utf32 = $surrogates ? $utf32_2001 : $utf32_2000;
-
- if (defined($underlying_big5[$utf32])
- || defined($underlying_cp950[$utf32]))
- {
- if (defined($underlying_big5[$utf32])
- && defined($underlying_cp950[$utf32])
- && $underlying_big5[$utf32] == $underlying_cp950[$utf32]
- && $underlying_big5[$utf32] == $big5
- ||
- defined($underlying_big5[$utf32])
- && !defined($underlying_cp950[$utf32])
- && $underlying_big5[$utf32] == $big5
- ||
- !defined($underlying_big5[$utf32])
- && defined($underlying_cp950[$utf32])
- && $underlying_cp950[$utf32] == $big5)
- {
- # ignore
-
- # Depending on real underlying mapping (cf.
- # ../convertbig5hkscs.tab), it would be possible to save some
- # table space by dropping those HKSCS code points that are
- # already covered by the underlying mapping.
- }
- else
- {
- print "XXX mapping underlying";
- if (defined($underlying_big5[$utf32])
- && defined($underlying_cp950[$utf32])
- && $underlying_big5[$utf32] == $underlying_cp950[$utf32])
- {
- print " Big5/CP950 ", printBig5($underlying_big5[$utf32]);
- }
- else
- {
- if (defined($underlying_big5[$utf32]))
- {
- print " Big5 ", printBig5($underlying_big5[$utf32]);
- }
- if (defined($underlying_cp950[$utf32]))
- {
- print " CP950 ", printBig5($underlying_cp950[$utf32]);
- }
- }
- print " and HKSCS ", printBig5($big5), " to ",
- printUtf32($utf32), "\n";
- }
- }
-
- if ($utf32 >= 0xE000 && $utf32 <= 0xF8FF)
- {
- ++$pua;
- }
-
- $big5_row = $big5 >> 8;
- $big5_column = $big5 & 0xFF;
- if (defined($big5_map[$big5_row][$big5_column]))
- {
- die "Bad Big5 mapping " . printBig5($big5);
- }
- $big5_map[$big5_row][$big5_column] = $utf32;
-
- addMapping($utf32, $big5, -1);
-
- if ($utf32_2001 != $utf32)
- {
- addMapping($utf32_2001, $big5, 2);
- }
- if ($utf32_2000 != $utf32 && $utf32_2000 != $utf32_2001)
- {
- addMapping($utf32_2000, $big5, 1);
- }
- if ($utf32_1993 != $utf32 && $utf32_1993 != $utf32_2000
- && $utf32_1993 != $utf32_2001)
- {
- addMapping($utf32_1993, $big5, 0);
- }
- }
-}
-close IN;
-
-print $pua, " mappings to PUA\n";
-print $compat[0], " 1993 compatibility mappings\n" if ($compat[0] != 0);
-print $compat[1], " 2000 compatibility mappings\n" if ($compat[1] != 0);
-print $compat[2], " 2001 compatibility mappings\n" if ($compat[2] != 0);
-
-if (defined($uni_plane_used[0]) && defined($uni_page_used[0][0]))
-{
- for ($utf32 = 0; $utf32 <= 0x7F; ++$utf32)
- {
- if (defined($uni_map[0][0][$uni_index]))
- {
- $big5 = $uni_map[0][0][$utf32];
- die "Mapping " . printUtf32($utf32) . " to " . printBig5($big5);
- }
- }
-}
-
-$filename = lc($id) . ".tab";
-open OUT, ("> " . $filename) or die "Cannot write " . $filename;
-
-{
- $filename = lc($id). ".pl";
- open IN, $filename or die "Cannot read ". $filename;
- $first = 1;
- while (<IN>)
- {
- if (/^\#!.*$/)
- {
- }
- elsif (/^\#(\*.*)$/)
- {
- if ($first == 1)
- {
- print OUT "/", $1, "\n";
- $first = 0;
- }
- else
- {
- print OUT " ", substr($1, 0, length($1) - 1), "/\n";
- }
- }
- elsif (/^\# (.*)$/)
- {
- print OUT " *", $1, "\n";
- }
- elsif (/^\#(.*)$/)
- {
- print OUT " *", $1, "\n";
- }
- else
- {
- goto done;
- }
- }
- done:
-}
-
-print OUT "\n",
- "#ifndef _SAL_TYPES_H_\n",
- "#include \"sal/types.h\"\n",
- "#endif\n",
- "\n";
-
-print OUT "static sal_uInt16 const aImpl", $id, "ToUnicodeData[] = {\n";
-$big5_data_index = 0;
-$big5_rows = 0;
-$big5_chars = 0;
-for ($big5_row = 0; $big5_row <= 255; ++$big5_row)
-{
- $big5_row_first = -1;
- for ($big5_column = 0; $big5_column <= 255; ++$big5_column)
- {
- if (defined($big5_map[$big5_row][$big5_column]))
- {
- if ($big5_row_first == -1)
- {
- $big5_row_first = $big5_column;
- }
- $big5_row_last = $big5_column;
- }
- }
- if ($big5_row_first != -1)
- {
- $big5_data_offsets[$big5_row] = $big5_data_index;
- ++$big5_rows;
- print OUT " /* row ", $big5_row, " */\n";
-
- $big5_row_surrogates_first = -1;
- $big5_row_chars = 0;
- $big5_row_surrogates = 0;
-
- print OUT " ", $big5_row_first, " | (", $big5_row_last,
- " << 8), /* first, last */\n";
- ++$big5_data_index;
-
- print OUT " ", printSpaces(7, 10, $big5_row_first);
- $bol = 0;
- for ($big5_column = $big5_row_first;
- $big5_column <= $big5_row_last;
- ++$big5_column)
- {
- if ($bol == 1)
- {
- print OUT " ";
- $bol = 0;
- }
- if (defined($big5_map[$big5_row][$big5_column]))
- {
- $utf32 = $big5_map[$big5_row][$big5_column];
- ++$big5_row_chars;
- if ($utf32 <= 0xFFFF)
- {
- printf OUT "0x%04X,", $utf32;
- }
- else
- {
- ++$big5_row_surrogates;
- printf OUT "0x%04X,",
- (0xD800 | (($utf32 - 0x10000) >> 10));
- if ($big5_row_surrogates_first == -1)
- {
- $big5_row_surrogates_first = $big5_column;
- }
- $big5_row_surrogates_last = $big5_column;
- }
- }
- else
- {
- printf OUT "0xffff,";
- }
- ++$big5_data_index;
- if ($big5_column % 10 == 9)
- {
- print OUT "\n";
- $bol = 1;
- }
- }
- if ($bol == 0)
- {
- print OUT "\n";
- }
-
- if ($big5_row_surrogates_first != -1)
- {
- print OUT " ", $big5_row_surrogates_first,
- ", /* first low-surrogate */\n";
- ++$big5_data_index;
-
- print OUT " ", printSpaces(7, 10, $big5_row_surrogates_first);
- $bol = 0;
- for ($big5_column = $big5_row_surrogates_first;
- $big5_column <= $big5_row_surrogates_last;
- ++$big5_column)
- {
- if ($bol == 1)
- {
- print OUT " ";
- $bol = 0;
- }
- $utf32 = 0;
- if (defined($big5_map[$big5_row][$big5_column]))
- {
- $utf32 = $big5_map[$big5_row][$big5_column];
- }
- if ($utf32 <= 0xFFFF)
- {
- printf OUT " 0,";
- }
- else
- {
- printf OUT "0x%04X,",
- (0xDC00 | (($utf32 - 0x10000) & 0x3FF));
- }
- ++$big5_data_index;
- if ($big5_column % 10 == 9)
- {
- print OUT "\n";
- $bol = 1;
- }
- }
- if ($bol == 0)
- {
- print OUT "\n";
- }
- }
-
- $big5_chars += $big5_row_chars;
- $big5_data_space[$big5_row]
- = ($big5_data_index - $big5_data_offsets[$big5_row]) * 2;
- $big5_data_used[$big5_row]
- = (1 + $big5_row_chars + ($big5_row_surrogates == 0 ?
- 0 : 1 + $big5_row_surrogates))
- * 2;
- }
- else
- {
- print OUT " /* row ", $big5_row, ": --- */\n";
- $big5_data_offsets[$big5_row] = -1;
- }
-}
-print OUT "};\n\n";
-print "big5 rows = ", $big5_rows, ", chars = ", $big5_chars, "\n";
-
-print OUT "static sal_Int32 const aImpl", $id, "ToUnicodeRowOffsets[] = {\n";
-$big5_rowoffsets_used = 0;
-for ($big5_row = 0; $big5_row <= 255; ++$big5_row)
-{
- if ($big5_data_offsets[$big5_row] == -1)
- {
- print OUT " -1, /* row ", $big5_row, " */\n";
- }
- else
- {
- print OUT " ",
- $big5_data_offsets[$big5_row],
- ", /* row ",
- $big5_row,
- "; ",
- printStats($big5_data_used[$big5_row],
- $big5_data_space[$big5_row]),
- " */\n";
- $big5_rowoffsets_used += 4;
- }
-}
-print OUT "};\n\n";
-
-print OUT "static sal_uInt16 const aImplUnicodeTo", $id, "Data[] = {\n";
-$uni_data_index = 0;
-for ($uni_plane = 0; $uni_plane <= 16; ++$uni_plane)
-{
- if (defined($uni_plane_used[$uni_plane]))
- {
- for ($uni_page = 0; $uni_page <= 255; ++$uni_page)
- {
- if (defined($uni_page_used[$uni_plane][$uni_page]))
- {
- $uni_data_offsets[$uni_plane][$uni_page] = $uni_data_index;
- print OUT " /* plane ", $uni_plane, ", page ", $uni_page,
- " */\n";
-
- $uni_page_first = -1;
- for ($uni_index = 0; $uni_index <= 255; ++$uni_index)
- {
- if (defined($uni_map[$uni_plane][$uni_page][$uni_index]))
- {
- if ($uni_page_first == -1)
- {
- $uni_page_first = $uni_index;
- }
- $uni_page_last = $uni_index;
- }
- }
-
- $uni_data_used[$uni_plane][$uni_page] = 0;
-
- print OUT " ", $uni_page_first, " | (", $uni_page_last,
- " << 8), /* first, last */\n";
- ++$uni_data_index;
- $uni_data_used[$uni_plane][$uni_page] += 2;
-
- print OUT " ", printSpaces(7, 10, $uni_page_first);
- $bol = 0;
- for ($uni_index = $uni_page_first;
- $uni_index <= $uni_page_last;
- ++$uni_index)
- {
- if ($bol == 1)
- {
- print OUT " ";
- $bol = 0;
- }
- if (defined($uni_map[$uni_plane][$uni_page][$uni_index]))
- {
- $big5 = $uni_map[$uni_plane][$uni_page][$uni_index];
- printf OUT "0x%04X,", $big5;
- $uni_data_used[$uni_plane][$uni_page] += 2;
- }
- else
- {
- print OUT " 0,";
- }
- ++$uni_data_index;
- if ($uni_index % 10 == 9)
- {
- print OUT "\n";
- $bol = 1;
- }
- }
- if ($bol == 0)
- {
- print OUT "\n";
- }
-
- $uni_data_space[$uni_plane][$uni_page]
- = ($uni_data_index
- - $uni_data_offsets[$uni_plane][$uni_page]) * 2;
- }
- else
- {
- $uni_data_offsets[$uni_plane][$uni_page] = -1;
- print OUT " /* plane ", $uni_plane, ", page ", $uni_page,
- ": --- */\n";
- }
- }
- }
- else
- {
- print OUT " /* plane ", $uni_plane, ": --- */\n";
- }
-}
-print OUT "};\n\n";
-
-print OUT "static sal_Int32 const aImplUnicodeTo", $id, "PageOffsets[] = {\n";
-for ($uni_plane = 0; $uni_plane <= 16; ++$uni_plane)
-{
- if (defined($uni_plane_used[$uni_plane]))
- {
- $uni_pageoffsets_used[$uni_plane] = 0;
- $uni_data_used_sum[$uni_plane] = 0;
- $uni_data_space_sum[$uni_plane] = 0;
- for ($uni_page = 0; $uni_page <= 255; ++$uni_page)
- {
- $offset = $uni_data_offsets[$uni_plane][$uni_page];
- if ($offset == -1)
- {
- print OUT " -1, /* plane ",
- $uni_plane,
- ", page ",
- $uni_page,
- " */\n";
- }
- else
- {
- print OUT " ",
- $offset,
- ", /* plane ",
- $uni_plane,
- ", page ",
- $uni_page,
- "; ",
- printStats($uni_data_used[$uni_plane][$uni_page],
- $uni_data_space[$uni_plane][$uni_page]),
- " */\n";
- $uni_pageoffsets_used[$uni_plane] += 4;
- $uni_data_used_sum[$uni_plane]
- += $uni_data_used[$uni_plane][$uni_page];
- $uni_data_space_sum[$uni_plane]
- += $uni_data_space[$uni_plane][$uni_page];
- }
- }
- }
- else
- {
- print OUT " /* plane ", $uni_plane, ": --- */\n";
- }
-}
-print OUT "};\n\n";
-
-print OUT "static sal_Int32 const aImplUnicodeTo",
- $id,
- "PlaneOffsets[] = {\n";
-$uni_page_offset = 0;
-$uni_planeoffsets_used = 0;
-$uni_pageoffsets_used_sum = 0;
-$uni_pageoffsets_space_sum = 0;
-$uni_data_used_sum2 = 0;
-$uni_data_space_sum2 = 0;
-for ($uni_plane = 0; $uni_plane <= 16; ++$uni_plane)
-{
- if (defined ($uni_plane_used[$uni_plane]))
- {
- print OUT " ",
- $uni_page_offset++,
- " * 256, /* plane ",
- $uni_plane,
- "; ",
- printStats($uni_pageoffsets_used[$uni_plane], 256 * 4),
- ", ",
- printStats($uni_data_used_sum[$uni_plane],
- $uni_data_space_sum[$uni_plane]),
- " */\n";
- $uni_planeoffsets_used += 4;
- $uni_pageoffsets_used_sum += $uni_pageoffsets_used[$uni_plane];
- $uni_pageoffsets_space_sum += 256 * 4;
- $uni_data_used_sum2 += $uni_data_used_sum[$uni_plane];
- $uni_data_space_sum2 += $uni_data_space_sum[$uni_plane];
- }
- else
- {
- print OUT " -1, /* plane ", $uni_plane, " */\n";
- }
-}
-print OUT " /* ",
- printStats($uni_planeoffsets_used, 17 * 4),
- ", ",
- printStats($uni_pageoffsets_used_sum, $uni_pageoffsets_space_sum),
- ", ",
- printStats($uni_data_used_sum2, $uni_data_space_sum2),
- " */\n};\n";
-
-close OUT;
diff --git a/sal/textenc/generate/big5hkscs2001.tab b/sal/textenc/generate/big5hkscs2001.tab
deleted file mode 100644
index 6a2fbcdc2..000000000
--- a/sal/textenc/generate/big5hkscs2001.tab
+++ /dev/null
@@ -1,8824 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SAL_TYPES_H_
-#include "sal/types.h"
-#endif
-
-static sal_uInt16 const aImplBig5Hkscs2001ToUnicodeData[] = {
- /* row 0: --- */
- /* row 1: --- */
- /* row 2: --- */
- /* row 3: --- */
- /* row 4: --- */
- /* row 5: --- */
- /* row 6: --- */
- /* row 7: --- */
- /* row 8: --- */
- /* row 9: --- */
- /* row 10: --- */
- /* row 11: --- */
- /* row 12: --- */
- /* row 13: --- */
- /* row 14: --- */
- /* row 15: --- */
- /* row 16: --- */
- /* row 17: --- */
- /* row 18: --- */
- /* row 19: --- */
- /* row 20: --- */
- /* row 21: --- */
- /* row 22: --- */
- /* row 23: --- */
- /* row 24: --- */
- /* row 25: --- */
- /* row 26: --- */
- /* row 27: --- */
- /* row 28: --- */
- /* row 29: --- */
- /* row 30: --- */
- /* row 31: --- */
- /* row 32: --- */
- /* row 33: --- */
- /* row 34: --- */
- /* row 35: --- */
- /* row 36: --- */
- /* row 37: --- */
- /* row 38: --- */
- /* row 39: --- */
- /* row 40: --- */
- /* row 41: --- */
- /* row 42: --- */
- /* row 43: --- */
- /* row 44: --- */
- /* row 45: --- */
- /* row 46: --- */
- /* row 47: --- */
- /* row 48: --- */
- /* row 49: --- */
- /* row 50: --- */
- /* row 51: --- */
- /* row 52: --- */
- /* row 53: --- */
- /* row 54: --- */
- /* row 55: --- */
- /* row 56: --- */
- /* row 57: --- */
- /* row 58: --- */
- /* row 59: --- */
- /* row 60: --- */
- /* row 61: --- */
- /* row 62: --- */
- /* row 63: --- */
- /* row 64: --- */
- /* row 65: --- */
- /* row 66: --- */
- /* row 67: --- */
- /* row 68: --- */
- /* row 69: --- */
- /* row 70: --- */
- /* row 71: --- */
- /* row 72: --- */
- /* row 73: --- */
- /* row 74: --- */
- /* row 75: --- */
- /* row 76: --- */
- /* row 77: --- */
- /* row 78: --- */
- /* row 79: --- */
- /* row 80: --- */
- /* row 81: --- */
- /* row 82: --- */
- /* row 83: --- */
- /* row 84: --- */
- /* row 85: --- */
- /* row 86: --- */
- /* row 87: --- */
- /* row 88: --- */
- /* row 89: --- */
- /* row 90: --- */
- /* row 91: --- */
- /* row 92: --- */
- /* row 93: --- */
- /* row 94: --- */
- /* row 95: --- */
- /* row 96: --- */
- /* row 97: --- */
- /* row 98: --- */
- /* row 99: --- */
- /* row 100: --- */
- /* row 101: --- */
- /* row 102: --- */
- /* row 103: --- */
- /* row 104: --- */
- /* row 105: --- */
- /* row 106: --- */
- /* row 107: --- */
- /* row 108: --- */
- /* row 109: --- */
- /* row 110: --- */
- /* row 111: --- */
- /* row 112: --- */
- /* row 113: --- */
- /* row 114: --- */
- /* row 115: --- */
- /* row 116: --- */
- /* row 117: --- */
- /* row 118: --- */
- /* row 119: --- */
- /* row 120: --- */
- /* row 121: --- */
- /* row 122: --- */
- /* row 123: --- */
- /* row 124: --- */
- /* row 125: --- */
- /* row 126: --- */
- /* row 127: --- */
- /* row 128: --- */
- /* row 129: --- */
- /* row 130: --- */
- /* row 131: --- */
- /* row 132: --- */
- /* row 133: --- */
- /* row 134: --- */
- /* row 135: --- */
- /* row 136 */
- 64 | (170 << 8), /* first, last */
- 0xF303,0xF304,0xF305,0xF306,0xF307,0xF308,
- 0xF309,0xF30A,0xF30B,0xF30C,0xF30D,0xF30E,0xF30F,0xF310,0xF311,0xF312,
- 0xF313,0xF314,0xF315,0xF316,0xF317,0xF318,0x0100,0x00C1,0x01CD,0x00C0,
- 0x0112,0x00C9,0x011A,0x00C8,0x014C,0x00D3,0x01D1,0x00D2,0xF325,0x1EBE,
- 0xF327,0x1EC0,0x00CA,0x0101,0x00E1,0x01CE,0x00E0,0x0251,0x0113,0x00E9,
- 0x011B,0x00E8,0x012B,0x00ED,0x01D0,0x00EC,0x014D,0x00F3,0x01D2,0x00F2,
- 0x016B,0x00FA,0x01D4,0x00F9,0x01D6,0x01D8,0x01DA,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0x01DC,0x00FC,0xF344,0x1EBF,0xF346,0x1EC1,0x00EA,0x0261,0xF34A,
- 0xF34B,
- /* row 137 */
- 64 | (254 << 8), /* first, last */
- 0xF3A0,0xF3A1,0xffff,0x650A,0xffff,0xffff,
- 0x4E3D,0x6EDD,0x9D4E,0x91DF,0xffff,0xffff,0xF3AC,0x6491,0x4F1A,0x4F28,
- 0x4FA8,0x5156,0x5174,0x519C,0x51E4,0x52A1,0x52A8,0x533B,0x534E,0x53D1,
- 0x53D8,0x56E2,0x58F0,0x5904,0x5907,0x5932,0x5934,0x5B66,0x5B9E,0x5B9F,
- 0x5C9A,0x5E86,0x603B,0x6589,0x67FE,0x6804,0x6865,0x6D4E,0x70BC,0x7535,
- 0x7EA4,0x7EAC,0x7EBA,0x7EC7,0x7ECF,0x7EDF,0x7F06,0x7F37,0x827A,0x82CF,
- 0x836F,0x89C6,0x8BBE,0x8BE2,0x8F66,0x8F67,0x8F6E,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0x7411,0x7CFC,0x7DCD,0x6946,0x7AC9,0x5227,0xffff,0xffff,0xffff,
- 0xffff,0x918C,0x78B8,0x915E,0x80BC,0xffff,0x8D0B,0x80F6,0xF3F0,0xffff,
- 0xffff,0x809F,0x9EC7,0x4CCD,0x9DC9,0x9E0C,0x4C3E,0xF3F9,0xF3FA,0x9E0A,
- 0xF3FC,0x35C1,0xffff,0x6E9A,0x823E,0x7519,0xffff,0x4911,0x9A6C,0x9A8F,
- 0x9F99,0x7987,0xF408,0xF409,0xF40A,0xF40B,0x4E24,0x4E81,0x4E80,0x4E87,
- 0x4EBF,0x4EEB,0x4F37,0x344C,0x4FBD,0x3E48,0x5003,0x5088,0x347D,0x3493,
- 0x34A5,0x5186,0x5905,0x51DB,0x51FC,0x5205,0x4E89,0x5279,0x5290,0x5327,
- 0x35C7,0x53A9,0x3551,0x53B0,0x3553,0x53C2,0x5423,0x356D,0x3572,0x3681,
- 0x5493,0x54A3,0x54B4,0x54B9,0x54D0,0x54EF,0x5518,0x5523,0x5528,0x3598,
- 0x553F,0x35A5,0x35BF,0x55D7,0x35C5,
- /* row 138 */
- 64 | (254 << 8), /* first, last */
- 0xF43D,0x5525,0xffff,0xF440,0xF441,0xF442,
- 0x5590,0xF444,0x39EC,0xF446,0x8E46,0xF448,0xF449,0x4053,0xF44B,0x777A,
- 0xF44D,0x3A34,0x47D5,0xF450,0xF451,0xF452,0x64DD,0xF454,0xF455,0xF456,
- 0xF457,0x648D,0x8E7E,0xF45A,0xF45B,0xF45C,0xF45D,0xF45E,0xF45F,0xffff,
- 0xF461,0xF462,0xF463,0x47F4,0xF465,0xF466,0x9AB2,0x3A67,0xF469,0x3FED,
- 0x3506,0xF46C,0xF46D,0xF46E,0xF46F,0x9D6E,0x9815,0xffff,0x43D9,0xF474,
- 0x64B4,0x54E3,0xF477,0xF478,0xF479,0x39FB,0xF47B,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xF47C,0xF47D,0xF47E,0x64EA,0xF480,0xF481,0x8E68,0xF483,0xF484,
- 0xF485,0xffff,0x480B,0xF488,0x3FFA,0x5873,0xF48B,0xffff,0xF48D,0xF48E,
- 0xF48F,0xF490,0xF491,0x5579,0x40BB,0x43BA,0xffff,0x4AB4,0xF497,0xF498,
- 0x81AA,0x98F5,0xF49B,0x6379,0x39FE,0xF49E,0x8DC0,0x56A1,0x647C,0x3E43,
- 0xffff,0xF4A4,0xF4A5,0xF4A6,0xF4A7,0xffff,0xF4A9,0xF4AA,0x3992,0x3A06,
- 0xF4AD,0x3578,0xF4AF,0xF4B0,0x5652,0xF4B2,0xF4B3,0xF4B4,0x34BC,0x6C3D,
- 0xF4B7,0xffff,0xffff,0xF4BA,0xF4BB,0xF4BC,0xF4BD,0xF4BE,0xF4BF,0xF4C0,
- 0xF4C1,0x7F93,0xF4C3,0xF4C4,0xF4C5,0x35FB,0xF4C7,0xF4C8,0xF4C9,0xF4CA,
- 0x3F93,0xF4CC,0xF4CD,0xF4CE,0xF4CF,0xffff,0xF4D1,0xF4D2,0xF4D3,0xF4D4,
- 0xF4D5,0x3FF9,0xF4D7,0x6432,0xF4D9,
- /* row 139 */
- 64 | (253 << 8), /* first, last */
- 0xF4DA,0xF4DB,0xF4DC,0xF4DD,0xF4DE,0xF4DF,
- 0xF4E0,0x3A18,0xF4E2,0xF4E3,0xF4E4,0xF4E5,0xF4E6,0xF4E7,0xF4E8,0xF4E9,
- 0x95AA,0x54CC,0x82C4,0x55B9,0xffff,0xF4EF,0x9C26,0x9AB6,0xF4F2,0xF4F3,
- 0x7140,0x816D,0x80EC,0x5C1C,0xF4F8,0x8134,0x3797,0x535F,0xF4FC,0x91B6,
- 0xF4FE,0xF4FF,0xF500,0xF501,0x35DD,0xF503,0x3609,0xF505,0x56AF,0xF507,
- 0xF508,0xF509,0xF50A,0xF50B,0xF50C,0xF50D,0xF50E,0xF50F,0xF510,0xF511,
- 0x5A54,0xF513,0xF514,0xF515,0xF516,0x579C,0xF518,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xF519,0xF51A,0xF51B,0xF51C,0xF51D,0x3703,0xF51F,0xF520,0xF521,
- 0xF522,0xF523,0xF524,0xF525,0xF526,0x5899,0x5268,0x361A,0xF52A,0x7BB2,
- 0x5B68,0x4800,0x4B2C,0x9F27,0x49E7,0x9C1F,0x9B8D,0xF533,0xF534,0x55FB,
- 0x35F2,0x5689,0x4E28,0x5902,0xF53A,0xF53B,0x9751,0xF53D,0x4E5B,0x4EBB,
- 0x353E,0x5C23,0x5F51,0x5FC4,0x38FA,0x624C,0x6535,0x6B7A,0x6C35,0x6C3A,
- 0x706C,0x722B,0x4E2C,0x72AD,0xF54E,0x7F52,0x793B,0x7CF9,0x7F53,0xF553,
- 0x34C1,0xffff,0xF556,0x8002,0x8080,0xF559,0xF55A,0x535D,0x8864,0x89C1,
- 0xF55E,0x8BA0,0x8D1D,0x9485,0x9578,0x957F,0x95E8,0xF565,0x97E6,0x9875,
- 0x98CE,0x98DE,0x9963,0xF56B,0x9C7C,0x9E1F,0x9EC4,0x6B6F,0xF907,0x4E37,
- 0xF572,0x961D,0x6237,0x94A2,
- /* row 140 */
- 64 | (220 << 8), /* first, last */
- 0x503B,0x6DFE,0xF579,0xF57A,0x3DC9,0x888F,
- 0xF57D,0x7077,0x5CF5,0x4B20,0xF581,0x3559,0xF583,0x6122,0xF585,0x8FA7,
- 0x91F6,0x7191,0x6719,0x73BA,0xF58B,0xF58C,0x3C8B,0xF58E,0x4B10,0x78E4,
- 0x7402,0x51AE,0xF593,0x4009,0x6A63,0xF596,0x4223,0x860F,0xffff,0x7A2A,
- 0xF59B,0xF59C,0x9755,0x704D,0x5324,0xF5A0,0x93F4,0x76D9,0xF5A3,0xF5A4,
- 0x77DD,0x4EA3,0x4FF0,0x50BC,0x4E2F,0x4F17,0xF5AB,0x5434,0x7D8B,0x5892,
- 0x58D0,0xF5B0,0x5E92,0x5E99,0x5FC2,0xF5B4,0x658B,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xF5B6,0x6919,0x6A43,0xF5B9,0x6CFF,0xffff,0x7200,0xF5BD,0x738C,
- 0x3EDB,0xF5C0,0x5B15,0x74B9,0x8B83,0xF5C4,0xF5C5,0x7A93,0x7BEC,0x7CC3,
- 0x7E6C,0x82F8,0x8597,0xF5CC,0x8890,0xF5CE,0x8EB9,0xF5D0,0x8FCF,0x855F,
- 0x99E0,0x9221,0xF5D5,0xF5D6,0xF5D7,0x4071,0x42A2,0x5A1A,0xffff,0xffff,
- 0xffff,0x9868,0x676B,0x4276,0x573D,0xffff,0x85D6,0xF5E4,0x82BF,0xF5E6,
- 0x4C81,0xF5E8,0x5D7B,0xF5EA,0xF5EB,0xF5EC,0xF5ED,0x5B96,0xF5EF,0xffff,
- 0x7E5B,
- /* row 141 */
- 96 | (254 << 8), /* first, last */
- 0x5D3E,0x5D48,0x5D56,0x3DFC,
- 0x380F,0x5DA4,0x5DB9,0x3820,0x3838,0x5E42,0x5EBD,0x5F25,0x5F83,0x3908,
- 0x3914,0x393F,0x394D,0x60D7,0x613D,0x5CE5,0x3989,0x61B7,0x61B9,0x61CF,
- 0x39B8,0x622C,0x6290,0x62E5,0x6318,0x39F8,0x56B1,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0x3A03,0x63E2,0x63FB,0x6407,0x645A,0x3A4B,0x64C0,0x5D15,0x5621,
- 0x9F9F,0x3A97,0x6586,0x3ABD,0x65FF,0x6653,0x3AF2,0x6692,0x3B22,0x6716,
- 0x3B42,0x67A4,0x6800,0x3B58,0x684A,0x6884,0x3B72,0x3B71,0x3B7B,0x6909,
- 0x6943,0x725C,0x6964,0x699F,0x6985,0x3BBC,0x69D6,0x3BDD,0x6A65,0x6A74,
- 0x6A71,0x6A82,0x3BEC,0x6A99,0x3BF2,0x6AAB,0x6AB5,0x6AD4,0x6AF6,0x6B81,
- 0x6BC1,0x6BEA,0x6C75,0x6CAA,0x3CCB,0x6D02,0x6D06,0x6D26,0x6D81,0x3CEF,
- 0x6DA4,0x6DB1,0x6E15,0x6E18,0x6E29,0x6E86,0xF694,0x6EBB,0x6EE2,0x6EDA,
- 0x9F7F,0x6EE8,0x6EE9,0x6F24,0x6F34,0x3D46,0xF69E,0x6F81,0x6FBE,0x3D6A,
- 0x3D75,0x71B7,0x5C99,0x3D8A,0x702C,0x3D91,0x7050,0x7054,0x706F,0x707F,
- 0x7089,0xF6AD,0x43C1,0x35F1,0xF6B0,
- /* row 142 */
- 64 | (254 << 8), /* first, last */
- 0xE311,0x57BE,0xE313,0x713E,0xE315,0x364E,
- 0x69A2,0xE318,0x5B74,0x7A49,0xE31B,0xE31C,0x7A65,0x7A7D,0xE31F,0x7ABB,
- 0x7AB0,0x7AC2,0x7AC3,0x71D1,0xE325,0x41CA,0x7ADA,0x7ADD,0x7AEA,0x41EF,
- 0x54B2,0xE32C,0x7B0B,0x7B55,0x7B29,0xE330,0xE331,0x7BA2,0x7B6F,0x839C,
- 0xE335,0xE336,0x7BD0,0x8421,0x7B92,0x7BB8,0xE33B,0x3DAD,0xE33D,0x8492,
- 0x7BFA,0x7C06,0x7C35,0xE342,0x7C44,0x7C83,0xE345,0x7CA6,0x667D,0xE348,
- 0x7CC9,0x7CC7,0x7CE6,0x7C74,0x7CF3,0x7CF5,0x7CCE,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0x7E67,0x451D,0xE352,0x7D5D,0xE354,0x748D,0x7D89,0x7DAB,0x7135,
- 0x7DB3,0x7DD2,0xE35B,0xE35C,0x7DE4,0x3D13,0x7DF5,0xE360,0x7DE5,0xE362,
- 0x7E1D,0xE364,0xE365,0x7E6E,0x7E92,0x432B,0x946C,0x7E27,0x7F40,0x7F41,
- 0x7F47,0x7936,0xE36F,0x99E1,0x7F97,0xE372,0x7FA3,0xE374,0xE375,0x455C,
- 0xE377,0x4503,0xE379,0x7FFA,0xE37B,0x8005,0x8008,0x801D,0x8028,0x802F,
- 0xE381,0xE382,0x803B,0x803C,0x8061,0xE386,0x4989,0xE388,0xE389,0xE38A,
- 0x6725,0x80A7,0xE38D,0x8107,0x811A,0x58B0,0xE391,0x6C7F,0xE393,0xE394,
- 0x64E7,0xE396,0x8218,0xE398,0x6A53,0xE39A,0xE39B,0x447A,0x8229,0xE39E,
- 0xE39F,0xE3A0,0x4FF9,0xE3A2,0x84E2,0x8362,0xE3A5,0xE3A6,0xE3A7,0xE3A8,
- 0xE3A9,0x82AA,0x691B,0xE3AC,0x41DB,
- /* row 143 */
- 64 | (254 << 8), /* first, last */
- 0x854B,0x82D0,0x831A,0xE3B1,0xE3B2,0x36C1,
- 0xE3B4,0xE3B5,0x827B,0x82E2,0x8318,0xE3B9,0xE3BA,0xE3BB,0xE3BC,0xE3BD,
- 0x3DBF,0x831D,0x55EC,0x8385,0x450B,0xE3C3,0x83AC,0x83C1,0x83D3,0x347E,
- 0xE3C8,0x6A57,0x855A,0x3496,0xE3CC,0xE3CD,0x8458,0xE3CF,0x8471,0x3DD3,
- 0x44E4,0x6AA7,0x844A,0xE3D5,0x7958,0x84A8,0xE3D8,0xE3D9,0xE3DA,0x84DE,
- 0x840F,0x8391,0x44A0,0x8493,0x84E4,0xE3E1,0x4240,0xE3E3,0x4543,0x8534,
- 0x5AF2,0xE3E7,0x4527,0x8573,0x4516,0x67BF,0x8616,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xE3ED,0xE3EE,0x85C1,0xE3F0,0x8602,0xE3F2,0xE3F3,0xE3F4,0x456A,
- 0x8628,0x3648,0xE3F8,0x53F7,0xE3FA,0x867E,0x8771,0xE3FD,0x87EE,0xE3FF,
- 0x87B1,0x87DA,0x880F,0x5661,0x866C,0x6856,0x460F,0x8845,0x8846,0xE409,
- 0xE40A,0xE40B,0x885E,0x889C,0x465B,0x88B4,0x88B5,0x63C1,0x88C5,0x7777,
- 0xE414,0x8987,0x898A,0x89A6,0x89A9,0x89A7,0x89BC,0xE41B,0x89E7,0xE41D,
- 0xE41E,0x8A9C,0x7793,0x91FE,0x8A90,0xE423,0x7AE9,0xE425,0xE426,0x4713,
- 0xE428,0x717C,0x8B0C,0x8B1F,0xE42C,0xE42D,0x8B3F,0x8B4C,0x8B4D,0x8AA9,
- 0xE432,0x8B90,0x8B9B,0x8AAF,0xE436,0x4615,0x884F,0x8C9B,0xE43A,0xE43B,
- 0xE43C,0x3725,0xE43E,0x8CD6,0xE440,0xE441,0x8D12,0x8D03,0xE444,0x8CDB,
- 0x705C,0x8D11,0xE448,0x3ED0,0x8D77,
- /* row 144 */
- 64 | (254 << 8), /* first, last */
- 0x8DA9,0xE44C,0xE44D,0xE44E,0x3B7C,0xE450,
- 0xE451,0x7AE7,0x8EAD,0x8EB6,0x8EC3,0x92D4,0x8F19,0x8F2D,0xE459,0xE45A,
- 0x8FA5,0x9303,0xE45D,0xE45E,0x8FB3,0x492A,0xE461,0xE462,0xE463,0x5EF8,
- 0xE465,0x8FF9,0xE467,0xE468,0xE469,0xE46A,0x3980,0xE46C,0x9037,0xE46E,
- 0xE46F,0x9061,0xE471,0xE472,0x90A8,0xE474,0x90C4,0xE476,0x90AE,0x90FD,
- 0x9167,0x3AF0,0x91A9,0x91C4,0x7CAC,0xE47E,0xE47F,0x920E,0x6C9F,0x9241,
- 0x9262,0xE484,0x92B9,0xE486,0xE487,0xE488,0xE489,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xE48A,0x932C,0x936B,0xE48D,0xE48E,0x708F,0x5AC3,0xE491,0xE492,
- 0x4965,0x9244,0xE495,0xE496,0xE497,0x9373,0x945B,0x8EBC,0x9585,0x95A6,
- 0x9426,0x95A0,0x6FF6,0x42B9,0xE4A1,0xE4A2,0xE4A3,0xE4A4,0x49DF,0x6C1C,
- 0x967B,0x9696,0x416C,0x96A3,0xE4AB,0x61DA,0x96B6,0x78F5,0xE4AF,0x96BD,
- 0x53CC,0x49A1,0xE4B3,0xE4B4,0xE4B5,0xE4B6,0xE4B7,0xE4B8,0xE4B9,0xE4BA,
- 0x9731,0x8642,0x9736,0x4A0F,0x453D,0x4585,0xE4C1,0x7075,0x5B41,0x971B,
- 0x975C,0xE4C6,0x9757,0x5B4A,0xE4C9,0x975F,0x9425,0x50D0,0xE4CD,0xE4CE,
- 0x9789,0x979F,0x97B1,0x97BE,0x97C0,0x97D2,0x97E0,0xE4D6,0x97EE,0x741C,
- 0xE4D9,0x97FF,0x97F5,0xE4DC,0xE4DD,0x4AD1,0x9834,0x9833,0x984B,0x9866,
- 0x3B0E,0xE4E4,0x3D51,0xE4E6,0xE4E7,
- /* row 145 */
- 64 | (254 << 8), /* first, last */
- 0xE4E8,0x98CA,0x98B7,0x98C8,0x98C7,0x4AFF,
- 0xE4EE,0xE4EF,0x55B0,0x98E1,0x98E6,0x98EC,0x9378,0x9939,0xE4F6,0x4B72,
- 0xE4F8,0xE4F9,0x99F5,0x9A0C,0x9A3B,0x9A10,0x9A58,0xE4FF,0x36C4,0xE501,
- 0xE502,0x9AE0,0x9AE2,0xE505,0x9AF4,0x4C0E,0x9B14,0x9B2D,0xE50A,0x5034,
- 0x9B34,0xE50D,0x38C3,0xE50F,0x9B50,0x9B40,0xE512,0x5A45,0xE514,0x9B8E,
- 0xE516,0x9C02,0x9BFF,0x9C0C,0xE51A,0x9DD4,0xE51C,0xE51D,0xE51E,0xE51F,
- 0xE520,0xE521,0x9D7E,0x9D83,0xE524,0x9E0E,0x6888,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0x9DC4,0xE528,0xE529,0xE52A,0xE52B,0xE52C,0x9D39,0xE52E,0xE52F,
- 0x9E90,0x9E95,0x9E9E,0x9EA2,0x4D34,0x9EAA,0x9EAF,0xE537,0x9EC1,0x3B60,
- 0x39E5,0x3D1D,0x4F32,0x37BE,0xE53E,0x9F02,0x9F08,0x4B96,0x9424,0xE543,
- 0x9F17,0x9F16,0x9F39,0x569F,0x568A,0x9F45,0x99B8,0xE54B,0x97F2,0x847F,
- 0x9F62,0x9F69,0x7ADC,0x9F8E,0x7216,0x4BBE,0xE554,0xE555,0x7177,0xE557,
- 0xE558,0xE559,0x739E,0xE55B,0xE55C,0x799F,0xE55E,0xE55F,0x9369,0x93F3,
- 0xE562,0x92EC,0x9381,0x93CB,0xE566,0xE567,0x7217,0x3EEB,0x7772,0x7A43,
- 0x70D0,0xE56D,0xE56E,0x717E,0xE570,0x70A3,0xE572,0xE573,0x3EC7,0xE575,
- 0xE576,0xE577,0x3722,0xE579,0xE57A,0x36E1,0xE57C,0xE57D,0xE57E,0x3723,
- 0xE580,0x575B,0xE582,0xE583,0xE584,
- /* row 146 */
- 64 | (254 << 8), /* first, last */
- 0xE585,0xE586,0x8503,0xE588,0x8503,0x8455,
- 0xE58B,0xE58C,0xE58D,0xE58E,0xE58F,0xE590,0x44F4,0xE592,0xE593,0xE594,
- 0x67F9,0x3733,0x3C15,0x3DE7,0x586C,0xE59A,0x6810,0x4057,0xE59D,0xE59E,
- 0xE59F,0xE5A0,0xE5A1,0x54CB,0x569E,0xE5A4,0x5692,0xE5A6,0xE5A7,0xE5A8,
- 0x93C6,0xE5AA,0x939C,0x4EF8,0x512B,0x3819,0xE5AF,0x4EBC,0xE5B1,0xE5B2,
- 0x4F4B,0x4F8A,0xE5B5,0x5A68,0xE5B7,0xE5B8,0x3999,0xE5BA,0xE5BB,0x3435,
- 0x4F29,0xE5BE,0xE5BF,0xE5C0,0x8ADA,0xE5C2,0x4E98,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0x50CD,0x510D,0x4FA2,0x4F03,0xE5C8,0xE5C9,0x4F42,0x502E,0x506C,
- 0x5081,0x4FCC,0x4FE5,0x5058,0x50FC,0x5159,0x515B,0x515D,0x515E,0x6E76,
- 0xE5D7,0xE5D8,0xE5D9,0x6D72,0xE5DB,0xE5DC,0x51A8,0x51C3,0xE5DF,0x44DD,
- 0xE5E1,0xE5E2,0xE5E3,0x8D7A,0xE5E5,0xE5E6,0x5259,0x52A4,0xE5E9,0x52E1,
- 0x936E,0x467A,0x718C,0xE5EE,0xE5EF,0xE5F0,0xE5F1,0x69D1,0xE5F3,0x7479,
- 0x3EDE,0x7499,0x7414,0x7456,0x7398,0x4B8E,0xE5FB,0xE5FC,0x53D0,0x3584,
- 0x720F,0xE600,0x55B4,0xE602,0x54CD,0xE604,0x571D,0x925D,0x96F4,0x9366,
- 0x57DD,0x578D,0x577F,0x363E,0x58CB,0x5A99,0xE60F,0xE610,0xE611,0xE612,
- 0x5A2C,0x59B8,0x928F,0x5A7E,0x5ACF,0x5A12,0xE619,0xE61A,0xE61B,0xE61C,
- 0x36F5,0x6D05,0x7443,0x5A21,0xE621,
- /* row 147 */
- 64 | (254 << 8), /* first, last */
- 0x5A81,0xE623,0xE624,0x93E0,0x748C,0xE627,
- 0x7105,0x4972,0x9408,0xE62B,0x93BD,0x37A0,0x5C1E,0x5C9E,0x5E5E,0x5E48,
- 0xE632,0xE633,0xE634,0x5ECD,0x5B4F,0xE637,0xE638,0x3701,0xE63A,0x36DD,
- 0xE63C,0x36D3,0x812A,0xE63F,0xE640,0xE641,0xE642,0x5F0C,0x5F0E,0xE645,
- 0xE646,0x5A6B,0xE648,0x5B44,0x8614,0xE64B,0x8860,0x607E,0xE64E,0xE64F,
- 0x5FDB,0x3EB8,0xE652,0xE653,0xE654,0xE655,0x61C0,0xE657,0xE658,0xE659,
- 0x6199,0x6198,0x6075,0xE65D,0xE65E,0xE65F,0xE660,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0x6471,0xE662,0xE663,0x3A29,0xE665,0xE666,0xE667,0xE668,0x6337,
- 0xE66A,0x64B6,0x6331,0x63D1,0xE66E,0xE66F,0x62A4,0xE671,0x643B,0x656B,
- 0x6972,0x3BF4,0xE676,0xE677,0xE678,0xE679,0x550D,0xE67B,0xE67C,0xE67D,
- 0x66CE,0xE67F,0xE680,0x3AE0,0x4190,0xE683,0xE684,0xE685,0xE686,0xE687,
- 0xE688,0x78EE,0xE68A,0xE68B,0xE68C,0x3464,0xE68E,0xE68F,0xE690,0x668E,
- 0xE692,0x666B,0x4B93,0x6630,0xE696,0xE697,0x6663,0xE699,0xE69A,0x661E,
- 0xE69C,0x38D1,0xE69E,0xE69F,0x3B99,0xE6A1,0xE6A2,0x74D0,0x3B96,0x678F,
- 0xE6A6,0x68B6,0x681E,0x3BC4,0x6ABE,0x3863,0xE6AC,0xE6AD,0x6A33,0x6A52,
- 0x6AC9,0x6B05,0xE6B2,0x6511,0x6898,0x6A4C,0x3BD7,0x6A7A,0x6B57,0xE6B9,
- 0xE6BA,0x93A0,0x92F2,0xE6BD,0xE6BE,
- /* row 148 */
- 64 | (254 << 8), /* first, last */
- 0x9289,0xE6C0,0xE6C1,0x9467,0x6DA5,0x6F0B,
- 0xE6C5,0x6D67,0xE6C7,0x3D8F,0x6E04,0xE6CA,0x5A3D,0x6E0A,0x5847,0x6D24,
- 0x7842,0x713B,0xE6D1,0xE6D2,0x70F1,0x7250,0x7287,0x7294,0xE6D7,0xE6D8,
- 0x5179,0xE6DA,0xE6DB,0x747A,0xE6DD,0xE6DE,0xE6DF,0xE6E0,0xE6E1,0x3F06,
- 0x3EB1,0xE6E4,0xE6E5,0xE6E6,0x60A7,0x3EF3,0x74CC,0x743C,0x9387,0x7437,
- 0x449F,0xE6EE,0x4551,0x7583,0x3F63,0xE6F2,0xE6F3,0x3F58,0x7555,0x7673,
- 0xE6F7,0x3B19,0x7468,0xE6FA,0xE6FB,0xE6FC,0x3AFB,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0x3DCD,0xE6FF,0x3EFF,0xE701,0xE702,0x91FA,0x5732,0x9342,0xE706,
- 0xE707,0x50DF,0xE709,0xE70A,0x7778,0xE70C,0x770E,0x770F,0x777B,0xE710,
- 0xE711,0x3A5E,0xE713,0x7438,0x749B,0x3EBF,0xE717,0xE718,0x40C8,0xE71A,
- 0xE71B,0x9307,0xE71D,0x781E,0x788D,0x7888,0x78D2,0x73D0,0x7959,0xE724,
- 0xE725,0x410E,0x799B,0x8496,0x79A5,0x6A2D,0xE72B,0x7A3A,0x79F4,0x416E,
- 0xE72F,0x4132,0x9235,0x79F1,0xE733,0xE734,0xE735,0xE736,0xE737,0x3597,
- 0x556B,0x3570,0x36AA,0xE73C,0xE73D,0x7AE2,0x5A59,0xE740,0xE741,0xE742,
- 0x5A0D,0xE744,0x78F0,0x5A2A,0xE747,0x7AFE,0x41F9,0x7C5D,0x7C6D,0x4211,
- 0xE74D,0xE74E,0xE74F,0x7CCD,0xE751,0xE752,0x7C8E,0x7C7C,0x7CAE,0x6AB2,
- 0x7DDC,0x7E07,0x7DD3,0x7F4E,0xE75B,
- /* row 149 */
- 64 | (254 << 8), /* first, last */
- 0xE75C,0xE75D,0x7D97,0xE75F,0x426A,0xE761,
- 0xE762,0x67D6,0xE764,0xE765,0x57C4,0xE767,0xE768,0xE769,0x7FDD,0x7B27,
- 0xE76C,0xE76D,0xE76E,0x7B0C,0xE770,0x99E6,0x8645,0x9A63,0x6A1C,0xE775,
- 0x39E2,0xE777,0xE778,0x9A1F,0xE77A,0x8480,0xE77C,0xE77D,0x44EA,0x8137,
- 0x4402,0x80C6,0x8109,0x8142,0xE784,0x98C3,0xE786,0x8262,0x8265,0xE789,
- 0x8453,0xE78B,0x8610,0xE78D,0x5A86,0x417F,0xE790,0x5B2B,0xE792,0x5AE4,
- 0xE794,0x86A0,0xE796,0xE797,0x882D,0xE799,0x5A02,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0x886E,0x4F45,0x8887,0x88BF,0x88E6,0x8965,0x894D,0xE7A2,0x8954,
- 0xE7A4,0xE7A5,0xE7A6,0xE7A7,0xE7A8,0xE7A9,0x3EAD,0x84A3,0x46F5,0x46CF,
- 0x37F2,0x8A3D,0x8A1C,0xE7B1,0x5F4D,0x922B,0xE7B4,0x65D4,0x7129,0x70C4,
- 0xE7B8,0x9D6D,0x8C9F,0x8CE9,0xE7BC,0x599A,0x77C3,0x59F0,0x436E,0x36D4,
- 0x8E2A,0x8EA7,0xE7C4,0x8F30,0x8F4A,0x42F4,0x6C58,0x6FBB,0xE7CA,0x489B,
- 0x6F79,0x6E8B,0xE7CE,0x9BE9,0x36B5,0xE7D1,0x90BB,0x9097,0x5571,0x4906,
- 0x91BB,0x9404,0xE7D8,0x4062,0xE7DA,0x9427,0xE7DC,0xE7DD,0x84E5,0x8A2B,
- 0x9599,0x95A7,0x9597,0x9596,0xE7E4,0x7445,0x3EC2,0xE7E7,0xE7E8,0xE7E9,
- 0x3EE7,0xE7EB,0x968F,0xE7ED,0xE7EE,0xE7EF,0x3ECC,0xE7F1,0xE7F2,0xE7F3,
- 0x7412,0x746B,0x3EFC,0x9741,0xE7F8,
- /* row 150 */
- 64 | (254 << 8), /* first, last */
- 0x6847,0x4A1D,0xE7FB,0xE7FC,0x975D,0x9368,
- 0xE7FF,0xE800,0xE801,0xE802,0x92BA,0x5B11,0x8B69,0x493C,0x73F9,0xE808,
- 0x979B,0x9771,0x9938,0xE80C,0x5DC1,0xE80E,0xE80F,0x981F,0xE811,0x92F6,
- 0xE813,0x91E5,0x44C0,0xE816,0xE817,0xE818,0x98DC,0xE81A,0x3F00,0x922A,
- 0x4925,0x8414,0x993B,0x994D,0xE821,0x3DFD,0x999B,0x4B6F,0x99AA,0x9A5C,
- 0xE827,0xE828,0x6A8F,0x9A21,0x5AFE,0x9A2F,0xE82D,0x4B90,0xE82F,0x99BC,
- 0x4BBD,0x4B97,0x937D,0x5872,0xE835,0x5822,0xE837,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xE838,0x7844,0xE83A,0xE83B,0x68C5,0x3D7D,0x9458,0x3927,0x6150,
- 0xE841,0xE842,0x6107,0x9C4F,0x9C53,0x9C7B,0x9C35,0x9C10,0x9B7F,0x9BCF,
- 0xE84B,0x9B9F,0xE84D,0xE84E,0x9D21,0x4CAE,0xE851,0x9E18,0x4CB0,0x9D0C,
- 0xE855,0xE856,0xE857,0xE858,0x9DA5,0x84BD,0xE85B,0xE85C,0xE85D,0x85FC,
- 0x4533,0xE860,0xE861,0xE862,0x8420,0x85EE,0xE865,0xE866,0xE867,0x79E2,
- 0xE869,0xE86A,0x492D,0xE86C,0x3D62,0x93DB,0x92BE,0x9348,0xE871,0x78B9,
- 0x9277,0x944D,0x4FE4,0x3440,0x9064,0xE878,0x783D,0x7854,0x78B6,0x784B,
- 0xE87D,0xE87E,0xE87F,0x369A,0x4F72,0x6FDA,0x6FD9,0x701E,0x701E,0x5414,
- 0xE887,0x57BB,0x58F3,0x578A,0x9D16,0x57D7,0x7134,0x34AF,0xE88F,0x71EB,
- 0xE891,0xE892,0x5B28,0xE894,0xE895,
- /* row 151 */
- 64 | (254 << 8), /* first, last */
- 0x610C,0x5ACE,0x5A0B,0x42BC,0xE89A,0x372C,
- 0x4B7B,0xE89D,0x93BB,0x93B8,0xE8A0,0xE8A1,0x8472,0xE8A3,0xE8A4,0xE8A5,
- 0xE8A6,0xE8A7,0x5994,0xE8A9,0xE8AA,0x7DA8,0xE8AC,0xE8AD,0xE8AE,0xE8AF,
- 0xE8B0,0x92E5,0x73E2,0x3EE9,0x74B4,0xE8B5,0xE8B6,0x3EE1,0xE8B8,0x6AD8,
- 0x73F3,0x73FB,0x3ED6,0xE8BD,0xE8BE,0xE8BF,0xE8C0,0xE8C1,0xE8C2,0xE8C3,
- 0x7448,0xE8C5,0x70A5,0xE8C7,0x9284,0x73E6,0x935F,0xE8CB,0x9331,0xE8CD,
- 0xE8CE,0x9386,0xE8D0,0xE8D1,0x4935,0xE8D3,0x716B,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xE8D5,0xE8D6,0x56A4,0xE8D8,0xE8D9,0xE8DA,0x5502,0x79C4,0xE8DD,
- 0x7DFE,0xE8DF,0xE8E0,0xE8E1,0x452E,0x9401,0x370A,0xE8E5,0xE8E6,0x59B0,
- 0xE8E8,0xE8E9,0xE8EA,0x5AA1,0x36E2,0xE8ED,0x36B0,0x925F,0x5A79,0xE8F1,
- 0xE8F2,0x9374,0x3CCD,0xE8F5,0x4A96,0x398A,0x50F4,0x3D69,0x3D4C,0xE8FB,
- 0x7175,0x42FB,0xE8FE,0x6E0F,0xE900,0x44EB,0x6D57,0xE903,0x7067,0x6CAF,
- 0x3CD6,0xE907,0xE908,0x6E02,0x6F0C,0x3D6F,0xE90C,0x7551,0x36BC,0x34C8,
- 0x4680,0x3EDA,0x4871,0x59C4,0x926E,0x493E,0x8F41,0xE917,0xE918,0x5812,
- 0x57C8,0x36D6,0xE91C,0x70FE,0xE91E,0xE91F,0xE920,0xE921,0xE922,0x68B9,
- 0x6967,0xE925,0xE926,0xE927,0xE928,0xE929,0xE92A,0xE92B,0xE92C,0x6A1A,
- 0xE92E,0xE92F,0x843E,0x44DF,0x44CE,
- /* row 152 */
- 64 | (254 << 8), /* first, last */
- 0xE933,0xE934,0xE935,0xE936,0x6F17,0xE938,
- 0x833D,0xE93A,0x83ED,0xE93C,0xE93D,0xE93E,0x5989,0x5A82,0xE941,0x5A61,
- 0x5A71,0xE944,0xE945,0x372D,0x59EF,0xE948,0x36C7,0x718E,0x9390,0x669A,
- 0xE94D,0x5A6E,0x5A2B,0xE950,0x6A2B,0xE952,0xE953,0xE954,0xE955,0x711D,
- 0xE957,0xE958,0x4FB0,0xE95A,0x5CC2,0xE95C,0xE95D,0xE95E,0x6A0C,0xE960,
- 0xE961,0x70A6,0x7133,0xE964,0x3DA5,0x6CDF,0xE967,0xE968,0x7E65,0x59EB,
- 0x5D2F,0x3DF3,0x5F5C,0xE96E,0xE96F,0x7DA4,0x8426,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0x5485,0xE973,0xE974,0xE975,0x577E,0xE977,0xE978,0x3FE5,0xE97A,
- 0xE97B,0x7003,0xE97D,0x5D70,0x738F,0x7CD3,0xE981,0xE982,0x4FC8,0x7FE7,
- 0x72CD,0x7310,0xE987,0x7338,0x7339,0xE98A,0x7341,0x7348,0x3EA9,0xE98E,
- 0x906C,0x71F5,0xE991,0x73E1,0x81F6,0x3ECA,0x770C,0x3ED1,0x6CA2,0x56FD,
- 0x7419,0x741E,0x741F,0x3EE2,0x3EF0,0x3EF4,0x3EFA,0x74D3,0x3F0E,0x3F53,
- 0x7542,0x756D,0x7572,0x758D,0x3F7C,0x75C8,0x75DC,0x3FC0,0x764D,0x3FD7,
- 0x7674,0x3FDC,0x767A,0xE9B0,0x7188,0x5623,0x8980,0x5869,0x401D,0x7743,
- 0x4039,0x6761,0x4045,0x35DB,0x7798,0x406A,0x406F,0x5C5E,0x77BE,0x77CB,
- 0x58F2,0x7818,0x70B9,0x781C,0x40A8,0x7839,0x7847,0x7851,0x7866,0x8448,
- 0xE9CB,0x7933,0x6803,0x7932,0x4103,
- /* row 153 */
- 64 | (254 << 8), /* first, last */
- 0x4109,0x7991,0x7999,0x8FBB,0x7A06,0x8FBC,
- 0x4167,0x7A91,0x41B2,0x7ABC,0x8279,0x41C4,0x7ACF,0x7ADB,0x41CF,0x4E21,
- 0x7B62,0x7B6C,0x7B7B,0x7C12,0x7C1B,0x4260,0x427A,0x7C7B,0x7C9C,0x428C,
- 0x7CB8,0x4294,0x7CED,0x8F93,0x70C0,0xE9EF,0x7DCF,0x7DD4,0x7DD0,0x7DFD,
- 0x7FAE,0x7FB4,0x729F,0x4397,0x8020,0x8025,0x7B39,0x802E,0x8031,0x8054,
- 0x3DCC,0x57B4,0x70A0,0x80B7,0x80E9,0x43ED,0x810C,0x732A,0x810E,0x8112,
- 0x7560,0x8114,0x4401,0x3B39,0x8156,0x8159,0x815A,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0x4413,0x583A,0x817C,0x8184,0x4425,0x8193,0x442D,0x81A5,0x57EF,
- 0x81C1,0x81E4,0x8254,0x448F,0x82A6,0x8276,0x82CA,0x82D8,0x82FF,0x44B0,
- 0x8357,0x9669,0x698A,0x8405,0x70F5,0x8464,0x60E3,0x8488,0x4504,0x84BE,
- 0x84E1,0x84F8,0x8510,0x8538,0x8552,0x453B,0x856F,0x8570,0x85E0,0x4577,
- 0x8672,0x8692,0x86B2,0x86EF,0x9645,0x878B,0x4606,0x4617,0x88AE,0x88FF,
- 0x8924,0x8947,0x8991,0xEA43,0x8A29,0x8A38,0x8A94,0x8AB4,0x8C51,0x8CD4,
- 0x8CF2,0x8D1C,0x4798,0x585F,0x8DC3,0x47ED,0x4EEE,0x8E3A,0x55D8,0x5754,
- 0x8E71,0x55F5,0x8EB0,0x4837,0x8ECE,0x8EE2,0x8EE4,0x8EED,0x8EF2,0x8FB7,
- 0x8FC1,0x8FCA,0x8FCC,0x9033,0x99C4,0x48AD,0x98E0,0x9213,0x491E,0x9228,
- 0x9258,0x926B,0x92B1,0x92AE,0x92BF,
- /* row 154 */
- 64 | (254 << 8), /* first, last */
- 0x92E3,0x92EB,0x92F3,0x92F4,0x92FD,0x9343,
- 0x9384,0x93AD,0x4945,0x4951,0x9EBF,0x9417,0x5301,0x941D,0x942D,0x943E,
- 0x496A,0x9454,0x9479,0x952D,0x95A2,0x49A7,0x95F4,0x9633,0x49E5,0x67A0,
- 0x4A24,0x9740,0x4A35,0x97B2,0x97C2,0x5654,0x4AE4,0x60E8,0x98B9,0x4B19,
- 0x98F1,0x5844,0x990E,0x9919,0x51B4,0x991C,0x9937,0x9942,0x995D,0x9962,
- 0x4B70,0x99C5,0x4B9D,0x9A3C,0x9B0F,0x7A83,0x9B69,0x9B81,0x9BDD,0x9BF1,
- 0x9BF4,0x4C6D,0x9C20,0x376F,0xEAA9,0x9D49,0x9C3A,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0x9EFE,0x5650,0x9D93,0x9DBD,0x9DC0,0x9DFC,0x94F6,0x8FB6,0x9E7B,
- 0x9EAC,0x9EB1,0x9EBD,0x9EC6,0x94DC,0x9EE2,0x9EF1,0x9EF8,0x7AC8,0x9F44,
- 0xEABF,0xEAC0,0xEAC1,0x691A,0x94C3,0x59AC,0xEAC5,0x5840,0x94C1,0x37B9,
- 0xEAC9,0xEACA,0xEACB,0xEACC,0x5757,0x7173,0xEACF,0xEAD0,0xEAD1,0x546A,
- 0xEAD3,0xEAD4,0x549E,0xEAD6,0xEAD7,0xEAD8,0xEAD9,0xEADA,0x60E7,0xEADC,
- 0x567A,0xEADE,0xEADF,0xEAE0,0xEAE1,0xEAE2,0xEAE3,0x6955,0x9C2F,0x87A5,
- 0xEAE7,0xEAE8,0xEAE9,0xEAEA,0xEAEB,0xEAEC,0x5C20,0xEAEE,0x5E0B,0xEAF0,
- 0xEAF1,0xEAF2,0x671E,0xEAF4,0xEAF5,0xEAF6,0x3647,0xEAF8,0xEAF9,0xEAFA,
- 0xEAFB,0x5364,0x84AD,0xEAFE,0xEAFF,0xEB00,0x8B81,0xEB02,0xEB03,0xEB04,
- 0xEB05,0x4E78,0x70BB,0xEB08,0xEB09,
- /* row 155 */
- 64 | (254 << 8), /* first, last */
- 0xEB0A,0xEB0B,0xEB0C,0xEB0D,0xEB0E,0xEB0F,
- 0x62C3,0xEB11,0xEB12,0x7198,0x6855,0xEB15,0x69E9,0x36C8,0xEB18,0xEB19,
- 0xEB1A,0xEB1B,0xEB1C,0xEB1D,0x82FD,0xEB1F,0xEB20,0xEB21,0x89A5,0xEB23,
- 0x8FA0,0xEB25,0x97B8,0xEB27,0x9847,0x9ABD,0xEB2A,0xffff,0xEB2C,0xEB2D,
- 0xEB2E,0xEB2F,0xEB30,0xEB31,0xEB32,0xEB33,0xEB34,0xEB35,0xEB36,0xEB37,
- 0xEB38,0xEB39,0x5FB1,0x6648,0x66BF,0xEB3D,0xEB3E,0xEB3F,0x7201,0xEB41,
- 0x77D7,0xEB43,0xEB44,0x7E87,0xEB46,0x58B5,0x670E,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0x6918,0xEB4A,0xEB4B,0xEB4C,0xEB4D,0xEB4E,0xEB4F,0xEB50,0x48D0,
- 0x4AB8,0xEB53,0xEB54,0xEB55,0xEB56,0xEB57,0xEB58,0xEB59,0xEB5A,0xEB5B,
- 0x51D2,0xEB5D,0x599F,0xEB5F,0x3BBE,0xEB61,0xEB62,0xEB63,0x5788,0xEB65,
- 0x399B,0xEB67,0xEB68,0xEB69,0x3762,0xEB6B,0x8B5E,0xEB6D,0x99D6,0xEB6F,
- 0xEB70,0xEB71,0x7209,0xEB73,0xEB74,0x5965,0xEB76,0xEB77,0xEB78,0x8EDA,
- 0xEB7A,0x528F,0x573F,0x7171,0xEB7E,0xEB7F,0xEB80,0xEB81,0x55BC,0xEB83,
- 0xEB84,0xEB85,0x91D4,0x3473,0xEB88,0xEB89,0xEB8A,0x4718,0xEB8C,0xEB8D,
- 0xEB8E,0xEB8F,0xEB90,0x5066,0x34FB,0xEB93,0x60DE,0xEB95,0x477C,0xEB97,
- 0xEB98,0xEB99,0xEB9A,0xEB9B,0x57A1,0x7151,0x6FB6,0xEB9F,0xEBA0,0x9056,
- 0xEBA2,0xEBA3,0x8B62,0xEBA5,0xEBA6,
- /* row 156 */
- 64 | (254 << 8), /* first, last */
- 0x5D5B,0xEBA8,0x8F36,0xEBAA,0xEBAB,0x8AEA,
- 0xEBAD,0xEBAE,0xEBAF,0xEBB0,0x4BC0,0xEBB2,0xEBB3,0xEBB4,0x9465,0xEBB6,
- 0x6195,0x5A27,0xEBB9,0x4FBB,0x56B9,0xEBBC,0xEBBD,0x4E6A,0xEBBF,0x9656,
- 0x6D8F,0xEBC2,0x3618,0x8977,0xEBC5,0xEBC6,0xEBC7,0xEBC8,0x71DF,0xEBCA,
- 0x7B42,0xEBCC,0xEBCD,0xEBCE,0x9104,0xEBD0,0x7A45,0x9DF0,0xEBD3,0x9A26,
- 0xEBD5,0x365F,0xEBD7,0xEBD8,0x7983,0xEBDA,0xEBDB,0x5D2C,0xEBDD,0x83CF,
- 0xEBDF,0x46D0,0xEBE1,0x753B,0x8865,0xEBE4,0x58B6,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0x371C,0xEBE7,0xEBE8,0xEBE9,0x3C54,0xEBEB,0xEBEC,0x9281,0xEBEE,
- 0xEBEF,0x9330,0xEBF1,0xEBF2,0x6C39,0x949F,0xEBF5,0xEBF6,0x8827,0x88F5,
- 0xEBF9,0xEBFA,0xEBFB,0x6EB8,0xEBFD,0xEBFE,0x39A4,0x36B9,0x5C10,0x79E3,
- 0x453F,0x66B6,0xEC05,0xEC06,0x8943,0xEC08,0xEC09,0x56D6,0x40DF,0xEC0C,
- 0x39A1,0xEC0E,0xEC0F,0xEC10,0x71AD,0x8366,0xEC13,0xEC14,0x5A67,0x4CB7,
- 0xEC17,0xEC18,0xEC19,0xEC1A,0xEC1B,0xEC1C,0xEC1D,0x7B43,0x797E,0xEC20,
- 0x6FB5,0xEC22,0x6A03,0xEC24,0x53A2,0xEC26,0x93BF,0x6836,0x975D,0xEC2A,
- 0xEC2B,0xEC2C,0xEC2D,0xEC2E,0xEC2F,0x5D85,0xEC31,0xEC32,0x5715,0x9823,
- 0xEC35,0x5DAB,0xEC37,0x65BE,0x69D5,0x53D2,0xEC3B,0xEC3C,0x3C11,0x6736,
- 0xEC3F,0xEC40,0xEC41,0xEC42,0xEC43,
- /* row 157 */
- 64 | (254 << 8), /* first, last */
- 0xEC44,0xEC45,0xEC46,0xEC47,0xEC48,0xEC49,
- 0x35CA,0xEC4B,0xEC4C,0x48FA,0x63E6,0xEC4F,0x7808,0x9255,0xEC52,0x43F2,
- 0xEC54,0x43DF,0xEC56,0xEC57,0xEC58,0x59F8,0xEC5A,0x8F0B,0xEC5C,0xEC5D,
- 0x7B51,0xEC5F,0xEC60,0x3DF7,0xEC62,0xEC63,0x8FD0,0x728F,0x568B,0xEC67,
- 0xEC68,0xEC69,0xEC6A,0xEC6B,0xEC6C,0xEC6D,0xEC6E,0xEC6F,0xEC70,0xEC71,
- 0xEC72,0xEC73,0x7E9F,0xEC75,0xEC76,0x4CA4,0x9547,0xEC79,0x71A2,0xEC7B,
- 0x4D91,0x9012,0xEC7E,0x4D9C,0xEC80,0x8FBE,0x55C1,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0x8FBA,0xEC84,0x8FB9,0xEC86,0x4509,0x7E7F,0x6F56,0x6AB1,0x4EEA,
- 0x34E4,0xEC8D,0xEC8E,0x373A,0x8E80,0xEC91,0xEC92,0xEC93,0xEC94,0xEC95,
- 0xEC96,0x3DEB,0xEC98,0xEC99,0xEC9A,0xEC9B,0x4E9A,0xEC9D,0xEC9E,0x56BF,
- 0xECA0,0x8E0E,0x5B6D,0xECA3,0xECA4,0x63DE,0x62D0,0xECA7,0xECA8,0x6530,
- 0x562D,0xECAB,0x541A,0xECAD,0x3DC6,0xECAF,0x4C7D,0x5622,0x561E,0x7F49,
- 0xECB4,0x5975,0xECB6,0x8770,0x4E1C,0xECB9,0xECBA,0xECBB,0x8117,0x9D5E,
- 0x8D18,0x763B,0x9C45,0x764E,0x77B9,0x9345,0x5432,0x8148,0x82F7,0x5625,
- 0x8132,0x8418,0x80BD,0x55EA,0x7962,0x5643,0x5416,0xECCF,0x35CE,0x5605,
- 0x55F1,0x66F1,0xECD4,0x362D,0x7534,0x55F0,0x55BA,0x5497,0x5572,0xECDB,
- 0xECDC,0x5ED0,0xECDE,0xECDF,0xECE0,
- /* row 158 */
- 64 | (254 << 8), /* first, last */
- 0xECE1,0x9EAB,0x7D5A,0x55DE,0xECE5,0x629D,
- 0x976D,0x5494,0x8CCD,0x71F6,0x9176,0x63FC,0x63B9,0x63FE,0x5569,0xECF0,
- 0x9C72,0xECF2,0x519A,0x34DF,0xECF5,0x51A7,0x544D,0x551E,0x5513,0x7666,
- 0x8E2D,0xECFC,0x75B1,0x80B6,0x8804,0x8786,0x88C7,0x81B6,0x841C,0xED04,
- 0x44EC,0x7304,0xED07,0x5B90,0x830B,0xED0A,0x567B,0xED0C,0xED0D,0xED0E,
- 0xED0F,0xED10,0xED11,0x9170,0xED13,0x9208,0xED15,0xED16,0xED17,0xED18,
- 0x7266,0xED1A,0x474E,0xED1C,0xED1D,0xED1E,0x40FA,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0x9C5D,0x651F,0xED22,0x48F3,0xED24,0xED25,0xED26,0xED27,0x6062,
- 0xED29,0xED2A,0xffff,0xED2C,0xED2D,0x71A3,0x7E8E,0x9D50,0x4E1A,0x4E04,
- 0x3577,0x5B0D,0x6CB2,0x5367,0x36AC,0x39DC,0x537D,0x36A5,0xED3B,0x589A,
- 0xED3D,0x822D,0x544B,0x57AA,0xED41,0xED42,0xffff,0x3A52,0xED45,0x7374,
- 0xED47,0x4D09,0x9BED,0xED4A,0xED4B,0x4C5B,0xED4D,0xED4E,0xED4F,0x845C,
- 0xED51,0xED52,0xED53,0xED54,0x632E,0x7D25,0xED57,0xED58,0x3A2A,0x9008,
- 0x52CC,0x3E74,0x367A,0x45E9,0xED5F,0x7640,0x5AF0,0xED62,0x787A,0x47B6,
- 0x58A7,0x40BF,0x567C,0x9B8B,0x5D74,0x7654,0xED6B,0x9E85,0x4CE1,0x75F9,
- 0x37FB,0x6119,0xED71,0xED72,0xffff,0x565D,0xED75,0x57A7,0xED77,0xED78,
- 0x5234,0xED7A,0x35AD,0x6C4A,0x9D7C,
- /* row 159 */
- 64 | (254 << 8), /* first, last */
- 0x7C56,0x9B39,0x57DE,0xED81,0x5C53,0x64D3,
- 0xED84,0xED85,0xED86,0x86AD,0xED88,0xED89,0xED8A,0xED8B,0xffff,0x51FE,
- 0xED8E,0x5D8E,0x9703,0xED91,0x9E81,0x904C,0x7B1F,0x9B02,0x5CD1,0x7BA3,
- 0x6268,0x6335,0x9AFF,0x7BCF,0x9B2A,0x7C7E,0x9B2E,0x7C42,0x7C86,0x9C15,
- 0x7BFC,0x9B09,0x9F17,0x9C1B,0xEDA6,0x9F5A,0x5573,0x5BC3,0x4FFD,0x9E98,
- 0x4FF2,0x5260,0x3E06,0x52D1,0x5767,0x5056,0x59B7,0x5E12,0x97C8,0x9DAB,
- 0x8F5C,0x5469,0x97B4,0x9940,0x97BA,0x532C,0x6130,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0x692C,0x53DA,0x9C0A,0x9D02,0x4C3B,0x9641,0x6980,0x50A6,0x7546,
- 0xEDC6,0x99DA,0x5273,0xffff,0x9159,0x9681,0x915C,0xffff,0x9151,0xEDCF,
- 0x637F,0xEDD1,0x6ACA,0x5611,0x918E,0x757A,0x6285,0xEDD7,0x734F,0x7C70,
- 0xEDDA,0xEDDB,0xffff,0xEDDD,0x76D6,0x9B9D,0x4E2A,0xEDE1,0x83BE,0x8842,
- 0xffff,0x5C4A,0x69C0,0x50ED,0x577A,0x521F,0x5DF5,0x4ECE,0x6C31,0xEDED,
- 0x4F39,0x549C,0x54DA,0x529A,0x8D82,0x35FE,0x5F0C,0x35F3,0xffff,0x6B52,
- 0x917C,0x9FA5,0x9B97,0x982E,0x98B4,0x9ABA,0x9EA8,0x9E84,0x717A,0x7B14,
- 0xffff,0x6BFA,0x8818,0x7F78,0xffff,0x5620,0xEE08,0x8E77,0x9F53,0xffff,
- 0x8DD4,0x8E4F,0x9E1C,0x8E01,0x6282,0xEE11,0x8E28,0x8E75,0x7AD3,0xEE15,
- 0x7A3E,0x78D8,0x6CEA,0x8A67,0x7607,
- /* row 160 */
- 64 | (254 << 8), /* first, last */
- 0xEE1B,0x9F26,0x6CCE,0x87D6,0x75C3,0xEE20,
- 0x7853,0xEE22,0x8D0C,0x72E2,0x7371,0x8B2D,0x7302,0x74F1,0x8CEB,0xEE2A,
- 0x862F,0x5FBA,0x88A0,0x44B7,0xffff,0xEE30,0xEE31,0xffff,0x8A7E,0xEE34,
- 0xffff,0x60FD,0x7667,0x9AD7,0x9D44,0x936E,0x9B8F,0x87F5,0xffff,0x880F,
- 0x8CF7,0x732C,0x9721,0x9BB0,0x35D6,0x72B2,0x4C07,0x7C51,0x994A,0xEE48,
- 0x6159,0x4C04,0x9E96,0x617D,0xffff,0x575F,0x616F,0x62A6,0x6239,0x62CE,
- 0x3A5C,0x61E2,0x53AA,0xEE56,0x6364,0x6802,0x35D2,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0x5D57,0xEE5B,0x8FDA,0xEE5D,0xffff,0x50D9,0xEE60,0x7906,0x5332,
- 0x9638,0xEE64,0x4065,0xffff,0x77FE,0xffff,0x7CC2,0xEE6A,0x7CDA,0x7A2D,
- 0x8066,0x8063,0x7D4D,0x7505,0x74F2,0x8994,0x821A,0x670C,0x8062,0xEE76,
- 0x805B,0x74F0,0x8103,0x7724,0x8989,0xEE7C,0x7553,0xEE7E,0x87A9,0x87CE,
- 0x81C8,0x878C,0x8A49,0x8CAD,0x8B43,0x772B,0x74F8,0x84DA,0x3635,0x69B2,
- 0x8DA6,0xffff,0x89A9,0x7468,0x6DB9,0x87C1,0xEE91,0x74E7,0x3DDB,0x7176,
- 0x60A4,0x619C,0x3CD1,0x7162,0x6077,0xffff,0x7F71,0xEE9C,0x7250,0x60E9,
- 0x4B7E,0x5220,0x3C18,0xEEA2,0xEEA3,0xEEA4,0xEEA5,0xEEA6,0xEEA7,0xEEA8,
- 0xEEA9,0xEEAA,0x5CC1,0xEEAC,0xEEAD,0xEEAE,0xEEAF,0xEEB0,0xEEB1,0x4562,
- 0x5B1F,0xEEB4,0x9F50,0x9EA6,0xEEB7,
- /* row 161: --- */
- /* row 162: --- */
- /* row 163: --- */
- /* row 164: --- */
- /* row 165: --- */
- /* row 166: --- */
- /* row 167: --- */
- /* row 168: --- */
- /* row 169: --- */
- /* row 170: --- */
- /* row 171: --- */
- /* row 172: --- */
- /* row 173: --- */
- /* row 174: --- */
- /* row 175: --- */
- /* row 176: --- */
- /* row 177: --- */
- /* row 178: --- */
- /* row 179: --- */
- /* row 180: --- */
- /* row 181: --- */
- /* row 182: --- */
- /* row 183: --- */
- /* row 184: --- */
- /* row 185: --- */
- /* row 186: --- */
- /* row 187: --- */
- /* row 188: --- */
- /* row 189: --- */
- /* row 190: --- */
- /* row 191: --- */
- /* row 192: --- */
- /* row 193: --- */
- /* row 194: --- */
- /* row 195: --- */
- /* row 196: --- */
- /* row 197: --- */
- /* row 198 */
- 161 | (254 << 8), /* first, last */
- 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
- 0x2469,0x2474,0x2475,0x2476,0x2477,0x2478,0x2479,0x247A,0x247B,0x247C,
- 0x247D,0x2170,0x2171,0x2172,0x2173,0x2174,0x2175,0x2176,0x2177,0x2178,
- 0x2179,0x4E36,0x4E3F,0x4E85,0x4EA0,0x5182,0x5196,0x51AB,0x52F9,0x5338,
- 0x5369,0x53B6,0x590A,0x5B80,0x5DDB,0x2F33,0x5E7F,0xF6E0,0x5F50,0x5F61,
- 0x6534,0xF6E4,0x7592,0xF6E6,0x8FB5,0xF6E8,0x00A8,0x02C6,0x30FD,0x30FE,
- 0x309D,0x309E,0xF6EF,0xF6F0,0x3005,0x3006,0x3007,0x30FC,0xFF3B,0xFF3D,
- 0x273D,0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,0x3047,0x3048,0x3049,
- 0x304A,0x304B,0x304C,0x304D,0x304E,0x304F,0x3050,0x3051,0x3052,0x3053,
- 0x3054,0x3055,0x3056,0x3057,0x3058,
- /* row 199 */
- 64 | (254 << 8), /* first, last */
- 0x3059,0x305A,0x305B,0x305C,0x305D,0x305E,
- 0x305F,0x3060,0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,0x3067,0x3068,
- 0x3069,0x306A,0x306B,0x306C,0x306D,0x306E,0x306F,0x3070,0x3071,0x3072,
- 0x3073,0x3074,0x3075,0x3076,0x3077,0x3078,0x3079,0x307A,0x307B,0x307C,
- 0x307D,0x307E,0x307F,0x3080,0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,
- 0x3087,0x3088,0x3089,0x308A,0x308B,0x308C,0x308D,0x308E,0x308F,0x3090,
- 0x3091,0x3092,0x3093,0x30A1,0x30A2,0x30A3,0x30A4,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0x30A5,0x30A6,0x30A7,0x30A8,0x30A9,0x30AA,0x30AB,0x30AC,0x30AD,
- 0x30AE,0x30AF,0x30B0,0x30B1,0x30B2,0x30B3,0x30B4,0x30B5,0x30B6,0x30B7,
- 0x30B8,0x30B9,0x30BA,0x30BB,0x30BC,0x30BD,0x30BE,0x30BF,0x30C0,0x30C1,
- 0x30C2,0x30C3,0x30C4,0x30C5,0x30C6,0x30C7,0x30C8,0x30C9,0x30CA,0x30CB,
- 0x30CC,0x30CD,0x30CE,0x30CF,0x30D0,0x30D1,0x30D2,0x30D3,0x30D4,0x30D5,
- 0x30D6,0x30D7,0x30D8,0x30D9,0x30DA,0x30DB,0x30DC,0x30DD,0x30DE,0x30DF,
- 0x30E0,0x30E1,0x30E2,0x30E3,0x30E4,0x30E5,0x30E6,0x30E7,0x30E8,0x30E9,
- 0x30EA,0x30EB,0x30EC,0x30ED,0x30EE,0x30EF,0x30F0,0x30F1,0x30F2,0x30F3,
- 0x30F4,0x30F5,0x30F6,0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0401,
- 0x0416,0x0417,0x0418,0x0419,0x041A,
- /* row 200 */
- 64 | (254 << 8), /* first, last */
- 0x041B,0x041C,0x041D,0x041E,0x041F,0x0420,
- 0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,0x0428,0x0429,0x042A,
- 0x042B,0x042C,0x042D,0x042E,0x042F,0x0430,0x0431,0x0432,0x0433,0x0434,
- 0x0435,0x0451,0x0436,0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,
- 0x043E,0x043F,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
- 0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F,0x21E7,0x21B8,
- 0x21B9,0xF7E5,0xF7E6,0x4E5A,0xF7E8,0x5202,0xF7EA,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xF7EB,0x5188,0xF7ED,0xF7EE,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xFFE2,0xFFE4,0xFF07,0xFF02,0x3231,
- 0x2116,0x2121,0x309B,0x309C,0x2E80,0x2E84,0x2E86,0x2E87,0x2E88,0x2E8A,
- 0x2E8C,0x2E8D,0x2E95,0x2E9C,0x2E9D,0x2EA5,0x2EA7,0x2EAA,0x2EAC,0x2EAE,
- 0x2EB6,0x2EBC,0x2EBE,0x2EC6,0x2ECA,0x2ECC,0x2ECD,0x2ECF,0x2ED6,0x2ED7,
- 0x2EDE,0x2EE3,0xffff,0xffff,0xffff,0x0283,0x0250,0x025B,0x0254,0x0275,
- 0x0153,0x00F8,0x014B,0x028A,0x026A,
- /* row 201: --- */
- /* row 202: --- */
- /* row 203: --- */
- /* row 204: --- */
- /* row 205: --- */
- /* row 206: --- */
- /* row 207: --- */
- /* row 208: --- */
- /* row 209: --- */
- /* row 210: --- */
- /* row 211: --- */
- /* row 212: --- */
- /* row 213: --- */
- /* row 214: --- */
- /* row 215: --- */
- /* row 216: --- */
- /* row 217: --- */
- /* row 218: --- */
- /* row 219: --- */
- /* row 220: --- */
- /* row 221: --- */
- /* row 222: --- */
- /* row 223: --- */
- /* row 224: --- */
- /* row 225: --- */
- /* row 226: --- */
- /* row 227: --- */
- /* row 228: --- */
- /* row 229: --- */
- /* row 230: --- */
- /* row 231: --- */
- /* row 232: --- */
- /* row 233: --- */
- /* row 234: --- */
- /* row 235: --- */
- /* row 236: --- */
- /* row 237: --- */
- /* row 238: --- */
- /* row 239: --- */
- /* row 240: --- */
- /* row 241: --- */
- /* row 242: --- */
- /* row 243: --- */
- /* row 244: --- */
- /* row 245: --- */
- /* row 246: --- */
- /* row 247: --- */
- /* row 248: --- */
- /* row 249 */
- 214 | (254 << 8), /* first, last */
- 0x7881,0x92B9,0x88CF,0x58BB,0x6052,0x7CA7,
- 0x5AFA,0x2554,0x2566,0x2557,0x2560,0x256C,0x2563,0x255A,0x2569,0x255D,
- 0x2552,0x2564,0x2555,0x255E,0x256A,0x2561,0x2558,0x2567,0x255B,0x2553,
- 0x2565,0x2556,0x255F,0x256B,0x2562,0x2559,0x2568,0x255C,0x2551,0x2550,
- 0x256D,0x256E,0x2570,0x256F,0xFFED,
- /* row 250 */
- 64 | (254 << 8), /* first, last */
- 0xE000,0x92DB,0xE002,0xE003,0x854C,0x42B5,
- 0x73EF,0x51B5,0x3649,0xE009,0xE00A,0x9344,0xE00C,0x82EE,0xE00E,0x783C,
- 0x6744,0x62DF,0xE012,0xE013,0xE014,0xE015,0xE016,0x4FAB,0xE018,0x5008,
- 0xE01A,0xE01B,0xE01C,0xE01D,0xE01E,0x5029,0xE020,0x5FA4,0xE022,0xE023,
- 0x6EDB,0xE025,0x507D,0x5101,0x347A,0x510E,0x986C,0x3743,0x8416,0xE02D,
- 0xE02E,0x5160,0xE030,0x516A,0xE032,0xE033,0xE034,0xE035,0xE036,0xE037,
- 0xE038,0x5B82,0x877D,0xE03B,0xE03C,0x51B2,0x51B8,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0x9D34,0x51C9,0x51CF,0x51D1,0x3CDC,0x51D3,0xE045,0x51B3,0x51E2,
- 0x5342,0x51ED,0x83CD,0x693E,0xE04C,0x5F7B,0x520B,0x5226,0x523C,0x52B5,
- 0x5257,0x5294,0x52B9,0x52C5,0x7C15,0x8542,0x52E0,0x860D,0xE05A,0x5305,
- 0xE05C,0x5549,0x6ED9,0xE05F,0xE060,0xE061,0x5333,0x5344,0xE064,0x6CCB,
- 0xE066,0x681B,0x73D5,0x604A,0x3EAA,0x38CC,0xE06C,0x71DD,0x44A2,0x536D,
- 0x5374,0xE071,0x537E,0x537F,0xE074,0xE075,0x77E6,0x5393,0xE078,0x53A0,
- 0x53AB,0x53AE,0x73A7,0xE07D,0x3F59,0x739C,0x53C1,0x53C5,0x6C49,0x4E49,
- 0x57FE,0x53D9,0x3AAB,0xE087,0x53E0,0xE089,0xE08A,0x53F6,0xE08C,0x5413,
- 0x7079,0x552B,0x6657,0x6D5B,0x546D,0xE093,0xE094,0x555D,0x548F,0x54A4,
- 0x47A6,0xE099,0xE09A,0x3DB4,0xE09C,
- /* row 251 */
- 64 | (254 << 8), /* first, last */
- 0xE09D,0xE09E,0x5547,0x4CED,0x542F,0x7417,
- 0x5586,0x55A9,0x5605,0xE0A6,0xE0A7,0x4552,0xE0A9,0x66B3,0xE0AB,0x5637,
- 0x66CD,0xE0AE,0x66A4,0x66AD,0x564D,0x564F,0x78F1,0x56F1,0x9787,0x53FE,
- 0x5700,0x56EF,0x56ED,0xE0BA,0x3623,0xE0BC,0x5746,0xE0BE,0x6C6E,0x708B,
- 0x5742,0x36B1,0xE0C3,0x57E6,0xE0C5,0x5803,0xE0C7,0xE0C8,0x5826,0xE0CA,
- 0x585C,0x58AA,0x3561,0x58E0,0x58DC,0xE0D0,0x58FB,0x5BFF,0x5743,0xE0D4,
- 0xE0D5,0x93D3,0x35A1,0x591F,0x68A6,0x36C3,0x6E59,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xE0DC,0x5A24,0x5553,0xE0DF,0x8505,0x59C9,0xE0E2,0xE0E3,0xE0E4,
- 0xE0E5,0x59D9,0xE0E7,0xE0E8,0xE0E9,0x6D71,0xE0EB,0xE0EC,0x59F9,0xE0EE,
- 0x5AAB,0x5A63,0x36E6,0xE0F2,0x5A77,0x3708,0x5A96,0x7465,0x5AD3,0xE0F8,
- 0xE0F9,0x3D85,0xE0FB,0x3732,0xE0FD,0x5E83,0x52D0,0x5B76,0x6588,0x5B7C,
- 0xE103,0x4004,0x485D,0xE106,0x5BD5,0x6160,0xE109,0xE10A,0xE10B,0x5BF3,
- 0x5B9D,0x4D10,0x5C05,0xE110,0x5C13,0x73CE,0x5C14,0xE114,0xE115,0x5C49,
- 0x48DD,0x5C85,0x5CE9,0x5CEF,0x5D8B,0xE11C,0xE11D,0x5D10,0x5D18,0x5D46,
- 0xE121,0x5CBA,0x5DD7,0x82FC,0x382D,0xE126,0xE127,0xE128,0x8287,0x3836,
- 0x3BC2,0x5E2E,0x6A8A,0x5E75,0x5E7A,0xE130,0xE131,0x53A6,0x4EB7,0x5ED0,
- 0x53A8,0xE136,0x5E09,0x5EF4,0xE139,
- /* row 252 */
- 64 | (254 << 8), /* first, last */
- 0x5EF9,0x5EFB,0x38A0,0x5EFC,0x683E,0x941B,
- 0x5F0D,0xE141,0xE142,0x3ADE,0x48AE,0xE145,0x5F3A,0xE147,0xE148,0x5F58,
- 0xE14A,0x5F63,0x97BD,0xE14D,0x5F72,0x9340,0xE150,0x5FA7,0x5DB6,0x3D5F,
- 0xE154,0xE155,0xE156,0xE157,0x91D6,0xE159,0xE15A,0x6031,0x6685,0xE15D,
- 0x3963,0x3DC7,0x3639,0x5790,0xE162,0x7971,0x3E40,0x609E,0x60A4,0x60B3,
- 0xE168,0xE169,0xE16A,0x74A4,0x50E1,0x5AA0,0x6164,0x8424,0x6142,0xE171,
- 0xE172,0x6181,0x51F4,0xE175,0x6187,0x5BAA,0xE178,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xE179,0x61D3,0xE17B,0xE17C,0x61D0,0x3932,0xE17F,0xE180,0x6023,
- 0x615C,0x651E,0x638B,0xE185,0x62C5,0xE187,0x62D5,0xE189,0x636C,0xE18B,
- 0x3A17,0x6438,0x63F8,0xE18F,0xE190,0x6490,0x6F8A,0xE193,0x9814,0xE195,
- 0xE196,0x64E1,0x64E5,0x947B,0x3A66,0x643A,0x3A57,0x654D,0x6F16,0xE19F,
- 0xE1A0,0x6585,0x656D,0x655F,0xE1A4,0x65B5,0xE1A6,0x4B37,0x65D1,0x40D8,
- 0xE1AA,0x65E0,0x65E3,0x5FDF,0xE1AE,0x6618,0xE1B0,0xE1B1,0x6644,0xE1B3,
- 0xE1B4,0x664B,0xE1B6,0x6667,0xE1B8,0x6673,0x6674,0xE1BB,0xE1BC,0xE1BD,
- 0xE1BE,0xE1BF,0x77C5,0xE1C1,0x99A4,0x6702,0xE1C4,0xE1C5,0x3B2B,0x69FA,
- 0xE1C8,0x675E,0x6767,0x6762,0xE1CC,0xE1CD,0x67D7,0x44E9,0x6822,0x6E50,
- 0x923C,0x6801,0xE1D4,0xE1D5,0x685D,
- /* row 253 */
- 64 | (254 << 8), /* first, last */
- 0xE1D7,0x69E1,0x6A0B,0xE1DA,0x6973,0x68C3,
- 0xE1DD,0x6901,0x6900,0x3D32,0x3A01,0xE1E2,0x3B80,0x67AC,0x6961,0xE1E6,
- 0x42FC,0x6936,0x6998,0x3BA1,0xE1EB,0x8363,0x5090,0x69F9,0xE1EF,0xE1F0,
- 0x6A45,0xE1F2,0x6A9D,0x3BF3,0x67B1,0x6AC8,0xE1F7,0x3C0D,0x6B1D,0xE1FA,
- 0x60DE,0x6B35,0x6B74,0xE1FE,0x6EB5,0xE200,0xE201,0xE202,0x3740,0x5421,
- 0xE205,0x6BE1,0xE207,0x6BDC,0x6C37,0xE20A,0xE20B,0xE20C,0x6C5A,0x8226,
- 0x6C79,0xE210,0x44C5,0xE212,0xE213,0xE214,0xE215,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xE216,0x36E5,0x3CEB,0xE219,0x9B83,0xE21B,0xE21C,0x7F8F,0x6837,
- 0xE21F,0xE220,0xE221,0x6D96,0x6D5C,0x6E7C,0x6F04,0xE226,0xE227,0xE228,
- 0x8533,0xE22A,0x51C7,0x6C9C,0x6E1D,0x842E,0xE22F,0x6E2F,0xE231,0x7453,
- 0xE233,0x79CC,0x6E4F,0x5A91,0xE237,0x6FF8,0x370D,0x6F9D,0xE23B,0x6EFA,
- 0xE23D,0xE23E,0x4555,0x93F0,0x6F44,0x6F5C,0x3D4E,0x6F74,0xE245,0x3D3B,
- 0x6F9F,0xE248,0x6FD3,0xE24A,0xE24B,0xE24C,0xE24D,0xE24E,0xE24F,0x51DF,
- 0xE251,0xE252,0xE253,0xE254,0x704B,0x707E,0x70A7,0x7081,0x70CC,0x70D5,
- 0x70D6,0x70DF,0x4104,0x3DE8,0x71B4,0x7196,0xE261,0x712B,0x7145,0x5A88,
- 0x714A,0x716E,0x5C9C,0xE268,0x714F,0x9362,0xE26B,0x712C,0xE26D,0xE26E,
- 0xE26F,0x71BA,0xE271,0x70BD,0x720E,
- /* row 254 */
- 64 | (254 << 8), /* first, last */
- 0x9442,0x7215,0x5911,0x9443,0x7224,0x9341,
- 0xE27A,0x722E,0x7240,0xE27D,0x68BD,0x7255,0x7257,0x3E55,0xE282,0x680D,
- 0x6F3D,0x7282,0x732A,0x732B,0xE288,0xE289,0x48ED,0xE28B,0x7328,0x732E,
- 0x73CF,0x73AA,0xE290,0xE291,0x73C9,0x7449,0xE294,0xE295,0xE296,0x6623,
- 0x36C5,0xE299,0xE29A,0xE29B,0x73F7,0x7415,0x6903,0xE29F,0x7439,0xE2A1,
- 0x3ED7,0x745C,0xE2A4,0x7460,0xE2A6,0x7447,0x73E4,0x7476,0x83B9,0x746C,
- 0x3730,0x7474,0x93F1,0x6A2C,0x7482,0x4953,0xE2B2,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xE2B3,0xE2B4,0xE2B5,0x5B46,0xE2B7,0xE2B8,0x74C8,0xE2BA,0x750E,
- 0x74E9,0x751E,0xE2BE,0xE2BF,0x5BD7,0xE2C1,0x9385,0x754D,0x754A,0x7567,
- 0x756E,0xE2C7,0x3F04,0xE2C9,0x758E,0x745D,0x759E,0x75B4,0x7602,0x762C,
- 0x7651,0x764F,0x766F,0x7676,0xE2D4,0x7690,0x81EF,0x37F8,0xE2D8,0xE2D9,
- 0x76A1,0x76A5,0x76B7,0x76CC,0xE2DE,0x8462,0xE2E0,0xE2E1,0xE2E2,0x771E,
- 0x7726,0x7740,0x64AF,0xE2E7,0x7758,0xE2E9,0x77AF,0xE2EB,0xE2EC,0xE2ED,
- 0x77F4,0x7809,0xE2F0,0xE2F1,0x68CA,0x78AF,0x78C7,0x78D3,0x96A5,0x792E,
- 0xE2F8,0x78D7,0x7934,0x78B1,0xE2FC,0x8FB8,0x8884,0xE2FF,0xE300,0xE301,
- 0x7986,0x8900,0x6902,0x7980,0xE306,0x799D,0xE308,0x793C,0x79A9,0x6E2A,
- 0xE30C,0x3EA8,0x79C6,0xE30F,0x79D4,
- /* row 255: --- */
-};
-
-static sal_Int32 const aImplBig5Hkscs2001ToUnicodeRowOffsets[] = {
- -1, /* row 0 */
- -1, /* row 1 */
- -1, /* row 2 */
- -1, /* row 3 */
- -1, /* row 4 */
- -1, /* row 5 */
- -1, /* row 6 */
- -1, /* row 7 */
- -1, /* row 8 */
- -1, /* row 9 */
- -1, /* row 10 */
- -1, /* row 11 */
- -1, /* row 12 */
- -1, /* row 13 */
- -1, /* row 14 */
- -1, /* row 15 */
- -1, /* row 16 */
- -1, /* row 17 */
- -1, /* row 18 */
- -1, /* row 19 */
- -1, /* row 20 */
- -1, /* row 21 */
- -1, /* row 22 */
- -1, /* row 23 */
- -1, /* row 24 */
- -1, /* row 25 */
- -1, /* row 26 */
- -1, /* row 27 */
- -1, /* row 28 */
- -1, /* row 29 */
- -1, /* row 30 */
- -1, /* row 31 */
- -1, /* row 32 */
- -1, /* row 33 */
- -1, /* row 34 */
- -1, /* row 35 */
- -1, /* row 36 */
- -1, /* row 37 */
- -1, /* row 38 */
- -1, /* row 39 */
- -1, /* row 40 */
- -1, /* row 41 */
- -1, /* row 42 */
- -1, /* row 43 */
- -1, /* row 44 */
- -1, /* row 45 */
- -1, /* row 46 */
- -1, /* row 47 */
- -1, /* row 48 */
- -1, /* row 49 */
- -1, /* row 50 */
- -1, /* row 51 */
- -1, /* row 52 */
- -1, /* row 53 */
- -1, /* row 54 */
- -1, /* row 55 */
- -1, /* row 56 */
- -1, /* row 57 */
- -1, /* row 58 */
- -1, /* row 59 */
- -1, /* row 60 */
- -1, /* row 61 */
- -1, /* row 62 */
- -1, /* row 63 */
- -1, /* row 64 */
- -1, /* row 65 */
- -1, /* row 66 */
- -1, /* row 67 */
- -1, /* row 68 */
- -1, /* row 69 */
- -1, /* row 70 */
- -1, /* row 71 */
- -1, /* row 72 */
- -1, /* row 73 */
- -1, /* row 74 */
- -1, /* row 75 */
- -1, /* row 76 */
- -1, /* row 77 */
- -1, /* row 78 */
- -1, /* row 79 */
- -1, /* row 80 */
- -1, /* row 81 */
- -1, /* row 82 */
- -1, /* row 83 */
- -1, /* row 84 */
- -1, /* row 85 */
- -1, /* row 86 */
- -1, /* row 87 */
- -1, /* row 88 */
- -1, /* row 89 */
- -1, /* row 90 */
- -1, /* row 91 */
- -1, /* row 92 */
- -1, /* row 93 */
- -1, /* row 94 */
- -1, /* row 95 */
- -1, /* row 96 */
- -1, /* row 97 */
- -1, /* row 98 */
- -1, /* row 99 */
- -1, /* row 100 */
- -1, /* row 101 */
- -1, /* row 102 */
- -1, /* row 103 */
- -1, /* row 104 */
- -1, /* row 105 */
- -1, /* row 106 */
- -1, /* row 107 */
- -1, /* row 108 */
- -1, /* row 109 */
- -1, /* row 110 */
- -1, /* row 111 */
- -1, /* row 112 */
- -1, /* row 113 */
- -1, /* row 114 */
- -1, /* row 115 */
- -1, /* row 116 */
- -1, /* row 117 */
- -1, /* row 118 */
- -1, /* row 119 */
- -1, /* row 120 */
- -1, /* row 121 */
- -1, /* row 122 */
- -1, /* row 123 */
- -1, /* row 124 */
- -1, /* row 125 */
- -1, /* row 126 */
- -1, /* row 127 */
- -1, /* row 128 */
- -1, /* row 129 */
- -1, /* row 130 */
- -1, /* row 131 */
- -1, /* row 132 */
- -1, /* row 133 */
- -1, /* row 134 */
- -1, /* row 135 */
- 0, /* row 136; 148/216 bytes (68.5%) */
- 108, /* row 137; 288/384 bytes (75.0%) */
- 300, /* row 138; 294/384 bytes (76.6%) */
- 492, /* row 139; 310/382 bytes (81.2%) */
- 683, /* row 140; 234/316 bytes (74.1%) */
- 841, /* row 141; 252/320 bytes (78.8%) */
- 1001, /* row 142; 316/384 bytes (82.3%) */
- 1193, /* row 143; 316/384 bytes (82.3%) */
- 1385, /* row 144; 316/384 bytes (82.3%) */
- 1577, /* row 145; 316/384 bytes (82.3%) */
- 1769, /* row 146; 316/384 bytes (82.3%) */
- 1961, /* row 147; 316/384 bytes (82.3%) */
- 2153, /* row 148; 316/384 bytes (82.3%) */
- 2345, /* row 149; 316/384 bytes (82.3%) */
- 2537, /* row 150; 316/384 bytes (82.3%) */
- 2729, /* row 151; 316/384 bytes (82.3%) */
- 2921, /* row 152; 316/384 bytes (82.3%) */
- 3113, /* row 153; 316/384 bytes (82.3%) */
- 3305, /* row 154; 316/384 bytes (82.3%) */
- 3497, /* row 155; 314/384 bytes (81.8%) */
- 3689, /* row 156; 316/384 bytes (82.3%) */
- 3881, /* row 157; 316/384 bytes (82.3%) */
- 4073, /* row 158; 310/384 bytes (80.7%) */
- 4265, /* row 159; 298/384 bytes (77.6%) */
- 4457, /* row 160; 296/384 bytes (77.1%) */
- -1, /* row 161 */
- -1, /* row 162 */
- -1, /* row 163 */
- -1, /* row 164 */
- -1, /* row 165 */
- -1, /* row 166 */
- -1, /* row 167 */
- -1, /* row 168 */
- -1, /* row 169 */
- -1, /* row 170 */
- -1, /* row 171 */
- -1, /* row 172 */
- -1, /* row 173 */
- -1, /* row 174 */
- -1, /* row 175 */
- -1, /* row 176 */
- -1, /* row 177 */
- -1, /* row 178 */
- -1, /* row 179 */
- -1, /* row 180 */
- -1, /* row 181 */
- -1, /* row 182 */
- -1, /* row 183 */
- -1, /* row 184 */
- -1, /* row 185 */
- -1, /* row 186 */
- -1, /* row 187 */
- -1, /* row 188 */
- -1, /* row 189 */
- -1, /* row 190 */
- -1, /* row 191 */
- -1, /* row 192 */
- -1, /* row 193 */
- -1, /* row 194 */
- -1, /* row 195 */
- -1, /* row 196 */
- -1, /* row 197 */
- 4649, /* row 198; 190/190 bytes (100.0%) */
- 4744, /* row 199; 316/384 bytes (82.3%) */
- 4936, /* row 200; 230/384 bytes (59.9%) */
- -1, /* row 201 */
- -1, /* row 202 */
- -1, /* row 203 */
- -1, /* row 204 */
- -1, /* row 205 */
- -1, /* row 206 */
- -1, /* row 207 */
- -1, /* row 208 */
- -1, /* row 209 */
- -1, /* row 210 */
- -1, /* row 211 */
- -1, /* row 212 */
- -1, /* row 213 */
- -1, /* row 214 */
- -1, /* row 215 */
- -1, /* row 216 */
- -1, /* row 217 */
- -1, /* row 218 */
- -1, /* row 219 */
- -1, /* row 220 */
- -1, /* row 221 */
- -1, /* row 222 */
- -1, /* row 223 */
- -1, /* row 224 */
- -1, /* row 225 */
- -1, /* row 226 */
- -1, /* row 227 */
- -1, /* row 228 */
- -1, /* row 229 */
- -1, /* row 230 */
- -1, /* row 231 */
- -1, /* row 232 */
- -1, /* row 233 */
- -1, /* row 234 */
- -1, /* row 235 */
- -1, /* row 236 */
- -1, /* row 237 */
- -1, /* row 238 */
- -1, /* row 239 */
- -1, /* row 240 */
- -1, /* row 241 */
- -1, /* row 242 */
- -1, /* row 243 */
- -1, /* row 244 */
- -1, /* row 245 */
- -1, /* row 246 */
- -1, /* row 247 */
- -1, /* row 248 */
- 5128, /* row 249; 84/84 bytes (100.0%) */
- 5170, /* row 250; 316/384 bytes (82.3%) */
- 5362, /* row 251; 316/384 bytes (82.3%) */
- 5554, /* row 252; 316/384 bytes (82.3%) */
- 5746, /* row 253; 316/384 bytes (82.3%) */
- 5938, /* row 254; 316/384 bytes (82.3%) */
- -1, /* row 255 */
-};
-
-static sal_uInt16 const aImplUnicodeToBig5Hkscs2001Data[] = {
- /* plane 0, page 0 */
- 168 | (252 << 8), /* first, last */
- 0xC6D8, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8859,0x8857, 0, 0, 0, 0, 0, 0,
- 0x885D,0x885B,0x8866, 0, 0, 0, 0, 0, 0, 0,
- 0x8861,0x885F, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x886A,0x8868, 0, 0, 0, 0,
- 0, 0,0x886F,0x886D,0x88A7, 0,0x8873,0x8871, 0, 0,
- 0, 0,0x8877,0x8875, 0, 0, 0, 0,0xC8FB,0x887B,
- 0x8879, 0,0x88A2,
- /* plane 0, page 1 */
- 0 | (220 << 8), /* first, last */
- 0x8856,0x8867, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x885A,0x886C,
- 0, 0, 0, 0, 0, 0,0x885C,0x886E, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8870, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xC8FC,0x885E,0x8874, 0, 0,
- 0, 0, 0,0xC8FA, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8878, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8858,0x8869, 0,0x8872,0x8860,
- 0x8876, 0,0x887A, 0,0x887C, 0,0x887D, 0,0x887E, 0,
- 0x88A1,
- /* plane 0, page 2 */
- 80 | (198 << 8), /* first, last */
- 0xC8F6,0x886B, 0, 0,0xC8F8, 0, 0, 0, 0, 0,
- 0,0xC8F7, 0, 0, 0, 0, 0,0x88A8, 0, 0,
- 0, 0, 0, 0, 0, 0,0xC8FE, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xC8F9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xC8F5, 0, 0, 0, 0, 0, 0,0xC8FD, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xC6D9,
- /* plane 0, page 3: --- */
- /* plane 0, page 4 */
- 1 | (81 << 8), /* first, last */
- 0xC7F9, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xC7F3,0xC7F4,0xC7F5,0xC7F6,
- 0xC7F7,0xC7F8,0xC7FA,0xC7FB,0xC7FC,0xC7FD,0xC7FE,0xC840,0xC841,0xC842,
- 0xC843,0xC844,0xC845,0xC846,0xC847,0xC848,0xC849,0xC84A,0xC84B,0xC84C,
- 0xC84D,0xC84E,0xC84F,0xC850,0xC851,0xC852,0xC853,0xC854,0xC855,0xC856,
- 0xC857,0xC858,0xC859,0xC85A,0xC85C,0xC85D,0xC85E,0xC85F,0xC860,0xC861,
- 0xC862,0xC863,0xC864,0xC865,0xC866,0xC867,0xC868,0xC869,0xC86A,0xC86B,
- 0xC86C,0xC86D,0xC86E,0xC86F,0xC870,0xC871,0xC872,0xC873,0xC874,0xC875,
- 0,0xC85B,
- /* plane 0, page 5: --- */
- /* plane 0, page 6: --- */
- /* plane 0, page 7: --- */
- /* plane 0, page 8: --- */
- /* plane 0, page 9: --- */
- /* plane 0, page 10: --- */
- /* plane 0, page 11: --- */
- /* plane 0, page 12: --- */
- /* plane 0, page 13: --- */
- /* plane 0, page 14: --- */
- /* plane 0, page 15: --- */
- /* plane 0, page 16: --- */
- /* plane 0, page 17: --- */
- /* plane 0, page 18: --- */
- /* plane 0, page 19: --- */
- /* plane 0, page 20: --- */
- /* plane 0, page 21: --- */
- /* plane 0, page 22: --- */
- /* plane 0, page 23: --- */
- /* plane 0, page 24: --- */
- /* plane 0, page 25: --- */
- /* plane 0, page 26: --- */
- /* plane 0, page 27: --- */
- /* plane 0, page 28: --- */
- /* plane 0, page 29: --- */
- /* plane 0, page 30 */
- 190 | (193 << 8), /* first, last */
- 0x8863,0x88A4,0x8865,0x88A6,
- /* plane 0, page 31: --- */
- /* plane 0, page 32: --- */
- /* plane 0, page 33 */
- 22 | (231 << 8), /* first, last */
- 0xC8D2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xC8D3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xC6B5,0xC6B6,0xC6B7,0xC6B8,0xC6B9,0xC6BA,0xC6BB,0xC6BC,
- 0xC6BD,0xC6BE, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xC877,0xC878, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xC876,
- /* plane 0, page 34: --- */
- /* plane 0, page 35: --- */
- /* plane 0, page 36 */
- 96 | (125 << 8), /* first, last */
- 0xC6A1,0xC6A2,0xC6A3,0xC6A4,
- 0xC6A5,0xC6A6,0xC6A7,0xC6A8,0xC6A9,0xC6AA, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xC6AB,0xC6AC,0xC6AD,0xC6AE,
- 0xC6AF,0xC6B0,0xC6B1,0xC6B2,0xC6B3,0xC6B4,
- /* plane 0, page 37 */
- 80 | (112 << 8), /* first, last */
- 0xF9F9,0xF9F8,0xF9E6,0xF9EF,0xF9DD,0xF9E8,0xF9F1,0xF9DF,0xF9EC,0xF9F5,
- 0xF9E3,0xF9EE,0xF9F7,0xF9E5,0xF9E9,0xF9F2,0xF9E0,0xF9EB,0xF9F4,0xF9E2,
- 0xF9E7,0xF9F0,0xF9DE,0xF9ED,0xF9F6,0xF9E4,0xF9EA,0xF9F3,0xF9E1,0xF9FA,
- 0xF9FB,0xF9FD,0xF9FC,
- /* plane 0, page 38: --- */
- /* plane 0, page 39 */
- 61 | (61 << 8), /* first, last */
- 0xC6E6,
- /* plane 0, page 40: --- */
- /* plane 0, page 41: --- */
- /* plane 0, page 42: --- */
- /* plane 0, page 43: --- */
- /* plane 0, page 44: --- */
- /* plane 0, page 45: --- */
- /* plane 0, page 46 */
- 128 | (227 << 8), /* first, last */
- 0xC8D6, 0,
- 0, 0,0xC8D7, 0,0xC8D8,0xC8D9,0xC8DA, 0,0xC8DB, 0,
- 0xC8DC,0xC8DD, 0, 0, 0, 0, 0, 0, 0,0xC8DE,
- 0, 0, 0, 0, 0, 0,0xC8DF,0xC8E0, 0, 0,
- 0, 0, 0, 0, 0,0xC8E1, 0,0xC8E2, 0, 0,
- 0xC8E3, 0,0xC8E4, 0,0xC8E5, 0, 0, 0, 0, 0,
- 0, 0,0xC8E6, 0, 0, 0, 0, 0,0xC8E7, 0,
- 0xC8E8, 0, 0, 0, 0, 0, 0, 0,0xC8E9, 0,
- 0, 0,0xC8EA, 0,0xC8EB,0xC8EC, 0,0xC8ED, 0, 0,
- 0, 0, 0, 0,0xC8EE,0xC8EF, 0, 0, 0, 0,
- 0, 0,0xC8F0, 0, 0, 0, 0,0xC8F1,
- /* plane 0, page 47 */
- 51 | (51 << 8), /* first, last */
- 0xC6CD,
- /* plane 0, page 48 */
- 5 | (254 << 8), /* first, last */
- 0xC6E0,0xC6E1,0xC6E2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xC6E7,0xC6E8,0xC6E9,0xC6EA,0xC6EB,
- 0xC6EC,0xC6ED,0xC6EE,0xC6EF,0xC6F0,0xC6F1,0xC6F2,0xC6F3,0xC6F4,0xC6F5,
- 0xC6F6,0xC6F7,0xC6F8,0xC6F9,0xC6FA,0xC6FB,0xC6FC,0xC6FD,0xC6FE,0xC740,
- 0xC741,0xC742,0xC743,0xC744,0xC745,0xC746,0xC747,0xC748,0xC749,0xC74A,
- 0xC74B,0xC74C,0xC74D,0xC74E,0xC74F,0xC750,0xC751,0xC752,0xC753,0xC754,
- 0xC755,0xC756,0xC757,0xC758,0xC759,0xC75A,0xC75B,0xC75C,0xC75D,0xC75E,
- 0xC75F,0xC760,0xC761,0xC762,0xC763,0xC764,0xC765,0xC766,0xC767,0xC768,
- 0xC769,0xC76A,0xC76B,0xC76C,0xC76D,0xC76E,0xC76F,0xC770,0xC771,0xC772,
- 0xC773,0xC774,0xC775,0xC776,0xC777,0xC778,0xC779,0xC77A, 0, 0,
- 0, 0, 0, 0, 0,0xC8D4,0xC8D5,0xC6DC,0xC6DD, 0,
- 0,0xC77B,0xC77C,0xC77D,0xC77E,0xC7A1,0xC7A2,0xC7A3,0xC7A4,0xC7A5,
- 0xC7A6,0xC7A7,0xC7A8,0xC7A9,0xC7AA,0xC7AB,0xC7AC,0xC7AD,0xC7AE,0xC7AF,
- 0xC7B0,0xC7B1,0xC7B2,0xC7B3,0xC7B4,0xC7B5,0xC7B6,0xC7B7,0xC7B8,0xC7B9,
- 0xC7BA,0xC7BB,0xC7BC,0xC7BD,0xC7BE,0xC7BF,0xC7C0,0xC7C1,0xC7C2,0xC7C3,
- 0xC7C4,0xC7C5,0xC7C6,0xC7C7,0xC7C8,0xC7C9,0xC7CA,0xC7CB,0xC7CC,0xC7CD,
- 0xC7CE,0xC7CF,0xC7D0,0xC7D1,0xC7D2,0xC7D3,0xC7D4,0xC7D5,0xC7D6,0xC7D7,
- 0xC7D8,0xC7D9,0xC7DA,0xC7DB,0xC7DC,0xC7DD,0xC7DE,0xC7DF,0xC7E0,0xC7E1,
- 0xC7E2,0xC7E3,0xC7E4,0xC7E5,0xC7E6,0xC7E7,0xC7E8,0xC7E9,0xC7EA,0xC7EB,
- 0xC7EC,0xC7ED,0xC7EE,0xC7EF,0xC7F0,0xC7F1,0xC7F2, 0, 0, 0,
- 0, 0,0xC6E3,0xC6DA,0xC6DB,
- /* plane 0, page 49: --- */
- /* plane 0, page 50 */
- 49 | (49 << 8), /* first, last */
- 0xC8D1,
- /* plane 0, page 51: --- */
- /* plane 0, page 52 */
- 53 | (251 << 8), /* first, last */
- 0x9277, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x96DF, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x89D5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x93CD, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9BDF, 0, 0, 0, 0,
- 0, 0,0xFA68, 0, 0,0x89DA,0x8F59, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x89DB, 0, 0,
- 0x8F5D, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x89DC, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x96F7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8ADA, 0,
- 0, 0, 0,0x8BDC, 0, 0, 0, 0, 0, 0,
- 0x97DB, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9E53, 0, 0, 0, 0,0x9DAA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9BEA,
- /* plane 0, page 53 */
- 6 | (254 << 8), /* first, last */
- 0x8A6E, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8BC8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x89E8, 0,0x89EA, 0, 0, 0, 0, 0,0x8C4B,
- 0, 0, 0, 0, 0, 0, 0,0xFB70, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x89ED,
- 0, 0,0x94DD, 0,0x89EE, 0, 0, 0, 0,0x9EB4,
- 0x8AD3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x92DB, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x94DB,0x89F9, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFB7A, 0, 0, 0,0x89FB, 0, 0, 0, 0,
- 0, 0, 0,0x9EFC, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x89FC, 0,0x89BF, 0, 0, 0,0x89FE, 0,0x89E6,
- 0, 0,0x9D46, 0, 0, 0,0x9DEE, 0, 0, 0,
- 0xA07E, 0, 0, 0,0xA068, 0, 0, 0, 0,0x98E9,
- 0,0x8B68, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8DFD,0x8BBE,0x9FD9, 0, 0, 0, 0, 0, 0,
- 0,0x8AEB, 0, 0,0x9FD7,
- /* plane 0, page 54 */
- 9 | (245 << 8), /* first, last */
- 0x8B6A,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9C5C, 0,0x8BB1, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFB5E, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9DF3, 0, 0, 0, 0,
- 0, 0, 0,0xA0D0, 0, 0, 0,0xFC66, 0, 0,
- 0, 0,0x92E9, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9AEC,0x8FAB,0xFA48, 0, 0, 0, 0,0x8E45, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9C6F, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9EDE, 0, 0, 0, 0, 0, 0,0x89EF,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x96E9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9EBB, 0, 0, 0, 0,
- 0x94DE, 0,0x9EB8, 0, 0, 0,0x97BA,0xFB65, 0, 0,
- 0,0x95D6, 0, 0, 0,0x9CBB, 0, 0,0x97DA, 0,
- 0, 0, 0,0x8F45, 0,0xFB7D,0x9158,0xFE64, 0,0x9856,
- 0x9B4D, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x935B,0x95C7, 0,0x97E7, 0, 0, 0, 0, 0,
- 0,0x9359, 0, 0, 0,0x91F5,0x97B8, 0, 0,0xFDA2,
- 0xFBB6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x92FA,
- /* plane 0, page 55 */
- 1 | (251 << 8), /* first, last */
- 0x9357, 0,0x8BA6, 0, 0, 0, 0,0xFBB9, 0,
- 0x97B0, 0, 0,0xFDC4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9CA1, 0,
- 0, 0, 0, 0,0x91F2,0x91F9, 0,0x8FF1, 0, 0,
- 0, 0, 0, 0,0x9745,0x9853, 0, 0,0xFE78, 0,
- 0xFBC1,0x9251, 0, 0, 0, 0, 0, 0,0x9DAD, 0,
- 0, 0, 0, 0,0xFD6C, 0, 0,0xFA6B, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9BC2, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9A7B, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8B60, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x934B, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9ABD, 0, 0, 0, 0,
- 0x91B7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x95B4, 0, 0, 0, 0, 0,0xFEC5, 0,
- 0,0x9EF0,
- /* plane 0, page 56 */
- 15 | (250 << 8), /* first, last */
- 0x8D64, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9269, 0, 0, 0, 0,
- 0, 0,0x8D67, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFBEA, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFBEF, 0,0x8D68, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x93EB,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFC42, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9166, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFACD, 0, 0, 0, 0,0x93DD,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8BCC,
- /* plane 0, page 57 */
- 8 | (254 << 8), /* first, last */
- 0x8D6D, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8D6E, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x96A8,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFCA6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8D6F, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8D70, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFC64,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9060, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8D74,0x97C3, 0,
- 0, 0, 0, 0, 0, 0,0x8AD0, 0, 0, 0,
- 0, 0, 0,0x9274, 0,0x9BBE, 0, 0, 0, 0,
- 0,0x9CC8, 0, 0,0x9CBA, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8D78, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9EB9, 0, 0, 0, 0, 0,0x955A, 0, 0,0x91B4,
- 0, 0, 0, 0, 0, 0,0x8A48, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8D7D, 0,
- 0,0x8A7D, 0, 0,0x8AC2,
- /* plane 0, page 58 */
- 1 | (251 << 8), /* first, last */
- 0xFD4A, 0,0x8DA1, 0, 0,0x8AD1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFCB4,0x8B47, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x93A4,0x9EDA, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8A51, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8DA6, 0, 0, 0, 0,
- 0, 0,0x9EC5, 0, 0, 0, 0,0xFCC4, 0, 0,
- 0, 0,0xA078, 0,0x94B5, 0, 0, 0, 0, 0,
- 0, 0,0xFCC2,0x8A6B, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8DAB, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFAE8, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8DAD,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFC49, 0,0x93C1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x906F, 0,0x8DB0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x947E,
- /* plane 0, page 59 */
- 14 | (244 << 8), /* first, last */
- 0x90FA, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9479, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8DB2, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFCEE, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x997B, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8DB4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8DB7, 0,
- 0, 0, 0, 0, 0, 0,0x91B3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8DBB,0x8DBA, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8DBC,0x9044, 0, 0, 0,0xFD4C, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x93E4, 0, 0,0x93E0, 0, 0, 0, 0, 0, 0,
- 0,0xFD53, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8DC3, 0,
- 0x9BB8, 0, 0, 0,0xFBF0, 0,0x93E9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x93F6, 0, 0, 0, 0,
- 0,0x8DC5, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8DCA, 0, 0, 0,
- 0, 0,0x8DCC,0xFD5D,0x93B5,
- /* plane 0, page 60 */
- 13 | (239 << 8), /* first, last */
- 0xFD61, 0, 0, 0,0x9CF8, 0, 0,
- 0,0x9252, 0, 0,0xA0E8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9CA5, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8C56,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8DD6, 0,0x97C0, 0, 0, 0,0xA0DE,
- 0, 0, 0, 0,0x97D2, 0, 0, 0, 0, 0,
- 0xFAA5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFDA3, 0, 0, 0,0x8DDB,
- /* plane 0, page 61 */
- 19 | (253 << 8), /* first, last */
- 0x8EAF,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x91B5,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFD49, 0, 0, 0, 0, 0, 0, 0, 0,0xFDD1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8DEB, 0, 0, 0, 0, 0,0x97C6, 0,0xFDCE, 0,
- 0,0x90FC, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFC59, 0, 0,0x96D6, 0,
- 0, 0, 0, 0, 0,0x97C5,0x8DEF, 0, 0, 0,
- 0,0x97D7, 0, 0, 0, 0, 0,0x8DF0, 0, 0,
- 0, 0, 0, 0, 0,0x96A6, 0, 0, 0, 0,
- 0, 0, 0,0xFBBF, 0, 0, 0, 0,0x8DF3, 0,
- 0, 0, 0,0x9449, 0,0x8DF5, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9872, 0, 0, 0, 0,
- 0, 0, 0,0x8E6B, 0, 0, 0, 0, 0, 0,
- 0xFAFD, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8F50, 0, 0, 0, 0, 0, 0,0x9DCC,0xFC65,
- 0,0x8C44, 0, 0,0x996E,0x94A1, 0, 0, 0, 0,
- 0,0x8F63, 0, 0, 0, 0, 0, 0, 0,0xA0DA,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9253,0xFDE9, 0, 0,0x9DB5, 0, 0, 0, 0,
- 0, 0, 0,0x9879, 0, 0, 0,0x9D5D, 0, 0,
- 0, 0,0x8D63,0x9669,
- /* plane 0, page 62 */
- 6 | (255 << 8), /* first, last */
- 0x9F70, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFC6A, 0, 0,0x8AC7, 0, 0,
- 0, 0,0x89D7, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFE4D, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9EDD, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xFEFB,0x98BC,
- 0xFACC, 0, 0,0x95B0, 0, 0, 0,0x9464, 0, 0,
- 0, 0, 0, 0,0x936F, 0, 0, 0, 0, 0,
- 0,0x94B9, 0, 0,0x95EC, 0, 0, 0, 0,0x91EE,
- 0, 0,0x98C3, 0,0x95F6, 0, 0, 0,0x8FFD,0x98C5,
- 0, 0, 0, 0,0x9766,0xFE6E, 0, 0,0x97DD,0x8CAA,
- 0, 0,0x92D2, 0, 0,0x9761,0x98CB, 0, 0, 0,
- 0,0x95F0, 0,0x975D, 0,0x91E3, 0, 0, 0, 0,
- 0x98CC, 0, 0,0x9469,0x98CD, 0, 0, 0, 0, 0,
- 0x98CE, 0,0x95FC, 0, 0,0x94A3,
- /* plane 0, page 63 */
- 0 | (250 << 8), /* first, last */
- 0x9662, 0, 0, 0,0xFEB6, 0,0x9463, 0, 0, 0,
- 0, 0, 0, 0,0x98D0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x98D1, 0, 0, 0, 0,0x9475,0xFAE0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9472,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x98D6, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8AF0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x98D9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x98DB, 0, 0, 0, 0,
- 0x98DD, 0, 0, 0, 0, 0, 0, 0, 0,0x98A8,
- 0, 0, 0, 0, 0, 0, 0,0x8A6D, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8AFB,
- 0x8AAE,
- /* plane 0, page 64 */
- 4 | (250 << 8), /* first, last */
- 0xFBC9, 0, 0, 0, 0,0x8C5D,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x98E4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x98E6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x98E8,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8A4D, 0, 0, 0,0x9257, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x95DF, 0,
- 0,0xA0AC, 0, 0, 0, 0,0x98EB, 0, 0, 0,
- 0,0x98EC, 0,0x8CC3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x98F4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8AB8, 0, 0,
- 0,0x9EE7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x94BC, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFCD1, 0, 0, 0,
- 0, 0, 0,0x9CC6, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9E7E,
- /* plane 0, page 65 */
- 3 | (249 << 8), /* first, last */
- 0x98FE,0xFDE8, 0, 0, 0, 0,0x9940,
- 0, 0, 0, 0,0x94C9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x94D3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9946, 0, 0, 0, 0,0x90C0, 0,
- 0x94D1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9573, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x93C2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9948, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x994B, 0, 0, 0,
- 0, 0,0x8E55, 0, 0, 0, 0,0x994E, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8EFE,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8E59,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x94EC,
- /* plane 0, page 66 */
- 17 | (252 << 8), /* first, last */
- 0x94EF, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8C60, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8F74, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9955, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9544, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8CCB, 0,
- 0, 0,0x9956, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9959, 0, 0, 0, 0, 0, 0, 0,0x995B, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8CC4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFA45, 0, 0, 0,0x90B7, 0, 0,0x9743, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x95CD, 0, 0, 0, 0, 0,
- 0,0x97C9,0xFD50,
- /* plane 0, page 67 */
- 43 | (242 << 8), /* first, last */
- 0x8EB9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x95C6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9967, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8AB9, 0, 0, 0,
- 0, 0, 0,0x8DFC, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8A76, 0, 0,
- 0, 0, 0,0x9D51, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9973, 0, 0,
- 0, 0,0x9D4F,
- /* plane 0, page 68 */
- 1 | (244 << 8), /* first, last */
- 0x997A,0x9564, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x99A1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x99A5, 0, 0,
- 0, 0, 0, 0, 0,0x99A7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8EED, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x99AD, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x946E,
- 0x8F70, 0,0xFAD0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x99B3, 0, 0, 0,
- 0, 0, 0,0xA053, 0, 0, 0, 0, 0, 0,
- 0, 0,0x965C, 0, 0, 0, 0,0xFD7A, 0, 0,
- 0, 0, 0, 0, 0, 0,0x97FE, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x92BD, 0,0x97FD, 0, 0, 0, 0,0x8F64, 0,
- 0, 0, 0,0xFCF7,0x9562,0x97CD,0x9E64, 0, 0, 0,
- 0, 0, 0, 0,0x924C,
- /* plane 0, page 69 */
- 3 | (233 << 8), /* first, last */
- 0x8EC9,0x99BC, 0, 0, 0, 0,0x9DA5,
- 0,0x8F54, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8F7C, 0, 0, 0, 0, 0, 0,0x8EA2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8F7A,
- 0, 0, 0, 0, 0, 0,0x97AE, 0, 0, 0,
- 0,0x96C8, 0, 0, 0, 0, 0, 0, 0,0x99C3,
- 0,0x90D6, 0,0x9CBE, 0, 0, 0,0x8F76, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9470,0xFB4B, 0, 0,0xFDCA, 0, 0, 0, 0,
- 0, 0,0x8EC7, 0, 0, 0, 0, 0,0xA0F9, 0,
- 0, 0, 0, 0, 0, 0,0x8FA9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x99C7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x90D7, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9EDF,
- /* plane 0, page 70 */
- 6 | (245 << 8), /* first, last */
- 0x99CE, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8FBA, 0, 0, 0, 0,
- 0,0x8FEB, 0,0x99CF, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8FC2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x92C9, 0, 0, 0, 0, 0,0x97DC, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x95B3,0x9C79, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x95B2,
- /* plane 0, page 71 */
- 19 | (244 << 8), /* first, last */
- 0x8FDB,
- 0, 0, 0, 0,0x9BE3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9E7A, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9BEE, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x99DE, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFAFA, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9EE5, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8A52, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x99E1, 0, 0,
- 0, 0, 0, 0,0x8A67,
- /* plane 0, page 72 */
- 0 | (250 << 8), /* first, last */
- 0x8BB5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8AAC, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x99E9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFBCA, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x97DE, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x95D1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x99F5,0xFC4A, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9BA9, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFBDC, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFE56, 0, 0,
- 0, 0, 0,0x9EA4, 0, 0, 0, 0, 0, 0,
- 0x9D49,
- /* plane 0, page 73 */
- 6 | (231 << 8), /* first, last */
- 0x95DB, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x89C5, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x99F8, 0, 0, 0, 0, 0, 0,0x9664, 0, 0,
- 0, 0,0x9055, 0, 0,0x96D4, 0, 0, 0, 0,
- 0, 0, 0,0x977C, 0, 0, 0, 0, 0, 0,
- 0x964D, 0,0x97E1, 0, 0, 0, 0, 0, 0,0x9A48,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9A49, 0,0xFE7D, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x90AA, 0, 0, 0, 0,0x9A50, 0, 0, 0,
- 0, 0, 0, 0,0x9347, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8ED8, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x90C9, 0, 0, 0, 0, 0,0x9A55, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x90BC, 0, 0, 0, 0, 0,0x9A58,
- 0,0x8BB8,
- /* plane 0, page 74 */
- 15 | (255 << 8), /* first, last */
- 0x90D5, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9641,
- 0, 0, 0, 0, 0, 0,0x9A5A, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9A5C, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x97C2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8ABB, 0, 0, 0,0x9BAA, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x90F5,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9A60, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9145,
- /* plane 0, page 75 */
- 16 | (192 << 8), /* first, last */
- 0x8C58, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9A63, 0, 0, 0, 0,
- 0, 0,0x8C49, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8BB6, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFCCF, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x966B,0x9A6E, 0,0x914F, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9746, 0, 0,0xA0E6, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x92D7, 0,0x9675, 0, 0,0x93D4, 0, 0,
- 0x91BB,0x9679, 0, 0, 0, 0, 0,0x9A70, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9678,
- 0x91CD, 0,0x9C4A,
- /* plane 0, page 76 */
- 4 | (237 << 8), /* first, last */
- 0xA06F, 0, 0,0xA06A, 0, 0,
- 0, 0, 0, 0,0x915F, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9FA5,
- 0, 0,0x89BA, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9ECD, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9A79,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9DCE, 0, 0, 0,0x8CD2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9D73, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x96B9, 0,0x96BC, 0, 0, 0,
- 0, 0, 0,0x9CD1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x89B7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9EEE, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFB43,
- /* plane 0, page 77 */
- 9 | (156 << 8), /* first, last */
- 0x9EC9,
- 0, 0, 0, 0, 0, 0,0xFBD3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x91AE, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9D78, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9D7B,
- /* plane 0, page 78 */
- 4 | (248 << 8), /* first, last */
- 0x9EB3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9EB2, 0,0x9DD6, 0,
- 0, 0, 0,0x994F, 0, 0,0x89CE, 0, 0, 0,
- 0x8BC0, 0,0x9FC4, 0,0x8BD4, 0, 0,0x8C72, 0, 0,
- 0, 0, 0, 0,0xC6BF,0x8BF9, 0, 0, 0, 0,
- 0,0x8946, 0,0xC6C0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFAE5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xC87B,0x8BC6, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9C57, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9AFB, 0, 0, 0, 0, 0, 0, 0,0x89D0,0x89CF,
- 0, 0, 0,0xC6C1, 0,0x89D1, 0,0x89E2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x927E, 0,0x9DBA, 0, 0, 0, 0, 0,
- 0xC6C2, 0, 0,0x8C6F, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFBF8, 0, 0, 0,0x8BC7,0x926B, 0,
- 0,0x89D2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9FCF, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9DA9,0x89D3, 0, 0,0x99E2, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9267,
- /* plane 0, page 79 */
- 3 | (253 << 8), /* first, last */
- 0x92A4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8C73, 0, 0,0x894E, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x894F,0x9278, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x91B6, 0, 0, 0, 0,0x89D4, 0,0x9FD2, 0, 0,
- 0, 0, 0, 0, 0, 0,0x92A7, 0, 0,0x95A2,
- 0, 0, 0, 0, 0,0x926E, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x96EA, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x926F, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x92A3, 0, 0, 0, 0, 0,0x8950, 0,
- 0,0xFA57, 0, 0, 0, 0,0x9866, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x89D6,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x98B2, 0, 0, 0,0x92AB, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x96DE,0x92AC,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8C70, 0,0x9F6E, 0, 0, 0, 0, 0, 0,0x8EF2,
- 0, 0, 0,0x9F6C,
- /* plane 0, page 80 */
- 3 | (252 << 8), /* first, last */
- 0x89D8, 0, 0, 0, 0,0xFA59, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x92A8, 0, 0, 0,
- 0, 0,0x9163, 0, 0, 0, 0, 0, 0,0x8C40,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9F73, 0,0x92AD, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9BE9, 0, 0, 0, 0, 0,0x92A9, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x92AA,
- 0, 0, 0, 0, 0, 0,0x89D9, 0, 0, 0,
- 0, 0, 0, 0,0xFD56, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9FA8, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8C71, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x92A1, 0, 0,0x90E3, 0,
- 0, 0, 0, 0, 0, 0, 0,0xA0A6, 0, 0,
- 0, 0, 0,0x94AB, 0,0xFC72, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x97C4, 0, 0, 0, 0, 0,
- 0, 0,0x92AE,
- /* plane 0, page 81 */
- 1 | (254 << 8), /* first, last */
- 0xFA67, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x92A2,0xFA69, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9268, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8951, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFA6F, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFA71, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8952, 0, 0, 0,
- 0,0x945A, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xC6C3, 0, 0, 0,0x89DD, 0,0xC8A2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xC6C4, 0, 0, 0,0x9E52, 0,0x8953, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9E55,0x92BA, 0,
- 0,0xC6C5, 0, 0,0x8C5B, 0, 0, 0,0xFA7D,0xFAA8,
- 0x9A68,0xFA47, 0, 0,0xFA7E, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x92BB, 0, 0, 0,0xFDB6,
- 0,0xFAA2, 0, 0, 0, 0, 0,0xFAA3, 0,0xFAA4,
- 0x9BB4,0xFAA6, 0, 0, 0, 0, 0, 0, 0,0x89DF,
- 0, 0, 0,0xFDDB, 0, 0,0xFAA9, 0,0x8954, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFAAB, 0, 0,
- 0, 0, 0, 0,0xFC7A, 0, 0, 0, 0, 0,
- 0, 0,0x89E0, 0,0x9F4F,
- /* plane 0, page 82 */
- 2 | (249 << 8), /* first, last */
- 0xC87D, 0, 0,0x89E1, 0, 0, 0, 0,
- 0,0xFAB0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9FCD,0xA0E7, 0, 0, 0, 0, 0,0xFAB1,0x89A6,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9EFA, 0, 0, 0, 0, 0, 0, 0,
- 0xFAB2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFAB4, 0,0x92C4,
- 0, 0, 0, 0, 0, 0,0x9F6F, 0, 0, 0,
- 0, 0, 0, 0,0x8BB0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9FAC, 0, 0, 0, 0,
- 0,0x89E3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9BD3,0x89E4, 0, 0, 0,0xFAB5, 0,
- 0, 0, 0, 0,0x9FD5, 0, 0, 0, 0, 0,
- 0,0x8955, 0, 0,0x92C5, 0, 0, 0,0x8956, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFAB3, 0, 0, 0,0xFAB6, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFAB7, 0, 0,
- 0, 0, 0, 0,0x9EDC, 0, 0, 0,0xFBC4,0x9F71,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFABA,0x92C7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xC6C6,
- /* plane 0, page 83 */
- 1 | (254 << 8), /* first, last */
- 0x9A4C, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8C68, 0, 0,0x89E5,
- 0, 0, 0, 0,0x9F7D, 0, 0, 0, 0, 0,
- 0xA0A9,0xFAC4, 0, 0, 0, 0,0xC6C7, 0, 0,0x8957,
- 0, 0, 0, 0, 0, 0,0xFAAA, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8958, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8BE3, 0,0x8B61, 0, 0, 0, 0,
- 0x9AF1, 0, 0,0x9EB7, 0,0xC6C8, 0, 0, 0,0xFAD1,
- 0, 0, 0, 0, 0, 0,0xFAD2, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9EBA,0xFAD4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFAD9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFADB, 0,0x9CE0, 0, 0, 0,0xFBF7, 0,0xFBFA,0x89E7,
- 0xA07A,0xFADC, 0, 0,0xFADD, 0,0x89E9, 0, 0, 0,
- 0, 0,0xC6C9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFAE2,0x89EB, 0, 0,0xFAE3, 0, 0,
- 0, 0, 0, 0,0x90C8, 0, 0, 0,0x92DA,0x8959,
- 0x9CF5, 0, 0, 0, 0, 0,0x895A,0xFAE7,0x9FA2, 0,
- 0, 0, 0, 0,0xFAEA, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFAED,0x8FAD, 0, 0,
- 0, 0, 0, 0,0xFB59,
- /* plane 0, page 84 */
- 19 | (239 << 8), /* first, last */
- 0xFAEF,
- 0x96EF, 0,0x9DEC, 0, 0, 0,0x9DCA, 0, 0, 0,
- 0, 0, 0,0xFD6D, 0,0x89EC, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFB44, 0, 0,
- 0x9DE2, 0,0x8C75, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9EC0, 0,0x9E56, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9F79,0x9AC7, 0, 0,0xFAF4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x98A1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFAF8, 0, 0, 0,0x89F0,0x9E47, 0,
- 0,0x9DF7, 0, 0, 0, 0,0x9FD3, 0,0x9ACA, 0,
- 0, 0, 0,0x89F1,0xFAF9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8E5A, 0,
- 0x89F2, 0, 0, 0, 0,0x89F3, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x925D,0x8B51,0x92E0, 0, 0,0x89F4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9FD4, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8A79, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x89F5,
- /* plane 0, page 85 */
- 2 | (251 << 8), /* first, last */
- 0x97A7, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x93BA, 0, 0, 0, 0, 0,0x9E58,
- 0, 0, 0, 0,0x89F6, 0, 0, 0, 0, 0,
- 0x9E57, 0, 0, 0, 0,0x89F7, 0,0x8A41, 0, 0,
- 0x89F8, 0, 0,0xFAF1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x89FA, 0, 0, 0, 0, 0, 0,
- 0,0xFB42, 0,0xFABF, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFBA3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFAF7, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9E4E, 0,0x94DC, 0, 0,
- 0, 0, 0,0x95DA,0x9DF8,0x9F6A, 0, 0, 0, 0,
- 0,0x8AB7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFB46, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8A46, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFB47,
- 0, 0, 0, 0, 0, 0,0x9148, 0, 0, 0,
- 0x92DE, 0, 0, 0, 0,0x8B53,0x9DF6, 0,0x9BDA, 0,
- 0, 0, 0,0x9D7E, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x89FD,0x99E4, 0, 0, 0,
- 0, 0,0x9E43, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9DE9, 0,0x8F52, 0, 0, 0,
- 0x9DF5,0x9DF0, 0, 0, 0,0x99E7, 0, 0, 0, 0,
- 0,0x8BBD,
- /* plane 0, page 86 */
- 5 | (253 << 8), /* first, last */
- 0x9DEF, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9FB7, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9DD0, 0,0x9FEB,0x8DA9,0x9DCF,0x98E1, 0,0x9DE5, 0, 0,
- 0, 0, 0, 0, 0,0x9DC8, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFB4F, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9DEB, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFB54, 0,0xFB55,
- 0x9AA2, 0,0x8AD6, 0,0x9A5F, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9EF5, 0, 0, 0,0x8FB7, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9AD2,0x9E6A,0x9EE8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8BBF,0x91C2,0x9D62,
- 0, 0, 0, 0, 0, 0,0x9260, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x925E,0x91C1,
- 0,0x8AC5, 0, 0,0x97A3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8B6C, 0,0x8D7E, 0, 0,
- 0, 0, 0, 0, 0,0x9C54, 0, 0, 0, 0,
- 0,0x9DBD, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9CC5, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x895B, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFB5C, 0,0xFB5B,
- 0,0xFB57, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x98C7,
- /* plane 0, page 87 */
- 0 | (254 << 8), /* first, last */
- 0xFB5A, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9CEE, 0, 0, 0, 0, 0, 0, 0,0x92E2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x94A7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8CCC, 0,0x9BD4, 0, 0,0xFB64,0xFB76, 0, 0,
- 0xFB60, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x99E5, 0, 0,0x9AC2, 0, 0,
- 0,0x91FB, 0, 0, 0,0xA073, 0, 0, 0, 0,
- 0, 0, 0,0x9F72, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9FCC, 0, 0, 0,0x98A5,0x92E8, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9BBC, 0,0x96F3, 0,
- 0,0x92E7, 0, 0,0xFC67, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8B7D, 0, 0, 0,
- 0,0x9BF4, 0, 0, 0, 0, 0,0x9EF7, 0, 0,
- 0x9EC1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x996F, 0, 0, 0, 0, 0, 0,0x96F1, 0, 0,
- 0x8E41, 0, 0, 0, 0, 0,0x954A, 0, 0, 0,
- 0x97E6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x96F5, 0, 0, 0, 0,
- 0,0x92E6,0x9F42, 0, 0, 0, 0, 0, 0, 0,
- 0xFB67, 0, 0, 0, 0, 0, 0, 0, 0,0x99A9,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFAE6,
- /* plane 0, page 88 */
- 3 | (251 << 8), /* first, last */
- 0xFB69, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x97E5, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x967D, 0, 0, 0,0xFB6C, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x99A2, 0,
- 0, 0, 0, 0,0x9ABB, 0, 0, 0,0x9A65, 0,
- 0,0x944E, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFB6E, 0, 0,0x99DF, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x98E3, 0, 0,0x9254, 0,
- 0, 0, 0, 0,0x967B,0x8AAF, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8C77, 0, 0, 0,
- 0, 0, 0,0x8BAF,0x9EBD, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9EE6, 0, 0,
- 0xFB6F, 0, 0, 0, 0, 0,0x8EE1, 0, 0, 0,
- 0,0x9B7D,0x9C7E, 0, 0, 0, 0,0xF9D9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x92EA, 0, 0, 0, 0,0x8C78, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFB72, 0, 0, 0,0xFB71, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x895C, 0,0x98F0,0x96F2, 0, 0, 0, 0, 0, 0,
- 0,0xFB74,
- /* plane 0, page 89 */
- 2 | (249 << 8), /* first, last */
- 0x8BC1, 0,0x895D,0x89DE, 0,0x895E, 0, 0,
- 0xC6CA, 0, 0, 0, 0, 0, 0,0xFE42, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFB7B, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x895F, 0,0x8960, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9BCD, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9DD3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x984C, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9752, 0,
- 0, 0, 0, 0,0x95C3, 0, 0, 0, 0,0x9BB6,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9AB9, 0, 0, 0,0x97B3, 0, 0, 0,
- 0, 0, 0,0x9F74,0x92F1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x97DF, 0, 0, 0,
- 0,0xFBA6, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFBAB, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9877, 0, 0, 0,0x9854,
- 0x95C5, 0, 0, 0, 0, 0, 0, 0,0x9D55,0xFBB2,
- /* plane 0, page 90 */
- 2 | (254 << 8), /* first, last */
- 0x957E, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9742, 0,0x94E6, 0, 0, 0, 0,0x92F5, 0,
- 0, 0, 0, 0, 0, 0,0x8CC5, 0, 0, 0,
- 0, 0, 0,0x92FD, 0, 0,0xFBA2, 0, 0,0x9C51,
- 0, 0,0x94E9,0x985C,0x92F0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x944C, 0, 0, 0, 0, 0, 0, 0,0x916B,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8B78, 0, 0, 0, 0,0x94E2,
- 0, 0, 0, 0, 0, 0, 0,0x984F, 0,0xFBB5,
- 0, 0, 0, 0,0x9271, 0, 0,0x9365, 0, 0,
- 0x985B, 0, 0,0x9850, 0, 0, 0, 0, 0, 0,
- 0,0x97BC, 0, 0, 0, 0,0x92F3, 0, 0,0x9340,
- 0x984D, 0, 0, 0,0x9572, 0,0xFDEF, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFDC1, 0, 0, 0, 0,
- 0xFBBA, 0, 0,0x92EB, 0, 0, 0, 0, 0, 0,
- 0xFC73,0x97B7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFBB4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x90A7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9741,0x92F4, 0, 0,
- 0,0xFBBC, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9577, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9EE2, 0,0x8F78, 0, 0, 0, 0, 0, 0, 0,
- 0xF9DC, 0, 0, 0,0x9672,
- /* plane 0, page 91 */
- 13 | (255 << 8), /* first, last */
- 0x9EB5, 0, 0, 0,0x964B, 0, 0,
- 0,0x8CAC, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xA0FA, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9575, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x90DA, 0, 0,0x9367, 0,
- 0xFEA4, 0, 0, 0,0x90DF, 0, 0, 0, 0,0x9354,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8961, 0,0x8BB4, 0, 0, 0, 0,0x9DC0,
- 0, 0, 0, 0, 0, 0,0x8E48, 0,0xFBC5, 0,
- 0, 0, 0, 0,0xFBC7, 0, 0, 0,0xC6CB, 0,
- 0xFA79, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9E67, 0, 0, 0, 0, 0,
- 0x8CD9, 0, 0, 0, 0, 0, 0,0xFBD2,0x8962,0x8963,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFC7D, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9F6B, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFBCC, 0,0xFEAE, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFBD1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFB75,
- /* plane 0, page 92 */
- 5 | (245 << 8), /* first, last */
- 0xFBD4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFBD6,
- 0xFBD8, 0, 0, 0, 0, 0, 0, 0,0x8B5D, 0,
- 0x934C, 0,0x9AE2, 0, 0,0x8BC9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFBDB,0x9FC9, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9F44, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x98ED, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFBDD, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8DF2,0x8964, 0,0xFDF2, 0,0x934D, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFBE7, 0, 0, 0,
- 0, 0, 0,0xA0F2,0x9868, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9F58,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8D73,
- 0, 0, 0,0xFBDE, 0, 0, 0, 0, 0,0xFBDF,
- 0, 0, 0, 0, 0,0x8C48,
- /* plane 0, page 93 */
- 16 | (245 << 8), /* first, last */
- 0xFBE3, 0, 0, 0,
- 0,0x8DA8, 0, 0,0xFBE4, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9C75, 0, 0,0x9878, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8D60, 0, 0, 0, 0, 0, 0, 0,
- 0xFBE5, 0,0x8D61, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8D62,0xA0A1, 0, 0,
- 0,0x9C40, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x98AD, 0, 0, 0,0x9EEA, 0, 0, 0,
- 0, 0, 0,0x8CD4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9CEB, 0, 0, 0, 0, 0,0xFBE0,
- 0, 0,0x9F51, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8D65, 0, 0, 0, 0, 0,
- 0,0x9CF1, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFC58, 0, 0,0x8D66, 0, 0, 0, 0,
- 0, 0, 0,0x9654, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFBE8, 0, 0, 0,0xC6CC,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9FCE,
- /* plane 0, page 94 */
- 9 | (252 << 8), /* first, last */
- 0xFBFC,
- 0,0x9AE4, 0, 0, 0, 0, 0, 0,0x9F75, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFBF1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8D69, 0, 0, 0,
- 0, 0,0x934F, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x934E, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFBF4, 0, 0, 0, 0,0xC6CE, 0, 0,
- 0,0xFBC3, 0, 0,0x8965, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8C7A, 0, 0, 0,
- 0, 0, 0,0x8C7B, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8D6A,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9353, 0, 0,0x9DFB, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFBFD, 0, 0, 0,0x9059,0xFC40,
- 0,0xFC41,0xFC43,
- /* plane 0, page 95 */
- 12 | (223 << 8), /* first, last */
- 0x9361,0xFC46,0x9362, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8D6B, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xFC4C, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x95B8, 0, 0,
- 0xC6D0,0x8BCA, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x987A, 0, 0, 0, 0,0xC6D1, 0,0xFC51,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFC54, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFAAF, 0, 0, 0, 0, 0, 0,
- 0,0x8D6C, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFA61, 0, 0,0xFC57, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9B70, 0, 0,
- 0, 0, 0, 0, 0, 0,0xA051, 0, 0, 0,
- 0, 0, 0, 0,0x8C7C, 0,0x8BCB, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x936E,
- 0, 0, 0,0xFCD5,
- /* plane 0, page 96 */
- 35 | (253 << 8), /* first, last */
- 0xFCA9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFC61,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8966,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFACB, 0, 0, 0, 0, 0,
- 0, 0,0xF9DA, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x937A, 0,0xA0E0,
- 0, 0, 0, 0, 0, 0,0x936B, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xFC6B, 0,
- 0, 0, 0, 0,0xA0DC, 0, 0,0x9468, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFC6D,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8D71, 0, 0, 0, 0,
- 0, 0,0xFD64, 0, 0, 0, 0,0x99BA, 0, 0,
- 0,0x9AD0,0x9A61,0xA0E5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xA05B,
- /* plane 0, page 97 */
- 7 | (226 << 8), /* first, last */
- 0x96AC, 0, 0,
- 0, 0,0x9740, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9EF1, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8C4D, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9F7E, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8D72, 0, 0, 0, 0,0xFC76, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x96A9, 0, 0, 0, 0, 0, 0, 0, 0,0xA06E,
- 0, 0,0xFCAA, 0, 0, 0,0xFBCD, 0, 0, 0,
- 0xFC74, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xA074, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA071, 0, 0, 0,0xFC79,
- 0, 0, 0, 0, 0,0xFC7C, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9C50,
- 0, 0,0x9379,0x9378, 0, 0,0xA0DD, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8D75, 0,0x8D76, 0, 0, 0, 0,
- 0, 0,0x9374, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8D77,0xFCA5, 0,
- 0,0xFCA2, 0, 0, 0, 0, 0, 0,0x90C3, 0,
- 0, 0, 0, 0, 0, 0,0xA079,
- /* plane 0, page 98 */
- 44 | (229 << 8), /* first, last */
- 0x8D79, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8BFC, 0,0xA076, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8BCD, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9F5A, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9FF4, 0, 0,0x9FBA, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8D7A, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9E45, 0, 0,
- 0, 0, 0, 0,0x93B0, 0,0xA075, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9B46, 0,0xFCAE, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFCB0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFA51, 0, 0, 0, 0, 0,0x8D7B,
- /* plane 0, page 99 */
- 24 | (254 << 8), /* first, last */
- 0x8D7C, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9ED6, 0, 0,0x93AC,
- 0, 0, 0,0x9F5B, 0,0x93A9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xA07C, 0, 0, 0, 0, 0, 0, 0,0xFCB2, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8AC1, 0, 0, 0, 0, 0,0x9FB4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFCAC,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9E4C, 0, 0, 0, 0,
- 0, 0, 0,0x8FC5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x93AD,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9DC3, 0, 0, 0,0x8DA2, 0, 0, 0,
- 0x9D4A, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xFCB6, 0,
- 0,0x8DA3,0x9E4B, 0,0x9E4D,
- /* plane 0, page 100 */
- 7 | (234 << 8), /* first, last */
- 0x8DA4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8AFD, 0, 0, 0, 0, 0,0xFCB5, 0,0xFCC3,0x93B2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8DA5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x93A1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8AC6, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8A5B, 0, 0, 0,0x894D, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFED4, 0, 0, 0, 0,
- 0x8A78, 0,0x93AB, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8DA7, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9F45, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8A56, 0, 0, 0,0xFCBF, 0, 0, 0,0xFCC0,
- 0,0x8EE6, 0, 0,0x8AA4,
- /* plane 0, page 101 */
- 10 | (255 << 8), /* first, last */
- 0x8943, 0, 0, 0, 0, 0, 0,0x93F3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFCAB,0x9EA2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9DC7, 0,
- 0, 0,0xC6D2,0x8BCE, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFCC5, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFCCB, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x93B3, 0,0xFCCA,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFCC9,0x8DAC, 0,0xFBC6,0x8967, 0,0x8C7E,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFCCD, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9CF3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFCD0,
- 0, 0,0x95BB, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFCD3, 0, 0,0xFCD4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8DAE,
- /* plane 0, page 102 */
- 24 | (241 << 8), /* first, last */
- 0xFCD7, 0, 0, 0, 0, 0,
- 0x93DB, 0, 0, 0, 0,0xFE63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x93D5, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xFCDA, 0,
- 0, 0,0x9B71, 0, 0,0xFCDD, 0, 0, 0, 0,
- 0, 0, 0,0x8DAF, 0, 0, 0,0xFAF2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x93D8,
- 0, 0, 0,0xFCDF, 0, 0, 0,0x93D3, 0, 0,
- 0, 0, 0, 0, 0,0xFCE1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8E76, 0, 0, 0, 0,
- 0, 0, 0,0xFC62, 0, 0, 0, 0, 0, 0,
- 0, 0,0x93D1, 0, 0, 0,0x8DB1, 0, 0, 0,
- 0, 0, 0, 0,0x9859, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFB52, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFB53, 0, 0, 0, 0, 0,0xFB4D,
- 0, 0,0x9CBF, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9B72, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFB50,0x93BE, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9DF1,
- /* plane 0, page 103 */
- 2 | (254 << 8), /* first, last */
- 0xFCEB, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xA0BB, 0,0x9B7E, 0, 0, 0, 0, 0,
- 0, 0,0x8DB3, 0, 0,0x8C52, 0, 0, 0, 0,
- 0x9AE8, 0, 0, 0, 0, 0, 0,0x8EDC, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9CF9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xFA50, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x98E7,0xFCF3, 0,
- 0, 0, 0,0xFCF2, 0, 0, 0,0x8CCA, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x93E5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9A59, 0, 0, 0,0x8DB5, 0, 0, 0, 0, 0,
- 0, 0,0xFD4D, 0, 0, 0, 0,0xFD5E, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8F7D, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9547,0xFCF6, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9250,
- 0, 0, 0, 0,0x8968,
- /* plane 0, page 104 */
- 0 | (202 << 8), /* first, last */
- 0x8DB6,0xFCFB,0xA07D,0x98FC,0x8969, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFE4F, 0, 0,0x9256, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFAC9, 0, 0,
- 0x93E8, 0, 0, 0,0xFCF8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9CE3,0xFDA9, 0, 0, 0, 0,
- 0, 0,0xFC44, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9640, 0, 0,0x8DB8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9B4A,0x8FB9, 0, 0, 0,
- 0, 0, 0,0xFCFE, 0, 0, 0, 0, 0, 0,
- 0,0x896A, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8DB9, 0, 0, 0,0x917E, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x93F4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFB7C, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x93E7, 0, 0,0x97EF, 0, 0, 0,0xFE4A,
- 0, 0, 0, 0, 0,0xFD45, 0,0x96A5, 0, 0,
- 0, 0,0xFEE0,
- /* plane 0, page 105 */
- 0 | (250 << 8), /* first, last */
- 0xFD48,0xFD47,0xFEF2,0xFE6A, 0, 0, 0, 0, 0,0x8DBD,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9BA1,0x8CA2,0x9AB7,0x8EFC, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9FA1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFD51, 0, 0, 0, 0, 0,
- 0, 0,0xFAAD, 0, 0, 0, 0,0x8DBE, 0, 0,
- 0x89A4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9AD9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFD4E, 0, 0,
- 0x8DC0, 0, 0,0x97F0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x93B4,0xFD44, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9FA7, 0,
- 0, 0, 0,0x8DC2, 0, 0, 0, 0,0x99B6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFD52, 0, 0, 0, 0, 0, 0,0x8DC1,
- 0, 0,0x8E46, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xA0D1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9FCA, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x92CF,
- 0, 0, 0,0x9CF4,0x8DC4, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFD41, 0, 0, 0, 0,
- 0, 0, 0,0x9B4C, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFD57,
- 0xFCEF,
- /* plane 0, page 106 */
- 3 | (246 << 8), /* first, last */
- 0x9CDE, 0, 0, 0, 0, 0, 0,
- 0,0xFD42,0x986C, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x97F9, 0,0x9558, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x985E,0xFE7B,0x94CD, 0, 0, 0, 0,
- 0,0x93EE, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8CA3, 0,0xFD5A,
- 0, 0, 0, 0, 0, 0,0x93F5, 0, 0, 0,
- 0, 0,0x93EF,0x8EEA, 0, 0, 0,0x8F5B, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8C5E,
- 0,0x8DC6, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8DC8, 0, 0,0x8DC7, 0, 0, 0,
- 0, 0,0x93F7, 0, 0, 0, 0, 0, 0, 0,
- 0x8DC9, 0, 0, 0, 0, 0, 0, 0,0xFBF2, 0,
- 0, 0, 0,0x9670, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8DCB, 0, 0, 0,0xFD5C, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8F65, 0, 0,
- 0,0x8DCD, 0, 0, 0, 0, 0,0x9DA8,0x94F9, 0,
- 0,0x8DCE, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x93EA, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFD5F,0x93F0,0x9FB6, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8DCF, 0, 0, 0,0x9763, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8DD0,
- /* plane 0, page 107 */
- 5 | (250 << 8), /* first, last */
- 0x93F1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFD62,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFD65, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9FDB, 0, 0, 0, 0,0x93F8, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8BF7, 0, 0, 0, 0,0xFD66, 0, 0, 0,
- 0, 0,0x8BCF, 0, 0, 0, 0, 0, 0,0x8DD1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8DD2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFD71, 0, 0, 0, 0,0xFD6F, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8DD3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9FE7,
- /* plane 0, page 108 */
- 28 | (255 << 8), /* first, last */
- 0x90BD, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9FD0,
- 0, 0, 0,0x8BD0, 0,0xFD72, 0,0x9CAE,0x8BD1, 0,
- 0,0x8ADB, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFAE4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x95CE, 0,
- 0xFD76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFB62, 0, 0, 0, 0, 0, 0,0x8DD4, 0, 0,
- 0,0xFD78, 0, 0, 0, 0, 0,0x8EE3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9076,
- 0, 0,0x98C6, 0, 0, 0, 0, 0, 0, 0,
- 0x8DD5, 0, 0, 0, 0,0x97D1, 0, 0,0x9EB6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFAC7, 0, 0,0xA042, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9873, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9FFC, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8CA5,
- /* plane 0, page 109 */
- 2 | (254 << 8), /* first, last */
- 0x8DD7, 0, 0,0x92FB,0x8DD8, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x944F, 0,0x8DD9, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x896B, 0,
- 0, 0, 0, 0, 0, 0, 0,0x97CE, 0, 0,
- 0,0xFAF3,0xFDAE, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFBAF,0x92B7, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8DDA,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9C5A, 0, 0, 0, 0, 0, 0,
- 0xFDAD, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8DDC,0x9444, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8DDD, 0, 0,
- 0, 0, 0, 0, 0,0xA0D6, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8C41,
- /* plane 0, page 110 */
- 2 | (250 << 8), /* first, last */
- 0x97D5, 0,0x944A, 0, 0, 0, 0, 0,
- 0x944D, 0, 0, 0, 0,0x97CB, 0, 0, 0, 0,
- 0,0x8DDE, 0, 0,0x8DDF, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8DE0,0xFEF9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFDC0,
- 0xFCF9, 0, 0, 0, 0, 0, 0, 0, 0,0xFB7E,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x92B3, 0,
- 0, 0, 0, 0,0xFDAF, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8DE1, 0, 0, 0, 0,0x95D3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x89C1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFD68, 0, 0,0x9CB7, 0, 0,0x8DE3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFAC0,0x8DE5,0xFA64,
- 0,0x8947, 0, 0, 0, 0,0x8DE4, 0, 0, 0,
- 0, 0,0x8DE7,0x8DE8, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFDC7,
- /* plane 0, page 111 */
- 4 | (248 << 8), /* first, last */
- 0xFDB0, 0, 0, 0, 0, 0,
- 0,0x9445,0x97D6, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFCC6,0x9844, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8DE9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8DEA, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFE50, 0, 0, 0, 0, 0, 0,0xFDCC, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9DA7, 0, 0, 0,
- 0, 0,0xFDCD, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFDCF, 0, 0, 0,
- 0,0x95D2, 0, 0, 0, 0, 0, 0, 0,0x8DED,
- 0, 0, 0, 0, 0, 0, 0, 0,0xFCBA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFDC5, 0,0xFDD2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9CDC, 0, 0, 0, 0, 0,0x95CF, 0, 0,
- 0x8DEE, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFDD4, 0, 0, 0, 0, 0,0x96EC,0x96EB, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x90B6, 0,0xFDC3,
- /* plane 0, page 112 */
- 3 | (254 << 8), /* first, last */
- 0x98AB, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x96EE, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8DF4, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFDE0, 0,0x8C67, 0, 0,
- 0x8DF6, 0, 0, 0,0x8DF7, 0, 0, 0, 0, 0,
- 0, 0,0x8FFA, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x97D0, 0, 0, 0, 0,0x8BD2, 0,
- 0,0x8DF8, 0, 0, 0, 0, 0,0x90D9, 0,0x8C47,
- 0,0xFAF0, 0, 0, 0, 0,0xFDE1,0x8DF9, 0,0xFDE3,
- 0, 0, 0, 0, 0, 0, 0,0x8DFA, 0,0xFB63,
- 0, 0, 0,0x90A6, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9970, 0, 0,0x91EB, 0,0x9770,0x986F,0xFDE2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x98F2, 0,0x9AFC,0x896C,0xFDFD,
- 0, 0,0x995E, 0, 0, 0,0x95BD, 0, 0, 0,
- 0, 0, 0, 0,0xFDE4, 0, 0, 0,0x91E6, 0,
- 0, 0, 0,0xFDE5,0xFDE6, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFDE7, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9454, 0, 0, 0,0x99B8, 0, 0, 0, 0,
- 0, 0, 0, 0,0x97E9,
- /* plane 0, page 113 */
- 5 | (246 << 8), /* first, last */
- 0x9346, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9863,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x95BC, 0,0xFDED,0xFDF7, 0, 0, 0, 0, 0,
- 0,0x9870,0x96F6,0x8EA9, 0, 0, 0, 0, 0,0x9451,
- 0, 0,0x8E43, 0,0x8B5A, 0, 0, 0, 0,0xFDEE,
- 0, 0, 0, 0,0xFDF0, 0, 0, 0, 0,0xFDF4,
- 0,0x9BF5, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x977E, 0, 0,
- 0, 0, 0,0x9BD5, 0,0x9AC3, 0,0x97C8,0xA0DB,0x91D0,
- 0, 0,0x9FE4, 0,0x8FDD, 0,0x91E9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x98E0, 0, 0, 0,
- 0x92CA, 0,0x9857, 0, 0,0x8C51, 0, 0, 0, 0,
- 0xFDEB, 0,0x9B49, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9D76,0x9EAF, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9CCC, 0, 0, 0, 0, 0, 0,
- 0xFDEA, 0, 0,0x8DF1, 0, 0,0xFDFB, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8E53,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFACF, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x96F9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x98BF,0x9E49,
- /* plane 0, page 114 */
- 0 | (226 << 8), /* first, last */
- 0x8CA7, 0, 0, 0, 0, 0, 0, 0, 0,0x9BCA,
- 0, 0, 0, 0,0xFDFE,0x92DC, 0, 0, 0, 0,
- 0,0xFE41,0x91CC,0x91E2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFE44, 0, 0, 0,
- 0, 0, 0,0x8BD3, 0, 0,0xFE47, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFE48, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9455, 0, 0, 0, 0,0xFE4B, 0,0xFE4C, 0, 0,
- 0, 0,0x8DBF, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9E78, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFE51, 0, 0, 0, 0,0x9456, 0, 0, 0, 0,
- 0, 0, 0,0x9D61, 0, 0, 0, 0,0x9457, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9966,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8BD5, 0, 0, 0, 0,0xA069, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x98B4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xA049,
- /* plane 0, page 115 */
- 2 | (251 << 8), /* first, last */
- 0xA04C, 0,0x9E65, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x98B5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFE58, 0,0x9975,0xFE53,0xA065, 0,0xFE59, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x98B7,0x98B8, 0, 0,
- 0, 0, 0, 0, 0,0x98BA, 0, 0, 0, 0,
- 0, 0,0x98BB, 0, 0, 0, 0, 0, 0,0x9FBC,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xA04A, 0, 0,0x9EC7, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8CA9, 0, 0,0x98AE, 0, 0, 0, 0, 0, 0,
- 0, 0,0x92D6, 0, 0, 0,0xFAE1, 0,0x91D4, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFADE, 0, 0,
- 0xFE5B, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8C53, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFE5E, 0, 0, 0, 0,0xFBD7,0xFE5A,0x94C5, 0,
- 0, 0, 0,0xFACA, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x98C1,0x975C, 0,0xFE74, 0,
- 0x9773, 0, 0, 0, 0, 0, 0, 0, 0,0xFA46,
- 0, 0, 0,0x9764, 0, 0, 0,0xFE68, 0,0x964E,
- 0,0x9765,
- /* plane 0, page 116 */
- 2 | (248 << 8), /* first, last */
- 0x8C5A, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x89A1,0x95FA, 0,
- 0x92D4,0xFE69, 0,0xFB45, 0,0x98C8, 0, 0,0x90EF, 0,
- 0x98C9,0x98CA, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x946D,0x94B7,0xFE6C, 0, 0,
- 0x946B, 0, 0, 0, 0, 0, 0,0x92FC, 0,0x95EB,
- 0,0xFE73,0x976E,0xFE5F, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFDBD, 0, 0,0x92D5, 0, 0, 0,
- 0, 0, 0,0xFEB9, 0, 0,0xFE71, 0, 0, 0,
- 0,0xFBBB, 0, 0,0x947A, 0, 0,0x95FB,0xFE77, 0,
- 0, 0, 0, 0, 0, 0,0xFE79, 0,0xFE75, 0,
- 0, 0,0x945D, 0, 0, 0, 0, 0, 0, 0,
- 0xFE7C, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9344,0x8EA6, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x92D3, 0,0x94B8, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFC71, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x975E, 0, 0, 0, 0,0x8CAD, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFEA7, 0, 0, 0,0x946A, 0, 0, 0,0x93E3, 0,
- 0,0x98CF, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xA0D9, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xA0BF,0xA04D,0xA0B8, 0, 0, 0, 0, 0,0xA0CE,
- /* plane 0, page 117 */
- 5 | (220 << 8), /* first, last */
- 0xA0B7, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFEA9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x89C3, 0, 0, 0, 0,
- 0xFEAB, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9DF4,0x896D, 0, 0, 0, 0, 0,0x9C7B,
- 0, 0, 0, 0, 0, 0,0x98D2, 0, 0, 0,
- 0x9FA9, 0, 0, 0,0xFEB2, 0, 0,0xFEB1, 0, 0,
- 0,0x97D9, 0,0xA0C4, 0,0x9476, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9978, 0, 0, 0,
- 0, 0, 0,0xFEB3, 0, 0, 0, 0, 0,0x98D3,
- 0xFEB4, 0, 0, 0,0x98D4, 0, 0, 0, 0, 0,
- 0, 0,0x9FB9, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9471, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x98D5,0xFEB8, 0, 0, 0,0xC6D4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xFEBA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9E5C, 0, 0,
- 0xFEBB, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA044, 0, 0, 0, 0,
- 0x98D7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x98D8,
- /* plane 0, page 118 */
- 2 | (217 << 8), /* first, last */
- 0xFEBC, 0, 0, 0, 0,0x9FFE, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFEBD, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9DDD,
- 0, 0, 0, 0,0x9EE1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x98DA,0x9DDF,0xFEBF,
- 0,0xFEBE, 0, 0,0x9EEB, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9E59,0xA05C, 0, 0, 0, 0, 0, 0,
- 0,0xFEC0, 0, 0, 0,0x9477,0x98DC, 0,0xFEC1, 0,
- 0, 0,0x98DE, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFEC3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFEC8, 0, 0, 0,0xFEC9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFECA, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFECB, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9FC2, 0, 0,0x8C6B,
- /* plane 0, page 119 */
- 12 | (254 << 8), /* first, last */
- 0x98C4, 0,0x94B0,0x94B1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFED1, 0, 0, 0, 0, 0,0xA0C1, 0,0xFED2, 0,
- 0, 0, 0,0xA0CD, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFED3, 0, 0,0x98E5, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xFED6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x91E4, 0, 0, 0, 0,0x8FC7,
- 0x94AE, 0,0x8A4F,0x94B2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8FD4, 0, 0,
- 0, 0,0x98EA, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFED8, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9DE0, 0, 0, 0, 0,
- 0x98EE, 0, 0, 0, 0,0x95C4, 0,0xFCE8, 0, 0,
- 0, 0, 0,0x98EF, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8C6E, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFAD8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFEDC, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xA0AE,
- /* plane 0, page 120 */
- 8 | (245 << 8), /* first, last */
- 0x9D4C, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x98F1, 0, 0, 0,0x98F3, 0,
- 0x94C1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x98F5, 0, 0,
- 0xFA4F,0x96E2, 0, 0, 0, 0,0x9450, 0,0x96A2, 0,
- 0,0x98F6, 0, 0, 0,0x96E5, 0, 0, 0, 0,
- 0,0x98F7, 0,0xA046,0x96E3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x98F8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9EE4, 0, 0, 0, 0, 0, 0,0xF9D6,
- 0, 0, 0, 0, 0, 0,0x94C3, 0, 0, 0,
- 0,0x94C2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFEE1, 0,0xFEE9, 0, 0,
- 0, 0,0x96E4, 0,0x89AC,0x96DB, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFEE2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x94C4,0xFEE3, 0, 0, 0,0xFEE7,0x9FFB, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8C59, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x93C9, 0,
- 0x94E8,0xFB56, 0, 0, 0,0x90C5,
- /* plane 0, page 121 */
- 6 | (244 << 8), /* first, last */
- 0xA0A8, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFEE5, 0, 0, 0,
- 0x98FD,0x98FB,0xFEE8, 0,0x8EBF, 0, 0, 0, 0,0x8BD8,
- 0xFEF7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8F68,0x94C6,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9DEA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFC69, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9CDA, 0,0xFEF3, 0,
- 0,0x9C72, 0, 0,0xFEF0,0x89C9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9941, 0, 0, 0, 0,
- 0, 0, 0,0x9942, 0, 0, 0,0xFEF5, 0,0x91D7,
- 0, 0, 0, 0, 0,0x94CC, 0, 0, 0,0xFEF8,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x97A8, 0,0xFEFC, 0,
- 0, 0, 0, 0,0xFDBF, 0, 0, 0, 0, 0,
- 0, 0,0xFEFE, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x96D1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x94D5, 0, 0,0x94D0,
- /* plane 0, page 122 */
- 6 | (254 << 8), /* first, last */
- 0x9944, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8C63, 0, 0,0xA0B3, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x94CF, 0,
- 0, 0,0x9FFA, 0, 0, 0, 0,0x91E5, 0,0x9C6A,
- 0, 0, 0,0x8E49, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8E4C, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8E4D, 0, 0, 0, 0,
- 0,0x9A73, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9947, 0,0x8CB1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8E50, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8E4F,0x9949, 0,
- 0, 0, 0, 0,0x8E51,0x8E52, 0, 0, 0, 0,
- 0x9AB2,0x89A5, 0, 0, 0, 0, 0,0x994C, 0, 0,
- 0,0x9FF8, 0, 0, 0, 0, 0, 0,0x8E56,0x994D,
- 0x91CA,0x8E57, 0, 0, 0, 0,0x94E1, 0, 0, 0,
- 0,0x9047, 0,0x8FD8,0x8E58, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x94EB,
- /* plane 0, page 123 */
- 11 | (252 << 8), /* first, last */
- 0x8E5C,0x9553, 0, 0, 0, 0, 0, 0, 0,
- 0x9FE5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9F56, 0, 0, 0, 0, 0, 0, 0,0x954F,
- 0,0x8E5E, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x996A, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9C64,0x9CD9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8E5D, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9950, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9951, 0,
- 0,0x8E62, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9952, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8E68, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8E61,0x9F59, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8BB3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9F5D,0x8E66, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8CB2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8E6E, 0,0x9F64,
- /* plane 0, page 124 */
- 18 | (252 << 8), /* first, last */
- 0x9953, 0,
- 0,0xFAB8, 0, 0, 0, 0, 0,0x9954, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8E70, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9F61, 0,0x8E72, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xA06B, 0, 0, 0, 0,0x9F40, 0, 0, 0,
- 0, 0, 0,0x94ED, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x94EE,
- 0, 0,0x9FBD, 0, 0, 0,0x8E7B, 0, 0, 0,
- 0, 0, 0,0x9957,0x94F7, 0,0x9F5F, 0, 0, 0,
- 0,0x8E73, 0, 0,0x9F62, 0, 0, 0, 0, 0,
- 0, 0,0x94F6, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9958, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8E75,0xF9DB, 0, 0,
- 0, 0,0x9072, 0,0x94F8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x995A, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xA0B0,0x8CB3, 0, 0, 0,0x8E79,
- 0,0x8E78, 0, 0, 0,0x94F3, 0, 0, 0, 0,
- 0,0x98AF, 0, 0, 0, 0, 0, 0,0xA0B2, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8E7A, 0, 0, 0, 0, 0, 0,0x995C, 0, 0,
- 0, 0, 0,0x8E7C, 0,0x8E7D, 0, 0, 0,0x8BD9,
- 0, 0,0x89A2,
- /* plane 0, page 125 */
- 37 | (254 << 8), /* first, last */
- 0x9ED7, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xA0B6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9E42, 0, 0,0x8EA4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8EA7, 0,0x8C76,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9542, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x987D, 0, 0, 0,0x9755, 0,
- 0,0x8EA8, 0, 0, 0, 0, 0, 0, 0,0x8EAA,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x89A3, 0,0x9960,0x9962, 0,
- 0,0x94FC,0x9961, 0, 0, 0, 0, 0, 0, 0,
- 0x94FA, 0, 0, 0, 0, 0, 0, 0,0x8EAE,0x8EB2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8EB0, 0, 0, 0, 0,
- 0, 0, 0,0x9963,0x97AA,
- /* plane 0, page 126 */
- 7 | (223 << 8), /* first, last */
- 0x94FB, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8EBB,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8CDC, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9876, 0,0x8EA1, 0, 0, 0, 0,0x8CB4, 0,
- 0x8EB7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9DA6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9EB0, 0, 0, 0,0x8EB8, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9D70,
- 0, 0, 0, 0,0x896E, 0, 0, 0, 0, 0,
- 0, 0,0x896F, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8970, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8971,
- 0, 0, 0, 0, 0, 0, 0,0x8972, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8973,
- /* plane 0, page 127 */
- 6 | (250 << 8), /* first, last */
- 0x8974, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8975, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8EBC,0x8EBD, 0, 0, 0, 0,
- 0,0x8EBE, 0,0x9DD1, 0, 0, 0, 0,0x94FD, 0,
- 0, 0,0x8BD7,0x8BDA, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xA0E2, 0, 0, 0, 0, 0, 0,
- 0x9FE9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFDA8, 0, 0, 0,0x8AE7, 0, 0,
- 0,0x8EC2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8EC4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9964, 0, 0, 0, 0, 0,
- 0x9965, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x954E, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x98B3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8ECB,
- /* plane 0, page 128 */
- 2 | (246 << 8), /* first, last */
- 0x8BDF, 0, 0, 0, 0, 0,0x8ECE, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8ECF,
- 0, 0,0x9968, 0, 0, 0, 0,0x9969, 0, 0,
- 0, 0, 0, 0, 0, 0,0x996B,0x8ED1, 0,0x996C,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8ED4,
- 0x8ED5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x996D, 0, 0, 0, 0, 0,
- 0,0xA0BE, 0, 0, 0, 0, 0,0x8ED6,0xA0BC,0xA0B5,
- 0, 0,0xA0B4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8BE0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x89B5,
- 0, 0, 0, 0, 0, 0, 0,0x8EDD, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9E5D,0x9971, 0, 0, 0, 0,0x89AE,0x9DE8,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9565, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9972, 0, 0,0x8B5C, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x89B1,
- /* plane 0, page 129 */
- 3 | (246 << 8), /* first, last */
- 0xA0C0, 0, 0, 0,0x8EDF, 0,0x9566,
- 0, 0,0x9974, 0,0x9976, 0, 0, 0,0x9977, 0,
- 0x9979, 0, 0,0x9DDA, 0, 0,0x8EE0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x935C, 0, 0, 0, 0, 0, 0, 0,
- 0x9DE6, 0,0x8B5F, 0, 0,0x9563, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9567, 0, 0, 0,
- 0, 0,0x9DE3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x997C, 0, 0,0x997D,
- 0x997E, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8B5B,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x99A3, 0, 0, 0, 0, 0,
- 0, 0,0x99A4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x99A6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x99A8, 0, 0, 0, 0,
- 0x8ABE, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9E61, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x99AA, 0, 0, 0, 0, 0, 0,
- 0xA0C8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x99AB, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFEC4,
- 0, 0, 0, 0, 0, 0,0x98C2,
- /* plane 0, page 130 */
- 24 | (255 << 8), /* first, last */
- 0x8EE8, 0,0xA0BA, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xFD77, 0,
- 0,0x8EEE, 0, 0, 0,0x9EBF, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x89C2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x99AC, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x956B, 0,
- 0,0x956C, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x99AF, 0,
- 0,0x994A,0x8976,0x8F48, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFBEE, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x99AE, 0, 0, 0,
- 0x8EFB, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8CD0, 0, 0, 0, 0,0x8B52, 0, 0, 0,
- 0, 0,0x99B0, 0, 0, 0, 0,0x8977,0x8F41, 0,
- 0, 0, 0, 0, 0, 0,0x99B1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8F49, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xFA4D, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9DE4,0x8CB5, 0,
- 0, 0,0xFBE9,0x9B54, 0,0x99B2,
- /* plane 0, page 131 */
- 11 | (237 << 8), /* first, last */
- 0x9E68, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8F4A, 0,0x8F42, 0, 0,0x8F51,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9846, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x99B4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8EF5,0xFD55,
- 0, 0,0x9CCD, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8978, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8F53, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8F6F, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8E63, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8F56, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFE76, 0, 0, 0, 0,
- 0x9FC6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFAAC, 0, 0, 0, 0,
- 0,0x8F58, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9848,
- /* plane 0, page 132 */
- 5 | (248 << 8), /* first, last */
- 0x99B7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9665, 0,0xFA6C, 0,0x9DE7, 0, 0, 0,0x9E62, 0,
- 0, 0,0x96CC,0x8E67, 0, 0,0xFC75, 0,0x987E, 0,
- 0, 0, 0, 0, 0, 0,0xFDB9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x97FC, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x98F9, 0,0x8F66, 0, 0, 0, 0, 0,
- 0, 0, 0,0x956E, 0,0x9245, 0, 0,0x8F60, 0,
- 0, 0,0x9ED1, 0, 0, 0, 0, 0,0xFECD, 0,
- 0x99B9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8F62,0x974C, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x91C7,0x955F, 0,
- 0, 0, 0, 0, 0, 0,0x99BB, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8E6D,0x8F71, 0, 0,
- 0x94CB, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x95B1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9AF2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x96C3,
- 0x99BD, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xA0CF, 0,
- 0, 0,0x8F6D, 0, 0,0x99BE,0x8EF4, 0,0x8F72,0x95E4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x99BF,
- /* plane 0, page 133 */
- 3 | (252 << 8), /* first, last */
- 0x9242, 0,0xFBA5, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x99C0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFDB4,0x8F77, 0, 0, 0,0x99C1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFAB9, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8F40,0xFA44, 0, 0, 0,
- 0, 0,0x99C2, 0, 0, 0, 0, 0, 0, 0,
- 0x8F5C, 0, 0, 0, 0,0x8CBD, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x99C4,0x99C5, 0, 0,0x8F7B, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8CB6, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8FA3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8CCE, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x99C6, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x96CD, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x96C7,
- /* plane 0, page 134 */
- 2 | (239 << 8), /* first, last */
- 0x8FA5, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFABB, 0,0x8C61,0x9570, 0, 0, 0,
- 0x9368, 0,0x8F7E, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8FAA, 0, 0, 0, 0, 0, 0,0xA050, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x90D3, 0, 0,0x9556,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8FB8, 0,
- 0, 0, 0, 0,0x99C8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8FAF, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x99C9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9579, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9F49, 0, 0, 0, 0,0x99CA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x99CB,
- /* plane 0, page 135 */
- 112 | (245 << 8), /* first, last */
- 0x9DD5,0x8FB0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFA7A, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9E5F, 0, 0, 0, 0,0x99CD,
- 0xA0C9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9ADB, 0, 0, 0,0xA0C6,
- 0, 0, 0, 0, 0, 0, 0,0x8FB4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xA0D7, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xA0C7, 0, 0, 0,
- 0, 0, 0, 0,0xA043, 0, 0, 0,0x8FB5, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8FB2, 0,
- 0, 0, 0, 0, 0,0xA061,
- /* plane 0, page 136 */
- 4 | (255 << 8), /* first, last */
- 0x9E5E, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8FB6, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9FE8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9CB2,
- 0, 0, 0, 0, 0,0x957C, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9FC7, 0, 0,0x8FBB,
- 0x8FBC, 0, 0, 0, 0, 0, 0, 0, 0,0x8FEC,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8FC0, 0,0x936A, 0, 0, 0,
- 0x8BE4,0x9C7C, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x95A1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFEEC, 0, 0,0x95A3, 0, 0, 0, 0,
- 0, 0, 0,0x8C45,0x8CB8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8FC1, 0, 0, 0,
- 0xA052, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x99D0, 0, 0, 0, 0, 0,
- 0x8FC3,0x8FC4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x95A4, 0, 0, 0, 0, 0,0x8FC6, 0,0x9E60,
- 0, 0, 0, 0, 0, 0, 0,0xF9D8, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x95A5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9CB3, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x99D1,
- /* plane 0, page 137 */
- 0 | (231 << 8), /* first, last */
- 0xFEF1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x99D2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9CC2, 0, 0,
- 0,0x99D3, 0, 0, 0, 0, 0,0x95A7, 0, 0,
- 0, 0, 0, 0,0x95A9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x95A6, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9C5D,
- 0, 0, 0, 0, 0, 0, 0, 0,0x98E2, 0,
- 0, 0, 0, 0, 0,0x8FC9, 0,0xA0C2,0x8FCA, 0,
- 0, 0, 0, 0, 0,0x99D4, 0, 0,0xA0B9, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9B58, 0,0x8FCD, 0,0xA0D4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8FCE, 0,
- 0, 0, 0,0x8BE5, 0, 0, 0, 0,0x8979, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8FD0,
- /* plane 0, page 138 */
- 28 | (234 << 8), /* first, last */
- 0x95B6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x99D6, 0,0x95E5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x99D7, 0, 0, 0,
- 0,0x95B5, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xA0CA, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9FFD, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xA058, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8FD6, 0, 0, 0,0x99D8, 0,
- 0, 0, 0, 0, 0, 0,0x8FD3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8FE5,
- 0, 0, 0, 0, 0,0x8FE9, 0, 0, 0, 0,
- 0x99D9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x927C, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9C45,
- /* plane 0, page 139 */
- 12 | (226 << 8), /* first, last */
- 0x8FDE, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8FDF, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA04B, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8FE2, 0, 0, 0,0xA0CC, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8FE3,0x8FE4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9BC4, 0, 0, 0,0x9BFC, 0,
- 0, 0, 0, 0, 0,0x964C, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9AF6,
- 0,0x8CAE, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8FE7, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8FE8, 0, 0, 0, 0,
- 0x8BE7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x897A, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x897B,
- /* plane 0, page 140 */
- 81 | (247 << 8), /* first, last */
- 0x99DA, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8FED, 0, 0, 0,0x95C0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xA0CB, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9E48, 0, 0, 0, 0,
- 0, 0,0x99DB, 0,0x8FF3, 0, 0, 0, 0,0x8FF9,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x95C1, 0,0xA04E, 0, 0, 0, 0,
- 0, 0,0x99DC, 0, 0, 0, 0,0xA064,
- /* plane 0, page 141 */
- 3 | (212 << 8), /* first, last */
- 0x8FF7, 0, 0, 0, 0, 0, 0,
- 0,0x89B0,0xA048, 0, 0, 0, 0,0x8FFB,0x8FF6, 0,
- 0, 0, 0, 0,0x9DDC, 0, 0, 0,0x99DD,0x8BE8,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x92C1, 0, 0, 0, 0, 0, 0, 0,
- 0x9FD6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xA0D2, 0, 0,0x9040,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8AC4, 0, 0,0x99E0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9FF0,
- /* plane 0, page 142 */
- 1 | (242 << 8), /* first, last */
- 0x9FF3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9DBF, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9FF6, 0,0x95C8, 0, 0,0x9E5A, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x99E3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8A4A, 0, 0, 0, 0, 0, 0, 0, 0,0x9FF1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8AA7, 0, 0, 0, 0, 0,
- 0, 0, 0,0x99E6, 0, 0, 0,0x9FF7, 0,0x9FED,
- 0, 0, 0, 0, 0, 0,0x8A5C, 0,0x9DAE, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x95C9, 0, 0,
- 0, 0, 0,0x9048, 0, 0,0x99E8, 0, 0, 0,
- 0, 0,0x9049, 0, 0,0x8CBA, 0, 0,0x90B1, 0,
- 0, 0, 0, 0, 0,0x904A, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x99EA, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9BD1, 0,
- 0, 0, 0, 0, 0, 0,0x99EB, 0,0x99EC, 0,
- 0, 0, 0, 0, 0, 0, 0,0x99ED, 0, 0,
- 0, 0,0x99EE,
- /* plane 0, page 143 */
- 25 | (249 << 8), /* first, last */
- 0x904C, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x904D, 0, 0,0x95CB, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x97E2, 0, 0, 0, 0,
- 0, 0, 0, 0,0x95CC, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9F78, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x897C,0x897D, 0, 0, 0, 0, 0, 0,
- 0x897E, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x995D, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9B5A, 0, 0, 0, 0,0x9050, 0,0x8C4F, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9054,
- 0,0xC6D6,0x9AA8,0x99EF,0xFEEB,0x9DA3,0x9DA1,0x9943,0x9945, 0,
- 0x9D7D, 0, 0,0x99F0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x99F1, 0,0x99F2, 0, 0,0x8CBC,0x9D60, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xA0A3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x905B,
- /* plane 0, page 144 */
- 8 | (196 << 8), /* first, last */
- 0x9EDB, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9D79, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x99F3, 0, 0, 0,0x9062, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9F55, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9BF9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9065, 0, 0,
- 0x96E0, 0, 0, 0, 0, 0, 0, 0,0x98BE, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9068, 0,
- 0, 0, 0, 0,0x906C, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x95D8, 0, 0,
- 0, 0, 0, 0, 0, 0,0x906A,
- /* plane 0, page 145 */
- 81 | (254 << 8), /* first, last */
- 0x9FB2, 0, 0, 0, 0, 0, 0, 0,0x9FAE,
- 0, 0,0x9FB0, 0,0x89AD, 0, 0, 0, 0, 0,
- 0, 0, 0,0x906E, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9E71, 0, 0, 0, 0, 0,0x9E4A, 0,
- 0, 0, 0, 0,0x9FDC, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x89AB, 0,0x9FB8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9070,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8B63, 0, 0, 0, 0,0x95DC, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9071, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFC5E, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8949, 0, 0, 0, 0, 0,0x965B,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8C50, 0, 0, 0,
- 0x94A6, 0, 0, 0,0x8FD5,
- /* plane 0, page 146 */
- 8 | (253 << 8), /* first, last */
- 0x9E73, 0,
- 0, 0, 0, 0,0x9075, 0, 0, 0, 0,0x99F7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8CBF, 0, 0, 0, 0, 0, 0,
- 0x99F9, 0,0x9663,0x95B9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x94D4, 0, 0, 0, 0, 0, 0,
- 0xFCFA, 0, 0, 0, 0,0x9077, 0, 0,0x90AB, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9D4D, 0, 0,0x99FA, 0,
- 0, 0, 0,0x92E3, 0,0x97BB, 0, 0,0x9078, 0,
- 0, 0, 0, 0, 0, 0, 0,0x99FB, 0, 0,
- 0x97E0, 0, 0, 0, 0, 0, 0, 0, 0,0x96DC,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9CA8,
- 0, 0,0x9772, 0, 0, 0, 0,0x9440, 0, 0,
- 0, 0, 0,0x92F2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x99FD, 0, 0,0x99FC, 0, 0,
- 0, 0, 0, 0, 0,0xF9D7,0x964A, 0, 0, 0,
- 0x96D8,0x99FE, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x904B, 0, 0, 0, 0, 0, 0,0xFA41,
- 0, 0, 0, 0, 0, 0, 0,0x9A40, 0,0x975B,
- 0, 0, 0, 0, 0,0x9A41,0x91DD, 0, 0, 0,
- 0, 0,0x93FC,0x9A42,0x9A43, 0,0x9659, 0, 0, 0,
- 0, 0, 0,0x9A44,
- /* plane 0, page 147 */
- 3 | (244 << 8), /* first, last */
- 0x9051, 0, 0, 0,0x94BF, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x90A2, 0, 0, 0,0x9CAB,0x9776,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFC55,0xFE45,0x94A8,0x9A45,0xFA4B,0x9DE1,
- 0, 0,0x96D9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9774, 0, 0,0xFDF5, 0,
- 0, 0,0x92E5, 0,0x9645,0x91DA, 0,0x90A3, 0, 0,
- 0xA05F, 0, 0, 0, 0,0x90AF,0x97BF, 0, 0, 0,
- 0x914C, 0, 0, 0, 0,0x967A, 0, 0, 0,0x91DE,
- 0, 0,0x9A46,0xFEB0,0x9779,0x946C, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9858, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9266, 0, 0, 0,
- 0x93FB, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9A47, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9749, 0, 0,0x9748, 0,0x934A,
- 0,0x9CE2, 0, 0, 0, 0, 0, 0,0x9264, 0,
- 0, 0, 0,0x91DF, 0, 0, 0, 0, 0, 0,
- 0,0xFB79, 0, 0, 0, 0, 0, 0, 0,0x96D7,
- 0, 0, 0, 0,0x9343, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFDCB,0xFE7A, 0,0x91DB,0x8C6A,
- /* plane 0, page 148 */
- 1 | (246 << 8), /* first, last */
- 0x97AF, 0, 0,0x95DD, 0, 0, 0,0x9348, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9A4B, 0, 0, 0,0xFC45, 0,0x9A4D,
- 0, 0, 0, 0, 0, 0,0x91BC,0x90E2,0x90B4,0x95E1,
- 0, 0, 0, 0, 0,0x9A4E, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9A4F, 0, 0, 0,0xFE40,0xFE43, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x96DD, 0, 0,
- 0, 0, 0, 0,0x9A51, 0, 0, 0,0x96A7, 0,
- 0,0x90B0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9C4E, 0,0x9443, 0, 0, 0, 0,0x8EBA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9A52, 0,0xFCC1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8BE9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9CAF,
- 0, 0,0x8BFD, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9ABC, 0,0x9AB8, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9AAE, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9AA7,
- /* plane 0, page 149 */
- 45 | (244 << 8), /* first, last */
- 0x9A53, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9D74, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8BEA, 0, 0, 0, 0, 0, 0,0x8BEB, 0, 0,
- 0, 0, 0,0x90B2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x95E9,0x95E8, 0,0x95E6, 0, 0, 0, 0, 0, 0,
- 0x90B5, 0,0x9A54, 0, 0, 0,0x90B3,0x95E7, 0, 0,
- 0x8B50, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8BEC, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9A56,
- /* plane 0, page 150 */
- 29 | (244 << 8), /* first, last */
- 0x8BFB,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9A57, 0, 0, 0, 0,0xA0AA, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9FA6, 0, 0, 0,0x99CC,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9C59, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x99B5, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x90BE, 0, 0, 0, 0, 0,0x9FAF,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x95F2, 0, 0, 0, 0, 0, 0,
- 0x90BF, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x90C1, 0,0xFEE4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x90C4, 0, 0, 0, 0, 0, 0,0x90C7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x92E4,
- /* plane 0, page 151 */
- 3 | (245 << 8), /* first, last */
- 0x9F52, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x90DB, 0, 0,
- 0, 0, 0,0xA066, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x90D2,
- 0, 0, 0, 0,0x90D4, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9A5B,0x95FD, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8BC4, 0, 0, 0,0x8C66, 0,0x90DE, 0, 0,
- 0, 0, 0,0x9CE4, 0,0x90E1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9E46,
- 0, 0, 0,0x9651, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFB58, 0,0x90E6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9650, 0, 0, 0,0x90E7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x90E8,0x9A5D, 0,
- 0x9F7A, 0, 0, 0,0x9B5C, 0,0x9F7C, 0, 0,0xFC52,
- 0x90E9, 0,0x90EA, 0,0x9A5E, 0, 0, 0, 0, 0,
- 0x9F76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x90EB, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x90EC, 0, 0, 0, 0, 0,
- 0x8BEE, 0, 0, 0, 0, 0, 0, 0,0x90EE, 0,
- 0, 0,0x91C6, 0, 0,0x90F2,
- /* plane 0, page 152 */
- 20 | (245 << 8), /* first, last */
- 0xFCBC,0x8A74, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9657, 0, 0, 0,0x9CEF, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9FDF, 0, 0, 0,
- 0,0x90F7,0x90F6, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9B5E, 0, 0, 0,0x90F8, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x90F9, 0,0x8CC9, 0, 0, 0,0xFA6A, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8BEF, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9FE0, 0, 0,0x9142, 0,0x9A62, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9569, 0, 0, 0,0x9144,
- 0x9143, 0,0x9141, 0, 0, 0,0x8BF0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9660, 0,0x8BF1, 0,0x99F6,0x9149, 0, 0, 0, 0,
- 0x914A, 0, 0, 0, 0, 0,0x914B, 0, 0, 0,
- 0,0x9A64, 0, 0, 0,0x8ABF,
- /* plane 0, page 153 */
- 14 | (245 << 8), /* first, last */
- 0x9A66, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9A67, 0, 0,0x9A69, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9A6A,0x9652,0x914D, 0,0x9666,
- 0, 0, 0, 0,0x9F7B, 0,0x9A6B, 0, 0, 0,
- 0, 0, 0, 0,0xA06C, 0, 0,0x9667, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9A6C, 0, 0, 0, 0,0x9A6D,0x8BF2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x966A, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFCEA, 0, 0, 0, 0, 0,
- 0x966C, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x91C4, 0, 0, 0,0x9677, 0,
- 0, 0, 0, 0, 0, 0,0x99F4,0x9A6F, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9FAB, 0,
- 0, 0, 0, 0,0x8CBE,0x8EC1, 0, 0, 0, 0,
- 0x9555, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9152,
- /* plane 0, page 154 */
- 12 | (255 << 8), /* first, last */
- 0x9153, 0, 0, 0,0x9155, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x955D, 0,0x9671, 0, 0, 0, 0,0x9C6D, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9673, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9154,
- 0x9A71, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9156, 0,
- 0, 0,0x966D, 0, 0, 0, 0, 0, 0,0x9557,
- 0, 0, 0, 0, 0, 0, 0, 0,0x89C6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x89C7, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8A6A, 0,
- 0, 0,0x8B57, 0, 0, 0,0x9FE1, 0, 0,0x9B5F,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA05D, 0, 0, 0, 0,
- 0, 0, 0, 0,0x915B, 0,0x915C, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x915E, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9F5C,
- /* plane 0, page 155 */
- 2 | (255 << 8), /* first, last */
- 0x9F57, 0, 0, 0, 0, 0, 0,0x9F65,
- 0, 0, 0, 0, 0,0x9A72, 0, 0, 0, 0,
- 0x9160, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9F5E, 0, 0,0x9161, 0, 0, 0, 0,
- 0, 0,0x9164, 0, 0, 0, 0,0x9F41, 0, 0,
- 0, 0, 0, 0,0x9169, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9168, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9A74, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x96B2, 0,0x9A75,
- 0,0xFDA5, 0, 0, 0, 0, 0, 0, 0,0x9EE9,
- 0,0x8BBA,0x916D,0xA060, 0, 0, 0, 0, 0, 0,
- 0,0x9FDE, 0, 0, 0, 0, 0,0x9FC3, 0,0x96B5,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xA067, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x96B3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9A76, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x95D5, 0, 0, 0,0x9ECA, 0, 0,
- 0,0x9A77, 0, 0,0x9A78, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9170,
- /* plane 0, page 156 */
- 2 | (124 << 8), /* first, last */
- 0x916F, 0, 0, 0, 0, 0, 0, 0,
- 0x9FA3, 0,0x9171, 0, 0, 0,0x96B1, 0, 0, 0,
- 0,0x9F63, 0, 0, 0, 0, 0,0x9F67, 0, 0,
- 0,0x8BB9,0x9A7A, 0, 0, 0, 0, 0,0x8B56, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9ADA, 0, 0,
- 0, 0, 0,0x96B0, 0, 0, 0, 0,0x9A7E, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9DDE,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x96AD,
- 0, 0, 0,0x96AE, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9EA1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9E50, 0, 0, 0, 0, 0,
- 0, 0, 0,0x96AF,0x8BF4,
- /* plane 0, page 157 */
- 2 | (252 << 8), /* first, last */
- 0x9FA4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x96BD, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x96F4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x96B8, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFAA1, 0, 0, 0, 0,0x91A7, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xA05E, 0,
- 0, 0, 0,0x9A7D, 0, 0, 0, 0,0x8948, 0,
- 0x9EB1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9DDB, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x95BF,
- 0x8A73, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9EFE, 0,0x917A, 0, 0, 0,
- 0,0x917B, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9AA3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x96C2, 0, 0, 0, 0,
- 0,0x9F77, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9AA4,
- 0, 0,0x9AA5, 0, 0, 0,0x91A1, 0, 0, 0,
- 0,0x89B8, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9173, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9AA6,
- /* plane 0, page 158 */
- 10 | (254 << 8), /* first, last */
- 0x89BD, 0,0x89B9, 0,0x917D, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x96BB, 0, 0, 0,0x9FF2, 0,
- 0,0x8BF5, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9AA9, 0, 0, 0, 0, 0,0x9F54,
- 0, 0,0x9FE3,0x9EED, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x91AA, 0, 0, 0, 0,0x91AB,
- 0xA070, 0,0x9F6D, 0, 0, 0, 0, 0,0x91AC, 0,
- 0, 0,0x91AD, 0, 0, 0,0xA0FD, 0,0x9FE2, 0,
- 0x91AF,0x9E41,0x9AAA, 0, 0,0x91B0, 0,0x9AAB, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9AAC,
- 0,0x9A4A, 0,0x91B2, 0, 0,0x8BF6, 0,0x9AAD,0x89B6,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9AAF, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9AB0, 0, 0, 0, 0, 0, 0,0x9AB1, 0,
- 0, 0, 0, 0,0x9AA1,
- /* plane 0, page 159 */
- 2 | (165 << 8), /* first, last */
- 0x91B9, 0, 0, 0, 0, 0,0x91BA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x91BE, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xA041,0x8BB7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x91C0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9AB3,0x91C3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xA0FC, 0, 0,0x9FEE, 0, 0, 0, 0, 0, 0,
- 0x9F69, 0, 0, 0, 0, 0, 0, 0,0x91C8, 0,
- 0, 0, 0, 0, 0,0x91C9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8DE6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x91CB, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x89C8, 0, 0, 0, 0, 0,0x8DAA,
- 0, 0, 0, 0, 0,0x9FDD,
- /* plane 0, page 160: --- */
- /* plane 0, page 161: --- */
- /* plane 0, page 162: --- */
- /* plane 0, page 163: --- */
- /* plane 0, page 164: --- */
- /* plane 0, page 165: --- */
- /* plane 0, page 166: --- */
- /* plane 0, page 167: --- */
- /* plane 0, page 168: --- */
- /* plane 0, page 169: --- */
- /* plane 0, page 170: --- */
- /* plane 0, page 171: --- */
- /* plane 0, page 172: --- */
- /* plane 0, page 173: --- */
- /* plane 0, page 174: --- */
- /* plane 0, page 175: --- */
- /* plane 0, page 176: --- */
- /* plane 0, page 177: --- */
- /* plane 0, page 178: --- */
- /* plane 0, page 179: --- */
- /* plane 0, page 180: --- */
- /* plane 0, page 181: --- */
- /* plane 0, page 182: --- */
- /* plane 0, page 183: --- */
- /* plane 0, page 184: --- */
- /* plane 0, page 185: --- */
- /* plane 0, page 186: --- */
- /* plane 0, page 187: --- */
- /* plane 0, page 188: --- */
- /* plane 0, page 189: --- */
- /* plane 0, page 190: --- */
- /* plane 0, page 191: --- */
- /* plane 0, page 192: --- */
- /* plane 0, page 193: --- */
- /* plane 0, page 194: --- */
- /* plane 0, page 195: --- */
- /* plane 0, page 196: --- */
- /* plane 0, page 197: --- */
- /* plane 0, page 198: --- */
- /* plane 0, page 199: --- */
- /* plane 0, page 200: --- */
- /* plane 0, page 201: --- */
- /* plane 0, page 202: --- */
- /* plane 0, page 203: --- */
- /* plane 0, page 204: --- */
- /* plane 0, page 205: --- */
- /* plane 0, page 206: --- */
- /* plane 0, page 207: --- */
- /* plane 0, page 208: --- */
- /* plane 0, page 209: --- */
- /* plane 0, page 210: --- */
- /* plane 0, page 211: --- */
- /* plane 0, page 212: --- */
- /* plane 0, page 213: --- */
- /* plane 0, page 214: --- */
- /* plane 0, page 215: --- */
- /* plane 0, page 216: --- */
- /* plane 0, page 217: --- */
- /* plane 0, page 218: --- */
- /* plane 0, page 219: --- */
- /* plane 0, page 220: --- */
- /* plane 0, page 221: --- */
- /* plane 0, page 222: --- */
- /* plane 0, page 223: --- */
- /* plane 0, page 224 */
- 0 | (253 << 8), /* first, last */
- 0xFA40, 0,0xFA42,0xFA43, 0,0xFA45, 0, 0,0xFA48,0xFA49,
- 0xFA4A, 0,0xFA4C, 0,0xFA4E, 0, 0, 0,0xFA52,0xFA53,
- 0xFA54,0xFA55,0xFA56, 0,0xFA58, 0,0xFA5A,0xFA5B,0xFA5C,0xFA5D,
- 0xFA5E, 0,0xFA60, 0,0xFA62,0xFA63, 0,0xFA65, 0, 0,
- 0xFA68, 0, 0,0xFA6B, 0,0xFA6D,0xFA6E, 0,0xFA70, 0,
- 0xFA72,0xFA73,0xFA74,0xFA75,0xFA76,0xFA77,0xFA78, 0, 0,0xFA7B,
- 0xFA7C, 0, 0, 0, 0, 0, 0,0xFAA5, 0,0xFAA7,
- 0, 0, 0, 0, 0, 0,0xFAAE, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFABC, 0,0xFABE, 0, 0,0xFAC1,0xFAC2,0xFAC3, 0, 0,
- 0xFAC6, 0,0xFAC8, 0, 0, 0,0xFACC,0xFACD,0xFACE, 0,
- 0xFAD0, 0, 0,0xFAD3, 0, 0,0xFAD6,0xFAD7, 0, 0,
- 0xFADA, 0, 0, 0, 0,0xFADF,0xFAE0, 0, 0, 0,
- 0, 0, 0, 0,0xFAE8,0xFAE9, 0,0xFAEB,0xFAEC, 0,
- 0xFAEE, 0, 0, 0, 0, 0, 0,0xFAF5,0xFAF6, 0,
- 0, 0,0xFAFA,0xFAFB,0xFAFC,0xFAFD,0xFAFE,0xFB40,0xFB41, 0,
- 0xFB43, 0, 0, 0, 0, 0,0xFB49,0xFB4A,0xFB4B,0xFB4C,
- 0,0xFB4E, 0, 0,0xFB51, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFB5D,0xFB5E,0xFB5F, 0,
- 0xFB61, 0, 0, 0,0xFB65,0xFB66, 0,0xFB68, 0,0xFB6A,
- 0xFB6B, 0,0xFB6D, 0, 0,0xFB70, 0, 0,0xFB73, 0,
- 0, 0,0xFB77,0xFB78, 0,0xFB7A, 0, 0,0xFB7D, 0,
- 0xFBA1, 0, 0,0xFBA4, 0, 0,0xFBA7,0xFBA8,0xFBA9,0xFBAA,
- 0,0xFBAC,0xFBAD,0xFBAE, 0,0xFBB0,0xFBB1, 0,0xFBB3, 0,
- 0,0xFBB6,0xFBB7, 0,0xFBB9, 0, 0, 0,0xFBBD,0xFBBE,
- 0xFBBF,0xFBC0,0xFBC1,0xFBC2,
- /* plane 0, page 225 */
- 3 | (254 << 8), /* first, last */
- 0xFBC8,0xFBC9,0xFBCA,0xFBCB, 0, 0,0xFBCE,
- 0xFBCF,0xFBD0, 0, 0,0xFBD3, 0,0xFBD5, 0, 0, 0,
- 0xFBD9,0xFBDA, 0,0xFBDC, 0, 0, 0, 0,0xFBE1,0xFBE2,
- 0, 0, 0,0xFBE6, 0, 0, 0,0xFBEA,0xFBEB,0xFBEC,
- 0xFBED, 0,0xFBEF,0xFBF0, 0, 0, 0, 0,0xFBF5,0xFBF6,
- 0, 0, 0, 0,0xFBFB, 0, 0,0xFBFE, 0, 0,
- 0xFC42, 0, 0, 0, 0,0xFC47,0xFC48,0xFC49,0xFC4A,0xFC4B,
- 0,0xFC4D,0xFC4E, 0,0xFC50, 0, 0,0xFC53, 0, 0,
- 0xFC56, 0, 0,0xFC59,0xFC5A,0xFC5B,0xFC5C,0xFC5D, 0,0xFC5F,
- 0xFC60, 0, 0,0xFC63,0xFC64,0xFC65,0xFC66, 0,0xFC68, 0,
- 0xFC6A, 0, 0, 0,0xFC6E,0xFC6F,0xFC70, 0, 0, 0,
- 0, 0, 0,0xFC77,0xFC78, 0, 0,0xFC7B, 0, 0,
- 0xFC7E,0xFCA1, 0,0xFCA3,0xFCA4, 0,0xFCA6,0xFCA7,0xFCA8, 0,
- 0, 0, 0,0xFCAD, 0,0xFCAF, 0,0xFCB1, 0,0xFCB3,
- 0xFCB4, 0, 0,0xFCB7,0xFCB8, 0, 0,0xFCBB, 0,0xFCBD,
- 0xFCBE, 0, 0, 0,0xFCC2, 0,0xFCC4, 0, 0,0xFCC7,
- 0xFCC8, 0, 0, 0,0xFCCC, 0,0xFCCE,0xFCCF, 0,0xFCD1,
- 0xFCD2, 0, 0, 0,0xFCD6, 0,0xFCD8,0xFCD9, 0,0xFCDB,
- 0xFCDC, 0,0xFCDE, 0,0xFCE0, 0, 0,0xFCE3,0xFCE4,0xFCE5,
- 0xFCE6,0xFCE7, 0,0xFCE9, 0, 0,0xFCEC,0xFCED,0xFCEE, 0,
- 0xFCF0, 0, 0, 0,0xFCF4,0xFCF5, 0,0xFCF7, 0, 0,
- 0, 0,0xFCFC,0xFCFD, 0,0xFD40, 0, 0,0xFD43, 0,
- 0,0xFD46, 0, 0,0xFD49,0xFD4A,0xFD4B,0xFD4C, 0, 0,
- 0xFD4F,0xFD50, 0, 0,0xFD53,0xFD54, 0, 0, 0,0xFD58,
- 0xFD59, 0,0xFD5B, 0,0xFD5D, 0, 0,0xFD60,0xFD61, 0,
- 0xFD63, 0, 0, 0,0xFD67,
- /* plane 0, page 226 */
- 0 | (255 << 8), /* first, last */
- 0xFD69,0xFD6A,0xFD6B,0xFD6C, 0,0xFD6E, 0,0xFD70, 0, 0,
- 0xFD73,0xFD74,0xFD75, 0, 0, 0,0xFD79,0xFD7A,0xFD7B,0xFD7C,
- 0xFD7D,0xFD7E,0xFDA1,0xFDA2,0xFDA3,0xFDA4, 0,0xFDA6,0xFDA7, 0,
- 0,0xFDAA,0xFDAB,0xFDAC, 0, 0, 0, 0,0xFDB1,0xFDB2,
- 0xFDB3, 0,0xFDB5, 0, 0, 0, 0,0xFDBA, 0,0xFDBC,
- 0,0xFDBE, 0, 0, 0,0xFDC2, 0,0xFDC4, 0,0xFDC6,
- 0,0xFDC8,0xFDC9,0xFDCA, 0, 0, 0,0xFDCE, 0,0xFDD0,
- 0xFDD1, 0,0xFDD3, 0,0xFDD5,0xFDD6,0xFDD7,0xFDD8,0xFDD9,0xFDDA,
- 0,0xFDDC,0xFDDD,0xFDDE,0xFDDF, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFDE8,0xFDE9, 0, 0,0xFDEC, 0, 0,
- 0, 0, 0, 0,0xFDF3, 0, 0,0xFDF6, 0,0xFDF8,
- 0xFDF9,0xFDFA, 0,0xFDFC, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFE46, 0, 0,0xFE49, 0, 0, 0,0xFE4D,
- 0xFE4E, 0, 0, 0, 0, 0,0xFE54,0xFE55,0xFE56,0xFE57,
- 0, 0, 0, 0,0xFE5C,0xFE5D, 0, 0,0xFE60,0xFE61,
- 0xFE62, 0,0xFE64,0xFE65,0xFE66,0xFE67, 0, 0, 0,0xFE6B,
- 0,0xFE6D,0xFE6E, 0,0xFE70, 0,0xFE72, 0, 0, 0,
- 0, 0,0xFE78, 0, 0, 0, 0,0xFE7D,0xFE7E,0xFEA1,
- 0xFEA2,0xFEA3, 0,0xFEA5,0xFEA6, 0,0xFEA8, 0, 0, 0,
- 0xFEAC,0xFEAD, 0,0xFEAF, 0, 0, 0, 0, 0,0xFEB5,
- 0xFEB6,0xFEB7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFEC2, 0, 0,0xFEC5,0xFEC6,0xFEC7, 0, 0,
- 0, 0,0xFECC, 0,0xFECE,0xFECF,0xFED0, 0, 0, 0,
- 0,0xFED5, 0,0xFED7, 0,0xFED9,0xFEDA,0xFEDB, 0, 0,
- 0xFEDE,0xFEDF, 0, 0, 0, 0, 0, 0,0xFEE6, 0,
- 0, 0,0xFEEA, 0, 0,0xFEED,
- /* plane 0, page 227 */
- 0 | (255 << 8), /* first, last */
- 0xFEEE,0xFEEF, 0, 0, 0, 0,0xFEF4, 0,0xFEF6, 0,
- 0, 0,0xFEFA,0xFEFB, 0,0xFEFD, 0,0x8E40, 0,0x8E42,
- 0,0x8E44,0x8E45, 0,0x8E47, 0, 0,0x8E4A,0x8E4B, 0,
- 0,0x8E4E, 0, 0, 0, 0, 0,0x8E54,0x8E55, 0,
- 0, 0,0x8E59, 0,0x8E5B, 0, 0, 0,0x8E5F,0x8E60,
- 0, 0, 0,0x8E64,0x8E65, 0, 0, 0, 0,0x8E6A,
- 0x8E6B,0x8E6C, 0, 0, 0, 0,0x8E71, 0, 0,0x8E74,
- 0, 0,0x8E77, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8EA2,0x8EA3, 0,0x8EA5, 0, 0, 0, 0, 0,
- 0,0x8EAC,0x8EAD, 0,0x8EAF, 0,0x8EB1, 0,0x8EB3, 0,
- 0x8EB5,0x8EB6, 0, 0,0x8EB9, 0, 0, 0, 0, 0,
- 0,0x8EC0, 0, 0,0x8EC3, 0,0x8EC5,0x8EC6,0x8EC7,0x8EC8,
- 0x8EC9,0x8ECA, 0,0x8ECC, 0, 0, 0, 0, 0,0x8ED2,
- 0x8ED3, 0, 0, 0,0x8ED7,0x8ED8,0x8ED9,0x8EDA,0x8EDB, 0,
- 0,0x8EDE, 0, 0, 0,0x8EE2, 0,0x8EE4,0x8EE5, 0,
- 0x8EE7, 0,0x8EE9, 0,0x8EEB,0x8EEC,0x8EED, 0,0x8EEF,0x8EF0,
- 0x8EF1, 0,0x8EF3, 0, 0,0x8EF6,0x8EF7,0x8EF8,0x8EF9,0x8EFA,
- 0, 0,0x8EFD,0x8EFE, 0, 0, 0,0x8F43,0x8F44,0x8F45,
- 0x8F46,0x8F47, 0, 0, 0,0x8F4B,0x8F4C,0x8F4D,0x8F4E,0x8F4F,
- 0x8F50, 0, 0, 0,0x8F54,0x8F55, 0, 0, 0,0x8F59,
- 0x8F5A, 0, 0,0x8F5D,0x8F5E,0x8F5F, 0,0x8F61, 0,0x8F63,
- 0x8F64, 0, 0,0x8F67, 0, 0,0x8F6A,0x8F6B,0x8F6C, 0,
- 0, 0,0x8F70, 0, 0,0x8F73,0x8F74,0x8F75,0x8F76, 0,
- 0,0x8F79,0x8F7A, 0,0x8F7C, 0, 0,0x8FA1,0x8FA2, 0,
- 0x8FA4, 0,0x8FA6,0x8FA7,0x8FA8,0x8FA9, 0,0x8FAB,0x8FAC, 0,
- 0x8FAE, 0, 0,0x8FB1, 0,0x8FB3,
- /* plane 0, page 228 */
- 6 | (255 << 8), /* first, last */
- 0x8FBA, 0, 0,0x8FBD,
- 0x8FBE,0x8FBF, 0, 0,0x8FC2, 0, 0, 0, 0, 0,
- 0x8FC8, 0, 0, 0, 0, 0, 0,0x8FCF, 0,0x8FD1,
- 0x8FD2, 0, 0, 0, 0,0x8FD7, 0,0x8FD9,0x8FDA,0x8FDB,
- 0x8FDC, 0, 0, 0,0x8FE0,0x8FE1, 0, 0, 0, 0,
- 0x8FE6, 0, 0, 0,0x8FEA,0x8FEB, 0, 0,0x8FEE,0x8FEF,
- 0x8FF0,0x8FF1,0x8FF2, 0,0x8FF4,0x8FF5, 0, 0,0x8FF8, 0,
- 0, 0,0x8FFC,0x8FFD, 0, 0,0x9041,0x9042,0x9043,0x9044,
- 0x9045,0x9046, 0, 0, 0, 0, 0, 0, 0,0x904E,
- 0x904F, 0, 0,0x9052,0x9053, 0,0x9055,0x9056,0x9057,0x9058,
- 0,0x905A, 0,0x905C,0x905D,0x905E,0x905F,0x9060,0x9061, 0,
- 0x9063,0x9064, 0,0x9066,0x9067, 0,0x9069, 0,0x906B, 0,
- 0, 0,0x906F, 0, 0, 0,0x9073,0x9074, 0, 0,
- 0, 0,0x9079, 0,0x907B,0x907C,0x907D,0x907E,0x90A1, 0,
- 0,0x90A4,0x90A5, 0, 0,0x90A8,0x90A9,0x90AA, 0,0x90AC,
- 0x90AD,0x90AE, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x90B7,0x90B8,0x90B9,0x90BA,0x90BB,0x90BC, 0, 0, 0,0x90C0,
- 0,0x90C2, 0, 0, 0,0x90C6, 0, 0,0x90C9,0x90CA,
- 0x90CB,0x90CC,0x90CD,0x90CE,0x90CF,0x90D0,0x90D1, 0, 0, 0,
- 0x90D5,0x90D6,0x90D7,0x90D8, 0, 0, 0, 0,0x90DD, 0,
- 0,0x90E0, 0, 0, 0,0x90E4,0x90E5, 0, 0, 0,
- 0, 0, 0, 0,0x90ED, 0, 0,0x90F0, 0, 0,
- 0x90F3,0x90F4,0x90F5, 0, 0, 0, 0,0x90FA,0x90FB,0x90FC,
- 0x90FD,0x90FE,0x9140, 0, 0, 0, 0,0x9145,0x9146,0x9147,
- 0, 0, 0, 0, 0, 0,0x914E,0x914F,0x9150,0x9151,
- 0, 0, 0, 0, 0,0x9157,
- /* plane 0, page 229 */
- 0 | (254 << 8), /* first, last */
- 0x9158,0x9159,0x915A, 0, 0,0x915D, 0,0x915F, 0, 0,
- 0x9162, 0, 0,0x9165,0x9166,0x9167, 0, 0,0x916A, 0,
- 0x916C, 0,0x916E, 0, 0, 0,0x9172, 0,0x9174,0x9175,
- 0x9176,0x9177,0x9178,0x9179, 0, 0,0x917C, 0, 0, 0,
- 0x91A2,0x91A3,0x91A4,0x91A5,0x91A6, 0,0x91A8,0x91A9, 0, 0,
- 0, 0,0x91AE, 0, 0,0x91B1, 0,0x91B3,0x91B4,0x91B5,
- 0,0x91B7,0x91B8, 0, 0,0x91BB, 0,0x91BD, 0, 0,
- 0, 0, 0, 0, 0,0x91C5, 0, 0, 0, 0,
- 0, 0, 0,0x91CD,0x91CE,0x91CF, 0,0x91D1,0x91D2,0x91D3,
- 0,0x91D5,0x91D6, 0,0x91D8,0x91D9, 0, 0,0x91DC, 0,
- 0, 0,0x91E0,0x91E1, 0,0x91E3, 0, 0, 0,0x91E7,
- 0x91E8, 0,0x91EA, 0,0x91EC,0x91ED,0x91EE,0x91EF,0x91F0,0x91F1,
- 0x91F2,0x91F3,0x91F4,0x91F5,0x91F6,0x91F7,0x91F8,0x91F9,0x91FA, 0,
- 0x91FC,0x91FD,0x91FE,0x9240,0x9241, 0,0x9243, 0, 0,0x9246,
- 0x9247,0x9248,0x9249,0x924A,0x924B,0x924C,0x924D,0x924E,0x924F, 0,
- 0x9251,0x9252,0x9253, 0,0x9255, 0,0x9257,0x9258,0x9259,0x925A,
- 0x925B,0x925C, 0, 0,0x925F, 0,0x9261,0x9262,0x9263, 0,
- 0x9265, 0, 0, 0,0x9269,0x926A, 0,0x926C,0x926D, 0,
- 0,0x9270, 0,0x9272,0x9273,0x9274,0x9275,0x9276,0x9277, 0,
- 0x9279,0x927A,0x927B, 0,0x927D, 0, 0, 0, 0, 0,
- 0x92A5,0x92A6, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x92B4,0x92B5,0x92B6, 0,0x92B8,
- 0x92B9, 0, 0,0x92BC,0x92BD,0x92BE,0x92BF,0x92C0, 0,0x92C2,
- 0x92C3, 0, 0,0x92C6, 0, 0,0x92C9, 0,0x92CB,0x92CC,
- 0x92CD,0x92CE, 0,0x92D0, 0,0x92D2, 0, 0, 0, 0,
- 0x92D7,0x92D8,0x92D9, 0,0x92DB,
- /* plane 0, page 230 */
- 0 | (255 << 8), /* first, last */
- 0x92DD, 0,0x92DF, 0,0x92E1, 0, 0, 0, 0, 0,
- 0, 0,0x92E9, 0, 0,0x92EC,0x92ED,0x92EE,0x92EF, 0,
- 0, 0, 0, 0, 0,0x92F6,0x92F7,0x92F8,0x92F9,0x92FA,
- 0, 0, 0,0x92FE, 0,0x9341,0x9342, 0, 0,0x9345,
- 0,0x9347, 0,0x9349, 0,0x934B, 0, 0, 0, 0,
- 0x9350,0x9351,0x9352, 0, 0,0x9355,0x9356,0x9357,0x9358,0x9359,
- 0x935A,0x935B, 0,0x935D,0x935E,0x935F,0x9360, 0, 0,0x9363,
- 0x9364, 0,0x9366, 0, 0,0x9369, 0, 0,0x936C,0x936D,
- 0,0x936F,0x9370,0x9371,0x9372,0x9373, 0,0x9375,0x9376,0x9377,
- 0, 0, 0,0x937B,0x937C,0x937D,0x937E, 0,0x93A2,0x93A3,
- 0x93A4,0x93A5,0x93A6,0x93A7,0x93A8, 0,0x93AA, 0, 0, 0,
- 0x93AE,0x93AF, 0,0x93B1, 0, 0, 0,0x93B5,0x93B6,0x93B7,
- 0x93B8,0x93B9, 0,0x93BB,0x93BC,0x93BD, 0,0x93BF,0x93C0,0x93C1,
- 0x93C2,0x93C3,0x93C4,0x93C5,0x93C6,0x93C7,0x93C8, 0,0x93CA,0x93CB,
- 0x93CC,0x93CD,0x93CE,0x93CF,0x93D0, 0,0x93D2, 0,0x93D4, 0,
- 0x93D6,0x93D7, 0,0x93D9,0x93DA, 0,0x93DC,0x93DD,0x93DE,0x93DF,
- 0x93E0,0x93E1,0x93E2, 0,0x93E4, 0,0x93E6, 0, 0,0x93E9,
- 0,0x93EB,0x93EC,0x93ED, 0, 0, 0, 0,0x93F2, 0,
- 0, 0,0x93F6, 0, 0,0x93F9,0x93FA, 0, 0,0x93FD,
- 0x93FE, 0,0x9441,0x9442, 0, 0, 0,0x9446, 0,0x9448,
- 0x9449, 0,0x944B, 0, 0, 0, 0, 0, 0,0x9452,
- 0x9453, 0, 0, 0, 0,0x9458,0x9459, 0,0x945B,0x945C,
- 0,0x945E,0x945F,0x9460,0x9461,0x9462,0x9463,0x9464,0x9465,0x9466,
- 0x9467, 0,0x9469, 0, 0, 0, 0,0x946E,0x946F,0x9470,
- 0,0x9472,0x9473,0x9474,0x9475, 0, 0,0x9478,0x9479, 0,
- 0x947B,0x947C,0x947D,0x947E,0x94A1,0x94A2,
- /* plane 0, page 231 */
- 0 | (255 << 8), /* first, last */
- 0x94A3,0x94A4,0x94A5, 0, 0, 0,0x94A9,0x94AA, 0,0x94AC,
- 0x94AD, 0,0x94AF, 0, 0, 0,0x94B3,0x94B4,0x94B5,0x94B6,
- 0, 0,0x94B9,0x94BA,0x94BB,0x94BC,0x94BD,0x94BE, 0,0x94C0,
- 0, 0, 0, 0, 0, 0,0x94C7,0x94C8,0x94C9, 0,
- 0, 0, 0,0x94CE, 0, 0,0x94D1,0x94D2,0x94D3, 0,
- 0,0x94D6,0x94D7,0x94D8,0x94D9,0x94DA,0x94DB, 0,0x94DD,0x94DE,
- 0x94DF,0x94E0, 0, 0,0x94E3,0x94E4,0x94E5, 0,0x94E7, 0,
- 0,0x94EA, 0,0x94EC, 0, 0,0x94EF,0x94F0,0x94F1,0x94F2,
- 0,0x94F4,0x94F5, 0, 0, 0, 0, 0, 0, 0,
- 0,0x94FE,0x9540,0x9541, 0,0x9543,0x9544,0x9545,0x9546, 0,
- 0x9548,0x9549, 0,0x954B,0x954C,0x954D, 0, 0,0x9550,0x9551,
- 0x9552, 0,0x9554, 0, 0, 0, 0,0x9559,0x955A,0x955B,
- 0x955C, 0,0x955E, 0,0x9560,0x9561,0x9562, 0,0x9564, 0,
- 0, 0,0x9568, 0,0x956A, 0, 0,0x956D, 0,0x956F,
- 0,0x9571, 0,0x9573,0x9574, 0,0x9576, 0,0x9578, 0,
- 0x957A,0x957B, 0,0x957D, 0, 0, 0, 0, 0, 0,
- 0, 0,0x95A8, 0,0x95AA,0x95AB,0x95AC,0x95AD,0x95AE,0x95AF,
- 0x95B0, 0,0x95B2,0x95B3,0x95B4, 0, 0,0x95B7, 0, 0,
- 0x95BA, 0, 0, 0,0x95BE, 0, 0, 0,0x95C2, 0,
- 0, 0,0x95C6,0x95C7, 0, 0,0x95CA, 0, 0,0x95CD,
- 0, 0,0x95D0,0x95D1, 0, 0,0x95D4, 0,0x95D6,0x95D7,
- 0, 0, 0,0x95DB, 0, 0,0x95DE,0x95DF,0x95E0, 0,
- 0x95E2,0x95E3, 0, 0, 0, 0, 0, 0,0x95EA, 0,
- 0x95EC,0x95ED,0x95EE,0x95EF,0x95F0,0x95F1, 0,0x95F3,0x95F4,0x95F5,
- 0x95F6,0x95F7,0x95F8,0x95F9, 0, 0,0x95FC, 0,0x95FE, 0,
- 0x9641,0x9642,0x9643, 0, 0,0x9646,
- /* plane 0, page 232 */
- 0 | (254 << 8), /* first, last */
- 0x9647,0x9648,0x9649, 0, 0, 0,0x964D, 0,0x964F, 0,
- 0, 0,0x9653, 0,0x9655,0x9656, 0,0x9658, 0,0x965A,
- 0,0x965C,0x965D,0x965E,0x965F, 0,0x9661,0x9662, 0,0x9664,
- 0, 0, 0,0x9668,0x9669, 0,0x966B, 0, 0,0x966E,
- 0x966F, 0, 0, 0, 0,0x9674,0x9675,0x9676, 0,0x9678,
- 0x9679, 0, 0,0x967C, 0,0x967E,0x96A1, 0,0x96A3,0x96A4,
- 0,0x96A6, 0,0x96A8, 0,0x96AA,0x96AB, 0, 0, 0,
- 0, 0, 0, 0, 0,0x96B4, 0,0x96B6,0x96B7, 0,
- 0x96B9,0x96BA, 0,0x96BC, 0,0x96BE,0x96BF,0x96C0,0x96C1, 0,
- 0,0x96C4,0x96C5,0x96C6, 0,0x96C8,0x96C9,0x96CA,0x96CB, 0,
- 0,0x96CE,0x96CF,0x96D0, 0,0x96D2,0x96D3,0x96D4,0x96D5,0x96D6,
- 0, 0, 0,0x96DA, 0, 0, 0, 0,0x96DF, 0,
- 0x96E1, 0, 0, 0, 0,0x96E6,0x96E7,0x96E8,0x96E9, 0,
- 0, 0, 0, 0, 0,0x96F0, 0, 0, 0, 0,
- 0, 0,0x96F7,0x96F8, 0,0x96FA,0x96FB, 0,0x96FD,0x96FE,
- 0, 0, 0,0x9743,0x9744,0x9745,0x9746,0x9747, 0, 0,
- 0x974A,0x974B, 0,0x974D,0x974E,0x974F,0x9750,0x9751, 0,0x9753,
- 0x9754, 0,0x9756,0x9757,0x9758,0x9759,0x975A, 0, 0,0x975D,
- 0,0x975F,0x9760,0x9761,0x9762, 0, 0, 0,0x9766,0x9767,
- 0x9768,0x9769,0x976A,0x976B,0x976C,0x976D, 0,0x976F, 0,0x9771,
- 0, 0, 0,0x9775, 0,0x9777,0x9778, 0,0x977A,0x977B,
- 0x977C,0x977D, 0,0x97A1,0x97A2, 0,0x97A4,0x97A5,0x97A6, 0,
- 0,0x97A9, 0,0x97AB,0x97AC,0x97AD,0x97AE, 0,0x97B0,0x97B1,
- 0x97B2, 0,0x97B4,0x97B5,0x97B6, 0,0x97B8,0x97B9,0x97BA, 0,
- 0,0x97BD,0x97BE, 0,0x97C0,0x97C1,0x97C2,0x97C3, 0,0x97C5,
- 0x97C6,0x97C7, 0,0x97C9,0x97CA,
- /* plane 0, page 233 */
- 0 | (254 << 8), /* first, last */
- 0x97CC,0x97CD, 0,0x97CF, 0, 0,0x97D2,0x97D3,0x97D4, 0,
- 0,0x97D7,0x97D8, 0,0x97DA,0x97DB,0x97DC,0x97DD,0x97DE, 0,
- 0,0x97E1, 0,0x97E3,0x97E4, 0, 0,0x97E7,0x97E8, 0,
- 0x97EA,0x97EB,0x97EC,0x97ED,0x97EE, 0, 0,0x97F1,0x97F2,0x97F3,
- 0x97F4,0x97F5,0x97F6,0x97F7,0x97F8, 0,0x97FA,0x97FB, 0,0x97FD,
- 0x97FE,0x9840,0x9841,0x9842,0x9843, 0,0x9845, 0,0x9847, 0,
- 0x9849,0x984A,0x984B, 0, 0,0x984E, 0, 0,0x9851,0x9852,
- 0x9853, 0,0x9855,0x9856, 0, 0, 0,0x985A, 0, 0,
- 0x985D, 0,0x985F,0x9860,0x9861,0x9862, 0,0x9864,0x9865, 0,
- 0x9867, 0,0x9869,0x986A,0x986B, 0,0x986D,0x986E, 0, 0,
- 0x9871,0x9872, 0,0x9874,0x9875, 0, 0, 0,0x9879, 0,
- 0x987B,0x987C, 0, 0, 0,0x98A2,0x98A3,0x98A4, 0,0x98A6,
- 0x98A7,0x98A8,0x98A9,0x98AA, 0,0x98AC, 0, 0, 0,0x98B0,
- 0x98B1, 0, 0, 0, 0,0x98B6, 0, 0,0x98B9, 0,
- 0,0x98BC,0x98BD, 0, 0,0x98C0, 0, 0,0x98C3, 0,
- 0x98C5, 0, 0, 0, 0, 0,0x98CB,0x98CC,0x98CD,0x98CE,
- 0,0x98D0,0x98D1, 0, 0, 0, 0,0x98D6, 0, 0,
- 0x98D9, 0,0x98DB, 0,0x98DD, 0,0x98DF, 0, 0, 0,
- 0,0x98E4, 0,0x98E6, 0,0x98E8,0x98E9, 0,0x98EB,0x98EC,
- 0, 0, 0, 0, 0, 0, 0,0x98F4, 0, 0,
- 0, 0, 0,0x98FA, 0, 0, 0,0x98FE,0x9940, 0,
- 0, 0, 0, 0,0x9946, 0,0x9948, 0, 0,0x994B,
- 0, 0,0x994E, 0, 0, 0, 0, 0, 0,0x9955,
- 0x9956, 0, 0,0x9959, 0,0x995B, 0, 0, 0,0x995F,
- 0, 0, 0, 0, 0, 0, 0,0x9967, 0, 0,
- 0, 0, 0, 0,0x996E,
- /* plane 0, page 234 */
- 3 | (255 << 8), /* first, last */
- 0x9973, 0, 0, 0, 0, 0, 0,
- 0x997A,0x997B, 0, 0, 0,0x99A1, 0, 0, 0,0x99A5,
- 0,0x99A7, 0, 0, 0, 0, 0,0x99AD, 0, 0,
- 0, 0, 0,0x99B3, 0, 0, 0, 0, 0, 0,
- 0, 0,0x99BC, 0, 0, 0, 0, 0, 0,0x99C3,
- 0, 0, 0,0x99C7, 0, 0, 0, 0, 0, 0,
- 0x99CE,0x99CF, 0, 0, 0, 0, 0,0x99D5, 0, 0,
- 0, 0, 0, 0, 0, 0,0x99DE, 0, 0,0x99E1,
- 0, 0, 0, 0, 0, 0, 0,0x99E9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x99F5,
- 0, 0,0x99F8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9A48,0x9A49, 0,
- 0, 0, 0, 0, 0,0x9A50, 0, 0, 0, 0,
- 0x9A55, 0, 0,0x9A58, 0,0x9A5A, 0,0x9A5C, 0, 0,
- 0,0x9A60, 0, 0,0x9A63, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9A6E, 0,0x9A70, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9A79, 0,0x9A7B,0x9A7C,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9AB4,0x9AB5,0x9AB6, 0, 0, 0,0x9ABA, 0, 0,
- 0x9ABD,0x9ABE,0x9ABF,0x9AC0,0x9AC1, 0, 0,0x9AC4,0x9AC5,0x9AC6,
- 0,0x9AC8,0x9AC9, 0,0x9ACB,0x9ACC,0x9ACD,0x9ACE,0x9ACF, 0,
- 0x9AD1, 0,0x9AD3,0x9AD4,0x9AD5,0x9AD6,0x9AD7,0x9AD8, 0, 0,
- 0,0x9ADC,0x9ADD,0x9ADE,0x9ADF,0x9AE0,0x9AE1, 0,0x9AE3, 0,
- 0x9AE5,0x9AE6,0x9AE7, 0,0x9AE9,0x9AEA,0x9AEB,0x9AEC,0x9AED,0x9AEE,
- 0x9AEF,0x9AF0, 0, 0,0x9AF3,0x9AF4,
- /* plane 0, page 235 */
- 0 | (255 << 8), /* first, last */
- 0x9AF5, 0,0x9AF7,0x9AF8,0x9AF9,0x9AFA, 0, 0,0x9AFD,0x9AFE,
- 0x9B40,0x9B41,0x9B42,0x9B43,0x9B44,0x9B45, 0,0x9B47,0x9B48, 0,
- 0,0x9B4B, 0,0x9B4D,0x9B4E,0x9B4F,0x9B50,0x9B51,0x9B52,0x9B53,
- 0,0x9B55,0x9B56,0x9B57, 0,0x9B59, 0,0x9B5B, 0,0x9B5D,
- 0, 0,0x9B60, 0,0x9B62,0x9B63,0x9B64,0x9B65,0x9B66,0x9B67,
- 0x9B68,0x9B69,0x9B6A,0x9B6B,0x9B6C,0x9B6D,0x9B6E,0x9B6F, 0, 0,
- 0,0x9B73,0x9B74,0x9B75, 0,0x9B77, 0,0x9B79,0x9B7A, 0,
- 0x9B7C, 0, 0, 0,0x9BA2,0x9BA3,0x9BA4,0x9BA5,0x9BA6,0x9BA7,
- 0x9BA8,0x9BA9,0x9BAA,0x9BAB,0x9BAC,0x9BAD,0x9BAE,0x9BAF,0x9BB0,0x9BB1,
- 0x9BB2,0x9BB3, 0,0x9BB5, 0,0x9BB7,0x9BB8,0x9BB9,0x9BBA,0x9BBB,
- 0,0x9BBD,0x9BBE,0x9BBF,0x9BC0,0x9BC1,0x9BC2,0x9BC3, 0,0x9BC5,
- 0,0x9BC7,0x9BC8,0x9BC9, 0,0x9BCB,0x9BCC, 0,0x9BCE,0x9BCF,
- 0x9BD0, 0,0x9BD2, 0, 0, 0,0x9BD6,0x9BD7,0x9BD8,0x9BD9,
- 0,0x9BDB,0x9BDC,0x9BDD, 0,0x9BDF,0x9BE0,0x9BE1,0x9BE2,0x9BE3,
- 0x9BE4,0x9BE5,0x9BE6,0x9BE7,0x9BE8, 0,0x9BEA,0x9BEB, 0,0x9BED,
- 0x9BEE,0x9BEF,0x9BF0,0x9BF1,0x9BF2,0x9BF3, 0, 0, 0,0x9BF7,
- 0x9BF8, 0,0x9BFA,0x9BFB, 0,0x9BFD,0x9BFE, 0,0x9C41, 0,
- 0x9C43,0x9C44, 0,0x9C46,0x9C47,0x9C48,0x9C49,0x9C4A,0x9C4B,0x9C4C,
- 0x9C4D, 0,0x9C4F, 0, 0,0x9C52, 0, 0,0x9C55,0x9C56,
- 0,0x9C58, 0, 0,0x9C5B,0x9C5C, 0,0x9C5E,0x9C5F,0x9C60,
- 0x9C61, 0,0x9C63, 0,0x9C65,0x9C66,0x9C67, 0,0x9C69, 0,
- 0,0x9C6C, 0,0x9C6E,0x9C6F,0x9C70,0x9C71, 0,0x9C73,0x9C74,
- 0,0x9C76, 0,0x9C78,0x9C79,0x9C7A, 0, 0,0x9C7D, 0,
- 0x9CA1,0x9CA2,0x9CA3,0x9CA4,0x9CA5,0x9CA6,0x9CA7, 0,0x9CA9,0x9CAA,
- 0,0x9CAC,0x9CAD, 0, 0,0x9CB0,0x9CB1, 0, 0,0x9CB4,
- 0x9CB5,0x9CB6, 0,0x9CB8,0x9CB9,0x9CBA,
- /* plane 0, page 236 */
- 0 | (252 << 8), /* first, last */
- 0x9CBB, 0, 0,0x9CBE, 0,0x9CC0,0x9CC1, 0,0x9CC3,0x9CC4,
- 0,0x9CC6,0x9CC7,0x9CC8,0x9CC9,0x9CCA,0x9CCB, 0, 0,0x9CCE,
- 0x9CCF, 0,0x9CD1,0x9CD2,0x9CD3,0x9CD4,0x9CD5,0x9CD6,0x9CD7,0x9CD8,
- 0, 0,0x9CDB, 0,0x9CDD, 0,0x9CDF, 0,0x9CE1, 0,
- 0, 0,0x9CE5,0x9CE6,0x9CE7,0x9CE8,0x9CE9,0x9CEA, 0,0x9CEC,
- 0x9CED, 0, 0,0x9CF0, 0,0x9CF2, 0, 0, 0,0x9CF6,
- 0x9CF7,0x9CF8, 0,0x9CFA,0x9CFB,0x9CFC,0x9CFD,0x9CFE,0x9D40,0x9D41,
- 0x9D42,0x9D43,0x9D44,0x9D45,0x9D46,0x9D47,0x9D48,0x9D49, 0,0x9D4B,
- 0, 0,0x9D4E,0x9D4F,0x9D50,0x9D51,0x9D52,0x9D53,0x9D54, 0,
- 0x9D56, 0,0x9D58,0x9D59, 0,0x9D5B,0x9D5C,0x9D5D,0x9D5E,0x9D5F,
- 0, 0, 0,0x9D63,0x9D64,0x9D65,0x9D66,0x9D67,0x9D68,0x9D69,
- 0x9D6A,0x9D6B,0x9D6C,0x9D6D,0x9D6E,0x9D6F, 0,0x9D71,0x9D72,0x9D73,
- 0,0x9D75, 0,0x9D77,0x9D78, 0,0x9D7A,0x9D7B,0x9D7C, 0,
- 0, 0,0x9DA2, 0,0x9DA4,0x9DA5, 0, 0, 0, 0,
- 0x9DAA,0x9DAB,0x9DAC,0x9DAD, 0,0x9DAF,0x9DB0,0x9DB1,0x9DB2,0x9DB3,
- 0x9DB4,0x9DB5,0x9DB6,0x9DB7,0x9DB8,0x9DB9, 0,0x9DBB,0x9DBC, 0,
- 0x9DBE, 0, 0,0x9DC1,0x9DC2, 0, 0,0x9DC5,0x9DC6, 0,
- 0,0x9DC9, 0,0x9DCB,0x9DCC,0x9DCD,0x9DCE, 0, 0, 0,
- 0x9DD2, 0,0x9DD4, 0, 0,0x9DD7,0x9DD8,0x9DD9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9DED,0x9DEE, 0,
- 0, 0,0x9DF2,0x9DF3, 0, 0, 0, 0, 0,0x9DF9,
- 0x9DFA, 0,0x9DFC,0x9DFD,0x9DFE,0x9E40, 0, 0, 0,0x9E44,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9E4F, 0,0x9E51, 0,0x9E53,0x9E54, 0, 0, 0, 0,
- 0, 0,0x9E5B,
- /* plane 0, page 237 */
- 4 | (245 << 8), /* first, last */
- 0x9E63,0x9E64, 0,0x9E66, 0, 0,
- 0x9E69, 0,0x9E6B,0x9E6C,0x9E6D,0x9E6E,0x9E6F,0x9E70, 0,0x9E72,
- 0,0x9E74,0x9E75,0x9E76,0x9E77, 0,0x9E79,0x9E7A,0x9E7B,0x9E7C,
- 0x9E7D,0x9E7E, 0, 0,0x9EA3,0x9EA4,0x9EA5,0x9EA6,0x9EA7,0x9EA8,
- 0,0x9EAA,0x9EAB, 0,0x9EAD,0x9EAE, 0, 0, 0, 0,
- 0,0x9EB4, 0, 0, 0,0x9EB8,0x9EB9, 0,0x9EBB,0x9EBC,
- 0,0x9EBE, 0, 0, 0,0x9EC2,0x9EC3, 0,0x9EC5,0x9EC6,
- 0,0x9EC8,0x9EC9, 0,0x9ECB,0x9ECC,0x9ECD,0x9ECE,0x9ECF,0x9ED0,
- 0,0x9ED2,0x9ED3,0x9ED4,0x9ED5, 0, 0,0x9ED8,0x9ED9,0x9EDA,
- 0, 0,0x9EDD,0x9EDE,0x9EDF,0x9EE0, 0, 0,0x9EE3, 0,
- 0x9EE5, 0,0x9EE7, 0, 0, 0, 0,0x9EEC, 0,0x9EEE,
- 0,0x9EF0, 0,0x9EF2,0x9EF3, 0, 0,0x9EF6, 0,0x9EF8,
- 0x9EF9, 0,0x9EFB,0x9EFC, 0, 0, 0, 0, 0,0x9F43,
- 0, 0,0x9F46,0x9F47,0x9F48, 0,0x9F4A,0x9F4B,0x9F4C,0x9F4D,
- 0, 0,0x9F50, 0, 0,0x9F53, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9F68, 0, 0, 0,
- 0, 0, 0, 0,0x9F70, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9FA5, 0, 0, 0, 0,0x9FAA, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9FB3, 0,0x9FB5,
- 0, 0, 0, 0, 0,0x9FBB, 0, 0,0x9FBE,0x9FBF,
- 0,0x9FC1, 0, 0, 0,0x9FC5, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9FD1, 0, 0,
- 0, 0, 0,0x9FD7, 0,0x9FD9,
- /* plane 0, page 238 */
- 8 | (183 << 8), /* first, last */
- 0x9FEC, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9FF5, 0, 0,
- 0,0x9FF9, 0, 0, 0, 0, 0,0xA040, 0, 0,
- 0, 0,0xA045, 0,0xA047, 0, 0, 0, 0, 0,
- 0, 0,0xA04F, 0, 0, 0,0xA053, 0,0xA055,0xA056,
- 0, 0,0xA059, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xA068, 0,0xA06A,
- 0, 0,0xA06D, 0,0xA06F, 0, 0, 0, 0, 0,
- 0, 0, 0,0xA078, 0, 0,0xA07B, 0, 0,0xA07E,
- 0,0xA0A2, 0,0xA0A4, 0, 0,0xA0A7, 0, 0, 0,
- 0xA0AB,0xA0AC, 0, 0, 0, 0,0xA0B1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xA0BD, 0,
- 0, 0, 0, 0,0xA0C3, 0,0xA0C5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xA0D0, 0, 0,
- 0, 0, 0, 0, 0,0xA0D8, 0,0xA0DA, 0, 0,
- 0,0xA0DE, 0, 0, 0, 0,0xA0E3, 0, 0,0xA0E6,
- 0,0xA0E8,0xA0E9,0xA0EA,0xA0EB,0xA0EC,0xA0ED,0xA0EE,0xA0EF,0xA0F0,
- 0xA0F1, 0,0xA0F3,0xA0F4,0xA0F5,0xA0F6,0xA0F7,0xA0F8,0xA0F9, 0,
- 0xA0FB, 0, 0,0xA0FE,
- /* plane 0, page 239: --- */
- /* plane 0, page 240: --- */
- /* plane 0, page 241: --- */
- /* plane 0, page 242: --- */
- /* plane 0, page 243 */
- 3 | (253 << 8), /* first, last */
- 0x8840,0x8841,0x8842,0x8843,0x8844,0x8845,0x8846,
- 0x8847,0x8848,0x8849,0x884A,0x884B,0x884C,0x884D,0x884E,0x884F,0x8850,
- 0x8851,0x8852,0x8853,0x8854,0x8855, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8862, 0,0x8864,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x88A3, 0,
- 0x88A5, 0, 0, 0,0x88A9,0x88AA, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8940,0x8941, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x894C, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x89B2, 0, 0, 0, 0,0x89B7, 0, 0,0x89BA,0x89BB,
- 0x89BC, 0,0x89BE,0x89BF,
- /* plane 0, page 244 */
- 3 | (255 << 8), /* first, last */
- 0x89C5, 0, 0, 0, 0,0x89CA,0x89CB,
- 0x89CC,0x89CD, 0, 0, 0, 0, 0, 0, 0,0x89D5,
- 0,0x89D7, 0, 0,0x89DA,0x89DB,0x89DC, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x89E6, 0,0x89E8, 0,
- 0x89EA, 0, 0,0x89ED,0x89EE,0x89EF, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x89F9, 0,0x89FB,0x89FC, 0,
- 0x89FE,0x8A40, 0, 0,0x8A43,0x8A44,0x8A45, 0,0x8A47,0x8A48,
- 0x8A49, 0,0x8A4B,0x8A4C,0x8A4D,0x8A4E, 0,0x8A50,0x8A51,0x8A52,
- 0x8A53,0x8A54,0x8A55, 0,0x8A57,0x8A58,0x8A59,0x8A5A, 0, 0,
- 0x8A5D,0x8A5E,0x8A5F,0x8A60,0x8A61,0x8A62, 0,0x8A64,0x8A65,0x8A66,
- 0x8A67,0x8A68,0x8A69, 0,0x8A6B,0x8A6C,0x8A6D,0x8A6E,0x8A6F,0x8A70,
- 0x8A71,0x8A72, 0, 0, 0,0x8A76,0x8A77, 0, 0,0x8A7A,
- 0x8A7B,0x8A7C,0x8A7D,0x8A7E,0x8AA1,0x8AA2,0x8AA3, 0,0x8AA5,0x8AA6,
- 0,0x8AA8,0x8AA9,0x8AAA, 0,0x8AAC,0x8AAD,0x8AAE, 0,0x8AB0,
- 0,0x8AB2,0x8AB3,0x8AB4,0x8AB5,0x8AB6, 0,0x8AB8,0x8AB9, 0,
- 0x8ABB,0x8ABC,0x8ABD, 0, 0,0x8AC0, 0,0x8AC2,0x8AC3, 0,
- 0, 0,0x8AC7, 0,0x8AC9,0x8ACA,0x8ACB,0x8ACC, 0,0x8ACE,
- 0x8ACF,0x8AD0,0x8AD1,0x8AD2,0x8AD3,0x8AD4,0x8AD5, 0,0x8AD7,0x8AD8,
- 0x8AD9,0x8ADA, 0,0x8ADC, 0, 0,0x8ADF,0x8AE0,0x8AE1,0x8AE2,
- 0x8AE3,0x8AE4,0x8AE5,0x8AE6, 0,0x8AE8,0x8AE9,0x8AEA,0x8AEB,0x8AEC,
- 0x8AED,0x8AEE,0x8AEF,0x8AF0,0x8AF1,0x8AF2,0x8AF3,0x8AF4, 0,0x8AF6,
- 0x8AF7,0x8AF8,0x8AF9,0x8AFA,0x8AFB,0x8AFC, 0,0x8AFE,0x8B40,0x8B41,
- 0x8B42,0x8B43,0x8B44,0x8B45,0x8B46,0x8B47,0x8B48,0x8B49,0x8B4A,0x8B4B,
- 0x8B4C,0x8B4D,0x8B4E,0x8B4F, 0, 0, 0, 0, 0,0x8B55,
- 0, 0,0x8B58,0x8B59, 0, 0, 0, 0,0x8B5E, 0,
- 0x8B60, 0,0x8B62, 0,0x8B64,0x8B65,
- /* plane 0, page 245 */
- 0 | (239 << 8), /* first, last */
- 0x8B66,0x8B67,0x8B68,0x8B69,0x8B6A,0x8B6B, 0,0x8B6D,0x8B6E,0x8B6F,
- 0x8B70,0x8B71,0x8B72,0x8B73,0x8B74,0x8B75,0x8B76,0x8B77, 0,0x8B79,
- 0x8B7A,0x8B7B,0x8B7C, 0,0x8B7E,0x8BA1,0x8BA2,0x8BA3,0x8BA4,0x8BA5,
- 0x8BA6,0x8BA7,0x8BA8,0x8BA9,0x8BAA,0x8BAB,0x8BAC,0x8BAD,0x8BAE, 0,
- 0,0x8BB1,0x8BB2, 0, 0,0x8BB5,0x8BB6, 0,0x8BB8, 0,
- 0,0x8BBB,0x8BBC, 0,0x8BBE, 0, 0, 0,0x8BC2,0x8BC3,
- 0,0x8BC5, 0, 0,0x8BC8, 0, 0, 0,0x8BCC, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8BD6, 0,
- 0, 0, 0,0x8BDB,0x8BDC, 0,0x8BDE, 0, 0,0x8BE1,
- 0x8BE2, 0, 0, 0,0x8BE6, 0, 0, 0, 0, 0,
- 0,0x8BED, 0, 0, 0, 0, 0,0x8BF3, 0, 0,
- 0, 0, 0, 0,0x8BFA, 0, 0, 0, 0, 0,
- 0,0x8C42,0x8C43,0x8C44, 0,0x8C46, 0, 0,0x8C49,0x8C4A,
- 0x8C4B,0x8C4C, 0,0x8C4E, 0, 0, 0, 0, 0,0x8C54,
- 0x8C55,0x8C56,0x8C57,0x8C58, 0, 0, 0,0x8C5C,0x8C5D, 0,
- 0x8C5F,0x8C60, 0, 0, 0,0x8C64,0x8C65, 0, 0, 0,
- 0x8C69, 0, 0,0x8C6C,0x8C6D, 0, 0, 0, 0, 0,
- 0,0x8C74, 0, 0, 0, 0,0x8C79, 0, 0, 0,
- 0x8C7D, 0,0x8CA1, 0, 0,0x8CA4, 0, 0, 0,0x8CA8,
- 0,0x8CAA,0x8CAB, 0, 0, 0,0x8CAF,0x8CB0, 0, 0,
- 0, 0, 0, 0,0x8CB7, 0,0x8CB9, 0,0x8CBB, 0,
- 0, 0, 0,0x8CC0,0x8CC1,0x8CC2,0x8CC3,0x8CC4, 0, 0,
- 0, 0, 0, 0,0x8CCB, 0, 0, 0,0x8CCF, 0,
- 0x8CD1,0x8CD2,0x8CD3, 0,0x8CD5,0x8CD6,0x8CD7,0x8CD8, 0,0x8CDA,
- /* plane 0, page 246 */
- 55 | (240 << 8), /* first, last */
- 0x8D63,0x8D64, 0, 0,0x8D67,
- 0x8D68, 0, 0, 0, 0,0x8D6D,0x8D6E,0x8D6F,0x8D70, 0,
- 0, 0,0x8D74, 0, 0, 0,0x8D78, 0, 0, 0,
- 0,0x8D7D, 0,0x8DA1, 0, 0, 0, 0,0x8DA6, 0,
- 0, 0, 0,0x8DAB, 0,0x8DAD, 0, 0,0x8DB0, 0,
- 0x8DB2, 0,0x8DB4, 0, 0,0x8DB7, 0, 0,0x8DBA,0x8DBB,
- 0x8DBC, 0, 0, 0, 0, 0, 0,0x8DC3, 0,0x8DC5,
- 0, 0, 0, 0,0x8DCA, 0,0x8DCC, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8DD6, 0, 0, 0,
- 0,0x8DDB, 0, 0, 0, 0, 0, 0,0x8DE2, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8DEB,0x8DEC, 0,
- 0,0x8DEF,0x8DF0, 0, 0,0x8DF3, 0,0x8DF5, 0, 0,
- 0, 0, 0,0x8DFB,0x8DFC,0x8DFD,0x8DFE, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xC6CD, 0, 0,0xC6CF, 0, 0, 0,0xC6D3, 0,
- 0xC6D5, 0,0xC6D7, 0, 0, 0, 0, 0, 0,0xC6DE,
- 0xC6DF,
- /* plane 0, page 247 */
- 229 | (238 << 8), /* first, last */
- 0xC879,
- 0xC87A, 0,0xC87C, 0,0xC87E,0xC8A1, 0,0xC8A3,0xC8A4,
- /* plane 0, page 248 */
- 32 | (59 << 8), /* first, last */
- 0xC8D6,0xC8D7,0xC8D8,0xC8D9,0xC8DA,0xC8DB,0xC8DC,0xC8DD,
- 0xC8DE,0xC8DF,0xC8E0,0xC8E1,0xC8E2,0xC8E3,0xC8E4,0xC8E5,0xC8E6,0xC8E7,
- 0xC8E8,0xC8E9,0xC8EA,0xC8EB,0xC8EC,0xC8ED,0xC8EE,0xC8EF,0xC8F0,0xC8F1,
- /* plane 0, page 249 */
- 7 | (7 << 8), /* first, last */
- 0x8BF8,
- /* plane 0, page 250: --- */
- /* plane 0, page 251: --- */
- /* plane 0, page 252: --- */
- /* plane 0, page 253: --- */
- /* plane 0, page 254: --- */
- /* plane 0, page 255 */
- 2 | (237 << 8), /* first, last */
- 0xC8D0, 0, 0, 0, 0,0xC8CF, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xC6E4,
- 0,0xC6E5, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xC8CD, 0,0xC8CE, 0,
- 0, 0, 0, 0, 0, 0, 0,0xF9FE,
- /* plane 1: --- */
- /* plane 2, page 0 */
- 33 | (238 << 8), /* first, last */
- 0x9C71, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9375, 0, 0, 0, 0, 0, 0, 0,
- 0x9376, 0, 0, 0, 0, 0, 0, 0,0x9548, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8EC6, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8BC5,0x8BFA, 0, 0,0xC87C, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9AB4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x884E,0x884B,0xC87A,0x8848, 0, 0, 0,0x8847,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xA0F6,
- /* plane 2, page 1 */
- 12 | (242 << 8), /* first, last */
- 0x8845, 0,0x8853, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFCAD, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8AAD,
- 0,0x9272, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFC47, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x94DF, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9FD1,
- /* plane 2, page 2 */
- 4 | (229 << 8), /* first, last */
- 0xFBCB, 0, 0, 0, 0, 0,
- 0, 0,0x927D, 0, 0, 0, 0, 0, 0, 0,
- 0x98A4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x94E7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x90CB,0x927B, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x94D8, 0, 0, 0, 0,0xFC5F, 0,
- 0xFA54, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9AB5, 0, 0, 0, 0, 0, 0,
- 0,0x96DA,0x9279, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFA74,
- /* plane 2, page 3 */
- 10 | (252 << 8), /* first, last */
- 0x9275, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8DFB, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8A49, 0, 0, 0,0x92DF,
- 0x9B7C,0xFA63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFA60,0x926D,0xFA62, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9AB6, 0, 0, 0, 0, 0, 0,0x976B, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFD6A, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFD54, 0,0x9273, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x97D8, 0, 0, 0, 0,
- 0, 0,0x9FBB,
- /* plane 2, page 4 */
- 19 | (254 << 8), /* first, last */
- 0x9342,
- 0x9276, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFA65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x926C, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFA6E, 0, 0, 0, 0,
- 0, 0,0x9EE0, 0, 0,0x92C0,0x92BF, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x92BE, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9ABA, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8AB3, 0,0x9775,
- /* plane 2, page 5 */
- 71 | (235 << 8), /* first, last */
- 0xFA40, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFA76, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFBD0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFA7B,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFE6D, 0, 0, 0, 0,
- 0, 0,0x9BB3, 0, 0, 0, 0, 0,0x89CC, 0,
- 0, 0, 0,0x9ABE, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFA42,0x92BC, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x945C,
- /* plane 2, page 6 */
- 17 | (118 << 8), /* first, last */
- 0x9BB5, 0, 0,
- 0,0x9ABF, 0, 0, 0,0x98A7,0x97A4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x90FD, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFC7B, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9AC0,
- /* plane 2, page 7 */
- 14 | (121 << 8), /* first, last */
- 0x92C3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8AAA,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9BD0,
- /* plane 2, page 8 */
- 44 | (213 << 8), /* first, last */
- 0x9550, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x92C6, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x98A6,
- /* plane 2, page 9 */
- 22 | (231 << 8), /* first, last */
- 0x9546, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFD63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFAC2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9EC3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x89B2,
- /* plane 2, page 10 */
- 17 | (205 << 8), /* first, last */
- 0x9C66, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9053, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x97C1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9AC4, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9AC5,
- /* plane 2, page 11 */
- 13 | (255 << 8), /* first, last */
- 0x8EEF, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFAE9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9262,0x8AF7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9AC6, 0, 0, 0, 0, 0, 0,0x92E1, 0,
- 0, 0, 0,0x9AC9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFAC6, 0, 0, 0,
- 0, 0, 0, 0, 0,0x97A5, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9ACB, 0, 0, 0,0xFA72,
- /* plane 2, page 12 */
- 11 | (255 << 8), /* first, last */
- 0x8A5E, 0,0x94E0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x92CC, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8AE5, 0, 0, 0, 0, 0,0xFE5C,0x9ACC,
- 0, 0, 0, 0, 0,0x9DF9,0x8A43,0x8AA6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9ACD, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9ACE, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFAEE,
- 0x9BCC, 0, 0, 0,0x9ACF, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9AD1, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9DFA, 0, 0, 0, 0, 0,0x9D7C, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9AD3, 0, 0,0x97A6, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x995F, 0, 0,
- 0,0xFBF6,0x9FC5,0x8A59,0x8B6B, 0, 0, 0, 0, 0,
- 0,0x9AD4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9AD5, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x97A2,
- /* plane 2, page 13 */
- 21 | (200 << 8), /* first, last */
- 0x8A44, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9F4A, 0, 0, 0, 0, 0, 0, 0, 0,0x90A1,
- 0xFDA4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8A64,0x8AF2,0x8AF8,0x9DD8, 0, 0,0x94D6,0xFAFE,0xFBA7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9AD6, 0,0x9F4D, 0, 0,0xFAF6, 0, 0, 0,
- 0, 0, 0, 0,0x8A57, 0,0x8B43,0x8B44, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8AB6, 0, 0, 0, 0, 0,0x8AC0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9E54, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9AD7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9AD8,
- /* plane 2, page 14 */
- 4 | (251 << 8), /* first, last */
- 0x9ADC, 0, 0, 0, 0,0x8ACA,
- 0x9EA8, 0, 0,0x9263,0x9ADD,0x8B65,0x8B6F,0x8B7E, 0, 0,
- 0, 0,0x8F43, 0, 0, 0, 0, 0, 0,0x92D0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8AF4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9DBE,
- 0, 0, 0, 0, 0,0x9AE1, 0,0xFCDE,0x9DFD,0x8B66,
- 0x8B70,0x8B75,0x8AE4,0x8BA4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8AED, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8A5D, 0,0x8B48, 0, 0, 0, 0,0x9DED, 0, 0,
- 0, 0,0x9E40, 0, 0, 0, 0, 0, 0, 0,
- 0x8AEF,0x8AF6,0x9E76, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9EE3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9ADE,0x8DFE, 0, 0, 0,
- 0,0xFAFC, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9CB1,0x9E77,
- 0x8B64,0x8B67,
- /* plane 2, page 15 */
- 29 | (237 << 8), /* first, last */
- 0x974B,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9653, 0,
- 0, 0, 0, 0, 0,0x9AE0,0x8B4A, 0,0x8AF1,0x8AD7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xA0AB,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8AB5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8A5F, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8AEE, 0, 0,0x9ADF, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8AFE, 0, 0, 0, 0, 0, 0,
- 0x8A58,0x8BA3,0x8BA7, 0, 0, 0, 0, 0,0x9AE3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9261, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9DD7,0x9E7D,0x9EA7,0x9EAB,
- /* plane 2, page 16 */
- 20 | (246 << 8), /* first, last */
- 0x9042, 0, 0, 0, 0, 0, 0, 0, 0,0x8B79,
- 0x8B7A, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9AE6,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9AE5, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8A7E, 0, 0, 0, 0, 0,0x9E44,0x9AE7,0x8A7C,
- 0x8B71, 0, 0,0x9AE9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9AEA, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9AEB, 0, 0, 0, 0, 0, 0,0x8ABD, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFB4E, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9AED,0x8AF9,0x9E63, 0, 0, 0, 0, 0,0x8B49,
- 0x8ACE,0x8B6E, 0, 0, 0, 0, 0,0x8AE8, 0, 0,
- 0,0x9AEE, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x92CE, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8A5A,0x8B7B,0x8B7C,
- /* plane 2, page 17 */
- 47 | (217 << 8), /* first, last */
- 0x9AEF, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9AF0,
- 0,0x8AFA, 0, 0, 0, 0, 0, 0, 0,0x8941,
- 0, 0,0x8B72, 0, 0, 0, 0, 0, 0,0x8AF3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8BA8, 0,
- 0, 0, 0, 0, 0,0x9EAE, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9E72,
- /* plane 2, page 18 */
- 60 | (254 << 8), /* first, last */
- 0xFB73, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFB5F,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x90BA, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x91FE,0x9EF6,
- 0, 0, 0, 0, 0, 0,0x97ED, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9AF3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xA0EE,
- /* plane 2, page 19 */
- 2 | (254 << 8), /* first, last */
- 0x967C,0x9345,0x986E,0xFA56, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9AF5, 0, 0, 0,0xFC4B, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9AF4,0xFEDE, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFCB7, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x97F1, 0, 0, 0,0x97C7, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9CCB,0x9240, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9CE8, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x91FD,
- /* plane 2, page 20 */
- 19 | (253 << 8), /* first, last */
- 0x974E,
- 0, 0,0xFB68, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x976C, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8CC2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x97E8, 0,0xFB6A,0x8B74, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8EE7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFDC8, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9241, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x96A1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8EF3,
- /* plane 2, page 21 */
- 119 | (150 << 8), /* first, last */
- 0x9AF7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8FA6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFAD6,
- /* plane 2, page 22 */
- 10 | (254 << 8), /* first, last */
- 0x9CC7, 0, 0, 0, 0, 0, 0, 0, 0,0xFAD7,
- 0, 0, 0, 0, 0,0x9AF8, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFBA1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8EC5, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFBA4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFBC2, 0,0x9AC1, 0, 0, 0,
- 0, 0,0x91FA,0xFEDB,0x97AB, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9147, 0,0xFBB1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8FEA, 0, 0, 0, 0, 0, 0,
- 0x94D2,0xFE61,0xFACE, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x92ED,0x91F3,0x93C6, 0,0x935A,
- /* plane 2, page 23 */
- 13 | (252 << 8), /* first, last */
- 0xFAFB, 0, 0,0x92EF, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xFAC8, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9847,0x9366,
- 0x9855, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x96E6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9F43,0x9FAA,
- 0x94DA,0x92EE,0xFCAF,0xFBFB, 0,0x8EF9,0x91F6, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9364, 0, 0, 0, 0,0x94F5,0x9CB6,0xFBAD,0x984E,
- 0x8F44,0x96FD, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9AF9, 0, 0, 0,0x9AFA,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9769,0x95D4,0x984B,
- 0xFBAA, 0, 0,0x987C, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x91EA,
- 0, 0, 0, 0, 0,0x9DAF,0x9DC5, 0,0x91F1,0x8EB1,
- 0x97A9,0xFBAC,0xFCB8,
- /* plane 2, page 24 */
- 32 | (250 << 8), /* first, last */
- 0x9CB9, 0, 0, 0, 0, 0, 0, 0,
- 0xFBB0,0xFCD2,0x93CB, 0, 0,0x9AFD, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x91F4,0x8BAC,0xA055,
- 0, 0, 0, 0,0x9574, 0, 0, 0, 0,0x95BE,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x97AD, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8EE9, 0, 0,0x92F8,0x97BE,0x916C,
- 0x94AA, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFC63,
- 0, 0, 0,0x9DC6, 0, 0, 0, 0, 0, 0,
- 0,0x97B5,0x92B8,0x91EF, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xFEA6,0x9760,
- 0x9358,0x9576,0x8FAC, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x91EC,0x97B4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x91F7,
- 0, 0, 0, 0,0x974A,0xFB49,0x9578,0x93BC, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x91D6,
- /* plane 2, page 25 */
- 3 | (243 << 8), /* first, last */
- 0x9355,0x9356,0x9851, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8FF8,0xFBC0,0x93F2, 0,
- 0,0x90D0, 0, 0, 0, 0, 0, 0,0x9C44, 0,
- 0, 0, 0, 0,0x9255, 0, 0, 0, 0,0x9363,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x91A5,
- 0, 0, 0, 0, 0, 0, 0, 0,0xA0ED, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xFD6B, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9AFE, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9351, 0, 0, 0,0x8C57, 0,
- 0,0xFA78, 0, 0, 0, 0,0xFEA8, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9350, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFA4C,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x92F7,
- /* plane 2, page 26 */
- 45 | (75 << 8), /* first, last */
- 0x9B40, 0, 0, 0, 0,
- 0, 0,0xFBCE, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9B41,
- 0, 0, 0, 0, 0,0xFEAD,
- /* plane 2, page 27 */
- 68 | (194 << 8), /* first, last */
- 0xFBD5, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8BC2,0x9A7C,
- /* plane 2, page 28 */
- 42 | (172 << 8), /* first, last */
- 0x9B42, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9B43, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9E79, 0, 0,0xFBD9, 0, 0, 0, 0,
- 0, 0,0x9B44,
- /* plane 2, page 29 */
- 70 | (249 << 8), /* first, last */
- 0xA0A7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9BF3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8C79, 0, 0, 0,0x935E, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x89CB, 0, 0, 0, 0, 0, 0,0x9F53,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x93D7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFBE1,
- /* plane 2, page 30 */
- 28 | (213 << 8), /* first, last */
- 0xFED0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFBE2, 0, 0, 0, 0,
- 0,0xFCE3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9074, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFBE6, 0, 0, 0,0x9BB7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9B45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9B47,
- /* plane 2, page 31 */
- 15 | (232 << 8), /* first, last */
- 0x9F50, 0, 0, 0, 0,
- 0,0x9B48, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFC5B, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x98A9, 0,
- 0,0x9CFD, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x884C,
- /* plane 2, page 32 */
- 69 | (252 << 8), /* first, last */
- 0x9B4B,
- 0, 0, 0,0xFBEC, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8C69, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9BA8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8AD5,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFA73,
- /* plane 2, page 33 */
- 42 | (195 << 8), /* first, last */
- 0xFD59, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x91A2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFBED, 0, 0, 0, 0,
- 0, 0,0x9CA9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8AA8, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9BC3,
- /* plane 2, page 34 */
- 8 | (124 << 8), /* first, last */
- 0x8AE1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9B4E,
- /* plane 2, page 35 */
- 33 | (250 << 8), /* first, last */
- 0x95D0, 0, 0, 0,0x905F, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x97EE,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xFC4E, 0,
- 0, 0, 0, 0, 0,0x9B4F, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9B50,
- /* plane 2, page 36 */
- 101 | (237 << 8), /* first, last */
- 0x9EC6, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFC50, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFD73,
- 0, 0, 0, 0, 0,0xFDA7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9DA2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFA58,
- /* plane 2, page 37 */
- 19 | (190 << 8), /* first, last */
- 0xFA5E,
- 0, 0, 0, 0, 0, 0, 0,0xA059, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xFA75, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFBBE, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9CA2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9370, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9371,
- /* plane 2, page 38 */
- 27 | (246 << 8), /* first, last */
- 0x9377,0xFEEF, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x936D, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFC5D, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x90B8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8AFC, 0,0xFB41, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9E6B,0x94E3,0x8EE2,
- /* plane 2, page 39 */
- 18 | (205 << 8), /* first, last */
- 0x8C7D, 0,
- 0x8ED7, 0, 0, 0, 0, 0, 0,0x9C4D, 0, 0,
- 0,0x96A3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9B51, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8AC3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x96AA,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFC68,0x8B6D, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFD67,
- /* plane 2, page 40 */
- 3 | (247 << 8), /* first, last */
- 0x8AE9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFCA1,0x936C, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9B52, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFE70, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFCA8, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFCE9,
- /* plane 2, page 41 */
- 38 | (147 << 8), /* first, last */
- 0x9CB4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8AEA, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9B53,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9B55, 0, 0, 0,0x96AB, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xFCA7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9B56,
- /* plane 2, page 42 */
- 102 | (232 << 8), /* first, last */
- 0x8ABC, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8ACB, 0, 0,
- 0, 0, 0,0x9B57, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x89CD, 0,0x9B59,
- /* plane 2, page 43 */
- 14 | (206 << 8), /* first, last */
- 0x9B5B, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x93A5, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9B5D, 0, 0, 0,0x9E4F, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x93A3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8A7B, 0, 0, 0,0x8B42,
- /* plane 2, page 44 */
- 38 | (201 << 8), /* first, last */
- 0x9750,0x8FB3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8A50, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9B60, 0, 0, 0,
- 0,0x8B45, 0, 0, 0,0x8B46, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9DFE, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9B62, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x937B, 0, 0, 0, 0,
- 0,0x93B1, 0, 0, 0, 0, 0, 0, 0,0x8A60,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8AD8, 0,
- 0, 0, 0,0x9B63, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8A69, 0, 0, 0,0x8A47, 0,
- 0,0x8ACC,
- /* plane 2, page 45 */
- 7 | (238 << 8), /* first, last */
- 0x937C,0x9B65, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9B66, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8A72, 0,
- 0, 0, 0, 0, 0, 0,0x8A7A, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x93AF, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8AB0, 0, 0, 0, 0, 0, 0, 0,0x9B68,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9EA3, 0, 0,0xFAEC,0x8B77, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9B67, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8B59,
- /* plane 2, page 46 */
- 13 | (239 << 8), /* first, last */
- 0xFCB1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFCBB, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9B69, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x93A8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8AE0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9E51,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8F5F,
- /* plane 2, page 47 */
- 116 | (227 << 8), /* first, last */
- 0x9B6A, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9B6B, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x97EC,
- /* plane 2, page 48 */
- 51 | (218 << 8), /* first, last */
- 0x9B6C, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xFE4E, 0,
- 0, 0, 0, 0, 0,0xFDC2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9B6D, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9167,0xFCCC, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x93B6, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x90E4, 0, 0, 0, 0,0x90E5, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9EF2,
- /* plane 2, page 49 */
- 3 | (249 << 8), /* first, last */
- 0x93CA, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8BBC, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8F46, 0, 0, 0, 0,
- 0x93CF, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFCDB,0xFCDC, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x93C0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFCE6,0x96E7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFCD8,0xFCD9,0xFDA6,
- /* plane 2, page 50 */
- 15 | (225 << 8), /* first, last */
- 0x93CE, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x95F1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9CE9, 0,0xFCE4,
- 0x94AF,0xFA77,0x93CC, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x905A, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8C54,
- 0, 0, 0, 0, 0, 0, 0,0x93BF,0xFB51, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x93B9,0xFED7,0x93B7, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x93D9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x93BB,0x93DA,
- /* plane 2, page 51 */
- 0 | (254 << 8), /* first, last */
- 0x98A3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x90D1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9B6E, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFA70, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9BEB, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9B6F, 0, 0, 0, 0, 0, 0, 0,
- 0xFCFC, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8B40,0xA07B, 0, 0, 0,0x8CA1,
- 0x97F7, 0, 0, 0,0x93E2,
- /* plane 2, page 52 */
- 0 | (229 << 8), /* first, last */
- 0xFCD6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9559, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x93A6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFD40, 0, 0,0x935F, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x97F2,
- /* plane 2, page 53 */
- 25 | (243 << 8), /* first, last */
- 0x9C76, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8EF8, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8F47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9B74, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x92B4,
- 0, 0, 0,0x91ED, 0, 0,0x96D2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFD46,0x8F4F,0x9549, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9B75,
- /* plane 2, page 54 */
- 0 | (238 << 8), /* first, last */
- 0xFA5C, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9B79, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFD4B, 0, 0, 0,0x96D3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFD58,
- 0, 0, 0, 0, 0,0x945F, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xA0F5,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9243, 0, 0, 0,
- 0, 0, 0,0x97FA, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9DD9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x97F4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x924D,
- /* plane 2, page 55 */
- 3 | (215 << 8), /* first, last */
- 0xFD5B, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9B7A, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9ED5, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFAAE, 0,0x9CC9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9258, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8EC8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x94B4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x93E1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x93DF, 0,
- 0, 0, 0, 0,0xFCF0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x93EC,0x97F6,0x96CF,
- /* plane 2, page 56 */
- 58 | (58 << 8), /* first, last */
- 0x93DE,
- /* plane 2, page 57 */
- 194 | (194 << 8), /* first, last */
- 0x8ACF,
- /* plane 2, page 58 */
- 167 | (250 << 8), /* first, last */
- 0x9BA2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFD69,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9352, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x98A2,
- /* plane 2, page 59 */
- 90 | (90 << 8), /* first, last */
- 0xFD6E,
- /* plane 2, page 60 */
- 99 | (255 << 8), /* first, last */
- 0x8CA4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFA7C,0x93FA,0x907C, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8F67, 0,0x9DB7, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xA0E9,
- 0xFA4E,0xFDA1, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9E74,0x9FBF,0x9ECB,0x9BB9,
- /* plane 2, page 61 */
- 64 | (248 << 8), /* first, last */
- 0x9DD4, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x97B9, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8EF1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x957B, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9ED2,0x9753,0x96A4,0x8FBE,0x94D9,0x9058,0xFD79,0xFD7B,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8EDA, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8EFA,
- /* plane 2, page 62 */
- 17 | (252 << 8), /* first, last */
- 0x9BA5, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9ED9,0x97D4,0x90BB,0xFDBC,0xFDC6,0x9248,
- 0, 0, 0, 0, 0, 0, 0,0x92B5, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9DC1,0x92B9,0x92A6,0x8F4B,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9BA6, 0, 0, 0, 0,
- 0,0x92B6, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8E40, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9ED8,0x945E,0x985F,
- 0x94CE,0x924A,0xFD70,
- /* plane 2, page 63 */
- 53 | (240 << 8), /* first, last */
- 0x9467, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8DEC, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9BD8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9448,0xFAC1,0x9CF7,
- 0xFDBE, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8FDA, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFDD9, 0, 0,0xFC7E, 0, 0, 0, 0, 0, 0,
- 0, 0,0x93F9, 0, 0, 0, 0,0xFA43, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFAEB,0xFAC3,0x97D3,0x95F9,0x9C48,
- 0xFDD8,
- /* plane 2, page 64 */
- 17 | (225 << 8), /* first, last */
- 0xA0D8, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFDD7,0xFB4A,0x9BAF,
- 0x944B,0xFDC9, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8EAC, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFDB2, 0, 0, 0, 0, 0,0x925A,
- 0xFCBD,0x92D9, 0, 0, 0,0xFDD5, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x92DD, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9259,
- /* plane 2, page 65 */
- 4 | (252 << 8), /* first, last */
- 0x96BA, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x925B, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9BAB, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFDDA,0xFDDE, 0, 0, 0,0xFDD3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8C46, 0,
- 0, 0, 0, 0, 0,0xFDD6,0xFDDC,0xFDDD, 0, 0,
- 0, 0,0x90FE, 0, 0,0xFEA1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8BAD,
- 0, 0,0x9CD8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9E6D,0xFD7C,0xFB61, 0, 0, 0, 0,
- 0, 0,0x96F8, 0, 0, 0, 0, 0, 0, 0,
- 0,0x96F0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFCF4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFE60, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9852,
- /* plane 2, page 66 */
- 27 | (250 << 8), /* first, last */
- 0x964F, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x916E, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x986D, 0, 0,0x9864,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9453,0xFDEC,
- 0xFB78, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x95BA, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x985D, 0,0x92F9,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x985A, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFDF6, 0, 0, 0, 0, 0, 0,
- 0,0x93D0,0x9862, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9BAD, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x974F,
- /* plane 2, page 67 */
- 13 | (248 << 8), /* first, last */
- 0x9BAE, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9452, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9BB0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x91D2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x97EA,0xFB6B,
- 0x91B1,0xFDF3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x92CB, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9BB1, 0, 0, 0, 0, 0,0xFCEC, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x986B,
- 0, 0, 0,0x9751, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9871,0x95EF, 0, 0, 0, 0, 0,
- 0, 0,0x9EF3, 0, 0, 0, 0, 0,0x91E8,
- /* plane 2, page 68 */
- 4 | (214 << 8), /* first, last */
- 0x9BBA, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFB4C,0x926A, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFDF8,0x9861, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x91E7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x93ED,0x9744, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x91E1, 0, 0,0xFBF5, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9869, 0, 0, 0,
- 0,0x8A62, 0, 0,0x9BBB,
- /* plane 2, page 69 */
- 5 | (200 << 8), /* first, last */
- 0x8CA8, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9C55, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8E77, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8AB2,
- /* plane 2, page 70 */
- 24 | (212 << 8), /* first, last */
- 0x9EBC, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x93E6, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x93A2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9BBD, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x94B3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x937D,
- /* plane 2, page 71 */
- 6 | (224 << 8), /* first, last */
- 0x9E66, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9459, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9BBF, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9458, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9EA5,
- /* plane 2, page 72 */
- 18 | (255 << 8), /* first, last */
- 0x9BC7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFE54, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8E74, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8BD6, 0, 0, 0, 0, 0, 0,
- 0x94B6,0xFD74,0x98C0,0x94A5, 0, 0, 0, 0, 0, 0,
- 0,0x9BC8, 0, 0, 0,0x95ED,
- /* plane 2, page 73 */
- 0 | (251 << 8), /* first, last */
- 0xFD7E,0xFBEB, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFD7D, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x976F,0x9461, 0,0x9FC1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x95D7, 0, 0,
- 0,0xFA52,0x9C58, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9F68,0x9BE7,0xFCCE,0x96E8,0xFA49,0x97A1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x954D,0x9EF8,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFE49,0x91CE,0x9771, 0,
- 0, 0, 0,0x8CCF, 0, 0, 0,0xFDB1, 0, 0,
- 0xFC6E, 0, 0, 0, 0, 0,0x9CF2,0x93B8,0x9043,0x9759,
- 0x94D7,0xFE66,0x947D,0xFC6F, 0, 0, 0, 0,0x9246, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFA6D, 0, 0,0x8EF7, 0,0xFBB7,
- 0,0x947C,0x92CD,0x97B2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFE65,0x967E,0x9758,0x9B77,0x91CF, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x94A4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9CAD, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8BAB, 0,
- 0, 0,0x96D5,0xFCB3, 0, 0, 0,0x93AE, 0,0x976D,
- 0, 0, 0, 0, 0, 0,0x9446,0x95F7, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9C46,0x955B,0x91D1,0x94F4,
- 0,0xFE67,
- /* plane 2, page 74 */
- 14 | (233 << 8), /* first, last */
- 0x92A5, 0, 0, 0,0xFEDF,0x8CAB,
- 0,0x9BC9, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFCED,0xFDFA,0xFCC8,0xFE62,0x91FC,0xFE6B,0xFDF9,
- 0xFCC7,0x914E,0x9CB8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9767, 0, 0, 0,0x95EE, 0, 0,0x9BB2,
- 0, 0, 0, 0,0x9460, 0, 0, 0,0x94A2,0x9875,
- 0x97AC,0x91D3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x987B, 0, 0, 0, 0, 0, 0,
- 0,0x8EEB,0x976A,0x965E, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x97EB, 0, 0, 0, 0, 0,0x9FF9,
- 0x95F8,0xFEA2,0x8FE6, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFE7E, 0, 0, 0, 0, 0, 0,0x9DA4,0x9768,0x8EEC,
- 0x94BD, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x945B,0x9CF6,0xFAA7,0x9BD9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFA5D,0x9656,0x9762,
- 0, 0, 0, 0, 0, 0,0x94BA,0xA04F,0x92D8, 0,
- 0, 0,0x9BCB, 0, 0, 0, 0, 0, 0,0x94BB,
- 0, 0,0x9D5F, 0, 0, 0, 0, 0, 0,0x90CF,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9465, 0, 0,0x9F4C, 0, 0, 0,
- 0, 0, 0,0x90D8,
- /* plane 2, page 75 */
- 110 | (245 << 8), /* first, last */
- 0x9EBE, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFB6D,
- /* plane 2, page 76 */
- 9 | (217 << 8), /* first, last */
- 0x95CA,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9DC2,0x97F8,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8FFC, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9473,
- /* plane 2, page 77 */
- 6 | (235 << 8), /* first, last */
- 0x9474, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFEB7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8A4B, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8A55,0x8B69,
- /* plane 2, page 78 */
- 59 | (167 << 8), /* first, last */
- 0x8ADC,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8B76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9BCE, 0,0x8A68,
- /* plane 2, page 79 */
- 14 | (194 << 8), /* first, last */
- 0xA0F8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x98DF, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFEB5, 0, 0, 0,0x9BCF, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x96FB, 0, 0,0x9BFB, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9ECE,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8EE5, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9E7B,
- /* plane 2, page 80 */
- 44 | (157 << 8), /* first, last */
- 0x9BD2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8AA5, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFECE,
- /* plane 2, page 81 */
- 43 | (231 << 8), /* first, last */
- 0x8A45, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9DFC, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFECF,0x8BA5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8C4A, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8AEC, 0, 0,
- 0xFCE0,0x94AD,
- /* plane 2, page 82 */
- 32 | (216 << 8), /* first, last */
- 0xFED5,0x94AC, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFC5A, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9BD6, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8A6F,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8BA9,
- /* plane 2, page 83 */
- 14 | (19 << 8), /* first, last */
- 0x8E5F, 0, 0,0x9DCB, 0,0xFCE7,
- /* plane 2, page 84 */
- 25 | (110 << 8), /* first, last */
- 0x9BD7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x93C8, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x91F0,0x8FE0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9BDB, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x90ED, 0,
- 0x9BDC,
- /* plane 2, page 85 */
- 49 | (224 << 8), /* first, last */
- 0xA0EC,
- 0, 0, 0,0x98FA, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9BE0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x93C7,0x9249,0x96E1,0x9BE2, 0, 0, 0,0x9BE4, 0,
- 0,0x8FE1,0x9BE5, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x94C0,
- 0, 0,0x93C3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x93C5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9079, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x977B, 0, 0, 0, 0, 0,0x907E,
- 0, 0, 0, 0,0xFEE6,
- /* plane 2, page 86 */
- 5 | (246 << 8), /* first, last */
- 0xFE46, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9DB8, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9270, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x95A8, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8CB0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x94C8, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x98B9,
- /* plane 2, page 87 */
- 6 | (225 << 8), /* first, last */
- 0x9140, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFCBE,
- 0, 0, 0, 0, 0, 0, 0,0x9157, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8BB2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFADF, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9BE6,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9643,0x8E44,0x9C4F,
- /* plane 2, page 88 */
- 87 | (225 << 8), /* first, last */
- 0xFEF4, 0, 0,
- 0, 0, 0,0x9BE8, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x93DC, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x966F, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8E4A,
- /* plane 2, page 89 */
- 3 | (204 << 8), /* first, last */
- 0x9BED, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x92F6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9DB9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8E4E, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFBCF,
- /* plane 2, page 90 */
- 149 | (233 << 8), /* first, last */
- 0x9EC2,
- 0, 0, 0, 0, 0, 0,0x94E5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9BF0,0x94E4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9551,
- /* plane 2, page 91 */
- 116 | (232 << 8), /* first, last */
- 0x8BBB, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9BF1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x94F0,
- 0x8E64, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x94EA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8F61, 0,
- 0, 0,0x9B64,
- /* plane 2, page 92 */
- 1 | (254 << 8), /* first, last */
- 0x8E5B, 0, 0, 0, 0,0x9BF2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9FBE, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9DC9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8E6C, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8F73, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8CAF, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8F75,0x8E71, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8E60,
- /* plane 2, page 93 */
- 32 | (67 << 8), /* first, last */
- 0x8E6A, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8C4C, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9552,
- /* plane 2, page 94 */
- 14 | (216 << 8), /* first, last */
- 0x9554, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8AD4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9DBB,
- 0x9543,0x92FE, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x94F2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x94F1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA0EA,0x9DD2,
- /* plane 2, page 95 */
- 26 | (226 << 8), /* first, last */
- 0xA0B1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x91F8, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9462,0x9BA4,
- /* plane 2, page 96 */
- 41 | (165 << 8), /* first, last */
- 0x8EAD, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9EAD, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x96D0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFEEE, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8AB4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9757,0x8A77,
- /* plane 2, page 97 */
- 2 | (221 << 8), /* first, last */
- 0x9BF7, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8EB5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xA06D,
- 0x8EB6,0x9756,0x9540, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xA0F3,0x94BE, 0, 0, 0,0x9BFA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFDDF,
- /* plane 2, page 98 */
- 88 | (208 << 8), /* first, last */
- 0x9DBC, 0,
- 0, 0, 0, 0, 0, 0, 0,0x94FE, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8BDB,0xA0FE, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8EC0,
- /* plane 2, page 99 */
- 53 | (248 << 8), /* first, last */
- 0x9F47, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8BDE,0xA0FB, 0, 0, 0,
- 0,0x8EC3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9649, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFEC2, 0, 0,0x954C,
- /* plane 2, page 100 */
- 2 | (152 << 8), /* first, last */
- 0x9BFD, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x90CC,0x9C60,0x954B, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9BFE, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9C70, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9C43, 0, 0, 0,0x9C47,0x8ECC, 0, 0,
- 0,0x8E54, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8EE4,
- /* plane 2, page 101 */
- 18 | (191 << 8), /* first, last */
- 0x9C49, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8B5E, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x955E, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x955C, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9C4B,
- /* plane 2, page 102 */
- 18 | (252 << 8), /* first, last */
- 0x8BE1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8ED9, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9DB4, 0,0x925F, 0, 0,
- 0,0x9C4C, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8AA1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8EDB, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9C56,
- /* plane 2, page 103 */
- 22 | (204 << 8), /* first, last */
- 0x8AA2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9754, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9C5E, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9ED4,
- 0x9568, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xA0C3,
- /* plane 2, page 104 */
- 28 | (199 << 8), /* first, last */
- 0x8AE6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xA0F7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9C61, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9C5F, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFC4D, 0,0x9E5B, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9E69, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9C63,
- /* plane 2, page 105 */
- 14 | (250 << 8), /* first, last */
- 0xFEC7, 0, 0,0xFEC6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9C67, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9C69, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8BE2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9165, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9CE7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8A54, 0, 0, 0, 0, 0, 0, 0,
- 0x9C6C,
- /* plane 2, page 106 */
- 45 | (82 << 8), /* first, last */
- 0x9C6E,0xFE5D, 0, 0, 0,
- 0, 0,0x9C73, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x956A, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x956D,0x8EF0,
- /* plane 2, page 107 */
- 5 | (247 << 8), /* first, last */
- 0x8F4D, 0, 0, 0, 0,
- 0x8EF6, 0, 0, 0, 0, 0, 0, 0, 0,0xFABC,
- 0,0x8CD5, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFBDA, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8B4C,0xFD75,0x9BDD,0xFAF5, 0, 0, 0, 0, 0, 0,
- 0,0x9C74, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9545, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x96C6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8F6A,0x8F4E, 0, 0, 0, 0, 0,0x9C78, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFA55,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x97E4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9C41,
- /* plane 2, page 108 */
- 33 | (209 << 8), /* first, last */
- 0x925C, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x96FA, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFB66,0x8E65,0x9849,0xFBA8,
- 0x9842, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9C7A, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x97FB,0x90CA, 0, 0, 0, 0,0x9C5B,
- 0, 0,0x974D, 0, 0,0x8ED3, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9561,
- /* plane 2, page 109 */
- 34 | (240 << 8), /* first, last */
- 0x9F4B,0x9FB5,0x93D2,0xFDAA,0x9840,0x9146,
- 0x9867,0xFA5A,0xFBA9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9841, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8CD3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFCFD,0xFDAB,0x91BD,0x8F4C,0x96C9,0x8F55,0xFBAE,0x956F, 0, 0,
- 0, 0, 0, 0,0x9C7D, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xA0F0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x946F,0xFDAC, 0, 0, 0, 0,
- 0x96CB,
- /* plane 2, page 110 */
- 0 | (215 << 8), /* first, last */
- 0x96CE, 0, 0, 0, 0,0xA056, 0,0x9CE1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x96C4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8F5E,0x8F6C,0x8EA3,0xFBB3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFC53, 0, 0, 0,0xFDB3, 0, 0, 0, 0,0x8F6B,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x96CA, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8F79, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9E6F,0xA0C5,
- 0xFC78,0x8E42,0x8F5A,0x90C2,0x8EA5,0x9061,
- /* plane 2, page 111 */
- 38 | (223 << 8), /* first, last */
- 0x924F, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9373,0xFDB5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xFECC,
- 0,0xFBBD, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8CD6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9843,0x96C5,
- /* plane 2, page 112 */
- 14 | (248 << 8), /* first, last */
- 0x89BC, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9CA3, 0, 0, 0, 0,
- 0, 0,0x924B,0x984A, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8FA4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xA0F1,0x9EFB,0x9CD2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8FA7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xFC5C,
- /* plane 2, page 113 */
- 9 | (205 << 8), /* first, last */
- 0x9845,
- 0, 0,0x9046,0x8CD1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xFEFA,0x9560,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9F48,0x9247, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x90FB, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9CA4,
- /* plane 2, page 114 */
- 27 | (230 << 8), /* first, last */
- 0x9571, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9CA6, 0,
- 0, 0, 0,0x9CA7, 0, 0, 0, 0, 0,0x9CAA,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9ED3, 0,
- 0, 0,0x9E70, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9CAC,
- /* plane 2, page 115 */
- 154 | (154 << 8), /* first, last */
- 0x8FAE,
- /* plane 2, page 116 */
- 34 | (134 << 8), /* first, last */
- 0x957D, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9CB0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x97B6, 0,0xA0BD,
- /* plane 2, page 117 */
- 116 | (254 << 8), /* first, last */
- 0x8ADF, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9EAA, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8FBD, 0, 0, 0,0x8FBF, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9369,0x9BA7,
- /* plane 2, page 118 */
- 7 | (148 << 8), /* first, last */
- 0xC8A4, 0, 0,
- 0, 0,0xFEEA, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9BE1, 0, 0, 0, 0, 0, 0,0x8B41, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9DB6,0xA0EB,0x9BA3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8BA1,
- /* plane 2, page 119 */
- 15 | (204 << 8), /* first, last */
- 0x8FC8, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x894C,0x9860, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x94C7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8B58, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x95AB,0x95AA, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9CC3,
- /* plane 2, page 120 */
- 88 | (200 << 8), /* first, last */
- 0x9CC4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x93D6, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9DAC, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8BE6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8A71,
- /* plane 2, page 121 */
- 36 | (253 << 8), /* first, last */
- 0x8FD1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x99D5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x90F4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8AA3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9CCE, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9CD4,
- /* plane 2, page 122 */
- 10 | (244 << 8), /* first, last */
- 0x9CD5, 0, 0, 0,0xFBC8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9DB3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFC70, 0, 0, 0, 0, 0,0x8FD7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9B73, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFA5B, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8FD2,
- 0x9064, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x98B6,
- /* plane 2, page 123 */
- 6 | (244 << 8), /* first, last */
- 0x9668, 0, 0, 0,
- 0,0x9CD6, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x98BD, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8FDC,0xFEF6,0x8FD9, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9541, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x97F3,
- /* plane 2, page 124 */
- 18 | (18 << 8), /* first, last */
- 0x9BF8,
- /* plane 2, page 125 */
- 47 | (220 << 8), /* first, last */
- 0x9E6C, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8FF2,0x8FEE, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9CD7, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9E6E, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8A40, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8FEF, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8FF4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8FF5,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x95C2,
- /* plane 2, page 126 */
- 77 | (79 << 8), /* first, last */
- 0x986A, 0,0x97CF,
- /* plane 2, page 127 */
- 249 | (249 << 8), /* first, last */
- 0x9E7C,
- /* plane 2, page 128 */
- 2 | (244 << 8), /* first, last */
- 0x9041, 0, 0, 0, 0, 0, 0,0x9CDB,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9441, 0, 0, 0, 0,0x9CE6,0x9DB0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9CEA, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9CED, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9CFA, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8B62,
- 0x8A4E, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9CCA,0x8A66, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9CFB,
- /* plane 2, page 129 */
- 46 | (188 << 8), /* first, last */
- 0x9CFC, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9CFE,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8A53, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9CE5, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9D40, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9D41, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9045,
- /* plane 2, page 130 */
- 7 | (226 << 8), /* first, last */
- 0x8B73, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x97CA, 0,0x9D42, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x8A61, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8BAE, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8AD2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8BA2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9DF2,
- /* plane 2, page 131 */
- 6 | (138 << 8), /* first, last */
- 0x9D43, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9CDF, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9D44, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8ECA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x904E, 0, 0, 0, 0, 0, 0, 0,0x8EB3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9FF5, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9D45,
- /* plane 2, page 132 */
- 18 | (130 << 8), /* first, last */
- 0x904F, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9D47, 0, 0, 0,0x89CA, 0,
- 0, 0, 0, 0, 0,0x9CB5, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFBFE,
- /* plane 2, page 133 */
- 1 | (244 << 8), /* first, last */
- 0x905E, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9063,0x9057, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9066, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9BC0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFCE5,
- /* plane 2, page 134 */
- 0 | (230 << 8), /* first, last */
- 0x9162, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9067, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8FA1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8FA2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9D48,0xFAD3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x905D, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x90B9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x906B,
- /* plane 2, page 135 */
- 15 | (19 << 8), /* first, last */
- 0x8C5C, 0, 0, 0,0x9069,
- /* plane 2, page 136 */
- 4 | (43 << 8), /* first, last */
- 0xFE57, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFE55,
- /* plane 2, page 137 */
- 51 | (252 << 8), /* first, last */
- 0x9073, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9BEF,0x9CF0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9D4B, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFED9, 0, 0, 0,0xFEDA, 0, 0, 0,0x91E0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x91D8, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9646, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9360, 0,
- 0xFA53,0x9CD3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9D4E, 0, 0, 0,0xFB40, 0,
- 0, 0,0x8DE2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9442, 0,0x9056, 0, 0,0x9865, 0,0x8C6C,0xFA4A, 0,
- 0,0x9D50,0x9D52, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x95AF,
- 0x975A,0x9349,0x9747,
- /* plane 2, page 138 */
- 15 | (252 << 8), /* first, last */
- 0xA0F4, 0, 0, 0, 0,
- 0, 0,0x9778, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8FCF, 0, 0,
- 0,0xFC60, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8C4E, 0, 0, 0,0xFC56, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x91DC,0x9661,
- 0x92EC,0x935D,0x8EDE,0x96FE,0xFD4F,0x95DE, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x98B0,
- 0xA040, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x97BD,
- 0x977D,0x97F5, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9BAC,0xFADA,0x92C2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x97B1, 0, 0, 0, 0, 0,0x907B, 0,
- 0, 0, 0,0x93FE,0x947B, 0,0x9777, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFABE,0xFD43,0x90C6,0x90A4,0x90A8,0x94A9, 0,0x90A9,
- 0, 0, 0, 0,0x8C65, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x95E0,
- /* plane 2, page 139 */
- 12 | (255 << 8), /* first, last */
- 0x907D, 0, 0, 0, 0, 0, 0,0x9265,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFDBA,0x93C4, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFEED,0x9DAB,0xA0E3, 0,0x9648, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9D53, 0, 0, 0, 0, 0,0x8AA9, 0,0x9BC5, 0,
- 0x965D, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x975F,
- 0x965F,0x966E,0xFB5D, 0, 0, 0, 0, 0,0x9DB1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFEA3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9DB2, 0, 0,0x95AE,0xFCA3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xA0A2, 0, 0,0x9655, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9D54, 0, 0,0x9341, 0,0x95AD,0x91D5, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x977A,0xFDFC,0x8E47,0x93FD,0x90A5,0x90AC, 0, 0, 0,
- 0, 0, 0, 0, 0,0x95AC, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x90AE,
- /* plane 2, page 140 */
- 3 | (210 << 8), /* first, last */
- 0xFEA5, 0, 0, 0, 0, 0,0x9D56,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x97E3,0x95E2,
- 0, 0, 0, 0, 0,0x9466, 0, 0,0x9647, 0,
- 0, 0, 0,0x91B8, 0, 0, 0, 0,0x9CEC, 0,
- 0, 0, 0, 0, 0, 0, 0,0x90AD, 0,0x95E3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8B4F, 0, 0,0x8AE3, 0, 0, 0, 0,
- 0x8B4D,
- /* plane 2, page 141 */
- 52 | (185 << 8), /* first, last */
- 0x95EA, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x8B4E, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8CC1,
- /* plane 2, page 142 */
- 15 | (231 << 8), /* first, last */
- 0x8BED, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x91D9, 0, 0,0xA0A4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x95F5,0x95F4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9FB3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFEAF, 0, 0, 0, 0, 0,0xFE72,0x927A,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFEAC, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x95F3,
- /* plane 2, page 143 */
- 197 | (197 << 8), /* first, last */
- 0x9D58,
- /* plane 2, page 144 */
- 136 | (237 << 8), /* first, last */
- 0x9372, 0, 0,0x91C5,
- 0, 0, 0, 0, 0, 0, 0,0x9642, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x90CD,0x95FE,0x9159, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9C65, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x97CC,0x90CE,
- 0, 0, 0, 0, 0, 0,0x9D59,0xFCF5,
- /* plane 2, page 145 */
- 13 | (235 << 8), /* first, last */
- 0xFEFD, 0, 0,0x9D5B, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9D5C, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x937E, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x98AC, 0, 0,0x9D5E, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFDD0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFD60, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9CCF, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x90DD, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x90E0,
- /* plane 2, page 146: --- */
- /* plane 2, page 147: --- */
- /* plane 2, page 148 */
- 29 | (231 << 8), /* first, last */
- 0x90F3,
- 0, 0,0x98B1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x90F0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x93BD, 0, 0, 0, 0, 0, 0,
- 0, 0,0x95B7, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9F46, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8E4B,0x9658, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x8A4C,
- 0,0x9D63,
- /* plane 2, page 149 */
- 158 | (244 << 8), /* first, last */
- 0x9ECF, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9D65, 0, 0, 0,
- 0, 0, 0, 0,0x9D66, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x965A, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9D64, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x8A6C,
- /* plane 2, page 150: --- */
- /* plane 2, page 151 */
- 32 | (212 << 8), /* first, last */
- 0x8AD9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9D67, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8A70,
- /* plane 2, page 152 */
- 16 | (241 << 8), /* first, last */
- 0x8BF3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9150, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9CC1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9D68,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x93A7, 0, 0, 0, 0, 0,
- 0,0x9674,
- /* plane 2, page 153 */
- 3 | (201 << 8), /* first, last */
- 0xA0EF, 0,0x9151, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x96C1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8C64,0x9676,0x9D69, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFCA4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9D6A, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x924E, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9D6B, 0, 0, 0, 0,
- 0,0x9BC1,
- /* plane 2, page 154 */
- 40 | (77 << 8), /* first, last */
- 0x9D6C, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x8A65,
- /* plane 2, page 155 */
- 5 | (213 << 8), /* first, last */
- 0x915D, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9D6D, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x915A,
- /* plane 2, page 156 */
- 115 | (173 << 8), /* first, last */
- 0x8C42, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9CC0,
- /* plane 2, page 157 */
- 62 | (246 << 8), /* first, last */
- 0x916A, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x9D6E, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9EA6, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9DCD, 0, 0,0x9D6F, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x89BB,
- /* plane 2, page 158 */
- 6 | (248 << 8), /* first, last */
- 0x9EF9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x96B4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9172, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9EC8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8B55, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9D71,
- /* plane 2, page 159 */
- 35 | (222 << 8), /* first, last */
- 0x9D72, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x9ECC, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9174, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x9ED0,
- /* plane 2, page 160 */
- 20 | (254 << 8), /* first, last */
- 0x905C, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x8ED2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x91A8, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9177, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x96BF, 0, 0,
- 0, 0, 0,0x96C0, 0, 0, 0, 0,0x8FB1, 0,
- 0, 0, 0, 0,0x96B7,
- /* plane 2, page 161 */
- 7 | (245 << 8), /* first, last */
- 0x8C55, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9178, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x89BE,0x917C, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xFB77, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x9175,0x91A3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9176, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x96BE, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9179, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x96B6,
- /* plane 2, page 162 */
- 32 | (255 << 8), /* first, last */
- 0x91A4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x91A6, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x9D75, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9052,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xA045, 0,
- 0x91A9, 0,0x98AA, 0, 0, 0,0x8C5F, 0, 0,0x8BAA,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x9CDD, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9D77,
- /* plane 2, page 163 */
- 169 | (169 << 8), /* first, last */
- 0x8940,
- /* plane 2, page 164 */
- 52 | (91 << 8), /* first, last */
- 0x9EEC, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x93AA,
- /* plane 2, page 165 */
- 198 | (203 << 8), /* first, last */
- 0x9478, 0,
- 0, 0, 0,0x9D7A,
- /* plane 2, page 166 */
- 1 | (169 << 8), /* first, last */
- 0x8AC9, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8B4B, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x9FEC, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8AE2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9E75,
- /* plane 2, page 167: --- */
- /* plane 2, page 168: --- */
- /* plane 2, page 169: --- */
- /* plane 2, page 170: --- */
- /* plane 2, page 171: --- */
- /* plane 2, page 172: --- */
- /* plane 2, page 173: --- */
- /* plane 2, page 174: --- */
- /* plane 2, page 175: --- */
- /* plane 2, page 176: --- */
- /* plane 2, page 177: --- */
- /* plane 2, page 178: --- */
- /* plane 2, page 179: --- */
- /* plane 2, page 180: --- */
- /* plane 2, page 181: --- */
- /* plane 2, page 182: --- */
- /* plane 2, page 183: --- */
- /* plane 2, page 184: --- */
- /* plane 2, page 185: --- */
- /* plane 2, page 186: --- */
- /* plane 2, page 187: --- */
- /* plane 2, page 188: --- */
- /* plane 2, page 189: --- */
- /* plane 2, page 190: --- */
- /* plane 2, page 191: --- */
- /* plane 2, page 192: --- */
- /* plane 2, page 193: --- */
- /* plane 2, page 194: --- */
- /* plane 2, page 195: --- */
- /* plane 2, page 196: --- */
- /* plane 2, page 197: --- */
- /* plane 2, page 198: --- */
- /* plane 2, page 199: --- */
- /* plane 2, page 200: --- */
- /* plane 2, page 201: --- */
- /* plane 2, page 202: --- */
- /* plane 2, page 203: --- */
- /* plane 2, page 204: --- */
- /* plane 2, page 205: --- */
- /* plane 2, page 206: --- */
- /* plane 2, page 207: --- */
- /* plane 2, page 208: --- */
- /* plane 2, page 209: --- */
- /* plane 2, page 210: --- */
- /* plane 2, page 211: --- */
- /* plane 2, page 212: --- */
- /* plane 2, page 213: --- */
- /* plane 2, page 214: --- */
- /* plane 2, page 215: --- */
- /* plane 2, page 216: --- */
- /* plane 2, page 217: --- */
- /* plane 2, page 218: --- */
- /* plane 2, page 219: --- */
- /* plane 2, page 220: --- */
- /* plane 2, page 221: --- */
- /* plane 2, page 222: --- */
- /* plane 2, page 223: --- */
- /* plane 2, page 224: --- */
- /* plane 2, page 225: --- */
- /* plane 2, page 226: --- */
- /* plane 2, page 227: --- */
- /* plane 2, page 228: --- */
- /* plane 2, page 229: --- */
- /* plane 2, page 230: --- */
- /* plane 2, page 231: --- */
- /* plane 2, page 232: --- */
- /* plane 2, page 233: --- */
- /* plane 2, page 234: --- */
- /* plane 2, page 235: --- */
- /* plane 2, page 236: --- */
- /* plane 2, page 237: --- */
- /* plane 2, page 238: --- */
- /* plane 2, page 239: --- */
- /* plane 2, page 240: --- */
- /* plane 2, page 241: --- */
- /* plane 2, page 242: --- */
- /* plane 2, page 243: --- */
- /* plane 2, page 244: --- */
- /* plane 2, page 245: --- */
- /* plane 2, page 246: --- */
- /* plane 2, page 247: --- */
- /* plane 2, page 248 */
- 37 | (205 << 8), /* first, last */
- 0x9874, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0x9AC8,
- 0, 0, 0, 0,0xA047, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x8BC3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xFC48, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFC77, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x9C52,
- /* plane 2, page 249 */
- 148 | (212 << 8), /* first, last */
- 0x8EFD, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x8FA8, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0x957A, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x8FF0,
- /* plane 2, page 250: --- */
- /* plane 2, page 251: --- */
- /* plane 2, page 252: --- */
- /* plane 2, page 253: --- */
- /* plane 2, page 254: --- */
- /* plane 2, page 255: --- */
- /* plane 3: --- */
- /* plane 4: --- */
- /* plane 5: --- */
- /* plane 6: --- */
- /* plane 7: --- */
- /* plane 8: --- */
- /* plane 9: --- */
- /* plane 10: --- */
- /* plane 11: --- */
- /* plane 12: --- */
- /* plane 13: --- */
- /* plane 14: --- */
- /* plane 15: --- */
- /* plane 16: --- */
-};
-
-static sal_Int32 const aImplUnicodeToBig5Hkscs2001PageOffsets[] = {
- 0, /* plane 0, page 0; 44/172 bytes (25.6%) */
- 86, /* plane 0, page 1; 46/444 bytes (10.4%) */
- 308, /* plane 0, page 2; 22/240 bytes (9.2%) */
- -1, /* plane 0, page 3 */
- 428, /* plane 0, page 4; 134/164 bytes (81.7%) */
- -1, /* plane 0, page 5 */
- -1, /* plane 0, page 6 */
- -1, /* plane 0, page 7 */
- -1, /* plane 0, page 8 */
- -1, /* plane 0, page 9 */
- -1, /* plane 0, page 10 */
- -1, /* plane 0, page 11 */
- -1, /* plane 0, page 12 */
- -1, /* plane 0, page 13 */
- -1, /* plane 0, page 14 */
- -1, /* plane 0, page 15 */
- -1, /* plane 0, page 16 */
- -1, /* plane 0, page 17 */
- -1, /* plane 0, page 18 */
- -1, /* plane 0, page 19 */
- -1, /* plane 0, page 20 */
- -1, /* plane 0, page 21 */
- -1, /* plane 0, page 22 */
- -1, /* plane 0, page 23 */
- -1, /* plane 0, page 24 */
- -1, /* plane 0, page 25 */
- -1, /* plane 0, page 26 */
- -1, /* plane 0, page 27 */
- -1, /* plane 0, page 28 */
- -1, /* plane 0, page 29 */
- 510, /* plane 0, page 30; 10/10 bytes (100.0%) */
- -1, /* plane 0, page 31 */
- -1, /* plane 0, page 32 */
- 515, /* plane 0, page 33; 32/422 bytes (7.6%) */
- -1, /* plane 0, page 34 */
- -1, /* plane 0, page 35 */
- 726, /* plane 0, page 36; 42/62 bytes (67.7%) */
- 757, /* plane 0, page 37; 68/68 bytes (100.0%) */
- -1, /* plane 0, page 38 */
- 791, /* plane 0, page 39; 4/4 bytes (100.0%) */
- -1, /* plane 0, page 40 */
- -1, /* plane 0, page 41 */
- -1, /* plane 0, page 42 */
- -1, /* plane 0, page 43 */
- -1, /* plane 0, page 44 */
- -1, /* plane 0, page 45 */
- 793, /* plane 0, page 46; 58/202 bytes (28.7%) */
- 894, /* plane 0, page 47; 4/4 bytes (100.0%) */
- 896, /* plane 0, page 48; 360/502 bytes (71.7%) */
- -1, /* plane 0, page 49 */
- 1147, /* plane 0, page 50; 4/4 bytes (100.0%) */
- -1, /* plane 0, page 51 */
- 1149, /* plane 0, page 52; 38/400 bytes (9.5%) */
- 1349, /* plane 0, page 53; 66/500 bytes (13.2%) */
- 1599, /* plane 0, page 54; 80/476 bytes (16.8%) */
- 1837, /* plane 0, page 55; 54/504 bytes (10.7%) */
- 2089, /* plane 0, page 56; 26/474 bytes (5.5%) */
- 2326, /* plane 0, page 57; 48/496 bytes (9.7%) */
- 2574, /* plane 0, page 58; 48/504 bytes (9.5%) */
- 2826, /* plane 0, page 59; 54/464 bytes (11.6%) */
- 3058, /* plane 0, page 60; 28/456 bytes (6.1%) */
- 3286, /* plane 0, page 61; 76/472 bytes (16.1%) */
- 3522, /* plane 0, page 62; 72/502 bytes (14.3%) */
- 3773, /* plane 0, page 63; 36/504 bytes (7.1%) */
- 4025, /* plane 0, page 64; 40/496 bytes (8.1%) */
- 4273, /* plane 0, page 65; 36/496 bytes (7.3%) */
- 4521, /* plane 0, page 66; 34/474 bytes (7.2%) */
- 4758, /* plane 0, page 67; 20/402 bytes (5.0%) */
- 4959, /* plane 0, page 68; 48/490 bytes (9.8%) */
- 5204, /* plane 0, page 69; 46/464 bytes (9.9%) */
- 5436, /* plane 0, page 70; 22/482 bytes (4.6%) */
- 5677, /* plane 0, page 71; 22/454 bytes (4.8%) */
- 5904, /* plane 0, page 72; 28/504 bytes (5.6%) */
- 6156, /* plane 0, page 73; 44/454 bytes (9.7%) */
- 6383, /* plane 0, page 74; 22/484 bytes (4.5%) */
- 6625, /* plane 0, page 75; 40/356 bytes (11.2%) */
- 6803, /* plane 0, page 76; 34/470 bytes (7.2%) */
- 7038, /* plane 0, page 77; 12/298 bytes (4.0%) */
- 7187, /* plane 0, page 78; 74/492 bytes (15.0%) */
- 7433, /* plane 0, page 79; 54/504 bytes (10.7%) */
- 7685, /* plane 0, page 80; 44/502 bytes (8.8%) */
- 7936, /* plane 0, page 81; 80/510 bytes (15.7%) */
- 8191, /* plane 0, page 82; 64/498 bytes (12.9%) */
- 8440, /* plane 0, page 83; 90/510 bytes (17.6%) */
- 8695, /* plane 0, page 84; 68/444 bytes (15.3%) */
- 8917, /* plane 0, page 85; 78/502 bytes (15.5%) */
- 9168, /* plane 0, page 86; 80/500 bytes (16.0%) */
- 9418, /* plane 0, page 87; 74/512 bytes (14.5%) */
- 9674, /* plane 0, page 88; 64/500 bytes (12.8%) */
- 9924, /* plane 0, page 89; 56/498 bytes (11.2%) */
- 10173, /* plane 0, page 90; 86/508 bytes (16.9%) */
- 10427, /* plane 0, page 91; 60/488 bytes (12.3%) */
- 10671, /* plane 0, page 92; 50/484 bytes (10.3%) */
- 10913, /* plane 0, page 93; 52/462 bytes (11.3%) */
- 11144, /* plane 0, page 94; 44/490 bytes (9.0%) */
- 11389, /* plane 0, page 95; 46/426 bytes (10.8%) */
- 11602, /* plane 0, page 96; 40/440 bytes (9.1%) */
- 11822, /* plane 0, page 97; 58/442 bytes (13.1%) */
- 12043, /* plane 0, page 98; 34/374 bytes (9.1%) */
- 12230, /* plane 0, page 99; 42/464 bytes (9.1%) */
- 12462, /* plane 0, page 100; 42/458 bytes (9.2%) */
- 12691, /* plane 0, page 101; 48/494 bytes (9.7%) */
- 12938, /* plane 0, page 102; 54/438 bytes (12.3%) */
- 13157, /* plane 0, page 103; 48/508 bytes (9.4%) */
- 13411, /* plane 0, page 104; 60/408 bytes (14.7%) */
- 13615, /* plane 0, page 105; 72/504 bytes (14.3%) */
- 13867, /* plane 0, page 106; 76/490 bytes (15.5%) */
- 14112, /* plane 0, page 107; 30/494 bytes (6.1%) */
- 14359, /* plane 0, page 108; 50/458 bytes (10.9%) */
- 14588, /* plane 0, page 109; 40/508 bytes (7.9%) */
- 14842, /* plane 0, page 110; 56/500 bytes (11.2%) */
- 15092, /* plane 0, page 111; 52/492 bytes (10.6%) */
- 15338, /* plane 0, page 112; 80/506 bytes (15.8%) */
- 15591, /* plane 0, page 113; 84/486 bytes (17.3%) */
- 15834, /* plane 0, page 114; 52/456 bytes (11.4%) */
- 16062, /* plane 0, page 115; 76/502 bytes (15.1%) */
- 16313, /* plane 0, page 116; 96/496 bytes (19.4%) */
- 16561, /* plane 0, page 117; 62/434 bytes (14.3%) */
- 16778, /* plane 0, page 118; 50/434 bytes (11.5%) */
- 16995, /* plane 0, page 119; 56/488 bytes (11.5%) */
- 17239, /* plane 0, page 120; 70/478 bytes (14.6%) */
- 17478, /* plane 0, page 121; 62/480 bytes (12.9%) */
- 17718, /* plane 0, page 122; 64/500 bytes (12.8%) */
- 17968, /* plane 0, page 123; 48/486 bytes (9.9%) */
- 18211, /* plane 0, page 124; 76/472 bytes (16.1%) */
- 18447, /* plane 0, page 125; 46/438 bytes (10.5%) */
- 18666, /* plane 0, page 126; 36/436 bytes (8.3%) */
- 18884, /* plane 0, page 127; 42/492 bytes (8.5%) */
- 19130, /* plane 0, page 128; 56/492 bytes (11.4%) */
- 19376, /* plane 0, page 129; 62/490 bytes (12.7%) */
- 19621, /* plane 0, page 130; 60/466 bytes (12.9%) */
- 19854, /* plane 0, page 131; 40/456 bytes (8.8%) */
- 20082, /* plane 0, page 132; 78/490 bytes (15.9%) */
- 20327, /* plane 0, page 133; 44/502 bytes (8.8%) */
- 20578, /* plane 0, page 134; 38/478 bytes (7.9%) */
- 20817, /* plane 0, page 135; 32/270 bytes (11.9%) */
- 20952, /* plane 0, page 136; 62/506 bytes (12.3%) */
- 21205, /* plane 0, page 137; 44/466 bytes (9.4%) */
- 21438, /* plane 0, page 138; 34/416 bytes (8.2%) */
- 21646, /* plane 0, page 139; 36/432 bytes (8.3%) */
- 21862, /* plane 0, page 140; 26/336 bytes (7.7%) */
- 22030, /* plane 0, page 141; 32/422 bytes (7.6%) */
- 22241, /* plane 0, page 142; 56/486 bytes (11.5%) */
- 22484, /* plane 0, page 143; 62/452 bytes (13.7%) */
- 22710, /* plane 0, page 144; 28/380 bytes (7.4%) */
- 22900, /* plane 0, page 145; 42/350 bytes (12.0%) */
- 23075, /* plane 0, page 146; 82/494 bytes (16.6%) */
- 23322, /* plane 0, page 147; 92/486 bytes (18.9%) */
- 23565, /* plane 0, page 148; 62/494 bytes (12.6%) */
- 23812, /* plane 0, page 149; 32/402 bytes (8.0%) */
- 24013, /* plane 0, page 150; 34/434 bytes (7.8%) */
- 24230, /* plane 0, page 151; 70/488 bytes (14.3%) */
- 24474, /* plane 0, page 152; 60/454 bytes (13.2%) */
- 24701, /* plane 0, page 153; 54/466 bytes (11.6%) */
- 24934, /* plane 0, page 154; 46/490 bytes (9.4%) */
- 25179, /* plane 0, page 155; 60/510 bytes (11.8%) */
- 25434, /* plane 0, page 156; 40/248 bytes (16.1%) */
- 25558, /* plane 0, page 157; 52/504 bytes (10.3%) */
- 25810, /* plane 0, page 158; 68/492 bytes (13.8%) */
- 26056, /* plane 0, page 159; 38/330 bytes (11.5%) */
- -1, /* plane 0, page 160 */
- -1, /* plane 0, page 161 */
- -1, /* plane 0, page 162 */
- -1, /* plane 0, page 163 */
- -1, /* plane 0, page 164 */
- -1, /* plane 0, page 165 */
- -1, /* plane 0, page 166 */
- -1, /* plane 0, page 167 */
- -1, /* plane 0, page 168 */
- -1, /* plane 0, page 169 */
- -1, /* plane 0, page 170 */
- -1, /* plane 0, page 171 */
- -1, /* plane 0, page 172 */
- -1, /* plane 0, page 173 */
- -1, /* plane 0, page 174 */
- -1, /* plane 0, page 175 */
- -1, /* plane 0, page 176 */
- -1, /* plane 0, page 177 */
- -1, /* plane 0, page 178 */
- -1, /* plane 0, page 179 */
- -1, /* plane 0, page 180 */
- -1, /* plane 0, page 181 */
- -1, /* plane 0, page 182 */
- -1, /* plane 0, page 183 */
- -1, /* plane 0, page 184 */
- -1, /* plane 0, page 185 */
- -1, /* plane 0, page 186 */
- -1, /* plane 0, page 187 */
- -1, /* plane 0, page 188 */
- -1, /* plane 0, page 189 */
- -1, /* plane 0, page 190 */
- -1, /* plane 0, page 191 */
- -1, /* plane 0, page 192 */
- -1, /* plane 0, page 193 */
- -1, /* plane 0, page 194 */
- -1, /* plane 0, page 195 */
- -1, /* plane 0, page 196 */
- -1, /* plane 0, page 197 */
- -1, /* plane 0, page 198 */
- -1, /* plane 0, page 199 */
- -1, /* plane 0, page 200 */
- -1, /* plane 0, page 201 */
- -1, /* plane 0, page 202 */
- -1, /* plane 0, page 203 */
- -1, /* plane 0, page 204 */
- -1, /* plane 0, page 205 */
- -1, /* plane 0, page 206 */
- -1, /* plane 0, page 207 */
- -1, /* plane 0, page 208 */
- -1, /* plane 0, page 209 */
- -1, /* plane 0, page 210 */
- -1, /* plane 0, page 211 */
- -1, /* plane 0, page 212 */
- -1, /* plane 0, page 213 */
- -1, /* plane 0, page 214 */
- -1, /* plane 0, page 215 */
- -1, /* plane 0, page 216 */
- -1, /* plane 0, page 217 */
- -1, /* plane 0, page 218 */
- -1, /* plane 0, page 219 */
- -1, /* plane 0, page 220 */
- -1, /* plane 0, page 221 */
- -1, /* plane 0, page 222 */
- -1, /* plane 0, page 223 */
- 26221, /* plane 0, page 224; 234/510 bytes (45.9%) */
- 26476, /* plane 0, page 225; 246/506 bytes (48.6%) */
- 26729, /* plane 0, page 226; 232/514 bytes (45.1%) */
- 26986, /* plane 0, page 227; 244/514 bytes (47.5%) */
- 27243, /* plane 0, page 228; 238/502 bytes (47.4%) */
- 27494, /* plane 0, page 229; 284/512 bytes (55.5%) */
- 27750, /* plane 0, page 230; 304/514 bytes (59.1%) */
- 28007, /* plane 0, page 231; 272/514 bytes (52.9%) */
- 28264, /* plane 0, page 232; 294/512 bytes (57.4%) */
- 28520, /* plane 0, page 233; 244/512 bytes (47.7%) */
- 28776, /* plane 0, page 234; 160/508 bytes (31.5%) */
- 29030, /* plane 0, page 235; 366/514 bytes (71.2%) */
- 29287, /* plane 0, page 236; 288/508 bytes (56.7%) */
- 29541, /* plane 0, page 237; 196/486 bytes (40.3%) */
- 29784, /* plane 0, page 238; 106/354 bytes (29.9%) */
- -1, /* plane 0, page 239 */
- -1, /* plane 0, page 240 */
- -1, /* plane 0, page 241 */
- -1, /* plane 0, page 242 */
- 29961, /* plane 0, page 243; 78/504 bytes (15.5%) */
- 30213, /* plane 0, page 244; 330/508 bytes (65.0%) */
- 30467, /* plane 0, page 245; 222/482 bytes (46.1%) */
- 30708, /* plane 0, page 246; 94/374 bytes (25.1%) */
- 30895, /* plane 0, page 247; 16/22 bytes (72.7%) */
- 30906, /* plane 0, page 248; 58/58 bytes (100.0%) */
- 30935, /* plane 0, page 249; 4/4 bytes (100.0%) */
- -1, /* plane 0, page 250 */
- -1, /* plane 0, page 251 */
- -1, /* plane 0, page 252 */
- -1, /* plane 0, page 253 */
- -1, /* plane 0, page 254 */
- 30937, /* plane 0, page 255; 16/474 bytes (3.4%) */
- /* plane 1: --- */
- 31174, /* plane 2, page 0; 32/414 bytes (7.7%) */
- 31381, /* plane 2, page 1; 18/464 bytes (3.9%) */
- 31613, /* plane 2, page 2; 28/454 bytes (6.2%) */
- 31840, /* plane 2, page 3; 34/488 bytes (7.0%) */
- 32084, /* plane 2, page 4; 26/474 bytes (5.5%) */
- 32321, /* plane 2, page 5; 24/332 bytes (7.2%) */
- 32487, /* plane 2, page 6; 16/206 bytes (7.8%) */
- 32590, /* plane 2, page 7; 8/218 bytes (3.7%) */
- 32699, /* plane 2, page 8; 8/342 bytes (2.3%) */
- 32870, /* plane 2, page 9; 12/422 bytes (2.8%) */
- 33081, /* plane 2, page 10; 12/380 bytes (3.2%) */
- 33271, /* plane 2, page 11; 24/488 bytes (4.9%) */
- 33515, /* plane 2, page 12; 56/492 bytes (11.4%) */
- 33761, /* plane 2, page 13; 46/362 bytes (12.7%) */
- 33942, /* plane 2, page 14; 74/498 bytes (14.9%) */
- 34191, /* plane 2, page 15; 44/420 bytes (10.5%) */
- 34401, /* plane 2, page 16; 56/456 bytes (12.3%) */
- 34629, /* plane 2, page 17; 20/344 bytes (5.8%) */
- 34801, /* plane 2, page 18; 18/392 bytes (4.6%) */
- 34997, /* plane 2, page 19; 32/508 bytes (6.3%) */
- 35251, /* plane 2, page 20; 26/472 bytes (5.5%) */
- 35487, /* plane 2, page 21; 8/66 bytes (12.1%) */
- 35520, /* plane 2, page 22; 44/492 bytes (8.9%) */
- 35766, /* plane 2, page 23; 76/482 bytes (15.8%) */
- 36007, /* plane 2, page 24; 70/440 bytes (15.9%) */
- 36227, /* plane 2, page 25; 44/484 bytes (9.1%) */
- 36469, /* plane 2, page 26; 10/64 bytes (15.6%) */
- 36501, /* plane 2, page 27; 8/256 bytes (3.1%) */
- 36629, /* plane 2, page 28; 12/264 bytes (4.5%) */
- 36761, /* plane 2, page 29; 18/362 bytes (5.0%) */
- 36942, /* plane 2, page 30; 18/374 bytes (4.8%) */
- 37129, /* plane 2, page 31; 14/438 bytes (3.2%) */
- 37348, /* plane 2, page 32; 14/370 bytes (3.8%) */
- 37533, /* plane 2, page 33; 14/310 bytes (4.5%) */
- 37688, /* plane 2, page 34; 6/236 bytes (2.5%) */
- 37806, /* plane 2, page 35; 14/438 bytes (3.2%) */
- 38025, /* plane 2, page 36; 14/276 bytes (5.1%) */
- 38163, /* plane 2, page 37; 16/346 bytes (4.6%) */
- 38336, /* plane 2, page 38; 22/442 bytes (5.0%) */
- 38557, /* plane 2, page 39; 22/378 bytes (5.8%) */
- 38746, /* plane 2, page 40; 16/492 bytes (3.3%) */
- 38992, /* plane 2, page 41; 16/222 bytes (7.2%) */
- 39103, /* plane 2, page 42; 12/264 bytes (4.5%) */
- 39235, /* plane 2, page 43; 16/388 bytes (4.1%) */
- 39429, /* plane 2, page 44; 34/330 bytes (10.3%) */
- 39594, /* plane 2, page 45; 28/466 bytes (6.0%) */
- 39827, /* plane 2, page 46; 16/456 bytes (3.5%) */
- 40055, /* plane 2, page 47; 8/226 bytes (3.5%) */
- 40168, /* plane 2, page 48; 22/338 bytes (6.5%) */
- 40337, /* plane 2, page 49; 26/496 bytes (5.2%) */
- 40585, /* plane 2, page 50; 36/424 bytes (8.5%) */
- 40797, /* plane 2, page 51; 26/512 bytes (5.1%) */
- 41053, /* plane 2, page 52; 14/462 bytes (3.0%) */
- 41284, /* plane 2, page 53; 24/440 bytes (5.5%) */
- 41504, /* plane 2, page 54; 26/480 bytes (5.4%) */
- 41744, /* plane 2, page 55; 30/428 bytes (7.0%) */
- 41958, /* plane 2, page 56; 4/4 bytes (100.0%) */
- 41960, /* plane 2, page 57; 4/4 bytes (100.0%) */
- 41962, /* plane 2, page 58; 10/170 bytes (5.9%) */
- 42047, /* plane 2, page 59; 4/4 bytes (100.0%) */
- 42049, /* plane 2, page 60; 28/316 bytes (8.9%) */
- 42207, /* plane 2, page 61; 30/372 bytes (8.1%) */
- 42393, /* plane 2, page 62; 44/474 bytes (9.3%) */
- 42630, /* plane 2, page 63; 38/378 bytes (10.1%) */
- 42819, /* plane 2, page 64; 30/420 bytes (7.1%) */
- 43029, /* plane 2, page 65; 46/500 bytes (9.2%) */
- 43279, /* plane 2, page 66; 34/450 bytes (7.6%) */
- 43504, /* plane 2, page 67; 36/474 bytes (7.6%) */
- 43741, /* plane 2, page 68; 28/424 bytes (6.6%) */
- 43953, /* plane 2, page 69; 10/394 bytes (2.5%) */
- 44150, /* plane 2, page 70; 14/380 bytes (3.7%) */
- 44340, /* plane 2, page 71; 12/440 bytes (2.7%) */
- 44560, /* plane 2, page 72; 22/478 bytes (4.6%) */
- 44799, /* plane 2, page 73; 116/506 bytes (22.9%) */
- 45052, /* plane 2, page 74; 108/442 bytes (24.4%) */
- 45273, /* plane 2, page 75; 6/274 bytes (2.2%) */
- 45410, /* plane 2, page 76; 12/420 bytes (2.9%) */
- 45620, /* plane 2, page 77; 12/462 bytes (2.6%) */
- 45851, /* plane 2, page 78; 10/220 bytes (4.5%) */
- 45961, /* plane 2, page 79; 20/364 bytes (5.5%) */
- 46143, /* plane 2, page 80; 8/230 bytes (3.5%) */
- 46258, /* plane 2, page 81; 18/380 bytes (4.7%) */
- 46448, /* plane 2, page 82; 14/372 bytes (3.8%) */
- 46634, /* plane 2, page 83; 8/14 bytes (57.1%) */
- 46641, /* plane 2, page 84; 16/174 bytes (9.2%) */
- 46728, /* plane 2, page 85; 36/354 bytes (10.2%) */
- 46905, /* plane 2, page 86; 16/486 bytes (3.3%) */
- 47148, /* plane 2, page 87; 20/442 bytes (4.5%) */
- 47369, /* plane 2, page 88; 12/280 bytes (4.3%) */
- 47509, /* plane 2, page 89; 12/406 bytes (3.0%) */
- 47712, /* plane 2, page 90; 12/172 bytes (7.0%) */
- 47798, /* plane 2, page 91; 16/236 bytes (6.8%) */
- 47916, /* plane 2, page 92; 22/510 bytes (4.3%) */
- 48171, /* plane 2, page 93; 8/74 bytes (10.8%) */
- 48208, /* plane 2, page 94; 20/408 bytes (4.9%) */
- 48412, /* plane 2, page 95; 10/404 bytes (2.5%) */
- 48614, /* plane 2, page 96; 16/252 bytes (6.3%) */
- 48740, /* plane 2, page 97; 22/442 bytes (5.0%) */
- 48961, /* plane 2, page 98; 12/244 bytes (4.9%) */
- 49083, /* plane 2, page 99; 16/394 bytes (4.1%) */
- 49280, /* plane 2, page 100; 24/304 bytes (7.9%) */
- 49432, /* plane 2, page 101; 12/350 bytes (3.4%) */
- 49607, /* plane 2, page 102; 18/472 bytes (3.8%) */
- 49843, /* plane 2, page 103; 14/368 bytes (3.8%) */
- 50027, /* plane 2, page 104; 18/346 bytes (5.2%) */
- 50200, /* plane 2, page 105; 20/476 bytes (4.2%) */
- 50438, /* plane 2, page 106; 14/78 bytes (17.9%) */
- 50477, /* plane 2, page 107; 38/488 bytes (7.8%) */
- 50721, /* plane 2, page 108; 30/356 bytes (8.4%) */
- 50899, /* plane 2, page 109; 50/416 bytes (12.0%) */
- 51107, /* plane 2, page 110; 44/434 bytes (10.1%) */
- 51324, /* plane 2, page 111; 18/374 bytes (4.8%) */
- 51511, /* plane 2, page 112; 22/472 bytes (4.7%) */
- 51747, /* plane 2, page 113; 20/396 bytes (5.1%) */
- 51945, /* plane 2, page 114; 16/410 bytes (3.9%) */
- 52150, /* plane 2, page 115; 4/4 bytes (100.0%) */
- 52152, /* plane 2, page 116; 10/204 bytes (4.9%) */
- 52254, /* plane 2, page 117; 14/280 bytes (5.0%) */
- 52394, /* plane 2, page 118; 18/286 bytes (6.3%) */
- 52537, /* plane 2, page 119; 18/382 bytes (4.7%) */
- 52728, /* plane 2, page 120; 12/228 bytes (5.3%) */
- 52842, /* plane 2, page 121; 14/438 bytes (3.2%) */
- 53061, /* plane 2, page 122; 22/472 bytes (4.7%) */
- 53297, /* plane 2, page 123; 18/480 bytes (3.8%) */
- 53537, /* plane 2, page 124; 4/4 bytes (100.0%) */
- 53539, /* plane 2, page 125; 22/350 bytes (6.3%) */
- 53714, /* plane 2, page 126; 6/8 bytes (75.0%) */
- 53718, /* plane 2, page 127; 4/4 bytes (100.0%) */
- 53720, /* plane 2, page 128; 28/488 bytes (5.7%) */
- 53964, /* plane 2, page 129; 16/288 bytes (5.6%) */
- 54108, /* plane 2, page 130; 18/442 bytes (4.1%) */
- 54329, /* plane 2, page 131; 18/268 bytes (6.7%) */
- 54463, /* plane 2, page 132; 12/228 bytes (5.3%) */
- 54577, /* plane 2, page 133; 14/490 bytes (2.9%) */
- 54822, /* plane 2, page 134; 20/464 bytes (4.3%) */
- 55054, /* plane 2, page 135; 6/12 bytes (50.0%) */
- 55060, /* plane 2, page 136; 6/82 bytes (7.3%) */
- 55101, /* plane 2, page 137; 54/406 bytes (13.3%) */
- 55304, /* plane 2, page 138; 74/478 bytes (15.5%) */
- 55543, /* plane 2, page 139; 72/490 bytes (14.7%) */
- 55788, /* plane 2, page 140; 28/418 bytes (6.7%) */
- 55997, /* plane 2, page 141; 8/270 bytes (3.0%) */
- 56132, /* plane 2, page 142; 24/436 bytes (5.5%) */
- 56350, /* plane 2, page 143; 4/4 bytes (100.0%) */
- 56352, /* plane 2, page 144; 24/206 bytes (11.7%) */
- 56455, /* plane 2, page 145; 24/448 bytes (5.4%) */
- -1, /* plane 2, page 146 */
- -1, /* plane 2, page 147 */
- 56679, /* plane 2, page 148; 22/408 bytes (5.4%) */
- 56883, /* plane 2, page 149; 14/176 bytes (8.0%) */
- -1, /* plane 2, page 150 */
- 56971, /* plane 2, page 151; 8/364 bytes (2.2%) */
- 57153, /* plane 2, page 152; 14/454 bytes (3.1%) */
- 57380, /* plane 2, page 153; 24/400 bytes (6.0%) */
- 57580, /* plane 2, page 154; 6/78 bytes (7.7%) */
- 57619, /* plane 2, page 155; 8/420 bytes (1.9%) */
- 57829, /* plane 2, page 156; 6/120 bytes (5.0%) */
- 57889, /* plane 2, page 157; 14/372 bytes (3.8%) */
- 58075, /* plane 2, page 158; 14/488 bytes (2.9%) */
- 58319, /* plane 2, page 159; 10/378 bytes (2.6%) */
- 58508, /* plane 2, page 160; 18/472 bytes (3.8%) */
- 58744, /* plane 2, page 161; 24/480 bytes (5.0%) */
- 58984, /* plane 2, page 162; 24/450 bytes (5.3%) */
- 59209, /* plane 2, page 163; 4/4 bytes (100.0%) */
- 59211, /* plane 2, page 164; 6/82 bytes (7.3%) */
- 59252, /* plane 2, page 165; 6/14 bytes (42.9%) */
- 59259, /* plane 2, page 166; 12/340 bytes (3.5%) */
- -1, /* plane 2, page 167 */
- -1, /* plane 2, page 168 */
- -1, /* plane 2, page 169 */
- -1, /* plane 2, page 170 */
- -1, /* plane 2, page 171 */
- -1, /* plane 2, page 172 */
- -1, /* plane 2, page 173 */
- -1, /* plane 2, page 174 */
- -1, /* plane 2, page 175 */
- -1, /* plane 2, page 176 */
- -1, /* plane 2, page 177 */
- -1, /* plane 2, page 178 */
- -1, /* plane 2, page 179 */
- -1, /* plane 2, page 180 */
- -1, /* plane 2, page 181 */
- -1, /* plane 2, page 182 */
- -1, /* plane 2, page 183 */
- -1, /* plane 2, page 184 */
- -1, /* plane 2, page 185 */
- -1, /* plane 2, page 186 */
- -1, /* plane 2, page 187 */
- -1, /* plane 2, page 188 */
- -1, /* plane 2, page 189 */
- -1, /* plane 2, page 190 */
- -1, /* plane 2, page 191 */
- -1, /* plane 2, page 192 */
- -1, /* plane 2, page 193 */
- -1, /* plane 2, page 194 */
- -1, /* plane 2, page 195 */
- -1, /* plane 2, page 196 */
- -1, /* plane 2, page 197 */
- -1, /* plane 2, page 198 */
- -1, /* plane 2, page 199 */
- -1, /* plane 2, page 200 */
- -1, /* plane 2, page 201 */
- -1, /* plane 2, page 202 */
- -1, /* plane 2, page 203 */
- -1, /* plane 2, page 204 */
- -1, /* plane 2, page 205 */
- -1, /* plane 2, page 206 */
- -1, /* plane 2, page 207 */
- -1, /* plane 2, page 208 */
- -1, /* plane 2, page 209 */
- -1, /* plane 2, page 210 */
- -1, /* plane 2, page 211 */
- -1, /* plane 2, page 212 */
- -1, /* plane 2, page 213 */
- -1, /* plane 2, page 214 */
- -1, /* plane 2, page 215 */
- -1, /* plane 2, page 216 */
- -1, /* plane 2, page 217 */
- -1, /* plane 2, page 218 */
- -1, /* plane 2, page 219 */
- -1, /* plane 2, page 220 */
- -1, /* plane 2, page 221 */
- -1, /* plane 2, page 222 */
- -1, /* plane 2, page 223 */
- -1, /* plane 2, page 224 */
- -1, /* plane 2, page 225 */
- -1, /* plane 2, page 226 */
- -1, /* plane 2, page 227 */
- -1, /* plane 2, page 228 */
- -1, /* plane 2, page 229 */
- -1, /* plane 2, page 230 */
- -1, /* plane 2, page 231 */
- -1, /* plane 2, page 232 */
- -1, /* plane 2, page 233 */
- -1, /* plane 2, page 234 */
- -1, /* plane 2, page 235 */
- -1, /* plane 2, page 236 */
- -1, /* plane 2, page 237 */
- -1, /* plane 2, page 238 */
- -1, /* plane 2, page 239 */
- -1, /* plane 2, page 240 */
- -1, /* plane 2, page 241 */
- -1, /* plane 2, page 242 */
- -1, /* plane 2, page 243 */
- -1, /* plane 2, page 244 */
- -1, /* plane 2, page 245 */
- -1, /* plane 2, page 246 */
- -1, /* plane 2, page 247 */
- 59429, /* plane 2, page 248; 16/340 bytes (4.7%) */
- 59599, /* plane 2, page 249; 10/132 bytes (7.6%) */
- -1, /* plane 2, page 250 */
- -1, /* plane 2, page 251 */
- -1, /* plane 2, page 252 */
- -1, /* plane 2, page 253 */
- -1, /* plane 2, page 254 */
- -1, /* plane 2, page 255 */
- /* plane 3: --- */
- /* plane 4: --- */
- /* plane 5: --- */
- /* plane 6: --- */
- /* plane 7: --- */
- /* plane 8: --- */
- /* plane 9: --- */
- /* plane 10: --- */
- /* plane 11: --- */
- /* plane 12: --- */
- /* plane 13: --- */
- /* plane 14: --- */
- /* plane 15: --- */
- /* plane 16: --- */
-};
-
-static sal_Int32 const aImplUnicodeToBig5Hkscs2001PlaneOffsets[] = {
- 0 * 256, /* plane 0; 576/1024 bytes (56.3%), 11016/62348 bytes (17.7%) */
- -1, /* plane 1 */
- 1 * 256, /* plane 2; 664/1024 bytes (64.8%), 3634/56982 bytes (6.4%) */
- -1, /* plane 3 */
- -1, /* plane 4 */
- -1, /* plane 5 */
- -1, /* plane 6 */
- -1, /* plane 7 */
- -1, /* plane 8 */
- -1, /* plane 9 */
- -1, /* plane 10 */
- -1, /* plane 11 */
- -1, /* plane 12 */
- -1, /* plane 13 */
- -1, /* plane 14 */
- -1, /* plane 15 */
- -1, /* plane 16 */
- /* 8/68 bytes (11.8%), 1240/2048 bytes (60.5%), 14650/119330 bytes (12.3%) */
-};
diff --git a/sal/textenc/generate/cns116431992.pl b/sal/textenc/generate/cns116431992.pl
deleted file mode 100644
index dd2449856..000000000
--- a/sal/textenc/generate/cns116431992.pl
+++ /dev/null
@@ -1,856 +0,0 @@
-#!/usr/bin/perl
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-# The following files must be available in a ./input subdir:
-
-# <http://www.unicode.org/Public/UNIDATA/Unihan.txt>:
-# "Unicode version: 3.1.1 Table version: 1.1 Date: 28 June 2001"
-# contains descriptions for:
-# U+3400..4DFF CJK Unified Ideographs Extension A
-# U+4E00..9FFF CJK Unified Ideographs
-# U+F900..FAFF CJK Compatibility Ideographs
-# U+20000..2F7FF CJK Unified Ideographs Extension B
-# U+2F800..2FFFF CJK Compatibility Ideographs Supplement
-
-# <http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/CNS11643.TXT>:
-# "Unicode version: 1.1 Table version: 0.0d1 Date: 21 October 1994"
-# contains mappings for CNS 11643-1986
-
-# <http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/ftp/CJKtable/Uni2CNS.Z>:
-# "Unicode version: 1.1 Table version: 0.49 Date: 26 March 1998"
-# contains mappings for CNS 11643-1992 that are incompatible with
-# CNS11643.TXT
-
-$id = "Cns116431992";
-
-sub isValidUtf32
-{
- my $utf32 = $_[0];
- return $utf32 >= 0 && $utf32 <= 0x10FFFF
- && !($utf32 >= 0xD800 && $utf32 <= 0xDFFF)
- && !($utf32 >= 0xFDD0 && $utf32 <= 0xFDEF)
- && ($utf32 & 0xFFFF) < 0xFFFE;
-}
-
-sub printUtf32
-{
- my $utf32 = $_[0];
- return sprintf("U+%04X", $utf32);
-}
-
-sub isValidCns116431992
-{
- my $plane = $_[0];
- my $row = $_[1];
- my $column = $_[2];
- return $plane >= 1 && $plane <= 16
- && $row >= 1 && $row <= 94
- && $column >= 1 && $column <= 94;
-}
-
-sub printCns116431992
-{
- my $plane = $_[0];
- my $row = $_[1];
- my $column = $_[2];
- return sprintf("%d-%02d/%02d", $plane, $row, $column);
-}
-
-sub printStats
-{
- my $used = $_[0];
- my $space = $_[1];
- return sprintf("%d/%d bytes (%.1f%%)",
- $used,
- $space,
- $used * 100 / $space);
-}
-
-sub printSpaces
-{
- my $column_width = $_[0];
- my $columns_per_line = $_[1];
- my $end = $_[2];
- $output = "";
- for ($i = int($end / $columns_per_line) * $columns_per_line;
- $i < $end;
- ++$i)
- {
- for ($j = 0; $j < $column_width; ++$j)
- {
- $output = $output . " ";
- }
- }
- return $output;
-}
-
-$count_Unihan_txt = 0;
-$count_CNS11643_TXT = 0;
-$count_Uni2CNS = 0;
-
-if (1)
-{
- $filename = "Unihan.txt";
- open IN, ("input/" . $filename) or die "Cannot read " . $filename;
- while (<IN>)
- {
- if (/^U\+([0-9A-F]+)\tkCNS1992\t([0-9A-F])-([0-9A-F][0-9A-F])([0-9A-F][0-9A-F])$/)
- {
- $utf32 = oct("0x" . $1);
- $cns_plane = oct("0x" . $2);
- $cns_row = oct("0x" . $3) - 0x20;
- $cns_column = oct("0x" . $4) - 0x20;
- isValidUtf32($utf32)
- or die "Bad UTF32 char U+" . printUtf32($utf32);
- isValidCns116431992($cns_plane, $cns_row, $cns_column)
- or die "Bad CNS11643-1992 char "
- . printCns116431992($cns_plane,
- $cns_row,
- $cns_column);
- if (!defined($cns_map[$cns_plane][$cns_row][$cns_column]))
- {
- $cns_map[$cns_plane][$cns_row][$cns_column] = $utf32;
- $cns_plane_used[$cns_plane] = 1;
- ++$count_Unihan_txt;
- }
- else
- {
- ($cns_map[$cns_plane][$cns_row][$cns_column] == $utf32)
- or die "Mapping "
- . printCns116431992($cns_plane,
- $cns_row,
- $cns_column)
- . " to "
- . printUtf32($cns_map[$cns_plane]
- [$cns_row]
- [$cns_column])
- . ", NOT "
- . printUtf32($utf32);
- }
- }
- elsif (/^U\+([0-9A-F]+)\tkIRG_TSource\t([0-9A-F])-([0-9A-F][0-9A-F])([0-9A-F][0-9A-F])$/)
- {
- $utf32 = oct("0x" . $1);
- $cns_plane = oct("0x" . $2);
- $cns_row = oct("0x" . $3) - 0x20;
- $cns_column = oct("0x" . $4) - 0x20;
- isValidUtf32($utf32)
- or die "Bad UTF32 char U+" . printUtf32($utf32);
- isValidCns116431992($cns_plane, $cns_row, $cns_column)
- or die "Bad CNS11643-1992 char "
- . printCns116431992($cns_plane,
- $cns_row,
- $cns_column);
- if (!defined($cns_map[$cns_plane][$cns_row][$cns_column]))
- {
- $cns_map[$cns_plane][$cns_row][$cns_column] = $utf32;
- $cns_plane_used[$cns_plane] = 1;
- ++$count_Unihan_txt;
- }
- else
- {
- ($cns_map[$cns_plane][$cns_row][$cns_column] == $utf32)
- or print "WARNING! Mapping ",
- printCns116431992($cns_plane,
- $cns_row,
- $cns_column),
- " to ",
- printUtf32($cns_map[$cns_plane]
- [$cns_row]
- [$cns_column]),
- ", NOT ",
- printUtf32($utf32),
- "\n";
- }
- }
- elsif (/^U\+([0-9A-F]+)\tkCNS1992\t.*$/)
- {
- die "Bad format";
- }
- }
- close IN;
-}
-
-if (1)
-{
- $filename = "CNS11643.TXT";
- open IN, ("input/" . $filename) or die "Cannot read " . $filename;
- while (<IN>)
- {
- if (/0x([0-9A-F])([0-9A-F][0-9A-F])([0-9A-F][0-9A-F])\t0x([0-9A-F]+)\t\#.*$/)
- {
- $utf32 = oct("0x" . $4);
- $cns_plane = oct("0x" . $1);
- $cns_row = oct("0x" . $2) - 0x20;
- $cns_column = oct("0x" . $3) - 0x20;
- isValidUtf32($utf32)
- or die "Bad UTF32 char U+" . printUtf32($utf32);
- isValidCns116431992($cns_plane, $cns_row, $cns_column)
- or die "Bad CNS11643-1992 char "
- . printCns116431992($cns_plane,
- $cns_row,
- $cns_column);
- if ($cns_plane <= 2)
- {
- if (!defined($cns_map[$cns_plane][$cns_row][$cns_column]))
- {
- $cns_map[$cns_plane][$cns_row][$cns_column] = $utf32;
- $cns_plane_used[$cns_plane] = 1;
- ++$count_CNS11643_TXT;
- }
- else
- {
- ($cns_map[$cns_plane][$cns_row][$cns_column] == $utf32)
- or die "Mapping "
- . printCns116431992($cns_plane,
- $cns_row,
- $cns_column)
- . " to "
- . printUtf32($cns_map[$cns_plane]
- [$cns_row]
- [$cns_column])
- . ", NOT "
- . printUtf32($utf32);
- }
- }
- }
- }
- close IN;
-}
-
-if (0)
-{
- $filename = "Uni2CNS";
- open IN, ("input/" . $filename) or die "Cannot read " . $filename;
- while (<IN>)
- {
- if (/([0-9A-F]+)\t([0-9A-F])-([0-9A-F][0-9A-F])([0-9A-F][0-9A-F])\t.*$/)
- {
- $utf32 = oct("0x" . $1);
- $cns_plane = oct("0x" . $2);
- $cns_row = oct("0x" . $3) - 0x20;
- $cns_column = oct("0x" . $4) - 0x20;
- isValidUtf32($utf32)
- or die "Bad UTF32 char U+" . printUtf32($utf32);
- isValidCns116431992($cns_plane, $cns_row, $cns_column)
- or die "Bad CNS11643-1992 char "
- . printCns116431992($cns_plane,
- $cns_row,
- $cns_column);
- if (!defined($cns_map[$cns_plane][$cns_row][$cns_column]))
- {
- $cns_map[$cns_plane][$cns_row][$cns_column] = $utf32;
- $cns_plane_used[$cns_plane] = 1;
- ++$count_Uni2CNS;
- }
- else
- {
-# ($cns_map[$cns_plane][$cns_row][$cns_column] == $utf32)
-# or die "Mapping "
-# . printCns116431992($cns_plane,
-# $cns_row,
-# $cns_column)
-# . " to "
-# . printUtf32($cns_map[$cns_plane]
-# [$cns_row]
-# [$cns_column])
-# . ", NOT "
-# . printUtf32($utf32);
- }
- if ($cns_plane == 1)
- {
- print printCns116431992($cns_plane, $cns_row, $cns_column),
- "\n";
- }
- }
- }
- close IN;
-}
-
-for ($cns_plane = 1; $cns_plane <= 16; ++$cns_plane)
-{
- if (defined($cns_plane_used[$cns_plane]))
- {
- for ($cns_row = 1; $cns_row <= 94; ++$cns_row)
- {
- for ($cns_column = 1; $cns_column <= 94; ++$cns_column)
- {
- if (defined($cns_map[$cns_plane][$cns_row][$cns_column]))
- {
- $utf32 = $cns_map[$cns_plane][$cns_row][$cns_column];
- $uni_plane = $utf32 >> 16;
- $uni_page = ($utf32 >> 8) & 0xFF;
- $uni_index = $utf32 & 0xFF;
- if (!defined($uni_plane_used[$uni_plane])
- || !defined($uni_page_used[$uni_plane][$uni_page])
- || !defined($uni_map[$uni_plane]
- [$uni_page]
- [$uni_index]))
- {
- $uni_map[$uni_plane][$uni_page][$uni_index]
- = ($cns_plane << 16)
- | ($cns_row << 8)
- | $cns_column;
- $uni_plane_used[$uni_plane] = 1;
- $uni_page_used[$uni_plane][$uni_page] = 1;
- }
- else
- {
- $cns1 = $uni_map[$uni_plane][$uni_page][$uni_index];
- $cns1_plane = $cns1 >> 16;
- $cns1_row = ($cns1 >> 8) & 0xFF;
- $cns1_column = $cns1 & 0xFF;
-
- # Do not map from Unicode to Fictious Character Set
- # Extensions (Lunde, p. 131), if possible:
- if ($cns_plane == 3
- && ($cns_row == 66 && $cns_column > 38
- || $cns_row > 66))
- {
- print " (",
- printUtf32($utf32),
- " to fictious ",
- printCns116431992($cns_plane,
- $cns_row,
- $cns_column),
- " ignored, favouring ",
- printCns116431992($cns1_plane,
- $cns1_row,
- $cns1_column),
- ")\n";
- }
- elsif ($cns1_plane == 3
- && ($cns1_row == 66 && $cns1_column > 38
- || $cns1_row > 66))
- {
- $uni_map[$uni_plane][$uni_page][$uni_index]
- = ($cns_plane << 16)
- | ($cns_row << 8)
- | $cns_column;
- print " (",
- printUtf32($utf32),
- " to fictious ",
- printCns116431992($cns1_plane,
- $cns1_row,
- $cns1_column),
- " ignored, favouring ",
- printCns116431992($cns_plane,
- $cns_row,
- $cns_column),
- ")\n";
- }
- else
- {
- print "WARNING! Mapping ",
- printUtf32($utf32),
- " to ",
- printCns116431992($cns1_plane,
- $cns1_row,
- $cns1_column),
- ", NOT ",
- printCns116431992($cns_plane,
- $cns_row,
- $cns_column),
- "\n";
- }
- }
- }
- }
- }
- }
-}
-if (defined($uni_plane_used[0]) && defined($uni_page_used[0][0]))
-{
- for ($utf32 = 0; $utf32 <= 0x7F; ++$utf32)
- {
- if (defined($uni_map[0][0][$uni_index]))
- {
- $cns = $uni_map[0][0][$utf32];
- die "Mapping "
- . printUtf32($utf32)
- . " to "
- . printCns116431992($cns >> 16,
- ($cns >> 8) & 0xFF,
- $cns & 0xFF);
- }
- }
-}
-
-$filename = lc($id) . ".tab";
-open OUT, ("> " . $filename) or die "Cannot write " . $filename;
-
-{
- $filename = lc($id). ".pl";
- open IN, $filename or die "Cannot read ". $filename;
- $first = 1;
- while (<IN>)
- {
- if (/^\#!.*$/)
- {
- }
- elsif (/^\#(\*.*)$/)
- {
- if ($first == 1)
- {
- print OUT "/", $1, "\n";
- $first = 0;
- }
- else
- {
- print OUT " ", substr($1, 0, length($1) - 1), "/\n";
- }
- }
- elsif (/^\# (.*)$/)
- {
- print OUT " *", $1, "\n";
- }
- elsif (/^\#(.*)$/)
- {
- print OUT " *", $1, "\n";
- }
- else
- {
- goto done;
- }
- }
- done:
-}
-
-print OUT "\n",
- "#ifndef _SAL_TYPES_H_\n",
- "#include \"sal/types.h\"\n",
- "#endif\n",
- "\n";
-
-print OUT "static sal_uInt16 const aImpl", $id, "ToUnicodeData[] = {\n";
-$cns_data_index = 0;
-for ($cns_plane = 1; $cns_plane <= 16; ++$cns_plane)
-{
- if (defined($cns_plane_used[$cns_plane]))
- {
- $cns_rows = 0;
- $cns_chars = 0;
- for ($cns_row = 1; $cns_row <= 94; ++$cns_row)
- {
- $cns_row_first = -1;
- for ($cns_column = 1; $cns_column <= 94; ++$cns_column)
- {
- if (defined($cns_map[$cns_plane][$cns_row][$cns_column]))
- {
- if ($cns_row_first == -1)
- {
- $cns_row_first = $cns_column;
- }
- $cns_row_last = $cns_column;
- }
- }
- if ($cns_row_first != -1)
- {
- $cns_data_offsets[$cns_plane][$cns_row] = $cns_data_index;
- ++$cns_rows;
- print OUT " /* plane ", $cns_plane, ", row ", $cns_row,
- " */\n";
-
- $cns_row_surrogates_first = -1;
- $cns_row_chars = 0;
- $cns_row_surrogates = 0;
-
- print OUT " ", $cns_row_first, " | (", $cns_row_last,
- " << 8), /* first, last */\n";
- ++$cns_data_index;
-
- print OUT " ", printSpaces(7, 10, $cns_row_first);
- $bol = 0;
- for ($cns_column = $cns_row_first;
- $cns_column <= $cns_row_last;
- ++$cns_column)
- {
- if ($bol == 1)
- {
- print OUT " ";
- $bol = 0;
- }
- if (defined($cns_map[$cns_plane][$cns_row][$cns_column]))
- {
- $utf32 = $cns_map[$cns_plane][$cns_row][$cns_column];
- ++$cns_row_chars;
- if ($utf32 <= 0xFFFF)
- {
- printf OUT "0x%04X,", $utf32;
- }
- else
- {
- ++$cns_row_surrogates;
- printf OUT "0x%04X,",
- (0xD800 | (($utf32 - 0x10000) >> 10));
- if ($cns_row_surrogates_first == -1)
- {
- $cns_row_surrogates_first = $cns_column;
- }
- $cns_row_surrogates_last = $cns_column;
- }
- }
- else
- {
- printf OUT "0xffff,";
- }
- ++$cns_data_index;
- if ($cns_column % 10 == 9)
- {
- print OUT "\n";
- $bol = 1;
- }
- }
- if ($bol == 0)
- {
- print OUT "\n";
- }
-
- if ($cns_row_surrogates_first != -1)
- {
- print OUT " ", $cns_row_surrogates_first,
- ", /* first low-surrogate */\n";
- ++$cns_data_index;
-
- print OUT " ",
- printSpaces(7, 10, $cns_row_surrogates_first);
- $bol = 0;
- for ($cns_column = $cns_row_surrogates_first;
- $cns_column <= $cns_row_surrogates_last;
- ++$cns_column)
- {
- if ($bol == 1)
- {
- print OUT " ";
- $bol = 0;
- }
- $utf32 = 0;
- if (defined($cns_map[$cns_plane]
- [$cns_row]
- [$cns_column]))
- {
- $utf32
- = $cns_map[$cns_plane][$cns_row][$cns_column];
- }
- if ($utf32 <= 0xFFFF)
- {
- printf OUT " 0,";
- }
- else
- {
- printf OUT "0x%04X,",
- (0xDC00
- | (($utf32 - 0x10000) & 0x3FF));
- }
- ++$cns_data_index;
- if ($cns_column % 10 == 9)
- {
- print OUT "\n";
- $bol = 1;
- }
- }
- if ($bol == 0)
- {
- print OUT "\n";
- }
- }
-
- $cns_chars += $cns_row_chars;
- $cns_data_space[$cns_plane][$cns_row]
- = ($cns_data_index
- - $cns_data_offsets[$cns_plane][$cns_row]) * 2;
- $cns_data_used[$cns_plane][$cns_row]
- = (1 + $cns_row_chars
- + ($cns_row_surrogates == 0 ?
- 0 : 1 + $cns_row_surrogates)) * 2;
- }
- else
- {
- print OUT " /* plane ", $cns_plane, ", row ", $cns_row,
- ": --- */\n";
- $cns_data_offsets[$cns_plane][$cns_row] = -1;
- }
- }
- print "cns plane ",
- $cns_plane,
- ": rows = ",
- $cns_rows,
- ", chars = ",
- $cns_chars,
- "\n";
- }
-}
-print OUT "};\n\n";
-
-print OUT "static sal_Int32 const aImpl", $id, "ToUnicodeRowOffsets[] = {\n";
-for ($cns_plane = 1; $cns_plane <= 16; ++$cns_plane)
-{
- if (defined ($cns_plane_used[$cns_plane]))
- {
- $cns_rowoffsets_used[$cns_plane] = 0;
- for ($cns_row = 1; $cns_row <= 94; ++$cns_row)
- {
- if ($cns_data_offsets[$cns_plane][$cns_row] == -1)
- {
- print OUT " -1, /* plane ",
- $cns_plane,
- ", row ",
- $cns_row,
- " */\n";
- }
- else
- {
- print OUT " ",
- $cns_data_offsets[$cns_plane][$cns_row],
- ", /* plane ",
- $cns_plane,
- ", row ",
- $cns_row,
- "; ",
- printStats($cns_data_used[$cns_plane][$cns_row],
- $cns_data_space[$cns_plane][$cns_row]),
- " */\n";
- $cns_rowoffsets_used[$cns_plane] += 4;
- }
- }
- }
- else
- {
- print OUT " /* plane ", $cns_plane, ": --- */\n";
- }
-}
-print OUT "};\n\n";
-
-print OUT "static sal_Int32 const aImpl",
- $id,
- "ToUnicodePlaneOffsets[] = {\n";
-$cns_row_offset = 0;
-for ($cns_plane = 1; $cns_plane <= 16; ++$cns_plane)
-{
- if (defined ($cns_plane_used[$cns_plane]))
- {
- print OUT " ",
- $cns_row_offset++,
- " * 94, /* plane ",
- $cns_plane,
- "; ",
- printStats($cns_rowoffsets_used[$cns_plane], 94 * 4),
- " */\n";
- }
- else
- {
- print OUT " -1, /* plane ", $cns_plane, " */\n";
- }
-}
-print OUT "};\n\n";
-
-print OUT "static sal_uInt8 const aImplUnicodeTo", $id, "Data[] = {\n";
-$uni_data_index = 0;
-for ($uni_plane = 0; $uni_plane <= 16; ++$uni_plane)
-{
- if (defined($uni_plane_used[$uni_plane]))
- {
- for ($uni_page = 0; $uni_page <= 255; ++$uni_page)
- {
- if (defined($uni_page_used[$uni_plane][$uni_page]))
- {
- $uni_data_offsets[$uni_plane][$uni_page] = $uni_data_index;
- print OUT " /* plane ", $uni_plane, ", page ", $uni_page,
- " */\n";
-
- $uni_page_first = -1;
- for ($uni_index = 0; $uni_index <= 255; ++$uni_index)
- {
- if (defined($uni_map[$uni_plane][$uni_page][$uni_index]))
- {
- if ($uni_page_first == -1)
- {
- $uni_page_first = $uni_index;
- }
- $uni_page_last = $uni_index;
- }
- }
-
- $uni_data_used[$uni_plane][$uni_page] = 0;
-
- print OUT " ", $uni_page_first, ", ", $uni_page_last,
- ", /* first, last */\n";
- $uni_data_index += 2;
- $uni_data_used[$uni_plane][$uni_page] += 2;
-
- print OUT " ", printSpaces(9, 8, $uni_page_first);
- $bol = 0;
- for ($uni_index = $uni_page_first;
- $uni_index <= $uni_page_last;
- ++$uni_index)
- {
- if ($bol == 1)
- {
- print OUT " ";
- $bol = 0;
- }
- if (defined($uni_map[$uni_plane][$uni_page][$uni_index]))
- {
- $cns = $uni_map[$uni_plane][$uni_page][$uni_index];
- printf OUT "%2d,%2d,%2d,",
- $cns >> 16,
- $cns >> 8 & 0xFF,
- $cns & 0xFF;
- $uni_data_used[$uni_plane][$uni_page] += 3;
- }
- else
- {
- print OUT " 0, 0, 0,";
- }
- $uni_data_index += 3;
- if ($uni_index % 8 == 7)
- {
- print OUT "\n";
- $bol = 1;
- }
- }
- if ($bol == 0)
- {
- print OUT "\n";
- }
-
- $uni_data_space[$uni_plane][$uni_page]
- = $uni_data_index
- - $uni_data_offsets[$uni_plane][$uni_page];
- }
- else
- {
- $uni_data_offsets[$uni_plane][$uni_page] = -1;
- print OUT " /* plane ", $uni_plane, ", page ", $uni_page,
- ": --- */\n";
- }
- }
- }
- else
- {
- print OUT " /* plane ", $uni_plane, ": --- */\n";
- }
-}
-print OUT "};\n\n";
-
-print OUT "static sal_Int32 const aImplUnicodeTo", $id, "PageOffsets[] = {\n";
-for ($uni_plane = 0; $uni_plane <= 16; ++$uni_plane)
-{
- if (defined($uni_plane_used[$uni_plane]))
- {
- $uni_pageoffsets_used[$uni_plane] = 0;
- $uni_data_used_sum[$uni_plane] = 0;
- $uni_data_space_sum[$uni_plane] = 0;
- for ($uni_page = 0; $uni_page <= 255; ++$uni_page)
- {
- $offset = $uni_data_offsets[$uni_plane][$uni_page];
- if ($offset == -1)
- {
- print OUT " -1, /* plane ",
- $uni_plane,
- ", page ",
- $uni_page,
- " */\n";
- }
- else
- {
- print OUT " ",
- $offset,
- ", /* plane ",
- $uni_plane,
- ", page ",
- $uni_page,
- "; ",
- printStats($uni_data_used[$uni_plane][$uni_page],
- $uni_data_space[$uni_plane][$uni_page]),
- " */\n";
- $uni_pageoffsets_used[$uni_plane] += 4;
- $uni_data_used_sum[$uni_plane]
- += $uni_data_used[$uni_plane][$uni_page];
- $uni_data_space_sum[$uni_plane]
- += $uni_data_space[$uni_plane][$uni_page];
- }
- }
- }
- else
- {
- print OUT " /* plane ", $uni_plane, ": --- */\n";
- }
-}
-print OUT "};\n\n";
-
-print OUT "static sal_Int32 const aImplUnicodeTo",
- $id,
- "PlaneOffsets[] = {\n";
-$uni_page_offset = 0;
-$uni_planeoffsets_used = 0;
-$uni_pageoffsets_used_sum = 0;
-$uni_pageoffsets_space_sum = 0;
-$uni_data_used_sum2 = 0;
-$uni_data_space_sum2 = 0;
-for ($uni_plane = 0; $uni_plane <= 16; ++$uni_plane)
-{
- if (defined ($uni_plane_used[$uni_plane]))
- {
- print OUT " ",
- $uni_page_offset++,
- " * 256, /* plane ",
- $uni_plane,
- "; ",
- printStats($uni_pageoffsets_used[$uni_plane], 256 * 4),
- ", ",
- printStats($uni_data_used_sum[$uni_plane],
- $uni_data_space_sum[$uni_plane]),
- " */\n";
- $uni_planeoffsets_used += 4;
- $uni_pageoffsets_used_sum += $uni_pageoffsets_used[$uni_plane];
- $uni_pageoffsets_space_sum += 256 * 4;
- $uni_data_used_sum2 += $uni_data_used_sum[$uni_plane];
- $uni_data_space_sum2 += $uni_data_space_sum[$uni_plane];
- }
- else
- {
- print OUT " -1, /* plane ", $uni_plane, " */\n";
- }
-}
-print OUT " /* ",
- printStats($uni_planeoffsets_used, 17 * 4),
- ", ",
- printStats($uni_pageoffsets_used_sum, $uni_pageoffsets_space_sum),
- ", ",
- printStats($uni_data_used_sum2, $uni_data_space_sum2),
- " */\n};\n";
-
-close OUT;
-
-print "Unihan.txt = ", $count_Unihan_txt,
- ", CNS11643.TXT = ", $count_CNS11643_TXT,
- ", Uni2CNS = ", $count_Uni2CNS,
- ", total = ",
- ($count_Unihan_txt + $count_CNS11643_TXT + $count_Uni2CNS),
- "\n";
diff --git a/sal/textenc/generate/cns116431992.tab b/sal/textenc/generate/cns116431992.tab
deleted file mode 100644
index 2b00b0396..000000000
--- a/sal/textenc/generate/cns116431992.tab
+++ /dev/null
@@ -1,22869 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SAL_TYPES_H_
-#include "sal/types.h"
-#endif
-
-static sal_uInt16 const aImplCns116431992ToUnicodeData[] = {
- /* plane 1, row 1 */
- 1 | (94 << 8), /* first, last */
- 0x3000,0xFF0C,0x3001,0x3002,0xFF0E,0x30FB,0xFF1B,0xFF1A,0xFF1F,
- 0xFF01,0xFE30,0x2026,0x2025,0xFE50,0xFE51,0xFE52,0x00B7,0xFE54,0xFE55,
- 0xFE56,0xFE57,0xFE31,0x2014,0xFE32,0x2013,0xffff,0xffff,0xffff,0xffff,
- 0xFF08,0xFF09,0xFE35,0xFE36,0xFF5B,0xFF5D,0xFE37,0xFE38,0x3014,0x3015,
- 0xFE39,0xFE3A,0x3010,0x3011,0xFE3B,0xFE3C,0x300A,0x300B,0xFE3D,0xFE3E,
- 0x3008,0x3009,0xFE3F,0xFE40,0x300C,0x300D,0xFE41,0xFE42,0x300E,0x300F,
- 0xFE43,0xFE44,0xFE59,0xFE5A,0xFE5B,0xFE5C,0xFE5D,0xFE5E,0x2018,0x2019,
- 0x201C,0x201D,0x301D,0x301E,0x2032,0x2035,0xFF03,0xFF06,0xFF0A,0x203B,
- 0x00A7,0x3003,0x25CB,0x25CF,0x25B3,0x25B2,0x25CE,0x2606,0x2605,0x25C7,
- 0x25C6,0x25A1,0x25A0,0x25BD,0x25BC,
- /* plane 1, row 2 */
- 1 | (94 << 8), /* first, last */
- 0x32A3,0x2105,0x203E,0xffff,0xFF3F,0xffff,0xFE49,0xFE4A,0xFE4D,
- 0xFE4E,0xFE4B,0xFE4C,0xFE5F,0xFE60,0xFE61,0xFF0B,0xFF0D,0x00D7,0x00F7,
- 0x00B1,0x221A,0xFF1C,0xFF1E,0xFF1D,0x2266,0x2267,0x2260,0x221E,0x2252,
- 0x2261,0xFE62,0xFE63,0xFE64,0xFE66,0xFE65,0x223C,0x2229,0x222A,0x22A5,
- 0x2220,0x221F,0x22BF,0x33D2,0x33D1,0x222B,0x222E,0x2235,0x2234,0x2640,
- 0x2642,0x2641,0x2609,0x2191,0x2193,0x2192,0x2190,0x2196,0x2197,0x2199,
- 0x2198,0x2016,0xFF5C,0xFF0F,0xFF3C,0x2215,0xFE68,0xFF04,0xFFE5,0x3012,
- 0xFFE0,0xFFE1,0xFF05,0xFF20,0x2103,0x2109,0xFE69,0xFE6A,0xFE6B,0x33D5,
- 0x339C,0x339D,0x339E,0x33CE,0x33A1,0x338E,0x338F,0x33C4,0x00B0,0x5159,
- 0x515B,0x515E,0x515D,0x5161,0x5163,
- /* plane 1, row 3 */
- 1 | (46 << 8), /* first, last */
- 0x55E7,0x74E9,0x7CCE,0x2581,0x2582,0x2583,0x2584,0x2585,0x2586,
- 0x2587,0x2588,0x258F,0x258E,0x258D,0x258C,0x258B,0x258A,0x2589,0x253C,
- 0x2534,0x252C,0x2524,0x251C,0x2594,0x2500,0x2502,0x2595,0x250C,0x2510,
- 0x2514,0x2518,0x256D,0x256E,0x2570,0x256F,0x2550,0x255E,0x256A,0x2561,
- 0x25E2,0x25E3,0x25E5,0x25E4,0x2571,0x2572,0x2573,
- /* plane 1, row 4 */
- 1 | (94 << 8), /* first, last */
- 0xFF10,0xFF11,0xFF12,0xFF13,0xFF14,0xFF15,0xFF16,0xFF17,0xFF18,
- 0xFF19,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,0x2167,0x2168,
- 0x2169,0x3021,0x3022,0x3023,0x3024,0x3025,0x3026,0x3027,0x3028,0x3029,
- 0xffff,0x5344,0xffff,0xFF21,0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27,
- 0xFF28,0xFF29,0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F,0xFF30,0xFF31,
- 0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37,0xFF38,0xFF39,0xFF3A,0xFF41,
- 0xFF42,0xFF43,0xFF44,0xFF45,0xFF46,0xFF47,0xFF48,0xFF49,0xFF4A,0xFF4B,
- 0xFF4C,0xFF4D,0xFF4E,0xFF4F,0xFF50,0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,
- 0xFF56,0xFF57,0xFF58,0xFF59,0xFF5A,0x0391,0x0392,0x0393,0x0394,0x0395,
- 0x0396,0x0397,0x0398,0x0399,0x039A,
- /* plane 1, row 5 */
- 1 | (80 << 8), /* first, last */
- 0x039B,0x039C,0x039D,0x039E,0x039F,0x03A0,0x03A1,0x03A3,0x03A4,
- 0x03A5,0x03A6,0x03A7,0x03A8,0x03A9,0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,
- 0x03B6,0x03B7,0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,
- 0x03C0,0x03C1,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,0x03C9,0x3105,
- 0x3106,0x3107,0x3108,0x3109,0x310A,0x310B,0x310C,0x310D,0x310E,0x310F,
- 0x3110,0x3111,0x3112,0x3113,0x3114,0x3115,0x3116,0x3117,0x3118,0x3119,
- 0x311A,0x311B,0x311C,0x311D,0x311E,0x311F,0x3120,0x3121,0x3122,0x3123,
- 0x3124,0x3125,0x3126,0x3127,0x3128,0x3129,0x02D9,0x02C9,0x02CA,0x02C7,
- 0x02CB,
- /* plane 1, row 6 */
- 1 | (30 << 8), /* first, last */
- 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
- 0x2469,0x2474,0x2475,0x2476,0x2477,0x2478,0x2479,0x247A,0x247B,0x247C,
- 0x247D,0x2170,0x2171,0x2172,0x2173,0x2174,0x2175,0x2176,0x2177,0x2178,
- 0x2179,
- /* plane 1, row 7 */
- 8 | (20 << 8), /* first, last */
- 0x4EA0,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0x51AB,0xffff,0xffff,0xffff,0xffff,
- 0x52F9,
- /* plane 1, row 8: --- */
- /* plane 1, row 9: --- */
- /* plane 1, row 10: --- */
- /* plane 1, row 11: --- */
- /* plane 1, row 12: --- */
- /* plane 1, row 13: --- */
- /* plane 1, row 14: --- */
- /* plane 1, row 15: --- */
- /* plane 1, row 16: --- */
- /* plane 1, row 17: --- */
- /* plane 1, row 18: --- */
- /* plane 1, row 19: --- */
- /* plane 1, row 20: --- */
- /* plane 1, row 21: --- */
- /* plane 1, row 22: --- */
- /* plane 1, row 23: --- */
- /* plane 1, row 24: --- */
- /* plane 1, row 25: --- */
- /* plane 1, row 26: --- */
- /* plane 1, row 27: --- */
- /* plane 1, row 28: --- */
- /* plane 1, row 29: --- */
- /* plane 1, row 30: --- */
- /* plane 1, row 31: --- */
- /* plane 1, row 32: --- */
- /* plane 1, row 33: --- */
- /* plane 1, row 34 */
- 1 | (33 << 8), /* first, last */
- 0x2400,0x2401,0x2402,0x2403,0x2404,0x2405,0x2406,0x2407,0x2408,
- 0x2409,0x240A,0x240B,0x240C,0x240D,0x240E,0x240F,0x2410,0x2411,0x2412,
- 0x2413,0x2414,0x2415,0x2416,0x2417,0x2418,0x2419,0x241A,0x241B,0x241C,
- 0x241D,0x241E,0x241F,0x2421,
- /* plane 1, row 35: --- */
- /* plane 1, row 36 */
- 1 | (94 << 8), /* first, last */
- 0x4E00,0x4E59,0x4E01,0x4E03,0x4E43,0x4E5D,0x4E86,0x4E8C,0x4EBA,
- 0x513F,0x5165,0x516B,0x51E0,0x5200,0x5201,0x529B,0x5315,0x5341,0x535C,
- 0x53C8,0x4E09,0x4E0B,0x4E08,0x4E0A,0x4E2B,0x4E38,0x51E1,0x4E45,0x4E48,
- 0x4E5F,0x4E5E,0x4E8E,0x4EA1,0x5140,0x5203,0x52FA,0x5343,0x53C9,0x53E3,
- 0x571F,0x58EB,0x5915,0x5927,0x5973,0x5B50,0x5B51,0x5B53,0x5BF8,0x5C0F,
- 0x5C22,0x5C38,0x5C71,0x5DDD,0x5DE5,0x5DF1,0x5DF2,0x5DF3,0x5DFE,0x5E72,
- 0x5EFE,0x5F0B,0x5F13,0x624D,0x4E11,0x4E10,0x4E0D,0x4E2D,0x4E30,0x4E39,
- 0x4E4B,0x5C39,0x4E88,0x4E91,0x4E95,0x4E92,0x4E94,0x4EA2,0x4EC1,0x4EC0,
- 0x4EC3,0x4EC6,0x4EC7,0x4ECD,0x4ECA,0x4ECB,0x4EC4,0x5143,0x5141,0x5167,
- 0x516D,0x516E,0x516C,0x5197,0x51F6,
- /* plane 1, row 37 */
- 1 | (94 << 8), /* first, last */
- 0x5206,0x5207,0x5208,0x52FB,0x52FE,0x52FF,0x5316,0x5339,0x5348,
- 0x5347,0x5345,0x535E,0x5384,0x53CB,0x53CA,0x53CD,0x58EC,0x5929,0x592B,
- 0x592A,0x592D,0x5B54,0x5C11,0x5C24,0x5C3A,0x5C6F,0x5DF4,0x5E7B,0x5EFF,
- 0x5F14,0x5F15,0x5FC3,0x6208,0x6236,0x624B,0x624E,0x652F,0x6587,0x6597,
- 0x65A4,0x65B9,0x65E5,0x66F0,0x6708,0x6728,0x6B20,0x6B62,0x6B79,0x6BCB,
- 0x6BD4,0x6BDB,0x6C0F,0x6C34,0x706B,0x722A,0x7236,0x723B,0x7247,0x7259,
- 0x725B,0x72AC,0x738B,0x4E19,0x4E16,0x4E15,0x4E14,0x4E18,0x4E3B,0x4E4D,
- 0x4E4F,0x4E4E,0x4EE5,0x4ED8,0x4ED4,0x4ED5,0x4ED6,0x4ED7,0x4EE3,0x4EE4,
- 0x4ED9,0x4EDE,0x5145,0x5144,0x5189,0x518A,0x51AC,0x51F9,0x51FA,0x51F8,
- 0x520A,0x52A0,0x529F,0x5305,0x5306,
- /* plane 1, row 38 */
- 1 | (94 << 8), /* first, last */
- 0x5317,0x531D,0x4EDF,0x534A,0x5349,0x5361,0x5360,0x536F,0x536E,
- 0x53BB,0x53EF,0x53E4,0x53F3,0x53EC,0x53EE,0x53E9,0x53E8,0x53FC,0x53F8,
- 0x53F5,0x53EB,0x53E6,0x53EA,0x53F2,0x53F1,0x53F0,0x53E5,0x53ED,0x53FB,
- 0x56DB,0x56DA,0x5916,0x592E,0x5931,0x5974,0x5976,0x5B55,0x5B83,0x5C3C,
- 0x5DE8,0x5DE7,0x5DE6,0x5E02,0x5E03,0x5E73,0x5E7C,0x5F01,0x5F18,0x5F17,
- 0x5FC5,0x620A,0x6253,0x6254,0x6252,0x6251,0x65A5,0x65E6,0x672E,0x672C,
- 0x672A,0x672B,0x672D,0x6B63,0x6BCD,0x6C11,0x6C10,0x6C38,0x6C41,0x6C40,
- 0x6C3E,0x72AF,0x7384,0x7389,0x74DC,0x74E6,0x7518,0x751F,0x7528,0x7529,
- 0x7530,0x7531,0x7532,0x7533,0x758B,0x767D,0x76AE,0x76BF,0x76EE,0x77DB,
- 0x77E2,0x77F3,0x793A,0x79BE,0x7A74,
- /* plane 1, row 39 */
- 1 | (94 << 8), /* first, last */
- 0x7ACB,0x4E1E,0x4E1F,0x4E52,0x4E53,0x4E69,0x4E99,0x4EA4,0x4EA6,
- 0x4EA5,0x4EFF,0x4F09,0x4F19,0x4F0A,0x4F15,0x4F0D,0x4F10,0x4F11,0x4F0F,
- 0x4EF2,0x4EF6,0x4EFB,0x4EF0,0x4EF3,0x4EFD,0x4F01,0x4F0B,0x5149,0x5147,
- 0x5146,0x5148,0x5168,0x5171,0x518D,0x51B0,0x5217,0x5211,0x5212,0x520E,
- 0x5216,0x52A3,0x5308,0x5321,0x5320,0x5370,0x5371,0x5409,0x540F,0x540C,
- 0x540A,0x5410,0x5401,0x540B,0x5404,0x5411,0x540D,0x5408,0x5403,0x540E,
- 0x5406,0x5412,0x56E0,0x56DE,0x56DD,0x5733,0x5730,0x5728,0x572D,0x572C,
- 0x572F,0x5729,0x5919,0x591A,0x5937,0x5938,0x5984,0x5978,0x5983,0x597D,
- 0x5979,0x5982,0x5981,0x5B57,0x5B58,0x5B87,0x5B88,0x5B85,0x5B89,0x5BFA,
- 0x5C16,0x5C79,0x5DDE,0x5E06,0x5E76,
- /* plane 1, row 40 */
- 1 | (94 << 8), /* first, last */
- 0x5E74,0x5F0F,0x5F1B,0x5FD9,0x5FD6,0x620E,0x620C,0x620D,0x6210,
- 0x6263,0x625B,0x6258,0x6536,0x65E9,0x65E8,0x65EC,0x65ED,0x66F2,0x66F3,
- 0x6709,0x673D,0x6734,0x6731,0x6735,0x6B21,0x6B64,0x6B7B,0x6C16,0x6C5D,
- 0x6C57,0x6C59,0x6C5F,0x6C60,0x6C50,0x6C55,0x6C61,0x6C5B,0x6C4D,0x6C4E,
- 0x7070,0x725F,0x725D,0x767E,0x7AF9,0x7C73,0x7CF8,0x7F36,0x7F8A,0x7FBD,
- 0x8001,0x8003,0x800C,0x8012,0x8033,0x807F,0x8089,0x808B,0x808C,0x81E3,
- 0x81EA,0x81F3,0x81FC,0x820C,0x821B,0x821F,0x826E,0x8272,0x827E,0x866B,
- 0x8840,0x884C,0x8863,0x897F,0x9621,0x4E32,0x4EA8,0x4F4D,0x4F4F,0x4F47,
- 0x4F57,0x4F5E,0x4F34,0x4F5B,0x4F55,0x4F30,0x4F50,0x4F51,0x4F3D,0x4F3A,
- 0x4F38,0x4F43,0x4F54,0x4F3C,0x4F46,
- /* plane 1, row 41 */
- 1 | (94 << 8), /* first, last */
- 0x4F63,0x4F5C,0x4F60,0x4F2F,0x4F4E,0x4F36,0x4F59,0x4F5D,0x4F48,
- 0x4F5A,0x514C,0x514B,0x514D,0x5175,0x51B6,0x51B7,0x5225,0x5224,0x5229,
- 0x522A,0x5228,0x52AB,0x52A9,0x52AA,0x52AC,0x5323,0x5373,0x5375,0x541D,
- 0x542D,0x541E,0x543E,0x5426,0x544E,0x5427,0x5446,0x5443,0x5433,0x5448,
- 0x5442,0x541B,0x5429,0x544A,0x5439,0x543B,0x5438,0x542E,0x5435,0x5436,
- 0x5420,0x543C,0x5440,0x5431,0x542B,0x541F,0x542C,0x56EA,0x56F0,0x56E4,
- 0x56EB,0x574A,0x5751,0x5740,0x574D,0x5747,0x574E,0x573E,0x5750,0x574F,
- 0x573B,0x58EF,0x593E,0x599D,0x5992,0x59A8,0x599E,0x59A3,0x5999,0x5996,
- 0x598D,0x59A4,0x5993,0x598A,0x59A5,0x5B5D,0x5B5C,0x5B5A,0x5B5B,0x5B8C,
- 0x5B8B,0x5B8F,0x5C2C,0x5C40,0x5C41,
- /* plane 1, row 42 */
- 1 | (94 << 8), /* first, last */
- 0x5C3F,0x5C3E,0x5C90,0x5C91,0x5C94,0x5C8C,0x5DEB,0x5E0C,0x5E8F,
- 0x5E87,0x5E8A,0x5EF7,0x5F04,0x5F1F,0x5F64,0x5F62,0x5F77,0x5F79,0x5FD8,
- 0x5FCC,0x5FD7,0x5FCD,0x5FF1,0x5FEB,0x5FF8,0x5FEA,0x6212,0x6211,0x6284,
- 0x6297,0x6296,0x6280,0x6276,0x6289,0x626D,0x628A,0x627C,0x627E,0x6279,
- 0x6273,0x6292,0x626F,0x6298,0x626E,0x6295,0x6293,0x6291,0x6286,0x6539,
- 0x653B,0x6538,0x65F1,0x66F4,0x675F,0x674E,0x674F,0x6750,0x6751,0x675C,
- 0x6756,0x675E,0x6749,0x6746,0x6760,0x6753,0x6757,0x6B65,0x6BCF,0x6C42,
- 0x6C5E,0x6C99,0x6C81,0x6C88,0x6C89,0x6C85,0x6C9B,0x6C6A,0x6C7A,0x6C90,
- 0x6C70,0x6C8C,0x6C68,0x6C96,0x6C92,0x6C7D,0x6C83,0x6C72,0x6C7E,0x6C74,
- 0x6C86,0x6C76,0x6C8D,0x6C94,0x6C98,
- /* plane 1, row 43 */
- 1 | (94 << 8), /* first, last */
- 0x6C82,0x7076,0x707C,0x707D,0x7078,0x7262,0x7261,0x7260,0x72C4,
- 0x72C2,0x7396,0x752C,0x752B,0x7537,0x7538,0x7682,0x76EF,0x77E3,0x79C1,
- 0x79C0,0x79BF,0x7A76,0x7CFB,0x7F55,0x8096,0x8093,0x809D,0x8098,0x809B,
- 0x809A,0x80B2,0x826F,0x8292,0x828B,0x828D,0x898B,0x89D2,0x8A00,0x8C37,
- 0x8C46,0x8C55,0x8C9D,0x8D64,0x8D70,0x8DB3,0x8EAB,0x8ECA,0x8F9B,0x8FB0,
- 0x8FC2,0x8FC6,0x8FC5,0x8FC4,0x5DE1,0x9091,0x90A2,0x90AA,0x90A6,0x90A3,
- 0x9149,0x91C6,0x91CC,0x9632,0x962E,0x9631,0x962A,0x962C,0x4E26,0x4E56,
- 0x4E73,0x4E8B,0x4E9B,0x4E9E,0x4EAB,0x4EAC,0x4F6F,0x4F9D,0x4F8D,0x4F73,
- 0x4F7F,0x4F6C,0x4F9B,0x4F8B,0x4F86,0x4F83,0x4F70,0x4F75,0x4F88,0x4F69,
- 0x4F7B,0x4F96,0x4F7E,0x4F8F,0x4F91,
- /* plane 1, row 44 */
- 1 | (94 << 8), /* first, last */
- 0x4F7A,0x5154,0x5152,0x5155,0x5169,0x5177,0x5176,0x5178,0x51BD,
- 0x51FD,0x523B,0x5238,0x5237,0x523A,0x5230,0x522E,0x5236,0x5241,0x52BE,
- 0x52BB,0x5352,0x5354,0x5353,0x5351,0x5366,0x5377,0x5378,0x5379,0x53D6,
- 0x53D4,0x53D7,0x5473,0x5475,0x5496,0x5478,0x5495,0x5480,0x547B,0x5477,
- 0x5484,0x5492,0x5486,0x547C,0x5490,0x5471,0x5476,0x548C,0x549A,0x5462,
- 0x5468,0x548B,0x547D,0x548E,0x56FA,0x5783,0x5777,0x576A,0x5769,0x5761,
- 0x5766,0x5764,0x577C,0x591C,0x5949,0x5947,0x5948,0x5944,0x5954,0x59BE,
- 0x59BB,0x59D4,0x59B9,0x59AE,0x59D1,0x59C6,0x59D0,0x59CD,0x59CB,0x59D3,
- 0x59CA,0x59AF,0x59B3,0x59D2,0x59C5,0x5B5F,0x5B64,0x5B63,0x5B97,0x5B9A,
- 0x5B98,0x5B9C,0x5B99,0x5B9B,0x5C1A,
- /* plane 1, row 45 */
- 1 | (94 << 8), /* first, last */
- 0x5C48,0x5C45,0x5C46,0x5CB7,0x5CA1,0x5CB8,0x5CA9,0x5CAB,0x5CB1,
- 0x5CB3,0x5E18,0x5E1A,0x5E16,0x5E15,0x5E1B,0x5E11,0x5E78,0x5E9A,0x5E97,
- 0x5E9C,0x5E95,0x5E96,0x5EF6,0x5F26,0x5F27,0x5F29,0x5F80,0x5F81,0x5F7F,
- 0x5F7C,0x5FDD,0x5FE0,0x5FFD,0x5FF5,0x5FFF,0x600F,0x6014,0x602F,0x6035,
- 0x6016,0x602A,0x6015,0x6021,0x6027,0x6029,0x602B,0x601B,0x6216,0x6215,
- 0x623F,0x623E,0x6240,0x627F,0x62C9,0x62CC,0x62C4,0x62BF,0x62C2,0x62B9,
- 0x62D2,0x62DB,0x62AB,0x62D3,0x62D4,0x62CB,0x62C8,0x62A8,0x62BD,0x62BC,
- 0x62D0,0x62D9,0x62C7,0x62CD,0x62B5,0x62DA,0x62B1,0x62D8,0x62D6,0x62D7,
- 0x62C6,0x62AC,0x62CE,0x653E,0x65A7,0x65BC,0x65FA,0x6614,0x6613,0x660C,
- 0x6606,0x6602,0x660E,0x6600,0x660F,
- /* plane 1, row 46 */
- 1 | (94 << 8), /* first, last */
- 0x6615,0x660A,0x6607,0x670D,0x670B,0x676D,0x678B,0x6795,0x6771,
- 0x679C,0x6773,0x6777,0x6787,0x679D,0x6797,0x676F,0x6770,0x677F,0x6789,
- 0x677E,0x6790,0x6775,0x679A,0x6793,0x677C,0x676A,0x6772,0x6B23,0x6B66,
- 0x6B67,0x6B7F,0x6C13,0x6C1B,0x6CE3,0x6CE8,0x6CF3,0x6CB1,0x6CCC,0x6CE5,
- 0x6CB3,0x6CBD,0x6CBE,0x6CBC,0x6CE2,0x6CAB,0x6CD5,0x6CD3,0x6CB8,0x6CC4,
- 0x6CB9,0x6CC1,0x6CAE,0x6CD7,0x6CC5,0x6CF1,0x6CBF,0x6CBB,0x6CE1,0x6CDB,
- 0x6CCA,0x6CAC,0x6CEF,0x6CDC,0x6CD6,0x6CE0,0x7095,0x708E,0x7092,0x708A,
- 0x7099,0x722C,0x722D,0x7238,0x7248,0x7267,0x7269,0x72C0,0x72CE,0x72D9,
- 0x72D7,0x72D0,0x73A9,0x73A8,0x739F,0x73AB,0x73A5,0x753D,0x759D,0x7599,
- 0x759A,0x7684,0x76C2,0x76F2,0x76F4,
- /* plane 1, row 47 */
- 1 | (94 << 8), /* first, last */
- 0x77E5,0x77FD,0x793E,0x7940,0x7941,0x79C9,0x79C8,0x7A7A,0x7A79,
- 0x7AFA,0x7CFE,0x7F54,0x7F8C,0x7F8B,0x8005,0x80BA,0x80A5,0x80A2,0x80B1,
- 0x80A1,0x80AB,0x80A9,0x80B4,0x80AA,0x80AF,0x81E5,0x81FE,0x820D,0x82B3,
- 0x829D,0x8299,0x82AD,0x82BD,0x829F,0x82B9,0x82B1,0x82AC,0x82A5,0x82AF,
- 0x82B8,0x82A3,0x82B0,0x82BE,0x82B7,0x864E,0x8671,0x521D,0x8868,0x8ECB,
- 0x8FCE,0x8FD4,0x8FD1,0x90B5,0x90B8,0x90B1,0x90B6,0x91C7,0x91D1,0x9577,
- 0x9580,0x961C,0x9640,0x963F,0x963B,0x9644,0x9642,0x96B9,0x96E8,0x9752,
- 0x975E,0x4E9F,0x4EAD,0x4EAE,0x4FE1,0x4FB5,0x4FAF,0x4FBF,0x4FE0,0x4FD1,
- 0x4FCF,0x4FDD,0x4FC3,0x4FB6,0x4FD8,0x4FDF,0x4FCA,0x4FD7,0x4FAE,0x4FD0,
- 0x4FC4,0x4FC2,0x4FDA,0x4FCE,0x4FDE,
- /* plane 1, row 48 */
- 1 | (94 << 8), /* first, last */
- 0x4FB7,0x5157,0x5192,0x5191,0x51A0,0x524E,0x5243,0x524A,0x524D,
- 0x524C,0x524B,0x5247,0x52C7,0x52C9,0x52C3,0x52C1,0x530D,0x5357,0x537B,
- 0x539A,0x53DB,0x54AC,0x54C0,0x54A8,0x54CE,0x54C9,0x54B8,0x54A6,0x54B3,
- 0x54C7,0x54C2,0x54BD,0x54AA,0x54C1,0x54C4,0x54C8,0x54AF,0x54AB,0x54B1,
- 0x54BB,0x54A9,0x54A7,0x54BF,0x56FF,0x5782,0x578B,0x57A0,0x57A3,0x57A2,
- 0x57CE,0x57AE,0x5793,0x5955,0x5951,0x594F,0x594E,0x5950,0x59DC,0x59D8,
- 0x59FF,0x59E3,0x59E8,0x5A03,0x59E5,0x59EA,0x59DA,0x59E6,0x5A01,0x59FB,
- 0x5B69,0x5BA3,0x5BA6,0x5BA4,0x5BA2,0x5BA5,0x5C01,0x5C4E,0x5C4F,0x5C4D,
- 0x5C4B,0x5CD9,0x5CD2,0x5DF7,0x5E1D,0x5E25,0x5E1F,0x5E7D,0x5EA0,0x5EA6,
- 0x5EFA,0x5F08,0x5F2D,0x5F65,0x5F88,
- /* plane 1, row 49 */
- 1 | (94 << 8), /* first, last */
- 0x5F85,0x5F8A,0x5F8B,0x5F87,0x5F8C,0x5F89,0x6012,0x601D,0x6020,
- 0x6025,0x600E,0x6028,0x604D,0x6070,0x6068,0x6062,0x6046,0x6043,0x606C,
- 0x606B,0x606A,0x6064,0x6241,0x62DC,0x6316,0x6309,0x62FC,0x62ED,0x6301,
- 0x62EE,0x62FD,0x6307,0x62F1,0x62F7,0x62EF,0x62EC,0x62FE,0x62F4,0x6311,
- 0x6302,0x653F,0x6545,0x65AB,0x65BD,0x65E2,0x6625,0x662D,0x6620,0x6627,
- 0x662F,0x661F,0x6628,0x6631,0x6624,0x66F7,0x67FF,0x67D3,0x67F1,0x67D4,
- 0x67D0,0x67EC,0x67B6,0x67AF,0x67F5,0x67E9,0x67EF,0x67C4,0x67D1,0x67B4,
- 0x67DA,0x67E5,0x67B8,0x67CF,0x67DE,0x67F3,0x67B0,0x67D9,0x67E2,0x67DD,
- 0x67D2,0x6B6A,0x6B83,0x6B86,0x6BB5,0x6BD2,0x6BD7,0x6C1F,0x6CC9,0x6D0B,
- 0x6D32,0x6D2A,0x6D41,0x6D25,0x6D0C,
- /* plane 1, row 50 */
- 1 | (94 << 8), /* first, last */
- 0x6D31,0x6D1E,0x6D17,0x6D3B,0x6D3D,0x6D3E,0x6D36,0x6D1B,0x6CF5,
- 0x6D39,0x6D27,0x6D38,0x6D29,0x6D2E,0x6D35,0x6D0E,0x6D2B,0x70AB,0x70BA,
- 0x70B3,0x70AC,0x70AF,0x70AD,0x70B8,0x70AE,0x70A4,0x7230,0x7272,0x726F,
- 0x7274,0x72E9,0x72E0,0x72E1,0x73B7,0x73CA,0x73BB,0x73B2,0x73CD,0x73C0,
- 0x73B3,0x751A,0x752D,0x754F,0x754C,0x754E,0x754B,0x75AB,0x75A4,0x75A5,
- 0x75A2,0x75A3,0x7678,0x7686,0x7687,0x7688,0x76C8,0x76C6,0x76C3,0x76C5,
- 0x7701,0x76F9,0x76F8,0x7709,0x770B,0x76FE,0x76FC,0x7707,0x77DC,0x7802,
- 0x7814,0x780C,0x780D,0x7946,0x7949,0x7948,0x7947,0x79B9,0x79BA,0x79D1,
- 0x79D2,0x79CB,0x7A7F,0x7A81,0x7AFF,0x7AFD,0x7C7D,0x7D02,0x7D05,0x7D00,
- 0x7D09,0x7D07,0x7D04,0x7D06,0x7F38,
- /* plane 1, row 51 */
- 1 | (94 << 8), /* first, last */
- 0x7F8E,0x7FBF,0x8010,0x800D,0x8011,0x8036,0x80D6,0x80E5,0x80DA,
- 0x80C3,0x80C4,0x80CC,0x80E1,0x80DB,0x80CE,0x80DE,0x80E4,0x80DD,0x81F4,
- 0x8222,0x82E7,0x8303,0x8305,0x82E3,0x82DB,0x82E6,0x8304,0x82E5,0x8302,
- 0x8309,0x82D2,0x82D7,0x82F1,0x8301,0x82DC,0x82D4,0x82D1,0x82DE,0x82D3,
- 0x82DF,0x82EF,0x8306,0x8650,0x8679,0x867B,0x867A,0x884D,0x886B,0x8981,
- 0x89D4,0x8A08,0x8A02,0x8A03,0x8C9E,0x8CA0,0x8D74,0x8D73,0x8DB4,0x8ECD,
- 0x8ECC,0x8FF0,0x8FE6,0x8FE2,0x8FEA,0x8FE5,0x8FED,0x8FEB,0x8FE4,0x8FE8,
- 0x90CA,0x90CE,0x90C1,0x90C3,0x914B,0x914A,0x91CD,0x9582,0x9650,0x964B,
- 0x964C,0x964D,0x9762,0x9769,0x97CB,0x97ED,0x97F3,0x9801,0x98A8,0x98DB,
- 0x98DF,0x9996,0x9999,0x4E58,0x4EB3,
- /* plane 1, row 52 */
- 1 | (94 << 8), /* first, last */
- 0x500C,0x500D,0x5023,0x4FEF,0x5026,0x5025,0x4FF8,0x5029,0x5016,
- 0x5006,0x503C,0x501F,0x501A,0x5012,0x5011,0x4FFA,0x5000,0x5014,0x5028,
- 0x4FF1,0x5021,0x500B,0x5019,0x5018,0x4FF3,0x4FEE,0x502D,0x502A,0x4FFE,
- 0x502B,0x5009,0x517C,0x51A4,0x51A5,0x51A2,0x51CD,0x51CC,0x51C6,0x51CB,
- 0x5256,0x525C,0x5254,0x525B,0x525D,0x532A,0x537F,0x539F,0x539D,0x53DF,
- 0x54E8,0x5510,0x5501,0x5537,0x54FC,0x54E5,0x54F2,0x5506,0x54FA,0x5514,
- 0x54E9,0x54ED,0x54E1,0x5509,0x54EE,0x54EA,0x54E6,0x5527,0x5507,0x54FD,
- 0x550F,0x5703,0x5704,0x57C2,0x57D4,0x57CB,0x57C3,0x5809,0x590F,0x5957,
- 0x5958,0x595A,0x5A11,0x5A18,0x5A1C,0x5A1F,0x5A1B,0x5A13,0x59EC,0x5A20,
- 0x5A23,0x5A29,0x5A25,0x5A0C,0x5A09,
- /* plane 1, row 53 */
- 1 | (94 << 8), /* first, last */
- 0x5B6B,0x5C58,0x5BB0,0x5BB3,0x5BB6,0x5BB4,0x5BAE,0x5BB5,0x5BB9,
- 0x5BB8,0x5C04,0x5C51,0x5C55,0x5C50,0x5CED,0x5CFD,0x5CFB,0x5CEA,0x5CE8,
- 0x5CF0,0x5CF6,0x5D01,0x5CF4,0x5DEE,0x5E2D,0x5E2B,0x5EAB,0x5EAD,0x5EA7,
- 0x5F31,0x5F92,0x5F91,0x5F90,0x6059,0x6063,0x6065,0x6050,0x6055,0x606D,
- 0x6069,0x606F,0x6084,0x609F,0x609A,0x608D,0x6094,0x608C,0x6085,0x6096,
- 0x6247,0x62F3,0x6308,0x62FF,0x634E,0x633E,0x632F,0x6355,0x6342,0x6346,
- 0x634F,0x6349,0x633A,0x6350,0x633D,0x632A,0x632B,0x6328,0x634D,0x634C,
- 0x6548,0x6549,0x6599,0x65C1,0x65C5,0x6642,0x6649,0x664F,0x6643,0x6652,
- 0x664C,0x6645,0x6641,0x66F8,0x6714,0x6715,0x6717,0x6821,0x6838,0x6848,
- 0x6846,0x6853,0x6839,0x6842,0x6854,
- /* plane 1, row 54 */
- 1 | (94 << 8), /* first, last */
- 0x6829,0x68B3,0x6817,0x684C,0x6851,0x683D,0x67F4,0x6850,0x6840,
- 0x683C,0x6843,0x682A,0x6845,0x6813,0x6818,0x6841,0x6B8A,0x6B89,0x6BB7,
- 0x6C23,0x6C27,0x6C28,0x6C26,0x6C24,0x6CF0,0x6D6A,0x6D95,0x6D88,0x6D87,
- 0x6D66,0x6D78,0x6D77,0x6D59,0x6D93,0x6D6C,0x6D89,0x6D6E,0x6D5A,0x6D74,
- 0x6D69,0x6D8C,0x6D8A,0x6D79,0x6D85,0x6D65,0x6D94,0x70CA,0x70D8,0x70E4,
- 0x70D9,0x70C8,0x70CF,0x7239,0x7279,0x72FC,0x72F9,0x72FD,0x72F8,0x72F7,
- 0x7386,0x73ED,0x7409,0x73EE,0x73E0,0x73EA,0x73DE,0x7554,0x755D,0x755C,
- 0x755A,0x7559,0x75BE,0x75C5,0x75C7,0x75B2,0x75B3,0x75BD,0x75BC,0x75B9,
- 0x75C2,0x75B8,0x768B,0x76B0,0x76CA,0x76CD,0x76CE,0x7729,0x771F,0x7720,
- 0x7728,0x77E9,0x7830,0x7827,0x7838,
- /* plane 1, row 55 */
- 1 | (94 << 8), /* first, last */
- 0x781D,0x7834,0x7837,0x7825,0x782D,0x7820,0x781F,0x7832,0x7955,
- 0x7950,0x7960,0x795F,0x7956,0x795E,0x795D,0x7957,0x795A,0x79E4,0x79E3,
- 0x79E7,0x79DF,0x79E6,0x79E9,0x79D8,0x7A84,0x7A88,0x7AD9,0x7B06,0x7B11,
- 0x7C89,0x7D21,0x7D17,0x7D0B,0x7D0A,0x7D20,0x7D22,0x7D14,0x7D10,0x7D15,
- 0x7D1A,0x7D1C,0x7D0D,0x7D19,0x7D1B,0x7F3A,0x7F5F,0x7F94,0x7FC5,0x7FC1,
- 0x8006,0x8004,0x8018,0x8015,0x8019,0x8017,0x803D,0x803F,0x80F1,0x8102,
- 0x80F0,0x8105,0x80ED,0x80F4,0x8106,0x80F8,0x80F3,0x8108,0x80FD,0x810A,
- 0x80FC,0x80EF,0x81ED,0x81EC,0x8200,0x8210,0x822A,0x822B,0x8228,0x822C,
- 0x82BB,0x832B,0x8352,0x8354,0x834A,0x8338,0x8350,0x8349,0x8335,0x8334,
- 0x834F,0x8332,0x8339,0x8336,0x8317,
- /* plane 1, row 56 */
- 1 | (94 << 8), /* first, last */
- 0x8340,0x8331,0x8328,0x8343,0x8654,0x868A,0x86AA,0x8693,0x86A4,
- 0x86A9,0x868C,0x86A3,0x869C,0x8870,0x8877,0x8881,0x8882,0x887D,0x8879,
- 0x8A18,0x8A10,0x8A0E,0x8A0C,0x8A15,0x8A0A,0x8A17,0x8A13,0x8A16,0x8A0F,
- 0x8A11,0x8C48,0x8C7A,0x8C79,0x8CA1,0x8CA2,0x8D77,0x8EAC,0x8ED2,0x8ED4,
- 0x8ECF,0x8FB1,0x9001,0x9006,0x8FF7,0x9000,0x8FFA,0x8FF4,0x9003,0x8FFD,
- 0x9005,0x8FF8,0x9095,0x90E1,0x90DD,0x90E2,0x9152,0x914D,0x914C,0x91D8,
- 0x91DD,0x91D7,0x91DC,0x91D9,0x9583,0x9662,0x9663,0x9661,0x965B,0x965D,
- 0x9664,0x9658,0x965E,0x96BB,0x98E2,0x99AC,0x9AA8,0x9AD8,0x9B25,0x9B32,
- 0x9B3C,0x4E7E,0x507A,0x507D,0x505C,0x5047,0x5043,0x504C,0x505A,0x5049,
- 0x5065,0x5076,0x504E,0x5055,0x5075,
- /* plane 1, row 57 */
- 1 | (94 << 8), /* first, last */
- 0x5074,0x5077,0x504F,0x500F,0x506F,0x506D,0x515C,0x5195,0x51F0,
- 0x526A,0x526F,0x52D2,0x52D9,0x52D8,0x52D5,0x5310,0x530F,0x5319,0x533F,
- 0x5340,0x533E,0x53C3,0x66FC,0x5546,0x556A,0x5566,0x5544,0x555E,0x5561,
- 0x5543,0x554A,0x5531,0x5556,0x554F,0x5555,0x552F,0x5564,0x5538,0x552E,
- 0x555C,0x552C,0x5563,0x5533,0x5541,0x5557,0x5708,0x570B,0x5709,0x57DF,
- 0x5805,0x580A,0x5806,0x57E0,0x57E4,0x57FA,0x5802,0x5835,0x57F7,0x57F9,
- 0x5920,0x5962,0x5A36,0x5A41,0x5A49,0x5A66,0x5A6A,0x5A40,0x5A3C,0x5A62,
- 0x5A5A,0x5A46,0x5A4A,0x5B70,0x5BC7,0x5BC5,0x5BC4,0x5BC2,0x5BBF,0x5BC6,
- 0x5C09,0x5C08,0x5C07,0x5C60,0x5C5C,0x5C5D,0x5D07,0x5D06,0x5D0E,0x5D1B,
- 0x5D16,0x5D22,0x5D11,0x5D29,0x5D14,
- /* plane 1, row 58 */
- 1 | (94 << 8), /* first, last */
- 0x5D19,0x5D24,0x5D27,0x5D17,0x5DE2,0x5E38,0x5E36,0x5E33,0x5E37,
- 0x5EB7,0x5EB8,0x5EB6,0x5EB5,0x5EBE,0x5F35,0x5F37,0x5F57,0x5F6C,0x5F69,
- 0x5F6B,0x5F97,0x5F99,0x5F9E,0x5F98,0x5FA1,0x5FA0,0x5F9C,0x607F,0x60A3,
- 0x6089,0x60A0,0x60A8,0x60CB,0x60B4,0x60E6,0x60BD,0x60C5,0x60BB,0x60B5,
- 0x60DC,0x60BC,0x60D8,0x60D5,0x60C6,0x60DF,0x60B8,0x60DA,0x60C7,0x621A,
- 0x621B,0x6248,0x63A0,0x63A7,0x6372,0x6396,0x63A2,0x63A5,0x6377,0x6367,
- 0x6398,0x63AA,0x6371,0x63A9,0x6389,0x6383,0x639B,0x636B,0x63A8,0x6384,
- 0x6388,0x6399,0x63A1,0x63AC,0x6392,0x638F,0x6380,0x637B,0x6369,0x6368,
- 0x637A,0x655D,0x6556,0x6551,0x6559,0x6557,0x555F,0x654F,0x6558,0x6555,
- 0x6554,0x659C,0x659B,0x65AC,0x65CF,
- /* plane 1, row 59 */
- 1 | (94 << 8), /* first, last */
- 0x65CB,0x65CC,0x65CE,0x665D,0x665A,0x6664,0x6668,0x6666,0x665E,
- 0x66F9,0x52D7,0x671B,0x6881,0x68AF,0x68A2,0x6893,0x68B5,0x687F,0x6876,
- 0x68B1,0x68A7,0x6897,0x68B0,0x6883,0x68C4,0x68AD,0x6886,0x6885,0x6894,
- 0x689D,0x68A8,0x689F,0x68A1,0x6882,0x6B32,0x6BBA,0x6BEB,0x6BEC,0x6C2B,
- 0x6D8E,0x6DBC,0x6DF3,0x6DD9,0x6DB2,0x6DE1,0x6DCC,0x6DE4,0x6DFB,0x6DFA,
- 0x6E05,0x6DC7,0x6DCB,0x6DAF,0x6DD1,0x6DAE,0x6DDE,0x6DF9,0x6DB8,0x6DF7,
- 0x6DF5,0x6DC5,0x6DD2,0x6E1A,0x6DB5,0x6DDA,0x6DEB,0x6DD8,0x6DEA,0x6DF1,
- 0x6DEE,0x6DE8,0x6DC6,0x6DC4,0x6DAA,0x6DEC,0x6DBF,0x6DE6,0x70F9,0x7109,
- 0x710A,0x70FD,0x70EF,0x723D,0x727D,0x7281,0x731C,0x731B,0x7316,0x7313,
- 0x7319,0x7387,0x7405,0x740A,0x7403,
- /* plane 1, row 60 */
- 1 | (94 << 8), /* first, last */
- 0x7406,0x73FE,0x740D,0x74E0,0x74F6,0x74F7,0x751C,0x7522,0x7565,
- 0x7566,0x7562,0x7570,0x758F,0x75D4,0x75D5,0x75B5,0x75CA,0x75CD,0x768E,
- 0x76D4,0x76D2,0x76DB,0x7737,0x773E,0x773C,0x7736,0x7738,0x773A,0x786B,
- 0x7843,0x784E,0x7965,0x7968,0x796D,0x79FB,0x7A92,0x7A95,0x7B20,0x7B28,
- 0x7B1B,0x7B2C,0x7B26,0x7B19,0x7B1E,0x7B2E,0x7C92,0x7C97,0x7C95,0x7D46,
- 0x7D43,0x7D71,0x7D2E,0x7D39,0x7D3C,0x7D40,0x7D30,0x7D33,0x7D44,0x7D2F,
- 0x7D42,0x7D32,0x7D31,0x7F3D,0x7F9E,0x7F9A,0x7FCC,0x7FCE,0x7FD2,0x801C,
- 0x804A,0x8046,0x812F,0x8116,0x8123,0x812B,0x8129,0x8130,0x8124,0x8202,
- 0x8235,0x8237,0x8236,0x8239,0x838E,0x839E,0x8398,0x8378,0x83A2,0x8396,
- 0x83BD,0x83AB,0x8392,0x838A,0x8393,
- /* plane 1, row 61 */
- 1 | (94 << 8), /* first, last */
- 0x8389,0x83A0,0x8377,0x837B,0x837C,0x8386,0x83A7,0x8655,0x5F6A,
- 0x86C7,0x86C0,0x86B6,0x86C4,0x86B5,0x86C6,0x86CB,0x86B1,0x86AF,0x86C9,
- 0x8853,0x889E,0x8888,0x88AB,0x8892,0x8896,0x888D,0x888B,0x8993,0x898F,
- 0x8A2A,0x8A1D,0x8A23,0x8A25,0x8A31,0x8A2D,0x8A1F,0x8A1B,0x8A22,0x8C49,
- 0x8C5A,0x8CA9,0x8CAC,0x8CAB,0x8CA8,0x8CAA,0x8CA7,0x8D67,0x8D66,0x8DBE,
- 0x8DBA,0x8EDB,0x8EDF,0x9019,0x900D,0x901A,0x9017,0x9023,0x901F,0x901D,
- 0x9010,0x9015,0x901E,0x9020,0x900F,0x9022,0x9016,0x901B,0x9014,0x90E8,
- 0x90ED,0x90FD,0x9157,0x91CE,0x91F5,0x91E6,0x91E3,0x91E7,0x91ED,0x91E9,
- 0x9589,0x966A,0x9675,0x9673,0x9678,0x9670,0x9674,0x9676,0x9677,0x966C,
- 0x96C0,0x96EA,0x96E9,0x7AE0,0x7ADF,
- /* plane 1, row 62 */
- 1 | (94 << 8), /* first, last */
- 0x9802,0x9803,0x9B5A,0x9CE5,0x9E75,0x9E7F,0x9EA5,0x9EBB,0x50A2,
- 0x508D,0x5085,0x5099,0x5091,0x5080,0x5096,0x5098,0x509A,0x6700,0x51F1,
- 0x5272,0x5274,0x5275,0x5269,0x52DE,0x52DD,0x52DB,0x535A,0x53A5,0x557B,
- 0x5580,0x55A7,0x557C,0x558A,0x559D,0x5598,0x5582,0x559C,0x55AA,0x5594,
- 0x5587,0x558B,0x5583,0x55B3,0x55AE,0x559F,0x553E,0x55B2,0x559A,0x55BB,
- 0x55AC,0x55B1,0x557E,0x5589,0x55AB,0x5599,0x570D,0x582F,0x582A,0x5834,
- 0x5824,0x5830,0x5831,0x5821,0x581D,0x5820,0x58F9,0x58FA,0x5960,0x5A77,
- 0x5A9A,0x5A7F,0x5A92,0x5A9B,0x5AA7,0x5B73,0x5B71,0x5BD2,0x5BCC,0x5BD3,
- 0x5BD0,0x5C0A,0x5C0B,0x5C31,0x5D4C,0x5D50,0x5D34,0x5D47,0x5DFD,0x5E45,
- 0x5E3D,0x5E40,0x5E43,0x5E7E,0x5ECA,
- /* plane 1, row 63 */
- 1 | (94 << 8), /* first, last */
- 0x5EC1,0x5EC2,0x5EC4,0x5F3C,0x5F6D,0x5FA9,0x5FAA,0x5FA8,0x60D1,
- 0x60E1,0x60B2,0x60B6,0x60E0,0x611C,0x6123,0x60FA,0x6115,0x60F0,0x60FB,
- 0x60F4,0x6168,0x60F1,0x610E,0x60F6,0x6109,0x6100,0x6112,0x621F,0x6249,
- 0x63A3,0x638C,0x63CF,0x63C0,0x63E9,0x63C9,0x63C6,0x63CD,0x63D2,0x63E3,
- 0x63D0,0x63E1,0x63D6,0x63ED,0x63EE,0x6376,0x63F4,0x63EA,0x63DB,0x6452,
- 0x63DA,0x63F9,0x655E,0x6566,0x6562,0x6563,0x6591,0x6590,0x65AF,0x666E,
- 0x6670,0x6674,0x6676,0x666F,0x6691,0x667A,0x667E,0x6677,0x66FE,0x66FF,
- 0x671F,0x671D,0x68FA,0x68D5,0x68E0,0x68D8,0x68D7,0x6905,0x68DF,0x68F5,
- 0x68EE,0x68E7,0x68F9,0x68D2,0x68F2,0x68E3,0x68CB,0x68CD,0x690D,0x6912,
- 0x690E,0x68C9,0x68DA,0x696E,0x68FB,
- /* plane 1, row 64 */
- 1 | (94 << 8), /* first, last */
- 0x6B3E,0x6B3A,0x6B3D,0x6B98,0x6B96,0x6BBC,0x6BEF,0x6C2E,0x6C2F,
- 0x6C2C,0x6E2F,0x6E38,0x6E54,0x6E21,0x6E32,0x6E67,0x6E4A,0x6E20,0x6E25,
- 0x6E23,0x6E1B,0x6E5B,0x6E58,0x6E24,0x6E56,0x6E6E,0x6E2D,0x6E26,0x6E6F,
- 0x6E34,0x6E4D,0x6E3A,0x6E2C,0x6E43,0x6E1D,0x6E3E,0x6ECB,0x6E89,0x6E19,
- 0x6E4E,0x6E63,0x6E44,0x6E72,0x6E69,0x6E5F,0x7119,0x711A,0x7126,0x7130,
- 0x7121,0x7136,0x716E,0x711C,0x724C,0x7284,0x7280,0x7336,0x7325,0x7334,
- 0x7329,0x743A,0x742A,0x7433,0x7422,0x7425,0x7435,0x7436,0x7434,0x742F,
- 0x741B,0x7426,0x7428,0x7525,0x7526,0x756B,0x756A,0x75E2,0x75DB,0x75E3,
- 0x75D9,0x75D8,0x75DE,0x75E0,0x767B,0x767C,0x7696,0x7693,0x76B4,0x76DC,
- 0x774F,0x77ED,0x785D,0x786C,0x786F,
- /* plane 1, row 65 */
- 1 | (94 << 8), /* first, last */
- 0x7A0D,0x7A08,0x7A0B,0x7A05,0x7A00,0x7A98,0x7A97,0x7A96,0x7AE5,
- 0x7AE3,0x7B49,0x7B56,0x7B46,0x7B50,0x7B52,0x7B54,0x7B4D,0x7B4B,0x7B4F,
- 0x7B51,0x7C9F,0x7CA5,0x7D5E,0x7D50,0x7D68,0x7D55,0x7D2B,0x7D6E,0x7D72,
- 0x7D61,0x7D66,0x7D62,0x7D70,0x7D73,0x5584,0x7FD4,0x7FD5,0x800B,0x8052,
- 0x8085,0x8155,0x8154,0x814B,0x8151,0x814E,0x8139,0x8146,0x813E,0x814C,
- 0x8153,0x8174,0x8212,0x821C,0x83E9,0x8403,0x83F8,0x840D,0x83E0,0x83C5,
- 0x840B,0x83C1,0x83EF,0x83F1,0x83F4,0x8457,0x840A,0x83F0,0x840C,0x83CC,
- 0x83FD,0x83F2,0x83CA,0x8438,0x840E,0x8404,0x83DC,0x8407,0x83D4,0x83DF,
- 0x865B,0x86DF,0x86D9,0x86ED,0x86D4,0x86DB,0x86E4,0x86D0,0x86DE,0x8857,
- 0x88C1,0x88C2,0x88B1,0x8983,0x8996,
- /* plane 1, row 66 */
- 1 | (94 << 8), /* first, last */
- 0x8A3B,0x8A60,0x8A55,0x8A5E,0x8A3C,0x8A41,0x8A54,0x8A5B,0x8A50,
- 0x8A46,0x8A34,0x8A3A,0x8A36,0x8A56,0x8C61,0x8C82,0x8CAF,0x8CBC,0x8CB3,
- 0x8CBD,0x8CC1,0x8CBB,0x8CC0,0x8CB4,0x8CB7,0x8CB6,0x8CBF,0x8CB8,0x8D8A,
- 0x8D85,0x8D81,0x8DCE,0x8DDD,0x8DCB,0x8DDA,0x8DD1,0x8DCC,0x8DDB,0x8DC6,
- 0x8EFB,0x8EF8,0x8EFC,0x8F9C,0x902E,0x9035,0x9031,0x9038,0x9032,0x9036,
- 0x9102,0x90F5,0x9109,0x90FE,0x9163,0x9165,0x91CF,0x9214,0x9215,0x9223,
- 0x9209,0x921E,0x920D,0x9210,0x9207,0x9211,0x9594,0x958F,0x958B,0x9591,
- 0x9593,0x9592,0x958E,0x968A,0x968E,0x968B,0x967D,0x9685,0x9686,0x968D,
- 0x9672,0x9684,0x96C1,0x96C5,0x96C4,0x96C6,0x96C7,0x96EF,0x96F2,0x97CC,
- 0x9805,0x9806,0x9808,0x98E7,0x98EA,
- /* plane 1, row 67 */
- 1 | (94 << 8), /* first, last */
- 0x98EF,0x98E9,0x98F2,0x98ED,0x99AE,0x99AD,0x9EC3,0x9ECD,0x9ED1,
- 0x4E82,0x50AD,0x50B5,0x50B2,0x50B3,0x50C5,0x50BE,0x50AC,0x50B7,0x50BB,
- 0x50AF,0x50C7,0x527F,0x5277,0x527D,0x52DF,0x52E6,0x52E4,0x52E2,0x52E3,
- 0x532F,0x55DF,0x55E8,0x55D3,0x55E6,0x55CE,0x55DC,0x55C7,0x55D1,0x55E3,
- 0x55E4,0x55EF,0x55DA,0x55E1,0x55C5,0x55C6,0x55E5,0x55C9,0x5712,0x5713,
- 0x585E,0x5851,0x5858,0x5857,0x585A,0x5854,0x586B,0x584C,0x586D,0x584A,
- 0x5862,0x5852,0x584B,0x5967,0x5AC1,0x5AC9,0x5ACC,0x5ABE,0x5ABD,0x5ABC,
- 0x5AB3,0x5AC2,0x5AB2,0x5D69,0x5D6F,0x5E4C,0x5E79,0x5EC9,0x5EC8,0x5F12,
- 0x5F59,0x5FAC,0x5FAE,0x611A,0x610F,0x6148,0x611F,0x60F3,0x611B,0x60F9,
- 0x6101,0x6108,0x614E,0x614C,0x6144,
- /* plane 1, row 68 */
- 1 | (94 << 8), /* first, last */
- 0x614D,0x613E,0x6134,0x6127,0x610D,0x6106,0x6137,0x6221,0x6222,
- 0x6413,0x643E,0x641E,0x642A,0x642D,0x643D,0x642C,0x640F,0x641C,0x6414,
- 0x640D,0x6436,0x6416,0x6417,0x6406,0x656C,0x659F,0x65B0,0x6697,0x6689,
- 0x6687,0x6688,0x6696,0x6684,0x6698,0x668D,0x6703,0x6994,0x696D,0x695A,
- 0x6977,0x6960,0x6954,0x6975,0x6930,0x6982,0x694A,0x6968,0x696B,0x695E,
- 0x6953,0x6979,0x6986,0x695D,0x6963,0x695B,0x6B47,0x6B72,0x6BC0,0x6BBF,
- 0x6BD3,0x6BFD,0x6EA2,0x6EAF,0x6ED3,0x6EB6,0x6EC2,0x6E90,0x6E9D,0x6EC7,
- 0x6EC5,0x6EA5,0x6E98,0x6EBC,0x6EBA,0x6EAB,0x6ED1,0x6E96,0x6E9C,0x6EC4,
- 0x6ED4,0x6EAA,0x6EA7,0x6EB4,0x714E,0x7159,0x7169,0x7164,0x7149,0x7167,
- 0x715C,0x716C,0x7166,0x714C,0x7165,
- /* plane 1, row 69 */
- 1 | (94 << 8), /* first, last */
- 0x715E,0x7146,0x7168,0x7156,0x723A,0x7252,0x7337,0x7345,0x733F,
- 0x733E,0x746F,0x745A,0x7455,0x745F,0x745E,0x7441,0x743F,0x7459,0x745B,
- 0x745C,0x7576,0x7578,0x7600,0x75F0,0x7601,0x75F2,0x75F1,0x75FA,0x75FF,
- 0x75F4,0x75F3,0x76DE,0x76DF,0x775B,0x776B,0x7766,0x775E,0x7763,0x7779,
- 0x776A,0x776C,0x775C,0x7765,0x7768,0x7762,0x77EE,0x788E,0x78B0,0x7897,
- 0x7898,0x788C,0x7889,0x787C,0x7891,0x7893,0x787F,0x797A,0x797F,0x7981,
- 0x842C,0x79BD,0x7A1C,0x7A1A,0x7A20,0x7A14,0x7A1F,0x7A1E,0x7A9F,0x7AA0,
- 0x7B77,0x7BC0,0x7B60,0x7B6E,0x7B67,0x7CB1,0x7CB3,0x7CB5,0x7D93,0x7D79,
- 0x7D91,0x7D81,0x7D8F,0x7D5B,0x7F6E,0x7F69,0x7F6A,0x7F72,0x7FA9,0x7FA8,
- 0x7FA4,0x8056,0x8058,0x8086,0x8084,
- /* plane 1, row 70 */
- 1 | (94 << 8), /* first, last */
- 0x8171,0x8170,0x8178,0x8165,0x816E,0x8173,0x816B,0x8179,0x817A,
- 0x8166,0x8205,0x8247,0x8482,0x8477,0x843D,0x8431,0x8475,0x8466,0x846B,
- 0x8449,0x846C,0x845B,0x843C,0x8435,0x8461,0x8463,0x8469,0x846D,0x8446,
- 0x865E,0x865C,0x865F,0x86F9,0x8713,0x8708,0x8707,0x8700,0x86FE,0x86FB,
- 0x8702,0x8703,0x8706,0x870A,0x8859,0x88DF,0x88D4,0x88D9,0x88DC,0x88D8,
- 0x88DD,0x88E1,0x88CA,0x88D5,0x88D2,0x899C,0x89E3,0x8A6B,0x8A72,0x8A73,
- 0x8A66,0x8A69,0x8A70,0x8A87,0x8A7C,0x8A63,0x8AA0,0x8A71,0x8A85,0x8A6D,
- 0x8A62,0x8A6E,0x8A6C,0x8A79,0x8A7B,0x8A3E,0x8A68,0x8C62,0x8C8A,0x8C89,
- 0x8CCA,0x8CC7,0x8CC8,0x8CC4,0x8CB2,0x8CC3,0x8CC2,0x8CC5,0x8DE1,0x8DDF,
- 0x8DE8,0x8DEF,0x8DF3,0x8DFA,0x8DEA,
- /* plane 1, row 71 */
- 1 | (94 << 8), /* first, last */
- 0x8DE4,0x8DE6,0x8EB2,0x8F03,0x8F09,0x8EFE,0x8F0A,0x8F9F,0x8FB2,
- 0x904B,0x904A,0x9053,0x9042,0x9054,0x903C,0x9055,0x9050,0x9047,0x904F,
- 0x904E,0x904D,0x9051,0x903E,0x9041,0x9112,0x9117,0x916C,0x916A,0x9169,
- 0x91C9,0x9237,0x9257,0x9238,0x923D,0x9240,0x923E,0x925B,0x924B,0x9264,
- 0x9251,0x9234,0x9249,0x924D,0x9245,0x9239,0x923F,0x925A,0x9598,0x9698,
- 0x9694,0x9695,0x96CD,0x96CB,0x96C9,0x96CA,0x96F7,0x96FB,0x96F9,0x96F6,
- 0x9756,0x9774,0x9776,0x9810,0x9811,0x9813,0x980A,0x9812,0x980C,0x98FC,
- 0x98F4,0x98FD,0x98FE,0x99B3,0x99B1,0x99B4,0x9AE1,0x9CE9,0x9E82,0x9F0E,
- 0x9F13,0x9F20,0x50E7,0x50EE,0x50E5,0x50D6,0x50ED,0x50DA,0x50D5,0x50CF,
- 0x50D1,0x50F1,0x50CE,0x50E9,0x5162,
- /* plane 1, row 72 */
- 1 | (94 << 8), /* first, last */
- 0x51F3,0x5283,0x5282,0x5331,0x53AD,0x55FE,0x5600,0x561B,0x5617,
- 0x55FD,0x5614,0x5606,0x5609,0x560D,0x560E,0x55F7,0x5616,0x561F,0x5608,
- 0x5610,0x55F6,0x5718,0x5716,0x5875,0x587E,0x5883,0x5893,0x588A,0x5879,
- 0x5885,0x587D,0x58FD,0x5925,0x5922,0x5924,0x596A,0x5969,0x5AE1,0x5AE6,
- 0x5AE9,0x5AD7,0x5AD6,0x5AD8,0x5AE3,0x5B75,0x5BDE,0x5BE7,0x5BE1,0x5BE5,
- 0x5BE6,0x5BE8,0x5BE2,0x5BE4,0x5BDF,0x5C0D,0x5C62,0x5D84,0x5D87,0x5E5B,
- 0x5E63,0x5E55,0x5E57,0x5E54,0x5ED3,0x5ED6,0x5F0A,0x5F46,0x5F70,0x5FB9,
- 0x6147,0x613F,0x614B,0x6177,0x6162,0x6163,0x615F,0x615A,0x6158,0x6175,
- 0x622A,0x6487,0x6458,0x6454,0x64A4,0x6478,0x645F,0x647A,0x6451,0x6467,
- 0x6434,0x646D,0x647B,0x6572,0x65A1,
- /* plane 1, row 73 */
- 1 | (94 << 8), /* first, last */
- 0x65D7,0x65D6,0x66A2,0x66A8,0x669D,0x699C,0x69A8,0x6995,0x69C1,
- 0x69AE,0x69D3,0x69CB,0x699B,0x69B7,0x69BB,0x69AB,0x69B4,0x69D0,0x69CD,
- 0x69AD,0x69CC,0x69A6,0x69C3,0x69A3,0x6B49,0x6B4C,0x6C33,0x6F33,0x6F14,
- 0x6EFE,0x6F13,0x6EF4,0x6F29,0x6F3E,0x6F20,0x6F2C,0x6F0F,0x6F02,0x6F22,
- 0x6EFF,0x6EEF,0x6F06,0x6F31,0x6F38,0x6F32,0x6F23,0x6F15,0x6F2B,0x6F2F,
- 0x6F88,0x6F2A,0x6EEC,0x6F01,0x6EF2,0x6ECC,0x6EF7,0x7194,0x7199,0x717D,
- 0x718A,0x7184,0x7192,0x723E,0x7292,0x7296,0x7344,0x7350,0x7464,0x7463,
- 0x746A,0x7470,0x746D,0x7504,0x7591,0x7627,0x760D,0x760B,0x7609,0x7613,
- 0x76E1,0x76E3,0x7784,0x777D,0x777F,0x7761,0x78C1,0x789F,0x78A7,0x78B3,
- 0x78A9,0x78A3,0x798E,0x798F,0x798D,
- /* plane 1, row 74 */
- 1 | (94 << 8), /* first, last */
- 0x7A2E,0x7A31,0x7AAA,0x7AA9,0x7AED,0x7AEF,0x7BA1,0x7B95,0x7B8B,
- 0x7B75,0x7B97,0x7B9D,0x7B94,0x7B8F,0x7BB8,0x7B87,0x7B84,0x7CB9,0x7CBD,
- 0x7CBE,0x7DBB,0x7DB0,0x7D9C,0x7DBD,0x7DBE,0x7DA0,0x7DCA,0x7DB4,0x7DB2,
- 0x7DB1,0x7DBA,0x7DA2,0x7DBF,0x7DB5,0x7DB8,0x7DAD,0x7DD2,0x7DC7,0x7DAC,
- 0x7F70,0x7FE0,0x7FE1,0x7FDF,0x805E,0x805A,0x8087,0x8150,0x8180,0x818F,
- 0x8188,0x818A,0x817F,0x8182,0x81E7,0x81FA,0x8207,0x8214,0x821E,0x824B,
- 0x84C9,0x84BF,0x84C6,0x84C4,0x8499,0x849E,0x84B2,0x849C,0x84CB,0x84B8,
- 0x84C0,0x84D3,0x8490,0x84BC,0x84D1,0x84CA,0x873F,0x871C,0x873B,0x8722,
- 0x8725,0x8734,0x8718,0x8755,0x8737,0x8729,0x88F3,0x8902,0x88F4,0x88F9,
- 0x88F8,0x88FD,0x88E8,0x891A,0x88EF,
- /* plane 1, row 75 */
- 1 | (94 << 8), /* first, last */
- 0x8AA6,0x8A8C,0x8A9E,0x8AA3,0x8A8D,0x8AA1,0x8A93,0x8AA4,0x8AAA,
- 0x8AA5,0x8AA8,0x8A98,0x8A91,0x8A9A,0x8AA7,0x8C6A,0x8C8D,0x8C8C,0x8CD3,
- 0x8CD1,0x8CD2,0x8D6B,0x8D99,0x8D95,0x8DFC,0x8F14,0x8F12,0x8F15,0x8F13,
- 0x8FA3,0x9060,0x9058,0x905C,0x9063,0x9059,0x905E,0x9062,0x905D,0x905B,
- 0x9119,0x9118,0x911E,0x9175,0x9178,0x9177,0x9174,0x9278,0x92AC,0x9280,
- 0x9285,0x9298,0x9296,0x927B,0x9293,0x929C,0x92A8,0x927C,0x9291,0x95A1,
- 0x95A8,0x95A9,0x95A3,0x95A5,0x95A4,0x9699,0x969C,0x969B,0x96CC,0x96D2,
- 0x9700,0x977C,0x9785,0x97F6,0x9817,0x9818,0x98AF,0x98B1,0x9903,0x9905,
- 0x990C,0x9909,0x99C1,0x9AAF,0x9AB0,0x9AE6,0x9B41,0x9B42,0x9CF4,0x9CF6,
- 0x9CF3,0x9EBC,0x9F3B,0x9F4A,0x5104,
- /* plane 1, row 76 */
- 1 | (94 << 8), /* first, last */
- 0x5100,0x50FB,0x50F5,0x50F9,0x5102,0x5108,0x5109,0x5105,0x51DC,
- 0x5287,0x5288,0x5289,0x528D,0x528A,0x52F0,0x53B2,0x562E,0x563B,0x5639,
- 0x5632,0x563F,0x5634,0x5629,0x5653,0x564E,0x5657,0x5674,0x5636,0x562F,
- 0x5630,0x5880,0x589F,0x589E,0x58B3,0x589C,0x58AE,0x58A9,0x58A6,0x596D,
- 0x5B09,0x5AFB,0x5B0B,0x5AF5,0x5B0C,0x5B08,0x5BEE,0x5BEC,0x5BE9,0x5BEB,
- 0x5C64,0x5C65,0x5D9D,0x5D94,0x5E62,0x5E5F,0x5E61,0x5EE2,0x5EDA,0x5EDF,
- 0x5EDD,0x5EE3,0x5EE0,0x5F48,0x5F71,0x5FB7,0x5FB5,0x6176,0x6167,0x616E,
- 0x615D,0x6155,0x6182,0x617C,0x6170,0x616B,0x617E,0x61A7,0x6190,0x61AB,
- 0x618E,0x61AC,0x619A,0x61A4,0x6194,0x61AE,0x622E,0x6469,0x646F,0x6479,
- 0x649E,0x64B2,0x6488,0x6490,0x64B0,
- /* plane 1, row 77 */
- 1 | (94 << 8), /* first, last */
- 0x64A5,0x6493,0x6495,0x64A9,0x6492,0x64AE,0x64AD,0x64AB,0x649A,
- 0x64AC,0x6499,0x64A2,0x64B3,0x6575,0x6577,0x6578,0x66AE,0x66AB,0x66B4,
- 0x66B1,0x6A23,0x6A1F,0x69E8,0x6A01,0x6A1E,0x6A19,0x69FD,0x6A21,0x6A13,
- 0x6A0A,0x69F3,0x6A02,0x6A05,0x69ED,0x6A11,0x6B50,0x6B4E,0x6BA4,0x6BC5,
- 0x6BC6,0x6F3F,0x6F7C,0x6F84,0x6F51,0x6F66,0x6F54,0x6F86,0x6F6D,0x6F5B,
- 0x6F78,0x6F6E,0x6F8E,0x6F7A,0x6F70,0x6F64,0x6F97,0x6F58,0x6ED5,0x6F6F,
- 0x6F60,0x6F5F,0x719F,0x71AC,0x71B1,0x71A8,0x7256,0x729B,0x734E,0x7357,
- 0x7469,0x748B,0x7483,0x747E,0x7480,0x757F,0x7620,0x7629,0x761F,0x7624,
- 0x7626,0x7621,0x7622,0x769A,0x76BA,0x76E4,0x778E,0x7787,0x778C,0x7791,
- 0x778B,0x78CB,0x78C5,0x78BA,0x78CA,
- /* plane 1, row 78 */
- 1 | (94 << 8), /* first, last */
- 0x78BE,0x78D5,0x78BC,0x78D0,0x7A3F,0x7A3C,0x7A40,0x7A3D,0x7A37,
- 0x7A3B,0x7AAF,0x7AAE,0x7BAD,0x7BB1,0x7BC4,0x7BB4,0x7BC6,0x7BC7,0x7BC1,
- 0x7BA0,0x7BCC,0x7CCA,0x7DE0,0x7DF4,0x7DEF,0x7DFB,0x7DD8,0x7DEC,0x7DDD,
- 0x7DE8,0x7DE3,0x7DDA,0x7DDE,0x7DE9,0x7D9E,0x7DD9,0x7DF2,0x7DF9,0x7F75,
- 0x7F77,0x7FAF,0x7FE9,0x8026,0x819B,0x819C,0x819D,0x81A0,0x819A,0x8198,
- 0x8517,0x853D,0x851A,0x84EE,0x852C,0x852D,0x8513,0x8511,0x8523,0x8521,
- 0x8514,0x84EC,0x8525,0x84FF,0x8506,0x8782,0x8774,0x8776,0x8760,0x8766,
- 0x8778,0x8768,0x8759,0x8757,0x874C,0x8753,0x885B,0x885D,0x8910,0x8907,
- 0x8912,0x8913,0x8915,0x890A,0x8ABC,0x8AD2,0x8AC7,0x8AC4,0x8A95,0x8ACB,
- 0x8AF8,0x8AB2,0x8AC9,0x8AC2,0x8ABF,
- /* plane 1, row 79 */
- 1 | (94 << 8), /* first, last */
- 0x8AB0,0x8AD6,0x8ACD,0x8AB6,0x8AB9,0x8ADB,0x8C4C,0x8C4E,0x8C6C,
- 0x8CE0,0x8CDE,0x8CE6,0x8CE4,0x8CEC,0x8CED,0x8CE2,0x8CE3,0x8CDC,0x8CEA,
- 0x8CE1,0x8D6D,0x8D9F,0x8DA3,0x8E2B,0x8E10,0x8E1D,0x8E22,0x8E0F,0x8E29,
- 0x8E1F,0x8E21,0x8E1E,0x8EBA,0x8F1D,0x8F1B,0x8F1F,0x8F29,0x8F26,0x8F2A,
- 0x8F1C,0x8F1E,0x8F25,0x9069,0x906E,0x9068,0x906D,0x9077,0x9130,0x912D,
- 0x9127,0x9131,0x9187,0x9189,0x918B,0x9183,0x92C5,0x92BB,0x92B7,0x92EA,
- 0x92E4,0x92C1,0x92B3,0x92BC,0x92D2,0x92C7,0x92F0,0x92B2,0x95AD,0x95B1,
- 0x9704,0x9706,0x9707,0x9709,0x9760,0x978D,0x978B,0x978F,0x9821,0x982B,
- 0x981C,0x98B3,0x990A,0x9913,0x9912,0x9918,0x99DD,0x99D0,0x99DF,0x99DB,
- 0x99D1,0x99D5,0x99D2,0x99D9,0x9AB7,
- /* plane 1, row 80 */
- 1 | (94 << 8), /* first, last */
- 0x9AEE,0x9AEF,0x9B27,0x9B45,0x9B44,0x9B77,0x9B6F,0x9D06,0x9D09,
- 0x9D03,0x9EA9,0x9EBE,0x9ECE,0x58A8,0x9F52,0x5112,0x5118,0x5114,0x5110,
- 0x5115,0x5180,0x51AA,0x51DD,0x5291,0x5293,0x52F3,0x5659,0x566B,0x5679,
- 0x5669,0x5664,0x5678,0x566A,0x5668,0x5665,0x5671,0x566F,0x566C,0x5662,
- 0x5676,0x58C1,0x58BE,0x58C7,0x58C5,0x596E,0x5B1D,0x5B34,0x5B78,0x5BF0,
- 0x5C0E,0x5F4A,0x61B2,0x6191,0x61A9,0x618A,0x61CD,0x61B6,0x61BE,0x61CA,
- 0x61C8,0x6230,0x64C5,0x64C1,0x64CB,0x64BB,0x64BC,0x64DA,0x64C4,0x64C7,
- 0x64C2,0x64CD,0x64BF,0x64D2,0x64D4,0x64BE,0x6574,0x66C6,0x66C9,0x66B9,
- 0x66C4,0x66C7,0x66B8,0x6A3D,0x6A38,0x6A3A,0x6A59,0x6A6B,0x6A58,0x6A39,
- 0x6A44,0x6A62,0x6A61,0x6A4B,0x6A47,
- /* plane 1, row 81 */
- 1 | (94 << 8), /* first, last */
- 0x6A35,0x6A5F,0x6A48,0x6B59,0x6B77,0x6C05,0x6FC2,0x6FB1,0x6FA1,
- 0x6FC3,0x6FA4,0x6FC1,0x6FA7,0x6FB3,0x6FC0,0x6FB9,0x6FB6,0x6FA6,0x6FA0,
- 0x6FB4,0x71BE,0x71C9,0x71D0,0x71D2,0x71C8,0x71D5,0x71B9,0x71CE,0x71D9,
- 0x71DC,0x71C3,0x71C4,0x7368,0x749C,0x74A3,0x7498,0x749F,0x749E,0x74E2,
- 0x750C,0x750D,0x7634,0x7638,0x763A,0x76E7,0x76E5,0x77A0,0x779E,0x779F,
- 0x77A5,0x78E8,0x78DA,0x78EC,0x78E7,0x79A6,0x7A4D,0x7A4E,0x7A46,0x7A4C,
- 0x7A4B,0x7ABA,0x7BD9,0x7C11,0x7BC9,0x7BE4,0x7BDB,0x7BE1,0x7BE9,0x7BE6,
- 0x7CD5,0x7CD6,0x7E0A,0x7E11,0x7E08,0x7E1B,0x7E23,0x7E1E,0x7E1D,0x7E09,
- 0x7E10,0x7F79,0x7FB2,0x7FF0,0x7FF1,0x7FEE,0x8028,0x81B3,0x81A9,0x81A8,
- 0x81FB,0x8208,0x8258,0x8259,0x854A,
- /* plane 1, row 82 */
- 1 | (94 << 8), /* first, last */
- 0x8559,0x8548,0x8568,0x8569,0x8543,0x8549,0x856D,0x856A,0x855E,
- 0x8783,0x879F,0x879E,0x87A2,0x878D,0x8861,0x892A,0x8932,0x8925,0x892B,
- 0x8921,0x89AA,0x89A6,0x8AE6,0x8AFA,0x8AEB,0x8AF1,0x8B00,0x8ADC,0x8AE7,
- 0x8AEE,0x8AFE,0x8B01,0x8B02,0x8AF7,0x8AED,0x8AF3,0x8AF6,0x8AFC,0x8C6B,
- 0x8C6D,0x8C93,0x8CF4,0x8E44,0x8E31,0x8E34,0x8E42,0x8E39,0x8E35,0x8F3B,
- 0x8F2F,0x8F38,0x8F33,0x8FA8,0x8FA6,0x9075,0x9074,0x9078,0x9072,0x907C,
- 0x907A,0x9134,0x9192,0x9320,0x9336,0x92F8,0x9333,0x932F,0x9322,0x92FC,
- 0x932B,0x9304,0x931A,0x9310,0x9326,0x9321,0x9315,0x932E,0x9319,0x95BB,
- 0x96A7,0x96A8,0x96AA,0x96D5,0x970E,0x9711,0x9716,0x970D,0x9713,0x970F,
- 0x975B,0x975C,0x9766,0x9798,0x9830,
- /* plane 1, row 83 */
- 1 | (94 << 8), /* first, last */
- 0x9838,0x983B,0x9837,0x982D,0x9839,0x9824,0x9910,0x9928,0x991E,
- 0x991B,0x9921,0x991A,0x99ED,0x99E2,0x99F1,0x9AB8,0x9ABC,0x9AFB,0x9AED,
- 0x9B28,0x9B91,0x9D15,0x9D23,0x9D26,0x9D28,0x9D12,0x9D1B,0x9ED8,0x9ED4,
- 0x9F8D,0x9F9C,0x512A,0x511F,0x5121,0x5132,0x52F5,0x568E,0x5680,0x5690,
- 0x5685,0x5687,0x568F,0x58D5,0x58D3,0x58D1,0x58CE,0x5B30,0x5B2A,0x5B24,
- 0x5B7A,0x5C37,0x5C68,0x5DBC,0x5DBA,0x5DBD,0x5DB8,0x5E6B,0x5F4C,0x5FBD,
- 0x61C9,0x61C2,0x61C7,0x61E6,0x61CB,0x6232,0x6234,0x64CE,0x64CA,0x64D8,
- 0x64E0,0x64F0,0x64E6,0x64EC,0x64F1,0x64E2,0x64ED,0x6582,0x6583,0x66D9,
- 0x66D6,0x6A80,0x6A94,0x6A84,0x6AA2,0x6A9C,0x6ADB,0x6AA3,0x6A7E,0x6A97,
- 0x6A90,0x6AA0,0x6B5C,0x6BAE,0x6BDA,
- /* plane 1, row 84 */
- 1 | (94 << 8), /* first, last */
- 0x6C08,0x6FD8,0x6FF1,0x6FDF,0x6FE0,0x6FDB,0x6FE4,0x6FEB,0x6FEF,
- 0x6F80,0x6FEC,0x6FE1,0x6FE9,0x6FD5,0x6FEE,0x6FF0,0x71E7,0x71DF,0x71EE,
- 0x71E6,0x71E5,0x71ED,0x71EC,0x71F4,0x71E0,0x7235,0x7246,0x7370,0x7372,
- 0x74A9,0x74B0,0x74A6,0x74A8,0x7646,0x7642,0x764C,0x76EA,0x77B3,0x77AA,
- 0x77B0,0x77AC,0x77A7,0x77AD,0x77EF,0x78F7,0x78FA,0x78F4,0x78EF,0x7901,
- 0x79A7,0x79AA,0x7A57,0x7ABF,0x7C07,0x7C0D,0x7BFE,0x7BF7,0x7C0C,0x7BE0,
- 0x7CE0,0x7CDC,0x7CDE,0x7CE2,0x7CDF,0x7CD9,0x7CDD,0x7E2E,0x7E3E,0x7E46,
- 0x7E37,0x7E32,0x7E43,0x7E2B,0x7E3D,0x7E31,0x7E45,0x7E41,0x7E34,0x7E39,
- 0x7E48,0x7E35,0x7E3F,0x7E2F,0x7F44,0x7FF3,0x7FFC,0x8071,0x8072,0x8070,
- 0x806F,0x8073,0x81C6,0x81C3,0x81BA,
- /* plane 1, row 85 */
- 1 | (94 << 8), /* first, last */
- 0x81C2,0x81C0,0x81BF,0x81BD,0x81C9,0x81BE,0x81E8,0x8209,0x8271,
- 0x85AA,0x8584,0x857E,0x859C,0x8591,0x8594,0x85AF,0x859B,0x8587,0x85A8,
- 0x858A,0x85A6,0x8667,0x87C0,0x87D1,0x87B3,0x87D2,0x87C6,0x87AB,0x87BB,
- 0x87BA,0x87C8,0x87CB,0x893B,0x8936,0x8944,0x8938,0x893D,0x89AC,0x8B0E,
- 0x8B17,0x8B19,0x8B1B,0x8B0A,0x8B20,0x8B1D,0x8B04,0x8B10,0x8C41,0x8C3F,
- 0x8C73,0x8CFA,0x8CFD,0x8CFC,0x8CF8,0x8CFB,0x8DA8,0x8E49,0x8E4B,0x8E48,
- 0x8E4A,0x8F44,0x8F3E,0x8F42,0x8F45,0x8F3F,0x907F,0x907D,0x9084,0x9081,
- 0x9082,0x9080,0x9139,0x91A3,0x919E,0x919C,0x934D,0x9382,0x9328,0x9375,
- 0x934A,0x9365,0x934B,0x9318,0x937E,0x936C,0x935B,0x9370,0x935A,0x9354,
- 0x95CA,0x95CB,0x95CC,0x95C8,0x95C6,
- /* plane 1, row 86 */
- 1 | (94 << 8), /* first, last */
- 0x96B1,0x96B8,0x96D6,0x971C,0x971E,0x97A0,0x97D3,0x9846,0x98B6,
- 0x9935,0x9A01,0x99FF,0x9BAE,0x9BAB,0x9BAA,0x9BAD,0x9D3B,0x9D3F,0x9E8B,
- 0x9ECF,0x9EDE,0x9EDC,0x9EDD,0x9EDB,0x9F3E,0x9F4B,0x53E2,0x5695,0x56AE,
- 0x58D9,0x58D8,0x5B38,0x5F5E,0x61E3,0x6233,0x64F4,0x64F2,0x64FE,0x6506,
- 0x64FA,0x64FB,0x64F7,0x65B7,0x66DC,0x6726,0x6AB3,0x6AAC,0x6AC3,0x6ABB,
- 0x6AB8,0x6AC2,0x6AAE,0x6AAF,0x6B5F,0x6B78,0x6BAF,0x7009,0x700B,0x6FFE,
- 0x7006,0x6FFA,0x7011,0x700F,0x71FB,0x71FC,0x71FE,0x71F8,0x7377,0x7375,
- 0x74A7,0x74BF,0x7515,0x7656,0x7658,0x7652,0x77BD,0x77BF,0x77BB,0x77BC,
- 0x790E,0x79AE,0x7A61,0x7A62,0x7A60,0x7AC4,0x7AC5,0x7C2B,0x7C27,0x7C2A,
- 0x7C1E,0x7C23,0x7C21,0x7CE7,0x7E54,
- /* plane 1, row 87 */
- 1 | (94 << 8), /* first, last */
- 0x7E55,0x7E5E,0x7E5A,0x7E61,0x7E52,0x7E59,0x7F48,0x7FF9,0x7FFB,
- 0x8077,0x8076,0x81CD,0x81CF,0x820A,0x85CF,0x85A9,0x85CD,0x85D0,0x85C9,
- 0x85B0,0x85BA,0x85B9,0x87EF,0x87EC,0x87F2,0x87E0,0x8986,0x89B2,0x89F4,
- 0x8B28,0x8B39,0x8B2C,0x8B2B,0x8C50,0x8D05,0x8E59,0x8E63,0x8E66,0x8E64,
- 0x8E5F,0x8E55,0x8EC0,0x8F49,0x8F4D,0x9087,0x9083,0x9088,0x91AB,0x91AC,
- 0x91D0,0x9394,0x938A,0x9396,0x93A2,0x93B3,0x93AE,0x93AC,0x93B0,0x9398,
- 0x939A,0x9397,0x95D4,0x95D6,0x95D0,0x95D5,0x96E2,0x96DC,0x96D9,0x96DB,
- 0x96DE,0x9724,0x97A3,0x97A6,0x97AD,0x97F9,0x984D,0x984F,0x984C,0x984E,
- 0x9853,0x98BA,0x993E,0x993F,0x993D,0x992E,0x99A5,0x9A0E,0x9AC1,0x9B03,
- 0x9B06,0x9B4F,0x9B4E,0x9B4D,0x9BCA,
- /* plane 1, row 88 */
- 1 | (94 << 8), /* first, last */
- 0x9BC9,0x9BFD,0x9BC8,0x9BC0,0x9D51,0x9D5D,0x9D60,0x9EE0,0x9F15,
- 0x9F2C,0x5133,0x56A5,0x56A8,0x58DE,0x58DF,0x58E2,0x5BF5,0x9F90,0x5EEC,
- 0x61F2,0x61F7,0x61F6,0x61F5,0x6500,0x650F,0x66E0,0x66DD,0x6AE5,0x6ADD,
- 0x6ADA,0x6AD3,0x701B,0x701F,0x7028,0x701A,0x701D,0x7015,0x7018,0x7206,
- 0x720D,0x7258,0x72A2,0x7378,0x737A,0x74BD,0x74CA,0x74E3,0x7587,0x7586,
- 0x765F,0x7661,0x77C7,0x7919,0x79B1,0x7A6B,0x7A69,0x7C3E,0x7C3F,0x7C38,
- 0x7C3D,0x7C37,0x7C40,0x7E6B,0x7E6D,0x7E79,0x7E69,0x7E6A,0x7E73,0x7F85,
- 0x7FB6,0x7FB9,0x7FB8,0x81D8,0x85E9,0x85DD,0x85EA,0x85D5,0x85E4,0x85E5,
- 0x85F7,0x87FB,0x8805,0x880D,0x87F9,0x87FE,0x8960,0x895F,0x8956,0x895E,
- 0x8B41,0x8B5C,0x8B58,0x8B49,0x8B5A,
- /* plane 1, row 89 */
- 1 | (94 << 8), /* first, last */
- 0x8B4E,0x8B4F,0x8B46,0x8B59,0x8D08,0x8D0A,0x8E7C,0x8E72,0x8E87,
- 0x8E76,0x8E6C,0x8E7A,0x8E74,0x8F54,0x8F4E,0x8FAD,0x908A,0x908B,0x91B1,
- 0x91AE,0x93E1,0x93D1,0x93DF,0x93C3,0x93C8,0x93DC,0x93DD,0x93D6,0x93E2,
- 0x93CD,0x93D8,0x93E4,0x93D7,0x93E8,0x95DC,0x96B4,0x96E3,0x972A,0x9727,
- 0x9761,0x97DC,0x97FB,0x985E,0x9858,0x985B,0x98BC,0x9945,0x9949,0x9A16,
- 0x9A19,0x9B0D,0x9BE8,0x9BE7,0x9BD6,0x9BDB,0x9D89,0x9D61,0x9D72,0x9D6A,
- 0x9D6C,0x9E92,0x9E97,0x9E93,0x9EB4,0x52F8,0x56B7,0x56B6,0x56B4,0x56BC,
- 0x58E4,0x5B40,0x5B43,0x5B7D,0x5BF6,0x5DC9,0x61F8,0x61FA,0x6518,0x6514,
- 0x6519,0x66E6,0x6727,0x6AEC,0x703E,0x7030,0x7032,0x7210,0x737B,0x74CF,
- 0x7662,0x7665,0x7926,0x792A,0x792C,
- /* plane 1, row 90 */
- 1 | (94 << 8), /* first, last */
- 0x792B,0x7AC7,0x7AF6,0x7C4C,0x7C43,0x7C4D,0x7CEF,0x7CF0,0x8FAE,
- 0x7E7D,0x7E7C,0x7E82,0x7F4C,0x8000,0x81DA,0x8266,0x85FB,0x85F9,0x8611,
- 0x85FA,0x8606,0x860B,0x8607,0x860A,0x8814,0x8815,0x8964,0x89BA,0x89F8,
- 0x8B70,0x8B6C,0x8B66,0x8B6F,0x8B5F,0x8B6B,0x8D0F,0x8D0D,0x8E89,0x8E81,
- 0x8E85,0x8E82,0x91B4,0x91CB,0x9418,0x9403,0x93FD,0x95E1,0x9730,0x98C4,
- 0x9952,0x9951,0x99A8,0x9A2B,0x9A30,0x9A37,0x9A35,0x9C13,0x9C0D,0x9E79,
- 0x9EB5,0x9EE8,0x9F2F,0x9F5F,0x9F63,0x9F61,0x5137,0x5138,0x56C1,0x56C0,
- 0x56C2,0x5914,0x5C6C,0x5DCD,0x61FC,0x61FE,0x651D,0x651C,0x6595,0x66E9,
- 0x6AFB,0x6B04,0x6AFA,0x6BB2,0x704C,0x721B,0x72A7,0x74D6,0x74D4,0x7669,
- 0x77D3,0x7C50,0x7E8F,0x7E8C,0x7FBC,
- /* plane 1, row 91 */
- 1 | (94 << 8), /* first, last */
- 0x8617,0x862D,0x861A,0x8823,0x8822,0x8821,0x881F,0x896A,0x896C,
- 0x89BD,0x8B74,0x8B77,0x8B7D,0x8D13,0x8E8A,0x8E8D,0x8E8B,0x8F5F,0x8FAF,
- 0x91BA,0x942E,0x9433,0x9435,0x943A,0x9438,0x9432,0x942B,0x95E2,0x9738,
- 0x9739,0x9732,0x97FF,0x9867,0x9865,0x9957,0x9A45,0x9A43,0x9A40,0x9A3E,
- 0x9ACF,0x9B54,0x9B51,0x9C2D,0x9C25,0x9DAF,0x9DB4,0x9DC2,0x9DB8,0x9E9D,
- 0x9EEF,0x9F19,0x9F5C,0x9F66,0x9F67,0x513C,0x513B,0x56C8,0x56CA,0x56C9,
- 0x5B7F,0x5DD4,0x5DD2,0x5F4E,0x61FF,0x6524,0x6B0A,0x6B61,0x7051,0x7058,
- 0x7380,0x74E4,0x758A,0x766E,0x766C,0x79B3,0x7C60,0x7C5F,0x807E,0x807D,
- 0x81DF,0x8972,0x896F,0x89FC,0x8B80,0x8D16,0x8D17,0x8E91,0x8E93,0x8F61,
- 0x9148,0x9444,0x9451,0x9452,0x973D,
- /* plane 1, row 92 */
- 1 | (94 << 8), /* first, last */
- 0x973E,0x97C3,0x97C1,0x986B,0x9955,0x9A55,0x9A4D,0x9AD2,0x9B1A,
- 0x9C49,0x9C31,0x9C3E,0x9C3B,0x9DD3,0x9DD7,0x9F34,0x9F6C,0x9F6A,0x9F94,
- 0x56CC,0x5DD6,0x6200,0x6523,0x652B,0x652A,0x66EC,0x6B10,0x74DA,0x7ACA,
- 0x7C64,0x7C63,0x7C65,0x7E93,0x7E96,0x7E94,0x81E2,0x8638,0x863F,0x8831,
- 0x8B8A,0x9090,0x908F,0x9463,0x9460,0x9464,0x9768,0x986F,0x995C,0x9A5A,
- 0x9A5B,0x9A57,0x9AD3,0x9AD4,0x9AD1,0x9C54,0x9C57,0x9C56,0x9DE5,0x9E9F,
- 0x9EF4,0x56D1,0x58E9,0x652C,0x705E,0x7671,0x7672,0x77D7,0x7F50,0x7F88,
- 0x8836,0x8839,0x8862,0x8B93,0x8B92,0x8B96,0x8277,0x8D1B,0x91C0,0x946A,
- 0x9742,0x9748,0x9744,0x97C6,0x9870,0x9A5F,0x9B22,0x9B58,0x9C5F,0x9DF9,
- 0x9DFA,0x9E7C,0x9E7D,0x9F07,0x9F77,
- /* plane 1, row 93 */
- 1 | (43 << 8), /* first, last */
- 0x9F72,0x5EF3,0x6B16,0x7063,0x7C6C,0x7C6E,0x883B,0x89C0,0x8EA1,
- 0x91C1,0x9472,0x9470,0x9871,0x995E,0x9AD6,0x9B23,0x9ECC,0x7064,0x77DA,
- 0x8B9A,0x9477,0x97C9,0x9A62,0x9A65,0x7E9C,0x8B9C,0x8EAA,0x91C5,0x947D,
- 0x947E,0x947C,0x9C77,0x9C78,0x9EF7,0x8C54,0x947F,0x9E1A,0x7228,0x9A6A,
- 0x9B31,0x9E1B,0x9E1E,0x7C72,
- /* plane 1, row 94: --- */
- /* plane 2, row 1 */
- 1 | (94 << 8), /* first, last */
- 0x4E42,0x4E5C,0x51F5,0x531A,0x5382,0x4E07,0x4E0C,0x4E47,0x4E8D,
- 0x56D7,0x5C6E,0x5F73,0x4E0F,0x5187,0x4E0E,0x4E2E,0x4E93,0x4EC2,0x4EC9,
- 0x4EC8,0x5198,0x52FC,0x536C,0x53B9,0x5720,0x5903,0x592C,0x5C10,0x5DFF,
- 0x65E1,0x6BB3,0x6BCC,0x6C14,0x723F,0x4E31,0x4E3C,0x4EE8,0x4EDC,0x4EE9,
- 0x4EE1,0x4EDD,0x4EDA,0x520C,0x5209,0x531C,0x534C,0x5722,0x5723,0x5917,
- 0x592F,0x5B81,0x5B84,0x5C12,0x5C3B,0x5C74,0x5C73,0x5E04,0x5E80,0x5E82,
- 0x5FC9,0x6209,0x6250,0x6C15,0x6C36,0x6C43,0x6C3F,0x6C3B,0x72AE,0x72B0,
- 0x738A,0x79B8,0x808A,0x961E,0x4F0E,0x4F18,0x4F2C,0x4EF5,0x4F14,0x4EF1,
- 0x4F00,0x4EF7,0x4F08,0x4F1D,0x4F02,0x4F05,0x4F22,0x4F13,0x4F04,0x4EF4,
- 0x4F12,0x51B1,0x5213,0x5210,0x52A6,
- /* plane 2, row 2 */
- 1 | (94 << 8), /* first, last */
- 0x5322,0x531F,0x534D,0x538A,0x5407,0x56E1,0x56DF,0x572E,0x572A,
- 0x5734,0x593C,0x5980,0x597C,0x5985,0x597B,0x597E,0x5977,0x597F,0x5B56,
- 0x5C15,0x5C25,0x5C7C,0x5C7A,0x5C7B,0x5C7E,0x5DDF,0x5E75,0x5E84,0x5F02,
- 0x5F1A,0x5F74,0x5FD5,0x5FD4,0x5FCF,0x625C,0x625E,0x6264,0x6261,0x6266,
- 0x6262,0x6259,0x6260,0x625A,0x6265,0x6537,0x65EF,0x65EE,0x673E,0x6739,
- 0x6738,0x673B,0x673A,0x673F,0x673C,0x6733,0x6C18,0x6C46,0x6C52,0x6C5C,
- 0x6C4F,0x6C4A,0x6C54,0x6C4B,0x6C4C,0x7071,0x725E,0x72B4,0x72B5,0x738E,
- 0x752A,0x767F,0x7A75,0x7F51,0x8278,0x827C,0x8280,0x827D,0x827F,0x864D,
- 0x897E,0x9099,0x9097,0x9098,0x909B,0x9094,0x9622,0x9624,0x9620,0x9623,
- 0x4F56,0x4F3B,0x4F62,0x4F49,0x4F53,
- /* plane 2, row 3 */
- 1 | (94 << 8), /* first, last */
- 0x4F64,0x4F3E,0x4F67,0x4F52,0x4F5F,0x4F41,0x4F58,0x4F2D,0x4F33,
- 0x4F3F,0x4F61,0x518F,0x51B9,0x521C,0x521E,0x5221,0x52AD,0x52AE,0x5309,
- 0x5363,0x5372,0x538E,0x538F,0x5430,0x5437,0x542A,0x5454,0x5445,0x5419,
- 0x541C,0x5425,0x5418,0x543D,0x544F,0x5441,0x5428,0x5424,0x5447,0x56EE,
- 0x56E7,0x56E5,0x5741,0x5745,0x574C,0x5749,0x574B,0x5752,0x5906,0x5940,
- 0x59A6,0x5998,0x59A0,0x5997,0x598E,0x59A2,0x5990,0x598F,0x59A7,0x59A1,
- 0x5B8E,0x5B92,0x5C28,0x5C2A,0x5C8D,0x5C8F,0x5C88,0x5C8B,0x5C89,0x5C92,
- 0x5C8A,0x5C86,0x5C93,0x5C95,0x5DE0,0x5E0A,0x5E0E,0x5E8B,0x5E89,0x5E8C,
- 0x5E88,0x5E8D,0x5F05,0x5F1D,0x5F78,0x5F76,0x5FD2,0x5FD1,0x5FD0,0x5FED,
- 0x5FE8,0x5FEE,0x5FF3,0x5FE1,0x5FE4,
- /* plane 2, row 4 */
- 1 | (94 << 8), /* first, last */
- 0x5FE3,0x5FFA,0x5FEF,0x5FF7,0x5FFB,0x6000,0x5FF4,0x623A,0x6283,
- 0x628C,0x628E,0x628F,0x6294,0x6287,0x6271,0x627B,0x627A,0x6270,0x6281,
- 0x6288,0x6277,0x627D,0x6272,0x6274,0x65F0,0x65F4,0x65F3,0x65F2,0x65F5,
- 0x6745,0x6747,0x6759,0x6755,0x674C,0x6748,0x675D,0x674D,0x675A,0x674B,
- 0x6BD0,0x6C19,0x6C1A,0x6C78,0x6C67,0x6C6B,0x6C84,0x6C8B,0x6C8F,0x6C71,
- 0x6C6F,0x6C69,0x6C9A,0x6C6D,0x6C87,0x6C95,0x6C9C,0x6C66,0x6C73,0x6C65,
- 0x6C7B,0x6C8E,0x7074,0x707A,0x7263,0x72BF,0x72BD,0x72C3,0x72C6,0x72C1,
- 0x72BA,0x72C5,0x7395,0x7397,0x7393,0x7394,0x7392,0x753A,0x7539,0x7594,
- 0x7595,0x7681,0x793D,0x8034,0x8095,0x8099,0x8090,0x8092,0x809C,0x8290,
- 0x828F,0x8285,0x828E,0x8291,0x8293,
- /* plane 2, row 5 */
- 1 | (94 << 8), /* first, last */
- 0x828A,0x8283,0x8284,0x8C78,0x8FC9,0x8FBF,0x909F,0x90A1,0x90A5,
- 0x909E,0x90A7,0x90A0,0x9630,0x9628,0x962F,0x962D,0x4E33,0x4F98,0x4F7C,
- 0x4F85,0x4F7D,0x4F80,0x4F87,0x4F76,0x4F74,0x4F89,0x4F84,0x4F77,0x4F4C,
- 0x4F97,0x4F6A,0x4F9A,0x4F79,0x4F81,0x4F78,0x4F90,0x4F9C,0x4F94,0x4F9E,
- 0x4F92,0x4F82,0x4F95,0x4F6B,0x4F6E,0x519E,0x51BC,0x51BE,0x5235,0x5232,
- 0x5233,0x5246,0x5231,0x52BC,0x530A,0x530B,0x533C,0x5392,0x5394,0x5487,
- 0x547F,0x5481,0x5491,0x5482,0x5488,0x546B,0x547A,0x547E,0x5465,0x546C,
- 0x5474,0x5466,0x548D,0x546F,0x5461,0x5460,0x5498,0x5463,0x5467,0x5464,
- 0x56F7,0x56F9,0x576F,0x5772,0x576D,0x576B,0x5771,0x5770,0x5776,0x5780,
- 0x5775,0x577B,0x5773,0x5774,0x5762,
- /* plane 2, row 6 */
- 1 | (94 << 8), /* first, last */
- 0x5768,0x577D,0x590C,0x5945,0x59B5,0x59BA,0x59CF,0x59CE,0x59B2,
- 0x59CC,0x59C1,0x59B6,0x59BC,0x59C3,0x59D6,0x59B1,0x59BD,0x59C0,0x59C8,
- 0x59B4,0x59C7,0x5B62,0x5B65,0x5B93,0x5B95,0x5C44,0x5C47,0x5CAE,0x5CA4,
- 0x5CA0,0x5CB5,0x5CAF,0x5CA8,0x5CAC,0x5C9F,0x5CA3,0x5CAD,0x5CA2,0x5CAA,
- 0x5CA7,0x5C9D,0x5CA5,0x5CB6,0x5CB0,0x5CA6,0x5E17,0x5E14,0x5E19,0x5F28,
- 0x5F22,0x5F23,0x5F24,0x5F54,0x5F82,0x5F7E,0x5F7D,0x5FDE,0x5FE5,0x602D,
- 0x6026,0x6019,0x6032,0x600B,0x6034,0x600A,0x6017,0x6033,0x601A,0x601E,
- 0x602C,0x6022,0x600D,0x6010,0x602E,0x6013,0x6011,0x600C,0x6009,0x601C,
- 0x6214,0x623D,0x62AD,0x62B4,0x62D1,0x62BE,0x62AA,0x62B6,0x62CA,0x62AE,
- 0x62B3,0x62AF,0x62BB,0x62A9,0x62B0,
- /* plane 2, row 7 */
- 1 | (94 << 8), /* first, last */
- 0x62B8,0x653D,0x65A8,0x65BB,0x6609,0x65FC,0x6604,0x6612,0x6608,
- 0x65FB,0x6603,0x660B,0x660D,0x6605,0x65FD,0x6611,0x6610,0x66F6,0x670A,
- 0x6785,0x676C,0x678E,0x6792,0x6776,0x677B,0x6798,0x6786,0x6784,0x6774,
- 0x678D,0x678C,0x677A,0x679F,0x6791,0x6799,0x6783,0x677D,0x6781,0x6778,
- 0x6779,0x6794,0x6B25,0x6B80,0x6B7E,0x6BDE,0x6C1D,0x6C93,0x6CEC,0x6CEB,
- 0x6CEE,0x6CD9,0x6CB6,0x6CD4,0x6CAD,0x6CE7,0x6CB7,0x6CD0,0x6CC2,0x6CBA,
- 0x6CC3,0x6CC6,0x6CED,0x6CF2,0x6CD2,0x6CDD,0x6CB4,0x6C8A,0x6C9D,0x6C80,
- 0x6CDE,0x6CC0,0x6D30,0x6CCD,0x6CC7,0x6CB0,0x6CF9,0x6CCF,0x6CE9,0x6CD1,
- 0x7094,0x7098,0x7085,0x7093,0x7086,0x7084,0x7091,0x7096,0x7082,0x709A,
- 0x7083,0x726A,0x72D6,0x72CB,0x72D8,
- /* plane 2, row 8 */
- 1 | (94 << 8), /* first, last */
- 0x72C9,0x72DC,0x72D2,0x72D4,0x72DA,0x72CC,0x72D1,0x73A4,0x73A1,
- 0x73AD,0x73A6,0x73A2,0x73A0,0x73AC,0x739D,0x74DD,0x74E8,0x753F,0x7540,
- 0x753E,0x758C,0x7598,0x76AF,0x76F3,0x76F1,0x76F0,0x76F5,0x77F8,0x77FC,
- 0x77F9,0x77FB,0x77FA,0x77F7,0x7942,0x793F,0x79C5,0x7A78,0x7A7B,0x7AFB,
- 0x7C75,0x7CFD,0x8035,0x808F,0x80AE,0x80A3,0x80B8,0x80B5,0x80AD,0x8220,
- 0x82A0,0x82C0,0x82AB,0x829A,0x8298,0x829B,0x82B5,0x82A7,0x82AE,0x82BC,
- 0x829E,0x82BA,0x82B4,0x82A8,0x82A1,0x82A9,0x82C2,0x82A4,0x82C3,0x82B6,
- 0x82A2,0x8670,0x866F,0x866D,0x866E,0x8C56,0x8FD2,0x8FCB,0x8FD3,0x8FCD,
- 0x8FD6,0x8FD5,0x8FD7,0x90B2,0x90B4,0x90AF,0x90B3,0x90B0,0x9639,0x963D,
- 0x963C,0x963A,0x9643,0x4FCD,0x4FC5,
- /* plane 2, row 9 */
- 1 | (94 << 8), /* first, last */
- 0x4FD3,0x4FB2,0x4FC9,0x4FCB,0x4FC1,0x4FD4,0x4FDC,0x4FD9,0x4FBB,
- 0x4FB3,0x4FDB,0x4FC7,0x4FD6,0x4FBA,0x4FC0,0x4FB9,0x4FEC,0x5244,0x5249,
- 0x52C0,0x52C2,0x533D,0x537C,0x5397,0x5396,0x5399,0x5398,0x54BA,0x54A1,
- 0x54AD,0x54A5,0x54CF,0x54C3,0x830D,0x54B7,0x54AE,0x54D6,0x54B6,0x54C5,
- 0x54C6,0x54A0,0x5470,0x54BC,0x54A2,0x54BE,0x5472,0x54DE,0x54B0,0x57B5,
- 0x579E,0x579F,0x57A4,0x578C,0x5797,0x579D,0x579B,0x5794,0x5798,0x578F,
- 0x5799,0x57A5,0x579A,0x5795,0x58F4,0x590D,0x5953,0x59E1,0x59DE,0x59EE,
- 0x5A00,0x59F1,0x59DD,0x59FA,0x59FD,0x59FC,0x59F6,0x59E4,0x59F2,0x59F7,
- 0x59DB,0x59E9,0x59F3,0x59F5,0x59E0,0x59FE,0x59F4,0x59ED,0x5BA8,0x5C4C,
- 0x5CD0,0x5CD8,0x5CCC,0x5CD7,0x5CCB,
- /* plane 2, row 10 */
- 1 | (94 << 8), /* first, last */
- 0x5CDB,0x5CDE,0x5CDA,0x5CC9,0x5CC7,0x5CCA,0x5CD6,0x5CD3,0x5CD4,
- 0x5CCF,0x5CC8,0x5CC6,0x5CCE,0x5CDF,0x5CF8,0x5DF9,0x5E21,0x5E22,0x5E23,
- 0x5E20,0x5E24,0x5EB0,0x5EA4,0x5EA2,0x5E9B,0x5EA3,0x5EA5,0x5F07,0x5F2E,
- 0x5F56,0x5F86,0x6037,0x6039,0x6054,0x6072,0x605E,0x6045,0x6053,0x6047,
- 0x6049,0x605B,0x604C,0x6040,0x6042,0x605F,0x6024,0x6044,0x6058,0x6066,
- 0x606E,0x6242,0x6243,0x62CF,0x630D,0x630B,0x62F5,0x630E,0x6303,0x62EB,
- 0x62F9,0x630F,0x630C,0x62F8,0x62F6,0x6300,0x6313,0x6314,0x62FA,0x6315,
- 0x62FB,0x62F0,0x6541,0x6543,0x65AA,0x65BF,0x6636,0x6621,0x6632,0x6635,
- 0x661C,0x6626,0x6622,0x6633,0x662B,0x663A,0x661D,0x6634,0x6639,0x662E,
- 0x670F,0x6710,0x67C1,0x67F2,0x67C8,
- /* plane 2, row 11 */
- 1 | (94 << 8), /* first, last */
- 0x67BA,0x67DC,0x67BB,0x67F8,0x67D8,0x67C0,0x67B7,0x67C5,0x67EB,
- 0x67E4,0x67DF,0x67B5,0x67CD,0x67B3,0x67F7,0x67F6,0x67EE,0x67E3,0x67C2,
- 0x67B9,0x67CE,0x67E7,0x67F0,0x67B2,0x67FC,0x67C6,0x67ED,0x67CC,0x67AE,
- 0x67E6,0x67DB,0x67FA,0x67C9,0x67CA,0x67C3,0x67EA,0x67CB,0x6B28,0x6B82,
- 0x6B84,0x6BB6,0x6BD6,0x6BD8,0x6BE0,0x6C20,0x6C21,0x6D28,0x6D34,0x6D2D,
- 0x6D1F,0x6D3C,0x6D3F,0x6D12,0x6D0A,0x6CDA,0x6D33,0x6D04,0x6D19,0x6D3A,
- 0x6D1A,0x6D11,0x6D00,0x6D1D,0x6D42,0x6D01,0x6D18,0x6D37,0x6D03,0x6D0F,
- 0x6D40,0x6D07,0x6D20,0x6D2C,0x6D08,0x6D22,0x6D09,0x6D10,0x70B7,0x709F,
- 0x70BE,0x70B1,0x70B0,0x70A1,0x70B4,0x70B5,0x70A9,0x7241,0x7249,0x724A,
- 0x726C,0x7270,0x7273,0x726E,0x72CA,
- /* plane 2, row 12 */
- 1 | (94 << 8), /* first, last */
- 0x72E4,0x72E8,0x72EB,0x72DF,0x72EA,0x72E6,0x72E3,0x7385,0x73CC,
- 0x73C2,0x73C8,0x73C5,0x73B9,0x73B6,0x73B5,0x73B4,0x73EB,0x73BF,0x73C7,
- 0x73BE,0x73C3,0x73C6,0x73B8,0x73CB,0x74EC,0x74EE,0x752E,0x7547,0x7548,
- 0x75A7,0x75AA,0x7679,0x76C4,0x7708,0x7703,0x7704,0x7705,0x770A,0x76F7,
- 0x76FB,0x76FA,0x77E7,0x77E8,0x7806,0x7811,0x7812,0x7805,0x7810,0x780F,
- 0x780E,0x7809,0x7803,0x7813,0x794A,0x794C,0x794B,0x7945,0x7944,0x79D5,
- 0x79CD,0x79CF,0x79D6,0x79CE,0x7A80,0x7A7E,0x7AD1,0x7B00,0x7B01,0x7C7A,
- 0x7C78,0x7C79,0x7C7F,0x7C80,0x7C81,0x7D03,0x7D08,0x7D01,0x7F58,0x7F91,
- 0x7F8D,0x7FBE,0x8007,0x800E,0x800F,0x8014,0x8037,0x80D8,0x80C7,0x80E0,
- 0x80D1,0x80C8,0x80C2,0x80D0,0x80C5,
- /* plane 2, row 13 */
- 1 | (94 << 8), /* first, last */
- 0x80E3,0x80D9,0x80DC,0x80CA,0x80D5,0x80C9,0x80CF,0x80D7,0x80E6,
- 0x80CD,0x81FF,0x8221,0x8294,0x82D9,0x82FE,0x82F9,0x8307,0x82E8,0x8300,
- 0x82D5,0x833A,0x82EB,0x82D6,0x82F4,0x82EC,0x82E1,0x82F2,0x82F5,0x830C,
- 0x82FB,0x82F6,0x82F0,0x82EA,0x82E4,0x82E0,0x82FA,0x82F3,0x82ED,0x8677,
- 0x8674,0x867C,0x8673,0x8841,0x884E,0x8867,0x886A,0x8869,0x89D3,0x8A04,
- 0x8A07,0x8D72,0x8FE3,0x8FE1,0x8FEE,0x8FE0,0x90F1,0x90BD,0x90BF,0x90D5,
- 0x90C5,0x90BE,0x90C7,0x90CB,0x90C8,0x91D4,0x91D3,0x9654,0x964F,0x9651,
- 0x9653,0x964A,0x964E,0x501E,0x5005,0x5007,0x5013,0x5022,0x5030,0x501B,
- 0x4FF5,0x4FF4,0x5033,0x5037,0x502C,0x4FF6,0x4FF7,0x5017,0x501C,0x5020,
- 0x5027,0x5035,0x502F,0x5031,0x500E,
- /* plane 2, row 14 */
- 1 | (94 << 8), /* first, last */
- 0x515A,0x5194,0x5193,0x51CA,0x51C4,0x51C5,0x51C8,0x51CE,0x5261,
- 0x525A,0x5252,0x525E,0x525F,0x5255,0x5262,0x52CD,0x530E,0x539E,0x5526,
- 0x54E2,0x5517,0x5512,0x54E7,0x54F3,0x54E4,0x551A,0x54FF,0x5504,0x5508,
- 0x54EB,0x5511,0x5505,0x54F1,0x550A,0x54FB,0x54F7,0x54F8,0x54E0,0x550E,
- 0x5503,0x550B,0x5701,0x5702,0x57CC,0x5832,0x57D5,0x57D2,0x57BA,0x57C6,
- 0x57BD,0x57BC,0x57B8,0x57B6,0x57BF,0x57C7,0x57D0,0x57B9,0x57C1,0x590E,
- 0x594A,0x5A19,0x5A16,0x5A2D,0x5A2E,0x5A15,0x5A0F,0x5A17,0x5A0A,0x5A1E,
- 0x5A33,0x5B6C,0x5BA7,0x5BAD,0x5BAC,0x5C03,0x5C56,0x5C54,0x5CEC,0x5CFF,
- 0x5CEE,0x5CF1,0x5CF7,0x5D00,0x5CF9,0x5E29,0x5E28,0x5EA8,0x5EAE,0x5EAA,
- 0x5EAC,0x5F33,0x5F30,0x5F67,0x605D,
- /* plane 2, row 15 */
- 1 | (94 << 8), /* first, last */
- 0x605A,0x6067,0x6041,0x60A2,0x6088,0x6080,0x6092,0x6081,0x609D,
- 0x6083,0x6095,0x609B,0x6097,0x6087,0x609C,0x608E,0x6219,0x6246,0x62F2,
- 0x6310,0x6356,0x632C,0x6344,0x6345,0x6336,0x6343,0x63E4,0x6339,0x634B,
- 0x634A,0x633C,0x6329,0x6341,0x6334,0x6358,0x6354,0x6359,0x632D,0x6347,
- 0x6333,0x635A,0x6351,0x6338,0x6357,0x6340,0x6348,0x654A,0x6546,0x65C6,
- 0x65C3,0x65C4,0x65C2,0x664A,0x665F,0x6647,0x6651,0x6712,0x6713,0x681F,
- 0x681A,0x6849,0x6832,0x6833,0x683B,0x684B,0x684F,0x6816,0x6831,0x681C,
- 0x6835,0x682B,0x682D,0x682F,0x684E,0x6844,0x6834,0x681D,0x6812,0x6814,
- 0x6826,0x6828,0x682E,0x684D,0x683A,0x6825,0x6820,0x6B2C,0x6B2F,0x6B2D,
- 0x6B31,0x6B34,0x6B6D,0x8082,0x6B88,
- /* plane 2, row 16 */
- 1 | (94 << 8), /* first, last */
- 0x6BE6,0x6BE4,0x6BE8,0x6BE3,0x6BE2,0x6BE7,0x6C25,0x6D7A,0x6D63,
- 0x6D64,0x6D76,0x6D0D,0x6D61,0x6D92,0x6D58,0x6D62,0x6D6D,0x6D6F,0x6D91,
- 0x6D8D,0x6DEF,0x6D7F,0x6D86,0x6D5E,0x6D67,0x6D60,0x6D97,0x6D70,0x6D7C,
- 0x6D5F,0x6D82,0x6D98,0x6D2F,0x6D68,0x6D8B,0x6D7E,0x6D80,0x6D84,0x6D16,
- 0x6D83,0x6D7B,0x6D7D,0x6D75,0x6D90,0x70DC,0x70D3,0x70D1,0x70DD,0x70CB,
- 0x7F39,0x70E2,0x70D7,0x70D2,0x70DE,0x70E0,0x70D4,0x70CD,0x70C5,0x70C6,
- 0x70C7,0x70DA,0x70CE,0x70E1,0x7242,0x7278,0x7277,0x7276,0x7300,0x72FA,
- 0x72F4,0x72FE,0x72F6,0x72F3,0x72FB,0x7301,0x73D3,0x73D9,0x73E5,0x73D6,
- 0x73BC,0x73E7,0x73E3,0x73E9,0x73DC,0x73D2,0x73DB,0x73D4,0x73DD,0x73DA,
- 0x73D7,0x73D8,0x73E8,0x74DE,0x74DF,
- /* plane 2, row 17 */
- 1 | (94 << 8), /* first, last */
- 0x74F4,0x74F5,0x7521,0x755B,0x755F,0x75B0,0x75C1,0x75BB,0x75C4,
- 0x75C0,0x75BF,0x75B6,0x75BA,0x768A,0x76C9,0x771D,0x771B,0x7710,0x7713,
- 0x7712,0x7723,0x7711,0x7715,0x7719,0x771A,0x7722,0x7727,0x7823,0x782C,
- 0x7822,0x7835,0x782F,0x7828,0x782E,0x782B,0x7821,0x7829,0x7833,0x782A,
- 0x7831,0x7954,0x795B,0x794F,0x795C,0x7953,0x7952,0x7951,0x79EB,0x79EC,
- 0x79E0,0x79EE,0x79ED,0x79EA,0x79DC,0x79DE,0x79DD,0x7A86,0x7A89,0x7A85,
- 0x7A8B,0x7A8C,0x7A8A,0x7A87,0x7AD8,0x7B10,0x7B04,0x7B13,0x7B05,0x7B0F,
- 0x7B08,0x7B0A,0x7B0E,0x7B09,0x7B12,0x7C84,0x7C91,0x7C8A,0x7C8C,0x7C88,
- 0x7C8D,0x7C85,0x7D1E,0x7D1D,0x7D11,0x7D0E,0x7D18,0x7D16,0x7D13,0x7D1F,
- 0x7D12,0x7D0F,0x7D0C,0x7F5C,0x7F61,
- /* plane 2, row 18 */
- 1 | (94 << 8), /* first, last */
- 0x7F5E,0x7F60,0x7F5D,0x7F5B,0x7F96,0x7F92,0x7FC3,0x7FC2,0x7FC0,
- 0x8016,0x803E,0x8039,0x80FA,0x80F2,0x80F9,0x80F5,0x8101,0x80FB,0x8100,
- 0x8201,0x822F,0x8225,0x8333,0x832D,0x8344,0x8319,0x8351,0x8325,0x8356,
- 0x833F,0x8341,0x8326,0x831C,0x8322,0x8342,0x834E,0x831B,0x832A,0x8308,
- 0x833C,0x834D,0x8316,0x8324,0x8320,0x8337,0x832F,0x8329,0x8347,0x8345,
- 0x834C,0x8353,0x831E,0x832C,0x834B,0x8327,0x8348,0x8653,0x8652,0x86A2,
- 0x86A8,0x8696,0x868D,0x8691,0x869E,0x8687,0x8697,0x8686,0x868B,0x869A,
- 0x8685,0x86A5,0x8699,0x86A1,0x86A7,0x8695,0x8698,0x868E,0x869D,0x8690,
- 0x8694,0x8843,0x8844,0x886D,0x8875,0x8876,0x8872,0x8880,0x8871,0x887F,
- 0x886F,0x8883,0x887E,0x8874,0x887C,
- /* plane 2, row 19 */
- 1 | (94 << 8), /* first, last */
- 0x8A12,0x8C47,0x8C57,0x8C7B,0x8CA4,0x8CA3,0x8D76,0x8D78,0x8DB5,
- 0x8DB7,0x8DB6,0x8ED1,0x8ED3,0x8FFE,0x8FF5,0x9002,0x8FFF,0x8FFB,0x9004,
- 0x8FFC,0x8FF6,0x90D6,0x90E0,0x90D9,0x90DA,0x90E3,0x90DF,0x90E5,0x90D8,
- 0x90DB,0x90D7,0x90DC,0x90E4,0x9150,0x914E,0x914F,0x91D5,0x91E2,0x91DA,
- 0x965C,0x965F,0x96BC,0x98E3,0x9ADF,0x9B2F,0x4E7F,0x5070,0x506A,0x5061,
- 0x505E,0x5060,0x5053,0x504B,0x505D,0x5072,0x5048,0x504D,0x5041,0x505B,
- 0x504A,0x5062,0x5015,0x5045,0x505F,0x5069,0x506B,0x5063,0x5064,0x5046,
- 0x5040,0x506E,0x5073,0x5057,0x5051,0x51D0,0x526B,0x526D,0x526C,0x526E,
- 0x52D6,0x52D3,0x532D,0x539C,0x5575,0x5576,0x553C,0x554D,0x5550,0x5534,
- 0x552A,0x5551,0x5562,0x5536,0x5535,
- /* plane 2, row 20 */
- 1 | (94 << 8), /* first, last */
- 0x5530,0x5552,0x5545,0x550C,0x5532,0x5565,0x554E,0x5539,0x5548,
- 0x552D,0x553B,0x5540,0x554B,0x570A,0x5707,0x57FB,0x5814,0x57E2,0x57F6,
- 0x57DC,0x57F4,0x5800,0x57ED,0x57FD,0x5808,0x57F8,0x580B,0x57F3,0x57CF,
- 0x5807,0x57EE,0x57E3,0x57F2,0x57E5,0x57EC,0x57E1,0x580E,0x57FC,0x5810,
- 0x57E7,0x5801,0x580C,0x57F1,0x57E9,0x57F0,0x580D,0x5804,0x595C,0x5A60,
- 0x5A58,0x5A55,0x5A67,0x5A5E,0x5A38,0x5A35,0x5A6D,0x5A50,0x5A5F,0x5A65,
- 0x5A6C,0x5A53,0x5A64,0x5A57,0x5A43,0x5A5D,0x5A52,0x5A44,0x5A5B,0x5A48,
- 0x5A8E,0x5A3E,0x5A4D,0x5A39,0x5A4C,0x5A70,0x5A69,0x5A47,0x5A51,0x5A56,
- 0x5A42,0x5A5C,0x5B72,0x5B6E,0x5BC1,0x5BC0,0x5C59,0x5D1E,0x5D0B,0x5D1D,
- 0x5D1A,0x5D20,0x5D0C,0x5D28,0x5D0D,
- /* plane 2, row 21 */
- 1 | (94 << 8), /* first, last */
- 0x5D26,0x5D25,0x5D0F,0x5D30,0x5D12,0x5D23,0x5D1F,0x5D2E,0x5E3E,
- 0x5E34,0x5EB1,0x5EB4,0x5EB9,0x5EB2,0x5EB3,0x5F36,0x5F38,0x5F9B,0x5F96,
- 0x5F9F,0x608A,0x6090,0x6086,0x60BE,0x60B0,0x60BA,0x60D3,0x60D4,0x60CF,
- 0x60E4,0x60D9,0x60DD,0x60C8,0x60B1,0x60DB,0x60B7,0x60CA,0x60BF,0x60C3,
- 0x60CD,0x60C0,0x6332,0x6365,0x638A,0x6382,0x637D,0x63BD,0x639E,0x63AD,
- 0x639D,0x6397,0x63AB,0x638E,0x636F,0x6387,0x6390,0x636E,0x63AF,0x6375,
- 0x639C,0x636D,0x63AE,0x637C,0x63A4,0x633B,0x639F,0x6378,0x6385,0x6381,
- 0x6391,0x638D,0x6370,0x6553,0x65CD,0x6665,0x6661,0x665B,0x6659,0x665C,
- 0x6662,0x6718,0x6879,0x6887,0x6890,0x689C,0x686D,0x686E,0x68AE,0x68AB,
- 0x6956,0x686F,0x68A3,0x68AC,0x68A9,
- /* plane 2, row 22 */
- 1 | (94 << 8), /* first, last */
- 0x6875,0x6874,0x68B2,0x688F,0x6877,0x6892,0x687C,0x686B,0x6872,
- 0x68AA,0x6880,0x6871,0x687E,0x689B,0x6896,0x688B,0x68A0,0x6889,0x68A4,
- 0x6878,0x687B,0x6891,0x688C,0x688A,0x687D,0x6B36,0x6B33,0x6B37,0x6B38,
- 0x6B91,0x6B8F,0x6B8D,0x6B8E,0x6B8C,0x6C2A,0x6DC0,0x6DAB,0x6DB4,0x6DB3,
- 0x6E74,0x6DAC,0x6DE9,0x6DE2,0x6DB7,0x6DF6,0x6DD4,0x6E00,0x6DC8,0x6DE0,
- 0x6DDF,0x6DD6,0x6DBE,0x6DE5,0x6DDC,0x6DDD,0x6DDB,0x6DF4,0x6DCA,0x6DBD,
- 0x6DED,0x6DF0,0x6DBA,0x6DD5,0x6DC2,0x6DCF,0x6DC9,0x6DD0,0x6DF2,0x6DD3,
- 0x6DFD,0x6DD7,0x6DCD,0x6DE3,0x6DBB,0x70FA,0x710D,0x70F7,0x7117,0x70F4,
- 0x710C,0x70F0,0x7104,0x70F3,0x7110,0x70FC,0x70FF,0x7106,0x7113,0x7100,
- 0x70F8,0x70F6,0x710B,0x7102,0x710E,
- /* plane 2, row 23 */
- 1 | (94 << 8), /* first, last */
- 0x727E,0x727B,0x727C,0x727F,0x731D,0x7317,0x7307,0x7311,0x7318,
- 0x730A,0x7308,0x72FF,0x730F,0x731E,0x7388,0x73F6,0x73F8,0x73F5,0x7404,
- 0x7401,0x73FD,0x7407,0x7400,0x73FA,0x73FC,0x73FF,0x740C,0x740B,0x73F4,
- 0x7408,0x7564,0x7563,0x75CE,0x75D2,0x75CF,0x75CB,0x75CC,0x75D1,0x75D0,
- 0x768F,0x7689,0x76D3,0x7739,0x772F,0x772D,0x7731,0x7732,0x7734,0x7733,
- 0x773D,0x7725,0x773B,0x7735,0x7848,0x7852,0x7849,0x784D,0x784A,0x784C,
- 0x7826,0x7845,0x7850,0x7964,0x7967,0x7969,0x796A,0x7963,0x796B,0x7961,
- 0x79BB,0x79FA,0x79F8,0x79F6,0x79F7,0x7A8F,0x7A94,0x7A90,0x7B35,0x7B3B,
- 0x7B34,0x7B25,0x7B30,0x7B22,0x7B24,0x7B33,0x7B18,0x7B2A,0x7B1D,0x7B31,
- 0x7B2B,0x7B2D,0x7B2F,0x7B32,0x7B38,
- /* plane 2, row 24 */
- 1 | (94 << 8), /* first, last */
- 0x7B1A,0x7B23,0x7C94,0x7C98,0x7C96,0x7CA3,0x7D35,0x7D3D,0x7D38,
- 0x7D36,0x7D3A,0x7D45,0x7D2C,0x7D29,0x7D41,0x7D47,0x7D3E,0x7D3F,0x7D4A,
- 0x7D3B,0x7D28,0x7F63,0x7F95,0x7F9C,0x7F9D,0x7F9B,0x7FCA,0x7FCB,0x7FCD,
- 0x7FD0,0x7FD1,0x7FC7,0x7FCF,0x7FC9,0x801F,0x801E,0x801B,0x8047,0x8043,
- 0x8048,0x8118,0x8125,0x8119,0x811B,0x812D,0x811F,0x812C,0x811E,0x8121,
- 0x8115,0x8127,0x811D,0x8122,0x8211,0x8238,0x8233,0x823A,0x8234,0x8232,
- 0x8274,0x8390,0x83A3,0x83A8,0x838D,0x837A,0x8373,0x83A4,0x8374,0x838F,
- 0x8381,0x8395,0x8399,0x8375,0x8394,0x83A9,0x837D,0x8383,0x838C,0x839D,
- 0x839B,0x83AA,0x838B,0x837E,0x83A5,0x83AF,0x8388,0x8397,0x83B0,0x837F,
- 0x83A6,0x8387,0x83AE,0x8376,0x8659,
- /* plane 2, row 25 */
- 1 | (94 << 8), /* first, last */
- 0x8656,0x86BF,0x86B7,0x86C2,0x86C1,0x86C5,0x86BA,0x86B0,0x86C8,
- 0x86B9,0x86B3,0x86B8,0x86CC,0x86B4,0x86BB,0x86BC,0x86C3,0x86BD,0x86BE,
- 0x8852,0x8889,0x8895,0x88A8,0x88A2,0x88AA,0x889A,0x8891,0x88A1,0x889F,
- 0x8898,0x88A7,0x8899,0x889B,0x8897,0x88A4,0x88AC,0x888C,0x8893,0x888E,
- 0x8982,0x89D6,0x89D9,0x89D5,0x8A30,0x8A27,0x8A2C,0x8A1E,0x8C39,0x8C3B,
- 0x8C5C,0x8C5D,0x8C7D,0x8CA5,0x8D7D,0x8D7B,0x8D79,0x8DBC,0x8DC2,0x8DB9,
- 0x8DBF,0x8DC1,0x8ED8,0x8EDE,0x8EDD,0x8EDC,0x8ED7,0x8EE0,0x8EE1,0x9024,
- 0x900B,0x9011,0x901C,0x900C,0x9021,0x90EF,0x90EA,0x90F0,0x90F4,0x90F2,
- 0x90F3,0x90D4,0x90EB,0x90EC,0x90E9,0x9156,0x9158,0x915A,0x9153,0x9155,
- 0x91EC,0x91F4,0x91F1,0x91F3,0x91F8,
- /* plane 2, row 26 */
- 1 | (94 << 8), /* first, last */
- 0x91E4,0x91F9,0x91EA,0x91EB,0x91F7,0x91E8,0x91EE,0x957A,0x9586,
- 0x9588,0x967C,0x966D,0x966B,0x9671,0x966F,0x96BF,0x976A,0x9804,0x98E5,
- 0x9997,0x509B,0x5095,0x5094,0x509E,0x508B,0x50A3,0x5083,0x508C,0x508E,
- 0x509D,0x5068,0x509C,0x5092,0x5082,0x5087,0x515F,0x51D4,0x5312,0x5311,
- 0x53A4,0x53A7,0x5591,0x55A8,0x55A5,0x55AD,0x5577,0x5645,0x55A2,0x5593,
- 0x5588,0x558F,0x55B5,0x5581,0x55A3,0x5592,0x55A4,0x557D,0x558C,0x55A6,
- 0x557F,0x5595,0x55A1,0x558E,0x570C,0x5829,0x5837,0x5819,0x581E,0x5827,
- 0x5823,0x5828,0x57F5,0x5848,0x5825,0x581C,0x581B,0x5833,0x583F,0x5836,
- 0x582E,0x5839,0x5838,0x582D,0x582C,0x583B,0x5961,0x5AAF,0x5A94,0x5A9F,
- 0x5A7A,0x5AA2,0x5A9E,0x5A78,0x5AA6,
- /* plane 2, row 27 */
- 1 | (94 << 8), /* first, last */
- 0x5A7C,0x5AA5,0x5AAC,0x5A95,0x5AAE,0x5A37,0x5A84,0x5A8A,0x5A97,
- 0x5A83,0x5A8B,0x5AA9,0x5A7B,0x5A7D,0x5A8C,0x5A9C,0x5A8F,0x5A93,0x5A9D,
- 0x5BEA,0x5BCD,0x5BCB,0x5BD4,0x5BD1,0x5BCA,0x5BCE,0x5C0C,0x5C30,0x5D37,
- 0x5D43,0x5D6B,0x5D41,0x5D4B,0x5D3F,0x5D35,0x5D51,0x5D4E,0x5D55,0x5D33,
- 0x5D3A,0x5D52,0x5D3D,0x5D31,0x5D59,0x5D42,0x5D39,0x5D49,0x5D38,0x5D3C,
- 0x5D32,0x5D36,0x5D40,0x5D45,0x5E44,0x5E41,0x5F58,0x5FA6,0x5FA5,0x5FAB,
- 0x60C9,0x60B9,0x60CC,0x60E2,0x60CE,0x60C4,0x6114,0x60F2,0x610A,0x6116,
- 0x6105,0x60F5,0x6113,0x60F8,0x60FC,0x60FE,0x60C1,0x6103,0x6118,0x611D,
- 0x6110,0x60FF,0x6104,0x610B,0x624A,0x6394,0x63B1,0x63B0,0x63CE,0x63E5,
- 0x63E8,0x63EF,0x63C3,0x649D,0x63F3,
- /* plane 2, row 28 */
- 1 | (94 << 8), /* first, last */
- 0x63CA,0x63E0,0x63F6,0x63D5,0x63F2,0x63F5,0x6461,0x63DF,0x63BE,
- 0x63DD,0x63DC,0x63C4,0x63D8,0x63D3,0x63C2,0x63C7,0x63CC,0x63CB,0x63C8,
- 0x63F0,0x63D7,0x63D9,0x6532,0x6567,0x656A,0x6564,0x655C,0x6568,0x6565,
- 0x658C,0x659D,0x659E,0x65AE,0x65D0,0x65D2,0x667C,0x666C,0x667B,0x6680,
- 0x6671,0x6679,0x666A,0x6672,0x6701,0x690C,0x68D3,0x6904,0x68DC,0x692A,
- 0x68EC,0x68EA,0x68F1,0x690F,0x68D6,0x68F7,0x68EB,0x68E4,0x68F6,0x6913,
- 0x6910,0x68F3,0x68E1,0x6907,0x68CC,0x6908,0x6970,0x68B4,0x6911,0x68EF,
- 0x68C6,0x6914,0x68F8,0x68D0,0x68FD,0x68FC,0x68E8,0x690B,0x690A,0x6917,
- 0x68CE,0x68C8,0x68DD,0x68DE,0x68E6,0x68F4,0x68D1,0x6906,0x68D4,0x68E9,
- 0x6915,0x6925,0x68C7,0x6B39,0x6B3B,
- /* plane 2, row 29 */
- 1 | (94 << 8), /* first, last */
- 0x6B3F,0x6B3C,0x6B94,0x6B97,0x6B99,0x6B95,0x6BBD,0x6BF0,0x6BF2,
- 0x6BF3,0x6C30,0x6DFC,0x6E46,0x6E47,0x6E1F,0x6E49,0x6E88,0x6E3C,0x6E3D,
- 0x6E45,0x6E62,0x6E2B,0x6E3F,0x6E41,0x6E5D,0x6E73,0x6E1C,0x6E33,0x6E4B,
- 0x6E40,0x6E51,0x6E3B,0x6E03,0x6E2E,0x6E5E,0x6E68,0x6E5C,0x6E61,0x6E31,
- 0x6E28,0x6E60,0x6E71,0x6E6B,0x6E39,0x6E22,0x6E30,0x6E53,0x6E65,0x6E27,
- 0x6E78,0x6E64,0x6E77,0x6E55,0x6E79,0x6E52,0x6E66,0x6E35,0x6E36,0x6E5A,
- 0x7120,0x711E,0x712F,0x70FB,0x712E,0x7131,0x7123,0x7125,0x7122,0x7132,
- 0x711F,0x7128,0x713A,0x711B,0x724B,0x725A,0x7288,0x7289,0x7286,0x7285,
- 0x728B,0x7312,0x730B,0x7330,0x7322,0x7331,0x7333,0x7327,0x7332,0x732D,
- 0x7326,0x7323,0x7335,0x730C,0x742E,
- /* plane 2, row 30 */
- 1 | (94 << 8), /* first, last */
- 0x742C,0x7430,0x742B,0x7416,0x741A,0x7421,0x742D,0x7431,0x7424,
- 0x7423,0x741D,0x7429,0x7420,0x7432,0x74FB,0x752F,0x756F,0x756C,0x75E7,
- 0x75DA,0x75E1,0x75E6,0x75DD,0x75DF,0x75E4,0x75D7,0x7695,0x7692,0x76DA,
- 0x7746,0x7747,0x7744,0x774D,0x7745,0x774A,0x774E,0x774B,0x774C,0x77DE,
- 0x77EC,0x7860,0x7864,0x7865,0x785C,0x786D,0x7871,0x786A,0x786E,0x7870,
- 0x7869,0x7868,0x785E,0x7862,0x7974,0x7973,0x7972,0x7970,0x7A02,0x7A0A,
- 0x7A03,0x7A0C,0x7A04,0x7A99,0x7AE6,0x7AE4,0x7B4A,0x7B47,0x7B44,0x7B48,
- 0x7B4C,0x7B4E,0x7B40,0x7B58,0x7B45,0x7CA2,0x7C9E,0x7CA8,0x7CA1,0x7D58,
- 0x7D6F,0x7D63,0x7D53,0x7D56,0x7D67,0x7D6A,0x7D4F,0x7D6D,0x7D5C,0x7D6B,
- 0x7D52,0x7D54,0x7D69,0x7D51,0x7D5F,
- /* plane 2, row 31 */
- 1 | (94 << 8), /* first, last */
- 0x7D4E,0x7F3E,0x7F3F,0x7F65,0x7F66,0x7FA2,0x7FA0,0x7FA1,0x7FD7,
- 0x8051,0x804F,0x8050,0x80FE,0x80D4,0x8143,0x814A,0x8152,0x814F,0x8147,
- 0x813D,0x814D,0x813A,0x81E6,0x81EE,0x81F7,0x81F8,0x81F9,0x8204,0x823C,
- 0x823D,0x823F,0x8275,0x833B,0x83CF,0x83F9,0x8423,0x83C0,0x83E8,0x8412,
- 0x83E7,0x83E4,0x83FC,0x83F6,0x8410,0x83C6,0x83C8,0x83EB,0x83E3,0x83BF,
- 0x8401,0x83DD,0x83E5,0x83D8,0x83FF,0x83E1,0x83CB,0x83CE,0x83D6,0x83F5,
- 0x83C9,0x8409,0x840F,0x83DE,0x8411,0x8406,0x83C2,0x83F3,0x83D5,0x83FA,
- 0x83C7,0x83D1,0x83EA,0x8413,0x839A,0x83C3,0x83EC,0x83EE,0x83C4,0x83FB,
- 0x83D7,0x83E2,0x841B,0x83DB,0x83FE,0x86D8,0x86E2,0x86E6,0x86D3,0x86E3,
- 0x86DA,0x86EA,0x86DD,0x86EB,0x86DC,
- /* plane 2, row 32 */
- 1 | (94 << 8), /* first, last */
- 0x86EC,0x86E9,0x86D7,0x86E8,0x86D1,0x8848,0x8856,0x8855,0x88BA,
- 0x88D7,0x88B9,0x88B8,0x88C0,0x88BE,0x88B6,0x88BC,0x88B7,0x88BD,0x88B2,
- 0x8901,0x88C9,0x8995,0x8998,0x8997,0x89DD,0x89DA,0x89DB,0x8A4E,0x8A4D,
- 0x8A39,0x8A59,0x8A40,0x8A57,0x8A58,0x8A44,0x8A45,0x8A52,0x8A48,0x8A51,
- 0x8A4A,0x8A4C,0x8A4F,0x8C5F,0x8C81,0x8C80,0x8CBA,0x8CBE,0x8CB0,0x8CB9,
- 0x8CB5,0x8D84,0x8D80,0x8D89,0x8DD8,0x8DD3,0x8DCD,0x8DC7,0x8DD6,0x8DDC,
- 0x8DCF,0x8DD5,0x8DD9,0x8DC8,0x8DD7,0x8DC5,0x8EEF,0x8EF7,0x8EFA,0x8EF9,
- 0x8EE6,0x8EEE,0x8EE5,0x8EF5,0x8EE7,0x8EE8,0x8EF6,0x8EEB,0x8EF1,0x8EEC,
- 0x8EF4,0x8EE9,0x902D,0x9034,0x902F,0x9106,0x912C,0x9104,0x90FF,0x90FC,
- 0x9108,0x90F9,0x90FB,0x9101,0x9100,
- /* plane 2, row 33 */
- 1 | (94 << 8), /* first, last */
- 0x9107,0x9105,0x9103,0x9161,0x9164,0x915F,0x9162,0x9160,0x9201,
- 0x920A,0x9225,0x9203,0x921A,0x9226,0x920F,0x920C,0x9200,0x9212,0x91FF,
- 0x91FD,0x9206,0x9204,0x9227,0x9202,0x921C,0x9224,0x9219,0x9217,0x9205,
- 0x9216,0x957B,0x958D,0x958C,0x9590,0x9687,0x967E,0x9688,0x9689,0x9683,
- 0x9680,0x96C2,0x96C8,0x96C3,0x96F1,0x96F0,0x976C,0x9770,0x976E,0x9807,
- 0x98A9,0x98EB,0x9CE6,0x9EF9,0x4E83,0x4E84,0x4EB6,0x50BD,0x50BF,0x50C6,
- 0x50AE,0x50C4,0x50CA,0x50B4,0x50C8,0x50C2,0x50B0,0x50C1,0x50BA,0x50B1,
- 0x50CB,0x50C9,0x50B6,0x50B8,0x51D7,0x527A,0x5278,0x527B,0x527C,0x55C3,
- 0x55DB,0x55CC,0x55D0,0x55CB,0x55CA,0x55DD,0x55C0,0x55D4,0x55C4,0x55E9,
- 0x55BF,0x55D2,0x558D,0x55CF,0x55D5,
- /* plane 2, row 34 */
- 1 | (94 << 8), /* first, last */
- 0x55E2,0x55D6,0x55C8,0x55F2,0x55CD,0x55D9,0x55C2,0x5714,0x5853,
- 0x5868,0x5864,0x584F,0x584D,0x5849,0x586F,0x5855,0x584E,0x585D,0x5859,
- 0x5865,0x585B,0x583D,0x5863,0x5871,0x58FC,0x5AC7,0x5AC4,0x5ACB,0x5ABA,
- 0x5AB8,0x5AB1,0x5AB5,0x5AB0,0x5ABF,0x5AC8,0x5ABB,0x5AC6,0x5AB7,0x5AC0,
- 0x5ACA,0x5AB4,0x5AB6,0x5ACD,0x5AB9,0x5A90,0x5BD6,0x5BD8,0x5BD9,0x5C1F,
- 0x5C33,0x5D71,0x5D63,0x5D4A,0x5D65,0x5D72,0x5D6C,0x5D5E,0x5D68,0x5D67,
- 0x5D62,0x5DF0,0x5E4F,0x5E4E,0x5E4A,0x5E4D,0x5E4B,0x5EC5,0x5ECC,0x5EC6,
- 0x5ECB,0x5EC7,0x5F40,0x5FAF,0x5FAD,0x60F7,0x6149,0x614A,0x612B,0x6145,
- 0x6136,0x6132,0x612E,0x6146,0x612F,0x614F,0x6129,0x6140,0x6220,0x9168,
- 0x6223,0x6225,0x6224,0x63C5,0x63F1,
- /* plane 2, row 35 */
- 1 | (94 << 8), /* first, last */
- 0x63EB,0x6410,0x6412,0x6409,0x6420,0x6424,0x6433,0x6443,0x641F,
- 0x6415,0x6418,0x6439,0x6437,0x6422,0x6423,0x640C,0x6426,0x6430,0x6428,
- 0x6441,0x6435,0x642F,0x640A,0x641A,0x6440,0x6425,0x6427,0x640B,0x63E7,
- 0x641B,0x642E,0x6421,0x640E,0x656F,0x6592,0x65D3,0x6686,0x668C,0x6695,
- 0x6690,0x668B,0x668A,0x6699,0x6694,0x6678,0x6720,0x6966,0x695F,0x6938,
- 0x694E,0x6962,0x6971,0x693F,0x6945,0x696A,0x6939,0x6942,0x6957,0x6959,
- 0x697A,0x6948,0x6949,0x6935,0x696C,0x6933,0x693D,0x6965,0x68F0,0x6978,
- 0x6934,0x6969,0x6940,0x696F,0x6944,0x6976,0x6958,0x6941,0x6974,0x694C,
- 0x693B,0x694B,0x6937,0x695C,0x694F,0x6951,0x6932,0x6952,0x692F,0x697B,
- 0x693C,0x6B46,0x6B45,0x6B43,0x6B42,
- /* plane 2, row 36 */
- 1 | (94 << 8), /* first, last */
- 0x6B48,0x6B41,0x6B9B,0x6BFB,0x6BFC,0x6BF9,0x6BF7,0x6BF8,0x6E9B,
- 0x6ED6,0x6EC8,0x6E8F,0x6EC0,0x6E9F,0x6E93,0x6E94,0x6EA0,0x6EB1,0x6EB9,
- 0x6EC6,0x6ED2,0x6EBD,0x6EC1,0x6E9E,0x6EC9,0x6EB7,0x6EB0,0x6ECD,0x6EA6,
- 0x6ECF,0x6EB2,0x6EBE,0x6EC3,0x6EDC,0x6ED8,0x6E99,0x6E92,0x6E8E,0x6E8D,
- 0x6EA4,0x6EA1,0x6EBF,0x6EB3,0x6ED0,0x6ECA,0x6E97,0x6EAE,0x6EA3,0x7147,
- 0x7154,0x7152,0x7163,0x7160,0x7141,0x715D,0x7162,0x7172,0x7178,0x716A,
- 0x7161,0x7142,0x7158,0x7143,0x714B,0x7170,0x715F,0x7150,0x7153,0x7144,
- 0x714D,0x715A,0x724F,0x728D,0x728C,0x7291,0x7290,0x728E,0x733C,0x7342,
- 0x733B,0x733A,0x7340,0x734A,0x7349,0x7444,0x744A,0x744B,0x7452,0x7451,
- 0x7457,0x7440,0x744F,0x7450,0x744E,
- /* plane 2, row 37 */
- 1 | (94 << 8), /* first, last */
- 0x7442,0x7446,0x744D,0x7454,0x74E1,0x74FF,0x74FE,0x74FD,0x751D,
- 0x7579,0x7577,0x6983,0x75EF,0x760F,0x7603,0x75F7,0x75FE,0x75FC,0x75F9,
- 0x75F8,0x7610,0x75FB,0x75F6,0x75ED,0x75F5,0x75FD,0x7699,0x76B5,0x76DD,
- 0x7755,0x775F,0x7760,0x7752,0x7756,0x775A,0x7769,0x7767,0x7754,0x7759,
- 0x776D,0x77E0,0x7887,0x789A,0x7894,0x788F,0x7884,0x7895,0x7885,0x7886,
- 0x78A1,0x7883,0x7879,0x7899,0x7880,0x7896,0x787B,0x797C,0x7982,0x797D,
- 0x7979,0x7A11,0x7A18,0x7A19,0x7A12,0x7A17,0x7A15,0x7A22,0x7A13,0x7A1B,
- 0x7A10,0x7AA3,0x7AA2,0x7A9E,0x7AEB,0x7B66,0x7B64,0x7B6D,0x7B74,0x7B69,
- 0x7B72,0x7B65,0x7B73,0x7B71,0x7B70,0x7B61,0x7B78,0x7B76,0x7B63,0x7CB2,
- 0x7CB4,0x7CAF,0x7D88,0x7D86,0x7D80,
- /* plane 2, row 38 */
- 1 | (94 << 8), /* first, last */
- 0x7D8D,0x7D7F,0x7D85,0x7D7A,0x7D8E,0x7D7B,0x7D83,0x7D7C,0x7D8C,
- 0x7D94,0x7D84,0x7D7D,0x7D92,0x7F6D,0x7F6B,0x7F67,0x7F68,0x7F6C,0x7FA6,
- 0x7FA5,0x7FA7,0x7FDB,0x7FDC,0x8021,0x8164,0x8160,0x8177,0x815C,0x8169,
- 0x815B,0x8162,0x8172,0x6721,0x815E,0x8176,0x8167,0x816F,0x8144,0x8161,
- 0x821D,0x8249,0x8244,0x8240,0x8242,0x8245,0x84F1,0x843F,0x8456,0x8476,
- 0x8479,0x848F,0x848D,0x8465,0x8451,0x8440,0x8486,0x8467,0x8430,0x844D,
- 0x847D,0x845A,0x8459,0x8474,0x8473,0x845D,0x8507,0x845E,0x8437,0x843A,
- 0x8434,0x847A,0x8443,0x8478,0x8432,0x8445,0x8429,0x83D9,0x844B,0x842F,
- 0x8442,0x842D,0x845F,0x8470,0x8439,0x844E,0x844C,0x8452,0x846F,0x84C5,
- 0x848E,0x843B,0x8447,0x8436,0x8433,
- /* plane 2, row 39 */
- 1 | (94 << 8), /* first, last */
- 0x8468,0x847E,0x8444,0x842B,0x8460,0x8454,0x846E,0x8450,0x870B,
- 0x8704,0x86F7,0x870C,0x86FA,0x86D6,0x86F5,0x874D,0x86F8,0x870E,0x8709,
- 0x8701,0x86F6,0x870D,0x8705,0x88D6,0x88CB,0x88CD,0x88CE,0x88DE,0x88DB,
- 0x88DA,0x88CC,0x88D0,0x8985,0x899B,0x89DF,0x89E5,0x89E4,0x89E1,0x89E0,
- 0x89E2,0x89DC,0x89E6,0x8A76,0x8A86,0x8A7F,0x8A61,0x8A3F,0x8A77,0x8A82,
- 0x8A84,0x8A75,0x8A83,0x8A81,0x8A74,0x8A7A,0x8C3C,0x8C4B,0x8C4A,0x8C65,
- 0x8C64,0x8C66,0x8C86,0x8C84,0x8C85,0x8CCC,0x8D68,0x8D69,0x8D91,0x8D8C,
- 0x8D8E,0x8D8F,0x8D8D,0x8D93,0x8D94,0x8D90,0x8D92,0x8DF0,0x8DE0,0x8DEC,
- 0x8DF1,0x8DEE,0x8DD0,0x8DE9,0x8DE3,0x8DE2,0x8DE7,0x8DF2,0x8DEB,0x8DF4,
- 0x8F06,0x8EFF,0x8F01,0x8F00,0x8F05,
- /* plane 2, row 40 */
- 1 | (94 << 8), /* first, last */
- 0x8F07,0x8F08,0x8F02,0x8F0B,0x9052,0x903F,0x9044,0x9049,0x903D,
- 0x9110,0x910D,0x910F,0x9111,0x9116,0x9114,0x910B,0x910E,0x916E,0x916F,
- 0x9248,0x9252,0x9230,0x923A,0x9266,0x9233,0x9265,0x925E,0x9283,0x922E,
- 0x924A,0x9246,0x926D,0x926C,0x924F,0x9260,0x9267,0x926F,0x9236,0x9261,
- 0x9270,0x9231,0x9254,0x9263,0x9250,0x9272,0x924E,0x9253,0x924C,0x9256,
- 0x9232,0x959F,0x959C,0x959E,0x959B,0x9692,0x9693,0x9691,0x9697,0x96CE,
- 0x96FA,0x96FD,0x96F8,0x96F5,0x9773,0x9777,0x9778,0x9772,0x980F,0x980D,
- 0x980E,0x98AC,0x98F6,0x98F9,0x99AF,0x99B2,0x99B0,0x99B5,0x9AAD,0x9AAB,
- 0x9B5B,0x9CEA,0x9CED,0x9CE7,0x9E80,0x9EFD,0x50E6,0x50D4,0x50D7,0x50E8,
- 0x50F3,0x50DB,0x50EA,0x50DD,0x50E4,
- /* plane 2, row 41 */
- 1 | (94 << 8), /* first, last */
- 0x50D3,0x50EC,0x50F0,0x50EF,0x50E3,0x50E0,0x51D8,0x5280,0x5281,
- 0x52E9,0x52EB,0x5330,0x53AC,0x5627,0x5615,0x560C,0x5612,0x55FC,0x560F,
- 0x561C,0x5601,0x5613,0x5602,0x55FA,0x561D,0x5604,0x55FF,0x55F9,0x5889,
- 0x587C,0x5890,0x5898,0x5886,0x5881,0x587F,0x5874,0x588B,0x587A,0x5887,
- 0x5891,0x588E,0x5876,0x5882,0x5888,0x587B,0x5894,0x588F,0x58FE,0x596B,
- 0x5ADC,0x5AEE,0x5AE5,0x5AD5,0x5AEA,0x5ADA,0x5AED,0x5AEB,0x5AF3,0x5AE2,
- 0x5AE0,0x5ADB,0x5AEC,0x5ADE,0x5ADD,0x5AD9,0x5AE8,0x5ADF,0x5B77,0x5BE0,
- 0x5BE3,0x5C63,0x5D82,0x5D80,0x5D7D,0x5D86,0x5D7A,0x5D81,0x5D77,0x5D8A,
- 0x5D89,0x5D88,0x5D7E,0x5D7C,0x5D8D,0x5D79,0x5D7F,0x5E58,0x5E59,0x5E53,
- 0x5ED8,0x5ED1,0x5ED7,0x5ECE,0x5EDC,
- /* plane 2, row 42 */
- 1 | (94 << 8), /* first, last */
- 0x5ED5,0x5ED9,0x5ED2,0x5ED4,0x5F44,0x5F43,0x5F6F,0x5FB6,0x612C,
- 0x6128,0x6141,0x615E,0x6171,0x6173,0x6152,0x6153,0x6172,0x616C,0x6180,
- 0x6174,0x6154,0x617A,0x615B,0x6165,0x613B,0x616A,0x6161,0x6156,0x6229,
- 0x6227,0x622B,0x642B,0x644D,0x645B,0x645D,0x6474,0x6476,0x6472,0x6473,
- 0x647D,0x6475,0x6466,0x64A6,0x644E,0x6482,0x645E,0x645C,0x644B,0x6453,
- 0x6460,0x6450,0x647F,0x643F,0x646C,0x646B,0x6459,0x6465,0x6477,0x6573,
- 0x65A0,0x66A1,0x66A0,0x669F,0x6705,0x6704,0x6722,0x69B1,0x69B6,0x69C9,
- 0x69A0,0x69CE,0x6996,0x69B0,0x69AC,0x69BC,0x6991,0x6999,0x698E,0x69A7,
- 0x698D,0x69A9,0x69BE,0x69AF,0x69BF,0x69C4,0x69BD,0x69A4,0x69D4,0x69B9,
- 0x69CA,0x699A,0x69CF,0x69B3,0x6993,
- /* plane 2, row 43 */
- 1 | (94 << 8), /* first, last */
- 0x69AA,0x69A1,0x699E,0x69D9,0x6997,0x6990,0x69C2,0x69B5,0x69A5,
- 0x69C6,0x6B4A,0x6B4D,0x6B4B,0x6B9E,0x6B9F,0x6BA0,0x6BC3,0x6BC4,0x6BFE,
- 0x6ECE,0x6EF5,0x6EF1,0x6F03,0x6F25,0x6EF8,0x6F37,0x6EFB,0x6F2E,0x6F09,
- 0x6F4E,0x6F19,0x6F1A,0x6F27,0x6F18,0x6F3B,0x6F12,0x6EED,0x6F0A,0x6F36,
- 0x6F73,0x6EF9,0x6EEE,0x6F2D,0x6F40,0x6F30,0x6F3C,0x6F35,0x6EEB,0x6F07,
- 0x6F0E,0x6F43,0x6F05,0x6EFD,0x6EF6,0x6F39,0x6F1C,0x6EFC,0x6F3A,0x6F1F,
- 0x6F0D,0x6F1E,0x6F08,0x6F21,0x7187,0x7190,0x7189,0x7180,0x7185,0x7182,
- 0x718F,0x717B,0x7186,0x7181,0x7197,0x7244,0x7253,0x7297,0x7295,0x7293,
- 0x7343,0x734D,0x7351,0x734C,0x7462,0x7473,0x7471,0x7475,0x7472,0x7467,
- 0x746E,0x7500,0x7502,0x7503,0x757D,
- /* plane 2, row 44 */
- 1 | (94 << 8), /* first, last */
- 0x7590,0x7616,0x7608,0x760C,0x7615,0x7611,0x760A,0x7614,0x76B8,
- 0x7781,0x777C,0x7785,0x7782,0x776E,0x7780,0x776F,0x777E,0x7783,0x78B2,
- 0x78AA,0x78B4,0x78AD,0x78A8,0x787E,0x78AB,0x789E,0x78A5,0x78A0,0x78AC,
- 0x78A2,0x78A4,0x7998,0x798A,0x798B,0x7996,0x7995,0x7994,0x7993,0x7997,
- 0x7988,0x7992,0x7990,0x7A2B,0x7A4A,0x7A30,0x7A2F,0x7A28,0x7A26,0x7AA8,
- 0x7AAB,0x7AAC,0x7AEE,0x7B88,0x7B9C,0x7B8A,0x7B91,0x7B90,0x7B96,0x7B8D,
- 0x7B8C,0x7B9B,0x7B8E,0x7B85,0x7B98,0x5284,0x7B99,0x7BA4,0x7B82,0x7CBB,
- 0x7CBF,0x7CBC,0x7CBA,0x7DA7,0x7DB7,0x7DC2,0x7DA3,0x7DAA,0x7DC1,0x7DC0,
- 0x7DC5,0x7D9D,0x7DCE,0x7DC4,0x7DC6,0x7DCB,0x7DCC,0x7DAF,0x7DB9,0x7D96,
- 0x7DBC,0x7D9F,0x7DA6,0x7DAE,0x7DA9,
- /* plane 2, row 45 */
- 1 | (94 << 8), /* first, last */
- 0x7DA1,0x7DC9,0x7F73,0x7FE2,0x7FE3,0x7FE5,0x7FDE,0x8024,0x805D,
- 0x805C,0x8189,0x8186,0x8183,0x8187,0x818D,0x818C,0x818B,0x8215,0x8497,
- 0x84A4,0x84A1,0x849F,0x84BA,0x84CE,0x84C2,0x84AC,0x84AE,0x84AB,0x84B9,
- 0x84B4,0x84C1,0x84CD,0x84AA,0x849A,0x84B1,0x84D0,0x849D,0x84A7,0x84BB,
- 0x84A2,0x8494,0x84C7,0x84CC,0x849B,0x84A9,0x84AF,0x84A8,0x84D6,0x8498,
- 0x84B6,0x84CF,0x84A0,0x84D7,0x84D4,0x84D2,0x84DB,0x84B0,0x8491,0x8661,
- 0x8733,0x8723,0x8728,0x876B,0x8740,0x872E,0x871E,0x8721,0x8719,0x871B,
- 0x8743,0x872C,0x8741,0x873E,0x8746,0x8720,0x8732,0x872A,0x872D,0x873C,
- 0x8712,0x873A,0x8731,0x8735,0x8742,0x8726,0x8727,0x8738,0x8724,0x871A,
- 0x8730,0x8711,0x88F7,0x88E7,0x88F1,
- /* plane 2, row 46 */
- 1 | (94 << 8), /* first, last */
- 0x88F2,0x88FA,0x88FE,0x88EE,0x88FC,0x88F6,0x88FB,0x88F0,0x88EC,
- 0x88EB,0x899D,0x89A1,0x899F,0x899E,0x89E9,0x89EB,0x89E8,0x8AAB,0x8A99,
- 0x8A8B,0x8A92,0x8A8F,0x8A96,0x8C3D,0x8C68,0x8C69,0x8CD5,0x8CCF,0x8CD7,
- 0x8D96,0x8E09,0x8E02,0x8DFF,0x8E0D,0x8DFD,0x8E0A,0x8E03,0x8E07,0x8E06,
- 0x8E05,0x8DFE,0x8E00,0x8E04,0x8F10,0x8F11,0x8F0E,0x8F0D,0x9123,0x911C,
- 0x9120,0x9122,0x911F,0x911D,0x911A,0x9124,0x9121,0x911B,0x917A,0x9172,
- 0x9179,0x9173,0x92A5,0x92A4,0x9276,0x929B,0x927A,0x92A0,0x9294,0x92AA,
- 0x928D,0x92A6,0x929A,0x92AB,0x9279,0x9297,0x927F,0x92A3,0x92EE,0x928E,
- 0x9282,0x9295,0x92A2,0x927D,0x9288,0x92A1,0x928A,0x9286,0x928C,0x9299,
- 0x92A7,0x927E,0x9287,0x92A9,0x929D,
- /* plane 2, row 47 */
- 1 | (94 << 8), /* first, last */
- 0x928B,0x922D,0x969E,0x96A1,0x96FF,0x9758,0x977D,0x977A,0x977E,
- 0x9783,0x9780,0x9782,0x977B,0x9784,0x9781,0x977F,0x97CE,0x97CD,0x9816,
- 0x98AD,0x98AE,0x9902,0x9900,0x9907,0x999D,0x999C,0x99C3,0x99B9,0x99BB,
- 0x99BA,0x99C2,0x99BD,0x99C7,0x9AB1,0x9AE3,0x9AE7,0x9B3E,0x9B3F,0x9B60,
- 0x9B61,0x9B5F,0x9CF1,0x9CF2,0x9CF5,0x9EA7,0x50FF,0x5103,0x5130,0x50F8,
- 0x5106,0x5107,0x50F6,0x50FE,0x510B,0x510C,0x50FD,0x510A,0x528B,0x528C,
- 0x52F1,0x52EF,0x5648,0x5642,0x564C,0x5635,0x5641,0x564A,0x5649,0x5646,
- 0x5658,0x565A,0x5640,0x5633,0x563D,0x562C,0x563E,0x5638,0x562A,0x563A,
- 0x571A,0x58AB,0x589D,0x58B1,0x58A0,0x58A3,0x58AF,0x58AC,0x58A5,0x58A1,
- 0x58FF,0x5AFF,0x5AF4,0x5AFD,0x5AF7,
- /* plane 2, row 48 */
- 1 | (94 << 8), /* first, last */
- 0x5AF6,0x5B03,0x5AF8,0x5B02,0x5AF9,0x5B01,0x5B07,0x5B05,0x5B0F,
- 0x5C67,0x5D99,0x5D97,0x5D9F,0x5D92,0x5DA2,0x5D93,0x5D95,0x5DA0,0x5D9C,
- 0x5DA1,0x5D9A,0x5D9E,0x5E69,0x5E5D,0x5E60,0x5E5C,0x7DF3,0x5EDB,0x5EDE,
- 0x5EE1,0x5F49,0x5FB2,0x618B,0x6183,0x6179,0x61B1,0x61B0,0x61A2,0x6189,
- 0x619B,0x6193,0x61AF,0x61AD,0x619F,0x6192,0x61AA,0x61A1,0x618D,0x6166,
- 0x61B3,0x622D,0x646E,0x6470,0x6496,0x64A0,0x6485,0x6497,0x649C,0x648F,
- 0x648B,0x648A,0x648C,0x64A3,0x649F,0x6468,0x64B1,0x6498,0x6576,0x657A,
- 0x6579,0x657B,0x65B2,0x65B3,0x66B5,0x66B0,0x66A9,0x66B2,0x66B7,0x66AA,
- 0x66AF,0x6A00,0x6A06,0x6A17,0x69E5,0x69F8,0x6A15,0x69F1,0x69E4,0x6A20,
- 0x69FF,0x69EC,0x69E2,0x6A1B,0x6A1D,
- /* plane 2, row 49 */
- 1 | (94 << 8), /* first, last */
- 0x69FE,0x6A27,0x69F2,0x69EE,0x6A14,0x69F7,0x69E7,0x6A40,0x6A08,
- 0x69E6,0x69FB,0x6A0D,0x69FC,0x69EB,0x6A09,0x6A04,0x6A18,0x6A25,0x6A0F,
- 0x69F6,0x6A26,0x6A07,0x69F4,0x6A16,0x6B51,0x6BA5,0x6BA3,0x6BA2,0x6BA6,
- 0x6C01,0x6C00,0x6BFF,0x6C02,0x6F41,0x6F26,0x6F7E,0x6F87,0x6FC6,0x6F92,
- 0x6F8D,0x6F89,0x6F8C,0x6F62,0x6F4F,0x6F85,0x6F5A,0x6F96,0x6F76,0x6F6C,
- 0x6F82,0x6F55,0x6F72,0x6F52,0x6F50,0x6F57,0x6F94,0x6F93,0x6F5D,0x6F00,
- 0x6F61,0x6F6B,0x6F7D,0x6F67,0x6F90,0x6F53,0x6F8B,0x6F69,0x6F7F,0x6F95,
- 0x6F63,0x6F77,0x6F6A,0x6F7B,0x71B2,0x71AF,0x719B,0x71B0,0x71A0,0x719A,
- 0x71A9,0x71B5,0x719D,0x71A5,0x719E,0x71A4,0x71A1,0x71AA,0x719C,0x71A7,
- 0x71B3,0x7298,0x729A,0x7358,0x7352,
- /* plane 2, row 50 */
- 1 | (94 << 8), /* first, last */
- 0x735E,0x735F,0x7360,0x735D,0x735B,0x7361,0x735A,0x7359,0x7362,
- 0x7487,0x7489,0x748A,0x7486,0x7481,0x747D,0x7485,0x7488,0x747C,0x7479,
- 0x7508,0x7507,0x757E,0x7625,0x761E,0x7619,0x761D,0x761C,0x7623,0x761A,
- 0x7628,0x761B,0x769C,0x769D,0x769E,0x769B,0x778D,0x778F,0x7789,0x7788,
- 0x78CD,0x78BB,0x78CF,0x78CC,0x78D1,0x78CE,0x78D4,0x78C8,0x78C3,0x78C4,
- 0x78C9,0x799A,0x79A1,0x79A0,0x799C,0x79A2,0x799B,0x6B76,0x7A39,0x7AB2,
- 0x7AB4,0x7AB3,0x7BB7,0x7BCB,0x7BBE,0x7BAC,0x7BCE,0x7BAF,0x7BB9,0x7BCA,
- 0x7BB5,0x7CC5,0x7CC8,0x7CCC,0x7CCB,0x7DF7,0x7DDB,0x7DEA,0x7DE7,0x7DD7,
- 0x7DE1,0x7E03,0x7DFA,0x7DE6,0x7DF6,0x7DF1,0x7DF0,0x7DEE,0x7DDF,0x7F76,
- 0x7FAC,0x7FB0,0x7FAD,0x7FED,0x7FEB,
- /* plane 2, row 51 */
- 1 | (94 << 8), /* first, last */
- 0x7FEA,0x7FEC,0x7FE6,0x7FE8,0x8064,0x8067,0x81A3,0x819F,0x819E,
- 0x8195,0x81A2,0x8199,0x8197,0x8216,0x824F,0x8253,0x8252,0x8250,0x824E,
- 0x8251,0x8524,0x853B,0x850F,0x8500,0x8529,0x850E,0x8509,0x850D,0x851F,
- 0x850A,0x8527,0x851C,0x84FB,0x852B,0x84FA,0x8508,0x850C,0x84F4,0x852A,
- 0x84F2,0x8515,0x84F7,0x84EB,0x84F3,0x84FC,0x8512,0x84EA,0x84E9,0x8516,
- 0x84FE,0x8528,0x851D,0x852E,0x8502,0x84FD,0x851E,0x84F6,0x8531,0x8526,
- 0x84E7,0x84E8,0x84F0,0x84EF,0x84F9,0x8518,0x8520,0x8530,0x850B,0x8519,
- 0x852F,0x8662,0x8756,0x8763,0x8764,0x8777,0x87E1,0x8773,0x8758,0x8754,
- 0x875B,0x8752,0x8761,0x875A,0x8751,0x875E,0x876D,0x876A,0x8750,0x874E,
- 0x875F,0x875D,0x876F,0x876C,0x877A,
- /* plane 2, row 52 */
- 1 | (94 << 8), /* first, last */
- 0x876E,0x875C,0x8765,0x874F,0x877B,0x8775,0x8762,0x8767,0x8769,
- 0x885A,0x8905,0x890C,0x8914,0x890B,0x8917,0x8918,0x8919,0x8906,0x8916,
- 0x8911,0x890E,0x8909,0x89A2,0x89A4,0x89A3,0x89ED,0x89F0,0x89EC,0x8ACF,
- 0x8AC6,0x8AB8,0x8AD3,0x8AD1,0x8AD4,0x8AD5,0x8ABB,0x8AD7,0x8ABE,0x8AC0,
- 0x8AC5,0x8AD8,0x8AC3,0x8ABA,0x8ABD,0x8AD9,0x8C3E,0x8C4D,0x8C8F,0x8CE5,
- 0x8CDF,0x8CD9,0x8CE8,0x8CDA,0x8CDD,0x8CE7,0x8DA0,0x8D9C,0x8DA1,0x8D9B,
- 0x8E20,0x8E23,0x8E25,0x8E24,0x8E2E,0x8E15,0x8E1B,0x8E16,0x8E11,0x8E19,
- 0x8E26,0x8E27,0x8E14,0x8E12,0x8E18,0x8E13,0x8E1C,0x8E17,0x8E1A,0x8F2C,
- 0x8F24,0x8F18,0x8F1A,0x8F20,0x8F23,0x8F16,0x8F17,0x9073,0x9070,0x906F,
- 0x9067,0x906B,0x912F,0x912B,0x9129,
- /* plane 2, row 53 */
- 1 | (94 << 8), /* first, last */
- 0x912A,0x9132,0x9126,0x912E,0x9185,0x9186,0x918A,0x9181,0x9182,
- 0x9184,0x9180,0x92D0,0x92C3,0x92C4,0x92C0,0x92D9,0x92B6,0x92CF,0x92F1,
- 0x92DF,0x92D8,0x92E9,0x92D7,0x92DD,0x92CC,0x92EF,0x92C2,0x92E8,0x92CA,
- 0x92C8,0x92CE,0x92E6,0x92CD,0x92D5,0x92C9,0x92E0,0x92DE,0x92E7,0x92D1,
- 0x92D3,0x92B5,0x92E1,0x9325,0x92C6,0x92B4,0x957C,0x95AC,0x95AB,0x95AE,
- 0x95B0,0x96A4,0x96A2,0x96D3,0x9705,0x9708,0x9702,0x975A,0x978A,0x978E,
- 0x9788,0x97D0,0x97CF,0x981E,0x981D,0x9826,0x9829,0x9828,0x9820,0x981B,
- 0x9827,0x98B2,0x9908,0x98FA,0x9911,0x9914,0x9916,0x9917,0x9915,0x99DC,
- 0x99CD,0x99CF,0x99D3,0x99D4,0x99CE,0x99C9,0x99D6,0x99D8,0x99CB,0x99D7,
- 0x99CC,0x9AB3,0x9AEC,0x9AEB,0x9AF3,
- /* plane 2, row 54 */
- 1 | (94 << 8), /* first, last */
- 0x9AF2,0x9AF1,0x9B46,0x9B43,0x9B67,0x9B74,0x9B71,0x9B66,0x9B76,
- 0x9B75,0x9B70,0x9B68,0x9B64,0x9B6C,0x9CFC,0x9CFA,0x9CFD,0x9CFF,0x9CF7,
- 0x9D07,0x9D00,0x9CF9,0x9CFB,0x9D08,0x9D05,0x9D04,0x9E83,0x9ED3,0x9F0F,
- 0x9F10,0x511C,0x5113,0x5117,0x511A,0x5111,0x51DE,0x5334,0x53E1,0x5670,
- 0x5660,0x566E,0x5673,0x5666,0x5663,0x566D,0x5672,0x565E,0x5677,0x571C,
- 0x571B,0x58C8,0x58BD,0x58C9,0x58BF,0x58BA,0x58C2,0x58BC,0x58C6,0x5B17,
- 0x5B19,0x5B1B,0x5B21,0x5B14,0x5B13,0x5B10,0x5B16,0x5B28,0x5B1A,0x5B20,
- 0x5B1E,0x5BEF,0x5DAC,0x5DB1,0x5DA9,0x5DA7,0x5DB5,0x5DB0,0x5DAE,0x5DAA,
- 0x5DA8,0x5DB2,0x5DAD,0x5DAF,0x5DB4,0x5E67,0x5E68,0x5E66,0x5E6F,0x5EE9,
- 0x5EE7,0x5EE6,0x5EE8,0x5EE5,0x5F4B,
- /* plane 2, row 55 */
- 1 | (94 << 8), /* first, last */
- 0x5FBC,0x5FBB,0x619D,0x61A8,0x6196,0x61C5,0x61B4,0x61C6,0x61C1,
- 0x61CC,0x61BA,0x61BF,0x61B8,0x618C,0x64D7,0x64D6,0x64D0,0x64CF,0x64C9,
- 0x64BD,0x6489,0x64C3,0x64DB,0x64F3,0x64D9,0x6533,0x657F,0x657C,0x65A2,
- 0x66C8,0x66BE,0x66C0,0x66CA,0x66CB,0x66CF,0x66BD,0x66BB,0x66BA,0x66CC,
- 0x6723,0x6A34,0x6A66,0x6A49,0x6A67,0x6A32,0x6A68,0x6A3E,0x6A5D,0x6A6D,
- 0x6A76,0x6A5B,0x6A51,0x6A28,0x6A5A,0x6A3B,0x6A3F,0x6A41,0x6A6A,0x6A64,
- 0x6A50,0x6A4F,0x6A54,0x6A6F,0x6A69,0x6A60,0x6A3C,0x6A5E,0x6A56,0x6A55,
- 0x6A4D,0x6A4E,0x6A46,0x6B55,0x6B54,0x6B56,0x6BA7,0x6BAA,0x6BAB,0x6BC8,
- 0x6BC7,0x6C04,0x6C03,0x6C06,0x6FAD,0x6FCB,0x6FA3,0x6FC7,0x6FBC,0x6FCE,
- 0x6FC8,0x6F5E,0x6FC4,0x6FBD,0x6F9E,
- /* plane 2, row 56 */
- 1 | (94 << 8), /* first, last */
- 0x6FCA,0x6FA8,0x7004,0x6FA5,0x6FAE,0x6FBA,0x6FAC,0x6FAA,0x6FCF,
- 0x6FBF,0x6FB8,0x6FA2,0x6FC9,0x6FAB,0x6FCD,0x6FAF,0x6FB2,0x6FB0,0x71C5,
- 0x71C2,0x71BF,0x71B8,0x71D6,0x71C0,0x71C1,0x71CB,0x71D4,0x71CA,0x71C7,
- 0x71CF,0x71BD,0x71D8,0x71BC,0x71C6,0x71DA,0x71DB,0x729D,0x729E,0x7369,
- 0x7366,0x7367,0x736C,0x7365,0x736B,0x736A,0x747F,0x749A,0x74A0,0x7494,
- 0x7492,0x7495,0x74A1,0x750B,0x7580,0x762F,0x762D,0x7631,0x763D,0x7633,
- 0x763C,0x7635,0x7632,0x7630,0x76BB,0x76E6,0x779A,0x779D,0x77A1,0x779C,
- 0x779B,0x77A2,0x77A3,0x7795,0x7799,0x7797,0x78DD,0x78E9,0x78E5,0x78EA,
- 0x78DE,0x78E3,0x78DB,0x78E1,0x78E2,0x78ED,0x78DF,0x78E0,0x79A4,0x7A44,
- 0x7A48,0x7A47,0x7AB6,0x7AB8,0x7AB5,
- /* plane 2, row 57 */
- 1 | (94 << 8), /* first, last */
- 0x7AB1,0x7AB7,0x7BDE,0x7BE3,0x7BE7,0x7BDD,0x7BD5,0x7BE5,0x7BDA,
- 0x7BE8,0x7BF9,0x7BD4,0x7BEA,0x7BE2,0x7BDC,0x7BEB,0x7BD8,0x7BDF,0x7CD2,
- 0x7CD4,0x7CD7,0x7CD0,0x7CD1,0x7E12,0x7E21,0x7E17,0x7E0C,0x7E1F,0x7E20,
- 0x7E13,0x7E0E,0x7E1C,0x7E15,0x7E1A,0x7E22,0x7E0B,0x7E0F,0x7E16,0x7E0D,
- 0x7E14,0x7E25,0x7E24,0x7F43,0x7F7B,0x7F7C,0x7F7A,0x7FB1,0x7FEF,0x802A,
- 0x8029,0x806C,0x81B1,0x81A6,0x81AE,0x81B9,0x81B5,0x81AB,0x81B0,0x81AC,
- 0x81B4,0x81B2,0x81B7,0x81A7,0x81F2,0x8255,0x8256,0x8257,0x8556,0x8545,
- 0x856B,0x854D,0x8553,0x8561,0x8558,0x8540,0x8546,0x8564,0x8541,0x8562,
- 0x8544,0x8551,0x8547,0x8563,0x853E,0x855B,0x8571,0x854E,0x856E,0x8575,
- 0x8555,0x8567,0x8560,0x858C,0x8566,
- /* plane 2, row 58 */
- 1 | (94 << 8), /* first, last */
- 0x855D,0x8554,0x8565,0x856C,0x8663,0x8665,0x8664,0x87A4,0x879B,
- 0x878F,0x8797,0x8793,0x8792,0x8788,0x8781,0x8796,0x8798,0x8779,0x8787,
- 0x87A3,0x8785,0x8790,0x8791,0x879D,0x8784,0x8794,0x879C,0x879A,0x8789,
- 0x891E,0x8926,0x8930,0x892D,0x892E,0x8927,0x8931,0x8922,0x8929,0x8923,
- 0x892F,0x892C,0x891F,0x89F1,0x8AE0,0x8AE2,0x8AF2,0x8AF4,0x8AF5,0x8ADD,
- 0x8B14,0x8AE4,0x8ADF,0x8AF0,0x8AC8,0x8ADE,0x8AE1,0x8AE8,0x8AFF,0x8AEF,
- 0x8AFB,0x8C91,0x8C92,0x8C90,0x8CF5,0x8CEE,0x8CF1,0x8CF0,0x8CF3,0x8D6C,
- 0x8D6E,0x8DA5,0x8DA7,0x8E33,0x8E3E,0x8E38,0x8E40,0x8E45,0x8E36,0x8E3C,
- 0x8E3D,0x8E41,0x8E30,0x8E3F,0x8EBD,0x8F36,0x8F2E,0x8F35,0x8F32,0x8F39,
- 0x8F37,0x8F34,0x9076,0x9079,0x907B,
- /* plane 2, row 59 */
- 1 | (94 << 8), /* first, last */
- 0x9086,0x90FA,0x9133,0x9135,0x9136,0x9193,0x9190,0x9191,0x918D,
- 0x918F,0x9327,0x931E,0x9308,0x931F,0x9306,0x930F,0x937A,0x9338,0x933C,
- 0x931B,0x9323,0x9312,0x9301,0x9346,0x932D,0x930E,0x930D,0x92CB,0x931D,
- 0x92FA,0x9313,0x92F9,0x92F7,0x9334,0x9302,0x9324,0x92FF,0x9329,0x9339,
- 0x9335,0x932A,0x9314,0x930C,0x930B,0x92FE,0x9309,0x9300,0x92FB,0x9316,
- 0x95BC,0x95CD,0x95BE,0x95B9,0x95BA,0x95B6,0x95BF,0x95B5,0x95BD,0x96A9,
- 0x96D4,0x970B,0x9712,0x9710,0x9799,0x9797,0x9794,0x97F0,0x97F8,0x9835,
- 0x982F,0x9832,0x9924,0x991F,0x9927,0x9929,0x999E,0x99EE,0x99EC,0x99E5,
- 0x99E4,0x99F0,0x99E3,0x99EA,0x99E9,0x99E7,0x9AB9,0x9ABF,0x9AB4,0x9ABB,
- 0x9AF6,0x9AFA,0x9AF9,0x9AF7,0x9B33,
- /* plane 2, row 60 */
- 1 | (94 << 8), /* first, last */
- 0x9B80,0x9B85,0x9B87,0x9B7C,0x9B7E,0x9B7B,0x9B82,0x9B93,0x9B92,
- 0x9B90,0x9B7A,0x9B95,0x9B7D,0x9B88,0x9D25,0x9D17,0x9D20,0x9D1E,0x9D14,
- 0x9D29,0x9D1D,0x9D18,0x9D22,0x9D10,0x9D19,0x9D1F,0x9E88,0x9E86,0x9E87,
- 0x9EAE,0x9EAD,0x9ED5,0x9ED6,0x9EFA,0x9F12,0x9F3D,0x5126,0x5125,0x5122,
- 0x5124,0x5120,0x5129,0x52F4,0x5693,0x568C,0x568D,0x5686,0x5684,0x5683,
- 0x567E,0x5682,0x567F,0x5681,0x58D6,0x58D4,0x58CF,0x58D2,0x5B2D,0x5B25,
- 0x5B32,0x5B23,0x5B2C,0x5B27,0x5B26,0x5B2F,0x5B2E,0x5B7B,0x5BF1,0x5BF2,
- 0x5DB7,0x5E6C,0x5E6A,0x5FBE,0x61C3,0x61B5,0x61BC,0x61E7,0x61E0,0x61E5,
- 0x61E4,0x61E8,0x61DE,0x64EF,0x64E9,0x64E3,0x64EB,0x64E4,0x64E8,0x6581,
- 0x6580,0x65B6,0x65DA,0x66D2,0x6A8D,
- /* plane 2, row 61 */
- 1 | (94 << 8), /* first, last */
- 0x6A96,0x6A81,0x6AA5,0x6A89,0x6A9F,0x6A9B,0x6AA1,0x6A9E,0x6A87,
- 0x6A93,0x6A8E,0x6A95,0x6A83,0x6AA8,0x6AA4,0x6A91,0x6A7F,0x6AA6,0x6A9A,
- 0x6A85,0x6A8C,0x6A92,0x6B5B,0x6BAD,0x6C09,0x6FCC,0x6FA9,0x6FF4,0x6FD4,
- 0x6FE3,0x6FDC,0x6FED,0x6FE7,0x6FE6,0x6FDE,0x6FF2,0x6FDD,0x6FE2,0x6FE8,
- 0x71E1,0x71F1,0x71E8,0x71F2,0x71E4,0x71F0,0x71E2,0x7373,0x736E,0x736F,
- 0x7497,0x74B2,0x74AB,0x7490,0x74AA,0x74AD,0x74B1,0x74A5,0x74AF,0x7510,
- 0x7511,0x7512,0x750F,0x7584,0x7643,0x7648,0x7649,0x7647,0x76A4,0x76E9,
- 0x77B5,0x77AB,0x77B2,0x77B7,0x77B6,0x77B4,0x77B1,0x77A8,0x77F0,0x78F3,
- 0x78FD,0x7902,0x78FB,0x78FC,0x78FF,0x78F2,0x7905,0x78F9,0x78FE,0x7904,
- 0x79AB,0x79A8,0x7A5C,0x7A5B,0x7A56,
- /* plane 2, row 62 */
- 1 | (94 << 8), /* first, last */
- 0x7A58,0x7A54,0x7A5A,0x7ABE,0x7AC0,0x7AC1,0x7C05,0x7C0F,0x7BF2,
- 0x7C00,0x7BFF,0x7BFB,0x7C0E,0x7BF4,0x7C0B,0x7BF3,0x7C02,0x7C09,0x7C03,
- 0x7C01,0x7BF8,0x7BFD,0x7C06,0x7BF0,0x7BF1,0x7C10,0x7C0A,0x7CE8,0x7E2D,
- 0x7E3C,0x7E42,0x7E33,0x9848,0x7E38,0x7E2A,0x7E49,0x7E40,0x7E47,0x7E29,
- 0x7E4C,0x7E30,0x7E3B,0x7E36,0x7E44,0x7E3A,0x7F45,0x7F7F,0x7F7E,0x7F7D,
- 0x7FF4,0x7FF2,0x802C,0x81BB,0x81C4,0x81CC,0x81CA,0x81C5,0x81C7,0x81BC,
- 0x81E9,0x825B,0x825A,0x825C,0x8583,0x8580,0x858F,0x85A7,0x8595,0x85A0,
- 0x858B,0x85A3,0x857B,0x85A4,0x859A,0x859E,0x8577,0x857C,0x8589,0x85A1,
- 0x857A,0x8578,0x8557,0x858E,0x8596,0x8586,0x858D,0x8599,0x859D,0x8581,
- 0x85A2,0x8582,0x8588,0x8585,0x8579,
- /* plane 2, row 63 */
- 1 | (94 << 8), /* first, last */
- 0x8576,0x8598,0x8590,0x859F,0x8668,0x87BE,0x87AA,0x87AD,0x87C5,
- 0x87B0,0x87AC,0x87B9,0x87B5,0x87BC,0x87AE,0x87C9,0x87C3,0x87C2,0x87CC,
- 0x87B7,0x87AF,0x87C4,0x87CA,0x87B4,0x87B6,0x87BF,0x87B8,0x87BD,0x87DE,
- 0x87B2,0x8935,0x8933,0x893C,0x893E,0x8941,0x8952,0x8937,0x8942,0x89AD,
- 0x89AF,0x89AE,0x89F2,0x89F3,0x8B1E,0x8B18,0x8B16,0x8B11,0x8B05,0x8B0B,
- 0x8B22,0x8B0F,0x8B12,0x8B15,0x8B07,0x8B0D,0x8B08,0x8B06,0x8B1C,0x8B13,
- 0x8B1A,0x8C4F,0x8C70,0x8C72,0x8C71,0x8C6F,0x8C95,0x8C94,0x8CF9,0x8D6F,
- 0x8E4E,0x8E4D,0x8E53,0x8E50,0x8E4C,0x8E47,0x8F43,0x8F40,0x9085,0x907E,
- 0x9138,0x919A,0x91A2,0x919B,0x9199,0x919F,0x91A1,0x919D,0x91A0,0x93A1,
- 0x9383,0x93AF,0x9364,0x9356,0x9347,
- /* plane 2, row 64 */
- 1 | (94 << 8), /* first, last */
- 0x937C,0x9358,0x935C,0x9376,0x9349,0x9350,0x9351,0x9360,0x936D,
- 0x938F,0x934C,0x936A,0x9379,0x9357,0x9355,0x9352,0x934F,0x9371,0x9377,
- 0x937B,0x9361,0x935E,0x9363,0x9367,0x934E,0x9359,0x95C7,0x95C0,0x95C9,
- 0x95C3,0x95C5,0x95B7,0x96AE,0x96B0,0x96AC,0x9720,0x971F,0x9718,0x971D,
- 0x9719,0x979A,0x97A1,0x979C,0x979E,0x979D,0x97D5,0x97D4,0x97F1,0x9841,
- 0x9844,0x984A,0x9849,0x9845,0x9843,0x9925,0x992B,0x992C,0x992A,0x9933,
- 0x9932,0x992F,0x992D,0x9931,0x9930,0x9998,0x99A3,0x99A1,0x9A02,0x99FA,
- 0x99F4,0x99F7,0x99F9,0x99F8,0x99F6,0x99FB,0x99FD,0x99FE,0x99FC,0x9A03,
- 0x9ABE,0x9AFE,0x9AFD,0x9B01,0x9AFC,0x9B48,0x9B9A,0x9BA8,0x9B9E,0x9B9B,
- 0x9BA6,0x9BA1,0x9BA5,0x9BA4,0x9B86,
- /* plane 2, row 65 */
- 1 | (94 << 8), /* first, last */
- 0x9BA2,0x9BA0,0x9BAF,0x9D33,0x9D41,0x9D67,0x9D36,0x9D2E,0x9D2F,
- 0x9D31,0x9D38,0x9D30,0x9D45,0x9D42,0x9D43,0x9D3E,0x9D37,0x9D40,0x9D3D,
- 0x7FF5,0x9D2D,0x9E8A,0x9E89,0x9E8D,0x9EB0,0x9EC8,0x9EDA,0x9EFB,0x9EFF,
- 0x9F24,0x9F23,0x9F22,0x9F54,0x9FA0,0x5131,0x512D,0x512E,0x5698,0x569C,
- 0x5697,0x569A,0x569D,0x5699,0x5970,0x5B3C,0x5C69,0x5C6A,0x5DC0,0x5E6D,
- 0x5E6E,0x61D8,0x61DF,0x61ED,0x61EE,0x61F1,0x61EA,0x61F0,0x61EB,0x61D6,
- 0x61E9,0x64FF,0x6504,0x64FD,0x64F8,0x6501,0x6503,0x64FC,0x6594,0x65DB,
- 0x66DA,0x66DB,0x66D8,0x6AC5,0x6AB9,0x6ABD,0x6AE1,0x6AC6,0x6ABA,0x6AB6,
- 0x6AB7,0x6AC7,0x6AB4,0x6AAD,0x6B5E,0x6BC9,0x6C0B,0x7007,0x700C,0x700D,
- 0x7001,0x7005,0x7014,0x700E,0x6FFF,
- /* plane 2, row 66 */
- 1 | (94 << 8), /* first, last */
- 0x7000,0x6FFB,0x7026,0x6FFC,0x6FF7,0x700A,0x7201,0x71FF,0x71F9,
- 0x7203,0x71FD,0x7376,0x74B8,0x74C0,0x74B5,0x74C1,0x74BE,0x74B6,0x74BB,
- 0x74C2,0x7514,0x7513,0x765C,0x7664,0x7659,0x7650,0x7653,0x7657,0x765A,
- 0x76A6,0x76BD,0x76EC,0x77C2,0x77BA,0x790C,0x7913,0x7914,0x7909,0x7910,
- 0x7912,0x7911,0x79AD,0x79AC,0x7A5F,0x7C1C,0x7C29,0x7C19,0x7C20,0x7C1F,
- 0x7C2D,0x7C1D,0x7C26,0x7C28,0x7C22,0x7C25,0x7C30,0x7E5C,0x7E50,0x7E56,
- 0x7E63,0x7E58,0x7E62,0x7E5F,0x7E51,0x7E60,0x7E57,0x7E53,0x7FB5,0x7FB3,
- 0x7FF7,0x7FF8,0x8075,0x81D1,0x81D2,0x81D0,0x825F,0x825E,0x85B4,0x85C6,
- 0x85C0,0x85C3,0x85C2,0x85B3,0x85B5,0x85BD,0x85C7,0x85C4,0x85BF,0x85CB,
- 0x85CE,0x85C8,0x85C5,0x85B1,0x85B6,
- /* plane 2, row 67 */
- 1 | (94 << 8), /* first, last */
- 0x85D2,0x8624,0x85B8,0x85B7,0x85BE,0x8669,0x87E7,0x87E6,0x87E2,
- 0x87DB,0x87EB,0x87EA,0x87E5,0x87DF,0x87F3,0x87E4,0x87D4,0x87DC,0x87D3,
- 0x87ED,0x87D8,0x87E3,0x87D7,0x87D9,0x8801,0x87F4,0x87E8,0x87DD,0x8953,
- 0x894B,0x894F,0x894C,0x8946,0x8950,0x8951,0x8949,0x8B2A,0x8B27,0x8B23,
- 0x8B33,0x8B30,0x8B35,0x8B47,0x8B2F,0x8B3C,0x8B3E,0x8B31,0x8B25,0x8B37,
- 0x8B26,0x8B36,0x8B2E,0x8B24,0x8B3B,0x8B3D,0x8B3A,0x8C42,0x8C75,0x8C99,
- 0x8C98,0x8C97,0x8CFE,0x8D04,0x8D02,0x8D00,0x8E5C,0x8E62,0x8E60,0x8E57,
- 0x8E56,0x8E5E,0x8E65,0x8E67,0x8E5B,0x8E5A,0x8E61,0x8E5D,0x8E69,0x8E54,
- 0x8F46,0x8F47,0x8F48,0x8F4B,0x9128,0x913A,0x913B,0x913E,0x91A8,0x91A5,
- 0x91A7,0x91AF,0x91AA,0x93B5,0x938C,
- /* plane 2, row 68 */
- 1 | (94 << 8), /* first, last */
- 0x9392,0x93B7,0x939B,0x939D,0x9389,0x93A7,0x938E,0x93AA,0x939E,
- 0x93A6,0x9395,0x9388,0x9399,0x939F,0x9380,0x938D,0x93B1,0x9391,0x93B2,
- 0x93A4,0x93A8,0x93B4,0x93A3,0x95D2,0x95D3,0x95D1,0x96B3,0x96D7,0x96DA,
- 0x5DC2,0x96DF,0x96D8,0x96DD,0x9723,0x9722,0x9725,0x97AC,0x97AE,0x97A8,
- 0x97AB,0x97A4,0x97AA,0x97A2,0x97A5,0x97D7,0x97D9,0x97D6,0x97D8,0x97FA,
- 0x9850,0x9851,0x9852,0x98B8,0x9941,0x993C,0x993A,0x9A0F,0x9A0B,0x9A09,
- 0x9A0D,0x9A04,0x9A11,0x9A0A,0x9A05,0x9A07,0x9A06,0x9AC0,0x9ADC,0x9B08,
- 0x9B04,0x9B05,0x9B29,0x9B35,0x9B4A,0x9B4C,0x9B4B,0x9BC7,0x9BC6,0x9BC3,
- 0x9BBF,0x9BC1,0x9BB5,0x9BB8,0x9BD3,0x9BB6,0x9BC4,0x9BB9,0x9BBD,0x9D5C,
- 0x9D53,0x9D4F,0x9D4A,0x9D5B,0x9D4B,
- /* plane 2, row 69 */
- 1 | (94 << 8), /* first, last */
- 0x9D59,0x9D56,0x9D4C,0x9D57,0x9D52,0x9D54,0x9D5F,0x9D58,0x9D5A,
- 0x9E8E,0x9E8C,0x9EDF,0x9F01,0x9F00,0x9F16,0x9F25,0x9F2B,0x9F2A,0x9F29,
- 0x9F28,0x9F4C,0x9F55,0x5134,0x5135,0x5296,0x52F7,0x53B4,0x56AB,0x56AD,
- 0x56A6,0x56A7,0x56AA,0x56AC,0x58DA,0x58DD,0x58DB,0x5912,0x5B3D,0x5B3E,
- 0x5B3F,0x5DC3,0x5E70,0x5FBF,0x61FB,0x6507,0x6510,0x650D,0x6509,0x650C,
- 0x650E,0x6584,0x65DE,0x65DD,0x66DE,0x6AE7,0x6AE0,0x6ACC,0x6AD1,0x6AD9,
- 0x6ACB,0x6ADF,0x6ADC,0x6AD0,0x6AEB,0x6ACF,0x6ACD,0x6ADE,0x6B60,0x6BB0,
- 0x6C0C,0x7019,0x7027,0x7020,0x7016,0x702B,0x7021,0x7022,0x7023,0x7029,
- 0x7017,0x7024,0x701C,0x720C,0x720A,0x7207,0x7202,0x7205,0x72A5,0x72A6,
- 0x72A4,0x72A3,0x72A1,0x74CB,0x74C5,
- /* plane 2, row 70 */
- 1 | (94 << 8), /* first, last */
- 0x74B7,0x74C3,0x7516,0x7660,0x77C9,0x77CA,0x77C4,0x77F1,0x791D,
- 0x791B,0x7921,0x791C,0x7917,0x791E,0x79B0,0x7A67,0x7A68,0x7C33,0x7C3C,
- 0x7C39,0x7C2C,0x7C3B,0x7CEC,0x7CEA,0x7E76,0x7E75,0x7E78,0x7E70,0x7E77,
- 0x7E6F,0x7E7A,0x7E72,0x7E74,0x7E68,0x7F4B,0x7F4A,0x7F83,0x7F86,0x7FB7,
- 0x7FFD,0x7FFE,0x8078,0x81D7,0x81D5,0x820B,0x8264,0x8261,0x8263,0x85EB,
- 0x85F1,0x85ED,0x85D9,0x85E1,0x85E8,0x85DA,0x85D7,0x85EC,0x85F2,0x85F8,
- 0x85D8,0x85DF,0x85E3,0x85DC,0x85D1,0x85F0,0x85E6,0x85EF,0x85DE,0x85E2,
- 0x8800,0x87FA,0x8803,0x87F6,0x87F7,0x8809,0x880C,0x880B,0x8806,0x87FC,
- 0x8808,0x87FF,0x880A,0x8802,0x8962,0x895A,0x895B,0x8957,0x8961,0x895C,
- 0x8958,0x895D,0x8959,0x8988,0x89B7,
- /* plane 2, row 71 */
- 1 | (94 << 8), /* first, last */
- 0x89B6,0x89F6,0x8B50,0x8B48,0x8B4A,0x8B40,0x8B53,0x8B56,0x8B54,
- 0x8B4B,0x8B55,0x8B51,0x8B42,0x8B52,0x8B57,0x8C43,0x8C77,0x8C76,0x8C9A,
- 0x8D06,0x8D07,0x8D09,0x8DAC,0x8DAA,0x8DAD,0x8DAB,0x8E6D,0x8E78,0x8E73,
- 0x8E6A,0x8E6F,0x8E7B,0x8EC2,0x8F52,0x8F51,0x8F4F,0x8F50,0x8F53,0x8FB4,
- 0x9140,0x913F,0x91B0,0x91AD,0x93DE,0x93C7,0x93CF,0x93C2,0x93DA,0x93D0,
- 0x93F9,0x93EC,0x93CC,0x93D9,0x93A9,0x93E6,0x93CA,0x93D4,0x93EE,0x93E3,
- 0x93D5,0x93C4,0x93CE,0x93C0,0x93D2,0x93A5,0x93E7,0x957D,0x95DA,0x95DB,
- 0x96E1,0x9729,0x972B,0x972C,0x9728,0x9726,0x97B3,0x97B7,0x97B6,0x97DD,
- 0x97DE,0x97DF,0x985C,0x9859,0x985D,0x9857,0x98BF,0x98BD,0x98BB,0x98BE,
- 0x9948,0x9947,0x9943,0x99A6,0x99A7,
- /* plane 2, row 72 */
- 1 | (94 << 8), /* first, last */
- 0x9A1A,0x9A15,0x9A25,0x9A1D,0x9A24,0x9A1B,0x9A22,0x9A20,0x9A27,
- 0x9A23,0x9A1E,0x9A1C,0x9A14,0x9AC2,0x9B0B,0x9B0A,0x9B0E,0x9B0C,0x9B37,
- 0x9BEA,0x9BEB,0x9BE0,0x9BDE,0x9BE4,0x9BE6,0x9BE2,0x9BF0,0x9BD4,0x9BD7,
- 0x9BEC,0x9BDC,0x9BD9,0x9BE5,0x9BD5,0x9BE1,0x9BDA,0x9D77,0x9D81,0x9D8A,
- 0x9D84,0x9D88,0x9D71,0x9D80,0x9D78,0x9D86,0x9D8B,0x9D8C,0x9D7D,0x9D6B,
- 0x9D74,0x9D75,0x9D70,0x9D69,0x9D85,0x9D73,0x9D7B,0x9D82,0x9D6F,0x9D79,
- 0x9D7F,0x9D87,0x9D68,0x9E94,0x9E91,0x9EC0,0x9EFC,0x9F2D,0x9F40,0x9F41,
- 0x9F4D,0x9F56,0x9F57,0x9F58,0x5337,0x56B2,0x56B5,0x56B3,0x58E3,0x5B45,
- 0x5DC6,0x5DC7,0x5EEE,0x5EEF,0x5FC0,0x5FC1,0x61F9,0x6517,0x6516,0x6515,
- 0x6513,0x65DF,0x66E8,0x66E3,0x66E4,
- /* plane 2, row 73 */
- 1 | (94 << 8), /* first, last */
- 0x6AF3,0x6AF0,0x6AEA,0x6AE8,0x6AF9,0x6AF1,0x6AEE,0x6AEF,0x703C,
- 0x7035,0x702F,0x7037,0x7034,0x7031,0x7042,0x7038,0x703F,0x703A,0x7039,
- 0x702A,0x7040,0x703B,0x7033,0x7041,0x7213,0x7214,0x72A8,0x737D,0x737C,
- 0x74BA,0x76AB,0x76AA,0x76BE,0x76ED,0x77CC,0x77CE,0x77CF,0x77CD,0x77F2,
- 0x7925,0x7923,0x7927,0x7928,0x7924,0x7929,0x79B2,0x7A6E,0x7A6C,0x7A6D,
- 0x7AF7,0x7C49,0x7C48,0x7C4A,0x7C47,0x7C45,0x7CEE,0x7E7B,0x7E7E,0x7E81,
- 0x7E80,0x7FBA,0x7FFF,0x8079,0x81DB,0x81D9,0x8268,0x8269,0x8622,0x85FF,
- 0x8601,0x85FE,0x861B,0x8600,0x85F6,0x8604,0x8609,0x8605,0x860C,0x85FD,
- 0x8819,0x8810,0x8811,0x8817,0x8813,0x8816,0x8963,0x8966,0x89B9,0x89F7,
- 0x8B60,0x8B6A,0x8B5D,0x8B68,0x8B63,
- /* plane 2, row 74 */
- 1 | (94 << 8), /* first, last */
- 0x8B65,0x8B67,0x8B6D,0x8DAE,0x8E86,0x8E88,0x8E84,0x8F59,0x8F56,
- 0x8F57,0x8F55,0x8F58,0x8F5A,0x908D,0x9143,0x9141,0x91B7,0x91B5,0x91B2,
- 0x91B3,0x940B,0x9413,0x93FB,0x9420,0x940F,0x9414,0x93FE,0x9415,0x9410,
- 0x9428,0x9419,0x940D,0x93F5,0x9400,0x93F7,0x9407,0x940E,0x9416,0x9412,
- 0x93FA,0x9409,0x93F8,0x943C,0x940A,0x93FF,0x93FC,0x940C,0x93F6,0x9411,
- 0x9406,0x95DE,0x95E0,0x95DF,0x972E,0x972F,0x97B9,0x97BB,0x97FD,0x97FE,
- 0x9860,0x9862,0x9863,0x985F,0x98C1,0x98C2,0x9950,0x994E,0x9959,0x994C,
- 0x994B,0x9953,0x9A32,0x9A34,0x9A31,0x9A2C,0x9A2A,0x9A36,0x9A29,0x9A2E,
- 0x9A38,0x9A2D,0x9AC7,0x9ACA,0x9AC6,0x9B10,0x9B12,0x9B11,0x9C0B,0x9C08,
- 0x9BF7,0x9C05,0x9C12,0x9BF8,0x9C40,
- /* plane 2, row 75 */
- 1 | (94 << 8), /* first, last */
- 0x9C07,0x9C0E,0x9C06,0x9C17,0x9C14,0x9C09,0x9D9F,0x9D99,0x9DA4,
- 0x9D9D,0x9D92,0x9D98,0x9D90,0x9D9B,0x9DA0,0x9D94,0x9D9C,0x9DAA,0x9D97,
- 0x9DA1,0x9D9A,0x9DA2,0x9DA8,0x9D9E,0x9DA3,0x9DBF,0x9DA9,0x9D96,0x9DA6,
- 0x9DA7,0x9E99,0x9E9B,0x9E9A,0x9EE5,0x9EE4,0x9EE7,0x9EE6,0x9F30,0x9F2E,
- 0x9F5B,0x9F60,0x9F5E,0x9F5D,0x9F59,0x9F91,0x513A,0x5139,0x5298,0x5297,
- 0x56C3,0x56BD,0x56BE,0x5B48,0x5B47,0x5DCB,0x5DCF,0x5EF1,0x61FD,0x651B,
- 0x6B02,0x6AFC,0x6B03,0x6AF8,0x6B00,0x7043,0x7044,0x704A,0x7048,0x7049,
- 0x7045,0x7046,0x721D,0x721A,0x7219,0x737E,0x7517,0x766A,0x77D0,0x792D,
- 0x7931,0x792F,0x7C54,0x7C53,0x7CF2,0x7E8A,0x7E87,0x7E88,0x7E8B,0x7E86,
- 0x7E8D,0x7F4D,0x7FBB,0x8030,0x81DD,
- /* plane 2, row 76 */
- 1 | (94 << 8), /* first, last */
- 0x8618,0x862A,0x8626,0x861F,0x8623,0x861C,0x8619,0x8627,0x862E,
- 0x8621,0x8620,0x8629,0x861E,0x8625,0x8829,0x881D,0x881B,0x8820,0x8824,
- 0x881C,0x882B,0x884A,0x896D,0x8969,0x896E,0x896B,0x89FA,0x8B79,0x8B78,
- 0x8B45,0x8B7A,0x8B7B,0x8D10,0x8D14,0x8DAF,0x8E8E,0x8E8C,0x8F5E,0x8F5B,
- 0x8F5D,0x9146,0x9144,0x9145,0x91B9,0x943F,0x943B,0x9436,0x9429,0x943D,
- 0x9430,0x9439,0x942A,0x9437,0x942C,0x9440,0x9431,0x95E5,0x95E4,0x95E3,
- 0x9735,0x973A,0x97BF,0x97E1,0x9864,0x98C9,0x98C6,0x98C0,0x9958,0x9956,
- 0x9A39,0x9A3D,0x9A46,0x9A44,0x9A42,0x9A41,0x9A3A,0x9A3F,0x9ACD,0x9B15,
- 0x9B17,0x9B18,0x9B16,0x9B3A,0x9B52,0x9C2B,0x9C1D,0x9C1C,0x9C2C,0x9C23,
- 0x9C28,0x9C29,0x9C24,0x9C21,0x9DB7,
- /* plane 2, row 77 */
- 1 | (94 << 8), /* first, last */
- 0x9DB6,0x9DBC,0x9DC1,0x9DC7,0x9DCA,0x9DCF,0x9DBE,0x9DC5,0x9DC3,
- 0x9DBB,0x9DB5,0x9DCE,0x9DB9,0x9DBA,0x9DAC,0x9DC8,0x9DB1,0x9DAD,0x9DCC,
- 0x9DB3,0x9DCD,0x9DB2,0x9E7A,0x9E9C,0x9EEB,0x9EEE,0x9EED,0x9F1B,0x9F18,
- 0x9F1A,0x9F31,0x9F4E,0x9F65,0x9F64,0x9F92,0x4EB9,0x56C6,0x56C5,0x56CB,
- 0x5971,0x5B4B,0x5B4C,0x5DD5,0x5DD1,0x5EF2,0x6521,0x6520,0x6526,0x6522,
- 0x6B0B,0x6B08,0x6B09,0x6C0D,0x7055,0x7056,0x7057,0x7052,0x721E,0x721F,
- 0x72A9,0x737F,0x74D8,0x74D5,0x74D9,0x74D7,0x766D,0x76AD,0x7935,0x79B4,
- 0x7A70,0x7A71,0x7C57,0x7C5C,0x7C59,0x7C5B,0x7C5A,0x7CF4,0x7CF1,0x7E91,
- 0x7F4F,0x7F87,0x81DE,0x826B,0x8634,0x8635,0x8633,0x862C,0x8632,0x8636,
- 0x882C,0x8828,0x8826,0x882A,0x8825,
- /* plane 2, row 78 */
- 1 | (94 << 8), /* first, last */
- 0x8971,0x89BF,0x89BE,0x89FB,0x8B7E,0x8B84,0x8B82,0x8B86,0x8B85,
- 0x8B7F,0x8D15,0x8E95,0x8E94,0x8E9A,0x8E92,0x8E90,0x8E96,0x8E97,0x8F60,
- 0x8F62,0x9147,0x944C,0x9450,0x944A,0x944B,0x944F,0x9447,0x9445,0x9448,
- 0x9449,0x9446,0x973F,0x97E3,0x986A,0x9869,0x98CB,0x9954,0x995B,0x9A4E,
- 0x9A53,0x9A54,0x9A4C,0x9A4F,0x9A48,0x9A4A,0x9A49,0x9A52,0x9A50,0x9AD0,
- 0x9B19,0x9B2B,0x9B3B,0x9B56,0x9B55,0x9C46,0x9C48,0x9C3F,0x9C44,0x9C39,
- 0x9C33,0x9C41,0x9C3C,0x9C37,0x9C34,0x9C32,0x9C3D,0x9C36,0x9DDB,0x9DD2,
- 0x9DDE,0x9DDA,0x9DCB,0x9DD0,0x9DDC,0x9DD1,0x9DDF,0x9DE9,0x9DD9,0x9DD8,
- 0x9DD6,0x9DF5,0x9DD5,0x9DDD,0x9EB6,0x9EF0,0x9F35,0x9F33,0x9F32,0x9F42,
- 0x9F6B,0x9F95,0x9FA2,0x513D,0x5299,
- /* plane 2, row 79 */
- 1 | (94 << 8), /* first, last */
- 0x58E8,0x58E7,0x5972,0x5B4D,0x5DD8,0x882F,0x5F4F,0x6201,0x6203,
- 0x6204,0x6529,0x6525,0x6596,0x66EB,0x6B11,0x6B12,0x6B0F,0x6BCA,0x705B,
- 0x705A,0x7222,0x7382,0x7381,0x7383,0x7670,0x77D4,0x7C67,0x7C66,0x7E95,
- 0x826C,0x863A,0x8640,0x8639,0x863C,0x8631,0x863B,0x863E,0x8830,0x8832,
- 0x882E,0x8833,0x8976,0x8974,0x8973,0x89FE,0x8B8C,0x8B8E,0x8B8B,0x8B88,
- 0x8C45,0x8D19,0x8E98,0x8F64,0x8F63,0x91BC,0x9462,0x9455,0x945D,0x9457,
- 0x945E,0x97C4,0x97C5,0x9800,0x9A56,0x9A59,0x9B1E,0x9B1F,0x9B20,0x9C52,
- 0x9C58,0x9C50,0x9C4A,0x9C4D,0x9C4B,0x9C55,0x9C59,0x9C4C,0x9C4E,0x9DFB,
- 0x9DF7,0x9DEF,0x9DE3,0x9DEB,0x9DF8,0x9DE4,0x9DF6,0x9DE1,0x9DEE,0x9DE6,
- 0x9DF2,0x9DF0,0x9DE2,0x9DEC,0x9DF4,
- /* plane 2, row 80 */
- 1 | (94 << 8), /* first, last */
- 0x9DF3,0x9DE8,0x9DED,0x9EC2,0x9ED0,0x9EF2,0x9EF3,0x9F06,0x9F1C,
- 0x9F38,0x9F37,0x9F36,0x9F43,0x9F4F,0x9F71,0x9F70,0x9F6E,0x9F6F,0x56D3,
- 0x56CD,0x5B4E,0x5C6D,0x652D,0x66ED,0x66EE,0x6B13,0x705F,0x7061,0x705D,
- 0x7060,0x7223,0x74DB,0x74E5,0x77D5,0x7938,0x79B7,0x79B6,0x7C6A,0x7E97,
- 0x7F89,0x826D,0x8643,0x8838,0x8837,0x8835,0x884B,0x8B94,0x8B95,0x8E9E,
- 0x8E9F,0x8EA0,0x8E9D,0x91BE,0x91BD,0x91C2,0x946B,0x9468,0x9469,0x96E5,
- 0x9746,0x9743,0x9747,0x97C7,0x97E5,0x9A5E,0x9AD5,0x9B59,0x9C63,0x9C67,
- 0x9C66,0x9C62,0x9C5E,0x9C60,0x9E02,0x9DFE,0x9E07,0x9E03,0x9E06,0x9E05,
- 0x9E00,0x9E01,0x9E09,0x9DFF,0x9DFD,0x9E04,0x9EA0,0x9F1E,0x9F46,0x9F74,
- 0x9F75,0x9F76,0x56D4,0x652E,0x65B8,
- /* plane 2, row 81 */
- 1 | (94 << 8), /* first, last */
- 0x6B18,0x6B19,0x6B17,0x6B1A,0x7062,0x7226,0x72AA,0x77D8,0x77D9,
- 0x7939,0x7C69,0x7C6B,0x7CF6,0x7E9A,0x7E98,0x7E9B,0x7E99,0x81E0,0x81E1,
- 0x8646,0x8647,0x8648,0x8979,0x897A,0x897C,0x897B,0x89FF,0x8B98,0x8B99,
- 0x8EA5,0x8EA4,0x8EA3,0x946E,0x946D,0x946F,0x9471,0x9473,0x9749,0x9872,
- 0x995F,0x9C68,0x9C6E,0x9C6D,0x9E0B,0x9E0D,0x9E10,0x9E0F,0x9E12,0x9E11,
- 0x9EA1,0x9EF5,0x9F09,0x9F47,0x9F78,0x9F7B,0x9F7A,0x9F79,0x571E,0x7066,
- 0x7C6F,0x883C,0x8DB2,0x8EA6,0x91C3,0x9474,0x9478,0x9476,0x9475,0x9A60,
- 0x9B2E,0x9C74,0x9C73,0x9C71,0x9C75,0x9E14,0x9E13,0x9EF6,0x9F0A,0x9FA4,
- 0x7068,0x7065,0x7CF7,0x866A,0x883E,0x883D,0x883F,0x8B9E,0x8C9C,0x8EA9,
- 0x8EC9,0x974B,0x9873,0x9874,0x98CC,
- /* plane 2, row 82 */
- 1 | (36 << 8), /* first, last */
- 0x9961,0x99AB,0x9A64,0x9A66,0x9A67,0x9B24,0x9E15,0x9E17,0x9F48,
- 0x6207,0x6B1E,0x7227,0x864C,0x8EA8,0x9482,0x9480,0x9481,0x9A69,0x9A68,
- 0x9E19,0x864B,0x8B9F,0x9483,0x9C79,0x9EB7,0x7675,0x9A6B,0x9C7A,0x9E1D,
- 0x7069,0x706A,0x7229,0x9EA4,0x9F7E,0x9F49,0x9F98,
- /* plane 2, row 83: --- */
- /* plane 2, row 84: --- */
- /* plane 2, row 85: --- */
- /* plane 2, row 86: --- */
- /* plane 2, row 87: --- */
- /* plane 2, row 88: --- */
- /* plane 2, row 89: --- */
- /* plane 2, row 90: --- */
- /* plane 2, row 91: --- */
- /* plane 2, row 92: --- */
- /* plane 2, row 93: --- */
- /* plane 2, row 94: --- */
- /* plane 3, row 1 */
- 1 | (94 << 8), /* first, last */
- 0x4E28,0x4E36,0x4E3F,0x4E85,0x4E05,0x4E04,0x5182,0x5196,0x5338,
- 0x5369,0x53B6,0x4E2A,0x4E87,0x4E49,0x51E2,0x4E46,0x4E8F,0x4EBC,0x4EBE,
- 0x5166,0x51E3,0x5204,0x529C,0x5344,0x5902,0x590A,0x5B80,0x5DDB,0x5E7A,
- 0x5E7F,0x5EF4,0x5F50,0x5F51,0x5F61,0x961D,0xD840,0x4E63,0x4E62,0x4EA3,
- 0x5185,0x4EC5,0x4ECF,0x4ECE,0x4ECC,0x5184,0x5186,0xD87E,0x34C5,0x51E4,
- 0x5205,0x529E,0x529D,0x52FD,0x5300,0x533A,0x3539,0x5346,0x535D,0x5386,
- 0x53B7,0x3555,0x53CC,0x355B,0x53CE,0x5721,0x37A2,0x5E00,0x5F0C,0x6237,
- 0x6238,0x6534,0x6535,0x65E0,0x3E26,0x738D,0x4E97,0x4EE0,0x3432,0xD840,
- 0x4EE7,0x3433,0x4EE6,0x3434,0x36A2,0x3431,0x34B0,0x56D8,0x518B,0x518C,
- 0x5199,0x51E5,0xD87E,0x520B,0x34DC,
- 36, /* first low-surrogate */
- 0xDC0B, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xDC17, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xDDA9,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xDC50,
- /* plane 3, row 2 */
- 1 | (94 << 8), /* first, last */
- 0x361E,0x5304,0x5303,0x5307,0xD87E,0x531E,0x535F,0x536D,0x5389,
- 0x53BA,0x53D0,0x3565,0x53F6,0x53F7,0x53F9,0x3564,0x53F4,0x361D,0x3626,
- 0x5724,0x5904,0x5918,0x5932,0x5930,0x5934,0x368E,0x5975,0x374A,0x5B82,
- 0x5BF9,0x5C14,0x378B,0x37A6,0x37A4,0x37A5,0x37A7,0x382F,0x3832,0x5E81,
- 0x5E83,0x5F0D,0x5F52,0x38D4,0x5FCA,0x5FC7,0x6239,0x39C5,0x624F,0x65E7,
- 0x672F,0x6B7A,0x6C39,0x3CBA,0x3CB9,0x6C37,0x6C44,0x6C45,0x738C,0x7592,
- 0x7676,0x9093,0x9092,0x48B3,0x49BA,0x4E21,0x4E20,0x4E22,0x4E68,0x4E89,
- 0x4E98,0x4EF9,0x4EEF,0x343B,0x343C,0x4EF8,0x4F06,0x4F03,0x4EFC,0x4EEE,
- 0x4F16,0x3439,0x4F28,0x4F1C,0x4F07,0x4F1A,0x4EFA,0x4F17,0x514A,0x34B2,
- 0x5172,0xD87E,0x51B4,0x51B3,0x51B2,
- 5, /* first low-surrogate */
- 0xDC2A, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xDC15,
- /* plane 3, row 3 */
- 1 | (94 << 8), /* first, last */
- 0x34C7,0x51E8,0x342B,0x5214,0x520F,0x5215,0x5218,0x52A8,0xD87E,
- 0x534B,0x534F,0x353B,0x5350,0x3544,0x538B,0x3542,0x53BE,0x355C,0x53D2,
- 0x5416,0x53FF,0x3567,0x5400,0x3566,0x5405,0x5413,0x5415,0xD87E,0x361F,
- 0x56E3,0x5735,0x5736,0x5731,0x5732,0x58EE,0x5905,0x4E54,0x368F,0x5936,
- 0x3690,0x36A8,0x36A4,0x597A,0x36A3,0x5986,0x373D,0x374C,0x5B86,0x5F53,
- 0x5C18,0x378C,0x5C3D,0x5C78,0x37A8,0x37AD,0x37AF,0xD847,0x5C80,0x3829,
- 0x5E08,0x3836,0x3871,0x3870,0x386F,0x5EF5,0x5F0E,0x38A9,0x38AA,0x38FB,
- 0x5FD3,0x5FDA,0x38FC,0x5FDB,0x39AE,0x620F,0x625D,0x625F,0x6267,0x6257,
- 0x9F50,0x3AC3,0x65EB,0x65EA,0x3B30,0x6737,0x3B41,0x6732,0x6736,0x6B22,
- 0x6BCE,0x3C8C,0x6C58,0x6C51,0x6C77,
- 9, /* first low-surrogate */
- 0xDC2C,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xDC3B, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xDD46,
- /* plane 3, row 4 */
- 1 | (94 << 8), /* first, last */
- 0x6C3C,0x3CBB,0x6C5A,0xD84F,0x6C53,0x706F,0x7072,0x706E,0xD87E,
- 0x3DA1,0x7073,0x72B1,0x72B2,0x3EA8,0x738F,0x3EAA,0x3EAB,0x4096,0x793C,
- 0x41C2,0x808D,0x808E,0x4493,0x827B,0x4494,0x8D71,0x8FB9,0x9096,0x909A,
- 0x49BB,0x4E24,0x4E71,0xD87E,0x4E9C,0x4F45,0x4F4A,0x4F39,0x4F37,0x3443,
- 0x4F32,0x4F42,0x3442,0x4F44,0x4F4B,0x3444,0x4F40,0x4F35,0x4F31,0x5151,
- 0xD87E,0x5150,0x514E,0x34B3,0x34B7,0x519D,0x34C8,0x51B5,0x51B8,0x51EC,
- 0x5223,0x5227,0x5226,0x521F,0x522B,0x5220,0x52B4,0x52B3,0x3518,0x5325,
- 0x533B,0x5374,0x3547,0x3546,0x3545,0x356B,0x3569,0x544D,0x3572,0x3571,
- 0x543A,0x356C,0x356F,0x5444,0x544C,0x5423,0x541A,0x5432,0x544B,0x5421,
- 0x3573,0x5434,0x5449,0x5450,0x5422,
- 4, /* first low-surrogate */
- 0xDC86, 0, 0, 0, 0,0xDC35,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xDC1B, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xDC0E,
- /* plane 3, row 5 */
- 1 | (94 << 8), /* first, last */
- 0x543F,0x5451,0x545A,0x542F,0x3576,0x56E9,0x56F2,0x56F3,0x56EF,
- 0x56ED,0x56EC,0x56E6,0x5748,0x3627,0x5744,0x573F,0x573C,0x5753,0x5756,
- 0x3630,0x575F,0x5743,0x5758,0x5757,0x3629,0x362A,0x362F,0x5746,0x362C,
- 0x573D,0x362D,0x5742,0x5754,0x5755,0x58F1,0x58F2,0x58F0,0x590B,0x9EA6,
- 0x56F1,0x593D,0x3693,0x5994,0x598C,0x36AD,0x599C,0x36AC,0x36AB,0x599F,
- 0x36A9,0x599B,0x36AE,0x5989,0x599A,0x36AA,0x6588,0x374E,0x5B8D,0x3750,
- 0x5BFE,0x5BFF,0x5BFD,0x5C2B,0x37B2,0x5C84,0x5C8E,0x5C9C,0x37B5,0x37B6,
- 0x5C85,0x5DF5,0x5E09,0x3839,0x383B,0x5E0B,0x3872,0x5E92,0x5E90,0x5F03,
- 0x38AC,0x5F1E,0x5F63,0x3908,0x5FE7,0x5FFE,0x5FE6,0x5FDC,0x5FCE,0x3903,
- 0x5FFC,0x5FDF,0x5FEC,0x5FF6,0xD849,
- 94, /* first low-surrogate */
- 0xDDD7,
- /* plane 3, row 6 */
- 1 | (94 << 8), /* first, last */
- 0x5FF2,0x5FF0,0x5FF9,0x390B,0x6213,0x39AF,0xD87E,0x623B,0x623C,
- 0x6282,0x39CE,0x39CB,0x39CC,0x6278,0x628B,0x39CD,0x629E,0x62A5,0x629B,
- 0x629C,0x6299,0x628D,0x6285,0x629D,0x6275,0x3A80,0x3AAF,0x3AD3,0x65F6,
- 0x3AD5,0x3AD4,0x3AD7,0x66F5,0x675B,0x3B42,0x6754,0x6752,0x3B44,0x6758,
- 0x6744,0x674A,0x6761,0x3CC6,0x6C7F,0x6C91,0x6C9E,0x3CC0,0x6C6E,0x6C7C,
- 0x6C9F,0x6C75,0x3CBE,0x6C56,0x6CA2,0x6C79,0x3CCA,0x6CA1,0x3CC4,0x6CAA,
- 0x6CA0,0x3CC2,0x7079,0x7077,0x707E,0x3DA4,0x7075,0x707B,0x7264,0x3E29,
- 0x72BB,0x72BC,0x72C7,0x72B9,0x72BE,0x72B6,0x3E60,0x3E5E,0x7398,0x3EAD,
- 0x3EAE,0x3EAC,0x3F57,0x7593,0x7680,0x3FDD,0x7683,0x76C0,0x76C1,0x400E,
- 0x4097,0x77F4,0x77F5,0x4127,0x7ACC,
- 7, /* first low-surrogate */
- 0xDCB2,
- /* plane 3, row 7 */
- 1 | (94 << 8), /* first, last */
- 0x7ACD,0x7CFA,0x809F,0x8091,0x8097,0x8094,0x4495,0x8286,0x828C,
- 0xD87E,0x8295,0x4498,0x866C,0x459D,0x8FB5,0x8FBE,0x8FC7,0x488A,0x8FC1,
- 0x90A9,0x90A4,0x48B5,0x48B6,0x48B7,0x90A8,0x9627,0x9626,0x962B,0x9633,
- 0x9634,0x9629,0x4E3D,0x3428,0x4E9D,0x4F93,0x4F8A,0x344D,0x3449,0x4F6D,
- 0x4F8E,0x4FA0,0x4FA2,0x4FA1,0x4F9F,0x4FA3,0xD840,0x4F72,0x3451,0x4F8C,
- 0x5156,0xD87E,0xD87E,0x5190,0x34CB,0x34CA,0x34CC,0x51ED,0x51FE,0x522F,
- 0xD841,0x523C,0x5234,0x5239,0x52B9,0x52B5,0x52BF,0x5355,0x353D,0x5376,
- 0x537A,0x5393,0x3548,0x53C1,0x53C2,0x53D5,0x5485,0x3578,0x545F,0x5493,
- 0x5489,0x5479,0x9EFE,0x548F,0x5469,0x546D,0x357A,0x5494,0x546A,0x548A,
- 0x3577,0x56FD,0x56FB,0x56F8,0x3621,
- 10, /* first low-surrogate */
- 0xDD8F, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xDE09, 0, 0, 0,
- 0,0xDC0F,0xDC11, 0, 0, 0, 0, 0, 0, 0,
- 0xDEEC,
- /* plane 3, row 8 */
- 1 | (94 << 8), /* first, last */
- 0x56FC,0x56F6,0x5765,0x5781,0x5763,0x5767,0x3631,0x576E,0x5778,
- 0x577F,0x3633,0x3634,0x58F3,0x594B,0x594C,0x36C1,0x36B0,0x36B4,0x59AD,
- 0x36B8,0x59C4,0x36BC,0x59C2,0x59B0,0x36BF,0x36B5,0x36B1,0x36BD,0x59BF,
- 0x36BB,0x59C9,0x59B8,0x59AC,0x36B3,0x36B6,0x36BA,0x59B7,0x59D7,0x36B7,
- 0x5B60,0x3740,0x5B96,0x5B9E,0x5B94,0x5B9F,0x5B9D,0x3752,0x5C00,0x5C19,
- 0x3790,0x3791,0x5C49,0x5C4A,0x37BE,0x5CBB,0x5CC1,0x37C0,0x37C1,0x37B9,
- 0x5CB9,0x5C9E,0x5CB4,0x5CBA,0x5DF6,0x5E13,0x5E12,0x5E77,0x3879,0x5E98,
- 0x387B,0x5E99,0x5E9D,0x5EF8,0x38A0,0x5EF9,0x3429,0x5F06,0x5F21,0x38AE,
- 0x5F25,0x5F55,0x38CD,0x38CB,0x38D9,0x5F84,0x5F83,0x6030,0x6007,0x390C,
- 0x6036,0x3901,0x3905,0x3902,0x5FE9,
- /* plane 3, row 9 */
- 1 | (94 << 8), /* first, last */
- 0x603D,0x6008,0x3913,0x3911,0x62BA,0x62B2,0x39E4,0x62B7,0x62E4,
- 0x62A7,0x39DA,0x39D5,0x39D3,0x62D5,0x62E1,0x62DD,0x62A6,0x62C1,0x62C5,
- 0x62C0,0x62DF,0x62E0,0x62DE,0x39D6,0x6589,0x3AB4,0x65A6,0x65BA,0x3AD9,
- 0x65FF,0x3AD8,0x6617,0x6618,0x6601,0x65FE,0x3B33,0x670C,0x3B48,0x676B,
- 0x6796,0x6782,0x678A,0x3B47,0x67A3,0x3B4B,0x67A2,0x678F,0x3B4A,0x67F9,
- 0x6780,0x6B26,0x6B27,0x6B68,0x6B69,0x3C5A,0x6B81,0x6BB4,0x6BD1,0x3C8E,
- 0x3CB4,0x6C1C,0x3CCD,0x3CCC,0x3CCF,0x3CCB,0x3CCE,0x6C97,0x6C6C,0x6CDF,
- 0x3CD2,0x6CEA,0x3CD1,0x6CE4,0x6CD8,0x6CB2,0x6CCE,0x6CC8,0x3DA6,0x708B,
- 0x7088,0x7090,0x708F,0x3DAA,0x7087,0x7089,0x708D,0x7081,0x3DA8,0x708C,
- 0x3E13,0x3E1A,0x7240,0x3E1D,0x3E1E,
- /* plane 3, row 10 */
- 1 | (94 << 8), /* first, last */
- 0x7265,0x7266,0x7268,0x3E65,0x3E66,0x72CD,0x72D3,0x72DB,0x3E64,
- 0x72CF,0x73A7,0x73A3,0x739E,0x3EB0,0x73AF,0x3EB3,0x3EB5,0x73AA,0x739C,
- 0x3F19,0x7542,0x7544,0x753B,0x7541,0xD848,0x759B,0x759E,0x3F75,0x79C4,
- 0x79C3,0x79C6,0x412B,0x412C,0x79C7,0x412D,0x79CA,0xD856,0x41C3,0x7ACF,
- 0x7C76,0x7C74,0x7CFF,0x7CFC,0x34BA,0x4350,0x7F59,0x80A8,0x43D3,0x43D0,
- 0x80B0,0x43DC,0x80B3,0x43D2,0x80A4,0x80B6,0x80A7,0x80AC,0x43DB,0x80A6,
- 0x5367,0x820E,0x82C4,0x833E,0x829C,0x44A5,0x449F,0x449A,0x449C,0x44A2,
- 0x82AA,0x449B,0x82C9,0x44A3,0x449D,0x82A6,0x82B2,0x4588,0x461A,0x488D,
- 0x8FCC,0x8FD9,0x8FCA,0x8FD8,0x8FCF,0x90B7,0x48B8,0x90AD,0x90B9,0x9637,
- 0x49C3,0x9641,0x963E,0x96B6,0x9751,
- 25, /* first low-surrogate */
- 0xDF3F, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xDD2E,
- /* plane 3, row 11 */
- 1 | (94 << 8), /* first, last */
- 0x9763,0x4E57,0x4E79,0x4EB2,0x4EB0,0x4EAF,0x4EB1,0x4FD2,0x4FD5,
- 0x345D,0x4FBE,0x4FB8,0x4FB0,0x4FB1,0x4FC8,0x345A,0x3457,0x4FC6,0x4FCC,
- 0x4FE5,0x4FE3,0x4FB4,0x516A,0x34B8,0x519F,0x34C2,0x51C1,0x34CF,0x51C2,
- 0x51C3,0x5245,0x5248,0x34E7,0x34E9,0x524F,0x4452,0x34E8,0x52C5,0x52CA,
- 0x52C4,0x5327,0x5358,0x537D,0x354A,0x53DD,0x53DC,0x53DA,0x53D9,0x54B9,
- 0x3580,0x54D0,0x54B4,0x54CA,0x3587,0x54A3,0x54DA,0x54A4,0x3584,0x54B2,
- 0x549E,0x549F,0x54B5,0x3582,0x3581,0x54CD,0x3583,0x54CC,0x3622,0x5700,
- 0x57AC,0x5791,0x578E,0x578D,0x5792,0x57A1,0x5790,0x57A6,0x57A8,0x363B,
- 0x579C,0x5796,0x57A7,0x363A,0x3638,0x3639,0x3636,0x58F5,0x3685,0x5909,
- 0x5908,0x3C54,0x5952,0x369A,0x36C4,
- /* plane 3, row 12 */
- 1 | (94 << 8), /* first, last */
- 0x59DF,0x36C5,0x59EB,0x59EF,0x59F0,0x59D5,0x5A0D,0x5A04,0x59F9,
- 0x5A02,0x59F8,0x59E2,0x59D9,0x59E7,0x5B6A,0x3754,0x3755,0x5BAB,0x3756,
- 0x5C1B,0x5C2F,0x3796,0x663C,0x3795,0x3794,0x37C4,0x5CD1,0x5CDC,0x5CE6,
- 0x5CE1,0x5CCD,0xD87E,0x5CE2,0x5CDD,0x5CE5,0x5DFB,0x5DFA,0x5E1E,0x3844,
- 0x5EA1,0x387D,0x387E,0x5EFC,0x5EFB,0x5F2F,0x38B2,0x38B6,0x5F66,0xD87E,
- 0x38DC,0x38DF,0x605C,0x3928,0x604E,0x6051,0x3919,0x3910,0x6023,0x6031,
- 0x607C,0x6052,0x392C,0x6060,0x604A,0x6061,0x391B,0x6218,0x39C2,0x39EF,
- 0x39E3,0x39E5,0x39EA,0x39E6,0x39EE,0x631F,0x6317,0x62EA,0x6321,0x6304,
- 0x6305,0x39E8,0x6531,0x6544,0x6540,0x3A85,0x6542,0x65BE,0x3AE0,0x6629,
- 0x661B,0x3ADD,0x6623,0x662C,0x661A,
- 32, /* first low-surrogate */
- 0xDC7A, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xDC99,
- /* plane 3, row 13 */
- 1 | (94 << 8), /* first, last */
- 0x6630,0x663B,0x661E,0x6637,0x6638,0x3AE1,0x670E,0x3B51,0x3B55,
- 0x67E8,0x67D6,0x3B52,0x67C7,0x67BC,0x6852,0x67BF,0x67D5,0x67FE,0x8363,
- 0x67FB,0xD87E,0x67B1,0x6801,0x6805,0x6800,0x67D7,0x409E,0x6B2A,0x6B6B,
- 0x3C52,0x3C5E,0x3C60,0x3C5F,0x6BE1,0x3C92,0x3CD6,0x6D23,0x6CFF,0x6D14,
- 0x6D05,0x6D13,0x6D06,0x6D21,0x3CDE,0x6D15,0x6CAF,0x6CF4,0x6D02,0x6D45,
- 0xD87E,0x6D26,0x3CD9,0x6D44,0x3CDD,0x6D24,0x70A5,0x3DAC,0x70A3,0x3DB0,
- 0x70A2,0x70BB,0x70A0,0x70AA,0x3DAF,0x3DAE,0x70A8,0x70B6,0x70B2,0x70A7,
- 0x3DAD,0x3DAB,0x70B9,0x722E,0x3E16,0x723C,0x3E30,0x726D,0x3E33,0x3E31,
- 0x72E7,0x72ED,0x3E6E,0x72EC,0x72E5,0x72E2,0x3EB1,0x73C4,0x73BD,0x73CF,
- 0x73C9,0x73C1,0x73D0,0x3EB7,0x73CE,
- 21, /* first low-surrogate */
- 0xDCDF, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xDCFE,
- /* plane 3, row 14 */
- 1 | (94 << 8), /* first, last */
- 0x74ED,0x74EB,0x3F1A,0x74EF,0x7549,0x7550,0x7546,0x754A,0x3F59,
- 0x754D,0x75A6,0x3F7A,0x3F78,0x3F7B,0x75A8,0x3FDE,0x3FEC,0x76C7,0x76FF,
- 0x401E,0x76FD,0x77E6,0x780A,0x409B,0x7804,0x780B,0x7807,0x409D,0x7815,
- 0x7808,0x40FD,0x79D3,0x79D4,0x79D0,0x79D7,0x7A7C,0x4194,0x4193,0x7A7D,
- 0x7A83,0x7A82,0x41C6,0x7AD4,0x7AD5,0x7AD3,0x7AD0,0x7AD2,0x7AFE,0x7AFC,
- 0x7C77,0x7C7C,0x7C7B,0x42B8,0xD87E,0x42B7,0x42B9,0x4353,0xD854,0x4352,
- 0x4351,0x7F8F,0x80D3,0x43E3,0x80CB,0x80D2,0x43E2,0x8109,0x80E2,0x80DF,
- 0x80C6,0x4463,0x8224,0x82F7,0x82D8,0x82DD,0x44AA,0x44A6,0x82F8,0x82FC,
- 0x44A8,0x44A9,0x82E9,0x44AB,0x82EE,0x44AC,0x82D0,0x830E,0x82E2,0x830B,
- 0x82FD,0x5179,0x8676,0x459E,0x8678,
- 54, /* first low-surrogate */
- 0xDD6A, 0, 0, 0,0xDD33,
- /* plane 3, row 15 */
- 1 | (94 << 8), /* first, last */
- 0x459F,0x45A0,0x8675,0x867D,0x460F,0x8842,0x8866,0x461C,0x898C,
- 0x8A05,0x46AE,0x8A06,0x46B0,0x8C9F,0x47D4,0x8FF1,0x8FE7,0x8FE9,0x8FEF,
- 0x90C2,0x90BC,0x48BB,0x90C6,0x90C0,0x48C1,0x48C2,0x90CD,0x90C9,0x48BE,
- 0x90C4,0x48E5,0x9581,0x49C6,0x9CEC,0x5032,0x4FF9,0x501D,0x4FFF,0x5004,
- 0x4FF0,0x5003,0x462E,0x5002,0x4FFC,0x4FF2,0x5024,0x5008,0x5036,0x502E,
- 0x3465,0x5010,0x5038,0x5039,0x4FFD,0x5056,0x4FFB,0x51A3,0x51A6,0x51A1,
- 0x34D1,0x34D0,0x51C7,0x51C9,0x5260,0x5264,0x5259,0x5265,0x5267,0x5257,
- 0x5263,0x34EE,0x5253,0x34EF,0x52CF,0x351E,0x52CE,0x52D0,0x52D1,0x52CC,
- 0x354B,0x354D,0x3556,0x550D,0x54F4,0x3592,0x5513,0x54EF,0x54F5,0x54F9,
- 0x5502,0x5500,0x3593,0x3590,0x5518,
- /* plane 3, row 16 */
- 1 | (94 << 8), /* first, last */
- 0x54F0,0x54F6,0xD87E,0x3597,0x5519,0x3623,0x5705,0x57C9,0x363F,
- 0x57B7,0x57CD,0x3643,0x3642,0x3644,0x57BE,0x57BB,0x3645,0x57DB,0x57C8,
- 0x57C4,0x57C5,0x57D1,0x57CA,0x57C0,0x36D9,0x36DE,0x5A21,0x5A2A,0x36CF,
- 0x5A1D,0x36CD,0x5A0B,0x36DD,0x36CE,0x36D3,0x36D6,0x5A22,0x36DC,0x36D1,
- 0x5A24,0x36D0,0x5A14,0x5A31,0x36D5,0x5A2F,0x5A1A,0x5A12,0x36D4,0x36DB,
- 0x5A26,0xD845,0x3743,0x5BBC,0x5BBB,0x5BB7,0x5C05,0x5C06,0x5C52,0x5C53,
- 0x37CD,0x37D1,0x5CFA,0x5CEB,0x37CA,0x5CF3,0x5CF5,0x5CE9,0x5CEF,0x37D4,
- 0x5E2A,0x5E30,0x5E2E,0x5E2C,0x5E2F,0x5EAF,0x5EA9,0x3886,0x5EFD,0x5F32,
- 0x5F8E,0x5F93,0x5F8F,0x604F,0x6099,0x3933,0x607E,0x3937,0x6074,0x604B,
- 0x6073,0x6075,0x392A,0x391F,0x6056,
- 3, /* first low-surrogate */
- 0xDC41, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xDF2E,
- /* plane 3, row 17 */
- 1 | (94 << 8), /* first, last */
- 0x60A9,0x608B,0x60A6,0x3939,0x6093,0x60AE,0x609E,0x60A7,0x6245,
- 0x39F2,0x39F8,0x632E,0x39F7,0x6352,0x6330,0x635B,0x39F4,0x6319,0x631B,
- 0x39F1,0x6331,0x635D,0x6337,0x6335,0x6353,0x39F5,0x635C,0x633F,0x654B,
- 0x3A87,0x4369,0x658B,0x3AB6,0x659A,0x6650,0x6646,0x664E,0x6640,0x3AE9,
- 0x664B,0x6648,0x3AEB,0x6660,0x6644,0x664D,0x3B34,0x6837,0x6824,0x3B62,
- 0x3B5C,0x681B,0x6836,0x3B60,0x682C,0x6819,0x6856,0x6847,0x683E,0x681E,
- 0xD87E,0x6815,0x6822,0x6827,0x6859,0x6858,0x6855,0x6830,0x6823,0x6B2E,
- 0x6B2B,0x6B30,0x6B6C,0x3C61,0x6B8B,0x3C7F,0x6BE9,0x6BEA,0x6BE5,0x6D6B,
- 0x3CE5,0x3CE6,0x6D73,0x6D57,0x3CE9,0x3CF3,0x6D5D,0x6D56,0x6D8F,0x6D5B,
- 0x6D1C,0x6D9A,0x6D9B,0x6D99,0x3CEE,
- 60, /* first low-surrogate */
- 0xDCE1,
- /* plane 3, row 18 */
- 1 | (94 << 8), /* first, last */
- 0x6D81,0x6D71,0x3CED,0x3CEC,0x6D72,0x6D5C,0x6D96,0x70C4,0x70DB,
- 0x70CC,0x70D0,0x70E3,0x70DF,0x3DB3,0x70D6,0x70EE,0x70D5,0x3DB5,0x3E27,
- 0x3E35,0x3E36,0x727A,0x3E71,0x72F5,0x7302,0x3EB8,0x3EC2,0x73E2,0x73EC,
- 0x73D5,0x73F9,0x73DF,0x73E6,0x3EC8,0x3EC0,0x3EC1,0x3EC4,0x73E4,0x73E1,
- 0x74F3,0x3F1F,0x3F1C,0x3F1D,0x3F4D,0x7556,0x7555,0x7558,0x7557,0x755E,
- 0x75C3,0x3F87,0x3F82,0x75B4,0x3F7D,0x75B1,0x3FDF,0x4000,0x76CB,0x76CC,
- 0x772A,0x4020,0x7716,0x770F,0x4022,0x4024,0x773F,0x772B,0x770E,0x7724,
- 0x4021,0x7721,0x7718,0x77DD,0x40A4,0x40A5,0x7824,0x7836,0x4101,0x7958,
- 0x7959,0x4103,0x7962,0x79DA,0x79D9,0x4137,0x79E1,0x79E5,0x79E8,0x79DB,
- 0x4138,0x79E2,0x79F0,0x4199,0x4198,
- /* plane 3, row 19 */
- 1 | (94 << 8), /* first, last */
- 0x4197,0x41C9,0x7ADA,0x7ADD,0x41C7,0x7ADB,0x7ADC,0x41D9,0x41DB,
- 0x7B0D,0x7B0B,0x7B14,0x7C8E,0x7C86,0x427B,0x7C87,0x7C83,0x7C8B,0x427C,
- 0x42BD,0x42BC,0x42C3,0x7D24,0x42C1,0x42BF,0x42C4,0x7D25,0x7F62,0x7F93,
- 0x7F99,0x7F97,0x437E,0x437F,0x7FC4,0x7FC6,0x800A,0x43B4,0x43B3,0x8040,
- 0x803C,0x803B,0x80F6,0x80FF,0x80EE,0x8104,0x8103,0x8107,0xD87E,0x43E6,
- 0x80F7,0x4459,0x445A,0x822D,0x4464,0x8227,0x8229,0x831F,0x8357,0x44B4,
- 0x44B9,0x44B7,0x44B5,0x8321,0x44C1,0x44B1,0x8318,0x8358,0x44B3,0x44BA,
- 0x458C,0x458B,0x458D,0x8684,0x869F,0x869B,0x8689,0x86A6,0x8692,0x868F,
- 0x86A0,0x884F,0x8878,0x887A,0x886E,0x887B,0x8884,0x8873,0x4678,0x4677,
- 0x8A0D,0x8A0B,0x8A19,0x46B2,0x47D6,
- 48, /* first low-surrogate */
- 0xDD83,
- /* plane 3, row 20 */
- 1 | (94 << 8), /* first, last */
- 0x8ED0,0x4845,0x4892,0x4895,0x8FF9,0x9009,0x9008,0x48C6,0x90DE,
- 0x9151,0x48E7,0x48E8,0x91DB,0x91DF,0x91DE,0x91D6,0x91E0,0x9585,0x9660,
- 0x9659,0x49CB,0x9656,0x49CD,0x49F1,0x96BD,0x4B22,0x3421,0x5042,0x5059,
- 0x346F,0x5044,0x5066,0x5052,0x5054,0x5071,0x5050,0x507B,0x507C,0x5058,
- 0x3470,0x3464,0x5079,0x506C,0x5078,0x51A8,0x51D1,0x51CF,0x5268,0x5276,
- 0x52D4,0x352D,0x53A0,0x53C4,0x3558,0x5558,0x554C,0x5568,0x35A6,0x5549,
- 0x35A4,0x359F,0x555D,0x5529,0xD843,0x5554,0x5553,0x35A3,0x555A,0x35A0,
- 0x553A,0x553F,0x552B,0x57EA,0x364A,0x57EF,0x3647,0x3648,0x57DD,0x57FE,
- 0xD87E,0x57DE,0x57E6,0x3649,0x57E8,0x57FF,0x5803,0x58F7,0x68A6,0x591F,
- 0x369E,0x595B,0x595D,0x595E,0xD845,
- 64, /* first low-surrogate */
- 0xDDAE, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xDC55, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xDE37,
- /* plane 3, row 21 */
- 1 | (94 << 8), /* first, last */
- 0x36E8,0x5A2B,0x36EC,0x5A3B,0x36ED,0x36E6,0x5A61,0x5A3A,0x5A6E,
- 0x5A4B,0x5A6B,0x36EB,0x36E7,0x5A45,0x5A4E,0x5A68,0x5A3D,0x5A71,0x5A3F,
- 0x5A6F,0x5A75,0x36E9,0x5A73,0x5A2C,0x5A59,0x5A54,0x5A4F,0x5A63,0x375C,
- 0x375D,0x5BC8,0x3760,0x5BC3,0x375B,0x5C5B,0x5C61,0x3799,0x5D21,0x5D0A,
- 0x5D09,0x37D8,0x5D2C,0x5D08,0x37DA,0x37DD,0x5D2A,0x5D15,0x37E0,0x5D10,
- 0x5D13,0x37E5,0x5D2F,0x5D18,0x37D7,0x5DE3,0x5E39,0x5E35,0x5E3A,0x5E32,
- 0x384E,0x388C,0x3888,0xD87E,0x5EBB,0x5EBA,0x5F34,0x5F39,0x38CE,0xD87E,
- 0x38E5,0x38E6,0x6098,0x3932,0x60D0,0x3940,0x3947,0x394C,0x60D7,0x60AA,
- 0x3935,0x60A1,0x60A4,0x3930,0x60EE,0x3943,0x60E7,0x394D,0x60E8,0x60DE,
- 0x39B7,0x39F3,0x637E,0x638B,0x3A02,
- 63, /* first low-surrogate */
- 0xDC8D, 0, 0, 0, 0, 0,0xDC9C,
- /* plane 3, row 22 */
- 1 | (94 << 8), /* first, last */
- 0x3A0B,0x6379,0x6386,0x6393,0x3A04,0x6373,0x636A,0xD87E,0x636C,
- 0x3A08,0x637F,0x39FC,0x63B2,0x63BA,0x39FF,0x3A00,0x6366,0x6374,0x3A8B,
- 0x655A,0x3A8D,0x654E,0x654D,0x658D,0x658E,0x65AD,0x3ACA,0x65C7,0x65CA,
- 0x3ACB,0x65C9,0xD87E,0x65E3,0x6657,0x3AF3,0x6663,0x6667,0x671A,0x6719,
- 0x6716,0x3B36,0x3B6A,0x689E,0x68B6,0x6898,0x6873,0x3B6B,0x689A,0x688E,
- 0x68B7,0x68DB,0x68A5,0x686C,0x68C1,0x6884,0x3B71,0x3B68,0x6895,0x687A,
- 0x6899,0x3B72,0x68B8,0x68B9,0x6870,0x3C2E,0x6B35,0x3C62,0x6B90,0x6BBB,
- 0x6BED,0x3C98,0x3CB5,0x3CEB,0x6DC1,0x6DC3,0x6DCE,0x3CFB,0x3CF8,0x6DAD,
- 0x6E04,0x3CF5,0x6DB9,0x3D08,0x6DE7,0xD87E,0x6E08,0x6E06,0x3D0A,0x6E0A,
- 0x6DB0,0x3D06,0x6DF8,0x6E0C,0x3CFD,
- 8, /* first low-surrogate */
- 0xDCBA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xDCCB, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xDD07,
- /* plane 3, row 23 */
- 1 | (94 << 8), /* first, last */
- 0x6DB1,0x3CFA,0x6E02,0x6E07,0x6E09,0x6E01,0x6E17,0x6DFF,0x6E12,
- 0x3DBA,0x3DB9,0x7103,0x7107,0x7101,0x70F5,0x70F1,0x7108,0x70F2,0x710F,
- 0x3DBB,0x70FE,0x3E18,0x3E40,0x3E3D,0x731A,0x7310,0x730E,0x7402,0x73F3,
- 0x3ECD,0x3EC9,0x73FB,0x3ECB,0x3ECA,0x3ECE,0x751B,0x7523,0x7561,0x7568,
- 0x3F5E,0x7567,0x75D3,0x3F91,0x3F8C,0x7690,0x3FE1,0x4002,0x76D5,0x76D7,
- 0x76D6,0x7730,0x402B,0x7726,0x402A,0x7740,0x3E14,0x771E,0x40AD,0x40A3,
- 0x40AB,0x7847,0x40AF,0x784B,0x7851,0x784F,0x7842,0x7846,0x4104,0x796E,
- 0x796C,0x79F2,0x4144,0x79F1,0x79F5,0x79F3,0x79F9,0x413D,0x4147,0x419C,
- 0x7A9A,0x7A93,0x7A91,0x7AE1,0x41E0,0x41E4,0x7B21,0x7B1C,0x7B16,0x7B17,
- 0x7B36,0x7B1F,0x4280,0x7C93,0x7C99,
- /* plane 3, row 24 */
- 1 | (94 << 8), /* first, last */
- 0x7C9A,0x7C9C,0x42CA,0x7D49,0x42D4,0x7D34,0x7D37,0x42D2,0x7D2D,
- 0x42CB,0x7D4C,0x42CE,0x42D3,0x7D48,0x4344,0x4348,0x7F3B,0x4345,0x4381,
- 0x4386,0x4385,0x8008,0x801A,0x43A3,0x801D,0x43B5,0x8049,0x8045,0x8044,
- 0x7C9B,0x43FA,0x43F9,0x812A,0x812E,0x43FB,0x43F2,0x8131,0x43EF,0x811A,
- 0x8134,0x8117,0x445B,0x4466,0x44CE,0x831D,0x8371,0x8384,0x8380,0x8372,
- 0x83A1,0x35B4,0x8379,0x8391,0x44C8,0x839F,0x83AD,0x44D1,0x44C5,0x8323,
- 0x44D2,0x8385,0x839C,0x83B7,0x8658,0x865A,0x458F,0x8657,0x86B2,0x45A7,
- 0x86AE,0x45A5,0x45A4,0x4611,0x8845,0x889C,0x8894,0x88A3,0x888F,0x88A5,
- 0x88A9,0x88A6,0x888A,0x88A0,0x8890,0x8992,0x8991,0x8994,0x46B5,0x8A26,
- 0x8A32,0x8A28,0x46B4,0x46BD,0x8A1C,
- /* plane 3, row 25 */
- 1 | (94 << 8), /* first, last */
- 0x46BB,0x8A2B,0x8A20,0x46B9,0x8A29,0x46C2,0x46BE,0x46BA,0x8A21,
- 0x8C3A,0x3AB7,0x8C5B,0x8C58,0x8C7C,0x4758,0x8CA6,0x8CAE,0x8CAD,0x8D65,
- 0x479B,0x8D7E,0x479C,0x8D7C,0x8D7F,0x8D7A,0x8DBD,0x47DA,0x47DE,0x8DC0,
- 0x8DBB,0x8EAD,0x8EAF,0x8ED6,0x484D,0x4846,0x4847,0x484B,0x484C,0x8ED9,
- 0x4848,0x4899,0x9012,0x900E,0x9025,0x489B,0x9013,0x90EE,0x48CE,0x90AB,
- 0x90F7,0x48EB,0x9159,0x9154,0x91F2,0x91F0,0x91E5,0x91F6,0x491C,0x498C,
- 0x9587,0x49D1,0x965A,0x49D6,0x49D3,0x966E,0x49D4,0x49D0,0x49D5,0x9679,
- 0x4A0B,0x98E1,0x98E6,0x4BC6,0x9EC4,0x9ED2,0x4E80,0x3424,0x4E81,0x508F,
- 0x5097,0x5088,0x5089,0x3474,0x347A,0x5081,0x5160,0xD841,0x34C3,0x5E42,
- 0x51D3,0x34D4,0x34D5,0x51D2,0x51D6,
- 87, /* first low-surrogate */
- 0xDD64,
- /* plane 3, row 26 */
- 1 | (94 << 8), /* first, last */
- 0x5273,0x34FB,0x5270,0x34F7,0x3532,0xD87E,0x53A8,0x53A6,0x53C5,
- 0x5597,0x55DE,0x35BA,0x35BF,0x5596,0x55B4,0x35C7,0x5585,0x35B7,0x559B,
- 0x55A0,0x35B9,0x5559,0x35C3,0x5586,0x35BD,0x35D0,0x55AF,0x557A,0x35C1,
- 0x35BE,0x35CD,0x559E,0x35CB,0x55A9,0x570F,0x570E,0x581A,0x364F,0x581F,
- 0x3653,0x583C,0x5818,0x583E,0x5826,0x3655,0x583A,0xD844,0x5822,0x3651,
- 0x58FB,0x5963,0x5964,0x369F,0x5AA8,0x5AA3,0x5A82,0x5A88,0x5AA1,0x5A85,
- 0x5A98,0x36FE,0x5A99,0x36FB,0x5A89,0x5A81,0x5A96,0x5A80,0x36F1,0x36F5,
- 0x5A91,0x36EF,0x3704,0x3703,0x36F4,0x5ACF,0x36F3,0x3702,0x36F7,0x36FA,
- 0x36FD,0x36EE,0x5A87,0x5AA0,0x36F0,0x5A79,0x36F2,0x5A86,0x5AAB,0x5AAA,
- 0x5AA4,0x5A8D,0x5A7E,0x3744,0x5BD5,
- 6, /* first low-surrogate */
- 0xDC33, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xDF64,
- /* plane 3, row 27 */
- 1 | (94 << 8), /* first, last */
- 0x3762,0x3777,0x3DC9,0x5C1E,0x5C5F,0x5C5E,0x5D44,0x5D3E,0x37E8,
- 0x5D48,0x5D1C,0x37EF,0x5D5B,0x5D4D,0x37E6,0x37ED,0x5D57,0x37E7,0x5D53,
- 0x5D4F,0x37EB,0x5D3B,0x5D46,0x382D,0x3855,0x5E46,0x5E47,0x3853,0x5E48,
- 0x5EC0,0x5EBD,0x5EBF,0x3890,0x5F11,0x38BE,0x5F3E,0x5F3B,0x38BD,0x5F3A,
- 0x38CF,0x38D0,0x38EC,0x5FA7,0x394B,0x60EA,0x3948,0x6107,0x6122,0x610C,
- 0x3955,0x3951,0x60B3,0x60D6,0x60D2,0x394E,0x60E3,0x60E5,0x60E9,0x396B,
- 0x395E,0x6111,0x60FD,0x3960,0x3967,0x611E,0x6120,0x6121,0x621E,0x39B8,
- 0x63E2,0x63DE,0x63E6,0x3A14,0x3A0F,0x3A07,0x3A13,0x63F8,0x3A17,0x63FE,
- 0x63C1,0x63BF,0x63F7,0x63D1,0x655F,0x6560,0x6561,0x3A9A,0x3AB8,0x65D1,
- 0x3AF7,0x3AF8,0x667D,0x666B,0x667F,
- /* plane 3, row 28 */
- 1 | (94 << 8), /* first, last */
- 0x3AFD,0x3AF5,0x6673,0x6681,0x666D,0x6669,0x3AFA,0x3B38,0x671E,
- 0x68ED,0x3B87,0x3B80,0x3B88,0x3B79,0x6903,0x3B7C,0x68FE,0x68E5,0x691E,
- 0x6902,0x3B83,0x3B85,0x6909,0x68CA,0x6900,0xD87E,0x6901,0x6918,0x68E2,
- 0x68CF,0x3B7B,0x692E,0x68C5,0x68FF,0x3B86,0x691C,0x68C3,0x3C34,0x6B6F,
- 0x3C55,0x6B6E,0x3C68,0x6BBE,0x3C9C,0x6BF4,0x6C2D,0x3CFC,0x6DB6,0x6E75,
- 0x6E1E,0x3D1A,0x6E18,0x3D17,0x6E48,0x3D1B,0x6E4F,0x3D13,0x6E42,0x6E6A,
- 0x6E70,0x6DFE,0x3D05,0x3D07,0x6E6D,0x3D1C,0x6E7B,0x6E7E,0x6E59,0x3D11,
- 0x6E57,0x3D16,0x6E80,0x6E50,0x3D15,0x6E29,0x6E76,0x6E2A,0x6E4C,0x712A,
- 0x3DCB,0x7135,0x712C,0x7137,0x711D,0x3DC5,0x3DC2,0x7138,0x3DCD,0x7134,
- 0x712B,0x7133,0x7127,0x7124,0x3DCA,
- 26, /* first low-surrogate */
- 0xDCE5,
- /* plane 3, row 29 */
- 1 | (94 << 8), /* first, last */
- 0x712D,0x7232,0x7283,0x7282,0x7287,0x7306,0x7324,0x7338,0x732A,
- 0x732C,0x732B,0x3E83,0x732F,0x7328,0x7417,0x3ED6,0x3ED5,0x7419,0x7438,
- 0x3ED1,0x741F,0x7414,0x743C,0x73F7,0x741C,0x7415,0x7418,0x7439,0x74F9,
- 0x7524,0xD87E,0x3F52,0x3F5F,0x756E,0x756D,0x7571,0x758E,0x3F95,0x75E5,
- 0x3F9D,0x3F98,0x3F9E,0x3F96,0x7694,0x76B3,0x4003,0x76D9,0x402F,0x7748,
- 0x7749,0x7743,0x4031,0x4033,0x7742,0x77DF,0x40B4,0x7863,0x7876,0x40B0,
- 0x785F,0x7866,0x7966,0x7971,0x4108,0x4107,0x7976,0x7984,0x7975,0x79FF,
- 0x7A07,0x414E,0x7A0E,0x7A09,0x4150,0x4152,0x41A1,0x41A3,0x41A5,0x41CC,
- 0x7AE7,0x7AE2,0x7B55,0x41EF,0x41EA,0x7B43,0x7B57,0x7B6C,0x7B42,0x7B53,
- 0x41ED,0x7B41,0x4285,0x4284,0x7CA7,
- 31, /* first low-surrogate */
- 0xDD34,
- /* plane 3, row 30 */
- 1 | (94 << 8), /* first, last */
- 0x7CA0,0x7CA6,0x7CA4,0x7D74,0x42DB,0x7D59,0x42D9,0x7D60,0x7D57,
- 0x7D6C,0x7D7E,0x7D64,0x42D7,0x7D5A,0x7D5D,0x42DA,0x42DE,0x42D8,0x7D76,
- 0x7D4D,0x7D75,0x42D5,0x7FD3,0x7FD6,0x439C,0x439D,0x8060,0x804E,0x8145,
- 0x813B,0x43FE,0x8148,0x8142,0x8149,0x8140,0x8114,0x8141,0x4407,0x81EF,
- 0x81F6,0x8203,0x446A,0x83ED,0x44E7,0x83DA,0x8418,0x83D2,0x8408,0x44E2,
- 0x8400,0x44DF,0x44E1,0x44E5,0x8417,0x8346,0x8414,0x83D3,0x8405,0x841F,
- 0x8402,0x8416,0x83CD,0x83E6,0x4591,0x865D,0x86D5,0x86E1,0x45B4,0x45B0,
- 0x45B5,0x45AE,0x86EE,0x8847,0x8846,0x462D,0x462C,0x88BB,0x462B,0x88BF,
- 0x88B4,0x4629,0x88B5,0x467F,0x899A,0x8A43,0x46C9,0x46CB,0x8A5A,0x46C5,
- 0x46C6,0x46CA,0x8A35,0x8A38,0x8A42,
- /* plane 3, row 31 */
- 1 | (94 << 8), /* first, last */
- 0x8A49,0x8A5D,0x8A4B,0x8A3D,0x46D2,0x46D0,0x472D,0x4735,0x8C60,
- 0x8C5E,0x8C7F,0x8C7E,0x8C83,0x476C,0x8CB1,0x8D87,0x479D,0x47A0,0x8D88,
- 0x8D83,0x47A2,0x479F,0x8D86,0x8D8B,0x8D82,0x8DCA,0x8DD2,0x47EB,0x47E2,
- 0x8DD4,0x8DC9,0x8EB0,0x4836,0x4832,0x4850,0x8EF2,0x8EE4,0x8EF3,0x8EEA,
- 0x484F,0x8EFD,0x4852,0x8F9D,0x902B,0x902A,0x489E,0x9028,0x9029,0x902C,
- 0x48A0,0x489C,0x903A,0x9030,0x9037,0x903B,0x48D1,0x910A,0x48EF,0x48F0,
- 0x48F1,0x91FE,0x9220,0x491D,0x920B,0x491F,0x9218,0x9222,0x491E,0x921B,
- 0x9208,0x4920,0x920E,0x9213,0x498E,0x4991,0x9595,0xD863,0x4990,0x49D7,
- 0x968C,0x967B,0x967F,0x9681,0x49D9,0x9682,0x49F4,0x49F6,0x3560,0x49F5,
- 0x49F3,0x96EE,0x96ED,0x4A0C,0x96EC,
- 77, /* first low-surrogate */
- 0xDCDD,
- /* plane 3, row 32 */
- 1 | (94 << 8), /* first, last */
- 0x975F,0x976F,0x4A51,0x976D,0x4AA6,0x4AA7,0x4AA8,0x4B27,0x4B24,
- 0x4B25,0x98F0,0x4B2A,0x4B74,0x4BC7,0x9AA9,0x4BE7,0x4BED,0x9AE0,0x4EB7,
- 0x342E,0x347B,0x50CC,0x50BC,0x347C,0x50AA,0x50B9,0x347D,0x50AB,0x50C3,
- 0x50CD,0x517E,0x527E,0x5279,0x34FD,0xD87E,0x52E1,0x52E0,0x52E7,0x5380,
- 0x53AB,0x53AA,0x53A9,0x53E0,0x55EA,0x35DA,0x55D7,0x35D6,0x35DB,0x55C1,
- 0x5715,0x365B,0x586C,0x365C,0x585C,0x5850,0x5861,0x586A,0x5869,0x5856,
- 0x5860,0x5866,0x585F,0x5923,0x5966,0x5968,0x3706,0x370B,0x5ACE,0x370D,
- 0x5AC5,0x5AC3,0x370A,0x3713,0x5AD0,0x3710,0x3712,0x3709,0x3708,0x3711,
- 0x370F,0x5B74,0x5B76,0x5BDC,0x5BD7,0x5BDA,0x5BDB,0x3767,0x5C20,0x5D6D,
- 0x5D66,0x37F6,0x5D64,0x5D6E,0xD87E,
- 35, /* first low-surrogate */
- 0xDC23, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xDC7E,
- /* plane 3, row 33 */
- 1 | (94 << 8), /* first, last */
- 0x5D60,0x5F42,0x5F5A,0x5F6E,0x3964,0x396C,0x6130,0x613A,0x612A,
- 0x6143,0x6119,0x6131,0x396D,0x613D,0x397A,0x3975,0x3A0D,0x6408,0x6432,
- 0x6438,0x3A1E,0x6431,0x3A1B,0x6419,0x3A2A,0x6411,0x3A1F,0x3A22,0x6429,
- 0x641D,0x3A25,0x3A27,0x3A29,0x643C,0x3A24,0x6446,0x6447,0x3A28,0x3A26,
- 0x643A,0x6407,0x3A23,0x656B,0x3A9F,0x6570,0x656D,0x3AB1,0x65E4,0x6693,
- 0x3B03,0x3B07,0x3B0C,0x3B06,0x668F,0x3B04,0x3B09,0x6692,0x3B05,0x668E,
- 0x3B08,0x6946,0x3B96,0x3B9C,0x3B9F,0x3B9B,0x3B98,0x3B99,0x3B94,0x6931,
- 0x3B8D,0x3BA3,0x693E,0x3B93,0x697C,0x6943,0x3B92,0x6973,0xD87E,0x6955,
- 0x3B8E,0x3B8C,0x6985,0x694D,0x6950,0x6947,0x6967,0x6936,0x6964,0x6961,
- 0x3B9A,0x697D,0x6B44,0x6B40,0x6B71,
- 78, /* first low-surrogate */
- 0xDCE8,
- /* plane 3, row 34 */
- 1 | (94 << 8), /* first, last */
- 0x6B73,0x6B9C,0x3C6A,0x3C6D,0x3C84,0x6BC1,0x3CA0,0x6BFA,0x6C31,
- 0x6C32,0x3D1D,0x3D26,0x6EB8,0x6EA8,0x3D33,0x6E91,0x6EBB,0x3D38,0x6E9A,
- 0x3D30,0x3D28,0x6EA9,0x3D27,0x3D2A,0x6EB5,0x6E6C,0x6EE8,0x3D31,0x6EDD,
- 0x6EDA,0x6EE6,0x6EAC,0x3D34,0x3D2E,0x3D3B,0x6ED9,0x6EE3,0x6EE9,0x6EDB,
- 0x3D29,0x716F,0x3DD2,0x3DD8,0x7148,0x3DCF,0x714A,0x716B,0x3DD9,0x714F,
- 0x7157,0x7174,0x3DCE,0x3DD3,0x3DD0,0x7145,0x7151,0x716D,0x3BA1,0x7251,
- 0x7250,0x724E,0x3E47,0x7341,0x3E8B,0x732E,0x7346,0x3ED4,0x7427,0x3EDE,
- 0x7448,0x7453,0x743D,0x3EDF,0x745D,0x7456,0x3ED7,0x741E,0x7447,0x7443,
- 0x7458,0x7449,0x3EE1,0x744C,0x7445,0x743E,0x3F2F,0x7501,0x751E,0x3F62,
- 0x3F63,0x757A,0x75EE,0x7602,0x7697,
- /* plane 3, row 35 */
- 1 | (94 << 8), /* first, last */
- 0x7698,0x3FE2,0x4004,0x4043,0x775D,0x7764,0x7753,0x7758,0x7882,
- 0x7890,0x788A,0x40BE,0x787A,0x787D,0x40BA,0x788B,0x7878,0x40BC,0xD87E,
- 0x788D,0x7888,0x7892,0x7881,0x797E,0x7983,0x410D,0x410E,0x4111,0x7980,
- 0x410F,0x4112,0x4155,0x7A0F,0x4159,0x415B,0x7A1D,0x4157,0x7AA1,0x7AA4,
- 0x41CE,0x7AE9,0x7AEA,0x41FE,0x7B62,0x7B6B,0x41FC,0x7B5E,0x41F5,0x7B79,
- 0x41F9,0x41FA,0x7B6F,0x7B68,0x4288,0x4289,0x7CAE,0x428A,0x4287,0x428B,
- 0x7CB0,0x42E6,0x7D90,0x42ED,0x7D8A,0x42E5,0x7D8B,0x7D99,0x7D95,0x42E0,
- 0x7D87,0x7D78,0x7D97,0x7D89,0x7D98,0x42E1,0x435B,0x435C,0x7FA3,0x438F,
- 0x438B,0x438D,0x7FDD,0x8057,0x43B9,0x8163,0x816A,0x816C,0x440F,0x4419,
- 0x4413,0x815D,0x8175,0x4418,0x815F,
- 19, /* first low-surrogate */
- 0xDD4E,
- /* plane 3, row 36 */
- 1 | (94 << 8), /* first, last */
- 0x4416,0x817D,0x816D,0x4453,0xD87E,0x8241,0x844F,0x8484,0x44F6,
- 0x847F,0x44F5,0x8448,0x842A,0x847B,0x8472,0x8464,0x842E,0x845C,0x8453,
- 0x44F7,0x8441,0x84C8,0x44F0,0x8462,0x8480,0x843E,0x8483,0x8471,0x44F9,
- 0x844A,0x8455,0x8458,0x4592,0x4595,0x4596,0x86FC,0x86FD,0x8715,0x45B9,
- 0x8716,0x86FF,0x45BD,0x45B8,0x4612,0x8858,0x88CF,0x88E0,0x4680,0x4681,
- 0x469A,0x4698,0x89E7,0x8A6A,0x8A80,0x46D4,0x8A6F,0x8A65,0x46DA,0x8A78,
- 0x8A7D,0x8A88,0x46D6,0x46DB,0x8A64,0x8A7E,0x46DC,0x8A67,0x8C63,0x8C88,
- 0x4771,0x8CCD,0x4772,0x8CC9,0x47A8,0x8DED,0x47F0,0xD87E,0x47F1,0x47FD,
- 0x4838,0x4837,0x4839,0x8EB1,0x4855,0x4853,0x8F04,0x8F9E,0x8FA0,0x9043,
- 0x9046,0x9048,0x9045,0x9040,0x904C,
- 5, /* first low-surrogate */
- 0xDD8D, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xDDDB,
- /* plane 3, row 37 */
- 1 | (94 << 8), /* first, last */
- 0x48D5,0x48BD,0x910C,0x9113,0x9115,0x48F5,0x916B,0x9167,0x925D,
- 0x9255,0x9235,0x4921,0x9259,0x922F,0x923C,0x928F,0x925C,0x926A,0x9262,
- 0x925F,0x926B,0x926E,0x923B,0x9244,0x9241,0x959A,0x4992,0x9599,0x49DE,
- 0x49DB,0x49DA,0x968F,0x49DF,0x9696,0x49F9,0x49F8,0x49FA,0x96F4,0x96FC,
- 0x4A0E,0x9755,0x4A43,0x9779,0x4A56,0x4A53,0x4A9E,0x97EE,0x97F5,0x4AA9,
- 0x980B,0x4AFA,0x98F3,0x4B31,0x4B30,0x98F7,0x98FF,0x98F5,0x4B32,0x98EC,
- 0x98F1,0x4B29,0x4B2E,0x999A,0x4B76,0x9AE2,0x9B3D,0x9B5D,0x9CE8,0x4CA5,
- 0x9CEB,0x9CEF,0x9CEE,0x9E81,0x9F14,0x50D0,0x50D9,0x50DC,0x50D8,0x348C,
- 0x50E1,0x50EB,0x348B,0x3489,0x50F4,0x50E2,0x50DE,0x348D,0x3486,0x34D7,
- 0x51F4,0x3504,0x3507,0x3503,0x52ED,
- /* plane 3, row 38 */
- 1 | (94 << 8), /* first, last */
- 0x52EA,0x3522,0x5332,0x3551,0x53AE,0x53B0,0x3561,0x55FB,0x5603,
- 0x560B,0x35E9,0x5607,0x35E5,0x55F8,0x35E4,0x5628,0x561E,0x35E3,0x5618,
- 0x5611,0x5651,0x5605,0x5717,0x5892,0x3665,0x588C,0x3663,0x5878,0x5884,
- 0x5873,0x58AD,0x5897,0x5895,0x5877,0x5872,0x5896,0x588D,0x5910,0x368C,
- 0x596C,0x371A,0x5AE7,0x3715,0x5AE4,0x3720,0x3721,0x5AEF,0x5626,0x371C,
- 0x371B,0x5AF0,0x5D7B,0x37FE,0x5D83,0x3804,0x3801,0x5D8B,0x5D8C,0x3800,
- 0x5D78,0x5E52,0x386D,0x3893,0x5ED0,0x5ECF,0x38A1,0x5FB3,0x5FB4,0x3976,
- 0x3979,0x3972,0x617B,0x3983,0x616F,0x6181,0x613C,0x6142,0x6138,0x6133,
- 0xD87E,0x6160,0x6169,0x617D,0x6186,0x622C,0x6228,0x3A38,0x644C,0x3A30,
- 0x6457,0x647C,0x3A34,0x3A3A,0x6455,
- 80, /* first low-surrogate */
- 0xDCA6,
- /* plane 3, row 39 */
- 1 | (94 << 8), /* first, last */
- 0x6462,0x6471,0x646A,0x6456,0x643B,0x6481,0x3A35,0x644F,0x647E,
- 0x6464,0x3A3F,0x3A40,0x3A32,0x3A31,0x3A36,0x6571,0xD84C,0x3B0F,0x66A5,
- 0x669A,0x669C,0x3B10,0x66A6,0x3B0D,0x66A4,0x698F,0x69C5,0x69C8,0x6992,
- 0x69B2,0x3BA9,0x3BB4,0x3BAC,0x69E3,0x69C0,0x69D6,0x69D1,0x699F,0x69A2,
- 0x69D2,0x3BB8,0x3BAE,0xD84D,0x69E1,0x69D5,0x699D,0x3BB3,0x3BBA,0x6998,
- 0x3C3F,0x6B74,0x6BA1,0x3D3C,0x6EF0,0x6EF3,0x3D42,0x3D40,0x6F1B,0x6F0C,
- 0x6F1D,0x6F34,0x6F28,0x6F17,0x3D3E,0x6F44,0x6F42,0x6F04,0x6F11,0x6EFA,
- 0x6F4A,0x7191,0x718E,0x3DE1,0x718B,0x718D,0x717F,0x718C,0x717E,0x717C,
- 0x7183,0x3DE6,0x7188,0x3DE0,0x3E15,0x7294,0x3E93,0x7355,0x7353,0x734F,
- 0x7354,0x746C,0x7465,0x7466,0x7461,
- 17, /* first low-surrogate */
- 0xDCBA, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xDDF3,
- /* plane 3, row 40 */
- 1 | (94 << 8), /* first, last */
- 0x746B,0x7468,0x7476,0x3EE7,0x7460,0xD852,0x7474,0x7506,0x760E,
- 0x3FAD,0x7607,0x3FAE,0x3FE3,0x76B9,0x3FF5,0x76B7,0x76E2,0x4006,0x7774,
- 0x7777,0x7776,0x7775,0x404F,0x7778,0x7771,0x4054,0x777A,0x715B,0x777B,
- 0x78A6,0x78AE,0x78B8,0x40CB,0x40E3,0x40C9,0x78B1,0x78AF,0x4113,0x7989,
- 0x7987,0x4115,0x4161,0x7A29,0x4166,0x7A2A,0x4164,0x7A2D,0x7A2C,0x4160,
- 0x7A32,0x4163,0x7AEC,0x7AF0,0x7B81,0x7B9E,0x7B83,0x420A,0x7B92,0x4204,
- 0x7BA3,0x7B9F,0x7B93,0x4207,0x7B86,0x7CB8,0x7CB7,0x428D,0x428F,0x4290,
- 0x4292,0x42EC,0x7DC8,0x7DB6,0xD87E,0x7DD1,0x42E7,0x7DA8,0x7DAB,0x42F2,
- 0x7DB3,0x7DCD,0x42EE,0x7DCF,0x7DA4,0x42EF,0x434C,0x7F41,0x7F6F,0x7F71,
- 0x435E,0x435F,0x4376,0x4374,0x4372,
- 6, /* first low-surrogate */
- 0xDE0F, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xDD6C,
- /* plane 3, row 41 */
- 1 | (94 << 8), /* first, last */
- 0x4390,0x8023,0x805B,0x43BE,0x8061,0x805F,0x8181,0x4426,0x4425,
- 0x8184,0x8213,0x4474,0x824A,0x824C,0x44FD,0x4505,0x4501,0x84BD,0x8495,
- 0x4509,0x8492,0x84C3,0x450C,0x8496,0x84A5,0x84B5,0x84B3,0x84A3,0x84E4,
- 0x84D8,0x84D5,0x450D,0x84B7,0x84AD,0x84DA,0x8493,0x8736,0x45C0,0x45C5,
- 0x45C9,0x873D,0x872B,0x8747,0x8739,0x45D5,0x8745,0x871D,0x4641,0x88FF,
- 0x88EA,0x4633,0x88F5,0x463A,0x8900,0x88ED,0x8903,0x88E9,0x4640,0x4642,
- 0x89EA,0x46E8,0x8A9B,0x8A8E,0x8AA2,0x46E4,0x8A9C,0x8A94,0x8A90,0x8AA9,
- 0x8AAC,0x46E7,0x8A9F,0x46E6,0x46E1,0x8A9D,0x4739,0x8C67,0x475C,0x4775,
- 0x8CD0,0x8CD6,0x8CD4,0x8D98,0x8D9A,0x8D97,0x47AE,0x47B0,0x47FA,0x8E0B,
- 0x8E08,0x8E01,0x8EB4,0x8EB3,0x485B,
- /* plane 3, row 42 */
- 1 | (94 << 8), /* first, last */
- 0x8FA1,0x8FA2,0x48A5,0x905A,0x48A2,0x9061,0x905F,0x48DB,0x48DA,
- 0x9125,0x917B,0x9176,0x917C,0x4924,0x9289,0x92F6,0x92B1,0x92AD,0x9292,
- 0x9281,0x9284,0x4926,0x92AE,0x9290,0x929E,0x4998,0x4996,0x499A,0x95A2,
- 0x95A7,0x4997,0x49E1,0x49E0,0x49E3,0x49E2,0x96A0,0x969D,0x969F,0x96D0,
- 0x49FB,0x96D1,0x4A12,0x4A14,0x9759,0x4A45,0x9764,0x4A5C,0x4A5D,0x4AB8,
- 0x9819,0x4ABA,0x9814,0x9815,0x981A,0x4B03,0x4B35,0x4B36,0x4B39,0x9906,
- 0x4B2D,0x98F8,0x9901,0x4B7A,0x99BE,0x99BC,0x99B7,0x99B6,0x99C0,0x4B78,
- 0x99B8,0x4B7B,0x4B7C,0x4B7E,0x99C4,0x4B7D,0x99BF,0x4BC9,0x9ADA,0x9AE4,
- 0x9AE9,0x9AE8,0x9AEA,0x9AE5,0x4BF3,0x9B26,0x4C1A,0x4C19,0x9B40,0x4C1F,
- 0x4CA6,0x4CA7,0x4CA8,0x4CAB,0x4CA9,
- /* plane 3, row 43 */
- 1 | (94 << 8), /* first, last */
- 0x4D2E,0x9EBD,0x4D5E,0x3495,0x3493,0x3492,0x510E,0x3496,0x50F7,
- 0x3497,0x50FC,0x510D,0x5101,0x51DA,0x51D9,0x51DB,0x5286,0x528E,0x52EE,
- 0x5333,0x53B1,0x35F5,0x5647,0x562D,0x5654,0x35EA,0x564B,0x5652,0x5631,
- 0x5644,0x5656,0x5650,0x562B,0x35F3,0x564D,0x5637,0x564F,0x58A2,0x58B7,
- 0x3669,0x58B2,0x366B,0x58AA,0x58B5,0x58B0,0x366C,0x58B4,0x58A4,0x58A7,
- 0x3668,0x5926,0x5AFE,0x3728,0x5B04,0x3726,0x5AFC,0x3725,0x5B06,0x5B0A,
- 0x5AFA,0x5B0D,0x5B00,0x5B0E,0x376B,0x380F,0x3808,0x5D91,0x380C,0x5D8F,
- 0x5D90,0x5D98,0x5DA4,0x5D9B,0x5DA3,0x5D96,0x5DE4,0x5E5A,0x3860,0x3862,
- 0x5E5E,0x3898,0x5FB8,0x6157,0x615C,0x61A6,0x6195,0x6188,0x398A,0x61A3,
- 0x618F,0x3984,0x6164,0x397F,0x6159,
- /* plane 3, row 44 */
- 1 | (94 << 8), /* first, last */
- 0x6178,0x3982,0x6185,0x6187,0x619E,0x3996,0x3989,0x6198,0x619C,
- 0x398D,0x39BC,0x622F,0x6480,0x649B,0x648E,0x648D,0x6494,0x64C6,0x3A44,
- 0x64A8,0x6483,0x3A3C,0x64B9,0x6486,0x64B4,0x64AF,0x6491,0x3A4E,0x64AA,
- 0x64A1,0x64A7,0x66B6,0x66B3,0x3B14,0x66BC,0x66AC,0x3B15,0x66AD,0x6A0E,
- 0x3BCE,0x6A1C,0x6A1A,0x3BE0,0x3BC2,0x6A0B,0x3BBF,0x69EF,0x6A0C,0x69F0,
- 0x6A22,0x3BC4,0x69D8,0x3BCF,0x6A12,0x69FA,0x3BC8,0x6A2A,0x3BCC,0x6A10,
- 0x3BCD,0x3BC7,0x6A29,0x69F9,0x69EA,0x6A2C,0x6A24,0x4CB7,0x69E9,0x6B52,
- 0x6B4F,0x6B53,0x3C43,0x3CB6,0x6F10,0x6F65,0x6F75,0x3D51,0x3D4A,0x3D4D,
- 0x3D56,0x6FD0,0x3D53,0x6F5C,0x6F3D,0x6F71,0x3D59,0x6F91,0x6F0B,0x6F79,
- 0x6F81,0x6F8F,0x3D4E,0x6F59,0x6F74,
- /* plane 3, row 45 */
- 1 | (94 << 8), /* first, last */
- 0x3DEE,0x71AE,0x3DEC,0x71A3,0x71AD,0x3DEB,0x3DEF,0x71AB,0x71A6,
- 0x71A2,0x3DED,0x52F2,0x7257,0x7255,0x7299,0x734B,0x747A,0x3EF2,0x3EEF,
- 0x3EF1,0x748C,0x7484,0x3EED,0x3EF0,0x7482,0x7493,0x747B,0x3EEE,0x7509,
- 0x4C1B,0x3F50,0x3F66,0x3684,0x3FB8,0x3FF6,0x778A,0x4057,0x7790,0x405E,
- 0x78C6,0x78D3,0x78C0,0x78D2,0x78C7,0x78C2,0x4119,0x799F,0x799D,0x799E,
- 0x4170,0x7A41,0x416E,0x7A38,0x7A3A,0x7A42,0x4172,0x4176,0x7A3E,0x7AB0,
- 0x7BAE,0x7BB3,0x4212,0x421F,0x7BBF,0x4211,0x4216,0x7BCD,0x4219,0x7BB2,
- 0x4224,0x4214,0x4225,0x4295,0x4296,0x4293,0x4294,0x7CC4,0x7CCD,0x7CC2,
- 0x7CC6,0x7CC3,0x7CC9,0x7CC7,0x42A0,0x7DF8,0x42FB,0x7DED,0x7DE2,0x42FC,
- 0x4300,0x42F8,0x7DDC,0x7E02,0x7E01,
- /* plane 3, row 46 */
- 1 | (94 << 8), /* first, last */
- 0x42F9,0x7DD6,0x4304,0x7DE4,0x7DFE,0x4303,0x7E00,0x7DFC,0x7DFD,
- 0x42F3,0x7DF5,0x7DFF,0x42FA,0x7DEB,0x7DE5,0x7F78,0x7FAE,0x7FE7,0x43BF,
- 0x8065,0x806A,0x8066,0x8068,0x806B,0x8194,0x81A1,0x8192,0x8196,0x8193,
- 0x4479,0x4510,0x8501,0x4514,0x84F8,0x450E,0x84F5,0x451A,0x8504,0x4519,
- 0x4521,0x4523,0x451F,0x851B,0x8503,0x8533,0x8534,0x84ED,0x4525,0x452B,
- 0x8535,0x4516,0x8505,0x4522,0x451B,0x45CE,0x45CF,0x877D,0x45CB,0x45D1,
- 0x45CC,0x8771,0x4617,0x885C,0x88E6,0x890F,0x891B,0x4651,0x89A9,0x89A5,
- 0x89EE,0x8AB1,0x46ED,0x8ACC,0x8ACE,0x46F4,0x8AB7,0x46F1,0x8AB5,0x8AE9,
- 0x8AB4,0x46F8,0x8AB3,0x8AC1,0x8AAF,0x8ACA,0x8AD0,0x472F,0x475E,0x475D,
- 0x8C8E,0x4776,0x4777,0x8CE9,0x8CDB,
- /* plane 3, row 47 */
- 1 | (94 << 8), /* first, last */
- 0x477E,0x8CEB,0x8DA4,0x47B6,0x8DA2,0x8D9D,0x47B3,0x47FC,0x4803,
- 0x4800,0x8E2A,0x8E28,0x480A,0x4802,0x8EB8,0x8EB6,0x8EB9,0x8EB7,0x8F22,
- 0x8F2B,0x8F27,0x8F19,0x8FA4,0x4887,0x8FB3,0x48A6,0x9071,0x906A,0x48A9,
- 0x48DE,0x9188,0x918C,0x92BF,0x92B8,0x92BE,0x92DC,0x92E5,0x492E,0x492D,
- 0x92D4,0x92D6,0x4930,0x92DA,0x92ED,0x92F3,0x92DB,0x492B,0x92B9,0x92E2,
- 0x92EB,0x95AF,0x499E,0x95B2,0x95B3,0x499F,0x49E5,0x49E4,0x96A3,0x96A5,
- 0x49FD,0x49FC,0x4A17,0x4A19,0x970A,0x4A18,0x9787,0x9789,0x978C,0x97EF,
- 0x982A,0x9822,0x4ABF,0x981F,0x4B3C,0x9919,0x4B6B,0x99CA,0x99DA,0x4B83,
- 0x4B81,0x4B80,0x99DE,0x99C8,0x99E0,0x4BCA,0x9AB6,0x9AB5,0x4BCE,0x9AF4,
- 0x4BF6,0x9B6B,0x9B69,0x9B72,0x9B63,
- /* plane 3, row 48 */
- 1 | (94 << 8), /* first, last */
- 0x4C39,0x9D0D,0x4CAE,0x9D01,0x9D0C,0x4CB5,0x9CF8,0x4CB3,0x4CB4,
- 0x9CFE,0x9D02,0x9E84,0x4D22,0x9EAB,0x9EAA,0x511D,0x5116,0x3499,0x512B,
- 0x511E,0x511B,0x5290,0x5294,0x5314,0xD842,0x3602,0x5667,0x3601,0x567B,
- 0x36A1,0x565F,0x5661,0x35FD,0x3673,0x3674,0x3670,0x3676,0x3675,0x3672,
- 0x58C3,0x58CA,0x58BB,0x58C0,0x58C4,0x5901,0x5B1F,0x5B18,0x5B11,0x5B15,
- 0x3729,0x5B12,0x5B1C,0x372A,0x5B22,0x5B79,0x5DA6,0x3816,0x5DB3,0x5DAB,
- 0x5EEA,0x3899,0x5F5B,0x38D3,0x38F5,0x61B7,0x61CE,0x61B9,0x61BD,0x61CF,
- 0x61C0,0x6199,0x6197,0x3994,0x61BB,0x61D0,0x61C4,0x6231,0x3A56,0x64D3,
- 0x64C0,0x3A59,0x3A58,0x3A55,0x3A52,0x64DC,0x64D1,0x64C8,0x3A57,0x64D5,
- 0x66C3,0x3B1B,0x3B1C,0x66BF,0x66C5,
- 25, /* first low-surrogate */
- 0xDF89,
- /* plane 3, row 49 */
- 1 | (94 << 8), /* first, last */
- 0x3B19,0x66CD,0x66C1,0x6706,0x3B3F,0x6724,0x6A63,0x6A42,0x6A52,
- 0x3BDB,0x6A43,0x6A33,0x3BE2,0x6A6C,0x6A57,0x3BD7,0x6A4C,0x6A6E,0x3BDE,
- 0x3BE5,0x3BE4,0x3BE6,0x3BD6,0x6A37,0x3BDF,0x6A71,0x6A4A,0x6A36,0x3BDC,
- 0x6A53,0x3BDA,0x6A45,0x6A70,0x3BD3,0x3BD0,0x6A5C,0x6B58,0x6B57,0x3C86,
- 0x3C87,0x3CAD,0x3CB7,0x3D58,0x3D6A,0x6FBB,0x3D62,0x3D61,0x6FBE,0x3D69,
- 0x3D6C,0x3D65,0x6FB5,0x6FD3,0x6F9F,0x3D66,0x6FB7,0x6FF5,0x71B7,0x3DF5,
- 0x71BB,0x3DF4,0x71D1,0x3DF7,0x71BA,0x3DF8,0x71B6,0x71CC,0x3DFB,0x3DFC,
- 0x71D3,0x749B,0x3EF5,0x3EF8,0x7496,0x74A2,0x749D,0x750A,0x750E,0x3F3C,
- 0x7581,0x762C,0x7637,0x7636,0x763B,0x3FC5,0x76A1,0x4062,0x4063,0x7798,
- 0x4067,0x7796,0x4066,0x40D9,0x40DB,
- /* plane 3, row 50 */
- 1 | (94 << 8), /* first, last */
- 0x78D6,0x78EB,0x40D8,0x78DC,0x411B,0x79A5,0x79A9,0x9834,0x7A53,
- 0x7A45,0x4179,0x7A4F,0x417D,0x7ABD,0x7ABB,0x7AF1,0x422C,0x4237,0x7BEC,
- 0x7BED,0x4230,0x429A,0x7CD3,0x4A00,0x7CE1,0x4305,0x7E19,0x4307,0x4309,
- 0x430A,0x7E27,0x7E26,0x4379,0x43C2,0x806E,0x81AF,0x4438,0x4437,0x81AD,
- 0x4421,0x81AA,0x8218,0x445E,0x453D,0x4537,0x4540,0x856F,0x854C,0x451D,
- 0x8542,0x4533,0x855C,0x8570,0x855F,0x4535,0x855A,0x854B,0x853F,0x878A,
- 0x45D8,0x878B,0x87A1,0x878E,0x45DC,0x45DE,0x8799,0x885E,0x885F,0x8924,
- 0x89A7,0x8AEA,0x8AFD,0x8AF9,0x8AE3,0x8AE5,0x46FA,0x46FB,0x8AEC,0x473D,
- 0x473B,0x473F,0x475F,0x8CF2,0x477F,0x8CEF,0x4784,0x8DA6,0x47BC,0x4814,
- 0x480F,0x8E3B,0x8E43,0x480E,0x8E32,
- /* plane 3, row 51 */
- 1 | (94 << 8), /* first, last */
- 0x8F31,0x8F30,0x4860,0x8F2D,0x8F3C,0x8FA7,0x8FA5,0x48AB,0x48AC,
- 0x48AA,0x9137,0x9195,0x918E,0x4904,0x9196,0x4908,0x9345,0x930A,0x4933,
- 0x4934,0x92FD,0x9317,0x931C,0x9307,0x9331,0x9332,0x932C,0x9330,0x9303,
- 0x9305,0x49A2,0x95C2,0x49A4,0x95B8,0x49A5,0x95C1,0x49A7,0x49A6,0x49E7,
- 0x96AB,0x96B7,0x49FF,0x49FE,0x9715,0x9714,0x4A1D,0x4A1C,0x970C,0x9717,
- 0x4A67,0x9793,0x4A94,0x97D2,0x4AC5,0x4AC8,0x9836,0x9831,0x9833,0x983C,
- 0x982E,0x983A,0x4AC9,0x983D,0x4AC7,0x98B5,0x9922,0x9923,0x9920,0x991C,
- 0x991D,0x4B6C,0x99A0,0x4B8A,0x99EF,0x99E8,0x99EB,0x4B88,0x4B87,0x4B86,
- 0x99E1,0x99E6,0x4BCF,0x4BD0,0x9AF8,0x9AF5,0x4C1C,0x4C23,0x9B83,0x9B94,
- 0x9B84,0x4C49,0x9B8B,0x9B8F,0x4C43,
- /* plane 3, row 52 */
- 1 | (94 << 8), /* first, last */
- 0x9B8C,0x4C48,0x9B89,0x4C47,0x9B8E,0x4C46,0x4C3F,0x4C44,0x9D24,
- 0x9D0F,0x4CBE,0x9D13,0x9D0A,0x4CC2,0x4CBA,0x4CBC,0x4CC6,0x9D2A,0x9D1A,
- 0x4CC8,0x9D27,0x9D16,0x9D21,0x4D23,0x9E85,0x9EAC,0x9EC6,0x9EC5,0x9ED7,
- 0x9F53,0x349D,0x5128,0x5127,0x51DF,0x3524,0x5335,0x53B3,0x3607,0x568A,
- 0x567D,0x5689,0x3679,0x58CD,0x58D0,0x3678,0x5B2B,0x5B33,0x5B29,0x5B35,
- 0x5B31,0x5B37,0x5C36,0x5DBE,0x3819,0x5DB9,0x381C,0x5DBB,0x3818,0x61E2,
- 0x61DB,0x61DD,0x61DC,0x61DA,0xD87E,0x61D9,0x39BD,0x3A5D,0x64DF,0x3A5A,
- 0x3A5E,0x64E1,0x3A5C,0x64EE,0x3A5B,0x65B5,0x66D4,0x66D5,0x3B21,0x66D0,
- 0x66D1,0x66CE,0x66D7,0x3B20,0x3B32,0x6A7D,0x6A8A,0x3BF2,0x6AA7,0x3BF5,
- 0x6A99,0x6A82,0x6A88,0x3BEE,0x3BEC,
- 64, /* first low-surrogate */
- 0xDCAF,
- /* plane 3, row 53 */
- 1 | (94 << 8), /* first, last */
- 0x6A86,0x3BEA,0x6A98,0x6A9D,0x3BED,0x3BF3,0x6A8F,0x3BF6,0x6AAA,
- 0x3C48,0x6B5D,0x3C49,0x6C0A,0x3D75,0x6FD7,0x6FD6,0x6FE5,0x3D6F,0x3D7B,
- 0x3D73,0x6FD9,0x6FDA,0x6FEA,0x3D70,0x6FF6,0xD850,0x3D78,0x71E3,0x3DFE,
- 0x71E9,0x3E00,0x71EB,0x71EF,0x71F3,0x71EA,0x3E01,0xD87E,0x3E55,0x3E56,
- 0x3E9D,0x7371,0x3EF9,0x74AE,0x3EFF,0x74B3,0x3EFD,0x74AC,0x3F43,0x3F41,
- 0x7583,0x7645,0x764E,0x7644,0x76A3,0x76A5,0x77A6,0x77A4,0x406F,0x77A9,
- 0x77AF,0x408A,0x40E5,0x40E6,0x78F0,0x78F8,0x78F1,0x417F,0x7A49,0x41B5,
- 0x41B6,0x41BB,0x7AC2,0x7AF2,0x7AF3,0x7BFA,0x4240,0x7BF6,0x7BFC,0x7C18,
- 0x7C08,0x7C12,0x429D,0x429C,0x7CDB,0x7CDA,0x430F,0x4311,0x430D,0x7E2C,
- 0x7E4D,0x4314,0x4313,0x7F46,0x7FF6,
- 26, /* first low-surrogate */
- 0xDC39, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xDD21,
- /* plane 3, row 54 */
- 1 | (94 << 8), /* first, last */
- 0x802B,0x8074,0x81B8,0x81C8,0x4482,0x4483,0x454D,0x8592,0x8593,
- 0x454F,0x857F,0x85AB,0x8597,0x454C,0x4551,0x85AC,0x45EE,0x45E8,0x4CCB,
- 0x87CE,0x45EB,0x87CD,0x45E2,0x45E6,0x87C1,0x87B1,0x87C7,0x45EC,0x8940,
- 0x4659,0x893F,0x8939,0x465D,0x8943,0x4657,0x465B,0x4656,0x89AB,0x46FE,
- 0x8B1F,0x8B09,0x8B0C,0x4700,0x4701,0x8C40,0x4742,0x8C96,0x4760,0x8CF6,
- 0x8CF7,0x481D,0x8E46,0x8E4F,0x483E,0x4869,0x4865,0x8F3D,0x8F41,0x9366,
- 0x9378,0x935D,0x9369,0x9374,0x937D,0x936E,0x9372,0x9373,0x9362,0x9348,
- 0x9353,0x935F,0x9368,0x4938,0x937F,0x936B,0x49AE,0x95C4,0x49AD,0x96AF,
- 0x96AD,0x96B2,0x4A02,0x4A1F,0x971A,0x971B,0x4A22,0x4A20,0xD87E,0x4A6C,
- 0x979B,0x979F,0x4A68,0x4A6D,0x4A6E,
- 88, /* first low-surrogate */
- 0xDDF5,
- /* plane 3, row 55 */
- 1 | (94 << 8), /* first, last */
- 0x4AA0,0x4ACE,0x4AD0,0x4AD1,0x4ACB,0x9840,0x4AD2,0x9847,0x4AD3,
- 0x98B7,0x4B20,0x4B4E,0x4B4B,0x4B72,0x4B70,0x99A2,0x4B92,0x4B8F,0x9A00,
- 0x99F3,0x4B90,0xD866,0x99F5,0x4BD9,0x4BD5,0x9ABD,0x9B00,0x9B02,0x4BFA,
- 0x9B34,0x9B49,0x9B9F,0x4C4B,0x9BA3,0x9BCD,0x9B99,0x9B9D,0x4CD0,0x4CCE,
- 0x9D39,0x4CCF,0x9D44,0x4CC4,0x4CCC,0x9D35,0x4CD2,0x4D35,0x9EAF,0x3E03,
- 0x512F,0x349E,0x34AF,0x9F8E,0x360C,0x569F,0x569B,0x569E,0x5696,0x5694,
- 0x56A0,0x367C,0x5B3B,0x3730,0x3731,0x5B3A,0x5DC1,0x5F4D,0x5F5D,0x61F3,
- 0x39A1,0x399E,0x3A68,0x3A61,0x64F6,0x64E5,0x64EA,0x64E7,0x6505,0x3A65,
- 0x64F9,0x3A66,0x3A6A,0x3AAB,0x6AAB,0x6AED,0x6AB2,0x6AB0,0x6AB5,0x6ABE,
- 0x6AC1,0x6AC8,0x3BF9,0x6AC0,0x6ABC,
- 22, /* first low-surrogate */
- 0xDD37,
- /* plane 3, row 56 */
- 1 | (94 << 8), /* first, last */
- 0x6AB1,0x6AC4,0x6ABF,0x3C58,0x3C8A,0x7008,0x7003,0x6FFD,0x7010,
- 0x7002,0x7013,0x3E04,0x71FA,0x7200,0x74B9,0x74BC,0x3F02,0x765B,0x7651,
- 0x764F,0x76EB,0x77B8,0x4079,0x77B9,0x77C1,0x77C0,0x77BE,0x790B,0x40EB,
- 0x7907,0x790A,0x7908,0x40E9,0x790D,0x7906,0x7915,0x79AF,0x4120,0x4121,
- 0x4181,0x7AF5,0x424D,0x4259,0x7C2E,0x4258,0x7C1B,0xD857,0x7C1A,0x7C24,
- 0x42A5,0x42A9,0x7CE6,0x7CE3,0x431A,0x4319,0x7E5D,0x7E4F,0x7E66,0x7E5B,
- 0x7F47,0x7FB4,0x4396,0x4398,0x4397,0x7FFA,0x802E,0xD859,0x43C8,0x81CE,
- 0x4443,0x4445,0x8219,0x4552,0x4557,0x85CC,0x85B2,0x4555,0x85BB,0x85C1,
- 0x4556,0x4558,0x45F2,0x87E9,0x87EE,0x87F0,0x87D6,0x880E,0x87DA,0x8948,
- 0x894A,0x894E,0x894D,0x89B1,0x89B0,
- 47, /* first low-surrogate */
- 0xDCD1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xDDDF,
- /* plane 3, row 57 */
- 1 | (94 << 8), /* first, last */
- 0x89B3,0x4707,0x8B38,0x8B32,0x4708,0x8B2D,0x470A,0x8B34,0x431B,
- 0x8B29,0x8C74,0x4761,0x4762,0x8D03,0x47C2,0x47C6,0x8DA9,0x8E58,0x481E,
- 0x4825,0x8EBF,0x8EC1,0x8F4A,0x8FAC,0x48B0,0x9089,0x913D,0x913C,0x91A9,
- 0x93A0,0x493D,0x9390,0x493E,0x9393,0x938B,0x93AD,0x93BB,0x93B8,0x4946,
- 0x4945,0x939C,0x95D8,0x95D7,0x4A03,0x4A26,0x4A27,0x975D,0x97A9,0x97DA,
- 0x4A98,0x4AAD,0x4AD5,0x4ADA,0x9854,0x4AD9,0x9855,0x984B,0x4ADD,0x983F,
- 0x98B9,0x4B15,0x4B16,0x4B17,0x4B21,0x9938,0x9936,0x9940,0x4B4C,0x993B,
- 0x9939,0x99A4,0x4B96,0x4B98,0x9A08,0x9A0C,0x4B9B,0x9A10,0x4BFF,0x9B07,
- 0x4C25,0x9BD2,0x4C4F,0x9BC2,0x9BBB,0x9BCC,0x9BCB,0x4C56,0x4C54,0x9D4D,
- 0x9D63,0x9D4E,0x4CD8,0x9D50,0x9D55,
- /* plane 3, row 58 */
- 1 | (94 << 8), /* first, last */
- 0x4CD7,0x9D5E,0x4D26,0x9E90,0x9EB2,0x9EB1,0x4D38,0x9ECA,0x9F02,
- 0x9F27,0x9F26,0x4D8A,0x56AF,0x58E0,0x58DC,0x3734,0x5B39,0x3735,0xD87E,
- 0x5B7C,0x5BF3,0xD87E,0x37A1,0x5C6B,0x5DC4,0x650B,0x6508,0x650A,0x3A6C,
- 0x3A6D,0x65DC,0x3B29,0x3B2A,0x66E1,0x66DF,0x6ACE,0x6AD4,0x6AE3,0x6AD7,
- 0x6AE2,0x3C00,0x3C08,0x3C06,0x3C05,0x6AD8,0x6AD5,0x6AD2,0x3CB1,0x3D88,
- 0x701E,0x702C,0x7025,0x6FF3,0x7204,0x7208,0x7215,0x3E09,0x74C4,0x74C9,
- 0x74C7,0x74C8,0x76A9,0x77C6,0x77C5,0x7918,0x791A,0x7920,0x4122,0x7A66,
- 0x7A64,0x7A6A,0x41D5,0x4261,0x425D,0x4262,0x424F,0x4260,0x7C35,0x7C34,
- 0x42AA,0x4322,0x7E6C,0x4321,0x7E6E,0x7E71,0x4446,0x81D4,0x81D6,0x821A,
- 0x8262,0x8265,0x8276,0x85DB,0x85D6,
- 19, /* first low-surrogate */
- 0xDC6A,
- 0, 0,0xDC70,
- /* plane 3, row 59 */
- 1 | (94 << 8), /* first, last */
- 0x4562,0x85E7,0x4560,0x4564,0x85F4,0xD87E,0x87FD,0x87D5,0x8807,
- 0x45F6,0x880F,0x87F8,0xD87E,0x4619,0x8987,0x4691,0x89B5,0x89F5,0x470D,
- 0x8B3F,0x8B43,0x8B4C,0x4765,0x8D0B,0x8E6B,0x8E68,0x8E70,0x8E75,0x8E77,
- 0x483F,0x8EC3,0x494B,0x93E9,0x93EA,0x93CB,0x93C5,0x93C6,0x4948,0x93ED,
- 0x93D3,0x4952,0x93E5,0x494A,0x4951,0x93DB,0x93EB,0x93E0,0x93C1,0x4950,
- 0x494C,0x95DD,0x49EE,0x4A04,0x4A06,0x4A2D,0x4A2E,0x4A2F,0x4A7B,0x4A78,
- 0x4A77,0x97B2,0x97B4,0x97B1,0x97B5,0x97F2,0x4AA2,0x4AA1,0x4AE3,0x9856,
- 0x4B1A,0x4B19,0x4B57,0x9944,0x4B9E,0x9A26,0x9A1F,0x9A18,0x9A21,0x9A17,
- 0x4BDD,0x9B09,0x4C05,0x4C28,0x9BC5,0x9BDF,0x4C60,0x9BE3,0x4C66,0x9BE9,
- 0x9BEE,0x4C67,0x4C68,0x9D66,0x9D7A,
- 6, /* first low-surrogate */
- 0xDDB6, 0, 0, 0,
- 0, 0, 0,0xDDC1,
- /* plane 3, row 60 */
- 1 | (94 << 8), /* first, last */
- 0x4CDE,0x9D6E,0x9D91,0x9D83,0x9D76,0x9D7E,0x9D6D,0x4CE1,0x9E95,
- 0x9EE3,0x4D69,0x4D77,0x9F03,0x9F04,0xD87E,0x9F17,0x34A6,0x5136,0x34A5,
- 0x5336,0x3614,0x5B42,0x3736,0x3738,0x5B44,0x5B46,0x5B7E,0x5DCA,0x5DC8,
- 0x5DCC,0x5EF0,0x3A70,0x6585,0x66E5,0x66E7,0x3B2B,0x3C11,0x3C0A,0x6AF4,
- 0x3C0D,0x6AE9,0x3C16,0x3C10,0x3C09,0x3C0E,0x3C7A,0x703D,0x3D8C,0x7036,
- 0x3D91,0x7216,0x3E0A,0x7212,0x720F,0x7217,0x7211,0x720B,0x3E08,0x3E0B,
- 0x74CD,0x74D0,0x74CC,0x74CE,0x74D1,0x3F07,0x7589,0x40F2,0x7A6F,0x7C4B,
- 0x7C44,0x7C55,0x42AE,0x4324,0x4326,0x4327,0x7E7F,0x8B71,0x4399,0x802F,
- 0x807A,0x807B,0x807C,0x455F,0x456A,0x4571,0x85FC,0x8610,0x8602,0x456C,
- 0x456F,0x85EE,0x8603,0x4568,0x860D,
- 15, /* first low-surrogate */
- 0xDE19,
- /* plane 3, row 61 */
- 1 | (94 << 8), /* first, last */
- 0x8613,0x8608,0x860F,0x8818,0x8812,0x4601,0x4668,0x8967,0x8965,
- 0x89BB,0x8B69,0x8B62,0x4713,0x8B6E,0x4716,0x8B61,0x4718,0x8B64,0x8B4D,
- 0x8C51,0x4789,0x47C8,0x8E83,0x8EC6,0x4884,0x941F,0x4954,0x9404,0x9417,
- 0x9408,0x9405,0x4956,0x93F3,0x941E,0x9402,0x941A,0x941B,0x9427,0x941C,
- 0x495A,0x96B5,0x4A05,0x4A07,0x9733,0x4A31,0x9734,0x9731,0x97B8,0x97BA,
- 0x4AA3,0x97FC,0x4AEB,0x4B1C,0x98C3,0x4B5A,0x994D,0x4B5B,0x9A2F,0x4BA6,
- 0x4BAA,0x4BA5,0x9AC9,0x4BE1,0x9AC8,0x9AC4,0x9B2A,0x9B38,0x9B50,0x4C2A,
- 0x9C0A,0x9BFB,0x9C04,0x9BFC,0x9BFE,0x4C72,0x4C6F,0x4C73,0x9C02,0x9BF6,
- 0x9C1B,0x9BF9,0x9C15,0x9C10,0x9BFF,0x9C00,0x9C0C,0x4C6B,0x4CE6,0x9D95,
- 0x9DA5,0x4CE9,0x4CEC,0x4CE8,0x4CF0,
- /* plane 3, row 62 */
- 1 | (94 << 8), /* first, last */
- 0x9E98,0x9EC1,0x4D8C,0x9F5A,0x5164,0x56BB,0x3615,0x58E6,0x5B49,
- 0x5BF7,0x3771,0x3826,0x5DD0,0x38C6,0x5FC2,0x39A8,0x6511,0x3A73,0x6AFF,
- 0x6AFE,0x6AFD,0x3C15,0x6B01,0x3D98,0x3D97,0x704B,0x704D,0x7047,0x74D3,
- 0x7668,0x7667,0x3FD7,0x4080,0x77D1,0x7930,0x7932,0x792E,0x4188,0x9F9D,
- 0x7AC9,0x7AC8,0x4269,0x7C56,0x7C51,0x426B,0x4329,0x4328,0x7E85,0x7E89,
- 0x7E8E,0x7E84,0x445F,0x826A,0x862B,0x862F,0x8628,0x4574,0x8616,0x8615,
- 0x861D,0x881A,0x4602,0x466A,0x4694,0x89BC,0x8B75,0x8B7C,0x478A,0x8D11,
- 0x8D12,0x8F5C,0x91BB,0x4964,0x93F4,0x495E,0x4961,0x942D,0x4965,0x4966,
- 0x96E4,0x9737,0x9736,0x9767,0x97BE,0x97BD,0x97E2,0x9868,0x9866,0x98C8,
- 0x98CA,0x98C7,0x98DC,0x4B5F,0x994F,
- /* plane 3, row 63 */
- 1 | (94 << 8), /* first, last */
- 0x99A9,0x9A3C,0x4BAF,0x9A3B,0x9ACE,0x4C0D,0x9B14,0x9B53,0x4C7C,
- 0x9C2E,0x4C7A,0x9C1F,0x4C76,0x4C79,0x4C7D,0x4C77,0x9DB0,0x9DBD,0x4CF6,
- 0x4CF1,0x9DAE,0x9DC4,0x9E7B,0x400B,0x4D29,0x9E9E,0x4D6F,0x9F05,0x4D9A,
- 0x9F69,0x9FA1,0x56C7,0x571D,0x5B4A,0x5DD3,0x3869,0x5F72,0x6202,0x39AB,
- 0x6235,0x6527,0x651E,0x651F,0x3B2C,0x3B2D,0x6B07,0x6B06,0x3C17,0x3D9A,
- 0x7054,0x721C,0x7220,0x7AF8,0x426E,0x7C5D,0x7C58,0x432C,0x7E92,0x7F4E,
- 0x43CA,0x4578,0x4606,0x8827,0x4607,0x8B81,0x8B83,0x4720,0x8C44,0x4753,
- 0x47CE,0x487A,0x4879,0x9442,0x944D,0x9454,0x944E,0x496B,0x9443,0x4967,
- 0x496D,0x973C,0x9740,0x97C0,0x4A85,0x4AB0,0x4AF3,0x4B63,0x995A,0x9A51,
- 0x4BB6,0x9ADD,0x4C82,0x4C7F,0x9C38,
- /* plane 3, row 64 */
- 1 | (94 << 8), /* first, last */
- 0x4C86,0x9C45,0x9C3A,0x4C84,0x9C35,0x4CFC,0x4CFD,0x4CFA,0x9EF1,
- 0x4D87,0x9F93,0x529A,0x361A,0x3619,0x8641,0x5DD7,0x3A75,0x6528,0x3C1A,
- 0x3C1B,0x3C19,0x7053,0x7059,0x3D9C,0x7221,0x3E10,0x766F,0x7937,0x79B5,
- 0x7C62,0x7C5E,0x7CF5,0x457B,0x457C,0x863D,0x4608,0x882D,0x8989,0x8B8D,
- 0x8B87,0x8B90,0x8D1A,0x8E99,0x4841,0x48E3,0x4972,0x945F,0x4973,0x4968,
- 0x9456,0x9461,0x945B,0x945A,0x945C,0x9465,0x4A35,0x9741,0x4A88,0x4A9D,
- 0x986E,0x986C,0x986D,0x4275,0x99AA,0x9A5C,0x9A58,0x9ADE,0x4C8F,0x9C4F,
- 0x9C51,0x4C8E,0x9C53,0x4D05,0x4D04,0x4CFF,0x9DFC,0x9F39,0x4D9E,0x513E,
- 0x3554,0x56D2,0x3681,0x5B4F,0x6B14,0x40FA,0x7A72,0x7A73,0x4332,0x4670,
- 0x466E,0x8B91,0xD87E,0x487C,0x91BF,
- 92, /* first low-surrogate */
- 0xDDD6,
- /* plane 3, row 65 */
- 1 | (94 << 8), /* first, last */
- 0x4975,0x946C,0x4974,0x4977,0x96E6,0x9745,0x4A37,0x97C8,0x97E4,
- 0x995D,0x4BBA,0x9B21,0x4C11,0x9B2C,0x9B57,0x4C92,0x4C99,0x9C5D,0x9C61,
- 0x9C65,0x9E08,0x4D0A,0x4D2A,0x4D2B,0x4D44,0x4D79,0x9F45,0x34AA,0x3748,
- 0x6205,0x66EF,0x6B1B,0x6B1D,0x7225,0x7224,0x7C6D,0x42B4,0x8642,0x8649,
- 0x460D,0x8978,0x898A,0x8B97,0x4754,0x8C9B,0x8D1C,0x4830,0x8EA2,0x4A09,
- 0x4A38,0x4A36,0x4A8B,0x4AF7,0x4B66,0x4BBD,0x4C1E,0x9C6C,0x4C96,0x9C6F,
- 0x4D0D,0x9E0E,0x4D73,0x9F08,0x9F1D,0x9FA3,0x373B,0x373C,0x5F60,0x6B1C,
- 0x3DA0,0x40FB,0xffff,0x7CF3,0x4581,0x8B9B,0x8EA7,0x91C4,0x4978,0x947A,
- 0x4A8D,0x4B73,0x9A61,0x9A63,0x9AD7,0x9C76,0x4DA6,0x9FA5,0x39AD,0x7067,
- 0x3E11,0x72AB,0x864A,0x897D,0x8B9D,
- /* plane 3, row 66 */
- 1 | (89 << 8), /* first, last */
- 0x8C53,0x8F65,0x947B,0x4A39,0x98CD,0x98DD,0x4BBF,0x9B30,0x9E16,
- 0x4D0F,0x4DA7,0x4DB5,0x3FDC,0x4831,0x96E7,0x9E18,0x9EA2,0x4DA8,0x9F7C,
- 0x4125,0x7E9E,0x9484,0x4BC1,0x9E1C,0x4190,0x7C71,0x97CA,0x4696,0x487F,
- 0x4D10,0x9EA3,0x4A0A,0x9C7B,0x9F97,0x4D12,0x4A3A,0x9750,0x4A3B,0xffff,
- 0xffff,0x5727,0x5C13,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x5FC8,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0x6765,0xffff,0xffff,0x52BD,0xffff,
- 0x5B66,0xffff,0x65F9,0x6788,0x6CE6,0x6CCB,0xffff,0x4FBD,0x5F8D,0xffff,
- 0x6018,0x6048,0xffff,0x6B29,0x70A6,0xffff,0x7706,0xffff,0xffff,0xffff,
- 0x5A10,0x5CFC,0x5CFE,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x70C9,
- /* plane 3, row 67 */
- 3 | (91 << 8), /* first, last */
- 0x9579,0xffff,0x96BA,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0x7B29,0x8128,0xffff,0x8A2E,0xffff,0xffff,0xffff,
- 0x9AD9,0xffff,0x582B,0x5845,0xffff,0x63FA,0xffff,0xffff,0xffff,0x6E86,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0x5867,0xffff,0x5BDD,0x656E,0xffff,
- 0xffff,0xffff,0x8C87,0xffff,0x50D2,0x50DF,0xffff,0xffff,0xffff,0xffff,
- 0x69BA,0xffff,0x6B9D,0xffff,0x8059,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x6F8A,0xffff,0xffff,
- 0x7BC3,0x7BC2,0xffff,0xffff,0xffff,0xffff,0x90F6,0xffff,0x9823,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0x71CD,0x7499,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0x9842,
- /* plane 3, row 68 */
- 2 | (94 << 8), /* first, last */
- 0x7F84,0xffff,0xffff,0xffff,0xffff,0xffff,0x8D0E,0xffff,
- 0x9861,0xffff,0xffff,0x8B73,0xffff,0x9C27,0xffff,0x9458,0x77D6,0x9B2D,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0x4F66,0x4F68,0x4FE7,0x503F,0xffff,0x50A6,0x510F,0x523E,0x5324,0x5365,
- 0x539B,0x517F,0x54CB,0x5573,0x5571,0x556B,0x55F4,0x5622,0x5620,0x5692,
- 0x56BA,0x5691,0x56B0,0x5759,0x578A,0x580F,0x5812,0x5813,0x5847,0x589B,
- 0x5900,0x594D,0x5AD1,0x5AD3,0x5B67,0x5C57,0x5C77,0x5CD5,0x5D75,0x5D8E,
- 0x5DA5,0x5DB6,0x5DBF,0x5E65,0x5ECD,0x5EED,0x5F94,0x5F9A,0x5FBA,0x6125,
- 0x6150,0x62A3,0x6360,0x6364,0x63B6,
- /* plane 3, row 69 */
- 1 | (94 << 8), /* first, last */
- 0x6403,0x64B6,0x651A,0x7A25,0x5C21,0x66E2,0x6702,0x67A4,0x67AC,
- 0x6810,0x6806,0x685E,0x685A,0x692C,0x6929,0x6A2D,0x6A77,0x6A7A,0x6ACA,
- 0x6AE6,0x6AF5,0x6B0D,0x6B0E,0x6BDC,0x6BDD,0x6BF6,0x6C1E,0x6C63,0x6DA5,
- 0x6E0F,0x6E8A,0x6E84,0x6E8B,0x6E7C,0x6F4C,0x6F48,0x6F49,0x6F9D,0x6F99,
- 0x6FF8,0x702E,0x702D,0x705C,0x79CC,0x70BF,0x70EA,0x70E5,0x7111,0x7112,
- 0x713F,0x7139,0x713B,0x713D,0x7177,0x7175,0x7176,0x7171,0x7196,0x7193,
- 0x71B4,0x71DD,0x71DE,0x720E,0x5911,0x7218,0x7347,0x7348,0x73EF,0x7412,
- 0x743B,0x74A4,0x748D,0x74B4,0x7673,0x7677,0x76BC,0x7819,0x781B,0x783D,
- 0x7853,0x7854,0x7858,0x78B7,0x78D8,0x78EE,0x7922,0x794D,0x7986,0x7999,
- 0x79A3,0x79BC,0x7AA7,0x7B37,0x7B59,
- /* plane 3, row 70 */
- 1 | (92 << 8), /* first, last */
- 0x7BD0,0x7C2F,0x7C32,0x7C42,0x7C4E,0x7C68,0x7CA9,0x7CED,0x7DD0,
- 0x7E07,0x7DD3,0x7E64,0x7F40,0xffff,0x8041,0x8063,0x80BB,0x6711,0x6725,
- 0x8248,0x8310,0x8362,0x8312,0x8421,0x841E,0x84E2,0x84DE,0x84E1,0x8573,
- 0x85D4,0x85F5,0x8637,0x8645,0x8672,0x874A,0x87A9,0x87A5,0x87F5,0x8834,
- 0x8850,0x8887,0x8954,0x8984,0x8B03,0x8C52,0x8CD8,0x8D0C,0x8D18,0x8DB0,
- 0x8EBC,0x8ED5,0x8FAA,0x909C,0xffff,0x915C,0x922B,0x9221,0x9273,0x92F4,
- 0x92F5,0x933F,0x9342,0x9386,0x93BE,0x93BC,0x93BD,0x93F1,0x93F2,0x93EF,
- 0x9422,0x9423,0x9424,0x9467,0x9466,0x9597,0x95CE,0x95E7,0x973B,0x974D,
- 0x98E4,0x9942,0x9B1D,0x9B98,0xffff,0x9D49,0x6449,0x5E71,0x5E85,0x61D3,
- 0x990E,0x8002,0x781E,
- /* plane 3, row 71 */
- 1 | (10 << 8), /* first, last */
- 0x5528,0x5572,0x55BA,0x55F0,0x55EE,0x56B8,0x56B9,0x56C4,0x8053,
- 0x92B0,
- /* plane 3, row 72: --- */
- /* plane 3, row 73: --- */
- /* plane 3, row 74: --- */
- /* plane 3, row 75: --- */
- /* plane 3, row 76: --- */
- /* plane 3, row 77: --- */
- /* plane 3, row 78: --- */
- /* plane 3, row 79: --- */
- /* plane 3, row 80: --- */
- /* plane 3, row 81: --- */
- /* plane 3, row 82: --- */
- /* plane 3, row 83: --- */
- /* plane 3, row 84: --- */
- /* plane 3, row 85: --- */
- /* plane 3, row 86: --- */
- /* plane 3, row 87: --- */
- /* plane 3, row 88: --- */
- /* plane 3, row 89: --- */
- /* plane 3, row 90: --- */
- /* plane 3, row 91: --- */
- /* plane 3, row 92: --- */
- /* plane 3, row 93: --- */
- /* plane 3, row 94: --- */
- /* plane 4, row 1 */
- 1 | (94 << 8), /* first, last */
- 0xD840,0x4E40,0x4E41,0x4E5A,0xD847,0x4E02,0x4E29,0xD840,0xD841,
- 0x5202,0x353E,0x5DDC,0xD841,0xD841,0xD87E,0x5342,0x536A,0x5B52,0xD846,
- 0xD87E,0xD87E,0x5FC4,0x624C,0x72AD,0x4E12,0x4E2F,0x4E96,0x4ED0,0x5142,
- 0x5183,0xD87E,0xD841,0xD841,0xD842,0xD842,0x5383,0x53B8,0xD842,0xD842,
- 0xD844,0x5928,0xD846,0x5C23,0x5E01,0x5F00,0xD84C,0x3CB8,0x706C,0x722B,
- 0x5188,0x8279,0x8FB6,0x4E17,0xD840,0x340C,0xD840,0x3430,0x4EE2,0x4EDB,
- 0xD841,0xD841,0x51AD,0xD841,0x51F7,0x34DA,0xD841,0xD842,0x3513,0x531B,
- 0x5388,0x5387,0xD842,0x53CF,0x53FD,0x3563,0x53E7,0x56DC,0xD844,0x56D9,
- 0x5725,0x5727,0x5933,0x5C13,0xD847,0xD847,0x5C75,0xD848,0xD848,0xD849,
- 0x39C4,0x39C3,0x66F1,0xD84C,0xD855,
- 1, /* first low-surrogate */
- 0xDC86, 0, 0, 0,0xDFE8, 0, 0,0xDD0E,0xDE27,
- 0, 0, 0,0xDD3C,0xDE75,0xDC28, 0, 0, 0,0xDD3C,
- 0xDC75,0xDC78, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xDC19,0xDEA5,0xDEAA,0xDD0F,0xDE0E, 0, 0,0xDF9C,0xDF9B,
- 0xDE3C, 0,0xDFC2, 0, 0, 0,0xDFB4, 0, 0, 0,
- 0, 0, 0, 0,0xDC65, 0,0xDDB2, 0, 0, 0,
- 0xDC77,0xDD42, 0,0xDE33, 0, 0,0xDEAF,0xDC36, 0, 0,
- 0, 0,0xDF22, 0, 0, 0, 0, 0,0xDDA3, 0,
- 0, 0, 0, 0,0xDC25,0xDC24, 0,0xDC52,0xDD89,0xDCBF,
- 0, 0, 0,0xDFB5,0xDF4C,
- /* plane 4, row 2 */
- 1 | (94 << 8), /* first, last */
- 0x7F52,0xD863,0xD863,0x3401,0xD840,0xD840,0x4E51,0x4E6A,0xD840,
- 0x4F0C,0xD840,0xD840,0x4EFE,0x4F1B,0xD840,0xD840,0x343A,0xD841,0x34AB,
- 0x5173,0xD841,0x518E,0xD841,0xD841,0xD841,0xD841,0xD841,0x34DD,0xD841,
- 0xD841,0x52A5,0x3515,0x52A7,0x52A4,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0x53BD,0xD842,0xD842,0xD842,0x5402,0xD842,0xD842,0xD842,0xD842,0x572B,
- 0x591B,0x5935,0xD845,0x36A7,0x36A5,0xD845,0xD845,0x36A6,0xD846,0xffff,
- 0x5C17,0x377C,0xD847,0x5C70,0x5C7D,0x37A9,0xD847,0x5DE9,0xD848,0x3834,
- 0x3835,0xD848,0xD848,0xD848,0x38A8,0x5F19,0x5F1C,0x5F75,0xD849,0xD849,
- 0x38FF,0x5FC8,0xD84A,0x39C7,0x39C6,0x39C8,0xD84A,0xD84B,0x3AD0,0x3AD1,
- 0xD84C,0xD84C,0x3C59,0xD84E,0xD84E,
- 2, /* first low-surrogate */
- 0xDE14,0xDE12, 0,0xDCA3,0xDCA2, 0, 0,0xDDB6,
- 0,0xDDB5,0xDDB4, 0, 0,0xDDC2,0xDDB8, 0,0xDC79, 0,
- 0,0xDD08, 0,0xDD7A,0xDDB6,0xDEBD,0xDEB7,0xDEBC, 0,0xDEC4,
- 0xDEC9, 0, 0, 0, 0,0xDD30,0xDD83,0xDD85,0xDE12,0xDE34,
- 0,0xDEE4,0xDEDE,0xDF2A, 0,0xDFAF,0xDFB4,0xDFB3,0xDFB1, 0,
- 0, 0,0xDDDE, 0, 0,0xDEB8,0xDEB0, 0,0xDDC2, 0,
- 0, 0,0xDC2A, 0, 0, 0,0xDFE9, 0,0xDC57, 0,
- 0,0xDDB6,0xDDD7,0xDDDE, 0, 0, 0, 0,0xDCC2,0xDDAB,
- 0, 0,0xDD8F, 0, 0, 0,0xDE6D,0xDEB5, 0, 0,
- 0xDFC0,0xDFBF, 0,0xDDB9,0xDF1C,
- /* plane 4, row 3 */
- 1 | (94 << 8), /* first, last */
- 0x6C12,0x3CBD,0xD84F,0xD850,0xD850,0x3E28,0x72B3,0xD851,0x3EA9,
- 0x7390,0x7536,0xD858,0x43CC,0xD85A,0x8281,0x8FB8,0xD861,0x48B4,0xD861,
- 0xD863,0x4E23,0x3416,0x342C,0xD840,0x4F2E,0xD840,0x514F,0xD841,0x51BA,
- 0x34DF,0x34E0,0x5222,0xD841,0xD841,0xD841,0x3517,0xD842,0x52AF,0x52B0,
- 0x52B1,0xD842,0xD842,0x352F,0xD842,0x5364,0xD842,0x53D3,0xD842,0x356A,
- 0xD842,0x3570,0x356D,0xD842,0xD842,0xD842,0xD842,0x356E,0xD842,0xD87E,
- 0xD87E,0xD842,0x362B,0x3628,0xD844,0xffff,0x593F,0xD845,0xD845,0x3692,
- 0xD845,0x598B,0xD845,0x5991,0x5995,0xD845,0xD846,0x373F,0xD846,0x5B8A,
- 0x374F,0x3774,0xD846,0xD846,0x377D,0xD847,0x37B7,0x37A3,0x37B0,0x37B1,
- 0x5C87,0x37AB,0xD847,0xD847,0xD847,
- 3, /* first low-surrogate */
- 0xDC80,0xDD84,0xDD85, 0, 0,0xDF24, 0,
- 0, 0,0xDF4C, 0,0xDEF6, 0, 0,0xDE70, 0,0xDE75,
- 0xDE17, 0, 0, 0,0xDDF1, 0,0xDDDA, 0,0xDDB9, 0,
- 0, 0, 0,0xDECE,0xDED2,0xDED0, 0,0xDC43, 0, 0,
- 0,0xDC4D,0xDD34, 0,0xDDD9, 0,0xDE18, 0,0xDF38, 0,
- 0xDFD7, 0, 0,0xDFDC,0xDFCB,0xDFD6,0xDFD8, 0,0xDFD1,0xDC3E,
- 0xDC3C,0xDFD2, 0, 0,0xDE59, 0, 0,0xDDE5,0xDDE6, 0,
- 0xDDE8, 0,0xDEBD, 0, 0,0xDEBE,0xDD49, 0,0xDDCD, 0,
- 0, 0,0xDF5E,0xDFD0, 0,0xDD06, 0, 0, 0, 0,
- 0, 0,0xDD7C,0xDD71,0xDFEF,
- /* plane 4, row 4 */
- 1 | (94 << 8), /* first, last */
- 0x383A,0x3837,0x5E0D,0x3838,0x3840,0xD848,0xD848,0x5E8E,0x389F,
- 0xD848,0xD848,0x5F7A,0xD849,0x3904,0x3909,0x3906,0x38FD,0x390A,0x3907,
- 0xD84A,0xD84A,0x39CA,0xD84A,0xD84A,0x6290,0x39C9,0xD84A,0x629A,0xD84B,
- 0x653C,0x653A,0x3A7F,0x6598,0xD84C,0x3AD2,0xD84C,0xD84C,0x6765,0xD87E,
- 0x3B43,0xD84C,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0x3CC1,0xD84F,0x3CC5,
- 0x3DA3,0xD850,0xD850,0x3E2A,0x3E5F,0xD851,0xD851,0x3E5D,0xD851,0xD851,
- 0xD852,0xD852,0x3F17,0xD853,0xD853,0x3F71,0x3F72,0xD853,0xD854,0x400F,
- 0xD854,0xD855,0x79C2,0x4191,0xD858,0xD858,0xD858,0x43B2,0x43CF,0x43CE,
- 0x809E,0xD85A,0xD85A,0x81EB,0xD85A,0x8289,0x4496,0xD85A,0xD85A,0x8296,
- 0xD85A,0x8287,0xD85A,0x4497,0xD861,
- 6, /* first low-surrogate */
- 0xDD8D,0xDDB7, 0, 0,
- 0xDF33,0xDF7F, 0,0xDDF2, 0, 0, 0, 0, 0, 0,
- 0xDE2A,0xDE8B, 0,0xDE83,0xDE8A, 0, 0,0xDE8E, 0,0xDEB6,
- 0, 0, 0, 0,0xDCD8, 0,0xDD56,0xDFD2, 0,0xDCDB,
- 0,0xDFC2,0xDC87,0xDC81,0xDDC2,0xDDBC,0xDF23, 0,0xDC93, 0,
- 0,0xDD8D,0xDD8E, 0, 0,0xDF3B,0xDF4D, 0,0xDF34,0xDF31,
- 0xDCF2,0xDCF0, 0,0xDC15,0xDD28, 0, 0,0xDF25,0xDCE7, 0,
- 0xDCE9,0xDC17, 0, 0,0xDE6C,0xDE80,0xDF4B, 0, 0, 0,
- 0,0xDCDE,0xDCFB, 0,0xDD51, 0, 0,0xDF01,0xDF02, 0,
- 0xDF05, 0,0xDF03, 0,0xDC51,
- /* plane 4, row 5 */
- 1 | (94 << 8), /* first, last */
- 0x8FC0,0x488B,0x8FC3,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0x9578,0xD863,0xD863,0x9625,0xD84F,0x4E75,0x4E74,0xD840,0xD840,
- 0x342D,0xD840,0x4F99,0xD840,0x3450,0x344B,0xD840,0x344F,0x344C,0xD87E,
- 0x4F71,0x5153,0x51BF,0xD841,0xD841,0x51C0,0xD841,0x51EE,0xD841,0x34E4,
- 0x34E3,0xD841,0x34E1,0xD841,0x34E2,0xD841,0x523D,0x3519,0x52BD,0x530C,
- 0xD842,0xD853,0xD842,0xD842,0x3541,0x7F37,0xD842,0x53C0,0x355E,0xD843,
- 0xD843,0x3579,0xD843,0x546E,0x5483,0xD843,0xD843,0x545E,0x545D,0x577E,
- 0x5779,0xD844,0x577A,0x576C,0xD844,0xD844,0xD844,0x3632,0x5787,0xD845,
- 0x591D,0x3694,0x5946,0x3697,0xD845,0x5943,0xD845,0x3696,0x3698,0xD845,
- 0xD845,0x36B2,0xD845,0xD845,0xD845,
- 4, /* first low-surrogate */
- 0xDC53,0xDE7A,0xDE78,0xDE76,0xDE79,0xDE8F,
- 0xDE7C, 0,0xDE1B,0xDE1C, 0,0xDD92, 0, 0,0xDD2E,0xDD2C,
- 0,0xDE0C, 0,0xDE0B, 0, 0,0xDE05, 0, 0,0xDC05,
- 0, 0, 0,0xDDC2,0xDDC3, 0,0xDE48, 0,0xDE46, 0,
- 0,0xDEEA, 0,0xDEEB, 0,0xDEEE, 0, 0, 0, 0,
- 0xDCD8,0xDC1E,0xDDDF,0xDDDE, 0, 0,0xDE4F, 0, 0,0xDC0D,
- 0xDC08, 0,0xDC09, 0, 0,0xDC12,0xDC65, 0, 0, 0,
- 0,0xDE89, 0, 0,0xDE84,0xDE9E,0xDE8B, 0, 0,0xDD62,
- 0, 0, 0, 0,0xDDF9, 0,0xDDF7, 0, 0,0xDE06,
- 0xDEDD, 0,0xDED9,0xDEDF,0xDEE2,
- /* plane 4, row 6 */
- 1 | (94 << 8), /* first, last */
- 0x36B9,0x5B61,0x5B66,0xD840,0x5B90,0x3775,0x377F,0x377E,0x5C29,
- 0x378F,0xD847,0xD847,0xD847,0x37BD,0x5CB2,0xD847,0x37BB,0x37BC,0xD847,
- 0x5CC0,0xD848,0x383D,0x383E,0x3874,0xD848,0x387A,0x3876,0x3878,0x3875,
- 0xD848,0xD848,0x38AF,0x38B0,0x38C7,0x38CC,0xD849,0xD849,0x3916,0xD849,
- 0x3912,0x391D,0xD849,0xD849,0x3915,0x390F,0x3914,0x601F,0x5FE2,0xD849,
- 0xD84A,0xD84A,0x39B0,0x39BF,0x39C0,0xD84A,0x39D2,0x39D9,0xD84B,0x3A7A,
- 0xD84B,0xD84B,0x3A81,0x3A82,0xD84B,0x6616,0x65F9,0x3ADA,0xD859,0x6788,
- 0xD84C,0x679B,0xD87E,0x676E,0x679E,0xD84C,0x3C22,0x3C1F,0xD84E,0xD84E,
- 0x3C21,0x6B24,0xD84E,0xD84E,0xD84E,0x3C5C,0x6B7D,0xD84E,0x3C7D,0x3C8D,
- 0x3C8F,0x6CE6,0xD84F,0x6CCB,0x3CD0,
- 4, /* first low-surrogate */
- 0xDCF1, 0, 0, 0, 0, 0,
- 0,0xDC3F,0xDC3E,0xDD0B, 0, 0,0xDD83, 0, 0,0xDD86,
- 0,0xDC7C, 0, 0, 0,0xDDF7, 0, 0, 0, 0,
- 0xDDFB,0xDF3B, 0, 0, 0, 0,0xDDF9,0xDDCA, 0,0xDDFF,
- 0, 0,0xDE09,0xDE03, 0, 0, 0, 0, 0,0xDE10,
- 0xDD9A,0xDD9F, 0, 0, 0,0xDE87, 0, 0,0xDEB7, 0,
- 0xDF08,0xDEF9, 0, 0,0xDEF4, 0, 0, 0,0xDE57, 0,
- 0xDFD6, 0,0xDCDE, 0, 0,0xDFD4, 0, 0,0xDC90,0xDC8D,
- 0, 0,0xDD60,0xDDCE,0xDDCF, 0, 0,0xDDD1, 0, 0,
- 0, 0,0xDCCA,
- /* plane 4, row 7 */
- 1 | (94 << 8), /* first, last */
- 0xD84F,0x3CD8,0xD84F,0xD84F,0xD84F,0x6CB5,0x3DA7,0xD850,0x7097,
- 0xD850,0x709B,0x3E12,0xD851,0xD851,0x3E2F,0xD851,0x726B,0x3E2E,0x3E2C,
- 0x3E5C,0xD851,0x72D5,0xD851,0xD851,0x3E62,0x3E67,0x3EB4,0xD852,0xD852,
- 0xD852,0xD853,0x7543,0xD848,0xD853,0x759C,0xD853,0xD853,0x3FEA,0xD854,
- 0x3FFB,0xD854,0x4014,0xD854,0x4013,0x4012,0x4010,0x4011,0xD854,0x4086,
- 0x77E4,0x4098,0xD855,0xD855,0x412A,0xD855,0xD856,0xD856,0xD856,0x7ACE,
- 0x42B5,0xD858,0xD858,0xD859,0xD859,0x8013,0x43D6,0x43D8,0x80B7,0x43D9,
- 0x43D4,0x43D7,0xD87E,0x80B9,0xffff,0xD859,0x81E4,0x81FD,0x820F,0x4460,
- 0xD85A,0xD85A,0x449E,0x44A1,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0x82BF,0x82CA,0xD85A,0xD85A,0x82C1,
- 1, /* first low-surrogate */
- 0xDCB7, 0,0xDCB2,0xDCBB,0xDCB9, 0, 0,0xDD9E, 0,
- 0xDDB2, 0, 0,0xDD6F,0xDDAC, 0,0xDE23, 0, 0, 0,
- 0,0xDF6C, 0,0xDF32,0xDF5E, 0, 0, 0,0xDCFB,0xDF29,
- 0xDFBD,0xDC1F, 0,0xDF41,0xDC1D, 0,0xDD31,0xDD2F, 0,0xDC43,
- 0,0xDC41, 0,0xDCF5, 0, 0, 0, 0,0xDCF2, 0,
- 0, 0,0xDC1E,0xDF54, 0,0xDF56,0xDD29,0xDD27,0xDD28, 0,
- 0,0xDE79,0xDE7E,0xDCB6,0xDCB7, 0, 0, 0, 0, 0,
- 0, 0,0xDD81, 0, 0,0xDE4D, 0, 0, 0, 0,
- 0xDE09,0xDE08, 0, 0,0xDF1E,0xDF1A,0xDF23,0xDF15,0xDF19,0xDF16,
- 0, 0,0xDF14,0xDF18,
- /* plane 4, row 8 */
- 1 | (94 << 8), /* first, last */
- 0x44A0,0xD85C,0xD85D,0xD85D,0xD861,0x8FD0,0xffff,0xD861,0x48B9,
- 0xD861,0x90AE,0xD861,0xD861,0xD861,0xD861,0xD863,0x49C1,0x49C2,0x9638,
- 0xD87E,0x341C,0xD840,0x345E,0x4FBC,0x3459,0x345C,0xD840,0x345F,0x4FE9,
- 0x4FBD,0x4FE2,0x5158,0xD841,0xD841,0x34CE,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0x52C6,0xD842,0x52C8,0xD842,0xD842,0x5328,0xD842,0x5329,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0x355F,0xD843,0x3585,0xD843,0xD843,
- 0x3586,0xD843,0x57B4,0xD844,0x57A9,0x3687,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0x36CA,0xD845,0x36C3,0xD845,0xD845,0xD845,0x36C2,0x5B68,0xD846,
- 0x3741,0xD846,0xD846,0xD846,0x3780,0x3781,0xD847,0xD847,0x3793,0x3792,
- 0xD847,0x37C5,0xD847,0xffff,0xD847,
- 2, /* first low-surrogate */
- 0xDE1F,0xDDDD,0xDDDF,0xDC69, 0, 0,0xDC6C, 0,
- 0xDE93, 0,0xDE95,0xDE94,0xDE91,0xDE97,0xDE30, 0, 0, 0,
- 0xDE18, 0,0xDE31, 0, 0, 0, 0,0xDE36, 0, 0,
- 0, 0, 0,0xDDC9,0xDDCA, 0,0xDF18,0xDF12,0xDF19,0xDF10,
- 0xDF16, 0,0xDC5F, 0,0xDCDF,0xDD17, 0,0xDD3C, 0,0xDDEA,
- 0xDDE9,0xDE1C,0xDE58,0xDE64,0xDEF3, 0,0xDC97, 0,0xDC5A,0xDC59,
- 0,0xDC8E, 0,0xDEBC, 0, 0,0xDE0D,0xDDFC,0xDE0C,0xDF07,
- 0xDF0A, 0,0xDF02, 0,0xDF26,0xDF08,0xDF1D, 0, 0,0xDD4E,
- 0,0xDDED,0xDDEE,0xDDEF, 0, 0,0xDC50,0xDC4C, 0, 0,
- 0xDC4F, 0,0xDDD4, 0,0xDDB0,
- /* plane 4, row 9 */
- 1 | (94 << 8), /* first, last */
- 0x3846,0x3841,0x3845,0x3842,0x383F,0xD848,0xD848,0x3882,0x3881,
- 0x387F,0x38A5,0x5F2B,0x38B3,0x38B5,0xD848,0xD848,0x5F8D,0x38DA,0xD849,
- 0x38DB,0x390D,0x6018,0x390E,0xD849,0x391E,0x3925,0x3926,0x391C,0x3921,
- 0x6057,0x6048,0x3927,0x391A,0xD849,0xD849,0xD849,0x6038,0xD849,0xD849,
- 0x3924,0xD849,0xD87E,0x6071,0xD84A,0x39C1,0x39E1,0xD84A,0xD84A,0x6312,
- 0x39EB,0xD84A,0x39E2,0x39D7,0x39E9,0xD84A,0xD84A,0x630A,0xD84A,0x6323,
- 0xD84A,0x3A84,0xD84B,0xD84B,0xD84B,0x3AB5,0x3ABC,0x3ADC,0x3ADE,0x3ADF,
- 0xD84C,0x662A,0xD84C,0xD84C,0xD84C,0xD84D,0x3B54,0x67E0,0x67BE,0x3B53,
- 0x3C24,0x3C25,0x6B29,0x3C28,0x3C27,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0x3C8B,0xD84F,0xD84F,0x3CDC,
- 6, /* first low-surrogate */
- 0xDCA5,0xDE09, 0, 0,
- 0, 0, 0, 0, 0,0xDFF3,0xDFD7, 0, 0,0xDCDC,
- 0, 0, 0, 0,0xDE0B, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xDE3A,0xDE0D,0xDE11, 0,0xDE20,0xDE01,
- 0,0xDE37,0xDCA3, 0,0xDDAA, 0, 0,0xDEE7,0xDEE8, 0,
- 0,0xDEF5, 0, 0, 0,0xDF35,0xDEE6, 0,0xDEF8, 0,
- 0xDEF1, 0,0xDF14,0xDF15,0xDF09, 0, 0, 0, 0, 0,
- 0xDD7B, 0,0xDD7E,0xDF66,0xDF67,0xDC0A, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xDC9C,0xDD62,0xDDE1,0xDDDE,0xDDDF,
- 0xDDE9, 0,0xDCE4,0xDCF7,
- /* plane 4, row 10 */
- 1 | (94 << 8), /* first, last */
- 0x6D43,0xD84F,0xD84F,0xD84F,0xD87E,0x70A6,0x3DB2,0x70C0,0xD850,
- 0x722F,0xD851,0x3E1B,0xD851,0x3E32,0x7271,0xD851,0xD851,0x3E6B,0xD851,
- 0x3E6C,0x3E6D,0xD852,0x3EB9,0x3EBA,0x3F09,0x3F0A,0xD852,0x74EA,0x3F1B,
- 0xD852,0xD852,0x7520,0x3F58,0xD853,0x3F5A,0xD87E,0xD853,0x3F77,0xD853,
- 0xD853,0x3F79,0x75A9,0xD853,0x7685,0xD853,0x3FEB,0xD853,0x3FFD,0x3FFC,
- 0x7706,0x4015,0x4018,0x76F6,0x4016,0x4017,0x4019,0x7700,0x401B,0xD854,
- 0xD854,0x7702,0xD854,0x4087,0xD854,0xD854,0x409C,0xD855,0x409A,0xD855,
- 0x40FF,0x40FE,0xD855,0x4131,0x412E,0x4130,0x4132,0xD855,0xffff,0x412F,
- 0xD855,0x4195,0x4196,0xD856,0xD856,0xD856,0x41C5,0x427A,0xD858,0x4342,
- 0xD858,0x4354,0xD858,0xD858,0xD858,
- 2, /* first low-surrogate */
- 0xDCEA,0xDCF6,0xDD12,0xDD01, 0, 0, 0,0xDDD9,
- 0,0xDD5F, 0,0xDD73, 0, 0,0xDE3F,0xDF78, 0,0xDF7D,
- 0, 0,0xDD12, 0, 0, 0, 0,0xDF2F, 0, 0,
- 0xDF30,0xDFDB, 0, 0,0xDC29, 0,0xDD36,0xDD40, 0,0xDD3D,
- 0xDD3E, 0, 0,0xDD38, 0,0xDF48, 0,0xDFD0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xDD0E,
- 0xDD09, 0,0xDD07, 0,0xDF5F,0xDF60, 0,0xDC2A, 0,0xDC29,
- 0, 0,0xDE4D, 0, 0, 0, 0,0xDF6C, 0, 0,
- 0xDF67, 0, 0,0xDD39,0xDD34,0xDE59, 0, 0,0xDE23, 0,
- 0xDE82, 0,0xDE83,0xDEA8,0xDF55,
- /* plane 4, row 11 */
- 1 | (94 << 8), /* first, last */
- 0xD858,0xD858,0xD858,0xD858,0x8009,0xD87E,0x439F,0x43A0,0x43A2,
- 0x43E0,0xD859,0x43E1,0xD859,0xD859,0x43DF,0xD859,0xD85A,0x4462,0x4461,
- 0xD85A,0xD85A,0x44A7,0xD85A,0xD85A,0xD85A,0x82DA,0xD85A,0xD85A,0x830A,
- 0x4589,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,0x461D,0xD85D,
- 0xD85D,0x472A,0xD85F,0xD85F,0x47D3,0x4842,0x4843,0xD861,0x4891,0xD861,
- 0xD861,0x4890,0x48BF,0xD861,0x48BC,0xD861,0x48C0,0x49C7,0x49C5,0x9655,
- 0xD863,0x9652,0x4E35,0xD840,0xD840,0x5034,0x5001,0xD840,0x500A,0x3466,
- 0xD840,0xD840,0xD840,0x34AD,0xD841,0xD841,0xD841,0xD841,0x5258,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD842,0x351D,0xD842,0x3531,0x532B,0xD842,
- 0x354C,0xD842,0xD842,0x3595,0x3591,
- 1, /* first low-surrogate */
- 0xDFF9,0xDFF8,0xDFFC,0xDFFA, 0,0xDD7A, 0, 0, 0,
- 0,0xDE74, 0,0xDE6B,0xDE71, 0,0xDE76,0xDE0E, 0, 0,
- 0xDE10,0xDE0F, 0,0xDF38,0xDF39,0xDF3A, 0,0xDF37,0xDF3E, 0,
- 0,0xDD9C,0xDE2A,0xDE3A,0xDE2B,0xDE28,0xDDAA,0xDE0F, 0,0xDE10,
- 0xDFE6, 0,0xDD25,0xDE8E, 0, 0, 0,0xDC8B, 0,0xDC8C,
- 0xDC9A, 0, 0,0xDEB3, 0,0xDEB2, 0, 0, 0, 0,
- 0xDE44, 0, 0,0xDD58,0xDEA7, 0, 0,0xDE63, 0, 0,
- 0xDE6A,0xDE65,0xDE6B, 0,0xDCED,0xDDD9,0xDF3B,0xDF32, 0,0xDF35,
- 0xDF31,0xDF3E,0xDF43,0xDF36,0xDC6D, 0,0xDCE4, 0, 0,0xDDF4,
- 0,0xDE69,0xDE6B,
- /* plane 4, row 12 */
- 1 | (94 << 8), /* first, last */
- 0x3594,0xD843,0xD843,0xD843,0x358F,0x54EC,0xD843,0x5515,0x54FE,
- 0xD843,0xD843,0xD843,0x54E3,0x5516,0x3640,0xD844,0x3641,0xD844,0x57D3,
- 0xD844,0xD845,0xD845,0xD845,0x5959,0x5A27,0x36D8,0x36D2,0x36DA,0x5A28,
- 0x5A10,0x36D7,0x5A0E,0x3742,0x3757,0xD846,0xD846,0xD846,0x5BAF,0xD846,
- 0x5BBA,0x5BB1,0xD846,0xD846,0x3778,0x3782,0x3797,0xD847,0xD847,0x37C9,
- 0xD847,0x37C8,0x37D6,0x37CC,0xD847,0x37D0,0xD847,0xD847,0x37CE,0x37C7,
- 0x5CFC,0xD847,0x37CF,0x37CB,0x5CF2,0x5CFE,0xD847,0xD847,0x5DF8,0xD848,
- 0x3847,0xD848,0x3848,0xD848,0xD848,0x3883,0x3885,0x3884,0xD848,0xD848,
- 0x5F2C,0x38B8,0x38BC,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,
- 2, /* first low-surrogate */
- 0xDCBF,0xDCC3,0xDCAE, 0, 0,0xDCB1, 0, 0,
- 0xDCBB,0xDCAF,0xDCB0, 0, 0, 0,0xDEEF, 0,0xDEED, 0,
- 0xDEF0,0xDD93,0xDE34,0xDE2B, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xDE04,0xDE03,0xDE02, 0,0xDE05,
- 0, 0,0xDE00,0xDF74, 0, 0, 0,0xDC65,0xDC63, 0,
- 0xDDD7, 0, 0, 0,0xDDE8, 0,0xDDDB,0xDDD8, 0, 0,
- 0,0xDE09, 0, 0, 0, 0,0xDDE5,0xDDE7, 0,0xDC3F,
- 0,0xDCC0, 0,0xDCB9,0xDCBA, 0, 0, 0,0xDE20,0xDF4F,
- 0, 0, 0,0xDC91,0xDC90,0xDCEE,0xDCF3,0xDCEC,0xDCF1,0xDCEB,
- 0xDCF2,0xDCF4,0xDCED,0xDE41,0xDE48,
- /* plane 4, row 13 */
- 1 | (94 << 8), /* first, last */
- 0xD849,0x3931,0x3934,0x3936,0x6082,0xD849,0xD849,0x3923,0xD849,
- 0xD849,0x393A,0x6091,0x608F,0xD849,0x39B4,0x39B5,0x39ED,0x39EC,0x39D8,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0x39F6,0x39E7,0xD84A,
- 0xD84B,0x3A7C,0x3A7B,0xD84B,0x3A88,0x6547,0x654C,0xD84B,0xD87E,0x658A,
- 0xD84C,0x3ABE,0xD84C,0x3AE7,0x3AE5,0x3AEE,0x67E1,0x684A,0xD84D,0x3B59,
- 0x3B5E,0xD84D,0x3B5A,0x683F,0x3B61,0x3B58,0x3B5B,0x67BD,0xD84D,0x3B5F,
- 0xD87E,0x3C2A,0x3C2D,0xD84E,0x3C23,0x3C2B,0x3C2C,0xD84E,0x3C7E,0xD87E,
- 0x3C93,0x3C99,0xD84E,0xD84E,0x3CB3,0x3CE7,0x3CEA,0xD84F,0xD84F,0xD84F,
- 0xD87E,0xD84F,0xD84F,0x3DB4,0xD850,0x70C9,0x3E17,0xD851,0xD851,0xD851,
- 0x3E21,0xD851,0x3E38,0x3E37,0x3E74,
- 1, /* first low-surrogate */
- 0xDE45, 0, 0, 0, 0,0xDE7F,0xDE8B, 0,0xDE3B,
- 0xDE4E, 0, 0, 0,0xDE7C, 0, 0, 0, 0, 0,
- 0xDEF0,0xDF36,0xDF3F,0xDF43,0xDF31,0xDF34,0xDF46, 0, 0,0xDF2F,
- 0xDEC3, 0, 0,0xDF36, 0, 0, 0,0xDF21,0xDCC8, 0,
- 0xDC73, 0,0xDCE6, 0, 0, 0, 0, 0,0xDC3F, 0,
- 0,0xDC6B, 0, 0, 0, 0, 0, 0,0xDC71, 0,
- 0xDCE2, 0, 0,0xDCB0, 0, 0, 0,0xDDF3, 0,0xDCF5,
- 0, 0,0xDF61,0xDF5F, 0, 0, 0,0xDD28,0xDD1E,0xDD29,
- 0xDD02,0xDCEB,0xDD66, 0,0xDDF6, 0, 0,0xDD60,0xDD77,0xDDBB,
- 0,0xDDBC,
- /* plane 4, row 14 */
- 1 | (94 << 8), /* first, last */
- 0x3E73,0x3E75,0xD851,0xD851,0xD851,0x3E76,0x3E78,0xD852,0xD852,
- 0x73BA,0x3F0C,0x3F20,0x3F1E,0xD853,0x3F5B,0xD853,0x3F5C,0xD853,0x3F83,
- 0x75C6,0x3F80,0x3F81,0x3F7E,0x3F88,0x3F85,0x3F89,0x3F7F,0x3F8E,0xD853,
- 0xD853,0x3F84,0x75B7,0x768C,0xD853,0x768D,0xD853,0x3FEE,0x3FED,0x3FFE,
- 0xD854,0x3FFF,0xD854,0xD854,0xD854,0x4023,0xD854,0x7717,0xD854,0x771C,
- 0x401F,0xD854,0xD854,0x7714,0xD854,0x408F,0x4090,0xD855,0xD855,0xD855,
- 0x40A0,0xD855,0x40A6,0x409F,0xD855,0x40A7,0x40A1,0xD855,0x4102,0x4136,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0x41C8,0xD856,0xD856,
- 0x41D8,0x7B0C,0x41DD,0x41DC,0xD856,0x41D7,0xD856,0x41DA,0x42BA,0xD857,
- 0xD857,0xD857,0x42BE,0x42C2,0x42BB,
- 3, /* first low-surrogate */
- 0xDFA2,0xDFB2,0xDF9E, 0, 0,0xDD3A,0xDD38,
- 0, 0, 0, 0,0xDC4D, 0,0xDC5E, 0,0xDD17, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,0xDD64,
- 0xDD67, 0, 0, 0,0xDF59, 0,0xDFDA, 0, 0, 0,
- 0xDC51, 0,0xDC55,0xDD3B,0xDD34, 0,0xDD37, 0,0xDD31, 0,
- 0,0xDD3F,0xDD59, 0,0xDF61, 0, 0,0xDC58,0xDC62,0xDC50,
- 0,0xDC51, 0, 0,0xDC46, 0, 0,0xDE2D, 0, 0,
- 0xDD48,0xDD51,0xDD4A,0xDD4F,0xDD50,0xDD49,0xDE63, 0,0xDE66,0xDE60,
- 0, 0, 0, 0,0xDEF1, 0,0xDF07, 0, 0,0xDF9B,
- 0xDFA3,0xDF9D,
- /* plane 4, row 15 */
- 1 | (94 << 8), /* first, last */
- 0x42C0,0xD857,0xD857,0xD857,0x7D23,0xD857,0xD848,0xD858,0x4343,
- 0x4355,0xD858,0xD858,0x4357,0x4368,0x7F98,0x7F90,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0x43A1,0xD859,0x803A,0xD859,0xD859,0xD859,
- 0xD859,0x43EA,0xD859,0x43E7,0xD859,0xD859,0xD859,0xD859,0x43E8,0x43E9,
- 0xD859,0xD85A,0x4454,0xD85A,0xD85A,0xD85A,0xD85A,0x8226,0x4465,0xD85A,
- 0xD85A,0x448A,0xD85A,0x44B0,0xD85A,0xD85A,0xD85A,0x44BC,0x832E,0xD85A,
- 0x8355,0x831A,0x44B8,0x833D,0xD85A,0x44B2,0xD85A,0x8330,0x44BD,0xD85A,
- 0xD85A,0x458A,0x8651,0x45A1,0xD85C,0x45A2,0xD85C,0x8688,0xD85C,0x4615,
- 0xD85D,0xD85D,0x4620,0x4673,0xD85D,0x898E,0x898D,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0x8A09,0x8A14,0x46B1,
- 2, /* first low-surrogate */
- 0xDFA9,0xDFA7,0xDFA4, 0,0xDFBA,0xDDC1,0xDE26, 0,
- 0,0xDE94,0xDE93, 0, 0, 0, 0,0xDC07,0xDC0D,0xDC02,
- 0xDC0C,0xDC09,0xDC08,0xDC13, 0,0xDCD2, 0,0xDD3E,0xDD3C,0xDE67,
- 0xDE9E, 0,0xDEAD, 0,0xDED9,0xDE42,0xDEA3,0xDEA0, 0, 0,
- 0xDE7C,0xDD04, 0,0xDD58,0xDD60,0xDDC9,0xDDC8, 0, 0,0xDE1C,
- 0xDE1A, 0,0xDF74, 0,0xDF6E,0xDF6F,0xDF79, 0, 0,0xDF77,
- 0, 0, 0, 0,0xDF7C, 0,0xDF70, 0, 0,0xDF7A,
- 0xDF82, 0, 0, 0,0xDE44, 0,0xDE43, 0,0xDE45, 0,
- 0xDE25,0xDE1F, 0, 0,0xDFE8, 0, 0,0xDC09,0xDCB7,0xDCB9,
- 0xDD64,0xDD63,
- /* plane 4, row 16 */
- 1 | (94 << 8), /* first, last */
- 0xD85E,0xD85E,0x472B,0xD85E,0x4745,0xD85F,0x4797,0x4798,0xD85F,
- 0x47D5,0xD85F,0xD87E,0x4893,0x4896,0x9007,0x4894,0xD861,0xD861,0x48C7,
- 0x48C5,0xD861,0xD861,0xD861,0x48C4,0xD861,0x9579,0x9584,0x49CE,0x49CA,
- 0x49CC,0x9657,0x49C9,0x96BA,0xffff,0xD867,0xD840,0x346E,0xD840,0x5067,
- 0xD840,0xD840,0x3471,0xD840,0x34BB,0x34D3,0xD841,0xD841,0xD841,0xD841,
- 0x34F3,0x34ED,0x34F5,0xD841,0xD841,0x34F1,0x34F2,0x34F6,0x3520,0xD842,
- 0x3528,0xD842,0x5318,0x532C,0x5359,0xD842,0xD842,0xD842,0x5368,0x537E,
- 0xD842,0xD842,0x53A1,0xD843,0x35A1,0x555B,0x35AA,0x35A9,0xD843,0x35B5,
- 0x35A5,0x35A8,0x5542,0x35A7,0x5547,0xD843,0xD87E,0x553D,0xD843,0xD843,
- 0x5560,0x57EB,0xD844,0xD844,0xD844,
- 1, /* first low-surrogate */
- 0xDD62,0xDD65, 0,0xDFAC, 0,0xDD2A, 0, 0,0xDE96,
- 0,0xDFC2,0xDDDE, 0, 0, 0, 0,0xDCAA,0xDCB0, 0,
- 0,0xDED4,0xDECD,0xDED6, 0,0xDFF0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xDD4B,0xDD62, 0,0xDEB7, 0,
- 0xDEAC,0xDEAB, 0,0xDEC1, 0, 0,0xDDE8,0xDF69,0xDF5D,0xDF5F,
- 0, 0, 0,0xDF64,0xDF62, 0, 0, 0, 0,0xDCF9,
- 0,0xDCEE, 0, 0, 0,0xDDAB,0xDDAC,0xDDAA, 0, 0,
- 0xDE86,0xDE7A, 0,0xDD28, 0, 0, 0, 0,0xDD31, 0,
- 0, 0, 0, 0, 0,0xDD2D,0xDC43, 0,0xDD2B,0xDD32,
- 0, 0,0xDF29,0xDF26,0xDF53,
- /* plane 4, row 17 */
- 1 | (94 << 8), /* first, last */
- 0x364D,0xD844,0xD844,0xD845,0x369C,0x595F,0xD845,0x36EA,0x36E5,
- 0xD845,0xD845,0x5B6F,0xD846,0x375E,0xD846,0xD87E,0xD846,0x3786,0x3784,
- 0xD846,0x5C5A,0xD847,0x37D9,0xD847,0x37DE,0xD847,0xD847,0xD847,0x37DB,
- 0xD847,0xD847,0xD847,0xD847,0x3831,0xD848,0xD848,0x384B,0xD848,0x3849,
- 0x384A,0x384C,0xD848,0xD848,0x388A,0xD848,0x3889,0x388B,0xD848,0x38BB,
- 0x5FA2,0x5F9D,0x38E4,0xD849,0xD849,0x5FA3,0xD849,0xD849,0x393B,0x392E,
- 0x393E,0x3946,0x3953,0xD849,0x3944,0xD849,0x393F,0x3942,0x394F,0xD849,
- 0x3952,0x394A,0x60C2,0xD849,0x395A,0x60A5,0x3949,0xD849,0x621C,0xD84A,
- 0x621D,0x3A03,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0x6395,0x639A,0x3A01,
- 0x3A06,0x39FB,0x39F9,0xD84A,0x3A05,
- 2, /* first low-surrogate */
- 0xDF33,0xDF34,0xDD9D, 0, 0,0xDE41, 0, 0,
- 0xDF91,0xDF69, 0,0xDE22, 0,0xDE34,0xDC6D,0xDF2E, 0, 0,
- 0xDFF4, 0,0xDE28, 0,0xDE1C, 0,0xDE11,0xDE24,0xDE15, 0,
- 0xDE16,0xDE54,0xDE23,0xDFFF, 0,0xDCCF,0xDCD0, 0,0xDCCE, 0,
- 0, 0,0xDDC7,0xDE5C, 0,0xDE36, 0, 0,0xDE43, 0,
- 0, 0, 0,0xDD2A,0xDD01, 0,0xDD0B,0xDD0F, 0, 0,
- 0, 0, 0,0xDEDF, 0,0xDED2, 0, 0, 0,0xDECD,
- 0, 0, 0,0xDEDB, 0, 0, 0,0xDECF, 0,0xDDC0,
- 0, 0,0xDF81,0xDF82,0xDF8A,0xDFA8,0xDF8C, 0, 0, 0,
- 0, 0, 0,0xDF8E,
- /* plane 4, row 18 */
- 1 | (94 << 8), /* first, last */
- 0x39FA,0xD84A,0x63A6,0xD84A,0x39FE,0xD84A,0x3A7D,0x3A8C,0xD84B,
- 0xD84B,0x6550,0x3A8E,0xD84B,0xD84B,0x6552,0xD84B,0xD84B,0xD84C,0xD84C,
- 0x65C8,0xD84C,0x3AF0,0x3AF2,0xD84C,0x6658,0x3AF1,0x3AE6,0xD84C,0xD84C,
- 0xD87E,0x6888,0xD84D,0x3B6F,0x3B6D,0x3B69,0xD84D,0xD84D,0x3B6E,0xD84D,
- 0x3C2F,0x3C30,0x3C63,0xD84E,0xD84E,0xD84E,0x6BB8,0x3C80,0x6BB9,0x3C9A,
- 0x3C94,0x3C96,0x3C95,0x3C97,0xD84E,0x3CF4,0x3CFE,0xD84F,0x3D01,0xD84F,
- 0x3D02,0xD84F,0x3CF9,0xD84F,0xD84F,0xD84F,0xD84F,0x3CF6,0x3CF7,0xD84F,
- 0xD84F,0xD84F,0x3CFF,0xD84F,0xD84F,0xD84F,0xD84F,0x6E0B,0xD84F,0xD850,
- 0x3DBF,0x3DBC,0x7105,0xD850,0xD850,0xD850,0x3DBE,0x3DC0,0xD851,0x3E3B,
- 0x3E39,0xD851,0xD851,0xD851,0x3E3C,
- 2, /* first low-surrogate */
- 0xDF8B, 0,0xDF96, 0,0xDFCC, 0, 0,0xDF4F,
- 0xDF4A, 0, 0,0xDF4B,0xDF3D, 0,0xDF44,0xDF49,0xDC9E,0xDCF3,
- 0,0xDCF5, 0, 0,0xDDB3, 0, 0, 0,0xDDE5,0xDDB6,
- 0xDCD8, 0,0xDC86, 0, 0, 0,0xDCB6,0xDC85, 0,0xDCAB,
- 0, 0, 0,0xDE0D,0xDE8B,0xDE8C, 0, 0, 0, 0,
- 0, 0, 0, 0,0xDF72, 0, 0,0xDD8F, 0,0xDD79,
- 0,0xDD77, 0,0xDD90,0xDD88,0xDD80,0xDD9E, 0, 0,0xDD82,
- 0xDD34,0xDD89, 0,0xDD85,0xDD7E,0xDD7A,0xDDA6, 0,0xDDB5,0xDDF4,
- 0, 0, 0,0xDE29,0xDE26,0xDE2A, 0, 0,0xDD7E, 0,
- 0,0xDE5B,0xDE61,0xDE60,
- /* plane 4, row 19 */
- 1 | (94 << 8), /* first, last */
- 0xD851,0x7314,0x7304,0xD851,0x3E7D,0xD851,0x3E7F,0x3E7A,0x3E7C,
- 0x7305,0x3E7E,0x7315,0x730D,0x3E80,0x3EBF,0x3EC3,0xD852,0xD852,0x3ECC,
- 0x3F0E,0x3F0D,0xD852,0x3F26,0x3F24,0x3F25,0x3F23,0x3F21,0x3F29,0xD853,
- 0xD853,0x3F8F,0x3F8D,0xD853,0x3F8B,0x3F92,0xD853,0x3F90,0xD853,0x3FEF,
- 0x3FF0,0xD853,0xD854,0x4001,0xD854,0x402E,0x402D,0x772E,0x4028,0x4029,
- 0x402C,0xD854,0xD854,0xD854,0x7741,0x4088,0xD854,0x4092,0x4091,0x77EA,
- 0xD854,0x7844,0x40A9,0x40AC,0x40AE,0x40AA,0x4106,0x4105,0x414A,0x413E,
- 0x413C,0x413B,0xD855,0x4142,0x4141,0x4143,0xD855,0x4145,0xD856,0x419A,
- 0x419B,0x419F,0x419E,0xD856,0xD856,0xD856,0x41DE,0x41E2,0x41E6,0xD856,
- 0x7B29,0x41E3,0x7B27,0x41DF,0xD857,
- 1, /* first low-surrogate */
- 0xDF9B, 0, 0,0xDFC3, 0,0xDFCD, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xDD54,0xDD59, 0,
- 0, 0,0xDEF5, 0, 0, 0, 0, 0, 0,0xDC69,
- 0xDC65, 0, 0,0xDD7C, 0, 0,0xDD80, 0,0xDF65, 0,
- 0,0xDFDF,0xDC60, 0,0xDC5E, 0, 0, 0, 0, 0,
- 0,0xDD8F,0xDD61,0xDD5A, 0, 0,0xDF67, 0, 0, 0,
- 0xDFBB, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xDF9B, 0, 0, 0,0xDFA9, 0,0xDD66, 0,
- 0, 0, 0,0xDE72,0xDE76,0xDF14, 0, 0, 0,0xDF0F,
- 0, 0, 0, 0,0xDE41,
- /* plane 4, row 20 */
- 1 | (94 << 8), /* first, last */
- 0xD857,0x7C9D,0xD857,0xD857,0x427E,0x42C9,0x42CC,0xD857,0x42D1,
- 0xD857,0x42D0,0xD857,0x42CF,0x42C8,0xD857,0x42CD,0xD857,0xD857,0x4349,
- 0x4347,0x4358,0x436B,0x436C,0x436A,0xD858,0x4380,0x4382,0x4384,0x7FC8,
- 0x4383,0xD859,0xD859,0x43B6,0xD859,0xD859,0xD859,0xD859,0xD859,0x8126,
- 0x43F1,0xD859,0x43F6,0x43F3,0x43F0,0x811C,0xD859,0xD859,0x8128,0x43F5,
- 0x43F4,0x43F7,0xD859,0xD859,0xD85A,0xD87E,0x4455,0xD85A,0xD85A,0xD85A,
- 0x448B,0x44CB,0x44C2,0xD85A,0xD85A,0xD85A,0x44CA,0x44CC,0xD85A,0x44C7,
- 0x44C9,0x8370,0xD85A,0x44C6,0xD85B,0xD85A,0x44C3,0x8382,0xD85A,0x83AC,
- 0xD85A,0x44C4,0xD85A,0xD87E,0xD87E,0xD85A,0xD85C,0xD85C,0xD85C,0x45A9,
- 0x86AD,0x45A8,0x45A6,0xD85C,0xD85C,
- 1, /* first low-surrogate */
- 0xDE46, 0,0xDE4B,0xDE43, 0, 0, 0,0xDFC6, 0,
- 0xDFC7, 0,0xDFCE, 0, 0,0xDFC9, 0,0xDFCB,0xDFC5, 0,
- 0, 0, 0, 0, 0,0xDF69, 0, 0, 0, 0,
- 0,0xDC1E,0xDCBA, 0,0xDD52,0xDD51,0xDD53,0xDE9F,0xDEDB, 0,
- 0,0xDEE3, 0, 0, 0, 0,0xDED7,0xDEE9, 0, 0,
- 0, 0,0xDEDE,0xDEDC,0xDD3C,0xDD8B, 0,0xDE22,0xDE32,0xDE23,
- 0, 0, 0,0xDFD4,0xDFC8,0xDFBC, 0, 0,0xDFCD, 0,
- 0, 0,0xDFBE, 0,0xDC40,0xDFD6, 0, 0,0xDFBD, 0,
- 0xDFBA, 0,0xDFC0,0xDD9B,0xDD9D,0xDFC1,0xDDA6,0xDDA5,0xDDA8, 0,
- 0, 0, 0,0xDE5F,0xDE70,
- /* plane 4, row 21 */
- 1 | (94 << 8), /* first, last */
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0x86CA,0x8851,0xD85D,0xD85D,
- 0x4622,0xD85D,0x4626,0x4624,0x4625,0x889D,0x462A,0x4674,0xD85E,0x4679,
- 0x8990,0x467A,0xD85E,0xD85E,0x89D8,0x89D7,0x4697,0xD85E,0xD85E,0x8A2E,
- 0xD85E,0x46BC,0xD85E,0x46B3,0xD85E,0x46BF,0x46B7,0xD87E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0x4734,0x4746,0x4748,0x8C59,0xD85F,0xD85F,0x4756,0x4767,
- 0xD85F,0xD85F,0x4768,0x4799,0x479A,0xD85F,0xD85F,0x47D8,0xD85F,0x47DB,
- 0x47DC,0x47DD,0x47D7,0xD85F,0xD860,0x4849,0x484A,0x8EDA,0xD860,0xD860,
- 0x9033,0xD861,0x9018,0x489A,0xD861,0x48CD,0x48CA,0xD861,0x48CB,0xD861,
- 0x48CF,0xD861,0xD87E,0x48CC,0x48EA,0x48ED,0xD861,0xD861,0x48E9,0xD862,
- 0x491A,0x91EF,0x498D,0x49D2,0xD863,
- 1, /* first low-surrogate */
- 0xDE6A,0xDE65,0xDE67,0xDE6F,0xDE87, 0, 0,0xDE3D,0xDE43,
- 0,0xDE40, 0, 0, 0, 0, 0, 0,0xDC18, 0,
- 0, 0,0xDC19,0xDCC1, 0, 0, 0,0xDCBC,0xDCC8, 0,
- 0xDD71, 0,0xDD6E, 0,0xDD78, 0, 0,0xDDCD,0xDD7A,0xDFB1,
- 0xDFAF,0xDFB0, 0, 0, 0, 0,0xDCA8,0xDCA6, 0, 0,
- 0xDD48,0xDD45, 0, 0, 0,0xDEA0,0xDEA4, 0,0xDFD4, 0,
- 0, 0, 0,0xDFD2,0xDE22, 0, 0, 0,0xDEB7,0xDECC,
- 0,0xDCE6, 0, 0,0xDCC8, 0, 0,0xDEF4, 0,0xDEED,
- 0,0xDE7E,0xDDE3, 0, 0, 0,0xDFF9,0xDFFD, 0,0xDC07,
- 0, 0, 0, 0,0xDE78,
- /* plane 4, row 22 */
- 1 | (94 << 8), /* first, last */
- 0xD863,0xD863,0xD863,0x49F2,0xD864,0xD864,0xD864,0x4A3D,0xD864,
- 0x4A3E,0x4AF8,0x4B23,0x9AD9,0x4EB4,0xD840,0x50A0,0x5090,0x3475,0x5086,
- 0x5084,0xD840,0x508A,0x3476,0x3473,0x509F,0x50A1,0xD840,0x5093,0x34BD,
- 0xD841,0x51D5,0xD841,0xD841,0x34F9,0xD841,0xD841,0x34FA,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0x3521,0xD87E,0x3529,0xD842,0xD842,0x3538,0x354E,
- 0xD842,0xD842,0xD842,0xD843,0xD843,0xD843,0x35C8,0x35BC,0xD843,0xD843,
- 0x5590,0xD843,0x35BB,0x35C2,0x35C0,0xD843,0xD843,0x35CA,0xD843,0x35C9,
- 0xD843,0x35B8,0x5710,0x5817,0xD844,0x364E,0xD844,0x5844,0x3650,0x582B,
- 0xD844,0x5845,0xD844,0xD844,0xD844,0xD844,0xD87E,0x368A,0xD845,0x5965,
- 0xD845,0xD845,0xD845,0x36FC,0x36F9,
- 1, /* first low-surrogate */
- 0xDE7A,0xDE79,0xDF8A, 0,0xDC7B,0xDDD5,0xDDE9, 0,0xDDEB,
- 0, 0, 0, 0, 0,0xDD6C, 0, 0, 0, 0,
- 0,0xDEFA, 0, 0, 0, 0, 0,0xDF18, 0, 0,
- 0xDDF6, 0,0xDF8A,0xDF89, 0,0xDF7F,0xDF88, 0,0xDF83,0xDF84,
- 0xDF98,0xDF63,0xDF87, 0,0xDC27, 0,0xDCF5,0xDD50, 0, 0,
- 0xDE87,0xDE8A,0xDF65,0xDDB7,0xDDC1,0xDDC7, 0, 0,0xDDC5,0xDDCB,
- 0,0xDDD1, 0, 0, 0,0xDDB8,0xDDCA, 0,0xDDDE, 0,
- 0xDDCE, 0, 0, 0,0xDF68, 0,0xDF6B, 0, 0, 0,
- 0xDF6A, 0,0xDF66,0xDF77,0xDF96,0xDF6E,0xDC56, 0,0xDE57, 0,
- 0xDE56,0xDF9C,0xDF9E,
- /* plane 4, row 23 */
- 1 | (94 << 8), /* first, last */
- 0xD845,0x3763,0xD846,0x5BCF,0xD846,0xD846,0xD846,0x3787,0x3788,
- 0xD846,0x379A,0xD847,0xD847,0xD847,0x5D56,0xD847,0xD847,0x37E9,0xD847,
- 0x37EA,0x5D54,0x3850,0xD848,0xD848,0x3856,0x3852,0x384F,0x3854,0x3851,
- 0xD848,0xD848,0x388E,0x388F,0xD848,0xD848,0xD848,0x5F3D,0xD849,0xD849,
- 0x38ED,0x38EB,0x5FA4,0xD849,0xD849,0xD849,0x3962,0xD849,0x395D,0xD849,
- 0xD849,0xD849,0x3961,0x3965,0x395C,0xD849,0xD849,0x395F,0xD849,0xD849,
- 0xD84A,0xD84A,0xD84A,0xD84A,0x63EC,0x3A16,0x3A0A,0xD84A,0x3A0E,0x3A12,
- 0xD84A,0xD84A,0x3A11,0xD84A,0xD84A,0x3A10,0xD84B,0xD84A,0x3A09,0x63FA,
- 0x3A15,0x63D4,0xD84B,0xD84B,0xD84B,0x3A91,0x3A95,0x3A93,0x3A92,0x3A8F,
- 0xD84B,0xD84B,0xD84C,0xD84C,0x3AF6,
- 1, /* first low-surrogate */
- 0xDFA1, 0,0xDE42, 0,0xDE46,0xDE3E,0xDF33, 0, 0,
- 0xDFFA, 0,0xDC97,0xDC9B,0xDCAA, 0,0xDE73,0xDE7C, 0,0xDE86,
- 0, 0, 0,0xDCF3,0xDCF0, 0, 0, 0, 0, 0,
- 0xDCEC,0xDEAF, 0, 0,0xDE64,0xDE68,0xDF5A, 0,0xDD1F,0xDD25,
- 0, 0, 0,0xDEC6,0xDED6,0xDEC3, 0,0xDF2C, 0,0xDF2E,
- 0xDF5E,0xDF33, 0, 0, 0,0xDF2D,0xDF46, 0,0xDEC1,0xDF3A,
- 0xDDCC,0xDF9D,0xDF83,0xDFF6, 0, 0, 0,0xDFF8, 0, 0,
- 0xDFFE,0xDFF3, 0,0xDFEB,0xDFFA, 0,0xDC07,0xDFFC, 0, 0,
- 0, 0,0xDF72,0xDF73,0xDF74, 0, 0, 0, 0, 0,
- 0xDF5F,0xDF60,0xDCAA,0xDD34,
- /* plane 4, row 24 */
- 1 | (94 << 8), /* first, last */
- 0xD84C,0x3AFB,0xD84C,0x6675,0x3AF9,0xD84C,0xD84C,0xD84C,0x671C,
- 0x3B7D,0xD84D,0x3B7A,0x3B7F,0xD84D,0x3B78,0xD84D,0xD84D,0x68D9,0xD84D,
- 0x3B70,0x3B82,0xD84D,0x3B84,0xD84D,0x3C33,0xD84E,0x3C32,0x3C36,0xD84E,
- 0xD84E,0x3C56,0xD84E,0xD84E,0x3C67,0xD84E,0x3C65,0x3C64,0x3C66,0xD84E,
- 0xD84E,0x3C81,0x3C82,0x3C83,0x3C9E,0xD84E,0x6BF1,0x3C9D,0xD84E,0x3D0F,
- 0x3D12,0xD84F,0xD84F,0xD84F,0x3D10,0x3D18,0xD84F,0x3D14,0x3D19,0x6E37,
- 0xffff,0xD84F,0x6E7D,0x6E86,0x3DC8,0x3DC4,0x3DC6,0xD850,0x3DC7,0x3DC3,
- 0xD850,0xD850,0xD87E,0xD850,0xD851,0x3E19,0x3E1C,0xD851,0xD851,0xD851,
- 0x3E41,0xD851,0x3E42,0x3E43,0xD851,0xD851,0xD851,0x3E82,0xD851,0x3E81,
- 0x3E94,0x3E84,0xD852,0x3ED2,0x3F0F,
- 1, /* first low-surrogate */
- 0xDDB4, 0,0xDDF0, 0, 0,0xDE0D,0xDDF3,0xDE0F, 0,
- 0,0xDCC9, 0, 0,0xDCC5, 0,0xDCD7,0xDCCC, 0,0xDCE7,
- 0, 0,0xDCC1, 0,0xDCE8, 0,0xDCCB, 0, 0,0xDCC8,
- 0xDD7A, 0,0xDD79,0xDD7E, 0,0xDE1B, 0, 0, 0,0xDE1F,
- 0xDE19, 0, 0, 0, 0,0xDF89, 0, 0,0xDF8B, 0,
- 0,0xDE09,0xDDFE,0xDE00, 0, 0,0xDE0B, 0, 0, 0,
- 0,0xDE4A, 0, 0, 0, 0, 0,0xDE79, 0, 0,
- 0xDE6C,0xDE99,0xDD1B,0xDE62,0xDD14, 0, 0,0xDDC8,0xDDD7,0xDE0C,
- 0,0xDE70, 0, 0,0xDE71,0xDFDF,0xDFE4, 0,0xDFE7, 0,
- 0, 0,0xDD90,
- /* plane 4, row 25 */
- 1 | (94 << 8), /* first, last */
- 0x3F22,0xD852,0x3F27,0x3F2A,0x74FA,0x3F28,0xD852,0x3F60,0xD853,
- 0xD853,0xD853,0x7572,0xD853,0xD853,0x3F9B,0x3F9C,0xD853,0x3F93,0x3F94,
- 0x75DC,0x3FA0,0x3F99,0xD853,0x3FA1,0xD853,0x3FF1,0xD853,0xD853,0xD854,
- 0xD854,0x4036,0xD854,0x4037,0x403F,0x403C,0xD854,0x4034,0x4039,0x403B,
- 0x4035,0x4030,0x4032,0x4038,0x403E,0x403A,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0x40B6,0x7867,0xD855,0xD855,0xD855,0x40B3,0x4109,0x7977,0xD855,
- 0xD855,0xD855,0x414C,0xD855,0xD855,0x4153,0x414D,0x4151,0x414F,0x7A9B,
- 0xD856,0x41A2,0xD856,0xD856,0x41CD,0xD856,0xD856,0x41E7,0xD856,0x41F0,
- 0xD856,0x41E9,0x41EC,0xD856,0x41E8,0x41EE,0x4202,0xD856,0xD856,0xD856,
- 0xD857,0x4282,0x4283,0x4286,0xD857,
- 2, /* first low-surrogate */
- 0xDF4C, 0, 0, 0, 0,0xDF4F, 0,0xDC7D,
- 0xDC7E,0xDC7C, 0,0xDC8D,0xDD19, 0, 0,0xDDC0, 0, 0,
- 0, 0, 0,0xDDB6, 0,0xDDA8, 0,0xDFEB,0xDFE7,0xDC6F,
- 0xDDC7, 0,0xDD9F, 0, 0, 0,0xDDC4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xDD9B,0xDD97,0xDDC5,0xDF6B,
- 0xDFCE, 0, 0,0xDCB1,0xDCAE,0xDCB0, 0, 0, 0,0xDF3E,
- 0xDFB5,0xDFBA, 0,0xDFB2,0xDFB4, 0, 0, 0, 0, 0,
- 0xDD77, 0,0xDD86,0xDD7B, 0,0xDE7E,0xDF2E, 0,0xDF2F, 0,
- 0xDF37, 0, 0,0xDF32, 0, 0, 0,0xDF36,0xDF39,0xDF35,
- 0xDE5C, 0, 0, 0,0xDE7B,
- /* plane 4, row 26 */
- 1 | (94 << 8), /* first, last */
- 0xD857,0xD857,0xD857,0xD857,0xD858,0x7D2A,0x7D65,0x434A,0xD858,
- 0x435A,0x7F64,0xD858,0x436E,0xD858,0xD858,0x4370,0x436F,0xD859,0x438A,
- 0x4387,0x4388,0xD859,0xD859,0x8020,0x43B7,0x43FD,0x8120,0xD859,0x4405,
- 0x813C,0x4408,0x4403,0x4402,0x4404,0x3B39,0x4409,0x43FF,0xD859,0x813F,
- 0xD859,0x43FC,0x4401,0x440A,0x81F0,0x81F5,0x446B,0x446C,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85B,0xD85B,0x44DE,0xD85B,0xD85B,0x44DB,0xD85B,0x44DD,
- 0x44E3,0xD85B,0x44E0,0x44D9,0x44D8,0x44E4,0xD85B,0xD85B,0x44DA,0x44EF,
- 0xD87E,0x8415,0x83BE,0xD85B,0xD85B,0xD85B,0x44D7,0x45B3,0x45BB,0x86E5,
- 0x45B2,0x86D2,0x45AD,0xD85C,0x45AF,0xD87E,0x86E0,0xD85C,0x4616,0x4628,
- 0x4623,0x88B3,0xD85D,0xD85D,0xD85D,
- 1, /* first low-surrogate */
- 0xDE61,0xDFEE,0xDFEB,0xDFEF,0xDC20, 0, 0, 0,0xDE30,
- 0, 0,0xDEBE, 0,0xDF67,0xDF7C, 0, 0,0xDC24, 0,
- 0, 0,0xDC29,0xDCEF, 0, 0, 0, 0,0xDF0D, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,0xDF64, 0,
- 0xDF15, 0, 0, 0, 0, 0, 0, 0,0xDE35,0xDE36,
- 0xDE34,0xDE37,0xDC47,0xDC2B, 0,0xDC41,0xDC43, 0,0xDC42, 0,
- 0,0xDC32, 0, 0, 0, 0,0xDC44,0xDC4A, 0, 0,
- 0xDDA0, 0, 0,0xDC54,0xDC6E,0xDC52, 0, 0, 0, 0,
- 0, 0, 0,0xDE92, 0,0xDDB8, 0,0xDEBF, 0, 0,
- 0, 0,0xDE41,0xDE69,0xDE65,
- /* plane 4, row 27 */
- 1 | (94 << 8), /* first, last */
- 0x4675,0x467E,0x467C,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0x46CE,
- 0x46CD,0x46CF,0x8A53,0xD85E,0xD85E,0x8A37,0x8A47,0x8A5C,0xD85E,0x46C4,
- 0x46CC,0x46C8,0x46C7,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85F,0xD85F,
- 0x475A,0x476A,0xD85F,0x476B,0x476D,0x476F,0xD85F,0x479E,0xD85F,0x47A4,
- 0x47A3,0x47E4,0x47E8,0x47E9,0x47E0,0x47E3,0xD85F,0x47EA,0x47E1,0x47ED,
- 0x4834,0x4835,0x4851,0x8EF0,0xD861,0x489D,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0x48D0,0xD861,0x48EE,0xD862,0xD862,0xD862,0x48F2,0xD862,
- 0x921D,0x4988,0xD863,0xD863,0xD863,0x498F,0xD863,0x49D8,0xD863,0xD863,
- 0xD863,0xD863,0xD864,0xD864,0x4A3F,0xD864,0x4A52,0x976B,0xD864,0x4A50,
- 0xD865,0x4AB1,0xD865,0xD865,0x4AF9,
- 4, /* first low-surrogate */
- 0xDC22,0xDC1D,0xDCD2,0xDCDA,0xDCDB, 0,
- 0, 0, 0,0xDDA4,0xDD9E, 0, 0, 0,0xDD9D, 0,
- 0, 0, 0,0xDDAD,0xDDA6,0xDDA7,0xDFB3,0xDFE0,0xDC35,0xDC37,
- 0, 0,0xDD4A, 0, 0, 0,0xDE5E, 0,0xDEC0, 0,
- 0, 0, 0, 0, 0, 0,0xDFF9, 0, 0, 0,
- 0, 0, 0, 0,0xDCF0, 0,0xDCF3,0xDD1B,0xDCF2,0xDCFB,
- 0xDF1C,0xDF13, 0,0xDF0F, 0,0xDC16,0xDC11,0xDC12, 0,0xDC0E,
- 0, 0,0xDC67,0xDCF2,0xDCDA, 0,0xDCDC, 0,0xDF94,0xDF9B,
- 0xDF92,0xDF9A,0xDC88,0xDC86, 0,0xDDEF, 0, 0,0xDE5E, 0,
- 0xDC58, 0,0xDC56,0xDC54,
- /* plane 4, row 28 */
- 1 | (94 << 8), /* first, last */
- 0xD865,0xD865,0xD865,0x4B26,0x4B28,0xD865,0xD866,0x3480,0x50C0,
- 0x3481,0xD840,0x347E,0x347F,0xD840,0xD840,0xD87E,0xD841,0x34BE,0xD841,
- 0x34D6,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD842,0x52E5,0xD842,
- 0x3534,0xD842,0x53AF,0xD842,0xD842,0xD842,0xD843,0xD843,0x35D5,0x35D8,
- 0xD843,0xD843,0x35D4,0x55D8,0x35D9,0xD843,0xD843,0xD843,0xD87E,0xD843,
- 0x5711,0x5867,0xD844,0xD844,0x365D,0x5843,0x365E,0x3659,0xD844,0x365A,
- 0x36A0,0xD845,0xD845,0x3705,0xD845,0x3707,0xD845,0x370E,0x370C,0xD845,
- 0xD846,0x3745,0xD846,0xD846,0x3764,0xD846,0x3765,0xD846,0x5BDD,0x3766,
- 0xD846,0x3789,0x37EC,0x37F1,0x5D70,0x5D6A,0x37F0,0x37F8,0x5D74,0x5D5F,
- 0xD847,0x5D61,0x5D73,0xD847,0x37F2,
- 1, /* first low-surrogate */
- 0xDD9B,0xDE96,0xDEA4, 0, 0,0xDE9A,0xDE12, 0, 0,
- 0,0xDF6B, 0, 0,0xDF37,0xDF3C,0xDC0A,0xDCF7, 0,0xDD66,
- 0,0xDFA9,0xDFAE,0xDFAD,0xDFC8,0xDFA5,0xDFB0,0xDC95, 0,0xDD25,
- 0,0xDE99, 0,0xDF74,0xDF70,0xDF6F,0xDE41,0xDE54, 0, 0,
- 0xDE40,0xDE38, 0, 0, 0,0xDE52,0xDE3A,0xDE57,0xDC4A,0xDE59,
- 0, 0,0xDFB4,0xDFC0, 0, 0, 0, 0,0xDF75, 0,
- 0,0xDE60,0xDE47, 0,0xDFF0, 0,0xDFEF, 0, 0,0xDFEC,
- 0xDD83, 0,0xDD84,0xDD8F, 0,0xDE61, 0,0xDE69, 0, 0,
- 0xDE62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xDEAE, 0, 0,0xDEB2,
- /* plane 4, row 29 */
- 1 | (94 << 8), /* first, last */
- 0x37F4,0xD848,0x3858,0xD848,0xD848,0x385A,0x3859,0x3857,0x385B,
- 0x5E50,0xD848,0xD848,0x38A6,0x38C2,0x38C1,0x5F3F,0xD849,0xD849,0x38EF,
- 0x5FB0,0xD849,0xD849,0x3968,0x6135,0x612D,0x3973,0x396E,0x3974,0x6102,
- 0x3966,0xD849,0xD849,0xD84A,0x39B9,0x6226,0xD84A,0x3A0C,0xD84B,0xD84B,
- 0x3A20,0xD84B,0x3A1D,0xD84B,0x3A1C,0xD84B,0x3A21,0x3A1A,0x3A19,0xD84A,
- 0xD84B,0xD84B,0x3A7E,0xD84B,0xD84B,0xD84B,0xD84B,0x3A9D,0xD84B,0x3A9E,
- 0x3A9C,0x656E,0xD84B,0xD84B,0xD84B,0xD84C,0xD84C,0x65B1,0x65D4,0x3ACD,
- 0xD84C,0x3B0B,0x3B0A,0x6685,0xD84D,0x3B8F,0x6972,0x3B95,0x3B90,0x3B91,
- 0xD84D,0x693A,0x3BB9,0xD84D,0xD84D,0x3B97,0x3B9E,0xD84D,0x3B8B,0xD84D,
- 0xD84D,0x3C3B,0x3C3A,0x3C3C,0x3C3D,
- 2, /* first low-surrogate */
- 0xDD0B, 0,0xDD10,0xDD0D, 0, 0, 0, 0,
- 0,0xDE7F,0xDE81, 0, 0, 0, 0,0xDC0B,0xDD4E, 0,
- 0,0xDFEA,0xDF45, 0, 0, 0, 0, 0, 0, 0,
- 0,0xDF28,0xDF5D,0xDDDC, 0, 0,0xDDD4, 0,0xDC64,0xDC68,
- 0,0xDC62, 0,0xDC61, 0,0xDC66, 0, 0, 0,0xDFF2,
- 0xDC69,0xDC67, 0,0xDF9A,0xDF9B,0xDF85,0xDF9C, 0,0xDFA4, 0,
- 0, 0,0xDF99,0xDF86,0xDF90,0xDC81,0xDCAE, 0, 0, 0,
- 0xDD38, 0, 0, 0,0xDD3B, 0, 0, 0, 0, 0,
- 0xDD4C, 0, 0,0xDD47,0xDD35, 0, 0,0xDD33, 0,0xDD82,
- 0xDD40,
- /* plane 4, row 30 */
- 1 | (94 << 8), /* first, last */
- 0x3C39,0x3C3E,0x3C6B,0x3C6C,0xD84E,0xD84E,0x3CA2,0x3CA1,0x3C9F,
- 0xD84E,0xD84E,0xD84F,0x3D2D,0xD84F,0x3D36,0x3D2B,0xD84F,0x3D37,0xD87E,
- 0xD84F,0xD84F,0x6EAD,0x3D25,0x3D2F,0x3D2C,0xD84F,0xD84F,0x3D32,0xD84F,
- 0xD84F,0x6E95,0xD84F,0xD84F,0xD84F,0xD84F,0xD850,0xD850,0x3DD5,0xD850,
- 0x3DD4,0x3DD6,0xD850,0x3DD1,0x7243,0xD851,0x3E46,0x728F,0xD851,0xD851,
- 0x3E8C,0x3E8A,0x3E88,0xD852,0xD852,0xD851,0xD852,0x3EDD,0xD852,0xD852,
- 0xD852,0x3F2D,0xD852,0xD852,0x3F2E,0x3F2C,0x3F2B,0x3F30,0xD852,0x3F4E,
- 0xD853,0xD853,0x3F64,0x3F61,0xD853,0x7575,0xD87E,0x3F70,0x3FA6,0x3FA4,
- 0xD853,0xD853,0xD853,0x3FA8,0x3FA2,0xD853,0x3FA7,0x75EC,0x3FA5,0xD853,
- 0x3FA9,0xD853,0xD853,0xD853,0xD853,
- 5, /* first low-surrogate */
- 0xDE36,0xDF0E, 0, 0, 0,
- 0xDFAD,0xDFAA,0xDE17, 0,0xDE67, 0, 0,0xDE72, 0,0xDD0A,
- 0xDE61,0xDEB0, 0, 0, 0, 0,0xDE6E,0xDE64, 0,0xDE8C,
- 0xDE66, 0,0xDE6B,0xDE5F,0xDE74,0xDE65,0xDEBB,0xDEBE, 0,0xDEB9,
- 0, 0,0xDEEF, 0, 0,0xDDDA, 0, 0,0xDE90,0xDFE9,
- 0, 0, 0,0xDC11,0xDC0D,0xDFED,0xDC21, 0,0xDD81,0xDDB1,
- 0xDF01, 0,0xDF5E,0xDF62, 0, 0, 0, 0,0xDF5B, 0,
- 0xDC96,0xDC93, 0, 0,0xDC92, 0,0xDD39, 0, 0, 0,
- 0xDDC4,0xDDC7,0xDDC3, 0, 0,0xDDC8, 0, 0, 0,0xDDCA,
- 0,0xDDC5,0xDDCF,0xDDDC,0xDF7C,
- /* plane 4, row 31 */
- 1 | (94 << 8), /* first, last */
- 0xD854,0x403D,0xD854,0xD854,0x4044,0x4045,0x4046,0xD854,0x7757,
- 0xD854,0x4047,0x4048,0x4042,0xD854,0xD854,0x4041,0xD854,0xD854,0x4094,
- 0xD854,0xD854,0xD854,0xD855,0x40C0,0x40B8,0x40C1,0x40C2,0x40BB,0x40BD,
- 0x40BF,0x40B9,0x40B7,0xD855,0x40C7,0xD855,0x410C,0x410B,0x797B,0x4110,
- 0xD855,0x415D,0x7A21,0x415A,0x4158,0x4156,0xD855,0x4154,0x7A16,0xD855,
- 0x41A8,0x41A7,0x41CF,0x41D0,0xD856,0x7AE8,0xD856,0xD856,0x41D1,0x41EB,
- 0xD856,0x41FB,0x7B6A,0xD856,0x41FD,0x41F8,0x41F7,0x4200,0xD856,0xD856,
- 0x41F6,0x7B5F,0xD857,0xD858,0x42DF,0xD858,0xD858,0xD858,0x42E2,0x42E4,
- 0xD858,0x7D82,0xD858,0x42E3,0xD858,0x4359,0x4371,0x438E,0x438C,0xD859,
- 0x43A4,0xD859,0x8055,0x4414,0xD859,
- 1, /* first low-surrogate */
- 0xDC01, 0,0xDDD3,0xDDDC, 0, 0, 0,0xDDD4, 0,
- 0xDDCC, 0, 0, 0,0xDDD6,0xDDDB, 0,0xDDD5,0xDFD9, 0,
- 0xDFDD,0xDFDC,0xDFE0,0xDCCC, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xDCD2, 0,0xDCD3, 0, 0, 0, 0,
- 0xDE8D, 0, 0, 0, 0, 0,0xDFD8, 0, 0,0xDFBC,
- 0, 0, 0, 0,0xDE8A, 0,0xDE8B,0xDE8D, 0, 0,
- 0xDF53, 0, 0,0xDF59, 0, 0, 0, 0,0xDF56,0xDF57,
- 0, 0,0xDE73,0xDC1B, 0,0xDC21,0xDC16,0xDC18, 0, 0,
- 0xDC44, 0,0xDC26, 0,0xDE36, 0, 0, 0, 0,0xDC3A,
- 0,0xDCF4, 0, 0,0xDF62,
- /* plane 4, row 32 */
- 1 | (94 << 8), /* first, last */
- 0xD859,0xD859,0x4411,0xD859,0x441B,0x4412,0x440E,0x4415,0x8168,
- 0x4410,0xD859,0x4417,0x8246,0x8243,0x4470,0x44ED,0xD85B,0x44EE,0xD85B,
- 0xD85B,0xD85B,0x8481,0xD85B,0xD85B,0xD85B,0x44F4,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0x847C,0xD85B,0xD85B,0x846A,0xD85B,0x8488,0x44F2,
- 0x44F8,0x44F3,0xD85B,0xD85B,0x44FA,0xD85B,0xD85B,0xD87E,0xD85C,0xD85C,
- 0x8710,0xD85C,0xD85C,0x871F,0x45B6,0x45B7,0xD85C,0x870F,0xD85C,0x45BA,
- 0xD85C,0x45BC,0xD85C,0xD85D,0x463B,0x88D3,0x462F,0xD85D,0xD85D,0xD85D,
- 0x4637,0x4699,0xD85E,0xD85E,0xD85E,0xD85E,0x46D9,0x46D8,0x46D7,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0x4736,0xD85E,0xD85F,0xD85F,0x8C87,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0x8CC6,
- 1, /* first low-surrogate */
- 0xDF5B,0xDF6A, 0,0xDF68, 0, 0, 0, 0, 0,
- 0,0xDF81, 0, 0, 0, 0, 0,0xDCE7, 0,0xDCE6,
- 0xDCD1,0xDD11, 0,0xDCD0,0xDCD9,0xDD0A, 0,0xDCDA,0xDCDD,0xDCC8,
- 0xDCE2,0xDCE9,0xDCCB, 0,0xDCCC,0xDCC1, 0,0xDCDE, 0, 0,
- 0, 0,0xDD51,0xDD12, 0,0xDCE0,0xDD2B,0xDDB4,0xDED8,0xDED1,
- 0,0xDED2,0xDECD, 0, 0, 0,0xDF3D, 0,0xDECA, 0,
- 0xDECB, 0,0xDED7,0xDDF4, 0, 0, 0,0xDE87,0xDE8B,0xDE83,
- 0, 0,0xDDC5,0xDDD2,0xDDC6,0xDDD3, 0, 0, 0,0xDDF0,
- 0xDDCD,0xDDCC,0xDDDC,0xDDD6, 0,0xDFE6,0xDC41,0xDC3F, 0,0xDCC5,
- 0xDCC0,0xDCC6,0xDCBE,0xDCBF,
- /* plane 4, row 33 */
- 1 | (94 << 8), /* first, last */
- 0x4770,0xD85F,0xD85F,0xD85F,0xD85F,0x47A5,0x47A6,0x47A9,0x47EE,
- 0x4854,0xD860,0x4857,0xD860,0xD861,0x48A1,0xD861,0xD861,0xD861,0xD861,
- 0x48D3,0xD861,0x48D4,0xD861,0x48D7,0x90CC,0x916D,0x9170,0x48F7,0x48F6,
- 0x48F9,0x48F8,0x9258,0x9242,0x9268,0x9269,0xD862,0xD862,0x9243,0xD862,
- 0x9247,0x498A,0xD863,0xD863,0xD863,0xD863,0x4994,0xD863,0x4993,0xD863,
- 0xD863,0x959D,0x49DD,0x49DC,0x49F7,0x96CF,0xD864,0xD864,0x4A42,0xD864,
- 0xD864,0x4A54,0xD864,0x4A55,0xD864,0x4A8F,0xD864,0x97F4,0x4AB4,0x4AB3,
- 0xD865,0xD865,0x9809,0xD865,0xD865,0xD865,0xD865,0x4AFB,0x4AFD,0xD865,
- 0xD865,0x98AB,0x4AFC,0xD865,0x4B2C,0x4B2F,0xD865,0x4B2B,0xD865,0x4B33,
- 0x4B34,0x98FB,0xD866,0x9AAC,0x9AAE,
- 2, /* first low-surrogate */
- 0xDD63,0xDED3,0xDEDA,0xDED5, 0, 0, 0, 0,
- 0,0xDEEE, 0,0xDEFC,0xDC14, 0,0xDD23,0xDD22,0xDD30,0xDEB5,
- 0,0xDF38, 0,0xDF3F, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xDD68,0xDD67, 0,0xDD65,
- 0, 0,0xDC75,0xDCF7,0xDCF3,0xDCF6, 0,0xDD00, 0,0xDCFF,
- 0xDCF5, 0, 0, 0, 0, 0,0xDC92,0xDE06, 0,0xDE07,
- 0xDE6B, 0,0xDE6C, 0,0xDF93, 0,0xDF94, 0, 0, 0,
- 0xDC62,0xDC63, 0,0xDC5F,0xDC64,0xDC5B,0xDC59, 0, 0,0xDDA4,
- 0xDDAC, 0, 0,0xDEB5, 0, 0,0xDEAE, 0,0xDEC5, 0,
- 0, 0,0xDC3B,
- /* plane 4, row 34 */
- 1 | (94 << 8), /* first, last */
- 0x9AAA,0x4BE8,0xD866,0xD867,0xD867,0xD867,0xD867,0xD867,0x9B5C,
- 0xD867,0xD867,0x4D5D,0x50D2,0x3485,0x3488,0xD840,0xD840,0x348E,0x3484,
- 0xD840,0x50DF,0xD840,0x3483,0xD840,0xD840,0xD841,0xD841,0x3502,0xD841,
- 0x3506,0x3505,0xD841,0x34FE,0x3501,0x3500,0xD841,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0x35E7,0x5619,0xD843,0xD843,0xD843,0x35E6,0xD843,0x35ED,
- 0x35E2,0x35EB,0xD843,0x35E8,0x35EC,0x560A,0x3624,0x589A,0xD845,0x3662,
- 0xD844,0x3661,0x3660,0x3664,0x368B,0xD845,0xD845,0xD845,0xD845,0xD846,
- 0x3719,0x3716,0x3718,0x3722,0xD846,0x371D,0x3717,0x371E,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0x3769,0x376A,0xD846,0x376C,0x377A,0x378A,
- 0xD847,0xD847,0xD847,0x379C,0xD847,
- 3, /* first low-surrogate */
- 0xDEBF,0xDC2B,0xDC84,0xDC80,0xDD4D,0xDD4F, 0,
- 0xDD4C,0xDF92, 0, 0, 0, 0,0xDFAE,0xDF79, 0, 0,
- 0xDF71, 0,0xDFB3, 0,0xDF2C,0xDF77,0xDD2F,0xDFC3, 0,0xDFCD,
- 0, 0,0xDFC9, 0, 0, 0,0xDFCE,0xDCA5,0xDCA0,0xDCFE,
- 0xDD59,0xDE9A, 0, 0,0xDEE4,0xDED7,0xDEDC, 0,0xDEE7, 0,
- 0, 0,0xDEE5, 0, 0, 0, 0, 0,0xDC14, 0,
- 0xDFF1, 0, 0, 0, 0,0xDDB6,0xDE6E,0xDE6C,0xDE81,0xDC42,
- 0, 0, 0, 0,0xDC1A, 0, 0, 0,0xDC27,0xDC25,
- 0xDC17,0xDC1C,0xDC3D,0xDC20, 0, 0,0xDE81, 0, 0, 0,
- 0xDC09,0xDCC6,0xDCC4, 0,0xDCC5,
- /* plane 4, row 35 */
- 1 | (94 << 8), /* first, last */
- 0x37FD,0x37F9,0xD847,0x37FF,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0x37FC,0xD847,0x5D85,0x37FB,0x3802,0x385F,0x5E56,0x385E,0x385D,0x385C,
- 0xD848,0x5E51,0x3892,0xD848,0xD848,0x3894,0x3895,0x38D1,0xD849,0x38F1,
- 0xD849,0x5FB1,0xD849,0xD849,0x3977,0x396F,0xD849,0xD849,0x3987,0x397D,
- 0x397C,0x397E,0x3985,0x398B,0x3986,0x3980,0xffff,0xD849,0x3978,0xD87E,
- 0xD84A,0xD84A,0x39BA,0xD84A,0x3A33,0xD84B,0x3A2D,0xD84B,0xD84B,0xD84B,
- 0x3A37,0x645A,0x6463,0xD84B,0xD84B,0x3A2E,0xD84B,0xD84B,0x3A3D,0xD84B,
- 0x3AA0,0xD84B,0xD84B,0x3AA3,0xD84C,0x669B,0xD84C,0x66A3,0x3B0E,0x669E,
- 0xD84C,0x3BB6,0xD84D,0x3BAB,0x3BAD,0x3BA6,0xD84D,0x69B8,0x3BAA,0x69BA,
- 0x3BB1,0xD84D,0x3BA8,0x3BAF,0x3BB0,
- 3, /* first low-surrogate */
- 0xDEEF, 0,0xDEDF,0xDEDE,0xDEEE,0xDEF5,0xDEEC,
- 0,0xDEDD, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xDD22, 0, 0,0xDE97,0xDE95, 0, 0, 0,0xDCA9, 0,
- 0xDD53, 0,0xDD56,0xDD55, 0, 0,0xDFE3,0xDFE2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xDFA9, 0,0xDCAB,
- 0xDC33,0xDC0A, 0,0xDE59, 0,0xDCBC, 0,0xDCC4,0xDCC7,0xDCC6,
- 0, 0, 0,0xDCB8,0xDCDA, 0,0xDCB7,0xDCC0, 0,0xDCCD,
- 0,0xDFBC,0xDFAB, 0,0xDC86, 0,0xDE5A, 0, 0, 0,
- 0xDF43, 0,0xDDAC, 0, 0, 0,0xDDBE, 0, 0, 0,
- 0,0xDDAB,
- /* plane 4, row 36 */
- 1 | (94 << 8), /* first, last */
- 0x3BA7,0x3BB2,0x3B9D,0x3BA5,0x3BB5,0xD846,0x69C7,0x69D7,0xD84E,
- 0x3C41,0xD84E,0xD84E,0x6B70,0xD84E,0xD84E,0x3C72,0x6B9D,0x3C6F,0x3C71,
- 0xD84E,0x3C85,0xD84E,0xD84E,0x3CA4,0x3CA5,0x3CA6,0xD84E,0x3CA8,0xD84E,
- 0xD84E,0x3CA3,0xD84F,0xD84F,0xD84F,0x6F16,0x6F24,0xD84F,0x3D43,0xD84F,
- 0xD84F,0x3D3D,0x3D45,0xD84F,0xD84F,0x3D44,0xD84F,0xD84F,0xD84F,0xD84F,
- 0x6F45,0xD84F,0xD84F,0xD850,0x3DE3,0x7179,0xffff,0x3DDF,0x3DE4,0x717A,
- 0x3DE5,0xD850,0x7254,0x3E22,0x3E4A,0xD851,0x3E49,0x3E44,0x3E4B,0x3E87,
- 0x3E89,0x3E92,0x3E91,0x3E90,0x3E8E,0xD852,0xD852,0xD852,0xD87E,0x3F12,
- 0x3F10,0x3F11,0xD852,0x3F32,0x3F34,0x3F37,0x3F33,0x3F36,0x3F35,0x3F65,
- 0xD853,0x757C,0x757B,0xD853,0x7612,
- 6, /* first low-surrogate */
- 0xDF3E, 0, 0,0xDCF9,
- 0,0xDCF3,0xDCF7, 0,0xDE45,0xDE48, 0, 0, 0, 0,
- 0xDE44, 0,0xDEAF,0xDEB1, 0, 0, 0,0xDFCF, 0,0xDFCB,
- 0xDFCD, 0,0xDC50,0xDEEC,0xDF1A, 0, 0,0xDED8, 0,0xDED0,
- 0xDED1, 0, 0,0xDE7B,0xDED2, 0,0xDED4,0xDEE7,0xDEDF,0xDEDE,
- 0,0xDED9,0xDECF,0xDF0D, 0, 0, 0, 0, 0, 0,
- 0,0xDF38, 0, 0, 0,0xDEA9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xDC3E,0xDC46,0xDDED,0xDD30, 0,
- 0, 0,0xDF6C, 0, 0, 0, 0, 0, 0, 0,
- 0xDCAC, 0, 0,0xDDC9,
- /* plane 4, row 37 */
- 1 | (94 << 8), /* first, last */
- 0x3FB0,0xD853,0x3FAF,0x3FAA,0xD853,0xD853,0xD853,0x3FAB,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0x3FF3,0xD854,0x3FF4,0xD854,
- 0x76B6,0x76E0,0x4008,0x404E,0x4055,0x404B,0xD854,0xD854,0x404D,0x7773,
- 0xD854,0x4052,0x7772,0x404C,0x7770,0x4050,0x4053,0xD854,0x4051,0xD854,
- 0xD854,0xD854,0x4089,0xD854,0x4095,0x40CC,0x40C8,0x40CE,0xD855,0x40CA,
- 0xD855,0x789D,0xD855,0x40CD,0xD855,0x415C,0x4167,0x4169,0x4165,0x4162,
- 0xD856,0x7A27,0x7A35,0xD87E,0x41AA,0xD856,0xD856,0x41D2,0x7BA2,0x4203,
- 0x420C,0xD856,0x4209,0x4206,0x4205,0x7B89,0xD856,0x420B,0x4208,0xD856,
- 0x7BA5,0xD856,0x428E,0xD857,0x7CB6,0x42E8,0xD858,0xD858,0xD858,0x42EA,
- 0xD858,0x7DA5,0x7DC3,0xD858,0x42E9,
- 2, /* first low-surrogate */
- 0xDE12, 0, 0,0xDDFD,0xDE01,0xDE11, 0,0xDE89,
- 0xDE05,0xDDFE,0xDE0B,0xDE20,0xDE04,0xDF88, 0,0xDC02, 0,0xDC03,
- 0, 0, 0, 0, 0, 0,0xDE29,0xDE3B, 0, 0,
- 0xDE06, 0, 0, 0, 0, 0, 0,0xDE03, 0,0xDF78,
- 0xDF79,0xDF7D, 0,0xDF7F, 0, 0, 0, 0,0xDD32, 0,
- 0xDD00, 0,0xDD22, 0,0xDEA9, 0, 0, 0, 0, 0,
- 0xDC04, 0, 0,0xDD59, 0,0xDDB8,0xDE9B, 0, 0, 0,
- 0,0xDF92, 0, 0, 0, 0,0xDF8F, 0, 0,0xDF98,
- 0,0xDFAE, 0,0xDE9D, 0, 0,0xDC49,0xDC50,0xDC46, 0,
- 0xDC4E, 0, 0,0xDC55,
- /* plane 4, row 38 */
- 1 | (94 << 8), /* first, last */
- 0x42EB,0xD858,0x42F0,0xD858,0x434B,0x7FAB,0x4373,0x4375,0x4392,
- 0x4391,0x4393,0x8025,0x43A7,0x43A6,0x43A8,0x43AA,0xD859,0x43A9,0x8059,
- 0x43BB,0x43BC,0x43BA,0x43BD,0x4427,0x8185,0xD859,0x4424,0x441E,0x441F,
- 0x441D,0x4420,0x4423,0x4429,0x4422,0xD859,0xD859,0x441C,0x818E,0x4428,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD85A,0xD85A,0x4471,0x4473,0x4472,
- 0xD85A,0x4502,0xD85B,0xD85B,0xD85B,0x44FE,0x84BE,0xD85B,0xD85B,0xD85B,
- 0x4508,0xD85B,0xD85B,0xD85B,0x4507,0x4504,0xD85B,0xD85B,0x4500,0x44FC,
- 0xD85B,0x4544,0xD85B,0x44F1,0xD85B,0xD85B,0x84A6,0x4506,0xD85C,0xD85C,
- 0x45C6,0x45C3,0x45C1,0x45C2,0xD85C,0x45C4,0x45C7,0xD85C,0x45BF,0x45D2,
- 0xD85C,0x45CA,0xD87E,0xD85C,0x872F,
- 2, /* first low-surrogate */
- 0xDC64, 0,0xDE38, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xDCFE, 0, 0,
- 0, 0, 0, 0, 0, 0,0xDFA6, 0, 0, 0,
- 0, 0, 0, 0, 0,0xDF9C,0xDF99, 0, 0, 0,
- 0xDFB5,0xDFA3,0xDFA0,0xDFA7,0xDF9B,0xDDDF,0xDDE1, 0, 0, 0,
- 0xDE4D, 0,0xDDF3,0xDD6F,0xDD69, 0, 0,0xDD6B,0xDD78,0xDD87,
- 0,0xDD85,0xDD82,0xDD90, 0, 0,0xDD80,0xDD67, 0, 0,
- 0xDD61, 0,0xDD93, 0,0xDDF2,0xDD86, 0, 0,0xDDCD,0xDDC4,
- 0, 0, 0, 0,0xDF0F, 0, 0,0xDF0D, 0, 0,
- 0xDF73, 0,0xDDBA,0xDF0A,
- /* plane 4, row 39 */
- 1 | (94 << 8), /* first, last */
- 0xD85C,0xD85C,0x4613,0xD85D,0x4630,0x463E,0x4639,0xD85D,0xD85D,
- 0x463C,0x463F,0xD85D,0x4634,0x463D,0xD85D,0xD85D,0x4638,0xD85D,0xD85D,
- 0xD85D,0x89A0,0x4682,0xD85E,0x4683,0xD85E,0x469B,0xD85E,0x46E0,0x46DD,
- 0xD85E,0xD85E,0x46DE,0xD85E,0x46E3,0x46E5,0xD85E,0x8A97,0x46E2,0xD85E,
- 0xD85E,0xD85E,0x46DF,0xD85E,0x472E,0xD85E,0x4737,0x4738,0xD85E,0xD85E,
- 0xD85F,0xD85F,0x8C8B,0xD85F,0x3562,0xD85F,0x4794,0x4793,0x47AB,0x47AD,
- 0xD85F,0xD85F,0x47F5,0x47F7,0xD860,0x47F6,0x47F8,0xD860,0x47FB,0x47F9,
- 0x4858,0x485A,0xD860,0x4859,0x8F0F,0x4885,0x48A4,0x48D8,0x48D9,0xD861,
- 0x48DD,0x48C8,0xD861,0x48FA,0x48FB,0x9275,0x4927,0x929F,0x492A,0x4925,
- 0xD862,0x4928,0xD863,0xD863,0xD863,
- 1, /* first low-surrogate */
- 0xDF08,0xDF13, 0,0xDDF8, 0, 0, 0,0xDEAB,0xDEA8,
- 0, 0,0xDEA5, 0, 0,0xDEC3,0xDEA4, 0,0xDED4,0xDEBA,
- 0xDFF1, 0, 0,0xDC3F, 0,0xDCEA, 0,0xDDF7, 0, 0,
- 0xDDFA,0xDDF5, 0,0xDDFE, 0, 0,0xDE00, 0, 0,0xDE02,
- 0xDDFB,0xDE07, 0,0xDE1A, 0,0xDFB8, 0, 0,0xDFE9,0xDFEB,
- 0xDC50,0xDC4F, 0,0xDD86, 0,0xDD8E, 0, 0, 0, 0,
- 0xDEF0,0xDEFB, 0, 0,0xDC42, 0, 0,0xDC85, 0, 0,
- 0, 0,0xDF05, 0, 0, 0, 0, 0, 0,0xDF4B,
- 0, 0,0xDF63, 0, 0, 0, 0, 0, 0, 0,
- 0xDD99, 0,0xDC81,0xDD17,0xDD10,
- /* plane 4, row 40 */
- 1 | (94 << 8), /* first, last */
- 0xD863,0x95A6,0x4995,0x969A,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD864,0x4A0F,0x4A11,0xD864,0xD864,0x4A10,0xD864,0x4A15,
- 0x4A13,0x9757,0xD864,0x4A47,0x4A46,0xD864,0x4A59,0x4A5B,0xD864,0x4A5E,
- 0xD864,0xD864,0x4A5A,0x4A91,0x4A92,0x4A90,0x4A93,0xD865,0x97F7,0x4ABE,
- 0xD865,0xD865,0xD865,0x4ABC,0x4ABB,0x4AB7,0x4AB9,0xD865,0x4B01,0x4AFE,
- 0xD865,0xD865,0x4B02,0xD865,0x4AFF,0x98B0,0xD865,0x4B00,0xD865,0x4B37,
- 0x4B3A,0x4B6F,0x4B77,0x4B79,0x99C6,0xD866,0x4BC8,0xD866,0xD866,0xD866,
- 0xD866,0x4BF2,0xD866,0x4BF1,0x4BF0,0x9B62,0xD867,0x4C34,0xD867,0xD867,
- 0xD867,0xD868,0xD868,0x4D2C,0x4D2D,0xD868,0xD868,0xD87E,0xD869,0x50FA,
- 0xD840,0x3491,0xD840,0x3494,0xD840,
- 1, /* first low-surrogate */
- 0xDD12, 0, 0, 0,0xDEFA,0xDEF3,0xDEF2,0xDEF5,0xDEF6,
- 0xDFBB,0xDFC2,0xDCA7, 0, 0,0xDCA8,0xDCA3, 0,0xDCAA, 0,
- 0, 0,0xDDDC, 0, 0,0xDE0F, 0, 0,0xDE79, 0,
- 0xDE7F,0xDE85, 0, 0, 0, 0, 0,0xDC1B, 0, 0,
- 0xDC77,0xDC76,0xDC98, 0, 0, 0, 0,0xDC7A, 0, 0,
- 0xDDBC,0xDDBA, 0,0xDDB6, 0, 0,0xDDB4, 0,0xDECF, 0,
- 0, 0, 0, 0, 0,0xDC7B, 0,0xDE1C,0xDE21,0xDE1D,
- 0xDEC0, 0,0xDEFF, 0, 0, 0,0xDD56, 0,0xDFA1,0xDFA2,
- 0xDFA6,0xDE56,0xDE57, 0, 0,0xDF01,0xDFED,0xDE1C,0xDDF2, 0,
- 0xDFB8, 0,0xDFC0, 0,0xDFB7,
- /* plane 4, row 41 */
- 1 | (94 << 8), /* first, last */
- 0xD840,0x34C4,0x350A,0xD841,0x5285,0xD842,0x3552,0xD842,0x3559,
- 0x366F,0xD843,0x35F2,0x35F4,0x5643,0xD843,0x35F1,0x563C,0xD843,0x366A,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD846,0x3724,0xD846,0x3723,0xD846,
- 0xD846,0xD846,0x3727,0xD846,0xD846,0x376D,0x5BED,0x376E,0x376F,0xD846,
- 0xD846,0x5C35,0x379F,0x380A,0x3806,0x380E,0xD847,0x380D,0x3805,0xD847,
- 0xD847,0x380B,0x3810,0x382E,0xD848,0xD848,0xD848,0xD848,0xD848,0x3896,
- 0x3897,0x38C4,0x5F47,0x38C5,0xD849,0x38D2,0xD849,0xD849,0xD849,0x3981,
- 0xD84A,0x398E,0x3990,0x398F,0xD84A,0x3991,0x3995,0x3993,0xD849,0x616D,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0x3A3B,0x3A48,0xD84B,0xD84B,0x3A46,
- 0x3A47,0xD84B,0xD84B,0xD84B,0x3A4C,
- 1, /* first low-surrogate */
- 0xDFE1, 0, 0,0xDFE8, 0,0xDCB2, 0,0xDEAE, 0,
- 0,0xDF7E, 0, 0, 0,0xDF76, 0, 0,0xDF96, 0,
- 0xDC20,0xDC21,0xDC23,0xDC29,0xDE77,0xDC51, 0,0xDC56, 0,0xDC88,
- 0xDC59,0xDC55, 0,0xDD97,0xDD98, 0, 0, 0, 0,0xDEA1,
- 0xDEA3, 0, 0, 0, 0, 0,0xDF0A, 0, 0,0xDF3D,
- 0xDF0C, 0, 0, 0,0xDD3D,0xDD39,0xDEB0,0xDEB2,0xDEAE, 0,
- 0, 0, 0, 0,0xDC20, 0,0xDD6E,0xDD6D,0xDD6A, 0,
- 0xDC32, 0, 0, 0,0xDC39, 0, 0, 0,0xDFA3, 0,
- 0xDC7F,0xDC35,0xDC3D,0xDDF4,0xDDF5, 0, 0,0xDD48,0xDD28, 0,
- 0,0xDD27,0xDD32,0xDD2C,
- /* plane 4, row 42 */
- 1 | (94 << 8), /* first, last */
- 0xD84B,0x3A4A,0x3A50,0x3A43,0xD84B,0xD84B,0xD87E,0x3A49,0x3AA6,
- 0x3AA5,0x3AA4,0xD84B,0xD84C,0x3AB9,0xD84C,0x3ACE,0x3ACF,0x3B13,0xD84C,
- 0xD84C,0xD84D,0x3BC6,0x3BC5,0x3BCA,0x3BD9,0x3BC1,0xD84D,0xD84D,0x69F5,
- 0xD84D,0xD84D,0xD84D,0xD84D,0x3BCB,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0x6A03,0xD84D,0xD84D,0x6A65,0x3C42,0xD84E,0x6B75,0x3C74,0x3C73,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0x6F8A,0x6F56,0x3D52,0xD84F,0xD84F,
- 0xD84F,0x3D50,0xD84F,0x3D4B,0xD84F,0x3D4C,0x3D6D,0xD84F,0x6F98,0xD84F,
- 0xD84F,0xD84F,0x3D4F,0x6F68,0x3DF0,0xD850,0x7234,0x7245,0x3E4D,0x3E4C,
- 0xD851,0x3E4F,0x3E4E,0x3E50,0xD851,0x735C,0x3E96,0x7356,0xD852,0xD852,
- 0x3E97,0x3E95,0x3E98,0xD852,0xD852,
- 1, /* first low-surrogate */
- 0xDD2E, 0, 0, 0,0xDD23,0xDD31,0xDCC5, 0, 0,
- 0, 0,0xDFC9,0xDC89, 0,0xDCBB, 0, 0, 0,0xDF97,
- 0xDF93,0xDE28, 0, 0, 0, 0, 0,0xDE18,0xDE3B, 0,
- 0xDE27,0xDE24,0xDE1B,0xDE31, 0,0xDE26,0xDEA3,0xDE3F,0xDE22,0xDE19,
- 0,0xDE41,0xDE2B, 0, 0,0xDD0C, 0, 0, 0,0xDE4E,
- 0xDEB9,0xDEFA,0xDFE9,0xDFE8,0xDFE4, 0, 0, 0,0xDF5F,0xDF5D,
- 0xDF52, 0,0xDF74, 0,0xDF46, 0, 0,0xDFAA, 0,0xDF4A,
- 0xDF59,0xDF4B, 0, 0, 0,0xDF50, 0, 0, 0, 0,
- 0xDED0, 0, 0, 0,0xDECC, 0, 0, 0,0xDC64,0xDC65,
- 0, 0, 0,0xDC5C,0xDE15,
- /* plane 4, row 43 */
- 1 | (94 << 8), /* first, last */
- 0x3EEC,0x3EEB,0x3F13,0x3F14,0x3F38,0x3F3A,0x3F39,0xD852,0x3F68,
- 0x3F67,0xD853,0xD853,0xD853,0x3FBE,0x3FBC,0xD853,0xD853,0xD853,0x3FBB,
- 0xD853,0x3FBA,0xD853,0x3FB9,0x3FB7,0xD853,0xD853,0x3FC1,0xD853,0x3FF7,
- 0xD854,0x4060,0xD854,0xD854,0x4059,0x405C,0x405A,0x4058,0xD854,0x405B,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0x405D,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0x40D4,0x40D3,0x78BF,0x40D2,0x78BD,0xD855,0x40D7,
- 0x40D1,0x78E4,0x40D5,0xD855,0xD87E,0x416D,0x416F,0x7A34,0x4175,0x416C,
- 0x4174,0xD856,0x4173,0xD856,0xD856,0x7A36,0x41AC,0xD856,0xD856,0xD856,
- 0x4210,0xD856,0xD856,0x7BBA,0x7BBC,0x420F,0x7BC8,0x4223,0x7BC3,0x421D,
- 0x7BB6,0x420E,0xD856,0xD856,0x4215,
- 8, /* first low-surrogate */
- 0xDF79, 0,
- 0,0xDCC5,0xDCB8,0xDE2C, 0, 0,0xDE37,0xDE35,0xDE31, 0,
- 0xDE2F, 0,0xDE2B, 0, 0,0xDE2D,0xDE2A, 0,0xDF95, 0,
- 0xDE3E, 0,0xDE47,0xDE45, 0, 0, 0, 0,0xDE52, 0,
- 0xDE70,0xDE50,0xDE58,0xDE51,0xDE3D, 0,0xDE41,0xDE0C,0xDE3C,0xDF86,
- 0xDF83,0xDF89,0xDFF3, 0, 0, 0, 0, 0,0xDD2D, 0,
- 0, 0, 0,0xDEC5,0xDD55, 0, 0, 0, 0, 0,
- 0,0xDC43, 0,0xDC37,0xDC45, 0, 0,0xDDE5,0xDEA6,0xDFDB,
- 0,0xDFDA,0xDFE6, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xDFF8,0xDFE9,
- /* plane 4, row 44 */
- 1 | (94 << 8), /* first, last */
- 0x7BC2,0x4213,0xD856,0xD856,0x421B,0x7BC5,0x4222,0x4226,0xD856,
- 0x7BBD,0x7BB0,0x4221,0x421C,0x4217,0xD856,0x421A,0x7BBB,0xD857,0xD857,
- 0xD857,0x4299,0xD857,0x4297,0xD858,0xD858,0x42FD,0xD858,0x42F6,0x42FE,
- 0x42F5,0x42FF,0x42F7,0xD858,0xD858,0xD858,0x4301,0x7E04,0xD858,0xD858,
- 0xD858,0x4377,0xD858,0xD858,0xD859,0xD859,0xD859,0x43AB,0xD859,0xD859,
- 0x43C0,0xD859,0x4431,0x442E,0xD87E,0xD859,0x442C,0xD859,0xD859,0x4432,
- 0x442F,0x442B,0x442D,0x4433,0xD85A,0xD85A,0x81F1,0x4457,0x445C,0x447B,
- 0xD85A,0xD85A,0x447A,0xD85B,0x8522,0x4513,0x451E,0x4517,0x4520,0x452A,
- 0x4511,0x4515,0x450F,0x4518,0x8538,0xD85B,0xD85B,0x452C,0x8532,0xD87E,
- 0x8510,0xD85B,0xD85B,0x451C,0xD85B,
- 3, /* first low-surrogate */
- 0xDFE8,0xDFF6, 0, 0, 0, 0,0xDFE7,
- 0, 0, 0, 0, 0,0xDFD5, 0, 0,0xDED3,0xDEC7,
- 0xDED1, 0,0xDEC3, 0,0xDC80,0xDC98, 0,0xDC84, 0, 0,
- 0, 0, 0,0xDC97,0xDC83,0xDC81, 0, 0,0xDC8C,0xDE42,
- 0xDFAB, 0,0xDFA3,0xDFA6,0xDC5C,0xDC69,0xDC67, 0,0xDD8B,0xDDA8,
- 0,0xDFD8, 0, 0,0xDD89,0xDFDC, 0,0xDFE0,0xDFE5, 0,
- 0, 0, 0, 0,0xDD18,0xDD19, 0, 0, 0, 0,
- 0xDE5F,0xDE5E, 0,0xDE02, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xDE12,0xDE36, 0, 0,0xDDA8,
- 0,0xDE23,0xDE03, 0,0xDE00,
- /* plane 4, row 45 */
- 1 | (94 << 8), /* first, last */
- 0x4529,0xD85B,0xD85B,0x4512,0x854F,0x4597,0xD85C,0x8772,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0x45D4,0x45D0,0x877C,0xD85C,0xD87E,
- 0xD85C,0xD85C,0x45D3,0x4614,0xD85D,0x4646,0x4645,0xD85D,0x4643,0xD85D,
- 0x890D,0x4644,0x4648,0xD85D,0x4647,0xD85D,0xD85D,0xD85D,0x8908,0x4649,
- 0x4685,0xD85E,0x4684,0xD85E,0x469D,0xD85E,0x469E,0x46A0,0xD85E,0x469C,
- 0xD85E,0x469F,0xD85E,0x46F7,0x46EA,0xD85E,0x46EF,0x46E9,0x46F3,0x46F0,
- 0x46EB,0xD85E,0x46EC,0x46F2,0x46F5,0x46EE,0xD85E,0xD85E,0x473A,0x474B,
- 0xD85F,0x474A,0x474C,0xD85F,0xD85F,0xD85F,0x4779,0x477B,0x4778,0xD85F,
- 0xD85F,0x47B5,0xD85F,0x47B4,0x47B7,0x8D9E,0x4809,0x47FE,0x4808,0x4807,
- 0xD860,0xD860,0xD860,0x4806,0x4804,
- 2, /* first low-surrogate */
- 0xDE46,0xDE61, 0, 0, 0,0xDF84, 0,0xDF6B,
- 0xDF62,0xDF56,0xDF6A,0xDF52,0xDF55, 0, 0, 0,0xDF61,0xDDBB,
- 0xDF58,0xDF77, 0, 0,0xDED7, 0, 0,0xDEDE, 0,0xDEDF,
- 0, 0, 0,0xDED1, 0,0xDEE2,0xDEE1,0xDEDD, 0, 0,
- 0,0xDC4B, 0,0xDC4E, 0,0xDCFC, 0, 0,0xDCFA, 0,
- 0xDCFB, 0,0xDCFE, 0, 0,0xDE31, 0, 0, 0, 0,
- 0,0xDE38, 0, 0, 0, 0,0xDE3A,0xDFBB, 0, 0,
- 0xDC59, 0, 0,0xDCDB,0xDCDF,0xDCE2, 0, 0, 0,0xDD9E,
- 0xDDA1, 0,0xDF10, 0, 0, 0, 0, 0, 0, 0,
- 0xDC76,0xDC7F,0xDC7D,
- /* plane 4, row 46 */
- 1 | (94 << 8), /* first, last */
- 0x4805,0x47FF,0x480B,0xD860,0xD860,0x483B,0x485D,0x485C,0x485F,
- 0x485E,0x8F28,0xD860,0x8F21,0x4883,0xD861,0xD861,0x48A7,0x9066,0x906C,
- 0xD861,0x48A8,0xD861,0xD861,0xD861,0xD861,0xD861,0x90F6,0x48E0,0x48DF,
- 0x48FE,0x48FC,0x48FF,0x48FD,0xD862,0x492C,0x92EC,0x92BA,0x92E3,0x92BD,
- 0x499D,0xD863,0x95B4,0xD863,0x4A40,0xD864,0xD864,0x4A5F,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0x97D1,0xD865,0x4AC0,0x9823,0xD865,
- 0x4AC1,0x4AC6,0xD865,0xD865,0x4B04,0x4B05,0xD865,0x990B,0x4B3E,0x4B3D,
- 0x4B40,0x4B3F,0xD865,0x4B42,0xD865,0xD865,0xD865,0x4B84,0x4B82,0x4B7F,
- 0x4B85,0xD866,0xD866,0x4BCC,0x9AB2,0x4BCB,0x4BCD,0xD866,0xD866,0x9ADB,
- 0xD866,0x4BF5,0xD866,0xD866,0xD866,
- 4, /* first low-surrogate */
- 0xDC82,0xDE57, 0, 0, 0, 0,
- 0, 0,0xDF2E, 0, 0,0xDD8B,0xDD8D, 0, 0, 0,
- 0xDD90, 0,0xDEEC,0xDF6F,0xDF6B,0xDF71,0xDF78, 0, 0, 0,
- 0, 0, 0, 0,0xDDAD, 0, 0, 0, 0, 0,
- 0,0xDD2F, 0,0xDF78, 0,0xDDF8,0xDE19, 0,0xDE9B,0xDE94,
- 0xDE97,0xDE99,0xDFA6,0xDFA4,0xDFA7, 0,0xDC95, 0, 0,0xDC90,
- 0, 0,0xDC9B,0xDDC4, 0, 0,0xDDC6, 0, 0, 0,
- 0, 0,0xDEE3, 0,0xDEDF,0xDEDD,0xDEE7, 0, 0, 0,
- 0,0xDE2D,0xDE2C, 0, 0, 0, 0,0xDE34,0xDE38, 0,
- 0xDF1D, 0,0xDF1A,0xDF1B,0xDF14,
- /* plane 4, row 47 */
- 1 | (94 << 8), /* first, last */
- 0x9AF0,0xD866,0xD867,0x4C20,0x4C21,0xD867,0xD867,0x4C37,0x4C3E,
- 0x9B73,0x4C3D,0x9B6E,0xD867,0xD867,0xD867,0x9B65,0xD867,0x4C3C,0xD867,
- 0x4C38,0x9B6A,0xD867,0x9B6D,0xD867,0x4C3B,0xD867,0x4CB0,0xD867,0xD867,
- 0xD867,0x4CAD,0x4CB2,0x4CB8,0x9D0B,0xD867,0x4CAF,0xD867,0xD867,0x4D1A,
- 0x9E76,0x4D20,0x4D21,0x4D30,0x9EA8,0x4D2F,0xD868,0xD868,0xD868,0xD868,
- 0x4D5F,0x4D60,0xD869,0xD869,0x9F11,0xD869,0xD840,0x348A,0x5119,0x349C,
- 0xD840,0x349A,0xD840,0xD840,0xD841,0x350C,0x350B,0x350D,0x5292,0xD842,
- 0xD843,0x35FE,0xD843,0xD843,0x35FF,0x35FB,0x35FC,0x3609,0xD843,0x3600,
- 0xD843,0x5675,0xD843,0xD843,0xD843,0xD844,0xD845,0xD845,0x3671,0xD845,
- 0xD845,0x596F,0xD840,0xD846,0xD846,
- 2, /* first low-surrogate */
- 0xDF17,0xDC21, 0, 0,0xDCAA,0xDCA1, 0, 0,
- 0, 0, 0,0xDD63,0xDD79,0xDD60, 0,0xDD62, 0,0xDD61,
- 0, 0,0xDD70, 0,0xDD6A, 0,0xDFC8, 0,0xDFC5,0xDFBE,
- 0xDFC2, 0, 0, 0, 0,0xDFC7, 0,0xDFB0,0xDFCA, 0,
- 0, 0, 0, 0, 0, 0,0xDF0D,0xDF07,0xDF96,0xDFEF,
- 0, 0,0xDC1E,0xDC1D, 0,0xDD90,0xDFEB, 0, 0, 0,
- 0xDFEE, 0,0xDFEF,0xDFEC,0xDFFA, 0, 0, 0, 0,0xDD04,
- 0xDFD3, 0,0xDFD1,0xDFFA, 0, 0, 0, 0,0xDFC8, 0,
- 0xDFD5, 0,0xDFCD,0xDFD2,0xDFFB,0xDE2A,0xDC88,0xDC61, 0,0xDC63,
- 0xDC62, 0,0xDC57,0xDCC8,0xDC98,
- /* plane 4, row 48 */
- 1 | (94 << 8), /* first, last */
- 0x372B,0xD846,0xD847,0xD847,0x3814,0x3811,0x3812,0xD848,0x3863,
- 0xD848,0x386E,0x389A,0xD848,0x389B,0xD848,0xD849,0x38C8,0xD849,0xD849,
- 0x38F6,0xD84A,0xD84A,0x61A5,0x398C,0x3997,0x39A2,0x61A0,0xD84A,0xD84A,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0x3A54,0xD84B,0xD84B,
- 0xD84B,0x3AA8,0xD84B,0xD84B,0x3AA9,0xD84C,0x65B4,0x65D8,0x66C2,0x3B18,
- 0x3B17,0x3B1D,0xD84C,0xD84C,0x3B31,0xD84D,0xD84D,0x3BD8,0x3BD5,0xD84D,
- 0xD84D,0xD84D,0x3BE1,0xD84D,0x3BD4,0xD84D,0xD84D,0xD84D,0x3BE3,0xD84D,
- 0x3C44,0x3C45,0xD84E,0xD84E,0x3C76,0x3C75,0xD84E,0x6BA8,0x3C88,0x3CAA,
- 0xD84E,0x3CAB,0x3CAC,0xD84E,0x3D57,0x6F83,0x3D60,0x3D5D,0x3D6B,0xD84F,
- 0x3D63,0x3D67,0xD84F,0x3D5E,0xD84F,
- 2, /* first low-surrogate */
- 0xDEC1,0xDF3F,0xDF41, 0, 0, 0,0xDD52, 0,
- 0xDD5E, 0, 0,0xDEC7, 0,0xDF70,0xDC27, 0,0xDC71,0xDCB0,
- 0,0xDC42,0xDC43, 0, 0, 0, 0, 0,0xDC57,0xDC9D,
- 0xDD89,0xDD8D,0xDD8B,0xDD80,0xDD92,0xDD8A,0xDDC8, 0,0xDD8F,0xDD93,
- 0xDD91, 0,0xDFF2,0xDFDE, 0,0xDCC8, 0, 0, 0, 0,
- 0, 0,0xDEA7,0xDEA1, 0,0xDE8C,0xDE7F, 0, 0,0xDE7B,
- 0xDE95,0xDE99, 0,0xDE8E, 0,0xDEDA,0xDE8A,0xDE9C, 0,0xDE7E,
- 0, 0,0xDD1A,0xDE55, 0, 0,0xDE60, 0, 0, 0,
- 0xDFFB, 0, 0,0xDFFD, 0, 0, 0, 0, 0,0xDFD0,
- 0, 0,0xDFC5, 0,0xDFD2,
- /* plane 4, row 49 */
- 1 | (94 << 8), /* first, last */
- 0xD850,0x6FC5,0x71CD,0x3DF9,0x3DF3,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0x3DF6,0xD851,0x729C,0x3E51,0x3E53,0x3E52,0xD852,0x3E9B,0xD852,
- 0x3E9C,0xD852,0xD852,0x3EF7,0x7499,0x748F,0x7491,0xD852,0xD852,0xD852,
- 0xD852,0x3F3B,0xD852,0x3F3E,0x3F3D,0xD853,0x3F69,0xD853,0xD853,0xD853,
- 0x3FC3,0x3FC4,0x3FC7,0xD853,0xD853,0x7639,0x3FC6,0x762E,0x3FC8,0xD853,
- 0xD853,0xD853,0x769F,0x76A0,0x3FE6,0x3FF8,0xD854,0xD854,0x4007,0xD854,
- 0x4064,0x4068,0xD854,0x7794,0x4065,0x77AE,0xD854,0xD854,0x4069,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0x40DA,0x40E0,0x78E6,0xD855,
- 0x40DE,0xD855,0xD855,0xD855,0x411C,0x411D,0x411A,0xD855,0x417B,0x417A,
- 0x417C,0xD856,0x4178,0x4177,0xD856,
- 1, /* first low-surrogate */
- 0xDC11, 0, 0, 0, 0,0xDFAD,0xDFA4,0xDFA9,0xDFB0,
- 0xDF9D, 0,0xDD98, 0, 0, 0, 0,0xDC92, 0,0xDC8A,
- 0,0xDC8D,0xDC96, 0, 0, 0, 0,0xDE45,0xDE4B,0xDF0F,
- 0xDF16, 0,0xDF8A, 0, 0,0xDCC9, 0,0xDCC8,0xDCCA,0xDE64,
- 0, 0, 0,0xDE5D,0xDE63, 0, 0, 0, 0,0xDE88,
- 0xDF3A,0xDF39, 0, 0, 0, 0,0xDC17,0xDC93, 0,0xDC95,
- 0, 0,0xDE76, 0, 0, 0,0xDE80,0xDE7B, 0,0xDE48,
- 0xDEA8,0xDE88,0xDF8B,0xDF8A,0xDF8C,0xDFFC, 0, 0, 0,0xDD58,
- 0,0xDD51,0xDD55,0xDD53, 0, 0, 0,0xDEDC, 0, 0,
- 0,0xDC5C, 0, 0,0xDC65,
- /* plane 4, row 50 */
- 1 | (94 << 8), /* first, last */
- 0xD87E,0x41B1,0xD856,0x41B2,0x41B0,0xD856,0x7ABC,0xD856,0x4236,
- 0xD857,0x422E,0xD857,0x7BD6,0xD857,0x4234,0xD857,0xD857,0xD857,0xD857,
- 0x422A,0xD857,0x4233,0x422D,0x422F,0x4231,0x422B,0x4232,0xD857,0x4235,
- 0xD857,0xD857,0xD856,0xD857,0xD857,0xD857,0x7CCF,0xD858,0xD858,0x4308,
- 0xD858,0x4306,0xD858,0xD858,0x7E18,0xD858,0x434D,0x4361,0xD858,0xD858,
- 0xD858,0x4378,0xD858,0x4394,0x4395,0xD859,0xD859,0xD859,0x43C1,0x43C3,
- 0x806D,0xD85A,0x4439,0xD85A,0xD85A,0x443A,0x443B,0x4435,0x4436,0xD85A,
- 0x443C,0x8190,0xD85A,0xD85A,0xD85A,0x4458,0x447C,0x447D,0x448D,0x448C,
- 0xD85B,0xD85B,0x453B,0x453F,0xD85B,0xD85B,0x4532,0x452D,0xD85B,0x452F,
- 0x4539,0x452E,0x453A,0xD85B,0x4536,
- 1, /* first low-surrogate */
- 0xDD5A, 0,0xDDEE, 0, 0,0xDDF0, 0,0xDDF2, 0,
- 0xDC35, 0,0xDC22, 0,0xDC20, 0,0xDC2D,0xDC28,0xDC26,0xDC3C,
- 0,0xDC38, 0, 0, 0, 0, 0, 0,0xDC2A, 0,
- 0xDC1A,0xDC30,0xDFE3,0xDC19,0xDEE9,0xDEE7, 0,0xDCD6,0xDCC4, 0,
- 0xDC87, 0,0xDCC7,0xDCD9, 0,0xDCDF, 0, 0,0xDF0A,0xDF01,
- 0xDFB1, 0,0xDFC1, 0, 0,0xDC76,0xDD0D,0xDD0E, 0, 0,
- 0,0xDC07, 0,0xDC09,0xDC16, 0, 0, 0, 0,0xDC0E,
- 0, 0,0xDC06,0xDD1E,0xDD4A, 0, 0, 0, 0, 0,
- 0xDEA6,0xDE91, 0, 0,0xDEB8,0xDE96, 0, 0,0xDEC5, 0,
- 0, 0, 0,0xDF0A,
- /* plane 4, row 51 */
- 1 | (94 << 8), /* first, last */
- 0x4531,0x453E,0x4538,0x8552,0x4534,0xD85B,0x4541,0xD85B,0xD85B,
- 0xD85B,0xD85B,0x4530,0xD85B,0xD85B,0xD85B,0xD85B,0x4543,0xD85B,0x8550,
- 0xD85B,0xD85C,0x4598,0xD85C,0xD85C,0x87A0,0xD85C,0xD85C,0x8786,0x45DA,
- 0x45D7,0xD85C,0xD85C,0x8795,0xD85C,0xD85C,0x878C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0x4618,0x8860,0xD87E,0xD85D,0xD85D,0x4652,0x8928,0xD85D,
- 0x464E,0x8920,0xD85D,0x464F,0x4650,0xD85E,0xD85E,0x89A8,0x4686,0x4687,
- 0x4689,0xD85E,0xD85E,0xD85E,0xD85E,0x46A2,0x46A3,0xD85E,0x46A1,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0x46F9,0x46FD,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0x473E,0x473C,0xD85E,0x474D,0xD85F,0x474E,0xD85F,0x4781,
- 0x4783,0x4782,0xD85F,0x4780,0x4788,
- 6, /* first low-surrogate */
- 0xDEB2, 0,0xDEB7,0xDEB4,
- 0xDE89,0xDE8D, 0,0xDE87,0xDEC2,0xDE9C,0xDE92, 0,0xDECA, 0,
- 0xDE8A,0xDDE0, 0,0xDDE6,0xDDE5, 0,0xDFA5,0xDFB3, 0, 0,
- 0,0xDFB5,0xDFAF, 0,0xDFB0,0xDFCC, 0,0xDFA2,0xDFBE,0xDFC6,
- 0xDFAC,0xDFAE, 0, 0,0xDDC3,0xDF08,0xDF05, 0, 0,0xDEFE,
- 0, 0,0xDF00, 0, 0,0xDC64,0xDC68, 0, 0, 0,
- 0,0xDC6A,0xDC69,0xDD0D,0xDD12, 0, 0,0xDD0F, 0,0xDE67,
- 0xDE79,0xDE72,0xDE66,0xDE7C, 0, 0,0xDE68,0xDE85,0xDE76,0xDE74,
- 0xDE71,0xDE64, 0, 0,0xDFF8, 0,0xDC6C, 0,0xDCEB, 0,
- 0, 0,0xDDB8,
- /* plane 4, row 52 */
- 1 | (94 << 8), /* first, last */
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0x47B9,0xD85F,0xD85F,0x8E3A,
- 0xD860,0xD860,0xD860,0x4811,0x480D,0x4810,0x4813,0xD860,0x483C,0x4862,
- 0x4863,0xD860,0xD861,0xD87E,0xD861,0xD861,0x4903,0x4906,0x4902,0x4901,
- 0xD862,0xD862,0x4905,0xD862,0x9194,0x9311,0xD862,0x9337,0x4936,0xD862,
- 0x4935,0x9343,0xD87E,0x49A1,0x49A3,0xD863,0xD863,0x49A0,0xD863,0x49EA,
- 0x96A6,0x49E8,0xD863,0xD863,0xD863,0xD864,0x4A21,0x4A1B,0xD864,0xD864,
- 0x4A49,0x4A48,0xD864,0x9795,0x4A62,0x4A61,0x4A64,0x4A60,0x4A63,0xD864,
- 0xD864,0x9796,0x4A66,0x4AAC,0x4AAB,0xD865,0xD865,0x4AC3,0xD865,0x4AC4,
- 0x9825,0xD865,0xD865,0x4B08,0x4B09,0x4B0A,0x4B06,0x4B07,0x4B41,0xD865,
- 0x4B45,0xD865,0x4B43,0x4B44,0x9926,
- 1, /* first low-surrogate */
- 0xDF2D,0xDF2E,0xDF28,0xDF29,0xDF31, 0,0xDF2F,0xDF2A, 0,
- 0xDCA4,0xDCB7,0xDCBF, 0, 0, 0, 0,0xDE63, 0, 0,
- 0,0xDF67,0xDDBE,0xDDE0,0xDF95,0xDF9C, 0, 0, 0, 0,
- 0xDC71,0xDC72, 0,0xDC6F, 0, 0,0xDDF1, 0, 0,0xDDE8,
- 0, 0,0xDDEA, 0, 0,0xDD49,0xDD64, 0,0xDD48, 0,
- 0, 0,0xDF2C,0xDFE1,0xDFEF,0xDCC0, 0, 0,0xDCD7,0xDCD4,
- 0, 0,0xDEAD, 0, 0, 0, 0, 0, 0,0xDEAE,
- 0xDEAC, 0, 0, 0, 0,0xDC27,0xDCAE, 0,0xDCB0, 0,
- 0,0xDCC0,0xDCC4, 0, 0, 0, 0, 0, 0,0xDF07,
- 0,0xDEFD,
- /* plane 4, row 53 */
- 1 | (94 << 8), /* first, last */
- 0x9934,0x4B47,0xD87E,0xD866,0xD866,0x4B71,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0x4B8B,0x4BD4,0x4BD3,0x4BD1,0x9ABA,0x4BD2,0xD866,
- 0xD866,0x4BF7,0x4BF8,0xD866,0xD866,0xD866,0xD866,0xD866,0xD867,0xD867,
- 0xD867,0x4C22,0xD867,0x4C45,0x4C41,0x9B81,0x4C40,0x9B8A,0xD867,0x9B7F,
- 0x4C42,0xD867,0x4CC1,0x4CC5,0xD867,0x4CBB,0x4CB9,0x4CBD,0x4CC9,0xD868,
- 0x9D11,0xD868,0x4CBF,0x4CC7,0xD867,0x4CC3,0x4D24,0x4D31,0x4D33,0xD868,
- 0x4D32,0x4D34,0x4D52,0x4D61,0x9ED9,0x4D7A,0x4D82,0x9F3C,0xD869,0x5123,
- 0xD841,0xD841,0xD841,0x512C,0xD841,0xD842,0x350F,0x5295,0xD842,0x3523,
- 0x3525,0xD844,0x3606,0x3608,0x5688,0xD844,0xD844,0xD844,0x568B,0xD844,
- 0xD844,0x367A,0x3677,0xD845,0xD845,
- 3, /* first low-surrogate */
- 0xDE04,0xDC1B,0xDC1C, 0,0xDCB2,0xDCB4,0xDCB7,
- 0xDCB1,0xDCB3,0xDCAE, 0, 0, 0, 0, 0, 0,0xDE3F,
- 0xDF36, 0, 0,0xDF31,0xDF3B,0xDF35,0xDF3A,0xDF37,0xDC22,0xDC36,
- 0xDC32, 0,0xDCC0, 0, 0, 0, 0, 0,0xDD85, 0,
- 0,0xDD89, 0, 0,0xDFE1, 0, 0, 0, 0,0xDC0A,
- 0,0xDC09, 0, 0,0xDFE8, 0, 0, 0, 0,0xDF18,
- 0, 0, 0, 0, 0, 0, 0, 0,0xDDC5, 0,
- 0xDC0D,0xDC0C,0xDC21, 0,0xDE16,0xDC0E, 0, 0,0xDC17, 0,
- 0,0xDC48, 0, 0, 0,0xDC55,0xDC49,0xDC4C, 0,0xDC4F,
- 0xDC3D, 0, 0,0xDC8A,0xDCA8,
- /* plane 4, row 54 */
- 1 | (94 << 8), /* first, last */
- 0xD845,0x372E,0xD846,0x372F,0xD846,0xD848,0x381B,0x3813,0xD847,
- 0xD847,0x3866,0xD848,0x3865,0xD845,0x38F7,0xD849,0xD84A,0x61E1,0x61D7,
- 0xD84A,0xD84A,0x399C,0xD84B,0xD84B,0x3A53,0xD84B,0xD84B,0xD84C,0xD84C,
- 0x3ABA,0x65A3,0x3B22,0x66D3,0xD84D,0xD84D,0xD84D,0x6A8B,0xD84D,0xD84D,
- 0x3BEB,0x3BDD,0xD84D,0x3BEF,0xD84D,0xD84D,0x3C47,0x3C46,0xD84E,0x3C78,
- 0x6BAC,0x3C89,0xD84F,0xD84F,0x3D68,0x3D76,0x3D74,0x3D79,0xD850,0x3D7A,
- 0x3D77,0xD87E,0x3D71,0xD850,0x3D72,0xD850,0x3DFF,0xD850,0x3E05,0xD851,
- 0xD851,0x3E54,0xD851,0xD851,0x3E9E,0x3E9F,0x7374,0xD852,0xD852,0x3EFA,
- 0xD852,0x3F44,0x3F3F,0x3F40,0xD852,0x3F42,0xD852,0xD852,0x3F51,0xD852,
- 0xD852,0xD853,0xD853,0xD853,0xD853,
- 1, /* first low-surrogate */
- 0xDE8A, 0,0xDCCB, 0,0xDCD5,0xDDD4, 0, 0,0xDF5C,
- 0xDF75, 0,0xDD61, 0,0xDE96, 0,0xDD8A,0xDCD0, 0, 0,
- 0xDC49,0xDCCF, 0,0xDDD6,0xDD7F, 0,0xDDD2,0xDDCF,0xDC06,0xDC09,
- 0, 0, 0, 0,0xDF06,0xDEF1,0xDF04, 0,0xDEFA,0xDEF4,
- 0, 0,0xDEF9, 0,0xDE8B,0xDF03, 0, 0,0xDDA2, 0,
- 0, 0,0xDC0C,0xDC0B, 0, 0, 0, 0,0xDC24, 0,
- 0,0xDD14, 0,0xDC25, 0,0xDFF6, 0,0xDFFB, 0,0xDD32,
- 0xDDFB, 0,0xDEF2,0xDEF3, 0, 0, 0,0xDC9C,0xDE72, 0,
- 0xDE74, 0, 0, 0,0xDF86, 0,0xDF8E,0xDF90, 0,0xDFCD,
- 0xDFF7,0xDCD6,0xDE84,0xDE95,0xDE8A,
- /* plane 4, row 55 */
- 1 | (94 << 8), /* first, last */
- 0x7640,0x3FCA,0xD853,0x7641,0x3FCE,0x3FC9,0xD853,0xD853,0xD854,
- 0xD854,0xD854,0x4009,0x76E8,0x406C,0x406E,0x4070,0x406D,0x406B,0x4071,
- 0x4072,0xD854,0xD854,0xD854,0x408C,0x40E4,0xD855,0x40E1,0xD855,0xD855,
- 0x78F6,0x40E7,0x7900,0x40E2,0x411F,0xD855,0xD855,0x417E,0xD856,0x4180,
- 0x7A59,0x7A55,0xD856,0x41B9,0x41B7,0x41B8,0xD856,0x41BA,0x7AF4,0xD856,
- 0x41D3,0x423F,0x7C04,0x4245,0x4241,0x7C15,0x4242,0x4243,0x423B,0x4238,
- 0xD857,0xD857,0x423A,0x7BF5,0xD857,0xD857,0x423C,0xD857,0xD857,0x423E,
- 0xD857,0xD857,0xD857,0x429E,0x429F,0x42A1,0xD857,0x429B,0x4312,0xD858,
- 0xD858,0xD858,0x4318,0x430C,0xD858,0x4362,0xD858,0x437A,0xD858,0xD859,
- 0x43AE,0x43AF,0xD859,0x43AD,0xD859,
- 3, /* first low-surrogate */
- 0xDE97, 0, 0, 0,0xDFA0,0xDFA1,0xDC22,
- 0xDCA6,0xDCA4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xDEAF,0xDEB0,0xDEBD, 0, 0,0xDD76, 0,0xDD7B,0xDD79,
- 0, 0, 0, 0, 0,0xDEEE,0xDEF1, 0,0xDC94, 0,
- 0, 0,0xDC91, 0, 0, 0,0xDE10, 0, 0,0xDEAF,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0xDC7B,0xDC77, 0, 0,0xDC80,0xDCC6, 0,0xDC7C,0xDC90, 0,
- 0xDCA3,0xDC7D,0xDCBD, 0, 0, 0,0xDF13, 0, 0,0xDD11,
- 0xDD44,0xDD0D, 0, 0,0xDF14, 0,0xDFB8, 0,0xDFB7,0xDC83,
- 0, 0,0xDD14, 0,0xDD1C,
- /* plane 4, row 56 */
- 1 | (94 << 8), /* first, last */
- 0x43C4,0x43C7,0x43C6,0x43C5,0xD859,0xD859,0x81C1,0x4440,0xD85A,
- 0xD85A,0x443F,0x4441,0xD87E,0xD85A,0xD85A,0x447F,0xD85A,0x4486,0x4481,
- 0x4480,0x448E,0x454A,0xD85B,0x4547,0xD85B,0xD85B,0x454B,0x4546,0x454E,
- 0x857D,0xD85B,0x85A5,0xD85B,0x4548,0xD85B,0x4545,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85C,0x45DB,0x45E7,0x45E4,0xD85D,0xD85D,
- 0x45E1,0xD85D,0x45E9,0xD85C,0x45E5,0x45E0,0x45E3,0xD85C,0xD85D,0xD85D,
- 0xD85C,0xD85D,0xD85D,0x45EA,0xD85C,0xD85D,0x893A,0x4654,0x4658,0x465C,
- 0xD85D,0x4655,0x468B,0x468C,0x46A6,0x46A5,0xD85E,0xD85E,0xD85E,0xD85E,
- 0x46FF,0xD85E,0xD85E,0xD85E,0xD85E,0x4730,0x4740,0x4741,0xD85F,0xD85F,
- 0x4786,0xD85F,0x47BF,0x47BD,0xD85F,
- 5, /* first low-surrogate */
- 0xDDD4,0xDDD5, 0, 0,0xDC43,
- 0xDC42, 0, 0,0xDD8A,0xDC41,0xDD4E, 0,0xDE87, 0, 0,
- 0, 0, 0,0xDF39, 0,0xDF8F,0xDF2A, 0, 0, 0,
- 0,0xDF2B, 0,0xDF50, 0,0xDF6E, 0,0xDF3B,0xDF53,0xDF5F,
- 0xDF2F,0xDF30,0xDF38,0xDF4C,0xDDF1, 0, 0, 0,0xDC07,0xDC16,
- 0,0xDC14, 0,0xDFFB, 0, 0, 0,0xDFF8,0xDC10,0xDC1D,
- 0xDFFF,0xDC0B,0xDC04, 0,0xDFFE,0xDDFF, 0, 0, 0, 0,
- 0xDF23, 0, 0, 0, 0, 0,0xDD2A,0xDEA0,0xDE98,0xDE9C,
- 0,0xDE9E,0xDEA6,0xDEB5,0xDEB0, 0, 0, 0,0xDCF9,0xDCF5,
- 0,0xDDD2, 0, 0,0xDF50,
- /* plane 4, row 57 */
- 1 | (94 << 8), /* first, last */
- 0xD85F,0xD85F,0xD85F,0xD85F,0x47BE,0x4819,0xD860,0x481C,0xD860,
- 0x481B,0x4817,0x4818,0x8E51,0xD860,0xD860,0x483D,0x486A,0x4866,0xD860,
- 0xD860,0x4867,0xD860,0x4868,0x48AD,0x48AE,0xD861,0xD861,0x48D6,0x4909,
- 0xD862,0x9198,0xD862,0x490C,0x490A,0xD862,0x493B,0x493A,0x9384,0x9381,
- 0xD862,0x936F,0xD863,0xD863,0xD863,0x49AF,0x49AA,0x49AB,0xD863,0xD863,
- 0x49B1,0xD863,0x49AC,0x49EC,0xD863,0xD863,0x4A01,0xD863,0xD864,0xD864,
- 0xD864,0x4A23,0xD864,0x4A24,0x4A1E,0xD864,0x4A4A,0x4A65,0x4A6A,0xD864,
- 0xD864,0xD864,0x4A69,0xD864,0xD864,0x4A95,0xD864,0xD865,0xD865,0xD865,
- 0x9842,0xD865,0xD865,0x4ACC,0xD865,0xD865,0xD87E,0x4ACF,0xD865,0xD865,
- 0x4B0F,0xD865,0x4B0E,0x4B0B,0x4B10,
- 1, /* first low-surrogate */
- 0xDF4E,0xDF4B,0xDF52,0xDF4D, 0, 0,0xDCE4, 0,0xDCDA,
- 0, 0, 0, 0,0xDCDF,0xDCE8, 0, 0, 0,0xDF70,
- 0xDF72, 0,0xDF77, 0, 0, 0,0xDDE6,0xDFAA, 0, 0,
- 0xDC8C, 0,0xDC89, 0, 0,0xDE32, 0, 0, 0, 0,
- 0xDE7A, 0,0xDC9E,0xDCA0,0xDD70, 0, 0, 0,0xDD6E,0xDD66,
- 0,0xDD65, 0, 0,0xDF7F,0xDFE0, 0,0xDFFF,0xDCF6,0xDCF7,
- 0xDCF5, 0,0xDCFC, 0, 0,0xDCF9, 0, 0, 0,0xDECA,
- 0xDEC3,0xDEC6, 0,0xDFB8,0xDFBD, 0,0xDFBC,0xDC05,0xDCE0,0xDCE9,
- 0,0xDCDF,0xDCEC, 0,0xDCE5,0xDCDE,0xDE00, 0,0xDCF0,0xDCE3,
- 0,0xDDEC,
- /* plane 4, row 58 */
- 1 | (94 << 8), /* first, last */
- 0x4B0D,0x4B0C,0xD865,0xD865,0xD865,0xD865,0x4B46,0x4B48,0x9937,
- 0x4B49,0xD865,0xD866,0x4B91,0x4B8E,0xD866,0x4BD8,0x4BD6,0xD866,0x4BDA,
- 0xD866,0x4BD7,0xD866,0x9AFF,0x4BF9,0xD866,0xD866,0x4BFC,0xD866,0xD867,
- 0xD867,0x9BA9,0x4C4A,0x9BA7,0x4C4E,0x9BB3,0x9BAC,0x9BB0,0xD867,0xD867,
- 0xD867,0x9B9C,0xD867,0xD867,0xD868,0x9D3C,0x9D1C,0x9D3A,0x4CD3,0x4CCD,
- 0x4CD1,0xD868,0xD868,0x9D32,0x9D34,0xD868,0xD868,0xD87E,0xD868,0xD868,
- 0xD868,0x9EC7,0xD868,0x4D62,0xD869,0xD869,0xD869,0x4D83,0x9F3F,0xD869,
- 0x4D92,0x349F,0x34A0,0xD841,0xD841,0xD841,0xD841,0xD841,0x3527,0xD842,
- 0x360B,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0x368D,0xD845,0xD846,0x3770,0xD847,
- 3, /* first low-surrogate */
- 0xDDF2,0xDDEF,0xDDE9,0xDEFB, 0, 0, 0,
- 0,0xDF37,0xDCDE, 0, 0,0xDCDA, 0, 0,0xDE4B, 0,
- 0xDE49, 0,0xDED5, 0, 0,0xDF52,0xDF47, 0,0xDF48,0xDCCC,
- 0xDCD0, 0, 0, 0, 0, 0, 0, 0,0xDD86,0xDDA7,
- 0xDDA3, 0,0xDDB6,0xDDAD,0xDC13, 0, 0, 0, 0, 0,
- 0,0xDC17,0xDC22, 0, 0,0xDC49,0xDC26,0xDE0C,0xDC3C,0xDC28,
- 0xDEA8, 0,0xDFFB, 0,0xDC32,0xDCD6,0xDD48, 0, 0,0xDDC6,
- 0, 0, 0,0xDC25,0xDC26,0xDC24,0xDC33,0xDD70, 0,0xDF90,
- 0,0xDC95,0xDCA1,0xDC92,0xDC8F,0xDC9F,0xDC96,0xDC98,0xDC9D,0xDCA0,
- 0,0xDE97,0xDCEB, 0,0xDF87,
- /* plane 4, row 59 */
- 1 | (94 << 8), /* first, last */
- 0x5EEB,0xD849,0x399A,0x399F,0x399D,0xD84A,0xD84A,0xD84A,0x399B,
- 0xD84A,0x61D5,0xD87E,0x3A60,0x3A64,0x3A69,0x3A63,0x3A67,0x3A62,0xD84B,
- 0xD84B,0xD84B,0x6502,0xD84B,0xD84B,0xD84C,0x3AAC,0xD84C,0xD84C,0xD84C,
- 0xD84C,0x3B26,0x3B23,0x3B25,0xD84D,0xD84D,0x3BF8,0xD84D,0xD84D,0xD84D,
- 0x3BF7,0x3BFB,0x3BFA,0xD84D,0xD84D,0xD84E,0xD84E,0x3CB0,0x3CAF,0xD84F,
- 0xD850,0xD850,0x3D7E,0xD850,0x3D7D,0x3D80,0xD850,0xD850,0x3D7F,0x3D86,
- 0xD850,0xD850,0x7012,0xD850,0x3D81,0xD851,0xD851,0xD851,0x3E24,0x3E58,
- 0x3E57,0x3EA0,0xD852,0x3EFE,0xD852,0xD852,0x3F15,0xD852,0x3F47,0x3F46,
- 0xD852,0xD853,0x3F6B,0x3F6C,0x7585,0x7654,0xD853,0x3FCC,0xD853,0x7655,
- 0xD853,0x3FCB,0x76A7,0x76A8,0x3FF9,
- 2, /* first low-surrogate */
- 0xDC32, 0, 0, 0,0xDCD8,0xDCFB,0xDD06, 0,
- 0xDCD1, 0,0xDCB0, 0, 0, 0, 0, 0, 0,0xDDF6,
- 0xDE04,0xDDFE, 0,0xDDFF,0xDDF7,0xDC18, 0,0xDC14,0xDCCD,0xDD20,
- 0xDEDE, 0, 0, 0,0xDF45,0xDF53, 0,0xDF4B,0xDF55,0xDF41,
- 0, 0, 0,0xDF5C,0xDF54,0xDE71,0xDED0, 0, 0,0xDC53,
- 0xDC29,0xDC7E, 0,0xDC79, 0, 0,0xDC70,0xDC6A, 0, 0,
- 0xDC85,0xDC64, 0,0xDC78, 0,0xDC32,0xDC27,0xDC2F, 0, 0,
- 0, 0,0xDCBA, 0,0xDE71,0xDE8C, 0,0xDF1A, 0, 0,
- 0xDF98,0xDCE4, 0, 0, 0, 0,0xDEC2, 0,0xDEBA, 0,
- 0xDEC8,
- /* plane 4, row 60 */
- 1 | (94 << 8), /* first, last */
- 0xD854,0xD854,0xD854,0xD854,0x4078,0x407A,0x4075,0xD854,0x4076,
- 0x4077,0xD854,0xD854,0x40EA,0x40EE,0x40ED,0xD855,0x40EC,0x790F,0xD855,
- 0xD855,0x4184,0x4185,0x4183,0xD856,0x41BC,0x41BD,0x41D4,0xD857,0xD857,
- 0xD857,0xD857,0x4255,0xD857,0x4250,0x424C,0x4248,0xD857,0x4253,0xD857,
- 0x4257,0x4254,0x424E,0x424A,0x4251,0xD857,0xD857,0x4249,0x424B,0x4263,
- 0xD857,0xD857,0x42A7,0x42A6,0x42A4,0xD857,0xD857,0xD87E,0x7CE4,0x7CE5,
- 0xD858,0xD858,0x7E65,0x7E4E,0x4317,0xD858,0x4316,0xD858,0xD858,0x4363,
- 0xD858,0xD858,0x7F82,0xD858,0x437B,0x437C,0xD858,0xD858,0xD859,0xD859,
- 0x43B0,0x802D,0xD859,0xD85A,0x4442,0xD85A,0x4444,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0x4488,0x448F,0x4553,
- 1, /* first low-surrogate */
- 0xDCB9,0xDCB8,0xDCA5,0xDEE2, 0, 0, 0,0xDED9, 0,
- 0,0xDEAC,0xDEDD, 0, 0, 0,0xDD9D, 0, 0,0xDF11,
- 0xDF03, 0, 0, 0,0xDCEE, 0, 0, 0,0xDCA4,0xDCD8,
- 0xDCDD,0xDCDE, 0,0xDCE7, 0, 0, 0,0xDCD4, 0,0xDCCE,
- 0, 0, 0, 0, 0,0xDCF1,0xDCD3, 0, 0, 0,
- 0xDCCA,0xDCE9, 0, 0, 0,0xDF1A,0xDF41,0xDD68, 0, 0,
- 0xDD3D,0xDD40, 0, 0, 0,0xDD43, 0,0xDD3F,0xDD3C, 0,
- 0xDF21,0xDF20, 0,0xDFC6, 0, 0,0xDFD1,0xDFCA,0xDC8E,0xDC91,
- 0, 0,0xDDE3,0xDC88, 0,0xDC70, 0,0xDD9D,0xDE9D,0xDE91,
- 0xDE98,0xDE99,
- /* plane 4, row 61 */
- 1 | (94 << 8), /* first, last */
- 0x455B,0xD85B,0x4559,0xD85B,0xD85B,0xD85B,0xD85C,0x85CA,0xD85C,
- 0xD85B,0x4554,0x85BC,0xD85B,0xD85B,0xD85B,0xD85B,0xD85C,0x4599,0xD85C,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0x45F1,0xD85D,0x45EF,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0x4662,0xD85D,0x4663,0xD85D,
- 0x4660,0x4661,0x465F,0xD85D,0xD85D,0xD85D,0x468D,0xD85E,0x468E,0xD85E,
- 0xD85E,0xD85E,0x4709,0xD85E,0xD85E,0x4705,0xD85E,0xD85E,0x4703,0x4706,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0x4731,0xD85F,0xD85F,0x474F,0xD85F,
- 0xD85F,0xD85F,0x4766,0x8CFF,0x47C4,0xD85F,0x47C3,0x47C1,0x47C5,0xD860,
- 0xD860,0xD860,0x4821,0xD860,0x481F,0x4822,0xD860,0x4827,0x4820,0xD860,
- 0x486D,0x486C,0x486B,0x486F,0x4870,
- 2, /* first low-surrogate */
- 0xDFBF, 0,0xDFAE,0xDFB1,0xDFCC,0xDC04, 0,0xDC16,
- 0xDFCD, 0, 0,0xDFE0,0xDFCB,0xDFD4,0xDFC9,0xDDFF, 0,0xDDFD,
- 0xDC57,0xDC52,0xDC50,0xDC45,0xDC4D, 0,0xDC53, 0,0xDC82,0xDC44,
- 0xDDCE,0xDDCF,0xDDD2,0xDE02,0xDF4F,0xDF58, 0,0xDF43, 0,0xDF52,
- 0, 0, 0,0xDF49,0xDF53,0xDF4D, 0,0xDC84, 0,0xDC83,
- 0xDD32,0xDEE2, 0,0xDEE4,0xDED3, 0,0xDED5,0xDEDD, 0, 0,
- 0xDEEC,0xDEE6,0xDED2,0xDEFA,0xDEDA, 0,0xDC06,0xDC04, 0,0xDC7B,
- 0xDD04,0xDD02, 0, 0, 0,0xDF60, 0, 0, 0,0xDD07,
- 0xDD05,0xDD0C, 0,0xDD5A, 0, 0,0xDD1A, 0, 0,0xDF8A,
- /* plane 4, row 62 */
- 1 | (94 << 8), /* first, last */
- 0xD860,0xD861,0xD862,0x91A6,0xD862,0xD862,0x4942,0xD862,0x93B6,
- 0xD862,0x4944,0x4940,0xD862,0xD862,0x493F,0xD862,0x93AB,0x498B,0xD863,
- 0xD863,0x4A25,0x4A28,0xD864,0x9721,0xD864,0xD864,0x4A75,0x4A72,0xD864,
- 0x4A6F,0xD864,0xD864,0x4A76,0x4A71,0x97A7,0xD864,0x4A97,0xD864,0x4AD7,
- 0xD865,0x4AD6,0xD865,0x4AD8,0x4ADC,0x4ADB,0x4AD4,0x983E,0x4B13,0x4B11,
- 0x4B14,0xD865,0xD865,0xD865,0xD865,0x4B51,0x4B50,0x4B53,0x4B54,0x4B52,
- 0xD865,0xD865,0xD865,0x4B6D,0xD87E,0xD866,0x4B95,0x4B99,0xD866,0x4B9A,
- 0xD866,0x4B93,0x4B97,0xD866,0xD866,0xD866,0xD866,0xD866,0x4BDC,0xD866,
- 0x4BFD,0xD866,0xD866,0x4BFE,0x4C00,0x4C02,0x4C01,0x4C03,0xD866,0xD867,
- 0xD867,0xD867,0x4C27,0x4C26,0x4C24,
- 1, /* first low-surrogate */
- 0xDF8C,0xDE09,0xDCA6, 0,0xDCAC,0xDCA9, 0,0xDE8B, 0,
- 0xDE8C, 0, 0,0xDE88,0xDE89, 0,0xDE93, 0, 0,0xDD83,
- 0xDF4F, 0, 0,0xDD20, 0,0xDE36,0xDEE2, 0, 0,0xDEEE,
- 0,0xDEE7,0xDEE9, 0, 0, 0,0xDEDF, 0,0xDFC7, 0,
- 0xDD09, 0,0xDD01, 0, 0, 0, 0, 0, 0, 0,
- 0,0xDE05,0xDE0C,0xDF78,0xDF5D, 0, 0, 0, 0, 0,
- 0xDF5E,0xDF60,0xDF67, 0,0xDE05,0xDCF4, 0, 0,0xDCF1, 0,
- 0xDCFA, 0, 0,0xDCF8,0xDCF9,0xDD09,0xDCFD,0xDCF7, 0,0xDE59,
- 0,0xDF60,0xDF68, 0, 0, 0, 0, 0,0xDF6A,0xDC14,
- 0xDC3E,0xDCE4,
- /* plane 4, row 63 */
- 1 | (94 << 8), /* first, last */
- 0x4C4C,0x9BBC,0x4C50,0x4C55,0x4C53,0x9BB7,0x4C52,0xD867,0x4C57,
- 0x9BBE,0x4C58,0x4CD6,0xD868,0xD868,0x4CD4,0xD868,0x4CDA,0x4CD9,0xD860,
- 0x9D62,0x4CD5,0x4CE4,0xD87E,0x4CDC,0x4D1B,0x9E8F,0x4D37,0x4D36,0x4D4B,
- 0x9ECB,0x4D66,0x4D76,0xD869,0x4D7E,0x4D7D,0x4D7F,0x4D84,0x4D8B,0xD869,
- 0x4D94,0x34A1,0x3511,0xD842,0x3610,0x56A9,0xD844,0xD844,0xD844,0xD844,
- 0x5913,0xD846,0x3732,0x5BF4,0xD846,0xD846,0xD847,0xD847,0x3820,0xD847,
- 0xD848,0xD848,0x389D,0xD849,0x61EC,0x61EF,0xD84A,0xD84A,0x39A5,0xD84A,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84C,0xD84C,0x3C02,0x3BFE,
- 0x3C01,0x6AD6,0x3C03,0x3BFF,0xD84D,0x3C04,0xD87E,0x3C4A,0xD84E,0x3D87,
- 0xD850,0x3D84,0xD850,0x3D85,0x7209,
- 8, /* first low-surrogate */
- 0xDDD2, 0,
- 0, 0, 0,0xDC58,0xDC50, 0,0xDC5C, 0, 0,0xDD19,
- 0, 0, 0,0xDE0E, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xDCDF, 0, 0, 0, 0, 0,0xDDD9,
- 0, 0, 0,0xDD66, 0, 0,0xDCE1,0xDCEF,0xDCE8,0xDE33,
- 0,0xDCFE, 0, 0,0xDEEF,0xDEEC,0xDCEC,0xDF9C, 0,0xDF99,
- 0xDD70,0xDD6E, 0,0xDC41, 0, 0,0xDD02,0xDD01, 0,0xDE1B,
- 0xDE23,0xDE25,0xDE24,0xDE26,0xDE33,0xDE2F,0xDC8F,0xDF56, 0, 0,
- 0, 0, 0, 0,0xDF99, 0,0xDCED, 0,0xDED9, 0,
- 0xDCB7, 0,0xDCB6,
- /* plane 4, row 64 */
- 1 | (94 << 8), /* first, last */
- 0xD851,0xD851,0xD851,0x3E59,0x7379,0xD852,0x74C6,0xD852,0xD852,
- 0x3F04,0x3F49,0x3F48,0xD853,0x3F6D,0x3FD2,0x3FD3,0xD853,0x3FD1,0xD853,
- 0xD853,0xD853,0xD853,0x3FE7,0x400A,0x77C3,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0x40F0,0xD855,0xD855,0x791F,0xD856,0xD856,0x7A65,0xD856,0xD856,
- 0x41BE,0x41BF,0xD856,0x7AC6,0x7C3A,0xD857,0x7C36,0xD857,0xD857,0xD857,
- 0xD857,0x425E,0xD857,0xD857,0x425B,0xD857,0xD857,0xD857,0x7CEB,0x42AB,
- 0xD857,0x42AC,0xD857,0xD857,0xD858,0xD858,0x431F,0x431D,0xD858,0xD858,
- 0x431C,0xD858,0x431E,0xD858,0xD858,0xD858,0xD858,0x4364,0xD858,0x7F84,
- 0xD859,0xD85A,0xD85A,0x4448,0x4447,0xD85A,0xD85C,0x455E,0x4561,0xD85C,
- 0x85E0,0x85F3,0xD85C,0xD85C,0xD85C,
- 1, /* first low-surrogate */
- 0xDC54,0xDC57,0xDC7A, 0, 0,0xDE8E, 0,0xDE90,0xDEB9,
- 0, 0, 0,0xDCEF, 0, 0, 0,0xDEE2, 0,0xDED6,
- 0xDED8,0xDEDA,0xDEDE, 0, 0, 0,0xDF08,0xDF04,0xDF0A,0xDF0B,
- 0xDF02, 0,0xDDAA,0xDDC1, 0,0xDCD7,0xDCD9, 0,0xDCDE,0xDCDA,
- 0, 0,0xDE2A, 0, 0,0xDD31, 0,0xDD2B,0xDD2C,0xDD29,
- 0xDD2E, 0,0xDD27,0xDD28, 0,0xDD5F,0xDD30,0xDD24, 0, 0,
- 0xDF3A, 0,0xDF39,0xDF40,0xDD80,0xDD84, 0, 0,0xDD75,0xDD76,
- 0,0xDD7C, 0,0xDD78,0xDD9B,0xDD7E,0xDE5A, 0,0xDF2C, 0,
- 0xDC9C,0xDC47,0xDC8A, 0, 0,0xDD27,0xDC4A, 0, 0,0xDC27,
- 0, 0,0xDC2E,0xDC26,0xDE08,
- /* plane 4, row 65 */
- 1 | (94 << 8), /* first, last */
- 0x45F7,0xD85D,0xD85D,0x45F4,0x45F8,0x881E,0xD85D,0xD85D,0xD85D,
- 0x4664,0xD85D,0x4692,0x468F,0x4690,0x89B4,0x4693,0x46A8,0xD85E,0xD85E,
- 0x46A9,0xD85E,0xD85E,0x89F9,0xD85E,0xD85E,0x8B44,0x470E,0xD85E,0x470F,
- 0xD85E,0xD85E,0x470B,0xD85E,0xD85E,0xD85E,0xD85E,0x4710,0x4751,0xD85F,
- 0x4750,0xD85F,0x4763,0xD85F,0xD85F,0x47C7,0xD85F,0x8E71,0x4824,0x4826,
- 0x8E6E,0xD860,0x8E79,0xD860,0x8EC4,0x4874,0x4873,0x4872,0xD860,0xD860,
- 0xD861,0xD861,0x48B1,0x908C,0xD861,0x490E,0x4911,0x4910,0x490F,0x4912,
- 0x4949,0x93C9,0x494F,0x494D,0xD862,0xD862,0x4955,0xD863,0xD863,0xD864,
- 0xD864,0xD864,0xD864,0x4A2C,0x4A2B,0xD864,0xD864,0x4A79,0xD864,0xD864,
- 0xD864,0x4A7A,0x97B0,0x4A99,0x4A9A,
- 2, /* first low-surrogate */
- 0xDCBD,0xDC96, 0, 0, 0,0xDCBE,0xDC8E,0xDF74,
- 0,0xDF80, 0, 0, 0, 0, 0, 0,0xDD3C,0xDD3D,
- 0,0xDD3A,0xDD42, 0,0xDF24,0xDF06, 0, 0,0xDF15, 0,
- 0xDF02,0xDF0C, 0,0xDF08,0xDF0A,0xDF05,0xDF1C, 0, 0,0xDC82,
- 0,0xDC86, 0,0xDE03,0xDF7B, 0,0xDF7A, 0, 0, 0,
- 0,0xDD80, 0,0xDD58, 0, 0, 0, 0,0xDFAA,0xDFAB,
- 0xDC36,0xDC4A, 0, 0,0xDFD6, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xDF03,0xDECF, 0,0xDD9F,0xDDA2,0xDC2A,
- 0xDC2F,0xDD44,0xDD40, 0, 0,0xDF11,0xDF0F, 0,0xDF0D,0xDF07,
- 0xDF03,
- /* plane 4, row 66 */
- 1 | (94 << 8), /* first, last */
- 0xD865,0x4AAE,0x4AAF,0xD865,0x4AE4,0x4AE1,0x4ADE,0x4AE6,0x4ADF,
- 0xD865,0x4AE7,0x4AE2,0x4AE0,0xD865,0x4AE5,0x985A,0xD865,0x4B18,0xD865,
- 0xD865,0xD865,0x4B56,0xD865,0x9946,0xD865,0xD865,0xD865,0x4B6E,0xD866,
- 0xD866,0x4B9D,0x4BA0,0x4B9C,0xD866,0xD866,0x4BA1,0x4BA2,0x4B9F,0x4BDF,
- 0x4BDE,0x9AC3,0x4BEA,0xD866,0x4C06,0xD866,0x4C04,0x9B0F,0xD866,0xD867,
- 0xD867,0xD867,0x4C5F,0x9BF4,0x9BFA,0x4C5C,0xD867,0x4C5E,0xD867,0xD867,
- 0x9BDD,0x4C59,0xD867,0xD867,0x4C64,0x4C5D,0x4C62,0xD867,0x4C65,0xD867,
- 0x9BED,0x4C5B,0x9BEF,0xD868,0x4CDD,0xD868,0x4CDF,0xD868,0xD87E,0x4CE2,
- 0xD868,0xD868,0x4D27,0xD868,0xD868,0x9E96,0x4D3A,0x4D3C,0xD868,0x4D39,
- 0xD868,0xD868,0x4D3D,0x4D3B,0x9EB3,
- 1, /* first low-surrogate */
- 0xDC35, 0, 0,0xDD04, 0, 0, 0, 0, 0,
- 0xDD26, 0, 0, 0,0xDD1E, 0, 0,0xDE0E, 0,0xDE1D,
- 0xDE1E,0xDE1F, 0,0xDF88, 0,0xDF8D,0xDF91,0xDF80, 0,0xDC54,
- 0xDC55, 0, 0, 0,0xDD25,0xDD1A, 0, 0, 0, 0,
- 0, 0, 0,0xDF88, 0,0xDF7A, 0, 0,0xDF80,0xDD1E,
- 0xDDFC,0xDE25, 0, 0, 0, 0,0xDE0B, 0,0xDE06,0xDE04,
- 0, 0,0xDDF9,0xDE00, 0, 0, 0,0xDE02, 0,0xDE07,
- 0, 0, 0,0xDCB5, 0,0xDC87, 0,0xDC93,0xDE0F, 0,
- 0xDCBE,0xDE66, 0,0xDEC7,0xDECF, 0, 0, 0,0xDF3D, 0,
- 0xDF3C,0xDF47,
- /* plane 4, row 67 */
- 1 | (94 << 8), /* first, last */
- 0x4D4C,0xD868,0x4D68,0x9EE2,0xD869,0x4D80,0x4D85,0xD869,0x4D95,
- 0xD869,0x4D96,0xD869,0x9F8F,0xD841,0x34A4,0x3512,0x56B1,0x3625,0xD845,
- 0x5B41,0x3737,0xD846,0xD847,0xD847,0xffff,0x3868,0x3867,0x389E,0xD849,
- 0xD849,0xD84A,0x39AA,0xD84A,0x39A9,0x39A4,0xD84A,0xD84A,0x3A71,0x3A6F,
- 0xD84B,0xD84B,0xD84B,0xD84C,0x3AAD,0xD84C,0x6AF6,0x3C0C,0x6AF2,0x3C0B,
- 0xD84D,0xD84D,0x3C0F,0x3C79,0xD850,0xD850,0xD850,0xD850,0x3D8D,0x3D8F,
- 0xD850,0xD850,0x3D8E,0x3E0C,0xD851,0xD851,0xD851,0x3EA6,0xD852,0x3EA3,
- 0x3EA4,0x3EA5,0x7588,0x3F6E,0xD853,0xD853,0x3FFA,0xD854,0x407C,0x407E,
- 0x407B,0x407D,0xD854,0xD854,0x408D,0x40F4,0x40F3,0xD855,0xD856,0x4189,
- 0xD856,0xD856,0x41C0,0xD857,0x4265,
- 2, /* first low-surrogate */
- 0xDFC3, 0, 0,0xDD1B, 0, 0,0xDDC9, 0,
- 0xDDDD, 0,0xDE93, 0,0xDC3D, 0, 0, 0, 0,0xDCE6,
- 0, 0,0xDEF7,0xDFB0,0xDFAE, 0, 0, 0, 0,0xDD9F,
- 0xDD9E,0xDD30, 0,0xDD4F, 0, 0,0xDD27,0xDD51, 0, 0,
- 0xDE51,0xDE54,0xDE56,0xDC27, 0,0xDC24, 0, 0, 0, 0,
- 0xDFEC,0xDFC4, 0, 0,0xDCF8,0xDCF6,0xDCF7,0xDCED, 0, 0,
- 0xDCF4,0xDCEF, 0, 0,0xDC7F,0xDCA2,0xDC7E, 0,0xDCC5, 0,
- 0, 0, 0, 0,0xDEF1,0xDEF2, 0,0xDC2F, 0, 0,
- 0, 0,0xDF23,0xDF29, 0, 0, 0,0xDF1B,0xDCEB, 0,
- 0xDCEA,0xDE33, 0,0xDD63,
- /* plane 4, row 68 */
- 1 | (94 << 8), /* first, last */
- 0xD857,0xD857,0x42AD,0x4325,0xD858,0xD87E,0xD858,0x43C9,0xD85A,
- 0x444A,0xD85A,0x8267,0x4489,0xD85C,0x4566,0x4570,0xD85C,0x456D,0x4569,
- 0x4567,0xD85C,0x4572,0x860E,0x456E,0xD85C,0x459C,0x45FC,0x45FD,0x4604,
- 0x45FF,0xD87E,0x45FE,0x4600,0xD85D,0x4666,0x4669,0xD85D,0x46AA,0x46AB,
- 0x4717,0xD85E,0xD85E,0xD85E,0x4715,0x8B5E,0x4712,0x8D0E,0xD85F,0xD85F,
- 0xD85F,0x47CA,0xD85F,0x47C9,0x47CB,0xD85F,0xD85F,0xD860,0x4829,0x4828,
- 0xD860,0xD860,0xD860,0x4840,0x4875,0x4876,0xD860,0x4888,0xD861,0x91B6,
- 0x4957,0x9401,0xD862,0x495F,0xD862,0x941D,0x4958,0x495B,0xD862,0x942F,
- 0xD863,0x49B3,0xD863,0x49EF,0xD864,0x4A30,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0x4A41,0x4A4B,0xD864,0x4A7D,
- 1, /* first low-surrogate */
- 0xDD92,0xDD65, 0, 0,0xDDA0,0xDD70,0xDE5E, 0,0xDCAA,
- 0,0xDCA9, 0, 0,0xDC9C, 0, 0,0xDC92, 0, 0,
- 0,0xDC86, 0, 0, 0,0xDC83, 0, 0, 0, 0,
- 0,0xDDC2, 0, 0,0xDCCE, 0, 0,0xDF93, 0, 0,
- 0,0xDF2E,0xDF27,0xDF28, 0, 0, 0, 0,0xDE18,0xDE16,
- 0xDF8D, 0,0xDF8E, 0, 0,0xDF90,0xDF8F,0xDD81, 0, 0,
- 0xDD8A,0xDD8C,0xDE8D, 0, 0, 0,0xDFB2, 0,0xDFD9, 0,
- 0, 0,0xDF0D, 0,0xDF13, 0, 0, 0,0xDF1B, 0,
- 0xDDAC, 0,0xDDB3, 0,0xDD5E, 0,0xDD60,0xDD68,0xDD63,0xDD69,
- 0xDD67, 0, 0,0xDF28,
- /* plane 4, row 69 */
- 1 | (94 << 8), /* first, last */
- 0xD864,0xD864,0x4A7C,0xD864,0xD864,0xD864,0x97E0,0xD864,0x97DB,
- 0xD87E,0xD865,0x9861,0xD865,0xD865,0x4AE8,0x4AEA,0x4AE9,0xD865,0xD865,
- 0xD865,0xD865,0x4B1B,0xD865,0xD865,0x4B55,0x994A,0x4B59,0x4B58,0xD865,
- 0xD865,0xD865,0x4BA4,0x4BA3,0xD866,0xD866,0xD866,0xD866,0x9A33,0x4BA7,
- 0xD866,0x4BE0,0xD866,0xD866,0xD866,0x4C08,0x4C0A,0x4C09,0xD866,0xD867,
- 0xD867,0x4C71,0x9C0F,0x4C6C,0xD867,0x9C11,0xD867,0x9C03,0x9C01,0x4C6E,
- 0xD867,0x9C16,0xD867,0xffff,0xD867,0x4CE0,0x4CEE,0xD868,0x4CEB,0xD868,
- 0xD868,0xD868,0xD868,0x9D93,0x4CEA,0x4CEF,0x4CE7,0xD868,0xD868,0xD868,
- 0xD868,0x4D48,0x4D49,0xD868,0xD868,0xD868,0x4D4D,0xD868,0xD869,0x4D55,
- 0xD869,0xD869,0x4D6A,0x4D6C,0xD869,
- 1, /* first low-surrogate */
- 0xDF2E,0xDF30, 0,0xDF26,0xDF31,0xDF41, 0,0xDFDA, 0,
- 0xDDFA,0xDC0B, 0,0xDD34,0xDD33, 0, 0, 0,0xDD39,0xDD3B,
- 0xDD40,0xDE30, 0,0xDE32,0xDE37, 0, 0, 0, 0,0xDF81,
- 0xDF9F,0xDFA7, 0, 0,0xDD44,0xDD47,0xDD48,0xDD3D, 0, 0,
- 0xDD49, 0,0xDE80,0xDFA0,0xDF9D, 0, 0, 0,0xDF9C,0xDC47,
- 0xDD07, 0, 0, 0,0xDE49, 0,0xDE44, 0, 0, 0,
- 0xDEDF, 0,0xDE4C, 0,0xDE4F, 0, 0,0xDCC1, 0,0xDCB9,
- 0xDCCB,0xDCCF,0xDCC4, 0, 0, 0, 0,0xDCCA,0xDCC3,0xDED0,
- 0xDF51, 0, 0,0xDFA8,0xDFC7,0xDFC6, 0,0xDFCA,0xDC02, 0,
- 0xDC5D,0xDC5A, 0, 0,0xDC59,
- /* plane 4, row 70 */
- 1 | (94 << 8), /* first, last */
- 0x4D6B,0xD869,0xD869,0xD869,0x4D98,0x4D99,0x4D97,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD841,0xD841,0xD841,0x535B,0xD842,0x3616,0xD844,
- 0x56BF,0xD844,0xD845,0x3739,0xD846,0xD847,0x3825,0x5DCE,0xD848,0xD849,
- 0xD84A,0xD84B,0x3A74,0xD84B,0xD84B,0x3AAE,0xD84C,0xD84D,0xD84D,0xD84F,
- 0xD850,0x3D92,0x3D94,0xD850,0x3D95,0xD850,0x3E0D,0xD851,0x3E25,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD853,0x3FD5,0x3FD6,0x76AC,0x3FE8,
- 0xD854,0x407F,0x77D2,0x40F5,0x40F6,0x40F7,0xD855,0x4124,0x418D,0x418A,
- 0xD856,0xD856,0x426C,0x4266,0x426A,0xD857,0x4267,0x426D,0x4268,0x7C52,
- 0xD857,0xD857,0xD857,0xD857,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0x4365,0xD859,0x439A,0xD859,
- 2, /* first low-surrogate */
- 0xDCCC,0xDD1C,0xDDCC, 0, 0, 0,0xDDE8,0xDDEC,
- 0xDDEA,0xDEAD,0xDEB0,0xDC5F,0xDC58,0xDC57, 0,0xDF93, 0,0xDD3B,
- 0,0xDD34,0xDCF2, 0,0xDEFD,0xDC1D, 0, 0,0xDF04,0xDC48,
- 0xDD58,0xDE4F, 0,0xDE6E,0xDE72, 0,0xDC2E,0xDFFC,0xDFF4,0xDC36,
- 0xDD0E, 0, 0,0xDD14, 0,0xDD19, 0,0xDCA6, 0,0xDEC9,
- 0xDEC0,0xDECC,0xDF1B,0xDFAA,0xDFA8,0xDF03, 0, 0, 0, 0,
- 0xDC35, 0, 0, 0, 0, 0,0xDDD9, 0, 0, 0,
- 0xDE3F,0xDE3D, 0, 0, 0,0xDD8B, 0, 0, 0, 0,
- 0xDD68,0xDD8A,0xDF58,0xDF57,0xDDCE,0xDDBC,0xDDC0,0xDDC1,0xDDBF,0xDDAB,
- 0xDE5F, 0,0xDCA6, 0,0xDD29,
- /* plane 4, row 71 */
- 1 | (94 << 8), /* first, last */
- 0x43B1,0x444B,0x444D,0x444C,0x444E,0xD85A,0x4573,0x4575,0xD85C,
- 0xD85C,0xD87E,0xD85C,0xD85C,0xD85C,0xD85D,0x4603,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85E,0x471E,0xD85E,0x8B73,0xD85E,0x4719,
- 0x471C,0x471A,0x471D,0x8B76,0xD85E,0xD85E,0x4743,0x4752,0xD85F,0xD85F,
- 0x4795,0xD85F,0x47CC,0xD860,0x482B,0xD860,0xD860,0xD860,0x482A,0x8EC7,
- 0x4877,0xD860,0xD860,0xD861,0xD861,0xD862,0xD862,0xD862,0x4913,0x4914,
- 0x9434,0xD862,0xD862,0x495D,0xD862,0x4960,0x943E,0x4962,0xD863,0xD863,
- 0x49B2,0x49F0,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0x4A4C,0xD864,
- 0x4A82,0x97BC,0x4A81,0x4A9B,0xD864,0x4AA4,0x4AEE,0x4AEC,0xD865,0x4AED,
- 0xD865,0x4AF0,0x4AEF,0xD865,0x4B1D,
- 6, /* first low-surrogate */
- 0xDCB8, 0, 0,0xDCDD,
- 0xDCD6,0xDDB1,0xDCD5,0xDCE7,0xDCD8,0xDCEC, 0,0xDD00,0xDD07,0xDCFD,
- 0xDCF1,0xDCFF,0xDFAA,0xDFB0,0xDF48, 0,0xDF53, 0,0xDF4D, 0,
- 0, 0, 0, 0,0xDF43,0xDF50, 0, 0,0xDC8C,0xDE27,
- 0,0xDF99, 0,0xDDB1, 0,0xDDB0,0xDDAA,0xDDAC, 0, 0,
- 0,0xDFC8,0xDFCA,0xDE42,0xDFE0,0xDCE7,0xDCE8,0xDCE6, 0, 0,
- 0,0xDF5B,0xDF56, 0,0xDF5A, 0, 0, 0,0xDCB8,0xDDC5,
- 0, 0,0xDC48,0xDD7D,0xDD7C,0xDD81,0xDD82,0xDD62, 0,0xDF45,
- 0, 0, 0, 0,0xDFE3, 0, 0, 0,0xDD50, 0,
- 0xDD4F, 0, 0,0xDE39,
- /* plane 4, row 72 */
- 1 | (94 << 8), /* first, last */
- 0xD865,0x4B60,0x4B5E,0x4B5D,0xD865,0xD866,0xD866,0x4BB1,0x4BAB,
- 0x4BAC,0x4BAD,0xD866,0x4BAE,0xD866,0xD866,0x4BE2,0xD866,0xD866,0xD866,
- 0xD866,0xD867,0x9B39,0xD867,0xD867,0x9C2A,0x4C7B,0x9C26,0x4C78,0x4C75,
- 0x9C27,0xD867,0x4CF2,0x4CF4,0x4CF3,0x9DC0,0x9DC9,0xD868,0xD868,0xD868,
- 0x4D3F,0x4D3E,0x4D40,0x4D4E,0x4D57,0x4D59,0x4D58,0xD87E,0xD869,0xD869,
- 0x4D6E,0xD869,0xD869,0xD869,0x9EEC,0xD869,0xD869,0x4D81,0x4D86,0xD869,
- 0x4D8F,0xD869,0xD869,0xD869,0x9F68,0x4D9B,0x4DB1,0x4DB3,0xD844,0x373A,
- 0xD846,0xD847,0x3827,0xD847,0xD847,0x386A,0x39AC,0xD84C,0x3C18,0xD84E,
- 0xD84E,0x3C4C,0xD850,0x3D96,0xD852,0x3F4A,0xD852,0xD853,0x4081,0xD854,
- 0x4083,0x40F9,0x40F8,0xD855,0x418E,
- 1, /* first low-surrogate */
- 0xDE3A, 0, 0, 0,0xDFC1,0xDD4E,0xDD6E, 0, 0,
- 0, 0,0xDD71, 0,0xDE8C,0xDE89, 0,0xDEE5,0xDFB3,0xDFB6,
- 0xDFB4,0xDC4D, 0,0xDD13,0xDE78, 0, 0, 0, 0, 0,
- 0,0xDE72, 0, 0, 0, 0, 0,0xDE75,0xDEDA,0xDED7,
- 0, 0, 0, 0, 0, 0, 0,0xDE16,0xDC69,0xDC67,
- 0,0xDC66,0xDC6F,0xDC71, 0,0xDCCF,0xDD23, 0, 0,0xDDA5,
- 0,0xDDFE,0xDDFB,0xDDFD, 0, 0, 0, 0,0xDD6D, 0,
- 0xDF05,0xDC20, 0,0xDFC8,0xDFC9, 0, 0,0xDD27, 0,0xDC1E,
- 0xDD36, 0,0xDD3D, 0,0xDCD7, 0,0xDFAD,0xDD00, 0,0xDF3A,
- 0, 0, 0,0xDF26,
- /* plane 4, row 73 */
- 1 | (94 << 8), /* first, last */
- 0x418F,0x41C1,0xD857,0xD857,0xD857,0x4270,0xD857,0x4271,0xD858,
- 0x432A,0x432D,0x437D,0x8032,0x8031,0xD85A,0x444F,0xD85A,0xD85A,0x4490,
- 0xD85C,0xD85C,0xD85C,0x4579,0xD85C,0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,
- 0x4605,0xD85D,0xD85D,0xD85D,0xD85E,0xD85E,0xD85E,0x89FD,0xD85E,0xD85E,
- 0x4721,0xD85E,0xD85E,0xD858,0x4732,0xD85F,0x47CD,0x47CF,0xD860,0xD860,
- 0x908E,0x4916,0x4915,0x49B5,0x4A08,0xD864,0x4A32,0xD864,0x4A33,0x4A34,
- 0x4A3C,0xD864,0x97C2,0xD864,0x4A9C,0xD865,0x4AF4,0x4AF2,0xD865,0x4B62,
- 0xD865,0x4B61,0x4B64,0x4BB5,0x9A4B,0x4BB4,0xD866,0xD866,0x4BE3,0xD866,
- 0xD866,0x9B1C,0x4C0E,0xD866,0x9B1B,0xD867,0x4C2C,0x4C2B,0xD867,0xD867,
- 0xD867,0x4C85,0x4C81,0x4C7E,0x4C83,
- 3, /* first low-surrogate */
- 0xDDB7,0xDDB6,0xDDC0, 0,0xDD9B, 0,0xDDD8,
- 0, 0, 0, 0, 0,0xDCC0, 0,0xDCBF,0xDEBF, 0,
- 0xDD20,0xDCD0,0xDD0E, 0,0xDD1D,0xDD1E,0xDD15,0xDD14,0xDD1E,0xDD2C,
- 0,0xDFB9,0xDFB8,0xDFB6,0xDC9E,0xDC9C,0xDD4D, 0,0xDF6E,0xDF60,
- 0,0xDF64,0xDF62,0xDDE5, 0,0xDFA3, 0, 0,0xDFD2,0xDFD5,
- 0, 0, 0, 0, 0,0xDC55, 0,0xDD93, 0, 0,
- 0,0xDF56, 0,0xDFE9, 0,0xDC45, 0, 0,0xDE7C, 0,
- 0xDFD3, 0, 0, 0, 0, 0,0xDD8E,0xDE97, 0,0xDE9B,
- 0xDE99, 0, 0,0xDFCF, 0,0xDC59, 0, 0,0xDD20,0xDD23,
- 0xDD2A,
- /* plane 4, row 74 */
- 1 | (94 << 8), /* first, last */
- 0x4C80,0xD867,0x9C42,0xD868,0x9DD4,0x4CFB,0x4CF7,0xD868,0xD868,
- 0xD868,0xD868,0x4CF8,0xD868,0xD868,0xD868,0xD868,0x4D5A,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0x4D78,0xD869,0xD869,0xD869,0xD869,0x4D9D,0x4D9C,
- 0xD869,0xD869,0xD841,0x34A9,0x34BF,0x56D0,0x56CF,0xD846,0x5DDA,0xD849,
- 0x3A77,0x3A76,0xD84C,0x3ABB,0x66EA,0xD84E,0x3D9B,0xD851,0x3E0F,0x3E5B,
- 0xD852,0x3F4C,0x3F6F,0x3FD9,0xD853,0x4082,0xD854,0xD854,0xD854,0xD855,
- 0x4274,0x4272,0xD857,0xD857,0xD857,0x4273,0xD857,0xD857,0xD857,0x42B1,
- 0x432E,0xD858,0xD858,0xD858,0xD858,0x434E,0xD859,0xD859,0xD85A,0xD85A,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,0x460B,0xD85D,
- 0xD85D,0x466C,0x8B89,0xD85E,0xD85E,
- 2, /* first low-surrogate */
- 0xDEB0, 0,0xDD2F, 0, 0, 0,0xDD32,0xDD43,
- 0xDD3F,0xDD39, 0,0xDD30,0xDEDD,0xDFDA,0xDFDB, 0,0xDC84,0xDC7F,
- 0xDC72,0xDC80,0xDCEE, 0,0xDD2A,0xDD22,0xDD71,0xDDCD, 0, 0,
- 0xDE0F,0xDE18,0xDC6A, 0, 0, 0, 0,0xDF0C, 0,0xDDA6,
- 0, 0,0xDC37, 0, 0,0xDEE2, 0,0xDCBC, 0, 0,
- 0xDED5, 0, 0, 0,0xDF12, 0,0xDF4B,0xDF41,0xDFA1,0xDDEC,
- 0, 0,0xDDD4,0xDDD8,0xDDD9, 0,0xDDDA,0xDF6C,0xDF6D, 0,
- 0,0xDDE7,0xDDEB,0xDDEC,0xDE62, 0,0xDD2B,0xDE0D,0xDCCD,0xDEC3,
- 0xDD3F,0xDD3C,0xDD3E,0xDD3D,0xDD3A,0xDD38,0xDD44,0xDD45, 0,0xDD48,
- 0xDD50, 0, 0,0xDF78,0xDF79,
- /* plane 4, row 75 */
- 1 | (94 << 8), /* first, last */
- 0x478B,0xD85F,0x47D0,0x482D,0xD861,0x48E4,0x4971,0xD862,0x9458,
- 0x496F,0xD864,0x4A87,0x4AA5,0xD865,0xD865,0x4B1E,0x4B65,0x4BB9,0x4BB7,
- 0x4BB8,0x4BE4,0xD866,0xD866,0xD866,0xD866,0xD867,0x4C8C,0x4C89,0x4C8A,
- 0xD867,0xD867,0x4C8B,0xD868,0xD868,0xD868,0x4D01,0x4CFE,0x9DE7,0x4D03,
- 0x4D06,0xD868,0x9DEA,0x9DF1,0xD868,0x4D1D,0x4D43,0xD868,0xD868,0xD868,
- 0x4D4F,0xD869,0xD869,0x4D5B,0x4D70,0xD869,0x4D88,0xD869,0xD869,0x4D89,
- 0x9F44,0xD869,0xD869,0xD869,0xD869,0x9F6D,0xD869,0xD869,0xD869,0xD842,
- 0xD844,0xD846,0x5DD9,0xD847,0xD847,0xD84B,0xD84E,0x3D9E,0x3D9F,0x3EA7,
- 0x3F4B,0x3FDB,0x3FDA,0xD853,0x77D6,0x408E,0x4276,0xD857,0x4330,0x432F,
- 0xD858,0x4366,0xD858,0x457E,0xD85D,
- 2, /* first low-surrogate */
- 0xDE3E, 0, 0,0xDE54, 0, 0,0xDFB9, 0,
- 0,0xDC5F, 0, 0,0xDD72,0xDD75, 0, 0, 0, 0,
- 0, 0,0xDEA3,0xDEA5,0xDFDC,0xDFDD,0xDC5A, 0, 0, 0,
- 0xDEDB,0xDEDC, 0,0xDDAB,0xDD84,0xDD76, 0, 0, 0, 0,
- 0,0xDD83, 0, 0,0xDE7F, 0, 0,0xDF73,0xDFAD,0xDFB0,
- 0,0xDC0F,0xDC0C, 0, 0,0xDD79, 0,0xDD77,0xDD7A, 0,
- 0,0xDE32,0xDE27,0xDE2A,0xDE2C, 0,0xDE28,0xDE29,0xDE38,0xDC2F,
- 0xDD7B,0xDF0D, 0,0xDFD6,0xDFD5,0xDEA1,0xDC4C, 0, 0, 0,
- 0, 0, 0,0xDFC0, 0, 0, 0,0xDDF4, 0, 0,
- 0xDDF0, 0,0xDF3F, 0,0xDD5D,
- /* plane 4, row 76 */
- 1 | (94 << 8), /* first, last */
- 0xD85D,0xD85D,0x883A,0xD85D,0x8975,0x466F,0xD85E,0x47D1,0x482F,
- 0xD860,0xD860,0x48B2,0x4918,0x4917,0xD862,0x4976,0xD864,0xD864,0x4A4F,
- 0x4A89,0xD864,0xD865,0xD865,0xD865,0x4AF5,0x4B1F,0xD865,0xD865,0x9A5D,
- 0x4BE5,0xD866,0xD866,0x4C10,0xD866,0x4C0F,0xD866,0xD867,0xD867,0xD867,
- 0x4C2F,0x4C30,0x9C64,0xD867,0xD867,0x4C93,0x4C94,0xD867,0x4D07,0x4D09,
- 0x4D08,0xD868,0x4D0B,0xD868,0x9E0A,0xD868,0xD868,0xD868,0x4D50,0x4D71,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0x4D7B,0x4D7C,0xD869,0x9F73,0xD869,
- 0x4DA1,0xD869,0xD869,0x4DA0,0x4DA2,0xD842,0x361B,0xD844,0x3682,0xD84C,
- 0xD84E,0xD850,0xD850,0x3FE9,0xD854,0x4084,0x77E1,0xD856,0xD856,0xD857,
- 0x42B3,0x4334,0x4333,0x4580,0xD85D,
- 1, /* first low-surrogate */
- 0xDD72,0xDD62, 0,0xDD66, 0, 0,0xDF88, 0, 0,
- 0xDDE8,0xDDE4, 0, 0, 0,0xDCFF, 0,0xDDAF,0xDDAE, 0,
- 0,0xDFF2,0xDC48,0xDD81,0xDD7E, 0, 0,0xDE52,0xDFEF, 0,
- 0,0xDEAD,0xDFE6, 0,0xDFED, 0,0xDFE9,0xDC61,0xDC60,0xDD33,
- 0, 0, 0,0xDF0B,0xDF08, 0, 0,0xDF07, 0, 0,
- 0,0xDDCA, 0,0xDDC6, 0,0xDE84,0xDEEB,0xDF7D, 0, 0,
- 0xDC9B,0xDCA2,0xDCA1,0xDCA0,0xDC9C, 0, 0,0xDD80, 0,0xDE40,
- 0,0xDE39,0xDE3C, 0, 0,0xDCCA, 0,0xDD89, 0,0xDC3C,
- 0xDD40,0xDD63,0xDD69, 0,0xDF53, 0, 0,0xDD17,0xDD1A,0xDE00,
- 0, 0, 0, 0,0xDD6F,
- /* plane 4, row 77 */
- 1 | (94 << 8), /* first, last */
- 0xD85E,0x46AD,0xD85E,0x4744,0x4755,0xD85F,0x47D2,0xD860,0xD863,
- 0xD863,0xD864,0xD864,0x4A8A,0xD865,0xD865,0x4B67,0xD866,0xD866,0x4BE6,
- 0xD866,0x4C13,0xD866,0x9B2D,0xD867,0x4C97,0x9E0C,0xD868,0xD868,0x4D0C,
- 0xD868,0xD868,0xD868,0x4D46,0x4D5C,0x4D74,0x4D72,0xD869,0xD869,0xD869,
- 0x9F1F,0xD869,0xD869,0x4DA4,0x4DA3,0xD869,0xD869,0xD869,0xD869,0x4DB4,
- 0xD841,0x3536,0xD846,0xD84E,0xD84E,0x3CB2,0xD850,0xD850,0x3F16,0x7C70,
- 0x4277,0xD857,0x457F,0xD85C,0xD85E,0x487D,0x9479,0xD862,0x974A,0x4A8C,
- 0xD865,0x4B68,0x4BBE,0x4C15,0xD868,0xD868,0xD868,0xD868,0xD869,0x4D75,
- 0x4DA5,0xD846,0xD84A,0xD84B,0xD850,0xD855,0x4278,0x4335,0x7E9D,0x4582,
- 0xD85C,0x4583,0xD85C,0x4671,0xD85E,
- 1, /* first low-surrogate */
- 0xDCAB, 0,0xDF91, 0, 0,0xDFB1, 0,0xDDEF,0xDDF1,
- 0xDDF2,0xDDB7,0xDDB5, 0,0xDD86,0xDE5A, 0,0xDDC6,0xDDCB, 0,
- 0xDEB2, 0,0xDFF3, 0,0xDF27, 0, 0,0xDDD5,0xDDD8, 0,
- 0xDDEC,0xDE87,0xDEF2, 0, 0, 0, 0,0xDCAD,0xDCB0,0xDCFD,
- 0,0xDD87,0xDE4A, 0, 0,0xDE4E,0xDE49,0xDE51,0xDE4D, 0,
- 0xDC72, 0,0xDF16,0xDC6D,0xDD41, 0,0xDD71,0xDD74, 0, 0,
- 0,0xDF7C, 0,0xDD8A,0xDD56, 0, 0,0xDFFA, 0, 0,
- 0xDE5B, 0, 0, 0,0xDDF5,0xDDF0,0xDEF3,0xDF7F,0xDC13, 0,
- 0,0xDF19,0xDD85,0xDEB0,0xDD77,0xDDFF, 0, 0, 0, 0,
- 0xDD87, 0,0xDD8B, 0,0xDF9E,
- /* plane 4, row 78 */
- 1 | (60 << 8), /* first, last */
- 0x487E,0x4A8E,0xD865,0x9960,0x4B69,0xD866,0xD866,0xD866,0xD867,
- 0xD867,0xD867,0x4C9A,0x4C9B,0xD868,0xD869,0xD869,0x4D90,0xD869,0x9F9E,
- 0xD852,0xD85C,0x4586,0x4585,0xD85C,0x460E,0xD85D,0xD85E,0xD85E,0x4919,
- 0xD864,0x4BC0,0xD866,0xD867,0xD868,0x9EF8,0x9F3A,0x9F7D,0xD869,0xD869,
- 0x400D,0x4C16,0xD869,0x4DA9,0x4DAA,0x4085,0xD857,0xD85A,0xD85D,0xD867,
- 0xD868,0xD869,0xD867,0x9F96,0xD869,0x4BC2,0x4C31,0x4D11,0x4DAB,0x4C9C,
- 0xD864,
- 3, /* first low-surrogate */
- 0xDD8F, 0, 0,0xDC39,0xDDD4,0xDEF1,0xDC02,
- 0xDC6B,0xDD40, 0, 0,0xDE10,0xDCBE,0xDCB9, 0,0xDE64, 0,
- 0xDEE9,0xDD90, 0, 0,0xDE1C, 0,0xDD92,0xDCAE,0xDFA3, 0,
- 0xDDC9, 0,0xDDD8,0xDD44,0xDE24, 0, 0, 0,0xDE70,0xDED3,
- 0, 0,0xDCC3, 0, 0, 0,0xDE21,0xDECA,0xDD9C,0xDC73,
- 0xDF86,0xDDC1,0xDC09, 0,0xDED5, 0, 0, 0, 0, 0,
- 0xDDD4,
- /* plane 4, row 79: --- */
- /* plane 4, row 80: --- */
- /* plane 4, row 81: --- */
- /* plane 4, row 82: --- */
- /* plane 4, row 83: --- */
- /* plane 4, row 84: --- */
- /* plane 4, row 85: --- */
- /* plane 4, row 86: --- */
- /* plane 4, row 87: --- */
- /* plane 4, row 88: --- */
- /* plane 4, row 89: --- */
- /* plane 4, row 90: --- */
- /* plane 4, row 91: --- */
- /* plane 4, row 92: --- */
- /* plane 4, row 93: --- */
- /* plane 4, row 94: --- */
- /* plane 5, row 1 */
- 1 | (94 << 8), /* first, last */
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD87E,
- 0xD848,0xD840,0xD840,0xD840,0xD842,0xD845,0xD847,0xD849,0xD84E,0xD840,
- 0xD840,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0x355A,0xD842,0xD842,0xD844,0xD847,0xD847,0xD848,
- 0xD84C,0xD84E,0xD84E,0xD851,0xD852,0xD840,0xD840,0xD840,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD87E,0xD842,0xD845,0xD846,0xD846,0xD846,
- 0xD847,0xD848,0xD848,0xD848,0xD848,0xD849,0xD849,0xD84A,0xD84A,0xD84A,
- 0xD84E,0xD84E,0xD84E,0xD84F,0x3CBC,0xD851,0xD845,0xD851,0xD851,0xD859,
- 0xD859,0xD85A,0xD861,0x49B9,0xD863,
- 1, /* first low-surrogate */
- 0xDCD1,0xDCCB,0xDCC9,0xDD0C,0xDC00,0xDC87,0xDD0D,0xDD0F,0xDC1D,
- 0xDF98,0xDCD2,0xDD11,0xDC7E,0xDED3,0xDD52,0xDCFE,0xDDA9,0xDD42,0xDC09,
- 0xDCD6,0xDCDD,0xDCDC,0xDD02,0xDD73,0xDE76,0xDEA7,0xDEA8,0xDC33,0xDCCC,
- 0xDE0D,0xDE2C,0xDF1B, 0,0xDF1D,0xDF99,0xDE3E,0xDD2D,0xDD2F,0xDF99,
- 0xDFB3,0xDDB6,0xDF1B,0xDCEF,0xDCE9,0xDC14,0xDC94,0xDCE1,0xDD06,0xDD4A,
- 0xDD44,0xDE31,0xDE7A,0xDEAD,0xDEAE,0xDEB1,0xDC38,0xDC37,0xDD7D,0xDD7E,
- 0xDE2D,0xDE32,0xDF23,0xDF26,0xDC3A,0xDFA0,0xDEA8,0xDD3F,0xDDBC,0xDFC4,
- 0xDD3B,0xDC19,0xDC18,0xDDB3,0xDFAA,0xDCBE,0xDDAC,0xDE25,0xDE66,0xDE6B,
- 0xDD43,0xDDB5,0xDEEC,0xDC76, 0,0xDE14,0xDDDC,0xDF1C,0xDF1D,0xDCD0,
- 0xDE12,0xDEF3,0xDE69, 0,0xDE11,
- /* plane 5, row 2 */
- 1 | (94 << 8), /* first, last */
- 0xD863,0xD863,0xD863,0xD840,0xD840,0xD840,0xD840,0xD840,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0x34DE,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0x3543,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD844,0xD844,0xD845,0xD845,0xD846,0xD846,0xD847,0xD847,0x37AC,0x37AA,
- 0xD847,0xD847,0xD847,0xD847,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0x5E07,0xD848,0xD848,0xD848,0xD848,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0x5FCB,0x38FE,0xD849,0xD849,0xD84A,0xD84A,0xD84A,0xD84A,0xD87E,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84C,0xD84C,0xD84C,0xD84E,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD853,0xD854,0xD855,
- 1, /* first low-surrogate */
- 0xDE15,0xDE10,0xDE13,0xDCA4,0xDCA5,0xDDD0,0xDDBA,0xDDCB,0xDD7B,
- 0xDE86,0xDEBB,0xDEBA,0xDEC3,0xDEB9,0xDEC0, 0,0xDC39,0xDC3B,0xDC41,
- 0xDCD1,0xDCCF,0xDCD2,0xDD2E,0xDD6E,0xDD8C,0xDD88,0xDE35, 0,0xDE3A,
- 0xDE3B,0xDE38,0xDE39,0xDF2E,0xDF2C,0xDFC8,0xDFB5,0xDFAD,0xDFB0,0xDFAB,
- 0xDDB3,0xDDA9,0xDEBB,0xDEB9,0xDF5A,0xDFCD,0xDC2B,0xDD05, 0, 0,
- 0xDD51,0xDD4B,0xDFEA,0xDFED,0xDC36,0xDC62,0xDC56,0xDC55,0xDC64,0xDC58,
- 0,0xDDDA,0xDDD8,0xDFAD,0xDFAB,0xDCC0,0xDCC3,0xDDB3,0xDDB7,0xDDBA,
- 0, 0,0xDDC7,0xDDB5,0xDD8E,0xDE73,0xDE6C,0xDE74,0xDCB4,0xDE72,
- 0xDE71,0xDE82,0xDE70,0xDD3F,0xDFBA,0xDFB8,0xDDB7,0xDF23,0xDF21,0xDF2B,
- 0xDF26,0xDF22,0xDD25,0xDCE4,0xDC15,
- /* plane 5, row 3 */
- 1 | (94 << 8), /* first, last */
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD85A,0xD85E,0xD85E,0xD85F,
- 0xD861,0xD861,0xD861,0xD861,0xD863,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0x3441,0xD841,0xD841,0x34B4,0xD841,0xD841,0xD841,0xD841,0xD842,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD842,
- 0xD842,0xD842,0xD842,0xffff,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD843,0xD842,0xD842,0xD843,0xD842,
- 0xD842,0xD844,0xD844,0xD844,0xD844,0xD844,0xD87E,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD851,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD847,
- 0x37B3,0xD847,0xD847,0xD847,0x37B4,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD848,0xD848,0xD848,
- 1, /* first low-surrogate */
- 0xDCE4,0xDE33,0xDE2A,0xDE32,0xDE29,0xDEFB,0xDD5B,0xDD5C,0xDC28,
- 0xDE6F,0xDE6D,0xDE6B,0xDE6E,0xDE16,0xDC22,0xDD16,0xDD48,0xDDD8,0xDE00,
- 0,0xDC80,0xDCE4, 0,0xDCE7,0xDD0C,0xDD53,0xDDB7,0xDEE8,0xDED1,
- 0xDEE5,0xDED8,0xDED6,0xDEDA,0xDED9,0xDED5,0xDEE6,0xDED4,0xDED3,0xDC44,
- 0xDCD6,0xDCD7,0xDD13, 0,0xDD70,0xDD92,0xDDDB,0xDDDA,0xDE41,0xDE43,
- 0xDF33,0xDFF6,0xDFD4,0xDFDD,0xDFD0,0xDC04,0xDFD9,0xDFDB,0xDC05,0xDFD3,
- 0xDFE1,0xDE80,0xDE77,0xDE81,0xDE82,0xDE83,0xDC5C,0xDD61,0xDD60,0xDED8,
- 0xDED6,0xDED7,0xDE05,0xDD4D,0xDD48,0xDFD6,0xDFCF,0xDFD9,0xDFD8,0xDC3D,
- 0,0xDD54,0xDD5B,0xDD5C, 0,0xDD59,0xDD58,0xDD5A,0xDD55,0xDD56,
- 0xDD82,0xDFF0,0xDC1C,0xDC6A,0xDC69,
- /* plane 5, row 4 */
- 1 | (94 << 8), /* first, last */
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD87E,0xD849,0xD849,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84B,0xD84B,0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84E,
- 0x3C1D,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0x3C7C,0xD84E,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD850,0xD850,0xD850,0xD850,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD852,0xD852,0xD852,0x3F55,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD854,0xD854,0xD854,0xD855,0xD855,0x4126,0xD856,
- 0xD856,0xD857,0xD859,0xD859,0xD85A,0xD85C,0xD85D,0xD85E,0xD861,0xD861,
- 0xD861,0x49BC,0xD863,0xD863,0xD863,
- 1, /* first low-surrogate */
- 0xDC71,0xDC67,0xDC6C,0xDC6E,0xDC79,0xDD8B,0xDDB8,0xDDE7,0xDDE8,
- 0xDDE4,0xDDE6,0xDDE5,0xDDF0,0xDF83,0xDFB7,0xDFBB,0xDFB9,0xDFC5,0xDC53,
- 0xDCC4,0xDCC6,0xDCCB,0xDDC8,0xDC9F,0xDDC9,0xDDDB,0xDD94,0xDE95,0xDE88,
- 0xDE8D,0xDEEC,0xDEEE,0xDEF1,0xDD2E,0xDD49,0xDF5F,0xDFD1,0xDFCB,0xDC85,
- 0,0xDD4A,0xDD47,0xDD4B,0xDDBB,0xDDC4, 0,0xDF02,0xDC82,0xDC91,
- 0xDC8F,0xDC92,0xDD8F,0xDD91,0xDDB4,0xDD92,0xDCF4,0xDDAA,0xDF35,0xDF37,
- 0xDF3D,0xDF3C,0xDF2F,0xDF30,0xDCF8,0xDCEF,0xDF26, 0,0xDD26,0xDD27,
- 0xDF41,0xDFC6,0xDFC7,0xDCEB,0xDCE8,0xDCEA,0xDC1A,0xDC19, 0,0xDD23,
- 0xDD24,0xDE25,0xDE35,0xDE34,0xDE07,0xDE1D,0xDFE1,0xDFAB,0xDC60,0xDE77,
- 0xDE7D, 0,0xDE1E,0xDE1A,0xDE1D,
- /* plane 5, row 5 */
- 1 | (94 << 8), /* first, last */
- 0xD840,0xD840,0xD840,0xD840,0x344A,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0x344E,0xD841,0xD841,0x34C9,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0x52B7,0x52B8,0xD842,0x52B6,0x52BA,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0x357B,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0x3620,0xD844,0xD844,0xD844,0xD844,0x3689,0x3695,0xD845,0xD845,
- 0xD845,0x36BE,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD847,0xD847,0x37C3,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,
- 1, /* first low-surrogate */
- 0xDC6B,0xDD2D,0xDD4C,0xDE2A, 0,0xDE15,0xDE2C,0xDE06,0xDE08,
- 0xDE0A, 0,0xDD56,0xDD84, 0,0xDDC6,0xDEF5,0xDF09,0xDEF8,0xDEE8,
- 0xDEFB,0xDEE9,0xDEF6, 0, 0,0xDC52, 0, 0,0xDC54,0xDC51,
- 0xDD39,0xDD3A,0xDD98,0xDE4E, 0,0xDC36,0xDC0C,0xDC10,0xDC32,0xDC11,
- 0xDC18,0xDC1C,0xDC1A,0xDC19,0xDC0B,0xDC0F,0xDC1D,0xDC21,0xDC13,0xDC1B,
- 0xDC15, 0,0xDDD1,0xDDC8,0xDE8D,0xDEB5, 0, 0,0xDDF8,0xDEE0,
- 0xDEE1, 0,0xDEDE,0xDEFE,0xDEDC,0xDF01,0xDEFD,0xDF00,0xDDD7,0xDDD6,
- 0xDDD9,0xDF65,0xDFD2,0xDFDC,0xDFE1,0xDFDE,0xDC42,0xDC4B, 0,0xDD8E,
- 0xDD91,0xDD8B,0xDD90,0xDD88,0xDD89,0xDD84,0xDDAA,0xDC8D,0xDC8F,0xDC7D,
- 0xDC7F,0xDC7B,0xDC80,0xDC7E,0xDC83,
- /* plane 5, row 6 */
- 1 | (94 << 8), /* first, last */
- 0xD848,0xD848,0xD848,0xD848,0xD848,0x3877,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD84A,0x39D4,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84E,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD87E,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0x3B4C,
- 0xD84C,0xD84C,0xD84C,0xD84D,0x3C20,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0x3C5B,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD850,0xD850,0xD851,0x3E2D,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,
- 1, /* first low-surrogate */
- 0xDC81,0xDC86,0xDC8A,0xDDBD,0xDDBE, 0,0xDDF4,0xDDF3,0xDE02,
- 0xDDF6,0xDDF5,0xDDF2,0xDE04,0xDF3D,0xDFC6,0xDC89,0xDCD4,0xDCD6,0xDCD2,
- 0xDDFA,0xDE06,0xDE0C,0xDE0A,0xDE0F,0xDE2F, 0,0xDEB7,0xDEBE,0xDEBC,
- 0xDEE2,0xDF06,0xDEF7,0xDF07,0xDEF6,0xDF35,0xDD5F,0xDD65,0xDD64,0xDD61,
- 0xDD5A,0xDD5D,0xDCD7,0xDFD7,0xDFD5,0xDFDE,0xDFE1,0xDFE0,0xDFD9, 0,
- 0xDFDA,0xDFDF,0xDFF6,0xDC03, 0,0xDC93,0xDC8B,0xDC91,0xDC92,0xDC8A,
- 0xDC89,0xDC8F,0xDD56,0xDD59,0xDDCA,0xDDCC, 0,0xDDD0,0xDDCD,0xDDD6,
- 0xDDCB,0xDE83,0xDE82,0xDF06,0xDF2A,0xDF2C,0xDF2B,0xDF29,0xDCBD,0xDCB3,
- 0xDCBE,0xDCC0,0xDCB5,0xDCB6,0xDD9D,0xDD9F,0xDE20, 0,0xDE1E,0xDE1C,
- 0xDE32,0xDE1F,0xDE2B,0xDE21,0xDE26,
- /* plane 5, row 7 */
- 1 | (94 << 8), /* first, last */
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0x3E63,0xD851,0xD852,0xD852,0x3F18,0xD852,
- 0xD852,0xD853,0xD853,0x3F74,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD855,0x4128,0xD855,
- 0xD855,0xD856,0xD856,0xD856,0xD856,0xD856,0xD857,0xD857,0xD857,0xD857,
- 0xD858,0xD858,0xD859,0xD859,0xD859,0xD859,0x43DA,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD85A,0xD85A,0xD85A,0xD85A,0x44A4,0xD85A,0xD85D,
- 0xD85D,0xD85E,0xD861,0x488E,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD840,0xD840,0xD840,0xD840,0xD840,
- 1, /* first low-surrogate */
- 0xDE24,0xDE1D,0xDE27,0xDF5B,0xDF59,0xDF80,0xDF55,0xDF50,0xDF5A,
- 0xDF56,0xDF63,0xDF52,0xDF58, 0,0xDF39,0xDCF9,0xDF28, 0,0xDFBC,
- 0xDFD6,0xDC05,0xDC20, 0,0xDD33,0xDF46,0xDF42,0xDF43,0xDF47,0xDFCB,
- 0xDC42,0xDC45,0xDCFD,0xDCF4,0xDCF9,0xDCFA,0xDF5E,0xDC1D, 0,0xDF58,
- 0xDF55,0xDE57,0xDE58,0xDED9,0xDEDC,0xDEDB,0xDE27,0xDF85,0xDF87,0xDF8A,
- 0xDE8B,0xDF4F,0xDD30,0xDD2F,0xDE68,0xDE49, 0,0xDE48,0xDE3F,0xDE4B,
- 0xDE5C,0xDE46,0xDE40,0xDE0D,0xDF1B,0xDF1D,0xDF17, 0,0xDF22,0xDDA7,
- 0xDE08,0xDC06,0xDC7D, 0,0xDC63,0xDC64,0xDC7F,0xDC6B,0xDC7C,0xDC68,
- 0xDC65,0xDC6A,0xDE98,0xDE99,0xDEAE,0xDE2B,0xDE2D,0xDE31,0xDE2E,0xDE2F,
- 0xDC6D,0xDD31,0xDE2D,0xDE39,0xDE38,
- /* plane 5, row 8 */
- 1 | (94 << 8), /* first, last */
- 0x345B,0xD840,0xD840,0xD840,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD84E,0xD842,0xD842,0xD842,0xD842,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0xD844,0xD844,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD846,0xD846,0x3753,0xD846,
- 0xD846,0xD846,0xD846,0xD87E,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD848,0xD848,0xD848,
- 2, /* first low-surrogate */
- 0xDE3A,0xDE35,0xDE62,0xDCEA,0xDCEB,0xDD15,0xDDCC,0xDDC8,
- 0xDDCD,0xDDDB,0xDDCB,0xDF11,0xDF26,0xDC62,0xDC5E,0xDC61,0xDD41,0xDD3F,
- 0xDD75,0xDD65,0xDF49,0xDDEB,0xDE1A,0xDE57,0xDC6B,0xDCA9,0xDC54,0xDC62,
- 0xDCAA,0xDC58,0xDC72,0xDC63,0xDC73,0xDC8B,0xDC8C,0xDC5C,0xDC51,0xDC16,
- 0xDC60,0xDC61,0xDC5E,0xDC5D,0xDC64,0xDC53,0xDC5F,0xDC5B,0xDC6E,0xDC55,
- 0xDC52,0xDC68,0xDDD2,0xDDD6,0xDDD3,0xDEB8,0xDEBB,0xDEEB,0xDEE8,0xDEB6,
- 0xDEEA,0xDEE7,0xDEE9,0xDD91,0xDE10,0xDE0E,0xDE0F,0xDF0B,0xDF03,0xDF2B,
- 0xDF09,0xDF28,0xDF2C,0xDF25,0xDF27,0xDF0F,0xDDE9,0xDDEC, 0,0xDF27,
- 0xDF73,0xDFE2,0xDFE6,0xDC76,0xDC61,0xDC51,0xDD12,0xDD0E,0xDDAD,0xDDAF,
- 0xDDB1,0xDDD3,0xDC94,0xDC92,0xDC90,
- /* plane 5, row 9 */
- 1 | (94 << 8), /* first, last */
- 0xD848,0xD848,0xD848,0xD848,0xD848,0x3880,0xD87E,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD849,0xD849,0x38DD,0xD849,0xD849,0xD849,0x38DE,
- 0xD849,0x3922,0xD849,0xD849,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0x6306,0xD84A,0xD84A,
- 0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84C,0xD84C,0x3ADB,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0x6B85,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0x3CDA,0x3CDB,0xD84F,0xD84F,
- 1, /* first low-surrogate */
- 0xDC9D,0xDC93,0xDC95,0xDC98,0xDC97, 0,0xDC8A,0xDE07,0xDE0B,
- 0xDE08,0xDFD9,0xDFD5,0xDCD7,0xDCDF, 0,0xDCDE,0xDCE3,0xDCE2, 0,
- 0xDE47, 0,0xDE3D,0xDE38,0xDE44,0xDE3A,0xDEB8,0xDF2A,0xDF00,0xDEF3,
- 0xDEF2,0xDEEB,0xDEFA,0xDEED,0xDEEC,0xDEFF,0xDEFB, 0,0xDF4E,0xDEEF,
- 0xDEF7,0xDF10,0xDF11,0xDF0C,0xDF0B,0xDCDD,0xDD30, 0,0xDD7A,0xDD77,
- 0xDF28,0xDF27,0xDF65,0xDC0E,0xDC0B,0xDC41,0xDC13,0xDC0F,0xDC12,0xDC30,
- 0xDCA0,0xDCA3,0xDC9E,0xDC97,0xDCA1,0xDC9D,0xDC9B,0xDD63,0xDDE3,0xDDE4,
- 0xDDE6,0xDDE7,0xDDDD, 0,0xDDEC,0xDDE5,0xDDF1,0xDF3B,0xDF39,0xDF3A,
- 0xDF3C,0xDF3D,0xDF47,0xDF3F,0xDF44,0xDC48,0xDC49,0xDC60,0xDCE3,0xDCE9,
- 0xDCF0, 0, 0,0xDCF2,0xDCED,
- /* plane 5, row 10 */
- 1 | (94 << 8), /* first, last */
- 0xD84F,0xD84F,0xD84F,0x3CD7,0xD850,0xD850,0xD850,0xD850,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0x401A,0xD854,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,
- 1, /* first low-surrogate */
- 0xDCEC,0xDCE6,0xDD16, 0,0xDDBC,0xDDBE,0xDDC0,0xDDE0,0xDD00,
- 0xDD02,0xDCFE,0xDD5E,0xDDB3,0xDDB7,0xDE3A,0xDE39,0xDE3E,0xDE38,0xDE3D,
- 0xDE4F,0xDF6E,0xDF5F,0xDF81,0xDF82,0xDF71,0xDF7B,0xDF79,0xDF77,0xDF73,
- 0xDF6F,0xDF97,0xDF7E,0xDCFC,0xDD11,0xDD32,0xDD31,0xDD10,0xDEEC,0xDEEB,
- 0xDF2C,0xDF2D,0xDFDA,0xDC2E,0xDC2C,0xDC2A,0xDC33,0xDC4B,0xDD18,0xDD42,
- 0xDD3B,0xDD3F,0xDD41,0xDD43,0xDD3C,0xDF4C,0xDF4A,0xDF49,0xDF56,0xDFCF,
- 0xDC47,0xDC48,0xDC46,0xDD1B,0xDD11,0xDD14,0xDD1D,0xDD17,0xDD1E,0xDD0B,
- 0xDD1C,0xDD12,0xDD16,0xDD0D,0xDD15,0xDD13,0xDD18, 0,0xDFAC,0xDC44,
- 0xDC2C,0xDC45,0xDF66,0xDF6E,0xDF65,0xDF68,0xDF84,0xDD38,0xDD3B,0xDD3A,
- 0xDD3F,0xDEDF,0xDEDD,0xDEDE,0xDEE2,
- /* plane 5, row 11 */
- 1 | (94 << 8), /* first, last */
- 0x41D6,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD858,0xD858,
- 0xD858,0xD858,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0x43DE,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0x43E5,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0x4672,
- 0xD85E,0x46AF,0xD85F,0xD85F,0xD85F,0xD85F,0xD860,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD863,0xD863,0xD863,0xD863,0x49C4,0xD863,
- 0xD863,0xD840,0xD840,0xD840,0xD840,0xD840,0x3463,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0x34EC,0xD841,0xD841,
- 2, /* first low-surrogate */
- 0xDE2C,0xDE2F,0xDF8F,0xDF90,0xDF8C,0xDF93,0xDE25,0xDE88,
- 0xDEA7,0xDFF7,0xDCBB,0xDD38,0xDD39,0xDD37,0xDE14,0xDE6E,0xDE7B, 0,
- 0xDE6C,0xDE7F,0xDE78,0xDE7A,0xDE6F, 0,0xDCFE,0xDF48,0xDF4B,0xDF41,
- 0xDF49,0xDF3B,0xDE2D,0xDDE3,0xDE1A,0xDE0D,0xDE13,0xDE11,0xDE1C, 0,
- 0xDCB5, 0,0xDC29,0xDCA1,0xDD24,0xDFBB,0xDEA1,0xDC83,0xDC8D,0xDC87,
- 0xDC85,0xDC8A,0xDCA3,0xDC89,0xDC84,0xDCA2,0xDEB1,0xDEB0,0xDEAF,0xDEB6,
- 0xDEC9,0xDECA,0xDEC8,0xDEB4,0xDC59,0xDCC9,0xDE41,0xDE4C, 0,0xDE45,
- 0xDE5A,0xDCB9,0xDE94,0xDE6E,0xDEA2,0xDE67, 0,0xDEA3,0xDE76,0xDE6C,
- 0xDE64,0xDEA5,0xDE30,0xDEA6,0xDE69,0xDEA4,0xDC90,0xDD5F,0xDD60,0xDDDA,
- 0xDDD8,0xDDDD, 0,0xDF59,0xDF5B,
- /* plane 5, row 12 */
- 1 | (94 << 8), /* first, last */
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0x3598,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD844,
- 0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD845,0xD845,0xD845,
- 0xD840,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD846,
- 0xD846,0xD848,0x3758,0xD846,0xD846,
- 1, /* first low-surrogate */
- 0xDF5A,0xDF39,0xDF34,0xDF44,0xDF33,0xDF3C,0xDF58,0xDF6A,0xDC6F,
- 0xDC72,0xDC70,0xDC71,0xDC6E,0xDCF0,0xDCEB,0xDD49,0xDD4C,0xDDF5,0xDE20,
- 0xDE6A,0xDE72,0xDF4B,0xDF5D,0xDC50,0xDCF9,0xDCFA,0xDCFB,0xDD23,0xDCB7,
- 0xDD22,0xDCB5,0xDCC4,0xDCB4,0xDCEF, 0,0xDCCD,0xDCF0,0xDCB8,0xDCCB,
- 0xDCF1,0xDCBA,0xDD03,0xDCF8,0xDCB6,0xDCBC,0xDCB3,0xDD21,0xDCF7,0xDCC2,
- 0xDCBE,0xDCC9,0xDCBD,0xDCCE,0xDCB9,0xDCC7,0xDCCA,0xDCCC,0xDD26,0xDDE4,
- 0xDDE0,0xDDF0,0xDEEC,0xDF24,0xDF18,0xDF2F,0xDF25,0xDD28,0xDD22,0xDD6A,
- 0xDD57,0xDD94,0xDD92,0xDD9C,0xDE22,0xDE30,0xDE1D,0xDE23,0xDF35,0xDF33,
- 0xDF2F,0xDF4D,0xDF31,0xDF5B,0xDF5A,0xDF32,0xDF5C,0xDF59,0xDF5D,0xDD69,
- 0xDD6D,0xDE32, 0,0xDE0A,0xDE20,
- /* plane 5, row 13 */
- 1 | (94 << 8), /* first, last */
- 0xD846,0xD846,0xD846,0xD846,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0x37D3,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0x38E2,
- 0xD87E,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0x3954,0xD849,0xD849,0x392F,0xD849,
- 0xD849,0x39B6,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 1, /* first low-surrogate */
- 0xDE1F,0xDE0D,0xDFE8,0xDFEC,0xDC77,0xDC70,0xDC71,0xDDF8,0xDDD6,
- 0xDDD9,0xDDDE,0xDDD5,0xDDE1, 0,0xDDE2,0xDDDD,0xDDE0,0xDE0E,0xDE08,
- 0xDDDC,0xDE0A,0xDE0C,0xDCB4,0xDCB1,0xDCB6,0xDCBC,0xDE1D,0xDE24,0xDE19,
- 0xDE1B,0xDE22,0xDE1A,0xDE1C,0xDE21,0xDFE6,0xDFE4,0xDFE7,0xDFEA, 0,
- 0xDC9B,0xDCF0,0xDCF5,0xDCEF,0xDE42,0xDE6E,0xDE3C,0xDE97,0xDE8C,0xDE81,
- 0xDE71,0xDECE,0xDEBA,0xDE7A,0xDE7E, 0,0xDE72,0xDEBB, 0,0xDE73,
- 0xDE82, 0,0xDDBA,0xDDB8,0xDE4B,0xDE48,0xDF2B,0xDEF4,0xDF2C,0xDF42,
- 0xDF48,0xDF44,0xDF45,0xDF3C,0xDF37,0xDF33,0xDF41,0xDF32,0xDF87,0xDF27,
- 0xDF23,0xDF2D,0xDF1F,0xDF2C,0xDF28,0xDC75,0xDC74,0xDCE7,0xDD32,0xDD31,
- 0xDD99,0xDD96,0xDD98,0xDD9D,0xDD92,
- /* plane 5, row 14 */
- 1 | (94 << 8), /* first, last */
- 0xD84C,0xD84C,0xD84C,0xD859,0x3B35,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0x3B5D,0xD84D,0xD84E,0x3C29,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD850,0xD850,0xD850,0xD850,0xD850,0xD851,0xD851,
- 0xD851,0x3E1F,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0x3E72,0xD851,0xD851,0xD851,0xD851,0xD852,0x3F0B,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD848,0xD852,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD854,
- 1, /* first low-surrogate */
- 0xDD94,0xDD95,0xDD97,0xDEB9, 0,0xDC11,0xDC3B,0xDC79,0xDC42,
- 0xDC43, 0,0xDC78,0xDCAC, 0,0xDCB1,0xDCB4,0xDCB3,0xDCAF,0xDCAA,
- 0xDCB2,0xDD68,0xDDF2,0xDDFE,0xDDF8,0xDDF9,0xDDFF,0xDDF5,0xDDF7,0xDDFD,
- 0xDE00,0xDE88,0xDF6E,0xDF5D,0xDF63,0xDF60,0xDC61,0xDD37,0xDD71,0xDD23,
- 0xDD22,0xDD1F,0xDD25,0xDDFD,0xDE11,0xDE23,0xDDF0,0xDDEF,0xDD0E,0xDD0C,
- 0xDDBA, 0,0xDE52,0xDE55,0xDE53,0xDE54,0xDE51,0xDE58,0xDFB0,0xDF9F,
- 0,0xDFA1,0xDF9A,0xDFBE,0xDFA0,0xDD37, 0,0xDEF1,0xDEF2,0xDF34,
- 0xDF37,0xDF35,0xDF8C,0xDFDF,0xDC4C,0xDC4E,0xDC64,0xDC63,0xDC36,0xDD58,
- 0xDD68,0xDD5B,0xDD5F,0xDD59,0xDD65,0xDD60,0xDD5E,0xDFD5,0xDFD6,0xDC4E,
- 0xDC52,0xDD35,0xDD39,0xDD58,0xDD41,
- /* plane 5, row 15 */
- 1 | (94 << 8), /* first, last */
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD87E,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0x40A2,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD858,
- 0xD84B,0xD858,0xD858,0xD858,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0x43EC,0xD859,0xD859,
- 0xD859,0xD859,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 1, /* first low-surrogate */
- 0xDD57,0xDD38,0xDD3D,0xDD32,0xDD44,0xDD44,0xDF63,0xDF62,0xDFB8,
- 0xDFB0,0xDFB1,0xDC4D,0xDC63,0xDC70,0xDC4B,0xDC4F,0xDC4E,0xDC53,0xDC47,
- 0,0xDC54,0xDC52,0xDC59,0xDC7E,0xDE2B,0xDE2E,0xDF7F,0xDF7E,0xDF81,
- 0xDF83,0xDD47,0xDD54,0xDD4D,0xDD4C,0xDD4B,0xDD57,0xDE65,0xDE64,0xDE61,
- 0xDE62,0xDEF0,0xDEF3,0xDEF9,0xDEF4,0xDEF5,0xDEEF,0xDEF8,0xDEFC,0xDEF7,
- 0xDEFD,0xDF17,0xDE34,0xDE36,0xDE38,0xDFAF,0xDFAE,0xDFAC,0xDFA2,0xDE28,
- 0xDEC2,0xDE9C,0xDEB3,0xDE90,0xDC06,0xDC04,0xDC0B,0xDC05,0xDD40,0xDD4F,
- 0xDEAB,0xDE9D,0xDEB8,0xDEB2,0xDED2,0xDECF,0xDEA2, 0,0xDEA5,0xDEA9,
- 0xDEA7,0xDED0,0xDD02,0xDDCF,0xDDD0,0xDE16,0xDE19,0xDF75,0xDF71,0xDF91,
- 0xDF72,0xDF8E,0xDF6D,0xDF88,0xDF73,
- /* plane 5, row 16 */
- 1 | (94 << 8), /* first, last */
- 0x44BB,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,0x4621,0xD85D,0xD85D,0xD85D,0x461F,
- 0xD87E,0xD85D,0xD85D,0xD85D,0xD85E,0xD85E,0xD85E,0xD85E,0x8C38,0xD85F,
- 0xD85F,0xD85F,0xD85F,0x4791,0x4796,0xD85F,0xD85F,0xD85F,0xD85F,0xD860,
- 0xD860,0xD860,0xD860,0x8ECE,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD864,0xD865,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,
- 2, /* first low-surrogate */
- 0xDF81,0xDF76,0xDF7B,0xDF7F,0xDF90,0xDF78,0xDE4B,0xDE48,
- 0xDE5B,0xDE51,0xDE3D,0xDE40,0xDE46,0xDE4D,0xDE3B,0xDE4A,0xDE41,0xDE3E,
- 0xDE4E,0xDDAC,0xDDE6,0xDDE9,0xDE29, 0,0xDE33,0xDE2E,0xDE1E, 0,
- 0xDDC5,0xDE22,0xDE27,0xDFE7,0xDC0B,0xDD66,0xDFAD,0xDFAE, 0,0xDC2B,
- 0xDC2A,0xDD2C,0xDD2D, 0, 0,0xDE8F,0xDE93,0xDFC6,0xDFC5,0xDE15,
- 0xDE13,0xDEB1,0xDEA9, 0,0xDCA8,0xDCAB,0xDCBE,0xDCAC,0xDCA9,0xDCA6,
- 0xDCC1,0xDECC,0xDED1,0xDED3,0xDEE4,0xDECB,0xDEE1,0xDED2,0xDEE3,0xDECF,
- 0xDED0,0xDEE5,0xDF0E,0xDCCC,0xDCCA,0xDCCB,0xDE5C,0xDE61,0xDE5D,0xDE59,
- 0xDC77,0xDE84,0xDC41,0xDCFD,0xDD1A,0xDD63,0xDEB6,0xDEB2,0xDEE9,0xDEE7,
- 0xDED6,0xDF30,0xDEEC,0xDEDD,0xDEE8,
- /* plane 5, row 17 */
- 1 | (94 << 8), /* first, last */
- 0xD840,0xD840,0xD840,0xD841,0xD841,0x34BC,0xD841,0xD841,0x34D8,
- 0xD841,0xD841,0x34F4,0xD842,0xD842,0xD842,0xD842,0xD87E,0xD842,0xD842,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0xD844,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD851,0xD845,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0x3785,0xD846,0x3783,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,
- 1, /* first low-surrogate */
- 0xDEB0,0xDEB5,0xDEE1,0xDC98,0xDC99, 0,0xDD93,0xDDE5, 0,
- 0xDF60,0xDF5E, 0,0xDC7B,0xDCF1,0xDCF3,0xDE7F,0xDC38,0xDF57,0xDF58,
- 0xDD39,0xDDA7,0xDD35,0xDD60,0xDD51,0xDD62,0xDD42,0xDD3C,0xDD43,0xDDAB,
- 0xDDA9,0xDDB4,0xDD79,0xDD6A,0xDD3B,0xDDAA,0xDD33,0xDD37,0xDD27,0xDDA8,
- 0xDD70,0xDD2F,0xDD36,0xDDB5,0xDD30,0xDD3A,0xDD38,0xDDB1,0xDDAC,0xDD2E,
- 0xDD75,0xDDB0,0xDDF7,0xDE00,0xDDF1,0xDDF3,0xDF60,0xDF61,0xDF32,0xDF2D,
- 0xDF4A,0xDF2A,0xDD67,0xDDA2,0xDDA3,0xDD9E,0xDDA4,0xDE44,0xDE32,0xDF9B,
- 0xDF98,0xDF99,0xDF9A,0xDF66,0xDF62,0xDF6B,0xDD62,0xDF67,0xDE3B,0xDE23,
- 0xDE29,0xDF7E,0xDFF3, 0,0xDFF5, 0,0xDC80,0xDC7E,0xDC7C,0xDC7F,
- 0xDC7D,0xDC81,0xDE25,0xDE29,0xDE17,
- /* plane 5, row 18 */
- 1 | (94 << 8), /* first, last */
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0x38BA,0xD848,
- 0xD848,0xD848,0xD848,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0x3969,0xD849,0xD849,0x3945,
- 0xD849,0xD849,0xD849,0xD849,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84D,0xD84D,0x3B6C,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD87E,
- 1, /* first low-surrogate */
- 0xDE63,0xDE67,0xDE65,0xDE2A,0xDE68,0xDE26,0xDE64,0xDE1B,0xDE62,
- 0xDE69,0xDFFE,0xDC44,0xDC42,0xDCB7,0xDCD2,0xDCD4,0xDCD7,0xDCDC,0xDCD1,
- 0xDCD5,0xDCCD,0xDCD8,0xDD9A,0xDE42,0xDE35,0xDE58,0xDE34,0xDE3C,0xDE3B,
- 0xDE3E,0xDE3D,0xDE5A,0xDE41,0xDE38,0xDE45,0xDE33,0xDF26, 0,0xDFF7,
- 0xDFEF,0xDFF0,0xDFEE,0xDC9D,0xDD06,0xDD11,0xDD08,0xDD02,0xDD0A,0xDD07,
- 0xDE91,0xDE8E,0xDE85,0xDEE8,0xDF17,0xDED4, 0,0xDEC4,0xDED5, 0,
- 0xDED8,0xDE80,0xDEDE,0xDF42,0xDDC7,0xDDBF,0xDF8D,0xDF89,0xDF90,0xDF9A,
- 0xDFC8,0xDF92,0xDFA1,0xDF84,0xDF57,0xDF47,0xDF77,0xDF3A,0xDF50,0xDF42,
- 0xDF43,0xDFA3,0xDC77,0xDDB2,0xDDE2,0xDDBD,0xDF74,0xDC82,0xDCB8, 0,
- 0xDCBA,0xDCB9,0xDCBB,0xDC87,0xDCE4,
- /* plane 5, row 19 */
- 1 | (94 << 8), /* first, last */
- 0xD84D,0xD84D,0xD840,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0x3D04,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD850,0xD850,0xD850,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0x3E3A,0xD851,0xD851,0xD851,0x3E79,
- 0xD851,0xD851,0x7309,0xD851,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD853,0xD853,0xD853,0x3F5D,0xD87E,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0x3F8A,0xD853,0xD853,
- 0xD853,0xD87E,0xD854,0xD854,0xD854,0xD854,0x4027,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD854,
- 1, /* first low-surrogate */
- 0xDC83,0xDCB7,0xDC43,0xDCCE,0xDCBA,0xDD73,0xDE09,0xDE0A,0xDE0B,
- 0xDE07,0xDE05,0xDE0E,0xDE97,0xDF77,0xDF7B,0xDF7A,0xDF74,0xDF79,0xDD86,
- 0xDDF5,0xDDA5,0xDD9D,0xDDBE,0xDD96,0xDDE1,0xDDA4,0xDDA1,0xDDF6, 0,
- 0xDD8D,0xDD8B,0xDD78,0xDD98,0xDE0A,0xDE5D,0xDE27,0xDE5F,0xDDC0,0xDDC1,
- 0xDE6D,0xDE5E,0xDE8A,0xDE62,0xDE64, 0,0xDFC0,0xDFCA,0xDFD1, 0,
- 0xDFC7,0xDFCE, 0,0xDFC5,0xDD36,0xDD57,0xDD77,0xDEF6,0xDEF7,0xDF55,
- 0xDF44,0xDF3E,0xDF42,0xDF52,0xDFE1,0xDC08,0xDC68,0xDC67, 0,0xDD37,
- 0xDD7E,0xDD93,0xDD79,0xDD81,0xDD7D,0xDD7B,0xDD94, 0,0xDF66,0xDFD9,
- 0xDFE0,0xDD3E,0xDC5F,0xDD5F,0xDD5E,0xDD68, 0,0xDD88,0xDD6A,0xDD6C,
- 0xDD66,0xDD67,0xDD89,0xDD60,0xDD85,
- /* plane 5, row 20 */
- 1 | (94 << 8), /* first, last */
- 0xD840,0xD854,0xD854,0xD854,0xD854,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0x4146,0x4140,0xD855,0x413F,0xD855,0xD855,
- 0xD855,0xD855,0xD856,0xD856,0xD856,0xD856,0xD856,0x419D,0x41CB,0xD856,
- 0x41E1,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0x427F,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0x4346,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD859,0xD859,0xD859,0xD859,0x441A,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 1, /* first low-surrogate */
- 0xDF2A,0xDF68,0xDFB9,0xDFBA,0xDFBE,0xDC6F,0xDC80,0xDC74,0xDC81,
- 0xDC7A,0xDC9C,0xDC73,0xDC82,0xDC7F,0xDCA7,0xDC79,0xDC78,0xDC7D,0xDCA8,
- 0xDC7C,0xDE68,0xDE4E,0xDF9E, 0, 0,0xDF98, 0,0xDF85,0xDF9C,
- 0xDFC5,0xDF9A,0xDD68,0xDD65,0xDD67,0xDD61,0xDD60, 0, 0,0xDE7B,
- 0,0xDF19,0xDF0E,0xDF31,0xDF12,0xDF10,0xDF15,0xDF3F,0xDF1D,0xDF1E,
- 0xDE4D,0xDE48,0xDE45,0xDE42,0xDE49,0xDE4A,0xDE47, 0,0xDE4C,0xDFCD,
- 0xDFD5,0xDFC4,0xDFCA,0xDFC3, 0,0xDE29,0xDEB4,0xDF6D,0xDF66,0xDF6A,
- 0xDC15,0xDCD3,0xDCEC,0xDD55, 0,0xDED6,0xDED8,0xDF51,0xDEE0,0xDF03,
- 0xDF04,0xDEDA,0xDEEA,0xDF02,0xDED3,0xDEE4,0xDEE5,0xDD3B,0xDD66,0xDE2C,
- 0xDE21,0xDE26,0xDED4,0xDED5,0xDED9,
- /* plane 5, row 21 */
- 1 | (94 << 8), /* first, last */
- 0xD85A,0xD85A,0xD85A,0x44D3,0xD85B,0xD85A,0xD85A,0xD85B,0xD85A,
- 0x44D0,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85C,0x458E,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0x46C3,0x46B6,0xD85E,0xD85E,0xD85E,0x8A2F,
- 0xD85E,0x46C0,0x46B8,0xD848,0xD849,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0x47D9,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,
- 1, /* first low-surrogate */
- 0xDFD5,0xDFEB,0xDFC5, 0,0xDC27,0xDFF0,0xDFB9,0xDC18,0xDFEE,
- 0,0xDFB7,0xDFBB,0xDFEF,0xDFB8,0xDFDF,0xDFDA,0xDFE3,0xDFC9,0xDFEC,
- 0xDDA4, 0,0xDDA3,0xDE5E,0xDE61,0xDE62,0xDE63,0xDE8E,0xDE69,0xDE6B,
- 0xDE85,0xDE8D,0xDE64,0xDE6D,0xDE4C,0xDE49,0xDE47,0xDE48,0xDE42,0xDE45,
- 0xDE5B,0xDE5D,0xDE46,0xDC13,0xDC1A,0xDC0E,0xDC0F,0xDC1B,0xDC12,0xDCC3,
- 0xDCBE,0xDCBD,0xDD79,0xDD7C, 0, 0,0xDD80,0xDD75,0xDD9B, 0,
- 0xDD74, 0, 0,0xDC41,0xDC94,0xDC30,0xDCA7,0xDCA5,0xDCA4,0xDD3A,
- 0xDE5B,0xDE9F,0xDEA8,0xDEB3,0xDEA1,0xDEA7,0xDEB2,0xDE9D,0xDEA3,0xDEA2,
- 0xDFEF,0xDFD9, 0,0xDFD5,0xDFDD,0xDFDA,0xDFEE,0xDFD7,0xDE1A,0xDE19,
- 0xDE18,0xDEB3,0xDEBF,0xDEBB,0xDEC0,
- /* plane 5, row 22 */
- 1 | (94 << 8), /* first, last */
- 0xD860,0xD860,0xD860,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0x48EC,0xD861,0xD861,0xD861,0xD861,0xD862,0xD862,0xD862,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD866,0xD866,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD840,0xD841,0xD841,
- 0xD842,0xD842,0xD842,0xD842,0x52DC,0xD842,0xD842,0xD842,0x35CC,0xD843,
- 0x35A2,0xD843,0xD843,0xD843,0xD843,0xD843,0x35B6,0xD843,0xD843,0x35C5,
- 0x35C6,0xD843,0xD843,0xD843,0xD843,
- 1, /* first low-surrogate */
- 0xDEB9,0xDEB8,0xDED5,0xDC11,0xDC10,0xDCC3,0xDCC2,0xDCE9,0xDCCD,
- 0xDCE5,0xDCCA,0xDCC7,0xDCE8,0xDEF1,0xDF0C,0xDEEF,0xDEEE,0xDEF3,0xDF0D,
- 0xDEF6,0xDEF0, 0,0xDFF5,0xDFF4,0xDFF8,0xDFFE,0xDD11,0xDD22,0xDD42,
- 0xDC5C,0xDC5A,0xDC5D,0xDCD1,0xDCD0,0xDE75,0xDE7B,0xDF89,0xDC4D,0xDE89,
- 0xDE92,0xDE8C,0xDE88,0xDC67,0xDC68,0xDF21,0xDEF2,0xDF09,0xDEF8,0xDEF0,
- 0xDEF3,0xDEF5,0xDEFB,0xDEF7,0xDEEF,0xDF0B,0xDCA2,0xDDF5,0xDDF3,0xDDF4,
- 0xDDF2,0xDE98,0xDF68,0xDF80,0xDF85,0xDF8E,0xDF8F,0xDEF4,0xDF86,0xDFA4,
- 0xDC86,0xDC89,0xDC87,0xDC85, 0,0xDC88,0xDEFF,0xDF66, 0,0xDDC3,
- 0,0xDDC4,0xDE3B,0xDDE7,0xDDF8,0xDDFB, 0,0xDDBE,0xDDC6, 0,
- 0,0xDDFC,0xDDC0,0xDE33,0xDDC9,
- /* plane 5, row 23 */
- 1 | (94 << 8), /* first, last */
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD844,0xD844,0xD844,
- 0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0x3683,0x5921,
- 0xD845,0xD842,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0x36F8,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0x36F6,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD847,0xD847,
- 0x379B,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0x5E3F,0xD848,0xD848,
- 1, /* first low-surrogate */
- 0xDDFE,0xDDDA,0xDDCC,0xDDBB,0xDDFD,0xDDDF,0xDDCD,0xDDC2,0xDDC8,
- 0xDE32,0xDE2D,0xDDD2,0xDE31,0xDDD3,0xDE2E,0xDDCF,0xDDFF,0xDE09,0xDDFC,
- 0xDF72,0xDFAA,0xDFAB,0xDFA7,0xDF7B,0xDF76,0xDFA8,0xDFAC, 0, 0,
- 0xDDAA,0xDE03,0xDDAC,0xDDAD,0xDDAB,0xDE50,0xDE58,0xDFDD, 0,0xDFAE,
- 0xDFA2,0xDFAB,0xDFE3,0xDFAF,0xDFE0,0xDFE4, 0,0xDFA7,0xDFAA,0xDFE2,
- 0xDFE1,0xDFDF,0xDFAD,0xDFE5,0xDFD1,0xDFAC,0xDFD5,0xDFA3,0xDF9F,0xDD79,
- 0xDD76,0xDE43,0xDE3D,0xDE47,0xDE44,0xDE3F,0xDE5B,0xDF7F,0xDC9A,0xDC9C,
- 0,0xDD1E,0xDE88,0xDE6A,0xDE76,0xDE72,0xDE70,0xDE7E,0xDE6C,0xDE6F,
- 0xDE75,0xDE77,0xDE78,0xDE8A,0xDE79,0xDE94,0xDC01,0xDD05,0xDCF1,0xDCEE,
- 0xDCEF,0xDD04, 0,0xDCFA,0xDD07,
- /* plane 5, row 24 */
- 1 | (94 << 8), /* first, last */
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0x388D,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0x3956,0xD849,0xD849,0xD84A,0xD849,0xD849,
- 0x395B,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84B,0xD84B,0xD84B,
- 0xD84A,0xD84B,0xD84A,0xD84A,0xD84A,0xD84A,0xD84B,0xD84A,0xD84B,0xD84A,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0x3A96,0xD84B,0xD84B,
- 1, /* first low-surrogate */
- 0xDCF4,0xDCF5,0xDD9C,0xDE6D,0xDE69,0xDE66,0xDE62,0xDE46, 0,
- 0xDE65,0xDE5D,0xDE5E,0xDE5F,0xDF8E,0xDC02,0xDC06,0xDC04,0xDC03,0xDC62,
- 0xDD27,0xDD21,0xDD20,0xDD24,0xDD29,0xDD31,0xDD23,0xDD22,0xDEDC,0xDF4D,
- 0xDEE5,0xDED3,0xDEEE,0xDEE6, 0,0xDF36,0xDF40,0xDC3F,0xDF3D,0xDF44,
- 0,0xDF5F,0xDF29,0xDF49,0xDF8A,0xDF2A,0xDF87,0xDF4C,0xDF31,0xDF48,
- 0xDF2B,0xDF3B,0xDF41,0xDEC9,0xDF34,0xDF53,0xDF35,0xDF47,0xDF38,0xDDD1,
- 0xDDD2,0xDE51,0xDE55,0xDE52,0xDE53,0xDF8F,0xDFF4,0xDC47,0xDC0D,0xDC1C,
- 0xDFFB,0xDC19,0xDFF7,0xDFF9,0xDFF5,0xDFE9,0xDC0A,0xDFEE,0xDC0B,0xDFFD,
- 0xDC06,0xDC02,0xDC16,0xDC18,0xDFF0,0xDED4,0xDF66,0xDF6A,0xDF75,0xDF76,
- 0xDF80,0xDF6D, 0,0xDF69,0xDF67,
- /* plane 5, row 25 */
- 1 | (94 << 8), /* first, last */
- 0xD84B,0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0x3B7E,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0x3B81,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0x3C35,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0x3C9B,
- 0xD84E,0xD84F,0x3D00,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,
- 1, /* first low-surrogate */
- 0xDF68,0xDF5D,0xDCA4,0xDCFE,0xDCFD,0xDDEC,0xDDE9,0xDE21,0xDDEB,
- 0xDDE7,0xDDF2,0xDE20,0xDF7A,0xDD2D,0xDD2E,0xDCCA,0xDD2F,0xDCC8, 0,
- 0xDCCB,0xDCC3,0xDC84,0xDCD2,0xDCC6, 0,0xDCCF,0xDCD5,0xDCD4,0xDCDD,
- 0xDD2B,0xDDA3,0xDCDB,0xDD2C,0xDD13, 0,0xDCD1,0xDCCC,0xDCD5,0xDCC9,
- 0xDCCF,0xDCD2,0xDD7B,0xDD7C,0xDE23,0xDE1D,0xDE1C,0xDE1E,0xDE22,0xDE24,
- 0xDE20,0xDE18,0xDE21,0xDF88,0xDF8A,0xDF94,0xDF8F,0xDF8E,0xDF90, 0,
- 0xDFA7,0xDC64, 0,0xDE18,0xDE14,0xDE1D,0xDE05,0xDDFF,0xDE1B,0xDE1A,
- 0xDE19,0xDE03,0xDE0E,0xDE47,0xDE04,0xDE5A,0xDE07,0xDE20,0xDE6A,0xDE66,
- 0xDE7A,0xDE65,0xDEAF,0xDDCD,0xDDCF,0xDDD1,0xDDCE,0xDE5F,0xDE77,0xDE74,
- 0xDE88,0xDE75,0xDE89,0xDE72,0xDFC6,
- /* plane 5, row 26 */
- 1 | (94 << 8), /* first, last */
- 0xD851,0xD851,0xD852,0xD851,0xD851,0xD851,0xD851,0xD851,0xD852,
- 0xD852,0xD852,0xD852,0x3ED3,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0x3F9F,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD855,0xD855,0x40B1,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0x414B,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,
- 1, /* first low-surrogate */
- 0xDFEA,0xDFE0,0xDC07,0xDFE6,0xDFE5,0xDFDD,0xDFE3,0xDFDA,0xDDAE,
- 0xDD7E,0xDD7D,0xDD7F, 0,0xDDD9,0xDEFA,0xDEFB,0xDF4D,0xDF54,0xDF51,
- 0xDF50,0xDD98,0xDD95,0xDD9D,0xDDC1,0xDD9A,0xDD9B, 0,0xDD9C,0xDDD7,
- 0xDDA4,0xDD96,0xDDA0,0xDF31,0xDFE9,0xDC6E,0xDD9A,0xDDA5,0xDD94,0xDDA6,
- 0xDD99,0xDD8B,0xDD98,0xDD91,0xDD8C,0xDDA1,0xDDA3,0xDDC6,0xDF6F,0xDF6D,
- 0xDF6A,0xDF6C,0xDF71,0xDF6E,0xDFDF,0xDCAC,0xDCAA, 0,0xDCB5,0xDCAD,
- 0xDCB2,0xDCB3,0xDCAB,0xDCB6,0xDCC7,0xDCC6,0xDE6C,0xDE70,0xDFB3, 0,
- 0xDD8C,0xDD81,0xDD83,0xDD7D,0xDD85,0xDD90,0xDDA2,0xDD8D,0xDD8F,0xDD7E,
- 0xDD8A,0xDD7F,0xDD76,0xDD87,0xDD78,0xDE80,0xDE82,0xDE81,0xDE83,0xDF5A,
- 0xDF34,0xDF2C,0xDF2A,0xDF40,0xDF2D,
- /* plane 5, row 27 */
- 1 | (94 << 8), /* first, last */
- 0xD856,0xD856,0xD856,0x7B3F,0xD856,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0x42D6,0xD857,0xD857,0xD858,0xD857,0xD857,0xD857,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0x4389,0xD859,0xD859,0xD859,
- 0xD859,0xD85A,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0x4400,0xD859,0xD859,0xD87E,0xD859,
- 0xD85A,0xD85A,0xD85A,0xD85B,0x44DC,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0x83D0,
- 0x4590,0xD85C,0xD85C,0xD85C,0x45B1,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0x86E7,0xD85C,0xD85C,0xD85C,
- 1, /* first low-surrogate */
- 0xDF33,0xDF2B,0xDF4B, 0,0xDF3C,0xDE5A,0xDE77,0xDE60,0xDFFA,
- 0xDFF9,0xDFFC, 0,0xDFF5,0xDFE8,0xDC09,0xDFE7,0xDFE6,0xDFE9,0xDE32,
- 0xDE2C,0xDEBD,0xDEBC,0xDF7A,0xDF7E,0xDF79, 0,0xDC23,0xDC30,0xDC28,
- 0xDCD4,0xDECE,0xDCF1,0xDCF0,0xDD60,0xDD65,0xDEA8,0xDF0A,0xDF1B,0xDF12,
- 0xDF07,0xDF4F,0xDF0E,0xDF52,0xDF16, 0,0xDF53,0xDF54,0xDD84,0xDF56,
- 0xDD6D,0xDD72,0xDE2F,0xDC2A, 0,0xDC63,0xDC84,0xDCAF,0xDC45,0xDC70,
- 0xDC56,0xDC16,0xDC3D,0xDC38,0xDC6F,0xDC77,0xDC2E,0xDC31,0xDC4C,0xDC5F,
- 0xDC75,0xDC39,0xDC3A,0xDC2C,0xDC2D,0xDC3F,0xDC2F,0xDC30,0xDC3E, 0,
- 0,0xDDB2,0xDEB7,0xDE8F, 0,0xDE96,0xDE9E,0xDE97,0xDE95,0xDEA5,
- 0xDE98, 0,0xDEA3,0xDE9A,0xDEAD,
- /* plane 5, row 28 */
- 1 | (94 << 8), /* first, last */
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0x45AA,0xD85C,0xD85C,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0x467D,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0x4769,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0x47A1,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0x47E7,0xD85F,0xD860,0x47EC,0xD85F,0xD85F,0xD860,0x47DF,0xD860,0xD860,
- 0xD860,0x4833,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,
- 1, /* first low-surrogate */
- 0xDEA6,0xDEB6,0xDE99,0xDEAF,0xDEAC, 0,0xDE9F,0xDE94,0xDDEB,
- 0xDE6F,0xDE6D,0xDE7E,0xDE6C,0xDE61,0xDE63,0xDE6B,0xDE5E,0xDE3E,0xDE64,
- 0xDEAD, 0,0xDC20,0xDCD1,0xDCD5,0xDDAE,0xDDAF,0xDD9F,0xDDA8,0xDDCA,
- 0xDFE1,0xDC39,0xDC38,0xDC3B,0xDCAD,0xDCB5,0xDCAF,0xDCB1,0xDCAE,0xDCB4,
- 0xDCB0,0xDD4B,0xDD51,0xDD4C, 0,0xDD60,0xDEBE,0xDEB9,0xDEB7,0xDEB6,
- 0,0xDEBD,0xDEB8,0xDEC1,0xDFF7,0xDFF3,0xDFF4,0xDFFB,0xDFFD,0xDFF5,
- 0,0xDFFA,0xDC14, 0,0xDFF2,0xDFFC,0xDC00, 0,0xDE2B,0xDE29,
- 0xDE2E, 0,0xDED7,0xDEDB,0xDED9,0xDED8,0xDEE6,0xDED6,0xDED1,0xDEE7,
- 0xDED0,0xDEDC,0xDCED,0xDD1A,0xDD19,0xDD16,0xDCEC,0xDCEF,0xDCEE,0xDCF4,
- 0xDD2F,0xDF30,0xDF19,0xDF18,0xDF11,
- /* plane 5, row 29 */
- 1 | (94 << 8), /* first, last */
- 0xD861,0xD861,0xD861,0xD861,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD865,0xD865,0xD87E,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD866,0xD866,
- 0x4BEE,0xD867,0x4C32,0xD84C,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0x34FC,0xD841,0xD841,0xD841,0xD841,0xD842,0xD842,0xD842,0x352A,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,
- 1, /* first low-surrogate */
- 0xDF16,0xDF12,0xDF10,0xDF14,0xDC0C,0xDC0D,0xDD10,0xDD29,0xDD28,
- 0xDC65,0xDC66,0xDCDE,0xDCDF,0xDCE0,0xDCD9,0xDCDB,0xDCD8,0xDCE3,0xDCD7,
- 0xDEA6,0xDEA7,0xDEBF,0xDEA8,0xDE9F,0xDEA1,0xDEA2,0xDEAD,0xDEA3,0xDEA0,
- 0xDC83,0xDC85,0xDC82,0xDC84,0xDDEE,0xDE5D,0xDF92,0xDC55,0xDC53,0xDDFC,
- 0xDC51,0xDC52,0xDC50,0xDD9D,0xDE87,0xDE97,0xDE9B,0xDE9D,0xDC69,0xDE11,
- 0,0xDC7A, 0,0xDE44,0xDCC6,0xDF40,0xDF2E,0xDF68,0xDF2D,0xDF34,
- 0xDF32,0xDF69,0xDF31,0xDF6A,0xDF3E,0xDF6F,0xDF75,0xDCF6,0xDD20,0xDD28,
- 0xDD67,0xDDFB,0xDDFE,0xDDFC,0xDDFD,0xDDFF,0xDDFA,0xDFAC,0xDFAF,0xDFB1,
- 0,0xDFBF,0xDFBE,0xDFA7,0xDFAA,0xDC94,0xDC93,0xDC99, 0,0xDCFA,
- 0xDD56,0xDE22,0xDE91,0xDE92,0xDF08,
- /* plane 5, row 30 */
- 1 | (94 << 8), /* first, last */
- 0xD842,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0x35D3,0xD843,0xD843,0xD843,0x35D7,
- 0xD843,0xD843,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD846,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD846,0xD845,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0x37F3,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,
- 1, /* first low-surrogate */
- 0xDF06,0xDDD6,0xDE37,0xDE4B,0xDECE,0xDED0,0xDE39,0xDE64,0xDECF,
- 0xDE46,0xDE66,0xDE56,0xDE43,0xDE4A,0xDE58,0xDE65,0xDE5A,0xDE5B,0xDE55,
- 0xDE50,0xDE4C,0xDECD,0xDE51,0xDE47, 0,0xDE53,0xDE62,0xDECC, 0,
- 0xDE7F,0xDE4D,0xDE0A,0xDE0C,0xDE0F,0xDFBB,0xDFB9,0xDFEB,0xDFAE,0xDFC1,
- 0xDFEA,0xDFBE,0xDFBF,0xDFBA,0xDFB7,0xDFB3,0xDFE9,0xDD6E,0xDDAF,0xDDB3,
- 0xDDB2,0xDE68,0xDE69,0xDE6A,0xDFDE,0xDFEB,0xDC11,0xDFED,0xDFE9,0xDFF7,
- 0xDFF4,0xDFEA,0xDC12,0xDFE8,0xDC13,0xDD8E,0xDD86,0xDE63,0xDE65,0xDF99,
- 0xDCC2,0xDCAE,0xDCB0,0xDCAD,0xDEB4,0xDED1,0xDEAD, 0,0xDEBD,0xDEB7,
- 0xDEAB,0xDEAF,0xDEC1,0xDEB5,0xDD0F,0xDD0E,0xDD1C,0xDD13,0xDD0A,0xDD1E,
- 0xDD14,0xDD1A,0xDDCB,0xDE87,0xDE93,
- /* plane 5, row 31 */
- 1 | (94 << 8), /* first, last */
- 0x3891,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD849,0x38C0,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0x6117,0xD849,0x3963,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0x3970,0xD849,0xD849,0xD849,0xD840,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0x3B02,0xD84C,0xD84C,0xD84C,
- 0xD87E,0xD84C,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD87E,0xD84D,0xD84D,0xD84D,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 2, /* first low-surrogate */
- 0xDE84,0xDE85,0xDE92,0xDE80,0xDF2B,0xDF63,0xDC0A, 0,
- 0xDC66,0xDD34,0xDD33,0xDD4D,0xDF89,0xDF57, 0,0xDF4A, 0,0xDF39,
- 0xDF3F,0xDF90,0xDF8F,0xDFB2,0xDF9F,0xDF95,0xDFA1,0xDF9C,0xDF8E,0xDFA0,
- 0xDFAE,0xDF96,0xDFCA,0xDFAC, 0,0xDFA6,0xDF97,0xDF93,0xDFB6,0xDDD6,
- 0xDDE0,0xDDD8,0xDE56,0xDC6E,0xDC7E,0xDC74,0xDC77,0xDC80,0xDC7A,0xDC6B,
- 0xDC5F,0xDC76,0xDCB0,0xDC63,0xDF92,0xDF82,0xDF9D,0xDF94,0xDF83,0xDF8B,
- 0xDF84,0xDC57,0xDC84,0xDCB5,0xDD09,0xDDE6, 0,0xDE25,0xDE51,0xDF3E,
- 0xDCDA,0xDF85,0xDD3F,0xDD42,0xDD38,0xDD3A,0xDD4E,0xDD45,0xDD39,0xDD37,
- 0xDD44,0xDCE7,0xDDA4,0xDD3D,0xDD41,0xDCDF,0xDCDE,0xDCCA,0xDCE9,0xDCE2,
- 0xDCE0,0xDD89,0xDD87,0xDE32,0xDE33,
- /* plane 5, row 32 */
- 1 | (94 << 8), /* first, last */
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84F,0xD84F,0x3D35,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD851,0xD851,0xD851,0xD865,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0x3EE0,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0x3F9A,0xD853,0xD853,0xD853,0x3FA3,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0x4005,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD84E,0xD854,0xD854,0xD854,
- 1, /* first low-surrogate */
- 0xDEAC,0xDEF9,0xDF0D,0xDFB9,0xDE5E,0xDE6A, 0,0xDE81,0xDE69,
- 0xDEAC,0xDE80,0xDE75,0xDE71,0xDE76,0xDE6F,0xDEB6,0xDF03,0xDEBF,0xDF01,
- 0xDEB2,0xDEC4,0xDDDB,0xDDDC,0xDDD8,0xDE72,0xDEB5,0xDEA8,0xDE8F,0xDE9E,
- 0xDE8E,0xDFDE,0xDFE2,0xDC20,0xDC1D,0xDC1A,0xDC19,0xDC2B,0xDC18,0xDC10,
- 0xDC0E,0xDC24,0xDC1F,0xDC13,0xDC35,0xDD83, 0,0xDDD7,0xDF02,0xDF03,
- 0xDF5C,0xDF5F,0xDFC7,0xDC9A,0xDC97,0xDCA3,0xDDF7,0xDDC6,0xDDCC,0xDDD6,
- 0xDDCD,0xDDF9,0xDDD9,0xDDD8, 0,0xDDD1,0xDDCE,0xDDD5, 0,0xDDD4,
- 0xDDF8,0xDF7A,0xDF79,0xDF7F,0xDFF3,0xDFF5,0xDFF6,0xDFF4,0xDFF7, 0,
- 0xDC79,0xDD9C,0xDDDF,0xDDF5,0xDDFF,0xDDD1,0xDDDA,0xDDCF,0xDDCD,0xDDDE,
- 0xDDD8,0xDEAD,0xDDE0,0xDDFE,0xDD9E,
- /* plane 5, row 33 */
- 1 | (94 << 8), /* first, last */
- 0xD854,0xD854,0xD854,0xD854,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0x415E,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0x41A6,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0x435D,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0x43B8,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,
- 1, /* first low-surrogate */
- 0xDF75,0xDF73,0xDF72,0xDFD8,0xDCD0,0xDCD6,0xDCD7,0xDCCA,0xDCCD,
- 0xDE8A,0xDE89,0xDE8B,0xDFD3,0xDFDA,0xDFCE,0xDFD2, 0,0xDFD4,0xDFD7,
- 0xDFD5,0xDFFB,0xDFCD,0xDFFA,0xDFD6, 0,0xDD9B,0xDD9E,0xDD9D,0xDDA4,
- 0xDD9F,0xDDA5,0xDDA8,0xDE8F,0xDE8C,0xDE95,0xDF60,0xDF55,0xDF5C,0xDF6F,
- 0xDF51,0xDF61,0xDFA7,0xDF5E,0xDF62,0xDF54,0xDF6E,0xDF52,0xDF58,0xDF6D,
- 0xDF5F,0xDF6C,0xDF50,0xDF5D,0xDF8E,0xDE72,0xDE78,0xDE75,0xDE76,0xDE7C,
- 0xDE7E,0xDE7D,0xDC15,0xDC14,0xDC1D,0xDC1C,0xDC23,0xDC57,0xDEC8, 0,
- 0xDEC9,0xDEC5,0xDF87,0xDF8A,0xDF94,0xDC39,0xDC40,0xDC3E,0xDC38,0xDCD6,
- 0,0xDD77,0xDD78,0xDD7D,0xDEDD,0xDF5E,0xDF77,0xDFD4,0xDF66,0xDF5F,
- 0xDF73,0xDF72,0xDF97,0xDF5A,0xDF96,
- /* plane 5, row 34 */
- 1 | (94 << 8), /* first, last */
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0x4434,0xD859,
- 0xD85A,0xD85A,0xD85A,0x446F,0xD85A,0xD85A,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85C,
- 0xD85C,0x4594,0x4593,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0x8714,0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0x88D1,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 1, /* first low-surrogate */
- 0xDF5D,0xDF65,0xDF70,0xDF75,0xDF74,0xDF5C,0xDF60, 0,0xDF6D,
- 0xDD41,0xDE3C,0xDE3E, 0,0xDE49,0xDFE4,0xDD0C,0xDD15,0xDD0E,0xDCD4,
- 0xDCC7,0xDD14,0xDCDB,0xDD5F,0xDCED,0xDD09,0xDCCF,0xDCFF,0xDD1A,0xDCF5,
- 0xDCEE,0xDCE5,0xDD0D,0xDCDF,0xDCEC,0xDCD7,0xDD2C,0xDCCD,0xDCE3,0xDD00,
- 0xDCEB,0xDCFD,0xDD0F,0xDD2D,0xDD50,0xDCFE,0xDCC4,0xDCE1,0xDCF9,0xDDBB,
- 0xDDBC, 0, 0,0xDDBA,0xDED0,0xDED6,0xDECE,0xDEE1,0xDED5,0xDECF,
- 0xDED3, 0,0xDED4,0xDDB5,0xDE90,0xDEA1,0xDE81,0xDE85,0xDE6E,0xDE88,
- 0xDE82,0xDE86,0xDE8F,0xDE89,0xDE80,0xDE84, 0,0xDC29,0xDC2B,0xDC2A,
- 0xDC30,0xDCE2,0xDCE3,0xDCE1,0xDDD5,0xDDC4,0xDDC9,0xDDE0,0xDDDF,0xDDCB,
- 0xDDDD,0xDDE8,0xDDD4,0xDE1C,0xDFB5,
- /* plane 5, row 35 */
- 1 | (94 << 8), /* first, last */
- 0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0x8CCB,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0x4792,0xD85F,0xD85F,0xD85F,0x47AA,0xD85F,0xD85F,0xD85F,0x47A7,0xD85F,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0x47EF,0xD860,0xD860,0xD860,0xD860,0x8EED,0xD860,
- 0xD860,0xD860,0xD860,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD862,0xD862,0xD862,0xD862,0xD862,0x4922,0xD862,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,
- 1, /* first low-surrogate */
- 0xDFB6,0xDFE5,0xDC45,0xDC49,0xDC40,0xDC46,0xDC44,0xDC4A,0xDCC9,
- 0xDCC4,0xDCC2,0xDD68, 0,0xDD82,0xDD6B,0xDD67,0xDD6C,0xDD6D,0xDD71,
- 0,0xDED7,0xDED2,0xDED9, 0,0xDEBC,0xDEDD,0xDED6, 0,0xDED8,
- 0xDC20,0xDC16,0xDC18,0xDC15,0xDC19,0xDC27,0xDC50,0xDC1D,0xDC2C,0xDC1C,
- 0xDC29,0xDC2B,0xDC24, 0,0xDC28,0xDE39,0xDEF2,0xDEF0, 0,0xDEED,
- 0xDEEF,0xDEEA,0xDF01,0xDCBC,0xDD5C,0xDD5B,0xDD5A,0xDD26,0xDF43,0xDF33,
- 0xDF3A,0xDF37,0xDF36,0xDF3C,0xDF34,0xDF4A,0xDF3B,0xDF35,0xDF3D,0xDF40,
- 0xDF3E,0xDF17,0xDC26,0xDC24,0xDC10,0xDC36,0xDC25, 0,0xDD66,0xDC7F,
- 0xDC7A,0xDCFB,0xDCFD,0xDCFC,0xDCFA,0xDED6,0xDED2,0xDEC8,0xDEC2,0xDEC7,
- 0xDECD,0xDEC1,0xDEC6,0xDECC,0xDFA1,
- /* plane 5, row 36 */
- 1 | (94 << 8), /* first, last */
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0x4AB5,0xD87E,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD866,0x4B75,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD868,0xD869,0xD840,0xD840,0x3482,0xD840,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0x52EC,0xD842,0xD842,
- 0xD842,0x52E8,0xD842,0xD842,0xD842,0xD842,0x3535,0xD842,0xD842,0xD842,
- 0xD842,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD840,
- 1, /* first low-surrogate */
- 0xDC95,0xDC94,0xDC97,0xDC96,0xDC93,0xDCA1,0xDE09,0xDE08,0xDE67,
- 0xDE65,0xDE62,0xDE61,0xDF97,0xDC01,0xDC19,0xDC18,0xDC5C,0xDC67,0xDC6C,
- 0,0xDDFD,0xDC66,0xDC61,0xDC6E,0xDC5D,0xDC5A,0xDDA2,0xDDA9,0xDDA5,
- 0xDDA6,0xDDB2,0xDDA3,0xDEAC,0xDEAA,0xDEAF,0xDEAB,0xDEB1,0xDEC6,0xDEAD,
- 0xDEB9,0xDC70, 0,0xDC0C,0xDC81,0xDC83,0xDC7E,0xDD51,0xDF99,0xDF94,
- 0xDF95,0xDEFE,0xDC18,0xDD05,0xDF72, 0,0xDF99,0xDCAD,0xDE06,0xDFC2,
- 0xDFCB,0xDFD5,0xDFD2,0xDFCC,0xDFD7,0xDFC5,0xDFCA, 0,0xDCA2,0xDCA3,
- 0xDCA1, 0,0xDCA6,0xDCA4,0xDCFF,0xDD00, 0,0xDE06,0xDE25,0xDE9F,
- 0xDF7F,0xDEEA,0xDEEB,0xDEDE,0xDF18,0xDEE0,0xDEE8,0xDEDF,0xDEF1,0xDEEC,
- 0xDF1A,0xDEE6,0xDEE1,0xDF5D,0xDC77,
- /* plane 5, row 37 */
- 1 | (94 << 8), /* first, last */
- 0xD843,0x35F0,0xD843,0xD844,0xD845,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0xD845,0xD845,0xD855,0xD845,0xD845,0xD845,0xD846,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD848,0xD848,0xD848,
- 0xD848,0xD85A,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD87E,0xD848,0xD848,0xD848,0xD848,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0x38F0,0xD849,0xD849,0xD849,0xD849,0xD84A,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD84A,0xD849,0xD849,0xD849,0xD849,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 1, /* first low-surrogate */
- 0xDF1E, 0,0xDF80,0xDE17,0xDC1D,0xDFF7,0xDFEF,0xDFEE,0xDFED,
- 0xDFF5,0xDC1E,0xDDBD,0xDFFF,0xDDBE,0xDE6D,0xDE76,0xDC4C,0xDC19,0xDC48,
- 0xDC1E,0xDC4A,0xDC49,0xDC26,0xDD95,0xDE85,0xDE7E,0xDE97,0xDE7D,0xDF42,
- 0xDF9E,0xDC0C,0xDC0B,0xDC0E,0xDCCF,0xDED8,0xDEE0,0xDEE8,0xDEE9,0xDEE2,
- 0xDEE1,0xDEDA,0xDEE3,0xDED9,0xDEF0,0xDEE7,0xDEE4,0xDD23,0xDD31,0xDD33,
- 0xDD0C,0xDDE0,0xDD26,0xDD24,0xDD32,0xDD27,0xDD21,0xDD30,0xDDA2,0xDDCC,
- 0xDE96,0xDC8F,0xDE98,0xDE9C,0xDE9B,0xDF6B,0xDC12,0xDC14,0xDD5A,0xDD54,
- 0xDD51,0xDD5E,0xDD58, 0,0xDD59,0xDF9A,0xDFF2,0xDFAD,0xDC20,0xDFF1,
- 0xDFF0,0xDFF3,0xDFF4,0xDFE9,0xDFFE,0xDC2E,0xDFE8,0xDFE7,0xDFFF,0xDFF5,
- 0xDDE5,0xDDE7,0xDDE6,0xDDE9,0xDE58,
- /* plane 5, row 38 */
- 1 | (94 << 8), /* first, last */
- 0xD84B,0xD84B,0x3A3E,0xD84B,0x3A39,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD87E,0xD84B,0x3AA2,0xD84B,0x3AA1,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD87E,0xD84C,0xD84C,0xD84C,0x3B3B,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0x3BB7,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0x3C57,0x3C70,0xD84E,0xD84E,0xD84E,0xD866,0xD84E,
- 0xD84E,0xD84E,0x3CA7,0xD84E,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0x3D54,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,
- 1, /* first low-surrogate */
- 0xDC6C,0xDCD9, 0,0xDCCB, 0,0xDCBE,0xDCB5,0xDCD1,0xDCC2,
- 0xDCB6,0xDCD3,0xDCC2,0xDEDA, 0,0xDFAE, 0,0xDFAC,0xDFA9,0xDFBA,
- 0xDFA7,0xDFB3,0xDFBD,0xDFB1,0xDD0E,0xDD11,0xDD0F,0xDE52,0xDE6A,0xDE54,
- 0xDE55,0xDE53,0xDE57,0xDCD0,0xDE5B,0xDE58,0xDE59, 0,0xDDB8,0xDDB5,
- 0xDDBF,0xDDC1,0xDDBB, 0,0xDDC3,0xDDAD,0xDDA8,0xDDAE,0xDDAA,0xDDD0,
- 0xDDB1,0xDDBC,0xDDB7,0xDDB0,0xDDFA,0xDDFB,0xDDB9,0xDD07,0xDCFC,0xDCFF,
- 0xDCF2,0xDCF8,0xDCF4, 0, 0,0xDEAE,0xDF0F,0xDF10,0xDEC1,0xDFC7,
- 0xDFC6,0xDFCE, 0,0xDFDC,0xDED5,0xDED3,0xDF20,0xDEE2,0xDEF1,0xDEDB,
- 0xDEEA,0xDEEB,0xDEE1,0xDEFF,0xDED6,0xDEE0,0xDED7,0xDEE5, 0,0xDF1B,
- 0xDF10,0xDF0F,0xDF0E,0xDF39,0xDF0A,
- /* plane 5, row 39 */
- 1 | (94 << 8), /* first, last */
- 0xD850,0xD850,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0x3F31,0x7527,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD866,0xD853,0xD853,0xD853,0xD853,0x3FBF,0xD853,0x3FE4,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0x404A,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD855,0xD855,0xD855,0xD855,0xD855,0x40CF,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0x798C,
- 1, /* first low-surrogate */
- 0xDF14,0xDF0C,0xDD23,0xDD5A,0xDDE2,0xDE93,0xDEB0,0xDEAB,0xDEBD,
- 0xDEB1,0xDE8D,0xDEAD,0xDEAA,0xDEAC,0xDEBC,0xDEC9,0xDC47,0xDC62,0xDC40,
- 0xDC44,0xDC3F,0xDC43,0xDC3D,0xDC60,0xDC5F,0xDC3A,0xDC42,0xDC5E,0xDC5D,
- 0xDDBC,0xDDE0,0xDDEE,0xDDEB,0xDE0D,0xDF09,0xDF0C,0xDF69,0xDF74,0xDF67,
- 0, 0,0xDCAD,0xDDFF,0xDE16,0xDE08,0xDE09,0xDE00,0xDDFC,0xDE13,
- 0xDE14,0xDE0A,0xDC3E,0xDE29,0xDE17,0xDE3B,0xDDFB, 0,0xDE0E, 0,
- 0xDC08,0xDE1B,0xDE1A,0xDE19,0xDE02, 0,0xDE17,0xDE07,0xDE13,0xDE09,
- 0xDE0A,0xDE12,0xDEAA,0xDE38,0xDF7B,0xDF7C,0xDF7A,0xDFEA,0xDFEB,0xDFEF,
- 0xDFF0,0xDD09,0xDD02,0xDD01,0xDD2B,0xDD07, 0,0xDD28,0xDCFB,0xDD2A,
- 0xDCFE,0xDD04,0xDD29,0xDD0A,
- /* plane 5, row 40 */
- 1 | (94 << 8), /* first, last */
- 0xD855,0x7991,0xD855,0x4114,0xD84B,0xD847,0xD856,0xD855,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0x420D,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0x4201,0xD856,
- 0xD856,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0x42F1,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD87E,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,
- 1, /* first low-surrogate */
- 0xDEC2, 0,0xDEA6, 0,0xDFC6,0xDC07,0xDC0A,0xDFFD,0xDC06,
- 0xDC0D,0xDC09,0xDC0B,0xDC00,0xDC05,0xDC3D,0xDDD5,0xDDBF,0xDDBA,0xDDC7,
- 0xDE98,0xDE9A, 0,0xDFA4,0xDF9C,0xDF9D,0xDFA2,0xDF96,0xDF95,0xDFA5,
- 0xDFAA,0xDFAD,0xDF9A,0xDFA3,0xDF97,0xDF90,0xDFAF,0xDF8D, 0,0xDFA8,
- 0xDFEE,0xDEA3,0xDE99,0xDEA1,0xDE9C,0xDEA4,0xDECB,0xDC56,0xDC48,0xDC59,
- 0xDC4A,0xDC5C, 0,0xDC4F,0xDC4D,0xDC5D,0xDE3A,0xDEE3,0xDEE1,0xDEDE,
- 0xDF97,0xDF9A,0xDC48,0xDC4A,0xDC4C,0xDC4E,0xDC4F,0xDC4B,0xDC4D,0xDC47,
- 0xDC51,0xDCDA,0xDCF9,0xDCFC,0xDCFB,0xDCFD,0xDCF8,0xDCFA,0xDD8A,0xDD8E,
- 0xDD88,0xDD89,0xDD8D,0xDD90,0xDD7E,0xDF1C,0xDFAB,0xDFA4,0xDFA8,0xDFAD,
- 0xDF9F,0xDF9A,0xDFB0,0xDFA5,0xDFD5,
- /* plane 5, row 41 */
- 1 | (94 << 8), /* first, last */
- 0xD859,0xD859,0xD859,0xD859,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0x4476,0xD85A,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0x450A,0x4503,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0x8660,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0x4635,0x4636,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,
- 1, /* first low-surrogate */
- 0xDFA2,0xDFB2,0xDF9D,0xDFA1,0xDD15,0xDD42,0xDD73,0xDD84,0xDDDD,
- 0xDE5C,0xDE4C, 0,0xDE4B,0xDC67,0xDDA8,0xDD7F,0xDD8D,0xDD8B,0xDDF7,
- 0xDDA9,0xDDF4,0xDD9A,0xDD8C,0xDD95,0xDD7E,0xDD77, 0, 0,0xDD71,
- 0xDDFD,0xDD88,0xDD99,0xDD6D,0xDDD4,0xDD91,0xDD7D,0xDD63,0xDD75,0xDDF9,
- 0xDD8E,0xDD74,0xDDD9,0xDD66,0xDDFA,0xDDF5, 0,0xDDC1,0xDDC9,0xDF03,
- 0xDF2C,0xDF34,0xDF17,0xDF09,0xDF04,0xDF06,0xDF1A,0xDF0E,0xDF27,0xDF05,
- 0xDF07,0xDF19,0xDF14,0xDF0C,0xDF1D,0xDF22,0xDF23,0xDDBB,0xDDBC,0xDDBA,
- 0xDEA9,0xDEB5,0xDEAC,0xDEAA,0xDEAF,0xDEB7, 0, 0,0xDC3D,0xDC45,
- 0xDC48,0xDC3C,0xDC3E,0xDCEC,0xDCED,0xDCE9,0xDE0A,0xDE0B,0xDDF8,0xDE04,
- 0xDDF6,0xDDF9,0xDC53,0xDC52,0xDC60,
- /* plane 5, row 42 */
- 1 | (94 << 8), /* first, last */
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0x4773,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0x47B1,0xD85F,
- 0x47AF,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0x47F4,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0x48DC,0xD861,0xD861,0xD861,0xD861,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD863,0xD863,0xD863,0xD863,0x4999,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD864,
- 1, /* first low-surrogate */
- 0xDC63,0xDCCE,0xDCCD,0xDCD0,0xDCCC,0xDD87,0xDD8D,0xDD9D, 0,
- 0xDE63,0xDEF4,0xDEF1,0xDEFF,0xDEF5,0xDEFC,0xDEF2,0xDEF6, 0,0xDEFA,
- 0,0xDC2E,0xDC45,0xDC43,0xDC51,0xDC4C,0xDC73,0xDC47,0xDC4B,0xDC4F,
- 0,0xDC44,0xDC4D,0xDC4E,0xDC4A,0xDC41,0xDC52,0xDC9F,0xDC54,0xDC59,
- 0xDCA2,0xDE4B,0xDE48,0xDF0D,0xDF1F,0xDF08,0xDF0E,0xDF1D,0xDF04,0xDC18,
- 0xDC1B,0xDD66,0xDD62,0xDD83,0xDD67,0xDF62,0xDF4F,0xDF4E,0xDF67,0xDF53,
- 0xDF4D,0xDF4C,0xDF68,0xDF51, 0,0xDF58,0xDF5B,0xDF50,0xDF6A,0xDC39,
- 0xDC38,0xDD82,0xDD84,0xDD86,0xDC80,0xDC86,0xDD25,0xDD11, 0,0xDD0E,
- 0xDD15,0xDD0F,0xDD18,0xDD0D,0xDD13,0xDD16,0xDD19,0xDF08,0xDEF7,0xDEFB,
- 0xDEFC,0xDFB4,0xDFBE,0xDFC1,0xDCA6,
- /* plane 5, row 43 */
- 1 | (94 << 8), /* first, last */
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0x4AB6,0x4ABD,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0x9904,0xD865,0x999B,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0x4BF4,0xD866,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0x4C35,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0x4CAA,0xD868,0x4D1F,0xD868,0xD868,
- 0xD868,0xD840,0xD840,0xD840,0xD840,0xD840,0xD841,0xD840,0xD840,0xD840,
- 0xD841,0xD841,0xD841,0xD841,0xD841,
- 1, /* first low-surrogate */
- 0xDCA5,0xDCA2,0xDCA4,0xDE12,0xDE0E,0xDE7A,0xDE78,0xDE7D,0xDE7E,
- 0xDE81,0xDE83,0xDE80,0xDE82,0xDF9B,0xDF99,0xDF9C,0xDF9A,0xDFA1,0xDC1A,
- 0xDC1C,0xDC8A,0xDC79,0xDC73,0xDC75,0xDC7C,0xDC78,0xDC60,0xDC83,0xDC70,
- 0, 0,0xDC87,0xDC84,0xDC7B,0xDC7E,0xDC74,0xDDB9,0xDDB8,0xDDB7,
- 0xDDB5,0xDECC,0xDECE,0xDED1, 0,0xDECB, 0,0xDC7E,0xDC7A,0xDC77,
- 0xDC8C,0xDCE1,0xDE20,0xDE1E,0xDEC2,0xDF0F,0xDF00, 0,0xDF10,0xDC0D,
- 0xDC0E,0xDC8E,0xDC8D,0xDC8A,0xDC8B,0xDC8C,0xDC8F,0xDD57, 0,0xDD55,
- 0xDD5B,0xDFAC,0xDFA7,0xDFA0,0xDF9E, 0,0xDE8D, 0,0xDF93,0xDF94,
- 0xDF92,0xDD81,0xDFD6,0xDFC3,0xDFE4,0xDFE2,0xDC09,0xDFBF,0xDFC8,0xDFC7,
- 0xDCB5,0xDCB2,0xDE0C,0xDE0B,0xDE0A,
- /* plane 5, row 44 */
- 1 | (94 << 8), /* first, last */
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0x3550,0xD842,0xD842,
- 0xD842,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD840,0xD843,0xD843,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0x377B,0xD847,0xD847,
- 0xD847,0xD847,0x3809,0xD847,0xD847,0xD847,0x3807,0xD847,0xD847,0xD847,
- 0xD847,0xD845,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,
- 1, /* first low-surrogate */
- 0xDE05,0xDFD3,0xDFE6,0xDFE9,0xDFF0,0xDFEA,0xDFE7,0xDCB1,0xDCB3,
- 0xDCB4,0xDCB0,0xDD5C,0xDD5D,0xDD5E,0xDDC0,0xDEAF, 0,0xDF86,0xDF83,
- 0xDF84,0xDF5C,0xDF70,0xDF8C,0xDF7B,0xDF66,0xDF79,0xDF63,0xDFC5,0xDF6B,
- 0xDF6D,0xDF72,0xDF69,0xDF75,0xDF89,0xDFC6,0xDFA5,0xDFE7,0xDF6A,0xDF97,
- 0xDC5A,0xDC5C,0xDC59,0xDC24,0xDC25,0xDC30,0xDC58,0xDC31,0xDD76,0xDDC1,
- 0xDE85,0xDE7D,0xDC65,0xDC87,0xDC52,0xDC54,0xDC8A,0xDC50,0xDC86,0xDC4F,
- 0xDC68,0xDD9D,0xDEA0,0xDEBA,0xDEBD,0xDEB8,0xDFA6, 0,0xDCDE,0xDCD8,
- 0xDCD1,0xDF13, 0,0xDF0E,0xDF1B,0xDF3A, 0,0xDF1C,0xDF12,0xDF16,
- 0xDF1A,0xDC48,0xDD4B,0xDD37,0xDD36,0xDD38,0xDD3A,0xDD49,0xDD3C,0xDD4A,
- 0xDEB1,0xDEC2,0xDEB5,0xDEC4,0xDEB6,
- /* plane 5, row 45 */
- 1 | (94 << 8), /* first, last */
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD84A,0xD849,
- 0x6184,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0x39BB,0xD84B,0xD84B,0x3A4B,0xD84B,0xD84B,0xD84B,
- 0x3A4D,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84C,0xD84C,0xD84C,0x3AC2,0xD84C,0xD84C,0xD84C,0xD84C,0x3B1A,0xD84C,
- 0xD84C,0x3B12,0xD84C,0xD84C,0xD84C,0xD84C,0x3B3C,0xD84C,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0x3BC3,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0x3BC0,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 1, /* first low-surrogate */
- 0xDC1E,0xDC1F,0xDCAF,0xDD6B,0xDD6F,0xDF92,0xDFE4,0xDC2C,0xDFEF,
- 0,0xDC4F,0xDC52,0xDC50,0xDC3A,0xDC37,0xDC47,0xDC64,0xDC40,0xDC3C,
- 0xDC45,0xDC41,0xDDF3, 0,0xDCC1,0xDCB4, 0,0xDD2A,0xDD22,0xDD29,
- 0,0xDD3E,0xDD3C,0xDD30,0xDFC7,0xDFD5,0xDFD6,0xDFD3,0xDFCE,0xDFC8,
- 0xDC5C,0xDC5F,0xDC62, 0,0xDCBD,0xDCBF,0xDE5C,0xDEB6, 0,0xDE9D,
- 0xDE7F, 0,0xDE94,0xDE81,0xDF47,0xDF46, 0,0xDF94,0xDE75,0xDE1A,
- 0xDE2A,0xDE32,0xDE17,0xDE23,0xDE74, 0,0xDE76,0xDE2E,0xDE25,0xDE20,
- 0xDE71,0xDE16,0xDE70,0xDE2C,0xDE2F,0xDE1F,0xDE64, 0,0xDD08,0xDD14,
- 0xDD0A,0xDD0B,0xDE4F,0xDE59,0xDE54,0xDE51,0xDEB6,0xDFEC,0xDFED,0xDFEA,
- 0xDEEE,0xDF5A,0xDF73,0xDF65,0xDF61,
- /* plane 5, row 46 */
- 1 | (94 << 8), /* first, last */
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0x729F,0xD851,0xD851,0xD851,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0x3FE5,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0x405F,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0x4118,0xD841,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,
- 1, /* first low-surrogate */
- 0xDF55,0xDF6B,0xDF64,0xDF5B,0xDF4C,0xDF6F,0xDF84,0xDF70,0xDF5D,
- 0xDF57,0xDF66,0xDF53,0xDF98,0xDF97,0xDD28,0xDDEB,0xDDEA,0xDDE8,0xDDEC,
- 0xDDEF,0xDED1,0xDECA, 0,0xDECF,0xDECD,0xDECE,0xDC70,0xDC67,0xDC73,
- 0xDC6D,0xDC76,0xDC79,0xDC6A,0xDC8B,0xDC72,0xDC71,0xDC6E,0xDC7A,0xDE16,
- 0xDE39,0xDE3B,0xDF10,0xDF96,0xDF7B,0xDF7C,0xDF7D,0xDCBE,0xDE5C,0xDE38,
- 0xDE39,0xDE2E,0xDE34,0xDE32,0xDE5B,0xDE33,0xDE3C, 0,0xDC0E,0xDC0F,
- 0xDC10,0xDC87,0xDE5B,0xDE53, 0,0xDE5C,0xDE3F,0xDE59,0xDE4A,0xDE44,
- 0xDE4C,0xDE40,0xDE5F,0xDE5E,0xDE4E,0xDE54,0xDE43,0xDE87,0xDF82,0xDF85,
- 0xDD31,0xDD47,0xDD2E,0xDD2F,0xDD48,0xDD34, 0,0xDD9F,0xDC32,0xDC36,
- 0xDC33,0xDC31,0xDC40,0xDC41,0xDDDD,
- /* plane 5, row 47 */
- 1 | (94 << 8), /* first, last */
- 0xD856,0xD856,0x41AD,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD857,0xD856,0x421E,0xD856,
- 0xD856,0xD856,0x4227,0xD856,0xD856,0xD856,0xD856,0x4218,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0x4220,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD858,
- 0xD858,0x42F4,0x4302,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD85A,
- 0xD859,0xD859,0xD859,0xD85A,0xD85A,
- 1, /* first low-surrogate */
- 0xDDD2,0xDDD9, 0,0xDDDF,0xDDDB,0xDDD8,0xDDD3,0xDDDE,0xDDE0,
- 0xDDD4,0xDDD7,0xDDDA,0xDEA7,0xDFFE,0xDFDD,0xDC40,0xDFE2, 0,0xDFD6,
- 0xDFDE,0xDFEF, 0,0xDFEB,0xDFEA,0xDFE4,0xDFD1, 0,0xDFEC,0xDFFA,
- 0xDFD9,0xDFF3,0xDFE1,0xDFDC,0xDFE5,0xDFDF,0xDFD4, 0,0xDC05,0xDED6,
- 0xDED5,0xDED0,0xDEC8,0xDEC4,0xDEC9,0xDECD,0xDED2,0xDECC,0xDECA,0xDCA0,
- 0xDC92, 0, 0,0xDC8B,0xDCA1,0xDC95,0xDC88,0xDC86,0xDC8D,0xDC85,
- 0xDC91,0xDC89,0xDCA2,0xDEF0,0xDEF3,0xDEF4,0xDEEF,0xDF06,0xDFA2,0xDC5E,
- 0xDC63,0xDC60,0xDC5B,0xDC7B,0xDC58,0xDC59,0xDC5D,0xDD05,0xDD06,0xDD02,
- 0xDD03,0xDD04,0xDDA2,0xDDA7,0xDDA6,0xDDA4,0xDDAC,0xDDA9,0xDFE7,0xDC01,
- 0xDFDF,0xDFD9,0xDFE3,0xDC0F,0xDD1A,
- /* plane 5, row 48 */
- 1 | (94 << 8), /* first, last */
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0x4524,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0x8770,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 1, /* first low-surrogate */
- 0xDD45,0xDD48,0xDD7B,0xDD85,0xDD86,0xDDFE,0xDDFF,0xDE64,0xDE71,
- 0xDE72,0xDE61,0xDE62,0xDE6C,0xDE60,0xDE5D,0xDE63,0xDE67,0xDE01,0xDE2A,
- 0xDE30,0xDE06,0xDE7D,0xDE22,0xDEB9,0xDE0A,0xDE10,0xDD8F,0xDE80,0xDE13,
- 0xDE2E,0xDE18,0xDE17,0xDE1A,0xDE14,0xDE47,0xDE63,0xDE38, 0,0xDE7F,
- 0xDE21,0xDE37,0xDE31,0xDE1B,0xDEA5,0xDF6C,0xDDD3,0xDF88,0xDF6E,0xDF5C,
- 0xDF74,0xDF54,0xDF83, 0,0xDF65,0xDF60,0xDF70,0xDF6F,0xDF6D,0xDF72,
- 0xDF6C,0xDF76,0xDF75,0xDF59,0xDFC7,0xDDC1,0xDDF9,0xDEE3,0xDEE7,0xDED6,
- 0xDECF,0xDEDA,0xDEE9,0xDED2,0xDC55,0xDC4F,0xDC4D,0xDC51,0xDC56,0xDCF9,
- 0xDCF8,0xDD06,0xDD03,0xDD09,0xDCF7,0xDCF5,0xDE47,0xDE45,0xDE3E,0xDE46,
- 0xDE29,0xDE34,0xDE3F,0xDE44,0xDE35,
- /* plane 5, row 49 */
- 1 | (94 << 8), /* first, last */
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0x477D,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD860,
- 0x8E37,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0x4864,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,
- 1, /* first low-surrogate */
- 0xDE5A,0xDE2A,0xDE33,0xDE37,0xDE43,0xDE39,0xDE30,0xDE5D,0xDE32,
- 0xDE27,0xDFBD,0xDFBA,0xDFBC,0xDFF1,0xDFF0,0xDC61,0xDC5C,0xDC58,0xDC5D,
- 0xDCDA,0xDCD9,0xDCDD,0xDCDC,0xDCDE, 0,0xDDA0,0xDDA2,0xDF0F,0xDF13,
- 0xDF12,0xDF11,0xDF14,0xDF19,0xDF0E,0xDF17,0xDF21,0xDF20,0xDF16,0xDC78,
- 0,0xDC87,0xDC79,0xDC80,0xDC77,0xDC81,0xDC46,0xDC7A,0xDC9C,0xDC83,
- 0xDC84,0xDCAD,0xDC9D,0xDC9E,0xDE55,0xDF36,0xDF2B,0xDF27,0xDF46,0xDF2C,
- 0xDF45,0xDF33,0xDF2D,0xDF34,0xDF22, 0,0xDC1F,0xDDB3,0xDD8C,0xDD8F,
- 0xDDAF,0xDDAD,0xDD8E,0xDDAC,0xDDB0,0xDDB1,0xDDAE,0xDD99,0xDEEB,0xDF74,
- 0xDF75,0xDF8E,0xDF6D,0xDF70,0xDF8C,0xDC4F,0xDC51,0xDC58,0xDC4C,0xDC4E,
- 0xDD15,0xDDBE,0xDDDB,0xDDB3,0xDDAE,
- /* plane 5, row 50 */
- 1 | (94 << 8), /* first, last */
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0x9703,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0x4AC2,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,
- 1, /* first low-surrogate */
- 0xDC87,0xDC8A,0xDC88,0xDC8B,0xDC8C,0xDD44,0xDD2D,0xDD2A,0xDD31,
- 0xDD2C,0xDD45,0xDD30,0xDD29,0xDD46,0xDEF4,0xDF14,0xDF10,0xDF0F,0xDF12,
- 0xDF0B,0xDF0C,0xDF0A,0xDF13,0xDF0E,0xDFD9,0xDFD0, 0,0xDCC1,0xDCBF,
- 0xDCBD,0xDCBC,0xDCBA,0xDCBB,0xDCD1,0xDCBE,0xDCD0,0xDCB9,0xDE1A,0xDE1C,
- 0xDE1B,0xDE91,0xDE96,0xDE9F,0xDE9C,0xDE9A,0xDE9D,0xDFAD,0xDFA5,0xDFAE,
- 0xDC03,0xDC26,0xDC20,0xDC23,0xDC24,0xDC21,0xDC28,0xDC25,0xDC1E,0xDC94,
- 0xDC93,0xDC8F,0xDC9A,0xDCAD, 0,0xDDCA,0xDDC5,0xDEBB,0xDEE1,0xDEEA,
- 0xDEE4,0xDEED,0xDEE6,0xDEE0,0xDEE8,0xDEE5,0xDC1A,0xDC94,0xDC96,0xDC9E,
- 0xDC95,0xDCA1,0xDC8E,0xDC9B,0xDC92,0xDC97,0xDC99,0xDC93,0xDE32,0xDE2F,
- 0xDE2E,0xDE33,0xDF1C,0xDF1E,0xDF11,
- /* plane 5, row 51 */
- 1 | (94 << 8), /* first, last */
- 0xD866,0xD866,0xD866,0xD866,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0x4CAC,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD869,0xD87E,
- 0xD846,0xD840,0xD840,0xD840,0xD840,0xD841,0xD840,0x349B,0xD840,0xD841,
- 0xD841,0xD841,0xD842,0xD842,0xD842,0xD842,0x52F6,0x3526,0xD842,0xD842,
- 0xD842,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD844,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD844,0xD843,0xD843,0xD845,
- 0xD845,0xD845,0xD845,0xD846,0xD846,
- 1, /* first low-surrogate */
- 0xDF20,0xDF1F,0xDF19,0xDF16,0xDCAC,0xDCB9,0xDCB3,0xDCA6,0xDCA2,
- 0xDCA9,0xDCA7,0xDD6C,0xDD6D,0xDD69,0xDD80,0xDD66,0xDD65,0xDD71,0xDD6B,
- 0xDFBD,0xDFC1,0xDFD3,0xDFB6, 0,0xDFB9,0xDFD4,0xDFB7,0xDFDB,0xDFB8,
- 0xDFC0,0xDFBC,0xDFD5,0xDFBF,0xDFC3,0xDFC9,0xDE58,0xDE90,0xDE95,0xDE97,
- 0xDF09,0xDF08,0xDF06,0xDF05,0xDF10,0xDF97,0xDF95,0xDFEE,0xDC1F,0xDE1A,
- 0xDF4B,0xDD8E,0xDFE8,0xDFF0,0xDFF4,0xDC06,0xDFED, 0,0xDFE9,0xDC00,
- 0xDCB8,0xDD6D,0xDC04,0xDC01,0xDC03,0xDC02, 0, 0,0xDD62,0xDEBA,
- 0xDF13,0xDFDE,0xDFD7,0xDFE4,0xDFCE,0xDFE3,0xDFDD,0xDC3A,0xDFDB,0xDFD6,
- 0xDFE0,0xDFD4,0xDFCB,0xDFE1,0xDFC9,0xDFDF,0xDC3C,0xDFFC,0xDFCF,0xDC79,
- 0xDC76,0xDC78,0xDE87,0xDC9C,0xDCB1,
- /* plane 5, row 52 */
- 1 | (94 << 8), /* first, last */
- 0xD846,0xD846,0xD846,0x41AF,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD842,0xD846,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0x3815,0xD847,0xD847,0xD848,0xD850,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0x389C,0xD848,0xD848,0xD848,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0x64CC,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84E,
- 1, /* first low-surrogate */
- 0xDCC1,0xDC9A,0xDC92, 0,0xDCC2,0xDC96,0xDCC0,0xDC91,0xDC95,
- 0xDDA2,0xDEC3,0xDEC0,0xDEC2,0xDF8A,0xDFB0,0xDC16,0xDF46,0xDF4A,0xDF3E,
- 0xDF45,0xDF42, 0,0xDF5B,0xDF44,0xDC04,0xDC22,0xDD55,0xDD57,0xDD51,
- 0xDD4E,0xDD5A,0xDEC6,0xDEC3, 0,0xDEC5,0xDECC,0xDF71,0xDC26,0xDCB2,
- 0xDD7A,0xDD84,0xDD7B,0xDC74,0xDC8C,0xDC51,0xDC48,0xDC8D,0xDC92,0xDC98,
- 0xDC93,0xDCB0,0xDC4E,0xDC96,0xDC97,0xDC9C,0xDCCA,0xDD33,0xDD83,0xDD84,
- 0xDD9A,0xDD8C, 0,0xDD99,0xDEE0,0xDFE4,0xDFF8,0xDFED,0xDFF3,0xDFF4,
- 0xDFF5,0xDFFD,0xDD19,0xDE9E,0xDEC4,0xDE9F,0xDF9B,0xDF9F,0xDF9A,0xDEAA,
- 0xDE9D,0xDE92,0xDEA2,0xDEAF,0xDEEB,0xDEA0,0xDEA1,0xDE94,0xDE98,0xDE8F,
- 0xDE87,0xDE84,0xDEA9,0xDE7C,0xDD18,
- /* plane 5, row 53 */
- 1 | (94 << 8), /* first, last */
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0x3D64,0x3D6E,0xD850,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0x3D5F,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0x3EF6,0xD852,0xD852,0xD852,0xD852,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0x764A,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD854,
- 1, /* first low-surrogate */
- 0xDE5F,0xDE62,0xDE61,0xDEC0,0xDF15,0xDFFC,0xDFF9,0xDFC8,0xDFC9,
- 0xDFDE,0xDFCA,0xDFE2, 0, 0,0xDC04,0xDFCC,0xDFDD,0xDFE4,0xDFD3,
- 0xDFC7,0xDFC6, 0,0xDC37,0xDFD8,0xDFEE,0xDFB2,0xDFA3,0xDFB3,0xDFED,
- 0xDFF8,0xDD31,0xDD5B,0xDD66,0xDD69,0xDD96,0xDD9B,0xDDF7,0xDDF3,0xDDF4,
- 0xDDF5,0xDEE2,0xDEE7,0xDEE5,0xDEE9,0xDEE6,0xDEE3,0xDC74,0xDC7F,0xDC8F,
- 0xDC90,0xDC97,0xDCA3,0xDC8E,0xDC98,0xDC8C,0xDE42,0xDE44,0xDE69,0xDE43,
- 0xDE68, 0,0xDF8D,0xDF88,0xDF8B,0xDF89,0xDCCC,0xDD1F,0xDE80,0xDE5E,
- 0xDE67,0xDE68,0xDE65, 0,0xDE74,0xDE69,0xDE61,0xDE62,0xDE6C,0xDE93,
- 0xDE86,0xDF9D,0xDF9B,0xDC1B,0xDC16,0xDC19,0xDC14,0xDC18,0xDC15,0xDC99,
- 0xDC98,0xDE5D,0xDE89,0xDE7A,0xDE7D,
- /* plane 5, row 54 */
- 1 | (94 << 8), /* first, last */
- 0xD854,0x4073,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD855,0xD855,0xD855,0xD855,0xD855,0x40DD,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0x7AB9,0xD856,0xD856,0xD856,0xD856,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0x7BD7,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,
- 1, /* first low-surrogate */
- 0xDE4B, 0,0xDE78,0xDE7F,0xDE77,0xDE7E,0xDE79,0xDEAB,0xDE7C,
- 0xDE74,0xDE75,0xDEA7,0xDF8D,0xDD4E,0xDD66,0xDD61,0xDD4D,0xDD4F, 0,
- 0xDD54,0xDD7C,0xDEDA,0xDEDE,0xDED8,0xDEDD,0xDEDF,0xDC66,0xDC62,0xDC5F,
- 0xDC64,0xDC63,0xDC60,0xDC88,0xDC6A,0xDC67,0xDC87,0xDC3F,0xDC6C,0xDC6E,
- 0xDCAD,0xDDF1,0xDDF4,0xDDF6,0xDDF5,0xDDF8,0xDDFB,0xDDEC,0xDDEF,0xDDED,
- 0,0xDDF7,0xDDF9,0xDDFD,0xDEB1,0xDC36,0xDC1B,0xDC32,0xDC42,0xDC4D,
- 0xDC1F,0xDC21,0xDC1C,0xDC31,0xDC2E,0xDC47,0xDC3B,0xDC41,0xDC18,0xDC39,
- 0xDC1D,0xDC27,0xDC23, 0,0xDEEE,0xDEE8,0xDEE5,0xDEEF,0xDEE4,0xDEEC,
- 0xDEF0,0xDCD7,0xDCD8,0xDCD4,0xDCCA,0xDCD2,0xDCCB,0xDCD3,0xDCE6,0xDCE2,
- 0xDE49,0xDE48,0xDEFF,0xDF09,0xDFB0,
- /* plane 5, row 55 */
- 1 | (94 << 8), /* first, last */
- 0xD858,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 1, /* first low-surrogate */
- 0xDFAF,0xDC7C,0xDC78,0xDC7A,0xDC72,0xDC79,0xDC7E,0xDD0C,0xDD0B,
- 0xDDCD,0xDDBE,0xDDBC,0xDDBF,0xDDC0,0xDDBD,0xDC38,0xDC08,0xDC05,0xDC3B,
- 0xDC10,0xDC0C,0xDC0D,0xDC04,0xDC3A,0xDC13,0xDC37,0xDC39,0xDD1F,0xDD4B,
- 0xDDEE,0xDE75,0xDE78,0xDE7C,0xDE74,0xDE76,0xDEEA,0xDEEB,0xDDFB,0xDE19,
- 0xDEA7,0xDE8C,0xDEDC,0xDE98,0xDEBE,0xDE9E,0xDF0F,0xDE9F,0xDEDD,0xDE93,
- 0xDEBB,0xDEB6,0xDE90,0xDEA1,0xDEBD,0xDEDE,0xDE3A,0xDF22,0xDE97,0xDE94,
- 0xDEC3,0xDE8E,0xDEA8,0xDE99,0xDEAD,0xDE9B,0xDEA2,0xDF21,0xDEAC,0xDF0E,
- 0xDF31,0xDDE1,0xDDDE,0xDDDF,0xDDDC,0xDDDD,0xDDEC,0xDDE7,0xDF69,0xDFB8,
- 0xDFA1,0xDFA8,0xDFBA,0xDFC2,0xDFA6,0xDFA4,0xDFA3,0xDFAB,0xDFBC,0xDFB7,
- 0xDFBF,0xDFAD,0xDFB1,0xDFCA,0xDFC4,
- /* plane 5, row 56 */
- 1 | (94 << 8), /* first, last */
- 0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0x4688,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD842,
- 0xD85F,0xD85F,0xD85F,0x47BB,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0x47BA,0xD85F,0xD860,0xD860,0xD860,0xD860,0x4812,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0x4861,0xD860,0xD860,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0x48E1,
- 1, /* first low-surrogate */
- 0xDFB9,0xDDC8,0xDDC6,0xDDC7,0xDF0A,0xDF0D,0xDEFB,0xDF03,0xDF02,
- 0xDEFC,0xDEF9,0xDEF8,0xDC6E,0xDC63,0xDC62,0xDC61,0xDC6B, 0,0xDC6F,
- 0xDC66,0xDC6C,0xDD0E,0xDD15,0xDD16,0xDD10,0xDD17,0xDD11,0xDE6E,0xDE6C,
- 0xDE87,0xDE83,0xDE63,0xDEDC,0xDFC0,0xDFF7,0xDFFA,0xDC70,0xDC6A,0xDC68,
- 0xDC69,0xDC84,0xDCEC,0xDCE7,0xDCEE,0xDDBA,0xDDB2,0xDDB5,0xDDCB,0xDC0B,
- 0xDDD0,0xDE6D,0xDE6C, 0,0xDF45,0xDF46,0xDF34,0xDF2C,0xDF35,0xDF44,
- 0,0xDF76,0xDCB1,0xDCAA,0xDCA1,0xDCB2, 0,0xDCA6,0xDCB5,0xDCB4,
- 0xDCB8,0xDCAF,0xDCB0,0xDCA3,0xDE62,0xDE64,0xDF56,0xDF51,0xDF4F,0xDF68,
- 0xDF4C,0xDF50, 0,0xDF48,0xDF4A,0xDC21,0xDDE3,0xDDB9,0xDDDE,0xDDB7,
- 0xDDE1,0xDDB6,0xDDB5,0xDDDF,
- /* plane 5, row 57 */
- 1 | (94 << 8), /* first, last */
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,
- 1, /* first low-surrogate */
- 0xDF97,0xDF9A,0xDF9B,0xDF98,0xDF92,0xDF93,0xDFD7,0xDF73,0xDC6B,
- 0xDC74,0xDC78,0xDC6D,0xDD18,0xDDE9,0xDDF5,0xDDEA,0xDE2E,0xDDE7,0xDDFE,
- 0xDDE5,0xDE36,0xDDF0,0xDDE6,0xDE2C,0xDC89,0xDC95,0xDC93,0xDD4D,0xDD4A,
- 0xDD4F,0xDD50,0xDD4B,0xDF2A,0xDF2B,0xDF2F,0xDF2E,0xDF7C,0xDFED,0xDFE2,
- 0xDCE0,0xDCDC,0xDCDA,0xDCD6,0xDCF4,0xDCD9,0xDCD5,0xDE22,0xDE21,0xDE24,
- 0xDE25,0xDE26,0xDE23,0xDEAA,0xDEAF,0xDEB0,0xDEAB,0xDFAF,0xDFB7,0xDFB5,
- 0xDFB2,0xDFB3,0xDC2B,0xDCD8,0xDCC2,0xDCAF,0xDCBC,0xDCB8,0xDCBE,0xDCB7,
- 0xDCB4,0xDCBF,0xDCB3,0xDCB1,0xDCBB,0xDCBD,0xDCD6,0xDCDD,0xDDD8,0xDDD3,
- 0xDDD5,0xDDE3,0xDDE2,0xDDD9,0xDDDE,0xDDDF,0xDDDA,0xDDD4,0xDEF3,0xDEE2,
- 0xDF0D,0xDF01,0xDF05,0xDF1A,0xDF03,
- /* plane 5, row 58 */
- 1 | (94 << 8), /* first, last */
- 0xD865,0xD865,0xD865,0xD865,0xD865,0x999F,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0x4B89,0xD866,0x4B8C,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0x9B8D,0xD867,0xD867,0xD867,0xD867,0xD867,0xD868,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD868,0x9E77,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD864,0xD854,0xD841,0xD841,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,
- 1, /* first low-surrogate */
- 0xDF1F,0xDF16,0xDEFA,0xDEFC,0xDF0A, 0,0xDCBC,0xDCCA,0xDCB6,
- 0xDCC7,0xDCBF, 0,0xDCB9, 0,0xDCB0,0xDCB8,0xDCBD,0xDC91,0xDCBB,
- 0xDCBE,0xDE3E,0xDE3D,0xDF38,0xDF3D,0xDF39,0xDF33,0xDC33,0xDCBB,0xDCC6,
- 0xDCC5,0xDCC7,0xDCCB,0xDCA8,0xDCC8,0xDCBE,0xDCC1,0xDCBD,0xDD82,0xDD9E,
- 0xDD81,0xDD84, 0,0xDD96,0xDD8E,0xDD88,0xDD87,0xDFE0,0xDC0D,0xDFDF,
- 0xDFE4,0xDFE2,0xDFDD,0xDFEC,0xDFDE,0xDFE7,0xDFEA,0xDFE3,0xDE5C, 0,
- 0xDE5D,0xDE9C,0xDF1D,0xDF9D,0xDF9E,0xDF9B,0xDFB5,0xDFB9,0xDFB6,0xDFF3,
- 0xDFF2,0xDFF4,0xDC26,0xDC27,0xDC25,0xDD06,0xDD0B,0xDD3A,0xDD3C,0xDC0A,
- 0xDC0B,0xDCBF,0xDCFD,0xDE18,0xDDDF,0xDF90,0xDE9E,0xDFFC,0xDC10,0xDC0F,
- 0xDC0D,0xDCB9,0xDCB7,0xDCBA,0xDD0A,
- /* plane 5, row 59 */
- 1 | (94 << 8), /* first, last */
- 0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD843,0xD844,0xD844,
- 0xD844,0xD844,0xD845,0xD85F,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD847,0xD847,0xD847,0x381A,0xD847,
- 0xD847,0xD847,0xD847,0xD848,0xD848,0xD848,0xD848,0xD848,0xD849,0xD849,
- 0xD849,0xD84A,0xD84A,0xD84A,0x3998,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84D,
- 0xD84D,0xD84D,0x3BF1,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84E,0x6BA9,0xD84E,0xD84E,0xD84E,0xD84F,0xD84F,0xD850,0xD84F,
- 0xD850,0xD850,0xD850,0xD850,0xD850,
- 1, /* first low-surrogate */
- 0xDC41,0xDC8B,0xDC46,0xDC53,0xDCE2,0xDC3F,0xDF7C,0xDC4B,0xDC4E,
- 0xDC8A,0xDC47,0xDC93,0xDDCE,0xDC8C,0xDCAF,0xDCC9,0xDDC6,0xDDC8,0xDE91,
- 0xDCCF,0xDCD4,0xDCCE,0xDEDD,0xDED4,0xDF49,0xDF63,0xDF5D, 0,0xDF67,
- 0xDFBB,0xDF60,0xDF80,0xDD5F,0xDD60,0xDEDA,0xDED2,0xDEDD,0xDD8E,0xDD88,
- 0xDD6C,0xDC9E,0xDCC9,0xDCA4, 0,0xDCD9,0xDCD2,0xDCDA,0xDCDD,0xDCCE,
- 0xDCFC,0xDE14,0xDE60,0xDDD7,0xDDCB,0xDDCD,0xDDD5,0xDEE7,0xDC00,0xDC0A,
- 0xDC0F,0xDC02,0xDC01,0xDD1D,0xDECA,0xDECB,0xDECD,0xDF4F,0xDF9C,0xDE80,
- 0xDF0D,0xDF02, 0,0xDF07,0xDEF7,0xDEF8,0xDEFD,0xDF24,0xDEFB,0xDF39,
- 0xDF3A,0xDD22, 0,0xDE6A,0xDE6D,0xDE74,0xDC0E,0xDFDF,0xDC2B,0xDFE3,
- 0xDC26,0xDC2A,0xDC23,0xDC35,0xDC4A,
- /* plane 5, row 60 */
- 1 | (94 << 8), /* first, last */
- 0xD850,0xD851,0xD851,0xD850,0xD851,0xD851,0xD851,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0x3F6A,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0x764B,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0x76A2,0xD853,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0x4485,0xD854,0xD854,0xD854,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0x4239,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0x423D,0x4244,
- 1, /* first low-surrogate */
- 0xDFFD,0xDC00,0xDC1E,0xDFFF,0xDD9E,0xDDFA,0xDEF1,0xDC95,0xDCA8,
- 0xDCA6,0xDE6E,0xDE83,0xDE6D,0xDF8F, 0,0xDCDF,0xDCD5,0xDCE0,0xDCD3,
- 0xDCD8,0xDE8C, 0,0xDE94,0xDE96,0xDE85,0xDE8F,0xDEA9,0xDE8E,0xDE90,
- 0xDEB8,0xDEC3,0xDEBB,0xDFA5,0xDFA2, 0,0xDFA3,0xDCB5,0xDCAC,0xDCA8,
- 0xDEAD,0xDEB8,0xDEB4,0xDEAE,0xDEB6, 0,0xDEC1,0xDEBF,0xDF92,0xDC00,
- 0xDC01,0xDD75,0xDD72,0xDD78,0xDD70,0xDD7E,0xDD7D,0xDD7F,0xDEEF,0xDC6D,
- 0xDC8E,0xDC8F,0xDC8A,0xDC8D,0xDC95,0xDC8B,0xDC8C,0xDCB0,0xDC93,0xDDFC,
- 0xDE15,0xDE0E,0xDE18,0xDE11,0xDE0D,0xDEBB,0xDEB3, 0,0xDCA1,0xDC9A,
- 0xDC84,0xDCA0,0xDC86,0xDC9D,0xDCAA,0xDC78,0xDC8D,0xDC8A,0xDCA6,0xDC7A,
- 0xDC97,0xDC88,0xDC8E,
- /* plane 5, row 61 */
- 1 | (94 << 8), /* first, last */
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0x4246,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD858,0x430E,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0x4310,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0x443E,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD856,0xD85A,0xD85A,
- 0xD85A,0x4484,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0x4549,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 1, /* first low-surrogate */
- 0xDC76,0xDC81,0xDC85,0xDC75,0xDCA8,0xDC8F,0xDC91,0xDCA2,0xDC9C,
- 0xDC89,0xDC7F,0xDC96,0xDC79,0xDC9F,0xDCA7, 0,0xDC87,0xDC9B,0xDCA5,
- 0xDC8B,0xDCC9,0xDEFF,0xDF03,0xDF00,0xDF02,0xDF04,0xDF05,0xDEE6,0xDF1F,
- 0xDD14, 0,0xDD0C,0xDD0F,0xDD19,0xDD0B,0xDD13,0xDCD5, 0,0xDD1C,
- 0xDE50,0xDE4E,0xDF12,0xDFB9,0xDC85,0xDC88,0xDC90,0xDD13,0xDDD0,0xDDD1,
- 0xDDD2,0xDDD7,0xDDD6,0xDDE5,0xDC46,0xDC6B,0xDC45,0xDC3F,0xDC3E, 0,
- 0xDC6A,0xDC68,0xDC4C,0xDD23,0xDD22,0xDD97,0xDD91,0xDEB5,0xDD98,0xDD9C,
- 0xDE89, 0,0xDE8B,0xDE8A,0xDE8D,0xDE8E,0xDE88,0xDF4E,0xDF44,0xDF37,
- 0xDF75,0xDF54,0xDF76,0xDF34,0xDF6B,0xDF32,0xDF57,0xDF52,0xDF45, 0,
- 0xDEB1,0xDF4B,0xDF47,0xDF33,0xDF40,
- /* plane 5, row 62 */
- 1 | (94 << 8), /* first, last */
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85D,0xD85C,
- 0xD85D,0xD85D,0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0x45DF,0xD85D,
- 0xD85D,0x45F0,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0x468A,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0x4702,0xD85E,0xD85E,0xD85E,0xD85F,0xD85E,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0x47C0,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0x4815,0xD860,0xD860,0xD860,
- 1, /* first low-surrogate */
- 0xDF3C,0xDF43,0xDF4F,0xDF55,0xDF41,0xDFB2,0xDFC0,0xDC34,0xDFF9,
- 0xDC19,0xDC0D,0xDFFA,0xDC1E,0xDC1F,0xDC0E,0xDC40,0xDC08, 0,0xDC13,
- 0xDC4C, 0,0xDDCC,0xDDCB,0xDF24,0xDF25,0xDF3D,0xDF20,0xDF27,0xDF26,
- 0xDF1D,0xDF1E,0xDF32,0xDF6C,0xDF59, 0,0xDC7A,0xDC79,0xDD1B,0xDD2E,
- 0xDD23,0xDD20,0xDD1F,0xDEB6,0xDEB9,0xDEA1,0xDEA3,0xDEA8,0xDEAF,0xDE9A,
- 0xDE99,0xDEA2,0xDE9D, 0,0xDEAB,0xDFC9,0xDFFE,0xDC00,0xDFFC,0xDC07,
- 0xDC75,0xDC72,0xDC73,0xDC74,0xDCFA,0xDCFC,0xDCF8,0xDCF6,0xDCFB,0xDDCD,
- 0xDDD1,0xDDCF,0xDE74,0xDE72,0xDE73,0xDF54,0xDF51, 0,0xDF53,0xDF49,
- 0xDF4C,0xDF4A,0xDF4F,0xDF56,0xDD00,0xDCD5,0xDCD7,0xDCFF,0xDCD9,0xDCE3,
- 0xDCD3, 0,0xDCD8,0xDCD4,0xDCDE,
- /* plane 5, row 63 */
- 1 | (94 << 8), /* first, last */
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0x48E2,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD87E,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,
- 1, /* first low-surrogate */
- 0xDE71,0xDF74,0xDF88,0xDF7F,0xDF6B,0xDF87,0xDF79,0xDF78,0xDF89,
- 0xDF80,0xDF76,0xDC29,0xDC28,0xDC2F,0xDDE5,0xDE04,0xDE03,0xDDF0,0xDDE8,
- 0xDDEA,0xDDF1,0xDE01,0xDE02,0xDFA9,0xDFAB,0xDFB7,0xDFB6, 0,0xDCA0,
- 0xDC8E,0xDC86,0xDC87,0xDC85,0xDC8B,0xDC88,0xDC90,0xDD1A,0xDD34,0xDE37,
- 0xDE2F,0xDE30,0xDE39,0xDE34,0xDE33,0xDE85,0xDE84,0xDE3A,0xDC9F,0xDD69,
- 0xDD6C,0xDD6A,0xDD67,0xDD6B,0xDF3F,0xDF40,0xDC0B,0xDCD2,0xDCF8,0xDD01,
- 0xDCFA,0xDD16,0xDDF6,0xDE2C,0xDE2D,0xDE2F,0xDE2E,0xDEC1,0xDEF5,0xDEC4,
- 0xDEDE,0xDECC,0xDED2,0xDEC2,0xDECD,0xDECF,0xDEDD,0xDEC8,0xDFBA,0xDFBE,
- 0xDFBF,0xDC2E,0xDC30,0xDCE7,0xDCEE,0xDCE8,0xDCE6,0xDCE2,0xDCE4,0xDCFB,
- 0xDCFC,0xDCEA,0xDDED,0xDDF6,0xDDF3,
- /* plane 5, row 64 */
- 1 | (94 << 8), /* first, last */
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0x4B4D,0xD865,0xD865,0xD865,0xD865,0x4B4A,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,
- 1, /* first low-surrogate */
- 0xDDF4,0xDDF1,0xDDF7,0xDDF5,0xDDEA,0xDDEB,0xDF00,0xDF2C,0xDF12,
- 0xDF3D,0xDF33, 0,0xDF30,0xDF40,0xDF31,0xDF57, 0,0xDF35,0xDF32,
- 0xDF2D,0xDF36,0xDF38,0xDF62,0xDF5F,0xDF8A,0xDCD6,0xDCD8,0xDCDD,0xDCE4,
- 0xDCE3,0xDE4D,0xDED7,0xDF4A,0xDF4C,0xDF50,0xDF4B,0xDF4E,0xDF4F,0xDC39,
- 0xDCD2,0xDCCD,0xDCD3,0xDCE1,0xDCCE,0xDCD5,0xDCDD,0xDCD4,0xDCCF,0xDDCB,
- 0xDDA6,0xDDC2,0xDDA5,0xDDA9,0xDDA2,0xDDA4,0xDDB0,0xDDCC,0xDDAF,0xDDBF,
- 0xDC24,0xDC1A,0xDC14,0xDC3A,0xDC20,0xDC1B,0xDC21,0xDC25,0xDC1E,0xDC3F,
- 0xDC40,0xDC18,0xDC2C,0xDC15,0xDC2D,0xDC1F,0xDC29,0xDC4B,0xDEB3,0xDEA5,
- 0xDEA7,0xDEAB,0xDEA6,0xDEAA,0xDF22,0xDF23,0xDFA1,0xDFA3,0xDFA0,0xDFBD,
- 0xDFBA,0xDFFA,0xDFF8,0xDFFC,0xDFF6,
- /* plane 5, row 65 */
- 1 | (94 << 8), /* first, last */
- 0xD869,0xD869,0x4D63,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0x4D93,0xD869,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD842,0xD842,0xD842,0x350E,0xD842,0xD844,
- 0xD844,0xD844,0x360A,0xD844,0xD844,0xD844,0xD844,0x360D,0xD844,0xD845,
- 0xD845,0xD845,0xD845,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD849,0xD849,0xD849,0xD849,0xD849,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 1, /* first low-surrogate */
- 0xDC34,0xDC43, 0,0xDCD4,0xDD0D,0xDD43,0xDD41,0xDD3D,0xDD40,
- 0xDD3E,0xDD3F,0xDD46, 0,0xDDD4,0xDC35,0xDC36,0xDC32,0xDC3A,0xDCC8,
- 0xDD36,0xDE1E,0xDE1D,0xDE1F,0xDC1C,0xDC1D,0xDC20, 0,0xDCC0,0xDC9A,
- 0xDC93,0xDCDD, 0,0xDCA3,0xDCA9,0xDC9C,0xDC9B, 0,0xDC97,0xDCB1,
- 0xDCCA,0xDCB3,0xDCCD,0xDCEA,0xDCEE,0xDCEF,0xDEDF,0xDF50,0xDFBB,0xDF88,
- 0xDF89,0xDF8C,0xDF85,0xDF5E,0xDF94,0xDF95,0xDD6B,0xDD6A,0xDD69,0xDEE3,
- 0xDEF1,0xDC37,0xDC33,0xDD91,0xDD8F,0xDD97,0xDCD4,0xDCDE,0xDCD3,0xDCE0,
- 0xDD43,0xDD0B,0xDCFF,0xDD04,0xDD07,0xDDF9,0xDDFA,0xDDFB,0xDDF8,0xDC12,
- 0xDC10,0xDD1F,0xDEDF,0xDEE3,0xDF52,0xDFA9,0xDF65,0xDF87,0xDF42,0xDF52,
- 0xDF4C,0xDE9F,0xDF01,0xDF48,0xDF4F,
- /* plane 5, row 66 */
- 1 | (94 << 8), /* first, last */
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD854,0x4074,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xD856,0xD856,0xD856,
- 1, /* first low-surrogate */
- 0xDF7E,0xDF4D,0xDF58,0xDF47,0xDF5E,0xDF49,0xDF4E,0xDF5D,0xDF5A,
- 0xDF86,0xDF51,0xDD29,0xDDA6,0xDDA7,0xDE70,0xDE6F,0xDED3,0xDED2,0xDC28,
- 0xDC1B,0xDC1A,0xDC1C,0xDC21,0xDC32,0xDC66,0xDC7D,0xDC73,0xDC7F,0xDC65,
- 0xDC80,0xDC61,0xDC75,0xDC6E,0xDC67,0xDC71,0xDC6C,0xDC63,0xDC62,0xDC83,
- 0xDCB2,0xDC81,0xDC6F,0xDC6B,0xDC82,0xDC8A,0xDC29,0xDC30,0xDC31,0xDD97,
- 0xDE00,0xDDFF,0xDCB6,0xDCB5,0xDCC3,0xDE8D,0xDF18,0xDF9C,0xDF9A,0xDF99,
- 0xDEB7,0xDEC4,0xDEC6,0xDEC7,0xDEBC,0xDEC0,0xDEC5,0xDECD,0xDEC1,0xDEBE,
- 0xDFA7,0xDFB8,0xDC23, 0,0xDEE8,0xDEDE,0xDEE3,0xDEEF,0xDEDC,0xDEE4,
- 0xDEE1,0xDEE5,0xDF95,0xDF94,0xDF93,0xDF8E,0xDD98,0xDD9C,0xDD99,0xDDA0,
- 0xDD9E,0xDF04,0xDCD3,0xDCB4,0xDCBB,
- /* plane 5, row 67 */
- 1 | (94 << 8), /* first, last */
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0x4256,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0x425A,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0x42A3,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0x42A8,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85B,
- 1, /* first low-surrogate */
- 0xDCB7,0xDCB8,0xDCBD,0xDCB6,0xDCB9,0xDCB5,0xDE22,0xDE21,0xDEC3,
- 0xDEBC,0xDCFF,0xDCE5,0xDCF7,0xDCD2,0xDD00,0xDCDB,0xDCF0,0xDCE2,0xDCCD,
- 0,0xDCE1,0xDCF2,0xDCDC,0xDCCC,0xDCD6,0xDCF3,0xDCFA,0xDCF6,0xDCEC,
- 0xDCEA,0xDCE3,0xDCD0, 0,0xDC95,0xDCD5,0xDCF4,0xDCCB,0xDCDA,0xDCC8,
- 0xDCDF,0xDCF5,0xDCCF,0xDCC7,0xDCD7,0xDF24, 0,0xDF1C,0xDF21,0xDF1E,
- 0xDF18,0xDF1B, 0,0xDD46,0xDD4B,0xDD48,0xDD47,0xDD67,0xDD54,0xDF15,
- 0xDF22,0xDFC5,0xDF29,0xDFC7,0xDC8D,0xDD1B,0xDD20,0xDDE2,0xDDE7,0xDDE8,
- 0xDDE1,0xDC72,0xDC7B,0xDC74,0xDC71,0xDC79,0xDC75,0xDC90,0xDC77,0xDC7D,
- 0xDD4F,0xDD50,0xDDA3,0xDDA2,0xDDF4,0xDE94,0xDE9A,0xDE9B,0xDEA7,0xDE97,
- 0xDE95,0xDE92,0xDE9C,0xDE96,0xDFB6,
- /* plane 5, row 68 */
- 1 | (94 << 8), /* first, last */
- 0xD85B,0xD85B,0xD85C,0xD85B,0xD85B,0xD85B,0xD85C,0xD85C,0xD85B,
- 0xD85C,0xD85B,0xD85B,0x453C,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85C,0xD85B,0xD85C,0xD85B,0xD85B,0x459B,0x459A,0xD85C,0xD85C,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0x87F1,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0x465E,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85E,0xD85E,0xD85E,0x46A7,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 1, /* first low-surrogate */
- 0xDFB8,0xDFB0,0xDC18,0xDFC5,0xDFB5,0xDFC2,0xDC06,0xDC19,0xDFB9,
- 0xDC15,0xDFD6,0xDFAC, 0,0xDFC6,0xDFB3,0xDFC3,0xDFCA,0xDFCF,0xDFBD,
- 0xDFCE,0xDC14,0xDFBA,0xDC1A,0xDFC1,0xDFBB, 0, 0,0xDE01,0xDDFC,
- 0xDC5A,0xDC54,0xDC61,0xDC5C,0xDC55,0xDC4A,0xDC4B,0xDC51,0xDC69,0xDC6B,
- 0,0xDC66,0xDC58,0xDC5D,0xDC67,0xDC56,0xDC88,0xDC64,0xDC4E,0xDF57,
- 0xDF5A,0xDF51,0xDF4A,0xDF4B, 0,0xDF47,0xDF6F,0xDF6A,0xDF6B,0xDF46,
- 0xDF6D,0xDF54,0xDF6E,0xDF4C,0xDC78,0xDC86,0xDC82, 0,0xDEE1,0xDEE5,
- 0xDEDB,0xDEDE,0xDED7,0xDC03,0xDC7C,0xDC7E,0xDD05,0xDD07,0xDDE6,0xDDE1,
- 0xDDFB,0xDDE5,0xDDE7,0xDDDF,0xDDFF,0xDE76,0xDF63,0xDF66,0xDF65,0xDF5E,
- 0xDF64,0xDF6B,0xDF5F,0xDF67,0xDF68,
- /* plane 5, row 69 */
- 1 | (94 << 8), /* first, last */
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0x486E,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0x490D,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0x4943,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0x4A73,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0x4A74,0xD864,0xD864,0x4A70,
- 1, /* first low-surrogate */
- 0xDD08,0xDD09,0xDD17,0xDD15,0xDD1B,0xDD0B,0xDD28,0xDD0E,0xDD18,
- 0xDD53,0xDD45,0xDD0D,0xDD0A,0xDD13,0xDD4A,0xDE79,0xDFA1,0xDF8D,0xDFA2,
- 0xDF90, 0,0xDC31,0xDC30,0xDE1F,0xDE19,0xDE0C,0xDE1E,0xDE1D,0xDE07,
- 0xDF66,0xDFC5,0xDFBA,0xDFBD,0xDFC2,0xDFC3,0xDFBF, 0,0xDCA1,0xDCA2,
- 0xDCA8,0xDCA3,0xDCAA,0xDCAF,0xDCB9,0xDD37,0xDE8F, 0,0xDE8E,0xDE87,
- 0xDE8A,0xDE92,0xDE97,0xDE9F,0xDF05,0xDCA9,0xDCA7,0xDD8A,0xDD82,0xDD85,
- 0xDD8B,0xDD89,0xDD81,0xDD80,0xDD87,0xDD86,0xDF4D,0xDC1C,0xDC1F,0xDD21,
- 0xDD1D,0xDD22,0xDCFE,0xDD1B,0xDD3A,0xDD37,0xDD17,0xDD38,0xDD26,0xDD18,
- 0xDE34,0xDE35,0xDE32, 0,0xDEE1,0xDEFD,0xDEE3,0xDEE8,0xDEF9,0xDEFF,
- 0xDEFE, 0,0xDEE0,0xDF00,
- /* plane 5, row 70 */
- 1 | (94 << 8), /* first, last */
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0x4BDB,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0x4C29,0xD867,0xD867,0xD867,0xD867,0xD867,0x4C51,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0x9BBA,
- 0xD868,0xD868,0xD868,0xD868,0xD868,
- 1, /* first low-surrogate */
- 0xDEEC,0xDEE4,0xDEEF,0xDEFA,0xDFCA,0xDC31,0xDC32,0xDC34,0xDC41,
- 0xDD00,0xDD06,0xDD08,0xDD05,0xDD03,0xDD0B,0xDD02,0xDD0A,0xDDF0,0xDE13,
- 0xDE0A,0xDE0F,0xDE11,0xDE08,0xDE0B,0xDE12,0xDE0D,0xDF5B,0xDF63,0xDF61,
- 0xDF68,0xDF5A,0xDC4E,0xDC4D,0xDC50,0xDCFC,0xDD12,0xDCF5,0xDD1E,0xDCF0,
- 0xDCF3,0xDCF2,0xDD01,0xDCEF,0xDCEE,0xDD16,0xDCF6,0xDCFB,0xDD1C, 0,
- 0xDE5D,0xDE60,0xDE66,0xDE5F,0xDE61,0xDE5B,0xDE62,0xDE57,0xDF69,0xDF6B,
- 0xDF61,0xDF77,0xDF5F,0xDF63,0xDF62,0xDF65,0xDCEF,0xDCE2,0xDD00,0xDCE8,
- 0xDCF2,0xDCE7, 0,0xDCE5,0xDDD5,0xDDD0,0xDDDA,0xDDD3, 0,0xDDD9,
- 0xDDCF,0xDDD6,0xDDD8,0xDDF5,0xDDCE,0xDDD7,0xDDF4,0xDDCD,0xDE01, 0,
- 0xDC52,0xDC55,0xDC5A,0xDC4D,0xDC54,
- /* plane 5, row 71 */
- 1 | (94 << 8), /* first, last */
- 0xD868,0xD868,0xD868,0xD868,0xD868,0x4CDB,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD869,0xD868,0xD869,0x4D65,
- 0xD869,0xD869,0x4D64,0x4D67,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD842,0xD842,0xD844,0xD844,0x3611,0xD844,0xD844,
- 0xD844,0xD845,0x3733,0xD846,0xD846,0xD846,0xD847,0x3821,0x3822,0xD847,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD849,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0x39A6,0xD84A,0xD84A,0xD84A,0xD84A,0x39A3,0xD84B,
- 0xD84B,0xD84B,0xD84C,0xD84C,0xD84C,
- 1, /* first low-surrogate */
- 0xDC53,0xDC5E,0xDC67,0xDC65,0xDC4E, 0,0xDC4F,0xDC61,0xDC6E,
- 0xDC51,0xDC5B,0xDE63,0xDEB7,0xDEB6,0xDEC3,0xDEBB,0xDEB5,0xDF2E,0xDF30,
- 0xDF33,0xDF31,0xDFA4,0xDFC1,0xDFBB,0xDFBE,0xDC00,0xDFFF,0xDC40, 0,
- 0xDC3F,0xDC44, 0, 0,0xDCDB,0xDD0F,0xDD11,0xDD4E,0xDD4D,0xDD4B,
- 0xDD4C,0xDD95,0xDC3B,0xDC45,0xDC44,0xDC3E,0xDC3C,0xDC3F,0xDCCC,0xDCCE,
- 0xDE22,0xDE23,0xDE9F,0xDCC5,0xDCC4,0xDCE9,0xDC99, 0,0xDCE6,0xDCE7,
- 0xDCF7,0xDCD2, 0,0xDCFD,0xDD0C,0xDD0B,0xDCED, 0, 0,0xDF9B,
- 0xDC0A,0xDD6F,0xDD75,0xDEF2,0xDEF8,0xDC3E,0xDD24,0xDD0E,0xDD16,0xDD18,
- 0xDD10,0xDD31,0xDD44, 0,0xDD29,0xDD2F,0xDD4B,0xDD36, 0,0xDE34,
- 0xDE00,0xDE2B,0xDC20,0xDC21,0xDC1E,
- /* plane 5, row 72 */
- 1 | (94 << 8), /* first, last */
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84E,0xD84E,0xD84E,
- 0xD84F,0xD850,0xD850,0xD851,0xD851,0xD851,0xD851,0x3EA1,0xD852,0xD852,
- 0xD852,0xD852,0xD868,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD855,0xD855,0xD855,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0x425F,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0x425C,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD859,0xD859,
- 1, /* first low-surrogate */
- 0xDC1D,0xDEF5,0xDEF2,0xDEF6,0xDF90,0xDF9D,0xDF9C,0xDF92,0xDF94,
- 0xDFD1,0xDF93,0xDFB7,0xDF97,0xDFB0,0xDF9F,0xDFC9,0xDD2D,0xDD2C,0xDE77,
- 0xDC2C,0xDCC0,0xDCB9,0xDC53,0xDD40,0xDF02,0xDEFB, 0,0xDE8B,0xDEAE,
- 0xDEAB,0xDFA1,0xDECD,0xDCEA,0xDEDD,0xDEDC,0xDED9,0xDFAB,0xDFAC,0xDFAD,
- 0xDFB2,0xDC2C,0xDC2B,0xDCC2,0xDF00,0xDF0D,0xDF06,0xDEFF,0xDF03,0xDF01,
- 0xDF10,0xDF0F,0xDF05,0xDF98,0xDF97,0xDF96,0xDF99,0xDDAC,0xDDAB,0xDF12,
- 0xDCD8,0xDCDF,0xDCD6,0xDE2D,0xDE32,0xDD3F,0xDD2F,0xDD26,0xDD3A,0xDD39,
- 0,0xDD3B,0xDD35,0xDD2A,0xDD21,0xDD38,0xDD37,0xDD34, 0,0xDD22,
- 0xDD36,0xDD44,0xDF45,0xDF3B,0xDF36,0xDF42,0xDD7A,0xDD86,0xDD8B,0xDD7F,
- 0xDD81,0xDF2A,0xDFD5,0xDC9F,0xDC9D,
- /* plane 5, row 73 */
- 1 | (94 << 8), /* first, last */
- 0xD859,0xD859,0xD859,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85D,0x45F5,0xD85D,0x8804,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0x4711,
- 0x470C,0xD85E,0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD841,0xD861,0xD861,
- 1, /* first low-surrogate */
- 0xDD26,0xDDF4,0xDDF5,0xDC15,0xDC8E,0xDC8F,0xDD26,0xDDA7,0xDDAF,
- 0xDEAD,0xDEAC,0xDEAB,0xDEAA,0xDC2F,0xDC21,0xDC23,0xDCA3,0xDC49,0xDC3A,
- 0xDC48,0xDC2D,0xDC25,0xDC29,0xDC32,0xDC34,0xDC24,0xDC2C,0xDC4B,0xDC3B,
- 0xDC20,0xDC28,0xDC98, 0,0xDC97, 0,0xDC9D,0xDCA8,0xDDD5,0xDF77,
- 0xDF78,0xDF72,0xDF73,0xDC02,0xDD3B,0xDEFE,0xDF0B,0xDEFF,0xDF07, 0,
- 0,0xDF30,0xDFCD,0xDFCF,0xDC10,0xDC0A,0xDC83,0xDD15,0xDD0E,0xDD0C,
- 0xDE02,0xDDFE,0xDE05,0xDE15,0xDE08,0xDF7F,0xDF77,0xDF7C,0xDF82,0xDF7E,
- 0xDF78,0xDF7D,0xDF79,0xDF81,0xDD4B,0xDD63,0xDD64,0xDD56,0xDD54,0xDD4E,
- 0xDD10,0xDD4F,0xDD57,0xDD5E,0xDD51,0xDD6A,0xDD69,0xDFAD,0xDFA4,0xDFAC,
- 0xDFA9,0xDFAE,0xDC4C,0xDE50,0xDE35,
- /* plane 5, row 74 */
- 1 | (94 << 8), /* first, last */
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0x494E,
- 0xD862,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD866,0xD866,0x4B94,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,
- 1, /* first low-surrogate */
- 0xDE32,0xDFD8,0xDFD1,0xDFCF,0xDFBE,0xDCD5,0xDCC1,0xDCC6,0xDCC3,
- 0xDCC2,0xDCC0,0xDCC5,0xDCC7,0xDCBF,0xDCC4,0xDCD4,0xDE90,0xDED2, 0,
- 0xDED4,0xDCAF,0xDCAE,0xDCB2,0xDCAD,0xDD9C,0xDDA0,0xDDB6,0xDF3D,0xDF56,
- 0xDF82,0xDC28,0xDC2B,0xDD3C,0xDD3E,0xDD3F,0xDD42,0xDD3D,0xDD41,0xDD3B,
- 0xDD49,0xDD43,0xDE39,0xDE38,0xDF22,0xDF08,0xDF0C,0xDF06,0xDF13,0xDF04,
- 0xDF20,0xDF1D,0xDF05,0xDF0A,0xDFD6,0xDFD7,0xDC36,0xDC37,0xDD23,0xDD22,
- 0xDD20,0xDD1A,0xDD1D,0xDE1C,0xDE20,0xDE77,0xDF7F,0xDF8B,0xDF7D,0xDF99,
- 0xDF84,0xDF89,0xDF85,0xDF83,0xDF86,0xDF9E,0xDC53,0xDD17, 0,0xDD19,
- 0xDD20,0xDD1F,0xDD23,0xDD18,0xDD21,0xDD29,0xDD24,0xDD26,0xDE5E,0xDE6F,
- 0xDE6E,0xDE74,0xDE72,0xDE73,0xDF7D,
- /* plane 5, row 75 */
- 1 | (94 << 8), /* first, last */
- 0xD866,0xD866,0xD866,0xD866,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0x4C63,0xD867,0xD867,0xD867,0xD867,0xD867,0x4C61,0xD867,0x9BD8,
- 0xD867,0x4C5A,0xD867,0xD867,0xD867,0xD868,0xD868,0xD868,0x4CE3,0xD868,
- 0xD868,0x9D7C,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0x4DAF,0xD869,0xD841,0xD841,0xD841,0xD84C,0xD844,
- 0xD844,0xD844,0xD844,0x3613,0xD844,0xD844,0x3680,0xD845,0xD845,0xD846,
- 0xD846,0xD846,0xD846,0xD847,0xD847,
- 1, /* first low-surrogate */
- 0xDF7E,0xDF85,0xDF7F,0xDF84,0xDC44,0xDCF5,0xDCF8,0xDD03,0xDCF6,
- 0xDE28, 0,0xDE39,0xDDFB,0xDE0E,0xDDFD,0xDE1F, 0,0xDE03, 0,
- 0xDE10, 0,0xDE0D,0xDE27,0xDE41,0xDC72,0xDC78,0xDC80, 0,0xDC85,
- 0xDC7B, 0,0xDC7D,0xDC91,0xDC88,0xDCAA,0xDC8D,0xDC89,0xDC95,0xDC9B,
- 0xDC8C,0xDC9E,0xDC7C,0xDC86,0xDC84,0xDE68,0xDEC5,0xDEC4,0xDEC9,0xDEC6,
- 0xDF42,0xDF45,0xDF41,0xDF44,0xDFA6,0xDFC2,0xDC42,0xDC49,0xDC48,0xDC4A,
- 0xDC4C,0xDC4B,0xDD17,0xDD18,0xDD15,0xDD52,0xDD54,0xDD53,0xDD9A,0xDD9B,
- 0xDDDC,0xDDE4,0xDE91, 0,0xDEBA,0xDC51,0xDC5B,0xDCCF,0xDF05,0xDD13,
- 0xDD15,0xDD14,0xDD23, 0,0xDD11,0xDD12, 0,0xDCF0,0xDE9B,0xDD12,
- 0xDD16,0xDD17,0xDDB5,0xDCF4,0xDFB1,
- /* plane 5, row 76 */
- 1 | (94 << 8), /* first, last */
- 0xD848,0xD848,0xD848,0xD848,0xD849,0xD849,0xD849,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84E,0x4DB0,0xD850,0xD864,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD852,0xD852,0xD853,0xD853,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0x7C46,
- 0xD857,0xD857,0xD857,0xD87E,0xD857,
- 1, /* first low-surrogate */
- 0xDD79,0xDEFF,0xDEFC,0xDEFB,0xDC3F,0xDC44,0xDD9D,0xDD32,0xDD4C,
- 0xDD2B,0xDD5A,0xDE1F,0xDE01,0xDE2D,0xDE27,0xDE59,0xDE5A,0xDE4D,0xDE58,
- 0xDC23,0xDC25,0xDC2B,0xDEFF,0xDFAE,0xDFCB,0xDFCA,0xDFD0,0xDFCE,0xDFCC,
- 0xDFD8,0xDFC6,0xDFD2,0xDFCF,0xDFC8,0xDF17, 0,0xDCC4,0xDE40,0xDCE9,
- 0xDCF2,0xDCFC,0xDCEA,0xDCEB,0xDCFD,0xDC78,0xDC77,0xDC73,0xDC9E,0xDC79,
- 0xDDA2,0xDE03,0xDF04,0xDF05,0xDCCE,0xDEBF,0xDEF6,0xDEF7,0xDC31,0xDC30,
- 0xDCC9,0xDCC7,0xDF1C,0xDF28,0xDF1A,0xDF1E,0xDF1B,0xDF1F,0xDDBF,0xDDBB,
- 0xDDBC,0xDDC0,0xDF1A,0xDCEF,0xDCEC,0xDCE9,0xDCF0,0xDCFE,0xDE34,0xDD6A,
- 0xDD95,0xDD6C,0xDD72,0xDD67,0xDD60,0xDD6B,0xDD5E,0xDD6F,0xDD66, 0,
- 0xDD62,0xDD5D,0xDD5C,0xDD65,0xDF50,
- /* plane 5, row 77 */
- 1 | (94 << 8), /* first, last */
- 0xD858,0x4323,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD85A,0xD85A,0x4449,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD842,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0x45FA,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD869,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,
- 1, /* first low-surrogate */
- 0xDD9F, 0,0xDD9E,0xDDA6,0xDF35,0xDF38,0xDF36,0xDF3A,0xDFDC,
- 0xDC7C,0xDCAB, 0,0xDCA8,0xDCA7,0xDD2B,0xDD2C,0xDD28,0xDD2B,0xDDA9,
- 0xDDAA,0xDDAB,0xDDF8,0xDEB1,0xDEF0,0xDEEF,0xDCA8,0xDC8B,0xDC94,0xDC9E,
- 0xDC8F,0xDC88,0xDC7E,0xDC81,0xDC30,0xDC9B,0xDC82,0xDC90,0xDC85,0xDC7F,
- 0xDCA9,0xDCDE,0xDE0D, 0,0xDCCF,0xDCCB,0xDCD8,0xDCDD,0xDCD3,0xDCD0,
- 0xDCD5,0xDCD6,0xDDD6,0xDF92,0xDF95,0xDDCB,0xDF8D,0xDF9B,0xDF9D,0xDF8F,
- 0xDF9E,0xDFA6,0xDC96,0xDC92,0xDF16,0xDF2A,0xDF29,0xDF2C,0xDC15,0xDC12,
- 0xDC11,0xDC13,0xDC88,0xDC8B,0xDC8A,0xDC87,0xDD17,0xDD16,0xDD1A,0xDE19,
- 0xDE17,0xDF91,0xDF94,0xDD8B,0xDD90,0xDD8F,0xDD86,0xDD83,0xDD8E,0xDD87,
- 0xDDA8,0xDD85,0xDDA6,0xDD82,0xDDA7,
- /* plane 5, row 78 */
- 1 | (94 << 8), /* first, last */
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0x4959,0xD862,0xD862,0xD862,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0x4A7E,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0x4BA8,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0x4BA9,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,
- 1, /* first low-surrogate */
- 0xDFB9,0xDFB7,0xDFB4,0xDFB6,0xDFB3,0xDFC6,0xDE3C,0xDE40,0xDE38,
- 0xDF91,0xDFA6,0xDFDA,0xDCDA,0xDCD8,0xDCD9,0xDCDB,0xDCD7,0xDF16,0xDF12,
- 0xDF1F, 0,0xDF14,0xDF1A,0xDF10,0xDCB3,0xDDAE,0xDDC1,0xDDB0,0xDDAF,
- 0xDDB1,0xDDAD,0xDDB2,0xDDC4,0xDC3C,0xDC3F,0xDD61,0xDD66,0xDE3C,0xDE3B,
- 0xDF2C, 0,0xDF2A,0xDF3E,0xDF2F,0xDF32,0xDF27,0xDF29,0xDF40,0xDFDF,
- 0xDFDE,0xDC3C,0xDC3B,0xDC3E,0xDD21,0xDD46,0xDD3C,0xDD36,0xDD38,0xDD35,
- 0xDE31,0xDE36,0xDE2D,0xDE33,0xDE2F,0xDE2E,0xDE35,0xDFAC,0xDFA9,0xDFA6,
- 0,0xDD4C,0xDD43,0xDD41,0xDD4F,0xDD42,0xDD51, 0,0xDD40,0xDD50,
- 0xDD45,0xDD4A,0xDD4B,0xDE83,0xDE82,0xDE81,0xDEE0,0xDF98,0xDF9F,0xDF9B,
- 0xDF9A,0xDF99,0xDF96,0xDFAE,0xDF9E,
- /* plane 5, row 79 */
- 1 | (94 << 8), /* first, last */
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD869,
- 0x4D54,0xD869,0x4D56,0xD869,0xD869,0xD869,0x4D6D,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0x4D8E,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD841,0xD841,0xD842,0xD842,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0xD844,0xD845,0xD845,0xD845,0xD846,0xD846,0xD846,0xD847,0xD847,
- 0xD847,0xD848,0xD849,0xD849,0xD849,
- 1, /* first low-surrogate */
- 0xDD09,0xDD0D,0xDE4E,0xDE4A,0xDE4D,0xDE40,0xDE3E,0xDE48,0xDE42,
- 0xDE62,0xDE45,0xDE51,0xDCC6,0xDCD0,0xDCC0,0xDCB7,0xDCC2,0xDCBC,0xDCC5,
- 0xDCDC,0xDCDB,0xDCD2,0xDCC7,0xDCB6,0xDCC9,0xDCCC,0xDCD1,0xDCCD,0xDCDA,
- 0xDCBA,0xDCD3,0xDCCE,0xDCF6,0xDCBD,0xDCDD,0xDCC8,0xDD0D,0xDD35,0xDE71,
- 0xDE6E,0xDE6F,0xDED6,0xDF4C,0xDF4F,0xDF54,0xDF53,0xDFC9,0xDFC8,0xDC03,
- 0,0xDC04, 0,0xDC57,0xDC52,0xDC53, 0,0xDC56,0xDC5C,0xDC55,
- 0xDD64,0xDD5D,0xDD5E,0xDDA2,0xDDA3, 0,0xDDE7,0xDDE6,0xDE98,0xDEAC,
- 0xDEAF,0xDEAE,0xDC59,0xDDA9,0xDC2A,0xDCC7,0xDD41,0xDD37,0xDD35,0xDD33,
- 0xDD39,0xDD32,0xDCFF,0xDD01,0xDCF8,0xDD1B,0xDD19,0xDFBF,0xDFBC,0xDFBE,
- 0xDFBD,0xDD7D,0xDC46,0xDC47,0xDDA4,
- /* plane 5, row 80 */
- 1 | (94 << 8), /* first, last */
- 0xD84A,0xD84A,0xD84B,0x3A72,0xD84C,0xD84C,0x3C14,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84E,0xD84D,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84F,0xD850,0xD850,0xD850,0xD850,
- 0x3D93,0xD850,0xD850,0xD850,0xD850,0xD851,0xD851,0xD851,0xD851,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD85C,0xD853,0xD853,0xD853,0xD853,
- 0xD854,0xD854,0xD854,0xD854,0xD855,0xD855,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD857,0xD857,0xD857,0xD857,0x426F,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0x42B0,0xD858,0xD858,0xD858,0xD858,0xD858,0xD859,0xD85A,0x352E,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85C,
- 1, /* first low-surrogate */
- 0xDE21,0xDE62,0xDE86, 0,0xDC2F,0xDC31, 0,0xDFF8,0xDFF5,
- 0xDFF9,0xDFF2,0xDFFA,0xDFF3,0xDC14,0xDFFD,0xDC0F,0xDC0E,0xDC01,0xDD37,
- 0xDD35,0xDD34,0xDD31,0xDE7A,0xDE7B,0xDC37,0xDD2B,0xDCFB,0xDD16,0xDD13,
- 0,0xDD11,0xDD0F,0xDD1B,0xDD38,0xDCA4,0xDF09,0xDF07,0xDF0B,0xDCD3,
- 0xDCD1,0xDCD8,0xDF1D,0xDFA9,0xDFD0,0xDE15,0xDF02,0xDF05,0xDF01,0xDF00,
- 0xDF2E,0xDF30,0xDF2F,0xDF31,0xDDD2,0xDDD3,0xDD02,0xDE40,0xDE42,0xDE3B,
- 0xDECE,0xDD98,0xDD8F,0xDD94,0xDD91, 0,0xDDBA,0xDD90,0xDD86,0xDD9A,
- 0xDD8C,0xDD93,0xDD87,0xDD88,0xDD97,0xDD8D,0xDD9C,0xDDBD,0xDF3C,0xDF59,
- 0,0xDDD1,0xDDBB,0xDDBE,0xDE5D,0xDFE2,0xDE05,0xDCBA, 0,0xDCF4,
- 0xDDB2,0xDDF9,0xDEB7,0xDEB6,0xDC89,
- /* plane 5, row 81 */
- 1 | (94 << 8), /* first, last */
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD860,0xD860,0xD860,0xD860,0xD860,0xD861,0xD861,0xD861,
- 0xD861,0xD862,0xD862,0x4969,0x957E,0xD863,0xD863,0xD863,0xD863,0x49B4,
- 0xD863,0xD863,0xD864,0xD864,0xD864,0xD864,0xD864,0x4A4D,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0x4A83,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,
- 1, /* first low-surrogate */
- 0xDCF9,0xDCD9,0xDCE8,0xDCD4,0xDCDB,0xDCE2,0xDCDF,0xDCD1,0xDCE9,
- 0xDCEA,0xDE13,0xDE11,0xDCFA,0xDCF8,0xDCF4,0xDCFB,0xDD0E,0xDD02,0xDD0F,
- 0xDF90,0xDFAD,0xDFA9,0xDD48,0xDF5A,0xDF4F,0xDF4E,0xDF55,0xDF54,0xDF4A,
- 0xDFD5,0xDC18,0xDC8D,0xDD1D,0xDD19,0xDE26,0xDE28,0xDE2B,0xDE7D,0xDFA0,
- 0xDF9A,0xDF9B,0xDDB5,0xDDAD,0xDDB2,0xDE94,0xDFC9,0xDE4E,0xDE4F,0xDE44,
- 0xDE52,0xDCE9,0xDD39, 0, 0,0xDDC7,0xDDD3,0xDDC6,0xDDC3, 0,
- 0xDDD2,0xDF66,0xDD7F,0xDD80,0xDD84,0xDD85,0xDDE3, 0,0xDE41,0xDE44,
- 0xDE43,0xDF4E,0xDF4F, 0,0xDF49,0xDF4A,0xDF4B,0xDF43,0xDFE0,0xDFE5,
- 0xDFE1,0xDFE6,0xDFE2,0xDC0C,0xDC40,0xDD49,0xDD4A,0xDD54,0xDD4C,0xDD55,
- 0xDD56,0xDE3B,0xDE3D,0xDFA4,0xDFA8,
- /* plane 5, row 82 */
- 1 | (94 << 8), /* first, last */
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD866,0x4BB0,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0x4C0C,0xD867,0x4C18,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0x9C20,0xD867,0xD867,0x9C22,0xD867,0xD867,0x9C1E,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0x4CF5,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,
- 1, /* first low-surrogate */
- 0xDFC3,0xDFBF,0xDFC8,0xDFC2,0xDFCA,0xDFCC,0xDFC9,0xDFBE,0xDFCD,
- 0xDFC7,0xDFC5,0xDC5D, 0,0xDD6C,0xDD6B,0xDD70,0xDD6D,0xDD6F,0xDD89,
- 0xDD84,0xDE8D,0xDE8A,0xDE8E,0xDE91,0xDFB5,0xDFB1,0xDFAF,0xDFB9,0xDFB7,
- 0xDFB0, 0,0xDC17, 0,0xDC4F,0xDD19,0xDD10,0xDD18,0xDD11,0xDD1C,
- 0xDD12,0xDE76,0xDE71, 0,0xDE7A,0xDE7F, 0,0xDE73,0xDEAB, 0,
- 0xDE77,0xDE74,0xDE7E,0xDE9B,0xDE84,0xDE7C,0xDD29,0xDD2B,0xDD0E,0xDD00,
- 0xDD0B,0xDCFE,0xDCFA,0xDD17,0xDCFF,0xDD0C,0xDD0F, 0,0xDD02,0xDD01,
- 0xDCFC,0xDD49,0xDD06,0xDD12,0xDD13,0xDE78,0xDF5B,0xDF62,0xDF5F,0xDF5D,
- 0xDFAB,0xDFD5,0xDFD4,0xDFD3,0xDC07,0xDC6C,0xDC70,0xDC6E,0xDC68,0xDC6D,
- 0xDC77,0xDC6A,0xDCCE,0xDCEC,0xDD69,
- /* plane 5, row 83 */
- 1 | (94 << 8), /* first, last */
- 0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD841,0xD841,0xD844,
- 0xD845,0xD845,0xD846,0xD846,0xD846,0xD84C,0xD847,0xD847,0xD847,0xD848,
- 0xD848,0xD849,0xD87E,0xD849,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84C,0xD84C,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84F,0xD850,0xD850,0xD851,0x3E0E,0xD851,0xD851,0xD852,0xD853,
- 0x3FD8,0xD853,0xD853,0xD853,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD855,0xD855,0xD855,0xD855,0xD855,0xD856,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD859,
- 1, /* first low-surrogate */
- 0xDD68,0xDDA6,0xDDA9,0xDDAA,0xDE00,0xDE0D,0xDDF8,0xDDFC,0xDE0A,
- 0xDDF7,0xDE01,0xDEB6,0xDEBB,0xDEB7,0xDEB9,0xDECA,0xDC69,0xDE25,0xDD59,
- 0xDD07,0xDD09,0xDD22,0xDF07,0xDF04,0xDF0F,0xDCF8,0xDFC7,0xDFD1,0xDD7E,
- 0xDF08,0xDC4A,0xDC98,0xDCB9,0xDE88,0xDE91,0xDE84,0xDE73,0xDE89,0xDE85,
- 0xDC33,0xDF13,0xDC1D,0xDC1F,0xDC1C,0xDC20,0xDC1A,0xDC1B,0xDD39,0xDDAF,
- 0xDEE5,0xDC3C,0xDD37,0xDD3A,0xDCBB, 0,0xDF10,0xDF0D,0xDFAF,0xDC11,
- 0,0xDF0D,0xDF0C,0xDF0B,0xDCD4,0xDF3D,0xDF3E,0xDF3B,0xDF43,0xDF40,
- 0xDF46,0xDC11,0xDDDD,0xDDDF,0xDDEA,0xDF4A,0xDD06,0xDDC1,0xDDB9,0xDDC6,
- 0xDDB8,0xDDBB,0xDDC8,0xDDC5,0xDDBF,0xDDC7,0xDDC4,0xDF65,0xDF67,0xDDD7,
- 0xDDDB,0xDDD4,0xDDD6,0xDFE8,0xDE0A,
- /* plane 5, row 84 */
- 1 | (94 << 8), /* first, last */
- 0xD85A,0xD85A,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0x8970,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD860,0x482C,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD861,0xD862,0xD862,0x496E,0xD862,0xD862,0xD863,0xD863,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0x4A86,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD866,0xD866,0xD866,0xD866,0xD866,0x4BB3,0xD866,0xD866,0xD866,
- 0x4BEB,0xD866,0xD866,0xD866,0xD866,
- 1, /* first low-surrogate */
- 0xDEBD,0xDEBE,0xDD1A,0xDD0D,0xDD0F,0xDD1B,0xDD10,0xDD11,0xDD13,
- 0xDE18,0xDD20,0xDD1F,0xDD23,0xDD1D,0xDD37,0xDD25,0xDD24,0xDD2A,0xDD27,
- 0xDD33,0xDD28,0xDD34,0xDFBA, 0,0xDC9D,0xDD4C,0xDF5C,0xDF6A,0xDF5D,
- 0xDF65,0xDF63,0xDF5E,0xDC19,0xDC97,0xDE3F,0xDE33,0xDE32,0xDFA1,0xDFA5,
- 0xDFA4,0xDFA2,0xDDC1, 0,0xDDC7,0xDDC4,0xDDC6,0xDDC5,0xDDD4,0xDDCA,
- 0xDE53,0xDCF1,0xDD21, 0,0xDFB7,0xDF92,0xDDD4,0xDF44,0xDD98,0xDD9B,
- 0xDD91,0xDD95,0xDD9A,0xDD92,0xDF53,0xDF57, 0,0xDF5C,0xDF5D,0xDF64,
- 0xDFEA,0xDFED,0xDC42,0xDC43,0xDD64,0xDD61,0xDD60,0xDE7D,0xDFD4,0xDFD5,
- 0xDFD9,0xDD87,0xDD99,0xDD8C,0xDD8A,0xDD8F, 0,0xDD8B,0xDD82,0xDD9B,
- 0,0xDFC8,0xDFC4,0xDFCC,0xDFC7,
- /* plane 5, row 85 */
- 1 | (94 << 8), /* first, last */
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0x9C43,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD87E,0xD87E,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0x9DE0,0xD868,0xD868,
- 0x4D42,0xD868,0xD868,0xD868,0xD868,0x4D41,0xD868,0xD868,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0x4DAC,0xD841,0xD841,0xD842,0xD842,
- 0xD842,0xD844,0xD845,0xD846,0xD848,0xD84C,0xffff,0x3B2F,0x3B2E,0xD84C,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0x3C4D,0x3C7B,0xD84E,
- 0xD84E,0xD84E,0xD84F,0xD850,0xD850,
- 1, /* first low-surrogate */
- 0xDFC3,0xDFC6,0xDFCB,0xDFCA,0xDFC9,0xDFCD,0xDC53,0xDD21,0xDD29,
- 0xDD1D,0xDD24,0xDD28, 0,0xDEB1,0xDEB2,0xDEB5,0xDED6,0xDEAF,0xDECA,
- 0xDEB8,0xDE12,0xDE11,0xDD45,0xDD47,0xDD34,0xDD6E,0xDD42,0xDD31,0xDD2E,
- 0xDD56,0xDD38,0xDD37,0xDD4B,0xDD2D,0xDD33,0xDD36, 0,0xDD48,0xDEDC,
- 0,0xDF66,0xDF6D,0xDF63,0xDF64, 0,0xDF67,0xDFD9,0xDC0B,0xDC7E,
- 0xDC8B,0xDD26,0xDD2C,0xDD29,0xDD6F,0xDD6B,0xDD6D,0xDD6E,0xDE1C,0xDE11,
- 0xDE10,0xDE24,0xDE12,0xDE15,0xDE17, 0,0xDC6F,0xDDAB,0xDC2E,0xDCC9,
- 0xDF96,0xDD85,0xDEA0,0xDD2B,0xDF0D,0xDC36, 0, 0, 0,0xDFB1,
- 0xDC4A,0xDC37,0xDC3C,0xDC38,0xDC3A,0xDC3E,0xDC49, 0, 0,0xDE80,
- 0xDE7F,0xDEE3,0xDC3F,0xDD52,0xDD4E,
- /* plane 5, row 86 */
- 1 | (94 << 8), /* first, last */
- 0xD850,0xD850,0xD851,0xD852,0xD852,0xD852,0xD852,0xD852,0xD853,
- 0xD854,0xD854,0xD855,0xD855,0xD855,0xD855,0xD856,0xD856,0xD856,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0x42B2,0xD858,0xD858,0xD85A,0xD85A,
- 0xD85A,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85E,0x4722,0xD85E,0xD85E,0xD85F,0xD85F,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD862,0xD862,
- 0xD862,0x9459,0xD862,0x4970,0xD863,0xD863,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,
- 1, /* first low-surrogate */
- 0xDD4A,0xDD4B,0xDCD5,0xDED8,0xDF20,0xDFB3,0xDFB1,0xDFB0,0xDF17,
- 0xDCD9,0xDF49,0xDC13,0xDDED,0xDDEB,0xDDEE,0xDD0A,0xDD0B,0xDE4A,0xDDD5,
- 0xDDD7,0xDDDE,0xDDDC,0xDDEE,0xDF70, 0,0xDDD9,0xDFD7,0xDCCB,0xDCC7,
- 0xDDFC,0xDD3B,0xDD39,0xDD4B,0xDD43,0xDD40,0xDD46,0xDD4D,0xDD43,0xDD47,
- 0xDD4B,0xDD55,0xDD52,0xDF5F, 0,0xDF7C,0xDF7B,0xDFA8,0xDFA9,0xDDDE,
- 0xDDD7,0xDDDD,0xDDD6,0xDDD8,0xDE9B,0xDFE0,0xDFE8,0xDFE6,0xDCF8,0xDCFB,
- 0xDFBB, 0,0xDFB8, 0,0xDCC1,0xDCC0,0xDDA4,0xDDAB,0xDE4D,0xDF65,
- 0xDF67,0xDF6A,0xDF66,0xDF69,0xDD73,0xDD80,0xDD6F,0xDD71,0xDFE4,0xDFE6,
- 0xDFE7,0xDDA0,0xDDA4,0xDEA2,0xDEA7,0xDEA4,0xDFDE,0xDFDB,0xDC58,0xDC5C,
- 0xDD2F,0xDD2E,0xDEDD,0xDEE4,0xDED8,
- /* plane 5, row 87 */
- 1 | (94 << 8), /* first, last */
- 0xD867,0xD867,0xD867,0x4C95,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0x4D00,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0x4D02,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0x4D9F,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD841,0xD842,0xD844,0xD844,0xD845,0xD847,0xD848,0xD84A,0xD84A,
- 0xD84B,0xD84B,0xD84C,0xD84C,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD850,0xD850,0xD851,0xD851,0xD852,0xD853,0xD854,0xD854,0xD855,0xD855,
- 0xD856,0xD856,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD858,0xD858,
- 0xD858,0xD858,0xD859,0xD85A,0xD85A,
- 1, /* first low-surrogate */
- 0xDEE7,0xDEDA,0xDE75, 0,0xDD79,0xDD80,0xDD7F,0xDD7C,0xDD75,
- 0xDD7B,0xDD82, 0,0xDD89,0xDD74,0xDD7D,0xDD7A,0xDD86,0xDDA8,0xDD72,
- 0,0xDD8B,0xDD91,0xDDB3,0xDD81,0xDE82,0xDEE1,0xDEE3,0xDEE2,0xDF76,
- 0xDF74,0xDF72,0xDF75,0xDC0E,0xDC0D,0xDC94,0xDC92,0xDC93,0xDC91,0xDC8F,
- 0xDC95,0xDCD0,0xDCF7,0xDD76,0xDDAF, 0,0xDE26,0xDE25,0xDE2D,0xDEA0,
- 0xDEC3,0xDCD7,0xDECC,0xDD79,0xDD7A,0xDD15,0xDFDB,0xDD85,0xDD70,0xDD7B,
- 0xDEA5,0xDE9F,0xDF17,0xDFB2,0xDC39,0xDC40,0xDC4E,0xDD3E,0xDEE8,0xDEE7,
- 0xDD66,0xDD61,0xDCDA,0xDF14,0xDCDF,0xDF18,0xDC39,0xDC3A,0xDF30,0xDF32,
- 0xDD0E,0xDE4C,0xDDE8,0xDDF1,0xDDEB,0xDDEC,0xDF74,0xDF73,0xDDF1,0xDF42,
- 0xDF3E,0xDF41,0xDD2C,0xDCD2,0xDDBB,
- /* plane 5, row 88 */
- 1 | (94 << 8), /* first, last */
- 0xD85C,0xD85C,0xD85C,0xD85C,0x457D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85E,0xD85E,0xD85E,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD861,
- 0xD862,0xD862,0xD862,0xD863,0xD863,0xD863,0xD864,0xD864,0xD864,0xD864,
- 0x4AF6,0xD865,0xD865,0xD865,0xD865,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0x4C12,0xD867,0xD867,0xD867,0x4C91,0xD867,0xD867,0xD867,0xD867,0x4C90,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,
- 1, /* first low-surrogate */
- 0xDD58,0xDD57,0xDD56,0xDD5A, 0,0xDD61,0xDD68,0xDD65,0xDD5F,
- 0xDD64,0xDD5E,0xDD5B,0xDD67,0xDFC3,0xDCA2,0xDD53,0xDF7D,0xDC20,0xDFAE,
- 0xDFAF,0xDFB0,0xDDE7,0xDDE6,0xDDE9,0xDFF1,0xDFEB,0xDFEA,0xDFE9,0xDE63,
- 0xDD02,0xDCFE,0xDFDE,0xDCC2,0xDDE6,0xDF5D,0xDDAD,0xDF75,0xDF72,0xDF77,
- 0,0xDE51,0xDFE8,0xDFED,0xDFEE,0xDDB9,0xDDA1,0xDDB6,0xDEAE,0xDFE8,
- 0,0xDC1E,0xDD31,0xDD32, 0,0xDF0E,0xDF12,0xDF09,0xDF05, 0,
- 0xDF03,0xDF1F,0xDF0D,0xDF0C,0xDF04,0xDF0A,0xDDC2,0xDDBF,0xDDC9,0xDDB2,
- 0xDDC1,0xDDAF,0xDDB4,0xDDB0,0xDDB6,0xDDB7,0xDDBB,0xDDB1,0xDEF0,0xDF78,
- 0xDF7A,0xDF79,0xDFE4,0xDFE6,0xDC9F,0xDC9D,0xDC98,0xDC99,0xDCF9,0xDD30,
- 0xDD82,0xDD81,0xDDB3,0xDD7F,0xDE3A,
- /* plane 5, row 89 */
- 1 | (94 << 8), /* first, last */
- 0xD869,0xD869,0xD844,0xD846,0xD846,0xD847,0xD847,0xD849,0xD84A,
- 0x3A79,0xD84C,0xD84E,0xD84E,0xD84E,0x3C4E,0xD84E,0xD852,0xD855,0xD856,
- 0xD856,0xD857,0xD857,0xD857,0xD857,0xD858,0xD858,0xD859,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85C,0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85E,0xD85E,0xD85E,0xD85F,0xD85F,0xD860,
- 0xD860,0xD860,0xD863,0xD864,0xD864,0xD864,0xD864,0xD864,0xD865,0xD865,
- 0xD865,0xD865,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0x4D1E,0xD868,0xD868,0xD868,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,
- 1, /* first low-surrogate */
- 0xDE3E,0xDE48,0xDD86,0xDD36,0xDF13,0xDC22,0xDFDD,0xDDA7,0xDD7D,
- 0,0xDF1C,0xDC65,0xDC60,0xDC67, 0,0xDF1A,0xDEE3,0xDF34,0xDD18,
- 0xDE52,0xDDFC,0xDF79,0xDF78,0xDF76,0xDDFA,0xDDF8,0xDD2D,0xDCD6,0xDDBD,
- 0xDDBF,0xDDBE,0xDD44,0xDD70,0xDD62,0xDD6E,0xDD6E,0xDD7C,0xDD74,0xDD78,
- 0xDD70,0xDD79,0xDD71,0xDFCC,0xDCA7,0xDCA6,0xDF93,0xDC21,0xDC9C,0xDE9D,
- 0xDFF4,0xDFF3,0xDDF0,0xDDB8,0xDDB6,0xDDBD,0xDF73,0xDF82,0xDD87,0xDE56,
- 0xDE59,0xDFF6,0xDDC9,0xDDC5,0xDDC7,0xDDCA,0xDDC2,0xDDC4,0xDFF2,0xDFF0,
- 0xDD3B,0xDD3A,0xDF26,0xDF28,0xDF34,0xDF2D,0xDDD7,0xDDD2,0xDDD6,0xDDDC,
- 0xDDD3,0xDDD1,0xDE86, 0,0xDEEF,0xDEEE,0xDFE8,0xDCAC,0xDCA9,0xDCAA,
- 0xDCAB,0xDCFB,0xDD33,0xDD88,0xDDB6,
- /* plane 5, row 90 */
- 1 | (94 << 8), /* first, last */
- 0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD846,0xD847,0xD84E,
- 0xD850,0xD850,0xD852,0xD855,0xD856,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD858,0xD85C,0xD85C,0xD85D,0xD87E,0xD85E,0xD85F,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD863,0xD863,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD865,0xD865,0xD865,0xD866,0xD866,0xD866,0xD866,0xD866,0xD867,0xD867,
- 0xD867,0x9C72,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD846,
- 0xD847,0xD848,0xD848,0xD850,0xD850,0xD851,0xD852,0xD853,0xD855,0xD85A,
- 0xD85A,0xD85A,0xD85C,0xD85D,0xD85E,0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,
- 0xD860,0xD862,0xD863,0xD863,0xD863,
- 1, /* first low-surrogate */
- 0xDDB7,0xDDD0,0xDDCF,0xDE4F,0xDE59,0xDE4C,0xDF18,0xDFE0,0xDC69,
- 0xDD73,0xDD72,0xDEE8,0xDDFB,0xDD1C,0xDE09,0xDE0A,0xDE08,0xDF7D,0xDF7F,
- 0xDE67,0xDD7A,0xDD7B,0xDFD1,0xDDCB,0xDF9D,0xDC9D,0xDDFC,0xDDFB,0xDDFD,
- 0xDFF5,0xDFF6,0xDC0F,0xDC1D,0xDDC7,0xDDC1,0xDDBF,0xDE54,0xDF7F,0xDFF5,
- 0xDD8A,0xDD8C,0xDE5C,0xDC65,0xDDCF,0xDDD0,0xDEB8,0xDFFA,0xDC66,0xDF40,
- 0xDF41, 0,0xDDF7,0xDDF3,0xDDEF,0xDDF4,0xDDED,0xDDF2,0xDDF1,0xDDF9,
- 0xDCB4,0xDCFC,0xDDBC,0xDE5E,0xDE5B,0xDE5F,0xDE5D,0xDECF,0xDECE,0xDD3A,
- 0xDFE1,0xDF15,0xDF14,0xDD78,0xDD79,0xDCE6,0xDFB8,0xDF22,0xDDFE,0xDCDB,
- 0xDE06,0xDEC8,0xDD89,0xDD86,0xDCAD,0xDF99,0xDFD8,0xDC23,0xDD23,0xDFB5,
- 0xDFF9,0xDD07,0xDC1E,0xDDFB,0xDF72,
- /* plane 5, row 91 */
- 1 | (94 << 8), /* first, last */
- 0xD863,0xD864,0xD865,0xD865,0xD865,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD847,0x3828,
- 0xD84A,0xD84C,0xD84E,0xD850,0xD851,0xD854,0xD857,0xD85A,0xD85C,0xD85D,
- 0xD85D,0xD85F,0xD860,0xD861,0xD864,0xD864,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD868,0xD868,0xD868,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD845,0xD84A,0xD856,0xD856,0xD856,0xD857,0xD858,
- 0xD85C,0xD85D,0xD85D,0xD85E,0xD860,0xD861,0xD864,0xD864,0xD866,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD868,0xD868,0xD869,0xD869,0xD869,0xD869,
- 0x4D91,0xD87E,0xD857,0xD857,0xD85D,
- 1, /* first low-surrogate */
- 0xDF73,0xDF87,0xDC49,0xDE5D,0xDFF8,0xDC03,0xDF4E,0xDF4D,0xDF50,
- 0xDF55,0xDE09,0xDE07,0xDE0C,0xDE03,0xDE06,0xDE0B,0xDE0A,0xDE89,0xDCBB,
- 0xDCFF,0xDD36,0xDD8B,0xDE66,0xDE69,0xDE67,0xDEC2,0xDED2,0xDFE2, 0,
- 0xDD88,0xDF5B,0xDC76,0xDD7D,0xDDA6,0xDF5A,0xDE17,0xDCDC,0xDD8F,0xDD94,
- 0xDD95,0xDFB6,0xDE04,0xDFEE,0xDF8A,0xDFF9,0xDC07,0xDC1F,0xDC2A,0xDD45,
- 0xDF5C,0xDF5B,0xDF61,0xDF5D,0xDE18,0xDE1F,0xDF83,0xDC16,0xDC14,0xDCBF,
- 0xDCC0,0xDE73,0xDEC0,0xDD17,0xDD89,0xDD1E,0xDD1F,0xDE54,0xDE18,0xDE05,
- 0xDD95,0xDD98,0xDD9B,0xDD59,0xDE08,0xDC01,0xDDCE,0xDFFA,0xDEBE,0xDD47,
- 0xDF6A,0xDF69,0xDF68,0xDF67,0xDE25,0xDE28,0xDCC4,0xDD37,0xDD8D,0xDD8C,
- 0,0xDD20,0xDE22,0xDF82,0xDFD9,
- /* plane 5, row 92 */
- 1 | (49 << 8), /* first, last */
- 0xD863,0xD864,0xD866,0xD867,0xD867,0xD867,0xD867,0xD868,0xD868,
- 0xD869,0xD857,0xD85A,0xD867,0xD867,0xD868,0xD868,0xD868,0xD869,0xD869,
- 0xD847,0xD864,0xD867,0xD867,0xD868,0xD868,0xD869,0xD869,0xD850,0xD85C,
- 0x4587,0xD865,0xD867,0xD868,0xD869,0xD855,0xD85E,0xD869,0xD868,0xD865,
- 0xD868,0xD85C,0xD869,0xD85D,0xD864,0xD869,0xD869,0xD85C,0xD85A,0xD869,
- 1, /* first low-surrogate */
- 0xDC38,0xDFFB,0xDDE1,0xDC72,0xDD48,0xDF6C,0xDF70,0xDE31,0xDE30,
- 0xDE79,0xDE23,0xDCF8,0xDC74,0xDF73,0xDE34,0xDF87,0xDFB2,0xDDC2,0xDE7D,
- 0xDFE5,0xDF8C,0xDF77,0xDF75,0xDE38,0xDE3A,0xDE83,0xDE81,0xDD80,0xDD99,
- 0,0xDC4A,0xDD4A,0xDE3C,0xDEC8,0xDE04,0xDCAF,0xDE89,0xDEFA,0xDE61,
- 0xDE3F,0xDD93,0xDCC9,0xDFDE,0xDF91,0xDE8E,0xDE8D,0xDD98,0xDDC5,0xDEA5,
- /* plane 5, row 93: --- */
- /* plane 5, row 94: --- */
- /* plane 6, row 1 */
- 1 | (94 << 8), /* first, last */
- 0xD87E,0xD840,0x3405,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD842,0xD842,0xD840,0xD840,0xD840,0xD840,0x3404,0xD87E,0xD840,0xD840,
- 0xD840,0xD840,0xD841,0xD841,0xD87E,0xD841,0xD842,0x353F,0xD842,0xD842,
- 0xD847,0xD848,0xD848,0xD841,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD841,0xD841,0xD841,0xD87E,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD842,0xD841,0xD842,0xD842,
- 0xD841,0xD842,0xD842,0xD842,0xD842,0xD87E,0xD842,0xD842,0xD842,0xD844,
- 0xD844,0xD845,0xD845,0xD846,0xD846,0xD846,0xD847,0xD847,0x382A,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD87E,0xD848,0xD848,0xD848,0xD848,0x38A7,
- 0xD848,0xD848,0xD848,0xD849,0x38FA,
- 1, /* first low-surrogate */
- 0xDC02,0xDC62, 0,0xDC88,0xDCD0,0xDCCF,0xDD1E,0xDD1F,0xDD20,
- 0xDD0E,0xDD2C,0xDC61,0xDC04,0xDC05,0xDC03, 0,0xDC01,0xDC7D,0xDC8D,
- 0xDDA3,0xDDA4,0xDCDB,0xDD00,0xDC1E,0xDEA3,0xDC32, 0,0xDED4,0xDED5,
- 0xDC23,0xDF2C,0xDF7A,0xDD03,0xDC07,0xDC08,0xDC8F,0xDC9C,0xDCD5,0xDD12,
- 0xDD13,0xDD14,0xDD21,0xDDA8,0xDDA6,0xDC76,0xDD01,0xDD3D,0xDC14,0xDD3E,
- 0xDE29,0xDE77,0xDE78,0xDEA6,0xDEA9,0xDEAC,0xDC34,0xDD04,0xDD7B,0xDE10,
- 0xDE2F,0xDED7,0xDF1C,0xDF1F,0xDF1A,0xDC36,0xDF1E,0xDF9E,0xDF9A,0xDDA0,
- 0xDDA1,0xDDD2,0xDDD3,0xDDB9,0xDF1D,0xDF55,0xDCFF,0xDFE7, 0,0xDC11,
- 0xDC13,0xDC12,0xDDAF,0xDDB1,0xDC90,0xDF2D,0xDF7B,0xDF9D,0xDF9A, 0,
- 0xDF9F,0xDFA0,0xDF9C,0xDCBD,
- /* plane 6, row 2 */
- 1 | (94 << 8), /* first, last */
- 0xD849,0xD84C,0xD84C,0xD84F,0xD851,0xD87E,0xD855,0xD858,0xD858,
- 0xD840,0xD840,0x3400,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD841,0xD841,0xD841,0xD841,0xD841,0xD87E,0xD841,
- 0xD841,0xD841,0xD841,0x34DB,0xD842,0xD841,0xD841,0xD841,0xD87E,0xD842,
- 0xD842,0xD87E,0xD842,0xD842,0xD842,0xD842,0xD840,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD87E,
- 0xD842,0xD842,0xD842,0xD840,0xD844,0xD844,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD87E,0xD846,0xD846,0xD846,0xD846,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,
- 1, /* first low-surrogate */
- 0xDDAA,0xDC6C,0xDC91,0xDC74,0xDD6A,0xDD29,0xDE05,0xDE6B,0xDE6A,
- 0xDCE0,0xDC12, 0,0xDC7F,0xDCA0,0xDC99,0xDC95,0xDC9E,0xDCDF,0xDCDE,
- 0xDDAF,0xDDAD,0xDDB0,0xDCDF,0xDD43,0xDD41,0xDD48,0xDD75,0xDC1A,0xDE32,
- 0xDE7B,0xDE79,0xDEB3, 0,0xDFA7,0xDEB2,0xDEB0,0xDEB4,0xDC29,0xDCCD,
- 0xDCCE,0xDC2B,0xDD10,0xDD80,0xDDD3,0xDE30,0xDC98,0xDE2F,0xDE31,0xDEDA,
- 0xDED9,0xDF27,0xDF28,0xDF21,0xDF25,0xDFA6,0xDFA2,0xDFA1,0xDFA4,0xDC39,
- 0xDFAA,0xDFA5,0xDFA3,0xDC64,0xDE3F,0xDE44,0xDD1B,0xDD53,0xDD84,0xDD86,
- 0xDDD5,0xDC60,0xDD3E,0xDD40,0xDFCA,0xDFC9,0xDC26,0xDD00,0xDD31,0xDD3C,
- 0xDD30,0xDD33,0xDD32,0xDD38,0xDC34,0xDC53,0xDC54,0xDDB4,0xDDB2,0xDF2F,
- 0xDFA5,0xDFA7,0xDFA4,0xDFA8,0xDFA9,
- /* plane 6, row 3 */
- 1 | (94 << 8), /* first, last */
- 0xD848,0xD848,0xD848,0xD849,0xD849,0xD849,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84C,0xD84C,0xD84C,0xD84E,0xD850,0xD851,0xD851,0xD851,0xD852,
- 0xD852,0xD852,0xD853,0xD856,0xD85A,0xD860,0xD860,0xD841,0xD867,0xD867,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0x3438,0xD840,0xD840,0xD840,
- 0xD87E,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD87E,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD85A,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0x6530,0xD842,0xD842,0xD842,
- 0xD842,0x353A,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD847,
- 1, /* first low-surrogate */
- 0xDFA2,0xDFA3,0xDFA6,0xDC81,0xDC80,0xDDAD,0xDE24,0xDE65,0xDE68,
- 0xDE69,0xDD3C,0xDD3B,0xDF5D,0xDD44,0xDD82,0xDCF1,0xDD6B,0xDF1B,0xDCEB,
- 0xDFBA,0xDFD3,0xDD13,0xDD22,0xDEF4,0xDE0F,0xDE10,0xDD07,0xDC0B,0xDC0A,
- 0xDC19,0xDC1A,0xDC18,0xDC66,0xDC82,0xDCA8,0xDCE5,0xDCE7,0xDCE4,0xDD15,
- 0xDD23,0xDD24,0xDD43,0xDDC3,0xDDBC,0xDDBB, 0,0xDDB7,0xDDB9,0xDDCF,
- 0xDC0D,0xDC7A,0xDC7B,0xDCE1,0xDCE0,0xDD09,0xDD4D,0xDC16,0xDD4B,0xDD79,
- 0xDDB1,0xDE36,0xDE35,0xDE37,0xDE38,0xDE7F,0xDE80,0xDE81,0xDD53,0xDE7E,
- 0xDECD,0xDEBF,0xDEBE,0xDEC2,0xDEB8,0xDEC1, 0,0xDD31,0xDD2F,0xDD6F,
- 0xDD82, 0,0xDD87,0xDD86,0xDD8D,0xDD94,0xDDD7,0xDDD4,0xDDD8,0xDE16,
- 0xDE14,0xDE2E,0xDE36,0xDE37,0xDFEE,
- /* plane 6, row 4 */
- 1 | (94 << 8), /* first, last */
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD844,0xD844,0xD844,0xD844,0xD87E,
- 0xD844,0xD844,0xD845,0xD845,0xD845,0xD845,0xD845,0xD87E,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD846,0xD846,0xD846,0xD846,
- 0xD87E,0xD846,0xD846,0xD87E,0xD846,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD840,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD840,0xD848,0xD848,0xD848,0xD848,0xD849,0xD849,0xD849,0xD849,
- 0x38C9,0xD849,0xD849,0xD849,0xD849,0xD849,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 1, /* first low-surrogate */
- 0xDEE0,0xDEE5,0xDEDF,0xDF2B,0xDF29,0xDF2D,0xDF2F,0xDFB7,0xDFC9,
- 0xDFC1,0xDFCA,0xDFB2,0xDFAC,0xDFAE,0xDDB2,0xDDA8,0xDDB0,0xDDA7,0xDC51,
- 0xDE52,0xDE4A,0xDD56,0xDD55,0xDD5F,0xDD5E,0xDD88,0xDC5D,0xDDDD,0xDDE2,
- 0xDDE1,0xDDDF,0xDDE0,0xDEAF,0xDEB1,0xDEBA,0xDD45,0xDD43,0xDDBD,0xDDC8,
- 0xDC6C,0xDDBE,0xDDBF,0xDC74,0xDF59,0xDC29,0xDC2C,0xDC2F,0xDC2D,0xDC2E,
- 0xDD04,0xDD02,0xDD01,0xDD40,0xDD4A,0xDD3F,0xDD4F,0xDD41,0xDD4E,0xDFEB,
- 0xDFEC,0xDCAC,0xDC5B,0xDC63,0xDC5A,0xDC59,0xDDDC,0xDDDB,0xDDD9,0xDDE0,
- 0xDDDD,0xDC20,0xDFB0,0xDFB1,0xDFB2,0xDFB6,0xDC51,0xDC52,0xDC50,0xDC84,
- 0,0xDC83,0xDDC3,0xDDB8,0xDDB9,0xDDB2,0xDD90,0xDE26,0xDE29,0xDE6E,
- 0xDD40,0xDD3E,0xDD41,0xDF5E,0xDFBB,
- /* plane 6, row 5 */
- 1 | (94 << 8), /* first, last */
- 0xD84C,0xD84C,0xD87E,0xD84E,0x3C4F,0xD84E,0xD84E,0xD84E,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD87E,0xD84F,0xD84F,0xD84F,0xD850,0xD850,
- 0xD850,0xD851,0xD851,0xD851,0xD852,0xD852,0xD853,0xD853,0xD853,0xD853,
- 0xD855,0xD87E,0xD855,0xD855,0xD858,0xD858,0xD858,0xD858,0xD859,0xD841,
- 0xD859,0x43CD,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0x4492,0xD85A,0xD85A,
- 0xD87E,0xD87E,0xD85F,0xD860,0xD840,0xD861,0xD861,0xD861,0xD861,0xD87E,
- 0xD861,0xD863,0xD842,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD87E,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0x3445,0xD87E,0xD840,0xD840,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0x34B5,0xD841,0x34B6,0xD841,
- 1, /* first low-surrogate */
- 0xDFBC,0xDFB9,0xDCEF,0xDC80, 0,0xDD45,0xDDBA,0xDDBD,0xDC56,
- 0xDC55,0xDC75,0xDC77,0xDC81,0xDCFA,0xDC83,0xDC8B,0xDC84,0xDD86,0xDD83,
- 0xDD8B,0xDD6D,0xDE16,0xDF28,0xDCEA,0xDFD4,0xDC03,0xDD15,0xDF3D,0xDF3E,
- 0xDC16,0xDD4C,0xDE06,0xDF4D,0xDE22,0xDE73,0xDE6D,0xDE6E,0xDCB1,0xDD4E,
- 0xDE2D, 0,0xDCF9,0xDD52,0xDF00,0xDEFC,0xDEFA, 0,0xDEF7,0xDEF8,
- 0xDD90,0xDDC4,0xDC27,0xDE11,0xDCAE,0xDC50,0xDC4F,0xDC4D,0xDE71,0xDDE2,
- 0xDE72,0xDE18,0xDE44,0xDC21,0xDC67,0xDCAF,0xDCB0,0xDC29,0xDD17,0xDD22,
- 0xDC03,0xDC25,0xDD28,0xDDFF,0xDDD9,0xDDDB,0xDDDE,0xDDF2,0xDDFE,0xDDF4,
- 0xDDDD, 0,0xDC04,0xDE01,0xDDDC,0xDC7D,0xDC81,0xDC7E,0xDC7F,0xDCE5,
- 0xDD0F, 0,0xDD0A, 0,0xDD0B,
- /* plane 6, row 6 */
- 1 | (94 << 8), /* first, last */
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0x3537,0xD842,0x3530,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD854,0xD842,0xD844,0xD842,0xD87E,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD87E,0xD842,0xD842,0xD844,
- 0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0xD844,0xD844,0xD844,0xD844,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD846,0xD846,0x373E,0x374D,
- 0x3751,0xD846,0xD846,0xD846,0xD846,
- 1, /* first low-surrogate */
- 0xDD51,0xDD52,0xDD50,0xDDB8,0xDE3D,0xDE3E,0xDE3C,0xDE87,0xDED7,
- 0xDEDB,0xDECF,0xDEE0,0xDC4C,0xDC42,0xDCD4,0xDD11,0xDD14,0xDD15,0xDD12,
- 0xDD33,0xDD35, 0,0xDD71, 0,0xDD91,0xDD93,0xDD95,0xDDDC,0xDE42,
- 0xDE40,0xDFA6,0xDEE6,0xDE8F,0xDF32,0xDC37,0xDF31,0xDFF5,0xDFCD,0xDFDE,
- 0xDFD5,0xDFDA,0xDFEE,0xDFEC,0xDFCF,0xDFCE,0xDC3D,0xDFCC,0xDFF3,0xDDC1,
- 0xDDC4,0xDDC6,0xDDB4,0xDDC3,0xDDB8,0xDDBB,0xDDB7,0xDDBC,0xDDBF,0xDDC7,
- 0xDDBE,0xDE60,0xDE5D,0xDE76,0xDE6C,0xDE75,0xDE5B,0xDE71,0xDE73,0xDE61,
- 0xDE5A,0xDE62,0xDE72,0xDE5F,0xDE58,0xDD1E,0xDD58,0xDD8B,0xDD8A,0xDDF4,
- 0xDDF0,0xDED2,0xDECD,0xDECE,0xDEBC,0xDED0,0xDD46,0xDD47, 0, 0,
- 0,0xDDCE,0xDDCF,0xDDCC,0xDDCB,
- /* plane 6, row 7 */
- 1 | (94 << 8), /* first, last */
- 0xD87E,0xD846,0xD846,0xD846,0xD846,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD87E,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0x3873,
- 0xD848,0xD848,0xD87E,0xD848,0xD85A,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD87E,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD84A,0xD84A,0xD84A,0xD84A,0x39BE,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84B,0xD84B,
- 0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,
- 1, /* first low-surrogate */
- 0xDC72,0xDF60,0xDF5F,0xDF5D,0xDFD4,0xDC3A,0xDC38,0xDC3C,0xDC36,
- 0xDD08,0xDD7E,0xDD5E,0xDD6E,0xDD53,0xDD70,0xDD57,0xDD5D,0xDD63,0xDD7A,
- 0xDD79,0xDD93,0xDC81,0xDC1D,0xDC68,0xDC73,0xDC74,0xDC66,0xDC6F,0xDC75,
- 0xDC7A,0xDC70,0xDC6D,0xDC65,0xDD8A,0xDDED,0xDDE9,0xDDE3,0xDDEF, 0,
- 0xDDEA,0xDF31,0xDC91,0xDF38,0xDF20,0xDF35,0xDF3A,0xDF81,0xDF80,0xDFB8,
- 0xDFC1,0xDFBA,0xDC88,0xDCCF,0xDCCA,0xDCC7,0xDCC5,0xDCC8,0xDCD0,0xDCC9,
- 0xDDBB,0xDDB6,0xDDBD,0xDC9D,0xDDB4,0xDDC1,0xDDD1,0xDDD2,0xDDCC,0xDDD4,
- 0xDDCB,0xDDCE,0xDDD5,0xDDD8,0xDD95,0xDD93,0xDD99,0xDD96, 0,0xDE89,
- 0xDE94,0xDE91,0xDE8F,0xDE84,0xDE97,0xDE86,0xDE85,0xDE8C,0xDEF2,0xDEED,
- 0xDEEF,0xDCD9,0xDD46,0xDD47,0xDD4B,
- /* plane 6, row 8 */
- 1 | (94 << 8), /* first, last */
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD87E,0xD84E,0x3C1E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84F,0xD84F,0xD84F,0x3CC8,0xD84F,0xD84F,0xD84F,
- 0xD84F,0x3CC3,0x3CC7,0xD850,0xD850,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD852,0xD852,0xD852,0x3F56,0xD853,0x3540,0xD853,
- 0xD853,0xD853,0xD853,0xD854,0xD854,0xD854,0xD854,0xD855,0xD855,0xD855,
- 0xD855,0xD856,0xD856,0xD858,0xD858,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD841,0xD87E,0xD85A,0xD85A,0xD85A,
- 1, /* first low-surrogate */
- 0xDD50,0xDD4A,0xDD4E,0xDD4C,0xDD48,0xDF63,0xDF61,0xDF62,0xDF60,
- 0xDFC3,0xDFC5,0xDFC1,0xDFD0,0xDCDC,0xDC82, 0,0xDC86,0xDC84,0xDD4C,
- 0xDD48,0xDDB8,0xDDBF,0xDDC1,0xDDC6,0xDDC5,0xDDC7,0xDDC0,0xDDC3,0xDEED,
- 0xDF03,0xDF22,0xDF21,0xDC9F,0xDC90,0xDC9E, 0,0xDCA0,0xDC94,0xDC95,
- 0xDCA1, 0, 0,0xDD9A,0xDD90,0xDCF2,0xDCF3,0xDD6E,0xDDAB,0xDDA9,
- 0xDE1A,0xDE18,0xDE1B,0xDF60,0xDF4C,0xDF42,0xDF33,0xDF3F,0xDF3E,0xDF38,
- 0xDF43,0xDF46,0xDF36,0xDCEE,0xDCF5,0xDCF4, 0,0xDC1B, 0,0xDD2B,
- 0xDD29,0xDD2A,0xDD2E,0xDC3F,0xDCE6,0xDFA7,0xDFA8,0xDC18,0xDE08,0xDF50,
- 0xDF53,0xDE56,0xDE55,0xDE6F,0xDE7F,0xDCB3,0xDE3A,0xDE38,0xDE37,0xDE36,
- 0xDD54,0xDD80,0xDCDD,0xDCFC,0xDCFA,
- /* plane 6, row 9 */
- 1 | (94 << 8), /* first, last */
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD87E,0xD87E,0xD85C,
- 0xD87E,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD863,0x49BD,0xD87E,0xD840,0xD840,0xD845,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD848,0xD841,0xD841,0xD841,0xD841,0xD87E,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD842,0xD842,0x351A,
- 0xD842,0xD842,0x352C,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,
- 1, /* first low-surrogate */
- 0xDD33,0xDF04,0xDF07,0xDF08,0xDF06,0xDF09,0xDD91,0xDD93,0xDE1E,
- 0xDDD2,0xDC0B,0xDC43,0xDC52,0xDC58,0xDC5E,0xDE68,0xDE8D,0xDE82,0xDE7B,
- 0xDC58, 0,0xDC00,0xDC2C,0xDC2E,0xDE0B,0xDC2D,0xDC69,0xDCB2,0xDCB6,
- 0xDCA9,0xDCED,0xDD19,0xDD4F,0xDE16,0xDE03,0xDE0E,0xDE04,0xDE07,0xDE10,
- 0xDE27,0xDE28,0xDE0D,0xDE29,0xDE0F,0xDE22,0xDE11,0xDC85,0xDC84,0xDC83,
- 0xDC8A,0xDC86,0xDD10,0xDD58,0xDD5A,0xDF0C,0xDDC4,0xDDC5,0xDE47,0xDE49,
- 0xDE4A,0xDE4B,0xDDBB,0xDE8D,0xDE8B,0xDF07,0xDF06,0xDC20,0xDEEF,0xDEF0,
- 0xDEED,0xDEF9,0xDF02,0xDEE7,0xDEF4,0xDEF7,0xDEF1,0xDC53,0xDC55, 0,
- 0xDCDA,0xDCD9, 0,0xDD38,0xDD99,0xDDA2,0xDD9C,0xDD9A,0xDD9B,0xDDE5,
- 0xDDE3,0xDDE1,0xDDE0,0xDDE2,0xDDE4,
- /* plane 6, row 10 */
- 2 | (94 << 8), /* first, last */
- 0xD842,0xD87E,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0x3549,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0x357C,0xD843,0xD843,0xD87E,0xD843,
- 0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0x37BF,0xD847,0xD847,0xD847,
- 0xD847,0x37BA,0xD847,0xD847,0xD848,
- 2, /* first low-surrogate */
- 0xDDE8,0xDC2F,0xDE13,0xDE56,0xDE4B,0xDE4A,0xDE4D,0xDE4C,
- 0,0xDEEA,0xDEE9,0xDEEB,0xDEEC,0xDF3A,0xDF3C,0xDF39,0xDF3B,0xDC14,
- 0xDC0E,0xDC35,0xDC0A,0xDC3F,0xDC38, 0,0xDC4E,0xDC17,0xDC3F,0xDC1E,
- 0xDDB6,0xDDCE,0xDDCA,0xDDCB,0xDDCC,0xDDC9,0xDEB4,0xDEAC,0xDE88,0xDE86,
- 0xDE8C,0xDE93,0xDE8A,0xDEA4,0xDE87,0xDEA5,0xDEA6,0xDE85,0xDEA3,0xDE8E,
- 0xDD1F,0xDD63,0xDD8D,0xDDFA,0xDDFB,0xDE09,0xDDFE,0xDDFF,0xDE02,0xDE04,
- 0xDDFD,0xDE05,0xDEF9,0xDEF7,0xDEDB,0xDEDA,0xDD51,0xDD50,0xDD57,0xDDE2,
- 0xDDD8,0xDDDA,0xDDDC,0xDF20,0xDF1F,0xDF69,0xDFDD,0xDC40,0xDC41,0xDC43,
- 0xDD0D,0xDD0C,0xDD87,0xDDA9,0xDD92,0xDD85, 0,0xDD8C,0xDDA2,0xDD8F,
- 0xDD8A, 0,0xDD8D,0xDFF1,0xDC37,
- /* plane 6, row 11 */
- 1 | (94 << 8), /* first, last */
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD87E,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD849,0xD87E,0xD849,0xD849,0xD849,0xD849,
- 0x38D8,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD84A,
- 0x39B2,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD87E,0xD84A,0xD84A,0xD87E,0xD84A,0xD84A,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD851,0xD84B,0xD84C,0xD84C,0xD84C,
- 0x3AC4,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 1, /* first low-surrogate */
- 0xDC8B,0xDC87,0xDC82,0xDD8E,0xDDBC,0xDDF8,0xDDFA,0xDDEB,0xDDF9,
- 0xDDFC,0xDE05,0xDF1B,0xDF1D,0xDF1E,0xDC92,0xDF3C,0xDF3E,0xDF84,0xDFC8,
- 0xDFC9,0xDFD3,0xDFC7,0xDFD2,0xDC55,0xDC96,0xDC8C,0xDC8A,0xDCD5,0xDCD3,
- 0,0xDCD8,0xDDD0,0xDDEE,0xDDF1,0xDDFB,0xDDD3,0xDDEC,0xDDCD,0xDE15,
- 0xDE26,0xDE0E,0xDE27,0xDE2A,0xDE00,0xDE04,0xDE28,0xDE08,0xDE14,0xDD9B,
- 0,0xDDA1,0xDD9D,0xDDA0,0xDD9E,0xDDA2,0xDD9C,0xDE32,0xDE34,0xDE93,
- 0xDE96,0xDE90,0xDEB4,0xDEB5,0xDCB6,0xDEB6,0xDEC2,0xDCB5,0xDEBA,0xDE92,
- 0xDEFB,0xDF05,0xDEF3,0xDEFE,0xDEFD,0xDD5D,0xDEFA,0xDC43,0xDC95,0xDC94,
- 0,0xDD6F,0xDD73,0xDD5C,0xDD5B,0xDD66,0xDD74,0xDD63,0xDD67,0xDD60,
- 0xDD62,0xDD71,0xDD72,0xDD5E,0xDF23,
- /* plane 6, row 12 */
- 1 | (94 << 8), /* first, last */
- 0xD84C,0xD84C,0xD87E,0xD84C,0xD84D,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD87E,0xD840,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD87E,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD87E,
- 0xD84F,0xD87E,0xD850,0xD850,0xD87E,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0x3E2B,0xD851,0xD851,0xD851,0x3E61,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0x72DD,
- 1, /* first low-surrogate */
- 0xDF26,0xDF64,0xDCD6,0xDFF2,0xDC01,0xDFDD,0xDFDC,0xDFDB,0xDFF3,
- 0xDFFD,0xDFD8,0xDFF8,0xDFFB,0xDC83,0xDC8C,0xDC8E,0xDD49,0xDD54,0xDD52,
- 0xDD4E,0xDD58,0xDD51,0xDD55,0xDD53,0xDD57,0xDD50,0xDD4F,0xDD4D,0xDDD2,
- 0xDDD3,0xDDC9,0xDDD4,0xDEEF,0xDCF8,0xDCB1,0xDF05,0xDF04,0xDF2E,0xDF2D,
- 0xDC45,0xDC5B,0xDC5A,0xDC59,0xDC9D,0xDC8E,0xDCBC,0xDCDD,0xDCBA,0xDCFD,
- 0xDCD8,0xDCCB,0xDCD9,0xDCDA,0xDCC4,0xDCB8,0xDCBF,0xDCDB,0xDCC1,0xDCFC,
- 0xDCC5,0xDD19,0xDDB1,0xDDAF,0xDD18,0xDCF7,0xDCF6,0xDCF8,0xDD50,0xDD51,
- 0xDD71,0xDD70,0xDDB0,0xDDAF,0xDDAE,0xDDAD,0xDE25,0xDE2C,0xDE22,0xDE33,
- 0xDE34, 0,0xDF3A,0xDF40,0xDF68, 0,0xDF64,0xDF5C,0xDF57,0xDF53,
- 0xDF4F,0xDF51,0xDF54,0xDF66,
- /* plane 6, row 13 */
- 1 | (94 << 8), /* first, last */
- 0x3EB2,0xD852,0xD852,0xD87E,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD847,0xD840,0xD840,0xD853,0xD853,0xD853,0xD853,0xD849,0xD853,
- 0xD844,0xD853,0xD853,0xD853,0xD853,0xD853,0xD87E,0xD854,0xD854,0xD87E,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD87E,0xD87E,0xD855,
- 0xD855,0x4129,0xD855,0xD856,0xD856,0xD856,0x4192,0xD856,0xD856,0xD857,
- 0xD857,0xD858,0xD858,0xD858,0xD858,0xD858,0xD859,0xD859,0xD859,0xD859,
- 0xD84D,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD87E,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 2, /* first low-surrogate */
- 0xDD0D,0xDD08,0xDD2B,0xDCFA,0xDEEA,0xDF2A,0xDFBB,0xDFD5,
- 0xDFD7,0xDDA4,0xDCF0,0xDCB5,0xDC06,0xDC28,0xDC22,0xDC21,0xDC56,0xDC23,
- 0xDDCD,0xDD30,0xDD34,0xDFC9,0xDFCA,0xDFC8,0xDD3D,0xDC44,0xDCF3,0xDD41,
- 0xDCF8,0xDCFC,0xDCF6,0xDCFB,0xDCF7,0xDD00,0xDD02,0xDD40,0xDD4D,0xDC24,
- 0xDE0D, 0,0xDF62,0xDD30,0xDD2B,0xDD2A, 0,0xDD2D,0xDEDA,0xDE28,
- 0xDF86,0xDE77,0xDE7C,0xDF50,0xDF4E,0xDFF2,0xDCB2,0xDCCE,0xDCCF,0xDCE5,
- 0xDC07,0xDD35,0xDD31,0xDE13,0xDE2B,0xDE2C,0xDE45,0xDE60,0xDE41,0xDE58,
- 0xDE47,0xDE5B,0xDE50,0xDD82,0xDE5F,0xDE4A,0xDE56,0xDE43,0xDE44,0xDE51,
- 0xDCFD,0xDD34,0xDD35,0xDD54,0xDD55,0xDE0C,0xDE0B,0xDE0A,0xDEF9,0xDF35,
- 0xDF24,0xDF13,0xDF1C,0xDF69,0xDF25,
- /* plane 6, row 14 */
- 1 | (94 << 8), /* first, last */
- 0xD85A,0xD87E,0xD87E,0xD87E,0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85E,0xD85E,0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD864,0xD840,0xD840,0xD840,0xD840,0xD840,0xD841,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0x3458,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD87E,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD87E,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,
- 1, /* first low-surrogate */
- 0xDF21,0xDD95,0xDD96,0xDD98,0xDE20,0xDDA9,0xDDA8,0xDDDE,0xDE09,
- 0xDE0A,0xDE0B,0xDFE3,0xDC07,0xDCB2,0xDCB3,0xDD5D,0xDE58,0xDE86,0xDE87,
- 0xDFB9,0xDFB8,0xDC0C,0xDC44,0xDC66,0xDC80,0xDC75,0xDC6D,0xDC7E,0xDC67,
- 0xDC81,0xDC77,0xDEA8,0xDEA2,0xDEA5,0xDE9B,0xDC57,0xDE0F,0xDE32,0xDE2C,
- 0xDE33,0xDDE7,0xDC6E,0xDCB7,0xDCF6,0xDCF2,0xDCF3,0xDD17,0xDD30,0xDD54,
- 0xDD53,0xDE52,0xDE3D,0xDE3C,0xDE34,0xDE33,0xDE54,0xDE2F, 0,0xDE55,
- 0xDE3F,0xDE37,0xDE56,0xDE61,0xDE58,0xDC06,0xDE3B,0xDE32,0xDE2E,0xDE3E,
- 0xDC3B,0xDC8C,0xDC8D,0xDD13,0xDD16,0xDD12,0xDD5B,0xDD8A,0xDDD7,0xDDCE,
- 0xDE50,0xDE51,0xDE4F,0xDE8E,0xDE8F,0xDEF2,0xDC21,0xDF28,0xDF1A,0xDF25,
- 0xDF1D,0xDF14,0xDF20,0xDF1F,0xDF1B,
- /* plane 6, row 15 */
- 1 | (94 << 8), /* first, last */
- 0xD841,0xD841,0xD841,0xD841,0xD87E,0xD842,0x351C,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD87E,0xD842,0xD842,0xD842,0xD842,0xD87E,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD844,
- 0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0x3637,
- 0xD844,0xD844,0xD844,0xD852,0xD844,0xD844,0xD844,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,
- 1, /* first low-surrogate */
- 0xDF17,0xDF15,0xDF1C,0xDF13,0xDC25,0xDC60, 0,0xDC66,0xDCE3,
- 0xDCDE,0xDCE0,0xDCE1,0xDD1A,0xDD1B,0xDD18,0xDD1C,0xDD19,0xDD42,0xDD40,
- 0xDD3E,0xDD44,0xDD74,0xDD43,0xDC2D,0xDDF2,0xDE1B,0xDE19,0xDE1E,0xDC30,
- 0xDE5E,0xDE66,0xDE5D,0xDE5A,0xDE5F,0xDE60,0xDE5B,0xDE5C,0xDE59,0xDEF0,
- 0xDEF1,0xDF43,0xDF40,0xDF42,0xDF41,0xDF3F,0xDC57,0xDC69,0xDC6F,0xDCAB,
- 0xDC71,0xDC93,0xDC56,0xDC90,0xDC6D,0xDC6C,0xDC70,0xDC66,0xDC67,0xDDD7,
- 0xDDB5,0xDDDB,0xDDD8,0xDDD5,0xDDD4,0xDEBA,0xDEB7,0xDEBE,0xDEB9, 0,
- 0xDEE0,0xDEDD,0xDEDE,0xDD18,0xDED8,0xDEBD,0xDEDB,0xDD1D,0xDD25,0xDF21,
- 0xDF0C,0xDF29,0xDF2D,0xDF1B,0xDF0E,0xDF1F,0xDF04,0xDF1C,0xDF05,0xDF06,
- 0xDF20,0xDF0D,0xDF2A,0xDF23,0xDF11,
- /* plane 6, row 16 */
- 1 | (94 << 8), /* first, last */
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD846,0xD853,0xD846,0xD846,0xD846,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD848,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD87E,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0x3843,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD87E,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0x38B4,0xD841,0xD840,0xD848,0xD848,
- 1, /* first low-surrogate */
- 0xDD5C,0xDD66,0xDD5B,0xDD4F,0xDD5E,0xDD5D,0xDDF1,0xDDEA,0xDDF4,
- 0xDDEB,0xDDF0,0xDDFA,0xDDFB,0xDF28,0xDF2C,0xDF6B,0xDF2A,0xDF6A,0xDF6F,
- 0xDFDB,0xDFE0,0xDFD1,0xDFE3,0xDFE5,0xDFE7,0xDC4D,0xDC55,0xDC54,0xDC53,
- 0xDC52,0xDC4E,0xDC60,0xDDC0,0xDD0F,0xDD11,0xDD13,0xDDC6,0xDDB3,0xDDC7,
- 0xDDD2,0xDDB8,0xDDAC,0xDDAE,0xDDCF,0xDDC5,0xDC7B,0xDDCC,0xDDAB,0xDDC9,
- 0xDDB9,0xDFFB,0xDFF8,0xDFF7,0xDFF9,0xDC20,0xDC3B,0xDC39,0xDC9E,0xDC9A,
- 0xDCAA,0xDCAB,0xDCAF,0xDC96,0xDCA9,0xDCA6,0xDC91, 0,0xDCAE,0xDC9F,
- 0xDCAC,0xDCA0,0xDD92,0xDD91,0xDDBF,0xDE17,0xDE0A,0xDE0C,0xDF4A,0xDF46,
- 0xDF34,0xDF45,0xDF43,0xDF44,0xDC93,0xDF87,0xDF86,0xDF8A,0xDFDA,0xDFD8,
- 0,0xDD18,0xDD34,0xDFD6,0xDFD4,
- /* plane 6, row 17 */
- 1 | (94 << 8), /* first, last */
- 0xD849,0xD849,0xD849,0xD849,0x38E0,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD87E,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD87E,0xD849,0xD849,0xD849,0xD849,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD87E,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84B,0xD84B,0xD855,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0x3AE4,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD87E,0xD84C,0xD84C,
- 0xD84C,0xD84C,0x6804,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0x3C26,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 1, /* first low-surrogate */
- 0xDC54,0xDC59,0xDC5A,0xDC57, 0,0xDCDD,0xDCE9,0xDCE0,0xDE05,
- 0xDE12,0xDE13,0xDE07,0xDE16,0xDE23,0xDE02,0xDCA1,0xDE4A,0xDE36,0xDE40,
- 0xDE56,0xDE43,0xDCA0,0xDE4B,0xDE46,0xDE3E,0xDE49,0xDDA7,0xDDB6,0xDDA6,
- 0xDDA8,0xDDAC,0xDDA9,0xDDAB,0xDE38,0xDE37,0xDE39,0xDE41,0xDE3E,0xDEC0,
- 0xDEBB,0xDEBF,0xDEBD,0xDEFE,0xDF1E,0xDEEE,0xDEFC,0xDCB7,0xDEF9,0xDF06,
- 0xDEE4,0xDEE9,0xDEE5,0xDF03,0xDEFD,0xDF49,0xDEBE,0xDF0A,0xDE26,0xDF18,
- 0xDF0D,0xDF0F,0xDF0E,0xDF20,0xDC71,0xDC99,0xDCE2,0xDCDF,0xDCDE,0xDD78,
- 0xDD79, 0,0xDD7C,0xDD7D,0xDD84,0xDD8B,0xDD8A,0xDCD2,0xDD89,0xDF2C,
- 0xDF29,0xDF6C, 0,0xDC09,0xDC08,0xDC0C,0xDC0D,0xDC10, 0,0xDC9F,
- 0xDC98,0xDCA2,0xDC9A,0xDDD5,0xDDE2,
- /* plane 6, row 18 */
- 1 | (94 << 8), /* first, last */
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD847,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD87E,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD87E,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD87E,0xD850,0xD850,0xD850,0xD850,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD87E,0xD851,0xD851,0xD851,
- 0xD851,0x3E6F,0xD851,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD842,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD87E,
- 0xD853,0xD853,0xD853,0xD853,0xD853,
- 1, /* first low-surrogate */
- 0xDDF0,0xDDEA,0xDDEB,0xDDED,0xDDE8,0xDDE0,0xDE85,0xDE86,0xDEF0,
- 0xDE46,0xDF45,0xDF38,0xDF3E,0xDF42,0xDF40,0xDC47,0xDC5C,0xDC5E,0xDCB4,
- 0xDCC2,0xDD14,0xDCE5,0xDD15,0xDD11,0xDCFF,0xDCEE,0xDCE7,0xDCF5,0xDCF4,
- 0xDCE8,0xDD01,0xDCEF,0xDCF1,0xDD00,0xDDDB,0xDDBF,0xDDDA,0xDDC7,0xDDDD,
- 0xDD1A,0xDDEB,0xDDE1,0xDDC1,0xDDBD,0xDD07,0xDCFD,0xDD01,0xDD0A,0xDD03,
- 0xDD72,0xDD74,0xDD75,0xDDB2,0xDDB1,0xDDB4,0xDE4C,0xDE42,0xDE40,0xDE49,
- 0xDE3C,0xDE4D,0xDE4A,0xDE3B,0xDF61,0xDF74,0xDD26,0xDF7F,0xDF7A,0xDF88,
- 0xDF7C, 0,0xDF70,0xDD0F,0xDD28,0xDD13,0xDD2A,0xDEED,0xDEEF,0xDF2E,
- 0xDFC1,0xDFDD,0xDF47,0xDC2D,0xDC2B,0xDC35,0xDC2F,0xDC31,0xDC34,0xDD35,
- 0xDC30,0xDD3A,0xDD39,0xDD37,0xDD4B,
- /* plane 6, row 19 */
- 1 | (94 << 8), /* first, last */
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD854,0xD854,0xD854,0xD854,0xD854,0xD87E,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0x401C,0xD854,0xD854,0xD854,0xD854,0xD87E,
- 0xD85A,0xD854,0xD854,0xD854,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0x4100,0xD855,0xD87E,0xD855,0xD84F,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD857,0xD857,0xD857,0xD857,0x42B6,0xD857,
- 0xD87E,0xD857,0xD857,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD859,0xD858,0xD858,0xD858,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0x43E4,0xD859,
- 1, /* first low-surrogate */
- 0xDD54,0xDD4D,0xDD51,0xDD47,0xDF27,0xDF50,0xDF4D,0xDF4E,0xDF54,
- 0xDFD2,0xDFCE,0xDC4B,0xDC49,0xDD05,0xDD0F,0xDD19,0xDD43,0xDD06,0xDD0C,
- 0xDD29,0xDD04,0xDD08,0xDD25, 0,0xDD03,0xDD27,0xDD10,0xDD0A,0xDD42,
- 0xDF5D,0xDFAA,0xDFAB,0xDFA9,0xDC41,0xDC3A,0xDC3C,0xDC2B,0xDC49,0xDE15,
- 0,0xDE16,0xDD53,0xDE31,0xDC4A,0xDF3C,0xDF7C,0xDF6D,0xDF6A,0xDF63,
- 0xDF6B,0xDF7B,0xDF64,0xDF7A,0xDF69,0xDF6F,0xDD37,0xDD35,0xDD3C,0xDD36,
- 0xDD3D,0xDD3E,0xDEE1,0xDEE0,0xDE2D,0xDE2B,0xDF8D,0xDF92, 0,0xDF8E,
- 0xDD6B,0xDF91,0xDF96,0xDE7B,0xDE78,0xDE81,0xDE96,0xDEA3,0xDE95,0xDE97,
- 0xDF54,0xDF52,0xDFF5,0xDC00,0xDFFB,0xDFF4,0xDFF6,0xDCE8,0xDCEA,0xDE3E,
- 0xDE3D,0xDE3B,0xDE80, 0,0xDE88,
- /* plane 6, row 20 */
- 1 | (94 << 8), /* first, last */
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD844,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0x44AD,0xD85A,0x82FF,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD87E,0xD85A,0xD85A,0xD87E,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD860,0xD87E,0xD860,0xD861,0x8FEC,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0x48C3,0xD862,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD852,
- 0xD841,0xD865,0xD865,0xD865,0xD865,
- 1, /* first low-surrogate */
- 0xDE81,0xDE82,0xDECE,0xDE83,0xDE77,0xDE79,0xDE73,0xDE6D,0xDE70,
- 0xDE8D,0xDE75,0xDE8C,0xDE6A,0xDE91,0xDE89,0xDE8E,0xDEDC,0xDCFF,0xDD59,
- 0xDDC7,0xDE12,0xDE14,0xDE13,0xDECB,0xDF42, 0,0xDF3D, 0,0xDF40,
- 0xDF44,0xDF62,0xDF43,0xDF3F,0xDF45,0xDF3C,0xDD97,0xDF46,0xDF47,0xDDB3,
- 0xDD9E,0xDD9D,0xDE2C,0xDE29,0xDE2F,0xDE2E,0xDE30,0xDDE1,0xDDE2,0xDE0E,
- 0xDE19,0xDE12,0xDCB4,0xDFDA,0xDD26,0xDE59,0xDE5A,0xDE88,0xDFC0,0xDFBA,
- 0xDEA0,0xDDDD,0xDEA2,0xDC86, 0,0xDC9D,0xDC88,0xDC8F,0xDC8E,0xDC9B,
- 0xDEC1,0xDEC3,0xDEC4,0xDE96,0xDEC7,0xDEC6,0xDEBF, 0,0xDD0F,0xDE55,
- 0xDE42,0xDE46,0xDE4B,0xDE43,0xDE53,0xDE48,0xDE49,0xDE4A,0xDE4E,0xDFDE,
- 0xDE91,0xDC4B,0xDE80,0xDE81,0xDE83,
- /* plane 6, row 21 */
- 1 | (94 << 8), /* first, last */
- 0xD840,0xD865,0xD848,0xD842,0xD840,0xD840,0xD840,0xD847,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD842,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0x3467,0xD840,0xD840,0xD840,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD87E,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD842,0xD842,0xD842,0xD87E,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0x53DE,0xD842,
- 0xD842,0xD842,0xD842,0x3596,0xD87E,
- 1, /* first low-surrogate */
- 0xDE8A,0xDE82,0xDF42,0xDD22,0xDC70,0xDC71,0xDCBC,0xDD18,0xDCBE,
- 0xDCBA,0xDCF8,0xDD37,0xDD35,0xDEFC,0xDD56,0xDD59,0xDD5E,0xDE6D,0xDE91,
- 0xDE92,0xDE68,0xDE66,0xDE73, 0,0xDE96,0xDE8B,0xDE8C,0xDC96,0xDCEE,
- 0xDD1C,0xDD1A,0xDD19,0xDD1B,0xDD5D,0xDD5E,0xDC18,0xDDDC,0xDDE2,0xDE52,
- 0xDE92,0xDF30,0xDF52,0xDF42,0xDF41,0xDF45,0xDF37,0xDF40,0xDF3F,0xDF3D,
- 0xDF38,0xDF3A,0xDF49,0xDC6B,0xDC78,0xDC79,0xDC26,0xDC6C,0xDCE9,0xDCE6,
- 0xDCE5,0xDCEA,0xDCE7,0xDCE8,0xDD1F,0xDD4B,0xDD4A,0xDD53,0xDD76,0xDDA3,
- 0xDDA4,0xDDF6,0xDDF3,0xDDF9,0xDDF7,0xDDFC,0xDE1D,0xDE6D,0xDE71,0xDE6C,
- 0xDE6E,0xDE70,0xDE6F,0xDE67,0xDE68,0xDEFA,0xDEF9,0xDF4E, 0,0xDF4D,
- 0xDF4F,0xDF4A,0xDF4C, 0,0xDC42,
- /* plane 6, row 22 */
- 1 | (94 << 8), /* first, last */
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0xD87E,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0xD844,0xD844,0xD845,0xD845,0xD845,0xD84B,0xD845,0xD845,0xD845,
- 0xD845,0xD842,0xD845,0xD845,0xD87E,0xD87E,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0x5A30,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0x3759,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0x5BB2,0xD87E,0x3776,0xD846,0xD846,0xD846,0xD846,0xD846,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD858,0xD847,0x37D2,0xD847,0xD847,
- 1, /* first low-surrogate */
- 0xDCEE,0xDCB2,0xDCC0,0xDCC1,0xDCF4,0xDCC8,0xDCC5,0xDCC6,0xDCAD,
- 0xDDE2,0xDDEA,0xDDE3,0xDDE1,0xDEF7,0xDF01,0xDF12,0xDEF6,0xDEF1,0xDF1F,
- 0xDEEE,0xDC52,0xDEF3,0xDF15,0xDF16,0xDF17,0xDEF8,0xDF19,0xDEF2,0xDEF4,
- 0xDEF5,0xDF13,0xDF06,0xDD26,0xDD24,0xDD5A,0xDEC8,0xDD97,0xDD95,0xDD9A,
- 0xDE1F,0xDEFB,0xDE29,0xDE20,0xDC62,0xDC63,0xDF4C,0xDF30,0xDF38,0xDF3D,
- 0xDF51,0xDF4F,0xDF4A,0xDF34,0xDF36, 0,0xDD6A,0xDD68,0xDE1C,0xDE0E,
- 0xDE1E, 0,0xDE09,0xDE08,0xDE13,0xDE01,0xDE0F,0xDE14,0xDE06,0xDE07,
- 0,0xDC73, 0,0xDF79,0xDFEA,0xDFED,0xDFE9,0xDFEE,0xDC68,0xDC64,
- 0xDC67,0xDC72,0xDC62,0xDC74,0xDC79,0xDD19,0xDD17,0xDD15,0xDD16,0xDDE6,
- 0xDEA4,0xDDEE, 0,0xDDDF,0xDDE4,
- /* plane 6, row 23 */
- 1 | (94 << 8), /* first, last */
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD841,0xD848,0xD848,
- 0xD848,0xD848,0xD87E,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD849,0xD849,0xD849,0xD849,
- 0xD84E,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0x3920,0xD849,0xD849,0xD849,0xD849,0xD849,0x3929,0xD849,
- 0xD849,0xD849,0x3938,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD87E,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 1, /* first low-surrogate */
- 0xDDDA,0xDDEA,0xDDED,0xDDE3,0xDDE9,0xDFFD,0xDE57,0xDC21,0xDCC6,
- 0xDCB8,0xDCCB,0xDC85,0xDCBD,0xDCB5,0xDCBB,0xDCBF,0xDCBE,0xDCB2,0xDCC1,
- 0xDCC2,0xDD99,0xDDC6,0xDE2C,0xDE2D,0xDE25,0xDE1E,0xDE1F,0xDE23,0xDF50,
- 0xDF4E,0xDF4D,0xDF52,0xDFE9,0xDFEC,0xDFE8,0xDC58,0xDC5C,0xDC5B,0xDC8F,
- 0xDD72,0xDCF6,0xDD00,0xDCFC,0xDCF8,0xDCEA,0xDCFE,0xDCF7,0xDCFD,0xDE70,
- 0xDE62,0xDE44, 0,0xDE4D,0xDE4C,0xDE3F,0xDE66,0xDE35, 0,0xDE34,
- 0xDE8D,0xDE84, 0,0xDE86,0xDE89,0xDE87,0xDE83,0xDE75,0xDE79,0xDEAF,
- 0xDEB0,0xDDB7,0xDDBB,0xDDB9,0xDE46,0xDE47,0xDE45,0xDEEA,0xDEF6,0xDF68,
- 0xDF39,0xDCB9,0xDF3D,0xDF3B,0xDF4D,0xDF30,0xDF4A,0xDF3E,0xDF40,0xDF4C,
- 0xDF47,0xDF38,0xDF52,0xDF3A,0xDF53,
- /* plane 6, row 24 */
- 1 | (94 << 8), /* first, last */
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0x3A89,0x3AB0,0xD84C,0xD84C,0xD84C,0x3ABF,0xD84C,0xD84C,0xD84C,
- 0x3AC5,0xD84C,0xD87E,0x3AEA,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD87E,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD87E,0xD84D,
- 0xD84D,0xD84D,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0x3C37,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84F,0xD84F,0x3CE4,0xD84F,0xD87E,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 1, /* first low-surrogate */
- 0xDEC4,0xDEC1,0xDF1C,0xDF1D,0xDF2A,0xDF1E,0xDF2F,0xDF22,0xDF2E,
- 0xDF25, 0, 0,0xDC4A,0xDC4B,0xDC76, 0,0xDCE8,0xDCEF,0xDCE9,
- 0,0xDCEA,0xDCCC, 0,0xDD9B,0xDD9E,0xDD93,0xDDA7,0xDD9C,0xDDA0,
- 0xDD9A,0xDDAB,0xDDBE,0xDDA9,0xDF2D,0xDF6E,0xDC44,0xDC3D,0xDC3A,0xDC68,
- 0xDC3C,0xDC6A,0xDCE0,0xDC38,0xDC65,0xDC39,0xDC6D,0xDC36,0xDCE3,0xDC3E,
- 0xDC7E,0xDC37,0xDC99,0xDCA9,0xDCAD,0xDCA7,0xDCA8,0xDD66,0xDD69,0xDD6D,
- 0xDD67,0xDD6B,0xDD6A,0xDDEE,0xDE01,0xDE03,0xDDF4,0xDDFB, 0,0xDDF6,
- 0xDDFC,0xDEF4,0xDF08,0xDF0A,0xDF09,0xDF6D,0xDF62,0xDF41,0xDF5E,0xDF5C,
- 0xDCF3,0xDD26, 0,0xDD39,0xDD04,0xDD6C,0xDD2B,0xDD2E,0xDD3B,0xDD5E,
- 0xDDFB,0xDD27,0xDD24,0xDD69,0xDD30,
- /* plane 6, row 25 */
- 1 | (94 << 8), /* first, last */
- 0xD87E,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD87E,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0x3CE8,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD851,
- 0xD851,0xD851,0x3E20,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD853,0xD843,0xD853,0xD853,0xD853,0xD853,0xD853,0xD840,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0x3F86,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD854,0xD854,0xD854,0xD854,
- 1, /* first low-surrogate */
- 0xDD05,0xDD62,0xDD38,0xDD35,0xDD2A,0xDD2C,0xDD68,0xDD31,0xDD2F,
- 0xDD2D,0xDD3A,0xDD36,0xDD03,0xDD21,0xDD3C,0xDD20,0xDD64,0xDD3E, 0,
- 0xDDF7,0xDE12,0xDDF1,0xDDF5,0xDE22,0xDDF2,0xDDDF,0xDE15,0xDE16,0xDD7A,
- 0xDD76,0xDDBE, 0,0xDDBD,0xDE09,0xDE08,0xDE57,0xDFA3,0xDFBF,0xDFB8,
- 0xDFAF,0xDF9C,0xDFA5,0xDF72,0xDF75,0xDF9D,0xDF99,0xDFB9,0xDD4E,0xDD39,
- 0xDD3B,0xDD35,0xDD3C,0xDD55,0xDEF0,0xDEF3,0xDEF4,0xDF3B,0xDF3C,0xDF3A,
- 0xDF36,0xDC07,0xDCEB,0xDC55,0xDC50,0xDC4F,0xDC52,0xDC56,0xDCBD,0xDC32,
- 0xDD63,0xDD6B,0xDD66,0xDD57,0xDD5D, 0,0xDD6D,0xDD61,0xDD69,0xDD5A,
- 0xDD5C,0xDD62,0xDF2A,0xDF29,0xDF58,0xDF5A,0xDFD7,0xDFDB,0xDFDC,0xDFDD,
- 0xDFD8,0xDC54,0xDC5B,0xDC5C,0xDC53,
- /* plane 6, row 26 */
- 1 | (94 << 8), /* first, last */
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD87E,0xD87E,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD87E,0xD855,0xD855,0xD855,0xD855,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD840,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0x4356,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0x4367,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,
- 1, /* first low-surrogate */
- 0xDC4F,0xDC56,0xDC50,0xDC5A,0xDC6B,0xDD36,0xDD53,0xDD3A,0xDD3C,
- 0xDD3E,0xDD49,0xDD40,0xDD46,0xDD47,0xDF64,0xDF65,0xDFB5,0xDFB6,0xDFB2,
- 0xDC48,0xDC4A,0xDC72,0xDC69,0xDC5A,0xDC4C,0xDE2C,0xDE30,0xDE4B,0xDE49,
- 0xDE42,0xDE44,0xDE4A,0xDE4F,0xDF92,0xDD57,0xDF97,0xDF80,0xDF82,0xDF86,
- 0xDD53,0xDD5E,0xDD52,0xDD5B,0xDD4E,0xDE6D,0xDE6E,0xDEFA,0xDEF6,0xDEFB,
- 0xDE33,0xDE3D,0xDE37,0xDE3E,0xDE35,0xDF9A,0xDFAB,0xDFA6,0xDFB0,0xDF99,
- 0xDFA0,0xDF9E,0xDFA8,0xDFA1,0xDFAA,0xDFAD,0xDFBB,0xDF9C,0xDFA5,0xDCB3,
- 0xDE27,0xDE8D,0xDE8E,0xDE8F,0xDE92, 0,0xDE91,0xDEAD,0xDF57,0xDF58,
- 0xDF5E,0xDF5D,0xDF5C,0xDF5B, 0,0xDC0A,0xDC03,0xDC0E,0xDCB8,0xDD4D,
- 0xDD3F,0xDD47,0xDD4B,0xDD4A,0xDD3D,
- /* plane 6, row 27 */
- 1 | (94 << 8), /* first, last */
- 0x8038,0xD859,0xD859,0x8081,0xD859,0xD859,0xD859,0x43D1,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0x43EB,0xD859,0xD859,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD847,0xD85A,0xD85A,0xD85A,
- 0xD87E,0xD85A,0xD85A,0xD85A,0x44B6,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0x45A3,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD87E,0xD85D,0x4610,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 2, /* first low-surrogate */
- 0xDD41,0xDD4C, 0,0xDE62,0xDE69,0xDE61, 0,0xDEAA,
- 0xDEA6,0xDEAC,0xDEBD,0xDEBB,0xDEA4,0xDEBA,0xDE9A, 0,0xDEA1,0xDEC1,
- 0xDCE0,0xDD0A,0xDD03,0xDD06,0xDD39,0xDD3A,0xDD36,0xDD5B,0xDD5F,0xDD5E,
- 0xDD67,0xDD61,0xDD62,0xDD5D,0xDDCA,0xDDCC,0xDDCE,0xDE18,0xDE1D,0xDE1F,
- 0xDE20,0xDE17,0xDE15,0xDF1F,0xDF27,0xDF26,0xDE10,0xDF8B,0xDFAE,0xDF8A,
- 0xDD99,0xDF92,0xDF89,0xDF87, 0,0xDF8F,0xDF84,0xDF83,0xDF8C,0xDF93,
- 0xDF8D,0xDF98,0xDF7D,0xDF7E,0xDFD2,0xDF80,0xDF99,0xDDAC,0xDE50,0xDE55,
- 0xDE42,0xDE3F,0xDE3C, 0,0xDE4C,0xDE49,0xDE57,0xDE58,0xDE4F,0xDE5C,
- 0xDE47,0xDDB7,0xDDAB, 0,0xDDAF,0xDDAD,0xDDE8,0xDDE7,0xDE30,0xDE26,
- 0xDE2F,0xDE28,0xDE2B,0xDE1D,0xDE2D,
- /* plane 6, row 28 */
- 1 | (94 << 8), /* first, last */
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85E,0xD85E,0xD87E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD87E,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD860,0xD860,0xD860,0xD860,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD862,0xD862,0x491B,0xD862,0x4987,
- 0xD863,0xD842,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD864,0xD864,0xD865,0xD865,0xD87E,0xD865,0xD866,
- 0xD842,0xD840,0xD842,0xD840,0xD840,
- 1, /* first low-surrogate */
- 0xDE20,0xDE2A,0xDE2C,0xDE35,0xDE21,0xDE23,0xDE24,0xDE36,0xDE37,
- 0xDFE9,0xDCBA,0xDCB8,0xDDCC,0xDD6D,0xDD6A,0xDD68,0xDD69,0xDD6B,0xDD61,
- 0xDFDC,0xDFDB,0xDC2D,0xDC2C,0xDCA2,0xDD2B,0xDD32,0xDDD7,0xDE94,0xDE92,
- 0xDE90,0xDFC9,0xDFC4,0xDFC1,0xDFC3,0xDFCD,0xDE14,0xDEA7,0xDEAF,0xDEAA,
- 0xDC0D,0xDC54,0xDC5B,0xDC61,0xDCAE,0xDCB3,0xDCC0,0xDCC4,0xDCBF,0xDCCB,
- 0xDCAD,0xDCA7,0xDCA4,0xDCBD,0xDCAF,0xDCB2,0xDCA5,0xDEE7,0xDEE0,0xDECE,
- 0xDEDE,0xDED5,0xDEDF,0xDED9,0xDFF2,0xDD23,0xDD40, 0,0xDD3E, 0,
- 0xDCCF,0xDF54,0xDE5B,0xDE58,0xDE62,0xDE5F,0xDE67,0xDE63,0xDE5E,0xDE60,
- 0xDF85,0xDF86,0xDF87,0xDDE8,0xDDE6,0xDE71,0xDE85,0xDE02,0xDE86,0xDC10,
- 0xDDF8,0xDCBF,0xDF61,0xDCFE,0xDCFC,
- /* plane 6, row 29 */
- 1 | (94 << 8), /* first, last */
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD87E,0xD840,0xD840,0xD840,0xD840,0xD841,0xD841,0xD87E,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD87E,0xD87E,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0x3557,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD87E,0xD843,0xD843,
- 1, /* first low-surrogate */
- 0xDD39,0xDD61,0xDD60,0xDEE2,0xDEEA,0xDEE3,0xDEB4,0xDEAE,0xDEBE,
- 0xDEB8,0xDEA8,0xDEAA,0xDEA9,0xDEB3,0xDED5,0xDEAD,0xDEB9,0xDEBB,0xDEB1,
- 0xDEC2,0xDC08,0xDEEB,0xDEBA,0xDED2,0xDED4,0xDCF1,0xDD1D,0xDC12,0xDD62,
- 0xDD8C,0xDDE6,0xDDE7,0xDE5A,0xDE58,0xDE59,0xDE96,0xDE97,0xDF61,0xDF67,
- 0xDF71,0xDF65,0xDF7D,0xDF7E,0xDC7D,0xDC84,0xDC7C,0xDC7E,0xDC7F,0xDC80,
- 0xDCEF,0xDCF4,0xDD1E,0xDD4E,0xDDFB,0xDDFA,0xDDFD,0xDC31,0xDC32,0xDE79,
- 0xDE7C,0xDE7D,0xDE84,0xDE7B,0xDE78, 0,0xDF5E,0xDF5A,0xDF5C,0xDF59,
- 0xDF55,0xDF63,0xDF56,0xDF5F,0xDF60,0xDF5B,0xDD4A,0xDD65,0xDDB3,0xDD2C,
- 0xDD77,0xDD3D,0xDD52,0xDD61,0xDD2A,0xDD3E,0xDD34,0xDD29,0xDDB2,0xDDAD,
- 0xDD40,0xDD53,0xDC44,0xDD3F,0xDD41,
- /* plane 6, row 30 */
- 1 | (94 << 8), /* first, last */
- 0xD843,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0xD87E,0xD87E,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0xD844,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0x369D,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD87E,0xD845,
- 0xD845,0xD845,0xD87E,0xD846,0xD846,0xD846,0xD846,0xD846,0x375F,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0x3779,0xD840,
- 0xD846,0xD847,0xD847,0xD847,0xD847,0x3798,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0x37DC,0x5D2B,0xD847,0x37DF,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,
- 1, /* first low-surrogate */
- 0xDD72,0xDDF6,0xDDF5,0xDDF4,0xDDF2,0xDDF9,0xDF27,0xDF54,0xDF55,
- 0xDF2E,0xDC54,0xDC53,0xDF2C,0xDF38,0xDF39,0xDF31,0xDF4F,0xDF73,0xDF30,
- 0xDF2B,0xDF51,0xDD2C,0xDD5B,0xDD5C,0xDD68,0xDD6C,0xDD6B,0xDD69,0xDD9F,
- 0xDE38,0xDE3C,0xDE3A,0xDE35, 0,0xDE39,0xDE36,0xDE3B,0xDF60,0xDF61,
- 0xDF63,0xDF64,0xDF94,0xDF93,0xDF5E,0xDF68,0xDF6A,0xDF65,0xDC66,0xDF90,
- 0xDF5F,0xDF72,0xDC65,0xDE3C,0xDE27,0xDE24,0xDE26,0xDE25, 0,0xDE28,
- 0xDE36,0xDF31,0xDF30,0xDF34,0xDF81,0xDF7D,0xDF82,0xDF80, 0,0xDED3,
- 0xDFF2,0xDC66,0xDC8C,0xDC7B,0xDC83, 0,0xDC8E,0xDC7A,0xDC92,0xDC91,
- 0xDC82,0xDD1B,0xDD1C,0xDE27,0xDE21, 0, 0,0xDE43, 0,0xDE18,
- 0xDE7B,0xDE1A,0xDE4B,0xDE4A,0xDE4D,
- /* plane 6, row 31 */
- 1 | (94 << 8), /* first, last */
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD87E,0xD87E,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD87E,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,
- 1, /* first low-surrogate */
- 0xDE4F,0xDE19,0xDE35,0xDE13,0xDE52,0xDE14,0xDE1E,0xDE2C,0xDE20,
- 0xDE22,0xDE12,0xDE1F,0xDC00,0xDC23,0xDC40,0xDC43,0xDCE4,0xDCDB,0xDCEA,
- 0xDCDD,0xDCCC,0xDCD9,0xDCE8,0xDCF6,0xDCE3,0xDCD3,0xDCDA,0xDCD6,0xDCE7,
- 0xDE3A,0xDE3F,0xDE40,0xDE48,0xDE59,0xDE37,0xDE44,0xDC8C,0xDC8B,0xDE55,
- 0xDE39,0xDF54,0xDF55,0xDF56,0xDF57,0xDF58,0xDF59,0xDF8D,0xDFF2,0xDFF8,
- 0xDFF5,0xDFF6,0xDFFC,0xDFFE,0xDFF1,0xDFFD,0xDC5E,0xDC96,0xDC97,0xDC9C,
- 0xDC9B,0xDC95,0xDC9A,0xDD1A,0xDD09,0xDD04,0xDD0E,0xDD1C,0xDD18,0xDD0D,
- 0xDD10,0xDD0C,0xDD03,0xDE7B,0xDEA6,0xDE77,0xDE88,0xDE74,0xDEDA,0xDE76,
- 0xDE78,0xDE8A,0xDE8F,0xDE7D,0xDE90,0xDEED,0xDED9,0xDED0,0xDF1A,0xDED7,
- 0xDEE2,0xDEE1,0xDEC5,0xDEE0,0xDECA,
- /* plane 6, row 32 */
- 1 | (94 << 8), /* first, last */
- 0xD849,0xD849,0xD87E,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD87E,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0x39FD,0xD84A,
- 0xD84A,0xD84A,0xD87E,0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0x3AF4,0xD84C,0x3AEF,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD87E,0xD87E,0xD84C,0xD84C,0xD84C,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84E,0xD84E,0xD84E,0x3C31,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 1, /* first low-surrogate */
- 0xDF25,0xDECC,0xDCB3,0xDDC6,0xDDC1,0xDE4D,0xDF4B,0xDF64,0xDF95,
- 0xDF99,0xDCBC,0xDF94,0xDFA2,0xDFAE,0xDF9E,0xDFA7,0xDF86, 0,0xDFA4,
- 0xDF91,0xDF93,0xDCBB,0xDF88,0xDECD,0xDECA,0xDF3F,0xDF40,0xDF46,0xDF41,
- 0xDF45,0xDF58,0xDF3B,0xDF48,0xDC4E,0xDC52,0xDC4F,0xDC7B,0xDC7A,0xDCA0,
- 0xDC9F,0xDCFB,0xDCF7,0xDDB8,0xDDB9,0xDDBB,0xDDB7, 0,0xDDBA, 0,
- 0xDDDA,0xDDB5,0xDDBF,0xDDBC,0xDDC0,0xDCD3,0xDCD9,0xDF75,0xDF79,0xDF76,
- 0xDC35,0xDC40,0xDCC0,0xDC81,0xDCAD,0xDCAF,0xDCAC,0xDC8F,0xDCA8,0xDCAA,
- 0xDCA9,0xDC88,0xDC7F,0xDC80,0xDCBC,0xDCAE,0xDCBB,0xDCBD, 0,0xDD78,
- 0xDD74,0xDE0C,0xDE11,0xDE08,0xDE06,0xDE10,0xDE8F,0xDE90,0xDE8D,0xDE8E,
- 0xDE96,0xDE95,0xDF0B,0xDF0C,0xDF7C,
- /* plane 6, row 33 */
- 1 | (94 << 8), /* first, last */
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84F,0xD84F,0xD84F,
- 0xD84F,0x3D03,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0x3D09,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD87E,0xD851,0xD87E,0xD851,0xD851,
- 0x3E3E,0xD851,0xD851,0xD851,0xD87E,0xD853,0xD851,0x3E77,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0x3E7B,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD85A,0xD852,
- 1, /* first low-surrogate */
- 0xDF73,0xDF75,0xDF76,0xDF7D,0xDF78,0xDF71,0xDC4B,0xDC4E,0xDD33,
- 0xDD32, 0,0xDD91,0xDDE7,0xDDE9,0xDDA2,0xDD94,0xDD87,0xDDA3,0xDDDD,
- 0xDD7B,0xDD83,0xDD81,0xDDDF,0xDD7C,0xDDE4,0xDDE2,0xDD93,0xDD7D,0xDDBF,
- 0xDD9B,0xDD8E,0xDD9F, 0,0xDD8C,0xDD7F,0xDD9C,0xDD84,0xDD42,0xDDE6,
- 0xDE51,0xDE4A,0xDE64,0xDE25,0xDE2F,0xDE2E,0xDE2B,0xDE28,0xDE32,0xDE2D,
- 0xDE31,0xDE39,0xDE2C,0xDE61,0xDD11,0xDD10,0xDD12,0xDD53,0xDD55,0xDD7B,
- 0xDD81,0xDD7D,0xDD7C,0xDDC2,0xDDC5,0xDD22,0xDDC4,0xDD23,0xDE6B,0xDE68,
- 0,0xDE5C,0xDE5D,0xDE6A,0xDD24,0xDC76,0xDF76, 0,0xDFC4,0xDFCB,
- 0xDFC8,0xDFD4,0xDFD5,0xDFC9,0xDFD7, 0,0xDD78,0xDD5A,0xDD5B,0xDD5C,
- 0xDD56,0xDD58,0xDD71,0xDDD4,0xDF40,
- /* plane 6, row 34 */
- 1 | (94 << 8), /* first, last */
- 0xD87E,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD87E,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD87E,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0x413A,0xffff,0xD855,0xD855,0xD855,0xD856,0xD856,0xD856,0xD856,0x41A0,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0x41E5,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD857,0xD857,
- 1, /* first low-surrogate */
- 0xDD33,0xDF3F,0xDF43,0xDF41,0xDFE2,0xDFE0,0xDFE3,0xDC66,0xDC73,
- 0xDC6C,0xDC71,0xDC6A,0xDC6D,0xDC6E,0xDC6B,0xDD8C,0xDD77,0xDD3A,0xDD7F,
- 0xDD89,0xDD7A,0xDD85,0xDD78,0xDD8A,0xDD86,0xDF2C,0xDF67,0xDF5B,0xDFE5,
- 0xDFE1,0xDC61,0xDC69,0xDC6A,0xDD65,0xDD6D,0xDD63,0xDD86,0xDD5C,0xDD62,
- 0xDD48,0xDD79,0xDD69,0xDD70,0xDD76,0xDD5D,0xDD87,0xDD6E,0xDD71,0xDD7C,
- 0xDD73,0xDD5B,0xDD6B,0xDFBF,0xDFC1,0xDFBD,0xDFC9,0xDFBC,0xDFC2,0xDFC0,
- 0xDC92,0xDCA9,0xDC8F,0xDC76,0xDC7B,0xDC75,0xDCA4,0xDE64,0xDF3D,0xDFAF,
- 0, 0,0xDF9D,0xDF99,0xDFB1,0xDD63,0xDD62,0xDD64,0xDD69, 0,
- 0xDE75,0xDE73,0xDE71,0xDE74,0xDF0C,0xDF16, 0,0xDF11,0xDF1F,0xDF1A,
- 0xDF0D,0xDF1B,0xDF13,0xDE4E,0xDE55,
- /* plane 6, row 35 */
- 1 | (94 << 8), /* first, last */
- 0xD857,0x427D,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0x436D,0xD858,
- 0xD858,0xD858,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0x43F8,0xD859,0x8158,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD840,0x4450,0xD85A,
- 0xD85A,0xD846,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0x4468,0x4467,0xD85A,0xD85A,0xD85A,0xD85A,0xD87E,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85B,0xD85A,
- 1, /* first low-surrogate */
- 0xDE50, 0,0xDFD2,0xDFD3,0xDFD1,0xDFF1,0xDFDC,0xDFC8,0xDFCC,
- 0xDFD0,0xDFCF,0xDFDF,0xDE2B,0xDE2E,0xDE2D,0xDE9D,0xDE9E,0xDE9F,0xDEA9,
- 0xDEA0,0xDE98,0xDEA1,0xDEAB,0xDEAF,0xDF6E,0xDF5F,0xDF5A, 0,0xDF65,
- 0xDF68,0xDF72,0xDC17,0xDC16,0xDC18,0xDC19,0xDC1A,0xDC22,0xDC1B,0xDC1C,
- 0xDCBE,0xDCEE,0xDD5A,0xDD50,0xDD58,0xDD54,0xDD57,0xDD56,0xDE15,0xDE9B,
- 0xDE93,0xDE92,0xDE72,0xDE98,0xDE99,0xDEDF, 0,0xDED5, 0,0xDED4,
- 0xDEF3,0xDEF4,0xDEE7,0xDEE1,0xDEE6,0xDEEB,0xDEEC,0xDEDB, 0,0xDD0D,
- 0xDD0C,0xDF2F,0xDD68,0xDD65,0xDD6B,0xDD69,0xDDD1,0xDDD3,0xDE27,0xDE28,
- 0, 0,0xDE24,0xDED7,0xDFCA,0xDFC7,0xDD9E,0xDFD8,0xDFE1,0xDFC6,
- 0xDFF8,0xDFC3,0xDFF4,0xDC17,0xDFEA,
- /* plane 6, row 36 */
- 1 | (94 << 8), /* first, last */
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85B,0xD85A,0xD85A,0x44CF,0xD85A,
- 0xD85A,0xD87E,0x44CD,0xD85B,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85B,0xD85A,0xD85A,0xD85A,0xD87E,0xD87E,0xD87E,
- 0xD87E,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0x45AB,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0x46C1,0xD85E,0xD85E,
- 0x8A24,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,
- 1, /* first low-surrogate */
- 0xDFCB,0xDF86,0xDFC4,0xDFD9,0xDC19,0xDFC2,0xDFE2, 0,0xDFDE,
- 0xDFED,0xDD9C, 0,0xDC1D,0xDFDD,0xDFDB,0xDFE8,0xDFE9,0xDFBF,0xDFE0,
- 0xDFD1,0xDFDC,0xDFCE,0xDC1E,0xDFCC,0xDFF2,0xDFF3,0xDD9F,0xDDA2,0xDDA3,
- 0xDDA1,0xDDAB,0xDDAA,0xDDA7,0xDDA9,0xDE88,0xDE75,0xDE60,0xDE6C,0xDE73,
- 0,0xDE6E,0xDE74,0xDE76,0xDE68,0xDE77,0xDE86,0xDDEA,0xDE51,0xDE50,
- 0xDE58,0xDE4D,0xDE4F,0xDE4E,0xDE5C,0xDE52,0xDE44,0xDE4A,0xDE4B,0xDFEA,
- 0xDC10,0xDC11,0xDCCD,0xDCBF,0xDCC4,0xDCD0,0xDCCE,0xDCC0,0xDCC2,0xDCCF,
- 0xDCC9,0xDCBB,0xDD97,0xDD92,0xDD6F,0xDD7E,0xDD9A, 0,0xDD86,0xDD73,
- 0,0xDD77,0xDD8F,0xDD70,0xDD81,0xDD82,0xDD99,0xDD7D,0xDD7F,0xDD7B,
- 0xDD87,0xDFB2,0xDC2F,0xDC34,0xDC2E,
- /* plane 6, row 37 */
- 1 | (94 << 8), /* first, last */
- 0xD85F,0x4747,0xD85F,0x4757,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0x8DC3,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0x484E,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD862,0xD862,0xD861,0xD862,0xD861,0xD862,
- 0xD861,0xD862,0xD861,0xD861,0xD862,0xD862,0xD862,0xD862,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD840,0xD840,
- 1, /* first low-surrogate */
- 0xDC32, 0,0xDCAA, 0,0xDCA9,0xDD38,0xDD36,0xDD37,0xDD47,
- 0xDD33,0xDD39,0xDD35,0xDD44,0xDEA5,0xDEA6,0xDE9E,0xDFE3,0xDFDF,0xDFD3,
- 0xDFF1,0xDFE4,0xDFE0,0xDFD6, 0,0xDFE6,0xDFD8,0xDFDE,0xDFDB,0xDFDC,
- 0xDE1B,0xDE1F,0xDE1D,0xDE1C,0xDE1E,0xDE20,0xDE21, 0,0xDEB6,0xDEBC,
- 0xDEC6,0xDEC7,0xDEBA,0xDEBE,0xDEBD,0xDEB5,0xDEB4,0xDC0F,0xDC62,0xDCEB,
- 0xDCD9,0xDCE4,0xDCD7,0xDCD8,0xDCD6,0xDCCE,0xDCDD,0xDCE7,0xDCD2,0xDCC5,
- 0xDCC9,0xDCDB,0xDE92,0xDE8A,0xDE8B,0xDE89,0xDF08,0xDF03,0xDF06,0xDF05,
- 0xDEF5,0xDF0B,0xDEFB,0xDFFC,0xDC01,0xDC02,0xDFFA,0xDC08,0xDFF7,0xDC00,
- 0xDFFF,0xDC06,0xDFF6,0xDFFB,0xDC0A,0xDD25,0xDD43,0xDD44,0xDC64,0xDC62,
- 0xDC5E,0xDC5B,0xDCD6,0xDC72,0xDCC2,
- /* plane 6, row 38 */
- 1 | (94 << 8), /* first, last */
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD864,0xD864,0xD864,
- 0xD864,0xD865,0xD865,0xD840,0xD865,0xD865,0xD865,0xD865,0xD866,0xD848,
- 0xD87E,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0x3477,0xD840,0xD840,0xD840,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0x51F2,
- 0xD841,0xD87E,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD87E,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,
- 1, /* first low-surrogate */
- 0xDE77,0xDE82,0xDE7C,0xDE7D,0xDE86,0xDE81,0xDE84,0xDE76,0xDE83,
- 0xDE7F,0xDE7E,0xDF88,0xDF8D,0xDF8B,0xDF91,0xDF8F,0xDC7C,0xDC79,0xDC7A,
- 0xDDEA,0xDC4C,0xDD99,0xDED1,0xDE8B,0xDE8D,0xDE8A,0xDE8E,0xDC11,0xDE56,
- 0xDE15,0xDC74,0xDCC3,0xDCC4,0xDD1B,0xDD5F,0xDD6A,0xDD69,0xDD6B,0xDF0C,
- 0xDEF6,0xDEED,0xDF29,0xDEFE,0xDEF1,0xDF17,0xDEFF,0xDEEE,0xDEFD,0xDF1C,
- 0xDEFC,0xDF00,0xDF20, 0,0xDEF9,0xDF67,0xDF08,0xDC9E,0xDCF3,0xDD25,
- 0xDD27,0xDD1F,0xDD65,0xDD63,0xDD94,0xDD97,0xDDF1,0xDE5F,0xDE62, 0,
- 0xDE60,0xDC22,0xDF8C,0xDF82,0xDF90,0xDF8B,0xDF8D,0xDF81,0xDF9D,0xDC8E,
- 0xDC8F,0xDC92,0xDD23,0xDD52,0xDC2E,0xDE00,0xDE01,0xDE02,0xDE1F,0xDE8C,
- 0xDE89,0xDE8B,0xDE88,0xDE8D,0xDE8F,
- /* plane 6, row 39 */
- 1 | (94 << 8), /* first, last */
- 0xD858,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0x55B6,
- 0xD87E,0xD843,0xD87E,0xD840,0xD843,0xD843,0xD87E,0xD87E,0xD843,0xD87E,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0x35C4,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD844,0xD844,0xD844,0xD851,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0x3652,0xD844,0xD844,0xD844,
- 0xD845,0xD868,0xD845,0xD845,0xD87E,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD87E,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD847,0xD847,
- 0xD847,0xD87E,0xD847,0xD847,0xD847,
- 1, /* first low-surrogate */
- 0xDF85,0xDF00,0xDF05,0xDF01,0xDF68,0xDF6E,0xDF67,0xDF75, 0,
- 0xDC45,0xDDD7,0xDC46,0xDC48,0xDDD4,0xDDD8,0xDC47,0xDC48,0xDDBA,0xDC49,
- 0xDDDB,0xDDBF,0xDE35,0xDDBC,0xDDD9, 0,0xDDDD,0xDE00,0xDDD5,0xDE30,
- 0xDDBD,0xDDDC,0xDDFD,0xDDFE,0xDE07,0xDD17,0xDF6F,0xDF69,0xDF70,0xDF67,
- 0xDFA9,0xDF95,0xDF90,0xDF6C,0xDF97,0xDF71, 0,0xDF74,0xDF6D,0xDF8E,
- 0xDD2F,0xDF1B,0xDDA9,0xDE4E,0xDC5F,0xDE5A,0xDE48,0xDE55,0xDE4C,0xDE49,
- 0xDE4F,0xDE4A,0xDFD6,0xDFA0,0xDFA9,0xDC67,0xDF9D,0xDFD4,0xDFA4,0xDFA8,
- 0xDFA6,0xDFE6,0xDD7D,0xDD77,0xDD7A,0xDE41,0xDE49,0xDE59,0xDE45,0xDE48,
- 0xDE40,0xDF8E,0xDF95,0xDF90,0xDFF7,0xDFF8,0xDFF6,0xDFFB,0xDC9E,0xDC9D,
- 0xDC99,0xDC77,0xDCA3,0xDCA9,0xDC98,
- /* plane 6, row 40 */
- 1 | (94 << 8), /* first, last */
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD87E,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD87E,0xD848,0xD87E,0xD848,0xD848,0xD848,0xD848,0xD87E,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0x386B,0x5EC3,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD859,0xD849,0xD849,0xD849,0xD849,0x3941,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0x3950,0xD849,0xD849,0xD87E,0xD849,
- 0xD849,0xD849,0xD87E,0xD849,0xD849,
- 1, /* first low-surrogate */
- 0xDCA0,0xDC96,0xDC94,0xDC95,0xDC9F,0xDCA1,0xDD21,0xDD1D,0xDD1F,
- 0xDE6D,0xDC7C,0xDE9A,0xDE92,0xDE7A,0xDE7D,0xDEA1,0xDE9D,0xDE99,0xDE6B,
- 0xDE6E,0xDC7D,0xDC45,0xDC84,0xDCFB,0xDCEB,0xDCF2,0xDCF9,0xDC86,0xDCF8,
- 0xDCED,0xDD01,0xDCF7,0xDD06,0xDD9B,0xDDCA, 0, 0,0xDE6B,0xDE6C,
- 0xDE74,0xDE67,0xDE5B,0xDE60,0xDE76,0xDE63,0xDE61,0xDF28,0xDF5B,0xDF5E,
- 0xDF60,0xDF5D,0xDF5C,0xDFF4,0xDC00,0xDC08,0xDC07,0xDC01,0xDC05,0xDC64,
- 0xDC63,0xDC9E,0xDCA0,0xDCA1,0xDC9F,0xDD26,0xDD2D,0xDD28,0xDD1D,0xDEEC,
- 0xDEE3,0xDEEB,0xDF16,0xDEC8,0xDE1B,0xDEE9,0xDEE4,0xDF24,0xDED1, 0,
- 0xDEDD,0xDEC2,0xDECB,0xDEC7,0xDEE7, 0,0xDEEA,0xDF4B,0xDCA5,0xDF60,
- 0xDF7D,0xDF3E,0xDCA4,0xDF52,0xDF4E,
- /* plane 6, row 41 */
- 1 | (94 << 8), /* first, last */
- 0xD849,0xD849,0xD849,0xD849,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD87E,0xD84A,0xD84B,0xD84B,
- 0xD84A,0xD84B,0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84A,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84A,0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD87E,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD87E,0xD84B,0xD84B,0xD84B,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0x3AC0,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD84C,0x3AFC,0xD84C,0xD84C,0xD84C,0xD84C,0xD87E,0xD84C,
- 0xD84C,0x3479,0xD84C,0xD84C,0x440B,
- 1, /* first low-surrogate */
- 0xDF3C,0xDF32,0xDF30,0xDF23,0xDDCA,0xDDCB,0xDDC9,0xDDC8,0xDDCD,
- 0xDF98,0xDFA0,0xDF9F,0xDF9C,0xDFA3,0xDF97,0xDCBE,0xDFF1,0xDC09,0xDC03,
- 0xDFEA,0xDC45,0xDFED,0xDC05,0xDC1A,0xDC15,0xDC01,0xDFEC,0xDC0E,0xDC17,
- 0xDC42,0xDC12,0xDC10,0xDFEF,0xDFFF,0xDC00,0xDC0C,0xDC0F,0xDC04,0xDC08,
- 0xDC14,0xDC43,0xDCBD,0xDC1B,0xDC11,0xDC13,0xDECF,0xDECE,0xDF6F,0xDF6E,
- 0xDF7A,0xDF70,0xDF64,0xDF5E,0xDF6C,0xDCC9,0xDF5B,0xDF61,0xDF65,0xDC7F,
- 0xDC80,0xDC7C,0xDCA7,0xDCA6,0xDCA1, 0,0xDCA8,0xDCA3,0xDCA2,0xDCAD,
- 0xDCA5,0xDD01,0xDCFF,0xDCFC,0xDD00,0xDD35,0xDDEE,0xDDEF,0xDDF6,0xDDE8,
- 0xDDEA,0xDDE3,0xDE1F, 0,0xDDE4,0xDDFA,0xDDF1,0xDDFB,0xDCD4,0xDF3D,
- 0xDF3C, 0,0xDF78,0xDF77,
- /* plane 6, row 42 */
- 1 | (94 << 8), /* first, last */
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD87E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD861,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD87E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD87E,0xD84F,0xD87E,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0x3D1E,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,
- 1, /* first low-surrogate */
- 0xDCD1,0xDCC7,0xDCDF,0xDCD0,0xDCE0,0xDCD6,0xDCD8,0xDD16,0xDD0E,
- 0xDCD9,0xDD0F,0xDD11,0xDCCD,0xDC89,0xDCCE,0xDD14,0xDCDA,0xDD12,0xDCD3,
- 0xDCC2,0xDCE1,0xDCE9,0xDCEA,0xDCDE,0xDD15,0xDCD9,0xDCD6,0xDCCD,0xDCD0,
- 0xDCD3,0xDCF0,0xDD82,0xDD85,0xDD7F,0xDD7D,0xDD81,0xDD83,0xDD84,0xDCA0,
- 0xDE28,0xDE0F,0xDE17,0xDE1A,0xDE25,0xDCF7,0xDE9B,0xDE99,0xDF92,0xDF8C,
- 0xDF95,0xDF8D,0xDFA3,0xDF93,0xDF91,0xDDDB,0xDD99,0xDD9A,0xDE08,0xDE4C,
- 0xDE0D,0xDE01,0xDE4E,0xDE02,0xDE4D,0xDE21,0xDDFC,0xDD09,0xDD8A,0xDD08,
- 0xDD95,0xDE11,0xDE12,0xDE46,0xDE1C,0xDE49,0xDE0C, 0,0xDE13,0xDE16,
- 0xDDFD,0xDE0F,0xDE1F,0xDE30,0xDE6E,0xDE6B,0xDE9B,0xDE7B,0xDE63,0xDE97,
- 0xDE6D,0xDE9C,0xDE98,0xDE6F,0xDE67,
- /* plane 6, row 43 */
- 1 | (94 << 8), /* first, last */
- 0xD850,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD87E,0x3E85,0xD851,0xD851,0xD852,0xD87E,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD853,0xD87E,0xD853,0xD853,0xD853,0x3F97,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD87E,0xD854,0xD854,0xD854,0xD854,
- 1, /* first low-surrogate */
- 0xDE69,0xDD15,0xDD63,0xDD86,0xDD8A,0xDD87,0xDD88,0xDD85,0xDD89,
- 0xDDCA,0xDDC7,0xDDCB,0xDDCC,0xDDC9,0xDE0D,0xDE83,0xDE84,0xDE78,0xDE82,
- 0xDE73,0xDE79,0xDE8C,0xDFD0,0xDFCF,0xDFD2,0xDFD9,0xDFCC,0xDFEB,0xDFFD,
- 0xDFEC,0xDFE8,0xDFF8,0xDFFA,0xDD27, 0,0xDFE1,0xDFFB,0xDCE7,0xDD2E,
- 0xDDA5,0xDD91,0xDDA6,0xDD7C,0xDD92,0xDDA2,0xDDA0,0xDEFC,0xDEFE,0xDF57,
- 0xDF53,0xDF58,0xDFE7,0xDC8E,0xDD38,0xDC83,0xDC8B,0xDC84, 0,0xDDA2,
- 0xDDB7,0xDDA9,0xDDA5,0xDD9F,0xDDAA,0xDD97,0xDDA1,0xDD9E,0xDDAB,0xDD99,
- 0xDDA3,0xDF30,0xDF32,0xDF2F,0xDF70,0xDF6C,0xDF6F,0xDFE8,0xDFEE,0xDFEA,
- 0xDC6D,0xDC76,0xDC70,0xDC71,0xDC6C,0xDDEB,0xDDB5,0xDD96,0xDD90,0xDD8D,
- 0xDD49,0xDDA2,0xDDB0,0xDD92,0xDDA0,
- /* plane 6, row 44 */
- 1 | (94 << 8), /* first, last */
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0x4093,0xD854,0xD840,0xD855,0x7861,0xD855,0xD855,0xD855,0x40B2,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0xD84C,0xD855,0xD855,0xD855,0xD855,0x7A06,0xD855,0xD855,0xD841,0xD855,
- 0x7A01,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0x41A4,0xD856,0xD856,0x41F2,0xD856,0xD856,0xD856,0xD856,0x41F1,
- 0xD856,0xD856,0xD857,0xD857,0x4281,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD858,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0x42DC,0xD87E,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD85B,0xD858,0xD858,0xD858,
- 1, /* first low-surrogate */
- 0xDD93,0xDDC3,0xDD8E,0xDDB6,0xDD9D,0xDD95,0xDDB3,0xDDA4,0xDF70,
- 0xDFD4, 0,0xDFCF,0xDD70,0xDC94, 0,0xDCC0,0xDCB4,0xDCC1, 0,
- 0xDCBD,0xDCAF,0xDE77,0xDE78,0xDE6B,0xDE6D,0xDE6E,0xDE72,0xDE6F,0xDE71,
- 0xDCAB,0xDE8C,0xDF3F,0xDFB6,0xDFB7, 0,0xDFBB,0xDFB8,0xDF9C,0xDFB9,
- 0,0xDD8B,0xDD7A,0xDD84,0xDD88,0xDD91,0xDD79,0xDD8E,0xDD80,0xDD82,
- 0xDD7C, 0,0xDE84,0xDE7F, 0,0xDF3B,0xDF71,0xDF3D,0xDF30, 0,
- 0xDF3E,0xDF38,0xDE5E,0xDE64, 0,0xDE5D,0xDE6D,0xDE4F,0xDE62,0xDE5F,
- 0xDFEC,0xDFF2,0xDFF4,0xDFF7,0xDFF6,0xDC07,0xDFED,0xDFEA,0xDFF0,0xDFF8,
- 0xDFF3, 0,0xDD72,0xDE31,0xDE2F,0xDEB6,0xDEAE,0xDEAA,0xDEBF,0xDECC,
- 0xDEC7,0xDC83,0xDF80,0xDF7B,0xDF7F,
- /* plane 6, row 45 */
- 1 | (94 << 8), /* first, last */
- 0xD858,0xD858,0xD87E,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD87E,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0x440C,0xD859,0xD85A,0xD85A,0xD851,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD851,0xD87E,0xD85A,0xD85A,0xD85A,0xD842,0x446D,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85A,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 1, /* first low-surrogate */
- 0xDF7D,0xDF83,0xDD78,0xDC46,0xDC2D,0xDC25,0xDC26,0xDC2C,0xDC37,
- 0xDC31,0xDC33,0xDC32,0xDC27,0xDC2A,0xDC2E,0xDC2F,0xDCC0,0xDD71,0xDD61,
- 0xDD62,0xDD66,0xDE18,0xDEC5,0xDEC3,0xDEC4,0xDEC2,0xDEAE,0xDF10,0xDF08,
- 0xDF1F,0xDF3A,0xDF3B,0xDF36,0xDF0C,0xDF06,0xDF2A,0xDF57,0xDF50,0xDF20,
- 0xDD85,0xDF2C,0xDF21,0xDF0B,0xDF19,0xDF35,0xDF18,0xDF0F,0xDF13,0xDF55,
- 0xDF39,0xDF1A, 0,0xDF17,0xDCE4,0xDCE9,0xDD8B,0xDD10,0xDD12,0xDD3F,
- 0xDD6E,0xDD18,0xDD8C,0xDDD6,0xDDD5,0xDDD7,0xDF02, 0,0xDE31,0xDE30,
- 0xDE3A,0xDF85,0xDF6B,0xDC48,0xDC4B,0xDC37,0xDC7B,0xDC6C,0xDC85,0xDC65,
- 0xDC36,0xDC86,0xDC34,0xDC68,0xDC5A,0xDC58,0xDC72,0xDC6A,0xDFD3,0xDC3C,
- 0xDC33,0xDC3B,0xDC4D,0xDC4F,0xDC7C,
- /* plane 6, row 46 */
- 1 | (94 << 8), /* first, last */
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0x44E6,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85A,0xD85B,0xD85B,0xD85A,0xD87E,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD87E,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85D,0x8849,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85E,0xD85E,0xD85E,0x8999,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0x46D1,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0x472C,0xD85E,0xD85F,0xD85F,0xD85F,
- 1, /* first low-surrogate */
- 0xDCB0,0xDC5B,0xDC55,0xDC64,0xDC6B,0xDC53, 0,0xDC57,0xDC5E,
- 0xDC6D,0xDC35,0xDC69,0xDC59,0xDC66,0xDC50,0xDC51,0xDC5C,0xDD5D,0xDC87,
- 0xDC78,0xDC49,0xDC4E,0xDFF1,0xDC73,0xDC88,0xDFCF,0xDDA4,0xDDB1,0xDDB3,
- 0xDE9C,0xDEA4,0xDE90,0xDEB8,0xDEA0,0xDE9D,0xDEA8,0xDEA9,0xDDB9,0xDEB1,
- 0xDE93,0xDE9B,0xDEA2,0xDEA1,0xDEB0,0xDEA7,0xDDB3, 0,0xDDB4,0xDDF1,
- 0xDDED,0xDDEC,0xDE68,0xDE75,0xDE6A,0xDE62,0xDE67,0xDE60,0xDE77,0xDE5F,
- 0xDE79,0xDC23,0xDC21,0xDC1C, 0,0xDC1F,0xDC1E,0xDCD6,0xDCD3,0xDCD9,
- 0xDCD7,0xDCD4,0xDCDC,0xDCD8,0xDDA3, 0,0xDDBE,0xDDA9,0xDDA1,0xDDA0,
- 0xDDAB,0xDDA2,0xDDBA,0xDDC2,0xDD9C,0xDDBB,0xDDAA,0xDDAC,0xDDA5,0xDDC1,
- 0,0xDFE2,0xDC36,0xDC3D,0xDC3A,
- /* plane 6, row 47 */
- 1 | (94 << 8), /* first, last */
- 0xD849,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0x476E,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0x47E5,0xD860,0xD85F,0xD85F,0xD860,0xD85F,0x47E6,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0x489F,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD844,0xD862,0x921F,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD863,0xD863,0xD863,0xD863,0xD863,
- 1, /* first low-surrogate */
- 0xDC61,0xDC48,0xDC3C,0xDCB7,0xDCAC,0xDCB3,0xDCB6,0xDCB2, 0,
- 0xDD5D,0xDD49,0xDD4E,0xDD4F,0xDD4D,0xDD5C,0xDE5D,0xDEBB,0xDECE,0xDEBF,
- 0xDEBA,0xDEC3, 0,0xDC06,0xDFF8,0xDFFE,0xDC13,0xDFF6, 0,0xDE34,
- 0xDE2D,0xDE2A,0xDE35,0xDE2C,0xDED4,0xDEDA,0xDED3,0xDED2,0xDECE,0xDECF,
- 0,0xDCFD,0xDD0B,0xDCFE,0xDCF8,0xDCF7,0xDD17,0xDCFA,0xDCF9,0xDD00,
- 0xDCF5,0xDCF1,0xDD03,0xDD05,0xDD1C,0xDEAC,0xDE9A,0xDEAD,0xDEA0,0xDF1B,
- 0xDF25,0xDF24,0xDF26,0xDF27,0xDF28,0xDF2A,0xDF1A,0xDF2E,0xDF15,0xDC15,
- 0xDC14,0xDC17,0xDC18,0xDC0F,0xDC13,0xDC0B,0xDC22,0xDF7A,0xDD26, 0,
- 0xDD51,0xDD4D,0xDD4E,0xDD4A,0xDD4B,0xDD4C,0xDD50,0xDD62,0xDD4F,0xDD52,
- 0xDC68,0xDC69,0xDCE5,0xDCF0,0xDCE1,
- /* plane 6, row 48 */
- 1 | (94 << 8), /* first, last */
- 0xD863,0xD87E,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0x4A0D,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD866,
- 0xD866,0xD866,0xD866,0xD867,0xD867,0xD867,0xD868,0xD869,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD87E,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0x34F8,0xD841,0xD841,0xD841,
- 0xD841,0xD842,0xD842,0xD842,0x5313,0xD842,0x3533,0xD842,0xD842,0xD842,
- 0x353C,0xD842,0xD842,0xD842,0xD842,
- 1, /* first low-surrogate */
- 0xDCE2,0xDDF2,0xDEA5,0xDEA9,0xDEA4,0xDEAF,0xDEAC,0xDEAE,0xDEAA,
- 0xDF95,0xDF99,0xDF93,0xDF9D,0xDF98,0xDF9C,0xDF97, 0,0xDC89,0xDC87,
- 0xDDD7,0xDDED,0xDDF1,0xDDF0,0xDE05,0xDE03,0xDE04,0xDE5F,0xDC57,0xDD9C,
- 0xDDA1,0xDD9A,0xDE8F,0xDE93,0xDE9E,0xDEA3,0xDE98,0xDE99,0xDE95,0xDC6E,
- 0xDC6A,0xDEF4,0xDEF7,0xDC79,0xDF8F,0xDF91,0xDC0B,0xDD02,0xDC84,0xDD04,
- 0xDD80,0xDF2F,0xDF3F,0xDF3B,0xDF62,0xDF44,0xDF33,0xDF5F,0xDF2B,0xDC09,
- 0xDF39,0xDF36,0xDF48,0xDF35,0xDF6C,0xDF58,0xDF3A,0xDCA8,0xDCF4,0xDD29,
- 0xDD9A,0xDE00,0xDFBB,0xDFBD,0xDFB7,0xDFB2, 0,0xDFA8,0xDFAB,0xDFA6,
- 0xDFBC,0xDC97,0xDC96,0xDCF8, 0,0xDD51, 0,0xDDB5,0xDDB4,0xDDB6,
- 0,0xDDB7,0xDE05,0xDE23,0xDE95,
- /* plane 6, row 49 */
- 1 | (94 << 8), /* first, last */
- 0xD842,0x354F,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0x35DC,0xD843,
- 0xD843,0xD843,0xD87E,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0x55E0,0xD843,0xD844,0xD844,0xD844,
- 0xD844,0xD844,0xD87E,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0xD844,0xD844,0xD844,0xD844,0xD87E,0xD845,0xD845,0xD845,0xD842,
- 0xD845,0xD845,0xD87E,0xD845,0xD845,0xD845,0xD846,0xD845,0xD846,0xD845,
- 0xD845,0xD845,0xD846,0xD87E,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD847,0xD847,0xD847,0xD847,
- 1, /* first low-surrogate */
- 0xDE98, 0,0xDE94,0xDE93,0xDF07,0xDF73,0xDF71,0xDF72,0xDF78,
- 0xDE5F,0xDE6A,0xDE67,0xDE6B,0xDE69,0xDE8E,0xDE49,0xDE80, 0,0xDE44,
- 0xDE8F,0xDE45,0xDC4C,0xDE4F,0xDE63,0xDE36,0xDE48,0xDE5C,0xDE93,0xDE61,
- 0xDE60,0xDE4E,0xDE5E,0xDE3F,0xDEA4, 0,0xDE68,0xDE0B,0xDE11,0xDE0D,
- 0xDE0E,0xDFC2,0xDC57,0xDFB0,0xDFC3,0xDFC8,0xDF65,0xDFD7,0xDFBD,0xDFB8,
- 0xDFB6,0xDFC7,0xDFBC,0xDFB1,0xDFAF,0xDC5B,0xDD35,0xDD30,0xDD5D,0xDF76,
- 0xDD6F,0xDDB0,0xDC5E,0xDDB4,0xDE5C,0xDE5D,0xDC08,0xDFEE,0xDC0B,0xDFF2,
- 0xDFFD,0xDFF1,0xDC10,0xDC68,0xDC14,0xDD8B,0xDD8C,0xDD85,0xDE7A,0xDE6C,
- 0xDE60,0xDE67,0xDE66,0xDE6A,0xDE5F,0xDE6D,0xDE68,0xDE64,0xDF3A,0xDF3B,
- 0xDF39,0xDC02,0xDC04,0xDC03,0xDCB4,
- /* plane 6, row 50 */
- 1 | (94 << 8), /* first, last */
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD87E,
- 0x37F5,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD87E,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD849,0xD849,0x38C3,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0x6139,0xD849,
- 0xD87E,0xD849,0xD849,0x3971,0xD849,0xD849,0xD87E,0xD849,0xD849,0xD849,
- 0xD84A,0xD84A,0xD851,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 1, /* first low-surrogate */
- 0xDCB3,0xDCBB,0xDCAC,0xDCB6,0xDCB1,0xDCAF,0xDCB5,0xDCBE,0xDCB2,
- 0xDD24,0xDEB6,0xDEB9,0xDEAC,0xDEB0,0xDED7,0xDEBB,0xDEFE,0xDECB,0xDC7F,
- 0,0xDEB3,0xDEBE,0xDECD,0xDEBC,0xDEBA,0xDEC7,0xDD16,0xDD1B,0xDD17,
- 0xDD15,0xDD9F,0xDC8E,0xDE82,0xDE83,0xDE8E,0xDE6A,0xDE89,0xDE94,0xDE86,
- 0xDE90,0xDF62,0xDF90,0xDC0C,0xDC0F, 0,0xDCA5,0xDCA7,0xDCA6,0xDCA4,
- 0xDD35,0xDD38,0xDD36,0xDD43,0xDD47,0xDD37,0xDF43,0xDFA2,0xDF51,0xDF72,
- 0xDF6D,0xDF2F,0xDF54,0xDF6E,0xDF55,0xDF37,0xDF4F,0xDF50, 0,0xDF9E,
- 0xDCA8,0xDFB3,0xDFA7, 0,0xDFF9,0xDF91,0xDCA7,0xDFB6,0xDFDD,0xDF99,
- 0xDDDF,0xDDD5,0xDFF5,0xDC28,0xDC40,0xDC71,0xDC98,0xDC95,0xDC65,0xDC78,
- 0xDC7F,0xDC60,0xDC7C,0xDC96,0xDC6A,
- /* plane 6, row 51 */
- 1 | (94 << 8), /* first, last */
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84C,0xD865,
- 0xD84C,0xD854,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD87E,0x3B01,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD87E,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD87E,0xD84E,0xD84E,
- 0xD84E,0xD842,0xD84E,0xD84E,0xD84E,
- 1, /* first low-surrogate */
- 0xDC79,0xDC73,0xDC72,0xDC7B,0xDC70,0xDED5,0xDED7,0xDF8F,0xDF89,
- 0xDF9E,0xDF87,0xDFA0,0xDF8D,0xDF88,0xDF7F,0xDF8C,0xDF93,0xDC59,0xDDB0,
- 0xDCB1,0xDDF4,0xDCAF,0xDCB2,0xDD08,0xDD0A,0xDD36,0xDD37,0xDCCF, 0,
- 0xDE36,0xDE29,0xDE4A,0xDE26,0xDE28,0xDE24,0xDE2A,0xDE48,0xDF44,0xDF84,
- 0xDF8C,0xDCC4,0xDCDC,0xDD87,0xDD53,0xDD7F,0xDD31,0xDD51,0xDD4B,0xDD52,
- 0xDD80,0xDDA5,0xDD81,0xDD43,0xDD34,0xDD36,0xDD32,0xDD48,0xDD49,0xDD3C,
- 0xDD4D,0xDD4A,0xDCE6,0xDD8A,0xDD46,0xDD3E,0xDD83,0xDD50,0xDDB4,0xDCF0,
- 0xDCE4,0xDCE3,0xDCE5,0xDCE6,0xDCE7,0xDCE1,0xDCEF,0xDCE8,0xDCDD,0xDD03,
- 0xDD88,0xDE26,0xDE16,0xDE3B,0xDE2F,0xDE39,0xDE34,0xDCF4,0xDE35,0xDE31,
- 0xDE38,0xDF81,0xDEAA,0xDEA3,0xDEA4,
- /* plane 6, row 52 */
- 1 | (94 << 8), /* first, last */
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD87E,0xD84F,0xD84F,0xD84F,0xD84F,0x6ED7,0xD87E,0x3D41,0xD850,
- 0xD850,0xD850,0x3DD7,0xD850,0xD850,0xD850,0xD850,0xD87E,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0x3DE2,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0x3E45,0xD851,
- 0xD851,0xD851,0x733D,0xD852,0xD852,
- 1, /* first low-surrogate */
- 0xDEA0,0xDEA1,0xDEA9,0xDEA5,0xDFAF,0xDFB1,0xDFAB,0xDFAE,0xDFB0,
- 0xDFB3,0xDFAC,0xDFA9,0xDFB2,0xDFA8,0xDFB4,0xDFC2,0xDC4F,0xDC66,0xDE1E,
- 0xDE15,0xDE10,0xDE7F,0xDE7E,0xDE60,0xDECC,0xDEB2,0xDE62,0xDE8D,0xDE8E,
- 0xDE77,0xDE7C,0xDE8F,0xDE5D,0xDE6D,0xDE63,0xDEAF,0xDE90,0xDE7D,0xDE7A,
- 0xDE06,0xDD0B,0xDE68,0xDEB4,0xDE78,0xDEB1, 0,0xDD0C, 0,0xDEE8,
- 0xDEE9,0xDEC0, 0,0xDEEA,0xDEB7,0xDEBA,0xDEB5,0xDD1D,0xDEB4,0xDEBC,
- 0xDEC6,0xDEB8,0xDEBD,0xDEC2,0xDF4D,0xDEF0,0xDEC7,0xDEC1,0xDEC3,0xDEF1,
- 0xDEEC, 0,0xDD1C,0xDD20,0xDD58,0xDD65,0xDD64,0xDD8C,0xDD8D,0xDDD9,
- 0xDDE0,0xDE10,0xDE94,0xDE92,0xDE96,0xDE95,0xDEBF,0xDEA0, 0,0xDFF4,
- 0xDFF6,0xDFDC, 0,0xDC16,0xDC15,
- /* plane 6, row 53 */
- 1 | (94 << 8), /* first, last */
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0x3FF2,0xD853,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD84B,0x4049,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD855,0xD87E,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,
- 1, /* first low-surrogate */
- 0xDC1C,0xDC0F,0xDC2C,0xDC14,0xDC25,0xDC17,0xDC12,0xDC1E,0xDD80,
- 0xDDA8,0xDDAF,0xDDD6,0xDDE2,0xDDB4,0xDDB3,0xDDB0,0xDDB2,0xDDA1,0xDF60,
- 0xDF66,0xDF61,0xDF4E,0xDF5D,0xDF63,0xDFE6,0xDFEF,0xDFEC,0xDC98,0xDCA7,
- 0xDC94,0xDC95,0xDC91,0xDC9D,0xDC99,0xDC9B,0xDC9C,0xDD1D,0xDD1C,0xDDD0,
- 0xDDE0,0xDDCB,0xDDDB,0xDDDA,0xDDC2,0xDDD3,0xDDE5,0xDF7D,0xDF7B,0xDFFF,
- 0,0xDFF9,0xDC77,0xDC7C,0xDC78,0xDC7B,0xDC7A,0xDDD2,0xDDCB,0xDDC9,
- 0xDDCE,0xDDE4,0xDDCA,0xDDD0,0xDFA5, 0,0xDDD9,0xDDEE,0xDDDD,0xDE00,
- 0xDDE1,0xDFDE,0xDFE2,0xDFDA,0xDCCE,0xDD4F,0xDCCF,0xDCDA,0xDCD1,0xDCD4,
- 0xDCED,0xDCCB,0xDCD5,0xDCF1,0xDE9C,0xDE88,0xDF41,0xDFD0,0xDFF7,0xDFCF,
- 0xDFD1,0xDFDB,0xDFDE,0xDFF8,0xDFDC,
- /* plane 6, row 54 */
- 1 | (94 << 8), /* first, last */
- 0xD855,0xD856,0xD856,0xD856,0xD856,0xD856,0x41A9,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD840,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD849,0x43CB,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0x440D,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,
- 1, /* first low-surrogate */
- 0xDFD9,0xDDA0,0xDDB2,0xDDA1,0xDDAA,0xDDA9, 0,0xDDA6,0xDD9C,
- 0xDDB5,0xDDA7,0xDE8E,0xDE90,0xDE91,0xDF85,0xDF5B,0xDF70,0xDF64,0xDF67,
- 0xDF63,0xDF77,0xDF68,0xDF65,0xDF6A,0xDF78,0xDF66,0xDE88,0xDE9E,0xDE74,
- 0xDE7A,0xDE79,0xDE8B,0xDE7F,0xDC13,0xDC1E,0xDC17,0xDC1A,0xDC22,0xDC43,
- 0xDC19,0xDC1F,0xDC27,0xDC12,0xDC24,0xDC25,0xDF5E,0xDE35,0xDE34,0xDED1,
- 0xDEC4,0xDECA,0xDEC6,0xDECB,0xDECD,0xDEE2,0xDF89,0xDF8B,0xDF86,0xDF88,
- 0xDF8D,0xDC3B,0xDC3C,0xDC3D,0xDCF5,0xDD79,0xDD75,0xDD82,0xDD7F,0xDD85,
- 0xDD76,0xDD7C,0xDD7E,0xDD7B,0xDD80,0xDD7A,0xDD48, 0,0xDE1D,0xDEF6,
- 0xDEF7,0xDEF9,0xDF63,0xDF6C,0xDF6E,0xDF14, 0,0xDF67,0xDF6F,0xDF69,
- 0xDF76,0xDF95,0xDF71,0xDF61,0xDF78,
- /* plane 6, row 55 */
- 1 | (94 << 8), /* first, last */
- 0xD859,0xD859,0xD859,0xD85A,0xD85A,0xD856,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 1, /* first low-surrogate */
- 0xDF6B,0xDF85,0xDF84,0xDD14,0xDD76,0xDDB6,0xDD75,0xDD74,0xDDE2,
- 0xDE3F,0xDE44,0xDE3D,0xDE47,0xDE48,0xDEDB,0xDEDC,0xDEDD,0xDFE5,0xDFE6,
- 0xDCC2,0xDD2E,0xDD1D,0xDCF8,0xDCF0,0xDCF6,0xDCC5,0xDCC6,0xDCFC,0xDD52,
- 0xDD2F,0xDD10,0xDCF3,0xDCD2,0xDCEA,0xDCDC,0xDD1B,0xDCFB,0xDCC3,0xDD16,
- 0xDD07,0xDCC9,0xDCD8,0xDD30,0xDD13,0xDD31,0xDCFA,0xDCF2,0xDDE3,0xDCD5,
- 0xDD01,0xDCF1,0xDD1C,0xDCD6,0xDD08,0xDD0B,0xDD17,0xDD20,0xDCCA,0xDD32,
- 0xDD05,0xDCE4,0xDCCE,0xDD33,0xDD02,0xDD19,0xDD1E,0xDCD3,0xDCF7,0xDCE8,
- 0xDD1F,0xDCF4,0xDDD8,0xDDBF,0xDDBE,0xDDBD,0xDEDC,0xDEDD,0xDEAB,0xDEC9,
- 0xDEC8,0xDEDF,0xDED9,0xDEDB,0xDECC,0xDEE0,0xDEEF,0xDEF3,0xDEAE,0xDF01,
- 0xDDB7,0xDDB9,0xDDB6,0xDDB8,0xDDF6,
- /* plane 6, row 56 */
- 1 | (94 << 8), /* first, last */
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0x4631,0xD87E,0xD85D,0xD87E,0xD85D,0xD85D,0xD85D,0xD85D,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0x46D5,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,0xD87E,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD84E,0xD85F,
- 0xD87E,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD85F,
- 0xD860,0xD860,0xD860,0xD860,0xD860,
- 1, /* first low-surrogate */
- 0xDDF3,0xDDF5,0xDDF2,0xDE91,0xDE9D,0xDE9B,0xDE92,0xDE8D,0xDE9E,
- 0xDE8C, 0,0xDDC7,0xDE95,0xDDC6,0xDE8A,0xDE8E,0xDE9C,0xDFEF,0xDC2D,
- 0xDC52,0xDC35,0xDC28,0xDC2E,0xDCE5,0xDDEA,0xDDF1,0xDDEB,0xDDD8,0xDDD0,
- 0xDDF3,0xDDDB,0xDDCE, 0,0xDDDA,0xDDD7,0xDDE1,0xDDF2,0xDDC8,0xDDD9,
- 0xDDDE,0xDDD1,0xDDE7,0xDDCF,0xDFB7,0xDC47,0xDC42,0xDC43,0xDDD3,0xDCC3,
- 0xDCC1,0xDCC7,0xDD64,0xDD6A,0xDD66,0xDD50,0xDD6E,0xDD65,0xDCEC,0xDD7F,
- 0xDDD5,0xDD9A,0xDD69,0xDD72,0xDD6F,0xDD7D,0xDD70,0xDE60,0xDEC2,0xDEE7,
- 0xDED1,0xDEEB,0xDED4,0xDEDC,0xDEDB,0xDC37,0xDC25,0xDC1F,0xDC1E,0xDC21,
- 0xDC1B,0xDC17,0xDC22,0xDC2A,0xDC1A,0xDC2D,0xDC23,0xDC26,0xDC36,0xDFFF,
- 0xDE3A,0xDE40,0xDE42,0xDE38,0xDE3B,
- /* plane 6, row 57 */
- 1 | (94 << 8), /* first, last */
- 0xD860,0xD860,0xD860,0x4856,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD87E,
- 0xD861,0xD861,0xD87E,0xD861,0x48F4,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD864,0xD864,0xD864,
- 1, /* first low-surrogate */
- 0xDE3C,0xDE43,0xDEE8, 0,0xDEF9,0xDEEB,0xDEF1,0xDEE9,0xDEEC,
- 0xDC15,0xDC47,0xDC46,0xDC45,0xDD24,0xDD56,0xDD21,0xDD27,0xDD4D,0xDD31,
- 0xDD1E,0xDD2C,0xDD4F,0xDD2B,0xDD53,0xDD51,0xDD54,0xDD29,0xDD50,0xDD1F,
- 0xDD32,0xDD2A,0xDD1D,0xDD28,0xDD2E,0xDD2D,0xDEBC,0xDEBB,0xDEBD,0xDDE4,
- 0xDF47,0xDF41,0xDDE5,0xDF49, 0,0xDC2E,0xDC27,0xDD6A,0xDD7B,0xDD73,
- 0xDD75,0xDD69,0xDD79,0xDD72,0xDC76,0xDC77,0xDC74,0xDC73,0xDD02,0xDCFE,
- 0xDD01,0xDCF9,0xDCF4,0xDED3,0xDED5,0xDED8,0xDEC3,0xDECA,0xDED0,0xDECB,
- 0xDECE,0xDEC5,0xDEE6,0xDEC4,0xDEC0,0xDED4,0xDEE8,0xDF76,0xDFA2,0xDFAE,
- 0xDFA8,0xDFA3,0xDFA7,0xDF96,0xDFA9,0xDFA5,0xDFAF,0xDFA4,0xDFAB,0xDFAA,
- 0xDFA6,0xDFA0,0xDC98,0xDDDB,0xDDF6,
- /* plane 6, row 58 */
- 1 | (94 << 8), /* first, last */
- 0xD864,0xD864,0xD864,0x9775,0xD864,0xD864,0xD864,0x4A58,0xD864,
- 0xD864,0xD864,0xD864,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD87E,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD87E,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD850,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD868,0xD868,0xD868,0xD87E,0xD84E,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD87E,0x3487,0xD840,0xD840,0xD840,0xD840,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,
- 1, /* first low-surrogate */
- 0xDDF5,0xDE0C,0xDE0A, 0,0xDE68,0xDE63,0xDE66, 0,0xDE64,
- 0xDE6A,0xDE69,0xDF95,0xDC02,0xDC6A,0xDC5E,0xDC68,0xDC69,0xDC65,0xDDFE,
- 0xDDA7,0xDDAE,0xDDA8,0xDDB3,0xDE9C,0xDEA9,0xDEB6,0xDEB3,0xDEB2,0xDE03,
- 0xDEB8,0xDEC0,0xDEBF,0xDEBA,0xDEA8,0xDC3C,0xDC72,0xDC71,0xDC75,0xDC73,
- 0xDE17,0xDE15,0xDE16,0xDE1B,0xDEFA,0xDEF9,0xDC2C,0xDC85,0xDC82,0xDC7F,
- 0xDC7D,0xDC88,0xDEF3,0xDD4E,0xDD50,0xDF93,0xDF97,0xDF98,0xDF9B,0xDF9C,
- 0xDF96,0xDE8B,0xDEFD,0xDEFC,0xDE17,0xDD8B,0xDD08,0xDD07,0xDF73,0xDFA2,
- 0xDFAF,0xDF82,0xDF7B,0xDF74,0xDFB0,0xDF76,0xDFB9,0xDF9E,0xDFB1,0xDFA1,
- 0xDFB2,0xDF6E,0xDC0B, 0,0xDF78,0xDF7A,0xDF83,0xDF9A,0xDCF8,0xDD31,
- 0xDD69,0xDD68,0xDD9C,0xDE04,0xDE99,
- /* plane 6, row 59 */
- 1 | (94 << 8), /* first, last */
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD845,0xD844,0xD844,0xD844,0xD844,0xD844,0xD87E,0xD844,0xD87E,
- 0xD844,0xD845,0xD845,0xD85E,0xD844,0xD844,0xD844,0xD845,0xD844,0xD845,
- 0xD844,0xD844,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD846,0xD845,0xD846,0xD846,
- 1, /* first low-surrogate */
- 0xDFC7,0xDFC6,0xDFDC,0xDFC4,0xDFD8,0xDFD4,0xDFDF,0xDFD1,0xDFD0,
- 0xDFD6,0xDFCF,0xDCAD,0xDCAF,0xDCA7,0xDCFD,0xDD5B,0xDD5A,0xDE07,0xDE9D,
- 0xDE9B,0xDEAB,0xDEA4,0xDE9C,0xDE9E,0xDEA5,0xDEAA,0xDEA6,0xDF0E,0xDF7E,
- 0xDF7C,0xDEEE,0xDED5,0xDEE9,0xDE42,0xDEE2,0xDF23,0xDED9,0xDED4,0xDEE3,
- 0xDF15,0xDEEF,0xDEF0,0xDED6,0xDEDD,0xDEF6,0xDF1C,0xDED8,0xDEDB,0xDEDA,
- 0xDEED,0xDC11,0xDE15,0xDE18,0xDE1A,0xDE1F,0xDE16,0xDC4D,0xDE19,0xDC4B,
- 0xDFF0,0xDC09,0xDC1B,0xDFE7,0xDFF6,0xDFF4,0xDFB5,0xDC10,0xDFF2,0xDC15,
- 0xDFF3,0xDFF8,0xDD39,0xDD3B,0xDD36,0xDC0E,0xDD72,0xDD74,0xDDB9,0xDDB7,
- 0xDDB8,0xDE72,0xDE6B,0xDC1D,0xDC37,0xDC22,0xDC43,0xDC4D,0xDC38,0xDC5B,
- 0xDC79,0xDC1B,0xDFF3,0xDD91,0xDE7B,
- /* plane 6, row 60 */
- 1 | (94 << 8), /* first, last */
- 0xD846,0xD87E,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xffff,0xD846,0xD846,0xD846,0xD846,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD87E,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0x37FA,0xD847,0xD847,0xD847,
- 0xD848,0xD87E,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0x38F2,0xD849,0xD849,0xD849,0xD84A,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD84A,0xD849,0xD849,0xD849,0xD849,
- 1, /* first low-surrogate */
- 0xDE94,0xDC6F,0xDE96,0xDE7F,0xDE8F,0xDE84,0xDE7C,0xDE8E,0xDE90,
- 0xDE98,0xDE83,0xDE80,0xDE93,0xDE82, 0,0xDF3D,0xDF41,0xDFA1,0xDF9F,
- 0xDC0A,0xDC0D,0xDCC8,0xDCC9,0xDCC7,0xDCCD,0xDD25,0xDEB1,0xDEDC,0xDC80,
- 0xDEE5,0xDEF4,0xDEBF,0xDEDB,0xDEEA,0xDEF2, 0,0xDEF1,0xDEED,0xDEE6,
- 0xDC02,0xDC82,0xDD25,0xDD18,0xDD1F,0xDD20,0xDDCF,0xDE9D,0xDE99,0xDEA8,
- 0xDF68,0xDF66,0xDF67,0xDF91,0xDC13,0xDC15,0xDC1D,0xDC16,0xDC19,0xDC6B,
- 0xDC68,0xDC6A,0xDC6D,0xDC69,0xDCAA,0xDD57,0xDD52,0xDD50,0xDD5F,0xDD67,
- 0xDD4F, 0,0xDD5B,0xDD5C,0xDD5D,0xDC1F,0xDF9D,0xDFB1,0xDFB0,0xDF94,
- 0xDFC3,0xDFAF,0xDFA8,0xDFDC,0xDF98,0xDFC4,0xDFA4,0xDFAB,0xDFAA,0xDFA5,
- 0xDC21,0xDFEB,0xDFE6,0xDFF7,0xDFF8,
- /* plane 6, row 61 */
- 1 | (94 << 8), /* first, last */
- 0xD849,0xD849,0xD849,0xD87E,0xD849,0xD87E,0xD849,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84B,0xD84E,0xD84B,0xD84B,0xD84B,0xD84B,0x3A2F,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD87E,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0x3AC1,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD87E,
- 0xD859,0xD84C,0xD84C,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD87E,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0x3C40,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 1, /* first low-surrogate */
- 0xDFFC,0xDFFA,0xDFE0,0xDCAA,0xDFF6,0xDCA9,0xDFE1,0xDDEC,0xDDE2,
- 0xDDE4,0xDDF9,0xDC6F,0xDE4C,0xDCBB,0xDCE1,0xDD00,0xDCD8, 0,0xDCD6,
- 0xDCE2,0xDCC3,0xDCB3,0xDCD2,0xDCC1,0xDCCE,0xDCD0,0xDCD5,0xDCB9,0xDCBA,
- 0xDCCF,0xDCBD,0xDEDB,0xDFAA,0xDFAD,0xDFB8,0xDFB6,0xDFB5,0xDFAF,0xDFB4,
- 0xDFB7,0xDFA8,0xDFB9,0xDFBE,0xDC82,0xDCBC,0xDCB8,0xDCB6,0xDCB9, 0,
- 0xDD10,0xDE27,0xDE69,0xDE70,0xDE56,0xDE6B,0xDE7A,0xDE6C,0xDE6D,0xDCD5,
- 0xDFC1,0xDF8D,0xDF90,0xDDB6,0xDE10,0xDE12,0xDDBA,0xDDBD,0xDE05,0xDDC2,
- 0xDE07,0xDDF5,0xDCE9,0xDDAF,0xDDF4,0xDDF7,0xDDF8,0xDE11,0xDCF6,0xDCF5,
- 0xDCFB,0xDD01,0xDD00,0xDD02,0xDCFE,0xDCFA,0xDCFD, 0,0xDE37,0xDE49,
- 0xDE4B,0xDE46,0xDE47,0xDEB3,0xDEB2,
- /* plane 6, row 62 */
- 1 | (94 << 8), /* first, last */
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0x3D3F,0xD84F,0xD84F,
- 0xD87E,0xD84F,0x3D46,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD851,0xD851,0xD851,0xD851,0xD840,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD87E,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0x3E8F,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,
- 1, /* first low-surrogate */
- 0xDEB0,0xDEB7,0xDF11,0xDFCC,0xDFDF,0xDFD3,0xDFD5,0xDFDB,0xDFC5,
- 0xDFC8,0xDFC9,0xDFE2,0xDFCA,0xDFD1,0xDFD2,0xDFDD,0xDE6C,0xDE73,0xDF21,
- 0xDEF0,0xDF1F,0xDF3B,0xDF22,0xDF23,0xDEE8,0xDEDD, 0,0xDF1B,0xDEED,
- 0xDD0E,0xDEF2, 0,0xDEDC,0xDEE9,0xDF1D,0xDEDA,0xDEE6,0xDF13,0xDF15,
- 0xDF16,0xDF3C,0xDF0B,0xDF1C,0xDF3A,0xDF3D,0xDF9A,0xDF1D,0xDF09,0xDF08,
- 0xDF3B,0xDD22,0xDD26,0xDD25,0xDD24,0xDF9B,0xDD8F,0xDD90,0xDDE6,0xDDE3,
- 0xDDE5,0xDE11,0xDD25,0xDEAE,0xDEBE,0xDEB4,0xDEB3,0xDEAF,0xDE91,0xDEC2,
- 0xDEB6,0xDEB2,0xDC57,0xDC3B,0xDC58,0xDC51,0xDC41,0xDC39, 0,0xDC59,
- 0xDC45,0xDC61,0xDCE8,0xDDFA,0xDDEA,0xDDEF,0xDDF2,0xDDF0,0xDF08,0xDF70,
- 0xDF6A,0xDF73,0xDF68,0xDFC8,0xDFF2,
- /* plane 6, row 63 */
- 1 | (94 << 8), /* first, last */
- 0xD842,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0x3FAC,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0xD856,0xD856,0xD856,0xD855,0xD856,0x4168,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD87E,0xD856,0xD856,0x41AB,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,
- 1, /* first low-surrogate */
- 0xDF7B,0xDCAE,0xDCAB,0xDCB5,0xDCAF,0xDCB2,0xDCB6,0xDCB0,0xDD1E,
- 0xDE03,0xDE06,0xDE1F, 0,0xDE0F,0xDE02,0xDE19,0xDE18,0xDE22,0xDE15,
- 0xDE07,0xDE0D,0xDE24,0xDE0C,0xDE1E,0xDF89,0xDF8A,0xDC0A,0xDC0B,0xDC07,
- 0xDC04,0xDC09,0xDC84,0xDC83,0xDE18,0xDE14,0xDE05,0xDE16,0xDE0E,0xDE11,
- 0xDE08,0xDE0B,0xDE15,0xDC85,0xDE37,0xDE2A,0xDE0D,0xDE0F,0xDF7E,0xDF76,
- 0xDF77,0xDFEC,0xDCFC,0xDD08,0xDCFF,0xDD03,0xDD10,0xDD05,0xDD06,0xDCFA,
- 0xDEC7,0xDEC0,0xDEC3,0xDEA7,0xDEA8,0xDEAB,0xDEC1,0xDEAA,0xDEC8,0xDF43,
- 0xDC02,0xDC0E,0xDC01,0xDFFE,0xDC03, 0,0xDC22,0xDC21,0xDC07,0xDC08,
- 0xDC0C,0xDDCA,0xDDBC,0xDDBE,0xDDBD,0xDD5C,0xDDBB,0xDDB9, 0,0xDDC5,
- 0xDE99,0xDF6B,0xDF93,0xDF94,0xDFA9,
- /* plane 6, row 64 */
- 1 | (94 << 8), /* first, last */
- 0xD856,0xD856,0xD87E,0xD856,0xD856,0xD856,0xD856,0xD856,0xD857,
- 0xD857,0xD857,0x4291,0xD857,0xD857,0xD857,0xD857,0xD848,0xD857,0xD857,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD859,0xD859,0x7FE4,0xD859,0xD859,0xD859,
- 0xD859,0xD87E,0xD859,0xD859,0x8088,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD85A,0xD859,0xD859,0xD859,0xD859,0xD859,0x4430,
- 0xD859,0xD859,0xD842,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 1, /* first low-surrogate */
- 0xDFA0,0xDFA6,0xDD61,0xDFAB,0xDF9E,0xDF9B,0xDF91,0xDF99,0xDEB6,
- 0xDEB8,0xDE9A, 0,0xDE98,0xDE9B,0xDEB3,0xDEA2,0xDEAA,0xDEA0,0xDE9F,
- 0xDC5B,0xDC70,0xDC54,0xDC71,0xDC65,0xDC51,0xDC9D,0xDC61,0xDC5A,0xDC74,
- 0xDC4C,0xDC4B,0xDC5E,0xDC58,0xDC53,0xDC52,0xDE3B,0xDE39,0xDED6,0xDEE7,
- 0xDED7,0xDED8,0xDED9,0xDEDA,0xDEDB,0xDEDC,0xDEE0,0xDEE4,0xDEDD,0xDEF5,
- 0xDEF1,0xDF98,0xDF9D,0xDF99,0xDC50,0xDC49, 0,0xDC62,0xDCD7,0xDD01,
- 0xDCF7,0xDD7D,0xDD8C,0xDD9C, 0,0xDE1F,0xDE1E,0xDF3D,0xDF3F,0xDF11,
- 0xDF59,0xDF3E,0xDF58,0xDC00,0xDF9E,0xDFB6,0xDFAA,0xDFAF,0xDFAC, 0,
- 0xDFC0,0xDFA9,0xDF10,0xDCEE,0xDD77,0xDD79,0xDD7A,0xDD7D,0xDD7F,0xDD83,
- 0xDD78,0xDD7E,0xDDE4,0xDDE6,0xDDE5,
- /* plane 6, row 65 */
- 1 | (94 << 8), /* first, last */
- 0x445D,0xD85A,0xD85A,0x4475,0xD87E,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD87E,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0x44FF,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD87E,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0x450B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0x45C8,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 2, /* first low-surrogate */
- 0xDE4E,0xDE59, 0,0xDD8E,0xDE4F,0xDE4A,0xDEE3,0xDEDE,
- 0xDEE2,0xDC74,0xDCAC,0xDC61,0xDC62,0xDC76,0xDC7A,0xDC79,0xDC60,0xDD64,
- 0xDE81,0xDDDF,0xDD84,0xDD8A,0xDD92,0xDD79,0xDDDE,0xDD98,0xDD6C,0xDDE1,
- 0xDDA5,0xDD7C,0xDD72,0xDD81,0xDDE0,0xDD65, 0,0xDD6A,0xDD97,0xDDAA,
- 0xDDD3,0xDDAB,0xDD6E,0xDDAC,0xDD76,0xDD7B,0xDDAD,0xDDA6,0xDD94,0xDDD7,
- 0xDD70,0xDDD5,0xDDF1,0xDD7A,0xDD68,0xDD96, 0,0xDD73,0xDDAE,0xDDDD,
- 0xDDDA,0xDDAF,0xDDB0,0xDDDB,0xDD62,0xDDF8,0xDDC2,0xDDC7,0xDDC8,0xDDC5,
- 0xDDC3,0xDDC6,0xDEDE, 0,0xDF11,0xDF15,0xDF28,0xDF21,0xDF2D,0xDF51,
- 0xDF2B,0xDF16,0xDF24,0xDF35,0xDF1F,0xDF12,0xDF10,0xDF80,0xDF3B,0xDF29,
- 0xDF2A,0xDF1B,0xDF18,0xDF20,0xDF3F,
- /* plane 6, row 66 */
- 1 | (94 << 8), /* first, last */
- 0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD87E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD846,0xD85F,0xD85F,0x4774,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0x47AC,0xD85F,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,
- 1, /* first low-surrogate */
- 0xDF1C,0xDF26,0xDF0B,0xDDBE,0xDDC4,0xDDBD,0xDDFA,0xDDFB,0xDEB1,
- 0xDEB2,0xDEB0,0xDEB9,0xDEA6,0xDEBD,0xDEB6,0xDEB8,0xDEB4,0xDEB3,0xDEA7,
- 0xDEAE,0xDEBC,0xDFF2,0xDFF3,0xDFF4,0xDC3B,0xDC40,0xDC46,0xDCF0,0xDCEE,
- 0xDCE8,0xDCF1,0xDCEB,0xDCEF,0xDDFC,0xDE20,0xDE09,0xDE06,0xDE03,0xDDCF,
- 0xDE19,0xDE24,0xDE1B,0xDE1D,0xDDFD,0xDE1E,0xDDF4,0xDE01,0xDE08,0xDE05,
- 0xDE23,0xDDFF,0xDFEA,0xDC4D,0xDC4E,0xDC56,0xDC57,0xDC51,0xDC55,0xDC54,
- 0xDCCB,0xDCD4,0xDCD1,0xDCCF,0xDCD2,0xDCCA,0xDCD6,0xDD8B,0xDD88,0xDD85,
- 0xDD89,0xDE9B,0xDDBB,0xDD8C, 0,0xDD99,0xDD8A,0xDEEC,0xDEEF,0xDEF9,
- 0xDF09,0xDEF8,0xDEF3,0xDF00,0xDF1D, 0,0xDEFD,0xDC48,0xDC5C,0xDC55,
- 0xDC5E,0xDC49,0xDC63,0xDC60,0xDC53,
- /* plane 6, row 67 */
- 1 | (94 << 8), /* first, last */
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD87E,0xD862,0xD862,
- 0xD862,0xD87E,0xD862,0xD862,0xD863,0xD863,0xD87E,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD87E,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD864,
- 0xD864,0x4A16,0xD864,0xD864,0xD864,
- 1, /* first low-surrogate */
- 0xDC62,0xDC40,0xDE49,0xDE4A,0xDE4C,0xDE4D,0xDF0A,0xDF06,0xDF2F,
- 0xDF21,0xDF07,0xDF09,0xDF02,0xDF16,0xDF03,0xDF0B,0xDF0F,0xDD60,0xDD68,
- 0xDD5E,0xDD5D,0xDD63,0xDD5F,0xDD64,0xDD78,0xDD61,0xDD69,0xDD65,0xDEDA,
- 0xDEE6,0xDEDB,0xDEDC,0xDF39,0xDF57,0xDF55,0xDF65,0xDF61,0xDF54,0xDC45,
- 0xDC41,0xDC3E,0xDC37,0xDD12,0xDD13,0xDD2C,0xDD96,0xDDE9,0xDD9C,0xDD9D,
- 0xDD85,0xDDE8,0xDD9F,0xDDA3,0xDC82,0xDC83,0xDDEE,0xDD1D,0xDD14,0xDD1F,
- 0xDD20,0xDE47,0xDE80,0xDEC9,0xDEF9,0xDF06,0xDEF0,0xDEF8,0xDEEF,0xDEFD,
- 0xDEF1,0xDEFE,0xDFB8,0xDFC0,0xDFC3,0xDFB5,0xDFB6,0xDFC9,0xDDF3,0xDFBD,
- 0xDFBA,0xDFBF,0xDFB3,0xDFC6,0xDFB2,0xDFBC,0xDFB7,0xDFB9,0xDFC8,0xDCB5,
- 0xDCB3, 0,0xDCAC,0xDCA9,0xDCAD,
- /* plane 6, row 68 */
- 1 | (90 << 8), /* first, last */
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD865,0xD865,0xD865,0xD865,0xD87E,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD87E,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0x4B3B,0xD865,0xD865,0xD865,0xD865,0xD865,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD87E,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0x4BEF,0xD866,0xD866,0xD866,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD868,0xD869,0xD869,0xD869,0xD869,
- 0xD845,
- 1, /* first low-surrogate */
- 0xDE11,0xDE0D,0xDE16,0xDE89,0xDE7C,0xDE8B,0xDE7B,0xDE88,0xDE84,
- 0xDF9D,0xDF98,0xDC88,0xDC86,0xDC82,0xDC8B,0xDDFF,0xDC71,0xDC72,0xDC81,
- 0xDC8C,0xDC80,0xDC89,0xDDBB,0xDDC1,0xDDBE,0xDE01,0xDDBD,0xDEC1,0xDEB4,
- 0xDEB7,0xDEC8, 0,0xDED3,0xDED0,0xDEB0,0xDECA,0xDECD,0xDC15,0xDC19,
- 0xDC17,0xDC3F,0xDC40,0xDC44,0xDC7C,0xDC78,0xDC79,0xDC88,0xDE06,0xDC89,
- 0xDC7D,0xDE23,0xDE24,0xDE26,0xDE22,0xDE27,0xDE1F,0xDEC9,0xDEC3,0xDF0A,
- 0xDF0B,0xDF04, 0,0xDF03,0xDF01,0xDF09,0xDC0F,0xDC2E,0xDC2D,0xDC91,
- 0xDC99,0xDC9E,0xDC90,0xDC94,0xDC9D,0xDC98,0xDC9B,0xDC9C,0xDC9A,0xDD54,
- 0xDF9D,0xDF9F,0xDFA3,0xDFA4,0xDFA5,0xDF02,0xDC17,0xDC1B,0xDC19,0xDCD1,
- 0xDD37,
- /* plane 6, row 69: --- */
- /* plane 6, row 70: --- */
- /* plane 6, row 71: --- */
- /* plane 6, row 72: --- */
- /* plane 6, row 73: --- */
- /* plane 6, row 74: --- */
- /* plane 6, row 75: --- */
- /* plane 6, row 76: --- */
- /* plane 6, row 77: --- */
- /* plane 6, row 78: --- */
- /* plane 6, row 79: --- */
- /* plane 6, row 80: --- */
- /* plane 6, row 81: --- */
- /* plane 6, row 82: --- */
- /* plane 6, row 83: --- */
- /* plane 6, row 84: --- */
- /* plane 6, row 85: --- */
- /* plane 6, row 86: --- */
- /* plane 6, row 87: --- */
- /* plane 6, row 88: --- */
- /* plane 6, row 89: --- */
- /* plane 6, row 90: --- */
- /* plane 6, row 91: --- */
- /* plane 6, row 92: --- */
- /* plane 6, row 93: --- */
- /* plane 6, row 94: --- */
- /* plane 7, row 1 */
- 1 | (94 << 8), /* first, last */
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD840,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0x35F6,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD87E,0xD843,0xD843,0x5655,0xD844,0xD844,
- 0xD844,0xD845,0xD845,0xD845,0x3667,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD841,0xD845,0xD845,0xD845,0xD845,0xD845,0xD87E,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,
- 1, /* first low-surrogate */
- 0xDC55,0xDD82,0xDD89,0xDD87,0xDFBE,0xDFBD,0xDFCA,0xDFD4,0xDFBC,
- 0xDFC4,0xDFC1,0xDFC2,0xDFD7,0xDF70,0xDFBA,0xDFE3,0xDFBB,0xDCB1,0xDCB6,
- 0xDCB0,0xDD6C,0xDE0D,0xDE07,0xDFF1,0xDFF5,0xDFED,0xDFEF,0xDFEB,0xDFEC,
- 0xDFEE,0xDC07,0xDDC4,0xDE08,0xDEB3,0xDEAD,0xDEB0,0xDF11,0xDD8A,0xDF83,
- 0xDF7A,0xDF82,0xDF68,0xDF71,0xDFB0,0xDFAF, 0,0xDF6C,0xDF6F,0xDF62,
- 0xDF65,0xDF81,0xDF7F,0xDF64,0xDF73,0xDF6E,0xDF67,0xDF74,0xDF7D,0xDF78,
- 0xDF85,0xDFAA,0xDF88,0xDFA6,0xDC4E,0xDF8A,0xDF84, 0,0xDE24,0xDE22,
- 0xDE23,0xDC32,0xDC5B,0xDC4F, 0,0xDC26,0xDC3E,0xDC42,0xDC47,0xDC22,
- 0xDE9B,0xDC4A,0xDC1F,0xDC49,0xDC2B,0xDC33,0xDC58,0xDC2A,0xDC28,0xDD3D,
- 0xDD3C,0xDDBF,0xDE79,0xDE80,0xDE7C,
- /* plane 7, row 2 */
- 1 | (94 << 8), /* first, last */
- 0xD845,0xD845,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD841,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD849,0xD849,0xD84F,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0x617F,0xD849,0xD84A,0xD849,0xD849,0xD84A,0xD849,0xD84A,0xD84A,
- 0xD84A,0xD87E,0x3992,0xD84A,0xD84A,
- 1, /* first low-surrogate */
- 0xDE7A,0xDE78,0xDC82,0xDC5C,0xDC5A,0xDC4B,0xDC7C,0xDC7F,0xDC1F,
- 0xDC89,0xDC8B,0xDC57,0xDC7E,0xDC7D,0xDC53,0xDE9F,0xDEBC,0xDEA5,0xDE86,
- 0xDEDC,0xDEA4,0xDEB6,0xDEA2,0xDEB4,0xDF48,0xDF46,0xDFA7,0xDC14,0xDC12,
- 0xDC11,0xDCE1,0xDCD0,0xDD26,0xDD28,0xDD29,0xDF2F,0xDF0D,0xDF25,0xDF14,
- 0xDF3C,0xDF0B,0xDF11,0xDF30,0xDF18,0xDF19,0xDF36,0xDF17,0xDF10,0xDF15,
- 0xDC03,0xDC29,0xDC4C,0xDD3F,0xDD3E,0xDD34,0xDD42,0xDD35,0xDFF3,0xDDCD,
- 0xDDD1,0xDDD2,0xDEAD,0xDEBA,0xDEC1,0xDEBB,0xDEB4,0xDEBC,0xDF6C,0xDF92,
- 0xDC21,0xDC24,0xDF19,0xDCAD,0xDCAE,0xDCAB,0xDCAC,0xDD70,0xDD76,0xDD71,
- 0xDD77, 0,0xDFEC,0xDC1C,0xDFFB,0xDFEE,0xDCE2,0xDFFD,0xDC1E,0xDC3B,
- 0xDC4A,0xDCAE, 0,0xDC7D,0xDC56,
- /* plane 7, row 3 */
- 1 | (94 << 8), /* first, last */
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84B,0xD87E,0xD84B,0xD84B,0xD87E,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0x3A45,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0x3BC9,
- 0xD84D,0xD84D,0xD87E,0xD84D,0xD84D,0xD84D,0xD84E,0xD84E,0xD87E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 1, /* first low-surrogate */
- 0xDC44,0xDC4B,0xDDFA,0xDDE8,0xDDF8,0xDDFF,0xDDF7,0xDDF6,0xDDFE,
- 0xDE07,0xDE5D,0xDCD4,0xDCC3,0xDCC8,0xDCC5,0xDCC0,0xDCC9,0xDD4D,0xDD20,
- 0xDD36,0xDD35,0xDD88,0xDD25,0xDD21,0xDD26, 0,0xDD3F,0xDD3B,0xDD24,
- 0xDD43,0xDD4E,0xDD4F,0xDD44,0xDD40,0xDD41,0xDD39,0xDD2B,0xDEDD,0xDEDE,
- 0xDFCD,0xDFCB,0xDFDB,0xDFD8,0xDFD9,0xDFD2,0xDFCA,0xDFD1,0xDFD4,0xDFF9,
- 0xDFD0,0xDC5E,0xDC5D,0xDC8A,0xDD14,0xDE83,0xDE84,0xDE9B,0xDE82,0xDE7D,
- 0xDE7C,0xDE99,0xDE7E,0xDE9A,0xDE95,0xDE7B,0xDE86,0xDF48,0xDF92,0xDDB2,
- 0xDE42,0xDE72,0xDE15,0xDE30,0xDE43,0xDE5B,0xDE1D,0xDE73,0xDE2D, 0,
- 0xDE21,0xDE1C,0xDCEA,0xDE29,0xDE1E,0xDE33,0xDD10,0xDD0E,0xDCF1,0xDD0D,
- 0xDD11,0xDD12,0xDD17,0xDD09,0xDD0F,
- /* plane 7, row 4 */
- 1 | (94 << 8), /* first, last */
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD87E,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD87E,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0x3D55,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,
- 1, /* first low-surrogate */
- 0xDD98,0xDD94,0xDD96,0xDD99,0xDD95,0xDD97,0xDE50,0xDE52,0xDE4D,
- 0xDE57,0xDE53,0xDE56,0xDEB8,0xDF12,0xDFF1,0xDFF0,0xDFEE,0xDFEF,0xDFE5,
- 0xDFEB,0xDFE7,0xDFF2,0xDFE6,0xDFF7,0xDC09,0xDC6B,0xDC6A,0xDE79,0xDECD,
- 0xDEEF,0xDEE4,0xDEE3,0xDF6C,0xDF67,0xDF62,0xDF58,0xDF69,0xDFAB,0xDF57,
- 0xDFAD,0xDF54,0xDFAE,0xDF76,0xDF49,0xDF45,0xDF4F,0xDD0F,0xDF50,0xDF7D,
- 0xDF44,0xDF66,0xDF48,0xDFA3,0xDF51,0xDF53,0xDD10,0xDF60,0xDF47,0xDF5E,
- 0xDF85,0xDFAC,0xDF6D,0xDF75,0xDFA8, 0,0xDF43,0xDF4E,0xDF5C,0xDF56,
- 0xDF6E,0xDF63,0xDF6A,0xDF56,0xDF12,0xDF5C,0xDF58,0xDF55,0xDF7E,0xDFA8,
- 0xDF11,0xDF59,0xDF5A,0xDF67,0xDF54,0xDF5B,0xDFF0,0xDD29,0xDD2C,0xDD2A,
- 0xDD27,0xDD67,0xDD68,0xDD93,0xDD95,
- /* plane 7, row 5 */
- 1 | (94 << 8), /* first, last */
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0x3EE8,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD842,0xD852,0xD852,0xD852,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0x3FB6,0xD853,0xD853,0xD853,
- 0x3FBD,0xD853,0xD853,0xD853,0xD853,0xD853,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD84A,0xD854,0xD858,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD855,0xD87E,0xD855,0xD855,0xD855,
- 1, /* first low-surrogate */
- 0xDD9A,0xDDEE,0xDDF1,0xDDED,0xDDE9,0xDECB,0xDEDF,0xDEDB,0xDC3C,
- 0xDC4E,0xDC6C,0xDC7B,0xDC7C,0xDC83,0xDC6B,0xDC66,0xDC63,0xDCA0,0xDC85,
- 0xDC68,0xDCA2,0xDDEC, 0,0xDDE7,0xDE10,0xDE18,0xDE3A,0xDE1A,0xDE38,
- 0xDE41,0xDE1B,0xDE14,0xDE1C,0xDE1D,0xDF12,0xDF0D,0xDF07,0xDF7E,0xDF7F,
- 0xDEB9,0xDF80,0xDF7A,0xDFF3,0xDCB9,0xDCBB,0xDCBA,0xDCBD,0xDCB7,0xDCBF,
- 0xDD21,0xDE3A,0xDE3D,0xDE36,0xDE49,0xDE81, 0,0xDE3F,0xDE4D,0xDE3E,
- 0,0xDE30,0xDE4F,0xDF37,0xDF98,0xDF99,0xDC11,0xDC0D,0xDC88,0xDC8A,
- 0xDE1C,0xDE55,0xDE56,0xDE62,0xDE57,0xDE42,0xDE10,0xDE4D,0xDE5A,0xDE66,
- 0xDE46,0xDC7E,0xDE4F,0xDEF9,0xDF87,0xDF84,0xDFF4,0xDFF5,0xDFF2,0xDFF7,
- 0xDD45,0xDD50,0xDD49,0xDD35,0xDCFD,
- /* plane 7, row 6 */
- 1 | (94 << 8), /* first, last */
- 0xD855,0xD855,0xD855,0x40D6,0xD855,0xD855,0xD87E,0xD855,0xD85C,
- 0xD855,0xD843,0xD855,0xD840,0xD856,0xD856,0xD856,0xD856,0x4171,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD87E,0xD856,
- 0xD87E,0xD856,0xD856,0xD857,0xD856,0xD856,0xD856,0xD856,0xD857,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD87E,0xD856,0xD856,0xD856,0xD856,
- 0xD857,0xD856,0xD857,0xD857,0xD857,0x4298,0xD857,0xD857,0xD857,0xD857,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD87E,0xD87E,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD840,
- 0xD858,0xD858,0xD858,0xD859,0xD859,
- 1, /* first low-surrogate */
- 0xDD30,0xDD43,0xDD46, 0,0xDD33,0xDEC6,0xDD56,0xDED4,0xDDD8,
- 0xDEE0,0xDFA7,0xDF44,0xDF98,0xDC54,0xDC3E,0xDC35,0xDC3A, 0,0xDC34,
- 0xDC39,0xDC46,0xDC5A,0xDC5B,0xDC3C,0xDDDC,0xDDD6,0xDDD0,0xDD5E,0xDEAC,
- 0xDD5D,0xDEA5,0xDFF4,0xDC24,0xDFE0,0xDFFD,0xDFF2,0xDFFC,0xDC02,0xDFF1,
- 0xDFFF,0xDFD2,0xDFD8,0xDFD3,0xDFF9,0xDD63,0xDFED,0xDFF7,0xDFF0,0xDFD7,
- 0xDC09,0xDFF5,0xDEC2,0xDEC5,0xDECF, 0,0xDEC1,0xDEC6,0xDED4,0xDECE,
- 0xDC9B,0xDC99,0xDC8F,0xDCB7,0xDC82,0xDC93,0xDCB4,0xDCC1,0xDC90,0xDC9A,
- 0xDC94,0xDC9C,0xDCB5,0xDD6F,0xDD6E,0xDC9F,0xDC8E,0xDC9E,0xDE3C,0xDE47,
- 0xDE41,0xDEEB,0xDEEC,0xDEED,0xDEEE,0xDEDF,0xDEF2,0xDF0D,0xDF0E,0xDD86,
- 0xDFA9,0xDFA4,0xDFA5,0xDC5F,0xDC5A,
- /* plane 7, row 7 */
- 1 | (94 << 8), /* first, last */
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD87E,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD856,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD87E,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD87E,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 1, /* first low-surrogate */
- 0xDC66,0xDC68,0xDC6A,0xDC64,0xDC65,0xDCC1,0xDCD8,0xDD7B,0xDCD9,
- 0xDD09,0xDDAA,0xDDA3,0xDDB9,0xDDE2,0xDDA5,0xDDAB,0xDE20,0xDF89,0xDF8B,
- 0xDFDB,0xDFE4,0xDFEF,0xDFE2,0xDFE9,0xDFF0,0xDFF3,0xDFDD,0xDC1E,0xDD1D,
- 0xDD46,0xDD7C,0xDD80,0xDD81,0xDD82,0xDD87,0xDD88,0xDD8A,0xDD8C,0xDDE7,
- 0xDDEB,0xDDEA,0xDE68,0xDE6B,0xDE69,0xDE66,0xDE6A,0xDE65,0xDEE5,0xDEE4,
- 0xDEE6,0xDD18,0xDE24,0xDE48,0xDE2F,0xDE7E,0xDD89,0xDE1E,0xDE49,0xDE26,
- 0xDE09,0xDE34,0xDE2D,0xDE4A,0xDE15,0xDDA9,0xDE33,0xDE28,0xDE27,0xDE20,
- 0xDE2B,0xDE29,0xDE6A,0xDE0B,0xDE0E,0xDE1C,0xDDFF,0xDDAA,0xDE35,0xDE11,
- 0xDE4B,0xDE4C,0xDE1F,0xDE0F,0xDE39,0xDE68,0xDE1D,0xDE08,0xDE0C,0xDE0D,
- 0xDE62,0xDEAF,0xDE32,0xDE2C,0xDE64,
- /* plane 7, row 8 */
- 1 | (94 << 8), /* first, last */
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD87E,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0x45CD,0xD85C,0xD85C,0xD85C,0xD85C,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0x46F6,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 1, /* first low-surrogate */
- 0xDE04,0xDE16,0xDE4D,0xDE07,0xDEAE,0xDDD4,0xDDD1,0xDDD5,0xDDD0,
- 0xDF71,0xDF5D,0xDF5B,0xDF7A,0xDDBD,0xDF7F,0xDF79,0xDF67,0xDF9E,0xDF94,
- 0xDF64,0xDF5E,0xDF81,0xDF5A,0xDF57,0xDF7C,0xDF98,0xDF66,0xDF7E,0xDF82,
- 0xDF68,0xDF5F,0xDF63,0xDF97, 0,0xDF53,0xDF7B,0xDF7D,0xDF78,0xDC06,
- 0xDDC0,0xDDC2,0xDDC3,0xDEDC,0xDEE6,0xDEEC,0xDEF2,0xDEE8,0xDEEB,0xDEEA,
- 0xDEE5,0xDEE0,0xDED0,0xDED8,0xDED5,0xDED3,0xDEE4,0xDEF3,0xDEDB,0xDF2F,
- 0xDFF9,0xDC5D,0xDC5B,0xDC4C,0xDC58,0xDC60,0xDC53,0xDC50,0xDD07,0xDD08,
- 0xDCF4,0xDCF6,0xDD04,0xDCFD,0xDD05,0xDE28,0xDE56,0xDE42,0xDE5C,0xDE3D,
- 0xDE2F,0xDE2B,0xDE58,0xDE61,0xDE2C,0xDE51,0xDE50,0xDE3C,0xDE36, 0,
- 0xDE60,0xDE5B,0xDE2E,0xDE40,0xDE5F,
- /* plane 7, row 9 */
- 1 | (94 << 8), /* first, last */
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0x477A,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0x47B8,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD87E,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0x4801,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,
- 1, /* first low-surrogate */
- 0xDE26,0xDE2D,0xDE5E,0xDE3B,0xDFEF,0xDFF3,0xDFEE,0xDFED,0xDC5A,
- 0xDC62,0xDC5B,0xDC5F,0xDC5E,0xDC64,0xDCE0,0xDCE1,0xDCE5,0xDDA5,0xDD9B,
- 0xDD9F,0xDD9C, 0,0xDDAA,0xDDA4,0xDDA3,0xDE67,0xDF26,0xDF1A, 0,
- 0xDF1C,0xDF15,0xDF1B,0xDF18,0xDF1E,0xDF25,0xDDDC,0xDC7B,0xDC75,0xDC93,
- 0xDC8F,0xDC7C,0xDC9B,0xDC88,0xDC91,0xDC7E, 0,0xDC86,0xDE5B,0xDE54,
- 0xDF35,0xDF40,0xDF37,0xDF29,0xDF26,0xDF23,0xDF30,0xDF20,0xDF28,0xDF32,
- 0xDF2A,0xDF31,0xDF24,0xDF41,0xDF42,0xDF43,0xDF25,0xDF38,0xDC1C,0xDC1D,
- 0xDC1E,0xDCF6,0xDDA5,0xDD89,0xDD9D,0xDD8A,0xDD87,0xDDAB,0xDD86,0xDD9E,
- 0xDD93,0xDDA1,0xDD88,0xDDA3,0xDD9F,0xDDA0,0xDEFF,0xDF00,0xDF02,0xDEF8,
- 0xDEF7,0xDF01,0xDF87,0xDF89,0xDF76,
- /* plane 7, row 10 */
- 1 | (94 << 8), /* first, last */
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0x492F,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0x4931,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0x499C,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0x49E6,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD850,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,
- 1, /* first low-surrogate */
- 0xDF6E,0xDF77,0xDF82,0xDF85,0xDF83,0xDF84,0xDC57,0xDC4B,0xDC56,
- 0xDC5D,0xDC60,0xDC4D,0xDC55,0xDC54,0xDC53,0xDC50,0xDC63,0xDC62,0xDD17,
- 0xDD16,0xDD2D,0xDDD9,0xDDBF, 0,0xDDB2,0xDDAC,0xDDB0,0xDDCF,0xDDB8,
- 0,0xDDD3,0xDDB1,0xDDAF,0xDDCE,0xDDB4,0xDDB7,0xDDD5, 0,0xDD38,
- 0xDD28,0xDD3F,0xDD40,0xDD41,0xDD33,0xDD2B,0xDD2E,0xDF11,0xDF18,0xDF17,
- 0xDF19,0xDF16, 0,0xDF0D,0xDF26,0xDF79,0xDFD8,0xDFF3,0xDFD7,0xDFCC,
- 0xDFCF,0xDFCB,0xDFD1,0xDFCE,0xDFD4,0xDFD5,0xDFD3,0xDFD6,0xDFCD,0xDFDA,
- 0xDFD2,0xDFDE,0xDCCC,0xDCB8,0xDCB7,0xDCC2,0xDCC3,0xDDFA,0xDDF9,0xDE1F,
- 0xDE1D,0xDF82,0xDEA6,0xDE90,0xDE9E,0xDE98,0xDE93,0xDE92,0xDEA5,0xDE95,
- 0xDFA9,0xDFA8,0xDFAA,0xDFAB,0xDFAC,
- /* plane 7, row 11 */
- 1 | (94 << 8), /* first, last */
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0x4B38,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD87E,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0x4C3A,0xD867,0xD867,0x4CB1,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD868,
- 1, /* first low-surrogate */
- 0xDC1F,0xDC22,0xDCAA,0xDC96,0xDC91,0xDCAB,0xDCA2,0xDCA4,0xDC9D,
- 0xDC97,0xDC7D,0xDC9F,0xDC9C,0xDC99,0xDCA6,0xDC92,0xDCA7,0xDDC9,0xDDC8,
- 0xDDC7,0xDDCB,0xDE74,0xDEC9, 0,0xDED2,0xDEDB,0xDEEB,0xDEE9,0xDEEF,
- 0xDEEE,0xDEF9,0xDEDE,0xDC16,0xDC45,0xDC7F,0xDC98,0xDC9F,0xDC86,0xDC90,
- 0xDC9A,0xDC9D,0xDC8D,0xDC9C,0xDCA0,0xDCA7,0xDC8F,0xDE41,0xDE35,0xDE37,
- 0xDE30,0xDE3A,0xDE36,0xDE08,0xDECA,0xDF12,0xDF15,0xDF22,0xDF13,0xDF18,
- 0xDF21,0xDC10,0xDC20,0xDC2F,0xDCA5,0xDCA3,0xDCB6,0xDCAB,0xDD68,0xDD67,
- 0xDD6F,0xDD77,0xDD64,0xDD78, 0,0xDD76,0xDD6E, 0,0xDFD0,0xDFB3,
- 0xDFCB,0xDFD6,0xDFB1,0xDFB4,0xDFD7,0xDFC6,0xDFBA,0xDFD1,0xDFD2,0xDFB5,
- 0xDFC4,0xDFCC,0xDFBB,0xDFB2,0xDE5B,
- /* plane 7, row 12 */
- 1 | (94 << 8), /* first, last */
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0x4D47,0xD868,0x4D51,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xffff,0xD853,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD841,0xD841,0xD841,0xD864,0xD841,0xD841,0xD841,
- 0xD842,0xD841,0xD841,0xD842,0xD842,0xD841,0xD841,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD85E,0xD843,0xD843,0xD843,0xD861,0xD843,
- 0xD843,0xD844,0xD844,0xD843,0xD843,0xD843,0xD844,0xD84A,0xD843,0xD87E,
- 0xD843,0xD843,0xD843,0xD844,0xD843,0xD843,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD850,0xD845,0xD845,0xD846,
- 1, /* first low-surrogate */
- 0xDE5A,0xDE59,0xDE99,0xDE94,0xDE96,0xDE93,0xDE91,0xDE8F,0xDE98,
- 0xDF0C,0xDF0A,0xDF0E,0xDF12,0xDF11,0xDF0B,0xDF9A, 0,0xDFB4, 0,
- 0xDC1C,0xDC20,0xDC21,0xDCD3,0xDCD2,0xDD38, 0,0xDCCF,0xDD1D,0xDD92,
- 0xDD8F,0xDD8C,0xDFEA,0xDCB9,0xDD6E,0xDDA0,0xDDDD,0xDE12,0xDE17,0xDE6D,
- 0xDC05,0xDFFB,0xDFFD,0xDC06,0xDC00,0xDFFF,0xDFFE,0xDCB6,0xDD05,0xDD07,
- 0xDEBC,0xDEBB,0xDF8B,0xDF87,0xDFFB,0xDFE7,0xDFE6,0xDFE2,0xDDD3,0xDFD9,
- 0xDFCA,0xDC12,0xDC10,0xDFDC,0xDFD0,0xDF8B,0xDC13,0xDE10,0xDFDA,0xDC4F,
- 0xDFFD,0xDFE5,0xDFCC,0xDC39,0xDFC7,0xDFD8,0xDC60,0xDC64,0xDC86,0xDC5E,
- 0xDC66,0xDC5F,0xDC77,0xDC82,0xDC96,0xDD3E,0xDD79,0xDD7A,0xDE88,0xDE89,
- 0xDE8C,0xDFE0,0xDE7B,0xDE86,0xDC94,
- /* plane 7, row 13 */
- 1 | (94 << 8), /* first, last */
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0x3747,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0x3817,0xD847,0xD849,0xD848,0xD848,0xD848,
- 0xD848,0xD87E,0xD848,0xD87E,0xD848,0xD848,0xD848,0xD848,0xD848,0x38A3,
- 0xD848,0xD848,0xD849,0xD849,0xD849,0xD849,0xD84C,0xD87E,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD87E,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD87E,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 1, /* first low-surrogate */
- 0xDC97,0xDCB7,0xDCB5,0xDCB8,0xDC93,0xDCB2,0xDCB4,0xDC99,0xDCC3,
- 0xDC9D,0xDC9B,0xDCA3, 0,0xDD9F,0xDD9E,0xDDA3,0xDDA0,0xDDA1,0xDEC5,
- 0xDEC6,0xDEBE,0xDEC4,0xDEBF,0xDF4C,0xDF4A,0xDFB1,0xDC15,0xDC17,0xDC10,
- 0xDC18,0xDCE0,0xDCDF,0xDD27,0xDF43,0xDF48,0xDF1D,0xDF50,0xDF58,0xDF47,
- 0xDF54,0xDF53,0xDF40,0xDF55, 0,0xDF5A,0xDC70,0xDD5B,0xDD4D,0xDD56,
- 0xDD4F,0xDC87,0xDD59,0xDC88,0xDD54,0xDD53,0xDD50,0xDEB3,0xDF6E, 0,
- 0xDF6F,0xDF93,0xDC29,0xDC25,0xDC28,0xDC6F,0xDEB8,0xDC97,0xDCB3,0xDD79,
- 0xDD7E,0xDD7C,0xDD83,0xDCAC,0xDC00,0xDC34,0xDC65,0xDC36,0xDCA7,0xDC59,
- 0xDC58,0xDC31,0xDC62,0xDC38,0xDC73,0xDC3E,0xDC55,0xDC54,0xDC95,0xDCAD,
- 0xDCA5,0xDC94,0xDC9A,0xDC9B,0xDC99,
- /* plane 7, row 14 */
- 1 | (94 << 8), /* first, last */
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84C,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0x3B1E,0xD84C,
- 0xD84C,0xD84C,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD87E,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 1, /* first low-surrogate */
- 0xDC9F,0xDC53,0xDE12,0xDE0A,0xDE09,0xDE0C,0xDE0B,0xDE0E,0xDE0D,
- 0xDE08,0xDD38,0xDD3A,0xDD37,0xDD3D,0xDD2D,0xDD82,0xDD95,0xDD87,0xDD9D,
- 0xDDB5,0xDD81,0xDDC7,0xDD9B,0xDD98,0xDD94,0xDD86,0xDD90,0xDD34,0xDD8E,
- 0xDD85,0xDDA6,0xDD96,0xDFEA,0xDFDF,0xDEBD,0xDFF7,0xDFEB,0xDFE0,0xDFE8,
- 0xDFE1,0xDFE9,0xDFEE,0xDFE5,0xDFEC,0xDC63,0xDCC6,0xDCC2,0xDCC1,0xDCC0,
- 0xDCC3,0xDD18,0xDEAE,0xDEA3,0xDEC5,0xDEA0,0xDEB4,0xDEA5, 0,0xDEA4,
- 0xDEA8,0xDEA6,0xDEA8,0xDE8D,0xDE82,0xDE9E,0xDE89,0xDE83,0xDE91,0xDEA6,
- 0xDE9A,0xDE90,0xDE85,0xDE7D,0xDCEC,0xDE9B,0xDEA5,0xDEF0,0xDE96,0xDE88,
- 0xDED6,0xDED8,0xDE86,0xDEA4,0xDE97,0xDD1C,0xDD19,0xDD9E,0xDD9F,0xDD9D,
- 0xDD9C,0xDE5D,0xDE5E,0xDE73,0xDE63,
- /* plane 7, row 15 */
- 1 | (94 << 8), /* first, last */
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84F,0xD84E,0xD84F,0xD850,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD850,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD850,0xD84F,0xD84F,0xD87E,0xD84F,0xD850,0xD850,0xD84F,0xD84F,
- 0xD850,0xD84F,0xD850,0xD850,0xD850,0xD850,0xD850,0x71D7,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD852,0xD852,0x3E9A,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,
- 1, /* first low-surrogate */
- 0xDEBE,0xDEC1,0xDEBC,0xDEBF,0xDEBB,0xDEBD,0xDF13,0xDF14,0xDFF8,
- 0xDFFA,0xDC06,0xDFFE,0xDC51,0xDC0B,0xDFF1,0xDFA9,0xDFD5,0xDFDC,0xDFCB,
- 0xDFF2,0xDC5F,0xDFDB,0xDFD6,0xDFD9,0xDFD1,0xDFCF,0xDFD8,0xDFE0,0xDFD4,
- 0xDFF3,0xDC05,0xDFCE,0xDFF4,0xDD12,0xDFDA,0xDC0E,0xDC06,0xDFD7,0xDFCD,
- 0xDC07,0xDFE1,0xDC08,0xDFBE,0xDFEF,0xDFD9,0xDFDA, 0,0xDFA0,0xDFDF,
- 0xDF9E,0xDFBF,0xDFAF,0xDFA7,0xDFAA,0xDFF4,0xDFAE,0xDFB5,0xDFB8,0xDFDB,
- 0xDFC0,0xDFB7,0xDFA2,0xDFDD,0xDFA1,0xDFA5,0xDFB4,0xDFA6,0xDFAB,0xDFAC,
- 0xDF9F,0xDFB1,0xDFFC,0xDD2E,0xDD30,0xDD99,0xDDF8,0xDDF6,0xDEF4,0xDEEB,
- 0xDEE1,0xDEE4,0xDC75,0xDC69, 0,0xDC99,0xDC9E,0xDC94,0xDC93,0xDC91,
- 0xDE19,0xDE17,0xDE49,0xDE47,0xDE48,
- /* plane 7, row 16 */
- 1 | (94 << 8), /* first, last */
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD853,0xD847,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0x3FC2,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD87E,0xD854,0xD854,0xD854,0xD854,0xD854,0xD84A,0xD854,
- 0xD854,0xD854,0xD854,0xD855,0xD855,0xD855,0xD855,0x40DC,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD87E,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0x41B3,
- 0xD856,0xD856,0xD856,0xD87E,0xD856,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,
- 1, /* first low-surrogate */
- 0xDE52,0xDE40,0xDE63,0xDE46,0xDE5F,0xDF0E,0xDF85,0xDF87,0xDFCB,
- 0xDFCC,0xDFC9,0xDCCB,0xDCE7,0xDD20,0xDE5F,0xDE60,0xDE6A,0xDE76,0xDE73,
- 0xDE71,0xDE66, 0,0xDE6B,0xDE79,0xDE7B,0xDF3C,0xDF9E,0xDF9C,0xDC1C,
- 0xDC1E,0xDC21,0xDC96,0xDCA1,0xDCB6,0xDCA0,0xDC94,0xDC97,0xDE81,0xDE86,
- 0xDEC0,0xDE8A,0xDD4B,0xDE85,0xDE95,0xDE49,0xDE82,0xDE84,0xDC78,0xDE90,
- 0xDEB1,0xDFFE,0xDFFB,0xDD50,0xDD56,0xDD5A,0xDD4C, 0,0xDD57,0xDEE1,
- 0xDED9,0xDEDB,0xDEF4,0xDF45,0xDF47,0xDC74,0xDC6B,0xDC68,0xDC69,0xDC79,
- 0xDD5B,0xDC80,0xDC81,0xDC61,0xDC70,0xDC6F,0xDC73,0xDC5D,0xDDFA, 0,
- 0xDDF3,0xDE0A,0xDE17,0xDD5F,0xDEB0,0xDC3E,0xDC46,0xDC4F,0xDC44,0xDC69,
- 0xDC33,0xDC2F,0xDC4E,0xDC3A,0xDC2B,
- /* plane 7, row 17 */
- 1 | (94 << 8), /* first, last */
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD87E,0xD857,0xD857,0xD857,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD84A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD850,0xD85A,0xD85A,0xD85A,0xD85A,
- 1, /* first low-surrogate */
- 0xDCA9,0xDC50,0xDC45,0xDC37,0xDC25,0xDC2C,0xDC3F,0xDC34,0xDC29,
- 0xDC1E,0xDC3D,0xDEED,0xDD66,0xDEF3,0xDEEA,0xDEEB,0xDCCC,0xDCCE,0xDCD0,
- 0xDCE3,0xDCE0,0xDCD1,0xDCDC,0xDCDD,0xDCF0,0xDCDB,0xDCE5,0xDCF1,0xDCC9,
- 0xDCE8,0xDCE7,0xDCC8,0xDCDE,0xDCCD,0xDCC5,0xDCC6,0xDCE4,0xDCC3,0xDEFB,
- 0xDEFC,0xDEFE,0xDF03,0xDF00,0xDEFD,0xDF05,0xDF13,0xDFA7,0xDFB4,0xDC70,
- 0xDC74,0xDC71,0xDC75,0xDC7D,0xDC73,0xDCC4,0xDCC3,0xDCDE,0xDCDD,0xDD11,
- 0xDD0F,0xDD10,0xDDC3,0xDDC2,0xDDCA,0xDDC1,0xDE23,0xDFB1,0xDC24,0xDC11,
- 0xDC25,0xDC0A,0xDC1F,0xDC20,0xDC14,0xDC28,0xDC03,0xDC12,0xDC0B,0xDC17,
- 0xDE11,0xDD49,0xDD89,0xDD90,0xDD8F,0xDD96,0xDD95,0xDD93,0xDDED,0xDDF0,
- 0xDFDE,0xDE85,0xDE77,0xDE7A,0xDE84,
- /* plane 7, row 18 */
- 1 | (94 << 8), /* first, last */
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD87E,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0x8666,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0x45D9,0xD85C,0x45DD,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 1, /* first low-surrogate */
- 0xDE79,0xDE7D,0xDE7B,0xDEED,0xDEEC,0xDDF6,0xDD9B,0xDE9D,0xDF11,
- 0xDEC4,0xDEC8,0xDEDF,0xDEBF,0xDEB3,0xDEBA,0xDF10,0xDF06,0xDE88,0xDE9A,
- 0xDEE0,0xDECC,0xDEB5,0xDEE1,0xDEBC,0xDEC6,0xDF0B,0xDEA4,0xDE95,0xDEA3,
- 0xDEE2,0xDECD,0xDEE3,0xDEAB,0xDECB,0xDE8F,0xDDAB,0xDEA9,0xDF24,0xDEE4,
- 0xDF12,0xDEE5,0xDF67,0xDEAA,0xDEA0,0xDEE6,0xDEC1,0xDEE7,0xDF0D,0xDE86,
- 0xDEB0,0xDE8B,0xDEE8,0xDEC9,0xDF19,0xDEC0,0xDF0C,0xDEE9,0xDEEA,0xDDED,
- 0xDDE3,0xDDE4,0xDDE8,0xDDD2,0xDDE2, 0,0xDFCF,0xDFD1,0xDFC3,0xDFC9,
- 0xDFEA,0xDFB4,0xDFDC,0xDFBD,0xDFE6,0xDFC8,0xDFEC,0xDFB2,0xDFA9,0xDFD3,
- 0xDFC0,0xDFE9,0xDFD5, 0,0xDFC5, 0,0xDFCB,0xDFD0,0xDFD2,0xDFE4,
- 0xDFE8,0xDFCD,0xDFB6,0xDFAA,0xDFD4,
- /* plane 7, row 19 */
- 1 | (94 << 8), /* first, last */
- 0xD861,0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0x46FC,0xD85E,0xD87E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD87E,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD87E,
- 0xD860,0xD860,0xD860,0xD860,0xD860,
- 1, /* first low-surrogate */
- 0xDC49,0xDFC1,0xDFDD,0xDFCE,0xDDC9,0xDDCA,0xDEFD,0xDED9,0xDEFF,
- 0xDF04,0xDEFA,0xDF06,0xDF15,0xDF11,0xDF07,0xDF0B,0xDFFC,0xDFFD,0xDC6D,
- 0xDC65,0xDD14,0xDD13,0xDD0C,0xDD0B,0xDD18,0xDD22,0xDE7D,0xDE6F,0xDE75,
- 0xDE7B,0xDE80,0xDE7F,0xDE96,0xDE6D,0xDE6B,0xDE86,0xDE73,0xDE62,0xDE77,
- 0xDE81,0xDE69,0xDE82,0xDE97,0xDE84, 0,0xDE78,0xDDD0,0xDE7A,0xDE6A,
- 0xDE65,0xDE7E,0xDE94,0xDFC2,0xDFC1,0xDFF9,0xDC71,0xDC6B,0xDC6D,0xDC6F,
- 0xDC6E,0xDCF2,0xDCE8,0xDCEF,0xDCE9,0xDCEA,0xDCED,0xDCF3,0xDCE6,0xDDC9,
- 0xDDB4,0xDDB3,0xDDB9,0xDDCA,0xDDB1,0xDDB6,0xDDC7,0xDDC4,0xDDB7,0xDE6F,
- 0xDF33,0xDF32,0xDF1F,0xDDD9,0xDF2B,0xDF30,0xDF36,0xDF42,0xDF41,0xDDD8,
- 0xDCA5,0xDCAB,0xDCA9,0xDCB3,0xDCA7,
- /* plane 7, row 20 */
- 1 | (94 << 8), /* first, last */
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD87E,0x8F3A,0xD860,
- 0xD860,0xD860,0xD860,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD862,0x4907,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0x933D,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD863,0xD863,0xD863,0xD845,
- 0xD863,0xD87E,0xD863,0x49A8,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD87E,0xD863,0xD863,0xD863,0xD863,
- 1, /* first low-surrogate */
- 0xDCA0,0xDCD2,0xDCA8,0xDCB6,0xDCAC,0xDCAE,0xDCE6,0xDE65,0xDF47,
- 0xDF63,0xDF4D,0xDF5F,0xDF4B,0xDF60,0xDF49,0xDF53,0xDDDF, 0,0xDF57,
- 0xDF4E,0xDF52,0xDF54,0xDC20,0xDC22,0xDDC1,0xDDD7,0xDDD5,0xDDC4,0xDDD0,
- 0xDDBB,0xDDE2,0xDDCB,0xDDB8,0xDDBF,0xDDD8,0xDDC0,0xDDBA,0xDDB4,0xDDBC,
- 0xDDD4,0xDDED,0xDDC2,0xDDD9,0xDDCC,0xDF2F,0xDF23,0xDF96,0xDF8D,0xDF9E,
- 0xDF99,0xDC83, 0,0xDC6A,0xDC69,0xDC75,0xDC6C,0xDC80,0xDC6E,0xDC81,
- 0xDC77,0xDC76,0xDC73,0xDC70,0xDC84,0xDD19,0xDDF2, 0,0xDDEC,0xDDEB,
- 0xDDF6,0xDDEF,0xDDF4,0xDDEE,0xDDF3,0xDDED,0xDC9B,0xDC98,0xDC94,0xDC7A,
- 0xDC9A,0xDDF0,0xDD4C, 0,0xDD57,0xDD51,0xDD62,0xDD52,0xDD5C,0xDD53,
- 0xDDEF,0xDE85,0xDF2D,0xDF3E,0xDF30,
- /* plane 7, row 21 */
- 1 | (94 << 8), /* first, last */
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD87E,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD865,0xD865,0xD865,0xD865,0xD865,0x4ACA,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,
- 1, /* first low-surrogate */
- 0xDF7D,0xDFE6,0xDFF6,0xDFE4,0xDFE9,0xDFEC,0xDFF2,0xDFE8,0xDFE3,
- 0xDFEB,0xDFF0,0xDFEA,0xDFE7,0xDFFD,0xDFE5,0xDFEE,0xDFF5,0xDFF9,0xDFF1,
- 0xDFF4,0xDDF4,0xDC11,0xDCDE,0xDCD8,0xDCDD,0xDCDB,0xDCD3,0xDCE1,0xDDDE,
- 0xDDFC,0xDE28,0xDEB7,0xDEB8,0xDEC7,0xDEB2,0xDEA9,0xDEB9,0xDEBC,0xDEB3,
- 0xDED1,0xDFB0,0xDFB1,0xDFB6,0xDC04,0xDC2C,0xDCC1,0xDC9E,0xDCBA, 0,
- 0xDCD1,0xDCD3,0xDCD4,0xDCD5,0xDCC5,0xDCB6,0xDCB2,0xDCB5,0xDCC3,0xDCB9,
- 0xDCC6,0xDDD6,0xDDE0,0xDDDB,0xDDD7,0xDDDD,0xDF15,0xDF0C,0xDF0F,0xDF0E,
- 0xDEFE,0xDF04,0xDF0B,0xDF02,0xDEFF,0xDF08,0xDF10,0xDF17,0xDF13,0xDF06,
- 0xDF09,0xDC24,0xDC26,0xDC25,0xDC48,0xDCB5,0xDCD2,0xDCD5,0xDCC4,0xDCAF,
- 0xDCAD,0xDCC1,0xDCC0,0xDCCC,0xDCCD,
- /* plane 7, row 22 */
- 1 | (94 << 8), /* first, last */
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0x4B8D,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD868,0xD868,
- 0xD868,0xD868,0x4CC0,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0x4CCA,
- 0xD867,0xD867,0xD867,0xD868,0xD868,0xD867,0xD867,0xD868,0xD868,0xD868,
- 0x4D25,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0x4D4A,
- 0xD868,0x4D53,0xD868,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD840,0xD841,0xD841,0xD841,0xD841,0xD841,0xD854,
- 0xD87E,0xD841,0xD842,0xD842,0xD842,
- 1, /* first low-surrogate */
- 0xDCC3,0xDCC8,0xDCC5,0xDCBA,0xDCD0,0xDCC2,0xDCCE, 0,0xDE43,
- 0xDE42,0xDE40,0xDE31,0xDECF,0xDECE,0xDF30,0xDF34,0xDF32,0xDF43,0xDF3C,
- 0xDC11,0xDC35,0xDC34,0xDC37,0xDC31,0xDCBF,0xDCBC,0xDCC2,0xDCC9,0xDD83,
- 0xDD8B,0xDDA0,0xDD8D,0xDD8C,0xDD9A,0xDD8A,0xDD91,0xDFF1,0xDC0F,0xDC01,
- 0xDC07,0xDC0C, 0,0xDFDC,0xDFEE,0xDFF7,0xDFF2,0xDFF8,0xDFEB, 0,
- 0xDFE6,0xDFED,0xDFE9,0xDC08,0xDC00,0xDFE5,0xDFFC,0xDE61,0xDE5E,0xDE5F,
- 0,0xDE9B,0xDF16,0xDF15,0xDF20,0xDF14,0xDF1A,0xDF17,0xDF9C, 0,
- 0xDFF1, 0,0xDFF0,0xDC28,0xDC24,0xDC2A,0xDC2B,0xDCD5,0xDD04,0xDD05,
- 0xDD91,0xDD92,0xDEA6,0xDD09,0xDC22,0xDC1A,0xDC0E,0xDC1B,0xDC08,0xDCB3,
- 0xDC1C,0xDE9D,0xDC12,0xDC1E,0xDCBB,
- /* plane 7, row 23 */
- 1 | (94 << 8), /* first, last */
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD84D,0xD842,0xD842,
- 0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0xD844,0xD844,0x3605,0xD844,0xD844,0xD844,0xD844,0xD844,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD85A,
- 1, /* first low-surrogate */
- 0xDCBF,0xDCBC,0xDD08,0xDD09,0xDD63,0xDDC8,0xDF28,0xDF8E,0xDF8D,
- 0xDC43,0xDC4D,0xDC6D,0xDC42,0xDC52,0xDC51,0xDC69,0xDC50,0xDC56,0xDC6C,
- 0xDC44,0xDC45,0xDC6B, 0,0xDC68,0xDC57,0xDE2E,0xDE31,0xDE2D,0xDC8B,
- 0xDCB2,0xDC8D,0xDCA3,0xDCA4,0xDC90,0xDC89,0xDC8E,0xDC92,0xDD7B,0xDE90,
- 0xDE8F,0xDCE9,0xDCCD,0xDCC5,0xDCD0,0xDCC9,0xDCD1,0xDCC7,0xDCD2,0xDC5F,
- 0xDCE1,0xDCCC,0xDCC6,0xDCE4,0xDDA9,0xDED3,0xDEDA,0xDED2,0xDEDB,0xDF4D,
- 0xDF4E,0xDC1C,0xDCE8,0xDF6C,0xDF5F,0xDF66,0xDF64,0xDF78,0xDF65,0xDF6D,
- 0xDF61,0xDF7A,0xDC07,0xDD66,0xDD68,0xDD62,0xDED3,0xDED4,0xDED1,0xDEDC,
- 0xDF73,0xDF72,0xDC2D,0xDC2C,0xDC2F,0xDC72,0xDCB4,0xDD89,0xDCCD,0xDCA6,
- 0xDCA2,0xDCA0,0xDC46,0xDCA1,0xDC57,
- /* plane 7, row 24 */
- 1 | (94 << 8), /* first, last */
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD87E,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0x3BF0,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD851,
- 1, /* first low-surrogate */
- 0xDCA3,0xDCB1,0xDCDB,0xDCF6,0xDCDC,0xDCD6,0xDE13,0xDD9C,0xDD97,
- 0xDDD8,0xDDE4,0xDDD4,0xDDE5,0xDDDB,0xDDD0,0xDDDA,0xDDCC,0xDDDC,0xDDED,
- 0xDDD3,0xDDD1,0xDDCE,0xDDD9,0xDDDD,0xDCC6,0xDEE6,0xDEE5,0xDEE9,0xDFFF,
- 0xDFFE,0xDC0E,0xDC8C,0xDCCA,0xDCCB,0xDD1A,0xDED7,0xDECF,0xDED0,0xDEC9,
- 0xDECC,0xDED3,0xDFA4,0xDFA3,0xDE81,0xDF26,0xDEF3,0xDF27,0xDEF2,0xDEFF,
- 0xDEF5,0xDEFC,0xDF0E, 0,0xDEF6,0xDF00,0xDF23,0xDF05,0xDF25,0xDF08,
- 0xDF50,0xDD25,0xDD20,0xDD23,0xDD21,0xDDA1,0xDE69,0xDE6C,0xDE68,0xDE6B,
- 0xDECC,0xDECD,0xDC10,0xDC0D,0xDC0A,0xDC16,0xDC14,0xDC52,0xDC28,0xDC2E,
- 0xDC2C,0xDC4D,0xDC49,0xDC31,0xDC30,0xDC33,0xDC2D,0xDC36,0xDC3E,0xDC2F,
- 0xDC27,0xDC34,0xDC4C,0xDFFE,0xDC12,
- /* plane 7, row 25 */
- 1 | (94 << 8), /* first, last */
- 0xD851,0xD851,0xD850,0xD851,0xD850,0x3E02,0xD847,0xD850,0xD850,
- 0xD851,0xD851,0xD851,0x3E23,0xD851,0xD851,0xD851,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD87E,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,
- 1, /* first low-surrogate */
- 0xDC1F,0xDC17,0xDFF5,0xDC15,0xDFF7, 0,0xDF7D,0xDFFA,0xDFF9,
- 0xDC4B,0xDD9C,0xDD9D, 0,0xDEF0,0xDEF6,0xDEEF,0xDC9D,0xDC9A,0xDCA7,
- 0xDCAF,0xDCAA,0xDE64,0xDE86,0xDE75,0xDE70,0xDE84,0xDE6B,0xDE85,0xDE6C,
- 0xDF17,0xDF94,0xDF93,0xDCD2,0xDCD7,0xDCD4,0xDEA6,0xDEA7,0xDE9C,0xDE8B,
- 0xDE8D,0xDE98,0xDEB9,0xDE9B,0xDE9D,0xDE99,0xDEA8,0xDE91,0xDE87,0xDE9A,
- 0xDFA6,0xDC1F,0xDCA7,0xDCB1,0xDCB2,0xDCB7,0xDED0,0xDEB3,0xDEB5,0xDEC4,
- 0xDEC3,0xDEBC,0xDEB2,0xDEBA,0xDEBB,0xDEC2,0xDECD,0xDEBE,0xDEB7,0xDF8F,
- 0xDC03,0xDC04,0xDD71,0xDD77,0xDD74,0xDD8B,0xDD7A,0xDD51,0xDD8C,0xDD73,
- 0xDEFF,0xDEFB,0xDEFD,0xDEF0,0xDEF3,0xDEFC,0xDEF2,0xDC92,0xDC9E,0xDCAE,
- 0xDC96,0xDE14,0xDE12,0xDE13,0xDE16,
- /* plane 7, row 26 */
- 1 | (94 << 8), /* first, last */
- 0xD856,0xD856,0xD856,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD87E,
- 0xD857,0xD857,0xD858,0xD858,0xD858,0x4315,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD87E,0xD858,
- 0xD858,0xD87E,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD84F,0xD85A,0xD85B,0xD85B,0xD85B,0xD85B,0xD87E,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 1, /* first low-surrogate */
- 0xDE0F,0xDEB6,0xDEBD,0xDC8C,0xDCAE,0xDCAC,0xDCAB,0xDC99,0xDC92,
- 0xDCBB,0xDC9E,0xDC7E,0xDCAF,0xDCBC,0xDC98,0xDF01,0xDF09,0xDF06,0xDD67,
- 0xDF07,0xDF08,0xDCCF,0xDD0E,0xDD32, 0,0xDD12,0xDD16,0xDD17,0xDD1B,
- 0xDD15,0xDD31,0xDD18,0xDD1A,0xDD10,0xDD0A,0xDD09,0xDE4F,0xDD73,0xDF0F,
- 0xDF10,0xDD75,0xDF28,0xDF11,0xDF16,0xDF17,0xDF02,0xDFBB,0xDFBA,0xDFC3,
- 0xDFBC,0xDC8A,0xDC84,0xDC86,0xDCE0,0xDD17,0xDD18,0xDD1E,0xDD15,0xDDD3,
- 0xDDDA,0xDDD9,0xDFE6,0xDFF4,0xDFE1,0xDC69,0xDC40,0xDC58,0xDC6C,0xDC4D,
- 0xDD21,0xDD99,0xDDF1,0xDF68,0xDE86,0xDF5B,0xDF5C,0xDF77,0xDF2C,0xDDAD,
- 0xDF58,0xDF64,0xDF61,0xDF48,0xDF97,0xDF59,0xDF29,0xDF62,0xDF2E,0xDF68,
- 0xDF90,0xDF3A,0xDF3D,0xDF5E,0xDF46,
- /* plane 7, row 27 */
- 1 | (94 << 8), /* first, last */
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0x455D,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD87E,0xD85C,0xD85C,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85C,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD842,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0x465A,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD87E,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 1, /* first low-surrogate */
- 0xDF69,0xDF65,0xDF3E,0xDF49,0xDF56,0xDFE1,0xDF78,0xDF79,0xDF66,
- 0xDF4A,0xDF35,0xDF7A,0xDF92,0xDF60,0xDF36,0xDF51,0xDF42, 0,0xDF3F,
- 0xDF7B,0xDF5D,0xDF94,0xDF6A,0xDDB5,0xDDF2,0xDFBB,0xDC1B,0xDC1A,0xDC33,
- 0xDC17,0xDC0A,0xDC15,0xDC12,0xDC01,0xDC2D,0xDFFD,0xDC23,0xDC05,0xDC11,
- 0xDC00,0xDC1C,0xDC35,0xDC2E,0xDC36,0xDEBF,0xDC2F,0xDC0C,0xDC09,0xDC31,
- 0xDFFC,0xDC0F,0xDC18,0xDC02,0xDE00,0xDF1F,0xDF37, 0,0xDF38,0xDF2B,
- 0xDF2E,0xDF21,0xDF30,0xDF29,0xDF31,0xDDC9,0xDF01,0xDF2C,0xDF22,0xDFFF,
- 0xDC77,0xDC67,0xDC7F,0xDC7D,0xDC7B,0xDC7E,0xDD1E,0xDD1C,0xDD21,0xDD26,
- 0xDD27,0xDD29,0xDD2C,0xDD1D,0xDD2B,0xDEBF,0xDEA4,0xDEAA,0xDEAE,0xDE9F,
- 0xDED0,0xDEB1,0xDEAD,0xDE9B,0xDEB2,
- /* plane 7, row 28 */
- 1 | (94 << 8), /* first, last */
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85F,0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0x4785,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD87E,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD87E,0xD862,0xD862,0xD862,0xD862,
- 0x490B,0xD862,0xD862,0xD862,0xD862,0xD862,0xD853,0x4939,0xD862,0xD862,
- 0xD862,0x4937,0xD862,0xD862,0xD862,
- 1, /* first low-surrogate */
- 0xDEA9,0xDEB3,0xDEB4,0xDEBA,0xDEA5,0xDEB7,0xDEAC,0xDECB,0xDECF,
- 0xDFC6,0xDC01,0xDFFF,0xDFFD,0xDC77,0xDC78,0xDC76,0xDCF7,0xDDCC, 0,
- 0xDDD4,0xDDD7,0xDDD5,0xDDD6,0xDDD3,0xDF5D,0xDF55,0xDCE0,0xDD48,0xDCEE,
- 0xDCDB,0xDCE7,0xDCD6,0xDCE5,0xDCE1,0xDCDD,0xDCE2,0xDE70,0xDE66,0xDE6F,
- 0xDE6E,0xDF81,0xDF69,0xDF6E,0xDF6D,0xDF6C,0xDF84,0xDF85,0xDF71,0xDF73,
- 0xDF6A,0xDF6F,0xDF7B,0xDD6A,0xDD7C,0xDD7D,0xDD81,0xDDFA,0xDE05,0xDDEB,
- 0xDDFB,0xDDE9,0xDDEF,0xDDFC,0xDDE7,0xDDE1,0xDDEE,0xDDFD,0xDF32,0xDFA7,
- 0xDFB5,0xDFB1,0xDFB9,0xDFA8,0xDFB3,0xDDE6,0xDC8A,0xDC91,0xDC8D,0xDC99,
- 0,0xDC9A,0xDC9B,0xDC92,0xDC8F,0xDCAB,0xDCDB, 0,0xDE75,0xDE31,
- 0xDE38, 0,0xDE35,0xDE69,0xDE3B,
- /* plane 7, row 29 */
- 1 | (94 << 8), /* first, last */
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD87E,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0x4A6B,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0x4ACD,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,
- 1, /* first low-surrogate */
- 0xDE3D,0xDE6C,0xDE79,0xDE3C,0xDE3E,0xDC97,0xDCA5,0xDCA2,0xDC9D,
- 0xDCA1,0xDD68,0xDD6F,0xDD6D,0xDD72,0xDD75,0xDD77,0xDD79,0xDEB5,0xDEEA,
- 0xDEAB,0xDF43,0xDF41,0xDF42,0xDC09,0xDC08,0xDC06,0xDC01,0xDC03,0xDC00,
- 0xDC04,0xDC0A,0xDC0E,0xDC0D,0xDC07,0xDC0F,0xDC14,0xDC02,0xDC15,0xDC0C,
- 0xDC10,0xDC05,0xDCFD,0xDCFF,0xDD04,0xDD00,0xDD09,0xDE2B,0xDDF7,0xDE31,
- 0xDEDB,0xDEC5,0xDED3,0xDECE, 0,0xDEC9,0xDEBF,0xDECB,0xDEC0,0xDED0,
- 0xDED4,0xDFC1,0xDFB9,0xDFBB,0xDFC3,0xDFC9,0xDC07,0xDC2D,0xDCF8,0xDCE1,
- 0xDCFA,0xDCEF,0xDCFD, 0,0xDCEB,0xDCF1,0xDCED,0xDCFE,0xDDF8,0xDE03,
- 0xDDEE,0xDDE8,0xDE01,0xDEEC,0xDF22,0xDF14,0xDF34,0xDF2F,0xDF39,0xDF41,
- 0xDF3C,0xDF49,0xDF58,0xDF3A,0xDF42,
- /* plane 7, row 30 */
- 1 | (94 << 8), /* first, last */
- 0xD865,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD87E,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0x4C4D,0xD867,0xD867,0xD867,0xD867,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD87E,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD869,0xD869,0xD869,0xD869,0xD869,0xD845,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD842,0x3510,0xD842,
- 1, /* first low-surrogate */
- 0xDF3F,0xDC22,0xDC23,0xDC4A,0xDCDC,0xDCD9,0xDCDB,0xDCE2,0xDE07,
- 0xDCDF,0xDCE0,0xDCD7,0xDE4F,0xDE46,0xDE53,0xDE55,0xDE4E,0xDE4A,0xDE4C,
- 0xDE63,0xDF51,0xDF53,0xDF58,0xDF4D,0xDF5A,0xDF49,0xDF5D,0xDC12,0xDC3C,
- 0xDCD1,0xDCDF,0xDCD6,0xDCD8,0xDCE0,0xDCD9,0xDDB1,0xDDAC,0xDDAA,0xDDEE,
- 0xDDBD, 0,0xDDC3,0xDDA8,0xDDAE,0xDDAB,0xDC1D,0xDC27,0xDC38,0xDC12,
- 0xDC48,0xDC2B,0xDC16,0xDC19,0xDC3D,0xDC23,0xDC2A,0xDE64,0xDEAD,0xDEAC,
- 0xDE14,0xDEB1,0xDEAF,0xDF2C,0xDF24,0xDF25,0xDF28,0xDFF9,0xDFF7,0xDFFD,
- 0xDFFE,0xDC39,0xDC33,0xDCD7,0xDCD8,0xDCE4,0xDCA1,0xDD0E,0xDD3B,0xDD44,
- 0xDD42,0xDD94,0xDD93,0xDDD5,0xDEA7,0xDC31,0xDC23,0xDC28,0xDC27,0xDCC6,
- 0xDDA3,0xDE21,0xDC1B, 0,0xDCC1,
- /* plane 7, row 31 */
- 1 | (94 << 8), /* first, last */
- 0xD842,0xD842,0xD842,0xD842,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0x367B,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD847,0x381D,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84B,0x64F5,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0x3B27,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD84D,0xD84D,0xD84D,
- 1, /* first low-surrogate */
- 0xDCC3,0xDD2A,0xDD69,0xDE27,0xDCB6,0xDCA7,0xDCA4,0xDCA6,0xDC90,
- 0xDC9E,0xDC94,0xDCA8,0xDCA5,0xDCA2,0xDC91, 0,0xDCBC,0xDCBD,0xDCB4,
- 0xDCB0,0xDCE4,0xDD45,0xDD4B,0xDD7E,0xDD7F,0xDD7D,0xDDC3,0xDCFC,0xDCF7,
- 0xDCF0,0xDCED,0xDCF1,0xDCF8,0xDEE9,0xDCEB, 0,0xDF90,0xDF8D,0xDF86,
- 0xDF91,0xDF8A,0xDC08,0xDC50,0xDEEA,0xDEE6,0xDEE2,0xDEE7,0xDEED,0xDEE1,
- 0xDC34,0xDC76,0xDC75,0xDC73,0xDCB5,0xDD90,0xDD92,0xDCE1,0xDCDF,0xDCD5,
- 0xDCF2,0xDCFE,0xDD13,0xDD2E,0xDE19,0xDE08, 0,0xDE05,0xDE09,0xDE06,
- 0xDE03,0xDDFD,0xDDFC,0xDE02,0xDE42,0xDC1A,0xDC11,0xDC15,0xDC16,0xDCCC,
- 0xDCCF,0xDCD0,0xDD22,0xDD1E,0xDD21,0xDEE5, 0,0xDF54,0xDEEF,0xDF53,
- 0xDF51,0xDFAD,0xDF67,0xDF68,0xDFA4,
- /* plane 7, row 32 */
- 1 | (94 << 8), /* first, last */
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD87E,0xD852,0xD852,
- 0xD852,0x3FCF,0xD853,0xD853,0xD853,0x3FCD,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD854,
- 1, /* first low-surrogate */
- 0xDF77,0xDF89,0xDF44,0xDF8B,0xDF79,0xDF5B,0xDF43,0xDF57,0xDF4A,
- 0xDF7C,0xDF46,0xDF7B,0xDF56,0xDDA8,0xDE76,0xDE72,0xDED6,0xDED8,0xDED1,
- 0xDC22,0xDC20,0xDC23,0xDC1E,0xDC6E,0xDCA3,0xDC77,0xDCA6,0xDC6D,0xDCA2,
- 0xDC7C,0xDC84,0xDC68,0xDC74,0xDC86,0xDCA5,0xDC7B,0xDC7A,0xDC69,0xDC72,
- 0xDC76,0xDC4A,0xDC37,0xDC2A,0xDC2D,0xDC46,0xDC28,0xDC26,0xDC42,0xDC2C,
- 0xDC38,0xDC2B,0xDC33,0xDC45,0xDD39,0xDEF9,0xDEFA,0xDCB8,0xDCB7,0xDCBB,
- 0xDCB9,0xDCB4,0xDE6F,0xDE87,0xDE8F,0xDEA2,0xDEA3,0xDD31,0xDF9B,0xDF9D,
- 0xDFCE, 0,0xDEBD,0xDEBF,0xDE92, 0,0xDEEF,0xDEC9,0xDFA4,0xDFA8,
- 0xDFAA,0xDC28,0xDC24,0xDC25,0xDC26,0xDCA9,0xDCBA,0xDCBE,0xDCBC,0xDCC0,
- 0xDEF0,0xDEDF,0xDEE0,0xDEED,0xDEDB,
- /* plane 7, row 33 */
- 1 | (94 << 8), /* first, last */
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0x4182,0xD856,0xD856,0xD856,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD87E,0xD857,
- 0xD857,0x4252,0xD857,0xD857,0xD857,0xD857,0xD87E,0xD857,0xD857,0xD857,
- 0xD857,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xffff,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0x7F80,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 1, /* first low-surrogate */
- 0xDEFB,0xDEB9,0xDEDA,0xDEEB,0xDEEC,0xDD9A,0xDD9F,0xDD9B,0xDD97,
- 0xDDA1,0xDF0F,0xDF05,0xDF48, 0,0xDCBC,0xDCBA,0xDEBF,0xDD01,0xDCE8,
- 0xDCEF,0xDCE4,0xDCE6,0xDD02,0xDCEB,0xDCE0,0xDCED,0xDCD9,0xDD64,0xDD14,
- 0xDCEE, 0,0xDD13,0xDCF9,0xDCF8,0xDF25,0xDD69,0xDF19,0xDF20,0xDF43,
- 0xDF3F,0xDD45,0xDD4C,0xDD49,0xDD4F,0xDD41,0xDD3E,0xDD4D,0xDD52,0xDD4A,
- 0xDD4E,0xDD73,0xDD42,0xDD51,0xDD55,0xDD50,0xDD6C, 0,0xDD6A,0xDD53,
- 0xDD68,0xDE55,0xDE56,0xDF1C,0xDF1D, 0,0xDF1E,0xDF23,0xDF1F,0xDFE1,
- 0xDFCD,0xDFCB,0xDFCC,0xDFC8,0xDFC9,0xDC9B,0xDC94,0xDC92,0xDC96,0xDC93,
- 0xDC95,0xDC8F,0xDD1D,0xDD22,0xDD21,0xDDE9,0xDDEF,0xDDE0,0xDDE6,0xDDE4,
- 0xDC29,0xDC2C,0xDC76,0xDC83,0xDC78,
- /* plane 7, row 34 */
- 1 | (94 << 8), /* first, last */
- 0xD85A,0xD851,0xD85A,0x4451,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85B,0xD85B,0xD85B,0xD85C,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0x455A,0xD85B,0xD85B,0xD85B,0xD87E,0xD85B,
- 0xD85B,0xD85B,0xD85C,0xD85C,0xD85B,0xD85C,0xD85B,0xD85B,0xD85B,0xD85C,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85C,0xD85C,
- 0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD87E,0xD87E,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85A,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 1, /* first low-surrogate */
- 0xDC3C,0xDC43,0xDC7A, 0,0xDCF2,0xDD9E,0xDD9B,0xDD9A,0xDDF6,
- 0xDDF5,0xDEA5,0xDE93,0xDEA4,0xDE82,0xDEC7,0xDFB7,0xDC1D,0xDFE2,0xDFD7,
- 0xDFE3,0xDFE4,0xDFBC,0xDFD3, 0,0xDF5A,0xDFD2,0xDF2D,0xDDAF,0xDFC4,
- 0xDFD0,0xDFE5,0xDC05,0xDC07,0xDFE6,0xDC1B,0xDFE7,0xDFD8,0xDFBE,0xDC17,
- 0xDFB4,0xDFD9,0xDFE8,0xDFAD,0xDFAF,0xDFC8,0xDFE9,0xDFEA,0xDDFE,0xDDFB,
- 0xDE00,0xDC72,0xDC70,0xDC46,0xDC59,0xDC5E,0xDC48,0xDC4F,0xDC71,0xDC60,
- 0xDC5F,0xDC6E,0xDC73,0xDDC0,0xDDBF,0xDC47,0xDC6D,0xDC6F,0xDC81,0xDC6C,
- 0xDC78,0xDC83,0xDC49,0xDC68,0xDC74,0xDC63,0xDC6A,0xDC85,0xDC65,0xDC62,
- 0xDCC8,0xDDD0,0xDDD4,0xDDD1,0xDE03,0xDF42,0xDF63,0xDF56,0xDF5B,0xDF55,
- 0xDF50,0xDF2D,0xDF44,0xDF48,0xDF45,
- /* plane 7, row 35 */
- 1 | (94 << 8), /* first, last */
- 0xD85D,0x4665,0xD85D,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD845,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0x8D01,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD861,0xD861,0xD861,0xD861,0x48AF,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,
- 1, /* first low-surrogate */
- 0xDF82, 0,0xDF62,0xDC85,0xDC8D,0xDD36,0xDD2F,0xDD31,0xDD37,
- 0xDEA7,0xDED9,0xDEF0,0xDEF2,0xDEFD,0xDEE8,0xDEEB,0xDEEE,0xDEE0,0xDEE9,
- 0xDEED,0xDED6,0xDEF8,0xDED4,0xDEDF,0xDEE7,0xDED8,0xDEE3,0xDEEF,0xDF0F,
- 0xDFCA,0xDD46,0xDC05,0xDC0C,0xDC0D,0xDC7F,0xDC80,0xDC81,0xDD01,0xDD03,
- 0xDDF2,0xDDE2,0xDDE3,0xDDDE,0xDDE9,0xDDE8,0xDDE0,0xDE01,0xDDF5,0xDDE4,
- 0,0xDE77,0xDF74,0xDF6F,0xDF62,0xDF61,0xDF6D,0xDF73,0xDF6A,0xDF69,
- 0xDD12,0xDD2D,0xDD14,0xDD0F,0xDD29,0xDD16,0xDD03,0xDD46,0xDD5C,0xDD11,
- 0xDD06,0xDCDC,0xDD2B,0xDD2A,0xDD2C,0xDD27,0xDE7A,0xDF9C,0xDF99,0xDF95,
- 0xDF8B,0xDF98,0xDF96,0xDC32,0xDDA4,0xDDAA,0xDE1B, 0,0xDE0D,0xDE1C,
- 0xDE0A,0xDE20,0xDE08,0xDE1A,0xDE13,
- /* plane 7, row 36 */
- 1 | (94 << 8), /* first, last */
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0x4941,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0x4A29,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0x4A2A,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0x4A96,0xD864,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0x4B12,
- 1, /* first low-surrogate */
- 0xDE11,0xDF5D,0xDF5F,0xDF5E,0xDF60,0xDFBB,0xDFBC,0xDFC1,0xDFC0,
- 0xDFC8,0xDFCE,0xDCA7,0xDCB2,0xDCB6,0xDCA5,0xDCBA,0xDCB5,0xDCAD,0xDCA4,
- 0xDCD3,0xDCB0,0xDCB1,0xDD1D,0xDE8D, 0,0xDE91,0xDEB6,0xDEB7,0xDEBD,
- 0xDEBC,0xDE96,0xDE94,0xDEA0,0xDCA8,0xDCA6,0xDD84,0xDD96,0xDD88,0xDD9A,
- 0xDED1,0xDECF,0xDF50,0xDF51,0xDF4E,0xDF80,0xDF81,0xDC1B,0xDC17,0xDC20,
- 0xDC19,0xDC1A,0xDC21,0xDC1E,0xDC18,0xDC1D, 0,0xDD2D,0xDD24,0xDD27,
- 0xDD2E,0xDD25,0xDD1C,0xDD19, 0,0xDD23,0xDD1F,0xDD1A,0xDD2B,0xDD1E,
- 0xDDE0,0xDE33,0xDEE6,0xDEFC,0xDEE5,0xDEF8,0xDEF6,0xDEEA,0xDEF2,0xDEED,
- 0xDEEB,0xDEF0,0xDEF1,0xDFC6,0xDFC8,0xDFCE,0xDFC5, 0,0xDFCB,0xDD13,
- 0xDD14,0xDD07,0xDD0C,0xDE1A,
- /* plane 7, row 37 */
- 1 | (94 << 8), /* first, last */
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD87E,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,
- 1, /* first low-surrogate */
- 0xDE17,0xDE06,0xDE16,0xDE07,0xDE10,0xDE09,0xDE19,0xDE15,0xDF6E,
- 0xDF3B,0xDF3E,0xDF6C,0xDF65,0xDF64,0xDF59,0xDF7C,0xDF70,0xDF79,0xDC2C,
- 0xDC52,0xDC51,0xDC4C,0xDD00,0xDD10,0xDD13,0xDCFF,0xDCFE,0xDCED,0xDE5A,
- 0xDE58,0xDE5C,0xDEDA,0xDF78,0xDF5E,0xDF67,0xDF64,0xDC13,0xDC23,0xDC41,
- 0xDC3F,0xDC40,0xDCED,0xDCE3,0xDCEA,0xDCF0,0xDCE6,0xDCE9,0xDCF1,0xDCEE,
- 0xDDD4,0xDDD1,0xDDDC,0xDDEC,0xDC69,0xDC6D,0xDC57,0xDC66,0xDCF9,0xDC4A,
- 0xDC60,0xDC56,0xDC59,0xDC4C,0xDC6A,0xDC62,0xDC63,0xDC70,0xDC5F,0xDE0D,
- 0xDC64,0xDC5D,0xDC68,0xDC9F,0xDEBA,0xDEB8,0xDEBC,0xDEB9,0xDEB4,0xDF3B,
- 0xDF2D,0xDF38,0xDF2F,0xDF32,0xDC41,0xDCCB,0xDCDE,0xDCDD,0xDCDA,0xDCDC,
- 0xDD10,0xDD4F,0xDD49,0xDD98,0xDD96,
- /* plane 7, row 38 */
- 1 | (94 << 8), /* first, last */
- 0xD869,0xD869,0xD840,0xD869,0xD869,0xD869,0xD840,0xD840,0xD841,
- 0xD841,0xD841,0xD841,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD844,
- 0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xD87E,0xD845,0xD845,0xD845,0xD845,0xD845,0x367E,0x58E1,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD846,0xD846,0xD869,0xD846,0xD87E,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD849,0xD849,0xD849,0xD849,0xD852,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 1, /* first low-surrogate */
- 0xDD97,0xDDC7,0xDD9C,0xDDDA,0xDDD8,0xDEA8,0xDD0A,0xDD9D,0xDCCB,
- 0xDD38,0xDD39,0xDDA6,0xDC23,0xDC22,0xDC21,0xDDCE,0xDF92,0xDF91,0xDCEC,
- 0xDCE0,0xDCED,0xDD08,0xDCE5,0xDCEE,0xDCE4,0xDCEB,0xDCE3,0xDCEA,0xDD0A,
- 0xDC59,0xDCD1,0xDCE3,0xDCD4,0xDCD0,0xDCD9, 0, 0,0xDCDA,0xDCD3,
- 0xDD4C,0xDD4D,0xDD7C,0xDD80,0xDDCC,0xDCFF,0xDD08,0xDD08,0xDD01,0xDC6B,
- 0xDD00,0xDEED,0xDEF3,0xDEEE,0xDEF1,0xDEF0,0xDEDE,0xDF51,0xDF82,0xDFA9,
- 0xDF98,0xDF9D,0xDF9A,0xDF9E,0xDF9F,0xDFA6,0xDFA7,0xDC09,0xDC2F,0xDD71,
- 0xDD6D,0xDD72,0xDEEF,0xDEF0,0xDC3B,0xDC39,0xDC3C,0xDC38,0xDFFD,0xDC3A,
- 0xDC78,0xDC79,0xDC77,0xDD98,0xDD9C,0xDD99,0xDD9A,0xDD11,0xDD0A,0xDCFD,
- 0xDD0F,0xDD19,0xDD03,0xDD15,0xDD0C,
- /* plane 7, row 39 */
- 1 | (94 << 8), /* first, last */
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD87E,0xD84A,
- 0xD84A,0xD84A,0x39A7,0xD84A,0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0x4320,0xD858,0xD84E,0xD84E,0xD84E,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD844,0xD841,
- 0xD851,0xD851,0xD851,0xD851,0xD852,0xD87E,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD853,0xD853,
- 1, /* first low-surrogate */
- 0xDD09,0xDD12,0xDD34,0xDD2A,0xDD08,0xDD2D,0xDD28,0xDCB1,0xDD2C,
- 0xDD26,0xDD33, 0,0xDE1A,0xDE1E,0xDE07,0xDE2C,0xDE32,0xDE28,0xDE31,
- 0xDE29,0xDE30,0xDE2A,0xDE44,0xDE2E,0xDCD1,0xDD24,0xDEF7,0xDEF4,0xDEF3,
- 0xDEF8,0xDFB5,0xDF96,0xDF98,0xDF95,0xDF91,0xDFB2,0xDF9E,0xDF59,0xDFA3,
- 0xDF9A,0xDF9B, 0,0xDD83,0xDEDA,0xDEDF,0xDF16,0xDC1F,0xDC2D,0xDC2E,
- 0xDC2B,0xDCB8,0xDCBB,0xDCBF,0xDCBA,0xDCD5,0xDCE3,0xDCC1,0xDCBE,0xDCBD,
- 0xDCB4,0xDCC2,0xDCA1,0xDC87,0xDCD7,0xDCCA,0xDCB5,0xDCDA,0xDCD9,0xDCB3,
- 0xDCD8,0xDC67,0xDC71,0xDC62,0xDC5C,0xDC68,0xDC52,0xDC56,0xDD09,0xDC42,
- 0xDDA0,0xDF00,0xDEFE,0xDEFF,0xDCCB,0xDD28,0xDCCA,0xDCA9,0xDCC8,0xDEB4,
- 0xDEAC,0xDEAA,0xDEA9,0xDC0E,0xDCE9,
- /* plane 7, row 40 */
- 1 | (94 << 8), /* first, last */
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD855,0xD855,0xD855,0xD845,0xD855,0xD855,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0x7CE9,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD87E,0xD858,0xD858,
- 0xD858,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD85A,
- 0xD85A,0xD85A,0x81CB,0xD85A,0xD85A,
- 1, /* first low-surrogate */
- 0xDCED,0xDCF2,0xDCEB,0xDCEE,0xDEE8,0xDEDB,0xDED7,0xDEE3,0xDEE5,
- 0xDEEE,0xDED5,0xDFB3,0xDC2D,0xDCC1,0xDCC3,0xDF0C,0xDF0E,0xDF07,0xDF17,
- 0xDF09,0xDF16,0xDF9A,0xDF9C,0xDDB4,0xDDB7,0xDDB3,0xDD4E,0xDF13,0xDF14,
- 0xDCE6,0xDCDC,0xDCE8,0xDCE5,0xDE2E,0xDE2C,0xDE2B,0xDECD,0xDD3D,0xDD32,
- 0xDD2D,0xDD45,0xDD3E,0xDD50,0xDD25,0xDD53,0xDD23,0xDF37,0xDF38,0xDF47,
- 0xDF3D,0xDF3E,0xDF49,0xDF4A,0xDF1D, 0,0xDDA5,0xDD8C,0xDD8D,0xDD89,
- 0xDD96,0xDD85,0xDD8F,0xDD77,0xDD8E,0xDD82,0xDD8A,0xDD88,0xDD7B,0xDD97,
- 0xDD7D,0xDD79,0xDE59,0xDF24,0xDF2D,0xDF2E,0xDF2B,0xDD76,0xDFDA,0xDFD8,
- 0xDFD6,0xDC87,0xDCA0,0xDD28,0xDD25,0xDD1F,0xDDF3,0xDDF7,0xDDF6,0xDC2B,
- 0xDC5B,0xDC48, 0,0xDC5C,0xDC6D,
- /* plane 7, row 41 */
- 1 | (94 << 8), /* first, last */
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85C,
- 0xD85B,0xD85B,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85B,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0x4565,0xD85C,0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85E,0xD85E,
- 1, /* first low-surrogate */
- 0xDC9D,0xDC99,0xDC8C,0xDC91,0xDC9B,0xDC9A,0xDC9C,0xDC95,0xDC8D,
- 0xDC96,0xDCA5,0xDD2A,0xDDA1,0xDDA4,0xDDAD,0xDEA9,0xDEAE,0xDEB0,0xDC0D,
- 0xDF63,0xDF71,0xDC51,0xDC54,0xDC2A,0xDC44,0xDC55,0xDC99,0xDC39,0xDC3F,
- 0xDC3E,0xDC4F,0xDC4D,0xDC35,0xDC40,0xDC31,0xDFD5,0xDC2B,0xDC33,0xDC41,
- 0xDC56,0xDC4C,0xDC46,0xDC3C,0xDC45,0xDC43,0xDC3D,0xDC70,0xDC57,0xDC38,
- 0xDC58, 0,0xDC37,0xDE07,0xDE06,0xDE09,0xDCAB,0xDC90,0xDC93,0xDCBC,
- 0xDCA9,0xDC9E,0xDCBF,0xDCAA,0xDC91,0xDCA4,0xDC9A,0xDCA7,0xDCA1,0xDC9C,
- 0xDCA2,0xDC9B,0xDC9F,0xDC94,0xDC8F,0xDEF0,0xDC92,0xDC95,0xDCA5,0xDCA6,
- 0xDE04,0xDF9C,0xDF79,0xDF7A,0xDF7E,0xDF7B,0xDF71,0xDF81,0xDF7F,0xDF7C,
- 0xDF7D,0xDF75,0xDF76,0xDC8E,0xDC8F,
- /* plane 7, row 42 */
- 1 | (94 << 8), /* first, last */
- 0xD85E,0xD85E,0xD85E,0xD85E,0x4704,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD845,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0x4764,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD860,0xD860,0xD860,0x4823,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD858,0xD860,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,
- 1, /* first low-surrogate */
- 0xDD3E,0xDD3F,0xDD40,0xDD41, 0,0xDF0D,0xDF17,0xDF10,0xDF0E,
- 0xDEEA,0xDF1D,0xDF03,0xDF22,0xDF04,0xDF00,0xDF20,0xDF21,0xDF23,0xDF13,
- 0xDF09,0xDF11,0xDFCB,0xDFCE,0xDFD0,0xDFCC,0xDFD4,0xDCDB,0xDC09,0xDC0B,
- 0xDC85,0xDD06,0xDD0D, 0,0xDD14,0xDD0F,0xDE09,0xDE14,0xDE0B,0xDDFC,
- 0xDE04,0xDE0A,0xDE00,0xDDFD,0xDE07,0xDE06,0xDE11,0xDE79,0xDE78,0xDF88,
- 0xDF80,0xDF8B,0xDD59,0xDD61,0xDD75, 0,0xDD55,0xDD5B,0xDD5F,0xDD52,
- 0xDD62,0xDD72,0xDD5D,0xDD68,0xDD71,0xDD65,0xDD66,0xDD67,0xDD76,0xDD4C,
- 0xDD60,0xDD74,0xDD50,0xDE8A,0xDE81,0xDE86,0xDE7F,0xDE80,0xDFA5,0xDFA7,
- 0xDFA8,0xDFA6,0xDFAF,0xDD95,0xDFB1,0xDC35,0xDC39,0xDDC3,0xDE30,0xDE2A,
- 0xDE2B,0xDE2D,0xDE2E,0xDE2C,0xDE23,
- /* plane 7, row 43 */
- 1 | (94 << 8), /* first, last */
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD863,
- 0xD863,0xD863,0x95D9,0xD863,0xD863,0xD863,0xD863,0xD863,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD854,0xD864,0xD87E,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD842,0xD87E,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,
- 1, /* first low-surrogate */
- 0xDE21,0xDE22,0xDF6C,0xDF81,0xDF8F,0xDF80,0xDFD0,0xDFCD,0xDFD5,
- 0xDFD4,0xDCD1,0xDCBE,0xDCCB,0xDCCE,0xDCBD,0xDCD0,0xDF04,0xDED5,0xDED0,
- 0xDED3,0xDEFB,0xDED8,0xDED1,0xDEFD,0xDED9,0xDED6,0xDEE6,0xDEF9,0xDDA1,
- 0xDD9D,0xDD9E, 0,0xDEFF,0xDF5F,0xDF57,0xDF60,0xDF59,0xDC2C,0xDC25,
- 0xDC27,0xDC30,0xDC24,0xDC26,0xDC2D,0xDC2E,0xDC29,0xDC31,0xDD45,0xDD47,
- 0xDD52,0xDD4A,0xDD50,0xDD46,0xDD4F,0xDD4E,0xDD53,0xDF21,0xDF09,0xDF1A,
- 0xDF1B,0xDF15,0xDF10,0xDDF9,0xDF14,0xDF0E,0xDF12,0xDF0B,0xDFCF,0xDFD2,
- 0xDFD0,0xDFD4,0xDFD3,0xDFD1,0xDF18,0xDDFB,0xDC09,0xDD1C,0xDD27,0xDD25,
- 0xDD1B,0xDD29,0xDD1F,0xDD30,0xDD24,0xDD28,0xDD19,0xDD2F,0xDE24,0xDE21,
- 0xDE25,0xDE26,0xDE27,0xDE76,0xDF66,
- /* plane 7, row 44 */
- 1 | (94 << 8), /* first, last */
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD85C,0xD865,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD869,
- 1, /* first low-surrogate */
- 0xDF75,0xDF69,0xDF7E,0xDF8F,0xDF74,0xDE10,0xDFAD,0xDC2B,0xDC2A,
- 0xDC58,0xDD22,0xDD1D,0xDD2B,0xDD2C,0xDD2D,0xDD33,0xDD1B,0xDD27,0xDD2A,
- 0xDD28,0xDD3B,0xDE7E,0xDE71,0xDE79,0xDE78,0xDE70,0xDE6D,0xDE7D,0xDE75,
- 0xDE76,0xDEDE,0xDF66,0xDF83,0xDF87,0xDF7B,0xDF89,0xDF86,0xDF82,0xDF7C,
- 0xDF81,0xDC43,0xDC45,0xDCF7,0xDCF9,0xDCFA,0xDE05,0xDDFE,0xDE0F,0xDDFF,
- 0xDDFA,0xDE09,0xDE20,0xDE0C,0xDE3C,0xDE22,0xDDF8,0xDE0A,0xDE08,0xDDF7,
- 0xDC8E,0xDC77,0xDC8B,0xDCB4,0xDC8A,0xDC9A,0xDC79,0xDC83,0xDC7F,0xDCA1,
- 0xDC8F,0xDCA3,0xDC81,0xDC94,0xDC7E,0xDC82,0xDC90,0xDCA5,0xDCAD,0xDC9D,
- 0xDE67,0xDE69,0xDECB,0xDEC8,0xDED1,0xDF40,0xDF4B,0xDF49,0xDF46,0xDF3E,
- 0xDF43,0xDF3F,0xDFA5,0xDFA7,0xDC4E,
- /* plane 7, row 45 */
- 1 | (94 << 8), /* first, last */
- 0xD869,0xD849,0xD869,0xD869,0xD869,0xD869,0xD869,0xD87E,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD840,0xD841,0xD841,0x34B9,
- 0xD87E,0xD841,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD844,0xD844,
- 0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD845,0xD845,0xD864,0xD846,
- 0xD846,0xD846,0xD846,0xD847,0xD847,0xD847,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD849,0xD849,0xD849,0xD849,0xD849,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD841,0xD84A,0xD84A,0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84C,0xD866,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD84D,0xD84D,0xD84D,
- 1, /* first low-surrogate */
- 0xDC4D,0xDD9B,0xDCE5,0xDCE1,0xDCE2,0xDD16,0xDD14,0xDE1B,0xDD59,
- 0xDD51,0xDD5F,0xDD4A,0xDD57,0xDD58,0xDDCA,0xDDDB,0xDDDE,0xDDE0,0xDDE1,
- 0xDDDF,0xDDE2,0xDDE3,0xDE92,0xDEBF,0xDEBE,0xDD0B,0xDC52,0xDC4E, 0,
- 0xDC13,0xDDA7,0xDC26,0xDC27,0xDCC6,0xDD0B,0xDD6A,0xDD78,0xDD1A,0xDD16,
- 0xDD19,0xDD17,0xDD1B,0xDD18,0xDD20,0xDE37,0xDCEC,0xDD81,0xDE3D,0xDD0F,
- 0xDDAD,0xDEFB,0xDF52,0xDFAF,0xDFB7,0xDFB2,0xDD78,0xDDAC,0xDF00,0xDEFE,
- 0xDF02,0xDEFD,0xDF03,0xDC40,0xDC43,0xDC42,0xDCB7,0xDDA2,0xDD00,0xDD35,
- 0xDD41,0xDD05,0xDC53,0xDD50,0xDD4E,0xDD53,0xDE53,0xDE50,0xDE57,0xDE5F,
- 0xDE55,0xDEEA,0xDC26,0xDC30,0xDC2A,0xDC28,0xDC2C,0xDC2D,0xDCD4,0xDF07,
- 0xDF58,0xDF59,0xDFC5,0xDFCD,0xDFC7,
- /* plane 7, row 46 */
- 1 | (94 << 8), /* first, last */
- 0xD84D,0x3C4B,0xD84E,0xD869,0xD84E,0xD84F,0xD842,0xD87E,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD841,0xD851,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD855,0xD855,0xD855,
- 0x40F1,0xD855,0xD855,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,
- 1, /* first low-surrogate */
- 0xDFE8, 0,0xDD32,0xDE97,0xDEDE,0xDC32,0xDEC8,0xDD15,0xDCF1,
- 0xDCF0,0xDCEC,0xDD09,0xDCF9,0xDCF5,0xDCFE,0xDC74,0xDC81,0xDC7C,0xDC75,
- 0xDC89,0xDC82,0xDC97,0xDC86,0xDC7D,0xDC93,0xDC9C,0xDC76,0xDC80,0xDD45,
- 0xDEA1,0xDF03,0xDCC9,0xDCCD,0xDCD0,0xDEAD,0xDEC5,0xDFA2,0xDCEC,0xDCF6,
- 0xDCF3,0xDEF3,0xDEFA,0xDEF9,0xDEF5,0xDEF4,0xDEF8,0xDFB6,0xDFB4,0xDC32,
- 0xDCCD,0xDCC8,0xDCCE,0xDCCA,0xDF2A,0xDF21,0xDF1D,0xDDBD,0xDDBE,0xDDC2,
- 0,0xDDC9,0xDF1F,0xDCF1,0xDCED,0xDCF2,0xDCE0,0xDCF7,0xDE30,0xDE37,
- 0xDE31,0xDE36,0xDEC8,0xDD6D,0xDD69,0xDD7D,0xDD61,0xDD70,0xDD71,0xDD73,
- 0xDD76,0xDD75,0xDD78,0xDD79,0xDD64,0xDD6E,0xDF51,0xDF4F,0xDF22,0xDDAF,
- 0xDDAA,0xDDA3,0xDD9D,0xDD9C,0xDDA1,
- /* plane 7, row 47 */
- 1 | (94 << 8), /* first, last */
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85B,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 1, /* first low-surrogate */
- 0xDDB6,0xDDAC,0xDDA2,0xDDA7,0xDDB0,0xDDA9,0xDDC3,0xDF31,0xDF32,
- 0xDF33,0xDF34,0xDF37,0xDF3C,0xDFD9,0xDFDD,0xDFDE,0xDFDF,0xDFE0,0xDCA5,
- 0xDCAA,0xDCA2,0xDCA3,0xDE04,0xDE03,0xDDFE,0xDE28,0xDCAF,0xDCAD,0xDCA6,
- 0xDDAC,0xDDA5,0xDDB0,0xDDB1,0xDE01,0xDEB2,0xDED2,0xDEF1,0xDFD1,0xDC47,
- 0xDCC9,0xDCA7,0xDCC8,0xDC95,0xDC8E,0xDC91,0xDC7D,0xDCEE,0xDC8D,0xDC8C,
- 0xDCB0,0xDC96,0xDC42,0xDC7C,0xDCB1,0xDCB2,0xDC84,0xDC9D,0xDCA1,0xDC98,
- 0xDCB3,0xDC22,0xDC7B,0xDC8A,0xDCCE,0xDC80,0xDC97,0xDCB4,0xDCB5,0xDC9A,
- 0xDC9F,0xDC93,0xDE12,0xDE0B,0xDE0E,0xDCA3,0xDCCC,0xDCDC,0xDCE1,0xDCDE,
- 0xDCD2,0xDCDB,0xDCD9,0xDCD7,0xDCD4,0xDCC9,0xDCEB,0xDCDA,0xDCD1,0xDD04,
- 0xDCCA,0xDCE2,0xDDD7,0xDF8C,0xDF99,
- /* plane 7, row 48 */
- 1 | (94 << 8), /* first, last */
- 0xD85D,0xD85D,0xD85D,0xD85D,0x4667,0xD85D,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0x4714,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD865,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD861,0x4889,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD87E,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD864,0xD864,0xD864,
- 1, /* first low-surrogate */
- 0xDFA2,0xDF96,0xDF94,0xDF9F, 0,0xDF8E,0xDC03,0xDC94,0xDC93,
- 0xDD44,0xDF2F,0xDF35,0xDF2B,0xDF32,0xDF2D,0xDF36, 0,0xDF31,0xDF12,
- 0xDF33,0xDF1F,0xDF34,0xDF40,0xDF3F,0xDF41,0xDFD3,0xDC89,0xDD18,0xDD10,
- 0xDE1A,0xDE25,0xDE1E,0xDF92,0xDF95,0xDF93,0xDD84,0xDD9A,0xDD89,0xDD8D,
- 0xDD88,0xDD91,0xDD9B,0xDD9C,0xDD48,0xDE8E,0xDE92,0xDFC5,0xDFC1,0xDFB8,
- 0xDFBE,0xDFB5,0xDFC7,0xDC3C, 0,0xDDEC,0xDE3F,0xDE39,0xDE37,0xDFA1,
- 0xDF94,0xDFA0,0xDFDE,0xDFDB,0xDFDF,0xDFDC,0xDCD6,0xDCDC,0xDCDD,0xDCE0,
- 0xDCE3,0xDCE1,0xDF18,0xDF19,0xDF53,0xDDEC,0xDF44,0xDF0E,0xDF0F,0xDF47,
- 0xDF17,0xDF1D,0xDF11,0xDCB4,0xDCB6,0xDDB7,0xDDBE,0xDDC2,0xDDB4,0xDF31,
- 0xDF15,0xDF83,0xDC3B,0xDC36,0xDC42,
- /* plane 7, row 49 */
- 1 | (94 << 8), /* first, last */
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD863,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0x4C0B,
- 0xD87E,0xD866,0xD866,0x4C17,0xD867,
- 1, /* first low-surrogate */
- 0xDC50,0xDC40,0xDC34,0xDC38,0xDC3D,0xDC3E,0xDC35,0xDC3A,0xDC46,
- 0xDC37,0xDC39,0xDC45,0xDD77,0xDD5D,0xDD6A,0xDD76,0xDD6B,0xDD6C,0xDD65,
- 0xDD64,0xDD71,0xDD5F,0xDD72,0xDDFE,0xDDFF,0xDE3E,0xDF2B,0xDF36,0xDF2D,
- 0xDF39,0xDF3F,0xDF3B,0xDF33,0xDF42,0xDF3A,0xDFD5,0xDFD8,0xDFD9,0xDC0D,
- 0xDC0A,0xDC39,0xDC3A,0xDD3D,0xDD45,0xDD3A,0xDD37,0xDD3E,0xDD42,0xDF87,
- 0xDF8C,0xDF82,0xDF6B,0xDFA0,0xDF9A,0xDF90,0xDF8E,0xDFA1,0xDFBD,0xDFB2,
- 0xDFB5,0xDFB7,0xDFAA,0xDFA2,0xDFA5,0xDFAE,0xDFAB,0xDFBC,0xDC32,0xDC5A,
- 0xDD64,0xDD5C,0xDD4D,0xDD3F,0xDD3E,0xDD52,0xDD58,0xDD57,0xDD5E,0xDD53,
- 0xDD54,0xDD56,0xDF65,0xDE84,0xDE85,0xDE86,0xDF97,0xDFA1,0xDFA2, 0,
- 0xDE0A,0xDFA3,0xDFA6, 0,0xDC15,
- /* plane 7, row 50 */
- 1 | (94 << 8), /* first, last */
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD866,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0x4C6D,0xD867,0x4C70,
- 0xD867,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0x4CED,0xD868,0xD868,0xD87E,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0x4D8D,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0x34A7,0xD841,0xD841,0xD842,0xD842,0xD842,
- 0xD844,0xD844,0xD844,0xD844,0xD844,
- 1, /* first low-surrogate */
- 0xDC24,0xDC4A,0xDC49,0xDC48,0xDC4B,0xDD0E,0xDD62,0xDD0B,0xDD0A,
- 0xDD08,0xDD06,0xDE43,0xDE47,0xDE3F,0xDE46,0xDE50, 0,0xDE4B, 0,
- 0xDE52,0xDCD7,0xDCBF,0xDCD8,0xDCE0,0xDCE7,0xDCB8,0xDCD5,0xDCEF,0xDCE6,
- 0xDCE4,0xDCD4,0xDCD6,0xDCEA, 0,0xDCBB,0xDCE9,0xDE10,0xDE6D,0xDE70,
- 0xDE73,0xDE72,0xDED4,0xDECE,0xDED5,0xDF5A,0xDF58,0xDF52,0xDF50,0xDF55,
- 0xDF4E,0xDF4D,0xDFCB,0xDFCC,0xDFCD,0xDFD1,0xDC58,0xDC63,0xDC5E,0xDC54,
- 0xDC5B,0xDCE9,0xDCE7,0xDCE8,0xDD1D,0xDD67,0xDD5A,0xDD5C,0xDD5B,0xDD61,
- 0xDDA1, 0,0xDDA4,0xDDE9,0xDDEF,0xDDE5,0xDDF5,0xDDEB,0xDDED,0xDE96,
- 0xDE95,0xDEB3,0xDEB5,0xDEB1, 0,0xDC4D,0xDE24,0xDC2B,0xDDCF,0xDEC9,
- 0xDD36,0xDD31,0xDD54,0xDD3A,0xDD38,
- /* plane 7, row 51 */
- 1 | (94 << 8), /* first, last */
- 0xD844,0xD844,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD847,0xD847,0xD847,0xD848,
- 0xD848,0xD849,0xD849,0xD849,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84C,0xD84C,0x6707,
- 0xD84D,0xD84D,0xD84D,0xD84E,0xD84E,0xD84D,0xD84D,0xD84E,0xD84E,0xD84F,
- 0xD84F,0xD850,0xD850,0xD850,0xD850,0xD850,0xD87E,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD87E,0xD848,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0x3E5A,0xD851,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD87E,0xD854,0xD854,0xD854,
- 1, /* first low-surrogate */
- 0xDE39,0xDE38,0xDCF4,0xDCF3,0xDCF6,0xDCFC,0xDCF5,0xDCF1,0xDE9C,
- 0xDD18,0xDD1A,0xDEFC,0xDEFE,0xDF03,0xDF53,0xDD2B,0xDFC6,0xDFC1,0xDD7B,
- 0xDF06,0xDC49,0xDCB8,0xDDA3,0xDD52,0xDD4D,0xDD5F,0xDD5E,0xDD61,0xDE23,
- 0xDE8C,0xDE6F,0xDE75,0xDE74,0xDE71,0xDE70,0xDE6C,0xDD26,0xDF08, 0,
- 0xDFF0,0xDFEF,0xDFFB,0xDC10,0xDC0C,0xDFF6,0xDFFE,0xDE7C,0xDEE1,0xDC38,
- 0xDC6F,0xDD18,0xDD15,0xDD1C,0xDD10,0xDD35,0xDD17,0xDD17,0xDD1D,0xDD26,
- 0xDD28,0xDD29,0xDD2A,0xDD1A,0xDD16,0xDF07,0xDCAB,0xDCAC,0xDCA1,0xDCAE,
- 0xDCA3,0xDCA7,0xDD48,0xDE04,0xDEFD, 0,0xDF08,0xDCD2,0xDEC6,0xDEBE,
- 0xDF1C,0xDFA6,0xDFA7,0xDFAB,0xDC00,0xDCFB,0xDCFC,0xDCF9,0xDD01,0xDF06,
- 0xDF04,0xDD3C,0xDC34,0xDF36,0xDF32,
- /* plane 7, row 52 */
- 1 | (94 << 8), /* first, last */
- 0xD854,0xD854,0xD854,0xD855,0xD855,0xD855,0xD856,0xD856,0xD856,
- 0xD869,0xD856,0xD856,0xD856,0xD856,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0x42AF,0xD857,0xD857,0xD857,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD87E,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0x456B,0xD85C,0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 1, /* first low-surrogate */
- 0xDF42,0xDF2D,0xDF35,0xDDD8,0xDF23,0xDF20,0xDD01,0xDD00,0xDD03,
- 0xDEBC,0xDE3C,0xDE41,0xDE35,0xDEC9,0xDD8E,0xDD9E,0xDD99,0xDDB4,0xDDAA,
- 0xDD9F,0xDD96,0xDD9D,0xDDC3,0xDD74,0xDDAB, 0,0xDF63,0xDF5B,0xDF5A,
- 0xDDC5,0xDDC4,0xDDCF,0xDDC8,0xDDA4,0xDDBD,0xDDD3,0xDE60,0xDF3B,0xDFE3,
- 0xDFE7,0xDCA8,0xDCAC,0xDCA9,0xDD2A,0xDE08,0xDE09,0xDCB9,0xDEC1,0xDEC2,
- 0xDEB8,0xDCE1,0xDCEB,0xDCE5,0xDCFA,0xDCE4,0xDD0B,0xDCD7,0xDCEF,0xDCE0,
- 0xDCEC,0xDCFB,0xDDB0,0xDCD3,0xDCE6,0xDCFC,0xDCE3,0xDCCF,0xDCDA,0xDCDC,
- 0xDCD2,0xDCA4, 0,0xDE17,0xDE16,0xDCF2,0xDCFC,0xDD18,0xDCF6,0xDCFE,
- 0xDCF3,0xDCF7,0xDD01,0xDCF9,0xDD06,0xDCF5,0xDD10,0xDCDF,0xDD03,0xDD08,
- 0xDDD8,0xDE05,0xDF97,0xDFB3,0xDFAE,
- /* plane 7, row 53 */
- 1 | (94 << 8), /* first, last */
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0x471B,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,0xD85A,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0x4963,0xD862,0xD863,0xD863,0xD863,0xD863,0xD863,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD852,0xD864,0xD864,
- 1, /* first low-surrogate */
- 0xDFAF,0xDFA7,0xDFB1,0xDFA8,0xDFAC,0xDFAB,0xDC04,0xDC9A,0xDD4A,
- 0xDF42,0xDF58,0xDF4B,0xDF45,0xDF49,0xDF4C,0xDF59,0xDF56, 0,0xDF46,
- 0xDF44,0xDF5B,0xDF69,0xDC8E,0xDC8F,0xDD1E,0xDCBC,0xDE2F,0xDF9E,0xDF9D,
- 0xDF9F,0xDF9C,0xDDB4,0xDDAE,0xDDAB,0xDDB3,0xDDAF,0xDDC2,0xDE93,0xDE95,
- 0xDE96,0xDE97,0xDFCF,0xDFCE,0xDFCB,0xDC4B,0xDE46,0xDE43,0xDE45,0xDE51,
- 0xDFAE,0xDFAF,0xDFB0,0xDFB8,0xDFE2,0xDFE3,0xDFE6,0xDCED,0xDCEA,0xDD3A,
- 0xDF59,0xDF84,0xDF5F,0xDF7C,0xDF5C,0xDF58,0xDF55,0xDF5D,0xDF7E,0xDF80,
- 0xDF83,0xDF57, 0,0xDF5E,0xDCBA,0xDDD5,0xDF58,0xDF68,0xDF67,0xDC4A,
- 0xDC4C,0xDC52,0xDC49,0xDC4E,0xDC47,0xDC4D,0xDC4B,0xDC4F,0xDD7E,0xDD87,
- 0xDD83,0xDD89,0xDECA,0xDD86,0xDD88,
- /* plane 7, row 54 */
- 1 | (94 << 8), /* first, last */
- 0xD864,0xD864,0xD864,0xD864,0x4A80,0x4A84,0x4A7F,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD865,0xD865,0xD865,0xD865,0xD865,0x4AF1,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0x9A47,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,
- 1, /* first low-surrogate */
- 0xDE47,0xDE42,0xDE49,0xDE48, 0, 0, 0,0xDF44,0xDF51,
- 0xDF46,0xDF47,0xDFE4,0xDC0F,0xDC3F,0xDD4B,0xDD57,0xDD52, 0,0xDD51,
- 0xDD58,0xDD5E,0xDD53,0xDD5D,0xDD4D,0xDE3C,0xDE3F,0xDE46,0xDE3E,0xDE44,
- 0xDE45,0xDE41,0xDE38,0xDE42,0xDE43,0xDE7A,0xDFA3,0xDFBA,0xDFC0,0xDFC4,
- 0xDFC6,0xDFCB,0xDC61,0xDD7A,0xDD73,0xDD72,0xDD74,0xDD80,0xDD81, 0,
- 0xDE95,0xDE8F,0xDE90,0xDE92,0xDE94,0xDE8B,0xDEE6,0xDFB2,0xDFB8,0xDFBD,
- 0xDFBE,0xDFCE,0xDFBA,0xDC16,0xDC26,0xDC25,0xDC4C,0xDC50,0xDC4E,0xDC51,
- 0xDC52,0xDD14,0xDD15,0xDD1B,0xDE82,0xDE99,0xDE9A,0xDE7D,0xDE85,0xDE86,
- 0xDE9C,0xDE79,0xDE7B,0xDE80,0xDE83,0xDE81,0xDD1E,0xDD1B,0xDD2A,0xDCFB,
- 0xDD05,0xDD20,0xDD11,0xDD04,0xDCFD,
- /* plane 7, row 55 */
- 1 | (94 << 8), /* first, last */
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0x4D1C,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0x34A8,0xD841,0xD841,0xD841,0xD842,0xD842,
- 0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD845,
- 0xD845,0xD845,0xD845,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD847,0xD847,0xD847,0xD847,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD849,0xD849,0xD84A,0xD84A,0xD84A,0xD84A,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84C,0xD84C,
- 1, /* first low-surrogate */
- 0xDD03,0xDD10,0xDD18,0xDD0A,0xDD4E,0xDD09,0xDD07,0xDD1C, 0,
- 0xDE77,0xDE76,0xDED8,0xDED9,0xDF61,0xDF5C,0xDF5E,0xDF60,0xDFAA,0xDFD6,
- 0xDFD8,0xDC09,0xDC08,0xDC6B,0xDC65,0xDC73,0xDC74,0xDCED,0xDD24,0xDD25,
- 0xDD6A,0xDDA7,0xDDA8,0xDE0B,0xDDFA,0xDDF9,0xDDFF,0xDE04,0xDDF6,0xDE05,
- 0xDE99,0xDEAB,0xDEBD,0xDEB8, 0,0xDC64,0xDC5A,0xDD72,0xDD7A,0xDF95,
- 0xDD5F,0xDD61,0xDD5E,0xDD5A,0xDD5C,0xDD5D,0xDD6E,0xDD57,0xDD58,0xDD02,
- 0xDD0B,0xDD08,0xDD51,0xDD25,0xDD28,0xDD23,0xDD21,0xDD24,0xDD29,0xDF06,
- 0xDF0A,0xDFCA,0xDFCC,0xDFCB,0xDFCF,0xDD7F,0xDD7C,0xDDD6,0xDF09,0xDF0B,
- 0xDF76,0xDC7D,0xDDA5,0xDD5B,0xDD5C,0xDD5D,0xDD65,0xDE6D,0xDE82,0xDE83,
- 0xDE87,0xDE95,0xDE8A,0xDCD6,0xDD28,
- /* plane 7, row 56 */
- 1 | (94 << 8), /* first, last */
- 0xD84C,0xD84E,0xD87E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84F,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD852,0xD852,0xD852,
- 0xD853,0xD853,0xD853,0xD853,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD855,0xD855,0xD855,0xD855,0x418B,0xD856,0xD856,0xD856,0xD856,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0x432B,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD859,0xD859,0xD859,0xD859,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0x457A,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 1, /* first low-surrogate */
- 0xDF0D,0xDC2E,0xDCEE,0xDC2D,0xDC21,0xDC19,0xDD3B,0xDD3C,0xDD3A,
- 0xDE7E,0xDC3B,0xDD47,0xDD39,0xDD34,0xDD36,0xDD46,0xDD3B,0xDD41,0xDD45,
- 0xDCC0,0xDCC4,0xDCBA,0xDCBD,0xDCBE,0xDDA3,0xDF0C,0xDCD9,0xDECD,0xDFAE,
- 0xDCFF,0xDD24,0xDFBB,0xDFBC,0xDC36,0xDCD5,0xDCD3,0xDCD6,0xDF3C,0xDF3F,
- 0xDDDE,0xDDE3,0xDF27,0xDF29, 0,0xDD05,0xDD07,0xDD0C,0xDED0,0xDDBE,
- 0xDDBC,0xDDD0,0xDDC2,0xDDB5,0xDDC9,0xDF66, 0,0xDDD5,0xDDE2,0xDDDC,
- 0xDDE3,0xDDDA,0xDDC2,0xDDE8,0xDFE9,0xDCAF,0xDCAD,0xDCAE,0xDE0B,0xDCC1,
- 0xDDB6,0xDDB9,0xDEC0,0xDCA5,0xDD28,0xDD22,0xDD29,0xDD18,0xDD1F,0xDD1C,
- 0xDD12,0xDD2A, 0,0xDD21,0xDD2B,0xDD17,0xDCF0,0xDD16,0xDD23,0xDD2B,
- 0xDD26,0xDD3D,0xDD22,0xDD3A,0xDD31,
- /* plane 7, row 57 */
- 1 | (94 << 8), /* first, last */
- 0xD85D,0xD85D,0xD85D,0xD85D,0x4609,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0x466D,0xD854,
- 0xD857,0xD85E,0xD85E,0xD85E,0x471F,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD87E,0xD85E,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0x496A,0x496C,0xD862,0xD862,0xD862,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,
- 1, /* first low-surrogate */
- 0xDD32,0xDD54,0xDD21,0xDD35, 0,0xDD2E,0xDD30,0xDD2F,0xDD36,
- 0xDDDA,0xDDD9,0xDFBB,0xDFBC,0xDFB7,0xDFC2,0xDFBD,0xDFB2, 0,0xDF44,
- 0xDDD1,0xDF52,0xDF6B,0xDF67, 0,0xDF61,0xDF6C,0xDF51,0xDF74,0xDF77,
- 0xDF6F,0xDF6D,0xDF68,0xDDD1,0xDF84,0xDC90,0xDC92,0xDC93,0xDD1F,0xDE31,
- 0xDE38,0xDE39,0xDE37,0xDFAB,0xDDC3,0xDDC8,0xDDCB,0xDDCF,0xDE98,0xDFD4,
- 0xDFD3,0xDFD8,0xDFD9,0xDFDD,0xDFD1,0xDFD6,0xDC3E,0xDE58,0xDE57,0xDE55,
- 0xDFC4,0xDFE4,0xDCEE,0xDCEF,0xDCF3,0xDCF2,0xDCF0,0xDFAB,0xDF9A,0xDFAF,
- 0xDF97, 0, 0,0xDFBF,0xDF94,0xDF93,0xDCBE,0xDCBB,0xDCBC,0xDDD9,
- 0xDF6C,0xDC53,0xDC54,0xDC5B,0xDC58,0xDC56,0xDC57,0xDD9F,0xDD94,0xDD96,
- 0xDD97,0xDE4A,0xDE4B,0xDF55,0xDF5A,
- /* plane 7, row 58 */
- 1 | (94 << 8), /* first, last */
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0x4BB2,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD867,0xD867,0x4C1D,0xD867,0xD867,0xD867,0x4C2D,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD87E,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0x4D45,0xD868,
- 1, /* first low-surrogate */
- 0xDF5E,0xDF5F,0xDF59,0xDF5B,0xDF58,0xDF54,0xDFE8,0xDFEB,0xDFEC,
- 0xDC13,0xDD66,0xDD6B,0xDD62,0xDD69,0xDD63,0xDD5F,0xDD4E,0xDE48,0xDE4A,
- 0xDFE3,0xDFDB,0xDFD8,0xDFD6,0xDD86,0xDD90,0xDD91,0xDD88,0xDD94,0xDD83,
- 0,0xDD9C,0xDD8D,0xDD85,0xDE98,0xDE9A,0xDE9C,0xDEE7,0xDFC5,0xDFD0,
- 0xDFD1,0xDC19,0xDC27, 0,0xDC54,0xDD2D,0xDD22, 0,0xDD1F,0xDEBD,
- 0xDEAE,0xDEBB,0xDEAD,0xDEBC,0xDEB9,0xDEB4,0xDECB,0xDEB7,0xDEB3,0xDEBA,
- 0xDEB6,0xDECD,0xDEBE,0xDEC9,0xDE0B,0xDD5F,0xDD3B,0xDD61,0xDD5C,0xDD8A,
- 0xDD5A,0xDD4D,0xDD46,0xDD44,0xDD3D,0xDD40,0xDD3C,0xDD8C,0xDD41,0xDD4C,
- 0xDD3E,0xDD4A,0xDE7C,0xDE7A,0xDF65,0xDF6E,0xDF69,0xDF6A,0xDF6F,0xDF6C,
- 0xDF70,0xDF68,0xDF6B, 0,0xDFAC,
- /* plane 7, row 59 */
- 1 | (94 << 8), /* first, last */
- 0xD868,0xD868,0xD868,0xD851,0xD869,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD841,0xD842,0xD844,
- 0xD844,0xD844,0xD844,0xD845,0xD846,0xD848,0xD849,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD868,0xD84B,0xD84B,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84F,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD853,0xD853,0xD853,
- 1, /* first low-surrogate */
- 0xDFDE,0xDFDD,0xDFDC,0xDCC5,0xDC8C,0xDC83,0xDC82,0xDC88,0xDC85,
- 0xDC81,0xDCF5,0xDCEF,0xDCF4,0xDCF2,0xDCF6,0xDCF3,0xDCF0,0xDCF1,0xDD2B,
- 0xDD27,0xDD28,0xDD6C,0xDDAE,0xDE0E,0xDE1B,0xDE16,0xDE1F,0xDE22,0xDE20,
- 0xDE21,0xDE14,0xDE13,0xDE9D,0xDE9C,0xDE9E,0xDE9F,0xDC6B,0xDCC8,0xDD78,
- 0xDD76,0xDD70,0xDD71,0xDD0A,0xDD2C,0xDF11,0xDC7E,0xDD57,0xDD66,0xDD69,
- 0xDD67,0xDD68,0xDD71,0xDD6F,0xDFAE,0xDE8B,0xDE96,0xDC35,0xDC3A,0xDC6B,
- 0xDF16,0xDC43,0xDC46,0xDC3F,0xDC3B,0xDC3D,0xDDB1,0xDDB2,0xDEE4,0xDC40,
- 0xDD5D,0xDD51,0xDD4D,0xDD4C,0xDD5B,0xDCD4,0xDCD2,0xDCCA,0xDCC8,0xDCD0,
- 0xDCC9,0xDD49,0xDDA4,0xDF12,0xDF0F,0xDF11,0xDCDB,0xDCDD,0xDCDC,0xDED4,
- 0xDF21,0xDFB2,0xDD04,0xDD02,0xDF11,
- /* plane 7, row 60 */
- 1 | (94 << 8), /* first, last */
- 0xD853,0xD853,0xD853,0xD85C,0xD854,0xD854,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD856,0xD856,0xD856,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD851,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85D,0xD85D,0x460A,0xD85D,0xD85D,0xD85D,0xD85D,0x460C,0xD85D,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD852,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0x482E,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,
- 1, /* first low-surrogate */
- 0xDF16,0xDF10,0xDFBE,0xDE1A,0xDF4C,0xDF4A,0xDDF2,0xDDF1,0xDF2A,
- 0xDF2C,0xDF2F,0xDF31,0xDD11,0xDD12,0xDE4B,0xDDDB,0xDDD6,0xDDDD,0xDDE2,
- 0xDDE4,0xDDE0,0xDDDF,0xDDE3,0xDF6E,0xDF71,0xDDE9,0xDDEA,0xDE63,0xDFEB,
- 0xDFEA,0xDCBD,0xDCBB,0xDCC6,0xDCCC,0xDCC8,0xDCCF,0xDCC9,0xDCCA,0xDCCF,
- 0xDCD0,0xDDBA,0xDDFB,0xDE03,0xDEC4,0xDD49,0xDD53,0xDD36,0xDD4A,0xDD41,
- 0xDD4E,0xDD19,0xDD4D,0xDD45,0xDD4C,0xDD47,0xDD48,0xDD4F,0xDD37,0xDD42,
- 0xDD4A,0xDD46, 0,0xDD49,0xDD4F,0xDD51,0xDD4C, 0,0xDE06,0xDD51,
- 0xDF7A,0xDF83,0xDF7E,0xDF7F,0xDF80,0xDFB5,0xDC91,0xDC94,0xDC95,0xDD21,
- 0xDD20,0xDE3D,0xDE40,0xDE46,0xDE84,0xDFAC,0xDFAD, 0,0xDDDA,0xDDD9,
- 0xDFE2,0xDFE1,0xDFE3,0xDFE4,0xDFDE,
- /* plane 7, row 61 */
- 1 | (94 << 8), /* first, last */
- 0xD860,0xD861,0xD861,0xD861,0xD861,0xD861,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD863,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD865,
- 0xD865,0xD863,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD865,0xD865,0xD865,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,
- 1, /* first low-surrogate */
- 0xDFDF,0xDE41,0xDE59,0xDE5C,0xDE5A,0xDFE8,0xDCF6,0xDCFC,0xDCF7,
- 0xDCFA,0xDCF9,0xDFC4,0xDFBE,0xDFD2,0xDFBD,0xDF95,0xDFD4,0xDDE4,0xDC61,
- 0xDC62,0xDC63,0xDC64,0xDC60,0xDC5C,0xDC5D,0xDC5E,0xDDA5,0xDDA6,0xDE4C,
- 0xDF68,0xDF6E,0xDF71,0xDF6B,0xDF6F,0xDFEE,0xDFF1,0xDFF0,0xDFEF,0xDC15,
- 0xDC14,0xDF6E,0xDC47,0xDD7C,0xDD7A,0xDD74,0xDD76,0xDD6E,0xDD78,0xDD6D,
- 0xDD6C,0xDE4E,0xDFD7,0xDFEA,0xDFE5,0xDC64,0xDDB3,0xDDA3,0xDDA5,0xDDA7,
- 0xDDA2,0xDD9F,0xDDA6,0xDD9E,0xDDA8,0xDEA9,0xDEA6,0xDEAA,0xDEAB,0xDEA0,
- 0xDEA1,0xDEA8,0xDEE8,0xDEE9,0xDEEA,0xDFE4,0xDFDF,0xDFE0,0xDC28,0xDC5D,
- 0xDC5B,0xDC56,0xDC57,0xDC5F,0xDC62,0xDEE1,0xDEE3,0xDEDE,0xDED9,0xDEE8,
- 0xDEF2,0xDEF6,0xDEE6,0xDEF4,0xDEF5,
- /* plane 7, row 62 */
- 1 | (94 << 8), /* first, last */
- 0xD867,0xD867,0x4C8D,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0xD87E,0xD869,0xD869,0xD842,0xD842,
- 0xD842,0xD844,0xD844,0xD844,0xD844,0xD845,0xD845,0xD846,0xD846,0xD846,
- 0xD846,0xD847,0xD847,0xD847,0xD847,0xD848,0xD848,0xD848,0xD848,0xD84A,
- 0xD84A,0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84C,0xD84C,0xD84E,0xD84E,
- 0xD84E,0xD856,0xD87E,0xD84E,0xD850,0xD850,0xD850,0xD850,0xD851,0xD851,
- 0xD852,0xD852,0xD853,0xD853,0xD853,
- 1, /* first low-surrogate */
- 0xDEE5,0xDEE2, 0,0xDD96,0xDDAA,0xDD97,0xDD70,0xDDA1,0xDD9D,
- 0xDDA9,0xDD6F,0xDD7E,0xDD94,0xDD9A,0xDD73,0xDD87,0xDD71,0xDD77,0xDD88,
- 0xDD8D,0xDD85,0xDD78,0xDDAD,0xDE80,0xDE81,0xDEE5,0xDEE7,0xDF7C,0xDFAF,
- 0xDFE1,0xDC96,0xDCA3,0xDC90,0xDCF8,0xDD2E,0xDD75,0xDD7E,0xDD7D,0xDD7B,
- 0xDD78,0xDDB0,0xDE34,0xDE36,0xDE30,0xDE1D,0xDE2E,0xDE37,0xDECE,0xDF97,
- 0xDF98,0xDD7C,0xDD7E,0xDD7D,0xDD7F,0xDD0F,0xDEA4,0xDD31,0xDD2E,0xDD2F,
- 0xDD32,0xDD2C,0xDFD4,0xDFDC,0xDFD8,0xDC0E,0xDD83,0xDD84,0xDF12,0xDD72,
- 0xDD7C,0xDD7E,0xDEA6,0xDEA0,0xDE9E,0xDEA2,0xDD2A,0xDF18,0xDC4D,0xDC58,
- 0xDC5B,0xDD14,0xDCF2,0xDEE6,0xDD64,0xDD68,0xDD60,0xDD62,0xDCD7,0xDD4B,
- 0xDCE0,0xDF22,0xDD05,0xDF19,0xDF1A,
- /* plane 7, row 63 */
- 1 | (94 << 8), /* first, last */
- 0xD853,0xD854,0xD854,0xD854,0xD855,0xD855,0xD855,0xD856,0xD856,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0x4331,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD87E,0xD85A,
- 0xD85A,0xD85A,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD861,0xD861,0xD861,0xD861,0xD861,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD863,0xD863,0xD863,0xD863,0xD863,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,
- 1, /* first low-surrogate */
- 0xDFC3,0xDCD8,0xDCDC,0xDF4F,0xDDF7,0xDDF4,0xDDF8,0xDD13,0xDE50,
- 0xDDF0,0xDDE9,0xDDEF,0xDDED,0xDDEA,0xDDF8,0xDE05,0xDDF2,0xDF72, 0,
- 0xDDF9,0xDDF3,0xDDF6,0xDDF2,0xDDF7,0xDE66,0xDE65,0xDF40,0xDD77,0xDCD1,
- 0xDCD3,0xDE04,0xDD59,0xDD60,0xDD5B,0xDD5D,0xDD5E,0xDD69,0xDD5C,0xDD61,
- 0xDD6A,0xDD5F,0xDD4E,0xDD5C,0xDD60,0xDD63,0xDDDB,0xDFCA,0xDFC9,0xDFC8,
- 0xDCA5,0xDCA3,0xDF8E,0xDF87,0xDF89,0xDF85,0xDF86,0xDF8F,0xDF8A,0xDF90,
- 0xDC98,0xDC9B,0xDE47,0xDE49,0xDE48,0xDDE5,0xDDEA,0xDDED,0xDFF0,0xDFEF,
- 0xDFF2,0xDFEC,0xDC40,0xDE60,0xDE5F,0xDFEB,0xDFEC,0xDD00,0xDD01,0xDFE2,
- 0xDFDF,0xDFE0,0xDFE1,0xDFE3,0xDCC3,0xDDEB,0xDDEA,0xDF61,0xDF71,0xDC6B,
- 0xDC68,0xDC69,0xDC67,0xDDB0,0xDDB1,
- /* plane 7, row 64 */
- 1 | (94 << 8), /* first, last */
- 0xD864,0xD864,0xD864,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD866,0xD866,0x4BBC,0x4BBB,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD867,0xD867,0xD867,0xD849,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD842,0xD842,0xD844,0xD846,0xD87E,0xD87E,0xD849,
- 0xD84C,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD850,0xD850,0xD850,
- 0xD867,0xD851,0xD851,0xD851,0xD851,
- 1, /* first low-surrogate */
- 0xDDB2,0xDE51,0xDF74,0xDD7F,0xDD84,0xDE53,0xDE54,0xDFF0,0xDFF4,
- 0xDFF1,0xDC37,0xDDBF, 0, 0,0xDDBD,0xDDBE,0xDDB7,0xDDC0,0xDDBA,
- 0xDDB8,0xDDBC,0xDDBB,0xDEEB,0xDFE7,0xDC1D,0xDC1C,0xDC63,0xDC4B,0xDD38,
- 0xDD36,0xDD34,0xDD37,0xDF06,0xDF1C,0xDF02,0xDF1D,0xDF1E,0xDEE0,0xDF11,
- 0xDF18,0xDF21,0xDF20,0xDF10,0xDDBD,0xDDAE,0xDDB5,0xDDB8,0xDDB9,0xDDBE,
- 0xDDC4,0xDDBC,0xDDBA,0xDE83,0xDEEA,0xDEEC,0xDF7E,0xDF7B,0xDFE5,0xDCA7,
- 0xDC9E,0xDC9A,0xDD2F,0xDD31,0xDD83,0xDDB5,0xDE46,0xDE41,0xDE43,0xDE3D,
- 0xDE42,0xDE3B,0xDE47,0xDD6B,0xDDD0,0xDD8E,0xDF11,0xDC71,0xDC89,0xDC4C,
- 0xDD2B,0xDC4F,0xDC5E,0xDC63,0xDC6B,0xDD3F,0xDEE9,0xDD6D,0xDD6B,0xDD6A,
- 0xDF2A,0xDCE0,0xDCDD,0xDCE1,0xDCDE,
- /* plane 7, row 65 */
- 1 | (94 << 8), /* first, last */
- 0xD851,0xD851,0xD851,0xD852,0xD852,0xD852,0xD853,0xD855,0xD869,
- 0xD856,0xD856,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD858,0xD858,0xD858,0xD85A,0xD851,0xD85A,0xD85A,0xD85A,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85D,0xD85D,0xD853,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85E,0xD85E,0xD85E,0xD85E,0xD85F,0xD85F,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD861,0xD863,0xD862,0xD862,0xD863,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD865,0xD865,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0x4C14,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD869,0xD869,0xD869,0xD869,0xD869,
- 1, /* first low-surrogate */
- 0xDCDC,0xDD4D,0xDF16,0xDCE3,0xDEE5,0xDEE4,0xDF1D,0xDF4B,0xDEC1,
- 0xDE4E,0xDED6,0xDDFD,0xDE07,0xDDFE,0xDE03,0xDE0B,0xDDFF,0xDF7A,0xDF77,
- 0xDDFB,0xDF43,0xDFED,0xDDBC,0xDCDF,0xDE05,0xDEC6,0xDEC5,0xDD74,0xDD73,
- 0xDD72,0xDD78,0xDD73,0xDD7A,0xDF1C,0xDD76,0xDD75,0xDD77,0xDFCF,0xDFCE,
- 0xDFCD,0xDCA8,0xDF98,0xDF92,0xDF94,0xDC9A,0xDFB4,0xDDEB,0xDDF4,0xDDF3,
- 0xDDEE,0xDDF2,0xDDF0,0xDE64,0xDC05,0xDFFB,0xDFFC,0xDDF3,0xDC6C,0xDDBA,
- 0xDF79,0xDF7E,0xDF78,0xDFF4,0xDC16,0xDE57,0xDDC8,0xDDC3,0xDDCE,0xDEB3,
- 0xDEED,0xDEEE,0xDFF1,0xDFF8, 0,0xDC64,0xDC65,0xDF35,0xDF29,0xDF2C,
- 0xDF31,0xDF2B,0xDF2E,0xDF25,0xDDDA,0xDDE0,0xDDD4,0xDDE1,0xDDDD,0xDFE7,
- 0xDC12,0xDCAE,0xDCAF,0xDD86,0xDD85,
- /* plane 7, row 66 */
- 1 | (94 << 8), /* first, last */
- 0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD842,0xD842,0xD842,0x361C,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0x3772,0xD848,0xD849,0xD84B,0xD850,0xD851,0xD852,0xD852,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD854,0xD854,0xD854,0xD854,0xD855,0xD855,
- 0xD85C,0xD855,0xD856,0xD857,0xD857,0xD87E,0xD858,0xD858,0xD858,0xD85A,
- 0xD85A,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85E,0xD85E,0xD85E,
- 0xD85F,0xD860,0xD860,0xD860,0xD861,0xD861,0xD862,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD864,0xD864,0xD864,0xD864,
- 1, /* first low-surrogate */
- 0xDDD1,0xDE58,0xDE3F,0xDE52,0xDE4B,0xDE53,0xDE50,0xDE56,0xDE57,
- 0xDECD,0xDECB,0xDC31,0xDC30,0xDDD1, 0,0xDD92,0xDD90,0xDD8F,0xDD93,
- 0xDD91, 0,0xDF13,0xDC7F,0xDEAC,0xDD70,0xDCE5,0xDF23,0xDF24,0xDD08,
- 0xDD07,0xDF1F,0xDF20,0xDF21,0xDCE1,0xDF54,0xDF57,0xDF55,0xDDFA,0xDF38,
- 0xDD86,0xDF37,0xDE53,0xDF7E,0xDF7B,0xDD71,0xDDFD,0xDDFC,0xDF46,0xDD32,
- 0xDEC7,0xDD71,0xDD83,0xDD6F,0xDD7E,0xDD7D,0xDD81,0xDD7C,0xDD8A,0xDD7E,
- 0xDD80,0xDD7D,0xDD7F,0xDD82,0xDFD4,0xDFD0,0xDFD2,0xDD55,0xDF9B,0xDF9A,
- 0xDE4E,0xDDF1,0xDFF8,0xDFFD,0xDE5E,0xDE66,0xDD05,0xDC0A,0xDC0B,0xDC0E,
- 0xDC0D,0xDC11,0xDC09,0xDC10,0xDC0C,0xDC12,0xDCC4,0xDDF7,0xDDF8,0xDF6A,
- 0xDF6B,0xDDC0,0xDDC2,0xDF85,0xDF80,
- /* plane 7, row 67 */
- 1 | (94 << 8), /* first, last */
- 0xD864,0xD864,0xD864,0xD865,0xD865,0xD865,0xD866,0xD866,0xD866,
- 0xD866,0xD866,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD868,0x4D0E,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xD869,0xD869,0xD869,0xD869,0xD854,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD842,0xD84E,0xD846,0xD846,0xD847,0xD848,0xD848,
- 0xD848,0xD84B,0xD84E,0xD84E,0xD84E,0xD850,0xD851,0xD852,0xD853,0xD853,
- 0xD853,0xD855,0xD857,0xD857,0xD857,0xD857,0xD857,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85E,0xD848,0xD860,0xD860,0xD861,0xD862,
- 0xD862,0xD863,0xD863,0xD863,0xD864,
- 1, /* first low-surrogate */
- 0xDF84,0xDF81,0xDDC4,0xDD8B,0xDD8D,0xDD8E,0xDEB7,0xDEB9,0xDEEF,
- 0xDFFB,0xDFFF,0xDC67,0xDC68,0xDC69,0xDD3F,0xDF3C,0xDF4C,0xDF3D,0xDF3E,
- 0xDF3F,0xDF3B,0xDDFF, 0,0xDDF6,0xDDEE,0xDDFC,0xDDF8,0xDE01,0xDDFA,
- 0xDE88,0xDF80,0xDC11,0xDCFE,0xDD00,0xDD35,0xDC3C,0xDDBD,0xDDBB,0xDE5C,
- 0xDE5A,0xDED1,0xDED0,0xDE0B,0xDC73,0xDD39,0xDF1A,0xDFE3,0xDD87,0xDF77,
- 0xDF78,0xDEB1,0xDC6A,0xDC74,0xDEEB,0xDD7B,0xDDA5,0xDCE4,0xDD0B,0xDD0E,
- 0xDD0C,0xDF39,0xDE10,0xDE11,0xDE16,0xDF81,0xDF80,0xDDFE,0xDE01,0xDE00,
- 0xDF47,0xDFEF,0xDD88,0xDD8B,0xDD8D,0xDD87,0xDD85,0xDD8F,0xDD84,0xDD88,
- 0xDD8E,0xDD8C,0xDFD7,0xDFD6,0xDF9F,0xDD88,0xDE03,0xDFFE,0xDFEF,0xDD09,
- 0xDD08,0xDC20,0xDC24,0xDC1F,0xDC70,
- /* plane 7, row 68 */
- 1 | (94 << 8), /* first, last */
- 0xD864,0xD864,0xD864,0xD864,0xD865,0xD865,0xD865,0xD866,0xD866,
- 0xD866,0xD866,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD869,0xD869,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0xD842,0xD85E,0xD846,0xD849,0xD84C,
- 0xD84E,0xD84E,0xD84F,0xD850,0xD851,0xD851,0xD851,0xD851,0xD851,0xD853,
- 0x7674,0xD855,0xD857,0xD858,0xD858,0xD85A,0xD85C,0xD85C,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85E,0xD85E,0xD85E,0xD860,0xD860,0xD862,
- 0xD862,0xD863,0xD863,0xD863,0xD863,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD866,0xD866,0xD866,0xD866,0x4BEC,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,
- 1, /* first low-surrogate */
- 0xDE56,0xDFF7,0xDFF8,0xDFF6,0xDD90,0xDE5E,0xDFF7,0xDDD6,0xDDD5,
- 0xDEBB,0xDEF0,0xDC01,0xDC6C,0xDD41,0xDD42,0xDF4F,0xDF53,0xDF58,0xDE12,
- 0xDE04,0xDE13,0xDE05,0xDE0D,0xDF82,0xDF81,0xDCB5,0xDCBA,0xDDBE,0xDE65,
- 0xDE63,0xDE6E,0xDE6A,0xDE6C,0xDEC4,0xDD6C,0xDFA5,0xDF12,0xDC4D,0xDF1F,
- 0xDC77,0xDC78,0xDC44,0xDD7C,0xDCEB,0xDCEA,0xDCEC,0xDDA7,0xDF19,0xDF23,
- 0,0xDE01,0xDE1C,0xDE03,0xDF48,0xDCDA,0xDD91,0xDD92,0xDD96,0xDD97,
- 0xDD91,0xDD93,0xDFD8,0xDFD5,0xDD57,0xDD58,0xDFA2,0xDE05,0xDFFA,0xDD0C,
- 0xDD0A,0xDC2E,0xDC29,0xDC2F,0xDCC5,0xDC72,0xDDC8,0xDE5A,0xDE59,0xDF89,
- 0xDF88,0xDDDB,0xDDD9,0xDDDA,0xDEBC, 0,0xDC06,0xDC05,0xDC6F,0xDC6D,
- 0xDC70,0xDF60,0xDF5E,0xDF63,0xDF5A,
- /* plane 7, row 69 */
- 1 | (94 << 8), /* first, last */
- 0xD867,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD869,0xD842,
- 0xD846,0xD848,0xD848,0xD851,0xD852,0xD853,0xD853,0xD855,0xD858,0xD85A,
- 0xD85A,0xD85A,0xD85C,0xD85D,0xD85D,0xD85E,0xD85E,0xD85F,0xD85F,0xD861,
- 0xD863,0xD863,0xD864,0xD864,0xD864,0xD865,0xD866,0xD867,0xD867,0xD868,
- 0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD854,0xD869,0xD845,0xD84E,
- 0xD850,0x4279,0xD858,0xD85C,0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,0xD860,
- 0xD861,0xD861,0xD861,0xD864,0xD866,0xD867,0xD868,0xD868,0xD869,0xD869,
- 0xD869,0xD869,0xD869,0xD869,0xD84E,0xD858,0xD85C,0xD85E,0xD862,0xD862,
- 0xD866,0xD866,0xD866,0xD867,0xD868,
- 1, /* first low-surrogate */
- 0xDF5F,0xDE19,0xDE1D,0xDE1B,0xDE22,0xDE1C,0xDE1E,0xDEF7,0xDF84,
- 0xDC15,0xDCB8,0xDCC1,0xDD01,0xDD0A,0xDDD2,0xDE75,0xDE74,0xDE72,0xDED0,
- 0xDF1B,0xDC10,0xDF79,0xDCED,0xDFB9,0xDF24,0xDFC5,0xDE03,0xDF4A,0xDCF7,
- 0xDDC1,0xDDC2,0xDD94,0xDD99,0xDD9A,0xDD5A,0xDFA8,0xDC25,0xDC9E,0xDC41,
- 0xDC32,0xDC33,0xDDCB,0xDDCA,0xDDCC,0xDD93,0xDDE0,0xDC71,0xDF6B,0xDE2B,
- 0xDE29,0xDE1A,0xDE26,0xDE27,0xDE2A,0xDEF8,0xDC3D,0xDE76,0xDD18,0xDC7A,
- 0xDD7F, 0,0xDFF0,0xDD9A,0xDD96,0xDD9E,0xDD9D,0xDDDC,0xDFDA,0xDE0B,
- 0xDC02,0xDC42,0xDE67,0xDF8B,0xDDE2,0xDF71,0xDE2F,0xDE2E,0xDCC6,0xDD8E,
- 0xDE7B,0xDE77,0xDE78,0xDE7C,0xDC7C,0xDE07,0xDD97,0xDFD9,0xDD0D,0xDD0E,
- 0xDDE3,0xDDE4,0xDEF3,0xDC75,0xDE37,
- /* plane 7, row 70 */
- 1 | (53 << 8), /* first, last */
- 0xD868,0xD869,0xD869,0xD869,0xD869,0xD84B,0xD868,0xD863,0xD853,
- 0xD858,0xD85D,0xD85D,0xD864,0xD864,0xD867,0xD868,0xD869,0xD869,0xD842,
- 0xD851,0xD853,0xD857,0xD863,0xD864,0xD864,0xD868,0xD842,0xD869,0xD869,
- 0xD84C,0xD854,0xD864,0xD869,0xD845,0xD85F,0xD866,0xD868,0xD853,0xD868,
- 0xD869,0xD854,0xD867,0xD867,0xD869,0xD85D,0xD864,0xD845,0xD85E,0xD864,
- 0xD869,0xD85A,0xD85E,0xD865,
- 1, /* first low-surrogate */
- 0xDE35,0xDD8F,0xDE80,0xDE7F,0xDED4,0xDEB4,0xDFEC,0xDF75,0xDD10,
- 0xDE69,0xDDA4,0xDFDB,0xDDD1,0xDF8D,0xDF76,0xDE39,0xDE84,0xDE82,0xDED2,
- 0xDCEE,0xDD11,0xDF84,0xDF74,0xDF8F,0xDF8E,0xDE3B,0xDCCB,0xDE88,0xDE86,
- 0xDF5C,0xDFA4,0xDC75,0xDE8B,0xDD19,0xDC9F,0xDDE5,0xDE40,0xDD12,0xDEFB,
- 0xDE8C,0xDFA5,0xDC77,0xDC78,0xDED6,0xDFDF,0xDDD2,0xDD1A,0xDFA9,0xDDD3,
- 0xDCCA,0xDDC4,0xDCB1,0xDE64,
- /* plane 7, row 71: --- */
- /* plane 7, row 72: --- */
- /* plane 7, row 73: --- */
- /* plane 7, row 74: --- */
- /* plane 7, row 75: --- */
- /* plane 7, row 76: --- */
- /* plane 7, row 77: --- */
- /* plane 7, row 78: --- */
- /* plane 7, row 79: --- */
- /* plane 7, row 80: --- */
- /* plane 7, row 81: --- */
- /* plane 7, row 82: --- */
- /* plane 7, row 83: --- */
- /* plane 7, row 84: --- */
- /* plane 7, row 85: --- */
- /* plane 7, row 86: --- */
- /* plane 7, row 87: --- */
- /* plane 7, row 88: --- */
- /* plane 7, row 89: --- */
- /* plane 7, row 90: --- */
- /* plane 7, row 91: --- */
- /* plane 7, row 92: --- */
- /* plane 7, row 93: --- */
- /* plane 7, row 94: --- */
- /* plane 15, row 1 */
- 1 | (94 << 8), /* first, last */
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0x5301,0xD842,0xD842,0xD87E,
- 0xD842,0xffff,0xD842,0xD844,0xD845,0xD846,0xD846,0xD848,0xffff,0xD851,
- 0xD840,0xD840,0xD840,0xD840,0xffff,0xD840,0x3436,0xD840,0xD841,0x434F,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD846,0xD842,0xffff,0x53FA,0xD844,
- 0xD844,0xD845,0xD845,0xD845,0xD845,0xD846,0xD846,0x9F99,0xD846,0xffff,
- 0xD847,0xD847,0xD847,0xD87E,0xD858,0xffff,0xD848,0xD848,0xD849,0xD84C,
- 0x6C49,0xD84F,0xD851,0xD851,0x8FB7,0xD845,0x3406,0xffff,0xD840,0xD840,
- 0xD840,0x4F29,0x343E,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD841,0xD858,0xD841,0xD841,
- 1, /* first low-surrogate */
- 0xDC02,0xDC8C,0xDCD4,0xDDA5,0xDC92,0xDC93,0xDCD8,0xDCD9,0xDDA7,
- 0xDE2B,0xDE2C,0xDE2D,0xDE30,0xDE2E,0xDEAB, 0,0xDD2D,0xDD6D,0xDC34,
- 0xDE0F, 0,0xDF9D,0xDDA2,0xDDD4,0xDF56,0xDFC3,0xDC14, 0,0xDF1A,
- 0xDC0F,0xDC10,0xDC9A,0xDC9B, 0,0xDDAC, 0,0xDC97,0xDD46, 0,
- 0xDD76,0xDD77,0xDDAE,0xDE3A,0xDE7D,0xDFC5,0xDFA8, 0, 0,0xDE41,
- 0xDE42,0xDDD8,0xDDD9,0xDEAA,0xDEAB,0xDD42,0xDD41, 0,0xDFC6, 0,
- 0xDD35,0xDD36,0xDD37,0xDC83,0xDF4D, 0,0xDDB5,0xDF17,0xDC82,0xDFB6,
- 0,0xDC72,0xDD5C,0xDDA8, 0,0xDDE3, 0, 0,0xDCE6,0xDD44,
- 0xDD45, 0, 0,0xDDC4,0xDDC5,0xDDC6,0xDDC7,0xDDC8,0xDDC9,0xDDCA,
- 0xDDD4,0xDD7D,0xDE72,0xDDB2,0xDDB4,
- /* plane 15, row 2 */
- 1 | (94 << 8), /* first, last */
- 0xD841,0xD841,0xD841,0xffff,0xD842,0xD842,0xD842,0xD842,0xD87E,
- 0xD842,0xD840,0x534E,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD844,0xD844,0xD844,0xffff,0xD845,0xD845,0xD845,0xD845,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xffff,0xD846,0xD847,0xD847,0xD847,0x5C81,
- 0xD848,0xffff,0xD848,0xD848,0xD848,0xD848,0x5F10,0xD849,0xD84A,0x6268,
- 0xD84A,0xD84C,0xD84C,0xffff,0xD84C,0x6742,0x6740,0x51EA,0xD84E,0xD84E,
- 0xD84F,0x6C62,0xD84F,0xD850,0xD850,0xD850,0xD851,0xD851,0xffff,0xffff,
- 0x7391,0xD854,0xD855,0xD855,0xD855,0xffff,0xD859,0xD859,0xD85A,0xD85A,
- 0xD85A,0x8FBB,0x8FBC,0xffff,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD841,
- 1, /* first low-surrogate */
- 0xDE82,0xDEC7,0xDEC8, 0,0xDC3C,0xDC3D,0xDC3E,0xDC3F,0xDC24,
- 0xDCD3,0xDD47, 0,0xDE3D,0xDEE2,0xDFB8,0xDFB9,0xDFC2,0xDFBA,0xDFC6,
- 0xDFBB,0xDDAD,0xDE4C,0xDE4D, 0,0xDEB2,0xDEB3,0xDEB4,0xDEB5,0xDDC3,
- 0xDDC4,0xDDC5,0xDDC6,0xDDC7, 0,0xDFCE,0xDC30,0xDD47,0xDD48, 0,
- 0xDC5C, 0,0xDC5F,0xDF18,0xDF19,0xDF7E, 0,0xDDB0,0xDE75, 0,
- 0xDE76,0xDC41,0xDD42, 0,0xDFBD, 0, 0, 0,0xDF1E,0xDF1F,
- 0xDC87, 0,0xDC78,0xDD88,0xDD89,0xDD8A,0xDE17,0xDE15, 0, 0,
- 0,0xDCE5,0xDE09,0xDF3B,0xDF4F, 0,0xDE2E,0xDE2F,0xDEFF,0xDEFD,
- 0xDEFE, 0, 0, 0,0xDC23,0xDCEA,0xDD2A,0xDD49,0xDD4A,0xDD4B,
- 0xDDDF,0xDDE0,0xDDE1,0xDDE2,0xDDC1,
- /* plane 15, row 3 */
- 1 | (94 << 8), /* first, last */
- 0xD840,0xD840,0xD840,0xD841,0xD840,0xD840,0xffff,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD87E,0xD842,0xffff,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0x3575,0xD842,0xD842,0xD842,0xffff,0xffff,0xD844,0x56E8,0xD844,
- 0x575B,0xD844,0xD844,0xffff,0xD844,0xffff,0xD844,0xD844,0xD844,0xD87E,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD846,0xffff,0xD846,0xD846,0xD847,0xffff,0xD847,0xD847,0x5C99,0xD847,
- 0xD847,0xD847,0x5C97,0xD847,0xD847,
- 1, /* first low-surrogate */
- 0xDDE3,0xDDE4,0xDDE5,0xDDC0,0xDDE6,0xDDF7, 0,0xDDE7,0xDDE8,
- 0xDDE9,0xDDEA,0xDDEB,0xDD0E,0xDD80,0xDD81,0xDDBA,0xDDBB,0xDDBC,0xDDBD,
- 0xDE3F,0xDE40,0xDE88,0xDC1F,0xDC46, 0,0xDC47,0xDC48,0xDD36,0xDD72,
- 0xDD96,0xDE47,0xDEE7,0xDF34,0xDF35,0xDF36,0xDF37,0xDFE3,0xDFE4,0xDFE5,
- 0xDFEB, 0,0xDFE6,0xDFE7,0xDFE8, 0, 0,0xDDB9, 0,0xDDBA,
- 0,0xDE63,0xDE64, 0,0xDE65, 0,0xDE66,0xDE7C,0xDE67,0xDC5A,
- 0xDD59,0xDDE9,0xDDEA,0xDDEB,0xDDEC,0xDDED,0xDDEE,0xDDEF,0xDEBF,0xDECB,
- 0xDEC3,0xDED5,0xDEC4,0xDEC5,0xDED3,0xDEC6,0xDEC7,0xDEC8,0xDEC9,0xDECA,
- 0xDD4A, 0,0xDDD1,0xDF61,0xDC37, 0,0xDD64,0xDD66, 0,0xDD67,
- 0xDD68,0xDD69, 0,0xDD73,0xDD6A,
- /* plane 15, row 4 */
- 1 | (94 << 8), /* first, last */
- 0xD847,0x6762,0xffff,0xD848,0x383C,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD87E,
- 0xD849,0xD849,0xD849,0xD84A,0xD84A,0x62A4,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xffff,0xD84A,0xD84A,0xD84A,0xD84C,0xD84C,
- 0xD84C,0xffff,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD87E,
- 0xD84C,0x6766,0xD84C,0xD84E,0xD84E,0xD84E,0xffff,0xD84E,0xD84E,0xffff,
- 0xD84F,0xD87E,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0x6CA3,0xD84F,0xffff,0xD850,0xD850,0xD850,0x3DA5,0xffff,
- 0xD850,0x707F,0xD850,0xD851,0xD851,0xD851,0xffff,0xD851,0xD87E,0xD852,
- 0xD853,0xD853,0xD853,0xD854,0xD854,
- 1, /* first low-surrogate */
- 0xDD6B, 0, 0,0xDC72, 0,0xDDB9,0xDF1C,0xDF36,0xDFBC,
- 0xDFBE,0xDFBF,0xDFC0,0xDC87,0xDDDC,0xDDDD,0xDDF5,0xDDDE,0xDDDF,0xDC9E,
- 0xDDE0,0xDDE1,0xDDE2,0xDE2C,0xDE2D, 0,0xDEA9,0xDE9C,0xDE9D,0xDE9E,
- 0xDE9F,0xDEA0,0xDEA1,0xDEA2, 0,0xDEA3,0xDEA4,0xDEA7,0xDC42,0xDC93,
- 0xDD51, 0,0xDD52,0xDD44,0xDD53,0xDF22,0xDFC6,0xDFC7,0xDFC9,0xDCDD,
- 0xDFCA, 0,0xDFC8,0xDF24,0xDF25,0xDF26, 0,0xDF27,0xDF28, 0,
- 0xDC58,0xDCFB,0xDCA7,0xDC88,0xDC89,0xDCA5,0xDCA8,0xDCA9,0xDCAA,0xDCAB,
- 0xDCAC,0xDCAD, 0,0xDC79, 0,0xDD94,0xDD95,0xDD96, 0, 0,
- 0xDD97, 0,0xDD98,0xDD4E,0xDD4F,0xDE19, 0,0xDF41,0xDD2A,0xDCF7,
- 0xDC04,0xDC19,0xDC17,0xDC40,0xDCEC,
- /* plane 15, row 5 */
- 1 | (94 << 8), /* first, last */
- 0xD855,0xD855,0x77F6,0xD855,0xD855,0xD856,0xD857,0xD858,0xffff,
- 0xD858,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0x8FC8,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xffff,0x95F5,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xD840,0xffff,0xD845,0xD840,0x4FAB,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0x3453,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD841,0xD841,0x5C2D,0xD841,0xD858,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xffff,0xffff,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD843,0x549C,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xffff,0xD843,0xD843,0xD843,
- 1, /* first low-surrogate */
- 0xDC1B,0xDC1C, 0,0xDE0E,0xDF52,0xDED8,0xDE26,0xDE74, 0,
- 0xDE75,0xDDC6,0xDF0B,0xDF0C,0xDF0D,0xDF0E,0xDF0F,0xDF10, 0,0xDC59,
- 0xDC5A,0xDE83,0xDE84,0xDE85, 0, 0,0xDE20,0xDE21,0xDE22,0xDE23,
- 0xDE24,0xDE29,0xDCF4, 0,0xDD8F,0xDD51, 0,0xDE17,0xDE18,0xDE5B,
- 0xDE19,0xDE1A, 0,0xDE1B,0xDE1C,0xDE1D,0xDE1E,0xDE1F,0xDE20,0xDE21,
- 0xDC8B,0xDC88, 0,0xDD85,0xDE87,0xDDC7,0xDE4C,0xDE4D,0xDEFC,0xDEFD,
- 0xDEFE,0xDEFF, 0, 0,0xDC56,0xDC57,0xDC58,0xDC59,0xDCDC,0xDCDD,
- 0xDD73,0xDD9D,0xDDA1,0xDD9E,0xDD9F,0xDDA0,0xDDE6,0xDE51,0xDE52,0xDF3D,
- 0xDC22, 0,0xDC23,0xDC24,0xDC25,0xDC26,0xDC27,0xDC28,0xDC29,0xDC2A,
- 0xDC2B, 0,0xDC40,0xDC2C,0xDC2D,
- /* plane 15, row 6 */
- 1 | (94 << 8), /* first, last */
- 0xD843,0xD843,0xD843,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0xD844,0xD844,0xffff,0xD844,0xD844,0xD844,0xD844,0xD844,0x5788,
- 0xD845,0xffff,0xD845,0xD845,0xffff,0xffff,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xffff,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0x34AC,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD87E,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD848,0xD848,0xD848,0xD848,0xffff,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD849,0xffff,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,
- 1, /* first low-surrogate */
- 0xDC2E,0xDC2F,0xDC30,0xDDD0,0xDEA8,0xDE94,0xDE95,0xDE96,0xDE97,
- 0xDE98,0xDE9C,0xDE9B, 0,0xDEA1,0xDEA0,0xDE99,0xDE9A,0xDEA7, 0,
- 0xDD64, 0,0xDE00,0xDE01, 0, 0,0xDEE5,0xDEE9,0xDEFB,0xDEFC,
- 0xDEEA,0xDEEB,0xDEEC,0xDEED,0xDEEE,0xDEEF,0xDEFA,0xDEF0,0xDEF1,0xDEF2,
- 0xDEF3,0xDEF4,0xDD52,0xDD53,0xDD54,0xDD55,0xDD58,0xDD56, 0,0xDDDD,
- 0xDDDE,0xDDE3,0xDDDF,0xDDE0,0xDF22,0xDF23,0xDF68,0xDFDF, 0,0xDC44,
- 0xDD94,0xDD95,0xDD96,0xDD97,0xDD98,0xDD99,0xDC79,0xDD9A,0xDD9B,0xDD9D,
- 0xDD9E,0xDD9F,0xDDA0,0xDFF3,0xDFF2,0xDC1F,0xDC88,0xDD8F,0xDD90, 0,
- 0xDDFD,0xDDFE,0xDDFF,0xDE00,0xDE01,0xDE1A, 0,0xDDE3,0xDDE4,0xDDE5,
- 0xDDE6,0xDDE7,0xDDEB,0xDDE8,0xDDE9,
- /* plane 15, row 7 */
- 1 | (94 << 8), /* first, last */
- 0xD849,0xD849,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0x39DE,0xD84A,0x62C3,0xD84B,0xD84B,0xD84B,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0x6619,0xD84C,0xD84C,0xffff,0xD84D,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84C,0x3B49,0xD84C,0x67A1,0xD84C,0x67A6,0xD84C,
- 0xffff,0xD84D,0xD84C,0xD84C,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0x3C91,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0x3CD3,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xffff,0xD84F,0x3DA9,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD851,0xD851,
- 0xffff,0xD851,0xD851,0xD851,0xD851,
- 1, /* first low-surrogate */
- 0xDDEA,0xDE1D,0xDDA4,0xDDA3,0xDED4,0xDEC6,0xDEC7,0xDEC8,0xDEC9,
- 0xDECA,0xDECB,0xDECC,0xDECD, 0,0xDECE, 0,0xDEB8,0xDEB9,0xDEBA,
- 0xDC6E,0xDCDB,0xDCDC,0xDD68,0xDD69,0xDD6A,0xDD6B,0xDD6C,0xDD6D,0xDD6E,
- 0,0xDF24,0xDF25, 0,0xDC00,0xDFE5,0xDFF9,0xDFE7,0xDFE8,0xDFE9,
- 0xDFFE,0xDFEA,0xDFEB,0xDFEC, 0,0xDFED, 0,0xDFEE, 0,0xDFEF,
- 0,0xDC17,0xDFF0,0xDFF1,0xDC94,0xDD5B,0xDD5C,0xDD5D,0xDF2F, 0,
- 0xDF30,0xDF31,0xDF32,0xDF33,0xDCCC,0xDCCD,0xDCCE,0xDCAE,0xDCAF,0xDCB0,
- 0,0xDCCF,0xDCD0,0xDCD1,0xDCD2,0xDCD3, 0,0xDCD4, 0,0xDDA6,
- 0xDDA7,0xDDA8,0xDDB0,0xDDA9,0xDDAA,0xDDAB,0xDDAC,0xDDAD,0xDCFB,0xDCFC,
- 0,0xDE2D,0xDE2E,0xDE50,0xDE2F,
- /* plane 15, row 8 */
- 1 | (94 << 8), /* first, last */
- 0xD851,0xD851,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xffff,0xD852,0xD853,0xD853,0xD853,0xD853,0xD855,0xD855,0xD855,0xD855,
- 0x77FE,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD87E,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD856,0xffff,0xD857,0xffff,0xD857,
- 0xD857,0xD858,0x7F57,0xD858,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0x43D5,0xD859,0xD859,0xffff,0xffff,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD87E,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0x82C5,0xD85A,0xD85C,
- 0xD85C,0xD85C,0xffff,0xD85C,0xD85C,0xD85D,0xD85F,0xD861,0x8FDF,0xD861,
- 0xD861,0x8FDC,0x488C,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0x4099,0xD861,0xD861,0xD863,0xD863,
- 1, /* first low-surrogate */
- 0xDE30,0xDF65,0xDCE6,0xDD0C,0xDD02,0xDD03,0xDD04,0xDD05,0xDD06,
- 0,0xDFC0,0xDC24,0xDC25,0xDD16,0xDD32,0xDC20,0xDC21,0xDC22,0xDC23,
- 0,0xDC25,0xDE19,0xDE24,0xDE1A,0xDE1B,0xDE1C,0xDE1D,0xDD52,0xDE1E,
- 0xDF5A,0xDF5B,0xDF5C,0xDF5D,0xDF5E,0xDD31, 0,0xDE29, 0,0xDF88,
- 0xDF89,0xDE89, 0,0xDF56,0xDCD1,0xDCE6,0xDD32,0xDD33,0xDE52,0xDE53,
- 0,0xDE54,0xDE55, 0, 0,0xDF29,0xDF2A,0xDF2B,0xDF2C,0xDF2D,
- 0xDD92,0xDF2E,0xDF2F,0xDF30,0xDF31,0xDF32,0xDF33, 0,0xDF34,0xDD9B,
- 0xDE23,0xDE24, 0,0xDE25,0xDE27,0xDE16,0xDCA0,0xDC6F, 0,0xDC70,
- 0xDC71, 0, 0,0xDC72,0xDC73,0xDC74,0xDE9C,0xDEAA,0xDE9D,0xDE9E,
- 0,0xDEAB,0xDE9F,0xDE35,0xDE38,
- /* plane 15, row 9 */
- 1 | (94 << 8), /* first, last */
- 0xD868,0xD840,0xD840,0xD856,0xD840,0xD869,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0x4FE4,0xD840,0xD840,0xffff,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD858,0xD841,0xffff,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xffff,0xD842,0xD842,0xD842,0xD840,0xD842,
- 0xD842,0xD843,0x551B,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0x3588,0xffff,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD844,0xD844,0x57AA,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0x57AB,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0xD844,0xD844,0xD844,0xD845,
- 1, /* first low-surrogate */
- 0xDF8D,0xDC35,0xDC36,0xDEEE,0xDCB4,0xDEC9,0xDD32,0xDD55,0xDE44,
- 0xDE45,0xDE46,0xDE47, 0,0xDE48,0xDE49, 0,0xDE4A,0xDE4B,0xDE4C,
- 0xDE4D,0xDE4E,0xDE4F,0xDE50,0xDE51,0xDE99,0xDDD1, 0,0xDDD2,0xDDD3,
- 0xDDD4,0xDDD5,0xDF21,0xDF22,0xDF23,0xDC68,0xDC69,0xDC6A,0xDCE2,0xDD45,
- 0xDDEC,0xDDED,0xDDEE,0xDDEF, 0,0xDE62,0xDE63,0xDEF4,0xDC6F,0xDF44,
- 0xDF45,0xDC79, 0,0xDC7A,0xDC7B,0xDC7C,0xDC7D,0xDC7E,0xDC7F,0xDC80,
- 0, 0,0xDC81,0xDC82,0xDC83,0xDC84,0xDC85,0xDC86,0xDC87,0xDC8F,
- 0xDC88,0xDC89,0xDEC5,0xDEC6, 0,0xDEC7,0xDEC8,0xDEC9,0xDECA,0xDECB,
- 0xDECC, 0,0xDECD,0xDECE,0xDEE3,0xDECF,0xDED0,0xDED1,0xDED2,0xDED3,
- 0xDEC4,0xDED4,0xDED5,0xDED6,0xDD20,
- /* plane 15, row 10 */
- 1 | (94 << 8), /* first, last */
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0x36C9,0xD87E,0xffff,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD846,0xD846,0xD846,0xD846,0x5BA9,0xD846,0xD846,0xD846,0xD846,
- 0x3917,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD85A,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD85A,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD87E,0xD849,0xD849,0xffff,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD87E,0xD849,0xD849,0xffff,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 1, /* first low-surrogate */
- 0xDD21,0xDE1A,0xDE12,0xDE14,0xDE15,0xDE16,0xDE19,0xDE17,0xDE18,
- 0,0xDC61, 0,0xDF12,0xDF13,0xDF14,0xDF15,0xDF16,0xDF17,0xDF18,
- 0xDF19,0xDD61,0xDD62,0xDD63,0xDDF5, 0,0xDDF6,0xDDF7,0xDDF8,0xDF29,
- 0,0xDC5D,0xDC57,0xDC58,0xDC59,0xDC5A,0xDC5B,0xDDBB,0xDDD1,0xDDBC,
- 0xDDBD,0xDCDF,0xDDD0,0xDDBE,0xDDBF,0xDDC0,0xDDC1,0xDDC2,0xDDC3,0xDDC4,
- 0xDF6C,0xDCA1,0xDCA2,0xDCA3,0xDD93,0xDE0D,0xDE0F,0xDE0E,0xDE10,0xDE11,
- 0xDE12,0xDC95,0xDCE5,0xDE2F, 0,0xDE57,0xDE30,0xDE68,0xDE2B,0xDE31,
- 0xDE58,0xDCA2,0xDE32,0xDE59, 0,0xDE5A,0xDE33,0xDE5B,0xDE5C,0xDE5D,
- 0xDE1E,0xDDAE,0xDDAF,0xDE3B,0xDE3C,0xDE3D,0xDF07,0xDF08,0xDF09,0xDF0A,
- 0xDF0B,0xDF0C,0xDF0D,0xDF0E,0xDF0F,
- /* plane 15, row 11 */
- 1 | (94 << 8), /* first, last */
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD87E,0xffff,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD843,
- 0xffff,0xD84C,0xD84C,0xD84C,0xD87E,0xD84C,0xD84C,0xD84D,0xD84D,0xD84D,
- 0xffff,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0x6811,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0x7551,0xD850,0xD850,0xD850,0xD850,
- 1, /* first low-surrogate */
- 0xDF10,0xDF22,0xDF11,0xDF12,0xDF13,0xDF14,0xDF15,0xDF16,0xDF17,
- 0xDF18,0xDCB8, 0,0xDC46,0xDC47,0xDC48,0xDCE1,0xDD81,0xDD83,0xDC75,
- 0,0xDD85,0xDD86,0xDF2A,0xDCD1,0xDF2B,0xDF6B,0xDC18,0xDC19,0xDC1A,
- 0,0xDC1B,0xDC1C,0xDC1D,0xDC1E,0xDC1F,0xDC20,0xDC21,0xDC22,0xDC23,
- 0,0xDC24,0xDC25,0xDC26,0xDC27,0xDC28,0xDC29,0xDC2A,0xDDEF,0xDF49,
- 0xDF4A,0xDF4B,0xDF4C,0xDF4D,0xDF4E,0xDF4F,0xDF50,0xDF51,0xDF52,0xDF53,
- 0xDF54,0xDF5A,0xDF55,0xDC5F,0xDD02,0xDD03,0xDD04,0xDD05,0xDCD5,0xDD06,
- 0xDD07,0xDCD6,0xDD08,0xDD09,0xDD0A,0xDD0B,0xDCD7,0xDD0C,0xDD0D,0xDDC8,
- 0xDDC9,0xDDCA,0xDDCB,0xDDCC,0xDDCD,0xDDCE,0xDDCF,0xDDD0,0xDDD1,0xDDD2,
- 0,0xDDD3,0xDDD4,0xDDD5,0xDDD6,
- /* plane 15, row 12 */
- 1 | (94 << 8), /* first, last */
- 0xD850,0xD850,0xD850,0xD851,0xD851,0xD851,0xffff,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD852,0xD852,0xD852,0xD852,0x3EBD,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD87E,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xffff,0xD852,0xD852,0xD852,0xD853,0xD853,
- 0xD853,0xD853,0x7553,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD854,0xD854,0xD87E,0xD854,0xD855,0xD855,0xD855,
- 0x7818,0xD855,0xD855,0xD855,0xD855,0xD855,0xffff,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0x4133,0xD855,0xD855,
- 0xD855,0xD856,0xD856,0xD856,0xD856,0xffff,0x7AD7,0xD84E,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD857,
- 1, /* first low-surrogate */
- 0xDDD7,0xDDE2,0xDDD8,0xDD04,0xDD05,0xDD06, 0,0xDE43,0xDE44,
- 0xDF84,0xDF8F,0xDF85,0xDF86,0xDD2F,0xDD1A,0xDD1B,0xDD1C, 0,0xDD1D,
- 0xDD1E,0xDD1F,0xDD20,0xDD21,0xDD22,0xDD2C,0xDD23,0xDD24,0xDD0E,0xDD25,
- 0xDD2B,0xDD2C,0xDD0B,0xDEEE, 0,0xDFC3,0xDFD8,0xDFD9,0xDC38,0xDC39,
- 0xDC3A,0xDC3B, 0,0xDC3C,0xDC3D,0xDC3E,0xDC3F,0xDC40,0xDD48,0xDD4C,
- 0xDF28,0xDF51,0xDF52,0xDC4C,0xDD23,0xDD45,0xDD24,0xDC31,0xDC32,0xDC33,
- 0,0xDC34,0xDC35,0xDC36,0xDC40,0xDC37, 0,0xDC38,0xDC3D,0xDE38,
- 0xDE39,0xDE3A,0xDE3B,0xDE3C,0xDE4C,0xDF73,0xDF74, 0,0xDF75,0xDF76,
- 0xDF79,0xDD41,0xDD42,0xDD43,0xDE5B, 0, 0,0xDCA6,0xDE5C,0xDEE5,
- 0xDEE6,0xDEE7,0xDEE8,0xDEED,0xDE30,
- /* plane 15, row 13 */
- 1 | (94 << 8), /* first, last */
- 0x7C7E,0xD857,0xD857,0xD858,0xD858,0xD858,0xD859,0xffff,0xD859,
- 0xD859,0xD859,0xffff,0xD859,0xffff,0xD859,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85C,
- 0x867E,0xD85C,0xffff,0xD85C,0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,0xffff,
- 0xD85D,0xD85D,0xD85F,0xD85F,0xffff,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD860,0x4844,0xD860,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD863,
- 0xD863,0xD863,0xD864,0xffff,0xD840,0xD840,0xD840,0xD840,0xD840,0xffff,
- 0xD840,0xD840,0xD87E,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD841,0xD841,
- 2, /* first low-surrogate */
- 0xDE31,0xDF94,0xDF51,0xDFFD,0xDFFE,0xDCE9, 0,0xDEB3,
- 0xDE84,0xDE94, 0,0xDE9C, 0,0xDE85,0xDD00,0xDD37,0xDD57,0xDF54,
- 0xDF68,0xDF55,0xDF5C,0xDF56,0xDF57,0xDF58,0xDF59,0xDF5A,0xDF5B,0xDE34,
- 0,0xDE35, 0,0xDE39,0xDE36,0xDE37,0xDE38,0xDDE5,0xDE59, 0,
- 0xDE3A,0xDE3B,0xDD28,0xDE89, 0,0xDE8A,0xDE8B,0xDE8C,0xDE8D,0xDFBC,
- 0xDEA3, 0,0xDEA4,0xDC93,0xDC94,0xDC95,0xDC96,0xDC97,0xDEB9,0xDE4F,
- 0xDE50,0xDE51,0xDC76, 0,0xDCFB,0xDC83,0xDD38,0xDD5D,0xDE71, 0,
- 0xDE77,0xDE78,0xDC07,0xDEC3,0xDE79,0xDE7A,0xDE7B,0xDE7C,0xDE72,0xDE7D,
- 0xDEA0,0xDE7E,0xDE7F,0xDE80,0xDE81,0xDE82,0xDE83,0xDE9E,0xDE84,0xDE85,
- 0xDE86,0xDE87,0xDE88,0xDC93,0xDC94,
- /* plane 15, row 14 */
- 1 | (94 << 8), /* first, last */
- 0xD841,0xD841,0xD841,0xffff,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0x5266,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD843,0xD843,0x5520,0xD843,0xD843,0xD843,0xffff,0xffff,
- 0xD843,0xD843,0x5521,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0x57D7,0xD844,0xD844,0xD844,0xD844,0xD844,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xffff,0x36E1,0xD845,0xD87E,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0x36E2,0xD845,
- 0xD846,0xD846,0xD846,0xD846,0x5BBE,
- 1, /* first low-surrogate */
- 0xDC95,0xDCEF,0xDCF0, 0,0xDD8D,0xDD8F,0xDD90,0xDD91,0xDD92,
- 0xDDDE,0xDDE1,0xDE53, 0,0xDF4A,0xDF4B,0xDF4C,0xDF51,0xDF4D,0xDF48,
- 0xDC74,0xDC75,0xDD20,0xDD21,0xDDA5,0xDDA6,0xDE73,0xDE74,0xDF50,0xDF51,
- 0xDF52,0xDF53,0xDCDB,0xDCDC, 0,0xDCDD,0xDCDE,0xDCFF, 0, 0,
- 0xDCDF,0xDCE0, 0,0xDCE1,0xDCE2,0xDCE3,0xDCE4,0xDCE5,0xDCE6,0xDCE7,
- 0xDCE8,0xDCE9,0xDCEA,0xDF07,0xDF08,0xDF09,0xDF0A,0xDF0B,0xDF0C,0xDF0D,
- 0,0xDF1A,0xDF0E,0xDF0F,0xDF10,0xDF1C,0xDD27,0xDD66,0xDD98,0xDD99,
- 0xDE33,0xDE24,0xDE25,0xDE26, 0, 0,0xDF3E,0xDC64,0xDF3F,0xDF57,
- 0xDF40,0xDF41,0xDF58,0xDF42,0xDF43,0xDF44,0xDF45,0xDF46, 0,0xDF47,
- 0xDD6B,0xDD6C,0xDE10,0xDE11,
- /* plane 15, row 15 */
- 1 | (94 << 8), /* first, last */
- 0xD846,0xD846,0xD847,0xD847,0xffff,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD848,0xD848,0xD848,0xD848,0x387C,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0x38E3,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xffff,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xffff,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xffff,0xD84A,0xD84A,0xD84A,0xD859,0xD859,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0x3AEC,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 1, /* first low-surrogate */
- 0xDF75,0xDFEF,0xDC6A,0xDC6B, 0,0xDC6C,0xDC6D,0xDC6E,0xDDEF,
- 0xDDF0,0xDDF1,0xDDF2,0xDDF3,0xDDF4,0xDDF5,0xDDFF,0xDDF6,0xDE02,0xDDF7,
- 0xDC22,0xDCC4,0xDCC3,0xDE28, 0,0xDF20,0xDF25,0xDF22,0xDF23,0xDFEB,
- 0,0xDCF9,0xDCFA,0xDE99,0xDE9A,0xDE9B,0xDE63, 0,0xDE5E,0xDE5F,
- 0xDE60,0xDE9C,0xDE61,0xDE9D,0xDF54,0xDF55,0xDF56,0xDF57,0xDF58,0xDF59,
- 0xDF5A,0xDF19,0xDF6A,0xDF5B,0xDF5C,0xDF5D,0xDF66, 0,0xDF5E,0xDF5F,
- 0xDF1A,0xDF60,0xDF61, 0,0xDF62,0xDF1B,0xDF63,0xDC10,0xDC11,0xDC4C,
- 0xDC9B,0xDCEB,0xDCEC,0xDCED,0xDCEE,0xDDA3,0xDDA8,0xDDA6, 0,0xDF2F,
- 0xDF30,0xDF31,0xDF32,0xDF33,0xDC4F,0xDC51,0xDC52,0xDC7D,0xDC53,0xDC54,
- 0xDC55,0xDC56,0xDC57,0xDC58,0xDC59,
- /* plane 15, row 16 */
- 1 | (94 << 8), /* first, last */
- 0xD84D,0xD84D,0xD84D,0x6857,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xffff,0xD84D,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84F,0xD84F,0xffff,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0x3CDF,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD87E,
- 0xffff,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,
- 1, /* first low-surrogate */
- 0xDC5A,0xDC5B,0xDC5C, 0,0xDC5D,0xDC5E,0xDC5F,0xDC6F,0xDC60,
- 0xDC61,0xDC62,0xDC63,0xDC72,0xDC64, 0,0xDC6E,0xDCB5,0xDF65,0xDF66,
- 0xDF67,0xDF68,0xDF69,0xDF6A,0xDF6B,0xDF6C,0xDD0E,0xDD43, 0,0xDD0F,
- 0xDD44,0xDD45,0xDD46,0xDD47,0xDD48,0xDD49,0xDD10,0xDD4A,0xDD4B,0xDD4C,
- 0xDD4D, 0,0xDD4E,0xDD4F,0xDD50,0xDD51,0xDD52,0xDD53,0xDD54,0xDD55,
- 0xDD56,0xDD57,0xDD58,0xDD59,0xDD5A,0xDD1D,0xDD5B,0xDD5C,0xDD5D,0xDD06,
- 0,0xDDFE,0xDDFF,0xDE00,0xDE01,0xDE02,0xDE03,0xDE04,0xDE05,0xDE06,
- 0xDE07,0xDE18,0xDE08,0xDE09,0xDDF3,0xDE0A,0xDE0B,0xDE1B,0xDE0C,0xDE0D,
- 0xDE0E,0xDE0F,0xDE10,0xDD0F,0xDD61,0xDD79,0xDFC1,0xDFAC,0xDFAD,0xDD43,
- 0xDD44,0xDD45,0xDD46,0xDD47,0xDD48,
- /* plane 15, row 17 */
- 1 | (94 << 8), /* first, last */
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0x3EC7,0xD87E,0xD852,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xffff,0xD853,0xD853,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD855,0xD854,0xD854,0xD855,0xD855,0xD855,0xffff,0xD855,0xD855,0xffff,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xffff,0xD856,0xD856,0xD856,0xffff,
- 0xD856,0xD856,0xD856,0xD856,0xffff,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD857,0xD857,0xD857,0xD857,0xffff,
- 0xffff,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0x7F3C,0xD858,
- 0xD858,0xD858,0xD859,0xffff,0xD859,
- 1, /* first low-surrogate */
- 0xDD49,0xDD64,0xDD4A,0xDD4B,0xDD4C,0xDD4D, 0,0xDD2D,0xDF39,
- 0xDC57,0xDC58,0xDC59,0xDC5F,0xDC5A,0xDD6A,0xDF2B,0xDF5D,0xDF5E,0xDF5F,
- 0,0xDF60,0xDF61,0xDC58,0xDC59,0xDD4A,0xDD4B,0xDD4C,0xDD4D,0xDD4E,
- 0xDC57,0xDFB3,0xDFB4,0xDC6E,0xDC5B,0xDC5C, 0,0xDC5D,0xDC5E, 0,
- 0xDC6C,0xDE3D,0xDE54,0xDE3E,0xDE55,0xDE56,0xDE3F,0xDE57,0xDE58,0xDE59,
- 0xDE5A,0xDE5B,0xDE5C,0xDF88,0xDF89, 0,0xDD58,0xDD59,0xDD5A, 0,
- 0xDE67,0xDE68,0xDE69,0xDE6A, 0,0xDE6B,0xDE6C,0xDEFE,0xDEFF,0xDF00,
- 0xDF01,0xDF02,0xDF03,0xDF04,0xDF05,0xDE39,0xDE3A,0xDE3B,0xDE3C, 0,
- 0,0xDFB2,0xDFB3,0xDFB4,0xDFB5,0xDFB6,0xDFB7,0xDFB8, 0,0xDEA2,
- 0xDF61,0xDF62,0xDC14, 0,0xDCEB,
- /* plane 15, row 18 */
- 1 | (94 << 8), /* first, last */
- 0xD859,0xD859,0xffff,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xffff,0xffff,0xffff,0xD859,0xffff,0xD85A,0xD85A,0xffff,0x8273,0xD85A,
- 0xffff,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD87E,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xffff,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xffff,0xD85C,0xD85C,0xD85D,0x4627,
- 0xD85D,0xD85E,0xffff,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD860,0xD860,0xD860,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD862,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0x96BE,
- 0xD864,0xD866,0xD840,0x66FA,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,
- 1, /* first low-surrogate */
- 0xDD42,0xDD48, 0,0xDD43,0xDD4E,0xDD44,0xDD45,0xDEB4,0xDEB5,
- 0, 0, 0,0xDEB6, 0,0xDCE1,0xDD05, 0, 0,0xDF9A,
- 0,0xDF9B,0xDF9C,0xDF9D,0xDF9E,0xDF9F,0xDD9A,0xDFA0,0xDFA1,0xDFA2,
- 0xDFB5,0xDFA3,0xDFA4, 0,0xDFA5,0xDFA6,0xDFA7,0xDFA8,0xDFAF,0xDFA9,
- 0xDFAA,0xDFAB,0xDFAC,0xDFAD,0xDFB3, 0,0xDDA0,0xDE56,0xDE34, 0,
- 0xDE3C,0xDC0C, 0,0xDC3E,0xDCA3,0xDD30,0xDD31,0xDE97,0xDE98,0xDE99,
- 0xDE9A,0xDE9B,0xDEB2,0xDEAB,0xDEAC,0xDEFC,0xDEE8,0xDEE9,0xDEEA,0xDFF1,
- 0xDD3F,0xDCCE,0xDE6D,0xDE6E,0xDE6F,0xDE70,0xDE71,0xDE72,0xDE73, 0,
- 0xDC78,0xDC3A,0xDD67, 0,0xDD64,0xDD65,0xDF07,0xDEC4,0xDEC5,0xDEC6,
- 0xDEC7,0xDEC8,0xDEC9,0xDEE5,0xDECA,
- /* plane 15, row 19 */
- 1 | (94 << 8), /* first, last */
- 0xD840,0xffff,0xD840,0xD840,0xD840,0xD840,0xD840,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xffff,0xD841,0xD842,0xD842,0xD842,0xD842,0xD861,0xD842,
- 0xD842,0xD843,0xD843,0xD843,0xD843,0x35AB,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xffff,0xffff,0xD843,0xD843,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0xD844,0xD844,0xD844,0xD844,0x364B,0xD844,0xD844,0xD844,0xD844,
- 0xffff,0xffff,0xD844,0xD844,0xD844,0xD844,0xD845,0xD845,0xD845,0xD845,
- 0xD846,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0x5A72,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,
- 1, /* first low-surrogate */
- 0xDECB, 0,0xDECC,0xDECD,0xDECE,0xDECF,0xDED0,0xDC97,0xDC9A,
- 0xDC9B,0xDDEA,0xDDEC,0xDDED,0xDDF7,0xDDEE,0xDDEF,0xDE5B,0xDE5C,0xDE5D,
- 0xDF6D,0xDF6E, 0,0xDF6F,0xDC81,0xDC82,0xDD4F,0xDDAD,0xDF0A,0xDE7E,
- 0xDF69,0xDD54,0xDD55,0xDD56,0xDD57, 0,0xDD58,0xDD59,0xDD5A,0xDD5B,
- 0xDD5C,0xDD5D, 0, 0,0xDD5E,0xDD5F,0xDF3B,0xDF36,0xDF3C,0xDF3D,
- 0xDF3E,0xDF3F,0xDF40,0xDF41,0xDF42, 0,0xDF43,0xDF44,0xDF45,0xDF37,
- 0, 0,0xDF46,0xDF47,0xDF48,0xDF49,0xDD2D,0xDDA5,0xDE3D,0xDE3F,
- 0xDD6E,0xDFE7,0xDF75,0xDF76,0xDF77,0xDF78,0xDF79,0xDF7A,0xDF7B,0xDF7C,
- 0xDF8E,0xDF7D,0xDF7E, 0,0xDF7F,0xDF80,0xDF81,0xDF82,0xDF83,0xDF84,
- 0xDF85,0xDF86,0xDF87,0xDF88,0xDF89,
- /* plane 15, row 20 */
- 1 | (94 << 8), /* first, last */
- 0xD845,0xD845,0xD845,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD847,0xD847,0xD847,
- 0xffff,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0x37E2,0xD847,0xD847,0xD847,0xD847,0xD847,0xffff,0xD847,0xD847,
- 0xD847,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD849,0xD849,0xD849,0xffff,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD84A,0xD84A,0xffff,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 1, /* first low-surrogate */
- 0xDF8A,0xDF8B,0xDF8C,0xDD6F,0xDD70,0xDD71,0xDD72,0xDE2A,0xDE2B,
- 0xDE2C,0xDE2D,0xDE2E,0xDE2F,0xDE30,0xDE31,0xDF83,0xDC84,0xDC85,0xDC93,
- 0,0xDC86,0xDC87,0xDC88,0xDC89,0xDC8A,0xDC8B,0xDE36,0xDE38,0xDE39,
- 0xDE3A, 0,0xDE3B,0xDE3C,0xDE3D,0xDE3E,0xDE3F, 0,0xDE40,0xDE41,
- 0xDE42,0xDCDE,0xDCDF,0xDCE0,0xDCE1,0xDE4A,0xDE4B,0xDE4C,0xDE4D,0xDE4E,
- 0xDE4F,0xDE50,0xDF27,0xDFF9,0xDFFA,0xDFFB,0xDC98,0xDC99,0xDC9A, 0,
- 0xDD1E,0xDE9E,0xDEF7,0xDE9F,0xDEA0,0xDEF0,0xDEF8,0xDEF9,0xDEA1,0xDEA2,
- 0xDEA3,0xDEA4,0xDEA5,0xDEFA,0xDEFB,0xDEFC,0xDEFD,0xDEFE,0xDF1F,0xDEFF,
- 0xDF00,0xDF8C,0xDF01,0xDDC2,0xDDC3, 0,0xDDD3,0xDE4E,0xDFAF,0xDFB0,
- 0xDFB1,0xDFB2,0xDFB3,0xDFC6,0xDFB4,
- /* plane 15, row 21 */
- 2 | (94 << 8), /* first, last */
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xffff,0xD84C,0xD84C,0xD84C,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0x68BD,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xffff,0xD84D,
- 0xD84D,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD87E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84F,0xD84F,
- 2, /* first low-surrogate */
- 0xDFB5,0xDFB6,0xDFB7,0xDFB8,0xDFB9,0xDFBA,0xDFBB,0xDFBC,
- 0xDFBD,0xDFBE,0xDFBF,0xDFC1,0xDFC0,0xDFC2,0xDFC3,0xDF51,0xDF52,0xDF53,
- 0xDF54,0xDF55,0xDC5A,0xDC50,0xDC51,0xDC78,0xDCF8,0xDCF9,0xDDC6,0xDDCB,
- 0xDDCC,0xDDCD,0xDDCE,0xDDCF,0xDDD0,0xDDD1,0xDDD2,0xDDD3,0xDDD4,0xDDD5,
- 0,0xDF37,0xDF38,0xDF73,0xDC90,0xDC91,0xDCBF,0xDC92,0xDC93,0xDC94,
- 0xDC95,0xDC96,0xDC97,0xDC98,0xDC99, 0,0xDC9A,0xDC9B,0xDC9C,0xDC9D,
- 0xDC9E,0xDC9F,0xDCA0,0xDCA1,0xDCA2,0xDCA3,0xDCA4,0xDCA5, 0,0xDCA6,
- 0xDCA7,0xDCBF,0xDCC0,0xDCC1,0xDCC2,0xDCC3,0xDCC4,0xDCC5,0xDCC6,0xDD75,
- 0xDE43,0xDE12,0xDE9F,0xDE91,0xDCF6,0xDE92,0xDE93,0xDE94,0xDF7E,0xDF7F,
- 0xDF80,0xDF81,0xDF82,0xDC4C,0xDC63,
- /* plane 15, row 22 */
- 1 | (94 << 8), /* first, last */
- 0xD84F,0xD84F,0xD84F,0xD850,0xD84F,0xD84F,0xD84F,0xD84F,0x6E15,
- 0xD84F,0xffff,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0x3D0E,
- 0xffff,0xffff,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD850,0xD850,0xD850,0xD850,0xffff,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0x3DC1,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xffff,0xD850,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD852,0x7413,0xD852,0x3ED9,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0x74F8,0xD852,0xD852,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xffff,0xD853,0xD853,
- 0xD854,0xD854,0xD854,0xD854,0x7B3D,
- 1, /* first low-surrogate */
- 0xDDC0,0xDDC1,0xDDC2,0xDE3A,0xDDC3,0xDDC4,0xDDC5,0xDDC6, 0,
- 0xDDC7, 0,0xDDC8,0xDD73,0xDDC9,0xDDCA,0xDDCB,0xDDCC,0xDDCD, 0,
- 0, 0,0xDDCE,0xDDCF,0xDDD0,0xDDD1,0xDDD2,0xDDD3,0xDDD4,0xDDD5,
- 0xDE3B,0xDE3C,0xDE3D,0xDE3E, 0,0xDE3F,0xDE40,0xDE41,0xDE42,0xDE43,
- 0,0xDE44,0xDE45,0xDE59,0xDE46,0xDE47,0xDE48, 0,0xDE49,0xDD13,
- 0xDD82,0xDD83,0xDE66,0xDE67,0xDD65, 0,0xDD66, 0,0xDD75,0xDD74,
- 0xDD67,0xDD6D,0xDD76,0xDD68,0xDD69,0xDD6A,0xDD6B,0xDD4F,0xDD6C,0xDEF8,
- 0xDF45, 0,0xDF46,0xDFE4,0xDC85,0xDC6F,0xDC70,0xDD82,0xDD83,0xDD84,
- 0xDD8B,0xDF2D,0xDF68,0xDF69,0xDF77,0xDF64,0xDF6A, 0,0xDFF2,0xDFE2,
- 0xDC63,0xDC64,0xDC65,0xDC66,
- /* plane 15, row 23 */
- 1 | (94 << 8), /* first, last */
- 0xD854,0xD854,0x76D8,0xffff,0xD854,0xD854,0xD854,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xffff,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xffff,0xD855,0x4148,0xD855,0xD855,
- 0xD855,0x79FC,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xffff,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0x7B39,0xD856,0xD856,0xD857,0xD857,
- 0xD857,0xffff,0x7D4B,0xD857,0xffff,0xffff,0xD857,0xD857,0xD857,0xD857,
- 0xD858,0xD858,0xD858,0xD858,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xffff,0xD859,0xffff,0xD85A,0xD85A,0xffff,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0x83B9,0xD85A,
- 0xD85B,0xD85A,0xD85A,0xD85B,0xD85B,
- 1, /* first low-surrogate */
- 0xDC67,0xDC68, 0, 0,0xDD72,0xDD7D,0xDF69,0xDC84,0xDC86,
- 0xDC87,0xDC88,0xDC9E, 0,0xDC89,0xDC8A,0xDC96,0xDC8B,0xDC8C,0xDC8D,
- 0xDE79,0xDE83,0xDE7A,0xDE5D,0xDE7B, 0,0xDF9F, 0,0xDFA0,0xDFA1,
- 0xDFA2, 0,0xDD6A,0xDD6B,0xDD6C,0xDD6D,0xDD6E,0xDE78, 0,0xDE79,
- 0xDE7C,0xDF21,0xDF22,0xDF23,0xDF24, 0,0xDF25,0xDF26,0xDE51,0xDE52,
- 0xDE56, 0, 0,0xDFE1, 0, 0,0xDFD6,0xDFD7,0xDFD8,0xDFD9,
- 0xDEB5,0xDF6C,0xDF6F,0xDF70,0xDCBC,0xDCBD,0xDCED,0xDD5B,0xDD5C,0xDD5D,
- 0xDD5E,0xDE86,0xDE87,0xDEED, 0,0xDEEE, 0,0xDD0E,0xDD0F, 0,
- 0xDE2D,0xDE2A,0xDE2E,0xDECC,0xDFF9,0xDFFA,0xDFFB,0xDFFC, 0,0xDFFD,
- 0xDC1B,0xDFFE,0xDFFF,0xDC00,0xDC01,
- /* plane 15, row 24 */
- 1 | (94 << 8), /* first, last */
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85C,0xD85C,0xD85C,0xD85C,0x86CF,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85D,0xffff,0xD85D,0xD85D,0xD85D,0xD85D,0xD85E,
- 0xffff,0xD85E,0xD87E,0xD85E,0xffff,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xffff,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xffff,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD860,0x8EAE,0xD860,0xffff,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xffff,0xD861,0xD861,0xD862,0xD862,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,
- 1, /* first low-surrogate */
- 0xDC02,0xDC03,0xDC21,0xDC04,0xDC05,0xDC06,0xDC07,0xDC08,0xDC09,
- 0xDC0A,0xDC0B,0xDC0C,0xDC0D,0xDC0E,0xDC0F,0xDC10,0xDC11,0xDC12,0xDC13,
- 0xDC14,0xDC15,0xDE7B,0xDE7C,0xDE7D,0xDE7E, 0,0xDE7F,0xDE80,0xDE66,
- 0xDE81,0xDE82,0xDE83,0xDDB2, 0,0xDE7F,0xDE72,0xDE5A,0xDFEB,0xDC15,
- 0,0xDC16,0xDDCA,0xDC17, 0,0xDCC5,0xDCC6,0xDCC7,0xDD88,0xDD89,
- 0,0xDD8A,0xDD8B,0xDD8C,0xDD8D,0xDFDF, 0,0xDD3B,0xDD3C,0xDD3D,
- 0xDD3E,0xDD3F,0xDD40,0xDD41,0xDD42,0xDE5C,0xDEAF,0xDEA9,0xDEAA,0xDEAB,
- 0xDEAC,0xDEB5,0xDEAD,0xDEAE,0xDFE2,0xDE24, 0,0xDEC4, 0,0xDCEA,
- 0xDCD3,0xDCD4,0xDCD5,0xDE86, 0,0xDE87,0xDEFD,0xDC05,0xDD49,0xDC5F,
- 0xDCD3,0xDCD5,0xDE8A,0xDE8B,0xDE8C,
- /* plane 15, row 25 */
- 1 | (94 << 8), /* first, last */
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD864,0xD864,
- 0x96EB,0xffff,0xffff,0xD864,0xD864,0xD867,0xD867,0xffff,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD84C,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD842,0xD842,0xD842,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xffff,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0x55B0,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0xD844,0xD844,0x5840,0x5842,
- 1, /* first low-surrogate */
- 0xDE8D,0xDE8E,0xDE8F,0xDE90,0xDE91,0xDE92,0xDE93,0xDC7D,0xDC7E,
- 0, 0, 0,0xDDEC,0xDE5B,0xDC87,0xDC86, 0,0xDC46,0xDC47,
- 0xDD02,0xDD6D,0xDD6E,0xDD6F,0xDF0D,0xDF0E,0xDF0F,0xDF10,0xDF11,0xDF12,
- 0xDF13,0xDF14,0xDC9F,0xDCA0,0xDCA1,0xDCA3,0xDD21,0xDD22,0xDF7C,0xDD95,
- 0xDD96,0xDE61,0xDE67,0xDF91,0xDF92,0xDF93,0xDF94,0xDC8A,0xDC8B,0xDCF7,
- 0xDD24,0xDDB0,0xDDB1,0xDE8E,0xDF04,0xDF6A,0xDF6B,0xDF6C,0xDF6D,0xDDE8,
- 0xDE0C,0xDDE9,0xDDEA,0xDE0D, 0,0xDDEB,0xDDEC,0xDDED,0xDDEE,0xDDEF,
- 0xDDF0,0xDDF1,0xDDF2,0xDE16,0xDDF3,0xDE04,0xDE1D,0xDDF4,0xDDF5,0xDDF6,
- 0xDDF7, 0,0xDE02,0xDE03,0xDE04,0xDF9A,0xDF7C,0xDFC5,0xDF7D,0xDF7E,
- 0xDF7F,0xDF80,0xDF81,
- /* plane 15, row 26 */
- 1 | (94 << 8), /* first, last */
- 0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xffff,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0x3701,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xffff,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD841,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xffff,0xD848,
- 0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xffff,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,
- 1, /* first low-surrogate */
- 0xDF82,0xDF83,0xDF84,0xDF85,0xDF86,0xDF87,0xDDAE,0xDE4D,0xDFB0,
- 0xDFDC,0xDFB6,0xDFB7,0xDFB8,0xDFB9,0xDFBA,0xDFBB,0xDFDB,0xDFBC,0xDFBD,
- 0xDFBE, 0,0xDFBF,0xDFC0,0xDFC1,0xDFC2,0xDFC3,0xDFCE, 0,0xDFD9,
- 0xDFC4,0xDFC5,0xDFDA,0xDFC6,0xDFC7,0xDFC8,0xDFC9,0xDFCA,0xDD7E,0xDD7B,
- 0xDE4E,0xDE4F,0xDE50,0xDE51,0xDE52,0xDE53,0xDE54,0xDE55,0xDF8F,0xDFFC,
- 0xDCA6,0xDCA7,0xDCA8,0xDD23,0xDE8B, 0,0xDE8C,0xDE8D,0xDE8E,0xDE8F,
- 0xDEA4,0xDD99,0xDC24,0xDC46,0xDC47,0xDC48,0xDCFD,0xDCFE, 0,0xDE6E,
- 0xDE7C,0xDE6F,0xDE70,0xDE71,0xDE72,0xDF29,0xDF2A,0xDF5F,0xDCA2,0xDD30,
- 0xDD2B,0xDF61,0xDF02,0xDF03,0xDF04,0xDF05,0xDF06,0xDF07, 0,0xDF08,
- 0xDF09,0xDF62,0xDF0A,0xDF0B,0xDF0C,
- /* plane 15, row 27 */
- 1 | (94 << 8), /* first, last */
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xffff,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD84A,0xD84B,0xD84A,0xD84B,0xffff,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xffff,0xD84B,0xD84B,0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xffff,0xD84B,0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xffff,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xffff,0xD84C,0xD84C,0xD84C,0xD84C,0xD859,0xD84D,0xD84D,
- 0xffff,0xD84D,0xD84D,0xD84D,0xffff,0xD84D,0xD84D,0xD84D,0x692B,0xD84D,
- 0x6916,0xD84D,0xD84D,0xD840,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 1, /* first low-surrogate */
- 0xDF0D,0xDF0E,0xDF63,0xDF27,0xDF0F, 0,0xDF1B,0xDF64,0xDF10,
- 0xDF11,0xDF81,0xDF12,0xDF65,0xDF13,0xDDCE,0xDC29,0xDFC4,0xDC2A, 0,
- 0xDC2B,0xDC2C,0xDC2D,0xDC2E,0xDC2F,0xDC30,0xDC31,0xDC32,0xDC33,0xDC34,
- 0,0xDC35,0xDC36,0xDFE3,0xDC37,0xDC38,0xDC39,0xDC3A,0xDC3B,0xDC4D,
- 0xDC3C,0xDC3D,0xDC3E, 0,0xDED0,0xDED1,0xDC55,0xDD02,0xDD04,0xDDFC,
- 0xDE07,0xDDFD,0xDDFE, 0,0xDDFF,0xDE00,0xDE08,0xDE01,0xDE02,0xDE35,
- 0xDE03,0xDE04, 0,0xDF3B,0xDF89,0xDF81,0xDF82,0xDF33,0xDCEB,0xDCEC,
- 0,0xDCED,0xDCEE,0xDCEF, 0,0xDCF0,0xDCF1,0xDCF2, 0,0xDCF3,
- 0,0xDCF4,0xDCF5,0xDC4B,0xDCF6,0xDCF7,0xDCF8,0xDCF9,0xDCFA,0xDCFB,
- 0xDCFC,0xDCFD,0xDCFE,0xDCFF,0xDD00,
- /* plane 15, row 28 */
- 1 | (94 << 8), /* first, last */
- 0x691B,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0x6927,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0x6BF5,0xD84E,
- 0xffff,0xD84E,0xD84E,0xD84F,0xD84F,0x3D20,0xD84F,0xD84F,0xD84F,0x6E82,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xffff,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0x3D21,0xD84F,
- 0xD84F,0x6E7A,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xffff,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xffff,0xffff,0xD850,0xffff,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xffff,0x7129,
- 2, /* first low-surrogate */
- 0xDD01,0xDD02,0xDD03,0xDD04,0xDD05,0xDD06,0xDD07, 0,
- 0xDD08,0xDD09,0xDD0A,0xDD0B,0xDD0C,0xDD0D,0xDCD7,0xDCD8,0xDE29,0xDE9C,
- 0xDEF8,0xDF98,0xDFA4,0xDF99,0xDF9A,0xDF9B,0xDF97,0xDF9C, 0,0xDF9D,
- 0,0xDF9E,0xDF9F,0xDC65,0xDDD6, 0,0xDE32,0xDE33,0xDE34, 0,
- 0xDE35,0xDE36,0xDE37,0xDDD7, 0,0xDDD8,0xDE38,0xDE39,0xDE3A,0xDE3B,
- 0xDE3C,0xDE3D,0xDE3E,0xDE3F,0xDE40,0xDDD9,0xDE41,0xDE42, 0,0xDE43,
- 0xDE44, 0,0xDE7C,0xDE7D,0xDE7E,0xDE7F,0xDE80,0xDE81,0xDE82, 0,
- 0xDE83,0xDE84,0xDE85,0xDE86,0xDEA5,0xDE87,0xDE88,0xDE89,0xDE8A,0xDE8B,
- 0xDE8C,0xDE8D,0xDE8E, 0, 0,0xDE8F, 0,0xDE90,0xDE91,0xDE92,
- 0xDE93,0xDE94,0xDE95,
- /* plane 15, row 29 */
- 1 | (94 << 8), /* first, last */
- 0xD850,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0x3EDA,0xffff,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD853,0xD854,0xD854,0xffff,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD87E,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xffff,0xD855,0xffff,0xD856,0xD846,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD857,0xD857,0xffff,0xD857,
- 1, /* first low-surrogate */
- 0xDE96,0xDD56,0xDD57,0xDDE1,0xDE0E,0xDE0F,0xDE7A,0xDE7B,0xDE8B,
- 0xDFF2,0xDFF3,0xDD93,0xDD94,0xDD95,0xDD96,0xDD97,0xDDAD,0xDD98,0xDDAB,
- 0xDD7B,0xDD99,0xDD9A,0xDD9B,0xDD85,0xDD9C,0xDD9D, 0, 0,0xDDAC,
- 0xDD79,0xDD9E,0xDDA4,0xDEFD,0xDFEB,0xDFEA,0xDC8F,0xDC90,0xDC86,0xDC87,
- 0xDC88,0xDDAC,0xDDAD,0xDFEC,0xDC73,0xDC74, 0,0xDDAA,0xDDAB,0xDDAC,
- 0xDFD1,0xDFD7,0xDCB9,0xDCBA,0xDCBB,0xDCBC,0xDE8E,0xDE8F,0xDE90,0xDE7C,
- 0xDE91,0xDE92,0xDE93,0xDE94,0xDD54,0xDE9A,0xDE95,0xDE96,0xDE97,0xDFBD,
- 0xDFC7,0xDFBE, 0,0xDFBF, 0,0xDD93,0xDE5E,0xDE86,0xDE87,0xDE88,
- 0xDE89,0xDF41,0xDF42,0xDF43,0xDF44,0xDF45,0xDF46,0xDF4A,0xDF47,0xDF48,
- 0xDF49,0xDE6B,0xDE66, 0,0xDE67,
- /* plane 15, row 30 */
- 1 | (94 << 8), /* first, last */
- 0x7CAB,0xD857,0x7CAC,0xffff,0xD857,0xD857,0xD857,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD87E,0xD858,
- 0xD858,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xffff,0xffff,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xffff,0xffff,0xffff,0xD85A,0xD85A,
- 0xD85A,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xffff,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0x83F7,0xffff,0xD85B,0xD85B,0xD85B,0x44EA,0xffff,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 2, /* first low-surrogate */
- 0xDE68, 0, 0,0xDFFD,0xDFFE,0xDFFF,0xDC00,0xDC01,
- 0xDC02,0xDC03,0xDC04,0xDC05,0xDC06,0xDE33,0xDEC2,0xDED0,0xDD74,0xDF95,
- 0xDF96,0xDC35,0xDC36,0xDD67,0xDD68,0xDD69,0xDD6A,0xDD72,0xDD6B,0xDD6C,
- 0xDD6D,0xDD6E,0xDD6F,0xDF22, 0, 0,0xDF23,0xDF41,0xDF24,0xDF25,
- 0xDF26,0xDF27,0xDF28,0xDF29,0xDEB7, 0, 0, 0,0xDDDA,0xDECF,
- 0xDEDA,0xDC89,0xDCB7,0xDC8A,0xDC8B,0xDD5E,0xDC8C, 0,0xDC8D,0xDC8E,
- 0xDC8F,0xDC90,0xDC91,0xDC92,0xDC93,0xDC94,0xDCB6,0xDC95,0xDC96,0xDC97,
- 0, 0,0xDC98,0xDC99,0xDC9A, 0, 0,0xDC9B,0xDCBD,0xDC9C,
- 0xDC9D,0xDC9E,0xDC9F,0xDCC0,0xDCA0,0xDCA1,0xDCA2,0xDCA3,0xDCA4,0xDCA5,
- 0xDCA6,0xDCA7,0xDCA8,0xDCA9,0xDCAA,
- /* plane 15, row 31 */
- 2 | (94 << 8), /* first, last */
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD87E,0xD85E,0xD85E,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xffff,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD860,0xD87E,0xD860,0xD860,0xD860,0xD860,0xD860,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xffff,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xffff,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xffff,0xD862,0xD863,0x4989,0xffff,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0x9596,
- 2, /* first low-surrogate */
- 0xDDB4,0xDDB5,0xDDB6,0xDEB9,0xDEBA,0xDEBB,0xDE91,0xDEBC,
- 0xDDEE,0xDDEF,0xDE96,0xDE97,0xDE73,0xDE98,0xDE99,0xDFED,0xDFEE,0xDCDE,
- 0xDDB0,0xDDB1,0xDDB2,0xDDB3,0xDDB4,0xDDB5,0xDDB6,0xDDCE,0xDDB7,0xDFE3,
- 0xDCB9,0xDD55,0xDD7E,0xDD56,0xDD57,0xDD58,0xDD59,0xDD5A, 0,0xDEC4,
- 0xDEC5,0xDEC6,0xDEC7,0xDEC8,0xDEC9,0xDEEE,0xDECF,0xDECA,0xDECB,0xDECC,
- 0xDC09,0xDDDA,0xDC03,0xDE2F,0xDE30,0xDE31,0xDE32,0xDD0E,0xDD0F,0xDD10,
- 0xDD11,0xDD12, 0,0xDD13,0xDD14,0xDD15,0xDCFF,0xDF1F,0xDF20,0xDF21,
- 0xDF2D, 0,0xDC1B,0xDC1C,0xDC1D,0xDC1E,0xDD53,0xDD54,0xDD55,0xDD56,
- 0xDD64,0xDD59,0xDD57, 0,0xDD58,0xDC6B, 0, 0,0xDCE7,0xDCE8,
- 0xDCE9,0xDCEA,0xDCEB,0xDCEC,
- /* plane 15, row 32 */
- 1 | (94 << 8), /* first, last */
- 0xD863,0xD863,0xD863,0xffff,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xffff,0xD848,0xD865,0x4AB2,0xD865,0xD865,0xffff,0xD866,0xD84C,0xD867,
- 0xD869,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD842,0xffff,0xD843,0xffff,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0x55F1,0xD843,0xD843,0xD844,
- 0xD844,0xD844,0xD844,0xD866,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xD844,0xD844,0xD844,0xD844,0xD845,0xD840,0xD845,0xD846,0xD845,0xD845,
- 0xD846,0xffff,0xD846,0xD846,0xD846,
- 1, /* first low-surrogate */
- 0xDCED,0xDEB1,0xDEB4, 0,0xDC8A,0xDC8D,0xDC8C,0xDDF2,0xDDF3,
- 0,0xDD08,0xDC17, 0,0xDD9F,0xDEA0, 0,0xDC6D,0xDC7D,0xDF90,
- 0xDDC4,0xDC4C,0xDD74,0xDD75,0xDD76,0xDF49,0xDF4A,0xDF4B,0xDF4C,0xDF4D,
- 0xDF4E,0xDF4F,0xDF50,0xDF51,0xDF52,0xDF53,0xDF54,0xDF55,0xDF56,0xDCA4,
- 0xDCA9,0xDD2A,0xDD2B,0xDFB3,0xDFC1,0xDC98,0xDCFB,0xDCFC,0xDDBC,0xDE96,
- 0xDF0A, 0,0xDEA2, 0,0xDE81,0xDE82,0xDE83,0xDE84,0xDE85,0xDE86,
- 0xDE87,0xDE88,0xDE89,0xDE8A,0xDE8B,0xDE8C, 0,0xDE8D,0xDED1,0xDE14,
- 0xDFC9,0xDFCA,0xDFCB,0xDEFD,0xDFCC,0xDFCD,0xDFCE,0xDFCF,0xDFD0,0xDFD1,
- 0xDFD2,0xDFD3,0xDFD4,0xDFD5,0xDD71,0xDC4D,0xDE62,0xDC0E,0xDFFE,0xDFFF,
- 0xDC00, 0,0xDC01,0xDC02,0xDC03,
- /* plane 15, row 33 */
- 1 | (94 << 8), /* first, last */
- 0xD846,0xD846,0xD846,0xffff,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD87E,0xD846,0xD846,0xD846,0xD846,0xD847,0xD847,0xD847,0xD847,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD848,0xD848,0xD848,0xD848,
- 0xD856,0x5F41,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,
- 0xD849,0xD849,0xffff,0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD87E,0xD84B,0xD84B,0xffff,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xD87E,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD84C,0xffff,0xD84C,0xD84C,
- 1, /* first low-surrogate */
- 0xDC15,0xDC04,0xDC05, 0,0xDD87,0xDD89,0xDE6E,0xDE6F,0xDE70,
- 0xDE71,0xDC6E,0xDE72,0xDE73,0xDE74,0xDF9D,0xDCB8,0xDCB9,0xDCBA,0xDEC2,
- 0xDEC3,0xDED5,0xDEC4,0xDEC0,0xDEC5,0xDEC6,0xDE8A,0xDE8B,0xDE8C,0xDF64,
- 0xDF8C, 0,0xDC0D,0xDCA8,0xDD3B,0xDD3C,0xDD3D,0xDD3E,0xDD3F,0xDD40,
- 0xDF66,0xDFCB,0xDFB7,0xDFB8,0xDFB9,0xDFBA,0xDF67,0xDFBB,0xDF68,0xDF69,
- 0xDF6A,0xDFBC, 0,0xDDDB,0xDC81,0xDC82,0xDC83,0xDC84,0xDC85,0xDC86,
- 0xDC87,0xDC88,0xDC89,0xDCBF,0xDC8A,0xDC8B, 0,0xDC8C,0xDC8D,0xDC8E,
- 0xDC8F,0xDC90,0xDCA1,0xDC91,0xDED6,0xDF9F,0xDC58,0xDC85,0xDD0B,0xDD0C,
- 0xDE37,0xDE38,0xDCCE,0xDE39,0xDE3A,0xDE3B,0xDE3C,0xDE3D,0xDE3E,0xDE40,
- 0xDE41,0xDE42, 0,0xDE43,0xDF8A,
- /* plane 15, row 34 */
- 1 | (94 << 8), /* first, last */
- 0xD84C,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0x698A,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0x698C,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0x6980,
- 0xD84D,0x697F,0xD84D,0xD84D,0xD84D,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xffff,0xD84E,0xD84E,0xD84E,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xffff,0xffff,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD87E,0xD84F,0xD850,0xffff,0x3DDA,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,
- 1, /* first low-surrogate */
- 0xDF8B,0xDD90,0xDD59,0xDD5B,0xDD5C,0xDD5D,0xDD5E, 0,0xDD5F,
- 0xDD60,0xDD61,0xDD62,0xDD63,0xDD64,0xDD93,0xDD65,0xDD66,0xDD67,0xDD68,
- 0xDD69,0xDD6A,0xDD6B,0xDD95,0xDD6C,0xDD6D,0xDD6E,0xDD6F, 0,0xDD70,
- 0xDD71,0xDD72,0xDD73,0xDD74,0xDD75,0xDD76,0xDD77,0xDD78,0xDD79, 0,
- 0xDD7A, 0,0xDD7B,0xDDA9,0xDD7C,0xDCF1,0xDCEB,0xDD8A,0xDE3D,0xDEA6,
- 0xDEA7,0xDFBA, 0,0xDFBB,0xDFBC,0xDFBD,0xDE91,0xDE92,0xDE93,0xDE94,
- 0xDE95,0xDE96,0xDE97,0xDDDA,0xDE98,0xDE99,0xDE9A, 0, 0,0xDE9B,
- 0xDE9C,0xDE9D,0xDE9E,0xDE9F,0xDEA0,0xDEBF,0xDEA1,0xDEA2,0xDEA3,0xDEA4,
- 0xDEA5,0xDEA6,0xDEA7,0xDE5B,0xDD0D,0xDEA8,0xDECB, 0, 0,0xDECC,
- 0xDF4F,0xDECD,0xDECE,0xDECF,0xDF4E,
- /* plane 15, row 35 */
- 1 | (94 << 8), /* first, last */
- 0xD850,0xD850,0xD850,0xffff,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD87E,0xD850,0xffff,0xffff,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0x3DDB,0xD850,
- 0xD850,0xD851,0xD851,0xD851,0xffff,0xD852,0xffff,0xD852,0xD852,0xD852,
- 0xD852,0x3EE2,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0x3EE3,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD87E,0xD852,
- 0xD852,0xD852,0xD852,0xD853,0xD853,0xD853,0xD853,0xD853,0xD853,0xD854,
- 0xD854,0xD854,0xD854,0xD854,0xD84D,0xD854,0xffff,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,
- 1, /* first low-surrogate */
- 0xDED0,0xDED1,0xDED2, 0,0xDED3,0xDED4,0xDED5,0xDED6,0xDED7,
- 0xDED8,0xDED9,0xDEFA,0xDEDA,0xDEDB,0xDD1C,0xDEDC, 0, 0,0xDEDD,
- 0xDEDE,0xDEDF,0xDEE0,0xDEE1,0xDEE2,0xDEE3,0xDEE4,0xDEE5, 0,0xDEE6,
- 0xDEE7,0xDD8E,0xDE98,0xDE99, 0,0xDC0A, 0,0xDC26,0xDC27,0xDDBD,
- 0xDDDF, 0,0xDDBE,0xDDDE,0xDDBF,0xDDC0,0xDDC1,0xDDC2,0xDD9F,0xDDC3,
- 0xDDC4,0xDDC5,0xDDC6,0xDDC7, 0,0xDDC8,0xDDC9,0xDDE3,0xDDCA,0xDDCB,
- 0xDDCC,0xDDCD,0xDDCE,0xDDCF,0xDDD0,0xDDD1,0xDDD2,0xDDD3,0xDD2F,0xDDD4,
- 0xDF04,0xDF65,0xDFEE,0xDCA0,0xDCA1,0xDDDD,0xDDDE,0xDF83,0xDFFA,0xDC7F,
- 0xDC80,0xDDE8,0xDDE9,0xDDEA,0xDDA6,0xDFE1, 0,0xDCDB,0xDCDC,0xDCDD,
- 0xDCDE,0xDCDF,0xDCE0,0xDCE1,0xDCE2,
- /* plane 15, row 36 */
- 1 | (94 << 8), /* first, last */
- 0xD855,0xD855,0xD855,0xD855,0x789C,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0x7B7B,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD859,0xD859,
- 0xD859,0xD859,0xD87E,0xD859,0xD859,0xD859,0xD859,0xD859,0xffff,0xD859,
- 0xD859,0xD859,0xD85A,0xD85B,0x4749,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 1, /* first low-surrogate */
- 0xDCE3,0xDCE4,0xDCE5,0xDCE6, 0,0xDCE7,0xDEB0,0xDE98,0xDEB1,
- 0xDE99,0xDEB2,0xDEB3,0xDEB4,0xDEB5,0xDEB6,0xDEB7,0xDEB8,0xDEB9,0xDFE2,
- 0xDFE3,0xDFE4,0xDFE5,0xDFE6,0xDFE7,0xDFE8,0xDFE9,0xDDAD,0xDDCF,0xDDAE,
- 0xDDAF,0xDDB0,0xDDB1,0xDE92,0xDE93,0xDE94,0xDF79, 0,0xDF7A,0xDF7B,
- 0xDF7C,0xDF7D,0xDF7E,0xDF7F,0xDF80,0xDF81,0xDF82,0xDF83,0xDF84,0xDE97,
- 0xDE84,0xDE85,0xDE89,0xDE86,0xDE87,0xDC2C,0xDC2D,0xDC2E,0xDC2F,0xDC30,
- 0xDC31,0xDC32,0xDC33,0xDC34,0xDC35,0xDC36,0xDC37,0xDED2,0xDC44,0xDD00,
- 0xDD83,0xDD84,0xDD86,0xDF7A,0xDF7B,0xDF7C,0xDF7D,0xDF7E, 0,0xDF7F,
- 0xDF87,0xDF80,0xDE43,0xDD34, 0,0xDD35,0xDD36,0xDD37,0xDD38,0xDD39,
- 0xDD3A,0xDD3B,0xDD3C,0xDD3D,0xDD3E,
- /* plane 15, row 37 */
- 1 | (94 << 8), /* first, last */
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xffff,0xD85B,0xD85B,0xD85B,0xD85B,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,0xD85D,0xD87E,
- 0xD85D,0xD85D,0xD85E,0xD85E,0xD85E,0xD85E,0xffff,0xD85E,0xD85E,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0x47F3,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xffff,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0x90D2,0xD861,0xD861,
- 0xD862,0xD862,0x9274,0xD87E,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD863,0x95A0,0xffff,0xD863,0xD863,
- 1, /* first low-surrogate */
- 0xDD3F,0xDD40,0xDD41,0xDD42,0xDD43,0xDD44,0xDD45,0xDD46,0xDD47,
- 0xDD48,0xDD49,0xDD4A, 0,0xDD4B,0xDD4C,0xDD4D,0xDD4E,0xDEE7,0xDEE8,
- 0xDEE9,0xDEEA,0xDEEB,0xDEEC,0xDEED,0xDEEE,0xDDF7,0xDE9A,0xDECD,0xDDC8,
- 0xDEA3,0xDECE,0xDC31,0xDC32,0xDC33,0xDDE4, 0,0xDDE5,0xDDE6,0xDCC8,
- 0xDD74,0xDD75,0xDD76,0xDD77,0xDD78,0xDD79,0xDD7A,0xDE61,0xDEDF,0xDEE0,
- 0xDEE1,0xDEE2,0xDEE3,0xDEE4,0xDEE5,0xDEE6, 0,0xDC31,0xDE3D,0xDE3E,
- 0xDE3F,0xDEF4,0xDEF5,0xDEF6, 0,0xDC17,0xDD41,0xDD42,0xDD43,0xDD44,
- 0xDD45,0xDD46,0xDD47,0xDD48,0xDD49,0xDD4A,0xDD4B, 0,0xDEBA,0xDF44,
- 0xDD2A,0xDD6D, 0,0xDDE7,0xDD7E,0xDD6E,0xDD6F,0xDD70,0xDD71,0xDD76,
- 0xDC79, 0, 0,0xDD04,0xDCF8,
- /* plane 15, row 38 */
- 1 | (94 << 8), /* first, last */
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0x4A57,0xD865,
- 0xD85F,0xffff,0xD865,0xD865,0xffff,0xD84C,0xD866,0xD867,0xD867,0xD868,
- 0xD868,0xD868,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,0xD841,0xD841,0xD841,
- 0x51A9,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD843,0xD842,0xD842,0xD842,
- 0xD842,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,
- 1, /* first low-surrogate */
- 0xDD05,0xDEDA,0xDEDB,0xDEDC,0xDEDD,0xDEDE,0xDEDF,0xDEE0,0xDEE1,
- 0xDCC5,0xDC9A,0xDC9B,0xDC9C,0xDDD8,0xDDD9,0xDDDA,0xDE6E, 0,0xDC6B,
- 0xDD83, 0,0xDED6,0xDEBD, 0,0xDE2E,0xDEFC,0xDD53,0xDDB7,0xDE8C,
- 0xDF8E,0xDEFF,0xDC76,0xDD06,0xDD7E,0xDF84,0xDF85,0xDF86,0xDF87,0xDF88,
- 0xDFA7,0xDF89,0xDF8A,0xDF8B,0xDF8C,0xDF8D,0xDF8E,0xDF8F,0xDFA3,0xDF90,
- 0xDF91,0xDF92,0xDF93,0xDFAC,0xDF94,0xDF95,0xDF96,0xDCAA,0xDCAB,0xDD9E,
- 0,0xDE08,0xDE09,0xDE68,0xDE69,0xDE6A,0xDE9A,0xDFD9,0xDFDA,0xDFDB,
- 0xDCA8,0xDD01,0xDD28,0xDD77,0xDDBD,0xDDBE,0xDF60,0xDEA0,0xDEA2,0xDF0F,
- 0xDF85,0xDEFE,0xDEFF,0xDF00,0xDF01,0xDF16,0xDF02,0xDF03,0xDF04,0xDF05,
- 0xDF06,0xDF07,0xDF08,0xDF22,0xDF09,
- /* plane 15, row 39 */
- 1 | (94 << 8), /* first, last */
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD844,0xD844,0xD844,0xD845,0xD844,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD840,0xffff,0xD846,0xD846,0xD87E,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xffff,0xD847,0xD847,0xD847,0xD847,0xD847,0xD848,0xffff,0xD848,0xD848,
- 0xffff,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,0xD848,
- 0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD849,0xD84A,0xD849,
- 0xD849,0xffff,0xD84A,0xD849,0xD84A,
- 1, /* first low-surrogate */
- 0xDF0A,0xDF0B,0xDF0C,0xDF14,0xDF29,0xDE6E,0xDF0D,0xDF0E,0xDF0F,
- 0xDF10,0xDF11,0xDF12,0xDF13,0xDE1B,0xDE1C,0xDE1D,0xDC13,0xDFFF,0xDC00,
- 0xDC01,0xDC02,0xDC03,0xDC04,0xDC0A,0xDC05,0xDC06,0xDC07,0xDC08,0xDD3A,
- 0xDD73,0xDE6F,0xDE70,0xDE71,0xDC52, 0,0xDE9A,0xDC60,0xDC69,0xDC2B,
- 0xDC24,0xDC2C,0xDC2D,0xDC2E,0xDC2F,0xDC30,0xDC31,0xDC32,0xDC33,0xDC34,
- 0xDC35,0xDC45,0xDC36,0xDD92,0xDD93,0xDE88,0xDE89,0xDE8A,0xDE8B,0xDF3F,
- 0,0xDCCA,0xDEF6,0xDEF7,0xDEF8,0xDEF9,0xDD2B, 0,0xDDA4,0xDDCE,
- 0,0xDE9E,0xDE9F,0xDEA0,0xDEA1,0xDEA2,0xDEA3,0xDEA4,0xDEA5,0xDEA6,
- 0xDC18,0xDD60,0xDD61,0xDD62,0xDD63,0xDD64,0xDFBD,0xDFBE,0xDC0B,0xDFBF,
- 0xDFC0, 0,0xDC0C,0xDF8D,0xDC0D,
- /* plane 15, row 40 */
- 1 | (94 << 8), /* first, last */
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD849,0xD84A,0xffff,0xD849,0xD84A,
- 0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xffff,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84D,0xD84D,
- 0x3BBC,0xD84D,0xD84D,0x3BA4,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84E,0xffff,0xD84E,0xD87E,
- 0xD84E,0xD87E,0xD84E,0xD84E,0xD84E,
- 1, /* first low-surrogate */
- 0xDC0E,0xDC5E,0xDC0F,0xDC10,0xDFC1,0xDC11, 0,0xDFC2,0xDDEA,
- 0xDDEB,0xDCE3,0xDCE4,0xDCE5,0xDCE6,0xDCE7,0xDC92,0xDD4A, 0,0xDCE8,
- 0xDCE9,0xDCEA,0xDD01,0xDCEB,0xDCEC,0xDCEF,0xDCED,0xDCEE,0xDCF0,0xDCF1,
- 0xDCF2,0xDCF3,0xDCF4,0xDCF5,0xDCF6,0xDCF7,0xDCF8,0xDCF9,0xDCFE,0xDCFA,
- 0xDCFB,0xDCFC,0xDE63,0xDE64,0xDE65,0xDE66,0xDE67,0xDE68,0xDE0B,0xDE0D,
- 0,0xDE0E,0xDE0F, 0,0xDE14,0xDDD4,0xDDD5,0xDDD6,0xDDD7,0xDDD8,
- 0xDDD9,0xDDDA,0xDDDB,0xDDDC,0xDDDD,0xDDDE,0xDDDF,0xDDE0,0xDDE1,0xDDE2,
- 0xDDE3,0xDDE4,0xDDE5,0xDDE6,0xDDE7,0xDDE8,0xDDE9,0xDDEA,0xDDEB,0xDDEC,
- 0xDEEC,0xDDED,0xDDEE,0xDDEF,0xDE00,0xDDF0,0xDD04, 0,0xDD05,0xDCF3,
- 0xDEB5,0xDCF9,0xDFD6,0xDFD7,0xDFD8,
- /* plane 15, row 41 */
- 1 | (94 << 8), /* first, last */
- 0xD84E,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xffff,0xffff,
- 0xD84F,0xffff,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xffff,0xD84F,0xD84F,0xD84F,0xD84F,0xD850,0xD850,0xD850,0xD850,
- 0xffff,0xD850,0xD850,0x7195,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0x3DE8,0xffff,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0x7198,0xD850,0xffff,0xD850,0xD850,0xD850,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0x7478,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,
- 1, /* first low-surrogate */
- 0xDFD9,0xDEA9,0xDF00,0xDF01,0xDF02,0xDF03,0xDF04,0xDF05,0xDF06,
- 0xDF3F,0xDF07,0xDF08,0xDF09,0xDF0A,0xDEB6,0xDF0B,0xDF0C, 0, 0,
- 0xDF0D, 0,0xDF0E,0xDF0F,0xDF10,0xDF11,0xDF12,0xDF35,0xDF13,0xDF14,
- 0xDEAA, 0,0xDFC1,0xDF15,0xDF16,0xDF17,0xDF1E,0xDF1F,0xDF20,0xDF21,
- 0,0xDF22,0xDF23, 0,0xDF24,0xDF25,0xDF26,0xDF27,0xDF28,0xDF29,
- 0xDF2A,0xDF2B,0xDF07,0xDF2C,0xDF2D,0xDF2E, 0, 0,0xDF2F,0xDF30,
- 0xDF48,0xDF31,0xDF32, 0,0xDF33, 0,0xDF34,0xDF35,0xDF36,0xDD59,
- 0xDD91,0xDDE7,0xDEB8,0xDEB9,0xDEBA,0xDEBB,0xDEC8,0xDC4D,0xDC89,0xDC50,
- 0xDC28,0xDDFB,0xDDFC,0xDDFD,0xDDFE,0xDDFF, 0,0xDE00,0xDE01,0xDE02,
- 0xDDE4,0xDDE5,0xDE03,0xDE04,0xDE05,
- /* plane 15, row 42 */
- 1 | (94 << 8), /* first, last */
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD853,0xD853,0xD853,0xD87E,0xD853,0xD853,0xD853,0xD853,
- 0xD853,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0x78B9,0xD855,0xD855,0xffff,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xffff,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xD848,0xD855,0xD855,0xD855,0xD855,0xffff,0xD855,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0x7A33,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD87E,0xD857,0xD857,0xD857,
- 1, /* first low-surrogate */
- 0xDE06,0xDE07,0xDE13,0xDE08,0xDE09,0xDDE6,0xDE0A,0xDE0B,0xDE0C,
- 0xDF0B,0xDFF4,0xDC0A,0xDCB1,0xDE1D,0xDD3B,0xDF8B,0xDF8C,0xDF8F,0xDF8D,
- 0xDF8E,0xDC06,0xDC86,0xDE22,0xDE23,0xDE24,0xDE25,0xDE26,0xDE27,0xDE28,
- 0xDFF1, 0,0xDD23,0xDD12, 0,0xDD13,0xDD14,0xDD15,0xDD16,0xDD17,
- 0xDD18,0xDD19,0xDD4B,0xDD1A,0xDD1B,0xDD1C, 0,0xDD1D,0xDD1E,0xDD1F,
- 0xDD20,0xDECA,0xDEAC,0xDECB,0xDECC,0xDECD,0xDECE, 0,0xDECF,0xDC10,
- 0xDC11,0xDC12,0xDC13,0xDC14,0xDC0F,0xDC15,0xDC16,0xDC17, 0,0xDC18,
- 0xDDC6,0xDE9F,0xDEA0,0xDEA4,0xDEA1,0xDFB5,0xDFB6,0xDFB7,0xDFB8,0xDFB9,
- 0xDFBA,0xDFD0,0xDFC6,0xDFBB,0xDFBC,0xDFBD,0xDFBE,0xDFBF,0xDFC0,0xDFC1,
- 0xDFC2,0xDD60,0xDEA7,0xDEA8,0xDEA9,
- /* plane 15, row 43 */
- 1 | (94 << 8), /* first, last */
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0x7CC0,0xD857,0xD857,
- 0xD857,0x7CC1,0xD857,0xD857,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xffff,0xD858,0xD858,0xD858,0xD858,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xffff,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xffff,0xD859,
- 0xD859,0xD859,0xffff,0xD859,0xD87E,0xD87E,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85B,0xD85B,0xD85B,0xD85B,0xffff,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xffff,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 1, /* first low-surrogate */
- 0xDEAA,0xDEAB,0xDEAC,0xDEBC,0xDEAD,0xDEAE, 0,0xDEAF,0xDEB0,
- 0xDEB1, 0,0xDEB4,0xDEB2,0xDC66,0xDC67,0xDC68,0xDC69,0xDC6A,0xDC6B,
- 0xDC6C,0xDC6D,0xDC6E,0xDC6F, 0,0xDE3E,0xDE3F,0xDE40,0xDEE8,0xDC52,
- 0xDC53,0xDC54,0xDC55,0xDD91,0xDD92,0xDD93,0xDD94,0xDD95,0xDD96,0xDD97,
- 0xDD98, 0,0xDD99,0xDD9A,0xDD9B,0xDFB7,0xDFB8,0xDFB9, 0,0xDFBA,
- 0xDFBB,0xDFBD, 0,0xDFBC,0xDD88,0xDD87,0xDCEB,0xDCEC,0xDD16,0xDD44,
- 0xDDE3,0xDE58,0xDE53,0xDE54,0xDEE0,0xDDB1,0xDDB2,0xDDB3,0xDDEA, 0,
- 0xDDB4,0xDDF0,0xDDB5,0xDDB6,0xDDB7,0xDDB8,0xDDB9,0xDDBA,0xDDBB,0xDDBC,
- 0xDDBD,0xDDBE,0xDDBF,0xDDC0,0xDDC1,0xDDC2,0xDDC3, 0,0xDDC4,0xDDC5,
- 0xDDC6,0xDDFC,0xDDC7,0xDDC8,0xDDC9,
- /* plane 15, row 44 */
- 1 | (94 << 8), /* first, last */
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0x8744,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0x8AAD,0xD85E,0xD85E,0xD85E,0xD85E,0xffff,0xffff,
- 0xD85F,0xD85F,0xffff,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xffff,0xD860,0xffff,0xD861,
- 0xD861,0x4886,0xD862,0xD861,0xD861,0x9064,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,
- 1, /* first low-surrogate */
- 0xDDCA,0xDDCB,0xDDCC,0xDE84,0xDDCD,0xDDCE,0xDDCF,0xDDD0,0xDDD1,
- 0xDDD2,0xDDCA,0xDDCB,0xDF36,0xDF37,0xDF9F,0xDF38,0xDF39,0xDF3A, 0,
- 0xDEBE,0xDEF0,0xDEBF,0xDEC0,0xDFF7,0xDFF8,0xDFFA,0xDC43,0xDC44,0xDE0F,
- 0xDE10,0xDE11,0xDE12, 0,0xDE13,0xDE14,0xDE15,0xDE16, 0, 0,
- 0xDCD3,0xDCD7, 0,0xDDB0,0xDD98,0xDD90,0xDD91,0xDD92,0xDD97,0xDD93,
- 0xDE64,0xDF01,0xDF02,0xDF03,0xDF04,0xDF05,0xDF06,0xDF07,0xDC5A,0xDC5B,
- 0xDE4E,0xDE4F,0xDE50,0xDF19,0xDF1A,0xDF1B, 0,0xDF1C, 0,0xDC19,
- 0xDC1A, 0,0xDD8A,0xDD6E,0xDD6F, 0,0xDD70,0xDD71,0xDD72,0xDD73,
- 0xDD74,0xDD75,0xDD76,0xDC3A,0xDC3B,0xDC3C,0xDC5A,0xDC3D,0xDC42,0xDD8B,
- 0xDDA0,0xDD8C,0xDD8D,0xDD8E,0xDDAB,
- /* plane 15, row 45 */
- 1 | (94 << 8), /* first, last */
- 0xD862,0x9277,0xD862,0xD862,0xD862,0xD862,0x92AF,0xD862,0xD862,
- 0xD862,0xD862,0xffff,0xffff,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD863,0xffff,0xD864,0xD864,0xffff,0xffff,0xD864,0xD864,0xD864,
- 0xD865,0xD854,0xD865,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD866,0xD867,0xD867,0xD867,0xD867,0xD867,0xffff,0xD867,0xD867,0xD867,
- 0xD868,0xD868,0xD868,0xD842,0xD840,0xD840,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xffff,0xD840,0xD840,0xD840,0xD841,0xD841,0xffff,
- 0xD841,0xD841,0xD841,0xD842,0xD842,0xD842,0xD842,0xD842,0xD840,0xD843,
- 0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,0xD843,
- 0xD843,0xD844,0xD845,0xD845,0xD845,
- 1, /* first low-surrogate */
- 0xDD8F, 0,0xDD90,0xDD91,0xDD92,0xDDAA, 0,0xDD93,0xDD94,
- 0xDD9E,0xDDA8, 0, 0,0xDF00,0xDF01,0xDF02,0xDF03,0xDF04,0xDF05,
- 0xDFC4,0xDFC5, 0,0xDCAE,0xDCB2, 0, 0,0xDDF7,0xDE13,0xDF9E,
- 0xDC85,0xDF80,0xDCC8,0xDC41,0xDC81,0xDC82,0xDC83,0xDC84,0xDEC4,0xDEC5,
- 0xDEC6,0xDC95,0xDC96,0xDC97,0xDD58,0xDD59, 0,0xDFA9,0xDFAA,0xDFAB,
- 0xDE8E,0xDF03,0xDFB3,0xDF82,0xDC53,0xDD83,0xDD84,0xDD85,0xDFCC,0xDFCD,
- 0xDFCE,0xDFCF,0xDFD0, 0,0xDFD1,0xDFD2,0xDFDA,0xDCB3,0xDCB4, 0,
- 0xDE13,0xDE0E,0xDE6B,0xDD03,0xDD61,0xDDC1,0xDDC2,0xDEB5,0xDD40,0xDF98,
- 0xDF99,0xDF9A,0xDF9B,0xDF9C,0xDF9D,0xDF9E,0xDF9F,0xDFEE,0xDFA0,0xDFA1,
- 0xDF86,0xDE25,0xDC34,0xDC35,0xDC51,
- /* plane 15, row 46 */
- 1 | (94 << 8), /* first, last */
- 0xD845,0xD850,0xD845,0xD845,0x366D,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0x366E,0xD845,0xD84C,0xD845,0xD845,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xffff,0xD846,
- 0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xD847,0xffff,0xD847,
- 0xD847,0xD848,0x5E64,0xD848,0xD848,0xffff,0xD848,0xD848,0xD849,0xD849,
- 0xD849,0xD849,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xffff,
- 0xD84A,0xD84A,0xD84B,0xD84B,0xD84B,
- 1, /* first low-surrogate */
- 0xDC2D,0xDF62,0xDC54,0xDC52, 0,0xDC36,0xDC37,0xDC38,0xDC39,
- 0xDC3A,0xDC3B,0xDC68,0xDC3C, 0,0xDD77,0xDE96,0xDE7E,0xDE7F,0xDC69,
- 0xDC6A,0xDC6B,0xDC6C,0xDC6D,0xDC6E,0xDC6F,0xDC5D,0xDC70,0xDC85,0xDC71,
- 0xDC72,0xDC73,0xDC74,0xDC75,0xDC76,0xDC84,0xDC77,0xDC83,0xDD9A,0xDEA7,
- 0xDEA8,0xDEA9,0xDEAA,0xDEAB,0xDEAC,0xDEB7,0xDEAD,0xDEAE, 0,0xDF45,
- 0xDCD3,0xDCD4,0xDCD5,0xDCD6,0xDCD7,0xDF26,0xDF27,0xDF28, 0,0xDF29,
- 0xDF2A,0xDC05, 0,0xDDD0,0xDEB7, 0,0xDEB8,0xDEB9,0xDC22,0xDC23,
- 0xDD73,0xDD74,0xDC8F,0xDC12,0xDC13,0xDC14,0xDC15,0xDC16,0xDC17,0xDC18,
- 0xDC61,0xDC66,0xDC67,0xDC19,0xDC68,0xDC1A,0xDC69,0xDE04,0xDE05, 0,
- 0xDE06,0xDDFD,0xDD50,0xDD51,0xDD52,
- /* plane 15, row 47 */
- 1 | (94 << 8), /* first, last */
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD87E,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xffff,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xffff,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0x6A2B,0xD84D,0xD84D,0xffff,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xffff,0xD850,0xD84F,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD87E,0xD84F,0xD84F,0xD84F,0xD84F,0xffff,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0x6F46,
- 0xffff,0xD84F,0xD84F,0x6F9A,0xD84F,
- 1, /* first low-surrogate */
- 0xDD53,0xDD54,0xDD55,0xDD63,0xDCC4,0xDD56,0xDD57,0xDD58,0xDD59,
- 0xDD5A,0xDD5B, 0,0xDD5C,0xDD5D,0xDD5E,0xDD5F,0xDFD7, 0,0xDC60,
- 0xDC61,0xDD17,0xDD39,0xDE8F,0xDEC8,0xDE90,0xDE91,0xDF98,0xDF99,0xDE44,
- 0xDE45,0xDE46,0xDE59,0xDEEE, 0,0xDE47,0xDE48, 0,0xDE49,0xDE4A,
- 0xDE4B,0xDE4C,0xDE4D,0xDE4E,0xDE4F,0xDE50,0xDE51,0xDE52,0xDE53,0xDE54,
- 0xDE55,0xDE56,0xDD15,0xDD9A,0xDE58,0xDEFC,0xDEFD,0xDF86,0xDF87,0xDF88,
- 0xDF89,0xDF8A,0xDF8B,0xDF8C, 0,0xDC1F,0xDF8D,0xDF8E,0xDF8F,0xDF90,
- 0xDF91,0xDF92,0xDF93,0xDD11,0xDF94,0xDF95,0xDECA,0xDF18, 0,0xDF96,
- 0xDF97,0xDF98,0xDF99,0xDF9A,0xDF9B,0xDF9C,0xDF9D,0xDF9E,0xDF9F, 0,
- 0,0xDFA0,0xDFA1, 0,0xDFB7,
- /* plane 15, row 48 */
- 2 | (94 << 8), /* first, last */
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xffff,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD87E,
- 0xD851,0xD851,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0x3F53,0xD853,0xD853,0xD853,
- 0xD853,0xD853,0xD853,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,
- 0xD854,0xD854,0xffff,0xD87E,0xffff,0xD854,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xffff,0xD855,0xD855,0xD855,0xD855,0xD856,0xffff,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xffff,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,
- 2, /* first low-surrogate */
- 0xDF96,0xDF68,0xDF69,0xDF8C,0xDF6A,0xDF6B,0xDF6C,0xDF6D,
- 0xDF6E,0xDF6F,0xDF7F,0xDF84,0xDF70,0xDF71,0xDF85,0xDF72,0xDF73,0xDF74,
- 0xDF75,0xDF76, 0,0xDF77,0xDF78,0xDF79,0xDF7A,0xDF7B,0xDF7C,0xDD1E,
- 0xDD94,0xDED5,0xDC29,0xDE2B,0xDE2C,0xDE2D,0xDE2E,0xDE2F,0xDE30,0xDE3E,
- 0xDE31,0xDE32,0xDE33,0xDE34,0xDE35,0xDF11, 0,0xDCC0,0xDE42,0xDE43,
- 0xDE44,0xDE45,0xDE46,0xDC8C,0xDC8D,0xDC8E,0xDC8F,0xDC90,0xDC91,0xDE63,
- 0xDE64,0xDE65, 0,0xDD4A, 0,0xDFF6,0xDD36,0xDD37,0xDD2C,0xDD38,
- 0xDD39, 0,0xDD3A,0xDEE3,0xDEE2,0xDEF5,0xDC47, 0,0xDC48,0xDC49,
- 0xDC4A,0xDC4B,0xDC4C,0xDEA8,0xDEA9,0xDEAA, 0,0xDC0B,0xDC06,0xDC73,
- 0xDC0C,0xDC0D,0xDC0E,0xDC0F,0xDC10,
- /* plane 15, row 49 */
- 2 | (94 << 8), /* first, last */
- 0xD857,0xD87E,0xD857,0xD857,0xD857,0xD857,0xffff,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xffff,0xD857,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xffff,0xD87E,0xD858,0xD858,0xD858,0xffff,0xffff,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0x443D,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD87E,0x4526,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0x4527,0xffff,0xD85B,0x4528,0xD85B,0xffff,0xD85C,
- 0xD85C,0xD85C,0xffff,0xD87E,0xD85C,
- 2, /* first low-surrogate */
- 0xDC11,0xDD62,0xDC12,0xDC14,0xDC15,0xDC16, 0,0xDC13,
- 0xDC17,0xDED9,0xDEDA,0xDEDB, 0,0xDEDC,0xDCA6,0xDCA7,0xDCA8,0xDCA9,
- 0xDCAA,0xDCAB, 0,0xDD6D,0xDCAC,0xDCAD,0xDCAE, 0, 0,0xDCAF,
- 0xDCB0,0xDCB1,0xDE44,0xDE45,0xDEF7,0xDEF8,0xDC6B,0xDC6C,0xDC61,0xDD12,
- 0xDDAF,0xDDB0,0xDDB1,0xDDB2,0xDDB3,0xDDB4,0xDDB5,0xDDB6,0xDE22,0xDFEA,
- 0xDFEB,0xDFEC,0xDFED, 0,0xDCED,0xDD1B,0xDD47,0xDDE8,0xDED0,0xDEE7,
- 0xDEE8,0xDEE9,0xDE4E,0xDE4F,0xDE50,0xDE72,0xDE51,0xDE52,0xDDA7, 0,
- 0xDE53,0xDE54,0xDE55,0xDE56,0xDE57,0xDE77,0xDE58,0xDE59,0xDE5A,0xDE5B,
- 0xDE5C,0xDE6E,0xDE5D, 0, 0,0xDE5E, 0,0xDE5F, 0,0xDDD7,
- 0xDF89,0xDF8A, 0,0xDDBE,0xDF8B,
- /* plane 15, row 50 */
- 1 | (94 << 8), /* first, last */
- 0xD85C,0xD85C,0xD85C,0xD87E,0xD85C,0xffff,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85D,0xD85D,0xffff,0xD85D,0xD85D,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xffff,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD860,0xD860,0xD860,0xD860,0xD860,0xffff,
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD861,0xD861,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xffff,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xffff,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0x92F2,0xD862,0xD862,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,
- 0xD863,0xD864,0xD864,0xD864,0xD864,
- 1, /* first low-surrogate */
- 0xDF8C,0xDF8D,0xDF8E,0xDDBC,0xDF8F, 0,0xDF9A,0xDF90,0xDF91,
- 0xDF92,0xDF93,0xDF12,0xDEF1, 0,0xDFFE,0xDFFB,0xDC57,0xDE49,0xDE4A,
- 0xDE4B,0xDE4C, 0,0xDE4D,0xDE59,0xDE4E,0xDE4F,0xDFF4,0xDC65,0xDDA6,
- 0xDDA7,0xDDA8,0xDF22,0xDF23,0xDC8B,0xDC8C,0xDC8D,0xDC8E,0xDE58, 0,
- 0xDE59,0xDF3B,0xDF3C,0xDF3D,0xDF3E,0xDC48,0xDD94,0xDD95,0xDD96,0xDD97,
- 0xDD98,0xDF7D,0xDEFE,0xDF7E,0xDF7F, 0,0xDC5B,0xDC5C,0xDDE4,0xDDC1,
- 0xDDFD,0xDDC2,0xDDD6,0xDDC3,0xDDC4, 0,0xDDDC,0xDDC5,0xDDC6,0xDDC7,
- 0xDDE1,0xDDC8,0xDDC9,0xDDCA,0xDDCB, 0,0xDDCC,0xDDCD,0xDD35,0xDD36,
- 0xDD47,0xDD37,0xDF1B,0xDF1C,0xDF1D,0xDF1E,0xDF1F,0xDF20,0xDF7B,0xDF7A,
- 0xDFFE,0xDCC6,0xDCC7,0xDCC8,0xDCC9,
- /* plane 15, row 51 */
- 1 | (94 << 8), /* first, last */
- 0xD864,0xffff,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD866,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD867,0xD867,0xD867,0xD867,0xffff,0xD867,0xD867,0xffff,0xD867,0xD867,
- 0x9B79,0xffff,0xD867,0xffff,0xD868,0xD841,0xD840,0xD840,0xD840,0xD840,
- 0xD840,0xD840,0xD840,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,
- 0xD843,0x567A,0xD843,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xffff,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,0xD844,
- 0xffff,0xffff,0xffff,0xD844,0xD845,0xffff,0xD845,0xD845,0xD845,0xD845,
- 0xD845,0xD846,0xD846,0xD846,0xD846,
- 1, /* first low-surrogate */
- 0xDCCA, 0,0xDCA0,0xDCA1,0xDDCC,0xDDCD,0xDEF1,0xDED7,0xDC42,
- 0xDC46,0xDCA3,0xDCA5,0xDCA6,0xDECB,0xDECC,0xDF26,0xDF27,0xDF28,0xDF29,
- 0xDCAE,0xDCAF,0xDCB0,0xDD73, 0,0xDD7C,0xDD74, 0,0xDF80,0xDD75,
- 0, 0,0xDFCF, 0,0xDF8F,0xDE70,0xDC85,0xDF97,0xDFF6,0xDFF7,
- 0xDFF8,0xDFFA,0xDFFB,0xDCBA,0xDCBB,0xDCBC,0xDCBD,0xDD34,0xDD35,0xDDA2,
- 0xDE14,0xDE11,0xDE6E,0xDE6F,0xDC08,0xDCB8,0xDE09,0xDEBD,0xDEBE,0xDF88,
- 0xDFFE, 0,0xDFFF,0xDC00,0xDC01,0xDC02,0xDC03,0xDC04,0xDC05,0xDC06,
- 0,0xDC07,0xDC08,0xDC09,0xDC0A,0xDC0B,0xDC0C,0xDC0D,0xDC0E,0xDC0F,
- 0, 0, 0,0xDE2C,0xDC6B, 0,0xDC6C,0xDC87,0xDC6D,0xDD78,
- 0xDE8B,0xDCA4,0xDCA5,0xDCA6,0xDCA7,
- /* plane 15, row 52 */
- 1 | (94 << 8), /* first, last */
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xffff,
- 0x372C,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD85F,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD847,0xD847,0xD847,0xD847,0xD847,0xD848,
- 0xffff,0xD848,0xD848,0xD848,0xD848,0x5F5C,0xD849,0xD849,0xD841,0xD84A,
- 0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xffff,0xD84A,
- 0xD84A,0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0x65D9,0xD84C,
- 0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xffff,0xD84C,0xD84C,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD87E,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0x6A72,0xD84D,0xD84D,0xD84D,
- 1, /* first low-surrogate */
- 0xDCBE,0xDCA8,0xDCA9,0xDCAA,0xDC8D,0xDCAB,0xDCAC,0xDCBF, 0,
- 0,0xDCAD,0xDCAE,0xDDA4,0xDDA5,0xDEC7,0xDEC8,0xDEC9,0xDDBC,0xDECA,
- 0xDECB,0xDECC,0xDECD,0xDECE,0xDC19,0xDCE6,0xDF4C,0xDF4D,0xDF4E,0xDC06,
- 0,0xDECD,0xDECE,0xDECF,0xDED0, 0,0xDD81,0xDD82,0xDD33,0xDC6A,
- 0xDC6B,0xDCB2,0xDC6C,0xDC6D,0xDCCC,0xDCAE,0xDCB3,0xDC91, 0,0xDC6E,
- 0xDCB4,0xDC6F,0xDDC9,0xDDA7,0xDDA8,0xDDA9,0xDDAA,0xDDAB,0xDDAC,0xDDAD,
- 0xDDAE,0xDDAF,0xDDB0,0xDD60,0xDDB1,0xDEE1,0xDFE3,0xDFF6, 0,0xDEAF,
- 0xDEB0,0xDEB1,0xDEBA,0xDEB2,0xDEB3,0xDF4C, 0,0xDFA0,0xDFA1,0xDEB0,
- 0xDEB1,0xDEB2,0xDEB3,0xDEB4,0xDCEB,0xDEB5,0xDEB6,0xDEB7,0xDEB8,0xDEB9,
- 0xDEBA, 0,0xDEBB,0xDEBC,0xDEBD,
- /* plane 15, row 53 */
- 1 | (93 << 8), /* first, last */
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0x6A78,
- 0xffff,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0x6B5A,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84F,0xD84F,0xD84F,0xD84F,0xD850,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD84F,0xD850,0xD850,0xD84F,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD84F,0xD84F,0xD87E,0xD850,0xD87E,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD864,0xD850,
- 0xD850,0xD850,0xD850,0xD851,0xD850,0xD850,0xffff,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD851,0xD844,0xD852,0xD841,0xD852,0xD852,0xD852,
- 0x3EFB,0xD852,0xD852,0xD852,
- 1, /* first low-surrogate */
- 0xDEBE,0xDEBF,0xDEDF,0xDEC0,0xDEC1,0xDEC2,0xDEC3,0xDEC4, 0,
- 0,0xDEC5,0xDEC6,0xDEC7,0xDEC8,0xDEC9,0xDECA,0xDF3C,0xDECB,0xDECC,
- 0xDECD,0xDECE,0xDECF,0xDED0,0xDED1, 0,0xDD1D,0xDD1E,0xDE64,0xDE65,
- 0xDEC5,0xDEC6,0xDEC7,0xDEFF,0xDFFF,0xDC00,0xDC01,0xDC02,0xDFF5,0xDC5C,
- 0xDFF6,0xDFF7,0xDFB0,0xDFF8,0xDFF9,0xDC5D,0xDC50,0xDFFA,0xDFFB,0xDFA2,
- 0xDFFC,0xDFFD,0xDFFE,0xDFFF,0xDD13,0xDC00,0xDD1F,0xDFC1,0xDFC2,0xDFC3,
- 0xDFC4,0xDFC5,0xDFC6,0xDFC7,0xDFC8,0xDFC9,0xDFCA,0xDFCB,0xDCEF,0xDFD7,
- 0xDFCC,0xDFCD,0xDFCE,0xDC22,0xDFCF,0xDFD0, 0,0xDFD1,0xDFD2,0xDFE9,
- 0xDFD3,0xDFD4,0xDFD5,0xDD38,0xDC3B,0xDC7D,0xDD6F,0xDCA1,0xDE53,0xDE54,
- 0,0xDE55,0xDE3C,0xDE56,
- /* plane 15, row 54 */
- 1 | (94 << 8), /* first, last */
- 0xD852,0x3EFC,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xffff,0xffff,0xD852,0xD852,0xD852,0xD852,0xD852,0xD853,0xD853,0xD868,
- 0xD853,0xD853,0xD854,0xD854,0xD854,0xD854,0xD854,0xD854,0xD87E,0xD854,
- 0xffff,0xD854,0xffff,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0xffff,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD857,0xD857,0xffff,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,
- 1, /* first low-surrogate */
- 0xDE66, 0,0xDE57,0xDE58,0xDE59,0xDE5A,0xDE5B,0xDE67,0xDE5C,
- 0, 0,0xDE6A,0xDE5D,0xDE3D,0xDE5E,0xDE65,0xDCE1,0xDCCD,0xDC11,
- 0xDE6F,0xDE70,0xDC1A,0xDC9A,0xDC9B,0xDC9C,0xDC9E,0xDC9F,0xDD3F,0xDE8E,
- 0,0xDFFD, 0,0xDD5E,0xDD5F,0xDD60,0xDD65,0xDD67,0xDD68,0xDD69,
- 0,0xDD6A,0xDD8F,0xDD6B,0xDD6C,0xDD6D,0xDEF7,0xDEF8,0xDEF9,0xDEE4,
- 0xDEFA,0xDCB1,0xDC75,0xDC76,0xDDFF,0xDE00,0xDE01,0xDE02,0xDE03,0xDEAE,
- 0xDEAD,0xDC51,0xDC52, 0,0xDC53,0xDC54,0xDC55,0xDC56,0xDC57,0xDC58,
- 0xDC59,0xDC5A,0xDC5B,0xDC5C,0xDC5D,0xDC5E,0xDC5F,0xDC60,0xDC61,0xDC62,
- 0xDC63,0xDC64,0xDC4C,0xDC66,0xDEF1,0xDEF2,0xDCF2,0xDCF3,0xDCF4,0xDCF5,
- 0xDCF6,0xDCF7,0xDCF8,0xDCF9,0xDCFA,
- /* plane 15, row 55 */
- 1 | (94 << 8), /* first, last */
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD859,0xD87E,0xD87E,0xD859,
- 0xD859,0xD859,0xD859,0xD859,0xD859,0xD859,0xffff,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xffff,0xD87E,
- 0xffff,0xD85B,0xD85B,0xffff,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xffff,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xffff,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 1, /* first low-surrogate */
- 0xDE4C,0xDE4B,0xDF1B,0xDFCE,0xDFB3,0xDC7F,0xDD79,0xDD7C,0xDD1A,
- 0xDDC4,0xDDC5,0xDDC6,0xDDC7,0xDDC8,0xDDC9, 0,0xDC19,0xDC1C,0xDC1A,
- 0xDD4C,0xDD8E,0xDE7E,0xDEEB,0xDEEC,0xDEED,0xDEEE,0xDEEF,0xDEF0,0xDEF1,
- 0xDED8,0xDED9,0xDEDA,0xDEDB,0xDEF2,0xDEF3,0xDEF4,0xDF07, 0,0xDDAC,
- 0,0xDEF5,0xDF15, 0,0xDEF6,0xDEF7,0xDEF8,0xDEF9,0xDEFA,0xDEFB,
- 0xDEFC,0xDEFD,0xDEFE,0xDFA7,0xDEFF,0xDF00,0xDF01,0xDF02,0xDF03,0xDF04,
- 0xDF05,0xDDE9,0xDDEA,0xDDEB,0xDFDE,0xDFDF, 0,0xDFE0,0xDFE1,0xDFE2,
- 0xDFE3,0xDF3E,0xDF3F,0xDF40,0xDF41,0xDC71,0xDC72,0xDC73,0xDE88,0xDE89,
- 0xDE8A,0xDE8B,0xDE8C,0xDE8D,0xDE8E,0xDE8F,0xDE90,0xDE91,0xDE92, 0,
- 0xDCF1,0xDDBE,0xDDBF,0xDDC0,0xDDC1,
- /* plane 15, row 56 */
- 1 | (94 << 8), /* first, last */
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xffff,0xffff,0xD860,0xD860,0x8EBE,
- 0xD860,0xffff,0xD860,0xD860,0xD860,0xD860,0xD860,0xD861,0xD861,0xD861,
- 0xD861,0xD861,0xD861,0xD861,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0x933B,0xD862,0xD862,0xD862,0xFA28,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0x9340,0xD862,0xD862,0xD862,0x933A,0xD862,0xffff,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xffff,0xD862,0xD862,0xD863,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD864,0xD864,
- 0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD864,0xD87E,0xD865,
- 0xD865,0xffff,0xD865,0xD865,0xD865,
- 1, /* first low-surrogate */
- 0xDDC2,0xDDC3,0xDE6E,0xDF37,0xDF57,0xDF38,0xDF39,0xDF3A,0xDF3B,
- 0xDF3C,0xDF3D,0xDF3E,0xDF27,0xDF3F, 0, 0,0xDCC0,0xDCC1, 0,
- 0xDE67, 0,0xDE68,0xDF58,0xDF65,0xDF59,0xDF5A,0xDC24,0xDDCD,0xDDCE,
- 0xDDCF,0xDDD2,0xDF9F,0xDF22,0xDC7D,0xDC7E,0xDDFF,0xDE25,0xDE00,0xDE01,
- 0,0xDE02,0xDE03,0xDE04, 0,0xDE05,0xDE06,0xDE07,0xDE16,0xDE08,
- 0xDE17,0xDE09,0xDE0A, 0,0xDE0B,0xDE0C,0xDE29, 0,0xDE0D, 0,
- 0xDE0E,0xDE10,0xDE11,0xDE1D,0xDE12,0xDE13, 0,0xDE14,0xDE15,0xDC8D,
- 0xDD54,0xDD55,0xDD56,0xDF33,0xDF34,0xDF35,0xDF36,0xDFFA,0xDCE3,0xDCE6,
- 0xDCED,0xDCE7,0xDCE8,0xDCE9,0xDCEA,0xDCEB,0xDE27,0xDE20,0xDDF8,0xDC2A,
- 0xDCC9, 0,0xDCCA,0xDCCB,0xDCD9,
- /* plane 15, row 57 */
- 1 | (94 << 8), /* first, last */
- 0xD865,0xD865,0xD865,0xffff,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD87E,0xD866,
- 0xD867,0xD867,0xD867,0xD867,0x9B96,0xD867,0xD867,0xffff,0xffff,0xD867,
- 0xD867,0xD867,0xD867,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD840,
- 0xD841,0xD841,0xD841,0xD841,0xD841,0xD87E,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD841,0xD841,0xD842,0xD842,0xD842,0xD844,0xD844,0xD844,
- 0xffff,0xffff,0xD844,0xD844,0xD844,0xD844,0xD844,0xffff,0xD845,0xD845,
- 0xD845,0xD845,0xD845,0xD845,0xD845,0xD845,0xD846,0xD846,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xffff,0xD847,
- 0xD847,0xD847,0xD848,0xffff,0xD848,
- 1, /* first low-surrogate */
- 0xDCCC,0xDCCD,0xDCCE, 0,0xDDE1,0xDF1B,0xDF1C,0xDF1D,0xDF1E,
- 0xDC47,0xDCD1,0xDCC9,0xDED0,0xDED1,0xDF3F,0xDF40,0xDF41,0xDE09,0xDF42,
- 0xDCC4,0xDD9B,0xDD92,0xDD93, 0,0xDD94,0xDD95, 0, 0,0xDFF3,
- 0xDFF4,0xDFF5,0xDFF6,0xDE60,0xDE9E,0xDEA0,0xDEA1,0xDF1C,0xDF9F,0xDC56,
- 0xDC12,0xDC1F,0xDC15,0xDC16,0xDC17,0xDC0C,0xDC18,0xDCC2,0xDCC3,0xDCC4,
- 0xDDA1,0xDE1B,0xDE1C,0xDE71,0xDC13,0xDF17,0xDF8F,0xDC5F,0xDC60,0xDCAC,
- 0, 0,0xDC61,0xDC62,0xDC63,0xDC64,0xDC65, 0,0xDC99,0xDC9A,
- 0xDC9B,0xDC9C,0xDC9D,0xDC9E,0xDC9F,0xDCA0,0xDCDA,0xDCDB,0xDCDC,0xDCDD,
- 0xDCDE,0xDCDF,0xDED5,0xDED6,0xDED7,0xDED8,0xDEE0,0xDFB4, 0,0xDF6E,
- 0xDF6F,0xDF70,0xDD63, 0,0xDED5,
- /* plane 15, row 58 */
- 1 | (94 << 8), /* first, last */
- 0xD848,0xD848,0xD848,0xD849,0xD84A,0xD84A,0xD84A,0xD84A,0x39A0,
- 0xD84A,0xD84A,0xffff,0xD84A,0xD84A,0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD84B,0xD84B,0xD87E,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xD84C,0xD840,0xD84D,0xD84D,0xffff,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84E,0xD84E,0xD84E,0xD858,0xD84E,0xD84F,0xD84F,
- 0xD84F,0xD84F,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xffff,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD851,0xD851,0x71F5,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,
- 1, /* first low-surrogate */
- 0xDED6,0xDED7,0xDED8,0xDC30,0xDCB5,0xDCB6,0xDCC1,0xDCF7, 0,
- 0xDCCB,0xDCE8, 0,0xDCE9,0xDCB7,0xDE15,0xDDE6,0xDDE7,0xDDE8,0xDDE9,
- 0xDDEA,0xDDEB,0xDCCA,0xDC0B,0xDC0C,0xDC64,0xDED4,0xDED5,0xDED6,0xDED8,
- 0xDFA5,0xDC5B,0xDF0F,0xDF10, 0,0xDF11,0xDF12,0xDF13,0xDF14,0xDF15,
- 0xDF16,0xDF17,0xDF18,0xDF19,0xDF1A,0xDF2F,0xDF1B,0xDF1C,0xDF3F,0xDF1D,
- 0xDF1E,0xDF2C,0xDF1F,0xDD24,0xDDA4,0xDDA5,0xDE51,0xDEFE,0xDC11,0xDC12,
- 0xDC13,0xDC54,0xDC5E,0xDC21,0xDC3F,0xDC40,0xDC41,0xDC42,0xDC43,0xDC44,
- 0xDC20,0xDC45, 0,0xDC46,0xDCB0,0xDC47,0xDC57,0xDC01,0xDCB1,0xDC5A,
- 0xDC48,0xDC04,0xDC05, 0,0xDC4F,0xDC50,0xDC06,0xDC07,0xDC08,0xDC09,
- 0xDC0A,0xDC0B,0xDC0C,0xDC0D,0xDC0E,
- /* plane 15, row 59 */
- 1 | (94 << 8), /* first, last */
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD852,
- 0xD852,0xD852,0xD852,0x3F01,0xD852,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD853,0xD853,0xffff,0xffff,0xD854,0xD854,0xffff,
- 0xD854,0xD854,0xD854,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xD855,0xffff,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,
- 0xD855,0xD856,0xD856,0xD856,0xD856,0xD856,0xD856,0x7A50,0xD856,0xD856,
- 0xD856,0xD857,0xD857,0x7C14,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD858,0xD858,0xD858,0xffff,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD858,0xD858,0xD858,
- 1, /* first low-surrogate */
- 0xDC0F,0xDC10,0xDC11,0xDD33,0xDD34,0xDD35,0xDDFC,0xDDFD,0xDCB0,
- 0xDCB1,0xDCB2,0xDCB3, 0,0xDE7B,0xDE7C,0xDE7D,0xDE7E,0xDE7F,0xDE80,
- 0xDE81,0xDE82,0xDFF9,0xDCDA,0xDEA1, 0, 0,0xDCAD,0xDCAE, 0,
- 0xDEC8,0xDEC9,0xDECA,0xDD82,0xDD83,0xDD84,0xDD85,0xDD86,0xDD87,0xDD88,
- 0xDD89,0xDD8A, 0,0xDF07,0xDF08,0xDF01,0xDF09,0xDF02,0xDF0A,0xDF0B,
- 0xDF0C,0xDCA7,0xDC98,0xDC99,0xDC9A,0xDC9B,0xDC9C, 0,0xDC9D,0xDE1A,
- 0xDEB2,0xDCB0,0xDCB1, 0,0xDCB2,0xDCB3,0xDCB4,0xDCB5,0xDCB6,0xDCC0,
- 0xDCB7,0xDCB8,0xDCB9,0xDCBA,0xDD1D,0xDF0C,0xDF0D,0xDF0E,0xDF35,0xDF0F,
- 0xDF10,0xDF11,0xDF12,0xDD22,0xDD23,0xDD24, 0,0xDD25,0xDD26,0xDD27,
- 0xDD28,0xDD29,0xDD2A,0xDD2B,0xDD2C,
- /* plane 15, row 60 */
- 1 | (94 << 8), /* first, last */
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD859,0xD859,0xD859,
- 0xD859,0xD859,0xD859,0xD87E,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xffff,0xD85B,0xD85B,0xD85B,0xD85C,
- 0xD85C,0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xffff,
- 0xD85D,0xD85D,0xD85D,0xD849,0xD85D,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85F,0xffff,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD860,0x481A,0xD860,
- 0xD860,0xD860,0xD860,0xD860,0xD861,
- 1, /* first low-surrogate */
- 0xDD2D,0xDD2E,0xDE52,0xDE53,0xDF19,0xDFBF,0xDC8B,0xDC8C,0xDD23,
- 0xDD24,0xDDF1,0xDDD8,0xDD7F,0xDC4E,0xDC4F,0xDC55,0xDC50,0xDC51,0xDC52,
- 0xDC53,0xDC02,0xDC54,0xDCF1,0xDD24,0xDED1,0xDF7C,0xDF7D,0xDF7E,0xDF7F,
- 0xDF80,0xDF9F,0xDF81,0xDF82,0xDF83,0xDF84,0xDF85,0xDF86,0xDF87,0xDF88,
- 0xDF9B,0xDF89,0xDF8A,0xDF8B,0xDF8C, 0,0xDFA1,0xDF8D,0xDF8E,0xDDF3,
- 0xDDF4,0xDDF5,0xDC24,0xDC25,0xDC26,0xDC27,0xDC28,0xDC29,0xDC2A, 0,
- 0xDC2B,0xDDCD,0xDE01,0xDD8D,0xDF70,0xDC80,0xDC81,0xDEC0,0xDEC1,0xDEC2,
- 0xDEC3,0xDEC4,0xDEC5,0xDEC6,0xDEC7,0xDEC8,0xDCFE, 0,0xDDD9,0xDDDC,
- 0xDDDA,0xDE75,0xDF58,0xDF59,0xDF5A,0xDF5B,0xDF5C,0xDCEC, 0,0xDCF3,
- 0xDE72,0xDE73,0xDF82,0xDF83,0xDC2A,
- /* plane 15, row 61 */
- 1 | (93 << 8), /* first, last */
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xffff,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xffff,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0x9387,0xD862,0xD862,0xD862,0xD862,
- 0xffff,0xD862,0xD862,0x9385,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0x493C,0xffff,0xD862,0xD862,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xD864,0xffff,0xD864,0xD864,0xD864,0xD864,0xD864,
- 0xD864,0xD864,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD865,0xD865,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0x9BB1,0xD867,0xD867,0xD867,
- 0xD868,0xD868,0xD868,0xD868,
- 1, /* first low-surrogate */
- 0xDC2B,0xDC2C,0xDC2D,0xDDF6,0xDE00,0xDDF7,0xDDF8,0xDDF9, 0,
- 0xDC94,0xDC95,0xDC96,0xDD1B,0xDE86,0xDE4C,0xDE4D,0xDE83, 0,0xDE82,
- 0xDE4E,0xDE4F,0xDE50,0xDE51,0xDE81, 0,0xDE52,0xDE53,0xDE54,0xDE55,
- 0,0xDE56,0xDE57, 0,0xDE58,0xDE5B,0xDE5C,0xDE5D,0xDE5E,0xDE5F,
- 0xDE60,0xDE61,0xDE7C,0xDE62, 0, 0,0xDE63,0xDE64,0xDD73,0xDF45,
- 0xDF46,0xDF47,0xDF4C,0xDC12, 0,0xDC13,0xDD39,0xDD03,0xDD0D,0xDE30,
- 0xDED5,0xDFC0,0xDCF2,0xDCF3,0xDCF4,0xDCF5,0xDCF6,0xDCF7,0xDDFA,0xDDFB,
- 0xDF45,0xDF46,0xDC49,0xDCE7,0xDCE8,0xDED8,0xDED9,0xDF55,0xDF56,0xDF57,
- 0xDCDA,0xDCDB,0xDCDC,0xDDB8,0xDDB9,0xDDBA, 0,0xDDBB,0xDF89,0xDDBC,
- 0xDC30,0xDC31,0xDC32,0xDC33,
- /* plane 15, row 62 */
- 1 | (94 << 8), /* first, last */
- 0xD868,0xD868,0xD868,0x9D47,0xD868,0xD868,0xD868,0xD868,0xD868,
- 0xD869,0xffff,0xD841,0xffff,0xD841,0xD841,0xD841,0xD841,0xD841,0xD841,
- 0xD841,0xD841,0xD842,0xD842,0xD842,0xD842,0xD842,0xD842,0xD844,0xD844,
- 0xD844,0xD844,0xD844,0xffff,0xffff,0xD844,0xD844,0xD844,0xD844,0xD845,
- 0xD845,0xD845,0xD844,0xD845,0xD845,0xD845,0xD845,0xD845,0xD846,0xD846,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD847,0xD847,0xD848,0xD848,
- 0xD848,0xD849,0xD849,0xD84A,0xD84A,0xffff,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xD87E,0xD84B,0xD84B,0x3A6B,0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,0xD84C,
- 0xffff,0xD84C,0xD84C,0xD84D,0xD84D,
- 1, /* first low-surrogate */
- 0xDC34,0xDC35,0xDC36, 0,0xDC37,0xDEB2,0xDF90,0xDF26,0xDFA2,
- 0xDC38, 0,0xDC2E, 0,0xDC2F,0xDC30,0xDC2A,0xDC2B,0xDCC9,0xDD37,
- 0xDE20,0xDE72,0xDC1F,0xDD65,0xDDCA,0xDEC0,0xDEC1,0xDEC2,0xDCB7,0xDCB8,
- 0xDCB9,0xDCBA,0xDCBB, 0, 0,0xDCBC,0xDCBD,0xDCBE,0xDCF2,0xDCB5,
- 0xDCB7,0xDCB8,0xDCDF,0xDCB9,0xDCD5,0xDCBA,0xDCBB,0xDD4A,0xDCF2,0xDCF3,
- 0xDCF4,0xDCFA,0xDCF5,0xDD02,0xDEE2,0xDEE3,0xDF8E,0xDF8B,0xDEE4,0xDEEB,
- 0xDEE5,0xDC35,0xDD93,0xDCEA,0xDCEB, 0,0xDCEC,0xDCED,0xDD17,0xDCEE,
- 0xDCEF,0xDCF0,0xDE0E,0xDE0F,0xDE10,0xDE19,0xDE18,0xDE11,0xDE12,0xDE13,
- 0xDCC7,0xDE14,0xDE15, 0,0xDE16,0xDC65,0xDEEA,0xDEEB,0xDEEC,0xDEED,
- 0,0xDEEE,0xDFAC,0xDFC2,0xDF69,
- /* plane 15, row 63 */
- 1 | (94 << 8), /* first, last */
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0x3BF4,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84F,0xD84F,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xffff,0xD850,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xD850,0xD851,0xD851,0xD851,0xD851,
- 0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD852,0xD852,0xD852,0xffff,0xD852,0xD852,0xD852,0xD852,0xD852,
- 0xD852,0xD862,0xD852,0xD852,0xD852,0xD853,0xD854,0xD854,0xD854,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD855,0xD855,0xD856,0xD856,0xD856,0xD856,
- 0xD856,0xD856,0xD856,0xD846,0xD856,0xD856,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,
- 1, /* first low-surrogate */
- 0xDF81,0xDF6A,0xDF6B,0xDF6C,0xDF6D,0xDF6E,0xDF6F,0xDF70, 0,
- 0xDF71,0xDF72,0xDF73,0xDF8C,0xDF74,0xDF75,0xDF76,0xDC24,0xDC2A,0xDC8E,
- 0xDCAF,0xDC8F,0xDC90,0xDC91, 0,0xDC92,0xDC93,0xDC94,0xDC95,0xDC96,
- 0xDC97,0xDC98,0xDC99,0xDC9A,0xDC9B,0xDC9C,0xDC39,0xDC3B,0xDC3A,0xDC3C,
- 0xDC3D,0xDC3E,0xDC3F,0xDC70,0xDC40,0xDC41,0xDCC0,0xDCC1,0xDEA4,0xDE97,
- 0xDEA5,0xDE98,0xDE99,0xDE9A, 0,0xDE9B,0xDEA6,0xDE9C,0xDE9D,0xDE9E,
- 0xDE9F,0xDECE,0xDEC8,0xDEA0,0xDF19,0xDC0D,0xDCBF,0xDEE9,0xDEEA,0xDDA2,
- 0xDDA3,0xDDA4,0xDDA5,0xDDA6,0xDF15,0xDF17,0xDCBF,0xDCC0,0xDCC1,0xDCC2,
- 0xDCC3,0xDCC4,0xDCC5,0xDD0D,0xDE23,0xDEBE,0xDD03,0xDD04,0xDD05,0xDD06,
- 0xDD07,0xDD08,0xDD09,0xDD0A,0xDD0B,
- /* plane 15, row 64 */
- 1 | (94 << 8), /* first, last */
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xffff,0xD857,0xD857,0xD857,
- 0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,0xD858,
- 0xD858,0xD858,0xD859,0xD859,0xD859,0xD859,0xD859,0xD85A,0xD85A,0xD85A,
- 0xffff,0xffff,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xffff,0x455C,0xD85B,0xD85B,0xD85B,
- 0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,0xD85B,
- 0xD85C,0xD87E,0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,0xffff,0xD85D,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85E,0xD85E,0xD85E,
- 0xD85E,0xD85E,0xD85E,0xffff,0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,0xD85F,
- 0x4787,0xD85F,0xD85F,0xD85F,0xD860,
- 1, /* first low-surrogate */
- 0xDD0C,0xDD20,0xDD0D,0xDD0E,0xDD0F, 0,0xDF26,0xDF27,0xDF28,
- 0xDD5D,0xDD5E,0xDD5F,0xDD60,0xDD61,0xDD62,0xDD63,0xDD64,0xDD65,0xDE57,
- 0xDFCF,0xDFD0,0xDC99,0xDC9A,0xDDEA,0xDDEB,0xDDEC,0xDC7E,0xDC7F,0xDC80,
- 0, 0,0xDC81,0xDC82,0xDCF3,0xDD25,0xDD9F,0xDDA0,0xDDF3,0xDE00,
- 0xDFEB,0xDFEC,0xDFED,0xDFEE,0xDFEF, 0, 0,0xDFF0,0xDFF1,0xDFF2,
- 0xDFF3,0xDFF4,0xDFF5,0xDFF9,0xDFFA,0xDFFB,0xDFFC,0xDFFD,0xDFFE,0xDFFF,
- 0xDC00,0xDDAE,0xDC01,0xDC02,0xDE03,0xDC86,0xDC79, 0,0xDC7A,0xDC7B,
- 0xDC7C,0xDC84,0xDC7D,0xDC7E,0xDC7F,0xDF86,0xDF87,0xDC00,0xDC01,0xDC88,
- 0xDC89,0xDC8A,0xDEF5, 0,0xDF25,0xDEF6,0xDDEB,0xDDEC,0xDDED,0xDDEE,
- 0,0xDDEF,0xDDF0,0xDF6C,0xDD21,
- /* plane 15, row 65 */
- 1 | (94 << 8), /* first, last */
- 0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD861,0xD861,0xD861,0xD862,0xD862,0xD862,0xD862,0xD862,0x93B9,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xffff,0xD862,0xD862,
- 0xD862,0xffff,0xD862,0xD862,0xD862,0x93BF,0xD862,0xD862,0xD862,0xD863,
- 0xD863,0xD863,0xD87E,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD864,
- 0xffff,0xD864,0xD864,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,
- 0xD866,0xD866,0xD866,0xffff,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,
- 0xffff,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,
- 0xD867,0xD867,0x9BCF,0xD867,0xD868,0xD868,0xD851,0x9D64,0xD868,0xD868,
- 0xD868,0xD868,0x9EBF,0xD869,0xD841,
- 1, /* first low-surrogate */
- 0xDD22,0xDD23,0xDD24,0xDD25,0xDD26,0xDE7B,0xDE7C,0xDF91,0xDF92,
- 0xDF93,0xDE0E,0xDE0F,0xDE10,0xDCB3,0xDD36,0xDEC6,0xDEA1,0xDEA2, 0,
- 0xDEA3,0xDECC,0xDEA4,0xDEA5,0xDEA6,0xDECB,0xDEA7, 0,0xDEA8,0xDEA9,
- 0xDEAA, 0,0xDEAB,0xDEAC,0xDEAD, 0,0xDEAE,0xDEAF,0xDEB0,0xDD8C,
- 0xDD8D,0xDD8E,0xDDF1,0xDD92,0xDD8F,0xDF52,0xDF53,0xDF54,0xDF55,0xDD29,
- 0,0xDEF3,0xDEF4,0xDD0D,0xDD0E,0xDD0F,0xDD10,0xDE14,0xDF71,0xDF72,
- 0xDD0F,0xDD04,0xDD06, 0,0xDD07,0xDEDC,0xDEDD,0xDF6D,0xDF79,0xDF6E,
- 0,0xDCEC,0xDDDD,0xDDDE,0xDDDF,0xDDE0,0xDDE1,0xDDE2,0xDDE3,0xDDE4,
- 0xDE3A,0xDDE5, 0,0xDDE6,0xDC6B,0xDC6C,0xDC4E, 0,0xDEBD,0xDEBE,
- 0xDEBF,0xDF34, 0,0xDD12,0xDC40,
- /* plane 15, row 66 */
- 1 | (94 << 8), /* first, last */
- 0xD841,0xD844,0xD844,0xD844,0xD844,0xD844,0xD845,0xD845,0xD845,
- 0xD846,0xD846,0xD846,0xD846,0xD846,0xD846,0xD847,0xD847,0xD847,0xD848,
- 0xD848,0xD848,0xD848,0xffff,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,0xD84A,
- 0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,0xD84B,
- 0xffff,0xD84B,0xD84C,0xD84C,0xD84C,0xD84C,0xffff,0xD84D,0xffff,0xffff,
- 0xD84D,0x3C07,0xD84D,0xffff,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,0xD84E,0xD84E,0xD850,0xD850,
- 0xD850,0xD850,0xD850,0xD850,0xD850,0xffff,0xD850,0xD850,0xD850,0xD850,
- 0xD850,0xD850,0xffff,0xffff,0xD851,0xD851,0xD851,0xD851,0x3F05,0xD852,
- 0xD852,0x3F06,0xD852,0xD852,0xD852,
- 1, /* first low-surrogate */
- 0xDC41,0xDD02,0xDD03,0xDD04,0xDD05,0xDD06,0xDCD7,0xDCCC,0xDE98,
- 0xDD06,0xDD07,0xDDAF,0xDDB0,0xDEEA,0xDEF2,0xDFA2,0xDFA3,0xDFA4,0xDD76,
- 0xDEF5,0xDEF6,0xDEF7, 0,0xDD3B,0xDD25,0xDD3A,0xDD3C,0xDD3D,0xDD3E,
- 0xDE37,0xDE38,0xDE39,0xDE3A,0xDE3B,0xDE3C,0xDE3D,0xDE3E,0xDE3F,0xDE4B,
- 0,0xDE40,0xDC22,0xDC67,0xDCD3,0xDEFA, 0,0xDFBC, 0, 0,
- 0xDFA5, 0,0xDFB6, 0,0xDFA6,0xDFBB,0xDFA7,0xDFA8,0xDFA9,0xDFAA,
- 0xDFAB,0xDFAC,0xDFBF,0xDFAD,0xDFAE,0xDFAF,0xDD2E,0xDF00,0xDC9D,0xDC9E,
- 0xDCCB,0xDCCC,0xDCCD,0xDCCE,0xDCCF, 0,0xDC9F,0xDCD0,0xDCD1,0xDCD2,
- 0xDCD3,0xDCD4, 0, 0,0xDC5D,0xDC5E,0xDC5F,0xDC60, 0,0xDEBA,
- 0xDEBC, 0,0xDEB5,0xDEBD,0xDEB6,
- /* plane 15, row 67 */
- 1 | (94 << 8), /* first, last */
- 0xD852,0xD852,0xD852,0xD87E,0xD852,0xD852,0xD853,0xD854,0xD854,
- 0xD854,0xD855,0xD855,0xD855,0xD855,0xD855,0xD856,0xD857,0xffff,0xD857,
- 0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xffff,
- 0xD857,0xD857,0xD858,0xD858,0xffff,0xD858,0xD858,0xD858,0xD858,0xD859,
- 0xD859,0xD859,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85A,0xD85C,
- 0xD85C,0xffff,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85B,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xffff,0xD85D,0xD85D,0xD85D,0x45F9,0xD85D,
- 0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0x89B8,0xD85E,0xD85E,
- 0xD85E,0xD85F,0xD85F,0xD85F,0xD85F,
- 1, /* first low-surrogate */
- 0xDEB7,0xDEB8,0xDEA8,0xDD32,0xDFFE,0xDFFC,0xDEE1,0xDCC4,0xDCC5,
- 0xDF14,0xDDAE,0xDDAF,0xDDB0,0xDDB1,0xDDB9,0xDCE7,0xDD46, 0,0xDD47,
- 0xDD48,0xDD49,0xDD1E,0xDD1F,0xDD4A,0xDD4B,0xDD4C,0xDD4D,0xDD4E, 0,
- 0xDF46,0xDF4B,0xDD90,0xDD91, 0,0xDD92,0xDD93,0xDD94,0xDE5B,0xDDF2,
- 0xDDF8,0xDDF9,0xDC94,0xDCA4,0xDC97,0xDC98,0xDD29,0xDDAE,0xDEAF,0xDC59,
- 0xDC5A, 0,0xDC5B,0xDC5C,0xDC5D,0xDC5E,0xDC5F,0xDC60,0xDC61,0xDFAA,
- 0xDC62,0xDC63,0xDC64,0xDC65,0xDC66,0xDC67,0xDC68,0xDC69,0xDC6A,0xDC6B,
- 0xDC6C,0xDC6D,0xDC6E,0xDC6F, 0,0xDCB2,0xDCB3,0xDCB4, 0,0xDCB5,
- 0xDCB6,0xDCB7,0xDCB8,0xDCB9,0xDCBA,0xDCBB,0xDF88, 0,0xDF19,0xDF1A,
- 0xDF1B,0xDC16,0xDE0C,0xDE0D,0xDE0E,
- /* plane 15, row 68 */
- 1 | (94 << 8), /* first, last */
- 0xD85F,0xffff,0xD85F,0xD85F,0xD85F,0xD860,0xD860,0xD860,0xffff,
- 0xD861,0xD861,0xD861,0xD861,0xD861,0xffff,0xffff,0xD862,0xD862,0xD862,
- 0x4953,0xD862,0xD862,0xffff,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD863,0xD863,
- 0xD863,0xD863,0xD863,0xffff,0xD863,0xffff,0xD864,0xD864,0xD864,0xffff,
- 0xD864,0xD864,0xD865,0xD865,0xD865,0xD865,0xD865,0xD865,0xffff,0xD866,
- 0xD866,0xD866,0xffff,0xD866,0xD866,0xD866,0xffff,0xD866,0xD867,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0x9BF3,0xD867,0xffff,0xD867,0xD867,
- 0xD867,0xD867,0x4C69,0xffff,0xD868,0x4CE5,0xD868,0xD868,0xffff,0xD868,
- 0xD841,0xD841,0xD842,0xD844,0xD844,
- 1, /* first low-surrogate */
- 0xDE0F, 0,0xDF83,0xDF84,0xDF85,0xDE83,0xDE84,0xDFB0, 0,
- 0xDE26,0xDE27,0xDE36,0xDE28,0xDE29, 0, 0,0xDEE7,0xDEE8,0xDEE9,
- 0,0xDEEA,0xDEEB, 0,0xDEEC,0xDEED,0xDEEE,0xDEEF,0xDEF0,0xDEF1,
- 0xDF0C,0xDEF2,0xDEF3,0xDEF4,0xDEF5,0xDEF6,0xDEF7,0xDEF8,0xDDA3,0xDDA4,
- 0xDDA5,0xDDA6,0xDDA7, 0,0xDF5C, 0,0xDD4B,0xDDE1,0xDF15, 0,
- 0xDF16,0xDF17,0xDD2C,0xDD2D,0xDE22,0xDE23,0xDF96,0xDF97, 0,0xDD2E,
- 0xDD30,0xDD31, 0,0xDEDF,0xDF8B,0xDF8C, 0,0xDF8D,0xDCFC,0xDCFD,
- 0xDCFE,0xDCFF,0xDE17,0xDE2D,0xDE18, 0,0xDE19, 0,0xDE12,0xDE1A,
- 0xDE1B,0xDE1C, 0, 0,0xDC97, 0,0xDC98,0xDC99, 0,0xDFC4,
- 0xDC4F,0xDCCD,0xDEC7,0xDD1C,0xDD1D,
- /* plane 15, row 69 */
- 1 | (94 << 8), /* first, last */
- 0xD844,0xD845,0xD845,0xD845,0xD845,0xD846,0xD847,0xD847,0xD847,
- 0xD849,0xD84A,0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84C,0xD84C,0xD84D,
- 0xD84D,0xD84D,0xD84D,0xD84D,0xffff,0xD84D,0xD84D,0xD84D,0xD84D,0xD84D,
- 0x3C12,0xD84D,0xffff,0xD84F,0xD850,0xD850,0xD850,0xD851,0xD851,0xD851,
- 0xD851,0xffff,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xD851,0xffff,
- 0xD852,0xD852,0xD852,0xD852,0xD854,0xD854,0xffff,0xffff,0xD855,0xD855,
- 0xD855,0xD855,0xD855,0xD855,0xD856,0xD856,0xffff,0xD856,0xD856,0xD856,
- 0xD856,0x7C4F,0xD857,0xD857,0xD857,0xD857,0xD858,0xD858,0xD858,0xffff,
- 0xD858,0xD858,0xD859,0xD859,0xD859,0xD859,0xD85A,0xffff,0xD85A,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 1, /* first low-surrogate */
- 0xDD1E,0xDCE7,0xDCE9,0xDCEA,0xDCEB,0xDD15,0xDCF1,0xDCF2,0xDFB6,
- 0xDDA0,0xDD4A,0xDE20,0xDE60,0xDE61,0xDE41,0xDE62,0xDF03,0xDF04,0xDFD9,
- 0xDFDA,0xDFDB,0xDFDC,0xDFDD, 0,0xDFDE,0xDFDF,0xDFE0,0xDFE1,0xDFE2,
- 0,0xDFE3, 0,0xDC31,0xDD05,0xDD06,0xDD07,0xDC72,0xDC8A,0xDC8B,
- 0xDC88, 0,0xDC8C,0xDC8D,0xDC8E,0xDC8F,0xDC90,0xDD42,0xDD43, 0,
- 0xDEC1,0xDEC2,0xDEC3,0xDEC4,0xDCCB,0xDF22, 0, 0,0xDDC3,0xDDC4,
- 0xDDC5,0xDDC6,0xDF1E,0xDF25,0xDCF3,0xDCF4, 0,0xDCF5,0xDE38,0xDE48,
- 0xDECA, 0,0xDD7A,0xDD7B,0xDF55,0xDF56,0xDDB1,0xDDB2,0xDDB3, 0,
- 0xDDB4,0xDDB5,0xDCA4,0xDE00,0xDE01,0xDE02,0xDCAC, 0,0xDDB3,0xDCB6,
- 0xDCB7,0xDCB8,0xDCB9,0xDCBA,0xDCBB,
- /* plane 15, row 70 */
- 1 | (94 << 8), /* first, last */
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,0xD85D,0xD85D,0xD85D,0xffff,0xD85D,
- 0xD85D,0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD85F,0xD85F,0xD85F,0xD85F,0xD85F,0xD860,0xD860,0xD860,0xD860,0xD860,
- 0xD860,0xD860,0xD860,0xD861,0xD861,0xffff,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0x9425,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD87E,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xffff,
- 0xD862,0xD862,0xD862,0xffff,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD863,0xD863,0xD863,0xD863,0xD864,0xD864,0xffff,0xD864,0xD864,0xD864,
- 0xD865,0xD865,0xD866,0xD866,0xD866,
- 1, /* first low-surrogate */
- 0xDCBC,0xDCBD,0xDCBE,0xDCBF,0xDCC0,0xDCC1,0xDCC2,0xDCC3,0xDCC4,
- 0xDCC5,0xDCC6,0xDCC7,0xDCE3,0xDCE4,0xDCE5,0xDCE6,0xDCE7, 0,0xDFB5,
- 0xDFA1,0xDC95,0xDF3B,0xDF3C,0xDF3D,0xDF3E,0xDC14,0xDE20,0xDE21,0xDE22,
- 0xDE23,0xDE24,0xDF96,0xDF97,0xDF98,0xDD94,0xDD95,0xDD96,0xDD97,0xDD98,
- 0xDE8F,0xDE90,0xDFBC,0xDC3B,0xDE3D, 0,0xDCDF,0xDD1E,0xDF23,0xDF24,
- 0xDF49,0xDF25,0xDF26,0xDF27,0xDF28, 0,0xDF29,0xDF2A,0xDF2E,0xDF2F,
- 0xDF4E,0xDF30,0xDDEB,0xDF31,0xDF32,0xDF33,0xDF34,0xDF35,0xDF36, 0,
- 0xDF37,0xDF50,0xDF38, 0,0xDF39,0xDF3A,0xDF3B,0xDF3C,0xDF3D,0xDF3E,
- 0xDDB8,0xDDB9,0xDF62,0xDF63,0xDC41,0xDD6D, 0,0xDF52,0xDF37,0xDFDB,
- 0xDD3F,0xDE34,0xDC5B,0xDD46,0xDD5A,
- /* plane 15, row 71 */
- 1 | (94 << 8), /* first, last */
- 0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD866,0xD867,
- 0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xffff,
- 0xD867,0xffff,0xD868,0xD868,0xD868,0xD868,0xD868,0xD868,0xD869,0xD869,
- 0xD869,0xD841,0xD87E,0xD841,0xD841,0xD841,0xD842,0xD842,0xffff,0xD844,
- 0xD844,0xD845,0xD845,0xD845,0xD845,0xD846,0xD846,0xD846,0xD846,0xD847,
- 0xD853,0xffff,0xD849,0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84C,0xD84E,
- 0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xffff,0xD84F,0xD850,0xD850,0xD850,0xD850,0xffff,0xD850,0xD850,0xD850,
- 0xD850,0xD851,0xD851,0xD851,0xD851,0xD851,0xD852,0xD853,0xD853,0xD853,
- 0xD854,0xD854,0xD855,0xD855,0xD841,
- 1, /* first low-surrogate */
- 0xDD5B,0xDEE1,0xDEE2,0xDEE3,0xDEE4,0xDFA7,0xDFA8,0xDFA9,0xDD0F,
- 0xDD2B,0xDE56,0xDE57,0xDE58,0xDE5E,0xDE59,0xDE5A,0xDE5B,0xDE5C, 0,
- 0xDE68, 0,0xDD2C,0xDCE2,0xDCF3,0xDED2,0xDF56,0xDFCE,0xDC61,0xDE9B,
- 0xDEB4,0xDC5C,0xDC10,0xDCD2,0xDD71,0xDE73,0xDC2C,0xDF94, 0,0xDD3F,
- 0xDD40,0xDCF9,0xDCFA,0xDCFD,0xDCFB,0xDD1C,0xDD1D,0xDEFF,0xDF00,0xDCF7,
- 0xDCFE, 0,0xDCB6,0xDD54,0xDE77,0xDE79,0xDE7A,0xDE7B,0xDC69,0xDC02,
- 0xDC03,0xDC04,0xDC05,0xDC06,0xDC07,0xDC08,0xDC09,0xDC0A,0xDC0B,0xDC35,
- 0,0xDC39,0xDD1E,0xDD1F,0xDD20,0xDD21, 0,0xDD22,0xDD23,0xDD24,
- 0xDD2C,0xDCB3,0xDCB5,0xDCB6,0xDCB7,0xDCB8,0xDED0,0xDCFA,0xDF07,0xDFBD,
- 0xDCD7,0xDCD2,0xDDDB,0xDDD6,0xDC5D,
- /* plane 15, row 72 */
- 1 | (94 << 8), /* first, last */
- 0xD856,0xD856,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,0xD857,
- 0xD857,0xD857,0xD858,0xD858,0xD858,0xD858,0xD859,0xD859,0xffff,0xD85A,
- 0xD85A,0xD85A,0xD85A,0xD85A,0xD85C,0x4577,0xD85C,0xD85C,0xD85C,0xD85C,
- 0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,0xD85D,
- 0xD85D,0xD85D,0x8977,0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,0xffff,0xD860,
- 0xD860,0x4878,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD861,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD863,0xD863,0x95E6,0xD863,0xD863,0xD863,0xD864,0xffff,0xffff,0xD864,
- 0xD865,0xD865,0xD865,0xD865,0xD865,
- 1, /* first low-surrogate */
- 0xDE43,0xDECF,0xDDA3,0xDDA4,0xDDA5,0xDDA6,0xDDA7,0xDDA8,0xDDA9,
- 0xDF5D,0xDF5E,0xDDC9,0xDDCA,0xDDCB,0xDDCC,0xDE06,0xDE07, 0,0xDCC5,
- 0xDCF5,0xDDB4,0xDDB8,0xDDB5,0xDCFD, 0,0xDCFE,0xDCFF,0xDD00,0xDD01,
- 0xDD02,0xDD03,0xDD09,0xDD04,0xDD05,0xDD06,0xDD07,0xDD11,0xDD12,0xDD13,
- 0xDD14,0xDD15, 0,0xDC98,0xDC99,0xDE3C,0xDE2D,0xDE2E, 0,0xDDBB,
- 0xDDBC, 0,0xDC3D,0xDE47,0xDE48,0xDE49,0xDE4A,0xDFE1,0xDFE7,0xDCEB,
- 0xDD20,0xDD38,0xDF62,0xDF67,0xDF68,0xDF69,0xDF6A,0xDF6B,0xDF6D,0xDF6E,
- 0xDF6F,0xDF70,0xDF71,0xDF72,0xDF8F,0xDF73,0xDF74,0xDF75,0xDF76,0xDF77,
- 0xDDC9,0xDDCA, 0,0xDDCB,0xDDCC,0xDDCD,0xDC51, 0, 0,0xDE45,
- 0xDD59,0xDD5A,0xDD5B,0xDE40,0xDFCF,
- /* plane 15, row 73 */
- 1 | (94 << 8), /* first, last */
- 0xD866,0xD866,0xD866,0xD866,0xD867,0xD867,0xffff,0xD867,0xD867,
- 0x9C2F,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD867,0xD868,
- 0xD868,0xD868,0xD869,0xD869,0xD841,0xD841,0xD841,0xD841,0xD844,0xD845,
- 0xD845,0xD846,0xD846,0xD84A,0xD84A,0xD84B,0xD84B,0xD84C,0xD84C,0xD84E,
- 0xD84E,0xD84E,0xffff,0xD84E,0x6B0C,0xffff,0xD84E,0xD84E,0xD84E,0xD84E,
- 0xD84F,0xD850,0xD850,0xD850,0xD851,0xD851,0xD851,0xD852,0xD852,0xD855,
- 0xD855,0xD855,0xD856,0xD857,0xD857,0xD857,0xD857,0xD858,0xD858,0xD858,
- 0xD858,0xD85A,0xD85C,0xffff,0xD85C,0xD85C,0xD85C,0xD85D,0xD85D,0xD85D,
- 0xD85E,0xD85E,0xD85E,0xD85E,0xD85E,0xffff,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD860,0xffff,0xD860,0xD862,0xD862,
- 1, /* first low-surrogate */
- 0xDC5E,0xDD7B,0xDE93,0xDFBC,0xDD16,0xDD30, 0,0xDE8D,0xDE8E,
- 0,0xDE8F,0xDE90,0xDE91,0xDE92,0xDE93,0xDE94,0xDE95,0xDE96,0xDD23,
- 0xDD14,0xDEDB,0xDC0A,0xDDCE,0xDC66,0xDC68,0xDC67,0xDCD3,0xDD63,0xDD04,
- 0xDE9E,0xDD26,0xDD2A,0xDD6C,0xDD64,0xDE8F,0xDE90,0xDC34,0xDF0E,0xDC25,
- 0xDC26,0xDC27, 0,0xDC28, 0, 0,0xDC29,0xDC2A,0xDC2B,0xDC2C,
- 0xDC3E,0xDD42,0xDD43,0xDD33,0xDCC1,0xDCC2,0xDCC3,0xDED6,0xDED7,0xDDE1,
- 0xDDE2,0xDF2B,0xDED1,0xDDCC,0xDDCD,0xDDCE,0xDDCF,0xDDDE,0xDDDF,0xDDE0,
- 0xDDE1,0xDCF6,0xDD2C, 0,0xDD54,0xDD2D,0xDD2E,0xDD41,0xDD42,0xDFC7,
- 0xDCA0,0xDCA1,0xDF70,0xDF71,0xDF72, 0,0xDE34,0xDE35,0xDE36,0xDFA6,
- 0xDDCC, 0,0xDE99,0xDCF4,0xDF9B,
- /* plane 15, row 74 */
- 1 | (94 << 8), /* first, last */
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,
- 0xD862,0xD862,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD864,0xD865,
- 0xD865,0xD865,0xffff,0xD865,0xD866,0xD866,0xD866,0xD866,0xD866,0xD867,
- 0x9C47,0x4C88,0xD867,0xD867,0xD867,0xD867,0xD868,0xD868,0xD868,0xD868,
- 0xD868,0xD868,0xffff,0xD841,0xD841,0xD844,0xD848,0xD848,0xD84A,0xD84A,
- 0xD84A,0xD84A,0xD84B,0xD84B,0xD84B,0xD84E,0xD84E,0xD84E,0xD84E,0xD850,
- 0xD850,0xD850,0xffff,0xD851,0xD851,0xD852,0xD852,0xD852,0xD853,0xD855,
- 0x7936,0xD855,0xD856,0xD857,0xD857,0xD858,0xD859,0xD85C,0xD85C,0xD85C,
- 0xD85D,0xD85D,0xD85D,0xffff,0xD85E,0xD85E,0xD85F,0xD85F,0xD85F,0xD85F,
- 0xD862,0xffff,0xD862,0xD862,0xD862,
- 1, /* first low-surrogate */
- 0xDF9E,0xDF9F,0xDFA0,0xDFA1,0xDFA2,0xDFA3,0xDFA4,0xDFA5,0xDFA6,
- 0xDFA7,0xDFA8,0xDDDB,0xDDDC,0xDDDD,0xDDD7,0xDDDE,0xDDDF,0xDC59,0xDC46,
- 0xDD65,0xDE49, 0,0xDFDD,0xDD95,0xDD96,0xDD97,0xDFD4,0xDFD6,0xDD26,
- 0, 0,0xDEC8,0xDEC5,0xDEC6,0xDEC7,0xDD51,0xDD52,0xDD53,0xDD54,
- 0xDD55,0xDEDE, 0,0xDC6D,0xDCD5,0xDD72,0xDDAE,0xDF0F,0xDD6B,0xDD6D,
- 0xDD6E,0xDD78,0xDE98,0xDE99,0xDE9A,0xDC44,0xDC5C,0xDC45,0xDF01,0xDD58,
- 0xDD59,0xDD5A, 0,0xDCD9,0xDCD6,0xDEDA,0xDEDF,0xDEDB,0xDD03,0xDDEF,
- 0,0xDF33,0xDED2,0xDDE1,0xDF6F,0xDE64,0xDE0E,0xDD50,0xDD51,0xDD52,
- 0xDD56,0xDD57,0xDD58, 0,0xDF81,0xDF82,0xDC1D,0xDC1E,0xDE43,0xDFAA,
- 0xDCFD, 0,0xDFC6,0xDFC7,0xDFD9,
- /* plane 15, row 75 */
- 1 | (94 << 8), /* first, last */
- 0xD862,0xffff,0xD862,0xD862,0xD862,0xD862,0xD862,0xffff,0xD862,
- 0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD863,0xD863,0xD863,0xD864,
- 0xD864,0xD865,0xffff,0xffff,0xD866,0xD866,0xD866,0xD866,0xD867,0xD867,
- 0xD867,0xD867,0xD868,0xD841,0xD841,0xD844,0xD845,0xD846,0xD846,0xD84A,
- 0xD84A,0xD84B,0xD84B,0xD84B,0xD84B,0xD84C,0xD84E,0xD84E,0xD84E,0x6B15,
- 0xD84E,0xD84E,0xD84E,0xD852,0xD852,0xD856,0xD856,0xD856,0xD857,0xD857,
- 0xD857,0xD858,0xD859,0xD859,0xD85C,0xD85C,0xffff,0xD85C,0xD85E,0xD85E,
- 0xD85E,0xD860,0xD862,0xD862,0xD862,0xD862,0xD862,0xD862,0xD863,0xD863,
- 0xD864,0xD864,0xD865,0xD866,0xffff,0xD867,0xffff,0xffff,0xD867,0xD868,
- 0xD868,0xD868,0xffff,0xffff,0xD869,
- 1, /* first low-surrogate */
- 0xDFD7, 0,0xDFC8,0xDFC9,0xDFCA,0xDFCB,0xDFDA, 0,0xDFCC,
- 0xDFCD,0xDFCE,0xDFCF,0xDFD0,0xDFD1,0xDFBC,0xDDE1,0xDDE2,0xDDE3,0xDDA9,
- 0xDE4E,0xDD77, 0, 0,0xDDAC,0xDDAD,0xDEB6,0xDFE5,0xDEF8,0xDEEA,
- 0xDF8D,0xDEEB,0xDD95,0xDC6E,0xDCD8,0xDD83,0xDEA3,0xDD30,0xDF0F,0xDD79,
- 0xDD7A,0xDEA7,0xDEA8,0xDEA9,0xDEAA,0xDF19,0xDC50,0xDC51,0xDC52, 0,
- 0xDC68,0xDC53,0xDC54,0xDCE2,0xDEDC,0xDD15,0xDD16,0xDE4F,0xDDF5,0xDDF6,
- 0xDDF7,0xDDF4,0xDCCC,0xDE0F,0xDD66,0xDD67, 0,0xDD68,0xDCA4,0xDF8B,
- 0xDF8C,0xDDFA,0xDFE6,0xDFED,0xDFEE,0xDFEF,0xDFF0,0xDFFE,0xDDE7,0xDDE8,
- 0xDDB3,0xDDE4,0xDD83,0xDEEC, 0,0xDF16, 0, 0,0xDF17,0xDDC3,
- 0xDDAC,0xDEED, 0, 0,0xDDB4,
- /* plane 15, row 76 */
- 2 | (93 << 8), /* first, last */
- 0xD844,0xD844,0xD846,0xD846,0xD847,0xD849,0xD84A,0xD84A,
- 0xD84B,0xD84B,0xD84E,0xD84E,0xffff,0xD850,0xffff,0xD851,0xD852,0xD853,
- 0xD856,0xffff,0xD859,0xD85A,0xD85C,0xD85C,0xD85E,0xD85E,0xD863,0xD863,
- 0xD863,0xD87E,0xD863,0xD864,0xD866,0xD866,0xD867,0xD867,0xD867,0xD868,
- 0xffff,0xD841,0xD846,0xffff,0xD84E,0xD857,0xffff,0xD857,0xD859,0xD85C,
- 0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD863,0xD864,0xD867,0xD867,
- 0xD867,0xD867,0xD868,0xD845,0xD846,0xD84B,0xD84C,0xD84E,0xD851,0xD851,
- 0xD854,0xD855,0xD857,0xD858,0xD85A,0xD85C,0x4584,0xD85C,0xffff,0xD863,
- 0xffff,0xffff,0xD867,0xD867,0xD867,0xD867,0xD868,0xD87E,0xffff,0xD844,
- 0xD844,0xD848,0xD84A,0xD84A,
- 2, /* first low-surrogate */
- 0xDD8A,0xDD8B,0xDD34,0xDF14,0xDFDF,0xDCBB,0xDD7F,0xDD81,
- 0xDEAD,0xDEAE,0xDC62,0xDC6E, 0,0xDD6E, 0,0xDF17,0xDEE6,0xDC10,
- 0xDD19, 0,0xDE10,0xDEF2,0xDD76,0xDD77,0xDF95,0xDF96,0xDC00,0xDC01,
- 0xDC31,0xDDED,0xDC1C,0xDC6D,0xDFF4,0xDFF5,0xDD3D,0xDF32,0xDF33,0xDEF4,
- 0,0xDC73,0xDD37, 0,0xDC71,0xDE0F, 0,0xDE0E,0xDE11,0xDD85,
- 0xDC14,0xDC15,0xDC16,0xDC17,0xDC18,0xDC19,0xDC1A,0xDDC3,0xDF42,0xDF43,
- 0xDF44,0xDF48,0xDDFB,0xDEA5,0xDDB8,0xDEB2,0xDC3D,0xDC72,0xDCE7,0xDCE8,
- 0xDF59,0xDF3A,0xDE14,0xDDFF,0xDDC0,0xDD8D, 0,0xDD8E, 0,0xDC22,
- 0, 0,0xDC04,0xDC29,0xDF51,0xDF66,0xDE0E,0xDE13, 0,0xDD9B,
- 0xDD9C,0xDF16,0xDD86,0xDD87,
- /* plane 15, row 77 */
- 1 | (25 << 8), /* first, last */
- 0xD863,0xD863,0xD863,0xD865,0xffff,0xD850,0xD857,0xD860,0xD863,
- 0xD863,0xD867,0xD867,0xD869,0x53B5,0xD84E,0xD858,0xD85D,0xD868,0xD860,
- 0xD84A,0xD863,0xffff,0xD868,0xD863,0xD863,
- 1, /* first low-surrogate */
- 0xDC2C,0xDC30,0xDC28,0xDE5F, 0,0xDD7E,0xDE19,0xDE0A,0xDC36,
- 0xDDFC,0xDF6D,0xDF6E,0xDEC6, 0,0xDC7B,0xDE06,0xDD9F,0xDE32,0xDE0D,
- 0xDD8B,0xDC3B, 0,0xDE3D,0xDC3C,0xDC3D,
- /* plane 15, row 78: --- */
- /* plane 15, row 79: --- */
- /* plane 15, row 80: --- */
- /* plane 15, row 81: --- */
- /* plane 15, row 82: --- */
- /* plane 15, row 83: --- */
- /* plane 15, row 84: --- */
- /* plane 15, row 85: --- */
- /* plane 15, row 86: --- */
- /* plane 15, row 87: --- */
- /* plane 15, row 88: --- */
- /* plane 15, row 89: --- */
- /* plane 15, row 90: --- */
- /* plane 15, row 91: --- */
- /* plane 15, row 92: --- */
- /* plane 15, row 93: --- */
- /* plane 15, row 94: --- */
-};
-
-static sal_Int32 const aImplCns116431992ToUnicodeRowOffsets[] = {
- 0, /* plane 1, row 1; 182/190 bytes (95.8%) */
- 95, /* plane 1, row 2; 186/190 bytes (97.9%) */
- 190, /* plane 1, row 3; 94/94 bytes (100.0%) */
- 237, /* plane 1, row 4; 186/190 bytes (97.9%) */
- 332, /* plane 1, row 5; 162/162 bytes (100.0%) */
- 413, /* plane 1, row 6; 62/62 bytes (100.0%) */
- 444, /* plane 1, row 7; 8/28 bytes (28.6%) */
- -1, /* plane 1, row 8 */
- -1, /* plane 1, row 9 */
- -1, /* plane 1, row 10 */
- -1, /* plane 1, row 11 */
- -1, /* plane 1, row 12 */
- -1, /* plane 1, row 13 */
- -1, /* plane 1, row 14 */
- -1, /* plane 1, row 15 */
- -1, /* plane 1, row 16 */
- -1, /* plane 1, row 17 */
- -1, /* plane 1, row 18 */
- -1, /* plane 1, row 19 */
- -1, /* plane 1, row 20 */
- -1, /* plane 1, row 21 */
- -1, /* plane 1, row 22 */
- -1, /* plane 1, row 23 */
- -1, /* plane 1, row 24 */
- -1, /* plane 1, row 25 */
- -1, /* plane 1, row 26 */
- -1, /* plane 1, row 27 */
- -1, /* plane 1, row 28 */
- -1, /* plane 1, row 29 */
- -1, /* plane 1, row 30 */
- -1, /* plane 1, row 31 */
- -1, /* plane 1, row 32 */
- -1, /* plane 1, row 33 */
- 458, /* plane 1, row 34; 68/68 bytes (100.0%) */
- -1, /* plane 1, row 35 */
- 492, /* plane 1, row 36; 190/190 bytes (100.0%) */
- 587, /* plane 1, row 37; 190/190 bytes (100.0%) */
- 682, /* plane 1, row 38; 190/190 bytes (100.0%) */
- 777, /* plane 1, row 39; 190/190 bytes (100.0%) */
- 872, /* plane 1, row 40; 190/190 bytes (100.0%) */
- 967, /* plane 1, row 41; 190/190 bytes (100.0%) */
- 1062, /* plane 1, row 42; 190/190 bytes (100.0%) */
- 1157, /* plane 1, row 43; 190/190 bytes (100.0%) */
- 1252, /* plane 1, row 44; 190/190 bytes (100.0%) */
- 1347, /* plane 1, row 45; 190/190 bytes (100.0%) */
- 1442, /* plane 1, row 46; 190/190 bytes (100.0%) */
- 1537, /* plane 1, row 47; 190/190 bytes (100.0%) */
- 1632, /* plane 1, row 48; 190/190 bytes (100.0%) */
- 1727, /* plane 1, row 49; 190/190 bytes (100.0%) */
- 1822, /* plane 1, row 50; 190/190 bytes (100.0%) */
- 1917, /* plane 1, row 51; 190/190 bytes (100.0%) */
- 2012, /* plane 1, row 52; 190/190 bytes (100.0%) */
- 2107, /* plane 1, row 53; 190/190 bytes (100.0%) */
- 2202, /* plane 1, row 54; 190/190 bytes (100.0%) */
- 2297, /* plane 1, row 55; 190/190 bytes (100.0%) */
- 2392, /* plane 1, row 56; 190/190 bytes (100.0%) */
- 2487, /* plane 1, row 57; 190/190 bytes (100.0%) */
- 2582, /* plane 1, row 58; 190/190 bytes (100.0%) */
- 2677, /* plane 1, row 59; 190/190 bytes (100.0%) */
- 2772, /* plane 1, row 60; 190/190 bytes (100.0%) */
- 2867, /* plane 1, row 61; 190/190 bytes (100.0%) */
- 2962, /* plane 1, row 62; 190/190 bytes (100.0%) */
- 3057, /* plane 1, row 63; 190/190 bytes (100.0%) */
- 3152, /* plane 1, row 64; 190/190 bytes (100.0%) */
- 3247, /* plane 1, row 65; 190/190 bytes (100.0%) */
- 3342, /* plane 1, row 66; 190/190 bytes (100.0%) */
- 3437, /* plane 1, row 67; 190/190 bytes (100.0%) */
- 3532, /* plane 1, row 68; 190/190 bytes (100.0%) */
- 3627, /* plane 1, row 69; 190/190 bytes (100.0%) */
- 3722, /* plane 1, row 70; 190/190 bytes (100.0%) */
- 3817, /* plane 1, row 71; 190/190 bytes (100.0%) */
- 3912, /* plane 1, row 72; 190/190 bytes (100.0%) */
- 4007, /* plane 1, row 73; 190/190 bytes (100.0%) */
- 4102, /* plane 1, row 74; 190/190 bytes (100.0%) */
- 4197, /* plane 1, row 75; 190/190 bytes (100.0%) */
- 4292, /* plane 1, row 76; 190/190 bytes (100.0%) */
- 4387, /* plane 1, row 77; 190/190 bytes (100.0%) */
- 4482, /* plane 1, row 78; 190/190 bytes (100.0%) */
- 4577, /* plane 1, row 79; 190/190 bytes (100.0%) */
- 4672, /* plane 1, row 80; 190/190 bytes (100.0%) */
- 4767, /* plane 1, row 81; 190/190 bytes (100.0%) */
- 4862, /* plane 1, row 82; 190/190 bytes (100.0%) */
- 4957, /* plane 1, row 83; 190/190 bytes (100.0%) */
- 5052, /* plane 1, row 84; 190/190 bytes (100.0%) */
- 5147, /* plane 1, row 85; 190/190 bytes (100.0%) */
- 5242, /* plane 1, row 86; 190/190 bytes (100.0%) */
- 5337, /* plane 1, row 87; 190/190 bytes (100.0%) */
- 5432, /* plane 1, row 88; 190/190 bytes (100.0%) */
- 5527, /* plane 1, row 89; 190/190 bytes (100.0%) */
- 5622, /* plane 1, row 90; 190/190 bytes (100.0%) */
- 5717, /* plane 1, row 91; 190/190 bytes (100.0%) */
- 5812, /* plane 1, row 92; 190/190 bytes (100.0%) */
- 5907, /* plane 1, row 93; 88/88 bytes (100.0%) */
- -1, /* plane 1, row 94 */
- 5951, /* plane 2, row 1; 190/190 bytes (100.0%) */
- 6046, /* plane 2, row 2; 190/190 bytes (100.0%) */
- 6141, /* plane 2, row 3; 190/190 bytes (100.0%) */
- 6236, /* plane 2, row 4; 190/190 bytes (100.0%) */
- 6331, /* plane 2, row 5; 190/190 bytes (100.0%) */
- 6426, /* plane 2, row 6; 190/190 bytes (100.0%) */
- 6521, /* plane 2, row 7; 190/190 bytes (100.0%) */
- 6616, /* plane 2, row 8; 190/190 bytes (100.0%) */
- 6711, /* plane 2, row 9; 190/190 bytes (100.0%) */
- 6806, /* plane 2, row 10; 190/190 bytes (100.0%) */
- 6901, /* plane 2, row 11; 190/190 bytes (100.0%) */
- 6996, /* plane 2, row 12; 190/190 bytes (100.0%) */
- 7091, /* plane 2, row 13; 190/190 bytes (100.0%) */
- 7186, /* plane 2, row 14; 190/190 bytes (100.0%) */
- 7281, /* plane 2, row 15; 190/190 bytes (100.0%) */
- 7376, /* plane 2, row 16; 190/190 bytes (100.0%) */
- 7471, /* plane 2, row 17; 190/190 bytes (100.0%) */
- 7566, /* plane 2, row 18; 190/190 bytes (100.0%) */
- 7661, /* plane 2, row 19; 190/190 bytes (100.0%) */
- 7756, /* plane 2, row 20; 190/190 bytes (100.0%) */
- 7851, /* plane 2, row 21; 190/190 bytes (100.0%) */
- 7946, /* plane 2, row 22; 190/190 bytes (100.0%) */
- 8041, /* plane 2, row 23; 190/190 bytes (100.0%) */
- 8136, /* plane 2, row 24; 190/190 bytes (100.0%) */
- 8231, /* plane 2, row 25; 190/190 bytes (100.0%) */
- 8326, /* plane 2, row 26; 190/190 bytes (100.0%) */
- 8421, /* plane 2, row 27; 190/190 bytes (100.0%) */
- 8516, /* plane 2, row 28; 190/190 bytes (100.0%) */
- 8611, /* plane 2, row 29; 190/190 bytes (100.0%) */
- 8706, /* plane 2, row 30; 190/190 bytes (100.0%) */
- 8801, /* plane 2, row 31; 190/190 bytes (100.0%) */
- 8896, /* plane 2, row 32; 190/190 bytes (100.0%) */
- 8991, /* plane 2, row 33; 190/190 bytes (100.0%) */
- 9086, /* plane 2, row 34; 190/190 bytes (100.0%) */
- 9181, /* plane 2, row 35; 190/190 bytes (100.0%) */
- 9276, /* plane 2, row 36; 190/190 bytes (100.0%) */
- 9371, /* plane 2, row 37; 190/190 bytes (100.0%) */
- 9466, /* plane 2, row 38; 190/190 bytes (100.0%) */
- 9561, /* plane 2, row 39; 190/190 bytes (100.0%) */
- 9656, /* plane 2, row 40; 190/190 bytes (100.0%) */
- 9751, /* plane 2, row 41; 190/190 bytes (100.0%) */
- 9846, /* plane 2, row 42; 190/190 bytes (100.0%) */
- 9941, /* plane 2, row 43; 190/190 bytes (100.0%) */
- 10036, /* plane 2, row 44; 190/190 bytes (100.0%) */
- 10131, /* plane 2, row 45; 190/190 bytes (100.0%) */
- 10226, /* plane 2, row 46; 190/190 bytes (100.0%) */
- 10321, /* plane 2, row 47; 190/190 bytes (100.0%) */
- 10416, /* plane 2, row 48; 190/190 bytes (100.0%) */
- 10511, /* plane 2, row 49; 190/190 bytes (100.0%) */
- 10606, /* plane 2, row 50; 190/190 bytes (100.0%) */
- 10701, /* plane 2, row 51; 190/190 bytes (100.0%) */
- 10796, /* plane 2, row 52; 190/190 bytes (100.0%) */
- 10891, /* plane 2, row 53; 190/190 bytes (100.0%) */
- 10986, /* plane 2, row 54; 190/190 bytes (100.0%) */
- 11081, /* plane 2, row 55; 190/190 bytes (100.0%) */
- 11176, /* plane 2, row 56; 190/190 bytes (100.0%) */
- 11271, /* plane 2, row 57; 190/190 bytes (100.0%) */
- 11366, /* plane 2, row 58; 190/190 bytes (100.0%) */
- 11461, /* plane 2, row 59; 190/190 bytes (100.0%) */
- 11556, /* plane 2, row 60; 190/190 bytes (100.0%) */
- 11651, /* plane 2, row 61; 190/190 bytes (100.0%) */
- 11746, /* plane 2, row 62; 190/190 bytes (100.0%) */
- 11841, /* plane 2, row 63; 190/190 bytes (100.0%) */
- 11936, /* plane 2, row 64; 190/190 bytes (100.0%) */
- 12031, /* plane 2, row 65; 190/190 bytes (100.0%) */
- 12126, /* plane 2, row 66; 190/190 bytes (100.0%) */
- 12221, /* plane 2, row 67; 190/190 bytes (100.0%) */
- 12316, /* plane 2, row 68; 190/190 bytes (100.0%) */
- 12411, /* plane 2, row 69; 190/190 bytes (100.0%) */
- 12506, /* plane 2, row 70; 190/190 bytes (100.0%) */
- 12601, /* plane 2, row 71; 190/190 bytes (100.0%) */
- 12696, /* plane 2, row 72; 190/190 bytes (100.0%) */
- 12791, /* plane 2, row 73; 190/190 bytes (100.0%) */
- 12886, /* plane 2, row 74; 190/190 bytes (100.0%) */
- 12981, /* plane 2, row 75; 190/190 bytes (100.0%) */
- 13076, /* plane 2, row 76; 190/190 bytes (100.0%) */
- 13171, /* plane 2, row 77; 190/190 bytes (100.0%) */
- 13266, /* plane 2, row 78; 190/190 bytes (100.0%) */
- 13361, /* plane 2, row 79; 190/190 bytes (100.0%) */
- 13456, /* plane 2, row 80; 190/190 bytes (100.0%) */
- 13551, /* plane 2, row 81; 190/190 bytes (100.0%) */
- 13646, /* plane 2, row 82; 74/74 bytes (100.0%) */
- -1, /* plane 2, row 83 */
- -1, /* plane 2, row 84 */
- -1, /* plane 2, row 85 */
- -1, /* plane 2, row 86 */
- -1, /* plane 2, row 87 */
- -1, /* plane 2, row 88 */
- -1, /* plane 2, row 89 */
- -1, /* plane 2, row 90 */
- -1, /* plane 2, row 91 */
- -1, /* plane 2, row 92 */
- -1, /* plane 2, row 93 */
- -1, /* plane 2, row 94 */
- 13683, /* plane 3, row 1; 200/306 bytes (65.4%) */
- 13836, /* plane 3, row 2; 196/366 bytes (53.6%) */
- 14019, /* plane 3, row 3; 198/290 bytes (68.3%) */
- 14164, /* plane 3, row 4; 200/286 bytes (69.9%) */
- 14307, /* plane 3, row 5; 194/194 bytes (100.0%) */
- 14404, /* plane 3, row 6; 194/194 bytes (100.0%) */
- 14501, /* plane 3, row 7; 202/294 bytes (68.7%) */
- 14648, /* plane 3, row 8; 190/190 bytes (100.0%) */
- 14743, /* plane 3, row 9; 190/190 bytes (100.0%) */
- 14838, /* plane 3, row 10; 196/218 bytes (89.9%) */
- 14947, /* plane 3, row 11; 190/190 bytes (100.0%) */
- 15042, /* plane 3, row 12; 196/228 bytes (86.0%) */
- 15156, /* plane 3, row 13; 196/252 bytes (77.8%) */
- 15282, /* plane 3, row 14; 196/202 bytes (97.0%) */
- 15383, /* plane 3, row 15; 190/190 bytes (100.0%) */
- 15478, /* plane 3, row 16; 196/290 bytes (67.6%) */
- 15623, /* plane 3, row 17; 194/194 bytes (100.0%) */
- 15720, /* plane 3, row 18; 190/190 bytes (100.0%) */
- 15815, /* plane 3, row 19; 194/194 bytes (100.0%) */
- 15912, /* plane 3, row 20; 198/254 bytes (78.0%) */
- 16039, /* plane 3, row 21; 196/206 bytes (95.1%) */
- 16142, /* plane 3, row 22; 198/348 bytes (56.9%) */
- 16316, /* plane 3, row 23; 190/190 bytes (100.0%) */
- 16411, /* plane 3, row 24; 190/190 bytes (100.0%) */
- 16506, /* plane 3, row 25; 194/194 bytes (100.0%) */
- 16603, /* plane 3, row 26; 196/276 bytes (71.0%) */
- 16741, /* plane 3, row 27; 190/190 bytes (100.0%) */
- 16836, /* plane 3, row 28; 194/194 bytes (100.0%) */
- 16933, /* plane 3, row 29; 194/194 bytes (100.0%) */
- 17030, /* plane 3, row 30; 190/190 bytes (100.0%) */
- 17125, /* plane 3, row 31; 194/194 bytes (100.0%) */
- 17222, /* plane 3, row 32; 196/312 bytes (62.8%) */
- 17378, /* plane 3, row 33; 194/194 bytes (100.0%) */
- 17475, /* plane 3, row 34; 190/190 bytes (100.0%) */
- 17570, /* plane 3, row 35; 194/194 bytes (100.0%) */
- 17667, /* plane 3, row 36; 196/338 bytes (58.0%) */
- 17836, /* plane 3, row 37; 190/190 bytes (100.0%) */
- 17931, /* plane 3, row 38; 194/194 bytes (100.0%) */
- 18028, /* plane 3, row 39; 196/246 bytes (79.7%) */
- 18151, /* plane 3, row 40; 196/330 bytes (59.4%) */
- 18316, /* plane 3, row 41; 190/190 bytes (100.0%) */
- 18411, /* plane 3, row 42; 190/190 bytes (100.0%) */
- 18506, /* plane 3, row 43; 190/190 bytes (100.0%) */
- 18601, /* plane 3, row 44; 190/190 bytes (100.0%) */
- 18696, /* plane 3, row 45; 190/190 bytes (100.0%) */
- 18791, /* plane 3, row 46; 190/190 bytes (100.0%) */
- 18886, /* plane 3, row 47; 190/190 bytes (100.0%) */
- 18981, /* plane 3, row 48; 194/194 bytes (100.0%) */
- 19078, /* plane 3, row 49; 190/190 bytes (100.0%) */
- 19173, /* plane 3, row 50; 190/190 bytes (100.0%) */
- 19268, /* plane 3, row 51; 190/190 bytes (100.0%) */
- 19363, /* plane 3, row 52; 194/194 bytes (100.0%) */
- 19460, /* plane 3, row 53; 196/216 bytes (90.7%) */
- 19568, /* plane 3, row 54; 194/194 bytes (100.0%) */
- 19665, /* plane 3, row 55; 194/194 bytes (100.0%) */
- 19762, /* plane 3, row 56; 196/234 bytes (83.8%) */
- 19879, /* plane 3, row 57; 190/190 bytes (100.0%) */
- 19974, /* plane 3, row 58; 196/200 bytes (98.0%) */
- 20074, /* plane 3, row 59; 196/208 bytes (94.2%) */
- 20178, /* plane 3, row 60; 194/194 bytes (100.0%) */
- 20275, /* plane 3, row 61; 190/190 bytes (100.0%) */
- 20370, /* plane 3, row 62; 190/190 bytes (100.0%) */
- 20465, /* plane 3, row 63; 190/190 bytes (100.0%) */
- 20560, /* plane 3, row 64; 194/194 bytes (100.0%) */
- 20657, /* plane 3, row 65; 188/190 bytes (98.9%) */
- 20752, /* plane 3, row 66; 120/180 bytes (66.7%) */
- 20842, /* plane 3, row 67; 56/180 bytes (31.1%) */
- 20932, /* plane 3, row 68; 126/188 bytes (67.0%) */
- 21026, /* plane 3, row 69; 190/190 bytes (100.0%) */
- 21121, /* plane 3, row 70; 180/186 bytes (96.8%) */
- 21214, /* plane 3, row 71; 22/22 bytes (100.0%) */
- -1, /* plane 3, row 72 */
- -1, /* plane 3, row 73 */
- -1, /* plane 3, row 74 */
- -1, /* plane 3, row 75 */
- -1, /* plane 3, row 76 */
- -1, /* plane 3, row 77 */
- -1, /* plane 3, row 78 */
- -1, /* plane 3, row 79 */
- -1, /* plane 3, row 80 */
- -1, /* plane 3, row 81 */
- -1, /* plane 3, row 82 */
- -1, /* plane 3, row 83 */
- -1, /* plane 3, row 84 */
- -1, /* plane 3, row 85 */
- -1, /* plane 3, row 86 */
- -1, /* plane 3, row 87 */
- -1, /* plane 3, row 88 */
- -1, /* plane 3, row 89 */
- -1, /* plane 3, row 90 */
- -1, /* plane 3, row 91 */
- -1, /* plane 3, row 92 */
- -1, /* plane 3, row 93 */
- -1, /* plane 3, row 94 */
- 21225, /* plane 4, row 1; 264/380 bytes (69.5%) */
- 21415, /* plane 4, row 2; 288/378 bytes (76.2%) */
- 21604, /* plane 4, row 3; 278/376 bytes (73.9%) */
- 21792, /* plane 4, row 4; 286/370 bytes (77.3%) */
- 21977, /* plane 4, row 5; 282/374 bytes (75.4%) */
- 22164, /* plane 4, row 6; 260/370 bytes (70.3%) */
- 22349, /* plane 4, row 7; 282/378 bytes (74.6%) */
- 22538, /* plane 4, row 8; 296/378 bytes (78.3%) */
- 22727, /* plane 4, row 9; 266/368 bytes (72.3%) */
- 22911, /* plane 4, row 10; 270/378 bytes (71.4%) */
- 23100, /* plane 4, row 11; 300/376 bytes (79.8%) */
- 23288, /* plane 4, row 12; 284/378 bytes (75.1%) */
- 23477, /* plane 4, row 13; 272/374 bytes (72.7%) */
- 23664, /* plane 4, row 14; 274/370 bytes (74.1%) */
- 23849, /* plane 4, row 15; 298/372 bytes (80.1%) */
- 24035, /* plane 4, row 16; 272/380 bytes (71.6%) */
- 24225, /* plane 4, row 17; 278/376 bytes (73.9%) */
- 24413, /* plane 4, row 18; 286/376 bytes (76.1%) */
- 24601, /* plane 4, row 19; 246/380 bytes (64.7%) */
- 24791, /* plane 4, row 20; 282/380 bytes (74.2%) */
- 24981, /* plane 4, row 21; 276/380 bytes (72.6%) */
- 25171, /* plane 4, row 22; 288/376 bytes (76.6%) */
- 25359, /* plane 4, row 23; 292/378 bytes (77.2%) */
- 25548, /* plane 4, row 24; 274/376 bytes (72.9%) */
- 25736, /* plane 4, row 25; 276/378 bytes (73.0%) */
- 25925, /* plane 4, row 26; 266/380 bytes (70.0%) */
- 26115, /* plane 4, row 27; 284/372 bytes (76.3%) */
- 26301, /* plane 4, row 28; 288/378 bytes (76.2%) */
- 26490, /* plane 4, row 29; 270/370 bytes (73.0%) */
- 26675, /* plane 4, row 30; 288/372 bytes (77.4%) */
- 26861, /* plane 4, row 31; 264/380 bytes (69.5%) */
- 27051, /* plane 4, row 32; 300/378 bytes (79.4%) */
- 27240, /* plane 4, row 33; 276/374 bytes (73.8%) */
- 27427, /* plane 4, row 34; 288/376 bytes (76.6%) */
- 27615, /* plane 4, row 35; 266/370 bytes (71.9%) */
- 27800, /* plane 4, row 36; 262/368 bytes (71.2%) */
- 27984, /* plane 4, row 37; 270/376 bytes (71.8%) */
- 28172, /* plane 4, row 38; 264/376 bytes (70.2%) */
- 28360, /* plane 4, row 39; 272/380 bytes (71.6%) */
- 28550, /* plane 4, row 40; 284/380 bytes (74.7%) */
- 28740, /* plane 4, row 41; 284/378 bytes (75.1%) */
- 28929, /* plane 4, row 42; 284/380 bytes (74.7%) */
- 29119, /* plane 4, row 43; 274/364 bytes (75.3%) */
- 29301, /* plane 4, row 44; 272/376 bytes (72.3%) */
- 29489, /* plane 4, row 45; 272/374 bytes (72.7%) */
- 29676, /* plane 4, row 46; 272/374 bytes (72.7%) */
- 29863, /* plane 4, row 47; 286/378 bytes (75.7%) */
- 30052, /* plane 4, row 48; 286/378 bytes (75.7%) */
- 30241, /* plane 4, row 49; 282/380 bytes (74.2%) */
- 30431, /* plane 4, row 50; 282/378 bytes (74.6%) */
- 30620, /* plane 4, row 51; 296/366 bytes (80.9%) */
- 30803, /* plane 4, row 52; 274/374 bytes (73.3%) */
- 30990, /* plane 4, row 53; 276/376 bytes (73.4%) */
- 31178, /* plane 4, row 54; 292/380 bytes (76.8%) */
- 31368, /* plane 4, row 55; 266/376 bytes (70.7%) */
- 31556, /* plane 4, row 56; 286/372 bytes (76.9%) */
- 31742, /* plane 4, row 57; 288/374 bytes (77.0%) */
- 31929, /* plane 4, row 58; 296/376 bytes (78.7%) */
- 32117, /* plane 4, row 59; 284/370 bytes (76.8%) */
- 32302, /* plane 4, row 60; 282/374 bytes (75.4%) */
- 32489, /* plane 4, row 61; 306/368 bytes (83.2%) */
- 32673, /* plane 4, row 62; 282/374 bytes (75.4%) */
- 32860, /* plane 4, row 63; 268/362 bytes (74.0%) */
- 33041, /* plane 4, row 64; 304/380 bytes (80.0%) */
- 33231, /* plane 4, row 65; 280/370 bytes (75.7%) */
- 33416, /* plane 4, row 66; 272/374 bytes (72.7%) */
- 33603, /* plane 4, row 67; 276/376 bytes (73.4%) */
- 33791, /* plane 4, row 68; 274/378 bytes (72.5%) */
- 33980, /* plane 4, row 69; 294/380 bytes (77.4%) */
- 34170, /* plane 4, row 70; 304/378 bytes (80.4%) */
- 34359, /* plane 4, row 71; 292/368 bytes (79.3%) */
- 34543, /* plane 4, row 72; 280/378 bytes (74.1%) */
- 34732, /* plane 4, row 73; 286/368 bytes (77.7%) */
- 34916, /* plane 4, row 74; 310/378 bytes (82.0%) */
- 35105, /* plane 4, row 75; 282/378 bytes (74.6%) */
- 35294, /* plane 4, row 76; 292/380 bytes (76.8%) */
- 35484, /* plane 4, row 77; 298/380 bytes (78.4%) */
- 35674, /* plane 4, row 78; 190/240 bytes (79.2%) */
- -1, /* plane 4, row 79 */
- -1, /* plane 4, row 80 */
- -1, /* plane 4, row 81 */
- -1, /* plane 4, row 82 */
- -1, /* plane 4, row 83 */
- -1, /* plane 4, row 84 */
- -1, /* plane 4, row 85 */
- -1, /* plane 4, row 86 */
- -1, /* plane 4, row 87 */
- -1, /* plane 4, row 88 */
- -1, /* plane 4, row 89 */
- -1, /* plane 4, row 90 */
- -1, /* plane 4, row 91 */
- -1, /* plane 4, row 92 */
- -1, /* plane 4, row 93 */
- -1, /* plane 4, row 94 */
- 35794, /* plane 5, row 1; 374/380 bytes (98.4%) */
- 35984, /* plane 5, row 2; 366/380 bytes (96.3%) */
- 36174, /* plane 5, row 3; 368/380 bytes (96.8%) */
- 36364, /* plane 5, row 4; 370/380 bytes (97.4%) */
- 36554, /* plane 5, row 5; 354/380 bytes (93.2%) */
- 36744, /* plane 5, row 6; 368/380 bytes (96.8%) */
- 36934, /* plane 5, row 7; 366/380 bytes (96.3%) */
- 37124, /* plane 5, row 8; 376/378 bytes (99.5%) */
- 37313, /* plane 5, row 9; 362/380 bytes (95.3%) */
- 37503, /* plane 5, row 10; 376/380 bytes (98.9%) */
- 37693, /* plane 5, row 11; 364/378 bytes (96.3%) */
- 37882, /* plane 5, row 12; 376/380 bytes (98.9%) */
- 38072, /* plane 5, row 13; 370/380 bytes (97.4%) */
- 38262, /* plane 5, row 14; 368/380 bytes (96.8%) */
- 38452, /* plane 5, row 15; 376/380 bytes (98.9%) */
- 38642, /* plane 5, row 16; 366/378 bytes (96.8%) */
- 38831, /* plane 5, row 17; 370/380 bytes (97.4%) */
- 39021, /* plane 5, row 18; 372/380 bytes (97.9%) */
- 39211, /* plane 5, row 19; 366/380 bytes (96.3%) */
- 39401, /* plane 5, row 20; 362/380 bytes (95.3%) */
- 39591, /* plane 5, row 21; 362/380 bytes (95.3%) */
- 39781, /* plane 5, row 22; 366/380 bytes (96.3%) */
- 39971, /* plane 5, row 23; 368/380 bytes (96.8%) */
- 40161, /* plane 5, row 24; 372/380 bytes (97.9%) */
- 40351, /* plane 5, row 25; 370/380 bytes (97.4%) */
- 40541, /* plane 5, row 26; 372/380 bytes (97.9%) */
- 40731, /* plane 5, row 27; 362/380 bytes (95.3%) */
- 40921, /* plane 5, row 28; 364/380 bytes (95.8%) */
- 41111, /* plane 5, row 29; 372/380 bytes (97.9%) */
- 41301, /* plane 5, row 30; 374/380 bytes (98.4%) */
- 41491, /* plane 5, row 31; 368/378 bytes (97.4%) */
- 41680, /* plane 5, row 32; 370/380 bytes (97.4%) */
- 41870, /* plane 5, row 33; 372/380 bytes (97.9%) */
- 42060, /* plane 5, row 34; 368/380 bytes (96.8%) */
- 42250, /* plane 5, row 35; 366/380 bytes (96.3%) */
- 42440, /* plane 5, row 36; 368/380 bytes (96.8%) */
- 42630, /* plane 5, row 37; 376/380 bytes (98.9%) */
- 42820, /* plane 5, row 38; 360/380 bytes (94.7%) */
- 43010, /* plane 5, row 39; 366/378 bytes (96.8%) */
- 43199, /* plane 5, row 40; 370/380 bytes (97.4%) */
- 43389, /* plane 5, row 41; 368/380 bytes (96.8%) */
- 43579, /* plane 5, row 42; 368/380 bytes (96.8%) */
- 43769, /* plane 5, row 43; 364/380 bytes (95.8%) */
- 43959, /* plane 5, row 44; 372/380 bytes (97.9%) */
- 44149, /* plane 5, row 45; 360/380 bytes (94.7%) */
- 44339, /* plane 5, row 46; 372/380 bytes (97.9%) */
- 44529, /* plane 5, row 47; 366/380 bytes (96.3%) */
- 44719, /* plane 5, row 48; 376/380 bytes (98.9%) */
- 44909, /* plane 5, row 49; 374/380 bytes (98.4%) */
- 45099, /* plane 5, row 50; 376/380 bytes (98.9%) */
- 45289, /* plane 5, row 51; 372/380 bytes (97.9%) */
- 45479, /* plane 5, row 52; 372/380 bytes (97.9%) */
- 45669, /* plane 5, row 53; 370/380 bytes (97.4%) */
- 45859, /* plane 5, row 54; 372/380 bytes (97.9%) */
- 46049, /* plane 5, row 55; 380/380 bytes (100.0%) */
- 46239, /* plane 5, row 56; 368/378 bytes (97.4%) */
- 46428, /* plane 5, row 57; 380/380 bytes (100.0%) */
- 46618, /* plane 5, row 58; 370/380 bytes (97.4%) */
- 46808, /* plane 5, row 59; 372/380 bytes (97.9%) */
- 46998, /* plane 5, row 60; 366/376 bytes (97.3%) */
- 47186, /* plane 5, row 61; 368/380 bytes (96.8%) */
- 47376, /* plane 5, row 62; 368/380 bytes (96.8%) */
- 47566, /* plane 5, row 63; 378/380 bytes (99.5%) */
- 47756, /* plane 5, row 64; 376/380 bytes (98.9%) */
- 47946, /* plane 5, row 65; 370/380 bytes (97.4%) */
- 48136, /* plane 5, row 66; 378/380 bytes (99.5%) */
- 48326, /* plane 5, row 67; 372/380 bytes (97.9%) */
- 48516, /* plane 5, row 68; 368/380 bytes (96.8%) */
- 48706, /* plane 5, row 69; 368/378 bytes (97.4%) */
- 48895, /* plane 5, row 70; 372/380 bytes (97.9%) */
- 49085, /* plane 5, row 71; 360/380 bytes (94.7%) */
- 49275, /* plane 5, row 72; 374/380 bytes (98.4%) */
- 49465, /* plane 5, row 73; 372/380 bytes (97.9%) */
- 49655, /* plane 5, row 74; 376/380 bytes (98.9%) */
- 49845, /* plane 5, row 75; 362/380 bytes (95.3%) */
- 50035, /* plane 5, row 76; 376/380 bytes (98.9%) */
- 50225, /* plane 5, row 77; 374/380 bytes (98.4%) */
- 50415, /* plane 5, row 78; 372/380 bytes (97.9%) */
- 50605, /* plane 5, row 79; 372/380 bytes (97.9%) */
- 50795, /* plane 5, row 80; 368/380 bytes (96.8%) */
- 50985, /* plane 5, row 81; 370/380 bytes (97.4%) */
- 51175, /* plane 5, row 82; 366/380 bytes (96.3%) */
- 51365, /* plane 5, row 83; 376/380 bytes (98.9%) */
- 51555, /* plane 5, row 84; 368/380 bytes (96.8%) */
- 51745, /* plane 5, row 85; 358/380 bytes (94.2%) */
- 51935, /* plane 5, row 86; 372/380 bytes (97.9%) */
- 52125, /* plane 5, row 87; 372/380 bytes (97.9%) */
- 52315, /* plane 5, row 88; 370/380 bytes (97.4%) */
- 52505, /* plane 5, row 89; 374/380 bytes (98.4%) */
- 52695, /* plane 5, row 90; 378/380 bytes (99.5%) */
- 52885, /* plane 5, row 91; 376/380 bytes (98.9%) */
- 53075, /* plane 5, row 92; 198/200 bytes (99.0%) */
- -1, /* plane 5, row 93 */
- -1, /* plane 5, row 94 */
- 53175, /* plane 6, row 1; 368/378 bytes (97.4%) */
- 53364, /* plane 6, row 2; 376/380 bytes (98.9%) */
- 53554, /* plane 6, row 3; 374/380 bytes (98.4%) */
- 53744, /* plane 6, row 4; 378/380 bytes (99.5%) */
- 53934, /* plane 6, row 5; 368/380 bytes (96.8%) */
- 54124, /* plane 6, row 6; 370/380 bytes (97.4%) */
- 54314, /* plane 6, row 7; 376/380 bytes (98.9%) */
- 54504, /* plane 6, row 8; 368/380 bytes (96.8%) */
- 54694, /* plane 6, row 9; 374/380 bytes (98.4%) */
- 54884, /* plane 6, row 10; 368/376 bytes (97.9%) */
- 55072, /* plane 6, row 11; 374/380 bytes (98.4%) */
- 55262, /* plane 6, row 12; 374/378 bytes (98.9%) */
- 55451, /* plane 6, row 13; 374/378 bytes (98.9%) */
- 55640, /* plane 6, row 14; 378/380 bytes (99.5%) */
- 55830, /* plane 6, row 15; 376/380 bytes (98.9%) */
- 56020, /* plane 6, row 16; 376/380 bytes (98.9%) */
- 56210, /* plane 6, row 17; 372/380 bytes (97.9%) */
- 56400, /* plane 6, row 18; 378/380 bytes (99.5%) */
- 56590, /* plane 6, row 19; 372/380 bytes (97.9%) */
- 56780, /* plane 6, row 20; 372/380 bytes (97.9%) */
- 56970, /* plane 6, row 21; 374/380 bytes (98.4%) */
- 57160, /* plane 6, row 22; 370/380 bytes (97.4%) */
- 57350, /* plane 6, row 23; 374/380 bytes (98.4%) */
- 57540, /* plane 6, row 24; 366/380 bytes (96.3%) */
- 57730, /* plane 6, row 25; 374/380 bytes (98.4%) */
- 57920, /* plane 6, row 26; 376/380 bytes (98.9%) */
- 58110, /* plane 6, row 27; 366/378 bytes (96.8%) */
- 58299, /* plane 6, row 28; 376/380 bytes (98.9%) */
- 58489, /* plane 6, row 29; 378/380 bytes (99.5%) */
- 58679, /* plane 6, row 30; 366/380 bytes (96.3%) */
- 58869, /* plane 6, row 31; 380/380 bytes (100.0%) */
- 59059, /* plane 6, row 32; 372/380 bytes (97.9%) */
- 59249, /* plane 6, row 33; 370/380 bytes (97.4%) */
- 59439, /* plane 6, row 34; 370/380 bytes (97.4%) */
- 59629, /* plane 6, row 35; 366/380 bytes (96.3%) */
- 59819, /* plane 6, row 36; 370/380 bytes (97.4%) */
- 60009, /* plane 6, row 37; 372/380 bytes (97.9%) */
- 60199, /* plane 6, row 38; 376/380 bytes (98.9%) */
- 60389, /* plane 6, row 39; 374/380 bytes (98.4%) */
- 60579, /* plane 6, row 40; 372/380 bytes (97.9%) */
- 60769, /* plane 6, row 41; 372/378 bytes (98.4%) */
- 60958, /* plane 6, row 42; 378/380 bytes (99.5%) */
- 61148, /* plane 6, row 43; 376/380 bytes (98.9%) */
- 61338, /* plane 6, row 44; 360/380 bytes (94.7%) */
- 61528, /* plane 6, row 45; 376/380 bytes (98.9%) */
- 61718, /* plane 6, row 46; 370/380 bytes (97.4%) */
- 61908, /* plane 6, row 47; 370/380 bytes (97.4%) */
- 62098, /* plane 6, row 48; 370/380 bytes (97.4%) */
- 62288, /* plane 6, row 49; 374/380 bytes (98.4%) */
- 62478, /* plane 6, row 50; 372/380 bytes (97.9%) */
- 62668, /* plane 6, row 51; 378/380 bytes (99.5%) */
- 62858, /* plane 6, row 52; 368/380 bytes (96.8%) */
- 63048, /* plane 6, row 53; 376/380 bytes (98.9%) */
- 63238, /* plane 6, row 54; 374/380 bytes (98.4%) */
- 63428, /* plane 6, row 55; 380/380 bytes (100.0%) */
- 63618, /* plane 6, row 56; 376/380 bytes (98.9%) */
- 63808, /* plane 6, row 57; 376/380 bytes (98.9%) */
- 63998, /* plane 6, row 58; 374/380 bytes (98.4%) */
- 64188, /* plane 6, row 59; 380/380 bytes (100.0%) */
- 64378, /* plane 6, row 60; 372/380 bytes (97.9%) */
- 64568, /* plane 6, row 61; 374/380 bytes (98.4%) */
- 64758, /* plane 6, row 62; 374/380 bytes (98.4%) */
- 64948, /* plane 6, row 63; 374/380 bytes (98.4%) */
- 65138, /* plane 6, row 64; 372/380 bytes (97.9%) */
- 65328, /* plane 6, row 65; 370/378 bytes (97.9%) */
- 65517, /* plane 6, row 66; 376/380 bytes (98.9%) */
- 65707, /* plane 6, row 67; 378/380 bytes (99.5%) */
- 65897, /* plane 6, row 68; 360/364 bytes (98.9%) */
- -1, /* plane 6, row 69 */
- -1, /* plane 6, row 70 */
- -1, /* plane 6, row 71 */
- -1, /* plane 6, row 72 */
- -1, /* plane 6, row 73 */
- -1, /* plane 6, row 74 */
- -1, /* plane 6, row 75 */
- -1, /* plane 6, row 76 */
- -1, /* plane 6, row 77 */
- -1, /* plane 6, row 78 */
- -1, /* plane 6, row 79 */
- -1, /* plane 6, row 80 */
- -1, /* plane 6, row 81 */
- -1, /* plane 6, row 82 */
- -1, /* plane 6, row 83 */
- -1, /* plane 6, row 84 */
- -1, /* plane 6, row 85 */
- -1, /* plane 6, row 86 */
- -1, /* plane 6, row 87 */
- -1, /* plane 6, row 88 */
- -1, /* plane 6, row 89 */
- -1, /* plane 6, row 90 */
- -1, /* plane 6, row 91 */
- -1, /* plane 6, row 92 */
- -1, /* plane 6, row 93 */
- -1, /* plane 6, row 94 */
- 66079, /* plane 7, row 1; 374/380 bytes (98.4%) */
- 66269, /* plane 7, row 2; 376/380 bytes (98.9%) */
- 66459, /* plane 7, row 3; 376/380 bytes (98.9%) */
- 66649, /* plane 7, row 4; 378/380 bytes (99.5%) */
- 66839, /* plane 7, row 5; 374/380 bytes (98.4%) */
- 67029, /* plane 7, row 6; 374/380 bytes (98.4%) */
- 67219, /* plane 7, row 7; 380/380 bytes (100.0%) */
- 67409, /* plane 7, row 8; 376/380 bytes (98.9%) */
- 67599, /* plane 7, row 9; 374/380 bytes (98.4%) */
- 67789, /* plane 7, row 10; 372/380 bytes (97.9%) */
- 67979, /* plane 7, row 11; 374/380 bytes (98.4%) */
- 68169, /* plane 7, row 12; 372/380 bytes (97.9%) */
- 68359, /* plane 7, row 13; 374/380 bytes (98.4%) */
- 68549, /* plane 7, row 14; 378/380 bytes (99.5%) */
- 68739, /* plane 7, row 15; 376/380 bytes (98.9%) */
- 68929, /* plane 7, row 16; 374/380 bytes (98.4%) */
- 69119, /* plane 7, row 17; 380/380 bytes (100.0%) */
- 69309, /* plane 7, row 18; 374/380 bytes (98.4%) */
- 69499, /* plane 7, row 19; 378/380 bytes (99.5%) */
- 69689, /* plane 7, row 20; 372/380 bytes (97.9%) */
- 69879, /* plane 7, row 21; 378/380 bytes (99.5%) */
- 70069, /* plane 7, row 22; 368/380 bytes (96.8%) */
- 70259, /* plane 7, row 23; 378/380 bytes (99.5%) */
- 70449, /* plane 7, row 24; 378/380 bytes (99.5%) */
- 70639, /* plane 7, row 25; 376/380 bytes (98.9%) */
- 70829, /* plane 7, row 26; 378/380 bytes (99.5%) */
- 71019, /* plane 7, row 27; 376/380 bytes (98.9%) */
- 71209, /* plane 7, row 28; 372/380 bytes (97.9%) */
- 71399, /* plane 7, row 29; 376/380 bytes (98.9%) */
- 71589, /* plane 7, row 30; 376/380 bytes (98.9%) */
- 71779, /* plane 7, row 31; 372/380 bytes (97.9%) */
- 71969, /* plane 7, row 32; 376/380 bytes (98.9%) */
- 72159, /* plane 7, row 33; 370/380 bytes (97.4%) */
- 72349, /* plane 7, row 34; 376/380 bytes (98.9%) */
- 72539, /* plane 7, row 35; 374/380 bytes (98.4%) */
- 72729, /* plane 7, row 36; 370/378 bytes (97.9%) */
- 72918, /* plane 7, row 37; 380/380 bytes (100.0%) */
- 73108, /* plane 7, row 38; 376/380 bytes (98.9%) */
- 73298, /* plane 7, row 39; 376/380 bytes (98.9%) */
- 73488, /* plane 7, row 40; 376/380 bytes (98.9%) */
- 73678, /* plane 7, row 41; 378/380 bytes (99.5%) */
- 73868, /* plane 7, row 42; 374/380 bytes (98.4%) */
- 74058, /* plane 7, row 43; 378/380 bytes (99.5%) */
- 74248, /* plane 7, row 44; 380/380 bytes (100.0%) */
- 74438, /* plane 7, row 45; 378/380 bytes (99.5%) */
- 74628, /* plane 7, row 46; 376/380 bytes (98.9%) */
- 74818, /* plane 7, row 47; 380/380 bytes (100.0%) */
- 75008, /* plane 7, row 48; 374/380 bytes (98.4%) */
- 75198, /* plane 7, row 49; 376/380 bytes (98.9%) */
- 75388, /* plane 7, row 50; 370/380 bytes (97.4%) */
- 75578, /* plane 7, row 51; 376/380 bytes (98.9%) */
- 75768, /* plane 7, row 52; 376/380 bytes (98.9%) */
- 75958, /* plane 7, row 53; 376/380 bytes (98.9%) */
- 76148, /* plane 7, row 54; 370/380 bytes (97.4%) */
- 76338, /* plane 7, row 55; 376/380 bytes (98.9%) */
- 76528, /* plane 7, row 56; 374/380 bytes (98.4%) */
- 76718, /* plane 7, row 57; 370/380 bytes (97.4%) */
- 76908, /* plane 7, row 58; 372/380 bytes (97.9%) */
- 77098, /* plane 7, row 59; 380/380 bytes (100.0%) */
- 77288, /* plane 7, row 60; 374/380 bytes (98.4%) */
- 77478, /* plane 7, row 61; 380/380 bytes (100.0%) */
- 77668, /* plane 7, row 62; 378/380 bytes (99.5%) */
- 77858, /* plane 7, row 63; 378/380 bytes (99.5%) */
- 78048, /* plane 7, row 64; 376/380 bytes (98.9%) */
- 78238, /* plane 7, row 65; 378/380 bytes (99.5%) */
- 78428, /* plane 7, row 66; 376/380 bytes (98.9%) */
- 78618, /* plane 7, row 67; 378/380 bytes (99.5%) */
- 78808, /* plane 7, row 68; 376/380 bytes (98.9%) */
- 78998, /* plane 7, row 69; 378/380 bytes (99.5%) */
- 79188, /* plane 7, row 70; 216/216 bytes (100.0%) */
- -1, /* plane 7, row 71 */
- -1, /* plane 7, row 72 */
- -1, /* plane 7, row 73 */
- -1, /* plane 7, row 74 */
- -1, /* plane 7, row 75 */
- -1, /* plane 7, row 76 */
- -1, /* plane 7, row 77 */
- -1, /* plane 7, row 78 */
- -1, /* plane 7, row 79 */
- -1, /* plane 7, row 80 */
- -1, /* plane 7, row 81 */
- -1, /* plane 7, row 82 */
- -1, /* plane 7, row 83 */
- -1, /* plane 7, row 84 */
- -1, /* plane 7, row 85 */
- -1, /* plane 7, row 86 */
- -1, /* plane 7, row 87 */
- -1, /* plane 7, row 88 */
- -1, /* plane 7, row 89 */
- -1, /* plane 7, row 90 */
- -1, /* plane 7, row 91 */
- -1, /* plane 7, row 92 */
- -1, /* plane 7, row 93 */
- -1, /* plane 7, row 94 */
- /* plane 8: --- */
- /* plane 9: --- */
- /* plane 10: --- */
- /* plane 11: --- */
- /* plane 12: --- */
- /* plane 13: --- */
- /* plane 14: --- */
- 79296, /* plane 15, row 1; 332/380 bytes (87.4%) */
- 79486, /* plane 15, row 2; 322/380 bytes (84.7%) */
- 79676, /* plane 15, row 3; 338/380 bytes (88.9%) */
- 79866, /* plane 15, row 4; 334/380 bytes (87.9%) */
- 80056, /* plane 15, row 5; 342/380 bytes (90.0%) */
- 80246, /* plane 15, row 6; 348/380 bytes (91.6%) */
- 80436, /* plane 15, row 7; 346/380 bytes (91.1%) */
- 80626, /* plane 15, row 8; 340/380 bytes (89.5%) */
- 80816, /* plane 15, row 9; 354/380 bytes (93.2%) */
- 81006, /* plane 15, row 10; 362/380 bytes (95.3%) */
- 81196, /* plane 15, row 11; 364/380 bytes (95.8%) */
- 81386, /* plane 15, row 12; 354/380 bytes (93.2%) */
- 81576, /* plane 15, row 13; 342/378 bytes (90.5%) */
- 81765, /* plane 15, row 14; 350/378 bytes (92.6%) */
- 81954, /* plane 15, row 15; 358/380 bytes (94.2%) */
- 82144, /* plane 15, row 16; 364/380 bytes (95.8%) */
- 82334, /* plane 15, row 17; 340/380 bytes (89.5%) */
- 82524, /* plane 15, row 18; 332/380 bytes (87.4%) */
- 82714, /* plane 15, row 19; 350/380 bytes (92.1%) */
- 82904, /* plane 15, row 20; 362/380 bytes (95.3%) */
- 83094, /* plane 15, row 21; 366/376 bytes (97.3%) */
- 83282, /* plane 15, row 22; 342/378 bytes (90.5%) */
- 83471, /* plane 15, row 23; 328/380 bytes (86.3%) */
- 83661, /* plane 15, row 24; 348/380 bytes (91.6%) */
- 83851, /* plane 15, row 25; 356/376 bytes (94.7%) */
- 84039, /* plane 15, row 26; 362/380 bytes (95.3%) */
- 84229, /* plane 15, row 27; 344/380 bytes (90.5%) */
- 84419, /* plane 15, row 28; 336/374 bytes (89.8%) */
- 84606, /* plane 15, row 29; 358/380 bytes (94.2%) */
- 84796, /* plane 15, row 30; 336/378 bytes (88.9%) */
- 84985, /* plane 15, row 31; 352/374 bytes (94.1%) */
- 85172, /* plane 15, row 32; 352/380 bytes (92.6%) */
- 85362, /* plane 15, row 33; 362/380 bytes (95.3%) */
- 85552, /* plane 15, row 34; 354/380 bytes (93.2%) */
- 85742, /* plane 15, row 35; 350/380 bytes (92.1%) */
- 85932, /* plane 15, row 36; 370/380 bytes (97.4%) */
- 86122, /* plane 15, row 37; 356/380 bytes (93.7%) */
- 86312, /* plane 15, row 38; 368/380 bytes (96.8%) */
- 86502, /* plane 15, row 39; 360/380 bytes (94.7%) */
- 86692, /* plane 15, row 40; 364/380 bytes (95.8%) */
- 86882, /* plane 15, row 41; 344/380 bytes (90.5%) */
- 87072, /* plane 15, row 42; 364/380 bytes (95.8%) */
- 87262, /* plane 15, row 43; 352/380 bytes (92.6%) */
- 87452, /* plane 15, row 44; 352/380 bytes (92.6%) */
- 87642, /* plane 15, row 45; 344/380 bytes (90.5%) */
- 87832, /* plane 15, row 46; 358/380 bytes (94.2%) */
- 88022, /* plane 15, row 47; 350/380 bytes (92.1%) */
- 88212, /* plane 15, row 48; 350/376 bytes (93.1%) */
- 88400, /* plane 15, row 49; 336/376 bytes (89.4%) */
- 88588, /* plane 15, row 50; 354/380 bytes (93.2%) */
- 88778, /* plane 15, row 51; 336/380 bytes (88.4%) */
- 88968, /* plane 15, row 52; 356/380 bytes (93.7%) */
- 89158, /* plane 15, row 53; 362/376 bytes (96.3%) */
- 89346, /* plane 15, row 54; 354/380 bytes (93.2%) */
- 89536, /* plane 15, row 55; 356/380 bytes (93.7%) */
- 89726, /* plane 15, row 56; 346/380 bytes (91.1%) */
- 89916, /* plane 15, row 57; 346/380 bytes (91.1%) */
- 90106, /* plane 15, row 58; 364/380 bytes (95.8%) */
- 90296, /* plane 15, row 59; 354/380 bytes (93.2%) */
- 90486, /* plane 15, row 60; 366/380 bytes (96.3%) */
- 90676, /* plane 15, row 61; 348/376 bytes (92.6%) */
- 90864, /* plane 15, row 62; 352/380 bytes (92.6%) */
- 91054, /* plane 15, row 63; 370/380 bytes (97.4%) */
- 91244, /* plane 15, row 64; 352/380 bytes (92.6%) */
- 91434, /* plane 15, row 65; 350/380 bytes (92.1%) */
- 91624, /* plane 15, row 66; 338/380 bytes (88.9%) */
- 91814, /* plane 15, row 67; 356/380 bytes (93.7%) */
- 92004, /* plane 15, row 68; 316/380 bytes (83.2%) */
- 92194, /* plane 15, row 69; 340/380 bytes (89.5%) */
- 92384, /* plane 15, row 70; 358/380 bytes (94.2%) */
- 92574, /* plane 15, row 71; 356/380 bytes (93.7%) */
- 92764, /* plane 15, row 72; 356/380 bytes (93.7%) */
- 92954, /* plane 15, row 73; 352/380 bytes (92.6%) */
- 93144, /* plane 15, row 74; 354/380 bytes (93.2%) */
- 93334, /* plane 15, row 75; 338/380 bytes (88.9%) */
- 93524, /* plane 15, row 76; 330/372 bytes (88.7%) */
- 93710, /* plane 15, row 77; 94/104 bytes (90.4%) */
- -1, /* plane 15, row 78 */
- -1, /* plane 15, row 79 */
- -1, /* plane 15, row 80 */
- -1, /* plane 15, row 81 */
- -1, /* plane 15, row 82 */
- -1, /* plane 15, row 83 */
- -1, /* plane 15, row 84 */
- -1, /* plane 15, row 85 */
- -1, /* plane 15, row 86 */
- -1, /* plane 15, row 87 */
- -1, /* plane 15, row 88 */
- -1, /* plane 15, row 89 */
- -1, /* plane 15, row 90 */
- -1, /* plane 15, row 91 */
- -1, /* plane 15, row 92 */
- -1, /* plane 15, row 93 */
- -1, /* plane 15, row 94 */
- /* plane 16: --- */
-};
-
-static sal_Int32 const aImplCns116431992ToUnicodePlaneOffsets[] = {
- 0 * 94, /* plane 1; 264/376 bytes (70.2%) */
- 1 * 94, /* plane 2; 328/376 bytes (87.2%) */
- 2 * 94, /* plane 3; 284/376 bytes (75.5%) */
- 3 * 94, /* plane 4; 312/376 bytes (83.0%) */
- 4 * 94, /* plane 5; 368/376 bytes (97.9%) */
- 5 * 94, /* plane 6; 272/376 bytes (72.3%) */
- 6 * 94, /* plane 7; 280/376 bytes (74.5%) */
- -1, /* plane 8 */
- -1, /* plane 9 */
- -1, /* plane 10 */
- -1, /* plane 11 */
- -1, /* plane 12 */
- -1, /* plane 13 */
- -1, /* plane 14 */
- 7 * 94, /* plane 15; 308/376 bytes (81.9%) */
- -1, /* plane 16 */
-};
-
-static sal_uInt8 const aImplUnicodeToCns116431992Data[] = {
- /* plane 0, page 0 */
- 167, 247, /* first, last */
- 1, 1,80,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2,88, 1, 2,20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,17,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,18,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,19,
- /* plane 0, page 1: --- */
- /* plane 0, page 2 */
- 199, 217, /* first, last */
- 1, 5,79,
- 0, 0, 0, 1, 5,77, 1, 5,78, 1, 5,80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 5,76,
- /* plane 0, page 3 */
- 145, 201, /* first, last */
- 1, 4,85, 1, 4,86, 1, 4,87, 1, 4,88, 1, 4,89, 1, 4,90, 1, 4,91,
- 1, 4,92, 1, 4,93, 1, 4,94, 1, 5, 1, 1, 5, 2, 1, 5, 3, 1, 5, 4, 1, 5, 5,
- 1, 5, 6, 1, 5, 7, 0, 0, 0, 1, 5, 8, 1, 5, 9, 1, 5,10, 1, 5,11, 1, 5,12,
- 1, 5,13, 1, 5,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 5,15, 1, 5,16, 1, 5,17, 1, 5,18, 1, 5,19, 1, 5,20, 1, 5,21,
- 1, 5,22, 1, 5,23, 1, 5,24, 1, 5,25, 1, 5,26, 1, 5,27, 1, 5,28, 1, 5,29,
- 1, 5,30, 1, 5,31, 0, 0, 0, 1, 5,32, 1, 5,33, 1, 5,34, 1, 5,35, 1, 5,36,
- 1, 5,37, 1, 5,38,
- /* plane 0, page 4: --- */
- /* plane 0, page 5: --- */
- /* plane 0, page 6: --- */
- /* plane 0, page 7: --- */
- /* plane 0, page 8: --- */
- /* plane 0, page 9: --- */
- /* plane 0, page 10: --- */
- /* plane 0, page 11: --- */
- /* plane 0, page 12: --- */
- /* plane 0, page 13: --- */
- /* plane 0, page 14: --- */
- /* plane 0, page 15: --- */
- /* plane 0, page 16: --- */
- /* plane 0, page 17: --- */
- /* plane 0, page 18: --- */
- /* plane 0, page 19: --- */
- /* plane 0, page 20: --- */
- /* plane 0, page 21: --- */
- /* plane 0, page 22: --- */
- /* plane 0, page 23: --- */
- /* plane 0, page 24: --- */
- /* plane 0, page 25: --- */
- /* plane 0, page 26: --- */
- /* plane 0, page 27: --- */
- /* plane 0, page 28: --- */
- /* plane 0, page 29: --- */
- /* plane 0, page 30: --- */
- /* plane 0, page 31: --- */
- /* plane 0, page 32 */
- 19, 62, /* first, last */
- 1, 1,25, 1, 1,23, 0, 0, 0, 1, 2,61, 0, 0, 0,
- 1, 1,68, 1, 1,69, 0, 0, 0, 0, 0, 0, 1, 1,70, 1, 1,71, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,13, 1, 1,12, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 1,74, 0, 0, 0, 0, 0, 0, 1, 1,75, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,79, 0, 0, 0, 0, 0, 0, 1, 2, 3,
- /* plane 0, page 33 */
- 3, 153, /* first, last */
- 1, 2,74, 0, 0, 0, 1, 2, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 2,75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 4,11, 1, 4,12, 1, 4,13, 1, 4,14, 1, 4,15, 1, 4,16, 1, 4,17, 1, 4,18,
- 1, 4,19, 1, 4,20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 6,21, 1, 6,22, 1, 6,23, 1, 6,24, 1, 6,25, 1, 6,26, 1, 6,27, 1, 6,28,
- 1, 6,29, 1, 6,30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2,56, 1, 2,53, 1, 2,55, 1, 2,54, 0, 0, 0, 0, 0, 0, 1, 2,57, 1, 2,58,
- 1, 2,60, 1, 2,59,
- /* plane 0, page 34 */
- 21, 191, /* first, last */
- 1, 2,65, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 2,21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,28, 1, 2,41,
- 1, 2,40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 2,37, 1, 2,38, 1, 2,45, 0, 0, 0, 0, 0, 0, 1, 2,46, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,48, 1, 2,47, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 2,29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2,27, 1, 2,30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,25, 1, 2,26,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,39, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,42,
- /* plane 0, page 35: --- */
- /* plane 0, page 36 */
- 0, 125, /* first, last */
- 1,34, 1, 1,34, 2, 1,34, 3, 1,34, 4, 1,34, 5, 1,34, 6, 1,34, 7, 1,34, 8,
- 1,34, 9, 1,34,10, 1,34,11, 1,34,12, 1,34,13, 1,34,14, 1,34,15, 1,34,16,
- 1,34,17, 1,34,18, 1,34,19, 1,34,20, 1,34,21, 1,34,22, 1,34,23, 1,34,24,
- 1,34,25, 1,34,26, 1,34,27, 1,34,28, 1,34,29, 1,34,30, 1,34,31, 1,34,32,
- 0, 0, 0, 1,34,33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 6, 1, 1, 6, 2, 1, 6, 3, 1, 6, 4, 1, 6, 5, 1, 6, 6, 1, 6, 7, 1, 6, 8,
- 1, 6, 9, 1, 6,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6,11, 1, 6,12, 1, 6,13, 1, 6,14,
- 1, 6,15, 1, 6,16, 1, 6,17, 1, 6,18, 1, 6,19, 1, 6,20,
- /* plane 0, page 37 */
- 0, 229, /* first, last */
- 1, 3,25, 0, 0, 0, 1, 3,26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3,28, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 3,29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3,30, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 3,31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3,23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3,22, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3,21, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3,20, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3,19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 3,36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3,37, 0, 0, 0,
- 0, 0, 0, 1, 3,39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 3,38, 0, 0, 0, 0, 0, 0, 1, 3,32, 1, 3,33, 1, 3,35,
- 1, 3,34, 1, 3,44, 1, 3,45, 1, 3,46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 3, 4, 1, 3, 5, 1, 3, 6, 1, 3, 7, 1, 3, 8, 1, 3, 9, 1, 3,10,
- 1, 3,11, 1, 3,18, 1, 3,17, 1, 3,16, 1, 3,15, 1, 3,14, 1, 3,13, 1, 3,12,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3,24, 1, 3,27, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 1,92, 1, 1,91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 1,85, 1, 1,84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,94, 1, 1,93, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,90, 1, 1,89,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,82, 0, 0, 0, 0, 0, 0, 1, 1,86, 1, 1,83,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 3,40, 1, 3,41, 1, 3,43, 1, 3,42,
- /* plane 0, page 38 */
- 5, 66, /* first, last */
- 1, 1,88, 1, 1,87, 0, 0, 0,
- 0, 0, 0, 1, 2,52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2,49, 1, 2,51, 1, 2,50,
- /* plane 0, page 39: --- */
- /* plane 0, page 40: --- */
- /* plane 0, page 41: --- */
- /* plane 0, page 42: --- */
- /* plane 0, page 43: --- */
- /* plane 0, page 44: --- */
- /* plane 0, page 45: --- */
- /* plane 0, page 46: --- */
- /* plane 0, page 47: --- */
- /* plane 0, page 48 */
- 0, 251, /* first, last */
- 1, 1, 1, 1, 1, 3, 1, 1, 4, 1, 1,81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 1,50, 1, 1,51, 1, 1,46, 1, 1,47, 1, 1,54, 1, 1,55, 1, 1,58, 1, 1,59,
- 1, 1,42, 1, 1,43, 1, 2,69, 0, 0, 0, 1, 1,38, 1, 1,39, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,72, 1, 1,73, 0, 0, 0,
- 0, 0, 0, 1, 4,21, 1, 4,22, 1, 4,23, 1, 4,24, 1, 4,25, 1, 4,26, 1, 4,27,
- 1, 4,28, 1, 4,29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 6,
- /* plane 0, page 49 */
- 5, 41, /* first, last */
- 1, 5,39, 1, 5,40, 1, 5,41,
- 1, 5,42, 1, 5,43, 1, 5,44, 1, 5,45, 1, 5,46, 1, 5,47, 1, 5,48, 1, 5,49,
- 1, 5,50, 1, 5,51, 1, 5,52, 1, 5,53, 1, 5,54, 1, 5,55, 1, 5,56, 1, 5,57,
- 1, 5,58, 1, 5,59, 1, 5,60, 1, 5,61, 1, 5,62, 1, 5,63, 1, 5,64, 1, 5,65,
- 1, 5,66, 1, 5,67, 1, 5,68, 1, 5,69, 1, 5,70, 1, 5,71, 1, 5,72, 1, 5,73,
- 1, 5,74, 1, 5,75,
- /* plane 0, page 50 */
- 163, 163, /* first, last */
- 1, 2, 1,
- /* plane 0, page 51 */
- 142, 213, /* first, last */
- 1, 2,85, 1, 2,86,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,80, 1, 2,81, 1, 2,82, 0, 0, 0,
- 0, 0, 0, 1, 2,84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,87, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,83, 0, 0, 0,
- 0, 0, 0, 1, 2,44, 1, 2,43, 0, 0, 0, 0, 0, 0, 1, 2,79,
- /* plane 0, page 52 */
- 0, 254, /* first, last */
- 6, 2,12, 4, 2, 4, 0, 0, 0, 0, 0, 0, 6, 1,16, 6, 1, 3,15, 1,76, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1,55, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3,22, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8,21, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 3,20,27, 0, 0, 0, 0, 0, 0, 3,25,77, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 7,33, 3, 8,76, 0, 0, 0, 3, 3, 3, 4, 3,23, 4, 5,20, 3,32,20, 0, 0, 0,
- 4, 1,57, 3, 1,85, 3, 1,78, 3, 1,81, 3, 1,83, 0, 0, 0,15, 1,36, 0, 0, 0,
- 6, 3,46, 3, 2,81, 4, 2,17, 3, 2,73, 3, 2,74, 0, 0, 0,15, 1,82, 0, 0, 0,
- 0, 0, 0, 5, 3,20, 3, 4,42, 3, 4,39, 3, 4,45, 6, 5,81, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 3, 7,38, 5, 5, 5, 4, 5,25, 4, 5,28, 3, 7,37, 5, 5,11, 4, 5,27,
- 4, 5,24, 3, 7,48, 0, 0, 0,15, 5,42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,11,17,
- 6,14,58, 4, 8,25, 3,11,16, 5, 8, 1, 4, 8,26, 3,11,10, 4, 8,23, 4, 8,28,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,11,76, 3,20,41, 3,15,50, 4,11,69, 6,21,24,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,16,37, 3,20,30,
- 3,20,40, 4,16,42, 0, 0, 0, 4,22,24, 3,25,83, 4,22,18, 4,22,23, 6,38,53,
- 0, 0, 0, 6,41,91, 3,25,84, 3,32,21, 3,32,24, 3,32,27, 4,28,12, 4,28,13,
- 4,28, 8, 4,28,10, 5,36,55, 4,34,23, 4,34,19, 4,34,14, 3,37,88, 6,58,83,
- 4,34,15, 3,37,83, 4,47,57, 3,37,82, 3,37,79, 3,37,87, 4,34,18, 0, 0, 0,
- 0, 0, 0, 4,40,91, 3,43, 6, 3,43, 5, 4,40,93, 3,43, 4, 3,43, 8, 3,43,10,
- 0, 0, 0, 3,48,18, 4,47,61, 5,51,57, 4,47,59, 3,52,31, 3,55,51, 4,58,71,
- 4,58,72, 4,63,41, 0, 0, 0, 0, 0, 0, 4,67,15, 3,60,19, 3,60,17, 7,50,84,
- 7,55,44, 4,74,33, 3,65,28, 4, 2,19,15, 6,58, 4,11,73, 0, 0, 0, 3,55,52,
- 3, 1,86, 0, 0, 0, 3, 2,89, 3, 4,53, 5, 3,23, 6, 5,91, 6, 5,93, 3, 4,54,
- 3,11,24, 7,45,29, 3,10,44, 4,16,44, 5,17, 6, 4,22,29, 4,28,18, 4,74,34,
- 0, 0, 0, 0, 0, 0, 3,11,26, 3,25,88, 4,41, 2, 3, 1,48, 0, 0, 0, 3, 3, 1,
- 3, 4,56, 5, 5,14, 3, 7,55, 3, 7,54, 3, 7,56, 0, 0, 0, 4, 8,35, 3,11,28,
- 3,15,61, 3,15,60, 0, 0, 0, 4,16,45, 3,25,91, 3,25,92, 4,28,20, 3,37,89,
- 5,17, 9, 0, 0, 0, 4, 1,65, 6, 2,33, 3, 1,94, 4, 2,28, 5, 2,16, 4, 3,30,
- 4, 3,31, 4, 5,42, 4, 5,44, 4, 5,40, 4, 5,39, 0, 0, 0, 0, 0, 0, 3,11,33,
- 3,11,37, 3,11,34, 0, 0, 0, 0, 0, 0, 5,11,92, 4,16,51, 3,15,71, 3,15,73,
- 0, 0, 0, 4,16,55, 4,16,56, 4,16,50, 5,17,12, 4,16,52, 4,16,57, 3,26, 4,
- 6,48,76, 4,22,34, 4,22,37, 3,26, 2, 5,29,80, 3,32,34, 4,34,33,
- /* plane 0, page 53 */
- 0, 255, /* first, last */
- 4,34,35, 4,34,34, 4,34,28, 3,37,93, 3,37,91, 4,34,31, 4,34,30, 3,37,92,
- 0, 0, 0, 0, 0, 0, 4,41, 3, 4,47,66, 4,47,65, 4,47,67, 5,65,27, 4,53,76,
- 7,30,93, 4,63,42, 4,67,16, 4, 1,68, 0, 0, 0, 4, 2,32, 0, 0, 0, 4, 3,36,
- 3, 4,68, 4, 5,47, 6, 9,79, 0, 0, 0, 6,15, 7, 4,11,85, 3,15,75, 0, 0, 0,
- 4,16,58, 4,22,43, 3,38, 2, 4,53,79, 3,52,35, 4,53,80, 5,51,67, 4,58,78,
- 4,16,60, 4,22,45, 5,29,88, 0, 0, 0, 6, 9,82, 3,20,51, 5,80,88, 4, 3,43,
- 6, 6,24, 4,11,87, 3,26, 5, 6,48,86, 4,28,30, 5,36,76, 4,77,51, 6, 6,22,
- 4,22,48, 3, 1,56, 6, 3,81, 3, 3,12, 6,48,90, 3, 7,68, 4, 1,11, 6, 1,27,
- 6, 8,68, 4, 5,54, 3, 3,16, 5, 2,28, 3, 3,14, 3, 4,74, 3, 4,73, 3, 4,72,
- 3, 7,72, 6,10,10, 3,11,44, 3,15,80, 4,11,90, 3,15,81, 4,22,49, 6,49, 2,
- 5,44,17, 3,38, 4, 4,41, 7, 0, 0, 0, 3,64,80, 3, 1,61, 3,15,82, 6,29,65,
- 3,20,54, 4,41, 9, 5, 1,33, 3, 1,63, 3, 3,18, 0, 0, 0, 4, 5,58, 4, 8,55,
- 3,31,88, 3,38, 7, 4,39,54, 4, 1,75, 3, 2,16, 3, 2,12, 3, 3,24, 3, 3,22,
- 0, 0, 0, 3, 4,76, 4, 3,49, 3, 4,75, 3, 4,81, 4, 3,52, 4, 3,57, 3, 4,82,
- 4, 3,51, 3, 4,79, 3, 4,78, 3, 4,90, 0, 0, 0,15, 3,41, 3, 5, 5, 3, 7,90,
- 3, 7,77, 4, 5,61, 3, 7,86, 5, 5,34, 6,10,25, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3,11,50, 3,11,64, 3,11,63, 3,11,66, 3,11,58, 4, 8,57, 4, 8,60, 3,11,54,
- 15, 9,60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,12, 5,
- 3,15,93, 4,11,94, 3,15,85, 3,15,92, 4,12, 1, 4,11,93, 6,21,93, 3,16, 4,
- 5,12,35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,20,61,
- 3,20,69, 4,16,74, 5,22,80, 3,20,67, 3,20,60, 4,16,80, 3,20,58, 4,16,83,
- 4,16,81, 4,16,77, 4,16,76,15,19,35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,24,51, 4,16,79, 5,22,86, 3,26,18,
- 4,22,71, 3,26,21, 3,26,12, 4,22,62, 4,22,57, 3,26,25, 3,26,30, 3,26,13,
- 4,22,64, 3,26,29, 4,22,63, 3,26,23, 6,39,25, 5,22,89, 5,22,90, 3,26,16,
- 4,22,56, 4,22,69, 4,22,67, 3,26,33, 5,22,78, 3,26,31, 0, 0, 0, 0, 0, 0,
- 3,26,26, 0, 0, 0, 0, 0, 0, 5,30,25, 4,28,42, 4,28,38, 3,32,47, 5,30,29,
- 4,28,39, 4,28,44, 3,32,45, 3,32,48, 6,49,18, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,34,50, 3,38,18, 3,38,15, 3,38,13, 4,34,47, 4,34,42,
- 4,34,53, 3,38,11, 3,43,26, 4,34,51, 4,34,54, 4,34,49, 0, 0, 0, 0, 0, 0,
- 5,37, 2, 4,41,16, 4,41,12, 3,43,34, 4,41,13, 3,43,22, 7, 1,46, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,47,75, 4,47,76, 3,48,33, 4,47,71, 4,47,74,
- /* plane 0, page 54 */
- 0, 254, /* first, last */
- 4,47,79, 3,48,28, 3,48,26, 0, 0, 0, 0, 0, 0, 7,23,23, 4,53,82, 3,52,38,
- 4,53,83, 4,47,77, 5,65,32, 4,58,80, 3,55,54, 5,65,37, 0, 0, 0, 0, 0, 0,
- 4,63,44, 5,71,57, 0, 0, 0, 5,75,83, 3,60,21, 3,62, 7, 4,70,18, 0, 0, 0,
- 0, 0, 0, 3,64,14, 3,64,13, 4,76,76, 7,66,15, 3, 2,18, 3, 2, 1, 3, 3,29,
- 5, 5,51, 3, 7,94, 3,11,68, 3,16, 6, 4,34,56, 4,67,18, 3, 2,19, 3, 5,14,
- 4, 3,63, 3, 5,25, 3, 5,26, 4, 3,62, 3, 5,29, 3, 5,31, 0, 0, 0, 3, 5,27,
- 3, 5,20, 3, 8, 7, 4, 5,77, 3, 8,11, 3, 8,12, 0, 0, 0, 3,11,86, 6,15,69,
- 3,11,84, 3,11,85, 3,11,83, 3,11,79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,16, 9,
- 4,12,15, 4,12,17, 3,16,13, 3,16,12, 3,16,14, 3,16,17, 0, 0, 0, 3,20,76,
- 3,20,77, 3,20,83, 3,20,74,15,19,55, 0, 0, 0, 4,17, 1, 4,22,75, 3,26,38,
- 4,22,78, 3,26,49, 6,39,46, 3,26,40, 0, 0, 0, 3,26,45, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4,28,57, 4,28,59, 3,32,51, 3,32,53, 4,28,54, 4,28,56, 0, 0, 0,
- 4,34,62, 4,34,61, 4,34,59, 3,38,27, 4,34,63, 3,38,25, 0, 0, 0, 7, 1,74,
- 3,43,50, 3,43,40, 4,41,19, 3,43,42, 3,43,46,15,46, 5,15,46,14, 4,41,10,
- 3,48,36, 4,47,88, 3,48,39, 3,48,34, 3,48,35, 3,48,38, 3,48,37, 4,53,92,
- 3,52,45, 3,52,42, 4,53,91, 7,31,16, 3,55,61, 0, 0, 0, 7,38,36, 0, 0, 0,
- 5,75,86, 3,64,82, 4,76,78, 5,23,28, 3,45,33, 3,11,88, 0, 0, 0, 4, 8,65,
- 0, 0, 0, 5, 5,56, 4,22,87, 4,34,64, 3,38,39, 4,58,90, 3, 2,26, 3, 3,38,
- 3, 3,40, 0, 0, 0, 4, 3,69, 3, 5,42, 4, 5,81, 5, 5,57, 4, 5,87, 4, 5,83,
- 4, 5,88, 0, 0, 0, 3,11,93, 0, 0, 0, 4,17, 5, 6,30,34, 3,20,90, 3,26,53,
- 4,28,60, 3,48,30, 3, 1,84, 3, 3,44, 3, 3,42, 4, 2,54, 4, 2,57, 4, 2,53,
- 3, 3,41, 3, 5,50, 3, 5,55, 3, 5,48, 3, 5,47, 3, 5,45, 3, 5,52, 0, 0, 0,
- 3, 8,17, 3, 8,27, 4, 5,91, 3, 8,34, 3, 8,18, 3, 8,26, 3, 8,35, 3, 8,39,
- 3, 8,20, 4, 6, 1, 3, 8,36, 3, 8,30, 3, 8,22, 3, 8,28, 5, 5,61, 3, 8,25,
- 0, 0, 0, 3, 8,16, 4, 8,77, 4, 8,73, 3,11,94, 3,12, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,10,10, 4, 8,71, 0, 0, 0, 0, 0, 0, 3,16,31, 3,16,34, 3,16,29,
- 3,16,41, 3,16,39, 4,12,27, 3,16,35, 3,16,48, 3,16,44, 3,16,36, 4,12,31,
- 4,12,26, 3,16,25, 4,12,28, 3,16,49, 3,16,38, 3,16,33, 3,16,26, 0, 0, 0,
- 0, 0, 0,15,14,75,15,14,88, 0, 0, 0, 0, 0, 0, 4,17, 9, 3,21, 6, 3,21,13,
- 3,21, 1, 3,21,22, 4,17, 8, 3,21,12, 3,21, 3, 3,21, 5, 3,26,81, 3,26,71,
- 3,26,84, 3,26,68, 3,26,86, 3,26,76, 3,26,74, 3,26,69, 5,23,46, 3,26,78,
- 5,23,38, 4,22,94, 3,26,79, 3,26,63, 4,22,93, 3,26,80, 3,26,61,
- /* plane 0, page 55 */
- 1, 255, /* first, last */
- 15,26,28, 3,26,77, 3,26,73, 3,26,72, 4,28,63, 3,32,66, 4,28,65,
- 3,32,78, 3,32,77, 3,32,72, 3,32,67, 4,28,68, 3,32,69, 4,28,67, 3,32,80,
- 3,32,75, 3,32,79, 3,32,76, 3,32,73, 0, 0, 0, 3,38,43, 4,34,71, 4,34,76,
- 4,34,72, 4,34,70, 3,38,41, 3,38,50, 3,38,49, 4,34,75, 4,34,77, 0, 0, 0,
- 3,38,45, 3,38,46, 4,34,73, 4,41,28, 4,41,26, 3,43,57, 3,43,55, 4,41,32,
- 3,43,53, 3,48,50, 3,48,53, 4,48, 1,15,52,10, 0, 0, 0, 4,54, 2, 4,54, 4,
- 3,55,63, 3,55,64, 4,63,52, 5,71,62, 3,58,16, 3,58,18, 3,60,23, 4,67,21,
- 3,60,24, 4,70,23, 4,72,69, 3,65,66, 3,65,67, 3, 3,46, 6, 6,88, 4, 3,77,
- 3, 8,41, 4, 8,80, 4,12,33, 3,16,52, 3,26,93, 4,28,71, 0, 0, 0, 7,13,13,
- 3,65,29, 0, 0, 0, 3, 2,28, 0, 0, 0, 3, 3,47, 6, 6,89, 3, 5,57, 4, 3,80,
- 3, 5,59, 6, 6,90, 3, 8,47, 5, 8,78, 3,12,16, 3,12,17, 3,12,19, 4,12,34,
- 5,12,92, 6,22,61, 0, 0, 0, 3,21,34, 3,21,29, 3,21,30, 4,17,14, 6,30,58,
- 3,21,32, 0, 0, 0, 3,27, 1, 4,23, 2, 4,28,74, 4,28,76, 4,28,79, 3,32,87,
- 0, 0, 0, 4,34,84, 4,34,85, 3,43,64, 4,34,87, 4,41,35, 4,41,37, 4,41,38,
- 4,58,93, 3,62,11, 7,66,21, 0, 0, 0, 4, 3,81, 4, 6, 6, 6,22,72, 3,27, 2,
- 4,12,44, 6,30,68, 4,34,88, 5,44,67, 4, 2,61, 4, 3,84, 4, 6, 8, 4, 6, 7,
- 4, 8,84, 4, 8,85, 4,12,45, 5,17,85, 4,17,19, 5,17,83, 4,17,18, 4,23, 8,
- 4,23, 9, 4,28,81, 4,34,89, 3, 2,32, 3, 3,51, 0, 0, 0, 0, 0, 0, 4, 6,10,
- 3, 8,50, 3, 8,51, 4, 8,89, 4, 8,88, 3,12,25, 3,12,24, 3,12,22, 4,12,46,
- 6,30,75, 3,21,37, 4,23,11, 5,23,70, 4,34,93, 0, 0, 0, 0, 0, 0, 4,41,42,
- 0, 0, 0, 3,58,23, 3, 1,66, 4, 3,87, 3, 2,34, 3, 2,35, 3, 2,33, 3, 2,36,
- 3, 3,54, 4, 2,65, 5, 2,49, 4, 3,91, 5, 2,48, 3, 3,55, 0, 0, 0, 3, 3,56,
- 4, 3,88, 4, 3,89, 3, 5,64, 5, 3,80, 5, 3,84, 3, 5,68, 3, 5,69, 4, 3,86,
- 0, 0, 0, 3, 8,59, 6,10,91, 4, 6,17, 4, 6,18, 4, 6,14, 3, 8,54, 6,10,86,
- 3, 8,57, 3, 8,58, 0, 0, 0, 5, 5,78, 3,12,26, 4, 8,91, 0, 0, 0, 4,12,59,
- 4,12,51, 4,12,49, 3,16,64, 4,12,63, 4,12,53, 3,16,60, 4,12,58, 4,12,62,
- 4,12,55, 3,16,61, 6,22,92, 5,13,14, 3,16,69, 0, 0, 0, 4,12,52, 3,21,54,
- 3,21,41, 4,17,23, 3,21,44, 4,17,29, 6,30,85, 3,21,45, 4,17,25, 6,30,88,
- 3,21,48, 0, 0, 0,15,20,31, 0, 0, 0, 0, 0, 0, 3,21,51, 3,27,15, 3,27,18,
- 3,27, 9, 4,23,18, 4,23,20, 3,27,21, 4,28,82, 3,27,16, 0, 0, 0, 3,27,12,
- 4,28,86, 4,28,83, 4,28,94, 5,30,77, 4,29, 1, 6,50,20, 3,32,91, 0, 0, 0,
- 4,28,87, 4,35, 2, 6,60,36, 4,35,13, 4,35,10, 4,35, 1, 3,38,53, 4,35, 4,
- /* plane 0, page 56 */
- 0, 255, /* first, last */
- 3,38,59, 3,38,56, 4,35,14, 0, 0, 0, 3,38,55, 4,41,48, 4,41,44, 5,44,76,
- 3,43,66, 5,44,72, 4,41,43, 4,41,51, 3,43,68, 4,41,47, 4,41,45, 3,43,65,
- 4,41,52, 4,48, 6, 4,48, 7, 4,54, 8, 4,48, 5, 5,52,22, 3,48,57, 7,13,44,
- 3,52,58, 3,52,54, 5,59,28, 4,54, 7, 3,52,56, 7,31,36, 0, 0, 0, 0, 0, 0,
- 4,63,58, 5,71,67, 5,71,68, 0, 0, 0, 0, 0, 0, 4,70,26, 3,62,12, 4,72,72,
- 5,91,29, 3, 3,59, 6, 1,78, 0, 0, 0, 0, 0, 0, 3,27,24, 4,41,53, 3, 2,37,
- 0, 0, 0, 4,17,34, 3, 2,38, 0, 0, 0, 4, 2,69, 4, 2,70, 3, 3,61, 4, 4, 2,
- 4, 4, 4, 3, 5,73, 4, 4, 1, 3, 5,74,15, 4, 5, 4, 6,22, 4, 6,23, 4, 9, 5,
- 4, 4, 5, 4, 9, 2, 4, 9, 4, 6,16,67, 3,12,39, 4, 9, 3, 4, 9, 1, 4,12,70,
- 4,12,72, 4,17,39, 4,17,40, 4,17,37, 4,17,41, 0, 0, 0, 3,21,60, 4,23,27,
- 4,23,22, 4,23,29, 4,23,26, 3,27,28, 4,23,28, 3,27,25, 4,23,25, 4,29, 8,
- 4,29, 3, 4,29, 7, 4,29, 6, 4,29, 9, 4,35,19, 4,35,18, 4,35,17, 4,35,15,
- 3,43,78, 0, 0, 0, 3,43,79, 4,48, 9, 0, 0, 0, 4,54,13, 4,54,11, 4,67,27,
- 4,67,26, 3,63,36, 4,72,75, 6,40,36, 0, 0, 0, 3,38,62, 4,48,11, 3, 3,64,
- 3, 3,63, 3, 3,62, 3, 5,76, 6, 7,39, 4, 6,24, 4, 6,29, 4, 6,27, 5, 6, 6,
- 4, 6,28, 3, 8,68, 4, 6,26, 3, 8,70,15,15,24, 3,12,41, 3,12,42, 4, 9,10,
- 5, 9, 6, 4, 9, 9, 4, 9, 8, 4,12,75, 4,12,77, 4,12,76, 3,16,77, 0, 0, 0,
- 3,21,62, 4,17,46, 4,17,44, 4,17,47, 3,21,61, 5,24, 9, 4,23,32, 4,23,33,
- 3,27,33, 5,31, 1, 4,35,22, 3,38,63, 4,35,25, 4,35,26, 4,41,59, 4,41,60,
- 3,43,81, 3,48,61, 4,48,12, 4,48,14, 5,52,34, 4,63,62, 4,67,28, 4, 4, 9,
- 3, 8,74, 3,38,66, 0, 0, 0, 7,13,59, 0, 0, 0, 4, 9,11, 4,29,13, 6, 1,89,
- 4, 2,74, 3, 3,67, 3, 3,68, 0, 0, 0, 3, 5,80, 0, 0, 0, 3, 8,79, 4, 6,32,
- 4, 6,33, 0, 0, 0, 3,12,46, 4, 9,13, 6,16,90, 4, 9,14, 3,12,47, 0, 0, 0,
- 4,12,81, 0, 0, 0, 5,18,38, 4,17,49, 4,12,82, 3,27,38, 3,27,35, 0, 0, 0,
- 5,31, 9, 4,29,15, 4,29,14, 6,50,45, 4,41,61, 4,41,63, 3,62,14, 4, 6,34,
- 4,48,17, 6, 4,80, 0, 0, 0, 3, 8,83, 4, 6,35, 3, 8,82, 3,21,68, 3,27,40,
- 3,27,41, 4,35,27, 4,41,65, 3,48,63, 3, 2,43, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,11,30, 3, 8,84, 4, 9,18, 4, 9,20, 3,12,50, 5, 9,15, 5, 9,19, 3,12,51,
- 6,17, 5, 0, 0, 0, 5,13,39,15,15,30, 4,17,52, 3,21,70, 3,21,71, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,23,41, 3,27,42, 4,23,40, 0, 0, 0, 4,29,19,
- 5,37,73, 4,35,29, 6,60,71, 0, 0, 0, 0, 0, 0, 3,48,64, 4,48,20, 4,54,15,
- 0, 0, 0, 0, 0, 0, 6, 1,94, 3, 3,69, 3, 3,72, 4, 4,17, 5, 2,71, 4, 2,80,
- /* plane 0, page 57 */
- 1, 255, /* first, last */
- 3, 8,91, 3, 8,93, 3, 5,89, 4, 4,14, 3, 8,92, 4, 4,16, 4, 4,19,
- 3, 5,83, 4, 4,15, 4, 4,18, 3, 6, 4, 3, 8,89, 4, 9,21, 4, 9,23, 4, 6,45,
- 3,12,57, 3, 9, 4, 4, 6,40, 3, 9, 3, 4, 6,46, 4, 6,44, 4, 6,38,15,10,30,
- 0, 0, 0, 3,12,56, 4, 9,33, 3,12,66, 4, 9,28, 4, 6,41, 4, 9,25, 3,16,93,
- 6,23,52, 4, 9,29, 5, 9,21, 4,13, 8, 4, 9,40, 4, 9,26, 4, 9,27, 4, 9,32,
- 3,12,53, 6,23,58, 3,16,92, 0, 0, 0, 3,12,62, 0, 0, 0, 4,17,59, 5,13,58,
- 3,21,83, 4,13, 2, 3,21,73, 3,16,85, 4,13, 3, 3,21,80, 4,13, 4, 3,16,87,
- 6,23,62, 3,17, 4, 4,13,11, 4,17,58, 0, 0, 0, 0, 0, 0, 4,17,60, 4,17,66,
- 3,21,75, 6,40,79, 4,17,67, 3,21,85, 4,17,64, 5,18,59, 4,17,61, 3,21,76,
- 3,27,46, 4,17,76, 4,17,71, 3,27,44, 3,21,77, 3,21,87, 3,27,55, 4,17,68,
- 6,40,85, 3,27,51, 4,17,70, 4,17,62, 5,13,55, 3,27,50, 5,24,34, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,17,74, 5,24,40, 4,23,54, 4,23,48, 3,27,60, 4,23,57,
- 3,27,63, 4,23,52, 4,23,46, 5,31,18, 3,33, 5, 4,23,53, 4,29,30, 3,27,64,
- 4,29,23, 5,18,56, 0, 0, 0, 3,27,59, 3,33, 6, 3,33,13, 4,29,27, 4,35,35,
- 5,31,34, 6,50,73, 3,38,71, 4,29,26, 4,29,28, 3,33,16, 3,38,69, 4,35,34,
- 4,35,48, 3,38,70, 3,33,15, 0, 0, 0, 4,35,40, 4,35,39, 4,35,41, 3,43,93,
- 4,35,45, 4,41,69, 3,44, 2, 3,38,73, 3,43,91, 4,35,42, 4,35,44, 4,35,38,
- 0, 0, 0, 3,44, 7, 3,43,88, 4,35,43, 4,48,24, 3,44,10, 4,41,71, 4,41,73,
- 4,41,72, 4,41,75, 7, 2,92, 4,41,77, 3,48,73, 4,41,76, 3,44, 6, 4,48,25,
- 5,59,44, 0, 0, 0, 4,59, 3, 4,59, 9, 4,54,22, 4,59, 5, 3,55,71, 4,59, 4,
- 15,58, 9, 3,55,70, 4,48,26, 5,71,88, 4,67,35, 4,63,68, 5,71,83, 7,39,12,
- 3,62,16, 4,67,34, 4,67,32, 3,63,39, 4,72,76, 3,65,88, 3, 3,74, 3, 6, 6,
- 4, 6,52, 0, 0, 0, 6,11,50, 0, 0, 0, 4,13,15, 4,13,16, 5,13,61, 3,21,90,
- 3,27,69, 4,29,34, 4,35,52, 5,45,23, 3,44,11, 3,52,66, 6, 7,78, 4, 6,53,
- 4, 6,54, 4, 9,45, 3,12,68, 4, 1,91, 4, 1,90, 3, 2,47, 4, 2,84, 4, 2,83,
- 4, 2,85, 4, 4,26, 4, 4,22, 3, 6,12, 3, 6,13, 3, 6,16, 3, 6,11, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4, 6,56, 3, 9,13, 5, 6,26, 3, 9,12, 3, 9,24, 4, 9,53,
- 4,13,19, 4, 6,57, 3, 9,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 7,14, 0, 0, 0,
- 0, 0, 0, 4, 9,46, 4, 9,52, 3,12,70, 3, 9, 7, 3,12,71, 3,12,73, 4,13,28,
- 3,12,81, 4, 9,54, 3,12,72, 4, 9,50, 4,13,18, 4,13,17, 3,12,74, 3,12,69,
- 0, 0, 0, 3,17,20, 3,17,10, 3,21,91, 3,17,17, 3,17,26, 4,13,27, 3,17,13,
- 3,17,11, 4,17,92, 4,18, 1, 4,17,91, 3,22,12, 6,32,18, 4,18, 5, 3,22,15,
- /* plane 0, page 58 */
- 0, 253, /* first, last */
- 3,22,16, 4,17,89, 3,21,94, 4,17,81, 3,22, 5, 4,17,94, 4,17,90, 3,27,75,
- 3,22,10, 4,23,78, 4,23,66, 3,22, 1, 4,29,37, 3,33,17, 4,23,68, 3,27,74,
- 4,23,75, 4,23,72, 4,23,69, 3,27,76, 3,27,73, 4,23,80, 4,23,65, 3,27,78,
- 0, 0, 0, 4,29,48, 4,29,47, 3,33,23, 4,29,44, 4,29,42, 3,33,21, 3,33,27,
- 4,29,40, 4,29,46, 3,33,28, 3,33,42, 3,33,35, 3,33,31, 3,33,39, 3,33,32,
- 3,33,38, 3,33,33, 3,33,25, 0, 0, 0, 0, 0, 0, 4,35,56, 4,35,65, 6,61,18,
- 3,38,89, 3,39,14, 3,39,13, 4,35,54, 3,38,92, 3,39, 7, 3,39,15, 4,35,60,
- 3,38,87, 5,38, 5, 3,38,93, 4,41,85, 3,44,22, 4,35,68, 5,38, 3, 3,39,11,
- 3,39,12, 0, 0, 0, 0, 0, 0, 4,42, 4, 3,44,19, 7, 3,26, 4,41,89, 4,41,90,
- 4,41,86, 4,42, 8, 4,42, 2, 5,45,26, 4,41,94, 5,45,30, 3,44,28, 0, 0, 0,
- 4,42, 3, 0, 0, 0, 3,48,84, 4,54,25, 4,48,37, 3,48,83, 3,48,78, 3,48,88,
- 3,48,82, 3,48,81, 3,52,69, 3,52,74, 3,52,72, 3,52,67, 3,52,70, 0, 0, 0,
- 4,59,13, 3,55,73, 4,59,18, 4,59,16, 4,59,14, 3,55,79, 3,55,81, 4,59,17,
- 3,55,72, 4,59,15, 3,55,82,15,62,83, 3,58,29, 3,58,30, 0, 0, 0, 4,67,39,
- 3,60,32, 4,67,38, 5,80, 4, 3,62,18, 4,70,32, 3,64,17, 4,74,41, 4,74,40,
- 0, 0, 0, 5,89,10, 4, 6,59, 4,13,32, 4,13,31, 4,18, 7, 4,29,52, 4, 4,32,
- 3, 6,26, 4, 6,62, 4, 6,63, 0, 0, 0, 4, 9,61, 3,12,85, 0, 0, 0, 3,17,30,
- 4,13,34, 6,24,11, 0, 0, 0, 3,22,19, 4,18, 8, 3,22,21, 4,18,12, 4,23,89,
- 0, 0, 0, 4,23,85, 4,23,88, 4,23,87, 0, 0, 0, 4,23,86, 5,24,92, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3,27,87, 0, 0, 0, 4,29,60, 4,29,57, 4,29,59, 3,33,44,
- 4,35,70, 5,38,16, 5,38,14, 4,35,73, 4,42,11, 4,42,10, 4,42, 9, 0, 0, 0,
- 4,48,41, 4,48,44, 0, 0, 0, 3,55,83, 4,59,26, 4,67,44, 4,70,35, 3, 6,27,
- 6,24,12, 3,33,47, 0, 0, 0, 0, 0, 0, 3, 9,26, 4, 9,65, 3,17,33, 3,25,11,
- 3,27,88, 4,42,14, 4,54,30, 4,74,43, 4, 9,66, 0, 0, 0, 4,13,41, 6,24,16,
- 6,41,65, 6,61,49, 5,45,43, 3, 3,81, 6,11,80, 6,24,20, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3,22,27, 3,22,30, 0, 0, 0, 4,29,69, 4,42,16, 4,42,17,
- 4, 2,88, 4, 2,89, 4, 4,35, 3, 6,28, 3, 6,31, 3, 6,30, 0, 0, 0, 3, 6,32,
- 3, 9,31, 3, 9,29, 4, 6,67, 5, 9,47, 4, 9,67, 3,12,91, 4, 9,68, 4, 9,69,
- 3,12,88, 3,13, 6, 0, 0, 0, 0, 0, 0, 6,17,71, 4,13,44, 4,18,27, 4,13,43,
- 0, 0, 0, 3,17,39, 6,24,23, 3,17,42,15,15,78, 0, 0, 0, 4,13,45, 6,32,49,
- 4,18,22, 4,18,26, 4,18,23, 3,22,35, 6,32,47, 3,28, 2, 4,23,94, 3,27,90,
- 3,27,91, 4,24, 5, 3,28, 7, 4,24, 2, 6,41,83, 3,28, 1,
- /* plane 0, page 59 */
- 1, 255, /* first, last */
- 6,51,29, 5,31,66, 3,33,50, 3,33,55, 3,33,58, 3,33,53, 3,33,51,
- 3,33,60, 3,33,56, 4,29,72, 4,29,71, 3,33,52, 3,39,24, 4,35,78, 3,39,18,
- 3,39,22, 0, 0, 0, 5,45,51, 4,42,18, 3,44,34, 3,44,37, 0, 0, 0, 4,48,50,
- 4,48,49, 3,49, 1, 5,45,48, 3,48,91, 3,48,92, 4,48,51, 7,14,58, 0, 0, 0,
- 3,52,83, 3,52,78, 4,54,32, 4,59,32, 0, 0, 0, 4,59,33, 4,59,31, 7,31,86,
- 0, 0, 0, 3,58,32, 3,58,33, 3,60,36, 3,63,44, 3,63,45, 5,85,78, 5,85,77,
- 3, 3,84, 4,48,54, 3,52,84, 3, 9,36, 3,17,46, 5,14, 5, 3,22,41, 0, 0, 0,
- 3,28, 8, 4,26,35, 0, 0, 0, 5,38,37, 5,45,56, 0, 0, 0, 0, 0, 0, 3,49, 5,
- 0, 0, 0, 3, 3,86, 3, 6,35, 4, 4,40, 3, 6,38, 0, 0, 0, 0, 0, 0, 3, 9,43,
- 3, 9,38,15, 7,44, 3, 9,48, 3, 9,45, 5, 6,49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 3,13, 8, 3,13,12, 4, 9,79, 4, 9,76, 3,13, 9, 0, 0, 0, 0, 0, 0,
- 4,13,55, 4,13,49, 4,13,52, 4,13,56, 3,17,50, 5,14,11, 4,13,50, 4,13,59,
- 3,17,53, 4,13,54, 3,17,49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3,22,57, 4,18,35, 3,22,42, 3,22,47, 5,18,89, 4,18,34, 4,18,38, 4,18,33,
- 4,24,20, 3,22,56, 3,22,61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4,24,15, 3,28,14, 4,24,12, 3,28,31, 3,28,16, 4,24,10, 5,25,19, 4,24,13,
- 3,28,12, 5,25,25, 4,24,21, 3,28,21, 4,24,23, 3,28,22, 3,28,35, 3,28,11,
- 3,28,13, 0, 0, 0, 0, 0, 0, 4,29,88, 3,33,81, 3,33,70, 3,33,80, 4,29,75,
- 4,29,78, 4,29,79, 3,33,76, 3,33,73, 3,33,68, 4,29,77, 3,33,62, 4,29,85,
- 3,33,66, 3,33,67, 3,33,90, 3,33,65, 3,33,63, 4,36, 3, 4,29,86, 3,33,64,
- 0, 0, 0, 3,34,58, 0, 0, 0, 3,33,71,15,40,53, 4,36, 4, 4,35,85, 4,36, 1,
- 4,35,92, 3,39,31, 4,35,88, 4,35,83, 3,39,33, 4,35,84, 3,39,42, 4,35,93,
- 4,35,94, 4,35,90, 4,36, 2, 3,39,47, 3,39,32, 4,36, 5, 4,35,81, 5,38,43,
- 3,39,41, 4,29,82, 3,39,48, 0, 0, 0,15,40,50, 0, 0, 0, 0, 0, 0, 3,44,46,
- 5,45,77, 4,42,26, 3,44,44, 5,45,65, 3,44,51, 4,42,23, 4,42,22, 3,44,61,
- 3,44,56, 7, 3,79, 4,42,24, 4,42,34, 3,44,58, 3,44,60, 3,44,40, 3,44,53,
- 3,49,35, 0, 0, 0, 0, 0, 0, 3,49,34, 4,48,64, 4,48,58, 3,49,23, 3,49,16,
- 4,48,57, 4,42,25, 3,49,31, 3,49,10, 3,49,29, 4,54,41, 3,49,19, 3,49,25,
- 3,44,43, 4,48,62, 3,49,13, 4,48,68, 3,49,21, 3,49,20, 3,49,22, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3,53, 2, 4,54,40, 3,52,94, 3,53, 5, 3,52,93, 4,54,43,
- 7,24,53, 5,59,72, 3,52,87, 3,53, 6,15,63, 9, 3,52,89, 3,53, 8, 4,59,40,
- 4,59,36, 3,55,92, 4,59,42, 4,59,41, 0, 0, 0, 0, 0, 0, 4,63,79, 4,63,83,
- /* plane 0, page 60 */
- 0, 255, /* first, last */
- 3,58,41, 4,63,80, 4,63,78, 4,63,82, 4,63,85, 3,58,44, 3,58,43,15,66,51,
- 3,58,42, 3,60,44, 3,60,38, 4,67,49, 4,67,47, 3,60,40, 3,60,45, 4,67,52,
- 3,60,43, 3,60,37,15,69,30, 0, 0, 0, 5,80, 7, 3,62,22, 3,60,42, 3,63,48,
- 4,72,78, 3,64,21, 3,64,19, 3,64,20, 0, 0, 0, 5, 4,40, 6, 8,16, 4, 6,77,
- 5, 6,54, 4, 6,80, 4, 6,76, 4,13,64, 4, 9,80, 4, 9,81, 6,17,88, 4, 9,84,
- 4, 9,83, 5,14,14, 4,13,61, 4,13,65, 4,13,66, 4,13,62, 3,22,65, 4,18,40,
- 4,18,41, 6,32,78, 4,24,27, 4,24,25, 3,28,38, 5,25,35, 4,24,28, 6,24,68,
- 0, 0, 0, 4,30, 1, 4,29,92, 4,29,91, 4,29,93, 4,29,94, 4,30, 2, 3,39,50,
- 6,61,87, 4,36,10, 4,42,44, 3,44,72, 4,48,70, 4,48,71, 4,54,47, 4,54,46,
- 3,53,10, 3,53,12, 4,63,87, 7,46, 2, 4,72,81, 5,85,87, 5,89,15, 6, 5, 5,
- 0, 0, 0, 0, 0, 0, 3,13,30, 0, 0, 0, 3,11,91, 3,28,40, 4,24,31, 5,38,63,
- 3,56, 4, 4, 2,92, 3, 9,55, 5, 6,66, 4, 6,85, 0, 0, 0, 3,13,31, 3,13,33,
- 3,13,32, 3,17,73, 3,22,67, 4,18,42, 4,24,37, 4,24,36, 4,24,38, 4,24,34,
- 3,28,42, 0, 0, 0, 3,34, 3, 4,30, 3, 4,30, 4, 3,34, 4, 0, 0, 0, 4,36,18,
- 5,38,64, 4,36,19, 4,36,16, 4,42,48, 4,42,47, 4,48,75, 4,48,74, 0, 0, 0,
- 4,54,49, 4,67,53, 3,60,46, 5,85,88, 5, 4,46, 4, 6,88, 4,13,68, 3,17,75,
- 4,18,47, 4,24,41, 4,24,42, 4,24,43, 3,34, 5, 4,36,21, 3,49,39, 3,49,40,
- 4,48,78, 4,54,51, 3,56, 5, 4, 9,91, 3, 3,91, 4, 6,89, 3, 9,59, 4, 6,90,
- 0, 0, 0,15, 7,59, 3,13,35, 4,13,70, 4,18,50, 4,18,52, 4,18,51, 4,18,53,
- 3,22,71, 4,13,71, 4,18,49, 5,25,59, 3,28,44, 4,24,47, 4,24,44, 4,30, 9,
- 3,34, 7, 4,30, 8, 4,30, 7, 4,36,31, 4,36,24, 4,36,25, 4,36,26, 5,38,72,
- 4,36,28, 0, 0, 0, 4,48,79, 4,48,81, 4,48,82, 3,49,41, 0, 0, 0, 4,59,48,
- 4,59,47, 3,58,48, 4,77,55, 4,13,74, 3, 9,60, 3,22,72, 3,44,73, 3,49,42,
- 4, 1,47, 3, 2,54, 3, 2,53, 3, 4, 2, 5, 1,84, 4, 3, 2, 3, 6,52, 0, 0, 0,
- 3, 6,47, 4, 4,47, 3, 6,61, 6, 8,41, 3, 6,58, 4, 4,49, 3, 6,43, 6, 8,42,
- 6, 8,36, 0, 0, 0, 3, 6,56, 3, 9,65, 3, 9,63, 3, 9,62, 3, 9,66, 3, 9,64,
- 4, 6,94, 3, 9,72, 3, 9,70,15, 7,70, 0, 0, 0, 0, 0, 0, 3,13,36, 5,10, 4,
- 4, 7, 2, 3,13,52, 5, 9,91, 5, 9,92, 4, 9,94, 3,13,54, 3,13,44,15,16,41,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,24,82, 3,17,80, 3,17,81, 4,13,75,
- 6,25,19, 3,17,84, 4,13,76, 3,22,73, 3,18, 4, 3,18, 3, 3,17,94, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,17,85, 4,18,55, 3,22,81, 4,18,67, 4,18,68,
- 3,22,78, 4,18,62, 3,23, 2, 3,22,77, 3,28,47, 3,22,94, 4,18,56, 4,18,72,
- /* plane 0, page 61 */
- 0, 255, /* first, last */
- 5,25,62, 4,18,58, 4,18,60, 6,33,11, 5,19,29, 3,28,62, 3,22,91, 3,28,63,
- 3,22,83, 6,33,33, 3,22,88, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,22,19, 4,24,49,
- 4,24,54, 3,28,69, 4,24,50, 3,28,57, 4,24,57, 3,28,74, 3,28,71, 3,28,53,
- 4,24,55, 4,24,58, 3,28,51, 3,28,55, 3,28,65, 3,34,11, 6,42,77, 0, 0, 0,
- 15,28,35,15,28,58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,30,23, 3,34,12, 3,34,23,
- 3,34,21, 3,34,40, 3,34,24, 4,30,16, 4,30,25, 4,30,13, 3,34,34, 4,30,24,
- 3,34,20, 3,34,28, 4,30,28, 3,34,15, 3,34,33, 5,32, 7, 4,30,15, 4,30,18,
- 3,34,18, 0, 0, 0, 0, 0, 0, 3,34,35, 3,39,53, 4,36,41, 3,39,64, 6,62,27,
- 3,39,57, 6,52,48, 3,39,56, 4,36,38, 4,36,45, 4,36,42, 6,62,32, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3,44,78, 4,42,63, 4,42,65, 3,44,79, 3,44,92, 4,42,72,
- 4,42,61, 3,44,77, 4,42,57, 3,44,82, 5,38,88, 7, 4,65, 3,44,80, 4,48,84,
- 3,49,43, 3,44,86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,48,87, 4,48,93, 5,53,22,
- 4,48,86, 3,49,47, 3,49,46, 4,48,90, 5,53,13, 3,49,51, 3,49,55, 4,48,91,
- 4,54,54, 3,49,49, 3,49,44, 4,48,88, 3,49,50, 4,42,66, 5,53,14, 3,53,18,
- 3,53,24, 4,54,62, 4,54,64, 3,53,20, 4,54,56, 3,53,14, 4,54,55, 4,54,60,
- 3,53,27, 4,54,57, 4,54,59, 3,53,19, 0, 0, 0, 4,59,54, 4,59,52, 4,59,58,
- 4,59,55, 4,59,64, 0, 0, 0, 0, 0, 0, 4,63,91, 4,63,93, 4,59,59, 4,63,89,
- 3,58,49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,60,48, 4,67,58, 4,67,62, 4,67,59,
- 0, 0, 0, 3,60,50, 4,70,41, 5,80,30, 4,70,42, 4,70,44, 4,72,83, 3,62,25,
- 3,62,24, 0, 0, 0, 3,63,49, 4,74,46, 3,64,24, 0, 0, 0, 4,75,77, 4,75,78,
- 3,65,70, 3, 4,10, 0, 0, 0, 4, 4,50, 3, 6,65,15, 4,78, 3, 9,78, 4, 7, 7,
- 3, 9,88,15, 7,78, 3, 9,83, 3,13,71, 3,13,57, 3,13,70, 3,13,65, 3,13,64,
- 3,13,59, 0, 0, 0, 4,10, 7, 3,18,14, 4,13,83, 3,18,18, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 3,23,11, 3,23,10, 3,23,20, 4,18,81, 0, 0, 0, 4,18,86, 4,18,80,
- 4,18,87,15,22,40, 3,28,86, 4,24,69, 4,24,65, 3,28,85, 4,24,66, 4,24,68,
- 4,24,64, 3,27, 3, 3,28,94, 3,28,80, 0, 0, 0, 3,28,88, 3,34,52, 3,34,45,
- 3,34,54, 4,30,43, 3,34,42, 3,34,53, 4,30,40, 4,30,38, 4,30,41, 6,52,52,
- 3,34,43, 3,34,48,15,34,88,15,35,28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,36,57,
- 3,39,83, 3,39,73, 6,52,71, 4,36,54, 4,36,58, 4,36,60, 3,39,81, 0, 0, 0,
- 15,41,56, 0, 0, 0, 0, 0, 0, 3,45, 6, 3,45, 3, 3,45,11, 3,45, 1, 3,45, 7,
- 4,42,74, 0, 0, 0, 0, 0, 0, 4,49, 5, 3,49,61, 3,49,59, 4,49,11, 3,49,63,
- 3,49,65, 4,49, 4, 0, 0, 0, 3,49,68, 3,49,69, 0, 0, 0, 3,53,29, 4,54,66,
- /* plane 0, page 62 */
- 0, 255, /* first, last */
- 3,53,31, 3,53,36, 7,25, 6, 3,55,49, 3,56,12, 4,54,68, 0, 0, 0, 0, 0, 0,
- 3,60,58, 3,58,57, 3,60,52, 3,60,59, 4,67,63, 4,70,46, 5,83,55, 4,74,48,
- 3,64,26, 3,65,90, 4, 7,12, 3, 9,90, 3,23,56, 3,39,84, 3,13,74, 4,13,86,
- 3,23,22, 4,24,75, 3, 9,91, 4,10,12, 4,24,76, 3, 9,93, 3, 9,94, 5,14,51,
- 6,25,32, 4,13,90, 4,36,63, 7,25,13, 4,59,68, 4,70,48, 3, 1,74, 3,18,19,
- 4, 3, 6, 3, 6,69, 4, 4,53, 6,12,81, 4, 7,19, 5, 6,87, 4, 7,18, 4, 7,15,
- 3,13,76, 3,13,79, 4,10,14, 3,13,78, 0, 0, 0, 3,18,20, 3,18,21, 4,13,93,
- 4,13,92, 4,18,90, 5,19,45, 4,18,89, 4,18,94, 3,23,24, 6,33,70, 0, 0, 0,
- 3,23,23, 4,24,80, 4,24,82, 4,24,83, 4,36,67, 6,52,88, 4,30,46, 3,34,62,
- 0, 0, 0, 4,36,66, 4,36,64, 4,36,68, 4,42,79, 4,42,78, 4,42,82, 4,42,81,
- 4,42,83, 4,49,14, 4,49,16, 4,49,15, 4,54,71, 3,53,38, 3,53,39, 4,59,70,
- 4,59,69, 4,64, 4, 7,51,75, 4,74,49, 4, 7,20, 4, 4,57, 3, 6,77, 4, 4,54,
- 3, 6,76, 6,12,85, 4, 7,25, 5, 7,14, 3,10, 9, 3,10, 4, 3,10, 5, 4, 7,26,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,10,18, 4,10,20, 4,10,21, 3,13,82, 6,18,71,
- 0, 0, 0, 3,18,23, 5,14,60, 4,14, 1, 4,13,94, 4,14, 2, 4,14, 6, 6,33,77,
- 4,14, 7, 5,19,49, 4,19, 8, 6,33,85, 4,19, 9, 4,19, 5, 4,19,11, 4,19, 7,
- 4,19,14, 4,24,89, 4,24,87, 3,29,12, 4,24,91, 6,43,35, 0, 0, 0, 4,36,69,
- 4,30,52, 4,36,70, 4,30,51, 3,34,64, 4,30,50, 0, 0, 0, 4,36,74, 6,62,78,
- 4,36,73, 4,36,72, 4,36,71, 3,39,86, 4,24,90, 4,42,91, 4,42,86, 4,42,90,
- 4,42,92, 0, 0, 0, 7,15,84, 4,49,18, 4,49,20, 3,53,40, 4,54,74, 4,54,75,
- 4,59,71, 5,72,27, 0, 0, 0, 4,67,69, 4,67,70, 4,67,71, 4,67,67, 4,75,79,
- 3, 4,14, 4, 3, 9, 3, 4,16, 3, 4,17, 3, 6,81, 3, 6,79, 3, 6,80, 0, 0, 0,
- 3,10,14, 3,13,86, 6,13, 1, 3,10,16, 4, 7,27, 3,10,17, 0, 0, 0, 3,13,93,
- 3,18,26, 4,10,23, 4,10,24, 0, 0, 0, 0, 0, 0,15,12,18, 0, 0, 0, 4,19,15,
- 3,18,35, 3,18,36, 3,18,27, 4,19,16, 3,18,37, 0, 0, 0, 0, 0, 0,15,17, 7,
- 3,18,34, 3,23,31, 3,23,34, 3,23,33, 4,19,19, 3,23,30, 3,23,35, 0, 0, 0,
- 0, 0, 0, 3,29,20, 4,24,93, 5,26,13, 3,34,67, 3,29,17, 3,29,16, 3,34,76,
- 0, 0, 0,15,22,57,15,29,27, 0, 0, 0, 0, 0, 0, 4,30,57, 3,34,69, 3,34,73,
- 5,32,46, 3,34,82,15,35,41,15,35,54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,40, 4,
- 7, 5,23, 0, 0, 0, 0, 0, 0, 4,43, 2, 4,43, 1, 3,45,23, 3,45,28, 3,45,19,
- 3,45,24, 3,45,20, 3,45,18, 0, 0, 0, 0, 0, 0, 3,49,72, 5,53,61, 4,49,23,
- 3,49,73, 3,53,42, 4,54,79,15,53,90,15,54, 2, 3,53,46, 4,59,73, 3,53,44,
- /* plane 0, page 63 */
- 1, 255, /* first, last */
- 15,59,13, 3,56,17, 0, 0, 0, 4,64,10,15,66,88,15,66,91, 3,60,65,
- 0, 0, 0, 4,10,25, 4,10,26, 5,14,66, 4,14,11, 4,19,21, 4,19,20, 4,24,94,
- 4,36,80, 4,36,81, 4,36,79, 4,43, 3, 4,43, 4, 4,59,76, 4,77,58, 4, 4,62,
- 5, 7,18, 3,10,20, 3,14, 3, 4,10,29, 3,18,42, 3,18,43, 4,14,13, 3,18,41,
- 4,14,12, 4,19,27, 4,25, 1, 4,19,26, 4,19,24, 4,19,25, 4,19,23, 4,25, 3,
- 4,25, 6, 4,19,28, 4,25, 4, 4,30,66, 4,30,65, 4,30,61, 4,30,64, 3,34,86,
- 4,30,67, 5,39,40, 4,36,83, 4,36,86, 4,36,84, 4,36,88, 4,36,87, 4,36,85,
- 4,43, 5, 4,43, 7, 4,43, 6, 4,49,31, 3,49,79, 4,49,34, 4,49,33, 4,54,82,
- 4,54,83, 3,53,49, 4,54,85, 3,53,48, 4,54,81, 0, 0, 0, 4,59,79, 4,59,78,
- 4,64,12, 4,64,11, 4,72,85, 4,75,80, 4,74,51, 3,18,44, 4,30,69, 0, 0, 0,
- 3,45,31, 4,54,88, 3,29,32,15,48,46, 0, 0, 0, 5, 4,67, 6, 8,66, 3, 6,82,
- 4,10,33, 3,14, 9, 4,10,35, 4,14,15, 4,14,17, 5,19,68, 3,23,40, 3,29,33,
- 4,25, 8, 4,30,73, 3,34,89, 3,34,90, 4,30,72, 4,36,89, 3,45,32, 4,43,10,
- 4,43, 9, 4,49,36, 5,60,15, 4,59,82, 4,59,83, 4,64,14, 4,67,73, 4,74,52,
- 4,30,77, 4, 4,65, 4, 4,66, 0, 0, 0, 5, 7,23, 3,10,28, 0, 0, 0, 4,10,38,
- 3,14,13, 4,10,41, 3,14,12, 3,14,14, 0, 0, 0, 3,18,54, 4,14,23, 4,14,27,
- 4,14,21, 4,14,22, 3,18,52, 4,14,19, 4,14,31, 4,14,25, 6,25,75, 3,18,51,
- 4,14,24, 4,14,26, 5,19,77, 4,19,34, 3,23,44, 4,19,32, 4,14,28, 4,19,31,
- 4,19,37, 3,23,43, 4,19,35, 4,25,18, 4,25,19, 3,29,38, 3,29,43, 6,43,58,
- 3,29,41, 4,25,22, 5,32,64, 4,25,15, 4,25,16, 3,29,40, 3,29,42, 5,26,27,
- 4,25,21, 4,25,24, 4,30,84, 5,32,68, 4,30,79, 4,30,88, 4,30,78, 4,30,86,
- 4,30,83, 4,30,90, 4,37, 4, 4,37, 8, 6,63,13, 3,40,10, 3,40,12, 4,37, 3,
- 4,37, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 5,56, 4,43,24,
- 3,45,34, 4,43,23, 4,43,21, 4,43,19, 4,43,15, 7, 5,60, 4,43,14, 5,39,57,
- 0, 0, 0, 4,43,27, 7,16,22, 4,49,40, 4,49,41, 3,49,85, 4,49,46, 4,49,42,
- 4,49,48, 4,55, 6, 4,55, 2, 4,59,91, 4,59,87, 7,32,75, 4,55, 5, 7,32,71,
- 0, 0, 0, 4,64,18, 4,64,15, 4,64,16, 0, 0, 0, 4,70,56, 4,70,57, 3,62,32,
- 5,83,60, 4,74,53, 4,75,82, 4,75,81, 3,66,13, 3, 6,85, 3,14,16, 3,18,56,
- 0, 0, 0, 3,23,46, 3,35, 2, 3,40,13, 5,39,59, 5,46,57, 4,49,54, 4,64,23,
- 4,70,59, 4,76,83, 4, 7,38, 4,10,46, 3,14,17, 4,14,38, 4,14,37, 4,19,39,
- 4,19,40, 4,25,26, 6,53,50, 4,37,16, 4,37,18, 3,40,15, 3,45,35, 4,43,29,
- 4,49,55, 4,59,94, 4,67,76, 4, 7,40, 4,10,49, 4,10,48, 4,14,39, 4,14,41,
- /* plane 0, page 64 */
- 0, 255, /* first, last */
- 3,18,57, 4,19,43, 3,23,47, 3,29,46, 3,35, 3, 5,32,79, 3,40,18, 4,49,58,
- 4,37,22, 4,55,12, 4,64,24, 3,63,24, 0, 0, 0, 4,78,40, 3, 6,89, 4, 4,69,
- 4, 7,46, 4, 7,47, 4, 7,45, 4, 7,44, 4, 7,42, 4,10,51, 4,10,54, 4,10,55,
- 4,10,52, 4,10,56, 5,10,77, 4,10,58, 6,19,24, 0, 0, 0, 3,14,20, 4,14,50,
- 3,18,61, 3,18,70, 3,18,64, 4,14,45, 3,18,65, 0, 0, 0, 0, 0, 0, 5,19,86,
- 4,19,48, 4,19,49, 3,23,54, 3,23,52, 4,19,50, 4,19,46, 4,19,45, 3,29,48,
- 4,25,41, 3,29,52, 4,25,42, 3,29,53, 4,25,37, 4,25,40, 4,25,31, 4,25,33,
- 4,25,43, 4,25,38, 4,25,45, 4,25,39, 4,25,35, 4,31, 2, 4,25,44, 4,25,34,
- 0, 0, 0, 4,31,16, 4,31,13, 3,35, 4, 4,31, 5, 4,31, 6, 4,31, 7, 4,31,11,
- 4,31,12, 6,53,65, 5,39,65, 4,37,25, 4,37,33, 4,37,28, 4,37,23, 3,40,23,
- 4,37,35, 4,37,38, 4,37,31, 4,37,36, 3,40,26, 4,37,24, 0, 0, 0, 3,45,37,
- 4,43,37, 4,43,34, 4,43,36, 4,43,39, 4,43,35, 4,43,45, 3,45,39, 5,46,64,
- 4,43,31, 0, 0, 0, 3,49,87, 3,49,88, 4,49,60, 4,49,64, 3,49,92, 3,49,90,
- 4,49,61, 4,49,68, 0, 0, 0, 4,55,18, 4,55,14, 4,55,17, 4,55,15, 3,53,58,
- 4,55,16, 4,55,19, 4,55,20, 5,54, 2, 5,66,73, 4,60, 7, 4,60, 9, 4,60,10,
- 4,60, 5, 3,56,23, 4,60, 6, 4,67,80, 4,67,78, 4,67,81, 4,67,79, 4,70,61,
- 3,62,33, 4,72,88, 4,74,55, 4,72,90, 4,76,85, 4,78,45, 4, 7,49, 4,10,63,
- 4,19,55, 4,37,42, 3,53,61, 0, 0, 0, 4,55,24, 4,67,84, 4,75,85, 4,14,55,
- 4,14,56, 4,19,58, 4,19,57, 6,44,11, 4,31,19, 4,37,44, 3, 4,18, 3, 6,90,
- 4, 7,51,15, 8,90, 4,10,68, 3,14,24, 4,10,66, 3,14,28, 3,13,27, 4,14,63,
- 4,14,60, 4,14,66, 5,15,20, 3,23,59, 3,18,74, 3,18,75, 4,14,62, 4,14,65,
- 0, 0, 0, 4,19,62, 4,19,65, 3,23,60, 4,19,63, 3,23,58, 4,19,64, 3,23,62,
- 3,29,59, 5,26,57, 6,44,19, 4,25,56, 3,29,56, 0, 0, 0, 4,25,51, 4,31,32,
- 4,31,25, 4,31,31, 3,35,15, 4,31,28, 3,35,18, 4,31,29, 3,35,12, 4,31,30,
- 4,31,24, 4,31,26, 4,31,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,31,34,
- 4,37,46, 3,40,35, 4,37,49, 3,40,33, 4,37,45, 4,37,53, 4,37,47, 5,39,86,
- 0, 0, 0, 4,43,60, 4,43,56, 4,43,54, 4,43,53, 4,43,62, 7, 6, 4, 4,43,59,
- 3,50, 3, 3,49,93, 4,49,76, 3,49,94, 7,16,57, 5,54,19, 4,49,80, 0, 0, 0,
- 4,49,77, 4,55,27, 4,55,33, 3,40,34, 4,55,25, 3,53,62, 3,53,63, 4,55,31,
- 0, 0, 0, 3,56,33, 4,60,13, 3,56,29, 4,60,17, 4,60,15, 4,60,14, 0, 0, 0,
- 4,64,31, 7,46,60, 3,60,67, 4,67,86, 4,67,85, 4,70,63, 4,70,64, 4,70,65,
- 4,72,92, 4,72,91, 3,64,85, 3,65,71, 0, 0, 0, 3,14,31, 4,10,71, 4,10,70,
- /* plane 0, page 65 */
- 0, 254, /* first, last */
- 6,19,40, 3,18,78, 4,14,68, 3,18,81, 3,23,68, 4,19,67, 4,19,66, 3,29,65,
- 3,29,64, 4,25,57, 0, 0, 0, 4,31,37, 4,31,36, 3,35,26, 3,35,27, 3,35,30,
- 4,31,39, 3,35,28, 3,35,31, 3,40,38, 5,40, 4, 3,40,41, 0, 0, 0, 0, 0, 0,
- 5,46,86, 3,45,46, 4,49,86, 3,50, 5, 4,49,84, 4,49,85, 0, 0, 0, 4,55,34,
- 3,56,38, 3,56,39, 3,58,68, 0, 0, 0, 4,70,67, 3,66,20, 5, 4,78, 3, 6,93,
- 5, 7,38, 6,13,41, 4, 7,54, 3,10,32, 3,10,33, 3,10,35, 4,10,74, 4,10,79,
- 4,10,75, 4,10,73, 4,10,76,15,12,77, 0, 0, 0, 0, 0, 0, 4,14,69, 3,18,85,
- 3,18,90, 0, 0, 0, 6,34,70, 4,19,71, 4,19,70, 3,23,77, 4,19,69, 5,20,27,
- 5,20,25, 4,19,74, 4,19,73, 4,19,75, 3,23,72, 4,19,77, 5,20,24, 3,23,78,
- 15,23,27, 0, 0, 0, 4,19,68, 5,26,69, 4,25,62, 4,25,66, 3,29,71, 4,25,68,
- 3,29,74, 4,25,67, 3,29,75, 4,25,65, 4,31,47, 3,35,32, 4,31,45, 3,35,37,
- 4,31,44, 3,35,34, 4,31,43, 3,35,35, 4,37,55, 4,31,41, 5,33,17, 0, 0, 0,
- 3,40,49, 3,40,42, 4,37,59, 3,40,51, 3,40,46, 4,37,58, 3,40,44, 4,37,56,
- 6,63,75, 4,37,57, 0, 0, 0, 0, 0, 0, 4,43,69, 4,43,65, 3,45,52, 4,43,66,
- 3,45,50, 7, 6,18, 3,45,56, 4,43,72, 4,43,70, 4,43,68, 3,45,57, 4,49,93,
- 4,49,92, 3,50,11, 4,49,89, 4,49,88, 4,49,90, 3,50,13, 4,55,37, 3,53,67,
- 4,55,39, 3,56,40, 7,33,14, 4,60,23, 4,60,21, 4,60,22, 0, 0, 0, 0, 0, 0,
- 3,62,38, 4,67,89, 4,70,69, 7,56,44, 0, 0, 0, 4,70,68, 4,72,94, 4,73, 1,
- 3,66,25, 4, 4,73, 6,13,46, 3,14,38, 3,14,37, 4,10,81, 4,10,82, 3,19, 1,
- 3,18,94, 3,18,93, 4,19,79, 4,19,80, 3,23,79, 5,20,37, 4,19,82, 4,19,81,
- 6,34,79, 3,29,76, 4,25,71, 3,29,77, 6,44,51, 3,29,78, 5,33,25, 4,31,51,
- 4,31,50, 6,54, 7, 4,37,64, 6,63,88, 4,43,76, 5,47, 3, 0, 0, 0, 5,52, 4,
- 4,50, 5, 4,50, 2, 4,50, 4, 7,16,79, 0, 0, 0, 3,53,69, 3,53,70, 4,55,44,
- 4,55,45, 4,55,43, 4,55,47, 3,53,71, 4,60,25, 4,60,26, 4,64,40, 4,64,41,
- 4,67,92, 4,73, 2, 3, 4,20, 3,10,38, 0, 0, 0, 4,10,86, 3,14,42, 3,19, 5,
- 4,14,77, 3,19, 2, 0, 0, 0, 5,20,38, 3,29,79, 4,25,74, 3,35,40, 4,31,52,
- 4,31,53, 4,31,58, 4,37,67, 4,55,50, 4,60,27, 3,58,72, 5,11, 1, 4,14,85,
- 4,14,80, 3,19, 8, 4,14,87, 3,19, 9, 4,14,83, 4,14,82, 4,19,86, 4,19,93,
- 3,23,84, 5,20,40, 4,19,87, 4,19,91, 3,23,85, 6,34,86, 4,19,88, 4,25,77,
- 4,25,84, 4,25,81, 3,29,84, 4,31,59, 4,25,82, 3,29,90, 4,25,85, 3,29,83,
- 4,25,79, 6,44,59, 6,44,54, 0, 0, 0, 0, 0, 0, 3,35,48, 4,31,70, 4,31,66,
- 4,31,65, 3,35,50, 3,35,51, 4,31,61, 3,35,46, 4,31,64, 3,35,43,
- /* plane 0, page 66 */
- 0, 255, /* first, last */
- 4,31,67, 5,40,38, 4,25,86, 4,37,69, 3,40,59, 4,37,74, 4,37,73, 3,40,63,
- 4,37,78, 4,37,72, 3,40,57, 4,37,77, 4,37,70, 5,40,22, 4,43,91, 4,43,85,
- 4,43,80, 3,45,65, 3,45,62, 4,44, 2, 3,45,71, 4,43,94, 3,45,66, 4,44,14,
- 5,47,27, 3,45,68, 4,44,16, 4,44, 5, 4,44,13, 4,43,89, 5,47,18, 3,45,63,
- 5,47,37, 4,44,12, 4,44, 7, 4,43,87, 3,45,70, 3,45,72, 4,44, 8, 5,47,22,
- 0, 0, 0, 0, 0, 0, 4,50,20, 4,50,26, 3,50,17, 4,50,23, 4,50,11, 4,50,24,
- 3,50,21, 4,50,25, 4,50,27, 4,50,22, 4,50,15, 4,50,29, 4,50, 9, 3,50,18,
- 4,55,59, 5,60,77, 4,55,62, 4,55,58, 4,55,66, 5,60,93, 4,55,69, 4,55,51,
- 3,53,76, 4,55,54, 4,55,56, 4,55,57, 5,60,94, 4,55,53, 5,61,16, 0, 0, 0,
- 4,60,36, 4,60,47, 4,60,43, 4,60,48, 4,60,35, 3,56,42, 4,60,42, 3,58,76,
- 4,60,34, 4,60,44, 7,33,31, 4,60,38, 4,60,41, 4,60,32, 5,67,20, 4,60,40,
- 3,56,45, 3,56,43, 5,67,33, 4,64,54, 5,72,78, 3,58,74, 4,64,51, 5,72,70,
- 3,58,77, 3,58,73, 3,58,75, 4,60,49, 0, 0, 0, 4,67,94, 4,70,73, 4,70,76,
- 4,70,78, 3,62,42, 4,70,74, 3,62,45, 4,70,72, 4,70,77, 3,63,54, 5,80,65,
- 4,73, 6, 4,73, 8, 4,74,61, 4,74,65, 4,74,60, 3,64,63, 4,75,86, 4,77,60,
- 4,77,86, 7,69,61, 4,10,87, 3,19,15, 3,19,19, 6,35, 2, 4,20, 5, 5,20,57,
- 3,23,92, 6,44,64, 4,25,91, 4,25,92, 3,29,93, 3,29,92, 4,25,93, 3,35,58,
- 3,35,54, 3,35,55, 3,35,57, 3,35,59, 0, 0, 0, 3,40,67, 4,37,82, 3,40,68,
- 3,40,69, 6,64,12, 3,40,70, 3,45,75, 3,45,76, 3,45,73, 3,45,74, 4,44,23,
- 7, 6,55, 4,44,21, 3,50,22, 4,55,77, 3,53,83, 3,53,82, 4,55,73, 4,55,74,
- 3,45,84, 4,55,75, 0, 0, 0, 5,67,46, 4,60,54, 3,56,50, 4,60,53, 4,60,52,
- 5,67,52, 3,56,51, 3,58,80, 4,64,59, 4,64,61, 4,68, 3, 3,60,72, 7,52,26,
- 5,80,80, 4,74,69, 5,86,25, 4,76,90, 3,65,37, 4, 7,60, 6,19,68, 3,14,55,
- 3,14,53, 3,14,56, 4,14,88, 4,14,94, 3,19,21, 3,19,20, 4,14,92, 3,19,25,
- 4,15, 1, 3,19,24, 4,14,93, 3,19,22, 3,19,26, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4,20,14, 4,20, 6, 3,24, 3, 3,24,10, 4,20, 7, 4,20,16, 3,24,12, 4,20,13,
- 4,20,11, 4,20, 9, 3,24, 8, 3,24,13, 3,24, 5, 3,30,22, 5,27,12, 3,30,13,
- 3,30,18, 3,30, 7, 3,30,16, 3,30, 5, 6,44,81, 0, 0, 0, 3,30,17, 4,31,74,
- 3,35,69, 3,35,75, 4,31,78, 4,31,83, 4,31,79, 3,35,65, 3,35,61, 3,40,76,
- 4,37,85, 4,37,94, 4,37,89, 4,38, 1, 3,40,71, 3,35,63, 3,40,82, 3,40,85,
- 4,38, 3, 5,40,52, 3,40,79, 3,46,10, 5,47,51, 4,44,30, 4,44,28, 4,44,32,
- 3,45,91, 3,46, 1, 3,46,13, 3,45,86, 3,45,89, 4,44,26, 4,44,29, 4,44,31,
- /* plane 0, page 67 */
- 0, 255, /* first, last */
- 3,45,90, 4,44,36, 5,47,52, 3,46, 6, 3,46, 3, 3,50,26, 4,50,41, 3,50,28,
- 4,50,39, 3,50,29, 3,50,30, 0, 0, 0, 4,55,83, 3,53,88, 5,61,31, 3,53,86,
- 5,61,38, 3,53,87, 4,55,78, 3,53,92, 3,53,91, 7,26,25, 4,60,66, 4,60,64,
- 4,55,82, 3,56,55, 3,56,54, 3,57, 9, 4,64,70, 4,64,67, 4,64,72, 4,64,66,
- 7,39,42, 3,58,83, 3,58,81, 5,77, 2, 3,60,73, 4,68, 4, 3,60,74, 3,60,75,
- 3,62,47, 3,62,46, 4,73,10, 7,56,56, 3,63,57, 4,73,11, 4,74,70, 4,75,89,
- 4,75,88, 7,63,19, 3,64,88, 4,76,92, 4,76,91, 4,77,87, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,10,89, 4,15, 9, 3,24,15, 3,24,18, 5,20,64, 4,20,20,
- 3,24,16, 4,20,19, 4,26, 8, 4,38, 5, 3,40,86, 4,50,46, 4,74,75,15, 1,39,
- 3,10,45, 3,14,60, 3,14,59, 3,14,57, 4,10,91, 4,15,10, 6,26,75, 4,15,13,
- 4,20,21, 4,31,85, 4,26,10, 3,35,76, 3,35,77, 5,33,69, 3,40,90, 3,40,91,
- 0, 0, 0, 4,50,47, 4,55,85, 4,60,69, 4,64,77, 4,70,91, 4,75,91, 6,26,84,
- 4,15,14, 3,17,31, 4,20,24, 4,20,22, 4,20,23, 6,35,28, 4,26,13, 4,26,17,
- 4,26,16, 4,31,86, 3,40,94, 4,38, 7, 3,40,93, 4,38, 8, 3,40,92, 4,44,41,
- 4,50,51, 3,50,33, 4,55,87, 4,60,74, 4,60,75, 4,73,12, 3,19,32, 3,19,33,
- 4,20,26, 3,24,19, 4,20,27, 4,20,30, 4,20,28, 3,24,21, 3,24,20, 4,26,20,
- 4,26,21, 5,27,26, 4,26,19, 3,35,80, 4,31,88, 3,35,81, 4,31,87, 3,35,79,
- 3,41, 1, 4,38,10, 4,38, 9, 4,38,11, 4,50,53, 4,50,54, 3,56,62, 3,56,64,
- 3,56,63, 3,60,78, 4,70,93, 0, 0, 0, 3,30,25, 3,30,26, 0, 0, 0, 4,11, 7,
- 4,11, 8, 4,15,24, 4,11, 9, 3,24,24, 4,31,90, 0, 0, 0, 4,38,14, 4,38,13,
- 4,38,15, 4,38,18, 4,38,16, 4,44,47, 0, 0, 0, 4,55,93, 4,55,90, 4,55,91,
- 4,60,80, 4,71, 1, 4, 4,77, 3,19,38, 3,19,37, 3,24,26, 4,20,33, 4,26,25,
- 5,33,80, 3,35,84, 4,38,22, 4,38,20, 4,38,21, 4,38,23, 3,41, 4, 3,46,19,
- 4,44,50, 4,50,58, 3,50,34, 4,50,59, 4,56, 1, 4,56, 4, 4,56, 3, 4,56, 2,
- 3,56,68, 4,68, 8, 3,63,60, 6,54,77, 4, 3,13, 6, 5,41, 4, 4,79, 4, 4,78,
- 3,10,49, 6,27, 8, 3,10,53, 3,10,48, 4, 7,70,15, 8,50, 4, 7,66, 4, 7,71,
- 4, 7,67, 4, 7,69, 5, 7,56, 3,10,58, 3,10,51, 0, 0, 0, 5,11,19, 4,11,15,
- 4,11,10, 4,11,12, 3,14,66, 3,14,63, 6,19,93, 5,11,25, 3,19,49, 4,15,33,
- 4,15,38, 4,15,39, 4,15,31, 6,27,17, 5,15,77, 0, 0, 0, 0, 0, 0, 3,24,38,
- 4,20,44, 4,20,40, 3,24,36, 4,20,43, 4,20,50, 4,20,49, 4,20,42, 4,20,51,
- 6,35,56, 3,24,32, 3,24,31, 3,24,35, 4,26,41, 4,26,26, 3,30,31, 4,26,37,
- /* plane 0, page 68 */
- 0, 255, /* first, last */
- 5,27,45, 4,26,42, 4,26,33, 4,26,32, 4,26,34, 4,26,29, 0, 0, 0, 3,30,38,
- 4,26,31, 4,26,36, 4,26,43, 6,41,94, 6,45,52, 6,54,86, 4,32, 7, 3,35,88,
- 4,32,10, 4,32, 3, 4,32, 6, 3,35,90, 4,31,93, 4,32, 8, 3,36, 1, 4,32,12,
- 3,35,93, 3,35,89, 5,20,74, 4,32, 5, 4,38,37, 4,38,30, 4,38,28, 4,38,29,
- 4,38,31, 3,50,40, 4,38,34, 4,38,32, 4,38,27, 3,41, 9, 3,41, 8, 4,38,24,
- 4,38,39, 4,38,33, 0, 0, 0, 4,44,61, 4,44,56, 4,44,62, 4,44,53, 4,44,60,
- 6,64,79, 4,44,52, 4,44,59, 4,44,63, 5,34, 8, 4,50,67, 4,50,68, 3,50,38,
- 3,50,37, 4,50,62, 4,50,65, 4,50,66, 4,50,70,15,49,53, 5,61,59, 4,56,11,
- 4,56, 8, 4,56,12, 4,60,84, 3,56,70, 4,60,86, 3,56,71, 3,58,86, 4,64,84,
- 4,64,83, 5,77,12, 4,68,10, 4,71, 2, 4,71, 4, 4,71, 3, 4,71, 5, 4,73,16,
- 6,35,68, 7,34, 4, 3,11,36, 3,36, 4, 4,15,42, 4,20,56, 0, 0, 0, 4,44,67,
- 4,50,75, 3,19,51, 3,19,52, 3,24,42, 4,44,68, 6,65, 1, 3,50,43, 3,62,52,
- 4, 7,79, 4,11,19, 4,11,18, 3,14,71, 3,19,54, 4,15,48, 3,24,43, 6,35,81,
- 6,35,80, 0, 0, 0, 3,30,42, 4,26,46, 4,26,47, 6,45,67, 0, 0, 0, 5,34,13,
- 4,32,15, 4,38,47, 4,38,49, 4,38,48, 3,41,12, 6,65, 4, 5,41,12, 0, 0, 0,
- 0, 0, 0, 3,46,30, 4,44,72, 4,44,69, 4,50,76, 4,50,77, 0, 0, 0, 4,56,16,
- 4,56,20, 4,56,19, 3,54, 5, 3,54, 6, 5,61,71, 5,60,45, 4,56,18, 0, 0, 0,
- 4,60,92, 4,68,13, 4,15,51, 4,20,60, 4,50,79, 4,50,78, 4,56,21, 4,60,93,
- 4,73,19, 0, 0, 0, 6, 5,47, 3, 4,23, 3, 4,25, 3, 7, 7, 4, 4,86, 4, 4,93,
- 3, 7,12, 0, 0, 0, 3,10,67, 3,10,71, 3,10,68, 3,10,74, 4, 7,82, 3,10,66,
- 4, 8, 1, 4, 7,83, 3,10,69, 3,10,73, 5, 7,67, 3,10,65, 3,14,77, 4,11,22,
- 3,14,80, 3,14,81, 3,14,76, 3,14,83, 3,14,85, 6,20,26, 0, 0, 0, 0, 0, 0,
- 4,15,53, 3,19,65, 4,15,65, 3,19,68, 3,19,59, 3,19,62, 6,27,54, 3,19,61,
- 4,15,62, 3,19,60, 3,19,69, 5,16, 1, 4,15,57, 4,15,68, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 3,19,64, 4,20,62, 4,20,76, 4,20,81, 3,24,58, 4,20,73, 4,20,69,
- 3,24,54, 4,20,70, 4,20,66, 4,20,61, 4,20,67, 6,36,12, 3,24,44, 6,36, 8,
- 5,21,10, 3,24,57, 3,24,60, 5,21, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,26,76,
- 4,26,64, 4,26,63, 4,26,68, 4,26,57, 5,27,54, 4,26,59, 4,26,54, 3,30,51,
- 4,26,62, 3,30,52, 3,30,49, 4,26,60, 4,26,65, 3,30,53, 6,46, 7, 3,30,44,
- 0, 0, 0, 0, 0, 0,15,30,75, 0, 0, 0, 0, 0, 0, 4,32,16, 4,32,18, 4,26,69,
- 3,36,23, 4,38,73, 4,32,39, 4,32,41, 4,32,26, 3,36,11, 3,36, 9, 3,36,20,
- 4,32,40, 3,36,29, 4,32,44, 0, 0, 0, 4,38,69, 3,41,15, 4,38,55, 6,65,36,
- /* plane 0, page 69 */
- 0, 255, /* first, last */
- 4,38,68, 3,41,17, 4,38,51, 5,41,28, 4,38,65, 3,41,16, 4,38,77, 4,38,64,
- 4,38,60, 3,41,20, 5,41,27, 6,65,56, 3,41,23, 3,41,32, 3,46,35, 4,44,82,
- 3,46,31, 4,44,80, 4,45, 4, 4,44,75, 3,46,33, 4,44,81, 3,46,51, 4,44,77,
- 4,44,83, 3,46,39, 3,46,37, 3,46,54, 4,44,93, 3,50,49, 4,44,76, 3,46,42,
- 4,44,78, 3,46,40, 3,46,53, 3,46,41, 5,48,38, 3,46,48,15,49,69,15,49,83,
- 15,49,86, 4,45, 1, 4,44,79, 3,46,49, 4,44,87, 4,50,87, 4,50,91, 4,50,89,
- 4,51,12, 4,51, 1, 4,50,86, 3,50,51, 4,51, 5, 3,50,55, 4,50,94, 3,50,45,
- 4,51, 3, 4,50,90, 4,50,92, 4,50,82, 5,68,13, 3,50,44, 4,51, 2, 4,50,83,
- 3,50,46, 4,51, 7, 0, 0, 0, 4,51,17, 4,38,71, 4,56,36, 4,56,28, 4,56,24,
- 4,56,34, 5,61,89, 4,56,22, 4,56,27, 3,54,14, 3,54, 7, 4,56,29, 3,54,10,
- 0, 0, 0, 3,54,15, 3,56,73, 4,60,94, 4,61,11, 3,56,77, 3,56,80, 3,56,74,
- 3,56,81, 4,61, 3, 7,34,24, 4,61, 1,15,64,46, 7,27,18, 4,64,87, 3,60,83,
- 3,59, 3, 4,64,88, 3,59, 1, 0, 0, 0, 3,59, 4, 7,41,51, 4,68,15, 4,68,20,
- 3,60,93, 4,68,19, 3,60,84, 7,52,72, 3,60,89, 4,68,18, 4,68,24, 3,60,90,
- 4,68,16, 3,60,85, 4,68,22, 4,71, 7, 3,62,57, 4,71, 8, 0, 0, 0,15,72,25,
- 3,63,61, 4,73,23, 7,56,82, 3,64,33, 3,64,34, 5,88, 5, 4,75,93, 4,77,62,
- 4,76,93, 3,65,74, 4,77,89, 4,77,91,15,76,76, 4,78,23, 4,78,22, 5,92,30,
- 3,10,77, 4,11,30, 4,15,71, 3,19,71, 3,19,70, 3,19,72, 5,21,21, 3,24,66,
- 5,27,80, 3,30,64, 3,36,33, 5,34,52, 5,34,51, 3,36,34, 3,36,35, 4,45, 6,
- 4,51,22, 4,61,18, 5,68,27, 5,68,26, 4,68,26, 3, 7,14, 3,14,93, 3,15, 1,
- 3,15, 2, 4,15,73, 4,15,75, 6,27,73, 3,24,72, 3,24,71, 4,20,92, 3,24,69,
- 4,20,91, 4,20,89, 5,28, 6, 6,36,40, 0, 0, 0, 4,26,82, 3,30,71, 4,26,84,
- 3,30,69, 5,27,84, 4,26,80, 4,26,77, 3,30,68, 3,30,70, 4,32,54, 4,32,55,
- 3,36,43, 3,36,39, 4,32,59, 4,26,78, 4,32,61, 3,36,42, 0, 0, 0, 4,38,88,
- 3,41,38, 4,38,82, 4,38,83, 4,38,81, 4,38,85, 3,41,39, 4,38,80, 4,38,86,
- 6,65,73, 3,41,40, 4,38,91, 3,46,58, 3,46,60, 7, 8,34, 3,46,55, 3,46,56,
- 4,45,16, 3,46,59, 4,38,89, 4,45,22, 4,45,15, 3,41,45, 0, 0, 0, 4,51,30,
- 3,50,60, 7,18,83, 4,51,29, 4,56,45, 3,50,64, 7,18,85, 3,50,65, 5,62,18,
- 4,56,55, 4,56,50, 3,54,23, 4,56,56, 4,56,47, 4,56,54, 3,54,24, 4,56,46,
- 3,54,18, 4,56,52, 4,56,63, 3,54,21, 3,54,28, 0, 0, 0, 3,54,17, 4,61,27,
- 5,62,21, 4,61,25, 3,56,82, 0, 0, 0, 4,65, 4, 5,73,33, 3,59,10, 4,65, 1,
- 4,65, 5,15,67,78, 5,77,43, 0, 0, 0, 4,68,27, 4,68,28, 4,68,32, 4,68,30,
- /* plane 0, page 70 */
- 0, 255, /* first, last */
- 4,68,33, 3,61, 6, 3,62,62, 4,71,16, 4,68,29, 4,73,30, 3,63,62, 3,63,64,
- 3,64,36, 7,57, 5, 7,60,62, 4,74,88, 7,60,67, 3,65,40, 4,78,25, 3,15, 5,
- 6,27,83, 3,24,73, 3,36,44, 4,39, 3, 4,45,23, 4,15,79, 4,26,88, 3,46,62,
- 4,51,42, 3,59,14, 3,10,78, 0, 0, 0, 3,15, 8, 4,11,38, 0, 0, 0, 5,16,29,
- 4,15,82, 5,16,25, 4,21,10, 4,26,90, 4,21,13, 4,21,14, 4,21,12,15,18,49,
- 4,26,89, 3,30,81, 4,21,16, 3,30,78, 3,30,76, 3,30,75, 3,15,42, 4,32,66,
- 4,39, 5, 6,56,11, 0, 0, 0, 3,41,51, 4,39,13, 5,41,76, 5,41,77, 4,32,70,
- 4,39,17, 4,39, 7, 3,41,53, 4,32,64, 4,39,10, 4,39,14, 4,39, 6, 4,39,11,
- 3,41,58, 3,41,48, 3,41,59, 4,45,28, 4,45,31, 4,45,26, 4,45,25, 4,45,34,
- 4,45,32, 4,45,39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,51,50, 4,51,53,
- 4,51,54, 3,46,67, 4,51,47, 0, 0, 0, 4,56,67, 4,56,71, 3,54,37, 3,54,35,
- 4,56,68, 3,54,30, 7,27,57, 3,54,36, 4,56,69, 3,54,33, 5,68,54, 4,61,42,
- 4,61,40, 4,61,41, 4,61,36, 4,61,38, 4,65,10, 7,35, 2, 4,68,35, 7,48, 5,
- 3,61, 7, 4,68,36, 3,62,63, 0, 0, 0, 4,74,91, 7,57,18, 3,64,90, 4,76, 6,
- 3,64,89, 4,77,93, 5,11,39, 4,15,83, 4,21,17, 4,27, 1, 0, 0, 0, 3,19,89,
- 3,19,88, 4,21,19, 4,21,21, 0, 0, 0, 4,27, 3, 5,28,21, 4,27, 2, 3,30,83,
- 3,36,48, 3,36,49, 4,39,22, 4,39,24, 4,45,42, 4,45,40, 4,51,58, 4,51,59,
- 5,56,18, 4,51,60, 5,62,35, 4,56,72, 4,56,73, 4,61,46, 4,61,48, 4,65,13,
- 4,65,14, 3,59,16, 4,65,12, 4,65,16, 3,62,64, 0, 0, 0, 3,66,28, 4,21,26,
- 3,36,51, 4,32,71, 3,36,50, 4,39,26, 4,45,49, 4,45,44, 4,45,46, 4,45,51,
- 4,45,47, 4,51,68, 4,51,65, 4,51,66, 0, 0, 0, 4,56,75, 4,56,74, 5,68,67,
- 4,65,17, 4,65,20, 4,68,38, 4,68,39, 0, 0, 0, 4,77, 2, 3,15,11, 5,11,41,
- 3,15,13, 4,15,94, 3,19,93, 4,21,33, 3,24,92, 3,24,88, 5,21,55, 4,21,36,
- 5,21,62, 3,25, 4, 3,25, 8, 3,25, 1, 4,21,31, 3,24,93, 3,25, 7, 4,21,35,
- 5,21,61, 6,36,77, 3,25, 6, 5,21,54, 4,27,19, 3,30,89, 3,30,90, 4,27,22,
- 4,27,21, 3,30,86, 3,30,91, 3,30,87, 4,27,20, 4,27,10, 4,27, 9, 4,27,11,
- 3,31, 6, 6,46,75, 3,31, 5, 0, 0, 0, 3,36,55, 6,56,33, 3,36,62, 4,32,78,
- 4,32,77, 4,32,76, 3,36,58, 3,36,63, 3,36,66, 4,39,29, 4,39,32, 4,39,42,
- 4,39,28, 3,41,74, 4,39,38, 4,39,34, 3,41,65, 4,39,35, 3,41,73, 3,41,71,
- 3,41,61, 4,45,57, 4,45,54, 4,45,60, 4,45,62, 3,46,72, 4,45,65, 4,45,56,
- 4,45,59, 3,46,77, 4,45,63, 4,45,58, 3,46,75, 4,45,64, 7, 8,89, 4,45,53,
- 3,46,81, 4,51,74, 3,50,76, 3,50,77, 7,19,45, 4,51,75, 3,54,39, 4,56,80,
- /* plane 0, page 71 */
- 0, 255, /* first, last */
- 3,54,43, 3,54,44, 5,62,53, 4,61,58, 7,42, 5, 4,61,55, 4,61,59, 3,57, 2,
- 3,57, 5, 4,61,52, 3,57, 7, 4,65,32, 5,73,50, 3,59,19, 4,65,27, 4,65,29,
- 4,65,37, 5,73,49, 4,68,46, 3,61,13, 7,48,17, 4,68,44, 3,61,15, 4,68,40,
- 3,61,17, 4,71,29, 4,71,31, 7,53,18, 4,71,30, 4,71,32, 4,71,25, 7,57,24,
- 3,63,67, 4,73,40, 5,86,44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,11,41, 4,16, 3, 6,46,90, 3,31, 7, 4,39,44, 3,46,87,
- 4,56,85, 4,61,65, 4,73,44, 0, 0, 0, 4,21,42, 3,31, 8, 4,32,84, 4,39,46,
- 4,39,47, 3,41,76, 4,45,68, 3,50,80, 4,51,83, 3,50,79, 4,51,82, 3,50,81,
- 4,56,86, 4,56,87, 3,54,46, 4,71,36, 4,77, 4, 4,16, 5, 4,21,43, 6,37, 2,
- 4,21,44,15,36,84, 4,45,71, 4,45,69, 4,45,72, 4,51,85, 4,51,87, 4,61,68,
- 4,65,40, 4,65,38, 4,71,37, 3,63,69, 3,65,44, 4,77, 5, 4,21,48, 6,37, 4,
- 3,25,15, 0, 0, 0, 4,27,30, 0, 0, 0, 3,41,78, 3,46,89, 3,46,88, 3,50,82,
- 3,54,48, 3,57,12, 3,57,13, 4,65,42, 7,42,33, 3,59,23, 4,61,72, 4,21,49,
- 4,21,52, 5,28,44, 4,27,31, 4,27,33, 3,31,14, 4,27,34, 6,47, 9, 4,27,35,
- 4,33, 1, 3,36,70, 3,36,72, 5,42, 9, 6,66,74, 3,41,79, 3,46,91, 3,46,92,
- 4,45,78, 4,45,76, 7, 9,22, 4,45,77, 0, 0, 0, 5,49,25, 3,47, 1, 3,50,84,
- 4,51,93, 4,51,89, 4,51,91, 4,51,90, 3,50,86, 7,28,19, 4,56,90,15,64,90,
- 4,51,94, 3,61,21, 3,62,68, 4,75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,16,43, 5,35,20, 4,39,57, 4,39,56, 4,71,40, 5,16,44, 4,16, 7,
- 4,16, 8, 4,21,53, 4,21,54, 3,25,20, 3,25,22, 3,31,17, 4,27,37, 3,31,22,
- 3,31,18, 5,28,50, 3,31,21, 4,27,40, 4,27,39, 4,33, 6, 4,33, 7, 5,35,28,
- 3,36,74, 4,33, 8, 5,35,24, 4,39,58, 6,66,85, 4,39,59, 3,41,86, 5,42,20,
- 3,41,87, 5,42,18, 0, 0, 0, 3,47, 7, 4,45,83, 4,45,81, 3,47, 4, 4,45,84,
- 7, 9,29, 4,52, 6, 5,56,60, 5,56,53, 3,50,88, 4,56,93, 4,57, 5, 4,56,92,
- 5,62,77, 4,61,77, 3,57,15, 4,61,76, 4,61,74, 4,61,78, 3,57,16, 4,65,45,
- 3,61,22, 4,68,53, 4,68,51, 4,68,54, 4,71,42, 4,73,46, 3,63,70, 4,73,47,
- 4,75, 3, 4,76, 8, 4,77, 7, 4,11,44, 3,15,15, 4,16,10, 3,19,94, 4,21,62,
- 4,21,57, 5,21,82, 3,25,27, 4,21,59, 4,21,60, 4,21,61, 3,25,28, 5,28,67,
- 4,27,44, 4,27,48, 3,31,29, 4,27,45, 4,27,41, 6,47,22, 6,47,28, 5,28,60,
- 4,27,42, 4,27,43, 4,27,47, 3,31,28, 5,28,63, 4,27,49, 4,33, 9, 5,35,43,
- 3,36,76, 3,36,78, 0, 0, 0,15,37,56, 5,42,30, 4,39,62, 4,39,65, 4,39,63,
- 4,39,66, 4,39,69, 3,41,88, 4,39,68, 3,47, 8, 3,36,79, 4,45,87, 4,46, 2,
- /* plane 0, page 72 */
- 0, 255, /* first, last */
- 3,47,10, 7, 9,46, 3,47,14, 3,47, 9, 4,45,94, 4,46, 1, 4,45,93, 4,45,89,
- 4,45,88, 4,45,86, 3,47,13, 4,46, 3, 0, 0, 0, 4,52,14, 3,50,93, 3,50,90,
- 4,52,15, 4,52,13, 5,56,66, 4,52,16, 3,50,89, 5,62,91, 0, 0, 0, 4,57,11,
- 4,57,12, 4,57, 6,15,60,88, 4,57,10, 4,57, 8, 3,54,51, 3,57,19, 4,61,84,
- 4,61,88, 4,61,82, 4,61,85, 7,42,55, 4,65,48, 3,57,20, 4,65,49, 4,61,87,
- 4,68,59, 4,68,58, 4,71,48, 4,71,44, 5,84,43, 4,75, 4, 7,60,87, 4,76, 9,
- 3,65,47, 3,66,14, 3,31,34, 5,28,71, 4,27,50, 4,27,51, 3,31,33, 3,36,81,
- 3,36,80, 3,36,82, 0, 0, 0, 4,46, 6, 4,52,18, 4,57,16, 3,54,54, 3,59,30,
- 4,68,63, 3,64,44, 4,11,45, 4,11,46,15,13,51, 3,20, 2, 3,25,35, 3,25,36,
- 3,25,40, 4,21,65, 4,21,66, 3,25,37, 3,25,38, 3,25,34, 6,37,37, 3,31,40,
- 3,31,35, 4,27,52, 3,31,42, 3,36,85, 4,33,10, 3,36,84, 6,57, 4, 4,33,12,
- 4,39,70, 4,39,73, 4,39,71, 3,41,94, 4,46, 8, 4,46, 7, 4,46,10, 4,46, 9,
- 3,51, 3, 5,56,82, 4,52,19, 4,52,20, 5,49,65, 3,54,56, 4,57,18, 4,57,21,
- 4,57,23, 3,54,55, 4,57,17, 4,61,92, 4,61,91, 4,61,90, 5,69,21, 4,61,93,
- 4,61,94, 0, 0, 0, 4,65,57, 4,65,56, 4,65,55, 4,68,64, 4,68,65, 4,71,50,
- 15,72,51, 3,63,72, 3,63,71, 0, 0, 0, 3,64,93, 4,77,65, 4,78, 1, 3,66,29,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,46,14, 3,61,25, 4,39,75,15,44,71, 3,47,24,
- 4,68,67, 7,48,54, 3, 7,18, 4, 5, 2,15, 8,82, 3,10,79, 5, 7,73, 0, 0, 0,
- 4,11,51, 4,11,48, 3,20, 3, 4,16,13, 4,16,16, 3,20, 4, 4,16,14, 0, 0, 0,
- 0, 0, 0, 3,25,41, 4,21,73, 3,25,45, 3,31,51, 4,27,55, 3,31,46, 6,47,40,
- 3,31,50, 4,33,15, 3,42, 5, 0, 0, 0, 4,39,76, 3,42, 3, 3,47,26, 4,46,17,
- 4,46,21, 3,47,29, 3,51,10, 3,51, 8, 3,51, 9, 4,57,24, 4,57,25, 7,35,87,
- 3,57,25, 4,65,62, 4,76,12, 3, 2,63, 4, 3,18, 3, 7,22, 3, 7,23, 3, 7,24,
- 3,10,86, 4, 8, 9, 0, 0, 0, 3,15,22, 4,11,54, 3,37, 2, 3,15,29, 4,11,52,
- 4,11,56, 3,15,25, 3,15,26, 6,20,77, 4,16,24, 4,16,20, 3,20, 8, 4,16,19,
- 4,39,81, 0, 0, 0, 4,21,76, 4,21,78, 4,21,83, 4,21,75, 3,25,48, 4,21,80,
- 4,27,62, 3,31,56, 0, 0, 0, 4,33,20, 4,33,22, 3,37, 1, 4,57,28, 4,33,24,
- 4,39,77, 4,39,78, 3,42, 9, 3,42, 8, 5,42,64, 4,39,80, 3,47,30, 4,46,29,
- 4,46,28, 5,56,94, 5,63,28, 3,64,45, 4,75, 6, 3,15,31, 0, 0, 0, 3,20,11,
- 3,20,12, 4,21,88, 4,21,84, 3,25,51, 5,22,22, 4,21,85, 4,27,64, 3,31,58,
- 3,31,59, 3,31,60, 4,27,68, 0, 0, 0, 6,57,44, 3,37, 6, 4,33,29, 4,33,28,
- 4,33,31, 4,33,30, 4,39,83, 4,39,84, 4,46,31, 4,46,33, 4,46,30, 4,46,32,
- /* plane 0, page 73 */
- 1, 255, /* first, last */
- 4,52,29, 4,52,28, 4,52,26, 3,51,14, 4,52,32, 4,52,27, 7,20,52,
- 3,51,16, 4,57,29, 4,57,34, 7,28,80, 4,57,33, 5,69,37, 4,65,65, 4,65,68,
- 4,65,67, 4,65,66, 4,65,69, 4,71,58, 4,71,59, 4,73,52, 4,73,51, 4,76,14,
- 4,76,13, 4,78,29, 4,21,90, 6,28,67, 3,25,58, 3,31,63, 3,31,68, 3,31,65,
- 3,31,71, 3,37,12, 5,35,77, 0, 0, 0, 3,42,14, 4,39,89, 3,42,22, 4,39,86,
- 4,39,91, 0, 0, 0, 4,39,88, 3,47,47, 4,46,35, 3,47,39, 3,47,38, 7,10,24,
- 3,47,42, 7,10,30, 0, 0, 0, 3,51,19, 3,51,20, 4,52,40, 4,52,38, 7,28,91,
- 3,54,73, 7,28,87, 4,57,37, 4,57,36,15,61,44, 3,57,31, 3,57,33, 4,62,15,
- 4,62,12, 7,36,25, 4,62, 7, 5,69,47, 4,62,11, 3,57,40, 3,57,39, 0, 0, 0,
- 3,59,38, 4,65,70, 3,59,43, 3,59,32, 3,59,50, 4,65,73, 5,74,19, 4,65,72,
- 3,59,49, 3,59,44, 3,59,41,15,68,20, 3,61,27, 4,65,76, 3,61,32, 4,68,70,
- 4,68,76, 5,78,21, 3,61,40, 4,68,77, 0, 0, 0, 4,71,63, 3,62,75, 4,68,73,
- 4,71,65, 3,62,76, 4,71,67, 7,53,72, 3,62,73, 3,62,78, 3,62,79, 3,63,79,
- 3,64,49, 5,81,53, 7,57,71, 3,63,77, 7,57,72, 3,63,80, 5,84,53, 4,75,10,
- 5,86,63, 4,75, 7, 3,64,46, 3,64,48, 3,65, 3, 3,65, 1, 4,76,16, 3,65, 4,
- 3,65,78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,28,69,
- 4,27,71,15,31,86, 4,33,41, 4,62,18, 3,25,59, 4,21,92, 3,31,74, 4,27,75,
- 3,31,78, 3,31,75, 3,37,27, 4,33,48, 4,33,46, 4,40, 3, 3,42,27, 3,42,31,
- 3,42,26, 5,42,78, 3,42,28, 0, 0, 0, 7,10,38, 4,46,40, 3,47,52, 3,47,55,
- 4,52,47, 4,52,43, 3,51,31, 4,52,44, 3,51,33, 3,51,35, 3,51,38, 3,51,37,
- 7,20,83, 0, 0, 0, 4,57,46, 4,57,47, 4,57,52, 3,54,78, 3,54,76, 4,57,45,
- 0, 0, 0, 4,57,50, 4,71,70, 4,68,81, 5,81,59, 4,73,53, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 1,93, 3, 2,64, 3, 4,30, 5, 4,91, 6, 9,21, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 8,17, 4, 8,18, 3,10,90, 5,11,68, 4,11,58, 3,15,33, 4,11,57,
- 0, 0, 0, 4,16,32, 4,16,29, 3,20,21, 4,16,30, 3,20,23, 4,16,28, 0, 0, 0,
- 3,25,67, 3,25,61, 4,21,93, 3,25,64, 3,25,66, 3,25,68, 3,25,63, 3,31,79,
- 4,27,77, 3,31,84, 3,37,31, 3,37,30, 4,33,53, 4,33,52, 3,37,29, 3,37,33,
- 3,42,33, 3,42,32, 3,42,35, 3,42,34, 3,47,57, 3,47,56, 7,10,52, 3,51,39,
- 4,52,51, 0, 0, 0, 4,52,49, 0, 0, 0, 4,57,53, 0, 0, 0, 3,59,52, 4,68,83,
- 4,71,71, 3,20,24, 4,22, 4, 3,31,90, 3,31,86, 3,31,89, 3,31,87, 4,33,54,
- 3,37,36, 3,37,35, 3,37,37, 3,42,40, 3,47,61, 3,47,60, 3,51,43, 3,51,42,
- /* plane 0, page 74 */
- 0, 255, /* first, last */
- 3,50,24, 4,57,56, 3,54,82, 3,57,44, 3,59,53, 3,61,42, 3,59,54, 3,61,43,
- 4,73,54, 3,65,49, 3,66,32, 3,25,70, 3,31,93, 6,48,17, 3,37,40, 4,40,13,
- 4,40,17, 4,40,14, 3,42,42, 4,40,20, 3,42,43, 4,40,19, 6,67,91, 3,47,62,
- 3,47,65, 3,47,63, 0, 0, 0, 4,52,57, 3,51,47, 3,51,46, 4,57,64, 3,54,83,
- 3,54,87, 4,52,56, 3,54,86, 4,57,61, 4,57,63, 4,62,21, 3,57,45, 3,57,46,
- 4,62,22, 7,36,56, 7,36,64, 4,65,84, 4,65,83, 3,59,55, 3,59,56, 3,59,57,
- 4,68,85, 3,61,45, 4,73,56, 4,73,58, 4,73,59, 3,64,56, 3,65,51, 3,65, 7,
- 3,65,50, 3,66, 4, 3,66,36, 3,66,38, 4,73,60, 4,22, 8, 4,22,10, 4,27,84,
- 4,46,44, 4,68,91, 4,33,58, 3,37,42, 0, 0, 0, 3,42,45, 4,40,24, 4,40,23,
- 4,52,61, 4,52,60, 4,57,66, 4,68,92, 4,71,78, 5,81,67, 0, 0, 0, 4,76,19,
- 4,27,89, 3,32, 3, 4,27,86, 3,37,45, 4,33,61, 4,33,63, 3,37,44,15,38,18,
- 6,58, 8, 4,40,26, 4,40,32, 4,40,27, 3,42,47, 3,42,48, 4,40,29, 4,46,47,
- 4,52,67, 4,52,65, 4,52,64, 4,52,68, 4,52,66, 4,57,67, 4,52,72, 3,51,50,
- 3,54,92, 4,57,72, 4,57,68, 7,29,54, 3,54,89, 3,54,93, 3,54,94, 4,62,30,
- 5,69,94, 4,62,34, 4,62,28, 5,69,83, 5,69,91, 4,62,27, 4,62,33, 3,59,60,
- 3,59,59, 4,65,87, 4,65,91, 3,59,58, 4,69, 3, 4,68,94, 5,78,41, 7,54, 7,
- 7,54, 5, 4,71,82, 4,71,80, 5,81,73, 7,54, 6, 3,63,84, 5,84,66, 4,75,12,
- 3,64,58, 4,76,20, 4,77,13, 3,65,52, 4,77,69, 3,65,80, 4,78, 2, 4,33,65,
- 4,40,35, 4,40,33, 4,40,34, 4,40,36, 3,51,52, 4,57,75, 7,36,87, 4,62,37,
- 3,57,50, 4,65,93, 4,65,94, 4,71,83, 4,73,64, 3,64,59, 3,37,46, 0, 0, 0,
- 3,55, 1, 3,59,67, 3,59,66, 3,61,50, 4,71,85, 4,75,13, 3,32, 5, 3,32, 6,
- 3,32, 7, 3,37,49, 0, 0, 0, 4,52,74, 4,52,73, 3,57,51, 4,66, 2, 4,66, 3,
- 3,63,85, 4,27,91,15,32,13, 4,33,69, 4,33,68, 5,36,20, 5,43,30, 4,40,45,
- 3,42,49, 4,40,46, 3,42,51, 4,40,44, 4,40,43, 5,43,31, 4,40,39, 3,47,72,
- 4,46,57, 4,46,60, 5,50,64, 4,52,77, 4,52,79, 3,51,54, 4,46,61, 3,51,64,
- 3,51,55, 3,51,62, 7,21,49, 3,55, 5, 4,57,83, 7,29,73, 3,55, 2, 4,57,87,
- 3,55, 3, 3,55, 4, 3,55, 7, 3,55, 9, 4,62,46, 3,57,52, 4,62,41, 4,62,39,
- 4,62,43, 3,57,55, 3,57,53, 4,62,45, 4,62,44, 3,57,58, 4,66, 7, 4,66, 9,
- 4,66,13, 4,66, 6, 4,66,12, 3,59,68, 4,66, 5, 4,66,15, 4,66, 8, 4,66,11,
- 4,69,15, 4,69,17, 4,69,16, 3,61,52, 4,71,87, 4,71,89, 4,71,86, 4,71,92,
- 4,71,91, 7,54,18, 4,73,67, 3,63,86, 4,73,66, 4,76,25, 5,88,40, 3,65,53,
- 4,22,11, 4,27,94, 3,37,51, 4,33,77, 4,33,82, 4,33,78, 4,40,49, 4,40,54,
- /* plane 0, page 75 */
- 0, 255, /* first, last */
- 4,40,57, 4,40,48, 4,40,52, 3,42,55, 4,46,64, 4,46,65, 4,52,86, 4,52,87,
- 4,52,83, 4,52,84, 4,52,85, 4,57,93, 4,58, 2, 4,58, 1, 4,57,92, 4,57,90,
- 4,57,94, 4,62,49, 7,36,94, 4,62,48, 4,62,50, 3,57,61, 3,57,62, 3,57,63,
- 4,66,18, 3,59,71, 3,59,70, 4,69,22, 3,61,53, 4,71,94, 4,75,16, 4,76,26,
- 3,55,11, 3,57,64, 3,20,26, 4,22,12, 3,32, 9, 3,32,10, 4,28, 4, 3,32, 8,
- 4,28, 5, 3,37,61, 3,32,12, 4,33,87, 4,33,84, 3,42,60, 3,37,62, 4,33,85,
- 3,37,54, 3,37,53, 3,37,58, 4,33,89, 4,33,90, 3,42,56, 3,42,57, 4,40,59,
- 7,11,24, 3,42,58, 4,40,60, 6,68,32, 3,47,74, 4,46,69, 4,46,68, 4,46,71,
- 4,46,70, 4,52,88, 4,46,73, 4,52,92, 4,52,93, 4,52,90, 4,58, 7, 4,53, 2,
- 4,58, 8, 4,58,10, 5,64,17, 3,55,13, 3,57,68, 5,64,12, 3,55,12, 0, 0, 0,
- 4,62,56, 4,62,55, 4,62,59, 4,62,57, 4,62,58, 4,69,25, 4,66,22, 3,59,72,
- 4,69,28, 4,69,27, 3,61,55, 3,61,57, 0, 0, 0, 4,72, 4, 4,72, 3, 3,62,93,
- 4,72, 2, 4,73,71, 4,73,69, 3,63,87, 4,73,72, 4,75,17, 3,65,54, 4,77,16,
- 4,77,71, 4,78, 5, 0, 0, 0, 3,47,76, 3,51,71, 4,62,63, 4,66,28, 4,40,61,
- 3,55,15, 4,53, 6, 3,55,14, 3,65,81, 3,32,13, 5,36,42, 3,37,64, 4,40,62,
- 3,42,69, 4,40,63, 3,42,63, 3,42,71, 3,42,72, 3,42,75, 3,42,73, 4,46,79,
- 3,47,81, 3,47,80, 4,46,78, 3,47,79, 4,46,77, 4,46,80, 3,51,79, 3,51,78,
- 3,51,77, 5,58,12, 3,51,73, 4,53,13, 5,58,14, 7,22, 8, 4,58,14, 3,55,18,
- 3,55,21, 4,58,13, 3,55,17, 4,62,71, 5,74,78, 4,62,66, 3,57,72, 4,62,72,
- 3,57,73, 4,62,67, 4,62,69, 3,57,76, 4,66,33, 4,66,31, 3,59,74, 4,66,38,
- 4,66,32, 4,66,36, 4,66,37, 4,69,33, 4,69,32, 3,61,61, 3,61,59, 4,69,39,
- 5,78,70, 5,78,77, 3,61,60, 4,72, 9, 4,72,10, 4,72,11, 4,72,13, 3,63, 3,
- 5,82,13, 4,72, 8, 7,58,30, 5,84,86, 4,73,75, 4,73,73, 3,63,90, 4,75,19,
- 4,75,20, 4,75,18, 3,65,11, 7,64,14, 7,64,13, 3,65,55, 4,77,72, 3,66, 7,
- 4,78,31, 3,66,23, 4,78,55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,25,73, 3,32,14,
- 4,40,66, 3,42,77, 3,47,85, 4,46,85, 4,46,83, 4,46,86, 3,47,88, 3,51,82,
- 3,51,83, 4,53,16, 4,53,18, 4,53,15, 4,53,14, 3,55,25, 4,58,17, 4,58,21,
- 4,58,16, 3,55,24, 4,58,19, 5,70,49, 4,62,78, 3,59,80, 4,66,40, 4,66,39,
- 4,69,41, 3,61,63, 4,72,16, 4,73,78, 4,75,21, 4,76,30, 4,77,19, 3,32,16,
- 4,34, 2, 0, 0, 0, 4,66,42, 5,84,90, 7,68,85, 3,32,17, 5,29,50, 6,68,62,
- 4,40,74, 4,40,73, 4,40,71, 3,42,84, 5,43,57, 4,46,91, 3,47,90, 4,53,21,
- 4,53,22, 4,58,24, 3,55,29, 0, 0, 0, 4,58,27, 4,62,80, 4,62,83, 3,57,78,
- /* plane 0, page 76 */
- 0, 255, /* first, last */
- 4,62,84, 4,62,86, 4,62,85, 4,62,87, 4,66,46, 3,59,82, 4,66,44, 0, 0, 0,
- 4,69,45, 4,69,47, 4,69,46, 7,49,89, 5,82,31, 3,63, 6, 4,73,82, 4,76,35,
- 4,76,33, 3,65,13, 5,88,50, 4,77,21, 7,65,74, 4,77,73, 4,78,41, 7,49,93,
- 5,82,33, 3,42,87, 3,42,86, 3,45,30, 3,51,86, 7,58,43, 3,65,56, 3,42,89,
- 4,47, 4, 4,47, 5, 4,53,31, 3,51,87, 4,62,94, 3,57,80, 4,62,93, 4,62,92,
- 3,59,83, 5,70,72, 3,61,69, 4,73,87, 4,73,86, 7,58,47, 0, 0, 0, 4,76,40,
- 4,76,41, 4,78,56, 5,29,52, 0, 0, 0, 4,40,77, 5,43,68, 0, 0, 0, 4,47, 8,
- 4,47,20, 3,48, 1, 7,11,74, 4,47,25, 4,47,18, 4,47,11, 4,47, 9, 3,52, 7,
- 4,53,36, 4,53,34, 4,53,40, 3,51,94, 3,52, 8, 4,53,33, 3,52, 6, 3,52, 4,
- 3,52, 2, 3,51,91, 4,58,32, 3,55,33, 4,63, 1, 7,30,41, 4,58,34, 3,57,82,
- 4,63, 3, 5,70,78, 4,63, 7, 4,63, 5, 3,57,88, 4,63, 4, 3,57,87, 4,63, 9,
- 4,63,11, 4,66,61, 5,75,21, 4,66,71, 4,66,55, 4,66,65, 4,66,57, 4,66,52,
- 3,59,86, 5,75,17, 4,66,66, 5,75,11, 4,66,64, 4,66,68, 3,59,88, 3,59,91,
- 3,59,92,15,68,82, 0, 0, 0, 3,61,87, 4,69,53, 7,50,17, 4,69,59, 3,61,76,
- 7,50,19, 4,69,51, 3,61,75, 3,61,77, 0, 0, 0, 4,72,29, 3,63,13, 3,63,16,
- 4,72,28, 3,63,14, 3,63,11, 4,72,26, 3,63, 9, 3,63,15, 4,73,93, 3,63,93,
- 4,74, 1, 4,73,92, 3,63,92, 4,73,94, 3,64, 4, 4,73,91, 3,64, 1, 0, 0, 0,
- 15,74,31, 4,75,28, 4,75,29, 4,75,32, 4,75,27, 7,62, 3, 3,64,71, 3,64,68,
- 5,88,59, 5,88,54, 3,65,16, 4,76,45, 4,76,46, 5,87, 4, 3,65,58, 4,77,25,
- 0, 0, 0, 3,65,17, 4,78,12, 4,78,13, 4,78,59, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,37,69, 3,42,90, 3,42,91,
- 3,42,92, 3,42,94, 5,43,75, 3,42,93, 5,51,24, 4,47,31, 3,48, 3, 4,47,36,
- 4,47,27, 7,11,77, 4,47,32, 3,48, 8, 3,48, 9, 3,48, 6, 0, 0, 0, 3,44,67,
- 4,47,33, 4,53,46, 3,52,15, 4,53,45, 3,52,16, 4,53,47, 3,52,11, 4,53,52,
- 7,22,42, 4,53,42, 3,52,14, 4,53,55, 3,55,43, 4,53,43, 3,52,17, 4,53,53,
- 3,52,20, 4,53,48, 7,22,49, 3,54,19, 3,55,44, 4,58,49, 3,55,39, 3,55,41,
- 3,55,38, 4,58,50, 3,55,46, 4,58,48, 4,63,15, 4,63,21, 4,63,12, 3,58, 1,
- 3,57,92, 4,63,18, 4,63,17, 5,71, 6, 4,63,24, 4,66,74, 3,60, 1, 4,66,76,
- 4,69,65, 3,60, 8, 4,66,79, 5,75,28, 4,63,22,15,68,85, 3,61,88, 4,69,76,
- 3,61,93, 3,61,91, 4,69,74, 4,69,68, 3,61,92, 7,50,34, 4,69,66, 4,69,75,
- 3,61,94, 3,63,20, 4,72,32, 4,72,34, 4,72,33, 5,82,67, 3,63,19, 4,74, 7,
- 4,74,12, 0, 0, 0, 3,64, 8, 4,74, 6, 3,64, 6, 3,64, 7, 4,75,37, 3,64,75,
- /* plane 0, page 77 */
- 0, 181, /* first, last */
- 5,87,12, 4,75,36, 5,87,20, 4,75,39, 3,64,74, 3,64,73, 4,75,40, 4,76,48,
- 4,76,50, 4,76,49, 3,65,22, 4,76,52, 4,77,29, 3,65,60, 7,67,23, 3,66,10,
- 3,66,30, 4,78,57, 3,66,35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,47,39, 4,63,25, 7,55, 9, 4,75,45, 5,89,83, 5,43,77,
- 4,47,41, 4,47,42, 3,48,13, 3,52,24, 4,53,56, 7,22,60, 3,58, 3, 4,66,82,
- 0, 0, 0, 3,63,25, 3,65,23, 3,65,24, 4,40,83, 4,40,84, 3,43, 1, 4,47,45,
- 4,47,43, 4,53,57, 4,53,60, 4,53,58, 4,53,61, 3,55,47, 4,63,28, 4,63,27,
- 3,58, 7, 4,66,89, 4,66,86, 4,66,93, 4,66,87, 4,66,92, 4,72,41, 4,72,40,
- 4,72,42, 5,85,45, 5,85,40, 4,75,46, 3,65,25, 7,58,93, 4,77,33, 7,12,17,
- 4,69,81, 4,69,82, 7,22,69, 4,63,29, 4,67, 1, 4,69,86, 4,72,43, 4,75,50,
- 4,76,58, 7,12,19, 4,53,62, 7,22,71, 5,79,50, 4,69,89, 5,79,52, 4,72,44,
- 4,72,46, 4,72,45, 4,74,17, 4,75,53, 4,77,34, 4,34,12, 3,43, 3, 4,47,50,
- 4,47,51, 4,53,63, 4,58,63, 5,65, 3, 5,71,32, 5,71,29, 4,63,31, 5,71,33,
- 4,67, 3, 3,60,11, 4,69,92, 4,70, 1, 4,69,93, 5,79,56, 4,72,50, 3,63,27,
- 4,75,54, 4,76,59, 4,77,36, 3,65,62, 4,77,35, 4,77,79, 4,63,32, 3,60,12,
- 4,74,23, 3,65,26, 4,53,65, 4,76,65, 4,76,66, 4,63,35, 4,63,34, 4,63,36,
- 4,67, 6, 4,72,57, 4,53,66, 4,58,67, 4,63,37, 4,67, 7, 4,72,58, 3,64,10,
- 4,75,56, 4,75,59, 3,58,12, 4,63,38, 3,62, 3, 7,50,71, 5,79,65, 4,72,60,
- 4,78,17, 5,91,90, 4,58,70, 5,65,13, 4,63,40, 4,67, 9, 4,67,11, 4,70, 7,
- 4,70, 5, 4,70, 6, 3,63,29, 4,72,65, 4,74,29, 4,74,28, 3,64,78, 5,87,45,
- 4,76,73, 4,76,70, 4,76,74, 4,77,44, 4,77,43, 4,77,80, 3,65,86, 3,66,11,
- 3,66,18, 4,78,43, 4,78,44, 4,78,58, 5,85,65, 0, 0, 0, 0, 0, 0, 5,75,73,
- 5,76,36, 4,72,66, 0, 0, 0, 4,72,67, 4,77,49, 3,66,12,
- /* plane 0, page 78 */
- 0, 255, /* first, last */
- 1,36, 1, 1,36, 3, 4, 1, 6, 1,36, 4, 3, 1, 6, 3, 1, 5, 0, 0, 0, 2, 1, 6,
- 1,36,23, 1,36,21, 1,36,24, 1,36,22, 2, 1, 7, 1,36,66, 2, 1,15, 2, 1,13,
- 1,36,65, 1,36,64, 4, 1,25, 0, 0, 0, 1,37,66, 1,37,65, 1,37,64, 4, 1,53,
- 1,37,67, 1,37,63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,39, 2, 1,39, 3,
- 3, 2,66, 3, 2,65, 3, 2,67, 4, 3,21, 3, 4,31, 0, 0, 0, 1,43,68, 0, 0, 0,
- 3, 1, 1, 4, 1, 7, 3, 1,12, 1,36,25, 0, 0, 0, 1,36,67, 2, 1,16, 4, 1,26,
- 1,36,68, 2, 1,35, 1,40,75, 2, 5,17, 0, 0, 0, 4,11,62, 3, 1, 2, 0, 0, 0,
- 1,36,26, 1,36,69, 0, 0, 0, 1,37,68, 2, 1,36, 3, 7,32, 0, 0, 0, 3, 1, 3,
- 4, 1, 2, 4, 1, 3, 2, 1, 1, 1,36, 5, 0, 0, 0, 1,36,28, 3, 1,16, 2, 1, 8,
- 1,36,29, 3, 1,14, 0, 0, 0, 1,36,70, 0, 0, 0, 1,37,69, 1,37,71, 1,37,70,
- 0, 0, 0, 4, 2, 7, 1,39, 4, 1,39, 5, 3, 3,37, 0, 0, 0, 1,43,69, 3,11, 2,
- 1,51,93, 1,36, 2, 4, 1, 4, 0, 0, 0, 2, 1, 2, 1,36, 6, 1,36,31, 1,36,30,
- 0, 0, 0, 0, 0, 0, 3, 1,38, 3, 1,37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 2,68, 1,39, 6, 4, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 3, 4,32, 0, 0, 0, 1,43,70, 4, 5,17, 4, 5,16, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 3,11, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,56,81, 2,19,46,
- 3,25,76, 3,25,78, 1,67,10, 2,33,54, 2,33,55, 3, 1, 4, 1,36, 7, 3, 1,13,
- 1,36,72, 3, 2,69, 0, 0, 0, 1,43,71, 1,36, 8, 2, 1, 9, 1,36,32, 3, 1,17,
- 0, 0, 0, 1,36,73, 1,36,75, 2, 1,17, 1,36,76, 1,36,74, 4, 1,27, 3, 1,76,
- 3, 2,70, 1,39, 7, 0, 0, 0, 1,43,72, 3, 4,34, 3, 7,34, 1,43,73, 1,47,71,
- 1, 7, 8, 1,36,33, 1,36,77, 3, 1,39, 1,39, 8, 1,39,10, 1,39, 9, 0, 0, 0,
- 1,40,76, 0, 0, 0, 0, 0, 0, 1,43,74, 1,43,75, 1,47,72, 1,47,73, 3,11, 6,
- 3,11, 5, 3,11, 7, 3,11, 4, 1,51,94, 4,22,14, 0, 0, 0, 2,33,56, 3,32,19,
- 0, 0, 0, 2,77,36, 1,36, 9, 0, 0, 0, 3, 1,18, 0, 0, 0, 3, 1,19, 0, 0, 0,
- 1,36,79, 1,36,78, 2, 1,18, 1,36,80, 1,36,86, 3, 1,41, 1,36,81, 1,36,82,
- 2, 1,20, 2, 1,19, 1,36,84, 1,36,85, 3, 1,44, 1,36,83, 3, 1,43, 3, 1,42,
- 4, 1,28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,37,74, 1,37,75, 1,37,76, 1,37,77,
- 1,37,73, 1,37,80, 2, 1,42, 4, 1,59, 2, 1,38, 2, 1,41, 1,37,81, 1,38, 3,
- 3, 1,77, 2, 1,40, 4, 1,58, 1,37,78, 1,37,79, 1,37,72, 3, 1,82, 3, 1,80,
- 2, 1,37, 2, 1,39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,79, 3, 2,72,
- 1,39,23, 2, 1,79, 1,39,20, 1,39,24, 2, 1,89, 2, 1,77, 1,39,21, 2, 1,81,
- 3, 2,75, 3, 2,71, 3, 2,86, 1,39,22, 3, 2,78, 1,39,25, 4, 2,13, 1,39,11,
- /* plane 0, page 79 */
- 0, 255, /* first, last */
- 2, 1,80, 1,39,26, 2, 1,84, 3, 2,77, 2, 1,88, 2, 1,85, 3, 2,76, 3, 2,84,
- 2, 1,82, 1,39,12, 1,39,14, 1,39,27, 4, 2,10, 1,39,16, 2, 1,74, 1,39,19,
- 1,39,17, 1,39,18, 2, 1,90, 2, 1,87, 2, 1,78, 1,39,15, 3, 2,80, 3, 2,87,
- 2, 1,75, 1,39,13, 3, 2,85, 4, 2,14, 3, 2,83, 2, 1,83, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 1,86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 2,82,15, 1,81, 0, 0, 0, 0, 0, 0, 2, 1,76, 2, 3, 8, 4, 3,25, 1,41, 4,
- 1,40,85, 3, 4,48, 3, 4,40, 2, 3, 9, 1,40,82, 3, 4,47, 1,41, 6, 3, 4,38,
- 1,40,90, 3, 4,37, 1,40,89, 2, 2,91, 1,40,93, 1,40,88, 2, 3, 2, 2, 3,10,
- 3, 4,46, 2, 3, 6, 3, 4,41, 1,40,91, 3, 4,43, 3, 4,35, 1,40,94, 1,40,79,
- 1,41, 9, 2, 2,93, 3, 4,36, 3, 4,44, 2, 5,29, 1,40,77, 1,41, 5, 1,40,78,
- 1,40,86, 1,40,87, 2, 3, 4, 2, 2,94, 1,40,92, 1,40,84, 2, 2,90, 1,40,80,
- 2, 3, 7, 1,41, 7, 1,41,10, 1,40,83, 1,41, 2, 1,41, 8, 1,40,81, 2, 3, 5,
- 1,41, 3, 2, 3,11, 2, 2,92, 1,41, 1, 2, 3, 1, 0, 0, 0, 3,68,40, 2, 3, 3,
- 3,68,41, 1,43,89, 2, 5,31, 2, 5,43, 1,43,81, 3, 7,39, 2, 5,44, 1,43,76,
- 1,43,86, 4, 5,30, 3, 7,47, 1,43,79, 2, 5,25, 1,43,87, 2, 5,24, 2, 5,28,
- 2, 5,35, 2, 5,33, 1,44, 1, 1,43,90, 2, 5,19, 2, 5,21, 1,43,92, 1,43,80,
- 2, 5,22, 2, 5,34, 2, 5,41, 1,43,85, 2, 5,27, 2, 5,20, 1,43,84, 2, 5,23,
- 1,43,88, 2, 5,26, 3, 7,36, 1,43,83, 3, 7,49, 1,43,78, 3, 7,40, 1,43,93,
- 2, 5,36, 1,43,94, 2, 5,40, 3, 7,35, 2, 5,38, 2, 5,42, 1,43,91, 2, 5,30,
- 2, 5,18, 4, 5,22, 2, 5,32, 1,43,82, 2, 5,37, 1,43,77, 2, 5,39, 3, 7,44,
- 3, 7,41, 3, 7,43, 3, 7,42, 3, 7,45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 5,36, 0, 0, 0, 0, 0, 0, 1,47,88, 1,47,76,
- 3,11,13, 3,11,14, 2, 9, 2, 2, 9,10, 3,11,22, 1,47,75, 1,47,83, 1,48, 1,
- 3,11,12, 2, 9,16, 2, 9,14, 2, 9, 9, 4, 8,24, 4, 8,30, 3,11,11, 1,47,77,
- 2, 9,15, 2, 9, 5, 1,47,91, 1,47,82, 1,47,90, 2, 8,94, 3,11,18, 2, 9,12,
- 3,11,15, 2, 9, 3, 1,47,86, 2, 9, 4, 3,11,19, 2, 8,93, 1,47,93, 1,47,80,
- 1,47,89, 1,47,79, 3,11, 8, 2, 9, 1, 2, 9, 6, 3,11, 9, 2, 9,13, 1,47,87,
- 1,47,84, 2, 9, 8, 1,47,92, 2, 9,11, 2, 9, 7, 1,47,81, 1,47,94, 1,47,85,
- 1,47,78, 1,47,74, 4, 8,31, 3,11,21,15, 9,13, 3,11,20, 0, 0, 0, 3,68,42,
- 0, 0, 0, 4, 8,29, 0, 0, 0, 0, 0, 0, 2, 9,17, 0, 0, 0, 1,52,26, 1,52, 4,
- 3,15,40, 1,52,20, 3,15,45, 1,52,25, 2,13,81, 2,13,80, 2,13,85, 2,13,86,
- 1,52, 7, 3,15,36, 1,52,16, 3,15,56, 3,15,44, 3,15,54, 1,52,29, 3,15,38,
- /* plane 0, page 80 */
- 0, 255, /* first, last */
- 1,52,17, 4,11,66, 3,15,43, 3,15,41, 3,15,39, 2,13,74, 1,52,10, 2,13,75,
- 3,15,47, 1,52,31, 4,11,68, 1,52,22, 1,52, 1, 1,52, 2, 2,13,94, 1,57, 4,
- 3,15,51, 1,52,15, 1,52,14, 2,13,76, 1,52,18, 2,19,62, 1,52, 9, 2,13,87,
- 1,52,24, 1,52,23, 1,52,13, 2,13,79, 2,13,88, 3,15,37, 2,13,73, 1,52,12,
- 2,13,89, 1,52,21, 2,13,77, 1,52, 3, 3,15,46, 1,52, 6, 1,52, 5, 2,13,90,
- 1,52,19, 1,52, 8, 1,52,28, 1,52,30, 2,13,84, 1,52,27, 3,15,49, 2,13,92,
- 2,13,78, 2,13,93, 3,15,35, 2,13,82, 4,11,65, 2,13,91, 3,15,48, 2,13,83,
- 3,15,52, 3,15,53, 0, 0, 0, 0, 0, 0, 1,52,11, 0, 0, 0, 0, 0, 0, 3,68,43,
- 2,19,70, 2,19,58, 3,20,28, 1,56,86, 3,20,31, 2,19,63, 2,19,69, 1,56,85,
- 2,19,56, 1,56,89, 2,19,60, 2,19,53, 1,56,87, 2,19,57, 1,56,92, 1,57, 3,
- 3,20,36, 2,19,74, 3,20,33, 2,19,52, 3,20,34, 1,56,93, 3,15,55, 2,19,73,
- 3,20,39, 3,20,29, 1,56,88, 2,19,59, 1,56,84, 2,19,54, 2,19,50, 2,19,64,
- 2,19,51, 2,19,49, 2,19,61, 2,19,67, 2,19,68, 1,56,90, 3,20,32, 4,16,39,
- 2,26,31, 2,19,65, 2,19,48, 2,19,66, 3,20,43, 1,57, 6, 2,19,71, 1,57, 5,
- 2,19,47, 3,20,35, 2,19,55, 2,19,72, 1,57, 1, 1,56,94, 1,56,91, 1,57, 2,
- 3,20,44, 3,20,42, 1,56,82, 3,20,37, 3,20,38, 1,56,83, 0, 0, 0, 0, 0, 0,
- 1,62,14, 3,25,85, 2,26,34, 2,26,27, 4,22,20, 1,62,11, 4,22,19, 2,26,35,
- 3,25,81, 3,25,82, 4,22,22, 2,26,25, 2,26,28, 1,62,10, 2,26,29, 3,25,79,
- 4,22,17, 1,62,13, 2,26,33, 4,22,28, 2,26,23, 2,26,22, 1,62,15, 3,25,80,
- 1,62,16, 1,62,12, 1,62,17, 2,26,21, 2,26,32, 2,26,30, 2,26,24, 4,22,25,
- 4,22,16, 4,22,26, 1,62, 9, 2,26,26, 0, 0, 0, 0, 0, 0, 3,68,45, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3,32,25, 3,32,28, 1,67,17, 1,67,11, 2,33,60, 1,67,20,
- 2,33,66, 2,33,69, 1,67,13, 1,67,14, 2,33,63, 1,67,12, 2,33,72, 1,67,18,
- 2,33,73, 3,32,26, 2,33,68, 1,67,19, 3,32,23, 2,33,57, 1,67,16, 2,33,58,
- 4,28, 9, 2,33,67, 2,33,65, 3,32,29, 2,33,61, 1,67,15, 2,33,59, 1,67,21,
- 2,33,64, 2,33,71, 2,33,62, 2,33,70, 3,32,22, 3,32,30, 1,71,92, 1,71,89,
- 3,37,75, 1,71,90, 4,34,13, 2,41, 1, 2,40,87, 1,71,88, 1,71,85, 2,40,88,
- 3,37,78, 3,37,76, 1,71,87, 2,40,91, 3,37,77, 2,40,93, 3,37,86, 4,34,21,
- 2,41, 6, 3,37,80, 3,37,85, 2,41, 5, 2,40,94, 1,71,84, 2,40,86, 1,71,82,
- 2,40,89, 1,71,93, 2,40,92, 3,37,81, 2,41, 2, 1,71,86, 1,71,83, 2,41, 4,
- 2,41, 3, 1,71,91, 0, 0, 0, 2,40,90, 3,37,84, 1,76, 3, 2,47,52, 3,43, 9,
- 2,47,49, 1,76, 4, 4,40,89, 1,76, 2, 3,43,11, 2,47,56, 2,47,53, 2,47,46,
- /* plane 0, page 81 */
- 0, 254, /* first, last */
- 1,76, 1, 3,43,13, 1,76, 5, 2,47,47, 1,75,94, 1,76, 8, 2,47,50, 2,47,51,
- 1,76, 6, 1,76, 7, 2,47,57, 2,47,54, 2,47,55, 3,43,12, 3,43, 7, 3,68,46,
- 1,80,19, 2,54,35, 1,80,16, 2,54,32, 1,80,18, 1,80,20, 3,48,17, 2,54,33,
- 1,80,17, 4,47,58, 2,54,34, 3,48,21, 2,54,31, 3,48,16, 3,48,20, 1,83,33,
- 2,60,41, 1,83,34, 2,60,39, 4,53,69, 2,60,40, 2,60,38, 2,60,37, 3,52,33,
- 3,52,32, 2,60,42, 1,83,32, 3,48,19, 4,53,73, 2,65,36, 2,65,37, 3,55,50,
- 2,47,48, 2,65,35, 1,83,35, 1,88,11, 2,69,23, 2,69,24, 3,60,18, 1,90,66,
- 1,90,67, 2,75,47, 2,75,46, 1,91,56, 1,91,55, 2,78,93, 3,64,79, 1,36,10,
- 1,36,34, 1,36,88, 4, 1,29, 1,36,87, 1,37,83, 1,37,82, 1,39,30, 1,39,29,
- 1,39,31, 1,39,28, 3, 2,88, 1,41,12, 1,41,11, 1,41,13, 3, 4,52, 4, 3,27,
- 3, 4,51, 3, 4,49, 1,44, 3, 4, 5,31, 1,44, 2, 1,44, 4, 3, 7,50, 1,48, 2,
- 4, 8,32, 1, 2,89, 2,14, 1, 1, 2,90, 1,57, 7, 1, 2,92, 1, 2,91, 2,26,36,
- 3,25,86, 1, 2,93, 1,71,94, 1, 2,94, 3,62, 5, 1,36,11, 3, 1,20, 1,36,89,
- 1,39,32, 1,44, 5, 3,11,23, 1,36,12, 1,36,92, 1,36,90, 1,36,91, 0, 0, 0,
- 0, 0, 0, 1,39,33, 3, 2,90, 4, 2,20, 0, 0, 0, 1,41,14, 1,44, 7, 1,44, 6,
- 1,44, 8, 3,14,91, 0, 0, 0, 0, 0, 0, 1,52,32, 0, 0, 0, 3,32,31, 3,68,51,
- 1,80,21, 0, 0, 0, 3, 1, 7, 4, 1,30, 3, 1,45, 3, 1,40, 3, 1,46, 2, 1,14,
- 4, 1,50, 1,37,84, 1,37,85, 3, 1,88, 3, 1,89, 1,39,34, 4, 2,22, 2, 3,12,
- 3, 7,53, 1,48, 4, 1,48, 3, 2,14, 3, 2,14, 2, 1,57, 8, 3, 1, 8, 1,36,93,
- 2, 1,21, 3, 1,90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4,55, 2, 5,45, 3,11,25,
- 1,48, 5, 3,15,59, 1,52,35, 3,15,57, 1,52,33, 1,52,34, 3,15,58, 0, 0, 0,
- 3,20,45,15,38,60, 1,80,22, 1, 7,15, 1,37,86, 4, 1,62, 0, 0, 0, 0, 0, 0,
- 1,39,35, 2, 1,91, 3, 2,94, 3, 2,93, 3, 2,92, 3, 4,57, 1,41,15, 1,41,16,
- 3, 4,58, 2, 3,13, 4, 3,29, 0, 0, 0, 2, 5,46, 1,44, 9, 2, 5,47, 4, 5,32,
- 4, 5,35, 3,11,27, 3,11,29, 3,11,30, 2,14, 5, 2,14, 6, 1,52,38, 3,15,62,
- 2,14, 7, 3,15,63, 2,14, 4, 1,52,39, 1,52,37, 1,52,36, 2,14, 8, 3,20,47,
- 2,19,75, 3,20,46, 3,25,93, 3,25,90, 2,26,37, 4,22,31, 3,25,94, 2,33,74,
- 2,41, 7, 3,43,15, 3,43,14, 3,43,16, 1,76, 9, 1,80,23, 2,54,36, 3,52,34,
- 1,36,13, 1,36,27, 3, 1,15, 3, 1,21, 3, 1,49, 3, 1,91, 0, 0, 0, 0, 0, 0,
- 3, 3, 2, 0, 0, 0,15, 2,57, 0, 0, 0, 3, 4,59, 3, 7,57, 4, 5,37, 0, 0, 0,
- 1,57, 9, 1,62,19, 6,38,69, 1,72, 1, 3,37,90, 2, 1, 3, 1,36,94, 4, 1,64,
- 1,37,89, 1,37,87, 1,37,88, 0, 0, 0, 0, 0, 0, 1,44,10, 3, 7,58,
- /* plane 0, page 82 */
- 0, 255, /* first, last */
- 1,36,14, 1,36,15, 4, 1,10, 1,36,35, 3, 1,22, 3, 1,50, 1,37, 1, 1,37, 2,
- 1,37, 3, 2, 1,44, 1,37,90, 3, 1,93, 2, 1,43, 0, 0, 0, 1,39,39, 3, 3, 5,
- 2, 1,93, 1,39,37, 1,39,38, 2, 1,92, 3, 3, 4, 3, 3, 6, 1,39,40, 1,39,36,
- 3, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3,14, 1,47,47, 2, 3,15, 3, 4,63,
- 3, 4,65, 2, 3,16, 4, 3,32, 3, 4,60, 1,41,18, 1,41,17, 3, 4,62, 3, 4,61,
- 1,41,21, 1,41,19, 1,41,20, 3, 4,64, 0, 0, 0, 0, 0, 0, 1,44,16, 3, 7,59,
- 1,44,15, 2, 5,52, 2, 5,49, 2, 5,50, 3, 7,62, 2, 5,48, 1,44,17, 1,44,13,
- 1,44,12, 3, 7,63, 1,44,14, 1,44,11, 3, 7,61, 4, 5,46, 3,68,47, 0, 0, 0,
- 0, 0, 0, 1,44,18, 0, 0, 0, 1,48, 7, 2, 9,18, 3,11,31, 2, 5,51, 1,48,12,
- 3,11,32, 2, 9,19, 1,48, 8, 1,48,11, 1,48,10, 1,48, 9, 1,48, 6, 3,11,35,
- 0, 0, 0, 0, 0, 0, 2,14,11, 3,15,72, 1,52,42, 2,14,14, 1,52,40, 3,15,69,
- 4,11,78, 3,15,66, 2,14,10, 1,52,43, 1,52,41, 1,52,44, 2,14,12, 2,14,13,
- 3,15,64, 2,14, 9, 2,14,15, 3,15,70, 3,15,65, 3,15,67,15,14,13, 3,15,68,
- 3,20,48, 1,62,23, 1,57,10, 2,19,76, 2,19,78, 2,19,77, 2,19,79, 1,57,11,
- 3,26, 3, 0, 0, 0, 1,62,20, 3,26, 1, 1,62,21, 1,62,22, 3,20,49, 1,67,23,
- 2,33,76, 3,32,33, 2,33,75, 2,33,77, 2,33,78, 1,67,24, 3,32,32, 1,67,22,
- 2,41, 8, 2,41, 9, 1,72, 3, 1,72, 2, 2,44,65, 4,41, 5, 3,43,17, 1,76,10,
- 1,76,11, 1,76,12, 1,76,14, 2,47,58, 2,47,59, 1,76,13, 3,43,18, 0, 0, 0,
- 3,48,22, 1,80,24, 4,47,68, 1,80,25, 3,48,23, 4,53,77, 2,69,25, 2,75,49,
- 2,75,48, 2,78,94, 3,64,12, 1,36,16, 3, 1,23, 3, 1,52, 3, 1,51, 1,37,92,
- 1,37,91, 0, 0, 0, 0, 0, 0, 1,39,41, 4, 2,34, 4, 2,31, 2, 1,94, 4, 2,33,
- 3, 3, 8, 1,41,23, 1,41,24, 1,41,22, 1,41,25, 2, 3,17, 2, 3,18, 4, 3,38,
- 4, 3,39, 4, 3,40, 0, 0, 0, 3, 4,67, 3, 4,66, 3, 7,65, 5, 5,26, 5, 5,23,
- 5, 5,24, 3, 7,64, 5, 5,27, 1,44,20, 2, 5,53, 4, 5,48, 1,44,19, 3, 7,66,
- 2, 9,20, 1,48,16, 2, 9,21, 1,48,15, 3,11,40, 3,11,38, 4, 8,41, 1,48,13,
- 4, 8,43, 1,48,14, 3,11,39, 0, 0, 0, 3,15,79, 2,14,16, 3,15,76, 3,15,74,
- 3,15,77, 3,15,78, 1,57,12, 2,19,81, 3,20,50, 1,57,15, 2,19,80, 1,59,11,
- 1,57,14, 1,57,13, 0, 0, 0, 1,62,26, 5,22,74, 1,62,25, 1,62,24, 1,67,25,
- 3,32,37, 3,32,36, 1,67,28, 1,67,29, 1,67,27, 4,28,28, 1,67,26, 3,32,38,
- 5,36,71, 2,41,10, 3,38, 1, 2,41,11, 5,36,67, 3,37,94, 3,43,19, 2,47,61,
- 1,76,15, 2,47,60, 3,45,12, 1,80,26, 2,60,43, 1,83,36, 5,51,66, 2,69,26,
- 1,89,65, 1, 7,20, 1,36,36, 1,37, 4, 2, 1,22, 3, 1,53, 1,37, 5, 1,37, 6,
- /* plane 0, page 83 */
- 0, 255, /* first, last */
- 3, 1,54,15, 1,16, 0, 0, 0, 3, 2, 3, 3, 2, 2, 1,37,93, 1,37,94, 3, 2, 4,
- 1,39,42, 2, 3,19, 2, 5,54, 2, 5,55, 4, 5,49, 1,48,17, 2,14,17, 1,57,17,
- 1,57,16, 2,26,39, 2,26,38, 6,48,84, 3,48,24, 1,36,17, 1,37, 7, 1,38, 1,
- 4,16,62, 1,57,18, 2, 1, 4, 4, 1,69, 2, 1,45, 1,38, 2, 3, 2, 6, 2, 2, 2,
- 1,39,44, 1,39,43, 2, 2, 1, 1,41,26, 3,68,48, 3, 4,69, 0, 0, 0, 3,11,41,
- 4, 8,46, 4, 8,48, 1,52,45, 4,11,88, 4,16,63, 2,19,82, 0, 0, 0, 1,67,30,
- 2,41,12, 1,72, 4, 3,38, 3, 3,43,20, 2,54,37, 3,52,36, 3,60,20, 2,72,74,
- 3, 1, 9, 1,37, 8, 3, 1,55, 3, 4,70, 2, 5,56, 2, 9,22, 1,57,21, 1,57,19,
- 1,57,20, 1,36,18, 4, 1,16, 1,36,37, 1, 4,31, 1,37,11, 3, 1,57, 1,37,10,
- 1,37, 9, 1,38, 5, 1,38, 4, 3, 3,10, 2, 1,46, 2, 2, 3,15, 2,12, 3, 3,11,
- 3, 3,13, 1,44,24, 1,44,21, 1,44,23, 1,44,22, 3, 7,67, 0, 0, 0, 1,48,18,
- 3,11,42, 4,16,64, 1,62,27, 4,70,16, 1,36,19, 3, 1,58, 1,37,12, 3, 2, 7,
- 1,38, 7, 1,38, 6, 0, 0, 0, 2, 3,20, 4, 3,45, 3,68,49, 1,44,25, 3,10,60,
- 4,16,68, 3, 1,10, 4, 1,17, 0, 0, 0, 2, 1,23, 3, 2, 8, 1,38, 9, 1,38, 8,
- 1,39,45, 1,39,46, 2, 3,21, 1,41,27, 3, 4,71, 1,41,28, 3, 7,69, 1,44,26,
- 1,44,27, 1,44,28, 3, 7,70, 1,48,19, 2, 9,23, 3,11,43, 4,16,69, 1,52,46,
- 3,32,39, 0, 0, 0, 2, 1, 5, 4, 1,36, 1,37,13, 0, 0, 0, 3, 1,59, 4, 1,71,
- 4, 1,70, 3, 2, 9, 2, 2, 4, 3, 3,15, 0, 0, 0, 0, 0, 0, 2, 3,22, 2, 3,23,
- 0, 0, 0, 0, 0, 0, 2, 5,57, 3, 7,71, 2, 5,58, 0, 0, 0, 2, 9,25, 2, 9,24,
- 2, 9,27, 2, 9,26, 1,48,20, 3,68,50, 2,19,83, 1,52,48, 2,14,18, 1,52,47,
- 3,20,52, 4,16,72, 0, 0, 0, 0, 0, 0, 2,26,40, 1,62,28, 3,26, 8, 2,26,41,
- 3,26, 7, 3,32,42, 3,32,41, 3,32,40, 2,41,13, 1,72, 5, 3,38, 5, 4,28,32,
- 3,38, 6, 3,43,21, 1,76,16, 3,52,37, 2,69,27,15,77,14, 3, 1,11, 3, 1,60,
- 4, 1,37, 2, 1,24, 3, 2,10, 1,38,10, 0, 0, 0, 4, 2,40, 3, 3,17, 0, 0, 0,
- 4, 5,57, 3, 7,73, 3, 7,74, 1,57,22, 3,20,53, 3,26, 9, 0, 0, 0, 0, 0, 0,
- 1,36,20, 1,36,38, 1,37,15, 1,37,14, 3, 1,62, 1,37,16, 3, 1,64, 4, 1,73,
- 3, 2,11, 0, 0, 0, 3, 3,19, 4, 3,47, 1,44,30, 3, 7,75, 1,44,29, 1,44,31,
- 0, 0, 0, 3,11,48, 3,11,47, 1,48,21, 3,11,46, 3,11,45, 6,21,88, 1,52,49,
- 3,32,43, 2,54,38, 1,86,27, 1,36,39, 1,38,12, 1,38,27, 1,38,22, 4, 1,76,
- 1,38,17, 1,38,16, 1,38,23, 1,38,21, 1,38,14, 1,38,28, 1,38,15, 1,38,11,
- 1,38,26, 1,38,25, 1,38,24, 1,38,13, 3, 2,17, 1,38,20, 3, 2,13, 3, 2,14,
- 1,38,19, 3, 2,15,15, 1,48, 1,38,29, 1,38,18, 4, 1,74, 0, 0, 0, 3, 3,21,
- /* plane 0, page 84 */
- 0, 255, /* first, last */
- 3, 3,23, 1,39,52, 4, 2,44, 1,39,58, 1,39,54, 3, 3,25, 1,39,60, 2, 2, 5,
- 1,39,57, 1,39,47, 1,39,50, 1,39,53, 1,39,49, 1,39,56, 1,39,59, 1,39,48,
- 1,39,51, 1,39,55, 1,39,61, 3, 3,26, 0, 0, 0, 3, 3,27, 3, 3,20, 0, 0, 0,
- 2, 3,32, 2, 3,29, 3, 4,86, 1,41,41, 2, 3,30, 1,41,29, 1,41,31, 1,41,55,
- 1,41,50, 3, 4,89, 3, 4,94, 3, 4,85, 2, 3,37, 2, 3,31, 1,41,33, 1,41,35,
- 2, 3,36, 1,41,42, 2, 3,26, 1,41,54, 1,41,56, 1,41,30, 1,41,47, 3, 5, 4,
- 2, 3,24, 1,41,53, 3, 4,87, 1,41,38, 3, 4,91, 1,41,48, 1,41,49, 2, 3,25,
- 1,41,46, 1,41,44, 3, 4,80, 1,41,45, 1,41,51, 2, 3,33, 1,41,32, 3, 5, 1,
- 1,41,52, 2, 3,35, 1,41,40, 1,41,37, 3, 4,83, 2, 3,28, 1,41,36, 2, 3,38,
- 1,41,39, 3, 4,92, 1,41,43, 3, 4,88, 3, 4,84, 3, 4,77, 1,41,34, 2, 3,34,
- 3, 4,93, 3, 5, 2, 0, 0, 0, 0, 0, 0, 2, 3,27, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3, 5, 3, 0, 0, 0, 0, 0, 0, 4, 5,68, 4, 5,67, 3, 7,78,
- 2, 5,75, 2, 5,74, 1,44,49, 2, 5,77, 2, 5,79, 2, 5,68, 2, 5,71, 2, 5,78,
- 1,44,50, 3, 7,84, 3, 7,88, 2, 5,65, 2, 5,69, 3, 7,85, 4, 5,63, 2, 5,73,
- 2, 9,42, 1,44,45, 2, 9,46, 1,44,32, 2, 5,70, 1,44,33, 1,44,46, 1,44,39,
- 1,44,35, 3, 7,81, 2, 5,66, 1,44,38, 1,44,43, 1,44,52, 2, 5,67, 2, 5,60,
- 1,44,37, 2, 5,61, 2, 5,63, 4, 5,64, 1,44,40, 3, 7,76, 1,44,42, 2, 5,59,
- 2, 5,64, 3, 7,80, 3, 7,89, 1,44,51, 1,44,47, 2, 5,72, 1,44,53, 3, 7,83,
- 1,44,44, 2, 5,62, 1,44,41, 3, 7,79, 3, 7,87, 1,44,36, 1,44,34, 0, 0, 0,
- 2, 5,76, 0, 0, 0, 1,44,48, 0, 0, 0,15, 5,81, 0, 0, 0, 3,11,60, 3,11,61,
- 2, 9,41, 2, 9,29, 2, 9,44, 3,11,55, 3,11,57, 2, 9,31, 1,48,28, 1,48,42,
- 1,48,24, 1,48,41, 1,48,33, 1,48,38, 1,48,22, 2, 9,30, 2, 9,36, 1,48,37,
- 2, 9,48, 1,48,39, 3,11,59, 1,48,29, 3,11,52, 3,11,62, 2, 9,38, 2, 9,35,
- 1,48,27, 3,11,49, 2, 9,28, 1,48,40, 2, 9,43, 1,48,32, 2, 9,45, 1,48,43,
- 1,48,23, 1,48,34, 1,48,31, 2, 9,33, 1,48,35, 2, 9,39, 2, 9,40, 1,48,30,
- 1,48,36, 1,48,26, 3,11,53, 3,68,52, 3,11,67, 3,11,65, 1,48,25, 2, 9,32,
- 3,11,51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 9,37, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3,11,56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 9,47, 0, 0, 0,
- 2,14,38, 1,52,62, 2,14,20, 4,12,13, 2,14,25, 1,52,55, 1,52,66, 2,14,23,
- 1,52,50, 1,52,60, 1,52,65, 2,14,30, 4,12, 6, 1,52,61, 1,52,64, 3,15,87,
- 3,16, 1, 2,14,33, 1,52,56, 2,14,24, 3,15,84, 3,15,88, 3,16, 2, 2,14,36,
- 2,14,37, 3,15,89, 1,52,58, 2,14,35, 1,52,54, 1,52,69, 4,12, 9, 2,14,27,
- /* plane 0, page 85 */
- 0, 255, /* first, last */
- 3,15,91, 1,52,52, 3,15,90, 2,14,40, 2,14,28, 2,14,32, 1,52,57, 1,52,68,
- 2,14,29, 1,52,63, 2,14,34, 2,14,41, 2,20, 4, 3,15,83, 2,14,39, 1,52,70,
- 1,52,51, 2,14,31, 2,14,22, 3,15,86, 1,52,59, 4,12, 8, 4,12,14, 2,14,21,
- 3,15,94, 3,16, 5, 2,14,26,15, 9,52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,14,34,15,14,42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,14,19, 1,52,67,
- 3,71, 1, 3,20,63, 2,19,90, 3,20,72, 1,57,41, 2,20,10, 1,57,39, 1,57,36,
- 2,20, 1, 1,57,32, 2,20, 5, 1,57,43, 2,19,89, 2,19,94, 2,19,93, 1,52,53,
- 1,57,38, 2,20, 8, 3,20,70, 2,20,11, 2,19,86, 4,16,87, 1,62,46, 3,20,71,
- 2,20,12, 1,57,44, 4,16,82, 1,57,30, 1,57,27, 2,20, 3, 1,57,24, 4,16,84,
- 2,20, 9, 3,20,59, 1,57,31, 2,20,13, 3,20,56, 2,19,87, 2,20, 7, 1,57,34,
- 2,19,88, 2,19,91, 2,20, 2, 3,20,66, 3,20,65, 1,57,35, 1,57,33, 1,57,45,
- 3,20,55, 3,26,22, 3,20,68, 4,16,75, 1,57,40, 3,20,62, 1,57,28, 1,58,86,
- 4,16,90, 1,57,29, 2,19,92, 1,57,42, 1,57,37, 2,20, 6, 1,57,26, 0, 0, 0,
- 3,20,57, 0, 0, 0, 1,57,25, 3,68,55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 3,68,54, 3,71, 2, 3,68,53, 0, 0, 0, 2,19,84, 2,19,85, 2,26,46,
- 0, 0, 0, 0, 0, 0, 3,26,28, 1,62,29, 1,62,32, 2,26,57, 1,62,52, 2,26,60,
- 1,62,30, 2,26,53, 1,62,36, 1,62,42, 1,65,35, 3,26,17, 3,26,24, 1,62,40,
- 2,26,50, 1,62,53, 1,62,33, 1,62,41, 2,26,58, 2,33,92, 2,26,63, 2,26,51,
- 4,22,60, 2,26,42, 2,26,55, 2,26,49, 1,62,39, 2,26,61, 3,26,14, 3,26,10,
- 1,62,35, 1,62,55, 1,62,48, 3,26,19, 1,62,37, 1,62,34, 3,26,32, 1,62,45,
- 3,26,20, 2,26,62, 2,26,48, 2,26,54, 2,26,56, 2,26,44, 2,26,59, 1,62,31,
- 2,26,43, 3,26,34, 1,62,38, 1,62,54, 1,62,50, 2,26,45, 1,62,44, 3,26,27,
- 15,25,81, 1,62,51, 1,62,47, 1,62,43, 3,26,15, 2,26,52, 6,39, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3,71, 3, 1,62,49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,33,90,
- 2,33,86, 3,32,49, 2,34, 7, 2,33,79, 2,33,88, 1,67,44, 1,67,45, 1,67,37,
- 2,34, 3, 1,67,47, 2,33,84, 2,33,83, 2,33,81, 2,34, 5, 1,67,35, 2,33,93,
- 2,33,82, 1,67,38, 2,33,91, 1,67,33, 2,33,87, 2,33,94, 2,34, 2, 3,32,46,
- 4,28,43, 2,34, 6, 1,67,42, 2,33,80, 1,67,36, 2,33,85, 3,26,11, 1,67,31,
- 6,49,35, 1,67,43, 2,34, 1, 1,67,39, 1,67,40, 1,67,46, 1,67,34, 1, 3, 1,
- 1,67,32, 2,33,89, 3,32,44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,71, 5, 1,67,41,
- 3,71, 4,15,32,66, 2,34, 4, 0, 0, 0, 3,68,56, 0, 0, 0, 1,72,21, 1,72,16,
- 3,38,14, 2,41,28, 2,41,24, 3,38, 8, 2,41,18, 1,72,10, 1,72, 6, 2,41,27,
- /* plane 0, page 86 */
- 0, 255, /* first, last */
- 1,72, 7, 2,41,21, 2,41,23, 3,38, 9, 2,41,26, 3,38,22, 1,72,12, 3,38,12,
- 1,72,19, 1,72,13, 4,34,55, 3,38,10, 2,41,16, 1,72,14, 1,72,15, 2,41,19,
- 1,72,20, 3,38,20, 2,41,17, 2,41,22, 1,72,11, 2,41,15, 1,72,17, 1,72, 9,
- 3,38,19, 4,34,43, 0, 0, 0, 1,72, 8, 2,41,20, 2,41,25, 3,38,17, 1,72,18,
- 3,68,58, 0, 0, 0, 3,68,57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,38,48, 2,41,14,
- 3,38,16, 1,76,23, 2,47,78, 3,43,33, 2,47,75, 3,43,24, 1,76,17, 1,76,29,
- 1,76,30, 3,43,29, 1,76,20, 2,47,73, 1,76,22, 2,47,65, 1,76,28, 3,43,36,
- 2,47,77, 1,76,19, 2,47,79, 1,76,18, 4,41,17, 2,47,74, 2,47,76, 1,76,21,
- 2,47,72, 2,47,66, 2,47,63, 4,41,14, 3,43,30, 2,26,47, 2,47,69, 3,43,23,
- 2,47,62, 2,47,68, 2,47,67, 3,43,27, 2,47,64, 3,43,35, 1,76,25, 3,43,37,
- 3,43,32, 3,38,21, 3,43,28, 1,76,24, 3,43,25, 7, 1,67, 3,43,31, 1,76,26,
- 2,47,70, 1,80,27, 2,47,71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,54,47, 3,48,31,
- 2,54,40, 3,48,32, 1,80,39, 2,54,44, 1,80,31, 1,80,35, 2,54,43, 3,48,27,
- 1,80,34, 1,80,30, 1,80,33, 1,80,28, 1,80,38, 2,54,45, 2,54,41, 1,80,37,
- 2,54,39, 1,80,36, 2,54,46, 2,54,42, 1,76,27, 4,47,81, 1,80,40, 2,54,48,
- 1,80,32, 1,80,29,15,51,61, 3,48,29, 0, 0, 0, 3,52,40, 2,60,50, 2,60,52,
- 1,83,38, 2,60,53, 2,60,51, 2,60,49, 2,60,48, 1,83,40, 2,60,47, 1,83,41,
- 4,53,84, 3,52,41, 3,52,39, 4,53,88, 2,60,45, 2,60,46, 1,83,37, 1,83,42,
- 1,83,39, 3,68,61, 3,68,59, 2,60,44, 3,55,59, 1,86,28, 3,55,58, 2,65,40,
- 2,65,38, 2,65,43, 2,65,41, 3,55,56, 2,65,39, 2,65,42, 3,55,57, 3,55,55,
- 3,55,60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,88,12, 2,69,30, 2,69,31,
- 1,88,13, 4,63,45, 2,69,32, 2,69,28, 2,69,33, 2,69,29, 1,86,29, 3,58,13,
- 3,68,62, 4,67,17, 2,72,75, 2,72,77, 1,89,68, 2,72,76, 1,89,67, 1,89,66,
- 3,71, 6, 3,71, 7, 3,68,60, 3,62, 6, 1,89,69, 2,75,51, 2,75,52, 4,70,20,
- 1,90,69, 1,90,68, 1,90,70, 2,75,50, 3,71, 8, 2,77,38, 2,77,37, 3,63,32,
- 1,91,57, 1,91,59, 1,91,58, 2,77,39, 1,92,20, 2,80,20, 0, 0, 0, 4,74,36,
- 4,74,35, 1,92,61, 3,64,81, 2,80,19, 2,80,92, 0, 0, 0, 0, 0, 0, 2, 1,10,
- 3, 1,87, 4, 1,79, 1,38,31, 1,38,30, 4, 1,77, 1,39,64, 1,39,63, 2, 2, 7,
- 1,39,62, 2, 2, 6, 0, 0, 0, 3, 3,30, 1,41,59, 2, 3,41, 3, 5,12, 2, 3,40,
- 15, 3,48, 3, 5, 6, 1,41,57, 1,41,60, 3, 5,11, 3, 5,10, 2, 3,39, 3, 5, 9,
- 1,41,58, 3, 5,40, 3, 5, 7, 3, 5, 8, 0, 0, 0, 0, 0, 0, 3, 8, 2, 2, 5,80,
- 3, 7,93, 2, 5,81, 1,44,54, 3, 7,92, 3, 8, 1, 3, 7,91, 0, 0, 0, 1,48,44,
- /* plane 0, page 87 */
- 0, 255, /* first, last */
- 3,11,69, 2,14,42, 2,14,43, 1,52,71, 1,52,72, 3,16, 7, 0, 0, 0, 2,20,15,
- 1,57,46, 1,57,48, 2,20,14, 1,57,47, 2,26,64, 1,62,56, 3,26,36, 3,26,35,
- 4,22,72, 4,28,50, 1,67,48, 1,67,49, 2,34, 8, 3,32,50, 1,72,23, 3,38,23,
- 1,72,22, 0, 0, 0, 2,47,80, 2,54,50, 2,54,49, 3,63,33, 2,81,58, 1,36,40,
- 2, 1,25, 3, 1,65, 2, 1,47, 2, 1,48, 3, 2,20, 4, 1,80, 0, 0, 0, 4, 1,81,
- 1,39,67, 1,39,71, 2, 2, 9, 4, 2,49, 1,39,69, 1,39,68, 2, 2, 8, 1,39,70,
- 1,39,66, 3, 3,33, 3, 3,34, 1,39,65, 2, 2,10, 3, 3,31, 3, 3,32, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,41,70, 3, 5,17, 3, 5,30, 1,41,67, 3, 5,16,
- 1,41,63, 2, 3,42, 3, 5,32, 3, 5,22, 3, 5,15, 2, 3,43, 3, 5,28, 1,41,65,
- 3, 5,13, 2, 3,45, 1,41,61, 2, 3,46, 2, 3,44, 1,41,64, 1,41,66, 1,41,69,
- 1,41,68, 1,41,62, 2, 3,47, 3, 5,18, 3, 5,33, 3, 5,34, 3, 5,19, 3, 5,24,
- 3, 5,23, 3,68,63, 0, 0, 0,15, 3,50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5,21,
- 0, 0, 0, 1,44,59, 2, 5,94, 3, 8, 5, 1,44,61, 3, 8, 3, 1,44,60, 3, 8, 6,
- 2, 6, 1, 1,44,58, 1,44,57, 2, 5,85, 4, 5,73, 2, 5,84, 3, 8, 8, 2, 5,82,
- 2, 5,87, 2, 5,86, 2, 5,83, 2, 5,92, 2, 5,93, 2, 5,90, 2, 5,88, 1,44,56,
- 3, 8, 9, 4, 5,70, 4, 5,72, 2, 5,91, 1,44,62, 2, 6, 2, 4, 5,69, 3, 8,10,
- 2, 5,89, 3, 8, 4, 1,48,45, 1,44,55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5,78,
- 15, 6,19, 0, 0, 0, 3,68,64, 1,48,46, 2, 9,53, 3,11,73, 3,11,72, 2, 9,59,
- 3,11,76, 3,11,71, 3,11,74, 1,48,52, 2, 9,57, 2, 9,63, 3,11,81, 2, 9,54,
- 2, 9,58, 2, 9,60, 2, 9,62, 2, 9,56, 3,11,80, 2, 9,55, 2, 9,50, 2, 9,51,
- 1,48,47, 3,11,75, 1,48,49, 1,48,48, 2, 9,52, 2, 9,61, 3,11,77, 3,11,82,
- 3,11,78, 4, 8,64,15, 9,74,15, 9,81, 3,11,70, 0, 0, 0, 1,48,51, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8,62, 2, 9,49, 2,14,53, 3,16,10,
- 2,14,52, 2,14,57, 2,14,48, 3,16,16, 2,14,51, 2,14,50, 3,16,15, 2,14,54,
- 3,16,24, 2,14,58, 1,52,73, 1,52,76, 3,16,20, 3,16,21, 2,14,49, 2,14,55,
- 3,16,19, 3,16, 8, 3,16,23, 1,52,75, 2,14,44, 3,16,11, 1,48,50, 2,20,29,
- 2,14,56, 3,16,22, 2,14,47, 4,12,19, 1,52,74, 2,14,46, 0, 0, 0,15,14,60,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,16,18, 2,20,20, 3,20,78, 3,20,81, 1,57,49,
- 1,57,53, 2,20,36, 2,20,18, 2,20,32, 1,57,54, 2,20,34, 3,20,82, 2,20,40,
- 3,20,84, 2,20,44, 3,20,73, 4,16,91, 2,20,35, 2,20,23, 2,20,31, 3,20,75,
- 2,20,45, 2,20,43, 2,20,33, 2,20,28, 2,20,21, 2,26,72, 2,20,19, 1,57,58,
- 2,20,26, 1,57,59, 1,57,55, 2,20,16, 2,20,38, 2,20,24, 3,20,79, 3,20,85,
- /* plane 0, page 88 */
- 0, 255, /* first, last */
- 2,20,22, 2,20,41, 1,57,56, 3,20,86, 2,20,47, 1,57,50, 1,57,52, 2,20,30,
- 2,20,25, 1,52,77, 1,57,51, 2,20,27, 2,20,42, 2,20,46, 2,20,37, 3,68,65,
- 2,20,39, 0, 0, 0, 3,68,66, 3,68,67, 2,20,17, 0, 0, 0, 0, 0, 0, 4,22,73,
- 3,26,42, 2,26,67, 3,26,37, 2,26,76, 2,26,75, 1,62,64, 2,26,68, 3,26,39,
- 1,62,65, 1,62,63, 3,26,48, 2,26,70, 1,62,60, 2,26,74, 3,26,44, 2,26,69,
- 2,26,71, 2,26,65, 1,62,58, 4,22,79, 2,26,84, 2,26,83, 2,26,80, 1,62,57,
- 1,62,61, 1,62,62, 2,14,45, 2,26,77, 1,62,59, 1,57,57, 2,26,79, 2,26,66,
- 2,26,82, 2,26,81, 3,26,46, 2,26,85, 3,26,41, 2,34,22, 3,26,43, 2,26,78,
- 15,25,93, 0, 0, 0,15,25,94, 4,28,55, 4,22,77, 4,22,81, 0, 0, 0, 3,68,68,
- 2,26,73, 2,34,14, 1,67,59, 1,67,62, 1,67,57, 2,34,13, 2,34,17, 2,34,12,
- 3,32,55, 1,67,51, 1,67,61, 2,34, 9, 1,67,55, 2,34,16, 3,32,59, 1,67,53,
- 1,67,52, 2,34,19, 1,67,54, 2,34,21, 3,32,54, 2,34,18, 1,67,50, 3,32,62,
- 3,32,60, 3,32,56, 1,67,60, 2,34,23, 2,34,11, 2,34,20, 3,32,61, 4,28,51,
- 2,34,10, 3,32,58, 3,32,57, 1,67,56, 3,32,52, 1,67,58, 0, 0, 0, 2,34,15,
- 0, 0, 0, 2,34,24, 3,38,35, 3,38,30, 2,41,36, 1,72,24, 2,41,42, 3,38,34,
- 3,38,28, 1,72,29, 2,41,38, 2,41,45, 2,41,30, 1,72,31, 1,72,25, 2,41,35,
- 1,76,31, 2,41,34, 2,41,43, 1,72,26, 3,38,29, 1,72,30, 2,41,33, 2,41,39,
- 2,41,44, 2,41,29, 1,72,28, 2,41,37, 3,38,26, 3,38,37, 2,41,41, 2,41,47,
- 2,41,31, 2,41,40, 3,38,24, 1,72,27, 2,41,46, 3,38,33, 3,38,36, 3,38,32,
- 2,41,32, 0, 0, 0, 4,34,57, 3,68,69, 1,76,35, 2,47,82, 1,76,33, 1,76,32,
- 2,47,84, 2,47,89, 3,43,38, 2,47,85, 3,43,48, 2,47,88, 1,76,38, 3,43,49,
- 1,80,14, 1,76,37, 3,43,43, 2,47,81, 2,47,87, 3,38,31, 1,76,36, 2,47,86,
- 3,43,45, 2,47,83, 3,43,41, 1,76,34, 3,43,47, 3,43,44, 0, 0, 0, 3,43,39,
- 0, 0, 0, 0, 0, 0, 2,54,55, 3,48,42, 2,54,57, 2,54,52, 1,80,42, 2,54,54,
- 3,48,43, 1,80,41, 2,54,56, 3,48,40, 3,48,44, 1,80,44, 2,54,58, 1,80,43,
- 2,54,51, 2,54,53, 3,48,41, 0, 0, 0, 0, 0, 0, 3,52,43, 1,83,46, 2,60,56,
- 3,52,44, 1,83,45, 2,60,57, 1,83,44, 2,60,55, 1,83,43, 2,60,54, 0, 0, 0,
- 1,86,31, 1,86,30, 2,69,34, 2,69,36, 3,58,15, 2,69,35, 1,88,14, 1,88,15,
- 3,58,14, 7,38,37, 1,88,16, 2,72,78, 1,89,70, 0, 0, 0, 3,62, 8, 2,79, 2,
- 2,79, 1, 1,92,62, 0, 0, 0, 1,36,41, 1,37,17, 0, 0, 0, 3, 3,35, 1,41,71,
- 3, 5,37, 3, 5,35, 3, 5,36, 3, 8,13, 2, 9,64, 3,11,87, 0, 0, 0, 3,20,87,
- 0, 0, 0, 1,62,66, 1,62,67, 3,26,50, 2,34,25, 1,72,32, 2,41,48, 2,47,90,
- /* plane 0, page 89 */
- 0, 255, /* first, last */
- 3,68,70, 3,48,45, 3, 1,25, 2, 1,26, 3, 2,21, 3, 3,36, 2, 3,48, 0, 0, 0,
- 3,11,90, 3,11,89, 3, 1,26, 3, 5,38, 2, 6, 3, 2, 9,65, 2,14,59, 1,52,78,
- 3,38,38, 3,69,64, 2,69,37, 4,63,50, 1,90,71, 1,36,42, 1,38,32, 2, 1,49,
- 3, 2,22, 1,39,72, 1,39,73, 4, 2,50, 1,44,63, 4, 5,80, 0, 0, 0, 3,20,89,
- 1,57,60, 5,23,29, 1,72,34, 3,32,63, 1,72,35, 1,72,33, 3,43,51, 1,36,43,
- 4, 1,41, 1,37,18, 1,37,20, 1,37,19, 2, 1,27, 1,37,21, 1,38,33, 2, 1,50,
- 3, 2,24, 1,38,34, 3, 2,23, 4, 1,82, 3, 2,25, 4, 2,51, 3, 3,39, 1,39,74,
- 1,39,75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,11, 3, 5,41, 1,41,72, 4, 3,66,
- 2, 3,49, 0, 0, 0, 0, 0, 0, 4, 5,85, 1,44,67, 2, 6, 4, 4, 5,82, 1,44,65,
- 1,44,66, 1,44,64, 2,14,60, 3, 8,14, 3, 8,15, 3,68,71, 1,48,56, 1,48,55,
- 1,48,57, 1,48,54, 3,11,92, 2, 9,66, 1,44,68, 1,48,53, 0, 0, 0, 1,52,79,
- 1,52,80, 4,12,24, 1,52,81, 3,20,91, 2,20,48, 3,20,92, 3,20,93, 4,17, 6,
- 1,62,68, 2,26,86, 1,57,61, 3,26,51, 3,26,52, 4,22,89, 3,32,64, 1,67,63,
- 3,32,65, 1,72,37, 1,72,36, 2,41,49, 3,38,40, 1,76,39, 1,80,45, 4,47,91,
- 2,65,44, 2,77,40, 2,79, 3, 1,36,44, 1,38,35, 3, 2,27, 1,38,36, 2, 2,17,
- 1,39,77, 1,39,80, 3, 3,43, 2, 2,15, 2, 2,13, 1,39,79, 2, 2,16, 2, 2,18,
- 2, 2,12, 1,39,82, 1,39,81, 1,39,78, 1,39,76, 2, 2,14, 3, 3,45, 0, 0, 0,
- 0, 0, 0, 3, 5,53, 1,41,83, 4, 3,71, 3, 5,44, 1,41,80, 2, 3,54, 2, 3,57,
- 2, 3,56, 4, 3,73, 1,41,74, 1,41,82, 3, 5,43, 4, 3,74, 1,41,79, 2, 3,53,
- 2, 3,51, 1,41,78, 3, 5,54, 3, 5,51, 3, 5,46, 1,41,73, 1,41,76, 3, 5,49,
- 2, 3,52, 2, 3,59, 2, 3,55, 1,41,77, 1,41,81, 1,41,84, 2, 3,50, 2, 3,58,
- 1,41,75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 8,33, 3, 8,19, 1,44,73, 1,44,81,
- 3, 8,24, 2, 6,16, 2, 6, 9, 1,44,82, 2, 6,20, 2, 6, 5, 2, 6,12, 3, 8,37,
- 3, 8,32, 1,44,72, 2, 6, 6, 1,44,70, 2, 6,13, 2, 6,17, 1,44,69, 3, 8,29,
- 2, 6,18, 2, 6,11, 3, 8,23, 2, 6,14, 3, 8,21, 1,44,84, 1,44,75, 2, 6,21,
- 2, 6,19, 3, 8,31, 1,44,80, 1,44,78, 2, 6,10, 1,44,77, 2, 6, 8, 2, 6, 7,
- 1,44,76, 1,44,74, 1,44,83, 1,44,79, 1,44,71, 3,12, 6, 2, 6,15, 3, 8,38,
- 1,48,59, 3,12,13, 1,48,66, 2, 9,80, 1,48,58, 2, 9,72, 2, 9,68, 3,12, 1,
- 2, 9,84, 2, 9,67, 3,12,12, 1,48,61, 2, 9,77, 1,48,64, 1,48,67, 3,12,14,
- 1,48,62, 2, 9,81, 1,48,65, 3,12, 3, 1,52,88, 2, 9,87, 2, 9,69, 3,12, 4,
- 3,12, 5, 2, 9,71, 2, 9,78, 2, 9,82, 2, 9,86, 2, 9,83, 2, 9,76, 2, 9,79,
- 3,12,11, 3,12, 9, 2, 9,73, 1,48,69, 2, 9,75, 2, 9,74, 2, 9,85, 1,48,60,
- /* plane 0, page 90 */
- 0, 255, /* first, last */
- 2, 9,70, 1,48,68, 3,12,10, 1,48,63, 3,12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1,52,94, 2,14,68, 3,16,32, 1,52,93, 3,12, 7, 4,12,32, 2,14,66,
- 4,12,30, 1,52,82, 3,16,47, 1,52,87, 3,16,42, 2,14,65, 2,14,62, 2,14,67,
- 1,52,83, 2,14,61, 3,16,46, 1,52,86, 1,52,84, 3,16,30, 2,14,69, 1,52,85,
- 1,52,89, 3,16,27, 3,16,37, 1,52,90, 3,16,40, 1,52,92, 3,16,50, 4,12,25,
- 4,12,29, 1,52,91, 3,16,28, 3,21, 2, 3,21,24, 2,14,63, 2,14,64, 3,16,45,
- 6,22,55, 3,16,43, 0, 0, 0, 2,14,70, 0, 0, 0, 2,20,55, 1,57,62, 2,27, 6,
- 2,20,54, 2,20,73, 3,21, 8, 3,21, 4, 1,57,68, 3,21,17, 2,20,71, 3,21,19,
- 1,57,67, 1,57,63, 2,20,80, 2,20,64, 2,20,67, 3,21,14, 1,57,71, 2,20,77,
- 2,20,69, 1,57,64, 1,57,72, 3,21,10, 2,20,74, 2,20,72, 3,21,15, 3,21,27,
- 2,20,57, 2,20,78, 2,20,66, 2,20,61, 3,21,26, 2,20,51, 2,20,79, 2,20,63,
- 2,20,50, 3,21,25, 1,57,70, 2,20,68, 2,20,81, 2,20,65, 2,20,53, 2,20,58,
- 2,20,49, 3,21, 7, 1,57,69, 3,21,28, 2,20,62, 2,20,59, 1,57,65, 2,20,52,
- 3,21,16, 2,20,76, 1,57,66, 3,21,11, 2,20,60, 2,20,56, 3,21, 9, 3,21,20,
- 2,20,75, 3,21,18,15,19,83, 3,21,23, 0, 0, 0, 3,21,21, 0, 0, 0, 1,62,69,
- 2,26,93, 3,26,85, 2,26,90, 2,27,13, 2,27, 1, 2,27,14, 3,26,92, 1,62,71,
- 3,26,67, 3,26,65, 3,26,56, 2,27,10, 2,27, 7, 3,26,59, 3,26,87, 3,26,82,
- 3,26,57, 3,26,64, 2,27, 8, 2,27,11, 2,27,15, 3,26,91, 2,20,70, 2,27,17,
- 2,34,45, 3,26,70, 1,62,72, 2,27,18, 2,26,88, 2,27, 4, 3,26,66, 2,27, 9,
- 3,26,60, 3,26,62, 1,62,70, 1,62,73, 2,27,16, 2,27,19, 2,26,92, 2,26,89,
- 3,26,83, 3,26,58, 2,26,91, 3,26,55, 3,26,90, 2,27, 2, 2,26,94, 1,62,74,
- 3,26,54, 2,27,12, 3,26,89, 3,26,88, 2,27, 3, 0, 0, 0, 2,27, 5, 2,26,87,
- 2,34,33, 2,34,31, 1,67,72, 1,67,70, 2,34,41, 2,34,32, 2,34,42, 2,34,38,
- 2,34,30, 2,34,44, 2,34,29, 2,34,36, 1,67,69, 1,67,68, 1,67,67, 2,34,34,
- 2,34,39, 1,67,64, 1,67,71, 3,32,71, 2,34,27, 3,32,70, 2,34,37, 2,34,26,
- 2,34,35, 1,67,65, 2,34,40, 2,34,28, 1,67,66, 2,34,43, 3,32,68, 3,26,75,
- 3,32,74, 3,68,72, 0, 0, 0, 3,68,73, 0, 0, 0, 2,41,53, 1,72,42, 1,72,41,
- 1,72,43, 2,41,65, 2,41,55, 2,41,61, 2,41,50, 2,41,64, 2,41,63, 2,41,67,
- 2,41,60, 1,72,38, 2,41,59, 1,72,44, 3,38,44, 2,41,52, 1,72,39, 3,38,42,
- 2,41,66, 1,72,40, 2,41,54, 2,41,57, 2,41,62, 2,41,56, 2,41,51, 3,38,47,
- 3,38,51, 0, 0, 0, 0, 0, 0, 2,41,58, 2,47,92, 1,76,43, 2,48, 1, 2,47,94,
- 2,48, 3, 2,48, 5, 3,43,60, 1,76,41, 3,43,56, 2,47,93, 3,43,52, 2,47,91,
- /* plane 0, page 91 */
- 0, 255, /* first, last */
- 3,43,62, 2,48, 6, 2,48, 4, 2,48, 2, 3,43,54, 2,48, 8, 3,43,58, 2,48, 7,
- 1,76,45, 1,76,40, 3,43,59, 1,76,42, 1,76,44, 3,43,61, 3,43,63, 2,48, 9,
- 2,54,65, 3,48,48, 3,48,51, 2,54,64, 2,54,63, 3,48,49, 2,54,66, 2,54,59,
- 3,48,47, 2,54,60, 2,54,68, 2,54,61, 3,48,52, 1,80,46, 2,54,70, 3,48,46,
- 2,54,69, 2,54,62, 3,48,54, 2,60,61, 1,83,49, 2,60,59, 2,60,64, 2,60,63,
- 2,54,67, 3,52,48, 1,83,48, 3,52,46, 2,60,62, 2,60,58, 2,60,66, 2,60,65,
- 1,83,47, 3,52,50, 2,60,60, 3,52,47, 1,80,47, 3,52,49, 0, 0, 0, 3,52,51,
- 1,86,32, 3,58,17, 3,55,65, 3,55,62, 2,65,45, 2,69,38, 2,69,39, 2,69,40,
- 1,89,71, 4,67,20, 3,60,22, 1,89,72, 3,60,25, 2,72,79, 3,60,26, 2,75,54,
- 2,75,53, 3,62, 9, 3,63,34, 2,77,41, 2,77,42, 2,79, 4, 2,80,21, 3,64,83,
- 1,36,45, 1,36,46, 4, 1,18, 1,36,47, 1,37,22, 1,38,37, 2, 2,19, 1,39,83,
- 1,39,84, 0, 0, 0, 1,41,87, 1,41,88, 1,41,86, 1,41,85, 0, 0, 0, 1,44,85,
- 3, 8,40, 4, 6, 2, 2, 6,22, 1,44,87, 1,44,86, 2, 6,23, 4, 6, 3, 3,68,74,
- 4, 8,78, 1,48,70, 3,12,15, 1,53, 1, 2,14,71, 0, 0, 0, 2,20,83, 4,17,12,
- 1,57,73, 1,62,76, 2,20,82, 1,62,75, 3,32,81, 1,72,45, 3,32,82, 2,41,68,
- 1,80,48, 3,48,55, 1,83,50, 2,60,67, 3,58,20, 1,89,73, 3,60,27, 1,91,60,
- 3, 1,27, 2, 1,51, 3, 2,29, 1,38,38, 2, 1,52, 1,39,87, 3, 3,48, 1,39,85,
- 1,39,86, 1,39,88, 4, 3,79, 1,41,90, 1,41,89, 3, 5,58, 2, 3,60, 1,41,91,
- 4, 6, 5, 0, 0, 0, 2, 3,61, 2, 6,24, 3, 8,44, 2, 6,25, 3, 8,42, 1,44,88,
- 1,44,90, 1,44,92, 1,44,89, 1,44,93, 1,44,91, 3, 8,46, 3, 8,43, 3, 8,45,
- 0, 0, 0, 0, 0, 0, 1,48,74, 1,48,71, 1,48,73, 1,48,75, 1,48,72, 2,14,72,
- 2, 9,88,15,10,25, 0, 0, 0, 3,12,18, 2,14,74, 2,14,73, 1,53, 7, 4,12,38,
- 1,53, 3, 4,12,41, 6,22,70, 1,53, 4, 1,53, 6, 1,53, 8, 1,53, 5, 3,16,55,
- 1,53,10, 1,53, 9, 4,12,40, 3,16,54, 3,16,53, 0, 0, 0,15,14,94, 1,57,78,
- 2,20,85, 2,20,84, 1,57,77, 3,21,33, 1,57,76, 1,57,75, 1,57,79, 1,57,74,
- 3,21,31, 0, 0, 0, 2,27,25, 2,27,22, 1,62,78, 2,27,21, 2,27,26, 4,23, 4,
- 1,62,80, 2,27,24, 1,62,77, 1,62,79, 2,27,23, 3,26,94, 2,34,46, 3,32,84,
- 2,34,47, 2,34,48, 3,32,85, 3,32,86, 3,32,83, 4,28,78, 1,72,46, 1,72,54,
- 2,41,69, 1,72,48, 1,72,52, 2,41,70, 1,72,53, 1,72,49, 1,72,50, 1,72,47,
- 1,72,51, 1,76,48, 2,27,20, 1,76,49, 1,76,47, 4,41,36, 1,76,46, 2,54,71,
- 1,80,49, 2,60,68, 2,60,69, 3,58,21, 4,63,53, 1,88,17, 1,89,74, 3,62,10,
- 1,36,48, 3, 2,30, 1,39,89, 0, 0, 0, 0, 0, 0, 3, 5,62, 3, 5,60, 3, 5,61,
- /* plane 0, page 92 */
- 0, 255, /* first, last */
- 3, 8,48, 1,48,76, 0, 0, 0, 2,14,75, 1,53,11, 3,16,56, 3,16,57, 1,57,82,
- 1,57,81, 1,57,80, 1,62,81, 1,62,82, 2,27,27, 1,72,55, 1,80,50, 1,36,49,
- 2, 1,28, 1,37,23, 2, 1,53, 4, 1,83, 3, 2,31, 2, 2,20, 1,39,90, 4, 2,60,
- 3, 3,50, 3, 8,49, 1,44,94, 3,12,20, 0, 0, 0, 0, 0, 0, 3,27, 4, 2,34,49,
- 3,32,88, 3,69, 5, 1,36,50, 4, 1,43, 1,37,24, 2, 2,21, 0, 0, 0, 0, 0, 0,
- 2, 3,62, 4, 6, 9, 2, 3,63, 3, 5,63, 1,41,92,15, 5,52, 0, 0, 0, 3,12,21,
- 2,27,28, 1,62,83, 0, 0, 0, 2,34,50, 0, 0, 0, 4,41,41, 3,52,52, 1,83,51,
- 1,36,51, 1,36,71, 1,37,25, 2, 1,54, 1,38,39, 3, 3,52, 1,42, 2, 1,42, 1,
- 1,41,93, 1,41,94, 0, 0, 0, 0, 0, 0, 2, 6,26, 1,45, 2, 1,45, 3, 2, 6,27,
- 1,45, 1, 3, 8,52, 3, 8,53, 1,48,80, 2, 9,89, 1,48,79, 1,48,77, 1,48,78,
- 1,53,14, 1,53,12, 3,16,58, 3,16,59, 2,14,77, 1,53,13, 2,14,76, 3,68,75,
- 1,53, 2, 2,20,86, 4,17,21, 3,21,35, 1,57,84, 1,57,85, 3,27, 6, 3,27, 5,
- 1,57,83, 3,21,36, 1,72,56, 2,41,71, 1,76,50, 1,76,51, 0, 0, 0, 2,48,10,
- 1,83,52, 2,65,46, 2,65,47, 3,58,24, 1,90,72, 2,80,22, 2, 1,11, 1,37,26,
- 4, 2,63, 1,36,52, 0, 0, 0, 2, 1,56, 2, 1,55, 4, 1,86, 0, 0, 0, 3,68,76,
- 3, 3,53, 1,39,91, 2, 2,23, 2, 2,24, 2, 2,22, 4, 2,64, 2, 2,25, 0, 0, 0,
- 3, 3,58,15, 2,39, 0, 0, 0, 0, 0, 0, 3, 5,65, 3, 5,70, 2, 3,71, 4, 3,90,
- 2, 3,66, 2, 3,68, 2, 3,70, 2, 3,67, 1,42, 6, 2, 3,64, 3, 5,66, 2, 3,65,
- 1,42, 3, 1,42, 4, 2, 3,69, 2, 3,72, 1,42, 5, 2, 3,73, 0, 0, 0,15, 3,92,
- 0, 0, 0,15, 3,88, 0, 0, 0, 0, 0, 0, 3, 5,67, 2, 6,41, 3, 8,61, 2, 6,35,
- 2, 6,30, 1,45, 5, 2, 6,38, 2, 6,36, 2, 6,29, 2, 6,42, 2, 6,45, 2, 6,40,
- 2, 6,33, 1,45, 7, 2, 6,39, 1,45, 8, 2, 6,34, 2, 6,37, 2, 6,28, 2, 6,32,
- 2, 6,44, 1,45, 9, 4, 6,15, 1,45,10, 3, 8,62, 2, 6,31, 2, 6,43, 1,45, 4,
- 1,45, 6, 3, 8,60, 3, 8,63, 3, 8,55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4, 6,20, 3, 8,56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,10,12, 2,10, 5,
- 2,10,11, 2,10, 4, 2,10, 6, 2, 9,94, 2, 9,92, 3,12,31, 2,10,13, 2,10,10,
- 2, 9,90, 3,12,27, 1,48,82, 2,10, 8, 2,10, 9, 3,68,77, 2,10, 7, 2, 9,93,
- 2, 9,91, 1,48,81, 2,10, 3, 2,10, 1, 3,12,28, 3,12,34, 2,10, 2, 2,10,14,
- 0, 0, 0, 3,12,30, 3,12,33, 0, 0, 0, 0, 0, 0, 3,12,35, 3,12,29, 0, 0, 0,
- 1,53,19, 3,16,67, 1,53,18, 3,16,63, 2,14,78, 1,53,15, 2,14,80, 3,16,68,
- 1,53,20, 2,14,81, 4,12,64, 3,16,65, 1,53,23, 3,16,66, 1,53,21, 2,14,82,
- 2,10,15, 2,14,84, 3,16,62, 1,53,17, 4,12,60, 1,53,16, 4,12,65, 2,14,79,
- /* plane 0, page 93 */
- 0, 255, /* first, last */
- 2,14,83, 1,53,22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,57,87, 1,57,86,
- 3,21,43, 3,21,40, 3,21,39, 2,20,88, 2,20,92, 2,20,94, 1,57,88, 2,21, 3,
- 3,21,49, 1,57,92, 2,21, 5, 3,21,50, 1,57,94, 3,21,47, 1,57,90, 1,58, 4,
- 3,21,53, 1,58, 1, 2,20,90, 1,57,89, 3,27,11, 2,20,89, 2,20,87, 2,21, 7,
- 2,20,91, 3,21,38, 1,57,91, 2,21, 6, 1,58, 2, 2,21, 2, 2,21, 1, 1,58, 3,
- 2,20,93, 1,57,93, 3,21,46, 6,30,86, 3,21,42, 0, 0, 0, 2,21, 8, 3,21,52,
- 2,21, 4, 2,27,43, 2,27,50, 2,27,39, 1,62,86, 2,27,35, 2,27,51, 2,27,29,
- 2,27,48, 2,27,46, 2,27,40, 3,27,22, 2,27,49, 2,27,42, 3,27, 8, 2,27,34,
- 2,27,52, 2,27,32, 2,27,45, 2,27,30, 3,27, 7, 2,27,53, 3,27,23, 1,62,87,
- 3,27,10, 2,27,47, 2,34,53, 2,27,33, 1,62,84, 3,27,14, 2,27,37, 3,27,20,
- 1,62,85, 2,27,36, 2,27,41, 3,27,19, 4,23,21, 2,27,38, 4,23,15, 3,27,17,
- 0, 0, 0, 2,27,44, 0, 0, 0, 3,27,13, 0, 0, 0, 0, 0, 0, 2,34,57, 4,28,89,
- 3,33, 1, 4,28,91, 2,34,60, 2,34,52, 3,32,92, 2,34,54, 3,32,90, 2,34,59,
- 2,34,58, 1,67,73, 4,28,85, 2,27,31, 2,34,56, 3,32,89, 3,32,93, 1,67,74,
- 4,28,84, 2,34,51, 2,34,55, 4,28,92, 4,28,88, 3,68,78, 0, 0, 0, 2,41,78,
- 3,38,60, 2,41,85, 2,41,76, 3,38,52, 2,41,83, 2,41,74, 2,41,82, 2,41,86,
- 2,41,73, 2,41,77, 2,41,72, 3,38,54, 1,72,57, 4,35,12, 2,41,75, 1,72,58,
- 2,41,81, 2,41,80, 2,41,79, 3,38,57, 3,38,58, 2,41,84, 3,68,79, 3,43,69,
- 3,43,70, 3,43,67, 2,48,14, 2,48,16, 1,76,53, 2,48,17, 3,43,75, 2,48,12,
- 3,43,71, 2,48,11, 2,48,21, 3,43,73, 2,48,19, 1,76,52, 2,48,22, 2,48,13,
- 2,48,18, 2,48,20, 2,48,15, 3,43,74, 3,43,72, 3,68,80, 3,48,56, 2,54,75,
- 2,54,80, 2,54,74, 2,54,79, 3,48,59, 2,54,72, 2,54,82, 2,54,78, 2,54,83,
- 2,54,77, 2,54,73, 2,54,81, 3,48,58, 2,54,84, 2,54,76, 3,68,81, 2,60,70,
- 1,83,56, 3,52,55, 1,83,54, 3,52,57, 1,83,53, 1,83,55, 3,52,53, 3,68,82,
- 2,65,48, 3,55,66, 2,68,30, 2,69,41, 3,58,25, 0, 0, 0, 2,72,80, 2,72,81,
- 3,60,29, 1,89,75, 3,60,28, 2,75,55, 3,60,30, 1,90,73, 4,70,27, 2,75,56,
- 3,62,13, 2,77,44, 1,91,62, 3,63,35, 1,91,61, 2,77,43, 1,92,21, 3,64,16,
- 2,79, 5, 4,75,72, 4,74,38, 3, 1,28, 4, 1,12, 1,36,53, 1,39,92, 2, 2,26,
- 2, 3,74, 1,43,54, 1,58, 5, 3,21,55, 3,43,76, 1,36,54, 1,38,42, 1,38,41,
- 1,38,40, 4, 2,67, 0, 0, 0, 1,42, 7, 0, 0, 0, 0, 0, 0, 1,53,24, 0, 0, 0,
- 2,34,61, 1,36,55, 1,36,56, 1,36,57, 1,37,27, 3, 5,71, 3, 8,64, 1,48,83,
- 4,12,68, 2,10,16, 3,12,37, 3,12,36, 0, 0, 0, 1,62,88, 1,36,58, 2, 1,29,
- /* plane 0, page 94 */
- 0, 255, /* first, last */
- 3, 1,67, 4, 1,44, 1,38,43, 1,38,44, 2, 1,57, 0, 0, 0, 1,39,93, 5, 2,60,
- 3, 3,60, 3, 5,72, 2, 3,75, 3, 5,75, 1,42, 8, 4, 4, 3, 2, 3,76, 0, 0, 0,
- 0, 0, 0, 1,45,16, 3, 8,66, 3, 8,65, 2, 6,47, 1,45,14, 1,45,13, 2, 6,46,
- 1,45,11, 2, 6,48, 1,45,12, 1,45,15, 0, 0, 0, 1,48,84, 3,12,38, 1,48,86,
- 2,10,20, 2,10,17, 2,10,18, 2,10,19, 2,10,21, 1,48,85, 0, 0, 0, 0, 0, 0,
- 2,14,86, 2,14,85, 3,16,70, 1,53,26, 3,16,73, 1,53,25, 3,16,72, 3,16,74,
- 3,16,71, 0, 0, 0, 3,21,59, 1,58, 8, 2,21,10, 3,21,57, 1,58, 7, 1,58, 9,
- 1,58, 6, 3,21,56, 3,21,58, 0, 0, 0, 0, 0, 0, 1,62,90, 2,21, 9, 5,23,92,
- 1,62,91, 2,27,55, 3,25,89, 1,62,92, 2,27,54, 1,62,89, 3,27,26, 3,27,27,
- 3,27,29, 0, 0, 0, 2,34,64, 2,34,66, 1,67,75, 2,34,65, 2,34,63, 2,34,62,
- 4,29,10, 4,35,21, 3,38,61, 2,41,89, 1,72,63, 1,72,61, 4,35,16, 1,72,62,
- 2,41,87, 2,41,88, 3,43,77, 1,72,59, 2,48,26, 2,48,24, 3,43,80, 1,76,55,
- 2,48,25, 1,76,56, 1,76,54, 1,72,60,15,46,62, 3,68,83, 2,54,87, 2,54,85,
- 2,54,86, 2,48,23, 2,60,72, 1,83,57, 2,60,71, 2,65,49, 2,65,50, 2,54,88,
- 2,69,42, 3,70,87, 1,36,59, 1,38,45, 1,40, 1, 2, 2,27, 1,39,94, 3, 8,67,
- 1,45,17, 1,67,76, 3, 1,29, 1,37,28, 1,38,46, 1,48,87, 1,62,93, 3, 1,30,
- 2, 1,58, 3, 2,39, 2, 1,59, 3, 2,40, 2, 2,28, 3,70,88, 0, 0, 0, 1,42,10,
- 2, 3,80, 2, 3,78, 1,42,11, 2, 3,77, 2, 3,79, 2, 3,81, 4, 4, 8, 1,42, 9,
- 3, 5,78, 0, 0, 0, 3, 5,77, 0, 0, 0, 0, 0, 0, 1,45,21, 1,45,22, 1,45,19,
- 3, 8,69, 3, 8,71, 1,45,18, 2,10,25, 1,45,20, 3, 8,72, 0, 0, 0, 0, 0, 0,
- 1,48,88, 3,12,40, 2,10,24, 2,10,26, 2,10,23, 2,10,27, 1,48,89, 1,53,29,
- 2,14,87, 3,16,76, 2,14,89, 1,53,27, 2,14,90, 1,53,28, 2,14,88, 3,16,75,
- 2,10,22, 2,21,11, 2,21,14, 2,21,15, 2,21,12, 1,58,13, 1,58,12, 1,58,10,
- 1,58,11, 2,21,13, 3,21,65, 3,21,64, 0, 0, 0, 3,27,31, 1,58,14, 3,27,32,
- 3,27,30, 1,63, 1, 1,63, 2, 6,40,37, 1,63, 3, 2,34,67, 2,34,69, 2,34,71,
- 1,67,78, 1,67,77, 1,62,94, 2,34,70, 2,34,68, 3,68,84, 2,41,93, 3,38,65,
- 3,38,64, 2,41,91, 2,42, 3, 1,72,64, 2,42, 4, 2,42, 1, 1,72,65, 2,41,92,
- 2,41,90, 2,42, 2, 1,76,58, 2,48,28, 2,41,94, 1,76,60, 2,48,29, 1,76,59,
- 1,76,62, 2,48,30, 1,76,57, 1,76,61, 0, 0, 0, 2,54,93, 2,54,91, 2,54,90,
- 2,54,92, 2,54,89, 3,48,60, 4,59, 1, 1,88,19, 3,68,85, 2,72,82, 2,72,83,
- 3,60,31, 2,75,57, 2,77,45, 1,93, 2, 3, 1,31, 3, 3,65, 1,45,23, 1,42,12,
- 3, 8,73, 3, 8,75, 1,48,90, 3,12,44, 3,12,43, 3,16,78, 1,36,60, 1,37,29,
- /* plane 0, page 95 */
- 0, 255, /* first, last */
- 4, 1,45, 1,38,47, 2, 2,29, 3, 5,79, 1,42,13, 2, 3,82, 3, 8,77, 2,10,28,
- 1,48,91, 0, 0, 0, 1,72,66, 1,36,61, 3, 1,68, 3, 2,41, 3, 3,66, 1,40, 2,
- 15, 2,46, 3,27,34, 1,67,79, 1,36,62, 1,37,30, 1,37,31, 0, 0, 0, 1,38,49,
- 1,38,48, 4, 2,75, 2, 2,30, 1,40, 3, 4, 2,76, 2, 3,83, 3, 5,81, 1,42,14,
- 0, 0, 0, 3, 8,78, 2, 6,50, 2, 6,51, 2, 6,52, 3, 8,80, 1,45,24, 1,45,25,
- 2, 6,49, 1,45,26, 0, 0, 0, 4, 9,12, 4,12,80, 1,48,92, 2,10,29, 3,12,45,
- 2,14,92, 1,53,30, 3,16,79, 2,14,91, 3,21,66, 1,58,15, 2,21,16, 1,58,16,
- 2,21,17, 3,21,67, 3,27,39, 3,27,37, 1,63, 4, 4,23,37, 3,27,36, 4,29,16,
- 2,34,72,15,33,31, 3,33, 2, 2,42, 6, 2,42, 5, 0, 0, 0, 1,72,67, 4,41,62,
- 1,76,63, 2,48,31, 1,80,51, 2,54,94, 1,83,58, 3,55,67, 1,91,63, 2,79, 7,
- 3, 1,32, 3, 1,33, 3, 2,42, 3, 3,49, 2, 6,53, 3, 8,81, 2,10,30, 1,58,17,
- 2,27,56, 1,67,80, 3,33, 3, 3,48,62,15,52,35, 3,55,68, 1,86,33, 0, 0, 0,
- 3,65,68, 3, 1,34, 1,42,16, 3, 5,82, 1,42,15, 1,48,93, 3,12,48, 2,14,93,
- 0, 0, 0, 1,58,19, 1,61, 9, 1,58,20, 1,58,18, 1,63, 5, 3,33, 4, 2,42, 7,
- 1,72,68, 1,76,64, 3,63,37, 2, 1,12, 2, 2,31, 4, 2,77, 2, 3,85, 1,42,17,
- 2, 3,84, 1,42,18, 4, 4,12, 0, 0, 0, 1,45,30, 2, 6,56, 2, 6,55, 1,45,29,
- 1,45,27, 1,45,28, 2, 6,54, 3, 8,86, 3, 8,85, 1,49, 1, 2,10,31, 1,49, 4,
- 1,48,94, 1,49, 6, 1,49, 2, 1,49, 3, 1,49, 5, 4, 9,17, 3,16,80, 3,16,82,
- 1,53,33, 1,53,32, 1,53,31, 3,16,81, 3,68,86, 0, 0, 0, 2,21,19, 1,58,21,
- 1,58,24, 1,58,22, 3,68,87, 2,21,18, 1,58,27, 4,17,51, 1,58,23, 2,21,20,
- 1,58,26, 1,58,25, 4,17,50, 4,17,55, 4,23,42, 2,27,58, 2,27,57, 3,27,43,
- 1,63, 8, 1,63, 6, 1,63, 7, 2,27,59, 1,67,81, 2,34,74, 1,67,82, 2,34,73,
- 4,29,20, 4,35,31, 2,48,32, 3,38,67, 3,38,68, 1,76,66, 2,42, 8, 1,76,65,
- 3,43,82, 1,72,69, 3,68,88, 2,55, 2, 2,55, 1, 1,83,59, 2,60,73, 2,69,43,
- 2,72,84, 2,72,85, 3,62,15, 1,37,32, 4, 1,22, 1,38,50, 0, 0, 0, 3, 2,45,
- 4, 2,81, 2, 1,60, 3, 2,44, 5, 2,70, 1,42,20, 1,42,22, 3, 5,88, 2, 2,34,
- 2, 3,88, 2, 3,87, 2, 3,86, 3, 3,70, 2, 2,33, 2, 2,32, 1,40, 5, 1,42,21,
- 1,42,19, 1,40, 4, 3, 3,71, 3, 3,73, 3, 5,87, 1,45,31, 2, 6,57, 3, 5,91,
- 1,45,32, 2, 3,93, 4, 6,48, 2, 4, 1, 2, 3,94, 2, 6,58, 3, 5,86, 3, 5,84,
- 2, 3,90, 3, 8,94, 1,42,26, 1,42,24, 3, 5,92, 2, 3,89, 2, 3,91, 2, 4, 3,
- 3, 6, 2, 1,42,23, 3, 6, 1, 2, 3,92, 2, 4, 7, 1,45,34, 3, 5,93, 2, 4, 4,
- 1,42,25, 3, 6, 3, 2, 4, 2, 2, 4, 5, 3, 5,90, 1,45,33, 3, 5,85, 1,45,35,
- /* plane 0, page 96 */
- 0, 255, /* first, last */
- 2, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 8,88,
- 3, 9, 2, 2, 6,78, 2, 6,65, 2, 6,63, 2, 6,77, 2, 6,72, 1,49,11, 1,45,36,
- 2, 6,73, 2, 6,76, 1,49, 7, 2, 6,75, 1,45,37, 1,45,42, 1,45,40, 2, 6,66,
- 4, 9,22, 2, 6,61, 2, 6,68, 1,45,47, 2, 6,79, 1,49, 8, 2, 6,69, 4, 6,47,
- 1,49, 9, 1,45,43, 2, 6,71, 3,12,58, 2,10,46, 1,49,10, 2, 6,60, 1,45,44,
- 1,49,12, 1,45,45, 1,45,41, 1,45,46, 2, 6,70, 2, 6,59, 2, 6,74, 1,45,38,
- 3, 8,87, 3,12,59, 2, 6,62, 2, 6,67, 2, 6,64, 1,45,39, 3, 8,90, 2,10,32,
- 4, 9,37, 2,10,33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 9, 1, 0, 0, 0, 0, 0, 0,
- 2,10,43, 2,15, 3, 2,10,44, 1,49,18, 2,10,47, 2,10,37, 1,49,17, 2,10,39,
- 4, 9,31, 2,10,40, 3,12,64, 3,16,89, 2,10,42, 1,49,13, 3,12,54, 3,16,83,
- 1,53,37, 3,12,55, 3,12,61, 2,10,38, 2,10,34, 1,53,38, 3,16,94, 4, 9,30,
- 2,10,48, 1,53,34, 2,15, 1, 2,10,41, 3,12,52, 2,14,94, 2,10,36, 2,10,45,
- 3,12,63, 3,12,65, 1,49,16, 1,53,35, 1,49,22, 1,53,36, 2,10,49, 2,15, 2,
- 1,49,15, 1,53,40, 1,49,21, 1,49,20, 1,49,19, 1,53,39, 2,10,50, 1,53,41,
- 1,49,14, 4, 9,43, 2,10,35, 3,16,90, 3,16,88, 3,16,91, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,12,60, 0, 0, 0, 3,16,86, 1,58,28,
- 2,15, 6, 2,15, 8, 4,13, 5, 2,15,10, 1,53,42, 1,53,48, 2,21,23, 2,15,14,
- 2,15, 5, 1,58,30, 2,21,21, 3,17, 2, 1,53,47, 1,53,45, 2,15,16, 4,13,13,
- 2,21,22, 4,13,12, 2,15, 7, 3,17, 5, 1,53,46, 2,15,11, 1,53,49, 2,15,13,
- 3,21,72, 3,16,84, 1,53,44, 2,15,12, 2,15,15, 2,15, 9, 3,17, 7, 1,53,43,
- 1,58,31, 3,21,81, 2,15, 4, 1,58,29, 3,21,82, 4,17,75, 3,17, 3, 3,17, 8,
- 1,58,32, 3,17, 1, 3,21,79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,17, 6, 0, 0, 0,
- 2,21,25, 2,21,34, 1,63,11, 3,27,52, 1,58,34, 1,58,39, 1,63,12, 2,21,36,
- 1,58,46, 2,27,61, 2,21,26, 1,58,38, 1,58,41, 1,58,36, 2,21,24, 2,21,38,
- 2,21,41, 2,27,76, 4,17,72, 2,21,39, 2,27,65, 1,58,37, 1,58,44, 1,58,48,
- 2,21,33, 2,27,60, 2,21,37, 1,58,33, 2,27,62, 2,21,40, 2,27,64, 2,21,29,
- 3,21,74, 1,63, 9, 3,27,54, 2,21,27, 2,21,28, 1,58,43, 3,27,53, 3,21,78,
- 1,58,42, 2,21,31, 1,58,47, 2,21,35, 1,58,40, 2,21,32, 3,21,89, 1,58,45,
- 1,63,13, 1,63,10, 2,27,63, 3,27,56, 2,21,30, 3,27,57, 1,58,35, 3,21,86,
- 3,21,88, 3,27,58, 3,27,45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,21,84, 0, 0, 0,
- 1,63,18, 1,63,22, 2,27,67, 1,67,87, 1,63,20, 2,27,71, 1,63,24, 2,34,75,
- 2,27,73, 1,67,89, 1,63,16, 1,63,19, 2,27,74, 3,27,62, 2,27,75, 2,27,81,
- /* plane 0, page 97 */
- 0, 255, /* first, last */
- 1,63,26, 1,67,90, 4,29,29, 2,27,77, 2,27,82, 2,27,70, 1,68, 6, 3,27,47,
- 1,67,91, 1,63,25, 2,27,68, 2,27,83, 3,27,49, 1,68, 5, 1,63,23, 1,67,84,
- 2,27,80, 3,27,61, 1,63,27, 2,27,72, 2,27,66, 1,63,17, 2,27,69, 5,31,16,
- 2,27,78, 3,33,11, 1,67,83, 1,67,88, 1,63,14, 2,27,79, 3,27,65, 1,67,86,
- 3,27,66, 3,27,67, 3,27,48, 1,63,15, 0, 0, 0, 3,68,89, 0, 0, 0, 1,68, 4,
- 2,42,10, 2,34,86, 3,33, 9, 2,34,78, 2,42, 9, 4,29,25, 2,34,82, 2,34,84,
- 3,33, 7, 3,33,12, 2,34,81, 3,38,79, 1,68, 3, 4,29,24, 2,34,80, 1,68, 7,
- 3,38,78, 6,50,68, 3,33, 8, 2,42,25, 3,38,76, 3,33,14, 1,68, 2, 1,72,71,
- 2,34,87, 2,42,11, 3,38,77, 3,33,10, 1,67,94, 2,34,79, 2,34,83, 1,72,70,
- 1,67,85, 2,34,76, 2,34,77, 1,72,72, 1,67,93, 1,68, 1, 1,67,92, 2,34,85,
- 3,68,90, 0, 0, 0, 2,42,15, 2,42,16, 2,42,21, 1,76,71, 2,42,28, 3,43,83,
- 1,72,78, 3,43,94, 1,72,77, 2,42,23, 3,43,84, 1,76,70, 2,42,12, 1,72,76,
- 3,38,81, 2,42,27, 1,72,74, 1,72,75, 3,43,92, 2,42,24, 2,48,49, 1,76,68,
- 1,63,21, 3,38,82, 2,42,26, 1,76,75, 2,42,18, 4,41,79, 1,76,69, 3,38,74,
- 1,76,74, 2,42,13, 2,42,17, 2,42,14, 2,42,20, 1,72,79, 1,76,67, 1,72,73,
- 3,44, 1, 2,48,35, 2,42,22, 3,38,72, 1,76,73, 3,38,83, 1,76,76, 7, 2,81,
- 2,42,19, 3,38,75, 1,76,72, 2,48,34, 5,45,10, 3,44, 3, 3,38,84, 3,44, 4,
- 3,43,87, 2,48,39, 1,80,55, 2,48,33, 2,55,14, 2,48,48, 1,76,80, 3,43,90,
- 1,76,78, 1,80,53, 2,48,45, 2,48,41, 1,76,84, 3,43,86, 2,55, 5, 3,48,72,
- 3,44, 8, 3,48,71, 1,76,82, 2,48,40, 3,44, 9, 2,55, 3, 3,44, 5, 2,48,44,
- 4,48,27, 2,48,47, 2,48,38, 3,43,89, 1,76,83, 4,48,23, 3,43,85, 1,76,77,
- 2,55, 4, 1,80,54, 2,48,46, 1,76,79, 1,76,81, 2,48,43, 1,76,85, 2,48,42,
- 2,48,37, 2,48,36, 1,80,52, 2,48,50, 2,55, 7, 2,60,75, 1,80,57, 3,48,65,
- 2,55,13, 3,48,67, 2,55,11, 3,48,74, 2,60,76, 3,48,68, 1,80,58, 2,55,12,
- 3,48,70, 2,55, 9, 1,83,61, 2,60,74, 3,48,76, 2,55, 6, 2,55, 8, 1,83,62,
- 1,80,60, 1,83,60, 1,80,59, 1,83,64, 2,55,10, 1,80,56, 3,48,66, 3,48,69,
- 3,48,75, 0, 0, 0, 0, 0, 0, 3,70,89, 0, 0, 0, 4,59,11, 2,65,59, 4,54,19,
- 2,65,51, 3,52,65, 3,52,63, 3,52,60, 3,52,62, 3,52,61, 2,60,82, 2,65,52,
- 2,60,78, 4,54,18, 3,52,59, 1,86,34, 2,60,80, 2,60,79, 1,83,63, 2,60,77,
- 2,60,81, 2,65,60, 2,65,56, 2,65,58, 4,63,64, 2,65,53, 2,65,54, 4,63,65,
- 2,65,57, 2,65,55, 1,88,20, 3,55,69, 0, 0, 0, 1,88,23, 1,88,22, 1,88,21,
- 1,89,76, 2,72,86, 1,89,77, 2,69,44, 1,90,74, 2,75,58, 1,90,75, 1,91,64,
- /* plane 0, page 98 */
- 0, 255, /* first, last */
- 1,92,22, 2,79, 8, 3,63,38, 2,79, 9, 2,79,10, 3,65,30, 0, 0, 0, 2,82,10,
- 1,37,33, 2, 1,61, 1,38,51, 0, 0, 0, 1,40, 7, 1,40, 8, 1,40, 6, 3, 3,75,
- 1,40, 9, 1,42,28, 1,42,27, 3, 6, 5, 2, 6,80, 1,45,49, 1,45,48, 0, 0, 0,
- 3,12,67, 2,15,17, 1,58,49, 1,58,50, 4,17,78, 4,17,80, 3,27,68, 1,63,28,
- 2,34,88, 1,68, 8, 1,68, 9, 2,34,90, 2,34,92, 2,34,91, 4,29,35, 2,42,30,
- 3,38,86, 2,42,29, 1,72,80, 2,42,31, 3,38,85, 2,48,51, 1,76,86, 3,44,12,
- 1,80,61, 3,48,77, 1,83,65, 1,86,35, 1,83,66, 3,63,40, 1,37,34, 3, 1,69,
- 3, 1,70, 3, 2,46, 2, 4, 8, 3, 6, 8, 3, 6, 9, 2, 6,81, 1,45,51, 1,45,50,
- 1,45,52, 1,49,23, 2,10,51, 2,10,52, 0, 0, 0, 3,17, 9, 2,15,18, 1,53,50,
- 1,58,51, 1,63,29, 2,27,84, 1,37,35, 4, 1,23, 1,36,63, 1,37,36, 3, 2,48,
- 2, 1,62, 1,38,55, 1,38,54, 1,38,52, 1,38,53, 0, 0, 0, 0, 0, 0, 3, 3,79,
- 1,40,12, 2, 2,41, 2, 2,43, 1,40,11, 2, 2,35, 3, 3,76, 2, 2,36, 3, 3,77,
- 2, 2,42, 2, 2,38, 2, 2,40, 1,40,10, 2, 2,37, 2, 2,44, 2, 2,39, 3, 3,78,
- 15, 2,49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,42,35, 1,42,44, 1,42,42,
- 2, 4,18, 2, 4,15, 2, 4,23, 1,42,40, 2, 4,24, 3, 6,25, 1,42,33, 2, 4,21,
- 3, 6,14, 1,42,39, 2, 4,17, 2, 4,16, 1,42,37, 2, 4,22, 1,42,38, 1,45,53,
- 1,42,32, 2, 4,19, 3, 6,10, 2, 4, 9, 1,42,29, 3, 6,23, 1,42,48, 2, 4,14,
- 2, 4,20, 1,42,34, 1,42,36, 3, 6,15, 2, 4,10, 3, 6,22, 2, 4,11, 2, 4,12,
- 4, 4,25, 1,42,47, 1,42,41, 1,42,46, 2, 4,13, 1,42,45, 1,42,31, 1,42,30,
- 1,42,43, 3, 6,21, 4, 4,28, 3, 6,19, 3, 6,20, 3, 6,24, 3, 6,17, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,68,91,15, 4,25, 3, 6,18, 3, 9,17, 3, 9,10,
- 1,45,67, 2, 6,93, 2, 6,86, 1,45,62, 1,45,81, 2, 6,82, 2, 6,89, 2, 6,91,
- 2, 6,94, 1,45,76, 3, 9, 6, 2, 6,90, 2, 6,83, 1,45,74, 2, 6,87, 3, 9, 8,
- 2, 7, 1, 1,45,59, 3, 9, 5, 2, 6,92, 1,45,69, 1,45,68, 2, 6,85, 1,45,57,
- 3, 9,20, 3, 9,18, 1,45,58,15, 7,16, 1,45,56, 3, 9,19, 1,45,80, 1,45,72,
- 1,45,66, 1,45,54, 2, 6,88, 1,45,65, 1,45,55, 1,45,73, 1,45,82, 2,10,53,
- 1,45,70, 2, 6,84, 1,45,60, 1,45,63, 1,45,64, 3, 9,14, 1,45,78, 1,45,79,
- 1,45,77, 1,45,71, 1,45,75, 1,45,61, 1,49,24, 3, 9,16, 3, 9,23, 3, 9,21,
- 3, 9,22, 3, 9,15, 0, 0, 0, 0, 0, 0, 3, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3,12,77, 2,10,59, 1,49,36, 1,49,28, 1,49,30, 1,49,35,
- 2,10,71, 1,49,33, 2,15,19, 1,53,51, 1,49,38, 2,10,56, 2,10,64, 1,49,34,
- 2,10,63, 2,10,60, 2,10,68, 2,10,70, 1,49,27, 1,49,31, 1,49,37, 1,53,53,
- /* plane 0, page 99 */
- 0, 254, /* first, last */
- 2,10,65, 1,49,29, 1,49,40, 2,10,58, 3,12,79, 3,12,80, 5, 9,37, 1,49,32,
- 1,53,52, 1,49,26, 4, 9,57, 2,10,55, 2,10,62, 2,10,54, 2,10,57, 2,10,61,
- 2,15,20, 1,49,39, 4, 9,49, 2,10,66, 2,10,67, 2,10,69, 1,49,25, 3,12,76,
- 0, 0, 0, 3,17,18, 0, 0, 0, 3,17,19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,12,75,
- 0, 0, 0, 3,12,78, 0, 0, 0, 4, 9,59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1,53,67, 2,15,32, 1,53,65, 1,53,66, 2,15,22, 2,15,38, 3,17,12, 1,53,56,
- 3,17,15, 3,17,21, 2,21,42, 2,15,40, 2,15,34, 3,17,24, 2,15,25, 3,17,23,
- 2,15,43, 2,15,28, 1,53,62, 2,21,65, 2,15,31, 1,53,64, 1,53,55, 3,17,28,
- 2,15,45, 2,15,33, 1,53,58, 2,15,26, 2,15,23, 2,15,24, 1,53,59, 2,15,39,
- 2,15,46, 1,53,61, 2,15,30, 2,15,29, 1,53,69, 1,53,68, 1,53,54, 1,53,60,
- 1,53,63, 2,15,42, 3,17,14, 3,17,25, 2,15,36, 1,53,57, 2,15,21, 2,15,44,
- 2,15,35, 2,15,37, 2,15,41, 3,17,16, 3,17,27, 3,17,22, 0, 0, 0, 0, 0, 0,
- 3,68,92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,68,93, 2,21,43, 3,22,17, 1,58,59,
- 1,58,79, 1,58,78, 3,22, 7, 1,58,67, 3,22, 9, 2,21,61, 2,21,57, 2,21,54,
- 2,21,72, 1,58,62, 1,58,54, 3,22, 6, 3,22,18, 2,21,59, 1,63,45, 1,58,58,
- 2,21,67, 3,22, 2, 1,58,80, 1,58,77, 2,21,63, 2,21,46, 3,21,92, 3,22,11,
- 1,58,76, 2,21,69, 2,21,45, 1,58,65, 1,58,69, 2,21,68, 3,22, 3, 2,21,55,
- 1,58,70, 1,58,64, 2,21,44, 3,21,93, 1,63,31, 2,21,71, 2,21,53, 1,58,75,
- 2,21,56, 2,21,70, 1,58,74, 3,22, 4, 2,27,85, 4,17,87, 1,58,55, 2,21,51,
- 1,58,60, 1,58,71, 4,17,88, 1,58,66, 2,21,60, 2,21,50, 2,21,48, 2,21,66,
- 1,58,52, 1,58,72, 1,58,56, 1,63,30, 2,21,64, 1,58,57, 4,18, 3, 1,58,53,
- 1,58,68, 1,58,63, 1,58,61, 2,21,52, 1,58,73, 2,21,49, 2,21,62, 2,21,58,
- 2,27,87, 2,27,86, 3,22,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,68,94, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3,22,14, 0, 0, 0, 0, 0, 0, 2,21,47, 2,28, 9, 3,27,81,
- 1,63,33, 3,27,80, 2,28,15, 2,27,92, 2,28,12, 2,34,93, 1,63,36, 2,28,16,
- 2,28,19, 1,63,35, 2,28, 1, 2,28,18, 2,28,17, 1,63,37, 2,27,88, 1,63,32,
- 1,63,40, 3,27,83, 1,63,38, 2,28,14, 4,23,81, 2,28, 4, 1,63,42, 2,28,21,
- 2,28,13, 2,28,22, 1,63,50, 1,63,48, 2,28,11, 2,28,10, 3,27,71, 2,28, 8,
- 2,28, 2, 1,63,41, 3,27,70, 1,63,39, 2,15,27, 2,27,89, 3,27,72, 2,35,29,
- 2,27,90, 1,63,34, 1,63,47, 2,35, 1, 4,23,64, 1,63,43, 1,63,44, 2,27,91,
- 2,28,20, 2,34,94, 2,28, 5, 2,27,94, 1,63,46, 2,28, 6, 2,28, 3, 3,27,82,
- 3,27,77, 1,63,51, 4,23,79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,27,79,
- /* plane 0, page 100 */
- 3, 255, /* first, last */
- 3,69, 1, 0, 0, 0, 0, 0, 0, 1,68,24, 3,33,41,
- 3,33,18, 2,35, 4, 2,35,23, 2,35,28, 2,35,16, 1,68,20, 2,35,33, 1,68,17,
- 2,35, 2, 3,33,26, 2,35, 3, 1,68,10, 1,68,19, 2,35,10, 1,68,22, 1,68,23,
- 2,35,11, 3,33,24, 2,35,24, 2,35,30, 1,68,18, 3,33,30, 1,68,12, 2,35, 9,
- 2,35, 5, 2,35,32, 2,35,14, 2,35,15, 2,35, 6, 2,35,26, 2,35,17, 2,35,27,
- 2,35,19, 3,33,29, 1,68,13, 2,42,32, 1,68,16, 1,68,14, 2,35,31, 2,35,22,
- 2,35,18, 3,33,22, 3,33,19, 2,35, 7, 1,72,90, 2,35,21, 1,68,21, 2,35,13,
- 3,33,20, 2,35,12, 3,33,40, 3,39, 5, 3,33,34, 1,68,15, 1,68,11, 2,42,53,
- 2,35,25, 2,35,20, 0, 0, 0, 2,35, 8, 0, 0, 0, 0, 0, 0, 3,33,36, 3,33,37,
- 0, 0, 0, 3,70,86, 0, 0, 0, 2,42,48, 3,38,88, 2,42,33, 2,42,44, 3,39, 8,
- 2,42,51, 1,72,88, 1,63,49, 2,42,49, 1,72,83, 3,38,94, 3,39, 4, 3,38,90,
- 1,72,82, 2,42,56, 4,35,61, 2,42,34, 2,42,47, 2,42,35, 2,42,46, 1,72,86,
- 2,42,50, 2,28, 7, 3,39, 1, 4,35,62, 3,39,10, 2,42,57, 2,42,42, 1,72,89,
- 2,48,65, 1,76,87, 3,39, 3, 2,42,55, 2,42,54, 1,72,91, 2,48,52, 1,76,88,
- 2,48,53, 3,39, 2, 2,42,38, 2,42,39, 2,42,36, 2,42,41, 2,42,37, 2,42,58,
- 1,72,85, 1,76,89, 1,72,87, 1,72,92, 3,38,91, 2,42,40, 3,39, 9, 2,42,52,
- 3,44,13, 3,39, 6, 2,42,45, 3,44,21, 0, 0, 0, 2,48,56, 3,44,24, 1,72,81,
- 1,76,92, 2,55,21, 2,48,61, 2,48,60, 2,48,62, 3,44,16, 3,44,15, 2,48,59,
- 1,76,93, 3,44,27, 1,77, 5, 1,77, 2, 3,44,17, 1,77, 3, 2,48,54, 2,48,57,
- 2,48,67, 1,77,11, 1,77, 9, 3,44,14, 2,48,58, 2,27,93, 1,76,90, 2,48,64,
- 2,48,55, 3,44,30, 1,77,12, 2,48,63, 1,72,84, 1,77, 1, 2,42,43, 3,44,31,
- 3,44,20, 1,77, 4, 3,44,29, 1,77, 8, 1,77,10, 1,77, 7, 1,77, 6, 3,44,26,
- 1,76,94, 2,48,66, 1,76,91, 1,77,13, 3,44,25, 0, 0, 0, 3,69, 2, 0, 0, 0,
- 0, 0, 0, 3,44,23, 0, 0, 0, 1,80,65, 1,80,66, 2,55,20, 1,80,75, 1,80,72,
- 3,48,80, 1,80,63, 1,80,70, 2,55,22, 1,80,68, 1,80,62, 3,44,18, 1,80,69,
- 3,48,87, 2,55,19, 1,83,68, 1,80,64, 5,52,62, 1,80,71, 1,83,67, 2,55,18,
- 2,55,17, 3,48,86, 1,80,73, 3,48,79, 1,80,74, 3,48,89, 2,55,16, 2,55,15,
- 1,83,69, 2,55,25, 1,80,67, 2,55,23, 3,48,85, 0, 0, 0, 0, 0, 0, 3,52,68,
- 1,83,70, 3,52,71, 1,83,75, 2,60,85, 2,60,87, 3,55,75, 1,83,72, 3,55,77,
- 2,60,88, 2,60,84, 3,55,76, 2,60,86, 1,83,73, 1,83,76, 3,52,73, 2,60,83,
- 1,83,71, 1,83,74, 1,86,37, 2,55,24, 1,86,36, 7,31,66, 3,55,74, 1,86,42,
- 2,65,64, 3,55,80, 1,86,40, 1,86,41, 2,65,67, 2,65,63, 1,86,38, 2,65,61,
- /* plane 0, page 101 */
- 0, 255, /* first, last */
- 1,88,24, 2,65,65, 4,59,22, 2,65,66, 2,65,62, 3,55,78, 1,86,39, 2,69,45,
- 3,58,27, 2,69,48, 3,58,28, 3,58,26, 2,69,49, 2,69,47, 2,69,50, 1,88,25,
- 2,69,46, 3,62,17, 0, 0, 0, 2,72,90, 1,89,79, 2,72,89, 2,72,88, 2,72,87,
- 1,89,78, 1,89,80, 3,69, 3, 2,75,59, 1,90,77, 1,90,76, 3,63,42, 3,63,43,
- 2,77,47, 2,77,46, 2,77,49, 1,92,23, 1,91,65, 2,79,12, 2,77,48, 3,63,41,
- 3,64,18, 2,79,11, 1,92,25, 1,92,24, 1,92,63, 2,80,23, 2,80,93, 1,37,37,
- 6, 3,76, 3,12,82, 2,28,23, 2,55,26, 3, 1,71, 3, 1,72, 1,40,13, 2, 2,45,
- 1,42,51, 1,42,49, 4, 4,31, 1,42,50, 4, 4,30, 2, 7, 2, 1,45,83, 1,49,41,
- 3,12,84, 2,10,72, 3,12,86, 2,10,73, 3,12,83, 1,49,42, 2,15,48, 4,13,35,
- 1,53,70, 1,53,71, 2,15,47, 3,17,29, 4,13,36, 3,22,23, 3,22,22, 1,58,87,
- 4,18,11, 1,58,83, 4,18,15, 2,21,73, 1,58,90, 1,58,89, 1,58,82, 1,58,85,
- 1,58,88, 1,58,84, 3,22,20, 0, 0, 0, 2,28,27, 1,58,81, 1,63,52, 3,27,84,
- 3,27,85, 3,27,86, 1,63,54, 1,63,55, 2,28,26, 2,28,29, 1,63,53, 2,28,24,
- 2,28,28, 0, 0, 0, 2,28,25, 3,33,43, 1,68,25, 3,33,46, 4,29,61, 2,35,34,
- 3,33,45, 3,39,16, 1,72,93, 2,42,59, 1,80,76, 1,77,14, 2,48,68, 1,77,15,
- 1,77,16, 2,48,70, 2,48,69, 2,48,71, 2,55,28, 0, 0, 0, 0, 0, 0, 2,55,27,
- 2,60,90, 2,60,89, 1,83,77, 1,83,78, 2,69,51, 3,60,33, 0, 0, 0, 1,37,38,
- 3, 5,56, 3, 9,25, 4,13,39, 3,17,32, 2,28,30, 3,22,24, 3,22,25, 0, 0, 0,
- 1,63,57, 1,63,56, 2,35,35, 0, 0, 0, 2,65,68, 1,90,78, 2,79,13, 1,37,39,
- 4, 4,33, 1,53,72, 3,17,34, 1,58,92, 1,58,91, 2,28,31, 2,28,32, 1,68,26,
- 2,42,60, 1,72,94, 2,55,29, 4,54,31, 1,37,40, 1,38,56, 3, 9,27, 1,45,84,
- 2, 7, 3, 0, 0, 0, 2,10,74, 1,49,43, 1,58,93, 3,22,26, 2,28,33, 1,63,58,
- 1,68,27, 4,29,67, 2,48,72, 2,48,73, 4,48,46, 3,52,75, 2,60,91, 1,86,43,
- 2,80,94, 1,37,41, 3, 9,28, 2, 7, 4, 1,45,85, 1,49,44, 3,12,87, 2,10,75,
- 0, 0, 0, 1,53,73, 2,15,52, 2,15,50, 2,15,51, 1,53,74, 2,15,49, 3,22,28,
- 4,18,20, 3,22,31, 3,22,29, 1,59, 1, 1,59, 2, 2,21,74, 1,59, 3, 1,58,94,
- 2,28,34, 3,27,89, 2,28,35, 2,35,36, 4,29,68, 0, 0, 0, 1,73, 2, 1,73, 1,
- 4,48,47,15,52,68, 2,60,92, 2,65,69, 3,58,31, 2,69,53, 2,69,52, 2,72,91,
- 3, 1,73, 2, 1,30, 1,49,45, 3,22,33, 3,33,48, 1,37,42, 1,38,57, 3, 2,49,
- 1,40,15, 1,40,14, 3, 3,83, 3, 3,82, 1,40,16, 1,40,17, 2, 2,47, 2, 2,46,
- 2, 4,25, 1,42,52, 2, 4,28, 2, 4,27, 2, 4,26, 2, 4,29, 3, 6,29, 0, 0, 0,
- 0, 0, 0, 4, 6,66, 1,45,86, 2, 7,10, 2, 7, 6, 2, 7,15, 3, 9,35, 3, 9,30,
- /* plane 0, page 102 */
- 0, 255, /* first, last */
- 1,45,93, 3, 9,34, 1,45,91, 2, 7,11, 2, 7, 7, 2, 7,14, 1,45,90, 1,46, 3,
- 2, 7, 9, 2, 7, 5, 1,46, 2, 2, 7,12, 1,45,89, 2, 7,13, 1,45,92, 1,45,94,
- 2, 7,17, 2, 7,16, 2, 7, 8, 1,45,88, 1,45,87, 1,46, 1, 4, 6,65, 3, 9,32,
- 3, 9,33,15, 7,30, 3,12,94, 3,12,90, 2,10,80, 2,10,86, 3,13, 3, 1,49,51,
- 1,49,48, 2,10,77, 2,10,82, 3,12,92, 1,49,54, 1,49,46, 2,10,81, 1,49,49,
- 1,49,52, 3,12,89, 4, 9,71, 2,10,84, 3,12,93, 1,49,47, 2,10,89, 1,49,50,
- 3,13, 1, 1,49,53, 2,10,78, 2,10,83, 2,10,87, 2,10,79, 2,10,76, 3,13, 4,
- 3,13, 5, 2,10,88, 2,10,85, 3,13, 2, 3,12,23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3,17,38, 1,53,82, 1,53,75, 1,53,78, 3,17,44, 1,53,81, 3,17,36, 2,15,55,
- 3,17,41, 1,53,76, 2,15,53, 3,17,40, 1,53,80, 3,17,45, 3,17,37, 1,53,77,
- 3,17,35, 2,15,56, 1,53,79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,22,34,
- 4,18,25, 2,21,78, 1,59, 5, 2,21,77, 2,21,79, 1,59, 4, 1,59, 9, 2,15,54,
- 3,17,43, 2,21,76, 2,21,80, 3,22,36, 1,59, 6, 2,21,75, 1,59, 8, 3,22,37,
- 1,59, 7, 3,28, 6, 2,28,42, 3,27,93, 2,28,37, 3,28, 5, 1,63,59, 1,63,63,
- 1,63,60, 2,28,40, 2,28,43, 3,28, 3, 1,63,61, 4,24, 4, 1,63,62, 1,63,67,
- 2,35,45, 2,28,41, 1,63,65, 2,28,38, 2,28,36, 3,27,92, 1,63,66, 3,27,94,
- 2,28,39, 3,28, 4, 0, 0, 0, 0, 0, 0, 1,68,33, 4,29,73, 2,35,37, 1,68,30,
- 1,68,31, 1,68,29, 2,35,42, 2,35,41, 2,35,38, 1,68,35, 3,33,59, 3,33,54,
- 2,35,40, 1,63,64, 3,33,57, 3,33,49, 2,35,44, 2,35,39, 1,68,32, 1,68,28,
- 1,68,34, 2,35,43, 3,39,20, 4,35,75, 3,39,21, 1,73, 5, 4,35,79, 2,42,63,
- 2,42,62, 2,42,61, 1,73, 3, 4,35,77, 3,39,25, 3,39,19, 3,39,23, 0, 0, 0,
- 1,73, 4, 2,48,76, 2,48,79, 1,77,18, 3,44,36, 3,44,38, 1,77,17, 2,48,80,
- 2,48,75, 1,77,20, 2,48,77, 3,44,33, 1,77,19, 2,48,74, 3,44,32, 2,48,78,
- 1,80,82, 1,80,79, 2,55,38, 2,55,37, 3,44,35, 2,55,36, 2,55,31, 3,48,93,
- 2,55,32, 3,49, 3, 4,48,48, 3,48,90, 1,80,80, 3,48,94, 1,80,77, 1,80,81,
- 2,55,30, 1,80,78, 2,55,33, 2,55,34, 2,55,39, 3,49, 2, 3,52,81, 2,55,35,
- 3,52,79, 3,52,80, 2,60,93, 4,54,33, 3,52,76, 3,52,77, 1,83,80, 3,52,82,
- 2,65,72, 1,83,79, 2,65,70, 2,65,71, 1,86,44, 1,88,27, 2,69,54, 3,58,35,
- 1,88,26, 3,58,34, 3,69, 6, 2,72,93, 2,72,94, 3,60,34, 1,89,81, 3,60,35,
- 2,72,92, 1,90,79, 4,74,44, 2,79,14, 1,92,26, 2,80,24, 2,80,25, 3,65,31,
- 1,37,43, 4, 1,92, 1,40,18, 1,40,19, 1,42,53, 3, 6,33, 2, 7,18, 1,49,55,
- 1,53,83, 1,59,10,15,18,83, 0, 0, 0, 1,57,23, 0, 0, 0, 1,63,68, 1,63,69,
- /* plane 0, page 103 */
- 0, 255, /* first, last */
- 1,62,18, 2,28,44, 3,69, 7, 1,68,36, 2,42,65, 2,42,64, 3,49, 4, 7,51,39,
- 1,37,44, 1,40,20, 2, 7,19, 1,46, 5, 3, 9,37, 1,46, 4, 3,13, 7, 2,10,90,
- 2,10,91, 3,70,18, 2,15,57, 2,15,58, 1,53,84, 1,53,85, 3,22,40, 1,53,86,
- 2,21,81, 3,22,39, 3,22,38, 1,59,12, 4,24, 9, 1,63,71, 3,28, 9, 1,63,70,
- 2,35,46, 2,38,33, 2,42,66, 2,55,40, 3,49, 6, 3,70,19, 1,86,45, 1,89,82,
- 1,37,45, 0, 0, 0, 1,38,60, 1,38,61, 1,38,59, 1,38,62, 1,38,58, 3, 2,50,
- 0, 0, 0, 1,40,23, 3, 3,87, 2, 2,55, 1,40,22, 1,40,24, 3, 3,88, 3, 3,85,
- 2, 2,50, 2, 2,49, 2, 2,52, 2, 2,51, 2, 2,54, 1,40,21, 2, 2,48, 2, 2,53,
- 15, 2,56, 0, 0, 0,15, 2,55, 0, 0, 0, 3, 6,40, 2, 4,30, 1,42,63, 2, 4,31,
- 2, 4,35, 1,42,62, 3, 6,41, 2, 4,39, 2, 4,34, 2, 4,37, 1,42,55, 1,42,56,
- 1,42,57, 1,42,58, 3, 6,37, 1,42,65, 3, 6,36, 2, 4,33, 1,42,60, 1,42,66,
- 3, 6,39, 2, 4,32, 2, 4,38, 3, 6,34, 1,42,59, 2, 4,36, 1,42,61, 1,42,54,
- 1,42,64, 3, 6,42,15, 4, 2, 0, 0, 0, 0, 0, 0, 4, 4,38,15, 4,51, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1,46,26, 3, 9,39, 2, 7,21, 1,46, 6, 4, 6,73, 1,46,16,
- 1,46,17, 1,46, 9, 1,46,27, 1,46,11, 2, 7,29, 1,46,22, 2, 7,24, 1,46,12,
- 2, 7,39, 2, 7,40, 2, 7,32, 2, 7,25, 1,46,25, 2, 7,37, 1,46,20, 1,46,18,
- 3, 9,50, 2, 7,38, 3, 9,41, 2, 7,36, 2, 7,28, 2, 7,20, 2, 7,27, 1,46,13,
- 4, 6,69, 1,46,19, 3, 9,42, 1,46, 7, 2, 7,31, 2, 7,30, 2, 7,22, 3, 9,47,
- 1,46,21, 2, 7,34, 2, 7,23, 1,46,24, 2, 7,41, 1,46, 8, 3, 9,40, 1,46,15,
- 2, 7,26, 2, 7,35, 1,46,23, 4, 6,71, 1,46,10, 1,46,14, 4, 6,74, 2, 7,33,
- 0, 0, 0,15, 7,46, 3, 9,46, 3, 9,44, 3,69, 8, 0, 0, 0,15, 7,48, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,69, 9, 0, 0, 0, 2,11,29, 1,49,63,
- 1,49,76, 3,13,22, 2,11,24, 2,11,14, 1,49,69, 2,11,12, 1,49,62, 2,11, 7,
- 1,49,72, 2,11,20, 2,11, 1, 2,11, 3, 3,13,14, 4,13,57, 4, 9,78, 3,13,16,
- 2,11, 6, 2,10,92, 2,11,19, 2,11,35, 1,49,67, 2,11, 8, 2,11,26, 3,13,13,
- 2,10,94, 2,11,33, 2,11,34, 2,11,37, 2,11,28, 2,11,13, 2,11,21, 1,49,73,
- 1,49,60, 1,49,68, 1,49,80, 1,49,57, 1,49,59, 3,13,17, 3,13,11, 3,13,26,
- 2,11, 5, 1,49,77, 1,49,70, 2,11,31, 2,11, 2, 1,49,79, 1,49,74, 2,11,11,
- 4, 9,77, 4,13,46, 1,49,78, 2,11,18, 2,11,10, 1,49,71, 2,11,30, 2,11,22,
- 3,13,10, 1,49,65, 2,11,36, 2,11, 9, 1,49,61, 2,11,27, 2,11,17, 1,49,66,
- 2,11,23, 1,49,58, 2,10,93, 1,49,75, 1,54, 7, 1,49,64, 2,11,16, 2,11,15,
- 2,11, 4, 3, 9,49, 2,11,32, 3,13,20, 2,11,25, 0, 0, 0, 3,13,18, 1,49,56,
- /* plane 0, page 104 */
- 0, 255, /* first, last */
- 3,13,25, 3,13,23, 0, 0, 0, 0, 0, 0, 6,17,82, 3,13,24, 3,69,11, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3,69,10,15,11,40, 2,15,78, 1,54,14, 2,15,79, 3,17,61, 2,15,67, 1,54, 3,
- 1,54,15, 3,17,55, 2,15,60, 3,17,51, 2,15,69, 2,15,77, 3,17,59, 2,15,59,
- 2,15,86, 1,53,87, 3,17,62, 3,17,68, 3,17,48, 2,15,85, 2,15,80, 3,17,63,
- 2,15,81, 1,54, 1, 1,54,12, 2,15,71, 3,17,54, 2,15,72, 2,15,82, 2,15,73,
- 3,17,67, 2,15,68, 2,15,62, 2,15,63, 2,15,76, 2,15,70, 3,17,52, 3,17,47,
- 1,53,88, 1,53,92, 2,15,84, 2,15,64, 1,54,10, 1,54, 6, 3,17,58, 4,13,53,
- 1,54, 9, 1,54,16, 1,53,93, 1,54,11, 2,15,75, 1,54,13, 1,53,90, 3,17,57,
- 1,53,89, 2,15,61, 4,13,47, 2,15,65, 1,54, 4, 2,15,83, 2,15,74, 2,15,66,
- 1,54, 8, 1,54, 5, 3,13,15, 1,53,91, 1,53,94, 3,17,66, 3,17,56,15,16, 4,
- 3,17,65, 3,17,64, 3,69,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,69,12, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,22, 8, 3,22,53, 2,21,86, 2,21,87, 2,21,91,
- 3,22,64, 2,22,12, 2,22, 9, 3,22,46, 2,22, 2, 2,22, 1, 1,59,19, 2,22, 5,
- 2,22,20, 2,21,82, 3,22,59, 2,22,21, 2,22, 7, 2,22,25, 2,22,13, 1,59,18,
- 2,22,11, 1,59,13, 1,59,34, 1,59,24, 3,22,55, 1,59,28, 1,59,27, 2,21,83,
- 4,18,31, 2,22,18, 2,22,24, 2,22,16, 2,22,23, 0, 0, 0, 3,22,49, 2,22, 4,
- 2,21,84, 2,22,22, 2,22, 6, 1,59,16, 1,59,29, 3,22,58, 2,22,15, 1,59,22,
- 3,22,45, 3,22,60, 3,22,48, 2,22,14, 2,21,85, 1,59,30, 3,22,43, 1,59,32,
- 2,22,17, 1,59,33, 1,59,15, 2,21,92, 2,22,19, 3,22,52, 3,20,88, 1,59,21,
- 1,59,31, 2,21,94, 2,22,10, 2,21,89, 2,21,93, 1,59,26, 2,21,88, 1,59,14,
- 1,59,23, 1,59,20, 2,22, 3, 1,54, 2, 2,28,67, 1,59,17, 3,22,44, 3,22,50,
- 3,22,62, 3,22,63, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,21,55, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 3,22,54, 0, 0, 0, 3,28,37, 1,59,25, 3,28,33, 2,28,70, 2,28,92,
- 2,28,81, 1,63,91, 3,28,24, 1,63,86, 2,28,64, 1,63,87, 2,28,80, 3,28,30,
- 2,28,73, 2,28,86, 1,63,83, 2,28,46, 2,28,88, 1,63,73, 2,28,54, 1,63,76,
- 1,63,75, 4,24,18, 1,63,92, 3,22,51, 2,28,48, 2,28,82, 2,28,83, 1,63,78,
- 1,63,74, 2,28,62, 3,28,29, 1,63,85, 2,28,57, 3,28,18, 2,28,84, 1,63,81,
- 2,28,76, 2,28,89, 2,28,51, 2,28,56, 2,28,50, 3,28,10, 1,63,80, 2,28,69,
- 2,35,68, 2,28,52, 1,63,84, 2,28,61, 2,28,85, 1,63,79, 2,28,58, 2,28,55,
- 2,28,72, 1,63,82, 1,63,72, 1,63,94, 2,28,75, 2,28,74, 3,28,17, 3,28,34,
- /* plane 0, page 105 */
- 0, 255, /* first, last */
- 3,28,25, 3,28,27, 3,28,20, 3,28,15, 2,28,47, 1,63,77, 2,28,87, 2,28,63,
- 2,28,65, 3,28,23, 2,28,78, 2,28,77, 2,28,45, 1,63,88, 1,63,90, 2,28,53,
- 2,28,60, 2,28,68, 1,63,89, 2,28,59, 2,28,71, 2,28,90,15,27,80, 2,28,79,
- 3,28,28, 0, 0, 0, 0, 0, 0,15,28, 1, 3,28,36, 0, 0, 0, 3,28,19, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,28,91, 0, 0, 0,15,28, 9,
- 0, 0, 0, 3,69,15, 2,28,49,15,27,78, 3,69,14, 0, 0, 0, 3,28,32, 2,35,88,
- 1,68,44, 3,33,69, 2,35,86, 2,35,65, 2,35,70, 2,35,63, 3,33,87, 2,35,82,
- 2,35,49, 2,35,56, 4,29,81, 2,35,80, 2,35,90, 2,35,66, 3,33,72, 2,35,53,
- 2,35,72, 2,35,77, 2,35,57, 3,33,75, 2,35,74, 2,35,54, 3,33,61, 3,33,85,
- 2,35,61, 2,35,62, 1,68,46, 2,35,81, 2,35,79, 3,33,83, 2,35,50, 2,35,84,
- 3,33,84, 2,35,85, 2,35,87, 1,68,50, 1,68,42, 3,33,79, 2,21,90, 2,35,58,
- 2,35,76, 2,35,59, 1,68,39, 1,68,55, 2,35,83, 1,68,53, 1,68,49, 2,35,48,
- 1,68,41, 3,33,89, 2,35,51, 1,68,54, 3,33,88, 2,35,67, 2,35,47, 3,33,86,
- 1,68,47, 2,35,71, 2,35,55, 1,68,48, 2,35,64, 1,68,38, 1,63,93, 2,35,73,
- 2,28,66, 2,35,52, 4,29,76, 3,33,77, 2,35,78, 1,68,43, 2,35,75, 1,68,40,
- 2,35,69, 1,68,51, 2,35,60, 2,35,89, 3,33,74, 3,33,91, 0, 0, 0,15,34,41,
- 15,34,39, 0, 0, 0, 1,68,45, 2,37,12, 0, 0, 0, 3,33,82, 1,68,52, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,34, 8, 0, 0, 0,15,34,28, 2,42,80, 2,42,78, 3,39,26,
- 2,43, 6, 2,42,76, 3,39,29, 2,42,94, 1,68,37, 1,73, 8, 2,42,72, 2,43, 5,
- 3,39,49, 2,42,77, 2,42,91, 1,73,13, 1,73, 6, 3,39,46, 2,43, 3, 3,39,38,
- 2,42,70, 2,43, 2, 3,39,39, 1,73,24, 2,42,87, 2,43, 9, 1,73,22, 2,42,79,
- 1,73, 7, 2,42,81, 2,43, 1, 1,73,16, 2,42,74, 1,73,20, 1,73,10, 2,42,83,
- 2,42,73, 2,42,67, 3,39,30, 2,42,93, 1,73,17, 2,43, 8, 2,42,68, 1,73,14,
- 4,35,87, 2,42,89, 4,35,89, 1,73,15, 2,42,75, 2,42,86, 2,42,82, 2,42,84,
- 3,39,35, 1,73, 9, 2,43, 7, 1,73,23, 2,42,85, 3,39,27, 2,43,10, 4,36, 7,
- 3,39,28, 2,42,69, 2,42,90, 1,73,12, 1,73,21, 1,73,19, 2,42,71, 2,42,92,
- 1,73,18, 3,39,37, 3,39,40, 1,73,11, 2,42,88, 3,39,45, 3,39,36, 4,36, 8,
- 3,44,52, 2,43, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 3,39,44, 2,48,92, 3,39,34, 2,48,88, 2,48,84, 2,49,10, 2,49, 7,
- 1,77,23, 3,44,68, 3,44,64, 2,49,14, 2,48,91, 1,77,34, 2,49, 4, 3,44,47,
- 3,44,49, 2,48,87, 2,49, 3, 1,77,31, 2,49,23, 4,42,29, 2,49,20, 2,49, 6,
- 2,48,85, 3,44,63, 3,44,55, 2,49,11, 2,49,13, 1,77,27, 2,49, 1, 2,48,90,
- /* plane 0, page 106 */
- 0, 255, /* first, last */
- 2,48,81, 1,77,24, 1,77,32, 4,42,40, 2,49,16, 1,77,33, 2,48,82, 2,49,22,
- 2,49, 9, 2,49,15, 1,77,30, 3,44,45, 3,44,48, 2,49,12, 3,44,39, 2,49,19,
- 3,44,59, 1,77,35, 3,44,54, 1,77,29, 2,49, 5, 2,48,86, 2,49,24, 2,48,83,
- 2,49,17, 1,77,26, 3,44,42, 2,48,93, 3,44,41, 2,48,94, 1,77,25, 1,77,22,
- 2,48,89, 1,77,28, 3,44,50, 1,77,21, 3,44,66, 2,49,18, 2,49,21, 2,49, 2,
- 2,55,53, 3,44,62, 3,44,57,15,47,34, 3,44,65, 3,69,16, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2,55,45, 3,49,12, 2,55,41, 1,81, 1, 3,49,28, 3,49,24,
- 1,80,84, 1,80,89, 1,80,85, 2,55,55, 2,55,66, 1,80,83, 2,55,47, 2,55,56,
- 2,49, 8, 2,55,57, 3,49, 8, 3,49,11, 1,80,90, 3,49,32, 2,55,72, 1,80,94,
- 1,81, 3, 2,55,43, 3,49,27, 1,80,93, 3,49,17, 2,55,70, 2,55,71, 2,55,61,
- 2,55,60, 2,55,52, 3,49, 9, 3,49,30, 2,55,62, 2,55,69, 2,55,68, 3,49,15,
- 1,80,88, 1,80,86, 2,55,54, 2,55,51, 3,49,36, 2,55,48, 2,55,67, 1,81, 2,
- 2,55,65, 1,80,92, 1,80,91, 3,49, 7, 2,55,59, 4,42,43, 2,55,42, 2,55,44,
- 2,55,46, 2,55,64, 2,55,58, 1,80,87, 3,49,14, 2,55,49, 3,49,18, 2,55,63,
- 3,49,33, 3,49,26,15,52,91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,55,50, 3,69,17,
- 15,53, 9, 0, 0, 0, 3,69,18, 0, 0, 0, 0, 0, 0, 3,52,85, 1,83,88, 2,61,17,
- 1,83,81, 2,61, 2, 3,52,91, 2,61,13, 1,83,83, 2,61,20, 3,53, 1, 2,61, 9,
- 3,52,92, 2,61, 4, 3,52,86, 4,54,37, 2,61,21, 2,60,94, 2,61,11, 3,53, 7,
- 1,83,90, 2,61,16, 2,61,22, 2,61,10, 1,83,82, 2,61,12, 2,61, 1, 1,83,89,
- 3,53, 3, 3,52,90, 2,61,19, 2,61, 6, 1,83,85, 3,53, 4, 2,61, 8, 2,61, 5,
- 1,83,91, 2,61, 7, 1,83,84, 1,83,87, 2,61,15, 2,61, 3, 2,61,18, 3,52,88,
- 2,61,14, 0, 0, 0, 3,53, 9, 3,55,84, 1,86,47, 2,65,83, 1,86,52, 1,86,53,
- 3,55,87, 3,56, 1, 3,55,86, 1,86,46, 2,65,82, 3,55,88, 2,65,79, 2,65,80,
- 1,86,50, 2,65,74, 2,65,78, 1,86,49, 3,55,94, 2,65,75, 3,55,89, 3,56, 3,
- 3,55,93, 3,55,90, 1,86,51, 1,86,48, 3,56, 2, 2,65,73, 2,65,77, 2,65,81,
- 3,55,91, 0, 0, 0, 3,69,19, 2,69,60, 2,69,57, 2,69,66, 3,58,36, 2,69,65,
- 2,69,63, 2,69,58, 3,58,47, 1,88,31, 3,58,37, 3,58,46, 4,63,81, 3,58,39,
- 3,58,45, 2,69,59, 1,88,30, 1,83,86, 2,69,62, 1,88,29, 2,69,67, 2,69,61,
- 2,69,56, 2,65,76, 3,58,40, 3,58,38, 0, 0, 0, 1,88,28, 3,69,20, 2,69,55,
- 2,73, 4, 3,60,41, 2,73, 3, 2,69,64, 1,89,83, 3,55,85, 2,73, 7, 2,73, 8,
- 2,73, 2, 2,73, 6, 4,67,48, 2,73, 1, 3,60,39, 3,69,21, 4,67,46, 0, 0, 0,
- 2,75,63, 2,73, 5, 1,90,82, 1,90,80, 2,75,61, 3,62,21, 3,62,20, 3,62,19,
- /* plane 0, page 107 */
- 0, 255, /* first, last */
- 2,75,64, 3,62,23, 2,75,60, 2,75,62, 1,90,81, 0, 0, 0, 3,63,47, 3,63,46,
- 2,77,51, 2,77,52, 1,91,66, 2,77,50,15,73,44, 3,69,22, 3,69,23, 2,79,17,
- 1,92,27, 2,79,15, 2,79,16, 2,80,26, 3,64,84,15,75,49, 1,93, 3, 2,81, 3,
- 2,81, 1, 2,81, 2, 2,81, 4, 3,65,32, 3,65,69, 3,65,33, 2,82,11, 0, 0, 0,
- 1,37,46, 1,40,25, 3, 3,89, 1,46,28, 4, 6,81, 2, 7,42, 3, 9,51, 3, 9,52,
- 2,11,38, 4, 9,82, 3,13,28, 3,17,70, 2,15,87, 2,15,89, 3,17,69, 2,15,88,
- 3,17,71, 2,15,90, 1,59,35, 2,22,27, 2,15,91, 3,22,66, 2,22,26, 2,22,28,
- 2,22,29, 2,28,93, 1,64, 2, 2,28,94, 2,29, 2, 1,64, 3, 1,64, 1, 2,29, 1,
- 3,33,93, 2,36, 2, 2,35,94, 2,35,93, 3,33,92, 2,35,92, 2,35,91, 1,68,56,
- 2,36, 1, 1,73,25, 2,43,11, 2,43,13, 1,73,26, 2,43,12, 1,77,37, 3,44,70,
- 1,77,36, 2,49,25, 3,44,69, 3,44,71, 2,55,74, 2,55,73, 2,55,75, 3,49,38,
- 3,49,37, 1,81, 4,15,53,25, 2,61,23, 1,83,92, 3,53,11, 2,65,84, 1,86,54,
- 2,69,68, 1,91,67, 1,37,47, 1,38,63, 1,40,26, 1,42,67, 1,46,29, 1,46,30,
- 3, 9,53, 3, 9,54, 1,49,81, 3,13,29, 3,17,72, 2,15,92, 3,28,41, 3,28,39,
- 4,36,13, 3,33,94, 1,68,57, 3,34, 1, 3,39,51, 4,42,46, 2,50,57, 1,81, 5,
- 1,86,55, 1,37,48, 3, 2,51, 1,40,27, 0, 0, 0, 4, 6,86, 2, 7,44, 1,46,31,
- 2, 7,43, 3, 9,56, 2,11,39, 1,49,82, 2,11,40, 5, 9,73, 1,49,83, 0, 0, 0,
- 2,15,94, 1,54,18, 1,54,17, 3,17,74, 2,22,34, 2,22,32, 2,22,33, 2,22,31,
- 3,22,68, 2,22,30, 0, 0, 0, 0, 0, 0, 2,29, 3, 2,29, 6, 1,64, 5, 2,29, 4,
- 1,64, 4, 2,29, 5, 0, 0, 0, 2,36, 3, 3,34, 2, 4,36,17, 2,43,14, 2,43,15,
- 2,43,16, 3,39,52, 2,49,28, 2,49,27, 1,77,38, 2,49,26, 2,49,29, 2,55,76,
- 4,48,77, 5,59,82, 2,55,77, 2,55,78, 4,54,50, 2,61,24, 1,83,93, 1,86,56,
- 2,69,69, 0, 0, 0, 1,90,83, 2, 1,31, 3, 9,57, 1,49,84, 2,11,41, 1,54,19,
- 4,18,46, 4,18,48, 1,59,36, 3,22,69, 1,64, 6, 2,29, 7, 3,28,43, 1,68,59,
- 1,68,58, 3,34, 6, 0, 0, 0, 2,43,17, 2,43,18, 1,77,39, 1,77,40, 2,55,80,
- 2,55,79, 2,65,85, 2,79,18, 1,37,49, 2, 1,32, 1,38,64, 3, 3,90, 1,42,68,
- 2, 4,40, 3, 9,58, 1,49,85, 1,68,60, 1,37,50, 0, 0, 0, 2,11,42, 1,49,86,
- 2,11,43, 0, 0, 0, 1,83,94, 1,37,51, 3,69,24, 3,69,25, 2, 7,45, 0, 0, 0,
- 2,11,44, 3,13,34, 2,16, 5, 2,16, 4, 2,16, 2, 3,17,78, 2,16, 1, 2,16, 6,
- 2,16, 3, 3,17,76, 3,17,77, 1,59,37, 1,59,38, 3,22,70, 0, 0, 0, 1,64, 7,
- 2,29, 8, 4,24,46, 2,29, 9, 2,29,10, 3,28,45,15,28,28, 3,69,26, 2,36, 7,
- 2,36, 8, 2,36, 6, 3,34, 8, 2,36, 4, 2,36, 5, 1,68,61, 2,43,19, 2,49,32,
- /* plane 0, page 108 */
- 0, 255, /* first, last */
- 2,49,31, 2,49,30, 2,49,33, 2,55,82, 2,55,81, 1,81, 6, 2,55,83, 0, 0, 0,
- 1,84, 1, 2,61,25, 3,53,13, 2,65,86, 2,69,70, 2,77,53, 0, 0, 0, 1,37,52,
- 1,38,66, 1,38,65, 4, 3, 1, 1,46,32, 2, 1,33, 2, 1,63, 1,40,28, 0, 0, 0,
- 2, 2,56, 2, 4,41, 2, 4,42, 1,46,33, 3, 9,61, 2, 7,46, 3,69,27, 1,49,87,
- 2,11,45, 2,11,46, 0, 0, 0, 1,54,20, 1,54,24, 2,16, 7, 1,54,23, 1,54,21,
- 1,54,22, 0, 0, 0, 2,22,35, 1,59,39, 1,64,10, 3,28,46, 1,64, 8, 1,64, 9,
- 2,29,11, 3,34, 9, 3,34,10, 1,73,27, 1,37,53, 0, 0, 0, 2, 1,64, 3, 2,55,
- 1,38,67, 3, 2,52, 0, 0, 0, 2, 1,67, 3, 4, 1, 0, 0, 0, 1,38,70, 2, 1,66,
- 1,38,69, 1,38,68, 1,42,69, 2, 1,65, 3, 2,56, 3, 2,57, 2, 2,57, 0, 0, 0,
- 0, 0, 0,15, 1,70, 2, 2,61, 2, 2,63, 2, 2,64, 1,40,38, 1,40,39, 2, 2,60,
- 1,40,34, 3, 3,93, 2, 2,58, 3, 4, 5, 2, 2,62, 1,40,35, 3, 6,53, 1,40,30,
- 3, 3,92, 1,40,31, 3, 4, 3, 1,40,37, 2, 2,59, 1,40,29, 1,42,70, 1,40,32,
- 1,40,33, 1,40,36,15, 2,61, 3,69,28, 0, 0, 0, 2, 4,59, 2, 4,57, 2, 4,44,
- 1,42,82, 2, 4,51, 1,42,77, 2, 4,45, 3, 9,68, 2, 4,53, 3, 6,48, 2, 4,50,
- 1,42,80, 2, 4,49, 1,42,87, 2, 4,58, 1,42,89, 3, 6,51, 1,42,91, 3, 3,94,
- 2, 4,43, 3, 6,55, 1,42,78, 2, 4,60, 3, 6,49, 1,42,85, 1,42,88, 3, 6,44,
- 2, 7,69, 1,42,72, 1,43, 1, 1,42,86, 2, 4,46, 1,42,75, 1,42,90, 2, 4,54,
- 1,42,73, 1,42,74, 2, 7,67, 2, 4,47, 1,42,81, 1,42,92, 2, 4,61, 2, 4,48,
- 1,42,79, 3, 6,45, 1,42,84, 2, 7,47, 1,42,93, 2, 4,55, 1,42,83, 3, 9,67,
- 1,42,94, 1,42,71, 2, 4,52, 1,42,76, 2, 4,56, 2, 7,68, 3, 6,46, 3, 6,50,
- 3, 6,60, 3, 6,57, 3, 6,54,15, 4,72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3, 6,59, 1,46,45, 1,46,61, 2, 7,54, 1,46,52, 3,13,46,
- 2, 7,75, 1,46,37, 3, 9,75, 1,46,40, 2, 7,66, 4, 7, 6, 2, 7,52, 2, 7,56,
- 1,46,48, 1,46,50, 2, 7,59, 1,46,57, 1,46,43, 1,46,41, 1,46,42, 1,46,56,
- 2, 7,71, 1,46,51, 2, 7,58, 2, 7,60, 1,46,49, 1,46,54, 2, 7,61, 2, 7,74,
- 3, 9,77, 1,49,88, 1,46,60, 4, 6,93, 1,46,38, 2, 7,73, 3, 9,76, 2, 7,77,
- 2, 7,57, 2, 7,79, 2, 7,64, 1,46,47, 2, 7,53, 1,46,46, 1,46,64, 1,46,53,
- 3, 9,74, 2, 7,51, 2,11,55, 1,46,59, 1,46,63, 2, 7,65, 2, 7,70, 3, 9,69,
- 1,46,65, 1,46,58, 1,46,44, 1,46,34, 3, 9,73, 1,46,39, 4, 6,91, 2, 7,55,
- 1,46,35, 2, 7,78, 3, 9,71, 2, 7,49, 2, 7,48, 2, 7,62, 2, 7,50, 1,46,62,
- 1,54,25, 1,46,55, 2, 7,63, 1,46,36, 3,13,47, 1,50, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2, 7,76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,13,38,
- /* plane 0, page 109 */
- 0, 255, /* first, last */
- 2,11,62, 2,11,65, 3,13,48, 2,11,68, 2,11,57, 3,13,40, 3,13,42, 2,11,71,
- 2,11,74, 2,11,76, 2,11,54, 1,49,89, 1,49,94, 2,16,12, 1,50,16, 2,11,69,
- 2,11,77, 2,11,61, 2,11,53, 3,13,41, 3,13,39, 3,13,45, 2,16,39, 1,50, 3,
- 2,11,66, 2,11,58, 2,11,60, 1,50, 8, 3,17,90, 2,11,63, 1,50, 2, 2,11,50,
- 2,11,72, 3,13,43, 2,11,75, 3,13,37, 3,13,55, 1,49,93, 3,13,51, 1,50,11,
- 2,11,47, 1,50,13, 1,49,91, 1,50,17, 2,11,73, 2,11,49, 1,50,14, 2,16,33,
- 2, 7,72, 1,50, 1, 1,49,90, 2,11,56, 2,11,48, 1,50,15, 1,50, 7, 2,11,67,
- 1,50,12, 1,50,10, 2,11,59, 1,50, 4, 2,11,51, 1,50, 5, 1,50, 6, 2,11,52,
- 2,11,70, 1,49,92, 2,11,64, 4,10, 1, 3,13,53, 3,13,49, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,17,87, 3,17,83,
- 2,16,15, 1,54,33, 1,54,38, 3,17,89, 3,18, 6, 3,17,86, 2,16,24, 2,16,30,
- 2,16,26, 2,16,13, 2,16,16, 2,16, 9, 2,16,10, 1,54,45, 1,54,30, 2,16,25,
- 2,16,34, 1,54,40, 1,54,26, 3,17,79, 1,54,35, 2,16,17, 1,54,37, 2,16,18,
- 2,16,28, 3,18, 2, 3,18, 5, 3,17,82, 1,54,39, 2,16,43, 2,16,11, 1,54,32,
- 1,54,31, 1,54,43, 2,16, 8, 2,16,41, 2,16,29, 2,16,42, 2,16,36, 2,16,22,
- 2,16,37, 3,18, 1, 2,16,31, 2,16,40, 2,16,38, 1,54,44, 2,16,23, 1,54,29,
- 1,54,28, 1,54,36, 1,54,42, 2,16,35, 1,54,41, 2,16,20, 1,59,40, 3,17,88,
- 2,16,44, 2,16,19, 2,16,14, 1,54,34, 1,54,46, 1,54,27, 3,18, 7, 2,16,27,
- 2,16,32, 3,17,93, 3,17,91, 3,17,92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,69,29, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1,59,74, 2,22,37, 2,22,41, 3,22,79, 1,59,55, 1,59,53,
- 3,22,90, 3,23, 1, 1,59,44, 2,22,39, 2,22,38, 1,59,64, 3,28,48, 2,22,44,
- 1,59,58, 3,22,82, 2,22,62, 2,22,74, 1,59,41, 2,22,59, 2,22,52, 1,59,76,
- 2,22,36, 3,22,74, 2,22,64, 3,22,75, 1,59,73, 1,59,61, 1,59,72, 1,59,51,
- 2,22,48, 2,22,66, 2,22,58, 1,59,52, 1,59,46, 2,22,72, 3,22,76, 2,22,65,
- 2,22,67, 1,59,54, 1,59,62, 2,22,69, 2,22,46, 2,22,63, 2,22,51, 2,22,71,
- 1,59,67, 1,59,43, 1,59,65, 2,22,56, 2,22,54, 2,22,55, 1,59,56, 2,22,50,
- 2,22,49, 1,59,45, 2,22,43, 2,22,73, 1,59,47, 2,22,53, 1,59,77, 3,22,84,
- 1,59,71, 2,22,42, 1,59,68, 1,59,66, 1,59,75, 2,22,60, 1,59,70, 2,16,21,
- 2,22,61, 1,59,69, 2,22,68, 1,59,42, 2,22,57, 1,59,60, 2,22,45, 1,59,59,
- 3,22,92, 1,59,57, 1,59,49, 1,59,48, 2,29,12, 2,22,70, 3,28,61, 3,23, 8,
- /* plane 0, page 110 */
- 0, 255, /* first, last */
- 2,22,47, 3,23, 6, 3,23, 3, 2,29,33, 3,22,80, 1,59,50, 3,22,87, 3,23, 4,
- 3,22,86, 3,23, 5, 3,22,89, 4,18,77, 3,22,93, 0, 0, 0, 0, 0, 0, 3,69,30,
- 0, 0, 0, 0, 0, 0, 3,23, 9, 0, 0, 0, 0, 0, 0,15,22, 9, 0, 0, 0, 3,23, 7,
- 3,28,52, 1,64,39, 1,59,63, 1,64,21, 2,29,27, 1,64,35, 3,28,50, 2,29,15,
- 1,64,18, 1,64,14, 2,29,45, 1,64,20, 1,64,24, 1,64,19, 1,64,28, 2,29,49,
- 2,29,40, 3,28,75, 3,28,77, 2,29,22, 1,64,33, 1,64,27, 2,29,34, 1,64,11,
- 2,29,46, 2,29,39, 1,64,15, 2,29,28, 1,64,30, 2,29,57, 2,29,58, 4,24,59,
- 1,64,12, 2,29,44, 1,64,32, 2,29,32, 2,29,18, 2,29,19, 1,64,36, 2,29,23,
- 2,29,30, 2,29,24, 3,28,58, 1,64,34, 1,64,42, 2,29,20, 2,29,13, 2,29,14,
- 3,28,54, 2,29,16, 1,64,17, 2,29,29, 3,28,78, 1,64,31, 1,64,40, 3,28,56,
- 3,28,73, 2,29,31, 2,29,55, 2,29,47, 1,64,13, 2,29,53, 1,64,25, 3,28,70,
- 1,64,23, 3,28,68, 2,29,59, 1,64,22, 2,29,37, 2,29,25, 2,29,35, 1,64,45,
- 2,29,41, 2,29,38, 2,29,21, 1,64,41, 2,29,51, 2,29,48, 2,29,56, 1,64,16,
- 2,29,36, 1,64,44, 3,28,59, 2,29,43, 3,34,26, 3,28,64, 1,64,26, 1,64,29,
- 3,28,60, 2,29,42, 1,64,43, 2,29,26, 2,22,40, 3,28,49, 3,28,76, 2,29,52,
- 2,29,50, 2,29,54,15,28,61, 3,28,66, 3,69,34, 4,24,62, 3,28,67, 0, 0, 0,
- 3,28,72, 0, 0, 0,15,28,39, 0, 0, 0, 3,69,32, 0, 0, 0, 4,24,63, 0, 0, 0,
- 2,29,17, 1,64,38, 3,69,31, 3,69,33, 0, 0, 0, 2,36,39, 2,36,38, 2,36,12,
- 1,68,67, 3,34,16, 2,36,37, 2,36,15, 2,36,16, 4,30,31, 1,68,77, 2,36,46,
- 1,68,72, 2,36,36, 3,34,19, 2,36, 9, 1,68,78, 1,68,68, 2,36,24, 2,36,14,
- 2,36,17, 2,36,41, 1,68,62, 2,36,48, 2,36,40, 1,68,71, 2,36,29, 1,68,82,
- 3,34,14, 3,34,22, 1,68,81, 1,68,75, 3,34,32, 4,30,22, 2,36,47, 1,68,63,
- 2,36,27, 2,36,18, 2,36,31, 2,36,43, 1,68,83, 3,34,25, 1,68,65, 2,36,26,
- 3,34,13, 2,36,19, 1,68,74, 3,34,17, 1,68,73, 2,36,22, 2,36,32, 2,36,42,
- 2,36,13, 2,36,23, 1,68,66, 2,36,33, 1,68,79, 1,68,70, 2,36,20, 1,68,69,
- 2,36,11, 2,36,25, 2,36,45, 1,64,37, 1,73,55, 2,36,28, 2,43,20, 2,36,30,
- 2,36,44, 1,68,76, 2,36,21, 1,68,64, 1,68,80, 1,77,58, 2,36,10, 6,52,46,
- 2,36,35, 3,34,36, 3,34,30, 3,34,39, 2,36,34, 3,34,29, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,34,37, 0, 0, 0, 0, 0, 0, 3,34,31, 0, 0, 0,
- 3,34,27, 3,34,38, 0, 0, 0, 2,43,48, 1,73,52, 2,43,37, 2,43,42, 1,73,41,
- 3,39,54, 2,43,22, 1,73,54, 3,39,55, 1,73,32, 2,43,21, 2,43,54, 1,73,56,
- 2,43,25, 2,43,41, 3,39,69, 2,43,27, 2,43,57, 2,43,53, 1,73,30, 1,73,40,
- /* plane 0, page 111 */
- 0, 255, /* first, last */
- 2,49,59, 1,73,53, 1,73,38, 2,43,23, 3,39,67, 2,43,52, 1,73,42, 2,43,49,
- 2,43,62, 2,43,29, 2,43,38, 3,44,88, 3,39,59, 2,43,60, 2,43,50, 1,73,37,
- 3,44,74, 3,39,68, 2,43,36, 1,73,31, 1,73,29, 1,73,47, 4,36,35, 3,39,63,
- 2,43,34, 2,43,31, 2,43,32, 3,39,58, 2,43,56, 3,39,60, 2,43,61, 2,43,59,
- 1,73,35, 2,43,63, 1,73,39, 1,73,46, 4,36,36, 2,43,24, 2,49,35, 2,43,33,
- 3,39,62, 1,73,33, 1,73,51, 1,73,48, 1,73,36, 2,43,43, 2,43,28, 1,73,49,
- 2,43,45, 1,73,43, 1,73,45, 1,73,28, 3,39,61, 2,43,47, 2,43,39, 2,43,26,
- 1,73,44, 2,43,55, 2,43,58, 2,43,35, 2,43,46, 3,44,84, 1,73,34, 1,77,41,
- 2,43,44, 2,49,34, 3,39,66, 2,43,51, 3,39,65, 4,36,50,15,47,89, 0, 0, 0,
- 3,69,36, 3,69,37, 3,39,70, 0, 0, 0, 3,69,35, 0, 0, 0, 2,43,30, 2,49,44,
- 2,49,54, 1,77,44, 2,49,53, 2,49,65, 1,77,46, 2,49,51, 4,42,56, 2,49,55,
- 1,77,57, 3,44,93, 2,49,46, 1,77,49, 3,44,83, 2,49,58, 2,55,91, 1,77,61,
- 1,77,60, 2,49,60, 2,49,43, 2,49,70, 1,77,55, 3,44,75, 1,77,45, 2,49,63,
- 4,42,73, 2,49,67, 2,49,72, 2,49,61, 2,49,49, 1,77,48, 1,77,51, 1,77,59,
- 1,77,54, 3,44,85, 2,49,52, 2,43,40, 3,44,94, 3,44,76, 2,49,48, 2,49,71,
- 1,77,50, 3,44,89, 1,77,53, 2,49,73, 1,77,42, 2,49,62, 2,49,36, 2,49,68,
- 1,84,10, 3,44,90, 2,49,50, 4,48,85, 1,77,43, 2,49,45, 1,77,47, 2,49,37,
- 1,73,50, 2,49,41, 4,42,55, 2,49,66, 2,49,42, 2,49,40, 1,77,52, 3,44,91,
- 2,49,64, 3,44,87, 2,49,39, 2,49,57, 2,49,56, 2,49,69, 2,49,47, 1,77,56,
- 4,42,68, 3,69,39,15,47,93, 0, 0, 0, 0, 0, 0, 3,69,38, 2,55,94, 3,49,54,
- 1,81,19, 1,81, 9, 2,56,12, 2,55,86, 1,81,11, 2,56, 4, 1,81,18, 1,81,13,
- 2,56, 2, 2,61,27, 2,56, 8, 2,56,14, 2,56, 7, 2,55,84, 2,56, 5, 2,56,16,
- 2,56,18, 1,81, 8, 2,56,17, 1,81,14, 1,81,20, 3,49,52, 1,81,17, 3,49,56,
- 2,56,11, 1,81,16, 2,56, 6, 3,49,45, 2,55,88, 2,55,93, 3,49,48, 2,56,10,
- 1,81,15, 1,81,12, 1,81, 7, 1,81,10, 2,55,92, 4,49, 2, 2,49,38, 2,55,87,
- 2,55,90, 2,56,13, 2,56, 1, 2,55,85, 2,61,26, 2,56,15, 2,55,89, 2,56, 9,
- 3,44,81, 0, 0, 0, 0, 0, 0, 3,49,53, 2,61,29, 1,84,14, 3,53,16, 3,53,15,
- 1,84, 2, 3,53,21, 3,53,22, 1,84, 6, 2,61,31, 2,61,37, 2,61,35, 1,84, 4,
- 1,84, 5, 1,84,12, 2,61,38, 2,61,30, 1,84, 7, 3,53,17, 2,61,34, 2,61,33,
- 2,61,39, 1,84,13, 3,53,23, 1,84, 8, 1,84,11, 2,61,32, 1,84,15, 1,84, 9,
- 1,84,16, 1,84, 3, 2,61,36, 3,58,53, 2,61,28, 3,49,57, 3,53,25, 2,66, 5,
- 3,69,40, 0, 0, 0, 1,86,61, 2,66, 2, 2,66, 4, 3,56, 8, 1,86,59, 2,65,94,
- /* plane 0, page 112 */
- 0, 255, /* first, last */
- 2,66, 1, 2,65,90, 3,56,10, 3,56, 7, 2,56, 3, 2,65,91, 1,86,60, 2,65,87,
- 3,56, 6, 1,86,57, 2,66, 6, 1,86,58, 2,65,88, 2,65,89, 2,65,93, 1,86,63,
- 3,56, 9, 1,86,62, 4,59,62, 3,56,11, 2,65,92, 1,88,37, 2,69,74, 2,69,80,
- 1,88,38, 2,69,71, 1,88,35, 1,88,32, 2,69,82, 1,88,36, 3,58,50, 1,88,33,
- 2,69,73, 2,69,76, 2,69,77, 2,69,78, 2,69,81, 3,58,52, 2,66, 3, 2,69,72,
- 1,88,34, 2,69,79, 2,73,20, 2,69,75, 3,58,51, 3,69,42, 3,69,41, 2,73,11,
- 1,89,85, 2,73,14, 1,89,86, 2,73,23, 2,73,13, 2,73,10, 3,60,49, 2,73,12,
- 2,73,16, 2,73,19, 2,73,18, 2,73,22, 2,73, 9, 3,60,47, 1,89,84, 2,73,17,
- 2,73,21, 2,73,24, 2,73,15, 2,75,65, 2,75,66, 2,75,70, 2,75,71, 3,62,28,
- 2,75,68, 2,75,69, 2,75,67, 3,62,26, 1,90,84, 3,62,27, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1,91,68, 2,77,57, 3,64,22, 3,63,50, 2,77,54, 2,77,55, 2,77,56,
- 1,91,69, 3,64,23, 2,79,20, 2,79,19, 3,69,43, 2,80,29, 1,92,64, 2,80,27,
- 2,80,30, 2,80,28, 2,81, 5, 1,93, 4, 1,93,18, 2,81,81, 2,81,59, 3,65,89,
- 2,81,80, 2,82,30, 2,82,31, 1,37,54, 4, 1,48, 0, 0, 0, 3, 4, 8, 3, 4, 6,
- 1,40,40, 2, 2,65, 3, 4, 7, 3, 4,11, 2, 4,62, 3, 6,66, 1,43, 2, 3, 6,63,
- 1,43, 5, 3, 6,62, 2, 4,63, 3, 6,67, 1,43, 3, 1,43, 4, 3, 6,64,15, 4,81,
- 0, 0, 0, 3, 9,87, 2, 7,88, 2, 7,90, 2, 7,85, 2, 7,82, 2, 7,84, 3, 9,84,
- 3, 9,80, 3, 9,85, 1,46,69, 3, 9,79, 3, 9,89, 3, 9,86, 1,46,67, 3, 9,82,
- 3, 9,81, 2, 7,86, 1,46,68, 2, 7,83, 2, 7,80, 1,46,66, 2, 7,87, 4, 7, 9,
- 2, 7,81, 1,46,70, 2, 7,89, 4, 7,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,11,79,
- 3,13,62, 2,11,83, 3,13,60, 3,13,58, 1,50,26, 3,13,56, 4,10, 6, 3,13,69,
- 3,13,66, 2,11,86, 3,13,63, 1,50,18, 1,50,21, 1,50,23, 1,50,25, 1,50,22,
- 2,11,82, 2,11,81, 3,13,68, 1,50,20, 2,11,84, 2,11,85, 3,13,67, 2,11,78,
- 1,50,24, 3,13,72, 1,50,19, 3,13,61, 0, 0, 0, 0, 0, 0, 2,11,80, 3,69,45,
- 4,10, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,18, 8, 2,16,58, 2,16,59, 2,16,60,
- 1,54,51, 4,13,85, 1,54,47, 2,16,49, 3,18,10, 2,16,57, 2,16,62, 1,54,52,
- 3,18,11, 2,16,47, 2,16,53, 2,16,46, 2,16,56, 3,18,17, 3,18,15, 2,16,52,
- 1,54,48, 1,54,50, 2,16,61, 3,18, 9, 2,16,45, 2,16,48, 2,16,54, 3,18,13,
- 2,16,55, 2,16,63, 2,16,51, 3,18,12, 1,54,49, 3,69,47, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3,69,46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,18,16, 1,59,82,
- 2,22,81, 3,23,16, 3,23,18, 2,22,83, 2,22,79, 3,23,15, 2,22,91, 2,22,77,
- 2,22,90, 1,59,78, 2,22,75, 2,29,63, 2,22,85, 1,59,81, 3,23,21, 2,22,86,
- /* plane 0, page 113 */
- 0, 255, /* first, last */
- 2,22,89, 3,23,14, 2,22,93, 3,23,12, 2,22,82, 4,18,82, 2,22,87, 3,23,13,
- 3,23,17, 1,59,79, 1,59,80, 2,22,92, 2,22,80, 2,22,76, 2,22,94, 3,23,19,
- 2,22,84, 3,69,48, 3,69,49, 2,22,88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,22,78,
- 0, 0, 0, 1,64,46, 1,64,47, 2,29,73, 1,64,53, 3,28,84, 2,29,61, 2,29,70,
- 2,29,60, 1,64,50, 2,29,68, 2,29,66, 3,28,93, 2,29,67, 1,64,48, 3,28,92,
- 2,29,71,15,28,94, 3,28,79, 3,28,90, 3,28,82, 3,29, 1, 2,29,64, 2,29,62,
- 1,64,49, 2,29,65, 2,29,69, 3,28,91, 3,28,89, 3,28,81, 1,64,51, 3,28,83,
- 3,28,87, 3,69,51, 2,29,72, 3,69,52, 0, 0, 0, 3,69,53, 0, 0, 0, 3,69,50,
- 0, 0, 0, 2,36,54, 2,36,61, 2,36,63, 2,36,69, 3,34,55, 1,69, 2, 2,36,49,
- 3,34,44, 1,68,88, 3,34,46, 2,36,64, 1,68,93, 2,36,70, 1,68,84, 3,34,49,
- 2,36,67, 3,34,56, 2,36,51, 2,36,68, 2,36,50, 0, 0, 0, 1,69, 4, 3,34,50,
- 2,36,62, 1,68,85, 2,36,71, 3,40,28, 1,68,90, 2,36,55, 1,69, 1, 2,36,66,
- 2,36,53, 2,36,60, 2,36,56, 2,36,52, 1,68,87, 1,68,94, 1,68,92, 1,68,89,
- 1,69, 3, 1,68,86, 2,36,59, 3,34,47, 1,68,91, 3,34,57, 1,64,52, 3,34,41,
- 2,36,65, 3,69,57, 2,36,57, 0, 0, 0, 3,34,51, 3,69,55, 3,69,56, 3,69,54,
- 2,36,58, 4,36,55, 4,36,59, 2,43,71, 3,39,79, 1,73,59, 3,39,78, 3,39,76,
- 2,43,67, 2,43,73, 2,43,69, 3,39,80, 1,73,61, 2,43,68, 2,43,72, 2,43,64,
- 3,39,82, 2,43,66, 1,73,60, 3,39,74, 3,39,77, 3,39,75, 3,39,72, 2,43,70,
- 2,43,65, 3,39,71, 1,73,62, 3,69,59, 1,73,57,15,41,43, 3,69,58, 2,43,74,
- 15,41,63, 1,73,58, 2,49,79, 2,49,76, 2,49,88, 2,49,82, 2,49,84, 1,77,62,
- 2,49,78, 2,49,86, 3,45,10, 3,45, 4, 2,49,85, 2,49,83, 3,45, 9, 2,49,89,
- 1,77,65, 2,49,80, 2,49,87, 3,45, 8, 1,77,63, 3,45, 5, 3,45, 2, 2,49,75,
- 2,49,77, 1,77,64, 2,49,74, 2,49,90, 3,69,60, 2,49,81, 3,49,66, 3,49,58,
- 2,56,22, 1,81,27, 3,49,64, 3,49,60, 2,56,33, 2,56,31, 1,81,21, 2,56,21,
- 2,56,24, 2,56,25, 2,56,20, 1,81,31, 1,81,32, 2,56,19, 2,56,34, 2,56,29,
- 1,81,25, 1,81,22, 2,56,28, 2,56,26, 3,49,67, 4,49, 3, 1,81,28, 2,56,30,
- 1,81,23, 3,49,62, 1,81,24, 3,49,70, 2,56,27, 1,81,26, 2,56,23, 7,15,47,
- 2,56,32, 1,81,29, 2,56,35, 2,56,36, 1,81,30, 3,69,61, 3,69,62, 1,84,18,
- 1,84,25, 2,61,40, 2,61,46, 3,53,28, 2,61,44, 1,84,21, 1,84,20, 1,84,17,
- 2,61,42, 3,53,30, 3,53,35, 3,53,32, 1,84,23, 1,84,22, 1,84,19, 3,53,33,
- 2,61,45, 2,61,41, 2,61,43, 3,53,34, 1,84,24,15,58,83, 0, 0, 0, 0, 0, 0,
- 1,86,67, 2,66, 9, 3,56,13, 1,86,64, 1,86,65, 2,66,11, 1,86,66, 2,66, 8,
- /* plane 0, page 114 */
- 0, 255, /* first, last */
- 3,56,14, 2,66, 7, 2,69,86, 2,66,10, 3,58,54, 2,69,87, 1,88,39, 2,69,85,
- 3,58,55, 4,63,94, 2,69,84, 3,60,57, 2,69,83, 1,88,40, 3,69,63, 3,60,54,
- 1,89,87, 3,60,56, 3,60,53, 2,73,25, 2,73,26, 3,58,56, 3,60,51, 3,60,55,
- 3,69,65, 2,75,74, 2,75,73, 1,90,85, 3,63,51, 2,75,72, 2,77,58, 2,77,59,
- 3,63,52, 3,64,25, 2,79,21, 2,80,31, 3,65,35, 3,65,34, 2,81, 6, 2,82,12,
- 1,93,38, 2,82,32, 1,37,55, 4, 1,49, 1,46,71, 1,46,72, 3,13,73, 4,10,10,
- 1,50,27, 0, 0, 0, 3,29, 2, 0, 0, 0, 4,42,76, 1,84,26, 1,37,56, 0, 0, 0,
- 1,46,73, 1,54,53, 1,69, 5, 1,37,57, 3,13,75, 1,59,83, 1,73,63, 2, 1,34,
- 3, 9,92, 2,11,87, 2,16,64, 4,30,44, 2,43,75, 4,42,77, 1,84,27, 1,37,58,
- 1,46,74, 2,11,88, 2,11,89, 2,29,74, 1,64,54, 0, 0, 0, 3,34,61, 2,36,72,
- 3,34,60, 3,34,59, 1,69, 6, 2,43,76, 4,36,62, 3,45,14, 1,77,66, 3,45,13,
- 1,88,41, 1,37,59, 2,29,75, 1,37,60, 0, 0, 0, 1,40,42, 2, 2,66, 1,40,41,
- 1,43, 8, 1,43, 7, 1,43, 6, 2, 4,64, 3, 6,68, 3,10, 1, 3,10, 2, 1,46,75,
- 3,10, 3, 1,46,76, 2, 7,91, 4, 7,17, 2,11,90, 3,13,77, 2,11,93, 1,50,29,
- 2,11,91, 4,10,15, 1,50,28, 2,11,92, 1,50,30, 0, 0, 0, 2,16,67, 2,16,66,
- 2,16,65, 1,54,54, 3,18,22, 2,23, 2, 2,23, 3, 1,59,84, 2,23, 1, 2,23, 4,
- 1,64,56, 1,59,85, 3,29, 4, 3,29, 3, 1,64,55, 2,29,79, 2,29,78, 3,29, 5,
- 2,29,76, 2,29,77, 0, 0, 0, 2,29,80, 2,36,74, 2,36,73, 2,36,77, 4,30,47,
- 2,36,76, 2,36,75, 1,73,64, 2,43,79, 3,39,85, 2,43,78, 1,73,65, 2,43,77,
- 2,49,91, 3,45,15, 2,49,92, 1,77,67, 4,49,13, 2,56,37, 2,56,38, 5,46,23,
- 0, 0, 0, 2,69,92, 1,88,42, 2,69,91, 2,69,90, 2,69,88, 2,69,89, 1,90,86,
- 2,73,27, 2,77,60, 2,81, 7, 3,65,91, 1,37,61, 4, 1,24, 2, 1,68, 1,38,71,
- 2, 1,69, 3, 4,12, 3, 4,13, 4, 3, 7, 2, 2,67, 2, 2,68, 3, 6,75, 0, 0, 0,
- 0, 0, 0, 3, 6,73, 2, 4,70, 3, 6,70, 3, 6,71, 2, 4,66, 3, 6,74, 2, 4,65,
- 1,46,77, 2, 4,69, 1,43,10, 2, 4,67, 1,43, 9, 2, 4,71, 2, 4,68, 3, 6,72,
- 0, 0, 0, 2, 8, 1, 2,11,94, 2, 7,93, 2, 8, 6, 3,10, 6, 1,46,78, 3,10,10,
- 1,46,81, 2, 8, 7, 2, 8, 3, 3,10, 7, 2, 8, 4, 4, 7,22, 2, 7,92, 1,46,80,
- 2, 7,94, 1,46,79, 2, 8, 5, 3,10, 8, 2, 8, 2, 6,12,94, 0, 0, 0, 2,12, 4,
- 1,50,32, 1,50,33, 3,13,85, 2,12, 7, 2,12, 1, 3,13,84, 2,12, 6, 3,13,80,
- 2,12, 2, 1,50,31, 2,12, 5, 2,12, 3, 3,13,83, 3,13,81, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,16,73, 2,16,70, 3,18,24, 2,16,72, 1,54,59,
- 1,54,58, 1,54,56, 2,16,69, 2,16,74, 1,54,55, 1,54,57, 2,16,71, 2,23,12,
- /* plane 0, page 115 */
- 0, 255, /* first, last */
- 2,16,68, 2,16,75, 3,18,25, 0, 0, 0, 4,19, 3, 4,19,10, 3,29, 6, 2,23, 7,
- 2,23,11, 5,19,52, 2,23,10, 2,29,82, 2,29,93, 4,19,13, 3,23,27, 2,23,13,
- 3,23,26, 2,23, 8, 2,29,81, 1,59,89, 4,19, 2, 4,19,12, 1,59,88, 2,23, 6,
- 2,23, 9, 1,59,90, 3,23,25, 1,59,87, 1,59,86, 2,23, 5, 2,23,14, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2,29,84, 2,29,91, 3,29, 7, 1,64,58, 2,29,90, 2,29,87,
- 3,29,14, 1,64,60, 3,29, 9, 3,29,11, 3,29,10, 2,29,89, 3,34,65, 3,29,13,
- 2,29,83, 2,29,85, 2,29,88, 2,29,86, 1,64,59, 2,29,92, 1,64,57, 1,69, 7,
- 3,29, 8, 0, 0, 0, 2,36,81, 2,36,80, 2,36,78, 6,52,92, 1,69,10, 1,69, 9,
- 2,36,82, 3,34,63, 2,36,79, 2,43,80, 1,73,66, 1,69, 8, 3,34,66, 3,69,66,
- 3,69,67, 2,36,84, 2,36,83, 3,45,16, 2,43,83, 2,43,81, 1,77,68, 3,39,89,
- 1,73,67, 2,43,82, 2,49,94, 3,39,88, 3,39,90, 3,39,87, 4,42,87, 1,77,69,
- 2,49,93, 2,50, 8, 2,50, 7, 2,50, 5, 4,42,85, 2,50, 4, 2,50, 1, 2,50, 2,
- 2,50, 3, 2,50, 6, 2,50, 9, 0, 0, 0, 0, 0, 0, 2,56,43, 2,56,40, 2,56,41,
- 1,81,33, 2,56,39, 2,56,45, 2,56,44, 2,56,42, 0, 0, 0, 2,61,48, 2,61,49,
- 1,84,28, 3,53,41, 1,84,29, 2,61,47, 4,54,76, 1,86,69, 2,66,12, 1,86,68,
- 1,88,43, 4,64, 5, 1,88,44, 1,89,88, 2,73,29, 2,73,28, 2,75,75, 2,77,61,
- 1,91,70, 2,79,23, 2,79,22, 2,79,24, 1,38,72, 2,12, 8, 1,54,60, 1,59,91,
- 2,23,15, 1,38,73, 2, 1,70, 1,37,62, 3, 2,58, 3, 1,75, 2, 2,69, 3, 4,15,
- 4, 3,10,15, 2,70, 2, 4,76, 2, 4,74, 2, 4,75, 2, 4,72, 1,43,11, 2, 4,73,
- 3, 6,78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,10,19, 2, 8,15, 3,10,13, 1,46,84,
- 2, 8,13, 2, 8, 9, 2, 8,12, 3,10,12, 2, 8, 8, 1,46,86, 2, 8,11, 3,10,11,
- 1,46,83, 1,46,82, 3,10,18, 1,46,85, 2, 8,14, 2, 8,10, 0, 0, 0, 3,10,15,
- 0, 0, 0, 0, 0, 0, 1,50,37, 1,50,40, 2,12,16, 2,12,15, 2,12,14, 1,50,34,
- 2,12,23, 2,12,13, 4,14,10, 1,50,36, 2,16,80, 3,13,88, 2,12,20, 2,12,18,
- 1,50,39, 3,13,91, 2,12,10, 2,12,21, 3,13,87, 2,12,12, 2,12,22, 2,12,19,
- 2,12,11, 3,13,90, 1,50,35, 2,12,24, 2,12, 9, 1,50,38, 3,13,94, 3,13,89,
- 3,13,92, 0, 0, 0, 2,16,85, 2,16,76, 2,16,87, 3,18,30, 2,16,79, 2,16,90,
- 2,16,91, 2,16,77, 2,16,89, 2,16,86, 2,16,84, 2,16,88, 1,54,66, 3,18,32,
- 1,54,64, 3,18,39, 3,18,28, 2,16,82, 3,18,38, 2,16,78, 3,18,33, 2,16,81,
- 2,16,92, 2,16,83, 1,54,65, 2,12,17, 3,18,29, 1,54,61, 1,54,63, 3,69,68,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,23,29, 2,23,29, 2,23,18, 2,23,16, 3,29,24,
- 2,23,17, 3,18,31, 2,23,24, 3,23,32, 2,23,25, 2,23,21, 1,60, 2, 2,23,26,
- /* plane 0, page 116 */
- 0, 255, /* first, last */
- 2,23,23, 2,23,20, 3,23,28, 1,59,94, 2,23,19, 1,59,92, 1,60, 1, 2,23,22,
- 2,23,30, 1,54,62, 1,59,93, 2,23,28, 2,23,27, 1,60, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3,69,69,15,22,55, 3,29,22, 3,29,26, 2,30, 4, 3,29,15,
- 3,29,27, 3,29,18, 2,30, 5, 1,64,70, 3,29,25, 2,30,11, 3,34,77, 3,29,21,
- 2,30,13, 2,30, 6, 1,64,64, 2,30,10, 2,30, 9, 1,64,65, 1,64,71, 3,34,68,
- 1,64,72, 2,30,12, 1,64,62, 2,30, 3, 2,30, 1, 2,30, 7, 2,29,94, 1,64,69,
- 2,30, 2, 2,30, 8, 2,30,14, 1,64,63, 1,64,68, 1,64,66, 1,64,67, 0, 0, 0,
- 3,29,19, 3,29,28, 1,64,61, 3,69,70, 3,29,23, 3,34,72, 3,34,85, 1,69,17,
- 2,36,91, 1,69,16, 2,37, 1, 3,34,79, 2,36,85, 3,34,84, 2,37, 2, 3,34,78,
- 3,34,70, 3,34,81, 2,36,86, 2,36,87, 3,34,83, 2,37, 3, 2,36,94, 2,36,92,
- 2,36,93, 2,36,89, 2,36,88, 3,34,71, 2,37, 4, 1,69,13, 3,34,75, 2,36,90,
- 3,34,80, 1,69,18, 1,69,12, 1,69,19, 1,69,20, 3,34,74, 1,69,15, 1,69,14,
- 3,40, 5, 3,39,94, 2,43,84, 1,73,69, 1,73,68, 3,39,92, 3,39,93, 2,43,89,
- 3,40, 2, 1,77,70, 1,73,70, 3,40, 1, 3,39,91, 1,73,72, 2,43,90, 1,69,11,
- 1,73,71, 2,43,86, 2,43,88, 2,43,85, 3,40, 7, 2,43,87, 3,40, 3, 0, 0, 0,
- 15,41,86, 2,50,19, 3,45,17, 3,45,27, 2,50,18, 2,50,15, 1,77,73, 2,56,46,
- 1,77,74, 2,50,14, 3,45,25, 1,77,72, 3,45,22, 2,50,16, 2,50,13, 2,50,10,
- 2,50,17, 2,50,11, 2,50,12, 1,77,71, 3,45,21, 3,69,72, 0, 0, 0, 4,49,25,
- 2,61,53, 4,49,26, 2,56,50, 3,45,26, 2,56,49, 2,56,51, 3,49,74, 2,61,50,
- 1,81,36, 4,49,24, 2,56,47, 3,49,71, 1,81,34, 3,49,76, 1,81,38, 1,81,37,
- 2,56,48, 2,56,52, 3,49,75, 1,81,35, 3,69,71, 2,61,57, 1,84,32, 1,86,70,
- 1,84,33, 1,84,30, 2,61,54, 2,61,52, 3,53,47, 2,61,55, 3,53,43, 2,61,58,
- 1,84,31, 2,61,56, 2,61,51, 3,53,45, 3,69,73, 2,66,15, 2,66,18, 2,70, 1,
- 2,66,13, 3,56,15, 2,73,30, 2,66,19, 3,56,16, 1,88,45, 2,66,17, 1,86,71,
- 2,66,14, 2,66,16, 2,66,20, 2,70, 2, 3,58,58, 2,69,94, 4,64, 7, 3,58,60,
- 3,58,61, 3,58,59, 1,88,46, 2,69,93, 3,60,62, 3,60,60, 3,60,63, 1,89,89,
- 3,60,61, 3,60,64, 0, 0, 0, 3,62,29, 1,90,88, 2,77,63, 1,90,87, 2,77,65,
- 2,77,62, 2,77,64, 1,92,28, 2,80,32, 1,38,74, 2, 8,16, 2,16,93, 2,16,94,
- 1,60, 4, 2,37, 5, 1,81,39, 1,88,47, 1,91,71, 2,80,33, 1,38,75, 0, 0, 0,
- 2, 8,17, 1, 3, 2, 4,10,28, 3,14, 2, 2,12,25, 3,14, 1, 2,12,26, 3,14, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,18,40, 2,17, 1, 2,17, 2, 1,60, 5, 1,60, 6,
- 15,22,71, 3,29,29, 4,25, 5, 2,30,15, 0, 0, 0, 2,37, 8, 2,37, 7, 2,37, 6,
- /* plane 0, page 117 */
- 0, 255, /* first, last */
- 2,43,91, 3,34,87, 2,43,92, 2,43,93, 1,73,73, 0, 0, 0, 3,40, 8, 2,50,21,
- 2,50,20, 3,45,29, 3,49,77, 2,56,53, 1,81,40, 1,81,41, 3,49,78, 2,61,62,
- 2,61,59, 2,61,60, 2,61,61, 2,66,22, 2,66,21, 1,86,72, 2,70, 3, 2,75,76,
- 1,38,76, 0, 0, 0, 1,50,41, 3,23,36, 1,60, 7, 2,37, 9, 3,34,88, 1,38,77,
- 4,10,32, 2,17, 3, 1,60, 8, 3,23,37, 3,29,30, 1,64,73, 1,64,74, 5,39,41,
- 1,38,78, 1,38,79, 2, 2,70, 1,43,13, 1,43,12, 1,50,42, 2,12,27, 2,30,16,
- 1,38,80, 1,38,81, 1,38,82, 1,38,83, 0, 0, 0, 0, 0, 0, 4, 3,11, 1,43,14,
- 1,43,15, 2, 4,78, 2, 4,77, 3,10,23, 0, 0, 0, 1,46,87, 2, 8,20, 2, 8,18,
- 2, 8,19, 3,10,24, 3,10,21, 4, 7,32, 3,10,22, 0, 0, 0, 3,14, 7, 2,12,28,
- 2,12,29, 3,14, 5, 3,14, 8, 1,50,46, 1,50,44, 3,14,10, 1,50,45, 1,50,43,
- 3,14, 6,15,11,90, 0, 0, 0,15,12,42, 1,54,67, 3,18,46, 3,18,45, 3,18,48,
- 3,18,47, 1,54,71, 1,54,70, 2,17, 4, 1,54,69, 1,54,68, 3,18,49, 2,17, 5,
- 0, 0, 0, 3,23,38, 1,60,11, 2,23,32, 2,23,31, 1,60, 9, 1,60,10, 3,23,41,
- 3,23,39, 0, 0, 0, 1,64,76, 1,64,75, 2,30,18, 3,29,35, 3,29,34, 2,30,17,
- 1,60,12, 3,29,36, 4,25,12, 0, 0, 0, 0, 0, 0, 4,30,75, 1,69,21, 2,37,11,
- 1,69,22, 2,37,10, 3,34,91, 4,36,92, 4,36,91, 2,43,94, 2,50,22, 1,77,75,
- 2,56,54, 3,49,80, 0, 0, 0, 3,53,50, 2,61,63, 4,59,84, 1,88,49, 1,88,48,
- 4,67,72, 3,60,66, 1,91,72, 1,38,84, 2, 8,21, 0, 0, 0, 3,29,37, 1,60,13,
- 2,44, 1, 1,73,74, 3, 2,59, 3, 6,83, 2, 4,79, 2, 4,80, 0, 0, 0, 0, 0, 0,
- 2, 8,22, 1,46,89, 1,46,90, 3,10,26, 4, 7,35, 1,46,88, 3,10,27, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1,50,50, 1,50,51, 1,50,48, 1,50,49, 3,14,11, 2,12,30,
- 3,14,15, 4,10,42, 2,12,31, 1,50,47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2,17, 6, 3,18,55, 1,54,75, 1,54,76, 3,18,53, 1,60,16, 2,17,12, 4,14,32,
- 1,54,81, 1,54,79, 2,17,13, 2,17, 8, 1,54,78, 1,54,77, 1,54,72, 2,17,11,
- 2,17,10, 2,17, 7, 1,54,80, 3,18,50, 2,17, 9, 1,54,73, 4,14,20, 1,54,74,
- 0, 0, 0, 0, 0, 0, 1,60,17, 2,23,36, 2,23,37, 1,60,18, 2,23,33, 2,23,35,
- 2,23,39, 2,23,38, 2,23,34, 3,23,42, 1,60,14, 1,60,15, 0, 0, 0, 2,30,26,
- 1,64,81, 1,64,80, 2,30,20, 1,64,78, 4,25,20, 2,30,23, 1,64,82, 2,30,24,
- 1,64,83, 2,30,21, 1,64,77, 1,64,79, 2,30,25, 3,29,39, 2,30,22, 2,30,19,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,30,87, 2,37,24, 3,34,92, 2,37,13,
- 1,69,24, 1,69,27, 1,69,26, 1,69,31, 1,69,30, 2,37,25, 2,37,23, 2,37,16,
- 2,37,20, 2,37,19, 1,69,28, 2,37,22, 2,37,18, 2,37,26, 2,37,17, 1,69,29,
- /* plane 0, page 118 */
- 0, 255, /* first, last */
- 1,69,23, 1,69,25, 3,34,93, 2,37,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,40,11,
- 2,44, 3, 1,73,78, 2,44, 7, 1,73,77, 2,44, 4, 1,73,76, 3,40, 9, 2,37,14,
- 2,37,21, 2,44, 6, 4,36,94, 1,73,79, 2,44, 8, 2,44, 5, 2,44, 2, 0, 0, 0,
- 0, 0, 0, 2,50,25, 2,50,29, 2,50,31, 2,50,27, 2,50,26, 2,50,24, 1,77,78,
- 1,77,76, 1,77,81, 1,77,82, 2,50,28, 1,77,79, 2,50,23, 1,77,80, 1,73,75,
- 2,50,30, 1,77,77, 0, 0, 0, 0, 0, 0, 3,49,81, 2,56,56, 4,49,47, 2,56,55,
- 2,56,63, 2,56,57, 2,56,62, 2,56,59, 1,81,42, 2,56,61, 3,49,83, 3,49,82,
- 1,81,43, 4,49,45, 1,81,44, 3,49,84, 2,56,60, 2,56,58, 0, 0, 0, 0, 0, 0,
- 4,55, 1, 4,55, 4, 1,84,35, 2,61,64, 3,53,53, 3,53,51, 1,84,34, 2,61,67,
- 2,61,65, 2,61,66, 5,53,73, 5,60,22, 1,84,36, 0, 0, 0, 3,53,52, 3,56,20,
- 2,66,26, 3,56,19, 1,86,75, 2,66,27, 4,59,85, 4,59,89, 1,86,73, 2,66,28,
- 1,86,74, 2,66,25, 2,66,29, 3,56,18, 2,66,23, 0, 0, 0, 0, 0, 0, 1,88,50,
- 2,70, 4, 1,88,51, 1,89,90, 0, 0, 0, 2,66,24, 1,89,91, 0, 0, 0, 3,62,31,
- 3,62,30, 1,90,89, 2,75,77, 0, 0, 0, 1,91,74, 2,77,66, 1,91,73, 3,64,27,
- 2,79,25, 1,92,65, 1,92,66, 3,69,74, 7,68,50, 2,82,26, 3, 2,60, 3,69,75,
- 1,50,52, 2,12,32, 0, 0, 0, 1,64,84, 1,64,85, 1,38,85, 1,40,43, 2, 2,71,
- 3, 6,84, 2, 4,81, 1,43,16, 3, 6,86, 1,46,91, 4,10,44, 1,50,53, 1,50,54,
- 1,50,55, 2,23,41, 2,17,14, 1,54,82, 4,14,33, 4,14,35, 1,60,19, 2,23,40,
- 3,23,45, 0, 0, 0, 2,30,28, 1,64,87, 3,29,44, 2,30,27, 1,64,86, 3,34,94,
- 3,35, 1, 2,37,27, 1,77,83, 2,50,35, 2,50,32, 2,50,33, 2,50,34, 4,49,52,
- 4,49,53, 3,49,86, 5,60,35, 3,53,54, 2,61,68, 3,53,55, 2,66,30, 4,59,92,
- 4,59,93, 3,58,62, 2,73,32, 2,73,31, 4,70,58, 2,77,67, 1,38,86, 2, 8,23,
- 1,54,83, 0, 0, 0, 0, 0, 0, 3,29,45, 1,64,88, 2,37,28, 4,37,20, 3,40,16,
- 2,44, 9, 3,40,14, 1,77,84, 2,56,64, 3,69,76, 2,66,31, 2,73,33, 1,38,87,
- 3, 6,87, 3, 6,88, 1,46,92, 1,50,58, 2,12,33, 1,50,59, 1,50,57, 3,14,18,
- 1,50,56, 2,17,15, 1,54,84, 3,18,58, 3,18,59, 1,54,85, 1,54,86, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1,60,21, 2,23,42, 1,60,20, 3,23,48, 3,23,50, 3,23,49,
- 15,23, 3, 3,29,47, 2,30,29, 1,60,22, 1,64,89, 2,37,29, 1,69,32, 1,69,33,
- 4,37,21, 1,73,80, 3,40,17, 1,73,81, 1,77,85, 1,81,46, 2,56,65, 1,81,45,
- 4,55,13, 2,61,69, 1,84,37, 3,56,21, 2,66,32, 2,73,34, 1,38,88, 1,43,17,
- 2, 8,26, 2, 8,25, 1,46,93, 2, 8,24, 1,46,94, 2, 8,27, 4,10,53, 2,12,39,
- 1,50,62, 1,50,61, 2,12,41, 2,12,40, 1,50,66, 3,14,21, 1,50,65, 3,14,19,
- /* plane 0, page 119 */
- 0, 254, /* first, last */
- 4,10,57, 1,50,60, 4,10,61, 2,12,35, 2,12,36, 2,12,37, 4,10,50, 1,50,67,
- 2,12,34, 1,50,63, 2,12,38, 1,50,64, 0, 0, 0, 0, 0, 0, 3,18,68, 3,18,63,
- 2,17,18, 2,17,22, 2,17,20, 2,17,19, 4,14,53, 2,17,23, 3,18,62, 4,14,47,
- 3,18,72, 2,17,24, 2,17,25, 2,17,17, 4,14,49, 2,17,16, 3,23,57, 1,54,88,
- 1,54,89, 3,18,71, 2,17,26, 2,17,21, 3,18,69, 2,23,51, 3,23,53, 2,17,27,
- 1,54,90, 1,54,87, 3,18,60, 3,18,67, 0, 0, 0, 2,23,45, 4,19,47, 2,23,44,
- 3,23,51, 2,23,46, 2,23,47, 2,23,49, 2,23,48, 2,23,53, 1,60,26, 1,60,23,
- 1,60,27, 2,23,43, 1,60,28, 2,23,52, 1,60,25, 2,23,50, 1,60,24, 3,18,66,
- 3,23,55, 4,19,54, 3,29,54, 3,29,51, 2,30,32, 2,30,34, 2,30,30, 2,30,31,
- 3,29,49, 3,29,50, 2,30,35, 2,30,37, 2,30,38, 2,30,33, 2,30,36, 1,64,90,
- 0, 0, 0, 0, 0, 0, 2,37,33, 3,35, 7, 2,37,38, 2,37,30, 2,37,34, 4,31, 9,
- 3,35, 8, 2,37,39, 2,37,35, 1,69,34, 1,69,42, 3,35, 5, 1,69,37, 2,37,31,
- 2,37,32, 1,73,85, 1,69,45, 1,69,38, 3,35, 6, 1,69,43, 1,69,36, 2,37,37,
- 1,69,44, 2,37,36, 1,69,40, 1,69,35, 1,69,41, 2,37,40, 2,44,14, 2,44,16,
- 4,37,34, 3,40,25, 4,37,32, 4,37,29, 3,40,19, 3,40,22, 3,40,21, 3,40,20,
- 3,40,24, 1,69,39, 3,40,27, 3,40,29, 2,44,11, 1,73,83, 2,44,17, 1,73,84,
- 2,44,15, 2,44,10, 2,44,13, 2,44,18, 1,73,82, 2,44,12, 0, 0, 0, 1,77,87,
- 2,50,39, 2,50,38, 3,45,36, 1,77,90, 1,77,88, 2,50,36, 1,77,86, 2,50,37,
- 3,45,38, 1,77,89, 0, 0, 0, 0, 0, 0, 4,49,63, 2,56,73, 3,49,91, 2,56,75,
- 3,49,89, 2,56,74, 2,56,66, 2,56,70, 2,56,69, 2,56,67, 1,81,48, 1,81,49,
- 1,81,47, 2,56,68, 2,56,71, 2,56,72, 3,53,57, 1,81,50, 3,53,56, 1,84,42,
- 2,61,77, 3,53,59, 1,84,39, 2,61,71, 1,84,41, 1,84,43, 4,49,65, 3,53,60,
- 1,84,40, 2,61,76, 2,61,72, 1,84,38, 2,61,75, 2,61,70, 2,61,74, 2,61,73,
- 3,56,22, 3,56,24, 2,66,34, 1,86,78, 1,86,79, 1,86,76, 3,56,27, 1,86,77,
- 3,56,26, 3,56,25, 2,66,33, 4,64,25, 2,70, 7, 3,58,64, 3,58,63, 1,88,52,
- 0, 0, 0, 2,70, 5, 2,70, 6, 0, 0, 0, 2,73,35, 2,73,38, 2,73,36, 2,73,37,
- 2,75,78, 3,62,34, 4,70,62, 1,90,90, 2,79,26, 2,80,34, 4,75,84, 1,92,67,
- 2,81, 8, 2,81, 9, 1,93,19, 1,38,89, 1,50,68, 3,18,73, 2,30,39, 3,29,55,
- 2,37,41, 4,76,86, 1,38,90, 1,43,18, 4, 7,50, 1,47, 1, 3,14,22, 2,12,42,
- 2,12,43, 1,54,91, 4,19,59, 0, 0, 0, 2,30,40, 1,64,91, 1,69,46, 1,84,44,
- 2,61,78, 2,70, 8, 2,73,39, 1,38,91, 3, 6,91, 3, 6,92,15, 5, 3, 2, 8,33,
- 2, 8,28, 2, 8,30, 2, 8,32, 2, 8,31, 2, 8,29, 1,47, 2,15, 8,20,
- /* plane 0, page 120 */
- 2, 255, /* first, last */
- 1,50,69, 2,12,52, 3,14,25, 2,12,47, 2,12,44, 3,14,27,
- 3,14,30, 2,12,51, 3,14,23, 3,14,26, 1,50,71, 1,50,72, 2,12,50, 2,12,49,
- 2,12,48, 2,12,45, 2,12,46, 2,12,53, 1,50,70, 3,14,29, 0, 0, 0, 0, 0, 0,
- 15,12,60, 3,69,77, 0, 0, 0, 3,69,78, 0, 0, 0, 1,55, 1, 3,70,92, 1,55, 7,
- 1,55, 6, 2,17,36, 2,17,30, 2,17,28, 3,18,76, 1,55, 4, 2,23,60, 1,54,93,
- 2,17,33, 2,17,37, 2,17,39, 2,17,35, 2,17,29, 1,55, 5, 2,17,34, 2,17,32,
- 1,54,92, 2,17,40, 1,55, 8, 2,17,38, 1,55, 2, 2,17,31, 3,18,77, 1,55, 3,
- 1,54,94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,69,79, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3,23,66, 1,60,30, 4,19,61, 2,23,61, 3,23,67, 3,23,61,
- 2,23,54, 2,23,56, 2,23,58, 3,23,63, 2,23,59, 2,23,57, 1,60,31, 3,23,65,
- 2,23,62, 3,23,64, 2,23,55, 3,69,80, 3,69,81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3,69,82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,30,44, 1,64,92, 2,30,52, 3,29,60,
- 2,30,41, 6,44,15, 2,30,53, 3,29,57, 2,30,42, 2,30,43, 3,29,61, 4,25,52,
- 2,30,51, 2,30,50, 2,30,47, 1,60,29, 1,64,93, 2,30,45, 2,30,48, 1,64,94,
- 2,30,49, 2,30,46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,29,58, 0, 0, 0,
- 3,35,17, 2,37,52, 3,35,13, 2,37,56, 1,69,53, 3,35,14, 2,44,24, 1,69,56,
- 2,37,54, 3,35,23, 3,35, 9, 2,37,51, 2,37,46, 2,37,48, 2,37,49, 2,37,42,
- 3,35,21, 1,69,52, 3,35,11, 3,35,16, 1,69,51, 3,35,20, 1,69,47, 2,37,45,
- 3,35,10, 1,69,54, 3,35,22, 1,69,55, 2,37,44, 2,37,47, 2,37,55, 1,69,49,
- 1,69,50, 2,37,53, 2,37,43, 0, 0, 0,15,36, 5, 4,37,51, 2,44,26, 1,73,87,
- 2,44,28, 2,37,50, 2,44,30, 1,73,91, 2,44,31, 2,44,27, 3,40,30, 1,73,88,
- 2,44,23, 1,73,90, 2,44,20, 2,44,25, 2,44,29, 2,44,22, 3,40,31, 3,40,37,
- 1,69,48, 3,40,36, 2,44,19, 1,73,89, 2,44,21, 0, 0, 0, 0, 0, 0, 3,69,83,
- 3,40,32,15,42,31, 1,77,93, 2,50,41, 1,78, 3, 4,43,57, 1,78, 1, 4,43,55,
- 3,45,42, 1,73,86, 3,45,45, 2,50,48, 2,50,49, 1,77,92, 3,45,40, 3,45,44,
- 2,50,47, 2,50,50, 1,77,94, 1,77,91, 2,50,43, 2,50,40, 2,50,45, 2,50,42,
- 1,78, 4, 2,50,44, 3,45,43, 3,45,41, 2,50,46, 1,78, 2, 3,50, 1, 0, 0, 0,
- 3,69,84, 0, 0, 0, 1,81,52, 2,56,82, 3,50, 4, 2,56,76, 2,56,80, 2,56,86,
- 2,56,87, 2,56,83, 2,56,84, 2,56,81, 4,43,61, 2,56,78, 4,49,78, 1,81,54,
- 1,81,51, 2,56,77, 2,56,79, 3,50, 2, 1,81,53, 2,56,85, 3,69,85, 1,84,48,
- 3,53,64, 3,53,66, 2,61,85, 2,61,79, 1,84,47, 0, 0, 0, 4,55,30, 1,84,45,
- 3,53,65, 2,61,87, 1,84,46, 2,61,82, 2,61,83, 2,61,80, 2,61,88, 2,61,84,
- /* plane 0, page 121 */
- 0, 255, /* first, last */
- 4,55,32, 1,84,49, 2,61,81, 0, 0, 0, 2,61,89, 2,61,86, 3,56,35, 3,56,30,
- 3,56,32, 2,66,38, 3,56,31, 3,56,28, 2,66,35, 3,56,34, 1,86,80, 4,60,18,
- 2,66,39, 2,66,41, 2,66,40, 2,66,36, 2,66,37, 3,56,36, 0, 0, 0, 2,70,13,
- 3,58,65, 1,88,53, 3,58,66, 2,70,10, 2,70,12, 2,70, 9, 2,70,14, 4,64,34,
- 3,58,67, 2,70,11, 3,69,86, 2,73,41, 2,73,44, 2,73,40, 1,89,92, 2,73,42,
- 2,73,43, 2,73,45, 1,89,93, 1,90, 1, 1,89,94, 2,75,79, 3,62,37, 2,75,81,
- 3,62,35, 2,75,80, 3,62,36, 0, 0, 0, 0, 0, 0, 2,77,68,15,74,70, 3,64,28,
- 2,80,35, 2,81,10, 1,38,92, 0, 0, 0, 3, 4,19, 2, 4,82, 1,47, 3, 2, 8,35,
- 1,47, 4, 1,47, 5, 2, 8,34, 0, 0, 0, 2,12,58, 2,12,57, 1,50,73, 1,50,76,
- 1,50,75, 1,50,74, 2,12,54, 2,12,56, 2,12,55, 3,69,87, 0, 0, 0, 2,17,43,
- 1,55,10, 2,17,47, 2,17,46, 2,17,45, 2,17,41, 1,55, 9, 1,55,13, 1,55,16,
- 3,18,79, 3,18,80, 1,55,17, 2,17,42, 2,17,44, 1,55,15, 1,55,14, 1,55,12,
- 1,55,11, 2,23,69, 3,18,82, 2,23,67, 2,23,63, 1,60,32, 3,29,62, 2,23,64,
- 1,60,33, 2,23,65, 2,23,66, 2,23,68, 3,23,70, 1,60,34, 3,23,69, 0, 0, 0,
- 2,30,57, 3,29,63, 2,30,56, 2,30,55, 2,30,54, 3,29,68, 3,29,66, 4,25,58,
- 0, 0, 0, 2,37,60, 1,69,57, 4,31,38, 2,37,57, 2,37,59, 3,35,24, 1,69,58,
- 3,35,29, 1,69,59, 2,37,58, 3,35,25, 3,29,67, 0, 0, 0, 3,69,88, 3,40,40,
- 2,44,40, 3,40,39, 2,44,33, 2,44,34, 5,39,94, 1,73,94, 1,73,92, 1,73,93,
- 2,44,42, 5,40, 2, 2,44,41, 2,44,38, 2,44,37, 2,44,36, 2,44,35, 2,44,39,
- 2,44,32, 3,69,89, 2,50,51, 2,50,56, 2,50,54, 3,45,48, 3,45,49, 3,45,47,
- 2,50,53, 2,50,52, 2,50,55, 3,69,90, 2,56,88, 3,50, 6, 1,81,55, 1,84,50,
- 2,61,91, 3,50, 7, 1,84,51, 2,61,90, 2,66,43, 2,66,42, 1,86,81, 3,56,37,
- 2,70,15, 1,88,54, 2,73,46, 1,91,75, 2,77,69, 3,64,29, 2,80,37, 2,80,36,
- 2, 1,71, 1,50,77, 1,50,78, 2,23,70, 3,69,91, 1,69,61, 1,38,93, 1,43,21,
- 1,43,20, 1,43,19, 4, 4,72, 3,10,30, 3,10,29, 2, 8,36, 3,10,31, 3,10,34,
- 1,47, 7, 1,47, 6, 3,10,36, 1,50,81, 3,69,44, 2,12,60, 2,12,63, 2,12,61,
- 3,14,34, 1,50,79, 1,50,80, 3,14,32, 3,14,33, 2,12,59, 2,12,62, 3,14,35,
- 1,55,24, 3,18,84, 3,18,83, 3,18,89, 2,17,54, 2,17,56, 2,17,55, 1,55,21,
- 2,17,50, 3,18,86, 3,18,91, 1,55,19, 1,55,18, 3,18,87, 1,55,22, 1,55,20,
- 3,18,88, 1,55,23, 2,17,53, 2,17,48, 2,17,49, 2,17,52, 2,17,51, 0, 0, 0,
- 3,18,92, 3,23,73, 3,23,71, 3,23,75, 0, 0, 0, 3,23,74, 2,23,73, 2,23,74,
- 2,23,72, 3,23,76, 2,23,71, 1,60,35,15,23,31, 0, 0, 0, 0, 0, 0, 3,29,69,
- /* plane 0, page 122 */
- 0, 255, /* first, last */
- 1,65, 5, 6,44,40, 2,30,58, 2,30,60, 2,30,62, 1,65, 4, 6,44,35, 3,29,70,
- 1,65, 2, 3,29,73, 2,30,59, 1,65, 3, 2,30,61, 1,65, 1, 3,29,72, 3,35,33,
- 2,37,70, 2,37,61, 2,37,64, 2,37,68, 1,69,65, 2,37,66, 4,31,48, 2,37,65,
- 2,37,62, 2,37,63, 1,69,63, 2,37,69, 1,69,62, 3,35,36, 1,69,67, 1,69,66,
- 1,69,64, 4,31,42, 2,37,67, 0, 0, 0, 0, 0, 0, 3,69, 4, 2,44,48, 4,37,61,
- 2,44,47, 3,40,43, 3,40,45, 2,44,43, 3,40,48, 3,40,47, 1,74, 1, 2,44,46,
- 2,44,45, 1,74, 2, 3,40,50,15,42,68, 4,43,67, 4,37,62, 4,43,75, 1,78, 9,
- 3,45,53, 2,50,58, 3,45,54, 1,78,10, 1,78, 6, 1,78, 8, 3,45,58, 1,78, 5,
- 1,78, 7, 3,45,51, 3,45,55, 0, 0, 0, 2,56,89, 3,50,10, 1,81,58, 2,56,91,
- 2,56,90, 3,53,68, 2,44,44, 1,81,60, 1,81,59, 1,81,56, 1,81,57, 3,50,12,
- 15,59,57, 0, 0, 0, 0, 0, 0, 3,50, 9, 2,62, 2, 4,55,41, 2,61,94, 1,84,52,
- 2,62, 1, 4,55,40, 2,62, 3, 2,61,93, 2,61,92, 0, 0, 0, 0, 0, 0, 2,66,44,
- 1,86,84, 1,86,82, 1,86,83, 0, 0, 0, 3,58,70, 4,64,37, 3,58,69, 2,70,16,
- 2,70,17, 1,88,56, 3,58,71, 1,88,55, 2,73,48, 2,73,49, 2,73,47, 3,60,68,
- 2,77,70, 2,77,71, 3,64,86, 3,64,87, 1,38,94, 2, 2,72, 1,43,22, 0, 0, 0,
- 2, 8,37, 1,47, 9, 1,47, 8, 2, 8,38, 3,14,36, 3,14,39, 2,12,65, 1,50,82,
- 2,12,64, 1,50,83, 3,14,41, 3,14,40, 1,55,25, 2,17,59, 2,17,57, 2,17,63,
- 1,55,26, 2,17,58, 2,17,62, 2,17,60, 2,17,61, 0, 0, 0, 0, 0, 0, 2,23,75,
- 2,23,77, 3,23,82, 1,60,36, 3,23,81, 2,23,76, 1,60,37, 1,65, 8, 1,65, 7,
- 1,65, 6, 2,30,63, 3,23,80, 4,25,69, 0, 0, 0, 0, 0, 0, 2,37,73, 1,69,68,
- 1,69,69, 3,35,38, 2,37,72, 2,37,71, 3,35,39, 0, 0, 0, 0, 0, 0, 3,69,92,
- 2,44,49, 1,74, 4, 1,74, 3, 2,44,50, 2,44,51, 0, 0, 0, 1,78,12, 1,78,11,
- 3,45,59, 2,57, 1, 2,50,59, 2,50,61, 2,50,60, 2,56,94, 2,56,92, 2,57, 2,
- 2,56,93, 5,54,50, 1,81,61, 3,50,15, 4,50, 7, 3,50,14, 2,62, 4, 1,84,53,
- 2,62, 5, 2,62, 6, 3,53,72, 0, 0, 0, 1,86,85, 1,86,86, 4,64,43, 1,90, 2,
- 3,62,41, 3,62,40, 1,92,29, 1,39, 1, 3, 6,94, 3, 7, 1, 4, 7,59, 3,10,39,
- 3,14,46, 2,12,66, 3,14,47, 3,14,45, 3,14,43, 3,14,44, 0, 0, 0,15,12,86,
- 2,17,64, 1,55,27, 3,19, 3, 3,19, 6, 3,19, 7, 3,19, 4, 0, 0, 0, 1,61,94,
- 1,61,93, 3,23,83, 3,29,81, 1,65,10, 2,30,65, 1,65, 9, 2,30,64, 3,29,80,
- 4,31,55, 3,35,41, 3,35,42, 2,37,74, 3,40,52, 1,74, 5, 2,44,52, 1,74, 6,
- 3,40,53, 3,50,16, 3,53,73, 3,53,74, 4,55,48, 3,56,41, 1,90, 3, 2,73,50,
- 3,63,53, 1,40,44, 1,47,10, 2, 8,39, 3,14,49, 1,50,85, 3,14,48, 1,50,84,
- /* plane 0, page 123 */
- 0, 255, /* first, last */
- 2,12,67, 2,12,68, 0, 0, 0, 0, 0, 0, 2,17,66, 2,17,68, 1,55,28, 0, 0, 0,
- 2,17,70, 2,17,73, 2,17,71, 3,19,11, 4,14,81, 3,19,10, 2,17,72, 2,17,69,
- 2,17,65, 1,55,29, 2,17,74, 2,17,67, 3,19,12, 0, 0, 0, 3,23,88, 3,23,89,
- 2,23,86, 1,60,43, 2,24, 1, 1,60,40, 3,23,87, 2,23,88, 1,60,44, 3,23,91,
- 1,60,38, 3,23,86, 2,23,83, 2,24, 2, 2,23,84, 2,23,81, 1,60,42, 4,19,92,
- 1,60,39, 4,19,90, 2,23,87, 2,23,90, 1,60,41, 2,23,91, 1,60,45, 2,23,92,
- 2,23,82, 2,23,89, 2,23,93, 2,23,85, 2,23,80, 2,23,78, 3,23,90, 3,69,93,
- 2,23,94,15,23,45, 0, 0, 0, 2,23,79, 0, 0, 0,15,22,94, 0, 0, 0, 5,27, 4,
- 2,30,72, 3,29,91, 3,29,88, 3,29,85, 2,30,68, 2,30,74, 1,65,13, 2,30,67,
- 2,30,69, 1,65,11, 2,30,66, 1,65,18, 2,30,70, 1,65,17, 2,30,71, 1,65,19,
- 1,65,14, 1,65,20, 1,65,15, 3,29,89, 1,65,16, 3,29,82, 1,65,12, 3,29,86,
- 2,30,73, 3,69,94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,35,47, 4,31,71,
- 1,69,72, 2,37,85, 3,35,44, 2,37,88, 2,37,76, 2,37,81, 2,37,75, 1,69,74,
- 3,35,53, 2,37,79, 4,31,62, 3,35,45, 3,29,87, 2,37,77, 1,69,73, 3,35,52,
- 2,37,84, 2,37,83, 2,37,80, 2,37,82, 2,37,78, 1,74,10, 2,37,87, 1,69,70,
- 2,37,86, 3,35,49, 0, 0, 0,15,36,37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 3,40,54, 2,44,68, 3,40,56, 1,74,17, 2,44,63, 3,40,64, 1,74,16,
- 2,44,53, 4,37,75, 2,44,55, 1,74, 9, 2,44,60, 2,44,59, 2,44,62, 1,74,14,
- 2,44,57, 2,44,56, 3,40,58, 3,40,62, 1,74,13, 1,74, 8, 2,44,58, 1,74,11,
- 2,44,64, 2,44,66, 0, 0, 0, 2,44,61, 2,44,54, 1,74,12, 3,40,55, 3,40,61,
- 1,78,20, 1,74, 7, 4,37,68, 3,40,60, 2,44,67, 4,37,80, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,50,65, 1,78,13, 3,45,60, 2,50,67,
- 4,44,11, 1,78,14, 3,45,69, 3,45,61, 1,78,16, 2,50,70, 4,43,90, 2,50,62,
- 1,74,15, 2,50,68, 4,43,83, 4,44,17, 4,43,84, 4,44,10, 2,50,64, 3,45,64,
- 1,69,71, 1,78,19, 4,44, 1, 4,43,88, 1,78,15, 4,44, 6, 1,78,17, 1,78,18,
- 4,43,86, 1,81,64, 2,50,69, 2,50,63, 1,78,21, 3,45,67, 2,50,66, 0, 0, 0,
- 3,70, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,57,12, 2,57, 7, 4,50,13, 5,54,73,
- 2,57,17, 1,81,62, 2,57, 9, 1,81,66, 2,57,15, 2,57, 6, 2,57, 3, 2,57,18,
- 1,84,59, 1,81,67, 2,57,14, 2,57, 4, 1,81,65, 2,57, 8, 1,81,69, 2,57, 5,
- 2,57,10, 1,81,68, 2,57,13, 2,57,16, 3,50,19, 3,50,20, 0, 0, 0, 0, 0, 0,
- 2,62,24, 2,62,25, 2,62, 9, 2,62,16, 2,62,14, 4,55,63, 3,53,77, 1,84,57,
- 2,62,21, 2,57,11, 3,53,75, 2,62,12, 3,53,78, 2,62,22, 1,84,56, 2,62,11,
- /* plane 0, page 124 */
- 0, 255, /* first, last */
- 2,62,10, 2,62,20, 2,62,17, 2,62,19, 4,55,52, 2,62, 7, 2,62,23, 1,84,54,
- 3,53,80, 2,62,18, 2,62,27, 2,62,15, 1,84,58, 1,84,55, 2,62,13, 2,62, 8,
- 2,62,26, 1,81,63, 3,53,81, 0, 0, 0,15,59,63, 4,55,55, 0, 0, 0, 0, 0, 0,
- 3,53,79, 2,66,47, 3,56,48, 3,56,46, 2,66,45, 2,66,51, 1,86,90, 2,66,49,
- 2,66,48, 1,86,92, 2,66,54, 1,86,91, 3,56,49, 2,66,55, 2,66,52, 1,86,88,
- 2,66,53, 2,66,46, 1,86,89, 1,86,87, 2,70,21, 2,66,50, 3,56,44, 3,70, 2,
- 2,66,56, 0, 0, 0, 3,70, 3, 2,70,18, 3,58,79, 3,58,78, 4,64,46, 1,88,61,
- 1,88,59, 2,70,20, 4,64,44, 2,70,22, 2,70,19, 1,88,60, 1,88,57, 1,88,58,
- 1,88,62, 0, 0, 0, 3,70, 4, 1,90, 5, 3,60,70, 2,73,55, 5,76,89, 2,73,54,
- 2,73,52, 2,73,51, 2,73,53, 3,60,69, 1,90, 4, 1,90, 6, 3,70, 5,15,69,71,
- 1,90,91, 3,62,44, 4,70,79, 2,75,83, 2,75,82, 3,60,71, 3,62,43, 2,77,72,
- 3,63,56, 2,77,74, 2,77,76, 2,77,75, 2,77,73, 3,63,55, 3,64,31, 1,91,77,
- 1,91,76, 0, 0, 0, 3,64,30, 1,92,31, 1,92,30, 1,92,32, 2,79,28, 2,79,27,
- 3,70, 6, 2,81,11, 2,80,38, 2,81,12, 1,93, 5, 3,65,36, 1,93, 6, 2,81,60,
- 4,77,59, 3,66,26, 1,93,43, 1,40,45, 3,10,41, 2, 8,40, 3,10,40, 3,14,50,
- 2,12,70, 2,12,71, 2,12,69, 3,14,52, 3,14,51, 1,50,86,15,13, 1, 2,12,72,
- 2,12,73, 2,12,74, 0, 0, 0, 3,19,17, 2,17,75, 2,17,81, 3,19,14, 3,19,16,
- 2,17,79, 1,55,30, 2,17,77, 3,19,18, 2,17,78, 2,17,80, 3,19,13, 0, 0, 0,
- 0, 0, 0, 2,17,76, 1,60,46, 3,23,93, 2,24, 3, 1,60,48, 2,24, 5, 1,60,47,
- 2,24, 4, 3,23,94, 3,24, 1, 3,24,30, 3,24, 2, 4,20, 2, 2,30,76, 1,65,21,
- 3,30, 1, 2,30,78, 2,30,75, 2,24, 6, 3,30, 3, 1,65,22, 3,30, 2, 3,29,94,
- 2,30,77, 3,70, 7, 0, 0, 0,15,30, 1,15,30, 3, 0, 0, 0, 3,35,56, 2,37,91,
- 3,35,60, 1,69,75, 2,37,89, 1,69,76, 2,37,90, 1,69,77, 4,37,84, 3,40,66,
- 3,40,65, 1,74,18, 2,44,72, 2,44,69, 2,44,71, 1,74,19, 1,74,20, 2,44,70,
- 15,43, 7,15,43,11, 3,45,79, 3,45,81, 3,45,77, 2,50,71, 3,45,80, 3,45,83,
- 2,50,72, 3,45,82, 1,78,22, 2,50,74, 2,50,73, 3,45,78, 1, 3, 3, 4,50,36,
- 2,57,22, 2,57,23, 2,57,19, 3,50,23, 2,57,20, 1,81,70, 1,81,71, 2,57,21,
- 0, 0, 0, 1,84,65, 3,53,85, 3,53,84, 1,84,61, 1,84,66, 1,84,62, 1,84,64,
- 1,84,60, 3,50,25, 1,84,63, 3,56,53, 4,60,58, 4,60,59, 3,56,52, 1,86,93,
- 2,62,28, 7,40,55, 2,70,24, 4,64,58, 2,70,23, 3,70, 8, 2,73,56, 1,90, 7,
- 1,90, 8, 2,77,78, 2,75,84, 3,65,73, 2,77,77, 3,64,32, 2,81,13, 2,81,82,
- 1,40,46, 0, 0, 0, 3, 7, 2, 1,43,23, 3,10,43, 2, 8,41, 1,47,11, 3,10,42,
- /* plane 0, page 125 */
- 0, 255, /* first, last */
- 1,50,89, 2,12,77, 1,50,87, 2,12,75, 1,50,92, 1,50,88, 1,50,93, 1,50,91,
- 2,12,76, 1,50,90, 1,55,34, 1,55,33, 2,17,92, 1,55,42, 2,17,85, 2,17,91,
- 1,55,38, 2,17,84, 2,17,90, 2,17,88, 1,55,37, 1,55,39, 2,17,87, 1,55,32,
- 2,17,86, 1,55,43, 1,55,40, 1,55,44, 1,55,41, 2,17,83, 2,17,82, 2,17,89,
- 1,55,35, 1,55,31, 1,55,36, 4,15, 5, 3,19,23, 3,19,27, 0, 0, 0, 0, 0, 0,
- 2,24,21, 2,24,14, 4,26, 6, 1,65,27, 2,24,13, 3,24, 9, 1,60,52, 1,60,59,
- 1,60,56, 1,60,62, 1,60,61, 1,60,57, 3,24, 6, 2,24, 7, 2,24,10, 3,24, 7,
- 2,24, 9, 1,60,53, 2,24,11, 2,24,20, 1,60,54, 2,24, 8, 2,24,17, 2,24,18,
- 1,60,55, 2,24,15, 1,60,60, 1,60,50, 1,60,58, 2,24,12, 1,60,49, 2,24,16,
- 3,24,14, 3,24, 4, 2,24,19,15,23,52, 3,24,11, 3,30,20, 2,31, 1, 2,30,86,
- 1,65,24, 2,30,93, 2,30,90, 2,30,82, 2,30,91, 1,65,26, 2,30,83, 3,30, 9,
- 2,30,79, 3,30, 6, 3,30,14, 1,69,83, 2,30,88, 3,30,15, 1,65,23, 2,30,94,
- 3,30, 8, 1,65,30, 1,65,32, 2,30,81, 3,30,12, 4,26, 7, 1,65,31, 2,30,84,
- 1,65,25, 2,30,92, 2,30,85, 2,30,89, 3,30,10, 2,30,87, 1,65,28, 2,30,80,
- 1,65,33, 1,60,51, 1,65,29, 1,65,34, 3,30, 4, 3,30,21, 3,30,19, 0, 0, 0,
- 3,35,71, 1,69,79, 2,38, 4, 2,38, 6, 2,38, 8, 2,38,12, 3,30,11, 2,38, 2,
- 2,37,94, 1,69,81, 4,31,81, 2,38, 7, 2,38,11, 2,38, 3, 2,37,93, 3,35,70,
- 2,37,92, 3,35,73, 3,35,64, 3,35,66, 2,38, 9, 2,38, 1, 2,38, 5, 1,69,82,
- 3,35,62, 1,69,80, 2,38,13, 1,69,78, 2,38,10, 3,35,68, 2,44,89, 3,35,72,
- 3,35,74, 3,35,67, 0, 0, 0, 0, 0, 0, 1,74,23, 2,44,81, 1,78,35, 2,44,91,
- 1,74,26, 2,45, 1, 1,74,32, 2,44,76, 3,40,84, 4,37,91, 2,44,92, 2,44,73,
- 3,40,77, 2,44,94, 2,44,77, 3,40,78, 1,74,39, 1,74,36, 2,44,93, 2,44,87,
- 1,74,22, 1,74,30, 1,74,29, 3,40,80, 1,74,28, 1,74,34, 3,40,73, 2,44,74,
- 1,74,35, 2,44,88, 1,74,31, 1,74,21, 2,44,90, 1,74,24, 1,74,25, 1,74,33,
- 2,44,79, 2,44,78, 2,44,75, 4,37,92, 2,44,83, 2,44,80, 2,44,84, 1,74,38,
- 3,40,72, 2,45, 2, 1,74,27, 2,44,85, 2,44,86, 3,40,81, 2,44,82, 3,40,83,
- 3,70, 9, 3,40,75, 1,74,37, 3,70,11, 0, 0, 0, 0, 0, 0, 3,46, 2, 2,50,79,
- 1,78,27, 1,78,36, 1,78,32, 2,50,76, 3,45,92, 1,78,29, 1,78,33, 2,50,88,
- 1,78,23, 2,50,80, 3,45,88, 1,78,31, 3,46, 4, 3,46,15, 2,50,83, 2,50,78,
- 1,78,30, 1,78,34, 2,50,77, 3,46,14, 1,78,28, 3,45,87, 2,50,87, 1,78,25,
- 2,50,86, 2,50,85, 1,78,37, 2,48,27, 1,78,24, 3,46,11, 2,50,84, 2,50,75,
- 3,45,85, 1,78,38, 2,50,82, 1,78,26, 3,46, 8, 3,46, 9, 3,46, 5, 3,46,12,
- /* plane 0, page 126 */
- 0, 158, /* first, last */
- 3,46, 7, 3,45,94, 3,45,93, 2,50,81, 4,44,37, 0, 0, 0, 0, 0, 0, 3,70,10,
- 1,81,74, 1,81,79, 1,81,72, 2,57,36, 2,57,27, 2,57,39, 2,57,31, 2,57,37,
- 1,81,80, 1,81,73, 2,57,24, 2,57,30, 2,57,40, 2,57,33, 2,57,38, 2,57,26,
- 4,50,44, 3,50,27, 2,57,34, 1,81,75, 2,57,32, 1,81,78, 1,81,77, 2,57,28,
- 2,57,29, 2,57,25, 2,57,35, 1,81,76, 2,57,42, 2,57,41, 3,50,32, 3,50,31,
- 0, 0, 0, 2,62,39, 2,62,35, 1,84,73, 3,53,89, 2,62,29, 1,84,67, 1,84,83,
- 2,62,41, 1,84,75, 1,84,71, 2,62,32, 1,84,78, 1,84,81, 2,62,43, 1,84,70,
- 2,62,34, 1,84,79, 2,62,45, 2,62,42, 2,62,30, 1,84,74, 1,84,68, 1,84,82,
- 2,62,37, 1,84,77, 2,62,31, 1,84,72, 2,62,44, 1,84,76, 1,84,69, 2,62,38,
- 1,84,80, 2,62,36, 0, 0, 0, 0, 0, 0, 2,62,40, 3,53,90, 4,60,63, 3,56,57,
- 2,66,58, 2,66,64, 1,87, 5, 2,66,67, 1,86,94, 1,87, 1, 2,66,59, 2,66,66,
- 2,66,61, 1,87, 6, 1,87, 3, 3,56,59, 2,66,57, 3,56,56, 1,87, 2, 2,66,63,
- 2,66,65, 1,87, 4, 2,66,62, 2,66,60, 3,70,12, 4,60,62, 3,56,58, 0, 0, 0,
- 2,70,34, 1,88,66, 1,88,67, 1,88,63, 3,58,82, 1,88,64, 3,58,84, 2,70,30,
- 2,70,28, 3,58,85, 2,70,32, 1,88,68, 2,70,33, 2,70,26, 2,70,25, 2,70,29,
- 2,70,27, 1,88,65, 2,70,31, 2,73,57, 1,90,11, 1,90,10, 2,73,58, 3,60,76,
- 2,73,60, 2,73,59, 1,90,12, 0, 0, 0, 3,62,51, 3,62,48, 2,75,89, 2,75,86,
- 2,75,87, 3,62,49, 2,75,85, 2,75,88, 1,90,93, 2,75,90, 3,62,50, 1,90,92,
- 0, 0, 0, 2,77,79, 3,63,58, 1,92,33, 1,92,35, 2,79,29, 1,92,34, 2,80,39,
- 2,81,15, 2,81,17, 2,81,14, 2,81,16, 1,93,25, 4,77,88, 3,66,21,
- /* plane 0, page 127 */
- 54, 255, /* first, last */
- 1,40,47, 4, 5,55,
- 1,50,94, 2,16,50, 1,55,45, 3,24,17,15,17,88, 1,60,63, 2,31, 2, 2,31, 3,
- 3,70,13, 3,40,87, 0, 0, 0, 2,57,43, 1,84,84, 2,62,46, 3,53,93, 3,56,60,
- 1,87, 7, 0, 0, 0, 2,70,36, 2,70,35, 1,90,13, 2,75,91, 3,63,59, 2,77,80,
- 1,92,68, 2, 2,73, 4, 2, 1, 0, 0, 0, 1,47,12, 1,43,24, 0, 0, 0,15, 8,42,
- 2,12,78, 3,10,46, 0, 0, 0, 2,18, 4, 2,17,93, 2,18, 3, 2,18, 1, 1,55,46,
- 2,18, 2, 2,17,94, 3,19,28, 2,24,22, 4,26,11, 2,31, 4, 2,31, 5, 2,38,16,
- 2,38,17, 1,69,85, 1,69,86, 2,38,15, 2,38,18, 2,38,14, 1,69,84, 3,40,88,
- 1,74,40, 3,40,89, 1,69,87, 2,45, 3, 0, 0, 0, 1,78,39, 2,50,89, 1,78,40,
- 3,46,16, 1,81,81, 2,57,46, 2,57,44, 2,57,45, 2,62,49, 2,62,48, 2,62,47,
- 7,33,65, 0, 0, 0, 4,60,72, 2,70,37, 4,64,79, 1,88,69, 2,70,38, 2,77,81,
- 1,92,69, 2,80,40, 1,40,48, 1,47,14, 1,47,13, 2,12,80, 1,51, 1, 3,14,61,
- 4,15,16, 2,12,79, 2,18, 6, 3,19,29, 1,55,47, 2,24,23, 2,18, 5, 3,19,31,
- 4,15,15, 3,19,30, 1,60,65, 2,24,26, 2,24,24, 2,24,25, 1,60,64, 0, 0, 0,
- 2,31, 7, 2,31, 8, 2,31, 6, 3,35,78, 1,69,90, 2,38,20, 2,38,19, 2,38,21,
- 1,69,89, 1,69,88, 0, 0, 0, 4,38, 6, 2,50,90, 2,50,92, 3,46,17, 1,78,41,
- 2,50,91, 2,57,47, 1,81,82, 2,66,69, 3,56,61, 2,66,68, 1,88,70, 2,70,39,
- 1,88,72, 1,88,71, 2,73,61, 2,75,92, 1,90,94, 1,40,49, 2,12,81, 1,51, 2,
- 2,18, 9, 1,55,49, 2,18, 8, 2,18, 7, 3,19,34, 1,55,48, 3,19,35, 2,24,32,
- 4,20,29, 2,24,34, 2,24,27, 2,24,28, 1,60,66, 2,24,29, 1,60,67, 2,24,33,
- 2,24,30, 2,24,31, 1,60,68, 3,30,23, 1,65,36, 1,65,37, 3,30,24, 2,31, 9,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,38,22, 2,38,23, 3,35,82, 2,45, 7, 1,74,43,
- 1,74,41, 1,74,42, 2,45, 4, 2,45, 5, 6,64,56, 2,45, 6, 2,51, 3, 3,46,18,
- 2,51, 4, 1,78,42, 2,51, 1, 2,50,94, 2,51, 2, 2,50,93, 1,81,85, 2,57,48,
- 1,81,83, 1,81,84, 2,62,51, 1,84,85, 2,62,50, 2,65,20, 3,53,94, 2,66,70,
- 2,66,71, 1,87, 8, 3,56,65, 1,87, 9, 1,84,86, 2,70,40, 2,70,41, 2,73,62,
- /* plane 0, page 128 */
- 0, 255, /* first, last */
- 1,90,14, 1,40,50, 3,70,91, 1,40,51, 1,55,51, 1,47,15, 1,55,50, 2,12,82,
- 3,24,22, 4,11, 5, 3,19,36, 1,65,38, 1,40,52, 1,51, 4, 2,12,83, 2,12,84,
- 1,51, 3, 1,51, 5, 1,40,53, 4, 7,65, 2,12,85, 1,55,53, 2,18,10, 1,55,55,
- 1,55,52, 1,55,54, 3,24,23, 2,24,37, 1,60,69, 3,24,25, 2,24,36, 2,24,35,
- 4,26,24, 2,38,24, 0, 0, 0, 3,41, 2, 2,45, 8, 4,38,12, 1,78,43, 0, 0, 0,
- 1,81,86, 2,57,50, 2,57,49, 3,54, 1, 2,62,52, 4,60,81, 3,56,66, 3,60,79,
- 2,75,93, 4,73,14, 4,73,13, 1,40,54, 2, 4,83, 2, 8,42, 1,51, 6, 2,12,86,
- 6,27, 1, 2,18,12, 4,15,26, 3,19,41, 3,19,40, 1,55,56, 2,18,11, 1,55,57,
- 3,19,39, 3,70,15, 0, 0, 0, 2,24,39, 3,24,29, 3,24,28, 1,60,71, 2,24,38,
- 2,24,40, 3,24,27, 1,60,70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,30,28, 2,31,11,
- 2,31,12, 2,31,10, 1,65,39, 3,71, 9, 0, 0, 0, 4,31,92, 1,69,91, 3,35,83,
- 1,69,92, 4,38,19, 1,74,45, 3,41, 3, 2,45,10, 2,45, 9, 1,74,44, 3,41, 6,
- 3,30,27, 3,41, 5, 0, 0, 0, 3,70,16, 2,51, 5, 3,46,20, 3,46,22, 2,51, 6,
- 3,46,23, 0, 0, 0, 3,46,21, 3,46,24, 2,57,51, 4,50,60, 3,50,35, 1,84,90,
- 1,84,89, 1,84,87, 1,84,88, 1,84,91, 3,54, 2, 2,66,72, 1,87,11, 1,87,10,
- 2,70,42, 2,73,63, 3,60,80, 3,60,81, 3,60,82, 1,91,79, 1,91,78, 1,40,55,
- 0, 0, 0, 6,27, 4, 2,15,93, 0, 0, 0, 1,69,94, 1,65,40, 1,69,93, 1,74,46,
- 6,64,64, 1,40,56, 2, 1,72, 1,40,57, 1,40,58, 3, 4,21, 3, 4,22, 2, 8,43,
- 2, 4,86, 3, 7, 4, 2, 4,87, 1,43,26, 3, 7, 6, 2, 4,84, 1,43,25, 3, 7, 5,
- 1,43,28, 2, 4,85, 1,43,30, 1,43,29, 2, 4,88, 1,43,27, 4, 4,80, 3, 7, 3,
- 0, 0, 0, 1,47,20, 1,47,18, 2, 8,45, 3,10,54, 1,47,17, 3,10,59, 3,10,56,
- 3,10,47, 1,47,22, 1,47,24, 1,47,21, 3,10,57, 2, 8,48, 2, 8,44, 1,47,25,
- 3,10,50, 1,47,19, 1,43,31, 3,10,52, 1,47,23, 2, 8,47, 3,10,55, 4, 7,68,
- 2, 8,46, 4, 7,73, 1,47,16, 3,70,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2,12,92, 1,51,10, 1,51,11, 2,12,94, 3,14,70, 2,12,88,
- 2,12,91, 2,13, 6, 2,13, 4, 3,14,64, 1,51,12, 2,13,10, 1,51,15, 2,13, 7,
- 2,12,93, 2,12,90, 3,14,65, 3,14,62, 2,31,14, 2,13, 5, 1,51, 7, 2,13, 8,
- 2,12,87, 2,13, 2, 1,51, 9, 1,51,14, 2,13, 3, 1,51,18, 1,51,16, 3,14,69,
- 2,12,89, 1,51,13, 3,14,68, 2,13, 1, 1,51,17, 1,51, 8, 2,13, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,55,62, 3,19,44, 1,55,71,
- 1,55,60, 1,55,58, 2,18,14, 1,55,66, 1,55,63, 2,18,16, 3,19,42, 3,19,50,
- 1,55,65, 2,18,15, 2,18,13, 2,18,18, 1,55,70, 1,55,68, 2,31,13, 3,19,43,
- /* plane 0, page 129 */
- 0, 255, /* first, last */
- 2,18,19, 2,18,17, 1,55,59, 3,19,46, 3,19,45, 1,55,61, 1,55,64, 3,19,47,
- 1,55,67, 3,14,67, 1,55,69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,30,36, 2,24,50, 1,60,73, 3,24,41,
- 2,24,41, 2,24,43, 3,24,39, 2,24,44, 4,20,45, 2,24,52, 2,24,48, 2,24,46,
- 4,26,27, 2,24,49, 2,24,53, 1,60,74, 1,60,78, 2,24,42, 4,20,39, 2,24,51,
- 4,20,48, 1,60,76, 3,24,33, 1,60,75, 2,24,47, 2,24,45, 3,24,34, 1,60,72,
- 1,60,77, 3,24,37, 0, 0, 0, 0, 0, 0, 3,24,40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1,65,46, 2,31,22, 3,30,30, 4,26,30, 2,31,20, 1,65,48, 4,26,39,
- 3,30,35, 3,30,37, 3,30,33, 2,31,15, 2,38,38, 3,30,29, 1,65,47, 2,31,19,
- 3,30,32, 3,30,34, 2,31,16, 1,65,43, 1,65,49, 2,31,21, 1,65,45, 2,31,18,
- 1,74,47, 1,65,44, 2,31,17, 1,65,50, 1,65,42, 1,65,41, 0, 0, 0, 0, 0, 0,
- 6,35,58, 0, 0, 0, 0, 0, 0, 2,38,30, 2,38,28, 3,35,91, 2,38,34, 3,35,94,
- 2,38,26, 2,38,39, 2,38,31, 3,35,85, 2,38,25, 1,70, 4, 1,70,10, 2,38,36,
- 4,32, 9, 2,38,29, 3,35,86, 1,70, 7, 3,35,87, 3,36, 3, 1,70, 5, 2,38,37,
- 1,70, 2, 1,70, 1, 2,38,32, 1,70, 6, 1,65,51, 3,35,92, 2,38,35, 2,38,27,
- 1,70, 3, 1,70, 8, 1,70, 9, 0, 0, 0, 0, 0, 0, 3,36, 2, 0, 0, 0, 1,74,52,
- 1,74,48, 3,41, 7, 1,74,53, 2,45,13, 3,41,10, 4,38,25, 2,45,12, 2,45,14,
- 1,74,50, 2,45,11, 1,74,51, 2,45,17, 2,45,16, 2,45,15, 4,38,38, 1,74,49,
- 4,50,71, 0, 0, 0, 3,46,27, 3,46,29, 3,46,25, 2,51,10, 3,46,28, 2,51,13,
- 1,78,49, 2,51,12, 1,78,48, 1,78,44, 1,78,45, 1,78,46, 2,51, 9, 2,51, 8,
- 1,78,47, 3,46,26, 2,51,11, 2,51, 7, 0, 0, 0, 0, 0, 0, 2,57,53, 2,57,63,
- 1,81,89, 1,81,88, 3,50,41, 2,57,57, 2,57,59, 3,50,39, 2,57,54, 3,50,36,
- 2,57,58, 2,57,52, 2,57,61, 1,81,87, 2,57,60, 2,57,56, 0, 0, 0, 2,57,62,
- 3,54, 3, 2,57,55, 1,84,94, 2,62,53, 2,62,59, 1,85, 4, 1,85, 6, 1,85, 3,
- 1,85, 2, 4,56, 7, 1,85, 1, 1,84,93, 2,62,54, 2,62,57, 1,84,92, 2,62,58,
- 3,54, 4, 1,85, 5, 2,62,56, 7,40,92, 2,62,55, 1,87,12, 3,56,69, 1,87,13,
- 2,66,75, 2,66,73, 2,66,74, 0, 0, 0, 3,58,87, 2,70,44, 3,58,88, 2,70,43,
- 1,88,73, 2,73,65, 1,90,15, 2,73,64, 0, 0, 0, 2,75,94, 2,77,82, 1,91,80,
- 2,81,18, 2,81,19, 1,92,36, 1,40,59, 4, 7,76, 1,47,26, 2,31,23, 1,74,54,
- 1,85, 7, 2,62,60, 1,40,60, 4, 4,83, 1,55,73, 1,55,72, 2,31,24, 3,30,39,
- 4,26,44, 4,44,66, 2,57,64, 1,40,61, 1,51,19, 4,26,45, 3,30,40, 2,31,25,
- 2,31,26, 2,31,27, 1,74,55, 1,81,90, 1,40,62, 4, 7,77, 1,47,27, 2,13,11,
- /* plane 0, page 130 */
- 0, 255, /* first, last */
- 1,55,74, 2,18,20, 1,60,79, 3,30,41, 2,31,28, 1,70,11, 0, 0, 0, 1,74,56,
- 1,81,91, 1,85, 8, 1,87,14, 2,70,45, 1,40,63, 1,47,28, 3,10,61, 4, 7,78,
- 1,55,75, 2,24,54, 1,65,52, 3,41,11, 1,74,57, 2,45,18, 2,51,14, 0, 0, 0,
- 3,50,42, 3,56,72, 3,58,89, 1,40,64, 1,65,53, 2,38,40, 1,74,58, 1,40,65,
- 2, 8,49, 2,13,12, 1,51,20, 0, 0, 0, 3,14,72, 2,18,22, 4,15,47, 3,19,55,
- 1,55,78, 3,19,56, 1,55,76, 1,55,77, 1,55,79, 3,19,53, 0, 0, 0, 2,18,21,
- 0, 0, 0, 0, 0, 0, 2,24,59, 2,24,56, 2,24,58, 1,60,80, 1,60,82, 1,60,81,
- 2,24,55, 1,60,83, 2,24,57, 0, 0, 0, 2,31,29, 2,31,30, 0, 0, 0, 2,31,31,
- 2,38,43, 3,36, 6, 2,38,44, 4,32,14, 2,38,42, 2,38,45, 4,32,13, 1,70,12,
- 3,70,20, 2,38,41, 3,41,13, 1,74,59, 3,41,14, 0, 0, 0, 2,51,19, 2,51,15,
- 2,51,18, 2,51,20, 2,51,17, 2,51,16, 0, 0, 0, 2,57,65, 2,57,66, 2,57,67,
- 1,81,92, 1,81,93, 2,62,62, 2,62,61, 2,62,63, 0, 0, 0, 2,66,77, 2,66,76,
- 0, 0, 0, 2,70,47, 3,58,90, 2,70,48, 2,70,46, 3,58,91, 1,90,16, 4,68,12,
- 2,73,66, 2,73,67, 3,62,53, 2,77,83, 2,79,30, 2,80,41, 1,40,66, 1,43,32,
- 0, 0, 0, 1,85, 9, 1,40,67,15,18,18, 2,24,60, 2,31,32, 3,58,92, 1,92,76,
- 2, 2,74, 4, 1,51, 0, 0, 0, 3, 4,24, 2, 2,75, 2, 2,77, 1,40,68, 2, 2,78,
- 2, 2,76, 4, 3,15, 0, 0, 0, 2, 5, 2, 2, 5, 3, 2, 4,91, 3, 7, 8, 4, 4,91,
- 0, 0, 0, 4, 4,85, 2, 5, 1, 1,43,34, 3, 7, 9, 1,43,35, 2, 4,92, 2, 4,90,
- 2, 4,89, 2, 4,93, 1,43,33, 2, 4,94, 2,13,13, 3, 7,11, 4, 4,89, 0, 0, 0,
- 2, 8,54, 1,47,31, 2, 8,53, 2, 8,55, 3,10,64, 1,47,30, 2, 8,60, 1,47,34,
- 2, 8,50, 2, 8,64, 2, 8,70, 1,47,41, 2, 8,67, 1,47,38, 3,10,75, 2, 8,57,
- 2, 8,63, 2, 8,65, 3,10,70, 2, 8,52, 1,47,37, 1,47,32, 2, 8,58, 1,47,39,
- 1,47,42, 1,47,36, 3,10,76, 1,47,29, 2, 8,62, 2, 8,56, 2, 8,69, 1,47,44,
- 1,47,40, 1,47,35, 2, 8,61, 1,55,80, 2, 8,59, 1,47,33, 1,47,43, 4, 7,90,
- 2, 8,51, 4, 7,94, 2, 8,66, 2, 8,68, 3,10,62,15, 8,67, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 3,10,72, 4, 7,91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3,14,86, 1,51,37, 1,51,31, 1,51,39, 1,51,36, 2,13,20, 2,13,23, 1,51,32,
- 3,14,74, 2,13,14, 4,11,26, 1,51,25, 1,51,35, 3,14,75, 1,51,38, 1,51,40,
- 2,13,35, 2,13,26, 3,14,88, 1,51,24, 2,13,34, 1,51,28, 1,51,26, 1,51,21,
- 2,13,18, 3,14,82, 2,13,33, 2,13,22, 2,13,25, 2,13,38, 3,14,84, 1,51,41,
- 2,13,32, 1,51,33, 2,13,27, 2,13,37, 2,13,24, 2,13,28, 2,13,31, 3,14,73,
- 3,14,78, 2,13,16, 2,13,36, 2,13,30, 3,14,79, 3,14,90, 2,13,15, 6,20,28,
- /* plane 0, page 131 */
- 0, 255, /* first, last */
- 2,13,19, 1,51,34, 1,51,29, 1,51,22, 1,51,27, 1,51,23, 1,51,42, 2,13,17,
- 2,18,39, 1,51,30, 4,11,29, 3,14,89, 2,13,29, 2, 9,34, 3,14,87, 0, 0, 0,
- 3,70,21, 0, 0, 0, 3,70,23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,18,42, 1,55,94,
- 3,19,66, 2,18,26, 4,15,61, 2,18,37, 2,18,33, 3,24,45, 2,18,52, 3,19,57,
- 2,18,44, 3,19,63, 2,18,34, 3,24,59, 2,18,43, 2,18,28, 2,18,32, 2,18,55,
- 1,56, 3, 2,18,47, 2,18,38, 1,55,81, 2,18,53, 2,18,24, 4,15,58, 2,18,46,
- 4,15,67, 1,56, 2, 1,55,91, 2,18,23, 1,55,89, 1,55,88, 1,55,93, 2,18,45,
- 1,55,85, 1,55,92, 2,13,21, 2,31,33, 2,18,40, 4,15,63, 3,10,63, 2,18,30,
- 1,56, 1, 2,18,31, 2,18,35, 1,56, 4, 2,18,25, 2,18,49, 3,30,55, 2,18,48,
- 2,18,56, 1,55,87, 1,55,84, 2,18,54, 2,18,50, 2,18,41, 2,18,36, 1,55,90,
- 1,55,86, 2,18,27, 1,55,82, 2,18,51, 1,55,83, 4,15,60, 2,18,29, 3,19,58,
- 3,19,67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3,70,22, 3,13,19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4,20,71, 3,24,46, 3,24,49, 2,24,66, 2,24,68, 2,24,73, 2,24,93, 1,61, 3,
- 1,60,87, 3,24,52, 2,24,65, 1,61, 4, 1,61, 5, 2,24,76, 2,24,83, 2,24,89,
- 3,24,48, 2,24,70, 4,20,77, 2,24,77, 3,24,47, 3,24,61, 1,61, 6, 2,24,91,
- 2,24,86, 1,61, 1, 1,60,93, 2,24,82, 2,24,78, 2,24,64, 1,60,84, 2,24,69,
- 2,24,61, 3,24,53, 1,60,92, 1,60,94, 2,24,74, 2,24,71, 1,60,89, 2,24,87,
- 1,60,86, 2,24,72, 2,31,74, 2,24,80, 3,24,62, 2,24,79, 1,60,85, 3,24,55,
- 1,61, 2, 3,24,50, 1,60,88, 2,24,62, 2,24,67, 2,24,84, 2,24,90, 1,61, 7,
- 2,24,63, 2,24,75, 2,24,81, 1,60,91, 4,20,79, 3,24,56, 2,24,92, 2,24,85,
- 2,24,88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,24,63,
- 0, 0, 0,15,23,88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,60,90, 4,26,72, 2,31,49,
- 2,31,37, 1,65,61, 2,31,66, 2,31,75, 2,31,78, 1,65,59, 2,31,45, 2,31,70,
- 2,31,46, 2,31,60, 1,65,72, 2,31,56, 1,65,69, 3,30,62, 2,31,57, 2,31,34,
- 5,27,79, 2,31,71, 3,30,47, 3,30,57, 1,65,78, 2,31,68, 2,31,58, 2,31,80,
- 2,31,53, 2,38,77, 3,30,45, 2,31,83, 1,65,76, 2,31,51, 2,31,63, 1,65,79,
- 1,65,58, 2,31,55, 2,31,81, 2,31,48, 2,31,41, 2,31,52, 3,30,63, 2,31,40,
- 2,31,38, 1,65,54, 2,31,72, 2,31,47, 2,31,76, 3,30,43, 2,31,77, 1,65,62,
- 1,65,67, 1,65,63, 1,65,71, 2,31,67, 1,65,64, 2,31,59, 2,31,43,15,30,70,
- 1,65,56, 2,31,35, 2,31,69, 2,31,79, 2,31,42, 1,65,70, 2,31,84, 2,31,54,
- /* plane 0, page 132 */
- 0, 255, /* first, last */
- 3,30,50, 2,31,50, 3,30,60, 1,65,55, 1,65,75, 3,30,58, 2,31,65, 1,65,77,
- 3,30,48, 2,31,61, 1,65,66, 1,65,60, 1,65,68, 1,65,57, 1,65,74, 2,31,62,
- 2,31,44, 2,31,64, 2,31,39, 2,31,73, 3,30,56, 4,26,71, 3,30,61, 3,30,54,
- 3,30,46, 0, 0, 0, 0, 0, 0, 2,31,82, 0, 0, 0, 0, 0, 0, 3,70,25, 3,30,59,
- 0, 0, 0, 3,70,24, 0, 0, 0, 2,31,36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2,38,76, 3,36,13, 2,39, 4, 1,69,60, 2,38,81, 3,36,17, 2,38,79,
- 2,38,58, 1,70,16, 2,38,74, 2,38,94, 2,38,70, 1,70,24, 2,38,93, 2,38,68,
- 1,65,73, 2,38,84, 2,38,69, 2,38,91, 1,70,23, 1,70,15, 3,36,26, 2,38,47,
- 2,38,55, 3,36,21, 2,38,80, 2,38,72, 2,39, 3, 2,38,75, 1,70,29, 2,38,92,
- 3,36,12, 1,70,20, 3,36,30, 2,38,78, 2,38,86, 2,38,59, 2,38,85, 3,36, 7,
- 2,39, 8, 2,38,54, 2,38,87, 3,36,19, 2,39, 6, 3,36,31, 2,38,48, 1,65,65,
- 3,36,32, 2,38,62, 2,38,61, 1,70,22, 3,36,18, 2,38,65, 2,38,67, 2,38,82,
- 2,39, 5, 1,70,25, 3,36,24, 1,70,26, 3,36,16, 2,38,53, 1,70,18, 2,38,57,
- 2,39, 1, 1,70,27, 4,32,36, 1,70,19, 1,70,21, 1,70,28, 2,39, 7, 2,38,88,
- 2,38,83, 3,36,28, 3,36,15, 2,38,64, 2,38,63, 1,70,17, 2,38,49, 1,70,14,
- 2,38,73, 2,38,50, 2,38,71, 3,36,14, 4,32,33, 2,38,60, 2,39, 2, 3,36,10,
- 3,36,25, 4,32,22, 1,70,13, 3,36,27, 3,36, 8, 0, 0, 0, 2,38,56, 0, 0, 0,
- 4,32,38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,38,52, 2,38,90, 2,38,51,
- 1,74,72, 2,45,58, 3,41,21, 3,41,36, 2,45,41, 3,41,19, 3,41,24, 2,45,19,
- 2,45,49, 1,74,64, 2,45,34, 2,45,44, 1,74,67, 2,45,37, 1,74,65, 2,45,22,
- 2,45,52, 2,45,21, 2,45,40, 3,41,28, 2,45,20, 3,41,25, 4,38,76, 2,45,38,
- 2,45,47, 2,45,45, 2,45,33, 2,45,28, 2,45,26, 3,41,34, 2,45,27, 2,45,46,
- 2,45,57, 2,45,35, 1,74,66, 3,41,27, 2,45,30, 3,41,26, 2,45,50, 3,41,33,
- 1,74,69, 2,45,29, 2,45,23, 2,45,39, 1,74,73, 3,41,18, 4,38,56, 1,74,61,
- 1,74,70, 2,45,31, 2,45,25, 3,41,22, 1,74,63, 2,38,89, 1,74,62, 2,45,42,
- 3,36,22, 1,74,60, 1,74,75, 1,74,68, 2,45,43, 2,45,32, 2,45,24, 2,45,51,
- 2,45,36, 1,74,74, 2,45,55, 1,74,71, 2,45,54, 3,41,31, 2,45,48, 2,45,53,
- 3,41,30, 0, 0, 0, 3,41,35, 2,45,56, 0, 0, 0, 0, 0, 0, 3,70,27, 0, 0, 0,
- 0, 0, 0, 3,70,28, 3,70,26, 0, 0, 0, 3,41,29, 0, 0, 0, 0, 0, 0, 2,51,60,
- 2,51,61, 2,51,48, 2,51,47, 2,51,43, 1,78,61, 3,46,47, 1,78,53, 2,51,63,
- 2,51,62, 2,38,46, 2,51,40, 2,51,44, 2,51,38, 3,46,36, 2,51,57, 2,51,42,
- 3,46,34, 2,51,64, 2,51,35, 2,51,33, 2,51,45, 2,51,55, 2,51,50, 1,78,63,
- /* plane 0, page 133 */
- 0, 255, /* first, last */
- 2,51,24, 3,46,32, 2,51,54, 3,46,44, 3,46,38, 3,46,52, 1,78,64, 2,38,66,
- 2,51,36, 2,51,27, 2,51,30, 2,51,68, 2,51,37, 2,51,28, 2,51,26, 2,51,23,
- 4,44,90, 1,78,57, 2,51,46, 1,78,56, 1,78,60, 2,51,41, 2,51,49, 1,78,50,
- 2,51,65, 2,51,69, 1,78,52, 3,46,43, 2,51,32, 2,51,52, 2,51,56, 2,51,29,
- 2,51,66, 1,78,59, 4,44,74, 1,78,58, 2,51,21, 1,78,62, 2,51,59, 2,51,31,
- 2,51,51, 2,51,25, 2,51,39, 2,51,34, 1,78,54, 1,78,55, 2,51,53, 2,51,70,
- 2,51,67, 2,51,58, 4,44,88, 3,46,45, 3,46,46, 3,46,50, 0, 0, 0, 0, 0, 0,
- 4,44,84, 0, 0, 0, 0, 0, 0, 2,51,22, 0, 0, 0, 1,78,51, 2,57,84, 3,50,58,
- 2,57,75, 2,57,78, 3,50,50, 1,82, 5, 2,57,80, 2,57,69, 2,57,76, 2,57,82,
- 1,82, 2, 1,82, 6, 1,81,94, 3,50,57, 3,50,48, 2,57,71, 2,57,87, 4,45, 5,
- 4,51,19, 2,57,81, 4,51, 4, 2,57,72, 2,58, 2, 2,57,90, 2,57,68, 2,62,82,
- 2,57,74, 1,82, 1, 3,50,56, 2,57,85, 3,50,52, 2,58, 1, 1,82, 9, 3,50,54,
- 2,57,92, 2,57,73, 2,57,79, 2,57,83, 2,57,77, 2,58, 3, 2,57,94, 2,57,91,
- 1,82, 3, 1,82, 4, 1,82, 8, 2,57,70, 2,58, 4, 1,82, 7, 2,57,88, 3,50,47,
- 3,50,53, 2,57,86, 0, 0, 0, 3,70,29, 0, 0, 0, 2,57,89, 2,63, 1, 2,62,76,
- 2,62,81, 2,62,94, 2,62,80, 2,62,72, 2,62,77, 4,56,30, 1,85,12, 3,54,11,
- 2,62,65, 2,62,89, 2,62,91, 2,62,64, 1,85,11, 2,62,93, 2,62,85, 1,85,18,
- 2,62,92, 2,62,78, 1,85,20, 2,62,70, 2,57,93, 2,62,86, 2,62,83, 2,62,66,
- 2,63, 3, 1,85,14, 3,54, 8, 3,54, 9, 1,85,15, 2,62,68, 2,62,84, 3,54,13,
- 2,63, 2, 2,62,87, 2,62,74, 1,85,17, 1,85,13, 2,62,88, 2,62,75, 2,63, 4,
- 2,62,69, 2,62,79, 2,62,90, 2,62,71, 2,62,73, 4,56,32, 1,85,21, 2,62,67,
- 1,85,19, 1,87,16, 1,85,10, 3,54,12, 3,54,16, 0, 0, 0, 0, 0, 0, 1,85,16,
- 1,87,20, 2,66,93, 3,56,76, 2,66,83, 2,66,78, 2,66,84, 2,66,94, 2,67, 4,
- 2,67, 3, 1,87,22, 1,87,21, 3,56,78, 4,61,12, 2,66,85, 2,67, 5, 2,66,88,
- 2,66,80, 3,56,79, 2,66,82, 2,66,81, 2,66,87, 2,66,92, 2,66,79, 2,66,86,
- 2,66,91, 1,87,19, 4,61, 8, 2,66,89, 3,56,75, 1,87,17, 2,66,90, 1,87,15,
- 1,87,18, 2,70,64, 2,67, 1, 0, 0, 0, 3,70,30, 1,88,77, 3,58,94, 2,70,56,
- 2,70,60, 2,70,52, 2,70,55, 3,58,93, 2,70,63, 1,88,75, 2,70,68, 2,70,61,
- 4,64,90, 2,70,53, 2,70,69, 2,70,62, 1,88,78, 1,88,79, 2,70,66, 3,59, 2,
- 2,70,54, 1,88,74, 1,88,76, 2,70,49, 2,70,57, 2,70,51, 3,60,91, 2,70,67,
- 2,70,65, 2,70,50, 2,70,58, 4,64,91, 3,59, 5, 3,70,31, 2,73,74, 1,88,80,
- 2,70,59, 1,90,18, 1,90,20, 1,90,17, 3,60,86, 2,73,79, 2,73,71, 2,73,69,
- /* plane 0, page 134 */
- 0, 255, /* first, last */
- 2,73,73, 2,73,70, 3,60,88, 3,60,92, 2,73,75, 2,73,77, 1,90,21, 1,90,23,
- 3,61, 2, 2,73,76, 1,90,24, 1,90,22, 2,73,78, 3,60,94, 4,68,23, 3,61, 3,
- 3,60,87, 1,90,19, 0, 0, 0, 3,61, 1, 0, 0, 0, 3,62,59, 3,62,58, 1,91, 1,
- 2,76, 1, 2,76, 7, 1,91, 3, 2,73,72, 2,76, 6, 3,62,60, 2,76,13, 2,76, 4,
- 2,76,11, 2,76,10, 2,73,68, 2,76, 5, 2,67, 2, 2,76,14, 2,76, 3, 2,76, 8,
- 3,62,56, 2,76,12, 2,76, 2, 3,62,54, 2,77,87, 1,91, 2, 2,76, 9, 3,62,55,
- 0, 0, 0, 2,79,35, 2,77,88, 2,77,86, 2,77,84, 2,77,85, 2,77,89, 3,70,32,
- 1,92,37, 2,79,33, 2,79,31, 2,79,36, 2,79,34, 3,64,35, 2,79,37, 1,92,38,
- 2,79,32, 3,64,15, 3,65,38, 2,80,42, 0, 0, 0, 3,70,33, 2,81,20, 2,81,21,
- 2,81,22, 3,65,39, 3,65,92, 2,82,21, 2,82,13, 2, 2,79, 1,47,45, 0, 0, 0,
- 1,51,43, 4,15,72, 2,18,58, 2,18,57, 1,56, 5, 1,61, 8, 2,25, 1, 3,24,67,
- 3,24,64, 2,24,94, 3,24,65, 1,65,80, 1,70,31, 3,30,65, 1,70,30, 1,70,32,
- 5,41,46, 2,45,59, 2,51,71, 2,58, 5, 2,58, 7, 2,58, 6, 7,18,65, 1,85,22,
- 2,63, 5, 2,67, 6, 2,81,83, 1,40,69, 3, 7,13, 2, 8,73, 2, 8,74, 2, 8,72,
- 2, 8,71, 1,47,46, 3,70,34, 2,13,42, 2,13,40, 3,15, 3, 3,14,92, 2,13,39,
- 3,14,94, 1,51,44, 1,51,46, 1,51,45, 2,13,41, 3,15, 4,15,13,30, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,19,73, 2,18,70, 2,18,67, 2,18,65,
- 4,15,77, 3,19,76, 1,56, 6, 2,18,68, 1,56,11, 2,18,62, 2,18,77, 3,19,79,
- 2,18,79, 2,18,63, 3,19,78, 1,56, 8, 2,18,80, 2,18,75, 2,18,61, 2,18,66,
- 2,18,76, 2,18,72, 2,18,69, 3,19,75, 1,56,13, 2,18,78, 2,18,64, 3,19,74,
- 3,19,80, 2,18,73, 2,18,59, 1,56,12, 1,56, 9, 2,18,71, 3,19,77, 2,18,74,
- 2,18,60, 1,56,10, 1,56, 7, 0, 0, 0, 0, 0, 0, 4,20,90, 3,24,70, 1,61,18,
- 2,25, 8, 1,61,17, 3,24,68, 2,25,11, 2,25,14, 1,61,14, 1,61,12, 2,25, 3,
- 2,25,12, 2,25,10, 2,25, 7, 2,25,15, 2,25,16, 2,25,18, 2,25,19, 2,25, 2,
- 1,61,11, 2,25, 5, 2,25, 4, 2,25,17, 1,61,13, 2,25, 6, 1,61,15, 1,61,10,
- 2,25, 9, 1,61,19, 4,21, 6, 1,61,16, 2,25,13, 0, 0, 0, 0, 0, 0,15,24,26,
- 1,65,87, 2,32, 5, 4,26,81, 2,31,88, 1,65,84, 3,30,66, 2,39,14, 2,32, 3,
- 2,31,85, 1,65,82, 2,31,90, 1,65,85, 2,31,94, 2,31,92, 1,65,88, 1,65,81,
- 4,26,86, 3,30,67, 2,31,86, 2,31,89, 1,65,86, 4,26,79, 2,31,87, 5,27,91,
- 2,32, 4, 2,32, 2, 2,31,91, 2,31,93, 2,32, 1, 1,65,83, 3,30,72, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,39,15, 2,39,21, 2,39,11,
- 2,39,17, 1,70,33, 2,39,13, 1,70,39, 3,36,36, 3,36,37, 1,70,38, 3,36,41,
- /* plane 0, page 135 */
- 0, 255, /* first, last */
- 1,70,37, 2,39,20, 1,70,40, 1,70,41, 2,39,10, 2,39,23, 1,70,42, 1,70,36,
- 1,70,35, 2,39,19, 1,70,43, 2,39, 9, 2,39,12, 2,39,22, 2,39,18, 4,32,57,
- 4,32,50, 2,45,91, 2,45,80, 1,70,34, 5,34,61, 3,36,38, 3,36,40, 0, 0, 0,
- 1,74,82, 2,45,68, 2,45,89, 2,45,69, 1,74,77, 3,41,47, 2,45,66, 4,32,53,
- 2,45,75, 2,45,67, 1,74,79, 2,45,61, 2,45,88, 1,74,80, 2,45,85, 2,45,86,
- 2,45,62, 1,74,85, 2,45,77, 3,41,42, 2,45,71, 2,45,78, 2,45,65, 4,38,94,
- 2,45,90, 2,45,82, 2,45,76, 2,45,60, 1,74,81, 2,45,83, 3,41,37, 1,74,84,
- 2,45,87, 3,41,44, 2,45,81, 1,74,78, 2,45,79, 3,41,41, 2,45,73, 1,74,76,
- 2,45,64, 2,45,72, 2,45,84, 2,45,70,15,44,19, 3,41,46, 2,45,74, 3,41,43,
- 0, 0, 0, 0, 0, 0, 3,70,35, 0, 0, 0, 1,78,74, 2,39,16, 2,51,89, 2,52, 4,
- 2,51,88, 2,51,84, 2,51,81, 1,78,75, 2,51,79, 1,74,83, 2,51,72, 1,78,73,
- 2,51,78, 1,78,72, 2,51,83, 2,51,80, 2,52, 2, 2,51,91, 2,51,85, 2,51,90,
- 1,78,68, 2,51,82, 2,52, 7, 2,51,73, 2,51,74, 2,52, 3, 1,78,69, 2,52, 8,
- 1,78,71, 2,52, 9, 2,51,87, 2,45,63, 2,51,93, 2,51,86, 2,52, 1, 2,51,92,
- 5,48,53, 3,46,61, 4,45, 8, 2,51,77, 1,78,66, 2,52, 6, 1,78,67, 2,51,75,
- 1,78,70, 2,58,18, 2,51,94, 2,52, 5, 4,45,17, 3,46,57, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2,58,15, 1,78,65, 1,82,10, 2,58,25, 2,58,21, 4,51,28, 2,58,19,
- 2,58,14, 2,58,29, 3,50,59, 3,50,61, 4,51,36, 1,82,14, 3,50,63, 2,58,10,
- 2,58,22, 2,58,23, 2,58,13, 2,58,12, 2,58,26, 4,51,33, 2,58,16, 2,58,11,
- 2,58,17, 3,50,66, 2,58,28, 2,58, 9, 2,58,27, 2,58,24, 1,82,12, 1,82,11,
- 4,51,25, 3,50,62, 1,82,13, 2,58,20, 2,58, 8, 3,70,37, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 3,70,36, 2,63, 7, 1,85,28, 2,63,11, 2,63, 8, 2,63,15, 2,63,21,
- 2,63,10, 3,54,26, 2,63,30, 1,85,25, 2,63,24, 2,63,13, 2,63,25, 2,63,20,
- 2,63,27, 2,63,12, 1,85,30, 1,85,29, 2,63,14, 2,63,28, 2,63, 6, 2,63,26,
- 1,85,23, 3,54,25, 2,63,18, 2,63,17, 2,63,22, 2,63, 9, 1,85,27, 3,54,27,
- 1,85,31, 2,63,16, 2,63,23, 1,85,32, 2,63,19, 3,54,22, 3,54,20, 0, 0, 0,
- 0, 0, 0, 1,85,24, 1,85,26, 2,67,19, 2,67,17, 3,59, 8, 3,56,86, 2,67,23,
- 2,67,21, 2,67,24, 3,56,88, 2,67,10, 2,67,18, 2,67,28, 2,63,29, 2,67,14,
- 1,87,26, 2,51,76, 2,67, 9, 2,67,22, 2,67,16, 2,67,13, 2,67, 8, 2,67, 7,
- 2,67,27, 3,56,83, 2,67,12, 2,67,11, 1,87,24, 2,67,20, 3,56,84, 1,87,23,
- 3,56,85, 5,68,40, 1,87,25, 2,67,15, 2,67,26, 3,70,38, 2,70,73, 2,70,74,
- 3,59,12, 1,88,84, 2,70,71, 1,88,81, 2,70,79, 3,59, 7, 1,88,85, 2,70,81,
- /* plane 0, page 136 */
- 0, 255, /* first, last */
- 2,70,70, 2,67,25, 2,70,83, 2,70,72, 5,73,35, 1,88,82, 2,70,78, 3,59, 9,
- 2,70,80, 2,70,75, 2,70,82, 2,70,77, 2,70,76, 1,88,83, 3,56,87, 3,59,11,
- 2,73,81, 2,73,82, 3,61, 5, 2,73,84, 1,90,25, 1,90,26, 2,73,85, 2,73,83,
- 3,61, 4, 2,73,80, 3,62,61, 2,76,17, 2,76,20, 2,76,16, 4,65, 6, 1,91, 7,
- 2,76,18, 1,91, 6, 1,91, 5, 1,91, 4, 2,76,19, 2,77,94, 2,77,92, 3,63,63,
- 2,77,91, 2,76,15, 2,77,93, 2,76,21, 2,77,90, 3,64,37, 2,79,40, 2,79, 6,
- 2,79,38, 1,92,39, 2,79,39, 2,79,41, 3,70,39, 2,80,45, 1,92,70, 2,80,44,
- 2,80,43, 1,92,71, 4,76, 3, 1,93, 7, 2,81,61, 2,81,85, 2,81,84, 2,81,86,
- 1,40,70, 2,13,43, 3,15, 6, 2,18,81, 2,18,82, 3,24,74, 3,30,74, 3,30,73,
- 2,32, 6, 6,46,47, 2,76,22, 2,80,46, 1,40,71, 1,51,47, 2,13,44, 3,19,81,
- 3,70,40, 4,21, 7, 2,25,20, 1,61,20, 0, 0, 0, 2,32, 8, 2,32, 7, 1,65,89,
- 3,36,45, 1,70,44, 2,52,10, 1,78,76, 3,46,63, 1,78,77, 3,50,67, 3,50,68,
- 4,51,43, 1,82,15, 1,92,72, 1,40,72, 0, 0, 0, 0, 0, 0, 3,15, 7, 2,13,45,
- 1,47,48, 2,13,47, 2,13,46, 1,51,48, 0, 0, 0, 2,18,83, 3,19,84, 2,18,90,
- 1,56,14, 2,18,88, 2,18,86, 3,19,87, 2,18,93, 2,18,84, 2,18,85, 1,56,15,
- 3,19,82, 1,56,19, 3,19,83, 3,19,85, 2,18,94, 1,56,18, 2,18,92, 2,18,89,
- 2,18,87, 1,56,16, 1,56,17, 2,18,91, 3,19,86, 0, 0, 0, 0, 0, 0, 3,70,41,
- 1,61,22, 2,25,21, 3,24,82, 1,61,27, 2,25,37, 1,61,26, 2,25,39, 3,24,78,
- 3,24,84, 2,25,27, 1,61,24, 2,25,38, 3,24,76, 2,25,22, 1,61,25, 2,25,34,
- 2,25,30, 2,25,32, 2,25,26, 2,25,33, 3,24,75, 4,21,15, 1,61,21, 2,25,29,
- 3,24,83, 2,25,28, 2,25,24, 3,24,77, 2,25,35, 3,24,79, 3,24,81, 2,25,31,
- 2,25,23, 3,24,80, 2,25,25, 1,61,23, 2,25,36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1,65,92, 2,32,19, 4,26,91, 3,30,80, 3,30,82, 2,32,15, 2,32,17,
- 2,32,12, 2,32,11, 2,32, 9, 3,30,77, 2,32,16, 2,32,18, 2,32,14, 3,30,79,
- 2,32,13, 1,65,90, 1,65,91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2,32,21, 1,70,52, 2,39,25, 2,39,31, 2,39,26, 2,39,27, 3,36,46,
- 2,39,32, 5,34,76, 1,70,54, 4,32,65, 1,70,46, 1,70,53, 2,39,24, 2,32,10,
- 1,70,49, 1,70,47, 2,39,30, 2,39,29, 1,70,48, 1,70,50, 2,39,28, 1,70,45,
- 3,36,47, 1,70,51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,46,64, 2,45,93,
- 1,74,92, 3,41,57, 3,41,50, 2,46,10, 2,46, 9, 3,41,55, 2,46, 4, 1,74,94,
- 2,46, 8, 2,45,94, 2,46, 1, 1,74,86, 1,74,88, 3,41,52, 2,46, 6, 2,45,92,
- 1,74,90, 1,74,89, 2,46, 2, 2,46, 7, 2,46, 5, 1,74,91, 2,46, 3, 3,41,49,
- /* plane 0, page 137 */
- 0, 255, /* first, last */
- 3,41,54, 2,32,20, 1,74,87, 3,41,56, 0, 0, 0, 2,52,11, 2,52,18, 1,78,79,
- 4,45,38, 2,52,22, 1,78,83, 2,52,14, 2,52,12, 4,45,30, 2,52,21, 3,46,65,
- 1,78,78, 2,52,20, 1,78,80, 1,78,81, 2,52,13, 1,78,82, 2,52,19, 2,52,15,
- 2,52,16, 2,52,17, 1,74,93, 3,46,66, 0, 0, 0, 0, 0, 0, 2,58,30, 2,58,42,
- 4,51,51, 1,82,20, 2,58,37, 2,58,39, 3,50,69, 1,82,18, 2,58,31, 2,58,35,
- 4,51,48, 2,58,38, 1,82,16, 1,82,19, 2,58,41, 2,58,33, 2,58,34, 2,58,40,
- 2,58,32, 2,58,36, 1,82,17, 2,63,32, 0, 0, 0, 2,63,31, 1,85,34, 2,63,37,
- 1,85,36, 3,54,32, 4,56,66, 1,85,33, 2,63,33, 1,85,37, 2,63,34, 3,54,31,
- 3,54,29, 2,63,35, 2,63,38, 3,54,34, 1,85,35, 0, 0, 0, 2,67,33, 0, 0, 0,
- 3,56,89, 2,67,36, 3,56,90, 2,67,30, 2,67,32, 3,56,92, 3,56,91, 2,67,31,
- 2,67,34, 2,67,35, 2,63,36, 2,67,29, 3,70,42, 0, 0, 0, 1,88,88, 2,70,87,
- 2,70,90, 2,70,92, 2,70,85, 2,70,86, 2,70,89, 2,70,91, 1,88,89, 1,88,87,
- 1,88,86, 2,70,88, 2,70,84, 2,73,86, 1,90,27, 3,61, 9, 2,73,87, 3,61, 8,
- 0, 0, 0, 2,76,24, 1,91, 8, 2,76,26, 1,91, 9, 2,76,23, 2,76,25, 1,91,82,
- 5,84,24, 2,78, 1, 1,91,81, 2,79,44, 2,79,43, 4,76, 5, 2,79,42,15,72,42,
- 3,65,41, 2,81,23, 2,81,24, 2,81,26, 2,81,25, 3,65,93, 2, 2,80, 1,40,73,
- 0, 0, 0, 1,51,49, 2,25,40, 1,65,93, 3,70,43, 2,39,33, 1,87,27, 3,59,15,
- 2,70,93, 3,64,38, 3,65,42, 1,43,36, 3,15, 9, 4,15,86, 4,15,85, 1,61,29,
- 4,21,20, 3,24,86, 3,24,85, 1,61,28, 3,24,87, 2,32,22, 1,65,94, 2,32,24,
- 2,32,23, 6,46,64, 3,30,84, 2,39,34, 1,70,55, 2,46,11, 2,46,14, 2,46,13,
- 4,39,21, 2,46,12, 2,52,23, 2,52,25, 2,52,24, 3,46,69, 1,82,22, 3,50,70,
- 4,51,57, 3,46,68, 1,82,21, 3,54,38, 1,85,38, 2,63,39, 2,63,41, 2,63,40,
- 3,56,94, 3,56,93, 1,87,28, 3,57, 1, 4,65,15, 3,59,17, 2,71, 1, 2,70,94,
- 15,67,87, 2,73,88, 1,90,28, 3,61,10, 3,62,65, 1,91,10, 2,78, 3, 2,78, 2,
- 1,93, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1,43,37, 2,13,48, 1,51,50, 2,25,43, 2,25,41, 4,21,25,
- 4,21,24, 2,25,42, 2,32,26, 2,32,27, 2,39,41, 2,32,25, 0, 0, 0, 2,39,35,
- 2,39,39, 2,39,38, 2,39,40, 1,70,56, 2,39,37, 2,39,36, 2,39,42, 3,36,52,
- 2,46,17, 2,46,15, 3,41,60, 2,46,16, 2,52,28, 2,52,26, 3,46,70, 0, 0, 0,
- 2,52,27, 2,58,43, 2,63,42, 2,63,43, 1,87,29, 3,59,18, 2,71, 2, 2,73,89,
- 1,90,29, 4,65,23, 2,76,27, 2,78, 4, 1,91,83, 4,73,37, 2,79,45, 2,81,27,
- /* plane 0, page 138 */
- 0, 255, /* first, last */
- 1,43,38, 0, 0, 0, 1,51,52, 1,51,53, 2,13,49, 3,15,10, 3,15,12, 2,13,50,
- 1,51,51, 4,15,92, 1,56,25, 3,19,91, 1,56,23, 3,19,90, 1,56,22, 1,56,29,
- 1,56,21, 1,56,30, 2,19, 1, 1,56,27, 4,15,93, 1,56,24, 1,56,28, 1,56,26,
- 1,56,20, 3,19,92, 0, 0, 0, 1,61,37, 3,24,94, 1,61,31, 2,25,47, 1,61,36,
- 3,25, 3, 3,25, 9, 1,61,38, 1,61,32, 6,36,80, 1,61,33, 3,24,89, 2,25,45,
- 3,24,91, 3,25, 5, 1,61,30, 3,25, 2, 2,25,46, 1,61,35, 4,21,29, 5,21,59,
- 2,25,44, 1,61,34, 3,24,90, 0, 0, 0, 1,66,11, 3,30,92, 1,66,13, 4,27,15,
- 3,30,93, 2,32,30, 1,66,12, 1,66, 1, 1,66, 5, 3,31, 4, 1,70,75, 2,39,47,
- 2,32,32, 1,66, 6, 3,30,94, 3,30,85, 2,32,35, 2,32,36, 1,66,10, 4,27,16,
- 2,32,38, 3,31, 1, 2,32,40, 3,31, 3, 2,32,41, 2,32,29, 2,32,28, 2,32,42,
- 1,66, 9, 2,32,39, 2,32,37, 4,27,12, 1,66, 7, 1,66, 3, 1,66,14, 2,32,33,
- 2,32,34, 2,32,31, 3,30,88, 1,66, 8, 4,27,17, 3,31, 2, 1,66, 4, 0, 0, 0,
- 1,66, 2, 2,39,46, 1,70,70, 1,70,65, 3,36,64, 3,36,57, 1,70,60, 3,36,67,
- 1,70,76, 1,70,61, 3,36,53, 1,70,57, 1,70,72, 1,70,69, 1,70,71, 3,36,56,
- 1,70,62, 1,70,67, 1,70,58, 1,70,59, 2,39,54, 2,39,51, 2,39,43, 2,39,48,
- 3,36,59, 1,70,73, 2,39,55, 1,70,74, 1,70,64, 3,36,60, 3,36,65, 2,39,45,
- 3,36,54, 2,39,53, 2,39,49, 2,39,52, 2,39,50, 1,70,68, 2,39,44, 1,70,63,
- 3,36,61, 0, 0, 0, 0, 0, 0, 2,46,20, 1,75, 2, 1,75, 5, 3,41,63, 2,46,22,
- 3,41,68, 1,75,13, 2,46,21, 1,75, 7, 3,41,67, 1,78,88, 2,46,23, 4,39,37,
- 1,75,12, 2,46,19, 1,75,14, 3,41,62, 3,41,66, 3,41,75, 1,75, 3, 3,41,72,
- 1,70,66, 1,75, 6, 3,41,64, 1,75, 4, 1,75, 8, 1,75,10, 1,75, 1, 1,75,15,
- 1,75,11, 3,41,69, 1,75, 9, 2,46,18, 3,41,70,15,44,33, 0, 0, 0, 3,46,84,
- 1,79, 1, 3,46,71, 1,78,91, 3,46,82, 3,46,80, 3,46,78, 1,79, 4, 3,46,76,
- 2,52,31, 1,79, 5, 2,52,43, 2,52,36, 1,78,84, 2,52,44, 2,52,38, 1,78,94,
- 2,52,39, 3,46,83, 1,78,93, 2,52,42, 1,78,87, 2,52,40, 2,52,30, 1,78,86,
- 2,58,54, 1,78,92, 3,46,85, 1,78,89, 3,46,73, 1,79, 3, 3,46,74, 2,52,29,
- 3,46,86, 2,52,33, 1,78,85, 2,52,32, 2,52,34, 2,52,35, 1,79, 2, 2,52,37,
- 2,52,41, 2,52,45, 0, 0, 0, 1,79, 6, 1,82,28, 2,58,49, 2,58,55, 2,58,52,
- 2,58,44, 2,58,56, 2,58,45, 3,50,74, 2,58,51, 3,50,75, 1,82,23, 1,82,29,
- 2,58,57, 3,46,79, 3,50,71, 1,82,25, 3,50,78, 1,82,35, 1,82,30, 2,58,59,
- 2,58,53, 1,82,26, 2,58,46, 1,82,36, 2,58,47, 2,58,48, 1,82,37, 1,82,34,
- 1,78,90, 3,50,73, 1,82,24, 2,58,60, 1,82,38, 3,50,72, 1,82,31, 2,58,58,
- /* plane 0, page 139 */
- 0, 159, /* first, last */
- 1,82,27, 1,82,32, 1,82,33, 3,70,44, 1,85,46, 2,63,48, 2,63,57, 2,63,54,
- 2,63,56, 3,54,41, 1,85,43, 2,63,49, 3,54,42, 2,63,55, 1,85,39, 2,63,51,
- 1,85,47, 2,63,47, 2,63,52, 2,63,59, 2,58,50, 2,63,53, 2,63,46, 1,85,40,
- 2,63,45, 1,85,41, 2,63,60, 1,85,42, 2,63,58, 1,85,45, 2,63,44, 3,54,40,
- 1,85,44, 0, 0, 0, 2,63,50, 2,67,39, 2,67,53, 2,67,48, 2,67,50, 2,67,38,
- 1,87,30, 3,57,10, 2,67,37, 1,87,33, 1,87,32, 3,57, 6, 2,67,52, 2,67,44,
- 2,67,41, 2,67,47, 3,57, 4, 2,67,40, 3,57, 8, 2,67,42, 2,67,51, 2,67,49,
- 3,57, 3, 1,87,31, 2,67,56, 2,67,54, 2,67,45, 2,67,55, 2,67,46, 3,59,20,
- 2,71, 6, 1,88,90, 2,71,13, 3,59,21, 4,65,26, 2,76,30, 1,89, 3, 2,67,43,
- 2,71, 4, 1,88,93, 2,71, 5, 2,71,10, 3,59,22, 3,61,19, 1,89, 1, 1,89, 2,
- 2,71, 3, 2,71,12, 2,71,14, 2,71, 7, 2,71, 9, 2,71,11, 2,71, 8, 2,71,15,
- 1,88,92, 1,89, 4, 1,88,94, 0, 0, 0, 1,88,91, 2,73,92, 4,68,45, 1,90,34,
- 2,73,90, 3,61,16, 3,61,12, 2,73,94, 3,61,18, 2,74, 1, 1,90,32, 2,74, 2,
- 2,73,93, 3,61,11, 2,73,91, 1,90,35, 1,90,31, 2,74, 3, 3,61,14, 1,90,33,
- 1,90,30, 3,60,77, 0, 0, 0, 4,71,27, 1,91,11, 3,62,66, 4,71,33, 1,91,12,
- 2,76,29, 2,76,28, 2,76,31, 2,76,32, 3,62,67, 1,91,13, 2,78, 5, 2,78,10,
- 1,91,84, 3,63,65, 2,78, 7, 3,63,66, 2,78, 6, 2,78, 9, 2,78, 8, 3,64,40,
- 2,79,49, 4,74,92, 1,92,40, 2,79,48, 2,79,46, 3,64,39, 2,79,47, 0, 0, 0,
- 3,64,41, 3,64,91, 1,92,74, 1,92,73, 2,80,47, 2,80,48, 1,92,75, 3,65,43,
- 2,81,28, 2,81,29, 1,93,20, 3,65,75, 1,93,26, 3,65,94, 2,81,87, 2,82,22,
- /* plane 0, page 140 */
- 55, 255, /* first, last */
- 1,43,39,
- 5,16,38, 2,25,48, 3,25,10, 2,25,49, 2,39,56, 2,46,24, 2,52,46, 1,85,49,
- 3,54,45, 1,85,48, 2,67,57, 2,71,16, 3,63,68, 2,79,50, 1,43,40, 2,19, 2,
- 1,56,31, 1,61,39, 2,39,58, 2,39,57, 1,79, 7, 2,52,47, 1,79, 8, 2,63,61,
- 1,87,34, 3,61,20, 3,70,45, 3,66, 1, 1,93,35, 1,43,41, 2, 8,75, 2,19, 3,
- 3,25,13, 4,21,45, 1,61,40, 3,25,12, 2,25,50, 2,25,51, 3,31,10, 2,32,43,
- 3,31, 9, 1,66,15, 1,70,77, 3,36,68, 2,39,60, 2,39,59, 2,39,61, 3,41,77,
- 2,46,25, 2,46,26, 1,75,16, 1,82,39, 1,79, 9, 1,82,40, 0, 0, 0, 2,63,65,
- 2,63,62, 2,63,64, 2,63,63, 1,85,50, 3,57,11, 2,67,58, 2,71,18, 2,71,17,
- 2, 5, 4, 1,56,33, 1,56,32, 2,19, 4, 3,25,14, 2,25,52, 3,31,12, 3,31,11,
- 2,32,45, 2,32,44, 1,66,16, 3,31,13, 2,39,63, 2,39,64, 2,39,62, 4,32,88,
- 3,36,69, 1,70,79, 1,70,78, 4,39,52, 1,75,18, 1,75,17, 3,46,90, 2,52,48,
- 2,58,63, 2,58,61, 2,58,62, 1,82,41, 2,63,67, 2,63,66, 3,54,47, 2,67,61,
- 2,67,60, 2,67,59, 2,71,19, 3,65,45, 2,81,88, 1,43,42, 1,51,54, 3,15,14,
- 1,51,55, 1,56,34, 1,56,35, 2,19, 6, 2,19, 5, 2,25,53, 3,25,16, 1,61,46,
- 1,61,44, 1,61,41, 1,61,45, 1,61,43, 1,61,42, 3,25,18, 3,25,17, 1,66,17,
- 2,32,48, 3,31,15, 1,70,84, 1,66,19, 1,66,24, 2,32,50, 1,66,26, 1,66,25,
- 1,66,28, 2,32,49, 2,32,46, 1,66,22, 1,66,18, 1,66,20, 2,32,47, 1,66,27,
- 1,66,23, 1,66,21, 1,70,86, 1,70,85, 1,70,83, 1,70,87, 4,32,94, 1,70,81,
- 1,70,82, 3,36,73, 1,70,80, 5,35,13, 2,39,65, 3,36,71, 0, 0, 0, 2,46,28,
- 3,41,80, 1,75,20, 1,75,21, 1,75,19, 3,41,82, 2,46,27, 3,41,81, 2,46,29,
- 3,70,46, 2,52,51, 2,52,53, 3,46,94, 1,79,18, 2,52,54, 1,79,11, 2,52,50,
- 1,79,10, 1,79,20, 1,79,16, 1,79,17, 1,79,13, 2,52,49, 1,79,12, 2,52,55,
- 2,52,52, 3,46,93, 1,79,19, 3,47, 2, 1,79,14, 1,79,15, 2,58,65, 3,50,85,
- 2,58,67, 2,58,66, 3,50,83, 2,58,68, 1,82,42, 2,58,64, 3,54,49, 3,54,50,
- 1,85,54, 2,63,68, 1,85,51, 1,85,55, 1,85,53, 1,85,52, 2,67,62, 4,61,73,
- /* plane 0, page 141 */
- 0, 255, /* first, last */
- 2,67,65, 7,35,50, 2,67,64, 3,57,14, 2,67,63, 1,87,35, 2,71,20, 2,71,21,
- 1,89, 5, 2,71,22, 1,89, 6, 3,59,24, 3,70,47, 1,90,37, 4,68,47, 1,90,36,
- 2,76,33, 3,62,69, 3,62,70, 1,91,14, 2,76,34, 2,78,11, 1,91,85, 1,91,86,
- 3,70,48, 2,79,51, 3,64,42, 1,92,77, 3,65,46, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,43,43, 3,25,19, 1,61,48, 1,61,47,
- 2,39,66, 2,39,67, 0, 0, 0, 1,75,22, 2,58,69, 1,79,21, 2,58,70, 2,63,69,
- 1,43,44, 3, 4,26, 2,13,51, 1,51,57, 1,51,56, 0, 0, 0, 2,19, 7, 1,56,36,
- 2,19, 8, 2,25,56, 3,25,25, 2,25,55, 3,25,23, 2,25,54, 3,25,21, 3,25,24,
- 2,32,52, 1,66,31, 3,31,25, 3,31,20, 2,32,51, 1,66,30, 3,31,23, 3,31,16,
- 3,31,19, 2,32,53, 1,66,29, 3,31,24, 2,39,69, 2,39,72, 2,39,70, 2,39,71,
- 2,39,75, 2,39,68, 2,39,76, 2,39,73, 2,39,74, 1,75,24, 2,46,30, 3,41,85,
- 3,41,83, 1,75,23, 3,41,84, 2,52,59, 2,52,57, 3,47, 6, 4,45,85, 1,79,22,
- 2,52,56, 2,52,58, 3,47, 5, 1,79,23, 3,47, 3, 2,58,71, 3,50,87, 2,58,72,
- 1,85,56, 3,57,17, 2,71,24, 2,71,26, 2,71,23, 2,71,25, 2,74, 4, 2,76,35,
- 3,70,49, 0, 0, 0, 2,81,62, 1,43,45, 1,51,58, 2,19, 9, 2,19,11, 2,19,10,
- 0, 0, 0, 2,25,59, 1,61,50, 3,25,30, 2,25,57, 3,25,26, 1,61,49, 2,25,60,
- 3,25,29, 2,25,61, 2,25,58, 6,37,24, 0, 0, 0, 2,32,65, 1,66,39, 2,32,57,
- 2,32,63, 3,31,31, 3,31,26, 1,66,34, 1,66,37, 2,32,56, 1,66,32, 2,32,60,
- 2,39,82, 1,66,36, 3,31,27, 2,32,55, 3,31,30, 2,32,61, 2,32,58, 2,32,64,
- 2,32,54, 2,32,62, 1,66,35, 1,66,38, 2,32,59, 1,66,33, 0, 0, 0, 1,70,89,
- 2,39,78, 1,70,88, 2,39,85, 2,39,84, 1,71, 1, 0, 0, 0, 1,71, 2, 2,39,86,
- 1,70,90, 2,39,83, 1,70,94, 2,39,88, 2,39,79, 3,36,75, 2,39,81, 1,70,91,
- 2,39,77, 2,39,80, 2,39,87, 1,70,92, 2,39,89, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1,70,93, 0, 0, 0, 1,75,25, 2,46,35, 2,46,41, 2,46,33,
- /* plane 0, page 142 */
- 0, 255, /* first, last */
- 2,46,42, 3,41,91, 2,46,32, 2,46,37, 2,46,43, 2,46,40, 2,46,39, 2,46,38,
- 3,41,90, 2,46,31, 2,46,36, 3,41,89, 0, 0, 0, 2,46,34, 0, 0, 0, 1,79,28,
- 1,79,25, 2,52,68, 2,52,73, 2,52,75, 2,52,72, 2,52,65, 2,52,67, 2,52,77,
- 2,52,74, 2,52,69, 2,52,78, 2,52,66, 2,52,76, 1,79,26, 1,79,32, 1,79,30,
- 2,52,60, 1,79,31, 1,79,27, 2,52,61, 2,52,63, 2,52,62, 2,52,70, 2,52,71,
- 3,47,12, 1,79,29, 3,47,11, 1,79,24, 0, 0, 0, 0, 0, 0, 2,52,64, 0, 0, 0,
- 2,58,82, 1,82,44, 3,50,94, 2,58,73, 1,82,45, 1,82,48, 2,58,78, 5,49,40,
- 2,58,75, 1,82,47, 4,52, 9, 3,50,91, 2,58,79, 2,58,80, 2,58,74, 2,58,83,
- 2,58,76, 2,58,81, 1,82,46, 3,50,92, 1,82,43, 2,58,77, 3,54,52, 2,63,75,
- 1,85,59, 1,85,57, 1,85,60, 1,85,58, 2,63,74, 2,63,71, 2,63,70, 3,54,53,
- 2,63,73, 4,57,13, 0, 0, 0, 2,63,72, 2,67,79, 1,87,41, 2,67,70, 2,67,69,
- 3,57,18, 1,87,36, 2,67,75, 2,67,74, 2,67,66, 2,67,77, 2,67,71, 1,87,40,
- 2,67,68, 2,67,76, 2,67,67, 1,87,37, 1,87,39, 2,67,72, 1,87,38, 2,67,73,
- 3,59,26, 2,67,78, 2,71,30, 3,59,25, 1,89,11, 2,71,27, 4,65,50, 2,71,31,
- 3,59,27, 4,65,47, 1,89, 8, 2,71,29, 1,89,13, 3,59,28, 1,89,10, 3,59,29,
- 2,71,28, 4,65,52, 1,89,12, 2,71,32, 1,89, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1,90,39, 1,90,41, 3,61,23, 2,74, 7, 1,90,40, 2,74, 5, 1,89, 9,
- 2,74, 6, 1,90,38, 1,91,15, 1,91,17, 2,76,37, 1,91,16, 2,76,36, 0, 0, 0,
- 2,78,16, 1,91,87, 2,78,15, 1,91,88, 2,78,13, 2,78,12, 2,78,17, 2,78,18,
- 2,79,52, 3,64,43, 2,78,14, 0, 0, 0, 0, 0, 0, 2,80,52, 2,80,49, 2,80,50,
- 2,80,51, 1,93, 9, 3,65,48, 2,81,32, 2,81,31, 2,81,30, 2,81,63, 3,65,76,
- 2,82,14, 2,81,89, 1,93,27, 1,43,46, 1,56,37, 3,25,31,15,24,76, 3,25,32,
- 3,31,32, 3,36,83, 1,71, 3, 3,41,93, 3,41,92, 0, 0, 0, 3,47,16, 3,47,18,
- 3,47,15, 3,47,17, 1,79,33, 0, 0, 0, 3,70,50, 2,58,84,15,56,19, 3,57,21,
- 1,87,42, 3,57,22, 2,71,33, 3,59,31, 4,65,54, 0, 0, 0, 3,61,24, 4,71,49,
- 0, 0, 0, 2,81,90, 1,43,47, 1,47,49, 1,51,60, 1,51,59, 5,16,53, 1,56,40,
- 3,20, 1, 2,19,12, 1,56,38, 2,19,13, 1,56,39, 3,70,51, 3,25,33, 2,25,66,
- 2,25,62, 3,25,39, 4,21,67, 1,61,51, 2,25,65, 2,25,64, 2,25,63, 1,61,52,
- 2,25,67, 2,25,68, 0, 0, 0, 0, 0, 0, 3,31,37, 2,32,72, 2,32,70, 2,32,74,
- 2,32,75, 2,32,81, 3,31,39, 2,32,77, 2,32,79, 5,35,48, 2,32,71, 2,32,66,
- 4,27,53, 2,32,78, 3,31,36, 3,31,38, 2,32,80, 2,32,73, 2,32,76, 2,32,67,
- 1,66,41, 2,32,69, 2,32,68, 1,66,40, 1,66,42, 3,31,41, 1,71, 6, 2,39,91,
- /* plane 0, page 143 */
- 0, 255, /* first, last */
- 2,39,93, 2,39,92, 2,40, 3, 1,71, 4, 3,36,86, 2,39,94, 2,39,90, 2,40, 1,
- 2,40, 2, 1,71, 5, 1,71, 7, 2,40, 4, 0, 0, 0, 2,46,47, 2,46,46, 4,39,74,
- 2,46,44, 2,46,45, 1,75,27, 1,75,29, 1,75,26, 1,75,28, 2,52,85, 2,52,86,
- 2,52,81, 3,47,22, 2,52,82, 1,79,35, 1,79,40, 1,79,34, 1,79,41, 1,79,36,
- 2,52,83, 4,46,13, 3,47,19, 2,52,84, 2,52,80, 1,79,42, 1,79,38, 3,47,21,
- 4,46,11, 1,79,37, 1,79,39, 3,47,20, 2,52,79, 3,51, 4, 2,58,86, 1,82,50,
- 3,51, 2, 3,51, 1, 2,58,88, 1,82,52, 2,58,91, 2,58,87, 2,58,85, 2,58,90,
- 1,82,51, 2,58,89, 7,20,18, 1,82,49, 3,51, 5, 3,54,57, 1,85,62, 1,85,65,
- 2,63,77, 3,54,58, 1,85,63, 2,63,76, 1,85,61, 1,85,64, 2,67,80, 2,67,81,
- 2,67,82, 1,87,43, 3,57,23, 2,67,83, 0, 0, 0, 1,87,44, 1,89,15, 2,71,36,
- 2,71,37, 2,71,35, 2,71,34, 2,71,38, 1,89,14, 2,74,11, 2,74, 9, 2,74,10,
- 2,74,12, 2,74, 8, 2,74,13, 2,76,39, 3,62,71, 2,76,40, 2,76,38, 1,91,18,
- 2,78,19, 1,91,89, 2,78,20, 2,79,54, 2,79,53, 3,66, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,43,48, 1,66,43, 3,31,43, 3,36,87, 1,71, 8,
- 3,36,88, 3,42, 1, 3,42, 2, 1,75,30, 3,47,23, 3,51, 7, 1,82,54, 3,51, 6,
- 1,82,53, 0, 0, 0, 3,70,52, 0, 0, 0, 3,57,24, 1,89,16, 1,90, 9, 1,91,19,
- 1,43,49, 1,56,41, 1,71, 9, 3,47,25, 2,71,39, 3, 7,15, 4, 1,52,15, 1,74,
- 4, 3,16, 3, 4,27, 0, 0, 0,15, 2,81,15, 2,82, 0, 0, 0, 3, 7,16, 2, 5, 6,
- 4, 5, 1, 3, 7,19, 1,43,50, 4, 5, 3, 1,43,53, 1,43,52, 1,43,51, 3, 7,17,
- 15, 5,18, 2, 5, 5, 3,10,82, 2, 8,77, 3,10,80, 2, 8,79, 1,47,50, 3,10,84,
- 4, 8, 6, 1,47,52, 2, 8,76, 2, 8,78, 1,47,51, 2, 8,81, 2, 8,80, 2, 8,82,
- 3,10,83, 3,10,81, 0, 0, 0, 0, 0, 0,15, 8,81, 0, 0, 0, 0, 0, 0,15, 8,78,
- 2,13,55, 2,13,53, 1,51,63, 2,13,52, 1,51,68, 1,51,65, 1,51,62, 3,15,17,
- 1,51,69, 3,15,18, 1,51,64, 1,51,67, 6,20,64, 1,51,66, 2,13,54, 3,15,19,
- 1,51,61, 3,15,16, 0, 0, 0, 0, 0, 0, 1,56,47, 2,19,15, 2,19,21, 1,56,44,
- 1,56,51, 3,20, 5, 1,56,46, 2,19,18, 2,19,20, 1,56,49, 2,19,14, 2,19,17,
- /* plane 0, page 144 */
- 0, 255, /* first, last */
- 1,56,45, 1,56,42, 2,19,16, 1,56,48, 2,19,19, 1,56,50, 1,56,43, 4,16,15,
- 3,20, 7, 3,20, 6, 0, 0, 0, 2,25,70, 2,25,73, 1,61,54, 3,25,43, 1,61,64,
- 1,61,60, 2,25,71, 3,25,42, 3,25,46, 1,61,68, 1,61,61, 1,61,66, 1,61,56,
- 4,21,72, 1,61,53, 1,61,55, 1,61,67, 2,25,72, 1,61,59, 1,61,62, 1,61,58,
- 1,61,63, 2,25,74, 1,61,65, 1,61,57, 2,25,69, 3,25,44, 0, 0, 0, 0, 0, 0,
- 3,31,47, 3,31,48, 3,31,45, 3,31,44, 3,31,49, 2,32,82, 1,66,44, 2,32,84,
- 3,31,53, 1,66,46, 1,66,48, 4,21,70, 2,32,83, 1,66,45, 1,66,49, 3,31,54,
- 1,66,47, 0, 0, 0, 3,31,52, 3,31,55, 1,71,15, 2,40, 9, 1,71,23, 2,40, 6,
- 3,36,93, 1,71,24, 1,71,13, 3,36,89, 2,40, 7, 3,36,92, 3,36,90, 1,71,18,
- 3,36,91, 2,40, 8, 1,71,11, 1,71,10, 3,36,94, 1,71,21, 1,71,20, 1,71,19,
- 1,71,17, 1,71,22, 2,40, 5, 1,71,12, 1,71,14, 1,71,16, 0, 0, 0, 0, 0, 0,
- 1,75,32, 1,75,35, 3,42, 4, 1,75,39, 1,75,33, 1,75,38, 1,75,36, 3,42, 7,
- 1,75,31, 3,42, 6, 1,75,37, 1,75,34,15,44,75, 0, 0, 0, 4,46,18, 2,52,90,
- 1,79,45, 1,79,43, 3,47,28, 2,52,91, 4,46,19, 1,79,46, 1,79,44, 2,52,89,
- 2,52,88, 3,47,27, 1,82,58, 2,52,87, 1,82,56, 1,82,55, 2,58,92, 1,79,47,
- 1,82,57, 2,58,93, 1,82,60, 2,58,94, 1,82,59, 1,85,67, 2,63,79, 1,85,66,
- 1,85,71, 1,85,69, 1,85,70, 1,87,46, 1,85,68, 2,63,78, 2,59, 1, 1,87,45,
- 1,87,47, 3,57,26, 1,89,17, 1,89,18, 4,65,63, 2,74,14, 4,73,50, 1,92,42,
- 1,92,41, 1,43,55, 3, 2,62, 3, 2,61, 2, 2,85, 1,56,52, 3, 4,28, 2, 2,82,
- 2, 2,83, 2, 2,81, 3, 4,29, 2, 2,84, 3,70,53, 0, 0, 0, 2, 5,10, 2, 5, 7,
- 2, 5,12, 2, 5, 8, 1,43,56, 1,43,59, 3, 7,21, 2, 5, 9, 1,43,58, 2, 5,11,
- 3, 7,25, 3, 7,20, 1,43,57, 3,25,49, 0, 0, 0, 3,10,87, 4, 8,11, 2, 8,85,
- 2, 8,87, 1,47,55, 2, 8,83, 2, 8,86, 2, 8,84, 1,47,53, 1,47,56, 3,10,85,
- 1,47,54, 3,10,88, 0, 0, 0, 0, 0, 0, 3,15,21, 2,13,57, 2,13,61, 2,13,58,
- 3,15,24, 1,51,72, 3,15,20, 1,51,73, 3,15,30, 2,13,60, 3,15,23, 2,13,62,
- 2,13,64, 3,15,28, 1,51,70, 2,13,63, 4,33,25, 3,15,27, 1,51,71, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,37,77, 0, 0, 0, 2,25,81, 2,13,59, 2,19,22, 2,19,31,
- 2,19,29, 2,19,24, 2,19,25, 2,19,30, 2,19,32, 1,56,54, 3,20, 9, 2,19,27,
- 2,19,23, 1,56,53, 1,56,55, 2,19,26, 2,19,33, 2,19,28, 0, 0, 0, 0, 0, 0,
- 1,61,69, 2,25,84, 2,25,76, 2,25,82, 2,25,83, 1,61,70, 3,25,47, 2,25,75,
- 2,25,77, 2,13,56, 2,25,79, 2,25,80, 2,25,78, 1,66,51, 4,46,27, 3,25,50,
- 0, 0, 0, 2,32,91, 2,59, 2, 2,32,92, 2,32,89, 1,61,71, 1,66,53, 2,32,88,
- /* plane 0, page 145 */
- 0, 255, /* first, last */
- 2,32,94, 2,32,93, 1,66,50, 2,33, 3, 2,32,87, 2,33, 2, 2,32,85, 2,33, 1,
- 2,32,90, 1,66,52, 3,31,57, 2,40,16, 3,37, 3, 2,40,11, 2,40,17, 2,40,12,
- 2,40,10, 2,40,13, 1,71,25, 3,37, 4, 2,40,15, 3,37, 5, 2,40,14, 1,71,26,
- 1,75,41, 1,75,40, 2,46,54, 2,46,57, 2,46,49, 2,46,53, 1,75,42, 2,46,52,
- 2,46,50, 2,46,56, 2,46,51, 2,46,48, 2,46,55, 3,42,10, 2,53, 3, 1,79,50,
- 2,67,84, 2,52,94, 2,53, 1, 2,52,93, 2,32,86, 1,79,49, 2,53, 4, 2,52,92,
- 1,79,48, 1,79,51, 2,53, 2, 2,59, 3, 1,82,61, 2,59, 4, 2,59, 5, 3,51,11,
- 2,63,80, 1,85,72, 2,67,85, 2,67,86, 3,57,28, 3,57,27, 2,67,87, 2,71,41,
- 2,71,40, 2,74,16, 0, 0, 0, 2,74,15, 2,76,42, 2,76,43, 2,76,41, 2,78,21,
- 1,91,90, 1,43,60, 1,51,75, 1,51,74, 1,56,58, 1,56,57, 2,19,35, 2,19,36,
- 2,19,34, 3,20,10, 1,56,56, 2,25,88, 3,25,53, 2,25,89, 2,25,85, 1,61,72,
- 2,25,86, 3,25,52, 2,25,87, 0, 0, 0, 3,70,55, 0, 0, 0, 0, 0, 0, 2,33, 6,
- 2,33, 8, 2,33, 4, 2,33, 7, 1,66,54, 2,33, 5, 1,66,55, 0, 0, 0, 3,37, 8,
- 2,34,89, 1,71,29, 1,71,28, 3,37, 7, 1,71,27, 4,33,26, 2,40,18, 2,40,19,
- 4,33,27, 0, 0, 0, 2,46,59, 2,46,61, 1,75,46, 1,75,43, 3,42,12, 1,75,45,
- 1,75,44, 2,46,60, 2,46,58, 3,42,11, 3,42,13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2,53,11, 2,53, 8, 2,53, 9, 1,79,55, 2,53,10, 2,53, 5, 2,53, 6, 1,79,52,
- 3,47,31, 1,79,53, 2,53, 7, 1,79,54, 3,47,32, 2,59, 9, 3,51,13, 2,59,10,
- 2,59, 7, 2,59, 8, 1,82,62, 2,59, 6, 4,52,34, 3,51,12, 3,51,15, 0, 0, 0,
- 4,57,31, 2,63,84, 2,63,81, 2,63,83, 1,85,75, 2,63,87, 1,85,74, 2,63,85,
- 2,63,88, 2,63,86, 2,63,82, 1,85,73, 0, 0, 0, 2,67,89, 4,62, 4, 2,67,90,
- 2,67,88, 3,57,29, 2,67,92, 1,87,48, 1,87,49, 2,71,43, 1,89,20, 2,67,91,
- 2,71,42, 1,89,19, 2,74,19, 2,74,20, 1,90,42, 2,74,18, 4,68,69, 2,74,17,
- 0, 0, 0, 2,76,44, 1,91,20, 3,62,72, 2,79,55, 2,80,54, 2,80,53, 3,64,94,
- 1,92,78, 1,93,10, 2,80,55, 2,81,64, 3,65,77, 1,93,28, 1,43,61, 1,47,57,
- 0, 0, 0, 1,71,30, 0, 0, 0, 1,90,43, 1,43,62, 1,51,76, 1,61,73, 1,66,56,
- 1,87,50, 1,47,58, 0, 0, 0, 2,13,66, 2,13,65, 2,19,37, 3,20,16, 1,56,61,
- 1,56,59, 1,56,63, 2,19,39, 3,20,13, 1,56,62, 1,56,60, 3,20,15, 3,20,14,
- 3,20,17, 0, 0, 0, 2,19,38, 1,61,76, 2,26, 1, 3,25,56, 1,61,75, 1,61,77,
- 2,26, 6, 1,61,79, 2,26, 3, 2,26, 4, 2,25,90, 1,61,78, 2,26, 7, 4,21,91,
- 3,25,55, 2,25,92, 3,25,54, 2,25,93, 2,25,91, 1,61,74, 3,25,57, 2,26, 5,
- 2,25,94, 2,26, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,33,20, 3,31,61, 2,33,19,
- /* plane 0, page 146 */
- 0, 255, /* first, last */
- 2,33,17, 2,33, 9, 2,33,24, 2,33,12, 2,33,22, 2,33,29, 2,33,21, 1,66,64,
- 3,31,70, 1,66,60, 2,33,10, 3,31,64, 2,33,16, 1,66,62, 3,31,72, 2,33,15,
- 1,66,63, 1,66,65, 2,33,18, 3,31,73, 1,66,57, 1,66,58, 2,33,30, 2,33,28,
- 3,31,66, 2,33,27, 2,33,13, 3,31,69, 2,33,25, 4,27,70, 1,66,61, 6,47,79,
- 3,31,62, 3,70,57, 3,31,67, 1,66,59, 2,33,26, 2,33,11, 2,33,14, 2,33,23,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,70,56, 0, 0, 0, 2,47, 2, 2,40,29, 3,37,14,
- 2,40,22, 2,40,41, 2,40,50, 2,40,25, 1,71,41, 3,37,11, 2,40,38, 1,71,31,
- 1,71,33, 1,71,45, 2,40,23, 3,37,23, 3,37,15, 1,71,34, 1,71,36, 1,71,46,
- 1,71,35, 3,37,25, 4,33,33, 4,33,38, 3,37,24, 1,71,44, 2,40,31, 4,33,40,
- 2,40,20, 1,71,42, 2,40,30, 1,71,38, 2,40,48, 1,71,43, 2,40,46, 2,40,34,
- 2,40,44, 1,71,40, 2,40,21, 2,40,47, 2,40,42, 3,37,10, 2,40,49, 1,71,32,
- 4,33,32, 3,37,13, 1,71,47, 1,71,37, 3,37,17, 3,37, 9, 2,40,27, 3,37,20,
- 2,40,35, 2,40,39, 3,37,19, 2,40,43, 1,71,39, 2,40,26, 2,40,24, 2,40,36,
- 4,33,34, 4,33,35, 3,37,18, 3,37,21, 2,40,33, 2,40,32, 3,37,22, 2,40,37,
- 2,40,40, 0, 0, 0, 2,40,45, 3,70,58,15,37,82, 4,39,85, 2,46,64,15,45, 2,
- 1,75,47, 2,46,74, 2,46,66, 1,75,53, 1,75,57, 2,46,83, 2,46,91, 2,46,76,
- 1,75,49, 3,42,20, 2,46,80, 2,40,28, 3,42,21, 1,75,50, 2,46,87, 2,46,92,
- 2,46,84, 3,42,15, 2,46,86, 2,47, 1, 2,46,88, 2,46,70, 2,46,79, 3,37,16,
- 3,42,24, 1,75,58, 3,42,19, 1,75,54, 2,46,68, 2,46,81, 1,75,52, 2,46,75,
- 1,75,51, 2,46,89, 2,46,72, 2,46,65, 1,75,55, 2,46,94, 3,42,25, 4,39,87,
- 2,46,67, 2,46,85, 2,46,82, 2,46,77, 2,46,63, 2,46,62, 2,46,71, 2,46,90,
- 1,75,56, 2,46,93, 2,46,69, 2,46,73, 1,75,48, 3,42,18, 3,42,23,15,45, 7,
- 3,71,10, 3,42,17, 1,79,67, 1,79,62, 2,53,45, 2,53,41, 2,53,17, 1,79,58,
- 3,47,34, 3,47,48, 4,46,37, 1,79,57, 1,79,63, 4,46,39, 3,47,35, 3,47,33,
- 2,53,15, 1,79,61, 2,53,27, 2,53,13, 2,53,14, 1,79,56, 2,53,44, 1,79,65,
- 2,53,30, 2,53,35, 2,53,29, 2,59,28, 2,53,25, 2,53,33, 2,53,31, 2,53,18,
- 2,53,12, 2,53,39, 1,79,64, 2,53,40, 3,47,40, 2,53,34, 3,47,41, 2,53,23,
- 2,53,21, 2,53,16, 3,47,43, 3,47,46, 3,47,36, 2,53,24, 2,53,37, 2,53,20,
- 2,53,36, 2,53,42, 3,47,49, 4,46,38, 1,79,60, 3,47,37, 2,53,32, 2,53,38,
- 2,53,28, 2,53,22, 1,79,59, 3,47,50, 4,46,36, 3,47,44, 2,46,78, 2,53,26,
- 1,79,66, 2,53,19,15,50,75, 3,47,45, 3,70,59, 3,70,60, 3,42,16, 2,59,33,
- 1,82,65, 2,59,32, 2,59,30, 2,59,48, 1,82,69, 3,51,21, 2,59,45, 2,59,37,
- /* plane 0, page 147 */
- 0, 255, /* first, last */
- 2,59,47, 2,59,23, 2,59,35, 3,51,29, 1,82,71, 3,51,30, 2,59,15, 3,51,24,
- 2,59,13, 2,59,46, 3,51,18, 2,59,44, 2,59,43, 2,59,27, 2,59,26, 2,59,16,
- 1,82,73, 4,52,35, 2,59,22, 2,59,31, 2,59,42, 1,82,76, 2,59,49, 3,51,22,
- 1,85,83, 1,82,78, 1,82,72, 2,59,20, 3,51,23, 2,59,29, 2,59,12, 2,59,14,
- 1,82,63, 1,82,75, 1,82,68, 2,59,21, 2,59,36, 2,53,43, 1,82,74, 2,59,11,
- 1,85,78, 2,59,38, 2,59,41, 1,82,70, 3,51,27, 2,59,25, 1,82,77, 1,82,67,
- 3,51,28, 3,51,25, 3,51,26, 1,82,66, 2,59,34, 2,59,40, 1,82,64, 4,52,37,
- 2,59,18, 2,59,39,15,56,57,15,56,40, 2,59,19, 7,20,67, 0, 0, 0, 3,70,61,
- 15,56,53, 0, 0, 0, 3,70,62, 4,52,41, 0, 0, 0, 3,51,17, 2,59,24, 2,63,94,
- 3,54,69, 2,64, 5, 1,85,80, 1,85,82, 2,64,11, 1,85,76, 2,64,25, 2,64,17,
- 2,64, 6, 2,64, 7, 2,64,16, 3,54,70, 1,85,89, 2,64,15, 2,63,93, 2,64,14,
- 2,64, 2, 2,64,26, 1,85,88, 1,85,86, 2,64, 3, 3,54,61, 2,64,22, 3,54,71,
- 2,64, 8, 2,64,21, 3,54,68, 2,64,23, 2,63,92, 1,85,81, 3,54,59, 2,64,24,
- 3,54,72, 3,54,62, 2,64,12, 3,54,75, 1,85,85, 2,64, 9, 3,54,65, 4,57,41,
- 1,85,87, 2,64,18, 3,54,66, 3,54,67, 3,54,63, 1,85,79, 2,64, 4, 2,64,19,
- 3,54,60, 2,64,13, 2,59,17, 2,64,20, 2,64, 1, 3,54,64, 1,85,84, 3,54,74,
- 2,68,15, 4,57,39, 1,85,77, 2,63,90, 4,57,38,15,61,33, 3,70,63,15,61,25,
- 2,68,12, 2,68, 5, 1,87,52, 3,57,35, 2,67,94, 2,68,16, 2,68, 7, 2,64,10,
- 3,57,32, 2,68,18, 2,68, 1, 3,57,34, 1,87,51, 2,68,11, 1,87,53, 1,87,61,
- 1,87,59, 2,68,13, 1,87,60, 2,68, 3, 3,57,41, 2,68, 4, 2,68, 9, 2,68,14,
- 3,57,30, 2,63,89, 1,87,54, 2,68,23, 2,68,20, 2,71,65, 2,68,10, 2,68, 6,
- 2,68,21, 2,71,54, 2,68, 8, 4,62,17, 1,87,57, 3,57,36, 1,87,56, 2,63,91,
- 1,87,58, 2,68,17, 2,68,19, 1,87,55, 2,68,22, 2,67,93, 4,62, 9, 2,68, 2,
- 3,57,38,15,65,19, 0, 0, 0, 3,57,37, 3,70,65, 3,70,66, 3,70,64,15,65,35,
- 2,71,63, 3,59,48, 2,71,47, 1,89,24, 2,71,61, 3,59,36, 3,59,37, 2,71,45,
- 1,89,25, 4,65,71, 2,71,56, 3,59,35, 2,71,52, 1,89,30, 2,71,62, 2,71,46,
- 2,71,49, 1,89,22, 2,71,64, 3,59,40, 2,71,57, 2,71,60, 1,89,28, 1,89,33,
- 1,89,31, 2,71,53, 2,71,48, 3,59,45, 1,89,26, 1,89,27, 2,71,44, 1,89,23,
- 3,59,47, 1,89,21, 1,89,29, 2,71,59, 1,89,32, 3,59,42, 2,71,55, 2,71,66,
- 1,89,34, 3,59,33, 3,59,34, 3,59,46, 2,71,51, 3,59,39, 2,71,58, 3,70,69,
- 0, 0, 0, 3,70,67, 3,70,68, 3,61,33, 3,62,74, 2,74,33, 2,74,48, 2,74,35,
- 2,74,42, 2,71,50, 2,74,40, 2,74,23, 2,74,46, 1,90,46, 2,74,27, 2,74,45,
- /* plane 0, page 148 */
- 0, 132, /* first, last */
- 2,74,34, 4,68,71, 3,61,35, 1,90,45, 3,61,28, 3,61,31, 2,74,50, 2,74,36,
- 3,61,30, 2,74,41, 2,74,44, 2,74,21, 2,74,47, 2,74,32, 2,74,37, 2,74,25,
- 2,74,29, 2,74,49, 2,74,39, 2,74,22, 2,74,26, 2,74,28, 2,74,38, 3,61,29,
- 1,90,44, 2,74,31, 3,61,36, 3,61,37, 3,61,39, 4,68,75, 3,61,34, 3,61,26,
- 2,74,24, 0, 0, 0, 3,70,70, 3,70,71, 3,70,72,15,70,55, 0, 0, 0, 3,61,38,
- 2,74,30, 2,76,48, 2,76,52, 1,91,27, 2,76,54, 3,62,77, 1,91,21, 4,68,79,
- 2,76,50, 2,76,56, 1,91,26, 1,91,22, 4,71,60, 1,91,23, 2,76,47, 2,76,53,
- 1,91,25, 2,76,51, 1,91,24, 2,76,46, 2,74,43, 2,76,49, 4,71,66, 2,76,45,
- 2,76,55, 0, 0, 0, 3,63,73, 3,63,78, 1,91,91, 2,78,28, 2,78,31, 2,78,27,
- 2,78,29, 2,78,30, 2,78,24, 2,78,25, 2,78,22, 3,63,74, 3,63,76, 2,78,26,
- 2,78,23, 1,91,92, 1,91,93, 0, 0, 0, 3,63,75, 2,79,57, 3,64,50, 2,79,59,
- 4,75, 9, 5,86,61, 3,64,53, 3,64,52, 3,64,54, 2,79,58, 2,79,60, 3,64,47,
- 1,92,44, 3,64,51, 2,79,56, 1,92,43, 1,92,45, 3,64,55, 3,70,74, 3,70,73,
- 2,80,57, 2,80,58, 1,92,79, 2,80,56, 3,65, 2, 2,81,34, 2,81,33, 2,81,35,
- 1,93,12, 2,81,36, 1,93,11, 2,81,37, 2,81,65, 2,81,68, 2,81,67, 1,93,21,
- 2,81,66, 4,77,66, 3,65,79, 3,66, 3, 1,93,31, 1,93,29, 1,93,30, 1,93,36,
- 2,82,16, 2,82,17, 2,82,15, 2,82,23, 3,66,22,
- /* plane 0, page 149 */
- 119, 245, /* first, last */
- 1,47,59,
- 4, 5,11, 4,16,26, 2,26, 8, 2,33,31, 2,53,46, 2,71,67, 5,81,54, 0, 0, 0,
- 1,47,60, 3,15,32, 1,51,77, 1,56,64, 4,16,27, 3,20,18, 2,26, 9, 3,25,60,
- 2,26,10, 1,61,80, 0, 0, 0, 1,66,68, 2,33,33, 2,33,32, 1,66,72, 1,66,67,
- 2,33,34, 1,66,69, 1,66,71, 1,66,70, 1,66,66, 3,31,76,15,31,94, 3,70,75,
- 1,71,48, 3,37,28, 3,37,26, 2,40,54, 2,40,52, 4,33,51, 2,40,53, 2,40,51,
- 15,37,91, 1,75,59, 3,42,29, 1,75,62, 1,75,64, 1,75,63, 4,40, 2, 3,42,30,
- 1,75,60, 1,75,61, 0, 0, 0, 2,53,48, 2,53,47, 1,79,68, 2,53,49, 3,47,51,
- 2,53,50, 1,79,69, 3,47,53, 3,47,54, 4,46,42, 2,59,57, 2,59,55, 2,64,32,
- 3,51,34, 2,59,53, 2,59,54, 1,82,79, 2,59,50, 2,59,58, 2,59,52, 2,59,56,
- 2,64,28, 3,51,36, 3,51,32, 2,64,30, 3,54,77, 2,64,31, 1,85,94, 2,64,27,
- 1,85,93, 2,64,29, 1,85,90, 1,85,91, 1,85,92, 2,59,51, 3,70,76, 0, 0, 0,
- 1,87,64, 2,68,26, 2,68,24, 2,68,25, 1,87,62, 1,87,65, 1,87,63, 3,57,43,
- 3,57,42, 7,43,32, 2,71,68, 2,71,69, 1,89,35, 3,59,51, 2,74,51, 2,74,53,
- 2,74,52, 1,90,47, 1,91,28, 2,76,59, 2,76,58, 2,76,57,15,72,82, 3,70,77,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 5,25,
- /* plane 0, page 150 */
- 28, 255, /* first, last */
- 1,47,61, 3, 1,35, 2, 1,73, 0, 0, 0,
- 2, 2,88, 1,40,74, 2, 2,86, 2, 2,89, 2, 2,87, 4, 5,14, 3, 7,27, 3, 7,26,
- 2, 5,14, 3, 7,31, 1,43,66, 3, 7,28, 1,43,67, 2, 5,16, 1,43,64, 2, 5,15,
- 2, 5,13, 1,43,65, 1,43,63, 3, 7,29, 3, 7,30, 0, 0, 0, 0, 0, 0, 3,10,89,
- 4, 8,19, 2, 8,88, 2, 8,91, 1,47,64, 2, 8,90, 2, 8,89, 3,10,92, 1,47,63,
- 1,47,62, 3,10,91, 1,47,66, 2, 8,92, 1,47,65, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2,13,71, 1,51,79, 1,51,80, 1,51,81, 2,13,72, 2,13,68,
- 1,51,78, 2,13,69, 4,11,61, 2,13,70, 2,13,67, 4,11,59, 3,20,22, 4,16,31,
- 1,56,71, 3,20,20, 3,25,62, 1,56,68, 2,19,40, 1,56,69, 1,56,72, 2,19,41,
- 3,20,19, 1,56,67, 1,56,65, 1,56,66, 1,56,70, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1,61,81, 2,26,13, 1,61,89, 2,26,12, 3,25,65, 2,26,15,
- 1,61,85, 2,26,14, 1,66,80, 1,61,83, 1,61,86, 1,61,82, 1,61,87, 1,61,88,
- 1,61,84, 3,25,69, 0, 0, 0, 3,31,81, 2,26,11, 1,66,76, 2,33,36, 3,31,82,
- 2,33,40, 3,31,83, 3,31,85, 2,33,39, 1,66,81, 1,66,77, 1,66,78, 2,33,35,
- 2,33,37, 2,33,38, 1,66,73, 1,66,75, 3,31,80, 1,66,79, 1,66,74, 3,37,32,
- 0, 0, 0, 2,40,57, 2,40,55, 2,40,56, 1,71,50, 1,71,51, 3,37,34, 2,40,58,
- 1,71,49, 1,75,65, 4,40, 4, 1,75,67, 1,75,66, 3,42,37, 2,47, 3, 3,42,38,
- 3,42,36, 2,47, 4, 2,53,52, 3,47,58, 2,53,51, 3,47,59, 4,52,50, 1,82,80,
- 1,82,81, 2,59,59, 1,82,82, 3,51,40, 2,64,35, 3,54,80, 2,64,33, 3,54,79,
- 2,64,34, 1,86, 1, 3,54,81, 2,68,27, 1,89,36, 3,61,41, 3,10,93, 3,51,41,
- 1,86, 2, 1,47,67, 4,16,33, 1,56,73, 2,19,42, 3,20,25,15,18,79, 2,26,16,
- 1,61,90, 1,66,82, 2,33,41, 2,33,43, 1,66,84, 1,66,83, 1,66,85, 1,66,86,
- 2,33,42, 1,71,54, 1,71,55, 1,71,53, 1,75,68, 1,71,52, 2,40,59, 4,33,55,
- 3,42,39, 3,42,41, 1,75,69, 2,53,53, 2,59,60, 1,82,83, 1,86, 3, 2,68,28,
- 2,68,32, 1,87,68, 2,68,29, 1,87,69, 1,87,67, 2,68,33, 1,87,70, 2,68,31,
- 0, 0, 0, 2,71,70, 1,87,66, 1,89,37, 3,62,80, 2,80,59, 3,65, 5, 3,66,15,
- 1,47,68, 1,61,92, 1,61,91,15,25,10, 3,31,94, 3,31,92, 3,31,91, 1,66,87,
- 2,33,45, 2,33,44, 1,66,88, 0, 0, 0, 3,37,38, 2,40,63, 1,71,59, 1,71,56,
- 2,40,62, 1,71,58, 2,40,60, 1,71,57, 3,37,39, 2,40,61, 0, 0, 0, 2,47, 5,
- /* plane 0, page 151 */
- 0, 255, /* first, last */
- 1,75,70, 0, 0, 0, 2,53,56, 5,50,27, 1,79,70, 2,53,54, 1,79,71, 1,79,72,
- 2,53,55, 1,79,73, 3,47,64, 2,59,61, 3,51,48, 1,82,87, 1,82,84, 1,82,89,
- 2,59,63, 1,82,85, 2,59,62, 1,82,88, 3,51,45, 3,51,44, 1,82,86, 3,51,49,
- 2,64,38, 2,64,40, 3,54,84, 3,54,85, 1,86, 4, 2,64,39, 1,86, 5, 2,64,37,
- 2,64,36, 4,62,24, 2,68,35, 2,68,34, 1,87,71, 2,68,36, 2,71,75, 1,89,39,
- 2,71,74, 2,71,71, 1,89,38, 2,71,72, 2,71,73, 0, 0, 0, 2,74,54, 2,74,55,
- 1,90,48, 3,61,47, 1,91,31, 3,61,44, 3,61,46, 2,76,60, 3,62,82, 3,62,81,
- 1,91,29, 1,91,30, 2,76,61, 3,70,78, 3,63,81, 1,91,94, 1,92, 1, 2,78,32,
- 3,63,82, 3,64,57, 1,92,80, 2,80,61, 1,92,82, 3,65, 6, 2,80,60, 2,80,62,
- 1,92,81, 2,81,38, 4,77,68, 2,81,91, 0, 0, 0, 3,70,79, 0, 0, 0, 0, 0, 0,
- 3,66,37, 3,10,94, 1,47,69, 0, 0, 0, 0, 0, 0, 3,37,41, 1,71,60, 4,40,21,
- 2,47, 6, 3,42,44, 2,53,57, 1,82,90, 1,82,91, 3,57,47, 1,47,70, 3,32, 1,
- 1,79,74, 1,89,40, 1,51,82, 3,11, 1, 3,42,46, 0, 0, 0, 1,82,92, 3,62,83,
- 1,92,46, 1,51,83, 2,26,17, 4,27,87, 2,33,46, 3,32, 4, 2,33,48, 3,32, 2,
- 2,33,47, 0, 0, 0, 2,40,67, 2,40,64, 1,71,61, 6,58, 4, 1,71,62, 2,40,65,
- 2,40,66, 3,37,43, 2,47, 8, 2,47,13, 1,75,71, 2,47, 7, 2,47, 9, 2,47,16,
- 2,47,11, 2,47,15, 2,47,12, 2,47,10, 2,47,14, 1,75,72, 0, 0, 0, 3,47,66,
- 2,53,60, 3,47,67, 2,53,58, 1,79,76, 3,47,68, 1,79,75, 2,53,59, 1,79,77,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,51,51, 2,59,66, 4,52,63, 4,52,71, 2,59,65,
- 1,82,93, 2,59,64, 2,64,41, 3,54,90, 2,64,43, 2,64,45, 2,64,44, 3,54,91,
- 1,86, 6, 2,64,42, 2,68,43, 1,87,72, 2,68,41, 2,68,44, 1,87,73, 4,62,35,
- 2,68,39, 3,57,48, 2,68,42, 2,68,40, 2,68,37, 1,87,74, 2,68,38, 0, 0, 0,
- 4,65,92, 3,59,63, 3,59,61, 2,71,76, 3,59,62, 3,59,64, 2,71,78, 2,71,77,
- 3,61,48, 2,74,56, 3,61,49, 2,74,57, 4,71,81, 3,62,85, 3,62,84, 2,76,62,
- 3,63,83, 1,92, 3, 4,73,62, 1,92, 2, 2,79,61, 2,79,62, 1,92,83, 2,80,63,
- 3,65, 8, 1,93,22, 3,66,27, 1,51,84, 1,66,89, 2,47,18, 2,47,17, 2,53,62,
- 2,53,61, 4,46,55, 3,51,53, 1,86, 7, 2,64,47, 2,64,46, 2,68,47, 2,68,45,
- 2,68,48, 2,68,46, 3,57,49, 4,69, 9, 1,89,41, 2,71,79, 2,71,80, 2,71,81,
- 4,69, 7, 2,76,63, 3,62,86, 2,78,33, 3,65, 9, 2,80,64, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,51,85, 3,37,47, 3,47,69,
- 2,59,67, 2,64,48, 3,59,65, 1,51,86, 4,33,67, 3,37,48, 1,75,73, 4,40,38,
- 2,59,68, 1,87,75, 2,68,49, 1,89,42, 3,61,51, 2,74,58, 2,74,59, 1,91,32,
- /* plane 0, page 152 */
- 0, 255, /* first, last */
- 2,79,63, 1,51,87, 1,62, 1, 1,62, 2, 2,26,18, 1,66,90, 1,66,91, 2,33,49,
- 1,66,92, 4,33,72, 1,71,66, 3,37,50, 1,71,68, 2,40,69, 2,40,70, 2,40,68,
- 1,71,63, 1,71,64, 1,71,67, 1,71,65, 3,42,52, 3,42,53, 2,47,19, 1,75,74,
- 1,75,75, 3,42,50, 3,42,54, 2,53,69, 1,79,80, 2,53,64, 2,53,63, 3,47,73,
- 2,53,68, 1,79,78, 3,47,71, 4,46,58, 1,83, 6, 4,52,80, 2,53,65, 2,53,70,
- 2,53,67, 2,53,66, 3,47,70, 1,79,79, 0, 0, 0, 1,83, 4, 3,51,60, 2,59,70,
- 1,82,94, 3,51,57, 2,59,71, 3,51,58, 3,50, 8, 2,59,69, 3,51,56, 1,83, 3,
- 1,83, 1, 1,83, 5, 3,51,61, 1,83, 2, 3,51,59, 3,51,63, 4,62,47, 3,57,59,
- 3,55, 6, 2,64,49, 4,57,80, 2,64,54, 2,64,50, 2,64,53, 1,86, 8, 3,55, 8,
- 2,62,33, 2,64,52, 2,64,51, 3,57,57, 1,87,78, 1,87,76, 1,87,79, 1,87,77,
- 2,68,50, 2,68,51, 2,68,52, 1,87,80, 3,57,54, 3,57,56, 3,59,69, 2,71,85,
- 1,89,44, 2,71,83, 4,66,16, 1,89,45, 2,71,82, 2,71,84, 1,89,43, 2,74,63,
- 2,74,60, 4,69,12, 2,74,61, 2,74,62, 2,76,64, 1,91,34, 3,62,88, 1,91,33,
- 3,62,87, 2,78,35, 2,78,34, 1,92, 4, 3,64,61, 3,64,62, 3,64,60, 1,92,47,
- 1,92,84, 1,93,13, 2,81,39, 2,81,92, 2,81,93, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1,51,88, 2,33,50, 0, 0, 0, 4,33,81, 2,40,71, 2,47,20, 2,47,21, 1,75,76,
- 4,40,55, 1,75,77, 2,53,71, 1,79,81, 0, 0, 0, 3,51,65, 1,86, 9, 3,55,10,
- 2,68,53, 3,57,60, 1,87,81, 2,71,88, 1,89,46, 2,71,87, 2,71,89, 2,71,86,
- 2,76,67, 2,74,64, 2,74,65, 3,61,54, 1,90,49, 0, 0, 0, 2,76,66, 3,62,91,
- 3,62,89, 2,76,65, 3,62,90, 2,78,36, 2,81,94, 3,66, 5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,51,89, 3,62,92, 3,66, 6, 0, 0, 0, 1,51,90,
- 0, 0, 0, 3,25,71, 1,56,74, 2,19,43, 3,70,80, 2,26,19, 3,25,72, 1,66,93,
- 0, 0, 0, 1,67, 2, 1,66,94, 2,33,51, 3,37,59, 1,67, 4, 0, 0, 0, 1,67, 1,
- 3,32,11, 3,37,60, 1,67, 3, 3,37,52, 1,71,70, 3,37,57, 2,40,72, 3,37,55,
- 3,42,61, 2,40,73, 2,53,73, 4,33,91, 1,71,69, 1,71,71, 1,71,72, 3,37,56,
- /* plane 0, page 153 */
- 0, 255, /* first, last */
- 2,47,23, 3,42,62, 2,47,22, 1,75,78, 5,43,44, 1,75,79, 3,42,59, 2,47,24,
- 2,53,72, 1,75,81, 1,79,82, 4,46,67, 1,75,80, 0, 0, 0, 3,70,90, 0, 0, 0,
- 1,83, 7, 2,53,74, 1,79,84, 1,79,83, 2,53,75, 2,53,78, 2,53,76, 2,53,77,
- 1,79,85, 3,47,75, 1,83,12, 1,83,10, 3,51,69, 3,51,70, 1,83, 9, 2,59,73,
- 3,51,68, 1,83,11, 3,51,66, 3,51,67, 2,59,72, 2,64,55, 4,52,94, 2,59,74,
- 1,83, 8, 2,59,75, 2,64,58, 2,64,56, 2,64,57, 2,64,62, 1,87,85, 2,64,61,
- 2,64,64, 2,64,63, 2,64,60, 2,64,59, 4,53, 1, 1,86,10, 3,57,66, 4,58, 9,
- 3,57,65, 3,57,70, 2,68,56, 3,57,69, 2,68,55, 1,87,84, 1,87,82, 1,87,83,
- 3,57,67, 2,68,54, 3,70,81, 2,71,92, 3,59,73, 1,89,47, 4,66,24, 2,71,91,
- 2,71,90, 1,89,48, 4,69,26, 2,74,70, 2,74,69, 3,61,56, 2,74,67, 3,62,94,
- 2,74,66, 1,90,51, 1,90,50, 2,74,71, 2,78,37, 1,92, 5, 2,76,69, 1,91,35,
- 2,76,68, 2,74,68, 3,63,88, 2,78,38, 1,92,48, 3,65,10, 1,93,14, 2,81,40,
- 4,78, 4, 2,82, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,51,91, 2,26,20,
- 2,64,65, 1,51,92, 3,37,63, 5,43,46, 2,47,26, 2,47,25, 2,59,76, 5,58, 6,
- 3,51,72, 2,64,67, 3,55,16, 2,64,66, 3,57,71, 1,87,86, 2,71,93, 2,71,94,
- 1,90,52, 3,63, 1, 3,64,64, 2,82, 2, 1,56,75, 1,67, 6, 1,67, 5, 2,40,74,
- 2,40,76, 1,71,74, 2,40,75, 1,71,73, 1,71,75, 2,40,77, 3,42,67, 3,42,66,
- 3,42,70, 2,47,28, 2,47,30, 2,47,29, 3,42,65, 2,47,32, 3,42,64, 3,42,76,
- 3,42,68, 1,75,82, 2,47,31, 2,47,27, 3,42,74, 0, 0, 0, 4,40,64, 2,47,33,
- 3,47,83, 2,53,85, 3,47,77, 2,53,88, 2,53,90, 2,53,80, 2,53,84, 2,53,81,
- 1,79,87, 1,79,90, 1,79,92, 2,53,82, 2,53,83, 1,79,91, 2,53,86, 2,53,89,
- 2,53,87, 1,79,93, 3,47,78, 1,79,89, 2,53,79, 1,79,86, 3,47,82, 1,79,88,
- 3,47,84, 3,51,80, 1,83,14, 2,59,82, 2,59,80, 2,59,79, 3,51,81, 2,59,85,
- 3,51,75, 2,59,84, 2,59,83, 3,51,76, 2,59,78, 1,83,13, 2,59,77, 3,51,74,
- 2,59,81, 1,83,15, 0, 0, 0, 3,55,20, 2,64,70, 3,55,23, 2,64,74, 2,64,71,
- 2,64,73, 2,64,72, 2,64,69, 2,64,75, 2,64,78, 2,64,76, 2,64,77, 1,86,12,
- /* plane 0, page 154 */
- 0, 255, /* first, last */
- 3,55,19, 1,86,11, 2,64,68, 2,64,79, 2,68,61, 2,68,64, 2,68,66, 2,68,65,
- 3,57,74, 2,68,59, 2,68,63, 2,68,58, 3,57,75, 2,68,60, 1,87,87, 2,68,57,
- 3,57,77, 2,68,62, 0, 0, 0, 0, 0, 0, 2,72,13, 2,72, 2, 1,89,49, 3,59,79,
- 3,59,77, 1,89,50, 2,72, 1, 2,72, 6, 2,72,12, 2,72, 4, 2,72,11, 3,59,76,
- 2,72, 8, 3,59,78, 2,72, 7, 2,72,10, 2,72, 5, 2,72, 3, 3,59,75, 2,72, 9,
- 0, 0, 0, 2,74,78, 2,74,76, 1,90,53, 2,74,75, 2,74,81, 2,74,79, 3,61,58,
- 1,90,54, 2,74,74, 2,74,72, 4,69,38, 2,74,73, 1,90,56, 2,74,77, 1,90,55,
- 2,74,80, 2,76,70, 2,76,76, 3,63, 4, 3,63, 2, 2,76,71, 1,91,39, 2,76,77,
- 1,91,38, 2,76,75, 2,76,74, 1,91,37, 2,76,73, 1,91,36, 2,76,72, 7,54,49,
- 2,78,44, 2,78,46, 2,78,45, 4,73,74, 2,78,42, 1,92, 7, 2,78,39, 2,78,43,
- 2,78,48, 3,63,89, 2,78,47, 2,78,40, 2,78,41, 1,92, 6, 2,79,64, 1,92,51,
- 3,64,66, 2,79,65, 1,92,49, 1,92,50, 3,64,65, 4,76,29, 2,80,65, 1,92,85,
- 2,81,69, 3,65,82, 1,93,23, 3,65,83, 2,82, 3, 1,93,24, 2,82, 4, 2,82, 5,
- 2,82,19, 2,82,18, 1,93,39, 2,82,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1,56,76, 3,32,15, 4,34, 1, 2,40,79, 4,33,93, 2,40,78, 4,33,94, 1,75,83,
- 1,75,84, 2,47,34, 4,46,84, 2,53,91, 2,59,88, 3,47,87, 3,47,86, 1,79,94,
- 1,83,16, 2,59,86, 4,53,17, 2,59,89, 1,83,17, 3,55,26, 2,64,80, 2,59,87,
- 2,68,67, 1,87,88, 2,72,14, 4,66,41, 3,61,65, 0, 0, 0, 2,74,84, 2,74,82,
- 3,61,64, 3,61,62, 2,74,83, 0, 0, 0, 0, 0, 0, 2,76,78, 3,63, 5, 1,91,40,
- 2,78,49, 1,92,54, 1,92, 8, 1,92,52, 1,92,53, 2,80,66, 1,93,15, 3,65,84,
- 1,56,77, 4,22,13, 3,42,78, 4,46,89, 2,68,68, 3,63,91, 3,64,67, 2,19,44,
- 3,32,18, 1,71,76, 3,37,65, 2,47,35, 3,42,79, 3,42,83, 1,75,85, 2,47,36,
- 3,42,81, 3,42,80, 3,42,82, 2,53,93, 2,53,92, 1,83,19, 1,80, 1, 1,80, 2,
- 4,47, 1, 2,54, 2, 2,54, 1, 2,53,94, 3,47,89, 3,51,85, 2,59,90, 2,59,93,
- 3,51,84, 2,59,92, 2,59,91, 1,83,18, 2,64,84, 2,64,82, 2,64,81, 4,58,23,
- /* plane 0, page 155 */
- 0, 255, /* first, last */
- 3,55,27, 2,64,83, 3,55,28, 1,87,89, 2,68,70, 2,68,71, 1,87,90, 3,57,79,
- 2,68,69, 3,59,81, 2,72,16, 2,72,15, 2,72,18, 1,89,51, 2,72,17, 4,66,47,
- 2,74,85, 2,74,87, 2,74,86, 0, 0, 0, 3,63, 7, 2,76,79, 2,76,82, 2,76,80,
- 2,76,81, 2,78,50, 1,92, 9, 4,73,84, 4,73,81, 3,70,82, 2,79,66, 2,79,67,
- 2,79,68, 3,65,12, 1,92,86, 1,93,16, 2,82, 6, 1,56,78, 3,42,85, 1,80, 3,
- 1,83,20, 2,68,72, 3,61,66, 2,78,51, 3,65,14, 4,77,23, 2,81,70, 2,19,45,
- 3,66, 8, 1,93,40, 1,56,79, 2,59,94, 3,55,30, 2,68,73, 0, 0, 0, 2,72,19,
- 3,61,67, 4,72,22, 2,76,83, 2,78,52, 1,56,80, 3,37,66, 2,47,37, 2,47,38,
- 3,42,88, 1,75,86, 1,75,87, 2,54, 4, 1,80, 5, 1,80, 4, 2,54, 3, 0, 0, 0,
- 2,64,85, 3,55,31, 2,68,74, 2,68,76, 2,68,75, 1,87,93, 1,87,92, 1,87,91,
- 3,61,68, 1,91,42, 2,76,84, 3,63, 8, 1,91,41, 2,78,54, 2,78,53, 3,65,15,
- 1,92,87, 2,80,67, 1,62, 3, 2,40,80, 4,34, 9, 3,37,67, 0, 0, 0, 2,47,41,
- 2,47,39, 2,47,40, 4,40,75, 3,47,94, 2,54,13, 4,47,16, 2,54, 8, 2,54, 5,
- 2,54,12, 3,47,92, 4,47,21, 3,47,91, 2,54,14, 4,47,23, 4,47,12, 1,80, 7,
- 2,54,11, 2,54, 7, 3,47,93, 4,47,10, 2,54, 6, 2,54,10, 2,54, 9, 1,80, 6,
- 0, 0, 0,15,51,30, 2,60,11, 2,60, 6, 2,60, 4, 2,60,13, 2,60, 5, 4,53,39,
- 2,60, 1, 4,53,35, 2,60, 7, 3,51,88, 3,51,90, 2,60, 2, 2,64,94, 2,60, 3,
- 2,60,14, 3,52, 3, 4,53,37, 3,51,92, 3,52, 1, 5,58,42, 3,52, 5, 3,51,93,
- 2,60,10, 1,83,21, 2,60, 9, 2,60, 8, 3,51,89, 2,60,12,15,57,24, 0, 0, 0,
- 3,70,83, 3,55,36, 2,64,86, 2,64,89, 4,58,41, 3,55,37, 2,64,88, 3,55,32,
- 2,65, 2, 2,64,91, 2,65, 1, 3,55,34, 2,64,93, 2,64,92, 2,64,90, 4,58,33,
- 2,64,87, 4,58,31, 1,86,15, 1,86,14, 4,58,36, 1,86,16, 1,86,13, 2,65, 3,
- 4,58,37,15,61,86, 0, 0, 0, 4,58,35, 0, 0, 0, 2,68,82, 2,68,85, 4,63, 6,
- 2,68,83, 2,68,87, 5,70,89, 3,57,84, 4,63, 2, 2,68,88, 4,63,10, 2,68,80,
- 1,88, 4, 2,68,81, 3,57,83, 2,68,79, 2,68,86, 3,59,84, 2,68,78, 2,68,77,
- 1,88, 3, 1,88, 1, 1,87,94, 3,57,86, 3,57,85, 3,55,35, 0, 0, 0,15,65,82,
- 0, 0, 0, 0, 0, 0, 3,57,81, 2,68,84, 2,72,28, 2,72,34, 1,89,54, 2,72,29,
- 5,75,19, 2,72,32, 2,72,36, 1,89,55, 2,72,31, 4,66,60, 2,72,23, 3,59,85,
- 2,72,22, 2,72,35, 2,72,26, 3,59,87, 2,72,24, 2,72,33, 2,72,25, 1,89,53,
- 1,89,52, 3,59,89, 2,72,20, 2,72,21, 2,72,30, 4,66,70, 3,59,90, 4,66,72,
- 2,72,27, 0, 0, 0, 0, 0, 0,15,68,75, 4,66,53, 0, 0, 0, 3,61,79, 2,74,90,
- 2,74,93, 3,61,81, 4,66,54, 3,61,71, 3,61,73, 1,88, 2, 3,61,74, 3,61,84,
- /* plane 0, page 156 */
- 0, 255, /* first, last */
- 3,61,85, 4,69,58, 3,61,78, 4,69,57, 3,61,72, 2,74,91, 2,75, 3, 2,75, 1,
- 2,74,89, 2,75, 6, 3,61,70, 2,74,88, 3,61,86, 1,90,58, 2,75, 2, 4,69,52,
- 3,61,83, 4,69,55, 2,74,92, 1,90,57, 2,75, 5, 3,61,82, 4,69,61, 2,75, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,61,80, 2,76,87, 2,76,86, 5,82,49, 3,63,12,
- 5,82,43, 2,76,93, 5,82,46, 2,76,89, 2,76,92, 1,91,44, 4,72,27, 4,72,30,
- 2,76,90, 2,76,91, 4,72,25, 2,76,85, 2,76,88, 1,91,43, 3,63,10,15,73,10,
- 0, 0, 0, 1,92,11, 2,78,65, 2,78,60, 2,78,64, 3,64, 5, 2,78,67, 2,78,63,
- 3,63,94, 2,78,59, 3,64, 3, 1,92,13, 2,78,62, 2,78,66, 1,92,12, 2,78,57,
- 2,74,94, 2,78,61, 4,74, 3, 5,85,13, 2,78,58, 3,64, 2, 2,78,55,15,74,30,
- 2,78,56, 1,92,10, 2,79,72, 2,79,74, 2,79,77, 2,79,73, 2,79,78, 3,64,69,
- 2,79,71, 3,64,70, 2,79,69, 3,64,72, 1,92,55, 2,79,75, 1,92,57, 1,92,56,
- 2,79,70, 2,79,76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,65,18, 2,80,72, 1,92,88,
- 2,80,73, 3,65,19, 2,80,71, 2,80,68, 4,76,42, 3,65,20, 2,80,70, 2,80,69,
- 2,81,41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,65,57, 2,81,43, 2,81,42, 3,65,59,
- 0, 0, 0, 2,81,73, 5,90,51, 2,81,72, 2,81,71, 2,81,74, 3,65,85, 1,93,32,
- 1,93,33, 2,82,24, 2,82,28, 3,66,33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,62, 4, 2,33,52, 2,40,83,
- 3,37,68, 1,71,77, 2,40,81, 3,37,70, 3,15,34, 2,40,82, 3,37,72, 3,37,71,
- 0, 0, 0, 2,47,42, 2,47,43, 1,75,90, 1,75,88, 2,47,44, 1,75,89, 2,54,19,
- 3,48, 7, 2,54,22, 2,54,16, 2,54,23, 2,54,15, 2,54,17, 3,48,10, 2,54,18,
- /* plane 0, page 157 */
- 0, 255, /* first, last */
- 2,54,21, 3,48, 4, 3,48,11, 1,80,10, 2,54,26, 2,54,25, 1,80, 8, 2,54,20,
- 2,54,24, 1,80, 9, 3,52,13, 4,47,34, 3,48, 5, 3,48, 2, 0, 0, 0, 3,52,10,
- 2,60,24, 4,53,50, 1,83,26, 3,52,12, 2,60,19, 1,83,22, 3,52,22, 2,60,16,
- 2,60,22, 2,60,25, 3,52,19, 1,83,27, 4,58,46, 2,60,21, 2,60,18, 2,60,26,
- 2,60,17, 3,52,23, 2,60,23, 1,83,23, 3,52, 9, 2,60,15, 1,83,24, 3,52,21,
- 1,83,25, 2,60,20, 3,52,18, 0, 0, 0, 0, 0, 0, 2,65,21, 2,65, 8, 2,65, 9,
- 2,65,12, 2,65,10, 4,58,53, 2,65, 4, 4,58,54, 3,55,45, 2,65, 7, 2,65,17,
- 2,65,11, 3,55,40, 4,58,47, 1,86,17, 4,58,45, 2,65,19, 2,65,16, 1,86,18,
- 2,65,18, 2,65, 5, 2,65,14, 2,65,15, 3,55,42, 2,65,13, 0, 0, 0,15,62, 4,
- 0, 0, 0, 3,70,85, 2,68,92, 2,68,94, 2,69, 3, 3,57,89, 3,57,91, 2,68,91,
- 3,57,93, 1,88, 5, 2,69, 5, 2,68,90, 2,69, 6, 3,57,94, 2,69, 2, 2,69, 4,
- 2,69, 8, 2,69, 1, 2,69, 9, 2,68,93, 2,68,89, 1,88, 6, 3,58, 2, 2,69, 7,
- 1,88, 7, 1,89,57, 4,63,20, 3,57,90,15,65,87, 0, 0, 0, 3,59,93, 2,65, 6,
- 2,72,62, 2,72,53, 1,89,59, 2,72,49, 1,89,60, 3,60, 7, 3,60, 2, 2,72,58,
- 2,72,52, 2,72,42, 1,89,58, 2,72,55, 2,72,50, 2,72,51, 3,60, 5, 2,72,37,
- 2,72,44, 2,72,59, 3,59,94, 2,72,56, 5,75,31, 2,72,48, 3,60, 6, 2,72,60,
- 2,72,43, 2,72,38, 2,72,57, 3,60, 4, 2,72,40, 2,72,54, 2,72,45, 2,72,61,
- 2,72,41, 1,89,56, 2,72,39, 2,72,46, 2,72,47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2,75,13, 3,60, 3, 2,75,11, 4,69,73, 2,75,16, 3,61,89, 2,75,28, 2,75,19,
- 2,75,12, 2,75, 8, 2,75,21, 2,75,14, 2,75,17, 2,75,10, 2,75,24, 2,75, 7,
- 2,75,15, 2,75,20, 2,75,22, 2,75,25, 2,75, 9, 3,61,90, 2,75,29, 2,75,30,
- 2,75,23, 2,75,27, 2,75,18, 0, 0, 0, 2,77,15, 2,77,18, 3,63,21, 1,91,45,
- 3,63,17, 2,77,17, 2,77,22, 2,77,20, 1,91,46, 2,77,11, 2,77, 1, 2,76,94,
- 1,91,48, 2,77,13, 2,77,14, 2,77,10, 2,77, 2, 3,63,18, 2,77, 7, 2,75,26,
- 4,72,35, 2,77, 3, 1,91,47, 2,77, 9, 3,63,22, 2,77, 8, 0, 0, 0, 2,77, 4,
- 2,77,16, 4,72,36, 2,77, 5, 2,78,72, 2,77,19, 2,77,21, 2,77,12, 2,77, 6,
- 2,78,73, 2,78,75, 2,78,69, 1,92,14, 4,74, 5, 2,78,82, 2,78,80, 1,92,15,
- 2,78,79, 2,78,78, 2,78,71, 2,78,68, 2,78,74, 2,78,83, 2,78,70, 2,78,76,
- 5,85,37, 2,79,87, 2,79,92, 2,79,82, 2,79,85, 1,92,58, 2,79,89, 4,75,38,
- 2,80, 2, 2,78,77, 4,75,42, 2,79,83, 2,79,93, 2,80, 3, 2,79,88, 2,79,81,
- 2,79,91, 4,75,43, 2,79,90, 2,80, 1, 2,79,94, 2,78,81, 2,79,86, 2,79,80,
- 2,79,84, 1,92,89, 1,92,90, 2,79,79, 3,64,76, 2,80,84, 2,80,75, 2,80,83,
- /* plane 0, page 158 */
- 0, 255, /* first, last */
- 2,80,80, 2,80,81, 2,80,74, 2,80,77, 2,80,85, 2,80,79, 2,80,78, 2,80,76,
- 3,65,21, 2,80,82, 4,76,54, 2,81,44, 4,77,26, 2,81,45, 3,65,61, 2,81,47,
- 2,81,46, 2,81,49, 2,81,48, 2,81,76, 2,81,75, 2,82, 7, 3,66, 9, 2,82, 8,
- 3,66,16, 2,82,20, 1,93,37, 1,93,41, 3,66,24, 2,82,29, 1,93,42, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,62, 5, 4,47,40, 5,58,59,
- 0, 0, 0, 1,90,59, 2,77,23, 3,63,23, 1,92,91, 1,92,92, 0, 0, 0, 1,62, 6,
- 2,40,84, 3,37,73, 1,71,78, 2,54,27, 3,48,12, 3,52,25, 2,60,28, 2,60,29,
- 2,60,27, 2,65,23, 2,65,22, 1,86,19, 2,69,11, 2,65,24, 2,69,10, 4,63,26,
- 3,58, 4, 2,72,64, 1,89,61, 1,89,63, 2,72,63, 3,60, 9, 4,66,85, 1,89,62,
- 3,62, 1, 2,75,31, 2,75,33, 2,75,32, 2,77,24, 1,91,49, 3,63,26, 1,92,59,
- 2,80,86, 2,81,50, 3,66,17, 3,66,31, 2,82,33, 1,62, 7, 3, 5,39, 2,47,45,
- 4,47,44, 1,80,11, 3,48,15, 3,48,14, 3,52,26, 2,60,31, 2,60,30, 3,55,48,
- 2,65,25, 3,58, 6, 3,58, 5, 4,66,94, 1,89,64, 1,90,60, 2,78,84, 2,82,25,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,62, 8, 1,75,91, 3,43, 2, 1,80,12,15,65,92,
- 2,72,65, 3,62, 2, 2,80, 4, 1,67, 7, 3,25,74, 3,52,28, 3,52,27, 4,58,61,
- 2,65,26, 0, 0, 0, 3,58, 8, 4,63,30, 1,93,17, 1,67, 8, 1,80,13, 1,86,20,
- 2,80, 5, 1,67, 9, 3,25,75, 2,54,28, 1,83,29, 2,60,32, 2,60,33, 3,52,29,
- 1,83,28, 4,53,64, 2,65,27, 1,86,24, 1,86,22, 1,86,23, 1,86,21, 2,69,12,
- 1,88, 8, 0, 0, 0, 4,67, 4, 3,60,10, 2,75,35, 2,75,34, 2,75,37, 2,75,36,
- 1,90,61, 0, 0, 0, 0, 0, 0, 2,77,25, 4,72,54, 2,77,27, 2,77,26, 1,91,50,
- 2,78,85, 3,64, 9, 2,80, 6, 2,80, 7, 1,92,60, 2,81,51, 2,81,77, 1,93,34,
- 4,78,35, 2,33,53, 2,60,34, 2,65,28, 2,72,66, 2,40,85, 3, 7,82, 2,65,29,
- /* plane 0, page 159 */
- 0, 165, /* first, last */
- 2,69,14, 2,69,13, 3,58, 9, 3,60,13, 3,60,14, 3,63,28, 2,80, 8, 1,92,93,
- 3,65,63, 2,81,52, 2,81,78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,71,79, 2,54,29,
- 2,54,30, 4,47,54, 2,60,35, 1,71,80, 3,37,74, 1,88, 9, 2,69,15, 3,60,16,
- 2,77,29, 1,91,51, 2,77,30, 2,77,28, 2,80, 9, 3,65,64, 2,80,87, 4,77,40,
- 1,71,81, 0, 0, 0, 2,65,32, 2,65,31, 2,65,30, 2,69,16, 3,58,11, 3,58,10,
- 2,69,20, 2,69,19, 2,69,18, 2,69,17, 1,88,10, 2,72,67, 2,75,39, 1,90,62,
- 2,75,38, 2,77,31, 2,78,88, 2,78,87, 1,92,16, 2,78,86, 2,80,12, 2,80,11,
- 2,80,10, 3,64,77, 4,78,36, 1,75,92, 4,53,67, 2,60,36, 1,86,25, 4,58,68,
- 2,72,68, 2,72,69, 2,78,89, 2,80,13, 4,75,60, 3,65,27, 2,80,88, 2,81,53,
- 2,82, 9, 2,82,35, 1,75,93, 1,86,26, 2,69,21, 2,72,70, 2,77,32, 2,80,14,
- 3, 3,80, 0, 0, 0, 1,80,15, 3,52,30, 2,65,33, 2,69,22, 2,72,71, 2,72,72,
- 2,72,73, 2,75,44, 3,62, 4, 2,75,40, 1,91,52, 2,75,43, 2,75,42, 1,90,63,
- 2,75,41, 1,90,65, 0, 0, 0, 1,90,64, 2,77,34, 2,77,33, 1,91,53, 1,91,54,
- 4,72,64, 3,63,30, 1,92,18, 2,78,90, 1,92,17, 4,75,65, 2,80,17, 2,80,18,
- 2,80,16, 2,80,15, 1,93, 1, 4,76,68, 2,80,89, 2,80,90, 2,80,91, 1,92,94,
- 2,81,54, 2,81,57, 2,81,56, 2,81,55, 3,66,19, 4,78,37, 2,82,34, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,83,30, 3,55,53, 4,67,13,
- 1,88,18, 2,75,45, 2,77,35, 3,64,11, 1,92,19, 2,78,91, 4,78,53, 3,66,34,
- 2,82,36,15, 1,57, 0, 0, 0, 0, 0, 0, 1,83,31, 3,62,39, 4,78,19, 0, 0, 0,
- 2,65,34, 3,63,31, 2,78,92, 3,65,65, 2,81,79, 3,65,87,
- /* plane 0, page 160: --- */
- /* plane 0, page 161: --- */
- /* plane 0, page 162: --- */
- /* plane 0, page 163: --- */
- /* plane 0, page 164: --- */
- /* plane 0, page 165: --- */
- /* plane 0, page 166: --- */
- /* plane 0, page 167: --- */
- /* plane 0, page 168: --- */
- /* plane 0, page 169: --- */
- /* plane 0, page 170: --- */
- /* plane 0, page 171: --- */
- /* plane 0, page 172: --- */
- /* plane 0, page 173: --- */
- /* plane 0, page 174: --- */
- /* plane 0, page 175: --- */
- /* plane 0, page 176: --- */
- /* plane 0, page 177: --- */
- /* plane 0, page 178: --- */
- /* plane 0, page 179: --- */
- /* plane 0, page 180: --- */
- /* plane 0, page 181: --- */
- /* plane 0, page 182: --- */
- /* plane 0, page 183: --- */
- /* plane 0, page 184: --- */
- /* plane 0, page 185: --- */
- /* plane 0, page 186: --- */
- /* plane 0, page 187: --- */
- /* plane 0, page 188: --- */
- /* plane 0, page 189: --- */
- /* plane 0, page 190: --- */
- /* plane 0, page 191: --- */
- /* plane 0, page 192: --- */
- /* plane 0, page 193: --- */
- /* plane 0, page 194: --- */
- /* plane 0, page 195: --- */
- /* plane 0, page 196: --- */
- /* plane 0, page 197: --- */
- /* plane 0, page 198: --- */
- /* plane 0, page 199: --- */
- /* plane 0, page 200: --- */
- /* plane 0, page 201: --- */
- /* plane 0, page 202: --- */
- /* plane 0, page 203: --- */
- /* plane 0, page 204: --- */
- /* plane 0, page 205: --- */
- /* plane 0, page 206: --- */
- /* plane 0, page 207: --- */
- /* plane 0, page 208: --- */
- /* plane 0, page 209: --- */
- /* plane 0, page 210: --- */
- /* plane 0, page 211: --- */
- /* plane 0, page 212: --- */
- /* plane 0, page 213: --- */
- /* plane 0, page 214: --- */
- /* plane 0, page 215: --- */
- /* plane 0, page 216: --- */
- /* plane 0, page 217: --- */
- /* plane 0, page 218: --- */
- /* plane 0, page 219: --- */
- /* plane 0, page 220: --- */
- /* plane 0, page 221: --- */
- /* plane 0, page 222: --- */
- /* plane 0, page 223: --- */
- /* plane 0, page 224: --- */
- /* plane 0, page 225: --- */
- /* plane 0, page 226: --- */
- /* plane 0, page 227: --- */
- /* plane 0, page 228: --- */
- /* plane 0, page 229: --- */
- /* plane 0, page 230: --- */
- /* plane 0, page 231: --- */
- /* plane 0, page 232: --- */
- /* plane 0, page 233: --- */
- /* plane 0, page 234: --- */
- /* plane 0, page 235: --- */
- /* plane 0, page 236: --- */
- /* plane 0, page 237: --- */
- /* plane 0, page 238: --- */
- /* plane 0, page 239: --- */
- /* plane 0, page 240: --- */
- /* plane 0, page 241: --- */
- /* plane 0, page 242: --- */
- /* plane 0, page 243: --- */
- /* plane 0, page 244: --- */
- /* plane 0, page 245: --- */
- /* plane 0, page 246: --- */
- /* plane 0, page 247: --- */
- /* plane 0, page 248: --- */
- /* plane 0, page 249: --- */
- /* plane 0, page 250 */
- 40, 40, /* first, last */
- 15,56,44,
- /* plane 0, page 251: --- */
- /* plane 0, page 252: --- */
- /* plane 0, page 253: --- */
- /* plane 0, page 254 */
- 48, 107, /* first, last */
- 1, 1,11, 1, 1,22, 1, 1,24, 0, 0, 0, 0, 0, 0, 1, 1,32, 1, 1,33, 1, 1,36,
- 1, 1,37, 1, 1,40, 1, 1,41, 1, 1,44, 1, 1,45, 1, 1,48, 1, 1,49, 1, 1,52,
- 1, 1,53, 1, 1,56, 1, 1,57, 1, 1,60, 1, 1,61, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 2, 7, 1, 2, 8, 1, 2,11, 1, 2,12, 1, 2, 9, 1, 2,10, 0, 0, 0,
- 1, 1,14, 1, 1,15, 1, 1,16, 0, 0, 0, 1, 1,18, 1, 1,19, 1, 1,20, 1, 1,21,
- 0, 0, 0, 1, 1,62, 1, 1,63, 1, 1,64, 1, 1,65, 1, 1,66, 1, 1,67, 1, 2,13,
- 1, 2,14, 1, 2,15, 1, 2,31, 1, 2,32, 1, 2,33, 1, 2,35, 1, 2,34, 0, 0, 0,
- 1, 2,66, 1, 2,76, 1, 2,77, 1, 2,78,
- /* plane 0, page 255 */
- 1, 229, /* first, last */
- 1, 1,10, 0, 0, 0, 1, 1,76, 1, 2,67, 1, 2,72, 1, 1,77, 0, 0, 0,
- 1, 1,30, 1, 1,31, 1, 1,78, 1, 2,16, 1, 1, 2, 1, 2,17, 1, 1, 5, 1, 2,63,
- 1, 4, 1, 1, 4, 2, 1, 4, 3, 1, 4, 4, 1, 4, 5, 1, 4, 6, 1, 4, 7, 1, 4, 8,
- 1, 4, 9, 1, 4,10, 1, 1, 8, 1, 1, 7, 1, 2,22, 1, 2,24, 1, 2,23, 1, 1, 9,
- 1, 2,73, 1, 4,33, 1, 4,34, 1, 4,35, 1, 4,36, 1, 4,37, 1, 4,38, 1, 4,39,
- 1, 4,40, 1, 4,41, 1, 4,42, 1, 4,43, 1, 4,44, 1, 4,45, 1, 4,46, 1, 4,47,
- 1, 4,48, 1, 4,49, 1, 4,50, 1, 4,51, 1, 4,52, 1, 4,53, 1, 4,54, 1, 4,55,
- 1, 4,56, 1, 4,57, 1, 4,58, 0, 0, 0, 1, 2,64, 0, 0, 0, 0, 0, 0, 1, 2, 5,
- 0, 0, 0, 1, 4,59, 1, 4,60, 1, 4,61, 1, 4,62, 1, 4,63, 1, 4,64, 1, 4,65,
- 1, 4,66, 1, 4,67, 1, 4,68, 1, 4,69, 1, 4,70, 1, 4,71, 1, 4,72, 1, 4,73,
- 1, 4,74, 1, 4,75, 1, 4,76, 1, 4,77, 1, 4,78, 1, 4,79, 1, 4,80, 1, 4,81,
- 1, 4,82, 1, 4,83, 1, 4,84, 1, 1,34, 1, 2,62, 1, 1,35, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2,70, 1, 2,71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,68,
- /* plane 1: --- */
- /* plane 2, page 0 */
- 0, 254, /* first, last */
- 5, 1, 5, 0, 0, 0,15, 1, 1, 6, 1,15, 6, 1,13, 6, 1,14, 0, 0, 0, 6, 1,34,
- 6, 1,35, 5, 1,19, 0, 0, 0, 3, 1,36, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 1,30,
- 15, 1,31, 0, 0, 0, 6, 2,11, 0, 0, 0, 5, 1,45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6, 3,32, 6, 3,30, 6, 3,31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6, 4,71, 6, 5,63, 5, 3,15,15, 2,84, 0, 0, 0, 6, 5,71, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6, 5,67, 0, 0, 0, 0, 0, 0, 6, 9,23, 6, 9,26, 6, 9,24, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 9, 2,15, 9, 3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,14,70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,16,82, 0, 0, 0, 5,19, 3, 0, 0, 0, 0, 0, 0,15,25,18,15,25,19,
- 6,39,13, 0, 0, 0, 0, 0, 0,15,27,83,15,32,21,15,32,85, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,39,34,15,45,54, 0, 0, 0, 7, 1, 1,15,57,39, 4,47,92,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,58,31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6, 1,12, 6, 1, 2, 0, 0, 0, 6, 2,63, 4, 1,54, 6, 3,33, 6, 5,64,
- 0, 0, 0, 6, 9,27, 0, 0, 0, 5, 5, 1, 0, 0, 0, 5, 7,90, 6,14,42,15, 9,48,
- 6,21, 5, 6,21, 6, 6,37,93, 0, 0, 0, 6,38,31, 0, 0, 0,15,38,32, 5,36,94,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 1,18, 5, 1,13, 6, 2,13,
- 0, 0, 0, 0, 0, 0, 6, 3,34,15,13,65, 6,48,48,15,51,36, 4, 1, 1, 5, 1, 6,
- 6, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 1, 2, 6, 1,19, 0, 0, 0, 6, 1,36,
- 0, 0, 0, 0, 0, 0,15, 1, 5,15, 1, 6, 5, 1,46, 6, 2,16, 0, 0, 0,15, 1,37,
- 6, 2,46, 6, 2,15,15, 1,32,15, 1,33, 6, 1,37, 0, 0, 0, 6, 2,17, 0, 0, 0,
- 6, 2,14, 0, 0, 0, 4, 2, 6, 4, 2, 5, 5, 2, 4, 5, 2, 5, 0, 0, 0, 0, 0, 0,
- 6, 3,35, 6, 9,30, 0, 0, 0, 0, 0, 0, 6, 4,61, 0, 0, 0, 6, 5,54, 6, 5,65,
- 6, 5,66, 6,12,35, 6, 9,28, 6,26,69,15, 9, 5, 6,13,13, 6, 9,29, 6,14,43,
- 0, 0, 0, 5,11,71, 6,21,10, 0, 0, 0, 6,21, 7, 6,25,68, 6,21, 9, 6,28,91,
- 0, 0, 0, 0, 0, 0, 6,37,94, 6,38,32, 6,38,33, 0, 0, 0, 5,29,54, 0, 0, 0,
- 0, 0, 0, 5, 1, 3, 0, 0, 0, 5, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 1, 6,
- 6, 1, 5, 5, 1, 1, 5, 1,11, 0, 0, 0,15, 1, 3, 6, 1,38, 5, 1,20, 0, 0, 0,
- 15, 1, 7,15, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2,19, 6, 2,18,
- 6, 2,10, 5, 1,47, 0, 0, 0, 0, 0, 0, 6, 3,38, 6, 3,36,15, 1,78, 6, 3,37,
- 0, 0, 0, 0, 0, 0,15, 2,85, 0, 0, 0, 0, 0, 0, 6, 9,31, 0, 0, 0, 0, 0, 0,
- 6,13,12, 4, 6, 4, 6,14,45, 6,14,46,15, 5,32, 0, 0, 0, 6,14,44, 0, 0, 0,
- 6,21,11, 0, 0, 0, 0, 0, 0,15,13,64, 6,28,94, 5,16,83, 6,28,93,
- /* plane 2, page 1 */
- 2, 255, /* first, last */
- 15,25,20, 0, 0, 0, 6,48,49, 5,36,53,15,38,33, 6,58,67,
- 6,58,66, 7,22,83, 7,38, 7, 7,45,26, 5, 1, 4, 5, 1, 7, 4, 1, 8, 5, 1, 8,
- 0, 0, 0, 5, 1,12, 6, 1,39, 6, 1,40, 6, 1,41, 6, 3,39, 5, 3,16, 6, 5,68,
- 0, 0, 0, 6, 9,32, 5,16,84, 6,38,34, 0, 0, 0, 7,12,28, 6, 1, 7, 6, 1, 8,
- 6, 1, 9, 6, 1,42, 6, 5,69, 6, 3,40, 6, 3,41, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6, 5,72, 0, 0, 0,15, 2,86, 0, 0, 0, 4, 5,19, 5, 5, 2, 4, 5,18, 0, 0, 0,
- 6,14,48, 5, 7,91,15, 9, 7, 0, 0, 0, 6,16,92, 6,21,13, 0, 0, 0, 6,21,12,
- 15,13,66, 6,29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,45,78, 0, 0, 0, 0, 0, 0, 6, 3,42,15, 1,79,15, 1,80, 0, 0, 0,15, 2,11,
- 5, 3,17,15, 2,87,15, 2,88,15, 2,89, 5, 5, 3, 0, 0, 0, 0, 0, 0, 6, 9,33,
- 0, 0, 0,15, 5,35, 0, 0, 0, 6,14,50, 6,14,49,15, 9, 8, 6,21,15, 5,12,70,
- 4,11,63, 6,21,16, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,13,67, 6,21,17, 6,38,35,
- 6,29, 3, 6,29, 2, 4,16,36, 5,16,85,15,18,84,15,18,85, 0, 0, 0,15,18,82,
- 0, 0, 0, 6,38,37, 6,38,36, 6,38,38, 4,22,15,15,25,21,15,25,22,15,25,23,
- 6,44,13, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,32,22,15,32,23,15,32,24, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,38,34, 0, 0, 0,
- 6,48,50, 5,43,81, 7, 1, 2,15,45,55,15,45,56,15,45,57, 7, 6,89, 7, 1, 4,
- 0, 0, 0, 7, 1, 3, 7, 1,38, 0, 0, 0, 7,12,31, 0, 0, 0, 5,51,51, 7,12,30,
- 0, 0, 0, 0, 0, 0, 7,12,29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,38, 3, 7,38, 8, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 1,20, 6, 1,21,15, 1, 4, 6, 1,44,15, 1, 9,
- 6, 1,43, 3, 1,79, 0, 0, 0, 0, 0, 0,15, 1,35, 6, 2,21, 0, 0, 0, 6, 2,20,
- 6, 2,22, 0, 0, 0, 4, 1,56, 0, 0, 0, 4, 2,12, 4, 2,11, 4, 2, 9, 6, 3,47,
- 4, 2,16, 6, 3,48, 5, 2, 7, 6, 3,45, 6, 3,44, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4, 2,15, 6, 3,43,15, 1,83,15, 1,84,15, 1,85,15, 1,86,
- 15, 1,87,15, 1,88,15, 1,89, 5, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 3,49,
- 5, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 1,90, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 3,18, 6, 5,74, 4, 3,26, 6, 5,75, 6, 5,84, 6, 5,80, 6, 5,76,15, 2,90,
- 15, 2,91,15, 2,92,15, 2,93,15, 3, 1,15, 3, 2,15, 3, 3,15, 3, 5,15, 3, 8,
- 15, 3, 9,15, 3,10,15, 3,11,15, 3,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 3,24, 6, 5,77, 0, 0, 0, 6, 5,79, 0, 0, 0, 0, 0, 0,15, 3, 6,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 5,78, 6, 5,73,
- /* plane 2, page 2 */
- 0, 255, /* first, last */
- 5, 3,19, 6, 5,83, 0, 0, 0, 6, 9,35, 6, 9,37, 4, 5,26, 5, 5, 8, 6, 9,38,
- 5, 5, 9, 3, 7,46, 5, 5,10, 4, 5,23, 4, 5,21, 6, 9,42, 6, 9,36, 6, 9,44,
- 6, 9,39, 6, 9,46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 6, 6, 9,34,15, 5,37,
- 15, 5,38,15, 5,40,15, 5,41,15, 5,43,15, 5,44,15, 5,45,15, 5,46,15, 5,47,
- 15, 5,48,15, 5,49, 6, 9,45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 9,40,
- 6, 9,41, 6, 9,43, 5, 5, 4, 0, 0, 0, 5, 5, 7, 5, 7,92, 6,14,68, 6,14,57,
- 5,11,82, 4, 8,22, 6,14,67, 6,14,55, 6,14,54, 5, 8, 3, 4, 8,27, 6,14,61,
- 5, 7,94, 5, 7,93, 5, 8, 2, 6,14,66, 6,14,53, 6,14,52, 6,14,69, 6,14,60,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 9, 9,15, 9,10,15, 9,11,15, 9,12,
- 15, 9,14,15, 9,15,15, 9,17,15, 9,18,15, 9,19,15, 9,20,15, 9,21,15, 9,22,
- 15, 9,23,15, 9,24, 6,14,51, 0, 0, 0, 6,14,56, 6,14,59, 6,14,62, 0, 0, 0,
- 6,14,64, 0, 0, 0, 0, 0, 0,15, 5,39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,14,63, 5, 8, 4, 4,11,67, 5,11,80, 4,11,71, 6,21,22, 5,11,75,
- 6,21,21, 5,11,84, 4,11,70, 4,11,72, 5,11,79, 6,21,18, 5,11,73, 0, 0, 0,
- 0, 0, 0,15,13,68,15,13,78, 6,21,23, 0, 0, 0, 0, 0, 0, 5,11,78,15,13,70,
- 15,13,71,15,13,74,15,13,75,15,13,76,15,13,77,15,13,79,15,13,81,15,13,82,
- 15,13,83,15,13,84,15,13,85,15,13,86,15,13,88,15,13,89,15,13,90,15,13,91,
- 15,13,92, 0, 0, 0, 6,21, 1, 6,21,26, 6,21,27, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,21,19, 6,21,20, 0, 0, 0, 5,11,72, 0, 0, 0, 6,21,25, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,13,87, 0, 0, 0,
- 15,13,80, 0, 0, 0, 5,11,74, 5,11,77, 5,11,85, 5,11,81, 5,11,83, 4,11,64,
- 6,29,11, 6,29,13, 6,29,12, 4,16,41, 4,16,40, 6,29,16, 6,29, 8, 0, 0, 0,
- 5,17, 1, 6,29,19, 5,16,87, 6,29,14, 6,29, 7, 5,17, 2, 5,16,86, 4,16,38,
- 6,29,10, 6,29,17, 6,29,23, 6,29,18, 0, 0, 0, 0, 0, 0, 6,29, 9, 0, 0, 0,
- 0, 0, 0, 4,16,43, 6,29,20,15,13,73,15,18,87,15,18,88,15,18,89,15,18,90,
- 15,18,91,15,18,92,15,18,94,15,19, 1,15,19, 3,15,19, 4,15,19, 5,15,19, 6,
- 15,19, 7, 6,38,23, 6,29,24, 6,30,69, 6,29,25, 6,29,15, 5,16,90, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,35,67, 0, 0, 0, 5,16,93, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,17, 3, 6,29, 4, 6,29, 6, 0, 0, 0,15,18,93, 0, 0, 0, 5,16,89,
- 5,16,94, 5,16,88, 6,29, 5, 6,29,22, 5,16,92, 6,38,41, 6,38,47, 5,22,54,
- 5,22,49, 6,38,44, 5,22,46, 5,22,50, 5,22,67, 5,22,51, 6,38,40, 5,22,53,
- 5,22,48, 6,38,54, 4,22,21, 5,22,52, 6,38,50, 6,38,48, 6,38,43, 6,38,46,
- /* plane 2, page 3 */
- 0, 251, /* first, last */
- 6,38,51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,18,86,
- 6,38,56, 5,22,47, 0, 0, 0, 5,22,55, 6,38,39,15,25,24,15,25,25,15,25,26,
- 15,25,27,15,25,28,15,25,29,15,25,30,15,25,31, 0, 0, 0, 0, 0, 0, 6,38,45,
- 4,22,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,38,49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,38,52, 5,22,45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,38,42, 5,20, 1, 6,48,58, 4,34,24, 5,29,58, 5,29,56, 6,48,51,
- 5,16,91, 5,29,62, 5,29,60, 6,48,56, 5,29,59, 6,48,63, 6,48,61, 4,28,14,
- 0, 0, 0, 6,48,60, 6,48,66, 6,48,53, 4,28,15, 0, 0, 0, 5,29,64, 6,48,52,
- 5,29,55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,48,55, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,48,62,15,32,25,15,32,26,15,32,27,15,32,28,15,32,29,15,32,30,15,32,31,
- 15,32,32,15,32,33,15,32,34,15,32,35,15,32,36,15,32,37,15,32,38, 0, 0, 0,
- 6,48,65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,54,46, 6,48,57,
- 0, 0, 0, 0, 0, 0, 6,48,54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,38,55,
- 5,29,57, 5,29,61, 5,29,63, 4,28,11, 6,48,64, 0, 0, 0, 6,58,81, 5,29,65,
- 7, 1,14, 4,34,20, 5,36,54, 6,58,68, 6,58,73, 5,29,66, 6,58,75, 4,34,25,
- 6,58,84, 4,34,17, 6,58,85, 6,58,72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,58,71, 6,58,86,15,38,35,15,38,36,15,38,37,15,38,38,
- 15,38,39,15,38,41,15,38,42,15,38,43,15,38,44,15,38,45,15,38,46,15,38,47,
- 15,38,49,15,38,50,15,38,51,15,38,52,15,38,54,15,38,55,15,38,56,15,51,37,
- 7, 6,13, 5,36,56, 6,58,87, 6,62,55, 0, 0, 0, 0, 0, 0, 6,58,77, 0, 0, 0,
- 0, 0, 0, 6,58,79, 6,58,69,15,38,48, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,38,40,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,38,53, 0, 0, 0, 4,34,16, 6,58,70,
- 6,58,74, 6,58,78, 6,58,80, 4,34,22, 0, 0, 0, 0, 0, 0, 5,31,38, 4,40,94,
- 4,40,90, 6,58,76, 7, 1,15, 7, 1,17, 7, 1, 9, 7, 1, 6, 7, 1, 5, 5,43,87,
- 4,40,92, 7, 1,11, 7, 1,12, 5,43,83, 7, 1,10, 0, 0, 0, 0, 0, 0, 5,43,89,
- 5,43,88, 0, 0, 0, 7, 1, 7, 0, 0, 0,15,45,58,15,45,59,15,45,60,15,45,61,
- 15,45,62,15,45,64,15,45,65, 0, 0, 0, 7, 1, 8, 0, 0, 0, 5,43,82, 7, 1,13,
- 0, 0, 0, 0, 0, 0,15,45,66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4,41, 1, 5,43,85, 7, 1,16, 5,43,84, 0, 0, 0, 0, 0, 0, 5,44,37,
- 5,51,52, 5,51,58, 7,12,32, 4,47,56, 4,47,63, 5,51,56, 4,47,60, 4,47,62,
- 5,51,53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,51,54, 0, 0, 0,15,51,38,15,51,39,
- 15,51,40, 0, 0, 0,15,51,41,15,51,42,
- /* plane 2, page 4 */
- 0, 253, /* first, last */
- 5,51,59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,51,55, 0, 0, 0,
- 7,22,88, 5,43,86, 5,58,79, 5,58,80, 4,53,71, 4,53,70, 7,22,86, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,57,40, 0, 0, 0, 0, 0, 0,15,57,42,15,57,43,15,57,44,
- 15,57,46, 0, 0, 0, 7,22,85, 7,22,87, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,57,41,
- 0, 0, 0, 4,53,72, 7,22,84, 7,30,86, 4,58,75, 4,58,73, 4,58,74, 7,30,88,
- 7,30,87, 0, 0, 0,15,62,16,15,62,17, 0, 0, 0, 0, 0, 0,15,62,12,15,62,14,
- 15,62,15, 7,30,85, 5,65,17, 4,58,76, 0, 0, 0, 5,65,15, 5,65,16, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,65,18, 5,71,42, 5,71,46, 4,67,14, 5,71,45, 5,71,47,
- 15,65,94,15,66, 1, 7,39,79, 0, 0, 0, 5,71,44, 5,71,43, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,73,92, 7,50,85, 7,45,28,15,68,90,
- 0, 0, 0, 5,75,75, 7,45,27, 7,45,72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,70,15,
- 4,70,14, 5,79,72, 7,55,46, 5,75,76,15,71,31,15,71,94, 0, 0, 0, 4,70,13,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,55,45, 0, 0, 0,15,73,24,15,73,26,
- 15,73,25, 5,83,17, 4,74,32, 7,59,37, 0, 0, 0,15,74,43,15,75,33, 5,85,66,
- 0, 0, 0, 0, 0, 0, 4,77,50,15,76,41, 0, 0, 0, 0, 0, 0, 6, 1,45, 4, 1,60,
- 0, 0, 0, 4, 2,18, 6, 3,51, 6, 3,52, 0, 0, 0, 6, 5,85, 6, 5,87, 6, 5,88,
- 5, 3,21, 6, 5,86, 0, 0, 0, 6, 9,49, 6, 9,48, 6, 9,47, 6, 9,51, 0, 0, 0,
- 15, 5,51, 0, 0, 0, 6, 9,50,15, 5,50, 6,14,71, 6,14,72, 0, 0, 0, 0, 0, 0,
- 5,11,86, 0, 0, 0, 0, 0, 0,15,13,93,15,13,94,15,14, 1, 6,21,28,15,19, 8,
- 5,17, 4, 5,17, 5,15,19, 9,15,19,10, 0, 0, 0, 0, 0, 0, 6,38,57,15,25,32,
- 15,25,33,15,25,34, 5,22,56,15,25,35,15,32,39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,48,67,15,32,40,15,38,57,15,38,58, 0, 0, 0, 5,36,57, 0, 0, 0, 0, 0, 0,
- 7, 1,20, 7, 1,18, 5,43,91,15,45,67,15,45,68, 5,43,90, 7, 1,19, 0, 0, 0,
- 5,51,60, 7,12,33,15,51,43,15,51,44,15,51,45,15,51,46, 0, 0, 0, 5,58,81,
- 0, 0, 0, 0, 0, 0,15,57,47,15,57,48,15,57,49, 0, 0, 0, 7,30,89, 0, 0, 0,
- 5,65,19,15,62,18, 0, 0, 0, 7,38, 9, 5,71,48,15,68,91, 5,71,49, 5,75,77,
- 0, 0, 0, 0, 0, 0,15,71,33,15,73,27, 0, 0, 0,15,74,44, 0, 0, 0, 5,87,51,
- 15,75,34, 0, 0, 0, 0, 0, 0, 6, 1,22, 5, 1,22, 5, 1,21, 0, 0, 0, 6, 2,23,
- 6, 3,54, 6, 3,53, 0, 0, 0, 0, 0, 0, 5, 3,22, 6, 5,89, 0, 0, 0, 5, 3,24,
- 0, 0, 0, 0, 0, 0, 5, 8, 5, 5, 8, 6, 0, 0, 0, 4,11,74, 6,21,29,15,14, 2,
- 15,14, 3, 6,29,26, 0, 0, 0, 6,38,58, 6,48,68, 0, 0, 0, 5,29,67, 4,28,17,
- 6,58,88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,58,82,
- /* plane 2, page 5 */
- 0, 255, /* first, last */
- 6, 1,23, 6, 1,46, 5, 1,23, 6, 1,33, 6, 1,57, 0, 0, 0, 5, 1,48, 6, 3,27,
- 4, 2,21, 6, 3,55, 6, 5,92, 6, 5,94, 5, 3,25, 0, 0, 0,15, 3,13, 6, 5,90,
- 6, 9,52, 0, 0, 0, 6,14,75, 6,14,73, 0, 0, 0, 5, 8, 7, 6,14,74, 6,14,47,
- 6,16,91, 6,21,32, 6,21,31, 6,21,33, 6,21,30, 6,29,27, 0, 0, 0, 6,38,61,
- 5,29,68,15,25,36,15,25,37, 0, 0, 0, 0, 0, 0, 6,38,59, 0, 0, 0, 6,38,60,
- 5,29,69, 6,48,69,15,32,41,15,32,42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,34,26,
- 0, 0, 0, 6,58,89, 0, 0, 0,15,52,38,15,51,47,15,51,48, 5,65,20,15,62,19,
- 7,38,10, 7,38,11, 0, 0, 0, 0, 0, 0, 4, 1,13, 6, 1,47, 6, 1,49, 0, 0, 0,
- 0, 0, 0, 6, 2,25, 4, 1,61, 6, 2,24, 5, 1,50, 0, 0, 0,15, 1,38, 0, 0, 0,
- 6, 2,26, 0, 0, 0, 5, 1,49, 6, 3,58, 0, 0, 0, 6, 3,56, 6, 5,39, 0, 0, 0,
- 6, 6, 3, 6, 6, 1, 6, 6, 2, 5, 3,26, 6, 8,90, 0, 0, 0, 5, 5,12, 0, 0, 0,
- 6, 9,53, 0, 0, 0, 6, 9,54, 6,14,76, 0, 0, 0, 6,21,34, 6,21,35, 5,11,87,
- 5,11,88, 0, 0, 0, 6,29,29, 6,38,63, 3,25,87, 6,38,62, 4,28,19, 5,29,70,
- 6,58,91, 6,58,90, 0, 0, 0, 0, 0, 0, 7, 1,21, 5,51,61, 7,12,34,15,53,86,
- 4,58,77,15,71,34, 7,55,47, 5, 1,24, 0, 0, 0, 6, 2,27,15, 1,40,15, 1,41,
- 0, 0, 0, 6, 3,59, 4, 2,23, 5, 2, 9, 0, 0, 0,15, 1,91, 0, 0, 0, 0, 0, 0,
- 15, 3,14,15, 3,15, 0, 0, 0, 0, 0, 0, 5, 5,13,15, 5,53, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,14,77, 0, 0, 0, 6,29,30,15,14, 5, 0, 0, 0,15,14, 6,
- 15,14, 7,15,14, 8,15,14, 9, 5,17, 7, 6,38,64,15,25,39,15,25,40, 6,38,65,
- 0, 0, 0,15,26,61, 6,48,70, 0, 0, 0, 6,58,92, 0, 0, 0,15,38,59, 5,46,87,
- 7,12,35,15,57,50,15,51,49, 7,30,90, 0, 0, 0, 0, 0, 0, 7,38,12, 7,45,31,
- 0, 0, 0, 5,79,73, 0, 0, 0, 5,85,67, 0, 0, 0, 0, 0, 0,15, 1,42, 0, 0, 0,
- 0, 0, 0, 6, 3,60,15, 1,93, 0, 0, 0,15, 1,94, 0, 0, 0, 4, 2,24, 5, 3,27,
- 6, 6, 4, 4, 3,28,15, 3,16,15, 3,17,15, 3,18,15, 3,19, 0, 0, 0, 0, 0, 0,
- 15, 3, 4,15, 2,94, 4, 5,33, 4, 5,34, 6, 9,56, 6, 9,57, 5, 5,15,15, 5,55,
- 5, 8, 9, 4, 8,33, 4, 8,34, 5, 8,12, 5, 8, 8, 5, 8,10, 6,14,79, 0, 0, 0,
- 0, 0, 0,15, 9,26,15, 9,28,15, 9,29,15, 9,30,15, 9,31, 0, 0, 0, 6,14,78,
- 5,11,90, 4,11,75, 5,11,89, 5, 8,11, 6,21,37, 5,11,91,15,14,10, 0, 0, 0,
- 0, 0, 0,15,14,11, 6,21,38, 0, 0, 0, 0, 0, 0, 5,17, 8, 6,29,31, 6,29,32,
- 4,16,46, 0, 0, 0,15,19,11, 0, 0, 0,15,19,12,15,19,13,15,19,15,15,19,16,
- 0, 0, 0, 6,38,66, 5,22,60, 5,22,58, 5,22,59, 5,22,57, 4,22,30,15,19,14,
- 0, 0, 0, 0, 0, 0, 5,29,76, 5,29,71, 5,29,73, 5,29,74, 5,29,72, 5,29,75,
- /* plane 2, page 6 */
- 0, 255, /* first, last */
- 6,48,71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,58,93, 5,44, 1, 5,36,58, 7, 1,23,
- 15,38,61,15,38,62, 5,43,94, 5,43,93, 5,43,92, 7, 1,22,15,45,71, 0, 0, 0,
- 0, 0, 0,15,51,51, 7,12,37,15,45,70,15,51,50, 0, 0, 0, 4,53,74, 7,12,38,
- 5,58,83, 0, 0, 0, 0, 0, 0,15,57,51,15,57,52, 5,65,22, 5,65,21, 5,65,23,
- 15,62,20, 7,30,91, 5,71,50, 5,71,51, 7,50,86, 5,83,18, 0, 0, 0, 4, 1, 9,
- 0, 0, 0, 6, 1,50, 0, 0, 0,15, 1,10,15, 1,11,15, 1,12,15, 1,14, 6, 1,60,
- 15, 1,13, 5, 1,51, 6, 2,29, 4, 1,63, 0, 0, 0, 6, 3,62, 6, 3,61, 6, 3,63,
- 6, 3,64, 0, 0, 0,15, 1,43, 0, 0, 0, 6, 6, 7, 6, 6, 5, 6, 6, 6,15, 3,20,
- 15, 3,21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5,38, 6, 9,58,
- 4, 5,36, 6, 9,59, 6, 9,60, 6, 9,61,15, 5,56,15, 5,57, 0, 0, 0, 6,14,82,
- 6,14,80, 6,14,81, 6,21,39,15,14,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,23, 7,
- 6,29,34, 6,29,35, 6,29,33,15,19,17,15,19,18,15,19,19, 0, 0, 0, 6,38,67,
- 6,38,70,15,25,41, 6,38,68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,25,42,
- 15,38,63,15,38,64,15,38,65,15,45,72, 0, 0, 0, 7,12,39,15,51,52,15,51,53,
- 15,51,35,15,57,53,15,62,21,15,71,35, 0, 0, 0, 4, 1,14, 5, 1,25, 6, 1,51,
- 6, 1,52, 6, 2,31, 5, 1,52, 6, 2,30, 0, 0, 0,15, 1,44, 6, 3,69, 6, 3,65,
- 6, 3,66, 6, 3,67,15, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2,10, 6, 6, 8,
- 15, 3,22, 0, 0, 0, 0, 0, 0, 6, 9,64, 0, 0, 0, 6, 9,63, 6,14,83, 6,14,84,
- 0, 0, 0, 6,20,90, 6,21,40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,29,36, 6,29,37,
- 5,22,61, 6,58,94,15,38,66, 7, 1,80, 0, 0, 0, 7,22,91, 5,58,86, 5,71,52,
- 0, 0, 0, 7,46,30, 0, 0, 0, 6, 1,25, 0, 0, 0, 4, 1,32, 6, 1,53, 5, 1,26,
- 5, 1,27, 6, 1,54, 4, 1,33,15, 1,15, 6, 1,55, 5, 1,53, 5, 1,54, 4, 1,66,
- 6, 2,36, 5, 1,55, 6, 2,35, 6, 2,32, 6, 2,37, 0, 0, 0, 0, 0, 0, 4, 2,26,
- 6, 3,74, 5, 2,14, 5, 2,12, 5, 2,11, 4, 2,27, 4, 2,25, 6, 3,72, 6, 3,71,
- 5, 2,15, 6, 3,75, 6, 3,73, 5, 2,13, 4, 2,29, 0, 0, 0, 0, 0, 0,15, 2, 2,
- 15, 2, 3, 4, 2,30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 3,70, 4, 3,33, 6, 6,11,
- 4, 3,35, 5, 3,29, 4, 3,34, 5, 3,38, 5, 3,37, 5, 3,35, 5, 3,32, 6, 6, 9,
- 5, 3,31, 5, 3,34, 5, 3,33, 6, 6,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6, 6,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3,30, 5, 3,36, 6, 9,73,
- 5, 5,19, 5, 5,21, 4, 5,41, 4, 5,43, 3, 7,60, 6, 9,70, 4, 5,45, 6, 9,68,
- 6, 9,69, 6, 9,76, 6,14,85, 0, 0, 0, 6, 9,74, 5, 5,16, 5, 5,22, 6, 9,75,
- 5, 5,18, 6, 9,71, 0, 0, 0, 5, 5,20,15, 5,58,15, 5,59,15, 5,60,15, 5,61,
- /* plane 2, page 7 */
- 2, 255, /* first, last */
- 6, 9,72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 9,66, 6, 9,65,
- 0, 0, 0, 5, 5,17, 0, 0, 0, 0, 0, 0, 6, 9,55, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4, 8,39, 5, 8,13, 4, 8,37, 6,15, 4, 6,14,91, 6,15, 2, 4, 8,40, 6,15, 1,
- 4, 8,36, 4, 8,38, 6,14,88, 6,14,94, 6,15, 3, 6,14,90, 0, 0, 0, 6,14,93,
- 6,14,92,15, 9,32,15, 9,33,15, 9,34, 0, 0, 0, 6,14,89, 5, 8,14, 0, 0, 0,
- 6,14,87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,21,41, 4,11,80, 4,11,77, 5,12, 5, 5,12, 3, 4,11,79, 4,11,83, 6,21,46,
- 6,21,50, 5,12, 2, 6,21,51, 4,11,76, 5,12, 6, 6,21,49, 4,11,81, 6,21,48,
- 6,21,47, 6,21,44, 6,21,43, 4,11,82, 5,12, 4, 6,21,45, 0, 0, 0, 0, 0, 0,
- 15,14,19, 6,21,52,15,14,14,15,14,15,15,14,16,15,14,18, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,14,17, 6,21,42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,12, 7, 5,11,93, 5,12, 1, 5,11,94, 0, 0, 0, 4,16,48, 5,17,11, 4,16,49,
- 5,17,10, 6,29,38, 4,16,54, 4,22,41, 4,16,53, 6,29,41, 0, 0, 0, 6,29,39,
- 5,22,62, 4,16,47, 5,12, 8, 0, 0, 0, 0, 0, 0,15,19,20,15,19,21,15,19,23,
- 0, 0, 0, 6,29,40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,29,42, 6,29,43, 4,22,35,
- 5,22,63, 6,38,77, 6,38,73, 4,22,38, 4,22,39, 5,22,64, 5,22,68, 4,22,42,
- 4,22,36, 4,22,33, 4,22,32, 6,38,75, 6,38,72, 6,38,76, 5,22,65, 5,22,66,
- 6,38,74,15,25,43,15,25,44,15,25,45,15,25,46, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4,22,40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,44,38, 6,38,78, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,22,69, 4,28,25, 6,48,79, 5,29,83,
- 6,48,77, 4,28,21, 5,29,84, 6,48,78, 5,29,77, 4,28,23, 4,28,22, 5,29,78,
- 4,28,26, 5,29,79, 6,48,75,15,32,43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,48,74,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,48,72, 6,48,80, 6,48,73, 5,29,82, 5,29,81,
- 0, 0, 0,15,32,44, 5,36,59, 4,34,27, 6,59, 4, 5,36,65, 6,59, 2, 6,59, 1,
- 4,28,24, 4,34,32, 5,36,66, 5,36,60, 5,36,63, 4,34,29, 4,34,36, 6,59,11,
- 6,59, 9, 6,59, 8, 5,36,62, 5,44, 2, 6,59, 6, 5,36,61, 6,59,10, 5,36,64,
- 6,59, 5,15,38,67,15,38,68,15,38,69, 6,59, 3, 0, 0, 0, 0, 0, 0, 6,59, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,44, 3, 5,44, 7,
- 4,41, 4, 5,44, 4, 5,44, 6, 7, 1,28, 7, 1,29, 7, 1,26, 7, 1,30, 7, 1,27,
- 5,44, 5, 7, 1,24, 0, 0, 0, 7, 2,58, 0, 0, 0, 7, 1,25, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,47,64, 7,12,41, 5,58,87, 7,12,42, 7,12,46, 7,12,45,
- /* plane 2, page 8 */
- 0, 255, /* first, last */
- 7,12,44, 5,51,63, 5,51,65, 5,51,64, 5,51,62, 7,12,40, 7,12,43, 7, 1,31,
- 15,51,54, 0, 0, 0, 0, 0, 0, 5,56,49, 0, 0, 0, 5,58,90, 4,53,75, 5,58,89,
- 5,58,88, 0, 0, 0, 7,22,92,15,57,54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,53,78,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,30,92, 5,65,24, 5,65,25, 7,22,93,15,62,22,
- 5,65,26, 7,38,15, 7,38,14, 7,38,13, 0, 0, 0, 0, 0, 0, 7,45,32, 7,45,33,
- 0, 0, 0, 0, 0, 0, 5,79,74, 7,50,87,15,71,36, 0, 0, 0, 5,85,68, 4,75,69,
- 7,66,13, 7,66,12, 6, 1,26, 5, 1,28, 6, 1,56, 0, 0, 0, 4, 1,67, 5, 1,57,
- 5, 1,56, 5, 2,17, 0, 0, 0, 5, 2,18,15, 2, 5,15, 2, 6,15, 2, 7,15, 2, 8,
- 0, 0, 0, 5, 2,19, 6, 6,14, 4, 3,37, 5, 3,39, 0, 0, 0,15, 3,24,15, 3,26,
- 15, 3,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6,13, 4, 3,41, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 5,29, 5, 5,25, 6, 9,77, 5, 5,28, 6, 9,78,15, 5,64,15, 5,65,
- 15, 5,66,15, 5,67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8,16, 4, 8,42,
- 6,15, 6, 5, 8,17, 5, 8,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,15, 8, 0, 0, 0,
- 15, 9,35,15, 9,36,15, 9,37, 6,21,53, 6,21,57, 4,11,84, 5,12,13, 5,12, 9,
- 5,12,11, 5,12,12, 5,12,10, 0, 0, 0,15,14,20,15,14,21, 0, 0, 0, 0, 0, 0,
- 6,21,54, 6,21,55, 0, 0, 0, 5,17,13, 6,29,46, 6,29,44, 6,29,47, 6,29,48,
- 6,29,49,15,19,24,15,19,25, 0, 0, 0, 6,29,45, 5,22,73, 5,22,70, 5,22,72,
- 5,22,75, 5,22,71,15,25,47,15,25,48, 0, 0, 0, 0, 0, 0, 6,38,79, 6,38,80,
- 0, 0, 0, 0, 0, 0, 6,38,81, 5,29,86, 5,29,85, 4,28,27, 6,48,82, 6,48,81,
- 15,32,45, 5,29,87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4,34,38, 5,36,70, 5,36,68, 5,36,69, 5,36,73, 4,34,37, 5,36,72, 6,59,14,
- 15,38,70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,59,12, 0, 0, 0, 6,59,13,
- 5,44,11, 5,44, 8, 4,41, 6, 5,44, 9, 5,44,10, 0, 0, 0, 7,12,47, 5,58,92,
- 15,51,55, 5,58,91, 5,58,93, 7,22,94, 7,23, 2, 0, 0, 0, 0, 0, 0, 7,23, 1,
- 5,65,28, 7,30,94, 0, 0, 0, 7,31, 1, 5,71,54, 5,71,53, 7,45,34, 5,79,75,
- 7,59,38, 5,85,69, 4,76,75, 7,70,27, 5, 1,29, 6, 2,39, 6, 2,40, 5, 2,21,
- 0, 0, 0, 5, 2,20, 5, 2,22,15, 2,10, 6, 6,15, 0, 0, 0, 5, 3,40, 5, 3,41,
- 4, 5,50, 6, 9,81, 6, 9,80, 0, 0, 0,15, 5,68,15, 5,69, 6,15,10, 4, 8,44,
- 6,15,11, 6,15,12,15, 9,38, 6,15, 9, 4,11,86, 6,21,60, 6,21,59, 6,21,62,
- 6,21,63, 6,21,58, 6,21,61, 5,12,15, 0, 0, 0, 0, 0, 0, 4,16,61, 6,29,50,
- 5,12,14, 5,17,14, 0, 0, 0, 5,17,15, 6,29,51, 4,22,46, 0, 0, 0,15,25,49,
- 6,48,83, 4,16,59, 5,29,89,15,32,46,15,32,47, 6,59,15, 4,34,39, 5,36,74,
- /* plane 2, page 9 */
- 0, 253, /* first, last */
- 5,36,75,15,38,71, 0, 0, 0,15,45,73, 4,47,69, 7,12,48, 0, 0, 0, 7,12,49,
- 7,23, 3, 7,23, 4, 5,58,94, 7,45,35, 0, 0, 0, 0, 0, 0, 6, 1,10, 4, 1,34,
- 6, 2,42, 6, 6,16, 6, 6,19, 5, 3,42, 6, 6,17, 6, 6,18, 0, 0, 0, 4, 8,45,
- 6,15,15, 6,15,17, 6,15,13, 6,15,14, 6,15,16, 0, 0, 0, 6,29,52, 6,21,64,
- 15,14,22,15,14,23, 6,21, 4, 6,38,82,15,25,50, 4,28,29, 0, 0, 0, 0, 0, 0,
- 15,38,72, 0, 0, 0, 7,31, 2, 5,77,18, 6, 1,11,15, 1,17, 5, 2,23, 6, 3,78,
- 4, 2,35, 6, 3,77, 0, 0, 0, 6, 6,20, 4, 3,42, 6, 6,21,15, 3,28, 0, 0, 0,
- 6, 9,83, 5, 5,30, 5, 5,31, 0, 0, 0, 4, 8,47, 0, 0, 0, 6,15,20, 5, 8,19,
- 6,15,19, 5, 8,18, 6,15,18, 6,15,23, 6,15,21,15, 9,39, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,12,16, 6,21,66, 6,21,65, 5,12,17, 0, 0, 0, 6,29,53,15,19,26,
- 4,22,47, 6,48,85, 6,38,83, 6,21,67, 0, 0, 0, 0, 0, 0, 5,29,90, 0, 0, 0,
- 0, 0, 0, 4,34,40, 6,59,17, 6,59,16, 5,44,12, 5,44,13, 5,44,14, 0, 0, 0,
- 0, 0, 0,15,45,74, 5,51,68, 7,23, 5, 0, 0, 0,15,62,23, 4,63,43, 0, 0, 0,
- 0, 0, 0, 7,31, 3, 7,45,36, 7,64,73, 7,68,35,15, 1,18, 5, 2,24, 6, 3,79,
- 5, 3,44, 6, 6,23,15, 3,29,15, 5,70, 6,15,22, 5, 8,20, 6,21,68,15,38,73,
- 7,45,37, 0, 0, 0, 7,55,48, 6, 1,58, 0, 0, 0, 5, 1,58, 5, 1,59, 0, 0, 0,
- 6, 2,43, 0, 0, 0, 6, 3,80, 4, 2,36, 0, 0, 0, 4, 2,37, 6, 3,83, 6, 3,82,
- 5, 2,26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2,25, 6, 3,84, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6, 6,25, 5, 3,45, 6, 6,26, 6, 3,85, 6, 6,27,15, 3,30, 0, 0, 0,
- 5, 5,32, 6, 9,84, 6, 9,87, 6, 9,88, 6, 9,86,15, 5,71,15, 5,73,15, 5,74,
- 15, 5,75,15, 5,72, 6, 9,85, 6,21,69, 6,21,70,15,14,24,15,14,25, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,16,67, 4,16,65, 4,16,66,15,19,27, 0, 0, 0, 0, 0, 0,
- 15,25,51,15,25,52, 0, 0, 0, 0, 0, 0, 6,48,88, 6,48,87, 6,48,89, 6,48,91,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,32,48,15,38,74,15,38,75, 0, 0, 0,
- 5,44,15,15,45,75,15,45,76, 0, 0, 0, 7, 1,32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,23, 6, 0, 0, 0,15,62,24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,38,16, 7,50,88,
- 7,64,74, 7,66,14, 0, 0, 0, 6, 2,44, 6, 3,87, 0, 0, 0, 0, 0, 0, 6, 3,86,
- 6, 3,88, 4, 3,44, 5, 3,47, 5, 3,46, 6, 6,28, 0, 0, 0, 4, 5,53, 4, 5,52,
- 6, 9,92, 6, 9,91, 6, 9,93, 6, 9,90, 6, 9,94, 6, 9,89,15, 5,76, 0, 0, 0,
- 6,10, 2, 4, 8,50, 4, 8,49, 5, 8,23,15, 9,40,15, 9,41,15, 9,42,15, 9,43,
- 0, 0, 0, 0, 0, 0, 6,15,25, 6,21,72, 4,11,89, 5,12,18, 6,21,71, 6,21,74,
- 6,28,90, 6,21,73, 6,29,55, 6,29,54, 6,21,75, 6,29,56,
- /* plane 2, page 10 */
- 0, 255, /* first, last */
- 6,38,85, 6,38,86, 6,38,87, 5,23,31, 0, 0, 0, 6,48,92, 5,36,77, 6,59,18,
- 7, 1,33,15,51,56, 0, 0, 0, 7,67,43, 0, 0, 0, 5, 1,30, 4, 1,35,15, 1,20,
- 6, 1,59, 0, 0, 0, 4, 2,38, 6,10, 4, 6, 3,90, 0, 0, 0, 6, 3,89, 0, 0, 0,
- 4, 3,46, 6,15,27, 5, 8,24, 6,15,26, 4, 8,51, 6,21,76, 6,15,28, 6,38,88,
- 5,12,19, 0, 0, 0, 5,29,91, 6,48,93, 0, 0, 0, 5,36,78, 0, 0, 0, 7,31, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 1,31, 5, 1,60, 6, 3,91, 6, 2,47,
- 6, 2,45, 6, 2,48, 5, 1,61, 0, 0, 0, 4, 2,39, 5, 2,27, 6, 3,92, 6, 3,93,
- 5, 2,31, 5, 2,32, 5, 2,29, 5, 2,30, 0, 0, 0,15, 2,13, 0, 0, 0, 0, 0, 0,
- 6, 6,30, 5, 3,48, 6, 6,29, 5, 3,49, 6, 5,62, 0, 0, 0, 0, 0, 0,15, 3,31,
- 0, 0, 0, 0, 0, 0, 6,10, 7, 6,10, 6, 6,10, 9, 6,10, 8, 5, 5,33, 4, 5,56,
- 0, 0, 0,15, 5,77,15, 5,78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,10, 5, 5, 8,25,
- 4, 8,52, 6,15,38, 6,15,33, 6,15,36, 6,15,37, 6,15,32, 6,15,30, 6,15,34,
- 6,15,35, 0, 0, 0,15, 9,45,15, 9,46, 4, 8,53, 0, 0, 0, 6,15,31, 6,21,83,
- 6,21,84, 4,11,91, 5,12,20, 4,11,92, 6,21,79, 6,21,77, 6,21,80, 6,21,82,
- 6,21,81, 6,21,78, 5,12,21,15,14,26,15,14,27, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,29,64, 6,29,59, 4,16,71, 6,29,63, 6,29,60, 6,29,61,15,19,29, 5,17,16,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,29,62, 0, 0, 0, 4,16,70, 4,22,50,
- 6,38,92, 6,38,90, 4,22,51, 6,38,91, 6,38,89, 6,38,93,15,25,53, 6,38,94,
- 0, 0, 0, 5,29,92, 5,29,93, 6,49, 4, 6,49, 3, 6,48,94,15,32,49, 0, 0, 0,
- 6,49, 1, 4,28,31, 4,34,41, 6,59,20, 6,59,23, 6,59,19, 6,59,24, 5,36,79,
- 15,38,77, 0, 0, 0,15,38,78, 0, 0, 0, 6,59,22, 6,59,25, 6,59,27, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,59,26, 6,59,21, 0, 0, 0, 7, 1,35, 4,41, 8, 5,44,16,
- 7, 1,36, 0, 0, 0, 0, 0, 0, 7, 1,34, 0, 0, 0,15,45,77, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7, 5,40, 5,51,69, 7,12,51, 7,12,50,15,51,57,15,51,58, 7,27,45,
- 15,62,25,15,62,26,15,62,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,68,92,
- 7,46, 7, 7,50,89, 0, 0, 0, 0, 0, 0, 5,87,52, 0, 0, 0, 7,62,48, 0, 0, 0,
- 7,69,19, 0, 0, 0, 7,70,19, 5, 1,14, 6, 1,28, 6, 1,29, 0, 0, 0, 6, 1,61,
- 0, 0, 0, 6, 2,50, 6, 2,49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2,42, 6, 4, 3,
- 6, 4, 1, 0, 0, 0,15, 2,14, 0, 0, 0, 4, 2,41, 6, 4, 2, 6, 6,32,15, 3,32,
- 5, 3,28, 6,10,12, 6,10,11, 6,10,13, 6,10,14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,15,39, 6,15,40, 0, 0, 0, 4, 8,54,15, 9,47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,21,86, 6,21,85, 6,22,41, 6,21,14, 0, 0, 0, 0, 0, 0, 5,22,76,
- /* plane 2, page 11 */
- 0, 246, /* first, last */
- 6,39, 2, 6,39, 4, 6,45,66, 0, 0, 0,15,25,54, 6,39, 3, 5,30, 1, 6,49, 5,
- 5,29,94, 0, 0, 0,15,32,50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,59,28,15,38,79,
- 6,64,82, 7, 1,37, 0, 0, 0, 5,51,70, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,57,55,
- 7,43,74, 0, 0, 0, 6, 1,64, 5, 1,32, 6, 1,62, 5, 1,34, 6, 1,66, 6, 1,63,
- 0, 0, 0, 6, 2,53, 4, 1,72, 5, 1,62, 0, 0, 0, 6, 2,54, 5, 1,63, 6, 2,51,
- 6, 2,52, 6, 4, 5, 4, 2,43, 6, 4, 4, 5, 2,34, 6, 4, 6, 5, 2,33, 6, 4, 7,
- 0, 0, 0, 6, 6,36, 6, 6,34, 5, 3,50,15, 3,33,15, 3,34,15, 3,35,15, 3,36,
- 4, 3,48, 6,10,17, 6,10,15, 6,10,18, 6,10,16,15, 5,79, 0, 0, 0, 6,15,45,
- 6,15,42, 6,15,44, 6,15,43, 6,15,41,15, 9,49,15, 9,50, 0, 0, 0, 6,18,82,
- 0, 0, 0, 5, 8,22, 6,21,91, 5,12,22, 6,21,92, 6,21,89, 6,21,87, 6,21,90,
- 15,14,28,15,14,29,15,14,30,15,14,31, 6,28,71, 6,29,70, 6,29,72, 5,17,18,
- 5,17,19, 6,29,69, 6,29,67, 6,29,75, 6,29,68, 5,12,23, 6,29,66, 6,29,73,
- 6,29,74, 6,28,92, 0, 0, 0, 6,29,71, 0, 0, 0, 4,22,52, 5,22,77, 6,39, 7,
- 6,39, 5,15,19,30,15,25,55,15,25,56,15,25,57,15,25,58, 6,39, 6, 4,28,35,
- 4,28,34, 6,49, 7, 6,49, 8, 6,49, 6, 4,28,33, 6,39, 8, 6,49,59, 0, 0, 0,
- 6,49, 9, 0, 0, 0, 0, 0, 0, 6,63, 1, 6,59,30, 0, 0, 0, 6,59,29, 5,36,80,
- 0, 0, 0, 6,51,91,15,45,53, 5,44,19, 5,44,20,15,38,80, 5,44,18, 7,12,53,
- 15,51,59, 3,48,25, 5,52,14, 7,12,52, 0, 0, 0, 7,23, 9, 7,23, 8,15,57,56,
- 4,58,79, 7,38,18, 7,38,17, 4,70,17,15,71,37, 7,55,49, 5,85,70, 7,62,49,
- 7,62,50, 5, 1,35, 6, 1,68, 4, 1,39, 4, 1,38,15, 1,22, 6, 1,67, 0, 0, 0,
- 5, 1,65, 6, 2,57, 6, 2,56, 6, 2,62, 6, 2,58, 6, 2,61, 6, 2,55, 6, 2,34,
- 15, 1,46, 0, 0, 0, 6, 2,60, 5, 2,39, 6, 4,13, 5, 2,37, 6, 4,14, 4, 2,45,
- 5, 2,38, 4, 2,48, 6, 4,12, 4, 2,47, 4, 2,46, 5, 2,36, 0, 0, 0, 6, 4, 8,
- 15, 2,15,15, 2,16,15, 2,18,15, 2,20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6, 4,10,15, 2,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 2,19, 0, 0, 0,
- 5, 2,35, 6, 4, 9, 6, 4,11, 4, 3,54, 6, 6,47, 6, 6,38, 6, 6,45, 6, 6,44,
- 5, 3,54, 4, 3,58, 4, 3,61, 5, 3,59, 5, 3,52, 6, 6,40, 4, 3,55, 4, 3,50,
- 4, 3,56, 5, 3,56, 6, 6,41, 5, 3,57, 4, 3,53, 5, 3,53, 6, 6,39, 0, 0, 0,
- 0, 0, 0, 5, 3,60, 0, 0, 0,15, 3,37,15, 3,38,15, 3,39,15, 3,42,15, 3,43,
- 15, 3,44, 0, 0, 0, 0, 0, 0,15, 3,40, 6, 6,43, 0, 0, 0, 6, 6,42, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6,48, 0, 0, 0, 6, 6,37, 5, 3,51,
- /* plane 2, page 12 */
- 4, 255, /* first, last */
- 5, 3,55, 5, 3,58, 0, 0, 0, 0, 0, 0,
- 4, 5,60, 4, 5,62, 6,10,22, 5, 5,44, 5, 5,36, 4, 5,59, 6,10,20, 5, 5,45,
- 5, 5,37, 5, 5,39, 4, 5,65, 5, 5,48, 6,10,19, 5, 5,50, 5, 8,39, 6,10,27,
- 5, 5,40, 5, 5,43, 5, 5,42, 5, 5,49, 5, 5,41, 5, 5,46, 6,10,29, 0, 0, 0,
- 0, 0, 0, 5, 5,47,15, 5,80,15, 5,82,15, 5,83,15, 5,84,15, 5,85,15, 5,86,
- 15, 5,87,15, 5,88,15, 5,89,15, 5,90,15, 5,93,15, 5,94,15, 6, 1,15, 6, 2,
- 15, 6, 3, 0, 0, 0, 5, 5,38, 0, 0, 0, 0, 0, 0, 6,10,21, 5, 5,35, 0, 0, 0,
- 6,10,24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,10,23,
- 15, 5,92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,10,26, 0, 0, 0,
- 5,12,24, 5, 8,38, 5, 8,50, 5, 8,45, 5, 8,28, 5, 8,49, 6,15,52, 6,15,46,
- 5, 8,31, 4, 8,59, 4, 8,58, 5, 8,47, 5, 8,37, 5, 8,43, 5, 8,42, 5, 8,46,
- 5, 8,40, 5, 8,41, 5, 8,29, 5, 8,33, 5, 8,44, 4, 5,66, 6,15,57, 6,15,58,
- 5, 8,51, 6,15,47, 0, 0, 0, 5, 8,26, 6,15,55, 6,15,54, 5, 8,48, 6,15,48,
- 6,15,56, 6,15,50, 5, 8,32, 5, 8,34, 0, 0, 0,15,11,19, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15, 9,51,15, 9,53,15, 9,54,15, 9,55,15, 9,56,15, 9,57,15, 9,58,
- 15, 9,59,15, 9,62,15, 9,63,15, 9,64,15, 9,65,15, 9,66,15, 9,67,15, 9,68,
- 15, 9,70,15, 9,71, 0, 0, 0, 5, 8,35, 5, 8,36, 0, 0, 0, 4, 8,61,15, 9,69,
- 6,15,53, 0, 0, 0, 0, 0, 0, 6,15,51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8,56,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 8,27, 5, 8,30, 6,15,49, 0, 0, 0, 6,22, 9, 4,12, 4, 4,12,11,
- 4,12,12, 4,12, 7, 6,22, 2, 5,12,46, 5,12,33, 5,12,31, 5,12,44, 5,12,29,
- 5,12,38, 5,12,54, 5,12,41, 4,12,10, 5,12,45, 5,12,52, 5,12,50, 4,12, 2,
- 6,22, 3, 6,22, 4, 5,12,49, 4,12, 3, 5,12,32, 6,22, 7, 6,22, 8, 5,12,55,
- 6,22, 6, 5,12,51, 5,12,56, 5,12,39, 5,12,57, 5,12,36, 5,12,53, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,14,32,15,14,33,15,14,35,15,14,36,15,14,40,
- 15,14,41,15,14,43,15,14,44,15,14,45,15,14,46,15,14,47,15,14,48,15,14,49,
- 15,14,50,15,14,51,15,14,52, 6,25,62, 0, 0, 0, 0, 0, 0, 6,22, 1, 5,12,34,
- 5,12,37, 5,12,40, 0, 0, 0, 0, 0, 0, 6,22, 5, 0, 0, 0, 0, 0, 0, 5,12,48,
- 5,12,43, 5,12,25, 5,12,26, 5,12,27, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,14,37,
- /* plane 2, page 13 */
- 3, 254, /* first, last */
- 5,12,42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,12,47, 5,12,30, 5,12,28, 0, 0, 0, 0, 0, 0, 5,12,58, 5,17,38,
- 4,16,73, 6,29,87, 6,29,84, 4,16,88, 6,29,79, 4,16,85, 5,17,49, 5,17,41,
- 5,17,44, 4,16,78, 4,16,89, 5,17,36, 6,29,86, 5,17,22, 5,17,42, 5,17,37,
- 5,17,46, 5,17,20, 5,17,45, 5,17,34, 5,17,27, 6,29,81, 6,29,85, 6,29,93,
- 6,29,90, 6,29,94, 5,17,26, 5,17,28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,29,76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,17,24, 6,29,82, 6,29,91,15,19,31,15,19,32,15,19,33,15,19,34,
- 15,19,36,15,19,37,15,19,38,15,19,39,15,19,40,15,19,41,15,19,44,15,19,45,
- 5,17,23, 6,29,83, 5,17,25, 0, 0, 0, 0, 0, 0, 6,29,77, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,17,33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,17,40, 0, 0, 0, 6,30, 1, 0, 0, 0, 0, 0, 0, 5,17,50, 0, 0, 0, 6,29,80,
- 0, 0, 0, 5,17,32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,17,21,
- 5,17,39, 5,17,30, 5,17,35, 5,17,29, 5,17,48, 6,29,89, 3,20,64, 0, 0, 0,
- 5,17,51, 5,17,47, 6,29,88, 6,29,78, 5,17,31, 5,17,43, 0, 0, 0, 4,22,53,
- 4,22,65, 0, 0, 0, 6,39,18, 5,23, 4, 6,39,23, 6,39,30, 5,22,87, 6,39,21,
- 5,22,92, 4,22,54, 5,23, 8, 5,22,79, 5,22,81, 4,22,58, 5,22,88, 4,22,55,
- 5,23, 9, 5,22,94, 4,22,66, 4,22,59, 5,23, 3, 5,23, 7, 4,22,70, 5,23,16,
- 0, 0, 0, 4,22,61, 5,23,12, 5,23,14, 6,39,14, 6,39,28, 5,30, 2, 6,39,11,
- 6,39,15, 6,39,24, 5,23, 2, 6,39,20, 6,39,31, 6,39,26, 4,22,68, 5,23, 6,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,22,83,
- 15,25,59,15,25,61,15,25,62,15,25,65,15,25,66,15,25,67,15,25,68,15,25,69,
- 15,25,70,15,25,71,15,25,72,15,25,74,15,25,77,15,25,78,15,25,79,15,25,80,
- 5,22,84, 0, 0, 0, 0, 0, 0, 5,22,85, 5,22,91, 5,23, 5, 5,23, 1,
- /* plane 2, page 14 */
- 0, 255, /* first, last */
- 6,39,27, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,25,75, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,25,60,15,25,63, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,25,73, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,25,76, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,23,11, 5,23,15, 0, 0, 0,
- 6,39,29, 5,23,13, 5,23,10, 5,22,93, 0, 0, 0, 6,39,22, 6,49,25, 5,30, 3,
- 4,28,41, 5,30, 7, 4,28,46, 5,22,82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,49,33,
- 4,28,40, 4,28,36, 6,59,34, 5,30,13, 6,49,19, 6,49,21, 5,30,10, 5,30,24,
- 6,49,26, 6,49,16, 5,30,14, 5,30, 4, 5,30,21, 5,30,31, 6,49,31, 6,49,23,
- 5,30,20, 5,30,23, 4,28,45, 5,30,26, 4,28,37, 5,30,19, 5,30,12, 4,28,47,
- 5,30,15, 4,28,49, 5,30,17, 5,30,18, 6,49,27, 0, 0, 0, 6,49,32, 6,49,10,
- 6,49,30, 6,49,29, 5,30,27, 6,49,24, 5,30, 8, 5,30,16, 5,30,11, 6,49,12,
- 6,49,36, 6,49,14, 6,49,11, 6,49,13, 0, 0, 0, 0, 0, 0,15,39, 6, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,30,30,
- 6,49,17,15,32,54,15,32,55,15,32,56,15,32,57,15,32,58,15,32,59,15,32,60,
- 15,32,61,15,32,62,15,32,63,15,32,64,15,32,65,15,32,67, 6,49,15, 6,49,20,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,49,28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,32,52, 0, 0, 0, 6,49,34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,30,28, 5,30,22, 5,30, 5, 5,30, 9,
- 5,30, 6,15,32,68, 0, 0, 0, 0, 0, 0, 6,59,38, 6,59,32, 6,59,43, 4,34,45,
- 6,59,47, 6,59,37, 6,59,49, 6,59,48, 4,34,46, 6,59,44, 5,36,83, 5,36,87,
- 5,36,85, 5,36,92, 6,59,35, 6,59,39, 4,34,44, 4,34,52, 5,36,91, 4,34,48,
- 5,36,86, 6,59,33, 5,36,81, 5,36,82, 5,36,89, 6,59,50, 6,59,31, 6,59,41,
- 6,59,42, 5,36,88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,59,45, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,38,81,15,38,82,
- /* plane 2, page 15 */
- 0, 255, /* first, last */
- 15,38,83,15,38,84,15,38,86,15,38,87,15,38,88,15,38,89,15,38,90,15,38,91,
- 15,38,92,15,38,94,15,39, 1,15,39, 2,15,39, 3,15,39, 7,15,39, 8,15,39, 9,
- 15,39,10,15,39,11,15,39,12,15,39,13,15,39, 4, 6,59,40,15,38,85, 0, 0, 0,
- 5,36,84, 0, 0, 0, 5,36,90, 0, 0, 0, 6,59,46, 0, 0, 0, 5,37, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,38,93, 6,59,36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,39, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,44,21, 5,36,93, 0, 0, 0, 0, 0, 0,
- 15,38,76, 0, 0, 0, 7, 1,49, 5,44,27, 7, 1,53, 7, 1,50, 5,44,25, 7, 1,56,
- 7, 1,42, 5,44,32, 5,44,38, 5,44,29, 7, 1,47, 5,44,30, 7, 1,55, 7, 1,48,
- 5,44,22, 7, 1,43, 5,44,31, 7, 1,54, 7, 1,57, 5,44,33, 4,41,15, 0, 0, 0,
- 7, 1,59, 5,44,26, 7, 1,40, 5,44,24, 5,59, 7, 7, 1,58, 4,41,11, 7, 1,52,
- 5,37, 3, 7, 1,51, 7, 1,41, 7, 1,39, 7, 1,66, 7, 1,60,15,45,90, 0, 0, 0,
- 7, 1,62, 5,44,34, 7, 1,65, 7,12,65, 5,44,23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,41,18, 5,44,39,
- 15,45,79,15,45,80,15,45,81,15,45,82,15,45,83,15,45,84,15,45,85,15,45,86,
- 15,45,88,15,45,89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,44,36, 7, 1,63, 7, 6,11,
- 0, 0, 0, 0, 0, 0, 7, 1,61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 1,45,
- 7, 1,44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,44,28, 5,44,35, 7,12,74,
- 4,47,78, 5,51,84, 7,12,60, 5,51,82, 7,12,72, 4,47,82, 5,51,74, 5,51,88,
- 7,12,64, 4,47,72, 4,47,83, 4,47,70, 5,51,81, 4,47,80, 5,51,79, 5,51,72,
- 7,12,75, 7,12,59, 7,12,68, 5,51,78, 7,12,63, 5,51,76, 5,51,71, 5,51,85,
- 5,51,80, 5,51,83, 7,12,57, 5,51,75, 5,51,73, 7,12,71, 7,12,56, 7,12,55,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,45,87, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,47,73, 4,47,84, 5,51,87, 7,12,70,15,51,60,15,51,62,
- /* plane 2, page 16 */
- 0, 247, /* first, last */
- 15,51,63,15,51,64,15,51,65,15,51,66,15,51,67,15,51,68,15,51,69,15,51,71,
- 15,51,72,15,51,73,15,51,74,15,51,75,15,51,76,15,51,77,15,51,78,15,51,79,
- 7,12,62, 0, 0, 0, 7,12,61, 7,12,66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,12,73, 5,51,77,15,53,84, 5,51,86, 4,53,90, 0, 0, 0, 5,59, 6,
- 0, 0, 0, 5,59, 1, 7,23,13, 7,23,10, 7,23,20, 7,23,21, 5,59, 3, 5,59,11,
- 4,53,81, 4,53,86, 0, 0, 0, 5,59, 8, 4,53,87, 7,23,11, 5,59, 9, 4,53,89,
- 7,23,17, 7,23,15, 7,23,14, 5,59, 4, 0, 0, 0, 4,53,85, 7,23,18, 7,23,25,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,57,57,
- 15,57,58,15,57,62,15,57,63,15,57,64,15,57,65,15,57,66, 0, 0, 0, 0, 0, 0,
- 7,23,24, 7,23,16, 0, 0, 0, 7,23,22, 7,23,19, 7,23,12, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,59,10, 5,59, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,58,84,
- 7,31, 9, 7,31,15, 4,58,83, 5,65,30, 7,31,11, 4,58,81, 4,58,86, 5,65,38,
- 4,58,87, 5,71,56, 5,65,29, 5,65,36, 5,65,35, 4,58,88, 7,31,10, 4,58,85,
- 4,58,89, 4,58,82, 7,31,14, 5,65,33, 7,31, 7, 7,31,13, 7,31, 8, 7,31, 6,
- 7,31,12, 5,65,34, 0, 0, 0, 0, 0, 0,15,57,59, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,31, 5,15,62,28,
- 15,62,29,15,62,30,15,62,31,15,62,32,15,62,35,15,62,36,15,62,37, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,65,31, 0, 0, 0,15,62,42,
- 7,38,20, 4,63,46, 5,59, 5, 7,38,27, 7,38,25, 7,38,23, 5,71,58, 5,71,59,
- 4,63,48, 5,71,55, 7,38,28, 7,38,26, 7,38,19, 7,38,21, 7,38,24, 4,63,47,
- 0, 0, 0, 0, 0, 0,15,62,38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,71,60,
- /* plane 2, page 17 */
- 2, 255, /* first, last */
- 15,66, 2,15,66, 3,15,66, 4,15,66, 5,15,66, 6, 0, 0, 0,
- 7,38,22, 7,39,78, 7,38,29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,75,84, 5,75,85, 5,75,79, 5,75,81, 5,75,80, 7,45,39, 7,45,41,
- 7,45,43, 7,45,40, 7,45,38, 7,45,42,15,68,93,15,68,94,15,69, 1, 0, 0, 0,
- 7,45,44, 0, 0, 0, 0, 0, 0, 5,75,82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,50,91, 5,79,81, 5,79,79, 4,70,21, 5,79,78, 7,50,90, 5,79,77,
- 7,50,94, 5,79,80, 7,50,93, 4,70,19, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,71,39,
- 15,71,40, 5,79,76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,50,92, 0, 0, 0, 0, 0, 0, 7,55,57,
- 7,55,58, 5,83,19, 7,55,53, 0, 0, 0, 7,55,54, 7,55,55, 7,55,52, 7,55,50,
- 0, 0, 0, 7,55,51, 0, 0, 0,15,73,28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,72,68, 7,55,56, 0, 0, 0,
- 7,59,41, 7,59,42,15,74,45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,59,40, 0, 0, 0,
- 7,59,39, 5,87,53, 5,87,54, 4,75,70, 7,62,51, 7,62,53, 7,62,52, 7,62,54,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,75,35, 0, 0, 0, 5,85,71, 5,89, 3, 0, 0, 0,
- 0, 0, 0, 4,76,77,15,76, 2,15,76, 3, 0, 0, 0, 0, 0, 0, 7,64,75, 7,66,18,
- 7,66,17, 7,66,20, 7,66,16, 7,66,19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,76,89,15,76,90, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6, 1,69, 6, 1,70,15, 1,23, 4, 1,78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4,18,
- 6, 4,16, 5, 2,41, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 2,21, 0, 0, 0, 0, 0, 0,
- 6, 4,17, 0, 0, 0, 6, 4,15, 5, 2,40, 6, 6,52, 6,15,60, 6,10,30, 6, 6,56,
- 6, 6,54,15, 3,47,15, 3,49, 6, 6,55, 6, 6,57, 0, 0, 0, 6, 6,60, 6, 6,58,
- 0, 0, 0, 6, 6,49, 0, 0, 0, 6, 6,53, 6, 6,50, 0, 0, 0, 6, 6,51, 6, 6,59,
- 5, 5,53, 6,10,35, 6,10,32, 6,10,33, 6,10,34, 6,13,20, 6,10,31, 0, 0, 0,
- 15, 6, 4, 5, 5,52, 5, 8,52, 5, 8,54, 6,15,64, 6,15,63, 5, 8,53, 6,15,59,
- 6,15,62, 0, 0, 0, 0, 0, 0, 6,15,61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,12,60, 6,22,13, 6,22,10, 6,22,12, 5,12,59, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,22,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,12,61, 5,17,54, 6,30, 5, 5,17,55, 6,30, 4, 6,30, 3, 6,30, 2, 5,17,52,
- 0, 0, 0, 6,30, 6, 0, 0, 0, 0, 0, 0, 5,23,19, 6,39,32, 6,39,33, 5,23,17,
- /* plane 2, page 18 */
- 0, 248, /* first, last */
- 5,17,53, 0, 0, 0,15,25,82,15,25,83,15,25,84, 0, 0, 0, 0, 0, 0, 6,39,34,
- 0, 0, 0, 5,23,18, 5,30,32, 6,49,37, 5,30,33, 6,49,39, 6,49,40, 5,30,34,
- 0, 0, 0, 6,49,38, 0, 0, 0, 0, 0, 0,15,32,69, 6,59,52, 6,59,56, 5,37, 4,
- 6,59,53, 6,59,58, 6,59,54,15,39,14,15,39,15,15,39,16, 0, 0, 0, 6,59,55,
- 0, 0, 0, 0, 0, 0, 7, 1,69, 7, 1,70, 7, 1,68,15,45,91, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,47,85, 0, 0, 0,15,51,83, 7,23,28, 7,23,26, 0, 0, 0,
- 0, 0, 0, 7,23,27, 0, 0, 0, 4,63,49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,45,45,
- 7,51, 2, 7,51, 1, 0, 0, 0, 0, 0, 0, 4, 1,40, 0, 0, 0, 5, 1,36, 6, 2,64,
- 0, 0, 0,15, 1,49,15, 1,50, 0, 0, 0, 6, 2,65, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6, 4,21, 0, 0, 0,15, 2,22,15, 2,23, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6, 4,20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6, 6,74, 4, 3,64, 6, 6,70, 6, 6,66, 0, 0, 0, 6, 6,62, 0, 0, 0, 6, 6,73,
- 6, 6,61, 6, 6,69, 6, 6,71,15, 3,51,15, 3,52,15, 3,54,15, 3,56,15, 3,58,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6,64, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6, 6,67, 6, 6,72, 6, 6,68, 0, 0, 0, 6, 6,65, 6, 6,63, 5, 3,62,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 3,57, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 3,61, 5, 3,63, 5, 3,64, 5, 3,65, 4, 5,74, 6,10,47, 6,10,39, 6,10,44,
- 6,10,38, 4, 5,71, 6,10,42, 4, 5,76, 6,10,40, 5, 5,54, 6,10,49, 6, 6,33,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,10,41,15, 6, 6,15, 6, 7,15, 6, 8,15, 6, 9,
- 15, 6,10,15, 6,16,15, 6,17,15, 6,12,15, 6,11, 0, 0, 0, 4, 5,75, 0, 0, 0,
- 15, 6,15,15, 6,14, 0, 0, 0, 6,10,48, 6,10,43, 6,10,45, 6,10,46,15, 6,18,
- 15, 6, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,10,37, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,10,36, 5, 5,55, 5, 8,59, 6,15,66,
- 5, 8,55, 6,15,68, 6,15,65, 5, 8,56, 4, 8,63, 6,15,75, 6,15,67, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 9,90,15, 9,72,15, 9,73,15, 9,75,
- 15, 9,76,15, 9,77,15, 9,78,15, 9,79,15, 9,80,15, 9,82,15, 9,83,15, 9,85,
- 15, 9,86,15, 9,87,15, 9,88,15, 9,89,15, 9,91,15, 9,92,15, 9,93, 0, 0, 0,
- 6,15,74, 0, 0, 0, 0, 0, 0, 6,15,76, 6,20,17, 6,15,71, 6,15,72, 0, 0, 0,
- 6,15,70, 0, 0, 0, 0, 0, 0,15, 9,84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8,61,
- 5, 8,58, 5, 8,62, 5, 8,60, 5, 8,57, 5,12,62, 4,12,18, 6,22,20, 4,12,16,
- 4,12,20, 6,22,18, 6,22,28, 6,22,22, 6,22,29, 6,22,30, 6,22,17, 6,22,14,
- 6,22,26,
- /* plane 2, page 19 */
- 1, 255, /* first, last */
- 6,22,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,22,32,15,14,53,
- 15,14,54,15,14,55,15,14,56,15,14,57,15,14,58,15,14,59,15,14,62,15,14,63,
- 15,14,64, 0, 0, 0, 6,22,16, 6,22,31, 0, 0, 0, 6,22,23, 6,22,24, 6,22,25,
- 5,12,64, 6,22,27,15,14,61, 0, 0, 0,15,14,65, 0, 0, 0, 0, 0, 0, 6,22,19,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,12,63, 5,12,66, 4,16,93, 6,30, 7,
- 0, 0, 0, 4,16,92, 5,17,61, 6,30,20, 6,30,13, 5,17,59, 6,30,10, 5,12,65,
- 6,30,19, 6,30,16, 5,17,58, 4,17, 2, 4,17, 3, 0, 0, 0,15,19,47,15,19,59,
- 6,30,14, 6,30,15, 0, 0, 0,15,19,46,15,19,48,15,19,49,15,19,50,15,19,51,
- 15,19,52,15,19,53,15,19,54,15,19,56,15,19,57,15,19,58,15,19,62,15,19,63,
- 15,19,64,15,19,65, 5,17,60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,30,17,
- 0, 0, 0, 6,30,21, 0, 0, 0, 4,16,94, 6,30, 8, 6,30, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,17,56, 5,17,57, 0, 0, 0, 0, 0, 0, 3,26,47, 6,49,46, 4,22,82, 6,39,39,
- 4,22,74, 6,39,37, 4,22,80, 4,22,76, 6,39,43, 6,39,48, 4,22,85, 6,39,36,
- 6,39,38, 6,39,45, 5,23,20, 6,30,18, 6,39,47, 4,28,58, 5,23,25, 4,22,83,
- 0, 0, 0, 0, 0, 0, 6,47,77, 5,23,24,15,25,86,15,25,88,15,25,89,15,25,90,
- 15,25,91,15,25,92,15,26, 1,15,26, 2,15,26, 3,15,26, 4,15,26, 5,15,26, 6,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,39,49, 0, 0, 0,
- 6,39,42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,39,41, 4,22,84, 6,39,44,
- 0, 0, 0, 0, 0, 0,15,25,85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,23,23,
- 5,23,26, 6,39,40, 5,23,21, 5,23,22, 5,23,27, 0, 0, 0, 5,30,38, 6,49,54,
- 6,49,43, 6,49,53, 0, 0, 0, 5,30,45, 4,28,52, 6,59,66, 6,49,50, 5,30,44,
- 6,49,49, 5,30,36, 5,30,43, 5,30,35, 6,49,52, 6,49,48, 5,30,41, 5,30,42,
- 4,28,53, 5,30,39, 6,49,41, 6,49,44, 0, 0, 0,15,25,87, 0, 0, 0, 6,49,51,
- 6,49,45,15,32,70,15,32,71,15,32,72,15,32,74,15,32,75,15,32,76,15,32,77,
- 15,32,78,15,32,79,15,32,80,15,32,81,15,32,82,15,32,83, 0, 0, 0, 6,49,47,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,30,46, 5,30,40, 5,30,37, 0, 0, 0, 5,37, 9, 5,37, 8, 5,37, 7,
- 6,59,60, 4,34,60, 6,59,68, 6,59,70, 6,59,65, 5,37,10, 6,59,64, 5,37, 6,
- 6,59,71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,39,18,
- /* plane 2, page 20 */
- 0, 255, /* first, last */
- 15,39,19,15,39,20,15,39,21,15,39,22,15,39,23,15,39,25,15,39,26,15,39,27,
- 15,39,28, 6,59,61,15,39,24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,59,75, 0, 0, 0,
- 6,59,67, 6,59,51, 0, 0, 0,15,39,17, 4,34,58, 6,59,69, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,59,62, 0, 0, 0, 5,37, 5, 5,37,11, 7, 1,82,
- 4,41,20, 4,41,21, 7, 1,79, 4,41,22, 5,44,43, 5,44,44, 7, 1,75, 0, 0, 0,
- 7, 1,88, 4,41,23, 7, 1,87, 7, 1,84, 0, 0, 0,15,46, 1, 0, 0, 0, 0, 0, 0,
- 5,44,45, 5,44,47, 7, 1,71, 7, 1,85,15,45,92,15,45,93,15,46, 6,15,46, 7,
- 15,46, 8,15,46, 9,15,46,10,15,46,11,15,46,13, 0, 0, 0, 7, 1,76, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7, 1,77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 1,78,
- 5,44,81, 7, 1,83, 7, 1,81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 1,73,
- 0, 0, 0,15,45,94,15,46, 4, 0, 0, 0,15,46, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,44,46, 5,44,42, 5,44,40, 7, 1,72, 5,44,41, 0, 0, 0, 7,12,79, 7,12,81,
- 7,12,76, 4,47,87, 4,47,90, 4,47,89, 7,12,77, 0, 0, 0, 7,12,80, 0, 0, 0,
- 15,46,12, 0, 0, 0, 0, 0, 0,15,51,84,15,51,86,15,51,88, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,51,90, 7,12,82,
- 5,51,91, 5,51,89, 7,20,79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,12,83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,12,78,15,51,87,
- 4,47,86, 7,23,35, 4,53,93, 7,23,29, 5,59,14, 7,23,31, 7,23,36, 0, 0, 0,
- 7,23,34, 0, 0, 0, 7,23,37, 5,59,12, 0, 0, 0, 0, 0, 0, 7,12,84, 0, 0, 0,
- 0, 0, 0,15,57,68,15,57,69,15,57,70,15,57,71,15,57,72,15,57,73,15,57,74,
- 15,57,75, 7,30,76, 0, 0, 0, 7,23,32, 7,23,33, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4,53,94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,59,15,
- 7,31,20, 5,65,39, 7,23,30, 5,65,41, 7,31,19,15,62,39, 0, 0, 0,15,62,40,
- 15,62,41,15,62,43,15,62,45,15,62,46, 7,31,17, 7,31,18, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,59,16, 5,65,40, 0, 0, 0,15,66, 8, 5,65,42, 0, 0, 0, 0, 0, 0,
- 7,38,34, 7,38,31, 5,71,61, 7,38,39, 7,38,33,15,62,44, 0, 0, 0,15,66, 7,
- 0, 0, 0, 7,38,35, 7,38,38, 7,42,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,38,32, 7,31,21, 0, 0, 0, 4,67,19,15,69, 2,
- 0, 0, 0,15,69, 3,15,69, 4,15,69, 5, 7,45,46, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,75,87, 7,51, 8, 4,70,22, 7,51, 4, 7,51, 3, 7,51, 7, 7,51, 5, 0, 0, 0,
- 5,79,84,15,71,41,15,71,42,15,71,44, 7,51, 6,15,71,43, 0, 0, 0, 5,79,82,
- /* plane 2, page 21 */
- 1, 255, /* first, last */
- 5,79,83, 7,55,59, 0, 0, 0,15,73,29, 0, 0, 0, 0, 0, 0, 5,83,20,
- 7,55,61, 5,83,21, 7,59,43, 7,55,60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,62,55,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,87,55, 0, 0, 0, 5,91,63,
- 7,69,58, 7,70,34, 7,70,47, 6, 2,66, 0, 0, 0, 6,15,77, 6, 6,75, 6,10,50,
- 15, 9,94,15,10, 1, 5,12,68, 0, 0, 0, 6,22,34, 6,15,78, 6,22,33,15,14,66,
- 5,12,67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,30,22,15,19,66, 0, 0, 0, 6,39,50,
- 6,49,57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,49,56, 6,59,74, 6,68,90,
- 0, 0, 0, 6,59,72,15,39,29, 6,59,73, 7, 1,90, 7, 1,89, 7,12,85, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,31,22, 7,35,31, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,62,47, 7,31,23, 7,38,40, 7,38,41, 7,40,27, 0, 0, 0,
- 0, 0, 0, 7,55,62, 5, 1,15, 6, 2,67, 0, 0, 0, 6, 4,23, 6, 4,22, 0, 0, 0,
- 6, 6,76,15, 3,60, 6,22,35, 6,30,23, 6,30,24, 6,49,58, 6, 4,25, 6, 4,24,
- 5, 3,68, 5, 3,67, 4, 5,79, 6,10,51,15, 6,20, 0, 0, 0,15,14,67, 5,17,62,
- 6,30,25, 6,30,28, 5,12,69, 6,30,27, 6,30,26, 0, 0, 0, 5,30,47, 6,49,60,
- 0, 0, 0,15,32,84, 6,59,76,15,39,30, 6,59,77, 0, 0, 0, 5,44,48,15,46,15,
- 15,51,89, 7,12,86, 7,12,87, 7,23,38, 7,38,42, 7,31,26, 7,31,24, 7,31,25,
- 7,38,43, 7,45,47, 0, 0, 0, 0, 0, 0, 6, 2,68, 0, 0, 0, 6, 2,69, 0, 0, 0,
- 6, 4,26, 0, 0, 0, 6, 6,78, 6, 6,77, 0, 0, 0, 6,10,52, 0, 0, 0,15, 5,34,
- 0, 0, 0, 5, 8,63, 5,12,72, 4,12,21, 5,12,71, 6,22,38, 0, 0, 0, 6,22,37,
- 15,14,68,15,14,69, 6,22,39, 0, 0, 0, 5,12,73, 4,17, 4, 5,17,65, 6,30,29,
- 0, 0, 0, 0, 0, 0, 5,17,63, 5,17,64, 5,17,66,15,19,67, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,39,52, 5,23,30, 5,23,34, 5,23,32, 5,23,33,15,26, 7, 5,30,48,
- 6,49,61, 0, 0, 0, 5,30,50, 5,30,49, 6,49,63, 0, 0, 0, 4,34,65, 6,59,79,
- 6,59,80, 6,59,78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,37,12, 5,37,14, 7, 1,91,
- 0, 0, 0, 5,44,49, 0, 0, 0, 7,31,27, 0, 0, 0, 0, 0, 0, 5,59,17, 0, 0, 0,
- 5,59,18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,38,44, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6, 1,71, 6, 1,72,15, 1,24, 6, 2,70, 0, 0, 0, 0, 0, 0,
- 15, 1,51,15, 1,52, 0, 0, 0, 0, 0, 0, 5, 1,86, 6, 4,28, 4, 2,52, 6, 4,31,
- 6, 4,32, 6, 4,30, 6, 4,29,15, 1,75, 0, 0, 0, 4, 3,67, 4, 3,68, 0, 0, 0,
- 4, 3,70,15, 3,61,15, 3,62,15, 3,63,15, 3,64,15, 3,65,15, 3,66,15, 3,67,
- 6, 6,80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6,79, 0, 0, 0, 0, 0, 0, 4, 5,86,
- 5, 5,58, 4, 5,84, 6,10,53, 6,10,54, 4, 8,67, 6,10,60, 6,10,56, 6,10,57,
- /* plane 2, page 22 */
- 0, 254, /* first, last */
- 15, 6,22,15, 6,23, 6,10,58, 0, 0, 0, 6,10,59, 6,10,61, 4, 5,89, 0, 0, 0,
- 0, 0, 0, 6,10,55, 0, 0, 0, 6, 9,25, 4, 8,68, 4, 8,66, 5, 8,65, 5, 8,66,
- 5, 8,64, 0, 0, 0,15,10, 3, 0, 0, 0,15,10, 4,15,10, 5,15,10, 6,15,10, 8,
- 15,10, 9,15,10, 7,15,10, 2, 0, 0, 0, 0, 0, 0, 5,12,76, 0, 0, 0, 6,22,40,
- 6,22,43, 0, 0, 0, 5,12,74, 5,12,77,15,14,71,15,14,72,15,14,73, 0, 0, 0,
- 0, 0, 0, 6,22,42, 0, 0, 0, 4,12,23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,12,75, 0, 0, 0, 5,17,68,15,14,70, 4,12,22, 6,30,33, 6,30,36, 3,20,94,
- 6,30,30, 6,30,35, 6,30,32, 6,30,37, 6,30,31,15,19,68, 0, 0, 0,15,19,69,
- 0, 0, 0, 4,17, 7, 0, 0, 0, 0, 0, 0, 5,17,67, 0, 0, 0, 0, 0, 0, 4,28,62,
- 6,39,56, 6,39,59, 6,39,61, 0, 0, 0, 6,39,58,15,26, 8, 6,39,53, 6,39,60,
- 5,23,35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,39,57, 4,22,90, 4,22,88,
- 5,23,36, 0, 0, 0, 6,39,55, 0, 0, 0, 6,49,64, 6,49,65, 0, 0, 0, 0, 0, 0,
- 4,28,61, 0, 0, 0,15,32,86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,30,51, 5,30,52, 5,30,53, 6,59,82, 4,34,67, 5,37,15, 4,34,66,15,39,31,
- 15,39,32,15,39,33, 6,59,81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,37,16, 4,41,24,
- 7, 2, 2, 7, 1,92, 7, 2, 1, 7,12,92, 7, 1,94, 5,44,51,15,46,17,15,46,18,
- 7, 1,93, 4,34,68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,44,50, 7,12,93, 5,51,92,
- 7,12,88, 7,12,89, 4,54, 1,15,51,90, 7,12,90, 0, 0, 0, 0, 0, 0, 7,23,40,
- 7,23,39, 5,59,19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,54,14, 4,58,91,
- 15,66, 9, 0, 0, 0, 0, 0, 0, 5,75,88, 7,51, 9, 0, 0, 0,15,73,30, 0, 0, 0,
- 5,85,72, 0, 0, 0, 0, 0, 0,15,75,36, 7,62,56,15,76,63, 0, 0, 0, 0, 0, 0,
- 5, 1,66, 0, 0, 0,15, 1,53,15, 1,54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4,33,
- 4, 2,56, 6, 4,34,15, 2,25,15, 2,26,15, 2,27,15, 2,28, 0, 0, 0, 0, 0, 0,
- 4, 2,55, 5, 2,43, 6, 4,35, 5, 2,42, 6, 6,84, 4, 3,72, 4, 3,75,15, 3,68,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 3,70,15, 3,72,15, 3,73,15, 3,75,15, 3,76,
- 15, 3,77,15, 3,78,15, 3,79,15, 3,69, 0, 0, 0, 6, 6,82, 6, 6,83, 0, 0, 0,
- 6, 6,85, 0, 0, 0, 6, 6,81,15, 3,74, 0, 0, 0,15, 3,71, 5, 3,70, 5, 3,71,
- 5, 3,69, 4, 5,92, 6,10,65, 6,10,64, 5, 5,64, 4, 5,90, 5, 5,62, 4, 5,93,
- 5, 5,59, 5, 5,60, 4, 5,94, 0, 0, 0, 0, 0, 0,15, 6,26, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15, 6,27,15, 6,30,15, 6,31,15, 6,32,15, 6,33,15, 6,34,15, 6,35,
- 15, 6,37,15, 6,38,15, 6,39,15, 6,40,15, 6,41, 0, 0, 0, 0, 0, 0, 6,10,63,
- 0, 0, 0, 6,10,62,15, 6,36,15, 6,28,15, 6,29, 5, 5,66, 5, 5,63,
- /* plane 2, page 23 */
- 0, 255, /* first, last */
- 5, 5,67, 5, 5,65, 4, 8,72, 5, 8,68, 6,15,86, 6,15,88, 6,15,89, 4, 8,69,
- 4, 8,75, 5, 8,70, 4, 8,70, 5, 8,67, 6,15,80, 6,15,91, 6,15,84, 5, 8,75,
- 0, 0, 0, 6,15,94,15,10,13,15,10,14,15,10,15,15,10,16,15,10,17,15,10,18,
- 15,10,19,15,10,20, 0, 0, 0, 6,15,83, 6,15,87, 4, 8,76, 0, 0, 0, 6,15,85,
- 6,15,90, 6,15,79, 0, 0, 0, 6,15,93, 0, 0, 0, 5, 8,73, 4, 8,74, 5, 8,74,
- 5, 8,71, 6,15,81, 6,15,92, 5, 8,69, 5, 8,72, 6,15,82, 3,16,51, 5,12,80,
- 6,22,47, 5,12,82, 5,12,85, 5,12,79, 6,22,53, 5,12,78, 6,22,54, 0, 0, 0,
- 6,22,48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,22,49,15,14,76,15,14,78,
- 15,14,80,15,14,81,15,14,83,15,14,84,15,14,85,15,14,86,15,14,87,15,14,89,
- 0, 0, 0, 0, 0, 0, 6,22,52, 0, 0, 0, 6,22,46, 5,12,81, 0, 0, 0, 6,22,51,
- 0, 0, 0, 6,22,50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,14,79,
- 15,14,82, 5,12,87, 5,12,84, 5,12,83, 5,12,86, 5,12,88, 6,30,44, 6,30,50,
- 6,30,38, 6,30,39, 5,17,74, 6,30,40, 6,30,41, 6,30,47, 5,17,73, 5,17,77,
- 6,30,45, 4,17,11, 6,30,46, 5,17,75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,30,51, 0, 0, 0, 0, 0, 0,15,19,72,15,19,73,15,19,74,
- 15,19,75,15,19,76,15,19,77,15,19,78,15,19,79,15,19,81,15,19,82,15,19,84,
- 15,19,85,15,19,86,15,19,87,15,19,88,15,19,89,15,19,90,15,19,91,15,19,92,
- 15,19,93,15,19,94,15,20, 1,15,20, 2,15,20, 3, 0, 0, 0,15,19,80, 0, 0, 0,
- 6,30,49, 4,17,10, 0, 0, 0, 6,30,43, 6,30,42, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,17,70, 5,17,71, 5,17,72, 5,17,69, 4,22,91, 6,39,66, 4,22,92, 5,23,58,
- 6,39,63, 4,23, 1, 5,23,40, 5,23,57, 6,39,68, 0, 0, 0, 6,39,70, 5,23,47,
- 6,39,69, 6,39,64, 5,23,48, 5,23,41, 5,23,55, 5,23,52, 5,23,39, 5,23,43,
- 15,26, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,26,11,15,26,12,
- 15,26,13,15,26,14,15,26,15,15,26,16,15,26,18,15,26,19,15,26,20,15,26,22,
- 15,26,23,15,26,24,15,26,25,15,26,26,15,26,30,15,26,31,15,26,33,15,26,34,
- 15,26,35,15,26,36,15,26,37, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,26,27, 0, 0, 0,
- 0, 0, 0, 5,23,54, 0, 0, 0, 0, 0, 0, 6,39,67, 5,23,56, 6,39,62, 0, 0, 0,
- 0, 0, 0,15,26,29,15,26,32,15,26,17,15,26,10, 5,23,37, 5,30,54, 5,23,51,
- 5,23,44, 5,23,50, 5,23,49, 5,23,42, 5,23,45, 5,23,53, 6,39,71,15,19,71,
- 5,30,63, 5,30,58, 5,30,61, 5,30,55, 4,28,69, 5,30,57, 6,49,67, 4,28,66,
- 4,28,64, 6,49,71, 6,49,69, 6,59,92, 5,30,60, 0, 0, 0, 0, 0, 0, 5,30,59,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,49,70,15,32,88,15,32,89,
- /* plane 2, page 24 */
- 0, 255, /* first, last */
- 15,32,90,15,32,92,15,32,93,15,32,94,15,33, 2,15,33, 3, 0, 0, 0, 0, 0, 0,
- 6,49,66, 0, 0, 0, 0, 0, 0, 6,49,68, 0, 0, 0, 0, 0, 0,15,32,87, 0, 0, 0,
- 6,49,72, 5,30,56, 5,30,62, 5,30,64, 6,49,74,15,33, 1, 0, 0, 0, 4,34,80,
- 0, 0, 0, 5,37,18, 4,34,74, 6,59,91, 4,34,81, 6,59,83, 5,37,20, 7, 2, 9,
- 4,34,83, 0, 0, 0, 6,59,85, 0, 0, 0,15,39,40, 4,34,79, 5,37,23, 4,34,78,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,39,39,15,39,41,15,39,42,15,39,43,15,39,44,
- 15,39,45,15,39,46,15,39,47,15,39,48,15,39,49,15,39,50,15,39,52, 6,59,84,
- 6,59,88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,34,82, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,34,69, 6,59,86, 0, 0, 0,15,39,51, 0, 0, 0, 0, 0, 0,
- 5,37,19, 5,37,22, 5,37,21, 7, 2, 6, 5,37,17, 6,59,87, 0, 0, 0, 5,44,59,
- 5,44,57, 4,41,25, 5,44,54, 7, 2,15, 5,44,55, 4,41,31, 4,41,27, 7, 2,12,
- 0, 0, 0, 4,41,30, 7, 2, 5, 6,59,89, 7, 2, 4,15,46,26, 0, 0, 0, 7,23,49,
- 15,39,37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,44,52, 0, 0, 0, 0, 0, 0,
- 5,44,60,15,46,19,15,46,20,15,46,21,15,46,22,15,46,23,15,46,24,15,46,25,
- 15,46,27,15,46,29,15,46,30,15,46,31,15,46,32,15,46,33,15,46,34,15,46,36,
- 0, 0, 0, 6,59,90, 0, 0, 0, 0, 0, 0, 7, 2, 7, 7, 2,14, 7, 2,13, 7, 2, 8,
- 0, 0, 0, 0, 0, 0, 7, 2, 3,15,46,37,15,46,35,15,46,28, 5,44,58, 5,44,53,
- 4,41,29, 7, 2,10, 5,44,56, 7, 2,11, 0, 0, 0,15,52, 5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,52, 8, 5,52, 3, 7,13, 5, 7,12,94, 5,52, 9, 5,52, 6, 7,13, 1,
- 4,47,94, 7,13, 8, 5,52, 2, 7,13,11, 5,51,93, 7,13,10, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,13,12,15,51,91,15,51,92,15,51,93,15,51,94,
- 15,52, 2,15,52, 3,15,52, 4,15,52, 6,15,52, 7,15,52,11,15,52,12, 0, 0, 0,
- 0, 0, 0, 5,51,94, 7,13, 6, 0, 0, 0, 7,13, 7, 7,13, 3, 0, 0, 0, 7,13, 2,
- 7,13, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,52, 1,15,52, 8,
- 5,52, 7, 5,52, 1, 5,52, 5, 7,13, 9, 0, 0, 0, 7,23,43, 7,23,52, 7,23,47,
- 4,47,93, 7,23,45, 0, 0, 0, 4,54, 3, 7,23,51, 7,23,42, 5,59,22, 5,59,20,
- 7,23,44, 7,23,46, 7,23,48, 0, 0, 0, 5,59,21, 4,54, 5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,57,76,15,57,77,15,57,78,15,57,79,15,57,80,15,57,81,
- 0, 0, 0, 7,23,50, 0, 0, 0, 0, 0, 0, 7,23,53, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,23,41, 5,65,43, 4,58,92, 0, 0, 0, 7,31,31, 5,65,44, 5,65,45,
- 7,31,30, 7,31,32,15,62,48,15,62,49,15,62,50,15,62,52, 0, 0, 0, 7,31,29,
- 7,31,33, 0, 0, 0,15,62,51, 0, 0, 0, 7,31,28, 5,71,63, 4,63,51, 7,38,45,
- /* plane 2, page 25 */
- 0, 251, /* first, last */
- 7,38,50, 7,38,48,15,62,53, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,66,10,15,66,11,
- 7,38,46, 0, 0, 0, 0, 0, 0, 5,71,65, 5,71,64,15,63,83, 0, 0, 0, 7,45,49,
- 0, 0, 0, 0, 0, 0, 5,75,89, 0, 0, 0, 0, 0, 0,15,69, 6, 5,75,90, 5,75,91,
- 7,51,10, 5,79,86, 7,51,11, 5,79,85,15,71,45,15,71,46, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,55,66, 5,83,22, 7,55,65, 7,55,67, 7,55,63,15,73,31, 0, 0, 0,
- 7,55,64, 7,55,68,15,73,32, 5,85,73, 7,59,44, 0, 0, 0, 7,62,58, 7,62,59,
- 15,75,37, 7,62,57, 7,62,60, 0, 0, 0,15,76, 4, 0, 0, 0, 5,89, 4,15,76,42,
- 0, 0, 0, 7,67,45, 5,90,69, 0, 0, 0, 4, 1,19, 0, 0, 0, 6, 2,72, 5, 1,67,
- 6, 2,73,15, 1,56,15, 1,55, 6, 4,37, 0, 0, 0, 6, 4,36, 6, 6,86, 6, 6,87,
- 5, 3,74, 4, 3,76,15, 3,80, 0, 0, 0, 0, 0, 0, 5, 3,73, 4, 8,79, 6,16, 4,
- 6,10,67, 6,10,66,15, 6,42,15, 6,43,15, 6,44,15, 6,45,15, 6,47, 6,10,68,
- 15, 6,46, 0, 0, 0, 0, 0, 0, 6,16, 3, 6,16, 1, 6,16, 6, 6,16, 5, 0, 0, 0,
- 0, 0, 0,15,10,21,15,10,22,15,10,23, 0, 0, 0, 0, 0, 0, 6,16, 2, 0, 0, 0,
- 6,22,57, 5,12,89, 6,22,56,15,14,90,15,14,91, 5,12,90,15,19,70,15,20, 4,
- 15,20, 5,15,20, 6,15,20, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,23,60, 6,39,73,
- 0, 0, 0, 5,23,59, 6,39,74,15,26,39, 0, 0, 0, 6,39,72,15,26,38, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,28,70, 4,28,72, 6,49,77, 5,30,66,15,33, 5,
- 0, 0, 0,15,33, 6, 0, 0, 0, 6,49,75, 6,49,76, 0, 0, 0, 5,30,65, 4,28,73,
- 0, 0, 0, 6,59,93,15,39,53,15,39,54, 0, 0, 0, 5,37,24, 0, 0, 0, 4,41,33,
- 4,41,34, 0, 0, 0,15,46,38, 0, 0, 0, 0, 0, 0, 5,44,61, 7,13,15, 7,13,14,
- 7,13,17, 7,13,18, 5,52,10, 7,13,16,15,52,13,15,52,14, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,23,54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,45,50, 0, 0, 0,15,66,12,
- 15,66,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,75,92, 0, 0, 0, 0, 0, 0,
- 15,76,64, 6, 1,73, 0, 0, 0, 0, 0, 0, 5, 1,68, 6, 4,38, 6, 4,41, 6, 4,42,
- 0, 0, 0, 0, 0, 0, 4, 2,58,15, 2,29,15, 2,30,15, 2,31,15, 2,32,15, 2,33,
- 6, 4,39, 0, 0, 0, 0, 0, 0, 6, 6,94, 6, 6,93, 4, 3,78, 6, 6,91, 6, 6,92,
- 0, 0, 0,15, 3,82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5,69, 5, 5,68,
- 6,10,70, 5, 5,70, 6,10,71, 0, 0, 0, 6,10,72,15, 6,49,15, 6,50,15, 6,52,
- 15, 6,53, 0, 0, 0, 6,10,69,15, 6,51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 8,76, 6,16, 8, 6,16,10, 5, 8,77, 4, 8,81, 4, 8,82, 4, 8,83,
- 6,16,11, 6,16, 7, 0, 0, 0, 0, 0, 0, 6,16, 9,15,10,24,15,10,26,15,10,27,
- 15,10,28, 0, 0, 0, 6,16,12, 6,16,13,
- /* plane 2, page 26 */
- 0, 255, /* first, last */
- 4,12,42, 6,22,65, 4,12,37, 4,12,36, 4,12,35, 4,12,39, 6,22,68, 6,22,69,
- 6,22,63, 6,22,62, 5,12,93, 0, 0, 0, 0, 0, 0, 5,13, 2, 6,22,59, 6,22,66,
- 15,14,92,15,14,93, 0, 0, 0, 6,22,64, 6,22,67, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,22,58, 0, 0, 0, 6,22,60, 5,13, 1,
- 5,12,94, 0, 0, 0, 4,17,13, 5,17,79, 6,30,55, 6,30,57, 6,30,56, 6,30,54,
- 6,30,59, 5,17,80,15,20, 8,15,20, 9,15,20,10,15,20,11,15,20,12,15,20,13,
- 15,20,14,15,20,15, 0, 0, 0, 0, 0, 0, 4,17,15, 0, 0, 0, 6,30,60, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,17,78, 6,30,53, 5,23,62, 4,23, 6, 5,23,65,
- 6,39,80, 6,39,75, 4,23, 3, 5,23,61, 5,23,64, 6,39,78, 4,23, 5, 5,23,63,
- 6,39,79, 6,39,76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,26,40,15,26,41,
- 15,26,42,15,26,43,15,26,44,15,26,45,15,26,46,15,26,47, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,39,77, 0, 0, 0, 5,23,66, 0, 0, 0, 0, 0, 0,15,29,76, 6,49,84,
- 6,49,80, 4,28,75, 4,28,80, 5,30,67, 6,49,87, 5,30,68, 6,49,82, 6,49,81,
- 6,49,86, 4,28,77, 6,49,83, 0, 0, 0, 6,49,79, 6,49,85,15,33, 7,15,33, 8,
- 15,33, 9,15,33,10,15,33,12,15,33,13,15,33,14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,49,78, 6,59,94, 6,60, 7, 5,37,28, 5,37,26, 6,60, 4,
- 6,60,12, 4,34,86, 6,60,14, 6,60,11, 6,60, 6, 5,37,25, 7, 2,19, 0, 0, 0,
- 15,39,55,15,39,56,15,39,57,15,39,58, 0, 0, 0, 0, 0, 0, 6,60, 8, 6,60, 5,
- 6,60, 9, 0, 0, 0, 0, 0, 0, 6,60,13, 6,60, 1, 0, 0, 0, 6,60, 3, 5,37,27,
- 6,60,10, 0, 0, 0,15,39,36, 6,66,71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2,16,
- 5,44,62, 4,41,39, 7, 2,23, 4,41,40, 7, 2,21, 7, 2,18, 0, 0, 0,15,46,39,
- 15,46,40,15,46,41,15,46,42,15,46,43,15,46,44,15,46,46,15,46,47, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2,24, 0, 0, 0, 7, 2,22,15,46,45,
- 5,44,65, 0, 0, 0, 5,44,63, 0, 0, 0, 7, 2,17, 5,44,64, 7,13,21, 7,13,23,
- 5,52,12, 4,48, 2, 5,52,13, 5,52,11, 7,13,22, 7,13,19, 7,13,20,15,52,15,
- 15,52,16,15,52,17,15,52,19,15,52,20,15,52,21,15,52,22,15,52,23, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,23,57, 7,23,55, 5,59,24,15,57,82,15,57,83,15,57,84,
- 15,57,85, 0, 0, 0, 7,23,56, 7,23,58, 7, 2,20, 5,59,23, 7,38,56, 5,65,46,
- 15,57,86, 0, 0, 0,15,62,54,15,62,55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,31,34,15,66,14, 0, 0, 0, 4,63,55, 7,38,51, 7,38,53, 4,63,54,
- 7,38,55, 7,38,54,15,66,15, 7,38,52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,67,22,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,45,51, 7,51,12, 4,70,24, 7,51,13,15,71,47,
- /* plane 2, page 27 */
- 0, 252, /* first, last */
- 15,71,48, 0, 0, 0, 0, 0, 0, 7,51,14, 5,83,24, 4,72,70, 7,55,69, 5,83,23,
- 0, 0, 0, 0, 0, 0, 7,55,70, 0, 0, 0, 4,74,37, 4,75,71, 0, 0, 0,15,75,38,
- 0, 0, 0, 7,64,76, 7,68,37, 5,89, 5,15,76, 5, 0, 0, 0, 4,77,52, 0, 0, 0,
- 5,90, 7, 4,77,81, 7,67,46, 7,69,20, 0, 0, 0, 6, 1,74, 0, 0, 0, 6,10,74,
- 6,10,73, 0, 0, 0,15, 6,54,15, 6,55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8,79,
- 6,16,14,15,10,29, 6,16,17, 0, 0, 0, 6,16,15, 0, 0, 0, 4,17,17, 6,35,71,
- 6,30,62, 6,30,61, 0, 0, 0, 4,23, 7, 6,30,63, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,49,90, 6,49,88, 6,49,89, 0, 0, 0, 6,60,16, 4,36, 6,15,39,59,
- 0, 0, 0, 6,60,17, 5,37,29, 0, 0, 0, 0, 0, 0,15,46,49, 7, 2,26, 0, 0, 0,
- 7, 2,25, 0, 0, 0, 7,13,25, 5,51,50, 7,13,24, 7,23,59, 7,23,60, 0, 0, 0,
- 5,65,47, 7,38,57, 7,45,52, 7,51,15, 0, 0, 0, 6, 1,75,15, 1,25, 0, 0, 0,
- 0, 0, 0, 6, 4,44, 5, 2,44, 0, 0, 0, 0, 0, 0, 6, 7, 4, 4, 3,82, 6, 7, 3,
- 6, 7, 2,15, 3,83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5,71, 0, 0, 0, 0, 0, 0,
- 15, 6,56, 6,10,75, 6,16,18, 6,16,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,16,19,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8,80, 4,12,43,15,15, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,22,73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,30,65, 5,17,81, 5,23,67,
- 6,30,67, 6,30,64, 6,30,66,15,20,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,39,81,15,26,48,
- 6,39,83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,39,82, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,30,69, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,33,15, 5,37,30, 6,60,19,
- 0, 0, 0, 6,60,18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,44,66, 7, 2,27,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,52,15, 7,13,26, 0, 0, 0, 0, 0, 0,15,57,87, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,65,48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,79,87,
- 0, 0, 0, 0, 0, 0, 4, 1,42,15, 1,26, 5, 1,69,15, 1,45,15, 1,58, 0, 0, 0,
- 0, 0, 0, 6, 2,75, 6, 2,74, 0, 0, 0, 0, 0, 0, 5, 2,45,15, 2,35, 5, 3,76,
- 4, 3,83, 0, 0, 0, 5, 5,72, 0, 0, 0, 6, 7, 5, 0, 0, 0, 5, 3,75, 0, 0, 0,
- 5, 3,78, 5, 3,77, 0, 0, 0, 6,16,20, 5, 5,73, 6,10,76, 5, 5,75,15, 6,57,
- 6,16,21, 5, 5,74, 5, 8,81, 6,16,23, 0, 0, 0, 6,16,24, 5, 8,82, 6,16,25,
- 5,13, 3, 6,22,76, 6,22,74, 0, 0, 0, 5,13, 4, 6,22,75, 6,22,77,15,15, 2,
- 0, 0, 0, 0, 0, 0, 6,30,70, 5,17,82, 4,17,20, 5,17,84, 6,39,86, 6,39,84,
- 6,39,85, 0, 0, 0, 4,23,10, 6,39,87,15,26,49,
- /* plane 2, page 28 */
- 2, 255, /* first, last */
- 6,49,91, 6,49,93, 6,49,92, 0, 0, 0, 0, 0, 0, 5,40, 6,
- 0, 0, 0, 4,34,90, 6,60,20, 5,37,32, 5,37,31, 6,60,21, 5,37,33, 0, 0, 0,
- 7,13,29, 7, 2,30, 7, 2,29, 0, 0, 0, 7, 2,28, 7,13,27, 5,52,16, 7,13,28,
- 7,13,30,15,52,24, 0, 0, 0, 0, 0, 0, 7,23,61, 4,70,25, 0, 0, 0, 0, 0, 0,
- 4,72,71, 0, 0, 0, 5,89, 6, 6, 1,30, 4, 1,85, 4, 1,84, 6, 2,76, 0, 0, 0,
- 0, 0, 0, 6, 4,45, 4, 2,62, 5, 2,46, 6, 4,46, 6, 4,48, 6, 4,49, 6, 4,47,
- 15, 2,36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 9,15, 3,84,
- 6, 7, 7, 0, 0, 0, 6, 7, 6, 0, 0, 0, 6, 7, 8, 5, 3,79, 4, 6,12, 4, 6,11,
- 6,10,77, 6,10,78, 5, 5,76, 6,10,79,15, 6,59, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5,77, 4, 8,87, 6,16,26, 6,16,31, 4, 8,90,
- 4, 8,86, 5, 8,85, 6,16,30, 6,16,29, 6,16,28, 6,16,27, 0, 0, 0,15,10,32,
- 15,10,33,15,10,34,15,10,35,15,10,36, 0, 0, 0,15,10,31, 0, 0, 0, 0, 0, 0,
- 6,16,32, 5, 8,84, 6,22,82, 4,12,48, 6,22,79, 4,12,47, 6,30,71, 6,22,80,
- 6,22,78, 0, 0, 0,15,15, 3,15,15, 4,15,15, 6,15,15, 7,15,15, 8, 0, 0, 0,
- 5,13, 6, 5,13, 7, 6,22,81, 0, 0, 0, 6,22,83, 0, 0, 0, 0, 0, 0, 5,13, 5,
- 0, 0, 0, 6,22,84, 6,30,77, 6,30,73, 5,17,88, 5,17,90, 5,17,87, 5,17,89,
- 5,17,86, 5,17,91, 6,30,80, 6,30,74,15,20,17,15,20,18,15,20,21,15,20,22,
- 15,20,23,15,20,24,15,20,25,15,20,26, 6,30,72, 0, 0, 0, 6,30,76, 0, 0, 0,
- 0, 0, 0, 6,30,79, 6,30,78,15,20,19, 6,40, 3, 6,40, 4, 6,40, 2, 4,23,12,
- 6,39,94, 6,39,90, 5,23,68, 4,23,13, 5,23,69, 6,39,89, 6,39,88, 6,40, 5,
- 6,40, 1, 6,40, 6, 0, 0, 0, 6,39,92, 0, 0, 0, 0, 0, 0,15,26,50,15,26,51,
- 15,26,52, 6,39,93, 4,23,14, 0, 0, 0, 6,50, 3, 5,30,73, 5,30,71, 6,50, 6,
- 5,30,72, 6,50, 5, 6,50, 9, 6,50, 1, 6,49,94, 6,50, 7, 6,50, 4, 0, 0, 0,
- 15,33,16,15,33,17,15,33,18, 6,50, 2, 0, 0, 0, 0, 0, 0, 6,50, 8, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,30,70, 0, 0, 0, 4,34,92, 4,34,94, 4,34,91, 6,60,24,
- 6,60,22, 6,60,23,15,39,61, 0, 0, 0, 0, 0, 0, 6,60,25, 0, 0, 0, 5,37,34,
- 7, 2,32, 5,44,70, 0, 0, 0,15,46,50,15,46,51,15,46,52,15,46,53,15,46,54,
- 5,44,69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,44,68, 7,13,32,
- 7,13,31, 7, 2,31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,52,25, 7,16,13,
- 7,23,62, 0, 0, 0, 0, 0, 0, 7,31,35, 4,63,56, 5,71,66, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,69, 7,15,69, 8, 0, 0, 0, 5,75,93, 0, 0, 0, 0, 0, 0,15,71,49,
- 5,83,26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 1,16, 6, 1,76,
- /* plane 2, page 29 */
- 0, 255, /* first, last */
- 6, 2,77, 6, 4,52, 6, 4,51, 0, 0, 0, 6, 4,50, 5, 2,47, 4, 3,85, 0, 0, 0,
- 6, 7,10, 0, 0, 0, 0, 0, 0, 4, 6,13, 6,10,81, 6,10,80, 5, 8,87, 6,16,34,
- 0, 0, 0, 6,16,35, 5, 8,86, 6,16,36, 0, 0, 0, 6,22,87, 6,22,88, 6,22,86,
- 6,21, 8, 6,22,85, 0, 0, 0, 6,30,81, 6,30,82, 6,40, 8, 5,23,71, 6,40, 9,
- 0, 0, 0, 6,40, 7, 0, 0, 0,15,26,53, 6,50,10, 6,60,26, 7, 2,33, 7,13,33,
- 7, 2,34, 7, 2,35, 0, 0, 0, 7,51,16, 7,62,61, 5, 1,37, 0, 0, 0, 5, 1,38,
- 6, 2,80, 6, 2,78, 6, 2,82, 6, 2,81, 0, 0, 0,15, 1,60,15, 1,61,15, 1,62,
- 6, 2,83, 0, 0, 0, 0, 0, 0, 5, 1,70, 6, 2,79, 0, 0, 0, 0, 0, 0, 6, 4,55,
- 6, 4,53, 6, 4,57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3,57,15, 2,37,
- 15, 2,38, 0, 0, 0, 6, 4,54, 5, 2,51, 0, 0, 0, 0, 0, 0, 6, 4,58, 6, 4,56,
- 0, 0, 0, 5, 2,50, 0, 0, 0, 6, 7,14, 5, 3,81, 5, 3,88, 5, 3,89, 6, 7,16,
- 5, 3,86, 5, 3,85, 5, 3,87, 5, 3,82, 5, 3,83, 6, 7,17, 6, 7,12, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7,18,15, 3,86, 0, 0, 0,15, 3,87,15, 3,89,
- 15, 3,90,15, 3,91,15, 3,94,15, 4, 1, 0, 0, 0, 0, 0, 0, 6, 7,13, 0, 0, 0,
- 6, 7,15, 4, 3,93, 0, 0, 0,15, 3,93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6, 7,20, 6, 7,19, 0, 0, 0, 4, 3,92, 0, 0, 0, 6, 7,11, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 3,90, 4, 6,16, 5, 5,85, 6,10,85, 4, 6,19, 6,10,82,
- 5, 5,83, 5, 5,84, 6,10,90, 5, 5,81, 6,10,87, 6,10,92, 5, 5,79, 6,10,89,
- 5, 5,82, 5, 5,80, 6,10,84, 6, 7,21,15, 6,60,15, 6,61,15, 6,62,15, 6,63,
- 15, 6,64,15, 6,65,15, 6,67,15, 6,68, 0, 0, 0,15, 6,69,15, 6,70,15, 6,71,
- 15, 6,72, 0, 0, 0, 6,10,88, 0, 0, 0, 6,13,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,10,83, 5, 5,86, 6,16,48, 6,16,42, 5, 8,88, 6,16,43, 5, 8,89,
- 4, 8,94, 5, 8,90, 0, 0, 0, 6,16,38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,16,41, 6,16,50, 0, 0, 0,15,10,37,15,10,39,15,10,40,15,10,43,15,10,44,
- 15,10,45,15,10,46,15,10,47,15,10,48,15,10,49, 6,16,45, 6,16,37, 6,16,39,
- 0, 0, 0, 6,16,49, 0, 0, 0, 0, 0, 0, 6,16,47, 0, 0, 0, 0, 0, 0, 6,16,44,
- 15,10,42,15,10,38, 6,16,40, 5, 8,91, 4, 8,92, 5,13,12, 5,13, 9, 4,12,50,
- 4,12,57, 5,13,10, 6,23, 1, 4,12,56, 5,13,20, 5,13,16, 5,13,11, 6,22,93,
- 5,13,17, 5,13,13, 5,13,15, 6,23, 4, 6,22,94, 4,12,66, 6,22,89, 4,12,67,
- 4,12,54, 6,23, 5, 6,23, 2, 0, 0, 0, 0, 0, 0, 6,23, 3, 6,22,91,15,15, 9,
- 15,15,10,15,15,11,15,15,12,15,15,13,15,15,14,15,15,15,15,15,17,15,15,19,
- 5,13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,15,16,
- /* plane 2, page 30 */
- 2, 254, /* first, last */
- 15,15,18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,13,19, 4,12,61, 5,13,21, 0, 0, 0, 5,13,22, 0, 0, 0, 5,13,18, 0, 0, 0,
- 6,27,46, 4,17,26, 6,31,11, 6,31, 4, 6,31, 6, 4,17,28, 4,17,30, 5,17,94,
- 6,30,89, 6,31, 2, 6,30,91, 5,18, 8, 4,17,24, 0, 0, 0, 6,31, 7, 6,31,12,
- 6,31, 9, 6,30,84, 6,31,10, 4,17,32, 4,17,27, 5,17,92, 5,18, 6, 6,30,83,
- 4,17,22, 5,17,93, 5,18, 4, 0, 0, 0, 6,31, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,31, 3,15,20,27, 0, 0, 0,
- 15,20,28,15,20,29,15,20,30,15,20,32,15,20,33,15,20,34,15,20,35,15,20,36,
- 15,20,38,15,20,39,15,20,40, 6,30,87, 0, 0, 0, 0, 0, 0, 6,18,10, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,30,93, 6,30,92, 0, 0, 0, 6,30,94, 0, 0, 0, 6,31, 1,
- 0, 0, 0, 0, 0, 0, 6,31, 5, 0, 0, 0, 4,17,31, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,18, 9, 5,18, 1, 5,18, 7, 5,18, 3, 0, 0, 0, 5,18, 2,
- 5,18, 5, 5,18,10, 5,23,73, 6,40,19, 5,23,78, 6,40,10, 6,40,20, 5,23,79,
- 5,23,76, 0, 0, 0, 5,23,75, 4,23,16, 0, 0, 0, 5,23,80, 5,23,74, 5,23,81,
- 5,23,82, 5,23,84, 6,40,14, 6,30,90, 4,23,17, 6,40,15, 5,23,77, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,23,19, 0, 0, 0,
- 5,23,72, 0, 0, 0, 5,23,83,15,26,54,15,26,56,15,26,57,15,26,58,15,26,59,
- 0, 0, 0, 0, 0, 0, 6,40,13, 0, 0, 0, 5,23,85, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,40,18, 6,40,12, 0, 0, 0, 0, 0, 0, 6,40,17, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,40,16, 0, 0, 0, 0, 0, 0,15,26,60, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,30,80, 6,50,13, 5,30,76, 4,28,90, 5,30,81,
- 6,50,14, 6,60,27, 4,28,93, 6,50,21, 5,30,74, 5,30,83, 6,50,11, 5,30,79,
- 0, 0, 0, 6,50,12, 6,50,25, 6,50,16, 6,50,24, 5,30,78, 6,50,22, 6,60,32,
- 15,33,23, 5,30,82,15,33,19,15,33,20,15,33,22,15,33,24,15,33,25, 6,50,26,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,50,18, 0, 0, 0, 6,50,23, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,30,75, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,33,21, 0, 0, 0, 6,50,15,
- 5,37,35, 5,37,43, 5,37,41, 6,60,33, 6,60,28, 4,35,11, 4,35, 6, 4,35, 5,
- 5,37,36, 5,37,40, 5,37,39, 5,37,42, 5,37,46, 6,60,30, 6,60,39, 5,37,45,
- 5,37,37, 5,37,38, 6,60,34, 0, 0, 0, 4,35, 9, 6,60,38, 4,35, 7, 4,35, 3,
- 5,37,44, 6,60,37, 6,60,35, 0, 0, 0, 6,60,31, 4,35, 8,15,39,62,15,39,63,
- 15,39,64,15,39,65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,50,17,
- /* plane 2, page 31 */
- 10, 255, /* first, last */
- 4,41,46, 7, 2,41, 4,41,50, 7, 2,37, 5,44,73, 0, 0, 0,
- 7, 2,48, 7, 2,42, 5,44,78, 5,44,71, 7, 2,39, 7, 2,49, 5,44,79, 7, 2,47,
- 7, 2,44, 7, 2,45, 5,44,80, 5,44,74, 5,44,77, 7,13,36, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2,38,15,46,55,15,46,56,
- 15,46,57,15,46,59,15,46,60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2,36,
- 7, 2,43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2,46, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,44,75, 0, 0, 0, 7, 2,40, 4,41,49, 5,52,19, 4,48, 3,
- 7,13,42, 4,48, 4, 5,52,21, 7,13,34, 5,52,24, 5,52,20, 5,52,17, 7,13,39,
- 7,13,35, 5,59,25, 5,52,18, 0, 0, 0,15,52,26,15,52,27,15,52,28, 0, 0, 0,
- 7,13,37, 0, 0, 0, 0, 0, 0, 7,13,41, 7,13,40, 7,13,43, 0, 0, 0, 0, 0, 0,
- 7,13,38, 0, 0, 0, 7,13,45, 5,52,23, 4,54, 9, 5,59,27, 5,65,53, 7,23,64,
- 5,59,31, 7,23,70, 0, 0, 0, 5,59,26, 7,23,66, 7,23,68, 7,23,65, 5,59,29,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,23,63, 7,23,69,15,57,89,15,57,90,
- 15,57,91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,54,10, 0, 0, 0, 0, 0, 0,
- 7,23,67, 0, 0, 0, 7,23,71, 0, 0, 0, 0, 0, 0, 7,25, 7, 0, 0, 0, 0, 0, 0,
- 5,59,32, 0, 0, 0, 7,38,58, 0, 0, 0, 0, 0, 0, 5,65,52, 7,31,39, 4,58,94,
- 5,65,49, 5,65,50, 7,31,41,15,62,57, 5,65,51, 7,31,38,15,62,56, 0, 0, 0,
- 7,31,37, 7,31,40, 0, 0, 0, 0, 0, 0, 5,65,54, 5,65,55, 0, 0, 0, 0, 0, 0,
- 7,38,60, 4,63,59, 7,38,62, 5,71,69, 4,63,57, 7,38,61, 7,38,63, 7,38,64,
- 0, 0, 0, 0, 0, 0,15,66,16,15,66,17,15,66,18, 0, 0, 0, 7,38,65, 7,38,66,
- 0, 0, 0, 7,38,59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,67,24, 7,45,53,
- 4,67,23, 5,75,94, 7,45,55, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,69, 9, 7,45,54,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,59,30, 5,79,88, 5,79,90, 5,79,89, 0, 0, 0,
- 0, 0, 0, 7,51,18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,51,17, 5,83,27,
- 4,72,73, 4,72,74, 7,55,71, 7,55,73, 7,55,72, 0, 0, 0, 0, 0, 0, 7,55,74,
- 0, 0, 0, 5,83,28, 0, 0, 0, 0, 0, 0, 7,62,62, 4,75,74, 4,75,73, 0, 0, 0,
- 7,62,64, 0, 0, 0, 0, 0, 0, 5,87,56, 7,62,63, 5,89, 7, 0, 0, 0,15,76, 6,
- 5,90, 8, 5,90,70, 5,91,28, 7,67,47, 0, 0, 0, 5,92,20, 0, 0, 0, 6, 1,77,
- 4, 1, 5, 4, 2,66, 5, 2,52, 6, 4,59, 6, 4,60, 5, 2,53, 6, 3,94, 4, 3,94,
- 5, 3,91, 6,10,93,15, 6,74,15, 6,73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,16,53,
- 6,16,52, 6,16,54, 0, 0, 0, 6,16,51, 0, 0, 0, 6,23, 6, 5,18,11, 4,17,33,
- /* plane 2, page 32 */
- 0, 254, /* first, last */
- 6,31,13, 5,23,86, 6,60,40, 7, 2,50, 5,52,25,15,46,61,15,52,29, 7,23,72,
- 7,31,42, 7,38,67, 5,71,70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,62,65, 0, 0, 0,
- 7,69,21, 6, 1,79, 6, 1,81, 6, 1,80,15, 1,27, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 1,72, 5, 1,71, 0, 0, 0, 0, 0, 0, 5, 3,92, 6, 7,23, 0, 0, 0,15, 6,75,
- 6,16,55, 6,23, 8,15,15,20, 6,31,14,15,26,62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7, 2,51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,38,68,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2,84, 0, 0, 0, 5, 2,54, 6,10,94,
- 0, 0, 0, 6,16,57, 0, 0, 0, 6,16,56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,12,69,
- 6,31,15, 5,21,63, 5,18,13, 6,31,16, 5,18,12, 6,40,22,15,26,63,15,26,64,
- 15,26,65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2,52, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,31,43, 0, 0, 0, 4, 1,87, 6, 2,85, 6, 2,86, 5, 2,57, 5, 2,56, 4, 2,68,
- 5, 2,59, 6, 4,65, 6, 4,64, 6, 4,62,15, 2,40, 0, 0, 0, 0, 0, 0,15, 2,42,
- 0, 0, 0, 0, 0, 0, 5, 2,55, 6, 4,63, 5, 2,58, 6, 7,33, 6, 7,27, 5, 4, 2,
- 6, 7,24, 5, 3,94, 5, 3,93, 0, 0, 0, 5, 4, 3, 6, 7,32, 5, 4, 4, 6, 7,28,
- 6, 7,31, 5, 4, 1,15, 4, 4, 6, 7,25, 6, 7,26, 6, 7,29, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 4, 5, 6, 7,30, 5, 5,91, 4, 6,21, 5, 5,89, 5, 5,93, 5, 5,90,
- 5, 5,92, 5, 6, 1, 6,11, 3, 5, 5,94, 0, 0, 0, 0, 0, 0, 5, 6, 2, 6,11, 2,
- 15, 6,76, 0, 0, 0, 5, 6, 3, 6,11, 1, 0, 0, 0, 5, 5,87, 0, 0, 0, 5, 5,88,
- 5, 8,94, 6,16,66, 5, 8,93, 5, 9, 2, 5, 8,92, 5, 9, 3, 6,16,63, 5, 9, 5,
- 5, 9, 4, 0, 0, 0, 6,16,59, 0, 0, 0, 0, 0, 0, 5, 9, 1, 6,16,58, 6,16,69,
- 6,16,71,15,10,51,15,10,52,15,10,53, 0, 0, 0, 4, 9, 6, 6,16,65, 0, 0, 0,
- 0, 0, 0, 6,16,64, 6,16,60, 6,16,61, 6,16,70, 0, 0, 0, 6,16,68, 6,16,62,
- 0, 0, 0, 5,13,24, 6,23,18, 0, 0, 0, 5,13,23, 6,23,14, 5,13,25, 5,18,14,
- 6,23,10, 4,12,73, 4,12,74, 6,23,15, 5,13,26, 6,23,13, 6,23,17, 6,23,16,
- 4,12,71, 6,23,19, 6,23,20,15,15,22,15,15,21, 0, 0, 0, 6,23, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,23,11, 6,31,21, 5,18,21, 4,17,38, 4,17,35,
- 4,17,36, 5,18,19, 5,18,15, 6,31,26, 5,18,16, 5,18,20, 6,31,28, 5,18,17,
- 5,18,22, 6,31,22, 6,31,27, 6,31,18, 5,18,18, 6,31,20,15,20,41,15,20,42,
- 15,20,43,15,20,44, 0, 0, 0, 6,31,25, 6,31,17, 0, 0, 0, 0, 0, 0, 6,31,29,
- 6,31,23, 0, 0, 0, 6,31,19, 6,40,25, 4,23,30, 6,40,30, 5,23,89, 5,23,90,
- 4,23,24, 5,23,88, 6,40,26, 4,23,23, 5,24, 1, 5,24, 2, 6,31,24, 6,40,32,
- 6,40,29, 6,40,27, 5,23,93, 6,40,24, 0, 0, 0,15,26,66,15,26,67,
- /* plane 2, page 33 */
- 1, 255, /* first, last */
- 6,40,31, 0, 0, 0, 0, 0, 0, 5,23,91, 5,23,87, 6,40,33, 5,23,94,
- 15,32,11, 0, 0, 0, 5,30,88, 4,29, 2, 5,37,50, 4,29, 5, 5,30,85, 5,30,84,
- 4,29, 4, 0, 0, 0, 0, 0, 0, 5,30,87, 5,30,90, 6,50,30, 6,50,27, 6,50,29,
- 6,60,43, 0, 0, 0, 5,30,91, 6,50,28, 5,30,86, 0, 0, 0, 5,30,89, 6,60,44,
- 6,60,45, 5,37,56, 4,35,20, 5,37,47, 5,37,53, 6,60,42, 5,37,52, 5,37,55,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,39,66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,37,57, 5,37,48, 5,37,54, 5,37,49, 7, 2,55, 7, 2,57, 5,44,84, 5,44,83,
- 5,44,85, 4,41,55, 5,44,86, 0, 0, 0, 5,44,88, 4,41,54, 7, 2,54, 7, 2,53,
- 0, 0, 0, 0, 0, 0, 7, 2,56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,44,87, 5,44,89, 5,44,82, 0, 0, 0, 7,13,48, 5,52,30, 7,13,50,
- 7,13,56, 5,52,29, 4,48, 8, 7,13,55, 7,13,54, 5,52,27, 7,13,49, 5,52,28,
- 0, 0, 0, 7,13,52, 5,52,31, 7,13,47, 0, 0, 0, 0, 0, 0, 4,48,10, 5,59,33,
- 5,59,34, 4,54,12, 7,23,75,15,57,92, 0, 0, 0, 0, 0, 0, 7,23,73, 0, 0, 0,
- 7,23,74, 5,65,58, 5,65,57, 5,65,56, 0, 0, 0, 7,38,70, 4,63,61, 5,71,71,
- 4,63,60, 7,38,69, 7,38,71, 0, 0, 0, 0, 0, 0, 5,71,72,15,66,19, 0, 0, 0,
- 7,45,56, 5,76, 1, 0, 0, 0, 7,51,19, 7,55,76, 5,79,91, 5,83,29, 7,55,75,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,62,66, 7,62,67, 5,87,57, 0, 0, 0, 7,67,48,
- 7,67,85, 4, 1,88, 6, 7,34, 5, 4, 6, 0, 0, 0, 4, 4, 6, 6,11, 4,15, 6,77,
- 15, 6,78, 6,16,73, 6,16,72,15,10,54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,23,21, 5,18,23, 6,40,34, 5,24, 3, 0, 0, 0, 0, 0, 0, 6,50,31,
- 0, 0, 0, 0, 0, 0, 5,37,58, 0, 0, 0,15,39,68, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,45,57, 0, 0, 0,15,74,46, 6, 1,82,
- 0, 0, 0, 6, 1,83, 6, 2,88, 5, 1,73, 6, 2,87,15, 1,66, 4, 2,71, 4, 4, 7,
- 5, 4, 7,15, 4, 6, 0, 0, 0, 6, 9,62, 6,11, 5, 5, 6, 4, 5, 6, 5, 6,16,74,
- 6,16,33, 4,15, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,23,22, 4,17,42,
- 0, 0, 0, 0, 0, 0, 6,40,35, 5,30,92, 5,37,59, 7, 2,59,15,39,69, 6,60,46,
- 15,46,63, 7, 2,60, 7, 2,61, 0, 0, 0, 4,54, 6, 0, 0, 0, 7,55,77, 4, 2,72,
- 5, 2,62, 6, 4,68, 5, 2,61, 6, 4,67, 6, 4,66, 6, 4,70, 4, 2,73, 0, 0, 0,
- 6, 4,69, 0, 0, 0, 0, 0, 0, 6, 7,37, 5, 4,10, 5, 4,12, 5, 4,11, 5, 4, 8,
- 5, 4, 9, 6, 7,36, 6, 7,40, 6,11, 8, 0, 0, 0, 6, 7,35, 0, 0, 0, 6, 7,38,
- 5, 4,13, 0, 0, 0, 5, 6,12, 5, 6, 8, 5, 6, 7, 5, 6,11, 5, 6,10, 4, 6,25,
- 6,11, 6, 6,11, 9, 6,11, 7, 4, 6,30, 6,11,10,15, 6,80,15, 6,81,15, 6,82,
- /* plane 2, page 34 */
- 0, 255, /* first, last */
- 15, 6,83,15, 6,84, 5, 6, 9, 0, 0, 0, 5, 6,13, 6,11,11, 0, 0, 0, 5, 9, 8,
- 5, 9,10, 4, 9, 7, 6,16,76, 5, 9, 9, 6,16,77,15,10,55,15,10,57,15,10,56,
- 15,10,58,15,10,59,15,10,60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,16,75,
- 0, 0, 0, 5,13,29, 5,13,32, 5,13,30, 5,13,33, 5,13,27, 6,23,26, 6,23,27,
- 4,12,78, 5,13,34, 5,13,31, 6,23,28, 5,13,28, 6,23,25, 0, 0, 0, 0, 0, 0,
- 15,15,23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,23,23, 6,23,24, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,12,91, 5,18,36, 5,18,27, 5,18,25, 4,17,45, 6,31,35,
- 5,18,34, 6,31,40, 6,31,30, 5,18,29, 5,18,28, 5,18,31, 5,18,30, 6,31,31,
- 6,31,32, 5,18,33, 5,18,24, 4,17,48, 6,31,36, 5,18,35, 5,24, 8, 0, 0, 0,
- 6,31,33, 0, 0, 0,15,20,45,15,20,46,15,20,47,15,20,48,15,20,49,15,20,50,
- 15,20,51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,31,39, 6,38,29, 0, 0, 0,
- 5,18,26, 6,31,34, 5,18,32, 6,40,42, 4,17,43, 5,24,11, 5,24,12, 5,24,13,
- 6,40,43, 6,40,46, 5,24, 7, 6,40,45, 4,23,34, 5,24,10, 5,24, 6, 6,40,41,
- 4,23,35, 5,24, 5, 6,50,36, 6,40,38, 6,40,39, 5,24, 4,15,26,69,15,26,71,
- 15,26,72,15,26,73,15,26,74, 0, 0, 0, 6,40,40, 0, 0, 0, 6,40,44, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,26,70, 0, 0, 0, 0, 0, 0, 4,29,11,
- 5,31, 5, 4,29,12, 6,50,33, 6,50,34, 5,31, 2, 5,31, 3, 6,50,39, 5,30,93,
- 0, 0, 0, 6,50,37,15,33,26,15,33,27,15,33,28, 0, 0, 0, 6,50,35, 0, 0, 0,
- 6,50,40, 0, 0, 0, 5,31, 4, 5,30,94, 6,50,38, 4,35,24, 5,37,60, 4,35,23,
- 5,37,62, 6,60,48, 0, 0, 0, 5,37,64, 5,37,63, 6,60,47,15,39,71,15,39,72,
- 15,39,73,15,39,74,15,39,75,15,39,76,15,39,77,15,39,78,15,39,79, 0, 0, 0,
- 6,60,49, 0, 0, 0, 6,64,17, 0, 0, 0,15,42,52, 7, 2,62, 4,41,58, 4,23,31,
- 4,41,56, 5,44,90, 4,41,57, 7,13,57, 7, 2,66, 5,44,92, 5,44,94,15,46,64,
- 15,46,66,15,46,67, 7, 2,63, 7, 2,65, 7, 2,67, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7, 2,64, 5,44,91, 5,52,33, 5,44,93, 5,52,35, 5,52,32, 4,48,13,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,52,36,15,52,31,15,52,32,15,52,33,
- 15,52,34, 7,23,78, 5,59,36, 7,23,76, 7,23,77,15,57,94,15,58, 1,15,58, 2,
- 15,58, 3, 0, 0, 0, 5,59,35, 0, 0, 0, 7,23,79, 5,59,37, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,31,49, 7,31,46, 5,65,59,15,62,58,15,62,60, 7,31,45, 7,31,47,
- 0, 0, 0, 0, 0, 0, 7,31,44,15,62,59, 0, 0, 0, 7,31,48, 0, 0, 0, 7,38,72,
- 7,38,73, 5,65,60, 5,71,73, 0, 0, 0, 0, 0, 0,15,66,20,15,66,21,15,66,22,
- 5,71,74, 0, 0, 0, 0, 0, 0, 5,76, 4, 5,76, 3, 7,45,61, 7,45,59, 5,76, 2,
- /* plane 2, page 35 */
- 0, 254, /* first, last */
- 7,45,58, 0, 0, 0, 7,45,60, 7,45,62, 4,70,28, 0, 0, 0, 7,51,20, 7,51,65,
- 5,83,30, 7,55,78, 0, 0, 0, 7,55,79, 0, 0, 0, 5,85,74, 0, 0, 0,15,74,47,
- 0, 0, 0, 7,59,45, 7,62,68, 7,66,22, 5,90,72, 5,90,71,15,76,91,15, 1,67,
- 15, 2,43,15, 2,44, 0, 0, 0, 6,11,12,15, 4, 7, 6,11,13, 6,11,14, 0, 0, 0,
- 15,15,25, 0, 0, 0,15,15,27,15,15,28, 0, 0, 0,15,15,26, 5,18,37,15,20,52,
- 6,40,47,15,26,75,15,26,76, 5,31, 6, 6, 1,31, 6, 1,85, 0, 0, 0, 6, 2,89,
- 0, 0, 0, 6, 7,41, 0, 0, 0, 4, 4,10, 6,16,80, 6, 7,45,15, 4, 8, 0, 0, 0,
- 6, 7,43, 0, 0, 0, 6, 7,46, 4, 6,31, 6,11,16, 5, 6,14, 6,11,17, 3,10,25,
- 0, 0, 0, 4, 7,33, 6,21, 3, 6,16,82, 6,16,83, 6,16,81, 6,16,79, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,16,78, 0, 0, 0, 0, 0, 0, 6,23,31, 6,23,30, 4,12,79,
- 6,23,29, 0, 0, 0, 6,23,32, 0, 0, 0, 6,31,41, 6,31,42, 6,31,43, 6,31,44,
- 6,31,45, 6,31,46, 4,23,36, 6,40,48, 6,40,52, 6,40,51, 6,40,49,15,26,77,
- 6,40,50, 0, 0, 0, 6,50,41, 5,31, 7,15,33,29, 0, 0, 0, 6,60,51, 6,60,52,
- 6,60,50, 0, 0, 0, 0, 0, 0, 5,37,65, 7, 2,68, 0, 0, 0, 7,13,58, 7,13,60,
- 4,48,15, 5,52,37, 7,23,81, 7,23,80, 0, 0, 0, 0, 0, 0, 7,55,80, 7,67,49,
- 7,67,50, 7,69,22, 6, 1,32, 6, 1,86, 0, 0, 0, 0, 0, 0,15, 2,45, 4, 4,11,
- 6, 7,48, 6, 7,47, 0, 0, 0, 5, 4,14, 6,11,18, 0, 0, 0, 6,16,86, 6,16,85,
- 0, 0, 0, 0, 0, 0, 6,16,87, 0, 0, 0, 5,14,72, 6,31,47, 5,24,14, 0, 0, 0,
- 6,50,42, 6,60,53, 7, 2,69, 7,13,61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 1,10, 5, 1,39, 6, 1,88, 0, 0, 0, 6, 1,92, 6, 1,87, 0, 0, 0, 6, 1,90,
- 6, 1,91, 0, 0, 0, 6, 3, 1, 6, 3, 2, 6, 2,92, 6, 2,90, 6, 3, 3, 6, 2,91,
- 6, 2,93, 6, 2,94, 5, 1,74, 5, 2,64, 0, 0, 0, 5, 2,63, 0, 0, 0, 0, 0, 0,
- 6, 4,72, 6, 4,73, 6, 4,74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4,75, 5, 4,15,
- 6, 7,49, 5, 4,17, 6, 7,51, 5, 4,16,15, 4, 9, 0, 0, 0,15, 4,10,15, 4,11,
- 15, 4,12, 6, 7,50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4,18, 5, 6,15, 6,11,22,
- 6,11,19, 6,11,20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,11,23, 6,11,21, 6,16,94, 5, 9,12, 6,16,93, 4, 9,16,
- 6,16,89, 5, 9,11, 6,16,88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,13,36, 0, 0, 0, 5,13,35, 5,13,37,
- 6,23,35, 6,23,33, 5,13,38,15,15,29, 6,23,34, 0, 0, 0, 5,18,42, 5,18,40,
- 5,18,41, 6,31,54, 6,31,48, 4, 9,15, 6,40,53, 6,31,50, 6,31,51, 5,18,39,
- 6,31,49,15,20,53,15,20,54,15,20,55, 6,31,52, 6,31,55, 6,31,53,
- /* plane 2, page 36 */
- 0, 254, /* first, last */
- 6,40,54, 6,40,57, 5,24,15, 5,24,18, 5,24,17, 6,40,58, 5,24,16, 6,40,56,
- 6,40,55, 0, 0, 0, 5,31, 8, 4,29,17, 6,50,43,15,33,32, 0, 0, 0, 6,50,44,
- 0, 0, 0, 0, 0, 0, 5,37,66, 6,60,54, 5,37,67, 6,60,55, 6,60,57, 0, 0, 0,
- 15,39,80, 6,60,58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,60,56, 5,45, 1, 5,45, 2,
- 4,41,64, 7, 2,70,15,46,68,15,46,69, 7, 2,71, 7,13,63, 5,52,38, 4,48,16,
- 7,13,64, 7,13,62, 0, 0, 0, 0, 0, 0, 7,23,83, 7,23,82, 0, 0, 0, 7,23,84,
- 15,58, 4, 0, 0, 0, 4,59, 2, 5,65,62, 7,31,50,15,62,61, 0, 0, 0, 5,65,61,
- 7,38,77, 7,38,75, 7,38,79, 7,38,74, 7,38,76, 0, 0, 0, 5,71,75, 5,76, 5,
- 7,45,63, 4,63,63, 7,45,65, 7,45,64, 5,76, 6, 0, 0, 0, 5,79,92, 5,79,93,
- 4,70,29, 7,51,21, 5,83,31, 7,64,28, 7,64,79, 7,68,38, 0, 0, 0, 0, 0, 0,
- 6, 4,78, 6, 4,76, 6, 4,77, 5, 4,19, 6,17, 1, 6,11,24, 6,13,18, 6,17, 4,
- 6,23,36, 6,17, 2, 6,17, 3, 6,23,38, 6,23,37, 0, 0, 0, 6,31,56, 0, 0, 0,
- 0, 0, 0, 6,47, 1, 5,24,19, 6,40,60, 6,40,59, 0, 0, 0, 5,31,10, 0, 0, 0,
- 6,60,60, 6,60,63, 6,60,61, 6,60,59, 0, 0, 0, 6,60,62, 0, 0, 0, 7,13,65,
- 7,13,46, 4,48,18, 7,23,85, 7,31,53, 0, 0, 0, 7,31,52, 7,31,51, 7,38,82,
- 7,38,80, 7,38,81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,55,81, 7,59,46, 7,66,23,
- 6, 3, 5, 6, 3, 4,15, 1,68, 6, 4,81, 6, 4,79, 0, 0, 0, 0, 0, 0,15, 4,13,
- 6, 7,52, 5, 6,16, 6,11,27, 0, 0, 0, 6,11,26, 0, 0, 0, 0, 0, 0, 6,23,39,
- 4,12,84, 4,12,83, 0, 0, 0, 0, 0, 0, 5,21,64, 6,31,61, 6,31,57, 6,31,58,
- 15,20,56,15,20,57,15,20,58, 6,31,60, 6,31,59, 5,18,43, 6,40,61, 6,40,64,
- 6,40,62, 6,40,63,15,26,78, 0, 0, 0, 6,50,49, 6,50,46, 6,50,48, 6,50,47,
- 15,33,33, 4,35,28, 6,60,64, 7, 2,75, 7, 2,76, 7, 2,73, 7, 2,74, 5,45, 3,
- 4,48,19, 0, 0, 0, 5,52,39, 7,13,68, 7,23,86, 7,31,54,15,71,52, 7,45,66,
- 7,51,22, 5,83,33, 0, 0, 0,15,76, 7, 0, 0, 0, 6, 1,93, 5, 1,75, 4, 1,89,
- 5, 2,65, 0, 0, 0, 4, 2,78, 5, 2,66, 5, 4,20, 6, 7,56, 5, 4,21, 6, 7,55,
- 6, 7,57, 6, 7,59, 6, 7,54, 5, 4,22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7,53,
- 6, 7,58, 0, 0, 0, 5, 6,19, 6,11,29, 5, 6,17, 6,11,28, 5, 6,18, 5, 9,13,
- 6,11,31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 9,19, 6,17, 6, 5, 9,16, 5, 9,14,
- 6,17, 8, 0, 0, 0, 5, 9,18, 5, 9,17, 0, 0, 0,15,10,62, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,17, 7, 6,23,45, 4,12,89, 4,12,87, 4,12,92, 4,12,85, 5,13,43,
- 5,13,41, 4,12,88, 4,12,90, 4,12,86, 4,12,91, 5,13,42, 6,23,41, 6,23,47,
- 6,23,44,15,15,31,15,15,32, 0, 0, 0, 6,23,43, 6,23,48, 6,23,46,
- /* plane 2, page 37 */
- 0, 255, /* first, last */
- 6,23,42, 4,17,54, 5,18,47, 6,31,72, 6,31,65, 0, 0, 0, 5,18,44, 5,18,49,
- 5,18,46, 6,31,64, 5,18,48, 4,17,56, 6,31,71, 6,31,69, 6,31,66, 4,17,57,
- 6,31,70, 5,18,45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,31,68, 0, 0, 0, 6,31,63, 0, 0, 0, 6,31,67, 6,40,68,15,20,60, 4,23,38,
- 5,24,22, 5,24,21, 5,24,27, 5,24,26, 5,24,23, 4,23,39, 6,40,65, 5,24,20,
- 6,40,67, 5,24,24, 4,17,53,15,26,80, 0, 0, 0, 6,40,66, 0, 0, 0, 0, 0, 0,
- 15,26,79, 5,24,25, 0, 0, 0, 5,31,12, 5,31,11, 6,50,50, 6,50,52, 6,50,55,
- 6,50,51, 0, 0, 0, 0, 0, 0,15,33,34,15,33,35,15,33,36,15,33,37,15,33,38,
- 15,33,39, 0, 0, 0, 0, 0, 0, 6,50,53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,50,54,
- 6,54,76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,31,13, 4,29,18, 6,60,70,
- 6,60,67, 5,37,70, 6,60,66, 4,35,30, 5,37,69, 4,35,33, 4,35,32, 6,60,65,
- 5,37,72, 5,37,74, 5,37,68, 6,60,72, 6,60,73, 6,60,74, 5,37,71, 6,60,68,
- 15,39,81,15,39,82,15,39,83,15,39,84,15,39,85, 0, 0, 0, 0, 0, 0, 6,60,69,
- 0, 0, 0, 0, 0, 0, 4,41,68, 5,45, 4, 5,59,40, 4,41,67, 4,41,66, 5,45, 5,
- 7, 2,77, 7, 2,79, 0, 0, 0,15,46,70,15,46,71, 0, 0, 0, 7, 2,78, 7, 2,80,
- 0, 0, 0, 7,13,69, 5,52,40, 5,52,42, 7,13,71, 0, 0, 0, 7,13,70, 0, 0, 0,
- 0, 0, 0,15,52,36,15,52,37, 7,13,72, 5,52,41, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,59,39, 7,23,87, 4,54,16, 0, 0, 0, 0, 0, 0,15,60,63, 5,59,38, 5,65,64,
- 7,31,55, 5,65,63, 7,31,56,15,62,62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,65,65,
- 7,38,83, 7,38,85, 7,38,86, 7,45, 2, 7,38,84, 5,76, 7, 4,67,30, 4,67,29,
- 15,69,10, 0, 0, 0, 7,45,67, 7,51,23, 5,79,94, 7,55,82, 4,74,39, 5,89, 8,
- 0, 0, 0, 5, 1,17, 6, 2, 1, 4, 2,79, 5, 1,76, 6, 3, 6, 0, 0, 0, 0, 0, 0,
- 15, 2,47, 0, 0, 0, 6, 4,85, 5, 2,67, 6, 7,64, 5, 2,73, 6, 7,61, 5, 2,68,
- 6, 4,83, 6, 4,84, 5, 2,69, 6, 7,60, 0, 0, 0, 6, 7,62, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6, 7,65, 0, 0, 0, 6, 4,82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2,72,
- 5, 4,23, 5, 4,25, 4, 6,37, 6, 7,70, 6, 7,68, 6,11,38, 6, 7,71, 0, 0, 0,
- 6,11,32, 6, 7,66, 6, 7,67, 6,11,36, 6, 7,69, 6, 7,72, 0, 0, 0, 3, 5,94,
- 6, 7,73, 0, 0, 0, 0, 0, 0, 5, 4,26,15, 4,14,15, 4,15,15, 4,17,15, 4,18,
- 15, 4,20,15, 4,21,15, 4,22,15, 6,87,15, 6,88,15, 6,89,15, 6,90,15, 6,91,
- 15, 6,93,15, 6,94,15, 7, 1,15, 6,92, 6,11,37, 0, 0, 0, 6,11,33, 0, 0, 0,
- 0, 0, 0, 6,11,34, 4, 4,13, 0, 0, 0, 0, 0, 0,15, 4,16, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 6,36, 5, 6,20, 6,11,35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6,39,
- /* plane 2, page 38 */
- 0, 255, /* first, last */
- 6,11,44, 4, 9,39, 6,17,15, 4, 6,43, 6,11,45, 6,17, 9, 5, 6,21, 6,17,12,
- 6,11,47, 4, 6,42, 5, 6,23, 4, 9,24, 5, 6,22, 4, 9,35, 6,11,41, 5, 6,24,
- 4, 6,49, 4, 9,36, 6,17,10, 6,17,11, 6,11,48, 6,11,39, 6,17,13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15, 6,85, 0, 0, 0, 0, 0, 0,15, 7, 2,15,10,80, 0, 0, 0,
- 4, 9,38, 0, 0, 0, 0, 0, 0, 6,17,14, 0, 0, 0, 0, 0, 0, 6,11,40, 6,11,42,
- 6,11,46, 0, 0, 0, 6,11,43,15,10,68, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,10,63,
- 15,10,66,15,10,69,15,10,72,15,10,76, 6,23,59, 6,23,57, 6,17,18, 4, 9,41,
- 5, 9,23, 0, 0, 0, 4, 9,34, 4,13, 9, 5,13,46, 5, 9,22, 6,17,25, 6,23,55,
- 6,17,19, 4,12,93, 5,13,44, 6,17,21, 6,23,51, 4,13, 1, 6,17,24, 5, 9,20,
- 4,12,94, 6,17,26, 6,17,17, 6,17,23, 6,23,54, 6,23,53, 4,13,10, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,17,20,15,10,65,
- 15,10,70,15,10,73,15,10,75,15,10,77,15,10,78,15,10,79,15,15,38,15,15,39,
- 15,15,40,15,15,42, 6,23,50,15,15,36, 0, 0, 0, 0, 0, 0, 6,23,56, 0, 0, 0,
- 15,10,67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,13,45, 0, 0, 0,
- 6,23,49, 5,13,50, 5,13,56, 5,13,59, 6,31,77, 6,23,67, 6,31,79, 6,31,75,
- 6,31,80, 6,23,68, 5,13,53, 6,31,73, 4,13,14, 6,31,83, 5,13,54, 4,13, 6,
- 5,18,61, 5,13,49, 5,13,60, 6,23,66, 6,23,61, 5,18,52, 6,23,63, 6,23,65,
- 6,31,76, 6,23,64, 6,31,81, 4,13, 7, 5,13,48, 6,23,60, 5,18,51, 6,31,82,
- 6,31,84, 5,18,50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,13,47,
- 0, 0, 0,15,15,33,15,15,34,15,15,35,15,15,41,15,15,43,15,20,61,15,20,63,
- 15,20,64,15,20,68,15,20,69,15,20,70,15,20,71,15,20,72, 6,31,74, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,23,69,
- 6,23,70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,13,52, 5,13,57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4,23,58, 6,40,81, 4,23,45, 5,18,57, 6,31,92, 4,23,43, 6,40,83,
- 6,40,73, 5,24,53, 6,31,94, 6,40,82, 6,32, 2, 4,17,69, 5,13,51, 4,17,77,
- 6,31,87, 6,40,78, 4,17,65, 5,24,31, 5,18,55, 5,18,58, 4,23,44, 6,31,89,
- 5,18,60, 6,31,86, 6,31,78, 4,17,73, 5,24,28, 6,40,80, 5,18,62, 4,17,63,
- 6,31,93, 6,31,91, 6,31,90, 6,40,70, 6,40,76, 5,24,30, 5,24,33, 6,40,84,
- 5,18,53, 6,40,75, 6,40,86, 6,40,71, 6,40,69, 6,31,85, 5,24,32, 0, 0, 0,
- 15,20,65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,20,62,
- 15,20,66,15,20,67,15,20,73,15,20,74,15,20,75,15,20,76,15,20,77,15,20,79,
- /* plane 2, page 39 */
- 0, 255, /* first, last */
- 15,20,80,15,20,82,15,26,82,15,26,83,15,26,84,15,26,85,15,26,86,15,26,87,
- 15,26,89,15,26,90,15,26,92,15,26,93,15,26,94,15,27, 1,15,27, 2,15,27, 5,
- 15,27, 9,15,27,10,15,27,12,15,27,14, 0, 0, 0, 0, 0, 0, 6,40,72, 5,18,54,
- 0, 0, 0, 0, 0, 0, 6,31,88,15,27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,20,78,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,41, 4, 6,40,77, 6,32, 1, 0, 0, 0,15,27, 4,
- 4,29,31, 5,24,42, 5,24,45, 5,24,50, 4,23,47, 4,23,55, 4,23,49, 6,50,61,
- 6,41, 3, 5,24,48, 6,41, 2, 4,23,51, 5,24,54, 5,24,56, 5,24,35, 6,50,65,
- 5,24,58, 5,31,19, 4,23,59, 5,24,51, 6,41, 1, 5,24,38, 6,40,91, 5,31,20,
- 5,24,36, 5,24,52, 5,18,63, 6,50,56, 5,24,39, 4,29,22, 4,23,56, 5,24,57,
- 5,24,49, 5,24,43, 5,31,17, 6,40,87, 5,24,47, 5,24,29, 6,40,94, 6,50,66,
- 6,50,67, 6,50,58, 6,40,93, 5,24,55, 6,50,62, 6,50,64, 0, 0, 0, 5,31,15,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,29,32, 4,23,50, 5,24,41,
- 6,40,89,15,26,81,15,26,91,15,27, 3,15,27, 8,15,27,13,15,33,40,15,33,46,
- 15,33,48,15,33,49,15,33,50, 0, 0, 0, 0, 0, 0, 6,50,60, 6,50,63, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,50,59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,40,90, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,27,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,24,46,
- 0, 0, 0, 5,31,14, 5,24,44, 0, 0, 0,15,20,81,15,39,93, 5,31,28, 5,31,22,
- 5,31,21, 6,50,75, 5,45, 6, 5,31,37, 6,60,79, 5,31,25, 5,31,31, 5,31,36,
- 6,60,84, 6,50,79, 5,37,75, 0, 0, 0, 5,31,27, 6,60,76, 6,50,69, 5,31,24,
- 5,31,29, 5,31,26, 6,50,57, 4,41,78, 6,60,86, 6,60,89, 5,31,35, 6,50,72,
- 6,60,82, 4,35,47, 6,60,88, 6,60,87, 5,31,33, 5,37,77, 5,31,30, 6,60,81,
- 6,60,78, 6,60,77, 5,31,23, 6,50,71, 0, 0, 0, 0, 0, 0, 6,50,77,15,33,42,
- 15,33,43,15,33,44,15,33,45,15,33,47,15,33,51,15,39,86,15,39,87,15,39,89,
- 15,39,90,15,40, 5,15,40, 8, 6,60,80, 6,60,85, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,31,32,15,33,41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,60,83, 6,50,78, 0, 0, 0, 0, 0, 0,
- 6,61, 3, 6,61, 7, 4,35,37, 4,35,36, 5,45, 7, 0, 0, 0, 6,60,92, 5,37,87,
- 5,37,86, 5,37,83, 4,29,21, 6,60,91, 7, 2,82, 0, 0, 0, 7, 2,85, 5,45, 9,
- 5,37,80, 5,37,79, 5,37,76, 5,37,81, 5,37,82, 5,37,89, 6,61, 5, 6,60,93,
- 6,60,94, 6,50,74, 6,61, 2, 7, 2,84, 6,61, 1, 7, 2,87, 5,37,84, 5,37,88,
- /* plane 2, page 40 */
- 0, 255, /* first, last */
- 7,13,74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,35,51,15,39,88,15,39,92,15,39,94,15,40, 1,15,40, 3,
- 15,40, 4,15,40, 6,15,46,73,15,46,74,15,46,75,15,46,76,15,46,77,15,46,78,
- 15,46,79,15,46,83,15,46,85, 0, 0, 0, 7, 2,83, 0, 0, 0, 7, 2,88, 6,60,75,
- 5,37,78, 6,60,90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,45, 8, 0, 0, 0, 5,37,85, 0, 0, 0,
- 0, 0, 0, 7,13,81, 4,41,70, 4,35,50, 7,13,75, 4,41,81, 7,13,77, 5,45,15,
- 7,13,83, 4,41,74, 5,45,14, 7, 2,89, 5,45,19, 4,41,82, 7,13,85, 5,24,37,
- 5,45,18, 5,45,21, 4,48,21, 4,48,22, 7, 3, 1, 5,45,20, 7,23,92, 5,45,16,
- 5,52,46, 4,54,20, 7, 2,90, 7, 3, 2, 0, 0, 0, 0, 0, 0, 5,52,52, 5,45,11,
- 5,45,13, 5,52,45, 5,45,12, 7,14, 2, 7,13,87, 7,13,86, 7, 2,94, 4,48,28,
- 7,13,80, 7,13,79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,40, 2, 0, 0, 0,
- 0, 0, 0,15,46,80, 7,13,82, 0, 0, 0, 5,45,17, 7,13,76,15,46,81,15,46,82,
- 15,46,84,15,46,86,15,52,39,15,52,40,15,52,42,15,52,43,15,52,49,15,52,51,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,13,84, 5,52,43, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,16,48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2,93, 7, 5,81, 4,41,80,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,52,44, 5,52,47, 0, 0, 0,15,46,72,
- 0, 0, 0,15,52,47, 5,52,48, 5,52,50, 7,13,91, 7,13,88, 5,52,53, 5,52,54,
- 5,52,49, 7,13,94, 7,13,92, 7,13,93, 5,52,55, 4,48,29, 5,59,41, 7,14, 1,
- 7,23,91, 7,23,93, 7,23,90, 7,24, 1, 5,59,43, 7,13,90, 7,23,89, 7,13,78,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,52,45, 0, 0, 0,
- 5,52,51, 7,24, 2,15,52,41,15,52,46,15,52,50,15,58, 5,15,58, 6,15,58,14,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,58, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,59,42, 5,52,56,15,58,10,15,52,44, 7,23,88, 5,59,49, 4,54,21,
- 4,54,17, 4,59,10, 5,59,46, 5,65,68, 5,65,66, 7,31,59, 7,24, 6, 0, 0, 0,
- 4,59, 6, 5,59,45, 5,59,47, 7,24, 3, 7,24, 5, 5,59,48, 5,65,67, 7,31,58,
- 5,65,69, 7,31,57, 7, 2,86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,58,11,15,58,13,15,62,63,15,62,64,15,62,66,15,62,67,15,62,69,15,62,70,
- 15,62,71, 0, 0, 0, 7,31,60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,24, 4,15,58, 8,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,59, 7, 5,59,50, 7,38,89, 7,31,61, 5,65,72,
- /* plane 2, page 41 */
- 0, 255, /* first, last */
- 7,45,68, 4,63,67, 4,63,66, 7,38,92, 5,65,73, 7,45,71, 4,59, 8, 5,65,74,
- 7,39, 5, 7,39, 1, 7,38,88, 5,65,71, 7,38,94, 0, 0, 0, 5,71,77, 7,38,90,
- 5,71,80, 7,38,87, 7,39, 2, 7,31,62, 0, 0, 0, 7,38,93, 5,71,78,15,62,68,
- 5,71,79, 7,38,91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,71,76,15,66,25, 7,39,10, 4,67,36,
- 7,39, 7, 5,71,84, 7,39, 4, 5,76,10, 7,39, 9, 7,39, 6, 7,31,63, 5,71,85,
- 4,67,31, 5,71,81, 5,76, 8, 7,39,11, 7,39, 3, 7,45,69, 5,71,87, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,66,26,15,66,24,15,66,27,15,66,28,15,66,29, 0, 0, 0,
- 0, 0, 0, 7,45,70, 0, 0, 0, 5,65,70, 5,71,82, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,69,11, 5,71,86, 5,76, 9, 7,51,25, 7,45,74, 4,67,33,
- 7,45,73, 4,67,37, 7,51,24, 7,45,75,15,71,53, 0, 0, 0, 0, 0, 0, 7,59,47,
- 4,70,30, 0, 0, 0, 5,76,11, 7,55,83, 7,55,84, 7,55,85, 7,51,27, 7,51,26,
- 0, 0, 0, 7,51,28, 0, 0, 0, 0, 0, 0,15,73,34, 7,55,86, 7,59,48, 7,59,50,
- 7,59,51, 7,59,49, 0, 0, 0,15,74,48,15,73,33,15,74,49,15,74,50, 7,59,53,
- 5,87,58, 7,59,52, 7,62,69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,74,51,15,75,39,15,75,40, 5,87,59, 7,62,70, 5,89, 9, 7,62,71,15,76, 8,
- 0, 0, 0,15,76, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,77,82,15,76,92,15,76,93,
- 5,91,30, 5,91,64, 0, 0, 0,15,77,20, 0, 0, 0, 0, 0, 0, 5, 2,74, 4, 2,82,
- 6, 4,86, 0, 0, 0, 0, 0, 0, 6, 7,75, 5, 4,27, 6, 7,74, 6, 7,77, 0, 0, 0,
- 0, 0, 0, 6, 7,76, 4, 6,50, 6,11,49, 6,11,56, 6,11,52, 6,11,54, 4, 6,51,
- 6,11,53, 6,11,51, 6,11,55,15, 7, 4,15, 7, 3, 0, 0, 0, 6,17,29, 6,17,27,
- 6,17,30, 6,17,32, 4, 9,44, 6,17,33, 6,17,31, 0, 0, 0,15,10,81,15,10,82,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,17,28, 6,23,71,
- 5,13,63, 6,23,73, 5,13,62, 6,23,72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,18,65,
- 4,17,79, 6,32, 5,15,20,83,15,20,84, 0, 0, 0, 0, 0, 0, 6,32, 4, 5,18,64,
- 6,41, 8, 6,41, 7, 6,41, 5, 6,41, 6, 4,23,60, 6,41, 9,15,27,15, 0, 0, 0,
- 0, 0, 0, 5,24,59, 5,24,60,15,20,86, 4,29,36, 6,50,81, 5,31,39, 0, 0, 0,
- 5,31,41, 0, 0, 0, 0, 0, 0,15,33,53, 4,29,33, 0, 0, 0, 0, 0, 0, 6,50,80,
- 5,31,40, 0, 0, 0, 6,61, 9, 0, 0, 0, 6,61,10, 5,37,90, 5,37,92, 5,37,91,
- 7, 3, 4, 5,37,93,15,40, 9,15,40,10, 6,61, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,45,22, 4,41,83, 4,41,84, 7, 3, 8, 7, 3, 7,
- 7, 3, 5, 6,61,11, 7, 3, 3, 0, 0, 0, 0, 0, 0,15,46,91, 7, 3, 9, 7, 3, 6,
- /* plane 2, page 42 */
- 4, 255, /* first, last */
- 15,46,87,15,46,88,15,46,90, 7, 3,10,
- 7,14,10, 7,14, 5, 7,14, 4, 7,14, 7, 7,14, 6, 7,14, 9, 7,14, 8, 0, 0, 0,
- 7,12,67, 7,17,80, 7,14, 3, 7,24, 7, 5,59,51,15,58,15, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,31,64, 7,39,13, 4,63,69, 0, 0, 0, 0, 0, 0, 7,39,14, 5,76,12,
- 15,69,12, 5,80, 1, 0, 0, 0, 7,51,29, 6, 3, 7, 5, 1,77, 6, 4,87, 0, 0, 0,
- 0, 0, 0, 6, 4,88, 4, 4,20, 0, 0, 0,15, 4,23,15, 4,24, 0, 0, 0, 5, 6,25,
- 0, 0, 0, 0, 0, 0, 6,11,57, 0, 0, 0, 6,11,58, 0, 0, 0, 0, 0, 0, 6,17,35,
- 6,17,34, 6,17,36, 5, 9,25,15,10,83,15,10,84,15,10,85, 6,17,38, 0, 0, 0,
- 0, 0, 0, 6,17,37, 0, 0, 0, 0, 0, 0, 5, 9,24, 6,23,76, 6,23,74, 6,23,75,
- 5,13,65, 0, 0, 0, 0, 0, 0, 5,13,64, 0, 0, 0, 6,32, 6,15,20,87, 0, 0, 0,
- 0, 0, 0, 5,24,61, 5,24,63, 5,24,64, 0, 0, 0, 5,24,62, 5,31,42, 0, 0, 0,
- 5,37,94, 4,35,53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 3,11, 0, 0, 0, 0, 0, 0,
- 5,59,52, 0, 0, 0, 5,80, 2, 0, 0, 0, 0, 0, 0, 6, 3, 8, 5, 1,78, 0, 0, 0,
- 6, 3, 9, 6, 3,10, 0, 0, 0, 5, 1,79, 5, 2,76, 4, 2,86, 6, 4,89, 0, 0, 0,
- 5, 2,82, 5, 2,80, 5, 2,79, 5, 2,75, 5, 2,77,15, 2,48,15, 2,50, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 2,81, 4, 4,23, 6, 7,83, 6, 7,86, 6, 7,85, 4, 6,55,
- 5, 4,29, 6, 7,79, 4, 4,24, 4, 4,21, 6, 7,87, 5, 4,30, 4, 4,27, 6, 7,82,
- 6,11,61, 6, 7,81, 6,11,69, 6,11,59, 6, 7,80, 5, 4,28, 6,11,60, 6, 7,84,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 4,27,15, 4,28,15, 4,29,15, 4,30,
- 15, 4,31,15, 4,32,15, 4,33,15, 4,35,15, 4,36, 0, 0, 0, 0, 0, 0,15, 4,37,
- 0, 0, 0,15, 4,26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,11,62, 6,11,63, 6,11,65, 5, 6,27,
- 5, 9,26, 0, 0, 0, 6,11,68, 6,17,40, 5, 6,29, 6,17,42, 5, 6,28, 6,17,41,
- 6,17,39, 0, 0, 0, 6,11,66, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 7, 6,15, 7, 7,
- 15, 7, 8,15, 7, 9,15, 7,10,15, 7,11,15, 7,12,15, 7,13,15, 7,15, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 7, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 6,30, 0, 0, 0, 6,17,50, 6,17,52, 4, 9,56, 4, 9,47,
- 4, 9,48, 6,17,51, 6,23,77, 5, 9,31, 5, 9,34, 5, 9,33, 6,17,45, 5, 9,39,
- 4,13,20, 4, 9,60, 5, 9,30, 5, 9,29, 5,13,67, 4, 9,51, 6,23,78, 5, 9,40,
- 4, 9,58, 6,17,48, 5, 9,32, 5, 9,36, 6,17,46, 6,17,54, 6,17,43, 5, 9,35,
- /* plane 2, page 43 */
- 0, 255, /* first, last */
- 5, 9,28, 0, 0, 0, 0, 0, 0, 6,17,53, 0, 0, 0, 0, 0, 0, 6,17,49,15,10,86,
- 15,10,87,15,10,88,15,10,89,15,10,90,15,10,91,15,10,92,15,10,93,15,10,94,
- 15,11, 1,15,11, 3,15,11, 4,15,11, 5,15,11, 6,15,11, 7,15,11, 8,15,11, 9,
- 15,11,10,15,15,51,15,15,60,15,15,65, 0, 0, 0, 0, 0, 0, 6,17,44, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,11, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 9,27, 5,13,66, 5,13,68, 0, 0, 0, 0, 0, 0, 4,13,29,
- 6,23,85, 4,13,24, 5,13,77, 5,13,75, 4,13,25, 4, 9,55, 4,13,21, 5,13,74,
- 6,23,91, 6,23,80, 6,23,93, 6,23,83, 5,13,73, 6,23,82, 6,23,87, 4,13,22,
- 6,23,88, 5,13,76, 5,13,69, 4,13,23, 5,13,71, 5,13,72, 4,13,26, 6,23,90,
- 5,13,70, 6,17,55, 6,23,86, 6,32, 7, 6,23,89, 6,23,84, 5, 9,38, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,23,92, 6,23,94,15,15,44,15,15,45,15,15,46,15,15,47,
- 15,15,48,15,15,49,15,15,50,15,15,53,15,15,54,15,15,55,15,15,58,15,15,59,
- 15,15,61,15,15,62,15,15,64,15,15,66, 6,32, 8, 0, 0, 0,15,15,56, 0, 0, 0,
- 6,23,79, 0, 0, 0,15,15,52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4,17,82, 4,17,83, 4,23,62, 5,18,73, 0, 0, 0, 6,32,17, 5,13,78,
- 6,32,23, 5,18,67, 4,17,84, 4,18, 2, 4,17,86, 5,18,66, 4,17,93, 5,24,65,
- 5,18,68, 6,32,20, 5,18,71, 6,32,21, 6,32,12, 6,32, 9, 4,18, 4, 6,41,15,
- 6,41,10, 6,32,10, 5,18,69, 0, 0, 0, 6,41,13, 4,23,61, 6,32,15, 6,41,12,
- 6,41,11, 5,18,72, 6,32,13, 6,41,14, 6,32,19, 0, 0, 0, 0, 0, 0, 6,32,16,
- 4,17,85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,32,14,15,20,88,
- 15,20,89,15,20,90,15,20,91,15,20,92,15,20,94,15,21, 2,15,21, 3,15,21, 4,
- 15,21, 5,15,21, 6,15,21, 7,15,21, 8,15,21, 9,15,21,10,15,21,11,15,21,12,
- 15,21,14,15,21,13,15,21,15,15,21,16,15,27,17, 0, 0, 0,15,20,93, 0, 0, 0,
- 5,18,70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,18, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,27,33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,24,75, 6,41,20, 4,23,73, 6,41,27, 6,41,22, 5,24,77, 6,41,33,
- 5,24,84, 6,41,17, 4,29,49, 4,23,71, 5,24,66, 5,24,74, 4,23,63, 5,24,72,
- 4,23,67, 5,24,73, 4,23,74, 5,24,70, 4,23,77, 5,24,79, 4,23,70, 6,41,34,
- /* plane 2, page 44 */
- 0, 254, /* first, last */
- 6,41,35, 6,41,26, 5,24,81, 6,41,19, 6,41,38, 6,41,23, 5,24,80, 4,23,76,
- 6,41,39, 6,41,18, 5,24,76, 5,24,78, 6,41,36, 5,24,68, 6,41,28, 6,41,37,
- 6,41,32, 6,41,44, 6,41,31, 6,41,45, 6,41,40, 6,41,25, 5,24,82, 6,41,29,
- 5,24,83, 5,24,71, 6,41,24, 6,41,43, 5,24,69, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,50,83,15,27,16,15,27,18,15,27,20,15,27,21,15,27,22,15,27,23,15,27,24,
- 15,27,25,15,27,26,15,27,27,15,27,28,15,27,29,15,27,31,15,27,32,15,27,34,
- 15,27,35,15,27,36,15,27,37,15,27,38,15,27,40,15,27,41,15,27,42, 0, 0, 0,
- 6,50,84, 0, 0, 0, 6,41,30, 6,41,41, 0, 0, 0, 6,41,21, 0, 0, 0, 5,24,67,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,27,39, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,31,50,
- 6,50,91, 4,29,43, 4,29,41, 5,31,53, 4,29,38, 6,50,88, 4,29,45, 4,29,51,
- 4,29,39, 4,29,50, 6,50,94, 5,31,49, 5,38, 1, 0, 0, 0, 5,31,43, 6,61,12,
- 6,51, 5, 6,50,85, 6,51, 3, 6,51, 2, 5,31,45, 0, 0, 0, 5,31,51, 5,31,46,
- 6,50,89, 6,51, 1, 5,31,48, 6,51, 4, 6,50,92, 0, 0, 0, 5,31,44, 6,50,90,
- 5,31,47,15,33,54,15,33,55,15,33,56,15,33,57,15,33,58,15,33,59,15,33,60,
- 15,33,61,15,33,62,15,33,64,15,33,65,15,33,67,15,33,68,15,33,69,15,33,70,
- 15,33,71,15,33,73,15,40,16, 0, 0, 0, 0, 0, 0, 6,50,87, 6,50,93, 0, 0, 0,
- 6,50,86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,33,72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,31,52, 0, 0, 0, 0, 0, 0, 6,61,22, 5,45,25, 5,38, 7, 5,38,10, 4,35,66,
- 4,35,63, 6,61,28, 6,61,29, 6,61,14, 4,35,55, 6,61,31, 5,38, 6, 0, 0, 0,
- 4,35,67, 5,45,24, 5,38, 9, 6,61,21, 4,35,57, 7, 3,15, 4,35,59, 4,35,58,
- 7, 3,14, 7, 3,17, 0, 0, 0, 5,38, 4, 0, 0, 0, 4,35,69, 6,61,25, 6,61,30,
- 6,61,26, 5,38, 8, 6,61,23, 5,38,11, 7, 3,12, 6,61,27, 6,61,19, 0, 0, 0,
- 6,61,17, 5,38, 2, 4,35,64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,61,15, 6,61,20,15,40,11,15,40,12,15,40,13,15,40,14,15,40,15,
- 15,40,19,15,40,20,15,40,21,15,40,23,15,40,24,15,40,26,15,40,27,15,40,25,
- 15,40,28,15,40,29,15,40,30,15,40,31,15,40,32,15,40,33,15,40,34,15,40,35,
- 15,40,36,15,40,37,15,40,39,15,40,40,15,40,41, 0, 0, 0,15,40,38,
- /* plane 2, page 45 */
- 0, 255, /* first, last */
- 6,61,16,15,40,22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7, 3,19, 7, 3,24, 5,45,28, 4,42, 5, 7, 3,29, 7, 3,23, 7, 3,25, 4,41,91,
- 4,41,88, 5,45,29, 5,45,27, 7, 3,37, 4,41,93, 7,14,15, 4,42, 1, 0, 0, 0,
- 5,45,33, 4,42, 6, 4,41,92, 5,52,57, 7,14,28, 7, 3,21, 7, 3,20, 7,14,13,
- 7,14,11, 7, 3,36, 7,14,12, 7, 3,28, 5,45,32, 7,14,14, 5,45,31, 7, 3,27,
- 7, 3,34, 7, 3,35, 0, 0, 0, 7, 3,30, 7, 3,33, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4,41,87, 0, 0, 0,15,40,17, 0, 0, 0, 0, 0, 0, 7, 3,18, 7, 3,31, 7, 3,32,
- 15,46,92,15,46,93,15,46,94,15,47, 1,15,47, 2,15,47, 3,15,47, 6,15,47, 7,
- 15,47, 8,15,47, 9,15,47,10,15,47,11,15,47,13,15,47,14,15,47,15,15,47,16,
- 15,52,63, 0, 0, 0, 0, 0, 0,15,47, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,54,24,
- 4,48,33, 7,14,21, 7,14,16, 5,52,58, 5,52,59, 7,14,30, 7,14,26, 7,14,18,
- 7, 3,22, 4,48,30, 4,48,35, 4,48,32, 5,52,61, 4,48,31, 7,14,29, 4,48,38,
- 7,14,27, 4,48,40, 4,48,34, 4,48,39, 7,14,25, 7,14,17, 7,14,32, 7,24, 9,
- 7,14,24, 5,52,63, 5,52,60, 7,14,23, 7,24, 8, 7,14,19, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,14,31,15,52,53,
- 15,52,54,15,52,55,15,52,56,15,52,57,15,52,58,15,52,59,15,52,60,15,52,61,
- 15,52,62,15,52,64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,14,20, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,14,22,
- 4,48,36,15,52,52, 0, 0, 0, 5,59,54, 7,24,17, 5,59,55, 7,24,22, 4,54,27,
- 7,24,15, 7,24,21, 4,54,26, 7,24,20, 7,24,12, 5,59,56, 4,54,23, 5,59,53,
- 7,24,10, 7,24,23, 7,24,16, 7,24,14, 7,24,18, 7,24,24, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,24,11, 7,24,13,15,58,16,15,58,17,
- 15,58,18,15,58,19,15,58,20,15,58,21, 0, 0, 0, 7,24,19, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,59,19, 4,59,24,
- 5,65,78, 5,65,75, 5,65,76, 5,65,77, 7,31,72, 7,31,71, 4,59,21, 4,59,23,
- /* plane 2, page 46 */
- 0, 254, /* first, last */
- 5,71,90, 5,76,13, 7,31,73, 7,31,70, 4,59,20, 7,31,67, 7,31,69, 7,39,15,
- 7,31,65, 7,31,68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,62,72,15,62,73,
- 15,62,74,15,62,77,15,62,78,15,62,79,15,62,81,15,62,82,15,62,84, 0, 0, 0,
- 15,62,76,15,62,75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,63,70, 4,63,72, 4,63,71, 4,63,73, 5,76,15,
- 7,39,18, 7,39,20, 7,39,22, 5,71,91, 7,39,16, 5,76,14, 7,39,24, 4,63,75,
- 7,39,21, 7,39,19, 7,39,17, 4,63,74, 5,71,89, 0, 0, 0, 0, 0, 0,15,66,30,
- 15,66,31,15,66,32,15,66,33,15,66,34,15,66,35,15,66,36,15,66,37,15,66,38,
- 15,66,41,15,69,15, 7,31,74, 0, 0, 0, 7,39,23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,66,39, 0, 0, 0, 5,76,18, 0, 0, 0, 4,70,31,
- 7,45,77, 4,67,40, 0, 0, 0, 7,45,76, 4,67,41, 7,45,80, 4,67,42, 7,45,78,
- 5,76,19, 5,76,16, 5,76,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,45,79,
- 15,69,13,15,69,14,15,69,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,51,36, 7,55,87, 4,70,33, 7,51,31,
- 7,51,35, 7,51,34, 4,70,34, 5,83,37, 7,51,33, 7,51,32, 0, 0, 0,15,71,54,
- 0, 0, 0,15,71,55,15,71,56,15,71,57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,55,88, 7,55,89, 5,83,36, 5,83,39, 5,80, 3, 7,55,90,
- 5,83,34, 5,83,38, 7,55,92, 7,59,55, 7,51,30, 0, 0, 0, 0, 0, 0,15,73,35,
- 15,73,36, 5,83,35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,55,91, 7,59,56, 0, 0, 0,
- 15,74,52,15,74,53,15,74,54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,62,74, 5,87,61,
- 7,62,73, 4,75,75, 7,62,75, 0, 0, 0, 0, 0, 0, 5,87,60, 7,62,72,15,75,41,
- 15,75,42,15,75,43,15,75,44, 0, 0, 0, 7,66,24,15,76,10,15,76,11, 0, 0, 0,
- 4,77,83, 7,67,51,15,76,65, 0, 0, 0, 7,70, 6, 4, 2,87, 4, 4,29, 4, 6,58,
- 15, 7,17,15, 7,18,15, 7,19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,17,56, 0, 0, 0,
- 0, 0, 0, 6,24, 2, 5,15,60, 4,13,30, 6,24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,22,36, 0, 0, 0, 6,32,25, 0, 0, 0, 0, 0, 0, 6,32,24, 6,41,47, 6,41,46,
- 15,27,44,15,27,45, 0, 0, 0, 0, 0, 0, 5,24,85, 6,51, 6,15,33,74, 6,51, 7,
- 0, 0, 0, 0, 0, 0, 5,38,13, 6,61,32, 0, 0, 0, 7, 3,38, 7, 3,39, 0, 0, 0,
- 5,52,64,15,52,65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,24,27, 7,24,26, 5,59,57,
- 0, 0, 0, 7,24,28, 7,45,81, 0, 0, 0, 5, 4,31, 6, 7,89, 5, 4,32, 6, 7,90,
- 0, 0, 0, 5, 4,33, 6, 7,88, 6,11,72, 4, 6,64, 0, 0, 0, 5, 6,34, 5, 6,32,
- 0, 0, 0, 4, 6,61, 6,11,76, 6,11,70, 0, 0, 0, 6,11,74, 6,11,73,
- /* plane 2, page 47 */
- 5, 255, /* first, last */
- 6,11,71, 5, 6,31, 5, 6,33,
- 4, 6,60, 4, 9,64, 6,17,57, 5, 9,44, 5, 9,43, 6,17,60, 6,17,62, 6,17,61,
- 5, 9,41, 5, 9,42, 0, 0, 0, 0, 0, 0, 4, 9,62, 4, 9,63, 0, 0, 0, 0, 0, 0,
- 6,17,59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,24, 3, 6,24, 4, 6,24, 6, 5,13,82,
- 6,17,63, 4,13,37, 6,24, 8, 5,13,80, 0, 0, 0, 6,24,10, 0, 0, 0, 5,13,79,
- 5,13,84, 0, 0, 0, 6,24, 5, 0, 0, 0, 5,13,83, 5,13,81, 6,24, 9, 6,24, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,13,33, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,18,77, 6,32,32, 0, 0, 0, 4,18,14, 0, 0, 0, 6,32,26,
- 6,32,27, 6,32,29, 5,18,79, 5,18,80, 4,18,16, 6,32,30, 6,32,28, 5,18,75,
- 6,32,33, 4,18,17, 4,18,10, 4,18,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,18, 9,
- 5,18,78,15,21,17,15,21,18,15,21,19,15,21,20,15,21,21, 0, 0, 0, 5,18,74,
- 6,32,31, 0, 0, 0, 0, 0, 0, 6,41,56, 0, 0, 0, 5,25, 2, 6,41,53, 4,23,90,
- 4,23,91, 6,41,57, 0, 0, 0, 0, 0, 0, 6,41,52, 6,41,58, 5,24,86, 5,24,94,
- 5,25, 1, 5,24,93, 5,24,87, 0, 0, 0, 6,41,54, 5,24,91, 6,41,49, 6,41,48,
- 6,41,51, 0, 0, 0, 4,23,82, 4,23,83, 4,23,84, 5,24,88, 5,24,89, 5,18,76,
- 0, 0, 0, 0, 0, 0, 6,41,50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,51,15,
- 5,24,90, 0, 0, 0, 5,31,55, 5,31,58, 5,31,60, 4,29,55, 4,29,63, 6,51,11,
- 6,51,14, 6,51, 9, 0, 0, 0, 5,31,59, 6,51,16, 6,51,13, 0, 0, 0, 6,51, 8,
- 4,29,64, 0, 0, 0, 5,31,54, 6,51,17, 5,31,57, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4,29,62, 4,29,53, 4,29,54, 4,29,56, 5,31,56, 6,51,10,15,33,75,
- 6,51,12, 0, 0, 0, 0, 0, 0, 5,18,81, 4,29,58, 6,53,64, 0, 0, 0, 5,38,20,
- 6,61,41, 5,38,18, 6,61,33, 4,35,72, 5,38,17, 6,61,34, 5,38,15, 6,61,38,
- 0, 0, 0, 5,38,23, 0, 0, 0, 5,38,21, 6,61,39, 6,61,37, 6,61,36, 6,61,40,
- 6,61,35, 6,61,42, 5,38,19, 0, 0, 0, 4,35,71, 5,38,22, 6,61,43, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,40, 5, 5,45,34,
- 5,45,39, 4,42,12, 7, 3,46, 7, 3,41, 0, 0, 0, 7, 3,40, 5,45,38, 0, 0, 0,
- 7, 3,50, 7, 3,47, 7, 3,45, 5,45,37, 7, 3,48, 5,45,35, 5,45,36,15,47,17,
- 7, 3,43, 7, 3,44, 0, 0, 0, 7, 3,42, 0, 0, 0, 0, 0, 0, 4,48,43, 7,14,34,
- 7,14,38, 7,14,40, 0, 0, 0,15,52,66, 5,52,65, 7,14,43, 0, 0, 0, 0, 0, 0,
- 7,14,39, 7,14,41, 7,14,33, 7,14,37, 7,14,44, 5,52,67, 7,14,42, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,48,42, 5,52,68, 5,52,69, 5,52,70,15,52,67, 7,14,36,
- 5,52,66, 7, 3,49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,52,71, 7,24,30, 7,24,29,
- /* plane 2, page 48 */
- 0, 255, /* first, last */
- 5,59,58, 5,59,62, 5,59,61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,54,28, 0, 0, 0,
- 0, 0, 0, 4,54,29, 5,59,59,15,58,23,15,58,24, 0, 0, 0, 7,24,31, 5,59,60,
- 5,65,80, 7,31,76, 5,65,79, 0, 0, 0, 4,59,27, 7,31,77, 7,31,78, 0, 0, 0,
- 4,59,25, 0, 0, 0, 7,31,75, 0, 0, 0, 0, 0, 0, 5,72, 1, 5,71,94, 0, 0, 0,
- 5,71,92, 5,71,93,15,66,42, 5,76,20, 4,67,45, 5,76,21, 7,45,82, 4,67,43,
- 7,45,85, 0, 0, 0, 7,45,84, 5,76,22, 7,45,86, 7,45,87, 4,70,36, 5,80, 5,
- 0, 0, 0, 5,80, 6, 0, 0, 0, 5,83,40,15,73,37, 7,59,57, 5,85,75, 4,74,42,
- 0, 0, 0, 0, 0, 0, 7,59,58, 0, 0, 0, 4,76,79,15,76,66, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15, 2,51,15, 4,38, 6,11,77, 0, 0, 0, 0, 0, 0,15,11,13,15,11,14,
- 15,11,15, 0, 0, 0, 6,24,13, 6,24,14,15,15,69, 0, 0, 0, 6,32,34, 6,32,36,
- 15,21,23,15,21,24, 6,32,35, 0, 0, 0, 0, 0, 0,15,27,46, 0, 0, 0, 5,31,61,
- 15,33,76, 6,51,18,15,21,22, 0, 0, 0, 5,45,40, 7, 3,52, 7, 3,51, 5,45,41,
- 15,47,19,15,47,20, 5,45,42, 7,14,45,15,58,25,15,62,85, 0, 0, 0,15,66,43,
- 0, 0, 0,15,71,58, 0, 0, 0, 7,59,59, 6, 2, 2, 0, 0, 0,15, 7,20, 0, 0, 0,
- 0, 0, 0, 6,17,64, 0, 0, 0, 4,13,40, 5,13,86, 5,13,85, 6,24,15, 5,18,82,
- 15,21,25, 0, 0, 0, 6,32,38, 6,32,37, 6,41,61,15,32,18, 0, 0, 0, 6,41,59,
- 6,41,60, 4,29,65, 6,61,44, 0, 0, 0, 5,31,62,15,33,77, 4,35,74, 0, 0, 0,
- 0, 0, 0, 4,42,13, 7, 3,53, 0, 0, 0, 7,24,32, 0, 0, 0, 0, 0, 0, 4,63,76,
- 0, 0, 0, 6, 2, 3, 0, 0, 0,15, 4,39, 6,11,79, 6,11,78, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,17,65, 0, 0, 0,15,15,70, 0, 0, 0, 0, 0, 0, 4,18,18, 6,32,40,
- 6,32,39, 6,41,64, 6,41,68, 6,41,67, 5,25, 3, 6,41,70, 6,41,63, 6,41,62,
- 6,41,66, 0, 0, 0, 4,23,92, 6,44,30, 0, 0, 0, 6,41,69, 4,29,66, 6,51,22,
- 0, 0, 0, 6,51,20, 6,51,23, 0, 0, 0, 0, 0, 0, 5,31,63, 6,61,47, 0, 0, 0,
- 6,61,46, 6,61,48, 3,39,17, 4,42,15, 6,61,45, 5,45,44, 0, 0, 0, 5,45,45,
- 7,14,49, 7,14,48, 7,14,47, 7,14,50, 0, 0, 0, 0, 0, 0, 7,14,46, 0, 0, 0,
- 4,48,45, 0, 0, 0, 7,24,33, 7,24,34, 7,31,79, 4,59,28, 0, 0, 0, 7,31,80,
- 7,31,81, 7,39,25, 0, 0, 0,15,66,44, 7,45,88, 0, 0, 0, 7,55,93, 0, 0, 0,
- 4, 4,34, 6, 7,91, 0, 0, 0,15, 7,21,15, 7,22, 5, 9,45, 6,17,68, 6,17,67,
- 0, 0, 0,15,11,16, 6,17,66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,13,42, 5,13,87,
- 6,24,17, 6,24,19, 6,24,21,15,15,71,15,15,72,15,15,73,15,15,74, 6,24,18,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,18,19, 0, 0, 0, 4,18,21, 0, 0, 0, 6,32,42,
- 15,21,26,15,21,27, 0, 0, 0, 6,32,41, 6,41,73, 5,25, 5, 5,25, 4, 6,41,72,
- /* plane 2, page 49 */
- 0, 255, /* first, last */
- 6,41,74, 6,41,71,15,27,47, 0, 0, 0,15,27,48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,51,24, 5,31,64, 6,51,25,15,33,78,15,33,79, 0, 0, 0, 5,38,24, 5,38,26,
- 6,61,50, 5,38,25, 0, 0, 0, 0, 0, 0, 7, 3,54, 0, 0, 0, 0, 0, 0,15,47,21,
- 7,14,51, 5,52,72, 7,24,35, 0, 0, 0, 0, 0, 0, 5,59,63, 7,31,83, 5,65,81,
- 4,59,29, 7,31,84, 7,31,82, 0, 0, 0, 7,39,26, 0, 0, 0, 7,51,37, 4,72,77,
- 7,55,94, 0, 0, 0, 7,62,76, 7,64,80, 0, 0, 0, 0, 0, 0, 5, 4,34, 0, 0, 0,
- 5, 9,46, 5,13,89, 5,13,88, 0, 0, 0, 4,23,93, 6,41,75, 6,51,26, 6,51,27,
- 4,29,70,15,47,22, 0, 0, 0, 6, 3,12, 6, 3,11, 0, 0, 0, 6, 4,91, 5, 2,83,
- 6, 4,90, 6, 4,92,15, 2,52, 0, 0, 0,15, 4,43, 0, 0, 0, 6, 7,92, 6, 7,93,
- 6, 8, 5, 5, 4,35, 6, 8, 2, 6, 7,94, 6, 8, 4, 0, 0, 0, 6, 8, 3, 0, 0, 0,
- 6, 8, 1,15, 4,40,15, 4,42,15, 4,44, 0, 0, 0, 0, 0, 0, 4, 4,36, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 6,40, 6,11,84, 6,11,83, 5, 6,41, 6,11,93, 5, 6,36,
- 6,11,89, 5, 6,39, 6,11,90, 6,11,87, 5, 6,38, 5, 6,37, 6,11,85, 6,11,88,
- 15, 7,23,15, 7,24,15, 7,25,15, 7,26,15, 7,27,15, 7,28,15, 7,29, 6,11,81,
- 0, 0, 0, 6,11,91, 6,11,92, 6,11,82, 6,11,86, 0, 0, 0, 0, 0, 0, 5, 9,49,
- 6,17,69, 6,17,70, 5, 9,48, 4, 9,70, 6,17,72, 6,17,73, 4, 9,72, 0, 0, 0,
- 0, 0, 0,15,11,17, 0, 0, 0,15,11,18, 6,17,74,15,11,21,15,11,22, 0, 0, 0,
- 0, 0, 0, 6,17,78, 6,17,76, 6,17,75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,13,94, 6,24,26, 5,14, 1, 5,14, 2, 5,13,91, 5,14, 3,
- 5,13,92, 5,13,90, 6,24,30, 6,24,24, 6,24,28, 5,13,93, 6,24,25, 0, 0, 0,
- 6,24,29, 0, 0, 0, 0, 0, 0,15,15,75, 0, 0, 0, 0, 0, 0,15,15,77, 6,24,27,
- 15,15,76, 6,24,33, 0, 0, 0, 6,24,31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,18,83, 4,18,24, 4,24, 1, 6,32,51, 4,18,29, 6,32,46,
- 6,32,43, 6,32,44, 6,32,48, 6,32,45, 6,32,53, 5,18,85, 6,24,32, 6,32,52,
- 6,32,54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,21,28, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,21,29,15,21,30,15,21,31,15,21,32,15,21,33,
- 15,21,34,15,21,35,15,21,36,15,21,37,15,21,38,15,21,39, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,32,50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,18,84, 6,41,81, 6,41,84, 4,18,28, 5,31,65, 5,25,10,
- 6,41,79, 5,25, 7, 6,41,80, 5,25, 9, 5,25, 6, 0, 0, 0, 6,41,76, 6,41,77,
- 4,24, 3, 6,41,86, 5,25,11, 4,24, 7, 0, 0, 0, 0, 0, 0, 6,41,78, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,41,85, 6,41,87,15,27,49,15,27,51,15,27,52,15,27,54,
- /* plane 2, page 50 */
- 0, 255, /* first, last */
- 15,27,55,15,27,57,15,27,58,15,27,60,15,27,61, 0, 0, 0, 0, 0, 0,15,27,50,
- 15,27,56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,24, 6, 0, 0, 0, 4,24, 8,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,41,82,
- 5,25,12, 5,25, 8, 0, 0, 0, 0, 0, 0, 6,51,35, 5,31,67, 6,51,33, 6,61,51,
- 6,51,34, 6,51,31, 6,51,36, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,38,25, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,27,59, 6,51,30,15,33,80,
- 15,33,81,15,33,83,15,33,84,15,33,85,15,33,86,15,33,87,15,33,88, 0, 0, 0,
- 15,33,89,15,33,90,15,33,91,15,33,93, 5,29,53, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,51,37, 0, 0, 0, 6,51,32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,31,68, 5,38,27, 5,38,31, 5,38,29, 5,38,30, 6,61,54, 5,38,32,
- 5,38,35, 5,38,36, 4,35,76, 5,38,34, 5,45,46, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,40,42,15,40,43,15,40,44,15,40,45,15,40,46,
- 15,40,47, 6,61,52, 5,38,28, 6,61,55, 6,61,57, 6,61,58, 0, 0, 0, 0, 0, 0,
- 6,61,53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,61,56, 7, 3,65, 7, 3,60, 7, 3,59, 7, 3,62, 5,45,50,
- 0, 0, 0, 5,45,53, 7, 3,58, 7, 3,55, 7, 3,56, 0, 0, 0, 7, 3,66, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,47,23,
- 15,47,25,15,47,26, 0, 0, 0, 0, 0, 0, 5,45,52, 7, 3,64,15,46,16, 0, 0, 0,
- 0, 0, 0, 7, 3,61, 7, 3,63, 7, 3,57, 0, 0, 0, 5,45,49, 5,52,73, 5,52,75,
- 7,14,55, 4,48,53, 0, 0, 0, 7,14,53, 7,14,59, 7,14,57, 7,14,61, 4,48,52,
- 7,14,60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,14,52,15,52,69,
- 15,52,70,15,52,71,15,52,73,15,52,74, 7,14,56, 0, 0, 0, 5,45,47, 0, 0, 0,
- 7,13,66, 0, 0, 0,15,52,72, 0, 0, 0, 0, 0, 0, 7,14,35, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,52,74, 7,14,54, 0, 0, 0, 0, 0, 0,
- 15,47,24, 7,24,39, 5,59,64, 5,59,65, 7,24,40, 5,59,66, 0, 0, 0, 7,24,37,
- 7,24,38, 0, 0, 0, 0, 0, 0, 7,24,41,15,58,26,15,58,27,15,58,28, 7,24,36,
- 15,58,29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,59,30, 5,65,82,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,65,83, 0, 0, 0, 7,31,85, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,62,86,15,62,87,15,62,88,15,62,89,15,62,91, 7,31,88,
- 0, 0, 0, 0, 0, 0, 5,72, 3, 7,39,29, 7,39,28, 5,72, 2, 5,72, 4, 7,39,27,
- 7,39,30, 0, 0, 0,15,66,45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,76,23,
- /* plane 2, page 51 */
- 3, 254, /* first, last */
- 15,69,17,15,69,18, 5,75,78, 0, 0, 0, 7,45,89,
- 7,51,38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,56, 1,15,73,38, 5,83,25,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,83,41, 0, 0, 0, 0, 0, 0, 7,59,60, 5,87,62,
- 7,62,77,15,75,45, 0, 0, 0, 0, 0, 0, 5,89,11, 0, 0, 0, 0, 0, 0, 7,68,39,
- 0, 0, 0, 0, 0, 0,15, 4,45, 6,11,94,15, 7,31,15, 7,32, 6,12, 1, 5, 9,51,
- 5, 9,50, 6,17,80,15,11,23,15,11,25, 6,17,79, 6,24,34, 0, 0, 0,15,15,79,
- 15,15,80,15,15,81,15,15,82,15,15,83, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,21,41,
- 15,21,42, 0, 0, 0, 0, 0, 0,15,27,63, 6,41,90, 6,41,89, 5,31,69, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,35,80, 6,51,38, 0, 0, 0, 5,45,55, 5,45,54,
- 7, 3,67, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,52,75, 0, 0, 0, 0, 0, 0, 5,59,67,
- 0, 0, 0, 7,31,90, 5,65,84, 7,31,89, 7,31,87, 0, 0, 0, 4,63,77, 0, 0, 0,
- 7,45,90, 7,45,91, 0, 0, 0, 5,91,31, 7,70,30, 6, 3,13, 6, 4,93, 5, 4,36,
- 6, 8, 9, 6, 8, 7, 6, 8, 8, 6, 8, 6, 6,12, 2, 5, 9,52, 4, 9,73, 4, 9,74,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,11,26, 6,17,81, 0, 0, 0, 6,24,35, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,21,43, 5,18,86, 6,32,57, 6,32,59, 6,41,93,
- 6,41,92, 6,32,58, 5,25,13, 0, 0, 0,15,25,38, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,27,65,15,27,66, 0, 0, 0, 6,51,39, 5,31,71, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,27,64,15,33,94,15,34, 1, 6,51,40, 6,61,61, 0, 0, 0, 0, 0, 0,
- 6,61,62, 0, 0, 0, 7, 3,68, 4,42,20, 5,45,57, 0, 0, 0, 0, 0, 0, 4,42,19,
- 15,47,27,15,47,28, 5,52,78, 5,52,76, 5,59,68, 0, 0, 0, 0, 0, 0, 5,52,77,
- 15,52,77,15,52,78, 0, 0, 0, 7,24,43, 7,24,42,15,58,30, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,65,85, 0, 0, 0, 0, 0, 0,15,62,92, 7,31,91, 5,76,24, 0, 0, 0,
- 0, 0, 0, 5,85,79, 5,87,63, 5, 1,40, 4, 1,46, 4, 1,93,15, 1,69, 0, 0, 0,
- 5, 2,85, 6, 5, 2, 5, 2,84, 6, 4,94, 6, 5, 1,15, 2,54, 0, 0, 0, 4, 2,91,
- 4, 2,90, 6, 8,12, 4, 4,41, 6, 8,10, 0, 0, 0, 6, 8,11,15, 4,46,15, 4,47,
- 15, 4,52,15, 4,48,15, 4,50, 5, 4,38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6, 8,13, 5, 4,37, 4, 4,37, 0, 0, 0, 4, 6,75, 5, 6,44, 4, 6,70, 5, 6,43,
- 6,12,11, 5, 6,48, 5, 6,50, 6,12, 8, 6,12, 7, 6,12, 6, 5, 6,45, 5, 6,51,
- 5, 6,47, 5, 6,46, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 7,35, 0, 0, 0,15, 7,37,
- 15, 7,38,15, 7,39,15, 7,41,15, 7,42,15, 7,43,15, 7,45,15, 7,47,15, 7,49,
- 15, 7,52,15, 7,53, 6,12, 4, 6,12, 9, 0, 0, 0, 0, 0, 0, 5, 6,52, 0, 0, 0,
- 6,12,12,15, 7,36, 0, 0, 0, 6,12,13, 0, 0, 0, 6,12,10,15, 7,40,
- /* plane 2, page 52 */
- 0, 255, /* first, last */
- 15, 7,34, 6,12, 5, 0, 0, 0, 5, 6,53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,13,60,
- 6,17,84, 6,17,83, 4, 9,75, 5, 9,54, 6,17,85, 6,17,86, 5, 9,53, 5, 9,57,
- 6,17,87, 5,14, 6, 5, 9,58, 5, 9,56, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 7,51,
- 15,11,27,15,11,28,15,11,29,15,11,31,15,11,32,15,11,33,15,11,34,15,11,35,
- 15,11,36,15,11,37,15,11,38,15,11,39,15,11,41,15,11,42,15,11,43,15,11,44,
- 15,11,45,15,11,46,15,11,47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 9,59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,32,60, 6,24,47, 6,24,51,
- 6,24,43, 6,24,45, 6,24,38, 5,14, 7, 6,24,40, 6,24,37, 6,24,49, 4,13,48,
- 6,32,61, 5, 9,55, 5,14, 9, 5,14,10, 6,24,36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,15,84,
- 0, 0, 0,15,15,85,15,15,86,15,15,88,15,15,89,15,15,90,15,15,91,15,15,92,
- 15,15,93,15,15,94,15,16, 1,15,16, 2,15,16, 3,15,16, 5,15,16, 6,15,16, 7,
- 15,16, 9,15,16,10,15,16,11,15,16,12,15,16,14, 6,24,44, 0, 0, 0, 0, 0, 0,
- 6,24,39, 0, 0, 0, 6,24,41, 4,13,51, 0, 0, 0, 6,24,46,15,16,16,15,16, 8,
- 0, 0, 0, 4,13,58,15,16,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,14,12, 5,14, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,15,87, 6,24,50, 6,32,72,
- 6,32,73, 6,32,63, 5,18,87, 5,19, 1, 5,25,22, 4,18,37, 4,18,32, 5,18,93,
- 6,32,71, 6,42,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,32,67,
- 15,21,44,15,21,45,15,21,47,15,21,48,15,21,49,15,21,50,15,21,51,15,21,52,
- 15,21,53,15,21,54,15,21,56,15,21,57,15,21,58,15,21,59,15,21,60,15,21,61,
- 15,21,62,15,21,63,15,21,64,15,21,65,15,21,66,15,21,67,15,21,69,15,21,70,
- 6,32,68, 6,32,70, 6,32,69, 4,18,39, 6,32,66, 6,32,64, 0, 0, 0, 6,32,65,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,18,36, 5,19, 2,
- 5,18,88, 5,18,91, 5,18,90, 5,18,92, 6,32,74, 0, 0, 0, 0, 0, 0,15,21,46,
- 6,32,62, 4,24,22, 6,42,20, 5,25,21, 6,51,41, 4,24,14, 5,25,24, 6,42, 2,
- 5,25,18, 4,24,11, 5,25,16, 5,25,20, 4,24,17, 6,42,13, 6,42,15, 5,25,26,
- 6,42, 4, 6,42, 1, 5,25,23, 6,42,19, 5,25,28, 5,25,27, 6,42, 6, 4,24,16,
- 6,42, 7, 6,42,10, 6,42,17, 5,25,32, 6,51,42, 5,25,29, 6,42,24, 6,42, 3,
- 6,42, 5, 6,42,21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,24,19,
- 4,24,24, 6,42,22, 6,42,23,15,27,68,15,27,69,15,27,71,15,27,72,15,27,73,
- 15,27,75,15,27,76,15,27,77,15,27,79,15,27,81,15,27,82,15,27,84,15,27,85,
- 15,27,86,15,27,87,15,27,88,15,27,89,15,27,90,15,27,91,15,27,92,15,27,93,
- /* plane 2, page 53 */
- 0, 251, /* first, last */
- 15,27,94,15,28, 2,15,28, 3,15,28, 4,15,28, 5,15,28, 6,15,28, 7,15,28, 8,
- 15,28,10,15,28,11,15,28,12,15,28,13,15,28,14,15,28,15, 6,42, 9, 6,42,11,
- 0, 0, 0, 6,42,12, 6,42,18, 5,25,34, 6,42,16, 6,42,25, 6,42, 8, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,25,30, 5,25,33, 5,25,14, 5,25,15, 5,25,17,
- 0, 0, 0, 6,51,46, 6,51,56, 4,29,87, 6,51,54, 4,29,84, 6,51,55, 5,31,79,
- 5,31,74, 5,31,78, 5,31,75, 4,29,74, 6,51,59, 5,31,83, 6,51,65, 5,31,72,
- 4,29,90, 5,31,84, 5,31,73, 6,51,53, 5,31,80, 5,31,77, 6,51,64, 4,29,83,
- 6,51,57, 6,51,58, 6,51,61, 6,51,48, 4,29,80, 6,51,60, 5,31,76, 0, 0, 0,
- 6,51,67, 6,51,47, 6,51,49, 6,51,44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,34, 3, 0, 0, 0,15,34, 4,15,34, 5,15,34, 6,15,34, 7,15,34, 9,
- 15,34,10,15,34,11,15,34,12,15,34,13,15,34,14,15,34,16,15,34,17,15,34,18,
- 15,34,19,15,34,20,15,34,21,15,34,22,15,34,24,15,34,25,15,34,26,15,34,27,
- 15,34,29,15,34,30,15,34,31,15,34,32,15,34,33,15,34,34,15,34,35,15,34,36,
- 15,34,37,15,34,38,15,34,40,15,34,42,15,34,44, 0, 0, 0, 0, 0, 0, 6,51,45,
- 6,51,50, 6,51,52, 4,29,89, 6,51,66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,51,43,
- 0, 0, 0, 0, 0, 0, 6,51,63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,34, 2, 0, 0, 0, 0, 0, 0,15,34,15, 0, 0, 0,15,34,23, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,25,31, 5,31,82, 6,51,51,15,35,84, 0, 0, 0,
- 5,38,46,15,34,43, 5,38,48, 4,35,91, 4,35,82, 5,38,45, 5,38,47, 6,61,73,
- 5,38,53, 5,38,50, 7, 3,69, 0, 0, 0, 6,51,68, 5,38,39, 6,61,63, 5,38,52,
- 5,38,38, 5,38,56, 6,61,66, 5,38,42, 5,38,51, 6,61,67, 4,35,86, 5,38,40,
- 0, 0, 0, 5,38,41, 6,61,69, 5,38,44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,38,49, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,40,55,15,40,56,15,40,57,15,40,58,
- 15,40,59,15,40,60,15,40,61,15,40,62,15,40,63,15,40,64,15,40,65,15,40,66,
- 15,40,67,15,40,68,15,40,69,15,40,70,15,40,71,15,40,72,15,40,73,15,40,74,
- 15,40,75,15,40,76,15,40,77,15,40,78,15,40,79,15,40,81,15,40,82,15,40,83,
- 15,40,85, 0, 0, 0, 0, 0, 0, 3,39,43, 6,61,74, 6,61,71, 0, 0, 0, 6,61,75,
- 6,61,76, 0, 0, 0, 5,38,54, 5,38,55,
- /* plane 2, page 54 */
- 0, 255, /* first, last */
- 15,40,84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,61,68, 0, 0, 0, 6,61,70,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,40,48, 0, 0, 0,15,40,49,15,40,51,15,40,52,
- 6,61,64, 6,61,77, 6,61,65, 0, 0, 0,15,40,54, 7, 3,72, 5,45,71, 5,45,62,
- 4,42,27, 4,42,39, 5,45,59, 4,42,32, 7, 3,81, 7, 3,76, 7, 3,84, 5,45,75,
- 5,45,69, 7, 3,80, 4,42,38, 5,45,63, 4,42,31, 5,45,68, 4,42,35, 4,42,30,
- 4,42,21, 7, 3,83, 5,45,60, 4,42,42, 5,45,73, 7, 3,78, 5,45,67, 5,45,74,
- 7, 3,73, 4,42,33, 5,45,61, 7, 3,85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,42,28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,42,37,
- 0, 0, 0, 4,42,41, 7, 3,70, 7, 3,74,15,47,29,15,47,30,15,47,31,15,47,35,
- 15,47,36,15,47,38,15,47,39,15,47,40,15,47,41,15,47,42,15,47,43,15,47,44,
- 15,47,45,15,47,46,15,47,47,15,47,48,15,47,49,15,47,50,15,47,51, 0, 0, 0,
- 0, 0, 0,15,47,32, 0, 0, 0, 7, 3,75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,45,76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,45,72, 5,45,70, 7, 3,71, 7, 3,77, 5,45,64, 5,45,58, 5,45,66, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,48,59, 5,52,93, 7,14,73, 4,48,69, 4,48,56,
- 5,59,69, 7,24,44, 7,14,64, 7,14,67, 5,52,91, 7,14,72, 7,14,82, 5,52,90,
- 7,14,79, 7,14,66, 4,48,66, 4,54,44, 4,48,55, 7,14,63, 4,48,63, 5,52,89,
- 7,14,71, 7,14,68, 5,52,81, 0, 0, 0, 5,52,87, 4,48,60, 7,14,78, 7,14,84,
- 5,52,88, 4,48,61, 7,14,70, 7,14,75, 4,48,67, 5,52,80, 7,14,65, 5,65,91,
- 5,52,85, 5,52,86, 5,52,82, 4,42,36, 7,14,83, 7,14,76, 7,14,69, 0, 0, 0,
- 7,14,62, 5,52,92, 5,52,79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,52,83,
- 15,52,79,15,52,80,15,52,81,15,52,82,15,52,83,15,52,85,15,52,86,15,52,87,
- 15,52,88,15,52,89,15,52,90,15,52,92,15,52,93,15,52,94,15,53, 1,15,53, 2,
- 15,53, 4,15,53, 5,15,53, 6,15,53, 7,15,53, 8,15,53,11,15,53,12,15,53,13,
- 15,53,14,15,53,15,15,53,16,15,53,18,15,53,19,15,53,20,15,53,21,15,53,22,
- 15,53,23,15,53,24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,14,80, 0, 0, 0,
- 7,14,81, 0, 0, 0, 4,48,65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,53, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,52,84,15,40,80, 0, 0, 0,15,47,33, 0, 0, 0,
- 7,14,77, 4,54,35, 7,24,48, 7,24,46, 4,54,39, 7,24,50, 7,24,54, 5,59,74,
- 5,59,75, 4,54,42, 4,54,38, 5,59,78, 7,24,51, 5,59,76, 0, 0, 0, 7,24,49,
- /* plane 2, page 55 */
- 0, 254, /* first, last */
- 7,24,55, 5,65,92, 5,59,71, 4,54,45, 4,54,36, 7,24,57, 4,54,34, 5,59,73,
- 7,24,59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,59,70, 7,24,52,15,58,32,
- 15,58,33,15,58,35,15,58,36,15,58,37,15,58,38,15,58,39,15,58,40,15,58,41,
- 15,58,42,15,58,43,15,58,44,15,58,46,15,58,47,15,58,49,15,58,50,15,58,52,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,24,56, 5,59,77, 7,24,58, 7,24,45, 7,24,47,
- 7,23, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,58,51, 0, 0, 0, 0, 0, 0,15,58,45,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,59,79, 5,59,80, 0, 0, 0,15,53,17, 0, 0, 0, 0, 0, 0,15,58,48,
- 0, 0, 0, 4,59,39, 5,65,88, 7,32, 7, 7,32, 3, 4,59,34, 7,32,11, 5,66, 4,
- 5,65,93, 5,66, 6, 7,32, 9, 4,59,37, 5,65,90, 5,66, 2, 5,66, 7, 5,65,94,
- 7,24,60, 5,66,11, 5,65,89, 4,59,35, 4,59,44, 4,59,38, 7,32,13, 7,32, 8,
- 5,66, 3, 7,39,38, 5,66, 9, 7,32, 6, 4,59,43, 5,66, 8, 5,66, 5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,65,86, 0, 0, 0, 7,31,92,
- 7,31,93,15,62,94,15,63, 2,15,63, 3,15,63, 4,15,63, 5,15,63, 6,15,63, 7,
- 15,63, 8,15,63,10,15,63,11,15,63,12,15,63,14,15,63,15,15,63,16, 7,32, 1,
- 0, 0, 0, 7,32, 5, 0, 0, 0, 7,32,12, 7,32,10, 0, 0, 0, 5,66, 1, 0, 0, 0,
- 0, 0, 0,15,63, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,66,10, 5,65,87,
- 0, 0, 0, 7,32, 2, 0, 0, 0, 7,32, 4,15,63,13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,72, 5, 7,39,35, 5,72, 8, 5,72,11, 5,72, 9, 7,39,34, 7,39,32, 5,72,13,
- 7,39,33, 4,63,84, 7,39,40, 7,39,41, 5,72, 7, 5,72, 6, 7,39,37, 5,72,15,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,39,39, 7,31,94,15,66,50,15,66,54,15,66,56,
- 15,66,57,15,66,58,15,66,59,15,66,60,15,66,61,15,66,63,15,66,64,15,66,65,
- 5,72,14, 0, 0, 0, 7,39,36, 0, 0, 0, 0, 0, 0, 7,39,31,15,66,52, 5,72,12,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,66,55,15,66,47, 0, 0, 0, 0, 0, 0,15,66,62,
- 0, 0, 0, 0, 0, 0,15,62,93, 0, 0, 0, 4,67,51, 7,45,92, 5,76,31, 7,45,94,
- 5,76,34, 5,72,16, 5,76,26, 5,76,25, 5,76,29, 7,45,93, 5,76,28, 5,76,33,
- 5,76,27, 5,72,10, 5,76,32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,76,30,15,69,19,15,69,20,15,69,21,15,69,22,15,69,23,15,69,25,15,69,26,
- 15,69,27,15,69,28,15,69,29,15,69,31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,46, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,67,50, 0, 0, 0, 0, 0, 0, 7,51,41,
- 7,51,40, 0, 0, 0, 5,80,11, 5,80,13, 4,70,38, 5,80, 9, 7,51,45, 0, 0, 0,
- 5,80, 8, 5,80,10, 5,80,12, 7,51,42, 4,70,37, 5,80,15, 7,51,46,
- /* plane 2, page 56 */
- 1, 255, /* first, last */
- 5,80,18,15,71,59,15,71,60,15,71,61,15,71,62,15,71,63,15,71,64,
- 15,71,65,15,71,66,15,71,67,15,71,68, 7,51,44, 0, 0, 0, 5,80,17, 5,80,16,
- 7,51,43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,80,14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,56, 6, 5,83,46, 5,83,47, 5,83,44, 5,83,42, 4,72,79, 5,83,43,
- 5,83,45, 7,56, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,73,39,15,73,40,15,73,41,
- 15,73,43,15,73,46,15,73,47,15,73,48,15,73,49, 7,56, 4, 7,56, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,71,69, 0, 0, 0, 5,85,81,
- 5,85,83, 5,87,64, 5,85,84, 7,59,64, 5,85,82, 7,59,65, 5,85,85, 7,59,63,
- 5,87,65, 0, 0, 0, 0, 0, 0, 7,59,61,15,74,55,15,74,57, 7,59,62, 0, 0, 0,
- 0, 0, 0, 5,85,86, 5,85,80, 0, 0, 0, 4,75,76, 7,62,78, 5,87,66, 7,64,81,
- 15,75,46,15,75,47,15,75,48,15,75,51,15,75,52, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,62,79, 0, 0, 0, 0, 0, 0, 7,62,80,15,74,56, 0, 0, 0, 7,64,82, 0, 0, 0,
- 5,89,13, 0, 0, 0,15,76,12, 7,64,83, 0, 0, 0, 5,89,12, 0, 0, 0, 5,89,14,
- 15,75,50, 5,90, 9, 7,67,52, 7,64,84, 0, 0, 0, 4,77,53,15,76,13, 0, 0, 0,
- 0, 0, 0,15,76,44,15,76,67, 7,67,44, 7,67,53, 0, 0, 0, 5,91,32, 7,68,40,
- 7,68,41, 0, 0, 0, 7,69,59,15,77,15, 7,69,84, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6, 5, 4, 4, 4,43, 6, 8,15, 6,12,14, 6, 8,18, 5, 4,39, 6, 8,17, 4, 4,42,
- 0, 0, 0, 5, 6,60, 5, 6,59, 5, 6,56, 6,12,15, 4, 6,79, 6,12,16, 5, 6,61,
- 4, 6,78, 5, 6,57, 5, 6,58, 5, 6,55,15, 7,54, 0, 0, 0, 0, 0, 0, 5, 9,63,
- 6,17,90, 6,24,52, 6,17,92, 5, 9,66, 4, 9,85, 5, 9,65, 5, 9,62, 6,17,89,
- 5, 9,60, 5, 9,64, 6,17,91, 5, 9,61, 0, 0, 0, 0, 0, 0,15,12,87, 6,24,55,
- 6,24,56, 6,24,53, 5,14,19, 0, 0, 0, 5,14,13, 6,24,54, 6,32,75, 5,14,18,
- 4,13,63, 5,14,15, 5,14,20, 5,14,17, 5,14,16,15,16,17, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,19, 5, 6,32,76, 0, 0, 0, 6,32,77, 0, 0, 0,15,21,71,
- 15,21,72,15,21,73,15,21,74,15,21,75,15,21,76,15,21,77,15,21,78, 0, 0, 0,
- 4,24,29, 5,25,39, 5,31,87, 4,24,26, 5,25,37, 6,42,28, 5,19, 4, 5,25,40,
- 6,42,29, 5,25,36, 5,25,41, 6,42,30, 0, 0, 0, 5,25,38, 6,42,27,15,28,16,
- 15,28,17, 6,42,26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,51,78, 5,31,86, 5,31,85,
- 5,31,90, 6,51,75, 5,31,89, 6,51,71, 6,51,70, 6,51,72, 6,51,73, 6,51,74,
- 6,51,77, 5,31,88, 0, 0, 0,15,34,46, 6,56,58, 0, 0, 0, 0, 0, 0, 6,51,76,
- 6,51,69,15,34,45, 5,38,60, 4,36,11, 5,38,62, 6,61,79, 6,61,78, 4,36,12,
- 5,38,61, 4,36, 9, 6,61,85, 6,61,80, 5,38,58, 6,61,86, 6,61,84, 5,38,59,
- /* plane 2, page 57 */
- 0, 255, /* first, last */
- 6,61,82, 6,61,81, 6,61,83, 6,51,79,15,40,86,15,40,88, 0, 0, 0, 5,38,57,
- 5,45,78, 7, 3,93, 5,45,80, 5,45,81, 4,42,45, 7, 3,89, 7, 3,87, 7, 3,94,
- 7, 3,86, 7, 3,90, 7, 3,91, 0, 0, 0, 5,45,79,15,47,52, 0, 0, 0, 7, 3,92,
- 5,52,94, 7,14,86, 4,48,72, 0, 0, 0, 7,14,85,15,53,26,15,53,27, 0, 0, 0,
- 7,24,62, 7,24,64, 5,59,81, 7,24,63,15,58,53, 7,24,61, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,66,12, 0, 0, 0, 0, 0, 0, 5,72,18, 5,72,17,15,66,66, 0, 0, 0,
- 0, 0, 0, 5,80,22, 7,46, 3, 0, 0, 0, 5,80,21, 5,80,20, 4,72,80, 5,80,19,
- 0, 0, 0, 5,83,48, 7,56, 9, 7,56, 7, 7,56, 8, 0, 0, 0, 5,87,67, 7,64,85,
- 4,76,80, 4,77,54, 5, 1,18, 5, 1,80, 6, 3,14, 6, 5, 6, 0, 0, 0, 5, 4,42,
- 6, 8,20, 6,12,17, 5, 4,41, 5, 4,43, 6, 8,19, 6,12,28, 6,12,20, 6,12,27,
- 6,12,26, 6,12,22, 6,12,19, 6,12,24, 6,12,18, 6,12,23, 5, 6,62, 6,12,25,
- 6,12,21, 5, 6,63, 0, 0, 0,15, 7,55,15, 7,56,15, 7,57, 0, 0, 0, 0, 0, 0,
- 4, 6,82, 0, 0, 0, 4, 9,86, 5, 9,67, 0, 0, 0, 5, 8,21, 6,24,57, 6,24,60,
- 5,14,21, 6,24,58, 6,24,62, 6,24,61, 0, 0, 0, 6,24,59, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,23,40, 5,19, 6, 6,32,80,15,21,79, 0, 0, 0, 0, 0, 0,
- 6,32,79, 4,24,32, 4,24,30, 5,25,42, 5,25,43, 6,42,35, 4,24,33, 6,42,34,
- 0, 0, 0, 6,42,36, 6,42,32, 6,42,37, 6,42,38, 6,42,33, 0, 0, 0, 5,31,92,
- 6,51,80, 5,31,91,15,34,47, 6,58,65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 2, 7, 4, 5, 7, 4, 3, 7, 4, 6,
- 7, 4, 1, 7, 4, 4,15,47,53, 0, 0, 0, 7,14,90, 7,14,89, 7,14,87, 7,14,88,
- 0, 0, 0, 7,24,65, 4,54,48, 0, 0, 0,15,58,54,15,58,55, 5,66,13, 5,66,14,
- 7,32,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,83,49,
- 0, 0, 0, 7,59,66, 7,59,67, 0, 0, 0, 0, 0, 0, 5, 1,81, 5, 1,41, 5, 2,86,
- 6, 8,21, 4, 2,93, 6, 5, 7, 5, 4,44, 4, 4,45, 6, 5, 8, 0, 0, 0, 6, 8,22,
- 6, 8,27, 6, 8,23, 4, 4,44, 6, 8,28, 5, 4,45, 6, 8,25, 6, 8,24, 6, 8,26,
- 0, 0, 0, 6,12,31, 5, 6,64, 5, 6,70, 5, 6,65, 5, 6,68, 4, 6,83, 4, 6,84,
- 5, 6,67, 4, 6,87, 6,12,29, 6,12,30, 6,12,32, 6,17,93, 5, 6,69, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 9,72, 4, 9,88, 4, 9,89,
- 6,18, 6, 4, 9,87, 6,17,94, 5, 9,68, 5, 9,69, 5, 9,75, 5, 9,70, 5, 9,71,
- 6,18, 5, 4, 9,90, 6,18, 2, 6,18, 3, 5, 9,74, 6,18, 4, 6,24,63,15,11,48,
- 6,18, 1, 5, 9,76, 5,14,22, 4,13,67, 6,24,66, 5,14,27, 6,24,69, 5,14,28,
- 5,14,24, 5,14,25, 0, 0, 0, 6,24,67, 6,24,70, 5,14,29, 5,14,23, 5,14,26,
- /* plane 2, page 58 */
- 0, 255, /* first, last */
- 5,14,30, 6,24,64, 0, 0, 0, 6,24,65, 0, 0, 0, 5,19,11, 6,32,84, 5,19,10,
- 6,32,83, 5,19, 7, 5,19, 8, 5,19, 9, 6,32,81, 4,18,43, 5,19,12, 6,42,41,
- 6,32,85, 6,32,82,15,21,81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,51,82, 6,42,42,
- 5,25,51, 4,24,40, 6,42,43, 4,24,35, 5,25,46, 5,25,45, 5,25,47, 4,24,39,
- 5,25,50, 5,25,52, 5,25,48, 5,25,44, 5,25,49, 6,42,44, 6,51,81, 0, 0, 0,
- 6,42,40,15,28,18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,51,84,
- 0, 0, 0, 6,51,89, 5,31,93, 5,31,94, 6,51,86, 6,51,88, 4,30, 5, 6,61,88,
- 6,51,90, 6,51,85, 0, 0, 0, 6,51,83, 0, 0, 0,15,34,48, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,21,80, 4,36,20, 4,36,14, 6,61,91, 6,61,92,
- 4,36,15, 6,61,89, 0, 0, 0, 6,61,90, 6,61,13, 7, 4, 9, 4,42,49, 5,45,82,
- 7, 4, 7, 5,45,85, 7, 4, 8, 7, 4,11, 5,45,84, 4,48,73, 7, 4,12, 7, 4,10,
- 15,47,54, 5,45,83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,14,91, 7,14,92, 5,53, 1,
- 4,48,76, 5,53, 3, 5,53, 2, 7,14,94,15,53,28,15,53,29, 0, 0, 0, 0, 0, 0,
- 7,24,68, 7,24,66, 5,59,83, 7,24,69, 7,24,67, 5,59,84, 0, 0, 0, 5,66,16,
- 5,66,15, 4,59,45, 7,32,16, 7,14,93, 5,59,85, 0, 0, 0, 7,32,15, 5,72,19,
- 0, 0, 0, 0, 0, 0, 5,80,23, 5,80,24, 7,51,47, 0, 0, 0, 7,56,10, 5,85,90,
- 5,85,89, 0, 0, 0, 5, 6,72, 5, 6,71, 0, 0, 0, 6,18, 7, 6,18, 8, 0, 0, 0,
- 5,14,31, 0, 0, 0, 0, 0, 0, 4,18,44, 4,18,45, 6,32,88, 6,32,89, 6,32,86,
- 6,32,87,15,21,83,15,21,85,15,21,86,15,21,87, 6,32,91, 6,32,90, 5,19,13,
- 0, 0, 0, 6,42,47, 0, 0, 0, 6,42,46,15,28,19, 0, 0, 0, 0, 0, 0,15,21,82,
- 6,52, 1, 6,52, 2, 0, 0, 0, 6,51,93, 6,51,94, 6,52, 4,15,34,49,15,34,50,
- 0, 0, 0, 6,52, 3, 6,51,92, 0, 0, 0, 5,32, 1, 5,32,91, 5,38,65, 4,36,22,
- 6,62, 1, 4,36,23, 6,61,94, 6,61,93, 0, 0, 0,15,40,90, 5,45,86, 6,62, 2,
- 7, 4,13, 4,42,50, 0, 0, 0, 7,15, 5, 7,15, 3, 7,15, 6, 7,15, 1, 7,15, 4,
- 5,53, 4, 7,15, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,53,30,15,53,31,15,53,32,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,24,70, 7,24,71, 0, 0, 0, 0, 0, 0,
- 4,59,46, 7,32,19, 5,66,18, 5,66,17, 0, 0, 0, 0, 0, 0, 7,32,17, 0, 0, 0,
- 7,32,18, 4,63,88, 7,39,44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,46, 5, 7,39,45,
- 0, 0, 0, 7,51,48, 4,74,45, 5,85,91, 7,59,68, 5,83,50, 7,62,83, 5,87,69,
- 5,87,68, 7,64,86, 0, 0, 0, 7,67,54, 5, 1,82, 6, 8,29, 0, 0, 0, 6,12,33,
- 6,18, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,24,71, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,28,20, 5,32, 2, 4,42,51, 0, 0, 0,15,47,55,15,47,56,15,58,57,15,53,33,
- /* plane 2, page 59 */
- 0, 255, /* first, last */
- 15,66,67,15,74,58, 5, 4,47, 6, 8,30, 6,12,37, 6,12,36, 5, 6,73, 0, 0, 0,
- 6,24,72, 6,24,74, 6,24,73, 6,32,92, 6,32,93, 5,32, 3, 4,30, 6, 5,38,66,
- 5,38,67, 6,62, 3, 7, 4,14, 7,15, 7, 7,15, 8, 5,53, 5, 7,39,46, 5,76,35,
- 0, 0, 0, 0, 0, 0, 5,89,16, 5, 1,42, 4, 2,94, 0, 0, 0,15, 2,58,15, 2,59,
- 0, 0, 0, 6, 8,32, 6, 8,31, 4, 4,46,15, 4,53,15, 4,54,15, 4,55,15, 4,57,
- 15, 4,58, 5, 6,77, 5, 6,74, 5, 6,76, 5, 6,75, 6,12,39, 6,12,38,15, 7,58,
- 15, 7,60,15, 7,61,15, 7,62,15, 7,63, 0, 0, 0, 5, 6,35, 0, 0, 0, 0, 0, 0,
- 6,18,12, 5, 9,78, 5, 9,79, 5, 9,77, 5, 9,80, 5, 9,81, 6,18,13, 5, 9,83,
- 6,18,15, 6,24,77, 6,18,14, 0, 0, 0, 5, 9,84, 6,18,11, 0, 0, 0, 5, 9,82,
- 0, 0, 0,15,11,49,15,11,50,15,11,51,15,11,52,15,11,53,15,11,54,15,11,55,
- 15,11,56,15,11,57,15,11,58,15,11,59,15,11,60,15,11,62, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,11,61, 0, 0, 0, 6,24,79, 5,14,33, 6,24,78, 4,13,73,
- 5,14,35, 4,13,72, 6,24,76, 5,14,34, 0, 0, 0,15,16,18,15,16,19,15,16,20,
- 15,16,21,15,16,22,15,16,23,15,16,24,15,16,25, 6,24,75, 5,14,32, 0, 0, 0,
- 0, 0, 0, 6,33, 6, 4,18,54, 6,33, 1, 5,19,17, 6,33, 2, 6,33, 3, 5,19,14,
- 6,33, 5, 5,19,18, 5,19,16, 5,19,15, 6,32,94, 6,33, 4,15,21,88,15,21,89,
- 15,21,90,15,21,91,15,21,92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,25,53, 4,24,45, 5,25,54, 4,24,48, 6,42,49, 6,42,51, 5,25,57, 5,25,56,
- 5,25,58, 6,42,54, 6,42,48, 6,42,53, 5,25,55, 6,42,50, 0, 0, 0,15,28,26,
- 15,28,21,15,28,23,15,28,24,15,28,25,15,28,27,15,28,29,15,28,31,15,28,32,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,42,52,15,28,22, 0, 0, 0, 0, 0, 0, 5,25,60,
- 6,52,14, 6,52,12, 4,30,11, 6,52, 7, 6,52,11, 4,30,10, 6,52, 8, 6,52, 5,
- 6,52, 9, 6,52, 6, 6,52,13, 6,52,10, 6,52,15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,32, 4,15,34,51,15,34,53,15,34,54,15,34,55, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,52,16, 0, 0, 0, 0, 0, 0, 6,62, 9, 5,38,70, 5,38,69,
- 6,62,10, 6,62,11, 6,62,13, 4,36,29, 6,62, 4, 4,36,30, 5,38,71, 4,36,27,
- 0, 0, 0, 6,62,14, 6,62,15, 6,62, 6, 0, 0, 0, 6,62, 7,15,40,92,15,40,93,
- 15,40,94,15,41, 1, 0, 0, 0, 6,62, 8, 5,38,73, 6,62,16, 0, 0, 0, 6,62, 5,
- 0, 0, 0, 0, 0, 0, 6,62,12, 0, 0, 0, 4,42,54, 7, 4,19, 7, 4,23, 7, 4,21,
- 4,42,53, 4,42,52, 5,45,89, 7, 4,20, 5,45,87, 5,45,88, 7, 4,17, 7, 4,18,
- 7, 4,16, 7, 4,15, 7, 4,22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4,24,
- 7,15, 9, 5,53, 7, 7,15,10, 4,48,80, 5,53, 6, 4,48,83, 7,15,12,15,53,34,
- /* plane 2, page 60 */
- 0, 247, /* first, last */
- 15,53,35,15,53,36,15,53,37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,15,11, 0, 0, 0,
- 0, 0, 0, 7, 4,25, 7,24,74, 4,54,53, 4,54,52, 7,24,73, 5,59,86, 0, 0, 0,
- 7,24,72,15,58,58,15,58,59,15,58,60, 7,24,76, 0, 0, 0, 7,24,75, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,66,21, 5,66,20, 5,66,22, 0, 0, 0, 7,32,23, 7,39,47,
- 7,32,21, 5,66,23, 7,32,20, 7,32,22,15,63,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,66,19, 0, 0, 0,15,63,18, 7,39,50, 5,72,20, 7,39,48, 7,39,49, 0, 0, 0,
- 0, 0, 0,15,69,33, 7,46, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,70,39, 5,80,25,
- 7,51,49,15,71,71, 0, 0, 0, 7,56,11, 5,83,51, 0, 0, 0,15,73,50, 5,85,92,
- 7,59,69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,68,42, 6,12,40, 0, 0, 0, 6,18,16,
- 5, 9,85, 5, 9,86, 6,19,44, 6,33, 7,15,21,93, 0, 0, 0, 6,33, 8, 6,52,17,
- 4,36,32, 7,15,13, 7,24,77, 4,59,49,15,58,61, 6, 5,10, 6, 5, 9, 0, 0, 0,
- 15, 4,60, 6,12,43, 6,12,42, 6,12,41, 6,18,17, 0, 0, 0, 6,18,18,15,11,63,
- 5, 9,87, 5,14,36, 0, 0, 0,15,21,94, 5,25,61,15,28,33, 6,52,18, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7, 4,27, 7, 4,26, 0, 0, 0, 0, 0, 0, 7,32,24, 7,51,50,
- 0, 0, 0, 0, 0, 0,15, 1,71, 0, 0, 0, 6, 2, 4, 6, 5,11, 5, 1,83, 6, 5,12,
- 15, 2,62,15, 4,73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4, 3, 3, 6, 5,13, 5, 4,48, 6, 5,15, 6, 5,17, 0, 0, 0, 3, 4, 4,15, 2,60,
- 15, 4,63,15, 4,64, 0, 0, 0, 6, 5,16, 0, 0, 0, 0, 0, 0, 6,12,45, 5, 4,50,
- 6, 8,34, 5, 4,49, 5, 4,51, 4, 4,48, 6, 8,38, 6, 8,39, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,12,44, 6, 8,35, 6, 8,33,
- 6, 8,37, 6, 8,40, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 4,65, 0, 0, 0,15, 4,62,
- 15, 4,66,15, 4,67,15, 4,68,15, 4,69,15, 4,70,15, 4,71,15, 7,67,15, 7,68,
- 15, 7,69, 0, 0, 0, 4, 7, 3, 5, 6,79, 6,18,19, 5, 6,82, 5, 6,83, 4, 7, 1,
- 6,12,55, 4, 7, 5, 6,12,48, 4, 7, 4, 6,12,46, 5, 6,78, 5, 6,80, 6,12,56,
- 5, 6,81, 6,12,58, 6,18,20, 0, 0, 0, 6,12,54, 6,12,60, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4, 6,92, 6,12,51,15, 7,64,15, 7,65,15, 7,66,15, 7,71,
- 15, 7,72,15, 7,73,15, 7,74,15, 7,75,15, 7,77,15,11,68,15,11,71,15,11,76,
- 6,12,50, 6,12,52, 6,12,53, 6,12,57, 0, 0, 0, 6,12,47, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 9,88, 4, 9,92, 6,18,22, 5,10, 2, 6,18,27,
- 6,18,30, 5, 9,89, 4,10, 2, 4,13,81, 5,10, 1, 5, 9,94, 6,18,26, 6,18,32,
- 5, 9,90, 6,18,33, 5, 9,93, 6,24,80, 6,18,29, 6,18,28, 4,10, 3, 4, 9,93,
- /* plane 2, page 61 */
- 1, 255, /* first, last */
- 6,18,31,15,11,64,15,11,65,15,11,66,15,11,67,15,11,69,15,11,70,
- 15,11,72,15,11,73,15,11,74,15,11,75,15,11,77,15,11,78,15,16,26,15,16,29,
- 15,16,36, 6,18,24, 4,10, 4, 0, 0, 0, 6,18,21, 6,18,23, 5,10, 3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,16,55, 4,13,78, 5,14,41,
- 6,25,16, 6,25,14, 5,14,40, 5,14,39, 6,24,92, 5,14,42, 6,24,81, 6,24,91,
- 4,13,77, 4,13,79, 6,25, 5, 6,24,86, 6,25, 6, 6,25,10, 6,24,87, 6,25, 9,
- 6,24,94, 6,25, 8, 6,33,10, 6,33, 9, 4,18,70, 6,25, 4, 6,25,12, 5,14,37,
- 6,25, 3, 6,24,83, 6,25,11, 6,24,88, 6,25,15, 0, 0, 0, 6,25,18, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,33,38,15,16,27,15,16,30,15,16,31,15,16,32,15,16,33,
- 15,16,34,15,16,35,15,16,37,15,16,38,15,16,39,15,16,40,15,16,42,15,16,43,
- 15,16,44,15,16,45,15,16,46,15,16,47,15,16,48,15,16,49,15,16,50,15,16,51,
- 15,16,52,15,16,53,15,16,54,15,16,56,15,16,57,15,16,58, 6,24,89, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,25, 2, 0, 0, 0, 6,25,17, 0, 0, 0, 4,13,82, 0, 0, 0,
- 6,25, 7, 6,24,93, 0, 0, 0, 0, 0, 0, 6,24,85, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,14,38, 0, 0, 0,15,22,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,18,61,
- 5,19,32, 4,18,59, 4,18,75, 6,33,20, 6,33,24, 6,33,28, 4,18,74, 6,33,35,
- 4,18,65, 6,33,22, 4,18,69, 6,33,21, 6,33,37, 4,18,73, 5,19,19, 6,33,17,
- 4,18,64, 4,18,71, 6,42,68, 5,19,31, 6,33,34, 5,19,30, 6,33,31, 4,18,57,
- 4,18,63, 6,33,12, 4, 5,15, 6,33,27, 6,33,16, 6,42,70, 5,19,24, 0, 0, 0,
- 5,19,33, 6,42,56, 6,42,57, 6,33,30, 6,33,36, 5,19,22, 4,18,66, 6,33,32,
- 0, 0, 0, 5,19,27, 6,33,15, 6,33,18, 5,19,26, 5,19,21, 4,18,76, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,18,78, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,19,23, 6,33,29,
- 15,22, 1,15,22, 2,15,22, 3,15,22, 5,15,22, 6,15,22, 7,15,22, 8,15,22,10,
- 15,22,12,15,22,14,15,22,15,15,22,16,15,22,17,15,22,18,15,22,22,15,22,23,
- 15,22,24,15,22,25,15,22,26,15,22,27,15,22,28,15,22,29,15,28,34,15,28,43,
- 15,28,45,15,28,55,15,34,63, 6,42,55, 0, 0, 0, 6,33,19, 0, 0, 0, 6,33,23,
- 0, 0, 0, 5,19,25, 6,33,26, 0, 0, 0, 6,33,25, 0, 0, 0, 6,33,39, 6,33,13,
- 0, 0, 0, 6,33,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,19,20, 5,19,28, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,24,90, 6,42,66, 6,42,80, 4,24,52, 5,25,67,
- /* plane 2, page 62 */
- 0, 255, /* first, last */
- 4,24,53, 6,42,61, 6,42,63, 5,25,71, 5,25,74, 5,25,66, 6,52,40, 5,25,76,
- 6,42,58, 4,24,51, 5,19,34, 4,24,56, 6,42,76, 6,42,60, 5,25,72, 6,42,81,
- 6,52,21, 6,42,71, 6,42,72, 6,42,78, 5,25,64, 6,52,20, 6,42,79, 4,30,12,
- 5,25,63, 5,25,70, 5,25,69, 5,25,68, 6,42,74, 5,25,65, 6,52,19, 6,42,82,
- 5,25,77, 6,42,65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,28,36,15,28,37,15,28,38,15,28,40,15,28,41,15,28,42,
- 15,28,46,15,28,47,15,28,48,15,28,49,15,28,50,15,28,51,15,28,52,15,28,53,
- 15,28,54,15,28,56,15,28,57,15,28,59,15,28,60, 0, 0, 0, 6,42,73, 5,25,73,
- 0, 0, 0, 6,42,75, 4,24,61, 0, 0, 0, 6,42,59, 6,42,64, 6,42,62, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,25,75,15,34,83, 0, 0, 0, 6,52,33, 5,32, 5, 4,30,33,
- 6,52,24, 4,30,20, 6,52,27, 6,52,35, 4,30,27, 4,30,35, 4,30,30, 4,30,14,
- 6,52,42, 5,32, 9, 5,32, 6, 4,30,32, 6,62,17, 6,52,34, 4,30,26, 5,32,15,
- 0, 0, 0, 5,32,13, 4,30,17, 6,62,18, 4,30,34, 5,32,12, 5,32,14, 6,52,30,
- 6,52,44, 7, 4,28, 6,52,39, 4,36,43, 6,52,31, 6,52,38, 6,52,23, 6,52,22,
- 5,32,11, 5,32, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,30,29, 6,52,28, 6,52,29, 6,52,32,
- 6,52,37,15,34,56,15,34,57,15,34,58,15,34,59,15,34,60,15,34,61,15,34,62,
- 15,34,64,15,34,65,15,34,66,15,34,69,15,34,70,15,34,71,15,34,72,15,34,73,
- 15,34,74,15,34,76,15,34,77,15,34,78,15,34,79,15,34,80,15,34,81,15,34,82,
- 15,34,85,15,41, 2,15,41,30, 0, 0, 0, 5,32,10, 0, 0, 0, 0, 0, 0, 6,52,36,
- 4,30,21, 6,52,45, 6,52,26, 0, 0, 0, 6,52,43, 0, 0, 0,15,41,15, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,34,75,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,47,76, 0, 0, 0, 6,52,25, 7, 4,29, 0, 0, 0, 4,36,52,
- 4,36,39, 4,36,40, 4,36,44, 5,38,75, 4,36,46, 5,38,74, 5,38,84, 5,38,86,
- 4,36,37, 4,36,51, 6,62,36, 5,38,79, 6,62,33, 6,62,26, 4,36,49, 4,36,48,
- 5,38,85, 5,38,82, 5,38,77, 7, 4,32, 7, 4,31, 5,38,87, 6,62,37, 4,36,47,
- 6,62,25, 6,62,34, 5,38,80, 5,38,81, 4,36,33, 6,62,29, 5,45,90, 7, 4,30,
- 6,62,20, 5,38,78, 6,62,31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,38,83,
- /* plane 2, page 63 */
- 0, 255, /* first, last */
- 15,41, 3,15,41, 4,15,41, 5,15,41, 6,15,41, 7,15,41, 8,15,41, 9,15,41,11,
- 15,41,12,15,41,13,15,41,14,15,41,16,15,41,17,15,41,20,15,41,22,15,41,23,
- 15,41,24,15,41,25,15,41,26,15,41,28,15,41,29,15,41,33,15,41,34,15,41,35,
- 15,47,77, 7, 2,72, 4,36,34, 6,62,28, 0, 0, 0, 6,62,35, 0, 0, 0, 6,62,21,
- 5,38,76, 6,62,19, 6,62,23, 6,62,24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,41,27, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,62,22, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,41,10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4,66, 7, 4,50, 7, 4,45, 4,42,64, 7, 4,58,
- 7, 4,52, 7, 4,44, 4,42,69, 4,42,71, 5,46, 5, 0, 0, 0, 7, 4,67, 7, 4,46,
- 7, 4,48, 7, 4,54, 4,42,60, 7, 4,55, 7, 4,41, 5,46, 1, 7, 4,69, 7, 4,39,
- 7, 4,36, 4,42,70, 5,45,91, 5,46, 4, 7, 4,68, 4,42,59, 7, 4,59, 4,42,58,
- 7, 4,57, 5,45,94, 7, 4,35, 7, 4,71, 5,46, 3, 5,45,93, 7, 4,51, 7, 4,34,
- 7,26,73, 7, 4,37, 7, 4,72, 5,46, 2, 7, 4,33, 7, 4,62, 7, 4,70, 5,46, 6,
- 5,46, 8, 0, 0, 0, 0, 0, 0, 5,45,92, 4,42,62, 7, 4,63, 7, 4,43, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4,49, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,46, 7, 7, 4,60,15,47,57,15,47,58,
- 15,47,59,15,47,60,15,47,61,15,47,62,15,47,63,15,47,66,15,47,67,15,47,68,
- 15,47,69,15,47,70,15,47,71,15,47,72,15,47,74,15,47,75,15,47,79,15,47,80,
- 15,47,81,15,47,82,15,47,83,15,47,84,15,47,85,15,47,86,15,47,87,15,47,88,
- 15,47,91,15,47,92,15,53,49, 7, 4,53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7, 4,64, 7,15,16, 4,42,67, 7, 4,38, 7, 4,61, 7, 4,40, 7, 4,42, 0, 0, 0,
- 15,53,42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,47,94,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,41,32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,48,92, 5,53,21, 5,53,20,
- 5,53, 8, 5,53, 9, 5,53,11, 7,15,19, 5,53,16, 7,15,39, 7,15,32, 7,15,26,
- 4,48,89, 7,15,25, 4,48,94, 5,53,19, 7,15,29, 7,15,17, 7,15,23, 7,15,38,
- 7,15,27, 7,15,24, 7,15,35, 7,15,22, 7,15,18, 5,53,17, 5,53,10, 5,59,87,
- 7,15,28, 7,15,41, 5,53,12, 5,59,89, 5,53,18, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,15,15, 7,15,20, 7,15,30, 7,15,33,15,53,38,15,53,40,15,53,41,
- 15,53,43,15,53,44,15,53,47,15,53,48,15,53,50,15,53,51,15,53,52,15,53,53,
- /* plane 2, page 64 */
- 0, 254, /* first, last */
- 15,53,55,15,58,77, 0, 0, 0, 0, 0, 0, 5,53,15, 7,15,31, 7,15,37, 7,15,40,
- 7,15,42, 0, 0, 0, 0, 0, 0, 7,15,14, 0, 0, 0, 0, 0, 0, 7,15,36, 0, 0, 0,
- 0, 0, 0, 4,49, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,47,65,
- 15,58,70,15,58,63, 5,52,26, 5,59,92, 4,54,58, 4,54,63, 5,59,90, 7,24,90,
- 7,24,78, 4,59,50, 5,59,91, 5,59,88, 7,24,80, 7,24,86, 7,24,79, 7,24,89,
- 7,24,84, 7,24,83, 5,66,24, 7,24,85, 7,24,91, 5,59,93, 7,24,87, 5,53,23,
- 0, 0, 0, 3,53,26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,24,88,15,58,64,
- 15,58,65,15,58,66,15,58,67,15,58,68,15,58,69,15,58,71,15,58,73,15,58,75,
- 15,58,80, 7,24,82, 5,59,94, 0, 0, 0, 7,24,92, 7,24,81, 0, 0, 0, 0, 0, 0,
- 15,53,46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,58,76,
- 0, 0, 0, 0, 0, 0,15,58,79, 0, 0, 0,15,53,39,15,53,45,15,58,62, 7,15,21,
- 0, 0, 0, 5,66,31, 5,66,38, 5,66,37, 4,59,61, 5,66,29, 5,66,25, 5,66,34,
- 7,32,32, 7,32,38, 4,59,57, 5,66,43, 5,66,36, 7,32,28, 5,66,33, 5,66,42,
- 4,59,56, 5,66,35, 7,32,39, 5,66,27, 7,32,33, 5,66,32, 7,32,40, 7,32,26,
- 4,59,63, 4,59,53, 7,32,37, 7,32,36, 7,32,30, 5,66,26, 4,59,51, 5,66,28,
- 5,66,30, 5,66,41, 5,66,44, 5,66,39, 7,32,31, 4,59,60, 7,32,34, 7,39,63,
- 0, 0, 0, 0, 0, 0, 5,66,45, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,63,19,15,63,21,
- 15,63,22,15,63,23,15,63,25,15,63,26,15,63,27,15,63,28,15,63,29,15,63,30,
- 15,63,31,15,63,32,15,63,33,15,63,34,15,63,35,15,66,68,15,66,69,15,66,76,
- 0, 0, 0, 7,39,62, 7,32,29, 7,32,25, 0, 0, 0, 7,32,35, 7,32,27, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,63,20,
- 15,58,74,15,58,78, 5,66,40, 7,39,69, 7,39,60, 7,39,66, 4,63,92, 4,63,90,
- 7,39,51, 5,72,22, 7,39,54, 7,39,52, 0, 0, 0, 7,39,59, 7,39,58, 7,39,53,
- 5,72,21, 7,39,57, 7,39,61, 0, 0, 0, 5,76,37, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,39,65,15,66,70,15,66,71,15,66,72,15,66,73,15,66,74,
- 15,66,77,15,66,78,15,66,79,15,66,80,15,66,81, 7,39,55, 0, 0, 0, 7,39,64,
- 7,39,70, 7,39,68, 7,39,67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,39,56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,76,39, 5,76,42, 5,76,43, 7,46,11, 4,67,57, 0, 0, 0, 4,67,61,
- 7,46,10, 7,46, 9, 5,76,40, 0, 0, 0, 4,67,60, 7,46,14, 4,67,55, 4,67,56,
- 4,67,54, 7,46,13, 0, 0, 0, 5,80,27, 5,76,41, 5,76,44, 7,46,15,
- /* plane 2, page 65 */
- 5, 255, /* first, last */
- 15,69,34,15,69,35,15,69,36,
- 0, 0, 0, 7,46,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,70,40, 5,80,32,
- 7,51,54, 5,80,31, 0, 0, 0, 5,80,29, 4,70,43, 7,51,52, 5,80,28, 7,51,57,
- 7,51,51, 4,70,45, 7,51,63, 5,80,33, 7,51,53, 7,51,58,15,71,72,15,71,73,
- 15,71,74,15,71,75,15,71,77,15,71,78,15,71,79, 0, 0, 0, 7,51,59, 0, 0, 0,
- 7,51,60, 7,51,61, 7,51,62, 5,80,26,15,71,80, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,73,53, 7,56,14, 7,51,55, 7,56,15, 5,83,52,
- 5,80,34, 7,56,13, 5,83,53, 7,56,17, 0, 0, 0, 4,72,82, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,56,18,15,73,51,15,73,52, 0, 0, 0, 7,56,19, 7,56,16, 7,56,12,
- 0, 0, 0, 0, 0, 0, 5,86, 1, 5,86, 2, 7,59,73, 7,59,72, 5,85,94, 0, 0, 0,
- 0, 0, 0, 7,59,71, 5,85,93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,74,59,15,74,60,15,74,61, 7,59,74, 0, 0, 0, 7,59,70, 0, 0, 0, 0, 0, 0,
- 7,62,86, 5,87,71, 7,62,87, 4,76,81, 7,62,84, 0, 0, 0, 5,87,70, 0, 0, 0,
- 7,62,85, 4,76,82, 7,64,89, 7,64,88, 0, 0, 0, 7,64,87,15,76,15, 0, 0, 0,
- 7,66,25, 4,77,56, 5,90,11, 5,90,10, 4,77,57, 0, 0, 0, 0, 0, 0, 4,77,84,
- 5,90,73, 5,90,74, 0, 0, 0, 7,67,55, 7,68,43, 5,91,33,15,77, 6, 7,69,60,
- 5,92,28, 0, 0, 0, 6, 3,15, 6, 5,19, 4, 3, 4, 4, 3, 5, 6, 5,18, 0, 0, 0,
- 15, 2,63,15, 2,64,15, 2,65, 6, 5,20, 0, 0, 0, 4, 4,51, 4, 4,52, 5, 4,52,
- 6, 8,44, 5, 4,53, 5, 4,55, 0, 0, 0,15, 4,75,15, 4,76,15, 4,77,15, 4,80,
- 15, 4,82, 0, 0, 0, 6, 8,43, 0, 0, 0, 0, 0, 0, 5, 6,84, 4, 7, 8, 5, 6,85,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 7,79,15, 7,80,
- 15, 7,81,15, 7,83,15, 7,84,15, 7,85,15, 7,86,15, 7,87, 0, 0, 0, 6,12,63,
- 15, 7,82, 6,12,62, 4, 7,10, 0, 0, 0, 5, 4,54, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,10, 5, 6,18,44, 5,10, 6, 6,18,36,
- 5,10, 7, 6,18,43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,18,38,
- 15,11,79,15,11,80,15,11,81,15,11,82,15,11,83,15,11,84,15,11,85,15,11,86,
- 15,11,87,15,11,88,15,11,89,15,11,91,15,11,92,15,11,93,15,11,94,15,12, 1,
- 15,12, 3, 4,10, 9, 6,18,37, 6,18,35, 0, 0, 0, 6,18,39, 0, 0, 0, 6,25,26,
- 5,10, 8, 6,18,42,15,12, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,18,41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,14,47,
- 5,14,46, 6,25,22, 6,25,25,15,16,74, 4,18,79, 6,25,23, 4,13,84, 6,25,20,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,14,43,15,16,61,15,16,62,
- /* plane 2, page 66 */
- 0, 250, /* first, last */
- 15,16,63,15,16,64,15,16,65,15,16,66,15,16,67,15,16,68,15,16,69,15,16,70,
- 15,16,72,15,16,73,15,16,75,15,16,76,15,16,78,15,16,79,15,16,80,15,16,81,
- 15,16,82, 5,14,44, 6,25,21, 0, 0, 0, 0, 0, 0, 6,25,27, 6,25,28, 0, 0, 0,
- 15,16,71, 0, 0, 0, 0, 0, 0,15,16,77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,25,24, 5,14,45, 0, 0, 0, 6,33,43, 4,18,84, 5,19,36,
- 6,33,47, 4,18,83, 4,18,85, 6,33,46, 6,33,52, 6,33,49, 6,33,45, 6,33,44,
- 6,42,83, 6,33,50, 6,33,48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,33,51,15,22, 4,15,22,30,15,22,31,15,22,32,15,22,33,15,22,35,
- 15,22,36,15,22,37,15,22,38,15,22,39,15,22,41,15,22,42,15,22,44,15,22,45,
- 15,22,46,15,22,48, 6,33,41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,33,40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,22,43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,19,35, 0, 0, 0, 5,19,37,
- 0, 0, 0, 6,33,53, 4,24,73, 6,42,88, 6,33,42, 5,25,81, 5,25,79, 6,42,94,
- 0, 0, 0, 6,43, 1, 5,25,78, 6,42,85, 4,24,70, 6,42,90, 6,42,84, 6,42,93,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4,24,67, 5,25,80, 6,42,87,15,28,62,15,28,63,15,28,64,15,28,65,
- 15,28,66,15,28,67,15,28,68,15,28,70,15,28,71,15,28,72,15,28,73,15,28,75,
- 15,28,76,15,28,77,15,28,78,15,28,79,15,28,80,15,28,81,15,28,82,15,28,85,
- 15,28,87,15,28,88,15,28,89,15,28,90,15,28,91,15,28,92,15,29, 1, 6,42,89,
- 6,42,92, 4,24,71, 0, 0, 0, 6,42,86, 6,42,91, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,28,74, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,25,82,
- 0, 0, 0, 0, 0, 0, 5,32,20, 0, 0, 0, 6,52,58, 6,52,56, 5,32,16, 6,52,54,
- 6,52,61, 4,30,39, 6,52,55, 4,30,36, 6,52,59, 6,52,62, 4,30,37, 5,32,18,
- 6,52,51, 6,52,67, 6,52,63, 6,52,68, 5,32,21, 0, 0, 0, 6,52,60, 6,52,66,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,34,86,15,34,89,15,34,91,15,34,92,15,34,93,
- 15,35, 1,15,35, 2,15,35, 3,15,35, 5,15,35, 6,15,35, 7,15,35, 8,15,35, 9,
- 15,35,10,15,35,11,15,35,13,15,35,14,15,35,16,15,35,19,15,35,20,15,35,21,
- 15,35,22,15,35,23,15,35,24,15,35,25,15,35,26,15,35,27,15,35,29,15,35,30,
- 6,52,49, 6,52,50, 6,52,53, 0, 0, 0, 6,52,70, 0, 0, 0, 0, 0, 0, 4,30,42,
- 6,52,65, 6,52,69, 0, 0, 0, 6,58,52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,35,12,
- /* plane 2, page 67 */
- 1, 255, /* first, last */
- 5,32,19, 0, 0, 0, 5,32,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,41,52,
- 6,62,49, 6,62,48, 5,38,94, 6,62,42, 5,39, 2, 4,36,53, 5,38,92, 5,38,91,
- 5,38,90, 7, 4,80, 7, 4,74, 6,62,38, 5,39, 1, 6,62,39, 6,62,40, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,38,89, 6,62,43, 6,62,47,15,41,36,15,41,37,
- 15,41,38,15,41,39,15,41,41,15,41,42,15,41,44,15,41,45,15,41,46,15,41,47,
- 15,41,48,15,41,49,15,41,50,15,41,51,15,41,53,15,41,54,15,41,55,15,41,58,
- 15,41,59,15,41,61,15,41,62,15,41,64,15,41,66,15,41,67,15,41,68, 0, 0, 0,
- 4,36,61, 5,38,93, 6,62,44, 6,62,50, 6,62,41, 6,62,45, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,41,60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,52,64,15,34,94,15,34,90,
- 4,42,75, 0, 0, 0, 0, 0, 0, 5,46,12, 7, 4,84, 7, 4,77, 7, 4,73, 5,46,10,
- 7, 4,76, 7, 4,81, 7, 4,82, 7, 4,85, 7, 4,75, 5,46, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,46, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,46,11, 7, 4,83,
- 15,48, 3,15,48, 4,15,48, 6,15,48, 7,15,48, 8,15,48, 9,15,48,10,15,48,11,
- 15,48,14,15,48,15,15,48,17,15,48,18,15,48,19,15,48,20,15,48,21,15,48,23,
- 15,48,24,15,48,25,15,48,26,15,48,27,15,48,28, 0, 0, 0, 7, 4,78,15,48,12,
- 0, 0, 0, 0, 0, 0, 7,10,81, 0, 0, 0,15,48,13,15,48,16, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,48, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,48, 2, 5,46,14,
- 5,46,13, 0, 0, 0, 6,62,46, 0, 0, 0, 0, 0, 0, 4,49,10, 7,15,50, 7,15,70,
- 7,15,48, 7,15,64, 7,15,62, 5,53,27, 4,49, 7, 7,15,65, 7,15,67, 7,15,53,
- 7, 4,79, 4,49, 8, 7,15,54, 7,15,68, 7,15,69, 4,49, 6, 7,15,56, 7,15,52,
- 4,49, 9, 7,15,71, 5,53,26, 5,53,28, 7,15,66, 7,15,57, 0, 0, 0, 7,15,61,
- 7,15,58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,15,43, 7,15,51,
- 7,15,60,15,53,57,15,53,58,15,53,59,15,53,60,15,53,61,15,53,62,15,53,63,
- 15,53,64,15,53,65,15,53,66,15,53,67,15,53,70,15,53,71,15,53,72,15,53,74,
- 15,53,75,15,53,77,15,53,78,15,53,80,15,53,81,15,53,82, 0, 0, 0,15,53,69,
- 5,53,24, 7,15,45, 7,15,46, 7,15,59, 0, 0, 0, 7,15,63, 7,17,90, 7,15,49,
- 7,12,91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,53,79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,53,29, 5,53,25, 7,15,44,
- 7, 4,86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,15,55, 7,25, 3, 4,54,65, 7,25, 5,
- 5,53,30, 7,25, 9, 7,25, 8, 4,54,67, 7,15,72, 5,60, 1, 7,24,93, 5,60, 4,
- /* plane 2, page 68 */
- 0, 254, /* first, last */
- 5,60, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,58,81,15,58,82,15,58,86,15,58,87,
- 15,58,88,15,58,89,15,58,90,15,58,91,15,58,92,15,58,93,15,58,94,15,59, 1,
- 15,59, 2,15,59, 3, 7,24,94, 0, 0, 0, 0, 0, 0, 7,25, 4, 0, 0, 0, 7,25, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,60, 3, 7,25, 1,
- 0, 0, 0, 0, 0, 0,15,53,73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,32,47, 4,59,66,
- 7,32,46, 5,66,46, 7,32,43, 7,32,51, 7,32,49, 7,32,44, 0, 0, 0, 4,59,67,
- 5,66,47, 5,66,48, 4,59,65, 7,32,52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,32,42,
- 7,32,50,15,63,36,15,63,38,15,63,37,15,63,39,15,63,40,15,63,41,15,63,42,
- 15,63,44,15,63,45, 7,32,48, 7,34, 2, 0, 0, 0, 7,32,53, 7,32,45, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,32,41, 7,25,10, 0, 0, 0, 0, 0, 0,15,65,86,15,58,84,
- 15,58,85, 0, 0, 0, 7,39,76, 5,72,23, 4,64, 1, 0, 0, 0, 7,39,77, 4,64, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,39,74,15,66,84,15,66,85,15,66,86,
- 15,66,87, 0, 0, 0, 7,39,73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,39,71,
- 7,39,75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,63,43, 7,39,72,15,69,37, 5,76,47, 7,46,16, 7,46,19, 7,46,27, 5,76,46,
- 5,76,45, 5,76,49, 4,64, 3, 0, 0, 0, 7,46,18, 7,46,24, 4,67,66, 4,67,64,
- 7,46,28, 7,46,17, 7,46,21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,46,23, 0, 0, 0,
- 15,69,40, 7,46,20,15,69,38,15,69,39,15,69,42,15,69,43,15,69,44,15,69,45,
- 15,69,46, 0, 0, 0, 0, 0, 0, 7,46,25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,46,22,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,46,26, 0, 0, 0, 5,76,48, 0, 0, 0,
- 0, 0, 0, 7,51,68, 4,67,65, 7,51,70, 5,80,35, 0, 0, 0, 4,70,47, 7,51,71,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,51,66, 7,51,67, 0, 0, 0, 7,51,69, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,71,81, 0, 0, 0,15,71,82,15,71,83,15,71,84,
- 15,71,85, 0, 0, 0, 7,56,22, 5,83,54, 4,74,47, 7,56,23, 7,56,24, 0, 0, 0,
- 7,56,20,15,73,54,15,73,55,15,73,56, 7,56,21, 7,59, 4, 0, 0, 0, 0, 0, 0,
- 7,59,78, 7,59,80, 7,59,77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,60,36,
- 7,59,79, 0, 0, 0, 7,59,76, 0, 0, 0, 7,59,75, 5,86, 3,15,74,64, 7,62,88,
- 0, 0, 0,15,74,63, 5,87,72, 0, 0, 0, 7,65, 1, 7,64,92, 7,64,94, 7,65,24,
- 7,64,91, 7,64,93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,66,26, 5,90,75,15,76,68,
- 15,76,69, 0, 0, 0, 7,68,45, 7,68,44, 7,68,46, 7,69,23, 7,70,20, 5, 1,43,
- 0, 0, 0, 6, 3,16, 6, 8,45, 6, 8,46, 5, 4,56, 0, 0, 0, 6,12,66, 6,12,65,
- 6,12,67, 0, 0, 0, 0, 0, 0,15, 7,88,15, 7,89, 6,18,46, 5,10,11,
- /* plane 2, page 69 */
- 0, 255, /* first, last */
- 5,10, 9, 6,18,47, 5,10,10, 6,18,49,15,12, 4,15,12, 5,15,12, 6, 6,18,45,
- 0, 0, 0, 0, 0, 0, 6,18,48, 0, 0, 0, 5,14,49, 0, 0, 0, 5,14,48,15,16,83,
- 6,33,55, 6,33,54, 6,33,56,15,22,49, 4,24,74, 6,43, 2, 0, 0, 0, 6,39,35,
- 6,45,61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,52,72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,52,73, 0, 0, 0, 6,62,51, 5,39, 3, 6,62,54, 6,62,53, 6,62,52, 7, 4,90,
- 5,46,15, 7, 4,87, 7, 4,89, 0, 0, 0, 7, 4,88, 0, 0, 0, 7,15,73, 0, 0, 0,
- 7,15,74, 5,53,31, 4,54,69,15,59, 4,15,59, 5,15,59, 6, 0, 0, 0, 0, 0, 0,
- 15,53,83, 7,32,54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,72,24, 0, 0, 0,15,69,47,15,69,48, 0, 0, 0, 7,46,29, 0, 0, 0, 0, 0, 0,
- 7,51,72, 7,59,81, 0, 0, 0, 7,62,89, 0, 0, 0, 7,65, 2,15, 4,83,15, 4,84,
- 6,12,68, 6,12,69, 0, 0, 0, 6,33,57, 0, 0, 0, 6,33,58,15,29, 2,15,29, 3,
- 6,52,74,15,41,69, 5,39, 4, 5,53,32,15, 1,72, 6,11,75, 5,10,12, 4,10,11,
- 4,13,87,15,16,84, 5,17,76, 6,43, 3, 6,52,76, 6,52,75, 5,53,33, 7, 4,91,
- 7, 4,92, 5,53,34, 6, 2, 5, 6, 3,17, 0, 0, 0, 6, 5,21, 6, 8,47, 4, 7,13,
- 6,12,71, 6,12,70, 6,18,50, 4,10,13, 6,18,51, 6,18,52, 6,25,30, 4,13,88,
- 0, 0, 0,15,16,85, 6,25,29, 6,33,59, 6,33,62, 6,33,61, 4,18,88, 0, 0, 0,
- 0, 0, 0, 6,33,60,15,22,50,15,22,51, 0, 0, 0, 6,43, 8, 6,43, 4, 6,43, 6,
- 6,43, 7, 6,43, 9, 6,43, 5, 6,45,56, 6,52,77, 6,52,78,15,35,31, 6,62,56,
- 6,62,57,15,41,70, 0, 0, 0, 7, 4,93,15,48,30, 7, 4,94, 5,53,35, 5,66,49,
- 4,49,12, 7,15,75, 7, 5, 1, 5,53,36, 7,25,11, 7,25,12, 5,60, 5, 0, 0, 0,
- 7,39,80, 0, 0, 0, 5,76,50, 7,56,25, 7,59,82, 7,67,56, 5,91,34, 7,68,47,
- 15, 1,73, 6, 8,49, 5, 4,57, 6, 8,48, 4, 7,14, 6,12,75, 6,12,74, 6,12,73,
- 6,12,72, 6,18,54, 6,18,53, 5,10,13, 6,18,55, 0, 0, 0, 0, 0, 0, 5,10,14,
- 0, 0, 0, 0, 0, 0, 5,14,50, 4,13,89, 4,13,91, 6,25,33, 6,25,31, 0, 0, 0,
- 5,19,38, 5,19,39, 6,33,63, 0, 0, 0, 6,33,66, 6,33,64, 0, 0, 0, 6,43,11,
- 4,24,77, 6,43,14, 6,43,10, 6,43,12, 6,43,13, 5,25,83, 5,25,86, 5,25,84,
- 0, 0, 0, 5,25,85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,24,78,
- 5,32,24, 6,52,79, 4,30,45, 5,32,22, 5,32,23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,52,80,15,29, 4, 5,39, 5, 6,62,59, 0, 0, 0, 6,62,60, 6,62,58,15,41,71,
- 5,46,18, 7, 5, 5, 5,46,17, 5,46,16, 5,46,19, 7, 5, 4, 7, 5, 2, 5,46,20,
- 0, 0, 0, 7, 5, 3, 0, 0, 0, 5,53,38, 5,53,39, 5,53,40, 7,15,77, 5,53,37,
- 7,15,76, 0, 0, 0, 5,60, 6, 4,54,70,15,59, 7,15,59, 8, 0, 0, 0, 5,66,51,
- /* plane 2, page 70 */
- 0, 255, /* first, last */
- 5,66,50, 0, 0, 0, 0, 0, 0, 5,76,51, 7,51,73, 5, 3,72, 0, 0, 0, 0, 0, 0,
- 6,25,35, 6,25,34, 0, 0, 0, 0, 0, 0, 4,24,79, 6,43,15,15,29, 5,15,29, 6,
- 6,52,81, 6,62,61, 0, 0, 0, 0, 0, 0, 5, 1,85,15, 2,67, 6, 5,22,15, 2,66,
- 6, 8,51,15, 4,85, 6, 8,50, 6, 8,52, 5, 6,89, 5, 7, 2, 5, 6,88, 5, 6,91,
- 5, 6,86, 5, 6,93, 6,12,78, 4, 7,16, 5, 7, 1, 6,12,76, 5, 6,94, 5, 7, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,92, 6,12,77,15, 7,91,15, 7,92,15, 7,94,
- 15, 8, 1, 0, 0, 0, 5, 6,90, 6,12,79, 6,12,80, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,10,18, 5,10,16, 5,10,15, 6,18,63, 6,18,60, 5,10,19, 5,10,17, 4,10,16,
- 6,18,58, 0, 0, 0, 6,18,57,15,12, 8,15,12, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,18,59, 6,18,62, 0, 0, 0, 6,18,56, 6,18,61, 0, 0, 0, 5,10,20,
- 15, 7,93, 5,14,56, 5,14,52, 5,14,54, 5,14,55, 5,14,53, 0, 0, 0, 6,25,36,
- 5,14,57, 0, 0, 0, 0, 0, 0, 4,18,91, 6,33,71, 6,33,72, 5,19,41, 5,25,87,
- 4,18,93, 4,18,92, 5,19,43, 0, 0, 0, 5,19,44, 0, 0, 0,15,22,52,15,22,53,
- 6,33,69, 0, 0, 0, 6,33,73, 6,33,68, 0, 0, 0, 5,19,40, 0, 0, 0, 0, 0, 0,
- 4,24,81, 4,24,84, 5,25,93, 6,43,20, 5,25,89, 5,25,91, 0, 0, 0, 5,25,88,
- 6,43,18, 6,43,21,15,29, 7,15,29, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,43,19, 6,43,16, 6,43,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,25,90, 5,25,92, 5,19,42,15,29, 9, 6,43,22, 5,39,11, 5,32,30, 5,32,28,
- 4,30,48, 6,62,68, 6,52,83, 5,39, 6, 6,52,82, 6,52,85, 6,52,84, 0, 0, 0,
- 15,35,32,15,35,33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,32,29, 0, 0, 0,
- 6,52,87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,32,27, 4,36,65, 5,39,13, 5,39, 8, 5,39,14, 5,39,12, 6,62,63, 6,62,67,
- 5,39, 7, 5,39,10, 6,62,71, 6,62,66, 6,62,65, 5,32,26, 6,62,70, 0, 0, 0,
- 15,41,72,15,41,73,15,41,74,15,41,75, 5,39,15, 5,39, 9, 6,62,64, 6,52,86,
- 0, 0, 0, 0, 0, 0, 6,62,69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,41,76, 5,39,16, 5,46,22, 7, 5, 6, 4,42,84, 5,46,25, 5,46,26, 5,46,24,
- 4,42,80, 5,46,21, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,48,31, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 5, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 5, 7,
- 0, 0, 0, 7,15,80, 5,53,41, 5,53,46, 7,15,81, 5,53,43, 5,53,45, 5,53,42,
- 0, 0, 0, 5,53,44, 0, 0, 0, 7,15,79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,25,16,
- 7,25,14, 5,60, 7, 4,54,72, 4,54,73, 7,15,78, 0, 0, 0, 7,25,15, 0, 0, 0,
- 0, 0, 0, 7,32,55, 7,32,56, 5,72,26, 0, 0, 0, 7,51,74, 7,39,82, 7,39,83,
- /* plane 2, page 71 */
- 0, 253, /* first, last */
- 7,39,81, 0, 0, 0, 5,72,25, 7,46,31, 5,76,52, 5,76,53, 0, 0, 0, 5,80,37,
- 7,51,76, 5,80,36, 0, 0, 0, 5,80,38, 7,56,26, 5,83,57, 0, 0, 0, 7,59,84,
- 5,83,56, 7,59,85, 7,59,83, 0, 0, 0, 5,87,73, 0, 0, 0, 7,65, 3,15,76,17,
- 0, 0, 0, 7,68,48,15, 1,29, 6, 3,18, 5, 1,87, 5, 1,88, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 2,88, 5, 2,91, 5, 2,87, 4, 3, 8, 0, 0, 0, 5, 2,90, 0, 0, 0,
- 6, 5,23, 0, 0, 0, 0, 0, 0, 5, 2,89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4,62,
- 5, 4,63, 4, 4,59, 4, 7,23, 6, 8,56, 4, 4,58, 5, 4,58, 6, 8,62, 5, 4,59,
- 6, 8,59, 5, 7,15, 6,12,82, 4, 4,55, 5, 4,61, 5, 4,60, 6, 8,58, 6, 8,57,
- 6,12,83,15, 4,87, 6, 8,55, 6, 8,60, 0, 0, 0, 0, 0, 0, 6, 8,61, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8,54, 4, 4,56, 0, 0, 0, 6,12,90,
- 5, 7, 8, 6,12,91, 5, 7,12, 6,12,89, 6,12,92, 5, 7, 7, 5, 7,10, 6,12,88,
- 5, 7,13, 5, 7, 5, 5, 7, 9, 5, 7, 4, 6,12,87, 0, 0, 0, 4, 7,24, 5,10,22,
- 6, 8,53, 6,18,64, 0, 0, 0, 5, 7,11, 6,12,86,15, 8, 2, 6,12,93, 0, 0, 0,
- 6,12,84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7,21, 0, 0, 0, 5,10,21, 5,10,30,
- 6,18,72, 5,10,25, 6,25,43, 5,10,29, 6,18,65, 6,25,44, 6,33,76, 5,10,28,
- 4,10,17, 5,10,27, 6,18,68, 5,10,26, 6,18,70, 4,10,19, 5,10,32, 6,18,67,
- 5, 7, 6, 5,10,23, 5,10,24, 0, 0, 0,15,12,10,15,12,12,15,12,13, 0, 0, 0,
- 6,18,69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,12,11,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,10,31,
- 0, 0, 0, 6,25,46, 5,14,62, 4,19, 1, 6,25,41, 6,25,45, 4,14, 5, 5,14,59,
- 5,14,64, 5,14,61, 4,14, 3, 6,25,37, 0, 0, 0, 6,25,42, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,16,87,15,16,88, 0, 0, 0, 6,25,40,
- 5,14,58, 0, 0, 0, 4,14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,25,39, 6,25,47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,14,63, 6,25,38,
- 5,19,46,15,16,86, 0, 0, 0, 4,19, 4, 6,33,78, 5,19,53, 5,25,94, 5,19,50,
- 6,33,80, 6,33,83, 5,19,47, 6,33,79, 6,43,27, 4,19, 6, 5,19,51, 6,43,24,
- 6,43,23, 5,19,48, 6,43,25, 0, 0, 0, 6,33,81, 6,33,82, 0, 0, 0, 6,33,84,
- 0, 0, 0, 6,43,26, 5,26, 8, 0, 0, 0, 6,52,91, 5,26, 6, 5,32,31, 4,24,85,
- 5,26, 2, 6,43,36, 5,32,32, 5,26, 7, 4,24,86, 5,26, 5, 5,26, 4, 4,24,88,
- 6,43,31, 4,30,49, 5,26, 1, 6,43,28, 6,43,30, 4,30,55, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,29,10,15,29,11, 6,52,89, 6,50,82, 6,52,90, 0, 0, 0,
- 6,43,32, 0, 0, 0, 6,43,33, 6,43,37, 0, 0, 0, 6,43,29,
- /* plane 2, page 72 */
- 7, 252, /* first, last */
- 5,26, 3,
- 0, 0, 0, 0, 0, 0,15,35,35, 0, 0, 0, 0, 0, 0, 4,30,54, 5,32,40, 6,53, 2,
- 5,32,39, 4,30,53, 6,53, 7, 5,32,43, 6,53, 4, 6,52,94, 6,52,93, 6,53, 6,
- 5,32,38, 5,32,36, 5,32,35, 0, 0, 0, 6,53, 1, 5,32,34, 6,53, 8, 5,32,42,
- 5,32,33, 4,30,56, 0, 0, 0, 0, 0, 0, 5,32,41, 6,53, 5,15,35,37,15,35,38,
- 15,41,80,15,48,32, 0, 0, 0, 5,32,37, 6,53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,32,44, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,62,77, 5,39,26, 6,62,73, 7, 5, 9, 5,39,23, 4,36,75, 5,39,21,
- 5,39,19, 6,62,76, 5,39,27, 5,39,22, 5,39,20, 6,62,80, 4,36,76, 5,39,17,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,41,77, 7, 5,10, 0, 0, 0,
- 15,41,79, 6,62,75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,62,72,
- 6,62,74, 6,62,79, 0, 0, 0, 0, 0, 0, 4,42,93, 5,39,29, 5,39,28, 5,39,25,
- 5,39,24, 6,62,81, 5,39,18, 7, 5,17, 4,42,88, 4,42,89, 7, 5,16, 5,46,28,
- 7, 5,20, 7,15,83, 5,46,33, 7, 5,15, 7, 5,11, 5,46,30, 5,46,37, 0, 0, 0,
- 5,46,27, 5,46,36, 5,46,35, 5,46,29, 5,53,47, 7,15,82, 5,46,31, 0, 0, 0,
- 0, 0, 0, 5,46,32, 5,46,38, 7, 5,12, 7, 5,13,15,53,85, 0, 0, 0, 5,53,48,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 5,14, 0, 0, 0, 7, 5,19, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,41,78, 4,49,19, 5,46,34, 5,53,55, 4,49,21, 5,53,53, 5,53,49,
- 5,53,50, 7,15,89, 4,49,17, 7,15,88, 7,15,87, 5,60, 8, 4,49,22, 5,53,51,
- 5,53,54, 7,15,85, 7,25,18, 0, 0, 0, 4,54,77, 7,25,17, 7,15,86, 0, 0, 0,
- 7, 5,18,15,53,87, 7, 5,21, 5,53,52, 0, 0, 0, 0, 0, 0, 5,60,10, 7,25,19,
- 5,60, 9, 7,39,87, 7,25,21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,25,20,
- 15,59, 9,15,59,10,15,59,11,15,59,12, 7,32,61, 5,66,53, 5,66,52, 7,32,58,
- 7,32,57, 7,32,60, 4,59,72, 7,32,59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,63,46,15,63,47, 0, 0, 0, 5,66,54, 0, 0, 0, 4,67,68, 0, 0, 0, 0, 0, 0,
- 7,39,88, 7,46,32, 7,39,86, 7,39,84, 0, 0, 0, 7,46,33, 5,76,54, 0, 0, 0,
- 7,46,34, 5,80,40, 7,51,77, 5,80,39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,72,84,
- 5,80,41, 7,56,27, 0, 0, 0, 7,59,86, 7,59,88, 7,59,87, 0, 0, 0, 5,87,74,
- 7,62,90, 0, 0, 0,15,75,53, 7,65, 4, 7,67,57, 0, 0, 0,15, 8, 3, 6,43,38,
- 6,62,82, 5, 1,44, 6, 5,24, 6, 3,19, 0, 0, 0, 0, 0, 0, 6, 8,63, 5, 4,65,
- 4, 4,61, 0, 0, 0, 4, 4,60, 0, 0, 0, 6, 8,65, 6, 8,64, 0, 0, 0,15, 4,89,
- 5, 4,64, 5, 7,16, 6,13, 5, 4, 7,28, 5,10,33,
- /* plane 2, page 73 */
- 2, 255, /* first, last */
- 15, 8, 5,15, 8, 6,15, 8, 7,15, 8, 8,15, 8, 9, 0, 0, 0,
- 6,13, 3, 0, 0, 0, 0, 0, 0,15,12,32,15, 8, 4, 6,13, 2,15,12,28, 6,18,73,
- 5,10,37, 5,10,34, 4,10,22, 6,18,75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,15,73, 0, 0, 0,15,12,15,15,12,16,15,12,17,15,12,19,15,12,20,15,12,21,
- 15,12,22,15,12,23,15,12,24,15,12,26,15,12,27,15,12,29, 0, 0, 0, 0, 0, 0,
- 6,18,74, 0, 0, 0, 6,18,76,15,12,30,15,12,31, 0, 0, 0, 0, 0, 0,15,12,14,
- 0, 0, 0, 5,10,36, 5,10,35, 0, 0, 0, 0, 0, 0, 6,25,51, 5,19,54, 5,14,65,
- 4,14, 9, 6,25,49, 4,14, 8, 6,25,50, 6,25,52, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,16,89,15,16,90,15,16,91,15,16,92,15,16,93,
- 15,16,94,15,17, 1,15,17, 3,15,17, 4,15,17, 5,15,17, 6, 6,25,48,15,22,67,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,19,17, 6,25,53, 6,33,90, 5,19,55,
- 6,33,91, 4,19,18, 6,33,87, 6,33,88, 6,33,89, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,17, 2,15,22,54,15,22,56,15,22,60,
- 15,22,63,15,22,64,15,22,65,15,22,66,15,22,68,15,22,61, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,33,92, 0, 0, 0, 0, 0, 0,15,22,59,15,22,58,15,22,62, 5,19,56,
- 6,33,86,15,29,30, 0, 0, 0,15,29,20, 6,43,43, 5,26,11, 5,26,10, 5,26,12,
- 6,53, 9, 4,30,58, 0, 0, 0, 5,32,45, 0, 0, 0,15,29,24, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4,24,92, 6,43,41, 6,43,44,15,29,12,15,29,13,15,29,14,15,29,15,15,29,16,
- 15,29,18,15,29,21,15,29,22,15,29,23,15,29,25,15,29,26,15,29,31,15,35,48,
- 6,43,46, 6,53,18, 6,43,45, 0, 0, 0,15,29,32, 6,43,40, 6,43,42, 0, 0, 0,
- 6,53,10, 0, 0, 0, 0, 0, 0,15,29,19,15,29,29,15,29,17, 5,26, 9, 6,53,11,
- 6,53,16, 4,30,59, 6,53,17, 6,53,15, 6,53,14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,39,30,15,35,39,15,35,42,15,35,44,
- 15,35,45,15,35,46,15,35,47,15,35,49,15,35,50,15,35,51,15,35,52,15,35,53,
- 15,35,55,15,35,56,15,35,58,15,35,59,15,35,60,15,35,61,15,35,62,15,35,63,
- 15,35,64,15,35,65,15,35,66,15,35,67,15,35,69, 0, 0, 0, 6,53,12, 5,32,47,
- 0, 0, 0, 5,26,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,35,43,15,35,40,
- 5,39,31, 0, 0, 0, 6,53,13,15,35,57,15,41,90,15,41,91,15,42, 6, 7, 5,24,
- 0, 0, 0, 0, 0, 0, 6,62,84, 5,39,33, 7, 5,22, 4,36,77, 5,39,32, 6,62,85,
- 6,62,87, 0, 0, 0, 6,62,86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,62,83,15,41,81,15,41,82,15,41,83,15,41,84,15,41,85,
- /* plane 2, page 74 */
- 0, 254, /* first, last */
- 15,41,87,15,41,88,15,41,89,15,41,92,15,41,93,15,41,94,15,42, 1,15,42, 2,
- 15,42, 4,15,42, 5,15,42, 7,15,42, 8,15,42, 9, 5,39,34, 0, 0, 0, 3,40, 6,
- 7, 5,25, 0, 0, 0, 0, 0, 0,15,42, 3, 7, 5,32, 4,42,94, 5,46,39, 7,15,91,
- 7, 5,26, 7,15,90, 7, 5,28, 7, 5,31, 7, 5,33, 7, 5,34, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,48,33,15,48,34,15,48,35,15,48,36,15,48,37,
- 15,48,38,15,48,40,15,48,41,15,48,42,15,48,43,15,48,44, 0, 0, 0, 0, 0, 0,
- 7, 5,29, 5,46,40, 7, 5,27, 5,46,41,15,53,92,15,54,14,15,48,39, 0, 0, 0,
- 7,16, 2, 7, 5,30, 5,53,56, 5,53,59, 5,53,57, 4,49,27, 7,16, 4, 7,15,93,
- 7,15,94, 7,15,92, 0, 0, 0, 4,49,28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,16, 1,15,53,88,15,53,89,15,53,91,15,53,93,15,54, 3,
- 15,54, 4,15,54, 5,15,54, 6,15,54, 7,15,54, 9,15,54,13,15,54,15, 7,16, 5,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,16, 3, 7,25,22,15,54,16,15,54, 1,15,54, 8,
- 5,53,60, 5,53,58,15,54,12, 7,25,27, 7,25,29, 5,60,13, 5,60,11, 7,32,62,
- 7,25,25, 4,59,74, 4,54,78, 0, 0, 0, 4,54,80, 7,25,24, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,59,14,15,59,15,15,59,16,15,59,17,15,59,18,
- 15,59,19,15,59,20,15,59,21, 5,60,12, 7,25,26, 7,25,28, 7,25,23, 7,32,63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,72,28, 4,59,75, 5,66,55, 4,64, 6, 7,32,64,
- 4,64, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,63,49,
- 15,63,51,15,63,52,15,63,53,15,63,55,15,63,57,15,63,58,15,63,59,15,63,60,
- 15,63,63, 0, 0, 0, 7,32,65, 7,32,66,15,63,48,15,63,50,15,63,56, 0, 0, 0,
- 15,67, 3, 7,39,92, 7,39,91, 5,72,30, 7,39,90, 7,46,35, 5,72,29, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,39,89,15,66,92,15,66,94,15,67, 1,
- 15,67, 2, 4,64, 9,15,66,89, 0, 0, 0,15,66,90,15,66,93, 7,51,79, 5,76,55,
- 4,70,50,15,69,50,15,69,51,15,69,52,15,69,53, 7,46,36, 7,51,78, 0, 0, 0,
- 15,63,62, 4,70,49, 7,53,92, 0, 0, 0, 4,70,51, 7,56,28, 0, 0, 0, 0, 0, 0,
- 15,71,86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,59,89, 4,74,50,15,73,57,15,73,58,
- 5,86, 4, 0, 0, 0,15,74,65,15,74,67,15,75,54, 0, 0, 0, 0, 0, 0,15,74,66,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,89,17, 7,65, 6, 7,65, 5,15,76,18, 0, 0, 0,
- 5,90,12, 4,78,20, 6,13, 6, 5,10,39, 5,10,38, 6,18,77,15,12,33, 6,18,78,
- 6,25,54, 5,14,67, 5,14,68, 6,25,55, 6,25,56, 4,19,22, 5,19,57, 5,19,58,
- 15,22,69, 0, 0, 0, 5,26,15, 5,26,16, 6,43,47,15,29,33, 6,43,48,
- /* plane 2, page 75 */
- 1, 254, /* first, last */
- 4,30,60, 5,32,48, 5,32,49,15,35,70, 0, 0, 0, 0, 0, 0, 7, 5,37,
- 6,62,88, 5,39,35, 0, 0, 0,15,42,10, 5,39,36, 7, 5,36, 7,16, 6, 4,49,29,
- 5,46,42,15,48,45, 7, 5,35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,49,30, 7,25,30,
- 5,66,56,15,63,64, 4,59,77, 4,70,52, 7,51,80, 5,80,42, 0, 0, 0, 0, 0, 0,
- 5,86, 5, 7,59,90, 7,62,91, 7,66,27, 7,66,28, 0, 0, 0, 5, 4,66, 0, 0, 0,
- 5, 7,17, 4, 7,29, 6,13, 7, 0, 0, 0, 5,10,40, 5,10,41, 6,18,79, 4,10,27,
- 4,10,30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,14,69, 5,14,71, 6,25,60, 5,14,70,
- 0, 0, 0,15,17, 9, 6,25,59, 6,25,57, 6,25,58, 0, 0, 0, 5,19,61, 6,34, 2,
- 6,33,94, 6,34, 4, 5,19,62, 6,34, 3, 5,19,60,15,22,70,15,22,72, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,25, 2, 5,26,17, 6,53,22, 4,25, 7,
- 5,26,20, 5,26,19, 5,19,63, 6,43,50, 5,26,18, 5,19,59, 0, 0, 0, 6,43,49,
- 6,43,51, 0, 0, 0, 0, 0, 0, 4,30,68, 5,32,50, 6,53,23, 4,30,62, 5,32,51,
- 6,53,19, 6,53,21, 4,30,63, 6,53,24, 0, 0, 0,15,35,71, 6,53,20, 5,39,39,
- 6,62,92, 5,39,37, 6,62,90, 0, 0, 0, 4,36,82, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,62,89, 0, 0, 0, 0, 0, 0, 6,62,91, 5,39,38, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4,43, 8, 7, 5,42, 5,46,44, 5,46,45, 5,46,46, 7, 5,38, 7, 5,39,
- 7, 5,41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,16, 7, 4,54,84, 7,16, 8,
- 5,53,63, 5,53,65, 4,49,32, 5,53,64, 0, 0, 0, 5,53,62, 4,54,86, 5,60,14,
- 4,54,87, 0, 0, 0, 0, 0, 0, 7,25,32, 7,25,31, 0, 0, 0, 5,46,43, 0, 0, 0,
- 4,59,80, 5,66,59, 5,66,58, 7,32,68, 5,66,57, 7,32,69, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,72,31, 7,46,37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,51,81, 7,51,82,
- 4,70,54, 5,80,43, 4,70,53, 7,51,83, 0, 0, 0, 4,72,86, 7,56,29, 5,83,58,
- 5,86, 8, 5,86, 7, 7,59,91, 5,86, 6, 0, 0, 0, 7,60,75, 0, 0, 0, 0, 0, 0,
- 5,90,76, 7,69,24, 6, 3,20, 6,13, 8, 5, 7,19, 4, 7,30, 0, 0, 0, 0, 0, 0,
- 15, 8,11, 6,18,80, 0, 0, 0,15,12,35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,32,52,
- 6,62,93, 7,16,11, 0, 0, 0, 7,16, 9, 7,16,10, 4,54,89, 7,32,70, 0, 0, 0,
- 5,80,44, 0, 0, 0, 0, 0, 0, 6, 3,21, 6, 5,25, 6,13, 9, 5, 7,20, 6,13,10,
- 15,12,36,15,12,37, 5,10,42, 4,10,31, 0, 0, 0, 6,18,81, 6,20,89, 5,14,73,
- 6,34, 6, 5,19,64, 6,34, 5, 6,34, 7,15,22,73, 0, 0, 0, 6,53,25, 6,43,52,
- 0, 0, 0, 0, 0, 0,15,29,35,15,29,34, 6,53,27, 0, 0, 0,15,35,72, 6,53,26,
- 0, 0, 0, 0, 0, 0, 6,62,94, 7, 5,43,15,42,11, 0, 0, 0, 0, 0, 0, 4,54,90,
- 0, 0, 0,15,59,22, 0, 0, 0, 0, 0, 0,15,67, 6, 7,38,78,15,67, 5,
- /* plane 2, page 76 */
- 0, 255, /* first, last */
- 7,51,84, 0, 0, 0, 0, 0, 0, 6, 5,26,15, 4,90, 5, 7,21, 6,13,14, 6,25,61,
- 5,19,65, 0, 0, 0,15,42,12, 0, 0, 0, 0, 0, 0,15,63,65, 7,39,93, 0, 0, 0,
- 15,76,19, 5,83,59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4,63, 0, 0, 0,15, 4,92,
- 0, 0, 0,15, 4,91, 0, 0, 0, 6, 8,67, 0, 0, 0, 4, 7,34, 4, 5,51, 4, 7,31,
- 5, 7,22, 6,13,17, 6,13,16, 6,13,19,15, 8,12,15, 8,13, 0, 0, 0, 0, 0, 0,
- 6,13,15, 4,10,34, 5,10,45, 6,18,84, 5,10,44, 6,18,83, 5,10,43, 6,18,86,
- 6,18,90, 6,18,87, 6,25,69, 5,10,46, 6,18,88, 6,18,85, 5,14,78, 0, 0, 0,
- 15,12,38,15,12,39,15,12,40,15,12,41,15,12,43,15,12,44,15,12,45,15,12,46,
- 15,12,47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,10,47, 5,14,74, 4,14,14, 5,14,75, 6,25,65,
- 6,25,64, 0, 0, 0, 6,25,66, 0, 0, 0, 0, 0, 0, 6,25,63, 6,25,67,15,17,10,
- 15,17,11,15,17,12,15,17,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,14,16,15,17,13,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,14,77, 5,14,76, 4,19,30, 6,34, 8, 5,19,67,
- 5,19,66, 4,19,29, 6,34,12, 6,34,15, 6,34,10, 6,34,13, 6,34,14,15,22,75,
- 15,22,76, 6,34,11, 0, 0, 0, 6,34, 9, 0, 0, 0, 0, 0, 0, 6,33,75, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,25,11, 4,25, 9, 4,25,10, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,43,55, 6,43,57,15,22,74,15,29,38,15,29,39,
- 15,29,40, 0, 0, 0, 0, 0, 0, 6,43,56, 0, 0, 0, 4,25,13, 6,43,53,15,29,36,
- 15,29,37, 6,53,32, 4,30,74, 4,30,71, 6,53,30, 6,53,31, 4,30,70, 5,32,54,
- 6,53,28, 6,53,34, 5,32,53, 6,53,35, 6,53,36, 6,53,33, 0, 0, 0, 0, 0, 0,
- 15,35,73,15,35,74, 0, 0, 0, 5,32,55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,53,29,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,63, 3, 4,36,90, 5,39,42, 6,63, 2, 6,63, 5,
- 6,63, 8,15,42,13, 6,63, 6, 0, 0, 0, 0, 0, 0, 6,63, 4, 6,63, 7, 7, 5,48,
- 4,43,12, 7, 5,44, 7, 5,46, 7, 5,45, 0, 0, 0, 7, 5,47, 5,46,47, 7, 5,49,
- 15,48,47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,43,11, 0, 0, 0, 0, 0, 0,
- 4,49,37, 4,49,35, 4,49,38, 7,16,12, 5,53,66,15,54,18, 0, 0, 0, 7,12,27,
- 0, 0, 0, 0, 0, 0, 7,25,33, 5,60,19, 7,25,35, 5,60,17, 4,54,91, 7,25,34,
- 5,60,20, 0, 0, 0,15,59,23, 7,28,86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,60,16,
- 5,60,18,15,54,17, 0, 0, 0, 0, 0, 0, 4,59,81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,39,94, 5,72,33, 7,40, 3, 7,46,38, 7,40, 1, 7,40, 4, 4,64,13,
- 0, 0, 0, 0, 0, 0, 7,40, 2, 7,46,40, 0, 0, 0, 0, 0, 0, 7,46,39, 0, 0, 0,
- 0, 0, 0, 7,51,87,15,71,87, 7,51,85, 7,51,86, 0, 0, 0,15,71,50, 7,56,30,
- /* plane 2, page 77 */
- 0, 255, /* first, last */
- 4,72,87, 7,51,88, 7,59,93,15,74,68, 7,59,92, 7,62,92, 0, 0, 0, 7,66,30,
- 7,66,29, 0, 0, 0, 0, 0, 0, 7,67,58, 7,67,60, 0, 0, 0, 7,67,59, 0, 0, 0,
- 7,70, 9, 7,70,21, 7,70,38, 6, 3,22, 0, 0, 0, 6, 5,27,15, 8,14, 4,14,18,
- 5,10,48, 4,25,14, 0, 0, 0, 0, 0, 0, 6,53,38, 6,53,37, 6,63, 9, 5,53,67,
- 7,16,14, 7, 5,50, 0, 0, 0, 0, 0, 0, 7,56,31, 5, 2,92, 5, 4,68, 5, 4,69,
- 4, 4,64, 6, 8,70, 6, 8,71, 6, 8,69, 0, 0, 0, 0, 0, 0, 6, 8,72, 4, 7,37,
- 6,13,21, 4, 7,36,15, 8,15, 5, 7,24, 6,13,22, 0, 0, 0, 0, 0, 0, 6,18,93,
- 4,10,43, 6,18,92, 6,18,91, 5,10,50, 5,10,54, 4,10,39, 4,10,40, 5,10,51,
- 4,10,37, 5,10,52, 5,10,49, 5,10,53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,19, 4,
- 15,12,48, 0, 0, 0, 0, 0, 0, 6,18,94,15,12,49, 6,19, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,19, 3, 0, 0, 0, 0, 0, 0, 6,19, 1, 0, 0, 0, 0, 0, 0, 6,25,73,
- 5,14,79, 5,14,83, 6,25,79, 5,14,81, 6,25,80, 6,25,74, 5,14,86, 5,14,82,
- 5,14,85, 6,25,77, 6,25,81, 6,25,70, 4,14,29, 5,14,84, 6,25,72, 4,14,30,
- 5,14,80, 6,25,78,15,17,15, 6,25,71, 0, 0, 0, 6,25,76, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,34,17,
- 6,34,23, 5,19,72, 6,34,21, 5,19,75, 4,19,33, 5,19,74, 5,19,70, 6,34,19,
- 4,19,36, 5,19,73,15,22,77,15,22,78,15,22,79, 6,34,22, 6,34,25, 0, 0, 0,
- 0, 0, 0, 6,34,20, 6,34,24,15,22,80, 6,34,16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,19,71, 5,19,76, 5,26,22, 5,26,31, 6,43,65,
- 5,26,21, 6,43,69, 5,26,25, 5,26,26, 5,26,28, 5,26,23, 6,43,67, 6,43,63,
- 5,26,32, 6,43,66, 6,43,59, 6,43,70, 5,26,30, 6,43,62, 0, 0, 0, 0, 0, 0,
- 4,25,25, 6,43,61, 6,43,64, 6,43,68,15,29,41,15,29,42, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,25,23, 6,43,60,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4,25,17, 5,26,24, 6,53,44, 4,30,82, 4,30,80, 4,30,91, 5,32,57, 4,30,81,
- 4,30,85, 4,36,93, 4,30,89, 6,53,41, 5,32,58, 5,32,60, 5,32,66, 4,30,92,
- 6,53,39, 5,32,65, 0, 0, 0, 6,53,45, 5,32,69, 5,32,67, 5,32,59, 5,26,29,
- 5,32,63, 5,32,62, 6,53,43, 6,53,42, 4,30,93,15,35,75,15,35,76, 0, 0, 0,
- 6,53,40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,53,46, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,32,56,
- 5,32,70, 5,32,61, 0, 0, 0, 5,39,56, 5,39,48, 4,37, 5, 4,37,11, 5,39,43,
- /* plane 2, page 78 */
- 0, 250, /* first, last */
- 5,39,47, 4,37, 6, 6,63,15, 6,63,10, 4,37,14, 4,37,10, 6,63,11, 6,63,20,
- 5,39,45, 5,39,46, 5,39,51, 4,37,12, 6,63,23, 6,63,21, 5,39,58, 6,63,14,
- 0, 0, 0, 4,37, 7, 4,37, 2, 5,39,49, 5,39,50, 6,63,19, 5,39,44, 5,39,54,
- 6,63,17, 6,63,16, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,42,14, 6,63,24, 6,63,12,
- 4,37,13, 0, 0, 0, 6,63,18, 0, 0, 0, 6,63,22, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,39,53, 4,43,26, 4,43,22, 4,43,13, 4,43,25, 5,46,51, 4,43,20,
- 7, 5,61, 4,43,18, 5,46,53, 5,46,55, 5,46,52, 4,43,17, 7, 5,53, 4,43,16,
- 5,46,49, 5,46,50, 7, 5,51, 5,39,55, 5,46,56, 7, 5,52, 7, 5,59, 7, 5,57,
- 0, 0, 0, 0, 0, 0,15,48,48,15,48,49,15,48,50,15,48,51,15,48,52, 0, 0, 0,
- 0, 0, 0, 7, 5,54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 5,58, 0, 0, 0, 7, 5,62,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,46,54, 5,46,48, 4,49,43, 5,53,69, 7,16,15,
- 7,16,16, 5,53,76, 5,53,77, 4,49,44, 4,49,39, 5,53,72, 7,16,21, 5,53,70,
- 5,53,71, 5,53,75, 7,16,17, 7,16,23, 5,53,78, 0, 0, 0, 0, 0, 0,15,54,20,
- 15,54,21, 7,16,20, 0, 0, 0, 7,16,19, 5,53,74, 0, 0, 0, 7,16,18, 0, 0, 0,
- 0, 0, 0, 7,16,24, 0, 0, 0, 7,16,25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,53,68, 7, 5,55, 0, 0, 0, 0, 0, 0, 4,54,92, 5,60,25, 5,53,80, 7,25,48,
- 4,49,49, 4,37, 9, 4,54,94, 7,25,39, 5,60,21, 7,25,40, 5,60,28, 5,60,26,
- 5,60,29, 7,25,47, 7,32,74, 5,53,79, 5,60,23, 4,54,93, 5,60,24, 4,55, 3,
- 7,25,41, 7,25,45, 7,25,49, 7,25,43, 7,25,38, 7,25,44, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,59,24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,25,36, 7,25,37,
- 7,25,46, 5,60,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,66,60,
- 5,60,30, 7,25,42, 4,59,88, 5,60,32, 5,66,64, 7,32,72, 5,66,69, 7,32,73,
- 5,66,65, 5,66,68, 4,59,86, 5,60,31, 5,66,61, 5,66,66, 5,66,62, 5,66,63,
- 4,59,90, 7,32,77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,66,67, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,40,11, 4,64,19, 7,40, 7,
- 4,64,20, 5,72,36, 4,64,21, 7,40, 6, 5,72,35, 5,72,34, 4,64,22, 0, 0, 0,
- 0, 0, 0,15,67, 7, 4,64,17, 7,40, 8, 0, 0, 0, 7,40, 9, 0, 0, 0, 0, 0, 0,
- 7,40, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,40,10, 7,32,76,
- 0, 0, 0, 4,67,74, 4,67,75, 7,46,41, 7,46,45, 7,46,44, 5,76,56, 5,76,57,
- 7,46,46, 7,46,43, 7,46,42,
- /* plane 2, page 79 */
- 0, 255, /* first, last */
- 5,80,49, 5,80,48, 5,80,46, 4,70,55, 7,51,90, 5,80,47, 7,51,89,15,71,88,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,83,63, 5,83,62, 5,83,61, 0, 0, 0, 0, 0, 0,
- 7,60, 2, 7,59,94, 4,74,54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,60, 1, 5,86, 9,
- 5,87,75, 7,62,93, 7,62,94, 0, 0, 0, 7,65,34, 7,65, 7, 0, 0, 0, 7,66,31,
- 7,66,32, 7,66,33, 5,90,77, 7,68,49, 7,69,25, 4, 4,67, 0, 0, 0, 6,19, 5,
- 15,12,50, 6,25,83, 6,25,82,15,17,16, 6,34,26,15,22,81, 0, 0, 0, 6,43,73,
- 6,43,71, 5,26,33, 6,43,72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 5,63,
- 0, 0, 0, 4,49,51, 4,49,50, 0, 0, 0, 7,16,26, 6, 5,28, 6, 5,29, 0, 0, 0,
- 0, 0, 0, 5, 4,70, 5, 7,26, 5, 7,27, 0, 0, 0, 0, 0, 0, 5, 7,25, 5, 7,28,
- 4,10,45, 5,10,57, 5,10,56, 0, 0, 0, 5,10,55, 6,19, 7, 6,19, 8, 0, 0, 0,
- 6,19, 6,15,12,51,15,12,52, 0, 0, 0, 6,19, 9, 0, 0, 0, 5,10,58, 0, 0, 0,
- 6,25,84, 4,14,34, 6,25,85, 6,34,28, 0, 0, 0,15,17,17,15,17,18,15,17,19,
- 15,17,21,15,17,22, 0, 0, 0, 0, 0, 0,15,22,85, 4,19,38, 5,19,78, 6,34,27,
- 15,22,82,15,22,83,15,22,86, 0, 0, 0, 6,43,75, 0, 0, 0, 0, 0, 0, 6,43,76,
- 6,43,74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,22,84,
- 0, 0, 0, 5,32,72, 5,32,71, 6,53,48, 4,30,94, 6,53,47, 0, 0, 0, 5,32,73,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,35,77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4,37,15, 6,63,25, 6,63,26,15,42,16,15,42,17,15,42,19,15,42,20,15,42,18,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,43,28, 0, 0, 0, 0, 0, 0,
- 7, 5,64, 7, 5,65, 0, 0, 0, 5,53,82, 7,16,28, 5,53,81, 7,16,27, 0, 0, 0,
- 4,55, 7, 4,55, 8, 5,60,34, 5,60,36, 7,32,78, 5,60,33, 7,25,50, 5,66,70,
- 7,32,79, 0, 0, 0, 7,32,80, 5,72,37, 5,72,38, 5,72,39, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,72,40, 7,40,12, 7,46,48, 0, 0, 0, 7,46,47, 0, 0, 0,
- 5,66,71, 0, 0, 0, 0, 0, 0, 7,56,32, 7,56,33,15,71,89, 7,60, 3, 0, 0, 0,
- 4,75,83, 0, 0, 0, 0, 0, 0, 7,63, 1, 0, 0, 0, 7,69,26, 5, 4,71, 5, 4,72,
- 6,13,25, 6,13,23, 6,13,24, 5, 7,29, 0, 0, 0, 0, 0, 0, 6,19,11, 5,10,59,
- 4,10,47, 6,16,22, 6,19,10, 0, 0, 0, 0, 0, 0, 5,14,87, 5,14,88, 6,25,86,
- 6,25,90, 5,19,79, 4,14,36, 6,25,87, 6,25,88, 6,25,89, 0, 0, 0, 4,19,41,
- 5,19,80, 6,34,30,15,22,89, 0, 0, 0, 0, 0, 0, 6,34,29, 0, 0, 0, 4,25,28,
- 6,43,77, 5,26,34, 6,43,79, 4,25,27,15,29,43, 0, 0, 0, 6,43,78, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,22,88, 5,32,74, 5,32,77, 5,32,75, 5,32,76, 5,32,78,
- 0, 0, 0, 6,53,51,15,35,78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,53,49,
- /* plane 2, page 80 */
- 1, 253, /* first, last */
- 4,31, 1, 4,37,17, 4,37,19, 6,63,30, 0, 0, 0,15,42,21, 6,63,29,
- 5,39,60, 6,63,31, 6,63,27, 6,63,28, 0, 0, 0, 7, 5,67, 5,46,58, 5,46,59,
- 5,46,60, 7, 5,66, 0, 0, 0, 0, 0, 0, 5,53,86, 5,53,88, 5,53,84, 4,49,56,
- 5,53,87, 5,53,85,15,54,22, 5,53,83, 7,16,29, 0, 0, 0, 7,16,30, 7,25,51,
- 0, 0, 0, 7,16,31, 4,55, 9, 5,66,72, 7,32,82, 7,32,83, 7,32,84, 0, 0, 0,
- 7,32,81, 0, 0, 0, 0, 0, 0, 5,72,42, 5,72,41, 7,40,13, 0, 0, 0, 4,67,77,
- 5,76,59, 5,76,58, 7,46,49, 0, 0, 0, 7,51,92, 4,70,60, 7,56,34, 0, 0, 0,
- 0, 0, 0, 5,87,76, 5,87,77, 0, 0, 0, 7,67,36, 7,69,56, 0, 0, 0, 6, 8,73,
- 15, 4,93, 4, 7,41, 5, 7,30, 4, 7,39, 6,13,27, 5, 7,31, 5,10,62, 5,10,60,
- 5,10,61, 6,19,13, 0, 0, 0, 6,19,12,15,12,53, 0, 0, 0, 5,14,89, 6,26, 1,
- 6,26, 3, 4,14,40, 5,14,90, 6,25,94, 6,25,91, 4,14,42, 6,26, 2, 0, 0, 0,
- 15,17,23,15,17,24, 6,26, 4, 6,25,92, 6,25,93, 0, 0, 0, 4,19,44, 5,19,82,
- 4,19,42, 6,34,31, 0, 0, 0,15,22,90,15,22,91,15,22,92,15,22,93,15,23, 1,
- 15,23, 2, 6,34,32, 6,34,33, 6,26, 5, 6,43,84, 6,43,80, 5,26,35, 4,25,29,
- 6,43,82, 6,43,83, 0, 0, 0,15,29,44,15,29,45, 0, 0, 0, 6,43,81, 6,53,52,
- 6,53,54, 5,32,80, 6,53,56, 6,53,55, 6,53,53, 0, 0, 0, 0, 0, 0,15,35,79,
- 15,35,80, 0, 0, 0, 0, 0, 0, 6,63,33, 6,63,32, 6,63,43,15,42,22, 5,46,61,
- 7, 5,68, 0, 0, 0, 7, 5,69, 0, 0, 0,15,48,53,15,48,54,15,48,55,15,48,56,
- 15,48,57,15,48,58, 0, 0, 0, 4,49,57, 7,16,36, 4,49,59, 7,16,32, 7,16,37,
- 5,53,90, 5,53,89,15,54,23,15,54,24,15,54,25, 0, 0, 0,15,54,26,15,54,27,
- 7,16,35, 7,16,33, 0, 0, 0, 0, 0, 0, 4,55,11, 4,60, 3, 4,55,10, 7,25,52,
- 5,60,39, 7,32,85, 0, 0, 0, 0, 0, 0, 5,60,38,15,59,27,15,59,28, 0, 0, 0,
- 0, 0, 0, 7,25,53, 7,25,54, 7,22,89, 0, 0, 0, 5,60,37, 7,16,34, 7,25,55,
- 4,60, 2, 4,60, 1, 7,32,86, 0, 0, 0, 7,32,88, 0, 0, 0, 7,32,87,15,63,66,
- 7,32,89, 7,40,14, 5,72,43, 7,40,15,15,67, 8,15,67, 9, 0, 0, 0, 5,76,61,
- 7,46,51, 5,76,60, 7,46,53,15,69,54, 0, 0, 0, 7,46,50, 7,46,52, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,71,91, 7,56,36, 5,83,64, 7,56,35, 7,56,37,15,71,90,
- 7,63, 2, 5,86,10, 0, 0, 0, 0, 0, 0, 7,63, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,66,34, 0, 0, 0, 0, 0, 0, 5, 2,93,15, 2,71, 6, 8,74, 4, 4,68,
- 5, 4,74, 4, 4,70, 5, 4,75, 5, 4,73,15, 4,94, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4, 7,48, 6,13,28, 5, 7,33, 4, 7,43, 6,13,32, 6,13,34,
- 6,13,30, 5, 7,34, 5, 7,35, 6,13,33, 6,13,31, 5, 7,32,
- /* plane 2, page 81 */
- 0, 255, /* first, last */
- 6,13,35, 0, 0, 0, 6,13,36, 6,19,25, 6,19,21, 6,19,14, 6,19,18, 4,10,62,
- 6,19,22, 4,10,60, 6,19,28, 5,10,69, 6,19,19, 5,10,73, 4,10,59, 6,19,15,
- 6,19,27, 5,10,64, 5,10,71, 5,10,75, 5,10,65, 5,10,74, 5,10,72, 5,10,67,
- 5,10,76, 6,19,16, 0, 0, 0, 5,10,63, 5,10,70, 5,10,66, 5,10,68, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,12,54,15,12,56, 6,19,23, 0, 0, 0, 6,19,26,
- 0, 0, 0, 6,19,20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4,14,48, 5,15, 4, 3,14,58, 4,14,44, 5,14,91, 6,26, 6, 4,14,46,
- 5,15, 2, 5,14,92, 6,26, 8, 4,14,43, 6,26, 9, 5,15, 3, 6,26,10, 4,14,51,
- 6,26,12, 5,14,94, 0, 0, 0, 0, 0, 0, 5,15, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,26,11,15,17,25,15,17,26,15,17,27,15,17,28,15,17,29, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,26, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,15, 1,
- 5,14,93, 4,14,52, 4,19,53, 6,34,51, 6,34,38, 6,34,45, 5,19,84, 5,19,83,
- 5,19,93, 4,19,52, 6,34,39, 6,34,36, 0, 0, 0, 6,34,34, 5,19,90, 5,19,91,
- 5,19,85, 6,34,42, 5,19,88, 6,34,52, 5,19,89, 6,34,35, 6,34,47, 0, 0, 0,
- 6,34,43, 6,34,48,15,23, 5, 6,34,50, 0, 0, 0, 0, 0, 0, 6,34,44, 0, 0, 0,
- 0, 0, 0, 6,34,41, 0, 0, 0, 0, 0, 0, 6,34,49,15,23, 6, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,19,94, 6,34,37, 6,34,46,
- 5,19,87, 5,19,92, 0, 0, 0, 5,26,41, 5,26,44, 6,43,89, 6,44, 3, 4,19,51,
- 6,43,88, 5,26,43, 6,43,93, 6,44, 1, 5,26,38, 6,44, 6, 6,43,87, 4,25,47,
- 5,26,42, 5,26,40, 5,26,36, 4,25,46, 5,32,81, 6,44, 5, 5,32,94, 4,25,32,
- 6,43,94, 5,26,45, 6,43,91, 5,26,46, 6,44, 8, 5,26,37, 5,26,39, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,29,47,15,29,48,15,29,49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,43,92, 0, 0, 0, 0, 0, 0, 6,44, 7, 0, 0, 0, 6,43,86, 6,44, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,44, 2, 4,25,36, 4,25,48, 5,26,47, 4,25,30,
- 0, 0, 0, 6,53,59, 6,53,62, 6,53,58, 4,31,10, 5,32,88, 6,53,60, 5,32,87,
- 6,53,63, 5,32,85, 6,53,57, 4,31, 3, 4,31, 8, 4,31,17, 4,31,14, 0, 0, 0,
- 5,32,90, 6,53,66, 5,32,86, 4,31,15, 4,31, 4, 6,53,68, 5,32,89, 5,32,82,
- 5,32,92, 6,53,70, 0, 0, 0, 0, 0, 0, 6,53,61, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,35,81,15,35,82,15,35,83, 6,43,85, 0, 0, 0, 0, 0, 0, 6,53,67, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,51,21, 5,32,83, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,32,93, 5,32,84,
- /* plane 2, page 82 */
- 0, 255, /* first, last */
- 6,53,69, 0, 0, 0, 5,39,64, 4,37,37, 0, 0, 0, 6,63,36, 4,37,30, 5,39,67,
- 6,63,40, 5,39,69, 5,39,70, 6,63,41, 4,43,47, 6,63,46, 6,63,38, 6,63,47,
- 7, 5,76, 6,63,39, 5,39,71, 5,39,68, 6,63,35, 6,63,42, 6,63,37, 5,39,66,
- 6,63,34, 5,39,63, 5,39,62, 5,39,61, 7, 5,70, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,42,23,15,42,24,15,42,25,15,42,26,15,42,27,15,42,28,
- 15,42,29, 4,37,26, 6,63,45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,63,44,
- 5,39,73, 0, 0, 0, 0, 0, 0, 4,37,27, 4,43,48, 4,43,44, 4,43,30, 5,46,66,
- 5,46,71, 4,43,46, 7, 5,75, 5,46,76, 5,46,69, 4,43,33, 7, 5,80, 4,43,32,
- 4,49,69, 7,16,45, 5,46,68, 5,54, 1, 5,46,70, 7, 5,77, 5,46,74, 7, 5,82,
- 4,43,41, 4,43,43, 4,43,38, 5,46,63, 5,46,75, 7, 5,71, 7, 5,72, 7, 5,74,
- 4,43,42, 5,46,67, 7, 5,78, 5,46,62, 5,46,65, 5,53,91, 5,46,73, 5,46,72,
- 0, 0, 0, 0, 0, 0, 7, 5,73,15,48,59,15,48,60,15,48,61, 7, 5,79, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4,43,40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,54,10, 5,54,11, 4,49,62, 5,54, 5,
- 5,54, 3, 5,54, 7, 5,53,93, 4,49,67, 5,54, 9, 5,53,94, 5,54, 6, 5,54, 4,
- 4,49,66, 7,16,38, 7,16,46, 0, 0, 0, 7,16,47, 7,16,43, 7,16,39, 5,46,77,
- 4,49,71, 5,53,92, 7,16,41, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,54,29, 0, 0, 0,
- 7,16,49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,16,44, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,54,12,
- 4,49,70, 0, 0, 0, 5,39,72, 5,54, 8, 4,60,11, 5,60,40, 5,60,43, 4,55,21,
- 4,55,22, 7,16,50, 7,25,62, 7,25,57, 5,60,42, 7,25,58, 5,60,44, 7,25,68,
- 5,60,41, 7,33, 2, 7,25,63, 7,25,64, 7,25,61, 4,55,23, 7,25,67, 5,60,47,
- 7,16,40, 5,60,46, 7,25,65, 7,25,60, 7,25,59, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,59,30,15,59,31,15,59,32, 0, 0, 0, 0, 0, 0, 7,25,66, 0, 0, 0, 0, 0, 0,
- 7,25,56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4,60, 8, 7,33, 3, 7,32,94, 5,66,78, 4,60,12, 5,66,75, 7,32,91,
- 7,32,92, 5,66,80, 4,60, 4, 5,66,76, 5,66,79, 5,66,81, 0, 0, 0, 0, 0, 0,
- 5,66,74,15,63,67,15,63,68, 7,33, 4, 7,33, 5, 7,32,93, 0, 0, 0, 5,66,77,
- 7,32,90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,33, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,72,47,
- /* plane 2, page 83 */
- 0, 254, /* first, last */
- 5,72,44, 5,72,49, 4,64,30, 5,72,48, 4,64,27, 5,72,52, 5,72,46, 7,40,18,
- 4,64,26, 7,40,20, 4,64,28, 4,64,29, 7,40,16, 5,72,45, 7,40,17, 5,72,51,
- 5,72,50, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,67,10, 7,43,61, 7,40,21, 7,40,19,
- 0, 0, 0, 0, 0, 0, 5,76,64, 5,76,66, 5,76,62, 7,46,56, 5,76,65, 5,76,67,
- 0, 0, 0, 7,46,55,15,69,55, 4,67,82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,76,63, 4,67,83, 7,46,54, 0, 0, 0, 0, 0, 0, 7,52, 2, 5,80,50, 5,80,52,
- 5,80,51, 5,80,53, 7,51,94, 0, 0, 0, 0, 0, 0, 7,52, 3, 7,51,93, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,72,89, 5,83,67, 7,56,38, 5,83,65, 5,83,66, 7,56,39,
- 5,83,69, 4,74,57, 7,52, 1, 5,83,68, 7,57,19, 0, 0, 0, 5,83,70, 0, 0, 0,
- 0, 0, 0, 5,86,11, 7,60, 6, 4,74,56, 7,60, 5, 0, 0, 0, 0, 0, 0, 7,63, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,76,84, 7,66,35, 7,66,37, 0, 0, 0, 7,66,36,
- 0, 0, 0,15,76,70, 5,91,35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7,36, 4,10,64,
- 4,10,65, 4,14,54, 5,15, 8, 5,15, 7, 6,26,15, 6,26,16, 0, 0, 0, 4,19,56,
- 5,20, 2,15,23, 7, 5,26,50, 4,25,49, 5,26,51, 5,26,49, 5,26,53, 5,26,48,
- 6,44, 9, 5,26,52, 5,33, 3, 5,33, 2, 0, 0, 0, 5,33, 1, 6,63,49, 6,63,50,
- 4,37,39, 4,37,40, 5,39,76, 5,39,74, 5,39,75, 4,37,41, 6,63,48, 4,37,43,
- 15,45,31, 0, 0, 0, 5,46,78, 4,43,50, 7, 5,85, 5,46,79, 4,43,49, 7, 5,84,
- 0, 0, 0, 4,43,51, 4,49,73, 4,49,72, 4,49,74, 5,54,13, 5,66,85, 7,25,69,
- 5,58,85, 0, 0, 0, 5,60,48, 5,66,84, 5,66,83, 5,66,82, 5,72,55, 5,72,54,
- 5,72,53, 5,72,56, 7,40,22, 0, 0, 0, 7,40,23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4,74,58, 0, 0, 0, 0, 0, 0, 7,70,31, 7,70,41, 6, 6,31, 6, 8,75,
- 6, 8,76, 6,19,33, 6,19,31, 6,19,32, 5,10,78, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,15,10, 5,15,11, 6,26,19,15,17,31,15,17,32, 6,26,17, 6,26,18, 0, 0, 0,
- 5,15, 9, 5,20, 3, 5,20, 4, 4,19,60, 6,34,57, 6,34,55, 5,20, 5, 6,34,53,
- 6,34,59, 6,34,54, 6,34,58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,34,56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,25,50, 6,44,12,
- 0, 0, 0,15,29,50, 0, 0, 0, 0, 0, 0, 6,44,10, 0, 0, 0, 0, 0, 0,15,29,51,
- 5,33, 4, 4,31,18, 6,53,73, 0, 0, 0, 4,31,21, 4,31,20, 6,53,71, 5,26,54,
- 4,31,22,15,35,85, 6,53,72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,39,77, 5,39,78, 6,63,51, 0, 0, 0, 0, 0, 0, 5,39,79,
- 5,39,80,15,42,30, 7, 5,88, 4,43,52, 7, 5,86, 7, 5,87,15,48,65, 7, 5,89,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,16,52, 4,49,75,15,54,31, 7,16,51,
- /* plane 2, page 84 */
- 0, 255, /* first, last */
- 5,60,49, 5,60,50, 0, 0, 0, 7,25,70, 7,25,71, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,83,71, 0, 0, 0, 5,86,12, 0, 0, 0, 5, 2,94, 6, 5,30, 4, 4,71,
- 6, 8,77, 5, 4,77, 5, 4,76,15, 5, 1,15, 5, 2, 5, 7,37, 4, 7,52, 0, 0, 0,
- 15, 8,16,15, 8,17,15, 8,18,15, 8,19, 6,13,39,15, 8,21, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4,10,69, 4,10,67, 6,19,37, 5,10,80, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,12,57,15,12,58,15,12,59,15,12,61,15,12,62,15,12,63,15,12,65,
- 15,12,67, 0, 0, 0, 6,19,35, 0, 0, 0, 6,19,36,15,12,68, 0, 0, 0, 0, 0, 0,
- 15,12,64, 6,19,34, 0, 0, 0, 0, 0, 0, 5,10,79, 5,10,81, 4,14,64, 5,15,19,
- 6,26,20, 6,19,38, 6,26,21, 5,15,15, 6,26,25, 5,15,12, 5,15,17, 5,15,16,
- 4,14,59, 4,14,61, 5,15,22, 5,15,18, 5,15,21, 0, 0, 0, 0, 0, 0,15,17,30,
- 4,14,57, 5,15,23, 6,26,24,15,17,34,15,17,35,15,17,37,15,17,38, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,14,58, 5,15,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,26,23, 0, 0, 0, 0, 0, 0,15,17,40, 0, 0, 0,15,17,33, 5,20, 6,
- 5,15,14, 0, 0, 0, 6,26,22, 5,20,12, 5,20, 8, 6,34,65, 6,34,63, 0, 0, 0,
- 5,20,17, 5,20,16, 5,20,10, 6,34,64, 5,20,20, 5,20,18, 5,15,24, 5,20,14,
- 5,20, 7, 5,20, 9, 5,20,13, 0, 0, 0,15,23, 8, 0, 0, 0,15,23, 9,15,23,10,
- 15,23,11,15,23,14,15,23,15,15,23,17,15,23,18,15,23,19, 0, 0, 0, 6,34,62,
- 0, 0, 0, 0, 0, 0, 6,34,60, 0, 0, 0, 6,44,14, 0, 0, 0,15,23,16, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,20,11, 0, 0, 0,15,23,12, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,34,66, 0, 0, 0, 0, 0, 0, 5,20,15,
- 5,20,19, 6,34,61, 5,26,56, 5,26,62, 5,26,55, 5,26,59, 4,25,54, 6,44,21,
- 4,25,55, 4,25,53, 5,26,60, 5,26,61, 6,44,17, 5,26,58, 5,26,63, 0, 0, 0,
- 0, 0, 0,15,29,52,15,29,53,15,29,54,15,29,55, 6,44,20, 0, 0, 0, 0, 0, 0,
- 6,44,16, 6,44,18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,26,65, 5,26,64,
- 0, 0, 0, 0, 0, 0, 5,33, 8, 6,53,81, 4,31,23, 5,33, 9, 6,53,74, 6,53,76,
- 5,33, 5, 6,53,78, 4,31,33, 4,31,35, 6,53,79, 6,53,82, 5,33, 6, 5,33, 7,
- 0, 0, 0, 0, 0, 0, 6,53,77,15,35,87,15,35,88,15,35,89,15,35,90,15,35,91,
- 15,35,92,15,35,93,15,35,94,15,36, 1,15,36, 2,15,36, 3,15,36, 4,15,36, 6,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,53,80, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,53,83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,63,59, 5,39,88, 6,63,52, 7, 5,94, 5,39,90, 6,63,54,
- /* plane 2, page 85 */
- 0, 255, /* first, last */
- 4,37,50, 5,39,83, 5,39,82, 6,63,55, 5,39,91, 6,63,57, 6,63,58, 5,39,85,
- 6,63,53, 5,39,81, 5,39,93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,63,56, 0, 0, 0,15,42,33,15,42,35,15,42,36,15,42,37,15,42,38,15,42,39,
- 15,42,40,15,42,41,15,42,43,15,42,44,15,42,45,15,42,47,15,42,48,15,42,49,
- 15,42,50, 0, 0, 0, 4,37,52,15,42,32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,39,87, 5,39,92, 5,39,89, 5,39,84,15,48,68, 4,43,58, 5,46,82, 5,46,83,
- 7, 6, 1, 5,46,80, 4,37,48, 7, 6, 5, 5,46,85, 7, 5,93,15,48,66,15,48,67,
- 15,48,69,15,48,70,15,48,72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 6, 2, 0, 0, 0, 7, 5,90, 7, 6, 3, 5,46,81,
- 5,46,84, 7, 5,92, 0, 0, 0,15,42,42, 7,16,56, 5,54,17, 5,54,14, 5,54,18,
- 7,16,53, 4,49,81, 0, 0, 0, 4,49,83, 5,54,20, 4,49,82, 7,16,54, 7,16,58,
- 4,49,79, 0, 0, 0, 7,16,55, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,54,33,15,54,34,
- 15,54,35, 5,54,16, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,54,36, 5,54,15,15,54,37,
- 15,54,38,15,54,39,15,54,41,15,54,43,15,54,44,15,54,45, 0, 0, 0, 0, 0, 0,
- 5,60,54, 7,25,72, 5,60,52, 7,25,79, 7,25,74, 5,60,51, 4,55,26, 7,25,73,
- 5,60,53, 4,55,29, 7,25,76, 4,55,28, 5,54,21, 5,60,56, 5,60,55, 5,60,57,
- 0, 0, 0, 0, 0, 0,15,59,33,15,59,34,15,59,35,15,59,36,15,59,37,15,59,38,
- 15,59,39,15,59,40,15,59,41, 7,25,75, 7,25,78, 0, 0, 0, 0, 0, 0,15,54,42,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,33, 9,
- 5,66,86, 5,66,88, 7,33, 6, 7,33, 8, 5,66,87, 4,60,16, 5,66,90, 7,33, 7,
- 5,66,89, 7,33,10,15,63,69,15,63,70,15,63,71,15,63,72,15,63,73, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,64,32, 5,72,58, 5,72,57, 0, 0, 0,15,67,11,15,67,12,
- 15,67,13,15,67,14, 0, 0, 0, 7,40,26, 7,40,24, 0, 0, 0, 0, 0, 0, 7,40,25,
- 0, 0, 0,15,67,15, 0, 0, 0, 5,76,69, 5,76,70, 7,46,57, 7,46,58, 5,76,68,
- 5,76,71, 4,64,33, 7,46,59,15,69,58,15,69,59,15,69,60,15,69,61, 0, 0, 0,
- 0, 0, 0, 7,46,61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,80,54, 5,80,55, 0, 0, 0, 0, 0, 0,15,71,93, 0, 0, 0,
- 7,52, 4, 4,70,66, 0, 0, 0,15,71,92, 0, 0, 0, 5,83,72, 7,56,40, 5,83,73,
- 0, 0, 0,15,73,59,15,73,60, 7,56,41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,83,74, 5,86,14, 4,74,59, 5,86,13, 5,86,15,15,74,69,
- 0, 0, 0, 7,60, 8, 7,60, 7, 0, 0, 0, 7,63, 6, 0, 0, 0, 0, 0, 0, 7,63, 5,
- 7,63, 7, 0, 0, 0, 7,66,38, 5,90,13, 0, 0, 0, 0, 0, 0, 5,90,78, 4,77,85,
- /* plane 2, page 86 */
- 1, 255, /* first, last */
- 7,68,51, 0, 0, 0, 7,69,27, 5,92,35, 6, 2, 7, 6, 5,32, 0, 0, 0,
- 6, 8,78,15, 2,72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,13,40,15, 5, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,19,39, 6,19,41, 0, 0, 0,
- 0, 0, 0,15, 8,22,15, 8,24,15, 8,25,15, 8,26,15, 8,27,15, 8,29, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 8,23, 0, 0, 0, 6,17,58, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,15,25, 6,26,26, 4,14,67, 5,15,26, 0, 0, 0,
- 6,26,27, 6,19,43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,12,69,15,12,70,15,12,71,15,12,72,15,12,73,15,17,41,15,17,43,15,17,46,
- 0, 0, 0, 0, 0, 0, 6,26,30, 0, 0, 0, 6,26,31, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,26,29, 6,26,32, 6,26,28,15,12,74, 4,10,72, 5,20,22, 6,26,33,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,17,42,15,17,44,15,17,45,15,17,47,
- 15,17,48,15,17,49,15,17,50,15,17,51,15,17,52,15,23,23, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,34,67, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,20,21, 0, 0, 0, 0, 0, 0, 6,44,24, 5,26,66, 6,44,25, 6,44,26, 6,44,28,
- 5,26,67, 6,44,29, 6,44,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,44,22,
- 6,44,23,15,23,20,15,23,22,15,23,24,15,29,59, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,23,21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,53,85, 5,33,11, 5,33,10, 5,33,12, 6,44,31, 4,31,40,15,29,56,15,29,57,
- 15,29,58,15,29,60,15,29,61,15,29,62,15,29,63,15,29,66,15,29,67,15,29,68,
- 15,36, 8,15,36,10,15,29,65, 0, 0, 0, 6,53,84, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,40, 3, 6,63,63,
- 6,63,64, 4,37,54, 6,63,67, 6,63,65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,36, 7,15,36, 9,15,36,11,15,36,12,15,36,13,15,36,14,15,36,15,15,36,16,
- 15,36,17,15,36,18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,63,61, 6,63,66, 5,40, 1, 6,63,62, 0, 0, 0, 4,43,63, 7, 6, 6, 6,63,60,
- 6,63,68, 0, 0, 0,15,42,51,15,42,53,15,42,54,15,42,55,15,42,56,15,42,58,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 6, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,54,24, 7,16,60, 5,54,22, 7,16,61, 4,49,87, 5,54,25, 5,54,23, 5,54,26,
- 7, 6,10, 7,16,59,15,48,74,15,48,73,15,54,49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,55,35, 5,60,58,
- 7,25,83, 4,55,36, 7,25,86, 7,25,84, 7,16,62,15,48,75, 0, 0, 0,15,54,46,
- 15,54,47,15,54,48,15,54,50, 7,25,81, 7,25,85, 7,25,82, 0, 0, 0, 7,25,80,
- /* plane 2, page 87 */
- 1, 255, /* first, last */
- 15,59,45,15,59,47, 4,60,20, 5,66,91, 7,33,12, 0, 0, 0,15,59,43,
- 15,59,44,15,59,46,15,59,48,15,59,49,15,59,50, 0, 0, 0, 0, 0, 0, 7,33,11,
- 0, 0, 0, 4,60,19, 5,72,59, 7,40,28, 7,40,29,15,63,74, 0, 0, 0,15,63,75,
- 0, 0, 0, 0, 0, 0, 5,76,72, 4,67,87, 0, 0, 0, 0, 0, 0,15,69,62, 7,46,62,
- 7,52, 6, 0, 0, 0, 0, 0, 0, 7,52, 5, 0, 0, 0,15,69,63, 4,72,93, 7,56,42,
- 0, 0, 0, 7,56,43, 7,60, 9,15,73,61, 7,60,10, 0, 0, 0, 0, 0, 0, 7,60,11,
- 5,87,78, 7,60,12, 5,87,79,15,74,71, 5,89,18, 0, 0, 0, 0, 0, 0, 7,66,41,
- 7,66,39, 7,67,61,15,76,71,15, 2,73, 6,19,45, 6,34,68, 4,25,59, 6,44,32,
- 0, 0, 0, 6,53,86, 0, 0, 0, 6,63,69, 7, 6,12, 7,16,63, 0, 0, 0, 7,16,64,
- 7,33,13, 0, 0, 0, 5,83,75, 7,65, 8, 4, 1,94, 6, 5,33, 0, 0, 0,15, 2,74,
- 6, 8,79, 0, 0, 0,15, 5, 5, 6, 8,80, 4, 7,53, 5, 7,40, 4, 7,55, 0, 0, 0,
- 5, 7,39, 0, 0, 0,15, 8,30,15, 8,31,15, 8,32,15, 8,33,15, 8,34, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,13,42, 6,19,49, 6,19,52, 5,10,84, 5,10,82, 4,10,80,
- 5,10,85, 6,19,54, 6,19,48, 6,19,50, 4,10,77, 6,19,47, 5,10,83, 6,19,55,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,12,75,15,12,76,15,12,78,15,12,79, 0, 0, 0,
- 0, 0, 0,15,12,80, 6,19,53, 6,19,51, 6,19,46, 0, 0, 0, 5,15,28, 5,15,27,
- 6,26,37, 5,15,29, 6,26,38, 5,15,30, 5,10,86, 5,20,28, 6,26,39, 0, 0, 0,
- 15,17,53,15,17,54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,26,34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,26,36,
- 5,20,26, 6,34,73, 5,20,31, 4,19,72, 5,20,29, 6,34,72, 5,20,23,15,23,26,
- 15,23,28,15,23,29,15,23,30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4,19,76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,34,69,
- 0, 0, 0, 6,34,74, 4,25,63, 5,26,68, 4,25,64, 4,25,60, 6,44,33, 6,44,34,
- 6,44,37, 6,44,39, 4,25,61, 6,44,36, 4,31,49,15,29,69,15,29,71,15,29,73,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,20,30, 0, 0, 0,15,29,70,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,33,22, 5,33,15, 6,53,89,
- 6,53,87, 6,53,90, 5,33,16, 5,33,13, 5,33,18, 5,33,20, 5,33,24, 5,33,19,
- 4,31,46, 6,54, 1, 5,33,14, 6,53,91, 6,53,94, 0, 0, 0, 6,53,92, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,36,19,15,36,20,15,36,21,15,36,22,15,36,23,15,36,24,
- 15,36,25,15,36,26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,53,88,
- 6,53,93, 0, 0, 0, 5,33,23, 5,33,21, 0, 0, 0, 5,40, 8, 6,63,73, 5,37,13,
- /* plane 2, page 88 */
- 0, 254, /* first, last */
- 5,40,13, 6,63,72, 6,63,70, 6,63,74, 4,37,60, 5,40,14, 5,40, 9, 6,63,78,
- 6,63,79, 5,40,11, 5,40, 7, 5,40,12, 6,63,80, 5,40,10, 6,63,71,15,42,64,
- 15,42,59,15,42,60,15,42,61,15,42,62,15,42,63,15,42,65,15,42,66,15,42,67,
- 15,42,69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,63,77, 6,63,76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,46,91, 5,46,88, 5,46,90, 7, 6,19, 7, 6,16, 5,46,89, 4,43,73,
- 0, 0, 0, 7, 6,20, 7, 6,17, 0, 0, 0, 7, 6,24, 5,40,15, 7, 6,15, 5,54,37,
- 5,46,92, 5,46,93, 0, 0, 0, 4,43,71, 0, 0, 0, 4,43,74, 7, 6,21,15,48,76,
- 15,48,78,15,48,79,15,48,80,15,48,81,15,48,82, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 6,14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7, 6,22, 7, 6,23, 4,49,91, 7,16,77, 0, 0, 0, 5,54,29,
- 5,54,32, 7,16,73, 5,54,28, 5,54,31, 5,54,30, 4,49,94, 5,54,27, 5,54,35,
- 7,16,67, 7,16,68, 5,54,34, 7,16,66, 5,54,38, 5,60,59, 5,54,39, 7,16,75,
- 7,16,74, 0, 0, 0, 0, 0, 0, 7,16,76, 7,16,65,15,54,52,15,54,53, 0, 0, 0,
- 0, 0, 0, 7,16,69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,16,71, 7,16,72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,54,36,
- 5,54,33, 0, 0, 0, 5,60,62, 5,60,65, 5,60,66, 5,60,63, 5,60,60, 5,60,61,
- 0, 0, 0, 4,55,42, 7,25,87, 5,60,68, 4,55,38, 5,60,64, 7,25,90, 0, 0, 0,
- 15,59,52,15,59,53,15,59,54,15,59,55,15,59,56,15,59,58, 7,25,88, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,59,51,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,54,40, 7,25,89, 0, 0, 0,
- 5,60,67,15,54,51, 0, 0, 0, 0, 0, 0, 5,66,93, 5,67, 6, 5,67, 4, 5,67, 1,
- 5,67, 2, 5,67, 5, 7,33,16, 5,66,94, 7,33,15, 5,67, 3, 0, 0, 0,15,63,76,
- 15,63,77,15,63,78,15,63,79,15,63,80,15,63,81,15,63,82, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,66,92, 0, 0, 0, 0, 0, 0, 5,72,62, 4,64,35,
- 5,72,60, 4,64,36, 4,64,39, 0, 0, 0, 7,40,31, 0, 0, 0, 4,64,38, 5,72,61,
- 7,46,66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,40,33, 7,40,30,15,67,16,
- 7,40,32, 5,76,75, 4,67,90, 4,67,88, 5,76,74, 7,46,64, 4,60,24, 5,76,73,
- 5,76,76, 7,46,63, 7,46,65,15,69,64,15,69,65,15,69,67, 0, 0, 0, 7,46,67,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,76,77,
- /* plane 2, page 89 */
- 0, 255, /* first, last */
- 7,52, 8, 7,52, 7, 5,80,56, 7,52, 9, 0, 0, 0, 7,56,45, 5,83,76, 7,56,46,
- 0, 0, 0, 0, 0, 0, 5,86,16, 5,86,17, 7,56,47, 0, 0, 0, 5,87,80, 0, 0, 0,
- 0, 0, 0, 7,60,13, 7,60,14, 7,63, 8, 7,62,81,15,75,55,15,75,56, 4,76,87,
- 5,89,19,15,76,20, 4,76,88, 0, 0, 0, 5,90,14, 0, 0, 0, 5,91,65, 5,91,66,
- 0, 0, 0, 0, 0, 0, 6, 3,23, 5, 4,79, 5, 4,80, 0, 0, 0, 0, 0, 0, 4, 7,57,
- 4, 7,58, 4, 7,56, 6,13,45, 6,13,44, 0, 0, 0, 6,13,47, 3,10,37, 0, 0, 0,
- 6,13,43,15, 8,35, 0, 0, 0, 0, 0, 0, 4,10,84, 6,19,57, 6,19,59, 6,19,56,
- 5,10,87, 4,10,83, 5,10,89, 5,10,88, 6,19,58, 6,19,60, 6,19,61, 5,10,90,
- 0, 0, 0,15,12,81,15,12,82,15,12,83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,15,31,
- 4,14,70, 4,14,75, 4,14,72, 5,15,35, 5,15,34, 5,15,33, 6,26,44, 4,14,73,
- 4,14,74, 4,14,71, 6,26,42, 6,26,40, 5,15,32, 0, 0, 0, 0, 0, 0, 5,15,36,
- 15,17,56,15,17,57,15,17,58, 6,26,43, 0, 0, 0, 0, 0, 0, 6,26,41, 0, 0, 0,
- 5,20,36, 5,20,35, 6,34,76, 6,34,75, 6,34,77, 5,20,33, 4,19,78, 5,20,34,
- 5,20,32, 6,34,78,15,23,32,15,23,33,15,23,34,15,23,35,15,23,36, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,26,82, 4,25,70,
- 5,26,84, 6,44,46, 6,44,42, 4,25,73, 6,44,50, 5,26,73, 5,26,79, 5,26,81,
- 6,44,48, 5,26,71, 6,44,49, 5,26,72, 6,44,43, 5,26,74, 4,25,72, 5,26,83,
- 6,44,44, 0, 0, 0, 5,26,80, 6,44,41, 5,26,70, 5,26,77, 6,44,47, 5,26,78,
- 5,26,75, 6,44,45, 0, 0, 0,15,29,75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,33,26, 6,54, 9, 5,33,28, 5,33,27, 5,33,30,
- 6,54, 2, 6,54, 4, 5,26,76, 0, 0, 0, 5,33,29, 5,33,31, 6,54, 8, 6,54,11,
- 5,33,32, 6,54, 6, 6,54, 5, 0, 0, 0, 0, 0, 0,15,36,27,15,36,29,15,36,30,
- 15,36,31,15,36,32, 6,54, 3, 0, 0, 0, 0, 0, 0, 6,54,10, 6,55, 6, 0, 0, 0,
- 4,37,65, 6,63,87, 5,40,18, 6,63,86, 6,63,82, 6,63,84, 6,63,83, 5,40,17,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,63,89,15,42,70, 5,40,19,
- 0, 0, 0, 0, 0, 0, 6,63,81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,36,28,
- 7, 6,27, 0, 0, 0, 5,47, 1, 5,47, 7, 5,47,10, 5,40,16, 7, 6,26, 5,47,11,
- 5,47, 6, 5,47, 2, 5,47,12, 5,47, 5, 7, 6,25, 5,46,94, 5,47, 8, 5,47, 4,
- 5,47, 9, 0, 0, 0, 7, 7,14, 0, 0, 0, 0, 0, 0, 4,43,77, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,54,47, 5,54,49, 4,50, 3, 5,54,48,
- 4,50, 6, 5,54,41, 4,50, 8, 7,16,80, 5,54,42, 5,54,44, 5,54,43, 5,54,51,
- 5,54,45, 5,54,52, 7,16,78, 5,54,46, 5,60,69, 5,54,53, 0, 0, 0,15,54,54,
- /* plane 2, page 90 */
- 0, 255, /* first, last */
- 15,54,55,15,54,56,15,54,57,15,54,58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,16,81, 0, 0, 0, 0, 0, 0, 5,60,74, 5,60,71, 7,26, 1,
- 4,55,46, 5,60,73, 7,25,92, 7,25,93, 7,25,91, 5,60,70, 7,25,94, 7,16,82,
- 5,60,72, 0, 0, 0,15,59,59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,67, 8, 5,67, 7,15,63,84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,64,42, 7,40,36, 7,40,35, 5,72,63, 7,40,34, 0, 0, 0,
- 7,46,68, 7,46,70, 5,72,64, 4,67,91, 5,76,78, 7,52,13, 7,46,71, 7,46,69,
- 15,69,68, 0, 0, 0, 0, 0, 0, 5,80,59, 7,52,11, 4,70,71, 0, 0, 0, 4,70,70,
- 5,80,57, 7,52,12, 5,80,58,15,72, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,69,69, 0, 0, 0, 5,86,18, 7,60,15, 5,87,81, 0, 0, 0, 7,65,10,15,75,57,
- 7,63, 9, 0, 0, 0, 5,89,20, 7,66,42, 5,91,67, 6, 8,82, 6, 8,81, 5, 7,41,
- 5, 7,42, 4,10,85, 0, 0, 0,15,12,84,15,12,88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4,14,79, 5,15,39, 5,15,40, 4,14,76, 5,15,38, 5,15,37, 4,14,78,15,17,60,
- 15,17,61,15,17,62,15,17,63,15,17,65,15,17,66, 6,26,45, 6,26,46, 0, 0, 0,
- 0, 0, 0, 6,34,82, 4,19,83, 6,34,81, 6,34,83, 6,34,80, 4,19,84, 0, 0, 0,
- 15,23,37,15,23,39, 0, 0, 0, 5,20,39,15,23,40, 0, 0, 0, 4,25,75, 6,44,53,
- 5,26,85, 5,26,87, 5,26,86, 5,26,88, 6,44,52, 0, 0, 0,15,29,77,15,29,78,
- 15,29,79,15,29,80, 4,31,54, 4,31,56, 5,33,34, 4,31,57, 6,54,12, 5,33,33,
- 6,54,13, 6,54,14,15,36,33,15,36,34,15,36,35, 5,33,35, 0, 0, 0, 0, 0, 0,
- 5,40,20, 6,63,90, 5,40,21, 4,37,66, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,42,71,
- 15,42,72,15,42,74, 0, 0, 0, 0, 0, 0,15,42,73, 7, 6,31, 4,43,78, 5,47,13,
- 15,48,83,15,48,84,15,48,85, 0, 0, 0, 7, 6,29,15,54,60,15,54,59, 4,55,49,
- 7,16,84, 5,54,54,15,59,60, 5,60,76, 0, 0, 0, 5,61,67, 7,26, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,60,75, 5,67,10, 7,26, 3,15,63,85, 7,33,17,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,67, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,46,72, 7,52,14,15,69,70, 0, 0, 0, 0, 0, 0, 7,40,37, 5,80,60,15,72, 2,
- 7,56,48,15,73,62,15,74,72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,65,11, 0, 0, 0,
- 15, 5, 6, 5, 7,43, 6,13,48, 5, 7,45, 5, 7,44, 5,10,92, 5,10,93, 5,10,91,
- 6,19,63, 6,19,62, 5,10,94, 0, 0, 0, 0, 0, 0,15,12,89,15,12,90,15,12,91,
- 15,12,92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,12,93,15, 9, 4, 5,15,46,
- 5,15,41, 4,14,84, 0, 0, 0, 5,15,42, 5,15,44, 5,15,45, 6,26,48, 5,15,49,
- 5,15,47, 5,15,43, 6,26,47, 6,26,49, 5,15,48, 5,15,50,15,17,67,15,17,68,
- /* plane 2, page 91 */
- 0, 255, /* first, last */
- 15,17,69,15,17,70,15,17,71,15,17,72,15,17,73,15,17,74, 0, 0, 0, 4,14,86,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,34,84, 6,34,90, 5,20,42, 4,19,89,
- 5,20,45, 6,34,87, 5,20,44, 6,34,92, 4,19,85, 5,20,46, 6,34,85, 5,15,51,
- 0, 0, 0, 5,20,41, 6,34,89, 6,34,91, 0, 0, 0, 5,20,48, 5,20,49, 6,34,88,
- 0, 0, 0,15,23,41,15,23,42,15,23,43,15,23,44,15,23,46,15,23,47, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,26,92, 5,27, 2, 5,26,91, 5,26,94, 4,25,76, 4,25,78,
- 6,44,58, 5,20,43, 4,25,83, 5,27, 1, 5,26,90, 4,25,89, 4,25,87, 4,25,80,
- 6,44,61, 4,25,88, 0, 0, 0, 6,44,55, 5,27, 5, 6,44,57, 6,44,60, 5,20,47,
- 5,26,93,15,29,81,15,29,82,15,29,83,15,29,84,15,29,85,15,29,86,15,29,88,
- 15,29,89,15,29,90,15,29,87, 5,27, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,33,52, 5,33,40, 5,33,47, 4,31,60, 5,33,45, 5,33,37, 4,31,68, 4,31,69,
- 5,33,48, 4,31,63, 5,26,89, 6,54,16, 5,33,38, 5,33,53, 5,33,43, 5,33,50,
- 5,33,36, 5,33,41, 5,33,44, 6,54,20, 6,54,18, 6,54,23, 6,54,26, 6,54,19,
- 6,54,22, 0, 0, 0, 6,54,24, 6,63,91, 5,33,51, 5,33,49, 5,33,46, 5,33,39,
- 6,54,17, 6,44,56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,54,21,
- 6,54,25,15,36,36,15,36,38,15,36,39,15,36,40,15,36,41,15,36,42,15,36,43,
- 15,36,44,15,36,45,15,36,46,15,36,47,15,36,48, 6,54,15, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,33,30, 5,40,37, 5,33,54, 4,37,76,
- 5,40,35, 6,64, 7, 4,37,71, 6,63,92, 6,63,93, 5,40,28, 5,40,27, 5,40,34,
- 4,37,79, 6,64, 8, 5,40,32, 6,64, 6, 5,40,24, 5,40,25, 6,64, 5, 0, 0, 0,
- 6,64, 1, 0, 0, 0, 5,40,26, 5,40,33, 5,40,23, 5,40,29, 6,64, 2, 5,33,42,
- 5,40,39, 6,63,94, 5,40,30, 6,64, 4, 0, 0, 0, 5,40,31, 4,37,81, 5,40,36,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,42,75,15,42,76,15,42,77,
- 15,42,78,15,42,79,15,42,80,15,42,83,15,42,84,15,42,85,15,42,86,15,42,87,
- 15,42,88,15,42,89,15,42,90, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,42,82, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,42,81, 5,47,26, 7, 6,41, 7, 6,43, 5,47,36, 4,44,15, 5,47,19, 7, 6,49,
- 7, 6,42, 5,47,30, 4,43,81, 4,43,79, 5,47,33, 5,47,15, 5,47,20, 5,47,35,
- 7, 6,34, 5,47,32, 5,47,17, 4,50,32, 5,47,25, 5,47,34, 4,43,82, 4,44, 9,
- 4,44, 3, 4,43,93, 5,47,24, 5,47,23, 5,47,28, 7, 6,46, 5,40,40, 5,47,21,
- 7, 6,48, 7, 6,39, 7, 6,36, 5,47,31, 7, 6,32, 7, 6,51, 4,44, 4, 7, 6,47,
- 4,43,92, 7, 6,44, 5,47,29, 0, 0, 0, 7, 6,37, 7, 6,35, 5,47,14, 7, 6,40,
- /* plane 2, page 92 */
- 2, 255, /* first, last */
- 7, 6,38, 0, 0, 0, 0, 0, 0, 5,47,38,15,48,88, 0, 0, 0,
- 0, 0, 0, 7, 6,50, 0, 0, 0,15,48,87,15,48,90,15,48,91,15,48,92,15,48,93,
- 15,48,94,15,49, 2,15,49, 4,15,49, 9,15,49, 5,15,49, 6,15,49, 7,15,49,10,
- 5,54,68, 4,50,33, 4,50,30, 5,54,56, 5,54,62, 5,54,70, 7,17,10, 5,54,60,
- 4,50,14, 5,54,61, 4,50,12, 5,54,72, 7, 6,33, 7,17, 5, 4,50,18, 5,54,71,
- 4,50,17, 7,17, 9, 4,50,28, 7,16,94, 7,17, 6, 4,50,16, 5,54,64, 7,16,91,
- 4,50,31, 5,54,63, 5,54,57, 7,16,90, 7,17, 8, 4,50,10, 5,54,55, 7,17, 4,
- 4,50,21, 5,54,69, 7,16,93, 5,54,66, 4,50,19, 7,17,11, 7,16,85, 7,17, 7,
- 5,47,16, 5,54,67, 5,54,58, 0, 0, 0, 7,16,88, 7,17, 3, 7,16,86, 5,54,65,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,54,82, 5,54,59, 7,16,92, 7,16,87,
- 7,17, 2,15,54,61,15,54,62,15,54,64,15,54,65,15,54,66,15,54,67,15,54,68,
- 15,54,69,15,54,70,15,54,71,15,54,72,15,54,73,15,54,74,15,54,75,15,54,76,
- 15,54,77,15,54,78,15,54,79,15,54,80,15,54,81, 0, 0, 0,15,54,83, 0, 0, 0,
- 0, 0, 0, 7,16,89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,48,89, 0, 0, 0, 5,61, 4, 5,61, 1, 4,55,61,
- 5,60,85, 5,61,13, 5,60,89, 4,55,60, 4,55,67, 4,55,71, 7,26,12, 5,61,11,
- 4,55,64, 5,61, 2, 0, 0, 0, 0, 0, 0, 5,60,80, 5,61, 3, 5,60,82, 5,61,17,
- 5,60,91, 5,61,10, 5,60,87, 5,61,20, 7,26, 4, 5,60,86, 5,60,92, 5,61, 6,
- 4,55,68, 5,61, 7, 7,26, 9, 0, 0, 0, 0, 0, 0, 5,67,34, 5,61,12, 5,60,90,
- 7,26,15, 7,26, 8, 5,60,79, 5,61,18, 5,61, 9, 5,60,83, 7,26,11, 5,61,14,
- 5,60,81, 5,60,78, 5,61, 8, 4,55,70, 4,60,28, 5,61,19, 5,60,88, 5,61,15,
- 5,61, 5, 7,17, 1, 5,60,84, 7,26, 7, 7,26, 6, 0, 0, 0, 7,26, 5, 7,26,13,
- 15,59,61,15,59,62,15,59,64,15,59,65,15,59,66,15,59,67,15,59,68,15,59,70,
- 15,59,71,15,59,72,15,59,73, 7,26,10, 7,26,14, 4,55,72, 0, 0, 0, 0, 0, 0,
- 15,59,69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,55,65, 5,67,43,
- 5,67,39, 5,61,21, 4,60,50, 5,67,37, 5,67,24, 5,67,19, 4,60,39, 5,67,42,
- 5,67,32, 3,56,47, 5,67,14, 4,60,46, 4,60,37, 5,67,35, 5,67,25, 5,67,44,
- 4,60,29, 7,33,27, 5,67,38, 5,67,16, 5,67,23, 4,60,30, 4,60,31, 5,67,40,
- 7,33,25, 5,67,21, 5,67,18, 5,67,31, 7,33,21, 5,67,12, 7,33,22, 4,60,33,
- 7,33,19, 4,60,51, 5,67,30, 7,33,24, 5,67,29, 7,33,26, 7,33,30, 7,33,20,
- 5,67,17, 4,60,45, 5,67,22, 5,67,26, 5,67,36, 5,67,41, 5,67,28, 5,67,13,
- 7,33,34, 7,33,33, 5,67,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,67,11,
- /* plane 2, page 93 */
- 0, 255, /* first, last */
- 5,67,15, 7,33,18, 7,33,23,15,63,86,15,63,87,15,63,88,15,63,89,15,63,90,
- 15,63,91,15,63,92,15,63,93,15,63,94,15,64, 1,15,64, 3,15,64, 4,15,64, 5,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,33,32, 7,33,29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,59,74,15,67,22,15,67,23,
- 15,64, 2, 5,72,74, 5,72,79, 7,40,46, 4,64,57, 7,40,44, 5,72,67, 4,64,52,
- 4,64,53, 4,64,49, 5,72,73, 4,64,47, 4,64,48, 7,40,40, 4,64,50, 5,72,66,
- 4,64,56, 4,64,45, 7,40,39, 0, 0, 0, 5,72,77, 5,72,72, 5,72,80, 5,72,76,
- 5,72,75, 5,72,69, 5,72,68, 5,72,71, 0, 0, 0, 7,40,38, 7,40,42, 5,72,65,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,72,81, 7,40,41,15,67,17,15,67,19,
- 15,67,20,15,67,21,15,67,24,15,67,25,15,67,26,15,67,27,15,67,28, 0, 0, 0,
- 7,40,43, 0, 0, 0, 0, 0, 0, 7,40,45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,76,92, 5,76,91, 5,76,86, 4,64,55,
- 5,76,84, 7,46,76, 5,76,90, 4,67,93, 7,46,84, 4,68, 2, 5,76,88, 5,76,83,
- 4,70,80, 7,46,74, 5,76,79, 5,76,85, 5,76,81, 7,46,73, 7,46,85, 5,76,87,
- 7,46,77, 7,46,78, 5,76,82, 7,46,79, 7,52,24, 7,46,81, 7,46,80, 0, 0, 0,
- 7,46,82, 7,46,83,15,69,72,15,69,73, 0, 0, 0, 7,46,75, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,80,68, 5,80,72,
- 5,80,73, 0, 0, 0, 4,70,81, 4,70,75, 5,80,70, 5,80,75, 7,52,15, 5,80,62,
- 5,80,67, 5,80,64, 4,68, 1, 5,80,71, 5,80,63, 5,76,80, 7,52,21, 5,80,74,
- 5,80,61, 7,52,17, 5,80,69, 4,73, 7, 5,80,76, 7,52,22, 7,52,16, 7,52,20,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,72, 3,15,72, 4,15,72, 5,15,72, 6,15,72, 7,
- 15,72, 8,15,72, 9, 7,52,19, 7,52,25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,52,18, 7,56,53, 4,73, 4, 4,73, 3,
- 5,83,80, 5,83,78, 5,80,66, 5,83,81, 7,56,50, 5,80,77, 7,56,49, 5,83,84,
- 4,73, 5, 5,83,77, 7,56,52, 7,52,23, 5,83,86, 5,83,83, 5,83,79, 5,83,85,
- 5,83,82, 7,56,54, 0, 0, 0, 0, 0, 0,15,73,63,15,73,64,15,73,65,15,73,66,
- 7,56,51, 7,57,20, 0, 0, 0, 0, 0, 0, 4,74,62, 5,86,19, 7,60,17, 5,86,20,
- 4,74,63, 4,74,64, 4,74,66, 7,60,16, 5,86,22, 7,60,18, 5,86,21, 7,60,22,
- 7,60,21,15,74,73, 7,60,19, 7,60,23, 7,60,20, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,87,82, 7,63,11, 7,63,14, 5,87,84, 5,87,85, 7,63,13, 5,86,23, 7,63,12,
- 7,63,10, 5,87,83, 7,63,17, 0, 0, 0, 4,75,87,15,75,58,15,75,59,15,75,60,
- 7,63,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,89,21, 7,65,12, 7,65,14, 7,65,17,
- /* plane 2, page 94 */
- 0, 255, /* first, last */
- 4,76,89, 0, 0, 0, 0, 0, 0, 7,65,15, 0, 0, 0, 7,63,16, 0, 0, 0, 7,65,13,
- 5,90,17, 5,90,15, 5,90,16, 7,65,16, 0, 0, 0, 0, 0, 0,15,76,47,15,76,45,
- 7,67,62, 7,67,63, 0, 0, 0, 0, 0, 0,15,76,72, 0, 0, 0, 7,67,64, 5,91,36,
- 5,91,68,15,77, 7, 0, 0, 0, 0, 0, 0, 7,68,52, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4,78,46, 5,91,92, 5,92,11, 0, 0, 0, 5, 4,81,15, 5, 7, 5, 7,46,
- 6,13,49,15, 8,37, 0, 0, 0, 6,19,65, 5,11, 2, 6,19,64, 0, 0, 0, 5,11, 3,
- 15,12,94,15,13, 2, 0, 0, 0, 6,26,50, 5,15,52, 6,26,54, 5,15,53, 6,26,52,
- 5,15,54,15,17,75,15,17,76,15,17,77,15,17,78, 6,26,51, 6,26,53, 0, 0, 0,
- 0, 0, 0, 4,19,94, 5,20,53, 4,20, 4, 0, 0, 0, 5,20,52, 4,20, 1, 5,20,56,
- 5,20,51, 5,20,54, 5,20,55, 4,20, 3, 5,20,58, 5,20,50, 6,34,93, 6,44,67,
- 6,35, 1,15,23,48,15,23,49, 0, 0, 0, 0, 0, 0, 6,34,94,15,23,50, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,27, 6, 0, 0, 0, 4,25,90, 6,44,65, 6,44,62, 6,44,69,
- 5,27, 8, 4,26, 1, 6,44,68, 0, 0, 0, 6,44,63, 0, 0, 0,15,29,92,15,29,94,
- 15,30, 2, 0, 0, 0, 0, 0, 0,15,29,91, 0, 0, 0, 6,44,66, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,33,55, 4,31,72, 6,54,29, 5,33,57, 5,33,58, 5,27, 7,
- 5,33,56, 6,54,31, 6,54,30, 4,25,94, 5,33,59, 5,33,61, 5,33,60, 6,54,33,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,36,50,15,36,51,15,36,53,15,36,54,
- 6,54,27,15,36,52, 0, 0, 0, 6,54,32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,36,49,
- 6,64,13, 5,40,42, 6,64,11, 6,64,14, 5,40,44, 4,37,83, 6,54,28, 6,64,19,
- 6,64,18, 5,40,43, 6,64,16, 5,40,41, 5,40,45, 0, 0, 0, 0, 0, 0,15,42,92,
- 15,42,93,15,42,94,15,43, 1,15,43, 2,15,43, 3,15,43, 5,15,43, 6,15,43, 8,
- 15,43, 9,15,43,10,15,43,13, 6,64,15,15,43,12, 0, 0, 0, 6,64, 9, 0, 0, 0,
- 6,64,10, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,43, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7, 6,56, 7, 6,52, 4,44,22, 5,47,43, 7, 6,53, 7, 6,57, 4,44,19,
- 5,47,42, 5,47,44, 5,47,48, 5,40,46, 5,47,47, 5,47,45, 7, 6,59, 7, 6,54,
- 5,47,41, 4,44,20, 5,47,46, 4,44,18, 7, 6,58, 5,47,40, 5,47,39, 0, 0, 0,
- 0, 0, 0,15,49,11,15,49,12,15,49,13,15,49,15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,54,78, 5,54,76, 5,61,28, 4,50,35,
- 5,54,75, 4,50,34, 7,17,15, 7,17,16, 5,54,79, 7,17,12, 5,54,74, 5,54,77,
- 5,54,80,15,54,84,15,54,85, 7,17,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,61,22,
- /* plane 2, page 95 */
- 0, 255, /* first, last */
- 5,61,24, 7,26,16, 5,61,25, 5,61,23, 5,61,26, 5,61,27, 7,26,18, 7,26,20,
- 7,26,21, 7,26,17, 0, 0, 0, 0, 0, 0,15,59,75,15,59,76,15,59,77,15,59,79,
- 15,59,80,15,59,81,15,59,82, 4,55,76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,67,50, 7,33,37, 4,60,55, 5,67,51, 5,67,47, 7,40,54, 5,67,49, 5,61,29,
- 7,33,38, 5,67,48, 7,46,88, 0, 0, 0, 5,67,45, 7,33,35,15,64, 7,15,64, 8,
- 15,64, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,59,78, 5,72,84, 7,40,47,
- 7,40,48, 4,64,62, 4,64,60, 5,72,83, 5,80,78, 7,40,50, 7,40,51, 7,33,40,
- 4,64,63, 4,60,56, 5,72,85, 7,33,39, 0, 0, 0, 5,72,82,15,67,30, 7,40,49,
- 0, 0, 0, 7,40,52, 7,40,53,15,67,31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,46,87,
- 5,76,94, 7,46,86, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,69,74,15,69,75, 4,70,83,
- 4,70,82, 5,80,79, 7,52,29, 7,52,28, 0, 0, 0,15,72,10,15,72,11, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,52,27, 0, 0, 0, 5,83,87, 7,56,55, 5,83,88,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,74,67, 4,74,68, 7,60,24,15,74,74,
- 5,86,24, 7,60,25, 7,63,18, 5,87,87, 5,87,86, 0, 0, 0, 5,89,24, 7,65,19,
- 5,89,23, 5,89,22, 7,65,18, 7,66,44, 4,77,61, 5,90,18, 7,66,43, 5,90,19,
- 7,67,66, 7,67,65, 5,91,93, 0, 0, 0, 7,70,22, 5, 7,47, 6,13,50, 5, 7,48,
- 15, 8,39,15, 8,40, 5, 7,49, 0, 0, 0, 5,11, 6, 6,19,66, 6,19,69, 5,11, 4,
- 5,11, 5, 6,19,71, 6,19,67, 5,11, 7,15,13, 3, 0, 0, 0, 6,19,72, 0, 0, 0,
- 0, 0, 0, 6,26,59, 6,26,55, 4,14,89, 6,26,67, 4,14,91, 6,26,61, 0, 0, 0,
- 6,26,60, 6,26,63, 5,15,58, 4,14,90, 4,15, 4, 6,26,68, 6,26,57, 4,15, 3,
- 6,26,62, 4,15, 2, 6,26,64, 6,26,56, 5,15,57, 6,26,65, 5,15,56, 5,15,55,
- 6,26,58, 0, 0, 0,15,17,81,15,17,82,15,17,83,15,17,84,15,17,85,15,17,86,
- 15,17,87, 0, 0, 0, 4,15, 6, 6,26,66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,20,63, 5,20,61, 4,20,18, 4,20, 8, 4,20,10,
- 6,35, 8, 4,20,15, 5,20,62, 4,20,17, 6,35, 9, 5,20,59, 4,20,12, 6,35,11,
- 6,35,10, 6,35, 5, 6,35, 3, 6,35, 4, 0, 0, 0, 5,20,60,15,23,56,15,23,57,
- 15,23,58,15,23,59, 0, 0, 0, 0, 0, 0, 6,35, 7, 0, 0, 0, 0, 0, 0, 6,35,12,
- 0, 0, 0,15,23,53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,27,17, 5,27,16,
- 5,27,14, 5,27,18, 6,44,77, 4,26, 3, 6,44,70, 6,44,76, 4,26, 2, 4,26, 4,
- 6,44,78, 6,35, 6, 6,44,71, 6,44,80, 6,44,72, 5,27,13, 6,44,74, 6,44,73,
- 6,44,79, 5,27,10, 5,27, 9, 0, 0, 0, 5,27,11,15,30, 5,15,30, 6,15,30, 7,
- /* plane 2, page 96 */
- 0, 250, /* first, last */
- 15,30, 8,15,30, 9,15,30,10,15,30,11,15,30,12,15,30,13,15,30,14, 6,44,75,
- 0, 0, 0, 5,27,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,54,43, 6,54,34, 5,33,63, 5,33,62, 4,31,76, 6,54,36,
- 4,31,77, 6,54,40, 6,54,37, 4,31,73, 5,33,65, 5,33,64, 6,54,35, 6,54,41,
- 4,26, 5, 4,31,75, 6,54,38, 5,33,66, 6,54,44, 6,54,45, 4,31,82, 6,54,42,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,36,55,15,36,56,15,36,57,15,36,58,
- 15,36,59,15,36,60,15,36,61,15,36,62,15,36,63,15,36,64,15,36,65,15,36,66,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,54,39, 4,31,80, 0, 0, 0, 4,37,88, 0, 0, 0,
- 5,40,48, 4,37,86, 5,40,50, 6,64,31, 6,64,30, 5,40,54, 4,37,90, 5,40,53,
- 4,37,87, 6,64,25, 6,64,35, 6,64,34, 6,64,22, 4,37,93, 5,40,47, 5,33,67,
- 6,64,33, 5,40,49, 6,64,28, 6,64,20, 5,40,51, 5,40,55, 6,64,32, 0, 0, 0,
- 0, 0, 0, 6,64,27, 0, 0, 0, 0, 0, 0, 4,38, 2, 6,64,24,15,43,14,15,43,15,
- 15,43,16,15,43,17,15,43,18,15,43,19,15,43,20,15,43,21,15,43,22,15,43,23,
- 6,64,21, 6,64,23, 0, 0, 0, 0, 0, 0, 6,64,29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4,44,24, 4,44,35, 7, 6,64, 4,44,34, 4,44,27, 5,47,59, 5,47,57, 4,50,40,
- 5,47,56, 5,47,61, 0, 0, 0, 5,47,53, 4,44,38, 5,47,58, 7, 6,76, 7, 6,62,
- 7, 6,68, 5,47,60, 5,47,50, 7, 6,65, 7, 6,70, 5,47,55, 0, 0, 0, 4,44,33,
- 4,44,25, 7, 6,61, 7, 6,69, 7, 6,60, 7, 6,71, 6,64,26, 7, 6,77, 7, 6,75,
- 5,47,49, 5,47,54, 5,47,62, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,49,16,15,49,17,
- 15,49,18,15,49,19,15,49,20,15,49,21,15,49,24,15,49,25,15,49,26,15,49,29,
- 15,49,30,15,49,31, 0, 0, 0, 0, 0, 0, 7, 6,66, 7, 6,72, 0, 0, 0, 7, 6,63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7, 6,67, 0, 0, 0, 7,17,38, 4,50,38, 7,17,35, 7,17,36, 4,50,42,
- 7,17,32, 7,17,29, 5,54,84, 5,54,86, 7,17,17, 7,17,34, 7,17,18, 7,26,22,
- 7,17,19, 7,17,22, 5,54,85, 5,54,87, 5,54,83, 5,61,37, 4,50,37, 5,54,81,
- 5,54,82, 4,50,43, 0, 0, 0, 7,17,26, 7,17,23, 7,17,24, 7,17,33, 4,50,45,
- 7,17,21, 0, 0, 0, 5,54,89, 7,17,20, 7,17,37, 7,17,27, 5,54,88, 7,17,31,
- 7,17,30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,17,25, 7,17,28,15,54,86,15,54,87,15,54,88,15,54,89,15,54,90,15,54,91,
- 15,54,92,15,54,93,15,54,94,
- /* plane 2, page 97 */
- 9, 255, /* first, last */
- 7,26,36, 7,26,35, 5,61,35, 5,61,32, 4,55,81, 7,26,23, 5,61,33,
- 7,26,34, 4,55,79, 7,26,26, 5,61,36, 5,61,30, 7,26,30, 7,26,27, 7,26,28,
- 7,26,32, 5,61,34, 7,26,33, 7,26,29, 5,61,39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,59,83,15,59,84,15,59,85,15,59,87,15,59,88,15,59,89,
- 15,59,90,15,59,91,15,59,92,15,59,93,15,59,94,15,60, 1,15,60, 2, 0, 0, 0,
- 0, 0, 0, 7,26,31, 7,26,24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,60,68, 4,60,60, 7,33,46, 4,60,67,
- 4,60,61, 7,33,45, 7,33,52, 4,60,65, 4,55,80, 7,33,41, 5,67,53, 5,67,56,
- 5,67,55, 7,33,43, 7,33,49, 5,67,54, 7,33,42, 7,33,47, 7,33,50, 7,33,44,
- 7,33,55, 7,33,53, 7,33,48, 7,33,59, 5,67,58, 7,33,54, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,64,10,15,64,11,15,64,12,
- 15,64,13,15,64,14,15,64,15,15,64,16,15,64,17,15,64,18, 0, 0, 0, 5,67,57,
- 7,33,60, 0, 0, 0, 7,33,58, 0, 0, 0, 7,33,56, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,33,51, 0, 0, 0, 4,64,68, 4,64,69, 7,40,63,
- 4,64,73, 7,40,71, 5,72,86, 7,40,68, 4,64,71, 7,40,70, 4,64,75, 5,72,89,
- 4,64,64, 5,72,90, 7,40,65, 7,39,43, 4,64,65, 7,40,61, 5,72,87, 0, 0, 0,
- 7,40,67, 7,40,59, 7,40,66, 5,72,88, 7,40,57, 7,40,58, 7,40,64, 7,40,62,
- 15,67,32,15,67,33,15,67,35,15,67,36,15,67,37, 7,42,83, 7,40,60, 7,40,69,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,64,74, 7,46,93, 7,46,92, 5,77, 3, 5,77, 1,
- 4,68, 5, 7,46,94, 7,47, 3, 7,46,91, 7,52,34, 7,40,56, 5,77, 4, 7,47, 4,
- 0, 0, 0, 7,47, 6, 7,46,90, 4,70,89, 7,47, 2, 0, 0, 0, 0, 0, 0, 7,46,89,
- 7,47, 5,15,69,76,15,69,77,15,69,78,15,69,80,15,69,81, 7,47, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,80,82, 4,70,85, 7,52,35, 5,80,83, 4,70,88,
- 4,70,86, 4,70,87, 7,56,62, 7,47, 7, 7,52,31, 7,52,30, 0, 0, 0, 0, 0, 0,
- 7,52,33,15,72,12,15,72,13,15,72,14,15,72,15, 0, 0, 0, 4,70,84, 7,52,32,
- 0, 0, 0, 5,80,81, 0, 0, 0, 7,52,36, 5,83,91, 7,56,57, 5,83,92, 5,83,89,
- 4,73, 9, 5,86,26, 7,56,61, 5,83,90, 7,56,59, 0, 0, 0,15,73,67,15,73,68,
- 15,73,69,15,73,70, 7,56,58, 7,56,60, 0, 0, 0, 4,73,43, 0, 0, 0, 4,74,71,
- 7,56,63, 7,60,26, 7,60,27, 4,74,72, 4,74,73, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4,75,90, 5,87,88, 7,63,23, 7,63,21,15,75,61, 0, 0, 0, 7,63,22, 7,63,24,
- 5,89,26, 7,63,20, 5,89,25, 7,65,20, 7,66,47, 7,66,46, 7,67,67,15,76,73,
- /* plane 2, page 98 */
- 0, 255, /* first, last */
- 7,67,69, 7,67,68, 0, 0, 0, 7,68,53, 0, 0, 0, 5,91,69,15,77,16, 7,69,85,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6, 5,34, 4,10,88, 0, 0, 0, 5,11, 8, 4,15, 8, 6,26,70,
- 5,15,59, 5,20,65, 0, 0, 0, 6,35,13, 5,27,20, 6,35,15, 6,35,14, 6,44,84,
- 4,26, 9, 6,44,83, 5,27,19,15,30,15, 6,54,48, 6,54,47, 4,31,84, 0, 0, 0,
- 4,38, 4, 6,64,37, 5,40,56, 6,64,36, 7, 6,78, 0, 0, 0,15,43,25,15,43,26,
- 15,43,27, 7, 6,80, 4,44,39, 0, 0, 0,15,49,32,15,49,33, 0, 0, 0, 7, 6,79,
- 5,54,91, 5,54,90, 0, 0, 0,15,55, 2,15,55, 1, 0, 0, 0, 5,61,41, 7,26,37,
- 5,61,40,15,58,56,15,60, 3,15,60, 4, 0, 0, 0, 7,33,61, 7,33,62,15,64,19,
- 0, 0, 0, 7,40,72, 4,64,76,15,67,38, 0, 0, 0, 5,80,84, 4,68, 7, 4,70,90,
- 7,52,37, 0, 0, 0, 4,74,74, 7,60,28,15,74,75, 7,63,26, 7,63,25, 5,90,20,
- 0, 0, 0, 7,70,10, 6, 2, 9, 6, 2, 8, 4, 4,74, 6, 5,36, 6, 5,37, 6, 8,83,
- 0, 0, 0, 0, 0, 0,15, 1,92, 6, 5,35,15, 5, 8,15, 5,10, 0, 0, 0, 6,13,51,
- 6,19,74, 4, 7,61, 0, 0, 0, 6,19,73, 6,13,52, 0, 0, 0, 4, 7,62, 6, 8,84,
- 4, 4,75, 6,19,75, 4,10,90, 4,10,92, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 5,54,
- 5,11, 9,15, 8,41, 0, 0, 0, 5, 7,50, 0, 0, 0, 6,26,71, 6,26,72, 6,26,73,
- 5,15,63, 6,26,76, 6,26,74, 4,15,12, 4,15,11, 6,19,78, 6,19,76, 6,19,79,
- 6,35,21,15, 9,25, 0, 0, 0, 0, 0, 0, 5,15,61, 6,35,16, 6,35,17, 6,35,18,
- 6,35,20, 6,35,22,15,17,89, 6,19,77, 6,22,90, 0, 0, 0, 0, 0, 0, 5,11,10,
- 4,10,93, 6,35,19, 6,44,87, 6,35,23, 0, 0, 0, 6,26,77, 6,44,86, 6,35,24,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,15,62, 5,20,66,15,23,60, 6,44,85, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,27,22, 5,27,21, 4,26,12, 6,44,88,
- 0, 0, 0, 0, 0, 0,15,30,16, 0, 0, 0, 6,54,50, 5,33,71, 6,54,52, 6,44,90,
- 5,33,68, 5,33,70, 6,54,51, 6,54,53, 6,44,89, 6,54,54, 0, 0, 0, 0, 0, 0,
- 15,30,17, 6,54,49,15,36,67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,64,38, 6,64,40,
- 6,64,41, 6,64,42, 6,64,43, 6,64,44, 6,64,45, 6,64,48, 5,40,59, 7, 6,85,
- 6,64,46, 5,40,58, 6,54,55, 5,40,57, 6,64,47, 0, 0, 0, 0, 0, 0, 6,64,39,
- 15,43,28, 0, 0, 0, 0, 0, 0, 7, 6,81, 7, 6,82, 7, 6,83, 7, 6,84, 5,47,66,
- 5,47,63, 6,64,50, 7, 6,86, 5,47,64, 5,47,65, 6,64,49, 0, 0, 0,15,49,34,
- 15,49,35, 7, 5,83, 0, 0, 0, 7,17,39, 7,17,40, 7,17,44, 7,17,41, 5,54,92,
- /* plane 2, page 99 */
- 0, 254, /* first, last */
- 7,17,43, 4,50,49, 7,26,46, 7,17,42, 0, 0, 0, 7,17,45, 5,47,67, 0, 0, 0,
- 0, 0, 0, 5,54,93, 4,50,48, 0, 0, 0, 0, 0, 0, 7, 6,87, 7, 6,88, 7,26,39,
- 7,26,40, 7,26,43, 5,61,42, 7,17,46, 4,55,84, 5,67,59, 7,26,44, 7,26,45,
- 0, 0, 0,15,60, 5, 0, 0, 0,15,55, 3, 7,33,63, 7,33,64, 7,33,66, 7,33,68,
- 4,60,71, 4,60,70, 5,67,60, 7,33,67, 7,40,73, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,26,42, 5,67,62, 5,72,91, 7,40,76, 4,64,78, 7,40,74, 7,40,75, 0, 0, 0,
- 0, 0, 0, 7,47, 8, 7,47, 9, 7,47,10, 7,47,11, 5,77, 5, 5,77, 7, 7,47,12,
- 5,77, 6, 0, 0, 0, 5,77, 8, 7,52,38, 7,47,13, 0, 0, 0, 5,87,90, 4,75,92,
- 7,63,27, 5,87,91, 5,87,89, 7,65,21, 0, 0, 0, 0, 0, 0, 7,66,48, 7,67,70,
- 7,68,54, 0, 0, 0, 7,69,28, 4, 4,76, 4, 3,12,15, 1,64, 6,13,54, 5, 7,51,
- 6,13,53,15,13, 4, 6,19,81, 0, 0, 0, 6,19,80, 4,10,94,15, 8,43, 6,26,78,
- 6,26,79, 0, 0, 0, 6,35,27, 6,26,83, 6,26,82, 6,26,81, 6,26,80, 6,35,26,
- 0, 0, 0,15,17,90,15,17,91, 0, 0, 0, 0, 0, 0, 6,35,29, 5,20,68, 4,26,14,
- 6,35,30, 4,20,25, 5,20,69, 0, 0, 0,15,23,61, 5,20,67, 6,35,25,15,23,62,
- 15,23,63, 0, 0, 0, 6,35,31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,27,25, 5,27,23, 6,44,93, 4,26,15, 6,45, 1, 5,27,24, 6,44,94,
- 6,44,92, 0, 0, 0, 0, 0, 0, 6,45, 2, 0, 0, 0, 6,39, 1, 6,54,58, 5,33,72,
- 6,54,59, 6,54,56, 5,33,73, 6,54,57, 0, 0, 0, 6,54,60, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,33,74,15,30,19,15,30,20, 5,40,60,
- 6,64,51, 6,64,53, 5,40,61, 0, 0, 0, 0, 0, 0, 6,64,52, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,47,68, 4,44,42, 7, 6,91, 7, 6,92, 4,44,43, 7,17,47,
- 0, 0, 0, 7, 6,90, 0, 0, 0, 4,44,40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,55, 1,
- 5,54,94, 4,50,50, 0, 0, 0,15,55, 5, 7,17,48, 0, 0, 0, 0, 0, 0, 4,55,88,
- 4,55,86, 5,61,43, 7,26,48, 7,26,47, 7,26,50, 0, 0, 0, 0, 0, 0,15,60, 6,
- 0, 0, 0, 4,50,52, 0, 0, 0, 7,26,49, 0, 0, 0, 5,67,61, 4,60,73, 5,67,63,
- 7,33,73, 7,33,74, 4,60,77, 7,33,71, 7,33,72, 7,33,70,15,55, 4,15,64,20,
- 15,64,21, 4,60,76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,72,92, 7,40,80, 5,86,27,
- 7,40,79, 7,47,14, 7,40,78, 0, 0, 0, 5,77, 9, 7,47,15, 7,47,16, 7,47,17,
- 7,47,18, 7,33,69, 5,80,85, 7,52,39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,52,40,
- 5,83,93, 7,56,64, 7,60,30, 7,60,29, 0, 0, 0, 7,65,22, 0, 0, 0, 7,67,71,
- 7,69,62, 0, 0, 0, 6,13,55, 0, 0, 0, 6,19,85, 6,19,82, 6,19,86, 5,11,11,
- 4,11, 2, 4,11, 1, 4,11, 4, 6,19,84, 4,11, 3,15,13, 5,15,13, 6,
- /* plane 2, page 100 */
- 0, 254, /* first, last */
- 6,19,83, 0, 0, 0, 4,15,19, 6,26,86, 5,15,65, 5,15,67, 5,15,64, 4,15,17,
- 4,15,22, 4,15,21, 6,26,85, 5,15,66, 4,15,20, 4,15,18, 6,26,87, 0, 0, 0,
- 15,15,67,15,15,68, 0, 0, 0, 4,15,23,15,17,92, 5,20,70, 6,35,33, 6,35,32,
- 6,35,34, 6,35,35, 6,35,36, 6,35,38, 6,35,39, 0, 0, 0, 4,20,31, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,35,37, 5,27,27, 4,26,18, 6,45, 6, 6,45, 7, 6,45,13,
- 5,27,29, 4,26,22, 6,45,14, 0, 0, 0, 6,45, 8, 6,45, 5, 6,45,15, 6,45,16,
- 5,27,28, 6,45,10, 6,45,12, 6,45,11, 0, 0, 0,15,30,21,15,30,22, 6,45, 9,
- 5,33,78, 5,33,75, 4,31,89, 6,54,61, 6,54,62, 6,54,63, 5,33,77, 0, 0, 0,
- 5,33,76, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,36,68, 0, 0, 0, 6,45, 4, 5,40,69,
- 5,40,62, 6,64,55, 5,40,63, 5,40,67, 5,40,64, 5,40,68, 5,40,65, 5,40,66,
- 6,64,54, 5,40,70,15,43,29,15,43,30,15,43,31,15,43,32, 0, 0, 0, 0, 0, 0,
- 5,47,74, 5,47,75, 7, 6,94, 5,47,72, 4,44,44, 5,47,76, 5,47,69, 7, 6,93,
- 5,47,71,15,49,38, 6,64,57, 5,47,70, 7, 7, 4, 7, 7, 5, 7, 7, 1, 4,44,46,
- 7, 7, 2, 4,44,45, 7, 7, 3,15,49,36,15,49,37, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,17,49, 7,17,51, 5,55, 5, 7,17,54, 7,17,50, 7,17,52, 4,50,55, 0, 0, 0,
- 5,55, 3, 5,55, 6, 5,55, 4, 5,47,73, 5,55, 2, 7,17,53, 5,55, 7,15,55, 6,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,55,89, 7,26,52, 5,61,44, 7,26,53, 7,40,81,
- 5,61,45, 0, 0, 0, 7,26,51,15,60, 7,15,60, 8, 5,67,64, 4,60,78, 7,33,81,
- 5,61,46, 4,60,79, 7,33,77, 7,33,79, 7,33,76, 7,33,80, 7,33,78, 0, 0, 0,
- 0, 0, 0,15,64,22,15,64,23, 7,33,75, 4,64,80, 5,72,94, 0, 0, 0, 5,72,93,
- 7,40,82, 0, 0, 0, 7,47,21, 7,47,22,15,69,82, 7,47,19, 4,70,92, 0, 0, 0,
- 7,52,41, 7,52,43, 7,47,20, 0, 0, 0, 7,52,42, 7,56,66, 7,56,67, 7,56,65,
- 0, 0, 0, 6, 5,38, 6,13,56, 6, 8,85, 0, 0, 0, 0, 0, 0, 4, 7,63, 4, 7,64,
- 6,26,88, 0, 0, 0, 4,20,32, 5,11,12,15,23,64,15,23,65, 6,35,40, 0, 0, 0,
- 6,45,17, 7, 7, 6, 0, 0, 0, 7,17,56, 7,17,55, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,75,62, 0, 0, 0, 6,13,57, 6,13,58,
- 5, 1,89,15, 8,44, 4,15,25, 5,20,71, 5,27,30, 0, 0, 0, 5,33,79, 6,64,58,
- 7, 7, 7, 7, 7, 9, 5,40,71, 0, 0, 0, 0, 0, 0, 7,17,58, 7,17,57, 0, 0, 0,
- 7,26,54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 1, 6,13,59,15, 8,45, 0, 0, 0,
- 6,19,87,15,13, 7, 6,19,88,15,17,94, 5,20,72,15,23,66, 6,35,41, 4,26,23,
- 5,27,33, 5,27,32, 0, 0, 0, 0, 0, 0, 4,31,91, 6,54,64, 0, 0, 0, 6,64,60,
- 5,40,76, 5,40,72, 5,40,77, 5,40,74, 5,40,73, 5,40,75, 4,38,17,
- /* plane 2, page 101 */
- 0, 254, /* first, last */
- 15,36,69, 6,64,59, 5,47,79, 5,47,80, 5,47,81, 5,47,77, 5,47,78, 0, 0, 0,
- 0, 0, 0, 7, 7,10, 0, 0, 0, 5,55, 9, 5,55, 8, 4,50,56, 4,50,57, 7,17,60,
- 7,17,61, 7,17,59,15,49,39, 5,61,47, 4,55,92, 7,26,58, 0, 0, 0, 7,26,55,
- 7,26,56, 0, 0, 0,15,55, 9, 5,67,65, 4,55,94, 7,33,82, 7,26,57, 7,40,85,
- 5,67,66, 7,33,84, 7,33,83,15,60, 9,15,60,10, 7,40,84, 5,73, 1, 0, 0, 0,
- 7,40,83, 4,70,94, 7,52,44, 4,74,76, 5,87,92, 5,89,27, 0, 0, 0, 5, 7,53,
- 5, 7,52, 6,13,62,15, 8,46,15, 8,47, 0, 0, 0, 6,13,61, 0, 0, 0, 5,11,15,
- 5,11,13, 5,11,14, 0, 0, 0, 0, 0, 0, 4,15,28, 6,26,94, 4,15,27, 6,26,90,
- 5,15,68, 6,27, 2,15,18, 1,15,18, 4,15,18, 6,15,18, 7, 0, 0, 0, 6,26,91,
- 15,18, 2, 0, 0, 0, 6,26,93, 6,26,92, 6,27, 3, 6,26,89,15,18, 5, 5,15,69,
- 6,35,43, 4,20,35, 4,20,34, 4,20,36, 6,35,45, 5,20,73, 6,35,47, 6,35,46,
- 6,35,44, 0, 0, 0, 6,35,42,15,23,67,15,23,68,15,23,69,15,23,70, 0, 0, 0,
- 5,27,34, 6,45,19, 6,45,20, 0, 0, 0, 0, 0, 0, 5,27,35, 6,45,21,15,30,23,
- 15,30,24,15,30,25,15,30,26,15,30,28,15,30,29,15,30,30,15,30,31,15,30,32,
- 0, 0, 0, 6,45,18,15,30,27, 0, 0, 0, 0, 0, 0, 6,54,66, 6,54,70, 5,33,81,
- 5,33,82, 6,54,65, 6,54,75, 6,54,73, 6,54,71, 5,33,83, 6,54,72, 6,54,68,
- 6,54,74, 0, 0, 0, 6,54,67,15,36,70,15,36,71, 6,54,69, 0, 0, 0, 0, 0, 0,
- 5,40,80, 5,40,81, 5,40,78, 4,44,48, 6,64,62, 5,40,82, 5,40,79, 0, 0, 0,
- 5,40,83,15,43,33,15,43,34,15,43,35,15,43,36,15,43,37,15,43,38,15,43,39,
- 15,43,40,15,43,42,15,43,43,15,43,44, 6,64,63, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,47,82, 7, 7,12, 5,47,85, 7, 7,15, 5,47,84, 5,47,83,
- 4,44,49, 5,47,87, 7, 7,11, 7, 7,16, 5,47,86, 0, 0, 0, 0, 0, 0,15,49,40,
- 15,49,41,15,49,42,15,49,43,15,49,44,15,49,45,15,49,46,15,49,47, 0, 0, 0,
- 0, 0, 0, 7, 7,13, 0, 0, 0, 0, 0, 0, 5,55,12, 5,55,15, 5,55,11, 5,55,13,
- 5,55,14, 7,17,65, 7,17,63, 7,17,62,15,55,10,15,55,11,15,55,12,15,55,13,
- 15,55,14,15,55,15, 7,17,64, 0, 0, 0, 0, 0, 0, 5,55,10, 0, 0, 0, 0, 0, 0,
- 5,61,48, 5,61,49, 5,61,50, 7,26,59, 4,56, 5, 4,56, 6, 5,61,52, 5,61,51,
- 15,60,12, 7,26,61, 7,26,60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,56,67,
- 7,33,87, 5,67,70, 5,67,67, 4,60,82, 7,33,89, 5,61,53, 7,33,88, 5,67,68,
- 5,67,69, 7,33,85,15,64,24,15,64,25,15,64,26, 0, 0, 0, 0, 0, 0, 7,33,86,
- 0, 0, 0,15,60,11,15,67,39, 7,40,86, 5,73, 2, 5,73, 3, 7,40,88, 7,40,87,
- 15,67,40,15,67,41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,47,25,
- /* plane 2, page 102 */
- 0, 249, /* first, last */
- 15,69,83,15,69,84,15,69,85, 7,47,24, 7,47,23, 5,80,86,15,72,16,15,72,17,
- 7,52,45, 7,52,46, 5,83,94, 7,56,68, 0, 0, 0, 4,74,77,15,74,76,15,75,63,
- 15,76,22,15,76,48, 5, 1,90, 6,13,63, 5,11,16, 6,35,48, 0, 0, 0, 0, 0, 0,
- 6,45,22, 0, 0, 0, 0, 0, 0, 6,40,74, 0, 0, 0, 6,54,78, 6,64,66, 6,64,65,
- 7, 7,17, 0, 0, 0,15,49,48, 7,17,66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,47,26, 5, 3, 5, 5, 3, 3, 6,13,64, 6,13,65, 6, 5,40,15, 2,76,15, 2,77,
- 0, 0, 0, 0, 0, 0, 5, 3, 4, 5, 3, 2, 5, 4,83, 5, 4,82, 6, 8,89, 6, 8,88,
- 6, 8,87, 0, 0, 0, 6, 8,86, 6,19,91, 0, 0, 0, 6,19,90, 6,19,89, 5, 7,58,
- 5, 7,62, 6,13,68, 4,15,35, 6,13,77, 6,13,78, 6,13,66, 5, 7,61, 6,13,70,
- 5, 7,57, 5, 7,55, 6,13,75, 5, 7,59, 0, 0, 0, 4, 7,75, 0, 0, 0, 0, 0, 0,
- 6,13,72, 6,13,79,15, 8,48,15, 8,49,15, 8,51,15, 8,52, 6,13,76, 4, 6,68,
- 6,13,69, 0, 0, 0, 0, 0, 0, 6,13,71, 5, 7,60, 0, 0, 0, 0, 0, 0, 6,13,74,
- 6,13,67, 6,27, 7, 6,27, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,15,29,
- 5, 7,54, 6,27, 6, 6,20,13, 4,11,13, 5,11,20, 6,20, 8, 5,11,17, 5,11,24,
- 6,20, 9, 4,11,14, 6,35,52, 6,20, 7, 4,11,11, 6,20,11, 4,11,16, 6,20, 5,
- 5,11,22, 6,20, 6, 5,11,23, 5,11,18, 4,15,40, 0, 0, 0, 0, 0, 0, 5,11,21,
- 6,19,92, 6,20, 1, 6,20, 2, 6,20, 4,15,13,10,15,13,15,15,23,71,15,23,72,
- 6,19,94, 6,20,15, 0, 0, 0, 0, 0, 0, 6,20,12, 6,20,10, 6,20,16, 0, 0, 0,
- 0, 0, 0, 6,20,14, 6,35,51, 6,35,50,15,13,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,35,53, 6,35,54, 6,27,16, 6,35,49,15,13,13, 5,15,71, 4,15,30, 4,20,37,
- 4,15,37, 6,27,18, 5,15,76, 4,15,36, 6,27,14, 5,15,78, 6,27,10, 5,15,80,
- 5,27,36, 5,15,79, 6,27, 9, 5,15,70, 6,27,11, 4,15,32, 6,45,27, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,15,73,15,13, 9,15,18, 8,15,18, 9,15,18,13,15,30,44,
- 5,15,72, 5,14, 4, 6,27,15, 6,27,13, 0, 0, 0, 6,27,12, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,27,19, 6,45,26, 6,45,24, 6,45,25, 6,45,23, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,20, 3, 5,15,75,
- 5,15,81, 0, 0, 0, 5,15,74, 5,20,84, 6,35,59, 6,35,57, 5,20,75, 4,20,46,
- 5,20,76, 4,15,34, 5,20,81, 4,20,38, 4,20,53, 5,33,84, 4,20,52, 6,35,55,
- 5,20,78, 6,35,63, 0, 0, 0, 4,20,41, 5,20,85, 5,20,86, 6,35,64, 6,35,62,
- 0, 0, 0, 4,20,47, 5,20,82, 6,35,65, 6,35,66,15,23,73,15,23,75, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,35,60, 6,35,61, 0, 0, 0, 6,54,79, 6,54,80,
- 0, 0, 0, 6,54,81,
- /* plane 2, page 103 */
- 2, 244, /* first, last */
- 5,20,83, 5,20,79, 5,20,80, 0, 0, 0, 6,45,35, 5,27,40,
- 6,45,29, 0, 0, 0, 5,27,37, 6,45,43, 6,45,34, 4,26,28, 5,27,42, 6,45,47,
- 6,45,28, 6,64,69, 5,27,39, 6,45,48, 6,54,85, 4,26,40, 5,27,44, 6,45,53,
- 6,45,46, 6,45,44, 6,45,51, 5,27,38, 5,40,85, 0, 0, 0, 0, 0, 0, 6,45,30,
- 6,45,39, 6,45,42,15,30,33,15,30,36,15,30,38,15,30,39,15,30,40,15,30,41,
- 15,30,42,15,30,43, 6,45,36, 0, 0, 0, 6,45,41, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,27,67, 0, 0, 0, 6,45,45, 6,45,33, 0, 0, 0,
- 0, 0, 0, 6,45,50, 6,45,31, 6,45,32, 0, 0, 0, 6,64,67, 6,64,71, 6,64,68,
- 0, 0, 0,15,30,37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,27,41,
- 6,45,38, 5,20,77, 5,27,43, 5,27,46, 5,27,47, 6,45,49, 5,27,49, 6,45,37,
- 6,64,72, 6,64,70, 5,33,93, 4,32, 1, 5,34, 6, 5,34, 1, 5,33,85, 5,33,89,
- 5,34, 7, 6,54,93, 4,31,94, 6,54,82, 4,26,38, 5,34, 2, 5,33,88, 6,54,87,
- 4,32, 4, 6,54,89, 4,32, 2, 6,55, 1, 6,54,83, 5,34, 9, 6,54,84, 6,54,88,
- 5,34, 3, 6,54,92, 5,33,91, 5,33,90, 5,34, 5, 5,34, 4, 6,54,90, 5,33,86,
- 6,54,94, 0, 0, 0,15,36,73,15,36,74,15,36,75,15,36,76,15,36,77,15,36,79,
- 15,36,81, 4,32,11, 0, 0, 0, 0, 0, 0, 6,55, 3, 6,55, 2, 0, 0, 0,15,36,80,
- 0, 0, 0, 7, 7,18, 0, 0, 0, 7, 7,19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,54,91, 5,33,94, 5,33,92,
- 0, 0, 0, 4,38,36, 5,40,91, 4,38,44, 4,38,35, 5,41, 3, 6,64,74, 5,40,90,
- 4,38,42, 5,41, 4, 5,41, 1, 4,38,41, 5,40,87, 5,40,93, 4,38,26, 4,38,43,
- 5,40,88, 6,64,81, 6,64,76, 5,40,86, 6,64,78, 5,40,89, 0, 0, 0, 6,64,77,
- 5,40,92, 7,17,67, 5,41, 2, 0, 0, 0, 0, 0, 0, 4,38,40, 6,64,75,15,43,45,
- 15,43,46,15,43,47,15,43,49,15,43,50,15,43,53,15,43,51, 0, 0, 0, 0, 0, 0,
- 6,64,80, 6,61,60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,33,87, 5,40,94, 0, 0, 0, 0, 0, 0,
- 4,44,51, 5,47,91, 0, 0, 0, 7, 7,20, 4,44,55, 7, 7,27, 0, 0, 0, 5,47,90,
- 4,44,57, 7,26,64, 7, 7,23, 5,47,92, 7, 7,21, 4,44,58, 7,26,62, 5,47,88,
- 0, 0, 0, 7, 7,24,15,49,49,15,49,50,15,49,51,15,49,52, 0, 0, 0, 7, 7,22,
- 7, 7,25, 0, 0, 0, 0, 0, 0, 7, 7,26, 7,26,63,
- /* plane 2, page 104 */
- 0, 255, /* first, last */
- 6,64,73, 5,47,89,15,60,21, 7,17,76, 5,55,23, 5,55,18, 4,50,72, 4,50,61,
- 5,55,17, 4,50,63, 7,17,71, 7,17,78, 5,55,21, 5,55,22, 4,50,69, 5,47,93,
- 5,55,20, 7,17,69, 7,17,77, 5,55,25, 7,17,74, 5,73, 4, 4,50,64, 7,17,79,
- 0, 0, 0,15,55,17,15,55,19, 0, 0, 0,15,55,18, 0, 0, 0, 7, 7,28, 7,17,72,
- 7,17,73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,17,68, 7,17,70, 0, 0, 0, 0, 0, 0,
- 7,17,75, 7,33,90, 0, 0, 0, 7,40,89, 7,33,91, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,55,26,
- 5,55,16, 5,55,27, 5,55,24, 5,55,19, 7,34, 1, 0, 0, 0, 5,61,58, 5,61,57,
- 7,26,66, 4,56,14, 4,56,10, 4,56, 9, 0, 0, 0, 5,61,56, 5,61,54, 4,64,81,
- 7,40,91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,61,62, 7,26,69,15,60,14,15,60,15,
- 15,60,17,15,60,18,15,60,19,15,60,20,15,60,22,15,60,16, 0, 0, 0, 7,23,94,
- 7,26,67, 0, 0, 0, 0, 0, 0, 7,40,90, 7,40,93, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,61,61, 7,26,65, 5,61,60, 5,61,55, 7,26,68, 7,40,94, 0, 0, 0, 0, 0, 0,
- 4,60,85, 5,67,74, 5,67,71, 0, 0, 0, 5,67,73, 5,67,76, 7,33,92, 5,67,78,
- 7,33,94, 5,67,75, 7,34, 3, 5,67,72, 5,77,10, 5,67,79,15,64,27,15,64,28,
- 15,64,29,15,64,32,15,64,33, 7,33,93, 0, 0, 0, 7,34,77, 0, 0, 0, 0, 0, 0,
- 4,60,83, 0, 0, 0, 4,64,82, 0, 0, 0, 7,41, 3, 7,41, 9, 5,73, 5, 5,73, 6,
- 5,67,77, 7,41, 4, 0, 0, 0, 0, 0, 0,15,67,42, 7,41, 8, 7,41,10,15,67,44,
- 15,67,45, 7,41, 2, 7,41, 6, 7,41, 5, 7,41, 7, 7,41, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,67,43, 7,41,11, 7,47,29, 5,77,14,
- 5,77,13, 4,68,11, 4,68, 9, 5,77,11,15,69,86, 7,47,28, 0, 0, 0, 7,47,27,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4,71, 6, 7,52,47, 5,80,87, 7,60,32, 7,53,26, 7,60,31, 0, 0, 0, 4,73,17,
- 4,73,15, 7,56,69, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,72,19, 7,60,33, 5,86,29,
- 7,60,35, 7,60,37, 7,60,38, 5,86,28, 7,60,34, 4,74,78, 0, 0, 0, 7,60,39,
- 7,60,40, 7,63,29, 5,87,93, 7,63,30, 0, 0, 0, 0, 0, 0, 5,89,28, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,68,55, 5,90,79, 5,91,37, 6, 8,92, 4, 4,81,15,10,41,
- 6,27,20,15,18,15, 0, 0, 0, 0, 0, 0, 6,45,54, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,45,55, 0, 0, 0,15,43,56,15,43,57,15,49,54, 6,64,83, 0, 0, 0,
- 0, 0, 0,15,60,23, 7,34, 5,15,64,34, 5,80,89,15,72,20,15,73,71, 7,69,29,
- 5,92,12, 6, 5,42, 6, 8,94, 4, 4,82, 6, 8,93, 6,13,80, 5,11,26, 6,20,18,
- /* plane 2, page 105 */
- 0, 255, /* first, last */
- 15,13,16, 0, 0, 0, 5,15,82, 6,27,22, 4,15,41,15,18,16, 6,27,23, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,27,21, 0, 0, 0, 6,35,70, 6,35,69,15,23,77,15,23,78,
- 6,45,57, 0, 0, 0, 6,45,58, 0, 0, 0, 6,55, 4, 5,41, 5,15,43,58, 0, 0, 0,
- 4,44,64, 4,44,65, 5,47,94,15,49,55, 0, 0, 0, 7, 7,29, 4,50,73, 5,55,28,
- 0, 0, 0, 7,26,70, 5,61,64, 5,61,63,15,60,24,15,64,35, 5,73, 7, 4,64,85,
- 5,77,17,15,67,46, 7,41,12, 5,77,15, 5,77,16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,66,49, 6, 9, 1, 6,13,81, 6,13,82, 6,27,26,15,13,17,
- 0, 0, 0, 6,27,24, 6,27,25, 5,20,87, 4,20,54, 0, 0, 0, 0, 0, 0, 6,45,59,
- 0, 0, 0, 5,34,10, 5,41, 6, 0, 0, 0,15,43,59, 5,48, 1, 7, 7,30,15,49,56,
- 5,48, 2, 7,17,81, 4,50,74, 5,55,29,15,55,20, 0, 0, 0, 4,56,15, 5,67,80,
- 5,67,81, 4, 4,84, 6, 5,43, 6, 3,68, 6,13,83, 6,13,84, 0, 0, 0,15,13,18,
- 4,15,43, 6,20,19, 0, 0, 0, 6,27,27, 0, 0, 0, 6,27,33, 6,27,29, 6,27,28,
- 4,15,44, 6,27,31, 6,27,32, 0, 0, 0, 0, 0, 0, 6,35,73, 5,20,88, 6,27,30,
- 6,35,72, 6,35,75, 0, 0, 0, 6,35,74, 0, 0, 0, 5,27,50, 6,45,60, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,27,51, 5,41, 7, 6,55, 8, 6,55, 7, 6,55, 5, 6,64,84,
- 6,64,90, 6,64,85, 6,64,86, 5,48, 3, 7, 7,31, 6,64,87, 6,64,91, 6,64,88,
- 7, 7,32, 7, 7,33, 7, 7,34, 6,64,89, 5,41, 8, 5,48, 4, 5,48, 5, 7, 7,35,
- 7, 7,36, 7,17,82, 7, 7,37, 0, 0, 0, 7, 7,38, 0, 0, 0,15,55,21, 7,17,84,
- 7,17,83, 5,61,66, 0, 0, 0, 7,17,87, 0, 0, 0, 7,17,86, 7,17,85, 5,61,65,
- 5,61,68, 7,26,71, 7,34, 8, 7,34, 7, 5,61,69, 4,60,87, 7,34, 6,15,64,36,
- 15,64,37, 7,41,13, 5,67,83, 5,67,82, 7,41,14, 7,47,31, 0, 0, 0, 5,73, 8,
- 0, 0, 0, 5,77,19, 5,77,20, 5,77,21, 7,47,30, 7,41,15,15,67,47, 5,73, 9,
- 7,47,32, 7,47,33, 5,80,90,15,69,88,15,72,21,15,72,23, 7,56,70, 0, 0, 0,
- 15,72,22, 7,56,71, 7,60,41, 5,87,94, 7,65,23, 5,89,29, 5,89,31, 5,89,30,
- 15,76,74, 7,69,30, 7,69,31, 0, 0, 0, 7,70,51, 5,92,48,15, 5,11, 6,20,20,
- 4,15,46, 4,15,45, 6,27,34, 0, 0, 0, 6,27,35, 0, 0, 0, 6,27,36, 5,15,83,
- 5,15,84, 6,35,76, 0, 0, 0, 6,35,77, 6,33,93, 6,45,64, 6,45,63, 6,45,65,
- 0, 0, 0, 0, 0, 0,15,30,48, 0, 0, 0, 0, 0, 0, 5,41, 9, 0, 0, 0, 4,38,45,
- 5,37,51, 4,38,46, 6,55, 9,15,43,60, 6,64,92, 6,64,94, 6,64,93, 7, 7,39,
- 15,49,57, 0, 0, 0, 7, 7,41, 7, 7,40, 0, 0, 0, 7,17,88, 5,55,30, 0, 0, 0,
- 7,17,89, 7,26,72, 0, 0, 0,15,64,38, 5,67,84, 7,34,10, 7,34, 9, 0, 0, 0,
- 5,77,22, 5,80,91, 0, 0, 0, 7,60,42, 5,86,30, 0, 0, 0, 5,48, 6, 5,48, 7,
- /* plane 2, page 106 */
- 0, 255, /* first, last */
- 15,64,39, 7,47,34, 0, 0, 0, 7,60,43, 7,63,31, 7,65,25, 5,90,80, 5, 4,84,
- 4, 7,81, 4, 7,80, 6,13,87, 6,13,86, 6,13,85, 5, 7,63, 4,11,17, 4,11,21,
- 4,11,20, 0, 0, 0, 6,20,21, 6,20,23, 6,20,22, 6,27,42, 5,15,85, 6,27,41,
- 6,27,37, 5,15,86, 4,15,50, 0, 0, 0, 4,15,49, 6,27,38, 0, 0, 0, 6,27,39,
- 6,27,40, 5,20,90, 4,20,57, 4,20,59, 6,35,82, 0, 0, 0, 5,20,91, 6,35,78,
- 6,35,79, 0, 0, 0,15,23,81, 0, 0, 0, 5,20,89,15,23,80,15,23,82, 5,27,52,
- 6,45,69, 6,45,68, 4,20,58, 0, 0, 0, 4,26,50, 4,26,48, 4,26,49, 4,26,51,
- 0, 0, 0, 0, 0, 0, 6,45,70, 0, 0, 0, 5,34,11, 6,55,12, 5,34,12, 6,55,10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,36,82, 6,55,11, 0, 0, 0, 0, 0, 0, 6,55,13,
- 6,55,14, 5,34,14, 6,65, 7, 5,41,13, 5,41,11, 4,38,50, 6,65, 2, 6,65, 6,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,43,62,15,43,63, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,43,61, 6,65, 3, 0, 0, 0, 0, 0, 0, 5,41,10, 5,48,15, 4,44,71, 4,44,70,
- 5,48,14, 5,48,11, 5,48,12, 5,48,16, 5,48, 8, 7, 7,47, 7, 7,45, 5,48,17,
- 7, 7,42, 7, 7,44, 7, 7,46, 7, 7,43, 5,48,13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,48, 9, 5,48,10, 0, 0, 0, 5,55,34, 5,55,31, 5,55,35, 7,17,92,
- 5,55,32, 7,18, 1, 7,17,93, 7,18, 3, 5,55,33, 7,18, 2,15,55,22, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,17,94, 7,17,91, 7,26,74, 4,56,17,
- 5,61,76, 5,61,70, 5,61,73, 5,61,72, 0, 0, 0, 5,61,74, 5,61,75, 0, 0, 0,
- 0, 0, 0, 4,60,89, 5,67,91, 7,34,12, 5,67,85, 5,67,90, 5,67,93, 5,67,89,
- 4,60,90, 4,60,91, 5,67,86, 5,67,87, 5,67,92, 4,60,88, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,34,13, 7,34,11, 0, 0, 0, 5,67,88,
- 0, 0, 0, 7,41,16, 5,73,13, 5,73,12, 5,73,11, 5,73,10, 7,41,17,15,67,48,
- 7,41,18, 5,77,23, 7,47,35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,80,93, 5,80,92,
- 7,52,50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,84, 1, 5,84, 2, 4,73,18,
- 7,56,72, 7,52,48, 7,52,49, 4,74,79, 7,60,44, 7,65,27, 7,65,26, 7,66,50,
- 5,90,81, 0, 0, 0, 4,78,47, 6,20,24,15,23,83, 0, 0, 0, 5,27,31,15,30,49,
- 15,49,58,15,60,25, 7,47,36, 0, 0, 0, 5,20,92, 5,20,93, 0, 0, 0, 6,35,83,
- 0, 0, 0, 5,20,94,15,30,50, 6,55,15, 6,55,16, 6,55,17, 6,65, 9, 0, 0, 0,
- 15,43,64, 0, 0, 0, 6,65,10, 6,65, 8, 7, 7,49, 7, 7,48, 7, 7,50,15,49,59,
- 15,49,60,15,49,61, 5,55,36, 5,55,37, 7,18, 5, 7,18, 4, 0, 0, 0, 5,77,25,
- 5,77,24, 7,47,37,15,76,23, 5, 1,91, 6, 3,24, 0, 0, 0, 4, 3,14, 6, 5,48,
- 6, 5,49, 6,13,88, 6, 5,46, 5, 3, 6, 6, 5,45,15, 2,79,15, 2,80,15, 2,78,
- /* plane 2, page 107 */
- 0, 255, /* first, last */
- 6, 5,44, 4, 4,87, 4, 4,88, 4, 4,92, 6, 9, 2, 4, 4,90, 6, 9, 5, 6, 9, 3,
- 6, 9, 4, 6, 9, 6, 0, 0, 0,15, 5,12,15, 5,13,15, 5,14,15, 5,15,15, 5,16,
- 15, 5,17, 0, 0, 0, 0, 0, 0, 6,13,91, 4, 7,92, 4, 7,87, 4, 7,89, 5, 7,66,
- 4, 7,93, 4, 7,88, 4, 7,85, 5, 7,64, 6,13,92, 5, 7,65, 4, 7,84, 6,27,43,
- 6, 7,44, 6,14, 1, 5, 7,68, 4, 7,86, 6,13,90, 6,13,94, 6,27,45, 6,27,44,
- 0, 0, 0,15, 8,55,15, 8,56,15, 8,57,15, 8,58,15, 8,59,15, 8,61,15, 8,62,
- 15, 8,63,15, 8,64,15, 8,65,15, 8,66,15, 8,68, 6,13,89, 0, 0, 0, 4,11,27,
- 4,11,23, 4,11,24, 4,11,25, 5,11,31, 6,20,35, 6,20,27, 4,11,28, 6,20,33,
- 6,20,29, 5,11,29, 6,20,25, 6,20,32, 6,20,30, 6,20,34, 6,20,37, 6,20,38,
- 5,11,27, 5,11,30, 0, 0, 0, 5,11,28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,13,19,15,13,21,15,13,23,15,13,24,
- 15,13,25,15,13,26,15,13,27,15,13,28,15,13,22, 6,19,30, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,20,31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,13,20, 6,13,93, 0, 0, 0, 6,45,72,15,10,50, 5,15,92, 4,15,54, 4,15,55,
- 4,15,66, 5,15,88, 5,15,90, 5,15,94, 4,15,52, 5,15,87, 5,16, 3, 4,15,59,
- 5,16, 7, 4,15,56, 4,15,69, 5,16, 4, 4,15,64, 6,27,62, 6,27,63, 5,16, 5,
- 6,27,65, 5,16, 2, 4,15,70, 6,27,57, 6,27,56, 6,45,71, 6,36, 2, 6,27,53,
- 5,15,93, 6,27,52, 6,27,49, 6,27,47, 6,27,58, 6,27,60, 5,15,91, 6,27,55,
- 5,16, 6, 5,15,89, 6,27,51, 6,27,59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,27,61, 6,27,66,15,18,19,15,18,21,15,18,22,15,18,23,15,18,24,15,18,25,
- 15,18,27,15,18,28,15,18,29,15,18,31,15,18,32,15,18,34,15,18,35,15,18,36,
- 15,18,37,15,18,39,15,18,40,15,18,41,15,18,42,15,18,43, 6,27,48,15,18,38,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,18,44, 0, 0, 0,15,18,30, 0, 0, 0, 5,21,11,
- 5,21,14, 5,21, 7, 4,20,80, 5,21,12, 4,20,65, 4,20,78, 4,20,72, 6,36,18,
- 4,20,82, 4,20,85, 6,36, 6, 6,35,91, 6,36, 3, 5,21, 3, 6,35,89, 6,35,85,
- 4,20,64, 5,21,18, 6,35,84, 6,36, 1, 6,36,24, 4,20,68, 6,36,22, 6,46,26,
- 0, 0, 0, 6,36,20, 6,27,64, 6,45,88, 4,20,63, 5,21, 1, 4,20,75, 0, 0, 0,
- 6,35,87, 6,36, 4, 5,21,16, 6,36,15, 6,36,21, 6,36,14, 6,36, 9, 5,21,15,
- 6,36,19, 6,35,88, 6,36, 7, 5,21,17, 5,34,15, 6,55,18, 6,55,19, 0, 0, 0,
- 6,36,16, 6,36,17, 6,35,94, 5,21, 2, 5,21,19, 6,36,10, 5,21, 9, 5,21,13,
- 5,21, 6, 6,46,23, 6,36,25, 6,36,26, 6,35,92, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,35,90,15,23,84,15,23,85,15,23,86,15,23,87,15,23,89,15,23,91,15,23,92,
- /* plane 2, page 108 */
- 0, 255, /* first, last */
- 15,23,93,15,23,94,15,24, 1,15,24, 2,15,24, 4,15,24, 5,15,24, 6,15,24, 7,
- 15,24, 8,15,24, 9,15,24,10,15,24,11,15,24,12,15,24,13,15,24,14,15,24,15,
- 15,24,16,15,24,17,15,24,18,15,24,19,15,24,20,15,24,21, 5,27,61, 6,35,93,
- 5,21, 8, 6,36, 5, 0, 0, 0,15,23,90, 0, 0, 0, 6,36,13, 6,36,23, 0, 0, 0,
- 0, 0, 0,15,24, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,21, 5,
- 0, 0, 0, 0, 0, 0, 5,27,53, 4,26,53, 5,27,73, 5,27,74, 5,27,66, 5,27,76,
- 5,27,77, 5,27,67, 4,26,61, 6,45,90, 6,45,82, 6,46,11, 6,45,80, 6,45,75,
- 5,27,63, 5,27,71, 5,27,72, 6,45,91, 6,45,89, 5,27,62, 5,27,78, 5,27,75,
- 4,20,74, 4,26,55, 4,26,58, 4,26,56, 4,26,66, 5,27,58, 0, 0, 0, 4,26,52,
- 6,45,73, 6,46,21, 4,26,67, 6,45,74, 5,27,68, 6,45,92, 6,46,22, 6,45,93,
- 6,46,15, 6,46,16, 4,26,75, 6,46, 6, 4,26,73, 6,46, 3, 5,27,60, 6,46, 8,
- 6,45,85, 6,46,13, 6,45,84, 6,46, 2, 6,46,17, 0, 0, 0, 6,46, 9, 5,27,69,
- 6,65,18, 6,65,13, 6,65,14, 5,27,55, 6,46, 4, 6,45,79, 6,46,14, 5,41,14,
- 6,45,83, 6,46,12, 6,45,87, 6,46, 5, 6,45,77, 6,46,10, 4,26,74, 5,27,64,
- 5,27,59, 0, 0, 0, 6,45,86, 6,46,24, 6,65,11, 5,27,70, 6,65,15, 5,27,65,
- 6,46,20, 6,65,17, 6,65,16, 6,45,76, 6,45,94, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,44,91, 5,27,56, 6,45,78, 6,45,81, 6,46,19,
- 6,46,25,15,30,51,15,30,53,15,30,54,15,30,56,15,30,58,15,30,59,15,30,60,
- 15,30,61,15,30,62,15,30,63,15,30,64,15,30,65,15,30,67,15,30,68,15,30,69,
- 15,30,72,15,30,73,15,30,74,15,30,77,15,30,79,15,30,80,15,30,81,15,30,82,
- 15,30,84,15,30,85,15,30,86,15,30,87,15,30,88,15,30,89,15,30,90,15,30,91,
- 15,30,92,15,30,93,15,30,94, 0, 0, 0, 6,65,12, 0, 0, 0, 0, 0, 0, 5,27,57,
- 6,46, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,30,66,15,30,52,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,30,78, 0, 0, 0, 0, 0, 0,
- 15,30,83, 4,32,35, 6,55,20, 6,55,38, 5,34,46, 6,55,26, 6,55,27, 5,34,20,
- 4,32,29, 6,55,41, 6,55,58, 4,32,32, 4,32,34, 5,34,37, 6,55,62, 5,34,26,
- 4,32,23, 4,32,20, 6,55,33, 6,55,67, 5,34,19, 6,55,49, 6,55,53, 5,34,35,
- 6,55,42, 4,32,24, 4,32,27, 5,34,22, 6,55,35, 4,32,28, 4,32,37, 5,34,33,
- 4,32,45, 5,34,47, 4,32,30, 5,34,38, 6,55,61, 5,34,31, 4,32,19, 4,32,17,
- 6,55,69, 4,32,31, 6,55,34, 5,34,40, 5,34,34, 5,34,24, 5,34,30, 0, 0, 0,
- 6,55,24, 6,55,51, 6,55,47, 6,55,32, 6,55,71, 5,34,29, 6,55,25, 6,55,68,
- 6,55,23, 5,34,48, 6,55,46, 6,55,37, 6,55,28, 5,34,41, 5,34,45, 5,34,27,
- /* plane 2, page 109 */
- 0, 255, /* first, last */
- 5,34,39, 6,55,50, 6,55,64, 0, 0, 0, 0, 0, 0, 6,55,60, 0, 0, 0, 6,55,40,
- 6,55,54, 5,34,25, 4,32,25, 6,55,55, 5,34,16, 5,34,32, 5,34,18, 5,34,42,
- 6,55,31, 4,32,21, 4,32,43, 6,55,44, 5,34,21, 5,34,17, 6,55,39, 6,55,56,
- 7, 7,51, 6,55,65, 5,34,28, 6,55,36, 6,55,52, 6,55,22, 6,55,66, 6,55,70,
- 6,55,57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,32,46, 5,34,36, 5,34,43, 6,55,21, 6,55,30,
- 6,55,43, 6,55,45, 6,55,59, 6,55,63,15,36,83,15,36,85,15,36,86,15,36,87,
- 15,36,88,15,36,89,15,36,90,15,36,91,15,36,92,15,36,93,15,36,94,15,37, 1,
- 15,37, 2,15,37, 3,15,37, 4,15,37, 5,15,37, 6,15,37, 7,15,37, 8,15,37, 9,
- 15,37,10,15,37,11,15,37,12,15,37,14,15,37,15,15,37,16,15,37,17, 0, 0, 0,
- 5,34,44, 4,32,42, 6,55,29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,46,18,15,30,55, 5,34,23,
- 0, 0, 0, 4,38,70, 6,65,64, 5,41,37, 6,65,19, 6,65,35, 5,41,43, 4,38,67,
- 6,65,54, 4,38,54, 6,65,37, 4,38,57, 6,65,28, 5,41,33, 6,65,42, 4,38,53,
- 6,65,50, 5,41,29, 6,65,32, 6,65,57, 5,41,41, 5,41,38, 6,65,44, 5,41,26,
- 4,38,58, 6,65,25, 6,65,53, 6,65,45, 6,65,31, 5,41,36, 5,41,25, 5,41,16,
- 4,38,66, 6,65,33, 4,38,62, 0, 0, 0, 6,65,22, 4,38,61, 4,38,75, 4,38,59,
- 5,41,31, 7, 7,56, 6,65,23, 5,41,18, 5,41,23, 5,41,17, 5,41,40, 5,48,27,
- 4,38,63, 5,41,35, 6,65,24, 4,38,72, 6,65,48, 5,41,24, 6,65,55, 6,65,38,
- 6,65,27, 5,41,32, 5,41,22, 7,18, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,41,15, 5,41,20, 6,65,39, 6,65,41, 6,65,43, 6,65,46, 6,65,58, 6,65,61,
- 6,65,62,15,43,65,15,43,66,15,43,67,15,43,70,15,43,72,15,43,73,15,43,74,
- 15,43,75,15,43,76,15,43,77,15,43,78,15,43,79,15,43,80,15,43,81,15,43,82,
- 15,43,83,15,43,84,15,43,85,15,43,86,15,43,88,15,43,89,15,43,90,15,43,92,
- 15,43,93,15,43,94,15,44, 1,15,44, 2,15,44, 3,15,44, 5,15,44, 6,15,44, 7,
- 15,44, 8,15,44, 9,15,44,10, 6,65,40, 5,41,34, 6,65,51, 0, 0, 0, 6,65,49,
- 6,55,72, 5,41,42, 6,65,60, 6,65,63, 0, 0, 0, 6,65,59, 6,65,26, 6,65,21,
- 6,65,34, 6,65,29, 0, 0, 0, 6,55,48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,43,68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,43,71, 6,65,52, 4,38,74, 4,38,52, 5,41,21, 5,41,45, 7,18, 6, 5,41,19,
- 6,65,65, 5,41,39, 5,41,44, 5,55,38,15,43,91, 5,41,30, 0, 0, 0, 7, 7,76,
- /* plane 2, page 110 */
- 0, 255, /* first, last */
- 4,44,94, 5,48,18, 4,44,73, 4,44,92, 7, 8, 1, 0, 0, 0, 5,48,21, 7, 8, 4,
- 7, 7,87, 7, 7,60, 5,48,25, 7, 7,73, 7, 7,88, 7, 7,89, 7, 7,74, 7, 7,83,
- 5,48,26, 7, 7,79, 4,44,85, 5,48,29, 5,48,34, 7, 7,64, 7, 8, 2, 5,48,32,
- 5,48,31, 5,55,39, 5,48,33, 5,48,43, 7, 7,75, 7, 7,86, 7, 7,57, 7, 7,82,
- 7, 7,69, 5,48,40, 5,48,23, 4,44,91, 7, 7,52, 0, 0, 0, 7, 7,59, 7, 7,68,
- 7, 7,67, 7, 7,71, 5,48,19, 7, 7,70, 7, 7,93, 7, 7,62, 5,48,30, 7, 7,54,
- 5,48,20, 5,48,42, 7, 7,92, 7, 7,66, 7, 7,61, 7, 7,78, 4,44,86, 5,48,41,
- 5,48,37, 7, 7,84, 5,55,56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,45, 2, 5,48,35,
- 7, 7,53, 7, 7,58, 7, 7,63, 7, 7,80, 7, 7,81, 7, 8, 3,15,49,62,15,49,63,
- 15,49,64,15,49,66,15,49,67,15,49,70,15,49,71,15,49,72,15,49,73,15,49,74,
- 15,49,76,15,49,77,15,49,78,15,49,79,15,49,80,15,49,82,15,49,85,15,49,87,
- 0, 0, 0, 4,45, 3, 7, 7,90, 5,48,36, 7, 7,94, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7, 7,85, 0, 0, 0, 7, 7,72, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,49,81, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,49,65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,49,75,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,48,22, 7, 7,55, 5,48,39,
- 5,48,28, 6,65,20, 7,34,14, 0, 0, 0,15,44, 4, 0, 0, 0, 7,18,49, 4,51,13,
- 7,18,18, 4,51,10, 4,51,20, 7,18,51, 5,55,41, 4,51,11, 5,55,61, 7,18,35,
- 5,55,52, 4,50,81, 4,51,16, 5,55,49, 5,55,59, 7,18,28, 4,50,85, 5,55,58,
- 5,55,43, 5,55,63, 7,18,19, 5,55,65, 4,51,15, 7,18, 8, 5,55,45, 5,55,47,
- 7,18,44, 5,55,53, 5,55,66, 7,18,29, 7,18,27, 5,48,44, 4,50,80, 5,55,40,
- 5,55,62, 7,18,37, 7,18,43, 7,18,33, 5,55,68, 5,55,64, 7, 8, 5, 7, 7,91,
- 7,18,50, 5,61,90, 4,51, 6, 7,18,14, 4,51, 9, 7,18,22, 5,55,51, 4,51, 8,
- 4,50,84, 5,48,24, 7,18,15, 5,55,50, 7,18,24, 5,55,54, 5,55,44, 7,18,13,
- 7,18,55, 7,18,46, 4,51,14, 5,55,60, 7,18,10, 4,50,88, 7,18,25, 7,34,15,
- 7,18,11, 7,18,53, 4,51,18, 7,18,34, 7,18,21, 7,18,31, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,55,30,15,55,31,15,55,32,15,55,33, 5,55,42, 5,55,48, 5,55,55, 7,18,12,
- 7,18,20, 7,18,23, 7,18,30, 7,18,32, 7,18,39, 7,18,41, 7,18,45, 7,18,47,
- 7,18,52, 7,18,57, 7,18,58,15,55,23,15,55,24,15,55,25,15,55,26,15,55,27,
- 15,55,28,15,55,29,15,55,34,15,55,35,15,55,36,15,55,41,15,55,44,15,55,45,
- 15,55,46,15,55,47,15,55,48,15,55,49,15,55,50,15,55,51,15,55,52,15,55,54,
- /* plane 2, page 111 */
- 0, 255, /* first, last */
- 15,55,55,15,55,56,15,55,57,15,55,58,15,55,59,15,55,60, 7,18,17,15,55,37,
- 0, 0, 0, 0, 0, 0, 4,50,93, 7,18,26, 7,18,56, 7,18,48, 5,55,69, 5,55,46,
- 7,18,16, 7,18, 9, 7,18,40, 0, 0, 0, 0, 0, 0,15,55,42, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,18,54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,55,67, 5,55,57, 0, 0, 0, 7,18,38, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,26,86, 4,56,26, 4,56,31, 7,26,78, 7,34,27, 7,26,88, 4,56,40,
- 4,56,41, 5,55,70, 5,61,85, 5,61,93, 5,61,83, 7,27,11, 7,27,15, 5,61,79,
- 4,56,42, 4,56,23, 7,26,91, 4,56,37, 5,62, 1, 7,26,92, 7,27, 3, 7,27,19,
- 5,61,94, 5,62, 5, 7,27,17, 5,62, 2, 5,61,78, 5,61,88, 7,26,94, 5,61,92,
- 7,26,83, 7,27, 4, 7,27,10, 5,61,91, 4,56,43, 0, 0, 0, 5,61,77, 5,62, 3,
- 4,56,33, 7,27,16, 5,61,87, 4,56,38, 5,61,81, 5,62, 4, 7,27, 5, 5,61,86,
- 7,26,80, 7,26,85, 7,34,25, 7,26,75, 7,26,76, 7,27,21, 7,26,93, 4,56,39,
- 7,27,14, 7,26,82, 7,26,87, 7,41,20, 7,26,81, 7,27, 2, 7,27, 9, 7,18,42,
- 7,26,89, 7,27, 1, 7,27,23, 5,61,84, 5,48,45, 0, 0, 0, 4,56,35, 0, 0, 0,
- 0, 0, 0, 7,41,21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,61,80, 5,61,82, 7,26,77,
- 7,27, 7, 7,27, 8, 7,27,12, 7,27,20,15,60,26,15,60,27,15,60,28,15,60,29,
- 15,60,30,15,60,32,15,60,33,15,60,34,15,60,35,15,60,36,15,60,37,15,60,38,
- 15,60,39,15,60,41,15,60,42,15,60,43,15,60,44,15,60,47,15,60,48, 4,56,25,
- 7,26,90, 0, 0, 0, 7,27,13, 0, 0, 0, 7,27,22, 0, 0, 0, 0, 0, 0, 7,26,84,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,60,40, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,60,31,
- 0, 0, 0,15,60,46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,55,53,
- 0, 0, 0, 0, 0, 0,15,67,59, 0, 0, 0, 5,68,12, 7,34,43, 4,61, 4, 7,34,44,
- 5,68, 2, 4,61, 5, 5,62, 6, 5,68,15, 7,34,40, 5,68, 5, 5,67,94, 7,34,16,
- 5,68, 1, 5,68, 9, 5,68,22, 5,68,25, 7,34,22, 5,68,19, 7,34,38, 4,61, 2,
- 5,62, 7, 5,68,24, 5,68, 6, 5,68,16, 7,34,29, 5,68, 4, 5,68,14, 0, 0, 0,
- 7,34,45, 4,61,16, 5,68,17, 4,61,14, 4,61, 6, 4,61,10, 5,68,20, 5,68,18,
- 7,34,30, 7,47,38, 7,34,26, 7,34,23, 4,61,15, 7,41,36, 5,68,11, 7,34,19,
- 7,34,37, 7,34,41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4,61,13, 7,27, 6, 7,34,18, 7,34,20, 7,34,21, 7,34,31, 7,34,34, 7,34,36,
- 7,34,42, 7,34,46, 7,34,47,15,64,40,15,64,41,15,64,42,15,64,43,15,64,44,
- 15,64,47,15,64,48,15,64,49,15,64,50,15,64,51,15,64,52, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,64,53,15,64,54,15,64,55,15,64,56,15,64,57,15,64,58,15,64,59,
- /* plane 2, page 112 */
- 0, 255, /* first, last */
- 15,64,60,15,64,62,15,64,63, 0, 0, 0, 4,61, 7, 7,34,32, 5,68, 7, 7,34,33,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,41,19, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,68,21, 5,68,10, 4,61, 9, 7,34,39,
- 5,68, 3, 5,68, 8, 5,68,23, 7,34,35, 0, 0, 0, 7,34,17, 0, 0, 0, 0, 0, 0,
- 5,73,30, 5,73,15, 7,47,61, 5,73,16, 5,73,26, 5,73,22, 4,64,93, 4,64,89,
- 5,73,31, 5,73,23, 7,41,24, 7,41,37, 5,73,27, 5,73,21, 4,64,92, 5,73,14,
- 5,77,34, 7,41,35, 5,73,24, 7,41,38, 5,73,25, 7,41,33, 0, 0, 0, 7,41,52,
- 7,41,49, 7,41,28, 5,73,19, 5,73,29, 7,41,43, 7,41,46, 7,41,30, 7,41,29,
- 7,41,34, 7,41,39, 7,47,52, 7,41,45, 7,41,25, 7,41,44, 7,41,42, 7,47,39,
- 5,73,20, 5,73,18, 4,64,86, 5,73,28, 7,41,41, 7,41,32, 0, 0, 0, 7,41,31,
- 0, 0, 0, 7,41,22, 0, 0, 0, 0, 0, 0, 7,41,23, 7,41,26, 7,41,40, 7,41,48,
- 7,41,50,15,67,49,15,67,50,15,67,52,15,67,53,15,67,54,15,67,55,15,67,56,
- 15,67,57,15,67,58,15,67,60,15,67,61,15,67,62,15,67,63,15,67,64,15,67,65,
- 15,67,66,15,67,67,15,67,68,15,67,69,15,67,70,15,67,71,15,67,72,15,67,73,
- 7,41,47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,47,62, 7,47,53, 7,47,46, 5,77,32, 5,77,39,
- 7,47,65, 5,77,33, 5,77,36, 4,68,25, 7,47,56, 5,77,38, 4,68,21, 0, 0, 0,
- 5,77,31, 5,80,94, 7,47,63, 5,77,27, 7,47,49, 7,47,48, 7,47,44, 5,77,30,
- 5,77,37, 7,47,45, 4,68,17, 7,47,71, 5,77,28, 7,47,43, 7,47,51, 7,47,66,
- 7,47,59, 7,41,27, 7,47,69, 5,77,35, 4,68,14, 7,47,57, 5,77,29, 7,47,70,
- 0, 0, 0, 7,47,58, 0, 0, 0, 5,73,17, 7,52,71, 7,56,73, 0, 0, 0, 7,47,41,
- 5,77,26, 5,77,40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,47,50, 7,47,54, 7,47,55, 7,47,60, 7,47,67, 7,47,68,15,69,89,15,69,90,
- 15,69,91,15,69,92,15,69,93,15,69,94,15,70, 1,15,70, 2,15,70, 3,15,70, 4,
- 15,70, 5,15,70, 6,15,70, 7,15,70, 8,15,70, 9,15,70,10,15,70,11,15,70,12,
- 7,47,42, 7,47,40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,47,64, 7,52,67,
- 4,73,21, 5,81, 8, 7,52,70, 7,52,63, 5,81, 4, 4,71,12, 4,71,10, 7,52,57,
- 4,71,14, 5,81, 2, 7,52,68, 5,81, 5, 7,52,69, 4,71, 9, 5,77,41, 5,81, 7,
- 7,52,59, 7,52,51, 5,81, 6, 7,52,66, 7,52,55, 7,52,53, 7,52,64, 4,71,13,
- 5,81, 3, 5,81, 9, 5,81,10, 7,52,52, 7,52,60, 0, 0, 0, 7,47,47, 7,52,58,
- 7,56,86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,81, 1, 7,52,54, 7,52,61, 7,52,65,15,72,24,15,72,26,15,72,27,
- /* plane 2, page 113 */
- 0, 255, /* first, last */
- 15,72,28,15,72,29,15,72,30,15,72,31,15,72,33,15,72,34,15,72,35,15,72,36,
- 0, 0, 0,15,72,32, 0, 0, 0, 7,52,56, 0, 0, 0, 5,84, 4, 4,73,22, 5,84, 5,
- 5,84, 7, 5,84, 8, 7,56,80, 5,84, 9, 4,73,27, 4,73,26, 7,56,87, 7,56,85,
- 7,56,77, 7,60,51, 5,84, 3, 5,84, 6, 7,56,79, 4,73,24, 4,73,25, 7,56,78,
- 4,73,20, 7,56,83, 7,56,75, 7,56,88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,56,74, 7,56,76, 7,56,81, 7,56,84,15,73,72,15,73,75,15,73,76, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,60,47, 7,60,58,
- 4,74,85, 5,86,32, 4,74,84, 5,86,31, 4,74,81, 4,74,83, 4,74,82, 4,74,80,
- 5,86,35, 7,60,49, 7,60,59, 5,86,34, 5,89,32, 7,60,53, 5,86,36, 7,60,55,
- 7,60,56, 7,60,45, 7,60,48, 5,86,33, 7,60,54, 7,60,52, 7,60,50, 7,60,57,
- 15,74,77,15,74,78,15,74,79, 7,60,46,15,73,74, 0, 0, 0, 5,88, 3, 5,88, 2,
- 5,88, 1, 7,63,32, 5,88, 4, 7,63,34, 7,63,38, 7,63,35, 7,63,36, 7,63,41,
- 7,63,33, 7,63,39, 5,89,34, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,75,64,15,75,65,
- 15,75,67, 7,63,37, 7,63,40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,89,35, 7,66,53,
- 5,89,33, 7,66,51, 7,65,30, 7,65,29, 7,65,28, 0, 0, 0,15,76,24,15,76,25,
- 7,65,31, 0, 0, 0, 5,90,21, 5,90,22, 7,66,57, 7,66,55, 7,66,54, 0, 0, 0,
- 0, 0, 0, 7,66,56, 0, 0, 0, 7,66,52, 0, 0, 0,15,76,49, 7,66,40, 4,77,90,
- 7,67,72, 5,90,82, 4,77,63, 4,77,92, 0, 0, 0,15,76,75,15,76,77, 5,91,38,
- 4,78,21, 7,68,56, 7,68,57, 5,92,41, 7,69,32, 5,91,70, 7,69,64, 7,69,86,
- 5,92,47, 5,92,29, 7,69,63,15, 8,69, 4,11,31, 6,20,41, 6,20,40, 0, 0, 0,
- 15,18,46, 0, 0, 0, 0, 0, 0, 5,21,22, 5,21,20, 4,20,87, 4,20,86, 6,36,33,
- 4,20,88, 6,36,34, 6,36,32, 6,36,31, 6,27,67, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,46,28, 5,27,81, 6,46,29,15,31, 2,15,31, 3,15,31, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,34,53, 5,34,49, 5,34,50, 6,55,75, 6,55,74, 6,55,73,
- 0, 0, 0, 5,41,47, 6,65,66, 6,65,70, 4,38,79, 6,65,69, 6,65,71, 6,65,67,
- 6,65,68, 5,41,48,15,44,11,15,44,12, 0, 0, 0, 4,38,78, 0, 0, 0, 0, 0, 0,
- 7, 8, 9, 7, 8, 7, 7,18,63, 5,48,46, 7, 8, 6, 7, 8, 8, 0, 0, 0,15,49,89,
- 7, 6, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,55,74, 5,55,75, 5,55,72, 5,55,73,
- 4,51,21, 5,55,71, 7,18,64, 7,18,60, 7,18,61, 4,51,24, 4,51,23, 5,55,77,
- 7,18,62,15,55,61,15,55,62,15,55,63, 5,55,76, 7,18,59, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4,56,44, 7,27,25,15,60,49,15,60,50,15,60,51, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,34,49, 5,68,29, 4,61,19, 7,34,48, 4,61,17,
- /* plane 2, page 114 */
- 0, 243, /* first, last */
- 7,34,50, 5,68,28, 0, 0, 0,15,64,64, 0, 0, 0, 0, 0, 0, 7,41,54, 7,41,53,
- 4,64,94, 7,41,55, 0, 0, 0, 7,47,73, 0, 0, 0, 5,77,42, 7,47,74, 0, 0, 0,
- 7,44, 6, 5,81,12, 7,47,72, 5,81,11, 0, 0, 0, 5,80,45, 7,52,74, 7,52,73,
- 5,84,10, 0, 0, 0, 7,60, 4, 0, 0, 0, 4,78,24, 5, 4,85, 6, 9, 9, 4, 8, 2,
- 6,14, 5, 0, 0, 0, 0, 0, 0,15, 8,70,15, 8,71,15, 8,73, 0, 0, 0,15, 8,74,
- 4,11,35, 6,20,43, 4,11,32, 4,11,34, 6,20,42, 5,11,32, 6,20,45, 6,20,44,
- 6,20,46, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,13,29,15,13,31,15,13,34,15,13,35,
- 15,13,36,15,13,33, 4,11,33, 5,16,16, 6,27,72, 5,16,12, 5,16,19, 6,27,71,
- 5,16,13, 5,16,18, 6,27,70, 4,15,76, 4,15,74, 4,15,78, 5,16,14, 6,27,80,
- 5,16, 9, 6,27,75, 5,16,17, 5,16, 8, 6,27,74, 5,16,15, 5,16,20, 6,27,78,
- 6,27,68, 5,16,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,27,69,15,18,47, 6,27,76,
- 6,27,77, 0, 0, 0, 0, 0, 0, 5,16,10, 6,27,79, 0, 0, 0, 5,21,23, 4,20,93,
- 6,36,37, 5,21,24, 5,21,25, 5,21,26, 5,21,32, 4,21, 2,15,24,29, 4,21, 3,
- 6,36,44, 5,21,28, 4,21, 1, 5,21,29, 6,36,38, 5,21,33, 6,36,41, 4,21, 4,
- 4,20,94, 0, 0, 0, 0, 0, 0, 6,36,39, 6,36,42, 6,36,36, 6,36,43, 6,36,45,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,24,22,15,24,23,15,24,24,15,24,25,15,24,27,
- 15,24,28,15,24,30,15,24,31,15,24,32, 0, 0, 0, 5,21,30, 6,36,46, 4,21, 5,
- 6,36,35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,21,31, 5,21,27, 5,27,83,
- 6,46,32,15,31, 8, 4,26,83, 6,46,40, 5,28, 8, 5,27,88, 5,27,85, 5,27,87,
- 5,27,90, 5,28, 3, 5,27,93, 6,46,41, 6,46,30, 6,46,35, 5,27,86, 5,28, 7,
- 6,46,34, 6,46,43, 6,46,42, 5,27,92, 6,46,31, 5,27,89, 5,28, 1, 6,46,45,
- 6,46,36, 6,46,37, 0, 0, 0, 6,55,78, 5,28, 5, 5,27,94, 6,55,88, 5,28, 4,
- 6,46,44, 6,46,39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,28, 2, 5,27,82,
- 6,46,33,15,31, 5,15,31, 6,15,31, 7,15,31, 9, 0, 0, 0, 0, 0, 0, 4,26,87,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,55,80, 6,55,79, 4,32,58, 4,32,60, 6,55,84, 4,32,52, 5,34,56, 5,34,59,
- 5,34,54, 4,32,49, 4,32,51, 5,34,60, 5,34,62, 5,34,58, 5,34,55, 4,32,62,
- 4,32,48, 6,55,82, 0, 0, 0, 6,55,83, 6,55,76, 6,55,77, 6,65,72, 6,55,81,
- 6,55,85, 5,34,57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,37,18,
- 15,37,19,15,37,20,15,37,21,15,37,22,15,37,23,15,37,24,15,37,25, 6,55,86,
- 7,41,75, 0, 0, 0, 0, 0, 0, 6,55,87,
- /* plane 2, page 115 */
- 1, 255, /* first, last */
- 6,55,89, 0, 0, 0, 5,41,49, 5,41,54, 5,41,59, 5,41,55, 5,41,60,
- 4,39, 1, 5,41,53, 4,38,93, 6,66, 3, 5,41,63, 4,38,87, 5,41,57, 4,38,84,
- 6,65,86, 6,65,74, 6,65,85, 4,39, 2, 5,41,62, 6,65,75, 6,65,81, 5,41,52,
- 6,65,92, 5,41,61, 5,41,56, 6,65,91, 6,66, 1, 5,41,64, 0, 0, 0, 6,65,84,
- 6,65,93, 6,65,77, 5,41,65, 5,41,66, 6,65,82, 0, 0, 0, 6,66, 2, 5,41,58,
- 6,65,76, 6,65,89, 6,65,90, 6,65,80, 5,41,50, 6,65,78, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,41,51, 6,65,83,15,44,13,15,44,14,
- 15,44,16,15,44,17,15,44,18, 6,65,88, 0, 0, 0, 4,32,56, 0, 0, 0, 6,65,94,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,65,79, 4,45,13, 7, 8,35, 5,48,51, 4,45,14, 4,45,11, 7, 8,24,
- 4,45,20, 5,48,63, 7, 8,23, 7, 8,12, 5,48,49, 7, 8,11, 7, 8,21, 7, 8,31,
- 5,48,55, 4,45,18, 4,45,10, 7, 8,32, 7, 8,20, 5,48,54, 7, 8,27, 7, 8,17,
- 7, 8,30, 5,55,78, 4,45,12, 4,45, 9, 5,48,60, 5,48,58, 5,48,48, 5,48,57,
- 5,48,56, 7, 8,10, 5,48,59, 4,38,90, 5,48,50, 5,48,62, 5,48,61, 4,45,21,
- 7, 8,38, 7, 8,16, 7, 8,13, 7, 8,36, 7, 8,25, 7, 8,37, 7, 8,28, 7, 8,15,
- 6,65,87, 7, 8,22, 7, 8,29, 5,48,52, 4,45, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,48,47,15,49,90,15,49,91,15,49,94,15,50, 1,15,50, 2,15,50, 3,15,50, 5,
- 15,50, 8,15,50, 9,15,50,10,15,50,11, 7, 8,19, 0, 0, 0, 0, 0, 0, 7, 8,33,
- 7, 8,26, 0, 0, 0,15,50, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8,18,15,44,15,
- 0, 0, 0, 5,55,80, 4,51,37, 5,55,86, 5,55,85, 4,51,26, 5,55,84, 0, 0, 0,
- 5,55,81, 7,18,78, 7,18,93, 5,55,87, 4,51,40, 5,55,91, 4,51,41, 4,51,32,
- 4,51,34, 5,55,92, 7,18,77, 4,51,27, 7,18,71, 4,51,31, 7,18,92, 5,55,89,
- 5,55,79, 5,56, 1, 5,55,82, 7,27,26, 5,55,88, 7,18,73, 4,51,38, 5,55,90,
- 7,18,80, 7,19, 2, 5,55,83, 7,18,68, 5,55,94, 7,18,84, 4,51,39, 5,48,64,
- 7,18,75, 7,18,69, 5,55,93, 7,18,86, 4,51,35, 7,18,91, 7,19, 4, 7,18,66,
- 7,18,87, 7,18,67, 7,18,88, 7,18,79, 7,18,94, 7,18,82, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,18,72, 7,19, 3,15,55,64,15,55,65,
- 15,55,67,15,55,68,15,55,69,15,55,70, 7,18,89, 0, 0, 0, 7,18,74, 0, 0, 0,
- 7,18,90, 7,18,81, 7,18,70, 0, 0, 0, 7,18,76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4,56,57, 5,62, 9, 5,62,12, 4,56,53, 7,27,50, 7,27,36, 4,56,64, 4,56,60,
- /* plane 2, page 116 */
- 0, 255, /* first, last */
- 7,27,40, 7,27,34, 7,27,53, 0, 0, 0, 4,56,62, 7,27,38, 7, 8,39, 4,56,48,
- 5,62,17, 7,27,48, 7,27,31, 4,56,61, 7,27,47, 5,62,11, 5,62,15, 7,27,51,
- 4,56,58, 7,27,39, 7,27,33, 5,62,19, 4,56,51, 7,27,32, 4,56,49, 7,27,30,
- 7,27,52, 5,62,10, 7,27,28, 7,27,27, 7,27,41, 4,56,59, 5,62,13, 5,62,14,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,27,37,15,60,52,15,60,53,15,60,54,15,60,55,
- 15,60,56,15,60,57,15,60,58,15,60,60, 0, 0, 0, 7,27,35, 7,27,43, 7,27,46,
- 0, 0, 0, 7,27,49, 0, 0, 0, 7,27,29, 5,62, 8, 7,27,42, 7,27,44, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,62,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,61,29, 4,61,23, 7,34,53, 7,34,65,
- 7,34,56, 7,34,72, 5,68,35, 5,68,36, 5,62,20, 4,61,24, 5,68,48, 7,34,57,
- 4,61,22, 5,68,37, 4,61,21, 4,61,26, 5,68,31, 5,68,34, 5,68,45, 4,61,20,
- 5,68,42, 7,34,54, 5,68,30, 0, 0, 0, 5,68,33, 5,68,43, 7,34,55, 7,34,60,
- 7,34,59, 5,68,32, 7,34,79, 7,34,75, 5,68,47, 7,34,78, 5,68,41, 5,68,44,
- 7,34,73, 5,68,38, 7,34,76, 5,68,39, 7,34,69, 7,34,66, 7,34,61, 7,34,67,
- 7,34,52, 7,34,58, 7,34,51, 7,34,62, 7,34,74, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,34,70,15,64,66,15,64,68,15,64,69,15,64,70,15,64,72,15,64,73,15,64,74,
- 0, 0, 0, 7,34,68, 4,61,28, 7,34,71,15,64,71, 0, 0, 0,15,64,65, 0, 0, 0,
- 5,68,46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,65, 8, 7,41,74,
- 7,41,57, 7,41,64, 7,41,76, 7,41,58, 7,41,73, 7,41,77, 4,65, 3, 5,73,34,
- 5,73,32, 0, 0, 0, 7,41,66, 7,41,71, 7,41,69, 5,73,36, 7,41,61, 7,41,72,
- 0, 0, 0, 7,41,68, 7,41,70, 7,47,75, 7,41,65, 7,41,78, 7,41,79, 7,41,67,
- 5,73,37, 7,41,60, 7,41,63, 7,41,56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,67,75,15,67,76,15,67,77,15,67,79,15,67,80,15,67,81,
- 15,67,82,15,67,83,15,67,84,15,67,85, 7,41,59, 4,65, 2, 4,65, 7, 7,41,62,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,34,80, 7,47,85, 7,47,90, 5,77,45, 7,47,76, 0, 0, 0, 4,68,34, 5,77,44,
- 5,77,49, 7,47,88, 7,47,80, 5,77,48, 7,47,84, 5,77,50, 5,77,51, 7,47,83,
- 5,77,46, 7,47,82, 7,47,87, 7,47,81, 7,47,77, 5,77,47, 7,47,79, 7,52,87,
- 0, 0, 0, 7,47,78, 7,47,91,15,70,13,15,70,14,15,70,15,15,70,16,15,70,17,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,47,86, 4,71,15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4,71,20, 7,52,75, 7,52,80, 5,81,15, 7,52,85, 7,52,78, 7,52,81,
- 5,81,14, 7,52,83, 5,81,13, 5,81,16, 7,52,76, 4,71,19, 7,52,79, 4,71,21,
- /* plane 2, page 117 */
- 0, 255, /* first, last */
- 4,71,17, 7,52,82, 5,81,18, 7,52,88, 7,47,89, 0, 0, 0, 7,52,84, 4,71,18,
- 7,52,89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,81,17, 5,81,19,
- 7,52,86,15,72,37,15,72,38,15,72,39,15,72,40,15,72,41, 0, 0, 0, 0, 0, 0,
- 7,52,77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,84,14, 4,73,28, 5,84,12,
- 5,84,11, 7,57, 3, 7,56,92, 5,84,13, 5,84,17, 5,84,16, 7,56,90, 5,84,19,
- 5,84,21, 0, 0, 0, 5,84,18, 7,56,89, 4,73,29, 0, 0, 0, 7,57, 6, 7,57, 8,
- 7,57, 7, 7,56,94, 7,57, 1, 5,84,20, 5,84,22, 7,57, 4, 7,57, 9, 5,84,15,
- 0, 0, 0, 0, 0, 0, 7,56,93, 0, 0, 0, 0, 0, 0, 7,56,91, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,73,77,15,73,78, 5,86,38, 4,74,86, 4,74,87, 7,60,61, 5,86,39,
- 4,74,89, 7,60,63, 7,60,60, 5,86,40, 7,60,66, 5,86,37, 7,63,42, 7,60,64,
- 4,74,90, 7,60,65, 5,86,42, 0, 0, 0, 7,57, 2, 5,86,41,15,74,80,15,74,81,
- 15,74,82, 0, 0, 0, 0, 0, 0, 5,88,12, 7,63,43, 4,75,94, 5,88,11, 5,88, 9,
- 7,63,44, 5,88, 6, 4,76, 2, 7,63,45, 5,88,10, 5,88, 8, 4,76, 4, 5,88,13,
- 5,88, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,89,36, 4,76,94,
- 5,89,40, 5,89,42, 4,76, 1, 7,65,32, 5,89,38, 7,65,36, 7,65,35, 7,65,37,
- 5,89,39, 5,89,41, 7,65,33, 0, 0, 0, 5,89,37, 7,66,61, 7,66,59, 7,66,62,
- 7,66,60, 0, 0, 0, 7,66,63, 0, 0, 0, 7,67,78, 7,67,76, 5,90,83, 7,67,75,
- 7,67,79, 0, 0, 0, 7,66,58, 7,67,73, 7,67,81, 7,67,74, 7,67,80, 7,67,77,
- 0, 0, 0, 7,68,60, 4,78,26, 7,68,61, 5,91,39, 5,91,40, 7,68,58, 7,68,59,
- 5,91,71, 7,69,33, 7,69,34, 5,91,72, 4,78,48, 7,69,66, 7,69,65,15,77,17,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,70,11, 0, 0, 0, 0, 0, 0, 5, 7,69,
- 6,14, 7, 6,14, 6, 4,11,36, 6,27,82, 5,16,21, 6,27,85, 0, 0, 0, 6,27,84,
- 0, 0, 0, 0, 0, 0,15,24,33, 6,46,46, 6,46,48, 5,34,63, 6,55,92, 6,55,90,
- 6,55,93, 6,55,91, 5,41,69, 5,41,67, 5,41,68, 6,66, 6, 6,66, 4, 0, 0, 0,
- 7, 8,40, 5,48,65, 7, 8,41, 7, 8,42, 6,66, 5, 0, 0, 0, 5,56, 3, 5,56, 4,
- 5,56, 2, 7,19, 5, 7,19, 6, 5,62,23, 5,62,22,15,60,61, 4,61,30, 4,61,31,
- 7,34,81, 7,34,83, 4,61,32, 0, 0, 0, 7,34,82, 5,73,38, 5,77,52, 7,47,92,
- 7,52,90, 7,57,11, 7,57,10, 7,63,46, 7,69,67, 4, 8, 3, 6,14, 8, 4, 8, 4,
- 0, 0, 0, 6,20,47, 6,20,48, 5,11,33, 0, 0, 0,15,13,37, 5,16,22, 6,27,87,
- 6,27,86, 5,16,23, 6,36,47, 5,28, 9, 6,46,51, 6,46,50,15,31,10,15,31,11,
- 0, 0, 0, 6,46,49, 6,56, 3, 6,56, 1, 4,32,63, 6,56, 2, 6,55,94,15,37,26,
- 4,39, 4, 5,48,66, 6,66, 7, 6,66, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,56,65,
- /* plane 2, page 118 */
- 0, 255, /* first, last */
- 7,27,54,15,60,62, 4,61,33, 7,34,84, 7,41,80, 7,52,91, 7,60,68, 0, 0, 0,
- 5, 7,70, 6,14, 9, 6,14,10, 6,14,11, 0, 0, 0, 5,11,35, 6,20,49, 4,11,37,
- 4,11,39, 5,11,37, 6,20,51, 5,11,36, 0, 0, 0, 0, 0, 0,15, 8,75, 0, 0, 0,
- 0, 0, 0, 6,20,50, 5,11,34, 0, 0, 0, 5,11,38, 6,27,93, 5,16,28, 4,15,81,
- 6,28, 1, 6,28, 5, 5,16,31, 6,28, 6, 6,28, 7, 4,15,80, 6,27,89, 5,16,32,
- 6,27,91, 5,16,24, 6,28, 2, 6,27,92, 6,28, 3, 6,27,94, 5,16,27, 6,27,90,
- 6,27,88, 0, 0, 0, 0, 0, 0, 5,16,26,15,18,48, 6,28, 4, 6,28, 8, 6,28, 9,
- 0, 0, 0, 0, 0, 0,15,13,40,15,13,41,15,18,50, 4,21, 8, 5,28,18, 0, 0, 0,
- 4,21,11, 4,26,92, 5,21,38, 4,21, 9, 6,36,56, 5,21,39, 5,21,42, 5,21,36,
- 5,21,37, 5,21,35, 6,36,57, 6,36,58, 5,21,34, 6,36,51, 6,36,53, 6,36,52,
- 6,36,49, 6,36,48, 6,36,55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,36,50,15,13,38,15,24,37, 5,21,40, 6,36,54, 5,21,41, 5,28,17, 6,46,59,
- 6,46,57, 5,28,14, 6,46,55, 5,28,15, 5,28,19, 4,26,94, 0, 0, 0, 6,46,56,
- 6,46,52, 4,26,93, 6,46,54, 5,28,16, 5,28,13, 5,28,11, 5,34,68, 5,28,10,
- 0, 0, 0, 0, 0, 0,15,24,36,15,31,14, 0, 0, 0, 6,46,53, 0, 0, 0, 6,46,58,
- 0, 0, 0, 6,46,60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,28,12,15,24,35,
- 5,34,74, 5,34,66, 5,34,70, 4,32,69, 5,34,75, 5,34,67, 5,34,71, 4,32,67,
- 5,34,69, 5,34,73, 6,56,15, 4,32,68, 6,56,10, 6,56, 8, 6,56,16, 5,34,72,
- 5,34,64, 6,56, 4, 6,56, 7, 0, 0, 0, 0, 0, 0, 6,56,13,15,31,12,15,31,13,
- 15,31,15,15,31,16,15,37,27, 6,56, 6, 6,56,17, 6,56, 5, 6,56, 9, 0, 0, 0,
- 0, 0, 0, 5,34,65, 0, 0, 0,15,37,30, 4,39,16, 4,39,12, 6,66,13, 6,66,19,
- 4,39, 9, 5,41,70, 5,41,73, 4,39, 8, 5,41,72, 5,28,20, 6,66,20, 5,41,74,
- 6,66,11, 6,66, 9, 6,66,10, 6,66,18, 6,66,17, 5,41,71, 6,66,15, 5,41,75,
- 6,66,16, 6,66,12, 4,39,19, 0, 0, 0, 6,66,21, 6,66,14,15,44,20,15,44,22,
- 15,44,23, 0, 0, 0, 0, 0, 0, 4,39,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,37,28,15,37,31, 5,48,70,
- 7, 8,52, 4,45,33, 5,48,73, 7, 8,55, 4,39,18, 7, 8,54, 5,48,69, 4,45,24,
- 7, 8,53, 7,19, 8, 5,48,71, 7, 8,58, 7, 8,43, 4,45,37, 4,45,27, 4,45,29,
- 7, 8,51, 4,45,36, 4,45,35, 5,48,67, 7, 8,56, 7, 8,50, 7, 8,44, 5,48,68,
- 7, 8,47, 5,48,72, 7, 8,49, 7, 8,48, 7, 8,45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,44,21,15,50,13, 7, 8,46, 7, 8,57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,56,12, 5,56,11, 7,19,11, 5,56, 7, 5,56,10, 7,19, 7, 4,51,49, 7,19, 9,
- /* plane 2, page 119 */
- 0, 255, /* first, last */
- 4,51,52, 7,27,66, 5,56, 9, 5,56, 8, 7,19,10, 4,51,46, 7,19,12, 7,19,15,
- 4,51,45, 0, 0, 0, 5,56, 5, 7,19,16, 0, 0, 0, 5,56, 6, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,19,14,15,50,12, 0, 0, 0, 0, 0, 0, 7,19,13, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,62,30, 5,62,31, 7,27,55,
- 5,62,27, 7,27,61, 7,27,68, 4,56,70, 5,62,24, 5,62,25, 5,62,29, 5,62,28,
- 0, 0, 0, 7,27,63, 0, 0, 0, 7,27,59, 7,27,67, 7,34,91, 7,27,60, 7, 8,59,
- 7,27,62, 7,27,64, 5,62,32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,27,56,
- 7,27,58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,62,26,15,55,71,15,55,72,
- 15,55,73,15,55,74, 7,34,85, 4,61,37, 7,34,92, 7,34,94, 5,68,59, 5,68,55,
- 7,34,93, 4,61,43, 5,68,52, 5,68,53, 5,68,63, 4,61,45, 0, 0, 0, 4,61,34,
- 7,34,90, 5,68,51, 4,61,39, 4,61,44, 5,68,61, 7,34,89, 7,34,87, 5,68,49,
- 4,61,35, 5,62,34, 5,68,50, 7,34,88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,35, 3, 7,34,86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,68,57, 5,68,58, 5,62,33, 5,68,60, 5,68,62, 5,68,56,
- 15,60,64, 7,41,86, 5,73,41, 5,73,42, 4,65, 9, 7,41,91, 7,41,92, 5,73,39,
- 5,73,40, 7,41,82, 7,41,83, 7,41,85, 7,41,89, 7,41,90, 7,41,84, 7,41,88,
- 4,65,11, 7,41,87, 7,35, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,64,75,15,64,76,
- 15,67,86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,47,93, 5,77,56, 7,48, 6, 5,77,59,
- 5,81,20, 0, 0, 0, 5,77,53, 4,68,37, 7,48, 3, 5,77,54, 7,48, 2, 7,52,92,
- 0, 0, 0, 7,47,94, 0, 0, 0, 5,77,57, 7,41,81, 5,77,58, 5,77,60, 7,48, 4,
- 0, 0, 0,15,70,20, 7,48, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,77,61, 7,53, 2,
- 7,53, 4, 5,81,22, 4,71,22, 7,53, 6, 7,53, 5, 5,81,21, 7,52,94, 7,53, 1,
- 4,71,23, 7,53, 3, 7,57,17, 7,52,93, 0, 0, 0,15,70,19, 4,73,33, 7,57,14,
- 4,73,32, 4,73,31, 5,84,23, 7,57,12, 7,57,13, 7,57,16, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,57,15, 5,88,14, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,73,79,
- 7,63,49, 7,63,48, 7,63,47, 0, 0, 0, 5,89,43, 7,65,40, 7,65,39, 7,65,38,
- 7,66,65, 5,90,23, 7,66,66, 0, 0, 0, 7,66,64, 7,68,63, 7,67,83, 7,67,82,
- 7,68,62, 5,91,94, 7,69,68, 7,70,12, 0, 0, 0, 0, 0, 0, 5,92,43, 7,70,45,
- 0, 0, 0, 5, 4,86, 0, 0, 0, 6,14,12, 0, 0, 0, 0, 0, 0, 4,11,40, 5,16,33,
- 4,15,84, 6,28,10, 6,36,59,15,24,38, 0, 0, 0,15,31,17,15,31,18, 6,56,18,
- 0, 0, 0, 4,39,20, 6,66,22, 6,66,23, 6,66,24, 0, 0, 0, 0, 0, 0,15,44,24,
- 15,44,25, 7, 8,60,15,44,26,15,50,16, 7,19,17, 7,19,18,15,50,15, 7,27,69,
- /* plane 2, page 120 */
- 0, 254, /* first, last */
- 15,64,77,15,64,78, 5,73,43, 7,48, 7, 7,53, 7, 0, 0, 0, 5, 7,71, 6,14,13,
- 0, 0, 0, 4,15,87, 0, 0, 0, 5,16,34,15,18,51, 0, 0, 0, 5,21,45, 5,21,46,
- 6,36,60, 6,36,61, 5,21,48, 5,21,43, 0, 0, 0,15,24,39,15,24,41,15,24,43,
- 4,21,18, 4,21,22, 5,21,44, 5,21,47, 6,46,63, 4,27, 5, 6,46,66, 6,46,65,
- 5,28,22, 6,46,62, 4,27, 4, 6,46,61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,56,22, 5,34,77, 5,34,79, 5,34,78, 0, 0, 0, 6,56,19, 6,56,23, 0, 0, 0,
- 5,34,80,15,37,32,15,37,33,15,37,34, 0, 0, 0, 6,56,21, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,66,25, 5,41,81, 5,41,78, 5,41,82, 4,39,23,
- 6,66,26, 0, 0, 0, 0, 0, 0,15,44,27,15,44,28, 5,41,79, 6,66,27, 0, 0, 0,
- 5,41,80, 0, 0, 0, 0, 0, 0, 4,45,41, 7, 8,63, 5,48,76, 4,45,43, 5,48,75,
- 7, 8,67, 5,48,77, 6,56,20, 7, 8,66, 0, 0, 0, 5,48,74, 5,48,78,15,50,17,
- 7, 8,64, 0, 0, 0, 0, 0, 0, 7, 8,62, 0, 0, 0, 7, 8,61, 0, 0, 0, 0, 0, 0,
- 7, 8,65, 5,56,16, 5,56,15, 5,56,14, 4,51,55, 7,19,20, 5,56,20, 7,27,71,
- 4,51,56, 4,51,62, 4,51,61, 5,56,17, 5,56,21, 7,19,19, 5,56,13, 5,56,19,
- 0, 0, 0,15,55,75,15,55,76,15,55,77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,27,70,
- 5,68,64, 5,62,37, 5,62,36, 7,27,74, 0, 0, 0, 7,27,73, 7,27,75, 7,27,72,
- 15,60,65,15,60,66, 5,68,66, 4,61,49, 4,61,47, 7,35, 4, 5,68,65, 0, 0, 0,
- 15,64,79,15,64,80,15,64,81, 0, 0, 0, 0, 0, 0, 7,35, 5, 7,41,93, 7,41,94,
- 0, 0, 0, 0, 0, 0, 5,77,63, 7,48, 9, 7,48, 8,15,70,21, 5,77,62, 0, 0, 0,
- 15,72,43,15,72,44, 7,53, 8, 0, 0, 0, 4,73,35, 5,84,25, 4,73,34, 0, 0, 0,
- 15,73,80,15,73,81, 5,88,15, 7,63,51,15,75,68, 7,63,50, 5,89,45, 5,89,44,
- 7,65,41, 0, 0, 0, 0, 0, 0, 4,77, 1, 0, 0, 0, 5,90,84, 4,78,27, 5,92,36,
- 0, 0, 0, 7,70,52, 6,14,14, 6,14,15, 6,20,52, 5,11,40, 0, 0, 0, 4,15,88,
- 6,28,12, 4,15,89, 6,28,11, 6,36,71, 4,21,27, 5,21,51, 5,21,50, 6,36,63,
- 6,36,67, 4,21,23, 6,36,68, 5,21,49, 6,36,64,15,24,45,15,24,46,15,24,47,
- 4,21,28, 6,36,70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,36,62, 6,36,66, 6,36,69,
- 6,36,65, 5,28,23, 4,27, 6, 6,46,68, 6,46,71, 5,28,24, 6,46,67, 6,46,70,
- 6,46,73, 6,46,69, 4,27, 7, 4,27, 8, 6,46,72, 0, 0, 0,15,31,19, 0, 0, 0,
- 0, 0, 0, 5,34,83, 5,34,81, 5,34,82, 0, 0, 0, 6,56,24, 0, 0, 0, 0, 0, 0,
- 6,66,30, 5,41,85, 4,39,25, 6,66,32, 5,41,83, 5,41,84, 6,66,29, 6,66,33,
- 6,66,28, 6,66,31, 0, 0, 0, 0, 0, 0, 7, 8,70, 5,48,85, 7, 8,71, 5,48,84,
- 5,48,80, 5,48,79, 4,45,48, 4,45,50, 4,45,45, 7, 8,73, 4,45,52,
- /* plane 2, page 121 */
- 3, 255, /* first, last */
- 5,48,82, 7, 8,72, 7, 8,74, 5,48,81, 7, 8,68,
- 7, 8,69, 5,48,83, 0, 0, 0, 7,19,24, 7,19,23, 4,51,63, 5,56,22, 4,51,67,
- 5,56,25, 5,56,27, 4,51,64, 7,19,22, 7,19,21, 5,56,23, 5,56,24, 5,56,26,
- 7,19,25, 0, 0, 0, 0, 0, 0, 5,62,38, 7,27,77, 7,27,83, 7,27,76, 5,62,42,
- 5,62,41, 7,27,78, 7,19,26, 5,62,40, 0, 0, 0, 0, 0, 0, 7,27,79, 7,27,80,
- 0, 0, 0, 7,27,81, 4,56,76, 7,27,84, 7,27,82, 0, 0, 0, 5,62,39, 7,35, 7,
- 0, 0, 0, 7,35, 8, 4,61,50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,35, 6, 7,35, 9,
- 0, 0, 0, 0, 0, 0, 4,65,21, 5,73,44, 4,65,18, 4,65,19, 7,42, 1, 7,42, 2,
- 7,42, 3, 7,42, 4, 4,65,22, 0, 0, 0, 7,48,10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,81,23, 0, 0, 0, 7,53, 9, 0, 0, 0, 5,84,26, 4,73,36, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,60,69, 0, 0, 0, 5,88,16, 0, 0, 0, 7,66,67, 4,77,64, 7,68,64,
- 7,68,65, 5,91,73, 7,69,35, 5, 3, 7, 5, 3, 8, 6,14,16, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,28,19, 4,16, 1, 4,15,91, 4,15,90, 4,16, 2, 5,16,35, 0, 0, 0,
- 6,28,16, 6,28,17, 6,28,15, 6,28,18, 0, 0, 0, 6,28,14, 4,21,32, 6,36,74,
- 6,36,83, 4,21,30, 0, 0, 0, 6,36,79, 5,21,60, 5,21,57, 0, 0, 0, 6,36,81,
- 4,21,34, 5,21,52, 4,21,38, 6,36,89, 5,21,53, 6,36,87, 6,36,75, 6,36,88,
- 5,21,56, 6,36,84, 6,36,85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,36,78, 6,36,90,
- 15,24,48,15,24,49,15,24,51,15,24,52,15,24,53,15,24,54, 0, 0, 0, 6,36,82,
- 0, 0, 0, 0, 0, 0, 6,36,73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,36,72,
- 0, 0, 0, 6,36,86, 6,36,76, 5,21,58, 6,46,84, 4,27,18, 4,27,14, 5,28,27,
- 6,46,79, 6,46,78, 6,46,81, 6,46,74, 4,27,13, 6,46,88, 4,27,24, 4,27,25,
- 5,28,28, 6,46,77, 6,46,86, 6,46,80, 6,46,87, 4,27,23, 5,28,25, 5,28,26,
- 15,31,20,15,31,21,15,31,22,15,31,23,15,31,24,15,31,25,15,31,26,15,31,28,
- 0, 0, 0, 0, 0, 0, 6,46,82, 6,46,85, 0, 0, 0, 0, 0, 0, 6,46,76, 0, 0, 0,
- 0, 0, 0, 6,46,89, 6,46,83, 0, 0, 0, 5,34,85, 4,32,72, 4,32,74, 0, 0, 0,
- 6,56,38, 5,34,86, 5,28,29, 5,34,89, 4,32,81, 4,32,80, 6,56,32, 6,56,43,
- 6,56,29, 6,56,41, 4,32,73, 4,32,75, 5,34,92, 5,34,84, 4,32,83, 6,56,35,
- 6,56,28, 6,56,39, 6,56,34, 6,56,31, 4,32,82, 5,34,90, 6,56,40, 5,34,88,
- 5,34,87, 6,56,36, 0, 0, 0, 0, 0, 0,15,37,35,15,37,37,15,37,38, 6,56,42,
- 5,34,91, 0, 0, 0, 6,56,25, 6,56,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4,32,79, 6,56,26, 6,56,37, 6,56,30, 6,66,46, 4,39,31, 5,41,90, 4,39,27,
- 5,41,88, 5,41,91, 4,39,30, 4,39,40, 6,66,34, 6,66,44, 4,39,33, 6,66,51,
- /* plane 2, page 122 */
- 0, 255, /* first, last */
- 4,39,36, 6,66,47, 4,39,39, 6,66,38, 5,41,89, 6,66,49, 6,66,37, 4,39,41,
- 6,66,48, 6,66,36, 5,41,86, 5,41,87, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,44,29,
- 15,44,30,15,44,31,15,44,32,15,44,34,15,44,35,15,44,36,15,44,37, 0, 0, 0,
- 0, 0, 0, 6,66,40, 4,39,43, 6,66,42, 5,34,93, 6,66,43, 6,66,45, 0, 0, 0,
- 6,66,35, 0, 0, 0, 0, 0, 0, 6,66,50, 6,66,41, 0, 0, 0, 7, 9, 1, 5,49,10,
- 7, 8,75, 5,48,90, 5,49, 2, 7, 8,81, 7, 8,84, 7, 9, 2, 7, 8,92, 7, 8,80,
- 5,49, 7, 4,45,55, 5,49, 9, 5,49, 3, 5,48,91, 5,48,94, 7, 8,88, 5,49, 4,
- 4,45,61, 5,49, 6, 4,45,66, 7, 9, 4, 7, 8,87, 7, 8,79, 5,48,88, 5,48,92,
- 7, 8,93, 0, 0, 0, 7, 8,77, 5,49, 5, 5,48,93, 5,48,87, 5,48,89, 5,48,86,
- 0, 0, 0,15,50,18,15,50,19,15,50,20,15,50,21,15,50,23,15,50,25,15,50,26,
- 7, 8,86, 7, 8,85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8,76, 0, 0, 0,
- 7, 8,82,15,50,24, 5,49, 1, 7, 8,91, 7, 8,78, 5,49, 8, 7, 9, 3, 7, 8,94,
- 7, 8,90, 7, 8,83, 7,19,38, 5,56,32, 4,51,81, 7,19,50, 4,51,72, 4,51,69,
- 4,51,76, 7,19,41, 7,19,49, 7,19,35, 5,56,29, 7,19,34, 5,56,28, 7,19,28,
- 0, 0, 0, 4,51,80, 4,51,71, 7,19,37, 4,51,79, 7,19,29, 4,51,78, 7,19,39,
- 7,19,46, 4,51,70, 7,19,48, 7,19,30, 4,51,73, 7,19,27, 7,19,51, 7,19,32,
- 7,19,31, 7,19,40, 7,19,42, 5,56,31, 7,19,44, 4,51,77, 7,19,36, 5,56,30,
- 15,55,78,15,55,79,15,55,80,15,55,81,15,55,82,15,55,83,15,55,84,15,55,85,
- 15,55,86,15,55,87,15,55,88, 0, 0, 0, 7,19,52, 0, 0, 0, 7,19,33, 7,19,43,
- 4,56,78, 5,62,50, 5,62,49, 7,27,93, 4,56,79, 5,62,52, 4,56,81, 7,27,89,
- 4,56,77, 5,62,45, 5,62,51, 5,62,46, 7,27,86, 7,28, 5, 4,56,82, 7,35,10,
- 5,62,47, 7,28, 1, 7,27,87, 5,62,54, 7,28, 7, 7,27,92, 7,27,88, 5,62,48,
- 4,56,84, 7,27,91, 7,27,94, 7,28, 2, 7,28, 3, 4,56,83, 5,62,43, 7,28, 6,
- 0, 0, 0, 5,62,44, 7,28, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,27,85,
- 15,60,67,15,60,68,15,60,69,15,60,70,15,60,71,15,60,72,15,60,73,15,60,74,
- 15,60,75, 0, 0, 0, 0, 0, 0, 7,28, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,28, 9,
- 7,27,90, 0, 0, 0, 4,61,62, 4,61,54, 7,35,23, 4,61,56, 7,35,21, 5,68,72,
- 7,35,26, 7,35,11, 4,61,64, 5,68,70, 5,56,33, 4,61,57, 5,68,71, 7,35,24,
- 7,35,18, 5,68,68, 4,61,51, 7,35,27, 4,61,53, 5,68,69, 4,61,61, 7,35,25,
- 7,35,15, 7,35,19, 7,42,10, 7,35,16, 4,61,60, 7,35,20, 7,35,17, 7,35,28,
- 7,35,12, 0, 0, 0, 7,35,13, 0, 0, 0, 0, 0, 0,15,64,82,15,64,85, 0, 0, 0,
- 7,35,22, 0, 0, 0, 4,61,63, 0, 0, 0, 0, 0, 0, 7,35,14, 5,73,45, 5,73,47,
- /* plane 2, page 123 */
- 0, 255, /* first, last */
- 7,42,15, 0, 0, 0, 4,65,30, 7,42,12, 7,42,14, 4,65,35, 4,65,25, 5,73,48,
- 4,65,33, 7,42,20, 4,65,34, 5,73,46, 4,65,31, 7,42, 6, 7,42, 9, 7,35,29,
- 7,42, 8, 7,42,21, 7,48,19, 7,42,19, 0, 0, 0, 4,65,28, 5,77,64, 7,42, 7,
- 0, 0, 0,15,67,88,15,67,89,15,67,90, 4,65,36, 7,42,11, 0, 0, 0, 7,48,21,
- 7,42,16, 7,42,17, 7,42,13, 7,42,18, 4,65,24,15,64,84, 0, 0, 0, 4,68,42,
- 4,68,43, 5,77,66, 5,77,65, 7,48,13, 5,77,67, 7,48,15, 4,68,41, 7,48,11,
- 5,73,51, 7,48,18, 7,48,14, 7,48,20, 7,48,22, 7,48,12, 7,48,16, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,70,22,15,70,23,15,70,24,15,70,25, 7,48,24,
- 7,48,23, 7,48,25, 7,53,10, 4,71,34, 7,53,20, 7,53,13, 7,53,19, 0, 0, 0,
- 4,71,24, 7,53,14, 5,81,29, 7,53,12, 7,53,15, 4,71,28, 5,81,26, 5,81,25,
- 4,71,35, 7,57,27, 7,57,21, 4,71,26, 5,81,28, 5,81,27, 7,53,17, 0, 0, 0,
- 7,53,11, 7,53,16, 5,81,24, 7,53,21, 5,84,27, 5,84,29, 5,84,32, 5,86,43,
- 4,73,39, 7,57,25, 4,73,42, 5,84,31, 4,73,41, 5,84,30, 0, 0, 0, 7,57,23,
- 7,57,32, 7,53,22, 5,84,28, 7,57,22, 7,57,26, 7,57,31, 4,73,38, 7,57,30,
- 15,73,82,15,73,83,15,73,84, 0, 0, 0, 7,57,28, 0, 0, 0, 0, 0, 0, 7,57,29,
- 4,74,93, 4,74,94, 7,60,70, 5,86,46, 5,86,45, 5,88,17, 7,60,72, 7,60,73,
- 7,60,74,15,74,84,15,74,85, 7,60,71, 7,57,34, 7,63,55, 7,63,56, 7,63,53,
- 4,76, 7, 7,63,54, 7,63,58,15,75,69,15,75,70, 0, 0, 0, 7,63,52, 7,63,57,
- 7,63,59, 4,77, 3, 7,65,43, 5,89,46, 7,65,44,15,76,26,15,76,27, 0, 0, 0,
- 7,65,42, 5,90,85, 7,66,69, 7,66,68, 0, 0, 0, 5,90,25, 4,77,94, 7,67,84,
- 0, 0, 0, 0, 0, 0, 7,68,66, 4,78,28, 0, 0, 0, 7,68,36, 0, 0, 0, 0, 0, 0,
- 7,69,36, 7,70,48, 0, 0, 0, 5, 4,87, 4,16, 4, 5,16,36, 5,16,37, 4,21,40,
- 4,21,41, 4,21,39, 6,36,91, 4,27,26, 0, 0, 0, 5,34,94, 5,35, 1, 6,56,44,
- 4,39,45, 0, 0, 0, 5,49,12, 4,45,67, 5,49,13, 5,49,11, 0, 0, 0, 0, 0, 0,
- 5,56,34, 7,19,54, 7,19,53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,28,10, 0, 0, 0,
- 0, 0, 0, 5,62,55, 7,35,30, 7,42,22, 7,42,25, 5,73,52, 7,42,23, 5,73,53,
- 7,42,24, 0, 0, 0, 0, 0, 0, 7,48,26, 7,42,26, 5,81,30, 0, 0, 0, 0, 0, 0,
- 5,90,86, 7,69,87, 6,20,53, 6,28,21, 6,28,20, 0, 0, 0, 0, 0, 0,15,24,55,
- 4,27,27, 5,28,30, 6,46,91,15,31,29, 0, 0, 0, 5,35, 2, 4,32,85, 6,59,63,
- 0, 0, 0, 4,39,48, 6,66,52, 4,39,49, 0, 0, 0, 7, 9, 8, 7, 9, 7, 7, 9, 5,
- 5,49,15, 5,49,14, 0, 0, 0, 7, 9, 6,15,50,27, 0, 0, 0, 0, 0, 0, 5,56,35,
- 4,51,84, 7,19,55, 5,56,36, 7,12,54, 5,62,58, 7,28,13, 5,62,56, 7,28,12,
- /* plane 2, page 124 */
- 0, 254, /* first, last */
- 5,62,57, 7,28,11, 0, 0, 0, 5,68,73, 4,61,67, 7,35,32, 4,61,66, 5,62,59,
- 0, 0, 0, 7,42,28, 5,73,55, 7,42,29, 7,35,33, 7,35,34, 0, 0, 0, 0, 0, 0,
- 5,73,54, 5,77,70, 5,77,69, 5,77,71,15,70,26, 5,77,68,15,67,91, 0, 0, 0,
- 5,81,31, 5,84,33, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,74,86,15,74,87, 0, 0, 0,
- 5,88,18, 5,89,47, 0, 0, 0, 5,90,87, 0, 0, 0, 7,69,37, 0, 0, 0, 6, 5,52,
- 5, 3, 9, 5,11,42, 5,16,40, 5,16,39, 6,28,23, 6,28,22, 6,36,94, 6,36,92,
- 5,21,65, 0, 0, 0, 6,37, 1, 0, 0, 0, 6,36,93, 4,27,28, 6,46,92, 4,27,29,
- 5,28,32, 5,28,31, 6,46,94, 5,28,33, 6,47, 3, 6,46,93,15,18,53, 4,32,87,
- 5,35, 5, 4,32,86, 6,56,46, 6,56,47, 5,35, 7, 5,35, 3, 5,35, 6, 6,56,45,
- 6,47, 2, 5,35, 4, 5,35, 8, 0, 0, 0, 0, 0, 0, 6,66,53, 6,66,54, 4,39,51,
- 4,39,50, 6,66,57, 5,41,93, 5,41,92, 6,66,59, 6,66,58, 6,66,55, 6,66,56,
- 5,49,18, 4,45,70, 7, 9, 9, 7, 9,11, 5,49,17, 5,49,19, 7, 9,13, 7, 9,12,
- 5,41,94, 5,49,16, 7, 9,10, 5,42, 1, 7, 9,14,15,50,28, 0, 0, 0, 0, 0, 0,
- 5,56,39, 5,56,40, 5,56,38, 7,19,57, 4,51,86, 7,19,58, 7,19,60, 7,19,59,
- 5,56,37, 7,19,56, 5,62,61, 5,62,62, 5,62,63, 5,62,60, 7,28,16, 7,28,14,
- 7,28,15, 0, 0, 0, 0, 0, 0, 4,61,69, 5,68,74, 0, 0, 0, 5,68,75, 7,35,35,
- 7,35,36, 7,35,37, 4,65,39, 5,73,56, 5,56,41, 7,42,30, 4,65,41, 5,77,75,
- 5,77,72, 7,48,27, 5,77,74, 5,77,73, 4,71,38, 5,81,32, 7,53,23, 7,53,24,
- 7,57,35, 7,60,76, 7,57,36, 7,57,37, 7,60,77, 7,60,78, 0, 0, 0, 5,84,34,
- 7,63,60, 0, 0, 0, 7,65,45, 7,63,61, 5,89,48, 5,90,26, 7,69,38, 7,70,35,
- 15, 8,76, 5,11,43, 6,28,24,15,18,54, 5,21,68, 5,21,67, 4,21,47, 5,21,66,
- 4,21,46, 6,37, 5, 6,37, 3, 0, 0, 0, 6,47, 5, 5,28,34, 5,28,38, 5,28,36,
- 5,28,40, 5,28,37, 6,47, 8, 6,47, 6, 5,28,39, 5,28,35, 6,47, 7, 6,47, 4,
- 0, 0, 0,15,31,30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,32,92, 4,32,93,
- 4,32,90, 6,56,50, 5,35,11, 6,56,49, 5,35,10, 4,32,89, 4,32,91, 6,56,51,
- 15,37,39, 5,35, 9, 6,66,65, 6,66,60, 5,42, 5, 5,42, 3, 5,42, 2, 6,66,63,
- 5,42, 4, 6,66,62, 6,66,64,15,44,40, 6,66,61, 0, 0, 0, 6,66,66,15,44,41,
- 0, 0, 0, 5,49,21, 5,49,20, 4,45,73, 5,49,23, 5,49,22, 5,49,24, 4,45,74,
- 7, 9,15, 7, 9,16, 4,45,75, 0, 0, 0, 0, 0, 0, 7, 9,17, 7,19,68, 5,56,43,
- 7,19,62, 7,19,64, 7,19,65, 4,51,88, 5,56,42, 7,19,66, 5,56,44, 7,19,63,
- 0, 0, 0,15,55,90, 7,19,61, 7,19,67, 0, 0, 0, 4,56,89, 5,62,67, 7,28,17,
- 5,62,66, 4,56,88, 5,62,64, 5,62,68, 5,62,65, 0, 0, 0,15,60,76,
- /* plane 2, page 125 */
- 1, 255, /* first, last */
- 7,35,38, 4,61,71, 7,35,39, 4,61,70, 5,68,76, 7,42,31, 5,68,77,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,73,59, 7,42,32, 5,73,58, 7,42,35,
- 7,48,29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,42,34, 5,73,57, 5,77,77, 5,77,76,
- 7,48,28, 5,81,34, 5,77,78, 0, 0, 0, 0, 0, 0, 5,81,33, 7,53,25, 7,57,38,
- 7,60,80, 7,60,79, 0, 0, 0, 5,90,88, 5,11,44, 4,11,42, 6,20,54, 0, 0, 0,
- 15,13,42, 0, 0, 0, 4,16, 6, 6,28,25, 5,16,41, 5,16,42, 0, 0, 0, 0, 0, 0,
- 15,18,55,15,18,56, 6,28,26, 6,37,10, 0, 0, 0, 6,37,12, 6,37, 7, 6,37, 8,
- 6,37, 6, 6,37,11, 5,21,69,15,24,57,15,24,58,15,24,59,15,24,60,15,24,61,
- 15,24,62,15,24,63,15,24,64, 0, 0, 0, 6,37,13, 4,21,51, 0, 0, 0, 6,37, 9,
- 4,21,50, 6,47,11, 4,27,32, 5,28,41, 5,28,43, 6,47,14, 6,47,12, 6,47,13,
- 6,56,55, 5,28,42, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,31,31,15,31,33,15,31,34,
- 15,31,35,15,31,36,15,31,37, 0, 0, 0, 6,47,15, 6,47,10, 0, 0, 0, 0, 0, 0,
- 5,28,45, 0, 0, 0, 0, 0, 0, 4,33, 2, 6,56,52, 6,56,57, 6,56,54, 5,35,16,
- 5,35,12, 6,56,62, 6,56,53, 5,35,15, 5,35,17, 5,35,18, 6,56,56, 6,56,64,
- 6,56,66, 5,35,19, 6,56,63, 0, 0, 0,15,37,40,15,37,41,15,37,42,15,37,43,
- 15,37,44,15,37,45,15,37,46, 0, 0, 0, 0, 0, 0, 6,56,65,15,31,32, 6,56,59,
- 0, 0, 0, 0, 0, 0, 5,35,14,15,38,20, 0, 0, 0, 6,66,69, 4,39,53, 5,42, 6,
- 6,66,68, 6,66,70, 6,66,76, 6,66,67, 6,66,73, 5,42, 7, 4,39,55, 0, 0, 0,
- 15,44,45,15,44,46,15,44,47,15,44,49, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,44,48,
- 15,44,44, 6,66,75, 6,56,61, 7, 9,19, 7, 9,21, 5,42, 8, 4,45,79, 7, 9,20,
- 5,49,26, 4,45,80, 5,49,27, 7, 9,25, 7, 9,24, 7, 9,18,15,50,29,15,50,30,
- 15,50,31, 0, 0, 0, 7, 9,23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,44,43, 7,19,74, 5,56,46, 7,19,71, 7,19,70, 5,56,47, 7,19,75, 7,19,78,
- 4,51,92, 7,19,72, 5,56,45, 6,66,72,15,52,18, 0, 0, 0,15,55,91,15,55,92,
- 15,55,93,15,55,94,15,56, 1,15,56, 2, 7,19,77, 0, 0, 0, 0, 0, 0, 7,19,76,
- 0, 0, 0, 7,19,69, 7,19,73, 5,56,48, 7,28,18, 5,62,69, 5,59,13, 5,62,71,
- 5,56,50, 5,62,70, 4,56,91, 7,28,24, 7,28,20, 7,28,22, 7,28,23, 7,28,21,
- 0, 0, 0,15,60,78,15,60,80, 0, 0, 0,15,60,79, 0, 0, 0, 7,35,43, 5,68,83,
- 7,35,46, 5,68,79, 7,35,41, 7,35,42, 7,35,49, 5,68,81, 5,68,78, 5,68,82,
- 7,35,45, 7,35,44, 0, 0, 0,15,64,86,15,64,87,15,64,88,15,64,89,15,64,91,
- 15,64,92, 0, 0, 0, 7,35,40, 0, 0, 0, 0, 0, 0, 7,35,48, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,68,80, 7,42,39, 7,42,43, 5,73,61, 5,68,84,
- /* plane 2, page 126 */
- 0, 255, /* first, last */
- 7,42,42, 7,35,47, 5,73,60, 4,65,43, 7,42,40, 5,73,62, 7,42,45, 7,42,44,
- 5,73,64, 7,42,36, 7,42,41, 7,42,38,15,67,92,15,67,93,15,67,94,15,68, 1,
- 0, 0, 0, 7,42,46, 0, 0, 0, 0, 0, 0, 7,42,37, 5,73,63, 4,68,49, 5,77,80,
- 4,68,48, 5,77,79, 7,48,30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,48,32, 0, 0, 0,
- 15,70,27,15,70,28,15,70,29,15,70,30,15,70,31, 7,48,31, 5,81,35, 4,71,39,
- 5,81,36, 0, 0, 0, 0, 0, 0, 5,81,37, 0, 0, 0,15,72,46,15,72,47, 7,53,27,
- 0, 0, 0, 7,57,39, 5,84,37, 5,84,36,15,73,86,15,73,87,15,73,88, 7,57,42,
- 7,57,40, 7,57,41, 0, 0, 0, 0, 0, 0,15,72,45, 7,60,81, 4,75, 2, 5,84,35,
- 7,60,82, 0, 0, 0, 0, 0, 0,15,74,88, 0, 0, 0, 0, 0, 0, 7,60,83, 7,63,62,
- 7,63,64, 7,63,63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,66,70, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,14,17, 6,20,55, 6,20,56, 5,21,70,15,24,65, 6,47,16, 4,27,36, 0, 0, 0,
- 6,56,67,15,37,47, 0, 0, 0, 5,42,10,15,44,50, 0, 0, 0, 0, 0, 0, 7, 9,26,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,56,52, 5,56,51,15,56, 3, 7,19,79,
- 0, 0, 0, 0, 0, 0, 5,62,73, 5,62,74, 5,62,72,15,60,81, 5,68,85, 7,35,51,
- 7,42,48, 7,42,47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,81,38, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,60,84, 0, 0, 0, 6,14,18, 6,14,19,
- 6,20,57,15,13,43,15,13,45,15,13,46,15,13,47,15,13,48, 4,11,43, 5,16,45,
- 6,28,30, 0, 0, 0, 6,28,29, 5,16,46, 6,28,28, 0, 0, 0, 4,16, 9,15,18,57,
- 15,18,58,15,18,59,15,18,60,15,18,61, 0, 0, 0, 5,21,77, 6,37,16, 5,21,71,
- 4,21,55, 5,21,74, 5,21,79, 5,21,78, 4,21,56, 6,37,14, 6,37,15, 5,21,75,
- 5,21,72,15,24,67,15,24,68,15,24,69,15,24,70,15,24,72,15,24,73,15,24,66,
- 0, 0, 0, 0, 0, 0, 5,21,76, 5,21,73, 0, 0, 0,15,24,71, 5,28,49, 5,28,48,
- 5,28,52, 5,28,47, 6,47,20, 6,47,17, 5,35,25, 5,28,51, 5,28,46, 6,47,19,
- 4,27,38, 5,28,53, 6,56,68, 6,47,21,15,31,39,15,31,40,15,31,41,15,31,42,
- 15,31,43,15,31,44,15,31,47,15,31,48,15,31,49, 0, 0, 0, 6,47,18,15,31,46,
- 0, 0, 0, 6,56,70, 5,35,22, 4,33, 3, 6,56,72, 4,33, 5, 5,35,27, 5,35,21,
- 5,35,29, 5,35,23, 4,33, 4, 6,56,74, 6,56,73, 5,35,26, 0, 0, 0,15,37,48,
- 15,37,49,15,37,50,15,37,51,15,37,52,15,37,53,15,37,54,15,37,55, 6,56,69,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,56,71, 6,66,77, 0, 0, 0,15,31,45, 6,66,78,
- 4,39,60, 5,42,12, 5,42,16, 6,66,82, 5,42,11, 5,42,14, 5,42,17, 0, 0, 0,
- 6,66,81, 6,66,79, 5,42,19, 4,39,61, 5,42,15, 6,66,86, 0, 0, 0, 5,42,13,
- /* plane 2, page 127 */
- 0, 255, /* first, last */
- 6,66,83,15,44,51,15,44,52,15,44,53,15,44,54,15,44,55,15,44,56,15,44,57,
- 0, 0, 0, 6,66,80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,49,34, 5,49,28,
- 4,45,82, 5,49,31, 5,49,30, 5,49,29, 5,49,32, 7, 9,31, 5,49,38, 5,49,35,
- 7, 9,33, 5,49,33, 7, 9,28, 7, 9,32, 7, 9,30, 6,66,84, 7, 9,34, 7,19,82,
- 5,49,37, 5,49,36,15,50,32,15,50,33, 0, 0, 0, 7, 9,35, 7, 9,27,15,56,13,
- 4,52, 3, 4,52, 4, 4,52, 8, 7,19,84, 5,56,57, 4,52, 1, 4,52, 2, 4,52, 7,
- 7,19,85, 4,52, 5, 7,19,81, 7,19,80, 5,56,56, 5,56,58, 7,19,86,15,56, 4,
- 15,56, 6,15,56, 7,15,56, 8,15,56, 9,15,56,10,15,56,11,15,56,12,15,56,14,
- 0, 0, 0, 7,19,88, 7,19,87, 0, 0, 0, 5,56,59, 5,56,54, 5,56,55, 0, 0, 0,
- 0, 0, 0, 5,62,79, 5,62,81, 4,57, 2, 5,62,80, 4,57, 4, 4,57, 1, 5,62,82,
- 4,56,94, 5,62,76, 4,57, 3, 5,62,78, 5,62,75, 7,28,26, 5,62,83,15,56, 5,
- 15,60,82,15,60,83,15,60,84,15,60,85,15,60,86, 7,28,25, 5,68,89, 5,68,92,
- 4,61,75, 7,35,55, 7,35,54, 5,68,86, 5,68,90, 5,68,88, 5,68,87, 5,68,93,
- 5,68,94, 7,35,59, 7,35,58, 5,68,91,15,64,93, 7,35,56, 0, 0, 0, 7,35,53,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,35,57, 7,35,52, 0, 0, 0, 5,56,61, 5,73,66,
- 5,73,70, 5,73,72, 4,65,46, 4,65,44, 5,73,67, 5,73,71, 5,73,69, 5,73,65,
- 7,42,50, 5,73,73, 5,73,68,15,68, 3,15,68, 4,15,68, 5, 0, 0, 0, 0, 0, 0,
- 7,42,49, 0, 0, 0, 0, 0, 0, 7,42,51, 0, 0, 0, 4,68,50, 4,68,52, 4,68,56,
- 4,68,55, 5,77,81, 7,48,33, 7,48,35, 5,77,82, 7,48,34,15,70,32,15,70,33,
- 15,70,34, 4,71,41, 5,81,40, 5,81,41, 7,53,31, 7,53,29, 7,53,28, 7,53,30,
- 5,81,39, 5,84,38, 5,84,41, 4,73,45, 5,84,40, 5,84,39,15,73,89, 0, 0, 0,
- 5,86,47, 5,86,48,15,74,89, 7,57,43, 7,60,85, 7,60,86, 5,88,19, 5,88,20,
- 5,88,21, 4,77, 6, 0, 0, 0, 0, 0, 0, 7,65,46, 5,90,89, 5,91,41, 0, 0, 0,
- 6,14,21, 6,14,20, 6,20,59, 5,11,45,15,13,49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,20,58, 6,28,33, 4,16,11, 6,28,34, 6,28,32, 5,16,48, 5,16,47, 0, 0, 0,
- 0, 0, 0, 6,28,31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,28,35, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,21,63, 6,37,19, 4,21,58, 5,21,83, 6,37,23, 5,21,87,
- 6,37,26, 5,21,81, 5,21,85, 6,37,28, 6,37,29, 5,21,84, 6,37,27, 6,37,18,
- 6,37,22, 0, 0, 0,15,24,74, 6,37,17, 6,37,21, 0, 0, 0, 6,37,25, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,21,86, 5,21,80,
- 0, 0, 0, 6,37,20, 5,28,64, 5,28,55, 5,28,56, 5,28,59, 6,47,27, 5,28,54,
- 6,47,24, 4,27,46, 5,28,61, 5,28,57, 5,28,65, 5,28,58, 6,47,25, 6,56,89,
- /* plane 2, page 128 */
- 0, 255, /* first, last */
- 5,28,66, 0, 0, 0, 0, 0, 0,15,31,52, 0, 0, 0, 0, 0, 0, 6,47,23, 0, 0, 0,
- 0, 0, 0,15,31,50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,47,26, 5,28,62, 5,35,33, 5,35,31, 6,56,81,
- 5,35,32, 5,35,34, 6,56,84, 6,56,80, 5,35,39, 5,35,37, 6,56,78, 6,56,77,
- 5,35,30, 6,56,79, 6,56,82, 6,56,86, 5,35,42, 6,56,76, 6,56,87, 5,35,35,
- 5,35,44, 5,35,40, 6,56,83, 5,35,41, 5,35,38, 6,56,85, 5,42,21, 0, 0, 0,
- 0, 0, 0,15,37,57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,56,88, 6,56,75,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,67, 2, 5,42,35, 4,39,64, 5,42,23, 5,42,31, 5,42,22, 5,49,46, 5,42,27,
- 6,66,87, 6,66,91, 5,42,34, 5,42,28, 5,42,25, 5,42,32, 5,42,33, 5,42,29,
- 5,35,36, 5,42,24, 5,42,36, 6,66,94, 5,42,38, 6,66,89, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,42,39,15,44,58,15,44,59, 6,66,88, 0, 0, 0, 6,66,90, 0, 0, 0,
- 6,66,93, 0, 0, 0, 6,67, 1, 6,66,92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,42,26, 0, 0, 0, 7, 9,38, 4,45,90, 5,49,44,
- 5,49,39, 5,49,42, 5,49,47, 7, 9,37, 7, 9,41, 4,45,92, 7, 9,45, 4,45,91,
- 5,49,43, 5,49,45, 4,46, 4, 5,49,49, 5,49,50, 4,39,67, 7, 9,47, 5,49,41,
- 7, 9,43, 0, 0, 0, 0, 0, 0,15,50,34,15,50,35,15,50,36,15,50,37, 7, 9,40,
- 0, 0, 0, 7, 9,44, 0, 0, 0, 7, 9,39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9,42, 5,49,48, 5,49,52, 5,49,53, 5,42,37,
- 7,20, 1, 5,56,64, 5,42,40, 5,56,73, 4,52,10, 7,19,90, 5,56,67, 7,19,94,
- 7,20, 3, 7,19,92, 5,56,63, 7,19,91, 7,20, 5, 5,49,51, 7,20, 6, 5,56,71,
- 5,56,72, 5,56,62, 5,56,65, 7,19,93, 5,56,69, 5,56,68, 7,20, 4, 4,52,11,
- 5,56,70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,52,12,
- 15,56,17,15,56,18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,20, 2, 5,62,90, 5,62,93, 5,62,85, 7,28,32, 5,62,86,
- 5,62,92, 5,62,88, 4,57, 9, 7,28,30, 7,35,71, 7,28,35, 5,62,94, 4,57,14,
- 7,28,27, 7,28,34, 7,28,36, 5,62,89, 4,57, 7, 7,28,33, 7,20, 7, 7,28,31,
- 4,57,15, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,60,87, 0, 0, 0, 7,28,29, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,60,89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,62,87,
- /* plane 2, page 129 */
- 0, 253, /* first, last */
- 5,62,84, 0, 0, 0, 0, 0, 0, 7,35,66, 0, 0, 0, 4,61,80, 7,35,70, 4,61,79,
- 5,69, 1, 5,69, 2, 5,69,13, 5,69, 6, 4,61,81, 5,69,12, 5,69, 8, 7,35,63,
- 5,73,80, 7,35,69, 7,35,60, 5,69,14, 7,35,62, 5,69, 4, 7,35,65, 5,69, 3,
- 5,69, 9, 4,63,19, 4,61,86, 5,69, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,64,94,15,65, 1,15,65, 2,15,65, 3,15,65, 4,15,65, 5, 7,35,75,
- 5,69, 7, 7,35,64, 7,35,73, 7,35,72, 7,35,74, 7,35,61, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,69,11, 7,35,67, 0, 0, 0,
- 7,28,28, 0, 0, 0, 5,69,15, 5,73,74, 7,42,69, 0, 0, 0, 5,73,79, 5,73,81,
- 7,42,72, 5,73,84, 7,42,59, 5,69,10, 5,73,78, 7,42,56, 5,73,77, 5,73,82,
- 4,65,53, 7,42,52, 4,61,83, 7,42,57, 7,35,68, 7,42,62, 5,73,83, 7,42,58,
- 7,42,70, 7,42,53, 7,42,60, 5,73,75, 5,73,76, 7,42,65, 7,42,66, 7,42,67,
- 7,42,63, 5,73,86, 5,73,85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,42,64, 7,42,61, 0, 0, 0, 7,42,71, 7,42,54, 7,42,68, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4,65,51, 4,68,57, 5,77,93, 5,77,87, 7,48,36, 5,77,91, 5,77,86, 5,77,89,
- 7,48,40, 7,48,38, 4,68,60, 5,77,83, 4,68,61, 7,48,39, 5,77,88, 5,77,85,
- 5,77,84, 7,48,41, 0, 0, 0, 0, 0, 0,15,70,35,15,70,36,15,70,37,15,70,38,
- 15,70,39, 0, 0, 0, 7,48,37, 7,48,42, 7,48,43, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,77,92, 5,77,94,
- 5,77,90, 0, 0, 0, 4,71,46, 7,53,34, 4,71,47, 5,81,43, 7,53,33, 7,53,36,
- 4,71,45, 4,71,43, 5,81,44, 7,53,35, 7,53,32, 5,81,42, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,72,49,15,72,50, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,84,42, 7,53,37, 7,57,44, 5,84,45, 5,84,47, 5,84,46, 5,84,44,
- 7,57,45, 0, 0, 0, 5,84,49, 7,57,46,15,73,90, 0, 0, 0, 0, 0, 0, 7,57,47,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,84,48, 0, 0, 0, 5,86,52, 5,86,50,
- 5,86,53, 7,60,89, 7,60,88, 0, 0, 0, 0, 0, 0, 5,86,51, 5,86,49, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,76,11, 7,63,65, 5,88,23, 5,88,22,
- 4,76,10, 5,88,24, 7,63,66, 7,65,47, 0, 0, 0, 7,63,67, 7,65,50, 4,77, 8,
- 7,65,52, 7,66,71, 7,65,51, 7,65,49, 7,65,48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,75,71, 5,90,28, 5,90,27, 5,90,29,
- /* plane 2, page 130 */
- 3, 252, /* first, last */
- 7,67,86, 5,91,42, 7,68,67, 0, 0, 0, 0, 0, 0,
- 5,91,74, 0, 0, 0,15,77, 8, 7,69,69, 0, 0, 0,15,77,19, 0, 0, 0, 6, 3,25,
- 6, 3,26, 6, 5,53, 0, 0, 0, 5,16,50, 6,28,36, 5,16,49, 0, 0, 0, 0, 0, 0,
- 5,21,90, 5,21,89, 5,21,88, 6,37,30, 6,37,33, 6,37,32, 6,37,34, 6,37,31,
- 6,37,35, 6,37,36, 4,21,64, 0, 0, 0,15,24,75, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,28,69, 6,47,31, 5,28,68, 6,47,33, 6,47,30, 5,28,70,15,31,53,
- 15,31,54,15,31,55,15,31,56, 0, 0, 0, 6,47,29, 6,47,32, 0, 0, 0, 0, 0, 0,
- 6,56,93, 5,35,45, 6,56,90, 6,56,94, 6,57, 1,15,37,58,15,37,59,15,37,60,
- 6,56,91, 0, 0, 0, 6,56,92, 6,57, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,42,42, 6,67, 3, 6,67, 4, 5,42,41, 6,67, 5, 6,67, 6,15,44,60,15,44,61,
- 15,44,62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9,49, 5,49,54, 0, 0, 0, 4,46, 5,
- 15,50,38,15,50,40, 0, 0, 0, 7, 9,48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,56,74, 4,52,17, 5,56,75, 7,20, 8, 7,28,38,15,56,20,
- 15,56,22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,28,40, 7,28,39,
- 7,28,37, 5,63, 1,15,60,90,15,60,91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,69,16, 7,35,76,15,65, 6,15,65, 7, 0, 0, 0, 0, 0, 0, 7,42,76,
- 7,42,77, 7,42,74, 0, 0, 0,15,68, 6,15,68, 7, 0, 0, 0, 7,42,75, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,42,73, 0, 0, 0, 0, 0, 0, 4,68,62, 7,48,45,15,70,40,
- 15,70,41, 0, 0, 0, 7,48,46, 7,53,38, 5,81,45, 7,53,39, 7,53,40, 7,53,41,
- 7,57,48,15,73,92, 0, 0, 0, 5,86,54, 0, 0, 0, 5,89,49, 0, 0, 0, 0, 0, 0,
- 6,20,60, 5,11,46, 6,20,62,15,13,50,15,13,52, 0, 0, 0, 0, 0, 0, 6,28,37,
- 0, 0, 0, 5,16,52, 6,28,39,15,18,63,15,18,64, 0, 0, 0, 0, 0, 0, 6,28,38,
- 0, 0, 0, 5,16,51,15,18,62, 5,21,91, 6,37,46, 6,37,45, 6,37,38, 4,21,68,
- 5,22, 2, 5,22, 1, 6,37,42, 5,21,93, 6,37,39, 6,37,44, 6,37,43, 5,21,92,
- 5,21,94, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,24,77, 0, 0, 0, 6,37,40, 6,37,41,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,21,69, 0, 0, 0, 6,47,38, 6,47,39,
- 5,28,80, 5,28,78, 6,47,37, 6,47,36, 6,47,34, 5,22, 3, 5,28,77, 5,28,72,
- 5,28,75, 5,28,74, 6,47,35, 5,28,73, 5,28,81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,28,76, 5,28,79,
- 6,57, 3, 6,57, 8, 5,35,51, 6,57, 6, 6,57, 9, 5,35,49, 4,33,11, 5,35,50,
- 5,35,47, 6,57, 7, 5,35,46, 0, 0, 0,15,37,61,15,37,62,15,37,63, 0, 0, 0,
- 0, 0, 0, 6,57, 5, 0, 0, 0, 0, 0, 0, 4,33,13,
- /* plane 2, page 131 */
- 1, 254, /* first, last */
- 5,35,52, 6,67,13, 6,67,15, 5,42,48, 4,39,72, 6,67, 8, 6,67,11,
- 5,42,45, 6,67,12, 6,67, 7, 6,67,16, 0, 0, 0, 5,42,43, 5,42,46, 6,67,17,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,67,14, 0, 0, 0,
- 0, 0, 0,15,44,63,15,44,64,15,44,65,15,44,67, 5,42,47, 0, 0, 0, 5,42,44,
- 7, 9,57, 6,67,10, 5,49,64, 7, 9,55, 7, 9,62, 7, 9,66, 7, 9,54, 5,49,57,
- 7, 9,58, 7, 9,53, 7, 9,60, 5,49,56, 5,49,59, 5,49,62, 4,46,12, 6,67, 9,
- 7, 9,56, 7, 9,61, 7, 9,59, 5,49,61, 5,49,63, 7, 9,50, 5,49,55, 7, 9,52,
- 7, 9,67, 0, 0, 0, 0, 0, 0,15,50,41,15,50,42,15,50,43,15,50,44, 0, 0, 0,
- 7, 9,51, 7, 9,63, 7, 9,64, 7, 9,65, 0, 0, 0, 5,49,60, 5,49,58, 7,20, 9,
- 5,56,83, 7,20,15, 5,56,84, 7,20,13, 5,56,80, 7,20,11, 7,20,20, 5,56,78,
- 5,56,81, 5,56,77, 7,20,21, 7,20,16, 7,20,22, 0, 0, 0, 5,56,76, 7,20,19,
- 15,56,23,15,56,25,15,56,26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,20,12,
- 7,20,14, 0, 0, 0, 0, 0, 0, 7,20,10, 0, 0, 0,15,56,24, 0, 0, 0, 4,52,21,
- 5,56,79, 7,28,42, 7,28,50, 5,63, 5, 7,28,45, 7,28,44, 7,28,43, 7,28,51,
- 4,57,19, 7,28,48, 4,57,20, 7,28,49, 5,63, 2, 0, 0, 0, 5,63,11, 4,57,22,
- 5,63, 8, 5,63, 7, 0, 0, 0, 7,28,52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,63, 4,
- 5,63,10, 7,28,41,15,60,92,15,60,93, 7,28,46, 7,28,47, 0, 0, 0, 5,63, 6,
- 5,63, 3, 5,63, 9, 4,61,89, 7,35,80, 4,62, 1, 5,69,18, 0, 0, 0, 0, 0, 0,
- 5,69,20,15,65, 8,15,65, 9,15,65,10, 0, 0, 0, 7,35,79, 7,35,82, 0, 0, 0,
- 7,35,81, 7,35,78, 0, 0, 0, 0, 0, 0, 7,35,77, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,69,17, 5,69,19, 0, 0, 0, 5,73,88, 7,42,78, 7,42,81, 7,42,79,
- 7,42,80, 5,73,90, 4,65,58, 4,65,59, 5,73,89, 5,73,87, 5,73,91, 7,42,82,
- 15,68, 8, 7,42,84, 4,68,66, 5,78, 5, 5,78, 3, 7,48,51, 5,78, 4, 5,78, 2,
- 7,48,49, 5,78, 1, 0, 0, 0, 0, 0, 0,15,70,42, 0, 0, 0, 7,48,50, 0, 0, 0,
- 0, 0, 0, 7,48,48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,48,47, 5,78, 6, 7,48,52,
- 4,71,51, 5,81,46, 4,71,52, 7,53,44, 0, 0, 0, 0, 0, 0, 7,53,43, 7,53,42,
- 0, 0, 0, 7,57,54, 4,73,48, 7,57,50, 7,57,49, 4,73,49, 7,57,55, 0, 0, 0,
- 7,57,51, 7,57,52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,57,53, 7,60,94, 7,61, 1,
- 5,86,55, 7,60,91, 7,60,90, 7,60,92, 7,60,93, 0, 0, 0, 5,86,57, 0, 0, 0,
- 5,86,56, 5,88,28, 5,88,27, 5,88,26, 7,63,71, 0, 0, 0, 0, 0, 0, 7,63,69,
- 7,63,68, 5,88,25, 7,63,70, 5,89,51, 5,89,50, 5,90,30, 5,90,31, 0, 0, 0,
- 7,66,72, 5,90,90, 7,68,68, 0, 0, 0, 0, 0, 0, 7,66,73, 7,67,87,
- /* plane 2, page 132 */
- 1, 255, /* first, last */
- 5,91,75, 7,69,70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 9,11, 6,14,22, 6,28,40, 0, 0, 0, 6,37,47,
- 5,22, 5, 5,22, 4, 0, 0, 0, 0, 0, 0, 4,33,14, 6,57,10, 0, 0, 0,15,37,65,
- 5,42,49,15,44,69,15,44,70, 5,42,50, 7, 9,68, 7, 9,69, 7, 9,70, 5,49,66,
- 7,20,23, 5,56,85, 7,20,24, 0, 0, 0,15,56,27, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,63,13, 5,63,12,15,60,94,15,61, 1,15,61, 2,15,61, 3, 0, 0, 0, 5,63,14,
- 5,69,23, 5,69,22, 7,35,83, 0, 0, 0, 0, 0, 0, 7,42,85, 4,65,60, 0, 0, 0,
- 0, 0, 0, 7,42,86, 0, 0, 0,15,70,43, 7,48,53,15,72,52, 7,57,56, 0, 0, 0,
- 7,63,72, 7,69,39, 7,69,71, 6, 9,12, 6,14,23, 6,57,13, 6,57,12, 6,57,11,
- 15,50,45, 7,19, 1, 4,65,61, 7,53,45, 0, 0, 0, 6, 5,57, 0, 0, 0, 6, 5,56,
- 6, 5,55, 4, 4,94, 6, 9,13, 4, 5, 4, 6,28,41, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6, 9,14,15, 5,19,15, 5,20, 6,28,42, 0, 0, 0, 0, 0, 0, 6, 9,15, 0, 0, 0,
- 5, 4,88, 6,28,43, 6,37,48, 5, 7,74, 5, 7,75, 5, 7,80, 6,14,24, 6,14,29,
- 5, 7,79, 4, 8, 5, 5, 7,81, 5, 7,77, 4, 8, 8, 6,14,27, 0, 0, 0,15, 8,77,
- 15, 8,79,15, 8,80,15, 8,83,15, 8,84,15, 8,85, 6,14,26, 0, 0, 0, 6,14,31,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7,78, 5, 7,72, 6,14,28, 5, 7,76,
- 6,14,25, 6,14,30, 0, 0, 0, 5,11,47, 5,11,54, 5,11,50, 6,20,63, 5,11,49,
- 6,20,66, 5,11,53, 5,11,51, 4,11,47, 4,11,49, 5,11,48, 6,20,68, 6,20,67,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,13,53,15,13,54,15,13,55,15,13,56,15,13,57,
- 0, 0, 0, 0, 0, 0, 4,11,50, 6,20,69, 0, 0, 0, 6,20,65, 0, 0, 0, 0, 0, 0,
- 6,42,39, 0, 0, 0, 5,11,55, 5,11,52, 6,28,52, 6,28,56, 5,16,59, 6,28,51,
- 5,16,54, 5,16,58, 4,16,17, 5,16,55, 5,16,57, 6,28,50, 6,28,44, 6,28,54,
- 4,16,18, 0, 0, 0, 6,28,55, 6,28,45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,35,53, 6,28,53, 5,16,56, 6,28,48,
- 6,28,46, 5,16,60, 5,22, 7, 5,22, 6, 6,28,47, 6,37,59, 0, 0, 0, 5,22,12,
- 4,21,74, 6,37,60, 5,22,11, 6,28,49, 0, 0, 0, 5,22, 9, 6,37,55, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,37,58,15,24,80,15,24,81,15,24,82, 6,37,54, 6,37,52,
- 6,37,53, 6,37,50, 0, 0, 0, 6,37,61, 0, 0, 0, 6,37,56, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,37,51, 5,22,10, 4,21,71, 6,37,57,
- 5,22,13, 5,22, 8,15,24,79, 6,37,49, 5,28,86, 5,28,82, 5,28,88, 5,28,87,
- 4,27,54, 6,47,51, 4,27,58, 4,27,56, 5,28,89, 6,47,50, 7, 9,71, 6,47,45,
- 6,47,44, 6,47,48, 6,47,47, 4,27,59, 0, 0, 0, 6,47,41, 6,47,43,15,31,66,
- /* plane 2, page 133 */
- 0, 253, /* first, last */
- 6,47,49, 0, 0, 0, 0, 0, 0, 6,47,52, 0, 0, 0, 6,47,53, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,47,42, 0, 0, 0, 0, 0, 0,15,31,57,15,31,58,
- 15,31,59,15,31,60,15,31,61,15,31,63,15,31,64,15,31,65, 5,28,85, 6,47,46,
- 0, 0, 0, 5,28,84, 5,28,83, 4,27,57, 6,47,54, 6,57,32, 6,57,20, 6,57,29,
- 0, 0, 0, 6,57,16, 4,33,17, 4,33,16, 6,57,14, 0, 0, 0, 5,35,57, 6,57,17,
- 6,57,33, 6,57,27, 6,57,31, 6,57,23, 6,57,21, 6,57,35, 6,57,34, 5,28,90,
- 4,33,18, 6,57,19, 6,57,30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,37,66,15,37,67,15,37,68,15,37,69,15,37,70,15,37,71,15,37,72,
- 15,37,73,15,37,74,15,37,75,15,37,76, 0, 0, 0, 6,57,18, 0, 0, 0, 6,57,22,
- 6,57,28, 6,57,25, 0, 0, 0, 6,57,24, 6,57,26, 0, 0, 0, 6,57,15, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,35,56, 5,35,55, 5,35,54, 6,67,21, 6,67,20, 6,67,23,
- 6,67,18, 6,67,26, 5,42,52, 6,67,22, 6,67,24, 6,67,28, 5,42,51, 5,42,54,
- 6,67,19, 6,67,27, 7,28,53, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,44,73,15,44,74,
- 15,44,76,15,44,77,15,44,78,15,44,79,15,44,80,15,44,81,15,44,82, 0, 0, 0,
- 6,67,25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,28,54, 7,28,55, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,28,56, 0, 0, 0, 5,42,53, 0, 0, 0, 0, 0, 0, 7, 9,78, 7, 9,76,
- 7, 9,82, 7, 9,73, 7, 9,75, 4,46,15, 5,49,68, 4,46,16, 5,49,72, 5,49,69,
- 4,46,20, 0, 0, 0, 0, 0, 0, 7, 9,80,15,50,46,15,50,47,15,50,48,15,50,49,
- 15,50,50, 5,49,77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9,74, 7, 9,79, 7, 9,84,
- 7, 9,85, 7, 9,81, 0, 0, 0, 7, 9,83, 7,35,84, 7, 9,72, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,35,85, 7, 9,77, 5,49,73, 5,49,71, 5,49,76, 5,49,70,
- 5,49,74, 5,49,75, 0, 0, 0, 5,49,67, 7,20,38, 5,56,92, 5,56,91, 5,56,89,
- 7,20,33, 5,56,87, 7,20,37, 7,20,30, 7,20,39, 0, 0, 0, 4,52,22, 7,20,34,
- 7,20,36, 7,20,25, 7,20,42, 7,42,87, 7,20,28, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,20,32, 7,20,44,15,56,28,15,56,29,15,56,30,
- 7,20,29, 0, 0, 0,15,56,31, 7,12,58, 7,20,40, 7,20,27, 0, 0, 0, 7,20,26,
- 7,20,35, 7,20,43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,56,88, 5,56,93,
- 0, 0, 0, 5,56,90, 7,20,31, 5,56,86, 0, 0, 0, 5,63,15, 4,57,26, 7,28,64,
- 5,63,19, 7,28,61, 5,63,20, 7,28,59, 7,48,55, 7,20,41, 7,28,66, 7,28,62,
- 5,63,18, 5,63,21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,61, 4,15,61, 6,
- 15,61, 7,15,61, 8, 7,28,57, 7,28,60, 7,28,63, 7,28,67,
- /* plane 2, page 134 */
- 0, 255, /* first, last */
- 15,61, 5, 5,63,22, 5,63,23, 5,63,17, 5,63,16, 7,28,58, 0, 0, 0, 5,69,29,
- 7,35,92, 4,62, 2, 7,35,90, 0, 0, 0, 5,69,26, 7,35,88,15,65,11,15,65,12,
- 15,65,13, 7,36, 1, 0, 0, 0, 7,35,94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,69,25, 7,35,93, 7,35,86, 7,35,89, 5,69,28, 5,69,27, 5,69,24,
- 7,35,91, 7,43, 1, 7,43, 2, 7,42,94, 0, 0, 0, 0, 0, 0,15,68,10,15,68,11,
- 15,68,13,15,68,14, 7,42,89, 7,42,90, 7,42,93, 7,42,91, 7,42,92, 0, 0, 0,
- 7,42,88, 0, 0, 0, 5,74, 1, 0, 0, 0, 0, 0, 0, 5,73,94,15,68,12, 7,48,58,
- 5,78, 9, 7,48,57, 0, 0, 0, 0, 0, 0, 5,78, 7,15,70,44, 0, 0, 0, 7,48,56,
- 5,78, 8, 7,61, 2, 4,71,53, 7,53,47, 5,81,49, 7,53,48, 7,53,46,15,72,53,
- 15,72,54,15,72,55,15,72,56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,81,47, 5,81,48,
- 5,73,93, 7,53,49, 5,81,50, 5,84,50, 4,75, 5, 7,57,59, 0, 0, 0, 7,57,58,
- 7,57,57, 7,61, 3, 7,61, 5, 0, 0, 0, 7,61, 4, 0, 0, 0, 7,66,74, 7,63,74,
- 7,63,73, 0, 0, 0, 0, 0, 0, 5,88,29, 7,65,53, 0, 0, 0, 7,66,75, 7,69,72,
- 6, 9,16, 5, 1,92, 0, 0, 0, 5, 3,12, 0, 0, 0, 5, 3,11, 5, 3,13, 5, 3,10,
- 4, 3,17, 6, 5,58, 6, 5,60, 0, 0, 0, 0, 0, 0, 4, 3,19, 4, 5, 7, 5, 4,89,
- 4, 5, 6, 4, 5, 8, 4, 5, 5, 6, 9,19, 4, 5,10, 5, 4,90, 4,21,81, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6, 9,18,15, 5,21,15, 5,22,15, 5,23,15,24,83,15,24,85,
- 0, 0, 0, 6,37,65, 6,37,63, 6,37,64, 0, 0, 0, 6, 9,17, 0, 0, 0, 4, 5, 9,
- 0, 0, 0, 4, 8,14, 6,37,62, 4, 8,10, 4, 8,13, 4, 8,12, 6,20,73, 4, 8,15,
- 5, 7,82, 5, 7,83, 6,47,56, 6,14,35,15, 8,86,15, 8,88,15, 8,89,15, 8,92,
- 6,47,58, 0, 0, 0, 6,14,33, 0, 0, 0, 0, 0, 0, 6,14,34, 0, 0, 0, 0, 0, 0,
- 6,14,32, 0, 0, 0,15, 8,87,15, 8,91, 6,47,55, 6,47,57, 5, 7,84, 5,11,58,
- 5,11,57, 5,11,56, 4,11,55, 4,11,53, 5,11,63, 4,33,19, 5,11,59, 0, 0, 0,
- 0, 0, 0,15,13,58,15,37,78, 6,57,37, 6,57,36, 6,57,38, 0, 0, 0, 6,20,76,
- 0, 0, 0, 6,20,70, 0, 0, 0, 6,20,71, 6,20,72, 0, 0, 0, 6,20,75, 6,20,74,
- 5,11,62, 5,11,60, 5,11,61, 5,16,65, 5,16,61, 4,16,22, 6,28,59, 5,16,69,
- 5,16,70, 5,16,62, 5,16,67, 5,16,63, 4,16,21, 6,28,61, 4,16,23, 0, 0, 0,
- 0, 0, 0, 6,28,63, 6,67,29, 6,67,31, 6,67,32, 0, 0, 0, 6,28,60, 6,28,62,
- 6,28,58, 5,16,66, 0, 0, 0, 5,16,68, 5,16,64, 5,16,71, 6,67,30, 6,28,57,
- 15,18,66,15,18,67,15,18,68, 5,49,78, 4,46,22, 4,21,79, 5,22,17, 5,22,16,
- 5,22,21, 5,22,14, 0, 0, 0, 5,22,18, 4,21,77, 6,37,70, 5,22,20, 7, 9,90,
- 7, 9,89, 0, 0, 0, 0, 0, 0, 6,37,72,15,18,65,15,24,86,15,50,52, 7, 9,86,
- /* plane 2, page 135 */
- 0, 255, /* first, last */
- 7, 9,87, 7, 9,91, 7, 9,88, 6,37,67, 0, 0, 0, 6,37,69, 6,37,68, 0, 0, 0,
- 6,37,66, 0, 0, 0,15,19,28, 6,37,71, 5,22,15, 5,22,19, 5,16,72, 4,27,63,
- 5,29, 3, 5,28,94, 5,29, 2, 4,27,61, 5,29, 4, 6,47,68, 5,29, 1, 5,35,71,
- 5,28,93, 5,28,92, 6,47,66, 6,47,59, 4,27,60, 0, 0, 0, 0, 0, 0,15,31,67,
- 15,31,68,15,31,69,15,56,33, 7,20,46, 6,47,61, 6,47,60, 6,47,62, 6,47,63,
- 6,47,64, 0, 0, 0, 6,47,65, 0, 0, 0, 0, 0, 0,15,31,70, 6,47,67, 7,20,45,
- 5,28,91, 0, 0, 0, 7,28,68, 5,35,59, 5,35,64, 5,35,67, 5,35,62, 5,35,61,
- 4,33,21, 6,67,33, 5,35,60, 5,35,66, 5,35,63, 5,35,68, 5,35,70, 4,33,23,
- 5,35,69, 6,57,41, 0, 0, 0, 5,35,58,15,37,79, 0, 0, 0, 0, 0, 0, 6,57,40,
- 0, 0, 0, 6,57,43, 5,35,65, 4,39,79, 5,42,61, 5,42,60, 5,42,57, 5,42,56,
- 5,42,67, 5,42,63, 0, 0, 0, 5,42,59, 6,67,38, 6,67,35, 0, 0, 0, 6,67,34,
- 5,42,65, 0, 0, 0, 0, 0, 0, 5,42,66, 0, 0, 0, 7,36, 2, 7,36, 4, 7,36, 3,
- 7,36, 5, 6,67,37, 5,42,55, 4,39,82, 0, 0, 0, 6,67,36, 5,69,30, 5,42,58,
- 5,42,62, 0, 0, 0, 5,42,68, 4,46,24, 7,43, 3, 5,49,82, 7,10, 1, 4,46,23,
- 5,49,83, 4,46,25, 0, 0, 0, 5,57, 8, 5,49,79, 5,49,80, 7, 9,94, 7,10, 2,
- 4,46,26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,50,51,15,50,53,15,50,54,
- 7,43, 6, 7,43, 4, 7,10, 3, 7,10, 5, 7,10, 6, 7,10, 4, 0, 0, 0, 7, 9,92,
- 0, 0, 0, 7, 9,93, 0, 0, 0, 0, 0, 0, 5,49,84, 7,20,48, 5,49,81, 7,43, 5,
- 0, 0, 0, 5,78,10, 5,57, 5, 5,57, 6, 7,48,60, 4,52,24, 7,20,47, 5,57, 1,
- 5,57, 4, 7,20,50, 5,57, 2, 5,57, 3, 4,52,25, 0, 0, 0, 7,20,49,15,56,32,
- 7,48,61, 7,48,59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,78,11, 7,28,69,
- 7,28,73, 5,63,24, 4,57,27, 5,63,25, 0, 0, 0, 0, 0, 0, 7,53,50, 7,53,51,
- 7,53,52, 7,28,71, 0, 0, 0, 7,28,74, 0, 0, 0, 7,28,70, 5,63,27, 5,63,26,
- 7,53,53, 7,28,72, 5,69,32, 7,36, 6, 7,36, 7, 5,69,33, 5,74, 5, 5,69,36,
- 7,36, 9, 7,36, 8, 5,69,34, 5,69,35, 7,57,60, 5,69,31, 0, 0, 0, 0, 0, 0,
- 7,36,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,43, 8, 7,36,11, 5,74, 4,
- 7,43, 7, 5,74, 3, 0, 0, 0, 0, 0, 0, 7,43,10, 7,43, 9, 4,65,64, 5,57, 7,
- 5,74, 2, 4,68,68, 5,78,12, 7,48,63, 7,48,65, 0, 0, 0, 7,48,62, 7,48,64,
- 4,71,54,15,72,57, 7,53,54, 7,53,55, 7,57,61, 0, 0, 0, 7,53,56,15,72,58,
- 7,61, 6, 0, 0, 0, 0, 0, 0, 7,63,75, 7,63,76, 0, 0, 0, 5,91,43, 7,67,88,
- 4,16,25,15,18,69, 6,28,64, 0, 0, 0, 5,22,24, 5,22,23, 6,37,82, 6,37,78,
- 5,22,25, 4,21,86, 6,37,76, 6,37,83, 6,37,73, 4,21,87, 5,22,26, 6,37,80,
- /* plane 2, page 136 */
- 0, 255, /* first, last */
- 6,37,79, 6,37,74, 6,37,75, 0, 0, 0, 0, 0, 0,15,24,87, 6,37,81, 4,21,89,
- 6,37,77, 0, 0, 0, 6,37,84, 6,47,75, 5,29, 5, 5,29, 6, 4,27,69, 6,47,73,
- 5,35,74, 4,27,66, 4,27,67, 6,47,74, 6,47,70, 6,47,69, 4,27,65, 6,47,71,
- 6,47,72, 0, 0, 0, 0, 0, 0,15,31,72,15,31,73,15,31,74,15,31,75, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,47,76, 0, 0, 0, 5,35,73, 5,35,76, 5,35,72, 6,57,46,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,57,45, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,35,75, 6,67,42,
- 5,42,70, 5,42,69,15,44,83,15,44,84,15,44,85,15,44,87, 6,67,41, 0, 0, 0,
- 0, 0, 0, 6,67,40,15,44,88, 0, 0, 0, 0, 0, 0, 6,67,39, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10, 8, 5,49,88, 7,10,12, 5,49,89, 5,49,85,
- 7,10,16, 5,49,86, 0, 0, 0, 7,10,15, 7,10,14, 7,10,13, 7,10, 9, 7,10, 7,
- 5,49,87, 0, 0, 0,15,44,86,15,50,56,15,50,57, 7,10,10, 0, 0, 0, 0, 0, 0,
- 7,10,11, 0, 0, 0, 7,10,18, 7,10,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,20,54, 7,20,53, 5,57, 9, 7,20,56, 5,57,12, 7,20,58, 4,52,33,
- 7,20,63, 4,52,30, 4,52,31, 7,20,62, 5,57,10, 7,20,55, 7,20,61, 7,20,60,
- 5,57,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,56,34,15,56,35, 0, 0, 0,
- 7,20,57, 7,20,59, 0, 0, 0, 7,20,51, 7,20,64, 5,63,33, 5,63,31, 5,63,32,
- 5,63,35, 4,57,32, 7,28,76, 5,63,34, 4,57,30, 7,28,78, 5,63,30, 7,28,84,
- 5,63,36, 7,28,77, 7,28,83, 0, 0, 0,15,61,10,15,61,11,15,61,12, 0, 0, 0,
- 0, 0, 0, 7,28,79, 7,28,81, 7,28,82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,63,29, 5,69,38, 5,69,39, 5,69,41, 7,36,19, 7,36,15, 4,62, 3, 7,36,12,
- 5,69,40, 4,62, 6, 5,69,42, 7,28,85, 4,62, 5, 7,36,18, 0, 0, 0, 5,69,43,
- 7,36,21, 7,36,22, 7,36,13,15,65,14, 0, 0, 0, 7,36,17, 7,36,14, 0, 0, 0,
- 0, 0, 0, 5,69,44, 7,36,16, 0, 0, 0, 0, 0, 0, 7,43,15, 7,43,12, 5,74,14,
- 5,74,11, 5,74, 7, 5,74,10, 5,74, 9, 5,74,15, 5,74,12, 5,74, 8, 5,74,13,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,43,13, 0, 0, 0, 0, 0, 0, 7,43,14, 0, 0, 0,
- 7,43,16, 7,43,11, 0, 0, 0, 7,36,20, 5,74,16, 5,74, 6, 7,48,66, 5,78,17,
- 5,78,14, 5,78,15, 5,78,13, 5,78,16, 7,48,67, 7,48,68, 0, 0, 0,15,70,46,
- 7,48,69, 7,48,71, 0, 0, 0, 7,48,70, 0, 0, 0, 0, 0, 0, 4,71,57, 4,71,55,
- 4,71,56, 5,81,51, 7,53,58,15,72,59, 0, 0, 0, 7,53,57, 7,57,62, 7,57,63,
- 7,57,66, 5,84,51, 7,57,65, 7,57,64,15,73,93, 0, 0, 0, 7,61, 7, 7,61, 9,
- 5,86,58, 7,61,11, 7,61,10, 5,86,59, 7,61, 8,15,74,90, 5,88,31, 4,76,15,
- /* plane 2, page 137 */
- 0, 255, /* first, last */
- 7,63,77, 7,63,78, 5,88,30, 0, 0, 0, 0, 0, 0, 7,66,76, 0, 0, 0, 5,90,91,
- 7,67,90, 7,67,89, 7,68,70, 0, 0, 0, 7,68,69, 7,69,88, 7,69,89, 6,20,78,
- 5,29, 7, 5,22,27, 6,67,43, 6,67,44, 0, 0, 0, 5,49,90, 7,10,20, 7,10,19,
- 5,57,13, 7,20,65, 5,63,37,15,61,13, 0, 0, 0, 7,36,23,15,70,47, 0, 0, 0,
- 15,72,60, 5,84,52, 5,22,28, 6,28,65, 0, 0, 0, 6,37,85, 6,47,78, 0, 0, 0,
- 5,29, 9, 5,29, 8,15,37,80, 0, 0, 0, 6,67,45, 7,10,21, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,63,38, 0, 0, 0,15,65,15, 5,69,45,
- 15,72,61, 5,81,52, 7,53,59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,28,68,15,18,70,
- 6,28,66, 0, 0, 0, 5,22,29, 6,37,86, 6,37,87, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,24,88, 6,47,83, 6,47,84, 6,47,85, 6,47,81, 6,47,82, 6,47,88,
- 6,47,86, 6,47,80, 6,47,89,15,31,76,15,31,77,15,31,78,15,31,79,15,31,82,
- 15,31,84,15,31,81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6,47,87, 0, 0, 0,15,31,80, 4,33,39, 5,35,78, 4,33,37,
- 4,33,36, 6,57,51, 6,57,47, 0, 0, 0, 0, 0, 0,15,37,81,15,37,85,15,37,86,
- 15,37,87,15,37,88, 6,57,53, 6,57,49, 0, 0, 0, 6,57,50,15,37,89, 0, 0, 0,
- 0, 0, 0, 6,57,52, 0, 0, 0, 6,57,48, 0, 0, 0, 0, 0, 0,15,37,84, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,42,71, 0, 0, 0, 5,42,72, 6,67,50, 5,42,73, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,44,72,15,44,89,15,44,91,15,44,92,15,44,93,15,45, 1,
- 15,45, 3,15,45, 4,15,45, 5,15,45, 8,15,45, 9, 0, 0, 0, 6,67,46, 0, 0, 0,
- 0, 0, 0, 4,39,90, 0, 0, 0, 0, 0, 0, 6,67,48, 6,67,49,15,45,10, 6,67,52,
- 15,44,90, 0, 0, 0, 0, 0, 0, 6,67,53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,45,11, 0, 0, 0,15,45, 6,15,44,94, 7,10,26, 4,46,34, 5,49,94, 7,10,33,
- 7,10,27, 7,10,32, 7,10,25, 5,49,93, 7,10,35, 0, 0, 0, 0, 0, 0, 7,10,36,
- 7,10,29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,49,91, 7,10,23,
- 0, 0, 0,15,50,59,15,50,61,15,50,63,15,50,64,15,50,67,15,50,68,15,50,69,
- 15,50,71,15,50,72,15,50,73,15,50,74,15,50,76,15,50,77, 7,10,34, 7,10,28,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10,31, 0, 0, 0, 7,10,37,15,50,62, 0, 0, 0,
- 0, 0, 0, 7,10,22, 0, 0, 0, 5,49,92,15,50,66, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,50,70, 0, 0, 0, 0, 0, 0,15,50,58, 5,57,20, 5,57,23, 5,57,18,
- 4,52,39, 5,57,14, 5,57,16, 7,20,69, 7,20,68, 7,20,75, 7,20,73, 7,20,71,
- 5,57,22, 4,52,36, 7,20,66, 7,20,74, 7,20,72, 5,57,15, 7,20,70, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,50,60, 5,57,19,15,56,36,
- /* plane 2, page 138 */
- 0, 253, /* first, last */
- 15,56,38,15,56,39,15,56,41,15,56,42,15,56,43,15,56,45,15,56,46,15,56,47,
- 15,56,49,15,56,51,15,56,52,15,56,54,15,56,55,15,56,58,15,56,60, 0, 0, 0,
- 15,56,61,15,56,62,15,56,64,15,56,65,15,56,67,15,56,68,15,56,48,15,56,50,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,56,63, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,56,37, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,56,56, 0, 0, 0, 0, 0, 0, 5,57,24, 0, 0, 0, 5,57,17, 5,63,40,
- 5,63,41, 7,28,89, 4,57,35, 5,63,44, 5,63,43, 7,28,92, 5,57,21, 5,63,39,
- 7,28,90, 5,63,42, 5,63,47, 7,28,94, 7,29, 4, 7,29, 1, 7,29, 5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,61,15,15,61,16,15,61,20,15,61,21,
- 15,61,22,15,61,23,15,61,26,15,61,27,15,61,28,15,61,29,15,61,31,15,61,32,
- 15,61,34, 0, 0, 0, 0, 0, 0,15,61,35,15,61,36,15,61,37,15,61,38,15,61,39,
- 15,61,40,15,61,41,15,61,43,15,61,46,15,61,47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,28,93, 0, 0, 0, 0, 0, 0, 7,29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,28,88, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,29, 3, 4,57,40, 0, 0, 0,15,61,42, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,61,24,15,61,19,15,61,17, 5,63,46, 5,63,45,15,61,14, 5,69,49,
- 4,62,13, 4,62,14, 5,69,50, 4,62, 8, 4,62,10, 7,36,24, 5,69,48, 5,69,46,
- 5,74,17, 7,36,26, 5,69,51, 4,62,16, 7,36,32, 0, 0, 0, 7,36,31, 5,69,52,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,69,53,
- 7,36,33,15,65,17,15,65,18,15,65,20,15,65,22,15,65,23,15,65,24,15,65,26,
- 15,65,28,15,65,29,15,65,30,15,65,32,15,65,33,15,65,34,15,65,36,15,65,37,
- 15,65,38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,36,27, 7,36,28,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,36,30, 7,36,29, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,65,16, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,65,25,15,65,21, 0, 0, 0,15,63,61, 4,65,75,
- 7,43,19, 7,43,23, 5,74,18, 7,43,20, 5,74,20, 7,43,18, 7,43,26, 0, 0, 0,
- 7,43,22, 7,43,25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,43,27,15,68,17,
- 15,68,18,15,68,19,15,68,21,15,68,22,15,68,24,15,68,25,15,68,26,15,68,27,
- 15,68,28,15,68,29,15,68,31,15,68,32,15,68,33,15,68,34,15,68,35,15,68,36,
- 15,68,37, 7,43,28, 0, 0, 0, 7,43,21, 0, 0, 0, 7,43,24,
- /* plane 2, page 139 */
- 3, 254, /* first, last */
- 4,65,74, 7,43,17, 5,69,54, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,68,30, 4,68,72, 7,48,77, 7,48,78,
- 5,78,24, 7,48,82, 5,78,19, 4,68,74, 5,78,22, 0, 0, 0, 5,78,18, 7,48,80,
- 7,48,72, 7,48,73, 5,78,23, 4,68,78, 0, 0, 0, 7,48,81, 0, 0, 0, 5,78,20,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,70,48,15,70,49,15,70,51,15,70,52,15,70,53,
- 15,70,54,15,70,56,15,70,57, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,70,58,15,70,59,
- 15,70,61,15,70,63,15,70,64,15,70,65,15,70,66,15,70,67,15,70,68,15,70,70,
- 15,70,72,15,70,74,15,70,75,15,70,76,15,70,77,15,70,78,15,70,79, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,48,76, 0, 0, 0, 0, 0, 0, 7,48,79,
- 0, 0, 0,15,70,50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,70,60, 0, 0, 0,
- 15,70,71, 0, 0, 0, 0, 0, 0, 7,48,74, 0, 0, 0, 7,53,66, 4,71,62, 7,53,71,
- 7,53,65, 7,53,60, 4,71,64, 4,71,61, 7,53,64, 7,53,67, 7,53,73, 7,53,62,
- 0, 0, 0, 0, 0, 0,15,72,62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,72,63,
- 15,72,64,15,72,65,15,72,66,15,72,67, 0, 0, 0,15,72,68,15,72,69,15,72,70,
- 15,72,71,15,72,72,15,72,73,15,72,75,15,72,76,15,72,77,15,72,78,15,72,79,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,53,63, 0, 0, 0, 7,53,68, 0, 0, 0,
- 7,53,69, 0, 0, 0, 0, 0, 0, 7,53,70, 7,53,61, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,72,74,
- 0, 0, 0, 0, 0, 0, 5,84,55, 7,57,75, 7,57,74, 7,61,16, 0, 0, 0, 7,57,70,
- 0, 0, 0, 0, 0, 0, 7,57,68,15,73,94, 0, 0, 0, 0, 0, 0,15,74, 1,15,74, 2,
- 15,74, 3,15,74, 4,15,74, 5,15,74, 6,15,74, 7,15,74, 8,15,74, 9,15,74,10,
- 15,74,11, 0, 0, 0, 0, 0, 0, 7,57,67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,57,69,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,84,54,
- 5,86,62, 4,75, 8, 0, 0, 0, 5,86,60,15,75,15, 7,61,15, 7,61,13, 7,57,73,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,61,12, 0, 0, 0,15,74,92,15,74,93,
- 15,75, 3,15,75, 4,15,75, 5,15,75, 6,15,75, 9,15,75,10,15,75,11,15,75,12,
- 15,75,13,15,75,14, 7,61,14, 0, 0, 0, 7,61,17, 0, 0, 0, 0, 0, 0,15,75, 1,
- 0, 0, 0,15,74,94,15,75, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,88,32, 7,63,80,
- 7,63,81, 7,63,82, 7,63,79, 7,63,83, 0, 0, 0, 0, 0, 0,15,75,72, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,75,73,15,75,74,15,75,75,
- 15,75,76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,77,67, 7,65,55, 7,65,56, 0, 0, 0,15,75,77,
- /* plane 2, page 140 */
- 0, 255, /* first, last */
- 15,76,28,15,76,29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,65,54, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,66,82, 7,66,77, 7,66,78, 7,66,84, 7,66,80, 7,66,79, 5,90,32,
- 7,66,83, 7,66,81, 7,66,85, 0, 0, 0,15,76,50,15,76,51,15,76,52,15,76,53,
- 15,76,54,15,76,55,15,76,56, 0, 0, 0,15,76,32, 5,90,33, 5,90,92, 7,67,93,
- 7,67,91, 0, 0, 0,15,76,79, 0, 0, 0, 7,67,92, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,77, 3, 7,68,72, 0, 0, 0, 0, 0, 0,15,77, 1, 0, 0, 0, 7,68,71, 7,68,73,
- 15,77, 2,15,76,30, 7,69,40, 7,69,41, 0, 0, 0, 0, 0, 0,15,77, 9, 0, 0, 0,
- 5,92, 1, 0, 0, 0, 0, 0, 0,15,77,21,15,77,24,15,77,25, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,14,36,
- 6, 9,20, 5,11,64, 5,22,31, 6,37,91, 5,22,30, 5,22,32, 6,37,90,15,24,89,
- 0, 0, 0, 0, 0, 0, 6,37,89, 0, 0, 0, 6,37,88, 5,29,10, 5,29,11, 4,27,72,
- 6,47,90, 6,47,91, 0, 0, 0,15,31,85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,57,57, 6,57,56, 4,33,42, 6,57,54, 6,57,55,
- 0, 0, 0,15,37,90, 5,35,80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,35,79,
- 5,42,74, 4,39,92, 6,67,54, 6,67,55, 0, 0, 0, 0, 0, 0, 5,42,75, 5,50, 1,
- 5,50, 3, 5,57,25, 5,50, 2, 5,50, 4, 5,50, 5,15,56,69, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,57,27, 7,20,78, 5,57,26, 0, 0, 0, 7,29, 6,
- 7,20,77, 0, 0, 0, 7,20,80, 7,20,76, 0, 0, 0, 7,29, 9, 4,57,42, 5,63,48,
- 4,57,43, 7,29,10, 7,29, 8, 0, 0, 0, 0, 0, 0, 7,29, 7, 7,36,35, 5,69,56,
- 7,36,34, 5,69,55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,74,24, 5,74,22, 5,74,21,
- 0, 0, 0, 0, 0, 0, 5,74,23, 5,78,25, 7,48,83, 0, 0, 0, 7,48,84, 0, 0, 0,
- 4,71,68, 0, 0, 0, 7,53,74, 7,57,77, 7,57,78, 0, 0, 0, 7,57,76, 0, 0, 0,
- 5,86,65, 5,86,64, 5,88,33, 7,63,84, 7,66,86, 7,68,74, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,11,65, 5,16,74, 5,16,75, 5,16,73, 0, 0, 0,15,18,71, 6,28,70,
- 5,22,34, 5,22,33, 0, 0, 0,15,24,90, 0, 0, 0,15,24,91, 6,37,92, 5,29,19,
- 5,29,17, 5,29,15, 4,27,74, 5,29,16, 4,27,76, 3,31,77, 5,29,12, 5,29,13,
- 5,29,14, 6,47,94, 6,48, 1, 5,29,18, 0, 0, 0, 6,47,92, 0, 0, 0,15,31,88,
- 15,31,89,15,31,90,15,31,91,15,31,92,15,31,93,15,32, 1, 0, 0, 0, 0, 0, 0,
- 6,47,93, 0, 0, 0, 4,27,73, 4,33,44, 6,57,62, 4,33,50, 4,33,45, 4,33,43,
- 15,37,94, 6,57,61, 5,35,84, 5,35,81, 5,35,83, 5,35,82, 6,57,59, 4,33,49,
- /* plane 2, page 141 */
- 0, 252, /* first, last */
- 4,33,47, 6,57,60, 6,57,58, 0, 0, 0,15,37,93,15,38, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,42,83, 5,42,79, 5,42,81,
- 4,39,94, 5,42,77, 4,40, 1, 5,42,84, 6,67,58, 5,42,80, 5,42,85, 4,39,93,
- 5,42,82, 5,42,86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,67,57, 0, 0, 0, 6,67,59,
- 6,67,60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,42,76, 0, 0, 0, 0, 0, 0,
- 7,10,40, 5,50,13, 5,50, 8, 7,10,45, 5,50,10, 5,50, 7, 7,10,46, 4,46,41,
- 5,50,12, 5,50, 9, 0, 0, 0, 7,10,44, 0, 0, 0,15,50,78,15,50,79,15,50,81,
- 7,10,39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10,41,
- 7,10,42, 7,10,43, 0, 0, 0, 0, 0, 0, 5,50, 6, 5,50,11, 5,50,14,15,50,80,
- 4,52,48, 4,52,45, 5,57,29, 5,57,32, 7,20,82, 5,57,28, 0, 0, 0, 5,57,30,
- 5,57,31, 7,20,85, 7,20,87, 7,20,89,15,56,70,15,56,71,15,56,72, 7,20,84,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,20,88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,20,86, 0, 0, 0, 4,52,46, 4,57,51, 4,57,49, 5,63,52,
- 7,29,11, 5,63,49, 5,63,51, 5,63,53, 5,63,50, 7,29,13, 4,57,48, 7,29,12,
- 4,57,44, 0, 0, 0, 7,29,14,15,61,48, 0, 0, 0, 7,29,15, 0, 0, 0, 7,29,16,
- 0, 0, 0, 7,29,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,69,63, 5,69,62, 5,69,58, 4,62,19, 7,36,36, 5,69,59, 5,69,65, 5,69,64,
- 7,36,38, 5,69,61, 5,69,57, 5,69,60,15,65,39,15,65,40,15,65,41,15,65,44,
- 0, 0, 0, 0, 0, 0,15,65,43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,36,37, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,36,39, 0, 0, 0, 5,74,25, 7,43,30, 7,43,31, 4,65,77,
- 5,74,26, 7,43,29, 4,65,78,15,68,38,15,68,39,15,68,40,15,68,41,15,68,42,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,68,80, 5,78,31, 5,78,26, 5,78,29,
- 5,78,28, 5,78,30, 5,78,32, 4,68,82, 7,48,88, 0, 0, 0, 5,74,27, 7,48,85,
- 15,70,80,15,70,81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,48,86, 0, 0, 0,
- 0, 0, 0, 5,78,27, 7,48,87, 5,81,58, 5,78,33, 4,71,69, 5,81,57, 5,81,55,
- 0, 0, 0,15,72,80,15,72,81,15,72,83,15,72,84,15,72,85, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,81,60, 5,81,56, 5,84,56, 7,53,75, 0, 0, 0,15,74,15,
- 0, 0, 0, 7,57,79, 0, 0, 0,15,74,12,15,74,13,15,74,14,15,74,16,15,74,17,
- 0, 0, 0,15,75,16,15,75,17,15,75,18, 7,61,18, 0, 0, 0, 5,88,34,15,75,78,
- 15,75,79, 0, 0, 0, 7,63,86, 7,63,85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,89,52, 4,77, 9, 4,77,10, 7,65,57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,66,87,
- 7,66,88, 0, 0, 0, 0, 0, 0, 5,90,93,15,77,10,
- /* plane 2, page 142 */
- 15, 255, /* first, last */
- 6,14,37,
- 5, 2, 2, 5, 1,94, 4, 2, 3, 5, 2, 3, 4, 2, 2, 5, 2, 1, 5, 3,14, 4, 3,20,
- 6, 5,61, 0, 0, 0, 5, 4,93, 4, 5,12, 4, 5,13, 5, 4,94, 5, 4,92, 0, 0, 0,
- 15, 5,26,15, 5,27,15, 5,28,15, 5,29,15, 5,30, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15, 5,31, 0, 0, 0, 5, 7,85, 6,14,39, 5, 7,86, 5, 7,88, 5, 7,89,
- 4, 8,16, 5, 7,87, 6,14,38, 6,14,40, 0, 0, 0,15, 8,93, 0, 0, 0, 0, 0, 0,
- 15, 8,94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,11,66, 6,20,80, 6,20,83, 4,11,60, 5,11,69, 6,20,81, 6,67,61,
- 6,20,85, 6,20,86, 6,20,87, 6,20,82, 5,11,67, 0, 0, 0, 6,20,88,15,13,59,
- 15,13,60,15,13,61, 0, 0, 0, 6,20,84, 0, 0, 0, 6,20,79, 0, 0, 0, 0, 0, 0,
- 6,28,73, 5,16,79, 5,11,70, 6,28,72, 5,16,76, 5,16,78, 6,28,78, 6,28,75,
- 6,28,79, 5,16,77, 6,28,74, 6,28,77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,28,76,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,18,72,15,18,73,15,18,74,
- 15,18,75,15,18,76,15,18,77,15,18,78, 0, 0, 0, 5,22,35, 6,38, 8, 6,38, 1,
- 4,21,94, 4,22, 2, 4,22, 1, 5,22,36, 6,38, 3, 6,38, 4, 6,38,11, 6,38,10,
- 6,67,62, 6,38, 6, 6,38, 2, 6,38, 9, 6,38, 7, 7,20,91, 6,38, 5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,24,92,15,24,93,15,24,94,15,25, 1,15,25, 2,15,25, 3,
- 15,25, 4,15,25, 5,15,25, 6,15,25, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,29,24,
- 5,29,29, 5,29,25, 5,29,26, 5,29,28, 6,48, 5, 6,48, 3, 5,29,20, 5,29,21,
- 5,29,23, 6,48, 4, 6,48, 9, 7,29,20, 6,48, 7, 5,29,27, 6,48, 8, 6,48, 6,
- 0, 0, 0,15,32, 2, 0, 0, 0, 0, 0, 0,15,32, 3, 7,29,18, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,29,22,
- 6,57,74, 5,35,91, 5,35,88, 6,57,66, 6,57,73, 6,57,71, 5,35,92, 5,35,89,
- 5,35,87, 6,67,63, 6,57,67, 6,57,69, 5,35,93, 5,35,90, 6,57,70, 7,36,41,
- 6,57,68, 7,36,40, 5,35,86, 6,57,63, 6,57,75, 6,57,64, 5,35,85, 0, 0, 0,
- 6,57,65, 0, 0, 0,15,38, 2,15,38, 3,15,38, 4,15,38, 5,15,38, 6,15,38, 7,
- 15,38, 8,15,38, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,57,72, 0, 0, 0,
- 6,57,76, 0, 0, 0, 7,29,19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,67,68,
- 6,67,66, 6,67,70, 4,40, 7, 4,40, 6, 5,50,15, 4,40, 8, 4,40, 9, 5,42,88,
- 6,67,67, 6,67,64, 4,40, 5, 5,42,89, 5,42,90, 6,67,69, 6,67,71, 7,43,33,
- /* plane 2, page 143 */
- 0, 255, /* first, last */
- 15,45,14,15,45,15,15,45,16,15,45,17,15,45,18,15,45,19, 6,67,65, 0, 0, 0,
- 5,42,87, 0, 0, 0, 5,50,22, 5,50,20, 5,50,21, 7,10,53, 5,50,24, 5,50,18,
- 5,50,17, 7,10,47, 5,50,19, 5,50,23, 5,50,16, 7,48,90, 7,10,51, 7,10,49,
- 7,10,48, 7,10,50, 0, 0, 0,15,50,82,15,50,83,15,50,84,15,50,85,15,50,86,
- 15,50,87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10,54, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,57,33, 5,57,34, 4,52,52, 7,20,92, 5,57,36, 5,57,35,
- 7,20,94, 7,48,89, 0, 0, 0,15,56,73,15,56,74,15,56,75,15,56,76, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,74,28, 7,20,93, 5,63,54,
- 5,63,55, 7,29,22, 7,29,23, 7,29,21, 5,84,57,15,61,49,15,61,50,15,61,51,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,61,52, 5,69,66, 7,36,44, 4,62,20,
- 7,36,42, 7,36,43,15,65,45,15,65,46,15,65,47,15,65,48, 5,74,29, 7,43,35,
- 7,53,76, 7,43,37, 0, 0, 0, 0, 0, 0,15,68,44, 5,88,35, 0, 0, 0, 7,43,34,
- 7,43,36, 7,63,87,15,70,82,15,70,83, 0, 0, 0, 7,49,82, 5,81,61, 7,53,78,
- 7,53,77, 0, 0, 0, 7,66,89, 7,66,90, 7,57,80, 0, 0, 0, 7,61,41, 0, 0, 0,
- 0, 0, 0, 7,63,88, 5,90,94, 5,91, 1, 7,70,23, 7,70, 8, 6,57,77, 0, 0, 0,
- 4,46,43, 7,10,55,15,50,89,15,50,88, 5,57,37, 7,21, 1, 0, 0, 0, 4,57,54,
- 7,36,45, 7,36,46, 5,74,30, 7,48,91, 0, 0, 0, 6,28,80, 6,28,81, 6,28,82,
- 6,38,12, 5,22,37, 4,22, 3, 6,38,14, 0, 0, 0, 6,38,13, 0, 0, 0, 6,38,16,
- 0, 0, 0, 6,38,15, 4,27,80, 6,48,12, 4,27,78, 6,48,10, 6,57,83, 6,48,16,
- 6,48,14, 6,48,11, 4,27,81, 4,27,79, 6,48,15, 6,48,13, 0, 0, 0, 0, 0, 0,
- 6,57,91, 5,35,94, 6,57,78, 6,57,81, 6,57,87, 6,57,85, 6,57,90, 6,57,82,
- 6,57,80, 6,57,84, 6,57,89, 6,57,88, 0, 0, 0, 0, 0, 0, 6,57,79, 6,57,86,
- 0, 0, 0, 0, 0, 0, 6,67,84, 6,67,82, 5,42,91, 6,67,75, 6,67,76, 6,67,86,
- 6,67,72, 6,67,87, 6,67,80, 4,40,10, 6,67,85, 6,67,79, 5,42,92, 6,67,81,
- 6,67,73, 5,42,93, 4,40,11, 6,67,74,15,45,20,15,45,21, 6,67,83, 0, 0, 0,
- 6,67,88, 6,67,77, 0, 0, 0, 7,10,61, 7,10,59, 7,10,68, 7,10,63, 7,10,60,
- 5,50,26, 7,10,62, 7,10,70, 7,10,66, 7,10,64, 7,10,65, 7,10,67, 7,10,58,
- 7,10,56, 5,50,25, 7,10,69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10,71, 0, 0, 0,
- 4,57,55, 4,52,53, 5,57,39, 7,21, 9, 7,21, 4, 7,21,15, 7,21, 2, 7,21,13,
- 7,21, 8, 7,21, 5, 7,21,12, 7,21,10, 7,21, 6, 5,57,38, 7,21,16, 4,52,54,
- 7,21,11, 7,21,19, 7,21, 7, 7,10,57, 7,21,20, 7,21,17, 7,21, 3, 0, 0, 0,
- 0, 0, 0, 7,21,18,15,56,77, 0, 0, 0, 0, 0, 0, 7,21,14,15,50,90, 4,57,57,
- /* plane 2, page 144 */
- 0, 255, /* first, last */
- 7,29,29, 7,29,27, 7,29,37, 7,29,28, 7,29,30, 7,29,41, 7,29,26, 7,29,34,
- 7,29,25, 7,29,24, 7,29,31, 5,63,56, 7,29,39, 7,29,33, 7,29,32, 7,29,35,
- 7,29,40, 7,21,22,15,61,53,15,61,55, 7,29,36, 7,29,38, 0, 0, 0, 7,36,48,
- 7,36,54, 7,36,50, 7,36,51, 7,36,47, 5,69,67, 7,36,55, 7,36,53, 5,69,68,
- 7,36,49, 7,36,52, 0, 0, 0, 0, 0, 0, 7,43,42, 7,43,39, 7,43,43, 7,43,40,
- 5,74,31, 7,43,46, 4,65,79, 5,74,32, 7,43,38, 7,43,44, 7,43,45, 4,65,80,
- 7,43,41, 7,43,47, 0, 0, 0, 0, 0, 0, 7,49, 3, 7,49, 7, 7,48,93, 7,49,10,
- 7,49, 4, 7,49,11, 7,49, 8, 7,48,92, 5,78,34, 7,49, 5, 7,49, 6, 5,78,35,
- 7,49, 2,15,70,84, 7,48,94, 0, 0, 0, 0, 0, 0, 7,49,12, 7,49, 9, 7,53,84,
- 4,71,72, 7,53,82, 7,53,79, 7,53,86, 7,53,80, 7,53,85, 7,53,83, 7,53,87,
- 7,49, 1,15,72,86, 7,53,81, 7,57,81, 7,57,82, 4,73,55, 7,57,85, 7,57,86,
- 7,57,84,15,74,18, 0, 0, 0, 7,57,83, 7,61,24, 7,61,25, 7,61,26, 4,75,11,
- 7,61,23, 7,61,19, 7,61,20, 7,61,21, 7,61,22, 0, 0, 0, 0, 0, 0, 7,63,92,
- 7,63,90, 7,63,91, 0, 0, 0, 7,63,89, 7,65,58,15,76,33, 0, 0, 0, 0, 0, 0,
- 7,67,94, 0, 0, 0, 7,68,75, 0, 0, 0, 0, 0, 0, 7,70,32,15,13,62, 5,16,80,
- 15,18,80, 6,38,18, 6,38,19, 4,22, 5, 6,38,17,15,25, 8,15,25, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,29,32, 5,29,30, 5,29,33, 5,29,31, 4,27,83, 6,48,19,
- 4,27,82, 6,48,18,15,32, 5, 0, 0, 0,15,32, 7,15,32, 6, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,33,56, 5,36, 5, 5,36, 2, 5,36, 1, 5,36, 4, 5,36, 3,
- 6,57,92, 0, 0, 0,15,38,11,15,38,12,15,38,13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,36, 6, 5,43, 2, 4,40,16, 5,43, 3, 5,43, 1, 5,42,94, 4,40,12,
- 4,40,15, 6,67,93, 4,40,18, 0, 0, 0, 6,67,92, 6,67,94,15,45,23, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,45,24, 6,67,90, 0, 0, 0, 6,67,89, 0, 0, 0, 7,10,74,
- 7,10,73, 5,50,37, 5,50,32, 5,50,33, 5,50,31, 5,50,30, 5,50,35, 5,50,29,
- 4,52,55, 5,50,28, 7,10,75, 7,10,76, 0, 0, 0,15,38,10,15,50,91,15,50,92,
- 15,50,93,15,50,94,15,51, 1, 0, 0, 0, 7,10,72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,50,36, 5,50,34, 5,63,57, 7,21,27, 4,52,59, 5,57,46, 5,57,43, 4,52,58,
- 7,21,24, 5,57,45, 5,57,42, 7,21,26, 5,57,41, 7,21,25, 7,21,23, 0, 0, 0,
- 5,57,40, 7,21,28, 0, 0, 0,15,56,78, 0, 0, 0, 0, 0, 0,15,56,79,15,56,81,
- 15,56,82,15,56,83,15,56,84,15,56,85, 0, 0, 0,15,56,80, 0, 0, 0,15,53,68,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,57,44, 4,57,60, 4,57,58, 4,57,59,
- 5,63,58, 4,57,65, 5,63,60, 0, 0, 0, 4,57,62, 7,29,42, 5,69,72, 7,29,43,
- /* plane 2, page 145 */
- 0, 255, /* first, last */
- 7,29,45, 5,63,59, 0, 0, 0,15,61,57, 7,29,44, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,29,46, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,61,58, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,63,61, 5,69,76,
- 5,69,79, 7,36,63, 7,36,67, 5,69,73, 7,36,62, 5,69,70, 7,36,69, 7,36,66,
- 4,62,23, 5,69,69, 5,69,71, 7,36,65, 7,36,58, 7,36,61, 5,69,78, 7,36,59,
- 0, 0, 0,15,65,49, 0, 0, 0, 7,36,68, 0, 0, 0, 7,36,57, 7,36,60, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,69,75,
- 5,69,77,15,61,56, 5,69,74, 5,74,39, 5,74,33, 5,74,37, 5,74,34, 5,74,35,
- 4,65,82, 5,74,38, 5,74,36, 5,74,41, 4,65,81, 7,43,48, 7,43,53, 7,43,49,
- 0, 0, 0, 5,74,40, 7,43,51,15,68,46, 0, 0, 0, 0, 0, 0, 7,43,55, 7,43,54,
- 7,43,52, 0, 0, 0, 7,43,50, 7,43,56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,49,14, 4,68,84, 7,49,22,
- 4,68,86, 5,78,36, 4,71,77, 4,68,88, 7,49,20, 7,49,19, 5,78,37, 4,68,90,
- 4,68,87, 4,68,89, 7,49,15, 7,49,17, 7,49,18,15,70,85, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,49,21, 7,49,23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,49,16, 7,49,13,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,71,74, 4,71,73, 7,53,88, 5,81,62,
- 5,81,63, 4,71,75, 4,71,76, 7,53,90, 5,81,64, 5,81,65, 7,53,93, 7,53,89,
- 7,53,94, 7,53,91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,84,60, 5,84,63, 4,73,57, 7,57,88, 5,84,61, 7,57,89, 7,57,90,
- 5,84,58, 0, 0, 0, 5,84,62, 5,84,59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,57,87,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,86,66, 7,61,27, 7,61,28, 0, 0, 0,
- 0, 0, 0,15,75,19, 0, 0, 0, 5,86,67, 0, 0, 0, 5,88,36, 4,76,18, 4,76,17,
- 7,63,93, 7,63,94, 7,64, 1,15,75,80, 0, 0, 0, 4,77,12, 5,89,54, 4,77,11,
- 5,89,53, 0, 0, 0, 7,65,59, 0, 0, 0, 0, 0, 0, 5,89,55, 0, 0, 0, 5,90,36,
- 7,66,91, 5,90,35, 7,66,92,15,76,57, 7,67, 3, 0, 0, 0, 0, 0, 0, 5,90,34,
- 7,68,76, 4,78,30, 7,69,43, 7,69,42, 7,69,44, 0, 0, 0, 5,91,76, 0, 0, 0,
- 0, 0, 0, 7,70,13, 7,70,46, 7,70,49, 4,78,60, 4,22, 6, 0, 0, 0, 6,48,20,
- 15,38,14,15,38,15,15,38,16, 6,57,93, 4,40,22, 7,12,36, 7,21,29, 5,58,84,
- 7,36,70,15,68,47, 0, 0, 0, 5,81,66,15,75,81, 0, 0, 0, 6,28,84, 6,14,41,
- 6,28,83, 4,22, 7, 6,38,20, 4,22, 9,15,25,13, 6,48,21, 5,29,34, 4,27,85,
- 6,48,23, 6,48,22,15,32, 8,15,32, 9, 0, 0, 0, 6,58, 1, 6,57,94,15,45,27,
- 4,46,45, 7,10,78, 7,10,77, 0, 0, 0, 7,21,30, 0, 0, 0, 7,49,24, 7,49,25,
- /* plane 2, page 146 */
- 3, 255, /* first, last */
- 6,48,25, 6,48,26, 6,48,24, 4,33,57, 4,33,59,
- 5,36, 8, 5,36, 7, 6,58, 3, 0, 0, 0, 6,58, 2, 6,68, 2, 5,43, 5, 4,40,25,
- 0, 0, 0, 6,68, 1, 5,43, 4,15,45,28, 0, 0, 0, 0, 0, 0, 6,68, 3, 0, 0, 0,
- 0, 0, 0, 4,46,46, 5,50,38, 5,50,40, 5,50,39, 7,10,80, 0, 0, 0, 7,10,79,
- 15,56,87, 5,57,48, 5,57,47, 5,57,52, 5,57,49, 5,57,50, 5,57,51,15,56,86,
- 7,21,31, 0, 0, 0, 0, 0, 0, 7,29,47, 5,63,63, 5,63,64, 5,63,66, 5,63,65,
- 15,61,59, 7,29,49, 5,69,82, 7,36,71, 5,69,80, 5,69,81, 4,62,25, 0, 0, 0,
- 5,74,43, 5,74,42, 0, 0, 0, 5,78,39, 5,78,38, 7,45,48, 7,49,26, 0, 0, 0,
- 5,76,38, 5,81,68, 7,54, 2, 5,81,70, 5,81,69,15,72,89, 0, 0, 0, 7,54, 1,
- 7,54, 4, 7,54, 3, 7,57,91, 7,57,92, 7,61,29, 5,86,68,15,75,20, 0, 0, 0,
- 0, 0, 0, 7,64, 2, 0, 0, 0, 0, 0, 0, 5,90,37, 0, 0, 0, 7,68, 1, 0, 0, 0,
- 0, 0, 0, 7,68,78, 7,68,77,15,25,14, 0, 0, 0, 5,29,35, 4,27,88, 6,48,27,
- 0, 0, 0, 5,36,12, 5,36,11, 6,58, 6, 6,58, 9, 5,36,10, 6,58, 7, 5,36, 9,
- 6,58, 5, 6,58,11, 6,58,10, 4,33,60, 4,33,62, 0, 0, 0,15,38,17, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,43, 7, 4,40,28, 5,43, 6, 6,68, 7, 6,68, 5, 5,43, 8, 5,43, 9, 4,40,30,
- 5,43,12, 5,43,10, 5,43,13, 5,43,11, 6,68, 9, 4,40,31, 0, 0, 0, 0, 0, 0,
- 6,68, 8, 6,68, 4, 0, 0, 0, 6,68, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,10,83, 5,50,41, 7,10,87, 7,10,86, 4,46,49, 7,10,89, 5,50,42, 4,46,50,
- 7,10,85, 4,46,51, 5,50,45, 4,46,48, 5,50,44, 5,50,46, 7,10,84, 5,50,43,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10,88, 7,10,82, 0, 0, 0,
- 0, 0, 0, 7,21,36, 5,57,53, 5,57,56, 4,52,70, 4,52,62, 4,52,69, 5,57,54,
- 5,57,55, 0, 0, 0, 7,21,35, 7,21,39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,21,32,
- 7,21,33, 7,21,37, 0, 0, 0, 0, 0, 0, 7,21,38, 0, 0, 0, 0, 0, 0, 7,29,56,
- 7,29,58, 5,63,67, 5,63,73, 4,57,70, 5,63,69, 7,29,51, 4,57,71, 7,21,34,
- 5,63,77, 7,29,55, 4,57,69, 7,29,57, 5,63,71, 5,63,74, 7,29,53, 5,63,75,
- 7,29,59, 7,21,40, 5,63,72, 7,29,52, 7,29,60,15,61,60, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,29,50, 0, 0, 0, 5,63,76, 5,63,70, 4,62,36,
- 5,69,92, 5,69,84, 4,62,26, 5,69,86, 5,70, 2, 7,36,74, 7,36,72, 4,62,31,
- 5,69,87, 4,62,32, 7,36,77, 7,36,80, 5,70, 1, 7,36,79, 4,62,29, 5,70, 3,
- 7,36,81, 7,36,82, 7,36,78,15,65,51,15,65,52, 5,63,68, 7,36,76, 0, 0, 0,
- 7,36,75, 5,69,88, 5,70, 4, 0, 0, 0, 7,36,73, 5,69,85, 5,69,90, 5,69,89,
- /* plane 2, page 147 */
- 0, 251, /* first, last */
- 5,69,93, 0, 0, 0, 0, 0, 0, 4,65,90, 5,74,49, 5,74,52, 5,74,47, 4,65,89,
- 5,74,45, 7,43,58, 5,74,53, 7,43,67, 5,74,46, 4,65,88, 7,43,65, 4,65,86,
- 7,43,62, 4,65,85, 7,43,66, 5,74,48, 7,43,64,15,68,48,15,68,50,15,68,51,
- 0, 0, 0, 0, 0, 0, 7,43,59, 7,43,60, 0, 0, 0, 5,74,51, 0, 0, 0, 0, 0, 0,
- 5,74,50, 7,43,57, 5,74,44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,69, 4, 5,78,46,
- 4,68,93, 5,78,47, 5,78,42, 7,49,27, 5,78,40, 7,49,29, 4,69, 1, 5,78,44,
- 4,69, 2, 4,69, 5, 5,78,45, 7,49,33, 0, 0, 0, 0, 0, 0, 7,49,28,15,70,88,
- 0, 0, 0, 7,49,30, 7,49,35, 7,49,32, 0, 0, 0, 0, 0, 0, 5,78,43, 7,49,31,
- 5,78,48, 4,69, 6, 7,49,34, 5,81,77, 7,54, 8, 4,71,79, 7,54,10, 7,54,11,
- 0, 0, 0, 5,81,74, 5,81,75, 5,81,76, 0, 0, 0, 0, 0, 0, 5,81,71, 5,81,72,
- 0, 0, 0, 7,54, 9,15,70,87, 5,84,64, 7,58, 6, 7,57,93, 4,73,61, 5,84,65,
- 7,58, 5, 7,58, 3, 7,57,94, 7,58, 4, 5,84,67, 5,84,68, 7,58, 1, 7,58, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,84,69, 5,86,69, 5,86,72, 5,86,70,
- 7,61,30, 5,86,73, 5,86,71, 7,61,33, 0, 0, 0, 0, 0, 0, 7,61,31, 7,61,34,
- 0, 0, 0, 7,61,32, 5,88,38, 5,89,56, 7,64, 3, 5,88,37, 0, 0, 0, 5,88,39,
- 7,65,62, 7,65,60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,65,61, 5,90,38,
- 7,66,94, 7,67, 2, 5,89,57, 0, 0, 0, 7,67, 1, 7,66,93, 0, 0, 0, 5,91, 2,
- 7,68,80, 7,68,79, 5,91,44, 7,69,73, 5,92,21, 7,70,14, 7,70,25, 7,70,24,
- 0, 0, 0, 5,92,44, 5,29,36, 4,33,64, 4,33,66, 6,58,12, 0, 0, 0, 5,36,13,
- 6,68,11, 5,43,15, 5,43,17, 5,43,14, 5,43,16, 6,68,10,15,45,29, 0, 0, 0,
- 0, 0, 0, 5,43,18, 0, 0, 0, 0, 0, 0, 4,46,53, 5,50,48, 4,46,52, 4,46,54,
- 7,10,91, 7,10,90, 7,10,92, 7,10,93, 7,10,94, 5,50,47, 5,50,49, 5,57,57,
- 7,21,41, 7,21,42, 5,57,60, 5,57,61, 0, 0, 0, 5,57,59, 7,21,43, 5,57,58,
- 4,57,73, 7,29,62, 5,63,78, 7,29,63, 4,57,76, 4,57,74, 5,63,79, 5,63,80,
- 15,61,61, 7,29,61, 0, 0, 0, 7,29,64, 0, 0, 0, 7,36,86, 7,36,83, 4,62,38,
- 7,36,84, 7,29,65, 5,70, 5, 7,36,88, 0, 0, 0, 0, 0, 0, 7,36,85, 7,43,68,
- 7,43,70, 7,43,73, 7,43,69, 7,43,72, 7,43,71, 7,49,36, 5,74,54, 5,74,55,
- 7,49,37, 7,49,38, 4,69, 8,15,70,89, 0, 0, 0, 0, 0, 0, 5,78,50, 5,78,49,
- 5,81,78, 5,81,80, 5,81,82, 4,71,84, 7,54,12, 5,81,79, 5,81,81, 0, 0, 0,
- 7,58, 7, 4,73,63, 5,84,70, 7,58, 8, 7,58, 9, 5,84,71, 7,61,35, 7,61,38,
- 7,61,37, 7,61,36, 4,76,21, 0, 0, 0, 7,65,63, 5,90,39, 7,68, 4, 7,68, 2,
- 7,68, 3, 5,91,45, 5,91,77, 5,92, 2,
- /* plane 2, page 148 */
- 1, 254, /* first, last */
- 5,36,14, 6,58,13, 5,50,50, 7,21,44, 4,57,77, 0, 0, 0, 7,29,66,
- 0, 0, 0, 7,43,76, 7,49,40, 4,69,11, 5,81,83, 7,49,39, 0, 0, 0, 7,54,13,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,58,10, 7,61,40, 7,61,39, 7,65,64,15,32,12,
- 5,36,16, 5,36,15, 5,43,19, 4,40,37, 5,43,20, 0, 0, 0, 5,50,58, 7,11, 1,
- 5,50,52, 5,50,55, 7,11, 2, 5,50,53, 5,50,54, 5,50,57, 5,50,51, 4,52,75,
- 5,50,56, 0, 0, 0,15,56,89, 5,57,62, 7,21,45, 7,29,67, 5,63,81, 0, 0, 0,
- 5,63,82, 5,70, 6, 5,70, 7, 0, 0, 0, 5,70, 8, 4,66, 1, 5,74,56, 5,74,57,
- 0, 0, 0, 7,49,41, 7,49,42, 5,78,52, 5,78,51, 0, 0, 0, 5,78,53, 7,54,14,
- 5,81,84, 5,70, 9, 5,84,72, 5,84,73, 0, 0, 0, 4,73,65,15,74,19, 7,61,42,
- 4,76,22, 5,91, 3, 5,92,31, 6,20,91, 6,38,21, 5,22,38, 0, 0, 0, 0, 0, 0,
- 5,29,42, 5,29,40, 5,29,41, 5,29,38, 4,27,93, 5,29,37, 4,27,92, 6,48,28,
- 4,27,90, 4,33,76, 5,36,26, 4,33,75, 5,36,17, 5,36,25, 6,58,15, 4,33,73,
- 5,43,27, 5,36,23, 4,33,70, 4,33,71, 4,33,74, 6,58,18, 5,36,22, 5,36,18,
- 6,58,16, 6,58,17, 6,58,14,15,38,19, 5,36,19, 0, 0, 0, 5,36,24, 0, 0, 0,
- 5,43,29, 6,68,17, 6,68,18, 5,43,23, 5,43,36, 5,43,24, 4,40,41, 4,40,40,
- 5,43,26, 5,43,22, 4,40,47, 5,43,34, 5,43,25, 7,11,11, 5,43,35, 0, 0, 0,
- 6,68,21, 6,68,19, 6,68,14, 5,43,28, 5,43,33,15,45,30, 6,68,13, 5,43,32,
- 6,68,12, 6,68,22, 5,43,21, 6,68,15, 6,68,20, 0, 0, 0, 0, 0, 0, 5,50,61,
- 4,46,59, 7,11, 5, 7,11,16, 5,50,60, 5,50,59, 4,46,56, 7,11, 4, 7,11,10,
- 4,40,42, 7,11,14, 5,50,62, 4,46,62, 7,11,13, 7,11, 9, 7,21,47, 7,11,12,
- 15,51, 3,15,51, 4, 7,11, 7, 0, 0, 0, 7,11, 8, 0, 0, 0, 7,11,15, 7,11,17,
- 0, 0, 0, 0, 0, 0, 7,11, 3, 7,11, 6, 0, 0, 0, 5,50,63, 4,52,76, 5,57,65,
- 4,52,78, 5,57,73, 7,21,56, 5,57,72, 5,57,70, 7,21,57, 7,21,55, 5,57,69,
- 5,57,67, 7,21,59, 7,21,48, 5,57,74, 5,57,66, 5,57,75, 5,57,68, 5,57,71,
- 4,52,81, 7,21,46, 5,57,64, 7,21,58, 4,52,82, 7,21,54, 7,21,60, 0, 0, 0,
- 15,45,32,15,56,90,15,56,92,15,56,93,15,57, 1,15,57, 2,15,57, 3, 0, 0, 0,
- 0, 0, 0, 7,21,50, 0, 0, 0, 7,21,51, 7,21,52, 7,21,53, 5,57,76, 0, 0, 0,
- 5,57,63,15,56,94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,57,77, 4,57,85, 4,57,81,
- 4,57,78, 7,29,69, 5,63,87, 4,57,89, 5,63,88, 4,57,84, 5,63,86, 5,63,83,
- 5,63,85, 4,57,79, 5,63,91, 7,29,74, 4,57,82, 7,29,76, 5,63,84, 7,29,71,
- 4,57,88, 7,29,75,15,61,62,15,61,63,15,61,64,15,61,65,15,61,66,15,61,67,
- 7,29,68, 0, 0, 0, 7,29,70, 5,63,89, 5,63,90, 7,29,72, 7,29,77,
- /* plane 2, page 149 */
- 0, 251, /* first, last */
- 5,70,10, 4,62,42, 5,70,16, 5,70,14, 4,66, 4, 5,70,13, 5,70,11, 7,36,91,
- 5,70,12, 4,62,40, 5,70,17, 5,70,15, 7,36,92,15,65,53,15,65,54,15,65,55,
- 15,65,56, 0, 0, 0, 0, 0, 0, 7,36,89, 7,36,90, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,43,86, 5,74,61, 7,43,80, 7,43,77, 5,74,62, 4,66,14, 7,43,82,
- 5,74,60, 5,78,54, 5,74,59, 5,74,58, 7,43,84, 7,43,79, 4,66,10, 7,43,78,
- 7,43,85, 7,43,81, 0, 0, 0, 0, 0, 0,15,68,52,15,68,53, 0, 0, 0, 7,43,87,
- 7,43,83, 0, 0, 0, 0, 0, 0, 4,69,14, 4,69,13, 5,78,59, 5,78,57, 7,49,46,
- 5,78,58, 4,69,18, 7,49,45, 4,69,19, 5,78,56, 7,49,43, 7,49,47,15,70,90,
- 4,69,20, 0, 0, 0, 7,49,48, 0, 0, 0, 0, 0, 0, 7,49,44, 5,78,55, 0, 0, 0,
- 7,48,44, 5,81,85, 5,81,86, 7,54,15, 5,81,88, 7,54,24, 7,58,17, 4,71,90,
- 4,71,88, 7,54,19, 7,54,17, 7,54,22, 5,81,87, 5,81,89, 5,81,90, 7,54,16,
- 7,54,20,15,72,90,15,72,91,15,72,92, 0, 0, 0, 7,54,23, 7,54,21, 7,58,16,
- 5,84,76, 5,84,75, 7,58,13, 7,58,15, 5,84,74,15,74,20, 7,58,11, 0, 0, 0,
- 0, 0, 0, 7,58,14, 0, 0, 0, 7,58,12, 7,61,50, 7,61,49, 7,61,47, 5,86,76,
- 0, 0, 0, 5,86,77, 4,75,14, 5,86,74, 7,61,45, 4,75,15, 7,61,46,15,75,21,
- 7,61,48, 0, 0, 0, 7,61,44, 0, 0, 0, 7,61,43, 0, 0, 0, 4,76,24, 7,64, 4,
- 5,86,75, 4,76,23, 0, 0, 0,15,75,82, 7,64, 5, 0, 0, 0, 4,77,14, 5,89,58,
- 0, 0, 0, 0, 0, 0, 5,90,40, 7,67, 4, 5,90,41, 7,67, 5, 7,67, 6, 4,78, 3,
- 7,68, 5, 0, 0, 0, 0, 0, 0, 7,69,45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,38,22, 6,48,31, 4,28, 1, 6,48,29, 5,29,43, 0, 0, 0,15,32,14,
- 0, 0, 0, 6,48,30, 5,36,27, 5,36,32, 4,33,79, 5,36,29, 5,36,30, 6,58,20,
- 6,58,22, 5,36,28, 0, 0, 0, 0, 0, 0, 4,33,80, 0, 0, 0, 6,58,21, 0, 0, 0,
- 6,51,19, 0, 0, 0, 5,36,31, 6,58,23, 4,40,56, 5,43,40, 4,40,53, 5,43,39,
- 5,43,38, 5,43,37, 4,40,51, 6,68,23, 4,40,50, 6,68,27, 6,68,25, 0, 0, 0,
- 0, 0, 0, 6,68,24, 0, 0, 0, 0, 0, 0, 4,46,63, 5,50,66, 4,46,66, 7,11,20,
- 7,11,19, 7,11,18, 5,50,65, 7,11,21,15,51, 5,15,51, 6, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,57,79, 5,57,87, 5,57,80, 7,21,61, 7,21,64,
- 5,57,78, 5,57,83, 5,57,86, 7,21,63, 0, 0, 0, 7,21,65, 5,57,84, 5,57,85,
- 7,21,62,15,57, 5, 5,57,82, 5,57,81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,29,81, 4,58, 5, 5,64, 5, 5,64, 6, 4,57,91, 5,63,92, 7,29,80, 4,58, 4,
- 5,70,18, 5,64, 2, 4,58, 3, 5,63,94, 5,64, 1, 5,64, 4, 5,63,93, 5,64, 3,
- 7,29,78, 0, 0, 0,15,61,68,15,61,69,
- /* plane 2, page 150 */
- 1, 255, /* first, last */
- 7,29,82, 0, 0, 0, 7,29,79, 0, 0, 0, 4,62,51, 7,37, 2, 7,37, 4,
- 5,70,23, 7,37, 6, 5,70,20, 5,70,24, 4,62,52, 5,70,26, 4,66,17, 5,70,21,
- 7,37, 5, 5,70,22, 5,70,25, 5,70,19,15,65,57, 7,37, 8, 7,37, 3, 7,37, 1,
- 0, 0, 0, 7,37, 7, 7,36,93, 0, 0, 0, 5,74,63, 4,66,19, 4,66,20, 4,66,21,
- 5,74,64, 7,43,89,15,68,54,15,68,55, 7,43,88, 7,43,90, 7,43,91, 7,43,92,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,78,62, 5,78,65, 5,78,64,
- 4,69,21, 5,78,60, 4,69,23, 5,78,63,15,70,91, 5,78,66, 5,78,61, 4,69,24,
- 7,54,32, 4,71,93, 4,72, 1, 5,81,91, 7,54,25, 5,81,92, 7,54,28, 7,54,26,
- 15,72,93, 7,54,31, 7,54,33, 7,54,34, 7,54,29, 7,54,30, 7,54,27, 0, 0, 0,
- 7,58,18,15,74,21, 7,58,19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,61,51, 0, 0, 0,
- 0, 0, 0, 5,88,41, 4,76,27, 7,64, 6, 7,64, 7, 0, 0, 0, 5,89,59, 7,65,65,
- 0, 0, 0, 5,89,60, 4,77,15, 4,77,70, 5,90,42, 5,91, 4, 7,68, 6,15,77, 4,
- 0, 0, 0, 5,92,39, 0, 0, 0, 0, 0, 0, 7,70,53, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,28,85, 5,32,25, 0, 0, 0, 7,11,22, 0, 0, 0, 7,43,93, 5,74,65,
- 0, 0, 0, 0, 0, 0, 7,54,35, 0, 0, 0, 4,73,68, 5,84,77, 0, 0, 0, 0, 0, 0,
- 6,20,92, 6,20,93, 6,21, 2, 6,20,94, 5,16,81, 6,28,86, 6,28,88, 5,29,44,
- 5,22,42, 5,22,39, 6,38,26, 6,38,24, 5,22,41, 6,38,25, 6,38,27, 6,48,32,
- 0, 0, 0, 0, 0, 0, 5,22,40, 6,48,33, 0, 0, 0, 6,48,38, 4,28, 2, 5,29,45,
- 6,48,36, 6,48,37, 4,28, 6, 5,29,46, 6,58,24, 5,29,47, 6,48,34, 0, 0, 0,
- 15,32,15, 0, 0, 0, 0, 0, 0, 6,48,35, 4,28, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6,58,34, 6,58,25, 5,36,34, 5,36,36, 5,36,33, 5,36,39, 4,33,86, 5,36,35,
- 6,68,35, 5,36,37, 6,58,28, 6,58,27, 6,68,29, 4,33,83, 6,58,26, 6,68,30,
- 6,58,30, 5,36,40, 6,58,33, 5,50,67, 0, 0, 0,15,38,23, 0, 0, 0, 6,58,32,
- 6,58,31, 6,68,28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,33,88, 5,36,38, 0, 0, 0,
- 6,68,31, 7,11,23, 6,68,36, 5,43,45, 5,43,41, 6,68,37, 5,43,42, 4,40,58,
- 6,68,34, 5,43,43, 7,11,25, 6,68,33, 0, 0, 0, 0, 0, 0,15,38,22,15,51, 8,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,11,26, 0, 0, 0, 4,46,75, 7,11,32, 4,46,74,
- 5,50,73, 5,50,68, 5,57,89, 4,46,72, 5,50,70, 5,50,75, 5,50,72, 4,46,76,
- 5,50,74, 7,11,28, 5,50,69, 7,11,27, 7,29,83, 5,50,71, 7,11,30, 7,11,29,
- 0, 0, 0,15,51, 7, 0, 0, 0, 5,57,88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,11,31, 5,58, 3, 4,58, 6, 5,58, 4, 4,52,91, 7,21,70, 7,21,74,
- /* plane 2, page 151 */
- 0, 248, /* first, last */
- 5,64, 7, 5,57,91, 7,21,73, 5,57,94, 7,21,71, 5,57,92, 7,21,79, 4,52,89,
- 7,21,75, 7,21,80, 5,58, 5, 7,21,72, 7,21,67, 5,57,90, 7,21,69, 7,21,68,
- 7,21,76, 0, 0, 0, 5,64, 9, 7,21,78, 7,29,85, 7,21,66, 5,58, 2, 7,21,77,
- 0, 0, 0, 0, 0, 0, 5,57,93,15,57, 6,15,57, 7,15,57, 8,15,57, 9, 5,58, 1,
- 0, 0, 0, 0, 0, 0, 7,29,84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,64, 8, 5,64,20, 0, 0, 0, 7,29,87,
- 5,64,13, 5,64,15, 5,64,19, 5,64,11, 7,29,86, 5,64,18, 5,64,21, 4,58,11,
- 5,64,22, 7,29,88, 7,29,93, 7,37,10, 7,29,90, 5,64,10, 7,37,11, 7,30, 1,
- 5,64,14, 7,29,89, 7,29,94, 0, 0, 0, 0, 0, 0,15,61,70,15,61,71, 0, 0, 0,
- 0, 0, 0, 7,29,91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,64,16,
- 7,29,92, 7,37,15, 5,70,31, 5,70,27, 0, 0, 0, 4,62,54, 4,62,60, 5,64,24,
- 4,62,61, 5,70,29, 5,64,23, 5,70,28, 7,37,14, 7,37,13, 7,43,94, 4,62,62,
- 5,70,30, 7,44, 2, 0, 0, 0, 7,49,52, 7,37,12, 0, 0, 0, 7,37, 9, 0, 0, 0,
- 7,37,17,15,65,58,15,65,59, 0, 0, 0, 7,44, 5, 7,44, 1, 0, 0, 0, 0, 0, 0,
- 4,62,53, 7,37,18, 0, 0, 0, 0, 0, 0, 7,37,16, 5,74,68, 7,44, 3, 5,74,66,
- 4,66,27, 4,69,29, 7,49,51, 5,74,73, 5,74,70, 5,74,72, 5,74,74, 7,49,49,
- 4,66,23, 5,74,71, 5,64,25, 5,74,67, 7,49,50, 4,66,25, 7,49,56, 7,44, 4,
- 7,49,55, 4,66,26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,68,56,15,68,57,
- 0, 0, 0, 5,74,69, 7,49,54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,74,75, 4,69,30,
- 7,49,53, 7,49,57, 7,49,63, 7,54,36, 5,81,93, 7,49,64, 5,78,69, 4,69,31,
- 5,81,94, 5,78,68, 7,49,62, 7,49,66, 5,78,67, 7,44, 7, 7,49,65, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,49,59, 0, 0, 0, 0, 0, 0, 7,49,60, 0, 0, 0, 7,49,61,
- 0, 0, 0, 0, 0, 0, 7,54,37, 0, 0, 0, 7,49,67, 7,49,58, 5,82, 8, 5,82, 2,
- 7,54,38, 4,72, 5, 5,82, 4, 5,82, 1, 7,54,39, 5,82,11, 7,54,40, 5,82,10,
- 5,82, 3, 5,82, 7, 5,82, 5, 7,54,41, 5,82, 6, 5,82, 9, 0, 0, 0,15,72,94,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,73,70, 5,84,78, 5,84,79, 7,58,23, 7,61,52,
- 7,58,22, 5,84,80, 0, 0, 0, 7,58,21, 0, 0, 0,15,74,23, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,58,20, 5,86,78, 7,61,54, 5,86,79, 5,86,80,
- 5,88,42, 0, 0, 0, 7,61,53, 0, 0, 0, 0, 0, 0, 5,88,43, 5,88,44, 4,76,28,
- 7,64, 8, 7,64,10, 0, 0, 0, 0, 0, 0, 7,64, 9, 0, 0, 0, 5,89,61, 7,68, 7,
- 5,91, 5,
- /* plane 2, page 152 */
- 16, 255, /* first, last */
- 6,28,89, 6,38,28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,68,38, 7,11,33, 6,68,40,
- 0, 0, 0, 6,68,39, 5,50,76, 4,53, 4, 4,53, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,30, 2, 7,30, 3, 7,21,81, 7,21,83, 7,21,82, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,44, 9, 7,44, 8, 7,37,19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,45,83, 0, 0, 0, 7,49,68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,64,11,
- 0, 0, 0, 4,78, 6,15,18,81, 4,33,92, 6,58,35, 0, 0, 0, 5,39,52, 6,68,41,
- 6,68,42,15,45,33,15,51, 9, 0, 0, 0, 6,68,43, 7,11,34,15,51,10,15,57,10,
- 7,21,84,15,61,72, 7,30, 4, 0, 0, 0, 7,37,22, 5,70,33, 5,70,32, 0, 0, 0,
- 5,70,34, 7,37,21, 7,37,20, 5,74,76, 4,66,29, 4,66,30, 0, 0, 0, 0, 0, 0,
- 7,44,10, 0, 0, 0, 7,49,69,15,70,92, 0, 0, 0, 5,82,12,15,73, 1, 0, 0, 0,
- 0, 0, 0, 7,54,42, 0, 0, 0, 0, 0, 0, 7,61,55, 5,90,43, 0, 0, 0, 5,22,43,
- 5,22,44, 5,29,48, 6,48,40, 0, 0, 0, 0, 0, 0,15,32,17, 6,48,39, 0, 0, 0,
- 5,36,41, 6,58,37, 6,58,36, 6,58,39, 0, 0, 0, 6,58,38, 0, 0, 0, 5,43,49,
- 6,68,45, 6,68,46, 5,43,48, 4,40,65, 6,68,44, 6,68,50, 5,43,47, 7,11,35,
- 0, 0, 0,15,45,34,15,45,35,15,45,36,15,45,37, 0, 0, 0, 7,11,38, 0, 0, 0,
- 6,68,47, 6,68,49, 0, 0, 0, 0, 0, 0, 5,43,50, 7,11,42, 5,50,82, 7,11,46,
- 7,11,39, 5,58,18, 5,50,84, 5,50,87, 5,50,77, 5,50,80, 5,50,78, 5,50,85,
- 7,11,36, 5,50,86, 7,11,40, 5,50,83, 7,11,43, 7,11,41, 5,50,79, 7,11,37,
- 7,11,44, 5,50,81, 0, 0, 0,15,51,11, 0, 0, 0,15,51,12,15,51,13, 7,11,45,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,21,90, 4,53,12, 7,21,89,
- 5,58,15, 4,53,10, 4,53, 7, 4,53,11, 4,53, 8, 7,21,85, 5,58, 9, 4,53, 9,
- 5,58,16, 5,58,13, 7,22, 4, 5,58,19, 5,58, 7, 5,58,17, 5,58,20, 5,58,11,
- 7,21,92, 7,21,91, 7,22, 6, 7,22, 1, 7,21,88, 7,22, 3, 0, 0, 0, 5,58,10,
- 7,22, 2,15,57,12, 5,58, 8, 0, 0, 0, 7,21,93, 7,21,94, 7,22, 7, 0, 0, 0,
- 7,22, 5,15,57,11, 7,21,86, 0, 0, 0, 0, 0, 0, 7,21,87, 5,64,26, 7,30,12,
- 5,64,27, 7,30, 6, 4,58,15, 7,30, 7, 7,30, 5, 5,64,28, 4,58,12, 7,30,10,
- 7,30,11, 5,43,51, 7,30, 8, 5,64,30, 5,64,29, 0, 0, 0, 0, 0, 0,15,61,73,
- 15,61,74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,37,28, 5,70,44, 5,70,43,
- 5,70,39, 4,62,68, 5,70,41, 5,70,40, 4,62,65, 5,70,37, 5,70,46, 4,62,77,
- 4,62,73, 4,62,74, 4,62,70, 5,70,47, 5,70,35, 4,62,76, 7,37,27, 7,37,26,
- /* plane 2, page 153 */
- 0, 229, /* first, last */
- 7,37,23, 5,70,42, 0, 0, 0, 0, 0, 0,15,65,61, 0, 0, 0,15,65,62,15,65,64,
- 0, 0, 0, 4,62,75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,65,60,
- 7,37,24, 0, 0, 0, 5,70,36, 7,37,25, 0, 0, 0, 0, 0, 0, 5,70,45, 5,74,77,
- 5,74,83, 5,74,79, 4,66,35, 7,44,17, 5,70,48, 7,44,12, 5,70,38, 5,74,81,
- 5,74,80, 5,74,84, 7,44,11, 5,74,82, 5,74,86, 4,66,34, 5,74,87, 7,44,18,
- 7,44,20, 5,74,85, 7,44,19, 7,44,13, 7,44,14, 7,44,15,15,68,59, 0, 0, 0,
- 15,68,60,15,68,61, 0, 0, 0, 7,44,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,55,22,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,44,21, 0, 0, 0, 4,69,37, 7,49,74, 7,49,73,
- 5,78,78, 5,78,73, 5,78,75, 5,78,72, 4,69,34, 5,78,80,15,70,93, 4,69,35,
- 4,69,36, 4,69,40, 5,78,81, 5,78,82, 5,78,71, 7,49,72, 4,72, 6, 5,78,74,
- 5,78,79, 5,78,76, 7,49,75, 7,49,79, 7,49,80, 0, 0, 0, 7,49,81, 7,49,77,
- 7,49,76, 0, 0, 0,15,70,94,15,71, 1, 7,49,71, 0, 0, 0, 7,49,78, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,50, 7, 0, 0, 0, 7,49,70, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,82,15, 5,82,14, 5,82,17, 4,72, 7, 5,82,18,
- 5,82,16, 4,72,12, 7,54,45, 7,54,44, 7,54,46, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,54,43,15,73, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,54,47, 7,54,48, 5,84,88, 7,58,29, 5,82,20, 7,58,33, 7,58,24, 5,84,81,
- 7,58,27, 5,82,19, 5,84,84, 5,84,87, 5,84,83, 7,58,32, 4,73,76, 5,84,85,
- 7,58,25, 7,58,26, 0, 0, 0, 0, 0, 0, 7,58,28,15,74,24,15,74,25,15,74,26,
- 0, 0, 0, 5,84,82, 0, 0, 0, 5,84,89, 7,58,31, 0, 0, 0, 7,61,63, 7,61,61,
- 5,86,81, 5,88,46, 7,61,60, 7,61,57, 5,86,82, 7,61,58, 7,61,62, 7,61,59,
- 7,61,64, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,75,24,15,75,25, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,61,56, 0, 0, 0, 0, 0, 0, 5,88,47, 7,64,17,
- 7,64,20, 5,88,45, 7,64,19, 7,64,22, 7,64,21, 7,64,15, 7,64,16, 7,64,12,
- 7,64,18, 0, 0, 0, 5,89,66, 7,65,67, 5,89,67, 5,89,63, 4,77,17, 5,89,64,
- 7,65,66, 5,89,62, 5,89,65, 4,77,18, 0, 0, 0, 0, 0, 0, 7,65,68, 5,90,44,
- 5,90,45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,78, 7, 7,68, 9, 7,68, 8, 0, 0, 0,
- 4,78,32, 7,68,82, 7,68,83, 7,68,81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,69,46, 5,92, 3, 7,69,74, 7,69,90, 7,69,91, 7,70,36,
- /* plane 2, page 154 */
- 17, 255, /* first, last */
- 5,29,49, 4,28, 7, 0, 0, 0, 0, 0, 0, 6,58,41, 6,58,42, 6,58,40,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,58,43, 4,40,67, 4,40,69, 5,43,53, 6,68,56,
- 5,43,52, 4,40,68, 6,68,54, 6,68,51, 6,68,52, 0, 0, 0, 6,68,53, 6,68,55,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,46,82, 4,46,81, 5,50,90, 5,50,89,
- 7,11,50, 7,22,12, 5,50,88, 5,50,91, 4,46,87, 7,11,48, 7,11,52, 7,11,49,
- 4,46,88, 0, 0, 0, 7,11,51, 0, 0, 0, 0, 0, 0, 5,58,22, 5,58,21, 4,53,19,
- 7,22,11, 7,11,47, 7,22,10, 7,22, 9, 0, 0, 0, 0, 0, 0, 7,30,14, 0, 0, 0,
- 0, 0, 0, 4,58,20, 7,30,18, 4,58,18, 7,30,19, 5,64,31, 7,30,17, 7,30,13,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,30,15, 0, 0, 0, 7,30,16, 0, 0, 0, 5,70,57,
- 7,37,30, 4,62,79, 7,37,29, 5,70,55, 7,37,31, 5,70,50, 5,74,88, 5,70,53,
- 5,70,51, 5,70,54, 5,70,56, 7,30,20, 0, 0, 0, 0, 0, 0, 5,70,52, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,44,27, 5,74,90, 5,74,89,
- 7,44,26, 7,44,23, 5,74,92, 5,74,93, 5,74,91, 7,44,29, 7,44,30, 0, 0, 0,
- 7,44,25, 7,44,24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,44,28, 7,44,22, 0, 0, 0,
- 4,69,42, 5,78,85, 5,78,84, 5,78,83, 7,49,83, 7,49,84, 7,49,85, 0, 0, 0,
- 0, 0, 0, 4,72,15, 5,82,22, 7,54,55, 4,72,14, 5,82,21, 5,82,23, 7,54,51,
- 7,54,52, 5,82,24, 7,54,53,15,73, 3, 7,54,54, 7,54,50, 0, 0, 0, 4,73,77,
- 7,58,34, 4,73,80, 7,58,35, 4,73,79, 7,58,36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,61,69, 7,61,70, 5,86,83, 4,75,22, 5,86,85, 4,75,23, 7,61,66, 5,86,84,
- 7,61,71, 7,61,65, 7,61,67, 7,61,68, 0, 0, 0, 4,76,31, 5,88,48, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,77,20, 7,65,69, 0, 0, 0, 0, 0, 0,15,75,26, 7,67, 7,
- 5,90,46, 7,67, 8, 0, 0, 0, 7,68,10, 7,68,84, 0, 0, 0, 5,91,78, 4,34, 3,
- 4,40,70, 5,38,68, 5,43,54, 6,68,58,15,45,38,15,45,39,15,45,40, 0, 0, 0,
- 0, 0, 0, 6,68,57, 7,11,54,15,51,14,15,51,15, 0, 0, 0, 7,22,14, 7,22,13,
- 15,57,13,15,57,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,58,22, 0, 0, 0, 5,64,32,
- 15,61,75,15,61,76, 7,37,32, 0, 0, 0,15,65,65,15,65,66, 7,44,31,15,68,63,
- 5,78,86,15,71, 2,15,71, 3,15,71, 4,15,71, 5, 4,72,17, 7,54,56, 7,58,37,
- 7,61,72, 7,61,73, 7,61,74, 7,64,23,15,75,83, 7,65,70, 7,65,71, 7,67, 9,
- 7,68,11, 4,78, 8, 0, 0, 0, 7,69,92, 6,48,41, 0, 0, 0, 0, 0, 0, 6,48,42,
- 0, 0, 0, 6,58,45, 6,58,44, 0, 0, 0,15,38,26,15,32,73, 0, 0, 0, 4,40,72,
- /* plane 2, page 155 */
- 0, 255, /* first, last */
- 5,43,56, 6,68,64, 0, 0, 0, 6,68,63, 6,68,61, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6,68,65, 6,68,59, 6,68,60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,43,55,
- 5,43,58, 5,50,94, 7,11,55, 7,11,58, 4,46,94, 7,11,56, 5,51, 4, 4,47, 2,
- 7,11,59, 5,51, 3, 4,46,92, 4,46,93, 5,50,92, 4,46,90, 5,50,93, 5,51, 2,
- 5,51, 1, 7,11,60, 7,11,57, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,51,16,15,51,17,
- 15,51,18,15,51,19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,22,15, 4,53,23, 7,22,17, 5,58,26, 7,22,16, 4,53,25, 4,53,20, 4,53,27,
- 5,58,23, 5,58,25, 4,53,26, 4,53,24, 7,22,19, 5,58,24, 0, 0, 0,15,57,15,
- 15,57,16,15,57,17,15,57,19, 7,22,18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,58,26,
- 4,58,28, 7,30,26, 5,64,33, 5,64,36, 5,64,34, 7,30,24, 5,64,37, 5,64,38,
- 5,64,35, 7,30,21, 4,58,25, 7,30,22, 0, 0, 0,15,61,77,15,61,78,15,61,79,
- 7,30,23, 0, 0, 0, 7,30,25, 0, 0, 0, 0, 0, 0, 7,30,27, 7,37,34, 5,70,62,
- 4,62,81, 5,70,60, 5,70,64, 5,70,63, 7,37,36, 5,70,65, 7,44,32, 7,37,35,
- 4,62,82, 5,70,58, 4,62,88, 5,70,59, 0, 0, 0,15,65,67,15,65,69, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,70,61,
- 7,37,33,15,65,68, 4,66,45, 7,44,35, 7,44,39, 5,74,94, 5,75, 1, 5,75, 3,
- 4,66,48, 7,44,40, 7,44,38, 7,44,33, 5,75, 4, 5,75, 2, 7,44,37, 7,44,34,
- 4,66,43, 7,44,36, 0, 0, 0,15,68,64,15,68,65,15,68,67, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,78,92, 7,49,86,
- 5,78,87, 5,78,91, 5,78,90, 5,78,89, 4,69,48, 4,69,44, 5,78,94, 5,78,88,
- 4,69,43, 7,49,87, 7,49,88, 7,49,91, 0, 0, 0, 0, 0, 0, 7,49,92,15,71, 6,
- 15,71, 7,15,71, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,78,93, 5,82,27,
- 5,82,30, 5,82,26, 7,54,57, 4,72,18, 4,72,20, 5,82,25, 4,72,19, 5,82,29,
- 7,54,58, 5,82,28, 7,54,62, 0, 0, 0,15,73, 4, 7,54,59, 7,54,60, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,85, 1, 5,84,92, 7,58,38, 5,85, 2, 5,84,94,
- 5,84,91, 5,85, 5, 5,85, 4, 5,85, 3, 5,84,93, 5,85, 6, 7,54,61, 4,73,83,
- 7,58,39, 7,58,40, 0, 0, 0, 0, 0, 0,15,74,27, 0, 0, 0,15,74,28, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,86,87, 4,75,24, 4,75,25, 5,86,86, 7,61,76,
- 7,61,77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,61,75,15,75,27, 4,76,32, 7,64,24,
- 5,88,49, 4,76,36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,76,34, 0, 0, 0, 0, 0, 0,
- 5,89,69, 7,65,72, 5,89,68, 4,77,22,15,76,34,15,76,35, 0, 0, 0, 0, 0, 0,
- 7,65,73, 0, 0, 0, 5,90,47, 7,67,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,67,11,
- /* plane 2, page 156 */
- 1, 255, /* first, last */
- 7,68,12, 4,78, 9, 5,91, 6,15,76,82, 7,68,87, 7,68,86, 5,91,46,
- 0, 0, 0, 4,78,52, 6, 3,29, 6, 3,28, 5,36,43, 5,43,59, 5,43,60, 6,68,66,
- 7,11,61, 7,22,20, 7,30,28, 7,37,37, 4,62,89, 7,49,94, 7,54,63, 5,82,32,
- 0, 0, 0, 7,58,41, 0, 0, 0, 0, 0, 0, 7,64,26, 7,64,25, 5,88,51, 5,91,47,
- 7,11,62, 4,47, 3, 4,53,28, 7,37,38, 7,50, 1, 7,54,65, 7,54,64, 7,58,42,
- 7,61,78,15,76,83, 5,91,48, 4,34, 4, 6,58,46, 6,68,68, 6,68,67, 7,11,63,
- 0, 0, 0, 7,22,24, 4,53,30, 5,58,27, 7,22,22, 7,22,21, 4,53,29, 7,22,23,
- 0, 0, 0, 5,64,39, 0, 0, 0, 0, 0, 0, 7,30,29, 0, 0, 0, 4,62,90, 7,37,40,
- 7,37,41, 7,37,39, 0, 0, 0, 7,44,41, 5,75, 5, 7,44,42, 0, 0, 0, 4,69,49,
- 7,50, 4, 7,50, 3, 7,50, 2, 7,50, 5, 7,54,66, 4,72,21, 7,54,68, 5,82,34,
- 7,54,67, 7,54,69, 7,54,70, 5,85, 7, 7,58,44, 0, 0, 0, 7,61,81, 7,61,82,
- 5,86,88, 4,73,85, 4,75,26, 7,61,80, 5,86,89, 7,61,79, 0, 0, 0, 7,61,83,
- 4,76,38, 4,76,37, 7,61,84, 7,64,27, 7,65,75, 7,65,76, 5,90,48, 7,67,12,
- 7,67,13, 7,67,14, 0, 0, 0, 4,78,10, 7,68,13, 7,68,89, 0, 0, 0, 7,68,88,
- 7,68,90, 7,69,47, 5,92, 4, 4,78,49, 5,92,13, 7,69,93, 0, 0, 0, 7,70,42,
- 7,70,43, 6,48,43, 5,29,51, 0, 0, 0, 0, 0, 0, 6,58,50, 5,36,46, 6,58,49,
- 4,34, 6, 5,36,44, 6,58,48, 5,36,45, 4,34, 5, 6,58,47,15,25,16,15,25,15,
- 6,58,51, 0, 0, 0, 5,43,63, 5,43,64, 5,43,65, 5,43,62, 5,43,61, 5,43,66,
- 6,68,72, 6,68,69, 0, 0, 0, 0, 0, 0, 6,68,73,15,45,41,15,45,42,15,45,43,
- 6,68,75, 6,68,70, 6,68,78, 6,68,76, 6,68,77, 6,68,74, 6,68,71, 0, 0, 0,
- 0, 0, 0, 4,47, 7, 5,51, 9, 7,11,65, 0, 0, 0, 7,11,64, 5,51, 8, 5,51,11,
- 5,58,33, 5,51,10, 4,47, 6, 7,11,67, 5,51, 5, 0, 0, 0,15,51,20,15,51,21,
- 15,51,22, 0, 0, 0, 0, 0, 0, 5,51, 7, 0, 0, 0, 0, 0, 0, 7,11,66, 0, 0, 0,
- 0, 0, 0, 5,51, 6, 0, 0, 0, 5,58,28, 7,22,26, 5,58,37, 5,58,35, 7,22,25,
- 4,53,32, 5,58,36, 7,22,27, 0, 0, 0,15,57,20, 5,58,30, 5,58,29, 5,58,31,
- 5,58,34, 7,22,28, 0, 0, 0, 5,58,32, 4,58,29, 5,64,41, 5,64,44, 5,64,48,
- 4,58,30, 7,30,30, 5,64,40, 5,64,42, 5,64,47, 5,64,45, 7,30,32, 0, 0, 0,
- 7,30,33, 7,30,35,15,61,80,15,61,81,15,61,82, 5,64,46, 0, 0, 0, 7,30,31,
- 7,30,34, 5,64,43, 5,70,67, 7,37,43, 4,62,91, 5,70,73, 7,37,46, 5,70,71,
- 5,70,69, 7,37,47, 7,37,44, 0, 0, 0,15,65,71, 7,37,42, 7,37,49, 5,70,66,
- 7,37,45, 7,37,48, 5,70,70, 0, 0, 0, 0, 0, 0, 5,75, 6, 5,75, 9, 7,44,43,
- 5,75, 7, 7,44,44, 7,44,45, 0, 0, 0,15,68,68,15,68,69,15,68,70,15,68,71,
- /* plane 2, page 157 */
- 0, 255, /* first, last */
- 5,70,68, 0, 0, 0, 0, 0, 0, 5,75, 8, 0, 0, 0, 0, 0, 0, 7,50,11, 4,69,50,
- 7,50,10, 5,79, 1, 7,50, 9, 7,50, 8, 0, 0, 0, 5,79, 2, 7,50, 6,15,71, 9,
- 5,82,36, 5,82,38, 5,82,40, 4,72,23, 7,54,71, 7,54,72,15,73, 5, 0, 0, 0,
- 5,82,37, 5,82,35, 0, 0, 0, 7,54,73, 5,82,39, 5,85,10, 4,66,49, 7,58,48,
- 4,73,88, 5,85, 8, 7,58,46, 4,73,89, 5,85,11, 0, 0, 0,15,74,29, 0, 0, 0,
- 5,85,12, 5,85, 9, 4,73,90,15,71,10, 0, 0, 0, 7,58,45, 5,86,91, 5,86,90,
- 15,73, 6, 5,88,52, 5,88,53, 4,76,39, 7,64,31, 0, 0, 0, 7,64,30, 7,64,32,
- 7,64,29, 0, 0, 0, 5,89,71, 5,89,70, 0, 0, 0,15,76,36, 0, 0, 0, 7,67,15,
- 4,78,11, 7,68,14, 7,68,15, 0, 0, 0, 4,78,33, 5,91,49, 0, 0, 0, 5,91,79,
- 5,92, 5, 0, 0, 0, 5,92,32, 4,16,35, 4,34,10, 4,34, 7, 6,58,53, 4,34, 8,
- 6,58,54, 5,36,47, 0, 0, 0,15,38,27, 6,68,79, 5,43,69, 4,40,76, 5,43,67,
- 15,45,44,15,45,45, 0, 0, 0, 5,43,70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4,47,15, 4,47,19, 4,47,17, 4,47,13, 7,11,72, 5,51,17, 5,51,16, 7,11,69,
- 7,11,68, 5,51,14, 4,47,24, 5,51,19, 5,51,12, 5,51,13, 7,11,76, 7,11,70,
- 4,47,22, 5,51,18, 0, 0, 0,15,51,23,15,51,26,15,51,29, 7,11,75, 7,11,71,
- 7,11,73, 4,47,14, 0, 0, 0, 0, 0, 0,15,51,25, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,51,15, 5,58,40, 5,58,38, 7,22,29, 5,58,41, 4,53,38, 4,58,38, 5,58,46,
- 5,58,45, 4,53,41, 7,22,35, 7,22,30, 7,22,33, 7,22,32, 5,58,44, 0, 0, 0,
- 0, 0, 0, 7,22,36,15,57,22,15,57,23,15,57,25,15,57,26, 5,58,43, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,22,34,15,57,21, 0, 0, 0, 0, 0, 0, 5,58,39, 0, 0, 0,
- 7,22,31, 0, 0, 0, 5,64,54, 4,58,40, 5,64,55, 5,64,52, 5,64,50, 4,58,39,
- 7,30,43, 5,64,53, 7,30,38, 7,30,45, 7,30,37, 4,58,43, 7,30,44, 5,64,58,
- 5,64,56, 7,30,36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,58,42,15,38,28,
- 15,61,83,15,61,84,15,61,85,15,61,87,15,61,89, 7,30,40, 0, 0, 0, 5,64,59,
- 0, 0, 0, 0, 0, 0, 5,64,51, 7,30,42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,64,49, 5,64,57, 5,70,87, 5,70,84, 5,70,80,
- 5,70,75, 7,37,51, 4,63, 8, 5,70,77, 7,37,50, 5,70,74, 5,70,81, 5,70,85,
- 5,70,82, 5,70,79, 5,70,76, 0, 0, 0, 7,37,52,15,65,72,15,65,73,15,65,74,
- 15,65,75,15,65,76,15,65,77,15,65,78,15,65,79,15,65,81,15,65,83, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,37,53, 0, 0, 0, 7,30,39, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,70,86, 5,70,83, 0, 0, 0, 7,44,59,
- 7,44,56, 4,66,62, 7,44,50, 5,75,13, 4,66,50, 5,75,15, 7,44,47, 7,44,49,
- /* plane 2, page 158 */
- 0, 248, /* first, last */
- 4,66,63, 5,70,88, 4,66,67, 5,75,18, 4,66,59, 7,44,46, 4,66,58, 4,66,69,
- 7,44,58, 7,44,51, 7,44,57, 4,66,56, 7,44,53, 5,75,22, 5,75,14, 7,44,48,
- 5,75,20, 0, 0, 0,15,68,78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,68,72,
- 15,68,74,15,68,76,15,68,79,15,68,80,15,68,81, 0, 0, 0, 0, 0, 0, 5,75,16,
- 7,44,52, 0, 0, 0, 7,44,55, 0, 0, 0, 0, 0, 0, 4,66,51, 0, 0, 0, 5,75,23,
- 5,75,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,68,73, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,75,12,15,65,80, 0, 0, 0, 7,44,54, 0, 0, 0, 5,79, 7, 7,50,14,
- 5,79, 6, 5,75,24, 5,79, 9, 7,50,12, 4,69,56, 5,79,11, 7,50,15, 7,50,13,
- 5,79, 8, 4,69,54, 5,79, 4, 7,50,18, 4,69,62, 5,79, 5, 5,79, 3, 4,69,64,
- 7,50,16, 5,79,12, 7,50,20, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,71,11,15,71,12,
- 15,71,13,15,71,15,15,71,16,15,71,17,15,71,18, 0, 0, 0,15,71,14, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,79,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,71,20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,82,42, 4,72,31, 5,82,47, 5,82,51, 5,87, 3, 5,82,41, 5,82,50,
- 4,72,24, 7,54,81, 5,82,44, 7,54,82, 5,82,55, 7,54,77, 5,82,52, 5,82,45,
- 7,54,83, 7,54,85, 7,54,74, 7,54,84, 5,82,54, 7,54,78, 7,54,79, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,73, 8,15,73, 9,15,73,11,
- 15,73,12,15,73,13,15,73,14,15,73,15,15,73,16,15,73,17,15,73,18, 0, 0, 0,
- 0, 0, 0, 7,54,75, 7,54,76, 5,82,53, 7,54,80, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,82,48, 0, 0, 0, 7,58,52, 7,58,50, 5,85,18,
- 4,74, 2, 5,85,14, 5,85,15, 7,58,58, 7,58,55, 5,85,16, 7,58,60, 7,58,57,
- 5,85,20, 7,58,54, 7,58,59, 7,58,51, 7,58,53, 7,58,49, 7,58,62, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,74,33,15,74,34,15,74,35,
- 15,74,32, 7,58,63, 5,85,19, 7,58,56, 0, 0, 0, 7,58,61, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,85,17, 0, 0, 0,
- 5,86,94, 7,61,88, 5,87, 2, 4,75,30, 4,75,31, 5,86,92, 7,61,87, 4,69,60,
- 7,64,38, 7,61,85, 7,62, 2, 7,61,86, 5,86,93, 7,62, 1, 7,61,92, 5,87, 1,
- 7,61,89, 0, 0, 0,15,75,29,15,75,31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,61,90, 0, 0, 0, 7,61,93, 7,61,94, 7,61,91, 0, 0, 0,
- 15,75,28,
- /* plane 2, page 159 */
- 2, 252, /* first, last */
- 7,64,35, 5,88,60, 5,88,64, 5,88,58, 7,64,33, 4,76,47,
- 4,76,44, 5,88,57, 5,88,65, 4,76,43, 5,88,63, 5,88,62, 5,88,55, 0, 0, 0,
- 7,64,43, 7,64,39, 5,88,56, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,75,85,15,75,88,
- 7,64,40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,64,34, 7,64,36, 7,64,37, 5,88,61,
- 7,64,42, 7,64,41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,65,83, 5,89,72, 4,77,24,
- 5,89,73, 7,65,78, 7,64,90, 7,65,81, 7,65,79, 5,89,75, 7,65,82, 0, 0, 0,
- 0, 0, 0, 7,65,80,15,76,37,15,76,38, 5,89,74, 7,65,77, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,67,21, 7,67,16, 7,67,18, 7,67,19, 7,67,20,
- 5,90,49, 5,90,50,15,76,58,15,76,59,15,76,60, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,76,61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,67,17, 5,91, 8, 5,91, 7, 7,68,16,
- 5,91, 9,15,76,84, 0, 0, 0, 7,68,17, 0, 0, 0, 5,91,10, 0, 0, 0, 0, 0, 0,
- 7,68,18, 0, 0, 0, 7,68,94, 5,91,51, 5,91,50, 5,91,53, 7,68,92, 7,69, 1,
- 7,68,91, 5,91,52, 0, 0, 0, 7,68,93, 0, 0, 0, 0, 0, 0,15,76,85, 5,91,83,
- 5,91,82, 5,91,81, 5,91,80, 7,69,48, 5,92, 6,15,77,11,15,77,12, 0, 0, 0,
- 5,92, 7, 7,69,75, 0, 0, 0, 5,92,14, 0, 0, 0, 5,92,23, 7,70,15, 5,92,22,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,51,28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,61,88, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,75,30, 0, 0, 0, 6,48,44,
- 15,32,19, 6,48,45, 4,34,11, 6,58,55, 5,36,49, 5,36,50, 6,58,60, 6,58,56,
- 6,58,57, 5,36,48, 0, 0, 0, 6,58,58, 6,58,59, 6,68,80, 5,43,74, 6,68,81,
- 5,43,73, 4,40,78, 4,40,79, 6,68,82, 6,68,83, 6,68,84, 4,40,80, 5,43,72,
- 0, 0, 0,15,45,47,15,45,48,15,45,49, 5,43,71, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4,47,37, 7,11,82, 7,11,93, 7,11,79, 7,11,83, 7,11,89, 5,51,23, 5,51,27,
- 5,51,29, 5,51,25, 7,11,86, 7,11,92, 5,51,31, 5,51,20, 4,47,29, 5,51,33,
- 5,51,30, 5,51,21, 4,47,30, 5,51,34, 7,11,90, 4,47,28, 7,11,85, 4,47,35,
- 4,47,26, 5,51,35, 4,47,38, 7,11,80, 7,11,91, 0, 0, 0, 0, 0, 0,15,51,32,
- 7,11,78, 7,11,87, 7,11,88, 5,51,22, 5,51,26, 5,51,32, 7,11,81, 7,11,84,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,51,28, 7,22,43, 5,58,52, 5,58,54, 5,58,49,
- 5,58,47, 4,53,44, 5,58,51, 5,58,57, 5,58,50, 7,22,55, 7,22,50, 5,58,55,
- 4,53,54, 7,22,52, 5,58,56, 7,22,48, 5,58,53, 7,22,51, 7,22,44, 0, 0, 0,
- 0, 0, 0, 7,22,37, 7,22,46,15,57,29,15,57,30,15,57,31,15,57,32, 7,22,45,
- 7,22,47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,22,56,
- /* plane 2, page 160 */
- 0, 255, /* first, last */
- 7,22,54, 7,22,39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,22,40,
- 7,22,53, 4,53,51, 4,53,49, 6,48,46, 7,22,41, 5,58,48, 0, 0, 0, 7,22,38,
- 0, 0, 0,15,54,19, 7,30,49, 4,58,44, 5,64,62, 5,64,73, 7,30,52, 4,58,51,
- 5,64,71, 7,30,53, 5,64,61, 5,64,65, 0, 0, 0, 7,30,46, 5,64,68, 5,64,75,
- 5,64,64, 5,64,66, 4,58,52, 7,30,55, 5,64,60, 5,64,67, 4,58,56, 7,30,47,
- 4,58,59, 5,64,76, 7,30,56, 7,30,51, 5,64,72, 5,64,74, 0, 0, 0, 0, 0, 0,
- 15,61,90,15,61,91,15,61,92,15,61,93,15,62, 1,15,62, 2,15,62, 3,15,62, 5,
- 7,30,48, 0, 0, 0, 5,64,63, 0, 0, 0, 4,58,58, 7,30,54, 0, 0, 0, 5,64,69,
- 5,64,70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,30,50, 4,58,55, 7,37,59, 5,64,77, 7,37,63, 5,70,93, 5,71, 5, 5,71, 7,
- 4,63,14, 5,71,10, 5,70,90, 5,71, 1, 5,70,94, 5,70,91, 7,37,61, 7,37,56,
- 4,63,13, 7,37,62, 5,70,92, 5,71,11, 4,63,16, 7,37,71, 5,71, 2, 7,37,68,
- 7,37,60, 5,71, 8, 7,37,65, 7,37,66, 7,37,70, 5,71, 4, 7,37,57, 5,71, 3,
- 7,37,72, 7,37,54, 7,37,64,15,65,84,15,65,85, 7,37,55, 5,71, 9, 0, 0, 0,
- 7,37,67, 0, 0, 0, 5,75,25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,44,61,
- 5,75,26, 7,44,66, 0, 0, 0, 5,75,30, 5,75,42, 5,75,32, 7,44,74, 7,44,68,
- 5,75,27, 7,44,72, 7,44,75, 7,44,67, 5,75,44, 5,75,29, 5,75,43, 4,66,75,
- 5,75,34, 5,75,37, 7,44,64, 7,44,62, 5,75,40, 5,75,36, 7,44,60, 7,44,70,
- 7,44,76, 5,75,33, 0, 0, 0, 4,66,77, 7,44,73, 5,75,38, 0, 0, 0,15,68,84,
- 15,68,86,15,68,87, 7,44,65, 5,75,39, 0, 0, 0, 7,44,79, 5,75,41, 7,37,73,
- 0, 0, 0, 7,44,69, 0, 0, 0, 7,44,71, 0, 0, 0, 7,44,77, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,75,35, 0, 0, 0, 0, 0, 0, 7,44,78, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,44,63, 4,66,73, 5,79,24, 5,79,16,
- 7,50,26, 4,69,69, 5,79,30, 7,50,35, 5,79,18, 5,79,34, 4,66,80, 7,50,22,
- 5,79,15, 4,69,67, 5,79,17, 4,69,78, 4,69,72, 5,79,19, 5,79,13, 5,79,23,
- 5,79,36, 5,79,25, 4,69,77, 4,69,70, 5,79,26, 5,79,28, 5,79,32, 4,69,71,
- 5,79,14, 5,79,27, 5,79,22, 5,79,31, 7,50,31, 7,50,27, 7,50,32, 7,50,21,
- 7,50,23, 0, 0, 0, 5,79,29, 5,79,21, 5,79,20, 5,79,35, 0, 0, 0, 0, 0, 0,
- 7,50,24, 0, 0, 0,15,71,23, 0, 0, 0, 7,50,30, 0, 0, 0, 7,50,29, 7,50,25,
- 0, 0, 0, 7,50,36, 7,50,33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,50,28,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,71,24, 0, 0, 0, 0, 0, 0, 5,79,33, 0, 0, 0,
- 0, 0, 0, 7,37,58, 5,82,62, 7,54,89, 5,82,70, 7,54,94, 5,82,61, 5,82,64,
- /* plane 2, page 161 */
- 0, 255, /* first, last */
- 5,82,59, 5,82,69, 5,82,68, 7,55, 1, 7,54,93, 7,54,90, 5,82,72, 7,55, 7,
- 0, 0, 0, 7,55, 6, 7,55, 4, 5,82,60, 5,82,65, 5,79,37, 5,82,58, 5,82,66,
- 7,55, 2, 7,54,92, 5,82,73, 5,82,74,15,73,20, 0, 0, 0, 0, 0, 0, 5,82,63,
- 7,55, 3, 0, 0, 0, 0, 0, 0, 7,54,87, 7,55, 8, 0, 0, 0, 7,54,86, 0, 0, 0,
- 7,54,91, 0, 0, 0, 0, 0, 0,15,73,19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,82,56, 7,54,88, 5,82,57,15,71,22, 5,85,34, 5,85,29, 4,74, 4,
- 4,74,13, 5,85,28, 4,74, 8, 5,85,35, 5,85,25, 5,79,38, 5,85,36, 5,85,32,
- 5,85,31, 4,74,11, 0, 0, 0, 7,58,66, 7,58,76, 7,58,74, 7,58,80, 4,74,10,
- 7,58,75, 7,58,78, 5,85,27, 4,74, 9, 7,58,73, 5,85,23, 7,58,72, 5,85,24,
- 5,85,38, 5,82,71, 7,58,81, 5,85,33, 7,58,79, 7,58,71, 7,55, 5, 0, 0, 0,
- 0, 0, 0,15,74,36,15,74,37,15,74,38,15,74,39,15,74,40, 5,85,30, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7,58,70, 0, 0, 0, 7,58,68, 0, 0, 0, 0, 0, 0, 7,58,65,
- 0, 0, 0, 7,58,67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,85,26, 7,62,11,
- 7,62, 7, 7,62,17, 5,87,19, 7,62,15, 5,87,14, 5,87, 9, 4,75,35, 7,62,18,
- 7,62,22, 5,87, 5, 5,87,16, 5,87,10, 5,87, 8, 5,87,15, 7,62,12, 5,87, 7,
- 5,87, 6, 5,87,24, 5,87,11, 4,75,41, 4,75,34, 7,62,21, 5,87,17, 7,62,16,
- 7,62,19, 5,87,13, 7,58,69, 5,87,21, 7,58,77, 7,62,20, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,87,22, 0, 0, 0, 0, 0, 0, 7,62,13,15,75,32, 7,62, 4, 7,62, 6,
- 0, 0, 0, 0, 0, 0, 7,62,14, 0, 0, 0, 0, 0, 0, 7,62, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,62, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,87,18, 7,62,10, 7,62, 5, 4,75,33,15,75,90, 7,62,23, 7,64,45, 5,88,71,
- 5,88,73, 5,88,77, 5,88,69, 5,87,23, 5,88,72, 7,64,46, 5,88,74, 5,88,75,
- 7,64,47, 7,64,48, 7,64,52, 5,88,76, 7,64,51, 7,64,44, 7,64,49, 5,88,67,
- 0, 0, 0, 5,88,70, 5,88,66,15,75,89, 7,64,50, 0, 0, 0, 4,76,53, 0, 0, 0,
- 0, 0, 0, 5,88,68, 4,76,51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5,89,81, 5,89,77, 5,89,80, 7,65,86, 4,77,27, 5,89,78, 5,89,76,
- 4,77,28, 0, 0, 0, 7,65,84, 0, 0, 0, 5,89,79, 7,65,88, 0, 0, 0, 0, 0, 0,
- 7,65,85, 7,65,87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,77,30, 5,90,56, 7,67,25, 5,90,54,
- 4,77,75, 5,90,58, 5,90,57, 5,90,53, 5,90,55, 4,77,74, 7,67,24, 5,90,52,
- 7,67,27, 5,90,59, 7,67,29,15,76,62, 7,67,26, 0, 0, 0, 0, 0, 0, 7,67,22,
- /* plane 2, page 162 */
- 1, 255, /* first, last */
- 7,67,28, 0, 0, 0, 5,91,14, 7,68,20, 7,68,22, 5,91,15, 5,91,12,
- 0, 0, 0, 5,91,11, 5,91,17, 5,91,16, 5,91,13, 7,68,23,15,76,86, 0, 0, 0,
- 4,78,14, 0, 0, 0, 7,68,19, 7,68,21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,91,54, 7,69, 2, 7,69,51, 7,69, 4, 7,69, 6, 7,69, 3, 7,69, 7, 5,91,55,
- 0, 0, 0, 0, 0, 0, 7,69, 5, 0, 0, 0, 4,78,34, 5,91,84, 7,69,52, 7,69,53,
- 5,91,85, 7,69,50, 7,69,54, 7,69,49, 0, 0, 0, 0, 0, 0, 7,69,77, 7,69,76,
- 5,92, 9, 5,92, 8,15,77,18, 0, 0, 0, 5,92,15, 7,70, 1, 0, 0, 0, 7,69,94,
- 5,92,24, 7,70,16, 5,92,25, 7,70,26, 5,92,33,15,77,23, 0, 0, 0, 5,92,40,
- 7,70,37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,40,81, 4,40,82,
- 5,51,36, 7,12, 2, 7,12, 1, 7,11,94, 5,58,58, 5,58,60, 7,22,58, 7,22,59,
- 15,57,33, 7,22,57, 0, 0, 0, 5,71,12, 7,30,57, 0, 0, 0, 4,66,81, 7,44,80,
- 5,75,45, 7,44,81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,50,38, 5,79,40, 5,79,41,
- 7,50,39, 5,79,39, 7,50,41, 7,50,40, 0, 0, 0, 4,72,37, 7,55,11, 7,55,10,
- 5,82,75, 0, 0, 0, 7,58,83, 0, 0, 0, 7,58,82, 0, 0, 0, 0, 0, 0, 4,75,44,
- 7,62,24, 7,62,25, 5,87,25, 7,64,53, 4,76,55, 0, 0, 0, 5,89,82, 4,77,31,
- 7,67,30, 5,91,18, 0, 0, 0, 6,58,61,15,38,29, 5,43,76,15,45,50, 7,12, 8,
- 5,51,37, 7,12, 7, 0, 0, 0, 7,12, 6, 7,12, 4, 5,51,38, 7,12, 5, 5,51,39,
- 7,12, 9, 7,12, 3, 0, 0, 0, 7,22,61, 5,58,61, 0, 0, 0,15,57,34, 0, 0, 0,
- 15,57,35,15,57,36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,64,79, 5,64,82, 5,64,80,
- 4,58,60, 0, 0, 0, 5,64,83, 5,64,81, 7,30,59, 7,30,58, 0, 0, 0, 7,30,62,
- 0, 0, 0, 7,30,61,15,62, 6, 5,64,78, 7,37,78, 5,71,17, 5,71,14, 5,71,13,
- 7,37,75, 7,37,77, 7,37,74, 5,71,16, 7,37,76,15,65,88,15,65,89,15,65,90,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,71,15, 5,75,47, 5,75,46, 5,75,49, 4,66,83,
- 7,44,83, 5,75,48, 0, 0, 0, 7,44,82, 0, 0, 0, 5,72,32, 7,50,43, 4,66,84,
- 4,69,79, 7,44,84,15,71,25, 0, 0, 0, 7,50,42, 7,50,44, 5,79,42, 4,72,39,
- 7,55,12, 7,55,13, 4,72,38,15,73,21, 5,85,39, 4,74,14,15,74,41, 0, 0, 0,
- 0, 0, 0, 5,87,26, 5,87,28, 5,87,27, 0, 0, 0, 7,62,26, 0, 0, 0, 7,62,27,
- 0, 0, 0, 0, 0, 0, 7,64,54, 4,76,56, 7,64,55,15,75,91, 5,89,85, 5,89,84,
- 5,88,78, 0, 0, 0, 4,77,32, 4,77,76,15,76,39, 0, 0, 0, 0, 0, 0, 7,69, 8,
- 7,69,55, 0, 0, 0, 5,92,38, 7,70,39, 6,58,63, 6,58,62, 5,36,51,15,38,31,
- /* plane 2, page 163 */
- 1, 255, /* first, last */
- 4,40,85, 6,68,85,15,45,51, 0, 0, 0, 5,51,43, 5,51,42, 4,47,47,
- 5,51,41, 5,51,40, 7,12,11, 7,12,15, 7,12,10, 4,47,46, 7,12,12, 0, 0, 0,
- 5,51,44, 7,12,14, 7,12,13, 0, 0, 0, 7,22,65, 7,22,63, 7,22,62, 7,22,67,
- 4,53,59, 0, 0, 0, 7,22,66, 6,39,51,15,57,37, 5,58,62, 0, 0, 0, 0, 0, 0,
- 7,22,64, 0, 0, 0, 5,64,84, 5,64,85, 7,30,64, 7,30,65,15,62, 8, 0, 0, 0,
- 7,30,66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,30,63, 7,37,80, 5,71,18, 7,37,82,
- 5,71,19, 5,71,21, 7,37,83, 5,71,20,15,65,91, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,37,81, 0, 0, 0, 0, 0, 0, 7,37,79, 4,66,90, 4,66,88, 7,44,89, 7,44,91,
- 7,44,85, 5,75,52, 5,75,50, 7,44,90, 5,75,53, 5,75,51, 7,44,88, 4,66,91,
- 0, 0, 0, 7,44,87, 0, 0, 0, 7,44,86, 5,79,43, 7,50,51, 7,50,50, 5,79,44,
- 7,50,48, 4,69,80, 7,50,47, 5,79,46, 5,79,45, 7,50,49,15,71,26, 0, 0, 0,
- 7,50,46, 0, 0, 0, 7,50,45, 5,82,76, 7,55,15, 5,82,79, 7,55,16, 5,82,78,
- 7,55,17, 7,55,14, 5,82,77, 5,85,43, 5,85,44, 7,58,84, 5,85,41, 5,85,46,
- 7,58,91, 7,58,86, 7,58,87, 7,58,92, 7,58,89, 5,85,42, 7,58,85, 7,58,88,
- 7,58,90, 0, 0, 0, 5,87,31, 4,75,47, 5,87,30, 5,87,32, 5,87,29, 0, 0, 0,
- 5,88,79, 5,88,81, 5,88,80, 7,64,57, 7,62,28, 4,76,57, 7,64,56, 4,77,77,
- 7,67,31, 7,68,25, 7,68,24, 5,91,56, 7,69, 9, 0, 0, 0, 4,78,50, 5,92,16,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 9, 1,15,38,30,15,51,34,
- 15,62, 7, 0, 0, 0, 5,43,80, 5,43,78, 5,43,79, 5,51,46, 4,47,48, 5,51,45,
- 0, 0, 0, 0, 0, 0, 7,12,16, 5,58,65, 7,22,68, 5,58,63, 5,58,64,15,57,38,
- 5,64,88, 5,64,86,15,62, 9, 5,64,87, 5,71,22, 7,44,92, 5,75,54, 7,44,93,
- 4,69,83, 0, 0, 0, 7,55,18, 5,82,80, 7,58,94, 4,75,48, 7,59,54, 7,62,29,
- 4,75,49, 0, 0, 0, 5,92,17,15,45,52, 7,12,18, 5,58,66, 5,58,68, 0, 0, 0,
- 0, 0, 0, 5,58,67, 5,64,90, 5,71,24, 0, 0, 0, 5,64,89, 5,71,25, 0, 0, 0,
- 0, 0, 0, 5,71,23, 5,75,55, 4,67, 2,15,68,89, 0, 0, 0, 4,69,85, 4,69,84,
- 5,79,48, 5,79,47, 4,69,87, 7,50,52, 7,50,53, 7,50,54,15,71,27, 0, 0, 0,
- 0, 0, 0, 7,50,55, 0, 0, 0, 5,82,83, 5,82,82, 5,82,81, 7,55,19, 0, 0, 0,
- 7,55,20, 5,85,47, 4,74,15, 4,74,16, 7,59, 3, 7,59, 2, 7,59, 1, 0, 0, 0,
- 0, 0, 0, 7,62,30, 0, 0, 0, 0, 0, 0, 5,88,82, 7,64,58, 5,88,83, 7,65,89,
- 5,89,86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,70, 7, 4,40,86, 5,51,47, 4,47,49,
- 7,22,72, 7,22,70, 5,58,70, 5,58,69, 5,58,71, 0, 0, 0, 5,64,94, 7,30,68,
- 5,64,92, 7,30,67, 5,64,91, 4,58,62, 5,64,93, 7,30,69, 7,30,70, 5,71,27,
- /* plane 2, page 164 */
- 0, 255, /* first, last */
- 5,71,26, 0, 0, 0, 4,69,88, 5,79,49, 5,79,51, 0, 0, 0, 0, 0, 0, 5,82,84,
- 7,55,22, 7,55,21,15,73,22, 5,85,48, 4,75,52, 5,87,34, 5,87,33, 4,75,51,
- 0, 0, 0, 7,67,32, 7,65,90, 4,77,78, 5,91,58, 7,69,10, 5,91,57, 6,68,86,
- 5,36,52, 6,68,88, 0, 0, 0, 6,68,87, 7,12,20, 4,47,53, 4,47,52, 5,51,48,
- 7,12,21, 7,12,22, 0, 0, 0, 0, 0, 0, 7,22,74, 5,58,74, 5,58,72, 5,58,73,
- 7,22,73, 0, 0, 0, 7,22,75, 7,22,76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,58,64, 7,30,72, 5,65, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15,62,10, 7,30,71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,71,30,
- 5,71,28, 7,37,84, 5,75,56, 5,65, 2, 5,71,31, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5,75,58, 5,75,57, 5,75,59, 5,75,61, 5,75,60, 7,45, 1, 7,44,94, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,79,54, 5,79,55, 7,50,59, 5,79,59, 5,79,57, 5,79,53,
- 7,50,56, 4,69,94, 4,69,91, 7,50,60, 5,79,58, 4,69,90, 7,50,58, 0, 0, 0,
- 0, 0, 0,15,71,28, 0, 0, 0, 7,50,57, 0, 0, 0, 7,55,24, 4,72,51, 4,72,49,
- 5,82,88, 4,72,48, 5,82,91, 7,55,23, 5,82,85, 5,82,89, 5,82,87, 4,72,52,
- 5,82,86, 4,72,53, 4,74,20, 7,55,25, 7,55,26, 0, 0, 0, 0, 0, 0, 5,82,90,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,85,49, 4,74,19,
- 4,74,21, 7,59,10, 7,59, 7, 7,59, 6, 4,74,18, 7,59, 9, 0, 0, 0, 0, 0, 0,
- 7,59, 8, 0, 0, 0, 0, 0, 0, 5,85,50, 7,59, 5, 0, 0, 0, 0, 0, 0, 5,87,39,
- 7,62,33, 5,87,38, 5,87,36, 5,87,37, 5,87,35, 5,87,40, 7,62,31, 0, 0, 0,
- 5,88,86, 5,88,87, 7,64,61, 4,76,60, 4,76,64, 5,88,85, 7,64,60, 5,88,84,
- 4,76,63, 4,76,62, 4,76,61, 7,62,32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,64,59,
- 0, 0, 0, 5,89,88, 5,89,89, 5,89,90, 5,89,87, 4,77,37, 7,65,91, 7,65,92,
- 4,77,38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,90,60, 7,68,26, 0, 0, 0, 0, 0, 0,
- 7,69,11, 4,78,16, 7,68,27, 5,91,19, 0, 0, 0, 0, 0, 0, 4,78,15, 5,91,59,
- 5,91,60, 7,69,12, 0, 0, 0, 4,78,42, 5,91,86, 0, 0, 0, 7,69,78, 0, 0, 0,
- 0, 0, 0, 5,92,42, 7,70,50, 7,37,85, 4,70, 2, 0, 0, 0, 5,82,92, 4,72,55,
- 5,87,41, 6,68,89, 7,12,24, 7,12,23, 5,65, 4, 7,22,77, 4,58,65, 7,30,73,
- 7,30,74, 0, 0, 0, 7,37,88, 5,71,34, 7,37,89, 7,37,87, 7,37,86, 4,63,33,
- 0, 0, 0, 7,45, 4, 7,45, 5, 0, 0, 0, 7,30,75, 7,45, 3, 0, 0, 0, 7,50,62,
- 7,50,63, 7,50,61, 0, 0, 0, 0, 0, 0, 5,82,93, 7,55,27, 4,74,22, 7,59,12,
- 7,59,17, 7,59,18, 7,59,14, 7,59,16, 7,59,13, 7,59,11, 7,59,15, 5,87,42,
- 7,62,34, 5,88,88, 0, 0, 0, 5,89,91, 5,90,61, 4,77,39, 7,67,33, 5,91,20,
- /* plane 2, page 165 */
- 0, 255, /* first, last */
- 7,67,34, 7,69,13, 6,48,47, 0, 0, 0, 7,22,78, 7,22,79, 5,58,75, 0, 0, 0,
- 7,38,47, 0, 0, 0, 7,69,14, 5,58,76, 0, 0, 0, 5,65, 5, 7,30,77, 5,71,35,
- 7,37,90, 5,71,36,15,65,93, 0, 0, 0, 7,45, 7, 5,75,64, 7,45, 6, 5,75,62,
- 5,75,63, 0, 0, 0, 0, 0, 0, 4,67, 5, 4,70, 3, 7,50,64, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4,74,25, 4,72,56, 7,55,28, 7,55,29, 5,85,51, 7,59,20,
- 7,59,21, 5,85,53, 4,74,24, 7,59,19, 5,85,52, 0, 0, 0, 7,62,35, 7,64,62,
- 5,88,89, 7,64,63, 0, 0, 0, 5,89,92, 0, 0, 0, 7,67,35, 5,91,21, 5,91,87,
- 7,12,25, 0, 0, 0, 5,58,77, 7,30,78, 5,58,78, 5,65, 8, 5,65,10, 5,65,11,
- 5,65, 9, 5,65, 7, 7,30,80, 5,65, 6, 7,30,79, 0, 0, 0, 5,65,12, 0, 0, 0,
- 4,58,66, 7,37,92, 7,45,12, 5,71,39, 5,71,40, 5,71,38, 5,71,37, 7,37,91,
- 0, 0, 0, 7,45,10, 5,75,65, 5,75,67, 5,75,66, 0, 0, 0, 0, 0, 0, 7,45,13,
- 7,45,14, 7,45, 9, 7,50,66, 7,50,68, 7,50,67, 5,79,61, 5,79,62, 7,45,11,
- 0, 0, 0, 7,50,69, 0, 0, 0, 0, 0, 0, 5,79,60, 0, 0, 0, 0, 0, 0, 7,50,65,
- 5,83, 1, 5,82,94, 7,55,30, 5,85,55, 7,59,22, 5,85,56, 5,85,57, 5,85,54,
- 0, 0, 0, 4,74,26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,62,36, 5,87,43, 4,75,57,
- 7,62,40, 4,75,55, 4,75,58, 7,62,39, 0, 0, 0, 7,62,38, 7,62,37, 5,88,93,
- 4,76,67, 5,88,91, 5,88,90, 7,64,64, 0, 0, 0, 7,65,94, 7,65,93, 4,77,41,
- 5,89,93, 0, 0, 0, 0, 0, 0, 5,91,22, 5,91,89, 5,91,88, 7,69,79, 7,70, 2,
- 4,47,55, 7,22,80, 7,22,81, 7,30,82, 7,30,81, 5,71,41, 7,37,94, 7,38, 1,
- 7,37,93, 0, 0, 0, 5,75,68, 5,75,69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7,50,70, 5,79,63, 5,79,64, 7,50,72, 4,72,59, 5,83, 2, 7,55,31,
- 7,55,32, 5,83, 3, 5,83, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,59,23, 5,87,44,
- 7,62,41, 0, 0, 0, 0, 0, 0, 5,88,92,15,75,94, 7,64,65, 5,89,94, 5,90, 1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,67,38, 5,90,62, 7,67,37, 7,68,28, 0, 0, 0,
- 0, 0, 0, 4,78,51, 5,92,18, 0, 0, 0,15,32,20, 4,53,68, 4,58,69, 7,38, 2,
- 0, 0, 0, 4,67, 8, 7,45,15, 5,77,55, 4,70, 4, 4,74,27,15,73,23, 5,90, 3,
- 5,90, 2, 7,66, 1, 7,69,15, 0, 0, 0, 5,65,14, 7,30,83, 0, 0, 0, 0, 0, 0,
- 7,38, 5, 4,63,39, 7,38, 4, 7,45,16, 5,75,70, 4,67,10, 7,45,17, 7,45,20,
- 7,45,18, 7,45,19, 7,45,21, 7,45,22, 5,75,71, 7,50,75, 5,79,67, 5,79,66,
- 4,70, 8, 7,50,73, 4,70,10, 7,50,77, 4,70, 9, 7,50,78, 0, 0, 0, 7,50,74,
- 0, 0, 0, 0, 0, 0, 4,40,88, 0, 0, 0, 0, 0, 0, 7,50,76, 7,55,38, 5,83,10,
- 5,83, 7, 7,55,35, 7,55,34, 4,72,62, 5,83, 8, 4,72,63, 4,72,61, 7,55,36,
- /* plane 2, page 166 */
- 0, 214, /* first, last */
- 5,83, 5, 5,83,11, 0, 0, 0, 0, 0, 0, 7,55,37, 7,55,39, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5,83, 9, 7,55,33, 0, 0, 0, 5,83, 6, 7,59,24, 4,74,30,
- 5,85,60, 5,85,59, 5,85,62, 7,59,32, 7,59,31, 5,85,63, 7,59,26, 5,85,64,
- 4,74,31, 0, 0, 0, 0, 0, 0, 7,59,25, 5,85,58, 0, 0, 0, 0, 0, 0, 7,59,27,
- 7,59,29, 7,59,30, 7,59,28, 0, 0, 0, 5,85,61, 5,87,47, 5,87,46, 4,75,62,
- 4,75,66, 4,75,67, 4,75,63, 0, 0, 0, 4,75,64, 5,87,48, 7,62,46, 0, 0, 0,
- 7,62,44, 0, 0, 0, 4,75,61, 0, 0, 0, 7,62,42, 0, 0, 0, 7,62,43, 7,62,47,
- 4,75,68, 4,76,71, 5,88,94, 7,64,71, 4,76,72, 7,64,69, 5,89, 1, 7,66, 3,
- 4,76,69, 7,64,67, 7,64,70, 7,64,68, 0, 0, 0, 0, 0, 0, 7,64,66, 7,64,72,
- 5,89, 2, 4,77,46, 4,77,42, 7,66, 5, 5,90, 6, 4,77,48, 4,77,45, 5,90, 4,
- 7,66, 7, 4,77,47, 7,66, 4, 7,66, 6, 0, 0, 0, 0, 0, 0, 7,66, 8, 7,66, 9,
- 7,66, 2, 5,90, 5, 7,67,40, 5,90,64, 7,67,39, 5,90,66, 5,90,63, 5,90,65,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,68,30, 4,78,18, 7,68,29, 5,91,23, 5,91,25,
- 0, 0, 0, 5,91,24, 7,68,32, 0, 0, 0, 7,68,33, 0, 0, 0, 7,68,31, 0, 0, 0,
- 4,78,38, 0, 0, 0, 7,69,18, 5,91,61, 7,69,17, 7,69,16, 7,69,57, 7,69,81,
- 7,69,82, 5,92,10, 0, 0, 0, 7,69,80, 7,69,83, 5,92,19, 0, 0, 0, 7,70, 4,
- 7,70, 3, 5,92,27, 7,70,18, 5,92,26, 7,70,17, 0, 0, 0, 7,70,29, 0, 0, 0,
- 7,70,28, 5,92,37, 0, 0, 0, 7,70,33, 7,70,40, 5,92,46, 5,92,45, 0, 0, 0,
- 0, 0, 0, 5,75,72, 7,45,23, 4,67,12, 0, 0, 0, 7,50,80, 7,50,79, 7,46, 4,
- 5,79,68, 7,55,40, 0, 0, 0,15,71,29, 7,59,34, 7,59,33, 7,59,35, 7,59,36,
- 5,87,49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,92,49, 7,22,82, 7,30,84,
- 7,38, 6, 0, 0, 0, 0, 0, 0, 7,55,41, 5,79,69, 4,70,11, 5,79,71, 5,79,70,
- 4,70,12, 7,50,83, 0, 0, 0, 7,50,81,15,71,30, 7,50,82, 5,83,12, 5,83,14,
- 7,55,43, 5,83,15, 5,75,74, 5,83,13, 7,52,10, 7,55,42, 7,45,25, 7,45,24,
- 5,91,62, 7,65, 9, 5,91,26, 5,87,50, 7,68,34, 0, 0, 0,15,77,13, 0, 0, 0,
- 5,92,34,15, 9, 6, 5,83,16, 7,66,11, 0, 0, 0, 7,66,10, 5,90,68, 5,90,67,
- 7,67,42, 7,67,41, 5,91,27, 4,78,39, 7,70, 5, 4,78,54, 7,70,44,
- /* plane 2, page 167: --- */
- /* plane 2, page 168: --- */
- /* plane 2, page 169: --- */
- /* plane 2, page 170: --- */
- /* plane 2, page 171: --- */
- /* plane 2, page 172: --- */
- /* plane 2, page 173: --- */
- /* plane 2, page 174: --- */
- /* plane 2, page 175: --- */
- /* plane 2, page 176: --- */
- /* plane 2, page 177: --- */
- /* plane 2, page 178: --- */
- /* plane 2, page 179: --- */
- /* plane 2, page 180: --- */
- /* plane 2, page 181: --- */
- /* plane 2, page 182: --- */
- /* plane 2, page 183: --- */
- /* plane 2, page 184: --- */
- /* plane 2, page 185: --- */
- /* plane 2, page 186: --- */
- /* plane 2, page 187: --- */
- /* plane 2, page 188: --- */
- /* plane 2, page 189: --- */
- /* plane 2, page 190: --- */
- /* plane 2, page 191: --- */
- /* plane 2, page 192: --- */
- /* plane 2, page 193: --- */
- /* plane 2, page 194: --- */
- /* plane 2, page 195: --- */
- /* plane 2, page 196: --- */
- /* plane 2, page 197: --- */
- /* plane 2, page 198: --- */
- /* plane 2, page 199: --- */
- /* plane 2, page 200: --- */
- /* plane 2, page 201: --- */
- /* plane 2, page 202: --- */
- /* plane 2, page 203: --- */
- /* plane 2, page 204: --- */
- /* plane 2, page 205: --- */
- /* plane 2, page 206: --- */
- /* plane 2, page 207: --- */
- /* plane 2, page 208: --- */
- /* plane 2, page 209: --- */
- /* plane 2, page 210: --- */
- /* plane 2, page 211: --- */
- /* plane 2, page 212: --- */
- /* plane 2, page 213: --- */
- /* plane 2, page 214: --- */
- /* plane 2, page 215: --- */
- /* plane 2, page 216: --- */
- /* plane 2, page 217: --- */
- /* plane 2, page 218: --- */
- /* plane 2, page 219: --- */
- /* plane 2, page 220: --- */
- /* plane 2, page 221: --- */
- /* plane 2, page 222: --- */
- /* plane 2, page 223: --- */
- /* plane 2, page 224: --- */
- /* plane 2, page 225: --- */
- /* plane 2, page 226: --- */
- /* plane 2, page 227: --- */
- /* plane 2, page 228: --- */
- /* plane 2, page 229: --- */
- /* plane 2, page 230: --- */
- /* plane 2, page 231: --- */
- /* plane 2, page 232: --- */
- /* plane 2, page 233: --- */
- /* plane 2, page 234: --- */
- /* plane 2, page 235: --- */
- /* plane 2, page 236: --- */
- /* plane 2, page 237: --- */
- /* plane 2, page 238: --- */
- /* plane 2, page 239: --- */
- /* plane 2, page 240: --- */
- /* plane 2, page 241: --- */
- /* plane 2, page 242: --- */
- /* plane 2, page 243: --- */
- /* plane 2, page 244: --- */
- /* plane 2, page 245: --- */
- /* plane 2, page 246: --- */
- /* plane 2, page 247: --- */
- /* plane 2, page 248 */
- 0, 255, /* first, last */
- 6, 9,22, 6, 1,17, 6, 1, 1, 6, 5,70, 6, 5,82, 4, 5,29, 6,14,65,15,13,72,
- 6,29,21, 6,48,59, 4,28,16, 6,58,82,15,57,45, 6, 3,50, 3, 4,50, 3, 7,51,
- 15,71,32, 3, 7,52, 6,29,28, 7,45,30, 6, 1,48, 3, 2,91, 6, 3,57, 3, 1,47,
- 6,21,36, 4, 1,31, 6, 2,28, 3, 4,33, 7,22,90, 5, 1, 9, 6, 1,24,15, 3,23,
- 6, 9,67, 6,14,86, 6,38,71, 3,32,35,15, 2, 9, 6,15, 5, 6,21,56, 4,22,44,
- 4, 1,15, 6, 2,38, 3, 2, 5, 6, 2,41, 3, 3, 9, 6,15,24, 6,38,84, 6,10, 3,
- 6,15,29, 6,29,57, 6,29,58, 3,26, 6,15, 1,19, 3, 4, 9, 6, 1,65, 6, 6,35,
- 5,17,17, 6, 2,59, 5, 1,64, 3, 3,28, 4, 3,60, 6, 6,46, 4, 3,59, 6,10,28,
- 0, 0, 0, 3,16, 3, 6,21,94, 4,16,86, 6,29,92, 6,39,10, 6,39,12, 6,39,16,
- 6,39,17, 6,39,19, 4,28,48, 6,59,59, 6,49,22, 6,59,57, 7, 1,64, 7,12,69,
- 3, 1,92, 6, 4,19, 6,22,21, 6,30,12, 6,30,11, 3,20,80, 4,22,86, 6,49,42,
- 7, 1,86, 7,38,30,15, 3,59, 6,49,55, 5, 3,66, 6, 4,27, 6,49,62, 6,39,54,
- 6, 2,71,15,10,11, 6,22,44, 6,22,45,15,14,77, 6,30,52, 6,30,48, 6,39,65,
- 6,49,73,15,39,38, 3,58,19, 7,38,49, 6, 4,40, 4,17,16,15,33,11, 6,60, 2,
- 3,58,22, 7,64,77, 6, 7, 1, 6,22,71, 6, 4,43, 4, 1,20, 5, 8,83, 6,39,91,
- 4, 1,21,15, 6,66, 3,12,32, 6,16,46, 6,40,11, 6,40,21, 3,32,94, 6,50,19,
- 6,60,29, 6, 7,22, 6,60,41,15, 1,63, 6,40,23, 6,23,12, 6,40,28, 7,13,51,
- 7,13,53, 7,64,78, 5, 9, 7, 6,31,38, 6,31,37, 3,21,63, 6,50,32, 5,37,61,
- 6, 1,84, 6, 7,42, 6,11,15, 6,16,84, 0, 0, 0,15,10,61, 6,11,25, 7,13,67,
- 5,83,32, 3,12,49, 6,31,62, 5,13,40, 3,21,69, 6, 7,63,15, 4,19, 5, 4,24,
- 6,17,22, 6,17,16,15,10,71, 4, 9,42, 6,40,92, 6,40,88, 3,38,80, 6,50,76,
- 6,50,70, 6,61, 6, 6,61, 4, 4,35,49, 7,13,73, 7,13,89, 7, 2,91, 3,52,64,
- 4,59,12, 7,39, 8, 3, 6, 7, 6,32, 3, 5, 2,78, 6,11,67, 6,11,64, 6,17,47,
- 15,11,11, 6,23,81, 3,22, 8, 6,32,22, 6,32,11, 6,41,42, 6,41,16,15,33,63,
- 7, 3,16, 6,61,24, 5,38,12, 7, 3,13,15,47, 5, 4,42, 7, 7,24,25,15,62,80,
- 4,13,38, 6,41,55,15,58,22, 3,22,32, 6,24,22, 0, 0, 0,15,33,82, 6,51,28,
- 5,38,33,15,11,24, 6,17,77, 6,32,55, 6,41,88, 6,61,59, 6,12, 3, 5, 6,42,
- 4,18,30, 6,32,56, 5,31,70, 4, 4,39, 6, 8,14,15, 4,49, 4, 6,72, 3,13,21,
- 6,24,42, 3,17,60, 4,13,60, 6,24,48, 5,18,94, 3,28,26, 6,51,62, 5,31,81,
- 3,33,78, 6,61,72, 7, 3,82,15,52,84, 7,14,74, 4,63,86, 7,56, 3, 6, 5, 3,
- 6,42,31, 7, 3,88, 7,62,82,15,40,89, 6,51,87, 4,13,69,15,21,84, 6,42,45,
- 6,12,34,15,40,91, 6, 5,14,15, 4,61, 6,12,59, 6,12,49, 3,13,50, 6,18,25,
- /* plane 2, page 249 */
- 0, 255, /* first, last */
- 6,18,34, 4,10, 5, 4,13,80, 6,25,13, 6,24,84, 6,25, 1,15,16,59, 3,22,85,
- 6,42,69, 6,42,67, 4,30,19, 6,52,41, 6,52,47,15,34,84, 6,62,30, 7, 4,47,
- 7, 4,56,15,47,73, 7,15,34,15,53,54, 4,54,61, 7,46, 8, 7,51,64, 7,51,56,
- 6,12,64, 6,12,61, 6,18,40, 4,24,72,15,35,15, 6,52,57,15,48,29,15,53,56,
- 5,91,91, 3,53,37, 6,33,65, 6,33,67, 6,33,74, 6,62,62, 6,18,66, 6,43,34,
- 7,39,85, 6, 2, 6,15, 4,88, 6,13, 4,15,12,25,15,17, 8, 6,43,39,15,35,68,
- 4,36,78, 7,32,67,15,67, 4, 6,34, 1, 3,29,31, 6,18,89, 4,10,36, 5,19,69,
- 6,43,54, 4,30,76, 6,34,18,15,42,15, 7,51,91, 6,13,26, 5,19,81,15,54,28,
- 6,13,37, 6,13,29, 6,19,29, 6,19,17, 5,15, 6,15,12,55, 6,26,13, 6,26,14,
- 6,34,40, 6,43,90,15,48,63, 7,16,42, 6, 5,31, 6,13,38, 3,35,19, 6,53,75,
- 7, 5,91, 7,25,77,15, 8,28, 6,19,42,15,29,64, 4,43,64, 7, 6, 7, 6,26,35,
- 0, 0, 0, 4,37,63, 4,50, 1, 7,16,70, 6,63,85, 7, 6,30, 7, 6,28, 7,16,83,
- 15,42,91, 6,64, 3,15,49, 3, 7, 6,45, 7,33,28, 5,76,93, 7,17,13, 7,26,19,
- 4,60,57, 7,33,36, 3,14,54, 6,19,70, 3,40,74,15,49,23, 7, 6,74, 7, 6,73,
- 4,68, 6, 7,66,45, 6,44,82, 7,26,38,15,30,18, 7,26,41, 7,40,77, 7,63,28,
- 6,45, 3,15,55, 7, 4,11, 6, 7, 7, 8,15,55, 8, 6,64,61, 5,40,84,15,60,13,
- 6, 8,91, 4, 7,72, 6,13,73, 3,19,48, 5,27,48, 6,45,40,15,36,72,15,43,55,
- 15,43,54, 4,44,54, 4,56,13, 4,20,55, 6,45,62, 3,36, 5, 6,65, 5, 3, 7,10,
- 6, 5,50, 6, 9, 7,15, 8,60, 6, 9, 8, 0, 0, 0, 6,14, 2, 6,14, 3, 6,20,36,
- 6,14, 4, 6,27,50,15,18,26, 4,20,83, 6,36,11, 4,20,84, 6,35,86, 6,36,27,
- 4,26,70, 6,36,30, 6,36,28, 6,36,29, 6,46,27, 6,65,30, 6,65,47,15,49,68,
- 4,44,89, 7, 7,65, 7, 7,77, 7,18,36,15,55,39, 7,26,79,15,64,61, 7,34,28,
- 7,52,62, 4,71,11, 0, 0, 0, 6,20,39, 4,32,47, 7,27,24, 3,59, 6, 6,27,81,
- 4,26,85, 6,46,38, 4,38,92, 4,45,19,15,50, 4, 7, 8,14,15,49,93, 7,34,64,
- 7,34,63, 3,59,13, 4,68,31, 4,51,44, 6, 5,51, 5,16,30, 6,56,14, 6,56,12,
- 15,37,29, 7,27,65,15,24,42, 5,90,24, 6,28,13, 4,21,37,15,31,27, 6,66,39,
- 7,19,47, 7,57,33, 6, 9,10, 6,56,48, 0, 0, 0, 6,56,60, 3,64,92, 6,28,27,
- 7,19,89, 7,19,83,15,31,51, 3,36,77, 7, 9,36, 6,20,61, 4,16,12, 7,20,17,
- 4,52,23, 7,28,65, 6, 5,59, 4,21,82, 6,57,39, 6,57,42, 7,28,75,15,37,83,
- 6,67,51, 6,67,47, 4,52,42,15,70,62, 7,48,75,15,76,31, 6,67,56, 7,20,90,
- 7,20,81,15,65,42, 6,48, 2, 6,67,78, 7,21,21, 3,54,88, 5,63,62, 7,29,48,
- 15,56,88, 7,43,63, 4,69,10, 7,43,75, 5,29,39, 5,36,21, 6,58,19, 6,68,16,
- /* plane 2, page 250 */
- 0, 29, /* first, last */
- 4,57,86, 6,68,26, 6,28,87, 6,58,29, 4,53, 3, 4,62,64, 6,68,48, 7,30, 9,
- 7,11,53,15,57,18, 7,49,90, 7,58,64, 4,58,57, 7,37,69, 4,63,23, 4,66,78,
- 7,50,37, 5,85,22, 5,85,21,15,76,87, 7,30,60, 6,38,30, 4,72,47, 6,58,64,
- 4, 8,20, 3,60,15, 5,51,49, 7,45, 8, 4,40,87, 7,62,45,
- /* plane 2, page 251: --- */
- /* plane 2, page 252: --- */
- /* plane 2, page 253: --- */
- /* plane 2, page 254: --- */
- /* plane 2, page 255: --- */
- /* plane 3: --- */
- /* plane 4: --- */
- /* plane 5: --- */
- /* plane 6: --- */
- /* plane 7: --- */
- /* plane 8: --- */
- /* plane 9: --- */
- /* plane 10: --- */
- /* plane 11: --- */
- /* plane 12: --- */
- /* plane 13: --- */
- /* plane 14: --- */
- /* plane 15: --- */
- /* plane 16: --- */
-};
-
-static sal_Int32 const aImplUnicodeToCns116431992PageOffsets[] = {
- 0, /* plane 0, page 0; 20/245 bytes (8.2%) */
- -1, /* plane 0, page 1 */
- 245, /* plane 0, page 2; 17/59 bytes (28.8%) */
- 304, /* plane 0, page 3; 146/173 bytes (84.4%) */
- -1, /* plane 0, page 4 */
- -1, /* plane 0, page 5 */
- -1, /* plane 0, page 6 */
- -1, /* plane 0, page 7 */
- -1, /* plane 0, page 8 */
- -1, /* plane 0, page 9 */
- -1, /* plane 0, page 10 */
- -1, /* plane 0, page 11 */
- -1, /* plane 0, page 12 */
- -1, /* plane 0, page 13 */
- -1, /* plane 0, page 14 */
- -1, /* plane 0, page 15 */
- -1, /* plane 0, page 16 */
- -1, /* plane 0, page 17 */
- -1, /* plane 0, page 18 */
- -1, /* plane 0, page 19 */
- -1, /* plane 0, page 20 */
- -1, /* plane 0, page 21 */
- -1, /* plane 0, page 22 */
- -1, /* plane 0, page 23 */
- -1, /* plane 0, page 24 */
- -1, /* plane 0, page 25 */
- -1, /* plane 0, page 26 */
- -1, /* plane 0, page 27 */
- -1, /* plane 0, page 28 */
- -1, /* plane 0, page 29 */
- -1, /* plane 0, page 30 */
- -1, /* plane 0, page 31 */
- 477, /* plane 0, page 32; 41/134 bytes (30.6%) */
- 611, /* plane 0, page 33; 95/455 bytes (20.9%) */
- 1066, /* plane 0, page 34; 59/515 bytes (11.5%) */
- -1, /* plane 0, page 35 */
- 1581, /* plane 0, page 36; 161/380 bytes (42.4%) */
- 1961, /* plane 0, page 37; 164/692 bytes (23.7%) */
- 2653, /* plane 0, page 38; 20/188 bytes (10.6%) */
- -1, /* plane 0, page 39 */
- -1, /* plane 0, page 40 */
- -1, /* plane 0, page 41 */
- -1, /* plane 0, page 42 */
- -1, /* plane 0, page 43 */
- -1, /* plane 0, page 44 */
- -1, /* plane 0, page 45 */
- -1, /* plane 0, page 46 */
- -1, /* plane 0, page 47 */
- 2841, /* plane 0, page 48; 89/758 bytes (11.7%) */
- 3599, /* plane 0, page 49; 113/113 bytes (100.0%) */
- 3712, /* plane 0, page 50; 5/5 bytes (100.0%) */
- 3717, /* plane 0, page 51; 35/218 bytes (16.1%) */
- 3935, /* plane 0, page 52; 548/767 bytes (71.4%) */
- 4702, /* plane 0, page 53; 623/770 bytes (80.9%) */
- 5472, /* plane 0, page 54; 653/767 bytes (85.1%) */
- 6239, /* plane 0, page 55; 692/767 bytes (90.2%) */
- 7006, /* plane 0, page 56; 662/770 bytes (86.0%) */
- 7776, /* plane 0, page 57; 698/767 bytes (91.0%) */
- 8543, /* plane 0, page 58; 662/764 bytes (86.6%) */
- 9307, /* plane 0, page 59; 641/767 bytes (83.6%) */
- 10074, /* plane 0, page 60; 695/770 bytes (90.3%) */
- 10844, /* plane 0, page 61; 647/770 bytes (84.0%) */
- 11614, /* plane 0, page 62; 674/770 bytes (87.5%) */
- 12384, /* plane 0, page 63; 716/767 bytes (93.4%) */
- 13151, /* plane 0, page 64; 710/770 bytes (92.2%) */
- 13921, /* plane 0, page 65; 704/767 bytes (91.8%) */
- 14688, /* plane 0, page 66; 740/770 bytes (96.1%) */
- 15458, /* plane 0, page 67; 707/770 bytes (91.8%) */
- 16228, /* plane 0, page 68; 698/770 bytes (90.6%) */
- 16998, /* plane 0, page 69; 740/770 bytes (96.1%) */
- 17768, /* plane 0, page 70; 725/770 bytes (94.2%) */
- 18538, /* plane 0, page 71; 716/770 bytes (93.0%) */
- 19308, /* plane 0, page 72; 719/770 bytes (93.4%) */
- 20078, /* plane 0, page 73; 668/767 bytes (87.1%) */
- 20845, /* plane 0, page 74; 755/770 bytes (98.1%) */
- 21615, /* plane 0, page 75; 746/770 bytes (96.9%) */
- 22385, /* plane 0, page 76; 716/770 bytes (93.0%) */
- 23155, /* plane 0, page 77; 515/548 bytes (94.0%) */
- 23703, /* plane 0, page 78; 599/770 bytes (77.8%) */
- 24473, /* plane 0, page 79; 692/770 bytes (89.9%) */
- 25243, /* plane 0, page 80; 734/770 bytes (95.3%) */
- 26013, /* plane 0, page 81; 704/767 bytes (91.8%) */
- 26780, /* plane 0, page 82; 716/770 bytes (93.0%) */
- 27550, /* plane 0, page 83; 704/770 bytes (91.4%) */
- 28320, /* plane 0, page 84; 689/770 bytes (89.5%) */
- 29090, /* plane 0, page 85; 683/770 bytes (88.7%) */
- 29860, /* plane 0, page 86; 710/770 bytes (92.2%) */
- 30630, /* plane 0, page 87; 692/770 bytes (89.9%) */
- 31400, /* plane 0, page 88; 713/770 bytes (92.6%) */
- 32170, /* plane 0, page 89; 731/770 bytes (94.9%) */
- 32940, /* plane 0, page 90; 731/770 bytes (94.9%) */
- 33710, /* plane 0, page 91; 734/770 bytes (95.3%) */
- 34480, /* plane 0, page 92; 674/770 bytes (87.5%) */
- 35250, /* plane 0, page 93; 722/770 bytes (93.8%) */
- 36020, /* plane 0, page 94; 716/770 bytes (93.0%) */
- 36790, /* plane 0, page 95; 740/770 bytes (96.1%) */
- 37560, /* plane 0, page 96; 692/770 bytes (89.9%) */
- 38330, /* plane 0, page 97; 749/770 bytes (97.3%) */
- 39100, /* plane 0, page 98; 707/770 bytes (91.8%) */
- 39870, /* plane 0, page 99; 686/767 bytes (89.4%) */
- 40637, /* plane 0, page 100; 719/761 bytes (94.5%) */
- 41398, /* plane 0, page 101; 731/770 bytes (94.9%) */
- 42168, /* plane 0, page 102; 734/770 bytes (95.3%) */
- 42938, /* plane 0, page 103; 716/770 bytes (93.0%) */
- 43708, /* plane 0, page 104; 668/770 bytes (86.8%) */
- 44478, /* plane 0, page 105; 692/770 bytes (89.9%) */
- 45248, /* plane 0, page 106; 728/770 bytes (94.5%) */
- 46018, /* plane 0, page 107; 731/770 bytes (94.9%) */
- 46788, /* plane 0, page 108; 695/770 bytes (90.3%) */
- 47558, /* plane 0, page 109; 683/770 bytes (88.7%) */
- 48328, /* plane 0, page 110; 704/770 bytes (91.4%) */
- 49098, /* plane 0, page 111; 746/770 bytes (96.9%) */
- 49868, /* plane 0, page 112; 710/770 bytes (92.2%) */
- 50638, /* plane 0, page 113; 737/770 bytes (95.7%) */
- 51408, /* plane 0, page 114; 719/770 bytes (93.4%) */
- 52178, /* plane 0, page 115; 716/770 bytes (93.0%) */
- 52948, /* plane 0, page 116; 731/770 bytes (94.9%) */
- 53718, /* plane 0, page 117; 683/770 bytes (88.7%) */
- 54488, /* plane 0, page 118; 704/770 bytes (91.4%) */
- 55258, /* plane 0, page 119; 734/767 bytes (95.7%) */
- 56025, /* plane 0, page 120; 677/764 bytes (88.6%) */
- 56789, /* plane 0, page 121; 728/770 bytes (94.5%) */
- 57559, /* plane 0, page 122; 713/770 bytes (92.6%) */
- 58329, /* plane 0, page 123; 680/770 bytes (88.3%) */
- 59099, /* plane 0, page 124; 731/770 bytes (94.9%) */
- 59869, /* plane 0, page 125; 749/770 bytes (97.3%) */
- 60639, /* plane 0, page 126; 455/479 bytes (95.0%) */
- 61118, /* plane 0, page 127; 572/608 bytes (94.1%) */
- 61726, /* plane 0, page 128; 698/770 bytes (90.6%) */
- 62496, /* plane 0, page 129; 686/770 bytes (89.1%) */
- 63266, /* plane 0, page 130; 695/770 bytes (90.3%) */
- 64036, /* plane 0, page 131; 662/770 bytes (86.0%) */
- 64806, /* plane 0, page 132; 695/770 bytes (90.3%) */
- 65576, /* plane 0, page 133; 740/770 bytes (96.1%) */
- 66346, /* plane 0, page 134; 710/770 bytes (92.2%) */
- 67116, /* plane 0, page 135; 734/770 bytes (95.3%) */
- 67886, /* plane 0, page 136; 710/770 bytes (92.2%) */
- 68656, /* plane 0, page 137; 686/770 bytes (89.1%) */
- 69426, /* plane 0, page 138; 746/770 bytes (96.9%) */
- 70196, /* plane 0, page 139; 470/482 bytes (97.5%) */
- 70678, /* plane 0, page 140; 599/605 bytes (99.0%) */
- 71283, /* plane 0, page 141; 518/770 bytes (67.3%) */
- 72053, /* plane 0, page 142; 713/770 bytes (92.6%) */
- 72823, /* plane 0, page 143; 575/770 bytes (74.7%) */
- 73593, /* plane 0, page 144; 716/770 bytes (93.0%) */
- 74363, /* plane 0, page 145; 713/770 bytes (92.6%) */
- 75133, /* plane 0, page 146; 755/770 bytes (98.1%) */
- 75903, /* plane 0, page 147; 755/770 bytes (98.1%) */
- 76673, /* plane 0, page 148; 389/401 bytes (97.0%) */
- 77074, /* plane 0, page 149; 332/383 bytes (86.7%) */
- 77457, /* plane 0, page 150; 632/686 bytes (92.1%) */
- 78143, /* plane 0, page 151; 707/770 bytes (91.8%) */
- 78913, /* plane 0, page 152; 554/770 bytes (71.9%) */
- 79683, /* plane 0, page 153; 602/770 bytes (78.2%) */
- 80453, /* plane 0, page 154; 572/770 bytes (74.3%) */
- 81223, /* plane 0, page 155; 728/770 bytes (94.5%) */
- 81993, /* plane 0, page 156; 419/770 bytes (54.4%) */
- 82763, /* plane 0, page 157; 737/770 bytes (95.7%) */
- 83533, /* plane 0, page 158; 485/770 bytes (63.0%) */
- 84303, /* plane 0, page 159; 431/500 bytes (86.2%) */
- -1, /* plane 0, page 160 */
- -1, /* plane 0, page 161 */
- -1, /* plane 0, page 162 */
- -1, /* plane 0, page 163 */
- -1, /* plane 0, page 164 */
- -1, /* plane 0, page 165 */
- -1, /* plane 0, page 166 */
- -1, /* plane 0, page 167 */
- -1, /* plane 0, page 168 */
- -1, /* plane 0, page 169 */
- -1, /* plane 0, page 170 */
- -1, /* plane 0, page 171 */
- -1, /* plane 0, page 172 */
- -1, /* plane 0, page 173 */
- -1, /* plane 0, page 174 */
- -1, /* plane 0, page 175 */
- -1, /* plane 0, page 176 */
- -1, /* plane 0, page 177 */
- -1, /* plane 0, page 178 */
- -1, /* plane 0, page 179 */
- -1, /* plane 0, page 180 */
- -1, /* plane 0, page 181 */
- -1, /* plane 0, page 182 */
- -1, /* plane 0, page 183 */
- -1, /* plane 0, page 184 */
- -1, /* plane 0, page 185 */
- -1, /* plane 0, page 186 */
- -1, /* plane 0, page 187 */
- -1, /* plane 0, page 188 */
- -1, /* plane 0, page 189 */
- -1, /* plane 0, page 190 */
- -1, /* plane 0, page 191 */
- -1, /* plane 0, page 192 */
- -1, /* plane 0, page 193 */
- -1, /* plane 0, page 194 */
- -1, /* plane 0, page 195 */
- -1, /* plane 0, page 196 */
- -1, /* plane 0, page 197 */
- -1, /* plane 0, page 198 */
- -1, /* plane 0, page 199 */
- -1, /* plane 0, page 200 */
- -1, /* plane 0, page 201 */
- -1, /* plane 0, page 202 */
- -1, /* plane 0, page 203 */
- -1, /* plane 0, page 204 */
- -1, /* plane 0, page 205 */
- -1, /* plane 0, page 206 */
- -1, /* plane 0, page 207 */
- -1, /* plane 0, page 208 */
- -1, /* plane 0, page 209 */
- -1, /* plane 0, page 210 */
- -1, /* plane 0, page 211 */
- -1, /* plane 0, page 212 */
- -1, /* plane 0, page 213 */
- -1, /* plane 0, page 214 */
- -1, /* plane 0, page 215 */
- -1, /* plane 0, page 216 */
- -1, /* plane 0, page 217 */
- -1, /* plane 0, page 218 */
- -1, /* plane 0, page 219 */
- -1, /* plane 0, page 220 */
- -1, /* plane 0, page 221 */
- -1, /* plane 0, page 222 */
- -1, /* plane 0, page 223 */
- -1, /* plane 0, page 224 */
- -1, /* plane 0, page 225 */
- -1, /* plane 0, page 226 */
- -1, /* plane 0, page 227 */
- -1, /* plane 0, page 228 */
- -1, /* plane 0, page 229 */
- -1, /* plane 0, page 230 */
- -1, /* plane 0, page 231 */
- -1, /* plane 0, page 232 */
- -1, /* plane 0, page 233 */
- -1, /* plane 0, page 234 */
- -1, /* plane 0, page 235 */
- -1, /* plane 0, page 236 */
- -1, /* plane 0, page 237 */
- -1, /* plane 0, page 238 */
- -1, /* plane 0, page 239 */
- -1, /* plane 0, page 240 */
- -1, /* plane 0, page 241 */
- -1, /* plane 0, page 242 */
- -1, /* plane 0, page 243 */
- -1, /* plane 0, page 244 */
- -1, /* plane 0, page 245 */
- -1, /* plane 0, page 246 */
- -1, /* plane 0, page 247 */
- -1, /* plane 0, page 248 */
- -1, /* plane 0, page 249 */
- 84803, /* plane 0, page 250; 5/5 bytes (100.0%) */
- -1, /* plane 0, page 251 */
- -1, /* plane 0, page 252 */
- -1, /* plane 0, page 253 */
- 84808, /* plane 0, page 254; 152/182 bytes (83.5%) */
- 84990, /* plane 0, page 255; 272/689 bytes (39.5%) */
- /* plane 1: --- */
- 85679, /* plane 2, page 0; 431/767 bytes (56.2%) */
- 86446, /* plane 2, page 1; 485/764 bytes (63.5%) */
- 87210, /* plane 2, page 2; 599/770 bytes (77.8%) */
- 87980, /* plane 2, page 3; 506/758 bytes (66.8%) */
- 88738, /* plane 2, page 4; 500/764 bytes (65.4%) */
- 89502, /* plane 2, page 5; 563/770 bytes (73.1%) */
- 90272, /* plane 2, page 6; 584/770 bytes (75.8%) */
- 91042, /* plane 2, page 7; 530/764 bytes (69.4%) */
- 91806, /* plane 2, page 8; 578/770 bytes (75.1%) */
- 92576, /* plane 2, page 9; 569/764 bytes (74.5%) */
- 93340, /* plane 2, page 10; 545/770 bytes (70.8%) */
- 94110, /* plane 2, page 11; 602/743 bytes (81.0%) */
- 94853, /* plane 2, page 12; 521/758 bytes (68.7%) */
- 95611, /* plane 2, page 13; 407/758 bytes (53.7%) */
- 96369, /* plane 2, page 14; 371/770 bytes (48.2%) */
- 97139, /* plane 2, page 15; 404/770 bytes (52.5%) */
- 97909, /* plane 2, page 16; 353/746 bytes (47.3%) */
- 98655, /* plane 2, page 17; 422/764 bytes (55.2%) */
- 99419, /* plane 2, page 18; 482/749 bytes (64.4%) */
- 100168, /* plane 2, page 19; 497/767 bytes (64.8%) */
- 100935, /* plane 2, page 20; 464/770 bytes (60.3%) */
- 101705, /* plane 2, page 21; 515/767 bytes (67.1%) */
- 102472, /* plane 2, page 22; 527/767 bytes (68.7%) */
- 103239, /* plane 2, page 23; 602/770 bytes (78.2%) */
- 104009, /* plane 2, page 24; 545/770 bytes (70.8%) */
- 104779, /* plane 2, page 25; 512/758 bytes (67.5%) */
- 105537, /* plane 2, page 26; 557/770 bytes (72.3%) */
- 106307, /* plane 2, page 27; 428/761 bytes (56.2%) */
- 107068, /* plane 2, page 28; 539/764 bytes (70.5%) */
- 107832, /* plane 2, page 29; 560/770 bytes (72.7%) */
- 108602, /* plane 2, page 30; 485/761 bytes (63.7%) */
- 109363, /* plane 2, page 31; 476/740 bytes (64.3%) */
- 110103, /* plane 2, page 32; 563/767 bytes (73.4%) */
- 110870, /* plane 2, page 33; 545/767 bytes (71.1%) */
- 111637, /* plane 2, page 34; 587/770 bytes (76.2%) */
- 112407, /* plane 2, page 35; 545/767 bytes (71.1%) */
- 113174, /* plane 2, page 36; 608/767 bytes (79.3%) */
- 113941, /* plane 2, page 37; 560/770 bytes (72.7%) */
- 114711, /* plane 2, page 38; 572/770 bytes (74.3%) */
- 115481, /* plane 2, page 39; 560/770 bytes (72.7%) */
- 116251, /* plane 2, page 40; 491/770 bytes (63.8%) */
- 117021, /* plane 2, page 41; 542/770 bytes (70.4%) */
- 117791, /* plane 2, page 42; 488/758 bytes (64.4%) */
- 118549, /* plane 2, page 43; 509/770 bytes (66.1%) */
- 119319, /* plane 2, page 44; 533/767 bytes (69.5%) */
- 120086, /* plane 2, page 45; 437/770 bytes (56.8%) */
- 120856, /* plane 2, page 46; 506/767 bytes (66.0%) */
- 121623, /* plane 2, page 47; 533/755 bytes (70.6%) */
- 122378, /* plane 2, page 48; 536/770 bytes (69.6%) */
- 123148, /* plane 2, page 49; 527/770 bytes (68.4%) */
- 123918, /* plane 2, page 50; 416/770 bytes (54.0%) */
- 124688, /* plane 2, page 51; 503/758 bytes (66.4%) */
- 125446, /* plane 2, page 52; 593/770 bytes (77.0%) */
- 126216, /* plane 2, page 53; 521/758 bytes (68.7%) */
- 126974, /* plane 2, page 54; 539/770 bytes (70.0%) */
- 127744, /* plane 2, page 55; 539/767 bytes (70.3%) */
- 128511, /* plane 2, page 56; 584/767 bytes (76.1%) */
- 129278, /* plane 2, page 57; 593/770 bytes (77.0%) */
- 130048, /* plane 2, page 58; 563/770 bytes (73.1%) */
- 130818, /* plane 2, page 59; 617/770 bytes (80.1%) */
- 131588, /* plane 2, page 60; 533/746 bytes (71.4%) */
- 132334, /* plane 2, page 61; 551/767 bytes (71.8%) */
- 133101, /* plane 2, page 62; 533/770 bytes (69.2%) */
- 133871, /* plane 2, page 63; 530/770 bytes (68.8%) */
- 134641, /* plane 2, page 64; 533/767 bytes (69.5%) */
- 135408, /* plane 2, page 65; 506/755 bytes (67.0%) */
- 136163, /* plane 2, page 66; 512/755 bytes (67.8%) */
- 136918, /* plane 2, page 67; 539/767 bytes (70.3%) */
- 137685, /* plane 2, page 68; 491/767 bytes (64.0%) */
- 138452, /* plane 2, page 69; 590/770 bytes (76.6%) */
- 139222, /* plane 2, page 70; 521/770 bytes (67.7%) */
- 139992, /* plane 2, page 71; 530/764 bytes (69.4%) */
- 140756, /* plane 2, page 72; 521/740 bytes (70.4%) */
- 141496, /* plane 2, page 73; 527/764 bytes (69.0%) */
- 142260, /* plane 2, page 74; 566/767 bytes (73.8%) */
- 143027, /* plane 2, page 75; 536/764 bytes (70.2%) */
- 143791, /* plane 2, page 76; 506/770 bytes (65.7%) */
- 144561, /* plane 2, page 77; 512/770 bytes (66.5%) */
- 145331, /* plane 2, page 78; 506/755 bytes (67.0%) */
- 146086, /* plane 2, page 79; 509/770 bytes (66.1%) */
- 146856, /* plane 2, page 80; 590/761 bytes (77.5%) */
- 147617, /* plane 2, page 81; 509/770 bytes (66.1%) */
- 148387, /* plane 2, page 82; 491/770 bytes (63.8%) */
- 149157, /* plane 2, page 83; 545/767 bytes (71.1%) */
- 149924, /* plane 2, page 84; 494/770 bytes (64.2%) */
- 150694, /* plane 2, page 85; 530/770 bytes (68.8%) */
- 151464, /* plane 2, page 86; 449/767 bytes (58.5%) */
- 152231, /* plane 2, page 87; 500/767 bytes (65.2%) */
- 152998, /* plane 2, page 88; 461/767 bytes (60.1%) */
- 153765, /* plane 2, page 89; 563/770 bytes (73.1%) */
- 154535, /* plane 2, page 90; 545/770 bytes (70.8%) */
- 155305, /* plane 2, page 91; 623/770 bytes (80.9%) */
- 156075, /* plane 2, page 92; 647/764 bytes (84.7%) */
- 156839, /* plane 2, page 93; 587/770 bytes (76.2%) */
- 157609, /* plane 2, page 94; 518/770 bytes (67.3%) */
- 158379, /* plane 2, page 95; 578/770 bytes (75.1%) */
- 159149, /* plane 2, page 96; 545/755 bytes (72.2%) */
- 159904, /* plane 2, page 97; 575/743 bytes (77.4%) */
- 160647, /* plane 2, page 98; 536/770 bytes (69.6%) */
- 161417, /* plane 2, page 99; 557/767 bytes (72.6%) */
- 162184, /* plane 2, page 100; 602/767 bytes (78.5%) */
- 162951, /* plane 2, page 101; 617/767 bytes (80.4%) */
- 163718, /* plane 2, page 102; 575/752 bytes (76.5%) */
- 164470, /* plane 2, page 103; 503/731 bytes (68.8%) */
- 165201, /* plane 2, page 104; 524/770 bytes (68.1%) */
- 165971, /* plane 2, page 105; 608/770 bytes (79.0%) */
- 166741, /* plane 2, page 106; 587/770 bytes (76.2%) */
- 167511, /* plane 2, page 107; 653/770 bytes (84.8%) */
- 168281, /* plane 2, page 108; 662/770 bytes (86.0%) */
- 169051, /* plane 2, page 109; 611/770 bytes (79.4%) */
- 169821, /* plane 2, page 110; 635/770 bytes (82.5%) */
- 170591, /* plane 2, page 111; 605/770 bytes (78.6%) */
- 171361, /* plane 2, page 112; 611/770 bytes (79.4%) */
- 172131, /* plane 2, page 113; 608/770 bytes (79.0%) */
- 172901, /* plane 2, page 114; 572/734 bytes (77.9%) */
- 173635, /* plane 2, page 115; 590/767 bytes (76.9%) */
- 174402, /* plane 2, page 116; 602/770 bytes (78.2%) */
- 175172, /* plane 2, page 117; 614/770 bytes (79.7%) */
- 175942, /* plane 2, page 118; 617/770 bytes (80.1%) */
- 176712, /* plane 2, page 119; 560/770 bytes (72.7%) */
- 177482, /* plane 2, page 120; 596/767 bytes (77.7%) */
- 178249, /* plane 2, page 121; 590/761 bytes (77.5%) */
- 179010, /* plane 2, page 122; 659/770 bytes (85.6%) */
- 179780, /* plane 2, page 123; 635/770 bytes (82.5%) */
- 180550, /* plane 2, page 124; 659/767 bytes (85.9%) */
- 181317, /* plane 2, page 125; 596/767 bytes (77.7%) */
- 182084, /* plane 2, page 126; 575/770 bytes (74.7%) */
- 182854, /* plane 2, page 127; 632/770 bytes (82.1%) */
- 183624, /* plane 2, page 128; 461/770 bytes (59.9%) */
- 184394, /* plane 2, page 129; 485/764 bytes (63.5%) */
- 185158, /* plane 2, page 130; 497/752 bytes (66.1%) */
- 185910, /* plane 2, page 131; 578/764 bytes (75.7%) */
- 186674, /* plane 2, page 132; 557/767 bytes (72.6%) */
- 187441, /* plane 2, page 133; 533/764 bytes (69.8%) */
- 188205, /* plane 2, page 134; 602/770 bytes (78.2%) */
- 188975, /* plane 2, page 135; 611/770 bytes (79.4%) */
- 189745, /* plane 2, page 136; 551/770 bytes (71.6%) */
- 190515, /* plane 2, page 137; 506/770 bytes (65.7%) */
- 191285, /* plane 2, page 138; 461/764 bytes (60.3%) */
- 192049, /* plane 2, page 139; 440/758 bytes (58.0%) */
- 192807, /* plane 2, page 140; 485/770 bytes (63.0%) */
- 193577, /* plane 2, page 141; 494/761 bytes (64.9%) */
- 194338, /* plane 2, page 142; 515/725 bytes (71.0%) */
- 195063, /* plane 2, page 143; 614/770 bytes (79.7%) */
- 195833, /* plane 2, page 144; 617/770 bytes (80.1%) */
- 196603, /* plane 2, page 145; 515/770 bytes (66.9%) */
- 197373, /* plane 2, page 146; 575/761 bytes (75.6%) */
- 198134, /* plane 2, page 147; 614/758 bytes (81.0%) */
- 198892, /* plane 2, page 148; 662/764 bytes (86.6%) */
- 199656, /* plane 2, page 149; 590/758 bytes (77.8%) */
- 200414, /* plane 2, page 150; 566/767 bytes (73.8%) */
- 201181, /* plane 2, page 151; 524/749 bytes (70.0%) */
- 201930, /* plane 2, page 152; 536/722 bytes (74.2%) */
- 202652, /* plane 2, page 153; 485/692 bytes (70.1%) */
- 203344, /* plane 2, page 154; 530/719 bytes (73.7%) */
- 204063, /* plane 2, page 155; 545/770 bytes (70.8%) */
- 204833, /* plane 2, page 156; 647/767 bytes (84.4%) */
- 205600, /* plane 2, page 157; 575/770 bytes (74.7%) */
- 206370, /* plane 2, page 158; 461/749 bytes (61.5%) */
- 207119, /* plane 2, page 159; 548/755 bytes (72.6%) */
- 207874, /* plane 2, page 160; 581/770 bytes (75.5%) */
- 208644, /* plane 2, page 161; 530/770 bytes (68.8%) */
- 209414, /* plane 2, page 162; 542/767 bytes (70.7%) */
- 210181, /* plane 2, page 163; 614/767 bytes (80.1%) */
- 210948, /* plane 2, page 164; 560/770 bytes (72.7%) */
- 211718, /* plane 2, page 165; 593/770 bytes (77.0%) */
- 212488, /* plane 2, page 166; 503/647 bytes (77.7%) */
- -1, /* plane 2, page 167 */
- -1, /* plane 2, page 168 */
- -1, /* plane 2, page 169 */
- -1, /* plane 2, page 170 */
- -1, /* plane 2, page 171 */
- -1, /* plane 2, page 172 */
- -1, /* plane 2, page 173 */
- -1, /* plane 2, page 174 */
- -1, /* plane 2, page 175 */
- -1, /* plane 2, page 176 */
- -1, /* plane 2, page 177 */
- -1, /* plane 2, page 178 */
- -1, /* plane 2, page 179 */
- -1, /* plane 2, page 180 */
- -1, /* plane 2, page 181 */
- -1, /* plane 2, page 182 */
- -1, /* plane 2, page 183 */
- -1, /* plane 2, page 184 */
- -1, /* plane 2, page 185 */
- -1, /* plane 2, page 186 */
- -1, /* plane 2, page 187 */
- -1, /* plane 2, page 188 */
- -1, /* plane 2, page 189 */
- -1, /* plane 2, page 190 */
- -1, /* plane 2, page 191 */
- -1, /* plane 2, page 192 */
- -1, /* plane 2, page 193 */
- -1, /* plane 2, page 194 */
- -1, /* plane 2, page 195 */
- -1, /* plane 2, page 196 */
- -1, /* plane 2, page 197 */
- -1, /* plane 2, page 198 */
- -1, /* plane 2, page 199 */
- -1, /* plane 2, page 200 */
- -1, /* plane 2, page 201 */
- -1, /* plane 2, page 202 */
- -1, /* plane 2, page 203 */
- -1, /* plane 2, page 204 */
- -1, /* plane 2, page 205 */
- -1, /* plane 2, page 206 */
- -1, /* plane 2, page 207 */
- -1, /* plane 2, page 208 */
- -1, /* plane 2, page 209 */
- -1, /* plane 2, page 210 */
- -1, /* plane 2, page 211 */
- -1, /* plane 2, page 212 */
- -1, /* plane 2, page 213 */
- -1, /* plane 2, page 214 */
- -1, /* plane 2, page 215 */
- -1, /* plane 2, page 216 */
- -1, /* plane 2, page 217 */
- -1, /* plane 2, page 218 */
- -1, /* plane 2, page 219 */
- -1, /* plane 2, page 220 */
- -1, /* plane 2, page 221 */
- -1, /* plane 2, page 222 */
- -1, /* plane 2, page 223 */
- -1, /* plane 2, page 224 */
- -1, /* plane 2, page 225 */
- -1, /* plane 2, page 226 */
- -1, /* plane 2, page 227 */
- -1, /* plane 2, page 228 */
- -1, /* plane 2, page 229 */
- -1, /* plane 2, page 230 */
- -1, /* plane 2, page 231 */
- -1, /* plane 2, page 232 */
- -1, /* plane 2, page 233 */
- -1, /* plane 2, page 234 */
- -1, /* plane 2, page 235 */
- -1, /* plane 2, page 236 */
- -1, /* plane 2, page 237 */
- -1, /* plane 2, page 238 */
- -1, /* plane 2, page 239 */
- -1, /* plane 2, page 240 */
- -1, /* plane 2, page 241 */
- -1, /* plane 2, page 242 */
- -1, /* plane 2, page 243 */
- -1, /* plane 2, page 244 */
- -1, /* plane 2, page 245 */
- -1, /* plane 2, page 246 */
- -1, /* plane 2, page 247 */
- 213135, /* plane 2, page 248; 761/770 bytes (98.8%) */
- 213905, /* plane 2, page 249; 758/770 bytes (98.4%) */
- 214675, /* plane 2, page 250; 92/92 bytes (100.0%) */
- -1, /* plane 2, page 251 */
- -1, /* plane 2, page 252 */
- -1, /* plane 2, page 253 */
- -1, /* plane 2, page 254 */
- -1, /* plane 2, page 255 */
- /* plane 3: --- */
- /* plane 4: --- */
- /* plane 5: --- */
- /* plane 6: --- */
- /* plane 7: --- */
- /* plane 8: --- */
- /* plane 9: --- */
- /* plane 10: --- */
- /* plane 11: --- */
- /* plane 12: --- */
- /* plane 13: --- */
- /* plane 14: --- */
- /* plane 15: --- */
- /* plane 16: --- */
-};
-
-static sal_Int32 const aImplUnicodeToCns116431992PlaneOffsets[] = {
- 0 * 256, /* plane 0; 496/1024 bytes (48.4%), 74432/85679 bytes (86.9%) */
- -1, /* plane 1 */
- 1 * 256, /* plane 2; 680/1024 bytes (66.4%), 92476/129088 bytes (71.6%) */
- -1, /* plane 3 */
- -1, /* plane 4 */
- -1, /* plane 5 */
- -1, /* plane 6 */
- -1, /* plane 7 */
- -1, /* plane 8 */
- -1, /* plane 9 */
- -1, /* plane 10 */
- -1, /* plane 11 */
- -1, /* plane 12 */
- -1, /* plane 13 */
- -1, /* plane 14 */
- -1, /* plane 15 */
- -1, /* plane 16 */
- /* 8/68 bytes (11.8%), 1176/2048 bytes (57.4%), 166908/214767 bytes (77.7%) */
-};
diff --git a/sal/textenc/generate/gb180302000.pl b/sal/textenc/generate/gb180302000.pl
deleted file mode 100644
index 5d9f6c659..000000000
--- a/sal/textenc/generate/gb180302000.pl
+++ /dev/null
@@ -1,309 +0,0 @@
-#!/usr/bin/perl
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-# The following files must be available in a ./input subdir:
-
-# <http://oss.software.ibm.com/cvs/icu/~checkout~/charset/data/xml/
-# gb-18030-2000.xml?rev=1.4&content-type=text/plain>:
-# "modified version="3" date="2001-02-21""
-
-$id = "Gb180302000";
-
-sub printUtf32
-{
- my $utf32 = $_[0];
- return sprintf("U+%04X", $utf32);
-}
-
-sub printGb
-{
- if (defined($_[2]))
- {
- return sprintf("%02X%02X%02X%02X", $_[0], $_[1], $_[2], $_[3]);
- }
- elsif (defined($_[1]))
- {
- return sprintf("%02X%02X", $_[0], $_[1]);
- }
- else
- {
- return sprintf("%02X", $_[0]);
- }
-}
-
-$gb_map_2_count = 0;
-$gb_map_4_count = 0;
-$gb_map_4_ranges = 0;
-$gb_map_4_max = 0;
-$uni_map_count = 0;
-
-$range_count = 0;
-
-if (1)
-{
- $filename = "gb-18030-2000.xml";
- open IN, ("input/" . $filename) or die "Cannot read " . $filename;
- while (<IN>)
- {
- if (/^[ \t]*<a +u=\"([0-9A-F]+)\" +b=\"([0-7][0-9A-F])\"\/>$/)
- {
- $utf32 = oct("0x" . $1);
- $gb1 = oct("0x" . $2);
- ($utf32 == $gb1)
- or die "Bad " . printUtf32($utf32) . " to " . printGb($gb1);
- }
- elsif (/^[ \t]*<a +u=\"([0-9A-F]+)\" +b=\"([89A-F][0-9A-F]) ([4-789A-F][0-9A-F])\"\/>$/)
- {
- $utf32 = oct("0x" . $1);
- $gb1 = oct("0x" . $2);
- $gb2 = oct("0x" . $3);
- $gb_code = ($gb1 - 0x81) * 190
- + ($gb2 <= 0x7E ? $gb2 - 0x40 : $gb2 - 0x80 + 63);
- !defined($gb_map_2[$gb_code])
- or die "Redefined " . printGb($gb1, $gb2);
- $gb_map_2[$gb_code] = $utf32;
- ++$gb_map_2_count;
-
- !defined($uni_map[$utf32]) or die "Double Unicode mapping";
- $uni_map[$utf32] = $gb1 << 8 | $gb2;
- ++$uni_map_count;
- }
- elsif (/^[ \t]*<a +u=\"([0-9A-F]+)\" +b=\"([89A-F][0-9A-F]) (3[0-9]) ([89A-F][0-9A-F]) (3[0-9])\"\/>$/)
- {
- $utf32 = oct("0x" . $1);
- $gb1 = oct("0x" . $2);
- $gb2 = oct("0x" . $3);
- $gb3 = oct("0x" . $4);
- $gb4 = oct("0x" . $5);
- $gb_code = ($gb1 - 0x81) * 12600
- + ($gb2 - 0x30) * 1260
- + ($gb3 - 0x81) * 10
- + ($gb4 - 0x30);
- !defined($gb_map_4[$gb_code])
- or die "Redefined " . printGb($gb1, $gb2, $gb3, $gb4);
- $gb_map_4[$gb_code] = $utf32;
- ++$gb_map_4_count;
- $gb_map_4_max = $gb_code if ($gb_code > $gb_map_4_max);
-
- !defined($uni_map[$utf32]) or die "Double Unicode mapping";
- $uni_map[$utf32] = $gb1 << 24 | $gb2 << 16 | $gb3 << 8 | $gb4;
- ++$uni_map_count;
- }
- elsif (/<a /)
- {
- die "Bad format";
- }
- elsif (/^[ \t]*<range +uFirst=\"([0-9A-F]+)\" +uLast=\"([0-9A-F]+)\" +bFirst=\"([89A-F][0-9A-F]) (3[0-9]) ([89A-F][0-9A-F]) (3[0-9])\" +bLast=\"([89A-F][0-9A-F]) (3[0-9]) ([89A-F][0-9A-F]) (3[0-9])\" +bMin=\"81 30 81 30\" +bMax=\"FE 39 FE 39\"\/>$/)
- {
- $utf32_first = oct("0x" . $1);
- $utf32_last = oct("0x" . $2);
- $gb1_first = oct("0x" . $3);
- $gb2_first = oct("0x" . $4);
- $gb3_first = oct("0x" . $5);
- $gb4_first = oct("0x" . $6);
- $gb1_last = oct("0x" . $7);
- $gb2_last = oct("0x" . $8);
- $gb3_last = oct("0x" . $9);
- $gb4_last = oct("0x" . $10);
- $linear_first
- = ($gb1_first - 0x81) * 12600
- + ($gb2_first - 0x30) * 1260
- + ($gb3_first - 0x81) * 10
- + ($gb4_first - 0x30);
- $linear_last
- = ($gb1_last - 0x81) * 12600
- + ($gb2_last - 0x30) * 1260
- + ($gb3_last - 0x81) * 10
- + ($gb4_last - 0x30);
- ($utf32_last - $utf32_first == $linear_last - $linear_first)
- or die "Bad range";
- if ($linear_first != 189000 || $linear_last != 1237575)
- {
- $range_uni_first[$range_count] = $utf32_first;
- $range_uni_last[$range_count]
- = ($utf32_last == 0xD7FF ? 0xDFFF : $utf32_last);
- $range_linear_first[$range_count] = $linear_first;
- $range_linear_last[$range_count] = $linear_last;
- ++$range_count;
- $gb_map_4_ranges += $linear_last - $linear_first + 1;
- $gb_map_4_max = $linear_last
- if ($linear_last > $gb_map_4_max);
- }
- }
- elsif (/<range /)
- {
- die "Bad format";
- }
- }
- close IN;
-}
-
-print "gb_map_2_count = ", $gb_map_2_count,
- ", gb_map_4_count = ", $gb_map_4_count,
- ", gb_map_4_ranges = ", $gb_map_4_ranges,
- ", gb_map_4_max = ", $gb_map_4_max,
- ", uni_map_count = ", $uni_map_count, "\n";
-($gb_map_2_count == 23940) or die "Bad gb_map_2_count != 23940";
-($gb_map_4_max == $gb_map_4_count + $gb_map_4_ranges - 1)
- or die "Bad gb_map_4_max != gb_map_4_count + gb_map_4_ranges";
-($uni_map_count + $gb_map_4_ranges == 0x10000 - (0xE000 - 0xD800) - 0x80)
- or die "Bad uni_map_count";
-
-$range_index = 0;
-$gb_nonrangedataindex[$range_index] = $gb_map_2_count;
-for ($gb_code = 0; $gb_code < $gb_map_4_max; ++$gb_code)
-{
- if (defined($gb_map_4[$gb_code]))
- {
- $gb_map_2[$gb_map_2_count++] = $gb_map_4[$gb_code];
- }
- else
- {
- ($gb_code == $range_linear_first[$range_index]) or die "Bad input";
- $gb_code = $range_linear_last[$range_index];
- ++$range_index;
- $gb_nonrangedataindex[$range_index] = $gb_map_2_count;
- }
-}
-($range_index == $range_count) or die "Bad input";
-
-$filename = lc($id) . ".tab";
-open OUT, ("> " . $filename) or die "Cannot write " . $filename;
-
-{
- $filename = lc($id). ".pl";
- open IN, $filename or die "Cannot read ". $filename;
- $first = 1;
- while (<IN>)
- {
- if (/^\#!.*$/)
- {
- }
- elsif (/^\#(\*.*)$/)
- {
- if ($first == 1)
- {
- print OUT "/", $1, "\n";
- $first = 0;
- }
- else
- {
- print OUT " ", substr($1, 0, length($1) - 1), "/\n";
- }
- }
- elsif (/^\# (.*)$/)
- {
- print OUT " *", $1, "\n";
- }
- elsif (/^\#(.*)$/)
- {
- print OUT " *", $1, "\n";
- }
- else
- {
- goto done;
- }
- }
- done:
-}
-
-print OUT "\n",
- "#ifndef INCLUDED_RTL_TEXTENC_CONVERTGB18030_H\n",
- "#include \"convertgb18030.h\"\n",
- "#endif\n",
- "\n",
- "#ifndef _SAL_TYPES_H_\n",
- "#include \"sal/types.h\"\n",
- "#endif\n",
- "\n";
-
-print OUT "static sal_Unicode const aImpl", $id, "ToUnicodeData[] = {\n ";
-for ($gb_code = 0; $gb_code < $gb_map_2_count; ++$gb_code)
-{
- printf OUT "0x%04X,", $gb_map_2[$gb_code];
- if ($gb_code % 8 == 7 && $gb_code != $gb_map_2_count - 1)
- {
- print OUT "\n ";
- }
-}
-print OUT "\n};\n\n";
-
-print OUT "static ImplGb180302000ToUnicodeRange const\n aImpl",
- $id,
- "ToUnicodeRanges[] = {\n";
-for ($range_index = 0; $range_index < $range_count; ++$range_index)
-{
- printf OUT " { %d, %d, %d, 0x%04X },\n",
- $gb_nonrangedataindex[$range_index],
- $range_linear_first[$range_index],
- $range_linear_last[$range_index] + 1,
- $range_uni_first[$range_index];
-}
-print OUT " { -1, 0, 0, 0 }\n};\n\n";
-
-print OUT "static sal_uInt32 const aImplUnicodeTo", $id, "Data[] = {\n ";
-$index = 0;
-$range_index = 0;
-$uni_nonrangedataindex[$range_index] = $index;
-for ($utf32 = 0x80; $utf32 <= 0xFFFF; ++$utf32)
-{
- if (defined($uni_map[$utf32]))
- {
- if ($index > 0 && ($index - 1) % 6 == 5)
- {
- print OUT "\n ";
- }
- $bytes = $uni_map[$utf32];
- printf OUT ($bytes <= 0xFFFF ? " 0x%04X," : "0x%08X,"), $bytes;
- ++$index;
- }
- else
- {
- ($utf32 == $range_uni_first[$range_index]) or die "Bad input";
- $utf32 = $range_uni_last[$range_index];
- ++$range_index;
- $uni_nonrangedataindex[$range_index] = $index;
- }
-}
-($range_index == $range_count) or die "Bad input";
-print OUT "\n};\n\n";
-
-print OUT "static ImplUnicodeToGb180302000Range const\n aImplUnicodeTo",
- $id,
- "Ranges[] = {\n";
-for ($range_index = 0; $range_index < $range_count; ++$range_index)
-{
- printf OUT " { %d, 0x%04X, 0x%04X, %d },\n",
- $uni_nonrangedataindex[$range_index],
- $range_uni_first[$range_index],
- $range_uni_last[$range_index],
- $range_linear_first[$range_index];
-}
-print OUT "};\n";
-
-close OUT;
diff --git a/sal/textenc/generate/gb180302000.tab b/sal/textenc/generate/gb180302000.tab
deleted file mode 100644
index 364f7c4b9..000000000
--- a/sal/textenc/generate/gb180302000.tab
+++ /dev/null
@@ -1,9038 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_TEXTENC_CONVERTGB18030_H
-#include "convertgb18030.h"
-#endif
-
-#ifndef _SAL_TYPES_H_
-#include "sal/types.h"
-#endif
-
-static sal_Unicode const aImplGb180302000ToUnicodeData[] = {
- 0x4E02,0x4E04,0x4E05,0x4E06,0x4E0F,0x4E12,0x4E17,0x4E1F,
- 0x4E20,0x4E21,0x4E23,0x4E26,0x4E29,0x4E2E,0x4E2F,0x4E31,
- 0x4E33,0x4E35,0x4E37,0x4E3C,0x4E40,0x4E41,0x4E42,0x4E44,
- 0x4E46,0x4E4A,0x4E51,0x4E55,0x4E57,0x4E5A,0x4E5B,0x4E62,
- 0x4E63,0x4E64,0x4E65,0x4E67,0x4E68,0x4E6A,0x4E6B,0x4E6C,
- 0x4E6D,0x4E6E,0x4E6F,0x4E72,0x4E74,0x4E75,0x4E76,0x4E77,
- 0x4E78,0x4E79,0x4E7A,0x4E7B,0x4E7C,0x4E7D,0x4E7F,0x4E80,
- 0x4E81,0x4E82,0x4E83,0x4E84,0x4E85,0x4E87,0x4E8A,0x4E90,
- 0x4E96,0x4E97,0x4E99,0x4E9C,0x4E9D,0x4E9E,0x4EA3,0x4EAA,
- 0x4EAF,0x4EB0,0x4EB1,0x4EB4,0x4EB6,0x4EB7,0x4EB8,0x4EB9,
- 0x4EBC,0x4EBD,0x4EBE,0x4EC8,0x4ECC,0x4ECF,0x4ED0,0x4ED2,
- 0x4EDA,0x4EDB,0x4EDC,0x4EE0,0x4EE2,0x4EE6,0x4EE7,0x4EE9,
- 0x4EED,0x4EEE,0x4EEF,0x4EF1,0x4EF4,0x4EF8,0x4EF9,0x4EFA,
- 0x4EFC,0x4EFE,0x4F00,0x4F02,0x4F03,0x4F04,0x4F05,0x4F06,
- 0x4F07,0x4F08,0x4F0B,0x4F0C,0x4F12,0x4F13,0x4F14,0x4F15,
- 0x4F16,0x4F1C,0x4F1D,0x4F21,0x4F23,0x4F28,0x4F29,0x4F2C,
- 0x4F2D,0x4F2E,0x4F31,0x4F33,0x4F35,0x4F37,0x4F39,0x4F3B,
- 0x4F3E,0x4F3F,0x4F40,0x4F41,0x4F42,0x4F44,0x4F45,0x4F47,
- 0x4F48,0x4F49,0x4F4A,0x4F4B,0x4F4C,0x4F52,0x4F54,0x4F56,
- 0x4F61,0x4F62,0x4F66,0x4F68,0x4F6A,0x4F6B,0x4F6D,0x4F6E,
- 0x4F71,0x4F72,0x4F75,0x4F77,0x4F78,0x4F79,0x4F7A,0x4F7D,
- 0x4F80,0x4F81,0x4F82,0x4F85,0x4F86,0x4F87,0x4F8A,0x4F8C,
- 0x4F8E,0x4F90,0x4F92,0x4F93,0x4F95,0x4F96,0x4F98,0x4F99,
- 0x4F9A,0x4F9C,0x4F9E,0x4F9F,0x4FA1,0x4FA2,0x4FA4,0x4FAB,
- 0x4FAD,0x4FB0,0x4FB1,0x4FB2,0x4FB3,0x4FB4,0x4FB6,0x4FB7,
- 0x4FB8,0x4FB9,0x4FBA,0x4FBB,0x4FBC,0x4FBD,0x4FBE,0x4FC0,
- 0x4FC1,0x4FC2,0x4FC6,0x4FC7,0x4FC8,0x4FC9,0x4FCB,0x4FCC,
- 0x4FCD,0x4FD2,0x4FD3,0x4FD4,0x4FD5,0x4FD6,0x4FD9,0x4FDB,
- 0x4FE0,0x4FE2,0x4FE4,0x4FE5,0x4FE7,0x4FEB,0x4FEC,0x4FF0,
- 0x4FF2,0x4FF4,0x4FF5,0x4FF6,0x4FF7,0x4FF9,0x4FFB,0x4FFC,
- 0x4FFD,0x4FFF,0x5000,0x5001,0x5002,0x5003,0x5004,0x5005,
- 0x5006,0x5007,0x5008,0x5009,0x500A,0x500B,0x500E,0x5010,
- 0x5011,0x5013,0x5015,0x5016,0x5017,0x501B,0x501D,0x501E,
- 0x5020,0x5022,0x5023,0x5024,0x5027,0x502B,0x502F,0x5030,
- 0x5031,0x5032,0x5033,0x5034,0x5035,0x5036,0x5037,0x5038,
- 0x5039,0x503B,0x503D,0x503F,0x5040,0x5041,0x5042,0x5044,
- 0x5045,0x5046,0x5049,0x504A,0x504B,0x504D,0x5050,0x5051,
- 0x5052,0x5053,0x5054,0x5056,0x5057,0x5058,0x5059,0x505B,
- 0x505D,0x505E,0x505F,0x5060,0x5061,0x5062,0x5063,0x5064,
- 0x5066,0x5067,0x5068,0x5069,0x506A,0x506B,0x506D,0x506E,
- 0x506F,0x5070,0x5071,0x5072,0x5073,0x5074,0x5075,0x5078,
- 0x5079,0x507A,0x507C,0x507D,0x5081,0x5082,0x5083,0x5084,
- 0x5086,0x5087,0x5089,0x508A,0x508B,0x508C,0x508E,0x508F,
- 0x5090,0x5091,0x5092,0x5093,0x5094,0x5095,0x5096,0x5097,
- 0x5098,0x5099,0x509A,0x509B,0x509C,0x509D,0x509E,0x509F,
- 0x50A0,0x50A1,0x50A2,0x50A4,0x50A6,0x50AA,0x50AB,0x50AD,
- 0x50AE,0x50AF,0x50B0,0x50B1,0x50B3,0x50B4,0x50B5,0x50B6,
- 0x50B7,0x50B8,0x50B9,0x50BC,0x50BD,0x50BE,0x50BF,0x50C0,
- 0x50C1,0x50C2,0x50C3,0x50C4,0x50C5,0x50C6,0x50C7,0x50C8,
- 0x50C9,0x50CA,0x50CB,0x50CC,0x50CD,0x50CE,0x50D0,0x50D1,
- 0x50D2,0x50D3,0x50D4,0x50D5,0x50D7,0x50D8,0x50D9,0x50DB,
- 0x50DC,0x50DD,0x50DE,0x50DF,0x50E0,0x50E1,0x50E2,0x50E3,
- 0x50E4,0x50E5,0x50E8,0x50E9,0x50EA,0x50EB,0x50EF,0x50F0,
- 0x50F1,0x50F2,0x50F4,0x50F6,0x50F7,0x50F8,0x50F9,0x50FA,
- 0x50FC,0x50FD,0x50FE,0x50FF,0x5100,0x5101,0x5102,0x5103,
- 0x5104,0x5105,0x5108,0x5109,0x510A,0x510C,0x510D,0x510E,
- 0x510F,0x5110,0x5111,0x5113,0x5114,0x5115,0x5116,0x5117,
- 0x5118,0x5119,0x511A,0x511B,0x511C,0x511D,0x511E,0x511F,
- 0x5120,0x5122,0x5123,0x5124,0x5125,0x5126,0x5127,0x5128,
- 0x5129,0x512A,0x512B,0x512C,0x512D,0x512E,0x512F,0x5130,
- 0x5131,0x5132,0x5133,0x5134,0x5135,0x5136,0x5137,0x5138,
- 0x5139,0x513A,0x513B,0x513C,0x513D,0x513E,0x5142,0x5147,
- 0x514A,0x514C,0x514E,0x514F,0x5150,0x5152,0x5153,0x5157,
- 0x5158,0x5159,0x515B,0x515D,0x515E,0x515F,0x5160,0x5161,
- 0x5163,0x5164,0x5166,0x5167,0x5169,0x516A,0x516F,0x5172,
- 0x517A,0x517E,0x517F,0x5183,0x5184,0x5186,0x5187,0x518A,
- 0x518B,0x518E,0x518F,0x5190,0x5191,0x5193,0x5194,0x5198,
- 0x519A,0x519D,0x519E,0x519F,0x51A1,0x51A3,0x51A6,0x51A7,
- 0x51A8,0x51A9,0x51AA,0x51AD,0x51AE,0x51B4,0x51B8,0x51B9,
- 0x51BA,0x51BE,0x51BF,0x51C1,0x51C2,0x51C3,0x51C5,0x51C8,
- 0x51CA,0x51CD,0x51CE,0x51D0,0x51D2,0x51D3,0x51D4,0x51D5,
- 0x51D6,0x51D7,0x51D8,0x51D9,0x51DA,0x51DC,0x51DE,0x51DF,
- 0x51E2,0x51E3,0x51E5,0x51E6,0x51E7,0x51E8,0x51E9,0x51EA,
- 0x51EC,0x51EE,0x51F1,0x51F2,0x51F4,0x51F7,0x51FE,0x5204,
- 0x5205,0x5209,0x520B,0x520C,0x520F,0x5210,0x5213,0x5214,
- 0x5215,0x521C,0x521E,0x521F,0x5221,0x5222,0x5223,0x5225,
- 0x5226,0x5227,0x522A,0x522C,0x522F,0x5231,0x5232,0x5234,
- 0x5235,0x523C,0x523E,0x5244,0x5245,0x5246,0x5247,0x5248,
- 0x5249,0x524B,0x524E,0x524F,0x5252,0x5253,0x5255,0x5257,
- 0x5258,0x5259,0x525A,0x525B,0x525D,0x525F,0x5260,0x5262,
- 0x5263,0x5264,0x5266,0x5268,0x526B,0x526C,0x526D,0x526E,
- 0x5270,0x5271,0x5273,0x5274,0x5275,0x5276,0x5277,0x5278,
- 0x5279,0x527A,0x527B,0x527C,0x527E,0x5280,0x5283,0x5284,
- 0x5285,0x5286,0x5287,0x5289,0x528A,0x528B,0x528C,0x528D,
- 0x528E,0x528F,0x5291,0x5292,0x5294,0x5295,0x5296,0x5297,
- 0x5298,0x5299,0x529A,0x529C,0x52A4,0x52A5,0x52A6,0x52A7,
- 0x52AE,0x52AF,0x52B0,0x52B4,0x52B5,0x52B6,0x52B7,0x52B8,
- 0x52B9,0x52BA,0x52BB,0x52BC,0x52BD,0x52C0,0x52C1,0x52C2,
- 0x52C4,0x52C5,0x52C6,0x52C8,0x52CA,0x52CC,0x52CD,0x52CE,
- 0x52CF,0x52D1,0x52D3,0x52D4,0x52D5,0x52D7,0x52D9,0x52DA,
- 0x52DB,0x52DC,0x52DD,0x52DE,0x52E0,0x52E1,0x52E2,0x52E3,
- 0x52E5,0x52E6,0x52E7,0x52E8,0x52E9,0x52EA,0x52EB,0x52EC,
- 0x52ED,0x52EE,0x52EF,0x52F1,0x52F2,0x52F3,0x52F4,0x52F5,
- 0x52F6,0x52F7,0x52F8,0x52FB,0x52FC,0x52FD,0x5301,0x5302,
- 0x5303,0x5304,0x5307,0x5309,0x530A,0x530B,0x530C,0x530E,
- 0x5311,0x5312,0x5313,0x5314,0x5318,0x531B,0x531C,0x531E,
- 0x531F,0x5322,0x5324,0x5325,0x5327,0x5328,0x5329,0x532B,
- 0x532C,0x532D,0x532F,0x5330,0x5331,0x5332,0x5333,0x5334,
- 0x5335,0x5336,0x5337,0x5338,0x533C,0x533D,0x5340,0x5342,
- 0x5344,0x5346,0x534B,0x534C,0x534D,0x5350,0x5354,0x5358,
- 0x5359,0x535B,0x535D,0x5365,0x5368,0x536A,0x536C,0x536D,
- 0x5372,0x5376,0x5379,0x537B,0x537C,0x537D,0x537E,0x5380,
- 0x5381,0x5383,0x5387,0x5388,0x538A,0x538E,0x538F,0x5390,
- 0x5391,0x5392,0x5393,0x5394,0x5396,0x5397,0x5399,0x539B,
- 0x539C,0x539E,0x53A0,0x53A1,0x53A4,0x53A7,0x53AA,0x53AB,
- 0x53AC,0x53AD,0x53AF,0x53B0,0x53B1,0x53B2,0x53B3,0x53B4,
- 0x53B5,0x53B7,0x53B8,0x53B9,0x53BA,0x53BC,0x53BD,0x53BE,
- 0x53C0,0x53C3,0x53C4,0x53C5,0x53C6,0x53C7,0x53CE,0x53CF,
- 0x53D0,0x53D2,0x53D3,0x53D5,0x53DA,0x53DC,0x53DD,0x53DE,
- 0x53E1,0x53E2,0x53E7,0x53F4,0x53FA,0x53FE,0x53FF,0x5400,
- 0x5402,0x5405,0x5407,0x540B,0x5414,0x5418,0x5419,0x541A,
- 0x541C,0x5422,0x5424,0x5425,0x542A,0x5430,0x5433,0x5436,
- 0x5437,0x543A,0x543D,0x543F,0x5441,0x5442,0x5444,0x5445,
- 0x5447,0x5449,0x544C,0x544D,0x544E,0x544F,0x5451,0x545A,
- 0x545D,0x545E,0x545F,0x5460,0x5461,0x5463,0x5465,0x5467,
- 0x5469,0x546A,0x546B,0x546C,0x546D,0x546E,0x546F,0x5470,
- 0x5474,0x5479,0x547A,0x547E,0x547F,0x5481,0x5483,0x5485,
- 0x5487,0x5488,0x5489,0x548A,0x548D,0x5491,0x5493,0x5497,
- 0x5498,0x549C,0x549E,0x549F,0x54A0,0x54A1,0x54A2,0x54A5,
- 0x54AE,0x54B0,0x54B2,0x54B5,0x54B6,0x54B7,0x54B9,0x54BA,
- 0x54BC,0x54BE,0x54C3,0x54C5,0x54CA,0x54CB,0x54D6,0x54D8,
- 0x54DB,0x54E0,0x54E1,0x54E2,0x54E3,0x54E4,0x54EB,0x54EC,
- 0x54EF,0x54F0,0x54F1,0x54F4,0x54F5,0x54F6,0x54F7,0x54F8,
- 0x54F9,0x54FB,0x54FE,0x5500,0x5502,0x5503,0x5504,0x5505,
- 0x5508,0x550A,0x550B,0x550C,0x550D,0x550E,0x5512,0x5513,
- 0x5515,0x5516,0x5517,0x5518,0x5519,0x551A,0x551C,0x551D,
- 0x551E,0x551F,0x5521,0x5525,0x5526,0x5528,0x5529,0x552B,
- 0x552D,0x5532,0x5534,0x5535,0x5536,0x5538,0x5539,0x553A,
- 0x553B,0x553D,0x5540,0x5542,0x5545,0x5547,0x5548,0x554B,
- 0x554C,0x554D,0x554E,0x554F,0x5551,0x5552,0x5553,0x5554,
- 0x5557,0x5558,0x5559,0x555A,0x555B,0x555D,0x555E,0x555F,
- 0x5560,0x5562,0x5563,0x5568,0x5569,0x556B,0x556F,0x5570,
- 0x5571,0x5572,0x5573,0x5574,0x5579,0x557A,0x557D,0x557F,
- 0x5585,0x5586,0x558C,0x558D,0x558E,0x5590,0x5592,0x5593,
- 0x5595,0x5596,0x5597,0x559A,0x559B,0x559E,0x55A0,0x55A1,
- 0x55A2,0x55A3,0x55A4,0x55A5,0x55A6,0x55A8,0x55A9,0x55AA,
- 0x55AB,0x55AC,0x55AD,0x55AE,0x55AF,0x55B0,0x55B2,0x55B4,
- 0x55B6,0x55B8,0x55BA,0x55BC,0x55BF,0x55C0,0x55C1,0x55C2,
- 0x55C3,0x55C6,0x55C7,0x55C8,0x55CA,0x55CB,0x55CE,0x55CF,
- 0x55D0,0x55D5,0x55D7,0x55D8,0x55D9,0x55DA,0x55DB,0x55DE,
- 0x55E0,0x55E2,0x55E7,0x55E9,0x55ED,0x55EE,0x55F0,0x55F1,
- 0x55F4,0x55F6,0x55F8,0x55F9,0x55FA,0x55FB,0x55FC,0x55FF,
- 0x5602,0x5603,0x5604,0x5605,0x5606,0x5607,0x560A,0x560B,
- 0x560D,0x5610,0x5611,0x5612,0x5613,0x5614,0x5615,0x5616,
- 0x5617,0x5619,0x561A,0x561C,0x561D,0x5620,0x5621,0x5622,
- 0x5625,0x5626,0x5628,0x5629,0x562A,0x562B,0x562E,0x562F,
- 0x5630,0x5633,0x5635,0x5637,0x5638,0x563A,0x563C,0x563D,
- 0x563E,0x5640,0x5641,0x5642,0x5643,0x5644,0x5645,0x5646,
- 0x5647,0x5648,0x5649,0x564A,0x564B,0x564F,0x5650,0x5651,
- 0x5652,0x5653,0x5655,0x5656,0x565A,0x565B,0x565D,0x565E,
- 0x565F,0x5660,0x5661,0x5663,0x5665,0x5666,0x5667,0x566D,
- 0x566E,0x566F,0x5670,0x5672,0x5673,0x5674,0x5675,0x5677,
- 0x5678,0x5679,0x567A,0x567D,0x567E,0x567F,0x5680,0x5681,
- 0x5682,0x5683,0x5684,0x5687,0x5688,0x5689,0x568A,0x568B,
- 0x568C,0x568D,0x5690,0x5691,0x5692,0x5694,0x5695,0x5696,
- 0x5697,0x5698,0x5699,0x569A,0x569B,0x569C,0x569D,0x569E,
- 0x569F,0x56A0,0x56A1,0x56A2,0x56A4,0x56A5,0x56A6,0x56A7,
- 0x56A8,0x56A9,0x56AA,0x56AB,0x56AC,0x56AD,0x56AE,0x56B0,
- 0x56B1,0x56B2,0x56B3,0x56B4,0x56B5,0x56B6,0x56B8,0x56B9,
- 0x56BA,0x56BB,0x56BD,0x56BE,0x56BF,0x56C0,0x56C1,0x56C2,
- 0x56C3,0x56C4,0x56C5,0x56C6,0x56C7,0x56C8,0x56C9,0x56CB,
- 0x56CC,0x56CD,0x56CE,0x56CF,0x56D0,0x56D1,0x56D2,0x56D3,
- 0x56D5,0x56D6,0x56D8,0x56D9,0x56DC,0x56E3,0x56E5,0x56E6,
- 0x56E7,0x56E8,0x56E9,0x56EA,0x56EC,0x56EE,0x56EF,0x56F2,
- 0x56F3,0x56F6,0x56F7,0x56F8,0x56FB,0x56FC,0x5700,0x5701,
- 0x5702,0x5705,0x5707,0x570B,0x570C,0x570D,0x570E,0x570F,
- 0x5710,0x5711,0x5712,0x5713,0x5714,0x5715,0x5716,0x5717,
- 0x5718,0x5719,0x571A,0x571B,0x571D,0x571E,0x5720,0x5721,
- 0x5722,0x5724,0x5725,0x5726,0x5727,0x572B,0x5731,0x5732,
- 0x5734,0x5735,0x5736,0x5737,0x5738,0x573C,0x573D,0x573F,
- 0x5741,0x5743,0x5744,0x5745,0x5746,0x5748,0x5749,0x574B,
- 0x5752,0x5753,0x5754,0x5755,0x5756,0x5758,0x5759,0x5762,
- 0x5763,0x5765,0x5767,0x576C,0x576E,0x5770,0x5771,0x5772,
- 0x5774,0x5775,0x5778,0x5779,0x577A,0x577D,0x577E,0x577F,
- 0x5780,0x5781,0x5787,0x5788,0x5789,0x578A,0x578D,0x578E,
- 0x578F,0x5790,0x5791,0x5794,0x5795,0x5796,0x5797,0x5798,
- 0x5799,0x579A,0x579C,0x579D,0x579E,0x579F,0x57A5,0x57A8,
- 0x57AA,0x57AC,0x57AF,0x57B0,0x57B1,0x57B3,0x57B5,0x57B6,
- 0x57B7,0x57B9,0x57BA,0x57BB,0x57BC,0x57BD,0x57BE,0x57BF,
- 0x57C0,0x57C1,0x57C4,0x57C5,0x57C6,0x57C7,0x57C8,0x57C9,
- 0x57CA,0x57CC,0x57CD,0x57D0,0x57D1,0x57D3,0x57D6,0x57D7,
- 0x57DB,0x57DC,0x57DE,0x57E1,0x57E2,0x57E3,0x57E5,0x57E6,
- 0x57E7,0x57E8,0x57E9,0x57EA,0x57EB,0x57EC,0x57EE,0x57F0,
- 0x57F1,0x57F2,0x57F3,0x57F5,0x57F6,0x57F7,0x57FB,0x57FC,
- 0x57FE,0x57FF,0x5801,0x5803,0x5804,0x5805,0x5808,0x5809,
- 0x580A,0x580C,0x580E,0x580F,0x5810,0x5812,0x5813,0x5814,
- 0x5816,0x5817,0x5818,0x581A,0x581B,0x581C,0x581D,0x581F,
- 0x5822,0x5823,0x5825,0x5826,0x5827,0x5828,0x5829,0x582B,
- 0x582C,0x582D,0x582E,0x582F,0x5831,0x5832,0x5833,0x5834,
- 0x5836,0x5837,0x5838,0x5839,0x583A,0x583B,0x583C,0x583D,
- 0x583E,0x583F,0x5840,0x5841,0x5842,0x5843,0x5845,0x5846,
- 0x5847,0x5848,0x5849,0x584A,0x584B,0x584E,0x584F,0x5850,
- 0x5852,0x5853,0x5855,0x5856,0x5857,0x5859,0x585A,0x585B,
- 0x585C,0x585D,0x585F,0x5860,0x5861,0x5862,0x5863,0x5864,
- 0x5866,0x5867,0x5868,0x5869,0x586A,0x586D,0x586E,0x586F,
- 0x5870,0x5871,0x5872,0x5873,0x5874,0x5875,0x5876,0x5877,
- 0x5878,0x5879,0x587A,0x587B,0x587C,0x587D,0x587F,0x5882,
- 0x5884,0x5886,0x5887,0x5888,0x588A,0x588B,0x588C,0x588D,
- 0x588E,0x588F,0x5890,0x5891,0x5894,0x5895,0x5896,0x5897,
- 0x5898,0x589B,0x589C,0x589D,0x58A0,0x58A1,0x58A2,0x58A3,
- 0x58A4,0x58A5,0x58A6,0x58A7,0x58AA,0x58AB,0x58AC,0x58AD,
- 0x58AE,0x58AF,0x58B0,0x58B1,0x58B2,0x58B3,0x58B4,0x58B5,
- 0x58B6,0x58B7,0x58B8,0x58B9,0x58BA,0x58BB,0x58BD,0x58BE,
- 0x58BF,0x58C0,0x58C2,0x58C3,0x58C4,0x58C6,0x58C7,0x58C8,
- 0x58C9,0x58CA,0x58CB,0x58CC,0x58CD,0x58CE,0x58CF,0x58D0,
- 0x58D2,0x58D3,0x58D4,0x58D6,0x58D7,0x58D8,0x58D9,0x58DA,
- 0x58DB,0x58DC,0x58DD,0x58DE,0x58DF,0x58E0,0x58E1,0x58E2,
- 0x58E3,0x58E5,0x58E6,0x58E7,0x58E8,0x58E9,0x58EA,0x58ED,
- 0x58EF,0x58F1,0x58F2,0x58F4,0x58F5,0x58F7,0x58F8,0x58FA,
- 0x58FB,0x58FC,0x58FD,0x58FE,0x58FF,0x5900,0x5901,0x5903,
- 0x5905,0x5906,0x5908,0x5909,0x590A,0x590B,0x590C,0x590E,
- 0x5910,0x5911,0x5912,0x5913,0x5917,0x5918,0x591B,0x591D,
- 0x591E,0x5920,0x5921,0x5922,0x5923,0x5926,0x5928,0x592C,
- 0x5930,0x5932,0x5933,0x5935,0x5936,0x593B,0x593D,0x593E,
- 0x593F,0x5940,0x5943,0x5945,0x5946,0x594A,0x594C,0x594D,
- 0x5950,0x5952,0x5953,0x5959,0x595B,0x595C,0x595D,0x595E,
- 0x595F,0x5961,0x5963,0x5964,0x5966,0x5967,0x5968,0x5969,
- 0x596A,0x596B,0x596C,0x596D,0x596E,0x596F,0x5970,0x5971,
- 0x5972,0x5975,0x5977,0x597A,0x597B,0x597C,0x597E,0x597F,
- 0x5980,0x5985,0x5989,0x598B,0x598C,0x598E,0x598F,0x5990,
- 0x5991,0x5994,0x5995,0x5998,0x599A,0x599B,0x599C,0x599D,
- 0x599F,0x59A0,0x59A1,0x59A2,0x59A6,0x59A7,0x59AC,0x59AD,
- 0x59B0,0x59B1,0x59B3,0x59B4,0x59B5,0x59B6,0x59B7,0x59B8,
- 0x59BA,0x59BC,0x59BD,0x59BF,0x59C0,0x59C1,0x59C2,0x59C3,
- 0x59C4,0x59C5,0x59C7,0x59C8,0x59C9,0x59CC,0x59CD,0x59CE,
- 0x59CF,0x59D5,0x59D6,0x59D9,0x59DB,0x59DE,0x59DF,0x59E0,
- 0x59E1,0x59E2,0x59E4,0x59E6,0x59E7,0x59E9,0x59EA,0x59EB,
- 0x59ED,0x59EE,0x59EF,0x59F0,0x59F1,0x59F2,0x59F3,0x59F4,
- 0x59F5,0x59F6,0x59F7,0x59F8,0x59FA,0x59FC,0x59FD,0x59FE,
- 0x5A00,0x5A02,0x5A0A,0x5A0B,0x5A0D,0x5A0E,0x5A0F,0x5A10,
- 0x5A12,0x5A14,0x5A15,0x5A16,0x5A17,0x5A19,0x5A1A,0x5A1B,
- 0x5A1D,0x5A1E,0x5A21,0x5A22,0x5A24,0x5A26,0x5A27,0x5A28,
- 0x5A2A,0x5A2B,0x5A2C,0x5A2D,0x5A2E,0x5A2F,0x5A30,0x5A33,
- 0x5A35,0x5A37,0x5A38,0x5A39,0x5A3A,0x5A3B,0x5A3D,0x5A3E,
- 0x5A3F,0x5A41,0x5A42,0x5A43,0x5A44,0x5A45,0x5A47,0x5A48,
- 0x5A4B,0x5A4C,0x5A4D,0x5A4E,0x5A4F,0x5A50,0x5A51,0x5A52,
- 0x5A53,0x5A54,0x5A56,0x5A57,0x5A58,0x5A59,0x5A5B,0x5A5C,
- 0x5A5D,0x5A5E,0x5A5F,0x5A60,0x5A61,0x5A63,0x5A64,0x5A65,
- 0x5A66,0x5A68,0x5A69,0x5A6B,0x5A6C,0x5A6D,0x5A6E,0x5A6F,
- 0x5A70,0x5A71,0x5A72,0x5A73,0x5A78,0x5A79,0x5A7B,0x5A7C,
- 0x5A7D,0x5A7E,0x5A80,0x5A81,0x5A82,0x5A83,0x5A84,0x5A85,
- 0x5A86,0x5A87,0x5A88,0x5A89,0x5A8A,0x5A8B,0x5A8C,0x5A8D,
- 0x5A8E,0x5A8F,0x5A90,0x5A91,0x5A93,0x5A94,0x5A95,0x5A96,
- 0x5A97,0x5A98,0x5A99,0x5A9C,0x5A9D,0x5A9E,0x5A9F,0x5AA0,
- 0x5AA1,0x5AA2,0x5AA3,0x5AA4,0x5AA5,0x5AA6,0x5AA7,0x5AA8,
- 0x5AA9,0x5AAB,0x5AAC,0x5AAD,0x5AAE,0x5AAF,0x5AB0,0x5AB1,
- 0x5AB4,0x5AB6,0x5AB7,0x5AB9,0x5ABA,0x5ABB,0x5ABC,0x5ABD,
- 0x5ABF,0x5AC0,0x5AC3,0x5AC4,0x5AC5,0x5AC6,0x5AC7,0x5AC8,
- 0x5ACA,0x5ACB,0x5ACD,0x5ACE,0x5ACF,0x5AD0,0x5AD1,0x5AD3,
- 0x5AD5,0x5AD7,0x5AD9,0x5ADA,0x5ADB,0x5ADD,0x5ADE,0x5ADF,
- 0x5AE2,0x5AE4,0x5AE5,0x5AE7,0x5AE8,0x5AEA,0x5AEC,0x5AED,
- 0x5AEE,0x5AEF,0x5AF0,0x5AF2,0x5AF3,0x5AF4,0x5AF5,0x5AF6,
- 0x5AF7,0x5AF8,0x5AF9,0x5AFA,0x5AFB,0x5AFC,0x5AFD,0x5AFE,
- 0x5AFF,0x5B00,0x5B01,0x5B02,0x5B03,0x5B04,0x5B05,0x5B06,
- 0x5B07,0x5B08,0x5B0A,0x5B0B,0x5B0C,0x5B0D,0x5B0E,0x5B0F,
- 0x5B10,0x5B11,0x5B12,0x5B13,0x5B14,0x5B15,0x5B18,0x5B19,
- 0x5B1A,0x5B1B,0x5B1C,0x5B1D,0x5B1E,0x5B1F,0x5B20,0x5B21,
- 0x5B22,0x5B23,0x5B24,0x5B25,0x5B26,0x5B27,0x5B28,0x5B29,
- 0x5B2A,0x5B2B,0x5B2C,0x5B2D,0x5B2E,0x5B2F,0x5B30,0x5B31,
- 0x5B33,0x5B35,0x5B36,0x5B38,0x5B39,0x5B3A,0x5B3B,0x5B3C,
- 0x5B3D,0x5B3E,0x5B3F,0x5B41,0x5B42,0x5B43,0x5B44,0x5B45,
- 0x5B46,0x5B47,0x5B48,0x5B49,0x5B4A,0x5B4B,0x5B4C,0x5B4D,
- 0x5B4E,0x5B4F,0x5B52,0x5B56,0x5B5E,0x5B60,0x5B61,0x5B67,
- 0x5B68,0x5B6B,0x5B6D,0x5B6E,0x5B6F,0x5B72,0x5B74,0x5B76,
- 0x5B77,0x5B78,0x5B79,0x5B7B,0x5B7C,0x5B7E,0x5B7F,0x5B82,
- 0x5B86,0x5B8A,0x5B8D,0x5B8E,0x5B90,0x5B91,0x5B92,0x5B94,
- 0x5B96,0x5B9F,0x5BA7,0x5BA8,0x5BA9,0x5BAC,0x5BAD,0x5BAE,
- 0x5BAF,0x5BB1,0x5BB2,0x5BB7,0x5BBA,0x5BBB,0x5BBC,0x5BC0,
- 0x5BC1,0x5BC3,0x5BC8,0x5BC9,0x5BCA,0x5BCB,0x5BCD,0x5BCE,
- 0x5BCF,0x5BD1,0x5BD4,0x5BD5,0x5BD6,0x5BD7,0x5BD8,0x5BD9,
- 0x5BDA,0x5BDB,0x5BDC,0x5BE0,0x5BE2,0x5BE3,0x5BE6,0x5BE7,
- 0x5BE9,0x5BEA,0x5BEB,0x5BEC,0x5BED,0x5BEF,0x5BF1,0x5BF2,
- 0x5BF3,0x5BF4,0x5BF5,0x5BF6,0x5BF7,0x5BFD,0x5BFE,0x5C00,
- 0x5C02,0x5C03,0x5C05,0x5C07,0x5C08,0x5C0B,0x5C0C,0x5C0D,
- 0x5C0E,0x5C10,0x5C12,0x5C13,0x5C17,0x5C19,0x5C1B,0x5C1E,
- 0x5C1F,0x5C20,0x5C21,0x5C23,0x5C26,0x5C28,0x5C29,0x5C2A,
- 0x5C2B,0x5C2D,0x5C2E,0x5C2F,0x5C30,0x5C32,0x5C33,0x5C35,
- 0x5C36,0x5C37,0x5C43,0x5C44,0x5C46,0x5C47,0x5C4C,0x5C4D,
- 0x5C52,0x5C53,0x5C54,0x5C56,0x5C57,0x5C58,0x5C5A,0x5C5B,
- 0x5C5C,0x5C5D,0x5C5F,0x5C62,0x5C64,0x5C67,0x5C68,0x5C69,
- 0x5C6A,0x5C6B,0x5C6C,0x5C6D,0x5C70,0x5C72,0x5C73,0x5C74,
- 0x5C75,0x5C76,0x5C77,0x5C78,0x5C7B,0x5C7C,0x5C7D,0x5C7E,
- 0x5C80,0x5C83,0x5C84,0x5C85,0x5C86,0x5C87,0x5C89,0x5C8A,
- 0x5C8B,0x5C8E,0x5C8F,0x5C92,0x5C93,0x5C95,0x5C9D,0x5C9E,
- 0x5C9F,0x5CA0,0x5CA1,0x5CA4,0x5CA5,0x5CA6,0x5CA7,0x5CA8,
- 0x5CAA,0x5CAE,0x5CAF,0x5CB0,0x5CB2,0x5CB4,0x5CB6,0x5CB9,
- 0x5CBA,0x5CBB,0x5CBC,0x5CBE,0x5CC0,0x5CC2,0x5CC3,0x5CC5,
- 0x5CC6,0x5CC7,0x5CC8,0x5CC9,0x5CCA,0x5CCC,0x5CCD,0x5CCE,
- 0x5CCF,0x5CD0,0x5CD1,0x5CD3,0x5CD4,0x5CD5,0x5CD6,0x5CD7,
- 0x5CD8,0x5CDA,0x5CDB,0x5CDC,0x5CDD,0x5CDE,0x5CDF,0x5CE0,
- 0x5CE2,0x5CE3,0x5CE7,0x5CE9,0x5CEB,0x5CEC,0x5CEE,0x5CEF,
- 0x5CF1,0x5CF2,0x5CF3,0x5CF4,0x5CF5,0x5CF6,0x5CF7,0x5CF8,
- 0x5CF9,0x5CFA,0x5CFC,0x5CFD,0x5CFE,0x5CFF,0x5D00,0x5D01,
- 0x5D04,0x5D05,0x5D08,0x5D09,0x5D0A,0x5D0B,0x5D0C,0x5D0D,
- 0x5D0F,0x5D10,0x5D11,0x5D12,0x5D13,0x5D15,0x5D17,0x5D18,
- 0x5D19,0x5D1A,0x5D1C,0x5D1D,0x5D1F,0x5D20,0x5D21,0x5D22,
- 0x5D23,0x5D25,0x5D28,0x5D2A,0x5D2B,0x5D2C,0x5D2F,0x5D30,
- 0x5D31,0x5D32,0x5D33,0x5D35,0x5D36,0x5D37,0x5D38,0x5D39,
- 0x5D3A,0x5D3B,0x5D3C,0x5D3F,0x5D40,0x5D41,0x5D42,0x5D43,
- 0x5D44,0x5D45,0x5D46,0x5D48,0x5D49,0x5D4D,0x5D4E,0x5D4F,
- 0x5D50,0x5D51,0x5D52,0x5D53,0x5D54,0x5D55,0x5D56,0x5D57,
- 0x5D59,0x5D5A,0x5D5C,0x5D5E,0x5D5F,0x5D60,0x5D61,0x5D62,
- 0x5D63,0x5D64,0x5D65,0x5D66,0x5D67,0x5D68,0x5D6A,0x5D6D,
- 0x5D6E,0x5D70,0x5D71,0x5D72,0x5D73,0x5D75,0x5D76,0x5D77,
- 0x5D78,0x5D79,0x5D7A,0x5D7B,0x5D7C,0x5D7D,0x5D7E,0x5D7F,
- 0x5D80,0x5D81,0x5D83,0x5D84,0x5D85,0x5D86,0x5D87,0x5D88,
- 0x5D89,0x5D8A,0x5D8B,0x5D8C,0x5D8D,0x5D8E,0x5D8F,0x5D90,
- 0x5D91,0x5D92,0x5D93,0x5D94,0x5D95,0x5D96,0x5D97,0x5D98,
- 0x5D9A,0x5D9B,0x5D9C,0x5D9E,0x5D9F,0x5DA0,0x5DA1,0x5DA2,
- 0x5DA3,0x5DA4,0x5DA5,0x5DA6,0x5DA7,0x5DA8,0x5DA9,0x5DAA,
- 0x5DAB,0x5DAC,0x5DAD,0x5DAE,0x5DAF,0x5DB0,0x5DB1,0x5DB2,
- 0x5DB3,0x5DB4,0x5DB5,0x5DB6,0x5DB8,0x5DB9,0x5DBA,0x5DBB,
- 0x5DBC,0x5DBD,0x5DBE,0x5DBF,0x5DC0,0x5DC1,0x5DC2,0x5DC3,
- 0x5DC4,0x5DC6,0x5DC7,0x5DC8,0x5DC9,0x5DCA,0x5DCB,0x5DCC,
- 0x5DCE,0x5DCF,0x5DD0,0x5DD1,0x5DD2,0x5DD3,0x5DD4,0x5DD5,
- 0x5DD6,0x5DD7,0x5DD8,0x5DD9,0x5DDA,0x5DDC,0x5DDF,0x5DE0,
- 0x5DE3,0x5DE4,0x5DEA,0x5DEC,0x5DED,0x5DF0,0x5DF5,0x5DF6,
- 0x5DF8,0x5DF9,0x5DFA,0x5DFB,0x5DFC,0x5DFF,0x5E00,0x5E04,
- 0x5E07,0x5E09,0x5E0A,0x5E0B,0x5E0D,0x5E0E,0x5E12,0x5E13,
- 0x5E17,0x5E1E,0x5E1F,0x5E20,0x5E21,0x5E22,0x5E23,0x5E24,
- 0x5E25,0x5E28,0x5E29,0x5E2A,0x5E2B,0x5E2C,0x5E2F,0x5E30,
- 0x5E32,0x5E33,0x5E34,0x5E35,0x5E36,0x5E39,0x5E3A,0x5E3E,
- 0x5E3F,0x5E40,0x5E41,0x5E43,0x5E46,0x5E47,0x5E48,0x5E49,
- 0x5E4A,0x5E4B,0x5E4D,0x5E4E,0x5E4F,0x5E50,0x5E51,0x5E52,
- 0x5E53,0x5E56,0x5E57,0x5E58,0x5E59,0x5E5A,0x5E5C,0x5E5D,
- 0x5E5F,0x5E60,0x5E63,0x5E64,0x5E65,0x5E66,0x5E67,0x5E68,
- 0x5E69,0x5E6A,0x5E6B,0x5E6C,0x5E6D,0x5E6E,0x5E6F,0x5E70,
- 0x5E71,0x5E75,0x5E77,0x5E79,0x5E7E,0x5E81,0x5E82,0x5E83,
- 0x5E85,0x5E88,0x5E89,0x5E8C,0x5E8D,0x5E8E,0x5E92,0x5E98,
- 0x5E9B,0x5E9D,0x5EA1,0x5EA2,0x5EA3,0x5EA4,0x5EA8,0x5EA9,
- 0x5EAA,0x5EAB,0x5EAC,0x5EAE,0x5EAF,0x5EB0,0x5EB1,0x5EB2,
- 0x5EB4,0x5EBA,0x5EBB,0x5EBC,0x5EBD,0x5EBF,0x5EC0,0x5EC1,
- 0x5EC2,0x5EC3,0x5EC4,0x5EC5,0x5EC6,0x5EC7,0x5EC8,0x5ECB,
- 0x5ECC,0x5ECD,0x5ECE,0x5ECF,0x5ED0,0x5ED4,0x5ED5,0x5ED7,
- 0x5ED8,0x5ED9,0x5EDA,0x5EDC,0x5EDD,0x5EDE,0x5EDF,0x5EE0,
- 0x5EE1,0x5EE2,0x5EE3,0x5EE4,0x5EE5,0x5EE6,0x5EE7,0x5EE9,
- 0x5EEB,0x5EEC,0x5EED,0x5EEE,0x5EEF,0x5EF0,0x5EF1,0x5EF2,
- 0x5EF3,0x5EF5,0x5EF8,0x5EF9,0x5EFB,0x5EFC,0x5EFD,0x5F05,
- 0x5F06,0x5F07,0x5F09,0x5F0C,0x5F0D,0x5F0E,0x5F10,0x5F12,
- 0x5F14,0x5F16,0x5F19,0x5F1A,0x5F1C,0x5F1D,0x5F1E,0x5F21,
- 0x5F22,0x5F23,0x5F24,0x5F28,0x5F2B,0x5F2C,0x5F2E,0x5F30,
- 0x5F32,0x5F33,0x5F34,0x5F35,0x5F36,0x5F37,0x5F38,0x5F3B,
- 0x5F3D,0x5F3E,0x5F3F,0x5F41,0x5F42,0x5F43,0x5F44,0x5F45,
- 0x5F46,0x5F47,0x5F48,0x5F49,0x5F4A,0x5F4B,0x5F4C,0x5F4D,
- 0x5F4E,0x5F4F,0x5F51,0x5F54,0x5F59,0x5F5A,0x5F5B,0x5F5C,
- 0x5F5E,0x5F5F,0x5F60,0x5F63,0x5F65,0x5F67,0x5F68,0x5F6B,
- 0x5F6E,0x5F6F,0x5F72,0x5F74,0x5F75,0x5F76,0x5F78,0x5F7A,
- 0x5F7D,0x5F7E,0x5F7F,0x5F83,0x5F86,0x5F8D,0x5F8E,0x5F8F,
- 0x5F91,0x5F93,0x5F94,0x5F96,0x5F9A,0x5F9B,0x5F9D,0x5F9E,
- 0x5F9F,0x5FA0,0x5FA2,0x5FA3,0x5FA4,0x5FA5,0x5FA6,0x5FA7,
- 0x5FA9,0x5FAB,0x5FAC,0x5FAF,0x5FB0,0x5FB1,0x5FB2,0x5FB3,
- 0x5FB4,0x5FB6,0x5FB8,0x5FB9,0x5FBA,0x5FBB,0x5FBE,0x5FBF,
- 0x5FC0,0x5FC1,0x5FC2,0x5FC7,0x5FC8,0x5FCA,0x5FCB,0x5FCE,
- 0x5FD3,0x5FD4,0x5FD5,0x5FDA,0x5FDB,0x5FDC,0x5FDE,0x5FDF,
- 0x5FE2,0x5FE3,0x5FE5,0x5FE6,0x5FE8,0x5FE9,0x5FEC,0x5FEF,
- 0x5FF0,0x5FF2,0x5FF3,0x5FF4,0x5FF6,0x5FF7,0x5FF9,0x5FFA,
- 0x5FFC,0x6007,0x6008,0x6009,0x600B,0x600C,0x6010,0x6011,
- 0x6013,0x6017,0x6018,0x601A,0x601E,0x601F,0x6022,0x6023,
- 0x6024,0x602C,0x602D,0x602E,0x6030,0x6031,0x6032,0x6033,
- 0x6034,0x6036,0x6037,0x6038,0x6039,0x603A,0x603D,0x603E,
- 0x6040,0x6044,0x6045,0x6046,0x6047,0x6048,0x6049,0x604A,
- 0x604C,0x604E,0x604F,0x6051,0x6053,0x6054,0x6056,0x6057,
- 0x6058,0x605B,0x605C,0x605E,0x605F,0x6060,0x6061,0x6065,
- 0x6066,0x606E,0x6071,0x6072,0x6074,0x6075,0x6077,0x607E,
- 0x6080,0x6081,0x6082,0x6085,0x6086,0x6087,0x6088,0x608A,
- 0x608B,0x608E,0x608F,0x6090,0x6091,0x6093,0x6095,0x6097,
- 0x6098,0x6099,0x609C,0x609E,0x60A1,0x60A2,0x60A4,0x60A5,
- 0x60A7,0x60A9,0x60AA,0x60AE,0x60B0,0x60B3,0x60B5,0x60B6,
- 0x60B7,0x60B9,0x60BA,0x60BD,0x60BE,0x60BF,0x60C0,0x60C1,
- 0x60C2,0x60C3,0x60C4,0x60C7,0x60C8,0x60C9,0x60CC,0x60CD,
- 0x60CE,0x60CF,0x60D0,0x60D2,0x60D3,0x60D4,0x60D6,0x60D7,
- 0x60D9,0x60DB,0x60DE,0x60E1,0x60E2,0x60E3,0x60E4,0x60E5,
- 0x60EA,0x60F1,0x60F2,0x60F5,0x60F7,0x60F8,0x60FB,0x60FC,
- 0x60FD,0x60FE,0x60FF,0x6102,0x6103,0x6104,0x6105,0x6107,
- 0x610A,0x610B,0x610C,0x6110,0x6111,0x6112,0x6113,0x6114,
- 0x6116,0x6117,0x6118,0x6119,0x611B,0x611C,0x611D,0x611E,
- 0x6121,0x6122,0x6125,0x6128,0x6129,0x612A,0x612C,0x612D,
- 0x612E,0x612F,0x6130,0x6131,0x6132,0x6133,0x6134,0x6135,
- 0x6136,0x6137,0x6138,0x6139,0x613A,0x613B,0x613C,0x613D,
- 0x613E,0x6140,0x6141,0x6142,0x6143,0x6144,0x6145,0x6146,
- 0x6147,0x6149,0x614B,0x614D,0x614F,0x6150,0x6152,0x6153,
- 0x6154,0x6156,0x6157,0x6158,0x6159,0x615A,0x615B,0x615C,
- 0x615E,0x615F,0x6160,0x6161,0x6163,0x6164,0x6165,0x6166,
- 0x6169,0x616A,0x616B,0x616C,0x616D,0x616E,0x616F,0x6171,
- 0x6172,0x6173,0x6174,0x6176,0x6178,0x6179,0x617A,0x617B,
- 0x617C,0x617D,0x617E,0x617F,0x6180,0x6181,0x6182,0x6183,
- 0x6184,0x6185,0x6186,0x6187,0x6188,0x6189,0x618A,0x618C,
- 0x618D,0x618F,0x6190,0x6191,0x6192,0x6193,0x6195,0x6196,
- 0x6197,0x6198,0x6199,0x619A,0x619B,0x619C,0x619E,0x619F,
- 0x61A0,0x61A1,0x61A2,0x61A3,0x61A4,0x61A5,0x61A6,0x61AA,
- 0x61AB,0x61AD,0x61AE,0x61AF,0x61B0,0x61B1,0x61B2,0x61B3,
- 0x61B4,0x61B5,0x61B6,0x61B8,0x61B9,0x61BA,0x61BB,0x61BC,
- 0x61BD,0x61BF,0x61C0,0x61C1,0x61C3,0x61C4,0x61C5,0x61C6,
- 0x61C7,0x61C9,0x61CC,0x61CD,0x61CE,0x61CF,0x61D0,0x61D3,
- 0x61D5,0x61D6,0x61D7,0x61D8,0x61D9,0x61DA,0x61DB,0x61DC,
- 0x61DD,0x61DE,0x61DF,0x61E0,0x61E1,0x61E2,0x61E3,0x61E4,
- 0x61E5,0x61E7,0x61E8,0x61E9,0x61EA,0x61EB,0x61EC,0x61ED,
- 0x61EE,0x61EF,0x61F0,0x61F1,0x61F2,0x61F3,0x61F4,0x61F6,
- 0x61F7,0x61F8,0x61F9,0x61FA,0x61FB,0x61FC,0x61FD,0x61FE,
- 0x6200,0x6201,0x6202,0x6203,0x6204,0x6205,0x6207,0x6209,
- 0x6213,0x6214,0x6219,0x621C,0x621D,0x621E,0x6220,0x6223,
- 0x6226,0x6227,0x6228,0x6229,0x622B,0x622D,0x622F,0x6230,
- 0x6231,0x6232,0x6235,0x6236,0x6238,0x6239,0x623A,0x623B,
- 0x623C,0x6242,0x6244,0x6245,0x6246,0x624A,0x624F,0x6250,
- 0x6255,0x6256,0x6257,0x6259,0x625A,0x625C,0x625D,0x625E,
- 0x625F,0x6260,0x6261,0x6262,0x6264,0x6265,0x6268,0x6271,
- 0x6272,0x6274,0x6275,0x6277,0x6278,0x627A,0x627B,0x627D,
- 0x6281,0x6282,0x6283,0x6285,0x6286,0x6287,0x6288,0x628B,
- 0x628C,0x628D,0x628E,0x628F,0x6290,0x6294,0x6299,0x629C,
- 0x629D,0x629E,0x62A3,0x62A6,0x62A7,0x62A9,0x62AA,0x62AD,
- 0x62AE,0x62AF,0x62B0,0x62B2,0x62B3,0x62B4,0x62B6,0x62B7,
- 0x62B8,0x62BA,0x62BE,0x62C0,0x62C1,0x62C3,0x62CB,0x62CF,
- 0x62D1,0x62D5,0x62DD,0x62DE,0x62E0,0x62E1,0x62E4,0x62EA,
- 0x62EB,0x62F0,0x62F2,0x62F5,0x62F8,0x62F9,0x62FA,0x62FB,
- 0x6300,0x6303,0x6304,0x6305,0x6306,0x630A,0x630B,0x630C,
- 0x630D,0x630F,0x6310,0x6312,0x6313,0x6314,0x6315,0x6317,
- 0x6318,0x6319,0x631C,0x6326,0x6327,0x6329,0x632C,0x632D,
- 0x632E,0x6330,0x6331,0x6333,0x6334,0x6335,0x6336,0x6337,
- 0x6338,0x633B,0x633C,0x633E,0x633F,0x6340,0x6341,0x6344,
- 0x6347,0x6348,0x634A,0x6351,0x6352,0x6353,0x6354,0x6356,
- 0x6357,0x6358,0x6359,0x635A,0x635B,0x635C,0x635D,0x6360,
- 0x6364,0x6365,0x6366,0x6368,0x636A,0x636B,0x636C,0x636F,
- 0x6370,0x6372,0x6373,0x6374,0x6375,0x6378,0x6379,0x637C,
- 0x637D,0x637E,0x637F,0x6381,0x6383,0x6384,0x6385,0x6386,
- 0x638B,0x638D,0x6391,0x6393,0x6394,0x6395,0x6397,0x6399,
- 0x639A,0x639B,0x639C,0x639D,0x639E,0x639F,0x63A1,0x63A4,
- 0x63A6,0x63AB,0x63AF,0x63B1,0x63B2,0x63B5,0x63B6,0x63B9,
- 0x63BB,0x63BD,0x63BF,0x63C0,0x63C1,0x63C2,0x63C3,0x63C5,
- 0x63C7,0x63C8,0x63CA,0x63CB,0x63CC,0x63D1,0x63D3,0x63D4,
- 0x63D5,0x63D7,0x63D8,0x63D9,0x63DA,0x63DB,0x63DC,0x63DD,
- 0x63DF,0x63E2,0x63E4,0x63E5,0x63E6,0x63E7,0x63E8,0x63EB,
- 0x63EC,0x63EE,0x63EF,0x63F0,0x63F1,0x63F3,0x63F5,0x63F7,
- 0x63F9,0x63FA,0x63FB,0x63FC,0x63FE,0x6403,0x6404,0x6406,
- 0x6407,0x6408,0x6409,0x640A,0x640D,0x640E,0x6411,0x6412,
- 0x6415,0x6416,0x6417,0x6418,0x6419,0x641A,0x641D,0x641F,
- 0x6422,0x6423,0x6424,0x6425,0x6427,0x6428,0x6429,0x642B,
- 0x642E,0x642F,0x6430,0x6431,0x6432,0x6433,0x6435,0x6436,
- 0x6437,0x6438,0x6439,0x643B,0x643C,0x643E,0x6440,0x6442,
- 0x6443,0x6449,0x644B,0x644C,0x644D,0x644E,0x644F,0x6450,
- 0x6451,0x6453,0x6455,0x6456,0x6457,0x6459,0x645A,0x645B,
- 0x645C,0x645D,0x645F,0x6460,0x6461,0x6462,0x6463,0x6464,
- 0x6465,0x6466,0x6468,0x646A,0x646B,0x646C,0x646E,0x646F,
- 0x6470,0x6471,0x6472,0x6473,0x6474,0x6475,0x6476,0x6477,
- 0x647B,0x647C,0x647D,0x647E,0x647F,0x6480,0x6481,0x6483,
- 0x6486,0x6488,0x6489,0x648A,0x648B,0x648C,0x648D,0x648E,
- 0x648F,0x6490,0x6493,0x6494,0x6497,0x6498,0x649A,0x649B,
- 0x649C,0x649D,0x649F,0x64A0,0x64A1,0x64A2,0x64A3,0x64A5,
- 0x64A6,0x64A7,0x64A8,0x64AA,0x64AB,0x64AF,0x64B1,0x64B2,
- 0x64B3,0x64B4,0x64B6,0x64B9,0x64BB,0x64BD,0x64BE,0x64BF,
- 0x64C1,0x64C3,0x64C4,0x64C6,0x64C7,0x64C8,0x64C9,0x64CA,
- 0x64CB,0x64CC,0x64CF,0x64D1,0x64D3,0x64D4,0x64D5,0x64D6,
- 0x64D9,0x64DA,0x64DB,0x64DC,0x64DD,0x64DF,0x64E0,0x64E1,
- 0x64E3,0x64E5,0x64E7,0x64E8,0x64E9,0x64EA,0x64EB,0x64EC,
- 0x64ED,0x64EE,0x64EF,0x64F0,0x64F1,0x64F2,0x64F3,0x64F4,
- 0x64F5,0x64F6,0x64F7,0x64F8,0x64F9,0x64FA,0x64FB,0x64FC,
- 0x64FD,0x64FE,0x64FF,0x6501,0x6502,0x6503,0x6504,0x6505,
- 0x6506,0x6507,0x6508,0x650A,0x650B,0x650C,0x650D,0x650E,
- 0x650F,0x6510,0x6511,0x6513,0x6514,0x6515,0x6516,0x6517,
- 0x6519,0x651A,0x651B,0x651C,0x651D,0x651E,0x651F,0x6520,
- 0x6521,0x6522,0x6523,0x6524,0x6526,0x6527,0x6528,0x6529,
- 0x652A,0x652C,0x652D,0x6530,0x6531,0x6532,0x6533,0x6537,
- 0x653A,0x653C,0x653D,0x6540,0x6541,0x6542,0x6543,0x6544,
- 0x6546,0x6547,0x654A,0x654B,0x654D,0x654E,0x6550,0x6552,
- 0x6553,0x6554,0x6557,0x6558,0x655A,0x655C,0x655F,0x6560,
- 0x6561,0x6564,0x6565,0x6567,0x6568,0x6569,0x656A,0x656D,
- 0x656E,0x656F,0x6571,0x6573,0x6575,0x6576,0x6578,0x6579,
- 0x657A,0x657B,0x657C,0x657D,0x657E,0x657F,0x6580,0x6581,
- 0x6582,0x6583,0x6584,0x6585,0x6586,0x6588,0x6589,0x658A,
- 0x658D,0x658E,0x658F,0x6592,0x6594,0x6595,0x6596,0x6598,
- 0x659A,0x659D,0x659E,0x65A0,0x65A2,0x65A3,0x65A6,0x65A8,
- 0x65AA,0x65AC,0x65AE,0x65B1,0x65B2,0x65B3,0x65B4,0x65B5,
- 0x65B6,0x65B7,0x65B8,0x65BA,0x65BB,0x65BE,0x65BF,0x65C0,
- 0x65C2,0x65C7,0x65C8,0x65C9,0x65CA,0x65CD,0x65D0,0x65D1,
- 0x65D3,0x65D4,0x65D5,0x65D8,0x65D9,0x65DA,0x65DB,0x65DC,
- 0x65DD,0x65DE,0x65DF,0x65E1,0x65E3,0x65E4,0x65EA,0x65EB,
- 0x65F2,0x65F3,0x65F4,0x65F5,0x65F8,0x65F9,0x65FB,0x65FC,
- 0x65FD,0x65FE,0x65FF,0x6601,0x6604,0x6605,0x6607,0x6608,
- 0x6609,0x660B,0x660D,0x6610,0x6611,0x6612,0x6616,0x6617,
- 0x6618,0x661A,0x661B,0x661C,0x661E,0x6621,0x6622,0x6623,
- 0x6624,0x6626,0x6629,0x662A,0x662B,0x662C,0x662E,0x6630,
- 0x6632,0x6633,0x6637,0x6638,0x6639,0x663A,0x663B,0x663D,
- 0x663F,0x6640,0x6642,0x6644,0x6645,0x6646,0x6647,0x6648,
- 0x6649,0x664A,0x664D,0x664E,0x6650,0x6651,0x6658,0x6659,
- 0x665B,0x665C,0x665D,0x665E,0x6660,0x6662,0x6663,0x6665,
- 0x6667,0x6669,0x666A,0x666B,0x666C,0x666D,0x6671,0x6672,
- 0x6673,0x6675,0x6678,0x6679,0x667B,0x667C,0x667D,0x667F,
- 0x6680,0x6681,0x6683,0x6685,0x6686,0x6688,0x6689,0x668A,
- 0x668B,0x668D,0x668E,0x668F,0x6690,0x6692,0x6693,0x6694,
- 0x6695,0x6698,0x6699,0x669A,0x669B,0x669C,0x669E,0x669F,
- 0x66A0,0x66A1,0x66A2,0x66A3,0x66A4,0x66A5,0x66A6,0x66A9,
- 0x66AA,0x66AB,0x66AC,0x66AD,0x66AF,0x66B0,0x66B1,0x66B2,
- 0x66B3,0x66B5,0x66B6,0x66B7,0x66B8,0x66BA,0x66BB,0x66BC,
- 0x66BD,0x66BF,0x66C0,0x66C1,0x66C2,0x66C3,0x66C4,0x66C5,
- 0x66C6,0x66C7,0x66C8,0x66C9,0x66CA,0x66CB,0x66CC,0x66CD,
- 0x66CE,0x66CF,0x66D0,0x66D1,0x66D2,0x66D3,0x66D4,0x66D5,
- 0x66D6,0x66D7,0x66D8,0x66DA,0x66DE,0x66DF,0x66E0,0x66E1,
- 0x66E2,0x66E3,0x66E4,0x66E5,0x66E7,0x66E8,0x66EA,0x66EB,
- 0x66EC,0x66ED,0x66EE,0x66EF,0x66F1,0x66F5,0x66F6,0x66F8,
- 0x66FA,0x66FB,0x66FD,0x6701,0x6702,0x6703,0x6704,0x6705,
- 0x6706,0x6707,0x670C,0x670E,0x670F,0x6711,0x6712,0x6713,
- 0x6716,0x6718,0x6719,0x671A,0x671C,0x671E,0x6720,0x6721,
- 0x6722,0x6723,0x6724,0x6725,0x6727,0x6729,0x672E,0x6730,
- 0x6732,0x6733,0x6736,0x6737,0x6738,0x6739,0x673B,0x673C,
- 0x673E,0x673F,0x6741,0x6744,0x6745,0x6747,0x674A,0x674B,
- 0x674D,0x6752,0x6754,0x6755,0x6757,0x6758,0x6759,0x675A,
- 0x675B,0x675D,0x6762,0x6763,0x6764,0x6766,0x6767,0x676B,
- 0x676C,0x676E,0x6771,0x6774,0x6776,0x6778,0x6779,0x677A,
- 0x677B,0x677D,0x6780,0x6782,0x6783,0x6785,0x6786,0x6788,
- 0x678A,0x678C,0x678D,0x678E,0x678F,0x6791,0x6792,0x6793,
- 0x6794,0x6796,0x6799,0x679B,0x679F,0x67A0,0x67A1,0x67A4,
- 0x67A6,0x67A9,0x67AC,0x67AE,0x67B1,0x67B2,0x67B4,0x67B9,
- 0x67BA,0x67BB,0x67BC,0x67BD,0x67BE,0x67BF,0x67C0,0x67C2,
- 0x67C5,0x67C6,0x67C7,0x67C8,0x67C9,0x67CA,0x67CB,0x67CC,
- 0x67CD,0x67CE,0x67D5,0x67D6,0x67D7,0x67DB,0x67DF,0x67E1,
- 0x67E3,0x67E4,0x67E6,0x67E7,0x67E8,0x67EA,0x67EB,0x67ED,
- 0x67EE,0x67F2,0x67F5,0x67F6,0x67F7,0x67F8,0x67F9,0x67FA,
- 0x67FB,0x67FC,0x67FE,0x6801,0x6802,0x6803,0x6804,0x6806,
- 0x680D,0x6810,0x6812,0x6814,0x6815,0x6818,0x6819,0x681A,
- 0x681B,0x681C,0x681E,0x681F,0x6820,0x6822,0x6823,0x6824,
- 0x6825,0x6826,0x6827,0x6828,0x682B,0x682C,0x682D,0x682E,
- 0x682F,0x6830,0x6831,0x6834,0x6835,0x6836,0x683A,0x683B,
- 0x683F,0x6847,0x684B,0x684D,0x684F,0x6852,0x6856,0x6857,
- 0x6858,0x6859,0x685A,0x685B,0x685C,0x685D,0x685E,0x685F,
- 0x686A,0x686C,0x686D,0x686E,0x686F,0x6870,0x6871,0x6872,
- 0x6873,0x6875,0x6878,0x6879,0x687A,0x687B,0x687C,0x687D,
- 0x687E,0x687F,0x6880,0x6882,0x6884,0x6887,0x6888,0x6889,
- 0x688A,0x688B,0x688C,0x688D,0x688E,0x6890,0x6891,0x6892,
- 0x6894,0x6895,0x6896,0x6898,0x6899,0x689A,0x689B,0x689C,
- 0x689D,0x689E,0x689F,0x68A0,0x68A1,0x68A3,0x68A4,0x68A5,
- 0x68A9,0x68AA,0x68AB,0x68AC,0x68AE,0x68B1,0x68B2,0x68B4,
- 0x68B6,0x68B7,0x68B8,0x68B9,0x68BA,0x68BB,0x68BC,0x68BD,
- 0x68BE,0x68BF,0x68C1,0x68C3,0x68C4,0x68C5,0x68C6,0x68C7,
- 0x68C8,0x68CA,0x68CC,0x68CE,0x68CF,0x68D0,0x68D1,0x68D3,
- 0x68D4,0x68D6,0x68D7,0x68D9,0x68DB,0x68DC,0x68DD,0x68DE,
- 0x68DF,0x68E1,0x68E2,0x68E4,0x68E5,0x68E6,0x68E7,0x68E8,
- 0x68E9,0x68EA,0x68EB,0x68EC,0x68ED,0x68EF,0x68F2,0x68F3,
- 0x68F4,0x68F6,0x68F7,0x68F8,0x68FB,0x68FD,0x68FE,0x68FF,
- 0x6900,0x6902,0x6903,0x6904,0x6906,0x6907,0x6908,0x6909,
- 0x690A,0x690C,0x690F,0x6911,0x6913,0x6914,0x6915,0x6916,
- 0x6917,0x6918,0x6919,0x691A,0x691B,0x691C,0x691D,0x691E,
- 0x6921,0x6922,0x6923,0x6925,0x6926,0x6927,0x6928,0x6929,
- 0x692A,0x692B,0x692C,0x692E,0x692F,0x6931,0x6932,0x6933,
- 0x6935,0x6936,0x6937,0x6938,0x693A,0x693B,0x693C,0x693E,
- 0x6940,0x6941,0x6943,0x6944,0x6945,0x6946,0x6947,0x6948,
- 0x6949,0x694A,0x694B,0x694C,0x694D,0x694E,0x694F,0x6950,
- 0x6951,0x6952,0x6953,0x6955,0x6956,0x6958,0x6959,0x695B,
- 0x695C,0x695F,0x6961,0x6962,0x6964,0x6965,0x6967,0x6968,
- 0x6969,0x696A,0x696C,0x696D,0x696F,0x6970,0x6972,0x6973,
- 0x6974,0x6975,0x6976,0x697A,0x697B,0x697D,0x697E,0x697F,
- 0x6981,0x6983,0x6985,0x698A,0x698B,0x698C,0x698E,0x698F,
- 0x6990,0x6991,0x6992,0x6993,0x6996,0x6997,0x6999,0x699A,
- 0x699D,0x699E,0x699F,0x69A0,0x69A1,0x69A2,0x69A3,0x69A4,
- 0x69A5,0x69A6,0x69A9,0x69AA,0x69AC,0x69AE,0x69AF,0x69B0,
- 0x69B2,0x69B3,0x69B5,0x69B6,0x69B8,0x69B9,0x69BA,0x69BC,
- 0x69BD,0x69BE,0x69BF,0x69C0,0x69C2,0x69C3,0x69C4,0x69C5,
- 0x69C6,0x69C7,0x69C8,0x69C9,0x69CB,0x69CD,0x69CF,0x69D1,
- 0x69D2,0x69D3,0x69D5,0x69D6,0x69D7,0x69D8,0x69D9,0x69DA,
- 0x69DC,0x69DD,0x69DE,0x69E1,0x69E2,0x69E3,0x69E4,0x69E5,
- 0x69E6,0x69E7,0x69E8,0x69E9,0x69EA,0x69EB,0x69EC,0x69EE,
- 0x69EF,0x69F0,0x69F1,0x69F3,0x69F4,0x69F5,0x69F6,0x69F7,
- 0x69F8,0x69F9,0x69FA,0x69FB,0x69FC,0x69FE,0x6A00,0x6A01,
- 0x6A02,0x6A03,0x6A04,0x6A05,0x6A06,0x6A07,0x6A08,0x6A09,
- 0x6A0B,0x6A0C,0x6A0D,0x6A0E,0x6A0F,0x6A10,0x6A11,0x6A12,
- 0x6A13,0x6A14,0x6A15,0x6A16,0x6A19,0x6A1A,0x6A1B,0x6A1C,
- 0x6A1D,0x6A1E,0x6A20,0x6A22,0x6A23,0x6A24,0x6A25,0x6A26,
- 0x6A27,0x6A29,0x6A2B,0x6A2C,0x6A2D,0x6A2E,0x6A30,0x6A32,
- 0x6A33,0x6A34,0x6A36,0x6A37,0x6A38,0x6A39,0x6A3A,0x6A3B,
- 0x6A3C,0x6A3F,0x6A40,0x6A41,0x6A42,0x6A43,0x6A45,0x6A46,
- 0x6A48,0x6A49,0x6A4A,0x6A4B,0x6A4C,0x6A4D,0x6A4E,0x6A4F,
- 0x6A51,0x6A52,0x6A53,0x6A54,0x6A55,0x6A56,0x6A57,0x6A5A,
- 0x6A5C,0x6A5D,0x6A5E,0x6A5F,0x6A60,0x6A62,0x6A63,0x6A64,
- 0x6A66,0x6A67,0x6A68,0x6A69,0x6A6A,0x6A6B,0x6A6C,0x6A6D,
- 0x6A6E,0x6A6F,0x6A70,0x6A72,0x6A73,0x6A74,0x6A75,0x6A76,
- 0x6A77,0x6A78,0x6A7A,0x6A7B,0x6A7D,0x6A7E,0x6A7F,0x6A81,
- 0x6A82,0x6A83,0x6A85,0x6A86,0x6A87,0x6A88,0x6A89,0x6A8A,
- 0x6A8B,0x6A8C,0x6A8D,0x6A8F,0x6A92,0x6A93,0x6A94,0x6A95,
- 0x6A96,0x6A98,0x6A99,0x6A9A,0x6A9B,0x6A9C,0x6A9D,0x6A9E,
- 0x6A9F,0x6AA1,0x6AA2,0x6AA3,0x6AA4,0x6AA5,0x6AA6,0x6AA7,
- 0x6AA8,0x6AAA,0x6AAD,0x6AAE,0x6AAF,0x6AB0,0x6AB1,0x6AB2,
- 0x6AB3,0x6AB4,0x6AB5,0x6AB6,0x6AB7,0x6AB8,0x6AB9,0x6ABA,
- 0x6ABB,0x6ABC,0x6ABD,0x6ABE,0x6ABF,0x6AC0,0x6AC1,0x6AC2,
- 0x6AC3,0x6AC4,0x6AC5,0x6AC6,0x6AC7,0x6AC8,0x6AC9,0x6ACA,
- 0x6ACB,0x6ACC,0x6ACD,0x6ACE,0x6ACF,0x6AD0,0x6AD1,0x6AD2,
- 0x6AD3,0x6AD4,0x6AD5,0x6AD6,0x6AD7,0x6AD8,0x6AD9,0x6ADA,
- 0x6ADB,0x6ADC,0x6ADD,0x6ADE,0x6ADF,0x6AE0,0x6AE1,0x6AE2,
- 0x6AE3,0x6AE4,0x6AE5,0x6AE6,0x6AE7,0x6AE8,0x6AE9,0x6AEA,
- 0x6AEB,0x6AEC,0x6AED,0x6AEE,0x6AEF,0x6AF0,0x6AF1,0x6AF2,
- 0x6AF3,0x6AF4,0x6AF5,0x6AF6,0x6AF7,0x6AF8,0x6AF9,0x6AFA,
- 0x6AFB,0x6AFC,0x6AFD,0x6AFE,0x6AFF,0x6B00,0x6B01,0x6B02,
- 0x6B03,0x6B04,0x6B05,0x6B06,0x6B07,0x6B08,0x6B09,0x6B0A,
- 0x6B0B,0x6B0C,0x6B0D,0x6B0E,0x6B0F,0x6B10,0x6B11,0x6B12,
- 0x6B13,0x6B14,0x6B15,0x6B16,0x6B17,0x6B18,0x6B19,0x6B1A,
- 0x6B1B,0x6B1C,0x6B1D,0x6B1E,0x6B1F,0x6B25,0x6B26,0x6B28,
- 0x6B29,0x6B2A,0x6B2B,0x6B2C,0x6B2D,0x6B2E,0x6B2F,0x6B30,
- 0x6B31,0x6B33,0x6B34,0x6B35,0x6B36,0x6B38,0x6B3B,0x6B3C,
- 0x6B3D,0x6B3F,0x6B40,0x6B41,0x6B42,0x6B44,0x6B45,0x6B48,
- 0x6B4A,0x6B4B,0x6B4D,0x6B4E,0x6B4F,0x6B50,0x6B51,0x6B52,
- 0x6B53,0x6B54,0x6B55,0x6B56,0x6B57,0x6B58,0x6B5A,0x6B5B,
- 0x6B5C,0x6B5D,0x6B5E,0x6B5F,0x6B60,0x6B61,0x6B68,0x6B69,
- 0x6B6B,0x6B6C,0x6B6D,0x6B6E,0x6B6F,0x6B70,0x6B71,0x6B72,
- 0x6B73,0x6B74,0x6B75,0x6B76,0x6B77,0x6B78,0x6B7A,0x6B7D,
- 0x6B7E,0x6B7F,0x6B80,0x6B85,0x6B88,0x6B8C,0x6B8E,0x6B8F,
- 0x6B90,0x6B91,0x6B94,0x6B95,0x6B97,0x6B98,0x6B99,0x6B9C,
- 0x6B9D,0x6B9E,0x6B9F,0x6BA0,0x6BA2,0x6BA3,0x6BA4,0x6BA5,
- 0x6BA6,0x6BA7,0x6BA8,0x6BA9,0x6BAB,0x6BAC,0x6BAD,0x6BAE,
- 0x6BAF,0x6BB0,0x6BB1,0x6BB2,0x6BB6,0x6BB8,0x6BB9,0x6BBA,
- 0x6BBB,0x6BBC,0x6BBD,0x6BBE,0x6BC0,0x6BC3,0x6BC4,0x6BC6,
- 0x6BC7,0x6BC8,0x6BC9,0x6BCA,0x6BCC,0x6BCE,0x6BD0,0x6BD1,
- 0x6BD8,0x6BDA,0x6BDC,0x6BDD,0x6BDE,0x6BDF,0x6BE0,0x6BE2,
- 0x6BE3,0x6BE4,0x6BE5,0x6BE6,0x6BE7,0x6BE8,0x6BE9,0x6BEC,
- 0x6BED,0x6BEE,0x6BF0,0x6BF1,0x6BF2,0x6BF4,0x6BF6,0x6BF7,
- 0x6BF8,0x6BFA,0x6BFB,0x6BFC,0x6BFE,0x6BFF,0x6C00,0x6C01,
- 0x6C02,0x6C03,0x6C04,0x6C08,0x6C09,0x6C0A,0x6C0B,0x6C0C,
- 0x6C0E,0x6C12,0x6C17,0x6C1C,0x6C1D,0x6C1E,0x6C20,0x6C23,
- 0x6C25,0x6C2B,0x6C2C,0x6C2D,0x6C31,0x6C33,0x6C36,0x6C37,
- 0x6C39,0x6C3A,0x6C3B,0x6C3C,0x6C3E,0x6C3F,0x6C43,0x6C44,
- 0x6C45,0x6C48,0x6C4B,0x6C4C,0x6C4D,0x6C4E,0x6C4F,0x6C51,
- 0x6C52,0x6C53,0x6C56,0x6C58,0x6C59,0x6C5A,0x6C62,0x6C63,
- 0x6C65,0x6C66,0x6C67,0x6C6B,0x6C6C,0x6C6D,0x6C6E,0x6C6F,
- 0x6C71,0x6C73,0x6C75,0x6C77,0x6C78,0x6C7A,0x6C7B,0x6C7C,
- 0x6C7F,0x6C80,0x6C84,0x6C87,0x6C8A,0x6C8B,0x6C8D,0x6C8E,
- 0x6C91,0x6C92,0x6C95,0x6C96,0x6C97,0x6C98,0x6C9A,0x6C9C,
- 0x6C9D,0x6C9E,0x6CA0,0x6CA2,0x6CA8,0x6CAC,0x6CAF,0x6CB0,
- 0x6CB4,0x6CB5,0x6CB6,0x6CB7,0x6CBA,0x6CC0,0x6CC1,0x6CC2,
- 0x6CC3,0x6CC6,0x6CC7,0x6CC8,0x6CCB,0x6CCD,0x6CCE,0x6CCF,
- 0x6CD1,0x6CD2,0x6CD8,0x6CD9,0x6CDA,0x6CDC,0x6CDD,0x6CDF,
- 0x6CE4,0x6CE6,0x6CE7,0x6CE9,0x6CEC,0x6CED,0x6CF2,0x6CF4,
- 0x6CF9,0x6CFF,0x6D00,0x6D02,0x6D03,0x6D05,0x6D06,0x6D08,
- 0x6D09,0x6D0A,0x6D0D,0x6D0F,0x6D10,0x6D11,0x6D13,0x6D14,
- 0x6D15,0x6D16,0x6D18,0x6D1C,0x6D1D,0x6D1F,0x6D20,0x6D21,
- 0x6D22,0x6D23,0x6D24,0x6D26,0x6D28,0x6D29,0x6D2C,0x6D2D,
- 0x6D2F,0x6D30,0x6D34,0x6D36,0x6D37,0x6D38,0x6D3A,0x6D3F,
- 0x6D40,0x6D42,0x6D44,0x6D49,0x6D4C,0x6D50,0x6D55,0x6D56,
- 0x6D57,0x6D58,0x6D5B,0x6D5D,0x6D5F,0x6D61,0x6D62,0x6D64,
- 0x6D65,0x6D67,0x6D68,0x6D6B,0x6D6C,0x6D6D,0x6D70,0x6D71,
- 0x6D72,0x6D73,0x6D75,0x6D76,0x6D79,0x6D7A,0x6D7B,0x6D7D,
- 0x6D7E,0x6D7F,0x6D80,0x6D81,0x6D83,0x6D84,0x6D86,0x6D87,
- 0x6D8A,0x6D8B,0x6D8D,0x6D8F,0x6D90,0x6D92,0x6D96,0x6D97,
- 0x6D98,0x6D99,0x6D9A,0x6D9C,0x6DA2,0x6DA5,0x6DAC,0x6DAD,
- 0x6DB0,0x6DB1,0x6DB3,0x6DB4,0x6DB6,0x6DB7,0x6DB9,0x6DBA,
- 0x6DBB,0x6DBC,0x6DBD,0x6DBE,0x6DC1,0x6DC2,0x6DC3,0x6DC8,
- 0x6DC9,0x6DCA,0x6DCD,0x6DCE,0x6DCF,0x6DD0,0x6DD2,0x6DD3,
- 0x6DD4,0x6DD5,0x6DD7,0x6DDA,0x6DDB,0x6DDC,0x6DDF,0x6DE2,
- 0x6DE3,0x6DE5,0x6DE7,0x6DE8,0x6DE9,0x6DEA,0x6DED,0x6DEF,
- 0x6DF0,0x6DF2,0x6DF4,0x6DF5,0x6DF6,0x6DF8,0x6DFA,0x6DFD,
- 0x6DFE,0x6DFF,0x6E00,0x6E01,0x6E02,0x6E03,0x6E04,0x6E06,
- 0x6E07,0x6E08,0x6E09,0x6E0B,0x6E0F,0x6E12,0x6E13,0x6E15,
- 0x6E18,0x6E19,0x6E1B,0x6E1C,0x6E1E,0x6E1F,0x6E22,0x6E26,
- 0x6E27,0x6E28,0x6E2A,0x6E2C,0x6E2E,0x6E30,0x6E31,0x6E33,
- 0x6E35,0x6E36,0x6E37,0x6E39,0x6E3B,0x6E3C,0x6E3D,0x6E3E,
- 0x6E3F,0x6E40,0x6E41,0x6E42,0x6E45,0x6E46,0x6E47,0x6E48,
- 0x6E49,0x6E4A,0x6E4B,0x6E4C,0x6E4F,0x6E50,0x6E51,0x6E52,
- 0x6E55,0x6E57,0x6E59,0x6E5A,0x6E5C,0x6E5D,0x6E5E,0x6E60,
- 0x6E61,0x6E62,0x6E63,0x6E64,0x6E65,0x6E66,0x6E67,0x6E68,
- 0x6E69,0x6E6A,0x6E6C,0x6E6D,0x6E6F,0x6E70,0x6E71,0x6E72,
- 0x6E73,0x6E74,0x6E75,0x6E76,0x6E77,0x6E78,0x6E79,0x6E7A,
- 0x6E7B,0x6E7C,0x6E7D,0x6E80,0x6E81,0x6E82,0x6E84,0x6E87,
- 0x6E88,0x6E8A,0x6E8B,0x6E8C,0x6E8D,0x6E8E,0x6E91,0x6E92,
- 0x6E93,0x6E94,0x6E95,0x6E96,0x6E97,0x6E99,0x6E9A,0x6E9B,
- 0x6E9D,0x6E9E,0x6EA0,0x6EA1,0x6EA3,0x6EA4,0x6EA6,0x6EA8,
- 0x6EA9,0x6EAB,0x6EAC,0x6EAD,0x6EAE,0x6EB0,0x6EB3,0x6EB5,
- 0x6EB8,0x6EB9,0x6EBC,0x6EBE,0x6EBF,0x6EC0,0x6EC3,0x6EC4,
- 0x6EC5,0x6EC6,0x6EC8,0x6EC9,0x6ECA,0x6ECC,0x6ECD,0x6ECE,
- 0x6ED0,0x6ED2,0x6ED6,0x6ED8,0x6ED9,0x6EDB,0x6EDC,0x6EDD,
- 0x6EE3,0x6EE7,0x6EEA,0x6EEB,0x6EEC,0x6EED,0x6EEE,0x6EEF,
- 0x6EF0,0x6EF1,0x6EF2,0x6EF3,0x6EF5,0x6EF6,0x6EF7,0x6EF8,
- 0x6EFA,0x6EFB,0x6EFC,0x6EFD,0x6EFE,0x6EFF,0x6F00,0x6F01,
- 0x6F03,0x6F04,0x6F05,0x6F07,0x6F08,0x6F0A,0x6F0B,0x6F0C,
- 0x6F0D,0x6F0E,0x6F10,0x6F11,0x6F12,0x6F16,0x6F17,0x6F18,
- 0x6F19,0x6F1A,0x6F1B,0x6F1C,0x6F1D,0x6F1E,0x6F1F,0x6F21,
- 0x6F22,0x6F23,0x6F25,0x6F26,0x6F27,0x6F28,0x6F2C,0x6F2E,
- 0x6F30,0x6F32,0x6F34,0x6F35,0x6F37,0x6F38,0x6F39,0x6F3A,
- 0x6F3B,0x6F3C,0x6F3D,0x6F3F,0x6F40,0x6F41,0x6F42,0x6F43,
- 0x6F44,0x6F45,0x6F48,0x6F49,0x6F4A,0x6F4C,0x6F4E,0x6F4F,
- 0x6F50,0x6F51,0x6F52,0x6F53,0x6F54,0x6F55,0x6F56,0x6F57,
- 0x6F59,0x6F5A,0x6F5B,0x6F5D,0x6F5F,0x6F60,0x6F61,0x6F63,
- 0x6F64,0x6F65,0x6F67,0x6F68,0x6F69,0x6F6A,0x6F6B,0x6F6C,
- 0x6F6F,0x6F70,0x6F71,0x6F73,0x6F75,0x6F76,0x6F77,0x6F79,
- 0x6F7B,0x6F7D,0x6F7E,0x6F7F,0x6F80,0x6F81,0x6F82,0x6F83,
- 0x6F85,0x6F86,0x6F87,0x6F8A,0x6F8B,0x6F8F,0x6F90,0x6F91,
- 0x6F92,0x6F93,0x6F94,0x6F95,0x6F96,0x6F97,0x6F98,0x6F99,
- 0x6F9A,0x6F9B,0x6F9D,0x6F9E,0x6F9F,0x6FA0,0x6FA2,0x6FA3,
- 0x6FA4,0x6FA5,0x6FA6,0x6FA8,0x6FA9,0x6FAA,0x6FAB,0x6FAC,
- 0x6FAD,0x6FAE,0x6FAF,0x6FB0,0x6FB1,0x6FB2,0x6FB4,0x6FB5,
- 0x6FB7,0x6FB8,0x6FBA,0x6FBB,0x6FBC,0x6FBD,0x6FBE,0x6FBF,
- 0x6FC1,0x6FC3,0x6FC4,0x6FC5,0x6FC6,0x6FC7,0x6FC8,0x6FCA,
- 0x6FCB,0x6FCC,0x6FCD,0x6FCE,0x6FCF,0x6FD0,0x6FD3,0x6FD4,
- 0x6FD5,0x6FD6,0x6FD7,0x6FD8,0x6FD9,0x6FDA,0x6FDB,0x6FDC,
- 0x6FDD,0x6FDF,0x6FE2,0x6FE3,0x6FE4,0x6FE5,0x6FE6,0x6FE7,
- 0x6FE8,0x6FE9,0x6FEA,0x6FEB,0x6FEC,0x6FED,0x6FF0,0x6FF1,
- 0x6FF2,0x6FF3,0x6FF4,0x6FF5,0x6FF6,0x6FF7,0x6FF8,0x6FF9,
- 0x6FFA,0x6FFB,0x6FFC,0x6FFD,0x6FFE,0x6FFF,0x7000,0x7001,
- 0x7002,0x7003,0x7004,0x7005,0x7006,0x7007,0x7008,0x7009,
- 0x700A,0x700B,0x700C,0x700D,0x700E,0x700F,0x7010,0x7012,
- 0x7013,0x7014,0x7015,0x7016,0x7017,0x7018,0x7019,0x701C,
- 0x701D,0x701E,0x701F,0x7020,0x7021,0x7022,0x7024,0x7025,
- 0x7026,0x7027,0x7028,0x7029,0x702A,0x702B,0x702C,0x702D,
- 0x702E,0x702F,0x7030,0x7031,0x7032,0x7033,0x7034,0x7036,
- 0x7037,0x7038,0x703A,0x703B,0x703C,0x703D,0x703E,0x703F,
- 0x7040,0x7041,0x7042,0x7043,0x7044,0x7045,0x7046,0x7047,
- 0x7048,0x7049,0x704A,0x704B,0x704D,0x704E,0x7050,0x7051,
- 0x7052,0x7053,0x7054,0x7055,0x7056,0x7057,0x7058,0x7059,
- 0x705A,0x705B,0x705C,0x705D,0x705F,0x7060,0x7061,0x7062,
- 0x7063,0x7064,0x7065,0x7066,0x7067,0x7068,0x7069,0x706A,
- 0x706E,0x7071,0x7072,0x7073,0x7074,0x7077,0x7079,0x707A,
- 0x707B,0x707D,0x7081,0x7082,0x7083,0x7084,0x7086,0x7087,
- 0x7088,0x708B,0x708C,0x708D,0x708F,0x7090,0x7091,0x7093,
- 0x7097,0x7098,0x709A,0x709B,0x709E,0x709F,0x70A0,0x70A1,
- 0x70A2,0x70A3,0x70A4,0x70A5,0x70A6,0x70A7,0x70A8,0x70A9,
- 0x70AA,0x70B0,0x70B2,0x70B4,0x70B5,0x70B6,0x70BA,0x70BE,
- 0x70BF,0x70C4,0x70C5,0x70C6,0x70C7,0x70C9,0x70CB,0x70CC,
- 0x70CD,0x70CE,0x70CF,0x70D0,0x70D1,0x70D2,0x70D3,0x70D4,
- 0x70D5,0x70D6,0x70D7,0x70DA,0x70DC,0x70DD,0x70DE,0x70E0,
- 0x70E1,0x70E2,0x70E3,0x70E5,0x70EA,0x70EE,0x70F0,0x70F1,
- 0x70F2,0x70F3,0x70F4,0x70F5,0x70F6,0x70F8,0x70FA,0x70FB,
- 0x70FC,0x70FE,0x70FF,0x7100,0x7101,0x7102,0x7103,0x7104,
- 0x7105,0x7106,0x7107,0x7108,0x710B,0x710C,0x710D,0x710E,
- 0x710F,0x7111,0x7112,0x7114,0x7117,0x711B,0x711C,0x711D,
- 0x711E,0x711F,0x7120,0x7121,0x7122,0x7123,0x7124,0x7125,
- 0x7127,0x7128,0x7129,0x712A,0x712B,0x712C,0x712D,0x712E,
- 0x7132,0x7133,0x7134,0x7135,0x7137,0x7138,0x7139,0x713A,
- 0x713B,0x713C,0x713D,0x713E,0x713F,0x7140,0x7141,0x7142,
- 0x7143,0x7144,0x7146,0x7147,0x7148,0x7149,0x714B,0x714D,
- 0x714F,0x7150,0x7151,0x7152,0x7153,0x7154,0x7155,0x7156,
- 0x7157,0x7158,0x7159,0x715A,0x715B,0x715D,0x715F,0x7160,
- 0x7161,0x7162,0x7163,0x7165,0x7169,0x716A,0x716B,0x716C,
- 0x716D,0x716F,0x7170,0x7171,0x7174,0x7175,0x7176,0x7177,
- 0x7179,0x717B,0x717C,0x717E,0x717F,0x7180,0x7181,0x7182,
- 0x7183,0x7185,0x7186,0x7187,0x7188,0x7189,0x718B,0x718C,
- 0x718D,0x718E,0x7190,0x7191,0x7192,0x7193,0x7195,0x7196,
- 0x7197,0x719A,0x719B,0x719C,0x719D,0x719E,0x71A1,0x71A2,
- 0x71A3,0x71A4,0x71A5,0x71A6,0x71A7,0x71A9,0x71AA,0x71AB,
- 0x71AD,0x71AE,0x71AF,0x71B0,0x71B1,0x71B2,0x71B4,0x71B6,
- 0x71B7,0x71B8,0x71BA,0x71BB,0x71BC,0x71BD,0x71BE,0x71BF,
- 0x71C0,0x71C1,0x71C2,0x71C4,0x71C5,0x71C6,0x71C7,0x71C8,
- 0x71C9,0x71CA,0x71CB,0x71CC,0x71CD,0x71CF,0x71D0,0x71D1,
- 0x71D2,0x71D3,0x71D6,0x71D7,0x71D8,0x71D9,0x71DA,0x71DB,
- 0x71DC,0x71DD,0x71DE,0x71DF,0x71E1,0x71E2,0x71E3,0x71E4,
- 0x71E6,0x71E8,0x71E9,0x71EA,0x71EB,0x71EC,0x71ED,0x71EF,
- 0x71F0,0x71F1,0x71F2,0x71F3,0x71F4,0x71F5,0x71F6,0x71F7,
- 0x71F8,0x71FA,0x71FB,0x71FC,0x71FD,0x71FE,0x71FF,0x7200,
- 0x7201,0x7202,0x7203,0x7204,0x7205,0x7207,0x7208,0x7209,
- 0x720A,0x720B,0x720C,0x720D,0x720E,0x720F,0x7210,0x7211,
- 0x7212,0x7213,0x7214,0x7215,0x7216,0x7217,0x7218,0x7219,
- 0x721A,0x721B,0x721C,0x721E,0x721F,0x7220,0x7221,0x7222,
- 0x7223,0x7224,0x7225,0x7226,0x7227,0x7229,0x722B,0x722D,
- 0x722E,0x722F,0x7232,0x7233,0x7234,0x723A,0x723C,0x723E,
- 0x7240,0x7241,0x7242,0x7243,0x7244,0x7245,0x7246,0x7249,
- 0x724A,0x724B,0x724E,0x724F,0x7250,0x7251,0x7253,0x7254,
- 0x7255,0x7257,0x7258,0x725A,0x725C,0x725E,0x7260,0x7263,
- 0x7264,0x7265,0x7268,0x726A,0x726B,0x726C,0x726D,0x7270,
- 0x7271,0x7273,0x7274,0x7276,0x7277,0x7278,0x727B,0x727C,
- 0x727D,0x7282,0x7283,0x7285,0x7286,0x7287,0x7288,0x7289,
- 0x728C,0x728E,0x7290,0x7291,0x7293,0x7294,0x7295,0x7296,
- 0x7297,0x7298,0x7299,0x729A,0x729B,0x729C,0x729D,0x729E,
- 0x72A0,0x72A1,0x72A2,0x72A3,0x72A4,0x72A5,0x72A6,0x72A7,
- 0x72A8,0x72A9,0x72AA,0x72AB,0x72AE,0x72B1,0x72B2,0x72B3,
- 0x72B5,0x72BA,0x72BB,0x72BC,0x72BD,0x72BE,0x72BF,0x72C0,
- 0x72C5,0x72C6,0x72C7,0x72C9,0x72CA,0x72CB,0x72CC,0x72CF,
- 0x72D1,0x72D3,0x72D4,0x72D5,0x72D6,0x72D8,0x72DA,0x72DB,
- 0xE4C6,0xE4C7,0xE4C8,0xE4C9,0xE4CA,0xE4CB,0xE4CC,0xE4CD,
- 0xE4CE,0xE4CF,0xE4D0,0xE4D1,0xE4D2,0xE4D3,0xE4D4,0xE4D5,
- 0xE4D6,0xE4D7,0xE4D8,0xE4D9,0xE4DA,0xE4DB,0xE4DC,0xE4DD,
- 0xE4DE,0xE4DF,0xE4E0,0xE4E1,0xE4E2,0xE4E3,0xE4E4,0xE4E5,
- 0xE4E6,0xE4E7,0xE4E8,0xE4E9,0xE4EA,0xE4EB,0xE4EC,0xE4ED,
- 0xE4EE,0xE4EF,0xE4F0,0xE4F1,0xE4F2,0xE4F3,0xE4F4,0xE4F5,
- 0xE4F6,0xE4F7,0xE4F8,0xE4F9,0xE4FA,0xE4FB,0xE4FC,0xE4FD,
- 0xE4FE,0xE4FF,0xE500,0xE501,0xE502,0xE503,0xE504,0xE505,
- 0xE506,0xE507,0xE508,0xE509,0xE50A,0xE50B,0xE50C,0xE50D,
- 0xE50E,0xE50F,0xE510,0xE511,0xE512,0xE513,0xE514,0xE515,
- 0xE516,0xE517,0xE518,0xE519,0xE51A,0xE51B,0xE51C,0xE51D,
- 0xE51E,0xE51F,0xE520,0xE521,0xE522,0xE523,0xE524,0xE525,
- 0x3000,0x3001,0x3002,0x00B7,0x02C9,0x02C7,0x00A8,0x3003,
- 0x3005,0x2014,0xFF5E,0x2016,0x2026,0x2018,0x2019,0x201C,
- 0x201D,0x3014,0x3015,0x3008,0x3009,0x300A,0x300B,0x300C,
- 0x300D,0x300E,0x300F,0x3016,0x3017,0x3010,0x3011,0x00B1,
- 0x00D7,0x00F7,0x2236,0x2227,0x2228,0x2211,0x220F,0x222A,
- 0x2229,0x2208,0x2237,0x221A,0x22A5,0x2225,0x2220,0x2312,
- 0x2299,0x222B,0x222E,0x2261,0x224C,0x2248,0x223D,0x221D,
- 0x2260,0x226E,0x226F,0x2264,0x2265,0x221E,0x2235,0x2234,
- 0x2642,0x2640,0x00B0,0x2032,0x2033,0x2103,0xFF04,0x00A4,
- 0xFFE0,0xFFE1,0x2030,0x00A7,0x2116,0x2606,0x2605,0x25CB,
- 0x25CF,0x25CE,0x25C7,0x25C6,0x25A1,0x25A0,0x25B3,0x25B2,
- 0x203B,0x2192,0x2190,0x2191,0x2193,0x3013,0xE526,0xE527,
- 0xE528,0xE529,0xE52A,0xE52B,0xE52C,0xE52D,0xE52E,0xE52F,
- 0xE530,0xE531,0xE532,0xE533,0xE534,0xE535,0xE536,0xE537,
- 0xE538,0xE539,0xE53A,0xE53B,0xE53C,0xE53D,0xE53E,0xE53F,
- 0xE540,0xE541,0xE542,0xE543,0xE544,0xE545,0xE546,0xE547,
- 0xE548,0xE549,0xE54A,0xE54B,0xE54C,0xE54D,0xE54E,0xE54F,
- 0xE550,0xE551,0xE552,0xE553,0xE554,0xE555,0xE556,0xE557,
- 0xE558,0xE559,0xE55A,0xE55B,0xE55C,0xE55D,0xE55E,0xE55F,
- 0xE560,0xE561,0xE562,0xE563,0xE564,0xE565,0xE566,0xE567,
- 0xE568,0xE569,0xE56A,0xE56B,0xE56C,0xE56D,0xE56E,0xE56F,
- 0xE570,0xE571,0xE572,0xE573,0xE574,0xE575,0xE576,0xE577,
- 0xE578,0xE579,0xE57A,0xE57B,0xE57C,0xE57D,0xE57E,0xE57F,
- 0xE580,0xE581,0xE582,0xE583,0xE584,0xE585,0x2170,0x2171,
- 0x2172,0x2173,0x2174,0x2175,0x2176,0x2177,0x2178,0x2179,
- 0xE766,0xE767,0xE768,0xE769,0xE76A,0xE76B,0x2488,0x2489,
- 0x248A,0x248B,0x248C,0x248D,0x248E,0x248F,0x2490,0x2491,
- 0x2492,0x2493,0x2494,0x2495,0x2496,0x2497,0x2498,0x2499,
- 0x249A,0x249B,0x2474,0x2475,0x2476,0x2477,0x2478,0x2479,
- 0x247A,0x247B,0x247C,0x247D,0x247E,0x247F,0x2480,0x2481,
- 0x2482,0x2483,0x2484,0x2485,0x2486,0x2487,0x2460,0x2461,
- 0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,0x2469,
- 0x20AC,0xE76D,0x3220,0x3221,0x3222,0x3223,0x3224,0x3225,
- 0x3226,0x3227,0x3228,0x3229,0xE76E,0xE76F,0x2160,0x2161,
- 0x2162,0x2163,0x2164,0x2165,0x2166,0x2167,0x2168,0x2169,
- 0x216A,0x216B,0xE770,0xE771,0xE586,0xE587,0xE588,0xE589,
- 0xE58A,0xE58B,0xE58C,0xE58D,0xE58E,0xE58F,0xE590,0xE591,
- 0xE592,0xE593,0xE594,0xE595,0xE596,0xE597,0xE598,0xE599,
- 0xE59A,0xE59B,0xE59C,0xE59D,0xE59E,0xE59F,0xE5A0,0xE5A1,
- 0xE5A2,0xE5A3,0xE5A4,0xE5A5,0xE5A6,0xE5A7,0xE5A8,0xE5A9,
- 0xE5AA,0xE5AB,0xE5AC,0xE5AD,0xE5AE,0xE5AF,0xE5B0,0xE5B1,
- 0xE5B2,0xE5B3,0xE5B4,0xE5B5,0xE5B6,0xE5B7,0xE5B8,0xE5B9,
- 0xE5BA,0xE5BB,0xE5BC,0xE5BD,0xE5BE,0xE5BF,0xE5C0,0xE5C1,
- 0xE5C2,0xE5C3,0xE5C4,0xE5C5,0xE5C6,0xE5C7,0xE5C8,0xE5C9,
- 0xE5CA,0xE5CB,0xE5CC,0xE5CD,0xE5CE,0xE5CF,0xE5D0,0xE5D1,
- 0xE5D2,0xE5D3,0xE5D4,0xE5D5,0xE5D6,0xE5D7,0xE5D8,0xE5D9,
- 0xE5DA,0xE5DB,0xE5DC,0xE5DD,0xE5DE,0xE5DF,0xE5E0,0xE5E1,
- 0xE5E2,0xE5E3,0xE5E4,0xE5E5,0xFF01,0xFF02,0xFF03,0xFFE5,
- 0xFF05,0xFF06,0xFF07,0xFF08,0xFF09,0xFF0A,0xFF0B,0xFF0C,
- 0xFF0D,0xFF0E,0xFF0F,0xFF10,0xFF11,0xFF12,0xFF13,0xFF14,
- 0xFF15,0xFF16,0xFF17,0xFF18,0xFF19,0xFF1A,0xFF1B,0xFF1C,
- 0xFF1D,0xFF1E,0xFF1F,0xFF20,0xFF21,0xFF22,0xFF23,0xFF24,
- 0xFF25,0xFF26,0xFF27,0xFF28,0xFF29,0xFF2A,0xFF2B,0xFF2C,
- 0xFF2D,0xFF2E,0xFF2F,0xFF30,0xFF31,0xFF32,0xFF33,0xFF34,
- 0xFF35,0xFF36,0xFF37,0xFF38,0xFF39,0xFF3A,0xFF3B,0xFF3C,
- 0xFF3D,0xFF3E,0xFF3F,0xFF40,0xFF41,0xFF42,0xFF43,0xFF44,
- 0xFF45,0xFF46,0xFF47,0xFF48,0xFF49,0xFF4A,0xFF4B,0xFF4C,
- 0xFF4D,0xFF4E,0xFF4F,0xFF50,0xFF51,0xFF52,0xFF53,0xFF54,
- 0xFF55,0xFF56,0xFF57,0xFF58,0xFF59,0xFF5A,0xFF5B,0xFF5C,
- 0xFF5D,0xFFE3,0xE5E6,0xE5E7,0xE5E8,0xE5E9,0xE5EA,0xE5EB,
- 0xE5EC,0xE5ED,0xE5EE,0xE5EF,0xE5F0,0xE5F1,0xE5F2,0xE5F3,
- 0xE5F4,0xE5F5,0xE5F6,0xE5F7,0xE5F8,0xE5F9,0xE5FA,0xE5FB,
- 0xE5FC,0xE5FD,0xE5FE,0xE5FF,0xE600,0xE601,0xE602,0xE603,
- 0xE604,0xE605,0xE606,0xE607,0xE608,0xE609,0xE60A,0xE60B,
- 0xE60C,0xE60D,0xE60E,0xE60F,0xE610,0xE611,0xE612,0xE613,
- 0xE614,0xE615,0xE616,0xE617,0xE618,0xE619,0xE61A,0xE61B,
- 0xE61C,0xE61D,0xE61E,0xE61F,0xE620,0xE621,0xE622,0xE623,
- 0xE624,0xE625,0xE626,0xE627,0xE628,0xE629,0xE62A,0xE62B,
- 0xE62C,0xE62D,0xE62E,0xE62F,0xE630,0xE631,0xE632,0xE633,
- 0xE634,0xE635,0xE636,0xE637,0xE638,0xE639,0xE63A,0xE63B,
- 0xE63C,0xE63D,0xE63E,0xE63F,0xE640,0xE641,0xE642,0xE643,
- 0xE644,0xE645,0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,
- 0x3047,0x3048,0x3049,0x304A,0x304B,0x304C,0x304D,0x304E,
- 0x304F,0x3050,0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,
- 0x3057,0x3058,0x3059,0x305A,0x305B,0x305C,0x305D,0x305E,
- 0x305F,0x3060,0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,
- 0x3067,0x3068,0x3069,0x306A,0x306B,0x306C,0x306D,0x306E,
- 0x306F,0x3070,0x3071,0x3072,0x3073,0x3074,0x3075,0x3076,
- 0x3077,0x3078,0x3079,0x307A,0x307B,0x307C,0x307D,0x307E,
- 0x307F,0x3080,0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,
- 0x3087,0x3088,0x3089,0x308A,0x308B,0x308C,0x308D,0x308E,
- 0x308F,0x3090,0x3091,0x3092,0x3093,0xE772,0xE773,0xE774,
- 0xE775,0xE776,0xE777,0xE778,0xE779,0xE77A,0xE77B,0xE77C,
- 0xE646,0xE647,0xE648,0xE649,0xE64A,0xE64B,0xE64C,0xE64D,
- 0xE64E,0xE64F,0xE650,0xE651,0xE652,0xE653,0xE654,0xE655,
- 0xE656,0xE657,0xE658,0xE659,0xE65A,0xE65B,0xE65C,0xE65D,
- 0xE65E,0xE65F,0xE660,0xE661,0xE662,0xE663,0xE664,0xE665,
- 0xE666,0xE667,0xE668,0xE669,0xE66A,0xE66B,0xE66C,0xE66D,
- 0xE66E,0xE66F,0xE670,0xE671,0xE672,0xE673,0xE674,0xE675,
- 0xE676,0xE677,0xE678,0xE679,0xE67A,0xE67B,0xE67C,0xE67D,
- 0xE67E,0xE67F,0xE680,0xE681,0xE682,0xE683,0xE684,0xE685,
- 0xE686,0xE687,0xE688,0xE689,0xE68A,0xE68B,0xE68C,0xE68D,
- 0xE68E,0xE68F,0xE690,0xE691,0xE692,0xE693,0xE694,0xE695,
- 0xE696,0xE697,0xE698,0xE699,0xE69A,0xE69B,0xE69C,0xE69D,
- 0xE69E,0xE69F,0xE6A0,0xE6A1,0xE6A2,0xE6A3,0xE6A4,0xE6A5,
- 0x30A1,0x30A2,0x30A3,0x30A4,0x30A5,0x30A6,0x30A7,0x30A8,
- 0x30A9,0x30AA,0x30AB,0x30AC,0x30AD,0x30AE,0x30AF,0x30B0,
- 0x30B1,0x30B2,0x30B3,0x30B4,0x30B5,0x30B6,0x30B7,0x30B8,
- 0x30B9,0x30BA,0x30BB,0x30BC,0x30BD,0x30BE,0x30BF,0x30C0,
- 0x30C1,0x30C2,0x30C3,0x30C4,0x30C5,0x30C6,0x30C7,0x30C8,
- 0x30C9,0x30CA,0x30CB,0x30CC,0x30CD,0x30CE,0x30CF,0x30D0,
- 0x30D1,0x30D2,0x30D3,0x30D4,0x30D5,0x30D6,0x30D7,0x30D8,
- 0x30D9,0x30DA,0x30DB,0x30DC,0x30DD,0x30DE,0x30DF,0x30E0,
- 0x30E1,0x30E2,0x30E3,0x30E4,0x30E5,0x30E6,0x30E7,0x30E8,
- 0x30E9,0x30EA,0x30EB,0x30EC,0x30ED,0x30EE,0x30EF,0x30F0,
- 0x30F1,0x30F2,0x30F3,0x30F4,0x30F5,0x30F6,0xE77D,0xE77E,
- 0xE77F,0xE780,0xE781,0xE782,0xE783,0xE784,0xE6A6,0xE6A7,
- 0xE6A8,0xE6A9,0xE6AA,0xE6AB,0xE6AC,0xE6AD,0xE6AE,0xE6AF,
- 0xE6B0,0xE6B1,0xE6B2,0xE6B3,0xE6B4,0xE6B5,0xE6B6,0xE6B7,
- 0xE6B8,0xE6B9,0xE6BA,0xE6BB,0xE6BC,0xE6BD,0xE6BE,0xE6BF,
- 0xE6C0,0xE6C1,0xE6C2,0xE6C3,0xE6C4,0xE6C5,0xE6C6,0xE6C7,
- 0xE6C8,0xE6C9,0xE6CA,0xE6CB,0xE6CC,0xE6CD,0xE6CE,0xE6CF,
- 0xE6D0,0xE6D1,0xE6D2,0xE6D3,0xE6D4,0xE6D5,0xE6D6,0xE6D7,
- 0xE6D8,0xE6D9,0xE6DA,0xE6DB,0xE6DC,0xE6DD,0xE6DE,0xE6DF,
- 0xE6E0,0xE6E1,0xE6E2,0xE6E3,0xE6E4,0xE6E5,0xE6E6,0xE6E7,
- 0xE6E8,0xE6E9,0xE6EA,0xE6EB,0xE6EC,0xE6ED,0xE6EE,0xE6EF,
- 0xE6F0,0xE6F1,0xE6F2,0xE6F3,0xE6F4,0xE6F5,0xE6F6,0xE6F7,
- 0xE6F8,0xE6F9,0xE6FA,0xE6FB,0xE6FC,0xE6FD,0xE6FE,0xE6FF,
- 0xE700,0xE701,0xE702,0xE703,0xE704,0xE705,0x0391,0x0392,
- 0x0393,0x0394,0x0395,0x0396,0x0397,0x0398,0x0399,0x039A,
- 0x039B,0x039C,0x039D,0x039E,0x039F,0x03A0,0x03A1,0x03A3,
- 0x03A4,0x03A5,0x03A6,0x03A7,0x03A8,0x03A9,0xE785,0xE786,
- 0xE787,0xE788,0xE789,0xE78A,0xE78B,0xE78C,0x03B1,0x03B2,
- 0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,0x03B8,0x03B9,0x03BA,
- 0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,0x03C0,0x03C1,0x03C3,
- 0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,0x03C9,0xE78D,0xE78E,
- 0xE78F,0xE790,0xE791,0xE792,0xE793,0xFE35,0xFE36,0xFE39,
- 0xFE3A,0xFE3F,0xFE40,0xFE3D,0xFE3E,0xFE41,0xFE42,0xFE43,
- 0xFE44,0xE794,0xE795,0xFE3B,0xFE3C,0xFE37,0xFE38,0xFE31,
- 0xE796,0xFE33,0xFE34,0xE797,0xE798,0xE799,0xE79A,0xE79B,
- 0xE79C,0xE79D,0xE79E,0xE79F,0xE706,0xE707,0xE708,0xE709,
- 0xE70A,0xE70B,0xE70C,0xE70D,0xE70E,0xE70F,0xE710,0xE711,
- 0xE712,0xE713,0xE714,0xE715,0xE716,0xE717,0xE718,0xE719,
- 0xE71A,0xE71B,0xE71C,0xE71D,0xE71E,0xE71F,0xE720,0xE721,
- 0xE722,0xE723,0xE724,0xE725,0xE726,0xE727,0xE728,0xE729,
- 0xE72A,0xE72B,0xE72C,0xE72D,0xE72E,0xE72F,0xE730,0xE731,
- 0xE732,0xE733,0xE734,0xE735,0xE736,0xE737,0xE738,0xE739,
- 0xE73A,0xE73B,0xE73C,0xE73D,0xE73E,0xE73F,0xE740,0xE741,
- 0xE742,0xE743,0xE744,0xE745,0xE746,0xE747,0xE748,0xE749,
- 0xE74A,0xE74B,0xE74C,0xE74D,0xE74E,0xE74F,0xE750,0xE751,
- 0xE752,0xE753,0xE754,0xE755,0xE756,0xE757,0xE758,0xE759,
- 0xE75A,0xE75B,0xE75C,0xE75D,0xE75E,0xE75F,0xE760,0xE761,
- 0xE762,0xE763,0xE764,0xE765,0x0410,0x0411,0x0412,0x0413,
- 0x0414,0x0415,0x0401,0x0416,0x0417,0x0418,0x0419,0x041A,
- 0x041B,0x041C,0x041D,0x041E,0x041F,0x0420,0x0421,0x0422,
- 0x0423,0x0424,0x0425,0x0426,0x0427,0x0428,0x0429,0x042A,
- 0x042B,0x042C,0x042D,0x042E,0x042F,0xE7A0,0xE7A1,0xE7A2,
- 0xE7A3,0xE7A4,0xE7A5,0xE7A6,0xE7A7,0xE7A8,0xE7A9,0xE7AA,
- 0xE7AB,0xE7AC,0xE7AD,0xE7AE,0x0430,0x0431,0x0432,0x0433,
- 0x0434,0x0435,0x0451,0x0436,0x0437,0x0438,0x0439,0x043A,
- 0x043B,0x043C,0x043D,0x043E,0x043F,0x0440,0x0441,0x0442,
- 0x0443,0x0444,0x0445,0x0446,0x0447,0x0448,0x0449,0x044A,
- 0x044B,0x044C,0x044D,0x044E,0x044F,0xE7AF,0xE7B0,0xE7B1,
- 0xE7B2,0xE7B3,0xE7B4,0xE7B5,0xE7B6,0xE7B7,0xE7B8,0xE7B9,
- 0xE7BA,0xE7BB,0x02CA,0x02CB,0x02D9,0x2013,0x2015,0x2025,
- 0x2035,0x2105,0x2109,0x2196,0x2197,0x2198,0x2199,0x2215,
- 0x221F,0x2223,0x2252,0x2266,0x2267,0x22BF,0x2550,0x2551,
- 0x2552,0x2553,0x2554,0x2555,0x2556,0x2557,0x2558,0x2559,
- 0x255A,0x255B,0x255C,0x255D,0x255E,0x255F,0x2560,0x2561,
- 0x2562,0x2563,0x2564,0x2565,0x2566,0x2567,0x2568,0x2569,
- 0x256A,0x256B,0x256C,0x256D,0x256E,0x256F,0x2570,0x2571,
- 0x2572,0x2573,0x2581,0x2582,0x2583,0x2584,0x2585,0x2586,
- 0x2587,0x2588,0x2589,0x258A,0x258B,0x258C,0x258D,0x258E,
- 0x258F,0x2593,0x2594,0x2595,0x25BC,0x25BD,0x25E2,0x25E3,
- 0x25E4,0x25E5,0x2609,0x2295,0x3012,0x301D,0x301E,0xE7BC,
- 0xE7BD,0xE7BE,0xE7BF,0xE7C0,0xE7C1,0xE7C2,0xE7C3,0xE7C4,
- 0xE7C5,0xE7C6,0x0101,0x00E1,0x01CE,0x00E0,0x0113,0x00E9,
- 0x011B,0x00E8,0x012B,0x00ED,0x01D0,0x00EC,0x014D,0x00F3,
- 0x01D2,0x00F2,0x016B,0x00FA,0x01D4,0x00F9,0x01D6,0x01D8,
- 0x01DA,0x01DC,0x00FC,0x00EA,0x0251,0xE7C7,0x0144,0x0148,
- 0x01F9,0x0261,0xE7C9,0xE7CA,0xE7CB,0xE7CC,0x3105,0x3106,
- 0x3107,0x3108,0x3109,0x310A,0x310B,0x310C,0x310D,0x310E,
- 0x310F,0x3110,0x3111,0x3112,0x3113,0x3114,0x3115,0x3116,
- 0x3117,0x3118,0x3119,0x311A,0x311B,0x311C,0x311D,0x311E,
- 0x311F,0x3120,0x3121,0x3122,0x3123,0x3124,0x3125,0x3126,
- 0x3127,0x3128,0x3129,0xE7CD,0xE7CE,0xE7CF,0xE7D0,0xE7D1,
- 0xE7D2,0xE7D3,0xE7D4,0xE7D5,0xE7D6,0xE7D7,0xE7D8,0xE7D9,
- 0xE7DA,0xE7DB,0xE7DC,0xE7DD,0xE7DE,0xE7DF,0xE7E0,0xE7E1,
- 0x3021,0x3022,0x3023,0x3024,0x3025,0x3026,0x3027,0x3028,
- 0x3029,0x32A3,0x338E,0x338F,0x339C,0x339D,0x339E,0x33A1,
- 0x33C4,0x33CE,0x33D1,0x33D2,0x33D5,0xFE30,0xFFE2,0xFFE4,
- 0xE7E2,0x2121,0x3231,0xE7E3,0x2010,0xE7E4,0xE7E5,0xE7E6,
- 0x30FC,0x309B,0x309C,0x30FD,0x30FE,0x3006,0x309D,0x309E,
- 0xFE49,0xFE4A,0xFE4B,0xFE4C,0xFE4D,0xFE4E,0xFE4F,0xFE50,
- 0xFE51,0xFE52,0xFE54,0xFE55,0xFE56,0xFE57,0xFE59,0xFE5A,
- 0xFE5B,0xFE5C,0xFE5D,0xFE5E,0xFE5F,0xFE60,0xFE61,0xFE62,
- 0xFE63,0xFE64,0xFE65,0xFE66,0xFE68,0xFE69,0xFE6A,0xFE6B,
- 0x303E,0x2FF0,0x2FF1,0x2FF2,0x2FF3,0x2FF4,0x2FF5,0x2FF6,
- 0x2FF7,0x2FF8,0x2FF9,0x2FFA,0x2FFB,0x3007,0xE7F4,0xE7F5,
- 0xE7F6,0xE7F7,0xE7F8,0xE7F9,0xE7FA,0xE7FB,0xE7FC,0xE7FD,
- 0xE7FE,0xE7FF,0xE800,0x2500,0x2501,0x2502,0x2503,0x2504,
- 0x2505,0x2506,0x2507,0x2508,0x2509,0x250A,0x250B,0x250C,
- 0x250D,0x250E,0x250F,0x2510,0x2511,0x2512,0x2513,0x2514,
- 0x2515,0x2516,0x2517,0x2518,0x2519,0x251A,0x251B,0x251C,
- 0x251D,0x251E,0x251F,0x2520,0x2521,0x2522,0x2523,0x2524,
- 0x2525,0x2526,0x2527,0x2528,0x2529,0x252A,0x252B,0x252C,
- 0x252D,0x252E,0x252F,0x2530,0x2531,0x2532,0x2533,0x2534,
- 0x2535,0x2536,0x2537,0x2538,0x2539,0x253A,0x253B,0x253C,
- 0x253D,0x253E,0x253F,0x2540,0x2541,0x2542,0x2543,0x2544,
- 0x2545,0x2546,0x2547,0x2548,0x2549,0x254A,0x254B,0xE801,
- 0xE802,0xE803,0xE804,0xE805,0xE806,0xE807,0xE808,0xE809,
- 0xE80A,0xE80B,0xE80C,0xE80D,0xE80E,0xE80F,0x72DC,0x72DD,
- 0x72DF,0x72E2,0x72E3,0x72E4,0x72E5,0x72E6,0x72E7,0x72EA,
- 0x72EB,0x72F5,0x72F6,0x72F9,0x72FD,0x72FE,0x72FF,0x7300,
- 0x7302,0x7304,0x7305,0x7306,0x7307,0x7308,0x7309,0x730B,
- 0x730C,0x730D,0x730F,0x7310,0x7311,0x7312,0x7314,0x7318,
- 0x7319,0x731A,0x731F,0x7320,0x7323,0x7324,0x7326,0x7327,
- 0x7328,0x732D,0x732F,0x7330,0x7332,0x7333,0x7335,0x7336,
- 0x733A,0x733B,0x733C,0x733D,0x7340,0x7341,0x7342,0x7343,
- 0x7344,0x7345,0x7346,0x7347,0x7348,0x7349,0x734A,0x734B,
- 0x734C,0x734E,0x734F,0x7351,0x7353,0x7354,0x7355,0x7356,
- 0x7358,0x7359,0x735A,0x735B,0x735C,0x735D,0x735E,0x735F,
- 0x7361,0x7362,0x7363,0x7364,0x7365,0x7366,0x7367,0x7368,
- 0x7369,0x736A,0x736B,0x736E,0x7370,0x7371,0xE000,0xE001,
- 0xE002,0xE003,0xE004,0xE005,0xE006,0xE007,0xE008,0xE009,
- 0xE00A,0xE00B,0xE00C,0xE00D,0xE00E,0xE00F,0xE010,0xE011,
- 0xE012,0xE013,0xE014,0xE015,0xE016,0xE017,0xE018,0xE019,
- 0xE01A,0xE01B,0xE01C,0xE01D,0xE01E,0xE01F,0xE020,0xE021,
- 0xE022,0xE023,0xE024,0xE025,0xE026,0xE027,0xE028,0xE029,
- 0xE02A,0xE02B,0xE02C,0xE02D,0xE02E,0xE02F,0xE030,0xE031,
- 0xE032,0xE033,0xE034,0xE035,0xE036,0xE037,0xE038,0xE039,
- 0xE03A,0xE03B,0xE03C,0xE03D,0xE03E,0xE03F,0xE040,0xE041,
- 0xE042,0xE043,0xE044,0xE045,0xE046,0xE047,0xE048,0xE049,
- 0xE04A,0xE04B,0xE04C,0xE04D,0xE04E,0xE04F,0xE050,0xE051,
- 0xE052,0xE053,0xE054,0xE055,0xE056,0xE057,0xE058,0xE059,
- 0xE05A,0xE05B,0xE05C,0xE05D,0x7372,0x7373,0x7374,0x7375,
- 0x7376,0x7377,0x7378,0x7379,0x737A,0x737B,0x737C,0x737D,
- 0x737F,0x7380,0x7381,0x7382,0x7383,0x7385,0x7386,0x7388,
- 0x738A,0x738C,0x738D,0x738F,0x7390,0x7392,0x7393,0x7394,
- 0x7395,0x7397,0x7398,0x7399,0x739A,0x739C,0x739D,0x739E,
- 0x73A0,0x73A1,0x73A3,0x73A4,0x73A5,0x73A6,0x73A7,0x73A8,
- 0x73AA,0x73AC,0x73AD,0x73B1,0x73B4,0x73B5,0x73B6,0x73B8,
- 0x73B9,0x73BC,0x73BD,0x73BE,0x73BF,0x73C1,0x73C3,0x73C4,
- 0x73C5,0x73C6,0x73C7,0x73CB,0x73CC,0x73CE,0x73D2,0x73D3,
- 0x73D4,0x73D5,0x73D6,0x73D7,0x73D8,0x73DA,0x73DB,0x73DC,
- 0x73DD,0x73DF,0x73E1,0x73E2,0x73E3,0x73E4,0x73E6,0x73E8,
- 0x73EA,0x73EB,0x73EC,0x73EE,0x73EF,0x73F0,0x73F1,0x73F3,
- 0x73F4,0x73F5,0x73F6,0x73F7,0xE05E,0xE05F,0xE060,0xE061,
- 0xE062,0xE063,0xE064,0xE065,0xE066,0xE067,0xE068,0xE069,
- 0xE06A,0xE06B,0xE06C,0xE06D,0xE06E,0xE06F,0xE070,0xE071,
- 0xE072,0xE073,0xE074,0xE075,0xE076,0xE077,0xE078,0xE079,
- 0xE07A,0xE07B,0xE07C,0xE07D,0xE07E,0xE07F,0xE080,0xE081,
- 0xE082,0xE083,0xE084,0xE085,0xE086,0xE087,0xE088,0xE089,
- 0xE08A,0xE08B,0xE08C,0xE08D,0xE08E,0xE08F,0xE090,0xE091,
- 0xE092,0xE093,0xE094,0xE095,0xE096,0xE097,0xE098,0xE099,
- 0xE09A,0xE09B,0xE09C,0xE09D,0xE09E,0xE09F,0xE0A0,0xE0A1,
- 0xE0A2,0xE0A3,0xE0A4,0xE0A5,0xE0A6,0xE0A7,0xE0A8,0xE0A9,
- 0xE0AA,0xE0AB,0xE0AC,0xE0AD,0xE0AE,0xE0AF,0xE0B0,0xE0B1,
- 0xE0B2,0xE0B3,0xE0B4,0xE0B5,0xE0B6,0xE0B7,0xE0B8,0xE0B9,
- 0xE0BA,0xE0BB,0x73F8,0x73F9,0x73FA,0x73FB,0x73FC,0x73FD,
- 0x73FE,0x73FF,0x7400,0x7401,0x7402,0x7404,0x7407,0x7408,
- 0x740B,0x740C,0x740D,0x740E,0x7411,0x7412,0x7413,0x7414,
- 0x7415,0x7416,0x7417,0x7418,0x7419,0x741C,0x741D,0x741E,
- 0x741F,0x7420,0x7421,0x7423,0x7424,0x7427,0x7429,0x742B,
- 0x742D,0x742F,0x7431,0x7432,0x7437,0x7438,0x7439,0x743A,
- 0x743B,0x743D,0x743E,0x743F,0x7440,0x7442,0x7443,0x7444,
- 0x7445,0x7446,0x7447,0x7448,0x7449,0x744A,0x744B,0x744C,
- 0x744D,0x744E,0x744F,0x7450,0x7451,0x7452,0x7453,0x7454,
- 0x7456,0x7458,0x745D,0x7460,0x7461,0x7462,0x7463,0x7464,
- 0x7465,0x7466,0x7467,0x7468,0x7469,0x746A,0x746B,0x746C,
- 0x746E,0x746F,0x7471,0x7472,0x7473,0x7474,0x7475,0x7478,
- 0x7479,0x747A,0xE0BC,0xE0BD,0xE0BE,0xE0BF,0xE0C0,0xE0C1,
- 0xE0C2,0xE0C3,0xE0C4,0xE0C5,0xE0C6,0xE0C7,0xE0C8,0xE0C9,
- 0xE0CA,0xE0CB,0xE0CC,0xE0CD,0xE0CE,0xE0CF,0xE0D0,0xE0D1,
- 0xE0D2,0xE0D3,0xE0D4,0xE0D5,0xE0D6,0xE0D7,0xE0D8,0xE0D9,
- 0xE0DA,0xE0DB,0xE0DC,0xE0DD,0xE0DE,0xE0DF,0xE0E0,0xE0E1,
- 0xE0E2,0xE0E3,0xE0E4,0xE0E5,0xE0E6,0xE0E7,0xE0E8,0xE0E9,
- 0xE0EA,0xE0EB,0xE0EC,0xE0ED,0xE0EE,0xE0EF,0xE0F0,0xE0F1,
- 0xE0F2,0xE0F3,0xE0F4,0xE0F5,0xE0F6,0xE0F7,0xE0F8,0xE0F9,
- 0xE0FA,0xE0FB,0xE0FC,0xE0FD,0xE0FE,0xE0FF,0xE100,0xE101,
- 0xE102,0xE103,0xE104,0xE105,0xE106,0xE107,0xE108,0xE109,
- 0xE10A,0xE10B,0xE10C,0xE10D,0xE10E,0xE10F,0xE110,0xE111,
- 0xE112,0xE113,0xE114,0xE115,0xE116,0xE117,0xE118,0xE119,
- 0x747B,0x747C,0x747D,0x747F,0x7482,0x7484,0x7485,0x7486,
- 0x7488,0x7489,0x748A,0x748C,0x748D,0x748F,0x7491,0x7492,
- 0x7493,0x7494,0x7495,0x7496,0x7497,0x7498,0x7499,0x749A,
- 0x749B,0x749D,0x749F,0x74A0,0x74A1,0x74A2,0x74A3,0x74A4,
- 0x74A5,0x74A6,0x74AA,0x74AB,0x74AC,0x74AD,0x74AE,0x74AF,
- 0x74B0,0x74B1,0x74B2,0x74B3,0x74B4,0x74B5,0x74B6,0x74B7,
- 0x74B8,0x74B9,0x74BB,0x74BC,0x74BD,0x74BE,0x74BF,0x74C0,
- 0x74C1,0x74C2,0x74C3,0x74C4,0x74C5,0x74C6,0x74C7,0x74C8,
- 0x74C9,0x74CA,0x74CB,0x74CC,0x74CD,0x74CE,0x74CF,0x74D0,
- 0x74D1,0x74D3,0x74D4,0x74D5,0x74D6,0x74D7,0x74D8,0x74D9,
- 0x74DA,0x74DB,0x74DD,0x74DF,0x74E1,0x74E5,0x74E7,0x74E8,
- 0x74E9,0x74EA,0x74EB,0x74EC,0x74ED,0x74F0,0x74F1,0x74F2,
- 0xE11A,0xE11B,0xE11C,0xE11D,0xE11E,0xE11F,0xE120,0xE121,
- 0xE122,0xE123,0xE124,0xE125,0xE126,0xE127,0xE128,0xE129,
- 0xE12A,0xE12B,0xE12C,0xE12D,0xE12E,0xE12F,0xE130,0xE131,
- 0xE132,0xE133,0xE134,0xE135,0xE136,0xE137,0xE138,0xE139,
- 0xE13A,0xE13B,0xE13C,0xE13D,0xE13E,0xE13F,0xE140,0xE141,
- 0xE142,0xE143,0xE144,0xE145,0xE146,0xE147,0xE148,0xE149,
- 0xE14A,0xE14B,0xE14C,0xE14D,0xE14E,0xE14F,0xE150,0xE151,
- 0xE152,0xE153,0xE154,0xE155,0xE156,0xE157,0xE158,0xE159,
- 0xE15A,0xE15B,0xE15C,0xE15D,0xE15E,0xE15F,0xE160,0xE161,
- 0xE162,0xE163,0xE164,0xE165,0xE166,0xE167,0xE168,0xE169,
- 0xE16A,0xE16B,0xE16C,0xE16D,0xE16E,0xE16F,0xE170,0xE171,
- 0xE172,0xE173,0xE174,0xE175,0xE176,0xE177,0x74F3,0x74F5,
- 0x74F8,0x74F9,0x74FA,0x74FB,0x74FC,0x74FD,0x74FE,0x7500,
- 0x7501,0x7502,0x7503,0x7505,0x7506,0x7507,0x7508,0x7509,
- 0x750A,0x750B,0x750C,0x750E,0x7510,0x7512,0x7514,0x7515,
- 0x7516,0x7517,0x751B,0x751D,0x751E,0x7520,0x7521,0x7522,
- 0x7523,0x7524,0x7526,0x7527,0x752A,0x752E,0x7534,0x7536,
- 0x7539,0x753C,0x753D,0x753F,0x7541,0x7542,0x7543,0x7544,
- 0x7546,0x7547,0x7549,0x754A,0x754D,0x7550,0x7551,0x7552,
- 0x7553,0x7555,0x7556,0x7557,0x7558,0x755D,0x755E,0x755F,
- 0x7560,0x7561,0x7562,0x7563,0x7564,0x7567,0x7568,0x7569,
- 0x756B,0x756C,0x756D,0x756E,0x756F,0x7570,0x7571,0x7573,
- 0x7575,0x7576,0x7577,0x757A,0x757B,0x757C,0x757D,0x757E,
- 0x7580,0x7581,0x7582,0x7584,0x7585,0x7587,0xE178,0xE179,
- 0xE17A,0xE17B,0xE17C,0xE17D,0xE17E,0xE17F,0xE180,0xE181,
- 0xE182,0xE183,0xE184,0xE185,0xE186,0xE187,0xE188,0xE189,
- 0xE18A,0xE18B,0xE18C,0xE18D,0xE18E,0xE18F,0xE190,0xE191,
- 0xE192,0xE193,0xE194,0xE195,0xE196,0xE197,0xE198,0xE199,
- 0xE19A,0xE19B,0xE19C,0xE19D,0xE19E,0xE19F,0xE1A0,0xE1A1,
- 0xE1A2,0xE1A3,0xE1A4,0xE1A5,0xE1A6,0xE1A7,0xE1A8,0xE1A9,
- 0xE1AA,0xE1AB,0xE1AC,0xE1AD,0xE1AE,0xE1AF,0xE1B0,0xE1B1,
- 0xE1B2,0xE1B3,0xE1B4,0xE1B5,0xE1B6,0xE1B7,0xE1B8,0xE1B9,
- 0xE1BA,0xE1BB,0xE1BC,0xE1BD,0xE1BE,0xE1BF,0xE1C0,0xE1C1,
- 0xE1C2,0xE1C3,0xE1C4,0xE1C5,0xE1C6,0xE1C7,0xE1C8,0xE1C9,
- 0xE1CA,0xE1CB,0xE1CC,0xE1CD,0xE1CE,0xE1CF,0xE1D0,0xE1D1,
- 0xE1D2,0xE1D3,0xE1D4,0xE1D5,0x7588,0x7589,0x758A,0x758C,
- 0x758D,0x758E,0x7590,0x7593,0x7595,0x7598,0x759B,0x759C,
- 0x759E,0x75A2,0x75A6,0x75A7,0x75A8,0x75A9,0x75AA,0x75AD,
- 0x75B6,0x75B7,0x75BA,0x75BB,0x75BF,0x75C0,0x75C1,0x75C6,
- 0x75CB,0x75CC,0x75CE,0x75CF,0x75D0,0x75D1,0x75D3,0x75D7,
- 0x75D9,0x75DA,0x75DC,0x75DD,0x75DF,0x75E0,0x75E1,0x75E5,
- 0x75E9,0x75EC,0x75ED,0x75EE,0x75EF,0x75F2,0x75F3,0x75F5,
- 0x75F6,0x75F7,0x75F8,0x75FA,0x75FB,0x75FD,0x75FE,0x7602,
- 0x7604,0x7606,0x7607,0x7608,0x7609,0x760B,0x760D,0x760E,
- 0x760F,0x7611,0x7612,0x7613,0x7614,0x7616,0x761A,0x761C,
- 0x761D,0x761E,0x7621,0x7623,0x7627,0x7628,0x762C,0x762E,
- 0x762F,0x7631,0x7632,0x7636,0x7637,0x7639,0x763A,0x763B,
- 0x763D,0x7641,0x7642,0x7644,0xE1D6,0xE1D7,0xE1D8,0xE1D9,
- 0xE1DA,0xE1DB,0xE1DC,0xE1DD,0xE1DE,0xE1DF,0xE1E0,0xE1E1,
- 0xE1E2,0xE1E3,0xE1E4,0xE1E5,0xE1E6,0xE1E7,0xE1E8,0xE1E9,
- 0xE1EA,0xE1EB,0xE1EC,0xE1ED,0xE1EE,0xE1EF,0xE1F0,0xE1F1,
- 0xE1F2,0xE1F3,0xE1F4,0xE1F5,0xE1F6,0xE1F7,0xE1F8,0xE1F9,
- 0xE1FA,0xE1FB,0xE1FC,0xE1FD,0xE1FE,0xE1FF,0xE200,0xE201,
- 0xE202,0xE203,0xE204,0xE205,0xE206,0xE207,0xE208,0xE209,
- 0xE20A,0xE20B,0xE20C,0xE20D,0xE20E,0xE20F,0xE210,0xE211,
- 0xE212,0xE213,0xE214,0xE215,0xE216,0xE217,0xE218,0xE219,
- 0xE21A,0xE21B,0xE21C,0xE21D,0xE21E,0xE21F,0xE220,0xE221,
- 0xE222,0xE223,0xE224,0xE225,0xE226,0xE227,0xE228,0xE229,
- 0xE22A,0xE22B,0xE22C,0xE22D,0xE22E,0xE22F,0xE230,0xE231,
- 0xE232,0xE233,0x7645,0x7646,0x7647,0x7648,0x7649,0x764A,
- 0x764B,0x764E,0x764F,0x7650,0x7651,0x7652,0x7653,0x7655,
- 0x7657,0x7658,0x7659,0x765A,0x765B,0x765D,0x765F,0x7660,
- 0x7661,0x7662,0x7664,0x7665,0x7666,0x7667,0x7668,0x7669,
- 0x766A,0x766C,0x766D,0x766E,0x7670,0x7671,0x7672,0x7673,
- 0x7674,0x7675,0x7676,0x7677,0x7679,0x767A,0x767C,0x767F,
- 0x7680,0x7681,0x7683,0x7685,0x7689,0x768A,0x768C,0x768D,
- 0x768F,0x7690,0x7692,0x7694,0x7695,0x7697,0x7698,0x769A,
- 0x769B,0x769C,0x769D,0x769E,0x769F,0x76A0,0x76A1,0x76A2,
- 0x76A3,0x76A5,0x76A6,0x76A7,0x76A8,0x76A9,0x76AA,0x76AB,
- 0x76AC,0x76AD,0x76AF,0x76B0,0x76B3,0x76B5,0x76B6,0x76B7,
- 0x76B8,0x76B9,0x76BA,0x76BB,0x76BC,0x76BD,0x76BE,0x76C0,
- 0x76C1,0x76C3,0x554A,0x963F,0x57C3,0x6328,0x54CE,0x5509,
- 0x54C0,0x7691,0x764C,0x853C,0x77EE,0x827E,0x788D,0x7231,
- 0x9698,0x978D,0x6C28,0x5B89,0x4FFA,0x6309,0x6697,0x5CB8,
- 0x80FA,0x6848,0x80AE,0x6602,0x76CE,0x51F9,0x6556,0x71AC,
- 0x7FF1,0x8884,0x50B2,0x5965,0x61CA,0x6FB3,0x82AD,0x634C,
- 0x6252,0x53ED,0x5427,0x7B06,0x516B,0x75A4,0x5DF4,0x62D4,
- 0x8DCB,0x9776,0x628A,0x8019,0x575D,0x9738,0x7F62,0x7238,
- 0x767D,0x67CF,0x767E,0x6446,0x4F70,0x8D25,0x62DC,0x7A17,
- 0x6591,0x73ED,0x642C,0x6273,0x822C,0x9881,0x677F,0x7248,
- 0x626E,0x62CC,0x4F34,0x74E3,0x534A,0x529E,0x7ECA,0x90A6,
- 0x5E2E,0x6886,0x699C,0x8180,0x7ED1,0x68D2,0x78C5,0x868C,
- 0x9551,0x508D,0x8C24,0x82DE,0x80DE,0x5305,0x8912,0x5265,
- 0x76C4,0x76C7,0x76C9,0x76CB,0x76CC,0x76D3,0x76D5,0x76D9,
- 0x76DA,0x76DC,0x76DD,0x76DE,0x76E0,0x76E1,0x76E2,0x76E3,
- 0x76E4,0x76E6,0x76E7,0x76E8,0x76E9,0x76EA,0x76EB,0x76EC,
- 0x76ED,0x76F0,0x76F3,0x76F5,0x76F6,0x76F7,0x76FA,0x76FB,
- 0x76FD,0x76FF,0x7700,0x7702,0x7703,0x7705,0x7706,0x770A,
- 0x770C,0x770E,0x770F,0x7710,0x7711,0x7712,0x7713,0x7714,
- 0x7715,0x7716,0x7717,0x7718,0x771B,0x771C,0x771D,0x771E,
- 0x7721,0x7723,0x7724,0x7725,0x7727,0x772A,0x772B,0x772C,
- 0x772E,0x7730,0x7731,0x7732,0x7733,0x7734,0x7739,0x773B,
- 0x773D,0x773E,0x773F,0x7742,0x7744,0x7745,0x7746,0x7748,
- 0x7749,0x774A,0x774B,0x774C,0x774D,0x774E,0x774F,0x7752,
- 0x7753,0x7754,0x7755,0x7756,0x7757,0x7758,0x7759,0x775C,
- 0x8584,0x96F9,0x4FDD,0x5821,0x9971,0x5B9D,0x62B1,0x62A5,
- 0x66B4,0x8C79,0x9C8D,0x7206,0x676F,0x7891,0x60B2,0x5351,
- 0x5317,0x8F88,0x80CC,0x8D1D,0x94A1,0x500D,0x72C8,0x5907,
- 0x60EB,0x7119,0x88AB,0x5954,0x82EF,0x672C,0x7B28,0x5D29,
- 0x7EF7,0x752D,0x6CF5,0x8E66,0x8FF8,0x903C,0x9F3B,0x6BD4,
- 0x9119,0x7B14,0x5F7C,0x78A7,0x84D6,0x853D,0x6BD5,0x6BD9,
- 0x6BD6,0x5E01,0x5E87,0x75F9,0x95ED,0x655D,0x5F0A,0x5FC5,
- 0x8F9F,0x58C1,0x81C2,0x907F,0x965B,0x97AD,0x8FB9,0x7F16,
- 0x8D2C,0x6241,0x4FBF,0x53D8,0x535E,0x8FA8,0x8FA9,0x8FAB,
- 0x904D,0x6807,0x5F6A,0x8198,0x8868,0x9CD6,0x618B,0x522B,
- 0x762A,0x5F6C,0x658C,0x6FD2,0x6EE8,0x5BBE,0x6448,0x5175,
- 0x51B0,0x67C4,0x4E19,0x79C9,0x997C,0x70B3,0x775D,0x775E,
- 0x775F,0x7760,0x7764,0x7767,0x7769,0x776A,0x776D,0x776E,
- 0x776F,0x7770,0x7771,0x7772,0x7773,0x7774,0x7775,0x7776,
- 0x7777,0x7778,0x777A,0x777B,0x777C,0x7781,0x7782,0x7783,
- 0x7786,0x7787,0x7788,0x7789,0x778A,0x778B,0x778F,0x7790,
- 0x7793,0x7794,0x7795,0x7796,0x7797,0x7798,0x7799,0x779A,
- 0x779B,0x779C,0x779D,0x779E,0x77A1,0x77A3,0x77A4,0x77A6,
- 0x77A8,0x77AB,0x77AD,0x77AE,0x77AF,0x77B1,0x77B2,0x77B4,
- 0x77B6,0x77B7,0x77B8,0x77B9,0x77BA,0x77BC,0x77BE,0x77C0,
- 0x77C1,0x77C2,0x77C3,0x77C4,0x77C5,0x77C6,0x77C7,0x77C8,
- 0x77C9,0x77CA,0x77CB,0x77CC,0x77CE,0x77CF,0x77D0,0x77D1,
- 0x77D2,0x77D3,0x77D4,0x77D5,0x77D6,0x77D8,0x77D9,0x77DA,
- 0x77DD,0x77DE,0x77DF,0x77E0,0x77E1,0x77E4,0x75C5,0x5E76,
- 0x73BB,0x83E0,0x64AD,0x62E8,0x94B5,0x6CE2,0x535A,0x52C3,
- 0x640F,0x94C2,0x7B94,0x4F2F,0x5E1B,0x8236,0x8116,0x818A,
- 0x6E24,0x6CCA,0x9A73,0x6355,0x535C,0x54FA,0x8865,0x57E0,
- 0x4E0D,0x5E03,0x6B65,0x7C3F,0x90E8,0x6016,0x64E6,0x731C,
- 0x88C1,0x6750,0x624D,0x8D22,0x776C,0x8E29,0x91C7,0x5F69,
- 0x83DC,0x8521,0x9910,0x53C2,0x8695,0x6B8B,0x60ED,0x60E8,
- 0x707F,0x82CD,0x8231,0x4ED3,0x6CA7,0x85CF,0x64CD,0x7CD9,
- 0x69FD,0x66F9,0x8349,0x5395,0x7B56,0x4FA7,0x518C,0x6D4B,
- 0x5C42,0x8E6D,0x63D2,0x53C9,0x832C,0x8336,0x67E5,0x78B4,
- 0x643D,0x5BDF,0x5C94,0x5DEE,0x8BE7,0x62C6,0x67F4,0x8C7A,
- 0x6400,0x63BA,0x8749,0x998B,0x8C17,0x7F20,0x94F2,0x4EA7,
- 0x9610,0x98A4,0x660C,0x7316,0x77E6,0x77E8,0x77EA,0x77EF,
- 0x77F0,0x77F1,0x77F2,0x77F4,0x77F5,0x77F7,0x77F9,0x77FA,
- 0x77FB,0x77FC,0x7803,0x7804,0x7805,0x7806,0x7807,0x7808,
- 0x780A,0x780B,0x780E,0x780F,0x7810,0x7813,0x7815,0x7819,
- 0x781B,0x781E,0x7820,0x7821,0x7822,0x7824,0x7828,0x782A,
- 0x782B,0x782E,0x782F,0x7831,0x7832,0x7833,0x7835,0x7836,
- 0x783D,0x783F,0x7841,0x7842,0x7843,0x7844,0x7846,0x7848,
- 0x7849,0x784A,0x784B,0x784D,0x784F,0x7851,0x7853,0x7854,
- 0x7858,0x7859,0x785A,0x785B,0x785C,0x785E,0x785F,0x7860,
- 0x7861,0x7862,0x7863,0x7864,0x7865,0x7866,0x7867,0x7868,
- 0x7869,0x786F,0x7870,0x7871,0x7872,0x7873,0x7874,0x7875,
- 0x7876,0x7878,0x7879,0x787A,0x787B,0x787D,0x787E,0x787F,
- 0x7880,0x7881,0x7882,0x7883,0x573A,0x5C1D,0x5E38,0x957F,
- 0x507F,0x80A0,0x5382,0x655E,0x7545,0x5531,0x5021,0x8D85,
- 0x6284,0x949E,0x671D,0x5632,0x6F6E,0x5DE2,0x5435,0x7092,
- 0x8F66,0x626F,0x64A4,0x63A3,0x5F7B,0x6F88,0x90F4,0x81E3,
- 0x8FB0,0x5C18,0x6668,0x5FF1,0x6C89,0x9648,0x8D81,0x886C,
- 0x6491,0x79F0,0x57CE,0x6A59,0x6210,0x5448,0x4E58,0x7A0B,
- 0x60E9,0x6F84,0x8BDA,0x627F,0x901E,0x9A8B,0x79E4,0x5403,
- 0x75F4,0x6301,0x5319,0x6C60,0x8FDF,0x5F1B,0x9A70,0x803B,
- 0x9F7F,0x4F88,0x5C3A,0x8D64,0x7FC5,0x65A5,0x70BD,0x5145,
- 0x51B2,0x866B,0x5D07,0x5BA0,0x62BD,0x916C,0x7574,0x8E0C,
- 0x7A20,0x6101,0x7B79,0x4EC7,0x7EF8,0x7785,0x4E11,0x81ED,
- 0x521D,0x51FA,0x6A71,0x53A8,0x8E87,0x9504,0x96CF,0x6EC1,
- 0x9664,0x695A,0x7884,0x7885,0x7886,0x7888,0x788A,0x788B,
- 0x788F,0x7890,0x7892,0x7894,0x7895,0x7896,0x7899,0x789D,
- 0x789E,0x78A0,0x78A2,0x78A4,0x78A6,0x78A8,0x78A9,0x78AA,
- 0x78AB,0x78AC,0x78AD,0x78AE,0x78AF,0x78B5,0x78B6,0x78B7,
- 0x78B8,0x78BA,0x78BB,0x78BC,0x78BD,0x78BF,0x78C0,0x78C2,
- 0x78C3,0x78C4,0x78C6,0x78C7,0x78C8,0x78CC,0x78CD,0x78CE,
- 0x78CF,0x78D1,0x78D2,0x78D3,0x78D6,0x78D7,0x78D8,0x78DA,
- 0x78DB,0x78DC,0x78DD,0x78DE,0x78DF,0x78E0,0x78E1,0x78E2,
- 0x78E3,0x78E4,0x78E5,0x78E6,0x78E7,0x78E9,0x78EA,0x78EB,
- 0x78ED,0x78EE,0x78EF,0x78F0,0x78F1,0x78F3,0x78F5,0x78F6,
- 0x78F8,0x78F9,0x78FB,0x78FC,0x78FD,0x78FE,0x78FF,0x7900,
- 0x7902,0x7903,0x7904,0x7906,0x7907,0x7908,0x7909,0x790A,
- 0x790B,0x790C,0x7840,0x50A8,0x77D7,0x6410,0x89E6,0x5904,
- 0x63E3,0x5DDD,0x7A7F,0x693D,0x4F20,0x8239,0x5598,0x4E32,
- 0x75AE,0x7A97,0x5E62,0x5E8A,0x95EF,0x521B,0x5439,0x708A,
- 0x6376,0x9524,0x5782,0x6625,0x693F,0x9187,0x5507,0x6DF3,
- 0x7EAF,0x8822,0x6233,0x7EF0,0x75B5,0x8328,0x78C1,0x96CC,
- 0x8F9E,0x6148,0x74F7,0x8BCD,0x6B64,0x523A,0x8D50,0x6B21,
- 0x806A,0x8471,0x56F1,0x5306,0x4ECE,0x4E1B,0x51D1,0x7C97,
- 0x918B,0x7C07,0x4FC3,0x8E7F,0x7BE1,0x7A9C,0x6467,0x5D14,
- 0x50AC,0x8106,0x7601,0x7CB9,0x6DEC,0x7FE0,0x6751,0x5B58,
- 0x5BF8,0x78CB,0x64AE,0x6413,0x63AA,0x632B,0x9519,0x642D,
- 0x8FBE,0x7B54,0x7629,0x6253,0x5927,0x5446,0x6B79,0x50A3,
- 0x6234,0x5E26,0x6B86,0x4EE3,0x8D37,0x888B,0x5F85,0x902E,
- 0x790D,0x790E,0x790F,0x7910,0x7911,0x7912,0x7914,0x7915,
- 0x7916,0x7917,0x7918,0x7919,0x791A,0x791B,0x791C,0x791D,
- 0x791F,0x7920,0x7921,0x7922,0x7923,0x7925,0x7926,0x7927,
- 0x7928,0x7929,0x792A,0x792B,0x792C,0x792D,0x792E,0x792F,
- 0x7930,0x7931,0x7932,0x7933,0x7935,0x7936,0x7937,0x7938,
- 0x7939,0x793D,0x793F,0x7942,0x7943,0x7944,0x7945,0x7947,
- 0x794A,0x794B,0x794C,0x794D,0x794E,0x794F,0x7950,0x7951,
- 0x7952,0x7954,0x7955,0x7958,0x7959,0x7961,0x7963,0x7964,
- 0x7966,0x7969,0x796A,0x796B,0x796C,0x796E,0x7970,0x7971,
- 0x7972,0x7973,0x7974,0x7975,0x7976,0x7979,0x797B,0x797C,
- 0x797D,0x797E,0x797F,0x7982,0x7983,0x7986,0x7987,0x7988,
- 0x7989,0x798B,0x798C,0x798D,0x798E,0x7990,0x7991,0x7992,
- 0x6020,0x803D,0x62C5,0x4E39,0x5355,0x90F8,0x63B8,0x80C6,
- 0x65E6,0x6C2E,0x4F46,0x60EE,0x6DE1,0x8BDE,0x5F39,0x86CB,
- 0x5F53,0x6321,0x515A,0x8361,0x6863,0x5200,0x6363,0x8E48,
- 0x5012,0x5C9B,0x7977,0x5BFC,0x5230,0x7A3B,0x60BC,0x9053,
- 0x76D7,0x5FB7,0x5F97,0x7684,0x8E6C,0x706F,0x767B,0x7B49,
- 0x77AA,0x51F3,0x9093,0x5824,0x4F4E,0x6EF4,0x8FEA,0x654C,
- 0x7B1B,0x72C4,0x6DA4,0x7FDF,0x5AE1,0x62B5,0x5E95,0x5730,
- 0x8482,0x7B2C,0x5E1D,0x5F1F,0x9012,0x7F14,0x98A0,0x6382,
- 0x6EC7,0x7898,0x70B9,0x5178,0x975B,0x57AB,0x7535,0x4F43,
- 0x7538,0x5E97,0x60E6,0x5960,0x6DC0,0x6BBF,0x7889,0x53FC,
- 0x96D5,0x51CB,0x5201,0x6389,0x540A,0x9493,0x8C03,0x8DCC,
- 0x7239,0x789F,0x8776,0x8FED,0x8C0D,0x53E0,0x7993,0x7994,
- 0x7995,0x7996,0x7997,0x7998,0x7999,0x799B,0x799C,0x799D,
- 0x799E,0x799F,0x79A0,0x79A1,0x79A2,0x79A3,0x79A4,0x79A5,
- 0x79A6,0x79A8,0x79A9,0x79AA,0x79AB,0x79AC,0x79AD,0x79AE,
- 0x79AF,0x79B0,0x79B1,0x79B2,0x79B4,0x79B5,0x79B6,0x79B7,
- 0x79B8,0x79BC,0x79BF,0x79C2,0x79C4,0x79C5,0x79C7,0x79C8,
- 0x79CA,0x79CC,0x79CE,0x79CF,0x79D0,0x79D3,0x79D4,0x79D6,
- 0x79D7,0x79D9,0x79DA,0x79DB,0x79DC,0x79DD,0x79DE,0x79E0,
- 0x79E1,0x79E2,0x79E5,0x79E8,0x79EA,0x79EC,0x79EE,0x79F1,
- 0x79F2,0x79F3,0x79F4,0x79F5,0x79F6,0x79F7,0x79F9,0x79FA,
- 0x79FC,0x79FE,0x79FF,0x7A01,0x7A04,0x7A05,0x7A07,0x7A08,
- 0x7A09,0x7A0A,0x7A0C,0x7A0F,0x7A10,0x7A11,0x7A12,0x7A13,
- 0x7A15,0x7A16,0x7A18,0x7A19,0x7A1B,0x7A1C,0x4E01,0x76EF,
- 0x53EE,0x9489,0x9876,0x9F0E,0x952D,0x5B9A,0x8BA2,0x4E22,
- 0x4E1C,0x51AC,0x8463,0x61C2,0x52A8,0x680B,0x4F97,0x606B,
- 0x51BB,0x6D1E,0x515C,0x6296,0x6597,0x9661,0x8C46,0x9017,
- 0x75D8,0x90FD,0x7763,0x6BD2,0x728A,0x72EC,0x8BFB,0x5835,
- 0x7779,0x8D4C,0x675C,0x9540,0x809A,0x5EA6,0x6E21,0x5992,
- 0x7AEF,0x77ED,0x953B,0x6BB5,0x65AD,0x7F0E,0x5806,0x5151,
- 0x961F,0x5BF9,0x58A9,0x5428,0x8E72,0x6566,0x987F,0x56E4,
- 0x949D,0x76FE,0x9041,0x6387,0x54C6,0x591A,0x593A,0x579B,
- 0x8EB2,0x6735,0x8DFA,0x8235,0x5241,0x60F0,0x5815,0x86FE,
- 0x5CE8,0x9E45,0x4FC4,0x989D,0x8BB9,0x5A25,0x6076,0x5384,
- 0x627C,0x904F,0x9102,0x997F,0x6069,0x800C,0x513F,0x8033,
- 0x5C14,0x9975,0x6D31,0x4E8C,0x7A1D,0x7A1F,0x7A21,0x7A22,
- 0x7A24,0x7A25,0x7A26,0x7A27,0x7A28,0x7A29,0x7A2A,0x7A2B,
- 0x7A2C,0x7A2D,0x7A2E,0x7A2F,0x7A30,0x7A31,0x7A32,0x7A34,
- 0x7A35,0x7A36,0x7A38,0x7A3A,0x7A3E,0x7A40,0x7A41,0x7A42,
- 0x7A43,0x7A44,0x7A45,0x7A47,0x7A48,0x7A49,0x7A4A,0x7A4B,
- 0x7A4C,0x7A4D,0x7A4E,0x7A4F,0x7A50,0x7A52,0x7A53,0x7A54,
- 0x7A55,0x7A56,0x7A58,0x7A59,0x7A5A,0x7A5B,0x7A5C,0x7A5D,
- 0x7A5E,0x7A5F,0x7A60,0x7A61,0x7A62,0x7A63,0x7A64,0x7A65,
- 0x7A66,0x7A67,0x7A68,0x7A69,0x7A6A,0x7A6B,0x7A6C,0x7A6D,
- 0x7A6E,0x7A6F,0x7A71,0x7A72,0x7A73,0x7A75,0x7A7B,0x7A7C,
- 0x7A7D,0x7A7E,0x7A82,0x7A85,0x7A87,0x7A89,0x7A8A,0x7A8B,
- 0x7A8C,0x7A8E,0x7A8F,0x7A90,0x7A93,0x7A94,0x7A99,0x7A9A,
- 0x7A9B,0x7A9E,0x7AA1,0x7AA2,0x8D30,0x53D1,0x7F5A,0x7B4F,
- 0x4F10,0x4E4F,0x9600,0x6CD5,0x73D0,0x85E9,0x5E06,0x756A,
- 0x7FFB,0x6A0A,0x77FE,0x9492,0x7E41,0x51E1,0x70E6,0x53CD,
- 0x8FD4,0x8303,0x8D29,0x72AF,0x996D,0x6CDB,0x574A,0x82B3,
- 0x65B9,0x80AA,0x623F,0x9632,0x59A8,0x4EFF,0x8BBF,0x7EBA,
- 0x653E,0x83F2,0x975E,0x5561,0x98DE,0x80A5,0x532A,0x8BFD,
- 0x5420,0x80BA,0x5E9F,0x6CB8,0x8D39,0x82AC,0x915A,0x5429,
- 0x6C1B,0x5206,0x7EB7,0x575F,0x711A,0x6C7E,0x7C89,0x594B,
- 0x4EFD,0x5FFF,0x6124,0x7CAA,0x4E30,0x5C01,0x67AB,0x8702,
- 0x5CF0,0x950B,0x98CE,0x75AF,0x70FD,0x9022,0x51AF,0x7F1D,
- 0x8BBD,0x5949,0x51E4,0x4F5B,0x5426,0x592B,0x6577,0x80A4,
- 0x5B75,0x6276,0x62C2,0x8F90,0x5E45,0x6C1F,0x7B26,0x4F0F,
- 0x4FD8,0x670D,0x7AA3,0x7AA4,0x7AA7,0x7AA9,0x7AAA,0x7AAB,
- 0x7AAE,0x7AAF,0x7AB0,0x7AB1,0x7AB2,0x7AB4,0x7AB5,0x7AB6,
- 0x7AB7,0x7AB8,0x7AB9,0x7ABA,0x7ABB,0x7ABC,0x7ABD,0x7ABE,
- 0x7AC0,0x7AC1,0x7AC2,0x7AC3,0x7AC4,0x7AC5,0x7AC6,0x7AC7,
- 0x7AC8,0x7AC9,0x7ACA,0x7ACC,0x7ACD,0x7ACE,0x7ACF,0x7AD0,
- 0x7AD1,0x7AD2,0x7AD3,0x7AD4,0x7AD5,0x7AD7,0x7AD8,0x7ADA,
- 0x7ADB,0x7ADC,0x7ADD,0x7AE1,0x7AE2,0x7AE4,0x7AE7,0x7AE8,
- 0x7AE9,0x7AEA,0x7AEB,0x7AEC,0x7AEE,0x7AF0,0x7AF1,0x7AF2,
- 0x7AF3,0x7AF4,0x7AF5,0x7AF6,0x7AF7,0x7AF8,0x7AFB,0x7AFC,
- 0x7AFE,0x7B00,0x7B01,0x7B02,0x7B05,0x7B07,0x7B09,0x7B0C,
- 0x7B0D,0x7B0E,0x7B10,0x7B12,0x7B13,0x7B16,0x7B17,0x7B18,
- 0x7B1A,0x7B1C,0x7B1D,0x7B1F,0x7B21,0x7B22,0x7B23,0x7B27,
- 0x7B29,0x7B2D,0x6D6E,0x6DAA,0x798F,0x88B1,0x5F17,0x752B,
- 0x629A,0x8F85,0x4FEF,0x91DC,0x65A7,0x812F,0x8151,0x5E9C,
- 0x8150,0x8D74,0x526F,0x8986,0x8D4B,0x590D,0x5085,0x4ED8,
- 0x961C,0x7236,0x8179,0x8D1F,0x5BCC,0x8BA3,0x9644,0x5987,
- 0x7F1A,0x5490,0x5676,0x560E,0x8BE5,0x6539,0x6982,0x9499,
- 0x76D6,0x6E89,0x5E72,0x7518,0x6746,0x67D1,0x7AFF,0x809D,
- 0x8D76,0x611F,0x79C6,0x6562,0x8D63,0x5188,0x521A,0x94A2,
- 0x7F38,0x809B,0x7EB2,0x5C97,0x6E2F,0x6760,0x7BD9,0x768B,
- 0x9AD8,0x818F,0x7F94,0x7CD5,0x641E,0x9550,0x7A3F,0x544A,
- 0x54E5,0x6B4C,0x6401,0x6208,0x9E3D,0x80F3,0x7599,0x5272,
- 0x9769,0x845B,0x683C,0x86E4,0x9601,0x9694,0x94EC,0x4E2A,
- 0x5404,0x7ED9,0x6839,0x8DDF,0x8015,0x66F4,0x5E9A,0x7FB9,
- 0x7B2F,0x7B30,0x7B32,0x7B34,0x7B35,0x7B36,0x7B37,0x7B39,
- 0x7B3B,0x7B3D,0x7B3F,0x7B40,0x7B41,0x7B42,0x7B43,0x7B44,
- 0x7B46,0x7B48,0x7B4A,0x7B4D,0x7B4E,0x7B53,0x7B55,0x7B57,
- 0x7B59,0x7B5C,0x7B5E,0x7B5F,0x7B61,0x7B63,0x7B64,0x7B65,
- 0x7B66,0x7B67,0x7B68,0x7B69,0x7B6A,0x7B6B,0x7B6C,0x7B6D,
- 0x7B6F,0x7B70,0x7B73,0x7B74,0x7B76,0x7B78,0x7B7A,0x7B7C,
- 0x7B7D,0x7B7F,0x7B81,0x7B82,0x7B83,0x7B84,0x7B86,0x7B87,
- 0x7B88,0x7B89,0x7B8A,0x7B8B,0x7B8C,0x7B8E,0x7B8F,0x7B91,
- 0x7B92,0x7B93,0x7B96,0x7B98,0x7B99,0x7B9A,0x7B9B,0x7B9E,
- 0x7B9F,0x7BA0,0x7BA3,0x7BA4,0x7BA5,0x7BAE,0x7BAF,0x7BB0,
- 0x7BB2,0x7BB3,0x7BB5,0x7BB6,0x7BB7,0x7BB9,0x7BBA,0x7BBB,
- 0x7BBC,0x7BBD,0x7BBE,0x7BBF,0x7BC0,0x7BC2,0x7BC3,0x7BC4,
- 0x57C2,0x803F,0x6897,0x5DE5,0x653B,0x529F,0x606D,0x9F9A,
- 0x4F9B,0x8EAC,0x516C,0x5BAB,0x5F13,0x5DE9,0x6C5E,0x62F1,
- 0x8D21,0x5171,0x94A9,0x52FE,0x6C9F,0x82DF,0x72D7,0x57A2,
- 0x6784,0x8D2D,0x591F,0x8F9C,0x83C7,0x5495,0x7B8D,0x4F30,
- 0x6CBD,0x5B64,0x59D1,0x9F13,0x53E4,0x86CA,0x9AA8,0x8C37,
- 0x80A1,0x6545,0x987E,0x56FA,0x96C7,0x522E,0x74DC,0x5250,
- 0x5BE1,0x6302,0x8902,0x4E56,0x62D0,0x602A,0x68FA,0x5173,
- 0x5B98,0x51A0,0x89C2,0x7BA1,0x9986,0x7F50,0x60EF,0x704C,
- 0x8D2F,0x5149,0x5E7F,0x901B,0x7470,0x89C4,0x572D,0x7845,
- 0x5F52,0x9F9F,0x95FA,0x8F68,0x9B3C,0x8BE1,0x7678,0x6842,
- 0x67DC,0x8DEA,0x8D35,0x523D,0x8F8A,0x6EDA,0x68CD,0x9505,
- 0x90ED,0x56FD,0x679C,0x88F9,0x8FC7,0x54C8,0x7BC5,0x7BC8,
- 0x7BC9,0x7BCA,0x7BCB,0x7BCD,0x7BCE,0x7BCF,0x7BD0,0x7BD2,
- 0x7BD4,0x7BD5,0x7BD6,0x7BD7,0x7BD8,0x7BDB,0x7BDC,0x7BDE,
- 0x7BDF,0x7BE0,0x7BE2,0x7BE3,0x7BE4,0x7BE7,0x7BE8,0x7BE9,
- 0x7BEB,0x7BEC,0x7BED,0x7BEF,0x7BF0,0x7BF2,0x7BF3,0x7BF4,
- 0x7BF5,0x7BF6,0x7BF8,0x7BF9,0x7BFA,0x7BFB,0x7BFD,0x7BFF,
- 0x7C00,0x7C01,0x7C02,0x7C03,0x7C04,0x7C05,0x7C06,0x7C08,
- 0x7C09,0x7C0A,0x7C0D,0x7C0E,0x7C10,0x7C11,0x7C12,0x7C13,
- 0x7C14,0x7C15,0x7C17,0x7C18,0x7C19,0x7C1A,0x7C1B,0x7C1C,
- 0x7C1D,0x7C1E,0x7C20,0x7C21,0x7C22,0x7C23,0x7C24,0x7C25,
- 0x7C28,0x7C29,0x7C2B,0x7C2C,0x7C2D,0x7C2E,0x7C2F,0x7C30,
- 0x7C31,0x7C32,0x7C33,0x7C34,0x7C35,0x7C36,0x7C37,0x7C39,
- 0x7C3A,0x7C3B,0x7C3C,0x7C3D,0x7C3E,0x7C42,0x9AB8,0x5B69,
- 0x6D77,0x6C26,0x4EA5,0x5BB3,0x9A87,0x9163,0x61A8,0x90AF,
- 0x97E9,0x542B,0x6DB5,0x5BD2,0x51FD,0x558A,0x7F55,0x7FF0,
- 0x64BC,0x634D,0x65F1,0x61BE,0x608D,0x710A,0x6C57,0x6C49,
- 0x592F,0x676D,0x822A,0x58D5,0x568E,0x8C6A,0x6BEB,0x90DD,
- 0x597D,0x8017,0x53F7,0x6D69,0x5475,0x559D,0x8377,0x83CF,
- 0x6838,0x79BE,0x548C,0x4F55,0x5408,0x76D2,0x8C89,0x9602,
- 0x6CB3,0x6DB8,0x8D6B,0x8910,0x9E64,0x8D3A,0x563F,0x9ED1,
- 0x75D5,0x5F88,0x72E0,0x6068,0x54FC,0x4EA8,0x6A2A,0x8861,
- 0x6052,0x8F70,0x54C4,0x70D8,0x8679,0x9E3F,0x6D2A,0x5B8F,
- 0x5F18,0x7EA2,0x5589,0x4FAF,0x7334,0x543C,0x539A,0x5019,
- 0x540E,0x547C,0x4E4E,0x5FFD,0x745A,0x58F6,0x846B,0x80E1,
- 0x8774,0x72D0,0x7CCA,0x6E56,0x7C43,0x7C44,0x7C45,0x7C46,
- 0x7C47,0x7C48,0x7C49,0x7C4A,0x7C4B,0x7C4C,0x7C4E,0x7C4F,
- 0x7C50,0x7C51,0x7C52,0x7C53,0x7C54,0x7C55,0x7C56,0x7C57,
- 0x7C58,0x7C59,0x7C5A,0x7C5B,0x7C5C,0x7C5D,0x7C5E,0x7C5F,
- 0x7C60,0x7C61,0x7C62,0x7C63,0x7C64,0x7C65,0x7C66,0x7C67,
- 0x7C68,0x7C69,0x7C6A,0x7C6B,0x7C6C,0x7C6D,0x7C6E,0x7C6F,
- 0x7C70,0x7C71,0x7C72,0x7C75,0x7C76,0x7C77,0x7C78,0x7C79,
- 0x7C7A,0x7C7E,0x7C7F,0x7C80,0x7C81,0x7C82,0x7C83,0x7C84,
- 0x7C85,0x7C86,0x7C87,0x7C88,0x7C8A,0x7C8B,0x7C8C,0x7C8D,
- 0x7C8E,0x7C8F,0x7C90,0x7C93,0x7C94,0x7C96,0x7C99,0x7C9A,
- 0x7C9B,0x7CA0,0x7CA1,0x7CA3,0x7CA6,0x7CA7,0x7CA8,0x7CA9,
- 0x7CAB,0x7CAC,0x7CAD,0x7CAF,0x7CB0,0x7CB4,0x7CB5,0x7CB6,
- 0x7CB7,0x7CB8,0x7CBA,0x7CBB,0x5F27,0x864E,0x552C,0x62A4,
- 0x4E92,0x6CAA,0x6237,0x82B1,0x54D7,0x534E,0x733E,0x6ED1,
- 0x753B,0x5212,0x5316,0x8BDD,0x69D0,0x5F8A,0x6000,0x6DEE,
- 0x574F,0x6B22,0x73AF,0x6853,0x8FD8,0x7F13,0x6362,0x60A3,
- 0x5524,0x75EA,0x8C62,0x7115,0x6DA3,0x5BA6,0x5E7B,0x8352,
- 0x614C,0x9EC4,0x78FA,0x8757,0x7C27,0x7687,0x51F0,0x60F6,
- 0x714C,0x6643,0x5E4C,0x604D,0x8C0E,0x7070,0x6325,0x8F89,
- 0x5FBD,0x6062,0x86D4,0x56DE,0x6BC1,0x6094,0x6167,0x5349,
- 0x60E0,0x6666,0x8D3F,0x79FD,0x4F1A,0x70E9,0x6C47,0x8BB3,
- 0x8BF2,0x7ED8,0x8364,0x660F,0x5A5A,0x9B42,0x6D51,0x6DF7,
- 0x8C41,0x6D3B,0x4F19,0x706B,0x83B7,0x6216,0x60D1,0x970D,
- 0x8D27,0x7978,0x51FB,0x573E,0x57FA,0x673A,0x7578,0x7A3D,
- 0x79EF,0x7B95,0x7CBF,0x7CC0,0x7CC2,0x7CC3,0x7CC4,0x7CC6,
- 0x7CC9,0x7CCB,0x7CCE,0x7CCF,0x7CD0,0x7CD1,0x7CD2,0x7CD3,
- 0x7CD4,0x7CD8,0x7CDA,0x7CDB,0x7CDD,0x7CDE,0x7CE1,0x7CE2,
- 0x7CE3,0x7CE4,0x7CE5,0x7CE6,0x7CE7,0x7CE9,0x7CEA,0x7CEB,
- 0x7CEC,0x7CED,0x7CEE,0x7CF0,0x7CF1,0x7CF2,0x7CF3,0x7CF4,
- 0x7CF5,0x7CF6,0x7CF7,0x7CF9,0x7CFA,0x7CFC,0x7CFD,0x7CFE,
- 0x7CFF,0x7D00,0x7D01,0x7D02,0x7D03,0x7D04,0x7D05,0x7D06,
- 0x7D07,0x7D08,0x7D09,0x7D0B,0x7D0C,0x7D0D,0x7D0E,0x7D0F,
- 0x7D10,0x7D11,0x7D12,0x7D13,0x7D14,0x7D15,0x7D16,0x7D17,
- 0x7D18,0x7D19,0x7D1A,0x7D1B,0x7D1C,0x7D1D,0x7D1E,0x7D1F,
- 0x7D21,0x7D23,0x7D24,0x7D25,0x7D26,0x7D28,0x7D29,0x7D2A,
- 0x7D2C,0x7D2D,0x7D2E,0x7D30,0x7D31,0x7D32,0x7D33,0x7D34,
- 0x7D35,0x7D36,0x808C,0x9965,0x8FF9,0x6FC0,0x8BA5,0x9E21,
- 0x59EC,0x7EE9,0x7F09,0x5409,0x6781,0x68D8,0x8F91,0x7C4D,
- 0x96C6,0x53CA,0x6025,0x75BE,0x6C72,0x5373,0x5AC9,0x7EA7,
- 0x6324,0x51E0,0x810A,0x5DF1,0x84DF,0x6280,0x5180,0x5B63,
- 0x4F0E,0x796D,0x5242,0x60B8,0x6D4E,0x5BC4,0x5BC2,0x8BA1,
- 0x8BB0,0x65E2,0x5FCC,0x9645,0x5993,0x7EE7,0x7EAA,0x5609,
- 0x67B7,0x5939,0x4F73,0x5BB6,0x52A0,0x835A,0x988A,0x8D3E,
- 0x7532,0x94BE,0x5047,0x7A3C,0x4EF7,0x67B6,0x9A7E,0x5AC1,
- 0x6B7C,0x76D1,0x575A,0x5C16,0x7B3A,0x95F4,0x714E,0x517C,
- 0x80A9,0x8270,0x5978,0x7F04,0x8327,0x68C0,0x67EC,0x78B1,
- 0x7877,0x62E3,0x6361,0x7B80,0x4FED,0x526A,0x51CF,0x8350,
- 0x69DB,0x9274,0x8DF5,0x8D31,0x89C1,0x952E,0x7BAD,0x4EF6,
- 0x7D37,0x7D38,0x7D39,0x7D3A,0x7D3B,0x7D3C,0x7D3D,0x7D3E,
- 0x7D3F,0x7D40,0x7D41,0x7D42,0x7D43,0x7D44,0x7D45,0x7D46,
- 0x7D47,0x7D48,0x7D49,0x7D4A,0x7D4B,0x7D4C,0x7D4D,0x7D4E,
- 0x7D4F,0x7D50,0x7D51,0x7D52,0x7D53,0x7D54,0x7D55,0x7D56,
- 0x7D57,0x7D58,0x7D59,0x7D5A,0x7D5B,0x7D5C,0x7D5D,0x7D5E,
- 0x7D5F,0x7D60,0x7D61,0x7D62,0x7D63,0x7D64,0x7D65,0x7D66,
- 0x7D67,0x7D68,0x7D69,0x7D6A,0x7D6B,0x7D6C,0x7D6D,0x7D6F,
- 0x7D70,0x7D71,0x7D72,0x7D73,0x7D74,0x7D75,0x7D76,0x7D78,
- 0x7D79,0x7D7A,0x7D7B,0x7D7C,0x7D7D,0x7D7E,0x7D7F,0x7D80,
- 0x7D81,0x7D82,0x7D83,0x7D84,0x7D85,0x7D86,0x7D87,0x7D88,
- 0x7D89,0x7D8A,0x7D8B,0x7D8C,0x7D8D,0x7D8E,0x7D8F,0x7D90,
- 0x7D91,0x7D92,0x7D93,0x7D94,0x7D95,0x7D96,0x7D97,0x7D98,
- 0x5065,0x8230,0x5251,0x996F,0x6E10,0x6E85,0x6DA7,0x5EFA,
- 0x50F5,0x59DC,0x5C06,0x6D46,0x6C5F,0x7586,0x848B,0x6868,
- 0x5956,0x8BB2,0x5320,0x9171,0x964D,0x8549,0x6912,0x7901,
- 0x7126,0x80F6,0x4EA4,0x90CA,0x6D47,0x9A84,0x5A07,0x56BC,
- 0x6405,0x94F0,0x77EB,0x4FA5,0x811A,0x72E1,0x89D2,0x997A,
- 0x7F34,0x7EDE,0x527F,0x6559,0x9175,0x8F7F,0x8F83,0x53EB,
- 0x7A96,0x63ED,0x63A5,0x7686,0x79F8,0x8857,0x9636,0x622A,
- 0x52AB,0x8282,0x6854,0x6770,0x6377,0x776B,0x7AED,0x6D01,
- 0x7ED3,0x89E3,0x59D0,0x6212,0x85C9,0x82A5,0x754C,0x501F,
- 0x4ECB,0x75A5,0x8BEB,0x5C4A,0x5DFE,0x7B4B,0x65A4,0x91D1,
- 0x4ECA,0x6D25,0x895F,0x7D27,0x9526,0x4EC5,0x8C28,0x8FDB,
- 0x9773,0x664B,0x7981,0x8FD1,0x70EC,0x6D78,0x7D99,0x7D9A,
- 0x7D9B,0x7D9C,0x7D9D,0x7D9E,0x7D9F,0x7DA0,0x7DA1,0x7DA2,
- 0x7DA3,0x7DA4,0x7DA5,0x7DA7,0x7DA8,0x7DA9,0x7DAA,0x7DAB,
- 0x7DAC,0x7DAD,0x7DAF,0x7DB0,0x7DB1,0x7DB2,0x7DB3,0x7DB4,
- 0x7DB5,0x7DB6,0x7DB7,0x7DB8,0x7DB9,0x7DBA,0x7DBB,0x7DBC,
- 0x7DBD,0x7DBE,0x7DBF,0x7DC0,0x7DC1,0x7DC2,0x7DC3,0x7DC4,
- 0x7DC5,0x7DC6,0x7DC7,0x7DC8,0x7DC9,0x7DCA,0x7DCB,0x7DCC,
- 0x7DCD,0x7DCE,0x7DCF,0x7DD0,0x7DD1,0x7DD2,0x7DD3,0x7DD4,
- 0x7DD5,0x7DD6,0x7DD7,0x7DD8,0x7DD9,0x7DDA,0x7DDB,0x7DDC,
- 0x7DDD,0x7DDE,0x7DDF,0x7DE0,0x7DE1,0x7DE2,0x7DE3,0x7DE4,
- 0x7DE5,0x7DE6,0x7DE7,0x7DE8,0x7DE9,0x7DEA,0x7DEB,0x7DEC,
- 0x7DED,0x7DEE,0x7DEF,0x7DF0,0x7DF1,0x7DF2,0x7DF3,0x7DF4,
- 0x7DF5,0x7DF6,0x7DF7,0x7DF8,0x7DF9,0x7DFA,0x5C3D,0x52B2,
- 0x8346,0x5162,0x830E,0x775B,0x6676,0x9CB8,0x4EAC,0x60CA,
- 0x7CBE,0x7CB3,0x7ECF,0x4E95,0x8B66,0x666F,0x9888,0x9759,
- 0x5883,0x656C,0x955C,0x5F84,0x75C9,0x9756,0x7ADF,0x7ADE,
- 0x51C0,0x70AF,0x7A98,0x63EA,0x7A76,0x7EA0,0x7396,0x97ED,
- 0x4E45,0x7078,0x4E5D,0x9152,0x53A9,0x6551,0x65E7,0x81FC,
- 0x8205,0x548E,0x5C31,0x759A,0x97A0,0x62D8,0x72D9,0x75BD,
- 0x5C45,0x9A79,0x83CA,0x5C40,0x5480,0x77E9,0x4E3E,0x6CAE,
- 0x805A,0x62D2,0x636E,0x5DE8,0x5177,0x8DDD,0x8E1E,0x952F,
- 0x4FF1,0x53E5,0x60E7,0x70AC,0x5267,0x6350,0x9E43,0x5A1F,
- 0x5026,0x7737,0x5377,0x7EE2,0x6485,0x652B,0x6289,0x6398,
- 0x5014,0x7235,0x89C9,0x51B3,0x8BC0,0x7EDD,0x5747,0x83CC,
- 0x94A7,0x519B,0x541B,0x5CFB,0x7DFB,0x7DFC,0x7DFD,0x7DFE,
- 0x7DFF,0x7E00,0x7E01,0x7E02,0x7E03,0x7E04,0x7E05,0x7E06,
- 0x7E07,0x7E08,0x7E09,0x7E0A,0x7E0B,0x7E0C,0x7E0D,0x7E0E,
- 0x7E0F,0x7E10,0x7E11,0x7E12,0x7E13,0x7E14,0x7E15,0x7E16,
- 0x7E17,0x7E18,0x7E19,0x7E1A,0x7E1B,0x7E1C,0x7E1D,0x7E1E,
- 0x7E1F,0x7E20,0x7E21,0x7E22,0x7E23,0x7E24,0x7E25,0x7E26,
- 0x7E27,0x7E28,0x7E29,0x7E2A,0x7E2B,0x7E2C,0x7E2D,0x7E2E,
- 0x7E2F,0x7E30,0x7E31,0x7E32,0x7E33,0x7E34,0x7E35,0x7E36,
- 0x7E37,0x7E38,0x7E39,0x7E3A,0x7E3C,0x7E3D,0x7E3E,0x7E3F,
- 0x7E40,0x7E42,0x7E43,0x7E44,0x7E45,0x7E46,0x7E48,0x7E49,
- 0x7E4A,0x7E4B,0x7E4C,0x7E4D,0x7E4E,0x7E4F,0x7E50,0x7E51,
- 0x7E52,0x7E53,0x7E54,0x7E55,0x7E56,0x7E57,0x7E58,0x7E59,
- 0x7E5A,0x7E5B,0x7E5C,0x7E5D,0x4FCA,0x7AE3,0x6D5A,0x90E1,
- 0x9A8F,0x5580,0x5496,0x5361,0x54AF,0x5F00,0x63E9,0x6977,
- 0x51EF,0x6168,0x520A,0x582A,0x52D8,0x574E,0x780D,0x770B,
- 0x5EB7,0x6177,0x7CE0,0x625B,0x6297,0x4EA2,0x7095,0x8003,
- 0x62F7,0x70E4,0x9760,0x5777,0x82DB,0x67EF,0x68F5,0x78D5,
- 0x9897,0x79D1,0x58F3,0x54B3,0x53EF,0x6E34,0x514B,0x523B,
- 0x5BA2,0x8BFE,0x80AF,0x5543,0x57A6,0x6073,0x5751,0x542D,
- 0x7A7A,0x6050,0x5B54,0x63A7,0x62A0,0x53E3,0x6263,0x5BC7,
- 0x67AF,0x54ED,0x7A9F,0x82E6,0x9177,0x5E93,0x88E4,0x5938,
- 0x57AE,0x630E,0x8DE8,0x80EF,0x5757,0x7B77,0x4FA9,0x5FEB,
- 0x5BBD,0x6B3E,0x5321,0x7B50,0x72C2,0x6846,0x77FF,0x7736,
- 0x65F7,0x51B5,0x4E8F,0x76D4,0x5CBF,0x7AA5,0x8475,0x594E,
- 0x9B41,0x5080,0x7E5E,0x7E5F,0x7E60,0x7E61,0x7E62,0x7E63,
- 0x7E64,0x7E65,0x7E66,0x7E67,0x7E68,0x7E69,0x7E6A,0x7E6B,
- 0x7E6C,0x7E6D,0x7E6E,0x7E6F,0x7E70,0x7E71,0x7E72,0x7E73,
- 0x7E74,0x7E75,0x7E76,0x7E77,0x7E78,0x7E79,0x7E7A,0x7E7B,
- 0x7E7C,0x7E7D,0x7E7E,0x7E7F,0x7E80,0x7E81,0x7E83,0x7E84,
- 0x7E85,0x7E86,0x7E87,0x7E88,0x7E89,0x7E8A,0x7E8B,0x7E8C,
- 0x7E8D,0x7E8E,0x7E8F,0x7E90,0x7E91,0x7E92,0x7E93,0x7E94,
- 0x7E95,0x7E96,0x7E97,0x7E98,0x7E99,0x7E9A,0x7E9C,0x7E9D,
- 0x7E9E,0x7EAE,0x7EB4,0x7EBB,0x7EBC,0x7ED6,0x7EE4,0x7EEC,
- 0x7EF9,0x7F0A,0x7F10,0x7F1E,0x7F37,0x7F39,0x7F3B,0x7F3C,
- 0x7F3D,0x7F3E,0x7F3F,0x7F40,0x7F41,0x7F43,0x7F46,0x7F47,
- 0x7F48,0x7F49,0x7F4A,0x7F4B,0x7F4C,0x7F4D,0x7F4E,0x7F4F,
- 0x7F52,0x7F53,0x9988,0x6127,0x6E83,0x5764,0x6606,0x6346,
- 0x56F0,0x62EC,0x6269,0x5ED3,0x9614,0x5783,0x62C9,0x5587,
- 0x8721,0x814A,0x8FA3,0x5566,0x83B1,0x6765,0x8D56,0x84DD,
- 0x5A6A,0x680F,0x62E6,0x7BEE,0x9611,0x5170,0x6F9C,0x8C30,
- 0x63FD,0x89C8,0x61D2,0x7F06,0x70C2,0x6EE5,0x7405,0x6994,
- 0x72FC,0x5ECA,0x90CE,0x6717,0x6D6A,0x635E,0x52B3,0x7262,
- 0x8001,0x4F6C,0x59E5,0x916A,0x70D9,0x6D9D,0x52D2,0x4E50,
- 0x96F7,0x956D,0x857E,0x78CA,0x7D2F,0x5121,0x5792,0x64C2,
- 0x808B,0x7C7B,0x6CEA,0x68F1,0x695E,0x51B7,0x5398,0x68A8,
- 0x7281,0x9ECE,0x7BF1,0x72F8,0x79BB,0x6F13,0x7406,0x674E,
- 0x91CC,0x9CA4,0x793C,0x8389,0x8354,0x540F,0x6817,0x4E3D,
- 0x5389,0x52B1,0x783E,0x5386,0x5229,0x5088,0x4F8B,0x4FD0,
- 0x7F56,0x7F59,0x7F5B,0x7F5C,0x7F5D,0x7F5E,0x7F60,0x7F63,
- 0x7F64,0x7F65,0x7F66,0x7F67,0x7F6B,0x7F6C,0x7F6D,0x7F6F,
- 0x7F70,0x7F73,0x7F75,0x7F76,0x7F77,0x7F78,0x7F7A,0x7F7B,
- 0x7F7C,0x7F7D,0x7F7F,0x7F80,0x7F82,0x7F83,0x7F84,0x7F85,
- 0x7F86,0x7F87,0x7F88,0x7F89,0x7F8B,0x7F8D,0x7F8F,0x7F90,
- 0x7F91,0x7F92,0x7F93,0x7F95,0x7F96,0x7F97,0x7F98,0x7F99,
- 0x7F9B,0x7F9C,0x7FA0,0x7FA2,0x7FA3,0x7FA5,0x7FA6,0x7FA8,
- 0x7FA9,0x7FAA,0x7FAB,0x7FAC,0x7FAD,0x7FAE,0x7FB1,0x7FB3,
- 0x7FB4,0x7FB5,0x7FB6,0x7FB7,0x7FBA,0x7FBB,0x7FBE,0x7FC0,
- 0x7FC2,0x7FC3,0x7FC4,0x7FC6,0x7FC7,0x7FC8,0x7FC9,0x7FCB,
- 0x7FCD,0x7FCF,0x7FD0,0x7FD1,0x7FD2,0x7FD3,0x7FD6,0x7FD7,
- 0x7FD9,0x7FDA,0x7FDB,0x7FDC,0x7FDD,0x7FDE,0x7FE2,0x7FE3,
- 0x75E2,0x7ACB,0x7C92,0x6CA5,0x96B6,0x529B,0x7483,0x54E9,
- 0x4FE9,0x8054,0x83B2,0x8FDE,0x9570,0x5EC9,0x601C,0x6D9F,
- 0x5E18,0x655B,0x8138,0x94FE,0x604B,0x70BC,0x7EC3,0x7CAE,
- 0x51C9,0x6881,0x7CB1,0x826F,0x4E24,0x8F86,0x91CF,0x667E,
- 0x4EAE,0x8C05,0x64A9,0x804A,0x50DA,0x7597,0x71CE,0x5BE5,
- 0x8FBD,0x6F66,0x4E86,0x6482,0x9563,0x5ED6,0x6599,0x5217,
- 0x88C2,0x70C8,0x52A3,0x730E,0x7433,0x6797,0x78F7,0x9716,
- 0x4E34,0x90BB,0x9CDE,0x6DCB,0x51DB,0x8D41,0x541D,0x62CE,
- 0x73B2,0x83F1,0x96F6,0x9F84,0x94C3,0x4F36,0x7F9A,0x51CC,
- 0x7075,0x9675,0x5CAD,0x9886,0x53E6,0x4EE4,0x6E9C,0x7409,
- 0x69B4,0x786B,0x998F,0x7559,0x5218,0x7624,0x6D41,0x67F3,
- 0x516D,0x9F99,0x804B,0x5499,0x7B3C,0x7ABF,0x7FE4,0x7FE7,
- 0x7FE8,0x7FEA,0x7FEB,0x7FEC,0x7FED,0x7FEF,0x7FF2,0x7FF4,
- 0x7FF5,0x7FF6,0x7FF7,0x7FF8,0x7FF9,0x7FFA,0x7FFD,0x7FFE,
- 0x7FFF,0x8002,0x8007,0x8008,0x8009,0x800A,0x800E,0x800F,
- 0x8011,0x8013,0x801A,0x801B,0x801D,0x801E,0x801F,0x8021,
- 0x8023,0x8024,0x802B,0x802C,0x802D,0x802E,0x802F,0x8030,
- 0x8032,0x8034,0x8039,0x803A,0x803C,0x803E,0x8040,0x8041,
- 0x8044,0x8045,0x8047,0x8048,0x8049,0x804E,0x804F,0x8050,
- 0x8051,0x8053,0x8055,0x8056,0x8057,0x8059,0x805B,0x805C,
- 0x805D,0x805E,0x805F,0x8060,0x8061,0x8062,0x8063,0x8064,
- 0x8065,0x8066,0x8067,0x8068,0x806B,0x806C,0x806D,0x806E,
- 0x806F,0x8070,0x8072,0x8073,0x8074,0x8075,0x8076,0x8077,
- 0x8078,0x8079,0x807A,0x807B,0x807C,0x807D,0x9686,0x5784,
- 0x62E2,0x9647,0x697C,0x5A04,0x6402,0x7BD3,0x6F0F,0x964B,
- 0x82A6,0x5362,0x9885,0x5E90,0x7089,0x63B3,0x5364,0x864F,
- 0x9C81,0x9E93,0x788C,0x9732,0x8DEF,0x8D42,0x9E7F,0x6F5E,
- 0x7984,0x5F55,0x9646,0x622E,0x9A74,0x5415,0x94DD,0x4FA3,
- 0x65C5,0x5C65,0x5C61,0x7F15,0x8651,0x6C2F,0x5F8B,0x7387,
- 0x6EE4,0x7EFF,0x5CE6,0x631B,0x5B6A,0x6EE6,0x5375,0x4E71,
- 0x63A0,0x7565,0x62A1,0x8F6E,0x4F26,0x4ED1,0x6CA6,0x7EB6,
- 0x8BBA,0x841D,0x87BA,0x7F57,0x903B,0x9523,0x7BA9,0x9AA1,
- 0x88F8,0x843D,0x6D1B,0x9A86,0x7EDC,0x5988,0x9EBB,0x739B,
- 0x7801,0x8682,0x9A6C,0x9A82,0x561B,0x5417,0x57CB,0x4E70,
- 0x9EA6,0x5356,0x8FC8,0x8109,0x7792,0x9992,0x86EE,0x6EE1,
- 0x8513,0x66FC,0x6162,0x6F2B,0x807E,0x8081,0x8082,0x8085,
- 0x8088,0x808A,0x808D,0x808E,0x808F,0x8090,0x8091,0x8092,
- 0x8094,0x8095,0x8097,0x8099,0x809E,0x80A3,0x80A6,0x80A7,
- 0x80A8,0x80AC,0x80B0,0x80B3,0x80B5,0x80B6,0x80B8,0x80B9,
- 0x80BB,0x80C5,0x80C7,0x80C8,0x80C9,0x80CA,0x80CB,0x80CF,
- 0x80D0,0x80D1,0x80D2,0x80D3,0x80D4,0x80D5,0x80D8,0x80DF,
- 0x80E0,0x80E2,0x80E3,0x80E6,0x80EE,0x80F5,0x80F7,0x80F9,
- 0x80FB,0x80FE,0x80FF,0x8100,0x8101,0x8103,0x8104,0x8105,
- 0x8107,0x8108,0x810B,0x810C,0x8115,0x8117,0x8119,0x811B,
- 0x811C,0x811D,0x811F,0x8120,0x8121,0x8122,0x8123,0x8124,
- 0x8125,0x8126,0x8127,0x8128,0x8129,0x812A,0x812B,0x812D,
- 0x812E,0x8130,0x8133,0x8134,0x8135,0x8137,0x8139,0x813A,
- 0x813B,0x813C,0x813D,0x813F,0x8C29,0x8292,0x832B,0x76F2,
- 0x6C13,0x5FD9,0x83BD,0x732B,0x8305,0x951A,0x6BDB,0x77DB,
- 0x94C6,0x536F,0x8302,0x5192,0x5E3D,0x8C8C,0x8D38,0x4E48,
- 0x73AB,0x679A,0x6885,0x9176,0x9709,0x7164,0x6CA1,0x7709,
- 0x5A92,0x9541,0x6BCF,0x7F8E,0x6627,0x5BD0,0x59B9,0x5A9A,
- 0x95E8,0x95F7,0x4EEC,0x840C,0x8499,0x6AAC,0x76DF,0x9530,
- 0x731B,0x68A6,0x5B5F,0x772F,0x919A,0x9761,0x7CDC,0x8FF7,
- 0x8C1C,0x5F25,0x7C73,0x79D8,0x89C5,0x6CCC,0x871C,0x5BC6,
- 0x5E42,0x68C9,0x7720,0x7EF5,0x5195,0x514D,0x52C9,0x5A29,
- 0x7F05,0x9762,0x82D7,0x63CF,0x7784,0x85D0,0x79D2,0x6E3A,
- 0x5E99,0x5999,0x8511,0x706D,0x6C11,0x62BF,0x76BF,0x654F,
- 0x60AF,0x95FD,0x660E,0x879F,0x9E23,0x94ED,0x540D,0x547D,
- 0x8C2C,0x6478,0x8140,0x8141,0x8142,0x8143,0x8144,0x8145,
- 0x8147,0x8149,0x814D,0x814E,0x814F,0x8152,0x8156,0x8157,
- 0x8158,0x815B,0x815C,0x815D,0x815E,0x815F,0x8161,0x8162,
- 0x8163,0x8164,0x8166,0x8168,0x816A,0x816B,0x816C,0x816F,
- 0x8172,0x8173,0x8175,0x8176,0x8177,0x8178,0x8181,0x8183,
- 0x8184,0x8185,0x8186,0x8187,0x8189,0x818B,0x818C,0x818D,
- 0x818E,0x8190,0x8192,0x8193,0x8194,0x8195,0x8196,0x8197,
- 0x8199,0x819A,0x819E,0x819F,0x81A0,0x81A1,0x81A2,0x81A4,
- 0x81A5,0x81A7,0x81A9,0x81AB,0x81AC,0x81AD,0x81AE,0x81AF,
- 0x81B0,0x81B1,0x81B2,0x81B4,0x81B5,0x81B6,0x81B7,0x81B8,
- 0x81B9,0x81BC,0x81BD,0x81BE,0x81BF,0x81C4,0x81C5,0x81C7,
- 0x81C8,0x81C9,0x81CB,0x81CD,0x81CE,0x81CF,0x81D0,0x81D1,
- 0x81D2,0x81D3,0x6479,0x8611,0x6A21,0x819C,0x78E8,0x6469,
- 0x9B54,0x62B9,0x672B,0x83AB,0x58A8,0x9ED8,0x6CAB,0x6F20,
- 0x5BDE,0x964C,0x8C0B,0x725F,0x67D0,0x62C7,0x7261,0x4EA9,
- 0x59C6,0x6BCD,0x5893,0x66AE,0x5E55,0x52DF,0x6155,0x6728,
- 0x76EE,0x7766,0x7267,0x7A46,0x62FF,0x54EA,0x5450,0x94A0,
- 0x90A3,0x5A1C,0x7EB3,0x6C16,0x4E43,0x5976,0x8010,0x5948,
- 0x5357,0x7537,0x96BE,0x56CA,0x6320,0x8111,0x607C,0x95F9,
- 0x6DD6,0x5462,0x9981,0x5185,0x5AE9,0x80FD,0x59AE,0x9713,
- 0x502A,0x6CE5,0x5C3C,0x62DF,0x4F60,0x533F,0x817B,0x9006,
- 0x6EBA,0x852B,0x62C8,0x5E74,0x78BE,0x64B5,0x637B,0x5FF5,
- 0x5A18,0x917F,0x9E1F,0x5C3F,0x634F,0x8042,0x5B7D,0x556E,
- 0x954A,0x954D,0x6D85,0x60A8,0x67E0,0x72DE,0x51DD,0x5B81,
- 0x81D4,0x81D5,0x81D6,0x81D7,0x81D8,0x81D9,0x81DA,0x81DB,
- 0x81DC,0x81DD,0x81DE,0x81DF,0x81E0,0x81E1,0x81E2,0x81E4,
- 0x81E5,0x81E6,0x81E8,0x81E9,0x81EB,0x81EE,0x81EF,0x81F0,
- 0x81F1,0x81F2,0x81F5,0x81F6,0x81F7,0x81F8,0x81F9,0x81FA,
- 0x81FD,0x81FF,0x8203,0x8207,0x8208,0x8209,0x820A,0x820B,
- 0x820E,0x820F,0x8211,0x8213,0x8215,0x8216,0x8217,0x8218,
- 0x8219,0x821A,0x821D,0x8220,0x8224,0x8225,0x8226,0x8227,
- 0x8229,0x822E,0x8232,0x823A,0x823C,0x823D,0x823F,0x8240,
- 0x8241,0x8242,0x8243,0x8245,0x8246,0x8248,0x824A,0x824C,
- 0x824D,0x824E,0x8250,0x8251,0x8252,0x8253,0x8254,0x8255,
- 0x8256,0x8257,0x8259,0x825B,0x825C,0x825D,0x825E,0x8260,
- 0x8261,0x8262,0x8263,0x8264,0x8265,0x8266,0x8267,0x8269,
- 0x62E7,0x6CDE,0x725B,0x626D,0x94AE,0x7EBD,0x8113,0x6D53,
- 0x519C,0x5F04,0x5974,0x52AA,0x6012,0x5973,0x6696,0x8650,
- 0x759F,0x632A,0x61E6,0x7CEF,0x8BFA,0x54E6,0x6B27,0x9E25,
- 0x6BB4,0x85D5,0x5455,0x5076,0x6CA4,0x556A,0x8DB4,0x722C,
- 0x5E15,0x6015,0x7436,0x62CD,0x6392,0x724C,0x5F98,0x6E43,
- 0x6D3E,0x6500,0x6F58,0x76D8,0x78D0,0x76FC,0x7554,0x5224,
- 0x53DB,0x4E53,0x5E9E,0x65C1,0x802A,0x80D6,0x629B,0x5486,
- 0x5228,0x70AE,0x888D,0x8DD1,0x6CE1,0x5478,0x80DA,0x57F9,
- 0x88F4,0x8D54,0x966A,0x914D,0x4F69,0x6C9B,0x55B7,0x76C6,
- 0x7830,0x62A8,0x70F9,0x6F8E,0x5F6D,0x84EC,0x68DA,0x787C,
- 0x7BF7,0x81A8,0x670B,0x9E4F,0x6367,0x78B0,0x576F,0x7812,
- 0x9739,0x6279,0x62AB,0x5288,0x7435,0x6BD7,0x826A,0x826B,
- 0x826C,0x826D,0x8271,0x8275,0x8276,0x8277,0x8278,0x827B,
- 0x827C,0x8280,0x8281,0x8283,0x8285,0x8286,0x8287,0x8289,
- 0x828C,0x8290,0x8293,0x8294,0x8295,0x8296,0x829A,0x829B,
- 0x829E,0x82A0,0x82A2,0x82A3,0x82A7,0x82B2,0x82B5,0x82B6,
- 0x82BA,0x82BB,0x82BC,0x82BF,0x82C0,0x82C2,0x82C3,0x82C5,
- 0x82C6,0x82C9,0x82D0,0x82D6,0x82D9,0x82DA,0x82DD,0x82E2,
- 0x82E7,0x82E8,0x82E9,0x82EA,0x82EC,0x82ED,0x82EE,0x82F0,
- 0x82F2,0x82F3,0x82F5,0x82F6,0x82F8,0x82FA,0x82FC,0x82FD,
- 0x82FE,0x82FF,0x8300,0x830A,0x830B,0x830D,0x8310,0x8312,
- 0x8313,0x8316,0x8318,0x8319,0x831D,0x831E,0x831F,0x8320,
- 0x8321,0x8322,0x8323,0x8324,0x8325,0x8326,0x8329,0x832A,
- 0x832E,0x8330,0x8332,0x8337,0x833B,0x833D,0x5564,0x813E,
- 0x75B2,0x76AE,0x5339,0x75DE,0x50FB,0x5C41,0x8B6C,0x7BC7,
- 0x504F,0x7247,0x9A97,0x98D8,0x6F02,0x74E2,0x7968,0x6487,
- 0x77A5,0x62FC,0x9891,0x8D2B,0x54C1,0x8058,0x4E52,0x576A,
- 0x82F9,0x840D,0x5E73,0x51ED,0x74F6,0x8BC4,0x5C4F,0x5761,
- 0x6CFC,0x9887,0x5A46,0x7834,0x9B44,0x8FEB,0x7C95,0x5256,
- 0x6251,0x94FA,0x4EC6,0x8386,0x8461,0x83E9,0x84B2,0x57D4,
- 0x6734,0x5703,0x666E,0x6D66,0x8C31,0x66DD,0x7011,0x671F,
- 0x6B3A,0x6816,0x621A,0x59BB,0x4E03,0x51C4,0x6F06,0x67D2,
- 0x6C8F,0x5176,0x68CB,0x5947,0x6B67,0x7566,0x5D0E,0x8110,
- 0x9F50,0x65D7,0x7948,0x7941,0x9A91,0x8D77,0x5C82,0x4E5E,
- 0x4F01,0x542F,0x5951,0x780C,0x5668,0x6C14,0x8FC4,0x5F03,
- 0x6C7D,0x6CE3,0x8BAB,0x6390,0x833E,0x833F,0x8341,0x8342,
- 0x8344,0x8345,0x8348,0x834A,0x834B,0x834C,0x834D,0x834E,
- 0x8353,0x8355,0x8356,0x8357,0x8358,0x8359,0x835D,0x8362,
- 0x8370,0x8371,0x8372,0x8373,0x8374,0x8375,0x8376,0x8379,
- 0x837A,0x837E,0x837F,0x8380,0x8381,0x8382,0x8383,0x8384,
- 0x8387,0x8388,0x838A,0x838B,0x838C,0x838D,0x838F,0x8390,
- 0x8391,0x8394,0x8395,0x8396,0x8397,0x8399,0x839A,0x839D,
- 0x839F,0x83A1,0x83A2,0x83A3,0x83A4,0x83A5,0x83A6,0x83A7,
- 0x83AC,0x83AD,0x83AE,0x83AF,0x83B5,0x83BB,0x83BE,0x83BF,
- 0x83C2,0x83C3,0x83C4,0x83C6,0x83C8,0x83C9,0x83CB,0x83CD,
- 0x83CE,0x83D0,0x83D1,0x83D2,0x83D3,0x83D5,0x83D7,0x83D9,
- 0x83DA,0x83DB,0x83DE,0x83E2,0x83E3,0x83E4,0x83E6,0x83E7,
- 0x83E8,0x83EB,0x83EC,0x83ED,0x6070,0x6D3D,0x7275,0x6266,
- 0x948E,0x94C5,0x5343,0x8FC1,0x7B7E,0x4EDF,0x8C26,0x4E7E,
- 0x9ED4,0x94B1,0x94B3,0x524D,0x6F5C,0x9063,0x6D45,0x8C34,
- 0x5811,0x5D4C,0x6B20,0x6B49,0x67AA,0x545B,0x8154,0x7F8C,
- 0x5899,0x8537,0x5F3A,0x62A2,0x6A47,0x9539,0x6572,0x6084,
- 0x6865,0x77A7,0x4E54,0x4FA8,0x5DE7,0x9798,0x64AC,0x7FD8,
- 0x5CED,0x4FCF,0x7A8D,0x5207,0x8304,0x4E14,0x602F,0x7A83,
- 0x94A6,0x4FB5,0x4EB2,0x79E6,0x7434,0x52E4,0x82B9,0x64D2,
- 0x79BD,0x5BDD,0x6C81,0x9752,0x8F7B,0x6C22,0x503E,0x537F,
- 0x6E05,0x64CE,0x6674,0x6C30,0x60C5,0x9877,0x8BF7,0x5E86,
- 0x743C,0x7A77,0x79CB,0x4E18,0x90B1,0x7403,0x6C42,0x56DA,
- 0x914B,0x6CC5,0x8D8B,0x533A,0x86C6,0x66F2,0x8EAF,0x5C48,
- 0x9A71,0x6E20,0x83EE,0x83EF,0x83F3,0x83F4,0x83F5,0x83F6,
- 0x83F7,0x83FA,0x83FB,0x83FC,0x83FE,0x83FF,0x8400,0x8402,
- 0x8405,0x8407,0x8408,0x8409,0x840A,0x8410,0x8412,0x8413,
- 0x8414,0x8415,0x8416,0x8417,0x8419,0x841A,0x841B,0x841E,
- 0x841F,0x8420,0x8421,0x8422,0x8423,0x8429,0x842A,0x842B,
- 0x842C,0x842D,0x842E,0x842F,0x8430,0x8432,0x8433,0x8434,
- 0x8435,0x8436,0x8437,0x8439,0x843A,0x843B,0x843E,0x843F,
- 0x8440,0x8441,0x8442,0x8443,0x8444,0x8445,0x8447,0x8448,
- 0x8449,0x844A,0x844B,0x844C,0x844D,0x844E,0x844F,0x8450,
- 0x8452,0x8453,0x8454,0x8455,0x8456,0x8458,0x845D,0x845E,
- 0x845F,0x8460,0x8462,0x8464,0x8465,0x8466,0x8467,0x8468,
- 0x846A,0x846E,0x846F,0x8470,0x8472,0x8474,0x8477,0x8479,
- 0x847B,0x847C,0x53D6,0x5A36,0x9F8B,0x8DA3,0x53BB,0x5708,
- 0x98A7,0x6743,0x919B,0x6CC9,0x5168,0x75CA,0x62F3,0x72AC,
- 0x5238,0x529D,0x7F3A,0x7094,0x7638,0x5374,0x9E4A,0x69B7,
- 0x786E,0x96C0,0x88D9,0x7FA4,0x7136,0x71C3,0x5189,0x67D3,
- 0x74E4,0x58E4,0x6518,0x56B7,0x8BA9,0x9976,0x6270,0x7ED5,
- 0x60F9,0x70ED,0x58EC,0x4EC1,0x4EBA,0x5FCD,0x97E7,0x4EFB,
- 0x8BA4,0x5203,0x598A,0x7EAB,0x6254,0x4ECD,0x65E5,0x620E,
- 0x8338,0x84C9,0x8363,0x878D,0x7194,0x6EB6,0x5BB9,0x7ED2,
- 0x5197,0x63C9,0x67D4,0x8089,0x8339,0x8815,0x5112,0x5B7A,
- 0x5982,0x8FB1,0x4E73,0x6C5D,0x5165,0x8925,0x8F6F,0x962E,
- 0x854A,0x745E,0x9510,0x95F0,0x6DA6,0x82E5,0x5F31,0x6492,
- 0x6D12,0x8428,0x816E,0x9CC3,0x585E,0x8D5B,0x4E09,0x53C1,
- 0x847D,0x847E,0x847F,0x8480,0x8481,0x8483,0x8484,0x8485,
- 0x8486,0x848A,0x848D,0x848F,0x8490,0x8491,0x8492,0x8493,
- 0x8494,0x8495,0x8496,0x8498,0x849A,0x849B,0x849D,0x849E,
- 0x849F,0x84A0,0x84A2,0x84A3,0x84A4,0x84A5,0x84A6,0x84A7,
- 0x84A8,0x84A9,0x84AA,0x84AB,0x84AC,0x84AD,0x84AE,0x84B0,
- 0x84B1,0x84B3,0x84B5,0x84B6,0x84B7,0x84BB,0x84BC,0x84BE,
- 0x84C0,0x84C2,0x84C3,0x84C5,0x84C6,0x84C7,0x84C8,0x84CB,
- 0x84CC,0x84CE,0x84CF,0x84D2,0x84D4,0x84D5,0x84D7,0x84D8,
- 0x84D9,0x84DA,0x84DB,0x84DC,0x84DE,0x84E1,0x84E2,0x84E4,
- 0x84E7,0x84E8,0x84E9,0x84EA,0x84EB,0x84ED,0x84EE,0x84EF,
- 0x84F1,0x84F2,0x84F3,0x84F4,0x84F5,0x84F6,0x84F7,0x84F8,
- 0x84F9,0x84FA,0x84FB,0x84FD,0x84FE,0x8500,0x8501,0x8502,
- 0x4F1E,0x6563,0x6851,0x55D3,0x4E27,0x6414,0x9A9A,0x626B,
- 0x5AC2,0x745F,0x8272,0x6DA9,0x68EE,0x50E7,0x838E,0x7802,
- 0x6740,0x5239,0x6C99,0x7EB1,0x50BB,0x5565,0x715E,0x7B5B,
- 0x6652,0x73CA,0x82EB,0x6749,0x5C71,0x5220,0x717D,0x886B,
- 0x95EA,0x9655,0x64C5,0x8D61,0x81B3,0x5584,0x6C55,0x6247,
- 0x7F2E,0x5892,0x4F24,0x5546,0x8D4F,0x664C,0x4E0A,0x5C1A,
- 0x88F3,0x68A2,0x634E,0x7A0D,0x70E7,0x828D,0x52FA,0x97F6,
- 0x5C11,0x54E8,0x90B5,0x7ECD,0x5962,0x8D4A,0x86C7,0x820C,
- 0x820D,0x8D66,0x6444,0x5C04,0x6151,0x6D89,0x793E,0x8BBE,
- 0x7837,0x7533,0x547B,0x4F38,0x8EAB,0x6DF1,0x5A20,0x7EC5,
- 0x795E,0x6C88,0x5BA1,0x5A76,0x751A,0x80BE,0x614E,0x6E17,
- 0x58F0,0x751F,0x7525,0x7272,0x5347,0x7EF3,0x8503,0x8504,
- 0x8505,0x8506,0x8507,0x8508,0x8509,0x850A,0x850B,0x850D,
- 0x850E,0x850F,0x8510,0x8512,0x8514,0x8515,0x8516,0x8518,
- 0x8519,0x851B,0x851C,0x851D,0x851E,0x8520,0x8522,0x8523,
- 0x8524,0x8525,0x8526,0x8527,0x8528,0x8529,0x852A,0x852D,
- 0x852E,0x852F,0x8530,0x8531,0x8532,0x8533,0x8534,0x8535,
- 0x8536,0x853E,0x853F,0x8540,0x8541,0x8542,0x8544,0x8545,
- 0x8546,0x8547,0x854B,0x854C,0x854D,0x854E,0x854F,0x8550,
- 0x8551,0x8552,0x8553,0x8554,0x8555,0x8557,0x8558,0x855A,
- 0x855B,0x855C,0x855D,0x855F,0x8560,0x8561,0x8562,0x8563,
- 0x8565,0x8566,0x8567,0x8569,0x856A,0x856B,0x856C,0x856D,
- 0x856E,0x856F,0x8570,0x8571,0x8573,0x8575,0x8576,0x8577,
- 0x8578,0x857C,0x857D,0x857F,0x8580,0x8581,0x7701,0x76DB,
- 0x5269,0x80DC,0x5723,0x5E08,0x5931,0x72EE,0x65BD,0x6E7F,
- 0x8BD7,0x5C38,0x8671,0x5341,0x77F3,0x62FE,0x65F6,0x4EC0,
- 0x98DF,0x8680,0x5B9E,0x8BC6,0x53F2,0x77E2,0x4F7F,0x5C4E,
- 0x9A76,0x59CB,0x5F0F,0x793A,0x58EB,0x4E16,0x67FF,0x4E8B,
- 0x62ED,0x8A93,0x901D,0x52BF,0x662F,0x55DC,0x566C,0x9002,
- 0x4ED5,0x4F8D,0x91CA,0x9970,0x6C0F,0x5E02,0x6043,0x5BA4,
- 0x89C6,0x8BD5,0x6536,0x624B,0x9996,0x5B88,0x5BFF,0x6388,
- 0x552E,0x53D7,0x7626,0x517D,0x852C,0x67A2,0x68B3,0x6B8A,
- 0x6292,0x8F93,0x53D4,0x8212,0x6DD1,0x758F,0x4E66,0x8D4E,
- 0x5B70,0x719F,0x85AF,0x6691,0x66D9,0x7F72,0x8700,0x9ECD,
- 0x9F20,0x5C5E,0x672F,0x8FF0,0x6811,0x675F,0x620D,0x7AD6,
- 0x5885,0x5EB6,0x6570,0x6F31,0x8582,0x8583,0x8586,0x8588,
- 0x8589,0x858A,0x858B,0x858C,0x858D,0x858E,0x8590,0x8591,
- 0x8592,0x8593,0x8594,0x8595,0x8596,0x8597,0x8598,0x8599,
- 0x859A,0x859D,0x859E,0x859F,0x85A0,0x85A1,0x85A2,0x85A3,
- 0x85A5,0x85A6,0x85A7,0x85A9,0x85AB,0x85AC,0x85AD,0x85B1,
- 0x85B2,0x85B3,0x85B4,0x85B5,0x85B6,0x85B8,0x85BA,0x85BB,
- 0x85BC,0x85BD,0x85BE,0x85BF,0x85C0,0x85C2,0x85C3,0x85C4,
- 0x85C5,0x85C6,0x85C7,0x85C8,0x85CA,0x85CB,0x85CC,0x85CD,
- 0x85CE,0x85D1,0x85D2,0x85D4,0x85D6,0x85D7,0x85D8,0x85D9,
- 0x85DA,0x85DB,0x85DD,0x85DE,0x85DF,0x85E0,0x85E1,0x85E2,
- 0x85E3,0x85E5,0x85E6,0x85E7,0x85E8,0x85EA,0x85EB,0x85EC,
- 0x85ED,0x85EE,0x85EF,0x85F0,0x85F1,0x85F2,0x85F3,0x85F4,
- 0x85F5,0x85F6,0x85F7,0x85F8,0x6055,0x5237,0x800D,0x6454,
- 0x8870,0x7529,0x5E05,0x6813,0x62F4,0x971C,0x53CC,0x723D,
- 0x8C01,0x6C34,0x7761,0x7A0E,0x542E,0x77AC,0x987A,0x821C,
- 0x8BF4,0x7855,0x6714,0x70C1,0x65AF,0x6495,0x5636,0x601D,
- 0x79C1,0x53F8,0x4E1D,0x6B7B,0x8086,0x5BFA,0x55E3,0x56DB,
- 0x4F3A,0x4F3C,0x9972,0x5DF3,0x677E,0x8038,0x6002,0x9882,
- 0x9001,0x5B8B,0x8BBC,0x8BF5,0x641C,0x8258,0x64DE,0x55FD,
- 0x82CF,0x9165,0x4FD7,0x7D20,0x901F,0x7C9F,0x50F3,0x5851,
- 0x6EAF,0x5BBF,0x8BC9,0x8083,0x9178,0x849C,0x7B97,0x867D,
- 0x968B,0x968F,0x7EE5,0x9AD3,0x788E,0x5C81,0x7A57,0x9042,
- 0x96A7,0x795F,0x5B59,0x635F,0x7B0B,0x84D1,0x68AD,0x5506,
- 0x7F29,0x7410,0x7D22,0x9501,0x6240,0x584C,0x4ED6,0x5B83,
- 0x5979,0x5854,0x85F9,0x85FA,0x85FC,0x85FD,0x85FE,0x8600,
- 0x8601,0x8602,0x8603,0x8604,0x8606,0x8607,0x8608,0x8609,
- 0x860A,0x860B,0x860C,0x860D,0x860E,0x860F,0x8610,0x8612,
- 0x8613,0x8614,0x8615,0x8617,0x8618,0x8619,0x861A,0x861B,
- 0x861C,0x861D,0x861E,0x861F,0x8620,0x8621,0x8622,0x8623,
- 0x8624,0x8625,0x8626,0x8628,0x862A,0x862B,0x862C,0x862D,
- 0x862E,0x862F,0x8630,0x8631,0x8632,0x8633,0x8634,0x8635,
- 0x8636,0x8637,0x8639,0x863A,0x863B,0x863D,0x863E,0x863F,
- 0x8640,0x8641,0x8642,0x8643,0x8644,0x8645,0x8646,0x8647,
- 0x8648,0x8649,0x864A,0x864B,0x864C,0x8652,0x8653,0x8655,
- 0x8656,0x8657,0x8658,0x8659,0x865B,0x865C,0x865D,0x865F,
- 0x8660,0x8661,0x8663,0x8664,0x8665,0x8666,0x8667,0x8668,
- 0x8669,0x866A,0x736D,0x631E,0x8E4B,0x8E0F,0x80CE,0x82D4,
- 0x62AC,0x53F0,0x6CF0,0x915E,0x592A,0x6001,0x6C70,0x574D,
- 0x644A,0x8D2A,0x762B,0x6EE9,0x575B,0x6A80,0x75F0,0x6F6D,
- 0x8C2D,0x8C08,0x5766,0x6BEF,0x8892,0x78B3,0x63A2,0x53F9,
- 0x70AD,0x6C64,0x5858,0x642A,0x5802,0x68E0,0x819B,0x5510,
- 0x7CD6,0x5018,0x8EBA,0x6DCC,0x8D9F,0x70EB,0x638F,0x6D9B,
- 0x6ED4,0x7EE6,0x8404,0x6843,0x9003,0x6DD8,0x9676,0x8BA8,
- 0x5957,0x7279,0x85E4,0x817E,0x75BC,0x8A8A,0x68AF,0x5254,
- 0x8E22,0x9511,0x63D0,0x9898,0x8E44,0x557C,0x4F53,0x66FF,
- 0x568F,0x60D5,0x6D95,0x5243,0x5C49,0x5929,0x6DFB,0x586B,
- 0x7530,0x751C,0x606C,0x8214,0x8146,0x6311,0x6761,0x8FE2,
- 0x773A,0x8DF3,0x8D34,0x94C1,0x5E16,0x5385,0x542C,0x70C3,
- 0x866D,0x866F,0x8670,0x8672,0x8673,0x8674,0x8675,0x8676,
- 0x8677,0x8678,0x8683,0x8684,0x8685,0x8686,0x8687,0x8688,
- 0x8689,0x868E,0x868F,0x8690,0x8691,0x8692,0x8694,0x8696,
- 0x8697,0x8698,0x8699,0x869A,0x869B,0x869E,0x869F,0x86A0,
- 0x86A1,0x86A2,0x86A5,0x86A6,0x86AB,0x86AD,0x86AE,0x86B2,
- 0x86B3,0x86B7,0x86B8,0x86B9,0x86BB,0x86BC,0x86BD,0x86BE,
- 0x86BF,0x86C1,0x86C2,0x86C3,0x86C5,0x86C8,0x86CC,0x86CD,
- 0x86D2,0x86D3,0x86D5,0x86D6,0x86D7,0x86DA,0x86DC,0x86DD,
- 0x86E0,0x86E1,0x86E2,0x86E3,0x86E5,0x86E6,0x86E7,0x86E8,
- 0x86EA,0x86EB,0x86EC,0x86EF,0x86F5,0x86F6,0x86F7,0x86FA,
- 0x86FB,0x86FC,0x86FD,0x86FF,0x8701,0x8704,0x8705,0x8706,
- 0x870B,0x870C,0x870E,0x870F,0x8710,0x8711,0x8714,0x8716,
- 0x6C40,0x5EF7,0x505C,0x4EAD,0x5EAD,0x633A,0x8247,0x901A,
- 0x6850,0x916E,0x77B3,0x540C,0x94DC,0x5F64,0x7AE5,0x6876,
- 0x6345,0x7B52,0x7EDF,0x75DB,0x5077,0x6295,0x5934,0x900F,
- 0x51F8,0x79C3,0x7A81,0x56FE,0x5F92,0x9014,0x6D82,0x5C60,
- 0x571F,0x5410,0x5154,0x6E4D,0x56E2,0x63A8,0x9893,0x817F,
- 0x8715,0x892A,0x9000,0x541E,0x5C6F,0x81C0,0x62D6,0x6258,
- 0x8131,0x9E35,0x9640,0x9A6E,0x9A7C,0x692D,0x59A5,0x62D3,
- 0x553E,0x6316,0x54C7,0x86D9,0x6D3C,0x5A03,0x74E6,0x889C,
- 0x6B6A,0x5916,0x8C4C,0x5F2F,0x6E7E,0x73A9,0x987D,0x4E38,
- 0x70F7,0x5B8C,0x7897,0x633D,0x665A,0x7696,0x60CB,0x5B9B,
- 0x5A49,0x4E07,0x8155,0x6C6A,0x738B,0x4EA1,0x6789,0x7F51,
- 0x5F80,0x65FA,0x671B,0x5FD8,0x5984,0x5A01,0x8719,0x871B,
- 0x871D,0x871F,0x8720,0x8724,0x8726,0x8727,0x8728,0x872A,
- 0x872B,0x872C,0x872D,0x872F,0x8730,0x8732,0x8733,0x8735,
- 0x8736,0x8738,0x8739,0x873A,0x873C,0x873D,0x8740,0x8741,
- 0x8742,0x8743,0x8744,0x8745,0x8746,0x874A,0x874B,0x874D,
- 0x874F,0x8750,0x8751,0x8752,0x8754,0x8755,0x8756,0x8758,
- 0x875A,0x875B,0x875C,0x875D,0x875E,0x875F,0x8761,0x8762,
- 0x8766,0x8767,0x8768,0x8769,0x876A,0x876B,0x876C,0x876D,
- 0x876F,0x8771,0x8772,0x8773,0x8775,0x8777,0x8778,0x8779,
- 0x877A,0x877F,0x8780,0x8781,0x8784,0x8786,0x8787,0x8789,
- 0x878A,0x878C,0x878E,0x878F,0x8790,0x8791,0x8792,0x8794,
- 0x8795,0x8796,0x8798,0x8799,0x879A,0x879B,0x879C,0x879D,
- 0x879E,0x87A0,0x87A1,0x87A2,0x87A3,0x87A4,0x5DCD,0x5FAE,
- 0x5371,0x97E6,0x8FDD,0x6845,0x56F4,0x552F,0x60DF,0x4E3A,
- 0x6F4D,0x7EF4,0x82C7,0x840E,0x59D4,0x4F1F,0x4F2A,0x5C3E,
- 0x7EAC,0x672A,0x851A,0x5473,0x754F,0x80C3,0x5582,0x9B4F,
- 0x4F4D,0x6E2D,0x8C13,0x5C09,0x6170,0x536B,0x761F,0x6E29,
- 0x868A,0x6587,0x95FB,0x7EB9,0x543B,0x7A33,0x7D0A,0x95EE,
- 0x55E1,0x7FC1,0x74EE,0x631D,0x8717,0x6DA1,0x7A9D,0x6211,
- 0x65A1,0x5367,0x63E1,0x6C83,0x5DEB,0x545C,0x94A8,0x4E4C,
- 0x6C61,0x8BEC,0x5C4B,0x65E0,0x829C,0x68A7,0x543E,0x5434,
- 0x6BCB,0x6B66,0x4E94,0x6342,0x5348,0x821E,0x4F0D,0x4FAE,
- 0x575E,0x620A,0x96FE,0x6664,0x7269,0x52FF,0x52A1,0x609F,
- 0x8BEF,0x6614,0x7199,0x6790,0x897F,0x7852,0x77FD,0x6670,
- 0x563B,0x5438,0x9521,0x727A,0x87A5,0x87A6,0x87A7,0x87A9,
- 0x87AA,0x87AE,0x87B0,0x87B1,0x87B2,0x87B4,0x87B6,0x87B7,
- 0x87B8,0x87B9,0x87BB,0x87BC,0x87BE,0x87BF,0x87C1,0x87C2,
- 0x87C3,0x87C4,0x87C5,0x87C7,0x87C8,0x87C9,0x87CC,0x87CD,
- 0x87CE,0x87CF,0x87D0,0x87D4,0x87D5,0x87D6,0x87D7,0x87D8,
- 0x87D9,0x87DA,0x87DC,0x87DD,0x87DE,0x87DF,0x87E1,0x87E2,
- 0x87E3,0x87E4,0x87E6,0x87E7,0x87E8,0x87E9,0x87EB,0x87EC,
- 0x87ED,0x87EF,0x87F0,0x87F1,0x87F2,0x87F3,0x87F4,0x87F5,
- 0x87F6,0x87F7,0x87F8,0x87FA,0x87FB,0x87FC,0x87FD,0x87FF,
- 0x8800,0x8801,0x8802,0x8804,0x8805,0x8806,0x8807,0x8808,
- 0x8809,0x880B,0x880C,0x880D,0x880E,0x880F,0x8810,0x8811,
- 0x8812,0x8814,0x8817,0x8818,0x8819,0x881A,0x881C,0x881D,
- 0x881E,0x881F,0x8820,0x8823,0x7A00,0x606F,0x5E0C,0x6089,
- 0x819D,0x5915,0x60DC,0x7184,0x70EF,0x6EAA,0x6C50,0x7280,
- 0x6A84,0x88AD,0x5E2D,0x4E60,0x5AB3,0x559C,0x94E3,0x6D17,
- 0x7CFB,0x9699,0x620F,0x7EC6,0x778E,0x867E,0x5323,0x971E,
- 0x8F96,0x6687,0x5CE1,0x4FA0,0x72ED,0x4E0B,0x53A6,0x590F,
- 0x5413,0x6380,0x9528,0x5148,0x4ED9,0x9C9C,0x7EA4,0x54B8,
- 0x8D24,0x8854,0x8237,0x95F2,0x6D8E,0x5F26,0x5ACC,0x663E,
- 0x9669,0x73B0,0x732E,0x53BF,0x817A,0x9985,0x7FA1,0x5BAA,
- 0x9677,0x9650,0x7EBF,0x76F8,0x53A2,0x9576,0x9999,0x7BB1,
- 0x8944,0x6E58,0x4E61,0x7FD4,0x7965,0x8BE6,0x60F3,0x54CD,
- 0x4EAB,0x9879,0x5DF7,0x6A61,0x50CF,0x5411,0x8C61,0x8427,
- 0x785D,0x9704,0x524A,0x54EE,0x56A3,0x9500,0x6D88,0x5BB5,
- 0x6DC6,0x6653,0x8824,0x8825,0x8826,0x8827,0x8828,0x8829,
- 0x882A,0x882B,0x882C,0x882D,0x882E,0x882F,0x8830,0x8831,
- 0x8833,0x8834,0x8835,0x8836,0x8837,0x8838,0x883A,0x883B,
- 0x883D,0x883E,0x883F,0x8841,0x8842,0x8843,0x8846,0x8847,
- 0x8848,0x8849,0x884A,0x884B,0x884E,0x884F,0x8850,0x8851,
- 0x8852,0x8853,0x8855,0x8856,0x8858,0x885A,0x885B,0x885C,
- 0x885D,0x885E,0x885F,0x8860,0x8866,0x8867,0x886A,0x886D,
- 0x886F,0x8871,0x8873,0x8874,0x8875,0x8876,0x8878,0x8879,
- 0x887A,0x887B,0x887C,0x8880,0x8883,0x8886,0x8887,0x8889,
- 0x888A,0x888C,0x888E,0x888F,0x8890,0x8891,0x8893,0x8894,
- 0x8895,0x8897,0x8898,0x8899,0x889A,0x889B,0x889D,0x889E,
- 0x889F,0x88A0,0x88A1,0x88A3,0x88A5,0x88A6,0x88A7,0x88A8,
- 0x88A9,0x88AA,0x5C0F,0x5B5D,0x6821,0x8096,0x5578,0x7B11,
- 0x6548,0x6954,0x4E9B,0x6B47,0x874E,0x978B,0x534F,0x631F,
- 0x643A,0x90AA,0x659C,0x80C1,0x8C10,0x5199,0x68B0,0x5378,
- 0x87F9,0x61C8,0x6CC4,0x6CFB,0x8C22,0x5C51,0x85AA,0x82AF,
- 0x950C,0x6B23,0x8F9B,0x65B0,0x5FFB,0x5FC3,0x4FE1,0x8845,
- 0x661F,0x8165,0x7329,0x60FA,0x5174,0x5211,0x578B,0x5F62,
- 0x90A2,0x884C,0x9192,0x5E78,0x674F,0x6027,0x59D3,0x5144,
- 0x51F6,0x80F8,0x5308,0x6C79,0x96C4,0x718A,0x4F11,0x4FEE,
- 0x7F9E,0x673D,0x55C5,0x9508,0x79C0,0x8896,0x7EE3,0x589F,
- 0x620C,0x9700,0x865A,0x5618,0x987B,0x5F90,0x8BB8,0x84C4,
- 0x9157,0x53D9,0x65ED,0x5E8F,0x755C,0x6064,0x7D6E,0x5A7F,
- 0x7EEA,0x7EED,0x8F69,0x55A7,0x5BA3,0x60AC,0x65CB,0x7384,
- 0x88AC,0x88AE,0x88AF,0x88B0,0x88B2,0x88B3,0x88B4,0x88B5,
- 0x88B6,0x88B8,0x88B9,0x88BA,0x88BB,0x88BD,0x88BE,0x88BF,
- 0x88C0,0x88C3,0x88C4,0x88C7,0x88C8,0x88CA,0x88CB,0x88CC,
- 0x88CD,0x88CF,0x88D0,0x88D1,0x88D3,0x88D6,0x88D7,0x88DA,
- 0x88DB,0x88DC,0x88DD,0x88DE,0x88E0,0x88E1,0x88E6,0x88E7,
- 0x88E9,0x88EA,0x88EB,0x88EC,0x88ED,0x88EE,0x88EF,0x88F2,
- 0x88F5,0x88F6,0x88F7,0x88FA,0x88FB,0x88FD,0x88FF,0x8900,
- 0x8901,0x8903,0x8904,0x8905,0x8906,0x8907,0x8908,0x8909,
- 0x890B,0x890C,0x890D,0x890E,0x890F,0x8911,0x8914,0x8915,
- 0x8916,0x8917,0x8918,0x891C,0x891D,0x891E,0x891F,0x8920,
- 0x8922,0x8923,0x8924,0x8926,0x8927,0x8928,0x8929,0x892C,
- 0x892D,0x892E,0x892F,0x8931,0x8932,0x8933,0x8935,0x8937,
- 0x9009,0x7663,0x7729,0x7EDA,0x9774,0x859B,0x5B66,0x7A74,
- 0x96EA,0x8840,0x52CB,0x718F,0x5FAA,0x65EC,0x8BE2,0x5BFB,
- 0x9A6F,0x5DE1,0x6B89,0x6C5B,0x8BAD,0x8BAF,0x900A,0x8FC5,
- 0x538B,0x62BC,0x9E26,0x9E2D,0x5440,0x4E2B,0x82BD,0x7259,
- 0x869C,0x5D16,0x8859,0x6DAF,0x96C5,0x54D1,0x4E9A,0x8BB6,
- 0x7109,0x54BD,0x9609,0x70DF,0x6DF9,0x76D0,0x4E25,0x7814,
- 0x8712,0x5CA9,0x5EF6,0x8A00,0x989C,0x960E,0x708E,0x6CBF,
- 0x5944,0x63A9,0x773C,0x884D,0x6F14,0x8273,0x5830,0x71D5,
- 0x538C,0x781A,0x96C1,0x5501,0x5F66,0x7130,0x5BB4,0x8C1A,
- 0x9A8C,0x6B83,0x592E,0x9E2F,0x79E7,0x6768,0x626C,0x4F6F,
- 0x75A1,0x7F8A,0x6D0B,0x9633,0x6C27,0x4EF0,0x75D2,0x517B,
- 0x6837,0x6F3E,0x9080,0x8170,0x5996,0x7476,0x8938,0x8939,
- 0x893A,0x893B,0x893C,0x893D,0x893E,0x893F,0x8940,0x8942,
- 0x8943,0x8945,0x8946,0x8947,0x8948,0x8949,0x894A,0x894B,
- 0x894C,0x894D,0x894E,0x894F,0x8950,0x8951,0x8952,0x8953,
- 0x8954,0x8955,0x8956,0x8957,0x8958,0x8959,0x895A,0x895B,
- 0x895C,0x895D,0x8960,0x8961,0x8962,0x8963,0x8964,0x8965,
- 0x8967,0x8968,0x8969,0x896A,0x896B,0x896C,0x896D,0x896E,
- 0x896F,0x8970,0x8971,0x8972,0x8973,0x8974,0x8975,0x8976,
- 0x8977,0x8978,0x8979,0x897A,0x897C,0x897D,0x897E,0x8980,
- 0x8982,0x8984,0x8985,0x8987,0x8988,0x8989,0x898A,0x898B,
- 0x898C,0x898D,0x898E,0x898F,0x8990,0x8991,0x8992,0x8993,
- 0x8994,0x8995,0x8996,0x8997,0x8998,0x8999,0x899A,0x899B,
- 0x899C,0x899D,0x899E,0x899F,0x89A0,0x89A1,0x6447,0x5C27,
- 0x9065,0x7A91,0x8C23,0x59DA,0x54AC,0x8200,0x836F,0x8981,
- 0x8000,0x6930,0x564E,0x8036,0x7237,0x91CE,0x51B6,0x4E5F,
- 0x9875,0x6396,0x4E1A,0x53F6,0x66F3,0x814B,0x591C,0x6DB2,
- 0x4E00,0x58F9,0x533B,0x63D6,0x94F1,0x4F9D,0x4F0A,0x8863,
- 0x9890,0x5937,0x9057,0x79FB,0x4EEA,0x80F0,0x7591,0x6C82,
- 0x5B9C,0x59E8,0x5F5D,0x6905,0x8681,0x501A,0x5DF2,0x4E59,
- 0x77E3,0x4EE5,0x827A,0x6291,0x6613,0x9091,0x5C79,0x4EBF,
- 0x5F79,0x81C6,0x9038,0x8084,0x75AB,0x4EA6,0x88D4,0x610F,
- 0x6BC5,0x5FC6,0x4E49,0x76CA,0x6EA2,0x8BE3,0x8BAE,0x8C0A,
- 0x8BD1,0x5F02,0x7FFC,0x7FCC,0x7ECE,0x8335,0x836B,0x56E0,
- 0x6BB7,0x97F3,0x9634,0x59FB,0x541F,0x94F6,0x6DEB,0x5BC5,
- 0x996E,0x5C39,0x5F15,0x9690,0x89A2,0x89A3,0x89A4,0x89A5,
- 0x89A6,0x89A7,0x89A8,0x89A9,0x89AA,0x89AB,0x89AC,0x89AD,
- 0x89AE,0x89AF,0x89B0,0x89B1,0x89B2,0x89B3,0x89B4,0x89B5,
- 0x89B6,0x89B7,0x89B8,0x89B9,0x89BA,0x89BB,0x89BC,0x89BD,
- 0x89BE,0x89BF,0x89C0,0x89C3,0x89CD,0x89D3,0x89D4,0x89D5,
- 0x89D7,0x89D8,0x89D9,0x89DB,0x89DD,0x89DF,0x89E0,0x89E1,
- 0x89E2,0x89E4,0x89E7,0x89E8,0x89E9,0x89EA,0x89EC,0x89ED,
- 0x89EE,0x89F0,0x89F1,0x89F2,0x89F4,0x89F5,0x89F6,0x89F7,
- 0x89F8,0x89F9,0x89FA,0x89FB,0x89FC,0x89FD,0x89FE,0x89FF,
- 0x8A01,0x8A02,0x8A03,0x8A04,0x8A05,0x8A06,0x8A08,0x8A09,
- 0x8A0A,0x8A0B,0x8A0C,0x8A0D,0x8A0E,0x8A0F,0x8A10,0x8A11,
- 0x8A12,0x8A13,0x8A14,0x8A15,0x8A16,0x8A17,0x8A18,0x8A19,
- 0x8A1A,0x8A1B,0x8A1C,0x8A1D,0x5370,0x82F1,0x6A31,0x5A74,
- 0x9E70,0x5E94,0x7F28,0x83B9,0x8424,0x8425,0x8367,0x8747,
- 0x8FCE,0x8D62,0x76C8,0x5F71,0x9896,0x786C,0x6620,0x54DF,
- 0x62E5,0x4F63,0x81C3,0x75C8,0x5EB8,0x96CD,0x8E0A,0x86F9,
- 0x548F,0x6CF3,0x6D8C,0x6C38,0x607F,0x52C7,0x7528,0x5E7D,
- 0x4F18,0x60A0,0x5FE7,0x5C24,0x7531,0x90AE,0x94C0,0x72B9,
- 0x6CB9,0x6E38,0x9149,0x6709,0x53CB,0x53F3,0x4F51,0x91C9,
- 0x8BF1,0x53C8,0x5E7C,0x8FC2,0x6DE4,0x4E8E,0x76C2,0x6986,
- 0x865E,0x611A,0x8206,0x4F59,0x4FDE,0x903E,0x9C7C,0x6109,
- 0x6E1D,0x6E14,0x9685,0x4E88,0x5A31,0x96E8,0x4E0E,0x5C7F,
- 0x79B9,0x5B87,0x8BED,0x7FBD,0x7389,0x57DF,0x828B,0x90C1,
- 0x5401,0x9047,0x55BB,0x5CEA,0x5FA1,0x6108,0x6B32,0x72F1,
- 0x80B2,0x8A89,0x8A1E,0x8A1F,0x8A20,0x8A21,0x8A22,0x8A23,
- 0x8A24,0x8A25,0x8A26,0x8A27,0x8A28,0x8A29,0x8A2A,0x8A2B,
- 0x8A2C,0x8A2D,0x8A2E,0x8A2F,0x8A30,0x8A31,0x8A32,0x8A33,
- 0x8A34,0x8A35,0x8A36,0x8A37,0x8A38,0x8A39,0x8A3A,0x8A3B,
- 0x8A3C,0x8A3D,0x8A3F,0x8A40,0x8A41,0x8A42,0x8A43,0x8A44,
- 0x8A45,0x8A46,0x8A47,0x8A49,0x8A4A,0x8A4B,0x8A4C,0x8A4D,
- 0x8A4E,0x8A4F,0x8A50,0x8A51,0x8A52,0x8A53,0x8A54,0x8A55,
- 0x8A56,0x8A57,0x8A58,0x8A59,0x8A5A,0x8A5B,0x8A5C,0x8A5D,
- 0x8A5E,0x8A5F,0x8A60,0x8A61,0x8A62,0x8A63,0x8A64,0x8A65,
- 0x8A66,0x8A67,0x8A68,0x8A69,0x8A6A,0x8A6B,0x8A6C,0x8A6D,
- 0x8A6E,0x8A6F,0x8A70,0x8A71,0x8A72,0x8A73,0x8A74,0x8A75,
- 0x8A76,0x8A77,0x8A78,0x8A7A,0x8A7B,0x8A7C,0x8A7D,0x8A7E,
- 0x8A7F,0x8A80,0x6D74,0x5BD3,0x88D5,0x9884,0x8C6B,0x9A6D,
- 0x9E33,0x6E0A,0x51A4,0x5143,0x57A3,0x8881,0x539F,0x63F4,
- 0x8F95,0x56ED,0x5458,0x5706,0x733F,0x6E90,0x7F18,0x8FDC,
- 0x82D1,0x613F,0x6028,0x9662,0x66F0,0x7EA6,0x8D8A,0x8DC3,
- 0x94A5,0x5CB3,0x7CA4,0x6708,0x60A6,0x9605,0x8018,0x4E91,
- 0x90E7,0x5300,0x9668,0x5141,0x8FD0,0x8574,0x915D,0x6655,
- 0x97F5,0x5B55,0x531D,0x7838,0x6742,0x683D,0x54C9,0x707E,
- 0x5BB0,0x8F7D,0x518D,0x5728,0x54B1,0x6512,0x6682,0x8D5E,
- 0x8D43,0x810F,0x846C,0x906D,0x7CDF,0x51FF,0x85FB,0x67A3,
- 0x65E9,0x6FA1,0x86A4,0x8E81,0x566A,0x9020,0x7682,0x7076,
- 0x71E5,0x8D23,0x62E9,0x5219,0x6CFD,0x8D3C,0x600E,0x589E,
- 0x618E,0x66FE,0x8D60,0x624E,0x55B3,0x6E23,0x672D,0x8F67,
- 0x8A81,0x8A82,0x8A83,0x8A84,0x8A85,0x8A86,0x8A87,0x8A88,
- 0x8A8B,0x8A8C,0x8A8D,0x8A8E,0x8A8F,0x8A90,0x8A91,0x8A92,
- 0x8A94,0x8A95,0x8A96,0x8A97,0x8A98,0x8A99,0x8A9A,0x8A9B,
- 0x8A9C,0x8A9D,0x8A9E,0x8A9F,0x8AA0,0x8AA1,0x8AA2,0x8AA3,
- 0x8AA4,0x8AA5,0x8AA6,0x8AA7,0x8AA8,0x8AA9,0x8AAA,0x8AAB,
- 0x8AAC,0x8AAD,0x8AAE,0x8AAF,0x8AB0,0x8AB1,0x8AB2,0x8AB3,
- 0x8AB4,0x8AB5,0x8AB6,0x8AB7,0x8AB8,0x8AB9,0x8ABA,0x8ABB,
- 0x8ABC,0x8ABD,0x8ABE,0x8ABF,0x8AC0,0x8AC1,0x8AC2,0x8AC3,
- 0x8AC4,0x8AC5,0x8AC6,0x8AC7,0x8AC8,0x8AC9,0x8ACA,0x8ACB,
- 0x8ACC,0x8ACD,0x8ACE,0x8ACF,0x8AD0,0x8AD1,0x8AD2,0x8AD3,
- 0x8AD4,0x8AD5,0x8AD6,0x8AD7,0x8AD8,0x8AD9,0x8ADA,0x8ADB,
- 0x8ADC,0x8ADD,0x8ADE,0x8ADF,0x8AE0,0x8AE1,0x8AE2,0x8AE3,
- 0x94E1,0x95F8,0x7728,0x6805,0x69A8,0x548B,0x4E4D,0x70B8,
- 0x8BC8,0x6458,0x658B,0x5B85,0x7A84,0x503A,0x5BE8,0x77BB,
- 0x6BE1,0x8A79,0x7C98,0x6CBE,0x76CF,0x65A9,0x8F97,0x5D2D,
- 0x5C55,0x8638,0x6808,0x5360,0x6218,0x7AD9,0x6E5B,0x7EFD,
- 0x6A1F,0x7AE0,0x5F70,0x6F33,0x5F20,0x638C,0x6DA8,0x6756,
- 0x4E08,0x5E10,0x8D26,0x4ED7,0x80C0,0x7634,0x969C,0x62DB,
- 0x662D,0x627E,0x6CBC,0x8D75,0x7167,0x7F69,0x5146,0x8087,
- 0x53EC,0x906E,0x6298,0x54F2,0x86F0,0x8F99,0x8005,0x9517,
- 0x8517,0x8FD9,0x6D59,0x73CD,0x659F,0x771F,0x7504,0x7827,
- 0x81FB,0x8D1E,0x9488,0x4FA6,0x6795,0x75B9,0x8BCA,0x9707,
- 0x632F,0x9547,0x9635,0x84B8,0x6323,0x7741,0x5F81,0x72F0,
- 0x4E89,0x6014,0x6574,0x62EF,0x6B63,0x653F,0x8AE4,0x8AE5,
- 0x8AE6,0x8AE7,0x8AE8,0x8AE9,0x8AEA,0x8AEB,0x8AEC,0x8AED,
- 0x8AEE,0x8AEF,0x8AF0,0x8AF1,0x8AF2,0x8AF3,0x8AF4,0x8AF5,
- 0x8AF6,0x8AF7,0x8AF8,0x8AF9,0x8AFA,0x8AFB,0x8AFC,0x8AFD,
- 0x8AFE,0x8AFF,0x8B00,0x8B01,0x8B02,0x8B03,0x8B04,0x8B05,
- 0x8B06,0x8B08,0x8B09,0x8B0A,0x8B0B,0x8B0C,0x8B0D,0x8B0E,
- 0x8B0F,0x8B10,0x8B11,0x8B12,0x8B13,0x8B14,0x8B15,0x8B16,
- 0x8B17,0x8B18,0x8B19,0x8B1A,0x8B1B,0x8B1C,0x8B1D,0x8B1E,
- 0x8B1F,0x8B20,0x8B21,0x8B22,0x8B23,0x8B24,0x8B25,0x8B27,
- 0x8B28,0x8B29,0x8B2A,0x8B2B,0x8B2C,0x8B2D,0x8B2E,0x8B2F,
- 0x8B30,0x8B31,0x8B32,0x8B33,0x8B34,0x8B35,0x8B36,0x8B37,
- 0x8B38,0x8B39,0x8B3A,0x8B3B,0x8B3C,0x8B3D,0x8B3E,0x8B3F,
- 0x8B40,0x8B41,0x8B42,0x8B43,0x8B44,0x8B45,0x5E27,0x75C7,
- 0x90D1,0x8BC1,0x829D,0x679D,0x652F,0x5431,0x8718,0x77E5,
- 0x80A2,0x8102,0x6C41,0x4E4B,0x7EC7,0x804C,0x76F4,0x690D,
- 0x6B96,0x6267,0x503C,0x4F84,0x5740,0x6307,0x6B62,0x8DBE,
- 0x53EA,0x65E8,0x7EB8,0x5FD7,0x631A,0x63B7,0x81F3,0x81F4,
- 0x7F6E,0x5E1C,0x5CD9,0x5236,0x667A,0x79E9,0x7A1A,0x8D28,
- 0x7099,0x75D4,0x6EDE,0x6CBB,0x7A92,0x4E2D,0x76C5,0x5FE0,
- 0x949F,0x8877,0x7EC8,0x79CD,0x80BF,0x91CD,0x4EF2,0x4F17,
- 0x821F,0x5468,0x5DDE,0x6D32,0x8BCC,0x7CA5,0x8F74,0x8098,
- 0x5E1A,0x5492,0x76B1,0x5B99,0x663C,0x9AA4,0x73E0,0x682A,
- 0x86DB,0x6731,0x732A,0x8BF8,0x8BDB,0x9010,0x7AF9,0x70DB,
- 0x716E,0x62C4,0x77A9,0x5631,0x4E3B,0x8457,0x67F1,0x52A9,
- 0x86C0,0x8D2E,0x94F8,0x7B51,0x8B46,0x8B47,0x8B48,0x8B49,
- 0x8B4A,0x8B4B,0x8B4C,0x8B4D,0x8B4E,0x8B4F,0x8B50,0x8B51,
- 0x8B52,0x8B53,0x8B54,0x8B55,0x8B56,0x8B57,0x8B58,0x8B59,
- 0x8B5A,0x8B5B,0x8B5C,0x8B5D,0x8B5E,0x8B5F,0x8B60,0x8B61,
- 0x8B62,0x8B63,0x8B64,0x8B65,0x8B67,0x8B68,0x8B69,0x8B6A,
- 0x8B6B,0x8B6D,0x8B6E,0x8B6F,0x8B70,0x8B71,0x8B72,0x8B73,
- 0x8B74,0x8B75,0x8B76,0x8B77,0x8B78,0x8B79,0x8B7A,0x8B7B,
- 0x8B7C,0x8B7D,0x8B7E,0x8B7F,0x8B80,0x8B81,0x8B82,0x8B83,
- 0x8B84,0x8B85,0x8B86,0x8B87,0x8B88,0x8B89,0x8B8A,0x8B8B,
- 0x8B8C,0x8B8D,0x8B8E,0x8B8F,0x8B90,0x8B91,0x8B92,0x8B93,
- 0x8B94,0x8B95,0x8B96,0x8B97,0x8B98,0x8B99,0x8B9A,0x8B9B,
- 0x8B9C,0x8B9D,0x8B9E,0x8B9F,0x8BAC,0x8BB1,0x8BBB,0x8BC7,
- 0x8BD0,0x8BEA,0x8C09,0x8C1E,0x4F4F,0x6CE8,0x795D,0x9A7B,
- 0x6293,0x722A,0x62FD,0x4E13,0x7816,0x8F6C,0x64B0,0x8D5A,
- 0x7BC6,0x6869,0x5E84,0x88C5,0x5986,0x649E,0x58EE,0x72B6,
- 0x690E,0x9525,0x8FFD,0x8D58,0x5760,0x7F00,0x8C06,0x51C6,
- 0x6349,0x62D9,0x5353,0x684C,0x7422,0x8301,0x914C,0x5544,
- 0x7740,0x707C,0x6D4A,0x5179,0x54A8,0x8D44,0x59FF,0x6ECB,
- 0x6DC4,0x5B5C,0x7D2B,0x4ED4,0x7C7D,0x6ED3,0x5B50,0x81EA,
- 0x6E0D,0x5B57,0x9B03,0x68D5,0x8E2A,0x5B97,0x7EFC,0x603B,
- 0x7EB5,0x90B9,0x8D70,0x594F,0x63CD,0x79DF,0x8DB3,0x5352,
- 0x65CF,0x7956,0x8BC5,0x963B,0x7EC4,0x94BB,0x7E82,0x5634,
- 0x9189,0x6700,0x7F6A,0x5C0A,0x9075,0x6628,0x5DE6,0x4F50,
- 0x67DE,0x505A,0x4F5C,0x5750,0x5EA7,0xE810,0xE811,0xE812,
- 0xE813,0xE814,0x8C38,0x8C39,0x8C3A,0x8C3B,0x8C3C,0x8C3D,
- 0x8C3E,0x8C3F,0x8C40,0x8C42,0x8C43,0x8C44,0x8C45,0x8C48,
- 0x8C4A,0x8C4B,0x8C4D,0x8C4E,0x8C4F,0x8C50,0x8C51,0x8C52,
- 0x8C53,0x8C54,0x8C56,0x8C57,0x8C58,0x8C59,0x8C5B,0x8C5C,
- 0x8C5D,0x8C5E,0x8C5F,0x8C60,0x8C63,0x8C64,0x8C65,0x8C66,
- 0x8C67,0x8C68,0x8C69,0x8C6C,0x8C6D,0x8C6E,0x8C6F,0x8C70,
- 0x8C71,0x8C72,0x8C74,0x8C75,0x8C76,0x8C77,0x8C7B,0x8C7C,
- 0x8C7D,0x8C7E,0x8C7F,0x8C80,0x8C81,0x8C83,0x8C84,0x8C86,
- 0x8C87,0x8C88,0x8C8B,0x8C8D,0x8C8E,0x8C8F,0x8C90,0x8C91,
- 0x8C92,0x8C93,0x8C95,0x8C96,0x8C97,0x8C99,0x8C9A,0x8C9B,
- 0x8C9C,0x8C9D,0x8C9E,0x8C9F,0x8CA0,0x8CA1,0x8CA2,0x8CA3,
- 0x8CA4,0x8CA5,0x8CA6,0x8CA7,0x8CA8,0x8CA9,0x8CAA,0x8CAB,
- 0x8CAC,0x8CAD,0x4E8D,0x4E0C,0x5140,0x4E10,0x5EFF,0x5345,
- 0x4E15,0x4E98,0x4E1E,0x9B32,0x5B6C,0x5669,0x4E28,0x79BA,
- 0x4E3F,0x5315,0x4E47,0x592D,0x723B,0x536E,0x6C10,0x56DF,
- 0x80E4,0x9997,0x6BD3,0x777E,0x9F17,0x4E36,0x4E9F,0x9F10,
- 0x4E5C,0x4E69,0x4E93,0x8288,0x5B5B,0x556C,0x560F,0x4EC4,
- 0x538D,0x539D,0x53A3,0x53A5,0x53AE,0x9765,0x8D5D,0x531A,
- 0x53F5,0x5326,0x532E,0x533E,0x8D5C,0x5366,0x5363,0x5202,
- 0x5208,0x520E,0x522D,0x5233,0x523F,0x5240,0x524C,0x525E,
- 0x5261,0x525C,0x84AF,0x527D,0x5282,0x5281,0x5290,0x5293,
- 0x5182,0x7F54,0x4EBB,0x4EC3,0x4EC9,0x4EC2,0x4EE8,0x4EE1,
- 0x4EEB,0x4EDE,0x4F1B,0x4EF3,0x4F22,0x4F64,0x4EF5,0x4F25,
- 0x4F27,0x4F09,0x4F2B,0x4F5E,0x4F67,0x6538,0x4F5A,0x4F5D,
- 0x8CAE,0x8CAF,0x8CB0,0x8CB1,0x8CB2,0x8CB3,0x8CB4,0x8CB5,
- 0x8CB6,0x8CB7,0x8CB8,0x8CB9,0x8CBA,0x8CBB,0x8CBC,0x8CBD,
- 0x8CBE,0x8CBF,0x8CC0,0x8CC1,0x8CC2,0x8CC3,0x8CC4,0x8CC5,
- 0x8CC6,0x8CC7,0x8CC8,0x8CC9,0x8CCA,0x8CCB,0x8CCC,0x8CCD,
- 0x8CCE,0x8CCF,0x8CD0,0x8CD1,0x8CD2,0x8CD3,0x8CD4,0x8CD5,
- 0x8CD6,0x8CD7,0x8CD8,0x8CD9,0x8CDA,0x8CDB,0x8CDC,0x8CDD,
- 0x8CDE,0x8CDF,0x8CE0,0x8CE1,0x8CE2,0x8CE3,0x8CE4,0x8CE5,
- 0x8CE6,0x8CE7,0x8CE8,0x8CE9,0x8CEA,0x8CEB,0x8CEC,0x8CED,
- 0x8CEE,0x8CEF,0x8CF0,0x8CF1,0x8CF2,0x8CF3,0x8CF4,0x8CF5,
- 0x8CF6,0x8CF7,0x8CF8,0x8CF9,0x8CFA,0x8CFB,0x8CFC,0x8CFD,
- 0x8CFE,0x8CFF,0x8D00,0x8D01,0x8D02,0x8D03,0x8D04,0x8D05,
- 0x8D06,0x8D07,0x8D08,0x8D09,0x8D0A,0x8D0B,0x8D0C,0x8D0D,
- 0x4F5F,0x4F57,0x4F32,0x4F3D,0x4F76,0x4F74,0x4F91,0x4F89,
- 0x4F83,0x4F8F,0x4F7E,0x4F7B,0x4FAA,0x4F7C,0x4FAC,0x4F94,
- 0x4FE6,0x4FE8,0x4FEA,0x4FC5,0x4FDA,0x4FE3,0x4FDC,0x4FD1,
- 0x4FDF,0x4FF8,0x5029,0x504C,0x4FF3,0x502C,0x500F,0x502E,
- 0x502D,0x4FFE,0x501C,0x500C,0x5025,0x5028,0x507E,0x5043,
- 0x5055,0x5048,0x504E,0x506C,0x507B,0x50A5,0x50A7,0x50A9,
- 0x50BA,0x50D6,0x5106,0x50ED,0x50EC,0x50E6,0x50EE,0x5107,
- 0x510B,0x4EDD,0x6C3D,0x4F58,0x4F65,0x4FCE,0x9FA0,0x6C46,
- 0x7C74,0x516E,0x5DFD,0x9EC9,0x9998,0x5181,0x5914,0x52F9,
- 0x530D,0x8A07,0x5310,0x51EB,0x5919,0x5155,0x4EA0,0x5156,
- 0x4EB3,0x886E,0x88A4,0x4EB5,0x8114,0x88D2,0x7980,0x5B34,
- 0x8803,0x7FB8,0x51AB,0x51B1,0x51BD,0x51BC,0x8D0E,0x8D0F,
- 0x8D10,0x8D11,0x8D12,0x8D13,0x8D14,0x8D15,0x8D16,0x8D17,
- 0x8D18,0x8D19,0x8D1A,0x8D1B,0x8D1C,0x8D20,0x8D51,0x8D52,
- 0x8D57,0x8D5F,0x8D65,0x8D68,0x8D69,0x8D6A,0x8D6C,0x8D6E,
- 0x8D6F,0x8D71,0x8D72,0x8D78,0x8D79,0x8D7A,0x8D7B,0x8D7C,
- 0x8D7D,0x8D7E,0x8D7F,0x8D80,0x8D82,0x8D83,0x8D86,0x8D87,
- 0x8D88,0x8D89,0x8D8C,0x8D8D,0x8D8E,0x8D8F,0x8D90,0x8D92,
- 0x8D93,0x8D95,0x8D96,0x8D97,0x8D98,0x8D99,0x8D9A,0x8D9B,
- 0x8D9C,0x8D9D,0x8D9E,0x8DA0,0x8DA1,0x8DA2,0x8DA4,0x8DA5,
- 0x8DA6,0x8DA7,0x8DA8,0x8DA9,0x8DAA,0x8DAB,0x8DAC,0x8DAD,
- 0x8DAE,0x8DAF,0x8DB0,0x8DB2,0x8DB6,0x8DB7,0x8DB9,0x8DBB,
- 0x8DBD,0x8DC0,0x8DC1,0x8DC2,0x8DC5,0x8DC7,0x8DC8,0x8DC9,
- 0x8DCA,0x8DCD,0x8DD0,0x8DD2,0x8DD3,0x8DD4,0x51C7,0x5196,
- 0x51A2,0x51A5,0x8BA0,0x8BA6,0x8BA7,0x8BAA,0x8BB4,0x8BB5,
- 0x8BB7,0x8BC2,0x8BC3,0x8BCB,0x8BCF,0x8BCE,0x8BD2,0x8BD3,
- 0x8BD4,0x8BD6,0x8BD8,0x8BD9,0x8BDC,0x8BDF,0x8BE0,0x8BE4,
- 0x8BE8,0x8BE9,0x8BEE,0x8BF0,0x8BF3,0x8BF6,0x8BF9,0x8BFC,
- 0x8BFF,0x8C00,0x8C02,0x8C04,0x8C07,0x8C0C,0x8C0F,0x8C11,
- 0x8C12,0x8C14,0x8C15,0x8C16,0x8C19,0x8C1B,0x8C18,0x8C1D,
- 0x8C1F,0x8C20,0x8C21,0x8C25,0x8C27,0x8C2A,0x8C2B,0x8C2E,
- 0x8C2F,0x8C32,0x8C33,0x8C35,0x8C36,0x5369,0x537A,0x961D,
- 0x9622,0x9621,0x9631,0x962A,0x963D,0x963C,0x9642,0x9649,
- 0x9654,0x965F,0x9667,0x966C,0x9672,0x9674,0x9688,0x968D,
- 0x9697,0x96B0,0x9097,0x909B,0x909D,0x9099,0x90AC,0x90A1,
- 0x90B4,0x90B3,0x90B6,0x90BA,0x8DD5,0x8DD8,0x8DD9,0x8DDC,
- 0x8DE0,0x8DE1,0x8DE2,0x8DE5,0x8DE6,0x8DE7,0x8DE9,0x8DED,
- 0x8DEE,0x8DF0,0x8DF1,0x8DF2,0x8DF4,0x8DF6,0x8DFC,0x8DFE,
- 0x8DFF,0x8E00,0x8E01,0x8E02,0x8E03,0x8E04,0x8E06,0x8E07,
- 0x8E08,0x8E0B,0x8E0D,0x8E0E,0x8E10,0x8E11,0x8E12,0x8E13,
- 0x8E15,0x8E16,0x8E17,0x8E18,0x8E19,0x8E1A,0x8E1B,0x8E1C,
- 0x8E20,0x8E21,0x8E24,0x8E25,0x8E26,0x8E27,0x8E28,0x8E2B,
- 0x8E2D,0x8E30,0x8E32,0x8E33,0x8E34,0x8E36,0x8E37,0x8E38,
- 0x8E3B,0x8E3C,0x8E3E,0x8E3F,0x8E43,0x8E45,0x8E46,0x8E4C,
- 0x8E4D,0x8E4E,0x8E4F,0x8E50,0x8E53,0x8E54,0x8E55,0x8E56,
- 0x8E57,0x8E58,0x8E5A,0x8E5B,0x8E5C,0x8E5D,0x8E5E,0x8E5F,
- 0x8E60,0x8E61,0x8E62,0x8E63,0x8E64,0x8E65,0x8E67,0x8E68,
- 0x8E6A,0x8E6B,0x8E6E,0x8E71,0x90B8,0x90B0,0x90CF,0x90C5,
- 0x90BE,0x90D0,0x90C4,0x90C7,0x90D3,0x90E6,0x90E2,0x90DC,
- 0x90D7,0x90DB,0x90EB,0x90EF,0x90FE,0x9104,0x9122,0x911E,
- 0x9123,0x9131,0x912F,0x9139,0x9143,0x9146,0x520D,0x5942,
- 0x52A2,0x52AC,0x52AD,0x52BE,0x54FF,0x52D0,0x52D6,0x52F0,
- 0x53DF,0x71EE,0x77CD,0x5EF4,0x51F5,0x51FC,0x9B2F,0x53B6,
- 0x5F01,0x755A,0x5DEF,0x574C,0x57A9,0x57A1,0x587E,0x58BC,
- 0x58C5,0x58D1,0x5729,0x572C,0x572A,0x5733,0x5739,0x572E,
- 0x572F,0x575C,0x573B,0x5742,0x5769,0x5785,0x576B,0x5786,
- 0x577C,0x577B,0x5768,0x576D,0x5776,0x5773,0x57AD,0x57A4,
- 0x578C,0x57B2,0x57CF,0x57A7,0x57B4,0x5793,0x57A0,0x57D5,
- 0x57D8,0x57DA,0x57D9,0x57D2,0x57B8,0x57F4,0x57EF,0x57F8,
- 0x57E4,0x57DD,0x8E73,0x8E75,0x8E77,0x8E78,0x8E79,0x8E7A,
- 0x8E7B,0x8E7D,0x8E7E,0x8E80,0x8E82,0x8E83,0x8E84,0x8E86,
- 0x8E88,0x8E89,0x8E8A,0x8E8B,0x8E8C,0x8E8D,0x8E8E,0x8E91,
- 0x8E92,0x8E93,0x8E95,0x8E96,0x8E97,0x8E98,0x8E99,0x8E9A,
- 0x8E9B,0x8E9D,0x8E9F,0x8EA0,0x8EA1,0x8EA2,0x8EA3,0x8EA4,
- 0x8EA5,0x8EA6,0x8EA7,0x8EA8,0x8EA9,0x8EAA,0x8EAD,0x8EAE,
- 0x8EB0,0x8EB1,0x8EB3,0x8EB4,0x8EB5,0x8EB6,0x8EB7,0x8EB8,
- 0x8EB9,0x8EBB,0x8EBC,0x8EBD,0x8EBE,0x8EBF,0x8EC0,0x8EC1,
- 0x8EC2,0x8EC3,0x8EC4,0x8EC5,0x8EC6,0x8EC7,0x8EC8,0x8EC9,
- 0x8ECA,0x8ECB,0x8ECC,0x8ECD,0x8ECF,0x8ED0,0x8ED1,0x8ED2,
- 0x8ED3,0x8ED4,0x8ED5,0x8ED6,0x8ED7,0x8ED8,0x8ED9,0x8EDA,
- 0x8EDB,0x8EDC,0x8EDD,0x8EDE,0x8EDF,0x8EE0,0x8EE1,0x8EE2,
- 0x8EE3,0x8EE4,0x580B,0x580D,0x57FD,0x57ED,0x5800,0x581E,
- 0x5819,0x5844,0x5820,0x5865,0x586C,0x5881,0x5889,0x589A,
- 0x5880,0x99A8,0x9F19,0x61FF,0x8279,0x827D,0x827F,0x828F,
- 0x828A,0x82A8,0x8284,0x828E,0x8291,0x8297,0x8299,0x82AB,
- 0x82B8,0x82BE,0x82B0,0x82C8,0x82CA,0x82E3,0x8298,0x82B7,
- 0x82AE,0x82CB,0x82CC,0x82C1,0x82A9,0x82B4,0x82A1,0x82AA,
- 0x829F,0x82C4,0x82CE,0x82A4,0x82E1,0x8309,0x82F7,0x82E4,
- 0x830F,0x8307,0x82DC,0x82F4,0x82D2,0x82D8,0x830C,0x82FB,
- 0x82D3,0x8311,0x831A,0x8306,0x8314,0x8315,0x82E0,0x82D5,
- 0x831C,0x8351,0x835B,0x835C,0x8308,0x8392,0x833C,0x8334,
- 0x8331,0x839B,0x835E,0x832F,0x834F,0x8347,0x8343,0x835F,
- 0x8340,0x8317,0x8360,0x832D,0x833A,0x8333,0x8366,0x8365,
- 0x8EE5,0x8EE6,0x8EE7,0x8EE8,0x8EE9,0x8EEA,0x8EEB,0x8EEC,
- 0x8EED,0x8EEE,0x8EEF,0x8EF0,0x8EF1,0x8EF2,0x8EF3,0x8EF4,
- 0x8EF5,0x8EF6,0x8EF7,0x8EF8,0x8EF9,0x8EFA,0x8EFB,0x8EFC,
- 0x8EFD,0x8EFE,0x8EFF,0x8F00,0x8F01,0x8F02,0x8F03,0x8F04,
- 0x8F05,0x8F06,0x8F07,0x8F08,0x8F09,0x8F0A,0x8F0B,0x8F0C,
- 0x8F0D,0x8F0E,0x8F0F,0x8F10,0x8F11,0x8F12,0x8F13,0x8F14,
- 0x8F15,0x8F16,0x8F17,0x8F18,0x8F19,0x8F1A,0x8F1B,0x8F1C,
- 0x8F1D,0x8F1E,0x8F1F,0x8F20,0x8F21,0x8F22,0x8F23,0x8F24,
- 0x8F25,0x8F26,0x8F27,0x8F28,0x8F29,0x8F2A,0x8F2B,0x8F2C,
- 0x8F2D,0x8F2E,0x8F2F,0x8F30,0x8F31,0x8F32,0x8F33,0x8F34,
- 0x8F35,0x8F36,0x8F37,0x8F38,0x8F39,0x8F3A,0x8F3B,0x8F3C,
- 0x8F3D,0x8F3E,0x8F3F,0x8F40,0x8F41,0x8F42,0x8F43,0x8F44,
- 0x8368,0x831B,0x8369,0x836C,0x836A,0x836D,0x836E,0x83B0,
- 0x8378,0x83B3,0x83B4,0x83A0,0x83AA,0x8393,0x839C,0x8385,
- 0x837C,0x83B6,0x83A9,0x837D,0x83B8,0x837B,0x8398,0x839E,
- 0x83A8,0x83BA,0x83BC,0x83C1,0x8401,0x83E5,0x83D8,0x5807,
- 0x8418,0x840B,0x83DD,0x83FD,0x83D6,0x841C,0x8438,0x8411,
- 0x8406,0x83D4,0x83DF,0x840F,0x8403,0x83F8,0x83F9,0x83EA,
- 0x83C5,0x83C0,0x8426,0x83F0,0x83E1,0x845C,0x8451,0x845A,
- 0x8459,0x8473,0x8487,0x8488,0x847A,0x8489,0x8478,0x843C,
- 0x8446,0x8469,0x8476,0x848C,0x848E,0x8431,0x846D,0x84C1,
- 0x84CD,0x84D0,0x84E6,0x84BD,0x84D3,0x84CA,0x84BF,0x84BA,
- 0x84E0,0x84A1,0x84B9,0x84B4,0x8497,0x84E5,0x84E3,0x850C,
- 0x750D,0x8538,0x84F0,0x8539,0x851F,0x853A,0x8F45,0x8F46,
- 0x8F47,0x8F48,0x8F49,0x8F4A,0x8F4B,0x8F4C,0x8F4D,0x8F4E,
- 0x8F4F,0x8F50,0x8F51,0x8F52,0x8F53,0x8F54,0x8F55,0x8F56,
- 0x8F57,0x8F58,0x8F59,0x8F5A,0x8F5B,0x8F5C,0x8F5D,0x8F5E,
- 0x8F5F,0x8F60,0x8F61,0x8F62,0x8F63,0x8F64,0x8F65,0x8F6A,
- 0x8F80,0x8F8C,0x8F92,0x8F9D,0x8FA0,0x8FA1,0x8FA2,0x8FA4,
- 0x8FA5,0x8FA6,0x8FA7,0x8FAA,0x8FAC,0x8FAD,0x8FAE,0x8FAF,
- 0x8FB2,0x8FB3,0x8FB4,0x8FB5,0x8FB7,0x8FB8,0x8FBA,0x8FBB,
- 0x8FBC,0x8FBF,0x8FC0,0x8FC3,0x8FC6,0x8FC9,0x8FCA,0x8FCB,
- 0x8FCC,0x8FCD,0x8FCF,0x8FD2,0x8FD6,0x8FD7,0x8FDA,0x8FE0,
- 0x8FE1,0x8FE3,0x8FE7,0x8FEC,0x8FEF,0x8FF1,0x8FF2,0x8FF4,
- 0x8FF5,0x8FF6,0x8FFA,0x8FFB,0x8FFC,0x8FFE,0x8FFF,0x9007,
- 0x9008,0x900C,0x900E,0x9013,0x9015,0x9018,0x8556,0x853B,
- 0x84FF,0x84FC,0x8559,0x8548,0x8568,0x8564,0x855E,0x857A,
- 0x77A2,0x8543,0x8572,0x857B,0x85A4,0x85A8,0x8587,0x858F,
- 0x8579,0x85AE,0x859C,0x8585,0x85B9,0x85B7,0x85B0,0x85D3,
- 0x85C1,0x85DC,0x85FF,0x8627,0x8605,0x8629,0x8616,0x863C,
- 0x5EFE,0x5F08,0x593C,0x5941,0x8037,0x5955,0x595A,0x5958,
- 0x530F,0x5C22,0x5C25,0x5C2C,0x5C34,0x624C,0x626A,0x629F,
- 0x62BB,0x62CA,0x62DA,0x62D7,0x62EE,0x6322,0x62F6,0x6339,
- 0x634B,0x6343,0x63AD,0x63F6,0x6371,0x637A,0x638E,0x63B4,
- 0x636D,0x63AC,0x638A,0x6369,0x63AE,0x63BC,0x63F2,0x63F8,
- 0x63E0,0x63FF,0x63C4,0x63DE,0x63CE,0x6452,0x63C6,0x63BE,
- 0x6445,0x6441,0x640B,0x641B,0x6420,0x640C,0x6426,0x6421,
- 0x645E,0x6484,0x646D,0x6496,0x9019,0x901C,0x9023,0x9024,
- 0x9025,0x9027,0x9028,0x9029,0x902A,0x902B,0x902C,0x9030,
- 0x9031,0x9032,0x9033,0x9034,0x9037,0x9039,0x903A,0x903D,
- 0x903F,0x9040,0x9043,0x9045,0x9046,0x9048,0x9049,0x904A,
- 0x904B,0x904C,0x904E,0x9054,0x9055,0x9056,0x9059,0x905A,
- 0x905C,0x905D,0x905E,0x905F,0x9060,0x9061,0x9064,0x9066,
- 0x9067,0x9069,0x906A,0x906B,0x906C,0x906F,0x9070,0x9071,
- 0x9072,0x9073,0x9076,0x9077,0x9078,0x9079,0x907A,0x907B,
- 0x907C,0x907E,0x9081,0x9084,0x9085,0x9086,0x9087,0x9089,
- 0x908A,0x908C,0x908D,0x908E,0x908F,0x9090,0x9092,0x9094,
- 0x9096,0x9098,0x909A,0x909C,0x909E,0x909F,0x90A0,0x90A4,
- 0x90A5,0x90A7,0x90A8,0x90A9,0x90AB,0x90AD,0x90B2,0x90B7,
- 0x90BC,0x90BD,0x90BF,0x90C0,0x647A,0x64B7,0x64B8,0x6499,
- 0x64BA,0x64C0,0x64D0,0x64D7,0x64E4,0x64E2,0x6509,0x6525,
- 0x652E,0x5F0B,0x5FD2,0x7519,0x5F11,0x535F,0x53F1,0x53FD,
- 0x53E9,0x53E8,0x53FB,0x5412,0x5416,0x5406,0x544B,0x5452,
- 0x5453,0x5454,0x5456,0x5443,0x5421,0x5457,0x5459,0x5423,
- 0x5432,0x5482,0x5494,0x5477,0x5471,0x5464,0x549A,0x549B,
- 0x5484,0x5476,0x5466,0x549D,0x54D0,0x54AD,0x54C2,0x54B4,
- 0x54D2,0x54A7,0x54A6,0x54D3,0x54D4,0x5472,0x54A3,0x54D5,
- 0x54BB,0x54BF,0x54CC,0x54D9,0x54DA,0x54DC,0x54A9,0x54AA,
- 0x54A4,0x54DD,0x54CF,0x54DE,0x551B,0x54E7,0x5520,0x54FD,
- 0x5514,0x54F3,0x5522,0x5523,0x550F,0x5511,0x5527,0x552A,
- 0x5567,0x558F,0x55B5,0x5549,0x556D,0x5541,0x5555,0x553F,
- 0x5550,0x553C,0x90C2,0x90C3,0x90C6,0x90C8,0x90C9,0x90CB,
- 0x90CC,0x90CD,0x90D2,0x90D4,0x90D5,0x90D6,0x90D8,0x90D9,
- 0x90DA,0x90DE,0x90DF,0x90E0,0x90E3,0x90E4,0x90E5,0x90E9,
- 0x90EA,0x90EC,0x90EE,0x90F0,0x90F1,0x90F2,0x90F3,0x90F5,
- 0x90F6,0x90F7,0x90F9,0x90FA,0x90FB,0x90FC,0x90FF,0x9100,
- 0x9101,0x9103,0x9105,0x9106,0x9107,0x9108,0x9109,0x910A,
- 0x910B,0x910C,0x910D,0x910E,0x910F,0x9110,0x9111,0x9112,
- 0x9113,0x9114,0x9115,0x9116,0x9117,0x9118,0x911A,0x911B,
- 0x911C,0x911D,0x911F,0x9120,0x9121,0x9124,0x9125,0x9126,
- 0x9127,0x9128,0x9129,0x912A,0x912B,0x912C,0x912D,0x912E,
- 0x9130,0x9132,0x9133,0x9134,0x9135,0x9136,0x9137,0x9138,
- 0x913A,0x913B,0x913C,0x913D,0x913E,0x913F,0x9140,0x9141,
- 0x9142,0x9144,0x5537,0x5556,0x5575,0x5576,0x5577,0x5533,
- 0x5530,0x555C,0x558B,0x55D2,0x5583,0x55B1,0x55B9,0x5588,
- 0x5581,0x559F,0x557E,0x55D6,0x5591,0x557B,0x55DF,0x55BD,
- 0x55BE,0x5594,0x5599,0x55EA,0x55F7,0x55C9,0x561F,0x55D1,
- 0x55EB,0x55EC,0x55D4,0x55E6,0x55DD,0x55C4,0x55EF,0x55E5,
- 0x55F2,0x55F3,0x55CC,0x55CD,0x55E8,0x55F5,0x55E4,0x8F94,
- 0x561E,0x5608,0x560C,0x5601,0x5624,0x5623,0x55FE,0x5600,
- 0x5627,0x562D,0x5658,0x5639,0x5657,0x562C,0x564D,0x5662,
- 0x5659,0x565C,0x564C,0x5654,0x5686,0x5664,0x5671,0x566B,
- 0x567B,0x567C,0x5685,0x5693,0x56AF,0x56D4,0x56D7,0x56DD,
- 0x56E1,0x56F5,0x56EB,0x56F9,0x56FF,0x5704,0x570A,0x5709,
- 0x571C,0x5E0F,0x5E19,0x5E14,0x5E11,0x5E31,0x5E3B,0x5E3C,
- 0x9145,0x9147,0x9148,0x9151,0x9153,0x9154,0x9155,0x9156,
- 0x9158,0x9159,0x915B,0x915C,0x915F,0x9160,0x9166,0x9167,
- 0x9168,0x916B,0x916D,0x9173,0x917A,0x917B,0x917C,0x9180,
- 0x9181,0x9182,0x9183,0x9184,0x9186,0x9188,0x918A,0x918E,
- 0x918F,0x9193,0x9194,0x9195,0x9196,0x9197,0x9198,0x9199,
- 0x919C,0x919D,0x919E,0x919F,0x91A0,0x91A1,0x91A4,0x91A5,
- 0x91A6,0x91A7,0x91A8,0x91A9,0x91AB,0x91AC,0x91B0,0x91B1,
- 0x91B2,0x91B3,0x91B6,0x91B7,0x91B8,0x91B9,0x91BB,0x91BC,
- 0x91BD,0x91BE,0x91BF,0x91C0,0x91C1,0x91C2,0x91C3,0x91C4,
- 0x91C5,0x91C6,0x91C8,0x91CB,0x91D0,0x91D2,0x91D3,0x91D4,
- 0x91D5,0x91D6,0x91D7,0x91D8,0x91D9,0x91DA,0x91DB,0x91DD,
- 0x91DE,0x91DF,0x91E0,0x91E1,0x91E2,0x91E3,0x91E4,0x91E5,
- 0x5E37,0x5E44,0x5E54,0x5E5B,0x5E5E,0x5E61,0x5C8C,0x5C7A,
- 0x5C8D,0x5C90,0x5C96,0x5C88,0x5C98,0x5C99,0x5C91,0x5C9A,
- 0x5C9C,0x5CB5,0x5CA2,0x5CBD,0x5CAC,0x5CAB,0x5CB1,0x5CA3,
- 0x5CC1,0x5CB7,0x5CC4,0x5CD2,0x5CE4,0x5CCB,0x5CE5,0x5D02,
- 0x5D03,0x5D27,0x5D26,0x5D2E,0x5D24,0x5D1E,0x5D06,0x5D1B,
- 0x5D58,0x5D3E,0x5D34,0x5D3D,0x5D6C,0x5D5B,0x5D6F,0x5D5D,
- 0x5D6B,0x5D4B,0x5D4A,0x5D69,0x5D74,0x5D82,0x5D99,0x5D9D,
- 0x8C73,0x5DB7,0x5DC5,0x5F73,0x5F77,0x5F82,0x5F87,0x5F89,
- 0x5F8C,0x5F95,0x5F99,0x5F9C,0x5FA8,0x5FAD,0x5FB5,0x5FBC,
- 0x8862,0x5F61,0x72AD,0x72B0,0x72B4,0x72B7,0x72B8,0x72C3,
- 0x72C1,0x72CE,0x72CD,0x72D2,0x72E8,0x72EF,0x72E9,0x72F2,
- 0x72F4,0x72F7,0x7301,0x72F3,0x7303,0x72FA,0x91E6,0x91E7,
- 0x91E8,0x91E9,0x91EA,0x91EB,0x91EC,0x91ED,0x91EE,0x91EF,
- 0x91F0,0x91F1,0x91F2,0x91F3,0x91F4,0x91F5,0x91F6,0x91F7,
- 0x91F8,0x91F9,0x91FA,0x91FB,0x91FC,0x91FD,0x91FE,0x91FF,
- 0x9200,0x9201,0x9202,0x9203,0x9204,0x9205,0x9206,0x9207,
- 0x9208,0x9209,0x920A,0x920B,0x920C,0x920D,0x920E,0x920F,
- 0x9210,0x9211,0x9212,0x9213,0x9214,0x9215,0x9216,0x9217,
- 0x9218,0x9219,0x921A,0x921B,0x921C,0x921D,0x921E,0x921F,
- 0x9220,0x9221,0x9222,0x9223,0x9224,0x9225,0x9226,0x9227,
- 0x9228,0x9229,0x922A,0x922B,0x922C,0x922D,0x922E,0x922F,
- 0x9230,0x9231,0x9232,0x9233,0x9234,0x9235,0x9236,0x9237,
- 0x9238,0x9239,0x923A,0x923B,0x923C,0x923D,0x923E,0x923F,
- 0x9240,0x9241,0x9242,0x9243,0x9244,0x9245,0x72FB,0x7317,
- 0x7313,0x7321,0x730A,0x731E,0x731D,0x7315,0x7322,0x7339,
- 0x7325,0x732C,0x7338,0x7331,0x7350,0x734D,0x7357,0x7360,
- 0x736C,0x736F,0x737E,0x821B,0x5925,0x98E7,0x5924,0x5902,
- 0x9963,0x9967,0x9968,0x9969,0x996A,0x996B,0x996C,0x9974,
- 0x9977,0x997D,0x9980,0x9984,0x9987,0x998A,0x998D,0x9990,
- 0x9991,0x9993,0x9994,0x9995,0x5E80,0x5E91,0x5E8B,0x5E96,
- 0x5EA5,0x5EA0,0x5EB9,0x5EB5,0x5EBE,0x5EB3,0x8D53,0x5ED2,
- 0x5ED1,0x5EDB,0x5EE8,0x5EEA,0x81BA,0x5FC4,0x5FC9,0x5FD6,
- 0x5FCF,0x6003,0x5FEE,0x6004,0x5FE1,0x5FE4,0x5FFE,0x6005,
- 0x6006,0x5FEA,0x5FED,0x5FF8,0x6019,0x6035,0x6026,0x601B,
- 0x600F,0x600D,0x6029,0x602B,0x600A,0x603F,0x6021,0x6078,
- 0x6079,0x607B,0x607A,0x6042,0x9246,0x9247,0x9248,0x9249,
- 0x924A,0x924B,0x924C,0x924D,0x924E,0x924F,0x9250,0x9251,
- 0x9252,0x9253,0x9254,0x9255,0x9256,0x9257,0x9258,0x9259,
- 0x925A,0x925B,0x925C,0x925D,0x925E,0x925F,0x9260,0x9261,
- 0x9262,0x9263,0x9264,0x9265,0x9266,0x9267,0x9268,0x9269,
- 0x926A,0x926B,0x926C,0x926D,0x926E,0x926F,0x9270,0x9271,
- 0x9272,0x9273,0x9275,0x9276,0x9277,0x9278,0x9279,0x927A,
- 0x927B,0x927C,0x927D,0x927E,0x927F,0x9280,0x9281,0x9282,
- 0x9283,0x9284,0x9285,0x9286,0x9287,0x9288,0x9289,0x928A,
- 0x928B,0x928C,0x928D,0x928F,0x9290,0x9291,0x9292,0x9293,
- 0x9294,0x9295,0x9296,0x9297,0x9298,0x9299,0x929A,0x929B,
- 0x929C,0x929D,0x929E,0x929F,0x92A0,0x92A1,0x92A2,0x92A3,
- 0x92A4,0x92A5,0x92A6,0x92A7,0x606A,0x607D,0x6096,0x609A,
- 0x60AD,0x609D,0x6083,0x6092,0x608C,0x609B,0x60EC,0x60BB,
- 0x60B1,0x60DD,0x60D8,0x60C6,0x60DA,0x60B4,0x6120,0x6126,
- 0x6115,0x6123,0x60F4,0x6100,0x610E,0x612B,0x614A,0x6175,
- 0x61AC,0x6194,0x61A7,0x61B7,0x61D4,0x61F5,0x5FDD,0x96B3,
- 0x95E9,0x95EB,0x95F1,0x95F3,0x95F5,0x95F6,0x95FC,0x95FE,
- 0x9603,0x9604,0x9606,0x9608,0x960A,0x960B,0x960C,0x960D,
- 0x960F,0x9612,0x9615,0x9616,0x9617,0x9619,0x961A,0x4E2C,
- 0x723F,0x6215,0x6C35,0x6C54,0x6C5C,0x6C4A,0x6CA3,0x6C85,
- 0x6C90,0x6C94,0x6C8C,0x6C68,0x6C69,0x6C74,0x6C76,0x6C86,
- 0x6CA9,0x6CD0,0x6CD4,0x6CAD,0x6CF7,0x6CF8,0x6CF1,0x6CD7,
- 0x6CB2,0x6CE0,0x6CD6,0x6CFA,0x6CEB,0x6CEE,0x6CB1,0x6CD3,
- 0x6CEF,0x6CFE,0x92A8,0x92A9,0x92AA,0x92AB,0x92AC,0x92AD,
- 0x92AF,0x92B0,0x92B1,0x92B2,0x92B3,0x92B4,0x92B5,0x92B6,
- 0x92B7,0x92B8,0x92B9,0x92BA,0x92BB,0x92BC,0x92BD,0x92BE,
- 0x92BF,0x92C0,0x92C1,0x92C2,0x92C3,0x92C4,0x92C5,0x92C6,
- 0x92C7,0x92C9,0x92CA,0x92CB,0x92CC,0x92CD,0x92CE,0x92CF,
- 0x92D0,0x92D1,0x92D2,0x92D3,0x92D4,0x92D5,0x92D6,0x92D7,
- 0x92D8,0x92D9,0x92DA,0x92DB,0x92DC,0x92DD,0x92DE,0x92DF,
- 0x92E0,0x92E1,0x92E2,0x92E3,0x92E4,0x92E5,0x92E6,0x92E7,
- 0x92E8,0x92E9,0x92EA,0x92EB,0x92EC,0x92ED,0x92EE,0x92EF,
- 0x92F0,0x92F1,0x92F2,0x92F3,0x92F4,0x92F5,0x92F6,0x92F7,
- 0x92F8,0x92F9,0x92FA,0x92FB,0x92FC,0x92FD,0x92FE,0x92FF,
- 0x9300,0x9301,0x9302,0x9303,0x9304,0x9305,0x9306,0x9307,
- 0x9308,0x9309,0x6D39,0x6D27,0x6D0C,0x6D43,0x6D48,0x6D07,
- 0x6D04,0x6D19,0x6D0E,0x6D2B,0x6D4D,0x6D2E,0x6D35,0x6D1A,
- 0x6D4F,0x6D52,0x6D54,0x6D33,0x6D91,0x6D6F,0x6D9E,0x6DA0,
- 0x6D5E,0x6D93,0x6D94,0x6D5C,0x6D60,0x6D7C,0x6D63,0x6E1A,
- 0x6DC7,0x6DC5,0x6DDE,0x6E0E,0x6DBF,0x6DE0,0x6E11,0x6DE6,
- 0x6DDD,0x6DD9,0x6E16,0x6DAB,0x6E0C,0x6DAE,0x6E2B,0x6E6E,
- 0x6E4E,0x6E6B,0x6EB2,0x6E5F,0x6E86,0x6E53,0x6E54,0x6E32,
- 0x6E25,0x6E44,0x6EDF,0x6EB1,0x6E98,0x6EE0,0x6F2D,0x6EE2,
- 0x6EA5,0x6EA7,0x6EBD,0x6EBB,0x6EB7,0x6ED7,0x6EB4,0x6ECF,
- 0x6E8F,0x6EC2,0x6E9F,0x6F62,0x6F46,0x6F47,0x6F24,0x6F15,
- 0x6EF9,0x6F2F,0x6F36,0x6F4B,0x6F74,0x6F2A,0x6F09,0x6F29,
- 0x6F89,0x6F8D,0x6F8C,0x6F78,0x6F72,0x6F7C,0x6F7A,0x6FD1,
- 0x930A,0x930B,0x930C,0x930D,0x930E,0x930F,0x9310,0x9311,
- 0x9312,0x9313,0x9314,0x9315,0x9316,0x9317,0x9318,0x9319,
- 0x931A,0x931B,0x931C,0x931D,0x931E,0x931F,0x9320,0x9321,
- 0x9322,0x9323,0x9324,0x9325,0x9326,0x9327,0x9328,0x9329,
- 0x932A,0x932B,0x932C,0x932D,0x932E,0x932F,0x9330,0x9331,
- 0x9332,0x9333,0x9334,0x9335,0x9336,0x9337,0x9338,0x9339,
- 0x933A,0x933B,0x933C,0x933D,0x933F,0x9340,0x9341,0x9342,
- 0x9343,0x9344,0x9345,0x9346,0x9347,0x9348,0x9349,0x934A,
- 0x934B,0x934C,0x934D,0x934E,0x934F,0x9350,0x9351,0x9352,
- 0x9353,0x9354,0x9355,0x9356,0x9357,0x9358,0x9359,0x935A,
- 0x935B,0x935C,0x935D,0x935E,0x935F,0x9360,0x9361,0x9362,
- 0x9363,0x9364,0x9365,0x9366,0x9367,0x9368,0x9369,0x936B,
- 0x6FC9,0x6FA7,0x6FB9,0x6FB6,0x6FC2,0x6FE1,0x6FEE,0x6FDE,
- 0x6FE0,0x6FEF,0x701A,0x7023,0x701B,0x7039,0x7035,0x704F,
- 0x705E,0x5B80,0x5B84,0x5B95,0x5B93,0x5BA5,0x5BB8,0x752F,
- 0x9A9E,0x6434,0x5BE4,0x5BEE,0x8930,0x5BF0,0x8E47,0x8B07,
- 0x8FB6,0x8FD3,0x8FD5,0x8FE5,0x8FEE,0x8FE4,0x8FE9,0x8FE6,
- 0x8FF3,0x8FE8,0x9005,0x9004,0x900B,0x9026,0x9011,0x900D,
- 0x9016,0x9021,0x9035,0x9036,0x902D,0x902F,0x9044,0x9051,
- 0x9052,0x9050,0x9068,0x9058,0x9062,0x905B,0x66B9,0x9074,
- 0x907D,0x9082,0x9088,0x9083,0x908B,0x5F50,0x5F57,0x5F56,
- 0x5F58,0x5C3B,0x54AB,0x5C50,0x5C59,0x5B71,0x5C63,0x5C66,
- 0x7FBC,0x5F2A,0x5F29,0x5F2D,0x8274,0x5F3C,0x9B3B,0x5C6E,
- 0x5981,0x5983,0x598D,0x59A9,0x59AA,0x59A3,0x936C,0x936D,
- 0x936E,0x936F,0x9370,0x9371,0x9372,0x9373,0x9374,0x9375,
- 0x9376,0x9377,0x9378,0x9379,0x937A,0x937B,0x937C,0x937D,
- 0x937E,0x937F,0x9380,0x9381,0x9382,0x9383,0x9384,0x9385,
- 0x9386,0x9387,0x9388,0x9389,0x938A,0x938B,0x938C,0x938D,
- 0x938E,0x9390,0x9391,0x9392,0x9393,0x9394,0x9395,0x9396,
- 0x9397,0x9398,0x9399,0x939A,0x939B,0x939C,0x939D,0x939E,
- 0x939F,0x93A0,0x93A1,0x93A2,0x93A3,0x93A4,0x93A5,0x93A6,
- 0x93A7,0x93A8,0x93A9,0x93AA,0x93AB,0x93AC,0x93AD,0x93AE,
- 0x93AF,0x93B0,0x93B1,0x93B2,0x93B3,0x93B4,0x93B5,0x93B6,
- 0x93B7,0x93B8,0x93B9,0x93BA,0x93BB,0x93BC,0x93BD,0x93BE,
- 0x93BF,0x93C0,0x93C1,0x93C2,0x93C3,0x93C4,0x93C5,0x93C6,
- 0x93C7,0x93C8,0x93C9,0x93CB,0x93CC,0x93CD,0x5997,0x59CA,
- 0x59AB,0x599E,0x59A4,0x59D2,0x59B2,0x59AF,0x59D7,0x59BE,
- 0x5A05,0x5A06,0x59DD,0x5A08,0x59E3,0x59D8,0x59F9,0x5A0C,
- 0x5A09,0x5A32,0x5A34,0x5A11,0x5A23,0x5A13,0x5A40,0x5A67,
- 0x5A4A,0x5A55,0x5A3C,0x5A62,0x5A75,0x80EC,0x5AAA,0x5A9B,
- 0x5A77,0x5A7A,0x5ABE,0x5AEB,0x5AB2,0x5AD2,0x5AD4,0x5AB8,
- 0x5AE0,0x5AE3,0x5AF1,0x5AD6,0x5AE6,0x5AD8,0x5ADC,0x5B09,
- 0x5B17,0x5B16,0x5B32,0x5B37,0x5B40,0x5C15,0x5C1C,0x5B5A,
- 0x5B65,0x5B73,0x5B51,0x5B53,0x5B62,0x9A75,0x9A77,0x9A78,
- 0x9A7A,0x9A7F,0x9A7D,0x9A80,0x9A81,0x9A85,0x9A88,0x9A8A,
- 0x9A90,0x9A92,0x9A93,0x9A96,0x9A98,0x9A9B,0x9A9C,0x9A9D,
- 0x9A9F,0x9AA0,0x9AA2,0x9AA3,0x9AA5,0x9AA7,0x7E9F,0x7EA1,
- 0x7EA3,0x7EA5,0x7EA8,0x7EA9,0x93CE,0x93CF,0x93D0,0x93D1,
- 0x93D2,0x93D3,0x93D4,0x93D5,0x93D7,0x93D8,0x93D9,0x93DA,
- 0x93DB,0x93DC,0x93DD,0x93DE,0x93DF,0x93E0,0x93E1,0x93E2,
- 0x93E3,0x93E4,0x93E5,0x93E6,0x93E7,0x93E8,0x93E9,0x93EA,
- 0x93EB,0x93EC,0x93ED,0x93EE,0x93EF,0x93F0,0x93F1,0x93F2,
- 0x93F3,0x93F4,0x93F5,0x93F6,0x93F7,0x93F8,0x93F9,0x93FA,
- 0x93FB,0x93FC,0x93FD,0x93FE,0x93FF,0x9400,0x9401,0x9402,
- 0x9403,0x9404,0x9405,0x9406,0x9407,0x9408,0x9409,0x940A,
- 0x940B,0x940C,0x940D,0x940E,0x940F,0x9410,0x9411,0x9412,
- 0x9413,0x9414,0x9415,0x9416,0x9417,0x9418,0x9419,0x941A,
- 0x941B,0x941C,0x941D,0x941E,0x941F,0x9420,0x9421,0x9422,
- 0x9423,0x9424,0x9425,0x9426,0x9427,0x9428,0x9429,0x942A,
- 0x942B,0x942C,0x942D,0x942E,0x7EAD,0x7EB0,0x7EBE,0x7EC0,
- 0x7EC1,0x7EC2,0x7EC9,0x7ECB,0x7ECC,0x7ED0,0x7ED4,0x7ED7,
- 0x7EDB,0x7EE0,0x7EE1,0x7EE8,0x7EEB,0x7EEE,0x7EEF,0x7EF1,
- 0x7EF2,0x7F0D,0x7EF6,0x7EFA,0x7EFB,0x7EFE,0x7F01,0x7F02,
- 0x7F03,0x7F07,0x7F08,0x7F0B,0x7F0C,0x7F0F,0x7F11,0x7F12,
- 0x7F17,0x7F19,0x7F1C,0x7F1B,0x7F1F,0x7F21,0x7F22,0x7F23,
- 0x7F24,0x7F25,0x7F26,0x7F27,0x7F2A,0x7F2B,0x7F2C,0x7F2D,
- 0x7F2F,0x7F30,0x7F31,0x7F32,0x7F33,0x7F35,0x5E7A,0x757F,
- 0x5DDB,0x753E,0x9095,0x738E,0x7391,0x73AE,0x73A2,0x739F,
- 0x73CF,0x73C2,0x73D1,0x73B7,0x73B3,0x73C0,0x73C9,0x73C8,
- 0x73E5,0x73D9,0x987C,0x740A,0x73E9,0x73E7,0x73DE,0x73BA,
- 0x73F2,0x740F,0x742A,0x745B,0x7426,0x7425,0x7428,0x7430,
- 0x742E,0x742C,0x942F,0x9430,0x9431,0x9432,0x9433,0x9434,
- 0x9435,0x9436,0x9437,0x9438,0x9439,0x943A,0x943B,0x943C,
- 0x943D,0x943F,0x9440,0x9441,0x9442,0x9443,0x9444,0x9445,
- 0x9446,0x9447,0x9448,0x9449,0x944A,0x944B,0x944C,0x944D,
- 0x944E,0x944F,0x9450,0x9451,0x9452,0x9453,0x9454,0x9455,
- 0x9456,0x9457,0x9458,0x9459,0x945A,0x945B,0x945C,0x945D,
- 0x945E,0x945F,0x9460,0x9461,0x9462,0x9463,0x9464,0x9465,
- 0x9466,0x9467,0x9468,0x9469,0x946A,0x946C,0x946D,0x946E,
- 0x946F,0x9470,0x9471,0x9472,0x9473,0x9474,0x9475,0x9476,
- 0x9477,0x9478,0x9479,0x947A,0x947B,0x947C,0x947D,0x947E,
- 0x947F,0x9480,0x9481,0x9482,0x9483,0x9484,0x9491,0x9496,
- 0x9498,0x94C7,0x94CF,0x94D3,0x94D4,0x94DA,0x94E6,0x94FB,
- 0x951C,0x9520,0x741B,0x741A,0x7441,0x745C,0x7457,0x7455,
- 0x7459,0x7477,0x746D,0x747E,0x749C,0x748E,0x7480,0x7481,
- 0x7487,0x748B,0x749E,0x74A8,0x74A9,0x7490,0x74A7,0x74D2,
- 0x74BA,0x97EA,0x97EB,0x97EC,0x674C,0x6753,0x675E,0x6748,
- 0x6769,0x67A5,0x6787,0x676A,0x6773,0x6798,0x67A7,0x6775,
- 0x67A8,0x679E,0x67AD,0x678B,0x6777,0x677C,0x67F0,0x6809,
- 0x67D8,0x680A,0x67E9,0x67B0,0x680C,0x67D9,0x67B5,0x67DA,
- 0x67B3,0x67DD,0x6800,0x67C3,0x67B8,0x67E2,0x680E,0x67C1,
- 0x67FD,0x6832,0x6833,0x6860,0x6861,0x684E,0x6862,0x6844,
- 0x6864,0x6883,0x681D,0x6855,0x6866,0x6841,0x6867,0x6840,
- 0x683E,0x684A,0x6849,0x6829,0x68B5,0x688F,0x6874,0x6877,
- 0x6893,0x686B,0x68C2,0x696E,0x68FC,0x691F,0x6920,0x68F9,
- 0x9527,0x9533,0x953D,0x9543,0x9548,0x954B,0x9555,0x955A,
- 0x9560,0x956E,0x9574,0x9575,0x9577,0x9578,0x9579,0x957A,
- 0x957B,0x957C,0x957D,0x957E,0x9580,0x9581,0x9582,0x9583,
- 0x9584,0x9585,0x9586,0x9587,0x9588,0x9589,0x958A,0x958B,
- 0x958C,0x958D,0x958E,0x958F,0x9590,0x9591,0x9592,0x9593,
- 0x9594,0x9595,0x9596,0x9597,0x9598,0x9599,0x959A,0x959B,
- 0x959C,0x959D,0x959E,0x959F,0x95A0,0x95A1,0x95A2,0x95A3,
- 0x95A4,0x95A5,0x95A6,0x95A7,0x95A8,0x95A9,0x95AA,0x95AB,
- 0x95AC,0x95AD,0x95AE,0x95AF,0x95B0,0x95B1,0x95B2,0x95B3,
- 0x95B4,0x95B5,0x95B6,0x95B7,0x95B8,0x95B9,0x95BA,0x95BB,
- 0x95BC,0x95BD,0x95BE,0x95BF,0x95C0,0x95C1,0x95C2,0x95C3,
- 0x95C4,0x95C5,0x95C6,0x95C7,0x95C8,0x95C9,0x95CA,0x95CB,
- 0x6924,0x68F0,0x690B,0x6901,0x6957,0x68E3,0x6910,0x6971,
- 0x6939,0x6960,0x6942,0x695D,0x6984,0x696B,0x6980,0x6998,
- 0x6978,0x6934,0x69CC,0x6987,0x6988,0x69CE,0x6989,0x6966,
- 0x6963,0x6979,0x699B,0x69A7,0x69BB,0x69AB,0x69AD,0x69D4,
- 0x69B1,0x69C1,0x69CA,0x69DF,0x6995,0x69E0,0x698D,0x69FF,
- 0x6A2F,0x69ED,0x6A17,0x6A18,0x6A65,0x69F2,0x6A44,0x6A3E,
- 0x6AA0,0x6A50,0x6A5B,0x6A35,0x6A8E,0x6A79,0x6A3D,0x6A28,
- 0x6A58,0x6A7C,0x6A91,0x6A90,0x6AA9,0x6A97,0x6AAB,0x7337,
- 0x7352,0x6B81,0x6B82,0x6B87,0x6B84,0x6B92,0x6B93,0x6B8D,
- 0x6B9A,0x6B9B,0x6BA1,0x6BAA,0x8F6B,0x8F6D,0x8F71,0x8F72,
- 0x8F73,0x8F75,0x8F76,0x8F78,0x8F77,0x8F79,0x8F7A,0x8F7C,
- 0x8F7E,0x8F81,0x8F82,0x8F84,0x8F87,0x8F8B,0x95CC,0x95CD,
- 0x95CE,0x95CF,0x95D0,0x95D1,0x95D2,0x95D3,0x95D4,0x95D5,
- 0x95D6,0x95D7,0x95D8,0x95D9,0x95DA,0x95DB,0x95DC,0x95DD,
- 0x95DE,0x95DF,0x95E0,0x95E1,0x95E2,0x95E3,0x95E4,0x95E5,
- 0x95E6,0x95E7,0x95EC,0x95FF,0x9607,0x9613,0x9618,0x961B,
- 0x961E,0x9620,0x9623,0x9624,0x9625,0x9626,0x9627,0x9628,
- 0x9629,0x962B,0x962C,0x962D,0x962F,0x9630,0x9637,0x9638,
- 0x9639,0x963A,0x963E,0x9641,0x9643,0x964A,0x964E,0x964F,
- 0x9651,0x9652,0x9653,0x9656,0x9657,0x9658,0x9659,0x965A,
- 0x965C,0x965D,0x965E,0x9660,0x9663,0x9665,0x9666,0x966B,
- 0x966D,0x966E,0x966F,0x9670,0x9671,0x9673,0x9678,0x9679,
- 0x967A,0x967B,0x967C,0x967D,0x967E,0x967F,0x9680,0x9681,
- 0x9682,0x9683,0x9684,0x9687,0x9689,0x968A,0x8F8D,0x8F8E,
- 0x8F8F,0x8F98,0x8F9A,0x8ECE,0x620B,0x6217,0x621B,0x621F,
- 0x6222,0x6221,0x6225,0x6224,0x622C,0x81E7,0x74EF,0x74F4,
- 0x74FF,0x750F,0x7511,0x7513,0x6534,0x65EE,0x65EF,0x65F0,
- 0x660A,0x6619,0x6772,0x6603,0x6615,0x6600,0x7085,0x66F7,
- 0x661D,0x6634,0x6631,0x6636,0x6635,0x8006,0x665F,0x6654,
- 0x6641,0x664F,0x6656,0x6661,0x6657,0x6677,0x6684,0x668C,
- 0x66A7,0x669D,0x66BE,0x66DB,0x66DC,0x66E6,0x66E9,0x8D32,
- 0x8D33,0x8D36,0x8D3B,0x8D3D,0x8D40,0x8D45,0x8D46,0x8D48,
- 0x8D49,0x8D47,0x8D4D,0x8D55,0x8D59,0x89C7,0x89CA,0x89CB,
- 0x89CC,0x89CE,0x89CF,0x89D0,0x89D1,0x726E,0x729F,0x725D,
- 0x7266,0x726F,0x727E,0x727F,0x7284,0x728B,0x728D,0x728F,
- 0x7292,0x6308,0x6332,0x63B0,0x968C,0x968E,0x9691,0x9692,
- 0x9693,0x9695,0x9696,0x969A,0x969B,0x969D,0x969E,0x969F,
- 0x96A0,0x96A1,0x96A2,0x96A3,0x96A4,0x96A5,0x96A6,0x96A8,
- 0x96A9,0x96AA,0x96AB,0x96AC,0x96AD,0x96AE,0x96AF,0x96B1,
- 0x96B2,0x96B4,0x96B5,0x96B7,0x96B8,0x96BA,0x96BB,0x96BF,
- 0x96C2,0x96C3,0x96C8,0x96CA,0x96CB,0x96D0,0x96D1,0x96D3,
- 0x96D4,0x96D6,0x96D7,0x96D8,0x96D9,0x96DA,0x96DB,0x96DC,
- 0x96DD,0x96DE,0x96DF,0x96E1,0x96E2,0x96E3,0x96E4,0x96E5,
- 0x96E6,0x96E7,0x96EB,0x96EC,0x96ED,0x96EE,0x96F0,0x96F1,
- 0x96F2,0x96F4,0x96F5,0x96F8,0x96FA,0x96FB,0x96FC,0x96FD,
- 0x96FF,0x9702,0x9703,0x9705,0x970A,0x970B,0x970C,0x9710,
- 0x9711,0x9712,0x9714,0x9715,0x9717,0x9718,0x9719,0x971A,
- 0x971B,0x971D,0x971F,0x9720,0x643F,0x64D8,0x8004,0x6BEA,
- 0x6BF3,0x6BFD,0x6BF5,0x6BF9,0x6C05,0x6C07,0x6C06,0x6C0D,
- 0x6C15,0x6C18,0x6C19,0x6C1A,0x6C21,0x6C29,0x6C24,0x6C2A,
- 0x6C32,0x6535,0x6555,0x656B,0x724D,0x7252,0x7256,0x7230,
- 0x8662,0x5216,0x809F,0x809C,0x8093,0x80BC,0x670A,0x80BD,
- 0x80B1,0x80AB,0x80AD,0x80B4,0x80B7,0x80E7,0x80E8,0x80E9,
- 0x80EA,0x80DB,0x80C2,0x80C4,0x80D9,0x80CD,0x80D7,0x6710,
- 0x80DD,0x80EB,0x80F1,0x80F4,0x80ED,0x810D,0x810E,0x80F2,
- 0x80FC,0x6715,0x8112,0x8C5A,0x8136,0x811E,0x812C,0x8118,
- 0x8132,0x8148,0x814C,0x8153,0x8174,0x8159,0x815A,0x8171,
- 0x8160,0x8169,0x817C,0x817D,0x816D,0x8167,0x584D,0x5AB5,
- 0x8188,0x8182,0x8191,0x6ED5,0x81A3,0x81AA,0x81CC,0x6726,
- 0x81CA,0x81BB,0x9721,0x9722,0x9723,0x9724,0x9725,0x9726,
- 0x9727,0x9728,0x9729,0x972B,0x972C,0x972E,0x972F,0x9731,
- 0x9733,0x9734,0x9735,0x9736,0x9737,0x973A,0x973B,0x973C,
- 0x973D,0x973F,0x9740,0x9741,0x9742,0x9743,0x9744,0x9745,
- 0x9746,0x9747,0x9748,0x9749,0x974A,0x974B,0x974C,0x974D,
- 0x974E,0x974F,0x9750,0x9751,0x9754,0x9755,0x9757,0x9758,
- 0x975A,0x975C,0x975D,0x975F,0x9763,0x9764,0x9766,0x9767,
- 0x9768,0x976A,0x976B,0x976C,0x976D,0x976E,0x976F,0x9770,
- 0x9771,0x9772,0x9775,0x9777,0x9778,0x9779,0x977A,0x977B,
- 0x977D,0x977E,0x977F,0x9780,0x9781,0x9782,0x9783,0x9784,
- 0x9786,0x9787,0x9788,0x9789,0x978A,0x978C,0x978E,0x978F,
- 0x9790,0x9793,0x9795,0x9796,0x9797,0x9799,0x979A,0x979B,
- 0x979C,0x979D,0x81C1,0x81A6,0x6B24,0x6B37,0x6B39,0x6B43,
- 0x6B46,0x6B59,0x98D1,0x98D2,0x98D3,0x98D5,0x98D9,0x98DA,
- 0x6BB3,0x5F40,0x6BC2,0x89F3,0x6590,0x9F51,0x6593,0x65BC,
- 0x65C6,0x65C4,0x65C3,0x65CC,0x65CE,0x65D2,0x65D6,0x7080,
- 0x709C,0x7096,0x709D,0x70BB,0x70C0,0x70B7,0x70AB,0x70B1,
- 0x70E8,0x70CA,0x7110,0x7113,0x7116,0x712F,0x7131,0x7173,
- 0x715C,0x7168,0x7145,0x7172,0x714A,0x7178,0x717A,0x7198,
- 0x71B3,0x71B5,0x71A8,0x71A0,0x71E0,0x71D4,0x71E7,0x71F9,
- 0x721D,0x7228,0x706C,0x7118,0x7166,0x71B9,0x623E,0x623D,
- 0x6243,0x6248,0x6249,0x793B,0x7940,0x7946,0x7949,0x795B,
- 0x795C,0x7953,0x795A,0x7962,0x7957,0x7960,0x796F,0x7967,
- 0x797A,0x7985,0x798A,0x799A,0x79A7,0x79B3,0x5FD1,0x5FD0,
- 0x979E,0x979F,0x97A1,0x97A2,0x97A4,0x97A5,0x97A6,0x97A7,
- 0x97A8,0x97A9,0x97AA,0x97AC,0x97AE,0x97B0,0x97B1,0x97B3,
- 0x97B5,0x97B6,0x97B7,0x97B8,0x97B9,0x97BA,0x97BB,0x97BC,
- 0x97BD,0x97BE,0x97BF,0x97C0,0x97C1,0x97C2,0x97C3,0x97C4,
- 0x97C5,0x97C6,0x97C7,0x97C8,0x97C9,0x97CA,0x97CB,0x97CC,
- 0x97CD,0x97CE,0x97CF,0x97D0,0x97D1,0x97D2,0x97D3,0x97D4,
- 0x97D5,0x97D6,0x97D7,0x97D8,0x97D9,0x97DA,0x97DB,0x97DC,
- 0x97DD,0x97DE,0x97DF,0x97E0,0x97E1,0x97E2,0x97E3,0x97E4,
- 0x97E5,0x97E8,0x97EE,0x97EF,0x97F0,0x97F1,0x97F2,0x97F4,
- 0x97F7,0x97F8,0x97F9,0x97FA,0x97FB,0x97FC,0x97FD,0x97FE,
- 0x97FF,0x9800,0x9801,0x9802,0x9803,0x9804,0x9805,0x9806,
- 0x9807,0x9808,0x9809,0x980A,0x980B,0x980C,0x980D,0x980E,
- 0x603C,0x605D,0x605A,0x6067,0x6041,0x6059,0x6063,0x60AB,
- 0x6106,0x610D,0x615D,0x61A9,0x619D,0x61CB,0x61D1,0x6206,
- 0x8080,0x807F,0x6C93,0x6CF6,0x6DFC,0x77F6,0x77F8,0x7800,
- 0x7809,0x7817,0x7818,0x7811,0x65AB,0x782D,0x781C,0x781D,
- 0x7839,0x783A,0x783B,0x781F,0x783C,0x7825,0x782C,0x7823,
- 0x7829,0x784E,0x786D,0x7856,0x7857,0x7826,0x7850,0x7847,
- 0x784C,0x786A,0x789B,0x7893,0x789A,0x7887,0x789C,0x78A1,
- 0x78A3,0x78B2,0x78B9,0x78A5,0x78D4,0x78D9,0x78C9,0x78EC,
- 0x78F2,0x7905,0x78F4,0x7913,0x7924,0x791E,0x7934,0x9F9B,
- 0x9EF9,0x9EFB,0x9EFC,0x76F1,0x7704,0x770D,0x76F9,0x7707,
- 0x7708,0x771A,0x7722,0x7719,0x772D,0x7726,0x7735,0x7738,
- 0x7750,0x7751,0x7747,0x7743,0x775A,0x7768,0x980F,0x9810,
- 0x9811,0x9812,0x9813,0x9814,0x9815,0x9816,0x9817,0x9818,
- 0x9819,0x981A,0x981B,0x981C,0x981D,0x981E,0x981F,0x9820,
- 0x9821,0x9822,0x9823,0x9824,0x9825,0x9826,0x9827,0x9828,
- 0x9829,0x982A,0x982B,0x982C,0x982D,0x982E,0x982F,0x9830,
- 0x9831,0x9832,0x9833,0x9834,0x9835,0x9836,0x9837,0x9838,
- 0x9839,0x983A,0x983B,0x983C,0x983D,0x983E,0x983F,0x9840,
- 0x9841,0x9842,0x9843,0x9844,0x9845,0x9846,0x9847,0x9848,
- 0x9849,0x984A,0x984B,0x984C,0x984D,0x984E,0x984F,0x9850,
- 0x9851,0x9852,0x9853,0x9854,0x9855,0x9856,0x9857,0x9858,
- 0x9859,0x985A,0x985B,0x985C,0x985D,0x985E,0x985F,0x9860,
- 0x9861,0x9862,0x9863,0x9864,0x9865,0x9866,0x9867,0x9868,
- 0x9869,0x986A,0x986B,0x986C,0x986D,0x986E,0x7762,0x7765,
- 0x777F,0x778D,0x777D,0x7780,0x778C,0x7791,0x779F,0x77A0,
- 0x77B0,0x77B5,0x77BD,0x753A,0x7540,0x754E,0x754B,0x7548,
- 0x755B,0x7572,0x7579,0x7583,0x7F58,0x7F61,0x7F5F,0x8A48,
- 0x7F68,0x7F74,0x7F71,0x7F79,0x7F81,0x7F7E,0x76CD,0x76E5,
- 0x8832,0x9485,0x9486,0x9487,0x948B,0x948A,0x948C,0x948D,
- 0x948F,0x9490,0x9494,0x9497,0x9495,0x949A,0x949B,0x949C,
- 0x94A3,0x94A4,0x94AB,0x94AA,0x94AD,0x94AC,0x94AF,0x94B0,
- 0x94B2,0x94B4,0x94B6,0x94B7,0x94B8,0x94B9,0x94BA,0x94BC,
- 0x94BD,0x94BF,0x94C4,0x94C8,0x94C9,0x94CA,0x94CB,0x94CC,
- 0x94CD,0x94CE,0x94D0,0x94D1,0x94D2,0x94D5,0x94D6,0x94D7,
- 0x94D9,0x94D8,0x94DB,0x94DE,0x94DF,0x94E0,0x94E2,0x94E4,
- 0x94E5,0x94E7,0x94E8,0x94EA,0x986F,0x9870,0x9871,0x9872,
- 0x9873,0x9874,0x988B,0x988E,0x9892,0x9895,0x9899,0x98A3,
- 0x98A8,0x98A9,0x98AA,0x98AB,0x98AC,0x98AD,0x98AE,0x98AF,
- 0x98B0,0x98B1,0x98B2,0x98B3,0x98B4,0x98B5,0x98B6,0x98B7,
- 0x98B8,0x98B9,0x98BA,0x98BB,0x98BC,0x98BD,0x98BE,0x98BF,
- 0x98C0,0x98C1,0x98C2,0x98C3,0x98C4,0x98C5,0x98C6,0x98C7,
- 0x98C8,0x98C9,0x98CA,0x98CB,0x98CC,0x98CD,0x98CF,0x98D0,
- 0x98D4,0x98D6,0x98D7,0x98DB,0x98DC,0x98DD,0x98E0,0x98E1,
- 0x98E2,0x98E3,0x98E4,0x98E5,0x98E6,0x98E9,0x98EA,0x98EB,
- 0x98EC,0x98ED,0x98EE,0x98EF,0x98F0,0x98F1,0x98F2,0x98F3,
- 0x98F4,0x98F5,0x98F6,0x98F7,0x98F8,0x98F9,0x98FA,0x98FB,
- 0x98FC,0x98FD,0x98FE,0x98FF,0x9900,0x9901,0x9902,0x9903,
- 0x9904,0x9905,0x9906,0x9907,0x94E9,0x94EB,0x94EE,0x94EF,
- 0x94F3,0x94F4,0x94F5,0x94F7,0x94F9,0x94FC,0x94FD,0x94FF,
- 0x9503,0x9502,0x9506,0x9507,0x9509,0x950A,0x950D,0x950E,
- 0x950F,0x9512,0x9513,0x9514,0x9515,0x9516,0x9518,0x951B,
- 0x951D,0x951E,0x951F,0x9522,0x952A,0x952B,0x9529,0x952C,
- 0x9531,0x9532,0x9534,0x9536,0x9537,0x9538,0x953C,0x953E,
- 0x953F,0x9542,0x9535,0x9544,0x9545,0x9546,0x9549,0x954C,
- 0x954E,0x954F,0x9552,0x9553,0x9554,0x9556,0x9557,0x9558,
- 0x9559,0x955B,0x955E,0x955F,0x955D,0x9561,0x9562,0x9564,
- 0x9565,0x9566,0x9567,0x9568,0x9569,0x956A,0x956B,0x956C,
- 0x956F,0x9571,0x9572,0x9573,0x953A,0x77E7,0x77EC,0x96C9,
- 0x79D5,0x79ED,0x79E3,0x79EB,0x7A06,0x5D47,0x7A03,0x7A02,
- 0x7A1E,0x7A14,0x9908,0x9909,0x990A,0x990B,0x990C,0x990E,
- 0x990F,0x9911,0x9912,0x9913,0x9914,0x9915,0x9916,0x9917,
- 0x9918,0x9919,0x991A,0x991B,0x991C,0x991D,0x991E,0x991F,
- 0x9920,0x9921,0x9922,0x9923,0x9924,0x9925,0x9926,0x9927,
- 0x9928,0x9929,0x992A,0x992B,0x992C,0x992D,0x992F,0x9930,
- 0x9931,0x9932,0x9933,0x9934,0x9935,0x9936,0x9937,0x9938,
- 0x9939,0x993A,0x993B,0x993C,0x993D,0x993E,0x993F,0x9940,
- 0x9941,0x9942,0x9943,0x9944,0x9945,0x9946,0x9947,0x9948,
- 0x9949,0x994A,0x994B,0x994C,0x994D,0x994E,0x994F,0x9950,
- 0x9951,0x9952,0x9953,0x9956,0x9957,0x9958,0x9959,0x995A,
- 0x995B,0x995C,0x995D,0x995E,0x995F,0x9960,0x9961,0x9962,
- 0x9964,0x9966,0x9973,0x9978,0x9979,0x997B,0x997E,0x9982,
- 0x9983,0x9989,0x7A39,0x7A37,0x7A51,0x9ECF,0x99A5,0x7A70,
- 0x7688,0x768E,0x7693,0x7699,0x76A4,0x74DE,0x74E0,0x752C,
- 0x9E20,0x9E22,0x9E28,0x9E29,0x9E2A,0x9E2B,0x9E2C,0x9E32,
- 0x9E31,0x9E36,0x9E38,0x9E37,0x9E39,0x9E3A,0x9E3E,0x9E41,
- 0x9E42,0x9E44,0x9E46,0x9E47,0x9E48,0x9E49,0x9E4B,0x9E4C,
- 0x9E4E,0x9E51,0x9E55,0x9E57,0x9E5A,0x9E5B,0x9E5C,0x9E5E,
- 0x9E63,0x9E66,0x9E67,0x9E68,0x9E69,0x9E6A,0x9E6B,0x9E6C,
- 0x9E71,0x9E6D,0x9E73,0x7592,0x7594,0x7596,0x75A0,0x759D,
- 0x75AC,0x75A3,0x75B3,0x75B4,0x75B8,0x75C4,0x75B1,0x75B0,
- 0x75C3,0x75C2,0x75D6,0x75CD,0x75E3,0x75E8,0x75E6,0x75E4,
- 0x75EB,0x75E7,0x7603,0x75F1,0x75FC,0x75FF,0x7610,0x7600,
- 0x7605,0x760C,0x7617,0x760A,0x7625,0x7618,0x7615,0x7619,
- 0x998C,0x998E,0x999A,0x999B,0x999C,0x999D,0x999E,0x999F,
- 0x99A0,0x99A1,0x99A2,0x99A3,0x99A4,0x99A6,0x99A7,0x99A9,
- 0x99AA,0x99AB,0x99AC,0x99AD,0x99AE,0x99AF,0x99B0,0x99B1,
- 0x99B2,0x99B3,0x99B4,0x99B5,0x99B6,0x99B7,0x99B8,0x99B9,
- 0x99BA,0x99BB,0x99BC,0x99BD,0x99BE,0x99BF,0x99C0,0x99C1,
- 0x99C2,0x99C3,0x99C4,0x99C5,0x99C6,0x99C7,0x99C8,0x99C9,
- 0x99CA,0x99CB,0x99CC,0x99CD,0x99CE,0x99CF,0x99D0,0x99D1,
- 0x99D2,0x99D3,0x99D4,0x99D5,0x99D6,0x99D7,0x99D8,0x99D9,
- 0x99DA,0x99DB,0x99DC,0x99DD,0x99DE,0x99DF,0x99E0,0x99E1,
- 0x99E2,0x99E3,0x99E4,0x99E5,0x99E6,0x99E7,0x99E8,0x99E9,
- 0x99EA,0x99EB,0x99EC,0x99ED,0x99EE,0x99EF,0x99F0,0x99F1,
- 0x99F2,0x99F3,0x99F4,0x99F5,0x99F6,0x99F7,0x99F8,0x99F9,
- 0x761B,0x763C,0x7622,0x7620,0x7640,0x762D,0x7630,0x763F,
- 0x7635,0x7643,0x763E,0x7633,0x764D,0x765E,0x7654,0x765C,
- 0x7656,0x766B,0x766F,0x7FCA,0x7AE6,0x7A78,0x7A79,0x7A80,
- 0x7A86,0x7A88,0x7A95,0x7AA6,0x7AA0,0x7AAC,0x7AA8,0x7AAD,
- 0x7AB3,0x8864,0x8869,0x8872,0x887D,0x887F,0x8882,0x88A2,
- 0x88C6,0x88B7,0x88BC,0x88C9,0x88E2,0x88CE,0x88E3,0x88E5,
- 0x88F1,0x891A,0x88FC,0x88E8,0x88FE,0x88F0,0x8921,0x8919,
- 0x8913,0x891B,0x890A,0x8934,0x892B,0x8936,0x8941,0x8966,
- 0x897B,0x758B,0x80E5,0x76B2,0x76B4,0x77DC,0x8012,0x8014,
- 0x8016,0x801C,0x8020,0x8022,0x8025,0x8026,0x8027,0x8029,
- 0x8028,0x8031,0x800B,0x8035,0x8043,0x8046,0x804D,0x8052,
- 0x8069,0x8071,0x8983,0x9878,0x9880,0x9883,0x99FA,0x99FB,
- 0x99FC,0x99FD,0x99FE,0x99FF,0x9A00,0x9A01,0x9A02,0x9A03,
- 0x9A04,0x9A05,0x9A06,0x9A07,0x9A08,0x9A09,0x9A0A,0x9A0B,
- 0x9A0C,0x9A0D,0x9A0E,0x9A0F,0x9A10,0x9A11,0x9A12,0x9A13,
- 0x9A14,0x9A15,0x9A16,0x9A17,0x9A18,0x9A19,0x9A1A,0x9A1B,
- 0x9A1C,0x9A1D,0x9A1E,0x9A1F,0x9A20,0x9A21,0x9A22,0x9A23,
- 0x9A24,0x9A25,0x9A26,0x9A27,0x9A28,0x9A29,0x9A2A,0x9A2B,
- 0x9A2C,0x9A2D,0x9A2E,0x9A2F,0x9A30,0x9A31,0x9A32,0x9A33,
- 0x9A34,0x9A35,0x9A36,0x9A37,0x9A38,0x9A39,0x9A3A,0x9A3B,
- 0x9A3C,0x9A3D,0x9A3E,0x9A3F,0x9A40,0x9A41,0x9A42,0x9A43,
- 0x9A44,0x9A45,0x9A46,0x9A47,0x9A48,0x9A49,0x9A4A,0x9A4B,
- 0x9A4C,0x9A4D,0x9A4E,0x9A4F,0x9A50,0x9A51,0x9A52,0x9A53,
- 0x9A54,0x9A55,0x9A56,0x9A57,0x9A58,0x9A59,0x9889,0x988C,
- 0x988D,0x988F,0x9894,0x989A,0x989B,0x989E,0x989F,0x98A1,
- 0x98A2,0x98A5,0x98A6,0x864D,0x8654,0x866C,0x866E,0x867F,
- 0x867A,0x867C,0x867B,0x86A8,0x868D,0x868B,0x86AC,0x869D,
- 0x86A7,0x86A3,0x86AA,0x8693,0x86A9,0x86B6,0x86C4,0x86B5,
- 0x86CE,0x86B0,0x86BA,0x86B1,0x86AF,0x86C9,0x86CF,0x86B4,
- 0x86E9,0x86F1,0x86F2,0x86ED,0x86F3,0x86D0,0x8713,0x86DE,
- 0x86F4,0x86DF,0x86D8,0x86D1,0x8703,0x8707,0x86F8,0x8708,
- 0x870A,0x870D,0x8709,0x8723,0x873B,0x871E,0x8725,0x872E,
- 0x871A,0x873E,0x8748,0x8734,0x8731,0x8729,0x8737,0x873F,
- 0x8782,0x8722,0x877D,0x877E,0x877B,0x8760,0x8770,0x874C,
- 0x876E,0x878B,0x8753,0x8763,0x877C,0x8764,0x8759,0x8765,
- 0x8793,0x87AF,0x87A8,0x87D2,0x9A5A,0x9A5B,0x9A5C,0x9A5D,
- 0x9A5E,0x9A5F,0x9A60,0x9A61,0x9A62,0x9A63,0x9A64,0x9A65,
- 0x9A66,0x9A67,0x9A68,0x9A69,0x9A6A,0x9A6B,0x9A72,0x9A83,
- 0x9A89,0x9A8D,0x9A8E,0x9A94,0x9A95,0x9A99,0x9AA6,0x9AA9,
- 0x9AAA,0x9AAB,0x9AAC,0x9AAD,0x9AAE,0x9AAF,0x9AB2,0x9AB3,
- 0x9AB4,0x9AB5,0x9AB9,0x9ABB,0x9ABD,0x9ABE,0x9ABF,0x9AC3,
- 0x9AC4,0x9AC6,0x9AC7,0x9AC8,0x9AC9,0x9ACA,0x9ACD,0x9ACE,
- 0x9ACF,0x9AD0,0x9AD2,0x9AD4,0x9AD5,0x9AD6,0x9AD7,0x9AD9,
- 0x9ADA,0x9ADB,0x9ADC,0x9ADD,0x9ADE,0x9AE0,0x9AE2,0x9AE3,
- 0x9AE4,0x9AE5,0x9AE7,0x9AE8,0x9AE9,0x9AEA,0x9AEC,0x9AEE,
- 0x9AF0,0x9AF1,0x9AF2,0x9AF3,0x9AF4,0x9AF5,0x9AF6,0x9AF7,
- 0x9AF8,0x9AFA,0x9AFC,0x9AFD,0x9AFE,0x9AFF,0x9B00,0x9B01,
- 0x9B02,0x9B04,0x9B05,0x9B06,0x87C6,0x8788,0x8785,0x87AD,
- 0x8797,0x8783,0x87AB,0x87E5,0x87AC,0x87B5,0x87B3,0x87CB,
- 0x87D3,0x87BD,0x87D1,0x87C0,0x87CA,0x87DB,0x87EA,0x87E0,
- 0x87EE,0x8816,0x8813,0x87FE,0x880A,0x881B,0x8821,0x8839,
- 0x883C,0x7F36,0x7F42,0x7F44,0x7F45,0x8210,0x7AFA,0x7AFD,
- 0x7B08,0x7B03,0x7B04,0x7B15,0x7B0A,0x7B2B,0x7B0F,0x7B47,
- 0x7B38,0x7B2A,0x7B19,0x7B2E,0x7B31,0x7B20,0x7B25,0x7B24,
- 0x7B33,0x7B3E,0x7B1E,0x7B58,0x7B5A,0x7B45,0x7B75,0x7B4C,
- 0x7B5D,0x7B60,0x7B6E,0x7B7B,0x7B62,0x7B72,0x7B71,0x7B90,
- 0x7BA6,0x7BA7,0x7BB8,0x7BAC,0x7B9D,0x7BA8,0x7B85,0x7BAA,
- 0x7B9C,0x7BA2,0x7BAB,0x7BB4,0x7BD1,0x7BC1,0x7BCC,0x7BDD,
- 0x7BDA,0x7BE5,0x7BE6,0x7BEA,0x7C0C,0x7BFE,0x7BFC,0x7C0F,
- 0x7C16,0x7C0B,0x9B07,0x9B09,0x9B0A,0x9B0B,0x9B0C,0x9B0D,
- 0x9B0E,0x9B10,0x9B11,0x9B12,0x9B14,0x9B15,0x9B16,0x9B17,
- 0x9B18,0x9B19,0x9B1A,0x9B1B,0x9B1C,0x9B1D,0x9B1E,0x9B20,
- 0x9B21,0x9B22,0x9B24,0x9B25,0x9B26,0x9B27,0x9B28,0x9B29,
- 0x9B2A,0x9B2B,0x9B2C,0x9B2D,0x9B2E,0x9B30,0x9B31,0x9B33,
- 0x9B34,0x9B35,0x9B36,0x9B37,0x9B38,0x9B39,0x9B3A,0x9B3D,
- 0x9B3E,0x9B3F,0x9B40,0x9B46,0x9B4A,0x9B4B,0x9B4C,0x9B4E,
- 0x9B50,0x9B52,0x9B53,0x9B55,0x9B56,0x9B57,0x9B58,0x9B59,
- 0x9B5A,0x9B5B,0x9B5C,0x9B5D,0x9B5E,0x9B5F,0x9B60,0x9B61,
- 0x9B62,0x9B63,0x9B64,0x9B65,0x9B66,0x9B67,0x9B68,0x9B69,
- 0x9B6A,0x9B6B,0x9B6C,0x9B6D,0x9B6E,0x9B6F,0x9B70,0x9B71,
- 0x9B72,0x9B73,0x9B74,0x9B75,0x9B76,0x9B77,0x9B78,0x9B79,
- 0x9B7A,0x9B7B,0x7C1F,0x7C2A,0x7C26,0x7C38,0x7C41,0x7C40,
- 0x81FE,0x8201,0x8202,0x8204,0x81EC,0x8844,0x8221,0x8222,
- 0x8223,0x822D,0x822F,0x8228,0x822B,0x8238,0x823B,0x8233,
- 0x8234,0x823E,0x8244,0x8249,0x824B,0x824F,0x825A,0x825F,
- 0x8268,0x887E,0x8885,0x8888,0x88D8,0x88DF,0x895E,0x7F9D,
- 0x7F9F,0x7FA7,0x7FAF,0x7FB0,0x7FB2,0x7C7C,0x6549,0x7C91,
- 0x7C9D,0x7C9C,0x7C9E,0x7CA2,0x7CB2,0x7CBC,0x7CBD,0x7CC1,
- 0x7CC7,0x7CCC,0x7CCD,0x7CC8,0x7CC5,0x7CD7,0x7CE8,0x826E,
- 0x66A8,0x7FBF,0x7FCE,0x7FD5,0x7FE5,0x7FE1,0x7FE6,0x7FE9,
- 0x7FEE,0x7FF3,0x7CF8,0x7D77,0x7DA6,0x7DAE,0x7E47,0x7E9B,
- 0x9EB8,0x9EB4,0x8D73,0x8D84,0x8D94,0x8D91,0x8DB1,0x8D67,
- 0x8D6D,0x8C47,0x8C49,0x914A,0x9150,0x914E,0x914F,0x9164,
- 0x9B7C,0x9B7D,0x9B7E,0x9B7F,0x9B80,0x9B81,0x9B82,0x9B83,
- 0x9B84,0x9B85,0x9B86,0x9B87,0x9B88,0x9B89,0x9B8A,0x9B8B,
- 0x9B8C,0x9B8D,0x9B8E,0x9B8F,0x9B90,0x9B91,0x9B92,0x9B93,
- 0x9B94,0x9B95,0x9B96,0x9B97,0x9B98,0x9B99,0x9B9A,0x9B9B,
- 0x9B9C,0x9B9D,0x9B9E,0x9B9F,0x9BA0,0x9BA1,0x9BA2,0x9BA3,
- 0x9BA4,0x9BA5,0x9BA6,0x9BA7,0x9BA8,0x9BA9,0x9BAA,0x9BAB,
- 0x9BAC,0x9BAD,0x9BAE,0x9BAF,0x9BB0,0x9BB1,0x9BB2,0x9BB3,
- 0x9BB4,0x9BB5,0x9BB6,0x9BB7,0x9BB8,0x9BB9,0x9BBA,0x9BBB,
- 0x9BBC,0x9BBD,0x9BBE,0x9BBF,0x9BC0,0x9BC1,0x9BC2,0x9BC3,
- 0x9BC4,0x9BC5,0x9BC6,0x9BC7,0x9BC8,0x9BC9,0x9BCA,0x9BCB,
- 0x9BCC,0x9BCD,0x9BCE,0x9BCF,0x9BD0,0x9BD1,0x9BD2,0x9BD3,
- 0x9BD4,0x9BD5,0x9BD6,0x9BD7,0x9BD8,0x9BD9,0x9BDA,0x9BDB,
- 0x9162,0x9161,0x9170,0x9169,0x916F,0x917D,0x917E,0x9172,
- 0x9174,0x9179,0x918C,0x9185,0x9190,0x918D,0x9191,0x91A2,
- 0x91A3,0x91AA,0x91AD,0x91AE,0x91AF,0x91B5,0x91B4,0x91BA,
- 0x8C55,0x9E7E,0x8DB8,0x8DEB,0x8E05,0x8E59,0x8E69,0x8DB5,
- 0x8DBF,0x8DBC,0x8DBA,0x8DC4,0x8DD6,0x8DD7,0x8DDA,0x8DDE,
- 0x8DCE,0x8DCF,0x8DDB,0x8DC6,0x8DEC,0x8DF7,0x8DF8,0x8DE3,
- 0x8DF9,0x8DFB,0x8DE4,0x8E09,0x8DFD,0x8E14,0x8E1D,0x8E1F,
- 0x8E2C,0x8E2E,0x8E23,0x8E2F,0x8E3A,0x8E40,0x8E39,0x8E35,
- 0x8E3D,0x8E31,0x8E49,0x8E41,0x8E42,0x8E51,0x8E52,0x8E4A,
- 0x8E70,0x8E76,0x8E7C,0x8E6F,0x8E74,0x8E85,0x8E8F,0x8E94,
- 0x8E90,0x8E9C,0x8E9E,0x8C78,0x8C82,0x8C8A,0x8C85,0x8C98,
- 0x8C94,0x659B,0x89D6,0x89DE,0x89DA,0x89DC,0x9BDC,0x9BDD,
- 0x9BDE,0x9BDF,0x9BE0,0x9BE1,0x9BE2,0x9BE3,0x9BE4,0x9BE5,
- 0x9BE6,0x9BE7,0x9BE8,0x9BE9,0x9BEA,0x9BEB,0x9BEC,0x9BED,
- 0x9BEE,0x9BEF,0x9BF0,0x9BF1,0x9BF2,0x9BF3,0x9BF4,0x9BF5,
- 0x9BF6,0x9BF7,0x9BF8,0x9BF9,0x9BFA,0x9BFB,0x9BFC,0x9BFD,
- 0x9BFE,0x9BFF,0x9C00,0x9C01,0x9C02,0x9C03,0x9C04,0x9C05,
- 0x9C06,0x9C07,0x9C08,0x9C09,0x9C0A,0x9C0B,0x9C0C,0x9C0D,
- 0x9C0E,0x9C0F,0x9C10,0x9C11,0x9C12,0x9C13,0x9C14,0x9C15,
- 0x9C16,0x9C17,0x9C18,0x9C19,0x9C1A,0x9C1B,0x9C1C,0x9C1D,
- 0x9C1E,0x9C1F,0x9C20,0x9C21,0x9C22,0x9C23,0x9C24,0x9C25,
- 0x9C26,0x9C27,0x9C28,0x9C29,0x9C2A,0x9C2B,0x9C2C,0x9C2D,
- 0x9C2E,0x9C2F,0x9C30,0x9C31,0x9C32,0x9C33,0x9C34,0x9C35,
- 0x9C36,0x9C37,0x9C38,0x9C39,0x9C3A,0x9C3B,0x89E5,0x89EB,
- 0x89EF,0x8A3E,0x8B26,0x9753,0x96E9,0x96F3,0x96EF,0x9706,
- 0x9701,0x9708,0x970F,0x970E,0x972A,0x972D,0x9730,0x973E,
- 0x9F80,0x9F83,0x9F85,0x9F86,0x9F87,0x9F88,0x9F89,0x9F8A,
- 0x9F8C,0x9EFE,0x9F0B,0x9F0D,0x96B9,0x96BC,0x96BD,0x96CE,
- 0x96D2,0x77BF,0x96E0,0x928E,0x92AE,0x92C8,0x933E,0x936A,
- 0x93CA,0x938F,0x943E,0x946B,0x9C7F,0x9C82,0x9C85,0x9C86,
- 0x9C87,0x9C88,0x7A23,0x9C8B,0x9C8E,0x9C90,0x9C91,0x9C92,
- 0x9C94,0x9C95,0x9C9A,0x9C9B,0x9C9E,0x9C9F,0x9CA0,0x9CA1,
- 0x9CA2,0x9CA3,0x9CA5,0x9CA6,0x9CA7,0x9CA8,0x9CA9,0x9CAB,
- 0x9CAD,0x9CAE,0x9CB0,0x9CB1,0x9CB2,0x9CB3,0x9CB4,0x9CB5,
- 0x9CB6,0x9CB7,0x9CBA,0x9CBB,0x9CBC,0x9CBD,0x9CC4,0x9CC5,
- 0x9CC6,0x9CC7,0x9CCA,0x9CCB,0x9C3C,0x9C3D,0x9C3E,0x9C3F,
- 0x9C40,0x9C41,0x9C42,0x9C43,0x9C44,0x9C45,0x9C46,0x9C47,
- 0x9C48,0x9C49,0x9C4A,0x9C4B,0x9C4C,0x9C4D,0x9C4E,0x9C4F,
- 0x9C50,0x9C51,0x9C52,0x9C53,0x9C54,0x9C55,0x9C56,0x9C57,
- 0x9C58,0x9C59,0x9C5A,0x9C5B,0x9C5C,0x9C5D,0x9C5E,0x9C5F,
- 0x9C60,0x9C61,0x9C62,0x9C63,0x9C64,0x9C65,0x9C66,0x9C67,
- 0x9C68,0x9C69,0x9C6A,0x9C6B,0x9C6C,0x9C6D,0x9C6E,0x9C6F,
- 0x9C70,0x9C71,0x9C72,0x9C73,0x9C74,0x9C75,0x9C76,0x9C77,
- 0x9C78,0x9C79,0x9C7A,0x9C7B,0x9C7D,0x9C7E,0x9C80,0x9C83,
- 0x9C84,0x9C89,0x9C8A,0x9C8C,0x9C8F,0x9C93,0x9C96,0x9C97,
- 0x9C98,0x9C99,0x9C9D,0x9CAA,0x9CAC,0x9CAF,0x9CB9,0x9CBE,
- 0x9CBF,0x9CC0,0x9CC1,0x9CC2,0x9CC8,0x9CC9,0x9CD1,0x9CD2,
- 0x9CDA,0x9CDB,0x9CE0,0x9CE1,0x9CCC,0x9CCD,0x9CCE,0x9CCF,
- 0x9CD0,0x9CD3,0x9CD4,0x9CD5,0x9CD7,0x9CD8,0x9CD9,0x9CDC,
- 0x9CDD,0x9CDF,0x9CE2,0x977C,0x9785,0x9791,0x9792,0x9794,
- 0x97AF,0x97AB,0x97A3,0x97B2,0x97B4,0x9AB1,0x9AB0,0x9AB7,
- 0x9E58,0x9AB6,0x9ABA,0x9ABC,0x9AC1,0x9AC0,0x9AC5,0x9AC2,
- 0x9ACB,0x9ACC,0x9AD1,0x9B45,0x9B43,0x9B47,0x9B49,0x9B48,
- 0x9B4D,0x9B51,0x98E8,0x990D,0x992E,0x9955,0x9954,0x9ADF,
- 0x9AE1,0x9AE6,0x9AEF,0x9AEB,0x9AFB,0x9AED,0x9AF9,0x9B08,
- 0x9B0F,0x9B13,0x9B1F,0x9B23,0x9EBD,0x9EBE,0x7E3B,0x9E82,
- 0x9E87,0x9E88,0x9E8B,0x9E92,0x93D6,0x9E9D,0x9E9F,0x9EDB,
- 0x9EDC,0x9EDD,0x9EE0,0x9EDF,0x9EE2,0x9EE9,0x9EE7,0x9EE5,
- 0x9EEA,0x9EEF,0x9F22,0x9F2C,0x9F2F,0x9F39,0x9F37,0x9F3D,
- 0x9F3E,0x9F44,0x9CE3,0x9CE4,0x9CE5,0x9CE6,0x9CE7,0x9CE8,
- 0x9CE9,0x9CEA,0x9CEB,0x9CEC,0x9CED,0x9CEE,0x9CEF,0x9CF0,
- 0x9CF1,0x9CF2,0x9CF3,0x9CF4,0x9CF5,0x9CF6,0x9CF7,0x9CF8,
- 0x9CF9,0x9CFA,0x9CFB,0x9CFC,0x9CFD,0x9CFE,0x9CFF,0x9D00,
- 0x9D01,0x9D02,0x9D03,0x9D04,0x9D05,0x9D06,0x9D07,0x9D08,
- 0x9D09,0x9D0A,0x9D0B,0x9D0C,0x9D0D,0x9D0E,0x9D0F,0x9D10,
- 0x9D11,0x9D12,0x9D13,0x9D14,0x9D15,0x9D16,0x9D17,0x9D18,
- 0x9D19,0x9D1A,0x9D1B,0x9D1C,0x9D1D,0x9D1E,0x9D1F,0x9D20,
- 0x9D21,0x9D22,0x9D23,0x9D24,0x9D25,0x9D26,0x9D27,0x9D28,
- 0x9D29,0x9D2A,0x9D2B,0x9D2C,0x9D2D,0x9D2E,0x9D2F,0x9D30,
- 0x9D31,0x9D32,0x9D33,0x9D34,0x9D35,0x9D36,0x9D37,0x9D38,
- 0x9D39,0x9D3A,0x9D3B,0x9D3C,0x9D3D,0x9D3E,0x9D3F,0x9D40,
- 0x9D41,0x9D42,0xE234,0xE235,0xE236,0xE237,0xE238,0xE239,
- 0xE23A,0xE23B,0xE23C,0xE23D,0xE23E,0xE23F,0xE240,0xE241,
- 0xE242,0xE243,0xE244,0xE245,0xE246,0xE247,0xE248,0xE249,
- 0xE24A,0xE24B,0xE24C,0xE24D,0xE24E,0xE24F,0xE250,0xE251,
- 0xE252,0xE253,0xE254,0xE255,0xE256,0xE257,0xE258,0xE259,
- 0xE25A,0xE25B,0xE25C,0xE25D,0xE25E,0xE25F,0xE260,0xE261,
- 0xE262,0xE263,0xE264,0xE265,0xE266,0xE267,0xE268,0xE269,
- 0xE26A,0xE26B,0xE26C,0xE26D,0xE26E,0xE26F,0xE270,0xE271,
- 0xE272,0xE273,0xE274,0xE275,0xE276,0xE277,0xE278,0xE279,
- 0xE27A,0xE27B,0xE27C,0xE27D,0xE27E,0xE27F,0xE280,0xE281,
- 0xE282,0xE283,0xE284,0xE285,0xE286,0xE287,0xE288,0xE289,
- 0xE28A,0xE28B,0xE28C,0xE28D,0xE28E,0xE28F,0xE290,0xE291,
- 0x9D43,0x9D44,0x9D45,0x9D46,0x9D47,0x9D48,0x9D49,0x9D4A,
- 0x9D4B,0x9D4C,0x9D4D,0x9D4E,0x9D4F,0x9D50,0x9D51,0x9D52,
- 0x9D53,0x9D54,0x9D55,0x9D56,0x9D57,0x9D58,0x9D59,0x9D5A,
- 0x9D5B,0x9D5C,0x9D5D,0x9D5E,0x9D5F,0x9D60,0x9D61,0x9D62,
- 0x9D63,0x9D64,0x9D65,0x9D66,0x9D67,0x9D68,0x9D69,0x9D6A,
- 0x9D6B,0x9D6C,0x9D6D,0x9D6E,0x9D6F,0x9D70,0x9D71,0x9D72,
- 0x9D73,0x9D74,0x9D75,0x9D76,0x9D77,0x9D78,0x9D79,0x9D7A,
- 0x9D7B,0x9D7C,0x9D7D,0x9D7E,0x9D7F,0x9D80,0x9D81,0x9D82,
- 0x9D83,0x9D84,0x9D85,0x9D86,0x9D87,0x9D88,0x9D89,0x9D8A,
- 0x9D8B,0x9D8C,0x9D8D,0x9D8E,0x9D8F,0x9D90,0x9D91,0x9D92,
- 0x9D93,0x9D94,0x9D95,0x9D96,0x9D97,0x9D98,0x9D99,0x9D9A,
- 0x9D9B,0x9D9C,0x9D9D,0x9D9E,0x9D9F,0x9DA0,0x9DA1,0x9DA2,
- 0xE292,0xE293,0xE294,0xE295,0xE296,0xE297,0xE298,0xE299,
- 0xE29A,0xE29B,0xE29C,0xE29D,0xE29E,0xE29F,0xE2A0,0xE2A1,
- 0xE2A2,0xE2A3,0xE2A4,0xE2A5,0xE2A6,0xE2A7,0xE2A8,0xE2A9,
- 0xE2AA,0xE2AB,0xE2AC,0xE2AD,0xE2AE,0xE2AF,0xE2B0,0xE2B1,
- 0xE2B2,0xE2B3,0xE2B4,0xE2B5,0xE2B6,0xE2B7,0xE2B8,0xE2B9,
- 0xE2BA,0xE2BB,0xE2BC,0xE2BD,0xE2BE,0xE2BF,0xE2C0,0xE2C1,
- 0xE2C2,0xE2C3,0xE2C4,0xE2C5,0xE2C6,0xE2C7,0xE2C8,0xE2C9,
- 0xE2CA,0xE2CB,0xE2CC,0xE2CD,0xE2CE,0xE2CF,0xE2D0,0xE2D1,
- 0xE2D2,0xE2D3,0xE2D4,0xE2D5,0xE2D6,0xE2D7,0xE2D8,0xE2D9,
- 0xE2DA,0xE2DB,0xE2DC,0xE2DD,0xE2DE,0xE2DF,0xE2E0,0xE2E1,
- 0xE2E2,0xE2E3,0xE2E4,0xE2E5,0xE2E6,0xE2E7,0xE2E8,0xE2E9,
- 0xE2EA,0xE2EB,0xE2EC,0xE2ED,0xE2EE,0xE2EF,0x9DA3,0x9DA4,
- 0x9DA5,0x9DA6,0x9DA7,0x9DA8,0x9DA9,0x9DAA,0x9DAB,0x9DAC,
- 0x9DAD,0x9DAE,0x9DAF,0x9DB0,0x9DB1,0x9DB2,0x9DB3,0x9DB4,
- 0x9DB5,0x9DB6,0x9DB7,0x9DB8,0x9DB9,0x9DBA,0x9DBB,0x9DBC,
- 0x9DBD,0x9DBE,0x9DBF,0x9DC0,0x9DC1,0x9DC2,0x9DC3,0x9DC4,
- 0x9DC5,0x9DC6,0x9DC7,0x9DC8,0x9DC9,0x9DCA,0x9DCB,0x9DCC,
- 0x9DCD,0x9DCE,0x9DCF,0x9DD0,0x9DD1,0x9DD2,0x9DD3,0x9DD4,
- 0x9DD5,0x9DD6,0x9DD7,0x9DD8,0x9DD9,0x9DDA,0x9DDB,0x9DDC,
- 0x9DDD,0x9DDE,0x9DDF,0x9DE0,0x9DE1,0x9DE2,0x9DE3,0x9DE4,
- 0x9DE5,0x9DE6,0x9DE7,0x9DE8,0x9DE9,0x9DEA,0x9DEB,0x9DEC,
- 0x9DED,0x9DEE,0x9DEF,0x9DF0,0x9DF1,0x9DF2,0x9DF3,0x9DF4,
- 0x9DF5,0x9DF6,0x9DF7,0x9DF8,0x9DF9,0x9DFA,0x9DFB,0x9DFC,
- 0x9DFD,0x9DFE,0x9DFF,0x9E00,0x9E01,0x9E02,0xE2F0,0xE2F1,
- 0xE2F2,0xE2F3,0xE2F4,0xE2F5,0xE2F6,0xE2F7,0xE2F8,0xE2F9,
- 0xE2FA,0xE2FB,0xE2FC,0xE2FD,0xE2FE,0xE2FF,0xE300,0xE301,
- 0xE302,0xE303,0xE304,0xE305,0xE306,0xE307,0xE308,0xE309,
- 0xE30A,0xE30B,0xE30C,0xE30D,0xE30E,0xE30F,0xE310,0xE311,
- 0xE312,0xE313,0xE314,0xE315,0xE316,0xE317,0xE318,0xE319,
- 0xE31A,0xE31B,0xE31C,0xE31D,0xE31E,0xE31F,0xE320,0xE321,
- 0xE322,0xE323,0xE324,0xE325,0xE326,0xE327,0xE328,0xE329,
- 0xE32A,0xE32B,0xE32C,0xE32D,0xE32E,0xE32F,0xE330,0xE331,
- 0xE332,0xE333,0xE334,0xE335,0xE336,0xE337,0xE338,0xE339,
- 0xE33A,0xE33B,0xE33C,0xE33D,0xE33E,0xE33F,0xE340,0xE341,
- 0xE342,0xE343,0xE344,0xE345,0xE346,0xE347,0xE348,0xE349,
- 0xE34A,0xE34B,0xE34C,0xE34D,0x9E03,0x9E04,0x9E05,0x9E06,
- 0x9E07,0x9E08,0x9E09,0x9E0A,0x9E0B,0x9E0C,0x9E0D,0x9E0E,
- 0x9E0F,0x9E10,0x9E11,0x9E12,0x9E13,0x9E14,0x9E15,0x9E16,
- 0x9E17,0x9E18,0x9E19,0x9E1A,0x9E1B,0x9E1C,0x9E1D,0x9E1E,
- 0x9E24,0x9E27,0x9E2E,0x9E30,0x9E34,0x9E3B,0x9E3C,0x9E40,
- 0x9E4D,0x9E50,0x9E52,0x9E53,0x9E54,0x9E56,0x9E59,0x9E5D,
- 0x9E5F,0x9E60,0x9E61,0x9E62,0x9E65,0x9E6E,0x9E6F,0x9E72,
- 0x9E74,0x9E75,0x9E76,0x9E77,0x9E78,0x9E79,0x9E7A,0x9E7B,
- 0x9E7C,0x9E7D,0x9E80,0x9E81,0x9E83,0x9E84,0x9E85,0x9E86,
- 0x9E89,0x9E8A,0x9E8C,0x9E8D,0x9E8E,0x9E8F,0x9E90,0x9E91,
- 0x9E94,0x9E95,0x9E96,0x9E97,0x9E98,0x9E99,0x9E9A,0x9E9B,
- 0x9E9C,0x9E9E,0x9EA0,0x9EA1,0x9EA2,0x9EA3,0x9EA4,0x9EA5,
- 0x9EA7,0x9EA8,0x9EA9,0x9EAA,0xE34E,0xE34F,0xE350,0xE351,
- 0xE352,0xE353,0xE354,0xE355,0xE356,0xE357,0xE358,0xE359,
- 0xE35A,0xE35B,0xE35C,0xE35D,0xE35E,0xE35F,0xE360,0xE361,
- 0xE362,0xE363,0xE364,0xE365,0xE366,0xE367,0xE368,0xE369,
- 0xE36A,0xE36B,0xE36C,0xE36D,0xE36E,0xE36F,0xE370,0xE371,
- 0xE372,0xE373,0xE374,0xE375,0xE376,0xE377,0xE378,0xE379,
- 0xE37A,0xE37B,0xE37C,0xE37D,0xE37E,0xE37F,0xE380,0xE381,
- 0xE382,0xE383,0xE384,0xE385,0xE386,0xE387,0xE388,0xE389,
- 0xE38A,0xE38B,0xE38C,0xE38D,0xE38E,0xE38F,0xE390,0xE391,
- 0xE392,0xE393,0xE394,0xE395,0xE396,0xE397,0xE398,0xE399,
- 0xE39A,0xE39B,0xE39C,0xE39D,0xE39E,0xE39F,0xE3A0,0xE3A1,
- 0xE3A2,0xE3A3,0xE3A4,0xE3A5,0xE3A6,0xE3A7,0xE3A8,0xE3A9,
- 0xE3AA,0xE3AB,0x9EAB,0x9EAC,0x9EAD,0x9EAE,0x9EAF,0x9EB0,
- 0x9EB1,0x9EB2,0x9EB3,0x9EB5,0x9EB6,0x9EB7,0x9EB9,0x9EBA,
- 0x9EBC,0x9EBF,0x9EC0,0x9EC1,0x9EC2,0x9EC3,0x9EC5,0x9EC6,
- 0x9EC7,0x9EC8,0x9ECA,0x9ECB,0x9ECC,0x9ED0,0x9ED2,0x9ED3,
- 0x9ED5,0x9ED6,0x9ED7,0x9ED9,0x9EDA,0x9EDE,0x9EE1,0x9EE3,
- 0x9EE4,0x9EE6,0x9EE8,0x9EEB,0x9EEC,0x9EED,0x9EEE,0x9EF0,
- 0x9EF1,0x9EF2,0x9EF3,0x9EF4,0x9EF5,0x9EF6,0x9EF7,0x9EF8,
- 0x9EFA,0x9EFD,0x9EFF,0x9F00,0x9F01,0x9F02,0x9F03,0x9F04,
- 0x9F05,0x9F06,0x9F07,0x9F08,0x9F09,0x9F0A,0x9F0C,0x9F0F,
- 0x9F11,0x9F12,0x9F14,0x9F15,0x9F16,0x9F18,0x9F1A,0x9F1B,
- 0x9F1C,0x9F1D,0x9F1E,0x9F1F,0x9F21,0x9F23,0x9F24,0x9F25,
- 0x9F26,0x9F27,0x9F28,0x9F29,0x9F2A,0x9F2B,0x9F2D,0x9F2E,
- 0x9F30,0x9F31,0xE3AC,0xE3AD,0xE3AE,0xE3AF,0xE3B0,0xE3B1,
- 0xE3B2,0xE3B3,0xE3B4,0xE3B5,0xE3B6,0xE3B7,0xE3B8,0xE3B9,
- 0xE3BA,0xE3BB,0xE3BC,0xE3BD,0xE3BE,0xE3BF,0xE3C0,0xE3C1,
- 0xE3C2,0xE3C3,0xE3C4,0xE3C5,0xE3C6,0xE3C7,0xE3C8,0xE3C9,
- 0xE3CA,0xE3CB,0xE3CC,0xE3CD,0xE3CE,0xE3CF,0xE3D0,0xE3D1,
- 0xE3D2,0xE3D3,0xE3D4,0xE3D5,0xE3D6,0xE3D7,0xE3D8,0xE3D9,
- 0xE3DA,0xE3DB,0xE3DC,0xE3DD,0xE3DE,0xE3DF,0xE3E0,0xE3E1,
- 0xE3E2,0xE3E3,0xE3E4,0xE3E5,0xE3E6,0xE3E7,0xE3E8,0xE3E9,
- 0xE3EA,0xE3EB,0xE3EC,0xE3ED,0xE3EE,0xE3EF,0xE3F0,0xE3F1,
- 0xE3F2,0xE3F3,0xE3F4,0xE3F5,0xE3F6,0xE3F7,0xE3F8,0xE3F9,
- 0xE3FA,0xE3FB,0xE3FC,0xE3FD,0xE3FE,0xE3FF,0xE400,0xE401,
- 0xE402,0xE403,0xE404,0xE405,0xE406,0xE407,0xE408,0xE409,
- 0x9F32,0x9F33,0x9F34,0x9F35,0x9F36,0x9F38,0x9F3A,0x9F3C,
- 0x9F3F,0x9F40,0x9F41,0x9F42,0x9F43,0x9F45,0x9F46,0x9F47,
- 0x9F48,0x9F49,0x9F4A,0x9F4B,0x9F4C,0x9F4D,0x9F4E,0x9F4F,
- 0x9F52,0x9F53,0x9F54,0x9F55,0x9F56,0x9F57,0x9F58,0x9F59,
- 0x9F5A,0x9F5B,0x9F5C,0x9F5D,0x9F5E,0x9F5F,0x9F60,0x9F61,
- 0x9F62,0x9F63,0x9F64,0x9F65,0x9F66,0x9F67,0x9F68,0x9F69,
- 0x9F6A,0x9F6B,0x9F6C,0x9F6D,0x9F6E,0x9F6F,0x9F70,0x9F71,
- 0x9F72,0x9F73,0x9F74,0x9F75,0x9F76,0x9F77,0x9F78,0x9F79,
- 0x9F7A,0x9F7B,0x9F7C,0x9F7D,0x9F7E,0x9F81,0x9F82,0x9F8D,
- 0x9F8E,0x9F8F,0x9F90,0x9F91,0x9F92,0x9F93,0x9F94,0x9F95,
- 0x9F96,0x9F97,0x9F98,0x9F9C,0x9F9D,0x9F9E,0x9FA1,0x9FA2,
- 0x9FA3,0x9FA4,0x9FA5,0xF92C,0xF979,0xF995,0xF9E7,0xF9F1,
- 0xE40A,0xE40B,0xE40C,0xE40D,0xE40E,0xE40F,0xE410,0xE411,
- 0xE412,0xE413,0xE414,0xE415,0xE416,0xE417,0xE418,0xE419,
- 0xE41A,0xE41B,0xE41C,0xE41D,0xE41E,0xE41F,0xE420,0xE421,
- 0xE422,0xE423,0xE424,0xE425,0xE426,0xE427,0xE428,0xE429,
- 0xE42A,0xE42B,0xE42C,0xE42D,0xE42E,0xE42F,0xE430,0xE431,
- 0xE432,0xE433,0xE434,0xE435,0xE436,0xE437,0xE438,0xE439,
- 0xE43A,0xE43B,0xE43C,0xE43D,0xE43E,0xE43F,0xE440,0xE441,
- 0xE442,0xE443,0xE444,0xE445,0xE446,0xE447,0xE448,0xE449,
- 0xE44A,0xE44B,0xE44C,0xE44D,0xE44E,0xE44F,0xE450,0xE451,
- 0xE452,0xE453,0xE454,0xE455,0xE456,0xE457,0xE458,0xE459,
- 0xE45A,0xE45B,0xE45C,0xE45D,0xE45E,0xE45F,0xE460,0xE461,
- 0xE462,0xE463,0xE464,0xE465,0xE466,0xE467,0xFA0C,0xFA0D,
- 0xFA0E,0xFA0F,0xFA11,0xFA13,0xFA14,0xFA18,0xFA1F,0xFA20,
- 0xFA21,0xFA23,0xFA24,0xFA27,0xFA28,0xFA29,0x2E81,0xE816,
- 0xE817,0xE818,0x2E84,0x3473,0x3447,0x2E88,0x2E8B,0xE81E,
- 0x359E,0x361A,0x360E,0x2E8C,0x2E97,0x396E,0x3918,0xE826,
- 0x39CF,0x39DF,0x3A73,0x39D0,0xE82B,0xE82C,0x3B4E,0x3C6E,
- 0x3CE0,0x2EA7,0xE831,0xE832,0x2EAA,0x4056,0x415F,0x2EAE,
- 0x4337,0x2EB3,0x2EB6,0x2EB7,0xE83B,0x43B1,0x43AC,0x2EBB,
- 0x43DD,0x44D6,0x4661,0x464C,0xE843,0x4723,0x4729,0x477C,
- 0x478D,0x2ECA,0x4947,0x497A,0x497D,0x4982,0x4983,0x4985,
- 0x4986,0x499F,0x499B,0x49B7,0x49B6,0xE854,0xE855,0x4CA3,
- 0x4C9F,0x4CA0,0x4CA1,0x4C77,0x4CA2,0x4D13,0x4D14,0x4D15,
- 0x4D16,0x4D17,0x4D18,0x4D19,0x4DAE,0xE864,0xE468,0xE469,
- 0xE46A,0xE46B,0xE46C,0xE46D,0xE46E,0xE46F,0xE470,0xE471,
- 0xE472,0xE473,0xE474,0xE475,0xE476,0xE477,0xE478,0xE479,
- 0xE47A,0xE47B,0xE47C,0xE47D,0xE47E,0xE47F,0xE480,0xE481,
- 0xE482,0xE483,0xE484,0xE485,0xE486,0xE487,0xE488,0xE489,
- 0xE48A,0xE48B,0xE48C,0xE48D,0xE48E,0xE48F,0xE490,0xE491,
- 0xE492,0xE493,0xE494,0xE495,0xE496,0xE497,0xE498,0xE499,
- 0xE49A,0xE49B,0xE49C,0xE49D,0xE49E,0xE49F,0xE4A0,0xE4A1,
- 0xE4A2,0xE4A3,0xE4A4,0xE4A5,0xE4A6,0xE4A7,0xE4A8,0xE4A9,
- 0xE4AA,0xE4AB,0xE4AC,0xE4AD,0xE4AE,0xE4AF,0xE4B0,0xE4B1,
- 0xE4B2,0xE4B3,0xE4B4,0xE4B5,0xE4B6,0xE4B7,0xE4B8,0xE4B9,
- 0xE4BA,0xE4BB,0xE4BC,0xE4BD,0xE4BE,0xE4BF,0xE4C0,0xE4C1,
- 0xE4C2,0xE4C3,0xE4C4,0xE4C5,0x0080,0x0081,0x0082,0x0083,
- 0x0084,0x0085,0x0086,0x0087,0x0088,0x0089,0x008A,0x008B,
- 0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,0x0092,0x0093,
- 0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,0x009B,
- 0x009C,0x009D,0x009E,0x009F,0x00A0,0x00A1,0x00A2,0x00A3,
- 0x00A5,0x00A6,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,
- 0x00AF,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B8,0x00B9,
- 0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,0x00C0,0x00C1,
- 0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,0x00C8,0x00C9,
- 0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,0x00D0,0x00D1,
- 0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D8,0x00D9,0x00DA,
- 0x00DB,0x00DC,0x00DD,0x00DE,0x00DF,0x00E2,0x00E3,0x00E4,
- 0x00E5,0x00E6,0x00E7,0x00EB,0x00EE,0x00EF,0x00F0,0x00F1,
- 0x00F4,0x00F5,0x00F6,0x00F8,0x00FB,0x00FD,0x00FE,0x00FF,
- 0x0100,0x0102,0x0103,0x0104,0x0105,0x0106,0x0107,0x0108,
- 0x0109,0x010A,0x010B,0x010C,0x010D,0x010E,0x010F,0x0110,
- 0x0111,0x0112,0x0114,0x0115,0x0116,0x0117,0x0118,0x0119,
- 0x011A,0x011C,0x011D,0x011E,0x011F,0x0120,0x0121,0x0122,
- 0x0123,0x0124,0x0125,0x0126,0x0127,0x0128,0x0129,0x012A,
- 0x012C,0x012D,0x012E,0x012F,0x0130,0x0131,0x0132,0x0133,
- 0x0134,0x0135,0x0136,0x0137,0x0138,0x0139,0x013A,0x013B,
- 0x013C,0x013D,0x013E,0x013F,0x0140,0x0141,0x0142,0x0143,
- 0x0145,0x0146,0x0147,0x0149,0x014A,0x014B,0x014C,0x014E,
- 0x014F,0x0150,0x0151,0x0152,0x0153,0x0154,0x0155,0x0156,
- 0x0157,0x0158,0x0159,0x015A,0x015B,0x015C,0x015D,0x015E,
- 0x015F,0x0160,0x0161,0x0162,0x0163,0x0164,0x0165,0x0166,
- 0x0167,0x0168,0x0169,0x016A,0x016C,0x016D,0x016E,0x016F,
- 0x0170,0x0171,0x0172,0x0173,0x0174,0x0175,0x0176,0x0177,
- 0x0178,0x0179,0x017A,0x017B,0x017C,0x017D,0x017E,0x017F,
- 0x0180,0x0181,0x0182,0x0183,0x0184,0x0185,0x0186,0x0187,
- 0x0188,0x0189,0x018A,0x018B,0x018C,0x018D,0x018E,0x018F,
- 0x0190,0x0191,0x0192,0x0193,0x0194,0x0195,0x0196,0x0197,
- 0x0198,0x0199,0x019A,0x019B,0x019C,0x019D,0x019E,0x019F,
- 0x01A0,0x01A1,0x01A2,0x01A3,0x01A4,0x01A5,0x01A6,0x01A7,
- 0x01A8,0x01A9,0x01AA,0x01AB,0x01AC,0x01AD,0x01AE,0x01AF,
- 0x01B0,0x01B1,0x01B2,0x01B3,0x01B4,0x01B5,0x01B6,0x01B7,
- 0x01B8,0x01B9,0x01BA,0x01BB,0x01BC,0x01BD,0x01BE,0x01BF,
- 0x01C0,0x01C1,0x01C2,0x01C3,0x01C4,0x01C5,0x01C6,0x01C7,
- 0x01C8,0x01C9,0x01CA,0x01CB,0x01CC,0x01CD,0x01CF,0x01D1,
- 0x01D3,0x01D5,0x01D7,0x01D9,0x01DB,0x01DD,0x01DE,0x01DF,
- 0x01E0,0x01E1,0x01E2,0x01E3,0x01E4,0x01E5,0x01E6,0x01E7,
- 0x01E8,0x01E9,0x01EA,0x01EB,0x01EC,0x01ED,0x01EE,0x01EF,
- 0x01F0,0x01F1,0x01F2,0x01F3,0x01F4,0x01F5,0x01F6,0x01F7,
- 0x01F8,0x01FA,0x01FB,0x01FC,0x01FD,0x01FE,0x01FF,0x0200,
- 0x0201,0x0202,0x0203,0x0204,0x0205,0x0206,0x0207,0x0208,
- 0x0209,0x020A,0x020B,0x020C,0x020D,0x020E,0x020F,0x0210,
- 0x0211,0x0212,0x0213,0x0214,0x0215,0x0216,0x0217,0x0218,
- 0x0219,0x021A,0x021B,0x021C,0x021D,0x021E,0x021F,0x0220,
- 0x0221,0x0222,0x0223,0x0224,0x0225,0x0226,0x0227,0x0228,
- 0x0229,0x022A,0x022B,0x022C,0x022D,0x022E,0x022F,0x0230,
- 0x0231,0x0232,0x0233,0x0234,0x0235,0x0236,0x0237,0x0238,
- 0x0239,0x023A,0x023B,0x023C,0x023D,0x023E,0x023F,0x0240,
- 0x0241,0x0242,0x0243,0x0244,0x0245,0x0246,0x0247,0x0248,
- 0x0249,0x024A,0x024B,0x024C,0x024D,0x024E,0x024F,0x0250,
- 0x0252,0x0253,0x0254,0x0255,0x0256,0x0257,0x0258,0x0259,
- 0x025A,0x025B,0x025C,0x025D,0x025E,0x025F,0x0260,0x0262,
- 0x0263,0x0264,0x0265,0x0266,0x0267,0x0268,0x0269,0x026A,
- 0x026B,0x026C,0x026D,0x026E,0x026F,0x0270,0x0271,0x0272,
- 0x0273,0x0274,0x0275,0x0276,0x0277,0x0278,0x0279,0x027A,
- 0x027B,0x027C,0x027D,0x027E,0x027F,0x0280,0x0281,0x0282,
- 0x0283,0x0284,0x0285,0x0286,0x0287,0x0288,0x0289,0x028A,
- 0x028B,0x028C,0x028D,0x028E,0x028F,0x0290,0x0291,0x0292,
- 0x0293,0x0294,0x0295,0x0296,0x0297,0x0298,0x0299,0x029A,
- 0x029B,0x029C,0x029D,0x029E,0x029F,0x02A0,0x02A1,0x02A2,
- 0x02A3,0x02A4,0x02A5,0x02A6,0x02A7,0x02A8,0x02A9,0x02AA,
- 0x02AB,0x02AC,0x02AD,0x02AE,0x02AF,0x02B0,0x02B1,0x02B2,
- 0x02B3,0x02B4,0x02B5,0x02B6,0x02B7,0x02B8,0x02B9,0x02BA,
- 0x02BB,0x02BC,0x02BD,0x02BE,0x02BF,0x02C0,0x02C1,0x02C2,
- 0x02C3,0x02C4,0x02C5,0x02C6,0x02C8,0x02CC,0x02CD,0x02CE,
- 0x02CF,0x02D0,0x02D1,0x02D2,0x02D3,0x02D4,0x02D5,0x02D6,
- 0x02D7,0x02D8,0x02DA,0x02DB,0x02DC,0x02DD,0x02DE,0x02DF,
- 0x02E0,0x02E1,0x02E2,0x02E3,0x02E4,0x02E5,0x02E6,0x02E7,
- 0x02E8,0x02E9,0x02EA,0x02EB,0x02EC,0x02ED,0x02EE,0x02EF,
- 0x02F0,0x02F1,0x02F2,0x02F3,0x02F4,0x02F5,0x02F6,0x02F7,
- 0x02F8,0x02F9,0x02FA,0x02FB,0x02FC,0x02FD,0x02FE,0x02FF,
- 0x0300,0x0301,0x0302,0x0303,0x0304,0x0305,0x0306,0x0307,
- 0x0308,0x0309,0x030A,0x030B,0x030C,0x030D,0x030E,0x030F,
- 0x0310,0x0311,0x0312,0x0313,0x0314,0x0315,0x0316,0x0317,
- 0x0318,0x0319,0x031A,0x031B,0x031C,0x031D,0x031E,0x031F,
- 0x0320,0x0321,0x0322,0x0323,0x0324,0x0325,0x0326,0x0327,
- 0x0328,0x0329,0x032A,0x032B,0x032C,0x032D,0x032E,0x032F,
- 0x0330,0x0331,0x0332,0x0333,0x0334,0x0335,0x0336,0x0337,
- 0x0338,0x0339,0x033A,0x033B,0x033C,0x033D,0x033E,0x033F,
- 0x0340,0x0341,0x0342,0x0343,0x0344,0x0345,0x0346,0x0347,
- 0x0348,0x0349,0x034A,0x034B,0x034C,0x034D,0x034E,0x034F,
- 0x0350,0x0351,0x0352,0x0353,0x0354,0x0355,0x0356,0x0357,
- 0x0358,0x0359,0x035A,0x035B,0x035C,0x035D,0x035E,0x035F,
- 0x0360,0x0361,0x0362,0x0363,0x0364,0x0365,0x0366,0x0367,
- 0x0368,0x0369,0x036A,0x036B,0x036C,0x036D,0x036E,0x036F,
- 0x0370,0x0371,0x0372,0x0373,0x0374,0x0375,0x0376,0x0377,
- 0x0378,0x0379,0x037A,0x037B,0x037C,0x037D,0x037E,0x037F,
- 0x0380,0x0381,0x0382,0x0383,0x0384,0x0385,0x0386,0x0387,
- 0x0388,0x0389,0x038A,0x038B,0x038C,0x038D,0x038E,0x038F,
- 0x0390,0x03A2,0x03AA,0x03AB,0x03AC,0x03AD,0x03AE,0x03AF,
- 0x03B0,0x03C2,0x03CA,0x03CB,0x03CC,0x03CD,0x03CE,0x03CF,
- 0x03D0,0x03D1,0x03D2,0x03D3,0x03D4,0x03D5,0x03D6,0x03D7,
- 0x03D8,0x03D9,0x03DA,0x03DB,0x03DC,0x03DD,0x03DE,0x03DF,
- 0x03E0,0x03E1,0x03E2,0x03E3,0x03E4,0x03E5,0x03E6,0x03E7,
- 0x03E8,0x03E9,0x03EA,0x03EB,0x03EC,0x03ED,0x03EE,0x03EF,
- 0x03F0,0x03F1,0x03F2,0x03F3,0x03F4,0x03F5,0x03F6,0x03F7,
- 0x03F8,0x03F9,0x03FA,0x03FB,0x03FC,0x03FD,0x03FE,0x03FF,
- 0x0400,0x0402,0x0403,0x0404,0x0405,0x0406,0x0407,0x0408,
- 0x0409,0x040A,0x040B,0x040C,0x040D,0x040E,0x040F,0x0450,
- 0x2011,0x2012,0x2017,0x201A,0x201B,0x201E,0x201F,0x2020,
- 0x2021,0x2022,0x2023,0x2024,0x2027,0x2028,0x2029,0x202A,
- 0x202B,0x202C,0x202D,0x202E,0x202F,0x2031,0x2034,0x2036,
- 0x2037,0x2038,0x2039,0x203A,0x203C,0x203D,0x203E,0x203F,
- 0x2040,0x2041,0x2042,0x2043,0x2044,0x2045,0x2046,0x2047,
- 0x2048,0x2049,0x204A,0x204B,0x204C,0x204D,0x204E,0x204F,
- 0x2050,0x2051,0x2052,0x2053,0x2054,0x2055,0x2056,0x2057,
- 0x2058,0x2059,0x205A,0x205B,0x205C,0x205D,0x205E,0x205F,
- 0x2060,0x2061,0x2062,0x2063,0x2064,0x2065,0x2066,0x2067,
- 0x2068,0x2069,0x206A,0x206B,0x206C,0x206D,0x206E,0x206F,
- 0x2070,0x2071,0x2072,0x2073,0x2074,0x2075,0x2076,0x2077,
- 0x2078,0x2079,0x207A,0x207B,0x207C,0x207D,0x207E,0x207F,
- 0x2080,0x2081,0x2082,0x2083,0x2084,0x2085,0x2086,0x2087,
- 0x2088,0x2089,0x208A,0x208B,0x208C,0x208D,0x208E,0x208F,
- 0x2090,0x2091,0x2092,0x2093,0x2094,0x2095,0x2096,0x2097,
- 0x2098,0x2099,0x209A,0x209B,0x209C,0x209D,0x209E,0x209F,
- 0x20A0,0x20A1,0x20A2,0x20A3,0x20A4,0x20A5,0x20A6,0x20A7,
- 0x20A8,0x20A9,0x20AA,0x20AB,0x20AD,0x20AE,0x20AF,0x20B0,
- 0x20B1,0x20B2,0x20B3,0x20B4,0x20B5,0x20B6,0x20B7,0x20B8,
- 0x20B9,0x20BA,0x20BB,0x20BC,0x20BD,0x20BE,0x20BF,0x20C0,
- 0x20C1,0x20C2,0x20C3,0x20C4,0x20C5,0x20C6,0x20C7,0x20C8,
- 0x20C9,0x20CA,0x20CB,0x20CC,0x20CD,0x20CE,0x20CF,0x20D0,
- 0x20D1,0x20D2,0x20D3,0x20D4,0x20D5,0x20D6,0x20D7,0x20D8,
- 0x20D9,0x20DA,0x20DB,0x20DC,0x20DD,0x20DE,0x20DF,0x20E0,
- 0x20E1,0x20E2,0x20E3,0x20E4,0x20E5,0x20E6,0x20E7,0x20E8,
- 0x20E9,0x20EA,0x20EB,0x20EC,0x20ED,0x20EE,0x20EF,0x20F0,
- 0x20F1,0x20F2,0x20F3,0x20F4,0x20F5,0x20F6,0x20F7,0x20F8,
- 0x20F9,0x20FA,0x20FB,0x20FC,0x20FD,0x20FE,0x20FF,0x2100,
- 0x2101,0x2102,0x2104,0x2106,0x2107,0x2108,0x210A,0x210B,
- 0x210C,0x210D,0x210E,0x210F,0x2110,0x2111,0x2112,0x2113,
- 0x2114,0x2115,0x2117,0x2118,0x2119,0x211A,0x211B,0x211C,
- 0x211D,0x211E,0x211F,0x2120,0x2122,0x2123,0x2124,0x2125,
- 0x2126,0x2127,0x2128,0x2129,0x212A,0x212B,0x212C,0x212D,
- 0x212E,0x212F,0x2130,0x2131,0x2132,0x2133,0x2134,0x2135,
- 0x2136,0x2137,0x2138,0x2139,0x213A,0x213B,0x213C,0x213D,
- 0x213E,0x213F,0x2140,0x2141,0x2142,0x2143,0x2144,0x2145,
- 0x2146,0x2147,0x2148,0x2149,0x214A,0x214B,0x214C,0x214D,
- 0x214E,0x214F,0x2150,0x2151,0x2152,0x2153,0x2154,0x2155,
- 0x2156,0x2157,0x2158,0x2159,0x215A,0x215B,0x215C,0x215D,
- 0x215E,0x215F,0x216C,0x216D,0x216E,0x216F,0x217A,0x217B,
- 0x217C,0x217D,0x217E,0x217F,0x2180,0x2181,0x2182,0x2183,
- 0x2184,0x2185,0x2186,0x2187,0x2188,0x2189,0x218A,0x218B,
- 0x218C,0x218D,0x218E,0x218F,0x2194,0x2195,0x219A,0x219B,
- 0x219C,0x219D,0x219E,0x219F,0x21A0,0x21A1,0x21A2,0x21A3,
- 0x21A4,0x21A5,0x21A6,0x21A7,0x21A8,0x21A9,0x21AA,0x21AB,
- 0x21AC,0x21AD,0x21AE,0x21AF,0x21B0,0x21B1,0x21B2,0x21B3,
- 0x21B4,0x21B5,0x21B6,0x21B7,0x21B8,0x21B9,0x21BA,0x21BB,
- 0x21BC,0x21BD,0x21BE,0x21BF,0x21C0,0x21C1,0x21C2,0x21C3,
- 0x21C4,0x21C5,0x21C6,0x21C7,0x21C8,0x21C9,0x21CA,0x21CB,
- 0x21CC,0x21CD,0x21CE,0x21CF,0x21D0,0x21D1,0x21D2,0x21D3,
- 0x21D4,0x21D5,0x21D6,0x21D7,0x21D8,0x21D9,0x21DA,0x21DB,
- 0x21DC,0x21DD,0x21DE,0x21DF,0x21E0,0x21E1,0x21E2,0x21E3,
- 0x21E4,0x21E5,0x21E6,0x21E7,0x21E8,0x21E9,0x21EA,0x21EB,
- 0x21EC,0x21ED,0x21EE,0x21EF,0x21F0,0x21F1,0x21F2,0x21F3,
- 0x21F4,0x21F5,0x21F6,0x21F7,0x21F8,0x21F9,0x21FA,0x21FB,
- 0x21FC,0x21FD,0x21FE,0x21FF,0x2200,0x2201,0x2202,0x2203,
- 0x2204,0x2205,0x2206,0x2207,0x2209,0x220A,0x220B,0x220C,
- 0x220D,0x220E,0x2210,0x2212,0x2213,0x2214,0x2216,0x2217,
- 0x2218,0x2219,0x221B,0x221C,0x2221,0x2222,0x2224,0x2226,
- 0x222C,0x222D,0x222F,0x2230,0x2231,0x2232,0x2233,0x2238,
- 0x2239,0x223A,0x223B,0x223C,0x223E,0x223F,0x2240,0x2241,
- 0x2242,0x2243,0x2244,0x2245,0x2246,0x2247,0x2249,0x224A,
- 0x224B,0x224D,0x224E,0x224F,0x2250,0x2251,0x2253,0x2254,
- 0x2255,0x2256,0x2257,0x2258,0x2259,0x225A,0x225B,0x225C,
- 0x225D,0x225E,0x225F,0x2262,0x2263,0x2268,0x2269,0x226A,
- 0x226B,0x226C,0x226D,0x2270,0x2271,0x2272,0x2273,0x2274,
- 0x2275,0x2276,0x2277,0x2278,0x2279,0x227A,0x227B,0x227C,
- 0x227D,0x227E,0x227F,0x2280,0x2281,0x2282,0x2283,0x2284,
- 0x2285,0x2286,0x2287,0x2288,0x2289,0x228A,0x228B,0x228C,
- 0x228D,0x228E,0x228F,0x2290,0x2291,0x2292,0x2293,0x2294,
- 0x2296,0x2297,0x2298,0x229A,0x229B,0x229C,0x229D,0x229E,
- 0x229F,0x22A0,0x22A1,0x22A2,0x22A3,0x22A4,0x22A6,0x22A7,
- 0x22A8,0x22A9,0x22AA,0x22AB,0x22AC,0x22AD,0x22AE,0x22AF,
- 0x22B0,0x22B1,0x22B2,0x22B3,0x22B4,0x22B5,0x22B6,0x22B7,
- 0x22B8,0x22B9,0x22BA,0x22BB,0x22BC,0x22BD,0x22BE,0x22C0,
- 0x22C1,0x22C2,0x22C3,0x22C4,0x22C5,0x22C6,0x22C7,0x22C8,
- 0x22C9,0x22CA,0x22CB,0x22CC,0x22CD,0x22CE,0x22CF,0x22D0,
- 0x22D1,0x22D2,0x22D3,0x22D4,0x22D5,0x22D6,0x22D7,0x22D8,
- 0x22D9,0x22DA,0x22DB,0x22DC,0x22DD,0x22DE,0x22DF,0x22E0,
- 0x22E1,0x22E2,0x22E3,0x22E4,0x22E5,0x22E6,0x22E7,0x22E8,
- 0x22E9,0x22EA,0x22EB,0x22EC,0x22ED,0x22EE,0x22EF,0x22F0,
- 0x22F1,0x22F2,0x22F3,0x22F4,0x22F5,0x22F6,0x22F7,0x22F8,
- 0x22F9,0x22FA,0x22FB,0x22FC,0x22FD,0x22FE,0x22FF,0x2300,
- 0x2301,0x2302,0x2303,0x2304,0x2305,0x2306,0x2307,0x2308,
- 0x2309,0x230A,0x230B,0x230C,0x230D,0x230E,0x230F,0x2310,
- 0x2311,0x2313,0x2314,0x2315,0x2316,0x2317,0x2318,0x2319,
- 0x231A,0x231B,0x231C,0x231D,0x231E,0x231F,0x2320,0x2321,
- 0x2322,0x2323,0x2324,0x2325,0x2326,0x2327,0x2328,0x2329,
- 0x232A,0x232B,0x232C,0x232D,0x232E,0x232F,0x2330,0x2331,
- 0x2332,0x2333,0x2334,0x2335,0x2336,0x2337,0x2338,0x2339,
- 0x233A,0x233B,0x233C,0x233D,0x233E,0x233F,0x2340,0x2341,
- 0x2342,0x2343,0x2344,0x2345,0x2346,0x2347,0x2348,0x2349,
- 0x234A,0x234B,0x234C,0x234D,0x234E,0x234F,0x2350,0x2351,
- 0x2352,0x2353,0x2354,0x2355,0x2356,0x2357,0x2358,0x2359,
- 0x235A,0x235B,0x235C,0x235D,0x235E,0x235F,0x2360,0x2361,
- 0x2362,0x2363,0x2364,0x2365,0x2366,0x2367,0x2368,0x2369,
- 0x236A,0x236B,0x236C,0x236D,0x236E,0x236F,0x2370,0x2371,
- 0x2372,0x2373,0x2374,0x2375,0x2376,0x2377,0x2378,0x2379,
- 0x237A,0x237B,0x237C,0x237D,0x237E,0x237F,0x2380,0x2381,
- 0x2382,0x2383,0x2384,0x2385,0x2386,0x2387,0x2388,0x2389,
- 0x238A,0x238B,0x238C,0x238D,0x238E,0x238F,0x2390,0x2391,
- 0x2392,0x2393,0x2394,0x2395,0x2396,0x2397,0x2398,0x2399,
- 0x239A,0x239B,0x239C,0x239D,0x239E,0x239F,0x23A0,0x23A1,
- 0x23A2,0x23A3,0x23A4,0x23A5,0x23A6,0x23A7,0x23A8,0x23A9,
- 0x23AA,0x23AB,0x23AC,0x23AD,0x23AE,0x23AF,0x23B0,0x23B1,
- 0x23B2,0x23B3,0x23B4,0x23B5,0x23B6,0x23B7,0x23B8,0x23B9,
- 0x23BA,0x23BB,0x23BC,0x23BD,0x23BE,0x23BF,0x23C0,0x23C1,
- 0x23C2,0x23C3,0x23C4,0x23C5,0x23C6,0x23C7,0x23C8,0x23C9,
- 0x23CA,0x23CB,0x23CC,0x23CD,0x23CE,0x23CF,0x23D0,0x23D1,
- 0x23D2,0x23D3,0x23D4,0x23D5,0x23D6,0x23D7,0x23D8,0x23D9,
- 0x23DA,0x23DB,0x23DC,0x23DD,0x23DE,0x23DF,0x23E0,0x23E1,
- 0x23E2,0x23E3,0x23E4,0x23E5,0x23E6,0x23E7,0x23E8,0x23E9,
- 0x23EA,0x23EB,0x23EC,0x23ED,0x23EE,0x23EF,0x23F0,0x23F1,
- 0x23F2,0x23F3,0x23F4,0x23F5,0x23F6,0x23F7,0x23F8,0x23F9,
- 0x23FA,0x23FB,0x23FC,0x23FD,0x23FE,0x23FF,0x2400,0x2401,
- 0x2402,0x2403,0x2404,0x2405,0x2406,0x2407,0x2408,0x2409,
- 0x240A,0x240B,0x240C,0x240D,0x240E,0x240F,0x2410,0x2411,
- 0x2412,0x2413,0x2414,0x2415,0x2416,0x2417,0x2418,0x2419,
- 0x241A,0x241B,0x241C,0x241D,0x241E,0x241F,0x2420,0x2421,
- 0x2422,0x2423,0x2424,0x2425,0x2426,0x2427,0x2428,0x2429,
- 0x242A,0x242B,0x242C,0x242D,0x242E,0x242F,0x2430,0x2431,
- 0x2432,0x2433,0x2434,0x2435,0x2436,0x2437,0x2438,0x2439,
- 0x243A,0x243B,0x243C,0x243D,0x243E,0x243F,0x2440,0x2441,
- 0x2442,0x2443,0x2444,0x2445,0x2446,0x2447,0x2448,0x2449,
- 0x244A,0x244B,0x244C,0x244D,0x244E,0x244F,0x2450,0x2451,
- 0x2452,0x2453,0x2454,0x2455,0x2456,0x2457,0x2458,0x2459,
- 0x245A,0x245B,0x245C,0x245D,0x245E,0x245F,0x246A,0x246B,
- 0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,0x2472,0x2473,
- 0x249C,0x249D,0x249E,0x249F,0x24A0,0x24A1,0x24A2,0x24A3,
- 0x24A4,0x24A5,0x24A6,0x24A7,0x24A8,0x24A9,0x24AA,0x24AB,
- 0x24AC,0x24AD,0x24AE,0x24AF,0x24B0,0x24B1,0x24B2,0x24B3,
- 0x24B4,0x24B5,0x24B6,0x24B7,0x24B8,0x24B9,0x24BA,0x24BB,
- 0x24BC,0x24BD,0x24BE,0x24BF,0x24C0,0x24C1,0x24C2,0x24C3,
- 0x24C4,0x24C5,0x24C6,0x24C7,0x24C8,0x24C9,0x24CA,0x24CB,
- 0x24CC,0x24CD,0x24CE,0x24CF,0x24D0,0x24D1,0x24D2,0x24D3,
- 0x24D4,0x24D5,0x24D6,0x24D7,0x24D8,0x24D9,0x24DA,0x24DB,
- 0x24DC,0x24DD,0x24DE,0x24DF,0x24E0,0x24E1,0x24E2,0x24E3,
- 0x24E4,0x24E5,0x24E6,0x24E7,0x24E8,0x24E9,0x24EA,0x24EB,
- 0x24EC,0x24ED,0x24EE,0x24EF,0x24F0,0x24F1,0x24F2,0x24F3,
- 0x24F4,0x24F5,0x24F6,0x24F7,0x24F8,0x24F9,0x24FA,0x24FB,
- 0x24FC,0x24FD,0x24FE,0x24FF,0x254C,0x254D,0x254E,0x254F,
- 0x2574,0x2575,0x2576,0x2577,0x2578,0x2579,0x257A,0x257B,
- 0x257C,0x257D,0x257E,0x257F,0x2580,0x2590,0x2591,0x2592,
- 0x2596,0x2597,0x2598,0x2599,0x259A,0x259B,0x259C,0x259D,
- 0x259E,0x259F,0x25A2,0x25A3,0x25A4,0x25A5,0x25A6,0x25A7,
- 0x25A8,0x25A9,0x25AA,0x25AB,0x25AC,0x25AD,0x25AE,0x25AF,
- 0x25B0,0x25B1,0x25B4,0x25B5,0x25B6,0x25B7,0x25B8,0x25B9,
- 0x25BA,0x25BB,0x25BE,0x25BF,0x25C0,0x25C1,0x25C2,0x25C3,
- 0x25C4,0x25C5,0x25C8,0x25C9,0x25CA,0x25CC,0x25CD,0x25D0,
- 0x25D1,0x25D2,0x25D3,0x25D4,0x25D5,0x25D6,0x25D7,0x25D8,
- 0x25D9,0x25DA,0x25DB,0x25DC,0x25DD,0x25DE,0x25DF,0x25E0,
- 0x25E1,0x25E6,0x25E7,0x25E8,0x25E9,0x25EA,0x25EB,0x25EC,
- 0x25ED,0x25EE,0x25EF,0x25F0,0x25F1,0x25F2,0x25F3,0x25F4,
- 0x25F5,0x25F6,0x25F7,0x25F8,0x25F9,0x25FA,0x25FB,0x25FC,
- 0x25FD,0x25FE,0x25FF,0x2600,0x2601,0x2602,0x2603,0x2604,
- 0x2607,0x2608,0x260A,0x260B,0x260C,0x260D,0x260E,0x260F,
- 0x2610,0x2611,0x2612,0x2613,0x2614,0x2615,0x2616,0x2617,
- 0x2618,0x2619,0x261A,0x261B,0x261C,0x261D,0x261E,0x261F,
- 0x2620,0x2621,0x2622,0x2623,0x2624,0x2625,0x2626,0x2627,
- 0x2628,0x2629,0x262A,0x262B,0x262C,0x262D,0x262E,0x262F,
- 0x2630,0x2631,0x2632,0x2633,0x2634,0x2635,0x2636,0x2637,
- 0x2638,0x2639,0x263A,0x263B,0x263C,0x263D,0x263E,0x263F,
- 0x2641,0x2E82,0x2E83,0x2E85,0x2E86,0x2E87,0x2E89,0x2E8A,
- 0x2E8D,0x2E8E,0x2E8F,0x2E90,0x2E91,0x2E92,0x2E93,0x2E94,
- 0x2E95,0x2E96,0x2E98,0x2E99,0x2E9A,0x2E9B,0x2E9C,0x2E9D,
- 0x2E9E,0x2E9F,0x2EA0,0x2EA1,0x2EA2,0x2EA3,0x2EA4,0x2EA5,
- 0x2EA6,0x2EA8,0x2EA9,0x2EAB,0x2EAC,0x2EAD,0x2EAF,0x2EB0,
- 0x2EB1,0x2EB2,0x2EB4,0x2EB5,0x2EB8,0x2EB9,0x2EBA,0x2EBC,
- 0x2EBD,0x2EBE,0x2EBF,0x2EC0,0x2EC1,0x2EC2,0x2EC3,0x2EC4,
- 0x2EC5,0x2EC6,0x2EC7,0x2EC8,0x2EC9,0x2ECB,0x2ECC,0x2ECD,
- 0x2ECE,0x2ECF,0x2ED0,0x2ED1,0x2ED2,0x2ED3,0x2ED4,0x2ED5,
- 0x2ED6,0x2ED7,0x2ED8,0x2ED9,0x2EDA,0x2EDB,0x2EDC,0x2EDD,
- 0x2EDE,0x2EDF,0x2EE0,0x2EE1,0x2EE2,0x2EE3,0x2EE4,0x2EE5,
- 0x2EE6,0x2EE7,0x2EE8,0x2EE9,0x2EEA,0x2EEB,0x2EEC,0x2EED,
- 0x2EEE,0x2EEF,0x2EF0,0x2EF1,0x2EF2,0x2EF3,0x2EF4,0x2EF5,
- 0x2EF6,0x2EF7,0x2EF8,0x2EF9,0x2EFA,0x2EFB,0x2EFC,0x2EFD,
- 0x2EFE,0x2EFF,0x2F00,0x2F01,0x2F02,0x2F03,0x2F04,0x2F05,
- 0x2F06,0x2F07,0x2F08,0x2F09,0x2F0A,0x2F0B,0x2F0C,0x2F0D,
- 0x2F0E,0x2F0F,0x2F10,0x2F11,0x2F12,0x2F13,0x2F14,0x2F15,
- 0x2F16,0x2F17,0x2F18,0x2F19,0x2F1A,0x2F1B,0x2F1C,0x2F1D,
- 0x2F1E,0x2F1F,0x2F20,0x2F21,0x2F22,0x2F23,0x2F24,0x2F25,
- 0x2F26,0x2F27,0x2F28,0x2F29,0x2F2A,0x2F2B,0x2F2C,0x2F2D,
- 0x2F2E,0x2F2F,0x2F30,0x2F31,0x2F32,0x2F33,0x2F34,0x2F35,
- 0x2F36,0x2F37,0x2F38,0x2F39,0x2F3A,0x2F3B,0x2F3C,0x2F3D,
- 0x2F3E,0x2F3F,0x2F40,0x2F41,0x2F42,0x2F43,0x2F44,0x2F45,
- 0x2F46,0x2F47,0x2F48,0x2F49,0x2F4A,0x2F4B,0x2F4C,0x2F4D,
- 0x2F4E,0x2F4F,0x2F50,0x2F51,0x2F52,0x2F53,0x2F54,0x2F55,
- 0x2F56,0x2F57,0x2F58,0x2F59,0x2F5A,0x2F5B,0x2F5C,0x2F5D,
- 0x2F5E,0x2F5F,0x2F60,0x2F61,0x2F62,0x2F63,0x2F64,0x2F65,
- 0x2F66,0x2F67,0x2F68,0x2F69,0x2F6A,0x2F6B,0x2F6C,0x2F6D,
- 0x2F6E,0x2F6F,0x2F70,0x2F71,0x2F72,0x2F73,0x2F74,0x2F75,
- 0x2F76,0x2F77,0x2F78,0x2F79,0x2F7A,0x2F7B,0x2F7C,0x2F7D,
- 0x2F7E,0x2F7F,0x2F80,0x2F81,0x2F82,0x2F83,0x2F84,0x2F85,
- 0x2F86,0x2F87,0x2F88,0x2F89,0x2F8A,0x2F8B,0x2F8C,0x2F8D,
- 0x2F8E,0x2F8F,0x2F90,0x2F91,0x2F92,0x2F93,0x2F94,0x2F95,
- 0x2F96,0x2F97,0x2F98,0x2F99,0x2F9A,0x2F9B,0x2F9C,0x2F9D,
- 0x2F9E,0x2F9F,0x2FA0,0x2FA1,0x2FA2,0x2FA3,0x2FA4,0x2FA5,
- 0x2FA6,0x2FA7,0x2FA8,0x2FA9,0x2FAA,0x2FAB,0x2FAC,0x2FAD,
- 0x2FAE,0x2FAF,0x2FB0,0x2FB1,0x2FB2,0x2FB3,0x2FB4,0x2FB5,
- 0x2FB6,0x2FB7,0x2FB8,0x2FB9,0x2FBA,0x2FBB,0x2FBC,0x2FBD,
- 0x2FBE,0x2FBF,0x2FC0,0x2FC1,0x2FC2,0x2FC3,0x2FC4,0x2FC5,
- 0x2FC6,0x2FC7,0x2FC8,0x2FC9,0x2FCA,0x2FCB,0x2FCC,0x2FCD,
- 0x2FCE,0x2FCF,0x2FD0,0x2FD1,0x2FD2,0x2FD3,0x2FD4,0x2FD5,
- 0x2FD6,0x2FD7,0x2FD8,0x2FD9,0x2FDA,0x2FDB,0x2FDC,0x2FDD,
- 0x2FDE,0x2FDF,0x2FE0,0x2FE1,0x2FE2,0x2FE3,0x2FE4,0x2FE5,
- 0x2FE6,0x2FE7,0x2FE8,0x2FE9,0x2FEA,0x2FEB,0x2FEC,0x2FED,
- 0x2FEE,0x2FEF,0x2FFC,0x2FFD,0x2FFE,0x2FFF,0x3004,0x3018,
- 0x3019,0x301A,0x301B,0x301C,0x301F,0x3020,0x302A,0x302B,
- 0x302C,0x302D,0x302E,0x302F,0x3030,0x3031,0x3032,0x3033,
- 0x3034,0x3035,0x3036,0x3037,0x3038,0x3039,0x303A,0x303B,
- 0x303C,0x303D,0x303F,0x3040,0x3094,0x3095,0x3096,0x3097,
- 0x3098,0x3099,0x309A,0x309F,0x30A0,0x30F7,0x30F8,0x30F9,
- 0x30FA,0x30FB,0x30FF,0x3100,0x3101,0x3102,0x3103,0x3104,
- 0x312A,0x312B,0x312C,0x312D,0x312E,0x312F,0x3130,0x3131,
- 0x3132,0x3133,0x3134,0x3135,0x3136,0x3137,0x3138,0x3139,
- 0x313A,0x313B,0x313C,0x313D,0x313E,0x313F,0x3140,0x3141,
- 0x3142,0x3143,0x3144,0x3145,0x3146,0x3147,0x3148,0x3149,
- 0x314A,0x314B,0x314C,0x314D,0x314E,0x314F,0x3150,0x3151,
- 0x3152,0x3153,0x3154,0x3155,0x3156,0x3157,0x3158,0x3159,
- 0x315A,0x315B,0x315C,0x315D,0x315E,0x315F,0x3160,0x3161,
- 0x3162,0x3163,0x3164,0x3165,0x3166,0x3167,0x3168,0x3169,
- 0x316A,0x316B,0x316C,0x316D,0x316E,0x316F,0x3170,0x3171,
- 0x3172,0x3173,0x3174,0x3175,0x3176,0x3177,0x3178,0x3179,
- 0x317A,0x317B,0x317C,0x317D,0x317E,0x317F,0x3180,0x3181,
- 0x3182,0x3183,0x3184,0x3185,0x3186,0x3187,0x3188,0x3189,
- 0x318A,0x318B,0x318C,0x318D,0x318E,0x318F,0x3190,0x3191,
- 0x3192,0x3193,0x3194,0x3195,0x3196,0x3197,0x3198,0x3199,
- 0x319A,0x319B,0x319C,0x319D,0x319E,0x319F,0x31A0,0x31A1,
- 0x31A2,0x31A3,0x31A4,0x31A5,0x31A6,0x31A7,0x31A8,0x31A9,
- 0x31AA,0x31AB,0x31AC,0x31AD,0x31AE,0x31AF,0x31B0,0x31B1,
- 0x31B2,0x31B3,0x31B4,0x31B5,0x31B6,0x31B7,0x31B8,0x31B9,
- 0x31BA,0x31BB,0x31BC,0x31BD,0x31BE,0x31BF,0x31C0,0x31C1,
- 0x31C2,0x31C3,0x31C4,0x31C5,0x31C6,0x31C7,0x31C8,0x31C9,
- 0x31CA,0x31CB,0x31CC,0x31CD,0x31CE,0x31CF,0x31D0,0x31D1,
- 0x31D2,0x31D3,0x31D4,0x31D5,0x31D6,0x31D7,0x31D8,0x31D9,
- 0x31DA,0x31DB,0x31DC,0x31DD,0x31DE,0x31DF,0x31E0,0x31E1,
- 0x31E2,0x31E3,0x31E4,0x31E5,0x31E6,0x31E7,0x31E8,0x31E9,
- 0x31EA,0x31EB,0x31EC,0x31ED,0x31EE,0x31EF,0x31F0,0x31F1,
- 0x31F2,0x31F3,0x31F4,0x31F5,0x31F6,0x31F7,0x31F8,0x31F9,
- 0x31FA,0x31FB,0x31FC,0x31FD,0x31FE,0x31FF,0x3200,0x3201,
- 0x3202,0x3203,0x3204,0x3205,0x3206,0x3207,0x3208,0x3209,
- 0x320A,0x320B,0x320C,0x320D,0x320E,0x320F,0x3210,0x3211,
- 0x3212,0x3213,0x3214,0x3215,0x3216,0x3217,0x3218,0x3219,
- 0x321A,0x321B,0x321C,0x321D,0x321E,0x321F,0x322A,0x322B,
- 0x322C,0x322D,0x322E,0x322F,0x3230,0x3232,0x3233,0x3234,
- 0x3235,0x3236,0x3237,0x3238,0x3239,0x323A,0x323B,0x323C,
- 0x323D,0x323E,0x323F,0x3240,0x3241,0x3242,0x3243,0x3244,
- 0x3245,0x3246,0x3247,0x3248,0x3249,0x324A,0x324B,0x324C,
- 0x324D,0x324E,0x324F,0x3250,0x3251,0x3252,0x3253,0x3254,
- 0x3255,0x3256,0x3257,0x3258,0x3259,0x325A,0x325B,0x325C,
- 0x325D,0x325E,0x325F,0x3260,0x3261,0x3262,0x3263,0x3264,
- 0x3265,0x3266,0x3267,0x3268,0x3269,0x326A,0x326B,0x326C,
- 0x326D,0x326E,0x326F,0x3270,0x3271,0x3272,0x3273,0x3274,
- 0x3275,0x3276,0x3277,0x3278,0x3279,0x327A,0x327B,0x327C,
- 0x327D,0x327E,0x327F,0x3280,0x3281,0x3282,0x3283,0x3284,
- 0x3285,0x3286,0x3287,0x3288,0x3289,0x328A,0x328B,0x328C,
- 0x328D,0x328E,0x328F,0x3290,0x3291,0x3292,0x3293,0x3294,
- 0x3295,0x3296,0x3297,0x3298,0x3299,0x329A,0x329B,0x329C,
- 0x329D,0x329E,0x329F,0x32A0,0x32A1,0x32A2,0x32A4,0x32A5,
- 0x32A6,0x32A7,0x32A8,0x32A9,0x32AA,0x32AB,0x32AC,0x32AD,
- 0x32AE,0x32AF,0x32B0,0x32B1,0x32B2,0x32B3,0x32B4,0x32B5,
- 0x32B6,0x32B7,0x32B8,0x32B9,0x32BA,0x32BB,0x32BC,0x32BD,
- 0x32BE,0x32BF,0x32C0,0x32C1,0x32C2,0x32C3,0x32C4,0x32C5,
- 0x32C6,0x32C7,0x32C8,0x32C9,0x32CA,0x32CB,0x32CC,0x32CD,
- 0x32CE,0x32CF,0x32D0,0x32D1,0x32D2,0x32D3,0x32D4,0x32D5,
- 0x32D6,0x32D7,0x32D8,0x32D9,0x32DA,0x32DB,0x32DC,0x32DD,
- 0x32DE,0x32DF,0x32E0,0x32E1,0x32E2,0x32E3,0x32E4,0x32E5,
- 0x32E6,0x32E7,0x32E8,0x32E9,0x32EA,0x32EB,0x32EC,0x32ED,
- 0x32EE,0x32EF,0x32F0,0x32F1,0x32F2,0x32F3,0x32F4,0x32F5,
- 0x32F6,0x32F7,0x32F8,0x32F9,0x32FA,0x32FB,0x32FC,0x32FD,
- 0x32FE,0x32FF,0x3300,0x3301,0x3302,0x3303,0x3304,0x3305,
- 0x3306,0x3307,0x3308,0x3309,0x330A,0x330B,0x330C,0x330D,
- 0x330E,0x330F,0x3310,0x3311,0x3312,0x3313,0x3314,0x3315,
- 0x3316,0x3317,0x3318,0x3319,0x331A,0x331B,0x331C,0x331D,
- 0x331E,0x331F,0x3320,0x3321,0x3322,0x3323,0x3324,0x3325,
- 0x3326,0x3327,0x3328,0x3329,0x332A,0x332B,0x332C,0x332D,
- 0x332E,0x332F,0x3330,0x3331,0x3332,0x3333,0x3334,0x3335,
- 0x3336,0x3337,0x3338,0x3339,0x333A,0x333B,0x333C,0x333D,
- 0x333E,0x333F,0x3340,0x3341,0x3342,0x3343,0x3344,0x3345,
- 0x3346,0x3347,0x3348,0x3349,0x334A,0x334B,0x334C,0x334D,
- 0x334E,0x334F,0x3350,0x3351,0x3352,0x3353,0x3354,0x3355,
- 0x3356,0x3357,0x3358,0x3359,0x335A,0x335B,0x335C,0x335D,
- 0x335E,0x335F,0x3360,0x3361,0x3362,0x3363,0x3364,0x3365,
- 0x3366,0x3367,0x3368,0x3369,0x336A,0x336B,0x336C,0x336D,
- 0x336E,0x336F,0x3370,0x3371,0x3372,0x3373,0x3374,0x3375,
- 0x3376,0x3377,0x3378,0x3379,0x337A,0x337B,0x337C,0x337D,
- 0x337E,0x337F,0x3380,0x3381,0x3382,0x3383,0x3384,0x3385,
- 0x3386,0x3387,0x3388,0x3389,0x338A,0x338B,0x338C,0x338D,
- 0x3390,0x3391,0x3392,0x3393,0x3394,0x3395,0x3396,0x3397,
- 0x3398,0x3399,0x339A,0x339B,0x339F,0x33A0,0x33A2,0x33A3,
- 0x33A4,0x33A5,0x33A6,0x33A7,0x33A8,0x33A9,0x33AA,0x33AB,
- 0x33AC,0x33AD,0x33AE,0x33AF,0x33B0,0x33B1,0x33B2,0x33B3,
- 0x33B4,0x33B5,0x33B6,0x33B7,0x33B8,0x33B9,0x33BA,0x33BB,
- 0x33BC,0x33BD,0x33BE,0x33BF,0x33C0,0x33C1,0x33C2,0x33C3,
- 0x33C5,0x33C6,0x33C7,0x33C8,0x33C9,0x33CA,0x33CB,0x33CC,
- 0x33CD,0x33CF,0x33D0,0x33D3,0x33D4,0x33D6,0x33D7,0x33D8,
- 0x33D9,0x33DA,0x33DB,0x33DC,0x33DD,0x33DE,0x33DF,0x33E0,
- 0x33E1,0x33E2,0x33E3,0x33E4,0x33E5,0x33E6,0x33E7,0x33E8,
- 0x33E9,0x33EA,0x33EB,0x33EC,0x33ED,0x33EE,0x33EF,0x33F0,
- 0x33F1,0x33F2,0x33F3,0x33F4,0x33F5,0x33F6,0x33F7,0x33F8,
- 0x33F9,0x33FA,0x33FB,0x33FC,0x33FD,0x33FE,0x33FF,0x3400,
- 0x3401,0x3402,0x3403,0x3404,0x3405,0x3406,0x3407,0x3408,
- 0x3409,0x340A,0x340B,0x340C,0x340D,0x340E,0x340F,0x3410,
- 0x3411,0x3412,0x3413,0x3414,0x3415,0x3416,0x3417,0x3418,
- 0x3419,0x341A,0x341B,0x341C,0x341D,0x341E,0x341F,0x3420,
- 0x3421,0x3422,0x3423,0x3424,0x3425,0x3426,0x3427,0x3428,
- 0x3429,0x342A,0x342B,0x342C,0x342D,0x342E,0x342F,0x3430,
- 0x3431,0x3432,0x3433,0x3434,0x3435,0x3436,0x3437,0x3438,
- 0x3439,0x343A,0x343B,0x343C,0x343D,0x343E,0x343F,0x3440,
- 0x3441,0x3442,0x3443,0x3444,0x3445,0x3446,0x3448,0x3449,
- 0x344A,0x344B,0x344C,0x344D,0x344E,0x344F,0x3450,0x3451,
- 0x3452,0x3453,0x3454,0x3455,0x3456,0x3457,0x3458,0x3459,
- 0x345A,0x345B,0x345C,0x345D,0x345E,0x345F,0x3460,0x3461,
- 0x3462,0x3463,0x3464,0x3465,0x3466,0x3467,0x3468,0x3469,
- 0x346A,0x346B,0x346C,0x346D,0x346E,0x346F,0x3470,0x3471,
- 0x3472,0x3474,0x3475,0x3476,0x3477,0x3478,0x3479,0x347A,
- 0x347B,0x347C,0x347D,0x347E,0x347F,0x3480,0x3481,0x3482,
- 0x3483,0x3484,0x3485,0x3486,0x3487,0x3488,0x3489,0x348A,
- 0x348B,0x348C,0x348D,0x348E,0x348F,0x3490,0x3491,0x3492,
- 0x3493,0x3494,0x3495,0x3496,0x3497,0x3498,0x3499,0x349A,
- 0x349B,0x349C,0x349D,0x349E,0x349F,0x34A0,0x34A1,0x34A2,
- 0x34A3,0x34A4,0x34A5,0x34A6,0x34A7,0x34A8,0x34A9,0x34AA,
- 0x34AB,0x34AC,0x34AD,0x34AE,0x34AF,0x34B0,0x34B1,0x34B2,
- 0x34B3,0x34B4,0x34B5,0x34B6,0x34B7,0x34B8,0x34B9,0x34BA,
- 0x34BB,0x34BC,0x34BD,0x34BE,0x34BF,0x34C0,0x34C1,0x34C2,
- 0x34C3,0x34C4,0x34C5,0x34C6,0x34C7,0x34C8,0x34C9,0x34CA,
- 0x34CB,0x34CC,0x34CD,0x34CE,0x34CF,0x34D0,0x34D1,0x34D2,
- 0x34D3,0x34D4,0x34D5,0x34D6,0x34D7,0x34D8,0x34D9,0x34DA,
- 0x34DB,0x34DC,0x34DD,0x34DE,0x34DF,0x34E0,0x34E1,0x34E2,
- 0x34E3,0x34E4,0x34E5,0x34E6,0x34E7,0x34E8,0x34E9,0x34EA,
- 0x34EB,0x34EC,0x34ED,0x34EE,0x34EF,0x34F0,0x34F1,0x34F2,
- 0x34F3,0x34F4,0x34F5,0x34F6,0x34F7,0x34F8,0x34F9,0x34FA,
- 0x34FB,0x34FC,0x34FD,0x34FE,0x34FF,0x3500,0x3501,0x3502,
- 0x3503,0x3504,0x3505,0x3506,0x3507,0x3508,0x3509,0x350A,
- 0x350B,0x350C,0x350D,0x350E,0x350F,0x3510,0x3511,0x3512,
- 0x3513,0x3514,0x3515,0x3516,0x3517,0x3518,0x3519,0x351A,
- 0x351B,0x351C,0x351D,0x351E,0x351F,0x3520,0x3521,0x3522,
- 0x3523,0x3524,0x3525,0x3526,0x3527,0x3528,0x3529,0x352A,
- 0x352B,0x352C,0x352D,0x352E,0x352F,0x3530,0x3531,0x3532,
- 0x3533,0x3534,0x3535,0x3536,0x3537,0x3538,0x3539,0x353A,
- 0x353B,0x353C,0x353D,0x353E,0x353F,0x3540,0x3541,0x3542,
- 0x3543,0x3544,0x3545,0x3546,0x3547,0x3548,0x3549,0x354A,
- 0x354B,0x354C,0x354D,0x354E,0x354F,0x3550,0x3551,0x3552,
- 0x3553,0x3554,0x3555,0x3556,0x3557,0x3558,0x3559,0x355A,
- 0x355B,0x355C,0x355D,0x355E,0x355F,0x3560,0x3561,0x3562,
- 0x3563,0x3564,0x3565,0x3566,0x3567,0x3568,0x3569,0x356A,
- 0x356B,0x356C,0x356D,0x356E,0x356F,0x3570,0x3571,0x3572,
- 0x3573,0x3574,0x3575,0x3576,0x3577,0x3578,0x3579,0x357A,
- 0x357B,0x357C,0x357D,0x357E,0x357F,0x3580,0x3581,0x3582,
- 0x3583,0x3584,0x3585,0x3586,0x3587,0x3588,0x3589,0x358A,
- 0x358B,0x358C,0x358D,0x358E,0x358F,0x3590,0x3591,0x3592,
- 0x3593,0x3594,0x3595,0x3596,0x3597,0x3598,0x3599,0x359A,
- 0x359B,0x359C,0x359D,0x359F,0x35A0,0x35A1,0x35A2,0x35A3,
- 0x35A4,0x35A5,0x35A6,0x35A7,0x35A8,0x35A9,0x35AA,0x35AB,
- 0x35AC,0x35AD,0x35AE,0x35AF,0x35B0,0x35B1,0x35B2,0x35B3,
- 0x35B4,0x35B5,0x35B6,0x35B7,0x35B8,0x35B9,0x35BA,0x35BB,
- 0x35BC,0x35BD,0x35BE,0x35BF,0x35C0,0x35C1,0x35C2,0x35C3,
- 0x35C4,0x35C5,0x35C6,0x35C7,0x35C8,0x35C9,0x35CA,0x35CB,
- 0x35CC,0x35CD,0x35CE,0x35CF,0x35D0,0x35D1,0x35D2,0x35D3,
- 0x35D4,0x35D5,0x35D6,0x35D7,0x35D8,0x35D9,0x35DA,0x35DB,
- 0x35DC,0x35DD,0x35DE,0x35DF,0x35E0,0x35E1,0x35E2,0x35E3,
- 0x35E4,0x35E5,0x35E6,0x35E7,0x35E8,0x35E9,0x35EA,0x35EB,
- 0x35EC,0x35ED,0x35EE,0x35EF,0x35F0,0x35F1,0x35F2,0x35F3,
- 0x35F4,0x35F5,0x35F6,0x35F7,0x35F8,0x35F9,0x35FA,0x35FB,
- 0x35FC,0x35FD,0x35FE,0x35FF,0x3600,0x3601,0x3602,0x3603,
- 0x3604,0x3605,0x3606,0x3607,0x3608,0x3609,0x360A,0x360B,
- 0x360C,0x360D,0x360F,0x3610,0x3611,0x3612,0x3613,0x3614,
- 0x3615,0x3616,0x3617,0x3618,0x3619,0x3919,0x391A,0x391B,
- 0x391C,0x391D,0x391E,0x391F,0x3920,0x3921,0x3922,0x3923,
- 0x3924,0x3925,0x3926,0x3927,0x3928,0x3929,0x392A,0x392B,
- 0x392C,0x392D,0x392E,0x392F,0x3930,0x3931,0x3932,0x3933,
- 0x3934,0x3935,0x3936,0x3937,0x3938,0x3939,0x393A,0x393B,
- 0x393C,0x393D,0x393E,0x393F,0x3940,0x3941,0x3942,0x3943,
- 0x3944,0x3945,0x3946,0x3947,0x3948,0x3949,0x394A,0x394B,
- 0x394C,0x394D,0x394E,0x394F,0x3950,0x3951,0x3952,0x3953,
- 0x3954,0x3955,0x3956,0x3957,0x3958,0x3959,0x395A,0x395B,
- 0x395C,0x395D,0x395E,0x395F,0x3960,0x3961,0x3962,0x3963,
- 0x3964,0x3965,0x3966,0x3967,0x3968,0x3969,0x396A,0x396B,
- 0x396C,0x396D,0x396F,0x3970,0x3971,0x3972,0x3973,0x3974,
- 0x3975,0x3976,0x3977,0x3978,0x3979,0x397A,0x397B,0x397C,
- 0x397D,0x397E,0x397F,0x3980,0x3981,0x3982,0x3983,0x3984,
- 0x3985,0x3986,0x3987,0x3988,0x3989,0x398A,0x398B,0x398C,
- 0x398D,0x398E,0x398F,0x3990,0x3991,0x3992,0x3993,0x3994,
- 0x3995,0x3996,0x3997,0x3998,0x3999,0x399A,0x399B,0x399C,
- 0x399D,0x399E,0x399F,0x39A0,0x39A1,0x39A2,0x39A3,0x39A4,
- 0x39A5,0x39A6,0x39A7,0x39A8,0x39A9,0x39AA,0x39AB,0x39AC,
- 0x39AD,0x39AE,0x39AF,0x39B0,0x39B1,0x39B2,0x39B3,0x39B4,
- 0x39B5,0x39B6,0x39B7,0x39B8,0x39B9,0x39BA,0x39BB,0x39BC,
- 0x39BD,0x39BE,0x39BF,0x39C0,0x39C1,0x39C2,0x39C3,0x39C4,
- 0x39C5,0x39C6,0x39C7,0x39C8,0x39C9,0x39CA,0x39CB,0x39CC,
- 0x39CD,0x39CE,0x39D1,0x39D2,0x39D3,0x39D4,0x39D5,0x39D6,
- 0x39D7,0x39D8,0x39D9,0x39DA,0x39DB,0x39DC,0x39DD,0x39DE,
- 0x39E0,0x39E1,0x39E2,0x39E3,0x39E4,0x39E5,0x39E6,0x39E7,
- 0x39E8,0x39E9,0x39EA,0x39EB,0x39EC,0x39ED,0x39EE,0x39EF,
- 0x39F0,0x39F1,0x39F2,0x39F3,0x39F4,0x39F5,0x39F6,0x39F7,
- 0x39F8,0x39F9,0x39FA,0x39FB,0x39FC,0x39FD,0x39FE,0x39FF,
- 0x3A00,0x3A01,0x3A02,0x3A03,0x3A04,0x3A05,0x3A06,0x3A07,
- 0x3A08,0x3A09,0x3A0A,0x3A0B,0x3A0C,0x3A0D,0x3A0E,0x3A0F,
- 0x3A10,0x3A11,0x3A12,0x3A13,0x3A14,0x3A15,0x3A16,0x3A17,
- 0x3A18,0x3A19,0x3A1A,0x3A1B,0x3A1C,0x3A1D,0x3A1E,0x3A1F,
- 0x3A20,0x3A21,0x3A22,0x3A23,0x3A24,0x3A25,0x3A26,0x3A27,
- 0x3A28,0x3A29,0x3A2A,0x3A2B,0x3A2C,0x3A2D,0x3A2E,0x3A2F,
- 0x3A30,0x3A31,0x3A32,0x3A33,0x3A34,0x3A35,0x3A36,0x3A37,
- 0x3A38,0x3A39,0x3A3A,0x3A3B,0x3A3C,0x3A3D,0x3A3E,0x3A3F,
- 0x3A40,0x3A41,0x3A42,0x3A43,0x3A44,0x3A45,0x3A46,0x3A47,
- 0x3A48,0x3A49,0x3A4A,0x3A4B,0x3A4C,0x3A4D,0x3A4E,0x3A4F,
- 0x3A50,0x3A51,0x3A52,0x3A53,0x3A54,0x3A55,0x3A56,0x3A57,
- 0x3A58,0x3A59,0x3A5A,0x3A5B,0x3A5C,0x3A5D,0x3A5E,0x3A5F,
- 0x3A60,0x3A61,0x3A62,0x3A63,0x3A64,0x3A65,0x3A66,0x3A67,
- 0x3A68,0x3A69,0x3A6A,0x3A6B,0x3A6C,0x3A6D,0x3A6E,0x3A6F,
- 0x3A70,0x3A71,0x3A72,0x3A74,0x3A75,0x3A76,0x3A77,0x3A78,
- 0x3A79,0x3A7A,0x3A7B,0x3A7C,0x3A7D,0x3A7E,0x3A7F,0x3A80,
- 0x3A81,0x3A82,0x3A83,0x3A84,0x3A85,0x3A86,0x3A87,0x3A88,
- 0x3A89,0x3A8A,0x3A8B,0x3A8C,0x3A8D,0x3A8E,0x3A8F,0x3A90,
- 0x3A91,0x3A92,0x3A93,0x3A94,0x3A95,0x3A96,0x3A97,0x3A98,
- 0x3A99,0x3A9A,0x3A9B,0x3A9C,0x3A9D,0x3A9E,0x3A9F,0x3AA0,
- 0x3AA1,0x3AA2,0x3AA3,0x3AA4,0x3AA5,0x3AA6,0x3AA7,0x3AA8,
- 0x3AA9,0x3AAA,0x3AAB,0x3AAC,0x3AAD,0x3AAE,0x3AAF,0x3AB0,
- 0x3AB1,0x3AB2,0x3AB3,0x3AB4,0x3AB5,0x3AB6,0x3AB7,0x3AB8,
- 0x3AB9,0x3ABA,0x3ABB,0x3ABC,0x3ABD,0x3ABE,0x3ABF,0x3AC0,
- 0x3AC1,0x3AC2,0x3AC3,0x3AC4,0x3AC5,0x3AC6,0x3AC7,0x3AC8,
- 0x3AC9,0x3ACA,0x3ACB,0x3ACC,0x3ACD,0x3ACE,0x3ACF,0x3AD0,
- 0x3AD1,0x3AD2,0x3AD3,0x3AD4,0x3AD5,0x3AD6,0x3AD7,0x3AD8,
- 0x3AD9,0x3ADA,0x3ADB,0x3ADC,0x3ADD,0x3ADE,0x3ADF,0x3AE0,
- 0x3AE1,0x3AE2,0x3AE3,0x3AE4,0x3AE5,0x3AE6,0x3AE7,0x3AE8,
- 0x3AE9,0x3AEA,0x3AEB,0x3AEC,0x3AED,0x3AEE,0x3AEF,0x3AF0,
- 0x3AF1,0x3AF2,0x3AF3,0x3AF4,0x3AF5,0x3AF6,0x3AF7,0x3AF8,
- 0x3AF9,0x3AFA,0x3AFB,0x3AFC,0x3AFD,0x3AFE,0x3AFF,0x3B00,
- 0x3B01,0x3B02,0x3B03,0x3B04,0x3B05,0x3B06,0x3B07,0x3B08,
- 0x3B09,0x3B0A,0x3B0B,0x3B0C,0x3B0D,0x3B0E,0x3B0F,0x3B10,
- 0x3B11,0x3B12,0x3B13,0x3B14,0x3B15,0x3B16,0x3B17,0x3B18,
- 0x3B19,0x3B1A,0x3B1B,0x3B1C,0x3B1D,0x3B1E,0x3B1F,0x3B20,
- 0x3B21,0x3B22,0x3B23,0x3B24,0x3B25,0x3B26,0x3B27,0x3B28,
- 0x3B29,0x3B2A,0x3B2B,0x3B2C,0x3B2D,0x3B2E,0x3B2F,0x3B30,
- 0x3B31,0x3B32,0x3B33,0x3B34,0x3B35,0x3B36,0x3B37,0x3B38,
- 0x3B39,0x3B3A,0x3B3B,0x3B3C,0x3B3D,0x3B3E,0x3B3F,0x3B40,
- 0x3B41,0x3B42,0x3B43,0x3B44,0x3B45,0x3B46,0x3B47,0x3B48,
- 0x3B49,0x3B4A,0x3B4B,0x3B4C,0x3B4D,0x3B4F,0x3B50,0x3B51,
- 0x3B52,0x3B53,0x3B54,0x3B55,0x3B56,0x3B57,0x3B58,0x3B59,
- 0x3B5A,0x3B5B,0x3B5C,0x3B5D,0x3B5E,0x3B5F,0x3B60,0x3B61,
- 0x3B62,0x3B63,0x3B64,0x3B65,0x3B66,0x3B67,0x3B68,0x3B69,
- 0x3B6A,0x3B6B,0x3B6C,0x3B6D,0x3B6E,0x3B6F,0x3B70,0x3B71,
- 0x3B72,0x3B73,0x3B74,0x3B75,0x3B76,0x3B77,0x3B78,0x3B79,
- 0x3B7A,0x3B7B,0x3B7C,0x3B7D,0x3B7E,0x3B7F,0x3B80,0x3B81,
- 0x3B82,0x3B83,0x3B84,0x3B85,0x3B86,0x3B87,0x3B88,0x3B89,
- 0x3B8A,0x3B8B,0x3B8C,0x3B8D,0x3B8E,0x3B8F,0x3B90,0x3B91,
- 0x3B92,0x3B93,0x3B94,0x3B95,0x3B96,0x3B97,0x3B98,0x3B99,
- 0x3B9A,0x3B9B,0x3B9C,0x3B9D,0x3B9E,0x3B9F,0x3BA0,0x3BA1,
- 0x3BA2,0x3BA3,0x3BA4,0x3BA5,0x3BA6,0x3BA7,0x3BA8,0x3BA9,
- 0x3BAA,0x3BAB,0x3BAC,0x3BAD,0x3BAE,0x3BAF,0x3BB0,0x3BB1,
- 0x3BB2,0x3BB3,0x3BB4,0x3BB5,0x3BB6,0x3BB7,0x3BB8,0x3BB9,
- 0x3BBA,0x3BBB,0x3BBC,0x3BBD,0x3BBE,0x3BBF,0x3BC0,0x3BC1,
- 0x3BC2,0x3BC3,0x3BC4,0x3BC5,0x3BC6,0x3BC7,0x3BC8,0x3BC9,
- 0x3BCA,0x3BCB,0x3BCC,0x3BCD,0x3BCE,0x3BCF,0x3BD0,0x3BD1,
- 0x3BD2,0x3BD3,0x3BD4,0x3BD5,0x3BD6,0x3BD7,0x3BD8,0x3BD9,
- 0x3BDA,0x3BDB,0x3BDC,0x3BDD,0x3BDE,0x3BDF,0x3BE0,0x3BE1,
- 0x3BE2,0x3BE3,0x3BE4,0x3BE5,0x3BE6,0x3BE7,0x3BE8,0x3BE9,
- 0x3BEA,0x3BEB,0x3BEC,0x3BED,0x3BEE,0x3BEF,0x3BF0,0x3BF1,
- 0x3BF2,0x3BF3,0x3BF4,0x3BF5,0x3BF6,0x3BF7,0x3BF8,0x3BF9,
- 0x3BFA,0x3BFB,0x3BFC,0x3BFD,0x3BFE,0x3BFF,0x3C00,0x3C01,
- 0x3C02,0x3C03,0x3C04,0x3C05,0x3C06,0x3C07,0x3C08,0x3C09,
- 0x3C0A,0x3C0B,0x3C0C,0x3C0D,0x3C0E,0x3C0F,0x3C10,0x3C11,
- 0x3C12,0x3C13,0x3C14,0x3C15,0x3C16,0x3C17,0x3C18,0x3C19,
- 0x3C1A,0x3C1B,0x3C1C,0x3C1D,0x3C1E,0x3C1F,0x3C20,0x3C21,
- 0x3C22,0x3C23,0x3C24,0x3C25,0x3C26,0x3C27,0x3C28,0x3C29,
- 0x3C2A,0x3C2B,0x3C2C,0x3C2D,0x3C2E,0x3C2F,0x3C30,0x3C31,
- 0x3C32,0x3C33,0x3C34,0x3C35,0x3C36,0x3C37,0x3C38,0x3C39,
- 0x3C3A,0x3C3B,0x3C3C,0x3C3D,0x3C3E,0x3C3F,0x3C40,0x3C41,
- 0x3C42,0x3C43,0x3C44,0x3C45,0x3C46,0x3C47,0x3C48,0x3C49,
- 0x3C4A,0x3C4B,0x3C4C,0x3C4D,0x3C4E,0x3C4F,0x3C50,0x3C51,
- 0x3C52,0x3C53,0x3C54,0x3C55,0x3C56,0x3C57,0x3C58,0x3C59,
- 0x3C5A,0x3C5B,0x3C5C,0x3C5D,0x3C5E,0x3C5F,0x3C60,0x3C61,
- 0x3C62,0x3C63,0x3C64,0x3C65,0x3C66,0x3C67,0x3C68,0x3C69,
- 0x3C6A,0x3C6B,0x3C6C,0x3C6D,0x3C6F,0x3C70,0x3C71,0x3C72,
- 0x3C73,0x3C74,0x3C75,0x3C76,0x3C77,0x3C78,0x3C79,0x3C7A,
- 0x3C7B,0x3C7C,0x3C7D,0x3C7E,0x3C7F,0x3C80,0x3C81,0x3C82,
- 0x3C83,0x3C84,0x3C85,0x3C86,0x3C87,0x3C88,0x3C89,0x3C8A,
- 0x3C8B,0x3C8C,0x3C8D,0x3C8E,0x3C8F,0x3C90,0x3C91,0x3C92,
- 0x3C93,0x3C94,0x3C95,0x3C96,0x3C97,0x3C98,0x3C99,0x3C9A,
- 0x3C9B,0x3C9C,0x3C9D,0x3C9E,0x3C9F,0x3CA0,0x3CA1,0x3CA2,
- 0x3CA3,0x3CA4,0x3CA5,0x3CA6,0x3CA7,0x3CA8,0x3CA9,0x3CAA,
- 0x3CAB,0x3CAC,0x3CAD,0x3CAE,0x3CAF,0x3CB0,0x3CB1,0x3CB2,
- 0x3CB3,0x3CB4,0x3CB5,0x3CB6,0x3CB7,0x3CB8,0x3CB9,0x3CBA,
- 0x3CBB,0x3CBC,0x3CBD,0x3CBE,0x3CBF,0x3CC0,0x3CC1,0x3CC2,
- 0x3CC3,0x3CC4,0x3CC5,0x3CC6,0x3CC7,0x3CC8,0x3CC9,0x3CCA,
- 0x3CCB,0x3CCC,0x3CCD,0x3CCE,0x3CCF,0x3CD0,0x3CD1,0x3CD2,
- 0x3CD3,0x3CD4,0x3CD5,0x3CD6,0x3CD7,0x3CD8,0x3CD9,0x3CDA,
- 0x3CDB,0x3CDC,0x3CDD,0x3CDE,0x3CDF,0x4057,0x4058,0x4059,
- 0x405A,0x405B,0x405C,0x405D,0x405E,0x405F,0x4060,0x4061,
- 0x4062,0x4063,0x4064,0x4065,0x4066,0x4067,0x4068,0x4069,
- 0x406A,0x406B,0x406C,0x406D,0x406E,0x406F,0x4070,0x4071,
- 0x4072,0x4073,0x4074,0x4075,0x4076,0x4077,0x4078,0x4079,
- 0x407A,0x407B,0x407C,0x407D,0x407E,0x407F,0x4080,0x4081,
- 0x4082,0x4083,0x4084,0x4085,0x4086,0x4087,0x4088,0x4089,
- 0x408A,0x408B,0x408C,0x408D,0x408E,0x408F,0x4090,0x4091,
- 0x4092,0x4093,0x4094,0x4095,0x4096,0x4097,0x4098,0x4099,
- 0x409A,0x409B,0x409C,0x409D,0x409E,0x409F,0x40A0,0x40A1,
- 0x40A2,0x40A3,0x40A4,0x40A5,0x40A6,0x40A7,0x40A8,0x40A9,
- 0x40AA,0x40AB,0x40AC,0x40AD,0x40AE,0x40AF,0x40B0,0x40B1,
- 0x40B2,0x40B3,0x40B4,0x40B5,0x40B6,0x40B7,0x40B8,0x40B9,
- 0x40BA,0x40BB,0x40BC,0x40BD,0x40BE,0x40BF,0x40C0,0x40C1,
- 0x40C2,0x40C3,0x40C4,0x40C5,0x40C6,0x40C7,0x40C8,0x40C9,
- 0x40CA,0x40CB,0x40CC,0x40CD,0x40CE,0x40CF,0x40D0,0x40D1,
- 0x40D2,0x40D3,0x40D4,0x40D5,0x40D6,0x40D7,0x40D8,0x40D9,
- 0x40DA,0x40DB,0x40DC,0x40DD,0x40DE,0x40DF,0x40E0,0x40E1,
- 0x40E2,0x40E3,0x40E4,0x40E5,0x40E6,0x40E7,0x40E8,0x40E9,
- 0x40EA,0x40EB,0x40EC,0x40ED,0x40EE,0x40EF,0x40F0,0x40F1,
- 0x40F2,0x40F3,0x40F4,0x40F5,0x40F6,0x40F7,0x40F8,0x40F9,
- 0x40FA,0x40FB,0x40FC,0x40FD,0x40FE,0x40FF,0x4100,0x4101,
- 0x4102,0x4103,0x4104,0x4105,0x4106,0x4107,0x4108,0x4109,
- 0x410A,0x410B,0x410C,0x410D,0x410E,0x410F,0x4110,0x4111,
- 0x4112,0x4113,0x4114,0x4115,0x4116,0x4117,0x4118,0x4119,
- 0x411A,0x411B,0x411C,0x411D,0x411E,0x411F,0x4120,0x4121,
- 0x4122,0x4123,0x4124,0x4125,0x4126,0x4127,0x4128,0x4129,
- 0x412A,0x412B,0x412C,0x412D,0x412E,0x412F,0x4130,0x4131,
- 0x4132,0x4133,0x4134,0x4135,0x4136,0x4137,0x4138,0x4139,
- 0x413A,0x413B,0x413C,0x413D,0x413E,0x413F,0x4140,0x4141,
- 0x4142,0x4143,0x4144,0x4145,0x4146,0x4147,0x4148,0x4149,
- 0x414A,0x414B,0x414C,0x414D,0x414E,0x414F,0x4150,0x4151,
- 0x4152,0x4153,0x4154,0x4155,0x4156,0x4157,0x4158,0x4159,
- 0x415A,0x415B,0x415C,0x415D,0x415E,0x4338,0x4339,0x433A,
- 0x433B,0x433C,0x433D,0x433E,0x433F,0x4340,0x4341,0x4342,
- 0x4343,0x4344,0x4345,0x4346,0x4347,0x4348,0x4349,0x434A,
- 0x434B,0x434C,0x434D,0x434E,0x434F,0x4350,0x4351,0x4352,
- 0x4353,0x4354,0x4355,0x4356,0x4357,0x4358,0x4359,0x435A,
- 0x435B,0x435C,0x435D,0x435E,0x435F,0x4360,0x4361,0x4362,
- 0x4363,0x4364,0x4365,0x4366,0x4367,0x4368,0x4369,0x436A,
- 0x436B,0x436C,0x436D,0x436E,0x436F,0x4370,0x4371,0x4372,
- 0x4373,0x4374,0x4375,0x4376,0x4377,0x4378,0x4379,0x437A,
- 0x437B,0x437C,0x437D,0x437E,0x437F,0x4380,0x4381,0x4382,
- 0x4383,0x4384,0x4385,0x4386,0x4387,0x4388,0x4389,0x438A,
- 0x438B,0x438C,0x438D,0x438E,0x438F,0x4390,0x4391,0x4392,
- 0x4393,0x4394,0x4395,0x4396,0x4397,0x4398,0x4399,0x439A,
- 0x439B,0x439C,0x439D,0x439E,0x439F,0x43A0,0x43A1,0x43A2,
- 0x43A3,0x43A4,0x43A5,0x43A6,0x43A7,0x43A8,0x43A9,0x43AA,
- 0x43AB,0x43AD,0x43AE,0x43AF,0x43B0,0x43B2,0x43B3,0x43B4,
- 0x43B5,0x43B6,0x43B7,0x43B8,0x43B9,0x43BA,0x43BB,0x43BC,
- 0x43BD,0x43BE,0x43BF,0x43C0,0x43C1,0x43C2,0x43C3,0x43C4,
- 0x43C5,0x43C6,0x43C7,0x43C8,0x43C9,0x43CA,0x43CB,0x43CC,
- 0x43CD,0x43CE,0x43CF,0x43D0,0x43D1,0x43D2,0x43D3,0x43D4,
- 0x43D5,0x43D6,0x43D7,0x43D8,0x43D9,0x43DA,0x43DB,0x43DC,
- 0x43DE,0x43DF,0x43E0,0x43E1,0x43E2,0x43E3,0x43E4,0x43E5,
- 0x43E6,0x43E7,0x43E8,0x43E9,0x43EA,0x43EB,0x43EC,0x43ED,
- 0x43EE,0x43EF,0x43F0,0x43F1,0x43F2,0x43F3,0x43F4,0x43F5,
- 0x43F6,0x43F7,0x43F8,0x43F9,0x43FA,0x43FB,0x43FC,0x43FD,
- 0x43FE,0x43FF,0x4400,0x4401,0x4402,0x4403,0x4404,0x4405,
- 0x4406,0x4407,0x4408,0x4409,0x440A,0x440B,0x440C,0x440D,
- 0x440E,0x440F,0x4410,0x4411,0x4412,0x4413,0x4414,0x4415,
- 0x4416,0x4417,0x4418,0x4419,0x441A,0x441B,0x441C,0x441D,
- 0x441E,0x441F,0x4420,0x4421,0x4422,0x4423,0x4424,0x4425,
- 0x4426,0x4427,0x4428,0x4429,0x442A,0x442B,0x442C,0x442D,
- 0x442E,0x442F,0x4430,0x4431,0x4432,0x4433,0x4434,0x4435,
- 0x4436,0x4437,0x4438,0x4439,0x443A,0x443B,0x443C,0x443D,
- 0x443E,0x443F,0x4440,0x4441,0x4442,0x4443,0x4444,0x4445,
- 0x4446,0x4447,0x4448,0x4449,0x444A,0x444B,0x444C,0x444D,
- 0x444E,0x444F,0x4450,0x4451,0x4452,0x4453,0x4454,0x4455,
- 0x4456,0x4457,0x4458,0x4459,0x445A,0x445B,0x445C,0x445D,
- 0x445E,0x445F,0x4460,0x4461,0x4462,0x4463,0x4464,0x4465,
- 0x4466,0x4467,0x4468,0x4469,0x446A,0x446B,0x446C,0x446D,
- 0x446E,0x446F,0x4470,0x4471,0x4472,0x4473,0x4474,0x4475,
- 0x4476,0x4477,0x4478,0x4479,0x447A,0x447B,0x447C,0x447D,
- 0x447E,0x447F,0x4480,0x4481,0x4482,0x4483,0x4484,0x4485,
- 0x4486,0x4487,0x4488,0x4489,0x448A,0x448B,0x448C,0x448D,
- 0x448E,0x448F,0x4490,0x4491,0x4492,0x4493,0x4494,0x4495,
- 0x4496,0x4497,0x4498,0x4499,0x449A,0x449B,0x449C,0x449D,
- 0x449E,0x449F,0x44A0,0x44A1,0x44A2,0x44A3,0x44A4,0x44A5,
- 0x44A6,0x44A7,0x44A8,0x44A9,0x44AA,0x44AB,0x44AC,0x44AD,
- 0x44AE,0x44AF,0x44B0,0x44B1,0x44B2,0x44B3,0x44B4,0x44B5,
- 0x44B6,0x44B7,0x44B8,0x44B9,0x44BA,0x44BB,0x44BC,0x44BD,
- 0x44BE,0x44BF,0x44C0,0x44C1,0x44C2,0x44C3,0x44C4,0x44C5,
- 0x44C6,0x44C7,0x44C8,0x44C9,0x44CA,0x44CB,0x44CC,0x44CD,
- 0x44CE,0x44CF,0x44D0,0x44D1,0x44D2,0x44D3,0x44D4,0x44D5,
- 0x464D,0x464E,0x464F,0x4650,0x4651,0x4652,0x4653,0x4654,
- 0x4655,0x4656,0x4657,0x4658,0x4659,0x465A,0x465B,0x465C,
- 0x465D,0x465E,0x465F,0x4660,0x4662,0x4663,0x4664,0x4665,
- 0x4666,0x4667,0x4668,0x4669,0x466A,0x466B,0x466C,0x466D,
- 0x466E,0x466F,0x4670,0x4671,0x4672,0x4673,0x4674,0x4675,
- 0x4676,0x4677,0x4678,0x4679,0x467A,0x467B,0x467C,0x467D,
- 0x467E,0x467F,0x4680,0x4681,0x4682,0x4683,0x4684,0x4685,
- 0x4686,0x4687,0x4688,0x4689,0x468A,0x468B,0x468C,0x468D,
- 0x468E,0x468F,0x4690,0x4691,0x4692,0x4693,0x4694,0x4695,
- 0x4696,0x4697,0x4698,0x4699,0x469A,0x469B,0x469C,0x469D,
- 0x469E,0x469F,0x46A0,0x46A1,0x46A2,0x46A3,0x46A4,0x46A5,
- 0x46A6,0x46A7,0x46A8,0x46A9,0x46AA,0x46AB,0x46AC,0x46AD,
- 0x46AE,0x46AF,0x46B0,0x46B1,0x46B2,0x46B3,0x46B4,0x46B5,
- 0x46B6,0x46B7,0x46B8,0x46B9,0x46BA,0x46BB,0x46BC,0x46BD,
- 0x46BE,0x46BF,0x46C0,0x46C1,0x46C2,0x46C3,0x46C4,0x46C5,
- 0x46C6,0x46C7,0x46C8,0x46C9,0x46CA,0x46CB,0x46CC,0x46CD,
- 0x46CE,0x46CF,0x46D0,0x46D1,0x46D2,0x46D3,0x46D4,0x46D5,
- 0x46D6,0x46D7,0x46D8,0x46D9,0x46DA,0x46DB,0x46DC,0x46DD,
- 0x46DE,0x46DF,0x46E0,0x46E1,0x46E2,0x46E3,0x46E4,0x46E5,
- 0x46E6,0x46E7,0x46E8,0x46E9,0x46EA,0x46EB,0x46EC,0x46ED,
- 0x46EE,0x46EF,0x46F0,0x46F1,0x46F2,0x46F3,0x46F4,0x46F5,
- 0x46F6,0x46F7,0x46F8,0x46F9,0x46FA,0x46FB,0x46FC,0x46FD,
- 0x46FE,0x46FF,0x4700,0x4701,0x4702,0x4703,0x4704,0x4705,
- 0x4706,0x4707,0x4708,0x4709,0x470A,0x470B,0x470C,0x470D,
- 0x470E,0x470F,0x4710,0x4711,0x4712,0x4713,0x4714,0x4715,
- 0x4716,0x4717,0x4718,0x4719,0x471A,0x471B,0x471C,0x471D,
- 0x471E,0x471F,0x4720,0x4721,0x4722,0x4724,0x4725,0x4726,
- 0x4727,0x4728,0x472A,0x472B,0x472C,0x472D,0x472E,0x472F,
- 0x4730,0x4731,0x4732,0x4733,0x4734,0x4735,0x4736,0x4737,
- 0x4738,0x4739,0x473A,0x473B,0x473C,0x473D,0x473E,0x473F,
- 0x4740,0x4741,0x4742,0x4743,0x4744,0x4745,0x4746,0x4747,
- 0x4748,0x4749,0x474A,0x474B,0x474C,0x474D,0x474E,0x474F,
- 0x4750,0x4751,0x4752,0x4753,0x4754,0x4755,0x4756,0x4757,
- 0x4758,0x4759,0x475A,0x475B,0x475C,0x475D,0x475E,0x475F,
- 0x4760,0x4761,0x4762,0x4763,0x4764,0x4765,0x4766,0x4767,
- 0x4768,0x4769,0x476A,0x476B,0x476C,0x476D,0x476E,0x476F,
- 0x4770,0x4771,0x4772,0x4773,0x4774,0x4775,0x4776,0x4777,
- 0x4778,0x4779,0x477A,0x477B,0x477D,0x477E,0x477F,0x4780,
- 0x4781,0x4782,0x4783,0x4784,0x4785,0x4786,0x4787,0x4788,
- 0x4789,0x478A,0x478B,0x478C,0x4948,0x4949,0x494A,0x494B,
- 0x494C,0x494D,0x494E,0x494F,0x4950,0x4951,0x4952,0x4953,
- 0x4954,0x4955,0x4956,0x4957,0x4958,0x4959,0x495A,0x495B,
- 0x495C,0x495D,0x495E,0x495F,0x4960,0x4961,0x4962,0x4963,
- 0x4964,0x4965,0x4966,0x4967,0x4968,0x4969,0x496A,0x496B,
- 0x496C,0x496D,0x496E,0x496F,0x4970,0x4971,0x4972,0x4973,
- 0x4974,0x4975,0x4976,0x4977,0x4978,0x4979,0x497B,0x497C,
- 0x497E,0x497F,0x4980,0x4981,0x4984,0x4987,0x4988,0x4989,
- 0x498A,0x498B,0x498C,0x498D,0x498E,0x498F,0x4990,0x4991,
- 0x4992,0x4993,0x4994,0x4995,0x4996,0x4997,0x4998,0x4999,
- 0x499A,0x499C,0x499D,0x499E,0x49A0,0x49A1,0x49A2,0x49A3,
- 0x49A4,0x49A5,0x49A6,0x49A7,0x49A8,0x49A9,0x49AA,0x49AB,
- 0x49AC,0x49AD,0x49AE,0x49AF,0x49B0,0x49B1,0x49B2,0x49B3,
- 0x49B4,0x49B5,0x4C78,0x4C79,0x4C7A,0x4C7B,0x4C7C,0x4C7D,
- 0x4C7E,0x4C7F,0x4C80,0x4C81,0x4C82,0x4C83,0x4C84,0x4C85,
- 0x4C86,0x4C87,0x4C88,0x4C89,0x4C8A,0x4C8B,0x4C8C,0x4C8D,
- 0x4C8E,0x4C8F,0x4C90,0x4C91,0x4C92,0x4C93,0x4C94,0x4C95,
- 0x4C96,0x4C97,0x4C98,0x4C99,0x4C9A,0x4C9B,0x4C9C,0x4C9D,
- 0x4C9E,0x4CA4,0x4CA5,0x4CA6,0x4CA7,0x4CA8,0x4CA9,0x4CAA,
- 0x4CAB,0x4CAC,0x4CAD,0x4CAE,0x4CAF,0x4CB0,0x4CB1,0x4CB2,
- 0x4CB3,0x4CB4,0x4CB5,0x4CB6,0x4CB7,0x4CB8,0x4CB9,0x4CBA,
- 0x4CBB,0x4CBC,0x4CBD,0x4CBE,0x4CBF,0x4CC0,0x4CC1,0x4CC2,
- 0x4CC3,0x4CC4,0x4CC5,0x4CC6,0x4CC7,0x4CC8,0x4CC9,0x4CCA,
- 0x4CCB,0x4CCC,0x4CCD,0x4CCE,0x4CCF,0x4CD0,0x4CD1,0x4CD2,
- 0x4CD3,0x4CD4,0x4CD5,0x4CD6,0x4CD7,0x4CD8,0x4CD9,0x4CDA,
- 0x4CDB,0x4CDC,0x4CDD,0x4CDE,0x4CDF,0x4CE0,0x4CE1,0x4CE2,
- 0x4CE3,0x4CE4,0x4CE5,0x4CE6,0x4CE7,0x4CE8,0x4CE9,0x4CEA,
- 0x4CEB,0x4CEC,0x4CED,0x4CEE,0x4CEF,0x4CF0,0x4CF1,0x4CF2,
- 0x4CF3,0x4CF4,0x4CF5,0x4CF6,0x4CF7,0x4CF8,0x4CF9,0x4CFA,
- 0x4CFB,0x4CFC,0x4CFD,0x4CFE,0x4CFF,0x4D00,0x4D01,0x4D02,
- 0x4D03,0x4D04,0x4D05,0x4D06,0x4D07,0x4D08,0x4D09,0x4D0A,
- 0x4D0B,0x4D0C,0x4D0D,0x4D0E,0x4D0F,0x4D10,0x4D11,0x4D12,
- 0x4D1A,0x4D1B,0x4D1C,0x4D1D,0x4D1E,0x4D1F,0x4D20,0x4D21,
- 0x4D22,0x4D23,0x4D24,0x4D25,0x4D26,0x4D27,0x4D28,0x4D29,
- 0x4D2A,0x4D2B,0x4D2C,0x4D2D,0x4D2E,0x4D2F,0x4D30,0x4D31,
- 0x4D32,0x4D33,0x4D34,0x4D35,0x4D36,0x4D37,0x4D38,0x4D39,
- 0x4D3A,0x4D3B,0x4D3C,0x4D3D,0x4D3E,0x4D3F,0x4D40,0x4D41,
- 0x4D42,0x4D43,0x4D44,0x4D45,0x4D46,0x4D47,0x4D48,0x4D49,
- 0x4D4A,0x4D4B,0x4D4C,0x4D4D,0x4D4E,0x4D4F,0x4D50,0x4D51,
- 0x4D52,0x4D53,0x4D54,0x4D55,0x4D56,0x4D57,0x4D58,0x4D59,
- 0x4D5A,0x4D5B,0x4D5C,0x4D5D,0x4D5E,0x4D5F,0x4D60,0x4D61,
- 0x4D62,0x4D63,0x4D64,0x4D65,0x4D66,0x4D67,0x4D68,0x4D69,
- 0x4D6A,0x4D6B,0x4D6C,0x4D6D,0x4D6E,0x4D6F,0x4D70,0x4D71,
- 0x4D72,0x4D73,0x4D74,0x4D75,0x4D76,0x4D77,0x4D78,0x4D79,
- 0x4D7A,0x4D7B,0x4D7C,0x4D7D,0x4D7E,0x4D7F,0x4D80,0x4D81,
- 0x4D82,0x4D83,0x4D84,0x4D85,0x4D86,0x4D87,0x4D88,0x4D89,
- 0x4D8A,0x4D8B,0x4D8C,0x4D8D,0x4D8E,0x4D8F,0x4D90,0x4D91,
- 0x4D92,0x4D93,0x4D94,0x4D95,0x4D96,0x4D97,0x4D98,0x4D99,
- 0x4D9A,0x4D9B,0x4D9C,0x4D9D,0x4D9E,0x4D9F,0x4DA0,0x4DA1,
- 0x4DA2,0x4DA3,0x4DA4,0x4DA5,0x4DA6,0x4DA7,0x4DA8,0x4DA9,
- 0x4DAA,0x4DAB,0x4DAC,0x4DAD,0x4DAF,0x4DB0,0x4DB1,0x4DB2,
- 0x4DB3,0x4DB4,0x4DB5,0x4DB6,0x4DB7,0x4DB8,0x4DB9,0x4DBA,
- 0x4DBB,0x4DBC,0x4DBD,0x4DBE,0x4DBF,0x4DC0,0x4DC1,0x4DC2,
- 0x4DC3,0x4DC4,0x4DC5,0x4DC6,0x4DC7,0x4DC8,0x4DC9,0x4DCA,
- 0x4DCB,0x4DCC,0x4DCD,0x4DCE,0x4DCF,0x4DD0,0x4DD1,0x4DD2,
- 0x4DD3,0x4DD4,0x4DD5,0x4DD6,0x4DD7,0x4DD8,0x4DD9,0x4DDA,
- 0x4DDB,0x4DDC,0x4DDD,0x4DDE,0x4DDF,0x4DE0,0x4DE1,0x4DE2,
- 0x4DE3,0x4DE4,0x4DE5,0x4DE6,0x4DE7,0x4DE8,0x4DE9,0x4DEA,
- 0x4DEB,0x4DEC,0x4DED,0x4DEE,0x4DEF,0x4DF0,0x4DF1,0x4DF2,
- 0x4DF3,0x4DF4,0x4DF5,0x4DF6,0x4DF7,0x4DF8,0x4DF9,0x4DFA,
- 0x4DFB,0x4DFC,0x4DFD,0x4DFE,0x4DFF,0xE76C,0xE7C8,0xE7E7,
- 0xE7E8,0xE7E9,0xE7EA,0xE7EB,0xE7EC,0xE7ED,0xE7EE,0xE7EF,
- 0xE7F0,0xE7F1,0xE7F2,0xE7F3,0xE815,0xE819,0xE81A,0xE81B,
- 0xE81C,0xE81D,0xE81F,0xE820,0xE821,0xE822,0xE823,0xE824,
- 0xE825,0xE827,0xE828,0xE829,0xE82A,0xE82D,0xE82E,0xE82F,
- 0xE830,0xE833,0xE834,0xE835,0xE836,0xE837,0xE838,0xE839,
- 0xE83A,0xE83C,0xE83D,0xE83E,0xE83F,0xE840,0xE841,0xE842,
- 0xE844,0xE845,0xE846,0xE847,0xE848,0xE849,0xE84A,0xE84B,
- 0xE84C,0xE84D,0xE84E,0xE84F,0xE850,0xE851,0xE852,0xE853,
- 0xE856,0xE857,0xE858,0xE859,0xE85A,0xE85B,0xE85C,0xE85D,
- 0xE85E,0xE85F,0xE860,0xE861,0xE862,0xE863,0xF92D,0xF92E,
- 0xF92F,0xF930,0xF931,0xF932,0xF933,0xF934,0xF935,0xF936,
- 0xF937,0xF938,0xF939,0xF93A,0xF93B,0xF93C,0xF93D,0xF93E,
- 0xF93F,0xF940,0xF941,0xF942,0xF943,0xF944,0xF945,0xF946,
- 0xF947,0xF948,0xF949,0xF94A,0xF94B,0xF94C,0xF94D,0xF94E,
- 0xF94F,0xF950,0xF951,0xF952,0xF953,0xF954,0xF955,0xF956,
- 0xF957,0xF958,0xF959,0xF95A,0xF95B,0xF95C,0xF95D,0xF95E,
- 0xF95F,0xF960,0xF961,0xF962,0xF963,0xF964,0xF965,0xF966,
- 0xF967,0xF968,0xF969,0xF96A,0xF96B,0xF96C,0xF96D,0xF96E,
- 0xF96F,0xF970,0xF971,0xF972,0xF973,0xF974,0xF975,0xF976,
- 0xF977,0xF978,0xF97A,0xF97B,0xF97C,0xF97D,0xF97E,0xF97F,
- 0xF980,0xF981,0xF982,0xF983,0xF984,0xF985,0xF986,0xF987,
- 0xF988,0xF989,0xF98A,0xF98B,0xF98C,0xF98D,0xF98E,0xF98F,
- 0xF990,0xF991,0xF992,0xF993,0xF994,0xF996,0xF997,0xF998,
- 0xF999,0xF99A,0xF99B,0xF99C,0xF99D,0xF99E,0xF99F,0xF9A0,
- 0xF9A1,0xF9A2,0xF9A3,0xF9A4,0xF9A5,0xF9A6,0xF9A7,0xF9A8,
- 0xF9A9,0xF9AA,0xF9AB,0xF9AC,0xF9AD,0xF9AE,0xF9AF,0xF9B0,
- 0xF9B1,0xF9B2,0xF9B3,0xF9B4,0xF9B5,0xF9B6,0xF9B7,0xF9B8,
- 0xF9B9,0xF9BA,0xF9BB,0xF9BC,0xF9BD,0xF9BE,0xF9BF,0xF9C0,
- 0xF9C1,0xF9C2,0xF9C3,0xF9C4,0xF9C5,0xF9C6,0xF9C7,0xF9C8,
- 0xF9C9,0xF9CA,0xF9CB,0xF9CC,0xF9CD,0xF9CE,0xF9CF,0xF9D0,
- 0xF9D1,0xF9D2,0xF9D3,0xF9D4,0xF9D5,0xF9D6,0xF9D7,0xF9D8,
- 0xF9D9,0xF9DA,0xF9DB,0xF9DC,0xF9DD,0xF9DE,0xF9DF,0xF9E0,
- 0xF9E1,0xF9E2,0xF9E3,0xF9E4,0xF9E5,0xF9E6,0xF9E8,0xF9E9,
- 0xF9EA,0xF9EB,0xF9EC,0xF9ED,0xF9EE,0xF9EF,0xF9F0,0xF9F2,
- 0xF9F3,0xF9F4,0xF9F5,0xF9F6,0xF9F7,0xF9F8,0xF9F9,0xF9FA,
- 0xF9FB,0xF9FC,0xF9FD,0xF9FE,0xF9FF,0xFA00,0xFA01,0xFA02,
- 0xFA03,0xFA04,0xFA05,0xFA06,0xFA07,0xFA08,0xFA09,0xFA0A,
- 0xFA0B,0xFA10,0xFA12,0xFA15,0xFA16,0xFA17,0xFA19,0xFA1A,
- 0xFA1B,0xFA1C,0xFA1D,0xFA1E,0xFA22,0xFA25,0xFA26,0xFE32,
- 0xFE45,0xFE46,0xFE47,0xFE48,0xFE53,0xFE58,0xFE67,0xFE6C,
- 0xFE6D,0xFE6E,0xFE6F,0xFE70,0xFE71,0xFE72,0xFE73,0xFE74,
- 0xFE75,0xFE76,0xFE77,0xFE78,0xFE79,0xFE7A,0xFE7B,0xFE7C,
- 0xFE7D,0xFE7E,0xFE7F,0xFE80,0xFE81,0xFE82,0xFE83,0xFE84,
- 0xFE85,0xFE86,0xFE87,0xFE88,0xFE89,0xFE8A,0xFE8B,0xFE8C,
- 0xFE8D,0xFE8E,0xFE8F,0xFE90,0xFE91,0xFE92,0xFE93,0xFE94,
- 0xFE95,0xFE96,0xFE97,0xFE98,0xFE99,0xFE9A,0xFE9B,0xFE9C,
- 0xFE9D,0xFE9E,0xFE9F,0xFEA0,0xFEA1,0xFEA2,0xFEA3,0xFEA4,
- 0xFEA5,0xFEA6,0xFEA7,0xFEA8,0xFEA9,0xFEAA,0xFEAB,0xFEAC,
- 0xFEAD,0xFEAE,0xFEAF,0xFEB0,0xFEB1,0xFEB2,0xFEB3,0xFEB4,
- 0xFEB5,0xFEB6,0xFEB7,0xFEB8,0xFEB9,0xFEBA,0xFEBB,0xFEBC,
- 0xFEBD,0xFEBE,0xFEBF,0xFEC0,0xFEC1,0xFEC2,0xFEC3,0xFEC4,
- 0xFEC5,0xFEC6,0xFEC7,0xFEC8,0xFEC9,0xFECA,0xFECB,0xFECC,
- 0xFECD,0xFECE,0xFECF,0xFED0,0xFED1,0xFED2,0xFED3,0xFED4,
- 0xFED5,0xFED6,0xFED7,0xFED8,0xFED9,0xFEDA,0xFEDB,0xFEDC,
- 0xFEDD,0xFEDE,0xFEDF,0xFEE0,0xFEE1,0xFEE2,0xFEE3,0xFEE4,
- 0xFEE5,0xFEE6,0xFEE7,0xFEE8,0xFEE9,0xFEEA,0xFEEB,0xFEEC,
- 0xFEED,0xFEEE,0xFEEF,0xFEF0,0xFEF1,0xFEF2,0xFEF3,0xFEF4,
- 0xFEF5,0xFEF6,0xFEF7,0xFEF8,0xFEF9,0xFEFA,0xFEFB,0xFEFC,
- 0xFEFD,0xFEFE,0xFEFF,0xFF00,0xFF5F,0xFF60,0xFF61,0xFF62,
- 0xFF63,0xFF64,0xFF65,0xFF66,0xFF67,0xFF68,0xFF69,0xFF6A,
- 0xFF6B,0xFF6C,0xFF6D,0xFF6E,0xFF6F,0xFF70,0xFF71,0xFF72,
- 0xFF73,0xFF74,0xFF75,0xFF76,0xFF77,0xFF78,0xFF79,0xFF7A,
- 0xFF7B,0xFF7C,0xFF7D,0xFF7E,0xFF7F,0xFF80,0xFF81,0xFF82,
- 0xFF83,0xFF84,0xFF85,0xFF86,0xFF87,0xFF88,0xFF89,0xFF8A,
- 0xFF8B,0xFF8C,0xFF8D,0xFF8E,0xFF8F,0xFF90,0xFF91,0xFF92,
- 0xFF93,0xFF94,0xFF95,0xFF96,0xFF97,0xFF98,0xFF99,0xFF9A,
- 0xFF9B,0xFF9C,0xFF9D,0xFF9E,0xFF9F,0xFFA0,0xFFA1,0xFFA2,
- 0xFFA3,0xFFA4,0xFFA5,0xFFA6,0xFFA7,0xFFA8,0xFFA9,0xFFAA,
- 0xFFAB,0xFFAC,0xFFAD,0xFFAE,0xFFAF,0xFFB0,0xFFB1,0xFFB2,
- 0xFFB3,0xFFB4,0xFFB5,0xFFB6,0xFFB7,0xFFB8,0xFFB9,0xFFBA,
- 0xFFBB,0xFFBC,0xFFBD,0xFFBE,0xFFBF,0xFFC0,0xFFC1,0xFFC2,
- 0xFFC3,0xFFC4,0xFFC5,0xFFC6,0xFFC7,0xFFC8,0xFFC9,0xFFCA,
- 0xFFCB,0xFFCC,0xFFCD,0xFFCE,0xFFCF,0xFFD0,0xFFD1,0xFFD2,
- 0xFFD3,0xFFD4,0xFFD5,0xFFD6,0xFFD7,0xFFD8,0xFFD9,0xFFDA,
- 0xFFDB,0xFFDC,0xFFDD,0xFFDE,0xFFDF,
-};
-
-static ImplGb180302000ToUnicodeRange const
- aImplGb180302000ToUnicodeRanges[] = {
- { 23940, 820, 7922, 0x0452 },
- { 24760, 9219, 11329, 0x2643 },
- { 26057, 12973, 13738, 0x361B },
- { 27701, 14698, 15583, 0x3CE1 },
- { 28661, 15847, 16318, 0x4160 },
- { 28925, 16729, 17102, 0x44D7 },
- { 29336, 17418, 17859, 0x478E },
- { 29652, 17961, 18664, 0x49B8 },
- { 29754, 19043, 33469, 0x9FA6 },
- { 30133, 33550, 37845, 0xE865 },
- { 30214, 38078, 39108, 0xFA2A },
- { 30447, 39394, 39420, 0xFFE6 },
- { -1, 0, 0, 0 }
-};
-
-static sal_uInt32 const aImplUnicodeToGb180302000Data[] = {
- 0x81308130,0x81308131,0x81308132,0x81308133,0x81308134,0x81308135,
- 0x81308136,0x81308137,0x81308138,0x81308139,0x81308230,0x81308231,
- 0x81308232,0x81308233,0x81308234,0x81308235,0x81308236,0x81308237,
- 0x81308238,0x81308239,0x81308330,0x81308331,0x81308332,0x81308333,
- 0x81308334,0x81308335,0x81308336,0x81308337,0x81308338,0x81308339,
- 0x81308430,0x81308431,0x81308432,0x81308433,0x81308434,0x81308435,
- 0xA1E8,0x81308436,0x81308437, 0xA1EC, 0xA1A7,0x81308438,
- 0x81308439,0x81308530,0x81308531,0x81308532,0x81308533,0x81308534,
- 0xA1E3, 0xA1C0,0x81308535,0x81308536,0x81308537,0x81308538,
- 0x81308539, 0xA1A4,0x81308630,0x81308631,0x81308632,0x81308633,
- 0x81308634,0x81308635,0x81308636,0x81308637,0x81308638,0x81308639,
- 0x81308730,0x81308731,0x81308732,0x81308733,0x81308734,0x81308735,
- 0x81308736,0x81308737,0x81308738,0x81308739,0x81308830,0x81308831,
- 0x81308832,0x81308833,0x81308834,0x81308835,0x81308836,0x81308837,
- 0x81308838,0x81308839,0x81308930, 0xA1C1,0x81308931,0x81308932,
- 0x81308933,0x81308934,0x81308935,0x81308936,0x81308937,0x81308938,
- 0xA8A4, 0xA8A2,0x81308939,0x81308A30,0x81308A31,0x81308A32,
- 0x81308A33,0x81308A34, 0xA8A8, 0xA8A6, 0xA8BA,0x81308A35,
- 0xA8AC, 0xA8AA,0x81308A36,0x81308A37,0x81308A38,0x81308A39,
- 0xA8B0, 0xA8AE,0x81308B30,0x81308B31,0x81308B32, 0xA1C2,
- 0x81308B33, 0xA8B4, 0xA8B2,0x81308B34, 0xA8B9,0x81308B35,
- 0x81308B36,0x81308B37,0x81308B38, 0xA8A1,0x81308B39,0x81308C30,
- 0x81308C31,0x81308C32,0x81308C33,0x81308C34,0x81308C35,0x81308C36,
- 0x81308C37,0x81308C38,0x81308C39,0x81308D30,0x81308D31,0x81308D32,
- 0x81308D33,0x81308D34,0x81308D35, 0xA8A5,0x81308D36,0x81308D37,
- 0x81308D38,0x81308D39,0x81308E30,0x81308E31,0x81308E32, 0xA8A7,
- 0x81308E33,0x81308E34,0x81308E35,0x81308E36,0x81308E37,0x81308E38,
- 0x81308E39,0x81308F30,0x81308F31,0x81308F32,0x81308F33,0x81308F34,
- 0x81308F35,0x81308F36,0x81308F37, 0xA8A9,0x81308F38,0x81308F39,
- 0x81309030,0x81309031,0x81309032,0x81309033,0x81309034,0x81309035,
- 0x81309036,0x81309037,0x81309038,0x81309039,0x81309130,0x81309131,
- 0x81309132,0x81309133,0x81309134,0x81309135,0x81309136,0x81309137,
- 0x81309138,0x81309139,0x81309230,0x81309231, 0xA8BD,0x81309232,
- 0x81309233,0x81309234, 0xA8BE,0x81309235,0x81309236,0x81309237,
- 0x81309238, 0xA8AD,0x81309239,0x81309330,0x81309331,0x81309332,
- 0x81309333,0x81309334,0x81309335,0x81309336,0x81309337,0x81309338,
- 0x81309339,0x81309430,0x81309431,0x81309432,0x81309433,0x81309434,
- 0x81309435,0x81309436,0x81309437,0x81309438,0x81309439,0x81309530,
- 0x81309531,0x81309532,0x81309533,0x81309534,0x81309535,0x81309536,
- 0x81309537, 0xA8B1,0x81309538,0x81309539,0x81309630,0x81309631,
- 0x81309632,0x81309633,0x81309634,0x81309635,0x81309636,0x81309637,
- 0x81309638,0x81309639,0x81309730,0x81309731,0x81309732,0x81309733,
- 0x81309734,0x81309735,0x81309736,0x81309737,0x81309738,0x81309739,
- 0x81309830,0x81309831,0x81309832,0x81309833,0x81309834,0x81309835,
- 0x81309836,0x81309837,0x81309838,0x81309839,0x81309930,0x81309931,
- 0x81309932,0x81309933,0x81309934,0x81309935,0x81309936,0x81309937,
- 0x81309938,0x81309939,0x81309A30,0x81309A31,0x81309A32,0x81309A33,
- 0x81309A34,0x81309A35,0x81309A36,0x81309A37,0x81309A38,0x81309A39,
- 0x81309B30,0x81309B31,0x81309B32,0x81309B33,0x81309B34,0x81309B35,
- 0x81309B36,0x81309B37,0x81309B38,0x81309B39,0x81309C30,0x81309C31,
- 0x81309C32,0x81309C33,0x81309C34,0x81309C35,0x81309C36,0x81309C37,
- 0x81309C38,0x81309C39,0x81309D30,0x81309D31,0x81309D32,0x81309D33,
- 0x81309D34,0x81309D35,0x81309D36,0x81309D37,0x81309D38,0x81309D39,
- 0x81309E30,0x81309E31,0x81309E32,0x81309E33,0x81309E34,0x81309E35,
- 0x81309E36,0x81309E37,0x81309E38,0x81309E39,0x81309F30,0x81309F31,
- 0x81309F32,0x81309F33,0x81309F34,0x81309F35, 0xA8A3,0x81309F36,
- 0xA8AB,0x81309F37, 0xA8AF,0x81309F38, 0xA8B3,0x81309F39,
- 0xA8B5,0x8130A030, 0xA8B6,0x8130A031, 0xA8B7,0x8130A032,
- 0xA8B8,0x8130A033,0x8130A034,0x8130A035,0x8130A036,0x8130A037,
- 0x8130A038,0x8130A039,0x8130A130,0x8130A131,0x8130A132,0x8130A133,
- 0x8130A134,0x8130A135,0x8130A136,0x8130A137,0x8130A138,0x8130A139,
- 0x8130A230,0x8130A231,0x8130A232,0x8130A233,0x8130A234,0x8130A235,
- 0x8130A236,0x8130A237,0x8130A238,0x8130A239,0x8130A330, 0xA8BF,
- 0x8130A331,0x8130A332,0x8130A333,0x8130A334,0x8130A335,0x8130A336,
- 0x8130A337,0x8130A338,0x8130A339,0x8130A430,0x8130A431,0x8130A432,
- 0x8130A433,0x8130A434,0x8130A435,0x8130A436,0x8130A437,0x8130A438,
- 0x8130A439,0x8130A530,0x8130A531,0x8130A532,0x8130A533,0x8130A534,
- 0x8130A535,0x8130A536,0x8130A537,0x8130A538,0x8130A539,0x8130A630,
- 0x8130A631,0x8130A632,0x8130A633,0x8130A634,0x8130A635,0x8130A636,
- 0x8130A637,0x8130A638,0x8130A639,0x8130A730,0x8130A731,0x8130A732,
- 0x8130A733,0x8130A734,0x8130A735,0x8130A736,0x8130A737,0x8130A738,
- 0x8130A739,0x8130A830,0x8130A831,0x8130A832,0x8130A833,0x8130A834,
- 0x8130A835,0x8130A836,0x8130A837,0x8130A838,0x8130A839,0x8130A930,
- 0x8130A931,0x8130A932,0x8130A933,0x8130A934,0x8130A935,0x8130A936,
- 0x8130A937,0x8130A938,0x8130A939,0x8130AA30,0x8130AA31,0x8130AA32,
- 0x8130AA33,0x8130AA34,0x8130AA35,0x8130AA36,0x8130AA37,0x8130AA38,
- 0x8130AA39,0x8130AB30,0x8130AB31,0x8130AB32,0x8130AB33,0x8130AB34,
- 0x8130AB35,0x8130AB36,0x8130AB37, 0xA8BB,0x8130AB38,0x8130AB39,
- 0x8130AC30,0x8130AC31,0x8130AC32,0x8130AC33,0x8130AC34,0x8130AC35,
- 0x8130AC36,0x8130AC37,0x8130AC38,0x8130AC39,0x8130AD30,0x8130AD31,
- 0x8130AD32, 0xA8C0,0x8130AD33,0x8130AD34,0x8130AD35,0x8130AD36,
- 0x8130AD37,0x8130AD38,0x8130AD39,0x8130AE30,0x8130AE31,0x8130AE32,
- 0x8130AE33,0x8130AE34,0x8130AE35,0x8130AE36,0x8130AE37,0x8130AE38,
- 0x8130AE39,0x8130AF30,0x8130AF31,0x8130AF32,0x8130AF33,0x8130AF34,
- 0x8130AF35,0x8130AF36,0x8130AF37,0x8130AF38,0x8130AF39,0x8130B030,
- 0x8130B031,0x8130B032,0x8130B033,0x8130B034,0x8130B035,0x8130B036,
- 0x8130B037,0x8130B038,0x8130B039,0x8130B130,0x8130B131,0x8130B132,
- 0x8130B133,0x8130B134,0x8130B135,0x8130B136,0x8130B137,0x8130B138,
- 0x8130B139,0x8130B230,0x8130B231,0x8130B232,0x8130B233,0x8130B234,
- 0x8130B235,0x8130B236,0x8130B237,0x8130B238,0x8130B239,0x8130B330,
- 0x8130B331,0x8130B332,0x8130B333,0x8130B334,0x8130B335,0x8130B336,
- 0x8130B337,0x8130B338,0x8130B339,0x8130B430,0x8130B431,0x8130B432,
- 0x8130B433,0x8130B434,0x8130B435,0x8130B436,0x8130B437,0x8130B438,
- 0x8130B439,0x8130B530,0x8130B531,0x8130B532,0x8130B533,0x8130B534,
- 0x8130B535,0x8130B536,0x8130B537,0x8130B538,0x8130B539,0x8130B630,
- 0x8130B631,0x8130B632,0x8130B633,0x8130B634,0x8130B635,0x8130B636,
- 0x8130B637,0x8130B638,0x8130B639,0x8130B730,0x8130B731,0x8130B732,
- 0x8130B733, 0xA1A6,0x8130B734, 0xA1A5, 0xA840, 0xA841,
- 0x8130B735,0x8130B736,0x8130B737,0x8130B738,0x8130B739,0x8130B830,
- 0x8130B831,0x8130B832,0x8130B833,0x8130B834,0x8130B835,0x8130B836,
- 0x8130B837, 0xA842,0x8130B838,0x8130B839,0x8130B930,0x8130B931,
- 0x8130B932,0x8130B933,0x8130B934,0x8130B935,0x8130B936,0x8130B937,
- 0x8130B938,0x8130B939,0x8130BA30,0x8130BA31,0x8130BA32,0x8130BA33,
- 0x8130BA34,0x8130BA35,0x8130BA36,0x8130BA37,0x8130BA38,0x8130BA39,
- 0x8130BB30,0x8130BB31,0x8130BB32,0x8130BB33,0x8130BB34,0x8130BB35,
- 0x8130BB36,0x8130BB37,0x8130BB38,0x8130BB39,0x8130BC30,0x8130BC31,
- 0x8130BC32,0x8130BC33,0x8130BC34,0x8130BC35,0x8130BC36,0x8130BC37,
- 0x8130BC38,0x8130BC39,0x8130BD30,0x8130BD31,0x8130BD32,0x8130BD33,
- 0x8130BD34,0x8130BD35,0x8130BD36,0x8130BD37,0x8130BD38,0x8130BD39,
- 0x8130BE30,0x8130BE31,0x8130BE32,0x8130BE33,0x8130BE34,0x8130BE35,
- 0x8130BE36,0x8130BE37,0x8130BE38,0x8130BE39,0x8130BF30,0x8130BF31,
- 0x8130BF32,0x8130BF33,0x8130BF34,0x8130BF35,0x8130BF36,0x8130BF37,
- 0x8130BF38,0x8130BF39,0x8130C030,0x8130C031,0x8130C032,0x8130C033,
- 0x8130C034,0x8130C035,0x8130C036,0x8130C037,0x8130C038,0x8130C039,
- 0x8130C130,0x8130C131,0x8130C132,0x8130C133,0x8130C134,0x8130C135,
- 0x8130C136,0x8130C137,0x8130C138,0x8130C139,0x8130C230,0x8130C231,
- 0x8130C232,0x8130C233,0x8130C234,0x8130C235,0x8130C236,0x8130C237,
- 0x8130C238,0x8130C239,0x8130C330,0x8130C331,0x8130C332,0x8130C333,
- 0x8130C334,0x8130C335,0x8130C336,0x8130C337,0x8130C338,0x8130C339,
- 0x8130C430,0x8130C431,0x8130C432,0x8130C433,0x8130C434,0x8130C435,
- 0x8130C436,0x8130C437,0x8130C438,0x8130C439,0x8130C530,0x8130C531,
- 0x8130C532,0x8130C533,0x8130C534,0x8130C535,0x8130C536,0x8130C537,
- 0x8130C538,0x8130C539,0x8130C630,0x8130C631,0x8130C632,0x8130C633,
- 0x8130C634,0x8130C635,0x8130C636,0x8130C637,0x8130C638,0x8130C639,
- 0x8130C730,0x8130C731,0x8130C732,0x8130C733,0x8130C734,0x8130C735,
- 0x8130C736,0x8130C737,0x8130C738,0x8130C739,0x8130C830,0x8130C831,
- 0x8130C832,0x8130C833,0x8130C834,0x8130C835,0x8130C836,0x8130C837,
- 0x8130C838,0x8130C839,0x8130C930,0x8130C931,0x8130C932,0x8130C933,
- 0x8130C934,0x8130C935,0x8130C936,0x8130C937,0x8130C938,0x8130C939,
- 0x8130CA30,0x8130CA31,0x8130CA32,0x8130CA33,0x8130CA34,0x8130CA35,
- 0x8130CA36,0x8130CA37,0x8130CA38,0x8130CA39,0x8130CB30, 0xA6A1,
- 0xA6A2, 0xA6A3, 0xA6A4, 0xA6A5, 0xA6A6, 0xA6A7,
- 0xA6A8, 0xA6A9, 0xA6AA, 0xA6AB, 0xA6AC, 0xA6AD,
- 0xA6AE, 0xA6AF, 0xA6B0, 0xA6B1,0x8130CB31, 0xA6B2,
- 0xA6B3, 0xA6B4, 0xA6B5, 0xA6B6, 0xA6B7, 0xA6B8,
- 0x8130CB32,0x8130CB33,0x8130CB34,0x8130CB35,0x8130CB36,0x8130CB37,
- 0x8130CB38, 0xA6C1, 0xA6C2, 0xA6C3, 0xA6C4, 0xA6C5,
- 0xA6C6, 0xA6C7, 0xA6C8, 0xA6C9, 0xA6CA, 0xA6CB,
- 0xA6CC, 0xA6CD, 0xA6CE, 0xA6CF, 0xA6D0, 0xA6D1,
- 0x8130CB39, 0xA6D2, 0xA6D3, 0xA6D4, 0xA6D5, 0xA6D6,
- 0xA6D7, 0xA6D8,0x8130CC30,0x8130CC31,0x8130CC32,0x8130CC33,
- 0x8130CC34,0x8130CC35,0x8130CC36,0x8130CC37,0x8130CC38,0x8130CC39,
- 0x8130CD30,0x8130CD31,0x8130CD32,0x8130CD33,0x8130CD34,0x8130CD35,
- 0x8130CD36,0x8130CD37,0x8130CD38,0x8130CD39,0x8130CE30,0x8130CE31,
- 0x8130CE32,0x8130CE33,0x8130CE34,0x8130CE35,0x8130CE36,0x8130CE37,
- 0x8130CE38,0x8130CE39,0x8130CF30,0x8130CF31,0x8130CF32,0x8130CF33,
- 0x8130CF34,0x8130CF35,0x8130CF36,0x8130CF37,0x8130CF38,0x8130CF39,
- 0x8130D030,0x8130D031,0x8130D032,0x8130D033,0x8130D034,0x8130D035,
- 0x8130D036,0x8130D037,0x8130D038,0x8130D039,0x8130D130,0x8130D131,
- 0x8130D132,0x8130D133,0x8130D134, 0xA7A7,0x8130D135,0x8130D136,
- 0x8130D137,0x8130D138,0x8130D139,0x8130D230,0x8130D231,0x8130D232,
- 0x8130D233,0x8130D234,0x8130D235,0x8130D236,0x8130D237,0x8130D238,
- 0xA7A1, 0xA7A2, 0xA7A3, 0xA7A4, 0xA7A5, 0xA7A6,
- 0xA7A8, 0xA7A9, 0xA7AA, 0xA7AB, 0xA7AC, 0xA7AD,
- 0xA7AE, 0xA7AF, 0xA7B0, 0xA7B1, 0xA7B2, 0xA7B3,
- 0xA7B4, 0xA7B5, 0xA7B6, 0xA7B7, 0xA7B8, 0xA7B9,
- 0xA7BA, 0xA7BB, 0xA7BC, 0xA7BD, 0xA7BE, 0xA7BF,
- 0xA7C0, 0xA7C1, 0xA7D1, 0xA7D2, 0xA7D3, 0xA7D4,
- 0xA7D5, 0xA7D6, 0xA7D8, 0xA7D9, 0xA7DA, 0xA7DB,
- 0xA7DC, 0xA7DD, 0xA7DE, 0xA7DF, 0xA7E0, 0xA7E1,
- 0xA7E2, 0xA7E3, 0xA7E4, 0xA7E5, 0xA7E6, 0xA7E7,
- 0xA7E8, 0xA7E9, 0xA7EA, 0xA7EB, 0xA7EC, 0xA7ED,
- 0xA7EE, 0xA7EF, 0xA7F0, 0xA7F1,0x8130D239, 0xA7D7,
- 0xA95C,0x8136A532,0x8136A533, 0xA843, 0xA1AA, 0xA844,
- 0xA1AC,0x8136A534, 0xA1AE, 0xA1AF,0x8136A535,0x8136A536,
- 0xA1B0, 0xA1B1,0x8136A537,0x8136A538,0x8136A539,0x8136A630,
- 0x8136A631,0x8136A632,0x8136A633, 0xA845, 0xA1AD,0x8136A634,
- 0x8136A635,0x8136A636,0x8136A637,0x8136A638,0x8136A639,0x8136A730,
- 0x8136A731,0x8136A732, 0xA1EB,0x8136A733, 0xA1E4, 0xA1E5,
- 0x8136A734, 0xA846,0x8136A735,0x8136A736,0x8136A737,0x8136A738,
- 0x8136A739, 0xA1F9,0x8136A830,0x8136A831,0x8136A832,0x8136A833,
- 0x8136A834,0x8136A835,0x8136A836,0x8136A837,0x8136A838,0x8136A839,
- 0x8136A930,0x8136A931,0x8136A932,0x8136A933,0x8136A934,0x8136A935,
- 0x8136A936,0x8136A937,0x8136A938,0x8136A939,0x8136AA30,0x8136AA31,
- 0x8136AA32,0x8136AA33,0x8136AA34,0x8136AA35,0x8136AA36,0x8136AA37,
- 0x8136AA38,0x8136AA39,0x8136AB30,0x8136AB31,0x8136AB32,0x8136AB33,
- 0x8136AB34,0x8136AB35,0x8136AB36,0x8136AB37,0x8136AB38,0x8136AB39,
- 0x8136AC30,0x8136AC31,0x8136AC32,0x8136AC33,0x8136AC34,0x8136AC35,
- 0x8136AC36,0x8136AC37,0x8136AC38,0x8136AC39,0x8136AD30,0x8136AD31,
- 0x8136AD32,0x8136AD33,0x8136AD34,0x8136AD35,0x8136AD36,0x8136AD37,
- 0x8136AD38,0x8136AD39,0x8136AE30,0x8136AE31,0x8136AE32,0x8136AE33,
- 0x8136AE34,0x8136AE35,0x8136AE36,0x8136AE37,0x8136AE38,0x8136AE39,
- 0x8136AF30,0x8136AF31,0x8136AF32,0x8136AF33,0x8136AF34,0x8136AF35,
- 0x8136AF36,0x8136AF37,0x8136AF38,0x8136AF39,0x8136B030,0x8136B031,
- 0x8136B032,0x8136B033,0x8136B034,0x8136B035,0x8136B036,0x8136B037,
- 0x8136B038,0x8136B039,0x8136B130,0x8136B131,0x8136B132,0x8136B133,
- 0x8136B134,0x8136B135,0x8136B136,0x8136B137,0x8136B138,0x8136B139,
- 0x8136B230,0x8136B231,0x8136B232,0x8136B233,0x8136B234,0x8136B235,
- 0x8136B236,0x8136B237,0x8136B238,0x8136B239,0x8136B330,0x8136B331,
- 0xA2E3,0x8136B332,0x8136B333,0x8136B334,0x8136B335,0x8136B336,
- 0x8136B337,0x8136B338,0x8136B339,0x8136B430,0x8136B431,0x8136B432,
- 0x8136B433,0x8136B434,0x8136B435,0x8136B436,0x8136B437,0x8136B438,
- 0x8136B439,0x8136B530,0x8136B531,0x8136B532,0x8136B533,0x8136B534,
- 0x8136B535,0x8136B536,0x8136B537,0x8136B538,0x8136B539,0x8136B630,
- 0x8136B631,0x8136B632,0x8136B633,0x8136B634,0x8136B635,0x8136B636,
- 0x8136B637,0x8136B638,0x8136B639,0x8136B730,0x8136B731,0x8136B732,
- 0x8136B733,0x8136B734,0x8136B735,0x8136B736,0x8136B737,0x8136B738,
- 0x8136B739,0x8136B830,0x8136B831,0x8136B832,0x8136B833,0x8136B834,
- 0x8136B835,0x8136B836,0x8136B837,0x8136B838,0x8136B839,0x8136B930,
- 0x8136B931,0x8136B932,0x8136B933,0x8136B934,0x8136B935,0x8136B936,
- 0x8136B937,0x8136B938,0x8136B939,0x8136BA30,0x8136BA31,0x8136BA32,
- 0x8136BA33,0x8136BA34,0x8136BA35,0x8136BA36,0x8136BA37,0x8136BA38,
- 0x8136BA39,0x8136BB30,0x8136BB31,0x8136BB32,0x8136BB33,0x8136BB34,
- 0x8136BB35,0x8136BB36,0x8136BB37, 0xA1E6,0x8136BB38, 0xA847,
- 0x8136BB39,0x8136BC30,0x8136BC31, 0xA848,0x8136BC32,0x8136BC33,
- 0x8136BC34,0x8136BC35,0x8136BC36,0x8136BC37,0x8136BC38,0x8136BC39,
- 0x8136BD30,0x8136BD31,0x8136BD32,0x8136BD33, 0xA1ED,0x8136BD34,
- 0x8136BD35,0x8136BD36,0x8136BD37,0x8136BD38,0x8136BD39,0x8136BE30,
- 0x8136BE31,0x8136BE32,0x8136BE33, 0xA959,0x8136BE34,0x8136BE35,
- 0x8136BE36,0x8136BE37,0x8136BE38,0x8136BE39,0x8136BF30,0x8136BF31,
- 0x8136BF32,0x8136BF33,0x8136BF34,0x8136BF35,0x8136BF36,0x8136BF37,
- 0x8136BF38,0x8136BF39,0x8136C030,0x8136C031,0x8136C032,0x8136C033,
- 0x8136C034,0x8136C035,0x8136C036,0x8136C037,0x8136C038,0x8136C039,
- 0x8136C130,0x8136C131,0x8136C132,0x8136C133,0x8136C134,0x8136C135,
- 0x8136C136,0x8136C137,0x8136C138,0x8136C139,0x8136C230,0x8136C231,
- 0x8136C232,0x8136C233,0x8136C234,0x8136C235,0x8136C236,0x8136C237,
- 0x8136C238,0x8136C239,0x8136C330,0x8136C331,0x8136C332,0x8136C333,
- 0x8136C334,0x8136C335,0x8136C336,0x8136C337,0x8136C338,0x8136C339,
- 0x8136C430,0x8136C431,0x8136C432,0x8136C433,0x8136C434,0x8136C435,
- 0xA2F1, 0xA2F2, 0xA2F3, 0xA2F4, 0xA2F5, 0xA2F6,
- 0xA2F7, 0xA2F8, 0xA2F9, 0xA2FA, 0xA2FB, 0xA2FC,
- 0x8136C436,0x8136C437,0x8136C438,0x8136C439, 0xA2A1, 0xA2A2,
- 0xA2A3, 0xA2A4, 0xA2A5, 0xA2A6, 0xA2A7, 0xA2A8,
- 0xA2A9, 0xA2AA,0x8136C530,0x8136C531,0x8136C532,0x8136C533,
- 0x8136C534,0x8136C535,0x8136C536,0x8136C537,0x8136C538,0x8136C539,
- 0x8136C630,0x8136C631,0x8136C632,0x8136C633,0x8136C634,0x8136C635,
- 0x8136C636,0x8136C637,0x8136C638,0x8136C639,0x8136C730,0x8136C731,
- 0xA1FB, 0xA1FC, 0xA1FA, 0xA1FD,0x8136C732,0x8136C733,
- 0xA849, 0xA84A, 0xA84B, 0xA84C,0x8136C734,0x8136C735,
- 0x8136C736,0x8136C737,0x8136C738,0x8136C739,0x8136C830,0x8136C831,
- 0x8136C832,0x8136C833,0x8136C834,0x8136C835,0x8136C836,0x8136C837,
- 0x8136C838,0x8136C839,0x8136C930,0x8136C931,0x8136C932,0x8136C933,
- 0x8136C934,0x8136C935,0x8136C936,0x8136C937,0x8136C938,0x8136C939,
- 0x8136CA30,0x8136CA31,0x8136CA32,0x8136CA33,0x8136CA34,0x8136CA35,
- 0x8136CA36,0x8136CA37,0x8136CA38,0x8136CA39,0x8136CB30,0x8136CB31,
- 0x8136CB32,0x8136CB33,0x8136CB34,0x8136CB35,0x8136CB36,0x8136CB37,
- 0x8136CB38,0x8136CB39,0x8136CC30,0x8136CC31,0x8136CC32,0x8136CC33,
- 0x8136CC34,0x8136CC35,0x8136CC36,0x8136CC37,0x8136CC38,0x8136CC39,
- 0x8136CD30,0x8136CD31,0x8136CD32,0x8136CD33,0x8136CD34,0x8136CD35,
- 0x8136CD36,0x8136CD37,0x8136CD38,0x8136CD39,0x8136CE30,0x8136CE31,
- 0x8136CE32,0x8136CE33,0x8136CE34,0x8136CE35,0x8136CE36,0x8136CE37,
- 0x8136CE38,0x8136CE39,0x8136CF30,0x8136CF31,0x8136CF32,0x8136CF33,
- 0x8136CF34,0x8136CF35,0x8136CF36,0x8136CF37,0x8136CF38,0x8136CF39,
- 0x8136D030,0x8136D031,0x8136D032,0x8136D033,0x8136D034,0x8136D035,
- 0x8136D036,0x8136D037,0x8136D038,0x8136D039,0x8136D130,0x8136D131,
- 0x8136D132,0x8136D133,0x8136D134,0x8136D135,0x8136D136,0x8136D137,
- 0x8136D138,0x8136D139,0x8136D230,0x8136D231,0x8136D232,0x8136D233,
- 0xA1CA,0x8136D234,0x8136D235,0x8136D236,0x8136D237,0x8136D238,
- 0x8136D239, 0xA1C7,0x8136D330, 0xA1C6,0x8136D331,0x8136D332,
- 0x8136D333, 0xA84D,0x8136D334,0x8136D335,0x8136D336,0x8136D337,
- 0xA1CC,0x8136D338,0x8136D339, 0xA1D8, 0xA1DE, 0xA84E,
- 0xA1CF,0x8136D430,0x8136D431, 0xA84F,0x8136D432, 0xA1CE,
- 0x8136D433, 0xA1C4, 0xA1C5, 0xA1C9, 0xA1C8, 0xA1D2,
- 0x8136D434,0x8136D435, 0xA1D3,0x8136D436,0x8136D437,0x8136D438,
- 0x8136D439,0x8136D530, 0xA1E0, 0xA1DF, 0xA1C3, 0xA1CB,
- 0x8136D531,0x8136D532,0x8136D533,0x8136D534,0x8136D535, 0xA1D7,
- 0x8136D536,0x8136D537,0x8136D538,0x8136D539,0x8136D630,0x8136D631,
- 0x8136D632,0x8136D633,0x8136D634,0x8136D635, 0xA1D6,0x8136D636,
- 0x8136D637,0x8136D638, 0xA1D5,0x8136D639,0x8136D730,0x8136D731,
- 0x8136D732,0x8136D733, 0xA850,0x8136D734,0x8136D735,0x8136D736,
- 0x8136D737,0x8136D738,0x8136D739,0x8136D830,0x8136D831,0x8136D832,
- 0x8136D833,0x8136D834,0x8136D835,0x8136D836, 0xA1D9, 0xA1D4,
- 0x8136D837,0x8136D838, 0xA1DC, 0xA1DD, 0xA851, 0xA852,
- 0x8136D839,0x8136D930,0x8136D931,0x8136D932,0x8136D933,0x8136D934,
- 0xA1DA, 0xA1DB,0x8136D935,0x8136D936,0x8136D937,0x8136D938,
- 0x8136D939,0x8136DA30,0x8136DA31,0x8136DA32,0x8136DA33,0x8136DA34,
- 0x8136DA35,0x8136DA36,0x8136DA37,0x8136DA38,0x8136DA39,0x8136DB30,
- 0x8136DB31,0x8136DB32,0x8136DB33,0x8136DB34,0x8136DB35,0x8136DB36,
- 0x8136DB37,0x8136DB38,0x8136DB39,0x8136DC30,0x8136DC31,0x8136DC32,
- 0x8136DC33,0x8136DC34,0x8136DC35,0x8136DC36,0x8136DC37,0x8136DC38,
- 0x8136DC39,0x8136DD30,0x8136DD31, 0xA892,0x8136DD32,0x8136DD33,
- 0x8136DD34, 0xA1D1,0x8136DD35,0x8136DD36,0x8136DD37,0x8136DD38,
- 0x8136DD39,0x8136DE30,0x8136DE31,0x8136DE32,0x8136DE33,0x8136DE34,
- 0x8136DE35, 0xA1CD,0x8136DE36,0x8136DE37,0x8136DE38,0x8136DE39,
- 0x8136DF30,0x8136DF31,0x8136DF32,0x8136DF33,0x8136DF34,0x8136DF35,
- 0x8136DF36,0x8136DF37,0x8136DF38,0x8136DF39,0x8136E030,0x8136E031,
- 0x8136E032,0x8136E033,0x8136E034,0x8136E035,0x8136E036,0x8136E037,
- 0x8136E038,0x8136E039,0x8136E130, 0xA853,0x8136E131,0x8136E132,
- 0x8136E133,0x8136E134,0x8136E135,0x8136E136,0x8136E137,0x8136E138,
- 0x8136E139,0x8136E230,0x8136E231,0x8136E232,0x8136E233,0x8136E234,
- 0x8136E235,0x8136E236,0x8136E237,0x8136E238,0x8136E239,0x8136E330,
- 0x8136E331,0x8136E332,0x8136E333,0x8136E334,0x8136E335,0x8136E336,
- 0x8136E337,0x8136E338,0x8136E339,0x8136E430,0x8136E431,0x8136E432,
- 0x8136E433,0x8136E434,0x8136E435,0x8136E436,0x8136E437,0x8136E438,
- 0x8136E439,0x8136E530,0x8136E531,0x8136E532,0x8136E533,0x8136E534,
- 0x8136E535,0x8136E536,0x8136E537,0x8136E538,0x8136E539,0x8136E630,
- 0x8136E631,0x8136E632,0x8136E633,0x8136E634,0x8136E635,0x8136E636,
- 0x8136E637,0x8136E638,0x8136E639,0x8136E730,0x8136E731,0x8136E732,
- 0x8136E733,0x8136E734,0x8136E735,0x8136E736,0x8136E737,0x8136E738,
- 0x8136E739,0x8136E830,0x8136E831,0x8136E832,0x8136E833,0x8136E834,
- 0x8136E835,0x8136E836,0x8136E837,0x8136E838,0x8136E839,0x8136E930,
- 0x8136E931,0x8136E932, 0xA1D0,0x8136E933,0x8136E934,0x8136E935,
- 0x8136E936,0x8136E937,0x8136E938,0x8136E939,0x8136EA30,0x8136EA31,
- 0x8136EA32,0x8136EA33,0x8136EA34,0x8136EA35,0x8136EA36,0x8136EA37,
- 0x8136EA38,0x8136EA39,0x8136EB30,0x8136EB31,0x8136EB32,0x8136EB33,
- 0x8136EB34,0x8136EB35,0x8136EB36,0x8136EB37,0x8136EB38,0x8136EB39,
- 0x8136EC30,0x8136EC31,0x8136EC32,0x8136EC33,0x8136EC34,0x8136EC35,
- 0x8136EC36,0x8136EC37,0x8136EC38,0x8136EC39,0x8136ED30,0x8136ED31,
- 0x8136ED32,0x8136ED33,0x8136ED34,0x8136ED35,0x8136ED36,0x8136ED37,
- 0x8136ED38,0x8136ED39,0x8136EE30,0x8136EE31,0x8136EE32,0x8136EE33,
- 0x8136EE34,0x8136EE35,0x8136EE36,0x8136EE37,0x8136EE38,0x8136EE39,
- 0x8136EF30,0x8136EF31,0x8136EF32,0x8136EF33,0x8136EF34,0x8136EF35,
- 0x8136EF36,0x8136EF37,0x8136EF38,0x8136EF39,0x8136F030,0x8136F031,
- 0x8136F032,0x8136F033,0x8136F034,0x8136F035,0x8136F036,0x8136F037,
- 0x8136F038,0x8136F039,0x8136F130,0x8136F131,0x8136F132,0x8136F133,
- 0x8136F134,0x8136F135,0x8136F136,0x8136F137,0x8136F138,0x8136F139,
- 0x8136F230,0x8136F231,0x8136F232,0x8136F233,0x8136F234,0x8136F235,
- 0x8136F236,0x8136F237,0x8136F238,0x8136F239,0x8136F330,0x8136F331,
- 0x8136F332,0x8136F333,0x8136F334,0x8136F335,0x8136F336,0x8136F337,
- 0x8136F338,0x8136F339,0x8136F430,0x8136F431,0x8136F432,0x8136F433,
- 0x8136F434,0x8136F435,0x8136F436,0x8136F437,0x8136F438,0x8136F439,
- 0x8136F530,0x8136F531,0x8136F532,0x8136F533,0x8136F534,0x8136F535,
- 0x8136F536,0x8136F537,0x8136F538,0x8136F539,0x8136F630,0x8136F631,
- 0x8136F632,0x8136F633,0x8136F634,0x8136F635,0x8136F636,0x8136F637,
- 0x8136F638,0x8136F639,0x8136F730,0x8136F731,0x8136F732,0x8136F733,
- 0x8136F734,0x8136F735,0x8136F736,0x8136F737,0x8136F738,0x8136F739,
- 0x8136F830,0x8136F831,0x8136F832,0x8136F833,0x8136F834,0x8136F835,
- 0x8136F836,0x8136F837,0x8136F838,0x8136F839,0x8136F930,0x8136F931,
- 0x8136F932,0x8136F933,0x8136F934,0x8136F935,0x8136F936,0x8136F937,
- 0x8136F938,0x8136F939,0x8136FA30,0x8136FA31,0x8136FA32,0x8136FA33,
- 0x8136FA34,0x8136FA35,0x8136FA36,0x8136FA37,0x8136FA38,0x8136FA39,
- 0x8136FB30,0x8136FB31,0x8136FB32,0x8136FB33,0x8136FB34,0x8136FB35,
- 0x8136FB36,0x8136FB37,0x8136FB38,0x8136FB39,0x8136FC30,0x8136FC31,
- 0x8136FC32,0x8136FC33,0x8136FC34,0x8136FC35,0x8136FC36,0x8136FC37,
- 0x8136FC38,0x8136FC39,0x8136FD30,0x8136FD31,0x8136FD32,0x8136FD33,
- 0x8136FD34,0x8136FD35,0x8136FD36,0x8136FD37,0x8136FD38,0x8136FD39,
- 0x8136FE30,0x8136FE31,0x8136FE32,0x8136FE33,0x8136FE34,0x8136FE35,
- 0x8136FE36,0x8136FE37,0x8136FE38,0x8136FE39,0x81378130,0x81378131,
- 0x81378132,0x81378133,0x81378134,0x81378135,0x81378136,0x81378137,
- 0x81378138,0x81378139,0x81378230,0x81378231,0x81378232,0x81378233,
- 0x81378234,0x81378235,0x81378236,0x81378237,0x81378238,0x81378239,
- 0x81378330,0x81378331,0x81378332,0x81378333,0x81378334,0x81378335,
- 0x81378336,0x81378337,0x81378338,0x81378339,0x81378430,0x81378431,
- 0x81378432,0x81378433,0x81378434,0x81378435,0x81378436,0x81378437,
- 0x81378438,0x81378439,0x81378530,0x81378531,0x81378532,0x81378533,
- 0x81378534,0x81378535,0x81378536,0x81378537,0x81378538,0x81378539,
- 0x81378630,0x81378631,0x81378632,0x81378633,0x81378634,0x81378635,
- 0x81378636,0x81378637,0x81378638,0x81378639,0x81378730,0x81378731,
- 0x81378732,0x81378733,0x81378734,0x81378735,0x81378736,0x81378737,
- 0x81378738,0x81378739,0x81378830,0x81378831,0x81378832,0x81378833,
- 0x81378834,0x81378835,0x81378836,0x81378837,0x81378838,0x81378839,
- 0x81378930,0x81378931,0x81378932,0x81378933,0x81378934,0x81378935,
- 0x81378936,0x81378937,0x81378938,0x81378939,0x81378A30,0x81378A31,
- 0x81378A32,0x81378A33,0x81378A34,0x81378A35,0x81378A36,0x81378A37,
- 0x81378A38,0x81378A39,0x81378B30,0x81378B31,0x81378B32,0x81378B33,
- 0x81378B34,0x81378B35,0x81378B36,0x81378B37,0x81378B38,0x81378B39,
- 0x81378C30,0x81378C31,0x81378C32,0x81378C33,0x81378C34,0x81378C35,
- 0xA2D9, 0xA2DA, 0xA2DB, 0xA2DC, 0xA2DD, 0xA2DE,
- 0xA2DF, 0xA2E0, 0xA2E1, 0xA2E2,0x81378C36,0x81378C37,
- 0x81378C38,0x81378C39,0x81378D30,0x81378D31,0x81378D32,0x81378D33,
- 0x81378D34,0x81378D35, 0xA2C5, 0xA2C6, 0xA2C7, 0xA2C8,
- 0xA2C9, 0xA2CA, 0xA2CB, 0xA2CC, 0xA2CD, 0xA2CE,
- 0xA2CF, 0xA2D0, 0xA2D1, 0xA2D2, 0xA2D3, 0xA2D4,
- 0xA2D5, 0xA2D6, 0xA2D7, 0xA2D8, 0xA2B1, 0xA2B2,
- 0xA2B3, 0xA2B4, 0xA2B5, 0xA2B6, 0xA2B7, 0xA2B8,
- 0xA2B9, 0xA2BA, 0xA2BB, 0xA2BC, 0xA2BD, 0xA2BE,
- 0xA2BF, 0xA2C0, 0xA2C1, 0xA2C2, 0xA2C3, 0xA2C4,
- 0x81378D36,0x81378D37,0x81378D38,0x81378D39,0x81378E30,0x81378E31,
- 0x81378E32,0x81378E33,0x81378E34,0x81378E35,0x81378E36,0x81378E37,
- 0x81378E38,0x81378E39,0x81378F30,0x81378F31,0x81378F32,0x81378F33,
- 0x81378F34,0x81378F35,0x81378F36,0x81378F37,0x81378F38,0x81378F39,
- 0x81379030,0x81379031,0x81379032,0x81379033,0x81379034,0x81379035,
- 0x81379036,0x81379037,0x81379038,0x81379039,0x81379130,0x81379131,
- 0x81379132,0x81379133,0x81379134,0x81379135,0x81379136,0x81379137,
- 0x81379138,0x81379139,0x81379230,0x81379231,0x81379232,0x81379233,
- 0x81379234,0x81379235,0x81379236,0x81379237,0x81379238,0x81379239,
- 0x81379330,0x81379331,0x81379332,0x81379333,0x81379334,0x81379335,
- 0x81379336,0x81379337,0x81379338,0x81379339,0x81379430,0x81379431,
- 0x81379432,0x81379433,0x81379434,0x81379435,0x81379436,0x81379437,
- 0x81379438,0x81379439,0x81379530,0x81379531,0x81379532,0x81379533,
- 0x81379534,0x81379535,0x81379536,0x81379537,0x81379538,0x81379539,
- 0x81379630,0x81379631,0x81379632,0x81379633,0x81379634,0x81379635,
- 0x81379636,0x81379637,0x81379638,0x81379639,0x81379730,0x81379731,
- 0x81379732,0x81379733,0x81379734,0x81379735, 0xA9A4, 0xA9A5,
- 0xA9A6, 0xA9A7, 0xA9A8, 0xA9A9, 0xA9AA, 0xA9AB,
- 0xA9AC, 0xA9AD, 0xA9AE, 0xA9AF, 0xA9B0, 0xA9B1,
- 0xA9B2, 0xA9B3, 0xA9B4, 0xA9B5, 0xA9B6, 0xA9B7,
- 0xA9B8, 0xA9B9, 0xA9BA, 0xA9BB, 0xA9BC, 0xA9BD,
- 0xA9BE, 0xA9BF, 0xA9C0, 0xA9C1, 0xA9C2, 0xA9C3,
- 0xA9C4, 0xA9C5, 0xA9C6, 0xA9C7, 0xA9C8, 0xA9C9,
- 0xA9CA, 0xA9CB, 0xA9CC, 0xA9CD, 0xA9CE, 0xA9CF,
- 0xA9D0, 0xA9D1, 0xA9D2, 0xA9D3, 0xA9D4, 0xA9D5,
- 0xA9D6, 0xA9D7, 0xA9D8, 0xA9D9, 0xA9DA, 0xA9DB,
- 0xA9DC, 0xA9DD, 0xA9DE, 0xA9DF, 0xA9E0, 0xA9E1,
- 0xA9E2, 0xA9E3, 0xA9E4, 0xA9E5, 0xA9E6, 0xA9E7,
- 0xA9E8, 0xA9E9, 0xA9EA, 0xA9EB, 0xA9EC, 0xA9ED,
- 0xA9EE, 0xA9EF,0x81379736,0x81379737,0x81379738,0x81379739,
- 0xA854, 0xA855, 0xA856, 0xA857, 0xA858, 0xA859,
- 0xA85A, 0xA85B, 0xA85C, 0xA85D, 0xA85E, 0xA85F,
- 0xA860, 0xA861, 0xA862, 0xA863, 0xA864, 0xA865,
- 0xA866, 0xA867, 0xA868, 0xA869, 0xA86A, 0xA86B,
- 0xA86C, 0xA86D, 0xA86E, 0xA86F, 0xA870, 0xA871,
- 0xA872, 0xA873, 0xA874, 0xA875, 0xA876, 0xA877,
- 0x81379830,0x81379831,0x81379832,0x81379833,0x81379834,0x81379835,
- 0x81379836,0x81379837,0x81379838,0x81379839,0x81379930,0x81379931,
- 0x81379932, 0xA878, 0xA879, 0xA87A, 0xA87B, 0xA87C,
- 0xA87D, 0xA87E, 0xA880, 0xA881, 0xA882, 0xA883,
- 0xA884, 0xA885, 0xA886, 0xA887,0x81379933,0x81379934,
- 0x81379935, 0xA888, 0xA889, 0xA88A,0x81379936,0x81379937,
- 0x81379938,0x81379939,0x81379A30,0x81379A31,0x81379A32,0x81379A33,
- 0x81379A34,0x81379A35, 0xA1F6, 0xA1F5,0x81379A36,0x81379A37,
- 0x81379A38,0x81379A39,0x81379B30,0x81379B31,0x81379B32,0x81379B33,
- 0x81379B34,0x81379B35,0x81379B36,0x81379B37,0x81379B38,0x81379B39,
- 0x81379C30,0x81379C31, 0xA1F8, 0xA1F7,0x81379C32,0x81379C33,
- 0x81379C34,0x81379C35,0x81379C36,0x81379C37,0x81379C38,0x81379C39,
- 0xA88B, 0xA88C,0x81379D30,0x81379D31,0x81379D32,0x81379D33,
- 0x81379D34,0x81379D35,0x81379D36,0x81379D37, 0xA1F4, 0xA1F3,
- 0x81379D38,0x81379D39,0x81379E30, 0xA1F0,0x81379E31,0x81379E32,
- 0xA1F2, 0xA1F1,0x81379E33,0x81379E34,0x81379E35,0x81379E36,
- 0x81379E37,0x81379E38,0x81379E39,0x81379F30,0x81379F31,0x81379F32,
- 0x81379F33,0x81379F34,0x81379F35,0x81379F36,0x81379F37,0x81379F38,
- 0x81379F39,0x8137A030, 0xA88D, 0xA88E, 0xA88F, 0xA890,
- 0x8137A031,0x8137A032,0x8137A033,0x8137A034,0x8137A035,0x8137A036,
- 0x8137A037,0x8137A038,0x8137A039,0x8137A130,0x8137A131,0x8137A132,
- 0x8137A133,0x8137A134,0x8137A135,0x8137A136,0x8137A137,0x8137A138,
- 0x8137A139,0x8137A230,0x8137A231,0x8137A232,0x8137A233,0x8137A234,
- 0x8137A235,0x8137A236,0x8137A237,0x8137A238,0x8137A239,0x8137A330,
- 0x8137A331, 0xA1EF, 0xA1EE,0x8137A332,0x8137A333, 0xA891,
- 0x8137A334,0x8137A335,0x8137A336,0x8137A337,0x8137A338,0x8137A339,
- 0x8137A430,0x8137A431,0x8137A432,0x8137A433,0x8137A434,0x8137A435,
- 0x8137A436,0x8137A437,0x8137A438,0x8137A439,0x8137A530,0x8137A531,
- 0x8137A532,0x8137A533,0x8137A534,0x8137A535,0x8137A536,0x8137A537,
- 0x8137A538,0x8137A539,0x8137A630,0x8137A631,0x8137A632,0x8137A633,
- 0x8137A634,0x8137A635,0x8137A636,0x8137A637,0x8137A638,0x8137A639,
- 0x8137A730,0x8137A731,0x8137A732,0x8137A733,0x8137A734,0x8137A735,
- 0x8137A736,0x8137A737,0x8137A738,0x8137A739,0x8137A830,0x8137A831,
- 0x8137A832,0x8137A833,0x8137A834,0x8137A835,0x8137A836,0x8137A837,
- 0xA1E2,0x8137A838, 0xA1E1, 0xFE50,0x8138FD39,0x8138FE30,
- 0xFE54,0x8138FE31,0x8138FE32,0x8138FE33, 0xFE57,0x8138FE34,
- 0x8138FE35, 0xFE58, 0xFE5D,0x8138FE36,0x8138FE37,0x8138FE38,
- 0x8138FE39,0x81398130,0x81398131,0x81398132,0x81398133,0x81398134,
- 0x81398135, 0xFE5E,0x81398136,0x81398137,0x81398138,0x81398139,
- 0x81398230,0x81398231,0x81398232,0x81398233,0x81398234,0x81398235,
- 0x81398236,0x81398237,0x81398238,0x81398239,0x81398330, 0xFE6B,
- 0x81398331,0x81398332, 0xFE6E,0x81398333,0x81398334,0x81398335,
- 0xFE71,0x81398336,0x81398337,0x81398338,0x81398339, 0xFE73,
- 0x81398430,0x81398431, 0xFE74, 0xFE75,0x81398432,0x81398433,
- 0x81398434, 0xFE79,0x81398435,0x81398436,0x81398437,0x81398438,
- 0x81398439,0x81398530,0x81398531,0x81398532,0x81398533,0x81398534,
- 0x81398535,0x81398536,0x81398537,0x81398538, 0xFE84,0x81398539,
- 0x81398630,0x81398631,0x81398632,0x81398633,0x81398634,0x81398635,
- 0x81398636,0x81398637,0x81398638,0x81398639,0x81398730,0x81398731,
- 0x81398732,0x81398733,0x81398734,0x81398735,0x81398736,0x81398737,
- 0x81398738,0x81398739,0x81398830,0x81398831,0x81398832,0x81398833,
- 0x81398834,0x81398835,0x81398836,0x81398837,0x81398838,0x81398839,
- 0x81398930,0x81398931,0x81398932,0x81398933,0x81398934,0x81398935,
- 0x81398936,0x81398937,0x81398938,0x81398939,0x81398A30,0x81398A31,
- 0x81398A32,0x81398A33,0x81398A34,0x81398A35,0x81398A36,0x81398A37,
- 0x81398A38,0x81398A39,0x81398B30,0x81398B31,0x81398B32,0x81398B33,
- 0x81398B34,0x81398B35,0x81398B36,0x81398B37,0x81398B38,0x81398B39,
- 0x81398C30,0x81398C31,0x81398C32,0x81398C33,0x81398C34,0x81398C35,
- 0x81398C36,0x81398C37,0x81398C38,0x81398C39,0x81398D30,0x81398D31,
- 0x81398D32,0x81398D33,0x81398D34,0x81398D35,0x81398D36,0x81398D37,
- 0x81398D38,0x81398D39,0x81398E30,0x81398E31,0x81398E32,0x81398E33,
- 0x81398E34,0x81398E35,0x81398E36,0x81398E37,0x81398E38,0x81398E39,
- 0x81398F30,0x81398F31,0x81398F32,0x81398F33,0x81398F34,0x81398F35,
- 0x81398F36,0x81398F37,0x81398F38,0x81398F39,0x81399030,0x81399031,
- 0x81399032,0x81399033,0x81399034,0x81399035,0x81399036,0x81399037,
- 0x81399038,0x81399039,0x81399130,0x81399131,0x81399132,0x81399133,
- 0x81399134,0x81399135,0x81399136,0x81399137,0x81399138,0x81399139,
- 0x81399230,0x81399231,0x81399232,0x81399233,0x81399234,0x81399235,
- 0x81399236,0x81399237,0x81399238,0x81399239,0x81399330,0x81399331,
- 0x81399332,0x81399333,0x81399334,0x81399335,0x81399336,0x81399337,
- 0x81399338,0x81399339,0x81399430,0x81399431,0x81399432,0x81399433,
- 0x81399434,0x81399435,0x81399436,0x81399437,0x81399438,0x81399439,
- 0x81399530,0x81399531,0x81399532,0x81399533,0x81399534,0x81399535,
- 0x81399536,0x81399537,0x81399538,0x81399539,0x81399630,0x81399631,
- 0x81399632,0x81399633,0x81399634,0x81399635,0x81399636,0x81399637,
- 0x81399638,0x81399639,0x81399730,0x81399731,0x81399732,0x81399733,
- 0x81399734,0x81399735,0x81399736,0x81399737,0x81399738,0x81399739,
- 0x81399830,0x81399831,0x81399832,0x81399833,0x81399834,0x81399835,
- 0x81399836,0x81399837,0x81399838,0x81399839,0x81399930,0x81399931,
- 0x81399932,0x81399933,0x81399934,0x81399935,0x81399936,0x81399937,
- 0x81399938,0x81399939,0x81399A30,0x81399A31,0x81399A32,0x81399A33,
- 0x81399A34,0x81399A35,0x81399A36,0x81399A37,0x81399A38,0x81399A39,
- 0x81399B30,0x81399B31,0x81399B32,0x81399B33,0x81399B34,0x81399B35,
- 0x81399B36,0x81399B37,0x81399B38,0x81399B39,0x81399C30,0x81399C31,
- 0x81399C32,0x81399C33,0x81399C34,0x81399C35,0x81399C36,0x81399C37,
- 0x81399C38,0x81399C39,0x81399D30,0x81399D31,0x81399D32,0x81399D33,
- 0x81399D34,0x81399D35,0x81399D36,0x81399D37,0x81399D38,0x81399D39,
- 0x81399E30,0x81399E31,0x81399E32,0x81399E33,0x81399E34,0x81399E35,
- 0x81399E36,0x81399E37,0x81399E38,0x81399E39,0x81399F30,0x81399F31,
- 0x81399F32,0x81399F33,0x81399F34,0x81399F35,0x81399F36,0x81399F37,
- 0x81399F38,0x81399F39,0x8139A030,0x8139A031,0x8139A032,0x8139A033,
- 0x8139A034,0x8139A035,0x8139A036,0x8139A037,0x8139A038,0x8139A039,
- 0x8139A130,0x8139A131,0x8139A132,0x8139A133,0x8139A134,0x8139A135,
- 0x8139A136,0x8139A137,0x8139A138,0x8139A139,0x8139A230,0x8139A231,
- 0x8139A232,0x8139A233,0x8139A234,0x8139A235,0x8139A236,0x8139A237,
- 0x8139A238,0x8139A239,0x8139A330,0x8139A331, 0xA98A, 0xA98B,
- 0xA98C, 0xA98D, 0xA98E, 0xA98F, 0xA990, 0xA991,
- 0xA992, 0xA993, 0xA994, 0xA995,0x8139A332,0x8139A333,
- 0x8139A334,0x8139A335, 0xA1A1, 0xA1A2, 0xA1A3, 0xA1A8,
- 0x8139A336, 0xA1A9, 0xA965, 0xA996, 0xA1B4, 0xA1B5,
- 0xA1B6, 0xA1B7, 0xA1B8, 0xA1B9, 0xA1BA, 0xA1BB,
- 0xA1BE, 0xA1BF, 0xA893, 0xA1FE, 0xA1B2, 0xA1B3,
- 0xA1BC, 0xA1BD,0x8139A337,0x8139A338,0x8139A339,0x8139A430,
- 0x8139A431, 0xA894, 0xA895,0x8139A432,0x8139A433, 0xA940,
- 0xA941, 0xA942, 0xA943, 0xA944, 0xA945, 0xA946,
- 0xA947, 0xA948,0x8139A434,0x8139A435,0x8139A436,0x8139A437,
- 0x8139A438,0x8139A439,0x8139A530,0x8139A531,0x8139A532,0x8139A533,
- 0x8139A534,0x8139A535,0x8139A536,0x8139A537,0x8139A538,0x8139A539,
- 0x8139A630,0x8139A631,0x8139A632,0x8139A633, 0xA989,0x8139A634,
- 0x8139A635, 0xA4A1, 0xA4A2, 0xA4A3, 0xA4A4, 0xA4A5,
- 0xA4A6, 0xA4A7, 0xA4A8, 0xA4A9, 0xA4AA, 0xA4AB,
- 0xA4AC, 0xA4AD, 0xA4AE, 0xA4AF, 0xA4B0, 0xA4B1,
- 0xA4B2, 0xA4B3, 0xA4B4, 0xA4B5, 0xA4B6, 0xA4B7,
- 0xA4B8, 0xA4B9, 0xA4BA, 0xA4BB, 0xA4BC, 0xA4BD,
- 0xA4BE, 0xA4BF, 0xA4C0, 0xA4C1, 0xA4C2, 0xA4C3,
- 0xA4C4, 0xA4C5, 0xA4C6, 0xA4C7, 0xA4C8, 0xA4C9,
- 0xA4CA, 0xA4CB, 0xA4CC, 0xA4CD, 0xA4CE, 0xA4CF,
- 0xA4D0, 0xA4D1, 0xA4D2, 0xA4D3, 0xA4D4, 0xA4D5,
- 0xA4D6, 0xA4D7, 0xA4D8, 0xA4D9, 0xA4DA, 0xA4DB,
- 0xA4DC, 0xA4DD, 0xA4DE, 0xA4DF, 0xA4E0, 0xA4E1,
- 0xA4E2, 0xA4E3, 0xA4E4, 0xA4E5, 0xA4E6, 0xA4E7,
- 0xA4E8, 0xA4E9, 0xA4EA, 0xA4EB, 0xA4EC, 0xA4ED,
- 0xA4EE, 0xA4EF, 0xA4F0, 0xA4F1, 0xA4F2, 0xA4F3,
- 0x8139A636,0x8139A637,0x8139A638,0x8139A639,0x8139A730,0x8139A731,
- 0x8139A732, 0xA961, 0xA962, 0xA966, 0xA967,0x8139A733,
- 0x8139A734, 0xA5A1, 0xA5A2, 0xA5A3, 0xA5A4, 0xA5A5,
- 0xA5A6, 0xA5A7, 0xA5A8, 0xA5A9, 0xA5AA, 0xA5AB,
- 0xA5AC, 0xA5AD, 0xA5AE, 0xA5AF, 0xA5B0, 0xA5B1,
- 0xA5B2, 0xA5B3, 0xA5B4, 0xA5B5, 0xA5B6, 0xA5B7,
- 0xA5B8, 0xA5B9, 0xA5BA, 0xA5BB, 0xA5BC, 0xA5BD,
- 0xA5BE, 0xA5BF, 0xA5C0, 0xA5C1, 0xA5C2, 0xA5C3,
- 0xA5C4, 0xA5C5, 0xA5C6, 0xA5C7, 0xA5C8, 0xA5C9,
- 0xA5CA, 0xA5CB, 0xA5CC, 0xA5CD, 0xA5CE, 0xA5CF,
- 0xA5D0, 0xA5D1, 0xA5D2, 0xA5D3, 0xA5D4, 0xA5D5,
- 0xA5D6, 0xA5D7, 0xA5D8, 0xA5D9, 0xA5DA, 0xA5DB,
- 0xA5DC, 0xA5DD, 0xA5DE, 0xA5DF, 0xA5E0, 0xA5E1,
- 0xA5E2, 0xA5E3, 0xA5E4, 0xA5E5, 0xA5E6, 0xA5E7,
- 0xA5E8, 0xA5E9, 0xA5EA, 0xA5EB, 0xA5EC, 0xA5ED,
- 0xA5EE, 0xA5EF, 0xA5F0, 0xA5F1, 0xA5F2, 0xA5F3,
- 0xA5F4, 0xA5F5, 0xA5F6,0x8139A735,0x8139A736,0x8139A737,
- 0x8139A738,0x8139A739, 0xA960, 0xA963, 0xA964,0x8139A830,
- 0x8139A831,0x8139A832,0x8139A833,0x8139A834,0x8139A835, 0xA8C5,
- 0xA8C6, 0xA8C7, 0xA8C8, 0xA8C9, 0xA8CA, 0xA8CB,
- 0xA8CC, 0xA8CD, 0xA8CE, 0xA8CF, 0xA8D0, 0xA8D1,
- 0xA8D2, 0xA8D3, 0xA8D4, 0xA8D5, 0xA8D6, 0xA8D7,
- 0xA8D8, 0xA8D9, 0xA8DA, 0xA8DB, 0xA8DC, 0xA8DD,
- 0xA8DE, 0xA8DF, 0xA8E0, 0xA8E1, 0xA8E2, 0xA8E3,
- 0xA8E4, 0xA8E5, 0xA8E6, 0xA8E7, 0xA8E8, 0xA8E9,
- 0x8139A836,0x8139A837,0x8139A838,0x8139A839,0x8139A930,0x8139A931,
- 0x8139A932,0x8139A933,0x8139A934,0x8139A935,0x8139A936,0x8139A937,
- 0x8139A938,0x8139A939,0x8139AA30,0x8139AA31,0x8139AA32,0x8139AA33,
- 0x8139AA34,0x8139AA35,0x8139AA36,0x8139AA37,0x8139AA38,0x8139AA39,
- 0x8139AB30,0x8139AB31,0x8139AB32,0x8139AB33,0x8139AB34,0x8139AB35,
- 0x8139AB36,0x8139AB37,0x8139AB38,0x8139AB39,0x8139AC30,0x8139AC31,
- 0x8139AC32,0x8139AC33,0x8139AC34,0x8139AC35,0x8139AC36,0x8139AC37,
- 0x8139AC38,0x8139AC39,0x8139AD30,0x8139AD31,0x8139AD32,0x8139AD33,
- 0x8139AD34,0x8139AD35,0x8139AD36,0x8139AD37,0x8139AD38,0x8139AD39,
- 0x8139AE30,0x8139AE31,0x8139AE32,0x8139AE33,0x8139AE34,0x8139AE35,
- 0x8139AE36,0x8139AE37,0x8139AE38,0x8139AE39,0x8139AF30,0x8139AF31,
- 0x8139AF32,0x8139AF33,0x8139AF34,0x8139AF35,0x8139AF36,0x8139AF37,
- 0x8139AF38,0x8139AF39,0x8139B030,0x8139B031,0x8139B032,0x8139B033,
- 0x8139B034,0x8139B035,0x8139B036,0x8139B037,0x8139B038,0x8139B039,
- 0x8139B130,0x8139B131,0x8139B132,0x8139B133,0x8139B134,0x8139B135,
- 0x8139B136,0x8139B137,0x8139B138,0x8139B139,0x8139B230,0x8139B231,
- 0x8139B232,0x8139B233,0x8139B234,0x8139B235,0x8139B236,0x8139B237,
- 0x8139B238,0x8139B239,0x8139B330,0x8139B331,0x8139B332,0x8139B333,
- 0x8139B334,0x8139B335,0x8139B336,0x8139B337,0x8139B338,0x8139B339,
- 0x8139B430,0x8139B431,0x8139B432,0x8139B433,0x8139B434,0x8139B435,
- 0x8139B436,0x8139B437,0x8139B438,0x8139B439,0x8139B530,0x8139B531,
- 0x8139B532,0x8139B533,0x8139B534,0x8139B535,0x8139B536,0x8139B537,
- 0x8139B538,0x8139B539,0x8139B630,0x8139B631,0x8139B632,0x8139B633,
- 0x8139B634,0x8139B635,0x8139B636,0x8139B637,0x8139B638,0x8139B639,
- 0x8139B730,0x8139B731,0x8139B732,0x8139B733,0x8139B734,0x8139B735,
- 0x8139B736,0x8139B737,0x8139B738,0x8139B739,0x8139B830,0x8139B831,
- 0x8139B832,0x8139B833,0x8139B834,0x8139B835,0x8139B836,0x8139B837,
- 0x8139B838,0x8139B839,0x8139B930,0x8139B931,0x8139B932,0x8139B933,
- 0x8139B934,0x8139B935,0x8139B936,0x8139B937,0x8139B938,0x8139B939,
- 0x8139BA30,0x8139BA31,0x8139BA32,0x8139BA33,0x8139BA34,0x8139BA35,
- 0x8139BA36,0x8139BA37,0x8139BA38,0x8139BA39,0x8139BB30,0x8139BB31,
- 0x8139BB32,0x8139BB33,0x8139BB34,0x8139BB35,0x8139BB36,0x8139BB37,
- 0x8139BB38,0x8139BB39,0x8139BC30,0x8139BC31,0x8139BC32,0x8139BC33,
- 0x8139BC34,0x8139BC35,0x8139BC36,0x8139BC37,0x8139BC38,0x8139BC39,
- 0x8139BD30,0x8139BD31,0x8139BD32,0x8139BD33,0x8139BD34,0x8139BD35,
- 0x8139BD36,0x8139BD37,0x8139BD38,0x8139BD39,0x8139BE30,0x8139BE31,
- 0x8139BE32,0x8139BE33,0x8139BE34,0x8139BE35,0x8139BE36,0x8139BE37,
- 0x8139BE38,0x8139BE39,0x8139BF30,0x8139BF31,0x8139BF32,0x8139BF33,
- 0x8139BF34,0x8139BF35,0x8139BF36,0x8139BF37,0x8139BF38,0x8139BF39,
- 0x8139C030,0x8139C031,0x8139C032,0x8139C033,0x8139C034,0x8139C035,
- 0x8139C036,0x8139C037,0x8139C038,0x8139C039,0x8139C130,0x8139C131,
- 0xA2E5, 0xA2E6, 0xA2E7, 0xA2E8, 0xA2E9, 0xA2EA,
- 0xA2EB, 0xA2EC, 0xA2ED, 0xA2EE,0x8139C132,0x8139C133,
- 0x8139C134,0x8139C135,0x8139C136,0x8139C137,0x8139C138, 0xA95A,
- 0x8139C139,0x8139C230,0x8139C231,0x8139C232,0x8139C233,0x8139C234,
- 0x8139C235,0x8139C236,0x8139C237,0x8139C238,0x8139C239,0x8139C330,
- 0x8139C331,0x8139C332,0x8139C333,0x8139C334,0x8139C335,0x8139C336,
- 0x8139C337,0x8139C338,0x8139C339,0x8139C430,0x8139C431,0x8139C432,
- 0x8139C433,0x8139C434,0x8139C435,0x8139C436,0x8139C437,0x8139C438,
- 0x8139C439,0x8139C530,0x8139C531,0x8139C532,0x8139C533,0x8139C534,
- 0x8139C535,0x8139C536,0x8139C537,0x8139C538,0x8139C539,0x8139C630,
- 0x8139C631,0x8139C632,0x8139C633,0x8139C634,0x8139C635,0x8139C636,
- 0x8139C637,0x8139C638,0x8139C639,0x8139C730,0x8139C731,0x8139C732,
- 0x8139C733,0x8139C734,0x8139C735,0x8139C736,0x8139C737,0x8139C738,
- 0x8139C739,0x8139C830,0x8139C831,0x8139C832,0x8139C833,0x8139C834,
- 0x8139C835,0x8139C836,0x8139C837,0x8139C838,0x8139C839,0x8139C930,
- 0x8139C931,0x8139C932,0x8139C933,0x8139C934,0x8139C935,0x8139C936,
- 0x8139C937,0x8139C938,0x8139C939,0x8139CA30,0x8139CA31,0x8139CA32,
- 0x8139CA33,0x8139CA34,0x8139CA35,0x8139CA36,0x8139CA37,0x8139CA38,
- 0x8139CA39,0x8139CB30,0x8139CB31,0x8139CB32,0x8139CB33,0x8139CB34,
- 0x8139CB35,0x8139CB36,0x8139CB37,0x8139CB38,0x8139CB39,0x8139CC30,
- 0x8139CC31,0x8139CC32,0x8139CC33,0x8139CC34,0x8139CC35,0x8139CC36,
- 0x8139CC37,0x8139CC38,0x8139CC39,0x8139CD30,0x8139CD31, 0xA949,
- 0x8139CD32,0x8139CD33,0x8139CD34,0x8139CD35,0x8139CD36,0x8139CD37,
- 0x8139CD38,0x8139CD39,0x8139CE30,0x8139CE31,0x8139CE32,0x8139CE33,
- 0x8139CE34,0x8139CE35,0x8139CE36,0x8139CE37,0x8139CE38,0x8139CE39,
- 0x8139CF30,0x8139CF31,0x8139CF32,0x8139CF33,0x8139CF34,0x8139CF35,
- 0x8139CF36,0x8139CF37,0x8139CF38,0x8139CF39,0x8139D030,0x8139D031,
- 0x8139D032,0x8139D033,0x8139D034,0x8139D035,0x8139D036,0x8139D037,
- 0x8139D038,0x8139D039,0x8139D130,0x8139D131,0x8139D132,0x8139D133,
- 0x8139D134,0x8139D135,0x8139D136,0x8139D137,0x8139D138,0x8139D139,
- 0x8139D230,0x8139D231,0x8139D232,0x8139D233,0x8139D234,0x8139D235,
- 0x8139D236,0x8139D237,0x8139D238,0x8139D239,0x8139D330,0x8139D331,
- 0x8139D332,0x8139D333,0x8139D334,0x8139D335,0x8139D336,0x8139D337,
- 0x8139D338,0x8139D339,0x8139D430,0x8139D431,0x8139D432,0x8139D433,
- 0x8139D434,0x8139D435,0x8139D436,0x8139D437,0x8139D438,0x8139D439,
- 0x8139D530,0x8139D531,0x8139D532,0x8139D533,0x8139D534,0x8139D535,
- 0x8139D536,0x8139D537,0x8139D538,0x8139D539,0x8139D630,0x8139D631,
- 0x8139D632,0x8139D633,0x8139D634,0x8139D635,0x8139D636,0x8139D637,
- 0x8139D638,0x8139D639,0x8139D730,0x8139D731,0x8139D732,0x8139D733,
- 0x8139D734,0x8139D735,0x8139D736,0x8139D737,0x8139D738,0x8139D739,
- 0x8139D830,0x8139D831,0x8139D832,0x8139D833,0x8139D834,0x8139D835,
- 0x8139D836,0x8139D837,0x8139D838,0x8139D839,0x8139D930,0x8139D931,
- 0x8139D932,0x8139D933,0x8139D934,0x8139D935,0x8139D936,0x8139D937,
- 0x8139D938,0x8139D939,0x8139DA30,0x8139DA31,0x8139DA32,0x8139DA33,
- 0x8139DA34,0x8139DA35,0x8139DA36,0x8139DA37,0x8139DA38,0x8139DA39,
- 0x8139DB30,0x8139DB31,0x8139DB32,0x8139DB33,0x8139DB34,0x8139DB35,
- 0x8139DB36,0x8139DB37,0x8139DB38,0x8139DB39,0x8139DC30,0x8139DC31,
- 0x8139DC32,0x8139DC33,0x8139DC34,0x8139DC35,0x8139DC36,0x8139DC37,
- 0x8139DC38,0x8139DC39,0x8139DD30,0x8139DD31,0x8139DD32,0x8139DD33,
- 0x8139DD34,0x8139DD35,0x8139DD36,0x8139DD37,0x8139DD38,0x8139DD39,
- 0x8139DE30,0x8139DE31,0x8139DE32,0x8139DE33,0x8139DE34,0x8139DE35,
- 0x8139DE36,0x8139DE37,0x8139DE38,0x8139DE39,0x8139DF30,0x8139DF31,
- 0x8139DF32,0x8139DF33,0x8139DF34,0x8139DF35,0x8139DF36,0x8139DF37,
- 0x8139DF38,0x8139DF39,0x8139E030,0x8139E031,0x8139E032,0x8139E033,
- 0x8139E034,0x8139E035,0x8139E036,0x8139E037,0x8139E038,0x8139E039,
- 0x8139E130,0x8139E131,0x8139E132,0x8139E133,0x8139E134,0x8139E135,
- 0x8139E136,0x8139E137,0x8139E138,0x8139E139,0x8139E230,0x8139E231,
- 0x8139E232,0x8139E233,0x8139E234,0x8139E235,0x8139E236,0x8139E237,
- 0x8139E238,0x8139E239,0x8139E330,0x8139E331,0x8139E332,0x8139E333,
- 0x8139E334,0x8139E335,0x8139E336,0x8139E337,0x8139E338,0x8139E339,
- 0x8139E430,0x8139E431,0x8139E432,0x8139E433,0x8139E434,0x8139E435,
- 0xA94A, 0xA94B,0x8139E436,0x8139E437,0x8139E438,0x8139E439,
- 0x8139E530,0x8139E531,0x8139E532,0x8139E533,0x8139E534,0x8139E535,
- 0x8139E536,0x8139E537, 0xA94C, 0xA94D, 0xA94E,0x8139E538,
- 0x8139E539, 0xA94F,0x8139E630,0x8139E631,0x8139E632,0x8139E633,
- 0x8139E634,0x8139E635,0x8139E636,0x8139E637,0x8139E638,0x8139E639,
- 0x8139E730,0x8139E731,0x8139E732,0x8139E733,0x8139E734,0x8139E735,
- 0x8139E736,0x8139E737,0x8139E738,0x8139E739,0x8139E830,0x8139E831,
- 0x8139E832,0x8139E833,0x8139E834,0x8139E835,0x8139E836,0x8139E837,
- 0x8139E838,0x8139E839,0x8139E930,0x8139E931,0x8139E932,0x8139E933,
- 0xA950,0x8139E934,0x8139E935,0x8139E936,0x8139E937,0x8139E938,
- 0x8139E939,0x8139EA30,0x8139EA31,0x8139EA32, 0xA951,0x8139EA33,
- 0x8139EA34, 0xA952, 0xA953,0x8139EA35,0x8139EA36, 0xA954,
- 0x8139EA37,0x8139EA38,0x8139EA39,0x8139EB30,0x8139EB31,0x8139EB32,
- 0x8139EB33,0x8139EB34,0x8139EB35,0x8139EB36,0x8139EB37,0x8139EB38,
- 0x8139EB39,0x8139EC30,0x8139EC31,0x8139EC32,0x8139EC33,0x8139EC34,
- 0x8139EC35,0x8139EC36,0x8139EC37,0x8139EC38,0x8139EC39,0x8139ED30,
- 0x8139ED31,0x8139ED32,0x8139ED33,0x8139ED34,0x8139ED35,0x8139ED36,
- 0x8139ED37,0x8139ED38,0x8139ED39,0x8139EE30,0x8139EE31,0x8139EE32,
- 0x8139EE33,0x8139EE34,0x8139EE35,0x8139EE36,0x8139EE37,0x8139EE38,
- 0x8139EE39,0x8139EF30,0x8139EF31,0x8139EF32,0x8139EF33,0x8139EF34,
- 0x8139EF35,0x8139EF36,0x8139EF37,0x8139EF38,0x8139EF39,0x8139F030,
- 0x8139F031,0x8139F032,0x8139F033,0x8139F034,0x8139F035,0x8139F036,
- 0x8139F037,0x8139F038,0x8139F039,0x8139F130,0x8139F131,0x8139F132,
- 0x8139F133,0x8139F134,0x8139F135,0x8139F136,0x8139F137,0x8139F138,
- 0x8139F139,0x8139F230,0x8139F231,0x8139F232,0x8139F233,0x8139F234,
- 0x8139F235,0x8139F236,0x8139F237,0x8139F238,0x8139F239,0x8139F330,
- 0x8139F331,0x8139F332,0x8139F333,0x8139F334,0x8139F335,0x8139F336,
- 0x8139F337,0x8139F338,0x8139F339,0x8139F430,0x8139F431,0x8139F432,
- 0x8139F433,0x8139F434,0x8139F435,0x8139F436,0x8139F437,0x8139F438,
- 0x8139F439,0x8139F530,0x8139F531,0x8139F532,0x8139F533,0x8139F534,
- 0x8139F535,0x8139F536,0x8139F537,0x8139F538,0x8139F539, 0xFE56,
- 0x8139F630,0x8139F631,0x8139F632,0x8139F633,0x8139F634,0x8139F635,
- 0x8139F636,0x8139F637,0x8139F638,0x8139F639,0x8139F730,0x8139F731,
- 0x8139F732,0x8139F733,0x8139F734,0x8139F735,0x8139F736,0x8139F737,
- 0x8139F738,0x8139F739,0x8139F830,0x8139F831,0x8139F832,0x8139F833,
- 0x8139F834,0x8139F835,0x8139F836,0x8139F837,0x8139F838,0x8139F839,
- 0x8139F930,0x8139F931,0x8139F932,0x8139F933,0x8139F934,0x8139F935,
- 0x8139F936,0x8139F937,0x8139F938,0x8139F939,0x8139FA30,0x8139FA31,
- 0x8139FA32, 0xFE55,0x8139FA33,0x8139FA34,0x8139FA35,0x8139FA36,
- 0x8139FA37,0x8139FA38,0x8139FA39,0x8139FB30,0x8139FB31,0x8139FB32,
- 0x8139FB33,0x8139FB34,0x8139FB35,0x8139FB36,0x8139FB37,0x8139FB38,
- 0x8139FB39,0x8139FC30,0x8139FC31,0x8139FC32,0x8139FC33,0x8139FC34,
- 0x8139FC35,0x8139FC36,0x8139FC37,0x8139FC38,0x8139FC39,0x8139FD30,
- 0x8139FD31,0x8139FD32,0x8139FD33,0x8139FD34,0x8139FD35,0x8139FD36,
- 0x8139FD37,0x8139FD38,0x8139FD39,0x8139FE30,0x8139FE31,0x8139FE32,
- 0x8139FE33,0x8139FE34,0x8139FE35,0x8139FE36,0x8139FE37,0x8139FE38,
- 0x8139FE39,0x82308130,0x82308131,0x82308132,0x82308133,0x82308134,
- 0x82308135,0x82308136,0x82308137,0x82308138,0x82308139,0x82308230,
- 0x82308231,0x82308232,0x82308233,0x82308234,0x82308235,0x82308236,
- 0x82308237,0x82308238,0x82308239,0x82308330,0x82308331,0x82308332,
- 0x82308333,0x82308334,0x82308335,0x82308336,0x82308337,0x82308338,
- 0x82308339,0x82308430,0x82308431,0x82308432,0x82308433,0x82308434,
- 0x82308435,0x82308436,0x82308437,0x82308438,0x82308439,0x82308530,
- 0x82308531,0x82308532,0x82308533,0x82308534,0x82308535,0x82308536,
- 0x82308537,0x82308538,0x82308539,0x82308630,0x82308631,0x82308632,
- 0x82308633,0x82308634,0x82308635,0x82308636,0x82308637,0x82308638,
- 0x82308639,0x82308730,0x82308731,0x82308732,0x82308733,0x82308734,
- 0x82308735,0x82308736,0x82308737,0x82308738,0x82308739,0x82308830,
- 0x82308831,0x82308832,0x82308833,0x82308834,0x82308835,0x82308836,
- 0x82308837,0x82308838,0x82308839,0x82308930,0x82308931,0x82308932,
- 0x82308933,0x82308934,0x82308935,0x82308936,0x82308937,0x82308938,
- 0x82308939,0x82308A30,0x82308A31,0x82308A32,0x82308A33,0x82308A34,
- 0x82308A35,0x82308A36,0x82308A37,0x82308A38,0x82308A39,0x82308B30,
- 0x82308B31,0x82308B32,0x82308B33,0x82308B34,0x82308B35,0x82308B36,
- 0x82308B37,0x82308B38,0x82308B39,0x82308C30,0x82308C31,0x82308C32,
- 0x82308C33,0x82308C34,0x82308C35,0x82308C36,0x82308C37,0x82308C38,
- 0x82308C39,0x82308D30,0x82308D31,0x82308D32,0x82308D33,0x82308D34,
- 0x82308D35,0x82308D36,0x82308D37,0x82308D38,0x82308D39,0x82308E30,
- 0x82308E31,0x82308E32,0x82308E33,0x82308E34,0x82308E35,0x82308E36,
- 0x82308E37,0x82308E38,0x82308E39,0x82308F30,0x82308F31,0x82308F32,
- 0x82308F33,0x82308F34,0x82308F35,0x82308F36,0x82308F37,0x82308F38,
- 0x82308F39,0x82309030,0x82309031,0x82309032,0x82309033,0x82309034,
- 0x82309035,0x82309036,0x82309037,0x82309038,0x82309039,0x82309130,
- 0x82309131,0x82309132,0x82309133,0x82309134,0x82309135,0x82309136,
- 0x82309137,0x82309138,0x82309139,0x82309230,0x82309231,0x82309232,
- 0x82309233,0x82309234,0x82309235,0x82309236,0x82309237,0x82309238,
- 0x82309239,0x82309330,0x82309331,0x82309332,0x82309333,0x82309334,
- 0x82309335,0x82309336,0x82309337,0x82309338,0x82309339,0x82309430,
- 0x82309431,0x82309432,0x82309433,0x82309434,0x82309435,0x82309436,
- 0x82309437,0x82309438,0x82309439,0x82309530,0x82309531,0x82309532,
- 0x82309533,0x82309534,0x82309535,0x82309536,0x82309537,0x82309538,
- 0x82309539,0x82309630,0x82309631,0x82309632,0x82309633,0x82309634,
- 0x82309635,0x82309636,0x82309637,0x82309638,0x82309639,0x82309730,
- 0x82309731,0x82309732,0x82309733,0x82309734,0x82309735,0x82309736,
- 0x82309737,0x82309738,0x82309739,0x82309830,0x82309831,0x82309832,
- 0x82309833,0x82309834,0x82309835,0x82309836,0x82309837,0x82309838,
- 0x82309839,0x82309930,0x82309931,0x82309932,0x82309933,0x82309934,
- 0x82309935,0x82309936,0x82309937,0x82309938,0x82309939,0x82309A30,
- 0xFE5A,0x82309A31,0x82309A32,0x82309A33,0x82309A34,0x82309A35,
- 0x82309A36,0x82309A37,0x82309A38,0x82309A39,0x82309B30,0x82309B31,
- 0x82309B32,0x82309B33,0x82309B34,0x82309B35,0x82309B36,0x82309B37,
- 0x82309B38,0x82309B39,0x82309C30,0x82309C31,0x82309C32,0x82309C33,
- 0x82309C34,0x82309C35,0x82309C36,0x82309C37,0x82309C38,0x82309C39,
- 0x82309D30,0x82309D31,0x82309D32,0x82309D33,0x82309D34,0x82309D35,
- 0x82309D36,0x82309D37,0x82309D38,0x82309D39,0x82309E30,0x82309E31,
- 0x82309E32,0x82309E33,0x82309E34,0x82309E35,0x82309E36,0x82309E37,
- 0x82309E38,0x82309E39,0x82309F30,0x82309F31,0x82309F32,0x82309F33,
- 0x82309F34,0x82309F35,0x82309F36,0x82309F37,0x82309F38,0x82309F39,
- 0x8230A030,0x8230A031,0x8230A032,0x8230A033,0x8230A034,0x8230A035,
- 0x8230A036,0x8230A037,0x8230A038,0x8230A039,0x8230A130,0x8230A131,
- 0x8230A132,0x8230A133,0x8230A134,0x8230A135,0x8230A136,0x8230A137,
- 0x8230A138,0x8230A139,0x8230A230,0x8230A231,0x8230A232,0x8230A233,
- 0x8230A234,0x8230A235,0x8230A236,0x8230A237,0x8230A238,0x8230A239,
- 0x8230A330,0x8230A331,0x8230A332,0x8230A333,0x8230A334,0x8230A335,
- 0x8230A336,0x8230A337,0x8230A338,0x8230A339,0x8230A430,0x8230A431,
- 0x8230A432,0x8230A433,0x8230A434,0x8230A435,0x8230A436,0x8230A437,
- 0x8230A438,0x8230A439,0x8230A530,0x8230A531, 0xFE5C,0x8230A532,
- 0x8230A533,0x8230A534,0x8230A535,0x8230A536,0x8230A537,0x8230A538,
- 0x8230A539,0x8230A630,0x8230A631,0x8230A632, 0xFE5B, 0xFE60,
- 0x8230F238,0x8230F239,0x8230F330,0x8230F331,0x8230F332,0x8230F333,
- 0x8230F334,0x8230F335,0x8230F336,0x8230F337,0x8230F338,0x8230F339,
- 0x8230F430,0x8230F431,0x8230F432,0x8230F433,0x8230F434,0x8230F435,
- 0x8230F436,0x8230F437,0x8230F438,0x8230F439,0x8230F530,0x8230F531,
- 0x8230F532,0x8230F533,0x8230F534,0x8230F535,0x8230F536,0x8230F537,
- 0x8230F538,0x8230F539,0x8230F630,0x8230F631,0x8230F632,0x8230F633,
- 0x8230F634,0x8230F635,0x8230F636,0x8230F637,0x8230F638,0x8230F639,
- 0x8230F730,0x8230F731,0x8230F732,0x8230F733,0x8230F734,0x8230F735,
- 0x8230F736,0x8230F737,0x8230F738,0x8230F739,0x8230F830,0x8230F831,
- 0x8230F832,0x8230F833,0x8230F834,0x8230F835,0x8230F836,0x8230F837,
- 0x8230F838,0x8230F839,0x8230F930,0x8230F931,0x8230F932,0x8230F933,
- 0x8230F934,0x8230F935,0x8230F936,0x8230F937,0x8230F938,0x8230F939,
- 0x8230FA30,0x8230FA31,0x8230FA32,0x8230FA33,0x8230FA34,0x8230FA35,
- 0x8230FA36,0x8230FA37,0x8230FA38,0x8230FA39,0x8230FB30,0x8230FB31,
- 0x8230FB32, 0xFE5F,0x8230FB33,0x8230FB34,0x8230FB35,0x8230FB36,
- 0x8230FB37,0x8230FB38,0x8230FB39,0x8230FC30,0x8230FC31,0x8230FC32,
- 0x8230FC33,0x8230FC34,0x8230FC35,0x8230FC36,0x8230FC37,0x8230FC38,
- 0x8230FC39,0x8230FD30,0x8230FD31,0x8230FD32,0x8230FD33,0x8230FD34,
- 0x8230FD35,0x8230FD36,0x8230FD37,0x8230FD38,0x8230FD39,0x8230FE30,
- 0x8230FE31,0x8230FE32,0x8230FE33,0x8230FE34,0x8230FE35,0x8230FE36,
- 0x8230FE37,0x8230FE38,0x8230FE39,0x82318130,0x82318131,0x82318132,
- 0x82318133,0x82318134,0x82318135,0x82318136,0x82318137,0x82318138,
- 0x82318139,0x82318230,0x82318231,0x82318232,0x82318233,0x82318234,
- 0x82318235,0x82318236,0x82318237,0x82318238,0x82318239,0x82318330,
- 0x82318331,0x82318332,0x82318333,0x82318334,0x82318335,0x82318336,
- 0x82318337,0x82318338,0x82318339,0x82318430,0x82318431,0x82318432,
- 0x82318433,0x82318434,0x82318435,0x82318436,0x82318437,0x82318438,
- 0x82318439,0x82318530,0x82318531,0x82318532,0x82318533,0x82318534,
- 0x82318535,0x82318536,0x82318537,0x82318538,0x82318539,0x82318630,
- 0x82318631,0x82318632,0x82318633,0x82318634,0x82318635,0x82318636,
- 0x82318637,0x82318638, 0xFE62, 0xFE65,0x82318639,0x82318730,
- 0x82318731,0x82318732,0x82318733,0x82318734,0x82318735,0x82318736,
- 0x82318737,0x82318738,0x82318739,0x82318830,0x82318831,0x82318832,
- 0xFE63,0x82318833,0x82318834,0x82318835,0x82318836,0x82318837,
- 0x82318838,0x82318839,0x82318930,0x82318931,0x82318932,0x82318933,
- 0x82318934,0x82318935,0x82318936,0x82318937,0x82318938,0x82318939,
- 0x82318A30,0x82318A31,0x82318A32,0x82318A33,0x82318A34,0x82318A35,
- 0x82318A36,0x82318A37,0x82318A38,0x82318A39,0x82318B30,0x82318B31,
- 0x82318B32,0x82318B33,0x82318B34,0x82318B35,0x82318B36,0x82318B37,
- 0x82318B38,0x82318B39,0x82318C30,0x82318C31,0x82318C32,0x82318C33,
- 0x82318C34,0x82318C35,0x82318C36,0x82318C37,0x82318C38,0x82318C39,
- 0x82318D30,0x82318D31,0x82318D32,0x82318D33,0x82318D34,0x82318D35,
- 0x82318D36,0x82318D37,0x82318D38,0x82318D39,0x82318E30,0x82318E31,
- 0x82318E32,0x82318E33,0x82318E34,0x82318E35,0x82318E36,0x82318E37,
- 0x82318E38,0x82318E39,0x82318F30,0x82318F31,0x82318F32,0x82318F33,
- 0x82318F34,0x82318F35,0x82318F36,0x82318F37,0x82318F38,0x82318F39,
- 0x82319030,0x82319031,0x82319032,0x82319033,0x82319034,0x82319035,
- 0x82319036,0x82319037,0x82319038,0x82319039,0x82319130,0x82319131,
- 0x82319132,0x82319133,0x82319134,0x82319135,0x82319136,0x82319137,
- 0x82319138,0x82319139,0x82319230,0x82319231,0x82319232,0x82319233,
- 0x82319234,0x82319235,0x82319236,0x82319237,0x82319238,0x82319239,
- 0x82319330,0x82319331,0x82319332,0x82319333,0x82319334,0x82319335,
- 0x82319336,0x82319337,0x82319338,0x82319339,0x82319430,0x82319431,
- 0x82319432,0x82319433,0x82319434,0x82319435,0x82319436,0x82319437,
- 0x82319438,0x82319439,0x82319530,0x82319531,0x82319532,0x82319533,
- 0x82319534,0x82319535,0x82319536,0x82319537,0x82319538,0x82319539,
- 0x82319630,0x82319631,0x82319632,0x82319633,0x82319634,0x82319635,
- 0x82319636,0x82319637,0x82319638,0x82319639, 0xFE64,0x82319730,
- 0x82319731,0x82319732,0x82319733,0x82319734,0x82319735,0x82319736,
- 0x82319737,0x82319738,0x82319739,0x82319830,0x82319831,0x82319832,
- 0x82319833,0x82319834,0x82319835,0x82319836,0x82319837,0x82319838,
- 0x82319839,0x82319930,0x82319931,0x82319932,0x82319933,0x82319934,
- 0x82319935,0x82319936,0x82319937,0x82319938,0x82319939,0x82319A30,
- 0x82319A31,0x82319A32,0x82319A33,0x82319A34,0x82319A35,0x82319A36,
- 0x82319A37,0x82319A38,0x82319A39,0x82319B30,0x82319B31,0x82319B32,
- 0x82319B33,0x82319B34,0x82319B35,0x82319B36,0x82319B37,0x82319B38,
- 0x82319B39,0x82319C30,0x82319C31,0x82319C32,0x82319C33,0x82319C34,
- 0x82319C35,0x82319C36,0x82319C37,0x82319C38,0x82319C39,0x82319D30,
- 0x82319D31,0x82319D32,0x82319D33,0x82319D34,0x82319D35,0x82319D36,
- 0x82319D37,0x82319D38,0x82319D39,0x82319E30,0x82319E31,0x82319E32,
- 0x82319E33,0x82319E34,0x82319E35,0x82319E36,0x82319E37,0x82319E38,
- 0x82319E39,0x82319F30,0x82319F31,0x82319F32,0x82319F33,0x82319F34,
- 0x82319F35,0x82319F36,0x82319F37,0x82319F38,0x82319F39,0x8231A030,
- 0x8231A031,0x8231A032,0x8231A033,0x8231A034,0x8231A035,0x8231A036,
- 0x8231A037,0x8231A038,0x8231A039,0x8231A130,0x8231A131,0x8231A132,
- 0x8231A133,0x8231A134,0x8231A135,0x8231A136,0x8231A137,0x8231A138,
- 0x8231A139,0x8231A230,0x8231A231,0x8231A232,0x8231A233,0x8231A234,
- 0x8231A235,0x8231A236,0x8231A237,0x8231A238,0x8231A239,0x8231A330,
- 0x8231A331,0x8231A332,0x8231A333,0x8231A334,0x8231A335,0x8231A336,
- 0x8231A337,0x8231A338,0x8231A339,0x8231A430,0x8231A431,0x8231A432,
- 0x8231A433,0x8231A434,0x8231A435,0x8231A436,0x8231A437,0x8231A438,
- 0x8231A439,0x8231A530,0x8231A531,0x8231A532,0x8231A533,0x8231A534,
- 0x8231A535,0x8231A536,0x8231A537,0x8231A538,0x8231A539,0x8231A630,
- 0x8231A631,0x8231A632,0x8231A633,0x8231A634,0x8231A635,0x8231A636,
- 0x8231A637,0x8231A638,0x8231A639,0x8231A730,0x8231A731,0x8231A732,
- 0x8231A733,0x8231A734,0x8231A735,0x8231A736,0x8231A737,0x8231A738,
- 0x8231A739,0x8231A830,0x8231A831,0x8231A832,0x8231A833,0x8231A834,
- 0x8231A835,0x8231A836,0x8231A837,0x8231A838,0x8231A839,0x8231A930,
- 0x8231A931,0x8231A932,0x8231A933,0x8231A934,0x8231A935,0x8231A936,
- 0x8231A937,0x8231A938,0x8231A939,0x8231AA30,0x8231AA31,0x8231AA32,
- 0x8231AA33,0x8231AA34,0x8231AA35,0x8231AA36,0x8231AA37,0x8231AA38,
- 0x8231AA39,0x8231AB30,0x8231AB31,0x8231AB32,0x8231AB33,0x8231AB34,
- 0x8231AB35,0x8231AB36,0x8231AB37,0x8231AB38,0x8231AB39,0x8231AC30,
- 0x8231AC31,0x8231AC32,0x8231AC33,0x8231AC34,0x8231AC35,0x8231AC36,
- 0x8231AC37, 0xFE68,0x8231AC38,0x8231AC39,0x8231AD30,0x8231AD31,
- 0x8231AD32,0x8231AD33,0x8231AD34,0x8231AD35,0x8231AD36,0x8231AD37,
- 0x8231AD38,0x8231AD39,0x8231AE30,0x8231AE31,0x8231AE32,0x8231AE33,
- 0x8231AE34,0x8231AE35,0x8231AE36,0x8231AE37,0x8231AE38,0x8231AE39,
- 0x8231AF30,0x8231AF31,0x8231AF32,0x8231AF33,0x8231AF34,0x8231AF35,
- 0x8231AF36,0x8231AF37,0x8231AF38,0x8231AF39,0x8231B030,0x8231B031,
- 0x8231B032,0x8231B033,0x8231B034,0x8231B035,0x8231B036,0x8231B037,
- 0x8231B038,0x8231B039,0x8231B130,0x8231B131,0x8231B132,0x8231B133,
- 0x8231B134,0x8231B135,0x8231B136,0x8231B137,0x8231B138,0x8231B139,
- 0x8231B230,0x8231B231,0x8231B232,0x8231B233,0x8231B234,0x8231B235,
- 0x8231B236,0x8231B237,0x8231B238,0x8231B239,0x8231B330,0x8231B331,
- 0x8231B332,0x8231B333,0x8231B334,0x8231B335,0x8231B336,0x8231B337,
- 0x8231B338,0x8231B339,0x8231B430,0x8231B431,0x8231B432,0x8231B433,
- 0x8231B434,0x8231B435,0x8231B436,0x8231B437,0x8231B438,0x8231B439,
- 0x8231B530,0x8231B531,0x8231B532,0x8231B533,0x8231B534,0x8231B535,
- 0x8231B536,0x8231B537,0x8231B538,0x8231B539,0x8231B630,0x8231B631,
- 0x8231B632,0x8231B633,0x8231B634,0x8231B635,0x8231B636,0x8231B637,
- 0x8231B638,0x8231B639,0x8231B730,0x8231B731,0x8231B732,0x8231B733,
- 0x8231B734,0x8231B735,0x8231B736,0x8231B737,0x8231B738,0x8231B739,
- 0x8231B830,0x8231B831,0x8231B832,0x8231B833,0x8231B834,0x8231B835,
- 0x8231B836,0x8231B837,0x8231B838,0x8231B839,0x8231B930,0x8231B931,
- 0x8231B932,0x8231B933,0x8231B934,0x8231B935,0x8231B936,0x8231B937,
- 0x8231B938,0x8231B939,0x8231BA30,0x8231BA31,0x8231BA32,0x8231BA33,
- 0x8231BA34,0x8231BA35,0x8231BA36,0x8231BA37,0x8231BA38,0x8231BA39,
- 0x8231BB30,0x8231BB31,0x8231BB32,0x8231BB33,0x8231BB34,0x8231BB35,
- 0x8231BB36,0x8231BB37,0x8231BB38,0x8231BB39,0x8231BC30,0x8231BC31,
- 0x8231BC32,0x8231BC33,0x8231BC34,0x8231BC35,0x8231BC36,0x8231BC37,
- 0x8231BC38,0x8231BC39,0x8231BD30,0x8231BD31,0x8231BD32,0x8231BD33,
- 0x8231BD34,0x8231BD35,0x8231BD36,0x8231BD37,0x8231BD38,0x8231BD39,
- 0x8231BE30,0x8231BE31,0x8231BE32,0x8231BE33,0x8231BE34,0x8231BE35,
- 0x8231BE36,0x8231BE37,0x8231BE38,0x8231BE39,0x8231BF30,0x8231BF31,
- 0x8231BF32,0x8231BF33,0x8231BF34,0x8231BF35,0x8231BF36,0x8231BF37,
- 0x8231BF38,0x8231BF39,0x8231C030,0x8231C031,0x8231C032,0x8231C033,
- 0x8231C034,0x8231C035,0x8231C036,0x8231C037,0x8231C038,0x8231C039,
- 0x8231C130,0x8231C131,0x8231C132,0x8231C133,0x8231C134,0x8231C135,
- 0x8231C136,0x8231C137,0x8231C138,0x8231C139,0x8231C230,0x8231C231,
- 0x8231C232,0x8231C233,0x8231C234,0x8231C235,0x8231C236,0x8231C237,
- 0x8231C238,0x8231C239,0x8231C330,0x8231C331,0x8231C332,0x8231C333,
- 0x8231C334,0x8231C335,0x8231C336,0x8231C337,0x8231C338,0x8231C339,
- 0x8231C430,0x8231C431,0x8231C432,0x8231C433,0x8231C434,0x8231C435,
- 0x8231C436,0x8231C437,0x8231C438,0x8231C439,0x8231C530,0x8231C531,
- 0x8231C532,0x8231C533,0x8231C534,0x8231C535,0x8231C536,0x8231C537,
- 0x8231C538,0x8231C539,0x8231C630,0x8231C631,0x8231C632,0x8231C633,
- 0x8231C634,0x8231C635,0x8231C636,0x8231C637,0x8231C638,0x8231C639,
- 0x8231C730,0x8231C731,0x8231C732,0x8231C733,0x8231C734,0x8231C735,
- 0x8231C736,0x8231C737,0x8231C738,0x8231C739,0x8231C830,0x8231C831,
- 0x8231C832,0x8231C833,0x8231C834,0x8231C835,0x8231C836,0x8231C837,
- 0x8231C838,0x8231C839,0x8231C930,0x8231C931,0x8231C932,0x8231C933,
- 0x8231C934, 0xFE69,0x8231C935,0x8231C936,0x8231C937,0x8231C938,
- 0x8231C939,0x8231CA30,0x8231CA31,0x8231CA32,0x8231CA33,0x8231CA34,
- 0x8231CA35,0x8231CA36,0x8231CA37,0x8231CA38,0x8231CA39,0x8231CB30,
- 0x8231CB31,0x8231CB32,0x8231CB33,0x8231CB34,0x8231CB35,0x8231CB36,
- 0x8231CB37,0x8231CB38,0x8231CB39,0x8231CC30,0x8231CC31,0x8231CC32,
- 0x8231CC33,0x8231CC34,0x8231CC35,0x8231CC36,0x8231CC37,0x8231CC38,
- 0x8231CC39,0x8231CD30,0x8231CD31,0x8231CD32,0x8231CD33,0x8231CD34,
- 0x8231CD35,0x8231CD36,0x8231CD37,0x8231CD38,0x8231CD39,0x8231CE30,
- 0x8231CE31,0x8231CE32,0x8231CE33,0x8231CE34,0x8231CE35,0x8231CE36,
- 0x8231CE37,0x8231CE38,0x8231CE39,0x8231CF30,0x8231CF31,0x8231CF32,
- 0x8231CF33,0x8231CF34,0x8231CF35,0x8231CF36,0x8231CF37,0x8231CF38,
- 0x8231CF39,0x8231D030,0x8231D031,0x8231D032,0x8231D033,0x8231D034,
- 0x8231D035,0x8231D036,0x8231D037,0x8231D038,0x8231D039,0x8231D130,
- 0x8231D131,0x8231D132,0x8231D133,0x8231D134,0x8231D135,0x8231D136,
- 0x8231D137,0x8231D138,0x8231D139,0x8231D230,0x8231D231,0x8231D232,
- 0x8231D233,0x8231D234,0x8231D235,0x8231D236,0x8231D237,0x8231D238,
- 0x8231D239,0x8231D330,0x8231D331,0x8231D332,0x8231D333,0x8231D334,
- 0x8231D335,0x8231D336,0x8231D337,0x8231D338,0x8231D339,0x8231D430,
- 0x8231D431,0x8231D432,0x8231D433,0x8231D434,0x8231D435,0x8231D436,
- 0x8231D437, 0xFE6A, 0xFE6F,0x8232AF33,0x8232AF34,0x8232AF35,
- 0x8232AF36,0x8232AF37,0x8232AF38,0x8232AF39,0x8232B030,0x8232B031,
- 0x8232B032,0x8232B033,0x8232B034,0x8232B035,0x8232B036,0x8232B037,
- 0x8232B038,0x8232B039,0x8232B130,0x8232B131,0x8232B132,0x8232B133,
- 0x8232B134,0x8232B135,0x8232B136,0x8232B137,0x8232B138,0x8232B139,
- 0x8232B230,0x8232B231,0x8232B232,0x8232B233,0x8232B234,0x8232B235,
- 0x8232B236,0x8232B237,0x8232B238,0x8232B239,0x8232B330,0x8232B331,
- 0x8232B332,0x8232B333,0x8232B334,0x8232B335,0x8232B336,0x8232B337,
- 0x8232B338,0x8232B339,0x8232B430,0x8232B431,0x8232B432,0x8232B433,
- 0x8232B434,0x8232B435,0x8232B436,0x8232B437,0x8232B438,0x8232B439,
- 0x8232B530,0x8232B531,0x8232B532,0x8232B533,0x8232B534,0x8232B535,
- 0x8232B536,0x8232B537,0x8232B538,0x8232B539,0x8232B630,0x8232B631,
- 0x8232B632,0x8232B633,0x8232B634,0x8232B635,0x8232B636,0x8232B637,
- 0x8232B638,0x8232B639,0x8232B730,0x8232B731,0x8232B732,0x8232B733,
- 0x8232B734,0x8232B735,0x8232B736,0x8232B737,0x8232B738,0x8232B739,
- 0x8232B830,0x8232B831,0x8232B832,0x8232B833,0x8232B834,0x8232B835,
- 0x8232B836,0x8232B837,0x8232B838,0x8232B839,0x8232B930,0x8232B931,
- 0x8232B932,0x8232B933,0x8232B934,0x8232B935,0x8232B936,0x8232B937,
- 0x8232B938,0x8232B939,0x8232BA30,0x8232BA31,0x8232BA32,0x8232BA33,
- 0x8232BA34,0x8232BA35,0x8232BA36,0x8232BA37,0x8232BA38,0x8232BA39,
- 0x8232BB30,0x8232BB31,0x8232BB32,0x8232BB33,0x8232BB34,0x8232BB35,
- 0x8232BB36,0x8232BB37,0x8232BB38,0x8232BB39,0x8232BC30,0x8232BC31,
- 0x8232BC32,0x8232BC33,0x8232BC34,0x8232BC35,0x8232BC36,0x8232BC37,
- 0x8232BC38,0x8232BC39,0x8232BD30,0x8232BD31,0x8232BD32,0x8232BD33,
- 0x8232BD34,0x8232BD35,0x8232BD36,0x8232BD37,0x8232BD38,0x8232BD39,
- 0x8232BE30,0x8232BE31,0x8232BE32,0x8232BE33,0x8232BE34,0x8232BE35,
- 0x8232BE36,0x8232BE37,0x8232BE38,0x8232BE39,0x8232BF30,0x8232BF31,
- 0x8232BF32,0x8232BF33,0x8232BF34,0x8232BF35,0x8232BF36,0x8232BF37,
- 0x8232BF38,0x8232BF39,0x8232C030,0x8232C031,0x8232C032,0x8232C033,
- 0x8232C034,0x8232C035,0x8232C036,0x8232C037,0x8232C038,0x8232C039,
- 0x8232C130,0x8232C131,0x8232C132,0x8232C133,0x8232C134,0x8232C135,
- 0x8232C136,0x8232C137,0x8232C138,0x8232C139,0x8232C230,0x8232C231,
- 0x8232C232,0x8232C233,0x8232C234,0x8232C235,0x8232C236,0x8232C237,
- 0x8232C238,0x8232C239,0x8232C330,0x8232C331,0x8232C332,0x8232C333,
- 0x8232C334,0x8232C335,0x8232C336,0x8232C337,0x8232C338,0x8232C339,
- 0x8232C430,0x8232C431,0x8232C432,0x8232C433,0x8232C434,0x8232C435,
- 0x8232C436,0x8232C437,0x8232C438,0x8232C439,0x8232C530,0x8232C531,
- 0x8232C532,0x8232C533,0x8232C534,0x8232C535,0x8232C536,0x8232C537,
- 0x8232C538,0x8232C539,0x8232C630,0x8232C631,0x8232C632,0x8232C633,
- 0x8232C634,0x8232C635,0x8232C636,0x8232C637,0x8232C638,0x8232C639,
- 0x8232C730,0x8232C731,0x8232C732,0x8232C733,0x8232C734,0x8232C735,
- 0x8232C736,0x8232C737,0x8232C738,0x8232C739,0x8232C830,0x8232C831,
- 0x8232C832,0x8232C833,0x8232C834,0x8232C835,0x8232C836,0x8232C837,
- 0x8232C838,0x8232C839,0x8232C930,0x8232C931,0x8232C932,0x8232C933,
- 0x8232C934,0x8232C935,0x8232C936, 0xFE70, 0xFE72,0x8232F838,
- 0x8232F839,0x8232F930,0x8232F931,0x8232F932,0x8232F933,0x8232F934,
- 0x8232F935,0x8232F936,0x8232F937,0x8232F938,0x8232F939,0x8232FA30,
- 0x8232FA31,0x8232FA32,0x8232FA33,0x8232FA34,0x8232FA35,0x8232FA36,
- 0x8232FA37,0x8232FA38,0x8232FA39,0x8232FB30,0x8232FB31,0x8232FB32,
- 0x8232FB33,0x8232FB34,0x8232FB35,0x8232FB36,0x8232FB37,0x8232FB38,
- 0x8232FB39,0x8232FC30,0x8232FC31,0x8232FC32,0x8232FC33,0x8232FC34,
- 0x8232FC35,0x8232FC36,0x8232FC37,0x8232FC38,0x8232FC39,0x8232FD30,
- 0x8232FD31,0x8232FD32,0x8232FD33,0x8232FD34,0x8232FD35,0x8232FD36,
- 0x8232FD37,0x8232FD38,0x8232FD39,0x8232FE30,0x8232FE31,0x8232FE32,
- 0x8232FE33,0x8232FE34,0x8232FE35,0x8232FE36,0x8232FE37,0x8232FE38,
- 0x8232FE39,0x82338130,0x82338131,0x82338132,0x82338133,0x82338134,
- 0x82338135,0x82338136,0x82338137,0x82338138,0x82338139,0x82338230,
- 0x82338231,0x82338232,0x82338233,0x82338234,0x82338235,0x82338236,
- 0x82338237,0x82338238,0x82338239,0x82338330,0x82338331,0x82338332,
- 0x82338333,0x82338334,0x82338335,0x82338336,0x82338337,0x82338338,
- 0x82338339,0x82338430,0x82338431,0x82338432,0x82338433,0x82338434,
- 0x82338435,0x82338436,0x82338437,0x82338438,0x82338439,0x82338530,
- 0x82338531,0x82338532,0x82338533,0x82338534,0x82338535,0x82338536,
- 0x82338537,0x82338538,0x82338539,0x82338630,0x82338631,0x82338632,
- 0x82338633, 0xFE78,0x82338634,0x82338635,0x82338636,0x82338637,
- 0xFE77,0x82338638,0x82338639,0x82338730,0x82338731,0x82338732,
- 0x82338733,0x82338734,0x82338735,0x82338736,0x82338737,0x82338738,
- 0x82338739,0x82338830,0x82338831,0x82338832,0x82338833,0x82338834,
- 0x82338835,0x82338836,0x82338837,0x82338838,0x82338839,0x82338930,
- 0x82338931,0x82338932,0x82338933,0x82338934,0x82338935,0x82338936,
- 0x82338937,0x82338938,0x82338939,0x82338A30,0x82338A31,0x82338A32,
- 0x82338A33,0x82338A34,0x82338A35,0x82338A36,0x82338A37,0x82338A38,
- 0x82338A39,0x82338B30, 0xFE7A,0x82338B31,0x82338B32,0x82338B33,
- 0x82338B34,0x82338B35,0x82338B36,0x82338B37,0x82338B38,0x82338B39,
- 0x82338C30,0x82338C31,0x82338C32,0x82338C33,0x82338C34,0x82338C35,
- 0x82338C36,0x82338C37,0x82338C38,0x82338C39,0x82338D30,0x82338D31,
- 0x82338D32,0x82338D33,0x82338D34,0x82338D35,0x82338D36,0x82338D37,
- 0x82338D38,0x82338D39,0x82338E30,0x82338E31,0x82338E32,0x82338E33,
- 0x82338E34,0x82338E35,0x82338E36,0x82338E37,0x82338E38,0x82338E39,
- 0x82338F30,0x82338F31,0x82338F32,0x82338F33,0x82338F34,0x82338F35,
- 0x82338F36,0x82338F37,0x82338F38,0x82338F39,0x82339030,0x82339031,
- 0x82339032,0x82339033,0x82339034,0x82339035,0x82339036,0x82339037,
- 0x82339038,0x82339039,0x82339130,0x82339131,0x82339132,0x82339133,
- 0x82339134,0x82339135,0x82339136,0x82339137,0x82339138,0x82339139,
- 0x82339230,0x82339231,0x82339232,0x82339233,0x82339234,0x82339235,
- 0x82339236,0x82339237,0x82339238,0x82339239,0x82339330,0x82339331,
- 0x82339332,0x82339333,0x82339334,0x82339335,0x82339336,0x82339337,
- 0x82339338,0x82339339,0x82339430,0x82339431,0x82339432,0x82339433,
- 0x82339434,0x82339435,0x82339436,0x82339437,0x82339438,0x82339439,
- 0x82339530,0x82339531,0x82339532,0x82339533,0x82339534,0x82339535,
- 0x82339536,0x82339537,0x82339538,0x82339539,0x82339630,0x82339631,
- 0x82339632,0x82339633,0x82339634,0x82339635,0x82339636,0x82339637,
- 0x82339638,0x82339639,0x82339730,0x82339731,0x82339732,0x82339733,
- 0x82339734,0x82339735,0x82339736,0x82339737,0x82339738,0x82339739,
- 0x82339830,0x82339831,0x82339832,0x82339833,0x82339834,0x82339835,
- 0x82339836,0x82339837,0x82339838,0x82339839,0x82339930,0x82339931,
- 0x82339932,0x82339933,0x82339934,0x82339935,0x82339936,0x82339937,
- 0x82339938,0x82339939,0x82339A30,0x82339A31,0x82339A32,0x82339A33,
- 0x82339A34,0x82339A35,0x82339A36,0x82339A37,0x82339A38,0x82339A39,
- 0x82339B30,0x82339B31,0x82339B32,0x82339B33,0x82339B34,0x82339B35,
- 0x82339B36,0x82339B37,0x82339B38,0x82339B39,0x82339C30,0x82339C31,
- 0x82339C32,0x82339C33,0x82339C34,0x82339C35,0x82339C36,0x82339C37,
- 0x82339C38,0x82339C39,0x82339D30,0x82339D31,0x82339D32,0x82339D33,
- 0x82339D34,0x82339D35,0x82339D36,0x82339D37,0x82339D38,0x82339D39,
- 0x82339E30,0x82339E31,0x82339E32,0x82339E33,0x82339E34,0x82339E35,
- 0x82339E36,0x82339E37,0x82339E38,0x82339E39,0x82339F30,0x82339F31,
- 0x82339F32,0x82339F33,0x82339F34,0x82339F35,0x82339F36,0x82339F37,
- 0x82339F38,0x82339F39,0x8233A030,0x8233A031,0x8233A032,0x8233A033,
- 0x8233A034,0x8233A035,0x8233A036,0x8233A037,0x8233A038,0x8233A039,
- 0x8233A130,0x8233A131,0x8233A132,0x8233A133,0x8233A134,0x8233A135,
- 0x8233A136,0x8233A137,0x8233A138,0x8233A139,0x8233A230,0x8233A231,
- 0x8233A232,0x8233A233,0x8233A234,0x8233A235,0x8233A236,0x8233A237,
- 0x8233A238,0x8233A239,0x8233A330,0x8233A331,0x8233A332,0x8233A333,
- 0x8233A334,0x8233A335,0x8233A336,0x8233A337,0x8233A338, 0xFE7B,
- 0xFE7D,0x8233C932,0x8233C933,0x8233C934,0x8233C935,0x8233C936,
- 0x8233C937,0x8233C938,0x8233C939,0x8233CA30,0x8233CA31,0x8233CA32,
- 0x8233CA33,0x8233CA34,0x8233CA35,0x8233CA36,0x8233CA37,0x8233CA38,
- 0x8233CA39,0x8233CB30,0x8233CB31, 0xFE7C,0x8233CB32,0x8233CB33,
- 0x8233CB34,0x8233CB35,0x8233CB36,0x8233CB37,0x8233CB38,0x8233CB39,
- 0x8233CC30,0x8233CC31,0x8233CC32,0x8233CC33,0x8233CC34,0x8233CC35,
- 0x8233CC36,0x8233CC37,0x8233CC38,0x8233CC39,0x8233CD30,0x8233CD31,
- 0x8233CD32,0x8233CD33,0x8233CD34,0x8233CD35,0x8233CD36,0x8233CD37,
- 0x8233CD38,0x8233CD39,0x8233CE30,0x8233CE31,0x8233CE32,0x8233CE33,
- 0x8233CE34,0x8233CE35,0x8233CE36,0x8233CE37,0x8233CE38,0x8233CE39,
- 0x8233CF30,0x8233CF31,0x8233CF32,0x8233CF33,0x8233CF34,0x8233CF35,
- 0x8233CF36,0x8233CF37,0x8233CF38,0x8233CF39,0x8233D030,0x8233D031,
- 0x8233D032,0x8233D033,0x8233D034,0x8233D035,0x8233D036,0x8233D037,
- 0x8233D038,0x8233D039,0x8233D130,0x8233D131,0x8233D132,0x8233D133,
- 0x8233D134,0x8233D135,0x8233D136,0x8233D137,0x8233D138,0x8233D139,
- 0x8233D230,0x8233D231,0x8233D232,0x8233D233,0x8233D234,0x8233D235,
- 0x8233D236,0x8233D237,0x8233D238,0x8233D239,0x8233D330,0x8233D331,
- 0x8233D332,0x8233D333,0x8233D334,0x8233D335,0x8233D336,0x8233D337,
- 0x8233D338,0x8233D339,0x8233D430,0x8233D431,0x8233D432,0x8233D433,
- 0x8233D434,0x8233D435,0x8233D436,0x8233D437,0x8233D438,0x8233D439,
- 0x8233D530,0x8233D531,0x8233D532,0x8233D533,0x8233D534,0x8233D535,
- 0x8233D536,0x8233D537,0x8233D538,0x8233D539,0x8233D630,0x8233D631,
- 0x8233D632,0x8233D633,0x8233D634,0x8233D635,0x8233D636,0x8233D637,
- 0x8233D638,0x8233D639,0x8233D730,0x8233D731,0x8233D732,0x8233D733,
- 0x8233D734,0x8233D735,0x8233D736,0x8233D737,0x8233D738,0x8233D739,
- 0x8233D830,0x8233D831,0x8233D832,0x8233D833,0x8233D834,0x8233D835,
- 0x8233D836,0x8233D837,0x8233D838,0x8233D839,0x8233D930,0x8233D931,
- 0x8233D932,0x8233D933,0x8233D934,0x8233D935,0x8233D936,0x8233D937,
- 0x8233D938,0x8233D939,0x8233DA30,0x8233DA31,0x8233DA32,0x8233DA33,
- 0x8233DA34,0x8233DA35,0x8233DA36,0x8233DA37,0x8233DA38,0x8233DA39,
- 0x8233DB30,0x8233DB31,0x8233DB32,0x8233DB33,0x8233DB34,0x8233DB35,
- 0x8233DB36,0x8233DB37,0x8233DB38,0x8233DB39,0x8233DC30,0x8233DC31,
- 0x8233DC32,0x8233DC33,0x8233DC34,0x8233DC35,0x8233DC36,0x8233DC37,
- 0x8233DC38,0x8233DC39,0x8233DD30,0x8233DD31,0x8233DD32,0x8233DD33,
- 0x8233DD34,0x8233DD35,0x8233DD36,0x8233DD37,0x8233DD38,0x8233DD39,
- 0x8233DE30,0x8233DE31,0x8233DE32,0x8233DE33,0x8233DE34, 0xFE80,
- 0x8233DE35,0x8233DE36,0x8233DE37,0x8233DE38,0x8233DE39, 0xFE81,
- 0x8233DF30,0x8233DF31,0x8233DF32,0x8233DF33,0x8233DF34,0x8233DF35,
- 0x8233DF36,0x8233DF37,0x8233DF38,0x8233DF39,0x8233E030,0x8233E031,
- 0x8233E032,0x8233E033,0x8233E034,0x8233E035,0x8233E036,0x8233E037,
- 0x8233E038,0x8233E039,0x8233E130,0x8233E131,0x8233E132,0x8233E133,
- 0x8233E134,0x8233E135,0x8233E136,0x8233E137,0x8233E138,0x8233E139,
- 0x8233E230,0x8233E231,0x8233E232,0x8233E233,0x8233E234,0x8233E235,
- 0x8233E236,0x8233E237,0x8233E238,0x8233E239,0x8233E330,0x8233E331,
- 0x8233E332,0x8233E333,0x8233E334,0x8233E335,0x8233E336,0x8233E337,
- 0x8233E338,0x8233E339,0x8233E430,0x8233E431,0x8233E432,0x8233E433,
- 0x8233E434,0x8233E435,0x8233E436,0x8233E437,0x8233E438,0x8233E439,
- 0x8233E530,0x8233E531,0x8233E532,0x8233E533,0x8233E534,0x8233E535,
- 0x8233E536,0x8233E537,0x8233E538,0x8233E539,0x8233E630,0x8233E631,
- 0x8233E632,0x8233E633,0x8233E634,0x8233E635,0x8233E636,0x8233E637,
- 0x8233E638,0x8233E639,0x8233E730,0x8233E731, 0xFE82,0x8233E732,
- 0x8233E733,0x8233E734,0x8233E735,0x8233E736,0x8233E737,0x8233E738,
- 0x8233E739,0x8233E830,0x8233E831,0x8233E832,0x8233E833,0x8233E834,
- 0x8233E835,0x8233E836,0x8233E837, 0xFE83, 0xFE85,0x82349639,
- 0x82349730,0x82349731,0x82349732,0x82349733,0x82349734,0x82349735,
- 0x82349736,0x82349737,0x82349738,0x82349739,0x82349830,0x82349831,
- 0x82349832,0x82349833,0x82349834,0x82349835,0x82349836,0x82349837,
- 0x82349838,0x82349839,0x82349930,0x82349931,0x82349932,0x82349933,
- 0x82349934,0x82349935,0x82349936,0x82349937,0x82349938,0x82349939,
- 0x82349A30,0x82349A31,0x82349A32,0x82349A33,0x82349A34,0x82349A35,
- 0x82349A36,0x82349A37,0x82349A38,0x82349A39,0x82349B30,0x82349B31,
- 0x82349B32,0x82349B33,0x82349B34,0x82349B35,0x82349B36,0x82349B37,
- 0x82349B38, 0xFE86,0x82349B39,0x82349C30, 0xFE87,0x82349C31,
- 0x82349C32,0x82349C33,0x82349C34, 0xFE88, 0xFE89,0x82349C35,
- 0xFE8A, 0xFE8B,0x82349C36,0x82349C37,0x82349C38,0x82349C39,
- 0x82349D30,0x82349D31,0x82349D32,0x82349D33,0x82349D34,0x82349D35,
- 0x82349D36,0x82349D37,0x82349D38,0x82349D39,0x82349E30,0x82349E31,
- 0x82349E32,0x82349E33,0x82349E34,0x82349E35, 0xFE8D,0x82349E36,
- 0x82349E37,0x82349E38, 0xFE8C,0x82349E39,0x82349F30,0x82349F31,
- 0x82349F32,0x82349F33,0x82349F34,0x82349F35,0x82349F36,0x82349F37,
- 0x82349F38,0x82349F39,0x8234A030,0x8234A031,0x8234A032,0x8234A033,
- 0x8234A034,0x8234A035,0x8234A036,0x8234A037,0x8234A038,0x8234A039,
- 0x8234A130, 0xFE8F, 0xFE8E, 0xFE96,0x8234E734,0x8234E735,
- 0x8234E736,0x8234E737,0x8234E738,0x8234E739,0x8234E830,0x8234E831,
- 0x8234E832,0x8234E833,0x8234E834,0x8234E835,0x8234E836,0x8234E837,
- 0x8234E838,0x8234E839,0x8234E930,0x8234E931,0x8234E932,0x8234E933,
- 0x8234E934,0x8234E935,0x8234E936,0x8234E937,0x8234E938,0x8234E939,
- 0x8234EA30,0x8234EA31,0x8234EA32,0x8234EA33,0x8234EA34,0x8234EA35,
- 0x8234EA36,0x8234EA37,0x8234EA38,0x8234EA39,0x8234EB30,0x8234EB31,
- 0x8234EB32, 0xFE93, 0xFE94, 0xFE95, 0xFE97, 0xFE92,
- 0x8234EB33,0x8234EB34,0x8234EB35,0x8234EB36,0x8234EB37,0x8234EB38,
- 0x8234EB39,0x8234EC30,0x8234EC31,0x8234EC32,0x8234EC33,0x8234EC34,
- 0x8234EC35,0x8234EC36,0x8234EC37,0x8234EC38,0x8234EC39,0x8234ED30,
- 0x8234ED31,0x8234ED32,0x8234ED33,0x8234ED34,0x8234ED35,0x8234ED36,
- 0x8234ED37,0x8234ED38,0x8234ED39,0x8234EE30,0x8234EE31,0x8234EE32,
- 0x8234EE33,0x8234EE34,0x8234EE35,0x8234EE36,0x8234EE37,0x8234EE38,
- 0x8234EE39,0x8234EF30,0x8234EF31,0x8234EF32,0x8234EF33,0x8234EF34,
- 0x8234EF35,0x8234EF36,0x8234EF37,0x8234EF38,0x8234EF39,0x8234F030,
- 0x8234F031,0x8234F032,0x8234F033,0x8234F034,0x8234F035,0x8234F036,
- 0x8234F037,0x8234F038,0x8234F039,0x8234F130,0x8234F131,0x8234F132,
- 0x8234F133,0x8234F134,0x8234F135,0x8234F136,0x8234F137,0x8234F138,
- 0x8234F139,0x8234F230,0x8234F231,0x8234F232,0x8234F233,0x8234F234,
- 0x8234F235,0x8234F236,0x8234F237,0x8234F238,0x8234F239,0x8234F330,
- 0x8234F331,0x8234F332,0x8234F333,0x8234F334,0x8234F335,0x8234F336,
- 0x8234F337,0x8234F338,0x8234F339,0x8234F430,0x8234F431,0x8234F432,
- 0x8234F433,0x8234F434,0x8234F435,0x8234F436,0x8234F437,0x8234F438,
- 0x8234F439,0x8234F530,0x8234F531,0x8234F532,0x8234F533,0x8234F534,
- 0x8234F535,0x8234F536,0x8234F537,0x8234F538,0x8234F539,0x8234F630,
- 0x8234F631,0x8234F632,0x8234F633, 0xFE98, 0xFE99, 0xFE9A,
- 0xFE9B, 0xFE9C, 0xFE9D, 0xFE9E,0x8234F634,0x8234F635,
- 0x8234F636,0x8234F637,0x8234F638,0x8234F639,0x8234F730,0x8234F731,
- 0x8234F732,0x8234F733,0x8234F734,0x8234F735,0x8234F736,0x8234F737,
- 0x8234F738,0x8234F739,0x8234F830,0x8234F831,0x8234F832,0x8234F833,
- 0x8234F834,0x8234F835,0x8234F836,0x8234F837,0x8234F838,0x8234F839,
- 0x8234F930,0x8234F931,0x8234F932,0x8234F933,0x8234F934,0x8234F935,
- 0x8234F936,0x8234F937,0x8234F938,0x8234F939,0x8234FA30,0x8234FA31,
- 0x8234FA32,0x8234FA33,0x8234FA34,0x8234FA35,0x8234FA36,0x8234FA37,
- 0x8234FA38,0x8234FA39,0x8234FB30,0x8234FB31,0x8234FB32,0x8234FB33,
- 0x8234FB34,0x8234FB35,0x8234FB36,0x8234FB37,0x8234FB38,0x8234FB39,
- 0x8234FC30,0x8234FC31,0x8234FC32,0x8234FC33,0x8234FC34,0x8234FC35,
- 0x8234FC36,0x8234FC37,0x8234FC38,0x8234FC39,0x8234FD30,0x8234FD31,
- 0x8234FD32,0x8234FD33,0x8234FD34,0x8234FD35,0x8234FD36,0x8234FD37,
- 0x8234FD38,0x8234FD39,0x8234FE30,0x8234FE31,0x8234FE32,0x8234FE33,
- 0x8234FE34,0x8234FE35,0x8234FE36,0x8234FE37,0x8234FE38,0x8234FE39,
- 0x82358130,0x82358131,0x82358132,0x82358133,0x82358134,0x82358135,
- 0x82358136,0x82358137,0x82358138,0x82358139,0x82358230,0x82358231,
- 0x82358232,0x82358233,0x82358234,0x82358235,0x82358236,0x82358237,
- 0x82358238,0x82358239,0x82358330,0x82358331,0x82358332,0x82358333,
- 0x82358334,0x82358335,0x82358336,0x82358337,0x82358338,0x82358339,
- 0x82358430,0x82358431,0x82358432,0x82358433,0x82358434,0x82358435,
- 0x82358436,0x82358437,0x82358438,0x82358439,0x82358530,0x82358531,
- 0x82358532,0x82358533,0x82358534,0x82358535,0x82358536,0x82358537,
- 0x82358538,0x82358539,0x82358630,0x82358631,0x82358632,0x82358633,
- 0x82358634,0x82358635,0x82358636,0x82358637,0x82358638,0x82358639,
- 0x82358730,0x82358731, 0xFE9F,0x82358732,0x82358733,0x82358734,
- 0x82358735,0x82358736,0x82358737,0x82358738,0x82358739,0x82358830,
- 0x82358831,0x82358832,0x82358833,0x82358834,0x82358835,0x82358836,
- 0x82358837,0x82358838,0x82358839,0x82358930,0x82358931,0x82358932,
- 0x82358933,0x82358934,0x82358935,0x82358936,0x82358937,0x82358938,
- 0x82358939,0x82358A30,0x82358A31,0x82358A32,0x82358A33,0x82358A34,
- 0x82358A35,0x82358A36,0x82358A37,0x82358A38,0x82358A39,0x82358B30,
- 0x82358B31,0x82358B32,0x82358B33,0x82358B34,0x82358B35,0x82358B36,
- 0x82358B37,0x82358B38,0x82358B39,0x82358C30,0x82358C31,0x82358C32,
- 0x82358C33,0x82358C34,0x82358C35,0x82358C36,0x82358C37,0x82358C38,
- 0x82358C39,0x82358D30,0x82358D31,0x82358D32,0x82358D33,0x82358D34,
- 0x82358D35,0x82358D36,0x82358D37,0x82358D38,0x82358D39,0x82358E30,
- 0x82358E31,0x82358E32,0x82358E33,0x82358E34,0x82358E35,0x82358E36,
- 0x82358E37,0x82358E38,0x82358E39,0x82358F30,0x82358F31,0x82358F32,
- 0xD2BB, 0xB6A1, 0x8140, 0xC6DF, 0x8141, 0x8142,
- 0x8143, 0xCDF2, 0xD5C9, 0xC8FD, 0xC9CF, 0xCFC2,
- 0xD8A2, 0xB2BB, 0xD3EB, 0x8144, 0xD8A4, 0xB3F3,
- 0x8145, 0xD7A8, 0xC7D2, 0xD8A7, 0xCAC0, 0x8146,
- 0xC7F0, 0xB1FB, 0xD2B5, 0xB4D4, 0xB6AB, 0xCBBF,
- 0xD8A9, 0x8147, 0x8148, 0x8149, 0xB6AA, 0x814A,
- 0xC1BD, 0xD1CF, 0x814B, 0xC9A5, 0xD8AD, 0x814C,
- 0xB8F6, 0xD1BE, 0xE3DC, 0xD6D0, 0x814D, 0x814E,
- 0xB7E1, 0x814F, 0xB4AE, 0x8150, 0xC1D9, 0x8151,
- 0xD8BC, 0x8152, 0xCDE8, 0xB5A4, 0xCEAA, 0xD6F7,
- 0x8153, 0xC0F6, 0xBED9, 0xD8AF, 0x8154, 0x8155,
- 0x8156, 0xC4CB, 0x8157, 0xBEC3, 0x8158, 0xD8B1,
- 0xC3B4, 0xD2E5, 0x8159, 0xD6AE, 0xCEDA, 0xD5A7,
- 0xBAF5, 0xB7A6, 0xC0D6, 0x815A, 0xC6B9, 0xC5D2,
- 0xC7C7, 0x815B, 0xB9D4, 0x815C, 0xB3CB, 0xD2D2,
- 0x815D, 0x815E, 0xD8BF, 0xBEC5, 0xC6F2, 0xD2B2,
- 0xCFB0, 0xCFE7, 0x815F, 0x8160, 0x8161, 0x8162,
- 0xCAE9, 0x8163, 0x8164, 0xD8C0, 0x8165, 0x8166,
- 0x8167, 0x8168, 0x8169, 0x816A, 0xC2F2, 0xC2D2,
- 0x816B, 0xC8E9, 0x816C, 0x816D, 0x816E, 0x816F,
- 0x8170, 0x8171, 0x8172, 0x8173, 0x8174, 0x8175,
- 0xC7AC, 0x8176, 0x8177, 0x8178, 0x8179, 0x817A,
- 0x817B, 0x817C, 0xC1CB, 0x817D, 0xD3E8, 0xD5F9,
- 0x817E, 0xCAC2, 0xB6FE, 0xD8A1, 0xD3DA, 0xBFF7,
- 0x8180, 0xD4C6, 0xBBA5, 0xD8C1, 0xCEE5, 0xBEAE,
- 0x8181, 0x8182, 0xD8A8, 0x8183, 0xD1C7, 0xD0A9,
- 0x8184, 0x8185, 0x8186, 0xD8BD, 0xD9EF, 0xCDF6,
- 0xBFBA, 0x8187, 0xBDBB, 0xBAA5, 0xD2E0, 0xB2FA,
- 0xBAE0, 0xC4B6, 0x8188, 0xCFED, 0xBEA9, 0xCDA4,
- 0xC1C1, 0x8189, 0x818A, 0x818B, 0xC7D7, 0xD9F1,
- 0x818C, 0xD9F4, 0x818D, 0x818E, 0x818F, 0x8190,
- 0xC8CB, 0xD8E9, 0x8191, 0x8192, 0x8193, 0xD2DA,
- 0xCAB2, 0xC8CA, 0xD8EC, 0xD8EA, 0xD8C6, 0xBDF6,
- 0xC6CD, 0xB3F0, 0x8194, 0xD8EB, 0xBDF1, 0xBDE9,
- 0x8195, 0xC8D4, 0xB4D3, 0x8196, 0x8197, 0xC2D8,
- 0x8198, 0xB2D6, 0xD7D0, 0xCACB, 0xCBFB, 0xD5CC,
- 0xB8B6, 0xCFC9, 0x8199, 0x819A, 0x819B, 0xD9DA,
- 0xD8F0, 0xC7AA, 0x819C, 0xD8EE, 0x819D, 0xB4FA,
- 0xC1EE, 0xD2D4, 0x819E, 0x819F, 0xD8ED, 0x81A0,
- 0xD2C7, 0xD8EF, 0xC3C7, 0x81A1, 0x81A2, 0x81A3,
- 0xD1F6, 0x81A4, 0xD6D9, 0xD8F2, 0x81A5, 0xD8F5,
- 0xBCFE, 0xBCDB, 0x81A6, 0x81A7, 0x81A8, 0xC8CE,
- 0x81A9, 0xB7DD, 0x81AA, 0xB7C2, 0x81AB, 0xC6F3,
- 0x81AC, 0x81AD, 0x81AE, 0x81AF, 0x81B0, 0x81B1,
- 0x81B2, 0xD8F8, 0xD2C1, 0x81B3, 0x81B4, 0xCEE9,
- 0xBCBF, 0xB7FC, 0xB7A5, 0xD0DD, 0x81B5, 0x81B6,
- 0x81B7, 0x81B8, 0x81B9, 0xD6DA, 0xD3C5, 0xBBEF,
- 0xBBE1, 0xD8F1, 0x81BA, 0x81BB, 0xC9A1, 0xCEB0,
- 0xB4AB, 0x81BC, 0xD8F3, 0x81BD, 0xC9CB, 0xD8F6,
- 0xC2D7, 0xD8F7, 0x81BE, 0x81BF, 0xCEB1, 0xD8F9,
- 0x81C0, 0x81C1, 0x81C2, 0xB2AE, 0xB9C0, 0x81C3,
- 0xD9A3, 0x81C4, 0xB0E9, 0x81C5, 0xC1E6, 0x81C6,
- 0xC9EC, 0x81C7, 0xCBC5, 0x81C8, 0xCBC6, 0xD9A4,
- 0x81C9, 0x81CA, 0x81CB, 0x81CC, 0x81CD, 0xB5E8,
- 0x81CE, 0x81CF, 0xB5AB, 0x81D0, 0x81D1, 0x81D2,
- 0x81D3, 0x81D4, 0x81D5, 0xCEBB, 0xB5CD, 0xD7A1,
- 0xD7F4, 0xD3D3, 0x81D6, 0xCCE5, 0x81D7, 0xBACE,
- 0x81D8, 0xD9A2, 0xD9DC, 0xD3E0, 0xD8FD, 0xB7F0,
- 0xD7F7, 0xD8FE, 0xD8FA, 0xD9A1, 0xC4E3, 0x81D9,
- 0x81DA, 0xD3B6, 0xD8F4, 0xD9DD, 0x81DB, 0xD8FB,
- 0x81DC, 0xC5E5, 0x81DD, 0x81DE, 0xC0D0, 0x81DF,
- 0x81E0, 0xD1F0, 0xB0DB, 0x81E1, 0x81E2, 0xBCD1,
- 0xD9A6, 0x81E3, 0xD9A5, 0x81E4, 0x81E5, 0x81E6,
- 0x81E7, 0xD9AC, 0xD9AE, 0x81E8, 0xD9AB, 0xCAB9,
- 0x81E9, 0x81EA, 0x81EB, 0xD9A9, 0xD6B6, 0x81EC,
- 0x81ED, 0x81EE, 0xB3DE, 0xD9A8, 0x81EF, 0xC0FD,
- 0x81F0, 0xCACC, 0x81F1, 0xD9AA, 0x81F2, 0xD9A7,
- 0x81F3, 0x81F4, 0xD9B0, 0x81F5, 0x81F6, 0xB6B1,
- 0x81F7, 0x81F8, 0x81F9, 0xB9A9, 0x81FA, 0xD2C0,
- 0x81FB, 0x81FC, 0xCFC0, 0x81FD, 0x81FE, 0xC2C2,
- 0x8240, 0xBDC4, 0xD5EC, 0xB2E0, 0xC7C8, 0xBFEB,
- 0xD9AD, 0x8241, 0xD9AF, 0x8242, 0xCEEA, 0xBAEE,
- 0x8243, 0x8244, 0x8245, 0x8246, 0x8247, 0xC7D6,
- 0x8248, 0x8249, 0x824A, 0x824B, 0x824C, 0x824D,
- 0x824E, 0x824F, 0x8250, 0xB1E3, 0x8251, 0x8252,
- 0x8253, 0xB4D9, 0xB6ED, 0xD9B4, 0x8254, 0x8255,
- 0x8256, 0x8257, 0xBFA1, 0x8258, 0x8259, 0x825A,
- 0xD9DE, 0xC7CE, 0xC0FE, 0xD9B8, 0x825B, 0x825C,
- 0x825D, 0x825E, 0x825F, 0xCBD7, 0xB7FD, 0x8260,
- 0xD9B5, 0x8261, 0xD9B7, 0xB1A3, 0xD3E1, 0xD9B9,
- 0x8262, 0xD0C5, 0x8263, 0xD9B6, 0x8264, 0x8265,
- 0xD9B1, 0x8266, 0xD9B2, 0xC1A9, 0xD9B3, 0x8267,
- 0x8268, 0xBCF3, 0xD0DE, 0xB8A9, 0x8269, 0xBEE3,
- 0x826A, 0xD9BD, 0x826B, 0x826C, 0x826D, 0x826E,
- 0xD9BA, 0x826F, 0xB0B3, 0x8270, 0x8271, 0x8272,
- 0xD9C2, 0x8273, 0x8274, 0x8275, 0x8276, 0x8277,
- 0x8278, 0x8279, 0x827A, 0x827B, 0x827C, 0x827D,
- 0x827E, 0x8280, 0xD9C4, 0xB1B6, 0x8281, 0xD9BF,
- 0x8282, 0x8283, 0xB5B9, 0x8284, 0xBEF3, 0x8285,
- 0x8286, 0x8287, 0xCCC8, 0xBAF2, 0xD2D0, 0x8288,
- 0xD9C3, 0x8289, 0x828A, 0xBDE8, 0x828B, 0xB3AB,
- 0x828C, 0x828D, 0x828E, 0xD9C5, 0xBEEB, 0x828F,
- 0xD9C6, 0xD9BB, 0xC4DF, 0x8290, 0xD9BE, 0xD9C1,
- 0xD9C0, 0x8291, 0x8292, 0x8293, 0x8294, 0x8295,
- 0x8296, 0x8297, 0x8298, 0x8299, 0x829A, 0x829B,
- 0xD5AE, 0x829C, 0xD6B5, 0x829D, 0xC7E3, 0x829E,
- 0x829F, 0x82A0, 0x82A1, 0xD9C8, 0x82A2, 0x82A3,
- 0x82A4, 0xBCD9, 0xD9CA, 0x82A5, 0x82A6, 0x82A7,
- 0xD9BC, 0x82A8, 0xD9CB, 0xC6AB, 0x82A9, 0x82AA,
- 0x82AB, 0x82AC, 0x82AD, 0xD9C9, 0x82AE, 0x82AF,
- 0x82B0, 0x82B1, 0xD7F6, 0x82B2, 0xCDA3, 0x82B3,
- 0x82B4, 0x82B5, 0x82B6, 0x82B7, 0x82B8, 0x82B9,
- 0x82BA, 0xBDA1, 0x82BB, 0x82BC, 0x82BD, 0x82BE,
- 0x82BF, 0x82C0, 0xD9CC, 0x82C1, 0x82C2, 0x82C3,
- 0x82C4, 0x82C5, 0x82C6, 0x82C7, 0x82C8, 0x82C9,
- 0xC5BC, 0xCDB5, 0x82CA, 0x82CB, 0x82CC, 0xD9CD,
- 0x82CD, 0x82CE, 0xD9C7, 0xB3A5, 0xBFFE, 0x82CF,
- 0x82D0, 0x82D1, 0x82D2, 0xB8B5, 0x82D3, 0x82D4,
- 0xC0FC, 0x82D5, 0x82D6, 0x82D7, 0x82D8, 0xB0F8,
- 0x82D9, 0x82DA, 0x82DB, 0x82DC, 0x82DD, 0x82DE,
- 0x82DF, 0x82E0, 0x82E1, 0x82E2, 0x82E3, 0x82E4,
- 0x82E5, 0x82E6, 0x82E7, 0x82E8, 0x82E9, 0x82EA,
- 0x82EB, 0x82EC, 0x82ED, 0xB4F6, 0x82EE, 0xD9CE,
- 0x82EF, 0xD9CF, 0xB4A2, 0xD9D0, 0x82F0, 0x82F1,
- 0xB4DF, 0x82F2, 0x82F3, 0x82F4, 0x82F5, 0x82F6,
- 0xB0C1, 0x82F7, 0x82F8, 0x82F9, 0x82FA, 0x82FB,
- 0x82FC, 0x82FD, 0xD9D1, 0xC9B5, 0x82FE, 0x8340,
- 0x8341, 0x8342, 0x8343, 0x8344, 0x8345, 0x8346,
- 0x8347, 0x8348, 0x8349, 0x834A, 0x834B, 0x834C,
- 0x834D, 0x834E, 0x834F, 0x8350, 0x8351, 0xCFF1,
- 0x8352, 0x8353, 0x8354, 0x8355, 0x8356, 0x8357,
- 0xD9D2, 0x8358, 0x8359, 0x835A, 0xC1C5, 0x835B,
- 0x835C, 0x835D, 0x835E, 0x835F, 0x8360, 0x8361,
- 0x8362, 0x8363, 0x8364, 0x8365, 0xD9D6, 0xC9AE,
- 0x8366, 0x8367, 0x8368, 0x8369, 0xD9D5, 0xD9D4,
- 0xD9D7, 0x836A, 0x836B, 0x836C, 0x836D, 0xCBDB,
- 0x836E, 0xBDA9, 0x836F, 0x8370, 0x8371, 0x8372,
- 0x8373, 0xC6A7, 0x8374, 0x8375, 0x8376, 0x8377,
- 0x8378, 0x8379, 0x837A, 0x837B, 0x837C, 0x837D,
- 0xD9D3, 0xD9D8, 0x837E, 0x8380, 0x8381, 0xD9D9,
- 0x8382, 0x8383, 0x8384, 0x8385, 0x8386, 0x8387,
- 0xC8E5, 0x8388, 0x8389, 0x838A, 0x838B, 0x838C,
- 0x838D, 0x838E, 0x838F, 0x8390, 0x8391, 0x8392,
- 0x8393, 0x8394, 0x8395, 0xC0DC, 0x8396, 0x8397,
- 0x8398, 0x8399, 0x839A, 0x839B, 0x839C, 0x839D,
- 0x839E, 0x839F, 0x83A0, 0x83A1, 0x83A2, 0x83A3,
- 0x83A4, 0x83A5, 0x83A6, 0x83A7, 0x83A8, 0x83A9,
- 0x83AA, 0x83AB, 0x83AC, 0x83AD, 0x83AE, 0x83AF,
- 0x83B0, 0x83B1, 0x83B2, 0xB6F9, 0xD8A3, 0xD4CA,
- 0x83B3, 0xD4AA, 0xD0D6, 0xB3E4, 0xD5D7, 0x83B4,
- 0xCFC8, 0xB9E2, 0x83B5, 0xBFCB, 0x83B6, 0xC3E2,
- 0x83B7, 0x83B8, 0x83B9, 0xB6D2, 0x83BA, 0x83BB,
- 0xCDC3, 0xD9EE, 0xD9F0, 0x83BC, 0x83BD, 0x83BE,
- 0xB5B3, 0x83BF, 0xB6B5, 0x83C0, 0x83C1, 0x83C2,
- 0x83C3, 0x83C4, 0xBEA4, 0x83C5, 0x83C6, 0xC8EB,
- 0x83C7, 0x83C8, 0xC8AB, 0x83C9, 0x83CA, 0xB0CB,
- 0xB9AB, 0xC1F9, 0xD9E2, 0x83CB, 0xC0BC, 0xB9B2,
- 0x83CC, 0xB9D8, 0xD0CB, 0xB1F8, 0xC6E4, 0xBEDF,
- 0xB5E4, 0xD7C8, 0x83CD, 0xD1F8, 0xBCE6, 0xCADE,
- 0x83CE, 0x83CF, 0xBCBD, 0xD9E6, 0xD8E7, 0x83D0,
- 0x83D1, 0xC4DA, 0x83D2, 0x83D3, 0xB8D4, 0xC8BD,
- 0x83D4, 0x83D5, 0xB2E1, 0xD4D9, 0x83D6, 0x83D7,
- 0x83D8, 0x83D9, 0xC3B0, 0x83DA, 0x83DB, 0xC3E1,
- 0xDAA2, 0xC8DF, 0x83DC, 0xD0B4, 0x83DD, 0xBEFC,
- 0xC5A9, 0x83DE, 0x83DF, 0x83E0, 0xB9DA, 0x83E1,
- 0xDAA3, 0x83E2, 0xD4A9, 0xDAA4, 0x83E3, 0x83E4,
- 0x83E5, 0x83E6, 0x83E7, 0xD9FB, 0xB6AC, 0x83E8,
- 0x83E9, 0xB7EB, 0xB1F9, 0xD9FC, 0xB3E5, 0xBEF6,
- 0x83EA, 0xBFF6, 0xD2B1, 0xC0E4, 0x83EB, 0x83EC,
- 0x83ED, 0xB6B3, 0xD9FE, 0xD9FD, 0x83EE, 0x83EF,
- 0xBEBB, 0x83F0, 0x83F1, 0x83F2, 0xC6E0, 0x83F3,
- 0xD7BC, 0xDAA1, 0x83F4, 0xC1B9, 0x83F5, 0xB5F2,
- 0xC1E8, 0x83F6, 0x83F7, 0xBCF5, 0x83F8, 0xB4D5,
- 0x83F9, 0x83FA, 0x83FB, 0x83FC, 0x83FD, 0x83FE,
- 0x8440, 0x8441, 0x8442, 0xC1DD, 0x8443, 0xC4FD,
- 0x8444, 0x8445, 0xBCB8, 0xB7B2, 0x8446, 0x8447,
- 0xB7EF, 0x8448, 0x8449, 0x844A, 0x844B, 0x844C,
- 0x844D, 0xD9EC, 0x844E, 0xC6BE, 0x844F, 0xBFAD,
- 0xBBCB, 0x8450, 0x8451, 0xB5CA, 0x8452, 0xDBC9,
- 0xD0D7, 0x8453, 0xCDB9, 0xB0BC, 0xB3F6, 0xBBF7,
- 0xDBCA, 0xBAAF, 0x8454, 0xD4E4, 0xB5B6, 0xB5F3,
- 0xD8D6, 0xC8D0, 0x8455, 0x8456, 0xB7D6, 0xC7D0,
- 0xD8D7, 0x8457, 0xBFAF, 0x8458, 0x8459, 0xDBBB,
- 0xD8D8, 0x845A, 0x845B, 0xD0CC, 0xBBAE, 0x845C,
- 0x845D, 0x845E, 0xEBBE, 0xC1D0, 0xC1F5, 0xD4F2,
- 0xB8D5, 0xB4B4, 0x845F, 0xB3F5, 0x8460, 0x8461,
- 0xC9BE, 0x8462, 0x8463, 0x8464, 0xC5D0, 0x8465,
- 0x8466, 0x8467, 0xC5D9, 0xC0FB, 0x8468, 0xB1F0,
- 0x8469, 0xD8D9, 0xB9CE, 0x846A, 0xB5BD, 0x846B,
- 0x846C, 0xD8DA, 0x846D, 0x846E, 0xD6C6, 0xCBA2,
- 0xC8AF, 0xC9B2, 0xB4CC, 0xBFCC, 0x846F, 0xB9F4,
- 0x8470, 0xD8DB, 0xD8DC, 0xB6E7, 0xBCC1, 0xCCEA,
- 0x8471, 0x8472, 0x8473, 0x8474, 0x8475, 0x8476,
- 0xCFF7, 0x8477, 0xD8DD, 0xC7B0, 0x8478, 0x8479,
- 0xB9D0, 0xBDA3, 0x847A, 0x847B, 0xCCDE, 0x847C,
- 0xC6CA, 0x847D, 0x847E, 0x8480, 0x8481, 0x8482,
- 0xD8E0, 0x8483, 0xD8DE, 0x8484, 0x8485, 0xD8DF,
- 0x8486, 0x8487, 0x8488, 0xB0FE, 0x8489, 0xBEE7,
- 0x848A, 0xCAA3, 0xBCF4, 0x848B, 0x848C, 0x848D,
- 0x848E, 0xB8B1, 0x848F, 0x8490, 0xB8EE, 0x8491,
- 0x8492, 0x8493, 0x8494, 0x8495, 0x8496, 0x8497,
- 0x8498, 0x8499, 0x849A, 0xD8E2, 0x849B, 0xBDCB,
- 0x849C, 0xD8E4, 0xD8E3, 0x849D, 0x849E, 0x849F,
- 0x84A0, 0x84A1, 0xC5FC, 0x84A2, 0x84A3, 0x84A4,
- 0x84A5, 0x84A6, 0x84A7, 0x84A8, 0xD8E5, 0x84A9,
- 0x84AA, 0xD8E6, 0x84AB, 0x84AC, 0x84AD, 0x84AE,
- 0x84AF, 0x84B0, 0x84B1, 0xC1A6, 0x84B2, 0xC8B0,
- 0xB0EC, 0xB9A6, 0xBCD3, 0xCEF1, 0xDBBD, 0xC1D3,
- 0x84B3, 0x84B4, 0x84B5, 0x84B6, 0xB6AF, 0xD6FA,
- 0xC5AC, 0xBDD9, 0xDBBE, 0xDBBF, 0x84B7, 0x84B8,
- 0x84B9, 0xC0F8, 0xBEA2, 0xC0CD, 0x84BA, 0x84BB,
- 0x84BC, 0x84BD, 0x84BE, 0x84BF, 0x84C0, 0x84C1,
- 0x84C2, 0x84C3, 0xDBC0, 0xCAC6, 0x84C4, 0x84C5,
- 0x84C6, 0xB2AA, 0x84C7, 0x84C8, 0x84C9, 0xD3C2,
- 0x84CA, 0xC3E3, 0x84CB, 0xD1AB, 0x84CC, 0x84CD,
- 0x84CE, 0x84CF, 0xDBC2, 0x84D0, 0xC0D5, 0x84D1,
- 0x84D2, 0x84D3, 0xDBC3, 0x84D4, 0xBFB1, 0x84D5,
- 0x84D6, 0x84D7, 0x84D8, 0x84D9, 0x84DA, 0xC4BC,
- 0x84DB, 0x84DC, 0x84DD, 0x84DE, 0xC7DA, 0x84DF,
- 0x84E0, 0x84E1, 0x84E2, 0x84E3, 0x84E4, 0x84E5,
- 0x84E6, 0x84E7, 0x84E8, 0x84E9, 0xDBC4, 0x84EA,
- 0x84EB, 0x84EC, 0x84ED, 0x84EE, 0x84EF, 0x84F0,
- 0x84F1, 0xD9E8, 0xC9D7, 0x84F2, 0x84F3, 0x84F4,
- 0xB9B4, 0xCEF0, 0xD4C8, 0x84F5, 0x84F6, 0x84F7,
- 0x84F8, 0xB0FC, 0xB4D2, 0x84F9, 0xD0D9, 0x84FA,
- 0x84FB, 0x84FC, 0x84FD, 0xD9E9, 0x84FE, 0xDECB,
- 0xD9EB, 0x8540, 0x8541, 0x8542, 0x8543, 0xD8B0,
- 0xBBAF, 0xB1B1, 0x8544, 0xB3D7, 0xD8CE, 0x8545,
- 0x8546, 0xD4D1, 0x8547, 0x8548, 0xBDB3, 0xBFEF,
- 0x8549, 0xCFBB, 0x854A, 0x854B, 0xD8D0, 0x854C,
- 0x854D, 0x854E, 0xB7CB, 0x854F, 0x8550, 0x8551,
- 0xD8D1, 0x8552, 0x8553, 0x8554, 0x8555, 0x8556,
- 0x8557, 0x8558, 0x8559, 0x855A, 0x855B, 0xC6A5,
- 0xC7F8, 0xD2BD, 0x855C, 0x855D, 0xD8D2, 0xC4E4,
- 0x855E, 0xCAAE, 0x855F, 0xC7A7, 0x8560, 0xD8A6,
- 0x8561, 0xC9FD, 0xCEE7, 0xBBDC, 0xB0EB, 0x8562,
- 0x8563, 0x8564, 0xBBAA, 0xD0AD, 0x8565, 0xB1B0,
- 0xD7E4, 0xD7BF, 0x8566, 0xB5A5, 0xC2F4, 0xC4CF,
- 0x8567, 0x8568, 0xB2A9, 0x8569, 0xB2B7, 0x856A,
- 0xB1E5, 0xDFB2, 0xD5BC, 0xBFA8, 0xC2AC, 0xD8D5,
- 0xC2B1, 0x856B, 0xD8D4, 0xCED4, 0x856C, 0xDAE0,
- 0x856D, 0xCEC0, 0x856E, 0x856F, 0xD8B4, 0xC3AE,
- 0xD3A1, 0xCEA3, 0x8570, 0xBCB4, 0xC8B4, 0xC2D1,
- 0x8571, 0xBEED, 0xD0B6, 0x8572, 0xDAE1, 0x8573,
- 0x8574, 0x8575, 0x8576, 0xC7E4, 0x8577, 0x8578,
- 0xB3A7, 0x8579, 0xB6F2, 0xCCFC, 0xC0FA, 0x857A,
- 0x857B, 0xC0F7, 0x857C, 0xD1B9, 0xD1E1, 0xD8C7,
- 0x857D, 0x857E, 0x8580, 0x8581, 0x8582, 0x8583,
- 0x8584, 0xB2DE, 0x8585, 0x8586, 0xC0E5, 0x8587,
- 0xBAF1, 0x8588, 0x8589, 0xD8C8, 0x858A, 0xD4AD,
- 0x858B, 0x858C, 0xCFE1, 0xD8C9, 0x858D, 0xD8CA,
- 0xCFC3, 0x858E, 0xB3F8, 0xBEC7, 0x858F, 0x8590,
- 0x8591, 0x8592, 0xD8CB, 0x8593, 0x8594, 0x8595,
- 0x8596, 0x8597, 0x8598, 0x8599, 0xDBCC, 0x859A,
- 0x859B, 0x859C, 0x859D, 0xC8A5, 0x859E, 0x859F,
- 0x85A0, 0xCFD8, 0x85A1, 0xC8FE, 0xB2CE, 0x85A2,
- 0x85A3, 0x85A4, 0x85A5, 0x85A6, 0xD3D6, 0xB2E6,
- 0xBCB0, 0xD3D1, 0xCBAB, 0xB7B4, 0x85A7, 0x85A8,
- 0x85A9, 0xB7A2, 0x85AA, 0x85AB, 0xCAE5, 0x85AC,
- 0xC8A1, 0xCADC, 0xB1E4, 0xD0F0, 0x85AD, 0xC5D1,
- 0x85AE, 0x85AF, 0x85B0, 0xDBC5, 0xB5FE, 0x85B1,
- 0x85B2, 0xBFDA, 0xB9C5, 0xBEE4, 0xC1ED, 0x85B3,
- 0xDFB6, 0xDFB5, 0xD6BB, 0xBDD0, 0xD5D9, 0xB0C8,
- 0xB6A3, 0xBFC9, 0xCCA8, 0xDFB3, 0xCAB7, 0xD3D2,
- 0x85B4, 0xD8CF, 0xD2B6, 0xBAC5, 0xCBBE, 0xCCBE,
- 0x85B5, 0xDFB7, 0xB5F0, 0xDFB4, 0x85B6, 0x85B7,
- 0x85B8, 0xD3F5, 0x85B9, 0xB3D4, 0xB8F7, 0x85BA,
- 0xDFBA, 0x85BB, 0xBACF, 0xBCAA, 0xB5F5, 0x85BC,
- 0xCDAC, 0xC3FB, 0xBAF3, 0xC0F4, 0xCDC2, 0xCFF2,
- 0xDFB8, 0xCFC5, 0x85BD, 0xC2C0, 0xDFB9, 0xC2F0,
- 0x85BE, 0x85BF, 0x85C0, 0xBEFD, 0x85C1, 0xC1DF,
- 0xCDCC, 0xD2F7, 0xB7CD, 0xDFC1, 0x85C2, 0xDFC4,
- 0x85C3, 0x85C4, 0xB7F1, 0xB0C9, 0xB6D6, 0xB7D4,
- 0x85C5, 0xBAAC, 0xCCFD, 0xBFD4, 0xCBB1, 0xC6F4,
- 0x85C6, 0xD6A8, 0xDFC5, 0x85C7, 0xCEE2, 0xB3B3,
- 0x85C8, 0x85C9, 0xCEFC, 0xB4B5, 0x85CA, 0xCEC7,
- 0xBAF0, 0x85CB, 0xCEE1, 0x85CC, 0xD1BD, 0x85CD,
- 0x85CE, 0xDFC0, 0x85CF, 0x85D0, 0xB4F4, 0x85D1,
- 0xB3CA, 0x85D2, 0xB8E6, 0xDFBB, 0x85D3, 0x85D4,
- 0x85D5, 0x85D6, 0xC4C5, 0x85D7, 0xDFBC, 0xDFBD,
- 0xDFBE, 0xC5BB, 0xDFBF, 0xDFC2, 0xD4B1, 0xDFC3,
- 0x85D8, 0xC7BA, 0xCED8, 0x85D9, 0x85DA, 0x85DB,
- 0x85DC, 0x85DD, 0xC4D8, 0x85DE, 0xDFCA, 0x85DF,
- 0xDFCF, 0x85E0, 0xD6DC, 0x85E1, 0x85E2, 0x85E3,
- 0x85E4, 0x85E5, 0x85E6, 0x85E7, 0x85E8, 0xDFC9,
- 0xDFDA, 0xCEB6, 0x85E9, 0xBAC7, 0xDFCE, 0xDFC8,
- 0xC5DE, 0x85EA, 0x85EB, 0xC9EB, 0xBAF4, 0xC3FC,
- 0x85EC, 0x85ED, 0xBED7, 0x85EE, 0xDFC6, 0x85EF,
- 0xDFCD, 0x85F0, 0xC5D8, 0x85F1, 0x85F2, 0x85F3,
- 0x85F4, 0xD5A6, 0xBACD, 0x85F5, 0xBECC, 0xD3BD,
- 0xB8C0, 0x85F6, 0xD6E4, 0x85F7, 0xDFC7, 0xB9BE,
- 0xBFA7, 0x85F8, 0x85F9, 0xC1FC, 0xDFCB, 0xDFCC,
- 0x85FA, 0xDFD0, 0x85FB, 0x85FC, 0x85FD, 0x85FE,
- 0x8640, 0xDFDB, 0xDFE5, 0x8641, 0xDFD7, 0xDFD6,
- 0xD7C9, 0xDFE3, 0xDFE4, 0xE5EB, 0xD2A7, 0xDFD2,
- 0x8642, 0xBFA9, 0x8643, 0xD4DB, 0x8644, 0xBFC8,
- 0xDFD4, 0x8645, 0x8646, 0x8647, 0xCFCC, 0x8648,
- 0x8649, 0xDFDD, 0x864A, 0xD1CA, 0x864B, 0xDFDE,
- 0xB0A7, 0xC6B7, 0xDFD3, 0x864C, 0xBAE5, 0x864D,
- 0xB6DF, 0xCDDB, 0xB9FE, 0xD4D5, 0x864E, 0x864F,
- 0xDFDF, 0xCFEC, 0xB0A5, 0xDFE7, 0xDFD1, 0xD1C6,
- 0xDFD5, 0xDFD8, 0xDFD9, 0xDFDC, 0x8650, 0xBBA9,
- 0x8651, 0xDFE0, 0xDFE1, 0x8652, 0xDFE2, 0xDFE6,
- 0xDFE8, 0xD3B4, 0x8653, 0x8654, 0x8655, 0x8656,
- 0x8657, 0xB8E7, 0xC5B6, 0xDFEA, 0xC9DA, 0xC1A8,
- 0xC4C4, 0x8658, 0x8659, 0xBFDE, 0xCFF8, 0x865A,
- 0x865B, 0x865C, 0xD5DC, 0xDFEE, 0x865D, 0x865E,
- 0x865F, 0x8660, 0x8661, 0x8662, 0xB2B8, 0x8663,
- 0xBADF, 0xDFEC, 0x8664, 0xDBC1, 0x8665, 0xD1E4,
- 0x8666, 0x8667, 0x8668, 0x8669, 0xCBF4, 0xB4BD,
- 0x866A, 0xB0A6, 0x866B, 0x866C, 0x866D, 0x866E,
- 0x866F, 0xDFF1, 0xCCC6, 0xDFF2, 0x8670, 0x8671,
- 0xDFED, 0x8672, 0x8673, 0x8674, 0x8675, 0x8676,
- 0x8677, 0xDFE9, 0x8678, 0x8679, 0x867A, 0x867B,
- 0xDFEB, 0x867C, 0xDFEF, 0xDFF0, 0xBBBD, 0x867D,
- 0x867E, 0xDFF3, 0x8680, 0x8681, 0xDFF4, 0x8682,
- 0xBBA3, 0x8683, 0xCADB, 0xCEA8, 0xE0A7, 0xB3AA,
- 0x8684, 0xE0A6, 0x8685, 0x8686, 0x8687, 0xE0A1,
- 0x8688, 0x8689, 0x868A, 0x868B, 0xDFFE, 0x868C,
- 0xCDD9, 0xDFFC, 0x868D, 0xDFFA, 0x868E, 0xBFD0,
- 0xD7C4, 0x868F, 0xC9CC, 0x8690, 0x8691, 0xDFF8,
- 0xB0A1, 0x8692, 0x8693, 0x8694, 0x8695, 0x8696,
- 0xDFFD, 0x8697, 0x8698, 0x8699, 0x869A, 0xDFFB,
- 0xE0A2, 0x869B, 0x869C, 0x869D, 0x869E, 0x869F,
- 0xE0A8, 0x86A0, 0x86A1, 0x86A2, 0x86A3, 0xB7C8,
- 0x86A4, 0x86A5, 0xC6A1, 0xC9B6, 0xC0B2, 0xDFF5,
- 0x86A6, 0x86A7, 0xC5BE, 0x86A8, 0xD8C4, 0xDFF9,
- 0xC4F6, 0x86A9, 0x86AA, 0x86AB, 0x86AC, 0x86AD,
- 0x86AE, 0xE0A3, 0xE0A4, 0xE0A5, 0xD0A5, 0x86AF,
- 0x86B0, 0xE0B4, 0xCCE4, 0x86B1, 0xE0B1, 0x86B2,
- 0xBFA6, 0xE0AF, 0xCEB9, 0xE0AB, 0xC9C6, 0x86B3,
- 0x86B4, 0xC0AE, 0xE0AE, 0xBAED, 0xBAB0, 0xE0A9,
- 0x86B5, 0x86B6, 0x86B7, 0xDFF6, 0x86B8, 0xE0B3,
- 0x86B9, 0x86BA, 0xE0B8, 0x86BB, 0x86BC, 0x86BD,
- 0xB4AD, 0xE0B9, 0x86BE, 0x86BF, 0xCFB2, 0xBAC8,
- 0x86C0, 0xE0B0, 0x86C1, 0x86C2, 0x86C3, 0x86C4,
- 0x86C5, 0x86C6, 0x86C7, 0xD0FA, 0x86C8, 0x86C9,
- 0x86CA, 0x86CB, 0x86CC, 0x86CD, 0x86CE, 0x86CF,
- 0x86D0, 0xE0AC, 0x86D1, 0xD4FB, 0x86D2, 0xDFF7,
- 0x86D3, 0xC5E7, 0x86D4, 0xE0AD, 0x86D5, 0xD3F7,
- 0x86D6, 0xE0B6, 0xE0B7, 0x86D7, 0x86D8, 0x86D9,
- 0x86DA, 0x86DB, 0xE0C4, 0xD0E1, 0x86DC, 0x86DD,
- 0x86DE, 0xE0BC, 0x86DF, 0x86E0, 0xE0C9, 0xE0CA,
- 0x86E1, 0x86E2, 0x86E3, 0xE0BE, 0xE0AA, 0xC9A4,
- 0xE0C1, 0x86E4, 0xE0B2, 0x86E5, 0x86E6, 0x86E7,
- 0x86E8, 0x86E9, 0xCAC8, 0xE0C3, 0x86EA, 0xE0B5,
- 0x86EB, 0xCECB, 0x86EC, 0xCBC3, 0xE0CD, 0xE0C6,
- 0xE0C2, 0x86ED, 0xE0CB, 0x86EE, 0xE0BA, 0xE0BF,
- 0xE0C0, 0x86EF, 0x86F0, 0xE0C5, 0x86F1, 0x86F2,
- 0xE0C7, 0xE0C8, 0x86F3, 0xE0CC, 0x86F4, 0xE0BB,
- 0x86F5, 0x86F6, 0x86F7, 0x86F8, 0x86F9, 0xCBD4,
- 0xE0D5, 0x86FA, 0xE0D6, 0xE0D2, 0x86FB, 0x86FC,
- 0x86FD, 0x86FE, 0x8740, 0x8741, 0xE0D0, 0xBCCE,
- 0x8742, 0x8743, 0xE0D1, 0x8744, 0xB8C2, 0xD8C5,
- 0x8745, 0x8746, 0x8747, 0x8748, 0x8749, 0x874A,
- 0x874B, 0x874C, 0xD0EA, 0x874D, 0x874E, 0xC2EF,
- 0x874F, 0x8750, 0xE0CF, 0xE0BD, 0x8751, 0x8752,
- 0x8753, 0xE0D4, 0xE0D3, 0x8754, 0x8755, 0xE0D7,
- 0x8756, 0x8757, 0x8758, 0x8759, 0xE0DC, 0xE0D8,
- 0x875A, 0x875B, 0x875C, 0xD6F6, 0xB3B0, 0x875D,
- 0xD7EC, 0x875E, 0xCBBB, 0x875F, 0x8760, 0xE0DA,
- 0x8761, 0xCEFB, 0x8762, 0x8763, 0x8764, 0xBAD9,
- 0x8765, 0x8766, 0x8767, 0x8768, 0x8769, 0x876A,
- 0x876B, 0x876C, 0x876D, 0x876E, 0x876F, 0x8770,
- 0xE0E1, 0xE0DD, 0xD2AD, 0x8771, 0x8772, 0x8773,
- 0x8774, 0x8775, 0xE0E2, 0x8776, 0x8777, 0xE0DB,
- 0xE0D9, 0xE0DF, 0x8778, 0x8779, 0xE0E0, 0x877A,
- 0x877B, 0x877C, 0x877D, 0x877E, 0xE0DE, 0x8780,
- 0xE0E4, 0x8781, 0x8782, 0x8783, 0xC6F7, 0xD8AC,
- 0xD4EB, 0xE0E6, 0xCAC9, 0x8784, 0x8785, 0x8786,
- 0x8787, 0xE0E5, 0x8788, 0x8789, 0x878A, 0x878B,
- 0xB8C1, 0x878C, 0x878D, 0x878E, 0x878F, 0xE0E7,
- 0xE0E8, 0x8790, 0x8791, 0x8792, 0x8793, 0x8794,
- 0x8795, 0x8796, 0x8797, 0xE0E9, 0xE0E3, 0x8798,
- 0x8799, 0x879A, 0x879B, 0x879C, 0x879D, 0x879E,
- 0xBABF, 0xCCE7, 0x879F, 0x87A0, 0x87A1, 0xE0EA,
- 0x87A2, 0x87A3, 0x87A4, 0x87A5, 0x87A6, 0x87A7,
- 0x87A8, 0x87A9, 0x87AA, 0x87AB, 0x87AC, 0x87AD,
- 0x87AE, 0x87AF, 0x87B0, 0xCFF9, 0x87B1, 0x87B2,
- 0x87B3, 0x87B4, 0x87B5, 0x87B6, 0x87B7, 0x87B8,
- 0x87B9, 0x87BA, 0x87BB, 0xE0EB, 0x87BC, 0x87BD,
- 0x87BE, 0x87BF, 0x87C0, 0x87C1, 0x87C2, 0xC8C2,
- 0x87C3, 0x87C4, 0x87C5, 0x87C6, 0xBDC0, 0x87C7,
- 0x87C8, 0x87C9, 0x87CA, 0x87CB, 0x87CC, 0x87CD,
- 0x87CE, 0x87CF, 0x87D0, 0x87D1, 0x87D2, 0x87D3,
- 0xC4D2, 0x87D4, 0x87D5, 0x87D6, 0x87D7, 0x87D8,
- 0x87D9, 0x87DA, 0x87DB, 0x87DC, 0xE0EC, 0x87DD,
- 0x87DE, 0xE0ED, 0x87DF, 0x87E0, 0xC7F4, 0xCBC4,
- 0x87E1, 0xE0EE, 0xBBD8, 0xD8B6, 0xD2F2, 0xE0EF,
- 0xCDC5, 0x87E2, 0xB6DA, 0x87E3, 0x87E4, 0x87E5,
- 0x87E6, 0x87E7, 0x87E8, 0xE0F1, 0x87E9, 0xD4B0,
- 0x87EA, 0x87EB, 0xC0A7, 0xB4D1, 0x87EC, 0x87ED,
- 0xCEA7, 0xE0F0, 0x87EE, 0x87EF, 0x87F0, 0xE0F2,
- 0xB9CC, 0x87F1, 0x87F2, 0xB9FA, 0xCDBC, 0xE0F3,
- 0x87F3, 0x87F4, 0x87F5, 0xC6D4, 0xE0F4, 0x87F6,
- 0xD4B2, 0x87F7, 0xC8A6, 0xE0F6, 0xE0F5, 0x87F8,
- 0x87F9, 0x87FA, 0x87FB, 0x87FC, 0x87FD, 0x87FE,
- 0x8840, 0x8841, 0x8842, 0x8843, 0x8844, 0x8845,
- 0x8846, 0x8847, 0x8848, 0x8849, 0xE0F7, 0x884A,
- 0x884B, 0xCDC1, 0x884C, 0x884D, 0x884E, 0xCAA5,
- 0x884F, 0x8850, 0x8851, 0x8852, 0xD4DA, 0xDBD7,
- 0xDBD9, 0x8853, 0xDBD8, 0xB9E7, 0xDBDC, 0xDBDD,
- 0xB5D8, 0x8854, 0x8855, 0xDBDA, 0x8856, 0x8857,
- 0x8858, 0x8859, 0x885A, 0xDBDB, 0xB3A1, 0xDBDF,
- 0x885B, 0x885C, 0xBBF8, 0x885D, 0xD6B7, 0x885E,
- 0xDBE0, 0x885F, 0x8860, 0x8861, 0x8862, 0xBEF9,
- 0x8863, 0x8864, 0xB7BB, 0x8865, 0xDBD0, 0xCCAE,
- 0xBFB2, 0xBBB5, 0xD7F8, 0xBFD3, 0x8866, 0x8867,
- 0x8868, 0x8869, 0x886A, 0xBFE9, 0x886B, 0x886C,
- 0xBCE1, 0xCCB3, 0xDBDE, 0xB0D3, 0xCEEB, 0xB7D8,
- 0xD7B9, 0xC6C2, 0x886D, 0x886E, 0xC0A4, 0x886F,
- 0xCCB9, 0x8870, 0xDBE7, 0xDBE1, 0xC6BA, 0xDBE3,
- 0x8871, 0xDBE8, 0x8872, 0xC5F7, 0x8873, 0x8874,
- 0x8875, 0xDBEA, 0x8876, 0x8877, 0xDBE9, 0xBFC0,
- 0x8878, 0x8879, 0x887A, 0xDBE6, 0xDBE5, 0x887B,
- 0x887C, 0x887D, 0x887E, 0x8880, 0xB4B9, 0xC0AC,
- 0xC2A2, 0xDBE2, 0xDBE4, 0x8881, 0x8882, 0x8883,
- 0x8884, 0xD0CD, 0xDBED, 0x8885, 0x8886, 0x8887,
- 0x8888, 0x8889, 0xC0DD, 0xDBF2, 0x888A, 0x888B,
- 0x888C, 0x888D, 0x888E, 0x888F, 0x8890, 0xB6E2,
- 0x8891, 0x8892, 0x8893, 0x8894, 0xDBF3, 0xDBD2,
- 0xB9B8, 0xD4AB, 0xDBEC, 0x8895, 0xBFD1, 0xDBF0,
- 0x8896, 0xDBD1, 0x8897, 0xB5E6, 0x8898, 0xDBEB,
- 0xBFE5, 0x8899, 0x889A, 0x889B, 0xDBEE, 0x889C,
- 0xDBF1, 0x889D, 0x889E, 0x889F, 0xDBF9, 0x88A0,
- 0x88A1, 0x88A2, 0x88A3, 0x88A4, 0x88A5, 0x88A6,
- 0x88A7, 0x88A8, 0xB9A1, 0xB0A3, 0x88A9, 0x88AA,
- 0x88AB, 0x88AC, 0x88AD, 0x88AE, 0x88AF, 0xC2F1,
- 0x88B0, 0x88B1, 0xB3C7, 0xDBEF, 0x88B2, 0x88B3,
- 0xDBF8, 0x88B4, 0xC6D2, 0xDBF4, 0x88B5, 0x88B6,
- 0xDBF5, 0xDBF7, 0xDBF6, 0x88B7, 0x88B8, 0xDBFE,
- 0x88B9, 0xD3F2, 0xB2BA, 0x88BA, 0x88BB, 0x88BC,
- 0xDBFD, 0x88BD, 0x88BE, 0x88BF, 0x88C0, 0x88C1,
- 0x88C2, 0x88C3, 0x88C4, 0xDCA4, 0x88C5, 0xDBFB,
- 0x88C6, 0x88C7, 0x88C8, 0x88C9, 0xDBFA, 0x88CA,
- 0x88CB, 0x88CC, 0xDBFC, 0xC5E0, 0xBBF9, 0x88CD,
- 0x88CE, 0xDCA3, 0x88CF, 0x88D0, 0xDCA5, 0x88D1,
- 0xCCC3, 0x88D2, 0x88D3, 0x88D4, 0xB6D1, 0xDDC0,
- 0x88D5, 0x88D6, 0x88D7, 0xDCA1, 0x88D8, 0xDCA2,
- 0x88D9, 0x88DA, 0x88DB, 0xC7B5, 0x88DC, 0x88DD,
- 0x88DE, 0xB6E9, 0x88DF, 0x88E0, 0x88E1, 0xDCA7,
- 0x88E2, 0x88E3, 0x88E4, 0x88E5, 0xDCA6, 0x88E6,
- 0xDCA9, 0xB1A4, 0x88E7, 0x88E8, 0xB5CC, 0x88E9,
- 0x88EA, 0x88EB, 0x88EC, 0x88ED, 0xBFB0, 0x88EE,
- 0x88EF, 0x88F0, 0x88F1, 0x88F2, 0xD1DF, 0x88F3,
- 0x88F4, 0x88F5, 0x88F6, 0xB6C2, 0x88F7, 0x88F8,
- 0x88F9, 0x88FA, 0x88FB, 0x88FC, 0x88FD, 0x88FE,
- 0x8940, 0x8941, 0x8942, 0x8943, 0x8944, 0x8945,
- 0xDCA8, 0x8946, 0x8947, 0x8948, 0x8949, 0x894A,
- 0x894B, 0x894C, 0xCBFA, 0xEBF3, 0x894D, 0x894E,
- 0x894F, 0xCBDC, 0x8950, 0x8951, 0xCBFE, 0x8952,
- 0x8953, 0x8954, 0xCCC1, 0x8955, 0x8956, 0x8957,
- 0x8958, 0x8959, 0xC8FB, 0x895A, 0x895B, 0x895C,
- 0x895D, 0x895E, 0x895F, 0xDCAA, 0x8960, 0x8961,
- 0x8962, 0x8963, 0x8964, 0xCCEE, 0xDCAB, 0x8965,
- 0x8966, 0x8967, 0x8968, 0x8969, 0x896A, 0x896B,
- 0x896C, 0x896D, 0x896E, 0x896F, 0x8970, 0x8971,
- 0x8972, 0x8973, 0x8974, 0x8975, 0xDBD3, 0x8976,
- 0xDCAF, 0xDCAC, 0x8977, 0xBEB3, 0x8978, 0xCAFB,
- 0x8979, 0x897A, 0x897B, 0xDCAD, 0x897C, 0x897D,
- 0x897E, 0x8980, 0x8981, 0x8982, 0x8983, 0x8984,
- 0xC9CA, 0xC4B9, 0x8985, 0x8986, 0x8987, 0x8988,
- 0x8989, 0xC7BD, 0xDCAE, 0x898A, 0x898B, 0x898C,
- 0xD4F6, 0xD0E6, 0x898D, 0x898E, 0x898F, 0x8990,
- 0x8991, 0x8992, 0x8993, 0x8994, 0xC4AB, 0xB6D5,
- 0x8995, 0x8996, 0x8997, 0x8998, 0x8999, 0x899A,
- 0x899B, 0x899C, 0x899D, 0x899E, 0x899F, 0x89A0,
- 0x89A1, 0x89A2, 0x89A3, 0x89A4, 0x89A5, 0x89A6,
- 0xDBD4, 0x89A7, 0x89A8, 0x89A9, 0x89AA, 0xB1DA,
- 0x89AB, 0x89AC, 0x89AD, 0xDBD5, 0x89AE, 0x89AF,
- 0x89B0, 0x89B1, 0x89B2, 0x89B3, 0x89B4, 0x89B5,
- 0x89B6, 0x89B7, 0x89B8, 0xDBD6, 0x89B9, 0x89BA,
- 0x89BB, 0xBABE, 0x89BC, 0x89BD, 0x89BE, 0x89BF,
- 0x89C0, 0x89C1, 0x89C2, 0x89C3, 0x89C4, 0x89C5,
- 0x89C6, 0x89C7, 0x89C8, 0x89C9, 0xC8C0, 0x89CA,
- 0x89CB, 0x89CC, 0x89CD, 0x89CE, 0x89CF, 0xCABF,
- 0xC8C9, 0x89D0, 0xD7B3, 0x89D1, 0xC9F9, 0x89D2,
- 0x89D3, 0xBFC7, 0x89D4, 0x89D5, 0xBAF8, 0x89D6,
- 0x89D7, 0xD2BC, 0x89D8, 0x89D9, 0x89DA, 0x89DB,
- 0x89DC, 0x89DD, 0x89DE, 0x89DF, 0xE2BA, 0x89E0,
- 0xB4A6, 0x89E1, 0x89E2, 0xB1B8, 0x89E3, 0x89E4,
- 0x89E5, 0x89E6, 0x89E7, 0xB8B4, 0x89E8, 0xCFC4,
- 0x89E9, 0x89EA, 0x89EB, 0x89EC, 0xD9E7, 0xCFA6,
- 0xCDE2, 0x89ED, 0x89EE, 0xD9ED, 0xB6E0, 0x89EF,
- 0xD2B9, 0x89F0, 0x89F1, 0xB9BB, 0x89F2, 0x89F3,
- 0x89F4, 0x89F5, 0xE2B9, 0xE2B7, 0x89F6, 0xB4F3,
- 0x89F7, 0xCCEC, 0xCCAB, 0xB7F2, 0x89F8, 0xD8B2,
- 0xD1EB, 0xBABB, 0x89F9, 0xCAA7, 0x89FA, 0x89FB,
- 0xCDB7, 0x89FC, 0x89FD, 0xD2C4, 0xBFE4, 0xBCD0,
- 0xB6E1, 0x89FE, 0xDEC5, 0x8A40, 0x8A41, 0x8A42,
- 0x8A43, 0xDEC6, 0xDBBC, 0x8A44, 0xD1D9, 0x8A45,
- 0x8A46, 0xC6E6, 0xC4CE, 0xB7EE, 0x8A47, 0xB7DC,
- 0x8A48, 0x8A49, 0xBFFC, 0xD7E0, 0x8A4A, 0xC6F5,
- 0x8A4B, 0x8A4C, 0xB1BC, 0xDEC8, 0xBDB1, 0xCCD7,
- 0xDECA, 0x8A4D, 0xDEC9, 0x8A4E, 0x8A4F, 0x8A50,
- 0x8A51, 0x8A52, 0xB5EC, 0x8A53, 0xC9DD, 0x8A54,
- 0x8A55, 0xB0C2, 0x8A56, 0x8A57, 0x8A58, 0x8A59,
- 0x8A5A, 0x8A5B, 0x8A5C, 0x8A5D, 0x8A5E, 0x8A5F,
- 0x8A60, 0x8A61, 0x8A62, 0xC5AE, 0xC5AB, 0x8A63,
- 0xC4CC, 0x8A64, 0xBCE9, 0xCBFD, 0x8A65, 0x8A66,
- 0x8A67, 0xBAC3, 0x8A68, 0x8A69, 0x8A6A, 0xE5F9,
- 0xC8E7, 0xE5FA, 0xCDFD, 0x8A6B, 0xD7B1, 0xB8BE,
- 0xC2E8, 0x8A6C, 0xC8D1, 0x8A6D, 0x8A6E, 0xE5FB,
- 0x8A6F, 0x8A70, 0x8A71, 0x8A72, 0xB6CA, 0xBCCB,
- 0x8A73, 0x8A74, 0xD1FD, 0xE6A1, 0x8A75, 0xC3EE,
- 0x8A76, 0x8A77, 0x8A78, 0x8A79, 0xE6A4, 0x8A7A,
- 0x8A7B, 0x8A7C, 0x8A7D, 0xE5FE, 0xE6A5, 0xCDD7,
- 0x8A7E, 0x8A80, 0xB7C1, 0xE5FC, 0xE5FD, 0xE6A3,
- 0x8A81, 0x8A82, 0xC4DD, 0xE6A8, 0x8A83, 0x8A84,
- 0xE6A7, 0x8A85, 0x8A86, 0x8A87, 0x8A88, 0x8A89,
- 0x8A8A, 0xC3C3, 0x8A8B, 0xC6DE, 0x8A8C, 0x8A8D,
- 0xE6AA, 0x8A8E, 0x8A8F, 0x8A90, 0x8A91, 0x8A92,
- 0x8A93, 0x8A94, 0xC4B7, 0x8A95, 0x8A96, 0x8A97,
- 0xE6A2, 0xCABC, 0x8A98, 0x8A99, 0x8A9A, 0x8A9B,
- 0xBDE3, 0xB9C3, 0xE6A6, 0xD0D5, 0xCEAF, 0x8A9C,
- 0x8A9D, 0xE6A9, 0xE6B0, 0x8A9E, 0xD2A6, 0x8A9F,
- 0xBDAA, 0xE6AD, 0x8AA0, 0x8AA1, 0x8AA2, 0x8AA3,
- 0x8AA4, 0xE6AF, 0x8AA5, 0xC0D1, 0x8AA6, 0x8AA7,
- 0xD2CC, 0x8AA8, 0x8AA9, 0x8AAA, 0xBCA7, 0x8AAB,
- 0x8AAC, 0x8AAD, 0x8AAE, 0x8AAF, 0x8AB0, 0x8AB1,
- 0x8AB2, 0x8AB3, 0x8AB4, 0x8AB5, 0x8AB6, 0xE6B1,
- 0x8AB7, 0xD2F6, 0x8AB8, 0x8AB9, 0x8ABA, 0xD7CB,
- 0x8ABB, 0xCDFE, 0x8ABC, 0xCDDE, 0xC2A6, 0xE6AB,
- 0xE6AC, 0xBDBF, 0xE6AE, 0xE6B3, 0x8ABD, 0x8ABE,
- 0xE6B2, 0x8ABF, 0x8AC0, 0x8AC1, 0x8AC2, 0xE6B6,
- 0x8AC3, 0xE6B8, 0x8AC4, 0x8AC5, 0x8AC6, 0x8AC7,
- 0xC4EF, 0x8AC8, 0x8AC9, 0x8ACA, 0xC4C8, 0x8ACB,
- 0x8ACC, 0xBEEA, 0xC9EF, 0x8ACD, 0x8ACE, 0xE6B7,
- 0x8ACF, 0xB6F0, 0x8AD0, 0x8AD1, 0x8AD2, 0xC3E4,
- 0x8AD3, 0x8AD4, 0x8AD5, 0x8AD6, 0x8AD7, 0x8AD8,
- 0x8AD9, 0xD3E9, 0xE6B4, 0x8ADA, 0xE6B5, 0x8ADB,
- 0xC8A2, 0x8ADC, 0x8ADD, 0x8ADE, 0x8ADF, 0x8AE0,
- 0xE6BD, 0x8AE1, 0x8AE2, 0x8AE3, 0xE6B9, 0x8AE4,
- 0x8AE5, 0x8AE6, 0x8AE7, 0x8AE8, 0xC6C5, 0x8AE9,
- 0x8AEA, 0xCDF1, 0xE6BB, 0x8AEB, 0x8AEC, 0x8AED,
- 0x8AEE, 0x8AEF, 0x8AF0, 0x8AF1, 0x8AF2, 0x8AF3,
- 0x8AF4, 0xE6BC, 0x8AF5, 0x8AF6, 0x8AF7, 0x8AF8,
- 0xBBE9, 0x8AF9, 0x8AFA, 0x8AFB, 0x8AFC, 0x8AFD,
- 0x8AFE, 0x8B40, 0xE6BE, 0x8B41, 0x8B42, 0x8B43,
- 0x8B44, 0xE6BA, 0x8B45, 0x8B46, 0xC0B7, 0x8B47,
- 0x8B48, 0x8B49, 0x8B4A, 0x8B4B, 0x8B4C, 0x8B4D,
- 0x8B4E, 0x8B4F, 0xD3A4, 0xE6BF, 0xC9F4, 0xE6C3,
- 0x8B50, 0x8B51, 0xE6C4, 0x8B52, 0x8B53, 0x8B54,
- 0x8B55, 0xD0F6, 0x8B56, 0x8B57, 0x8B58, 0x8B59,
- 0x8B5A, 0x8B5B, 0x8B5C, 0x8B5D, 0x8B5E, 0x8B5F,
- 0x8B60, 0x8B61, 0x8B62, 0x8B63, 0x8B64, 0x8B65,
- 0x8B66, 0x8B67, 0xC3BD, 0x8B68, 0x8B69, 0x8B6A,
- 0x8B6B, 0x8B6C, 0x8B6D, 0x8B6E, 0xC3C4, 0xE6C2,
- 0x8B6F, 0x8B70, 0x8B71, 0x8B72, 0x8B73, 0x8B74,
- 0x8B75, 0x8B76, 0x8B77, 0x8B78, 0x8B79, 0x8B7A,
- 0x8B7B, 0x8B7C, 0xE6C1, 0x8B7D, 0x8B7E, 0x8B80,
- 0x8B81, 0x8B82, 0x8B83, 0x8B84, 0xE6C7, 0xCFB1,
- 0x8B85, 0xEBF4, 0x8B86, 0x8B87, 0xE6CA, 0x8B88,
- 0x8B89, 0x8B8A, 0x8B8B, 0x8B8C, 0xE6C5, 0x8B8D,
- 0x8B8E, 0xBCDE, 0xC9A9, 0x8B8F, 0x8B90, 0x8B91,
- 0x8B92, 0x8B93, 0x8B94, 0xBCB5, 0x8B95, 0x8B96,
- 0xCFD3, 0x8B97, 0x8B98, 0x8B99, 0x8B9A, 0x8B9B,
- 0xE6C8, 0x8B9C, 0xE6C9, 0x8B9D, 0xE6CE, 0x8B9E,
- 0xE6D0, 0x8B9F, 0x8BA0, 0x8BA1, 0xE6D1, 0x8BA2,
- 0x8BA3, 0x8BA4, 0xE6CB, 0xB5D5, 0x8BA5, 0xE6CC,
- 0x8BA6, 0x8BA7, 0xE6CF, 0x8BA8, 0x8BA9, 0xC4DB,
- 0x8BAA, 0xE6C6, 0x8BAB, 0x8BAC, 0x8BAD, 0x8BAE,
- 0x8BAF, 0xE6CD, 0x8BB0, 0x8BB1, 0x8BB2, 0x8BB3,
- 0x8BB4, 0x8BB5, 0x8BB6, 0x8BB7, 0x8BB8, 0x8BB9,
- 0x8BBA, 0x8BBB, 0x8BBC, 0x8BBD, 0x8BBE, 0x8BBF,
- 0x8BC0, 0x8BC1, 0x8BC2, 0x8BC3, 0x8BC4, 0x8BC5,
- 0x8BC6, 0xE6D2, 0x8BC7, 0x8BC8, 0x8BC9, 0x8BCA,
- 0x8BCB, 0x8BCC, 0x8BCD, 0x8BCE, 0x8BCF, 0x8BD0,
- 0x8BD1, 0x8BD2, 0xE6D4, 0xE6D3, 0x8BD3, 0x8BD4,
- 0x8BD5, 0x8BD6, 0x8BD7, 0x8BD8, 0x8BD9, 0x8BDA,
- 0x8BDB, 0x8BDC, 0x8BDD, 0x8BDE, 0x8BDF, 0x8BE0,
- 0x8BE1, 0x8BE2, 0x8BE3, 0x8BE4, 0x8BE5, 0x8BE6,
- 0x8BE7, 0x8BE8, 0x8BE9, 0x8BEA, 0x8BEB, 0x8BEC,
- 0xE6D5, 0x8BED, 0xD9F8, 0x8BEE, 0x8BEF, 0xE6D6,
- 0x8BF0, 0x8BF1, 0x8BF2, 0x8BF3, 0x8BF4, 0x8BF5,
- 0x8BF6, 0x8BF7, 0xE6D7, 0x8BF8, 0x8BF9, 0x8BFA,
- 0x8BFB, 0x8BFC, 0x8BFD, 0x8BFE, 0x8C40, 0x8C41,
- 0x8C42, 0x8C43, 0x8C44, 0x8C45, 0x8C46, 0x8C47,
- 0xD7D3, 0xE6DD, 0x8C48, 0xE6DE, 0xBFD7, 0xD4D0,
- 0x8C49, 0xD7D6, 0xB4E6, 0xCBEF, 0xE6DA, 0xD8C3,
- 0xD7CE, 0xD0A2, 0x8C4A, 0xC3CF, 0x8C4B, 0x8C4C,
- 0xE6DF, 0xBCBE, 0xB9C2, 0xE6DB, 0xD1A7, 0x8C4D,
- 0x8C4E, 0xBAA2, 0xC2CF, 0x8C4F, 0xD8AB, 0x8C50,
- 0x8C51, 0x8C52, 0xCAEB, 0xE5EE, 0x8C53, 0xE6DC,
- 0x8C54, 0xB7F5, 0x8C55, 0x8C56, 0x8C57, 0x8C58,
- 0xC8E6, 0x8C59, 0x8C5A, 0xC4F5, 0x8C5B, 0x8C5C,
- 0xE5B2, 0xC4FE, 0x8C5D, 0xCBFC, 0xE5B3, 0xD5AC,
- 0x8C5E, 0xD3EE, 0xCAD8, 0xB0B2, 0x8C5F, 0xCBCE,
- 0xCDEA, 0x8C60, 0x8C61, 0xBAEA, 0x8C62, 0x8C63,
- 0x8C64, 0xE5B5, 0x8C65, 0xE5B4, 0x8C66, 0xD7DA,
- 0xB9D9, 0xD6E6, 0xB6A8, 0xCDF0, 0xD2CB, 0xB1A6,
- 0xCAB5, 0x8C67, 0xB3E8, 0xC9F3, 0xBFCD, 0xD0FB,
- 0xCAD2, 0xE5B6, 0xBBC2, 0x8C68, 0x8C69, 0x8C6A,
- 0xCFDC, 0xB9AC, 0x8C6B, 0x8C6C, 0x8C6D, 0x8C6E,
- 0xD4D7, 0x8C6F, 0x8C70, 0xBAA6, 0xD1E7, 0xCFFC,
- 0xBCD2, 0x8C71, 0xE5B7, 0xC8DD, 0x8C72, 0x8C73,
- 0x8C74, 0xBFED, 0xB1F6, 0xCBDE, 0x8C75, 0x8C76,
- 0xBCC5, 0x8C77, 0xBCC4, 0xD2FA, 0xC3DC, 0xBFDC,
- 0x8C78, 0x8C79, 0x8C7A, 0x8C7B, 0xB8BB, 0x8C7C,
- 0x8C7D, 0x8C7E, 0xC3C2, 0x8C80, 0xBAAE, 0xD4A2,
- 0x8C81, 0x8C82, 0x8C83, 0x8C84, 0x8C85, 0x8C86,
- 0x8C87, 0x8C88, 0x8C89, 0xC7DE, 0xC4AF, 0xB2EC,
- 0x8C8A, 0xB9D1, 0x8C8B, 0x8C8C, 0xE5BB, 0xC1C8,
- 0x8C8D, 0x8C8E, 0xD5AF, 0x8C8F, 0x8C90, 0x8C91,
- 0x8C92, 0x8C93, 0xE5BC, 0x8C94, 0xE5BE, 0x8C95,
- 0x8C96, 0x8C97, 0x8C98, 0x8C99, 0x8C9A, 0x8C9B,
- 0xB4E7, 0xB6D4, 0xCBC2, 0xD1B0, 0xB5BC, 0x8C9C,
- 0x8C9D, 0xCAD9, 0x8C9E, 0xB7E2, 0x8C9F, 0x8CA0,
- 0xC9E4, 0x8CA1, 0xBDAB, 0x8CA2, 0x8CA3, 0xCEBE,
- 0xD7F0, 0x8CA4, 0x8CA5, 0x8CA6, 0x8CA7, 0xD0A1,
- 0x8CA8, 0xC9D9, 0x8CA9, 0x8CAA, 0xB6FB, 0xE6D8,
- 0xBCE2, 0x8CAB, 0xB3BE, 0x8CAC, 0xC9D0, 0x8CAD,
- 0xE6D9, 0xB3A2, 0x8CAE, 0x8CAF, 0x8CB0, 0x8CB1,
- 0xDECC, 0x8CB2, 0xD3C8, 0xDECD, 0x8CB3, 0xD2A2,
- 0x8CB4, 0x8CB5, 0x8CB6, 0x8CB7, 0xDECE, 0x8CB8,
- 0x8CB9, 0x8CBA, 0x8CBB, 0xBECD, 0x8CBC, 0x8CBD,
- 0xDECF, 0x8CBE, 0x8CBF, 0x8CC0, 0xCAAC, 0xD2FC,
- 0xB3DF, 0xE5EA, 0xC4E1, 0xBEA1, 0xCEB2, 0xC4F2,
- 0xBED6, 0xC6A8, 0xB2E3, 0x8CC1, 0x8CC2, 0xBED3,
- 0x8CC3, 0x8CC4, 0xC7FC, 0xCCEB, 0xBDEC, 0xCEDD,
- 0x8CC5, 0x8CC6, 0xCABA, 0xC6C1, 0xE5EC, 0xD0BC,
- 0x8CC7, 0x8CC8, 0x8CC9, 0xD5B9, 0x8CCA, 0x8CCB,
- 0x8CCC, 0xE5ED, 0x8CCD, 0x8CCE, 0x8CCF, 0x8CD0,
- 0xCAF4, 0x8CD1, 0xCDC0, 0xC2C5, 0x8CD2, 0xE5EF,
- 0x8CD3, 0xC2C4, 0xE5F0, 0x8CD4, 0x8CD5, 0x8CD6,
- 0x8CD7, 0x8CD8, 0x8CD9, 0x8CDA, 0xE5F8, 0xCDCD,
- 0x8CDB, 0xC9BD, 0x8CDC, 0x8CDD, 0x8CDE, 0x8CDF,
- 0x8CE0, 0x8CE1, 0x8CE2, 0xD2D9, 0xE1A8, 0x8CE3,
- 0x8CE4, 0x8CE5, 0x8CE6, 0xD3EC, 0x8CE7, 0xCBEA,
- 0xC6F1, 0x8CE8, 0x8CE9, 0x8CEA, 0x8CEB, 0x8CEC,
- 0xE1AC, 0x8CED, 0x8CEE, 0x8CEF, 0xE1A7, 0xE1A9,
- 0x8CF0, 0x8CF1, 0xE1AA, 0xE1AF, 0x8CF2, 0x8CF3,
- 0xB2ED, 0x8CF4, 0xE1AB, 0xB8DA, 0xE1AD, 0xE1AE,
- 0xE1B0, 0xB5BA, 0xE1B1, 0x8CF5, 0x8CF6, 0x8CF7,
- 0x8CF8, 0x8CF9, 0xE1B3, 0xE1B8, 0x8CFA, 0x8CFB,
- 0x8CFC, 0x8CFD, 0x8CFE, 0xD1D2, 0x8D40, 0xE1B6,
- 0xE1B5, 0xC1EB, 0x8D41, 0x8D42, 0x8D43, 0xE1B7,
- 0x8D44, 0xD4C0, 0x8D45, 0xE1B2, 0x8D46, 0xE1BA,
- 0xB0B6, 0x8D47, 0x8D48, 0x8D49, 0x8D4A, 0xE1B4,
- 0x8D4B, 0xBFF9, 0x8D4C, 0xE1B9, 0x8D4D, 0x8D4E,
- 0xE1BB, 0x8D4F, 0x8D50, 0x8D51, 0x8D52, 0x8D53,
- 0x8D54, 0xE1BE, 0x8D55, 0x8D56, 0x8D57, 0x8D58,
- 0x8D59, 0x8D5A, 0xE1BC, 0x8D5B, 0x8D5C, 0x8D5D,
- 0x8D5E, 0x8D5F, 0x8D60, 0xD6C5, 0x8D61, 0x8D62,
- 0x8D63, 0x8D64, 0x8D65, 0x8D66, 0x8D67, 0xCFBF,
- 0x8D68, 0x8D69, 0xE1BD, 0xE1BF, 0xC2CD, 0x8D6A,
- 0xB6EB, 0x8D6B, 0xD3F8, 0x8D6C, 0x8D6D, 0xC7CD,
- 0x8D6E, 0x8D6F, 0xB7E5, 0x8D70, 0x8D71, 0x8D72,
- 0x8D73, 0x8D74, 0x8D75, 0x8D76, 0x8D77, 0x8D78,
- 0x8D79, 0xBEFE, 0x8D7A, 0x8D7B, 0x8D7C, 0x8D7D,
- 0x8D7E, 0x8D80, 0xE1C0, 0xE1C1, 0x8D81, 0x8D82,
- 0xE1C7, 0xB3E7, 0x8D83, 0x8D84, 0x8D85, 0x8D86,
- 0x8D87, 0x8D88, 0xC6E9, 0x8D89, 0x8D8A, 0x8D8B,
- 0x8D8C, 0x8D8D, 0xB4DE, 0x8D8E, 0xD1C2, 0x8D8F,
- 0x8D90, 0x8D91, 0x8D92, 0xE1C8, 0x8D93, 0x8D94,
- 0xE1C6, 0x8D95, 0x8D96, 0x8D97, 0x8D98, 0x8D99,
- 0xE1C5, 0x8D9A, 0xE1C3, 0xE1C2, 0x8D9B, 0xB1C0,
- 0x8D9C, 0x8D9D, 0x8D9E, 0xD5B8, 0xE1C4, 0x8D9F,
- 0x8DA0, 0x8DA1, 0x8DA2, 0x8DA3, 0xE1CB, 0x8DA4,
- 0x8DA5, 0x8DA6, 0x8DA7, 0x8DA8, 0x8DA9, 0x8DAA,
- 0x8DAB, 0xE1CC, 0xE1CA, 0x8DAC, 0x8DAD, 0x8DAE,
- 0x8DAF, 0x8DB0, 0x8DB1, 0x8DB2, 0x8DB3, 0xEFFA,
- 0x8DB4, 0x8DB5, 0xE1D3, 0xE1D2, 0xC7B6, 0x8DB6,
- 0x8DB7, 0x8DB8, 0x8DB9, 0x8DBA, 0x8DBB, 0x8DBC,
- 0x8DBD, 0x8DBE, 0x8DBF, 0x8DC0, 0xE1C9, 0x8DC1,
- 0x8DC2, 0xE1CE, 0x8DC3, 0xE1D0, 0x8DC4, 0x8DC5,
- 0x8DC6, 0x8DC7, 0x8DC8, 0x8DC9, 0x8DCA, 0x8DCB,
- 0x8DCC, 0x8DCD, 0x8DCE, 0xE1D4, 0x8DCF, 0xE1D1,
- 0xE1CD, 0x8DD0, 0x8DD1, 0xE1CF, 0x8DD2, 0x8DD3,
- 0x8DD4, 0x8DD5, 0xE1D5, 0x8DD6, 0x8DD7, 0x8DD8,
- 0x8DD9, 0x8DDA, 0x8DDB, 0x8DDC, 0x8DDD, 0x8DDE,
- 0x8DDF, 0x8DE0, 0x8DE1, 0x8DE2, 0xE1D6, 0x8DE3,
- 0x8DE4, 0x8DE5, 0x8DE6, 0x8DE7, 0x8DE8, 0x8DE9,
- 0x8DEA, 0x8DEB, 0x8DEC, 0x8DED, 0x8DEE, 0x8DEF,
- 0x8DF0, 0x8DF1, 0x8DF2, 0x8DF3, 0x8DF4, 0x8DF5,
- 0x8DF6, 0x8DF7, 0x8DF8, 0xE1D7, 0x8DF9, 0x8DFA,
- 0x8DFB, 0xE1D8, 0x8DFC, 0x8DFD, 0x8DFE, 0x8E40,
- 0x8E41, 0x8E42, 0x8E43, 0x8E44, 0x8E45, 0x8E46,
- 0x8E47, 0x8E48, 0x8E49, 0x8E4A, 0x8E4B, 0x8E4C,
- 0x8E4D, 0x8E4E, 0x8E4F, 0x8E50, 0x8E51, 0x8E52,
- 0x8E53, 0x8E54, 0x8E55, 0xE1DA, 0x8E56, 0x8E57,
- 0x8E58, 0x8E59, 0x8E5A, 0x8E5B, 0x8E5C, 0x8E5D,
- 0x8E5E, 0x8E5F, 0x8E60, 0x8E61, 0x8E62, 0xE1DB,
- 0x8E63, 0x8E64, 0x8E65, 0x8E66, 0x8E67, 0x8E68,
- 0x8E69, 0xCEA1, 0x8E6A, 0x8E6B, 0x8E6C, 0x8E6D,
- 0x8E6E, 0x8E6F, 0x8E70, 0x8E71, 0x8E72, 0x8E73,
- 0x8E74, 0x8E75, 0x8E76, 0xE7DD, 0x8E77, 0xB4A8,
- 0xD6DD, 0x8E78, 0x8E79, 0xD1B2, 0xB3B2, 0x8E7A,
- 0x8E7B, 0xB9A4, 0xD7F3, 0xC7C9, 0xBEDE, 0xB9AE,
- 0x8E7C, 0xCED7, 0x8E7D, 0x8E7E, 0xB2EE, 0xDBCF,
- 0x8E80, 0xBCBA, 0xD2D1, 0xCBC8, 0xB0CD, 0x8E81,
- 0x8E82, 0xCFEF, 0x8E83, 0x8E84, 0x8E85, 0x8E86,
- 0x8E87, 0xD9E3, 0xBDED, 0x8E88, 0x8E89, 0xB1D2,
- 0xCAD0, 0xB2BC, 0x8E8A, 0xCBA7, 0xB7AB, 0x8E8B,
- 0xCAA6, 0x8E8C, 0x8E8D, 0x8E8E, 0xCFA3, 0x8E8F,
- 0x8E90, 0xE0F8, 0xD5CA, 0xE0FB, 0x8E91, 0x8E92,
- 0xE0FA, 0xC5C1, 0xCCFB, 0x8E93, 0xC1B1, 0xE0F9,
- 0xD6E3, 0xB2AF, 0xD6C4, 0xB5DB, 0x8E94, 0x8E95,
- 0x8E96, 0x8E97, 0x8E98, 0x8E99, 0x8E9A, 0x8E9B,
- 0xB4F8, 0xD6A1, 0x8E9C, 0x8E9D, 0x8E9E, 0x8E9F,
- 0x8EA0, 0xCFAF, 0xB0EF, 0x8EA1, 0x8EA2, 0xE0FC,
- 0x8EA3, 0x8EA4, 0x8EA5, 0x8EA6, 0x8EA7, 0xE1A1,
- 0xB3A3, 0x8EA8, 0x8EA9, 0xE0FD, 0xE0FE, 0xC3B1,
- 0x8EAA, 0x8EAB, 0x8EAC, 0x8EAD, 0xC3DD, 0x8EAE,
- 0xE1A2, 0xB7F9, 0x8EAF, 0x8EB0, 0x8EB1, 0x8EB2,
- 0x8EB3, 0x8EB4, 0xBBCF, 0x8EB5, 0x8EB6, 0x8EB7,
- 0x8EB8, 0x8EB9, 0x8EBA, 0x8EBB, 0xE1A3, 0xC4BB,
- 0x8EBC, 0x8EBD, 0x8EBE, 0x8EBF, 0x8EC0, 0xE1A4,
- 0x8EC1, 0x8EC2, 0xE1A5, 0x8EC3, 0x8EC4, 0xE1A6,
- 0xB4B1, 0x8EC5, 0x8EC6, 0x8EC7, 0x8EC8, 0x8EC9,
- 0x8ECA, 0x8ECB, 0x8ECC, 0x8ECD, 0x8ECE, 0x8ECF,
- 0x8ED0, 0x8ED1, 0x8ED2, 0x8ED3, 0xB8C9, 0xC6BD,
- 0xC4EA, 0x8ED4, 0xB2A2, 0x8ED5, 0xD0D2, 0x8ED6,
- 0xE7DB, 0xBBC3, 0xD3D7, 0xD3C4, 0x8ED7, 0xB9E3,
- 0xE2CF, 0x8ED8, 0x8ED9, 0x8EDA, 0xD7AF, 0x8EDB,
- 0xC7EC, 0xB1D3, 0x8EDC, 0x8EDD, 0xB4B2, 0xE2D1,
- 0x8EDE, 0x8EDF, 0x8EE0, 0xD0F2, 0xC2AE, 0xE2D0,
- 0x8EE1, 0xBFE2, 0xD3A6, 0xB5D7, 0xE2D2, 0xB5EA,
- 0x8EE2, 0xC3ED, 0xB8FD, 0x8EE3, 0xB8AE, 0x8EE4,
- 0xC5D3, 0xB7CF, 0xE2D4, 0x8EE5, 0x8EE6, 0x8EE7,
- 0x8EE8, 0xE2D3, 0xB6C8, 0xD7F9, 0x8EE9, 0x8EEA,
- 0x8EEB, 0x8EEC, 0x8EED, 0xCDA5, 0x8EEE, 0x8EEF,
- 0x8EF0, 0x8EF1, 0x8EF2, 0xE2D8, 0x8EF3, 0xE2D6,
- 0xCAFC, 0xBFB5, 0xD3B9, 0xE2D5, 0x8EF4, 0x8EF5,
- 0x8EF6, 0x8EF7, 0xE2D7, 0x8EF8, 0x8EF9, 0x8EFA,
- 0x8EFB, 0x8EFC, 0x8EFD, 0x8EFE, 0x8F40, 0x8F41,
- 0x8F42, 0xC1AE, 0xC0C8, 0x8F43, 0x8F44, 0x8F45,
- 0x8F46, 0x8F47, 0x8F48, 0xE2DB, 0xE2DA, 0xC0AA,
- 0x8F49, 0x8F4A, 0xC1CE, 0x8F4B, 0x8F4C, 0x8F4D,
- 0x8F4E, 0xE2DC, 0x8F4F, 0x8F50, 0x8F51, 0x8F52,
- 0x8F53, 0x8F54, 0x8F55, 0x8F56, 0x8F57, 0x8F58,
- 0x8F59, 0x8F5A, 0xE2DD, 0x8F5B, 0xE2DE, 0x8F5C,
- 0x8F5D, 0x8F5E, 0x8F5F, 0x8F60, 0x8F61, 0x8F62,
- 0x8F63, 0x8F64, 0xDBC8, 0x8F65, 0xD1D3, 0xCDA2,
- 0x8F66, 0x8F67, 0xBDA8, 0x8F68, 0x8F69, 0x8F6A,
- 0xDEC3, 0xD8A5, 0xBFAA, 0xDBCD, 0xD2EC, 0xC6FA,
- 0xC5AA, 0x8F6B, 0x8F6C, 0x8F6D, 0xDEC4, 0x8F6E,
- 0xB1D7, 0xDFAE, 0x8F6F, 0x8F70, 0x8F71, 0xCABD,
- 0x8F72, 0xDFB1, 0x8F73, 0xB9AD, 0x8F74, 0xD2FD,
- 0x8F75, 0xB8A5, 0xBAEB, 0x8F76, 0x8F77, 0xB3DA,
- 0x8F78, 0x8F79, 0x8F7A, 0xB5DC, 0xD5C5, 0x8F7B,
- 0x8F7C, 0x8F7D, 0x8F7E, 0xC3D6, 0xCFD2, 0xBBA1,
- 0x8F80, 0xE5F3, 0xE5F2, 0x8F81, 0x8F82, 0xE5F4,
- 0x8F83, 0xCDE4, 0x8F84, 0xC8F5, 0x8F85, 0x8F86,
- 0x8F87, 0x8F88, 0x8F89, 0x8F8A, 0x8F8B, 0xB5AF,
- 0xC7BF, 0x8F8C, 0xE5F6, 0x8F8D, 0x8F8E, 0x8F8F,
- 0xECB0, 0x8F90, 0x8F91, 0x8F92, 0x8F93, 0x8F94,
- 0x8F95, 0x8F96, 0x8F97, 0x8F98, 0x8F99, 0x8F9A,
- 0x8F9B, 0x8F9C, 0x8F9D, 0x8F9E, 0xE5E6, 0x8F9F,
- 0xB9E9, 0xB5B1, 0x8FA0, 0xC2BC, 0xE5E8, 0xE5E7,
- 0xE5E9, 0x8FA1, 0x8FA2, 0x8FA3, 0x8FA4, 0xD2CD,
- 0x8FA5, 0x8FA6, 0x8FA7, 0xE1EA, 0xD0CE, 0x8FA8,
- 0xCDAE, 0x8FA9, 0xD1E5, 0x8FAA, 0x8FAB, 0xB2CA,
- 0xB1EB, 0x8FAC, 0xB1F2, 0xC5ED, 0x8FAD, 0x8FAE,
- 0xD5C3, 0xD3B0, 0x8FAF, 0xE1DC, 0x8FB0, 0x8FB1,
- 0x8FB2, 0xE1DD, 0x8FB3, 0xD2DB, 0x8FB4, 0xB3B9,
- 0xB1CB, 0x8FB5, 0x8FB6, 0x8FB7, 0xCDF9, 0xD5F7,
- 0xE1DE, 0x8FB8, 0xBEB6, 0xB4FD, 0x8FB9, 0xE1DF,
- 0xBADC, 0xE1E0, 0xBBB2, 0xC2C9, 0xE1E1, 0x8FBA,
- 0x8FBB, 0x8FBC, 0xD0EC, 0x8FBD, 0xCDBD, 0x8FBE,
- 0x8FBF, 0xE1E2, 0x8FC0, 0xB5C3, 0xC5C7, 0xE1E3,
- 0x8FC1, 0x8FC2, 0xE1E4, 0x8FC3, 0x8FC4, 0x8FC5,
- 0x8FC6, 0xD3F9, 0x8FC7, 0x8FC8, 0x8FC9, 0x8FCA,
- 0x8FCB, 0x8FCC, 0xE1E5, 0x8FCD, 0xD1AD, 0x8FCE,
- 0x8FCF, 0xE1E6, 0xCEA2, 0x8FD0, 0x8FD1, 0x8FD2,
- 0x8FD3, 0x8FD4, 0x8FD5, 0xE1E7, 0x8FD6, 0xB5C2,
- 0x8FD7, 0x8FD8, 0x8FD9, 0x8FDA, 0xE1E8, 0xBBD5,
- 0x8FDB, 0x8FDC, 0x8FDD, 0x8FDE, 0x8FDF, 0xD0C4,
- 0xE2E0, 0xB1D8, 0xD2E4, 0x8FE0, 0x8FE1, 0xE2E1,
- 0x8FE2, 0x8FE3, 0xBCC9, 0xC8CC, 0x8FE4, 0xE2E3,
- 0xECFE, 0xECFD, 0xDFAF, 0x8FE5, 0x8FE6, 0x8FE7,
- 0xE2E2, 0xD6BE, 0xCDFC, 0xC3A6, 0x8FE8, 0x8FE9,
- 0x8FEA, 0xE3C3, 0x8FEB, 0x8FEC, 0xD6D2, 0xE2E7,
- 0x8FED, 0x8FEE, 0xE2E8, 0x8FEF, 0x8FF0, 0xD3C7,
- 0x8FF1, 0x8FF2, 0xE2EC, 0xBFEC, 0x8FF3, 0xE2ED,
- 0xE2E5, 0x8FF4, 0x8FF5, 0xB3C0, 0x8FF6, 0x8FF7,
- 0x8FF8, 0xC4EE, 0x8FF9, 0x8FFA, 0xE2EE, 0x8FFB,
- 0x8FFC, 0xD0C3, 0x8FFD, 0xBAF6, 0xE2E9, 0xB7DE,
- 0xBBB3, 0xCCAC, 0xCBCB, 0xE2E4, 0xE2E6, 0xE2EA,
- 0xE2EB, 0x8FFE, 0x9040, 0x9041, 0xE2F7, 0x9042,
- 0x9043, 0xE2F4, 0xD4F5, 0xE2F3, 0x9044, 0x9045,
- 0xC5AD, 0x9046, 0xD5FA, 0xC5C2, 0xB2C0, 0x9047,
- 0x9048, 0xE2EF, 0x9049, 0xE2F2, 0xC1AF, 0xCBBC,
- 0x904A, 0x904B, 0xB5A1, 0xE2F9, 0x904C, 0x904D,
- 0x904E, 0xBCB1, 0xE2F1, 0xD0D4, 0xD4B9, 0xE2F5,
- 0xB9D6, 0xE2F6, 0x904F, 0x9050, 0x9051, 0xC7D3,
- 0x9052, 0x9053, 0x9054, 0x9055, 0x9056, 0xE2F0,
- 0x9057, 0x9058, 0x9059, 0x905A, 0x905B, 0xD7DC,
- 0xEDA1, 0x905C, 0x905D, 0xE2F8, 0x905E, 0xEDA5,
- 0xE2FE, 0xCAD1, 0x905F, 0x9060, 0x9061, 0x9062,
- 0x9063, 0x9064, 0x9065, 0xC1B5, 0x9066, 0xBBD0,
- 0x9067, 0x9068, 0xBFD6, 0x9069, 0xBAE3, 0x906A,
- 0x906B, 0xCBA1, 0x906C, 0x906D, 0x906E, 0xEDA6,
- 0xEDA3, 0x906F, 0x9070, 0xEDA2, 0x9071, 0x9072,
- 0x9073, 0x9074, 0xBBD6, 0xEDA7, 0xD0F4, 0x9075,
- 0x9076, 0xEDA4, 0xBADE, 0xB6F7, 0xE3A1, 0xB6B2,
- 0xCCF1, 0xB9A7, 0x9077, 0xCFA2, 0xC7A1, 0x9078,
- 0x9079, 0xBFD2, 0x907A, 0x907B, 0xB6F1, 0x907C,
- 0xE2FA, 0xE2FB, 0xE2FD, 0xE2FC, 0xC4D5, 0xE3A2,
- 0x907D, 0xD3C1, 0x907E, 0x9080, 0x9081, 0xE3A7,
- 0xC7C4, 0x9082, 0x9083, 0x9084, 0x9085, 0xCFA4,
- 0x9086, 0x9087, 0xE3A9, 0xBAB7, 0x9088, 0x9089,
- 0x908A, 0x908B, 0xE3A8, 0x908C, 0xBBDA, 0x908D,
- 0xE3A3, 0x908E, 0x908F, 0x9090, 0xE3A4, 0xE3AA,
- 0x9091, 0xE3A6, 0x9092, 0xCEF2, 0xD3C6, 0x9093,
- 0x9094, 0xBBBC, 0x9095, 0x9096, 0xD4C3, 0x9097,
- 0xC4FA, 0x9098, 0x9099, 0xEDA8, 0xD0FC, 0xE3A5,
- 0x909A, 0xC3F5, 0x909B, 0xE3AD, 0xB1AF, 0x909C,
- 0xE3B2, 0x909D, 0x909E, 0x909F, 0xBCC2, 0x90A0,
- 0x90A1, 0xE3AC, 0xB5BF, 0x90A2, 0x90A3, 0x90A4,
- 0x90A5, 0x90A6, 0x90A7, 0x90A8, 0x90A9, 0xC7E9,
- 0xE3B0, 0x90AA, 0x90AB, 0x90AC, 0xBEAA, 0xCDEF,
- 0x90AD, 0x90AE, 0x90AF, 0x90B0, 0x90B1, 0xBBF3,
- 0x90B2, 0x90B3, 0x90B4, 0xCCE8, 0x90B5, 0x90B6,
- 0xE3AF, 0x90B7, 0xE3B1, 0x90B8, 0xCFA7, 0xE3AE,
- 0x90B9, 0xCEA9, 0xBBDD, 0x90BA, 0x90BB, 0x90BC,
- 0x90BD, 0x90BE, 0xB5EB, 0xBEE5, 0xB2D2, 0xB3CD,
- 0x90BF, 0xB1B9, 0xE3AB, 0xB2D1, 0xB5AC, 0xB9DF,
- 0xB6E8, 0x90C0, 0x90C1, 0xCFEB, 0xE3B7, 0x90C2,
- 0xBBCC, 0x90C3, 0x90C4, 0xC8C7, 0xD0CA, 0x90C5,
- 0x90C6, 0x90C7, 0x90C8, 0x90C9, 0xE3B8, 0xB3EE,
- 0x90CA, 0x90CB, 0x90CC, 0x90CD, 0xEDA9, 0x90CE,
- 0xD3FA, 0xD3E4, 0x90CF, 0x90D0, 0x90D1, 0xEDAA,
- 0xE3B9, 0xD2E2, 0x90D2, 0x90D3, 0x90D4, 0x90D5,
- 0x90D6, 0xE3B5, 0x90D7, 0x90D8, 0x90D9, 0x90DA,
- 0xD3DE, 0x90DB, 0x90DC, 0x90DD, 0x90DE, 0xB8D0,
- 0xE3B3, 0x90DF, 0x90E0, 0xE3B6, 0xB7DF, 0x90E1,
- 0xE3B4, 0xC0A2, 0x90E2, 0x90E3, 0x90E4, 0xE3BA,
- 0x90E5, 0x90E6, 0x90E7, 0x90E8, 0x90E9, 0x90EA,
- 0x90EB, 0x90EC, 0x90ED, 0x90EE, 0x90EF, 0x90F0,
- 0x90F1, 0x90F2, 0x90F3, 0x90F4, 0x90F5, 0x90F6,
- 0x90F7, 0xD4B8, 0x90F8, 0x90F9, 0x90FA, 0x90FB,
- 0x90FC, 0x90FD, 0x90FE, 0x9140, 0xB4C8, 0x9141,
- 0xE3BB, 0x9142, 0xBBC5, 0x9143, 0xC9F7, 0x9144,
- 0x9145, 0xC9E5, 0x9146, 0x9147, 0x9148, 0xC4BD,
- 0x9149, 0x914A, 0x914B, 0x914C, 0x914D, 0x914E,
- 0x914F, 0xEDAB, 0x9150, 0x9151, 0x9152, 0x9153,
- 0xC2FD, 0x9154, 0x9155, 0x9156, 0x9157, 0xBBDB,
- 0xBFAE, 0x9158, 0x9159, 0x915A, 0x915B, 0x915C,
- 0x915D, 0x915E, 0xCEBF, 0x915F, 0x9160, 0x9161,
- 0x9162, 0xE3BC, 0x9163, 0xBFB6, 0x9164, 0x9165,
- 0x9166, 0x9167, 0x9168, 0x9169, 0x916A, 0x916B,
- 0x916C, 0x916D, 0x916E, 0x916F, 0x9170, 0x9171,
- 0x9172, 0x9173, 0x9174, 0x9175, 0x9176, 0xB1EF,
- 0x9177, 0x9178, 0xD4F7, 0x9179, 0x917A, 0x917B,
- 0x917C, 0x917D, 0xE3BE, 0x917E, 0x9180, 0x9181,
- 0x9182, 0x9183, 0x9184, 0x9185, 0x9186, 0xEDAD,
- 0x9187, 0x9188, 0x9189, 0x918A, 0x918B, 0x918C,
- 0x918D, 0x918E, 0x918F, 0xE3BF, 0xBAA9, 0xEDAC,
- 0x9190, 0x9191, 0xE3BD, 0x9192, 0x9193, 0x9194,
- 0x9195, 0x9196, 0x9197, 0x9198, 0x9199, 0x919A,
- 0x919B, 0xE3C0, 0x919C, 0x919D, 0x919E, 0x919F,
- 0x91A0, 0x91A1, 0xBAB6, 0x91A2, 0x91A3, 0x91A4,
- 0xB6AE, 0x91A5, 0x91A6, 0x91A7, 0x91A8, 0x91A9,
- 0xD0B8, 0x91AA, 0xB0C3, 0xEDAE, 0x91AB, 0x91AC,
- 0x91AD, 0x91AE, 0x91AF, 0xEDAF, 0xC0C1, 0x91B0,
- 0xE3C1, 0x91B1, 0x91B2, 0x91B3, 0x91B4, 0x91B5,
- 0x91B6, 0x91B7, 0x91B8, 0x91B9, 0x91BA, 0x91BB,
- 0x91BC, 0x91BD, 0x91BE, 0x91BF, 0x91C0, 0x91C1,
- 0xC5B3, 0x91C2, 0x91C3, 0x91C4, 0x91C5, 0x91C6,
- 0x91C7, 0x91C8, 0x91C9, 0x91CA, 0x91CB, 0x91CC,
- 0x91CD, 0x91CE, 0x91CF, 0xE3C2, 0x91D0, 0x91D1,
- 0x91D2, 0x91D3, 0x91D4, 0x91D5, 0x91D6, 0x91D7,
- 0x91D8, 0xDCB2, 0x91D9, 0x91DA, 0x91DB, 0x91DC,
- 0x91DD, 0x91DE, 0xEDB0, 0x91DF, 0xB8EA, 0x91E0,
- 0xCEEC, 0xEAA7, 0xD0E7, 0xCAF9, 0xC8D6, 0xCFB7,
- 0xB3C9, 0xCED2, 0xBDE4, 0x91E1, 0x91E2, 0xE3DE,
- 0xBBF2, 0xEAA8, 0xD5BD, 0x91E3, 0xC6DD, 0xEAA9,
- 0x91E4, 0x91E5, 0x91E6, 0xEAAA, 0x91E7, 0xEAAC,
- 0xEAAB, 0x91E8, 0xEAAE, 0xEAAD, 0x91E9, 0x91EA,
- 0x91EB, 0x91EC, 0xBDD8, 0x91ED, 0xEAAF, 0x91EE,
- 0xC2BE, 0x91EF, 0x91F0, 0x91F1, 0x91F2, 0xB4C1,
- 0xB4F7, 0x91F3, 0x91F4, 0xBBA7, 0x91F5, 0x91F6,
- 0x91F7, 0x91F8, 0x91F9, 0xECE6, 0xECE5, 0xB7BF,
- 0xCBF9, 0xB1E2, 0x91FA, 0xECE7, 0x91FB, 0x91FC,
- 0x91FD, 0xC9C8, 0xECE8, 0xECE9, 0x91FE, 0xCAD6,
- 0xDED0, 0xB2C5, 0xD4FA, 0x9240, 0x9241, 0xC6CB,
- 0xB0C7, 0xB4F2, 0xC8D3, 0x9242, 0x9243, 0x9244,
- 0xCDD0, 0x9245, 0x9246, 0xBFB8, 0x9247, 0x9248,
- 0x9249, 0x924A, 0x924B, 0x924C, 0x924D, 0xBFDB,
- 0x924E, 0x924F, 0xC7A4, 0xD6B4, 0x9250, 0xC0A9,
- 0xDED1, 0xC9A8, 0xD1EF, 0xC5A4, 0xB0E7, 0xB3B6,
- 0xC8C5, 0x9251, 0x9252, 0xB0E2, 0x9253, 0x9254,
- 0xB7F6, 0x9255, 0x9256, 0xC5FA, 0x9257, 0x9258,
- 0xB6F3, 0x9259, 0xD5D2, 0xB3D0, 0xBCBC, 0x925A,
- 0x925B, 0x925C, 0xB3AD, 0x925D, 0x925E, 0x925F,
- 0x9260, 0xBEF1, 0xB0D1, 0x9261, 0x9262, 0x9263,
- 0x9264, 0x9265, 0x9266, 0xD2D6, 0xCAE3, 0xD7A5,
- 0x9267, 0xCDB6, 0xB6B6, 0xBFB9, 0xD5DB, 0x9268,
- 0xB8A7, 0xC5D7, 0x9269, 0x926A, 0x926B, 0xDED2,
- 0xBFD9, 0xC2D5, 0xC7C0, 0x926C, 0xBBA4, 0xB1A8,
- 0x926D, 0x926E, 0xC5EA, 0x926F, 0x9270, 0xC5FB,
- 0xCCA7, 0x9271, 0x9272, 0x9273, 0x9274, 0xB1A7,
- 0x9275, 0x9276, 0x9277, 0xB5D6, 0x9278, 0x9279,
- 0x927A, 0xC4A8, 0x927B, 0xDED3, 0xD1BA, 0xB3E9,
- 0x927C, 0xC3F2, 0x927D, 0x927E, 0xB7F7, 0x9280,
- 0xD6F4, 0xB5A3, 0xB2F0, 0xC4B4, 0xC4E9, 0xC0AD,
- 0xDED4, 0x9281, 0xB0E8, 0xC5C4, 0xC1E0, 0x9282,
- 0xB9D5, 0x9283, 0xBEDC, 0xCDD8, 0xB0CE, 0x9284,
- 0xCDCF, 0xDED6, 0xBED0, 0xD7BE, 0xDED5, 0xD5D0,
- 0xB0DD, 0x9285, 0x9286, 0xC4E2, 0x9287, 0x9288,
- 0xC2A3, 0xBCF0, 0x9289, 0xD3B5, 0xC0B9, 0xC5A1,
- 0xB2A6, 0xD4F1, 0x928A, 0x928B, 0xC0A8, 0xCAC3,
- 0xDED7, 0xD5FC, 0x928C, 0xB9B0, 0x928D, 0xC8AD,
- 0xCBA9, 0x928E, 0xDED9, 0xBFBD, 0x928F, 0x9290,
- 0x9291, 0x9292, 0xC6B4, 0xD7A7, 0xCAB0, 0xC4C3,
- 0x9293, 0xB3D6, 0xB9D2, 0x9294, 0x9295, 0x9296,
- 0x9297, 0xD6B8, 0xEAFC, 0xB0B4, 0x9298, 0x9299,
- 0x929A, 0x929B, 0xBFE6, 0x929C, 0x929D, 0xCCF4,
- 0x929E, 0x929F, 0x92A0, 0x92A1, 0xCDDA, 0x92A2,
- 0x92A3, 0x92A4, 0xD6BF, 0xC2CE, 0x92A5, 0xCECE,
- 0xCCA2, 0xD0AE, 0xC4D3, 0xB5B2, 0xDED8, 0xD5F5,
- 0xBCB7, 0xBBD3, 0x92A6, 0x92A7, 0xB0A4, 0x92A8,
- 0xC5B2, 0xB4EC, 0x92A9, 0x92AA, 0x92AB, 0xD5F1,
- 0x92AC, 0x92AD, 0xEAFD, 0x92AE, 0x92AF, 0x92B0,
- 0x92B1, 0x92B2, 0x92B3, 0xDEDA, 0xCDA6, 0x92B4,
- 0x92B5, 0xCDEC, 0x92B6, 0x92B7, 0x92B8, 0x92B9,
- 0xCEE6, 0xDEDC, 0x92BA, 0xCDB1, 0xC0A6, 0x92BB,
- 0x92BC, 0xD7BD, 0x92BD, 0xDEDB, 0xB0C6, 0xBAB4,
- 0xC9D3, 0xC4F3, 0xBEE8, 0x92BE, 0x92BF, 0x92C0,
- 0x92C1, 0xB2B6, 0x92C2, 0x92C3, 0x92C4, 0x92C5,
- 0x92C6, 0x92C7, 0x92C8, 0x92C9, 0xC0CC, 0xCBF0,
- 0x92CA, 0xBCF1, 0xBBBB, 0xB5B7, 0x92CB, 0x92CC,
- 0x92CD, 0xC5F5, 0x92CE, 0xDEE6, 0x92CF, 0x92D0,
- 0x92D1, 0xDEE3, 0xBEDD, 0x92D2, 0x92D3, 0xDEDF,
- 0x92D4, 0x92D5, 0x92D6, 0x92D7, 0xB4B7, 0xBDDD,
- 0x92D8, 0x92D9, 0xDEE0, 0xC4ED, 0x92DA, 0x92DB,
- 0x92DC, 0x92DD, 0xCFC6, 0x92DE, 0xB5E0, 0x92DF,
- 0x92E0, 0x92E1, 0x92E2, 0xB6DE, 0xCADA, 0xB5F4,
- 0xDEE5, 0x92E3, 0xD5C6, 0x92E4, 0xDEE1, 0xCCCD,
- 0xC6FE, 0x92E5, 0xC5C5, 0x92E6, 0x92E7, 0x92E8,
- 0xD2B4, 0x92E9, 0xBEF2, 0x92EA, 0x92EB, 0x92EC,
- 0x92ED, 0x92EE, 0x92EF, 0x92F0, 0xC2D3, 0x92F1,
- 0xCCBD, 0xB3B8, 0x92F2, 0xBDD3, 0x92F3, 0xBFD8,
- 0xCDC6, 0xD1DA, 0xB4EB, 0x92F4, 0xDEE4, 0xDEDD,
- 0xDEE7, 0x92F5, 0xEAFE, 0x92F6, 0x92F7, 0xC2B0,
- 0xDEE2, 0x92F8, 0x92F9, 0xD6C0, 0xB5A7, 0x92FA,
- 0xB2F4, 0x92FB, 0xDEE8, 0x92FC, 0xDEF2, 0x92FD,
- 0x92FE, 0x9340, 0x9341, 0x9342, 0xDEED, 0x9343,
- 0xDEF1, 0x9344, 0x9345, 0xC8E0, 0x9346, 0x9347,
- 0x9348, 0xD7E1, 0xDEEF, 0xC3E8, 0xCCE1, 0x9349,
- 0xB2E5, 0x934A, 0x934B, 0x934C, 0xD2BE, 0x934D,
- 0x934E, 0x934F, 0x9350, 0x9351, 0x9352, 0x9353,
- 0xDEEE, 0x9354, 0xDEEB, 0xCED5, 0x9355, 0xB4A7,
- 0x9356, 0x9357, 0x9358, 0x9359, 0x935A, 0xBFAB,
- 0xBEBE, 0x935B, 0x935C, 0xBDD2, 0x935D, 0x935E,
- 0x935F, 0x9360, 0xDEE9, 0x9361, 0xD4AE, 0x9362,
- 0xDEDE, 0x9363, 0xDEEA, 0x9364, 0x9365, 0x9366,
- 0x9367, 0xC0BF, 0x9368, 0xDEEC, 0xB2F3, 0xB8E9,
- 0xC2A7, 0x9369, 0x936A, 0xBDC1, 0x936B, 0x936C,
- 0x936D, 0x936E, 0x936F, 0xDEF5, 0xDEF8, 0x9370,
- 0x9371, 0xB2AB, 0xB4A4, 0x9372, 0x9373, 0xB4EA,
- 0xC9A6, 0x9374, 0x9375, 0x9376, 0x9377, 0x9378,
- 0x9379, 0xDEF6, 0xCBD1, 0x937A, 0xB8E3, 0x937B,
- 0xDEF7, 0xDEFA, 0x937C, 0x937D, 0x937E, 0x9380,
- 0xDEF9, 0x9381, 0x9382, 0x9383, 0xCCC2, 0x9384,
- 0xB0E1, 0xB4EE, 0x9385, 0x9386, 0x9387, 0x9388,
- 0x9389, 0x938A, 0xE5BA, 0x938B, 0x938C, 0x938D,
- 0x938E, 0x938F, 0xD0AF, 0x9390, 0x9391, 0xB2EB,
- 0x9392, 0xEBA1, 0x9393, 0xDEF4, 0x9394, 0x9395,
- 0xC9E3, 0xDEF3, 0xB0DA, 0xD2A1, 0xB1F7, 0x9396,
- 0xCCAF, 0x9397, 0x9398, 0x9399, 0x939A, 0x939B,
- 0x939C, 0x939D, 0xDEF0, 0x939E, 0xCBA4, 0x939F,
- 0x93A0, 0x93A1, 0xD5AA, 0x93A2, 0x93A3, 0x93A4,
- 0x93A5, 0x93A6, 0xDEFB, 0x93A7, 0x93A8, 0x93A9,
- 0x93AA, 0x93AB, 0x93AC, 0x93AD, 0x93AE, 0xB4DD,
- 0x93AF, 0xC4A6, 0x93B0, 0x93B1, 0x93B2, 0xDEFD,
- 0x93B3, 0x93B4, 0x93B5, 0x93B6, 0x93B7, 0x93B8,
- 0x93B9, 0x93BA, 0x93BB, 0x93BC, 0xC3FE, 0xC4A1,
- 0xDFA1, 0x93BD, 0x93BE, 0x93BF, 0x93C0, 0x93C1,
- 0x93C2, 0x93C3, 0xC1CC, 0x93C4, 0xDEFC, 0xBEEF,
- 0x93C5, 0xC6B2, 0x93C6, 0x93C7, 0x93C8, 0x93C9,
- 0x93CA, 0x93CB, 0x93CC, 0x93CD, 0x93CE, 0xB3C5,
- 0xC8F6, 0x93CF, 0x93D0, 0xCBBA, 0xDEFE, 0x93D1,
- 0x93D2, 0xDFA4, 0x93D3, 0x93D4, 0x93D5, 0x93D6,
- 0xD7B2, 0x93D7, 0x93D8, 0x93D9, 0x93DA, 0x93DB,
- 0xB3B7, 0x93DC, 0x93DD, 0x93DE, 0x93DF, 0xC1C3,
- 0x93E0, 0x93E1, 0xC7CB, 0xB2A5, 0xB4E9, 0x93E2,
- 0xD7AB, 0x93E3, 0x93E4, 0x93E5, 0x93E6, 0xC4EC,
- 0x93E7, 0xDFA2, 0xDFA3, 0x93E8, 0xDFA5, 0x93E9,
- 0xBAB3, 0x93EA, 0x93EB, 0x93EC, 0xDFA6, 0x93ED,
- 0xC0DE, 0x93EE, 0x93EF, 0xC9C3, 0x93F0, 0x93F1,
- 0x93F2, 0x93F3, 0x93F4, 0x93F5, 0x93F6, 0xB2D9,
- 0xC7E6, 0x93F7, 0xDFA7, 0x93F8, 0xC7DC, 0x93F9,
- 0x93FA, 0x93FB, 0x93FC, 0xDFA8, 0xEBA2, 0x93FD,
- 0x93FE, 0x9440, 0x9441, 0x9442, 0xCBD3, 0x9443,
- 0x9444, 0x9445, 0xDFAA, 0x9446, 0xDFA9, 0x9447,
- 0xB2C1, 0x9448, 0x9449, 0x944A, 0x944B, 0x944C,
- 0x944D, 0x944E, 0x944F, 0x9450, 0x9451, 0x9452,
- 0x9453, 0x9454, 0x9455, 0x9456, 0x9457, 0x9458,
- 0x9459, 0x945A, 0x945B, 0x945C, 0x945D, 0x945E,
- 0x945F, 0x9460, 0xC5CA, 0x9461, 0x9462, 0x9463,
- 0x9464, 0x9465, 0x9466, 0x9467, 0x9468, 0xDFAB,
- 0x9469, 0x946A, 0x946B, 0x946C, 0x946D, 0x946E,
- 0x946F, 0x9470, 0xD4DC, 0x9471, 0x9472, 0x9473,
- 0x9474, 0x9475, 0xC8C1, 0x9476, 0x9477, 0x9478,
- 0x9479, 0x947A, 0x947B, 0x947C, 0x947D, 0x947E,
- 0x9480, 0x9481, 0x9482, 0xDFAC, 0x9483, 0x9484,
- 0x9485, 0x9486, 0x9487, 0xBEF0, 0x9488, 0x9489,
- 0xDFAD, 0xD6A7, 0x948A, 0x948B, 0x948C, 0x948D,
- 0xEAB7, 0xEBB6, 0xCAD5, 0x948E, 0xD8FC, 0xB8C4,
- 0x948F, 0xB9A5, 0x9490, 0x9491, 0xB7C5, 0xD5FE,
- 0x9492, 0x9493, 0x9494, 0x9495, 0x9496, 0xB9CA,
- 0x9497, 0x9498, 0xD0A7, 0xF4CD, 0x9499, 0x949A,
- 0xB5D0, 0x949B, 0x949C, 0xC3F4, 0x949D, 0xBEC8,
- 0x949E, 0x949F, 0x94A0, 0xEBB7, 0xB0BD, 0x94A1,
- 0x94A2, 0xBDCC, 0x94A3, 0xC1B2, 0x94A4, 0xB1D6,
- 0xB3A8, 0x94A5, 0x94A6, 0x94A7, 0xB8D2, 0xC9A2,
- 0x94A8, 0x94A9, 0xB6D8, 0x94AA, 0x94AB, 0x94AC,
- 0x94AD, 0xEBB8, 0xBEB4, 0x94AE, 0x94AF, 0x94B0,
- 0xCAFD, 0x94B1, 0xC7C3, 0x94B2, 0xD5FB, 0x94B3,
- 0x94B4, 0xB7F3, 0x94B5, 0x94B6, 0x94B7, 0x94B8,
- 0x94B9, 0x94BA, 0x94BB, 0x94BC, 0x94BD, 0x94BE,
- 0x94BF, 0x94C0, 0x94C1, 0x94C2, 0x94C3, 0xCEC4,
- 0x94C4, 0x94C5, 0x94C6, 0xD5AB, 0xB1F3, 0x94C7,
- 0x94C8, 0x94C9, 0xECB3, 0xB0DF, 0x94CA, 0xECB5,
- 0x94CB, 0x94CC, 0x94CD, 0xB6B7, 0x94CE, 0xC1CF,
- 0x94CF, 0xF5FA, 0xD0B1, 0x94D0, 0x94D1, 0xD5E5,
- 0x94D2, 0xCED3, 0x94D3, 0x94D4, 0xBDEF, 0xB3E2,
- 0x94D5, 0xB8AB, 0x94D6, 0xD5B6, 0x94D7, 0xEDBD,
- 0x94D8, 0xB6CF, 0x94D9, 0xCBB9, 0xD0C2, 0x94DA,
- 0x94DB, 0x94DC, 0x94DD, 0x94DE, 0x94DF, 0x94E0,
- 0x94E1, 0xB7BD, 0x94E2, 0x94E3, 0xECB6, 0xCAA9,
- 0x94E4, 0x94E5, 0x94E6, 0xC5D4, 0x94E7, 0xECB9,
- 0xECB8, 0xC2C3, 0xECB7, 0x94E8, 0x94E9, 0x94EA,
- 0x94EB, 0xD0FD, 0xECBA, 0x94EC, 0xECBB, 0xD7E5,
- 0x94ED, 0x94EE, 0xECBC, 0x94EF, 0x94F0, 0x94F1,
- 0xECBD, 0xC6EC, 0x94F2, 0x94F3, 0x94F4, 0x94F5,
- 0x94F6, 0x94F7, 0x94F8, 0x94F9, 0xCEDE, 0x94FA,
- 0xBCC8, 0x94FB, 0x94FC, 0xC8D5, 0xB5A9, 0xBEC9,
- 0xD6BC, 0xD4E7, 0x94FD, 0x94FE, 0xD1AE, 0xD0F1,
- 0xEAB8, 0xEAB9, 0xEABA, 0xBAB5, 0x9540, 0x9541,
- 0x9542, 0x9543, 0xCAB1, 0xBFF5, 0x9544, 0x9545,
- 0xCDFA, 0x9546, 0x9547, 0x9548, 0x9549, 0x954A,
- 0xEAC0, 0x954B, 0xB0BA, 0xEABE, 0x954C, 0x954D,
- 0xC0A5, 0x954E, 0x954F, 0x9550, 0xEABB, 0x9551,
- 0xB2FD, 0x9552, 0xC3F7, 0xBBE8, 0x9553, 0x9554,
- 0x9555, 0xD2D7, 0xCEF4, 0xEABF, 0x9556, 0x9557,
- 0x9558, 0xEABC, 0x9559, 0x955A, 0x955B, 0xEAC3,
- 0x955C, 0xD0C7, 0xD3B3, 0x955D, 0x955E, 0x955F,
- 0x9560, 0xB4BA, 0x9561, 0xC3C1, 0xD7F2, 0x9562,
- 0x9563, 0x9564, 0x9565, 0xD5D1, 0x9566, 0xCAC7,
- 0x9567, 0xEAC5, 0x9568, 0x9569, 0xEAC4, 0xEAC7,
- 0xEAC6, 0x956A, 0x956B, 0x956C, 0x956D, 0x956E,
- 0xD6E7, 0x956F, 0xCFD4, 0x9570, 0x9571, 0xEACB,
- 0x9572, 0xBBCE, 0x9573, 0x9574, 0x9575, 0x9576,
- 0x9577, 0x9578, 0x9579, 0xBDFA, 0xC9CE, 0x957A,
- 0x957B, 0xEACC, 0x957C, 0x957D, 0xC9B9, 0xCFFE,
- 0xEACA, 0xD4CE, 0xEACD, 0xEACF, 0x957E, 0x9580,
- 0xCDED, 0x9581, 0x9582, 0x9583, 0x9584, 0xEAC9,
- 0x9585, 0xEACE, 0x9586, 0x9587, 0xCEEE, 0x9588,
- 0xBBDE, 0x9589, 0xB3BF, 0x958A, 0x958B, 0x958C,
- 0x958D, 0x958E, 0xC6D5, 0xBEB0, 0xCEFA, 0x958F,
- 0x9590, 0x9591, 0xC7E7, 0x9592, 0xBEA7, 0xEAD0,
- 0x9593, 0x9594, 0xD6C7, 0x9595, 0x9596, 0x9597,
- 0xC1C0, 0x9598, 0x9599, 0x959A, 0xD4DD, 0x959B,
- 0xEAD1, 0x959C, 0x959D, 0xCFBE, 0x959E, 0x959F,
- 0x95A0, 0x95A1, 0xEAD2, 0x95A2, 0x95A3, 0x95A4,
- 0x95A5, 0xCAEE, 0x95A6, 0x95A7, 0x95A8, 0x95A9,
- 0xC5AF, 0xB0B5, 0x95AA, 0x95AB, 0x95AC, 0x95AD,
- 0x95AE, 0xEAD4, 0x95AF, 0x95B0, 0x95B1, 0x95B2,
- 0x95B3, 0x95B4, 0x95B5, 0x95B6, 0x95B7, 0xEAD3,
- 0xF4DF, 0x95B8, 0x95B9, 0x95BA, 0x95BB, 0x95BC,
- 0xC4BA, 0x95BD, 0x95BE, 0x95BF, 0x95C0, 0x95C1,
- 0xB1A9, 0x95C2, 0x95C3, 0x95C4, 0x95C5, 0xE5DF,
- 0x95C6, 0x95C7, 0x95C8, 0x95C9, 0xEAD5, 0x95CA,
- 0x95CB, 0x95CC, 0x95CD, 0x95CE, 0x95CF, 0x95D0,
- 0x95D1, 0x95D2, 0x95D3, 0x95D4, 0x95D5, 0x95D6,
- 0x95D7, 0x95D8, 0x95D9, 0x95DA, 0x95DB, 0x95DC,
- 0x95DD, 0x95DE, 0x95DF, 0x95E0, 0x95E1, 0x95E2,
- 0x95E3, 0xCAEF, 0x95E4, 0xEAD6, 0xEAD7, 0xC6D8,
- 0x95E5, 0x95E6, 0x95E7, 0x95E8, 0x95E9, 0x95EA,
- 0x95EB, 0x95EC, 0xEAD8, 0x95ED, 0x95EE, 0xEAD9,
- 0x95EF, 0x95F0, 0x95F1, 0x95F2, 0x95F3, 0x95F4,
- 0xD4BB, 0x95F5, 0xC7FA, 0xD2B7, 0xB8FC, 0x95F6,
- 0x95F7, 0xEAC2, 0x95F8, 0xB2DC, 0x95F9, 0x95FA,
- 0xC2FC, 0x95FB, 0xD4F8, 0xCCE6, 0xD7EE, 0x95FC,
- 0x95FD, 0x95FE, 0x9640, 0x9641, 0x9642, 0x9643,
- 0xD4C2, 0xD3D0, 0xEBC3, 0xC5F3, 0x9644, 0xB7FE,
- 0x9645, 0x9646, 0xEBD4, 0x9647, 0x9648, 0x9649,
- 0xCBB7, 0xEBDE, 0x964A, 0xC0CA, 0x964B, 0x964C,
- 0x964D, 0xCDFB, 0x964E, 0xB3AF, 0x964F, 0xC6DA,
- 0x9650, 0x9651, 0x9652, 0x9653, 0x9654, 0x9655,
- 0xEBFC, 0x9656, 0xC4BE, 0x9657, 0xCEB4, 0xC4A9,
- 0xB1BE, 0xD4FD, 0x9658, 0xCAF5, 0x9659, 0xD6EC,
- 0x965A, 0x965B, 0xC6D3, 0xB6E4, 0x965C, 0x965D,
- 0x965E, 0x965F, 0xBBFA, 0x9660, 0x9661, 0xD0E0,
- 0x9662, 0x9663, 0xC9B1, 0x9664, 0xD4D3, 0xC8A8,
- 0x9665, 0x9666, 0xB8CB, 0x9667, 0xE8BE, 0xC9BC,
- 0x9668, 0x9669, 0xE8BB, 0x966A, 0xC0EE, 0xD0D3,
- 0xB2C4, 0xB4E5, 0x966B, 0xE8BC, 0x966C, 0x966D,
- 0xD5C8, 0x966E, 0x966F, 0x9670, 0x9671, 0x9672,
- 0xB6C5, 0x9673, 0xE8BD, 0xCAF8, 0xB8DC, 0xCCF5,
- 0x9674, 0x9675, 0x9676, 0xC0B4, 0x9677, 0x9678,
- 0xD1EE, 0xE8BF, 0xE8C2, 0x9679, 0x967A, 0xBABC,
- 0x967B, 0xB1AD, 0xBDDC, 0x967C, 0xEABD, 0xE8C3,
- 0x967D, 0xE8C6, 0x967E, 0xE8CB, 0x9680, 0x9681,
- 0x9682, 0x9683, 0xE8CC, 0x9684, 0xCBC9, 0xB0E5,
- 0x9685, 0xBCAB, 0x9686, 0x9687, 0xB9B9, 0x9688,
- 0x9689, 0xE8C1, 0x968A, 0xCDF7, 0x968B, 0xE8CA,
- 0x968C, 0x968D, 0x968E, 0x968F, 0xCEF6, 0x9690,
- 0x9691, 0x9692, 0x9693, 0xD5ED, 0x9694, 0xC1D6,
- 0xE8C4, 0x9695, 0xC3B6, 0x9696, 0xB9FB, 0xD6A6,
- 0xE8C8, 0x9697, 0x9698, 0x9699, 0xCAE0, 0xD4E6,
- 0x969A, 0xE8C0, 0x969B, 0xE8C5, 0xE8C7, 0x969C,
- 0xC7B9, 0xB7E3, 0x969D, 0xE8C9, 0x969E, 0xBFDD,
- 0xE8D2, 0x969F, 0x96A0, 0xE8D7, 0x96A1, 0xE8D5,
- 0xBCDC, 0xBCCF, 0xE8DB, 0x96A2, 0x96A3, 0x96A4,
- 0x96A5, 0x96A6, 0x96A7, 0x96A8, 0x96A9, 0xE8DE,
- 0x96AA, 0xE8DA, 0xB1FA, 0x96AB, 0x96AC, 0x96AD,
- 0x96AE, 0x96AF, 0x96B0, 0x96B1, 0x96B2, 0x96B3,
- 0x96B4, 0xB0D8, 0xC4B3, 0xB8CC, 0xC6E2, 0xC8BE,
- 0xC8E1, 0x96B5, 0x96B6, 0x96B7, 0xE8CF, 0xE8D4,
- 0xE8D6, 0x96B8, 0xB9F1, 0xE8D8, 0xD7F5, 0x96B9,
- 0xC4FB, 0x96BA, 0xE8DC, 0x96BB, 0x96BC, 0xB2E9,
- 0x96BD, 0x96BE, 0x96BF, 0xE8D1, 0x96C0, 0x96C1,
- 0xBCED, 0x96C2, 0x96C3, 0xBFC2, 0xE8CD, 0xD6F9,
- 0x96C4, 0xC1F8, 0xB2F1, 0x96C5, 0x96C6, 0x96C7,
- 0x96C8, 0x96C9, 0x96CA, 0x96CB, 0x96CC, 0xE8DF,
- 0x96CD, 0xCAC1, 0xE8D9, 0x96CE, 0x96CF, 0x96D0,
- 0x96D1, 0xD5A4, 0x96D2, 0xB1EA, 0xD5BB, 0xE8CE,
- 0xE8D0, 0xB6B0, 0xE8D3, 0x96D3, 0xE8DD, 0xC0B8,
- 0x96D4, 0xCAF7, 0x96D5, 0xCBA8, 0x96D6, 0x96D7,
- 0xC6DC, 0xC0F5, 0x96D8, 0x96D9, 0x96DA, 0x96DB,
- 0x96DC, 0xE8E9, 0x96DD, 0x96DE, 0x96DF, 0xD0A3,
- 0x96E0, 0x96E1, 0x96E2, 0x96E3, 0x96E4, 0x96E5,
- 0x96E6, 0xE8F2, 0xD6EA, 0x96E7, 0x96E8, 0x96E9,
- 0x96EA, 0x96EB, 0x96EC, 0x96ED, 0xE8E0, 0xE8E1,
- 0x96EE, 0x96EF, 0x96F0, 0xD1F9, 0xBACB, 0xB8F9,
- 0x96F1, 0x96F2, 0xB8F1, 0xD4D4, 0xE8EF, 0x96F3,
- 0xE8EE, 0xE8EC, 0xB9F0, 0xCCD2, 0xE8E6, 0xCEA6,
- 0xBFF2, 0x96F4, 0xB0B8, 0xE8F1, 0xE8F0, 0x96F5,
- 0xD7C0, 0x96F6, 0xE8E4, 0x96F7, 0xCDA9, 0xC9A3,
- 0x96F8, 0xBBB8, 0xBDDB, 0xE8EA, 0x96F9, 0x96FA,
- 0x96FB, 0x96FC, 0x96FD, 0x96FE, 0x9740, 0x9741,
- 0x9742, 0x9743, 0xE8E2, 0xE8E3, 0xE8E5, 0xB5B5,
- 0xE8E7, 0xC7C5, 0xE8EB, 0xE8ED, 0xBDB0, 0xD7AE,
- 0x9744, 0xE8F8, 0x9745, 0x9746, 0x9747, 0x9748,
- 0x9749, 0x974A, 0x974B, 0x974C, 0xE8F5, 0x974D,
- 0xCDB0, 0xE8F6, 0x974E, 0x974F, 0x9750, 0x9751,
- 0x9752, 0x9753, 0x9754, 0x9755, 0x9756, 0xC1BA,
- 0x9757, 0xE8E8, 0x9758, 0xC3B7, 0xB0F0, 0x9759,
- 0x975A, 0x975B, 0x975C, 0x975D, 0x975E, 0x975F,
- 0x9760, 0xE8F4, 0x9761, 0x9762, 0x9763, 0xE8F7,
- 0x9764, 0x9765, 0x9766, 0xB9A3, 0x9767, 0x9768,
- 0x9769, 0x976A, 0x976B, 0x976C, 0x976D, 0x976E,
- 0x976F, 0x9770, 0xC9D2, 0x9771, 0x9772, 0x9773,
- 0xC3CE, 0xCEE0, 0xC0E6, 0x9774, 0x9775, 0x9776,
- 0x9777, 0xCBF3, 0x9778, 0xCCDD, 0xD0B5, 0x9779,
- 0x977A, 0xCAE1, 0x977B, 0xE8F3, 0x977C, 0x977D,
- 0x977E, 0x9780, 0x9781, 0x9782, 0x9783, 0x9784,
- 0x9785, 0x9786, 0xBCEC, 0x9787, 0xE8F9, 0x9788,
- 0x9789, 0x978A, 0x978B, 0x978C, 0x978D, 0xC3DE,
- 0x978E, 0xC6E5, 0x978F, 0xB9F7, 0x9790, 0x9791,
- 0x9792, 0x9793, 0xB0F4, 0x9794, 0x9795, 0xD7D8,
- 0x9796, 0x9797, 0xBCAC, 0x9798, 0xC5EF, 0x9799,
- 0x979A, 0x979B, 0x979C, 0x979D, 0xCCC4, 0x979E,
- 0x979F, 0xE9A6, 0x97A0, 0x97A1, 0x97A2, 0x97A3,
- 0x97A4, 0x97A5, 0x97A6, 0x97A7, 0x97A8, 0x97A9,
- 0xC9AD, 0x97AA, 0xE9A2, 0xC0E2, 0x97AB, 0x97AC,
- 0x97AD, 0xBFC3, 0x97AE, 0x97AF, 0x97B0, 0xE8FE,
- 0xB9D7, 0x97B1, 0xE8FB, 0x97B2, 0x97B3, 0x97B4,
- 0x97B5, 0xE9A4, 0x97B6, 0x97B7, 0x97B8, 0xD2CE,
- 0x97B9, 0x97BA, 0x97BB, 0x97BC, 0x97BD, 0xE9A3,
- 0x97BE, 0xD6B2, 0xD7B5, 0x97BF, 0xE9A7, 0x97C0,
- 0xBDB7, 0x97C1, 0x97C2, 0x97C3, 0x97C4, 0x97C5,
- 0x97C6, 0x97C7, 0x97C8, 0x97C9, 0x97CA, 0x97CB,
- 0x97CC, 0xE8FC, 0xE8FD, 0x97CD, 0x97CE, 0x97CF,
- 0xE9A1, 0x97D0, 0x97D1, 0x97D2, 0x97D3, 0x97D4,
- 0x97D5, 0x97D6, 0x97D7, 0xCDD6, 0x97D8, 0x97D9,
- 0xD2AC, 0x97DA, 0x97DB, 0x97DC, 0xE9B2, 0x97DD,
- 0x97DE, 0x97DF, 0x97E0, 0xE9A9, 0x97E1, 0x97E2,
- 0x97E3, 0xB4AA, 0x97E4, 0xB4BB, 0x97E5, 0x97E6,
- 0xE9AB, 0x97E7, 0x97E8, 0x97E9, 0x97EA, 0x97EB,
- 0x97EC, 0x97ED, 0x97EE, 0x97EF, 0x97F0, 0x97F1,
- 0x97F2, 0x97F3, 0x97F4, 0x97F5, 0x97F6, 0x97F7,
- 0xD0A8, 0x97F8, 0x97F9, 0xE9A5, 0x97FA, 0x97FB,
- 0xB3FE, 0x97FC, 0x97FD, 0xE9AC, 0xC0E3, 0x97FE,
- 0xE9AA, 0x9840, 0x9841, 0xE9B9, 0x9842, 0x9843,
- 0xE9B8, 0x9844, 0x9845, 0x9846, 0x9847, 0xE9AE,
- 0x9848, 0x9849, 0xE8FA, 0x984A, 0x984B, 0xE9A8,
- 0x984C, 0x984D, 0x984E, 0x984F, 0x9850, 0xBFAC,
- 0xE9B1, 0xE9BA, 0x9851, 0x9852, 0xC2A5, 0x9853,
- 0x9854, 0x9855, 0xE9AF, 0x9856, 0xB8C5, 0x9857,
- 0xE9AD, 0x9858, 0xD3DC, 0xE9B4, 0xE9B5, 0xE9B7,
- 0x9859, 0x985A, 0x985B, 0xE9C7, 0x985C, 0x985D,
- 0x985E, 0x985F, 0x9860, 0x9861, 0xC0C6, 0xE9C5,
- 0x9862, 0x9863, 0xE9B0, 0x9864, 0x9865, 0xE9BB,
- 0xB0F1, 0x9866, 0x9867, 0x9868, 0x9869, 0x986A,
- 0x986B, 0x986C, 0x986D, 0x986E, 0x986F, 0xE9BC,
- 0xD5A5, 0x9870, 0x9871, 0xE9BE, 0x9872, 0xE9BF,
- 0x9873, 0x9874, 0x9875, 0xE9C1, 0x9876, 0x9877,
- 0xC1F1, 0x9878, 0x9879, 0xC8B6, 0x987A, 0x987B,
- 0x987C, 0xE9BD, 0x987D, 0x987E, 0x9880, 0x9881,
- 0x9882, 0xE9C2, 0x9883, 0x9884, 0x9885, 0x9886,
- 0x9887, 0x9888, 0x9889, 0x988A, 0xE9C3, 0x988B,
- 0xE9B3, 0x988C, 0xE9B6, 0x988D, 0xBBB1, 0x988E,
- 0x988F, 0x9890, 0xE9C0, 0x9891, 0x9892, 0x9893,
- 0x9894, 0x9895, 0x9896, 0xBCF7, 0x9897, 0x9898,
- 0x9899, 0xE9C4, 0xE9C6, 0x989A, 0x989B, 0x989C,
- 0x989D, 0x989E, 0x989F, 0x98A0, 0x98A1, 0x98A2,
- 0x98A3, 0x98A4, 0x98A5, 0xE9CA, 0x98A6, 0x98A7,
- 0x98A8, 0x98A9, 0xE9CE, 0x98AA, 0x98AB, 0x98AC,
- 0x98AD, 0x98AE, 0x98AF, 0x98B0, 0x98B1, 0x98B2,
- 0x98B3, 0xB2DB, 0x98B4, 0xE9C8, 0x98B5, 0x98B6,
- 0x98B7, 0x98B8, 0x98B9, 0x98BA, 0x98BB, 0x98BC,
- 0x98BD, 0x98BE, 0xB7AE, 0x98BF, 0x98C0, 0x98C1,
- 0x98C2, 0x98C3, 0x98C4, 0x98C5, 0x98C6, 0x98C7,
- 0x98C8, 0x98C9, 0x98CA, 0xE9CB, 0xE9CC, 0x98CB,
- 0x98CC, 0x98CD, 0x98CE, 0x98CF, 0x98D0, 0xD5C1,
- 0x98D1, 0xC4A3, 0x98D2, 0x98D3, 0x98D4, 0x98D5,
- 0x98D6, 0x98D7, 0xE9D8, 0x98D8, 0xBAE1, 0x98D9,
- 0x98DA, 0x98DB, 0x98DC, 0xE9C9, 0x98DD, 0xD3A3,
- 0x98DE, 0x98DF, 0x98E0, 0xE9D4, 0x98E1, 0x98E2,
- 0x98E3, 0x98E4, 0x98E5, 0x98E6, 0x98E7, 0xE9D7,
- 0xE9D0, 0x98E8, 0x98E9, 0x98EA, 0x98EB, 0x98EC,
- 0xE9CF, 0x98ED, 0x98EE, 0xC7C1, 0x98EF, 0x98F0,
- 0x98F1, 0x98F2, 0x98F3, 0x98F4, 0x98F5, 0x98F6,
- 0xE9D2, 0x98F7, 0x98F8, 0x98F9, 0x98FA, 0x98FB,
- 0x98FC, 0x98FD, 0xE9D9, 0xB3C8, 0x98FE, 0xE9D3,
- 0x9940, 0x9941, 0x9942, 0x9943, 0x9944, 0xCFF0,
- 0x9945, 0x9946, 0x9947, 0xE9CD, 0x9948, 0x9949,
- 0x994A, 0x994B, 0x994C, 0x994D, 0x994E, 0x994F,
- 0x9950, 0x9951, 0x9952, 0xB3F7, 0x9953, 0x9954,
- 0x9955, 0x9956, 0x9957, 0x9958, 0x9959, 0xE9D6,
- 0x995A, 0x995B, 0xE9DA, 0x995C, 0x995D, 0x995E,
- 0xCCB4, 0x995F, 0x9960, 0x9961, 0xCFAD, 0x9962,
- 0x9963, 0x9964, 0x9965, 0x9966, 0x9967, 0x9968,
- 0x9969, 0x996A, 0xE9D5, 0x996B, 0xE9DC, 0xE9DB,
- 0x996C, 0x996D, 0x996E, 0x996F, 0x9970, 0xE9DE,
- 0x9971, 0x9972, 0x9973, 0x9974, 0x9975, 0x9976,
- 0x9977, 0x9978, 0xE9D1, 0x9979, 0x997A, 0x997B,
- 0x997C, 0x997D, 0x997E, 0x9980, 0x9981, 0xE9DD,
- 0x9982, 0xE9DF, 0xC3CA, 0x9983, 0x9984, 0x9985,
- 0x9986, 0x9987, 0x9988, 0x9989, 0x998A, 0x998B,
- 0x998C, 0x998D, 0x998E, 0x998F, 0x9990, 0x9991,
- 0x9992, 0x9993, 0x9994, 0x9995, 0x9996, 0x9997,
- 0x9998, 0x9999, 0x999A, 0x999B, 0x999C, 0x999D,
- 0x999E, 0x999F, 0x99A0, 0x99A1, 0x99A2, 0x99A3,
- 0x99A4, 0x99A5, 0x99A6, 0x99A7, 0x99A8, 0x99A9,
- 0x99AA, 0x99AB, 0x99AC, 0x99AD, 0x99AE, 0x99AF,
- 0x99B0, 0x99B1, 0x99B2, 0x99B3, 0x99B4, 0x99B5,
- 0x99B6, 0x99B7, 0x99B8, 0x99B9, 0x99BA, 0x99BB,
- 0x99BC, 0x99BD, 0x99BE, 0x99BF, 0x99C0, 0x99C1,
- 0x99C2, 0x99C3, 0x99C4, 0x99C5, 0x99C6, 0x99C7,
- 0x99C8, 0x99C9, 0x99CA, 0x99CB, 0x99CC, 0x99CD,
- 0x99CE, 0x99CF, 0x99D0, 0x99D1, 0x99D2, 0x99D3,
- 0x99D4, 0x99D5, 0x99D6, 0x99D7, 0x99D8, 0x99D9,
- 0x99DA, 0x99DB, 0x99DC, 0x99DD, 0x99DE, 0x99DF,
- 0x99E0, 0x99E1, 0x99E2, 0x99E3, 0x99E4, 0x99E5,
- 0x99E6, 0x99E7, 0x99E8, 0x99E9, 0x99EA, 0x99EB,
- 0x99EC, 0x99ED, 0x99EE, 0x99EF, 0x99F0, 0x99F1,
- 0x99F2, 0x99F3, 0x99F4, 0x99F5, 0xC7B7, 0xB4CE,
- 0xBBB6, 0xD0C0, 0xECA3, 0x99F6, 0x99F7, 0xC5B7,
- 0x99F8, 0x99F9, 0x99FA, 0x99FB, 0x99FC, 0x99FD,
- 0x99FE, 0x9A40, 0x9A41, 0x9A42, 0xD3FB, 0x9A43,
- 0x9A44, 0x9A45, 0x9A46, 0xECA4, 0x9A47, 0xECA5,
- 0xC6DB, 0x9A48, 0x9A49, 0x9A4A, 0xBFEE, 0x9A4B,
- 0x9A4C, 0x9A4D, 0x9A4E, 0xECA6, 0x9A4F, 0x9A50,
- 0xECA7, 0xD0AA, 0x9A51, 0xC7B8, 0x9A52, 0x9A53,
- 0xB8E8, 0x9A54, 0x9A55, 0x9A56, 0x9A57, 0x9A58,
- 0x9A59, 0x9A5A, 0x9A5B, 0x9A5C, 0x9A5D, 0x9A5E,
- 0x9A5F, 0xECA8, 0x9A60, 0x9A61, 0x9A62, 0x9A63,
- 0x9A64, 0x9A65, 0x9A66, 0x9A67, 0xD6B9, 0xD5FD,
- 0xB4CB, 0xB2BD, 0xCEE4, 0xC6E7, 0x9A68, 0x9A69,
- 0xCDE1, 0x9A6A, 0x9A6B, 0x9A6C, 0x9A6D, 0x9A6E,
- 0x9A6F, 0x9A70, 0x9A71, 0x9A72, 0x9A73, 0x9A74,
- 0x9A75, 0x9A76, 0x9A77, 0xB4F5, 0x9A78, 0xCBC0,
- 0xBCDF, 0x9A79, 0x9A7A, 0x9A7B, 0x9A7C, 0xE9E2,
- 0xE9E3, 0xD1EA, 0xE9E5, 0x9A7D, 0xB4F9, 0xE9E4,
- 0x9A7E, 0xD1B3, 0xCAE2, 0xB2D0, 0x9A80, 0xE9E8,
- 0x9A81, 0x9A82, 0x9A83, 0x9A84, 0xE9E6, 0xE9E7,
- 0x9A85, 0x9A86, 0xD6B3, 0x9A87, 0x9A88, 0x9A89,
- 0xE9E9, 0xE9EA, 0x9A8A, 0x9A8B, 0x9A8C, 0x9A8D,
- 0x9A8E, 0xE9EB, 0x9A8F, 0x9A90, 0x9A91, 0x9A92,
- 0x9A93, 0x9A94, 0x9A95, 0x9A96, 0xE9EC, 0x9A97,
- 0x9A98, 0x9A99, 0x9A9A, 0x9A9B, 0x9A9C, 0x9A9D,
- 0x9A9E, 0xECAF, 0xC5B9, 0xB6CE, 0x9A9F, 0xD2F3,
- 0x9AA0, 0x9AA1, 0x9AA2, 0x9AA3, 0x9AA4, 0x9AA5,
- 0x9AA6, 0xB5EE, 0x9AA7, 0xBBD9, 0xECB1, 0x9AA8,
- 0x9AA9, 0xD2E3, 0x9AAA, 0x9AAB, 0x9AAC, 0x9AAD,
- 0x9AAE, 0xCEE3, 0x9AAF, 0xC4B8, 0x9AB0, 0xC3BF,
- 0x9AB1, 0x9AB2, 0xB6BE, 0xD8B9, 0xB1C8, 0xB1CF,
- 0xB1D1, 0xC5FE, 0x9AB3, 0xB1D0, 0x9AB4, 0xC3AB,
- 0x9AB5, 0x9AB6, 0x9AB7, 0x9AB8, 0x9AB9, 0xD5B1,
- 0x9ABA, 0x9ABB, 0x9ABC, 0x9ABD, 0x9ABE, 0x9ABF,
- 0x9AC0, 0x9AC1, 0xEBA4, 0xBAC1, 0x9AC2, 0x9AC3,
- 0x9AC4, 0xCCBA, 0x9AC5, 0x9AC6, 0x9AC7, 0xEBA5,
- 0x9AC8, 0xEBA7, 0x9AC9, 0x9ACA, 0x9ACB, 0xEBA8,
- 0x9ACC, 0x9ACD, 0x9ACE, 0xEBA6, 0x9ACF, 0x9AD0,
- 0x9AD1, 0x9AD2, 0x9AD3, 0x9AD4, 0x9AD5, 0xEBA9,
- 0xEBAB, 0xEBAA, 0x9AD6, 0x9AD7, 0x9AD8, 0x9AD9,
- 0x9ADA, 0xEBAC, 0x9ADB, 0xCACF, 0xD8B5, 0xC3F1,
- 0x9ADC, 0xC3A5, 0xC6F8, 0xEBAD, 0xC4CA, 0x9ADD,
- 0xEBAE, 0xEBAF, 0xEBB0, 0xB7D5, 0x9ADE, 0x9ADF,
- 0x9AE0, 0xB7FA, 0x9AE1, 0xEBB1, 0xC7E2, 0x9AE2,
- 0xEBB3, 0x9AE3, 0xBAA4, 0xD1F5, 0xB0B1, 0xEBB2,
- 0xEBB4, 0x9AE4, 0x9AE5, 0x9AE6, 0xB5AA, 0xC2C8,
- 0xC7E8, 0x9AE7, 0xEBB5, 0x9AE8, 0xCBAE, 0xE3DF,
- 0x9AE9, 0x9AEA, 0xD3C0, 0x9AEB, 0x9AEC, 0x9AED,
- 0x9AEE, 0xD9DB, 0x9AEF, 0x9AF0, 0xCDA1, 0xD6AD,
- 0xC7F3, 0x9AF1, 0x9AF2, 0x9AF3, 0xD9E0, 0xBBE3,
- 0x9AF4, 0xBABA, 0xE3E2, 0x9AF5, 0x9AF6, 0x9AF7,
- 0x9AF8, 0x9AF9, 0xCFAB, 0x9AFA, 0x9AFB, 0x9AFC,
- 0xE3E0, 0xC9C7, 0x9AFD, 0xBAB9, 0x9AFE, 0x9B40,
- 0x9B41, 0xD1B4, 0xE3E1, 0xC8EA, 0xB9AF, 0xBDAD,
- 0xB3D8, 0xCEDB, 0x9B42, 0x9B43, 0xCCC0, 0x9B44,
- 0x9B45, 0x9B46, 0xE3E8, 0xE3E9, 0xCDF4, 0x9B47,
- 0x9B48, 0x9B49, 0x9B4A, 0x9B4B, 0xCCAD, 0x9B4C,
- 0xBCB3, 0x9B4D, 0xE3EA, 0x9B4E, 0xE3EB, 0x9B4F,
- 0x9B50, 0xD0DA, 0x9B51, 0x9B52, 0x9B53, 0xC6FB,
- 0xB7DA, 0x9B54, 0x9B55, 0xC7DF, 0xD2CA, 0xCED6,
- 0x9B56, 0xE3E4, 0xE3EC, 0x9B57, 0xC9F2, 0xB3C1,
- 0x9B58, 0x9B59, 0xE3E7, 0x9B5A, 0x9B5B, 0xC6E3,
- 0xE3E5, 0x9B5C, 0x9B5D, 0xEDB3, 0xE3E6, 0x9B5E,
- 0x9B5F, 0x9B60, 0x9B61, 0xC9B3, 0x9B62, 0xC5E6,
- 0x9B63, 0x9B64, 0x9B65, 0xB9B5, 0x9B66, 0xC3BB,
- 0x9B67, 0xE3E3, 0xC5BD, 0xC1A4, 0xC2D9, 0xB2D7,
- 0x9B68, 0xE3ED, 0xBBA6, 0xC4AD, 0x9B69, 0xE3F0,
- 0xBEDA, 0x9B6A, 0x9B6B, 0xE3FB, 0xE3F5, 0xBAD3,
- 0x9B6C, 0x9B6D, 0x9B6E, 0x9B6F, 0xB7D0, 0xD3CD,
- 0x9B70, 0xD6CE, 0xD5D3, 0xB9C1, 0xD5B4, 0xD1D8,
- 0x9B71, 0x9B72, 0x9B73, 0x9B74, 0xD0B9, 0xC7F6,
- 0x9B75, 0x9B76, 0x9B77, 0xC8AA, 0xB2B4, 0x9B78,
- 0xC3DA, 0x9B79, 0x9B7A, 0x9B7B, 0xE3EE, 0x9B7C,
- 0x9B7D, 0xE3FC, 0xE3EF, 0xB7A8, 0xE3F7, 0xE3F4,
- 0x9B7E, 0x9B80, 0x9B81, 0xB7BA, 0x9B82, 0x9B83,
- 0xC5A2, 0x9B84, 0xE3F6, 0xC5DD, 0xB2A8, 0xC6FC,
- 0x9B85, 0xC4E0, 0x9B86, 0x9B87, 0xD7A2, 0x9B88,
- 0xC0E1, 0xE3F9, 0x9B89, 0x9B8A, 0xE3FA, 0xE3FD,
- 0xCCA9, 0xE3F3, 0x9B8B, 0xD3BE, 0x9B8C, 0xB1C3,
- 0xEDB4, 0xE3F1, 0xE3F2, 0x9B8D, 0xE3F8, 0xD0BA,
- 0xC6C3, 0xD4F3, 0xE3FE, 0x9B8E, 0x9B8F, 0xBDE0,
- 0x9B90, 0x9B91, 0xE4A7, 0x9B92, 0x9B93, 0xE4A6,
- 0x9B94, 0x9B95, 0x9B96, 0xD1F3, 0xE4A3, 0x9B97,
- 0xE4A9, 0x9B98, 0x9B99, 0x9B9A, 0xC8F7, 0x9B9B,
- 0x9B9C, 0x9B9D, 0x9B9E, 0xCFB4, 0x9B9F, 0xE4A8,
- 0xE4AE, 0xC2E5, 0x9BA0, 0x9BA1, 0xB6B4, 0x9BA2,
- 0x9BA3, 0x9BA4, 0x9BA5, 0x9BA6, 0x9BA7, 0xBDF2,
- 0x9BA8, 0xE4A2, 0x9BA9, 0x9BAA, 0xBAE9, 0xE4AA,
- 0x9BAB, 0x9BAC, 0xE4AC, 0x9BAD, 0x9BAE, 0xB6FD,
- 0xD6DE, 0xE4B2, 0x9BAF, 0xE4AD, 0x9BB0, 0x9BB1,
- 0x9BB2, 0xE4A1, 0x9BB3, 0xBBEE, 0xCDDD, 0xC7A2,
- 0xC5C9, 0x9BB4, 0x9BB5, 0xC1F7, 0x9BB6, 0xE4A4,
- 0x9BB7, 0xC7B3, 0xBDAC, 0xBDBD, 0xE4A5, 0x9BB8,
- 0xD7C7, 0xB2E2, 0x9BB9, 0xE4AB, 0xBCC3, 0xE4AF,
- 0x9BBA, 0xBBEB, 0xE4B0, 0xC5A8, 0xE4B1, 0x9BBB,
- 0x9BBC, 0x9BBD, 0x9BBE, 0xD5E3, 0xBFA3, 0x9BBF,
- 0xE4BA, 0x9BC0, 0xE4B7, 0x9BC1, 0xE4BB, 0x9BC2,
- 0x9BC3, 0xE4BD, 0x9BC4, 0x9BC5, 0xC6D6, 0x9BC6,
- 0x9BC7, 0xBAC6, 0xC0CB, 0x9BC8, 0x9BC9, 0x9BCA,
- 0xB8A1, 0xE4B4, 0x9BCB, 0x9BCC, 0x9BCD, 0x9BCE,
- 0xD4A1, 0x9BCF, 0x9BD0, 0xBAA3, 0xBDFE, 0x9BD1,
- 0x9BD2, 0x9BD3, 0xE4BC, 0x9BD4, 0x9BD5, 0x9BD6,
- 0x9BD7, 0x9BD8, 0xCDBF, 0x9BD9, 0x9BDA, 0xC4F9,
- 0x9BDB, 0x9BDC, 0xCFFB, 0xC9E6, 0x9BDD, 0x9BDE,
- 0xD3BF, 0x9BDF, 0xCFD1, 0x9BE0, 0x9BE1, 0xE4B3,
- 0x9BE2, 0xE4B8, 0xE4B9, 0xCCE9, 0x9BE3, 0x9BE4,
- 0x9BE5, 0x9BE6, 0x9BE7, 0xCCCE, 0x9BE8, 0xC0D4,
- 0xE4B5, 0xC1B0, 0xE4B6, 0xCED0, 0x9BE9, 0xBBC1,
- 0xB5D3, 0x9BEA, 0xC8F3, 0xBDA7, 0xD5C7, 0xC9AC,
- 0xB8A2, 0xE4CA, 0x9BEB, 0x9BEC, 0xE4CC, 0xD1C4,
- 0x9BED, 0x9BEE, 0xD2BA, 0x9BEF, 0x9BF0, 0xBAAD,
- 0x9BF1, 0x9BF2, 0xBAD4, 0x9BF3, 0x9BF4, 0x9BF5,
- 0x9BF6, 0x9BF7, 0x9BF8, 0xE4C3, 0xB5ED, 0x9BF9,
- 0x9BFA, 0x9BFB, 0xD7CD, 0xE4C0, 0xCFFD, 0xE4BF,
- 0x9BFC, 0x9BFD, 0x9BFE, 0xC1DC, 0xCCCA, 0x9C40,
- 0x9C41, 0x9C42, 0x9C43, 0xCAE7, 0x9C44, 0x9C45,
- 0x9C46, 0x9C47, 0xC4D7, 0x9C48, 0xCCD4, 0xE4C8,
- 0x9C49, 0x9C4A, 0x9C4B, 0xE4C7, 0xE4C1, 0x9C4C,
- 0xE4C4, 0xB5AD, 0x9C4D, 0x9C4E, 0xD3D9, 0x9C4F,
- 0xE4C6, 0x9C50, 0x9C51, 0x9C52, 0x9C53, 0xD2F9,
- 0xB4E3, 0x9C54, 0xBBB4, 0x9C55, 0x9C56, 0xC9EE,
- 0x9C57, 0xB4BE, 0x9C58, 0x9C59, 0x9C5A, 0xBBEC,
- 0x9C5B, 0xD1CD, 0x9C5C, 0xCCED, 0xEDB5, 0x9C5D,
- 0x9C5E, 0x9C5F, 0x9C60, 0x9C61, 0x9C62, 0x9C63,
- 0x9C64, 0xC7E5, 0x9C65, 0x9C66, 0x9C67, 0x9C68,
- 0xD4A8, 0x9C69, 0xE4CB, 0xD7D5, 0xE4C2, 0x9C6A,
- 0xBDA5, 0xE4C5, 0x9C6B, 0x9C6C, 0xD3E6, 0x9C6D,
- 0xE4C9, 0xC9F8, 0x9C6E, 0x9C6F, 0xE4BE, 0x9C70,
- 0x9C71, 0xD3E5, 0x9C72, 0x9C73, 0xC7FE, 0xB6C9,
- 0x9C74, 0xD4FC, 0xB2B3, 0xE4D7, 0x9C75, 0x9C76,
- 0x9C77, 0xCEC2, 0x9C78, 0xE4CD, 0x9C79, 0xCEBC,
- 0x9C7A, 0xB8DB, 0x9C7B, 0x9C7C, 0xE4D6, 0x9C7D,
- 0xBFCA, 0x9C7E, 0x9C80, 0x9C81, 0xD3CE, 0x9C82,
- 0xC3EC, 0x9C83, 0x9C84, 0x9C85, 0x9C86, 0x9C87,
- 0x9C88, 0x9C89, 0x9C8A, 0xC5C8, 0xE4D8, 0x9C8B,
- 0x9C8C, 0x9C8D, 0x9C8E, 0x9C8F, 0x9C90, 0x9C91,
- 0x9C92, 0xCDC4, 0xE4CF, 0x9C93, 0x9C94, 0x9C95,
- 0x9C96, 0xE4D4, 0xE4D5, 0x9C97, 0xBAFE, 0x9C98,
- 0xCFE6, 0x9C99, 0x9C9A, 0xD5BF, 0x9C9B, 0x9C9C,
- 0x9C9D, 0xE4D2, 0x9C9E, 0x9C9F, 0x9CA0, 0x9CA1,
- 0x9CA2, 0x9CA3, 0x9CA4, 0x9CA5, 0x9CA6, 0x9CA7,
- 0x9CA8, 0xE4D0, 0x9CA9, 0x9CAA, 0xE4CE, 0x9CAB,
- 0x9CAC, 0x9CAD, 0x9CAE, 0x9CAF, 0x9CB0, 0x9CB1,
- 0x9CB2, 0x9CB3, 0x9CB4, 0x9CB5, 0x9CB6, 0x9CB7,
- 0x9CB8, 0x9CB9, 0xCDE5, 0xCAAA, 0x9CBA, 0x9CBB,
- 0x9CBC, 0xC0A3, 0x9CBD, 0xBDA6, 0xE4D3, 0x9CBE,
- 0x9CBF, 0xB8C8, 0x9CC0, 0x9CC1, 0x9CC2, 0x9CC3,
- 0x9CC4, 0xE4E7, 0xD4B4, 0x9CC5, 0x9CC6, 0x9CC7,
- 0x9CC8, 0x9CC9, 0x9CCA, 0x9CCB, 0xE4DB, 0x9CCC,
- 0x9CCD, 0x9CCE, 0xC1EF, 0x9CCF, 0x9CD0, 0xE4E9,
- 0x9CD1, 0x9CD2, 0xD2E7, 0x9CD3, 0x9CD4, 0xE4DF,
- 0x9CD5, 0xE4E0, 0x9CD6, 0x9CD7, 0xCFAA, 0x9CD8,
- 0x9CD9, 0x9CDA, 0x9CDB, 0xCBDD, 0x9CDC, 0xE4DA,
- 0xE4D1, 0x9CDD, 0xE4E5, 0x9CDE, 0xC8DC, 0xE4E3,
- 0x9CDF, 0x9CE0, 0xC4E7, 0xE4E2, 0x9CE1, 0xE4E1,
- 0x9CE2, 0x9CE3, 0x9CE4, 0xB3FC, 0xE4E8, 0x9CE5,
- 0x9CE6, 0x9CE7, 0x9CE8, 0xB5E1, 0x9CE9, 0x9CEA,
- 0x9CEB, 0xD7CC, 0x9CEC, 0x9CED, 0x9CEE, 0xE4E6,
- 0x9CEF, 0xBBAC, 0x9CF0, 0xD7D2, 0xCCCF, 0xEBF8,
- 0x9CF1, 0xE4E4, 0x9CF2, 0x9CF3, 0xB9F6, 0x9CF4,
- 0x9CF5, 0x9CF6, 0xD6CD, 0xE4D9, 0xE4DC, 0xC2FA,
- 0xE4DE, 0x9CF7, 0xC2CB, 0xC0C4, 0xC2D0, 0x9CF8,
- 0xB1F5, 0xCCB2, 0x9CF9, 0x9CFA, 0x9CFB, 0x9CFC,
- 0x9CFD, 0x9CFE, 0x9D40, 0x9D41, 0x9D42, 0x9D43,
- 0xB5CE, 0x9D44, 0x9D45, 0x9D46, 0x9D47, 0xE4EF,
- 0x9D48, 0x9D49, 0x9D4A, 0x9D4B, 0x9D4C, 0x9D4D,
- 0x9D4E, 0x9D4F, 0xC6AF, 0x9D50, 0x9D51, 0x9D52,
- 0xC6E1, 0x9D53, 0x9D54, 0xE4F5, 0x9D55, 0x9D56,
- 0x9D57, 0x9D58, 0x9D59, 0xC2A9, 0x9D5A, 0x9D5B,
- 0x9D5C, 0xC0EC, 0xD1DD, 0xE4EE, 0x9D5D, 0x9D5E,
- 0x9D5F, 0x9D60, 0x9D61, 0x9D62, 0x9D63, 0x9D64,
- 0x9D65, 0x9D66, 0xC4AE, 0x9D67, 0x9D68, 0x9D69,
- 0xE4ED, 0x9D6A, 0x9D6B, 0x9D6C, 0x9D6D, 0xE4F6,
- 0xE4F4, 0xC2FE, 0x9D6E, 0xE4DD, 0x9D6F, 0xE4F0,
- 0x9D70, 0xCAFE, 0x9D71, 0xD5C4, 0x9D72, 0x9D73,
- 0xE4F1, 0x9D74, 0x9D75, 0x9D76, 0x9D77, 0x9D78,
- 0x9D79, 0x9D7A, 0xD1FA, 0x9D7B, 0x9D7C, 0x9D7D,
- 0x9D7E, 0x9D80, 0x9D81, 0x9D82, 0xE4EB, 0xE4EC,
- 0x9D83, 0x9D84, 0x9D85, 0xE4F2, 0x9D86, 0xCEAB,
- 0x9D87, 0x9D88, 0x9D89, 0x9D8A, 0x9D8B, 0x9D8C,
- 0x9D8D, 0x9D8E, 0x9D8F, 0x9D90, 0xC5CB, 0x9D91,
- 0x9D92, 0x9D93, 0xC7B1, 0x9D94, 0xC2BA, 0x9D95,
- 0x9D96, 0x9D97, 0xE4EA, 0x9D98, 0x9D99, 0x9D9A,
- 0xC1CA, 0x9D9B, 0x9D9C, 0x9D9D, 0x9D9E, 0x9D9F,
- 0x9DA0, 0xCCB6, 0xB3B1, 0x9DA1, 0x9DA2, 0x9DA3,
- 0xE4FB, 0x9DA4, 0xE4F3, 0x9DA5, 0x9DA6, 0x9DA7,
- 0xE4FA, 0x9DA8, 0xE4FD, 0x9DA9, 0xE4FC, 0x9DAA,
- 0x9DAB, 0x9DAC, 0x9DAD, 0x9DAE, 0x9DAF, 0x9DB0,
- 0xB3CE, 0x9DB1, 0x9DB2, 0x9DB3, 0xB3BA, 0xE4F7,
- 0x9DB4, 0x9DB5, 0xE4F9, 0xE4F8, 0xC5EC, 0x9DB6,
- 0x9DB7, 0x9DB8, 0x9DB9, 0x9DBA, 0x9DBB, 0x9DBC,
- 0x9DBD, 0x9DBE, 0x9DBF, 0x9DC0, 0x9DC1, 0x9DC2,
- 0xC0BD, 0x9DC3, 0x9DC4, 0x9DC5, 0x9DC6, 0xD4E8,
- 0x9DC7, 0x9DC8, 0x9DC9, 0x9DCA, 0x9DCB, 0xE5A2,
- 0x9DCC, 0x9DCD, 0x9DCE, 0x9DCF, 0x9DD0, 0x9DD1,
- 0x9DD2, 0x9DD3, 0x9DD4, 0x9DD5, 0x9DD6, 0xB0C4,
- 0x9DD7, 0x9DD8, 0xE5A4, 0x9DD9, 0x9DDA, 0xE5A3,
- 0x9DDB, 0x9DDC, 0x9DDD, 0x9DDE, 0x9DDF, 0x9DE0,
- 0xBCA4, 0x9DE1, 0xE5A5, 0x9DE2, 0x9DE3, 0x9DE4,
- 0x9DE5, 0x9DE6, 0x9DE7, 0xE5A1, 0x9DE8, 0x9DE9,
- 0x9DEA, 0x9DEB, 0x9DEC, 0x9DED, 0x9DEE, 0xE4FE,
- 0xB1F4, 0x9DEF, 0x9DF0, 0x9DF1, 0x9DF2, 0x9DF3,
- 0x9DF4, 0x9DF5, 0x9DF6, 0x9DF7, 0x9DF8, 0x9DF9,
- 0xE5A8, 0x9DFA, 0xE5A9, 0xE5A6, 0x9DFB, 0x9DFC,
- 0x9DFD, 0x9DFE, 0x9E40, 0x9E41, 0x9E42, 0x9E43,
- 0x9E44, 0x9E45, 0x9E46, 0x9E47, 0xE5A7, 0xE5AA,
- 0x9E48, 0x9E49, 0x9E4A, 0x9E4B, 0x9E4C, 0x9E4D,
- 0x9E4E, 0x9E4F, 0x9E50, 0x9E51, 0x9E52, 0x9E53,
- 0x9E54, 0x9E55, 0x9E56, 0x9E57, 0x9E58, 0x9E59,
- 0x9E5A, 0x9E5B, 0x9E5C, 0x9E5D, 0x9E5E, 0x9E5F,
- 0x9E60, 0x9E61, 0x9E62, 0x9E63, 0x9E64, 0x9E65,
- 0x9E66, 0x9E67, 0x9E68, 0xC6D9, 0x9E69, 0x9E6A,
- 0x9E6B, 0x9E6C, 0x9E6D, 0x9E6E, 0x9E6F, 0x9E70,
- 0xE5AB, 0xE5AD, 0x9E71, 0x9E72, 0x9E73, 0x9E74,
- 0x9E75, 0x9E76, 0x9E77, 0xE5AC, 0x9E78, 0x9E79,
- 0x9E7A, 0x9E7B, 0x9E7C, 0x9E7D, 0x9E7E, 0x9E80,
- 0x9E81, 0x9E82, 0x9E83, 0x9E84, 0x9E85, 0x9E86,
- 0x9E87, 0x9E88, 0x9E89, 0xE5AF, 0x9E8A, 0x9E8B,
- 0x9E8C, 0xE5AE, 0x9E8D, 0x9E8E, 0x9E8F, 0x9E90,
- 0x9E91, 0x9E92, 0x9E93, 0x9E94, 0x9E95, 0x9E96,
- 0x9E97, 0x9E98, 0x9E99, 0x9E9A, 0x9E9B, 0x9E9C,
- 0x9E9D, 0x9E9E, 0xB9E0, 0x9E9F, 0x9EA0, 0xE5B0,
- 0x9EA1, 0x9EA2, 0x9EA3, 0x9EA4, 0x9EA5, 0x9EA6,
- 0x9EA7, 0x9EA8, 0x9EA9, 0x9EAA, 0x9EAB, 0x9EAC,
- 0x9EAD, 0x9EAE, 0xE5B1, 0x9EAF, 0x9EB0, 0x9EB1,
- 0x9EB2, 0x9EB3, 0x9EB4, 0x9EB5, 0x9EB6, 0x9EB7,
- 0x9EB8, 0x9EB9, 0x9EBA, 0xBBF0, 0xECE1, 0xC3F0,
- 0x9EBB, 0xB5C6, 0xBBD2, 0x9EBC, 0x9EBD, 0x9EBE,
- 0x9EBF, 0xC1E9, 0xD4EE, 0x9EC0, 0xBEC4, 0x9EC1,
- 0x9EC2, 0x9EC3, 0xD7C6, 0x9EC4, 0xD4D6, 0xB2D3,
- 0xECBE, 0x9EC5, 0x9EC6, 0x9EC7, 0x9EC8, 0xEAC1,
- 0x9EC9, 0x9ECA, 0x9ECB, 0xC2AF, 0xB4B6, 0x9ECC,
- 0x9ECD, 0x9ECE, 0xD1D7, 0x9ECF, 0x9ED0, 0x9ED1,
- 0xB3B4, 0x9ED2, 0xC8B2, 0xBFBB, 0xECC0, 0x9ED3,
- 0x9ED4, 0xD6CB, 0x9ED5, 0x9ED6, 0xECBF, 0xECC1,
- 0x9ED7, 0x9ED8, 0x9ED9, 0x9EDA, 0x9EDB, 0x9EDC,
- 0x9EDD, 0x9EDE, 0x9EDF, 0x9EE0, 0x9EE1, 0x9EE2,
- 0x9EE3, 0xECC5, 0xBEE6, 0xCCBF, 0xC5DA, 0xBEBC,
- 0x9EE4, 0xECC6, 0x9EE5, 0xB1FE, 0x9EE6, 0x9EE7,
- 0x9EE8, 0xECC4, 0xD5A8, 0xB5E3, 0x9EE9, 0xECC2,
- 0xC1B6, 0xB3E3, 0x9EEA, 0x9EEB, 0xECC3, 0xCBB8,
- 0xC0C3, 0xCCFE, 0x9EEC, 0x9EED, 0x9EEE, 0x9EEF,
- 0xC1D2, 0x9EF0, 0xECC8, 0x9EF1, 0x9EF2, 0x9EF3,
- 0x9EF4, 0x9EF5, 0x9EF6, 0x9EF7, 0x9EF8, 0x9EF9,
- 0x9EFA, 0x9EFB, 0x9EFC, 0x9EFD, 0xBAE6, 0xC0D3,
- 0x9EFE, 0xD6F2, 0x9F40, 0x9F41, 0x9F42, 0xD1CC,
- 0x9F43, 0x9F44, 0x9F45, 0x9F46, 0xBFBE, 0x9F47,
- 0xB7B3, 0xC9D5, 0xECC7, 0xBBE2, 0x9F48, 0xCCCC,
- 0xBDFD, 0xC8C8, 0x9F49, 0xCFA9, 0x9F4A, 0x9F4B,
- 0x9F4C, 0x9F4D, 0x9F4E, 0x9F4F, 0x9F50, 0xCDE9,
- 0x9F51, 0xC5EB, 0x9F52, 0x9F53, 0x9F54, 0xB7E9,
- 0x9F55, 0x9F56, 0x9F57, 0x9F58, 0x9F59, 0x9F5A,
- 0x9F5B, 0x9F5C, 0x9F5D, 0x9F5E, 0x9F5F, 0xD1C9,
- 0xBAB8, 0x9F60, 0x9F61, 0x9F62, 0x9F63, 0x9F64,
- 0xECC9, 0x9F65, 0x9F66, 0xECCA, 0x9F67, 0xBBC0,
- 0xECCB, 0x9F68, 0xECE2, 0xB1BA, 0xB7D9, 0x9F69,
- 0x9F6A, 0x9F6B, 0x9F6C, 0x9F6D, 0x9F6E, 0x9F6F,
- 0x9F70, 0x9F71, 0x9F72, 0x9F73, 0xBDB9, 0x9F74,
- 0x9F75, 0x9F76, 0x9F77, 0x9F78, 0x9F79, 0x9F7A,
- 0x9F7B, 0xECCC, 0xD1E6, 0xECCD, 0x9F7C, 0x9F7D,
- 0x9F7E, 0x9F80, 0xC8BB, 0x9F81, 0x9F82, 0x9F83,
- 0x9F84, 0x9F85, 0x9F86, 0x9F87, 0x9F88, 0x9F89,
- 0x9F8A, 0x9F8B, 0x9F8C, 0x9F8D, 0x9F8E, 0xECD1,
- 0x9F8F, 0x9F90, 0x9F91, 0x9F92, 0xECD3, 0x9F93,
- 0xBBCD, 0x9F94, 0xBCE5, 0x9F95, 0x9F96, 0x9F97,
- 0x9F98, 0x9F99, 0x9F9A, 0x9F9B, 0x9F9C, 0x9F9D,
- 0x9F9E, 0x9F9F, 0x9FA0, 0x9FA1, 0xECCF, 0x9FA2,
- 0xC9B7, 0x9FA3, 0x9FA4, 0x9FA5, 0x9FA6, 0x9FA7,
- 0xC3BA, 0x9FA8, 0xECE3, 0xD5D5, 0xECD0, 0x9FA9,
- 0x9FAA, 0x9FAB, 0x9FAC, 0x9FAD, 0xD6F3, 0x9FAE,
- 0x9FAF, 0x9FB0, 0xECD2, 0xECCE, 0x9FB1, 0x9FB2,
- 0x9FB3, 0x9FB4, 0xECD4, 0x9FB5, 0xECD5, 0x9FB6,
- 0x9FB7, 0xC9BF, 0x9FB8, 0x9FB9, 0x9FBA, 0x9FBB,
- 0x9FBC, 0x9FBD, 0xCFA8, 0x9FBE, 0x9FBF, 0x9FC0,
- 0x9FC1, 0x9FC2, 0xD0DC, 0x9FC3, 0x9FC4, 0x9FC5,
- 0x9FC6, 0xD1AC, 0x9FC7, 0x9FC8, 0x9FC9, 0x9FCA,
- 0xC8DB, 0x9FCB, 0x9FCC, 0x9FCD, 0xECD6, 0xCEF5,
- 0x9FCE, 0x9FCF, 0x9FD0, 0x9FD1, 0x9FD2, 0xCAEC,
- 0xECDA, 0x9FD3, 0x9FD4, 0x9FD5, 0x9FD6, 0x9FD7,
- 0x9FD8, 0x9FD9, 0xECD9, 0x9FDA, 0x9FDB, 0x9FDC,
- 0xB0BE, 0x9FDD, 0x9FDE, 0x9FDF, 0x9FE0, 0x9FE1,
- 0x9FE2, 0xECD7, 0x9FE3, 0xECD8, 0x9FE4, 0x9FE5,
- 0x9FE6, 0xECE4, 0x9FE7, 0x9FE8, 0x9FE9, 0x9FEA,
- 0x9FEB, 0x9FEC, 0x9FED, 0x9FEE, 0x9FEF, 0xC8BC,
- 0x9FF0, 0x9FF1, 0x9FF2, 0x9FF3, 0x9FF4, 0x9FF5,
- 0x9FF6, 0x9FF7, 0x9FF8, 0x9FF9, 0xC1C7, 0x9FFA,
- 0x9FFB, 0x9FFC, 0x9FFD, 0x9FFE, 0xECDC, 0xD1E0,
- 0xA040, 0xA041, 0xA042, 0xA043, 0xA044, 0xA045,
- 0xA046, 0xA047, 0xA048, 0xA049, 0xECDB, 0xA04A,
- 0xA04B, 0xA04C, 0xA04D, 0xD4EF, 0xA04E, 0xECDD,
- 0xA04F, 0xA050, 0xA051, 0xA052, 0xA053, 0xA054,
- 0xDBC6, 0xA055, 0xA056, 0xA057, 0xA058, 0xA059,
- 0xA05A, 0xA05B, 0xA05C, 0xA05D, 0xA05E, 0xECDE,
- 0xA05F, 0xA060, 0xA061, 0xA062, 0xA063, 0xA064,
- 0xA065, 0xA066, 0xA067, 0xA068, 0xA069, 0xA06A,
- 0xB1AC, 0xA06B, 0xA06C, 0xA06D, 0xA06E, 0xA06F,
- 0xA070, 0xA071, 0xA072, 0xA073, 0xA074, 0xA075,
- 0xA076, 0xA077, 0xA078, 0xA079, 0xA07A, 0xA07B,
- 0xA07C, 0xA07D, 0xA07E, 0xA080, 0xA081, 0xECDF,
- 0xA082, 0xA083, 0xA084, 0xA085, 0xA086, 0xA087,
- 0xA088, 0xA089, 0xA08A, 0xA08B, 0xECE0, 0xA08C,
- 0xD7A6, 0xA08D, 0xC5C0, 0xA08E, 0xA08F, 0xA090,
- 0xEBBC, 0xB0AE, 0xA091, 0xA092, 0xA093, 0xBEF4,
- 0xB8B8, 0xD2AF, 0xB0D6, 0xB5F9, 0xA094, 0xD8B3,
- 0xA095, 0xCBAC, 0xA096, 0xE3DD, 0xA097, 0xA098,
- 0xA099, 0xA09A, 0xA09B, 0xA09C, 0xA09D, 0xC6AC,
- 0xB0E6, 0xA09E, 0xA09F, 0xA0A0, 0xC5C6, 0xEBB9,
- 0xA0A1, 0xA0A2, 0xA0A3, 0xA0A4, 0xEBBA, 0xA0A5,
- 0xA0A6, 0xA0A7, 0xEBBB, 0xA0A8, 0xA0A9, 0xD1C0,
- 0xA0AA, 0xC5A3, 0xA0AB, 0xEAF2, 0xA0AC, 0xC4B2,
- 0xA0AD, 0xC4B5, 0xC0CE, 0xA0AE, 0xA0AF, 0xA0B0,
- 0xEAF3, 0xC4C1, 0xA0B1, 0xCEEF, 0xA0B2, 0xA0B3,
- 0xA0B4, 0xA0B5, 0xEAF0, 0xEAF4, 0xA0B6, 0xA0B7,
- 0xC9FC, 0xA0B8, 0xA0B9, 0xC7A3, 0xA0BA, 0xA0BB,
- 0xA0BC, 0xCCD8, 0xCEFE, 0xA0BD, 0xA0BE, 0xA0BF,
- 0xEAF5, 0xEAF6, 0xCFAC, 0xC0E7, 0xA0C0, 0xA0C1,
- 0xEAF7, 0xA0C2, 0xA0C3, 0xA0C4, 0xA0C5, 0xA0C6,
- 0xB6BF, 0xEAF8, 0xA0C7, 0xEAF9, 0xA0C8, 0xEAFA,
- 0xA0C9, 0xA0CA, 0xEAFB, 0xA0CB, 0xA0CC, 0xA0CD,
- 0xA0CE, 0xA0CF, 0xA0D0, 0xA0D1, 0xA0D2, 0xA0D3,
- 0xA0D4, 0xA0D5, 0xA0D6, 0xEAF1, 0xA0D7, 0xA0D8,
- 0xA0D9, 0xA0DA, 0xA0DB, 0xA0DC, 0xA0DD, 0xA0DE,
- 0xA0DF, 0xA0E0, 0xA0E1, 0xA0E2, 0xC8AE, 0xE1EB,
- 0xA0E3, 0xB7B8, 0xE1EC, 0xA0E4, 0xA0E5, 0xA0E6,
- 0xE1ED, 0xA0E7, 0xD7B4, 0xE1EE, 0xE1EF, 0xD3CC,
- 0xA0E8, 0xA0E9, 0xA0EA, 0xA0EB, 0xA0EC, 0xA0ED,
- 0xA0EE, 0xE1F1, 0xBFF1, 0xE1F0, 0xB5D2, 0xA0EF,
- 0xA0F0, 0xA0F1, 0xB1B7, 0xA0F2, 0xA0F3, 0xA0F4,
- 0xA0F5, 0xE1F3, 0xE1F2, 0xA0F6, 0xBAFC, 0xA0F7,
- 0xE1F4, 0xA0F8, 0xA0F9, 0xA0FA, 0xA0FB, 0xB9B7,
- 0xA0FC, 0xBED1, 0xA0FD, 0xA0FE, 0xAA40, 0xAA41,
- 0xC4FC, 0xAA42, 0xBADD, 0xBDC6, 0xAA43, 0xAA44,
- 0xAA45, 0xAA46, 0xAA47, 0xAA48, 0xE1F5, 0xE1F7,
- 0xAA49, 0xAA4A, 0xB6C0, 0xCFC1, 0xCAA8, 0xE1F6,
- 0xD5F8, 0xD3FC, 0xE1F8, 0xE1FC, 0xE1F9, 0xAA4B,
- 0xAA4C, 0xE1FA, 0xC0EA, 0xAA4D, 0xE1FE, 0xE2A1,
- 0xC0C7, 0xAA4E, 0xAA4F, 0xAA50, 0xAA51, 0xE1FB,
- 0xAA52, 0xE1FD, 0xAA53, 0xAA54, 0xAA55, 0xAA56,
- 0xAA57, 0xAA58, 0xE2A5, 0xAA59, 0xAA5A, 0xAA5B,
- 0xC1D4, 0xAA5C, 0xAA5D, 0xAA5E, 0xAA5F, 0xE2A3,
- 0xAA60, 0xE2A8, 0xB2FE, 0xE2A2, 0xAA61, 0xAA62,
- 0xAA63, 0xC3CD, 0xB2C2, 0xE2A7, 0xE2A6, 0xAA64,
- 0xAA65, 0xE2A4, 0xE2A9, 0xAA66, 0xAA67, 0xE2AB,
- 0xAA68, 0xAA69, 0xAA6A, 0xD0C9, 0xD6ED, 0xC3A8,
- 0xE2AC, 0xAA6B, 0xCFD7, 0xAA6C, 0xAA6D, 0xE2AE,
- 0xAA6E, 0xAA6F, 0xBAEF, 0xAA70, 0xAA71, 0xE9E0,
- 0xE2AD, 0xE2AA, 0xAA72, 0xAA73, 0xAA74, 0xAA75,
- 0xBBAB, 0xD4B3, 0xAA76, 0xAA77, 0xAA78, 0xAA79,
- 0xAA7A, 0xAA7B, 0xAA7C, 0xAA7D, 0xAA7E, 0xAA80,
- 0xAA81, 0xAA82, 0xAA83, 0xE2B0, 0xAA84, 0xAA85,
- 0xE2AF, 0xAA86, 0xE9E1, 0xAA87, 0xAA88, 0xAA89,
- 0xAA8A, 0xE2B1, 0xAA8B, 0xAA8C, 0xAA8D, 0xAA8E,
- 0xAA8F, 0xAA90, 0xAA91, 0xAA92, 0xE2B2, 0xAA93,
- 0xAA94, 0xAA95, 0xAA96, 0xAA97, 0xAA98, 0xAA99,
- 0xAA9A, 0xAA9B, 0xAA9C, 0xAA9D, 0xE2B3, 0xCCA1,
- 0xAA9E, 0xE2B4, 0xAA9F, 0xAAA0, 0xAB40, 0xAB41,
- 0xAB42, 0xAB43, 0xAB44, 0xAB45, 0xAB46, 0xAB47,
- 0xAB48, 0xAB49, 0xAB4A, 0xAB4B, 0xE2B5, 0xAB4C,
- 0xAB4D, 0xAB4E, 0xAB4F, 0xAB50, 0xD0FE, 0xAB51,
- 0xAB52, 0xC2CA, 0xAB53, 0xD3F1, 0xAB54, 0xCDF5,
- 0xAB55, 0xAB56, 0xE7E0, 0xAB57, 0xAB58, 0xE7E1,
- 0xAB59, 0xAB5A, 0xAB5B, 0xAB5C, 0xBEC1, 0xAB5D,
- 0xAB5E, 0xAB5F, 0xAB60, 0xC2EA, 0xAB61, 0xAB62,
- 0xAB63, 0xE7E4, 0xAB64, 0xAB65, 0xE7E3, 0xAB66,
- 0xAB67, 0xAB68, 0xAB69, 0xAB6A, 0xAB6B, 0xCDE6,
- 0xAB6C, 0xC3B5, 0xAB6D, 0xAB6E, 0xE7E2, 0xBBB7,
- 0xCFD6, 0xAB6F, 0xC1E1, 0xE7E9, 0xAB70, 0xAB71,
- 0xAB72, 0xE7E8, 0xAB73, 0xAB74, 0xE7F4, 0xB2A3,
- 0xAB75, 0xAB76, 0xAB77, 0xAB78, 0xE7EA, 0xAB79,
- 0xE7E6, 0xAB7A, 0xAB7B, 0xAB7C, 0xAB7D, 0xAB7E,
- 0xE7EC, 0xE7EB, 0xC9BA, 0xAB80, 0xAB81, 0xD5E4,
- 0xAB82, 0xE7E5, 0xB7A9, 0xE7E7, 0xAB83, 0xAB84,
- 0xAB85, 0xAB86, 0xAB87, 0xAB88, 0xAB89, 0xE7EE,
- 0xAB8A, 0xAB8B, 0xAB8C, 0xAB8D, 0xE7F3, 0xAB8E,
- 0xD6E9, 0xAB8F, 0xAB90, 0xAB91, 0xAB92, 0xE7ED,
- 0xAB93, 0xE7F2, 0xAB94, 0xE7F1, 0xAB95, 0xAB96,
- 0xAB97, 0xB0E0, 0xAB98, 0xAB99, 0xAB9A, 0xAB9B,
- 0xE7F5, 0xAB9C, 0xAB9D, 0xAB9E, 0xAB9F, 0xABA0,
- 0xAC40, 0xAC41, 0xAC42, 0xAC43, 0xAC44, 0xAC45,
- 0xAC46, 0xAC47, 0xAC48, 0xAC49, 0xAC4A, 0xC7F2,
- 0xAC4B, 0xC0C5, 0xC0ED, 0xAC4C, 0xAC4D, 0xC1F0,
- 0xE7F0, 0xAC4E, 0xAC4F, 0xAC50, 0xAC51, 0xE7F6,
- 0xCBF6, 0xAC52, 0xAC53, 0xAC54, 0xAC55, 0xAC56,
- 0xAC57, 0xAC58, 0xAC59, 0xAC5A, 0xE8A2, 0xE8A1,
- 0xAC5B, 0xAC5C, 0xAC5D, 0xAC5E, 0xAC5F, 0xAC60,
- 0xD7C1, 0xAC61, 0xAC62, 0xE7FA, 0xE7F9, 0xAC63,
- 0xE7FB, 0xAC64, 0xE7F7, 0xAC65, 0xE7FE, 0xAC66,
- 0xE7FD, 0xAC67, 0xE7FC, 0xAC68, 0xAC69, 0xC1D5,
- 0xC7D9, 0xC5FD, 0xC5C3, 0xAC6A, 0xAC6B, 0xAC6C,
- 0xAC6D, 0xAC6E, 0xC7ED, 0xAC6F, 0xAC70, 0xAC71,
- 0xAC72, 0xE8A3, 0xAC73, 0xAC74, 0xAC75, 0xAC76,
- 0xAC77, 0xAC78, 0xAC79, 0xAC7A, 0xAC7B, 0xAC7C,
- 0xAC7D, 0xAC7E, 0xAC80, 0xAC81, 0xAC82, 0xAC83,
- 0xAC84, 0xAC85, 0xAC86, 0xE8A6, 0xAC87, 0xE8A5,
- 0xAC88, 0xE8A7, 0xBAF7, 0xE7F8, 0xE8A4, 0xAC89,
- 0xC8F0, 0xC9AA, 0xAC8A, 0xAC8B, 0xAC8C, 0xAC8D,
- 0xAC8E, 0xAC8F, 0xAC90, 0xAC91, 0xAC92, 0xAC93,
- 0xAC94, 0xAC95, 0xAC96, 0xE8A9, 0xAC97, 0xAC98,
- 0xB9E5, 0xAC99, 0xAC9A, 0xAC9B, 0xAC9C, 0xAC9D,
- 0xD1FE, 0xE8A8, 0xAC9E, 0xAC9F, 0xACA0, 0xAD40,
- 0xAD41, 0xAD42, 0xE8AA, 0xAD43, 0xE8AD, 0xE8AE,
- 0xAD44, 0xC1A7, 0xAD45, 0xAD46, 0xAD47, 0xE8AF,
- 0xAD48, 0xAD49, 0xAD4A, 0xE8B0, 0xAD4B, 0xAD4C,
- 0xE8AC, 0xAD4D, 0xE8B4, 0xAD4E, 0xAD4F, 0xAD50,
- 0xAD51, 0xAD52, 0xAD53, 0xAD54, 0xAD55, 0xAD56,
- 0xAD57, 0xAD58, 0xE8AB, 0xAD59, 0xE8B1, 0xAD5A,
- 0xAD5B, 0xAD5C, 0xAD5D, 0xAD5E, 0xAD5F, 0xAD60,
- 0xAD61, 0xE8B5, 0xE8B2, 0xE8B3, 0xAD62, 0xAD63,
- 0xAD64, 0xAD65, 0xAD66, 0xAD67, 0xAD68, 0xAD69,
- 0xAD6A, 0xAD6B, 0xAD6C, 0xAD6D, 0xAD6E, 0xAD6F,
- 0xAD70, 0xAD71, 0xE8B7, 0xAD72, 0xAD73, 0xAD74,
- 0xAD75, 0xAD76, 0xAD77, 0xAD78, 0xAD79, 0xAD7A,
- 0xAD7B, 0xAD7C, 0xAD7D, 0xAD7E, 0xAD80, 0xAD81,
- 0xAD82, 0xAD83, 0xAD84, 0xAD85, 0xAD86, 0xAD87,
- 0xAD88, 0xAD89, 0xE8B6, 0xAD8A, 0xAD8B, 0xAD8C,
- 0xAD8D, 0xAD8E, 0xAD8F, 0xAD90, 0xAD91, 0xAD92,
- 0xB9CF, 0xAD93, 0xF0AC, 0xAD94, 0xF0AD, 0xAD95,
- 0xC6B0, 0xB0EA, 0xC8BF, 0xAD96, 0xCDDF, 0xAD97,
- 0xAD98, 0xAD99, 0xAD9A, 0xAD9B, 0xAD9C, 0xAD9D,
- 0xCECD, 0xEAB1, 0xAD9E, 0xAD9F, 0xADA0, 0xAE40,
- 0xEAB2, 0xAE41, 0xC6BF, 0xB4C9, 0xAE42, 0xAE43,
- 0xAE44, 0xAE45, 0xAE46, 0xAE47, 0xAE48, 0xEAB3,
- 0xAE49, 0xAE4A, 0xAE4B, 0xAE4C, 0xD5E7, 0xAE4D,
- 0xAE4E, 0xAE4F, 0xAE50, 0xAE51, 0xAE52, 0xAE53,
- 0xAE54, 0xDDF9, 0xAE55, 0xEAB4, 0xAE56, 0xEAB5,
- 0xAE57, 0xEAB6, 0xAE58, 0xAE59, 0xAE5A, 0xAE5B,
- 0xB8CA, 0xDFB0, 0xC9F5, 0xAE5C, 0xCCF0, 0xAE5D,
- 0xAE5E, 0xC9FA, 0xAE5F, 0xAE60, 0xAE61, 0xAE62,
- 0xAE63, 0xC9FB, 0xAE64, 0xAE65, 0xD3C3, 0xCBA6,
- 0xAE66, 0xB8A6, 0xF0AE, 0xB1C2, 0xAE67, 0xE5B8,
- 0xCCEF, 0xD3C9, 0xBCD7, 0xC9EA, 0xAE68, 0xB5E7,
- 0xAE69, 0xC4D0, 0xB5E9, 0xAE6A, 0xEEAE, 0xBBAD,
- 0xAE6B, 0xAE6C, 0xE7DE, 0xAE6D, 0xEEAF, 0xAE6E,
- 0xAE6F, 0xAE70, 0xAE71, 0xB3A9, 0xAE72, 0xAE73,
- 0xEEB2, 0xAE74, 0xAE75, 0xEEB1, 0xBDE7, 0xAE76,
- 0xEEB0, 0xCEB7, 0xAE77, 0xAE78, 0xAE79, 0xAE7A,
- 0xC5CF, 0xAE7B, 0xAE7C, 0xAE7D, 0xAE7E, 0xC1F4,
- 0xDBCE, 0xEEB3, 0xD0F3, 0xAE80, 0xAE81, 0xAE82,
- 0xAE83, 0xAE84, 0xAE85, 0xAE86, 0xAE87, 0xC2D4,
- 0xC6E8, 0xAE88, 0xAE89, 0xAE8A, 0xB7AC, 0xAE8B,
- 0xAE8C, 0xAE8D, 0xAE8E, 0xAE8F, 0xAE90, 0xAE91,
- 0xEEB4, 0xAE92, 0xB3EB, 0xAE93, 0xAE94, 0xAE95,
- 0xBBFB, 0xEEB5, 0xAE96, 0xAE97, 0xAE98, 0xAE99,
- 0xAE9A, 0xE7DC, 0xAE9B, 0xAE9C, 0xAE9D, 0xEEB6,
- 0xAE9E, 0xAE9F, 0xBDAE, 0xAEA0, 0xAF40, 0xAF41,
- 0xAF42, 0xF1E2, 0xAF43, 0xAF44, 0xAF45, 0xCAE8,
- 0xAF46, 0xD2C9, 0xF0DA, 0xAF47, 0xF0DB, 0xAF48,
- 0xF0DC, 0xC1C6, 0xAF49, 0xB8ED, 0xBECE, 0xAF4A,
- 0xAF4B, 0xF0DE, 0xAF4C, 0xC5B1, 0xF0DD, 0xD1F1,
- 0xAF4D, 0xF0E0, 0xB0CC, 0xBDEA, 0xAF4E, 0xAF4F,
- 0xAF50, 0xAF51, 0xAF52, 0xD2DF, 0xF0DF, 0xAF53,
- 0xB4AF, 0xB7E8, 0xF0E6, 0xF0E5, 0xC6A3, 0xF0E1,
- 0xF0E2, 0xB4C3, 0xAF54, 0xAF55, 0xF0E3, 0xD5EE,
- 0xAF56, 0xAF57, 0xCCDB, 0xBED2, 0xBCB2, 0xAF58,
- 0xAF59, 0xAF5A, 0xF0E8, 0xF0E7, 0xF0E4, 0xB2A1,
- 0xAF5B, 0xD6A2, 0xD3B8, 0xBEB7, 0xC8AC, 0xAF5C,
- 0xAF5D, 0xF0EA, 0xAF5E, 0xAF5F, 0xAF60, 0xAF61,
- 0xD1F7, 0xAF62, 0xD6CC, 0xBADB, 0xF0E9, 0xAF63,
- 0xB6BB, 0xAF64, 0xAF65, 0xCDB4, 0xAF66, 0xAF67,
- 0xC6A6, 0xAF68, 0xAF69, 0xAF6A, 0xC1A1, 0xF0EB,
- 0xF0EE, 0xAF6B, 0xF0ED, 0xF0F0, 0xF0EC, 0xAF6C,
- 0xBBBE, 0xF0EF, 0xAF6D, 0xAF6E, 0xAF6F, 0xAF70,
- 0xCCB5, 0xF0F2, 0xAF71, 0xAF72, 0xB3D5, 0xAF73,
- 0xAF74, 0xAF75, 0xAF76, 0xB1D4, 0xAF77, 0xAF78,
- 0xF0F3, 0xAF79, 0xAF7A, 0xF0F4, 0xF0F6, 0xB4E1,
- 0xAF7B, 0xF0F1, 0xAF7C, 0xF0F7, 0xAF7D, 0xAF7E,
- 0xAF80, 0xAF81, 0xF0FA, 0xAF82, 0xF0F8, 0xAF83,
- 0xAF84, 0xAF85, 0xF0F5, 0xAF86, 0xAF87, 0xAF88,
- 0xAF89, 0xF0FD, 0xAF8A, 0xF0F9, 0xF0FC, 0xF0FE,
- 0xAF8B, 0xF1A1, 0xAF8C, 0xAF8D, 0xAF8E, 0xCEC1,
- 0xF1A4, 0xAF8F, 0xF1A3, 0xAF90, 0xC1F6, 0xF0FB,
- 0xCADD, 0xAF91, 0xAF92, 0xB4F1, 0xB1F1, 0xCCB1,
- 0xAF93, 0xF1A6, 0xAF94, 0xAF95, 0xF1A7, 0xAF96,
- 0xAF97, 0xF1AC, 0xD5CE, 0xF1A9, 0xAF98, 0xAF99,
- 0xC8B3, 0xAF9A, 0xAF9B, 0xAF9C, 0xF1A2, 0xAF9D,
- 0xF1AB, 0xF1A8, 0xF1A5, 0xAF9E, 0xAF9F, 0xF1AA,
- 0xAFA0, 0xB040, 0xB041, 0xB042, 0xB043, 0xB044,
- 0xB045, 0xB046, 0xB0A9, 0xF1AD, 0xB047, 0xB048,
- 0xB049, 0xB04A, 0xB04B, 0xB04C, 0xF1AF, 0xB04D,
- 0xF1B1, 0xB04E, 0xB04F, 0xB050, 0xB051, 0xB052,
- 0xF1B0, 0xB053, 0xF1AE, 0xB054, 0xB055, 0xB056,
- 0xB057, 0xD1A2, 0xB058, 0xB059, 0xB05A, 0xB05B,
- 0xB05C, 0xB05D, 0xB05E, 0xF1B2, 0xB05F, 0xB060,
- 0xB061, 0xF1B3, 0xB062, 0xB063, 0xB064, 0xB065,
- 0xB066, 0xB067, 0xB068, 0xB069, 0xB9EF, 0xB06A,
- 0xB06B, 0xB5C7, 0xB06C, 0xB0D7, 0xB0D9, 0xB06D,
- 0xB06E, 0xB06F, 0xD4ED, 0xB070, 0xB5C4, 0xB071,
- 0xBDD4, 0xBBCA, 0xF0A7, 0xB072, 0xB073, 0xB8DE,
- 0xB074, 0xB075, 0xF0A8, 0xB076, 0xB077, 0xB0A8,
- 0xB078, 0xF0A9, 0xB079, 0xB07A, 0xCDEE, 0xB07B,
- 0xB07C, 0xF0AA, 0xB07D, 0xB07E, 0xB080, 0xB081,
- 0xB082, 0xB083, 0xB084, 0xB085, 0xB086, 0xB087,
- 0xF0AB, 0xB088, 0xB089, 0xB08A, 0xB08B, 0xB08C,
- 0xB08D, 0xB08E, 0xB08F, 0xB090, 0xC6A4, 0xB091,
- 0xB092, 0xD6E5, 0xF1E4, 0xB093, 0xF1E5, 0xB094,
- 0xB095, 0xB096, 0xB097, 0xB098, 0xB099, 0xB09A,
- 0xB09B, 0xB09C, 0xB09D, 0xC3F3, 0xB09E, 0xB09F,
- 0xD3DB, 0xB0A0, 0xB140, 0xD6D1, 0xC5E8, 0xB141,
- 0xD3AF, 0xB142, 0xD2E6, 0xB143, 0xB144, 0xEEC1,
- 0xB0BB, 0xD5B5, 0xD1CE, 0xBCE0, 0xBAD0, 0xB145,
- 0xBFF8, 0xB146, 0xB8C7, 0xB5C1, 0xC5CC, 0xB147,
- 0xB148, 0xCAA2, 0xB149, 0xB14A, 0xB14B, 0xC3CB,
- 0xB14C, 0xB14D, 0xB14E, 0xB14F, 0xB150, 0xEEC2,
- 0xB151, 0xB152, 0xB153, 0xB154, 0xB155, 0xB156,
- 0xB157, 0xB158, 0xC4BF, 0xB6A2, 0xB159, 0xEDEC,
- 0xC3A4, 0xB15A, 0xD6B1, 0xB15B, 0xB15C, 0xB15D,
- 0xCFE0, 0xEDEF, 0xB15E, 0xB15F, 0xC5CE, 0xB160,
- 0xB6DC, 0xB161, 0xB162, 0xCAA1, 0xB163, 0xB164,
- 0xEDED, 0xB165, 0xB166, 0xEDF0, 0xEDF1, 0xC3BC,
- 0xB167, 0xBFB4, 0xB168, 0xEDEE, 0xB169, 0xB16A,
- 0xB16B, 0xB16C, 0xB16D, 0xB16E, 0xB16F, 0xB170,
- 0xB171, 0xB172, 0xB173, 0xEDF4, 0xEDF2, 0xB174,
- 0xB175, 0xB176, 0xB177, 0xD5E6, 0xC3DF, 0xB178,
- 0xEDF3, 0xB179, 0xB17A, 0xB17B, 0xEDF6, 0xB17C,
- 0xD5A3, 0xD1A3, 0xB17D, 0xB17E, 0xB180, 0xEDF5,
- 0xB181, 0xC3D0, 0xB182, 0xB183, 0xB184, 0xB185,
- 0xB186, 0xEDF7, 0xBFF4, 0xBEEC, 0xEDF8, 0xB187,
- 0xCCF7, 0xB188, 0xD1DB, 0xB189, 0xB18A, 0xB18B,
- 0xD7C5, 0xD5F6, 0xB18C, 0xEDFC, 0xB18D, 0xB18E,
- 0xB18F, 0xEDFB, 0xB190, 0xB191, 0xB192, 0xB193,
- 0xB194, 0xB195, 0xB196, 0xB197, 0xEDF9, 0xEDFA,
- 0xB198, 0xB199, 0xB19A, 0xB19B, 0xB19C, 0xB19D,
- 0xB19E, 0xB19F, 0xEDFD, 0xBEA6, 0xB1A0, 0xB240,
- 0xB241, 0xB242, 0xB243, 0xCBAF, 0xEEA1, 0xB6BD,
- 0xB244, 0xEEA2, 0xC4C0, 0xB245, 0xEDFE, 0xB246,
- 0xB247, 0xBDDE, 0xB2C7, 0xB248, 0xB249, 0xB24A,
- 0xB24B, 0xB24C, 0xB24D, 0xB24E, 0xB24F, 0xB250,
- 0xB251, 0xB252, 0xB253, 0xB6C3, 0xB254, 0xB255,
- 0xB256, 0xEEA5, 0xD8BA, 0xEEA3, 0xEEA6, 0xB257,
- 0xB258, 0xB259, 0xC3E9, 0xB3F2, 0xB25A, 0xB25B,
- 0xB25C, 0xB25D, 0xB25E, 0xB25F, 0xEEA7, 0xEEA4,
- 0xCFB9, 0xB260, 0xB261, 0xEEA8, 0xC2F7, 0xB262,
- 0xB263, 0xB264, 0xB265, 0xB266, 0xB267, 0xB268,
- 0xB269, 0xB26A, 0xB26B, 0xB26C, 0xB26D, 0xEEA9,
- 0xEEAA, 0xB26E, 0xDEAB, 0xB26F, 0xB270, 0xC6B3,
- 0xB271, 0xC7C6, 0xB272, 0xD6F5, 0xB5C9, 0xB273,
- 0xCBB2, 0xB274, 0xB275, 0xB276, 0xEEAB, 0xB277,
- 0xB278, 0xCDAB, 0xB279, 0xEEAC, 0xB27A, 0xB27B,
- 0xB27C, 0xB27D, 0xB27E, 0xD5B0, 0xB280, 0xEEAD,
- 0xB281, 0xF6C4, 0xB282, 0xB283, 0xB284, 0xB285,
- 0xB286, 0xB287, 0xB288, 0xB289, 0xB28A, 0xB28B,
- 0xB28C, 0xB28D, 0xB28E, 0xDBC7, 0xB28F, 0xB290,
- 0xB291, 0xB292, 0xB293, 0xB294, 0xB295, 0xB296,
- 0xB297, 0xB4A3, 0xB298, 0xB299, 0xB29A, 0xC3AC,
- 0xF1E6, 0xB29B, 0xB29C, 0xB29D, 0xB29E, 0xB29F,
- 0xCAB8, 0xD2D3, 0xB2A0, 0xD6AA, 0xB340, 0xEFF2,
- 0xB341, 0xBED8, 0xB342, 0xBDC3, 0xEFF3, 0xB6CC,
- 0xB0AB, 0xB343, 0xB344, 0xB345, 0xB346, 0xCAAF,
- 0xB347, 0xB348, 0xEDB6, 0xB349, 0xEDB7, 0xB34A,
- 0xB34B, 0xB34C, 0xB34D, 0xCEF9, 0xB7AF, 0xBFF3,
- 0xEDB8, 0xC2EB, 0xC9B0, 0xB34E, 0xB34F, 0xB350,
- 0xB351, 0xB352, 0xB353, 0xEDB9, 0xB354, 0xB355,
- 0xC6F6, 0xBFB3, 0xB356, 0xB357, 0xB358, 0xEDBC,
- 0xC5F8, 0xB359, 0xD1D0, 0xB35A, 0xD7A9, 0xEDBA,
- 0xEDBB, 0xB35B, 0xD1E2, 0xB35C, 0xEDBF, 0xEDC0,
- 0xB35D, 0xEDC4, 0xB35E, 0xB35F, 0xB360, 0xEDC8,
- 0xB361, 0xEDC6, 0xEDCE, 0xD5E8, 0xB362, 0xEDC9,
- 0xB363, 0xB364, 0xEDC7, 0xEDBE, 0xB365, 0xB366,
- 0xC5E9, 0xB367, 0xB368, 0xB369, 0xC6C6, 0xB36A,
- 0xB36B, 0xC9E9, 0xD4D2, 0xEDC1, 0xEDC2, 0xEDC3,
- 0xEDC5, 0xB36C, 0xC0F9, 0xB36D, 0xB4A1, 0xB36E,
- 0xB36F, 0xB370, 0xB371, 0xB9E8, 0xB372, 0xEDD0,
- 0xB373, 0xB374, 0xB375, 0xB376, 0xEDD1, 0xB377,
- 0xEDCA, 0xB378, 0xEDCF, 0xB379, 0xCEF8, 0xB37A,
- 0xB37B, 0xCBB6, 0xEDCC, 0xEDCD, 0xB37C, 0xB37D,
- 0xB37E, 0xB380, 0xB381, 0xCFF5, 0xB382, 0xB383,
- 0xB384, 0xB385, 0xB386, 0xB387, 0xB388, 0xB389,
- 0xB38A, 0xB38B, 0xB38C, 0xB38D, 0xEDD2, 0xC1F2,
- 0xD3B2, 0xEDCB, 0xC8B7, 0xB38E, 0xB38F, 0xB390,
- 0xB391, 0xB392, 0xB393, 0xB394, 0xB395, 0xBCEF,
- 0xB396, 0xB397, 0xB398, 0xB399, 0xC5F0, 0xB39A,
- 0xB39B, 0xB39C, 0xB39D, 0xB39E, 0xB39F, 0xB3A0,
- 0xB440, 0xB441, 0xB442, 0xEDD6, 0xB443, 0xB5EF,
- 0xB444, 0xB445, 0xC2B5, 0xB0AD, 0xCBE9, 0xB446,
- 0xB447, 0xB1AE, 0xB448, 0xEDD4, 0xB449, 0xB44A,
- 0xB44B, 0xCDEB, 0xB5E2, 0xB44C, 0xEDD5, 0xEDD3,
- 0xEDD7, 0xB44D, 0xB44E, 0xB5FA, 0xB44F, 0xEDD8,
- 0xB450, 0xEDD9, 0xB451, 0xEDDC, 0xB452, 0xB1CC,
- 0xB453, 0xB454, 0xB455, 0xB456, 0xB457, 0xB458,
- 0xB459, 0xB45A, 0xC5F6, 0xBCEE, 0xEDDA, 0xCCBC,
- 0xB2EA, 0xB45B, 0xB45C, 0xB45D, 0xB45E, 0xEDDB,
- 0xB45F, 0xB460, 0xB461, 0xB462, 0xC4EB, 0xB463,
- 0xB464, 0xB4C5, 0xB465, 0xB466, 0xB467, 0xB0F5,
- 0xB468, 0xB469, 0xB46A, 0xEDDF, 0xC0DA, 0xB4E8,
- 0xB46B, 0xB46C, 0xB46D, 0xB46E, 0xC5CD, 0xB46F,
- 0xB470, 0xB471, 0xEDDD, 0xBFC4, 0xB472, 0xB473,
- 0xB474, 0xEDDE, 0xB475, 0xB476, 0xB477, 0xB478,
- 0xB479, 0xB47A, 0xB47B, 0xB47C, 0xB47D, 0xB47E,
- 0xB480, 0xB481, 0xB482, 0xB483, 0xC4A5, 0xB484,
- 0xB485, 0xB486, 0xEDE0, 0xB487, 0xB488, 0xB489,
- 0xB48A, 0xB48B, 0xEDE1, 0xB48C, 0xEDE3, 0xB48D,
- 0xB48E, 0xC1D7, 0xB48F, 0xB490, 0xBBC7, 0xB491,
- 0xB492, 0xB493, 0xB494, 0xB495, 0xB496, 0xBDB8,
- 0xB497, 0xB498, 0xB499, 0xEDE2, 0xB49A, 0xB49B,
- 0xB49C, 0xB49D, 0xB49E, 0xB49F, 0xB4A0, 0xB540,
- 0xB541, 0xB542, 0xB543, 0xB544, 0xB545, 0xEDE4,
- 0xB546, 0xB547, 0xB548, 0xB549, 0xB54A, 0xB54B,
- 0xB54C, 0xB54D, 0xB54E, 0xB54F, 0xEDE6, 0xB550,
- 0xB551, 0xB552, 0xB553, 0xB554, 0xEDE5, 0xB555,
- 0xB556, 0xB557, 0xB558, 0xB559, 0xB55A, 0xB55B,
- 0xB55C, 0xB55D, 0xB55E, 0xB55F, 0xB560, 0xB561,
- 0xB562, 0xB563, 0xEDE7, 0xB564, 0xB565, 0xB566,
- 0xB567, 0xB568, 0xCABE, 0xECEA, 0xC0F1, 0xB569,
- 0xC9E7, 0xB56A, 0xECEB, 0xC6EE, 0xB56B, 0xB56C,
- 0xB56D, 0xB56E, 0xECEC, 0xB56F, 0xC6ED, 0xECED,
- 0xB570, 0xB571, 0xB572, 0xB573, 0xB574, 0xB575,
- 0xB576, 0xB577, 0xB578, 0xECF0, 0xB579, 0xB57A,
- 0xD7E6, 0xECF3, 0xB57B, 0xB57C, 0xECF1, 0xECEE,
- 0xECEF, 0xD7A3, 0xC9F1, 0xCBEE, 0xECF4, 0xB57D,
- 0xECF2, 0xB57E, 0xB580, 0xCFE9, 0xB581, 0xECF6,
- 0xC6B1, 0xB582, 0xB583, 0xB584, 0xB585, 0xBCC0,
- 0xB586, 0xECF5, 0xB587, 0xB588, 0xB589, 0xB58A,
- 0xB58B, 0xB58C, 0xB58D, 0xB5BB, 0xBBF6, 0xB58E,
- 0xECF7, 0xB58F, 0xB590, 0xB591, 0xB592, 0xB593,
- 0xD9F7, 0xBDFB, 0xB594, 0xB595, 0xC2BB, 0xECF8,
- 0xB596, 0xB597, 0xB598, 0xB599, 0xECF9, 0xB59A,
- 0xB59B, 0xB59C, 0xB59D, 0xB8A3, 0xB59E, 0xB59F,
- 0xB5A0, 0xB640, 0xB641, 0xB642, 0xB643, 0xB644,
- 0xB645, 0xB646, 0xECFA, 0xB647, 0xB648, 0xB649,
- 0xB64A, 0xB64B, 0xB64C, 0xB64D, 0xB64E, 0xB64F,
- 0xB650, 0xB651, 0xB652, 0xECFB, 0xB653, 0xB654,
- 0xB655, 0xB656, 0xB657, 0xB658, 0xB659, 0xB65A,
- 0xB65B, 0xB65C, 0xB65D, 0xECFC, 0xB65E, 0xB65F,
- 0xB660, 0xB661, 0xB662, 0xD3ED, 0xD8AE, 0xC0EB,
- 0xB663, 0xC7DD, 0xBACC, 0xB664, 0xD0E3, 0xCBBD,
- 0xB665, 0xCDBA, 0xB666, 0xB667, 0xB8D1, 0xB668,
- 0xB669, 0xB1FC, 0xB66A, 0xC7EF, 0xB66B, 0xD6D6,
- 0xB66C, 0xB66D, 0xB66E, 0xBFC6, 0xC3EB, 0xB66F,
- 0xB670, 0xEFF5, 0xB671, 0xB672, 0xC3D8, 0xB673,
- 0xB674, 0xB675, 0xB676, 0xB677, 0xB678, 0xD7E2,
- 0xB679, 0xB67A, 0xB67B, 0xEFF7, 0xB3D3, 0xB67C,
- 0xC7D8, 0xD1ED, 0xB67D, 0xD6C8, 0xB67E, 0xEFF8,
- 0xB680, 0xEFF6, 0xB681, 0xBBFD, 0xB3C6, 0xB682,
- 0xB683, 0xB684, 0xB685, 0xB686, 0xB687, 0xB688,
- 0xBDD5, 0xB689, 0xB68A, 0xD2C6, 0xB68B, 0xBBE0,
- 0xB68C, 0xB68D, 0xCFA1, 0xB68E, 0xEFFC, 0xEFFB,
- 0xB68F, 0xB690, 0xEFF9, 0xB691, 0xB692, 0xB693,
- 0xB694, 0xB3CC, 0xB695, 0xC9D4, 0xCBB0, 0xB696,
- 0xB697, 0xB698, 0xB699, 0xB69A, 0xEFFE, 0xB69B,
- 0xB69C, 0xB0DE, 0xB69D, 0xB69E, 0xD6C9, 0xB69F,
- 0xB6A0, 0xB740, 0xEFFD, 0xB741, 0xB3ED, 0xB742,
- 0xB743, 0xF6D5, 0xB744, 0xB745, 0xB746, 0xB747,
- 0xB748, 0xB749, 0xB74A, 0xB74B, 0xB74C, 0xB74D,
- 0xB74E, 0xB74F, 0xB750, 0xB751, 0xB752, 0xCEC8,
- 0xB753, 0xB754, 0xB755, 0xF0A2, 0xB756, 0xF0A1,
- 0xB757, 0xB5BE, 0xBCDA, 0xBBFC, 0xB758, 0xB8E5,
- 0xB759, 0xB75A, 0xB75B, 0xB75C, 0xB75D, 0xB75E,
- 0xC4C2, 0xB75F, 0xB760, 0xB761, 0xB762, 0xB763,
- 0xB764, 0xB765, 0xB766, 0xB767, 0xB768, 0xF0A3,
- 0xB769, 0xB76A, 0xB76B, 0xB76C, 0xB76D, 0xCBEB,
- 0xB76E, 0xB76F, 0xB770, 0xB771, 0xB772, 0xB773,
- 0xB774, 0xB775, 0xB776, 0xB777, 0xB778, 0xB779,
- 0xB77A, 0xB77B, 0xB77C, 0xB77D, 0xB77E, 0xB780,
- 0xB781, 0xB782, 0xB783, 0xB784, 0xB785, 0xB786,
- 0xF0A6, 0xB787, 0xB788, 0xB789, 0xD1A8, 0xB78A,
- 0xBEBF, 0xC7EE, 0xF1B6, 0xF1B7, 0xBFD5, 0xB78B,
- 0xB78C, 0xB78D, 0xB78E, 0xB4A9, 0xF1B8, 0xCDBB,
- 0xB78F, 0xC7D4, 0xD5AD, 0xB790, 0xF1B9, 0xB791,
- 0xF1BA, 0xB792, 0xB793, 0xB794, 0xB795, 0xC7CF,
- 0xB796, 0xB797, 0xB798, 0xD2A4, 0xD6CF, 0xB799,
- 0xB79A, 0xF1BB, 0xBDD1, 0xB4B0, 0xBEBD, 0xB79B,
- 0xB79C, 0xB79D, 0xB4DC, 0xCED1, 0xB79E, 0xBFDF,
- 0xF1BD, 0xB79F, 0xB7A0, 0xB840, 0xB841, 0xBFFA,
- 0xF1BC, 0xB842, 0xF1BF, 0xB843, 0xB844, 0xB845,
- 0xF1BE, 0xF1C0, 0xB846, 0xB847, 0xB848, 0xB849,
- 0xB84A, 0xF1C1, 0xB84B, 0xB84C, 0xB84D, 0xB84E,
- 0xB84F, 0xB850, 0xB851, 0xB852, 0xB853, 0xB854,
- 0xB855, 0xC1FE, 0xB856, 0xB857, 0xB858, 0xB859,
- 0xB85A, 0xB85B, 0xB85C, 0xB85D, 0xB85E, 0xB85F,
- 0xB860, 0xC1A2, 0xB861, 0xB862, 0xB863, 0xB864,
- 0xB865, 0xB866, 0xB867, 0xB868, 0xB869, 0xB86A,
- 0xCAFA, 0xB86B, 0xB86C, 0xD5BE, 0xB86D, 0xB86E,
- 0xB86F, 0xB870, 0xBEBA, 0xBEB9, 0xD5C2, 0xB871,
- 0xB872, 0xBFA2, 0xB873, 0xCDAF, 0xF1B5, 0xB874,
- 0xB875, 0xB876, 0xB877, 0xB878, 0xB879, 0xBDDF,
- 0xB87A, 0xB6CB, 0xB87B, 0xB87C, 0xB87D, 0xB87E,
- 0xB880, 0xB881, 0xB882, 0xB883, 0xB884, 0xD6F1,
- 0xF3C3, 0xB885, 0xB886, 0xF3C4, 0xB887, 0xB8CD,
- 0xB888, 0xB889, 0xB88A, 0xF3C6, 0xF3C7, 0xB88B,
- 0xB0CA, 0xB88C, 0xF3C5, 0xB88D, 0xF3C9, 0xCBF1,
- 0xB88E, 0xB88F, 0xB890, 0xF3CB, 0xB891, 0xD0A6,
- 0xB892, 0xB893, 0xB1CA, 0xF3C8, 0xB894, 0xB895,
- 0xB896, 0xF3CF, 0xB897, 0xB5D1, 0xB898, 0xB899,
- 0xF3D7, 0xB89A, 0xF3D2, 0xB89B, 0xB89C, 0xB89D,
- 0xF3D4, 0xF3D3, 0xB7FB, 0xB89E, 0xB1BF, 0xB89F,
- 0xF3CE, 0xF3CA, 0xB5DA, 0xB8A0, 0xF3D0, 0xB940,
- 0xB941, 0xF3D1, 0xB942, 0xF3D5, 0xB943, 0xB944,
- 0xB945, 0xB946, 0xF3CD, 0xB947, 0xBCE3, 0xB948,
- 0xC1FD, 0xB949, 0xF3D6, 0xB94A, 0xB94B, 0xB94C,
- 0xB94D, 0xB94E, 0xB94F, 0xF3DA, 0xB950, 0xF3CC,
- 0xB951, 0xB5C8, 0xB952, 0xBDEE, 0xF3DC, 0xB953,
- 0xB954, 0xB7A4, 0xBFF0, 0xD6FE, 0xCDB2, 0xB955,
- 0xB4F0, 0xB956, 0xB2DF, 0xB957, 0xF3D8, 0xB958,
- 0xF3D9, 0xC9B8, 0xB959, 0xF3DD, 0xB95A, 0xB95B,
- 0xF3DE, 0xB95C, 0xF3E1, 0xB95D, 0xB95E, 0xB95F,
- 0xB960, 0xB961, 0xB962, 0xB963, 0xB964, 0xB965,
- 0xB966, 0xB967, 0xF3DF, 0xB968, 0xB969, 0xF3E3,
- 0xF3E2, 0xB96A, 0xB96B, 0xF3DB, 0xB96C, 0xBFEA,
- 0xB96D, 0xB3EF, 0xB96E, 0xF3E0, 0xB96F, 0xB970,
- 0xC7A9, 0xB971, 0xBCF2, 0xB972, 0xB973, 0xB974,
- 0xB975, 0xF3EB, 0xB976, 0xB977, 0xB978, 0xB979,
- 0xB97A, 0xB97B, 0xB97C, 0xB9BF, 0xB97D, 0xB97E,
- 0xF3E4, 0xB980, 0xB981, 0xB982, 0xB2AD, 0xBBFE,
- 0xB983, 0xCBE3, 0xB984, 0xB985, 0xB986, 0xB987,
- 0xF3ED, 0xF3E9, 0xB988, 0xB989, 0xB98A, 0xB9DC,
- 0xF3EE, 0xB98B, 0xB98C, 0xB98D, 0xF3E5, 0xF3E6,
- 0xF3EA, 0xC2E1, 0xF3EC, 0xF3EF, 0xF3E8, 0xBCFD,
- 0xB98E, 0xB98F, 0xB990, 0xCFE4, 0xB991, 0xB992,
- 0xF3F0, 0xB993, 0xB994, 0xB995, 0xF3E7, 0xB996,
- 0xB997, 0xB998, 0xB999, 0xB99A, 0xB99B, 0xB99C,
- 0xB99D, 0xF3F2, 0xB99E, 0xB99F, 0xB9A0, 0xBA40,
- 0xD7AD, 0xC6AA, 0xBA41, 0xBA42, 0xBA43, 0xBA44,
- 0xF3F3, 0xBA45, 0xBA46, 0xBA47, 0xBA48, 0xF3F1,
- 0xBA49, 0xC2A8, 0xBA4A, 0xBA4B, 0xBA4C, 0xBA4D,
- 0xBA4E, 0xB8DD, 0xF3F5, 0xBA4F, 0xBA50, 0xF3F4,
- 0xBA51, 0xBA52, 0xBA53, 0xB4DB, 0xBA54, 0xBA55,
- 0xBA56, 0xF3F6, 0xF3F7, 0xBA57, 0xBA58, 0xBA59,
- 0xF3F8, 0xBA5A, 0xBA5B, 0xBA5C, 0xC0BA, 0xBA5D,
- 0xBA5E, 0xC0E9, 0xBA5F, 0xBA60, 0xBA61, 0xBA62,
- 0xBA63, 0xC5F1, 0xBA64, 0xBA65, 0xBA66, 0xBA67,
- 0xF3FB, 0xBA68, 0xF3FA, 0xBA69, 0xBA6A, 0xBA6B,
- 0xBA6C, 0xBA6D, 0xBA6E, 0xBA6F, 0xBA70, 0xB4D8,
- 0xBA71, 0xBA72, 0xBA73, 0xF3FE, 0xF3F9, 0xBA74,
- 0xBA75, 0xF3FC, 0xBA76, 0xBA77, 0xBA78, 0xBA79,
- 0xBA7A, 0xBA7B, 0xF3FD, 0xBA7C, 0xBA7D, 0xBA7E,
- 0xBA80, 0xBA81, 0xBA82, 0xBA83, 0xBA84, 0xF4A1,
- 0xBA85, 0xBA86, 0xBA87, 0xBA88, 0xBA89, 0xBA8A,
- 0xF4A3, 0xBBC9, 0xBA8B, 0xBA8C, 0xF4A2, 0xBA8D,
- 0xBA8E, 0xBA8F, 0xBA90, 0xBA91, 0xBA92, 0xBA93,
- 0xBA94, 0xBA95, 0xBA96, 0xBA97, 0xBA98, 0xBA99,
- 0xF4A4, 0xBA9A, 0xBA9B, 0xBA9C, 0xBA9D, 0xBA9E,
- 0xBA9F, 0xB2BE, 0xF4A6, 0xF4A5, 0xBAA0, 0xBB40,
- 0xBB41, 0xBB42, 0xBB43, 0xBB44, 0xBB45, 0xBB46,
- 0xBB47, 0xBB48, 0xBB49, 0xBCAE, 0xBB4A, 0xBB4B,
- 0xBB4C, 0xBB4D, 0xBB4E, 0xBB4F, 0xBB50, 0xBB51,
- 0xBB52, 0xBB53, 0xBB54, 0xBB55, 0xBB56, 0xBB57,
- 0xBB58, 0xBB59, 0xBB5A, 0xBB5B, 0xBB5C, 0xBB5D,
- 0xBB5E, 0xBB5F, 0xBB60, 0xBB61, 0xBB62, 0xBB63,
- 0xBB64, 0xBB65, 0xBB66, 0xBB67, 0xBB68, 0xBB69,
- 0xBB6A, 0xBB6B, 0xBB6C, 0xBB6D, 0xBB6E, 0xC3D7,
- 0xD9E1, 0xBB6F, 0xBB70, 0xBB71, 0xBB72, 0xBB73,
- 0xBB74, 0xC0E0, 0xF4CC, 0xD7D1, 0xBB75, 0xBB76,
- 0xBB77, 0xBB78, 0xBB79, 0xBB7A, 0xBB7B, 0xBB7C,
- 0xBB7D, 0xBB7E, 0xBB80, 0xB7DB, 0xBB81, 0xBB82,
- 0xBB83, 0xBB84, 0xBB85, 0xBB86, 0xBB87, 0xF4CE,
- 0xC1A3, 0xBB88, 0xBB89, 0xC6C9, 0xBB8A, 0xB4D6,
- 0xD5B3, 0xBB8B, 0xBB8C, 0xBB8D, 0xF4D0, 0xF4CF,
- 0xF4D1, 0xCBDA, 0xBB8E, 0xBB8F, 0xF4D2, 0xBB90,
- 0xD4C1, 0xD6E0, 0xBB91, 0xBB92, 0xBB93, 0xBB94,
- 0xB7E0, 0xBB95, 0xBB96, 0xBB97, 0xC1B8, 0xBB98,
- 0xBB99, 0xC1BB, 0xF4D3, 0xBEAC, 0xBB9A, 0xBB9B,
- 0xBB9C, 0xBB9D, 0xBB9E, 0xB4E2, 0xBB9F, 0xBBA0,
- 0xF4D4, 0xF4D5, 0xBEAB, 0xBC40, 0xBC41, 0xF4D6,
- 0xBC42, 0xBC43, 0xBC44, 0xF4DB, 0xBC45, 0xF4D7,
- 0xF4DA, 0xBC46, 0xBAFD, 0xBC47, 0xF4D8, 0xF4D9,
- 0xBC48, 0xBC49, 0xBC4A, 0xBC4B, 0xBC4C, 0xBC4D,
- 0xBC4E, 0xB8E2, 0xCCC7, 0xF4DC, 0xBC4F, 0xB2DA,
- 0xBC50, 0xBC51, 0xC3D3, 0xBC52, 0xBC53, 0xD4E3,
- 0xBFB7, 0xBC54, 0xBC55, 0xBC56, 0xBC57, 0xBC58,
- 0xBC59, 0xBC5A, 0xF4DD, 0xBC5B, 0xBC5C, 0xBC5D,
- 0xBC5E, 0xBC5F, 0xBC60, 0xC5B4, 0xBC61, 0xBC62,
- 0xBC63, 0xBC64, 0xBC65, 0xBC66, 0xBC67, 0xBC68,
- 0xF4E9, 0xBC69, 0xBC6A, 0xCFB5, 0xBC6B, 0xBC6C,
- 0xBC6D, 0xBC6E, 0xBC6F, 0xBC70, 0xBC71, 0xBC72,
- 0xBC73, 0xBC74, 0xBC75, 0xBC76, 0xBC77, 0xBC78,
- 0xCEC9, 0xBC79, 0xBC7A, 0xBC7B, 0xBC7C, 0xBC7D,
- 0xBC7E, 0xBC80, 0xBC81, 0xBC82, 0xBC83, 0xBC84,
- 0xBC85, 0xBC86, 0xBC87, 0xBC88, 0xBC89, 0xBC8A,
- 0xBC8B, 0xBC8C, 0xBC8D, 0xBC8E, 0xCBD8, 0xBC8F,
- 0xCBF7, 0xBC90, 0xBC91, 0xBC92, 0xBC93, 0xBDF4,
- 0xBC94, 0xBC95, 0xBC96, 0xD7CF, 0xBC97, 0xBC98,
- 0xBC99, 0xC0DB, 0xBC9A, 0xBC9B, 0xBC9C, 0xBC9D,
- 0xBC9E, 0xBC9F, 0xBCA0, 0xBD40, 0xBD41, 0xBD42,
- 0xBD43, 0xBD44, 0xBD45, 0xBD46, 0xBD47, 0xBD48,
- 0xBD49, 0xBD4A, 0xBD4B, 0xBD4C, 0xBD4D, 0xBD4E,
- 0xBD4F, 0xBD50, 0xBD51, 0xBD52, 0xBD53, 0xBD54,
- 0xBD55, 0xBD56, 0xBD57, 0xBD58, 0xBD59, 0xBD5A,
- 0xBD5B, 0xBD5C, 0xBD5D, 0xBD5E, 0xBD5F, 0xBD60,
- 0xBD61, 0xBD62, 0xBD63, 0xBD64, 0xBD65, 0xBD66,
- 0xBD67, 0xBD68, 0xBD69, 0xBD6A, 0xBD6B, 0xBD6C,
- 0xBD6D, 0xBD6E, 0xBD6F, 0xBD70, 0xBD71, 0xBD72,
- 0xBD73, 0xBD74, 0xBD75, 0xBD76, 0xD0F5, 0xBD77,
- 0xBD78, 0xBD79, 0xBD7A, 0xBD7B, 0xBD7C, 0xBD7D,
- 0xBD7E, 0xF4EA, 0xBD80, 0xBD81, 0xBD82, 0xBD83,
- 0xBD84, 0xBD85, 0xBD86, 0xBD87, 0xBD88, 0xBD89,
- 0xBD8A, 0xBD8B, 0xBD8C, 0xBD8D, 0xBD8E, 0xBD8F,
- 0xBD90, 0xBD91, 0xBD92, 0xBD93, 0xBD94, 0xBD95,
- 0xBD96, 0xBD97, 0xBD98, 0xBD99, 0xBD9A, 0xBD9B,
- 0xBD9C, 0xBD9D, 0xBD9E, 0xBD9F, 0xBDA0, 0xBE40,
- 0xBE41, 0xBE42, 0xBE43, 0xBE44, 0xBE45, 0xBE46,
- 0xBE47, 0xBE48, 0xBE49, 0xBE4A, 0xBE4B, 0xBE4C,
- 0xF4EB, 0xBE4D, 0xBE4E, 0xBE4F, 0xBE50, 0xBE51,
- 0xBE52, 0xBE53, 0xF4EC, 0xBE54, 0xBE55, 0xBE56,
- 0xBE57, 0xBE58, 0xBE59, 0xBE5A, 0xBE5B, 0xBE5C,
- 0xBE5D, 0xBE5E, 0xBE5F, 0xBE60, 0xBE61, 0xBE62,
- 0xBE63, 0xBE64, 0xBE65, 0xBE66, 0xBE67, 0xBE68,
- 0xBE69, 0xBE6A, 0xBE6B, 0xBE6C, 0xBE6D, 0xBE6E,
- 0xBE6F, 0xBE70, 0xBE71, 0xBE72, 0xBE73, 0xBE74,
- 0xBE75, 0xBE76, 0xBE77, 0xBE78, 0xBE79, 0xBE7A,
- 0xBE7B, 0xBE7C, 0xBE7D, 0xBE7E, 0xBE80, 0xBE81,
- 0xBE82, 0xBE83, 0xBE84, 0xBE85, 0xBE86, 0xBE87,
- 0xBE88, 0xBE89, 0xBE8A, 0xBE8B, 0xBE8C, 0xBE8D,
- 0xBE8E, 0xBE8F, 0xBE90, 0xBE91, 0xBE92, 0xBE93,
- 0xBE94, 0xBE95, 0xBE96, 0xBE97, 0xBE98, 0xBE99,
- 0xBE9A, 0xBE9B, 0xBE9C, 0xBE9D, 0xBE9E, 0xBE9F,
- 0xBEA0, 0xBF40, 0xBF41, 0xBF42, 0xBF43, 0xBF44,
- 0xBF45, 0xBF46, 0xBF47, 0xBF48, 0xBF49, 0xBF4A,
- 0xBF4B, 0xBF4C, 0xBF4D, 0xBF4E, 0xBF4F, 0xBF50,
- 0xBF51, 0xBF52, 0xBF53, 0xBF54, 0xBF55, 0xBF56,
- 0xBF57, 0xBF58, 0xBF59, 0xBF5A, 0xBF5B, 0xBF5C,
- 0xBF5D, 0xBF5E, 0xBF5F, 0xBF60, 0xBF61, 0xBF62,
- 0xBF63, 0xBF64, 0xBF65, 0xBF66, 0xBF67, 0xBF68,
- 0xBF69, 0xBF6A, 0xBF6B, 0xBF6C, 0xBF6D, 0xBF6E,
- 0xBF6F, 0xBF70, 0xBF71, 0xBF72, 0xBF73, 0xBF74,
- 0xBF75, 0xBF76, 0xBF77, 0xBF78, 0xBF79, 0xBF7A,
- 0xBF7B, 0xBF7C, 0xBF7D, 0xBF7E, 0xBF80, 0xF7E3,
- 0xBF81, 0xBF82, 0xBF83, 0xBF84, 0xBF85, 0xB7B1,
- 0xBF86, 0xBF87, 0xBF88, 0xBF89, 0xBF8A, 0xF4ED,
- 0xBF8B, 0xBF8C, 0xBF8D, 0xBF8E, 0xBF8F, 0xBF90,
- 0xBF91, 0xBF92, 0xBF93, 0xBF94, 0xBF95, 0xBF96,
- 0xBF97, 0xBF98, 0xBF99, 0xBF9A, 0xBF9B, 0xBF9C,
- 0xBF9D, 0xBF9E, 0xBF9F, 0xBFA0, 0xC040, 0xC041,
- 0xC042, 0xC043, 0xC044, 0xC045, 0xC046, 0xC047,
- 0xC048, 0xC049, 0xC04A, 0xC04B, 0xC04C, 0xC04D,
- 0xC04E, 0xC04F, 0xC050, 0xC051, 0xC052, 0xC053,
- 0xC054, 0xC055, 0xC056, 0xC057, 0xC058, 0xC059,
- 0xC05A, 0xC05B, 0xC05C, 0xC05D, 0xC05E, 0xC05F,
- 0xC060, 0xC061, 0xC062, 0xC063, 0xD7EB, 0xC064,
- 0xC065, 0xC066, 0xC067, 0xC068, 0xC069, 0xC06A,
- 0xC06B, 0xC06C, 0xC06D, 0xC06E, 0xC06F, 0xC070,
- 0xC071, 0xC072, 0xC073, 0xC074, 0xC075, 0xC076,
- 0xC077, 0xC078, 0xC079, 0xC07A, 0xC07B, 0xF4EE,
- 0xC07C, 0xC07D, 0xC07E, 0xE6F9, 0xBEC0, 0xE6FA,
- 0xBAEC, 0xE6FB, 0xCFCB, 0xE6FC, 0xD4BC, 0xBCB6,
- 0xE6FD, 0xE6FE, 0xBCCD, 0xC8D2, 0xCEB3, 0xE7A1,
- 0xC080, 0xB4BF, 0xE7A2, 0xC9B4, 0xB8D9, 0xC4C9,
- 0xC081, 0xD7DD, 0xC2DA, 0xB7D7, 0xD6BD, 0xCEC6,
- 0xB7C4, 0xC082, 0xC083, 0xC5A6, 0xE7A3, 0xCFDF,
- 0xE7A4, 0xE7A5, 0xE7A6, 0xC1B7, 0xD7E9, 0xC9F0,
- 0xCFB8, 0xD6AF, 0xD6D5, 0xE7A7, 0xB0ED, 0xE7A8,
- 0xE7A9, 0xC9DC, 0xD2EF, 0xBEAD, 0xE7AA, 0xB0F3,
- 0xC8DE, 0xBDE1, 0xE7AB, 0xC8C6, 0xC084, 0xE7AC,
- 0xBBE6, 0xB8F8, 0xD1A4, 0xE7AD, 0xC2E7, 0xBEF8,
- 0xBDCA, 0xCDB3, 0xE7AE, 0xE7AF, 0xBEEE, 0xD0E5,
- 0xC085, 0xCBE7, 0xCCD0, 0xBCCC, 0xE7B0, 0xBCA8,
- 0xD0F7, 0xE7B1, 0xC086, 0xD0F8, 0xE7B2, 0xE7B3,
- 0xB4C2, 0xE7B4, 0xE7B5, 0xC9FE, 0xCEAC, 0xC3E0,
- 0xE7B7, 0xB1C1, 0xB3F1, 0xC087, 0xE7B8, 0xE7B9,
- 0xD7DB, 0xD5C0, 0xE7BA, 0xC2CC, 0xD7BA, 0xE7BB,
- 0xE7BC, 0xE7BD, 0xBCEA, 0xC3E5, 0xC0C2, 0xE7BE,
- 0xE7BF, 0xBCA9, 0xC088, 0xE7C0, 0xE7C1, 0xE7B6,
- 0xB6D0, 0xE7C2, 0xC089, 0xE7C3, 0xE7C4, 0xBBBA,
- 0xB5DE, 0xC2C6, 0xB1E0, 0xE7C5, 0xD4B5, 0xE7C6,
- 0xB8BF, 0xE7C8, 0xE7C7, 0xB7EC, 0xC08A, 0xE7C9,
- 0xB2F8, 0xE7CA, 0xE7CB, 0xE7CC, 0xE7CD, 0xE7CE,
- 0xE7CF, 0xE7D0, 0xD3A7, 0xCBF5, 0xE7D1, 0xE7D2,
- 0xE7D3, 0xE7D4, 0xC9C9, 0xE7D5, 0xE7D6, 0xE7D7,
- 0xE7D8, 0xE7D9, 0xBDC9, 0xE7DA, 0xF3BE, 0xC08B,
- 0xB8D7, 0xC08C, 0xC8B1, 0xC08D, 0xC08E, 0xC08F,
- 0xC090, 0xC091, 0xC092, 0xC093, 0xF3BF, 0xC094,
- 0xF3C0, 0xF3C1, 0xC095, 0xC096, 0xC097, 0xC098,
- 0xC099, 0xC09A, 0xC09B, 0xC09C, 0xC09D, 0xC09E,
- 0xB9DE, 0xCDF8, 0xC09F, 0xC0A0, 0xD8E8, 0xBAB1,
- 0xC140, 0xC2DE, 0xEEB7, 0xC141, 0xB7A3, 0xC142,
- 0xC143, 0xC144, 0xC145, 0xEEB9, 0xC146, 0xEEB8,
- 0xB0D5, 0xC147, 0xC148, 0xC149, 0xC14A, 0xC14B,
- 0xEEBB, 0xD5D6, 0xD7EF, 0xC14C, 0xC14D, 0xC14E,
- 0xD6C3, 0xC14F, 0xC150, 0xEEBD, 0xCAF0, 0xC151,
- 0xEEBC, 0xC152, 0xC153, 0xC154, 0xC155, 0xEEBE,
- 0xC156, 0xC157, 0xC158, 0xC159, 0xEEC0, 0xC15A,
- 0xC15B, 0xEEBF, 0xC15C, 0xC15D, 0xC15E, 0xC15F,
- 0xC160, 0xC161, 0xC162, 0xC163, 0xD1F2, 0xC164,
- 0xC7BC, 0xC165, 0xC3C0, 0xC166, 0xC167, 0xC168,
- 0xC169, 0xC16A, 0xB8E1, 0xC16B, 0xC16C, 0xC16D,
- 0xC16E, 0xC16F, 0xC1E7, 0xC170, 0xC171, 0xF4C6,
- 0xD0DF, 0xF4C7, 0xC172, 0xCFDB, 0xC173, 0xC174,
- 0xC8BA, 0xC175, 0xC176, 0xF4C8, 0xC177, 0xC178,
- 0xC179, 0xC17A, 0xC17B, 0xC17C, 0xC17D, 0xF4C9,
- 0xF4CA, 0xC17E, 0xF4CB, 0xC180, 0xC181, 0xC182,
- 0xC183, 0xC184, 0xD9FA, 0xB8FE, 0xC185, 0xC186,
- 0xE5F1, 0xD3F0, 0xC187, 0xF4E0, 0xC188, 0xCECC,
- 0xC189, 0xC18A, 0xC18B, 0xB3E1, 0xC18C, 0xC18D,
- 0xC18E, 0xC18F, 0xF1B4, 0xC190, 0xD2EE, 0xC191,
- 0xF4E1, 0xC192, 0xC193, 0xC194, 0xC195, 0xC196,
- 0xCFE8, 0xF4E2, 0xC197, 0xC198, 0xC7CC, 0xC199,
- 0xC19A, 0xC19B, 0xC19C, 0xC19D, 0xC19E, 0xB5D4,
- 0xB4E4, 0xF4E4, 0xC19F, 0xC1A0, 0xC240, 0xF4E3,
- 0xF4E5, 0xC241, 0xC242, 0xF4E6, 0xC243, 0xC244,
- 0xC245, 0xC246, 0xF4E7, 0xC247, 0xBAB2, 0xB0BF,
- 0xC248, 0xF4E8, 0xC249, 0xC24A, 0xC24B, 0xC24C,
- 0xC24D, 0xC24E, 0xC24F, 0xB7AD, 0xD2ED, 0xC250,
- 0xC251, 0xC252, 0xD2AB, 0xC0CF, 0xC253, 0xBFBC,
- 0xEBA3, 0xD5DF, 0xEAC8, 0xC254, 0xC255, 0xC256,
- 0xC257, 0xF1F3, 0xB6F8, 0xCBA3, 0xC258, 0xC259,
- 0xC4CD, 0xC25A, 0xF1E7, 0xC25B, 0xF1E8, 0xB8FB,
- 0xF1E9, 0xBAC4, 0xD4C5, 0xB0D2, 0xC25C, 0xC25D,
- 0xF1EA, 0xC25E, 0xC25F, 0xC260, 0xF1EB, 0xC261,
- 0xF1EC, 0xC262, 0xC263, 0xF1ED, 0xF1EE, 0xF1EF,
- 0xF1F1, 0xF1F0, 0xC5D5, 0xC264, 0xC265, 0xC266,
- 0xC267, 0xC268, 0xC269, 0xF1F2, 0xC26A, 0xB6FA,
- 0xC26B, 0xF1F4, 0xD2AE, 0xDEC7, 0xCBCA, 0xC26C,
- 0xC26D, 0xB3DC, 0xC26E, 0xB5A2, 0xC26F, 0xB9A2,
- 0xC270, 0xC271, 0xC4F4, 0xF1F5, 0xC272, 0xC273,
- 0xF1F6, 0xC274, 0xC275, 0xC276, 0xC1C4, 0xC1FB,
- 0xD6B0, 0xF1F7, 0xC277, 0xC278, 0xC279, 0xC27A,
- 0xF1F8, 0xC27B, 0xC1AA, 0xC27C, 0xC27D, 0xC27E,
- 0xC6B8, 0xC280, 0xBEDB, 0xC281, 0xC282, 0xC283,
- 0xC284, 0xC285, 0xC286, 0xC287, 0xC288, 0xC289,
- 0xC28A, 0xC28B, 0xC28C, 0xC28D, 0xC28E, 0xF1F9,
- 0xB4CF, 0xC28F, 0xC290, 0xC291, 0xC292, 0xC293,
- 0xC294, 0xF1FA, 0xC295, 0xC296, 0xC297, 0xC298,
- 0xC299, 0xC29A, 0xC29B, 0xC29C, 0xC29D, 0xC29E,
- 0xC29F, 0xC2A0, 0xC340, 0xEDB2, 0xEDB1, 0xC341,
- 0xC342, 0xCBE0, 0xD2DE, 0xC343, 0xCBC1, 0xD5D8,
- 0xC344, 0xC8E2, 0xC345, 0xC0DF, 0xBCA1, 0xC346,
- 0xC347, 0xC348, 0xC349, 0xC34A, 0xC34B, 0xEBC1,
- 0xC34C, 0xC34D, 0xD0A4, 0xC34E, 0xD6E2, 0xC34F,
- 0xB6C7, 0xB8D8, 0xEBC0, 0xB8CE, 0xC350, 0xEBBF,
- 0xB3A6, 0xB9C9, 0xD6AB, 0xC351, 0xB7F4, 0xB7CA,
- 0xC352, 0xC353, 0xC354, 0xBCE7, 0xB7BE, 0xEBC6,
- 0xC355, 0xEBC7, 0xB0B9, 0xBFCF, 0xC356, 0xEBC5,
- 0xD3FD, 0xC357, 0xEBC8, 0xC358, 0xC359, 0xEBC9,
- 0xC35A, 0xC35B, 0xB7CE, 0xC35C, 0xEBC2, 0xEBC4,
- 0xC9F6, 0xD6D7, 0xD5CD, 0xD0B2, 0xEBCF, 0xCEB8,
- 0xEBD0, 0xC35D, 0xB5A8, 0xC35E, 0xC35F, 0xC360,
- 0xC361, 0xC362, 0xB1B3, 0xEBD2, 0xCCA5, 0xC363,
- 0xC364, 0xC365, 0xC366, 0xC367, 0xC368, 0xC369,
- 0xC5D6, 0xEBD3, 0xC36A, 0xEBD1, 0xC5DF, 0xEBCE,
- 0xCAA4, 0xEBD5, 0xB0FB, 0xC36B, 0xC36C, 0xBAFA,
- 0xC36D, 0xC36E, 0xD8B7, 0xF1E3, 0xC36F, 0xEBCA,
- 0xEBCB, 0xEBCC, 0xEBCD, 0xEBD6, 0xE6C0, 0xEBD9,
- 0xC370, 0xBFE8, 0xD2C8, 0xEBD7, 0xEBDC, 0xB8EC,
- 0xEBD8, 0xC371, 0xBDBA, 0xC372, 0xD0D8, 0xC373,
- 0xB0B7, 0xC374, 0xEBDD, 0xC4DC, 0xC375, 0xC376,
- 0xC377, 0xC378, 0xD6AC, 0xC379, 0xC37A, 0xC37B,
- 0xB4E0, 0xC37C, 0xC37D, 0xC2F6, 0xBCB9, 0xC37E,
- 0xC380, 0xEBDA, 0xEBDB, 0xD4E0, 0xC6EA, 0xC4D4,
- 0xEBDF, 0xC5A7, 0xD9F5, 0xC381, 0xB2B1, 0xC382,
- 0xEBE4, 0xC383, 0xBDC5, 0xC384, 0xC385, 0xC386,
- 0xEBE2, 0xC387, 0xC388, 0xC389, 0xC38A, 0xC38B,
- 0xC38C, 0xC38D, 0xC38E, 0xC38F, 0xC390, 0xC391,
- 0xC392, 0xC393, 0xEBE3, 0xC394, 0xC395, 0xB8AC,
- 0xC396, 0xCDD1, 0xEBE5, 0xC397, 0xC398, 0xC399,
- 0xEBE1, 0xC39A, 0xC1B3, 0xC39B, 0xC39C, 0xC39D,
- 0xC39E, 0xC39F, 0xC6A2, 0xC3A0, 0xC440, 0xC441,
- 0xC442, 0xC443, 0xC444, 0xC445, 0xCCF3, 0xC446,
- 0xEBE6, 0xC447, 0xC0B0, 0xD2B8, 0xEBE7, 0xC448,
- 0xC449, 0xC44A, 0xB8AF, 0xB8AD, 0xC44B, 0xEBE8,
- 0xC7BB, 0xCDF3, 0xC44C, 0xC44D, 0xC44E, 0xEBEA,
- 0xEBEB, 0xC44F, 0xC450, 0xC451, 0xC452, 0xC453,
- 0xEBED, 0xC454, 0xC455, 0xC456, 0xC457, 0xD0C8,
- 0xC458, 0xEBF2, 0xC459, 0xEBEE, 0xC45A, 0xC45B,
- 0xC45C, 0xEBF1, 0xC8F9, 0xC45D, 0xD1FC, 0xEBEC,
- 0xC45E, 0xC45F, 0xEBE9, 0xC460, 0xC461, 0xC462,
- 0xC463, 0xB8B9, 0xCFD9, 0xC4E5, 0xEBEF, 0xEBF0,
- 0xCCDA, 0xCDC8, 0xB0F2, 0xC464, 0xEBF6, 0xC465,
- 0xC466, 0xC467, 0xC468, 0xC469, 0xEBF5, 0xC46A,
- 0xB2B2, 0xC46B, 0xC46C, 0xC46D, 0xC46E, 0xB8E0,
- 0xC46F, 0xEBF7, 0xC470, 0xC471, 0xC472, 0xC473,
- 0xC474, 0xC475, 0xB1EC, 0xC476, 0xC477, 0xCCC5,
- 0xC4A4, 0xCFA5, 0xC478, 0xC479, 0xC47A, 0xC47B,
- 0xC47C, 0xEBF9, 0xC47D, 0xC47E, 0xECA2, 0xC480,
- 0xC5F2, 0xC481, 0xEBFA, 0xC482, 0xC483, 0xC484,
- 0xC485, 0xC486, 0xC487, 0xC488, 0xC489, 0xC9C5,
- 0xC48A, 0xC48B, 0xC48C, 0xC48D, 0xC48E, 0xC48F,
- 0xE2DF, 0xEBFE, 0xC490, 0xC491, 0xC492, 0xC493,
- 0xCDCE, 0xECA1, 0xB1DB, 0xD3B7, 0xC494, 0xC495,
- 0xD2DC, 0xC496, 0xC497, 0xC498, 0xEBFD, 0xC499,
- 0xEBFB, 0xC49A, 0xC49B, 0xC49C, 0xC49D, 0xC49E,
- 0xC49F, 0xC4A0, 0xC540, 0xC541, 0xC542, 0xC543,
- 0xC544, 0xC545, 0xC546, 0xC547, 0xC548, 0xC549,
- 0xC54A, 0xC54B, 0xC54C, 0xC54D, 0xC54E, 0xB3BC,
- 0xC54F, 0xC550, 0xC551, 0xEAB0, 0xC552, 0xC553,
- 0xD7D4, 0xC554, 0xF4AB, 0xB3F4, 0xC555, 0xC556,
- 0xC557, 0xC558, 0xC559, 0xD6C1, 0xD6C2, 0xC55A,
- 0xC55B, 0xC55C, 0xC55D, 0xC55E, 0xC55F, 0xD5E9,
- 0xBECA, 0xC560, 0xF4A7, 0xC561, 0xD2A8, 0xF4A8,
- 0xF4A9, 0xC562, 0xF4AA, 0xBECB, 0xD3DF, 0xC563,
- 0xC564, 0xC565, 0xC566, 0xC567, 0xC9E0, 0xC9E1,
- 0xC568, 0xC569, 0xF3C2, 0xC56A, 0xCAE6, 0xC56B,
- 0xCCF2, 0xC56C, 0xC56D, 0xC56E, 0xC56F, 0xC570,
- 0xC571, 0xE2B6, 0xCBB4, 0xC572, 0xCEE8, 0xD6DB,
- 0xC573, 0xF4AD, 0xF4AE, 0xF4AF, 0xC574, 0xC575,
- 0xC576, 0xC577, 0xF4B2, 0xC578, 0xBABD, 0xF4B3,
- 0xB0E3, 0xF4B0, 0xC579, 0xF4B1, 0xBDA2, 0xB2D5,
- 0xC57A, 0xF4B6, 0xF4B7, 0xB6E6, 0xB2B0, 0xCFCF,
- 0xF4B4, 0xB4AC, 0xC57B, 0xF4B5, 0xC57C, 0xC57D,
- 0xF4B8, 0xC57E, 0xC580, 0xC581, 0xC582, 0xC583,
- 0xF4B9, 0xC584, 0xC585, 0xCDA7, 0xC586, 0xF4BA,
- 0xC587, 0xF4BB, 0xC588, 0xC589, 0xC58A, 0xF4BC,
- 0xC58B, 0xC58C, 0xC58D, 0xC58E, 0xC58F, 0xC590,
- 0xC591, 0xC592, 0xCBD2, 0xC593, 0xF4BD, 0xC594,
- 0xC595, 0xC596, 0xC597, 0xF4BE, 0xC598, 0xC599,
- 0xC59A, 0xC59B, 0xC59C, 0xC59D, 0xC59E, 0xC59F,
- 0xF4BF, 0xC5A0, 0xC640, 0xC641, 0xC642, 0xC643,
- 0xF4DE, 0xC1BC, 0xBCE8, 0xC644, 0xC9AB, 0xD1DE,
- 0xE5F5, 0xC645, 0xC646, 0xC647, 0xC648, 0xDCB3,
- 0xD2D5, 0xC649, 0xC64A, 0xDCB4, 0xB0AC, 0xDCB5,
- 0xC64B, 0xC64C, 0xBDDA, 0xC64D, 0xDCB9, 0xC64E,
- 0xC64F, 0xC650, 0xD8C2, 0xC651, 0xDCB7, 0xD3F3,
- 0xC652, 0xC9D6, 0xDCBA, 0xDCB6, 0xC653, 0xDCBB,
- 0xC3A2, 0xC654, 0xC655, 0xC656, 0xC657, 0xDCBC,
- 0xDCC5, 0xDCBD, 0xC658, 0xC659, 0xCEDF, 0xD6A5,
- 0xC65A, 0xDCCF, 0xC65B, 0xDCCD, 0xC65C, 0xC65D,
- 0xDCD2, 0xBDE6, 0xC2AB, 0xC65E, 0xDCB8, 0xDCCB,
- 0xDCCE, 0xDCBE, 0xB7D2, 0xB0C5, 0xDCC7, 0xD0BE,
- 0xDCC1, 0xBBA8, 0xC65F, 0xB7BC, 0xDCCC, 0xC660,
- 0xC661, 0xDCC6, 0xDCBF, 0xC7DB, 0xC662, 0xC663,
- 0xC664, 0xD1BF, 0xDCC0, 0xC665, 0xC666, 0xDCCA,
- 0xC667, 0xC668, 0xDCD0, 0xC669, 0xC66A, 0xCEAD,
- 0xDCC2, 0xC66B, 0xDCC3, 0xDCC8, 0xDCC9, 0xB2D4,
- 0xDCD1, 0xCBD5, 0xC66C, 0xD4B7, 0xDCDB, 0xDCDF,
- 0xCCA6, 0xDCE6, 0xC66D, 0xC3E7, 0xDCDC, 0xC66E,
- 0xC66F, 0xBFC1, 0xDCD9, 0xC670, 0xB0FA, 0xB9B6,
- 0xDCE5, 0xDCD3, 0xC671, 0xDCC4, 0xDCD6, 0xC8F4,
- 0xBFE0, 0xC672, 0xC673, 0xC674, 0xC675, 0xC9BB,
- 0xC676, 0xC677, 0xC678, 0xB1BD, 0xC679, 0xD3A2,
- 0xC67A, 0xC67B, 0xDCDA, 0xC67C, 0xC67D, 0xDCD5,
- 0xC67E, 0xC6BB, 0xC680, 0xDCDE, 0xC681, 0xC682,
- 0xC683, 0xC684, 0xC685, 0xD7C2, 0xC3AF, 0xB7B6,
- 0xC7D1, 0xC3A9, 0xDCE2, 0xDCD8, 0xDCEB, 0xDCD4,
- 0xC686, 0xC687, 0xDCDD, 0xC688, 0xBEA5, 0xDCD7,
- 0xC689, 0xDCE0, 0xC68A, 0xC68B, 0xDCE3, 0xDCE4,
- 0xC68C, 0xDCF8, 0xC68D, 0xC68E, 0xDCE1, 0xDDA2,
- 0xDCE7, 0xC68F, 0xC690, 0xC691, 0xC692, 0xC693,
- 0xC694, 0xC695, 0xC696, 0xC697, 0xC698, 0xBCEB,
- 0xB4C4, 0xC699, 0xC69A, 0xC3A3, 0xB2E7, 0xDCFA,
- 0xC69B, 0xDCF2, 0xC69C, 0xDCEF, 0xC69D, 0xDCFC,
- 0xDCEE, 0xD2F0, 0xB2E8, 0xC69E, 0xC8D7, 0xC8E3,
- 0xDCFB, 0xC69F, 0xDCED, 0xC6A0, 0xC740, 0xC741,
- 0xDCF7, 0xC742, 0xC743, 0xDCF5, 0xC744, 0xC745,
- 0xBEA3, 0xDCF4, 0xC746, 0xB2DD, 0xC747, 0xC748,
- 0xC749, 0xC74A, 0xC74B, 0xDCF3, 0xBCF6, 0xDCE8,
- 0xBBC4, 0xC74C, 0xC0F3, 0xC74D, 0xC74E, 0xC74F,
- 0xC750, 0xC751, 0xBCD4, 0xDCE9, 0xDCEA, 0xC752,
- 0xDCF1, 0xDCF6, 0xDCF9, 0xB5B4, 0xC753, 0xC8D9,
- 0xBBE7, 0xDCFE, 0xDCFD, 0xD3AB, 0xDDA1, 0xDDA3,
- 0xDDA5, 0xD2F1, 0xDDA4, 0xDDA6, 0xDDA7, 0xD2A9,
- 0xC754, 0xC755, 0xC756, 0xC757, 0xC758, 0xC759,
- 0xC75A, 0xBAC9, 0xDDA9, 0xC75B, 0xC75C, 0xDDB6,
- 0xDDB1, 0xDDB4, 0xC75D, 0xC75E, 0xC75F, 0xC760,
- 0xC761, 0xC762, 0xC763, 0xDDB0, 0xC6CE, 0xC764,
- 0xC765, 0xC0F2, 0xC766, 0xC767, 0xC768, 0xC769,
- 0xC9AF, 0xC76A, 0xC76B, 0xC76C, 0xDCEC, 0xDDAE,
- 0xC76D, 0xC76E, 0xC76F, 0xC770, 0xDDB7, 0xC771,
- 0xC772, 0xDCF0, 0xDDAF, 0xC773, 0xDDB8, 0xC774,
- 0xDDAC, 0xC775, 0xC776, 0xC777, 0xC778, 0xC779,
- 0xC77A, 0xC77B, 0xDDB9, 0xDDB3, 0xDDAD, 0xC4AA,
- 0xC77C, 0xC77D, 0xC77E, 0xC780, 0xDDA8, 0xC0B3,
- 0xC1AB, 0xDDAA, 0xDDAB, 0xC781, 0xDDB2, 0xBBF1,
- 0xDDB5, 0xD3A8, 0xDDBA, 0xC782, 0xDDBB, 0xC3A7,
- 0xC783, 0xC784, 0xDDD2, 0xDDBC, 0xC785, 0xC786,
- 0xC787, 0xDDD1, 0xC788, 0xB9BD, 0xC789, 0xC78A,
- 0xBED5, 0xC78B, 0xBEFA, 0xC78C, 0xC78D, 0xBACA,
- 0xC78E, 0xC78F, 0xC790, 0xC791, 0xDDCA, 0xC792,
- 0xDDC5, 0xC793, 0xDDBF, 0xC794, 0xC795, 0xC796,
- 0xB2CB, 0xDDC3, 0xC797, 0xDDCB, 0xB2A4, 0xDDD5,
- 0xC798, 0xC799, 0xC79A, 0xDDBE, 0xC79B, 0xC79C,
- 0xC79D, 0xC6D0, 0xDDD0, 0xC79E, 0xC79F, 0xC7A0,
- 0xC840, 0xC841, 0xDDD4, 0xC1E2, 0xB7C6, 0xC842,
- 0xC843, 0xC844, 0xC845, 0xC846, 0xDDCE, 0xDDCF,
- 0xC847, 0xC848, 0xC849, 0xDDC4, 0xC84A, 0xC84B,
- 0xC84C, 0xDDBD, 0xC84D, 0xDDCD, 0xCCD1, 0xC84E,
- 0xDDC9, 0xC84F, 0xC850, 0xC851, 0xC852, 0xDDC2,
- 0xC3C8, 0xC6BC, 0xCEAE, 0xDDCC, 0xC853, 0xDDC8,
- 0xC854, 0xC855, 0xC856, 0xC857, 0xC858, 0xC859,
- 0xDDC1, 0xC85A, 0xC85B, 0xC85C, 0xDDC6, 0xC2DC,
- 0xC85D, 0xC85E, 0xC85F, 0xC860, 0xC861, 0xC862,
- 0xD3A9, 0xD3AA, 0xDDD3, 0xCFF4, 0xC8F8, 0xC863,
- 0xC864, 0xC865, 0xC866, 0xC867, 0xC868, 0xC869,
- 0xC86A, 0xDDE6, 0xC86B, 0xC86C, 0xC86D, 0xC86E,
- 0xC86F, 0xC870, 0xDDC7, 0xC871, 0xC872, 0xC873,
- 0xDDE0, 0xC2E4, 0xC874, 0xC875, 0xC876, 0xC877,
- 0xC878, 0xC879, 0xC87A, 0xC87B, 0xDDE1, 0xC87C,
- 0xC87D, 0xC87E, 0xC880, 0xC881, 0xC882, 0xC883,
- 0xC884, 0xC885, 0xC886, 0xDDD7, 0xC887, 0xC888,
- 0xC889, 0xC88A, 0xC88B, 0xD6F8, 0xC88C, 0xDDD9,
- 0xDDD8, 0xB8F0, 0xDDD6, 0xC88D, 0xC88E, 0xC88F,
- 0xC890, 0xC6CF, 0xC891, 0xB6AD, 0xC892, 0xC893,
- 0xC894, 0xC895, 0xC896, 0xDDE2, 0xC897, 0xBAF9,
- 0xD4E1, 0xDDE7, 0xC898, 0xC899, 0xC89A, 0xB4D0,
- 0xC89B, 0xDDDA, 0xC89C, 0xBFFB, 0xDDE3, 0xC89D,
- 0xDDDF, 0xC89E, 0xDDDD, 0xC89F, 0xC8A0, 0xC940,
- 0xC941, 0xC942, 0xC943, 0xC944, 0xB5D9, 0xC945,
- 0xC946, 0xC947, 0xC948, 0xDDDB, 0xDDDC, 0xDDDE,
- 0xC949, 0xBDAF, 0xDDE4, 0xC94A, 0xDDE5, 0xC94B,
- 0xC94C, 0xC94D, 0xC94E, 0xC94F, 0xC950, 0xC951,
- 0xC952, 0xDDF5, 0xC953, 0xC3C9, 0xC954, 0xC955,
- 0xCBE2, 0xC956, 0xC957, 0xC958, 0xC959, 0xDDF2,
- 0xC95A, 0xC95B, 0xC95C, 0xC95D, 0xC95E, 0xC95F,
- 0xC960, 0xC961, 0xC962, 0xC963, 0xC964, 0xC965,
- 0xC966, 0xD8E1, 0xC967, 0xC968, 0xC6D1, 0xC969,
- 0xDDF4, 0xC96A, 0xC96B, 0xC96C, 0xD5F4, 0xDDF3,
- 0xDDF0, 0xC96D, 0xC96E, 0xDDEC, 0xC96F, 0xDDEF,
- 0xC970, 0xDDE8, 0xC971, 0xC972, 0xD0EE, 0xC973,
- 0xC974, 0xC975, 0xC976, 0xC8D8, 0xDDEE, 0xC977,
- 0xC978, 0xDDE9, 0xC979, 0xC97A, 0xDDEA, 0xCBF2,
- 0xC97B, 0xDDED, 0xC97C, 0xC97D, 0xB1CD, 0xC97E,
- 0xC980, 0xC981, 0xC982, 0xC983, 0xC984, 0xC0B6,
- 0xC985, 0xBCBB, 0xDDF1, 0xC986, 0xC987, 0xDDF7,
- 0xC988, 0xDDF6, 0xDDEB, 0xC989, 0xC98A, 0xC98B,
- 0xC98C, 0xC98D, 0xC5EE, 0xC98E, 0xC98F, 0xC990,
- 0xDDFB, 0xC991, 0xC992, 0xC993, 0xC994, 0xC995,
- 0xC996, 0xC997, 0xC998, 0xC999, 0xC99A, 0xC99B,
- 0xDEA4, 0xC99C, 0xC99D, 0xDEA3, 0xC99E, 0xC99F,
- 0xC9A0, 0xCA40, 0xCA41, 0xCA42, 0xCA43, 0xCA44,
- 0xCA45, 0xCA46, 0xCA47, 0xCA48, 0xDDF8, 0xCA49,
- 0xCA4A, 0xCA4B, 0xCA4C, 0xC3EF, 0xCA4D, 0xC2FB,
- 0xCA4E, 0xCA4F, 0xCA50, 0xD5E1, 0xCA51, 0xCA52,
- 0xCEB5, 0xCA53, 0xCA54, 0xCA55, 0xCA56, 0xDDFD,
- 0xCA57, 0xB2CC, 0xCA58, 0xCA59, 0xCA5A, 0xCA5B,
- 0xCA5C, 0xCA5D, 0xCA5E, 0xCA5F, 0xCA60, 0xC4E8,
- 0xCADF, 0xCA61, 0xCA62, 0xCA63, 0xCA64, 0xCA65,
- 0xCA66, 0xCA67, 0xCA68, 0xCA69, 0xCA6A, 0xC7BE,
- 0xDDFA, 0xDDFC, 0xDDFE, 0xDEA2, 0xB0AA, 0xB1CE,
- 0xCA6B, 0xCA6C, 0xCA6D, 0xCA6E, 0xCA6F, 0xDEAC,
- 0xCA70, 0xCA71, 0xCA72, 0xCA73, 0xDEA6, 0xBDB6,
- 0xC8EF, 0xCA74, 0xCA75, 0xCA76, 0xCA77, 0xCA78,
- 0xCA79, 0xCA7A, 0xCA7B, 0xCA7C, 0xCA7D, 0xCA7E,
- 0xDEA1, 0xCA80, 0xCA81, 0xDEA5, 0xCA82, 0xCA83,
- 0xCA84, 0xCA85, 0xDEA9, 0xCA86, 0xCA87, 0xCA88,
- 0xCA89, 0xCA8A, 0xDEA8, 0xCA8B, 0xCA8C, 0xCA8D,
- 0xDEA7, 0xCA8E, 0xCA8F, 0xCA90, 0xCA91, 0xCA92,
- 0xCA93, 0xCA94, 0xCA95, 0xCA96, 0xDEAD, 0xCA97,
- 0xD4CC, 0xCA98, 0xCA99, 0xCA9A, 0xCA9B, 0xDEB3,
- 0xDEAA, 0xDEAE, 0xCA9C, 0xCA9D, 0xC0D9, 0xCA9E,
- 0xCA9F, 0xCAA0, 0xCB40, 0xCB41, 0xB1A1, 0xDEB6,
- 0xCB42, 0xDEB1, 0xCB43, 0xCB44, 0xCB45, 0xCB46,
- 0xCB47, 0xCB48, 0xCB49, 0xDEB2, 0xCB4A, 0xCB4B,
- 0xCB4C, 0xCB4D, 0xCB4E, 0xCB4F, 0xCB50, 0xCB51,
- 0xCB52, 0xCB53, 0xCB54, 0xD1A6, 0xDEB5, 0xCB55,
- 0xCB56, 0xCB57, 0xCB58, 0xCB59, 0xCB5A, 0xCB5B,
- 0xDEAF, 0xCB5C, 0xCB5D, 0xCB5E, 0xDEB0, 0xCB5F,
- 0xD0BD, 0xCB60, 0xCB61, 0xCB62, 0xDEB4, 0xCAED,
- 0xDEB9, 0xCB63, 0xCB64, 0xCB65, 0xCB66, 0xCB67,
- 0xCB68, 0xDEB8, 0xCB69, 0xDEB7, 0xCB6A, 0xCB6B,
- 0xCB6C, 0xCB6D, 0xCB6E, 0xCB6F, 0xCB70, 0xDEBB,
- 0xCB71, 0xCB72, 0xCB73, 0xCB74, 0xCB75, 0xCB76,
- 0xCB77, 0xBDE5, 0xCB78, 0xCB79, 0xCB7A, 0xCB7B,
- 0xCB7C, 0xB2D8, 0xC3EA, 0xCB7D, 0xCB7E, 0xDEBA,
- 0xCB80, 0xC5BA, 0xCB81, 0xCB82, 0xCB83, 0xCB84,
- 0xCB85, 0xCB86, 0xDEBC, 0xCB87, 0xCB88, 0xCB89,
- 0xCB8A, 0xCB8B, 0xCB8C, 0xCB8D, 0xCCD9, 0xCB8E,
- 0xCB8F, 0xCB90, 0xCB91, 0xB7AA, 0xCB92, 0xCB93,
- 0xCB94, 0xCB95, 0xCB96, 0xCB97, 0xCB98, 0xCB99,
- 0xCB9A, 0xCB9B, 0xCB9C, 0xCB9D, 0xCB9E, 0xCB9F,
- 0xCBA0, 0xCC40, 0xCC41, 0xD4E5, 0xCC42, 0xCC43,
- 0xCC44, 0xDEBD, 0xCC45, 0xCC46, 0xCC47, 0xCC48,
- 0xCC49, 0xDEBF, 0xCC4A, 0xCC4B, 0xCC4C, 0xCC4D,
- 0xCC4E, 0xCC4F, 0xCC50, 0xCC51, 0xCC52, 0xCC53,
- 0xCC54, 0xC4A2, 0xCC55, 0xCC56, 0xCC57, 0xCC58,
- 0xDEC1, 0xCC59, 0xCC5A, 0xCC5B, 0xCC5C, 0xCC5D,
- 0xCC5E, 0xCC5F, 0xCC60, 0xCC61, 0xCC62, 0xCC63,
- 0xCC64, 0xCC65, 0xCC66, 0xCC67, 0xCC68, 0xDEBE,
- 0xCC69, 0xDEC0, 0xCC6A, 0xCC6B, 0xCC6C, 0xCC6D,
- 0xCC6E, 0xCC6F, 0xCC70, 0xCC71, 0xCC72, 0xCC73,
- 0xCC74, 0xCC75, 0xCC76, 0xCC77, 0xD5BA, 0xCC78,
- 0xCC79, 0xCC7A, 0xDEC2, 0xCC7B, 0xCC7C, 0xCC7D,
- 0xCC7E, 0xCC80, 0xCC81, 0xCC82, 0xCC83, 0xCC84,
- 0xCC85, 0xCC86, 0xCC87, 0xCC88, 0xCC89, 0xCC8A,
- 0xCC8B, 0xF2AE, 0xBBA2, 0xC2B2, 0xC5B0, 0xC2C7,
- 0xCC8C, 0xCC8D, 0xF2AF, 0xCC8E, 0xCC8F, 0xCC90,
- 0xCC91, 0xCC92, 0xD0E9, 0xCC93, 0xCC94, 0xCC95,
- 0xD3DD, 0xCC96, 0xCC97, 0xCC98, 0xEBBD, 0xCC99,
- 0xCC9A, 0xCC9B, 0xCC9C, 0xCC9D, 0xCC9E, 0xCC9F,
- 0xCCA0, 0xB3E6, 0xF2B0, 0xCD40, 0xF2B1, 0xCD41,
- 0xCD42, 0xCAAD, 0xCD43, 0xCD44, 0xCD45, 0xCD46,
- 0xCD47, 0xCD48, 0xCD49, 0xBAE7, 0xF2B3, 0xF2B5,
- 0xF2B4, 0xCBE4, 0xCFBA, 0xF2B2, 0xCAB4, 0xD2CF,
- 0xC2EC, 0xCD4A, 0xCD4B, 0xCD4C, 0xCD4D, 0xCD4E,
- 0xCD4F, 0xCD50, 0xCEC3, 0xF2B8, 0xB0F6, 0xF2B7,
- 0xCD51, 0xCD52, 0xCD53, 0xCD54, 0xCD55, 0xF2BE,
- 0xCD56, 0xB2CF, 0xCD57, 0xCD58, 0xCD59, 0xCD5A,
- 0xCD5B, 0xCD5C, 0xD1C1, 0xF2BA, 0xCD5D, 0xCD5E,
- 0xCD5F, 0xCD60, 0xCD61, 0xF2BC, 0xD4E9, 0xCD62,
- 0xCD63, 0xF2BB, 0xF2B6, 0xF2BF, 0xF2BD, 0xCD64,
- 0xF2B9, 0xCD65, 0xCD66, 0xF2C7, 0xF2C4, 0xF2C6,
- 0xCD67, 0xCD68, 0xF2CA, 0xF2C2, 0xF2C0, 0xCD69,
- 0xCD6A, 0xCD6B, 0xF2C5, 0xCD6C, 0xCD6D, 0xCD6E,
- 0xCD6F, 0xCD70, 0xD6FB, 0xCD71, 0xCD72, 0xCD73,
- 0xF2C1, 0xCD74, 0xC7F9, 0xC9DF, 0xCD75, 0xF2C8,
- 0xB9C6, 0xB5B0, 0xCD76, 0xCD77, 0xF2C3, 0xF2C9,
- 0xF2D0, 0xF2D6, 0xCD78, 0xCD79, 0xBBD7, 0xCD7A,
- 0xCD7B, 0xCD7C, 0xF2D5, 0xCDDC, 0xCD7D, 0xD6EB,
- 0xCD7E, 0xCD80, 0xF2D2, 0xF2D4, 0xCD81, 0xCD82,
- 0xCD83, 0xCD84, 0xB8F2, 0xCD85, 0xCD86, 0xCD87,
- 0xCD88, 0xF2CB, 0xCD89, 0xCD8A, 0xCD8B, 0xF2CE,
- 0xC2F9, 0xCD8C, 0xD5DD, 0xF2CC, 0xF2CD, 0xF2CF,
- 0xF2D3, 0xCD8D, 0xCD8E, 0xCD8F, 0xF2D9, 0xD3BC,
- 0xCD90, 0xCD91, 0xCD92, 0xCD93, 0xB6EA, 0xCD94,
- 0xCAF1, 0xCD95, 0xB7E4, 0xF2D7, 0xCD96, 0xCD97,
- 0xCD98, 0xF2D8, 0xF2DA, 0xF2DD, 0xF2DB, 0xCD99,
- 0xCD9A, 0xF2DC, 0xCD9B, 0xCD9C, 0xCD9D, 0xCD9E,
- 0xD1D1, 0xF2D1, 0xCD9F, 0xCDC9, 0xCDA0, 0xCECF,
- 0xD6A9, 0xCE40, 0xF2E3, 0xCE41, 0xC3DB, 0xCE42,
- 0xF2E0, 0xCE43, 0xCE44, 0xC0AF, 0xF2EC, 0xF2DE,
- 0xCE45, 0xF2E1, 0xCE46, 0xCE47, 0xCE48, 0xF2E8,
- 0xCE49, 0xCE4A, 0xCE4B, 0xCE4C, 0xF2E2, 0xCE4D,
- 0xCE4E, 0xF2E7, 0xCE4F, 0xCE50, 0xF2E6, 0xCE51,
- 0xCE52, 0xF2E9, 0xCE53, 0xCE54, 0xCE55, 0xF2DF,
- 0xCE56, 0xCE57, 0xF2E4, 0xF2EA, 0xCE58, 0xCE59,
- 0xCE5A, 0xCE5B, 0xCE5C, 0xCE5D, 0xCE5E, 0xD3AC,
- 0xF2E5, 0xB2F5, 0xCE5F, 0xCE60, 0xF2F2, 0xCE61,
- 0xD0AB, 0xCE62, 0xCE63, 0xCE64, 0xCE65, 0xF2F5,
- 0xCE66, 0xCE67, 0xCE68, 0xBBC8, 0xCE69, 0xF2F9,
- 0xCE6A, 0xCE6B, 0xCE6C, 0xCE6D, 0xCE6E, 0xCE6F,
- 0xF2F0, 0xCE70, 0xCE71, 0xF2F6, 0xF2F8, 0xF2FA,
- 0xCE72, 0xCE73, 0xCE74, 0xCE75, 0xCE76, 0xCE77,
- 0xCE78, 0xCE79, 0xF2F3, 0xCE7A, 0xF2F1, 0xCE7B,
- 0xCE7C, 0xCE7D, 0xBAFB, 0xCE7E, 0xB5FB, 0xCE80,
- 0xCE81, 0xCE82, 0xCE83, 0xF2EF, 0xF2F7, 0xF2ED,
- 0xF2EE, 0xCE84, 0xCE85, 0xCE86, 0xF2EB, 0xF3A6,
- 0xCE87, 0xF3A3, 0xCE88, 0xCE89, 0xF3A2, 0xCE8A,
- 0xCE8B, 0xF2F4, 0xCE8C, 0xC8DA, 0xCE8D, 0xCE8E,
- 0xCE8F, 0xCE90, 0xCE91, 0xF2FB, 0xCE92, 0xCE93,
- 0xCE94, 0xF3A5, 0xCE95, 0xCE96, 0xCE97, 0xCE98,
- 0xCE99, 0xCE9A, 0xCE9B, 0xC3F8, 0xCE9C, 0xCE9D,
- 0xCE9E, 0xCE9F, 0xCEA0, 0xCF40, 0xCF41, 0xCF42,
- 0xF2FD, 0xCF43, 0xCF44, 0xF3A7, 0xF3A9, 0xF3A4,
- 0xCF45, 0xF2FC, 0xCF46, 0xCF47, 0xCF48, 0xF3AB,
- 0xCF49, 0xF3AA, 0xCF4A, 0xCF4B, 0xCF4C, 0xCF4D,
- 0xC2DD, 0xCF4E, 0xCF4F, 0xF3AE, 0xCF50, 0xCF51,
- 0xF3B0, 0xCF52, 0xCF53, 0xCF54, 0xCF55, 0xCF56,
- 0xF3A1, 0xCF57, 0xCF58, 0xCF59, 0xF3B1, 0xF3AC,
- 0xCF5A, 0xCF5B, 0xCF5C, 0xCF5D, 0xCF5E, 0xF3AF,
- 0xF2FE, 0xF3AD, 0xCF5F, 0xCF60, 0xCF61, 0xCF62,
- 0xCF63, 0xCF64, 0xCF65, 0xF3B2, 0xCF66, 0xCF67,
- 0xCF68, 0xCF69, 0xF3B4, 0xCF6A, 0xCF6B, 0xCF6C,
- 0xCF6D, 0xF3A8, 0xCF6E, 0xCF6F, 0xCF70, 0xCF71,
- 0xF3B3, 0xCF72, 0xCF73, 0xCF74, 0xF3B5, 0xCF75,
- 0xCF76, 0xCF77, 0xCF78, 0xCF79, 0xCF7A, 0xCF7B,
- 0xCF7C, 0xCF7D, 0xCF7E, 0xD0B7, 0xCF80, 0xCF81,
- 0xCF82, 0xCF83, 0xF3B8, 0xCF84, 0xCF85, 0xCF86,
- 0xCF87, 0xD9F9, 0xCF88, 0xCF89, 0xCF8A, 0xCF8B,
- 0xCF8C, 0xCF8D, 0xF3B9, 0xCF8E, 0xCF8F, 0xCF90,
- 0xCF91, 0xCF92, 0xCF93, 0xCF94, 0xCF95, 0xF3B7,
- 0xCF96, 0xC8E4, 0xF3B6, 0xCF97, 0xCF98, 0xCF99,
- 0xCF9A, 0xF3BA, 0xCF9B, 0xCF9C, 0xCF9D, 0xCF9E,
- 0xCF9F, 0xF3BB, 0xB4C0, 0xCFA0, 0xD040, 0xD041,
- 0xD042, 0xD043, 0xD044, 0xD045, 0xD046, 0xD047,
- 0xD048, 0xD049, 0xD04A, 0xD04B, 0xD04C, 0xD04D,
- 0xEEC3, 0xD04E, 0xD04F, 0xD050, 0xD051, 0xD052,
- 0xD053, 0xF3BC, 0xD054, 0xD055, 0xF3BD, 0xD056,
- 0xD057, 0xD058, 0xD1AA, 0xD059, 0xD05A, 0xD05B,
- 0xF4AC, 0xD0C6, 0xD05C, 0xD05D, 0xD05E, 0xD05F,
- 0xD060, 0xD061, 0xD0D0, 0xD1DC, 0xD062, 0xD063,
- 0xD064, 0xD065, 0xD066, 0xD067, 0xCFCE, 0xD068,
- 0xD069, 0xBDD6, 0xD06A, 0xD1C3, 0xD06B, 0xD06C,
- 0xD06D, 0xD06E, 0xD06F, 0xD070, 0xD071, 0xBAE2,
- 0xE1E9, 0xD2C2, 0xF1C2, 0xB2B9, 0xD072, 0xD073,
- 0xB1ED, 0xF1C3, 0xD074, 0xC9C0, 0xB3C4, 0xD075,
- 0xD9F2, 0xD076, 0xCBA5, 0xD077, 0xF1C4, 0xD078,
- 0xD079, 0xD07A, 0xD07B, 0xD6D4, 0xD07C, 0xD07D,
- 0xD07E, 0xD080, 0xD081, 0xF1C5, 0xF4C0, 0xF1C6,
- 0xD082, 0xD4AC, 0xF1C7, 0xD083, 0xB0C0, 0xF4C1,
- 0xD084, 0xD085, 0xF4C2, 0xD086, 0xD087, 0xB4FC,
- 0xD088, 0xC5DB, 0xD089, 0xD08A, 0xD08B, 0xD08C,
- 0xCCBB, 0xD08D, 0xD08E, 0xD08F, 0xD0E4, 0xD090,
- 0xD091, 0xD092, 0xD093, 0xD094, 0xCDE0, 0xD095,
- 0xD096, 0xD097, 0xD098, 0xD099, 0xF1C8, 0xD09A,
- 0xD9F3, 0xD09B, 0xD09C, 0xD09D, 0xD09E, 0xD09F,
- 0xD0A0, 0xB1BB, 0xD140, 0xCFAE, 0xD141, 0xD142,
- 0xD143, 0xB8A4, 0xD144, 0xD145, 0xD146, 0xD147,
- 0xD148, 0xF1CA, 0xD149, 0xD14A, 0xD14B, 0xD14C,
- 0xF1CB, 0xD14D, 0xD14E, 0xD14F, 0xD150, 0xB2C3,
- 0xC1D1, 0xD151, 0xD152, 0xD7B0, 0xF1C9, 0xD153,
- 0xD154, 0xF1CC, 0xD155, 0xD156, 0xD157, 0xD158,
- 0xF1CE, 0xD159, 0xD15A, 0xD15B, 0xD9F6, 0xD15C,
- 0xD2E1, 0xD4A3, 0xD15D, 0xD15E, 0xF4C3, 0xC8B9,
- 0xD15F, 0xD160, 0xD161, 0xD162, 0xD163, 0xF4C4,
- 0xD164, 0xD165, 0xF1CD, 0xF1CF, 0xBFE3, 0xF1D0,
- 0xD166, 0xD167, 0xF1D4, 0xD168, 0xD169, 0xD16A,
- 0xD16B, 0xD16C, 0xD16D, 0xD16E, 0xF1D6, 0xF1D1,
- 0xD16F, 0xC9D1, 0xC5E1, 0xD170, 0xD171, 0xD172,
- 0xC2E3, 0xB9FC, 0xD173, 0xD174, 0xF1D3, 0xD175,
- 0xF1D5, 0xD176, 0xD177, 0xD178, 0xB9D3, 0xD179,
- 0xD17A, 0xD17B, 0xD17C, 0xD17D, 0xD17E, 0xD180,
- 0xF1DB, 0xD181, 0xD182, 0xD183, 0xD184, 0xD185,
- 0xBAD6, 0xD186, 0xB0FD, 0xF1D9, 0xD187, 0xD188,
- 0xD189, 0xD18A, 0xD18B, 0xF1D8, 0xF1D2, 0xF1DA,
- 0xD18C, 0xD18D, 0xD18E, 0xD18F, 0xD190, 0xF1D7,
- 0xD191, 0xD192, 0xD193, 0xC8EC, 0xD194, 0xD195,
- 0xD196, 0xD197, 0xCDCA, 0xF1DD, 0xD198, 0xD199,
- 0xD19A, 0xD19B, 0xE5BD, 0xD19C, 0xD19D, 0xD19E,
- 0xF1DC, 0xD19F, 0xF1DE, 0xD1A0, 0xD240, 0xD241,
- 0xD242, 0xD243, 0xD244, 0xD245, 0xD246, 0xD247,
- 0xD248, 0xF1DF, 0xD249, 0xD24A, 0xCFE5, 0xD24B,
- 0xD24C, 0xD24D, 0xD24E, 0xD24F, 0xD250, 0xD251,
- 0xD252, 0xD253, 0xD254, 0xD255, 0xD256, 0xD257,
- 0xD258, 0xD259, 0xD25A, 0xD25B, 0xD25C, 0xD25D,
- 0xD25E, 0xD25F, 0xD260, 0xD261, 0xD262, 0xD263,
- 0xF4C5, 0xBDF3, 0xD264, 0xD265, 0xD266, 0xD267,
- 0xD268, 0xD269, 0xF1E0, 0xD26A, 0xD26B, 0xD26C,
- 0xD26D, 0xD26E, 0xD26F, 0xD270, 0xD271, 0xD272,
- 0xD273, 0xD274, 0xD275, 0xD276, 0xD277, 0xD278,
- 0xD279, 0xD27A, 0xD27B, 0xD27C, 0xD27D, 0xF1E1,
- 0xD27E, 0xD280, 0xD281, 0xCEF7, 0xD282, 0xD2AA,
- 0xD283, 0xF1FB, 0xD284, 0xD285, 0xB8B2, 0xD286,
- 0xD287, 0xD288, 0xD289, 0xD28A, 0xD28B, 0xD28C,
- 0xD28D, 0xD28E, 0xD28F, 0xD290, 0xD291, 0xD292,
- 0xD293, 0xD294, 0xD295, 0xD296, 0xD297, 0xD298,
- 0xD299, 0xD29A, 0xD29B, 0xD29C, 0xD29D, 0xD29E,
- 0xD29F, 0xD2A0, 0xD340, 0xD341, 0xD342, 0xD343,
- 0xD344, 0xD345, 0xD346, 0xD347, 0xD348, 0xD349,
- 0xD34A, 0xD34B, 0xD34C, 0xD34D, 0xD34E, 0xD34F,
- 0xD350, 0xD351, 0xD352, 0xD353, 0xD354, 0xD355,
- 0xD356, 0xD357, 0xD358, 0xD359, 0xD35A, 0xD35B,
- 0xD35C, 0xD35D, 0xD35E, 0xBCFB, 0xB9DB, 0xD35F,
- 0xB9E6, 0xC3D9, 0xCAD3, 0xEAE8, 0xC0C0, 0xBEF5,
- 0xEAE9, 0xEAEA, 0xEAEB, 0xD360, 0xEAEC, 0xEAED,
- 0xEAEE, 0xEAEF, 0xBDC7, 0xD361, 0xD362, 0xD363,
- 0xF5FB, 0xD364, 0xD365, 0xD366, 0xF5FD, 0xD367,
- 0xF5FE, 0xD368, 0xF5FC, 0xD369, 0xD36A, 0xD36B,
- 0xD36C, 0xBDE2, 0xD36D, 0xF6A1, 0xB4A5, 0xD36E,
- 0xD36F, 0xD370, 0xD371, 0xF6A2, 0xD372, 0xD373,
- 0xD374, 0xF6A3, 0xD375, 0xD376, 0xD377, 0xECB2,
- 0xD378, 0xD379, 0xD37A, 0xD37B, 0xD37C, 0xD37D,
- 0xD37E, 0xD380, 0xD381, 0xD382, 0xD383, 0xD384,
- 0xD1D4, 0xD385, 0xD386, 0xD387, 0xD388, 0xD389,
- 0xD38A, 0xD9EA, 0xD38B, 0xD38C, 0xD38D, 0xD38E,
- 0xD38F, 0xD390, 0xD391, 0xD392, 0xD393, 0xD394,
- 0xD395, 0xD396, 0xD397, 0xD398, 0xD399, 0xD39A,
- 0xD39B, 0xD39C, 0xD39D, 0xD39E, 0xD39F, 0xD3A0,
- 0xD440, 0xD441, 0xD442, 0xD443, 0xD444, 0xD445,
- 0xD446, 0xD447, 0xD448, 0xD449, 0xD44A, 0xD44B,
- 0xD44C, 0xD44D, 0xD44E, 0xD44F, 0xD450, 0xD451,
- 0xD452, 0xD453, 0xD454, 0xD455, 0xD456, 0xD457,
- 0xD458, 0xD459, 0xD45A, 0xD45B, 0xD45C, 0xD45D,
- 0xD45E, 0xD45F, 0xF6A4, 0xD460, 0xD461, 0xD462,
- 0xD463, 0xD464, 0xD465, 0xD466, 0xD467, 0xD468,
- 0xEEBA, 0xD469, 0xD46A, 0xD46B, 0xD46C, 0xD46D,
- 0xD46E, 0xD46F, 0xD470, 0xD471, 0xD472, 0xD473,
- 0xD474, 0xD475, 0xD476, 0xD477, 0xD478, 0xD479,
- 0xD47A, 0xD47B, 0xD47C, 0xD47D, 0xD47E, 0xD480,
- 0xD481, 0xD482, 0xD483, 0xD484, 0xD485, 0xD486,
- 0xD487, 0xD488, 0xD489, 0xD48A, 0xD48B, 0xD48C,
- 0xD48D, 0xD48E, 0xD48F, 0xD490, 0xD491, 0xD492,
- 0xD493, 0xD494, 0xD495, 0xD496, 0xD497, 0xD498,
- 0xD499, 0xD5B2, 0xD49A, 0xD49B, 0xD49C, 0xD49D,
- 0xD49E, 0xD49F, 0xD4A0, 0xD540, 0xD541, 0xD542,
- 0xD543, 0xD544, 0xD545, 0xD546, 0xD547, 0xD3FE,
- 0xCCDC, 0xD548, 0xD549, 0xD54A, 0xD54B, 0xD54C,
- 0xD54D, 0xD54E, 0xD54F, 0xCAC4, 0xD550, 0xD551,
- 0xD552, 0xD553, 0xD554, 0xD555, 0xD556, 0xD557,
- 0xD558, 0xD559, 0xD55A, 0xD55B, 0xD55C, 0xD55D,
- 0xD55E, 0xD55F, 0xD560, 0xD561, 0xD562, 0xD563,
- 0xD564, 0xD565, 0xD566, 0xD567, 0xD568, 0xD569,
- 0xD56A, 0xD56B, 0xD56C, 0xD56D, 0xD56E, 0xD56F,
- 0xD570, 0xD571, 0xD572, 0xD573, 0xD574, 0xD575,
- 0xD576, 0xD577, 0xD578, 0xD579, 0xD57A, 0xD57B,
- 0xD57C, 0xD57D, 0xD57E, 0xD580, 0xD581, 0xD582,
- 0xD583, 0xD584, 0xD585, 0xD586, 0xD587, 0xD588,
- 0xD589, 0xD58A, 0xD58B, 0xD58C, 0xD58D, 0xD58E,
- 0xD58F, 0xD590, 0xD591, 0xD592, 0xD593, 0xD594,
- 0xD595, 0xD596, 0xD597, 0xD598, 0xD599, 0xD59A,
- 0xD59B, 0xD59C, 0xD59D, 0xD59E, 0xD59F, 0xD5A0,
- 0xD640, 0xD641, 0xD642, 0xD643, 0xD644, 0xD645,
- 0xD646, 0xD647, 0xD648, 0xD649, 0xD64A, 0xD64B,
- 0xD64C, 0xD64D, 0xD64E, 0xD64F, 0xD650, 0xD651,
- 0xD652, 0xD653, 0xD654, 0xD655, 0xD656, 0xD657,
- 0xD658, 0xD659, 0xD65A, 0xD65B, 0xD65C, 0xD65D,
- 0xD65E, 0xD65F, 0xD660, 0xD661, 0xD662, 0xE5C0,
- 0xD663, 0xD664, 0xD665, 0xD666, 0xD667, 0xD668,
- 0xD669, 0xD66A, 0xD66B, 0xD66C, 0xD66D, 0xD66E,
- 0xD66F, 0xD670, 0xD671, 0xD672, 0xD673, 0xD674,
- 0xD675, 0xD676, 0xD677, 0xD678, 0xD679, 0xD67A,
- 0xD67B, 0xD67C, 0xD67D, 0xD67E, 0xD680, 0xD681,
- 0xF6A5, 0xD682, 0xD683, 0xD684, 0xD685, 0xD686,
- 0xD687, 0xD688, 0xD689, 0xD68A, 0xD68B, 0xD68C,
- 0xD68D, 0xD68E, 0xD68F, 0xD690, 0xD691, 0xD692,
- 0xD693, 0xD694, 0xD695, 0xD696, 0xD697, 0xD698,
- 0xD699, 0xD69A, 0xD69B, 0xD69C, 0xD69D, 0xD69E,
- 0xD69F, 0xD6A0, 0xD740, 0xD741, 0xD742, 0xD743,
- 0xD744, 0xD745, 0xD746, 0xD747, 0xD748, 0xD749,
- 0xD74A, 0xD74B, 0xD74C, 0xD74D, 0xD74E, 0xD74F,
- 0xD750, 0xD751, 0xD752, 0xD753, 0xD754, 0xD755,
- 0xD756, 0xD757, 0xD758, 0xD759, 0xD75A, 0xD75B,
- 0xD75C, 0xD75D, 0xD75E, 0xD75F, 0xBEAF, 0xD760,
- 0xD761, 0xD762, 0xD763, 0xD764, 0xC6A9, 0xD765,
- 0xD766, 0xD767, 0xD768, 0xD769, 0xD76A, 0xD76B,
- 0xD76C, 0xD76D, 0xD76E, 0xD76F, 0xD770, 0xD771,
- 0xD772, 0xD773, 0xD774, 0xD775, 0xD776, 0xD777,
- 0xD778, 0xD779, 0xD77A, 0xD77B, 0xD77C, 0xD77D,
- 0xD77E, 0xD780, 0xD781, 0xD782, 0xD783, 0xD784,
- 0xD785, 0xD786, 0xD787, 0xD788, 0xD789, 0xD78A,
- 0xD78B, 0xD78C, 0xD78D, 0xD78E, 0xD78F, 0xD790,
- 0xD791, 0xD792, 0xD793, 0xD794, 0xD795, 0xD796,
- 0xD797, 0xD798, 0xDAA5, 0xBCC6, 0xB6A9, 0xB8BC,
- 0xC8CF, 0xBCA5, 0xDAA6, 0xDAA7, 0xCCD6, 0xC8C3,
- 0xDAA8, 0xC6FD, 0xD799, 0xD1B5, 0xD2E9, 0xD1B6,
- 0xBCC7, 0xD79A, 0xBDB2, 0xBBE4, 0xDAA9, 0xDAAA,
- 0xD1C8, 0xDAAB, 0xD0ED, 0xB6EF, 0xC2DB, 0xD79B,
- 0xCBCF, 0xB7ED, 0xC9E8, 0xB7C3, 0xBEF7, 0xD6A4,
- 0xDAAC, 0xDAAD, 0xC6C0, 0xD7E7, 0xCAB6, 0xD79C,
- 0xD5A9, 0xCBDF, 0xD5EF, 0xDAAE, 0xD6DF, 0xB4CA,
- 0xDAB0, 0xDAAF, 0xD79D, 0xD2EB, 0xDAB1, 0xDAB2,
- 0xDAB3, 0xCAD4, 0xDAB4, 0xCAAB, 0xDAB5, 0xDAB6,
- 0xB3CF, 0xD6EF, 0xDAB7, 0xBBB0, 0xB5AE, 0xDAB8,
- 0xDAB9, 0xB9EE, 0xD1AF, 0xD2E8, 0xDABA, 0xB8C3,
- 0xCFEA, 0xB2EF, 0xDABB, 0xDABC, 0xD79E, 0xBDEB,
- 0xCEDC, 0xD3EF, 0xDABD, 0xCEF3, 0xDABE, 0xD3D5,
- 0xBBE5, 0xDABF, 0xCBB5, 0xCBD0, 0xDAC0, 0xC7EB,
- 0xD6EE, 0xDAC1, 0xC5B5, 0xB6C1, 0xDAC2, 0xB7CC,
- 0xBFCE, 0xDAC3, 0xDAC4, 0xCBAD, 0xDAC5, 0xB5F7,
- 0xDAC6, 0xC1C2, 0xD7BB, 0xDAC7, 0xCCB8, 0xD79F,
- 0xD2EA, 0xC4B1, 0xDAC8, 0xB5FD, 0xBBD1, 0xDAC9,
- 0xD0B3, 0xDACA, 0xDACB, 0xCEBD, 0xDACC, 0xDACD,
- 0xDACE, 0xB2F7, 0xDAD1, 0xDACF, 0xD1E8, 0xDAD0,
- 0xC3D5, 0xDAD2, 0xD7A0, 0xDAD3, 0xDAD4, 0xDAD5,
- 0xD0BB, 0xD2A5, 0xB0F9, 0xDAD6, 0xC7AB, 0xDAD7,
- 0xBDF7, 0xC3A1, 0xDAD8, 0xDAD9, 0xC3FD, 0xCCB7,
- 0xDADA, 0xDADB, 0xC0BE, 0xC6D7, 0xDADC, 0xDADD,
- 0xC7B4, 0xDADE, 0xDADF, 0xB9C8, 0xD840, 0xD841,
- 0xD842, 0xD843, 0xD844, 0xD845, 0xD846, 0xD847,
- 0xD848, 0xBBED, 0xD849, 0xD84A, 0xD84B, 0xD84C,
- 0xB6B9, 0xF4F8, 0xD84D, 0xF4F9, 0xD84E, 0xD84F,
- 0xCDE3, 0xD850, 0xD851, 0xD852, 0xD853, 0xD854,
- 0xD855, 0xD856, 0xD857, 0xF5B9, 0xD858, 0xD859,
- 0xD85A, 0xD85B, 0xEBE0, 0xD85C, 0xD85D, 0xD85E,
- 0xD85F, 0xD860, 0xD861, 0xCFF3, 0xBBBF, 0xD862,
- 0xD863, 0xD864, 0xD865, 0xD866, 0xD867, 0xD868,
- 0xBAC0, 0xD4A5, 0xD869, 0xD86A, 0xD86B, 0xD86C,
- 0xD86D, 0xD86E, 0xD86F, 0xE1D9, 0xD870, 0xD871,
- 0xD872, 0xD873, 0xF5F4, 0xB1AA, 0xB2F2, 0xD874,
- 0xD875, 0xD876, 0xD877, 0xD878, 0xD879, 0xD87A,
- 0xF5F5, 0xD87B, 0xD87C, 0xF5F7, 0xD87D, 0xD87E,
- 0xD880, 0xBAD1, 0xF5F6, 0xD881, 0xC3B2, 0xD882,
- 0xD883, 0xD884, 0xD885, 0xD886, 0xD887, 0xD888,
- 0xF5F9, 0xD889, 0xD88A, 0xD88B, 0xF5F8, 0xD88C,
- 0xD88D, 0xD88E, 0xD88F, 0xD890, 0xD891, 0xD892,
- 0xD893, 0xD894, 0xD895, 0xD896, 0xD897, 0xD898,
- 0xD899, 0xD89A, 0xD89B, 0xD89C, 0xD89D, 0xD89E,
- 0xD89F, 0xD8A0, 0xD940, 0xD941, 0xD942, 0xD943,
- 0xD944, 0xD945, 0xD946, 0xD947, 0xD948, 0xD949,
- 0xD94A, 0xD94B, 0xD94C, 0xD94D, 0xD94E, 0xD94F,
- 0xD950, 0xD951, 0xD952, 0xD953, 0xD954, 0xD955,
- 0xD956, 0xD957, 0xD958, 0xD959, 0xD95A, 0xD95B,
- 0xD95C, 0xD95D, 0xD95E, 0xD95F, 0xD960, 0xD961,
- 0xD962, 0xD963, 0xD964, 0xD965, 0xD966, 0xD967,
- 0xD968, 0xD969, 0xD96A, 0xD96B, 0xD96C, 0xD96D,
- 0xD96E, 0xD96F, 0xD970, 0xD971, 0xD972, 0xD973,
- 0xD974, 0xD975, 0xD976, 0xD977, 0xD978, 0xD979,
- 0xD97A, 0xD97B, 0xD97C, 0xD97D, 0xD97E, 0xD980,
- 0xD981, 0xD982, 0xD983, 0xD984, 0xD985, 0xD986,
- 0xD987, 0xD988, 0xD989, 0xD98A, 0xD98B, 0xD98C,
- 0xD98D, 0xD98E, 0xD98F, 0xD990, 0xD991, 0xD992,
- 0xD993, 0xD994, 0xD995, 0xD996, 0xD997, 0xD998,
- 0xD999, 0xD99A, 0xD99B, 0xD99C, 0xD99D, 0xD99E,
- 0xD99F, 0xD9A0, 0xDA40, 0xDA41, 0xDA42, 0xDA43,
- 0xDA44, 0xDA45, 0xDA46, 0xDA47, 0xDA48, 0xDA49,
- 0xDA4A, 0xDA4B, 0xDA4C, 0xDA4D, 0xDA4E, 0xB1B4,
- 0xD5EA, 0xB8BA, 0xDA4F, 0xB9B1, 0xB2C6, 0xD4F0,
- 0xCFCD, 0xB0DC, 0xD5CB, 0xBBF5, 0xD6CA, 0xB7B7,
- 0xCCB0, 0xC6B6, 0xB1E1, 0xB9BA, 0xD6FC, 0xB9E1,
- 0xB7A1, 0xBCFA, 0xEADA, 0xEADB, 0xCCF9, 0xB9F3,
- 0xEADC, 0xB4FB, 0xC3B3, 0xB7D1, 0xBAD8, 0xEADD,
- 0xD4F4, 0xEADE, 0xBCD6, 0xBBDF, 0xEADF, 0xC1DE,
- 0xC2B8, 0xD4DF, 0xD7CA, 0xEAE0, 0xEAE1, 0xEAE4,
- 0xEAE2, 0xEAE3, 0xC9DE, 0xB8B3, 0xB6C4, 0xEAE5,
- 0xCAEA, 0xC9CD, 0xB4CD, 0xDA50, 0xDA51, 0xE2D9,
- 0xC5E2, 0xEAE6, 0xC0B5, 0xDA52, 0xD7B8, 0xEAE7,
- 0xD7AC, 0xC8FC, 0xD8D3, 0xD8CD, 0xD4DE, 0xDA53,
- 0xD4F9, 0xC9C4, 0xD3AE, 0xB8D3, 0xB3E0, 0xDA54,
- 0xC9E2, 0xF4F6, 0xDA55, 0xDA56, 0xDA57, 0xBAD5,
- 0xDA58, 0xF4F7, 0xDA59, 0xDA5A, 0xD7DF, 0xDA5B,
- 0xDA5C, 0xF4F1, 0xB8B0, 0xD5D4, 0xB8CF, 0xC6F0,
- 0xDA5D, 0xDA5E, 0xDA5F, 0xDA60, 0xDA61, 0xDA62,
- 0xDA63, 0xDA64, 0xDA65, 0xB3C3, 0xDA66, 0xDA67,
- 0xF4F2, 0xB3AC, 0xDA68, 0xDA69, 0xDA6A, 0xDA6B,
- 0xD4BD, 0xC7F7, 0xDA6C, 0xDA6D, 0xDA6E, 0xDA6F,
- 0xDA70, 0xF4F4, 0xDA71, 0xDA72, 0xF4F3, 0xDA73,
- 0xDA74, 0xDA75, 0xDA76, 0xDA77, 0xDA78, 0xDA79,
- 0xDA7A, 0xDA7B, 0xDA7C, 0xCCCB, 0xDA7D, 0xDA7E,
- 0xDA80, 0xC8A4, 0xDA81, 0xDA82, 0xDA83, 0xDA84,
- 0xDA85, 0xDA86, 0xDA87, 0xDA88, 0xDA89, 0xDA8A,
- 0xDA8B, 0xDA8C, 0xDA8D, 0xF4F5, 0xDA8E, 0xD7E3,
- 0xC5BF, 0xF5C0, 0xDA8F, 0xDA90, 0xF5BB, 0xDA91,
- 0xF5C3, 0xDA92, 0xF5C2, 0xDA93, 0xD6BA, 0xF5C1,
- 0xDA94, 0xDA95, 0xDA96, 0xD4BE, 0xF5C4, 0xDA97,
- 0xF5CC, 0xDA98, 0xDA99, 0xDA9A, 0xDA9B, 0xB0CF,
- 0xB5F8, 0xDA9C, 0xF5C9, 0xF5CA, 0xDA9D, 0xC5DC,
- 0xDA9E, 0xDA9F, 0xDAA0, 0xDB40, 0xF5C5, 0xF5C6,
- 0xDB41, 0xDB42, 0xF5C7, 0xF5CB, 0xDB43, 0xBEE0,
- 0xF5C8, 0xB8FA, 0xDB44, 0xDB45, 0xDB46, 0xF5D0,
- 0xF5D3, 0xDB47, 0xDB48, 0xDB49, 0xBFE7, 0xDB4A,
- 0xB9F2, 0xF5BC, 0xF5CD, 0xDB4B, 0xDB4C, 0xC2B7,
- 0xDB4D, 0xDB4E, 0xDB4F, 0xCCF8, 0xDB50, 0xBCF9,
- 0xDB51, 0xF5CE, 0xF5CF, 0xF5D1, 0xB6E5, 0xF5D2,
- 0xDB52, 0xF5D5, 0xDB53, 0xDB54, 0xDB55, 0xDB56,
- 0xDB57, 0xDB58, 0xDB59, 0xF5BD, 0xDB5A, 0xDB5B,
- 0xDB5C, 0xF5D4, 0xD3BB, 0xDB5D, 0xB3EC, 0xDB5E,
- 0xDB5F, 0xCCA4, 0xDB60, 0xDB61, 0xDB62, 0xDB63,
- 0xF5D6, 0xDB64, 0xDB65, 0xDB66, 0xDB67, 0xDB68,
- 0xDB69, 0xDB6A, 0xDB6B, 0xF5D7, 0xBEE1, 0xF5D8,
- 0xDB6C, 0xDB6D, 0xCCDF, 0xF5DB, 0xDB6E, 0xDB6F,
- 0xDB70, 0xDB71, 0xDB72, 0xB2C8, 0xD7D9, 0xDB73,
- 0xF5D9, 0xDB74, 0xF5DA, 0xF5DC, 0xDB75, 0xF5E2,
- 0xDB76, 0xDB77, 0xDB78, 0xF5E0, 0xDB79, 0xDB7A,
- 0xDB7B, 0xF5DF, 0xF5DD, 0xDB7C, 0xDB7D, 0xF5E1,
- 0xDB7E, 0xDB80, 0xF5DE, 0xF5E4, 0xF5E5, 0xDB81,
- 0xCCE3, 0xDB82, 0xDB83, 0xE5BF, 0xB5B8, 0xF5E3,
- 0xF5E8, 0xCCA3, 0xDB84, 0xDB85, 0xDB86, 0xDB87,
- 0xDB88, 0xF5E6, 0xF5E7, 0xDB89, 0xDB8A, 0xDB8B,
- 0xDB8C, 0xDB8D, 0xDB8E, 0xF5BE, 0xDB8F, 0xDB90,
- 0xDB91, 0xDB92, 0xDB93, 0xDB94, 0xDB95, 0xDB96,
- 0xDB97, 0xDB98, 0xDB99, 0xDB9A, 0xB1C4, 0xDB9B,
- 0xDB9C, 0xF5BF, 0xDB9D, 0xDB9E, 0xB5C5, 0xB2E4,
- 0xDB9F, 0xF5EC, 0xF5E9, 0xDBA0, 0xB6D7, 0xDC40,
- 0xF5ED, 0xDC41, 0xF5EA, 0xDC42, 0xDC43, 0xDC44,
- 0xDC45, 0xDC46, 0xF5EB, 0xDC47, 0xDC48, 0xB4DA,
- 0xDC49, 0xD4EA, 0xDC4A, 0xDC4B, 0xDC4C, 0xF5EE,
- 0xDC4D, 0xB3F9, 0xDC4E, 0xDC4F, 0xDC50, 0xDC51,
- 0xDC52, 0xDC53, 0xDC54, 0xF5EF, 0xF5F1, 0xDC55,
- 0xDC56, 0xDC57, 0xF5F0, 0xDC58, 0xDC59, 0xDC5A,
- 0xDC5B, 0xDC5C, 0xDC5D, 0xDC5E, 0xF5F2, 0xDC5F,
- 0xF5F3, 0xDC60, 0xDC61, 0xDC62, 0xDC63, 0xDC64,
- 0xDC65, 0xDC66, 0xDC67, 0xDC68, 0xDC69, 0xDC6A,
- 0xDC6B, 0xC9ED, 0xB9AA, 0xDC6C, 0xDC6D, 0xC7FB,
- 0xDC6E, 0xDC6F, 0xB6E3, 0xDC70, 0xDC71, 0xDC72,
- 0xDC73, 0xDC74, 0xDC75, 0xDC76, 0xCCC9, 0xDC77,
- 0xDC78, 0xDC79, 0xDC7A, 0xDC7B, 0xDC7C, 0xDC7D,
- 0xDC7E, 0xDC80, 0xDC81, 0xDC82, 0xDC83, 0xDC84,
- 0xDC85, 0xDC86, 0xDC87, 0xDC88, 0xDC89, 0xDC8A,
- 0xEAA6, 0xDC8B, 0xDC8C, 0xDC8D, 0xDC8E, 0xDC8F,
- 0xDC90, 0xDC91, 0xDC92, 0xDC93, 0xDC94, 0xDC95,
- 0xDC96, 0xDC97, 0xDC98, 0xDC99, 0xDC9A, 0xDC9B,
- 0xDC9C, 0xDC9D, 0xDC9E, 0xDC9F, 0xDCA0, 0xDD40,
- 0xDD41, 0xDD42, 0xDD43, 0xDD44, 0xDD45, 0xDD46,
- 0xDD47, 0xDD48, 0xDD49, 0xDD4A, 0xDD4B, 0xDD4C,
- 0xDD4D, 0xDD4E, 0xDD4F, 0xDD50, 0xDD51, 0xDD52,
- 0xDD53, 0xDD54, 0xDD55, 0xDD56, 0xDD57, 0xDD58,
- 0xDD59, 0xDD5A, 0xDD5B, 0xDD5C, 0xDD5D, 0xDD5E,
- 0xDD5F, 0xDD60, 0xDD61, 0xDD62, 0xDD63, 0xDD64,
- 0xDD65, 0xDD66, 0xDD67, 0xDD68, 0xDD69, 0xDD6A,
- 0xDD6B, 0xDD6C, 0xDD6D, 0xDD6E, 0xDD6F, 0xDD70,
- 0xDD71, 0xDD72, 0xDD73, 0xDD74, 0xDD75, 0xDD76,
- 0xDD77, 0xDD78, 0xDD79, 0xDD7A, 0xDD7B, 0xDD7C,
- 0xDD7D, 0xDD7E, 0xDD80, 0xDD81, 0xDD82, 0xDD83,
- 0xDD84, 0xDD85, 0xDD86, 0xDD87, 0xDD88, 0xDD89,
- 0xDD8A, 0xDD8B, 0xDD8C, 0xDD8D, 0xDD8E, 0xDD8F,
- 0xDD90, 0xDD91, 0xDD92, 0xDD93, 0xDD94, 0xDD95,
- 0xDD96, 0xDD97, 0xDD98, 0xDD99, 0xDD9A, 0xDD9B,
- 0xDD9C, 0xDD9D, 0xDD9E, 0xDD9F, 0xDDA0, 0xDE40,
- 0xDE41, 0xDE42, 0xDE43, 0xDE44, 0xDE45, 0xDE46,
- 0xDE47, 0xDE48, 0xDE49, 0xDE4A, 0xDE4B, 0xDE4C,
- 0xDE4D, 0xDE4E, 0xDE4F, 0xDE50, 0xDE51, 0xDE52,
- 0xDE53, 0xDE54, 0xDE55, 0xDE56, 0xDE57, 0xDE58,
- 0xDE59, 0xDE5A, 0xDE5B, 0xDE5C, 0xDE5D, 0xDE5E,
- 0xDE5F, 0xDE60, 0xB3B5, 0xD4FE, 0xB9EC, 0xD0F9,
- 0xDE61, 0xE9ED, 0xD7AA, 0xE9EE, 0xC2D6, 0xC8ED,
- 0xBAE4, 0xE9EF, 0xE9F0, 0xE9F1, 0xD6E1, 0xE9F2,
- 0xE9F3, 0xE9F5, 0xE9F4, 0xE9F6, 0xE9F7, 0xC7E1,
- 0xE9F8, 0xD4D8, 0xE9F9, 0xBDCE, 0xDE62, 0xE9FA,
- 0xE9FB, 0xBDCF, 0xE9FC, 0xB8A8, 0xC1BE, 0xE9FD,
- 0xB1B2, 0xBBD4, 0xB9F5, 0xE9FE, 0xDE63, 0xEAA1,
- 0xEAA2, 0xEAA3, 0xB7F8, 0xBCAD, 0xDE64, 0xCAE4,
- 0xE0CE, 0xD4AF, 0xCFBD, 0xD5B7, 0xEAA4, 0xD5DE,
- 0xEAA5, 0xD0C1, 0xB9BC, 0xDE65, 0xB4C7, 0xB1D9,
- 0xDE66, 0xDE67, 0xDE68, 0xC0B1, 0xDE69, 0xDE6A,
- 0xDE6B, 0xDE6C, 0xB1E6, 0xB1E7, 0xDE6D, 0xB1E8,
- 0xDE6E, 0xDE6F, 0xDE70, 0xDE71, 0xB3BD, 0xC8E8,
- 0xDE72, 0xDE73, 0xDE74, 0xDE75, 0xE5C1, 0xDE76,
- 0xDE77, 0xB1DF, 0xDE78, 0xDE79, 0xDE7A, 0xC1C9,
- 0xB4EF, 0xDE7B, 0xDE7C, 0xC7A8, 0xD3D8, 0xDE7D,
- 0xC6F9, 0xD1B8, 0xDE7E, 0xB9FD, 0xC2F5, 0xDE80,
- 0xDE81, 0xDE82, 0xDE83, 0xDE84, 0xD3AD, 0xDE85,
- 0xD4CB, 0xBDFC, 0xDE86, 0xE5C2, 0xB7B5, 0xE5C3,
- 0xDE87, 0xDE88, 0xBBB9, 0xD5E2, 0xDE89, 0xBDF8,
- 0xD4B6, 0xCEA5, 0xC1AC, 0xB3D9, 0xDE8A, 0xDE8B,
- 0xCCF6, 0xDE8C, 0xE5C6, 0xE5C4, 0xE5C8, 0xDE8D,
- 0xE5CA, 0xE5C7, 0xB5CF, 0xC6C8, 0xDE8E, 0xB5FC,
- 0xE5C5, 0xDE8F, 0xCAF6, 0xDE90, 0xDE91, 0xE5C9,
- 0xDE92, 0xDE93, 0xDE94, 0xC3D4, 0xB1C5, 0xBCA3,
- 0xDE95, 0xDE96, 0xDE97, 0xD7B7, 0xDE98, 0xDE99,
- 0xCDCB, 0xCBCD, 0xCACA, 0xCCD3, 0xE5CC, 0xE5CB,
- 0xC4E6, 0xDE9A, 0xDE9B, 0xD1A1, 0xD1B7, 0xE5CD,
- 0xDE9C, 0xE5D0, 0xDE9D, 0xCDB8, 0xD6F0, 0xE5CF,
- 0xB5DD, 0xDE9E, 0xCDBE, 0xDE9F, 0xE5D1, 0xB6BA,
- 0xDEA0, 0xDF40, 0xCDA8, 0xB9E4, 0xDF41, 0xCAC5,
- 0xB3D1, 0xCBD9, 0xD4EC, 0xE5D2, 0xB7EA, 0xDF42,
- 0xDF43, 0xDF44, 0xE5CE, 0xDF45, 0xDF46, 0xDF47,
- 0xDF48, 0xDF49, 0xDF4A, 0xE5D5, 0xB4FE, 0xE5D6,
- 0xDF4B, 0xDF4C, 0xDF4D, 0xDF4E, 0xDF4F, 0xE5D3,
- 0xE5D4, 0xDF50, 0xD2DD, 0xDF51, 0xDF52, 0xC2DF,
- 0xB1C6, 0xDF53, 0xD3E2, 0xDF54, 0xDF55, 0xB6DD,
- 0xCBEC, 0xDF56, 0xE5D7, 0xDF57, 0xDF58, 0xD3F6,
- 0xDF59, 0xDF5A, 0xDF5B, 0xDF5C, 0xDF5D, 0xB1E9,
- 0xDF5E, 0xB6F4, 0xE5DA, 0xE5D8, 0xE5D9, 0xB5C0,
- 0xDF5F, 0xDF60, 0xDF61, 0xD2C5, 0xE5DC, 0xDF62,
- 0xDF63, 0xE5DE, 0xDF64, 0xDF65, 0xDF66, 0xDF67,
- 0xDF68, 0xDF69, 0xE5DD, 0xC7B2, 0xDF6A, 0xD2A3,
- 0xDF6B, 0xDF6C, 0xE5DB, 0xDF6D, 0xDF6E, 0xDF6F,
- 0xDF70, 0xD4E2, 0xD5DA, 0xDF71, 0xDF72, 0xDF73,
- 0xDF74, 0xDF75, 0xE5E0, 0xD7F1, 0xDF76, 0xDF77,
- 0xDF78, 0xDF79, 0xDF7A, 0xDF7B, 0xDF7C, 0xE5E1,
- 0xDF7D, 0xB1DC, 0xD1FB, 0xDF7E, 0xE5E2, 0xE5E4,
- 0xDF80, 0xDF81, 0xDF82, 0xDF83, 0xE5E3, 0xDF84,
- 0xDF85, 0xE5E5, 0xDF86, 0xDF87, 0xDF88, 0xDF89,
- 0xDF8A, 0xD2D8, 0xDF8B, 0xB5CB, 0xDF8C, 0xE7DF,
- 0xDF8D, 0xDAF5, 0xDF8E, 0xDAF8, 0xDF8F, 0xDAF6,
- 0xDF90, 0xDAF7, 0xDF91, 0xDF92, 0xDF93, 0xDAFA,
- 0xD0CF, 0xC4C7, 0xDF94, 0xDF95, 0xB0EE, 0xDF96,
- 0xDF97, 0xDF98, 0xD0B0, 0xDF99, 0xDAF9, 0xDF9A,
- 0xD3CA, 0xBAAA, 0xDBA2, 0xC7F1, 0xDF9B, 0xDAFC,
- 0xDAFB, 0xC9DB, 0xDAFD, 0xDF9C, 0xDBA1, 0xD7DE,
- 0xDAFE, 0xC1DA, 0xDF9D, 0xDF9E, 0xDBA5, 0xDF9F,
- 0xDFA0, 0xD3F4, 0xE040, 0xE041, 0xDBA7, 0xDBA4,
- 0xE042, 0xDBA8, 0xE043, 0xE044, 0xBDBC, 0xE045,
- 0xE046, 0xE047, 0xC0C9, 0xDBA3, 0xDBA6, 0xD6A3,
- 0xE048, 0xDBA9, 0xE049, 0xE04A, 0xE04B, 0xDBAD,
- 0xE04C, 0xE04D, 0xE04E, 0xDBAE, 0xDBAC, 0xBAC2,
- 0xE04F, 0xE050, 0xE051, 0xBFA4, 0xDBAB, 0xE052,
- 0xE053, 0xE054, 0xDBAA, 0xD4C7, 0xB2BF, 0xE055,
- 0xE056, 0xDBAF, 0xE057, 0xB9F9, 0xE058, 0xDBB0,
- 0xE059, 0xE05A, 0xE05B, 0xE05C, 0xB3BB, 0xE05D,
- 0xE05E, 0xE05F, 0xB5A6, 0xE060, 0xE061, 0xE062,
- 0xE063, 0xB6BC, 0xDBB1, 0xE064, 0xE065, 0xE066,
- 0xB6F5, 0xE067, 0xDBB2, 0xE068, 0xE069, 0xE06A,
- 0xE06B, 0xE06C, 0xE06D, 0xE06E, 0xE06F, 0xE070,
- 0xE071, 0xE072, 0xE073, 0xE074, 0xE075, 0xE076,
- 0xE077, 0xE078, 0xE079, 0xE07A, 0xE07B, 0xB1C9,
- 0xE07C, 0xE07D, 0xE07E, 0xE080, 0xDBB4, 0xE081,
- 0xE082, 0xE083, 0xDBB3, 0xDBB5, 0xE084, 0xE085,
- 0xE086, 0xE087, 0xE088, 0xE089, 0xE08A, 0xE08B,
- 0xE08C, 0xE08D, 0xE08E, 0xDBB7, 0xE08F, 0xDBB6,
- 0xE090, 0xE091, 0xE092, 0xE093, 0xE094, 0xE095,
- 0xE096, 0xDBB8, 0xE097, 0xE098, 0xE099, 0xE09A,
- 0xE09B, 0xE09C, 0xE09D, 0xE09E, 0xE09F, 0xDBB9,
- 0xE0A0, 0xE140, 0xDBBA, 0xE141, 0xE142, 0xD3CF,
- 0xF4FA, 0xC7F5, 0xD7C3, 0xC5E4, 0xF4FC, 0xF4FD,
- 0xF4FB, 0xE143, 0xBEC6, 0xE144, 0xE145, 0xE146,
- 0xE147, 0xD0EF, 0xE148, 0xE149, 0xB7D3, 0xE14A,
- 0xE14B, 0xD4CD, 0xCCAA, 0xE14C, 0xE14D, 0xF5A2,
- 0xF5A1, 0xBAA8, 0xF4FE, 0xCBD6, 0xE14E, 0xE14F,
- 0xE150, 0xF5A4, 0xC0D2, 0xE151, 0xB3EA, 0xE152,
- 0xCDAA, 0xF5A5, 0xF5A3, 0xBDB4, 0xF5A8, 0xE153,
- 0xF5A9, 0xBDCD, 0xC3B8, 0xBFE1, 0xCBE1, 0xF5AA,
- 0xE154, 0xE155, 0xE156, 0xF5A6, 0xF5A7, 0xC4F0,
- 0xE157, 0xE158, 0xE159, 0xE15A, 0xE15B, 0xF5AC,
- 0xE15C, 0xB4BC, 0xE15D, 0xD7ED, 0xE15E, 0xB4D7,
- 0xF5AB, 0xF5AE, 0xE15F, 0xE160, 0xF5AD, 0xF5AF,
- 0xD0D1, 0xE161, 0xE162, 0xE163, 0xE164, 0xE165,
- 0xE166, 0xE167, 0xC3D1, 0xC8A9, 0xE168, 0xE169,
- 0xE16A, 0xE16B, 0xE16C, 0xE16D, 0xF5B0, 0xF5B1,
- 0xE16E, 0xE16F, 0xE170, 0xE171, 0xE172, 0xE173,
- 0xF5B2, 0xE174, 0xE175, 0xF5B3, 0xF5B4, 0xF5B5,
- 0xE176, 0xE177, 0xE178, 0xE179, 0xF5B7, 0xF5B6,
- 0xE17A, 0xE17B, 0xE17C, 0xE17D, 0xF5B8, 0xE17E,
- 0xE180, 0xE181, 0xE182, 0xE183, 0xE184, 0xE185,
- 0xE186, 0xE187, 0xE188, 0xE189, 0xE18A, 0xB2C9,
- 0xE18B, 0xD3D4, 0xCACD, 0xE18C, 0xC0EF, 0xD6D8,
- 0xD2B0, 0xC1BF, 0xE18D, 0xBDF0, 0xE18E, 0xE18F,
- 0xE190, 0xE191, 0xE192, 0xE193, 0xE194, 0xE195,
- 0xE196, 0xE197, 0xB8AA, 0xE198, 0xE199, 0xE19A,
- 0xE19B, 0xE19C, 0xE19D, 0xE19E, 0xE19F, 0xE1A0,
- 0xE240, 0xE241, 0xE242, 0xE243, 0xE244, 0xE245,
- 0xE246, 0xE247, 0xE248, 0xE249, 0xE24A, 0xE24B,
- 0xE24C, 0xE24D, 0xE24E, 0xE24F, 0xE250, 0xE251,
- 0xE252, 0xE253, 0xE254, 0xE255, 0xE256, 0xE257,
- 0xE258, 0xE259, 0xE25A, 0xE25B, 0xE25C, 0xE25D,
- 0xE25E, 0xE25F, 0xE260, 0xE261, 0xE262, 0xE263,
- 0xE264, 0xE265, 0xE266, 0xE267, 0xE268, 0xE269,
- 0xE26A, 0xE26B, 0xE26C, 0xE26D, 0xE26E, 0xE26F,
- 0xE270, 0xE271, 0xE272, 0xE273, 0xE274, 0xE275,
- 0xE276, 0xE277, 0xE278, 0xE279, 0xE27A, 0xE27B,
- 0xE27C, 0xE27D, 0xE27E, 0xE280, 0xE281, 0xE282,
- 0xE283, 0xE284, 0xE285, 0xE286, 0xE287, 0xE288,
- 0xE289, 0xE28A, 0xE28B, 0xE28C, 0xE28D, 0xE28E,
- 0xE28F, 0xE290, 0xE291, 0xE292, 0xE293, 0xE294,
- 0xE295, 0xE296, 0xE297, 0xE298, 0xE299, 0xE29A,
- 0xE29B, 0xE29C, 0xE29D, 0xE29E, 0xE29F, 0xE2A0,
- 0xE340, 0xE341, 0xE342, 0xE343, 0xE344, 0xE345,
- 0xE346, 0xE347, 0xE348, 0xE349, 0xE34A, 0xE34B,
- 0xE34C, 0xE34D, 0xE34E, 0xE34F, 0xE350, 0xE351,
- 0xE352, 0xE353, 0xE354, 0xE355, 0xE356, 0xE357,
- 0xE358, 0xE359, 0xE35A, 0xE35B, 0xE35C, 0xE35D,
- 0xE35E, 0xE35F, 0xE360, 0xE361, 0xE362, 0xE363,
- 0xE364, 0xE365, 0xE366, 0xE367, 0xE368, 0xE369,
- 0xE36A, 0xE36B, 0xE36C, 0xE36D, 0xBCF8, 0xE36E,
- 0xE36F, 0xE370, 0xE371, 0xE372, 0xE373, 0xE374,
- 0xE375, 0xE376, 0xE377, 0xE378, 0xE379, 0xE37A,
- 0xE37B, 0xE37C, 0xE37D, 0xE37E, 0xE380, 0xE381,
- 0xE382, 0xE383, 0xE384, 0xE385, 0xE386, 0xE387,
- 0xF6C6, 0xE388, 0xE389, 0xE38A, 0xE38B, 0xE38C,
- 0xE38D, 0xE38E, 0xE38F, 0xE390, 0xE391, 0xE392,
- 0xE393, 0xE394, 0xE395, 0xE396, 0xE397, 0xE398,
- 0xE399, 0xE39A, 0xE39B, 0xE39C, 0xE39D, 0xE39E,
- 0xE39F, 0xE3A0, 0xE440, 0xE441, 0xE442, 0xE443,
- 0xE444, 0xE445, 0xF6C7, 0xE446, 0xE447, 0xE448,
- 0xE449, 0xE44A, 0xE44B, 0xE44C, 0xE44D, 0xE44E,
- 0xE44F, 0xE450, 0xE451, 0xE452, 0xE453, 0xE454,
- 0xE455, 0xE456, 0xE457, 0xE458, 0xE459, 0xE45A,
- 0xE45B, 0xE45C, 0xE45D, 0xE45E, 0xF6C8, 0xE45F,
- 0xE460, 0xE461, 0xE462, 0xE463, 0xE464, 0xE465,
- 0xE466, 0xE467, 0xE468, 0xE469, 0xE46A, 0xE46B,
- 0xE46C, 0xE46D, 0xE46E, 0xE46F, 0xE470, 0xE471,
- 0xE472, 0xE473, 0xE474, 0xE475, 0xE476, 0xE477,
- 0xE478, 0xE479, 0xE47A, 0xE47B, 0xE47C, 0xE47D,
- 0xE47E, 0xE480, 0xE481, 0xE482, 0xE483, 0xE484,
- 0xE485, 0xE486, 0xE487, 0xE488, 0xE489, 0xE48A,
- 0xE48B, 0xE48C, 0xE48D, 0xE48E, 0xE48F, 0xE490,
- 0xE491, 0xE492, 0xE493, 0xE494, 0xE495, 0xE496,
- 0xE497, 0xE498, 0xE499, 0xE49A, 0xE49B, 0xE49C,
- 0xE49D, 0xE49E, 0xE49F, 0xE4A0, 0xE540, 0xE541,
- 0xE542, 0xE543, 0xE544, 0xE545, 0xE546, 0xE547,
- 0xE548, 0xE549, 0xE54A, 0xE54B, 0xE54C, 0xE54D,
- 0xE54E, 0xE54F, 0xE550, 0xE551, 0xE552, 0xE553,
- 0xE554, 0xE555, 0xE556, 0xE557, 0xE558, 0xE559,
- 0xE55A, 0xE55B, 0xE55C, 0xE55D, 0xE55E, 0xE55F,
- 0xE560, 0xE561, 0xE562, 0xE563, 0xE564, 0xE565,
- 0xE566, 0xE567, 0xE568, 0xE569, 0xE56A, 0xE56B,
- 0xE56C, 0xE56D, 0xE56E, 0xE56F, 0xE570, 0xE571,
- 0xE572, 0xE573, 0xF6C9, 0xE574, 0xE575, 0xE576,
- 0xE577, 0xE578, 0xE579, 0xE57A, 0xE57B, 0xE57C,
- 0xE57D, 0xE57E, 0xE580, 0xE581, 0xE582, 0xE583,
- 0xE584, 0xE585, 0xE586, 0xE587, 0xE588, 0xE589,
- 0xE58A, 0xE58B, 0xE58C, 0xE58D, 0xE58E, 0xE58F,
- 0xE590, 0xE591, 0xE592, 0xE593, 0xE594, 0xE595,
- 0xE596, 0xE597, 0xE598, 0xE599, 0xE59A, 0xE59B,
- 0xE59C, 0xE59D, 0xE59E, 0xE59F, 0xF6CA, 0xE5A0,
- 0xE640, 0xE641, 0xE642, 0xE643, 0xE644, 0xE645,
- 0xE646, 0xE647, 0xE648, 0xE649, 0xE64A, 0xE64B,
- 0xE64C, 0xE64D, 0xE64E, 0xE64F, 0xE650, 0xE651,
- 0xE652, 0xE653, 0xE654, 0xE655, 0xE656, 0xE657,
- 0xE658, 0xE659, 0xE65A, 0xE65B, 0xE65C, 0xE65D,
- 0xE65E, 0xE65F, 0xE660, 0xE661, 0xE662, 0xF6CC,
- 0xE663, 0xE664, 0xE665, 0xE666, 0xE667, 0xE668,
- 0xE669, 0xE66A, 0xE66B, 0xE66C, 0xE66D, 0xE66E,
- 0xE66F, 0xE670, 0xE671, 0xE672, 0xE673, 0xE674,
- 0xE675, 0xE676, 0xE677, 0xE678, 0xE679, 0xE67A,
- 0xE67B, 0xE67C, 0xE67D, 0xE67E, 0xE680, 0xE681,
- 0xE682, 0xE683, 0xE684, 0xE685, 0xE686, 0xE687,
- 0xE688, 0xE689, 0xE68A, 0xE68B, 0xE68C, 0xE68D,
- 0xE68E, 0xE68F, 0xE690, 0xE691, 0xE692, 0xE693,
- 0xE694, 0xE695, 0xE696, 0xE697, 0xE698, 0xE699,
- 0xE69A, 0xE69B, 0xE69C, 0xE69D, 0xF6CB, 0xE69E,
- 0xE69F, 0xE6A0, 0xE740, 0xE741, 0xE742, 0xE743,
- 0xE744, 0xE745, 0xE746, 0xE747, 0xF7E9, 0xE748,
- 0xE749, 0xE74A, 0xE74B, 0xE74C, 0xE74D, 0xE74E,
- 0xE74F, 0xE750, 0xE751, 0xE752, 0xE753, 0xE754,
- 0xE755, 0xE756, 0xE757, 0xE758, 0xE759, 0xE75A,
- 0xE75B, 0xE75C, 0xE75D, 0xE75E, 0xE75F, 0xE760,
- 0xE761, 0xE762, 0xE763, 0xE764, 0xE765, 0xE766,
- 0xE767, 0xE768, 0xE769, 0xE76A, 0xE76B, 0xE76C,
- 0xE76D, 0xE76E, 0xE76F, 0xE770, 0xE771, 0xE772,
- 0xE773, 0xE774, 0xE775, 0xE776, 0xE777, 0xE778,
- 0xE779, 0xE77A, 0xE77B, 0xE77C, 0xE77D, 0xE77E,
- 0xE780, 0xE781, 0xE782, 0xE783, 0xE784, 0xE785,
- 0xE786, 0xE787, 0xE788, 0xE789, 0xE78A, 0xE78B,
- 0xE78C, 0xE78D, 0xE78E, 0xE78F, 0xE790, 0xE791,
- 0xE792, 0xE793, 0xE794, 0xE795, 0xE796, 0xE797,
- 0xE798, 0xE799, 0xE79A, 0xE79B, 0xE79C, 0xE79D,
- 0xE79E, 0xE79F, 0xE7A0, 0xE840, 0xE841, 0xE842,
- 0xE843, 0xE844, 0xE845, 0xE846, 0xE847, 0xE848,
- 0xE849, 0xE84A, 0xE84B, 0xE84C, 0xE84D, 0xE84E,
- 0xF6CD, 0xE84F, 0xE850, 0xE851, 0xE852, 0xE853,
- 0xE854, 0xE855, 0xE856, 0xE857, 0xE858, 0xE859,
- 0xE85A, 0xE85B, 0xE85C, 0xE85D, 0xE85E, 0xE85F,
- 0xE860, 0xE861, 0xE862, 0xE863, 0xE864, 0xE865,
- 0xE866, 0xE867, 0xE868, 0xE869, 0xE86A, 0xE86B,
- 0xE86C, 0xE86D, 0xE86E, 0xE86F, 0xE870, 0xE871,
- 0xE872, 0xE873, 0xE874, 0xE875, 0xE876, 0xE877,
- 0xE878, 0xE879, 0xE87A, 0xF6CE, 0xE87B, 0xE87C,
- 0xE87D, 0xE87E, 0xE880, 0xE881, 0xE882, 0xE883,
- 0xE884, 0xE885, 0xE886, 0xE887, 0xE888, 0xE889,
- 0xE88A, 0xE88B, 0xE88C, 0xE88D, 0xE88E, 0xE88F,
- 0xE890, 0xE891, 0xE892, 0xE893, 0xE894, 0xEEC4,
- 0xEEC5, 0xEEC6, 0xD5EB, 0xB6A4, 0xEEC8, 0xEEC7,
- 0xEEC9, 0xEECA, 0xC7A5, 0xEECB, 0xEECC, 0xE895,
- 0xB7B0, 0xB5F6, 0xEECD, 0xEECF, 0xE896, 0xEECE,
- 0xE897, 0xB8C6, 0xEED0, 0xEED1, 0xEED2, 0xB6DB,
- 0xB3AE, 0xD6D3, 0xC4C6, 0xB1B5, 0xB8D6, 0xEED3,
- 0xEED4, 0xD4BF, 0xC7D5, 0xBEFB, 0xCED9, 0xB9B3,
- 0xEED6, 0xEED5, 0xEED8, 0xEED7, 0xC5A5, 0xEED9,
- 0xEEDA, 0xC7AE, 0xEEDB, 0xC7AF, 0xEEDC, 0xB2A7,
- 0xEEDD, 0xEEDE, 0xEEDF, 0xEEE0, 0xEEE1, 0xD7EA,
- 0xEEE2, 0xEEE3, 0xBCD8, 0xEEE4, 0xD3CB, 0xCCFA,
- 0xB2AC, 0xC1E5, 0xEEE5, 0xC7A6, 0xC3AD, 0xE898,
- 0xEEE6, 0xEEE7, 0xEEE8, 0xEEE9, 0xEEEA, 0xEEEB,
- 0xEEEC, 0xE899, 0xEEED, 0xEEEE, 0xEEEF, 0xE89A,
- 0xE89B, 0xEEF0, 0xEEF1, 0xEEF2, 0xEEF4, 0xEEF3,
- 0xE89C, 0xEEF5, 0xCDAD, 0xC2C1, 0xEEF6, 0xEEF7,
- 0xEEF8, 0xD5A1, 0xEEF9, 0xCFB3, 0xEEFA, 0xEEFB,
- 0xE89D, 0xEEFC, 0xEEFD, 0xEFA1, 0xEEFE, 0xEFA2,
- 0xB8F5, 0xC3FA, 0xEFA3, 0xEFA4, 0xBDC2, 0xD2BF,
- 0xB2F9, 0xEFA5, 0xEFA6, 0xEFA7, 0xD2F8, 0xEFA8,
- 0xD6FD, 0xEFA9, 0xC6CC, 0xE89E, 0xEFAA, 0xEFAB,
- 0xC1B4, 0xEFAC, 0xCFFA, 0xCBF8, 0xEFAE, 0xEFAD,
- 0xB3FA, 0xB9F8, 0xEFAF, 0xEFB0, 0xD0E2, 0xEFB1,
- 0xEFB2, 0xB7E6, 0xD0BF, 0xEFB3, 0xEFB4, 0xEFB5,
- 0xC8F1, 0xCCE0, 0xEFB6, 0xEFB7, 0xEFB8, 0xEFB9,
- 0xEFBA, 0xD5E0, 0xEFBB, 0xB4ED, 0xC3AA, 0xEFBC,
- 0xE89F, 0xEFBD, 0xEFBE, 0xEFBF, 0xE8A0, 0xCEFD,
- 0xEFC0, 0xC2E0, 0xB4B8, 0xD7B6, 0xBDF5, 0xE940,
- 0xCFC7, 0xEFC3, 0xEFC1, 0xEFC2, 0xEFC4, 0xB6A7,
- 0xBCFC, 0xBEE2, 0xC3CC, 0xEFC5, 0xEFC6, 0xE941,
- 0xEFC7, 0xEFCF, 0xEFC8, 0xEFC9, 0xEFCA, 0xC7C2,
- 0xEFF1, 0xB6CD, 0xEFCB, 0xE942, 0xEFCC, 0xEFCD,
- 0xB6C6, 0xC3BE, 0xEFCE, 0xE943, 0xEFD0, 0xEFD1,
- 0xEFD2, 0xD5F2, 0xE944, 0xEFD3, 0xC4F7, 0xE945,
- 0xEFD4, 0xC4F8, 0xEFD5, 0xEFD6, 0xB8E4, 0xB0F7,
- 0xEFD7, 0xEFD8, 0xEFD9, 0xE946, 0xEFDA, 0xEFDB,
- 0xEFDC, 0xEFDD, 0xE947, 0xEFDE, 0xBEB5, 0xEFE1,
- 0xEFDF, 0xEFE0, 0xE948, 0xEFE2, 0xEFE3, 0xC1CD,
- 0xEFE4, 0xEFE5, 0xEFE6, 0xEFE7, 0xEFE8, 0xEFE9,
- 0xEFEA, 0xEFEB, 0xEFEC, 0xC0D8, 0xE949, 0xEFED,
- 0xC1AD, 0xEFEE, 0xEFEF, 0xEFF0, 0xE94A, 0xE94B,
- 0xCFE2, 0xE94C, 0xE94D, 0xE94E, 0xE94F, 0xE950,
- 0xE951, 0xE952, 0xE953, 0xB3A4, 0xE954, 0xE955,
- 0xE956, 0xE957, 0xE958, 0xE959, 0xE95A, 0xE95B,
- 0xE95C, 0xE95D, 0xE95E, 0xE95F, 0xE960, 0xE961,
- 0xE962, 0xE963, 0xE964, 0xE965, 0xE966, 0xE967,
- 0xE968, 0xE969, 0xE96A, 0xE96B, 0xE96C, 0xE96D,
- 0xE96E, 0xE96F, 0xE970, 0xE971, 0xE972, 0xE973,
- 0xE974, 0xE975, 0xE976, 0xE977, 0xE978, 0xE979,
- 0xE97A, 0xE97B, 0xE97C, 0xE97D, 0xE97E, 0xE980,
- 0xE981, 0xE982, 0xE983, 0xE984, 0xE985, 0xE986,
- 0xE987, 0xE988, 0xE989, 0xE98A, 0xE98B, 0xE98C,
- 0xE98D, 0xE98E, 0xE98F, 0xE990, 0xE991, 0xE992,
- 0xE993, 0xE994, 0xE995, 0xE996, 0xE997, 0xE998,
- 0xE999, 0xE99A, 0xE99B, 0xE99C, 0xE99D, 0xE99E,
- 0xE99F, 0xE9A0, 0xEA40, 0xEA41, 0xEA42, 0xEA43,
- 0xEA44, 0xEA45, 0xEA46, 0xEA47, 0xEA48, 0xEA49,
- 0xEA4A, 0xEA4B, 0xEA4C, 0xEA4D, 0xEA4E, 0xEA4F,
- 0xEA50, 0xEA51, 0xEA52, 0xEA53, 0xEA54, 0xEA55,
- 0xEA56, 0xEA57, 0xEA58, 0xEA59, 0xEA5A, 0xEA5B,
- 0xC3C5, 0xE3C5, 0xC9C1, 0xE3C6, 0xEA5C, 0xB1D5,
- 0xCECA, 0xB4B3, 0xC8F2, 0xE3C7, 0xCFD0, 0xE3C8,
- 0xBCE4, 0xE3C9, 0xE3CA, 0xC3C6, 0xD5A2, 0xC4D6,
- 0xB9EB, 0xCEC5, 0xE3CB, 0xC3F6, 0xE3CC, 0xEA5D,
- 0xB7A7, 0xB8F3, 0xBAD2, 0xE3CD, 0xE3CE, 0xD4C4,
- 0xE3CF, 0xEA5E, 0xE3D0, 0xD1CB, 0xE3D1, 0xE3D2,
- 0xE3D3, 0xE3D4, 0xD1D6, 0xE3D5, 0xB2FB, 0xC0BB,
- 0xE3D6, 0xEA5F, 0xC0AB, 0xE3D7, 0xE3D8, 0xE3D9,
- 0xEA60, 0xE3DA, 0xE3DB, 0xEA61, 0xB8B7, 0xDAE2,
- 0xEA62, 0xB6D3, 0xEA63, 0xDAE4, 0xDAE3, 0xEA64,
- 0xEA65, 0xEA66, 0xEA67, 0xEA68, 0xEA69, 0xEA6A,
- 0xDAE6, 0xEA6B, 0xEA6C, 0xEA6D, 0xC8EE, 0xEA6E,
- 0xEA6F, 0xDAE5, 0xB7C0, 0xD1F4, 0xD2F5, 0xD5F3,
- 0xBDD7, 0xEA70, 0xEA71, 0xEA72, 0xEA73, 0xD7E8,
- 0xDAE8, 0xDAE7, 0xEA74, 0xB0A2, 0xCDD3, 0xEA75,
- 0xDAE9, 0xEA76, 0xB8BD, 0xBCCA, 0xC2BD, 0xC2A4,
- 0xB3C2, 0xDAEA, 0xEA77, 0xC2AA, 0xC4B0, 0xBDB5,
- 0xEA78, 0xEA79, 0xCFDE, 0xEA7A, 0xEA7B, 0xEA7C,
- 0xDAEB, 0xC9C2, 0xEA7D, 0xEA7E, 0xEA80, 0xEA81,
- 0xEA82, 0xB1DD, 0xEA83, 0xEA84, 0xEA85, 0xDAEC,
- 0xEA86, 0xB6B8, 0xD4BA, 0xEA87, 0xB3FD, 0xEA88,
- 0xEA89, 0xDAED, 0xD4C9, 0xCFD5, 0xC5E3, 0xEA8A,
- 0xDAEE, 0xEA8B, 0xEA8C, 0xEA8D, 0xEA8E, 0xEA8F,
- 0xDAEF, 0xEA90, 0xDAF0, 0xC1EA, 0xCCD5, 0xCFDD,
- 0xEA91, 0xEA92, 0xEA93, 0xEA94, 0xEA95, 0xEA96,
- 0xEA97, 0xEA98, 0xEA99, 0xEA9A, 0xEA9B, 0xEA9C,
- 0xEA9D, 0xD3E7, 0xC2A1, 0xEA9E, 0xDAF1, 0xEA9F,
- 0xEAA0, 0xCBE5, 0xEB40, 0xDAF2, 0xEB41, 0xCBE6,
- 0xD2FE, 0xEB42, 0xEB43, 0xEB44, 0xB8F4, 0xEB45,
- 0xEB46, 0xDAF3, 0xB0AF, 0xCFB6, 0xEB47, 0xEB48,
- 0xD5CF, 0xEB49, 0xEB4A, 0xEB4B, 0xEB4C, 0xEB4D,
- 0xEB4E, 0xEB4F, 0xEB50, 0xEB51, 0xEB52, 0xCBED,
- 0xEB53, 0xEB54, 0xEB55, 0xEB56, 0xEB57, 0xEB58,
- 0xEB59, 0xEB5A, 0xDAF4, 0xEB5B, 0xEB5C, 0xE3C4,
- 0xEB5D, 0xEB5E, 0xC1A5, 0xEB5F, 0xEB60, 0xF6BF,
- 0xEB61, 0xEB62, 0xF6C0, 0xF6C1, 0xC4D1, 0xEB63,
- 0xC8B8, 0xD1E3, 0xEB64, 0xEB65, 0xD0DB, 0xD1C5,
- 0xBCAF, 0xB9CD, 0xEB66, 0xEFF4, 0xEB67, 0xEB68,
- 0xB4C6, 0xD3BA, 0xF6C2, 0xB3FB, 0xEB69, 0xEB6A,
- 0xF6C3, 0xEB6B, 0xEB6C, 0xB5F1, 0xEB6D, 0xEB6E,
- 0xEB6F, 0xEB70, 0xEB71, 0xEB72, 0xEB73, 0xEB74,
- 0xEB75, 0xEB76, 0xF6C5, 0xEB77, 0xEB78, 0xEB79,
- 0xEB7A, 0xEB7B, 0xEB7C, 0xEB7D, 0xD3EA, 0xF6A7,
- 0xD1A9, 0xEB7E, 0xEB80, 0xEB81, 0xEB82, 0xF6A9,
- 0xEB83, 0xEB84, 0xEB85, 0xF6A8, 0xEB86, 0xEB87,
- 0xC1E3, 0xC0D7, 0xEB88, 0xB1A2, 0xEB89, 0xEB8A,
- 0xEB8B, 0xEB8C, 0xCEED, 0xEB8D, 0xD0E8, 0xF6AB,
- 0xEB8E, 0xEB8F, 0xCFF6, 0xEB90, 0xF6AA, 0xD5F0,
- 0xF6AC, 0xC3B9, 0xEB91, 0xEB92, 0xEB93, 0xBBF4,
- 0xF6AE, 0xF6AD, 0xEB94, 0xEB95, 0xEB96, 0xC4DE,
- 0xEB97, 0xEB98, 0xC1D8, 0xEB99, 0xEB9A, 0xEB9B,
- 0xEB9C, 0xEB9D, 0xCBAA, 0xEB9E, 0xCFBC, 0xEB9F,
- 0xEBA0, 0xEC40, 0xEC41, 0xEC42, 0xEC43, 0xEC44,
- 0xEC45, 0xEC46, 0xEC47, 0xEC48, 0xF6AF, 0xEC49,
- 0xEC4A, 0xF6B0, 0xEC4B, 0xEC4C, 0xF6B1, 0xEC4D,
- 0xC2B6, 0xEC4E, 0xEC4F, 0xEC50, 0xEC51, 0xEC52,
- 0xB0D4, 0xC5F9, 0xEC53, 0xEC54, 0xEC55, 0xEC56,
- 0xF6B2, 0xEC57, 0xEC58, 0xEC59, 0xEC5A, 0xEC5B,
- 0xEC5C, 0xEC5D, 0xEC5E, 0xEC5F, 0xEC60, 0xEC61,
- 0xEC62, 0xEC63, 0xEC64, 0xEC65, 0xEC66, 0xEC67,
- 0xEC68, 0xEC69, 0xC7E0, 0xF6A6, 0xEC6A, 0xEC6B,
- 0xBEB8, 0xEC6C, 0xEC6D, 0xBEB2, 0xEC6E, 0xB5E5,
- 0xEC6F, 0xEC70, 0xB7C7, 0xEC71, 0xBFBF, 0xC3D2,
- 0xC3E6, 0xEC72, 0xEC73, 0xD8CC, 0xEC74, 0xEC75,
- 0xEC76, 0xB8EF, 0xEC77, 0xEC78, 0xEC79, 0xEC7A,
- 0xEC7B, 0xEC7C, 0xEC7D, 0xEC7E, 0xEC80, 0xBDF9,
- 0xD1A5, 0xEC81, 0xB0D0, 0xEC82, 0xEC83, 0xEC84,
- 0xEC85, 0xEC86, 0xF7B0, 0xEC87, 0xEC88, 0xEC89,
- 0xEC8A, 0xEC8B, 0xEC8C, 0xEC8D, 0xEC8E, 0xF7B1,
- 0xEC8F, 0xEC90, 0xEC91, 0xEC92, 0xEC93, 0xD0AC,
- 0xEC94, 0xB0B0, 0xEC95, 0xEC96, 0xEC97, 0xF7B2,
- 0xF7B3, 0xEC98, 0xF7B4, 0xEC99, 0xEC9A, 0xEC9B,
- 0xC7CA, 0xEC9C, 0xEC9D, 0xEC9E, 0xEC9F, 0xECA0,
- 0xED40, 0xED41, 0xBECF, 0xED42, 0xED43, 0xF7B7,
- 0xED44, 0xED45, 0xED46, 0xED47, 0xED48, 0xED49,
- 0xED4A, 0xF7B6, 0xED4B, 0xB1DE, 0xED4C, 0xF7B5,
- 0xED4D, 0xED4E, 0xF7B8, 0xED4F, 0xF7B9, 0xED50,
- 0xED51, 0xED52, 0xED53, 0xED54, 0xED55, 0xED56,
- 0xED57, 0xED58, 0xED59, 0xED5A, 0xED5B, 0xED5C,
- 0xED5D, 0xED5E, 0xED5F, 0xED60, 0xED61, 0xED62,
- 0xED63, 0xED64, 0xED65, 0xED66, 0xED67, 0xED68,
- 0xED69, 0xED6A, 0xED6B, 0xED6C, 0xED6D, 0xED6E,
- 0xED6F, 0xED70, 0xED71, 0xED72, 0xED73, 0xED74,
- 0xED75, 0xED76, 0xED77, 0xED78, 0xED79, 0xED7A,
- 0xED7B, 0xED7C, 0xED7D, 0xED7E, 0xED80, 0xED81,
- 0xCEA4, 0xC8CD, 0xED82, 0xBAAB, 0xE8B8, 0xE8B9,
- 0xE8BA, 0xBEC2, 0xED83, 0xED84, 0xED85, 0xED86,
- 0xED87, 0xD2F4, 0xED88, 0xD4CF, 0xC9D8, 0xED89,
- 0xED8A, 0xED8B, 0xED8C, 0xED8D, 0xED8E, 0xED8F,
- 0xED90, 0xED91, 0xED92, 0xED93, 0xED94, 0xED95,
- 0xED96, 0xED97, 0xED98, 0xED99, 0xED9A, 0xED9B,
- 0xED9C, 0xED9D, 0xED9E, 0xED9F, 0xEDA0, 0xEE40,
- 0xEE41, 0xEE42, 0xEE43, 0xEE44, 0xEE45, 0xEE46,
- 0xEE47, 0xEE48, 0xEE49, 0xEE4A, 0xEE4B, 0xEE4C,
- 0xEE4D, 0xEE4E, 0xEE4F, 0xEE50, 0xEE51, 0xEE52,
- 0xEE53, 0xEE54, 0xEE55, 0xEE56, 0xEE57, 0xEE58,
- 0xEE59, 0xEE5A, 0xEE5B, 0xEE5C, 0xEE5D, 0xEE5E,
- 0xEE5F, 0xEE60, 0xEE61, 0xEE62, 0xEE63, 0xEE64,
- 0xEE65, 0xEE66, 0xEE67, 0xEE68, 0xEE69, 0xEE6A,
- 0xEE6B, 0xEE6C, 0xEE6D, 0xEE6E, 0xEE6F, 0xEE70,
- 0xEE71, 0xEE72, 0xEE73, 0xEE74, 0xEE75, 0xEE76,
- 0xEE77, 0xEE78, 0xEE79, 0xEE7A, 0xEE7B, 0xEE7C,
- 0xEE7D, 0xEE7E, 0xEE80, 0xEE81, 0xEE82, 0xEE83,
- 0xEE84, 0xEE85, 0xEE86, 0xEE87, 0xEE88, 0xEE89,
- 0xEE8A, 0xEE8B, 0xEE8C, 0xEE8D, 0xEE8E, 0xEE8F,
- 0xEE90, 0xEE91, 0xEE92, 0xEE93, 0xEE94, 0xEE95,
- 0xEE96, 0xEE97, 0xEE98, 0xEE99, 0xEE9A, 0xEE9B,
- 0xEE9C, 0xEE9D, 0xEE9E, 0xEE9F, 0xEEA0, 0xEF40,
- 0xEF41, 0xEF42, 0xEF43, 0xEF44, 0xEF45, 0xD2B3,
- 0xB6A5, 0xC7EA, 0xF1FC, 0xCFEE, 0xCBB3, 0xD0EB,
- 0xE7EF, 0xCDE7, 0xB9CB, 0xB6D9, 0xF1FD, 0xB0E4,
- 0xCBCC, 0xF1FE, 0xD4A4, 0xC2AD, 0xC1EC, 0xC6C4,
- 0xBEB1, 0xF2A1, 0xBCD5, 0xEF46, 0xF2A2, 0xF2A3,
- 0xEF47, 0xF2A4, 0xD2C3, 0xC6B5, 0xEF48, 0xCDC7,
- 0xF2A5, 0xEF49, 0xD3B1, 0xBFC5, 0xCCE2, 0xEF4A,
- 0xF2A6, 0xF2A7, 0xD1D5, 0xB6EE, 0xF2A8, 0xF2A9,
- 0xB5DF, 0xF2AA, 0xF2AB, 0xEF4B, 0xB2FC, 0xF2AC,
- 0xF2AD, 0xC8A7, 0xEF4C, 0xEF4D, 0xEF4E, 0xEF4F,
- 0xEF50, 0xEF51, 0xEF52, 0xEF53, 0xEF54, 0xEF55,
- 0xEF56, 0xEF57, 0xEF58, 0xEF59, 0xEF5A, 0xEF5B,
- 0xEF5C, 0xEF5D, 0xEF5E, 0xEF5F, 0xEF60, 0xEF61,
- 0xEF62, 0xEF63, 0xEF64, 0xEF65, 0xEF66, 0xEF67,
- 0xEF68, 0xEF69, 0xEF6A, 0xEF6B, 0xEF6C, 0xEF6D,
- 0xEF6E, 0xEF6F, 0xEF70, 0xEF71, 0xB7E7, 0xEF72,
- 0xEF73, 0xECA9, 0xECAA, 0xECAB, 0xEF74, 0xECAC,
- 0xEF75, 0xEF76, 0xC6AE, 0xECAD, 0xECAE, 0xEF77,
- 0xEF78, 0xEF79, 0xB7C9, 0xCAB3, 0xEF7A, 0xEF7B,
- 0xEF7C, 0xEF7D, 0xEF7E, 0xEF80, 0xEF81, 0xE2B8,
- 0xF7CF, 0xEF82, 0xEF83, 0xEF84, 0xEF85, 0xEF86,
- 0xEF87, 0xEF88, 0xEF89, 0xEF8A, 0xEF8B, 0xEF8C,
- 0xEF8D, 0xEF8E, 0xEF8F, 0xEF90, 0xEF91, 0xEF92,
- 0xEF93, 0xEF94, 0xEF95, 0xEF96, 0xEF97, 0xEF98,
- 0xEF99, 0xEF9A, 0xEF9B, 0xEF9C, 0xEF9D, 0xEF9E,
- 0xEF9F, 0xEFA0, 0xF040, 0xF041, 0xF042, 0xF043,
- 0xF044, 0xF7D0, 0xF045, 0xF046, 0xB2CD, 0xF047,
- 0xF048, 0xF049, 0xF04A, 0xF04B, 0xF04C, 0xF04D,
- 0xF04E, 0xF04F, 0xF050, 0xF051, 0xF052, 0xF053,
- 0xF054, 0xF055, 0xF056, 0xF057, 0xF058, 0xF059,
- 0xF05A, 0xF05B, 0xF05C, 0xF05D, 0xF05E, 0xF05F,
- 0xF060, 0xF061, 0xF062, 0xF063, 0xF7D1, 0xF064,
- 0xF065, 0xF066, 0xF067, 0xF068, 0xF069, 0xF06A,
- 0xF06B, 0xF06C, 0xF06D, 0xF06E, 0xF06F, 0xF070,
- 0xF071, 0xF072, 0xF073, 0xF074, 0xF075, 0xF076,
- 0xF077, 0xF078, 0xF079, 0xF07A, 0xF07B, 0xF07C,
- 0xF07D, 0xF07E, 0xF080, 0xF081, 0xF082, 0xF083,
- 0xF084, 0xF085, 0xF086, 0xF087, 0xF088, 0xF089,
- 0xF7D3, 0xF7D2, 0xF08A, 0xF08B, 0xF08C, 0xF08D,
- 0xF08E, 0xF08F, 0xF090, 0xF091, 0xF092, 0xF093,
- 0xF094, 0xF095, 0xF096, 0xE2BB, 0xF097, 0xBCA2,
- 0xF098, 0xE2BC, 0xE2BD, 0xE2BE, 0xE2BF, 0xE2C0,
- 0xE2C1, 0xB7B9, 0xD2FB, 0xBDA4, 0xCACE, 0xB1A5,
- 0xCBC7, 0xF099, 0xE2C2, 0xB6FC, 0xC8C4, 0xE2C3,
- 0xF09A, 0xF09B, 0xBDC8, 0xF09C, 0xB1FD, 0xE2C4,
- 0xF09D, 0xB6F6, 0xE2C5, 0xC4D9, 0xF09E, 0xF09F,
- 0xE2C6, 0xCFDA, 0xB9DD, 0xE2C7, 0xC0A1, 0xF0A0,
- 0xE2C8, 0xB2F6, 0xF140, 0xE2C9, 0xF141, 0xC1F3,
- 0xE2CA, 0xE2CB, 0xC2F8, 0xE2CC, 0xE2CD, 0xE2CE,
- 0xCAD7, 0xD8B8, 0xD9E5, 0xCFE3, 0xF142, 0xF143,
- 0xF144, 0xF145, 0xF146, 0xF147, 0xF148, 0xF149,
- 0xF14A, 0xF14B, 0xF14C, 0xF0A5, 0xF14D, 0xF14E,
- 0xDCB0, 0xF14F, 0xF150, 0xF151, 0xF152, 0xF153,
- 0xF154, 0xF155, 0xF156, 0xF157, 0xF158, 0xF159,
- 0xF15A, 0xF15B, 0xF15C, 0xF15D, 0xF15E, 0xF15F,
- 0xF160, 0xF161, 0xF162, 0xF163, 0xF164, 0xF165,
- 0xF166, 0xF167, 0xF168, 0xF169, 0xF16A, 0xF16B,
- 0xF16C, 0xF16D, 0xF16E, 0xF16F, 0xF170, 0xF171,
- 0xF172, 0xF173, 0xF174, 0xF175, 0xF176, 0xF177,
- 0xF178, 0xF179, 0xF17A, 0xF17B, 0xF17C, 0xF17D,
- 0xF17E, 0xF180, 0xF181, 0xF182, 0xF183, 0xF184,
- 0xF185, 0xF186, 0xF187, 0xF188, 0xF189, 0xF18A,
- 0xF18B, 0xF18C, 0xF18D, 0xF18E, 0xF18F, 0xF190,
- 0xF191, 0xF192, 0xF193, 0xF194, 0xF195, 0xF196,
- 0xF197, 0xF198, 0xF199, 0xF19A, 0xF19B, 0xF19C,
- 0xF19D, 0xF19E, 0xF19F, 0xF1A0, 0xF240, 0xF241,
- 0xF242, 0xF243, 0xF244, 0xF245, 0xF246, 0xF247,
- 0xF248, 0xF249, 0xF24A, 0xF24B, 0xF24C, 0xF24D,
- 0xF24E, 0xF24F, 0xF250, 0xF251, 0xF252, 0xF253,
- 0xF254, 0xF255, 0xF256, 0xF257, 0xF258, 0xF259,
- 0xF25A, 0xF25B, 0xF25C, 0xF25D, 0xF25E, 0xF25F,
- 0xF260, 0xF261, 0xF262, 0xF263, 0xF264, 0xF265,
- 0xF266, 0xF267, 0xF268, 0xF269, 0xF26A, 0xF26B,
- 0xF26C, 0xF26D, 0xF26E, 0xF26F, 0xF270, 0xF271,
- 0xF272, 0xF273, 0xF274, 0xF275, 0xF276, 0xF277,
- 0xF278, 0xF279, 0xF27A, 0xF27B, 0xF27C, 0xF27D,
- 0xF27E, 0xF280, 0xF281, 0xF282, 0xF283, 0xF284,
- 0xF285, 0xF286, 0xF287, 0xF288, 0xF289, 0xF28A,
- 0xF28B, 0xF28C, 0xF28D, 0xF28E, 0xF28F, 0xF290,
- 0xF291, 0xF292, 0xF293, 0xF294, 0xF295, 0xF296,
- 0xF297, 0xF298, 0xF299, 0xF29A, 0xF29B, 0xF29C,
- 0xF29D, 0xF29E, 0xF29F, 0xF2A0, 0xF340, 0xF341,
- 0xF342, 0xF343, 0xF344, 0xF345, 0xF346, 0xF347,
- 0xF348, 0xF349, 0xF34A, 0xF34B, 0xF34C, 0xF34D,
- 0xF34E, 0xF34F, 0xF350, 0xF351, 0xC2ED, 0xD4A6,
- 0xCDD4, 0xD1B1, 0xB3DB, 0xC7FD, 0xF352, 0xB2B5,
- 0xC2BF, 0xE6E0, 0xCABB, 0xE6E1, 0xE6E2, 0xBED4,
- 0xE6E3, 0xD7A4, 0xCDD5, 0xE6E5, 0xBCDD, 0xE6E4,
- 0xE6E6, 0xE6E7, 0xC2EE, 0xF353, 0xBDBE, 0xE6E8,
- 0xC2E6, 0xBAA7, 0xE6E9, 0xF354, 0xE6EA, 0xB3D2,
- 0xD1E9, 0xF355, 0xF356, 0xBFA5, 0xE6EB, 0xC6EF,
- 0xE6EC, 0xE6ED, 0xF357, 0xF358, 0xE6EE, 0xC6AD,
- 0xE6EF, 0xF359, 0xC9A7, 0xE6F0, 0xE6F1, 0xE6F2,
- 0xE5B9, 0xE6F3, 0xE6F4, 0xC2E2, 0xE6F5, 0xE6F6,
- 0xD6E8, 0xE6F7, 0xF35A, 0xE6F8, 0xB9C7, 0xF35B,
- 0xF35C, 0xF35D, 0xF35E, 0xF35F, 0xF360, 0xF361,
- 0xF7BB, 0xF7BA, 0xF362, 0xF363, 0xF364, 0xF365,
- 0xF7BE, 0xF7BC, 0xBAA1, 0xF366, 0xF7BF, 0xF367,
- 0xF7C0, 0xF368, 0xF369, 0xF36A, 0xF7C2, 0xF7C1,
- 0xF7C4, 0xF36B, 0xF36C, 0xF7C3, 0xF36D, 0xF36E,
- 0xF36F, 0xF370, 0xF371, 0xF7C5, 0xF7C6, 0xF372,
- 0xF373, 0xF374, 0xF375, 0xF7C7, 0xF376, 0xCBE8,
- 0xF377, 0xF378, 0xF379, 0xF37A, 0xB8DF, 0xF37B,
- 0xF37C, 0xF37D, 0xF37E, 0xF380, 0xF381, 0xF7D4,
- 0xF382, 0xF7D5, 0xF383, 0xF384, 0xF385, 0xF386,
- 0xF7D6, 0xF387, 0xF388, 0xF389, 0xF38A, 0xF7D8,
- 0xF38B, 0xF7DA, 0xF38C, 0xF7D7, 0xF38D, 0xF38E,
- 0xF38F, 0xF390, 0xF391, 0xF392, 0xF393, 0xF394,
- 0xF395, 0xF7DB, 0xF396, 0xF7D9, 0xF397, 0xF398,
- 0xF399, 0xF39A, 0xF39B, 0xF39C, 0xF39D, 0xD7D7,
- 0xF39E, 0xF39F, 0xF3A0, 0xF440, 0xF7DC, 0xF441,
- 0xF442, 0xF443, 0xF444, 0xF445, 0xF446, 0xF7DD,
- 0xF447, 0xF448, 0xF449, 0xF7DE, 0xF44A, 0xF44B,
- 0xF44C, 0xF44D, 0xF44E, 0xF44F, 0xF450, 0xF451,
- 0xF452, 0xF453, 0xF454, 0xF7DF, 0xF455, 0xF456,
- 0xF457, 0xF7E0, 0xF458, 0xF459, 0xF45A, 0xF45B,
- 0xF45C, 0xF45D, 0xF45E, 0xF45F, 0xF460, 0xF461,
- 0xF462, 0xDBCB, 0xF463, 0xF464, 0xD8AA, 0xF465,
- 0xF466, 0xF467, 0xF468, 0xF469, 0xF46A, 0xF46B,
- 0xF46C, 0xE5F7, 0xB9ED, 0xF46D, 0xF46E, 0xF46F,
- 0xF470, 0xBFFD, 0xBBEA, 0xF7C9, 0xC6C7, 0xF7C8,
- 0xF471, 0xF7CA, 0xF7CC, 0xF7CB, 0xF472, 0xF473,
- 0xF474, 0xF7CD, 0xF475, 0xCEBA, 0xF476, 0xF7CE,
- 0xF477, 0xF478, 0xC4A7, 0xF479, 0xF47A, 0xF47B,
- 0xF47C, 0xF47D, 0xF47E, 0xF480, 0xF481, 0xF482,
- 0xF483, 0xF484, 0xF485, 0xF486, 0xF487, 0xF488,
- 0xF489, 0xF48A, 0xF48B, 0xF48C, 0xF48D, 0xF48E,
- 0xF48F, 0xF490, 0xF491, 0xF492, 0xF493, 0xF494,
- 0xF495, 0xF496, 0xF497, 0xF498, 0xF499, 0xF49A,
- 0xF49B, 0xF49C, 0xF49D, 0xF49E, 0xF49F, 0xF4A0,
- 0xF540, 0xF541, 0xF542, 0xF543, 0xF544, 0xF545,
- 0xF546, 0xF547, 0xF548, 0xF549, 0xF54A, 0xF54B,
- 0xF54C, 0xF54D, 0xF54E, 0xF54F, 0xF550, 0xF551,
- 0xF552, 0xF553, 0xF554, 0xF555, 0xF556, 0xF557,
- 0xF558, 0xF559, 0xF55A, 0xF55B, 0xF55C, 0xF55D,
- 0xF55E, 0xF55F, 0xF560, 0xF561, 0xF562, 0xF563,
- 0xF564, 0xF565, 0xF566, 0xF567, 0xF568, 0xF569,
- 0xF56A, 0xF56B, 0xF56C, 0xF56D, 0xF56E, 0xF56F,
- 0xF570, 0xF571, 0xF572, 0xF573, 0xF574, 0xF575,
- 0xF576, 0xF577, 0xF578, 0xF579, 0xF57A, 0xF57B,
- 0xF57C, 0xF57D, 0xF57E, 0xF580, 0xF581, 0xF582,
- 0xF583, 0xF584, 0xF585, 0xF586, 0xF587, 0xF588,
- 0xF589, 0xF58A, 0xF58B, 0xF58C, 0xF58D, 0xF58E,
- 0xF58F, 0xF590, 0xF591, 0xF592, 0xF593, 0xF594,
- 0xF595, 0xF596, 0xF597, 0xF598, 0xF599, 0xF59A,
- 0xF59B, 0xF59C, 0xF59D, 0xF59E, 0xF59F, 0xF5A0,
- 0xF640, 0xF641, 0xF642, 0xF643, 0xF644, 0xF645,
- 0xF646, 0xF647, 0xF648, 0xF649, 0xF64A, 0xF64B,
- 0xF64C, 0xF64D, 0xF64E, 0xF64F, 0xF650, 0xF651,
- 0xF652, 0xF653, 0xF654, 0xF655, 0xF656, 0xF657,
- 0xF658, 0xF659, 0xF65A, 0xF65B, 0xF65C, 0xF65D,
- 0xF65E, 0xF65F, 0xF660, 0xF661, 0xF662, 0xF663,
- 0xF664, 0xF665, 0xF666, 0xF667, 0xF668, 0xF669,
- 0xF66A, 0xF66B, 0xF66C, 0xF66D, 0xF66E, 0xF66F,
- 0xF670, 0xF671, 0xF672, 0xF673, 0xF674, 0xF675,
- 0xF676, 0xF677, 0xF678, 0xF679, 0xF67A, 0xF67B,
- 0xF67C, 0xF67D, 0xF67E, 0xF680, 0xF681, 0xF682,
- 0xF683, 0xF684, 0xF685, 0xF686, 0xF687, 0xF688,
- 0xF689, 0xF68A, 0xF68B, 0xF68C, 0xF68D, 0xF68E,
- 0xF68F, 0xF690, 0xF691, 0xF692, 0xF693, 0xF694,
- 0xF695, 0xF696, 0xF697, 0xF698, 0xF699, 0xF69A,
- 0xF69B, 0xF69C, 0xF69D, 0xF69E, 0xF69F, 0xF6A0,
- 0xF740, 0xF741, 0xF742, 0xF743, 0xF744, 0xF745,
- 0xF746, 0xF747, 0xF748, 0xF749, 0xF74A, 0xF74B,
- 0xF74C, 0xF74D, 0xF74E, 0xF74F, 0xF750, 0xF751,
- 0xF752, 0xF753, 0xF754, 0xF755, 0xF756, 0xF757,
- 0xF758, 0xF759, 0xF75A, 0xF75B, 0xF75C, 0xF75D,
- 0xF75E, 0xF75F, 0xF760, 0xF761, 0xF762, 0xF763,
- 0xF764, 0xF765, 0xF766, 0xF767, 0xF768, 0xF769,
- 0xF76A, 0xF76B, 0xF76C, 0xF76D, 0xF76E, 0xF76F,
- 0xF770, 0xF771, 0xF772, 0xF773, 0xF774, 0xF775,
- 0xF776, 0xF777, 0xF778, 0xF779, 0xF77A, 0xF77B,
- 0xF77C, 0xF77D, 0xF77E, 0xF780, 0xD3E3, 0xF781,
- 0xF782, 0xF6CF, 0xF783, 0xC2B3, 0xF6D0, 0xF784,
- 0xF785, 0xF6D1, 0xF6D2, 0xF6D3, 0xF6D4, 0xF786,
- 0xF787, 0xF6D6, 0xF788, 0xB1AB, 0xF6D7, 0xF789,
- 0xF6D8, 0xF6D9, 0xF6DA, 0xF78A, 0xF6DB, 0xF6DC,
- 0xF78B, 0xF78C, 0xF78D, 0xF78E, 0xF6DD, 0xF6DE,
- 0xCFCA, 0xF78F, 0xF6DF, 0xF6E0, 0xF6E1, 0xF6E2,
- 0xF6E3, 0xF6E4, 0xC0F0, 0xF6E5, 0xF6E6, 0xF6E7,
- 0xF6E8, 0xF6E9, 0xF790, 0xF6EA, 0xF791, 0xF6EB,
- 0xF6EC, 0xF792, 0xF6ED, 0xF6EE, 0xF6EF, 0xF6F0,
- 0xF6F1, 0xF6F2, 0xF6F3, 0xF6F4, 0xBEA8, 0xF793,
- 0xF6F5, 0xF6F6, 0xF6F7, 0xF6F8, 0xF794, 0xF795,
- 0xF796, 0xF797, 0xF798, 0xC8FA, 0xF6F9, 0xF6FA,
- 0xF6FB, 0xF6FC, 0xF799, 0xF79A, 0xF6FD, 0xF6FE,
- 0xF7A1, 0xF7A2, 0xF7A3, 0xF7A4, 0xF7A5, 0xF79B,
- 0xF79C, 0xF7A6, 0xF7A7, 0xF7A8, 0xB1EE, 0xF7A9,
- 0xF7AA, 0xF7AB, 0xF79D, 0xF79E, 0xF7AC, 0xF7AD,
- 0xC1DB, 0xF7AE, 0xF79F, 0xF7A0, 0xF7AF, 0xF840,
- 0xF841, 0xF842, 0xF843, 0xF844, 0xF845, 0xF846,
- 0xF847, 0xF848, 0xF849, 0xF84A, 0xF84B, 0xF84C,
- 0xF84D, 0xF84E, 0xF84F, 0xF850, 0xF851, 0xF852,
- 0xF853, 0xF854, 0xF855, 0xF856, 0xF857, 0xF858,
- 0xF859, 0xF85A, 0xF85B, 0xF85C, 0xF85D, 0xF85E,
- 0xF85F, 0xF860, 0xF861, 0xF862, 0xF863, 0xF864,
- 0xF865, 0xF866, 0xF867, 0xF868, 0xF869, 0xF86A,
- 0xF86B, 0xF86C, 0xF86D, 0xF86E, 0xF86F, 0xF870,
- 0xF871, 0xF872, 0xF873, 0xF874, 0xF875, 0xF876,
- 0xF877, 0xF878, 0xF879, 0xF87A, 0xF87B, 0xF87C,
- 0xF87D, 0xF87E, 0xF880, 0xF881, 0xF882, 0xF883,
- 0xF884, 0xF885, 0xF886, 0xF887, 0xF888, 0xF889,
- 0xF88A, 0xF88B, 0xF88C, 0xF88D, 0xF88E, 0xF88F,
- 0xF890, 0xF891, 0xF892, 0xF893, 0xF894, 0xF895,
- 0xF896, 0xF897, 0xF898, 0xF899, 0xF89A, 0xF89B,
- 0xF89C, 0xF89D, 0xF89E, 0xF89F, 0xF8A0, 0xF940,
- 0xF941, 0xF942, 0xF943, 0xF944, 0xF945, 0xF946,
- 0xF947, 0xF948, 0xF949, 0xF94A, 0xF94B, 0xF94C,
- 0xF94D, 0xF94E, 0xF94F, 0xF950, 0xF951, 0xF952,
- 0xF953, 0xF954, 0xF955, 0xF956, 0xF957, 0xF958,
- 0xF959, 0xF95A, 0xF95B, 0xF95C, 0xF95D, 0xF95E,
- 0xF95F, 0xF960, 0xF961, 0xF962, 0xF963, 0xF964,
- 0xF965, 0xF966, 0xF967, 0xF968, 0xF969, 0xF96A,
- 0xF96B, 0xF96C, 0xF96D, 0xF96E, 0xF96F, 0xF970,
- 0xF971, 0xF972, 0xF973, 0xF974, 0xF975, 0xF976,
- 0xF977, 0xF978, 0xF979, 0xF97A, 0xF97B, 0xF97C,
- 0xF97D, 0xF97E, 0xF980, 0xF981, 0xF982, 0xF983,
- 0xF984, 0xF985, 0xF986, 0xF987, 0xF988, 0xF989,
- 0xF98A, 0xF98B, 0xF98C, 0xF98D, 0xF98E, 0xF98F,
- 0xF990, 0xF991, 0xF992, 0xF993, 0xF994, 0xF995,
- 0xF996, 0xF997, 0xF998, 0xF999, 0xF99A, 0xF99B,
- 0xF99C, 0xF99D, 0xF99E, 0xF99F, 0xF9A0, 0xFA40,
- 0xFA41, 0xFA42, 0xFA43, 0xFA44, 0xFA45, 0xFA46,
- 0xFA47, 0xFA48, 0xFA49, 0xFA4A, 0xFA4B, 0xFA4C,
- 0xFA4D, 0xFA4E, 0xFA4F, 0xFA50, 0xFA51, 0xFA52,
- 0xFA53, 0xFA54, 0xFA55, 0xFA56, 0xFA57, 0xFA58,
- 0xFA59, 0xFA5A, 0xFA5B, 0xFA5C, 0xFA5D, 0xFA5E,
- 0xFA5F, 0xFA60, 0xFA61, 0xFA62, 0xFA63, 0xFA64,
- 0xFA65, 0xFA66, 0xFA67, 0xFA68, 0xFA69, 0xFA6A,
- 0xFA6B, 0xFA6C, 0xFA6D, 0xFA6E, 0xFA6F, 0xFA70,
- 0xFA71, 0xFA72, 0xFA73, 0xFA74, 0xFA75, 0xFA76,
- 0xFA77, 0xFA78, 0xFA79, 0xFA7A, 0xFA7B, 0xFA7C,
- 0xFA7D, 0xFA7E, 0xFA80, 0xFA81, 0xFA82, 0xFA83,
- 0xFA84, 0xFA85, 0xFA86, 0xFA87, 0xFA88, 0xFA89,
- 0xFA8A, 0xFA8B, 0xFA8C, 0xFA8D, 0xFA8E, 0xFA8F,
- 0xFA90, 0xFA91, 0xFA92, 0xFA93, 0xFA94, 0xFA95,
- 0xFA96, 0xFA97, 0xFA98, 0xFA99, 0xFA9A, 0xFA9B,
- 0xFA9C, 0xFA9D, 0xFA9E, 0xFA9F, 0xFAA0, 0xFB40,
- 0xFB41, 0xFB42, 0xFB43, 0xFB44, 0xFB45, 0xFB46,
- 0xFB47, 0xFB48, 0xFB49, 0xFB4A, 0xFB4B, 0xFB4C,
- 0xFB4D, 0xFB4E, 0xFB4F, 0xFB50, 0xFB51, 0xFB52,
- 0xFB53, 0xFB54, 0xFB55, 0xFB56, 0xFB57, 0xFB58,
- 0xFB59, 0xFB5A, 0xFB5B, 0xC4F1, 0xF0AF, 0xBCA6,
- 0xF0B0, 0xC3F9, 0xFB5C, 0xC5B8, 0xD1BB, 0xFB5D,
- 0xF0B1, 0xF0B2, 0xF0B3, 0xF0B4, 0xF0B5, 0xD1BC,
- 0xFB5E, 0xD1EC, 0xFB5F, 0xF0B7, 0xF0B6, 0xD4A7,
- 0xFB60, 0xCDD2, 0xF0B8, 0xF0BA, 0xF0B9, 0xF0BB,
- 0xF0BC, 0xFB61, 0xFB62, 0xB8EB, 0xF0BD, 0xBAE8,
- 0xFB63, 0xF0BE, 0xF0BF, 0xBEE9, 0xF0C0, 0xB6EC,
- 0xF0C1, 0xF0C2, 0xF0C3, 0xF0C4, 0xC8B5, 0xF0C5,
- 0xF0C6, 0xFB64, 0xF0C7, 0xC5F4, 0xFB65, 0xF0C8,
- 0xFB66, 0xFB67, 0xFB68, 0xF0C9, 0xFB69, 0xF0CA,
- 0xF7BD, 0xFB6A, 0xF0CB, 0xF0CC, 0xF0CD, 0xFB6B,
- 0xF0CE, 0xFB6C, 0xFB6D, 0xFB6E, 0xFB6F, 0xF0CF,
- 0xBAD7, 0xFB70, 0xF0D0, 0xF0D1, 0xF0D2, 0xF0D3,
- 0xF0D4, 0xF0D5, 0xF0D6, 0xF0D8, 0xFB71, 0xFB72,
- 0xD3A5, 0xF0D7, 0xFB73, 0xF0D9, 0xFB74, 0xFB75,
- 0xFB76, 0xFB77, 0xFB78, 0xFB79, 0xFB7A, 0xFB7B,
- 0xFB7C, 0xFB7D, 0xF5BA, 0xC2B9, 0xFB7E, 0xFB80,
- 0xF7E4, 0xFB81, 0xFB82, 0xFB83, 0xFB84, 0xF7E5,
- 0xF7E6, 0xFB85, 0xFB86, 0xF7E7, 0xFB87, 0xFB88,
- 0xFB89, 0xFB8A, 0xFB8B, 0xFB8C, 0xF7E8, 0xC2B4,
- 0xFB8D, 0xFB8E, 0xFB8F, 0xFB90, 0xFB91, 0xFB92,
- 0xFB93, 0xFB94, 0xFB95, 0xF7EA, 0xFB96, 0xF7EB,
- 0xFB97, 0xFB98, 0xFB99, 0xFB9A, 0xFB9B, 0xFB9C,
- 0xC2F3, 0xFB9D, 0xFB9E, 0xFB9F, 0xFBA0, 0xFC40,
- 0xFC41, 0xFC42, 0xFC43, 0xFC44, 0xFC45, 0xFC46,
- 0xFC47, 0xFC48, 0xF4F0, 0xFC49, 0xFC4A, 0xFC4B,
- 0xF4EF, 0xFC4C, 0xFC4D, 0xC2E9, 0xFC4E, 0xF7E1,
- 0xF7E2, 0xFC4F, 0xFC50, 0xFC51, 0xFC52, 0xFC53,
- 0xBBC6, 0xFC54, 0xFC55, 0xFC56, 0xFC57, 0xD9E4,
- 0xFC58, 0xFC59, 0xFC5A, 0xCAF2, 0xC0E8, 0xF0A4,
- 0xFC5B, 0xBADA, 0xFC5C, 0xFC5D, 0xC7AD, 0xFC5E,
- 0xFC5F, 0xFC60, 0xC4AC, 0xFC61, 0xFC62, 0xF7EC,
- 0xF7ED, 0xF7EE, 0xFC63, 0xF7F0, 0xF7EF, 0xFC64,
- 0xF7F1, 0xFC65, 0xFC66, 0xF7F4, 0xFC67, 0xF7F3,
- 0xFC68, 0xF7F2, 0xF7F5, 0xFC69, 0xFC6A, 0xFC6B,
- 0xFC6C, 0xF7F6, 0xFC6D, 0xFC6E, 0xFC6F, 0xFC70,
- 0xFC71, 0xFC72, 0xFC73, 0xFC74, 0xFC75, 0xEDE9,
- 0xFC76, 0xEDEA, 0xEDEB, 0xFC77, 0xF6BC, 0xFC78,
- 0xFC79, 0xFC7A, 0xFC7B, 0xFC7C, 0xFC7D, 0xFC7E,
- 0xFC80, 0xFC81, 0xFC82, 0xFC83, 0xFC84, 0xF6BD,
- 0xFC85, 0xF6BE, 0xB6A6, 0xFC86, 0xD8BE, 0xFC87,
- 0xFC88, 0xB9C4, 0xFC89, 0xFC8A, 0xFC8B, 0xD8BB,
- 0xFC8C, 0xDCB1, 0xFC8D, 0xFC8E, 0xFC8F, 0xFC90,
- 0xFC91, 0xFC92, 0xCAF3, 0xFC93, 0xF7F7, 0xFC94,
- 0xFC95, 0xFC96, 0xFC97, 0xFC98, 0xFC99, 0xFC9A,
- 0xFC9B, 0xFC9C, 0xF7F8, 0xFC9D, 0xFC9E, 0xF7F9,
- 0xFC9F, 0xFCA0, 0xFD40, 0xFD41, 0xFD42, 0xFD43,
- 0xFD44, 0xF7FB, 0xFD45, 0xF7FA, 0xFD46, 0xB1C7,
- 0xFD47, 0xF7FC, 0xF7FD, 0xFD48, 0xFD49, 0xFD4A,
- 0xFD4B, 0xFD4C, 0xF7FE, 0xFD4D, 0xFD4E, 0xFD4F,
- 0xFD50, 0xFD51, 0xFD52, 0xFD53, 0xFD54, 0xFD55,
- 0xFD56, 0xFD57, 0xC6EB, 0xECB4, 0xFD58, 0xFD59,
- 0xFD5A, 0xFD5B, 0xFD5C, 0xFD5D, 0xFD5E, 0xFD5F,
- 0xFD60, 0xFD61, 0xFD62, 0xFD63, 0xFD64, 0xFD65,
- 0xFD66, 0xFD67, 0xFD68, 0xFD69, 0xFD6A, 0xFD6B,
- 0xFD6C, 0xFD6D, 0xFD6E, 0xFD6F, 0xFD70, 0xFD71,
- 0xFD72, 0xFD73, 0xFD74, 0xFD75, 0xFD76, 0xFD77,
- 0xFD78, 0xFD79, 0xFD7A, 0xFD7B, 0xFD7C, 0xFD7D,
- 0xFD7E, 0xFD80, 0xFD81, 0xFD82, 0xFD83, 0xFD84,
- 0xFD85, 0xB3DD, 0xF6B3, 0xFD86, 0xFD87, 0xF6B4,
- 0xC1E4, 0xF6B5, 0xF6B6, 0xF6B7, 0xF6B8, 0xF6B9,
- 0xF6BA, 0xC8A3, 0xF6BB, 0xFD88, 0xFD89, 0xFD8A,
- 0xFD8B, 0xFD8C, 0xFD8D, 0xFD8E, 0xFD8F, 0xFD90,
- 0xFD91, 0xFD92, 0xFD93, 0xC1FA, 0xB9A8, 0xEDE8,
- 0xFD94, 0xFD95, 0xFD96, 0xB9EA, 0xD9DF, 0xFD97,
- 0xFD98, 0xFD99, 0xFD9A, 0xFD9B, 0xAAA1, 0xAAA2,
- 0xAAA3, 0xAAA4, 0xAAA5, 0xAAA6, 0xAAA7, 0xAAA8,
- 0xAAA9, 0xAAAA, 0xAAAB, 0xAAAC, 0xAAAD, 0xAAAE,
- 0xAAAF, 0xAAB0, 0xAAB1, 0xAAB2, 0xAAB3, 0xAAB4,
- 0xAAB5, 0xAAB6, 0xAAB7, 0xAAB8, 0xAAB9, 0xAABA,
- 0xAABB, 0xAABC, 0xAABD, 0xAABE, 0xAABF, 0xAAC0,
- 0xAAC1, 0xAAC2, 0xAAC3, 0xAAC4, 0xAAC5, 0xAAC6,
- 0xAAC7, 0xAAC8, 0xAAC9, 0xAACA, 0xAACB, 0xAACC,
- 0xAACD, 0xAACE, 0xAACF, 0xAAD0, 0xAAD1, 0xAAD2,
- 0xAAD3, 0xAAD4, 0xAAD5, 0xAAD6, 0xAAD7, 0xAAD8,
- 0xAAD9, 0xAADA, 0xAADB, 0xAADC, 0xAADD, 0xAADE,
- 0xAADF, 0xAAE0, 0xAAE1, 0xAAE2, 0xAAE3, 0xAAE4,
- 0xAAE5, 0xAAE6, 0xAAE7, 0xAAE8, 0xAAE9, 0xAAEA,
- 0xAAEB, 0xAAEC, 0xAAED, 0xAAEE, 0xAAEF, 0xAAF0,
- 0xAAF1, 0xAAF2, 0xAAF3, 0xAAF4, 0xAAF5, 0xAAF6,
- 0xAAF7, 0xAAF8, 0xAAF9, 0xAAFA, 0xAAFB, 0xAAFC,
- 0xAAFD, 0xAAFE, 0xABA1, 0xABA2, 0xABA3, 0xABA4,
- 0xABA5, 0xABA6, 0xABA7, 0xABA8, 0xABA9, 0xABAA,
- 0xABAB, 0xABAC, 0xABAD, 0xABAE, 0xABAF, 0xABB0,
- 0xABB1, 0xABB2, 0xABB3, 0xABB4, 0xABB5, 0xABB6,
- 0xABB7, 0xABB8, 0xABB9, 0xABBA, 0xABBB, 0xABBC,
- 0xABBD, 0xABBE, 0xABBF, 0xABC0, 0xABC1, 0xABC2,
- 0xABC3, 0xABC4, 0xABC5, 0xABC6, 0xABC7, 0xABC8,
- 0xABC9, 0xABCA, 0xABCB, 0xABCC, 0xABCD, 0xABCE,
- 0xABCF, 0xABD0, 0xABD1, 0xABD2, 0xABD3, 0xABD4,
- 0xABD5, 0xABD6, 0xABD7, 0xABD8, 0xABD9, 0xABDA,
- 0xABDB, 0xABDC, 0xABDD, 0xABDE, 0xABDF, 0xABE0,
- 0xABE1, 0xABE2, 0xABE3, 0xABE4, 0xABE5, 0xABE6,
- 0xABE7, 0xABE8, 0xABE9, 0xABEA, 0xABEB, 0xABEC,
- 0xABED, 0xABEE, 0xABEF, 0xABF0, 0xABF1, 0xABF2,
- 0xABF3, 0xABF4, 0xABF5, 0xABF6, 0xABF7, 0xABF8,
- 0xABF9, 0xABFA, 0xABFB, 0xABFC, 0xABFD, 0xABFE,
- 0xACA1, 0xACA2, 0xACA3, 0xACA4, 0xACA5, 0xACA6,
- 0xACA7, 0xACA8, 0xACA9, 0xACAA, 0xACAB, 0xACAC,
- 0xACAD, 0xACAE, 0xACAF, 0xACB0, 0xACB1, 0xACB2,
- 0xACB3, 0xACB4, 0xACB5, 0xACB6, 0xACB7, 0xACB8,
- 0xACB9, 0xACBA, 0xACBB, 0xACBC, 0xACBD, 0xACBE,
- 0xACBF, 0xACC0, 0xACC1, 0xACC2, 0xACC3, 0xACC4,
- 0xACC5, 0xACC6, 0xACC7, 0xACC8, 0xACC9, 0xACCA,
- 0xACCB, 0xACCC, 0xACCD, 0xACCE, 0xACCF, 0xACD0,
- 0xACD1, 0xACD2, 0xACD3, 0xACD4, 0xACD5, 0xACD6,
- 0xACD7, 0xACD8, 0xACD9, 0xACDA, 0xACDB, 0xACDC,
- 0xACDD, 0xACDE, 0xACDF, 0xACE0, 0xACE1, 0xACE2,
- 0xACE3, 0xACE4, 0xACE5, 0xACE6, 0xACE7, 0xACE8,
- 0xACE9, 0xACEA, 0xACEB, 0xACEC, 0xACED, 0xACEE,
- 0xACEF, 0xACF0, 0xACF1, 0xACF2, 0xACF3, 0xACF4,
- 0xACF5, 0xACF6, 0xACF7, 0xACF8, 0xACF9, 0xACFA,
- 0xACFB, 0xACFC, 0xACFD, 0xACFE, 0xADA1, 0xADA2,
- 0xADA3, 0xADA4, 0xADA5, 0xADA6, 0xADA7, 0xADA8,
- 0xADA9, 0xADAA, 0xADAB, 0xADAC, 0xADAD, 0xADAE,
- 0xADAF, 0xADB0, 0xADB1, 0xADB2, 0xADB3, 0xADB4,
- 0xADB5, 0xADB6, 0xADB7, 0xADB8, 0xADB9, 0xADBA,
- 0xADBB, 0xADBC, 0xADBD, 0xADBE, 0xADBF, 0xADC0,
- 0xADC1, 0xADC2, 0xADC3, 0xADC4, 0xADC5, 0xADC6,
- 0xADC7, 0xADC8, 0xADC9, 0xADCA, 0xADCB, 0xADCC,
- 0xADCD, 0xADCE, 0xADCF, 0xADD0, 0xADD1, 0xADD2,
- 0xADD3, 0xADD4, 0xADD5, 0xADD6, 0xADD7, 0xADD8,
- 0xADD9, 0xADDA, 0xADDB, 0xADDC, 0xADDD, 0xADDE,
- 0xADDF, 0xADE0, 0xADE1, 0xADE2, 0xADE3, 0xADE4,
- 0xADE5, 0xADE6, 0xADE7, 0xADE8, 0xADE9, 0xADEA,
- 0xADEB, 0xADEC, 0xADED, 0xADEE, 0xADEF, 0xADF0,
- 0xADF1, 0xADF2, 0xADF3, 0xADF4, 0xADF5, 0xADF6,
- 0xADF7, 0xADF8, 0xADF9, 0xADFA, 0xADFB, 0xADFC,
- 0xADFD, 0xADFE, 0xAEA1, 0xAEA2, 0xAEA3, 0xAEA4,
- 0xAEA5, 0xAEA6, 0xAEA7, 0xAEA8, 0xAEA9, 0xAEAA,
- 0xAEAB, 0xAEAC, 0xAEAD, 0xAEAE, 0xAEAF, 0xAEB0,
- 0xAEB1, 0xAEB2, 0xAEB3, 0xAEB4, 0xAEB5, 0xAEB6,
- 0xAEB7, 0xAEB8, 0xAEB9, 0xAEBA, 0xAEBB, 0xAEBC,
- 0xAEBD, 0xAEBE, 0xAEBF, 0xAEC0, 0xAEC1, 0xAEC2,
- 0xAEC3, 0xAEC4, 0xAEC5, 0xAEC6, 0xAEC7, 0xAEC8,
- 0xAEC9, 0xAECA, 0xAECB, 0xAECC, 0xAECD, 0xAECE,
- 0xAECF, 0xAED0, 0xAED1, 0xAED2, 0xAED3, 0xAED4,
- 0xAED5, 0xAED6, 0xAED7, 0xAED8, 0xAED9, 0xAEDA,
- 0xAEDB, 0xAEDC, 0xAEDD, 0xAEDE, 0xAEDF, 0xAEE0,
- 0xAEE1, 0xAEE2, 0xAEE3, 0xAEE4, 0xAEE5, 0xAEE6,
- 0xAEE7, 0xAEE8, 0xAEE9, 0xAEEA, 0xAEEB, 0xAEEC,
- 0xAEED, 0xAEEE, 0xAEEF, 0xAEF0, 0xAEF1, 0xAEF2,
- 0xAEF3, 0xAEF4, 0xAEF5, 0xAEF6, 0xAEF7, 0xAEF8,
- 0xAEF9, 0xAEFA, 0xAEFB, 0xAEFC, 0xAEFD, 0xAEFE,
- 0xAFA1, 0xAFA2, 0xAFA3, 0xAFA4, 0xAFA5, 0xAFA6,
- 0xAFA7, 0xAFA8, 0xAFA9, 0xAFAA, 0xAFAB, 0xAFAC,
- 0xAFAD, 0xAFAE, 0xAFAF, 0xAFB0, 0xAFB1, 0xAFB2,
- 0xAFB3, 0xAFB4, 0xAFB5, 0xAFB6, 0xAFB7, 0xAFB8,
- 0xAFB9, 0xAFBA, 0xAFBB, 0xAFBC, 0xAFBD, 0xAFBE,
- 0xAFBF, 0xAFC0, 0xAFC1, 0xAFC2, 0xAFC3, 0xAFC4,
- 0xAFC5, 0xAFC6, 0xAFC7, 0xAFC8, 0xAFC9, 0xAFCA,
- 0xAFCB, 0xAFCC, 0xAFCD, 0xAFCE, 0xAFCF, 0xAFD0,
- 0xAFD1, 0xAFD2, 0xAFD3, 0xAFD4, 0xAFD5, 0xAFD6,
- 0xAFD7, 0xAFD8, 0xAFD9, 0xAFDA, 0xAFDB, 0xAFDC,
- 0xAFDD, 0xAFDE, 0xAFDF, 0xAFE0, 0xAFE1, 0xAFE2,
- 0xAFE3, 0xAFE4, 0xAFE5, 0xAFE6, 0xAFE7, 0xAFE8,
- 0xAFE9, 0xAFEA, 0xAFEB, 0xAFEC, 0xAFED, 0xAFEE,
- 0xAFEF, 0xAFF0, 0xAFF1, 0xAFF2, 0xAFF3, 0xAFF4,
- 0xAFF5, 0xAFF6, 0xAFF7, 0xAFF8, 0xAFF9, 0xAFFA,
- 0xAFFB, 0xAFFC, 0xAFFD, 0xAFFE, 0xF8A1, 0xF8A2,
- 0xF8A3, 0xF8A4, 0xF8A5, 0xF8A6, 0xF8A7, 0xF8A8,
- 0xF8A9, 0xF8AA, 0xF8AB, 0xF8AC, 0xF8AD, 0xF8AE,
- 0xF8AF, 0xF8B0, 0xF8B1, 0xF8B2, 0xF8B3, 0xF8B4,
- 0xF8B5, 0xF8B6, 0xF8B7, 0xF8B8, 0xF8B9, 0xF8BA,
- 0xF8BB, 0xF8BC, 0xF8BD, 0xF8BE, 0xF8BF, 0xF8C0,
- 0xF8C1, 0xF8C2, 0xF8C3, 0xF8C4, 0xF8C5, 0xF8C6,
- 0xF8C7, 0xF8C8, 0xF8C9, 0xF8CA, 0xF8CB, 0xF8CC,
- 0xF8CD, 0xF8CE, 0xF8CF, 0xF8D0, 0xF8D1, 0xF8D2,
- 0xF8D3, 0xF8D4, 0xF8D5, 0xF8D6, 0xF8D7, 0xF8D8,
- 0xF8D9, 0xF8DA, 0xF8DB, 0xF8DC, 0xF8DD, 0xF8DE,
- 0xF8DF, 0xF8E0, 0xF8E1, 0xF8E2, 0xF8E3, 0xF8E4,
- 0xF8E5, 0xF8E6, 0xF8E7, 0xF8E8, 0xF8E9, 0xF8EA,
- 0xF8EB, 0xF8EC, 0xF8ED, 0xF8EE, 0xF8EF, 0xF8F0,
- 0xF8F1, 0xF8F2, 0xF8F3, 0xF8F4, 0xF8F5, 0xF8F6,
- 0xF8F7, 0xF8F8, 0xF8F9, 0xF8FA, 0xF8FB, 0xF8FC,
- 0xF8FD, 0xF8FE, 0xF9A1, 0xF9A2, 0xF9A3, 0xF9A4,
- 0xF9A5, 0xF9A6, 0xF9A7, 0xF9A8, 0xF9A9, 0xF9AA,
- 0xF9AB, 0xF9AC, 0xF9AD, 0xF9AE, 0xF9AF, 0xF9B0,
- 0xF9B1, 0xF9B2, 0xF9B3, 0xF9B4, 0xF9B5, 0xF9B6,
- 0xF9B7, 0xF9B8, 0xF9B9, 0xF9BA, 0xF9BB, 0xF9BC,
- 0xF9BD, 0xF9BE, 0xF9BF, 0xF9C0, 0xF9C1, 0xF9C2,
- 0xF9C3, 0xF9C4, 0xF9C5, 0xF9C6, 0xF9C7, 0xF9C8,
- 0xF9C9, 0xF9CA, 0xF9CB, 0xF9CC, 0xF9CD, 0xF9CE,
- 0xF9CF, 0xF9D0, 0xF9D1, 0xF9D2, 0xF9D3, 0xF9D4,
- 0xF9D5, 0xF9D6, 0xF9D7, 0xF9D8, 0xF9D9, 0xF9DA,
- 0xF9DB, 0xF9DC, 0xF9DD, 0xF9DE, 0xF9DF, 0xF9E0,
- 0xF9E1, 0xF9E2, 0xF9E3, 0xF9E4, 0xF9E5, 0xF9E6,
- 0xF9E7, 0xF9E8, 0xF9E9, 0xF9EA, 0xF9EB, 0xF9EC,
- 0xF9ED, 0xF9EE, 0xF9EF, 0xF9F0, 0xF9F1, 0xF9F2,
- 0xF9F3, 0xF9F4, 0xF9F5, 0xF9F6, 0xF9F7, 0xF9F8,
- 0xF9F9, 0xF9FA, 0xF9FB, 0xF9FC, 0xF9FD, 0xF9FE,
- 0xFAA1, 0xFAA2, 0xFAA3, 0xFAA4, 0xFAA5, 0xFAA6,
- 0xFAA7, 0xFAA8, 0xFAA9, 0xFAAA, 0xFAAB, 0xFAAC,
- 0xFAAD, 0xFAAE, 0xFAAF, 0xFAB0, 0xFAB1, 0xFAB2,
- 0xFAB3, 0xFAB4, 0xFAB5, 0xFAB6, 0xFAB7, 0xFAB8,
- 0xFAB9, 0xFABA, 0xFABB, 0xFABC, 0xFABD, 0xFABE,
- 0xFABF, 0xFAC0, 0xFAC1, 0xFAC2, 0xFAC3, 0xFAC4,
- 0xFAC5, 0xFAC6, 0xFAC7, 0xFAC8, 0xFAC9, 0xFACA,
- 0xFACB, 0xFACC, 0xFACD, 0xFACE, 0xFACF, 0xFAD0,
- 0xFAD1, 0xFAD2, 0xFAD3, 0xFAD4, 0xFAD5, 0xFAD6,
- 0xFAD7, 0xFAD8, 0xFAD9, 0xFADA, 0xFADB, 0xFADC,
- 0xFADD, 0xFADE, 0xFADF, 0xFAE0, 0xFAE1, 0xFAE2,
- 0xFAE3, 0xFAE4, 0xFAE5, 0xFAE6, 0xFAE7, 0xFAE8,
- 0xFAE9, 0xFAEA, 0xFAEB, 0xFAEC, 0xFAED, 0xFAEE,
- 0xFAEF, 0xFAF0, 0xFAF1, 0xFAF2, 0xFAF3, 0xFAF4,
- 0xFAF5, 0xFAF6, 0xFAF7, 0xFAF8, 0xFAF9, 0xFAFA,
- 0xFAFB, 0xFAFC, 0xFAFD, 0xFAFE, 0xFBA1, 0xFBA2,
- 0xFBA3, 0xFBA4, 0xFBA5, 0xFBA6, 0xFBA7, 0xFBA8,
- 0xFBA9, 0xFBAA, 0xFBAB, 0xFBAC, 0xFBAD, 0xFBAE,
- 0xFBAF, 0xFBB0, 0xFBB1, 0xFBB2, 0xFBB3, 0xFBB4,
- 0xFBB5, 0xFBB6, 0xFBB7, 0xFBB8, 0xFBB9, 0xFBBA,
- 0xFBBB, 0xFBBC, 0xFBBD, 0xFBBE, 0xFBBF, 0xFBC0,
- 0xFBC1, 0xFBC2, 0xFBC3, 0xFBC4, 0xFBC5, 0xFBC6,
- 0xFBC7, 0xFBC8, 0xFBC9, 0xFBCA, 0xFBCB, 0xFBCC,
- 0xFBCD, 0xFBCE, 0xFBCF, 0xFBD0, 0xFBD1, 0xFBD2,
- 0xFBD3, 0xFBD4, 0xFBD5, 0xFBD6, 0xFBD7, 0xFBD8,
- 0xFBD9, 0xFBDA, 0xFBDB, 0xFBDC, 0xFBDD, 0xFBDE,
- 0xFBDF, 0xFBE0, 0xFBE1, 0xFBE2, 0xFBE3, 0xFBE4,
- 0xFBE5, 0xFBE6, 0xFBE7, 0xFBE8, 0xFBE9, 0xFBEA,
- 0xFBEB, 0xFBEC, 0xFBED, 0xFBEE, 0xFBEF, 0xFBF0,
- 0xFBF1, 0xFBF2, 0xFBF3, 0xFBF4, 0xFBF5, 0xFBF6,
- 0xFBF7, 0xFBF8, 0xFBF9, 0xFBFA, 0xFBFB, 0xFBFC,
- 0xFBFD, 0xFBFE, 0xFCA1, 0xFCA2, 0xFCA3, 0xFCA4,
- 0xFCA5, 0xFCA6, 0xFCA7, 0xFCA8, 0xFCA9, 0xFCAA,
- 0xFCAB, 0xFCAC, 0xFCAD, 0xFCAE, 0xFCAF, 0xFCB0,
- 0xFCB1, 0xFCB2, 0xFCB3, 0xFCB4, 0xFCB5, 0xFCB6,
- 0xFCB7, 0xFCB8, 0xFCB9, 0xFCBA, 0xFCBB, 0xFCBC,
- 0xFCBD, 0xFCBE, 0xFCBF, 0xFCC0, 0xFCC1, 0xFCC2,
- 0xFCC3, 0xFCC4, 0xFCC5, 0xFCC6, 0xFCC7, 0xFCC8,
- 0xFCC9, 0xFCCA, 0xFCCB, 0xFCCC, 0xFCCD, 0xFCCE,
- 0xFCCF, 0xFCD0, 0xFCD1, 0xFCD2, 0xFCD3, 0xFCD4,
- 0xFCD5, 0xFCD6, 0xFCD7, 0xFCD8, 0xFCD9, 0xFCDA,
- 0xFCDB, 0xFCDC, 0xFCDD, 0xFCDE, 0xFCDF, 0xFCE0,
- 0xFCE1, 0xFCE2, 0xFCE3, 0xFCE4, 0xFCE5, 0xFCE6,
- 0xFCE7, 0xFCE8, 0xFCE9, 0xFCEA, 0xFCEB, 0xFCEC,
- 0xFCED, 0xFCEE, 0xFCEF, 0xFCF0, 0xFCF1, 0xFCF2,
- 0xFCF3, 0xFCF4, 0xFCF5, 0xFCF6, 0xFCF7, 0xFCF8,
- 0xFCF9, 0xFCFA, 0xFCFB, 0xFCFC, 0xFCFD, 0xFCFE,
- 0xFDA1, 0xFDA2, 0xFDA3, 0xFDA4, 0xFDA5, 0xFDA6,
- 0xFDA7, 0xFDA8, 0xFDA9, 0xFDAA, 0xFDAB, 0xFDAC,
- 0xFDAD, 0xFDAE, 0xFDAF, 0xFDB0, 0xFDB1, 0xFDB2,
- 0xFDB3, 0xFDB4, 0xFDB5, 0xFDB6, 0xFDB7, 0xFDB8,
- 0xFDB9, 0xFDBA, 0xFDBB, 0xFDBC, 0xFDBD, 0xFDBE,
- 0xFDBF, 0xFDC0, 0xFDC1, 0xFDC2, 0xFDC3, 0xFDC4,
- 0xFDC5, 0xFDC6, 0xFDC7, 0xFDC8, 0xFDC9, 0xFDCA,
- 0xFDCB, 0xFDCC, 0xFDCD, 0xFDCE, 0xFDCF, 0xFDD0,
- 0xFDD1, 0xFDD2, 0xFDD3, 0xFDD4, 0xFDD5, 0xFDD6,
- 0xFDD7, 0xFDD8, 0xFDD9, 0xFDDA, 0xFDDB, 0xFDDC,
- 0xFDDD, 0xFDDE, 0xFDDF, 0xFDE0, 0xFDE1, 0xFDE2,
- 0xFDE3, 0xFDE4, 0xFDE5, 0xFDE6, 0xFDE7, 0xFDE8,
- 0xFDE9, 0xFDEA, 0xFDEB, 0xFDEC, 0xFDED, 0xFDEE,
- 0xFDEF, 0xFDF0, 0xFDF1, 0xFDF2, 0xFDF3, 0xFDF4,
- 0xFDF5, 0xFDF6, 0xFDF7, 0xFDF8, 0xFDF9, 0xFDFA,
- 0xFDFB, 0xFDFC, 0xFDFD, 0xFDFE, 0xFEA1, 0xFEA2,
- 0xFEA3, 0xFEA4, 0xFEA5, 0xFEA6, 0xFEA7, 0xFEA8,
- 0xFEA9, 0xFEAA, 0xFEAB, 0xFEAC, 0xFEAD, 0xFEAE,
- 0xFEAF, 0xFEB0, 0xFEB1, 0xFEB2, 0xFEB3, 0xFEB4,
- 0xFEB5, 0xFEB6, 0xFEB7, 0xFEB8, 0xFEB9, 0xFEBA,
- 0xFEBB, 0xFEBC, 0xFEBD, 0xFEBE, 0xFEBF, 0xFEC0,
- 0xFEC1, 0xFEC2, 0xFEC3, 0xFEC4, 0xFEC5, 0xFEC6,
- 0xFEC7, 0xFEC8, 0xFEC9, 0xFECA, 0xFECB, 0xFECC,
- 0xFECD, 0xFECE, 0xFECF, 0xFED0, 0xFED1, 0xFED2,
- 0xFED3, 0xFED4, 0xFED5, 0xFED6, 0xFED7, 0xFED8,
- 0xFED9, 0xFEDA, 0xFEDB, 0xFEDC, 0xFEDD, 0xFEDE,
- 0xFEDF, 0xFEE0, 0xFEE1, 0xFEE2, 0xFEE3, 0xFEE4,
- 0xFEE5, 0xFEE6, 0xFEE7, 0xFEE8, 0xFEE9, 0xFEEA,
- 0xFEEB, 0xFEEC, 0xFEED, 0xFEEE, 0xFEEF, 0xFEF0,
- 0xFEF1, 0xFEF2, 0xFEF3, 0xFEF4, 0xFEF5, 0xFEF6,
- 0xFEF7, 0xFEF8, 0xFEF9, 0xFEFA, 0xFEFB, 0xFEFC,
- 0xFEFD, 0xFEFE, 0xA140, 0xA141, 0xA142, 0xA143,
- 0xA144, 0xA145, 0xA146, 0xA147, 0xA148, 0xA149,
- 0xA14A, 0xA14B, 0xA14C, 0xA14D, 0xA14E, 0xA14F,
- 0xA150, 0xA151, 0xA152, 0xA153, 0xA154, 0xA155,
- 0xA156, 0xA157, 0xA158, 0xA159, 0xA15A, 0xA15B,
- 0xA15C, 0xA15D, 0xA15E, 0xA15F, 0xA160, 0xA161,
- 0xA162, 0xA163, 0xA164, 0xA165, 0xA166, 0xA167,
- 0xA168, 0xA169, 0xA16A, 0xA16B, 0xA16C, 0xA16D,
- 0xA16E, 0xA16F, 0xA170, 0xA171, 0xA172, 0xA173,
- 0xA174, 0xA175, 0xA176, 0xA177, 0xA178, 0xA179,
- 0xA17A, 0xA17B, 0xA17C, 0xA17D, 0xA17E, 0xA180,
- 0xA181, 0xA182, 0xA183, 0xA184, 0xA185, 0xA186,
- 0xA187, 0xA188, 0xA189, 0xA18A, 0xA18B, 0xA18C,
- 0xA18D, 0xA18E, 0xA18F, 0xA190, 0xA191, 0xA192,
- 0xA193, 0xA194, 0xA195, 0xA196, 0xA197, 0xA198,
- 0xA199, 0xA19A, 0xA19B, 0xA19C, 0xA19D, 0xA19E,
- 0xA19F, 0xA1A0, 0xA240, 0xA241, 0xA242, 0xA243,
- 0xA244, 0xA245, 0xA246, 0xA247, 0xA248, 0xA249,
- 0xA24A, 0xA24B, 0xA24C, 0xA24D, 0xA24E, 0xA24F,
- 0xA250, 0xA251, 0xA252, 0xA253, 0xA254, 0xA255,
- 0xA256, 0xA257, 0xA258, 0xA259, 0xA25A, 0xA25B,
- 0xA25C, 0xA25D, 0xA25E, 0xA25F, 0xA260, 0xA261,
- 0xA262, 0xA263, 0xA264, 0xA265, 0xA266, 0xA267,
- 0xA268, 0xA269, 0xA26A, 0xA26B, 0xA26C, 0xA26D,
- 0xA26E, 0xA26F, 0xA270, 0xA271, 0xA272, 0xA273,
- 0xA274, 0xA275, 0xA276, 0xA277, 0xA278, 0xA279,
- 0xA27A, 0xA27B, 0xA27C, 0xA27D, 0xA27E, 0xA280,
- 0xA281, 0xA282, 0xA283, 0xA284, 0xA285, 0xA286,
- 0xA287, 0xA288, 0xA289, 0xA28A, 0xA28B, 0xA28C,
- 0xA28D, 0xA28E, 0xA28F, 0xA290, 0xA291, 0xA292,
- 0xA293, 0xA294, 0xA295, 0xA296, 0xA297, 0xA298,
- 0xA299, 0xA29A, 0xA29B, 0xA29C, 0xA29D, 0xA29E,
- 0xA29F, 0xA2A0, 0xA340, 0xA341, 0xA342, 0xA343,
- 0xA344, 0xA345, 0xA346, 0xA347, 0xA348, 0xA349,
- 0xA34A, 0xA34B, 0xA34C, 0xA34D, 0xA34E, 0xA34F,
- 0xA350, 0xA351, 0xA352, 0xA353, 0xA354, 0xA355,
- 0xA356, 0xA357, 0xA358, 0xA359, 0xA35A, 0xA35B,
- 0xA35C, 0xA35D, 0xA35E, 0xA35F, 0xA360, 0xA361,
- 0xA362, 0xA363, 0xA364, 0xA365, 0xA366, 0xA367,
- 0xA368, 0xA369, 0xA36A, 0xA36B, 0xA36C, 0xA36D,
- 0xA36E, 0xA36F, 0xA370, 0xA371, 0xA372, 0xA373,
- 0xA374, 0xA375, 0xA376, 0xA377, 0xA378, 0xA379,
- 0xA37A, 0xA37B, 0xA37C, 0xA37D, 0xA37E, 0xA380,
- 0xA381, 0xA382, 0xA383, 0xA384, 0xA385, 0xA386,
- 0xA387, 0xA388, 0xA389, 0xA38A, 0xA38B, 0xA38C,
- 0xA38D, 0xA38E, 0xA38F, 0xA390, 0xA391, 0xA392,
- 0xA393, 0xA394, 0xA395, 0xA396, 0xA397, 0xA398,
- 0xA399, 0xA39A, 0xA39B, 0xA39C, 0xA39D, 0xA39E,
- 0xA39F, 0xA3A0, 0xA440, 0xA441, 0xA442, 0xA443,
- 0xA444, 0xA445, 0xA446, 0xA447, 0xA448, 0xA449,
- 0xA44A, 0xA44B, 0xA44C, 0xA44D, 0xA44E, 0xA44F,
- 0xA450, 0xA451, 0xA452, 0xA453, 0xA454, 0xA455,
- 0xA456, 0xA457, 0xA458, 0xA459, 0xA45A, 0xA45B,
- 0xA45C, 0xA45D, 0xA45E, 0xA45F, 0xA460, 0xA461,
- 0xA462, 0xA463, 0xA464, 0xA465, 0xA466, 0xA467,
- 0xA468, 0xA469, 0xA46A, 0xA46B, 0xA46C, 0xA46D,
- 0xA46E, 0xA46F, 0xA470, 0xA471, 0xA472, 0xA473,
- 0xA474, 0xA475, 0xA476, 0xA477, 0xA478, 0xA479,
- 0xA47A, 0xA47B, 0xA47C, 0xA47D, 0xA47E, 0xA480,
- 0xA481, 0xA482, 0xA483, 0xA484, 0xA485, 0xA486,
- 0xA487, 0xA488, 0xA489, 0xA48A, 0xA48B, 0xA48C,
- 0xA48D, 0xA48E, 0xA48F, 0xA490, 0xA491, 0xA492,
- 0xA493, 0xA494, 0xA495, 0xA496, 0xA497, 0xA498,
- 0xA499, 0xA49A, 0xA49B, 0xA49C, 0xA49D, 0xA49E,
- 0xA49F, 0xA4A0, 0xA540, 0xA541, 0xA542, 0xA543,
- 0xA544, 0xA545, 0xA546, 0xA547, 0xA548, 0xA549,
- 0xA54A, 0xA54B, 0xA54C, 0xA54D, 0xA54E, 0xA54F,
- 0xA550, 0xA551, 0xA552, 0xA553, 0xA554, 0xA555,
- 0xA556, 0xA557, 0xA558, 0xA559, 0xA55A, 0xA55B,
- 0xA55C, 0xA55D, 0xA55E, 0xA55F, 0xA560, 0xA561,
- 0xA562, 0xA563, 0xA564, 0xA565, 0xA566, 0xA567,
- 0xA568, 0xA569, 0xA56A, 0xA56B, 0xA56C, 0xA56D,
- 0xA56E, 0xA56F, 0xA570, 0xA571, 0xA572, 0xA573,
- 0xA574, 0xA575, 0xA576, 0xA577, 0xA578, 0xA579,
- 0xA57A, 0xA57B, 0xA57C, 0xA57D, 0xA57E, 0xA580,
- 0xA581, 0xA582, 0xA583, 0xA584, 0xA585, 0xA586,
- 0xA587, 0xA588, 0xA589, 0xA58A, 0xA58B, 0xA58C,
- 0xA58D, 0xA58E, 0xA58F, 0xA590, 0xA591, 0xA592,
- 0xA593, 0xA594, 0xA595, 0xA596, 0xA597, 0xA598,
- 0xA599, 0xA59A, 0xA59B, 0xA59C, 0xA59D, 0xA59E,
- 0xA59F, 0xA5A0, 0xA640, 0xA641, 0xA642, 0xA643,
- 0xA644, 0xA645, 0xA646, 0xA647, 0xA648, 0xA649,
- 0xA64A, 0xA64B, 0xA64C, 0xA64D, 0xA64E, 0xA64F,
- 0xA650, 0xA651, 0xA652, 0xA653, 0xA654, 0xA655,
- 0xA656, 0xA657, 0xA658, 0xA659, 0xA65A, 0xA65B,
- 0xA65C, 0xA65D, 0xA65E, 0xA65F, 0xA660, 0xA661,
- 0xA662, 0xA663, 0xA664, 0xA665, 0xA666, 0xA667,
- 0xA668, 0xA669, 0xA66A, 0xA66B, 0xA66C, 0xA66D,
- 0xA66E, 0xA66F, 0xA670, 0xA671, 0xA672, 0xA673,
- 0xA674, 0xA675, 0xA676, 0xA677, 0xA678, 0xA679,
- 0xA67A, 0xA67B, 0xA67C, 0xA67D, 0xA67E, 0xA680,
- 0xA681, 0xA682, 0xA683, 0xA684, 0xA685, 0xA686,
- 0xA687, 0xA688, 0xA689, 0xA68A, 0xA68B, 0xA68C,
- 0xA68D, 0xA68E, 0xA68F, 0xA690, 0xA691, 0xA692,
- 0xA693, 0xA694, 0xA695, 0xA696, 0xA697, 0xA698,
- 0xA699, 0xA69A, 0xA69B, 0xA69C, 0xA69D, 0xA69E,
- 0xA69F, 0xA6A0, 0xA740, 0xA741, 0xA742, 0xA743,
- 0xA744, 0xA745, 0xA746, 0xA747, 0xA748, 0xA749,
- 0xA74A, 0xA74B, 0xA74C, 0xA74D, 0xA74E, 0xA74F,
- 0xA750, 0xA751, 0xA752, 0xA753, 0xA754, 0xA755,
- 0xA756, 0xA757, 0xA758, 0xA759, 0xA75A, 0xA75B,
- 0xA75C, 0xA75D, 0xA75E, 0xA75F, 0xA760, 0xA761,
- 0xA762, 0xA763, 0xA764, 0xA765, 0xA766, 0xA767,
- 0xA768, 0xA769, 0xA76A, 0xA76B, 0xA76C, 0xA76D,
- 0xA76E, 0xA76F, 0xA770, 0xA771, 0xA772, 0xA773,
- 0xA774, 0xA775, 0xA776, 0xA777, 0xA778, 0xA779,
- 0xA77A, 0xA77B, 0xA77C, 0xA77D, 0xA77E, 0xA780,
- 0xA781, 0xA782, 0xA783, 0xA784, 0xA785, 0xA786,
- 0xA787, 0xA788, 0xA789, 0xA78A, 0xA78B, 0xA78C,
- 0xA78D, 0xA78E, 0xA78F, 0xA790, 0xA791, 0xA792,
- 0xA793, 0xA794, 0xA795, 0xA796, 0xA797, 0xA798,
- 0xA799, 0xA79A, 0xA79B, 0xA79C, 0xA79D, 0xA79E,
- 0xA79F, 0xA7A0, 0xA2AB, 0xA2AC, 0xA2AD, 0xA2AE,
- 0xA2AF, 0xA2B0,0x8336C739, 0xA2E4, 0xA2EF, 0xA2F0,
- 0xA2FD, 0xA2FE, 0xA4F4, 0xA4F5, 0xA4F6, 0xA4F7,
- 0xA4F8, 0xA4F9, 0xA4FA, 0xA4FB, 0xA4FC, 0xA4FD,
- 0xA4FE, 0xA5F7, 0xA5F8, 0xA5F9, 0xA5FA, 0xA5FB,
- 0xA5FC, 0xA5FD, 0xA5FE, 0xA6B9, 0xA6BA, 0xA6BB,
- 0xA6BC, 0xA6BD, 0xA6BE, 0xA6BF, 0xA6C0, 0xA6D9,
- 0xA6DA, 0xA6DB, 0xA6DC, 0xA6DD, 0xA6DE, 0xA6DF,
- 0xA6EC, 0xA6ED, 0xA6F3, 0xA6F6, 0xA6F7, 0xA6F8,
- 0xA6F9, 0xA6FA, 0xA6FB, 0xA6FC, 0xA6FD, 0xA6FE,
- 0xA7C2, 0xA7C3, 0xA7C4, 0xA7C5, 0xA7C6, 0xA7C7,
- 0xA7C8, 0xA7C9, 0xA7CA, 0xA7CB, 0xA7CC, 0xA7CD,
- 0xA7CE, 0xA7CF, 0xA7D0, 0xA7F2, 0xA7F3, 0xA7F4,
- 0xA7F5, 0xA7F6, 0xA7F7, 0xA7F8, 0xA7F9, 0xA7FA,
- 0xA7FB, 0xA7FC, 0xA7FD, 0xA7FE, 0xA896, 0xA897,
- 0xA898, 0xA899, 0xA89A, 0xA89B, 0xA89C, 0xA89D,
- 0xA89E, 0xA89F, 0xA8A0, 0xA8BC,0x8336C830, 0xA8C1,
- 0xA8C2, 0xA8C3, 0xA8C4, 0xA8EA, 0xA8EB, 0xA8EC,
- 0xA8ED, 0xA8EE, 0xA8EF, 0xA8F0, 0xA8F1, 0xA8F2,
- 0xA8F3, 0xA8F4, 0xA8F5, 0xA8F6, 0xA8F7, 0xA8F8,
- 0xA8F9, 0xA8FA, 0xA8FB, 0xA8FC, 0xA8FD, 0xA8FE,
- 0xA958, 0xA95B, 0xA95D, 0xA95E, 0xA95F,0x8336C831,
- 0x8336C832,0x8336C833,0x8336C834,0x8336C835,0x8336C836,0x8336C837,
- 0x8336C838,0x8336C839,0x8336C930,0x8336C931,0x8336C932,0x8336C933,
- 0xA997, 0xA998, 0xA999, 0xA99A, 0xA99B, 0xA99C,
- 0xA99D, 0xA99E, 0xA99F, 0xA9A0, 0xA9A1, 0xA9A2,
- 0xA9A3, 0xA9F0, 0xA9F1, 0xA9F2, 0xA9F3, 0xA9F4,
- 0xA9F5, 0xA9F6, 0xA9F7, 0xA9F8, 0xA9F9, 0xA9FA,
- 0xA9FB, 0xA9FC, 0xA9FD, 0xA9FE, 0xD7FA, 0xD7FB,
- 0xD7FC, 0xD7FD, 0xD7FE,0x8336C934, 0xFE51, 0xFE52,
- 0xFE53,0x8336C935,0x8336C936,0x8336C937,0x8336C938,0x8336C939,
- 0xFE59,0x8336CA30,0x8336CA31,0x8336CA32,0x8336CA33,0x8336CA34,
- 0x8336CA35,0x8336CA36, 0xFE61,0x8336CA37,0x8336CA38,0x8336CA39,
- 0x8336CB30, 0xFE66, 0xFE67,0x8336CB31,0x8336CB32,0x8336CB33,
- 0x8336CB34, 0xFE6C, 0xFE6D,0x8336CB35,0x8336CB36,0x8336CB37,
- 0x8336CB38,0x8336CB39,0x8336CC30,0x8336CC31,0x8336CC32, 0xFE76,
- 0x8336CC33,0x8336CC34,0x8336CC35,0x8336CC36,0x8336CC37,0x8336CC38,
- 0x8336CC39, 0xFE7E,0x8336CD30,0x8336CD31,0x8336CD32,0x8336CD33,
- 0x8336CD34,0x8336CD35,0x8336CD36,0x8336CD37,0x8336CD38,0x8336CD39,
- 0x8336CE30,0x8336CE31,0x8336CE32,0x8336CE33,0x8336CE34,0x8336CE35,
- 0xFE90, 0xFE91,0x8336CE36,0x8336CE37,0x8336CE38,0x8336CE39,
- 0x8336CF30,0x8336CF31,0x8336CF32,0x8336CF33,0x8336CF34,0x8336CF35,
- 0x8336CF36,0x8336CF37,0x8336CF38,0x8336CF39, 0xFEA0, 0xFD9C,
- 0x84308535,0x84308536,0x84308537,0x84308538,0x84308539,0x84308630,
- 0x84308631,0x84308632,0x84308633,0x84308634,0x84308635,0x84308636,
- 0x84308637,0x84308638,0x84308639,0x84308730,0x84308731,0x84308732,
- 0x84308733,0x84308734,0x84308735,0x84308736,0x84308737,0x84308738,
- 0x84308739,0x84308830,0x84308831,0x84308832,0x84308833,0x84308834,
- 0x84308835,0x84308836,0x84308837,0x84308838,0x84308839,0x84308930,
- 0x84308931,0x84308932,0x84308933,0x84308934,0x84308935,0x84308936,
- 0x84308937,0x84308938,0x84308939,0x84308A30,0x84308A31,0x84308A32,
- 0x84308A33,0x84308A34,0x84308A35,0x84308A36,0x84308A37,0x84308A38,
- 0x84308A39,0x84308B30,0x84308B31,0x84308B32,0x84308B33,0x84308B34,
- 0x84308B35,0x84308B36,0x84308B37,0x84308B38,0x84308B39,0x84308C30,
- 0x84308C31,0x84308C32,0x84308C33,0x84308C34,0x84308C35,0x84308C36,
- 0x84308C37,0x84308C38,0x84308C39,0x84308D30, 0xFD9D,0x84308D31,
- 0x84308D32,0x84308D33,0x84308D34,0x84308D35,0x84308D36,0x84308D37,
- 0x84308D38,0x84308D39,0x84308E30,0x84308E31,0x84308E32,0x84308E33,
- 0x84308E34,0x84308E35,0x84308E36,0x84308E37,0x84308E38,0x84308E39,
- 0x84308F30,0x84308F31,0x84308F32,0x84308F33,0x84308F34,0x84308F35,
- 0x84308F36,0x84308F37, 0xFD9E,0x84308F38,0x84308F39,0x84309030,
- 0x84309031,0x84309032,0x84309033,0x84309034,0x84309035,0x84309036,
- 0x84309037,0x84309038,0x84309039,0x84309130,0x84309131,0x84309132,
- 0x84309133,0x84309134,0x84309135,0x84309136,0x84309137,0x84309138,
- 0x84309139,0x84309230,0x84309231,0x84309232,0x84309233,0x84309234,
- 0x84309235,0x84309236,0x84309237,0x84309238,0x84309239,0x84309330,
- 0x84309331,0x84309332,0x84309333,0x84309334,0x84309335,0x84309336,
- 0x84309337,0x84309338,0x84309339,0x84309430,0x84309431,0x84309432,
- 0x84309433,0x84309434,0x84309435,0x84309436,0x84309437,0x84309438,
- 0x84309439,0x84309530,0x84309531,0x84309532,0x84309533,0x84309534,
- 0x84309535,0x84309536,0x84309537,0x84309538,0x84309539,0x84309630,
- 0x84309631,0x84309632,0x84309633,0x84309634,0x84309635,0x84309636,
- 0x84309637,0x84309638,0x84309639,0x84309730,0x84309731,0x84309732,
- 0x84309733,0x84309734,0x84309735,0x84309736,0x84309737,0x84309738,
- 0xFD9F,0x84309739,0x84309830,0x84309831,0x84309832,0x84309833,
- 0x84309834,0x84309835,0x84309836,0x84309837, 0xFDA0,0x84309838,
- 0x84309839,0x84309930,0x84309931,0x84309932,0x84309933,0x84309934,
- 0x84309935,0x84309936,0x84309937,0x84309938,0x84309939,0x84309A30,
- 0x84309A31,0x84309A32,0x84309A33,0x84309A34,0x84309A35,0x84309A36,
- 0x84309A37,0x84309A38,0x84309A39,0x84309B30,0x84309B31,0x84309B32,
- 0x84309B33, 0xFE40, 0xFE41, 0xFE42, 0xFE43,0x84309B34,
- 0xFE44,0x84309B35, 0xFE45, 0xFE46,0x84309B36,0x84309B37,
- 0x84309B38, 0xFE47,0x84309B39,0x84309C30,0x84309C31,0x84309C32,
- 0x84309C33,0x84309C34, 0xFE48, 0xFE49, 0xFE4A,0x84309C35,
- 0xFE4B, 0xFE4C,0x84309C36,0x84309C37, 0xFE4D, 0xFE4E,
- 0xFE4F, 0xA955, 0xA6F2,0x84318538, 0xA6F4, 0xA6F5,
- 0xA6E0, 0xA6E1, 0xA6F0, 0xA6F1, 0xA6E2, 0xA6E3,
- 0xA6EE, 0xA6EF, 0xA6E6, 0xA6E7, 0xA6E4, 0xA6E5,
- 0xA6E8, 0xA6E9, 0xA6EA, 0xA6EB,0x84318539,0x84318630,
- 0x84318631,0x84318632, 0xA968, 0xA969, 0xA96A, 0xA96B,
- 0xA96C, 0xA96D, 0xA96E, 0xA96F, 0xA970, 0xA971,
- 0x84318633, 0xA972, 0xA973, 0xA974, 0xA975,0x84318634,
- 0xA976, 0xA977, 0xA978, 0xA979, 0xA97A, 0xA97B,
- 0xA97C, 0xA97D, 0xA97E, 0xA980, 0xA981, 0xA982,
- 0xA983, 0xA984,0x84318635, 0xA985, 0xA986, 0xA987,
- 0xA988,0x84318636,0x84318637,0x84318638,0x84318639,0x84318730,
- 0x84318731,0x84318732,0x84318733,0x84318734,0x84318735,0x84318736,
- 0x84318737,0x84318738,0x84318739,0x84318830,0x84318831,0x84318832,
- 0x84318833,0x84318834,0x84318835,0x84318836,0x84318837,0x84318838,
- 0x84318839,0x84318930,0x84318931,0x84318932,0x84318933,0x84318934,
- 0x84318935,0x84318936,0x84318937,0x84318938,0x84318939,0x84318A30,
- 0x84318A31,0x84318A32,0x84318A33,0x84318A34,0x84318A35,0x84318A36,
- 0x84318A37,0x84318A38,0x84318A39,0x84318B30,0x84318B31,0x84318B32,
- 0x84318B33,0x84318B34,0x84318B35,0x84318B36,0x84318B37,0x84318B38,
- 0x84318B39,0x84318C30,0x84318C31,0x84318C32,0x84318C33,0x84318C34,
- 0x84318C35,0x84318C36,0x84318C37,0x84318C38,0x84318C39,0x84318D30,
- 0x84318D31,0x84318D32,0x84318D33,0x84318D34,0x84318D35,0x84318D36,
- 0x84318D37,0x84318D38,0x84318D39,0x84318E30,0x84318E31,0x84318E32,
- 0x84318E33,0x84318E34,0x84318E35,0x84318E36,0x84318E37,0x84318E38,
- 0x84318E39,0x84318F30,0x84318F31,0x84318F32,0x84318F33,0x84318F34,
- 0x84318F35,0x84318F36,0x84318F37,0x84318F38,0x84318F39,0x84319030,
- 0x84319031,0x84319032,0x84319033,0x84319034,0x84319035,0x84319036,
- 0x84319037,0x84319038,0x84319039,0x84319130,0x84319131,0x84319132,
- 0x84319133,0x84319134,0x84319135,0x84319136,0x84319137,0x84319138,
- 0x84319139,0x84319230,0x84319231,0x84319232,0x84319233,0x84319234,
- 0x84319235,0x84319236,0x84319237,0x84319238,0x84319239,0x84319330,
- 0x84319331,0x84319332,0x84319333,0x84319334,0x84319335,0x84319336,
- 0x84319337,0x84319338,0x84319339,0x84319430,0x84319431,0x84319432,
- 0x84319433,0x84319434,0x84319435,0x84319436,0x84319437,0x84319438,
- 0x84319439,0x84319530,0x84319531,0x84319532,0x84319533,0x84319534,
- 0xA3A1, 0xA3A2, 0xA3A3, 0xA1E7, 0xA3A5, 0xA3A6,
- 0xA3A7, 0xA3A8, 0xA3A9, 0xA3AA, 0xA3AB, 0xA3AC,
- 0xA3AD, 0xA3AE, 0xA3AF, 0xA3B0, 0xA3B1, 0xA3B2,
- 0xA3B3, 0xA3B4, 0xA3B5, 0xA3B6, 0xA3B7, 0xA3B8,
- 0xA3B9, 0xA3BA, 0xA3BB, 0xA3BC, 0xA3BD, 0xA3BE,
- 0xA3BF, 0xA3C0, 0xA3C1, 0xA3C2, 0xA3C3, 0xA3C4,
- 0xA3C5, 0xA3C6, 0xA3C7, 0xA3C8, 0xA3C9, 0xA3CA,
- 0xA3CB, 0xA3CC, 0xA3CD, 0xA3CE, 0xA3CF, 0xA3D0,
- 0xA3D1, 0xA3D2, 0xA3D3, 0xA3D4, 0xA3D5, 0xA3D6,
- 0xA3D7, 0xA3D8, 0xA3D9, 0xA3DA, 0xA3DB, 0xA3DC,
- 0xA3DD, 0xA3DE, 0xA3DF, 0xA3E0, 0xA3E1, 0xA3E2,
- 0xA3E3, 0xA3E4, 0xA3E5, 0xA3E6, 0xA3E7, 0xA3E8,
- 0xA3E9, 0xA3EA, 0xA3EB, 0xA3EC, 0xA3ED, 0xA3EE,
- 0xA3EF, 0xA3F0, 0xA3F1, 0xA3F2, 0xA3F3, 0xA3F4,
- 0xA3F5, 0xA3F6, 0xA3F7, 0xA3F8, 0xA3F9, 0xA3FA,
- 0xA3FB, 0xA3FC, 0xA3FD, 0xA1AB,0x84319535,0x84319536,
- 0x84319537,0x84319538,0x84319539,0x84319630,0x84319631,0x84319632,
- 0x84319633,0x84319634,0x84319635,0x84319636,0x84319637,0x84319638,
- 0x84319639,0x84319730,0x84319731,0x84319732,0x84319733,0x84319734,
- 0x84319735,0x84319736,0x84319737,0x84319738,0x84319739,0x84319830,
- 0x84319831,0x84319832,0x84319833,0x84319834,0x84319835,0x84319836,
- 0x84319837,0x84319838,0x84319839,0x84319930,0x84319931,0x84319932,
- 0x84319933,0x84319934,0x84319935,0x84319936,0x84319937,0x84319938,
- 0x84319939,0x84319A30,0x84319A31,0x84319A32,0x84319A33,0x84319A34,
- 0x84319A35,0x84319A36,0x84319A37,0x84319A38,0x84319A39,0x84319B30,
- 0x84319B31,0x84319B32,0x84319B33,0x84319B34,0x84319B35,0x84319B36,
- 0x84319B37,0x84319B38,0x84319B39,0x84319C30,0x84319C31,0x84319C32,
- 0x84319C33,0x84319C34,0x84319C35,0x84319C36,0x84319C37,0x84319C38,
- 0x84319C39,0x84319D30,0x84319D31,0x84319D32,0x84319D33,0x84319D34,
- 0x84319D35,0x84319D36,0x84319D37,0x84319D38,0x84319D39,0x84319E30,
- 0x84319E31,0x84319E32,0x84319E33,0x84319E34,0x84319E35,0x84319E36,
- 0x84319E37,0x84319E38,0x84319E39,0x84319F30,0x84319F31,0x84319F32,
- 0x84319F33,0x84319F34,0x84319F35,0x84319F36,0x84319F37,0x84319F38,
- 0x84319F39,0x8431A030,0x8431A031,0x8431A032,0x8431A033,0x8431A034,
- 0x8431A035,0x8431A036,0x8431A037,0x8431A038,0x8431A039,0x8431A130,
- 0x8431A131,0x8431A132,0x8431A133,0x8431A134,0x8431A135,0x8431A136,
- 0x8431A137,0x8431A138,0x8431A139,0x8431A230,0x8431A231,0x8431A232,
- 0x8431A233, 0xA1E9, 0xA1EA, 0xA956, 0xA3FE, 0xA957,
- 0xA3A4,
-};
-
-static ImplUnicodeToGb180302000Range const
- aImplUnicodeToGb180302000Ranges[] = {
- { 0, 0x0452, 0x200F, 820 },
- { 978, 0x2643, 0x2E80, 9219 },
- { 2565, 0x361B, 0x3917, 12973 },
- { 4511, 0x3CE1, 0x4055, 14698 },
- { 5480, 0x4160, 0x4336, 15847 },
- { 5746, 0x44D7, 0x464B, 16729 },
- { 6162, 0x478E, 0x4946, 17418 },
- { 6484, 0x49B8, 0x4C76, 17961 },
- { 6597, 0x9FA6, 0xDFFF, 19043 },
- { 27892, 0xE865, 0xF92B, 33550 },
- { 30041, 0xFA2A, 0xFE2F, 38078 },
- { 30295, 0xFFE6, 0xFFFF, 39394 },
-};
diff --git a/sal/textenc/gettextencodingdata.h b/sal/textenc/gettextencodingdata.h
deleted file mode 100644
index 3bd006b65..000000000
--- a/sal/textenc/gettextencodingdata.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_TEXTENC_GETTEXTENCODINGDATA_H
-#define INCLUDED_RTL_TEXTENC_GETTEXTENCODINGDATA_H
-
-#include "tenchelp.h"
-#include "rtl/textenc.h"
-#include "sal/types.h"
-
-#if defined __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-ImplTextEncodingData const *
-Impl_getTextEncodingData(rtl_TextEncoding nEncoding) SAL_THROW_EXTERN_C();
-
-#if defined __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* INCLUDED_RTL_TEXTENC_GETTEXTENCODINGDATA_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/makefile.mk b/sal/textenc/makefile.mk
deleted file mode 100644
index 7970ae052..000000000
--- a/sal/textenc/makefile.mk
+++ /dev/null
@@ -1,117 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ = ..
-PRJNAME = sal
-TARGET = textenc
-LIBTARGET=NO
-
-.INCLUDE: settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-SAL_OBJECTS = \
- $(SLO)$/tencinfo.obj \
- $(SLO)$/textcvt.obj \
- $(SLO)$/textenc.obj
-
-SAL_COMMON_OBJECTS = \
- $(SLO)$/context.obj \
- $(SLO)$/convertbig5hkscs.obj \
- $(SLO)$/converter.obj \
- $(SLO)$/converteuctw.obj \
- $(SLO)$/convertgb18030.obj \
- $(SLO)$/convertiso2022cn.obj \
- $(SLO)$/convertiso2022jp.obj \
- $(SLO)$/convertiso2022kr.obj \
- $(SLO)$/convertsinglebytetobmpunicode.obj \
- $(SLO)$/tcvtbyte.obj \
- $(SLO)$/tcvtmb.obj \
- $(SLO)$/tcvtutf7.obj \
- $(SLO)$/tcvtutf8.obj \
- $(SLO)$/tenchelp.obj \
- $(SLO)$/unichars.obj
-
-SAL_TABLES_OBJECTS = \
- $(SLO)$/tables.obj
-
-SLOFILES = $(SAL_OBJECTS) $(SAL_COMMON_OBJECTS) $(SAL_TABLES_OBJECTS)
-
-SAL_OBJFILES = \
- $(OBJ)$/tencinfo.obj \
- $(OBJ)$/textcvt.obj \
- $(OBJ)$/textenc.obj
-
-SAL_COMMON_OBJFILES = \
- $(OBJ)$/context.obj \
- $(OBJ)$/convertbig5hkscs.obj \
- $(OBJ)$/converter.obj \
- $(OBJ)$/converteuctw.obj \
- $(OBJ)$/convertgb18030.obj \
- $(OBJ)$/convertiso2022cn.obj \
- $(OBJ)$/convertiso2022jp.obj \
- $(OBJ)$/convertiso2022kr.obj \
- $(OBJ)$/convertsinglebytetobmpunicode.obj \
- $(OBJ)$/tcvtbyte.obj \
- $(OBJ)$/tcvtmb.obj \
- $(OBJ)$/tcvtutf7.obj \
- $(OBJ)$/tcvtutf8.obj \
- $(OBJ)$/tenchelp.obj \
- $(OBJ)$/unichars.obj
-
-SAL_TABLES_OBJFILES = \
- $(OBJ)$/tables.obj
-
-OBJFILES = $(SAL_OBJFILES) $(SAL_COMMON_OBJFILES) $(SAL_TABLES_OBJFILES)
-
-# Optimization off on Solaris Intel due to internal compiler error; to be
-# reevaluated after compiler upgrade:
-.IF "$(OS)$(CPU)" == "SOLARISI"
-
-NOOPTFILES = \
- $(OBJ)$/textenc.obj \
- $(SLO)$/textenc.obj \
- $(OBJ)$/tables.obj \
- $(SLO)$/tables.obj
-
-.ENDIF # OS, CPU, SOLARISI
-
-LIB1TARGET= $(SLB)$/$(TARGET).lib
-LIB1OBJFILES= $(SAL_OBJECTS) $(SAL_COMMON_OBJECTS)
-OBJTARGET=$(LB)$/$(TARGET).lib
-
-# be nicer to avoid DLLPRE
-.IF "$(GUI)" == "WNT"
-CDEFS+=-DPLUGIN_NAME=$(DLLPRE)sal_textenc$(UDK_MAJOR)$(DLLPOST)
-.ELSE
-CDEFS+=-DPLUGIN_NAME=$(DLLPRE)sal_textenc$(DLLPOST).$(UDK_MAJOR)
-.ENDIF
-LIB2TARGET= $(SLB)$/textenc_tables.lib
-LIB2OBJFILES= $(SAL_TABLES_OBJECTS) $(SAL_COMMON_OBJECTS)
-
-.INCLUDE: target.mk
diff --git a/sal/textenc/tables.cxx b/sal/textenc/tables.cxx
deleted file mode 100644
index 8197f6810..000000000
--- a/sal/textenc/tables.cxx
+++ /dev/null
@@ -1,234 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifdef IOS
-#define Impl_getTextEncodingData tables_Impl_getTextEncodingData
-#endif
-
-#ifndef INCLUDED_RTL_TEXTENC_GETTEXTENCODINGDATA_H
-#include "gettextencodingdata.h"
-#endif
-
-#ifndef INCLUDED_RTL_TEXTENC_TENCHELP_H
-#include "tenchelp.h"
-#endif
-
-#ifndef _RTL_TEXTENC_H
-#include "rtl/textenc.h"
-#endif
-
-#ifndef INCLUDED_STDDEF_H
-#include <stddef.h>
-#define INCLUDED_STDDEF_H
-#endif
-
-#define NOTABUNI_START 0xFF
-#define NOTABUNI_END 0x00
-
-#define NOTABCHAR_START 0xFFFF
-#define NOTABCHAR_END 0x0000
-
-#define SAME8090UNI_START 0x80
-#define SAME8090UNI_END 0x9F
-static sal_uInt16 const aImpl8090SameToUniTab[SAME8090UNI_END
- - SAME8090UNI_START
- + 1]
-= { 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, /* 0x80 */
- 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
- 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, /* 0x90 */
- 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F };
-
-#define SAME8090CHAR_START 0x0080
-#define SAME8090CHAR_END 0x009F
-static sal_uChar const aImpl8090SameToCharTab[SAME8090CHAR_END
- - SAME8090CHAR_START
- + 1]
- = { 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x0080 */
- 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
- 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x0090 */
- 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F };
-
-#define SAMEA0FFCHAR_START 0x00A0
-#define SAMEA0FFCHAR_END 0x00FF
-static sal_uChar const aImplA0FFSameToCharTab[SAMEA0FFCHAR_END
- - SAMEA0FFCHAR_START
- + 1]
- = { 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x00A0 */
- 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x00B0 */
- 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x00C0 */
- 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x00D0 */
- 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x00E0 */
- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x00F0 */
- 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF };
-
-static sal_uInt16 const aImplDoubleByteIdentifierTab[1] = { 0 };
-
-#include "tcvtarb1.tab"
-#include "tcvteas1.tab"
-#include "tcvtest1.tab"
-#include "tcvtjp1.tab"
-#include "tcvtjp2.tab"
-#include "tcvtjp3.tab"
-#include "tcvtjp4.tab"
-#include "tcvtjp5.tab"
-#include "tcvtjp6.tab"
-#include "tcvtkr1.tab"
-#include "tcvtkr2.tab"
-#include "tcvtkr4.tab"
-#include "tcvtkr5.tab"
-#include "tcvtkr6.tab"
-#include "tcvtlat1.tab"
-#include "tcvtscn1.tab"
-#include "tcvtscn2.tab"
-#include "tcvtscn3.tab"
-#include "tcvtscn4.tab"
-#include "tcvtscn5.tab"
-#include "tcvtscn6.tab"
-#include "tcvtsym1.tab"
-#include "tcvttcn1.tab"
-#include "tcvttcn2.tab"
-#include "tcvttcn6.tab"
-#include "tcvtuni1.tab"
-#include "convertiscii.tab"
-
-#include "convertbig5hkscs.tab"
-#include "converteuctw.tab"
-#include "convertgb18030.tab"
-#include "convertiso2022cn.tab"
-#include "convertiso2022jp.tab"
-#include "convertiso2022kr.tab"
-#include "convertadobe.tab"
-
-ImplTextEncodingData const *
-Impl_getTextEncodingData(rtl_TextEncoding nEncoding)
-{
- static ImplTextEncodingData const * const aData[]
- = { NULL, /* DONTKNOW */
- &aImplMS1252TextEncodingData, /* MS_1252 */
- &aImplAPPLEROMANTextEncodingData, /* APPLE_ROMAN */
- &aImplIBM437TextEncodingData, /* IBM_437 */
- &aImplIBM850TextEncodingData, /* IBM_850 */
- &aImplIBM860TextEncodingData, /* IBM_860 */
- &aImplIBM861TextEncodingData, /* IBM_861 */
- &aImplIBM863TextEncodingData, /* IBM_863 */
- &aImplIBM865TextEncodingData, /* IBM_865 */
- NULL, /* reserved (SYSTEM) */
- &aImplSYMBOLTextEncodingData, /* SYMBOL */
- &aImplUSASCIITextEncodingData, /* ASCII_US */
- &aImplISO88591TextEncodingData, /* ISO_8859_1 */
- &aImplISO88592TextEncodingData, /* ISO_8859_2 */
- &aImplISO88593TextEncodingData, /* ISO_8859_3 */
- &aImplISO88594TextEncodingData, /* ISO_8859_4 */
- &aImplISO88595TextEncodingData, /* ISO_8859_5 */
- &aImplISO88596TextEncodingData, /* ISO_8859_6 */
- &aImplISO88597TextEncodingData, /* ISO_8859_7 */
- &aImplISO88598TextEncodingData, /* ISO_8859_8 */
- &aImplISO88599TextEncodingData, /* ISO_8859_9 */
- &aImplISO885914TextEncodingData, /* ISO_8859_14 */
- &aImplISO885915TextEncodingData, /* ISO_8859_15 */
- &aImplIBM737TextEncodingData, /* IBM_737 */
- &aImplIBM775TextEncodingData, /* IBM_775 */
- &aImplIBM852TextEncodingData, /* IBM_852 */
- &aImplIBM855TextEncodingData, /* IBM_855 */
- &aImplIBM857TextEncodingData, /* IBM_857 */
- &aImplIBM862TextEncodingData, /* IBM_862 */
- &aImplIBM864TextEncodingData, /* IBM_864 */
- &aImplIBM866TextEncodingData, /* IBM_866 */
- &aImplIBM869TextEncodingData, /* IBM_869 */
- &aImplMS874TextEncodingData, /* MS_874 */
- &aImplMS1250TextEncodingData, /* MS_1250 */
- &aImplMS1251TextEncodingData, /* MS_1251 */
- &aImplMS1253TextEncodingData, /* MS_1253 */
- &aImplMS1254TextEncodingData, /* MS_1254 */
- &aImplMS1255TextEncodingData, /* MS_1255 */
- &aImplMS1256TextEncodingData, /* MS_1256 */
- &aImplMS1257TextEncodingData, /* MS_1257 */
- &aImplMS1258TextEncodingData, /* MS_1258 */
- NULL, /* TODO! APPLE_ARABIC */
- &aImplAPPLECENTEUROTextEncodingData, /* APPLE_CENTEURO */
- &aImplAPPLECROATIANTextEncodingData, /* APPLE_CROATIAN */
- &aImplAPPLECYRILLICTextEncodingData, /* APPLE_CYRILLIC */
- NULL, /* TODO! APPLE_DEVANAGARI */
- NULL, /* TODO! APPLE_FARSI */
- &aImplAPPLEGREEKTextEncodingData, /* APPLE_GREEK */
- NULL, /* TODO! APPLE_GUJARATI */
- NULL, /* TODO! APPLE_GURMUKHI */
- NULL, /* TODO! APPLE_HEBREW */
- &aImplAPPLEICELANDTextEncodingData, /* APPLE_ICELAND */
- &aImplAPPLEROMANIANTextEncodingData, /* APPLE_ROMANIAN */
- NULL, /* TODO! APPLE_THAI */
- &aImplAPPLETURKISHTextEncodingData, /* APPLE_TURKISH */
- &aImplAPPLEUKRAINIANTextEncodingData, /* APPLE_UKRAINIAN */
- &aImplAPPLECHINSIMPTextEncodingData, /* APPLE_CHINSIMP */
- &aImplAPPLECHINTRADTextEncodingData, /* APPLE_CHINTRAD */
- &aImplAPPLEJAPANESETextEncodingData, /* APPLE_JAPANESE */
- &aImplAPPLEKOREANTextEncodingData, /* APPLE_KOREAN */
- &aImplMS932TextEncodingData, /* MS_932 */
- &aImplMS936TextEncodingData, /* MS_936 */
- &aImplMS949TextEncodingData, /* MS_949 */
- &aImplMS950TextEncodingData, /* MS_950 */
- &aImplSJISTextEncodingData, /* SHIFT_JIS */
- &aImplGB2312TextEncodingData, /* GB_2312 */
- &aImplGBT12345TextEncodingData, /* GBT_12345 */
- &aImplGBKTextEncodingData, /* GBK */
- &aImplBIG5TextEncodingData, /* BIG5 */
- &aImplEUCJPTextEncodingData, /* EUC_JP */
- &aImplEUCCNTextEncodingData, /* EUC_CN */
- &aImplEucTwTextEncodingData, /* EUC_TW */
- &aImplIso2022JpTextEncodingData, /* ISO_2022_JP */
- &aImplIso2022CnTextEncodingData, /* ISO_2022_CN */
- &aImplKOI8RTextEncodingData, /* KOI8_R */
- &aImplUTF7TextEncodingData, /* UTF7 */
- &aImplUTF8TextEncodingData, /* UTF8 */
- &aImplISO885910TextEncodingData, /* ISO_8859_10 */
- &aImplISO885913TextEncodingData, /* ISO_8859_13 */
- &aImplEUCKRTextEncodingData, /* EUC_KR */
- &aImplIso2022KrTextEncodingData, /* ISO_2022_KR */
- &aImplJISX0201TextEncodingData, /* JIS_X_0201 */
- &aImplJISX0208TextEncodingData, /* JIS_X_0208 */
- &aImplJISX0212TextEncodingData, /* JIS_X_0212 */
- &aImplMS1361TextEncodingData, /* MS_1361 */
- &aImplGb18030TextEncodingData, /* GB_18030 */
- &aImplBig5HkscsTextEncodingData, /* BIG5_HKSCS */
- &aImplTis620TextEncodingData, /* TIS_620 */
- &aImplKoi8UTextEncodingData, /* KOI8_U */
- &aImplIsciiDevanagariTextEncodingData, /* ISCII_DEVANAGARI */
- &aImplJavaUtf8TextEncodingData, /* JAVA_UTF8 */
- &adobeStandardEncodingData, /* ADOBE_STANDARD */
- &adobeSymbolEncodingData, /* ADOBE_SYMBOL */
- &aImplPT154TextEncodingData }; /* PT154 */
- return
- nEncoding < SAL_N_ELEMENTS(aData) ? aData[nEncoding] : NULL;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/tcvtarb1.tab b/sal/textenc/tcvtarb1.tab
deleted file mode 100644
index 6932ba565..000000000
--- a/sal/textenc/tcvtarb1.tab
+++ /dev/null
@@ -1,936 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the tables for all 1 byte charsets, for the */
-/* following scripts: arabic, hebrew and other scripts in the arabic region */
-
-/* ======================================================================= */
-
-/* IBM-862 */
-/* Dos Standard CharSet for Hebrew */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/pc/cp862.txt from 04/24/96 Version 2.00 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM862UNI_START 0x80
-#define IBM862UNI_END 0xFF
-static sal_uInt16 const aImplIBM862ToUniTab[IBM862UNI_END - IBM862UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, /* 0x80 */
- 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, /* 0x80 */
- 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, /* 0x90 */
- 0x05E8, 0x05E9, 0x05EA, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, /* 0x90 */
- 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, /* 0xA0 */
- 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, /* 0xA0 */
- 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
- 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
- 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
- 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
- 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
- 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
- 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, /* 0xE0 */
- 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, /* 0xE0 */
- 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, /* 0xF0 */
- 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM862CHAR_START 0x05D0
-#define IBM862CHAR_END 0x05EA
-static sal_uChar const aImplIBM862ToCharTab[IBM862CHAR_END - IBM862CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x05D0 */
- 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, /* 0x05D0 */
- 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x05E0 */
- 0x98, 0x99, 0x9A /* 0x05E0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM862TOCHARTABEX_COUNT 101
-static ImplUniCharTabData const aImplIBM862ToCharTabEx[IBM862TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xFF, 0 },
- { 0x00A1, 0xAD, 0 },
- { 0x00A2, 0x9B, 0 },
- { 0x00A3, 0x9C, 0 },
- { 0x00A5, 0x9D, 0 },
- { 0x00AA, 0xA6, 0 },
- { 0x00AB, 0xAE, 0 },
- { 0x00AC, 0xAA, 0 },
- { 0x00B0, 0xF8, 0 },
- { 0x00B1, 0xF1, 0 },
- { 0x00B2, 0xFD, 0 },
- { 0x00B5, 0xE6, 0 },
- { 0x00B7, 0xFA, 0 },
- { 0x00BA, 0xA7, 0 },
- { 0x00BB, 0xAF, 0 },
- { 0x00BC, 0xAC, 0 },
- { 0x00BD, 0xAB, 0 },
- { 0x00BF, 0xA8, 0 },
- { 0x00D1, 0xA5, 0 },
- { 0x00DF, 0xE1, 0 },
- { 0x00E1, 0xA0, 0 },
- { 0x00ED, 0xA1, 0 },
- { 0x00F1, 0xA4, 0 },
- { 0x00F3, 0xA2, 0 },
- { 0x00F7, 0xF6, 0 },
- { 0x00FA, 0xA3, 0 },
- { 0x0192, 0x9F, 0 },
- { 0x0393, 0xE2, 0 },
- { 0x0398, 0xE9, 0 },
- { 0x03A3, 0xE4, 0 },
- { 0x03A6, 0xE8, 0 },
- { 0x03A9, 0xEA, 0 },
- { 0x03B1, 0xE0, 0 },
- { 0x03B4, 0xEB, 0 },
- { 0x03B5, 0xEE, 0 },
- { 0x03C0, 0xE3, 0 },
- { 0x03C3, 0xE5, 0 },
- { 0x03C4, 0xE7, 0 },
- { 0x03C6, 0xED, 0 },
- { 0x207F, 0xFC, 0 },
- { 0x20A7, 0x9E, 0 },
- { 0x2219, 0xF9, 0 },
- { 0x221A, 0xFB, 0 },
- { 0x221E, 0xEC, 0 },
- { 0x2229, 0xEF, 0 },
- { 0x2248, 0xF7, 0 },
- { 0x2261, 0xF0, 0 },
- { 0x2264, 0xF3, 0 },
- { 0x2265, 0xF2, 0 },
- { 0x2310, 0xA9, 0 },
- { 0x2320, 0xF4, 0 },
- { 0x2321, 0xF5, 0 },
- { 0x2500, 0xC4, 0 },
- { 0x2502, 0xB3, 0 },
- { 0x250C, 0xDA, 0 },
- { 0x2510, 0xBF, 0 },
- { 0x2514, 0xC0, 0 },
- { 0x2518, 0xD9, 0 },
- { 0x251C, 0xC3, 0 },
- { 0x2524, 0xB4, 0 },
- { 0x252C, 0xC2, 0 },
- { 0x2534, 0xC1, 0 },
- { 0x253C, 0xC5, 0 },
- { 0x2550, 0xCD, 0 },
- { 0x2551, 0xBA, 0 },
- { 0x2552, 0xD5, 0 },
- { 0x2553, 0xD6, 0 },
- { 0x2554, 0xC9, 0 },
- { 0x2555, 0xB8, 0 },
- { 0x2556, 0xB7, 0 },
- { 0x2557, 0xBB, 0 },
- { 0x2558, 0xD4, 0 },
- { 0x2559, 0xD3, 0 },
- { 0x255A, 0xC8, 0 },
- { 0x255B, 0xBE, 0 },
- { 0x255C, 0xBD, 0 },
- { 0x255D, 0xBC, 0 },
- { 0x255E, 0xC6, 0 },
- { 0x255F, 0xC7, 0 },
- { 0x2560, 0xCC, 0 },
- { 0x2561, 0xB5, 0 },
- { 0x2562, 0xB6, 0 },
- { 0x2563, 0xB9, 0 },
- { 0x2564, 0xD1, 0 },
- { 0x2565, 0xD2, 0 },
- { 0x2566, 0xCB, 0 },
- { 0x2567, 0xCF, 0 },
- { 0x2568, 0xD0, 0 },
- { 0x2569, 0xCA, 0 },
- { 0x256A, 0xD8, 0 },
- { 0x256B, 0xD7, 0 },
- { 0x256C, 0xCE, 0 },
- { 0x2580, 0xDF, 0 },
- { 0x2584, 0xDC, 0 },
- { 0x2588, 0xDB, 0 },
- { 0x258C, 0xDD, 0 },
- { 0x2590, 0xDE, 0 },
- { 0x2591, 0xB0, 0 },
- { 0x2592, 0xB1, 0 },
- { 0x2593, 0xB2, 0 },
- { 0x25A0, 0xFE, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplIBM862ByteCvtData =
-{
- aImplIBM862ToUniTab,
- NULL,
- IBM862UNI_START, IBM862UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplIBM862ToCharTab,
- NULL,
- aImplIBM862ToCharTabEx,
- IBM862CHAR_START, IBM862CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- IBM862TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplIBM862TextEncodingData
- = { { &aImplIBM862ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 177,
- "iso8859-8",
- "IBM862",
- RTL_TEXTENCODING_INFO_ASCII
- | RTL_TEXTENCODING_INFO_MIME
- | RTL_TEXTENCODING_INFO_R2L };
- /* DOS/OS2, SCRIPT_HEBREW, pc code page 862, mac encoding 5 */
-
-/* ======================================================================= */
-
-/* IBM-864 */
-/* Dos Standard CharSet for Arabic */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/pc/cp864.txt from 04/24/96 Version 2.00 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM864UNI_START 0x80
-#define IBM864UNI_END 0xFE
-static sal_uInt16 const aImplIBM864ToUniTab[IBM864UNI_END - IBM864UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00B0, 0x00B7, 0x2219, 0x221A, 0x2592, 0x2500, 0x2502, 0x253C, /* 0x80 */
- 0x2524, 0x252C, 0x251C, 0x2534, 0x2510, 0x250C, 0x2514, 0x2518, /* 0x80 */
- 0x03B2, 0x221E, 0x03C6, 0x00B1, 0x00BD, 0x00BC, 0x2248, 0x00AB, /* 0x90 */
- 0x00BB, 0xFEF7, 0xFEF8, 0, 0, 0xFEFB, 0xFEFC, 0, /* 0x90 */
- 0x00A0, 0x00AD, 0xFE82, 0x00A3, 0x00A4, 0xFE84, 0, 0, /* 0xA0 */
- 0xFE8E, 0xFE8F, 0xFE95, 0xFE99, 0x060C, 0xFE9D, 0xFEA1, 0xFEA5, /* 0xA0 */
- 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, /* 0xB0 */
- 0x0668, 0x0669, 0xFED1, 0x061B, 0xFEB1, 0xFEB5, 0xFEB9, 0x061F, /* 0xB0 */
- 0x00A2, 0xFE80, 0xFE81, 0xFE83, 0xFE85, 0xFECA, 0xFE8B, 0xFE8D, /* 0xC0 */
- 0xFE91, 0xFE93, 0xFE97, 0xFE9B, 0xFE9F, 0xFEA3, 0xFEA7, 0xFEA9, /* 0xC0 */
- 0xFEAB, 0xFEAD, 0xFEAF, 0xFEB3, 0xFEB7, 0xFEBB, 0xFEBF, 0xFEC1, /* 0xD0 */
- 0xFEC5, 0xFECB, 0xFECF, 0x00A6, 0x00AC, 0x00F7, 0x00D7, 0xFEC9, /* 0xD0 */
- 0x0640, 0xFED3, 0xFED7, 0xFEDB, 0xFEDF, 0xFEE3, 0xFEE7, 0xFEEB, /* 0xE0 */
- 0xFEED, 0xFEEF, 0xFEF3, 0xFEBD, 0xFECC, 0xFECE, 0xFECD, 0xFEE1, /* 0xE0 */
- 0xFE7D, 0x0651, 0xFEE5, 0xFEE9, 0xFEEC, 0xFEF0, 0xFEF2, 0xFED0, /* 0xF0 */
- 0xFED5, 0xFEF5, 0xFEF6, 0xFEDD, 0xFED9, 0xFEF1, 0x25A0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM864CHAR_START 0xFE7D
-#define IBM864CHAR_END 0xFEFC
-static sal_uChar const aImplIBM864ToCharTab[IBM864CHAR_END - IBM864CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF0, 0, 0, /* 0xFE70 */
- 0xC1, 0xC2, 0xA2, 0xC3, 0xA5, 0xC4, 0, 0, /* 0xFE80 */
- 0, 0, 0, 0xC6, 0, 0xC7, 0xA8, 0xA9, /* 0xFE80 */
- 0, 0xC8, 0, 0xC9, 0, 0xAA, 0, 0xCA, /* 0xFE90 */
- 0, 0xAB, 0, 0xCB, 0, 0xAD, 0, 0xCC, /* 0xFE90 */
- 0, 0xAE, 0, 0xCD, 0, 0xAF, 0, 0xCE, /* 0xFEA0 */
- 0, 0xCF, 0, 0xD0, 0, 0xD1, 0, 0xD2, /* 0xFEA0 */
- 0, 0xBC, 0, 0xD3, 0, 0xBD, 0, 0xD4, /* 0xFEB0 */
- 0, 0xBE, 0, 0xD5, 0, 0xEB, 0, 0xD6, /* 0xFEB0 */
- 0, 0xD7, 0, 0, 0, 0xD8, 0, 0, /* 0xFEC0 */
- 0, 0xDF, 0xC5, 0xD9, 0xEC, 0xEE, 0xED, 0xDA, /* 0xFEC0 */
- 0xF7, 0xBA, 0, 0xE1, 0, 0xF8, 0, 0xE2, /* 0xFED0 */
- 0, 0xFC, 0, 0xE3, 0, 0xFB, 0, 0xE4, /* 0xFED0 */
- 0, 0xEF, 0, 0xE5, 0, 0xF2, 0, 0xE6, /* 0xFEE0 */
- 0, 0xF3, 0, 0xE7, 0xF4, 0xE8, 0, 0xE9, /* 0xFEE0 */
- 0xF5, 0xFD, 0xF6, 0xEA, 0, 0xF9, 0xFA, 0x99, /* 0xFEF0 */
- 0x9A, 0, 0, 0x9D, 0x9E /* 0xFEF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM864TOCHARTABEX_COUNT 51
-static ImplUniCharTabData const aImplIBM864ToCharTabEx[IBM864TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xA0, 0 },
- { 0x00A2, 0xC0, 0 },
- { 0x00A3, 0xA3, 0 },
- { 0x00A4, 0xA4, 0 },
- { 0x00A6, 0xDB, 0 },
- { 0x00AB, 0x97, 0 },
- { 0x00AC, 0xDC, 0 },
- { 0x00AD, 0xA1, 0 },
- { 0x00B0, 0x80, 0 },
- { 0x00B1, 0x93, 0 },
- { 0x00B7, 0x81, 0 },
- { 0x00BB, 0x98, 0 },
- { 0x00BC, 0x95, 0 },
- { 0x00BD, 0x94, 0 },
- { 0x00D7, 0xDE, 0 },
- { 0x00F7, 0xDD, 0 },
- { 0x03B2, 0x90, 0 },
- { 0x03C6, 0x92, 0 },
- { 0x060C, 0xAC, 0 },
- { 0x061B, 0xBB, 0 },
- { 0x061F, 0xBF, 0 },
- { 0x0640, 0xE0, 0 },
- { 0x0651, 0xF1, 0 },
- { 0x0660, 0xB0, 0 },
- { 0x0661, 0xB1, 0 },
- { 0x0662, 0xB2, 0 },
- { 0x0663, 0xB3, 0 },
- { 0x0664, 0xB4, 0 },
- { 0x0665, 0xB5, 0 },
- { 0x0666, 0xB6, 0 },
- { 0x0667, 0xB7, 0 },
- { 0x0668, 0xB8, 0 },
- { 0x0669, 0xB9, 0 },
- { 0x066A, 0x25, 0 },
- { 0x2219, 0x82, 0 },
- { 0x221A, 0x83, 0 },
- { 0x221E, 0x91, 0 },
- { 0x2248, 0x96, 0 },
- { 0x2500, 0x85, 0 },
- { 0x2502, 0x86, 0 },
- { 0x250C, 0x8D, 0 },
- { 0x2510, 0x8C, 0 },
- { 0x2514, 0x8E, 0 },
- { 0x2518, 0x8F, 0 },
- { 0x251C, 0x8A, 0 },
- { 0x2524, 0x88, 0 },
- { 0x252C, 0x89, 0 },
- { 0x2534, 0x8B, 0 },
- { 0x253C, 0x87, 0 },
- { 0x2592, 0x84, 0 },
- { 0x25A0, 0xFE, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplIBM864ByteCvtData =
-{
- aImplIBM864ToUniTab,
- NULL,
- IBM864UNI_START, IBM864UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplIBM864ToCharTab,
- NULL,
- aImplIBM864ToCharTabEx,
- IBM864CHAR_START, IBM864CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- IBM864TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplIBM864TextEncodingData
- = { { &aImplIBM864ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 178,
- "iso8859-6",
- "IBM864",
- RTL_TEXTENCODING_INFO_ASCII
- | RTL_TEXTENCODING_INFO_MIME
- | RTL_TEXTENCODING_INFO_R2L };
- /* DOS/OS2, SCRIPT_ARABIC, pc code page 864, mac encoding 4 */
-
-/* ======================================================================= */
-
-/* MS-1255 */
-/* Windows Standard CharSet for Hebrew */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/windows/cp1255.txt from 04/15/98 Version 2.01 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1255UNI_START 0x80
-#define MS1255UNI_END 0xFF
-static sal_uInt16 const aImplMS1255ToUniTab[MS1255UNI_END - MS1255UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x20AC, 0, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
- 0x02C6, 0x2030, 0, 0x2039, 0, 0, 0, 0, /* 0x80 */
- 0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
- 0x02DC, 0x2122, 0, 0x203A, 0, 0, 0, 0, /* 0x90 */
- 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AA, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */
- 0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0xA0 */
- 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
- 0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, /* 0xB0 */
- 0x05B0, 0x05B1, 0x05B2, 0x05B3, 0x05B4, 0x05B5, 0x05B6, 0x05B7, /* 0xC0 */
- 0x05B8, 0x05B9, 0, 0x05BB, 0x05BC, 0x05BD, 0x05BE, 0x05BF, /* 0xC0 */
- 0x05C0, 0x05C1, 0x05C2, 0x05C3, 0x05F0, 0x05F1, 0x05F2, 0x05F3, /* 0xD0 */
- 0x05F4, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, /* 0xE0 */
- 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, /* 0xE0 */
- 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, /* 0xF0 */
- 0x05E8, 0x05E9, 0x05EA, 0, 0, 0x200E, 0x200F, 0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1255CHAR_START 0x05B0
-#define MS1255CHAR_END 0x05F4
-static sal_uChar const aImplMS1255ToCharTab[MS1255CHAR_END - MS1255CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x05B0 */
- 0xC8, 0xC9, 0, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x05B0 */
- 0xD0, 0xD1, 0xD2, 0xD3, 0, 0, 0, 0, /* 0x05C0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x05C0 */
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x05D0 */
- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x05D0 */
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x05E0 */
- 0xF8, 0xF9, 0xFA, 0, 0, 0, 0, 0, /* 0x05E0 */
- 0xD4, 0xD5, 0xD6, 0xD7, 0xD8 /* 0x05F0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1255TOCHARTABEX_COUNT 54
-static ImplUniCharTabData const aImplMS1255ToCharTabEx[MS1255TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xA0, 0 },
- { 0x00A1, 0xA1, 0 },
- { 0x00A2, 0xA2, 0 },
- { 0x00A3, 0xA3, 0 },
- { 0x00A5, 0xA5, 0 },
- { 0x00A6, 0xA6, 0 },
- { 0x00A7, 0xA7, 0 },
- { 0x00A8, 0xA8, 0 },
- { 0x00A9, 0xA9, 0 },
- { 0x00AB, 0xAB, 0 },
- { 0x00AC, 0xAC, 0 },
- { 0x00AD, 0xAD, 0 },
- { 0x00AE, 0xAE, 0 },
- { 0x00AF, 0xAF, 0 },
- { 0x00B0, 0xB0, 0 },
- { 0x00B1, 0xB1, 0 },
- { 0x00B2, 0xB2, 0 },
- { 0x00B3, 0xB3, 0 },
- { 0x00B4, 0xB4, 0 },
- { 0x00B5, 0xB5, 0 },
- { 0x00B6, 0xB6, 0 },
- { 0x00B7, 0xB7, 0 },
- { 0x00B8, 0xB8, 0 },
- { 0x00B9, 0xB9, 0 },
- { 0x00BB, 0xBB, 0 },
- { 0x00BC, 0xBC, 0 },
- { 0x00BD, 0xBD, 0 },
- { 0x00BE, 0xBE, 0 },
- { 0x00BF, 0xBF, 0 },
- { 0x00D7, 0xAA, 0 },
- { 0x00F7, 0xBA, 0 },
- { 0x0192, 0x83, 0 },
- { 0x02C6, 0x88, 0 },
- { 0x02DC, 0x98, 0 },
- { 0x200E, 0xFD, 0 },
- { 0x200F, 0xFE, 0 },
- { 0x2013, 0x96, 0 },
- { 0x2014, 0x97, 0 },
- { 0x2018, 0x91, 0 },
- { 0x2019, 0x92, 0 },
- { 0x201A, 0x82, 0 },
- { 0x201C, 0x93, 0 },
- { 0x201D, 0x94, 0 },
- { 0x201E, 0x84, 0 },
- { 0x2020, 0x86, 0 },
- { 0x2021, 0x87, 0 },
- { 0x2022, 0x95, 0 },
- { 0x2026, 0x85, 0 },
- { 0x2030, 0x89, 0 },
- { 0x2039, 0x8B, 0 },
- { 0x203A, 0x9B, 0 },
- { 0x20AA, 0xA4, 0 },
- { 0x20AC, 0x80, 0 },
- { 0x2122, 0x99, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplMS1255ByteCvtData =
-{
- aImplMS1255ToUniTab,
- NULL,
- MS1255UNI_START, MS1255UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplMS1255ToCharTab,
- NULL,
- aImplMS1255ToCharTabEx,
- MS1255CHAR_START, MS1255CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- MS1255TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplMS1255TextEncodingData
- = { { &aImplMS1255ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 177,
- "iso8859-8",
- "windows-1255",
- RTL_TEXTENCODING_INFO_ASCII
- | RTL_TEXTENCODING_INFO_MIME
- | RTL_TEXTENCODING_INFO_R2L };
- /* WIN, SCRIPT_HEBREW, pc code page 862, mac encoding 5 */
-
-/* ======================================================================= */
-
-/* MS-1256 */
-/* Windows Standard CharSet for Arabic */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/windows/cp1256.txt from 01/5/99 Version 2.01 */
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1256UNI_START 0x80
-#define MS1256UNI_END 0xFF
-static sal_uInt16 const aImplMS1256ToUniTab[MS1256UNI_END - MS1256UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x20AC, 0x067E, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
- 0x02C6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688, /* 0x80 */
- 0x06AF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
- 0x06A9, 0x2122, 0x0691, 0x203A, 0x0153, 0x200C, 0x200D, 0x06BA, /* 0x90 */
- 0x00A0, 0x060C, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */
- 0x00A8, 0x00A9, 0x06BE, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0xA0 */
- 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
- 0x00B8, 0x00B9, 0x061B, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x061F, /* 0xB0 */
- 0x06C1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, /* 0xC0 */
- 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, /* 0xC0 */
- 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00D7, /* 0xD0 */
- 0x0637, 0x0638, 0x0639, 0x063A, 0x0640, 0x0641, 0x0642, 0x0643, /* 0xD0 */
- 0x00E0, 0x0644, 0x00E2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00E7, /* 0xE0 */
- 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0649, 0x064A, 0x00EE, 0x00EF, /* 0xE0 */
- 0x064B, 0x064C, 0x064D, 0x064E, 0x00F4, 0x064F, 0x0650, 0x00F7, /* 0xF0 */
- 0x0651, 0x00F9, 0x0652, 0x00FB, 0x00FC, 0x200E, 0x200F, 0x06D2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1256CHAR_START 0x061B
-#define MS1256CHAR_END 0x0652
-static sal_uChar const aImplMS1256ToCharTab[MS1256CHAR_END - MS1256CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBA, 0, 0, 0, 0xBF, /* 0x0610 */
- 0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x0620 */
- 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x0620 */
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD8, /* 0x0630 */
- 0xD9, 0xDA, 0xDB, 0, 0, 0, 0, 0, /* 0x0630 */
- 0xDC, 0xDD, 0xDE, 0xDF, 0xE1, 0xE3, 0xE4, 0xE5, /* 0x0640 */
- 0xE6, 0xEC, 0xED, 0xF0, 0xF1, 0xF2, 0xF3, 0xF5, /* 0x0640 */
- 0xF6, 0xF8, 0xFA /* 0x0650 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1256TOCHARTABEX_COUNT 81
-static ImplUniCharTabData const aImplMS1256ToCharTabEx[MS1256TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xA0, 0 },
- { 0x00A2, 0xA2, 0 },
- { 0x00A3, 0xA3, 0 },
- { 0x00A4, 0xA4, 0 },
- { 0x00A5, 0xA5, 0 },
- { 0x00A6, 0xA6, 0 },
- { 0x00A7, 0xA7, 0 },
- { 0x00A8, 0xA8, 0 },
- { 0x00A9, 0xA9, 0 },
- { 0x00AB, 0xAB, 0 },
- { 0x00AC, 0xAC, 0 },
- { 0x00AD, 0xAD, 0 },
- { 0x00AE, 0xAE, 0 },
- { 0x00AF, 0xAF, 0 },
- { 0x00B0, 0xB0, 0 },
- { 0x00B1, 0xB1, 0 },
- { 0x00B2, 0xB2, 0 },
- { 0x00B3, 0xB3, 0 },
- { 0x00B4, 0xB4, 0 },
- { 0x00B5, 0xB5, 0 },
- { 0x00B6, 0xB6, 0 },
- { 0x00B7, 0xB7, 0 },
- { 0x00B8, 0xB8, 0 },
- { 0x00B9, 0xB9, 0 },
- { 0x00BB, 0xBB, 0 },
- { 0x00BC, 0xBC, 0 },
- { 0x00BD, 0xBD, 0 },
- { 0x00BE, 0xBE, 0 },
- { 0x00D7, 0xD7, 0 },
- { 0x00E0, 0xE0, 0 },
- { 0x00E2, 0xE2, 0 },
- { 0x00E7, 0xE7, 0 },
- { 0x00E8, 0xE8, 0 },
- { 0x00E9, 0xE9, 0 },
- { 0x00EA, 0xEA, 0 },
- { 0x00EB, 0xEB, 0 },
- { 0x00EE, 0xEE, 0 },
- { 0x00EF, 0xEF, 0 },
- { 0x00F4, 0xF4, 0 },
- { 0x00F7, 0xF7, 0 },
- { 0x00F9, 0xF9, 0 },
- { 0x00FB, 0xFB, 0 },
- { 0x00FC, 0xFC, 0 },
- { 0x0152, 0x8C, 0 },
- { 0x0153, 0x9C, 0 },
- { 0x0192, 0x83, 0 },
- { 0x02C6, 0x88, 0 },
- { 0x060C, 0xA1, 0 },
- { 0x0679, 0x8A, 0 },
- { 0x067E, 0x81, 0 },
- { 0x0686, 0x8D, 0 },
- { 0x0688, 0x8F, 0 },
- { 0x0691, 0x9A, 0 },
- { 0x0698, 0x8E, 0 },
- { 0x06A9, 0x98, 0 },
- { 0x06AF, 0x90, 0 },
- { 0x06BA, 0x9F, 0 },
- { 0x06BE, 0xAA, 0 },
- { 0x06C1, 0xC0, 0 },
- { 0x06D2, 0xFF, 0 },
- { 0x200C, 0x9D, 0 },
- { 0x200D, 0x9E, 0 },
- { 0x200E, 0xFD, 0 },
- { 0x200F, 0xFE, 0 },
- { 0x2013, 0x96, 0 },
- { 0x2014, 0x97, 0 },
- { 0x2018, 0x91, 0 },
- { 0x2019, 0x92, 0 },
- { 0x201A, 0x82, 0 },
- { 0x201C, 0x93, 0 },
- { 0x201D, 0x94, 0 },
- { 0x201E, 0x84, 0 },
- { 0x2020, 0x86, 0 },
- { 0x2021, 0x87, 0 },
- { 0x2022, 0x95, 0 },
- { 0x2026, 0x85, 0 },
- { 0x2030, 0x89, 0 },
- { 0x2039, 0x8B, 0 },
- { 0x203A, 0x9B, 0 },
- { 0x20AC, 0x80, 0 },
- { 0x2122, 0x99, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplMS1256ByteCvtData =
-{
- aImplMS1256ToUniTab,
- NULL,
- MS1256UNI_START, MS1256UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplMS1256ToCharTab,
- NULL,
- aImplMS1256ToCharTabEx,
- MS1256CHAR_START, MS1256CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- MS1256TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplMS1256TextEncodingData
- = { { &aImplMS1256ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 178,
- "iso8859-6",
- "windows-1256",
- RTL_TEXTENCODING_INFO_ASCII
- | RTL_TEXTENCODING_INFO_MIME
- | RTL_TEXTENCODING_INFO_R2L };
- /* WIN, SCRIPT_ARABIC, pc code page 864, mac encoding 4 */
-
-/* ======================================================================= */
-
-/* ISO-8859-6 */
-/* Unix Standard for Arabic */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */
-/* Convert-Tables: mappings/iso8859/8859-6.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
-/* Last-Changes from us: */
-/* !!! 0x30-0x39 sind Arabische Zahlen und muessten eigentlich nach 0x0660-0x0669 gemappt werden !!! */
-
-#define ISO88596UNI_START 0xA0
-#define ISO88596UNI_END 0xF2
-static sal_uInt16 const aImplISO88596ToUniTab[ISO88596UNI_END - ISO88596UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00A0, 0, 0, 0, 0x00A4, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x060C, 0x00AD, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x061B, 0, 0, 0, 0x061F, /* 0xB0 */
- 0, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, /* 0xC0 */
- 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, /* 0xC0 */
- 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, /* 0xD0 */
- 0x0638, 0x0639, 0x063A, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, /* 0xE0 */
- 0x0648, 0x0649, 0x064A, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F, /* 0xE0 */
- 0x0650, 0x0651, 0x0652 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define ISO88596CHAR_START 0x061B
-#define ISO88596CHAR_END 0x0669
-static sal_uChar const aImplISO88596ToCharTab[ISO88596CHAR_END - ISO88596CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBB, 0, 0, 0, 0xBF, /* 0x0610 */
- 0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x0620 */
- 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x0620 */
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x0630 */
- 0xD8, 0xD9, 0xDA, 0, 0, 0, 0, 0, /* 0x0630 */
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0640 */
- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0640 */
- 0xF0, 0xF1, 0xF2, 0, 0, 0, 0, 0, /* 0x0650 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0650 */
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 0x0660 */
- 0x38, 0x39 /* 0x0660 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define ISO88596TOCHARTABEX_COUNT 4
-static ImplUniCharTabData const aImplISO88596ToCharTabEx[ISO88596TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xA0, 0 },
- { 0x00A4, 0xA4, 0 },
- { 0x00AD, 0xAD, 0 },
- { 0x060C, 0xAC, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplISO88596ByteCvtData =
-{
- aImplISO88596ToUniTab,
- aImpl8090SameToUniTab,
- ISO88596UNI_START, ISO88596UNI_END,
- SAME8090UNI_START, SAME8090UNI_END,
- aImplISO88596ToCharTab,
- aImpl8090SameToCharTab,
- aImplISO88596ToCharTabEx,
- ISO88596CHAR_START, ISO88596CHAR_END,
- SAME8090CHAR_START, SAME8090CHAR_END,
- ISO88596TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplISO88596TextEncodingData
- = { { &aImplISO88596ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 178,
- "iso8859-6",
- "ISO-8859-6",
- RTL_TEXTENCODING_INFO_ASCII
- | RTL_TEXTENCODING_INFO_R2L
- | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_ARABIC, pc code page 864, mac encoding 4 */
-
-
-/* ======================================================================= */
-
-/* ISO-8859-8 */
-/* Unix Standard for Hebrew */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */
-/* Convert-Tables: mappings/iso8859/8859-8.txt from 2000-Jan-03 Version 1.1 (based on Unicode 3.0) */
-
-#define ISO88598UNI_START 0xA0
-#define ISO88598UNI_END 0xFE
-static sal_uInt16 const aImplISO88598ToUniTab[ISO88598UNI_END - ISO88598UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00A0, 0, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */
- 0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0xA0 */
- 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
- 0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0x2017, /* 0xD0 */
- 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, /* 0xE0 */
- 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, /* 0xE0 */
- 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, /* 0xF0 */
- 0x05E8, 0x05E9, 0x05EA, 0, 0, 0x200E, 0x200F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define ISO88598CHAR_START 0x05D0
-#define ISO88598CHAR_END 0x05EA
-static sal_uChar const aImplISO88598ToCharTab[ISO88598CHAR_END - ISO88598CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x05D0 */
- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x05D0 */
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x05E0 */
- 0xF8, 0xF9, 0xFA /* 0x05E0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define ISO88598TOCHARTABEX_COUNT 33
-static ImplUniCharTabData const aImplISO88598ToCharTabEx[ISO88598TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xA0, 0 },
- { 0x00A2, 0xA2, 0 },
- { 0x00A3, 0xA3, 0 },
- { 0x00A4, 0xA4, 0 },
- { 0x00A5, 0xA5, 0 },
- { 0x00A6, 0xA6, 0 },
- { 0x00A7, 0xA7, 0 },
- { 0x00A8, 0xA8, 0 },
- { 0x00A9, 0xA9, 0 },
- { 0x00AB, 0xAB, 0 },
- { 0x00AC, 0xAC, 0 },
- { 0x00AD, 0xAD, 0 },
- { 0x00AE, 0xAE, 0 },
- { 0x00AF, 0xAF, 0 },
- { 0x00B0, 0xB0, 0 },
- { 0x00B1, 0xB1, 0 },
- { 0x00B2, 0xB2, 0 },
- { 0x00B3, 0xB3, 0 },
- { 0x00B4, 0xB4, 0 },
- { 0x00B5, 0xB5, 0 },
- { 0x00B6, 0xB6, 0 },
- { 0x00B7, 0xB7, 0 },
- { 0x00B8, 0xB8, 0 },
- { 0x00B9, 0xB9, 0 },
- { 0x00BB, 0xBB, 0 },
- { 0x00BC, 0xBC, 0 },
- { 0x00BD, 0xBD, 0 },
- { 0x00BE, 0xBE, 0 },
- { 0x00D7, 0xAA, 0 },
- { 0x00F7, 0xBA, 0 },
- { 0x200E, 0xFD, 0 },
- { 0x200F, 0xFE, 0 },
- { 0x2017, 0xDF, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplISO88598ByteCvtData =
-{
- aImplISO88598ToUniTab,
- aImpl8090SameToUniTab,
- ISO88598UNI_START, ISO88598UNI_END,
- SAME8090UNI_START, SAME8090UNI_END,
- aImplISO88598ToCharTab,
- aImpl8090SameToCharTab,
- aImplISO88598ToCharTabEx,
- ISO88598CHAR_START, ISO88598CHAR_END,
- SAME8090CHAR_START, SAME8090CHAR_END,
- ISO88598TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplISO88598TextEncodingData
- = { { &aImplISO88598ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 177,
- "iso8859-8",
- "ISO-8859-8",
- RTL_TEXTENCODING_INFO_ASCII
- | RTL_TEXTENCODING_INFO_R2L
- | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_HEBREW, pc code page 862, mac encoding 5 */
diff --git a/sal/textenc/tcvtbyte.c b/sal/textenc/tcvtbyte.c
deleted file mode 100644
index b02e0d1f4..000000000
--- a/sal/textenc/tcvtbyte.c
+++ /dev/null
@@ -1,858 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "tenchelp.h"
-#include "rtl/textcvt.h"
-
-/* ======================================================================= */
-
-#define IMPL_MAX_REPLACECHAR 5
-
-sal_uInt16 ImplGetReplaceChar(sal_Unicode c);
-
-sal_uInt16 const * ImplGetReplaceString(sal_Unicode c);
-
-/* ----------------------------------------------------------------------- */
-
-typedef struct
-{
- sal_uInt16 mnUniChar;
- sal_uInt16 mnReplaceChar;
-} ImplReplaceCharData;
-
-static ImplReplaceCharData const aImplRepCharTab[] =
-{
- { 0x00A0, 0x0020 }, /* NO-BREAK-SPACE */
- { 0x00A1, 0x0021 }, /* INVERTED EXCLAMATION MARK */
- { 0x00B7, 0x0045 }, /* MIDDLE DOT */
- { 0x00BF, 0x003F }, /* INVERTED QUESTION MARK */
- { 0x00D7, 0x002A }, /* MULTIPLIKATION SIGN */
- { 0x00F7, 0x002F }, /* DIVISION SIGN */
- { 0x2000, 0x0020 }, /* EN QUAD */
- { 0x2001, 0x0020 }, /* EM QUAD */
- { 0x2002, 0x0020 }, /* EN SPACE */
- { 0x2003, 0x0020 }, /* EM SPACE */
- { 0x2004, 0x0020 }, /* THREE-PER-EM SPACE */
- { 0x2005, 0x0020 }, /* FOUR-PER-EM SPACE */
- { 0x2006, 0x0020 }, /* SIX-PER-EM SPACE */
- { 0x2007, 0x0020 }, /* FIGURE SPACE */
- { 0x2008, 0x0020 }, /* PUNCTATION SPACE */
- { 0x2009, 0x0020 }, /* THIN SPACE */
- { 0x200A, 0x0020 }, /* HAIR SPACE */
- { 0x2010, 0x002D }, /* HYPHEN */
- { 0x2011, 0x002D }, /* NON-BREAKING HYPHEN */
- { 0x2012, 0x002D }, /* FIGURE DASH */
- { 0x2013, 0x002D }, /* EN DASH */
- { 0x2014, 0x002D }, /* EM DASH */
- { 0x2015, 0x002D }, /* HORIZONTAL BAR */
- { 0x2018, 0x0027 }, /* LEFT SINGLE QUOTATION MARK */
- { 0x2019, 0x0027 }, /* RIGHT SINGLE QUOTATION MARK */
- { 0x201A, 0x002C }, /* SINGLE LOW-9 QUOTATION MARK */
- { 0x201B, 0x0027 }, /* SINGLE HIGH-RESERVED-9 QUOTATION MARK */
- { 0x201C, 0x0022 }, /* LEFT DOUBLE QUOTATION MARK */
- { 0x201D, 0x0022 }, /* RIGHT DOUBLE QUOTATION MARK */
- { 0x201E, 0x0022 }, /* DOUBLE LOW-9 QUOTATION MARK */
- { 0x201F, 0x0022 }, /* DOUBLE HIGH-RESERVED-9 QUOTATION MARK */
- { 0x2022, 0x002D }, /* BULLET */
- { 0x2023, 0x002D }, /* TRIANGULAR BULLET */
- { 0x2024, 0x002D }, /* ONE DOT LEADER */
- { 0x2027, 0x002D }, /* HYPHENATION POINT */
- { 0x2028, 0x000A }, /* LINE SEPARATOR */
- { 0x2029, 0x000D }, /* PARAGRAPH SEPARATOR */
- { 0x2032, 0x0027 }, /* PRIME */
- { 0x2033, 0x0022 }, /* DOUBLE PRIME */
- { 0x2035, 0x0027 }, /* RESERVED PRIME */
- { 0x2036, 0x0022 }, /* RESERVED DOUBLE PRIME */
- { 0x2039, 0x003C }, /* SINGLE LEFT-POINTING ANGLE QUOTATION MARK */
- { 0x203A, 0x003E }, /* SINGLE RIGHT-POINTING ANGLE QUOTATION MARK */
- { 0x2043, 0x002D }, /* HYPHEN BULLET */
- { 0x2044, 0x002F }, /* FRACTION SLASH */
- { 0x2160, 0x0049 }, /* ROMAN NUMERAL ONE */
- { 0x2164, 0x0056 }, /* ROMAN NUMERAL FIVE */
- { 0x2169, 0x0058 }, /* ROMAN NUMERAL TEN */
- { 0x216C, 0x004C }, /* ROMAN NUMERAL FIFTY */
- { 0x216D, 0x0043 }, /* ROMAN NUMERAL ONE HUNDRED */
- { 0x216E, 0x0044 }, /* ROMAN NUMERAL FIVE HUNDRED */
- { 0x216F, 0x004D }, /* ROMAN NUMERAL ONE THOUSAND */
- { 0x2170, 0x0069 }, /* SMALL ROMAN NUMERAL ONE */
- { 0x2174, 0x0076 }, /* SMALL ROMAN NUMERAL FIVE */
- { 0x2179, 0x0078 }, /* SMALL ROMAN NUMERAL TEN */
- { 0x217C, 0x006C }, /* SMALL ROMAN NUMERAL FIFTY */
- { 0x217D, 0x0063 }, /* SMALL ROMAN NUMERAL ONE HUNDRED */
- { 0x217E, 0x0064 }, /* SMALL ROMAN NUMERAL FIVE HUNDRED */
- { 0x217F, 0x006D }, /* SMALL ROMAN NUMERAL ONE THOUSAND */
- { 0x2215, 0x002F }, /* DIVISION SLASH */
- { 0x2217, 0x002A }, /* ASTERIX OPERATOR */
- { 0xFF00, 0x0020 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF01, 0x0021 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF02, 0x0022 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF03, 0x0023 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF04, 0x0024 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF05, 0x0025 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF06, 0x0026 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF07, 0x0027 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF08, 0x0028 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF09, 0x0029 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF0A, 0x002A }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF0B, 0x002B }, /* FULLWIDTH ASCII FORMS */
- { 0xFF0C, 0x002C }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF0D, 0x002D }, /* FULLWIDTH ASCII FORMS */
- { 0xFF0E, 0x002E }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF0F, 0x002F }, /* FULLWIDTH ASCII FORMS */
- { 0xFF10, 0x0030 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF11, 0x0031 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF12, 0x0032 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF13, 0x0033 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF14, 0x0034 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF15, 0x0035 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF16, 0x0036 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF17, 0x0037 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF18, 0x0038 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF19, 0x0039 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF1A, 0x003A }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF1B, 0x003B }, /* FULLWIDTH ASCII FORMS */
- { 0xFF1C, 0x003C }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF1D, 0x003D }, /* FULLWIDTH ASCII FORMS */
- { 0xFF1E, 0x003E }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF1F, 0x003F }, /* FULLWIDTH ASCII FORMS */
- { 0xFF20, 0x0040 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF21, 0x0041 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF22, 0x0042 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF23, 0x0043 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF24, 0x0044 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF25, 0x0045 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF26, 0x0046 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF27, 0x0047 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF28, 0x0048 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF29, 0x0049 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF2A, 0x004A }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF2B, 0x004B }, /* FULLWIDTH ASCII FORMS */
- { 0xFF2C, 0x004C }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF2D, 0x004D }, /* FULLWIDTH ASCII FORMS */
- { 0xFF2E, 0x004E }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF2F, 0x004F }, /* FULLWIDTH ASCII FORMS */
- { 0xFF30, 0x0050 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF31, 0x0051 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF32, 0x0052 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF33, 0x0053 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF34, 0x0054 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF35, 0x0055 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF36, 0x0056 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF37, 0x0057 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF38, 0x0058 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF39, 0x0059 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF3A, 0x005A }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF3B, 0x005B }, /* FULLWIDTH ASCII FORMS */
- { 0xFF3C, 0x005C }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF3D, 0x005D }, /* FULLWIDTH ASCII FORMS */
- { 0xFF3E, 0x005E }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF3F, 0x005F }, /* FULLWIDTH ASCII FORMS */
- { 0xFF40, 0x0060 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF41, 0x0061 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF42, 0x0062 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF43, 0x0063 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF44, 0x0064 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF45, 0x0065 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF46, 0x0066 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF47, 0x0067 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF48, 0x0068 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF49, 0x0069 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF4A, 0x006A }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF4B, 0x006B }, /* FULLWIDTH ASCII FORMS */
- { 0xFF4C, 0x006C }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF4D, 0x006D }, /* FULLWIDTH ASCII FORMS */
- { 0xFF4E, 0x006E }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF4F, 0x006F }, /* FULLWIDTH ASCII FORMS */
- { 0xFF50, 0x0070 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF51, 0x0071 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF52, 0x0072 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF53, 0x0073 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF54, 0x0074 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF55, 0x0075 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF56, 0x0076 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF57, 0x0077 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF58, 0x0078 }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF59, 0x0079 }, /* FULLWIDTH ASCII FORMS */
- { 0xFF5A, 0x007A }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF5B, 0x007B }, /* FULLWIDTH ASCII FORMS */
- { 0xFF5C, 0x007C }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF5D, 0x007D }, /* FULLWIDTH ASCII FORMS */
- { 0xFF5E, 0x007E }, /* FULLWIDTH ASCII FORMS*/
- { 0xFF5F, 0x007F }, /* FULLWIDTH ASCII FORMS */
- { 0xFF61, 0x3002 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF62, 0x300C }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF63, 0x300D }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF64, 0x3001 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF65, 0x30FB }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF66, 0x30F2 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF67, 0x30A1 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF68, 0x30A3 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF69, 0x30A5 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF6A, 0x30A7 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF6B, 0x30A9 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF6C, 0x30E3 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF6D, 0x30E5 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF6E, 0x30E7 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF6F, 0x30C3 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF70, 0x30FC }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF71, 0x30A2 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF72, 0x30A4 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF73, 0x30A6 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF74, 0x30A8 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF75, 0x30AA }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF76, 0x30AB }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF77, 0x30AD }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF78, 0x30AF }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF79, 0x30B1 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF7A, 0x30B3 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF7B, 0x30B5 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF7C, 0x30B7 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF7D, 0x30B9 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF7E, 0x30BB }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF7F, 0x30BD }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF80, 0x30BF }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF81, 0x30C1 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF82, 0x30C4 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF83, 0x30C6 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF84, 0x30C8 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF85, 0x30CA }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF86, 0x30CB }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF87, 0x30CC }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF88, 0x30CD }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF89, 0x30CE }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF8A, 0x30CF }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF8B, 0x30D2 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF8C, 0x30D5 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF8D, 0x30D8 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF8E, 0x30DB }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF8F, 0x30DE }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF90, 0x30DF }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF91, 0x30E0 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF92, 0x30E1 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF93, 0x30E2 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF94, 0x30E4 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF95, 0x30E6 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF96, 0x30E8 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF97, 0x30E9 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF98, 0x30EA }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF99, 0x30EB }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF9A, 0x30EC }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF9B, 0x30ED }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF9C, 0x30EF }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF9D, 0x30F3 }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF9E, 0x309B }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFF9F, 0x309C }, /* HALFWIDTH KATAKANA FORMS */
- { 0xFFA0, 0x3164 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFA1, 0x3131 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFA2, 0x3132 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFA3, 0x3133 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFA4, 0x3134 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFA5, 0x3135 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFA6, 0x3136 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFA7, 0x3137 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFA8, 0x3138 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFA9, 0x3139 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFAA, 0x313A }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFAB, 0x313B }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFAC, 0x313C }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFAD, 0x313D }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFAE, 0x313E }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFAF, 0x313F }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFB0, 0x3140 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFB1, 0x3141 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFB2, 0x3142 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFB3, 0x3143 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFB4, 0x3144 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFB5, 0x3145 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFB6, 0x3146 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFB7, 0x3147 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFB8, 0x3148 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFB9, 0x3149 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFBA, 0x314A }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFBB, 0x314B }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFBC, 0x314C }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFBD, 0x314D }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFBE, 0x314E }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFC2, 0x314F }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFC3, 0x3150 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFC4, 0x3151 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFC5, 0x3152 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFC6, 0x3153 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFC7, 0x3154 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFCA, 0x3155 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFCB, 0x3156 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFCC, 0x3157 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFCD, 0x3158 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFCE, 0x3159 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFCF, 0x315A }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFD2, 0x315B }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFD3, 0x315C }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFD4, 0x315D }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFD5, 0x315E }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFD6, 0x315F }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFD7, 0x3160 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFDA, 0x3161 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFDB, 0x3162 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFDC, 0x3163 }, /* HALFWIDTH HANGUL FORMS */
- { 0xFFE0, 0x00A2 }, /* FULLWIDTH CENT SIGN */
- { 0xFFE1, 0x00A3 }, /* FULLWIDTH POUND SIGN */
- { 0xFFE2, 0x00AC }, /* FULLWIDTH NOT SIGN */
- { 0xFFE3, 0x00AF }, /* FULLWIDTH MACRON */
- { 0xFFE4, 0x00A6 }, /* FULLWIDTH BROKEN BAR */
- { 0xFFE5, 0x00A5 }, /* FULLWIDTH YEN SIGN */
- { 0xFFE6, 0x20A9 }, /* FULLWIDTH WON SIGN */
- { 0xFFE8, 0x2502 }, /* HALFWIDTH FORMS LIGHT VERTICAL */
- { 0xFFE9, 0x2190 }, /* HALFWIDTH LEFTWARDS ARROW */
- { 0xFFEA, 0x2191 }, /* HALFWIDTH UPWARDS ARROW */
- { 0xFFEB, 0x2192 }, /* HALFWIDTH RIGHTWARDS ARROW */
- { 0xFFEC, 0x2193 }, /* HALFWIDTH DOWNWARDS ARROW */
- { 0xFFED, 0x25A0 }, /* HALFWIDTH BLACK SQUARE */
- { 0xFFEE, 0x25CB }, /* HALFWIDTH WHITE CIRCLE */
- { 0xFFFD, 0x003F } /* REPLACEMENT CHARACTER */
-};
-
-sal_uInt16 ImplGetReplaceChar( sal_Unicode c )
-{
- sal_uInt16 nLow;
- sal_uInt16 nHigh;
- sal_uInt16 nMid;
- sal_uInt16 nCompareChar;
- const ImplReplaceCharData* pCharData;
-
- nLow = 0;
- nHigh = (sizeof( aImplRepCharTab )/sizeof( ImplReplaceCharData ))-1;
- do
- {
- nMid = (nLow+nHigh)/2;
- pCharData = aImplRepCharTab+nMid;
- nCompareChar = pCharData->mnUniChar;
- if ( c < nCompareChar )
- {
- if ( !nMid )
- break;
- nHigh = nMid-1;
- }
- else
- {
- if ( c > nCompareChar )
- nLow = nMid+1;
- else
- return pCharData->mnReplaceChar;
- }
- }
- while ( nLow <= nHigh );
-
- return 0;
-}
-
-/* ----------------------------------------------------------------------- */
-
-typedef struct
-{
- sal_uInt16 mnUniChar;
- sal_uInt16 maReplaceChars[IMPL_MAX_REPLACECHAR];
-} ImplReplaceCharStrData;
-
-static ImplReplaceCharStrData const aImplRepCharStrTab[] =
-{
- { 0x00A9, { 0x0028, 0x0063, 0x0029, 0x0000, 0x0000 } }, /* COPYRIGHT SIGN */
- { 0x00AB, { 0x003C, 0x003C, 0x0000, 0x0000, 0x0000 } }, /* LEFT-POINTING-DOUBLE ANGLE QUOTATION MARK */
- { 0x0AE0, { 0x0028, 0x0072, 0x0029, 0x0000, 0x0000 } }, /* REGISTERED SIGN */
- { 0x00BB, { 0x003E, 0x003E, 0x0000, 0x0000, 0x0000 } }, /* RIGHT-POINTING-DOUBLE ANGLE QUOTATION MARK */
- { 0x00BC, { 0x0031, 0x002F, 0x0034, 0x0000, 0x0000 } }, /* VULGAR FRACTION ONE QUARTER */
- { 0x00BD, { 0x0031, 0x002F, 0x0032, 0x0000, 0x0000 } }, /* VULGAR FRACTION ONE HALF */
- { 0x00BE, { 0x0033, 0x002F, 0x0034, 0x0000, 0x0000 } }, /* VULGAR FRACTION THREE QUARTERS */
- { 0x00C6, { 0x0041, 0x0045, 0x0000, 0x0000, 0x0000 } }, /* LATIN CAPITAL LETTER AE */
- { 0x00E6, { 0x0061, 0x0065, 0x0000, 0x0000, 0x0000 } }, /* LATIN SMALL LETTER AE */
- { 0x0152, { 0x004F, 0x0045, 0x0000, 0x0000, 0x0000 } }, /* LATIN CAPITAL LIGATURE OE */
- { 0x0153, { 0x006F, 0x0065, 0x0000, 0x0000, 0x0000 } }, /* LATIN SMALL LIGATURE OE */
- { 0x2025, { 0x002E, 0x002E, 0x0000, 0x0000, 0x0000 } }, /* TWO DOT LEADER */
- { 0x2026, { 0x002E, 0x002E, 0x002E, 0x0000, 0x0000 } }, /* HORIZONTAL ELLIPSES */
- { 0x2034, { 0x0027, 0x0027, 0x0027, 0x0000, 0x0000 } }, /* TRIPPLE PRIME */
- { 0x2037, { 0x0027, 0x0027, 0x0027, 0x0000, 0x0000 } }, /* RESERVED TRIPPLE PRIME */
- { 0x20AC, { 0x0045, 0x0055, 0x0052, 0x0000, 0x0000 } }, /* EURO SIGN */
- { 0x2122, { 0x0028, 0x0074, 0x006D, 0x0029, 0x0000 } }, /* TRADE MARK SIGN */
- { 0x2153, { 0x0031, 0x002F, 0x0033, 0x0000, 0x0000 } }, /* VULGAR FRACTION ONE THIRD */
- { 0x2154, { 0x0032, 0x002F, 0x0033, 0x0000, 0x0000 } }, /* VULGAR FRACTION TWO THIRD */
- { 0x2155, { 0x0031, 0x002F, 0x0035, 0x0000, 0x0000 } }, /* VULGAR FRACTION ONE FIFTH */
- { 0x2156, { 0x0032, 0x002F, 0x0035, 0x0000, 0x0000 } }, /* VULGAR FRACTION TWO FIFTH */
- { 0x2157, { 0x0033, 0x002F, 0x0035, 0x0000, 0x0000 } }, /* VULGAR FRACTION THREE FIFTH */
- { 0x2158, { 0x0034, 0x002F, 0x0035, 0x0000, 0x0000 } }, /* VULGAR FRACTION FOUR FIFTH */
- { 0x2159, { 0x0031, 0x002F, 0x0036, 0x0000, 0x0000 } }, /* VULGAR FRACTION ONE SIXTH */
- { 0x215A, { 0x0035, 0x002F, 0x0036, 0x0000, 0x0000 } }, /* VULGAR FRACTION FIVE SIXTH */
- { 0x215B, { 0x0031, 0x002F, 0x0038, 0x0000, 0x0000 } }, /* VULGAR FRACTION ONE EIGHTH */
- { 0x215C, { 0x0033, 0x002F, 0x0038, 0x0000, 0x0000 } }, /* VULGAR FRACTION THREE EIGHTH */
- { 0x215D, { 0x0035, 0x002F, 0x0038, 0x0000, 0x0000 } }, /* VULGAR FRACTION FIVE EIGHTH */
- { 0x215E, { 0x0037, 0x002F, 0x0038, 0x0000, 0x0000 } }, /* VULGAR FRACTION SEVEN EIGHTH */
- { 0x215F, { 0x0031, 0x002F, 0x0000, 0x0000, 0x0000 } }, /* FRACTION NUMERATOR ONE */
- { 0x2161, { 0x0049, 0x0049, 0x0000, 0x0000, 0x0000 } }, /* ROMAN NUMERAL TWO */
- { 0x2162, { 0x0049, 0x0049, 0x0049, 0x0000, 0x0000 } }, /* ROMAN NUMERAL THREE */
- { 0x2163, { 0x0049, 0x0056, 0x0000, 0x0000, 0x0000 } }, /* ROMAN NUMERAL FOUR */
- { 0x2165, { 0x0056, 0x0049, 0x0000, 0x0000, 0x0000 } }, /* ROMAN NUMERAL SIX */
- { 0x2166, { 0x0056, 0x0049, 0x0049, 0x0000, 0x0000 } }, /* ROMAN NUMERAL SEVEN */
- { 0x2168, { 0x0056, 0x0049, 0x0049, 0x0049, 0x0000 } }, /* ROMAN NUMERAL EIGHT */
- { 0x2169, { 0x0049, 0x0058, 0x0000, 0x0000, 0x0000 } }, /* ROMAN NUMERAL NINE */
- { 0x216A, { 0x0058, 0x0049, 0x0000, 0x0000, 0x0000 } }, /* ROMAN NUMERAL ELEVEN */
- { 0x216B, { 0x0058, 0x0049, 0x0049, 0x0000, 0x0000 } }, /* ROMAN NUMERAL TWELVE */
- { 0x2171, { 0x0069, 0x0069, 0x0000, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL TWO */
- { 0x2172, { 0x0069, 0x0069, 0x0069, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL THREE */
- { 0x2173, { 0x0069, 0x0076, 0x0000, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL FOUR */
- { 0x2175, { 0x0076, 0x0069, 0x0000, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL SIX */
- { 0x2176, { 0x0076, 0x0069, 0x0069, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL SEVEN */
- { 0x2178, { 0x0076, 0x0069, 0x0069, 0x0069, 0x0000 } }, /* SMALL ROMAN NUMERAL EIGHT */
- { 0x2179, { 0x0069, 0x0078, 0x0000, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL NINE */
- { 0x217A, { 0x0078, 0x0069, 0x0000, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL ELEVEN */
- { 0x217B, { 0x0058, 0x0069, 0x0069, 0x0000, 0x0000 } } /* SMALL ROMAN NUMERAL TWELVE */
-};
-
-const sal_uInt16* ImplGetReplaceString( sal_Unicode c )
-{
- sal_uInt16 nLow;
- sal_uInt16 nHigh;
- sal_uInt16 nMid;
- sal_uInt16 nCompareChar;
- const ImplReplaceCharStrData* pCharData;
-
- nLow = 0;
- nHigh = (sizeof( aImplRepCharStrTab )/sizeof( ImplReplaceCharStrData ))-1;
- do
- {
- nMid = (nLow+nHigh)/2;
- pCharData = aImplRepCharStrTab+nMid;
- nCompareChar = pCharData->mnUniChar;
- if ( c < nCompareChar )
- {
- if ( !nMid )
- break;
- nHigh = nMid-1;
- }
- else
- {
- if ( c > nCompareChar )
- nLow = nMid+1;
- else
- return pCharData->maReplaceChars;
- }
- }
- while ( nLow <= nHigh );
-
- return 0;
-}
-
-/* ======================================================================= */
-
-sal_Size ImplSymbolToUnicode( const ImplTextConverterData* pData,
- void* pContext,
- const sal_Char* pSrcBuf, sal_Size nSrcBytes,
- sal_Unicode* pDestBuf, sal_Size nDestChars,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtBytes )
-{
- sal_uChar c;
- sal_Unicode* pEndDestBuf;
- const sal_Char* pEndSrcBuf;
-
- (void) pData; /* unused */
- (void) pContext; /* unused */
- (void) nFlags; /* unused */
-
- *pInfo = 0;
- pEndDestBuf = pDestBuf+nDestChars;
- pEndSrcBuf = pSrcBuf+nSrcBytes;
- while ( pSrcBuf < pEndSrcBuf )
- {
- if ( pDestBuf == pEndDestBuf )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- /* 0-31 (all Control-Character get the same Unicode value) */
- c = (sal_uChar)*pSrcBuf;
- if ( c <= 0x1F )
- *pDestBuf = (sal_Unicode)c;
- else
- *pDestBuf = ((sal_Unicode)c)+0xF000;
- pDestBuf++;
- pSrcBuf++;
- }
-
- *pSrcCvtBytes = nSrcBytes - (pEndSrcBuf-pSrcBuf);
- return (nDestChars - (pEndDestBuf-pDestBuf));
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Size ImplUnicodeToSymbol( const ImplTextConverterData* pData,
- void* pContext,
- const sal_Unicode* pSrcBuf, sal_Size nSrcChars,
- sal_Char* pDestBuf, sal_Size nDestBytes,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtChars )
-{
- sal_Unicode c;
- sal_Char* pEndDestBuf;
- const sal_Unicode* pEndSrcBuf;
-
- (void) pContext; /* unused */
-
- *pInfo = 0;
- pEndDestBuf = pDestBuf+nDestBytes;
- pEndSrcBuf = pSrcBuf+nSrcChars;
- while ( pSrcBuf < pEndSrcBuf )
- {
- if ( pDestBuf == pEndDestBuf )
- {
- *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- c = *pSrcBuf;
- if ( (c >= 0xF000) && (c <= 0xF0FF) )
- {
- *pDestBuf = (sal_Char)(sal_uChar)(c-0xF000);
- pDestBuf++;
- pSrcBuf++;
- }
- // Normally 0x001F, but in many cases also symbol characters
- // are stored in the first 256 bytes, so that we don't change
- // these values
- else if ( c <= 0x00FF )
- {
- *pDestBuf = (sal_Char)(sal_uChar)c;
- pDestBuf++;
- pSrcBuf++;
- }
- else
- {
- if ( nFlags & RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACE )
- {
- /* !!! */
- /* Only ascii characters < 0x1F */
- }
-
- /* Handle undefined and surrogates characters */
- /* (all surrogates characters are undefined) */
- if (!ImplHandleUndefinedUnicodeToTextChar(pData,
- &pSrcBuf,
- pEndSrcBuf,
- &pDestBuf,
- pEndDestBuf,
- nFlags,
- pInfo))
- break;
- }
- }
-
- *pSrcCvtChars = nSrcChars - (pEndSrcBuf-pSrcBuf);
- return (nDestBytes - (pEndDestBuf-pDestBuf));
-}
-
-/* ======================================================================= */
-
-sal_Size ImplCharToUnicode( const ImplTextConverterData* pData,
- void* pContext,
- const sal_Char* pSrcBuf, sal_Size nSrcBytes,
- sal_Unicode* pDestBuf, sal_Size nDestChars,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtBytes )
-{
- sal_uChar c;
- sal_Unicode cConv;
- const ImplByteConvertData* pConvertData = (const ImplByteConvertData*)pData;
- sal_Unicode* pEndDestBuf;
- const sal_Char* pEndSrcBuf;
-
- (void) pContext; /* unused */
-
- *pInfo = 0;
- pEndDestBuf = pDestBuf+nDestChars;
- pEndSrcBuf = pSrcBuf+nSrcBytes;
- while ( pSrcBuf < pEndSrcBuf )
- {
- c = (sal_uChar)*pSrcBuf;
- if ( c < 0x80 )
- cConv = c;
- else
- {
- if ( (c >= pConvertData->mnToUniStart1) && (c <= pConvertData->mnToUniEnd1) )
- cConv = pConvertData->mpToUniTab1[c-pConvertData->mnToUniStart1];
- else if ( (c >= pConvertData->mnToUniStart2) && (c <= pConvertData->mnToUniEnd2) )
- cConv = pConvertData->mpToUniTab2[c-pConvertData->mnToUniStart2];
- else
- cConv = 0;
- if ( !cConv )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_UNDEFINED;
- if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MASK) == RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR;
- break;
- }
- else if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MASK) == RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE )
- {
- pSrcBuf++;
- continue;
- }
- else
- cConv = ImplGetUndefinedUnicodeChar(c, nFlags);
- }
- }
-
- if ( pDestBuf == pEndDestBuf )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- *pDestBuf = cConv;
- pDestBuf++;
- pSrcBuf++;
- }
-
- *pSrcCvtBytes = nSrcBytes - (pEndSrcBuf-pSrcBuf);
- return (nDestChars - (pEndDestBuf-pDestBuf));
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Size ImplUpperCharToUnicode( const ImplTextConverterData* pData,
- void* pContext,
- const sal_Char* pSrcBuf, sal_Size nSrcBytes,
- sal_Unicode* pDestBuf, sal_Size nDestChars,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtBytes )
-{
- sal_uChar c;
- sal_Unicode cConv;
- const ImplByteConvertData* pConvertData = (const ImplByteConvertData*)pData;
- sal_Unicode* pEndDestBuf;
- const sal_Char* pEndSrcBuf;
-
- (void) pContext; /* unused */
- (void) nFlags; /* unused */
-
- *pInfo = 0;
- pEndDestBuf = pDestBuf+nDestChars;
- pEndSrcBuf = pSrcBuf+nSrcBytes;
- if ( pDestBuf == pEndDestBuf )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- *pSrcCvtBytes = 0;
- return 0;
- }
- while ( pSrcBuf < pEndSrcBuf )
- {
- c = (sal_uChar)*pSrcBuf;
- if (c < 0x80)
- cConv = c;
- else
- // c <= 0xFF is implied.
- cConv = pConvertData->mpToUniTab1[c - 0x80];
-
- *pDestBuf = cConv;
- pDestBuf++;
- pSrcBuf++;
- }
-
- *pSrcCvtBytes = nSrcBytes - (pEndSrcBuf-pSrcBuf);
- return (nDestChars - (pEndDestBuf-pDestBuf));
-}
-
-/* ----------------------------------------------------------------------- */
-
-// Writes 0--2 characters to dest:
-static int ImplConvertUnicodeCharToChar(
- const ImplByteConvertData* pConvertData, sal_Unicode c, sal_Char * dest )
-{
- const ImplUniCharTabData* pToCharExTab;
-
- if ( c < 0x80 )
- {
- dest[0] = (sal_Char)c;
- return 1;
- }
- if ( (c >= pConvertData->mnToCharStart1) && (c <= pConvertData->mnToCharEnd1) )
- {
- dest[0] = (sal_Char)pConvertData->mpToCharTab1[c-pConvertData->mnToCharStart1];
- if ( dest[0] != 0 )
- return 1;
- }
- else if ( (c >= pConvertData->mnToCharStart2) && (c <= pConvertData->mnToCharEnd2) )
- {
- dest[0] = (sal_Char)pConvertData->mpToCharTab2[c-pConvertData->mnToCharStart2];
- if ( dest[0] != 0 )
- return 1;
- }
- pToCharExTab = pConvertData->mpToCharExTab;
- if ( pToCharExTab )
- {
- sal_uInt16 nLow;
- sal_uInt16 nHigh;
- sal_uInt16 nMid;
- sal_uInt16 nCompareChar;
- const ImplUniCharTabData* pCharExData;
-
- nLow = 0;
- nHigh = pConvertData->mnToCharExCount-1;
- do
- {
- nMid = (nLow+nHigh)/2;
- pCharExData = pToCharExTab+nMid;
- nCompareChar = pCharExData->mnUniChar;
- if ( c < nCompareChar )
- {
- if ( !nMid )
- break;
- nHigh = nMid-1;
- }
- else
- {
- if ( c > nCompareChar )
- nLow = nMid+1;
- else
- {
- dest[0] = (sal_Char)pCharExData->mnChar;
- if ( pCharExData->mnChar2 == 0 )
- return 1;
- else
- {
- dest[1] = (sal_Char)pCharExData->mnChar2;
- return 2;
- }
- }
- }
- }
- while ( nLow <= nHigh );
- }
- return 0;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Size ImplUnicodeToChar( const ImplTextConverterData* pData,
- void* pContext,
- const sal_Unicode* pSrcBuf, sal_Size nSrcChars,
- sal_Char* pDestBuf, sal_Size nDestBytes,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtChars )
-{
- sal_Unicode c;
- const ImplByteConvertData* pConvertData = (const ImplByteConvertData*)pData;
- sal_Char* pEndDestBuf;
- const sal_Unicode* pEndSrcBuf;
- int i;
- int n;
- sal_uInt16 cTemp;
- sal_Char aTempBuf[IMPL_MAX_REPLACECHAR+2];
- const sal_uInt16* pReplace;
-
- (void) pContext; /* unused */
-
- *pInfo = 0;
- pEndDestBuf = pDestBuf+nDestBytes;
- pEndSrcBuf = pSrcBuf+nSrcChars;
- while ( pSrcBuf < pEndSrcBuf )
- {
- c = *pSrcBuf;
- if ( c < 0x80 )
- {
- aTempBuf[0] = (sal_Char)c;
- n = 1;
- }
- else
- {
- n = ImplConvertUnicodeCharToChar( pConvertData, c, aTempBuf );
-
- if ( n == 0 )
- {
- if ( nFlags & RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACE )
- {
- cTemp = ImplGetReplaceChar( c );
- if ( cTemp )
- n = ImplConvertUnicodeCharToChar(
- pConvertData, cTemp, aTempBuf );
- }
-
- if ( n == 0 )
- {
- if ( nFlags & RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACESTR )
- {
- pReplace = ImplGetReplaceString( c );
- if ( pReplace )
- {
- while ( *pReplace && (n < IMPL_MAX_REPLACECHAR) )
- {
- i = ImplConvertUnicodeCharToChar(
- pConvertData, *pReplace, aTempBuf + n );
- if ( i == 0 )
- {
- n = 0;
- break;
- }
- pReplace++;
- n += i;
- }
- }
- }
-
- /* Handle undefined and surrogates characters */
- /* (all surrogates characters are undefined) */
- if ( n == 0 )
- {
- if (ImplHandleUndefinedUnicodeToTextChar(pData,
- &pSrcBuf,
- pEndSrcBuf,
- &pDestBuf,
- pEndDestBuf,
- nFlags,
- pInfo))
- continue;
- else
- break;
- }
- }
- }
- }
-
- if ( pEndDestBuf - pDestBuf < n )
- {
- *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- for ( i = 0; i < n; ++i )
- *pDestBuf++ = aTempBuf[i];
- pSrcBuf++;
- }
-
- *pSrcCvtChars = nSrcChars - (pEndSrcBuf-pSrcBuf);
- return (nDestBytes - (pEndDestBuf-pDestBuf));
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/tcvteas1.tab b/sal/textenc/tcvteas1.tab
deleted file mode 100644
index 033e43c14..000000000
--- a/sal/textenc/tcvteas1.tab
+++ /dev/null
@@ -1,436 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the tables for all 1 byte charsets, for the */
-/* following scripts: asia (Thai, Vietnamese) and other exotic scripts */
-
-/* ======================================================================= */
-
-/* MS-874 */
-/* Windows/Dos Standard CharSet for Thai */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/pc/cp874.txt from 04/15/98 Version 2.00 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define MS874UNI_START 0x80
-#define MS874UNI_END 0xFB
-static sal_uInt16 const aImplMS874ToUniTab[MS874UNI_END - MS874UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x20AC, 0, 0, 0, 0, 0x2026, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x00A0, 0x0E01, 0x0E02, 0x0E03, 0x0E04, 0x0E05, 0x0E06, 0x0E07, /* 0xA0 */
- 0x0E08, 0x0E09, 0x0E0A, 0x0E0B, 0x0E0C, 0x0E0D, 0x0E0E, 0x0E0F, /* 0xA0 */
- 0x0E10, 0x0E11, 0x0E12, 0x0E13, 0x0E14, 0x0E15, 0x0E16, 0x0E17, /* 0xB0 */
- 0x0E18, 0x0E19, 0x0E1A, 0x0E1B, 0x0E1C, 0x0E1D, 0x0E1E, 0x0E1F, /* 0xB0 */
- 0x0E20, 0x0E21, 0x0E22, 0x0E23, 0x0E24, 0x0E25, 0x0E26, 0x0E27, /* 0xC0 */
- 0x0E28, 0x0E29, 0x0E2A, 0x0E2B, 0x0E2C, 0x0E2D, 0x0E2E, 0x0E2F, /* 0xC0 */
- 0x0E30, 0x0E31, 0x0E32, 0x0E33, 0x0E34, 0x0E35, 0x0E36, 0x0E37, /* 0xD0 */
- 0x0E38, 0x0E39, 0x0E3A, 0, 0, 0, 0, 0x0E3F, /* 0xD0 */
- 0x0E40, 0x0E41, 0x0E42, 0x0E43, 0x0E44, 0x0E45, 0x0E46, 0x0E47, /* 0xE0 */
- 0x0E48, 0x0E49, 0x0E4A, 0x0E4B, 0x0E4C, 0x0E4D, 0x0E4E, 0x0E4F, /* 0xE0 */
- 0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54, 0x0E55, 0x0E56, 0x0E57, /* 0xF0 */
- 0x0E58, 0x0E59, 0x0E5A, 0x0E5B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define MS874CHAR_START 0x0E01
-#define MS874CHAR_END 0x0E5B
-static sal_uChar const aImplMS874ToCharTab[MS874CHAR_END - MS874CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x0E00 */
- 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, /* 0x0E00 */
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x0E10 */
- 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, /* 0x0E10 */
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x0E20 */
- 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x0E20 */
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x0E30 */
- 0xD8, 0xD9, 0xDA, 0, 0, 0, 0, 0xDF, /* 0x0E30 */
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0E40 */
- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0E40 */
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x0E50 */
- 0xF8, 0xF9, 0xFA, 0xFB /* 0x0E50 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define MS874TOCHARTABEX_COUNT 10
-static ImplUniCharTabData const aImplMS874ToCharTabEx[MS874TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xA0, 0 },
- { 0x2013, 0x96, 0 },
- { 0x2014, 0x97, 0 },
- { 0x2018, 0x91, 0 },
- { 0x2019, 0x92, 0 },
- { 0x201C, 0x93, 0 },
- { 0x201D, 0x94, 0 },
- { 0x2022, 0x95, 0 },
- { 0x2026, 0x85, 0 },
- { 0x20AC, 0x80, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplMS874ByteCvtData =
-{
- aImplMS874ToUniTab,
- NULL,
- MS874UNI_START, MS874UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplMS874ToCharTab,
- NULL,
- aImplMS874ToCharTabEx,
- MS874CHAR_START, MS874CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- MS874TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplMS874TextEncodingData
- = { { &aImplMS874ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 222,
- "iso8859-1", /* TODO! correct? */
- "windows-874",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* WIN/DOS/OS2, SCRIPT_THAI, pc code page 874, mac encoding 21 */
-
-/* ======================================================================= */
-
-/* TIS 620-2533
- *
- * A good source of information is <http://www.inet.co.th/cyberclub/trin/
- * thairef/index.html> as of 18 Mar 2002.
- *
- * Single byte encoding, from which MS874 is derived (although it is the other
- * way around in this implementation):
- *
- * 0x00--9F map to U+0000--009F
- * 0xA0 is questionable (unassigned or U+00A0 NO BREAK SPACE), to ease
- * implementation, it maps to U+00A0
- * 0xA1--DA map to U+0E01--0E3A (TIS 620, same for MS874)
- * 0xDB--DE are unassigned (TIS 620, same for MS874)
- * 0xDF--FB map to U+0E3F--0E5B (TIS 620, same for MS874)
- * 0xFC--FF are unassigned (TIS 620, same for MS874)
- */
-
-static ImplByteConvertData const aImplTis620ByteCvtData =
-{
- aImplMS874ToUniTab + (0xA0 - MS874UNI_START),
- aImpl8090SameToUniTab,
- 0xA0, MS874UNI_END,
- SAME8090UNI_START, SAME8090UNI_END,
- aImplMS874ToCharTab,
- aImpl8090SameToCharTab,
- aImplMS874ToCharTabEx,
- MS874CHAR_START, MS874CHAR_END,
- SAME8090CHAR_START, SAME8090CHAR_END,
- 1
-};
-
-static ImplTextEncodingData const aImplTis620TextEncodingData
- = { { &aImplTis620ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 222,
- "iso8859-1", /* TODO! correct? */
- "TIS-620",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
-
-/* ======================================================================= */
-
-/* MS-1258 */
-/* Windows Standard CharSet for Vietnamease */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/windows/cp1258.txt from 04/15/98 Version 2.01 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1258UNI_START 0x80
-#define MS1258UNI_END 0xFF
-static sal_uInt16 const aImplMS1258ToUniTab[MS1258UNI_END - MS1258UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x20AC, 0, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
- 0x02C6, 0x2030, 0, 0x2039, 0x0152, 0, 0, 0, /* 0x80 */
- 0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
- 0x02DC, 0x2122, 0, 0x203A, 0x0153, 0, 0, 0x0178, /* 0x90 */
- 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */
- 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0xA0 */
- 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
- 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, /* 0xB0 */
- 0x00C0, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x00C5, 0x00C6, 0x00C7, /* 0xC0 */
- 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x0300, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */
- 0x0110, 0x00D1, 0x0309, 0x00D3, 0x00D4, 0x01A0, 0x00D6, 0x00D7, /* 0xD0 */
- 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x01AF, 0x0303, 0x00DF, /* 0xD0 */
- 0x00E0, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x00E5, 0x00E6, 0x00E7, /* 0xE0 */
- 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0301, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */
- 0x0111, 0x00F1, 0x0323, 0x00F3, 0x00F4, 0x01A1, 0x00F6, 0x00F7, /* 0xF0 */
- 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x01B0, 0x20AB, 0x00FF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1258CHAR_START 0x00A0
-#define MS1258CHAR_END 0x00FF
-static sal_uChar const aImplMS1258ToCharTab[MS1258CHAR_END - MS1258CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x00A0 */
- 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, /* 0x00A0 */
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x00B0 */
- 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, /* 0x00B0 */
- 0xC0, 0xC1, 0xC2, 0, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x00C0 */
- 0xC8, 0xC9, 0xCA, 0xCB, 0, 0xCD, 0xCE, 0xCF, /* 0x00C0 */
- 0, 0xD1, 0, 0xD3, 0xD4, 0, 0xD6, 0xD7, /* 0x00D0 */
- 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0, 0, 0xDF, /* 0x00D0 */
- 0xE0, 0xE1, 0xE2, 0, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x00E0 */
- 0xE8, 0xE9, 0xEA, 0xEB, 0, 0xED, 0xEE, 0xEF, /* 0x00E0 */
- 0, 0xF1, 0, 0xF3, 0xF4, 0, 0xF6, 0xF7, /* 0x00F0 */
- 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0, 0, 0xFF /* 0x00F0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* The list of Vietnamese-relevant precomposed Unicode characters that map to
- MS1258 base + combining modifier are derived from the information present at
- <http://vietunicode.sourceforge.net/charset/>: */
-#define MS1258TOCHARTABEX_COUNT 141
-static ImplUniCharTabData const aImplMS1258ToCharTabEx[MS1258TOCHARTABEX_COUNT] =
-{
- { 0x00C3, 0x41, 0xDE },
- { 0x00CC, 0x49, 0xCC },
- { 0x00D2, 0x4F, 0xCC },
- { 0x00D5, 0x4F, 0xDE },
- { 0x00DD, 0x59, 0xEC },
- { 0x00E3, 0x61, 0xDE },
- { 0x00EC, 0x69, 0xCC },
- { 0x00F2, 0x6F, 0xCC },
- { 0x00F5, 0x6F, 0xDE },
- { 0x00FD, 0x79, 0xCC },
- { 0x0102, 0xC3, 0 },
- { 0x0103, 0xE3, 0 },
- { 0x0110, 0xD0, 0 },
- { 0x0111, 0xF0, 0 },
- { 0x0128, 0x49, 0xDE },
- { 0x0129, 0x69, 0xDE },
- { 0x0152, 0x8C, 0 },
- { 0x0153, 0x9C, 0 },
- { 0x0168, 0x55, 0xDE },
- { 0x0169, 0x75, 0xDE },
- { 0x0178, 0x9F, 0 },
- { 0x0192, 0x83, 0 },
- { 0x01A0, 0xD5, 0 },
- { 0x01A1, 0xF5, 0 },
- { 0x01AF, 0xDD, 0 },
- { 0x01B0, 0xFD, 0 },
- { 0x02C6, 0x88, 0 },
- { 0x02DC, 0x98, 0 },
- { 0x0300, 0xCC, 0 },
- { 0x0301, 0xEC, 0 },
- { 0x0303, 0xDE, 0 },
- { 0x0309, 0xD2, 0 },
- { 0x0323, 0xF2, 0 },
- { 0x1EA0, 0x41, 0xF2 },
- { 0x1EA1, 0x61, 0xF2 },
- { 0x1EA2, 0x41, 0xD2 },
- { 0x1EA3, 0x61, 0xD2 },
- { 0x1EA4, 0xC2, 0xEC },
- { 0x1EA5, 0xE2, 0xEC },
- { 0x1EA6, 0xC2, 0xCC },
- { 0x1EA7, 0xE2, 0xCC },
- { 0x1EA8, 0xC2, 0xD2 },
- { 0x1EA9, 0xE2, 0xD2 },
- { 0x1EAA, 0xC2, 0xDE },
- { 0x1EAB, 0xE2, 0xDE },
- { 0x1EAC, 0xC2, 0xF2 },
- { 0x1EAD, 0xE2, 0xF2 },
- { 0x1EAE, 0xC3, 0xEC },
- { 0x1EAF, 0xE3, 0xEC },
- { 0x1EB0, 0xC3, 0xCC },
- { 0x1EB1, 0xE3, 0xCC },
- { 0x1EB2, 0xC3, 0xD2 },
- { 0x1EB3, 0xE3, 0xD2 },
- { 0x1EB4, 0xC3, 0xDE },
- { 0x1EB5, 0xE3, 0xDE },
- { 0x1EB6, 0xC3, 0xF2 },
- { 0x1EB7, 0xE3, 0xF2 },
- { 0x1EB8, 0x45, 0xF2 },
- { 0x1EB9, 0x65, 0xF2 },
- { 0x1EBA, 0x45, 0xD2 },
- { 0x1EBB, 0x65, 0xD2 },
- { 0x1EBC, 0x45, 0xDE },
- { 0x1EBD, 0x65, 0xDE },
- { 0x1EBE, 0xCA, 0xEC },
- { 0x1EBF, 0xEA, 0xEC },
- { 0x1EC0, 0xCA, 0xCC },
- { 0x1EC1, 0xEA, 0xCC },
- { 0x1EC2, 0xCA, 0xD2 },
- { 0x1EC3, 0xEA, 0xD2 },
- { 0x1EC4, 0xCA, 0xDE },
- { 0x1EC5, 0xEA, 0xDE },
- { 0x1EC6, 0xCA, 0xF2 },
- { 0x1EC7, 0xEA, 0xF2 },
- { 0x1EC8, 0x49, 0xD2 },
- { 0x1EC9, 0x69, 0xD2 },
- { 0x1ECA, 0x49, 0xF2 },
- { 0x1ECB, 0x69, 0xF2 },
- { 0x1ECC, 0x4F, 0xF2 },
- { 0x1ECD, 0x6F, 0xF2 },
- { 0x1ECE, 0x4F, 0xD2 },
- { 0x1ECF, 0x6F, 0xD2 },
- { 0x1ED0, 0xD4, 0xEC },
- { 0x1ED1, 0xF4, 0xEC },
- { 0x1ED2, 0xD4, 0xCC },
- { 0x1ED3, 0xF4, 0xCC },
- { 0x1ED4, 0xD4, 0xD2 },
- { 0x1ED5, 0xF4, 0xD2 },
- { 0x1ED6, 0xD4, 0xDE },
- { 0x1ED7, 0xF4, 0xDE },
- { 0x1ED8, 0xD4, 0xF2 },
- { 0x1ED9, 0xF4, 0xF2 },
- { 0x1EDA, 0xD5, 0xEC },
- { 0x1EDB, 0xF5, 0xEC },
- { 0x1EDC, 0xD5, 0xCC },
- { 0x1EDD, 0xF5, 0xCC },
- { 0x1EDE, 0xD5, 0xD2 },
- { 0x1EDF, 0xF5, 0xD2 },
- { 0x1EE0, 0xD5, 0xDE },
- { 0x1EE1, 0xF5, 0xDE },
- { 0x1EE2, 0xD5, 0xF2 },
- { 0x1EE3, 0xF5, 0xF2 },
- { 0x1EE4, 0x55, 0xF2 },
- { 0x1EE5, 0x75, 0xF2 },
- { 0x1EE6, 0x55, 0xD2 },
- { 0x1EE7, 0x75, 0xD2 },
- { 0x1EE8, 0xDD, 0xEC },
- { 0x1EE9, 0xFD, 0xEC },
- { 0x1EEA, 0xDD, 0xCC },
- { 0x1EEB, 0xFD, 0xCC },
- { 0x1EEC, 0xDD, 0xD2 },
- { 0x1EED, 0xFD, 0xD2 },
- { 0x1EEE, 0xDD, 0xDE },
- { 0x1EEF, 0xFD, 0xDE },
- { 0x1EF0, 0xDD, 0xF2 },
- { 0x1EF1, 0xFD, 0xF2 },
- { 0x1EF2, 0x59, 0xCC },
- { 0x1EF3, 0x79, 0xCC },
- { 0x1EF4, 0x59, 0xF2 },
- { 0x1EF5, 0x79, 0xF2 },
- { 0x1EF6, 0x59, 0xD2 },
- { 0x1EF7, 0x79, 0xD2 },
- { 0x1EF8, 0x59, 0xDE },
- { 0x1EF9, 0x79, 0xDE },
- { 0x2013, 0x96, 0 },
- { 0x2014, 0x97, 0 },
- { 0x2018, 0x91, 0 },
- { 0x2019, 0x92, 0 },
- { 0x201A, 0x82, 0 },
- { 0x201C, 0x93, 0 },
- { 0x201D, 0x94, 0 },
- { 0x201E, 0x84, 0 },
- { 0x2020, 0x86, 0 },
- { 0x2021, 0x87, 0 },
- { 0x2022, 0x95, 0 },
- { 0x2026, 0x85, 0 },
- { 0x2030, 0x89, 0 },
- { 0x2039, 0x8B, 0 },
- { 0x203A, 0x9B, 0 },
- { 0x20AB, 0xFE, 0 },
- { 0x20AC, 0x80, 0 },
- { 0x2122, 0x99, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplMS1258ByteCvtData =
-{
- aImplMS1258ToUniTab,
- NULL,
- MS1258UNI_START, MS1258UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplMS1258ToCharTab,
- NULL,
- aImplMS1258ToCharTabEx,
- MS1258CHAR_START, MS1258CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- MS1258TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplMS1258TextEncodingData
- = { { &aImplMS1258ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 2,
- 1,
- 163,
- "iso8859-1", /* TODO! correct? */
- "windows-1258",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* WIN, SCRIPT_VIETNAMESE, mac encoding 30 */
diff --git a/sal/textenc/tcvtest1.tab b/sal/textenc/tcvtest1.tab
deleted file mode 100644
index d4ffece87..000000000
--- a/sal/textenc/tcvtest1.tab
+++ /dev/null
@@ -1,4584 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the tables for all 1 byte charsets, for the */
-/* following scripts: easteurope, cyrillic, greek, turkish */
-
-/* ======================================================================= */
-
-/* IBM-737 */
-/* Dos Standard CharSet for Greek */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/pc/cp737.txt from 04/24/96 Version 2.00 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM737UNI_START 0x80
-#define IBM737UNI_END 0xFF
-static sal_uInt16 const aImplIBM737ToUniTab[IBM737UNI_END - IBM737UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, /* 0x80 */
- 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0, /* 0x80 */
- 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, /* 0x90 */
- 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8, /* 0x90 */
- 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0, /* 0xA0 */
- 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, /* 0xA0 */
- 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
- 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
- 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
- 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
- 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
- 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
- 0x03C9, 0x03AC, 0x03AD, 0x03AE, 0x03CA, 0x03AF, 0x03CC, 0x03CD, /* 0xE0 */
- 0x03CB, 0x03CE, 0x0386, 0x0388, 0x0389, 0x038A, 0x038C, 0x038E, /* 0xE0 */
- 0x038F, 0x00B1, 0x2265, 0x2264, 0x03AA, 0x03AB, 0x00F7, 0x2248, /* 0xF0 */
- 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM737CHAR_START 0x0386
-#define IBM737CHAR_END 0x03CE
-static sal_uChar const aImplIBM737ToCharTab[IBM737CHAR_END - IBM737CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEA, 0, /* 0x0380 */
- 0xEB, 0xEC, 0xED, 0, 0xEE, 0, 0xEF, 0xF0, /* 0x0380 */
- 0, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, /* 0x0390 */
- 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, /* 0x0390 */
- 0x8F, 0x90, 0, 0x91, 0x92, 0x93, 0x94, 0x95, /* 0x03A0 */
- 0x96, 0x97, 0xF4, 0xF5, 0xE1, 0xE2, 0xE3, 0xE5, /* 0x03A0 */
- 0, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, /* 0x03B0 */
- 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, /* 0x03B0 */
- 0xA7, 0xA8, 0xAA, 0xA9, 0xAB, 0xAC, 0xAD, 0xAE, /* 0x03C0 */
- 0xAF, 0xE0, 0xE4, 0xE8, 0xE6, 0xE7, 0xE9 /* 0x03C0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM737TOCHARTABEX_COUNT 61
-static ImplUniCharTabData const aImplIBM737ToCharTabEx[IBM737TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xFF, 0 },
- { 0x00B0, 0xF8, 0 },
- { 0x00B1, 0xF1, 0 },
- { 0x00B2, 0xFD, 0 },
- { 0x00B7, 0xFA, 0 },
- { 0x00F7, 0xF6, 0 },
- { 0x207F, 0xFC, 0 },
- { 0x2219, 0xF9, 0 },
- { 0x221A, 0xFB, 0 },
- { 0x2248, 0xF7, 0 },
- { 0x2264, 0xF3, 0 },
- { 0x2265, 0xF2, 0 },
- { 0x2500, 0xC4, 0 },
- { 0x2502, 0xB3, 0 },
- { 0x250C, 0xDA, 0 },
- { 0x2510, 0xBF, 0 },
- { 0x2514, 0xC0, 0 },
- { 0x2518, 0xD9, 0 },
- { 0x251C, 0xC3, 0 },
- { 0x2524, 0xB4, 0 },
- { 0x252C, 0xC2, 0 },
- { 0x2534, 0xC1, 0 },
- { 0x253C, 0xC5, 0 },
- { 0x2550, 0xCD, 0 },
- { 0x2551, 0xBA, 0 },
- { 0x2552, 0xD5, 0 },
- { 0x2553, 0xD6, 0 },
- { 0x2554, 0xC9, 0 },
- { 0x2555, 0xB8, 0 },
- { 0x2556, 0xB7, 0 },
- { 0x2557, 0xBB, 0 },
- { 0x2558, 0xD4, 0 },
- { 0x2559, 0xD3, 0 },
- { 0x255A, 0xC8, 0 },
- { 0x255B, 0xBE, 0 },
- { 0x255C, 0xBD, 0 },
- { 0x255D, 0xBC, 0 },
- { 0x255E, 0xC6, 0 },
- { 0x255F, 0xC7, 0 },
- { 0x2560, 0xCC, 0 },
- { 0x2561, 0xB5, 0 },
- { 0x2562, 0xB6, 0 },
- { 0x2563, 0xB9, 0 },
- { 0x2564, 0xD1, 0 },
- { 0x2565, 0xD2, 0 },
- { 0x2566, 0xCB, 0 },
- { 0x2567, 0xCF, 0 },
- { 0x2568, 0xD0, 0 },
- { 0x2569, 0xCA, 0 },
- { 0x256A, 0xD8, 0 },
- { 0x256B, 0xD7, 0 },
- { 0x256C, 0xCE, 0 },
- { 0x2580, 0xDF, 0 },
- { 0x2584, 0xDC, 0 },
- { 0x2588, 0xDB, 0 },
- { 0x258C, 0xDD, 0 },
- { 0x2590, 0xDE, 0 },
- { 0x2591, 0xB0, 0 },
- { 0x2592, 0xB1, 0 },
- { 0x2593, 0xB2, 0 },
- { 0x25A0, 0xFE, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplIBM737ByteCvtData =
-{
- aImplIBM737ToUniTab,
- NULL,
- IBM737UNI_START, IBM737UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplIBM737ToCharTab,
- NULL,
- aImplIBM737ToCharTabEx,
- IBM737CHAR_START, IBM737CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- IBM737TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplIBM737TextEncodingData
- = { { &aImplIBM737ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 161,
- "iso8859-7",
- "iso-8859-7",
- RTL_TEXTENCODING_INFO_ASCII };
- /* DOS/OS2, SCRIPT_GREEK, pc code page 737, mac encoding 6 */
-
-/* ======================================================================= */
-
-/* IBM-775 */
-/* Dos Standard CharSet for BalticRim */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/pc/cp775.txt from 04/24/96 Version 2.00 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM775UNI_START 0x80
-#define IBM775UNI_END 0xFF
-static sal_uInt16 const aImplIBM775ToUniTab[IBM775UNI_END - IBM775UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0106, 0x00FC, 0x00E9, 0x0101, 0x00E4, 0x0123, 0x00E5, 0x0107, /* 0x80 */
- 0x0142, 0x0113, 0x0156, 0x0157, 0x012B, 0x0179, 0x00C4, 0x00C5, /* 0x80 */
- 0x00C9, 0x00E6, 0x00C6, 0x014D, 0x00F6, 0x0122, 0x00A2, 0x015A, /* 0x90 */
- 0x015B, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x00A4, /* 0x90 */
- 0x0100, 0x012A, 0x00F3, 0x017B, 0x017C, 0x017A, 0x201D, 0x00A6, /* 0xA0 */
- 0x00A9, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x0141, 0x00AB, 0x00BB, /* 0xA0 */
- 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010C, 0x0118, /* 0xB0 */
- 0x0116, 0x2563, 0x2551, 0x2557, 0x255D, 0x012E, 0x0160, 0x2510, /* 0xB0 */
- 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0172, 0x016A, /* 0xC0 */
- 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x017D, /* 0xC0 */
- 0x0105, 0x010D, 0x0119, 0x0117, 0x012F, 0x0161, 0x0173, 0x016B, /* 0xD0 */
- 0x017E, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
- 0x00D3, 0x00DF, 0x014C, 0x0143, 0x00F5, 0x00D5, 0x00B5, 0x0144, /* 0xE0 */
- 0x0136, 0x0137, 0x013B, 0x013C, 0x0146, 0x0112, 0x0145, 0x2019, /* 0xE0 */
- 0x00AD, 0x00B1, 0x201C, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x201E, /* 0xF0 */
- 0x00B0, 0x2219, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM775TOCHARTABEX_COUNT 128
-static ImplUniCharTabData const aImplIBM775ToCharTabEx[IBM775TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xFF, 0 },
- { 0x00A2, 0x96, 0 },
- { 0x00A3, 0x9C, 0 },
- { 0x00A4, 0x9F, 0 },
- { 0x00A6, 0xA7, 0 },
- { 0x00A7, 0xF5, 0 },
- { 0x00A9, 0xA8, 0 },
- { 0x00AB, 0xAE, 0 },
- { 0x00AC, 0xAA, 0 },
- { 0x00AD, 0xF0, 0 },
- { 0x00AE, 0xA9, 0 },
- { 0x00B0, 0xF8, 0 },
- { 0x00B1, 0xF1, 0 },
- { 0x00B2, 0xFD, 0 },
- { 0x00B3, 0xFC, 0 },
- { 0x00B5, 0xE6, 0 },
- { 0x00B6, 0xF4, 0 },
- { 0x00B7, 0xFA, 0 },
- { 0x00B9, 0xFB, 0 },
- { 0x00BB, 0xAF, 0 },
- { 0x00BC, 0xAC, 0 },
- { 0x00BD, 0xAB, 0 },
- { 0x00BE, 0xF3, 0 },
- { 0x00C4, 0x8E, 0 },
- { 0x00C5, 0x8F, 0 },
- { 0x00C6, 0x92, 0 },
- { 0x00C9, 0x90, 0 },
- { 0x00D3, 0xE0, 0 },
- { 0x00D5, 0xE5, 0 },
- { 0x00D6, 0x99, 0 },
- { 0x00D7, 0x9E, 0 },
- { 0x00D8, 0x9D, 0 },
- { 0x00DC, 0x9A, 0 },
- { 0x00DF, 0xE1, 0 },
- { 0x00E4, 0x84, 0 },
- { 0x00E5, 0x86, 0 },
- { 0x00E6, 0x91, 0 },
- { 0x00E9, 0x82, 0 },
- { 0x00F3, 0xA2, 0 },
- { 0x00F5, 0xE4, 0 },
- { 0x00F6, 0x94, 0 },
- { 0x00F7, 0xF6, 0 },
- { 0x00F8, 0x9B, 0 },
- { 0x00FC, 0x81, 0 },
- { 0x0100, 0xA0, 0 },
- { 0x0101, 0x83, 0 },
- { 0x0104, 0xB5, 0 },
- { 0x0105, 0xD0, 0 },
- { 0x0106, 0x80, 0 },
- { 0x0107, 0x87, 0 },
- { 0x010C, 0xB6, 0 },
- { 0x010D, 0xD1, 0 },
- { 0x0112, 0xED, 0 },
- { 0x0113, 0x89, 0 },
- { 0x0116, 0xB8, 0 },
- { 0x0117, 0xD3, 0 },
- { 0x0118, 0xB7, 0 },
- { 0x0119, 0xD2, 0 },
- { 0x0122, 0x95, 0 },
- { 0x0123, 0x85, 0 },
- { 0x012A, 0xA1, 0 },
- { 0x012B, 0x8C, 0 },
- { 0x012E, 0xBD, 0 },
- { 0x012F, 0xD4, 0 },
- { 0x0136, 0xE8, 0 },
- { 0x0137, 0xE9, 0 },
- { 0x013B, 0xEA, 0 },
- { 0x013C, 0xEB, 0 },
- { 0x0141, 0xAD, 0 },
- { 0x0142, 0x88, 0 },
- { 0x0143, 0xE3, 0 },
- { 0x0144, 0xE7, 0 },
- { 0x0145, 0xEE, 0 },
- { 0x0146, 0xEC, 0 },
- { 0x014C, 0xE2, 0 },
- { 0x014D, 0x93, 0 },
- { 0x0156, 0x8A, 0 },
- { 0x0157, 0x8B, 0 },
- { 0x015A, 0x97, 0 },
- { 0x015B, 0x98, 0 },
- { 0x0160, 0xBE, 0 },
- { 0x0161, 0xD5, 0 },
- { 0x016A, 0xC7, 0 },
- { 0x016B, 0xD7, 0 },
- { 0x0172, 0xC6, 0 },
- { 0x0173, 0xD6, 0 },
- { 0x0179, 0x8D, 0 },
- { 0x017A, 0xA5, 0 },
- { 0x017B, 0xA3, 0 },
- { 0x017C, 0xA4, 0 },
- { 0x017D, 0xCF, 0 },
- { 0x017E, 0xD8, 0 },
- { 0x2019, 0xEF, 0 },
- { 0x201C, 0xF2, 0 },
- { 0x201D, 0xA6, 0 },
- { 0x201E, 0xF7, 0 },
- { 0x2219, 0xF9, 0 },
- { 0x2500, 0xC4, 0 },
- { 0x2502, 0xB3, 0 },
- { 0x250C, 0xDA, 0 },
- { 0x2510, 0xBF, 0 },
- { 0x2514, 0xC0, 0 },
- { 0x2518, 0xD9, 0 },
- { 0x251C, 0xC3, 0 },
- { 0x2524, 0xB4, 0 },
- { 0x252C, 0xC2, 0 },
- { 0x2534, 0xC1, 0 },
- { 0x253C, 0xC5, 0 },
- { 0x2550, 0xCD, 0 },
- { 0x2551, 0xBA, 0 },
- { 0x2554, 0xC9, 0 },
- { 0x2557, 0xBB, 0 },
- { 0x255A, 0xC8, 0 },
- { 0x255D, 0xBC, 0 },
- { 0x2560, 0xCC, 0 },
- { 0x2563, 0xB9, 0 },
- { 0x2566, 0xCB, 0 },
- { 0x2569, 0xCA, 0 },
- { 0x256C, 0xCE, 0 },
- { 0x2580, 0xDF, 0 },
- { 0x2584, 0xDC, 0 },
- { 0x2588, 0xDB, 0 },
- { 0x258C, 0xDD, 0 },
- { 0x2590, 0xDE, 0 },
- { 0x2591, 0xB0, 0 },
- { 0x2592, 0xB1, 0 },
- { 0x2593, 0xB2, 0 },
- { 0x25A0, 0xFE, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplIBM775ByteCvtData =
-{
- aImplIBM775ToUniTab,
- NULL,
- IBM775UNI_START, IBM775UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- NULL,
- NULL,
- aImplIBM775ToCharTabEx,
- NOTABCHAR_START, NOTABCHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- IBM775TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplIBM775TextEncodingData
- = { { &aImplIBM775ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 186,
- "iso8859-4",
- "iso-8859-4",
- RTL_TEXTENCODING_INFO_ASCII };
- /* DOS/OS2, SCRIPT_BALTIC, pc code page 775, mac encoding 29 (?) */
-
-/* ======================================================================= */
-
-/* IBM-852 */
-/* Dos Standard CharSet for Central Europa (Jug., Pol., Tsch., Ung., ...) */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/pc/cp852.txt from 04/24/96 Version 2.00 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM852UNI_START 0x80
-#define IBM852UNI_END 0xFF
-static sal_uInt16 const aImplIBM852ToUniTab[IBM852UNI_END - IBM852UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x016F, 0x0107, 0x00E7, /* 0x80 */
- 0x0142, 0x00EB, 0x0150, 0x0151, 0x00EE, 0x0179, 0x00C4, 0x0106, /* 0x80 */
- 0x00C9, 0x0139, 0x013A, 0x00F4, 0x00F6, 0x013D, 0x013E, 0x015A, /* 0x90 */
- 0x015B, 0x00D6, 0x00DC, 0x0164, 0x0165, 0x0141, 0x00D7, 0x010D, /* 0x90 */
- 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x0104, 0x0105, 0x017D, 0x017E, /* 0xA0 */
- 0x0118, 0x0119, 0x00AC, 0x017A, 0x010C, 0x015F, 0x00AB, 0x00BB, /* 0xA0 */
- 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x011A, /* 0xB0 */
- 0x015E, 0x2563, 0x2551, 0x2557, 0x255D, 0x017B, 0x017C, 0x2510, /* 0xB0 */
- 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0102, 0x0103, /* 0xC0 */
- 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, /* 0xC0 */
- 0x0111, 0x0110, 0x010E, 0x00CB, 0x010F, 0x0147, 0x00CD, 0x00CE, /* 0xD0 */
- 0x011B, 0x2518, 0x250C, 0x2588, 0x2584, 0x0162, 0x016E, 0x2580, /* 0xD0 */
- 0x00D3, 0x00DF, 0x00D4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161, /* 0xE0 */
- 0x0154, 0x00DA, 0x0155, 0x0170, 0x00FD, 0x00DD, 0x0163, 0x00B4, /* 0xE0 */
- 0x00AD, 0x02DD, 0x02DB, 0x02C7, 0x02D8, 0x00A7, 0x00F7, 0x00B8, /* 0xF0 */
- 0x00B0, 0x00A8, 0x02D9, 0x0171, 0x0158, 0x0159, 0x25A0, 0x00A0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM852TOCHARTABEX_COUNT 128
-static ImplUniCharTabData const aImplIBM852ToCharTabEx[IBM852TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xFF, 0 },
- { 0x00A4, 0xCF, 0 },
- { 0x00A7, 0xF5, 0 },
- { 0x00A8, 0xF9, 0 },
- { 0x00AB, 0xAE, 0 },
- { 0x00AC, 0xAA, 0 },
- { 0x00AD, 0xF0, 0 },
- { 0x00B0, 0xF8, 0 },
- { 0x00B4, 0xEF, 0 },
- { 0x00B8, 0xF7, 0 },
- { 0x00BB, 0xAF, 0 },
- { 0x00C1, 0xB5, 0 },
- { 0x00C2, 0xB6, 0 },
- { 0x00C4, 0x8E, 0 },
- { 0x00C7, 0x80, 0 },
- { 0x00C9, 0x90, 0 },
- { 0x00CB, 0xD3, 0 },
- { 0x00CD, 0xD6, 0 },
- { 0x00CE, 0xD7, 0 },
- { 0x00D3, 0xE0, 0 },
- { 0x00D4, 0xE2, 0 },
- { 0x00D6, 0x99, 0 },
- { 0x00D7, 0x9E, 0 },
- { 0x00DA, 0xE9, 0 },
- { 0x00DC, 0x9A, 0 },
- { 0x00DD, 0xED, 0 },
- { 0x00DF, 0xE1, 0 },
- { 0x00E1, 0xA0, 0 },
- { 0x00E2, 0x83, 0 },
- { 0x00E4, 0x84, 0 },
- { 0x00E7, 0x87, 0 },
- { 0x00E9, 0x82, 0 },
- { 0x00EB, 0x89, 0 },
- { 0x00ED, 0xA1, 0 },
- { 0x00EE, 0x8C, 0 },
- { 0x00F3, 0xA2, 0 },
- { 0x00F4, 0x93, 0 },
- { 0x00F6, 0x94, 0 },
- { 0x00F7, 0xF6, 0 },
- { 0x00FA, 0xA3, 0 },
- { 0x00FC, 0x81, 0 },
- { 0x00FD, 0xEC, 0 },
- { 0x0102, 0xC6, 0 },
- { 0x0103, 0xC7, 0 },
- { 0x0104, 0xA4, 0 },
- { 0x0105, 0xA5, 0 },
- { 0x0106, 0x8F, 0 },
- { 0x0107, 0x86, 0 },
- { 0x010C, 0xAC, 0 },
- { 0x010D, 0x9F, 0 },
- { 0x010E, 0xD2, 0 },
- { 0x010F, 0xD4, 0 },
- { 0x0110, 0xD1, 0 },
- { 0x0111, 0xD0, 0 },
- { 0x0118, 0xA8, 0 },
- { 0x0119, 0xA9, 0 },
- { 0x011A, 0xB7, 0 },
- { 0x011B, 0xD8, 0 },
- { 0x0139, 0x91, 0 },
- { 0x013A, 0x92, 0 },
- { 0x013D, 0x95, 0 },
- { 0x013E, 0x96, 0 },
- { 0x0141, 0x9D, 0 },
- { 0x0142, 0x88, 0 },
- { 0x0143, 0xE3, 0 },
- { 0x0144, 0xE4, 0 },
- { 0x0147, 0xD5, 0 },
- { 0x0148, 0xE5, 0 },
- { 0x0150, 0x8A, 0 },
- { 0x0151, 0x8B, 0 },
- { 0x0154, 0xE8, 0 },
- { 0x0155, 0xEA, 0 },
- { 0x0158, 0xFC, 0 },
- { 0x0159, 0xFD, 0 },
- { 0x015A, 0x97, 0 },
- { 0x015B, 0x98, 0 },
- { 0x015E, 0xB8, 0 },
- { 0x015F, 0xAD, 0 },
- { 0x0160, 0xE6, 0 },
- { 0x0161, 0xE7, 0 },
- { 0x0162, 0xDD, 0 },
- { 0x0163, 0xEE, 0 },
- { 0x0164, 0x9B, 0 },
- { 0x0165, 0x9C, 0 },
- { 0x016E, 0xDE, 0 },
- { 0x016F, 0x85, 0 },
- { 0x0170, 0xEB, 0 },
- { 0x0171, 0xFB, 0 },
- { 0x0179, 0x8D, 0 },
- { 0x017A, 0xAB, 0 },
- { 0x017B, 0xBD, 0 },
- { 0x017C, 0xBE, 0 },
- { 0x017D, 0xA6, 0 },
- { 0x017E, 0xA7, 0 },
- { 0x02C7, 0xF3, 0 },
- { 0x02D8, 0xF4, 0 },
- { 0x02D9, 0xFA, 0 },
- { 0x02DB, 0xF2, 0 },
- { 0x02DD, 0xF1, 0 },
- { 0x2500, 0xC4, 0 },
- { 0x2502, 0xB3, 0 },
- { 0x250C, 0xDA, 0 },
- { 0x2510, 0xBF, 0 },
- { 0x2514, 0xC0, 0 },
- { 0x2518, 0xD9, 0 },
- { 0x251C, 0xC3, 0 },
- { 0x2524, 0xB4, 0 },
- { 0x252C, 0xC2, 0 },
- { 0x2534, 0xC1, 0 },
- { 0x253C, 0xC5, 0 },
- { 0x2550, 0xCD, 0 },
- { 0x2551, 0xBA, 0 },
- { 0x2554, 0xC9, 0 },
- { 0x2557, 0xBB, 0 },
- { 0x255A, 0xC8, 0 },
- { 0x255D, 0xBC, 0 },
- { 0x2560, 0xCC, 0 },
- { 0x2563, 0xB9, 0 },
- { 0x2566, 0xCB, 0 },
- { 0x2569, 0xCA, 0 },
- { 0x256C, 0xCE, 0 },
- { 0x2580, 0xDF, 0 },
- { 0x2584, 0xDC, 0 },
- { 0x2588, 0xDB, 0 },
- { 0x2591, 0xB0, 0 },
- { 0x2592, 0xB1, 0 },
- { 0x2593, 0xB2, 0 },
- { 0x25A0, 0xFE, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplIBM852ByteCvtData =
-{
- aImplIBM852ToUniTab,
- NULL,
- IBM852UNI_START, IBM852UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- NULL,
- NULL,
- aImplIBM852ToCharTabEx,
- NOTABCHAR_START, NOTABCHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- IBM852TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplIBM852TextEncodingData
- = { { &aImplIBM852ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 238,
- "iso8859-2",
- "ibm852",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* DOS/OS2, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */
-
-/* ======================================================================= */
-
-/* IBM-855 */
-/* Dos Standard CharSet for Cyrillic */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/pc/cp855.txt from 04/24/96 Version 2.00 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM855UNI_START 0x80
-#define IBM855UNI_END 0xFF
-static sal_uInt16 const aImplIBM855ToUniTab[IBM855UNI_END - IBM855UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404, /* 0x80 */
- 0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408, /* 0x80 */
- 0x0459, 0x0409, 0x045A, 0x040A, 0x045B, 0x040B, 0x045C, 0x040C, /* 0x90 */
- 0x045E, 0x040E, 0x045F, 0x040F, 0x044E, 0x042E, 0x044A, 0x042A, /* 0x90 */
- 0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414, /* 0xA0 */
- 0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00AB, 0x00BB, /* 0xA0 */
- 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438, /* 0xB0 */
- 0x0418, 0x2563, 0x2551, 0x2557, 0x255D, 0x0439, 0x0419, 0x2510, /* 0xB0 */
- 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x043A, 0x041A, /* 0xC0 */
- 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, /* 0xC0 */
- 0x043B, 0x041B, 0x043C, 0x041C, 0x043D, 0x041D, 0x043E, 0x041E, /* 0xD0 */
- 0x043F, 0x2518, 0x250C, 0x2588, 0x2584, 0x041F, 0x044F, 0x2580, /* 0xD0 */
- 0x042F, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443, /* 0xE0 */
- 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044C, 0x042C, 0x2116, /* 0xE0 */
- 0x00AD, 0x044B, 0x042B, 0x0437, 0x0417, 0x0448, 0x0428, 0x044D, /* 0xF0 */
- 0x042D, 0x0449, 0x0429, 0x0447, 0x0427, 0x00A7, 0x25A0, 0x00A0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM855CHAR_START 0x0401
-#define IBM855CHAR_END 0x045F
-static sal_uChar const aImplIBM855ToCharTab[IBM855CHAR_END - IBM855CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x85, 0x81, 0x83, 0x87, 0x89, 0x8B, 0x8D, /* 0x0400 */
- 0x8F, 0x91, 0x93, 0x95, 0x97, 0, 0x99, 0x9B, /* 0x0400 */
- 0xA1, 0xA3, 0xEC, 0xAD, 0xA7, 0xA9, 0xEA, 0xF4, /* 0x0410 */
- 0xB8, 0xBE, 0xC7, 0xD1, 0xD3, 0xD5, 0xD7, 0xDD, /* 0x0410 */
- 0xE2, 0xE4, 0xE6, 0xE8, 0xAB, 0xB6, 0xA5, 0xFC, /* 0x0420 */
- 0xF6, 0xFA, 0x9F, 0xF2, 0xEE, 0xF8, 0x9D, 0xE0, /* 0x0420 */
- 0xA0, 0xA2, 0xEB, 0xAC, 0xA6, 0xA8, 0xE9, 0xF3, /* 0x0430 */
- 0xB7, 0xBD, 0xC6, 0xD0, 0xD2, 0xD4, 0xD6, 0xD8, /* 0x0430 */
- 0xE1, 0xE3, 0xE5, 0xE7, 0xAA, 0xB5, 0xA4, 0xFB, /* 0x0440 */
- 0xF5, 0xF9, 0x9E, 0xF1, 0xED, 0xF7, 0x9C, 0xDE, /* 0x0440 */
- 0, 0x84, 0x80, 0x82, 0x86, 0x88, 0x8A, 0x8C, /* 0x0450 */
- 0x8E, 0x90, 0x92, 0x94, 0x96, 0, 0x98, 0x9A, /* 0x0450 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM855TOCHARTABEX_COUNT 36
-static ImplUniCharTabData const aImplIBM855ToCharTabEx[IBM855TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xFF, 0 },
- { 0x00A4, 0xCF, 0 },
- { 0x00A7, 0xFD, 0 },
- { 0x00AB, 0xAE, 0 },
- { 0x00AD, 0xF0, 0 },
- { 0x00BB, 0xAF, 0 },
- { 0x2116, 0xEF, 0 },
- { 0x2500, 0xC4, 0 },
- { 0x2502, 0xB3, 0 },
- { 0x250C, 0xDA, 0 },
- { 0x2510, 0xBF, 0 },
- { 0x2514, 0xC0, 0 },
- { 0x2518, 0xD9, 0 },
- { 0x251C, 0xC3, 0 },
- { 0x2524, 0xB4, 0 },
- { 0x252C, 0xC2, 0 },
- { 0x2534, 0xC1, 0 },
- { 0x253C, 0xC5, 0 },
- { 0x2550, 0xCD, 0 },
- { 0x2551, 0xBA, 0 },
- { 0x2554, 0xC9, 0 },
- { 0x2557, 0xBB, 0 },
- { 0x255A, 0xC8, 0 },
- { 0x255D, 0xBC, 0 },
- { 0x2560, 0xCC, 0 },
- { 0x2563, 0xB9, 0 },
- { 0x2566, 0xCB, 0 },
- { 0x2569, 0xCA, 0 },
- { 0x256C, 0xCE, 0 },
- { 0x2580, 0xDF, 0 },
- { 0x2584, 0xDC, 0 },
- { 0x2588, 0xDB, 0 },
- { 0x2591, 0xB0, 0 },
- { 0x2592, 0xB1, 0 },
- { 0x2593, 0xB2, 0 },
- { 0x25A0, 0xFE, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplIBM855ByteCvtData =
-{
- aImplIBM855ToUniTab,
- NULL,
- IBM855UNI_START, IBM855UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplIBM855ToCharTab,
- NULL,
- aImplIBM855ToCharTabEx,
- IBM855CHAR_START, IBM855CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- IBM855TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplIBM855TextEncodingData
- = { { &aImplIBM855ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 204,
- "iso8859-5",
- "iso-8859-5",
- RTL_TEXTENCODING_INFO_ASCII };
- /* DOS/OS2, SCRIPT_CYRILLIC, pc code page 855, mac encoding 7 */
-
-/* ======================================================================= */
-
-/* IBM-857 */
-/* Dos Standard CharSet for Turkish */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/pc/cp857.txt from 04/24/96 Version 2.00 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM857UNI_START 0x80
-#define IBM857UNI_END 0xFF
-static sal_uInt16 const aImplIBM857ToUniTab[IBM857UNI_END - IBM857UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, /* 0x80 */
- 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0131, 0x00C4, 0x00C5, /* 0x80 */
- 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, /* 0x90 */
- 0x0130, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x015E, 0x015F, /* 0x90 */
- 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x011E, 0x011F, /* 0xA0 */
- 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, /* 0xA0 */
- 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0, /* 0xB0 */
- 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510, /* 0xB0 */
- 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3, /* 0xC0 */
- 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, /* 0xC0 */
- 0x00BA, 0x00AA, 0x00CA, 0x00CB, 0x00C8, 0, 0x00CD, 0x00CE, /* 0xD0 */
- 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580, /* 0xD0 */
- 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0, /* 0xE0 */
- 0x00D7, 0x00DA, 0x00DB, 0x00D9, 0x00EC, 0x00FF, 0x00AF, 0x00B4, /* 0xE0 */
- 0x00AD, 0x00B1, 0, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8, /* 0xF0 */
- 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM857CHAR_START 0x00A0
-#define IBM857CHAR_END 0x00FF
-static sal_uChar const aImplIBM857ToCharTab[IBM857CHAR_END - IBM857CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFF, 0xAD, 0xBD, 0x9C, 0xCF, 0xBE, 0xDD, 0xF5, /* 0x00A0 */
- 0xF9, 0xB8, 0xD1, 0xAE, 0xAA, 0xF0, 0xA9, 0xEE, /* 0x00A0 */
- 0xF8, 0xF1, 0xFD, 0xFC, 0xEF, 0xE6, 0xF4, 0xFA, /* 0x00B0 */
- 0xF7, 0xFB, 0xD0, 0xAF, 0xAC, 0xAB, 0xF3, 0xA8, /* 0x00B0 */
- 0xB7, 0xB5, 0xB6, 0xC7, 0x8E, 0x8F, 0x92, 0x80, /* 0x00C0 */
- 0xD4, 0x90, 0xD2, 0xD3, 0xDE, 0xD6, 0xD7, 0xD8, /* 0x00C0 */
- 0, 0xA5, 0xE3, 0xE0, 0xE2, 0xE5, 0x99, 0xE8, /* 0x00D0 */
- 0x9D, 0xEB, 0xE9, 0xEA, 0x9A, 0, 0, 0xE1, /* 0x00D0 */
- 0x85, 0xA0, 0x83, 0xC6, 0x84, 0x86, 0x91, 0x87, /* 0x00E0 */
- 0x8A, 0x82, 0x88, 0x89, 0xEC, 0xA1, 0x8C, 0x8B, /* 0x00E0 */
- 0, 0xA4, 0x95, 0xA2, 0x93, 0xE4, 0x94, 0xF6, /* 0x00F0 */
- 0x9B, 0x97, 0xA3, 0x96, 0x81, 0, 0, 0xED /* 0x00F0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM857TOCHARTABEX_COUNT 35
-static ImplUniCharTabData const aImplIBM857ToCharTabEx[IBM857TOCHARTABEX_COUNT] =
-{
- { 0x011E, 0xA6, 0 },
- { 0x011F, 0xA7, 0 },
- { 0x0130, 0x98, 0 },
- { 0x0131, 0x8D, 0 },
- { 0x015E, 0x9E, 0 },
- { 0x015F, 0x9F, 0 },
- { 0x2500, 0xC4, 0 },
- { 0x2502, 0xB3, 0 },
- { 0x250C, 0xDA, 0 },
- { 0x2510, 0xBF, 0 },
- { 0x2514, 0xC0, 0 },
- { 0x2518, 0xD9, 0 },
- { 0x251C, 0xC3, 0 },
- { 0x2524, 0xB4, 0 },
- { 0x252C, 0xC2, 0 },
- { 0x2534, 0xC1, 0 },
- { 0x253C, 0xC5, 0 },
- { 0x2550, 0xCD, 0 },
- { 0x2551, 0xBA, 0 },
- { 0x2554, 0xC9, 0 },
- { 0x2557, 0xBB, 0 },
- { 0x255A, 0xC8, 0 },
- { 0x255D, 0xBC, 0 },
- { 0x2560, 0xCC, 0 },
- { 0x2563, 0xB9, 0 },
- { 0x2566, 0xCB, 0 },
- { 0x2569, 0xCA, 0 },
- { 0x256C, 0xCE, 0 },
- { 0x2580, 0xDF, 0 },
- { 0x2584, 0xDC, 0 },
- { 0x2588, 0xDB, 0 },
- { 0x2591, 0xB0, 0 },
- { 0x2592, 0xB1, 0 },
- { 0x2593, 0xB2, 0 },
- { 0x25A0, 0xFE, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplIBM857ByteCvtData =
-{
- aImplIBM857ToUniTab,
- NULL,
- IBM857UNI_START, IBM857UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplIBM857ToCharTab,
- NULL,
- aImplIBM857ToCharTabEx,
- IBM857CHAR_START, IBM857CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- IBM857TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplIBM857TextEncodingData
- = { { &aImplIBM857ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 162,
- "iso8859-9",
- "iso-8859-9",
- RTL_TEXTENCODING_INFO_ASCII };
- /* DOS/OS2, SCRIPT_TURKISH, pc code page 857, mac encoding 35 */
-
-/* ======================================================================= */
-
-/* IBM-866 */
-/* Dos Standard CharSet for CyrillicRussian */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/pc/cp866.txt from 04/24/96 Version 2.00 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM866UNI_START 0x80
-#define IBM866UNI_END 0xFF
-static sal_uInt16 const aImplIBM866ToUniTab[IBM866UNI_END - IBM866UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* 0x80 */
- 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, /* 0x80 */
- 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0x90 */
- 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0x90 */
- 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* 0xA0 */
- 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, /* 0xA0 */
- 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
- 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
- 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
- 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
- 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
- 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
- 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* 0xE0 */
- 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, /* 0xE0 */
- 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040E, 0x045E, /* 0xF0 */
- 0x00B0, 0x2219, 0x00B7, 0x221A, 0x2116, 0x00A4, 0x25A0, 0x00A0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM866CHAR_START 0x0401
-#define IBM866CHAR_END 0x045E
-static sal_uChar const aImplIBM866ToCharTab[IBM866CHAR_END - IBM866CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF0, 0, 0, 0xF2, 0, 0, 0xF4, /* 0x0400 */
- 0, 0, 0, 0, 0, 0, 0xF6, 0, /* 0x0400 */
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x0410 */
- 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, /* 0x0410 */
- 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x0420 */
- 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, /* 0x0420 */
- 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x0430 */
- 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, /* 0x0430 */
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0440 */
- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0440 */
- 0, 0xF1, 0, 0, 0xF3, 0, 0, 0xF5, /* 0x0450 */
- 0, 0, 0, 0, 0, 0, 0xF7 /* 0x0450 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM866TOCHARTABEX_COUNT 56
-static ImplUniCharTabData const aImplIBM866ToCharTabEx[IBM866TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xFF, 0 },
- { 0x00A4, 0xFD, 0 },
- { 0x00B0, 0xF8, 0 },
- { 0x00B7, 0xFA, 0 },
- { 0x2116, 0xFC, 0 },
- { 0x2219, 0xF9, 0 },
- { 0x221A, 0xFB, 0 },
- { 0x2500, 0xC4, 0 },
- { 0x2502, 0xB3, 0 },
- { 0x250C, 0xDA, 0 },
- { 0x2510, 0xBF, 0 },
- { 0x2514, 0xC0, 0 },
- { 0x2518, 0xD9, 0 },
- { 0x251C, 0xC3, 0 },
- { 0x2524, 0xB4, 0 },
- { 0x252C, 0xC2, 0 },
- { 0x2534, 0xC1, 0 },
- { 0x253C, 0xC5, 0 },
- { 0x2550, 0xCD, 0 },
- { 0x2551, 0xBA, 0 },
- { 0x2552, 0xD5, 0 },
- { 0x2553, 0xD6, 0 },
- { 0x2554, 0xC9, 0 },
- { 0x2555, 0xB8, 0 },
- { 0x2556, 0xB7, 0 },
- { 0x2557, 0xBB, 0 },
- { 0x2558, 0xD4, 0 },
- { 0x2559, 0xD3, 0 },
- { 0x255A, 0xC8, 0 },
- { 0x255B, 0xBE, 0 },
- { 0x255C, 0xBD, 0 },
- { 0x255D, 0xBC, 0 },
- { 0x255E, 0xC6, 0 },
- { 0x255F, 0xC7, 0 },
- { 0x2560, 0xCC, 0 },
- { 0x2561, 0xB5, 0 },
- { 0x2562, 0xB6, 0 },
- { 0x2563, 0xB9, 0 },
- { 0x2564, 0xD1, 0 },
- { 0x2565, 0xD2, 0 },
- { 0x2566, 0xCB, 0 },
- { 0x2567, 0xCF, 0 },
- { 0x2568, 0xD0, 0 },
- { 0x2569, 0xCA, 0 },
- { 0x256A, 0xD8, 0 },
- { 0x256B, 0xD7, 0 },
- { 0x256C, 0xCE, 0 },
- { 0x2580, 0xDF, 0 },
- { 0x2584, 0xDC, 0 },
- { 0x2588, 0xDB, 0 },
- { 0x258C, 0xDD, 0 },
- { 0x2590, 0xDE, 0 },
- { 0x2591, 0xB0, 0 },
- { 0x2592, 0xB1, 0 },
- { 0x2593, 0xB2, 0 },
- { 0x25A0, 0xFE, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplIBM866ByteCvtData =
-{
- aImplIBM866ToUniTab,
- NULL,
- IBM866UNI_START, IBM866UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplIBM866ToCharTab,
- NULL,
- aImplIBM866ToCharTabEx,
- IBM866CHAR_START, IBM866CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- IBM866TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplIBM866TextEncodingData
- = { { &aImplIBM866ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 204,
- "iso8859-5",
- "cp866",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* DOS/OS2, SCRIPT_LATIN, pc code page 866, mac encoding 7 */
-
-/* ======================================================================= */
-
-/* IBM-869 */
-/* Dos Standard CharSet for Greek2 */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/pc/cp869.txt from 04/24/96 Version 2.00 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM869UNI_START 0x86
-#define IBM869UNI_END 0xFF
-static sal_uInt16 const aImplIBM869ToUniTab[IBM869UNI_END - IBM869UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0386, 0, /* 0x80 */
- 0x00B7, 0x00AC, 0x00A6, 0x2018, 0x2019, 0x0388, 0x2015, 0x0389, /* 0x80 */
- 0x038A, 0x03AA, 0x038C, 0, 0, 0x038E, 0x03AB, 0x00A9, /* 0x90 */
- 0x038F, 0x00B2, 0x00B3, 0x03AC, 0x00A3, 0x03AD, 0x03AE, 0x03AF, /* 0x90 */
- 0x03CA, 0x0390, 0x03CC, 0x03CD, 0x0391, 0x0392, 0x0393, 0x0394, /* 0xA0 */
- 0x0395, 0x0396, 0x0397, 0x00BD, 0x0398, 0x0399, 0x00AB, 0x00BB, /* 0xA0 */
- 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039A, 0x039B, 0x039C, /* 0xB0 */
- 0x039D, 0x2563, 0x2551, 0x2557, 0x255D, 0x039E, 0x039F, 0x2510, /* 0xB0 */
- 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x03A0, 0x03A1, /* 0xC0 */
- 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x03A3, /* 0xC0 */
- 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03B1, 0x03B2, /* 0xD0 */
- 0x03B3, 0x2518, 0x250C, 0x2588, 0x2584, 0x03B4, 0x03B5, 0x2580, /* 0xD0 */
- 0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, /* 0xE0 */
- 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x0384, /* 0xE0 */
- 0x00AD, 0x00B1, 0x03C5, 0x03C6, 0x03C7, 0x00A7, 0x03C8, 0x0385, /* 0xF0 */
- 0x00B0, 0x00A8, 0x03C9, 0x03CB, 0x03B0, 0x03CE, 0x25A0, 0x00A0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM869CHAR_START 0x0384
-#define IBM869CHAR_END 0x03CE
-static sal_uChar const aImplIBM869ToCharTab[IBM869CHAR_END - IBM869CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEF, 0xF7, 0x86, 0, /* 0x0380 */
- 0x8D, 0x8F, 0x90, 0, 0x92, 0, 0x95, 0x98, /* 0x0380 */
- 0xA1, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, /* 0x0390 */
- 0xAC, 0xAD, 0xB5, 0xB6, 0xB7, 0xB8, 0xBD, 0xBE, /* 0x0390 */
- 0xC6, 0xC7, 0, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, /* 0x03A0 */
- 0xD4, 0xD5, 0x91, 0x96, 0x9B, 0x9D, 0x9E, 0x9F, /* 0x03A0 */
- 0xFC, 0xD6, 0xD7, 0xD8, 0xDD, 0xDE, 0xE0, 0xE1, /* 0x03B0 */
- 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, /* 0x03B0 */
- 0xEA, 0xEB, 0xED, 0xEC, 0xEE, 0xF2, 0xF3, 0xF4, /* 0x03C0 */
- 0xF6, 0xFA, 0xA0, 0xFB, 0xA2, 0xA3, 0xFD /* 0x03C0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM869TOCHARTABEX_COUNT 48
-static ImplUniCharTabData const aImplIBM869ToCharTabEx[IBM869TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xFF, 0 },
- { 0x00A3, 0x9C, 0 },
- { 0x00A6, 0x8A, 0 },
- { 0x00A7, 0xF5, 0 },
- { 0x00A8, 0xF9, 0 },
- { 0x00A9, 0x97, 0 },
- { 0x00AB, 0xAE, 0 },
- { 0x00AC, 0x89, 0 },
- { 0x00AD, 0xF0, 0 },
- { 0x00B0, 0xF8, 0 },
- { 0x00B1, 0xF1, 0 },
- { 0x00B2, 0x99, 0 },
- { 0x00B3, 0x9A, 0 },
- { 0x00B7, 0x88, 0 },
- { 0x00BB, 0xAF, 0 },
- { 0x00BD, 0xAB, 0 },
- { 0x2015, 0x8E, 0 },
- { 0x2018, 0x8B, 0 },
- { 0x2019, 0x8C, 0 },
- { 0x2500, 0xC4, 0 },
- { 0x2502, 0xB3, 0 },
- { 0x250C, 0xDA, 0 },
- { 0x2510, 0xBF, 0 },
- { 0x2514, 0xC0, 0 },
- { 0x2518, 0xD9, 0 },
- { 0x251C, 0xC3, 0 },
- { 0x2524, 0xB4, 0 },
- { 0x252C, 0xC2, 0 },
- { 0x2534, 0xC1, 0 },
- { 0x253C, 0xC5, 0 },
- { 0x2550, 0xCD, 0 },
- { 0x2551, 0xBA, 0 },
- { 0x2554, 0xC9, 0 },
- { 0x2557, 0xBB, 0 },
- { 0x255A, 0xC8, 0 },
- { 0x255D, 0xBC, 0 },
- { 0x2560, 0xCC, 0 },
- { 0x2563, 0xB9, 0 },
- { 0x2566, 0xCB, 0 },
- { 0x2569, 0xCA, 0 },
- { 0x256C, 0xCE, 0 },
- { 0x2580, 0xDF, 0 },
- { 0x2584, 0xDC, 0 },
- { 0x2588, 0xDB, 0 },
- { 0x2591, 0xB0, 0 },
- { 0x2592, 0xB1, 0 },
- { 0x2593, 0xB2, 0 },
- { 0x25A0, 0xFE, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplIBM869ByteCvtData =
-{
- aImplIBM869ToUniTab,
- NULL,
- IBM869UNI_START, IBM869UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplIBM869ToCharTab,
- NULL,
- aImplIBM869ToCharTabEx,
- IBM869CHAR_START, IBM869CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- IBM869TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplIBM869TextEncodingData
- = { { &aImplIBM869ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 161,
- "iso8859-7",
- "iso-8859-7",
- RTL_TEXTENCODING_INFO_ASCII };
- /* DOS/OS2, SCRIPT_LATIN, pc code page 869, mac encoding 6 */
-
-/* ======================================================================= */
-
-/* MS-1250 */
-/* Windows CodePage for Eastern European (WinLatin2) */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/windows/cp1250.txt from 04/15/98 Version 2.01 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1250UNI_START 0x80
-#define MS1250UNI_END 0xFF
-static sal_uInt16 const aImplMS1250ToUniTab[MS1250UNI_END - MS1250UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x20AC, 0, 0x201A, 0, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
- 0, 0x2030, 0x0160, 0x2039, 0x015A, 0x0164, 0x017D, 0x0179, /* 0x80 */
- 0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
- 0, 0x2122, 0x0161, 0x203A, 0x015B, 0x0165, 0x017E, 0x017A, /* 0x90 */
- 0x00A0, 0x02C7, 0x02D8, 0x0141, 0x00A4, 0x0104, 0x00A6, 0x00A7, /* 0xA0 */
- 0x00A8, 0x00A9, 0x015E, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x017B, /* 0xA0 */
- 0x00B0, 0x00B1, 0x02DB, 0x0142, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
- 0x00B8, 0x0105, 0x015F, 0x00BB, 0x013D, 0x02DD, 0x013E, 0x017C, /* 0xB0 */
- 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7, /* 0xC0 */
- 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E, /* 0xC0 */
- 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7, /* 0xD0 */
- 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF, /* 0xD0 */
- 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7, /* 0xE0 */
- 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, /* 0xE0 */
- 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, /* 0xF0 */
- 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1250TOCHARTABEX_COUNT 123
-static ImplUniCharTabData const aImplMS1250ToCharTabEx[MS1250TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xA0, 0 },
- { 0x00A4, 0xA4, 0 },
- { 0x00A6, 0xA6, 0 },
- { 0x00A7, 0xA7, 0 },
- { 0x00A8, 0xA8, 0 },
- { 0x00A9, 0xA9, 0 },
- { 0x00AB, 0xAB, 0 },
- { 0x00AC, 0xAC, 0 },
- { 0x00AD, 0xAD, 0 },
- { 0x00AE, 0xAE, 0 },
- { 0x00B0, 0xB0, 0 },
- { 0x00B1, 0xB1, 0 },
- { 0x00B4, 0xB4, 0 },
- { 0x00B5, 0xB5, 0 },
- { 0x00B6, 0xB6, 0 },
- { 0x00B7, 0xB7, 0 },
- { 0x00B8, 0xB8, 0 },
- { 0x00BB, 0xBB, 0 },
- { 0x00C1, 0xC1, 0 },
- { 0x00C2, 0xC2, 0 },
- { 0x00C4, 0xC4, 0 },
- { 0x00C7, 0xC7, 0 },
- { 0x00C9, 0xC9, 0 },
- { 0x00CB, 0xCB, 0 },
- { 0x00CD, 0xCD, 0 },
- { 0x00CE, 0xCE, 0 },
- { 0x00D3, 0xD3, 0 },
- { 0x00D4, 0xD4, 0 },
- { 0x00D6, 0xD6, 0 },
- { 0x00D7, 0xD7, 0 },
- { 0x00DA, 0xDA, 0 },
- { 0x00DC, 0xDC, 0 },
- { 0x00DD, 0xDD, 0 },
- { 0x00DF, 0xDF, 0 },
- { 0x00E1, 0xE1, 0 },
- { 0x00E2, 0xE2, 0 },
- { 0x00E4, 0xE4, 0 },
- { 0x00E7, 0xE7, 0 },
- { 0x00E9, 0xE9, 0 },
- { 0x00EB, 0xEB, 0 },
- { 0x00ED, 0xED, 0 },
- { 0x00EE, 0xEE, 0 },
- { 0x00F3, 0xF3, 0 },
- { 0x00F4, 0xF4, 0 },
- { 0x00F6, 0xF6, 0 },
- { 0x00F7, 0xF7, 0 },
- { 0x00FA, 0xFA, 0 },
- { 0x00FC, 0xFC, 0 },
- { 0x00FD, 0xFD, 0 },
- { 0x0102, 0xC3, 0 },
- { 0x0103, 0xE3, 0 },
- { 0x0104, 0xA5, 0 },
- { 0x0105, 0xB9, 0 },
- { 0x0106, 0xC6, 0 },
- { 0x0107, 0xE6, 0 },
- { 0x010C, 0xC8, 0 },
- { 0x010D, 0xE8, 0 },
- { 0x010E, 0xCF, 0 },
- { 0x010F, 0xEF, 0 },
- { 0x0110, 0xD0, 0 },
- { 0x0111, 0xF0, 0 },
- { 0x0118, 0xCA, 0 },
- { 0x0119, 0xEA, 0 },
- { 0x011A, 0xCC, 0 },
- { 0x011B, 0xEC, 0 },
- { 0x0139, 0xC5, 0 },
- { 0x013A, 0xE5, 0 },
- { 0x013D, 0xBC, 0 },
- { 0x013E, 0xBE, 0 },
- { 0x0141, 0xA3, 0 },
- { 0x0142, 0xB3, 0 },
- { 0x0143, 0xD1, 0 },
- { 0x0144, 0xF1, 0 },
- { 0x0147, 0xD2, 0 },
- { 0x0148, 0xF2, 0 },
- { 0x0150, 0xD5, 0 },
- { 0x0151, 0xF5, 0 },
- { 0x0154, 0xC0, 0 },
- { 0x0155, 0xE0, 0 },
- { 0x0158, 0xD8, 0 },
- { 0x0159, 0xF8, 0 },
- { 0x015A, 0x8C, 0 },
- { 0x015B, 0x9C, 0 },
- { 0x015E, 0xAA, 0 },
- { 0x015F, 0xBA, 0 },
- { 0x0160, 0x8A, 0 },
- { 0x0161, 0x9A, 0 },
- { 0x0162, 0xDE, 0 },
- { 0x0163, 0xFE, 0 },
- { 0x0164, 0x8D, 0 },
- { 0x0165, 0x9D, 0 },
- { 0x016E, 0xD9, 0 },
- { 0x016F, 0xF9, 0 },
- { 0x0170, 0xDB, 0 },
- { 0x0171, 0xFB, 0 },
- { 0x0179, 0x8F, 0 },
- { 0x017A, 0x9F, 0 },
- { 0x017B, 0xAF, 0 },
- { 0x017C, 0xBF, 0 },
- { 0x017D, 0x8E, 0 },
- { 0x017E, 0x9E, 0 },
- { 0x02C7, 0xA1, 0 },
- { 0x02D8, 0xA2, 0 },
- { 0x02D9, 0xFF, 0 },
- { 0x02DB, 0xB2, 0 },
- { 0x02DD, 0xBD, 0 },
- { 0x2013, 0x96, 0 },
- { 0x2014, 0x97, 0 },
- { 0x2018, 0x91, 0 },
- { 0x2019, 0x92, 0 },
- { 0x201A, 0x82, 0 },
- { 0x201C, 0x93, 0 },
- { 0x201D, 0x94, 0 },
- { 0x201E, 0x84, 0 },
- { 0x2020, 0x86, 0 },
- { 0x2021, 0x87, 0 },
- { 0x2022, 0x95, 0 },
- { 0x2026, 0x85, 0 },
- { 0x2030, 0x89, 0 },
- { 0x2039, 0x8B, 0 },
- { 0x203A, 0x9B, 0 },
- { 0x20AC, 0x80, 0 },
- { 0x2122, 0x99, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplMS1250ByteCvtData =
-{
- aImplMS1250ToUniTab,
- NULL,
- MS1250UNI_START, MS1250UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- NULL,
- NULL,
- aImplMS1250ToCharTabEx,
- NOTABCHAR_START, NOTABCHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- MS1250TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplMS1250TextEncodingData
- = { { &aImplMS1250ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 238,
- "iso8859-2",
- "windows-1250",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* WIN, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */
-
-/* ======================================================================= */
-
-/* MS-1251 */
-/* Windows CodePage for Cyrillic */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/windows/cp1251.txt from 04/15/98 Version 2.01 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1251UNI_START 0x80
-#define MS1251UNI_END 0xFF
-static sal_uInt16 const aImplMS1251ToUniTab[MS1251UNI_END - MS1251UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
- 0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F, /* 0x80 */
- 0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
- 0, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F, /* 0x90 */
- 0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7, /* 0xA0 */
- 0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407, /* 0xA0 */
- 0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
- 0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457, /* 0xB0 */
- 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* 0xC0 */
- 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, /* 0xC0 */
- 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0xD0 */
- 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0xD0 */
- 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* 0xE0 */
- 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, /* 0xE0 */
- 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* 0xF0 */
- 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1251CHAR_START 0x0401
-#define MS1251CHAR_END 0x045F
-static sal_uChar const aImplMS1251ToCharTab[MS1251CHAR_END - MS1251CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA8, 0x80, 0x81, 0xAA, 0xBD, 0xB2, 0xAF, /* 0x0400 */
- 0xA3, 0x8A, 0x8C, 0x8E, 0x8D, 0, 0xA1, 0x8F, /* 0x0400 */
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x0410 */
- 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x0410 */
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x0420 */
- 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, /* 0x0420 */
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0430 */
- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0430 */
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x0440 */
- 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, /* 0x0440 */
- 0, 0xB8, 0x90, 0x83, 0xBA, 0xBE, 0xB3, 0xBF, /* 0x0450 */
- 0xBC, 0x9A, 0x9C, 0x9E, 0x9D, 0, 0xA2, 0x9F /* 0x0450 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1251TOCHARTABEX_COUNT 35
-static ImplUniCharTabData const aImplMS1251ToCharTabEx[MS1251TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xA0, 0 },
- { 0x00A4, 0xA4, 0 },
- { 0x00A6, 0xA6, 0 },
- { 0x00A7, 0xA7, 0 },
- { 0x00A9, 0xA9, 0 },
- { 0x00AB, 0xAB, 0 },
- { 0x00AC, 0xAC, 0 },
- { 0x00AD, 0xAD, 0 },
- { 0x00AE, 0xAE, 0 },
- { 0x00B0, 0xB0, 0 },
- { 0x00B1, 0xB1, 0 },
- { 0x00B5, 0xB5, 0 },
- { 0x00B6, 0xB6, 0 },
- { 0x00B7, 0xB7, 0 },
- { 0x00BB, 0xBB, 0 },
- { 0x0490, 0xA5, 0 },
- { 0x0491, 0xB4, 0 },
- { 0x2013, 0x96, 0 },
- { 0x2014, 0x97, 0 },
- { 0x2018, 0x91, 0 },
- { 0x2019, 0x92, 0 },
- { 0x201A, 0x82, 0 },
- { 0x201C, 0x93, 0 },
- { 0x201D, 0x94, 0 },
- { 0x201E, 0x84, 0 },
- { 0x2020, 0x86, 0 },
- { 0x2021, 0x87, 0 },
- { 0x2022, 0x95, 0 },
- { 0x2026, 0x85, 0 },
- { 0x2030, 0x89, 0 },
- { 0x2039, 0x8B, 0 },
- { 0x203A, 0x9B, 0 },
- { 0x20AC, 0x88, 0 },
- { 0x2116, 0xB9, 0 },
- { 0x2122, 0x99, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplMS1251ByteCvtData =
-{
- aImplMS1251ToUniTab,
- NULL,
- MS1251UNI_START, MS1251UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplMS1251ToCharTab,
- NULL,
- aImplMS1251ToCharTabEx,
- MS1251CHAR_START, MS1251CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- MS1251TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplMS1251TextEncodingData
- = { { &aImplMS1251ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 204,
- "iso8859-5",
- "windows-1251",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* WIN, SCRIPT_CYRILLIC, pc code page 866 (855?), mac encoding 7 */
-
-/* ======================================================================= */
-
-/* MS-1253 */
-/* Windows Standard CharSet for Greek */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/windows/cp1253.txt from 04/15/98 Version 2.01 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1253UNI_START 0x80
-#define MS1253UNI_END 0xFF
-static sal_uInt16 const aImplMS1253ToUniTab[MS1253UNI_END - MS1253UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x20AC, 0, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
- 0, 0x2030, 0, 0x2039, 0, 0, 0, 0, /* 0x80 */
- 0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
- 0, 0x2122, 0, 0x203A, 0, 0, 0, 0, /* 0x90 */
- 0x00A0, 0x0385, 0x0386, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */
- 0x00A8, 0x00A9, 0, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x2015, /* 0xA0 */
- 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
- 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F, /* 0xB0 */
- 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, /* 0xC0 */
- 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, /* 0xC0 */
- 0x03A0, 0x03A1, 0, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, /* 0xD0 */
- 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF, /* 0xD0 */
- 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, /* 0xE0 */
- 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, /* 0xE0 */
- 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, /* 0xF0 */
- 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1253CHAR_START 0x0384
-#define MS1253CHAR_END 0x03CE
-static sal_uChar const aImplMS1253ToCharTab[MS1253CHAR_END - MS1253CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB4, 0xA1, 0xA2, 0, /* 0x0380 */
- 0xB8, 0xB9, 0xBA, 0, 0xBC, 0, 0xBE, 0xBF, /* 0x0380 */
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x0390 */
- 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x0390 */
- 0xD0, 0xD1, 0, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x03A0 */
- 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, /* 0x03A0 */
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x03B0 */
- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x03B0 */
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x03C0 */
- 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE /* 0x03C0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1253TOCHARTABEX_COUNT 40
-static ImplUniCharTabData const aImplMS1253ToCharTabEx[MS1253TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xA0, 0 },
- { 0x00A3, 0xA3, 0 },
- { 0x00A4, 0xA4, 0 },
- { 0x00A5, 0xA5, 0 },
- { 0x00A6, 0xA6, 0 },
- { 0x00A7, 0xA7, 0 },
- { 0x00A8, 0xA8, 0 },
- { 0x00A9, 0xA9, 0 },
- { 0x00AB, 0xAB, 0 },
- { 0x00AC, 0xAC, 0 },
- { 0x00AD, 0xAD, 0 },
- { 0x00AE, 0xAE, 0 },
- { 0x00B0, 0xB0, 0 },
- { 0x00B1, 0xB1, 0 },
- { 0x00B2, 0xB2, 0 },
- { 0x00B3, 0xB3, 0 },
- { 0x00B5, 0xB5, 0 },
- { 0x00B6, 0xB6, 0 },
- { 0x00B7, 0xB7, 0 },
- { 0x00BB, 0xBB, 0 },
- { 0x00BD, 0xBD, 0 },
- { 0x0192, 0x83, 0 },
- { 0x2013, 0x96, 0 },
- { 0x2014, 0x97, 0 },
- { 0x2015, 0xAF, 0 },
- { 0x2018, 0x91, 0 },
- { 0x2019, 0x92, 0 },
- { 0x201A, 0x82, 0 },
- { 0x201C, 0x93, 0 },
- { 0x201D, 0x94, 0 },
- { 0x201E, 0x84, 0 },
- { 0x2020, 0x86, 0 },
- { 0x2021, 0x87, 0 },
- { 0x2022, 0x95, 0 },
- { 0x2026, 0x85, 0 },
- { 0x2030, 0x89, 0 },
- { 0x2039, 0x8B, 0 },
- { 0x203A, 0x9B, 0 },
- { 0x20AC, 0x80, 0 },
- { 0x2122, 0x99, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplMS1253ByteCvtData =
-{
- aImplMS1253ToUniTab,
- NULL,
- MS1253UNI_START, MS1253UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplMS1253ToCharTab,
- NULL,
- aImplMS1253ToCharTabEx,
- MS1253CHAR_START, MS1253CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- MS1253TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplMS1253TextEncodingData
- = { { &aImplMS1253ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 161,
- "iso8859-7",
- "windows-1253",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* WIN, SCRIPT_GREEK, pc code page 869, mac encoding 6 */
-
-/* ======================================================================= */
-
-/* MS-1254 */
-/* Windows Standard CharSet for Turkish */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/windows/cp1254.txt from 04/15/98 Version 2.01 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1254UNI_START 0x80
-#define MS1254UNI_END 0xFF
-static sal_uInt16 const aImplMS1254ToUniTab[MS1254UNI_END - MS1254UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x20AC, 0, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
- 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0, 0, 0, /* 0x80 */
- 0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
- 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0, 0, 0x0178, /* 0x90 */
- 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */
- 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0xA0 */
- 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
- 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, /* 0xB0 */
- 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, /* 0xC0 */
- 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */
- 0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */
- 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF, /* 0xD0 */
- 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, /* 0xE0 */
- 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */
- 0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */
- 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1254CHAR_START 0x00A0
-#define MS1254CHAR_END 0x00FF
-static sal_uChar const aImplMS1254ToCharTab[MS1254CHAR_END - MS1254CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x00A0 */
- 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, /* 0x00A0 */
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x00B0 */
- 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, /* 0x00B0 */
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x00C0 */
- 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x00C0 */
- 0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x00D0 */
- 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0, 0, 0xDF, /* 0x00D0 */
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x00E0 */
- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x00E0 */
- 0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x00F0 */
- 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0, 0, 0xFF /* 0x00F0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1254TOCHARTABEX_COUNT 31
-static ImplUniCharTabData const aImplMS1254ToCharTabEx[MS1254TOCHARTABEX_COUNT] =
-{
- { 0x011E, 0xD0, 0 },
- { 0x011F, 0xF0, 0 },
- { 0x0130, 0xDD, 0 },
- { 0x0131, 0xFD, 0 },
- { 0x0152, 0x8C, 0 },
- { 0x0153, 0x9C, 0 },
- { 0x015E, 0xDE, 0 },
- { 0x015F, 0xFE, 0 },
- { 0x0160, 0x8A, 0 },
- { 0x0161, 0x9A, 0 },
- { 0x0178, 0x9F, 0 },
- { 0x0192, 0x83, 0 },
- { 0x02C6, 0x88, 0 },
- { 0x02DC, 0x98, 0 },
- { 0x2013, 0x96, 0 },
- { 0x2014, 0x97, 0 },
- { 0x2018, 0x91, 0 },
- { 0x2019, 0x92, 0 },
- { 0x201A, 0x82, 0 },
- { 0x201C, 0x93, 0 },
- { 0x201D, 0x94, 0 },
- { 0x201E, 0x84, 0 },
- { 0x2020, 0x86, 0 },
- { 0x2021, 0x87, 0 },
- { 0x2022, 0x95, 0 },
- { 0x2026, 0x85, 0 },
- { 0x2030, 0x89, 0 },
- { 0x2039, 0x8B, 0 },
- { 0x203A, 0x9B, 0 },
- { 0x20AC, 0x80, 0 },
- { 0x2122, 0x99, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplMS1254ByteCvtData =
-{
- aImplMS1254ToUniTab,
- NULL,
- MS1254UNI_START, MS1254UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplMS1254ToCharTab,
- NULL,
- aImplMS1254ToCharTabEx,
- MS1254CHAR_START, MS1254CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- MS1254TOCHARTABEX_COUNT,
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplMS1254TextEncodingData
- = { { &aImplMS1254ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 162,
- "iso8859-9",
- "windows-1254",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* WIN, SCRIPT_TURKISH, pc code page 857, mac encoding 35 */
-
-/* ======================================================================= */
-
-/* MS-1257 */
-/* Windows Standard CharSet for Baltic */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/windows/cp1257.txt from 04/15/98 Version 2.01 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1257UNI_START 0x80
-#define MS1257UNI_END 0xFF
-static sal_uInt16 const aImplMS1257ToUniTab[MS1257UNI_END - MS1257UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x20AC, 0, 0x201A, 0, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
- 0, 0x2030, 0, 0x2039, 0, 0x00A8, 0x02C7, 0x00B8, /* 0x80 */
- 0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
- 0, 0x2122, 0, 0x203A, 0, 0x00AF, 0x02DB, 0, /* 0x90 */
- 0x00A0, 0, 0x00A2, 0x00A3, 0x00A4, 0, 0x00A6, 0x00A7, /* 0xA0 */
- 0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6, /* 0xA0 */
- 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
- 0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6, /* 0xB0 */
- 0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112, /* 0xC0 */
- 0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B, /* 0xC0 */
- 0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */
- 0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF, /* 0xD0 */
- 0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113, /* 0xE0 */
- 0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C, /* 0xE0 */
- 0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */
- 0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x02D9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1257CHAR_START 0x00A0
-#define MS1257CHAR_END 0x017E
-static sal_uChar const aImplMS1257ToCharTab[MS1257CHAR_END - MS1257CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA0, 0, 0xA2, 0xA3, 0xA4, 0, 0xA6, 0xA7, /* 0x00A0 */
- 0x8D, 0xA9, 0, 0xAB, 0xAC, 0xAD, 0xAE, 0x9D, /* 0x00A0 */
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x00B0 */
- 0x8F, 0xB9, 0, 0xBB, 0xBC, 0xBD, 0xBE, 0, /* 0x00B0 */
- 0, 0, 0, 0, 0xC4, 0xC5, 0xAF, 0, /* 0x00C0 */
- 0, 0xC9, 0, 0, 0, 0, 0, 0, /* 0x00C0 */
- 0, 0, 0, 0xD3, 0, 0xD5, 0xD6, 0xD7, /* 0x00D0 */
- 0xA8, 0, 0, 0, 0xDC, 0, 0, 0xDF, /* 0x00D0 */
- 0, 0, 0, 0, 0xE4, 0xE5, 0xBF, 0, /* 0x00E0 */
- 0, 0xE9, 0, 0, 0, 0, 0, 0, /* 0x00E0 */
- 0, 0, 0, 0xF3, 0, 0xF5, 0xF6, 0xF7, /* 0x00F0 */
- 0xB8, 0, 0, 0, 0xFC, 0, 0, 0, /* 0x00F0 */
- 0xC2, 0xE2, 0, 0, 0xC0, 0xE0, 0xC3, 0xE3, /* 0x0100 */
- 0, 0, 0, 0, 0xC8, 0xE8, 0, 0, /* 0x0100 */
- 0, 0, 0xC7, 0xE7, 0, 0, 0xCB, 0xEB, /* 0x0110 */
- 0xC6, 0xE6, 0, 0, 0, 0, 0, 0, /* 0x0110 */
- 0, 0, 0xCC, 0xEC, 0, 0, 0, 0, /* 0x0120 */
- 0, 0, 0xCE, 0xEE, 0, 0, 0xC1, 0xE1, /* 0x0120 */
- 0, 0, 0, 0, 0, 0, 0xCD, 0xED, /* 0x0130 */
- 0, 0, 0, 0xCF, 0xEF, 0, 0, 0, /* 0x0130 */
- 0, 0xD9, 0xF9, 0xD1, 0xF1, 0xD2, 0xF2, 0, /* 0x0140 */
- 0, 0, 0, 0, 0xD4, 0xF4, 0, 0, /* 0x0140 */
- 0, 0, 0, 0, 0, 0, 0xAA, 0xBA, /* 0x0150 */
- 0, 0, 0xDA, 0xFA, 0, 0, 0, 0, /* 0x0150 */
- 0xD0, 0xF0, 0, 0, 0, 0, 0, 0, /* 0x0160 */
- 0, 0, 0xDB, 0xFB, 0, 0, 0, 0, /* 0x0160 */
- 0, 0, 0xD8, 0xF8, 0, 0, 0, 0, /* 0x0170 */
- 0, 0xCA, 0xEA, 0xDD, 0xFD, 0xDE, 0xFE /* 0x0170 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1257TOCHARTABEX_COUNT 20
-static ImplUniCharTabData const aImplMS1257ToCharTabEx[MS1257TOCHARTABEX_COUNT] =
-{
- { 0x02C7, 0x8E, 0 },
- { 0x02D9, 0xFF, 0 },
- { 0x02DB, 0x9E, 0 },
- { 0x2013, 0x96, 0 },
- { 0x2014, 0x97, 0 },
- { 0x2018, 0x91, 0 },
- { 0x2019, 0x92, 0 },
- { 0x201A, 0x82, 0 },
- { 0x201C, 0x93, 0 },
- { 0x201D, 0x94, 0 },
- { 0x201E, 0x84, 0 },
- { 0x2020, 0x86, 0 },
- { 0x2021, 0x87, 0 },
- { 0x2022, 0x95, 0 },
- { 0x2026, 0x85, 0 },
- { 0x2030, 0x89, 0 },
- { 0x2039, 0x8B, 0 },
- { 0x203A, 0x9B, 0 },
- { 0x20AC, 0x80, 0 },
- { 0x2122, 0x99, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplMS1257ByteCvtData =
-{
- aImplMS1257ToUniTab,
- NULL,
- MS1257UNI_START, MS1257UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplMS1257ToCharTab,
- NULL,
- aImplMS1257ToCharTabEx,
- MS1257CHAR_START, MS1257CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- MS1257TOCHARTABEX_COUNT,
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplMS1257TextEncodingData
- = { { &aImplMS1257ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 186,
- "iso8859-4",
- "windows-1257",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* WIN, SCRIPT_BALTIC, pc code page 775, mac encoding 29 */
-
-/* ======================================================================= */
-
-/* ISO-8859-2 */
-/* Unix Standard for Eastern European (Latin2) */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */
-/* Convert-Tables: mappings/iso8859/8859-2.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
-/* Last-Changes from us: */
-
-#define ISO88592UNI_START 0xA0
-#define ISO88592UNI_END 0xFF
-static sal_uInt16 const aImplISO88592ToUniTab[ISO88592UNI_END - ISO88592UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00A0, 0x0104, 0x02D8, 0x0141, 0x00A4, 0x013D, 0x015A, 0x00A7, /* 0xA0 */
- 0x00A8, 0x0160, 0x015E, 0x0164, 0x0179, 0x00AD, 0x017D, 0x017B, /* 0xA0 */
- 0x00B0, 0x0105, 0x02DB, 0x0142, 0x00B4, 0x013E, 0x015B, 0x02C7, /* 0xB0 */
- 0x00B8, 0x0161, 0x015F, 0x0165, 0x017A, 0x02DD, 0x017E, 0x017C, /* 0xB0 */
- 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7, /* 0xC0 */
- 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E, /* 0xC0 */
- 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7, /* 0xD0 */
- 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF, /* 0xD0 */
- 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7, /* 0xE0 */
- 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, /* 0xE0 */
- 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, /* 0xF0 */
- 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define ISO88592TOCHARTABEX_COUNT 96
-static ImplUniCharTabData const aImplISO88592ToCharTabEx[ISO88592TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xA0, 0 },
- { 0x00A4, 0xA4, 0 },
- { 0x00A7, 0xA7, 0 },
- { 0x00A8, 0xA8, 0 },
- { 0x00AD, 0xAD, 0 },
- { 0x00B0, 0xB0, 0 },
- { 0x00B4, 0xB4, 0 },
- { 0x00B8, 0xB8, 0 },
- { 0x00C1, 0xC1, 0 },
- { 0x00C2, 0xC2, 0 },
- { 0x00C4, 0xC4, 0 },
- { 0x00C7, 0xC7, 0 },
- { 0x00C9, 0xC9, 0 },
- { 0x00CB, 0xCB, 0 },
- { 0x00CD, 0xCD, 0 },
- { 0x00CE, 0xCE, 0 },
- { 0x00D3, 0xD3, 0 },
- { 0x00D4, 0xD4, 0 },
- { 0x00D6, 0xD6, 0 },
- { 0x00D7, 0xD7, 0 },
- { 0x00DA, 0xDA, 0 },
- { 0x00DC, 0xDC, 0 },
- { 0x00DD, 0xDD, 0 },
- { 0x00DF, 0xDF, 0 },
- { 0x00E1, 0xE1, 0 },
- { 0x00E2, 0xE2, 0 },
- { 0x00E4, 0xE4, 0 },
- { 0x00E7, 0xE7, 0 },
- { 0x00E9, 0xE9, 0 },
- { 0x00EB, 0xEB, 0 },
- { 0x00ED, 0xED, 0 },
- { 0x00EE, 0xEE, 0 },
- { 0x00F3, 0xF3, 0 },
- { 0x00F4, 0xF4, 0 },
- { 0x00F6, 0xF6, 0 },
- { 0x00F7, 0xF7, 0 },
- { 0x00FA, 0xFA, 0 },
- { 0x00FC, 0xFC, 0 },
- { 0x00FD, 0xFD, 0 },
- { 0x0102, 0xC3, 0 },
- { 0x0103, 0xE3, 0 },
- { 0x0104, 0xA1, 0 },
- { 0x0105, 0xB1, 0 },
- { 0x0106, 0xC6, 0 },
- { 0x0107, 0xE6, 0 },
- { 0x010C, 0xC8, 0 },
- { 0x010D, 0xE8, 0 },
- { 0x010E, 0xCF, 0 },
- { 0x010F, 0xEF, 0 },
- { 0x0110, 0xD0, 0 },
- { 0x0111, 0xF0, 0 },
- { 0x0118, 0xCA, 0 },
- { 0x0119, 0xEA, 0 },
- { 0x011A, 0xCC, 0 },
- { 0x011B, 0xEC, 0 },
- { 0x0139, 0xC5, 0 },
- { 0x013A, 0xE5, 0 },
- { 0x013D, 0xA5, 0 },
- { 0x013E, 0xB5, 0 },
- { 0x0141, 0xA3, 0 },
- { 0x0142, 0xB3, 0 },
- { 0x0143, 0xD1, 0 },
- { 0x0144, 0xF1, 0 },
- { 0x0147, 0xD2, 0 },
- { 0x0148, 0xF2, 0 },
- { 0x0150, 0xD5, 0 },
- { 0x0151, 0xF5, 0 },
- { 0x0154, 0xC0, 0 },
- { 0x0155, 0xE0, 0 },
- { 0x0158, 0xD8, 0 },
- { 0x0159, 0xF8, 0 },
- { 0x015A, 0xA6, 0 },
- { 0x015B, 0xB6, 0 },
- { 0x015E, 0xAA, 0 },
- { 0x015F, 0xBA, 0 },
- { 0x0160, 0xA9, 0 },
- { 0x0161, 0xB9, 0 },
- { 0x0162, 0xDE, 0 },
- { 0x0163, 0xFE, 0 },
- { 0x0164, 0xAB, 0 },
- { 0x0165, 0xBB, 0 },
- { 0x016E, 0xD9, 0 },
- { 0x016F, 0xF9, 0 },
- { 0x0170, 0xDB, 0 },
- { 0x0171, 0xFB, 0 },
- { 0x0179, 0xAC, 0 },
- { 0x017A, 0xBC, 0 },
- { 0x017B, 0xAF, 0 },
- { 0x017C, 0xBF, 0 },
- { 0x017D, 0xAE, 0 },
- { 0x017E, 0xBE, 0 },
- { 0x02C7, 0xB7, 0 },
- { 0x02D8, 0xA2, 0 },
- { 0x02D9, 0xFF, 0 },
- { 0x02DB, 0xB2, 0 },
- { 0x02DD, 0xBD, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplISO88592ByteCvtData =
-{
- aImplISO88592ToUniTab,
- aImpl8090SameToUniTab,
- ISO88592UNI_START, ISO88592UNI_END,
- SAME8090UNI_START, SAME8090UNI_END,
- aImpl8090SameToCharTab,
- NULL,
- aImplISO88592ToCharTabEx,
- SAME8090CHAR_START, SAME8090CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- ISO88592TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplISO88592TextEncodingData
- = { { &aImplISO88592ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 238,
- "iso8859-2",
- "iso-8859-2",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */
-
-/* ======================================================================= */
-
-/* ISO-8859-3 */
-/* Latin3 (Esperanto, Maltese, Turkish) */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */
-/* Convert-Tables: mappings/iso8859/8859-3.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
-/* Last-Changes from us: */
-
-#define ISO88593UNI_START 0xA0
-#define ISO88593UNI_END 0xFF
-static sal_uInt16 const aImplISO88593ToUniTab[ISO88593UNI_END - ISO88593UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00A0, 0x0126, 0x02D8, 0x00A3, 0x00A4, 0, 0x0124, 0x00A7, /* 0xA0 */
- 0x00A8, 0x0130, 0x015E, 0x011E, 0x0134, 0x00AD, 0, 0x017B, /* 0xA0 */
- 0x00B0, 0x0127, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x0125, 0x00B7, /* 0xB0 */
- 0x00B8, 0x0131, 0x015F, 0x011F, 0x0135, 0x00BD, 0, 0x017C, /* 0xB0 */
- 0x00C0, 0x00C1, 0x00C2, 0, 0x00C4, 0x010A, 0x0108, 0x00C7, /* 0xC0 */
- 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */
- 0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x0120, 0x00D6, 0x00D7, /* 0xD0 */
- 0x011C, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x016C, 0x015C, 0x00DF, /* 0xD0 */
- 0x00E0, 0x00E1, 0x00E2, 0, 0x00E4, 0x010B, 0x0109, 0x00E7, /* 0xE0 */
- 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */
- 0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x0121, 0x00F6, 0x00F7, /* 0xF0 */
- 0x011D, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x016D, 0x015D, 0x02D9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define ISO88593TOCHARTABEX_COUNT 89
-static ImplUniCharTabData const aImplISO88593ToCharTabEx[ISO88593TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xA0, 0 },
- { 0x00A3, 0xA3, 0 },
- { 0x00A4, 0xA4, 0 },
- { 0x00A7, 0xA7, 0 },
- { 0x00A8, 0xA8, 0 },
- { 0x00AD, 0xAD, 0 },
- { 0x00B0, 0xB0, 0 },
- { 0x00B2, 0xB2, 0 },
- { 0x00B3, 0xB3, 0 },
- { 0x00B4, 0xB4, 0 },
- { 0x00B5, 0xB5, 0 },
- { 0x00B7, 0xB7, 0 },
- { 0x00B8, 0xB8, 0 },
- { 0x00BD, 0xBD, 0 },
- { 0x00C0, 0xC0, 0 },
- { 0x00C1, 0xC1, 0 },
- { 0x00C2, 0xC2, 0 },
- { 0x00C4, 0xC4, 0 },
- { 0x00C7, 0xC7, 0 },
- { 0x00C8, 0xC8, 0 },
- { 0x00C9, 0xC9, 0 },
- { 0x00CA, 0xCA, 0 },
- { 0x00CB, 0xCB, 0 },
- { 0x00CC, 0xCC, 0 },
- { 0x00CD, 0xCD, 0 },
- { 0x00CE, 0xCE, 0 },
- { 0x00CF, 0xCF, 0 },
- { 0x00D1, 0xD1, 0 },
- { 0x00D2, 0xD2, 0 },
- { 0x00D3, 0xD3, 0 },
- { 0x00D4, 0xD4, 0 },
- { 0x00D6, 0xD6, 0 },
- { 0x00D7, 0xD7, 0 },
- { 0x00D9, 0xD9, 0 },
- { 0x00DA, 0xDA, 0 },
- { 0x00DB, 0xDB, 0 },
- { 0x00DC, 0xDC, 0 },
- { 0x00DF, 0xDF, 0 },
- { 0x00E0, 0xE0, 0 },
- { 0x00E1, 0xE1, 0 },
- { 0x00E2, 0xE2, 0 },
- { 0x00E4, 0xE4, 0 },
- { 0x00E7, 0xE7, 0 },
- { 0x00E8, 0xE8, 0 },
- { 0x00E9, 0xE9, 0 },
- { 0x00EA, 0xEA, 0 },
- { 0x00EB, 0xEB, 0 },
- { 0x00EC, 0xEC, 0 },
- { 0x00ED, 0xED, 0 },
- { 0x00EE, 0xEE, 0 },
- { 0x00EF, 0xEF, 0 },
- { 0x00F1, 0xF1, 0 },
- { 0x00F2, 0xF2, 0 },
- { 0x00F3, 0xF3, 0 },
- { 0x00F4, 0xF4, 0 },
- { 0x00F6, 0xF6, 0 },
- { 0x00F7, 0xF7, 0 },
- { 0x00F9, 0xF9, 0 },
- { 0x00FA, 0xFA, 0 },
- { 0x00FB, 0xFB, 0 },
- { 0x00FC, 0xFC, 0 },
- { 0x0108, 0xC6, 0 },
- { 0x0109, 0xE6, 0 },
- { 0x010A, 0xC5, 0 },
- { 0x010B, 0xE5, 0 },
- { 0x011C, 0xD8, 0 },
- { 0x011D, 0xF8, 0 },
- { 0x011E, 0xAB, 0 },
- { 0x011F, 0xBB, 0 },
- { 0x0120, 0xD5, 0 },
- { 0x0121, 0xF5, 0 },
- { 0x0124, 0xA6, 0 },
- { 0x0125, 0xB6, 0 },
- { 0x0126, 0xA1, 0 },
- { 0x0127, 0xB1, 0 },
- { 0x0130, 0xA9, 0 },
- { 0x0131, 0xB9, 0 },
- { 0x0134, 0xAC, 0 },
- { 0x0135, 0xBC, 0 },
- { 0x015C, 0xDE, 0 },
- { 0x015D, 0xFE, 0 },
- { 0x015E, 0xAA, 0 },
- { 0x015F, 0xBA, 0 },
- { 0x016C, 0xDD, 0 },
- { 0x016D, 0xFD, 0 },
- { 0x017B, 0xAF, 0 },
- { 0x017C, 0xBF, 0 },
- { 0x02D8, 0xA2, 0 },
- { 0x02D9, 0xFF, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplISO88593ByteCvtData =
-{
- aImplISO88593ToUniTab,
- aImpl8090SameToUniTab,
- ISO88593UNI_START, ISO88593UNI_END,
- SAME8090UNI_START, SAME8090UNI_END,
- aImpl8090SameToCharTab,
- NULL,
- aImplISO88593ToCharTabEx,
- SAME8090CHAR_START, SAME8090CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- ISO88593TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplISO88593TextEncodingData
- = { { &aImplISO88593ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 0,
- "iso8859-3",
- "iso-8859-3",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_LATIN, pc code page 850 */
-
-/* ======================================================================= */
-
-/* ISO-8859-4 */
-/* Latin4 (Estonian, Latvian, Lithuanian) */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */
-/* Convert-Tables: mappings/iso8859/8859-4.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
-/* Last-Changes from us: */
-
-#define ISO88594UNI_START 0xA0
-#define ISO88594UNI_END 0xFF
-static sal_uInt16 const aImplISO88594ToUniTab[ISO88594UNI_END - ISO88594UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00A0, 0x0104, 0x0138, 0x0156, 0x00A4, 0x0128, 0x013B, 0x00A7, /* 0xA0 */
- 0x00A8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00AD, 0x017D, 0x00AF, /* 0xA0 */
- 0x00B0, 0x0105, 0x02DB, 0x0157, 0x00B4, 0x0129, 0x013C, 0x02C7, /* 0xB0 */
- 0x00B8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014A, 0x017E, 0x014B, /* 0xB0 */
- 0x0100, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x012E, /* 0xC0 */
- 0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x012A, /* 0xC0 */
- 0x0110, 0x0145, 0x014C, 0x0136, 0x00D4, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */
- 0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x0168, 0x016A, 0x00DF, /* 0xD0 */
- 0x0101, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x012F, /* 0xE0 */
- 0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x012B, /* 0xE0 */
- 0x0111, 0x0146, 0x014D, 0x0137, 0x00F4, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */
- 0x00F8, 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x0169, 0x016B, 0x02D9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define ISO88594TOCHARTABEX_COUNT 96
-static ImplUniCharTabData const aImplISO88594ToCharTabEx[ISO88594TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xA0, 0 },
- { 0x00A4, 0xA4, 0 },
- { 0x00A7, 0xA7, 0 },
- { 0x00A8, 0xA8, 0 },
- { 0x00AD, 0xAD, 0 },
- { 0x00AF, 0xAF, 0 },
- { 0x00B0, 0xB0, 0 },
- { 0x00B4, 0xB4, 0 },
- { 0x00B8, 0xB8, 0 },
- { 0x00C1, 0xC1, 0 },
- { 0x00C2, 0xC2, 0 },
- { 0x00C3, 0xC3, 0 },
- { 0x00C4, 0xC4, 0 },
- { 0x00C5, 0xC5, 0 },
- { 0x00C6, 0xC6, 0 },
- { 0x00C9, 0xC9, 0 },
- { 0x00CB, 0xCB, 0 },
- { 0x00CD, 0xCD, 0 },
- { 0x00CE, 0xCE, 0 },
- { 0x00D4, 0xD4, 0 },
- { 0x00D5, 0xD5, 0 },
- { 0x00D6, 0xD6, 0 },
- { 0x00D7, 0xD7, 0 },
- { 0x00D8, 0xD8, 0 },
- { 0x00DA, 0xDA, 0 },
- { 0x00DB, 0xDB, 0 },
- { 0x00DC, 0xDC, 0 },
- { 0x00DF, 0xDF, 0 },
- { 0x00E1, 0xE1, 0 },
- { 0x00E2, 0xE2, 0 },
- { 0x00E3, 0xE3, 0 },
- { 0x00E4, 0xE4, 0 },
- { 0x00E5, 0xE5, 0 },
- { 0x00E6, 0xE6, 0 },
- { 0x00E9, 0xE9, 0 },
- { 0x00EB, 0xEB, 0 },
- { 0x00ED, 0xED, 0 },
- { 0x00EE, 0xEE, 0 },
- { 0x00F4, 0xF4, 0 },
- { 0x00F5, 0xF5, 0 },
- { 0x00F6, 0xF6, 0 },
- { 0x00F7, 0xF7, 0 },
- { 0x00F8, 0xF8, 0 },
- { 0x00FA, 0xFA, 0 },
- { 0x00FB, 0xFB, 0 },
- { 0x00FC, 0xFC, 0 },
- { 0x0100, 0xC0, 0 },
- { 0x0101, 0xE0, 0 },
- { 0x0104, 0xA1, 0 },
- { 0x0105, 0xB1, 0 },
- { 0x010C, 0xC8, 0 },
- { 0x010D, 0xE8, 0 },
- { 0x0110, 0xD0, 0 },
- { 0x0111, 0xF0, 0 },
- { 0x0112, 0xAA, 0 },
- { 0x0113, 0xBA, 0 },
- { 0x0116, 0xCC, 0 },
- { 0x0117, 0xEC, 0 },
- { 0x0118, 0xCA, 0 },
- { 0x0119, 0xEA, 0 },
- { 0x0122, 0xAB, 0 },
- { 0x0123, 0xBB, 0 },
- { 0x0128, 0xA5, 0 },
- { 0x0129, 0xB5, 0 },
- { 0x012A, 0xCF, 0 },
- { 0x012B, 0xEF, 0 },
- { 0x012E, 0xC7, 0 },
- { 0x012F, 0xE7, 0 },
- { 0x0136, 0xD3, 0 },
- { 0x0137, 0xF3, 0 },
- { 0x0138, 0xA2, 0 },
- { 0x013B, 0xA6, 0 },
- { 0x013C, 0xB6, 0 },
- { 0x0145, 0xD1, 0 },
- { 0x0146, 0xF1, 0 },
- { 0x014A, 0xBD, 0 },
- { 0x014B, 0xBF, 0 },
- { 0x014C, 0xD2, 0 },
- { 0x014D, 0xF2, 0 },
- { 0x0156, 0xA3, 0 },
- { 0x0157, 0xB3, 0 },
- { 0x0160, 0xA9, 0 },
- { 0x0161, 0xB9, 0 },
- { 0x0166, 0xAC, 0 },
- { 0x0167, 0xBC, 0 },
- { 0x0168, 0xDD, 0 },
- { 0x0169, 0xFD, 0 },
- { 0x016A, 0xDE, 0 },
- { 0x016B, 0xFE, 0 },
- { 0x0172, 0xD9, 0 },
- { 0x0173, 0xF9, 0 },
- { 0x017D, 0xAE, 0 },
- { 0x017E, 0xBE, 0 },
- { 0x02C7, 0xB7, 0 },
- { 0x02D9, 0xFF, 0 },
- { 0x02DB, 0xB2, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplISO88594ByteCvtData =
-{
- aImplISO88594ToUniTab,
- aImpl8090SameToUniTab,
- ISO88594UNI_START, ISO88594UNI_END,
- SAME8090UNI_START, SAME8090UNI_END,
- aImpl8090SameToCharTab,
- NULL,
- aImplISO88594ToCharTabEx,
- SAME8090CHAR_START, SAME8090CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- ISO88594TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplISO88594TextEncodingData
- = { { &aImplISO88594ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 186,
- "iso8859-4",
- "iso-8859-4",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_BALTIC, pc code page 775, mac encoding 29 (?) */
-
-/* ======================================================================= */
-
-/* ISO-8859-5 */
-/* Unix Standard for Cyrillic */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */
-/* Convert-Tables: mappings/iso8859/8859-5.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
-/* Last-Changes from us: */
-
-#define ISO88595UNI_START 0xA0
-#define ISO88595UNI_END 0xFF
-static sal_uInt16 const aImplISO88595ToUniTab[ISO88595UNI_END - ISO88595UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00A0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, /* 0xA0 */
- 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x00AD, 0x040E, 0x040F, /* 0xA0 */
- 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* 0xB0 */
- 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, /* 0xB0 */
- 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0xC0 */
- 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0xC0 */
- 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* 0xD0 */
- 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, /* 0xD0 */
- 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* 0xE0 */
- 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, /* 0xE0 */
- 0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, /* 0xF0 */
- 0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x00A7, 0x045E, 0x045F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define ISO88595CHAR_START 0x0401
-#define ISO88595CHAR_END 0x045F
-static sal_uChar const aImplISO88595ToCharTab[ISO88595CHAR_END - ISO88595CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x0400 */
- 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0, 0xAE, 0xAF, /* 0x0400 */
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x0410 */
- 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, /* 0x0410 */
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x0420 */
- 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x0420 */
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x0430 */
- 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, /* 0x0430 */
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0440 */
- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0440 */
- 0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x0450 */
- 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0, 0xFE, 0xFF, /* 0x0450 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define ISO88595TOCHARTABEX_COUNT 4
-static ImplUniCharTabData const aImplISO88595ToCharTabEx[ISO88595TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xA0, 0 },
- { 0x00A7, 0xFD, 0 },
- { 0x00AD, 0xAD, 0 },
- { 0x2116, 0xF0, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplISO88595ByteCvtData =
-{
- aImplISO88595ToUniTab,
- aImpl8090SameToUniTab,
- ISO88595UNI_START, ISO88595UNI_END,
- SAME8090UNI_START, SAME8090UNI_END,
- aImplISO88595ToCharTab,
- aImpl8090SameToCharTab,
- aImplISO88595ToCharTabEx,
- ISO88595CHAR_START, ISO88595CHAR_END,
- SAME8090CHAR_START, SAME8090CHAR_END,
- ISO88595TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplISO88595TextEncodingData
- = { { &aImplISO88595ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 204,
- "iso8859-5",
- "iso-8859-5",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_CYRILLIC, pc code page 866 (855?), mac encoding 7 */
-
-/* ======================================================================= */
-
-/* ISO-8859-7 */
-/* Unix Standard for Greek */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */
-/* Convert-Tables: mappings/iso8859/8859-7.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
-/* Last-Changes from us: */
-
-#define ISO88597UNI_START 0xA0
-#define ISO88597UNI_END 0xFF
-static sal_uInt16 const aImplISO88597ToUniTab[ISO88597UNI_END - ISO88597UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00A0, 0x2018, 0x2019, 0x00A3, 0, 0, 0x00A6, 0x00A7, /* 0xA0 */
- 0x00A8, 0x00A9, 0, 0x00AB, 0x00AC, 0x00AD, 0, 0x2015, /* 0xA0 */
- 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x0385, 0x0386, 0x00B7, /* 0xB0 */
- 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F, /* 0xB0 */
- 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, /* 0xC0 */
- 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, /* 0xC0 */
- 0x03A0, 0x03A1, 0, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, /* 0xD0 */
- 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF, /* 0xD0 */
- 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, /* 0xE0 */
- 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, /* 0xE0 */
- 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, /* 0xF0 */
- 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define ISO88597CHAR_START 0x0384
-#define ISO88597CHAR_END 0x03CE
-static sal_uChar const aImplISO88597ToCharTab[ISO88597CHAR_END - ISO88597CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB4, 0xB5, 0xB6, 0, /* 0x0380 */
- 0xB8, 0xB9, 0xBA, 0, 0xBC, 0, 0xBE, 0xBF, /* 0x0380 */
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x0390 */
- 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x0390 */
- 0xD0, 0xD1, 0, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x03A0 */
- 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, /* 0x03A0 */
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x03B0 */
- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x03B0 */
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x03C0 */
- 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE /* 0x03C0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define ISO88597TOCHARTABEX_COUNT 19
-static ImplUniCharTabData const aImplISO88597ToCharTabEx[ISO88597TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xA0, 0 },
- { 0x00A3, 0xA3, 0 },
- { 0x00A6, 0xA6, 0 },
- { 0x00A7, 0xA7, 0 },
- { 0x00A8, 0xA8, 0 },
- { 0x00A9, 0xA9, 0 },
- { 0x00AB, 0xAB, 0 },
- { 0x00AC, 0xAC, 0 },
- { 0x00AD, 0xAD, 0 },
- { 0x00B0, 0xB0, 0 },
- { 0x00B1, 0xB1, 0 },
- { 0x00B2, 0xB2, 0 },
- { 0x00B3, 0xB3, 0 },
- { 0x00B7, 0xB7, 0 },
- { 0x00BB, 0xBB, 0 },
- { 0x00BD, 0xBD, 0 },
- { 0x2015, 0xAF, 0 },
- { 0x2018, 0xA1, 0 },
- { 0x2019, 0xA2, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplISO88597ByteCvtData =
-{
- aImplISO88597ToUniTab,
- aImpl8090SameToUniTab,
- ISO88597UNI_START, ISO88597UNI_END,
- SAME8090UNI_START, SAME8090UNI_END,
- aImplISO88597ToCharTab,
- aImpl8090SameToCharTab,
- aImplISO88597ToCharTabEx,
- ISO88597CHAR_START, ISO88597CHAR_END,
- SAME8090CHAR_START, SAME8090CHAR_END,
- ISO88597TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplISO88597TextEncodingData
- = { { &aImplISO88597ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 161,
- "iso8859-7",
- "iso-8859-7",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_GREEK, pc code page 869, mac encoding 6 */
-
-/* ======================================================================= */
-
-/* ISO-8859-9 */
-/* Latin5 (Turkish) */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */
-/* Convert-Tables: mappings/iso8859/8859-9.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
-/* Last-Changes from us: */
-
-#define ISO88599UNI_START 0xA0
-#define ISO88599UNI_END 0xFF
-static sal_uInt16 const aImplISO88599ToUniTab[ISO88599UNI_END - ISO88599UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */
- 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0xA0 */
- 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
- 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, /* 0xB0 */
- 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, /* 0xC0 */
- 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */
- 0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */
- 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF, /* 0xD0 */
- 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, /* 0xE0 */
- 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */
- 0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */
- 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define ISO88599CHAR_START 0x00A0
-#define ISO88599CHAR_END 0x00FF
-static sal_uChar const aImplISO88599ToCharTab[ISO88599CHAR_END - ISO88599CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x00A0 */
- 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, /* 0x00A0 */
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x00B0 */
- 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, /* 0x00B0 */
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x00C0 */
- 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x00C0 */
- 0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x00D0 */
- 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0, 0, 0xDF, /* 0x00D0 */
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x00E0 */
- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x00E0 */
- 0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x00F0 */
- 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0, 0, 0xFF /* 0x00F0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define ISO88599TOCHARTABEX_COUNT 6
-static ImplUniCharTabData const aImplISO88599ToCharTabEx[ISO88599TOCHARTABEX_COUNT] =
-{
- { 0x011E, 0xD0, 0 },
- { 0x011F, 0xF0, 0 },
- { 0x0130, 0xDD, 0 },
- { 0x0131, 0xFD, 0 },
- { 0x015E, 0xDE, 0 },
- { 0x015F, 0xFE, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplISO88599ByteCvtData =
-{
- aImplISO88599ToUniTab,
- aImpl8090SameToUniTab,
- ISO88599UNI_START, ISO88599UNI_END,
- SAME8090UNI_START, SAME8090UNI_END,
- aImplISO88599ToCharTab,
- aImpl8090SameToCharTab,
- aImplISO88599ToCharTabEx,
- ISO88599CHAR_START, ISO88599CHAR_END,
- SAME8090CHAR_START, SAME8090CHAR_END,
- ISO88599TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplISO88599TextEncodingData
- = { { &aImplISO88599ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 162,
- "iso8859-9",
- "iso-8859-9",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_TURKISH, pc code page 857, mac encoding 35 */
-
-/* ======================================================================= */
-
-/* ISO-8859-10 */
-/* East European */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */
-/* Convert-Tables: mappings/iso8859/8859-10.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
-/* Last-Changes from us: */
-
-#define ISO885910UNI_START 0xA0
-#define ISO885910UNI_END 0xFF
-static sal_uInt16 const aImplISO885910ToUniTab[ISO885910UNI_END - ISO885910UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00A0, 0x0104, 0x0112, 0x0122, 0x012A, 0x0128, 0x0136, 0x00A7, /* 0xA0 */
- 0x013B, 0x0110, 0x0160, 0x0166, 0x017D, 0x00AD, 0x016A, 0x014A, /* 0xA0 */
- 0x00B0, 0x0105, 0x0113, 0x0123, 0x012B, 0x0129, 0x0137, 0x00B7, /* 0xB0 */
- 0x013C, 0x0111, 0x0161, 0x0167, 0x017E, 0x2015, 0x016B, 0x014B, /* 0xB0 */
- 0x0100, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x012E, /* 0xC0 */
- 0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */
- 0x00D0, 0x0145, 0x014C, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x0168, /* 0xD0 */
- 0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, /* 0xD0 */
- 0x0101, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x012F, /* 0xE0 */
- 0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */
- 0x00F0, 0x0146, 0x014D, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x0169, /* 0xF0 */
- 0x00F8, 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x0138 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define ISO885910CHAR_START 0x00C1
-#define ISO885910CHAR_END 0x00FE
-static sal_uChar const aImplISO885910ToCharTab[ISO885910CHAR_END - ISO885910CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0, /* 0x00C0 */
- 0, 0xC9, 0, 0xCB, 0, 0xCD, 0xCE, 0xCF, /* 0x00C0 */
- 0xD0, 0, 0, 0xD3, 0xD4, 0xD5, 0xD6, 0, /* 0x00D0 */
- 0xD8, 0, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, /* 0x00D0 */
- 0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0, /* 0x00E0 */
- 0, 0xE9, 0, 0xEB, 0, 0xED, 0xEE, 0xEF, /* 0x00E0 */
- 0xF0, 0, 0, 0xF3, 0xF4, 0xF5, 0xF6, 0, /* 0x00F0 */
- 0xF8, 0, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE /* 0x00F0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define ISO885910TOCHARTABEX_COUNT 51
-static ImplUniCharTabData const aImplISO885910ToCharTabEx[ISO885910TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xA0, 0 },
- { 0x00A7, 0xA7, 0 },
- { 0x00AD, 0xAD, 0 },
- { 0x00B0, 0xB0, 0 },
- { 0x00B7, 0xB7, 0 },
- { 0x0100, 0xC0, 0 },
- { 0x0101, 0xE0, 0 },
- { 0x0104, 0xA1, 0 },
- { 0x0105, 0xB1, 0 },
- { 0x010C, 0xC8, 0 },
- { 0x010D, 0xE8, 0 },
- { 0x0110, 0xA9, 0 },
- { 0x0111, 0xB9, 0 },
- { 0x0112, 0xA2, 0 },
- { 0x0113, 0xB2, 0 },
- { 0x0116, 0xCC, 0 },
- { 0x0117, 0xEC, 0 },
- { 0x0118, 0xCA, 0 },
- { 0x0119, 0xEA, 0 },
- { 0x0122, 0xA3, 0 },
- { 0x0123, 0xB3, 0 },
- { 0x0128, 0xA5, 0 },
- { 0x0129, 0xB5, 0 },
- { 0x012A, 0xA4, 0 },
- { 0x012B, 0xB4, 0 },
- { 0x012E, 0xC7, 0 },
- { 0x012F, 0xE7, 0 },
- { 0x0136, 0xA6, 0 },
- { 0x0137, 0xB6, 0 },
- { 0x0138, 0xFF, 0 },
- { 0x013B, 0xA8, 0 },
- { 0x013C, 0xB8, 0 },
- { 0x0145, 0xD1, 0 },
- { 0x0146, 0xF1, 0 },
- { 0x014A, 0xAF, 0 },
- { 0x014B, 0xBF, 0 },
- { 0x014C, 0xD2, 0 },
- { 0x014D, 0xF2, 0 },
- { 0x0160, 0xAA, 0 },
- { 0x0161, 0xBA, 0 },
- { 0x0166, 0xAB, 0 },
- { 0x0167, 0xBB, 0 },
- { 0x0168, 0xD7, 0 },
- { 0x0169, 0xF7, 0 },
- { 0x016A, 0xAE, 0 },
- { 0x016B, 0xBE, 0 },
- { 0x0172, 0xD9, 0 },
- { 0x0173, 0xF9, 0 },
- { 0x017D, 0xAC, 0 },
- { 0x017E, 0xBC, 0 },
- { 0x2015, 0xBD, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplISO885910ByteCvtData =
-{
- aImplISO885910ToUniTab,
- aImpl8090SameToUniTab,
- ISO885910UNI_START, ISO885910UNI_END,
- SAME8090UNI_START, SAME8090UNI_END,
- aImplISO885910ToCharTab,
- aImpl8090SameToCharTab,
- aImplISO885910ToCharTabEx,
- ISO885910CHAR_START, ISO885910CHAR_END,
- SAME8090CHAR_START, SAME8090CHAR_END,
- ISO885910TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplISO885910TextEncodingData
- = { { &aImplISO885910ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 238,
- "iso8859-10",
- "iso-8859-10",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */
-
-/* ======================================================================= */
-
-/* ISO-8859-13 */
-/* East European */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */
-/* Convert-Tables: mappings/iso8859/8859-13.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
-/* Last-Changes from us: */
-
-#define ISO885913UNI_START 0xA0
-#define ISO885913UNI_END 0xFF
-static sal_uInt16 const aImplISO885913ToUniTab[ISO885913UNI_END - ISO885913UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00A0, 0x201D, 0x00A2, 0x00A3, 0x00A4, 0x201E, 0x00A6, 0x00A7, /* 0xA0 */
- 0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6, /* 0xA0 */
- 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x201C, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
- 0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6, /* 0xB0 */
- 0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112, /* 0xC0 */
- 0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B, /* 0xC0 */
- 0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */
- 0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF, /* 0xD0 */
- 0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113, /* 0xE0 */
- 0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C, /* 0xE0 */
- 0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */
- 0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x2019 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define ISO885913TOCHARTABEX_COUNT 96
-static ImplUniCharTabData const aImplISO885913ToCharTabEx[ISO885913TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xA0, 0 },
- { 0x00A2, 0xA2, 0 },
- { 0x00A3, 0xA3, 0 },
- { 0x00A4, 0xA4, 0 },
- { 0x00A6, 0xA6, 0 },
- { 0x00A7, 0xA7, 0 },
- { 0x00A9, 0xA9, 0 },
- { 0x00AB, 0xAB, 0 },
- { 0x00AC, 0xAC, 0 },
- { 0x00AD, 0xAD, 0 },
- { 0x00AE, 0xAE, 0 },
- { 0x00B0, 0xB0, 0 },
- { 0x00B1, 0xB1, 0 },
- { 0x00B2, 0xB2, 0 },
- { 0x00B3, 0xB3, 0 },
- { 0x00B5, 0xB5, 0 },
- { 0x00B6, 0xB6, 0 },
- { 0x00B7, 0xB7, 0 },
- { 0x00B9, 0xB9, 0 },
- { 0x00BB, 0xBB, 0 },
- { 0x00BC, 0xBC, 0 },
- { 0x00BD, 0xBD, 0 },
- { 0x00BE, 0xBE, 0 },
- { 0x00C4, 0xC4, 0 },
- { 0x00C5, 0xC5, 0 },
- { 0x00C6, 0xAF, 0 },
- { 0x00C9, 0xC9, 0 },
- { 0x00D3, 0xD3, 0 },
- { 0x00D5, 0xD5, 0 },
- { 0x00D6, 0xD6, 0 },
- { 0x00D7, 0xD7, 0 },
- { 0x00D8, 0xA8, 0 },
- { 0x00DC, 0xDC, 0 },
- { 0x00DF, 0xDF, 0 },
- { 0x00E4, 0xE4, 0 },
- { 0x00E5, 0xE5, 0 },
- { 0x00E6, 0xBF, 0 },
- { 0x00E9, 0xE9, 0 },
- { 0x00F3, 0xF3, 0 },
- { 0x00F5, 0xF5, 0 },
- { 0x00F6, 0xF6, 0 },
- { 0x00F7, 0xF7, 0 },
- { 0x00F8, 0xB8, 0 },
- { 0x00FC, 0xFC, 0 },
- { 0x0100, 0xC2, 0 },
- { 0x0101, 0xE2, 0 },
- { 0x0104, 0xC0, 0 },
- { 0x0105, 0xE0, 0 },
- { 0x0106, 0xC3, 0 },
- { 0x0107, 0xE3, 0 },
- { 0x010C, 0xC8, 0 },
- { 0x010D, 0xE8, 0 },
- { 0x0112, 0xC7, 0 },
- { 0x0113, 0xE7, 0 },
- { 0x0116, 0xCB, 0 },
- { 0x0117, 0xEB, 0 },
- { 0x0118, 0xC6, 0 },
- { 0x0119, 0xE6, 0 },
- { 0x0122, 0xCC, 0 },
- { 0x0123, 0xEC, 0 },
- { 0x012A, 0xCE, 0 },
- { 0x012B, 0xEE, 0 },
- { 0x012E, 0xC1, 0 },
- { 0x012F, 0xE1, 0 },
- { 0x0136, 0xCD, 0 },
- { 0x0137, 0xED, 0 },
- { 0x013B, 0xCF, 0 },
- { 0x013C, 0xEF, 0 },
- { 0x0141, 0xD9, 0 },
- { 0x0142, 0xF9, 0 },
- { 0x0143, 0xD1, 0 },
- { 0x0144, 0xF1, 0 },
- { 0x0145, 0xD2, 0 },
- { 0x0146, 0xF2, 0 },
- { 0x014C, 0xD4, 0 },
- { 0x014D, 0xF4, 0 },
- { 0x0156, 0xAA, 0 },
- { 0x0157, 0xBA, 0 },
- { 0x015A, 0xDA, 0 },
- { 0x015B, 0xFA, 0 },
- { 0x0160, 0xD0, 0 },
- { 0x0161, 0xF0, 0 },
- { 0x016A, 0xDB, 0 },
- { 0x016B, 0xFB, 0 },
- { 0x0172, 0xD8, 0 },
- { 0x0173, 0xF8, 0 },
- { 0x0179, 0xCA, 0 },
- { 0x017A, 0xEA, 0 },
- { 0x017B, 0xDD, 0 },
- { 0x017C, 0xFD, 0 },
- { 0x017D, 0xDE, 0 },
- { 0x017E, 0xFE, 0 },
- { 0x2019, 0xFF, 0 },
- { 0x201C, 0xB4, 0 },
- { 0x201D, 0xA1, 0 },
- { 0x201E, 0xA5, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplISO885913ByteCvtData =
-{
- aImplISO885913ToUniTab,
- aImpl8090SameToUniTab,
- ISO885913UNI_START, ISO885913UNI_END,
- SAME8090UNI_START, SAME8090UNI_END,
- aImpl8090SameToCharTab,
- NULL,
- aImplISO885913ToCharTabEx,
- SAME8090CHAR_START, SAME8090CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- ISO885913TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplISO885913TextEncodingData
- = { { &aImplISO885913ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 238,
- "iso8859-13",
- "iso-8859-13",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */
-
-/* ======================================================================= */
-
-/* APPLE-CentEuro */
-/* Apple CharSet for Eastern Europa (Polish, Czech, Slovak, Hungarian, Estonian, Latvian, Lithuanian) */
-/* 1-Byte, 0x00-0x7F ASCII, jedoch eigentich Sonderzeichen zwischen 0x00-0x1F */
-/* die wir aber nicht beruecksichtigen */
-/* Convert-Tables: mappings/vendors/apple/centeuro.txt from 02/05/98 */
-/* Last-Changes from us: */
-
-#define APPLECENTEUROUNI_START 0x80
-#define APPLECENTEUROUNI_END 0xFF
-static sal_uInt16 const aImplAPPLECENTEUROToUniTab[APPLECENTEUROUNI_END - APPLECENTEUROUNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00C4, 0x0100, 0x0101, 0x00C9, 0x0104, 0x00D6, 0x00DC, 0x00E1, /* 0x80 */
- 0x0105, 0x010C, 0x00E4, 0x010D, 0x0106, 0x0107, 0x00E9, 0x0179, /* 0x80 */
- 0x017A, 0x010E, 0x00ED, 0x010F, 0x0112, 0x0113, 0x0116, 0x00F3, /* 0x90 */
- 0x0117, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x011A, 0x011B, 0x00FC, /* 0x90 */
- 0x2020, 0x00B0, 0x0118, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, /* 0xA0 */
- 0x00AE, 0x00A9, 0x2122, 0x0119, 0x00A8, 0x2260, 0x0123, 0x012E, /* 0xA0 */
- 0x012F, 0x012A, 0x2264, 0x2265, 0x012B, 0x0136, 0x2202, 0x2211, /* 0xB0 */
- 0x0142, 0x013B, 0x013C, 0x013D, 0x013E, 0x0139, 0x013A, 0x0145, /* 0xB0 */
- 0x0146, 0x0143, 0x00AC, 0x221A, 0x0144, 0x0147, 0x2206, 0x00AB, /* 0xC0 */
- 0x00BB, 0x2026, 0x00A0, 0x0148, 0x0150, 0x00D5, 0x0151, 0x014C, /* 0xC0 */
- 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, /* 0xD0 */
- 0x014D, 0x0154, 0x0155, 0x0158, 0x2039, 0x203A, 0x0159, 0x0156, /* 0xD0 */
- 0x0157, 0x0160, 0x201A, 0x201E, 0x0161, 0x015A, 0x015B, 0x00C1, /* 0xE0 */
- 0x0164, 0x0165, 0x00CD, 0x017D, 0x017E, 0x016A, 0x00D3, 0x00D4, /* 0xE0 */
- 0x016B, 0x016E, 0x00DA, 0x016F, 0x0170, 0x0171, 0x0172, 0x0173, /* 0xF0 */
- 0x00DD, 0x00FD, 0x0137, 0x017B, 0x0141, 0x017C, 0x0122, 0x02C7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define APPLECENTEUROTOCHARTABEX_COUNT 128
-static ImplUniCharTabData const aImplAPPLECENTEUROToCharTabEx[APPLECENTEUROTOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xCA, 0 },
- { 0x00A3, 0xA3, 0 },
- { 0x00A7, 0xA4, 0 },
- { 0x00A8, 0xAC, 0 },
- { 0x00A9, 0xA9, 0 },
- { 0x00AB, 0xC7, 0 },
- { 0x00AC, 0xC2, 0 },
- { 0x00AE, 0xA8, 0 },
- { 0x00B0, 0xA1, 0 },
- { 0x00B6, 0xA6, 0 },
- { 0x00BB, 0xC8, 0 },
- { 0x00C1, 0xE7, 0 },
- { 0x00C4, 0x80, 0 },
- { 0x00C9, 0x83, 0 },
- { 0x00CD, 0xEA, 0 },
- { 0x00D3, 0xEE, 0 },
- { 0x00D4, 0xEF, 0 },
- { 0x00D5, 0xCD, 0 },
- { 0x00D6, 0x85, 0 },
- { 0x00DA, 0xF2, 0 },
- { 0x00DC, 0x86, 0 },
- { 0x00DD, 0xF8, 0 },
- { 0x00DF, 0xA7, 0 },
- { 0x00E1, 0x87, 0 },
- { 0x00E4, 0x8A, 0 },
- { 0x00E9, 0x8E, 0 },
- { 0x00ED, 0x92, 0 },
- { 0x00F3, 0x97, 0 },
- { 0x00F4, 0x99, 0 },
- { 0x00F5, 0x9B, 0 },
- { 0x00F6, 0x9A, 0 },
- { 0x00F7, 0xD6, 0 },
- { 0x00FA, 0x9C, 0 },
- { 0x00FC, 0x9F, 0 },
- { 0x00FD, 0xF9, 0 },
- { 0x0100, 0x81, 0 },
- { 0x0101, 0x82, 0 },
- { 0x0104, 0x84, 0 },
- { 0x0105, 0x88, 0 },
- { 0x0106, 0x8C, 0 },
- { 0x0107, 0x8D, 0 },
- { 0x010C, 0x89, 0 },
- { 0x010D, 0x8B, 0 },
- { 0x010E, 0x91, 0 },
- { 0x010F, 0x93, 0 },
- { 0x0112, 0x94, 0 },
- { 0x0113, 0x95, 0 },
- { 0x0116, 0x96, 0 },
- { 0x0117, 0x98, 0 },
- { 0x0118, 0xA2, 0 },
- { 0x0119, 0xAB, 0 },
- { 0x011A, 0x9D, 0 },
- { 0x011B, 0x9E, 0 },
- { 0x0122, 0xFE, 0 },
- { 0x0123, 0xAE, 0 },
- { 0x012A, 0xB1, 0 },
- { 0x012B, 0xB4, 0 },
- { 0x012E, 0xAF, 0 },
- { 0x012F, 0xB0, 0 },
- { 0x0136, 0xB5, 0 },
- { 0x0137, 0xFA, 0 },
- { 0x0139, 0xBD, 0 },
- { 0x013A, 0xBE, 0 },
- { 0x013B, 0xB9, 0 },
- { 0x013C, 0xBA, 0 },
- { 0x013D, 0xBB, 0 },
- { 0x013E, 0xBC, 0 },
- { 0x0141, 0xFC, 0 },
- { 0x0142, 0xB8, 0 },
- { 0x0143, 0xC1, 0 },
- { 0x0144, 0xC4, 0 },
- { 0x0145, 0xBF, 0 },
- { 0x0146, 0xC0, 0 },
- { 0x0147, 0xC5, 0 },
- { 0x0148, 0xCB, 0 },
- { 0x014C, 0xCF, 0 },
- { 0x014D, 0xD8, 0 },
- { 0x0150, 0xCC, 0 },
- { 0x0151, 0xCE, 0 },
- { 0x0154, 0xD9, 0 },
- { 0x0155, 0xDA, 0 },
- { 0x0156, 0xDF, 0 },
- { 0x0157, 0xE0, 0 },
- { 0x0158, 0xDB, 0 },
- { 0x0159, 0xDE, 0 },
- { 0x015A, 0xE5, 0 },
- { 0x015B, 0xE6, 0 },
- { 0x0160, 0xE1, 0 },
- { 0x0161, 0xE4, 0 },
- { 0x0164, 0xE8, 0 },
- { 0x0165, 0xE9, 0 },
- { 0x016A, 0xED, 0 },
- { 0x016B, 0xF0, 0 },
- { 0x016E, 0xF1, 0 },
- { 0x016F, 0xF3, 0 },
- { 0x0170, 0xF4, 0 },
- { 0x0171, 0xF5, 0 },
- { 0x0172, 0xF6, 0 },
- { 0x0173, 0xF7, 0 },
- { 0x0179, 0x8F, 0 },
- { 0x017A, 0x90, 0 },
- { 0x017B, 0xFB, 0 },
- { 0x017C, 0xFD, 0 },
- { 0x017D, 0xEB, 0 },
- { 0x017E, 0xEC, 0 },
- { 0x02C7, 0xFF, 0 },
- { 0x2013, 0xD0, 0 },
- { 0x2014, 0xD1, 0 },
- { 0x2018, 0xD4, 0 },
- { 0x2019, 0xD5, 0 },
- { 0x201A, 0xE2, 0 },
- { 0x201C, 0xD2, 0 },
- { 0x201D, 0xD3, 0 },
- { 0x201E, 0xE3, 0 },
- { 0x2020, 0xA0, 0 },
- { 0x2022, 0xA5, 0 },
- { 0x2026, 0xC9, 0 },
- { 0x2039, 0xDC, 0 },
- { 0x203A, 0xDD, 0 },
- { 0x2122, 0xAA, 0 },
- { 0x2202, 0xB6, 0 },
- { 0x2206, 0xC6, 0 },
- { 0x2211, 0xB7, 0 },
- { 0x221A, 0xC3, 0 },
- { 0x2260, 0xAD, 0 },
- { 0x2264, 0xB2, 0 },
- { 0x2265, 0xB3, 0 },
- { 0x25CA, 0xD7, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplAPPLECENTEUROByteCvtData =
-{
- aImplAPPLECENTEUROToUniTab,
- NULL,
- APPLECENTEUROUNI_START, APPLECENTEUROUNI_END,
- NOTABUNI_START, NOTABUNI_END,
- NULL,
- NULL,
- aImplAPPLECENTEUROToCharTabEx,
- NOTABCHAR_START, NOTABCHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- APPLECENTEUROTOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplAPPLECENTEUROTextEncodingData
- = { { &aImplAPPLECENTEUROByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 238,
- "iso8859-2",
- "iso-8859-2",
- RTL_TEXTENCODING_INFO_ASCII };
- /* MAC, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */
-
-/* ======================================================================= */
-
-/* APPLE-Croatian */
-/* Standard Apple CharSet for Croatian */
-/* 1-Byte, 0x00-0x7F ASCII, jedoch eigentich Sonderzeichen zwischen 0x00-0x1F */
-/* die wir aber nicht beruecksichtigen */
-/* Convert-Tables: mappings/vendors/apple/croatien.txt from 02/05/98 */
-/* Last-Changes from us: */
-
-#define APPLECROATIANUNI_START 0x80
-#define APPLECROATIANUNI_END 0xFF
-static sal_uInt16 const aImplAPPLECROATIANToUniTab[APPLECROATIANUNI_END - APPLECROATIANUNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, /* 0x80 */
- 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, /* 0x80 */
- 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, /* 0x90 */
- 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, /* 0x90 */
- 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, /* 0xA0 */
- 0x00AE, 0x0160, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x017D, 0x00D8, /* 0xA0 */
- 0x221E, 0x00B1, 0x2264, 0x2265, 0x2206, 0x00B5, 0x2202, 0x2211, /* 0xB0 */
- 0x220F, 0x0161, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x017E, 0x00F8, /* 0xB0 */
- 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x0106, 0x00AB, /* 0xC0 */
- 0x010C, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, /* 0xC0 */
- 0x0110, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, /* 0xD0 */
- 0xF8FF, 0x00A9, 0x2044, 0x00A4, 0x2039, 0x203A, 0x00C6, 0x00BB, /* 0xD0 */
- 0x2013, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x0107, 0x00C1, /* 0xE0 */
- 0x010D, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, /* 0xE0 */
- 0x0111, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC, /* 0xF0 */
- 0x00AF, 0x03C0, 0x00CB, 0x02DA, 0x00B8, 0x00CA, 0x00E6, 0x02C7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define APPLECROATIANCHAR_START 0x00A0
-#define APPLECROATIANCHAR_END 0x00FC
-static sal_uChar const aImplAPPLECROATIANToCharTab[APPLECROATIANCHAR_END - APPLECROATIANCHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCA, 0xC1, 0xA2, 0xA3, 0xDB, 0, 0, 0xA4, /* 0x00A0 */
- 0xAC, 0xD9, 0xBB, 0xC7, 0xC2, 0, 0xA8, 0xF8, /* 0x00A0 */
- 0xA1, 0xB1, 0, 0, 0xAB, 0xB5, 0xA6, 0xE1, /* 0x00B0 */
- 0xFC, 0, 0xBC, 0xDF, 0, 0, 0, 0xC0, /* 0x00B0 */
- 0xCB, 0xE7, 0xE5, 0xCC, 0x80, 0x81, 0xDE, 0x82, /* 0x00C0 */
- 0xE9, 0x83, 0xFD, 0xFA, 0xED, 0xEA, 0xEB, 0xEC, /* 0x00C0 */
- 0, 0x84, 0xF1, 0xEE, 0xEF, 0xCD, 0x85, 0, /* 0x00D0 */
- 0xAF, 0xF4, 0xF2, 0xF3, 0x86, 0, 0, 0xA7, /* 0x00D0 */
- 0x88, 0x87, 0x89, 0x8B, 0x8A, 0x8C, 0xFE, 0x8D, /* 0x00E0 */
- 0x8F, 0x8E, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0x00E0 */
- 0, 0x96, 0x98, 0x97, 0x99, 0x9B, 0x9A, 0xD6, /* 0x00F0 */
- 0xBF, 0x9D, 0x9C, 0x9E, 0x9F /* 0x00F0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define APPLECROATIANTOCHARTABEX_COUNT 49
-static ImplUniCharTabData const aImplAPPLECROATIANToCharTabEx[APPLECROATIANTOCHARTABEX_COUNT] =
-{
- { 0x0106, 0xC6, 0 },
- { 0x0107, 0xE6, 0 },
- { 0x010C, 0xC8, 0 },
- { 0x010D, 0xE8, 0 },
- { 0x0110, 0xD0, 0 },
- { 0x0111, 0xF0, 0 },
- { 0x0131, 0xF5, 0 },
- { 0x0152, 0xCE, 0 },
- { 0x0153, 0xCF, 0 },
- { 0x0160, 0xA9, 0 },
- { 0x0161, 0xB9, 0 },
- { 0x017D, 0xAE, 0 },
- { 0x017E, 0xBE, 0 },
- { 0x0192, 0xC4, 0 },
- { 0x02C6, 0xF6, 0 },
- { 0x02C7, 0xFF, 0 },
- { 0x02DA, 0xFB, 0 },
- { 0x02DC, 0xF7, 0 },
- { 0x03A9, 0xBD, 0 },
- { 0x03C0, 0xF9, 0 },
- { 0x2013, 0xE0, 0 },
- { 0x2014, 0xD1, 0 },
- { 0x2018, 0xD4, 0 },
- { 0x2019, 0xD5, 0 },
- { 0x201A, 0xE2, 0 },
- { 0x201C, 0xD2, 0 },
- { 0x201D, 0xD3, 0 },
- { 0x201E, 0xE3, 0 },
- { 0x2020, 0xA0, 0 },
- { 0x2022, 0xA5, 0 },
- { 0x2026, 0xC9, 0 },
- { 0x2030, 0xE4, 0 },
- { 0x2039, 0xDC, 0 },
- { 0x203A, 0xDD, 0 },
- { 0x2044, 0xDA, 0 },
- { 0x2122, 0xAA, 0 },
- { 0x2202, 0xB6, 0 },
- { 0x2206, 0xB4, 0 },
- { 0x220F, 0xB8, 0 },
- { 0x2211, 0xB7, 0 },
- { 0x221A, 0xC3, 0 },
- { 0x221E, 0xB0, 0 },
- { 0x222B, 0xBA, 0 },
- { 0x2248, 0xC5, 0 },
- { 0x2260, 0xAD, 0 },
- { 0x2264, 0xB2, 0 },
- { 0x2265, 0xB3, 0 },
- { 0x25CA, 0xD7, 0 },
- { 0xF8FF, 0xD8, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplAPPLECROATIANByteCvtData =
-{
- aImplAPPLECROATIANToUniTab,
- NULL,
- APPLECROATIANUNI_START, APPLECROATIANUNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplAPPLECROATIANToCharTab,
- NULL,
- aImplAPPLECROATIANToCharTabEx,
- APPLECROATIANCHAR_START, APPLECROATIANCHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- APPLECROATIANTOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplAPPLECROATIANTextEncodingData
- = { { &aImplAPPLECROATIANByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 238,
- "iso8859-2",
- "iso-8859-2",
- RTL_TEXTENCODING_INFO_ASCII };
- /* MAC, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 36 */
-
-/* ======================================================================= */
-
-/* APPLE-Cyrillic */
-/* Apple CharSet for Cyrillic */
-/* 1-Byte, 0x00-0x7F ASCII, jedoch eigentich Sonderzeichen zwischen 0x00-0x1F */
-/* die wir aber nicht beruecksichtigen */
-/* Convert-Tables: mappings/vendors/apple/cyrillic.txt from 02/15/98 */
-/* Last-Changes from us: */
-
-#define APPLECYRILLICUNI_START 0x80
-#define APPLECYRILLICUNI_END 0xFF
-static sal_uInt16 const aImplAPPLECYRILLICToUniTab[APPLECYRILLICUNI_END - APPLECYRILLICUNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* 0x80 */
- 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, /* 0x80 */
- 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0x90 */
- 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0x90 */
- 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x0406, /* 0xA0 */
- 0x00AE, 0x00A9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453, /* 0xA0 */
- 0x221E, 0x00B1, 0x2264, 0x2265, 0x0456, 0x00B5, 0x2202, 0x0408, /* 0xB0 */
- 0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040A, 0x045A, /* 0xB0 */
- 0x0458, 0x0405, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, /* 0xC0 */
- 0x00BB, 0x2026, 0x00A0, 0x040B, 0x045B, 0x040C, 0x045C, 0x0455, /* 0xC0 */
- 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x201E, /* 0xD0 */
- 0x040E, 0x045E, 0x040F, 0x045F, 0x2116, 0x0401, 0x0451, 0x044F, /* 0xD0 */
- 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* 0xE0 */
- 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, /* 0xE0 */
- 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* 0xF0 */
- 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x00A4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define APPLECYRILLICCHAR_START 0x0401
-#define APPLECYRILLICCHAR_END 0x045F
-static sal_uChar const aImplAPPLECYRILLICToCharTab[APPLECYRILLICCHAR_END - APPLECYRILLICCHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDD, 0xAB, 0xAE, 0xB8, 0xC1, 0xA7, 0xBA, /* 0x0400 */
- 0xB7, 0xBC, 0xBE, 0xCB, 0xCD, 0, 0xD8, 0xDA, /* 0x0400 */
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x0410 */
- 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, /* 0x0410 */
- 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x0420 */
- 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, /* 0x0420 */
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0430 */
- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0430 */
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x0440 */
- 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF, /* 0x0440 */
- 0, 0xDE, 0xAC, 0xAF, 0xB9, 0xCF, 0xB4, 0xBB, /* 0x0450 */
- 0xC0, 0xBD, 0xBF, 0xCC, 0xCE, 0, 0xD9, 0xDB, /* 0x0450 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define APPLECYRILLICTOCHARTABEX_COUNT 36
-static ImplUniCharTabData const aImplAPPLECYRILLICToCharTabEx[APPLECYRILLICTOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xCA, 0 },
- { 0x00A2, 0xA2, 0 },
- { 0x00A3, 0xA3, 0 },
- { 0x00A4, 0xFF, 0 },
- { 0x00A7, 0xA4, 0 },
- { 0x00A9, 0xA9, 0 },
- { 0x00AB, 0xC7, 0 },
- { 0x00AC, 0xC2, 0 },
- { 0x00AE, 0xA8, 0 },
- { 0x00B0, 0xA1, 0 },
- { 0x00B1, 0xB1, 0 },
- { 0x00B5, 0xB5, 0 },
- { 0x00B6, 0xA6, 0 },
- { 0x00BB, 0xC8, 0 },
- { 0x00F7, 0xD6, 0 },
- { 0x0192, 0xC4, 0 },
- { 0x2013, 0xD0, 0 },
- { 0x2014, 0xD1, 0 },
- { 0x2018, 0xD4, 0 },
- { 0x2019, 0xD5, 0 },
- { 0x201C, 0xD2, 0 },
- { 0x201D, 0xD3, 0 },
- { 0x201E, 0xD7, 0 },
- { 0x2020, 0xA0, 0 },
- { 0x2022, 0xA5, 0 },
- { 0x2026, 0xC9, 0 },
- { 0x2116, 0xDC, 0 },
- { 0x2122, 0xAA, 0 },
- { 0x2202, 0xB6, 0 },
- { 0x2206, 0xC6, 0 },
- { 0x221A, 0xC3, 0 },
- { 0x221E, 0xB0, 0 },
- { 0x2248, 0xC5, 0 },
- { 0x2260, 0xAD, 0 },
- { 0x2264, 0xB2, 0 },
- { 0x2265, 0xB3, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplAPPLECYRILLICByteCvtData =
-{
- aImplAPPLECYRILLICToUniTab,
- NULL,
- APPLECYRILLICUNI_START, APPLECYRILLICUNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplAPPLECYRILLICToCharTab,
- NULL,
- aImplAPPLECYRILLICToCharTabEx,
- APPLECYRILLICCHAR_START, APPLECYRILLICCHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- APPLECYRILLICTOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplAPPLECYRILLICTextEncodingData
- = { { &aImplAPPLECYRILLICByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 204,
- "iso8859-5",
- "iso-8859-5",
- RTL_TEXTENCODING_INFO_ASCII };
- /* MAC, SCRIPT_CYRILLIC, pc code page 866 (855?), mac encoding 7 */
-
-/* ======================================================================= */
-
-/* APPLE-Greek */
-/* Apple CharSet for Greek */
-/* 1-Byte, 0x00-0x7F ASCII, jedoch eigentich Sonderzeichen zwischen 0x00-0x1F */
-/* die wir aber nicht beruecksichtigen */
-/* Convert-Tables: mappings/vendors/apple/roman.txt from 08/18/98 */
-/* Last-Changes from us: */
-
-#define APPLEGREEKUNI_START 0x80
-#define APPLEGREEKUNI_END 0xFF
-static sal_uInt16 const aImplAPPLEGREEKToUniTab[APPLEGREEKUNI_END - APPLEGREEKUNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00C4, 0x00B9, 0x00B2, 0x00C9, 0x00B3, 0x00D6, 0x00DC, 0x0385, /* 0x80 */
- 0x00E0, 0x00E2, 0x00E4, 0x0384, 0x00A8, 0x00E7, 0x00E9, 0x00E8, /* 0x80 */
- 0x00EA, 0x00EB, 0x00A3, 0x2122, 0x00EE, 0x00EF, 0x2022, 0x00BD, /* 0x90 */
- 0x2030, 0x00F4, 0x00F6, 0x00A6, 0x00AD, 0x00F9, 0x00FB, 0x00FC, /* 0x90 */
- 0x2020, 0x0393, 0x0394, 0x0398, 0x039B, 0x039E, 0x03A0, 0x00DF, /* 0xA0 */
- 0x00AE, 0x00A9, 0x03A3, 0x03AA, 0x00A7, 0x2260, 0x00B0, 0x00B7, /* 0xA0 */
- 0x0391, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x0392, 0x0395, 0x0396, /* 0xB0 */
- 0x0397, 0x0399, 0x039A, 0x039C, 0x03A6, 0x03AB, 0x03A8, 0x03A9, /* 0xB0 */
- 0x03AC, 0x039D, 0x00AC, 0x039F, 0x03A1, 0x2248, 0x03A4, 0x00AB, /* 0xC0 */
- 0x00BB, 0x2026, 0x00A0, 0x03A5, 0x03A7, 0x0386, 0x0388, 0x0153, /* 0xC0 */
- 0x2013, 0x2015, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x0389, /* 0xD0 */
- 0x038A, 0x038C, 0x038E, 0x03AD, 0x03AE, 0x03AF, 0x03CC, 0x038F, /* 0xD0 */
- 0x03CD, 0x03B1, 0x03B2, 0x03C8, 0x03B4, 0x03B5, 0x03C6, 0x03B3, /* 0xE0 */
- 0x03B7, 0x03B9, 0x03BE, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BF, /* 0xE0 */
- 0x03C0, 0x03CE, 0x03C1, 0x03C3, 0x03C4, 0x03B8, 0x03C9, 0x03C2, /* 0xF0 */
- 0x03C7, 0x03C5, 0x03B6, 0x03CA, 0x03CB, 0x0390, 0x03B0, 0xF8A0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define APPLEGREEKCHAR_START 0x0384
-#define APPLEGREEKCHAR_END 0x03CE
-static sal_uChar const aImplAPPLEGREEKToCharTab[APPLEGREEKCHAR_END - APPLEGREEKCHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8B, 0x87, 0xCD, 0, /* 0x0380 */
- 0xCE, 0xD7, 0xD8, 0, 0xD9, 0, 0xDA, 0xDF, /* 0x0380 */
- 0xFD, 0xB0, 0xB5, 0xA1, 0xA2, 0xB6, 0xB7, 0xB8, /* 0x0390 */
- 0xA3, 0xB9, 0xBA, 0xA4, 0xBB, 0xC1, 0xA5, 0xC3, /* 0x0390 */
- 0xA6, 0xC4, 0, 0xAA, 0xC6, 0xCB, 0xBC, 0xCC, /* 0x03A0 */
- 0xBE, 0xBF, 0xAB, 0xBD, 0xC0, 0xDB, 0xDC, 0xDD, /* 0x03A0 */
- 0xFE, 0xE1, 0xE2, 0xE7, 0xE4, 0xE5, 0xFA, 0xE8, /* 0x03B0 */
- 0xF5, 0xE9, 0xEB, 0xEC, 0xED, 0xEE, 0xEA, 0xEF, /* 0x03B0 */
- 0xF0, 0xF2, 0xF7, 0xF3, 0xF4, 0xF9, 0xE6, 0xF8, /* 0x03C0 */
- 0xE3, 0xF6, 0xFB, 0xFC, 0xDE, 0xE0, 0xF1 /* 0x03C0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define APPLEGREEKTOCHARTABEX_COUNT 57
-static ImplUniCharTabData const aImplAPPLEGREEKToCharTabEx[APPLEGREEKTOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xCA, 0 },
- { 0x00A3, 0x92, 0 },
- { 0x00A5, 0xB4, 0 },
- { 0x00A6, 0x9B, 0 },
- { 0x00A7, 0xAC, 0 },
- { 0x00A8, 0x8C, 0 },
- { 0x00A9, 0xA9, 0 },
- { 0x00AB, 0xC7, 0 },
- { 0x00AC, 0xC2, 0 },
- { 0x00AD, 0x9C, 0 },
- { 0x00AE, 0xA8, 0 },
- { 0x00B0, 0xAE, 0 },
- { 0x00B1, 0xB1, 0 },
- { 0x00B2, 0x82, 0 },
- { 0x00B3, 0x84, 0 },
- { 0x00B7, 0xAF, 0 },
- { 0x00B9, 0x81, 0 },
- { 0x00BB, 0xC8, 0 },
- { 0x00BD, 0x97, 0 },
- { 0x00C4, 0x80, 0 },
- { 0x00C9, 0x83, 0 },
- { 0x00D6, 0x85, 0 },
- { 0x00DC, 0x86, 0 },
- { 0x00DF, 0xA7, 0 },
- { 0x00E0, 0x88, 0 },
- { 0x00E2, 0x89, 0 },
- { 0x00E4, 0x8A, 0 },
- { 0x00E7, 0x8D, 0 },
- { 0x00E8, 0x8F, 0 },
- { 0x00E9, 0x8E, 0 },
- { 0x00EA, 0x90, 0 },
- { 0x00EB, 0x91, 0 },
- { 0x00EE, 0x94, 0 },
- { 0x00EF, 0x95, 0 },
- { 0x00F4, 0x99, 0 },
- { 0x00F6, 0x9A, 0 },
- { 0x00F7, 0xD6, 0 },
- { 0x00F9, 0x9D, 0 },
- { 0x00FB, 0x9E, 0 },
- { 0x00FC, 0x9F, 0 },
- { 0x0153, 0xCF, 0 },
- { 0x2013, 0xD0, 0 },
- { 0x2015, 0xD1, 0 },
- { 0x2018, 0xD4, 0 },
- { 0x2019, 0xD5, 0 },
- { 0x201C, 0xD2, 0 },
- { 0x201D, 0xD3, 0 },
- { 0x2020, 0xA0, 0 },
- { 0x2022, 0x96, 0 },
- { 0x2026, 0xC9, 0 },
- { 0x2030, 0x98, 0 },
- { 0x2122, 0x93, 0 },
- { 0x2248, 0xC5, 0 },
- { 0x2260, 0xAD, 0 },
- { 0x2264, 0xB2, 0 },
- { 0x2265, 0xB3, 0 },
- { 0xF8A0, 0xFF, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplAPPLEGREEKByteCvtData =
-{
- aImplAPPLEGREEKToUniTab,
- NULL,
- APPLEGREEKUNI_START, APPLEGREEKUNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplAPPLEGREEKToCharTab,
- NULL,
- aImplAPPLEGREEKToCharTabEx,
- APPLEGREEKCHAR_START, APPLEGREEKCHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- APPLEGREEKTOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplAPPLEGREEKTextEncodingData
- = { { &aImplAPPLEGREEKByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 161,
- "iso8859-7",
- "iso-8859-7",
- RTL_TEXTENCODING_INFO_ASCII };
- /* MAC, SCRIPT_GREEK, pc code page 869, mac encoding 6 */
-
-/* ======================================================================= */
-
-/* APPLE-Romanian */
-/* Standard Apple CharSet for Romanien */
-/* 1-Byte, 0x00-0x7F ASCII, jedoch eigentich Sonderzeichen zwischen 0x00-0x1F */
-/* die wir aber nicht beruecksichtigen */
-/* Convert-Tables: mappings/vendors/apple/romanian.txt from 02/05/98 */
-/* Last-Changes from us: */
-/* 0xAF --> 0x015E (like Java), Apple Definition: 0x0053+0x0326 # LATIN CAPITAL LETTER S + COMBINING COMMA BELOW */
-/* 0xBF --> 0x015F (like Java), Apple Definition: 0x0073+0x0326 # LATIN SMALL LETTER S + COMBINING COMMA BELOW */
-/* 0xDE --> 0x0162 (like Java), Apple Definition: 0x0054+0x0326 # LATIN CAPITAL LETTER T + COMBINING COMMA BELOW */
-/* 0xDF --> 0x0163 (like Java), Apple Definition: 0x0074+0x0326 # LATIN SMALL LETTER T + COMBINING COMMA BELOW */
-
-#define APPLEROMANIANUNI_START 0x80
-#define APPLEROMANIANUNI_END 0xFF
-static sal_uInt16 const aImplAPPLEROMANIANToUniTab[APPLEROMANIANUNI_END - APPLEROMANIANUNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, /* 0x80 */
- 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, /* 0x80 */
- 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, /* 0x90 */
- 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, /* 0x90 */
- 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, /* 0xA0 */
- 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x0102, 0x015E, /* 0xA0 */
- 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211, /* 0xB0 */
- 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x0103, 0x015F, /* 0xB0 */
- 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, /* 0xC0 */
- 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, /* 0xC0 */
- 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, /* 0xD0 */
- 0x00FF, 0x0178, 0x2044, 0x00A4, 0x2039, 0x203A, 0x0162, 0x0163, /* 0xD0 */
- 0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1, /* 0xE0 */
- 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, /* 0xE0 */
- 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC, /* 0xF0 */
- 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define APPLEROMANIANCHAR_START 0x00A0
-#define APPLEROMANIANCHAR_END 0x00FF
-static sal_uChar const aImplAPPLEROMANIANToCharTab[APPLEROMANIANCHAR_END - APPLEROMANIANCHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCA, 0xC1, 0xA2, 0xA3, 0xDB, 0xB4, 0, 0xA4, /* 0x00A0 */
- 0xAC, 0xA9, 0xBB, 0xC7, 0xC2, 0, 0xA8, 0xF8, /* 0x00A0 */
- 0xA1, 0xB1, 0, 0, 0xAB, 0xB5, 0xA6, 0xE1, /* 0x00B0 */
- 0xFC, 0, 0xBC, 0xC8, 0, 0, 0, 0xC0, /* 0x00B0 */
- 0xCB, 0xE7, 0xE5, 0xCC, 0x80, 0x81, 0, 0x82, /* 0x00C0 */
- 0xE9, 0x83, 0xE6, 0xE8, 0xED, 0xEA, 0xEB, 0xEC, /* 0x00C0 */
- 0, 0x84, 0xF1, 0xEE, 0xEF, 0xCD, 0x85, 0, /* 0x00D0 */
- 0, 0xF4, 0xF2, 0xF3, 0x86, 0, 0, 0xA7, /* 0x00D0 */
- 0x88, 0x87, 0x89, 0x8B, 0x8A, 0x8C, 0, 0x8D, /* 0x00E0 */
- 0x8F, 0x8E, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0x00E0 */
- 0, 0x96, 0x98, 0x97, 0x99, 0x9B, 0x9A, 0xD6, /* 0x00F0 */
- 0, 0x9D, 0x9C, 0x9E, 0x9F, 0, 0, 0xD8 /* 0x00F0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define APPLEROMANIANTOCHARTABEX_COUNT 51
-static ImplUniCharTabData const aImplAPPLEROMANIANToCharTabEx[APPLEROMANIANTOCHARTABEX_COUNT] =
-{
- { 0x0102, 0xAE, 0 },
- { 0x0103, 0xBE, 0 },
- { 0x0131, 0xF5, 0 },
- { 0x0152, 0xCE, 0 },
- { 0x0153, 0xCF, 0 },
- { 0x015E, 0xAF, 0 },
- { 0x015F, 0xBF, 0 },
- { 0x0162, 0xDE, 0 },
- { 0x0163, 0xDF, 0 },
- { 0x0178, 0xD9, 0 },
- { 0x0192, 0xC4, 0 },
- { 0x02C6, 0xF6, 0 },
- { 0x02C7, 0xFF, 0 },
- { 0x02D8, 0xF9, 0 },
- { 0x02D9, 0xFA, 0 },
- { 0x02DA, 0xFB, 0 },
- { 0x02DB, 0xFE, 0 },
- { 0x02DC, 0xF7, 0 },
- { 0x02DD, 0xFD, 0 },
- { 0x03A9, 0xBD, 0 },
- { 0x03C0, 0xB9, 0 },
- { 0x2013, 0xD0, 0 },
- { 0x2014, 0xD1, 0 },
- { 0x2018, 0xD4, 0 },
- { 0x2019, 0xD5, 0 },
- { 0x201A, 0xE2, 0 },
- { 0x201C, 0xD2, 0 },
- { 0x201D, 0xD3, 0 },
- { 0x201E, 0xE3, 0 },
- { 0x2020, 0xA0, 0 },
- { 0x2021, 0xE0, 0 },
- { 0x2022, 0xA5, 0 },
- { 0x2026, 0xC9, 0 },
- { 0x2030, 0xE4, 0 },
- { 0x2039, 0xDC, 0 },
- { 0x203A, 0xDD, 0 },
- { 0x2044, 0xDA, 0 },
- { 0x2122, 0xAA, 0 },
- { 0x2202, 0xB6, 0 },
- { 0x2206, 0xC6, 0 },
- { 0x220F, 0xB8, 0 },
- { 0x2211, 0xB7, 0 },
- { 0x221A, 0xC3, 0 },
- { 0x221E, 0xB0, 0 },
- { 0x222B, 0xBA, 0 },
- { 0x2248, 0xC5, 0 },
- { 0x2260, 0xAD, 0 },
- { 0x2264, 0xB2, 0 },
- { 0x2265, 0xB3, 0 },
- { 0x25CA, 0xD7, 0 },
- { 0xF8FF, 0xF0, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplAPPLEROMANIANByteCvtData =
-{
- aImplAPPLEROMANIANToUniTab,
- NULL,
- APPLEROMANIANUNI_START, APPLEROMANIANUNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplAPPLEROMANIANToCharTab,
- NULL,
- aImplAPPLEROMANIANToCharTabEx,
- APPLEROMANIANCHAR_START, APPLEROMANIANCHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- APPLEROMANIANTOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplAPPLEROMANIANTextEncodingData
- = { { &aImplAPPLEROMANIANByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 238,
- "iso8859-2",
- "iso-8859-2",
- RTL_TEXTENCODING_INFO_ASCII };
- /* MAC, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 38 */
-
-/* ======================================================================= */
-
-/* APPLE-Turkish */
-/* Apple CharSet for Turkish */
-/* 1-Byte, 0x00-0x7F ASCII, jedoch eigentich Sonderzeichen zwischen 0x00-0x1F */
-/* die wir aber nicht beruecksichtigen */
-/* Convert-Tables: mappings/vendors/apple/turkish.txt from 02/05/98 */
-/* Last-Changes from us: */
-
-#define APPLETURKISHUNI_START 0x80
-#define APPLETURKISHUNI_END 0xFF
-static sal_uInt16 const aImplAPPLETURKISHToUniTab[APPLETURKISHUNI_END - APPLETURKISHUNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, /* 0x80 */
- 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, /* 0x80 */
- 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, /* 0x90 */
- 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, /* 0x90 */
- 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, /* 0xA0 */
- 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8, /* 0xA0 */
- 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211, /* 0xB0 */
- 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x00E6, 0x00F8, /* 0xB0 */
- 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, /* 0xC0 */
- 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, /* 0xC0 */
- 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, /* 0xD0 */
- 0x00FF, 0x0178, 0x011E, 0x011F, 0x0130, 0x0131, 0x015E, 0x015F, /* 0xD0 */
- 0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1, /* 0xE0 */
- 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, /* 0xE0 */
- 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0xF8A0, 0x02C6, 0x02DC, /* 0xF0 */
- 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define APPLETURKISHCHAR_START 0x00A0
-#define APPLETURKISHCHAR_END 0x00FF
-static sal_uChar const aImplAPPLETURKISHToCharTab[APPLETURKISHCHAR_END - APPLETURKISHCHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCA, 0xC1, 0xA2, 0xA3, 0, 0xB4, 0, 0xA4, /* 0x00A0 */
- 0xAC, 0xA9, 0xBB, 0xC7, 0xC2, 0, 0xA8, 0xF8, /* 0x00A0 */
- 0xA1, 0xB1, 0, 0, 0xAB, 0xB5, 0xA6, 0xE1, /* 0x00B0 */
- 0xFC, 0, 0xBC, 0xC8, 0, 0, 0, 0xC0, /* 0x00B0 */
- 0xCB, 0xE7, 0xE5, 0xCC, 0x80, 0x81, 0xAE, 0x82, /* 0x00C0 */
- 0xE9, 0x83, 0xE6, 0xE8, 0xED, 0xEA, 0xEB, 0xEC, /* 0x00C0 */
- 0, 0x84, 0xF1, 0xEE, 0xEF, 0xCD, 0x85, 0, /* 0x00D0 */
- 0xAF, 0xF4, 0xF2, 0xF3, 0x86, 0, 0, 0xA7, /* 0x00D0 */
- 0x88, 0x87, 0x89, 0x8B, 0x8A, 0x8C, 0xBE, 0x8D, /* 0x00E0 */
- 0x8F, 0x8E, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0x00E0 */
- 0, 0x96, 0x98, 0x97, 0x99, 0x9B, 0x9A, 0xD6, /* 0x00F0 */
- 0xBF, 0x9D, 0x9C, 0x9E, 0x9F, 0, 0, 0xD8 /* 0x00F0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define APPLETURKISHTOCHARTABEX_COUNT 48
-static ImplUniCharTabData const aImplAPPLETURKISHToCharTabEx[APPLETURKISHTOCHARTABEX_COUNT] =
-{
- { 0x011E, 0xDA, 0 },
- { 0x011F, 0xDB, 0 },
- { 0x0130, 0xDC, 0 },
- { 0x0131, 0xDD, 0 },
- { 0x0152, 0xCE, 0 },
- { 0x0153, 0xCF, 0 },
- { 0x015E, 0xDE, 0 },
- { 0x015F, 0xDF, 0 },
- { 0x0178, 0xD9, 0 },
- { 0x0192, 0xC4, 0 },
- { 0x02C6, 0xF6, 0 },
- { 0x02C7, 0xFF, 0 },
- { 0x02D8, 0xF9, 0 },
- { 0x02D9, 0xFA, 0 },
- { 0x02DA, 0xFB, 0 },
- { 0x02DB, 0xFE, 0 },
- { 0x02DC, 0xF7, 0 },
- { 0x02DD, 0xFD, 0 },
- { 0x03A9, 0xBD, 0 },
- { 0x03C0, 0xB9, 0 },
- { 0x2013, 0xD0, 0 },
- { 0x2014, 0xD1, 0 },
- { 0x2018, 0xD4, 0 },
- { 0x2019, 0xD5, 0 },
- { 0x201A, 0xE2, 0 },
- { 0x201C, 0xD2, 0 },
- { 0x201D, 0xD3, 0 },
- { 0x201E, 0xE3, 0 },
- { 0x2020, 0xA0, 0 },
- { 0x2021, 0xE0, 0 },
- { 0x2022, 0xA5, 0 },
- { 0x2026, 0xC9, 0 },
- { 0x2030, 0xE4, 0 },
- { 0x2122, 0xAA, 0 },
- { 0x2202, 0xB6, 0 },
- { 0x2206, 0xC6, 0 },
- { 0x220F, 0xB8, 0 },
- { 0x2211, 0xB7, 0 },
- { 0x221A, 0xC3, 0 },
- { 0x221E, 0xB0, 0 },
- { 0x222B, 0xBA, 0 },
- { 0x2248, 0xC5, 0 },
- { 0x2260, 0xAD, 0 },
- { 0x2264, 0xB2, 0 },
- { 0x2265, 0xB3, 0 },
- { 0x25CA, 0xD7, 0 },
- { 0xF8A0, 0xF5, 0 },
- { 0xF8FF, 0xF0, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplAPPLETURKISHByteCvtData =
-{
- aImplAPPLETURKISHToUniTab,
- NULL,
- APPLETURKISHUNI_START, APPLETURKISHUNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplAPPLETURKISHToCharTab,
- NULL,
- aImplAPPLETURKISHToCharTabEx,
- APPLETURKISHCHAR_START, APPLETURKISHCHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- APPLETURKISHTOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplAPPLETURKISHTextEncodingData
- = { { &aImplAPPLETURKISHByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 162,
- "iso8859-9",
- "iso-8859-9",
- RTL_TEXTENCODING_INFO_ASCII };
- /* MAC, SCRIPT_TURKISH, pc code page 857, mac encoding 35 */
-
-/* ======================================================================= */
-
-/* APPLE-Ukrainian */
-/* Apple CharSet for Ukrainian */
-/* 1-Byte, 0x00-0x7F ASCII, jedoch eigentich Sonderzeichen zwischen 0x00-0x1F */
-/* die wir aber nicht beruecksichtigen */
-/* Convert-Tables: mappings/vendors/apple/ukraine.txt from 02/05/98 */
-/* Last-Changes from us: */
-
-#define APPLEUKRAINIANUNI_START 0x80
-#define APPLEUKRAINIANUNI_END 0xFF
-static sal_uInt16 const aImplAPPLEUKRAINIANToUniTab[APPLEUKRAINIANUNI_END - APPLEUKRAINIANUNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* 0x80 */
- 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, /* 0x80 */
- 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0x90 */
- 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0x90 */
- 0x2020, 0x00B0, 0x0490, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x0406, /* 0xA0 */
- 0x00AE, 0x00A9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453, /* 0xA0 */
- 0x221E, 0x00B1, 0x2264, 0x2265, 0x0456, 0x00B5, 0x0491, 0x0408, /* 0xB0 */
- 0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040A, 0x045A, /* 0xB0 */
- 0x0458, 0x0405, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, /* 0xC0 */
- 0x00BB, 0x2026, 0x00A0, 0x040B, 0x045B, 0x040C, 0x045C, 0x0455, /* 0xC0 */
- 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x201E, /* 0xD0 */
- 0x040E, 0x045E, 0x040F, 0x045F, 0x2116, 0x0401, 0x0451, 0x044F, /* 0xD0 */
- 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* 0xE0 */
- 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, /* 0xE0 */
- 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* 0xF0 */
- 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x00A4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define APPLEUKRAINIANCHAR_START 0x0401
-#define APPLEUKRAINIANCHAR_END 0x045F
-static sal_uChar const aImplAPPLEUKRAINIANToCharTab[APPLEUKRAINIANCHAR_END - APPLEUKRAINIANCHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDD, 0xAB, 0xAE, 0xB8, 0xC1, 0xA7, 0xBA, /* 0x0400 */
- 0xB7, 0xBC, 0xBE, 0xCB, 0xCD, 0, 0xD8, 0xDA, /* 0x0400 */
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x0410 */
- 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, /* 0x0410 */
- 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x0420 */
- 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, /* 0x0420 */
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0430 */
- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0430 */
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x0440 */
- 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF, /* 0x0440 */
- 0, 0xDE, 0xAC, 0xAF, 0xB9, 0xCF, 0xB4, 0xBB, /* 0x0450 */
- 0xC0, 0xBD, 0xBF, 0xCC, 0xCE, 0, 0xD9, 0xDB, /* 0x0450 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define APPLEUKRAINIANTOCHARTABEX_COUNT 36
-static ImplUniCharTabData const aImplAPPLEUKRAINIANToCharTabEx[APPLEUKRAINIANTOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xCA, 0 },
- { 0x00A3, 0xA3, 0 },
- { 0x00A4, 0xFF, 0 },
- { 0x00A7, 0xA4, 0 },
- { 0x00A9, 0xA9, 0 },
- { 0x00AB, 0xC7, 0 },
- { 0x00AC, 0xC2, 0 },
- { 0x00AE, 0xA8, 0 },
- { 0x00B0, 0xA1, 0 },
- { 0x00B1, 0xB1, 0 },
- { 0x00B5, 0xB5, 0 },
- { 0x00B6, 0xA6, 0 },
- { 0x00BB, 0xC8, 0 },
- { 0x00F7, 0xD6, 0 },
- { 0x0192, 0xC4, 0 },
- { 0x0490, 0xA2, 0 },
- { 0x0491, 0xB6, 0 },
- { 0x2013, 0xD0, 0 },
- { 0x2014, 0xD1, 0 },
- { 0x2018, 0xD4, 0 },
- { 0x2019, 0xD5, 0 },
- { 0x201C, 0xD2, 0 },
- { 0x201D, 0xD3, 0 },
- { 0x201E, 0xD7, 0 },
- { 0x2020, 0xA0, 0 },
- { 0x2022, 0xA5, 0 },
- { 0x2026, 0xC9, 0 },
- { 0x2116, 0xDC, 0 },
- { 0x2122, 0xAA, 0 },
- { 0x2206, 0xC6, 0 },
- { 0x221A, 0xC3, 0 },
- { 0x221E, 0xB0, 0 },
- { 0x2248, 0xC5, 0 },
- { 0x2260, 0xAD, 0 },
- { 0x2264, 0xB2, 0 },
- { 0x2265, 0xB3, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplAPPLEUKRAINIANByteCvtData =
-{
- aImplAPPLEUKRAINIANToUniTab,
- NULL,
- APPLEUKRAINIANUNI_START, APPLEUKRAINIANUNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplAPPLEUKRAINIANToCharTab,
- NULL,
- aImplAPPLEUKRAINIANToCharTabEx,
- APPLEUKRAINIANCHAR_START, APPLEUKRAINIANCHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- APPLEUKRAINIANTOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplAPPLEUKRAINIANTextEncodingData
- = { { &aImplAPPLEUKRAINIANByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 204,
- "iso8859-5",
- "iso-8859-5",
- RTL_TEXTENCODING_INFO_ASCII };
- /* MAC, SCRIPT_CYRILLIC, pc code page 866 (855?), mac encoding 0x98
- (MAC 8.5 and above) */
-
-/* ======================================================================= */
-
-/* KOI8_R */
-/* Standard Charset for Cyrillic */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: typed per hand */
-/* Last-Changes from us: */
-
-#define KOI8RUNI_START 0x80
-#define KOI8RUNI_END 0xFF
-static sal_uInt16 const aImplKOI8RToUniTab[KOI8RUNI_END - KOI8RUNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524, /* 0x80 */
- 0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590, /* 0x80 */
- 0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248, /* 0x90 */
- 0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7, /* 0x90 */
- 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556, /* 0xA0 */
- 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255D, 0x255E, /* 0xA0 */
- 0x255F, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565, /* 0xB0 */
- 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x00A9, /* 0xB0 */
- 0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, /* 0xC0 */
- 0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, /* 0xC0 */
- 0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, /* 0xD0 */
- 0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A, /* 0xD0 */
- 0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, /* 0xE0 */
- 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, /* 0xE0 */
- 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, /* 0xF0 */
- 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define KOI8RCHAR_START 0x0410
-#define KOI8RCHAR_END 0x044F
-static sal_uChar const aImplKOI8RToCharTab[KOI8RCHAR_END - KOI8RCHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE1, 0xE2, 0xF7, 0xE7, 0xE4, 0xE5, 0xF6, 0xFA, /* 0x0410 */
- 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, /* 0x0410 */
- 0xF2, 0xF3, 0xF4, 0xF5, 0xE6, 0xE8, 0xE3, 0xFE, /* 0x0420 */
- 0xFB, 0xFD, 0xFF, 0xF9, 0xF8, 0xFC, 0xE0, 0xF1, /* 0x0420 */
- 0xC1, 0xC2, 0xD7, 0xC7, 0xC4, 0xC5, 0xD6, 0xDA, /* 0x0430 */
- 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, /* 0x0430 */
- 0xD2, 0xD3, 0xD4, 0xD5, 0xC6, 0xC8, 0xC3, 0xDE, /* 0x0440 */
- 0xDB, 0xDD, 0xDF, 0xD9, 0xD8, 0xDC, 0xC0, 0xD1 /* 0x0440 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define KOI8RTOCHARTABEX_COUNT 64
-static ImplUniCharTabData const aImplKOI8RToCharTabEx[KOI8RTOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0x9A, 0 },
- { 0x00A9, 0xBF, 0 },
- { 0x00B0, 0x9C, 0 },
- { 0x00B2, 0x9D, 0 },
- { 0x00B7, 0x9E, 0 },
- { 0x00F7, 0x9F, 0 },
- { 0x0401, 0xB3, 0 },
- { 0x0451, 0xA3, 0 },
- { 0x2219, 0x95, 0 },
- { 0x221A, 0x96, 0 },
- { 0x2248, 0x97, 0 },
- { 0x2264, 0x98, 0 },
- { 0x2265, 0x99, 0 },
- { 0x2320, 0x93, 0 },
- { 0x2321, 0x9B, 0 },
- { 0x2500, 0x80, 0 },
- { 0x2502, 0x81, 0 },
- { 0x250C, 0x82, 0 },
- { 0x2510, 0x83, 0 },
- { 0x2514, 0x84, 0 },
- { 0x2518, 0x85, 0 },
- { 0x251C, 0x86, 0 },
- { 0x2524, 0x87, 0 },
- { 0x252C, 0x88, 0 },
- { 0x2534, 0x89, 0 },
- { 0x253C, 0x8A, 0 },
- { 0x2550, 0xA0, 0 },
- { 0x2551, 0xA1, 0 },
- { 0x2552, 0xA2, 0 },
- { 0x2553, 0xA4, 0 },
- { 0x2554, 0xA5, 0 },
- { 0x2555, 0xA6, 0 },
- { 0x2556, 0xA7, 0 },
- { 0x2557, 0xA8, 0 },
- { 0x2558, 0xA9, 0 },
- { 0x2559, 0xAA, 0 },
- { 0x255A, 0xAB, 0 },
- { 0x255B, 0xAC, 0 },
- { 0x255C, 0xAD, 0 },
- { 0x255D, 0xAE, 0 },
- { 0x255E, 0xAF, 0 },
- { 0x255F, 0xB0, 0 },
- { 0x2560, 0xB1, 0 },
- { 0x2561, 0xB2, 0 },
- { 0x2562, 0xB4, 0 },
- { 0x2563, 0xB5, 0 },
- { 0x2564, 0xB6, 0 },
- { 0x2565, 0xB7, 0 },
- { 0x2566, 0xB8, 0 },
- { 0x2567, 0xB9, 0 },
- { 0x2568, 0xBA, 0 },
- { 0x2569, 0xBB, 0 },
- { 0x256A, 0xBC, 0 },
- { 0x256B, 0xBD, 0 },
- { 0x256C, 0xBE, 0 },
- { 0x2580, 0x8B, 0 },
- { 0x2584, 0x8C, 0 },
- { 0x2588, 0x8D, 0 },
- { 0x258C, 0x8E, 0 },
- { 0x2590, 0x8F, 0 },
- { 0x2591, 0x90, 0 },
- { 0x2592, 0x91, 0 },
- { 0x2593, 0x92, 0 },
- { 0x25A0, 0x94, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplKOI8RByteCvtData =
-{
- aImplKOI8RToUniTab,
- NULL,
- KOI8RUNI_START, KOI8RUNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplKOI8RToCharTab,
- NULL,
- aImplKOI8RToCharTabEx,
- KOI8RCHAR_START, KOI8RCHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- KOI8RTOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplKOI8RTextEncodingData
- = { { &aImplKOI8RByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 204,
- "koi8-r",
- "koi8-r",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_CYRILLIC, pc code page 866 (855?), mac encoding 7 */
-
-/* ======================================================================= */
-
-/* KOI8_U */
-/* Standard Charset for Ukrainian Cyrillic */
-/* Single Byte, 0x00-0x7F equals ASCII */
-/* Conversion Tables: hand made */
-
-#define KOI8UUNI_START 0x80
-#define KOI8UUNI_END 0xFF
-static sal_uInt16 const aImplKOI8UToUniTab[KOI8UUNI_END - KOI8UUNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524, /* 0x80 */
- 0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590, /* 0x80 */
- 0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248, /* 0x90 */
- 0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7, /* 0x90 */
- 0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457, /* 0xA0 */
- 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x0491, 0x255D, 0x255E, /* 0xA0 */
- 0x255F, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407, /* 0xB0 */
- 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x0490, 0x256C, 0x00A9, /* 0xB0 */
- 0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, /* 0xC0 */
- 0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, /* 0xC0 */
- 0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, /* 0xD0 */
- 0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A, /* 0xD0 */
- 0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, /* 0xE0 */
- 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, /* 0xE0 */
- 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, /* 0xF0 */
- 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A /* 0xF0 */
-};
-
-#define KOI8UCHAR_START 0x0410
-#define KOI8UCHAR_END 0x044F
-static sal_uChar const
-aImplKOI8UToCharTab[KOI8UCHAR_END - KOI8UCHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE1, 0xE2, 0xF7, 0xE7, 0xE4, 0xE5, 0xF6, 0xFA, /* 0x0410 */
- 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, /* 0x0410 */
- 0xF2, 0xF3, 0xF4, 0xF5, 0xE6, 0xE8, 0xE3, 0xFE, /* 0x0420 */
- 0xFB, 0xFD, 0xFF, 0xF9, 0xF8, 0xFC, 0xE0, 0xF1, /* 0x0420 */
- 0xC1, 0xC2, 0xD7, 0xC7, 0xC4, 0xC5, 0xD6, 0xDA, /* 0x0430 */
- 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, /* 0x0430 */
- 0xD2, 0xD3, 0xD4, 0xD5, 0xC6, 0xC8, 0xC3, 0xDE, /* 0x0440 */
- 0xDB, 0xDD, 0xDF, 0xD9, 0xD8, 0xDC, 0xC0, 0xD1 /* 0x0440 */
-};
-
-#define KOI8UTOCHARTABEX_COUNT 72
-static ImplUniCharTabData const aImplKOI8UToCharTabEx[KOI8UTOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0x9A, 0 },
- { 0x00A9, 0xBF, 0 },
- { 0x00B0, 0x9C, 0 },
- { 0x00B2, 0x9D, 0 },
- { 0x00B7, 0x9E, 0 },
- { 0x00F7, 0x9F, 0 },
- { 0x0401, 0xB3, 0 },
- { 0x0404, 0xB4, 0 },
- { 0x0406, 0xB6, 0 },
- { 0x0407, 0xB7, 0 },
- { 0x0451, 0xA3, 0 },
- { 0x0454, 0xA4, 0 },
- { 0x0456, 0xA6, 0 },
- { 0x0457, 0xA7, 0 },
- { 0x0490, 0xBD, 0 },
- { 0x0491, 0xAD, 0 },
- { 0x2219, 0x95, 0 },
- { 0x221A, 0x96, 0 },
- { 0x2248, 0x97, 0 },
- { 0x2264, 0x98, 0 },
- { 0x2265, 0x99, 0 },
- { 0x2320, 0x93, 0 },
- { 0x2321, 0x9B, 0 },
- { 0x2500, 0x80, 0 },
- { 0x2502, 0x81, 0 },
- { 0x250C, 0x82, 0 },
- { 0x2510, 0x83, 0 },
- { 0x2514, 0x84, 0 },
- { 0x2518, 0x85, 0 },
- { 0x251C, 0x86, 0 },
- { 0x2524, 0x87, 0 },
- { 0x252C, 0x88, 0 },
- { 0x2534, 0x89, 0 },
- { 0x253C, 0x8A, 0 },
- { 0x2550, 0xA0, 0 },
- { 0x2551, 0xA1, 0 },
- { 0x2552, 0xA2, 0 },
- { 0x2553, 0xA4, 0 },
- { 0x2554, 0xA5, 0 },
- { 0x2555, 0xA6, 0 },
- { 0x2556, 0xA7, 0 },
- { 0x2557, 0xA8, 0 },
- { 0x2558, 0xA9, 0 },
- { 0x2559, 0xAA, 0 },
- { 0x255A, 0xAB, 0 },
- { 0x255B, 0xAC, 0 },
- { 0x255C, 0xAD, 0 },
- { 0x255D, 0xAE, 0 },
- { 0x255E, 0xAF, 0 },
- { 0x255F, 0xB0, 0 },
- { 0x2560, 0xB1, 0 },
- { 0x2561, 0xB2, 0 },
- { 0x2562, 0xB4, 0 },
- { 0x2563, 0xB5, 0 },
- { 0x2564, 0xB6, 0 },
- { 0x2565, 0xB7, 0 },
- { 0x2566, 0xB8, 0 },
- { 0x2567, 0xB9, 0 },
- { 0x2568, 0xBA, 0 },
- { 0x2569, 0xBB, 0 },
- { 0x256A, 0xBC, 0 },
- { 0x256B, 0xBD, 0 },
- { 0x256C, 0xBE, 0 },
- { 0x2580, 0x8B, 0 },
- { 0x2584, 0x8C, 0 },
- { 0x2588, 0x8D, 0 },
- { 0x258C, 0x8E, 0 },
- { 0x2590, 0x8F, 0 },
- { 0x2591, 0x90, 0 },
- { 0x2592, 0x91, 0 },
- { 0x2593, 0x92, 0 },
- { 0x25A0, 0x94, 0 }
-};
-
-static ImplByteConvertData const aImplKOI8UByteCvtData =
-{
- aImplKOI8UToUniTab,
- NULL,
- KOI8UUNI_START, KOI8UUNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplKOI8UToCharTab,
- NULL,
- aImplKOI8UToCharTabEx,
- KOI8UCHAR_START, KOI8UCHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- KOI8UTOCHARTABEX_COUNT
-};
-
-static ImplTextEncodingData const aImplKoi8UTextEncodingData
- = { { &aImplKOI8UByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 204,
- "koi8-u",
- "KOI8-U",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_CYRILLIC */
-
-/* ======================================================================= */
-
-/* PT154 */
-/* Asian Cyrillic */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: typed per hand */
-/* Last-Changes from us: */
-
-#define PT154UNI_START 0x80
-#define PT154UNI_END 0xFF
-static sal_uInt16 const aImplPT154ToUniTab[PT154UNI_END - PT154UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0496, 0x0492, 0x04EE, 0x0493, 0x201E, 0x2026, 0x04B6, 0x04AE, /* 0x80 */
- 0x04B2, 0x04AF, 0x04A0, 0x04E2, 0x04A2, 0x049A, 0x04BA, 0x04B8, /* 0x80 */
- 0x0497, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
- 0x04B3, 0x04B7, 0x04A1, 0x04E3, 0x04A3, 0x049B, 0x04BB, 0x04B9, /* 0x90 */
- 0x00A0, 0x040E, 0x045E, 0x0408, 0x04E8, 0x0498, 0x04B0, 0x00A7, /* 0xA0 */
- 0x0401, 0x00A9, 0x04D8, 0x00AB, 0x00AC, 0x04EF, 0x00AE, 0x049C, /* 0xA0 */
- 0x00B0, 0x04B1, 0x0406, 0x0456, 0x0499, 0x04E9, 0x00B6, 0x00B7, /* 0xB0 */
- 0x0451, 0x2116, 0x04D9, 0x00BB, 0x0458, 0x04AA, 0x04AB, 0x049D, /* 0xB0 */
- 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* 0xC0 */
- 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, /* 0xC0 */
- 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0xD0 */
- 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0xD0 */
- 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* 0xE0 */
- 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, /* 0xE0 */
- 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* 0xF0 */
- 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define PT154CHAR_START 0x0410
-#define PT154CHAR_END 0x044F
-static sal_uChar const aImplPT154ToCharTab[PT154CHAR_END - PT154CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x0410 */
- 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x0410 */
- 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x0420 */
- 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0x0420 */
- 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x0430 */
- 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x0430 */
- 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x0440 */
- 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff /* 0x0440 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define PT154TOCHARTABEX_COUNT 64
-static ImplUniCharTabData const aImplPT154ToCharTabEx[PT154TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xa0, 0 },
- { 0x00A7, 0xa7, 0 },
- { 0x00A9, 0xa9, 0 },
- { 0x00AB, 0xab, 0 },
- { 0x00AC, 0xac, 0 },
- { 0x00AE, 0xae, 0 },
- { 0x00B0, 0xb0, 0 },
- { 0x00B6, 0xb6, 0 },
- { 0x00B7, 0xb7, 0 },
- { 0x00BB, 0xbb, 0 },
- { 0x0401, 0xa8, 0 },
- { 0x0406, 0xb2, 0 },
- { 0x0408, 0xa3, 0 },
- { 0x040E, 0xa1, 0 },
- { 0x0451, 0xb8, 0 },
- { 0x0456, 0xb3, 0 },
- { 0x0458, 0xbc, 0 },
- { 0x045E, 0xa2, 0 },
- { 0x0492, 0x81, 0 },
- { 0x0493, 0x83, 0 },
- { 0x0496, 0x80, 0 },
- { 0x0497, 0x90, 0 },
- { 0x0498, 0xa5, 0 },
- { 0x0499, 0xb4, 0 },
- { 0x049A, 0x8d, 0 },
- { 0x049B, 0x9d, 0 },
- { 0x049C, 0xaf, 0 },
- { 0x049D, 0xbf, 0 },
- { 0x04A0, 0x8a, 0 },
- { 0x04A1, 0x9a, 0 },
- { 0x04A2, 0x8c, 0 },
- { 0x04A3, 0x9c, 0 },
- { 0x04AA, 0xbd, 0 },
- { 0x04AB, 0xbe, 0 },
- { 0x04AE, 0x87, 0 },
- { 0x04AF, 0x89, 0 },
- { 0x04B0, 0xa6, 0 },
- { 0x04B1, 0xb1, 0 },
- { 0x04B2, 0x88, 0 },
- { 0x04B3, 0x98, 0 },
- { 0x04B6, 0x86, 0 },
- { 0x04B7, 0x99, 0 },
- { 0x04B8, 0x8f, 0 },
- { 0x04B9, 0x9f, 0 },
- { 0x04BA, 0x8e, 0 },
- { 0x04BB, 0x9e, 0 },
- { 0x04D8, 0xaa, 0 },
- { 0x04D9, 0xba, 0 },
- { 0x04E2, 0x8b, 0 },
- { 0x04E3, 0x9b, 0 },
- { 0x04E8, 0xa4, 0 },
- { 0x04E9, 0xb5, 0 },
- { 0x04EE, 0x82, 0 },
- { 0x04EF, 0xad, 0 },
- { 0x2013, 0x96, 0 },
- { 0x2014, 0x97, 0 },
- { 0x2018, 0x91, 0 },
- { 0x2019, 0x92, 0 },
- { 0x201C, 0x93, 0 },
- { 0x201D, 0x94, 0 },
- { 0x201E, 0x84, 0 },
- { 0x2022, 0x95, 0 },
- { 0x2026, 0x85, 0 },
- { 0x2116, 0xb9, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplPT154ByteCvtData =
-{
- aImplPT154ToUniTab,
- NULL,
- PT154UNI_START, PT154UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplPT154ToCharTab,
- NULL,
- aImplPT154ToCharTabEx,
- PT154CHAR_START, PT154CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- PT154TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplPT154TextEncodingData
- = { { &aImplPT154ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 204,
- "iso8859-5",
- "PTCP154",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_CYRILLIC */
diff --git a/sal/textenc/tcvtjp1.tab b/sal/textenc/tcvtjp1.tab
deleted file mode 100644
index 4c76deb1f..000000000
--- a/sal/textenc/tcvtjp1.tab
+++ /dev/null
@@ -1,1556 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the DBCS to UniCode tables for the following */
-/* japanese charsets: SJIS, MS932, APPLE_JAPANESE */
-
-/* ======================================================================= */
-
-/* Changes: */
-/* 81_50: SJIS == 0xFFE3, MS932 == 0xFFE3, APPLE_JAPANESE == 0x0203 - we use in all systems 0xFFE3 for better MS compatibility */
-/* 81_5C: SJIS == 0x2015, MS932 == 0x2015, APPLE_JAPANESE == 0x2014 - we use in all systems 0x2015 for better MS compatibility */
-/* 81_5F: SJIS == 0x005C, MS932 == 0xFF3C, APPLE_JAPANESE == 0xFF3C - we use in all systems 0xFF3C for better MS compatibility */
-/* 81_60: SJIS == 0x301C, MS932 == 0xFF5E, APPLE_JAPANESE == 0x301C - we use in all systems 0xFF5E for better MS compatibility */
-/* 81_61: SJIS == 0x2016, MS932 == 0x2225, APPLE_JAPANESE == 0x2016 - we use in all systems 0x2225 for better MS compatibility */
-/* 81_63: SJIS == 0x2026, MS932 == 0x2026, APPLE_JAPANESE == 0x22EF - we use in all systems 0x2026 for better MS compatibility */
-/* 81_7C: SJIS == 0x2212, MS932 == 0xFF0D, APPLE_JAPANESE == 0x2212 - we use in all systems 0xFF0D for better MS compatibility */
-/* 81_91: SJIS == 0x00A2, MS932 == 0xFFE0, APPLE_JAPANESE == 0x00A2 - we use in all systems 0xFFE0 for better MS compatibility */
-/* 81_92: SJIS == 0x00A3, MS932 == 0xFFE1, APPLE_JAPANESE == 0x00A3 - we use in all systems 0xFFE1 for better MS compatibility */
-/* 81_CA: SJIS == 0x00AC, MS932 == 0xFFE2, APPLE_JAPANESE == 0x00AC - we use in all systems 0xFFE1 for better MS compatibility */
-
-static sal_uInt16 const aImplDBCSToUniTab_MS932_81[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3000, 0x3001, 0x3002, 0xFF0C, 0xFF0E, 0x30FB, 0xFF1A, 0xFF1B, /* 0x40 */
- 0xFF1F, 0xFF01, 0x309B, 0x309C, 0x00B4, 0xFF40, 0x00A8, 0xFF3E, /* 0x40 */
- 0xFFE3, 0xFF3F, 0x30FD, 0x30FE, 0x309D, 0x309E, 0x3003, 0x4EDD, /* 0x50 */
- 0x3005, 0x3006, 0x3007, 0x30FC, 0x2015, 0x2010, 0xFF0F, 0xFF3C, /* 0x50 */
- 0xFF5E, 0x2225, 0xFF5C, 0x2026, 0x2025, 0x2018, 0x2019, 0x201C, /* 0x60 */
- 0x201D, 0xFF08, 0xFF09, 0x3014, 0x3015, 0xFF3B, 0xFF3D, 0xFF5B, /* 0x60 */
- 0xFF5D, 0x3008, 0x3009, 0x300A, 0x300B, 0x300C, 0x300D, 0x300E, /* 0x70 */
- 0x300F, 0x3010, 0x3011, 0xFF0B, 0xFF0D, 0x00B1, 0x00D7, 0, /* 0x70 */
- 0x00F7, 0xFF1D, 0x2260, 0xFF1C, 0xFF1E, 0x2266, 0x2267, 0x221E, /* 0x80 */
- 0x2234, 0x2642, 0x2640, 0x00B0, 0x2032, 0x2033, 0x2103, 0xFFE5, /* 0x80 */
- 0xFF04, 0xFFE0, 0xFFE1, 0xFF05, 0xFF03, 0xFF06, 0xFF0A, 0xFF20, /* 0x90 */
- 0x00A7, 0x2606, 0x2605, 0x25CB, 0x25CF, 0x25CE, 0x25C7, 0x25C6, /* 0x90 */
- 0x25A1, 0x25A0, 0x25B3, 0x25B2, 0x25BD, 0x25BC, 0x203B, 0x3012, /* 0xA0 */
- 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x2208, 0x220B, 0x2286, 0x2287, 0x2282, 0x2283, 0x222A, 0x2229, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0x2227, 0x2228, 0xFFE2, 0x21D2, 0x21D4, 0x2200, 0x2203, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0x2220, 0x22A5, 0x2312, 0x2202, 0x2207, 0x2261, /* 0xD0 */
- 0x2252, 0x226A, 0x226B, 0x221A, 0x223D, 0x221D, 0x2235, 0x222B, /* 0xE0 */
- 0x222C, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x212B, 0x2030, 0x266F, 0x266D, 0x266A, 0x2020, 0x2021, 0x00B6, /* 0xF0 */
- 0, 0, 0, 0, 0x25EF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_82[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x40 */
- 0xFF10, /* 0x40 */
- 0xFF11, 0xFF12, 0xFF13, 0xFF14, 0xFF15, 0xFF16, 0xFF17, 0xFF18, /* 0x50 */
- 0xFF19, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xFF21, 0xFF22, 0xFF23, 0xFF24, 0xFF25, 0xFF26, 0xFF27, 0xFF28, /* 0x60 */
- 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C, 0xFF2D, 0xFF2E, 0xFF2F, 0xFF30, /* 0x60 */
- 0xFF31, 0xFF32, 0xFF33, 0xFF34, 0xFF35, 0xFF36, 0xFF37, 0xFF38, /* 0x70 */
- 0xFF39, 0xFF3A, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xFF41, 0xFF42, 0xFF43, 0xFF44, 0xFF45, 0xFF46, 0xFF47, /* 0x80 */
- 0xFF48, 0xFF49, 0xFF4A, 0xFF4B, 0xFF4C, 0xFF4D, 0xFF4E, 0xFF4F, /* 0x80 */
- 0xFF50, 0xFF51, 0xFF52, 0xFF53, 0xFF54, 0xFF55, 0xFF56, 0xFF57, /* 0x90 */
- 0xFF58, 0xFF59, 0xFF5A, 0, 0, 0, 0, 0x3041, /* 0x90 */
- 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, /* 0xA0 */
- 0x304A, 0x304B, 0x304C, 0x304D, 0x304E, 0x304F, 0x3050, 0x3051, /* 0xA0 */
- 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, /* 0xB0 */
- 0x305A, 0x305B, 0x305C, 0x305D, 0x305E, 0x305F, 0x3060, 0x3061, /* 0xB0 */
- 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, /* 0xC0 */
- 0x306A, 0x306B, 0x306C, 0x306D, 0x306E, 0x306F, 0x3070, 0x3071, /* 0xC0 */
- 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, 0x3079, /* 0xD0 */
- 0x307A, 0x307B, 0x307C, 0x307D, 0x307E, 0x307F, 0x3080, 0x3081, /* 0xD0 */
- 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, 0x3089, /* 0xE0 */
- 0x308A, 0x308B, 0x308C, 0x308D, 0x308E, 0x308F, 0x3090, 0x3091, /* 0xE0 */
- 0x3092, 0x3093 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_83[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x30A1, 0x30A2, 0x30A3, 0x30A4, 0x30A5, 0x30A6, 0x30A7, 0x30A8, /* 0x40 */
- 0x30A9, 0x30AA, 0x30AB, 0x30AC, 0x30AD, 0x30AE, 0x30AF, 0x30B0, /* 0x40 */
- 0x30B1, 0x30B2, 0x30B3, 0x30B4, 0x30B5, 0x30B6, 0x30B7, 0x30B8, /* 0x50 */
- 0x30B9, 0x30BA, 0x30BB, 0x30BC, 0x30BD, 0x30BE, 0x30BF, 0x30C0, /* 0x50 */
- 0x30C1, 0x30C2, 0x30C3, 0x30C4, 0x30C5, 0x30C6, 0x30C7, 0x30C8, /* 0x60 */
- 0x30C9, 0x30CA, 0x30CB, 0x30CC, 0x30CD, 0x30CE, 0x30CF, 0x30D0, /* 0x60 */
- 0x30D1, 0x30D2, 0x30D3, 0x30D4, 0x30D5, 0x30D6, 0x30D7, 0x30D8, /* 0x70 */
- 0x30D9, 0x30DA, 0x30DB, 0x30DC, 0x30DD, 0x30DE, 0x30DF, 0, /* 0x70 */
- 0x30E0, 0x30E1, 0x30E2, 0x30E3, 0x30E4, 0x30E5, 0x30E6, 0x30E7, /* 0x80 */
- 0x30E8, 0x30E9, 0x30EA, 0x30EB, 0x30EC, 0x30ED, 0x30EE, 0x30EF, /* 0x80 */
- 0x30F0, 0x30F1, 0x30F2, 0x30F3, 0x30F4, 0x30F5, 0x30F6, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0x0391, /* 0x90 */
- 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, /* 0xA0 */
- 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0, 0x03A1, /* 0xA0 */
- 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0x03B1, /* 0xB0 */
- 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8, 0x03B9, /* 0xC0 */
- 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0x03C1, /* 0xC0 */
- 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, 0x03C9 /* 0xD0 */
- /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_84[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416, /* 0x40 */
- 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, /* 0x40 */
- 0x041F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, /* 0x50 */
- 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, /* 0x50 */
- 0x042F, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436, /* 0x70 */
- 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0, /* 0x70 */
- 0x043E, 0x043F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, /* 0x80 */
- 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, /* 0x80 */
- 0x044E, 0x044F, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0x2500, /* 0x90 */
- 0x2502, 0x250C, 0x2510, 0x2518, 0x2514, 0x251C, 0x252C, 0x2524, /* 0xA0 */
- 0x2534, 0x253C, 0x2501, 0x2503, 0x250F, 0x2513, 0x251B, 0x2517, /* 0xA0 */
- 0x2523, 0x2533, 0x252B, 0x253B, 0x254B, 0x2520, 0x252F, 0x2528, /* 0xB0 */
- 0x2537, 0x253F, 0x251D, 0x2530, 0x2525, 0x2538, 0x2542 /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_APPLEJAPANESE_85[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, /* 0x40 */
- 0x2468, 0x2469, 0x246A, 0x246B, 0x246C, 0x246D, 0x246E, 0x246F, /* 0x40 */
- 0x2470, 0x2471, 0x2472, 0x2473, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0x2474, 0x2475, /* 0x50 */
- 0x2476, 0x2477, 0x2478, 0x2479, 0x247A, 0x247B, 0x247C, 0x247D, /* 0x60 */
- 0x247E, 0x247F, 0x2480, 0x2481, 0x2482, 0x2483, 0x2484, 0x2485, /* 0x60 */
- 0x2486, 0x2487, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0x2776, 0x2777, 0x2778, 0, /* 0x70 */
- 0x2779, 0x277A, 0x277B, 0x277C, 0x277D, 0x277E, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0x2488, 0x2489, 0x248A, 0x248B, 0x248C, 0x248D, /* 0x90 */
- 0x248E, 0x248F, 0x2490, 0, 0, 0, 0, 0x2160, /* 0x90 */
- 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, /* 0xA0 */
- 0x2169, 0x216A, 0x216B, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, /* 0xB0 */
- 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0x217A, 0x217B, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0x249C, 0x249D, 0x249E, 0x249F, 0x24A0, /* 0xD0 */
- 0x24A1, 0x24A2, 0x24A3, 0x24A4, 0x24A5, 0x24A6, 0x24A7, 0x24A8, /* 0xE0 */
- 0x24A9, 0x24AA, 0x24AB, 0x24AC, 0x24AD, 0x24AE, 0x24AF, 0x24B0, /* 0xE0 */
- 0x24B1, 0x24B2, 0x24B3, 0x24B4, 0x24B5 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_APPLEJAPANESE_86[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x339C, 0x339F, 0x339D, 0x33A0, 0x33A4, 0, 0x33A1, 0x33A5, /* 0x40 */
- 0x339E, 0x33A2, 0x338E, 0, 0x338F, 0x33C4, 0x3396, 0x3397, /* 0x40 */
- 0x2113, 0x3398, 0x33B3, 0x33B2, 0x33B1, 0x33B0, 0x2109, 0x33D4, /* 0x50 */
- 0x33CB, 0x3390, 0x3385, 0x3386, 0x3387, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0x2116, 0x33CD, 0x2121, 0, 0x2664, /* 0x90 */
- 0x2667, 0x2661, 0x2662, 0x2660, 0x2663, 0x2665, 0x2666, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x3020, 0x260E, 0x3004, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0x261E, /* 0xC0 */
- 0x261C, 0x261D, 0x261F, 0x21C6, 0x21C4, 0x21C5, 0, 0x21E8, /* 0xC0 */
- 0x21E6, 0x21E7, 0x21E9 /* 0xD0 */
- /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_MS932_87[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, /* 0x40 */
- 0x2468, 0x2469, 0x246A, 0x246B, 0x246C, 0x246D, 0x246E, 0x246F, /* 0x40 */
- 0x2470, 0x2471, 0x2472, 0x2473, 0x2160, 0x2161, 0x2162, 0x2163, /* 0x50 */
- 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0, 0x3349, /* 0x50 */
- 0x3314, 0x3322, 0x334D, 0x3318, 0x3327, 0x3303, 0x3336, 0x3351, /* 0x60 */
- 0x3357, 0x330D, 0x3326, 0x3323, 0x332B, 0x334A, 0x333B, 0x339C, /* 0x60 */
- 0x339D, 0x339E, 0x338E, 0x338F, 0x33C4, 0x33A1, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x337B, 0, /* 0x70 */
- 0x301D, 0x301F, 0x2116, 0x33CD, 0x2121, 0x32A4, 0x32A5, 0x32A6, /* 0x80 */
- 0x32A7, 0x32A8, 0x3231, 0x3232, 0x3239, 0x337E, 0x337D, 0x337C, /* 0x80 */
- 0x2252, 0x2261, 0x222B, 0x222E, 0x2211, 0x221A, 0x22A5, 0x2220, /* 0x90 */
- 0x221F, 0x22BF, 0x2235, 0x2229, 0x222A /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_APPLEJAPANESE_87[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3230, 0x322A, 0x322B, 0x322C, 0x322D, 0x322E, 0x322F, 0x3240, /* 0x40 */
- 0x3237, 0x3242, 0x3243, 0x3239, 0x323A, 0x3231, 0x323E, 0x3234, /* 0x40 */
- 0x3232, 0x323B, 0x3236, 0x3233, 0x3235, 0x323C, 0x323D, 0x323F, /* 0x50 */
- 0x3238, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x32A4, 0x32A5, 0x32A6, 0x32A7, 0x32A8, /* 0x90 */
- 0x32A9, 0x3296, 0x329D, 0x3298, 0x329E, 0, 0x3299, 0x3349, /* 0x90 */
- 0x3322, 0x334D, 0x3314, 0x3316, 0x3305, 0x3333, 0x334E, 0x3303, /* 0xA0 */
- 0x3336, 0x3318, 0x3315, 0x3327, 0x3351, 0x334A, 0x3339, 0x3357, /* 0xA0 */
- 0x330D, 0x3342, 0x3323, 0x3326, 0x333B, 0x332B, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x3300, 0x331E, 0x332A, /* 0xB0 */
- 0x3331, 0x3347, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0x337E, 0x337D, 0x337C, /* 0xE0 */
- 0x337B, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0x337F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_88[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x90 */
- 0x4E9C, /* 0x90 */
- 0x5516, 0x5A03, 0x963F, 0x54C0, 0x611B, 0x6328, 0x59F6, 0x9022, /* 0xA0 */
- 0x8475, 0x831C, 0x7A50, 0x60AA, 0x63E1, 0x6E25, 0x65ED, 0x8466, /* 0xA0 */
- 0x82A6, 0x9BF5, 0x6893, 0x5727, 0x65A1, 0x6271, 0x5B9B, 0x59D0, /* 0xB0 */
- 0x867B, 0x98F4, 0x7D62, 0x7DBE, 0x9B8E, 0x6216, 0x7C9F, 0x88B7, /* 0xB0 */
- 0x5B89, 0x5EB5, 0x6309, 0x6697, 0x6848, 0x95C7, 0x978D, 0x674F, /* 0xC0 */
- 0x4EE5, 0x4F0A, 0x4F4D, 0x4F9D, 0x5049, 0x56F2, 0x5937, 0x59D4, /* 0xC0 */
- 0x5A01, 0x5C09, 0x60DF, 0x610F, 0x6170, 0x6613, 0x6905, 0x70BA, /* 0xD0 */
- 0x754F, 0x7570, 0x79FB, 0x7DAD, 0x7DEF, 0x80C3, 0x840E, 0x8863, /* 0xD0 */
- 0x8B02, 0x9055, 0x907A, 0x533B, 0x4E95, 0x4EA5, 0x57DF, 0x80B2, /* 0xE0 */
- 0x90C1, 0x78EF, 0x4E00, 0x58F1, 0x6EA2, 0x9038, 0x7A32, 0x8328, /* 0xE0 */
- 0x828B, 0x9C2F, 0x5141, 0x5370, 0x54BD, 0x54E1, 0x56E0, 0x59FB, /* 0xF0 */
- 0x5F15, 0x98F2, 0x6DEB, 0x80E4, 0x852D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_APPLEJAPANESE_88[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x222E, 0x221F, 0x22BF, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0x301D, 0x301F, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0x3094, 0, 0x30F7, 0x30F8, 0x30F9, 0x30FA, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0x4E9C, /* 0x90 */
- 0x5516, 0x5A03, 0x963F, 0x54C0, 0x611B, 0x6328, 0x59F6, 0x9022, /* 0xA0 */
- 0x8475, 0x831C, 0x7A50, 0x60AA, 0x63E1, 0x6E25, 0x65ED, 0x8466, /* 0xA0 */
- 0x82A6, 0x9BF5, 0x6893, 0x5727, 0x65A1, 0x6271, 0x5B9B, 0x59D0, /* 0xB0 */
- 0x867B, 0x98F4, 0x7D62, 0x7DBE, 0x9B8E, 0x6216, 0x7C9F, 0x88B7, /* 0xB0 */
- 0x5B89, 0x5EB5, 0x6309, 0x6697, 0x6848, 0x95C7, 0x978D, 0x674F, /* 0xC0 */
- 0x4EE5, 0x4F0A, 0x4F4D, 0x4F9D, 0x5049, 0x56F2, 0x5937, 0x59D4, /* 0xC0 */
- 0x5A01, 0x5C09, 0x60DF, 0x610F, 0x6170, 0x6613, 0x6905, 0x70BA, /* 0xD0 */
- 0x754F, 0x7570, 0x79FB, 0x7DAD, 0x7DEF, 0x80C3, 0x840E, 0x8863, /* 0xD0 */
- 0x8B02, 0x9055, 0x907A, 0x533B, 0x4E95, 0x4EA5, 0x57DF, 0x80B2, /* 0xE0 */
- 0x90C1, 0x78EF, 0x4E00, 0x58F1, 0x6EA2, 0x9038, 0x7A32, 0x8328, /* 0xE0 */
- 0x828B, 0x9C2F, 0x5141, 0x5370, 0x54BD, 0x54E1, 0x56E0, 0x59FB, /* 0xF0 */
- 0x5F15, 0x98F2, 0x6DEB, 0x80E4, 0x852D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_89[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9662, 0x9670, 0x96A0, 0x97FB, 0x540B, 0x53F3, 0x5B87, 0x70CF, /* 0x40 */
- 0x7FBD, 0x8FC2, 0x96E8, 0x536F, 0x9D5C, 0x7ABA, 0x4E11, 0x7893, /* 0x40 */
- 0x81FC, 0x6E26, 0x5618, 0x5504, 0x6B1D, 0x851A, 0x9C3B, 0x59E5, /* 0x50 */
- 0x53A9, 0x6D66, 0x74DC, 0x958F, 0x5642, 0x4E91, 0x904B, 0x96F2, /* 0x50 */
- 0x834F, 0x990C, 0x53E1, 0x55B6, 0x5B30, 0x5F71, 0x6620, 0x66F3, /* 0x60 */
- 0x6804, 0x6C38, 0x6CF3, 0x6D29, 0x745B, 0x76C8, 0x7A4E, 0x9834, /* 0x60 */
- 0x82F1, 0x885B, 0x8A60, 0x92ED, 0x6DB2, 0x75AB, 0x76CA, 0x99C5, /* 0x70 */
- 0x60A6, 0x8B01, 0x8D8A, 0x95B2, 0x698E, 0x53AD, 0x5186, 0, /* 0x70 */
- 0x5712, 0x5830, 0x5944, 0x5BB4, 0x5EF6, 0x6028, 0x63A9, 0x63F4, /* 0x80 */
- 0x6CBF, 0x6F14, 0x708E, 0x7114, 0x7159, 0x71D5, 0x733F, 0x7E01, /* 0x80 */
- 0x8276, 0x82D1, 0x8597, 0x9060, 0x925B, 0x9D1B, 0x5869, 0x65BC, /* 0x90 */
- 0x6C5A, 0x7525, 0x51F9, 0x592E, 0x5965, 0x5F80, 0x5FDC, 0x62BC, /* 0x90 */
- 0x65FA, 0x6A2A, 0x6B27, 0x6BB4, 0x738B, 0x7FC1, 0x8956, 0x9D2C, /* 0xA0 */
- 0x9D0E, 0x9EC4, 0x5CA1, 0x6C96, 0x837B, 0x5104, 0x5C4B, 0x61B6, /* 0xA0 */
- 0x81C6, 0x6876, 0x7261, 0x4E59, 0x4FFA, 0x5378, 0x6069, 0x6E29, /* 0xB0 */
- 0x7A4F, 0x97F3, 0x4E0B, 0x5316, 0x4EEE, 0x4F55, 0x4F3D, 0x4FA1, /* 0xB0 */
- 0x4F73, 0x52A0, 0x53EF, 0x5609, 0x590F, 0x5AC1, 0x5BB6, 0x5BE1, /* 0xC0 */
- 0x79D1, 0x6687, 0x679C, 0x67B6, 0x6B4C, 0x6CB3, 0x706B, 0x73C2, /* 0xC0 */
- 0x798D, 0x79BE, 0x7A3C, 0x7B87, 0x82B1, 0x82DB, 0x8304, 0x8377, /* 0xD0 */
- 0x83EF, 0x83D3, 0x8766, 0x8AB2, 0x5629, 0x8CA8, 0x8FE6, 0x904E, /* 0xD0 */
- 0x971E, 0x868A, 0x4FC4, 0x5CE8, 0x6211, 0x7259, 0x753B, 0x81E5, /* 0xE0 */
- 0x82BD, 0x86FE, 0x8CC0, 0x96C5, 0x9913, 0x99D5, 0x4ECB, 0x4F1A, /* 0xE0 */
- 0x89E3, 0x56DE, 0x584A, 0x58CA, 0x5EFB, 0x5FEB, 0x602A, 0x6094, /* 0xF0 */
- 0x6062, 0x61D0, 0x6212, 0x62D0, 0x6539 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_8A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9B41, 0x6666, 0x68B0, 0x6D77, 0x7070, 0x754C, 0x7686, 0x7D75, /* 0x40 */
- 0x82A5, 0x87F9, 0x958B, 0x968E, 0x8C9D, 0x51F1, 0x52BE, 0x5916, /* 0x40 */
- 0x54B3, 0x5BB3, 0x5D16, 0x6168, 0x6982, 0x6DAF, 0x788D, 0x84CB, /* 0x50 */
- 0x8857, 0x8A72, 0x93A7, 0x9AB8, 0x6D6C, 0x99A8, 0x86D9, 0x57A3, /* 0x50 */
- 0x67FF, 0x86CE, 0x920E, 0x5283, 0x5687, 0x5404, 0x5ED3, 0x62E1, /* 0x60 */
- 0x64B9, 0x683C, 0x6838, 0x6BBB, 0x7372, 0x78BA, 0x7A6B, 0x899A, /* 0x60 */
- 0x89D2, 0x8D6B, 0x8F03, 0x90ED, 0x95A3, 0x9694, 0x9769, 0x5B66, /* 0x70 */
- 0x5CB3, 0x697D, 0x984D, 0x984E, 0x639B, 0x7B20, 0x6A2B, 0, /* 0x70 */
- 0x6A7F, 0x68B6, 0x9C0D, 0x6F5F, 0x5272, 0x559D, 0x6070, 0x62EC, /* 0x80 */
- 0x6D3B, 0x6E07, 0x6ED1, 0x845B, 0x8910, 0x8F44, 0x4E14, 0x9C39, /* 0x80 */
- 0x53F6, 0x691B, 0x6A3A, 0x9784, 0x682A, 0x515C, 0x7AC3, 0x84B2, /* 0x90 */
- 0x91DC, 0x938C, 0x565B, 0x9D28, 0x6822, 0x8305, 0x8431, 0x7CA5, /* 0x90 */
- 0x5208, 0x82C5, 0x74E6, 0x4E7E, 0x4F83, 0x51A0, 0x5BD2, 0x520A, /* 0xA0 */
- 0x52D8, 0x52E7, 0x5DFB, 0x559A, 0x582A, 0x59E6, 0x5B8C, 0x5B98, /* 0xA0 */
- 0x5BDB, 0x5E72, 0x5E79, 0x60A3, 0x611F, 0x6163, 0x61BE, 0x63DB, /* 0xB0 */
- 0x6562, 0x67D1, 0x6853, 0x68FA, 0x6B3E, 0x6B53, 0x6C57, 0x6F22, /* 0xB0 */
- 0x6F97, 0x6F45, 0x74B0, 0x7518, 0x76E3, 0x770B, 0x7AFF, 0x7BA1, /* 0xC0 */
- 0x7C21, 0x7DE9, 0x7F36, 0x7FF0, 0x809D, 0x8266, 0x839E, 0x89B3, /* 0xC0 */
- 0x8ACC, 0x8CAB, 0x9084, 0x9451, 0x9593, 0x9591, 0x95A2, 0x9665, /* 0xD0 */
- 0x97D3, 0x9928, 0x8218, 0x4E38, 0x542B, 0x5CB8, 0x5DCC, 0x73A9, /* 0xD0 */
- 0x764C, 0x773C, 0x5CA9, 0x7FEB, 0x8D0B, 0x96C1, 0x9811, 0x9854, /* 0xE0 */
- 0x9858, 0x4F01, 0x4F0E, 0x5371, 0x559C, 0x5668, 0x57FA, 0x5947, /* 0xE0 */
- 0x5B09, 0x5BC4, 0x5C90, 0x5E0C, 0x5E7E, 0x5FCC, 0x63EE, 0x673A, /* 0xF0 */
- 0x65D7, 0x65E2, 0x671F, 0x68CB, 0x68C4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_8B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6A5F, 0x5E30, 0x6BC5, 0x6C17, 0x6C7D, 0x757F, 0x7948, 0x5B63, /* 0x40 */
- 0x7A00, 0x7D00, 0x5FBD, 0x898F, 0x8A18, 0x8CB4, 0x8D77, 0x8ECC, /* 0x40 */
- 0x8F1D, 0x98E2, 0x9A0E, 0x9B3C, 0x4E80, 0x507D, 0x5100, 0x5993, /* 0x50 */
- 0x5B9C, 0x622F, 0x6280, 0x64EC, 0x6B3A, 0x72A0, 0x7591, 0x7947, /* 0x50 */
- 0x7FA9, 0x87FB, 0x8ABC, 0x8B70, 0x63AC, 0x83CA, 0x97A0, 0x5409, /* 0x60 */
- 0x5403, 0x55AB, 0x6854, 0x6A58, 0x8A70, 0x7827, 0x6775, 0x9ECD, /* 0x60 */
- 0x5374, 0x5BA2, 0x811A, 0x8650, 0x9006, 0x4E18, 0x4E45, 0x4EC7, /* 0x70 */
- 0x4F11, 0x53CA, 0x5438, 0x5BAE, 0x5F13, 0x6025, 0x6551, 0, /* 0x70 */
- 0x673D, 0x6C42, 0x6C72, 0x6CE3, 0x7078, 0x7403, 0x7A76, 0x7AAE, /* 0x80 */
- 0x7B08, 0x7D1A, 0x7CFE, 0x7D66, 0x65E7, 0x725B, 0x53BB, 0x5C45, /* 0x80 */
- 0x5DE8, 0x62D2, 0x62E0, 0x6319, 0x6E20, 0x865A, 0x8A31, 0x8DDD, /* 0x90 */
- 0x92F8, 0x6F01, 0x79A6, 0x9B5A, 0x4EA8, 0x4EAB, 0x4EAC, 0x4F9B, /* 0x90 */
- 0x4FA0, 0x50D1, 0x5147, 0x7AF6, 0x5171, 0x51F6, 0x5354, 0x5321, /* 0xA0 */
- 0x537F, 0x53EB, 0x55AC, 0x5883, 0x5CE1, 0x5F37, 0x5F4A, 0x602F, /* 0xA0 */
- 0x6050, 0x606D, 0x631F, 0x6559, 0x6A4B, 0x6CC1, 0x72C2, 0x72ED, /* 0xB0 */
- 0x77EF, 0x80F8, 0x8105, 0x8208, 0x854E, 0x90F7, 0x93E1, 0x97FF, /* 0xB0 */
- 0x9957, 0x9A5A, 0x4EF0, 0x51DD, 0x5C2D, 0x6681, 0x696D, 0x5C40, /* 0xC0 */
- 0x66F2, 0x6975, 0x7389, 0x6850, 0x7C81, 0x50C5, 0x52E4, 0x5747, /* 0xC0 */
- 0x5DFE, 0x9326, 0x65A4, 0x6B23, 0x6B3D, 0x7434, 0x7981, 0x79BD, /* 0xD0 */
- 0x7B4B, 0x7DCA, 0x82B9, 0x83CC, 0x887F, 0x895F, 0x8B39, 0x8FD1, /* 0xD0 */
- 0x91D1, 0x541F, 0x9280, 0x4E5D, 0x5036, 0x53E5, 0x533A, 0x72D7, /* 0xE0 */
- 0x7396, 0x77E9, 0x82E6, 0x8EAF, 0x99C6, 0x99C8, 0x99D2, 0x5177, /* 0xE0 */
- 0x611A, 0x865E, 0x55B0, 0x7A7A, 0x5076, 0x5BD3, 0x9047, 0x9685, /* 0xF0 */
- 0x4E32, 0x6ADB, 0x91E7, 0x5C51, 0x5C48 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_8C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6398, 0x7A9F, 0x6C93, 0x9774, 0x8F61, 0x7AAA, 0x718A, 0x9688, /* 0x40 */
- 0x7C82, 0x6817, 0x7E70, 0x6851, 0x936C, 0x52F2, 0x541B, 0x85AB, /* 0x40 */
- 0x8A13, 0x7FA4, 0x8ECD, 0x90E1, 0x5366, 0x8888, 0x7941, 0x4FC2, /* 0x50 */
- 0x50BE, 0x5211, 0x5144, 0x5553, 0x572D, 0x73EA, 0x578B, 0x5951, /* 0x50 */
- 0x5F62, 0x5F84, 0x6075, 0x6176, 0x6167, 0x61A9, 0x63B2, 0x643A, /* 0x60 */
- 0x656C, 0x666F, 0x6842, 0x6E13, 0x7566, 0x7A3D, 0x7CFB, 0x7D4C, /* 0x60 */
- 0x7D99, 0x7E4B, 0x7F6B, 0x830E, 0x834A, 0x86CD, 0x8A08, 0x8A63, /* 0x70 */
- 0x8B66, 0x8EFD, 0x981A, 0x9D8F, 0x82B8, 0x8FCE, 0x9BE8, 0, /* 0x70 */
- 0x5287, 0x621F, 0x6483, 0x6FC0, 0x9699, 0x6841, 0x5091, 0x6B20, /* 0x80 */
- 0x6C7A, 0x6F54, 0x7A74, 0x7D50, 0x8840, 0x8A23, 0x6708, 0x4EF6, /* 0x80 */
- 0x5039, 0x5026, 0x5065, 0x517C, 0x5238, 0x5263, 0x55A7, 0x570F, /* 0x90 */
- 0x5805, 0x5ACC, 0x5EFA, 0x61B2, 0x61F8, 0x62F3, 0x6372, 0x691C, /* 0x90 */
- 0x6A29, 0x727D, 0x72AC, 0x732E, 0x7814, 0x786F, 0x7D79, 0x770C, /* 0xA0 */
- 0x80A9, 0x898B, 0x8B19, 0x8CE2, 0x8ED2, 0x9063, 0x9375, 0x967A, /* 0xA0 */
- 0x9855, 0x9A13, 0x9E78, 0x5143, 0x539F, 0x53B3, 0x5E7B, 0x5F26, /* 0xB0 */
- 0x6E1B, 0x6E90, 0x7384, 0x73FE, 0x7D43, 0x8237, 0x8A00, 0x8AFA, /* 0xB0 */
- 0x9650, 0x4E4E, 0x500B, 0x53E4, 0x547C, 0x56FA, 0x59D1, 0x5B64, /* 0xC0 */
- 0x5DF1, 0x5EAB, 0x5F27, 0x6238, 0x6545, 0x67AF, 0x6E56, 0x72D0, /* 0xC0 */
- 0x7CCA, 0x88B4, 0x80A1, 0x80E1, 0x83F0, 0x864E, 0x8A87, 0x8DE8, /* 0xD0 */
- 0x9237, 0x96C7, 0x9867, 0x9F13, 0x4E94, 0x4E92, 0x4F0D, 0x5348, /* 0xD0 */
- 0x5449, 0x543E, 0x5A2F, 0x5F8C, 0x5FA1, 0x609F, 0x68A7, 0x6A8E, /* 0xE0 */
- 0x745A, 0x7881, 0x8A9E, 0x8AA4, 0x8B77, 0x9190, 0x4E5E, 0x9BC9, /* 0xE0 */
- 0x4EA4, 0x4F7C, 0x4FAF, 0x5019, 0x5016, 0x5149, 0x516C, 0x529F, /* 0xF0 */
- 0x52B9, 0x52FE, 0x539A, 0x53E3, 0x5411 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_8D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x540E, 0x5589, 0x5751, 0x57A2, 0x597D, 0x5B54, 0x5B5D, 0x5B8F, /* 0x40 */
- 0x5DE5, 0x5DE7, 0x5DF7, 0x5E78, 0x5E83, 0x5E9A, 0x5EB7, 0x5F18, /* 0x40 */
- 0x6052, 0x614C, 0x6297, 0x62D8, 0x63A7, 0x653B, 0x6602, 0x6643, /* 0x50 */
- 0x66F4, 0x676D, 0x6821, 0x6897, 0x69CB, 0x6C5F, 0x6D2A, 0x6D69, /* 0x50 */
- 0x6E2F, 0x6E9D, 0x7532, 0x7687, 0x786C, 0x7A3F, 0x7CE0, 0x7D05, /* 0x60 */
- 0x7D18, 0x7D5E, 0x7DB1, 0x8015, 0x8003, 0x80AF, 0x80B1, 0x8154, /* 0x60 */
- 0x818F, 0x822A, 0x8352, 0x884C, 0x8861, 0x8B1B, 0x8CA2, 0x8CFC, /* 0x70 */
- 0x90CA, 0x9175, 0x9271, 0x783F, 0x92FC, 0x95A4, 0x964D, 0, /* 0x70 */
- 0x9805, 0x9999, 0x9AD8, 0x9D3B, 0x525B, 0x52AB, 0x53F7, 0x5408, /* 0x80 */
- 0x58D5, 0x62F7, 0x6FE0, 0x8C6A, 0x8F5F, 0x9EB9, 0x514B, 0x523B, /* 0x80 */
- 0x544A, 0x56FD, 0x7A40, 0x9177, 0x9D60, 0x9ED2, 0x7344, 0x6F09, /* 0x90 */
- 0x8170, 0x7511, 0x5FFD, 0x60DA, 0x9AA8, 0x72DB, 0x8FBC, 0x6B64, /* 0x90 */
- 0x9803, 0x4ECA, 0x56F0, 0x5764, 0x58BE, 0x5A5A, 0x6068, 0x61C7, /* 0xA0 */
- 0x660F, 0x6606, 0x6839, 0x68B1, 0x6DF7, 0x75D5, 0x7D3A, 0x826E, /* 0xA0 */
- 0x9B42, 0x4E9B, 0x4F50, 0x53C9, 0x5506, 0x5D6F, 0x5DE6, 0x5DEE, /* 0xB0 */
- 0x67FB, 0x6C99, 0x7473, 0x7802, 0x8A50, 0x9396, 0x88DF, 0x5750, /* 0xB0 */
- 0x5EA7, 0x632B, 0x50B5, 0x50AC, 0x518D, 0x6700, 0x54C9, 0x585E, /* 0xC0 */
- 0x59BB, 0x5BB0, 0x5F69, 0x624D, 0x63A1, 0x683D, 0x6B73, 0x6E08, /* 0xC0 */
- 0x707D, 0x91C7, 0x7280, 0x7815, 0x7826, 0x796D, 0x658E, 0x7D30, /* 0xD0 */
- 0x83DC, 0x88C1, 0x8F09, 0x969B, 0x5264, 0x5728, 0x6750, 0x7F6A, /* 0xD0 */
- 0x8CA1, 0x51B4, 0x5742, 0x962A, 0x583A, 0x698A, 0x80B4, 0x54B2, /* 0xE0 */
- 0x5D0E, 0x57FC, 0x7895, 0x9DFA, 0x4F5C, 0x524A, 0x548B, 0x643E, /* 0xE0 */
- 0x6628, 0x6714, 0x67F5, 0x7A84, 0x7B56, 0x7D22, 0x932F, 0x685C, /* 0xF0 */
- 0x9BAD, 0x7B39, 0x5319, 0x518A, 0x5237 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_8E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5BDF, 0x62F6, 0x64AE, 0x64E6, 0x672D, 0x6BBA, 0x85A9, 0x96D1, /* 0x40 */
- 0x7690, 0x9BD6, 0x634C, 0x9306, 0x9BAB, 0x76BF, 0x6652, 0x4E09, /* 0x40 */
- 0x5098, 0x53C2, 0x5C71, 0x60E8, 0x6492, 0x6563, 0x685F, 0x71E6, /* 0x50 */
- 0x73CA, 0x7523, 0x7B97, 0x7E82, 0x8695, 0x8B83, 0x8CDB, 0x9178, /* 0x50 */
- 0x9910, 0x65AC, 0x66AB, 0x6B8B, 0x4ED5, 0x4ED4, 0x4F3A, 0x4F7F, /* 0x60 */
- 0x523A, 0x53F8, 0x53F2, 0x55E3, 0x56DB, 0x58EB, 0x59CB, 0x59C9, /* 0x60 */
- 0x59FF, 0x5B50, 0x5C4D, 0x5E02, 0x5E2B, 0x5FD7, 0x601D, 0x6307, /* 0x70 */
- 0x652F, 0x5B5C, 0x65AF, 0x65BD, 0x65E8, 0x679D, 0x6B62, 0, /* 0x70 */
- 0x6B7B, 0x6C0F, 0x7345, 0x7949, 0x79C1, 0x7CF8, 0x7D19, 0x7D2B, /* 0x80 */
- 0x80A2, 0x8102, 0x81F3, 0x8996, 0x8A5E, 0x8A69, 0x8A66, 0x8A8C, /* 0x80 */
- 0x8AEE, 0x8CC7, 0x8CDC, 0x96CC, 0x98FC, 0x6B6F, 0x4E8B, 0x4F3C, /* 0x90 */
- 0x4F8D, 0x5150, 0x5B57, 0x5BFA, 0x6148, 0x6301, 0x6642, 0x6B21, /* 0x90 */
- 0x6ECB, 0x6CBB, 0x723E, 0x74BD, 0x75D4, 0x78C1, 0x793A, 0x800C, /* 0xA0 */
- 0x8033, 0x81EA, 0x8494, 0x8F9E, 0x6C50, 0x9E7F, 0x5F0F, 0x8B58, /* 0xA0 */
- 0x9D2B, 0x7AFA, 0x8EF8, 0x5B8D, 0x96EB, 0x4E03, 0x53F1, 0x57F7, /* 0xB0 */
- 0x5931, 0x5AC9, 0x5BA4, 0x6089, 0x6E7F, 0x6F06, 0x75BE, 0x8CEA, /* 0xB0 */
- 0x5B9F, 0x8500, 0x7BE0, 0x5072, 0x67F4, 0x829D, 0x5C61, 0x854A, /* 0xC0 */
- 0x7E1E, 0x820E, 0x5199, 0x5C04, 0x6368, 0x8D66, 0x659C, 0x716E, /* 0xC0 */
- 0x793E, 0x7D17, 0x8005, 0x8B1D, 0x8ECA, 0x906E, 0x86C7, 0x90AA, /* 0xD0 */
- 0x501F, 0x52FA, 0x5C3A, 0x6753, 0x707C, 0x7235, 0x914C, 0x91C8, /* 0xD0 */
- 0x932B, 0x82E5, 0x5BC2, 0x5F31, 0x60F9, 0x4E3B, 0x53D6, 0x5B88, /* 0xE0 */
- 0x624B, 0x6731, 0x6B8A, 0x72E9, 0x73E0, 0x7A2E, 0x816B, 0x8DA3, /* 0xE0 */
- 0x9152, 0x9996, 0x5112, 0x53D7, 0x546A, 0x5BFF, 0x6388, 0x6A39, /* 0xF0 */
- 0x7DAC, 0x9700, 0x56DA, 0x53CE, 0x5468 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_8F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5B97, 0x5C31, 0x5DDE, 0x4FEE, 0x6101, 0x62FE, 0x6D32, 0x79C0, /* 0x40 */
- 0x79CB, 0x7D42, 0x7E4D, 0x7FD2, 0x81ED, 0x821F, 0x8490, 0x8846, /* 0x40 */
- 0x8972, 0x8B90, 0x8E74, 0x8F2F, 0x9031, 0x914B, 0x916C, 0x96C6, /* 0x50 */
- 0x919C, 0x4EC0, 0x4F4F, 0x5145, 0x5341, 0x5F93, 0x620E, 0x67D4, /* 0x50 */
- 0x6C41, 0x6E0B, 0x7363, 0x7E26, 0x91CD, 0x9283, 0x53D4, 0x5919, /* 0x60 */
- 0x5BBF, 0x6DD1, 0x795D, 0x7E2E, 0x7C9B, 0x587E, 0x719F, 0x51FA, /* 0x60 */
- 0x8853, 0x8FF0, 0x4FCA, 0x5CFB, 0x6625, 0x77AC, 0x7AE3, 0x821C, /* 0x70 */
- 0x99FF, 0x51C6, 0x5FAA, 0x65EC, 0x696F, 0x6B89, 0x6DF3, 0, /* 0x70 */
- 0x6E96, 0x6F64, 0x76FE, 0x7D14, 0x5DE1, 0x9075, 0x9187, 0x9806, /* 0x80 */
- 0x51E6, 0x521D, 0x6240, 0x6691, 0x66D9, 0x6E1A, 0x5EB6, 0x7DD2, /* 0x80 */
- 0x7F72, 0x66F8, 0x85AF, 0x85F7, 0x8AF8, 0x52A9, 0x53D9, 0x5973, /* 0x90 */
- 0x5E8F, 0x5F90, 0x6055, 0x92E4, 0x9664, 0x50B7, 0x511F, 0x52DD, /* 0x90 */
- 0x5320, 0x5347, 0x53EC, 0x54E8, 0x5546, 0x5531, 0x5617, 0x5968, /* 0xA0 */
- 0x59BE, 0x5A3C, 0x5BB5, 0x5C06, 0x5C0F, 0x5C11, 0x5C1A, 0x5E84, /* 0xA0 */
- 0x5E8A, 0x5EE0, 0x5F70, 0x627F, 0x6284, 0x62DB, 0x638C, 0x6377, /* 0xB0 */
- 0x6607, 0x660C, 0x662D, 0x6676, 0x677E, 0x68A2, 0x6A1F, 0x6A35, /* 0xB0 */
- 0x6CBC, 0x6D88, 0x6E09, 0x6E58, 0x713C, 0x7126, 0x7167, 0x75C7, /* 0xC0 */
- 0x7701, 0x785D, 0x7901, 0x7965, 0x79F0, 0x7AE0, 0x7B11, 0x7CA7, /* 0xC0 */
- 0x7D39, 0x8096, 0x83D6, 0x848B, 0x8549, 0x885D, 0x88F3, 0x8A1F, /* 0xD0 */
- 0x8A3C, 0x8A54, 0x8A73, 0x8C61, 0x8CDE, 0x91A4, 0x9266, 0x937E, /* 0xD0 */
- 0x9418, 0x969C, 0x9798, 0x4E0A, 0x4E08, 0x4E1E, 0x4E57, 0x5197, /* 0xE0 */
- 0x5270, 0x57CE, 0x5834, 0x58CC, 0x5B22, 0x5E38, 0x60C5, 0x64FE, /* 0xE0 */
- 0x6761, 0x6756, 0x6D44, 0x72B6, 0x7573, 0x7A63, 0x84B8, 0x8B72, /* 0xF0 */
- 0x91B8, 0x9320, 0x5631, 0x57F4, 0x98FE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_90[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x62ED, 0x690D, 0x6B96, 0x71ED, 0x7E54, 0x8077, 0x8272, 0x89E6, /* 0x40 */
- 0x98DF, 0x8755, 0x8FB1, 0x5C3B, 0x4F38, 0x4FE1, 0x4FB5, 0x5507, /* 0x40 */
- 0x5A20, 0x5BDD, 0x5BE9, 0x5FC3, 0x614E, 0x632F, 0x65B0, 0x664B, /* 0x50 */
- 0x68EE, 0x699B, 0x6D78, 0x6DF1, 0x7533, 0x75B9, 0x771F, 0x795E, /* 0x50 */
- 0x79E6, 0x7D33, 0x81E3, 0x82AF, 0x85AA, 0x89AA, 0x8A3A, 0x8EAB, /* 0x60 */
- 0x8F9B, 0x9032, 0x91DD, 0x9707, 0x4EBA, 0x4EC1, 0x5203, 0x5875, /* 0x60 */
- 0x58EC, 0x5C0B, 0x751A, 0x5C3D, 0x814E, 0x8A0A, 0x8FC5, 0x9663, /* 0x70 */
- 0x976D, 0x7B25, 0x8ACF, 0x9808, 0x9162, 0x56F3, 0x53A8, 0, /* 0x70 */
- 0x9017, 0x5439, 0x5782, 0x5E25, 0x63A8, 0x6C34, 0x708A, 0x7761, /* 0x80 */
- 0x7C8B, 0x7FE0, 0x8870, 0x9042, 0x9154, 0x9310, 0x9318, 0x968F, /* 0x80 */
- 0x745E, 0x9AC4, 0x5D07, 0x5D69, 0x6570, 0x67A2, 0x8DA8, 0x96DB, /* 0x90 */
- 0x636E, 0x6749, 0x6919, 0x83C5, 0x9817, 0x96C0, 0x88FE, 0x6F84, /* 0x90 */
- 0x647A, 0x5BF8, 0x4E16, 0x702C, 0x755D, 0x662F, 0x51C4, 0x5236, /* 0xA0 */
- 0x52E2, 0x59D3, 0x5F81, 0x6027, 0x6210, 0x653F, 0x6574, 0x661F, /* 0xA0 */
- 0x6674, 0x68F2, 0x6816, 0x6B63, 0x6E05, 0x7272, 0x751F, 0x76DB, /* 0xB0 */
- 0x7CBE, 0x8056, 0x58F0, 0x88FD, 0x897F, 0x8AA0, 0x8A93, 0x8ACB, /* 0xB0 */
- 0x901D, 0x9192, 0x9752, 0x9759, 0x6589, 0x7A0E, 0x8106, 0x96BB, /* 0xC0 */
- 0x5E2D, 0x60DC, 0x621A, 0x65A5, 0x6614, 0x6790, 0x77F3, 0x7A4D, /* 0xC0 */
- 0x7C4D, 0x7E3E, 0x810A, 0x8CAC, 0x8D64, 0x8DE1, 0x8E5F, 0x78A9, /* 0xD0 */
- 0x5207, 0x62D9, 0x63A5, 0x6442, 0x6298, 0x8A2D, 0x7A83, 0x7BC0, /* 0xD0 */
- 0x8AAC, 0x96EA, 0x7D76, 0x820C, 0x8749, 0x4ED9, 0x5148, 0x5343, /* 0xE0 */
- 0x5360, 0x5BA3, 0x5C02, 0x5C16, 0x5DDD, 0x6226, 0x6247, 0x64B0, /* 0xE0 */
- 0x6813, 0x6834, 0x6CC9, 0x6D45, 0x6D17, 0x67D3, 0x6F5C, 0x714E, /* 0xF0 */
- 0x717D, 0x65CB, 0x7A7F, 0x7BAD, 0x7DDA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_91[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7E4A, 0x7FA8, 0x817A, 0x821B, 0x8239, 0x85A6, 0x8A6E, 0x8CCE, /* 0x40 */
- 0x8DF5, 0x9078, 0x9077, 0x92AD, 0x9291, 0x9583, 0x9BAE, 0x524D, /* 0x40 */
- 0x5584, 0x6F38, 0x7136, 0x5168, 0x7985, 0x7E55, 0x81B3, 0x7CCE, /* 0x50 */
- 0x564C, 0x5851, 0x5CA8, 0x63AA, 0x66FE, 0x66FD, 0x695A, 0x72D9, /* 0x50 */
- 0x758F, 0x758E, 0x790E, 0x7956, 0x79DF, 0x7C97, 0x7D20, 0x7D44, /* 0x60 */
- 0x8607, 0x8A34, 0x963B, 0x9061, 0x9F20, 0x50E7, 0x5275, 0x53CC, /* 0x60 */
- 0x53E2, 0x5009, 0x55AA, 0x58EE, 0x594F, 0x723D, 0x5B8B, 0x5C64, /* 0x70 */
- 0x531D, 0x60E3, 0x60F3, 0x635C, 0x6383, 0x633F, 0x63BB, 0, /* 0x70 */
- 0x64CD, 0x65E9, 0x66F9, 0x5DE3, 0x69CD, 0x69FD, 0x6F15, 0x71E5, /* 0x80 */
- 0x4E89, 0x75E9, 0x76F8, 0x7A93, 0x7CDF, 0x7DCF, 0x7D9C, 0x8061, /* 0x80 */
- 0x8349, 0x8358, 0x846C, 0x84BC, 0x85FB, 0x88C5, 0x8D70, 0x9001, /* 0x90 */
- 0x906D, 0x9397, 0x971C, 0x9A12, 0x50CF, 0x5897, 0x618E, 0x81D3, /* 0x90 */
- 0x8535, 0x8D08, 0x9020, 0x4FC3, 0x5074, 0x5247, 0x5373, 0x606F, /* 0xA0 */
- 0x6349, 0x675F, 0x6E2C, 0x8DB3, 0x901F, 0x4FD7, 0x5C5E, 0x8CCA, /* 0xA0 */
- 0x65CF, 0x7D9A, 0x5352, 0x8896, 0x5176, 0x63C3, 0x5B58, 0x5B6B, /* 0xB0 */
- 0x5C0A, 0x640D, 0x6751, 0x905C, 0x4ED6, 0x591A, 0x592A, 0x6C70, /* 0xB0 */
- 0x8A51, 0x553E, 0x5815, 0x59A5, 0x60F0, 0x6253, 0x67C1, 0x8235, /* 0xC0 */
- 0x6955, 0x9640, 0x99C4, 0x9A28, 0x4F53, 0x5806, 0x5BFE, 0x8010, /* 0xC0 */
- 0x5CB1, 0x5E2F, 0x5F85, 0x6020, 0x614B, 0x6234, 0x66FF, 0x6CF0, /* 0xD0 */
- 0x6EDE, 0x80CE, 0x817F, 0x82D4, 0x888B, 0x8CB8, 0x9000, 0x902E, /* 0xD0 */
- 0x968A, 0x9EDB, 0x9BDB, 0x4EE3, 0x53F0, 0x5927, 0x7B2C, 0x918D, /* 0xE0 */
- 0x984C, 0x9DF9, 0x6EDD, 0x7027, 0x5353, 0x5544, 0x5B85, 0x6258, /* 0xE0 */
- 0x629E, 0x62D3, 0x6CA2, 0x6FEF, 0x7422, 0x8A17, 0x9438, 0x6FC1, /* 0xF0 */
- 0x8AFE, 0x8338, 0x51E7, 0x86F8, 0x53EA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_92[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x53E9, 0x4F46, 0x9054, 0x8FB0, 0x596A, 0x8131, 0x5DFD, 0x7AEA, /* 0x40 */
- 0x8FBF, 0x68DA, 0x8C37, 0x72F8, 0x9C48, 0x6A3D, 0x8AB0, 0x4E39, /* 0x40 */
- 0x5358, 0x5606, 0x5766, 0x62C5, 0x63A2, 0x65E6, 0x6B4E, 0x6DE1, /* 0x50 */
- 0x6E5B, 0x70AD, 0x77ED, 0x7AEF, 0x7BAA, 0x7DBB, 0x803D, 0x80C6, /* 0x50 */
- 0x86CB, 0x8A95, 0x935B, 0x56E3, 0x58C7, 0x5F3E, 0x65AD, 0x6696, /* 0x60 */
- 0x6A80, 0x6BB5, 0x7537, 0x8AC7, 0x5024, 0x77E5, 0x5730, 0x5F1B, /* 0x60 */
- 0x6065, 0x667A, 0x6C60, 0x75F4, 0x7A1A, 0x7F6E, 0x81F4, 0x8718, /* 0x70 */
- 0x9045, 0x99B3, 0x7BC9, 0x755C, 0x7AF9, 0x7B51, 0x84C4, 0, /* 0x70 */
- 0x9010, 0x79E9, 0x7A92, 0x8336, 0x5AE1, 0x7740, 0x4E2D, 0x4EF2, /* 0x80 */
- 0x5B99, 0x5FE0, 0x62BD, 0x663C, 0x67F1, 0x6CE8, 0x866B, 0x8877, /* 0x80 */
- 0x8A3B, 0x914E, 0x92F3, 0x99D0, 0x6A17, 0x7026, 0x732A, 0x82E7, /* 0x90 */
- 0x8457, 0x8CAF, 0x4E01, 0x5146, 0x51CB, 0x558B, 0x5BF5, 0x5E16, /* 0x90 */
- 0x5E33, 0x5E81, 0x5F14, 0x5F35, 0x5F6B, 0x5FB4, 0x61F2, 0x6311, /* 0xA0 */
- 0x66A2, 0x671D, 0x6F6E, 0x7252, 0x753A, 0x773A, 0x8074, 0x8139, /* 0xA0 */
- 0x8178, 0x8776, 0x8ABF, 0x8ADC, 0x8D85, 0x8DF3, 0x929A, 0x9577, /* 0xB0 */
- 0x9802, 0x9CE5, 0x52C5, 0x6357, 0x76F4, 0x6715, 0x6C88, 0x73CD, /* 0xB0 */
- 0x8CC3, 0x93AE, 0x9673, 0x6D25, 0x589C, 0x690E, 0x69CC, 0x8FFD, /* 0xC0 */
- 0x939A, 0x75DB, 0x901A, 0x585A, 0x6802, 0x63B4, 0x69FB, 0x4F43, /* 0xC0 */
- 0x6F2C, 0x67D8, 0x8FBB, 0x8526, 0x7DB4, 0x9354, 0x693F, 0x6F70, /* 0xD0 */
- 0x576A, 0x58F7, 0x5B2C, 0x7D2C, 0x722A, 0x540A, 0x91E3, 0x9DB4, /* 0xD0 */
- 0x4EAD, 0x4F4E, 0x505C, 0x5075, 0x5243, 0x8C9E, 0x5448, 0x5824, /* 0xE0 */
- 0x5B9A, 0x5E1D, 0x5E95, 0x5EAD, 0x5EF7, 0x5F1F, 0x608C, 0x62B5, /* 0xE0 */
- 0x633A, 0x63D0, 0x68AF, 0x6C40, 0x7887, 0x798E, 0x7A0B, 0x7DE0, /* 0xF0 */
- 0x8247, 0x8A02, 0x8AE6, 0x8E44, 0x9013 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_93[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x90B8, 0x912D, 0x91D8, 0x9F0E, 0x6CE5, 0x6458, 0x64E2, 0x6575, /* 0x40 */
- 0x6EF4, 0x7684, 0x7B1B, 0x9069, 0x93D1, 0x6EBA, 0x54F2, 0x5FB9, /* 0x40 */
- 0x64A4, 0x8F4D, 0x8FED, 0x9244, 0x5178, 0x586B, 0x5929, 0x5C55, /* 0x50 */
- 0x5E97, 0x6DFB, 0x7E8F, 0x751C, 0x8CBC, 0x8EE2, 0x985B, 0x70B9, /* 0x50 */
- 0x4F1D, 0x6BBF, 0x6FB1, 0x7530, 0x96FB, 0x514E, 0x5410, 0x5835, /* 0x60 */
- 0x5857, 0x59AC, 0x5C60, 0x5F92, 0x6597, 0x675C, 0x6E21, 0x767B, /* 0x60 */
- 0x83DF, 0x8CED, 0x9014, 0x90FD, 0x934D, 0x7825, 0x783A, 0x52AA, /* 0x70 */
- 0x5EA6, 0x571F, 0x5974, 0x6012, 0x5012, 0x515A, 0x51AC, 0, /* 0x70 */
- 0x51CD, 0x5200, 0x5510, 0x5854, 0x5858, 0x5957, 0x5B95, 0x5CF6, /* 0x80 */
- 0x5D8B, 0x60BC, 0x6295, 0x642D, 0x6771, 0x6843, 0x68BC, 0x68DF, /* 0x80 */
- 0x76D7, 0x6DD8, 0x6E6F, 0x6D9B, 0x706F, 0x71C8, 0x5F53, 0x75D8, /* 0x90 */
- 0x7977, 0x7B49, 0x7B54, 0x7B52, 0x7CD6, 0x7D71, 0x5230, 0x8463, /* 0x90 */
- 0x8569, 0x85E4, 0x8A0E, 0x8B04, 0x8C46, 0x8E0F, 0x9003, 0x900F, /* 0xA0 */
- 0x9419, 0x9676, 0x982D, 0x9A30, 0x95D8, 0x50CD, 0x52D5, 0x540C, /* 0xA0 */
- 0x5802, 0x5C0E, 0x61A7, 0x649E, 0x6D1E, 0x77B3, 0x7AE5, 0x80F4, /* 0xB0 */
- 0x8404, 0x9053, 0x9285, 0x5CE0, 0x9D07, 0x533F, 0x5F97, 0x5FB3, /* 0xB0 */
- 0x6D9C, 0x7279, 0x7763, 0x79BF, 0x7BE4, 0x6BD2, 0x72EC, 0x8AAD, /* 0xC0 */
- 0x6803, 0x6A61, 0x51F8, 0x7A81, 0x6934, 0x5C4A, 0x9CF6, 0x82EB, /* 0xC0 */
- 0x5BC5, 0x9149, 0x701E, 0x5678, 0x5C6F, 0x60C7, 0x6566, 0x6C8C, /* 0xD0 */
- 0x8C5A, 0x9041, 0x9813, 0x5451, 0x66C7, 0x920D, 0x5948, 0x90A3, /* 0xD0 */
- 0x5185, 0x4E4D, 0x51EA, 0x8599, 0x8B0E, 0x7058, 0x637A, 0x934B, /* 0xE0 */
- 0x6962, 0x99B4, 0x7E04, 0x7577, 0x5357, 0x6960, 0x8EDF, 0x96E3, /* 0xE0 */
- 0x6C5D, 0x4E8C, 0x5C3C, 0x5F10, 0x8FE9, 0x5302, 0x8CD1, 0x8089, /* 0xF0 */
- 0x8679, 0x5EFF, 0x65E5, 0x4E73, 0x5165 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_94[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5982, 0x5C3F, 0x97EE, 0x4EFB, 0x598A, 0x5FCD, 0x8A8D, 0x6FE1, /* 0x40 */
- 0x79B0, 0x7962, 0x5BE7, 0x8471, 0x732B, 0x71B1, 0x5E74, 0x5FF5, /* 0x40 */
- 0x637B, 0x649A, 0x71C3, 0x7C98, 0x4E43, 0x5EFC, 0x4E4B, 0x57DC, /* 0x50 */
- 0x56A2, 0x60A9, 0x6FC3, 0x7D0D, 0x80FD, 0x8133, 0x81BF, 0x8FB2, /* 0x50 */
- 0x8997, 0x86A4, 0x5DF4, 0x628A, 0x64AD, 0x8987, 0x6777, 0x6CE2, /* 0x60 */
- 0x6D3E, 0x7436, 0x7834, 0x5A46, 0x7F75, 0x82AD, 0x99AC, 0x4FF3, /* 0x60 */
- 0x5EC3, 0x62DD, 0x6392, 0x6557, 0x676F, 0x76C3, 0x724C, 0x80CC, /* 0x70 */
- 0x80BA, 0x8F29, 0x914D, 0x500D, 0x57F9, 0x5A92, 0x6885, 0, /* 0x70 */
- 0x6973, 0x7164, 0x72FD, 0x8CB7, 0x58F2, 0x8CE0, 0x966A, 0x9019, /* 0x80 */
- 0x877F, 0x79E4, 0x77E7, 0x8429, 0x4F2F, 0x5265, 0x535A, 0x62CD, /* 0x80 */
- 0x67CF, 0x6CCA, 0x767D, 0x7B94, 0x7C95, 0x8236, 0x8584, 0x8FEB, /* 0x90 */
- 0x66DD, 0x6F20, 0x7206, 0x7E1B, 0x83AB, 0x99C1, 0x9EA6, 0x51FD, /* 0x90 */
- 0x7BB1, 0x7872, 0x7BB8, 0x8087, 0x7B48, 0x6AE8, 0x5E61, 0x808C, /* 0xA0 */
- 0x7551, 0x7560, 0x516B, 0x9262, 0x6E8C, 0x767A, 0x9197, 0x9AEA, /* 0xA0 */
- 0x4F10, 0x7F70, 0x629C, 0x7B4F, 0x95A5, 0x9CE9, 0x567A, 0x5859, /* 0xB0 */
- 0x86E4, 0x96BC, 0x4F34, 0x5224, 0x534A, 0x53CD, 0x53DB, 0x5E06, /* 0xB0 */
- 0x642C, 0x6591, 0x677F, 0x6C3E, 0x6C4E, 0x7248, 0x72AF, 0x73ED, /* 0xC0 */
- 0x7554, 0x7E41, 0x822C, 0x85E9, 0x8CA9, 0x7BC4, 0x91C6, 0x7169, /* 0xC0 */
- 0x9812, 0x98EF, 0x633D, 0x6669, 0x756A, 0x76E4, 0x78D0, 0x8543, /* 0xD0 */
- 0x86EE, 0x532A, 0x5351, 0x5426, 0x5983, 0x5E87, 0x5F7C, 0x60B2, /* 0xD0 */
- 0x6249, 0x6279, 0x62AB, 0x6590, 0x6BD4, 0x6CCC, 0x75B2, 0x76AE, /* 0xE0 */
- 0x7891, 0x79D8, 0x7DCB, 0x7F77, 0x80A5, 0x88AB, 0x8AB9, 0x8CBB, /* 0xE0 */
- 0x907F, 0x975E, 0x98DB, 0x6A0B, 0x7C38, 0x5099, 0x5C3E, 0x5FAE, /* 0xF0 */
- 0x6787, 0x6BD8, 0x7435, 0x7709, 0x7F8E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_95[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9F3B, 0x67CA, 0x7A17, 0x5339, 0x758B, 0x9AED, 0x5F66, 0x819D, /* 0x40 */
- 0x83F1, 0x8098, 0x5F3C, 0x5FC5, 0x7562, 0x7B46, 0x903C, 0x6867, /* 0x40 */
- 0x59EB, 0x5A9B, 0x7D10, 0x767E, 0x8B2C, 0x4FF5, 0x5F6A, 0x6A19, /* 0x50 */
- 0x6C37, 0x6F02, 0x74E2, 0x7968, 0x8868, 0x8A55, 0x8C79, 0x5EDF, /* 0x50 */
- 0x63CF, 0x75C5, 0x79D2, 0x82D7, 0x9328, 0x92F2, 0x849C, 0x86ED, /* 0x60 */
- 0x9C2D, 0x54C1, 0x5F6C, 0x658C, 0x6D5C, 0x7015, 0x8CA7, 0x8CD3, /* 0x60 */
- 0x983B, 0x654F, 0x74F6, 0x4E0D, 0x4ED8, 0x57E0, 0x592B, 0x5A66, /* 0x70 */
- 0x5BCC, 0x51A8, 0x5E03, 0x5E9C, 0x6016, 0x6276, 0x6577, 0, /* 0x70 */
- 0x65A7, 0x666E, 0x6D6E, 0x7236, 0x7B26, 0x8150, 0x819A, 0x8299, /* 0x80 */
- 0x8B5C, 0x8CA0, 0x8CE6, 0x8D74, 0x961C, 0x9644, 0x4FAE, 0x64AB, /* 0x80 */
- 0x6B66, 0x821E, 0x8461, 0x856A, 0x90E8, 0x5C01, 0x6953, 0x98A8, /* 0x90 */
- 0x847A, 0x8557, 0x4F0F, 0x526F, 0x5FA9, 0x5E45, 0x670D, 0x798F, /* 0x90 */
- 0x8179, 0x8907, 0x8986, 0x6DF5, 0x5F17, 0x6255, 0x6CB8, 0x4ECF, /* 0xA0 */
- 0x7269, 0x9B92, 0x5206, 0x543B, 0x5674, 0x58B3, 0x61A4, 0x626E, /* 0xA0 */
- 0x711A, 0x596E, 0x7C89, 0x7CDE, 0x7D1B, 0x96F0, 0x6587, 0x805E, /* 0xB0 */
- 0x4E19, 0x4F75, 0x5175, 0x5840, 0x5E63, 0x5E73, 0x5F0A, 0x67C4, /* 0xB0 */
- 0x4E26, 0x853D, 0x9589, 0x965B, 0x7C73, 0x9801, 0x50FB, 0x58C1, /* 0xC0 */
- 0x7656, 0x78A7, 0x5225, 0x77A5, 0x8511, 0x7B86, 0x504F, 0x5909, /* 0xC0 */
- 0x7247, 0x7BC7, 0x7DE8, 0x8FBA, 0x8FD4, 0x904D, 0x4FBF, 0x52C9, /* 0xD0 */
- 0x5A29, 0x5F01, 0x97AD, 0x4FDD, 0x8217, 0x92EA, 0x5703, 0x6355, /* 0xD0 */
- 0x6B69, 0x752B, 0x88DC, 0x8F14, 0x7A42, 0x52DF, 0x5893, 0x6155, /* 0xE0 */
- 0x620A, 0x66AE, 0x6BCD, 0x7C3F, 0x83E9, 0x5023, 0x4FF8, 0x5305, /* 0xE0 */
- 0x5446, 0x5831, 0x5949, 0x5B9D, 0x5CF0, 0x5CEF, 0x5D29, 0x5E96, /* 0xF0 */
- 0x62B1, 0x6367, 0x653E, 0x65B9, 0x670B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_96[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6CD5, 0x6CE1, 0x70F9, 0x7832, 0x7E2B, 0x80DE, 0x82B3, 0x840C, /* 0x40 */
- 0x84EC, 0x8702, 0x8912, 0x8A2A, 0x8C4A, 0x90A6, 0x92D2, 0x98FD, /* 0x40 */
- 0x9CF3, 0x9D6C, 0x4E4F, 0x4EA1, 0x508D, 0x5256, 0x574A, 0x59A8, /* 0x50 */
- 0x5E3D, 0x5FD8, 0x5FD9, 0x623F, 0x66B4, 0x671B, 0x67D0, 0x68D2, /* 0x50 */
- 0x5192, 0x7D21, 0x80AA, 0x81A8, 0x8B00, 0x8C8C, 0x8CBF, 0x927E, /* 0x60 */
- 0x9632, 0x5420, 0x982C, 0x5317, 0x50D5, 0x535C, 0x58A8, 0x64B2, /* 0x60 */
- 0x6734, 0x7267, 0x7766, 0x7A46, 0x91E6, 0x52C3, 0x6CA1, 0x6B86, /* 0x70 */
- 0x5800, 0x5E4C, 0x5954, 0x672C, 0x7FFB, 0x51E1, 0x76C6, 0, /* 0x70 */
- 0x6469, 0x78E8, 0x9B54, 0x9EBB, 0x57CB, 0x59B9, 0x6627, 0x679A, /* 0x80 */
- 0x6BCE, 0x54E9, 0x69D9, 0x5E55, 0x819C, 0x6795, 0x9BAA, 0x67FE, /* 0x80 */
- 0x9C52, 0x685D, 0x4EA6, 0x4FE3, 0x53C8, 0x62B9, 0x672B, 0x6CAB, /* 0x90 */
- 0x8FC4, 0x4FAD, 0x7E6D, 0x9EBF, 0x4E07, 0x6162, 0x6E80, 0x6F2B, /* 0x90 */
- 0x8513, 0x5473, 0x672A, 0x9B45, 0x5DF3, 0x7B95, 0x5CAC, 0x5BC6, /* 0xA0 */
- 0x871C, 0x6E4A, 0x84D1, 0x7A14, 0x8108, 0x5999, 0x7C8D, 0x6C11, /* 0xA0 */
- 0x7720, 0x52D9, 0x5922, 0x7121, 0x725F, 0x77DB, 0x9727, 0x9D61, /* 0xB0 */
- 0x690B, 0x5A7F, 0x5A18, 0x51A5, 0x540D, 0x547D, 0x660E, 0x76DF, /* 0xB0 */
- 0x8FF7, 0x9298, 0x9CF4, 0x59EA, 0x725D, 0x6EC5, 0x514D, 0x68C9, /* 0xC0 */
- 0x7DBF, 0x7DEC, 0x9762, 0x9EBA, 0x6478, 0x6A21, 0x8302, 0x5984, /* 0xC0 */
- 0x5B5F, 0x6BDB, 0x731B, 0x76F2, 0x7DB2, 0x8017, 0x8499, 0x5132, /* 0xD0 */
- 0x6728, 0x9ED9, 0x76EE, 0x6762, 0x52FF, 0x9905, 0x5C24, 0x623B, /* 0xD0 */
- 0x7C7E, 0x8CB0, 0x554F, 0x60B6, 0x7D0B, 0x9580, 0x5301, 0x4E5F, /* 0xE0 */
- 0x51B6, 0x591C, 0x723A, 0x8036, 0x91CE, 0x5F25, 0x77E2, 0x5384, /* 0xE0 */
- 0x5F79, 0x7D04, 0x85AC, 0x8A33, 0x8E8D, 0x9756, 0x67F3, 0x85AE, /* 0xF0 */
- 0x9453, 0x6109, 0x6108, 0x6CB9, 0x7652 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_97[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8AED, 0x8F38, 0x552F, 0x4F51, 0x512A, 0x52C7, 0x53CB, 0x5BA5, /* 0x40 */
- 0x5E7D, 0x60A0, 0x6182, 0x63D6, 0x6709, 0x67DA, 0x6E67, 0x6D8C, /* 0x40 */
- 0x7336, 0x7337, 0x7531, 0x7950, 0x88D5, 0x8A98, 0x904A, 0x9091, /* 0x50 */
- 0x90F5, 0x96C4, 0x878D, 0x5915, 0x4E88, 0x4F59, 0x4E0E, 0x8A89, /* 0x50 */
- 0x8F3F, 0x9810, 0x50AD, 0x5E7C, 0x5996, 0x5BB9, 0x5EB8, 0x63DA, /* 0x60 */
- 0x63FA, 0x64C1, 0x66DC, 0x694A, 0x69D8, 0x6D0B, 0x6EB6, 0x7194, /* 0x60 */
- 0x7528, 0x7AAF, 0x7F8A, 0x8000, 0x8449, 0x84C9, 0x8981, 0x8B21, /* 0x70 */
- 0x8E0A, 0x9065, 0x967D, 0x990A, 0x617E, 0x6291, 0x6B32, 0, /* 0x70 */
- 0x6C83, 0x6D74, 0x7FCC, 0x7FFC, 0x6DC0, 0x7F85, 0x87BA, 0x88F8, /* 0x80 */
- 0x6765, 0x83B1, 0x983C, 0x96F7, 0x6D1B, 0x7D61, 0x843D, 0x916A, /* 0x80 */
- 0x4E71, 0x5375, 0x5D50, 0x6B04, 0x6FEB, 0x85CD, 0x862D, 0x89A7, /* 0x90 */
- 0x5229, 0x540F, 0x5C65, 0x674E, 0x68A8, 0x7406, 0x7483, 0x75E2, /* 0x90 */
- 0x88CF, 0x88E1, 0x91CC, 0x96E2, 0x9678, 0x5F8B, 0x7387, 0x7ACB, /* 0xA0 */
- 0x844E, 0x63A0, 0x7565, 0x5289, 0x6D41, 0x6E9C, 0x7409, 0x7559, /* 0xA0 */
- 0x786B, 0x7C92, 0x9686, 0x7ADC, 0x9F8D, 0x4FB6, 0x616E, 0x65C5, /* 0xB0 */
- 0x865C, 0x4E86, 0x4EAE, 0x50DA, 0x4E21, 0x51CC, 0x5BEE, 0x6599, /* 0xB0 */
- 0x6881, 0x6DBC, 0x731F, 0x7642, 0x77AD, 0x7A1C, 0x7CE7, 0x826F, /* 0xC0 */
- 0x8AD2, 0x907C, 0x91CF, 0x9675, 0x9818, 0x529B, 0x7DD1, 0x502B, /* 0xC0 */
- 0x5398, 0x6797, 0x6DCB, 0x71D0, 0x7433, 0x81E8, 0x8F2A, 0x96A3, /* 0xD0 */
- 0x9C57, 0x9E9F, 0x7460, 0x5841, 0x6D99, 0x7D2F, 0x985E, 0x4EE4, /* 0xD0 */
- 0x4F36, 0x4F8B, 0x51B7, 0x52B1, 0x5DBA, 0x601C, 0x73B2, 0x793C, /* 0xE0 */
- 0x82D3, 0x9234, 0x96B7, 0x96F6, 0x970A, 0x9E97, 0x9F62, 0x66A6, /* 0xE0 */
- 0x6B74, 0x5217, 0x52A3, 0x70C8, 0x88C2, 0x5EC9, 0x604B, 0x6190, /* 0xF0 */
- 0x6F23, 0x7149, 0x7C3E, 0x7DF4, 0x806F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_98[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x84EE, 0x9023, 0x932C, 0x5442, 0x9B6F, 0x6AD3, 0x7089, 0x8CC2, /* 0x40 */
- 0x8DEF, 0x9732, 0x52B4, 0x5A41, 0x5ECA, 0x5F04, 0x6717, 0x697C, /* 0x40 */
- 0x6994, 0x6D6A, 0x6F0F, 0x7262, 0x72FC, 0x7BED, 0x8001, 0x807E, /* 0x50 */
- 0x874B, 0x90CE, 0x516D, 0x9E93, 0x7984, 0x808B, 0x9332, 0x8AD6, /* 0x50 */
- 0x502D, 0x548C, 0x8A71, 0x6B6A, 0x8CC4, 0x8107, 0x60D1, 0x67A0, /* 0x60 */
- 0x9DF2, 0x4E99, 0x4E98, 0x9C10, 0x8A6B, 0x85C1, 0x8568, 0x6900, /* 0x60 */
- 0x6E7E, 0x7897, 0x8155, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0x5F0C, /* 0x90 */
- 0x4E10, 0x4E15, 0x4E2A, 0x4E31, 0x4E36, 0x4E3C, 0x4E3F, 0x4E42, /* 0xA0 */
- 0x4E56, 0x4E58, 0x4E82, 0x4E85, 0x8C6B, 0x4E8A, 0x8212, 0x5F0D, /* 0xA0 */
- 0x4E8E, 0x4E9E, 0x4E9F, 0x4EA0, 0x4EA2, 0x4EB0, 0x4EB3, 0x4EB6, /* 0xB0 */
- 0x4ECE, 0x4ECD, 0x4EC4, 0x4EC6, 0x4EC2, 0x4ED7, 0x4EDE, 0x4EED, /* 0xB0 */
- 0x4EDF, 0x4EF7, 0x4F09, 0x4F5A, 0x4F30, 0x4F5B, 0x4F5D, 0x4F57, /* 0xC0 */
- 0x4F47, 0x4F76, 0x4F88, 0x4F8F, 0x4F98, 0x4F7B, 0x4F69, 0x4F70, /* 0xC0 */
- 0x4F91, 0x4F6F, 0x4F86, 0x4F96, 0x5118, 0x4FD4, 0x4FDF, 0x4FCE, /* 0xD0 */
- 0x4FD8, 0x4FDB, 0x4FD1, 0x4FDA, 0x4FD0, 0x4FE4, 0x4FE5, 0x501A, /* 0xD0 */
- 0x5028, 0x5014, 0x502A, 0x5025, 0x5005, 0x4F1C, 0x4FF6, 0x5021, /* 0xE0 */
- 0x5029, 0x502C, 0x4FFE, 0x4FEF, 0x5011, 0x5006, 0x5043, 0x5047, /* 0xE0 */
- 0x6703, 0x5055, 0x5050, 0x5048, 0x505A, 0x5056, 0x506C, 0x5078, /* 0xF0 */
- 0x5080, 0x509A, 0x5085, 0x50B4, 0x50B2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_99[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x50C9, 0x50CA, 0x50B3, 0x50C2, 0x50D6, 0x50DE, 0x50E5, 0x50ED, /* 0x40 */
- 0x50E3, 0x50EE, 0x50F9, 0x50F5, 0x5109, 0x5101, 0x5102, 0x5116, /* 0x40 */
- 0x5115, 0x5114, 0x511A, 0x5121, 0x513A, 0x5137, 0x513C, 0x513B, /* 0x50 */
- 0x513F, 0x5140, 0x5152, 0x514C, 0x5154, 0x5162, 0x7AF8, 0x5169, /* 0x50 */
- 0x516A, 0x516E, 0x5180, 0x5182, 0x56D8, 0x518C, 0x5189, 0x518F, /* 0x60 */
- 0x5191, 0x5193, 0x5195, 0x5196, 0x51A4, 0x51A6, 0x51A2, 0x51A9, /* 0x60 */
- 0x51AA, 0x51AB, 0x51B3, 0x51B1, 0x51B2, 0x51B0, 0x51B5, 0x51BD, /* 0x70 */
- 0x51C5, 0x51C9, 0x51DB, 0x51E0, 0x8655, 0x51E9, 0x51ED, 0, /* 0x70 */
- 0x51F0, 0x51F5, 0x51FE, 0x5204, 0x520B, 0x5214, 0x520E, 0x5227, /* 0x80 */
- 0x522A, 0x522E, 0x5233, 0x5239, 0x524F, 0x5244, 0x524B, 0x524C, /* 0x80 */
- 0x525E, 0x5254, 0x526A, 0x5274, 0x5269, 0x5273, 0x527F, 0x527D, /* 0x90 */
- 0x528D, 0x5294, 0x5292, 0x5271, 0x5288, 0x5291, 0x8FA8, 0x8FA7, /* 0x90 */
- 0x52AC, 0x52AD, 0x52BC, 0x52B5, 0x52C1, 0x52CD, 0x52D7, 0x52DE, /* 0xA0 */
- 0x52E3, 0x52E6, 0x98ED, 0x52E0, 0x52F3, 0x52F5, 0x52F8, 0x52F9, /* 0xA0 */
- 0x5306, 0x5308, 0x7538, 0x530D, 0x5310, 0x530F, 0x5315, 0x531A, /* 0xB0 */
- 0x5323, 0x532F, 0x5331, 0x5333, 0x5338, 0x5340, 0x5346, 0x5345, /* 0xB0 */
- 0x4E17, 0x5349, 0x534D, 0x51D6, 0x535E, 0x5369, 0x536E, 0x5918, /* 0xC0 */
- 0x537B, 0x5377, 0x5382, 0x5396, 0x53A0, 0x53A6, 0x53A5, 0x53AE, /* 0xC0 */
- 0x53B0, 0x53B6, 0x53C3, 0x7C12, 0x96D9, 0x53DF, 0x66FC, 0x71EE, /* 0xD0 */
- 0x53EE, 0x53E8, 0x53ED, 0x53FA, 0x5401, 0x543D, 0x5440, 0x542C, /* 0xD0 */
- 0x542D, 0x543C, 0x542E, 0x5436, 0x5429, 0x541D, 0x544E, 0x548F, /* 0xE0 */
- 0x5475, 0x548E, 0x545F, 0x5471, 0x5477, 0x5470, 0x5492, 0x547B, /* 0xE0 */
- 0x5480, 0x5476, 0x5484, 0x5490, 0x5486, 0x54C7, 0x54A2, 0x54B8, /* 0xF0 */
- 0x54A5, 0x54AC, 0x54C4, 0x54C8, 0x54A8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_9A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x54AB, 0x54C2, 0x54A4, 0x54BE, 0x54BC, 0x54D8, 0x54E5, 0x54E6, /* 0x40 */
- 0x550F, 0x5514, 0x54FD, 0x54EE, 0x54ED, 0x54FA, 0x54E2, 0x5539, /* 0x40 */
- 0x5540, 0x5563, 0x554C, 0x552E, 0x555C, 0x5545, 0x5556, 0x5557, /* 0x50 */
- 0x5538, 0x5533, 0x555D, 0x5599, 0x5580, 0x54AF, 0x558A, 0x559F, /* 0x50 */
- 0x557B, 0x557E, 0x5598, 0x559E, 0x55AE, 0x557C, 0x5583, 0x55A9, /* 0x60 */
- 0x5587, 0x55A8, 0x55DA, 0x55C5, 0x55DF, 0x55C4, 0x55DC, 0x55E4, /* 0x60 */
- 0x55D4, 0x5614, 0x55F7, 0x5616, 0x55FE, 0x55FD, 0x561B, 0x55F9, /* 0x70 */
- 0x564E, 0x5650, 0x71DF, 0x5634, 0x5636, 0x5632, 0x5638, 0, /* 0x70 */
- 0x566B, 0x5664, 0x562F, 0x566C, 0x566A, 0x5686, 0x5680, 0x568A, /* 0x80 */
- 0x56A0, 0x5694, 0x568F, 0x56A5, 0x56AE, 0x56B6, 0x56B4, 0x56C2, /* 0x80 */
- 0x56BC, 0x56C1, 0x56C3, 0x56C0, 0x56C8, 0x56CE, 0x56D1, 0x56D3, /* 0x90 */
- 0x56D7, 0x56EE, 0x56F9, 0x5700, 0x56FF, 0x5704, 0x5709, 0x5708, /* 0x90 */
- 0x570B, 0x570D, 0x5713, 0x5718, 0x5716, 0x55C7, 0x571C, 0x5726, /* 0xA0 */
- 0x5737, 0x5738, 0x574E, 0x573B, 0x5740, 0x574F, 0x5769, 0x57C0, /* 0xA0 */
- 0x5788, 0x5761, 0x577F, 0x5789, 0x5793, 0x57A0, 0x57B3, 0x57A4, /* 0xB0 */
- 0x57AA, 0x57B0, 0x57C3, 0x57C6, 0x57D4, 0x57D2, 0x57D3, 0x580A, /* 0xB0 */
- 0x57D6, 0x57E3, 0x580B, 0x5819, 0x581D, 0x5872, 0x5821, 0x5862, /* 0xC0 */
- 0x584B, 0x5870, 0x6BC0, 0x5852, 0x583D, 0x5879, 0x5885, 0x58B9, /* 0xC0 */
- 0x589F, 0x58AB, 0x58BA, 0x58DE, 0x58BB, 0x58B8, 0x58AE, 0x58C5, /* 0xD0 */
- 0x58D3, 0x58D1, 0x58D7, 0x58D9, 0x58D8, 0x58E5, 0x58DC, 0x58E4, /* 0xD0 */
- 0x58DF, 0x58EF, 0x58FA, 0x58F9, 0x58FB, 0x58FC, 0x58FD, 0x5902, /* 0xE0 */
- 0x590A, 0x5910, 0x591B, 0x68A6, 0x5925, 0x592C, 0x592D, 0x5932, /* 0xE0 */
- 0x5938, 0x593E, 0x7AD2, 0x5955, 0x5950, 0x594E, 0x595A, 0x5958, /* 0xF0 */
- 0x5962, 0x5960, 0x5967, 0x596C, 0x5969 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_9B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5978, 0x5981, 0x599D, 0x4F5E, 0x4FAB, 0x59A3, 0x59B2, 0x59C6, /* 0x40 */
- 0x59E8, 0x59DC, 0x598D, 0x59D9, 0x59DA, 0x5A25, 0x5A1F, 0x5A11, /* 0x40 */
- 0x5A1C, 0x5A09, 0x5A1A, 0x5A40, 0x5A6C, 0x5A49, 0x5A35, 0x5A36, /* 0x50 */
- 0x5A62, 0x5A6A, 0x5A9A, 0x5ABC, 0x5ABE, 0x5ACB, 0x5AC2, 0x5ABD, /* 0x50 */
- 0x5AE3, 0x5AD7, 0x5AE6, 0x5AE9, 0x5AD6, 0x5AFA, 0x5AFB, 0x5B0C, /* 0x60 */
- 0x5B0B, 0x5B16, 0x5B32, 0x5AD0, 0x5B2A, 0x5B36, 0x5B3E, 0x5B43, /* 0x60 */
- 0x5B45, 0x5B40, 0x5B51, 0x5B55, 0x5B5A, 0x5B5B, 0x5B65, 0x5B69, /* 0x70 */
- 0x5B70, 0x5B73, 0x5B75, 0x5B78, 0x6588, 0x5B7A, 0x5B80, 0, /* 0x70 */
- 0x5B83, 0x5BA6, 0x5BB8, 0x5BC3, 0x5BC7, 0x5BC9, 0x5BD4, 0x5BD0, /* 0x80 */
- 0x5BE4, 0x5BE6, 0x5BE2, 0x5BDE, 0x5BE5, 0x5BEB, 0x5BF0, 0x5BF6, /* 0x80 */
- 0x5BF3, 0x5C05, 0x5C07, 0x5C08, 0x5C0D, 0x5C13, 0x5C20, 0x5C22, /* 0x90 */
- 0x5C28, 0x5C38, 0x5C39, 0x5C41, 0x5C46, 0x5C4E, 0x5C53, 0x5C50, /* 0x90 */
- 0x5C4F, 0x5B71, 0x5C6C, 0x5C6E, 0x4E62, 0x5C76, 0x5C79, 0x5C8C, /* 0xA0 */
- 0x5C91, 0x5C94, 0x599B, 0x5CAB, 0x5CBB, 0x5CB6, 0x5CBC, 0x5CB7, /* 0xA0 */
- 0x5CC5, 0x5CBE, 0x5CC7, 0x5CD9, 0x5CE9, 0x5CFD, 0x5CFA, 0x5CED, /* 0xB0 */
- 0x5D8C, 0x5CEA, 0x5D0B, 0x5D15, 0x5D17, 0x5D5C, 0x5D1F, 0x5D1B, /* 0xB0 */
- 0x5D11, 0x5D14, 0x5D22, 0x5D1A, 0x5D19, 0x5D18, 0x5D4C, 0x5D52, /* 0xC0 */
- 0x5D4E, 0x5D4B, 0x5D6C, 0x5D73, 0x5D76, 0x5D87, 0x5D84, 0x5D82, /* 0xC0 */
- 0x5DA2, 0x5D9D, 0x5DAC, 0x5DAE, 0x5DBD, 0x5D90, 0x5DB7, 0x5DBC, /* 0xD0 */
- 0x5DC9, 0x5DCD, 0x5DD3, 0x5DD2, 0x5DD6, 0x5DDB, 0x5DEB, 0x5DF2, /* 0xD0 */
- 0x5DF5, 0x5E0B, 0x5E1A, 0x5E19, 0x5E11, 0x5E1B, 0x5E36, 0x5E37, /* 0xE0 */
- 0x5E44, 0x5E43, 0x5E40, 0x5E4E, 0x5E57, 0x5E54, 0x5E5F, 0x5E62, /* 0xE0 */
- 0x5E64, 0x5E47, 0x5E75, 0x5E76, 0x5E7A, 0x9EBC, 0x5E7F, 0x5EA0, /* 0xF0 */
- 0x5EC1, 0x5EC2, 0x5EC8, 0x5ED0, 0x5ECF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_9C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5ED6, 0x5EE3, 0x5EDD, 0x5EDA, 0x5EDB, 0x5EE2, 0x5EE1, 0x5EE8, /* 0x40 */
- 0x5EE9, 0x5EEC, 0x5EF1, 0x5EF3, 0x5EF0, 0x5EF4, 0x5EF8, 0x5EFE, /* 0x40 */
- 0x5F03, 0x5F09, 0x5F5D, 0x5F5C, 0x5F0B, 0x5F11, 0x5F16, 0x5F29, /* 0x50 */
- 0x5F2D, 0x5F38, 0x5F41, 0x5F48, 0x5F4C, 0x5F4E, 0x5F2F, 0x5F51, /* 0x50 */
- 0x5F56, 0x5F57, 0x5F59, 0x5F61, 0x5F6D, 0x5F73, 0x5F77, 0x5F83, /* 0x60 */
- 0x5F82, 0x5F7F, 0x5F8A, 0x5F88, 0x5F91, 0x5F87, 0x5F9E, 0x5F99, /* 0x60 */
- 0x5F98, 0x5FA0, 0x5FA8, 0x5FAD, 0x5FBC, 0x5FD6, 0x5FFB, 0x5FE4, /* 0x70 */
- 0x5FF8, 0x5FF1, 0x5FDD, 0x60B3, 0x5FFF, 0x6021, 0x6060, 0, /* 0x70 */
- 0x6019, 0x6010, 0x6029, 0x600E, 0x6031, 0x601B, 0x6015, 0x602B, /* 0x80 */
- 0x6026, 0x600F, 0x603A, 0x605A, 0x6041, 0x606A, 0x6077, 0x605F, /* 0x80 */
- 0x604A, 0x6046, 0x604D, 0x6063, 0x6043, 0x6064, 0x6042, 0x606C, /* 0x90 */
- 0x606B, 0x6059, 0x6081, 0x608D, 0x60E7, 0x6083, 0x609A, 0x6084, /* 0x90 */
- 0x609B, 0x6096, 0x6097, 0x6092, 0x60A7, 0x608B, 0x60E1, 0x60B8, /* 0xA0 */
- 0x60E0, 0x60D3, 0x60B4, 0x5FF0, 0x60BD, 0x60C6, 0x60B5, 0x60D8, /* 0xA0 */
- 0x614D, 0x6115, 0x6106, 0x60F6, 0x60F7, 0x6100, 0x60F4, 0x60FA, /* 0xB0 */
- 0x6103, 0x6121, 0x60FB, 0x60F1, 0x610D, 0x610E, 0x6147, 0x613E, /* 0xB0 */
- 0x6128, 0x6127, 0x614A, 0x613F, 0x613C, 0x612C, 0x6134, 0x613D, /* 0xC0 */
- 0x6142, 0x6144, 0x6173, 0x6177, 0x6158, 0x6159, 0x615A, 0x616B, /* 0xC0 */
- 0x6174, 0x616F, 0x6165, 0x6171, 0x615F, 0x615D, 0x6153, 0x6175, /* 0xD0 */
- 0x6199, 0x6196, 0x6187, 0x61AC, 0x6194, 0x619A, 0x618A, 0x6191, /* 0xD0 */
- 0x61AB, 0x61AE, 0x61CC, 0x61CA, 0x61C9, 0x61F7, 0x61C8, 0x61C3, /* 0xE0 */
- 0x61C6, 0x61BA, 0x61CB, 0x7F79, 0x61CD, 0x61E6, 0x61E3, 0x61F6, /* 0xE0 */
- 0x61FA, 0x61F4, 0x61FF, 0x61FD, 0x61FC, 0x61FE, 0x6200, 0x6208, /* 0xF0 */
- 0x6209, 0x620D, 0x620C, 0x6214, 0x621B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_9D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x621E, 0x6221, 0x622A, 0x622E, 0x6230, 0x6232, 0x6233, 0x6241, /* 0x40 */
- 0x624E, 0x625E, 0x6263, 0x625B, 0x6260, 0x6268, 0x627C, 0x6282, /* 0x40 */
- 0x6289, 0x627E, 0x6292, 0x6293, 0x6296, 0x62D4, 0x6283, 0x6294, /* 0x50 */
- 0x62D7, 0x62D1, 0x62BB, 0x62CF, 0x62FF, 0x62C6, 0x64D4, 0x62C8, /* 0x50 */
- 0x62DC, 0x62CC, 0x62CA, 0x62C2, 0x62C7, 0x629B, 0x62C9, 0x630C, /* 0x60 */
- 0x62EE, 0x62F1, 0x6327, 0x6302, 0x6308, 0x62EF, 0x62F5, 0x6350, /* 0x60 */
- 0x633E, 0x634D, 0x641C, 0x634F, 0x6396, 0x638E, 0x6380, 0x63AB, /* 0x70 */
- 0x6376, 0x63A3, 0x638F, 0x6389, 0x639F, 0x63B5, 0x636B, 0, /* 0x70 */
- 0x6369, 0x63BE, 0x63E9, 0x63C0, 0x63C6, 0x63E3, 0x63C9, 0x63D2, /* 0x80 */
- 0x63F6, 0x63C4, 0x6416, 0x6434, 0x6406, 0x6413, 0x6426, 0x6436, /* 0x80 */
- 0x651D, 0x6417, 0x6428, 0x640F, 0x6467, 0x646F, 0x6476, 0x644E, /* 0x90 */
- 0x652A, 0x6495, 0x6493, 0x64A5, 0x64A9, 0x6488, 0x64BC, 0x64DA, /* 0x90 */
- 0x64D2, 0x64C5, 0x64C7, 0x64BB, 0x64D8, 0x64C2, 0x64F1, 0x64E7, /* 0xA0 */
- 0x8209, 0x64E0, 0x64E1, 0x62AC, 0x64E3, 0x64EF, 0x652C, 0x64F6, /* 0xA0 */
- 0x64F4, 0x64F2, 0x64FA, 0x6500, 0x64FD, 0x6518, 0x651C, 0x6505, /* 0xB0 */
- 0x6524, 0x6523, 0x652B, 0x6534, 0x6535, 0x6537, 0x6536, 0x6538, /* 0xB0 */
- 0x754B, 0x6548, 0x6556, 0x6555, 0x654D, 0x6558, 0x655E, 0x655D, /* 0xC0 */
- 0x6572, 0x6578, 0x6582, 0x6583, 0x8B8A, 0x659B, 0x659F, 0x65AB, /* 0xC0 */
- 0x65B7, 0x65C3, 0x65C6, 0x65C1, 0x65C4, 0x65CC, 0x65D2, 0x65DB, /* 0xD0 */
- 0x65D9, 0x65E0, 0x65E1, 0x65F1, 0x6772, 0x660A, 0x6603, 0x65FB, /* 0xD0 */
- 0x6773, 0x6635, 0x6636, 0x6634, 0x661C, 0x664F, 0x6644, 0x6649, /* 0xE0 */
- 0x6641, 0x665E, 0x665D, 0x6664, 0x6667, 0x6668, 0x665F, 0x6662, /* 0xE0 */
- 0x6670, 0x6683, 0x6688, 0x668E, 0x6689, 0x6684, 0x6698, 0x669D, /* 0xF0 */
- 0x66C1, 0x66B9, 0x66C9, 0x66BE, 0x66BC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_9E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x66C4, 0x66B8, 0x66D6, 0x66DA, 0x66E0, 0x663F, 0x66E6, 0x66E9, /* 0x40 */
- 0x66F0, 0x66F5, 0x66F7, 0x670F, 0x6716, 0x671E, 0x6726, 0x6727, /* 0x40 */
- 0x9738, 0x672E, 0x673F, 0x6736, 0x6741, 0x6738, 0x6737, 0x6746, /* 0x50 */
- 0x675E, 0x6760, 0x6759, 0x6763, 0x6764, 0x6789, 0x6770, 0x67A9, /* 0x50 */
- 0x677C, 0x676A, 0x678C, 0x678B, 0x67A6, 0x67A1, 0x6785, 0x67B7, /* 0x60 */
- 0x67EF, 0x67B4, 0x67EC, 0x67B3, 0x67E9, 0x67B8, 0x67E4, 0x67DE, /* 0x60 */
- 0x67DD, 0x67E2, 0x67EE, 0x67B9, 0x67CE, 0x67C6, 0x67E7, 0x6A9C, /* 0x70 */
- 0x681E, 0x6846, 0x6829, 0x6840, 0x684D, 0x6832, 0x684E, 0, /* 0x70 */
- 0x68B3, 0x682B, 0x6859, 0x6863, 0x6877, 0x687F, 0x689F, 0x688F, /* 0x80 */
- 0x68AD, 0x6894, 0x689D, 0x689B, 0x6883, 0x6AAE, 0x68B9, 0x6874, /* 0x80 */
- 0x68B5, 0x68A0, 0x68BA, 0x690F, 0x688D, 0x687E, 0x6901, 0x68CA, /* 0x90 */
- 0x6908, 0x68D8, 0x6922, 0x6926, 0x68E1, 0x690C, 0x68CD, 0x68D4, /* 0x90 */
- 0x68E7, 0x68D5, 0x6936, 0x6912, 0x6904, 0x68D7, 0x68E3, 0x6925, /* 0xA0 */
- 0x68F9, 0x68E0, 0x68EF, 0x6928, 0x692A, 0x691A, 0x6923, 0x6921, /* 0xA0 */
- 0x68C6, 0x6979, 0x6977, 0x695C, 0x6978, 0x696B, 0x6954, 0x697E, /* 0xB0 */
- 0x696E, 0x6939, 0x6974, 0x693D, 0x6959, 0x6930, 0x6961, 0x695E, /* 0xB0 */
- 0x695D, 0x6981, 0x696A, 0x69B2, 0x69AE, 0x69D0, 0x69BF, 0x69C1, /* 0xC0 */
- 0x69D3, 0x69BE, 0x69CE, 0x5BE8, 0x69CA, 0x69DD, 0x69BB, 0x69C3, /* 0xC0 */
- 0x69A7, 0x6A2E, 0x6991, 0x69A0, 0x699C, 0x6995, 0x69B4, 0x69DE, /* 0xD0 */
- 0x69E8, 0x6A02, 0x6A1B, 0x69FF, 0x6B0A, 0x69F9, 0x69F2, 0x69E7, /* 0xD0 */
- 0x6A05, 0x69B1, 0x6A1E, 0x69ED, 0x6A14, 0x69EB, 0x6A0A, 0x6A12, /* 0xE0 */
- 0x6AC1, 0x6A23, 0x6A13, 0x6A44, 0x6A0C, 0x6A72, 0x6A36, 0x6A78, /* 0xE0 */
- 0x6A47, 0x6A62, 0x6A59, 0x6A66, 0x6A48, 0x6A38, 0x6A22, 0x6A90, /* 0xF0 */
- 0x6A8D, 0x6AA0, 0x6A84, 0x6AA2, 0x6AA3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_9F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6A97, 0x8617, 0x6ABB, 0x6AC3, 0x6AC2, 0x6AB8, 0x6AB3, 0x6AAC, /* 0x40 */
- 0x6ADE, 0x6AD1, 0x6ADF, 0x6AAA, 0x6ADA, 0x6AEA, 0x6AFB, 0x6B05, /* 0x40 */
- 0x8616, 0x6AFA, 0x6B12, 0x6B16, 0x9B31, 0x6B1F, 0x6B38, 0x6B37, /* 0x50 */
- 0x76DC, 0x6B39, 0x98EE, 0x6B47, 0x6B43, 0x6B49, 0x6B50, 0x6B59, /* 0x50 */
- 0x6B54, 0x6B5B, 0x6B5F, 0x6B61, 0x6B78, 0x6B79, 0x6B7F, 0x6B80, /* 0x60 */
- 0x6B84, 0x6B83, 0x6B8D, 0x6B98, 0x6B95, 0x6B9E, 0x6BA4, 0x6BAA, /* 0x60 */
- 0x6BAB, 0x6BAF, 0x6BB2, 0x6BB1, 0x6BB3, 0x6BB7, 0x6BBC, 0x6BC6, /* 0x70 */
- 0x6BCB, 0x6BD3, 0x6BDF, 0x6BEC, 0x6BEB, 0x6BF3, 0x6BEF, 0, /* 0x70 */
- 0x9EBE, 0x6C08, 0x6C13, 0x6C14, 0x6C1B, 0x6C24, 0x6C23, 0x6C5E, /* 0x80 */
- 0x6C55, 0x6C62, 0x6C6A, 0x6C82, 0x6C8D, 0x6C9A, 0x6C81, 0x6C9B, /* 0x80 */
- 0x6C7E, 0x6C68, 0x6C73, 0x6C92, 0x6C90, 0x6CC4, 0x6CF1, 0x6CD3, /* 0x90 */
- 0x6CBD, 0x6CD7, 0x6CC5, 0x6CDD, 0x6CAE, 0x6CB1, 0x6CBE, 0x6CBA, /* 0x90 */
- 0x6CDB, 0x6CEF, 0x6CD9, 0x6CEA, 0x6D1F, 0x884D, 0x6D36, 0x6D2B, /* 0xA0 */
- 0x6D3D, 0x6D38, 0x6D19, 0x6D35, 0x6D33, 0x6D12, 0x6D0C, 0x6D63, /* 0xA0 */
- 0x6D93, 0x6D64, 0x6D5A, 0x6D79, 0x6D59, 0x6D8E, 0x6D95, 0x6FE4, /* 0xB0 */
- 0x6D85, 0x6DF9, 0x6E15, 0x6E0A, 0x6DB5, 0x6DC7, 0x6DE6, 0x6DB8, /* 0xB0 */
- 0x6DC6, 0x6DEC, 0x6DDE, 0x6DCC, 0x6DE8, 0x6DD2, 0x6DC5, 0x6DFA, /* 0xC0 */
- 0x6DD9, 0x6DE4, 0x6DD5, 0x6DEA, 0x6DEE, 0x6E2D, 0x6E6E, 0x6E2E, /* 0xC0 */
- 0x6E19, 0x6E72, 0x6E5F, 0x6E3E, 0x6E23, 0x6E6B, 0x6E2B, 0x6E76, /* 0xD0 */
- 0x6E4D, 0x6E1F, 0x6E43, 0x6E3A, 0x6E4E, 0x6E24, 0x6EFF, 0x6E1D, /* 0xD0 */
- 0x6E38, 0x6E82, 0x6EAA, 0x6E98, 0x6EC9, 0x6EB7, 0x6ED3, 0x6EBD, /* 0xE0 */
- 0x6EAF, 0x6EC4, 0x6EB2, 0x6ED4, 0x6ED5, 0x6E8F, 0x6EA5, 0x6EC2, /* 0xE0 */
- 0x6E9F, 0x6F41, 0x6F11, 0x704C, 0x6EEC, 0x6EF8, 0x6EFE, 0x6F3F, /* 0xF0 */
- 0x6EF2, 0x6F31, 0x6EEF, 0x6F32, 0x6ECC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_E0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6F3E, 0x6F13, 0x6EF7, 0x6F86, 0x6F7A, 0x6F78, 0x6F81, 0x6F80, /* 0x40 */
- 0x6F6F, 0x6F5B, 0x6FF3, 0x6F6D, 0x6F82, 0x6F7C, 0x6F58, 0x6F8E, /* 0x40 */
- 0x6F91, 0x6FC2, 0x6F66, 0x6FB3, 0x6FA3, 0x6FA1, 0x6FA4, 0x6FB9, /* 0x50 */
- 0x6FC6, 0x6FAA, 0x6FDF, 0x6FD5, 0x6FEC, 0x6FD4, 0x6FD8, 0x6FF1, /* 0x50 */
- 0x6FEE, 0x6FDB, 0x7009, 0x700B, 0x6FFA, 0x7011, 0x7001, 0x700F, /* 0x60 */
- 0x6FFE, 0x701B, 0x701A, 0x6F74, 0x701D, 0x7018, 0x701F, 0x7030, /* 0x60 */
- 0x703E, 0x7032, 0x7051, 0x7063, 0x7099, 0x7092, 0x70AF, 0x70F1, /* 0x70 */
- 0x70AC, 0x70B8, 0x70B3, 0x70AE, 0x70DF, 0x70CB, 0x70DD, 0, /* 0x70 */
- 0x70D9, 0x7109, 0x70FD, 0x711C, 0x7119, 0x7165, 0x7155, 0x7188, /* 0x80 */
- 0x7166, 0x7162, 0x714C, 0x7156, 0x716C, 0x718F, 0x71FB, 0x7184, /* 0x80 */
- 0x7195, 0x71A8, 0x71AC, 0x71D7, 0x71B9, 0x71BE, 0x71D2, 0x71C9, /* 0x90 */
- 0x71D4, 0x71CE, 0x71E0, 0x71EC, 0x71E7, 0x71F5, 0x71FC, 0x71F9, /* 0x90 */
- 0x71FF, 0x720D, 0x7210, 0x721B, 0x7228, 0x722D, 0x722C, 0x7230, /* 0xA0 */
- 0x7232, 0x723B, 0x723C, 0x723F, 0x7240, 0x7246, 0x724B, 0x7258, /* 0xA0 */
- 0x7274, 0x727E, 0x7282, 0x7281, 0x7287, 0x7292, 0x7296, 0x72A2, /* 0xB0 */
- 0x72A7, 0x72B9, 0x72B2, 0x72C3, 0x72C6, 0x72C4, 0x72CE, 0x72D2, /* 0xB0 */
- 0x72E2, 0x72E0, 0x72E1, 0x72F9, 0x72F7, 0x500F, 0x7317, 0x730A, /* 0xC0 */
- 0x731C, 0x7316, 0x731D, 0x7334, 0x732F, 0x7329, 0x7325, 0x733E, /* 0xC0 */
- 0x734E, 0x734F, 0x9ED8, 0x7357, 0x736A, 0x7368, 0x7370, 0x7378, /* 0xD0 */
- 0x7375, 0x737B, 0x737A, 0x73C8, 0x73B3, 0x73CE, 0x73BB, 0x73C0, /* 0xD0 */
- 0x73E5, 0x73EE, 0x73DE, 0x74A2, 0x7405, 0x746F, 0x7425, 0x73F8, /* 0xE0 */
- 0x7432, 0x743A, 0x7455, 0x743F, 0x745F, 0x7459, 0x7441, 0x745C, /* 0xE0 */
- 0x7469, 0x7470, 0x7463, 0x746A, 0x7476, 0x747E, 0x748B, 0x749E, /* 0xF0 */
- 0x74A7, 0x74CA, 0x74CF, 0x74D4, 0x73F1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_E1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x74E0, 0x74E3, 0x74E7, 0x74E9, 0x74EE, 0x74F2, 0x74F0, 0x74F1, /* 0x40 */
- 0x74F8, 0x74F7, 0x7504, 0x7503, 0x7505, 0x750C, 0x750E, 0x750D, /* 0x40 */
- 0x7515, 0x7513, 0x751E, 0x7526, 0x752C, 0x753C, 0x7544, 0x754D, /* 0x50 */
- 0x754A, 0x7549, 0x755B, 0x7546, 0x755A, 0x7569, 0x7564, 0x7567, /* 0x50 */
- 0x756B, 0x756D, 0x7578, 0x7576, 0x7586, 0x7587, 0x7574, 0x758A, /* 0x60 */
- 0x7589, 0x7582, 0x7594, 0x759A, 0x759D, 0x75A5, 0x75A3, 0x75C2, /* 0x60 */
- 0x75B3, 0x75C3, 0x75B5, 0x75BD, 0x75B8, 0x75BC, 0x75B1, 0x75CD, /* 0x70 */
- 0x75CA, 0x75D2, 0x75D9, 0x75E3, 0x75DE, 0x75FE, 0x75FF, 0, /* 0x70 */
- 0x75FC, 0x7601, 0x75F0, 0x75FA, 0x75F2, 0x75F3, 0x760B, 0x760D, /* 0x80 */
- 0x7609, 0x761F, 0x7627, 0x7620, 0x7621, 0x7622, 0x7624, 0x7634, /* 0x80 */
- 0x7630, 0x763B, 0x7647, 0x7648, 0x7646, 0x765C, 0x7658, 0x7661, /* 0x90 */
- 0x7662, 0x7668, 0x7669, 0x766A, 0x7667, 0x766C, 0x7670, 0x7672, /* 0x90 */
- 0x7676, 0x7678, 0x767C, 0x7680, 0x7683, 0x7688, 0x768B, 0x768E, /* 0xA0 */
- 0x7696, 0x7693, 0x7699, 0x769A, 0x76B0, 0x76B4, 0x76B8, 0x76B9, /* 0xA0 */
- 0x76BA, 0x76C2, 0x76CD, 0x76D6, 0x76D2, 0x76DE, 0x76E1, 0x76E5, /* 0xB0 */
- 0x76E7, 0x76EA, 0x862F, 0x76FB, 0x7708, 0x7707, 0x7704, 0x7729, /* 0xB0 */
- 0x7724, 0x771E, 0x7725, 0x7726, 0x771B, 0x7737, 0x7738, 0x7747, /* 0xC0 */
- 0x775A, 0x7768, 0x776B, 0x775B, 0x7765, 0x777F, 0x777E, 0x7779, /* 0xC0 */
- 0x778E, 0x778B, 0x7791, 0x77A0, 0x779E, 0x77B0, 0x77B6, 0x77B9, /* 0xD0 */
- 0x77BF, 0x77BC, 0x77BD, 0x77BB, 0x77C7, 0x77CD, 0x77D7, 0x77DA, /* 0xD0 */
- 0x77DC, 0x77E3, 0x77EE, 0x77FC, 0x780C, 0x7812, 0x7926, 0x7820, /* 0xE0 */
- 0x792A, 0x7845, 0x788E, 0x7874, 0x7886, 0x787C, 0x789A, 0x788C, /* 0xE0 */
- 0x78A3, 0x78B5, 0x78AA, 0x78AF, 0x78D1, 0x78C6, 0x78CB, 0x78D4, /* 0xF0 */
- 0x78BE, 0x78BC, 0x78C5, 0x78CA, 0x78EC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_E2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x78E7, 0x78DA, 0x78FD, 0x78F4, 0x7907, 0x7912, 0x7911, 0x7919, /* 0x40 */
- 0x792C, 0x792B, 0x7940, 0x7960, 0x7957, 0x795F, 0x795A, 0x7955, /* 0x40 */
- 0x7953, 0x797A, 0x797F, 0x798A, 0x799D, 0x79A7, 0x9F4B, 0x79AA, /* 0x50 */
- 0x79AE, 0x79B3, 0x79B9, 0x79BA, 0x79C9, 0x79D5, 0x79E7, 0x79EC, /* 0x50 */
- 0x79E1, 0x79E3, 0x7A08, 0x7A0D, 0x7A18, 0x7A19, 0x7A20, 0x7A1F, /* 0x60 */
- 0x7980, 0x7A31, 0x7A3B, 0x7A3E, 0x7A37, 0x7A43, 0x7A57, 0x7A49, /* 0x60 */
- 0x7A61, 0x7A62, 0x7A69, 0x9F9D, 0x7A70, 0x7A79, 0x7A7D, 0x7A88, /* 0x70 */
- 0x7A97, 0x7A95, 0x7A98, 0x7A96, 0x7AA9, 0x7AC8, 0x7AB0, 0, /* 0x70 */
- 0x7AB6, 0x7AC5, 0x7AC4, 0x7ABF, 0x9083, 0x7AC7, 0x7ACA, 0x7ACD, /* 0x80 */
- 0x7ACF, 0x7AD5, 0x7AD3, 0x7AD9, 0x7ADA, 0x7ADD, 0x7AE1, 0x7AE2, /* 0x80 */
- 0x7AE6, 0x7AED, 0x7AF0, 0x7B02, 0x7B0F, 0x7B0A, 0x7B06, 0x7B33, /* 0x90 */
- 0x7B18, 0x7B19, 0x7B1E, 0x7B35, 0x7B28, 0x7B36, 0x7B50, 0x7B7A, /* 0x90 */
- 0x7B04, 0x7B4D, 0x7B0B, 0x7B4C, 0x7B45, 0x7B75, 0x7B65, 0x7B74, /* 0xA0 */
- 0x7B67, 0x7B70, 0x7B71, 0x7B6C, 0x7B6E, 0x7B9D, 0x7B98, 0x7B9F, /* 0xA0 */
- 0x7B8D, 0x7B9C, 0x7B9A, 0x7B8B, 0x7B92, 0x7B8F, 0x7B5D, 0x7B99, /* 0xB0 */
- 0x7BCB, 0x7BC1, 0x7BCC, 0x7BCF, 0x7BB4, 0x7BC6, 0x7BDD, 0x7BE9, /* 0xB0 */
- 0x7C11, 0x7C14, 0x7BE6, 0x7BE5, 0x7C60, 0x7C00, 0x7C07, 0x7C13, /* 0xC0 */
- 0x7BF3, 0x7BF7, 0x7C17, 0x7C0D, 0x7BF6, 0x7C23, 0x7C27, 0x7C2A, /* 0xC0 */
- 0x7C1F, 0x7C37, 0x7C2B, 0x7C3D, 0x7C4C, 0x7C43, 0x7C54, 0x7C4F, /* 0xD0 */
- 0x7C40, 0x7C50, 0x7C58, 0x7C5F, 0x7C64, 0x7C56, 0x7C65, 0x7C6C, /* 0xD0 */
- 0x7C75, 0x7C83, 0x7C90, 0x7CA4, 0x7CAD, 0x7CA2, 0x7CAB, 0x7CA1, /* 0xE0 */
- 0x7CA8, 0x7CB3, 0x7CB2, 0x7CB1, 0x7CAE, 0x7CB9, 0x7CBD, 0x7CC0, /* 0xE0 */
- 0x7CC5, 0x7CC2, 0x7CD8, 0x7CD2, 0x7CDC, 0x7CE2, 0x9B3B, 0x7CEF, /* 0xF0 */
- 0x7CF2, 0x7CF4, 0x7CF6, 0x7CFA, 0x7D06 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_E3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7D02, 0x7D1C, 0x7D15, 0x7D0A, 0x7D45, 0x7D4B, 0x7D2E, 0x7D32, /* 0x40 */
- 0x7D3F, 0x7D35, 0x7D46, 0x7D73, 0x7D56, 0x7D4E, 0x7D72, 0x7D68, /* 0x40 */
- 0x7D6E, 0x7D4F, 0x7D63, 0x7D93, 0x7D89, 0x7D5B, 0x7D8F, 0x7D7D, /* 0x50 */
- 0x7D9B, 0x7DBA, 0x7DAE, 0x7DA3, 0x7DB5, 0x7DC7, 0x7DBD, 0x7DAB, /* 0x50 */
- 0x7E3D, 0x7DA2, 0x7DAF, 0x7DDC, 0x7DB8, 0x7D9F, 0x7DB0, 0x7DD8, /* 0x60 */
- 0x7DDD, 0x7DE4, 0x7DDE, 0x7DFB, 0x7DF2, 0x7DE1, 0x7E05, 0x7E0A, /* 0x60 */
- 0x7E23, 0x7E21, 0x7E12, 0x7E31, 0x7E1F, 0x7E09, 0x7E0B, 0x7E22, /* 0x70 */
- 0x7E46, 0x7E66, 0x7E3B, 0x7E35, 0x7E39, 0x7E43, 0x7E37, 0, /* 0x70 */
- 0x7E32, 0x7E3A, 0x7E67, 0x7E5D, 0x7E56, 0x7E5E, 0x7E59, 0x7E5A, /* 0x80 */
- 0x7E79, 0x7E6A, 0x7E69, 0x7E7C, 0x7E7B, 0x7E83, 0x7DD5, 0x7E7D, /* 0x80 */
- 0x8FAE, 0x7E7F, 0x7E88, 0x7E89, 0x7E8C, 0x7E92, 0x7E90, 0x7E93, /* 0x90 */
- 0x7E94, 0x7E96, 0x7E8E, 0x7E9B, 0x7E9C, 0x7F38, 0x7F3A, 0x7F45, /* 0x90 */
- 0x7F4C, 0x7F4D, 0x7F4E, 0x7F50, 0x7F51, 0x7F55, 0x7F54, 0x7F58, /* 0xA0 */
- 0x7F5F, 0x7F60, 0x7F68, 0x7F69, 0x7F67, 0x7F78, 0x7F82, 0x7F86, /* 0xA0 */
- 0x7F83, 0x7F88, 0x7F87, 0x7F8C, 0x7F94, 0x7F9E, 0x7F9D, 0x7F9A, /* 0xB0 */
- 0x7FA3, 0x7FAF, 0x7FB2, 0x7FB9, 0x7FAE, 0x7FB6, 0x7FB8, 0x8B71, /* 0xB0 */
- 0x7FC5, 0x7FC6, 0x7FCA, 0x7FD5, 0x7FD4, 0x7FE1, 0x7FE6, 0x7FE9, /* 0xC0 */
- 0x7FF3, 0x7FF9, 0x98DC, 0x8006, 0x8004, 0x800B, 0x8012, 0x8018, /* 0xC0 */
- 0x8019, 0x801C, 0x8021, 0x8028, 0x803F, 0x803B, 0x804A, 0x8046, /* 0xD0 */
- 0x8052, 0x8058, 0x805A, 0x805F, 0x8062, 0x8068, 0x8073, 0x8072, /* 0xD0 */
- 0x8070, 0x8076, 0x8079, 0x807D, 0x807F, 0x8084, 0x8086, 0x8085, /* 0xE0 */
- 0x809B, 0x8093, 0x809A, 0x80AD, 0x5190, 0x80AC, 0x80DB, 0x80E5, /* 0xE0 */
- 0x80D9, 0x80DD, 0x80C4, 0x80DA, 0x80D6, 0x8109, 0x80EF, 0x80F1, /* 0xF0 */
- 0x811B, 0x8129, 0x8123, 0x812F, 0x814B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_E4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x968B, 0x8146, 0x813E, 0x8153, 0x8151, 0x80FC, 0x8171, 0x816E, /* 0x40 */
- 0x8165, 0x8166, 0x8174, 0x8183, 0x8188, 0x818A, 0x8180, 0x8182, /* 0x40 */
- 0x81A0, 0x8195, 0x81A4, 0x81A3, 0x815F, 0x8193, 0x81A9, 0x81B0, /* 0x50 */
- 0x81B5, 0x81BE, 0x81B8, 0x81BD, 0x81C0, 0x81C2, 0x81BA, 0x81C9, /* 0x50 */
- 0x81CD, 0x81D1, 0x81D9, 0x81D8, 0x81C8, 0x81DA, 0x81DF, 0x81E0, /* 0x60 */
- 0x81E7, 0x81FA, 0x81FB, 0x81FE, 0x8201, 0x8202, 0x8205, 0x8207, /* 0x60 */
- 0x820A, 0x820D, 0x8210, 0x8216, 0x8229, 0x822B, 0x8238, 0x8233, /* 0x70 */
- 0x8240, 0x8259, 0x8258, 0x825D, 0x825A, 0x825F, 0x8264, 0, /* 0x70 */
- 0x8262, 0x8268, 0x826A, 0x826B, 0x822E, 0x8271, 0x8277, 0x8278, /* 0x80 */
- 0x827E, 0x828D, 0x8292, 0x82AB, 0x829F, 0x82BB, 0x82AC, 0x82E1, /* 0x80 */
- 0x82E3, 0x82DF, 0x82D2, 0x82F4, 0x82F3, 0x82FA, 0x8393, 0x8303, /* 0x90 */
- 0x82FB, 0x82F9, 0x82DE, 0x8306, 0x82DC, 0x8309, 0x82D9, 0x8335, /* 0x90 */
- 0x8334, 0x8316, 0x8332, 0x8331, 0x8340, 0x8339, 0x8350, 0x8345, /* 0xA0 */
- 0x832F, 0x832B, 0x8317, 0x8318, 0x8385, 0x839A, 0x83AA, 0x839F, /* 0xA0 */
- 0x83A2, 0x8396, 0x8323, 0x838E, 0x8387, 0x838A, 0x837C, 0x83B5, /* 0xB0 */
- 0x8373, 0x8375, 0x83A0, 0x8389, 0x83A8, 0x83F4, 0x8413, 0x83EB, /* 0xB0 */
- 0x83CE, 0x83FD, 0x8403, 0x83D8, 0x840B, 0x83C1, 0x83F7, 0x8407, /* 0xC0 */
- 0x83E0, 0x83F2, 0x840D, 0x8422, 0x8420, 0x83BD, 0x8438, 0x8506, /* 0xC0 */
- 0x83FB, 0x846D, 0x842A, 0x843C, 0x855A, 0x8484, 0x8477, 0x846B, /* 0xD0 */
- 0x84AD, 0x846E, 0x8482, 0x8469, 0x8446, 0x842C, 0x846F, 0x8479, /* 0xD0 */
- 0x8435, 0x84CA, 0x8462, 0x84B9, 0x84BF, 0x849F, 0x84D9, 0x84CD, /* 0xE0 */
- 0x84BB, 0x84DA, 0x84D0, 0x84C1, 0x84C6, 0x84D6, 0x84A1, 0x8521, /* 0xE0 */
- 0x84FF, 0x84F4, 0x8517, 0x8518, 0x852C, 0x851F, 0x8515, 0x8514, /* 0xF0 */
- 0x84FC, 0x8540, 0x8563, 0x8558, 0x8548 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_E5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8541, 0x8602, 0x854B, 0x8555, 0x8580, 0x85A4, 0x8588, 0x8591, /* 0x40 */
- 0x858A, 0x85A8, 0x856D, 0x8594, 0x859B, 0x85EA, 0x8587, 0x859C, /* 0x40 */
- 0x8577, 0x857E, 0x8590, 0x85C9, 0x85BA, 0x85CF, 0x85B9, 0x85D0, /* 0x50 */
- 0x85D5, 0x85DD, 0x85E5, 0x85DC, 0x85F9, 0x860A, 0x8613, 0x860B, /* 0x50 */
- 0x85FE, 0x85FA, 0x8606, 0x8622, 0x861A, 0x8630, 0x863F, 0x864D, /* 0x60 */
- 0x4E55, 0x8654, 0x865F, 0x8667, 0x8671, 0x8693, 0x86A3, 0x86A9, /* 0x60 */
- 0x86AA, 0x868B, 0x868C, 0x86B6, 0x86AF, 0x86C4, 0x86C6, 0x86B0, /* 0x70 */
- 0x86C9, 0x8823, 0x86AB, 0x86D4, 0x86DE, 0x86E9, 0x86EC, 0, /* 0x70 */
- 0x86DF, 0x86DB, 0x86EF, 0x8712, 0x8706, 0x8708, 0x8700, 0x8703, /* 0x80 */
- 0x86FB, 0x8711, 0x8709, 0x870D, 0x86F9, 0x870A, 0x8734, 0x873F, /* 0x80 */
- 0x8737, 0x873B, 0x8725, 0x8729, 0x871A, 0x8760, 0x875F, 0x8778, /* 0x90 */
- 0x874C, 0x874E, 0x8774, 0x8757, 0x8768, 0x876E, 0x8759, 0x8753, /* 0x90 */
- 0x8763, 0x876A, 0x8805, 0x87A2, 0x879F, 0x8782, 0x87AF, 0x87CB, /* 0xA0 */
- 0x87BD, 0x87C0, 0x87D0, 0x96D6, 0x87AB, 0x87C4, 0x87B3, 0x87C7, /* 0xA0 */
- 0x87C6, 0x87BB, 0x87EF, 0x87F2, 0x87E0, 0x880F, 0x880D, 0x87FE, /* 0xB0 */
- 0x87F6, 0x87F7, 0x880E, 0x87D2, 0x8811, 0x8816, 0x8815, 0x8822, /* 0xB0 */
- 0x8821, 0x8831, 0x8836, 0x8839, 0x8827, 0x883B, 0x8844, 0x8842, /* 0xC0 */
- 0x8852, 0x8859, 0x885E, 0x8862, 0x886B, 0x8881, 0x887E, 0x889E, /* 0xC0 */
- 0x8875, 0x887D, 0x88B5, 0x8872, 0x8882, 0x8897, 0x8892, 0x88AE, /* 0xD0 */
- 0x8899, 0x88A2, 0x888D, 0x88A4, 0x88B0, 0x88BF, 0x88B1, 0x88C3, /* 0xD0 */
- 0x88C4, 0x88D4, 0x88D8, 0x88D9, 0x88DD, 0x88F9, 0x8902, 0x88FC, /* 0xE0 */
- 0x88F4, 0x88E8, 0x88F2, 0x8904, 0x890C, 0x890A, 0x8913, 0x8943, /* 0xE0 */
- 0x891E, 0x8925, 0x892A, 0x892B, 0x8941, 0x8944, 0x893B, 0x8936, /* 0xF0 */
- 0x8938, 0x894C, 0x891D, 0x8960, 0x895E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_E6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8966, 0x8964, 0x896D, 0x896A, 0x896F, 0x8974, 0x8977, 0x897E, /* 0x40 */
- 0x8983, 0x8988, 0x898A, 0x8993, 0x8998, 0x89A1, 0x89A9, 0x89A6, /* 0x40 */
- 0x89AC, 0x89AF, 0x89B2, 0x89BA, 0x89BD, 0x89BF, 0x89C0, 0x89DA, /* 0x50 */
- 0x89DC, 0x89DD, 0x89E7, 0x89F4, 0x89F8, 0x8A03, 0x8A16, 0x8A10, /* 0x50 */
- 0x8A0C, 0x8A1B, 0x8A1D, 0x8A25, 0x8A36, 0x8A41, 0x8A5B, 0x8A52, /* 0x60 */
- 0x8A46, 0x8A48, 0x8A7C, 0x8A6D, 0x8A6C, 0x8A62, 0x8A85, 0x8A82, /* 0x60 */
- 0x8A84, 0x8AA8, 0x8AA1, 0x8A91, 0x8AA5, 0x8AA6, 0x8A9A, 0x8AA3, /* 0x70 */
- 0x8AC4, 0x8ACD, 0x8AC2, 0x8ADA, 0x8AEB, 0x8AF3, 0x8AE7, 0, /* 0x70 */
- 0x8AE4, 0x8AF1, 0x8B14, 0x8AE0, 0x8AE2, 0x8AF7, 0x8ADE, 0x8ADB, /* 0x80 */
- 0x8B0C, 0x8B07, 0x8B1A, 0x8AE1, 0x8B16, 0x8B10, 0x8B17, 0x8B20, /* 0x80 */
- 0x8B33, 0x97AB, 0x8B26, 0x8B2B, 0x8B3E, 0x8B28, 0x8B41, 0x8B4C, /* 0x90 */
- 0x8B4F, 0x8B4E, 0x8B49, 0x8B56, 0x8B5B, 0x8B5A, 0x8B6B, 0x8B5F, /* 0x90 */
- 0x8B6C, 0x8B6F, 0x8B74, 0x8B7D, 0x8B80, 0x8B8C, 0x8B8E, 0x8B92, /* 0xA0 */
- 0x8B93, 0x8B96, 0x8B99, 0x8B9A, 0x8C3A, 0x8C41, 0x8C3F, 0x8C48, /* 0xA0 */
- 0x8C4C, 0x8C4E, 0x8C50, 0x8C55, 0x8C62, 0x8C6C, 0x8C78, 0x8C7A, /* 0xB0 */
- 0x8C82, 0x8C89, 0x8C85, 0x8C8A, 0x8C8D, 0x8C8E, 0x8C94, 0x8C7C, /* 0xB0 */
- 0x8C98, 0x621D, 0x8CAD, 0x8CAA, 0x8CBD, 0x8CB2, 0x8CB3, 0x8CAE, /* 0xC0 */
- 0x8CB6, 0x8CC8, 0x8CC1, 0x8CE4, 0x8CE3, 0x8CDA, 0x8CFD, 0x8CFA, /* 0xC0 */
- 0x8CFB, 0x8D04, 0x8D05, 0x8D0A, 0x8D07, 0x8D0F, 0x8D0D, 0x8D10, /* 0xD0 */
- 0x9F4E, 0x8D13, 0x8CCD, 0x8D14, 0x8D16, 0x8D67, 0x8D6D, 0x8D71, /* 0xD0 */
- 0x8D73, 0x8D81, 0x8D99, 0x8DC2, 0x8DBE, 0x8DBA, 0x8DCF, 0x8DDA, /* 0xE0 */
- 0x8DD6, 0x8DCC, 0x8DDB, 0x8DCB, 0x8DEA, 0x8DEB, 0x8DDF, 0x8DE3, /* 0xE0 */
- 0x8DFC, 0x8E08, 0x8E09, 0x8DFF, 0x8E1D, 0x8E1E, 0x8E10, 0x8E1F, /* 0xF0 */
- 0x8E42, 0x8E35, 0x8E30, 0x8E34, 0x8E4A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_E7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8E47, 0x8E49, 0x8E4C, 0x8E50, 0x8E48, 0x8E59, 0x8E64, 0x8E60, /* 0x40 */
- 0x8E2A, 0x8E63, 0x8E55, 0x8E76, 0x8E72, 0x8E7C, 0x8E81, 0x8E87, /* 0x40 */
- 0x8E85, 0x8E84, 0x8E8B, 0x8E8A, 0x8E93, 0x8E91, 0x8E94, 0x8E99, /* 0x50 */
- 0x8EAA, 0x8EA1, 0x8EAC, 0x8EB0, 0x8EC6, 0x8EB1, 0x8EBE, 0x8EC5, /* 0x50 */
- 0x8EC8, 0x8ECB, 0x8EDB, 0x8EE3, 0x8EFC, 0x8EFB, 0x8EEB, 0x8EFE, /* 0x60 */
- 0x8F0A, 0x8F05, 0x8F15, 0x8F12, 0x8F19, 0x8F13, 0x8F1C, 0x8F1F, /* 0x60 */
- 0x8F1B, 0x8F0C, 0x8F26, 0x8F33, 0x8F3B, 0x8F39, 0x8F45, 0x8F42, /* 0x70 */
- 0x8F3E, 0x8F4C, 0x8F49, 0x8F46, 0x8F4E, 0x8F57, 0x8F5C, 0, /* 0x70 */
- 0x8F62, 0x8F63, 0x8F64, 0x8F9C, 0x8F9F, 0x8FA3, 0x8FAD, 0x8FAF, /* 0x80 */
- 0x8FB7, 0x8FDA, 0x8FE5, 0x8FE2, 0x8FEA, 0x8FEF, 0x9087, 0x8FF4, /* 0x80 */
- 0x9005, 0x8FF9, 0x8FFA, 0x9011, 0x9015, 0x9021, 0x900D, 0x901E, /* 0x90 */
- 0x9016, 0x900B, 0x9027, 0x9036, 0x9035, 0x9039, 0x8FF8, 0x904F, /* 0x90 */
- 0x9050, 0x9051, 0x9052, 0x900E, 0x9049, 0x903E, 0x9056, 0x9058, /* 0xA0 */
- 0x905E, 0x9068, 0x906F, 0x9076, 0x96A8, 0x9072, 0x9082, 0x907D, /* 0xA0 */
- 0x9081, 0x9080, 0x908A, 0x9089, 0x908F, 0x90A8, 0x90AF, 0x90B1, /* 0xB0 */
- 0x90B5, 0x90E2, 0x90E4, 0x6248, 0x90DB, 0x9102, 0x9112, 0x9119, /* 0xB0 */
- 0x9132, 0x9130, 0x914A, 0x9156, 0x9158, 0x9163, 0x9165, 0x9169, /* 0xC0 */
- 0x9173, 0x9172, 0x918B, 0x9189, 0x9182, 0x91A2, 0x91AB, 0x91AF, /* 0xC0 */
- 0x91AA, 0x91B5, 0x91B4, 0x91BA, 0x91C0, 0x91C1, 0x91C9, 0x91CB, /* 0xD0 */
- 0x91D0, 0x91D6, 0x91DF, 0x91E1, 0x91DB, 0x91FC, 0x91F5, 0x91F6, /* 0xD0 */
- 0x921E, 0x91FF, 0x9214, 0x922C, 0x9215, 0x9211, 0x925E, 0x9257, /* 0xE0 */
- 0x9245, 0x9249, 0x9264, 0x9248, 0x9295, 0x923F, 0x924B, 0x9250, /* 0xE0 */
- 0x929C, 0x9296, 0x9293, 0x929B, 0x925A, 0x92CF, 0x92B9, 0x92B7, /* 0xF0 */
- 0x92E9, 0x930F, 0x92FA, 0x9344, 0x932E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_E8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9319, 0x9322, 0x931A, 0x9323, 0x933A, 0x9335, 0x933B, 0x935C, /* 0x40 */
- 0x9360, 0x937C, 0x936E, 0x9356, 0x93B0, 0x93AC, 0x93AD, 0x9394, /* 0x40 */
- 0x93B9, 0x93D6, 0x93D7, 0x93E8, 0x93E5, 0x93D8, 0x93C3, 0x93DD, /* 0x50 */
- 0x93D0, 0x93C8, 0x93E4, 0x941A, 0x9414, 0x9413, 0x9403, 0x9407, /* 0x50 */
- 0x9410, 0x9436, 0x942B, 0x9435, 0x9421, 0x943A, 0x9441, 0x9452, /* 0x60 */
- 0x9444, 0x945B, 0x9460, 0x9462, 0x945E, 0x946A, 0x9229, 0x9470, /* 0x60 */
- 0x9475, 0x9477, 0x947D, 0x945A, 0x947C, 0x947E, 0x9481, 0x947F, /* 0x70 */
- 0x9582, 0x9587, 0x958A, 0x9594, 0x9596, 0x9598, 0x9599, 0, /* 0x70 */
- 0x95A0, 0x95A8, 0x95A7, 0x95AD, 0x95BC, 0x95BB, 0x95B9, 0x95BE, /* 0x80 */
- 0x95CA, 0x6FF6, 0x95C3, 0x95CD, 0x95CC, 0x95D5, 0x95D4, 0x95D6, /* 0x80 */
- 0x95DC, 0x95E1, 0x95E5, 0x95E2, 0x9621, 0x9628, 0x962E, 0x962F, /* 0x90 */
- 0x9642, 0x964C, 0x964F, 0x964B, 0x9677, 0x965C, 0x965E, 0x965D, /* 0x90 */
- 0x965F, 0x9666, 0x9672, 0x966C, 0x968D, 0x9698, 0x9695, 0x9697, /* 0xA0 */
- 0x96AA, 0x96A7, 0x96B1, 0x96B2, 0x96B0, 0x96B4, 0x96B6, 0x96B8, /* 0xA0 */
- 0x96B9, 0x96CE, 0x96CB, 0x96C9, 0x96CD, 0x894D, 0x96DC, 0x970D, /* 0xB0 */
- 0x96D5, 0x96F9, 0x9704, 0x9706, 0x9708, 0x9713, 0x970E, 0x9711, /* 0xB0 */
- 0x970F, 0x9716, 0x9719, 0x9724, 0x972A, 0x9730, 0x9739, 0x973D, /* 0xC0 */
- 0x973E, 0x9744, 0x9746, 0x9748, 0x9742, 0x9749, 0x975C, 0x9760, /* 0xC0 */
- 0x9764, 0x9766, 0x9768, 0x52D2, 0x976B, 0x9771, 0x9779, 0x9785, /* 0xD0 */
- 0x977C, 0x9781, 0x977A, 0x9786, 0x978B, 0x978F, 0x9790, 0x979C, /* 0xD0 */
- 0x97A8, 0x97A6, 0x97A3, 0x97B3, 0x97B4, 0x97C3, 0x97C6, 0x97C8, /* 0xE0 */
- 0x97CB, 0x97DC, 0x97ED, 0x9F4F, 0x97F2, 0x7ADF, 0x97F6, 0x97F5, /* 0xE0 */
- 0x980F, 0x980C, 0x9838, 0x9824, 0x9821, 0x9837, 0x983D, 0x9846, /* 0xF0 */
- 0x984F, 0x984B, 0x986B, 0x986F, 0x9870 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_E9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9871, 0x9874, 0x9873, 0x98AA, 0x98AF, 0x98B1, 0x98B6, 0x98C4, /* 0x40 */
- 0x98C3, 0x98C6, 0x98E9, 0x98EB, 0x9903, 0x9909, 0x9912, 0x9914, /* 0x40 */
- 0x9918, 0x9921, 0x991D, 0x991E, 0x9924, 0x9920, 0x992C, 0x992E, /* 0x50 */
- 0x993D, 0x993E, 0x9942, 0x9949, 0x9945, 0x9950, 0x994B, 0x9951, /* 0x50 */
- 0x9952, 0x994C, 0x9955, 0x9997, 0x9998, 0x99A5, 0x99AD, 0x99AE, /* 0x60 */
- 0x99BC, 0x99DF, 0x99DB, 0x99DD, 0x99D8, 0x99D1, 0x99ED, 0x99EE, /* 0x60 */
- 0x99F1, 0x99F2, 0x99FB, 0x99F8, 0x9A01, 0x9A0F, 0x9A05, 0x99E2, /* 0x70 */
- 0x9A19, 0x9A2B, 0x9A37, 0x9A45, 0x9A42, 0x9A40, 0x9A43, 0, /* 0x70 */
- 0x9A3E, 0x9A55, 0x9A4D, 0x9A5B, 0x9A57, 0x9A5F, 0x9A62, 0x9A65, /* 0x80 */
- 0x9A64, 0x9A69, 0x9A6B, 0x9A6A, 0x9AAD, 0x9AB0, 0x9ABC, 0x9AC0, /* 0x80 */
- 0x9ACF, 0x9AD1, 0x9AD3, 0x9AD4, 0x9ADE, 0x9ADF, 0x9AE2, 0x9AE3, /* 0x90 */
- 0x9AE6, 0x9AEF, 0x9AEB, 0x9AEE, 0x9AF4, 0x9AF1, 0x9AF7, 0x9AFB, /* 0x90 */
- 0x9B06, 0x9B18, 0x9B1A, 0x9B1F, 0x9B22, 0x9B23, 0x9B25, 0x9B27, /* 0xA0 */
- 0x9B28, 0x9B29, 0x9B2A, 0x9B2E, 0x9B2F, 0x9B32, 0x9B44, 0x9B43, /* 0xA0 */
- 0x9B4F, 0x9B4D, 0x9B4E, 0x9B51, 0x9B58, 0x9B74, 0x9B93, 0x9B83, /* 0xB0 */
- 0x9B91, 0x9B96, 0x9B97, 0x9B9F, 0x9BA0, 0x9BA8, 0x9BB4, 0x9BC0, /* 0xB0 */
- 0x9BCA, 0x9BB9, 0x9BC6, 0x9BCF, 0x9BD1, 0x9BD2, 0x9BE3, 0x9BE2, /* 0xC0 */
- 0x9BE4, 0x9BD4, 0x9BE1, 0x9C3A, 0x9BF2, 0x9BF1, 0x9BF0, 0x9C15, /* 0xC0 */
- 0x9C14, 0x9C09, 0x9C13, 0x9C0C, 0x9C06, 0x9C08, 0x9C12, 0x9C0A, /* 0xD0 */
- 0x9C04, 0x9C2E, 0x9C1B, 0x9C25, 0x9C24, 0x9C21, 0x9C30, 0x9C47, /* 0xD0 */
- 0x9C32, 0x9C46, 0x9C3E, 0x9C5A, 0x9C60, 0x9C67, 0x9C76, 0x9C78, /* 0xE0 */
- 0x9CE7, 0x9CEC, 0x9CF0, 0x9D09, 0x9D08, 0x9CEB, 0x9D03, 0x9D06, /* 0xE0 */
- 0x9D2A, 0x9D26, 0x9DAF, 0x9D23, 0x9D1F, 0x9D44, 0x9D15, 0x9D12, /* 0xF0 */
- 0x9D41, 0x9D3F, 0x9D3E, 0x9D46, 0x9D48 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_SJIS_EA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9D5D, 0x9D5E, 0x9D64, 0x9D51, 0x9D50, 0x9D59, 0x9D72, 0x9D89, /* 0x40 */
- 0x9D87, 0x9DAB, 0x9D6F, 0x9D7A, 0x9D9A, 0x9DA4, 0x9DA9, 0x9DB2, /* 0x40 */
- 0x9DC4, 0x9DC1, 0x9DBB, 0x9DB8, 0x9DBA, 0x9DC6, 0x9DCF, 0x9DC2, /* 0x50 */
- 0x9DD9, 0x9DD3, 0x9DF8, 0x9DE6, 0x9DED, 0x9DEF, 0x9DFD, 0x9E1A, /* 0x50 */
- 0x9E1B, 0x9E1E, 0x9E75, 0x9E79, 0x9E7D, 0x9E81, 0x9E88, 0x9E8B, /* 0x60 */
- 0x9E8C, 0x9E92, 0x9E95, 0x9E91, 0x9E9D, 0x9EA5, 0x9EA9, 0x9EB8, /* 0x60 */
- 0x9EAA, 0x9EAD, 0x9761, 0x9ECC, 0x9ECE, 0x9ECF, 0x9ED0, 0x9ED4, /* 0x70 */
- 0x9EDC, 0x9EDE, 0x9EDD, 0x9EE0, 0x9EE5, 0x9EE8, 0x9EEF, 0, /* 0x70 */
- 0x9EF4, 0x9EF6, 0x9EF7, 0x9EF9, 0x9EFB, 0x9EFC, 0x9EFD, 0x9F07, /* 0x80 */
- 0x9F08, 0x76B7, 0x9F15, 0x9F21, 0x9F2C, 0x9F3E, 0x9F4A, 0x9F52, /* 0x80 */
- 0x9F54, 0x9F63, 0x9F5F, 0x9F60, 0x9F61, 0x9F66, 0x9F67, 0x9F6C, /* 0x90 */
- 0x9F6A, 0x9F77, 0x9F72, 0x9F76, 0x9F95, 0x9F9C, 0x9FA0, 0x582F, /* 0x90 */
- 0x69C7, 0x9059, 0x7464, 0x51DC, 0x7199 /* 0xA0 */
- /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_APPLEJAPANESE_EB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFE33, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0xFE31, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0xFE30, 0, 0, 0, /* 0x60 */
- 0, 0xFE35, 0xFE36, 0xFE39, 0xFE3A, 0, 0, 0xFE37, /* 0x60 */
- 0xFE38, 0xFE3F, 0xFE40, 0xFE3D, 0xFE3E, 0xFE41, 0xFE42, 0xFE43, /* 0x70 */
- 0xFE44, 0xFE3B, 0xFE3C /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_MS932_ED[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7E8A, 0x891C, 0x9348, 0x9288, 0x84DC, 0x4FC9, 0x70BB, 0x6631, /* 0x40 */
- 0x68C8, 0x92F9, 0x66FB, 0x5F45, 0x4E28, 0x4EE1, 0x4EFC, 0x4F00, /* 0x40 */
- 0x4F03, 0x4F39, 0x4F56, 0x4F92, 0x4F8A, 0x4F9A, 0x4F94, 0x4FCD, /* 0x50 */
- 0x5040, 0x5022, 0x4FFF, 0x501E, 0x5046, 0x5070, 0x5042, 0x5094, /* 0x50 */
- 0x50F4, 0x50D8, 0x514A, 0x5164, 0x519D, 0x51BE, 0x51EC, 0x5215, /* 0x60 */
- 0x529C, 0x52A6, 0x52C0, 0x52DB, 0x5300, 0x5307, 0x5324, 0x5372, /* 0x60 */
- 0x5393, 0x53B2, 0x53DD, 0xFA0E, 0x549C, 0x548A, 0x54A9, 0x54FF, /* 0x70 */
- 0x5586, 0x5759, 0x5765, 0x57AC, 0x57C8, 0x57C7, 0xFA0F, 0, /* 0x70 */
- 0xFA10, 0x589E, 0x58B2, 0x590B, 0x5953, 0x595B, 0x595D, 0x5963, /* 0x80 */
- 0x59A4, 0x59BA, 0x5B56, 0x5BC0, 0x752F, 0x5BD8, 0x5BEC, 0x5C1E, /* 0x80 */
- 0x5CA6, 0x5CBA, 0x5CF5, 0x5D27, 0x5D53, 0xFA11, 0x5D42, 0x5D6D, /* 0x90 */
- 0x5DB8, 0x5DB9, 0x5DD0, 0x5F21, 0x5F34, 0x5F67, 0x5FB7, 0x5FDE, /* 0x90 */
- 0x605D, 0x6085, 0x608A, 0x60DE, 0x60D5, 0x6120, 0x60F2, 0x6111, /* 0xA0 */
- 0x6137, 0x6130, 0x6198, 0x6213, 0x62A6, 0x63F5, 0x6460, 0x649D, /* 0xA0 */
- 0x64CE, 0x654E, 0x6600, 0x6615, 0x663B, 0x6609, 0x662E, 0x661E, /* 0xB0 */
- 0x6624, 0x6665, 0x6657, 0x6659, 0xFA12, 0x6673, 0x6699, 0x66A0, /* 0xB0 */
- 0x66B2, 0x66BF, 0x66FA, 0x670E, 0xF929, 0x6766, 0x67BB, 0x6852, /* 0xC0 */
- 0x67C0, 0x6801, 0x6844, 0x68CF, 0xFA13, 0x6968, 0xFA14, 0x6998, /* 0xC0 */
- 0x69E2, 0x6A30, 0x6A6B, 0x6A46, 0x6A73, 0x6A7E, 0x6AE2, 0x6AE4, /* 0xD0 */
- 0x6BD6, 0x6C3F, 0x6C5C, 0x6C86, 0x6C6F, 0x6CDA, 0x6D04, 0x6D87, /* 0xD0 */
- 0x6D6F, 0x6D96, 0x6DAC, 0x6DCF, 0x6DF8, 0x6DF2, 0x6DFC, 0x6E39, /* 0xE0 */
- 0x6E5C, 0x6E27, 0x6E3C, 0x6EBF, 0x6F88, 0x6FB5, 0x6FF5, 0x7005, /* 0xE0 */
- 0x7007, 0x7028, 0x7085, 0x70AB, 0x710F, 0x7104, 0x715C, 0x7146, /* 0xF0 */
- 0x7147, 0xFA15, 0x71C1, 0x71FE, 0x72B1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_MS932_EE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x72BE, 0x7324, 0xFA16, 0x7377, 0x73BD, 0x73C9, 0x73D6, 0x73E3, /* 0x40 */
- 0x73D2, 0x7407, 0x73F5, 0x7426, 0x742A, 0x7429, 0x742E, 0x7462, /* 0x40 */
- 0x7489, 0x749F, 0x7501, 0x756F, 0x7682, 0x769C, 0x769E, 0x769B, /* 0x50 */
- 0x76A6, 0xFA17, 0x7746, 0x52AF, 0x7821, 0x784E, 0x7864, 0x787A, /* 0x50 */
- 0x7930, 0xFA18, 0xFA19, 0xFA1A, 0x7994, 0xFA1B, 0x799B, 0x7AD1, /* 0x60 */
- 0x7AE7, 0xFA1C, 0x7AEB, 0x7B9E, 0xFA1D, 0x7D48, 0x7D5C, 0x7DB7, /* 0x60 */
- 0x7DA0, 0x7DD6, 0x7E52, 0x7F47, 0x7FA1, 0xFA1E, 0x8301, 0x8362, /* 0x70 */
- 0x837F, 0x83C7, 0x83F6, 0x8448, 0x84B4, 0x8553, 0x8559, 0, /* 0x70 */
- 0x856B, 0xFA1F, 0x85B0, 0xFA20, 0xFA21, 0x8807, 0x88F5, 0x8A12, /* 0x80 */
- 0x8A37, 0x8A79, 0x8AA7, 0x8ABE, 0x8ADF, 0xFA22, 0x8AF6, 0x8B53, /* 0x80 */
- 0x8B7F, 0x8CF0, 0x8CF4, 0x8D12, 0x8D76, 0xFA23, 0x8ECF, 0xFA24, /* 0x90 */
- 0xFA25, 0x9067, 0x90DE, 0xFA26, 0x9115, 0x9127, 0x91DA, 0x91D7, /* 0x90 */
- 0x91DE, 0x91ED, 0x91EE, 0x91E4, 0x91E5, 0x9206, 0x9210, 0x920A, /* 0xA0 */
- 0x923A, 0x9240, 0x923C, 0x924E, 0x9259, 0x9251, 0x9239, 0x9267, /* 0xA0 */
- 0x92A7, 0x9277, 0x9278, 0x92E7, 0x92D7, 0x92D9, 0x92D0, 0xFA27, /* 0xB0 */
- 0x92D5, 0x92E0, 0x92D3, 0x9325, 0x9321, 0x92FB, 0xFA28, 0x931E, /* 0xB0 */
- 0x92FF, 0x931D, 0x9302, 0x9370, 0x9357, 0x93A4, 0x93C6, 0x93DE, /* 0xC0 */
- 0x93F8, 0x9431, 0x9445, 0x9448, 0x9592, 0xF9DC, 0xFA29, 0x969D, /* 0xC0 */
- 0x96AF, 0x9733, 0x973B, 0x9743, 0x974D, 0x974F, 0x9751, 0x9755, /* 0xD0 */
- 0x9857, 0x9865, 0xFA2A, 0xFA2B, 0x9927, 0xFA2C, 0x999E, 0x9A4E, /* 0xD0 */
- 0x9AD9, 0x9ADC, 0x9B75, 0x9B72, 0x9B8F, 0x9BB1, 0x9BBB, 0x9C00, /* 0xE0 */
- 0x9D70, 0x9D6B, 0xFA2D, 0x9E19, 0x9ED1, 0, 0, 0x2170, /* 0xE0 */
- 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, /* 0xF0 */
- 0x2179, 0xFFE2, 0xFFE4, 0xFF07, 0xFF02 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_MS932_FA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, /* 0x40 */
- 0x2178, 0x2179, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, /* 0x40 */
- 0x2166, 0x2167, 0x2168, 0x2169, 0xFFE2, 0xFFE4, 0xFF07, 0xFF02, /* 0x50 */
- 0x3231, 0x2116, 0x2121, 0x2235, 0x7E8A, 0x891C, 0x9348, 0x9288, /* 0x50 */
- 0x84DC, 0x4FC9, 0x70BB, 0x6631, 0x68C8, 0x92F9, 0x66FB, 0x5F45, /* 0x60 */
- 0x4E28, 0x4EE1, 0x4EFC, 0x4F00, 0x4F03, 0x4F39, 0x4F56, 0x4F92, /* 0x60 */
- 0x4F8A, 0x4F9A, 0x4F94, 0x4FCD, 0x5040, 0x5022, 0x4FFF, 0x501E, /* 0x70 */
- 0x5046, 0x5070, 0x5042, 0x5094, 0x50F4, 0x50D8, 0x514A, 0, /* 0x70 */
- 0x5164, 0x519D, 0x51BE, 0x51EC, 0x5215, 0x529C, 0x52A6, 0x52C0, /* 0x80 */
- 0x52DB, 0x5300, 0x5307, 0x5324, 0x5372, 0x5393, 0x53B2, 0x53DD, /* 0x80 */
- 0xFA0E, 0x549C, 0x548A, 0x54A9, 0x54FF, 0x5586, 0x5759, 0x5765, /* 0x90 */
- 0x57AC, 0x57C8, 0x57C7, 0xFA0F, 0xFA10, 0x589E, 0x58B2, 0x590B, /* 0x90 */
- 0x5953, 0x595B, 0x595D, 0x5963, 0x59A4, 0x59BA, 0x5B56, 0x5BC0, /* 0xA0 */
- 0x752F, 0x5BD8, 0x5BEC, 0x5C1E, 0x5CA6, 0x5CBA, 0x5CF5, 0x5D27, /* 0xA0 */
- 0x5D53, 0xFA11, 0x5D42, 0x5D6D, 0x5DB8, 0x5DB9, 0x5DD0, 0x5F21, /* 0xB0 */
- 0x5F34, 0x5F67, 0x5FB7, 0x5FDE, 0x605D, 0x6085, 0x608A, 0x60DE, /* 0xB0 */
- 0x60D5, 0x6120, 0x60F2, 0x6111, 0x6137, 0x6130, 0x6198, 0x6213, /* 0xC0 */
- 0x62A6, 0x63F5, 0x6460, 0x649D, 0x64CE, 0x654E, 0x6600, 0x6615, /* 0xC0 */
- 0x663B, 0x6609, 0x662E, 0x661E, 0x6624, 0x6665, 0x6657, 0x6659, /* 0xD0 */
- 0xFA12, 0x6673, 0x6699, 0x66A0, 0x66B2, 0x66BF, 0x66FA, 0x670E, /* 0xD0 */
- 0xF929, 0x6766, 0x67BB, 0x6852, 0x67C0, 0x6801, 0x6844, 0x68CF, /* 0xE0 */
- 0xFA13, 0x6968, 0xFA14, 0x6998, 0x69E2, 0x6A30, 0x6A6B, 0x6A46, /* 0xE0 */
- 0x6A73, 0x6A7E, 0x6AE2, 0x6AE4, 0x6BD6, 0x6C3F, 0x6C5C, 0x6C86, /* 0xF0 */
- 0x6C6F, 0x6CDA, 0x6D04, 0x6D87, 0x6D6F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_MS932_FB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6D96, 0x6DAC, 0x6DCF, 0x6DF8, 0x6DF2, 0x6DFC, 0x6E39, 0x6E5C, /* 0x40 */
- 0x6E27, 0x6E3C, 0x6EBF, 0x6F88, 0x6FB5, 0x6FF5, 0x7005, 0x7007, /* 0x40 */
- 0x7028, 0x7085, 0x70AB, 0x710F, 0x7104, 0x715C, 0x7146, 0x7147, /* 0x50 */
- 0xFA15, 0x71C1, 0x71FE, 0x72B1, 0x72BE, 0x7324, 0xFA16, 0x7377, /* 0x50 */
- 0x73BD, 0x73C9, 0x73D6, 0x73E3, 0x73D2, 0x7407, 0x73F5, 0x7426, /* 0x60 */
- 0x742A, 0x7429, 0x742E, 0x7462, 0x7489, 0x749F, 0x7501, 0x756F, /* 0x60 */
- 0x7682, 0x769C, 0x769E, 0x769B, 0x76A6, 0xFA17, 0x7746, 0x52AF, /* 0x70 */
- 0x7821, 0x784E, 0x7864, 0x787A, 0x7930, 0xFA18, 0xFA19, 0, /* 0x70 */
- 0xFA1A, 0x7994, 0xFA1B, 0x799B, 0x7AD1, 0x7AE7, 0xFA1C, 0x7AEB, /* 0x80 */
- 0x7B9E, 0xFA1D, 0x7D48, 0x7D5C, 0x7DB7, 0x7DA0, 0x7DD6, 0x7E52, /* 0x80 */
- 0x7F47, 0x7FA1, 0xFA1E, 0x8301, 0x8362, 0x837F, 0x83C7, 0x83F6, /* 0x90 */
- 0x8448, 0x84B4, 0x8553, 0x8559, 0x856B, 0xFA1F, 0x85B0, 0xFA20, /* 0x90 */
- 0xFA21, 0x8807, 0x88F5, 0x8A12, 0x8A37, 0x8A79, 0x8AA7, 0x8ABE, /* 0xA0 */
- 0x8ADF, 0xFA22, 0x8AF6, 0x8B53, 0x8B7F, 0x8CF0, 0x8CF4, 0x8D12, /* 0xA0 */
- 0x8D76, 0xFA23, 0x8ECF, 0xFA24, 0xFA25, 0x9067, 0x90DE, 0xFA26, /* 0xB0 */
- 0x9115, 0x9127, 0x91DA, 0x91D7, 0x91DE, 0x91ED, 0x91EE, 0x91E4, /* 0xB0 */
- 0x91E5, 0x9206, 0x9210, 0x920A, 0x923A, 0x9240, 0x923C, 0x924E, /* 0xC0 */
- 0x9259, 0x9251, 0x9239, 0x9267, 0x92A7, 0x9277, 0x9278, 0x92E7, /* 0xC0 */
- 0x92D7, 0x92D9, 0x92D0, 0xFA27, 0x92D5, 0x92E0, 0x92D3, 0x9325, /* 0xD0 */
- 0x9321, 0x92FB, 0xFA28, 0x931E, 0x92FF, 0x931D, 0x9302, 0x9370, /* 0xD0 */
- 0x9357, 0x93A4, 0x93C6, 0x93DE, 0x93F8, 0x9431, 0x9445, 0x9448, /* 0xE0 */
- 0x9592, 0xF9DC, 0xFA29, 0x969D, 0x96AF, 0x9733, 0x973B, 0x9743, /* 0xE0 */
- 0x974D, 0x974F, 0x9751, 0x9755, 0x9857, 0x9865, 0xFA2A, 0xFA2B, /* 0xF0 */
- 0x9927, 0xFA2C, 0x999E, 0x9A4E, 0x9AD9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_MS932_FC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9ADC, 0x9B75, 0x9B72, 0x9B8F, 0x9BB1, 0x9BBB, 0x9C00, 0x9D70, /* 0x40 */
- 0x9D6B, 0xFA2D, 0x9E19, 0x9ED1 /* 0x40 */
-};
-
diff --git a/sal/textenc/tcvtjp2.tab b/sal/textenc/tcvtjp2.tab
deleted file mode 100644
index 733bfc041..000000000
--- a/sal/textenc/tcvtjp2.tab
+++ /dev/null
@@ -1,3964 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the UniCode to DBCS tables for the following */
-/* japanese charsets: SJIS, MS932, APPLE_JAPANESE */
-
-/* ======================================================================= */
-
-/* 0x00A2 --> 0x8191 - APPLE_JAPANESE, but I think, this extension is better than the replacment char */
-/* 0x00A3 --> 0x8192 - APPLE_JAPANESE, but I think, this extension is better than the replacment char */
-/* 0x00A5 --> 0x005C - APPLE_JAPANESE, but I think, this extension is better than the replacment char */
-/* 0x00AC --> 0x81CA - APPLE_JAPANESE/SJIS, but I think, this extension is better than the replacment char */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_00[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, /* 0x00 */
- 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, /* 0x00 */
- 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, /* 0x10 */
- 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, /* 0x10 */
- 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, /* 0x20 */
- 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, /* 0x20 */
- 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* 0x30 */
- 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, /* 0x30 */
- 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* 0x40 */
- 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, /* 0x40 */
- 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, /* 0x50 */
- 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, /* 0x50 */
- 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, /* 0x60 */
- 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, /* 0x60 */
- 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, /* 0x70 */
- 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0x8191, 0x8192, 0, 0x005C, 0, 0x8198, /* 0xA0 */
- 0x814E, 0, 0, 0, 0x81CA, 0, 0, 0, /* 0xA0 */
- 0x818B, 0x817D, 0, 0, 0x814C, 0, 0x81F7, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0x817E, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0x8180 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_APPLEJAPANESE_00[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, /* 0x00 */
- 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, /* 0x00 */
- 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, /* 0x10 */
- 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, /* 0x10 */
- 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, /* 0x20 */
- 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, /* 0x20 */
- 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* 0x30 */
- 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, /* 0x30 */
- 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* 0x40 */
- 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, /* 0x40 */
- 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, /* 0x50 */
- 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, /* 0x50 */
- 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, /* 0x60 */
- 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, /* 0x60 */
- 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, /* 0x70 */
- 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x00A0, 0, 0x8191, 0x8192, 0, 0x005C, 0, 0x8198, /* 0xA0 */
- 0x814E, 0x00FD, 0, 0, 0x81CA, 0, 0, 0, /* 0xA0 */
- 0x818B, 0x817D, 0, 0, 0x814C, 0, 0x81F7, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0x817E, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0x8180 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_03[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x839F, 0x83A0, 0x83A1, 0x83A2, 0x83A3, 0x83A4, 0x83A5, /* 0x90 */
- 0x83A6, 0x83A7, 0x83A8, 0x83A9, 0x83AA, 0x83AB, 0x83AC, 0x83AD, /* 0x90 */
- 0x83AE, 0x83AF, 0, 0x83B0, 0x83B1, 0x83B2, 0x83B3, 0x83B4, /* 0xA0 */
- 0x83B5, 0x83B6, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0x83BF, 0x83C0, 0x83C1, 0x83C2, 0x83C3, 0x83C4, 0x83C5, /* 0xB0 */
- 0x83C6, 0x83C7, 0x83C8, 0x83C9, 0x83CA, 0x83CB, 0x83CC, 0x83CD, /* 0xB0 */
- 0x83CE, 0x83CF, 0, 0x83D0, 0x83D1, 0x83D2, 0x83D3, 0x83D4, /* 0xC0 */
- 0x83D5, 0x83D6 /* 0xC0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_04[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8446, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0x8440, 0x8441, 0x8442, 0x8443, 0x8444, 0x8445, 0x8447, 0x8448, /* 0x10 */
- 0x8449, 0x844A, 0x844B, 0x844C, 0x844D, 0x844E, 0x844F, 0x8450, /* 0x10 */
- 0x8451, 0x8452, 0x8453, 0x8454, 0x8455, 0x8456, 0x8457, 0x8458, /* 0x20 */
- 0x8459, 0x845A, 0x845B, 0x845C, 0x845D, 0x845E, 0x845F, 0x8460, /* 0x20 */
- 0x8470, 0x8471, 0x8472, 0x8473, 0x8474, 0x8475, 0x8477, 0x8478, /* 0x30 */
- 0x8479, 0x847A, 0x847B, 0x847C, 0x847D, 0x847E, 0x8480, 0x8481, /* 0x30 */
- 0x8482, 0x8483, 0x8484, 0x8485, 0x8486, 0x8487, 0x8488, 0x8489, /* 0x40 */
- 0x848A, 0x848B, 0x848C, 0x848D, 0x848E, 0x848F, 0x8490, 0x8491, /* 0x40 */
- 0, 0x8476 /* 0x50 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* 0x2014 --> 0x815C - APPLE_JAPANESE/SJIS, but I think, this extension is better than the replacment char */
-/* 0x2015 --> 0x815C - MS932, but I think, this extension is better than the replacment char */
-/* 0x2016 --> 0x8161 - APPLE_JAPANESE/SJIS, but I think, this extension is better than the replacment char */
-/* 0x2026 --> 0x8163 - APPLE_JAPANESE is normaly 0x00FF (HORIZONTAL ELLIPSIS), because in the APPLE import table 0x8183 is this 0x22EF (MIDLINE HORIZONTAL ELLIPSIS) */
-/* but we import this code as 0x2026 */
-/* 0x203E --> 0x8150 - APPLE_JAPANESE, but I think, this extension is better than the replacment char */
-/* in SJIS this is 0x7E, but we import 0x7E as 0x7E, so this would be the better way */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_20[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x815D, 0, 0, 0, 0x815C, 0x815C, 0x8161, 0, /* 0x10 */
- 0x8165, 0x8166, 0, 0, 0x8167, 0x8168, 0, 0, /* 0x10 */
- 0x81F5, 0x81F6, 0, 0, 0, 0x8164, 0x8163, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0x81F1, 0, 0x818C, 0x818D, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0x81A6, 0, 0, 0x8150 /* 0x30 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* In this table we have some MS932 extensions, but we use this table also for SJIS, for better MS compatibility */
-
-static sal_uInt16 const aImplUniToDBCSTab_MS932_21[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x818E, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0x8782, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0x8784, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0x81F0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0x8754, 0x8755, 0x8756, 0x8757, 0x8758, 0x8759, 0x875A, 0x875B, /* 0x60 */
- 0x875C, 0x875D, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0xFA40, 0xFA41, 0xFA42, 0xFa43, 0xFA44, 0xFA45, 0xFA46, 0xFA47, /* 0x70 */
- 0xFA48, 0xFA49, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0x81A9, 0x81AA, 0x81A8, 0x81AB, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0x81CB, 0, 0x81CC /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_APPLEJAPANESE_21[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x818E, 0, 0, 0, 0, /* 0x00 */
- 0, 0x8656, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0x8650, 0, 0, 0x869B, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0x869D, 0x00FE, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0x81F0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0x859F, 0x85A0, 0x85A1, 0x85A2, 0x85A3, 0x85A4, 0x85A5, 0x85A6, /* 0x60 */
- 0x85A7, 0x85A8, 0x85A9, 0x85AA, 0, 0, 0, 0, /* 0x60 */
- 0x85B3, 0x85B4, 0x85B5, 0x85B6, 0x85B7, 0x85B8, 0x85B9, 0x85BA, /* 0x70 */
- 0x85BB, 0x85BC, 0x85BD, 0x85BE, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0x81A9, 0x81AA, 0x81A8, 0x81AB, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x86CC, 0x86CD, 0x86CB, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0x81CB, 0, 0x81CC, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0x86D0, 0x86D1, /* 0xE0 */
- 0x86CF, 0x86D2 /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* In this table we have some MS932 extensions, but we use this table also for SJIS, for better MS compatibility */
-/* 0x2210 --> 0x817C - come from SJIS */
-
-static sal_uInt16 const aImplUniToDBCSTab_MS932_22[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x81CD, 0, 0x81DD, 0x81CE, 0, 0, 0, 0x81DE, /* 0x00 */
- 0x81B8, 0, 0, 0x81B9, 0, 0, 0, 0, /* 0x00 */
- 0, 0x8794, 0x817C, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x81E3, 0, 0, 0x81E5, 0x8187, 0x8798, /* 0x10 */
- 0x81DA, 0, 0, 0, 0, 0x8161, 0, 0x81C8, /* 0x20 */
- 0x81C9, 0x81BF, 0x81BE, 0x81E7, 0x81E8, 0, 0x8793, 0, /* 0x20 */
- 0, 0, 0, 0, 0x8188, 0x81E6, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0x81E4, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x81E0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0x8182, 0x81DF, 0, 0, 0, 0, 0x8185, 0x8186, /* 0x60 */
- 0, 0, 0x81E1, 0x81E2, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0x81BC, 0x81BD, 0, 0, 0x81BA, 0x81BB, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0x81DB, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0x8799 /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_APPLEJAPANESE_22[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x81CD, 0, 0x81DD, 0x81CE, 0, 0, 0, 0x81DE, /* 0x00 */
- 0x81B8, 0, 0, 0x81B9, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0x817C, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x81E3, 0, 0, 0x81E5, 0x8187, 0x8841, /* 0x10 */
- 0x81DA, 0, 0, 0, 0, 0, 0, 0x81C8, /* 0x20 */
- 0x81C9, 0x81BF, 0x81BE, 0x81E7, 0x81E8, 0, 0x8840, 0, /* 0x20 */
- 0, 0, 0, 0, 0x8188, 0x81E6, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0x81E4, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x81E0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0x8182, 0x81DF, 0, 0, 0, 0, 0x8185, 0x8186, /* 0x60 */
- 0, 0, 0x81E1, 0x81E2, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0x81BC, 0x81BD, 0, 0, 0x81BA, 0x81BB, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0x81DB, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0x8842, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0x8163 /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_23[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x81DC /* 0x10 */
- /* 0x10 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_MS932_24[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8740, 0x8741, 0x8742, 0x8743, 0x8744, 0x8745, 0x8746, 0x8747, /* 0x60 */
- 0x8748, 0x8749, 0x874A, 0x874B, 0x874C, 0x874D, 0x874E, 0x874F, /* 0x60 */
- 0x8750, 0x8751, 0x8752, 0x8753 /* 0x70 */
- /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_APPLEJAPANESE_24[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8540, 0x8541, 0x8542, 0x8543, 0x8544, 0x8545, 0x8546, 0x8547, /* 0x60 */
- 0x8548, 0x8549, 0x854A, 0x854B, 0x854C, 0x854D, 0x854E, 0x854F, /* 0x60 */
- 0x8550, 0x8551, 0x8552, 0x8553, 0x855E, 0x855F, 0x8560, 0x8561, /* 0x70 */
- 0x8562, 0x8563, 0x8564, 0x8565, 0x8566, 0x8567, 0x8568, 0x8569, /* 0x70 */
- 0x856A, 0x856B, 0x856C, 0x856D, 0x856E, 0x856F, 0x8570, 0x8571, /* 0x80 */
- 0x8592, 0x8593, 0x8594, 0x8595, 0x8596, 0x8597, 0x8598, 0x8599, /* 0x80 */
- 0x859A, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0x85DB, 0x85DC, 0x85DD, 0x85DE, /* 0x90 */
- 0x85DF, 0x85E0, 0x85E1, 0x85E2, 0x85E3, 0x85E4, 0x85E5, 0x85E6, /* 0xA0 */
- 0x85E7, 0x85E8, 0x85E9, 0x85EA, 0x85EB, 0x85EC, 0x85ED, 0x85EE, /* 0xA0 */
- 0x85EF, 0x85F0, 0x85F1, 0x85F2, 0x85F3, 0x85F4 /* 0xB0 */
- /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_25[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x849F, 0x84AA, 0x84A0, 0x84AB, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0x84A1, 0, 0, 0x84AC, /* 0x00 */
- 0x84A2, 0, 0, 0x84AD, 0x84A4, 0, 0, 0x84AF, /* 0x10 */
- 0x84A3, 0, 0, 0x84AE, 0x84A5, 0x84BA, 0, 0, /* 0x10 */
- 0x84B5, 0, 0, 0x84B0, 0x84A7, 0x84BC, 0, 0, /* 0x20 */
- 0x84B7, 0, 0, 0x84B2, 0x84A6, 0, 0, 0x84B6, /* 0x20 */
- 0x84BB, 0, 0, 0x84B1, 0x84A8, 0, 0, 0x84B8, /* 0x30 */
- 0x84BD, 0, 0, 0x84B3, 0x84A9, 0, 0, 0x84B9, /* 0x30 */
- 0, 0, 0x84BE, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0x84B4, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x81A1, 0x81A0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x81A3, 0x81A2, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x81A5, 0x81A4, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0x819F, 0x819E, /* 0xC0 */
- 0, 0, 0, 0x819B, 0, 0, 0x819D, 0x819C, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0x81FC /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_26[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x819A, 0x8199, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0x818A, 0, 0x8189, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0x81F4, 0, 0, 0x81F3, 0, 0x81F2 /* 0x60 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_APPLEJAPANESE_26[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x819A, 0x8199, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0x86B4, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0x86C8, 0x86C9, 0x86C7, 0x86CA, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0x818A, 0, 0x8189, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0x86A3, 0x86A1, 0x86A2, 0x86A4, 0x869F, 0x86A5, 0x86A6, 0x86A0, /* 0x60 */
- 0, 0, 0x81F4, 0, 0, 0x81F3, 0, 0x81F2 /* 0x60 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_APPLEJAPANESE_27[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x857C, 0x857D, /* 0x70 */
- 0x857E, 0x8580, 0x8581, 0x8582, 0x8583, 0x8584, 0x8585 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* 0x3014 --> 0x8160 - come from SJIS */
-/* 0x301D --> 0x8780 - MS932, but I think, this extension is better than the replacment char */
-/* 0x301F --> 0x8781 - MS932, but I think, this extension is better than the replacment char */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_30[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8140, 0x8141, 0x8142, 0x8156, 0, 0x8158, 0x8159, 0x815A, /* 0x00 */
- 0x8171, 0x8172, 0x8173, 0x8174, 0x8175, 0x8176, 0x8177, 0x8178, /* 0x00 */
- 0x8179, 0x817A, 0x81A7, 0x81AC, 0x816B, 0x816C, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0x8160, 0x8780, 0, 0x8781, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x829F, 0x82A0, 0x82A1, 0x82A2, 0x82A3, 0x82A4, 0x82A5, /* 0x40 */
- 0x82A6, 0x82A7, 0x82A8, 0x82A9, 0x82AA, 0x82AB, 0x82AC, 0x82AD, /* 0x40 */
- 0x82AE, 0x82AF, 0x82B0, 0x82B1, 0x82B2, 0x82B3, 0x82B4, 0x82B5, /* 0x50 */
- 0x82B6, 0x82B7, 0x82B8, 0x82B9, 0x82BA, 0x82BB, 0x82BC, 0x82BD, /* 0x50 */
- 0x82BE, 0x82BF, 0x82C0, 0x82C1, 0x82C2, 0x82C3, 0x82C4, 0x82C5, /* 0x60 */
- 0x82C6, 0x82C7, 0x82C8, 0x82C9, 0x82CA, 0x82CB, 0x82CC, 0x82CD, /* 0x60 */
- 0x82CE, 0x82CF, 0x82D0, 0x82D1, 0x82D2, 0x82D3, 0x82D4, 0x82D5, /* 0x70 */
- 0x82D6, 0x82D7, 0x82D8, 0x82D9, 0x82DA, 0x82DB, 0x82DC, 0x82DD, /* 0x70 */
- 0x82DE, 0x82DF, 0x82E0, 0x82E1, 0x82E2, 0x82E3, 0x82E4, 0x82E5, /* 0x80 */
- 0x82E6, 0x82E7, 0x82E8, 0x82E9, 0x82EA, 0x82EB, 0x82EC, 0x82ED, /* 0x80 */
- 0x82EE, 0x82EF, 0x82F0, 0x82F1, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0x814A, 0x814B, 0x8154, 0x8155, 0, /* 0x90 */
- 0, 0x8340, 0x8341, 0x8342, 0x8343, 0x8344, 0x8345, 0x8346, /* 0xA0 */
- 0x8347, 0x8348, 0x8349, 0x834A, 0x834B, 0x834C, 0x834D, 0x834E, /* 0xA0 */
- 0x834F, 0x8350, 0x8351, 0x8352, 0x8353, 0x8354, 0x8355, 0x8356, /* 0xB0 */
- 0x8357, 0x8358, 0x8359, 0x835A, 0x835B, 0x835C, 0x835D, 0x835E, /* 0xB0 */
- 0x835F, 0x8360, 0x8361, 0x8362, 0x8363, 0x8364, 0x8365, 0x8366, /* 0xC0 */
- 0x8367, 0x8368, 0x8369, 0x836A, 0x836B, 0x836C, 0x836D, 0x836E, /* 0xC0 */
- 0x836F, 0x8370, 0x8371, 0x8372, 0x8373, 0x8374, 0x8375, 0x8376, /* 0xD0 */
- 0x8377, 0x8378, 0x8379, 0x837A, 0x837B, 0x837C, 0x837D, 0x837E, /* 0xD0 */
- 0x8380, 0x8381, 0x8382, 0x8383, 0x8384, 0x8385, 0x8386, 0x8387, /* 0xE0 */
- 0x8388, 0x8389, 0x838A, 0x838B, 0x838C, 0x838D, 0x838E, 0x838F, /* 0xE0 */
- 0x8390, 0x8391, 0x8392, 0x8393, 0x8394, 0x8395, 0x8396, 0, /* 0xF0 */
- 0, 0, 0, 0x8145, 0x815B, 0x8152, 0x8153 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_APPLEJAPANESE_30[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8140, 0x8141, 0x8142, 0x8156, 0x86B5, 0x8158, 0x8159, 0x815A, /* 0x00 */
- 0x8171, 0x8172, 0x8173, 0x8174, 0x8175, 0x8176, 0x8177, 0x8178, /* 0x00 */
- 0x8179, 0x817A, 0x81A7, 0x81AC, 0x816B, 0x816C, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0x8160, 0x8854, 0, 0x8855, /* 0x10 */
- 0x86B3, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x829F, 0x82A0, 0x82A1, 0x82A2, 0x82A3, 0x82A4, 0x82A5, /* 0x40 */
- 0x82A6, 0x82A7, 0x82A8, 0x82A9, 0x82AA, 0x82AB, 0x82AC, 0x82AD, /* 0x40 */
- 0x82AE, 0x82AF, 0x82B0, 0x82B1, 0x82B2, 0x82B3, 0x82B4, 0x82B5, /* 0x50 */
- 0x82B6, 0x82B7, 0x82B8, 0x82B9, 0x82BA, 0x82BB, 0x82BC, 0x82BD, /* 0x50 */
- 0x82BE, 0x82BF, 0x82C0, 0x82C1, 0x82C2, 0x82C3, 0x82C4, 0x82C5, /* 0x60 */
- 0x82C6, 0x82C7, 0x82C8, 0x82C9, 0x82CA, 0x82CB, 0x82CC, 0x82CD, /* 0x60 */
- 0x82CE, 0x82CF, 0x82D0, 0x82D1, 0x82D2, 0x82D3, 0x82D4, 0x82D5, /* 0x70 */
- 0x82D6, 0x82D7, 0x82D8, 0x82D9, 0x82DA, 0x82DB, 0x82DC, 0x82DD, /* 0x70 */
- 0x82DE, 0x82DF, 0x82E0, 0x82E1, 0x82E2, 0x82E3, 0x82E4, 0x82E5, /* 0x80 */
- 0x82E6, 0x82E7, 0x82E8, 0x82E9, 0x82EA, 0x82EB, 0x82EC, 0x82ED, /* 0x80 */
- 0x82EE, 0x82EF, 0x82F0, 0x82F1, 0x8868, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0x814A, 0x814B, 0x8154, 0x8155, 0, /* 0x90 */
- 0, 0x8340, 0x8341, 0x8342, 0x8343, 0x8344, 0x8345, 0x8346, /* 0xA0 */
- 0x8347, 0x8348, 0x8349, 0x834A, 0x834B, 0x834C, 0x834D, 0x834E, /* 0xA0 */
- 0x834F, 0x8350, 0x8351, 0x8352, 0x8353, 0x8354, 0x8355, 0x8356, /* 0xB0 */
- 0x8357, 0x8358, 0x8359, 0x835A, 0x835B, 0x835C, 0x835D, 0x835E, /* 0xB0 */
- 0x835F, 0x8360, 0x8361, 0x8362, 0x8363, 0x8364, 0x8365, 0x8366, /* 0xC0 */
- 0x8367, 0x8368, 0x8369, 0x836A, 0x836B, 0x836C, 0x836D, 0x836E, /* 0xC0 */
- 0x836F, 0x8370, 0x8371, 0x8372, 0x8373, 0x8374, 0x8375, 0x8376, /* 0xD0 */
- 0x8377, 0x8378, 0x8379, 0x837A, 0x837B, 0x837C, 0x837D, 0x837E, /* 0xD0 */
- 0x8380, 0x8381, 0x8382, 0x8383, 0x8384, 0x8385, 0x8386, 0x8387, /* 0xE0 */
- 0x8388, 0x8389, 0x838A, 0x838B, 0x838C, 0x838D, 0x838E, 0x838F, /* 0xE0 */
- 0x8390, 0x8391, 0x8392, 0x8393, 0x8394, 0x8395, 0x8396, 0x886A, /* 0xF0 */
- 0x886B, 0x886C, 0x886D, 0x8145, 0x815B, 0x8152, 0x8153 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_MS932_32[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x878A, 0x878B, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x878C, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0x8785, 0x8786, 0x8787, 0x8788, /* 0xA0 */
- 0x8789 /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_APPLEJAPANESE_32[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x20 */
- 0x8741, 0x8742, 0x8743, 0x8744, 0x8745, 0x8746, /* 0x20 */
- 0x8740, 0x874D, 0x8750, 0x8753, 0x874F, 0x8754, 0x8752, 0x8748, /* 0x30 */
- 0x8758, 0x874B, 0x874C, 0x8751, 0x8755, 0x8756, 0x874E, 0x8757, /* 0x30 */
- 0x8747, 0, 0x8749, 0x874A, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0x8799, 0, /* 0x90 */
- 0x879B, 0x879E, 0, 0, 0, 0x879A, 0x879C, 0, /* 0x90 */
- 0, 0, 0, 0, 0x8793, 0x8794, 0x8795, 0x8796, /* 0xA0 */
- 0x8797, 0x8798 /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_MS932_33[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8765, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0x8769, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0x8760, 0, 0, 0, /* 0x10 */
- 0x8763, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x8761, 0x876B, 0, 0, 0x876A, 0x8764, /* 0x20 */
- 0, 0, 0, 0x876C, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0x8766, 0, /* 0x30 */
- 0, 0, 0, 0x876E, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0x875F, 0x876D, 0, 0, 0x8762, 0, 0, /* 0x40 */
- 0, 0x8767, 0, 0, 0, 0, 0, 0x8768, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0x877E, 0x878F, 0x878E, 0x878D, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0x8772, 0x8773, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0x876F, 0x8770, 0x8771, 0, /* 0x90 */
- 0, 0x8775, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x8774, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0x8783 /* 0xC0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_APPLEJAPANESE_33[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x87BD, 0, 0, 0x87A7, 0, 0x87A4, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0x87B0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0x87A2, 0x87AA, 0x87A3, 0, /* 0x10 */
- 0x87A9, 0, 0, 0, 0, 0, 0x87BE, 0, /* 0x10 */
- 0, 0, 0x87A0, 0x87B2, 0, 0, 0x87B3, 0x87AB, /* 0x20 */
- 0, 0, 0x87BF, 0x87B5, 0, 0, 0, 0, /* 0x20 */
- 0, 0x87C0, 0, 0x87A5, 0, 0, 0x87A8, 0, /* 0x30 */
- 0, 0x87AE, 0, 0x87B4, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0x87B1, 0, 0, 0, 0, 0x87C1, /* 0x40 */
- 0, 0x879F, 0x87AD, 0, 0, 0x87A1, 0x87A6, 0, /* 0x40 */
- 0, 0x87AC, 0, 0, 0, 0, 0, 0x87AF, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0x87E8, 0x87E7, 0x87E6, 0x87E5, 0x87FA, /* 0x70 */
- 0, 0, 0, 0, 0, 0x865A, 0x865B, 0x865C, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0x864A, 0x864C, /* 0x80 */
- 0x8659, 0, 0, 0, 0, 0, 0x864E, 0x864F, /* 0x90 */
- 0x8651, 0, 0, 0, 0x8640, 0x8642, 0x8648, 0x8641, /* 0x90 */
- 0x8643, 0x8646, 0x8649, 0, 0x8644, 0x8647, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x8655, 0x8654, 0x8653, 0x8652, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x864D, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0x8658, 0, 0x869C, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0x8657 /* 0xD0 */
- /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* Table _4E to _9F includes the 360 IBM Kanji's we export to all */
-/* formats (SJIS/APPLE_JAPANESE) for better compatibility. These */
-/* characters are also imported from us in all formats. So this */
-/* extension should give better results than the export to the */
-/* replacement character. */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_4E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x88EA, 0x929A, 0, 0x8EB5, 0, 0, 0, 0x969C, /* 0x00 */
- 0x8FE4, 0x8E4F, 0x8FE3, 0x89BA, 0, 0x9573, 0x975E, 0, /* 0x00 */
- 0x98A0, 0x894E, 0, 0, 0x8A8E, 0x98A1, 0x90A2, 0x99C0, /* 0x10 */
- 0x8B75, 0x95B8, 0, 0, 0, 0, 0x8FE5, 0, /* 0x10 */
- 0, 0x97BC, 0, 0, 0, 0, 0x95C0, 0, /* 0x20 */
- 0xFA68, 0, 0x98A2, 0, 0, 0x9286, 0, 0, /* 0x20 */
- 0, 0x98A3, 0x8BF8, 0, 0, 0, 0x98A4, 0, /* 0x30 */
- 0x8ADB, 0x924F, 0, 0x8EE5, 0x98A5, 0, 0, 0x98A6, /* 0x30 */
- 0, 0, 0x98A7, 0x9454, 0, 0x8B76, 0, 0, /* 0x40 */
- 0, 0, 0, 0x9456, 0, 0x93E1, 0x8CC1, 0x9652, /* 0x40 */
- 0, 0, 0, 0, 0, 0xE568, 0x98A8, 0x8FE6, /* 0x50 */
- 0x98A9, 0x89B3, 0, 0, 0, 0x8BE3, 0x8CEE, 0x96E7, /* 0x50 */
- 0, 0, 0x9BA4, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0x9790, 0, 0x93FB, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x8AA3, 0, /* 0x70 */
- 0x8B54, 0, 0x98AA, 0, 0, 0x98AB, 0x97B9, 0, /* 0x80 */
- 0x975C, 0x9188, 0x98AD, 0x8E96, 0x93F1, 0, 0x98B0, 0, /* 0x80 */
- 0, 0x895D, 0x8CDD, 0, 0x8CDC, 0x88E4, 0, 0, /* 0x90 */
- 0x986A, 0x9869, 0, 0x8DB1, 0x889F, 0, 0x98B1, 0x98B2, /* 0x90 */
- 0x98B3, 0x9653, 0x98B4, 0, 0x8CF0, 0x88E5, 0x9692, 0, /* 0xA0 */
- 0x8B9C, 0, 0, 0x8B9D, 0x8B9E, 0x92E0, 0x97BA, 0, /* 0xA0 */
- 0x98B5, 0, 0, 0x98B6, 0, 0, 0x98B7, 0, /* 0xB0 */
- 0, 0, 0x906C, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x8F59, 0x906D, 0x98BC, 0, 0x98BA, 0, 0x98BB, 0x8B77, /* 0xC0 */
- 0, 0, 0x8DA1, 0x89EE, 0, 0x98B9, 0x98B8, 0x95A7, /* 0xC0 */
- 0, 0, 0, 0, 0x8E65, 0x8E64, 0x91BC, 0x98BD, /* 0xD0 */
- 0x9574, 0x90E5, 0, 0, 0, 0x8157, 0x98BE, 0x98C0, /* 0xD0 */
- 0, 0xFA69, 0, 0x91E3, 0x97DF, 0x88C8, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0x98BF, 0x89BC, 0, /* 0xE0 */
- 0x8BC2, 0, 0x9287, 0, 0, 0, 0x8C8F, 0x98C1, /* 0xF0 */
- 0, 0, 0, 0x9443, 0xFA6A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_4F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFA6B, 0x8AE9, 0, 0xFA6C, 0, 0, 0, 0, /* 0x00 */
- 0, 0x98C2, 0x88C9, 0, 0, 0x8CDE, 0x8AEA, 0x959A, /* 0x00 */
- 0x94B0, 0x8B78, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x89EF, 0, 0x98E5, 0x9360, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0x948C, /* 0x20 */
- 0x98C4, 0, 0, 0, 0x94BA, 0, 0x97E0, 0, /* 0x30 */
- 0x904C, 0xFA6D, 0x8E66, 0, 0x8E97, 0x89BE, 0, 0, /* 0x30 */
- 0, 0, 0, 0x92CF, 0, 0, 0x9241, 0x98C8, /* 0x40 */
- 0, 0, 0, 0, 0, 0x88CA, 0x92E1, 0x8F5A, /* 0x40 */
- 0x8DB2, 0x9743, 0, 0x91CC, 0, 0x89BD, 0xFA6E, 0x98C7, /* 0x50 */
- 0, 0x975D, 0x98C3, 0x98C5, 0x8DEC, 0x98C6, 0x9B43, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0x98CE, 0, 0, 0, 0, 0, 0x98D1, /* 0x60 */
- 0x98CF, 0, 0, 0x89C0, 0, 0x95B9, 0x98C9, 0, /* 0x70 */
- 0, 0, 0, 0x98CD, 0x8CF1, 0, 0, 0x8E67, /* 0x70 */
- 0, 0, 0, 0x8AA4, 0, 0, 0x98D2, 0, /* 0x80 */
- 0x98CA, 0, 0xFA70, 0x97E1, 0, 0x8E98, 0, 0x98CB, /* 0x80 */
- 0, 0x98D0, 0xFA71, 0, 0xFA72, 0, 0x98D3, 0, /* 0x90 */
- 0x98CC, 0, 0xFA6F, 0x8B9F, 0, 0x88CB, 0, 0, /* 0x90 */
- 0x8BA0, 0x89BF, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x9B44, 0, 0x9699, 0x958E, 0x8CF2, /* 0xA0 */
- 0, 0, 0, 0, 0, 0x904E, 0x97B5, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0x95D6, /* 0xB0 */
- 0, 0, 0x8C57, 0x91A3, 0x89E2, 0, 0, 0, /* 0xC0 */
- 0, 0xFA61, 0x8F72, 0, 0, 0xFA73, 0x98D7, 0, /* 0xC0 */
- 0x98DC, 0x98DA, 0, 0, 0x98D5, 0, 0, 0x91AD, /* 0xD0 */
- 0x98D8, 0, 0x98DB, 0x98D9, 0, 0x95DB, 0, 0x98D6, /* 0xD0 */
- 0, 0x904D, 0, 0x9693, 0x98DD, 0x98DE, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0x8F43, 0x98EB, /* 0xE0 */
- 0, 0, 0, 0x946F, 0, 0x9555, 0x98E6, 0, /* 0xF0 */
- 0x95EE, 0, 0x89B4, 0, 0, 0, 0x98EA, 0xFA76 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_50[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x98E4, 0x98ED, 0, /* 0x00 */
- 0, 0x9171, 0, 0x8CC2, 0, 0x947B, 0, 0xE0C5, /* 0x00 */
- 0, 0x98EC, 0x937C, 0, 0x98E1, 0, 0x8CF4, 0, /* 0x10 */
- 0, 0x8CF3, 0x98DF, 0, 0, 0, 0xFA77, 0x8ED8, /* 0x10 */
- 0, 0x98E7, 0xFA75, 0x95ED, 0x926C, 0x98E3, 0x8C91, 0, /* 0x20 */
- 0x98E0, 0x98E8, 0x98E2, 0x97CF, 0x98E9, 0x9860, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0x8BE4, 0, /* 0x30 */
- 0, 0x8C90, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xFA74, 0, 0xFA7A, 0x98EE, 0, 0, 0xFA78, 0x98EF, /* 0x40 */
- 0x98F3, 0x88CC, 0, 0, 0, 0, 0, 0x95CE, /* 0x40 */
- 0x98F2, 0, 0, 0, 0, 0x98F1, 0x98F5, 0, /* 0x50 */
- 0, 0, 0x98F4, 0, 0x92E2, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0x8C92, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0x98F6, 0, 0, 0, /* 0x60 */
- 0xFA79, 0, 0x8EC3, 0, 0x91A4, 0x92E3, 0x8BF4, 0, /* 0x70 */
- 0x98F7, 0, 0, 0, 0, 0x8B55, 0, 0, /* 0x70 */
- 0x98F8, 0, 0, 0, 0, 0x98FA, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0x9654, 0, 0, /* 0x80 */
- 0, 0x8C86, 0, 0, 0xFA7B, 0, 0, 0, /* 0x90 */
- 0x8E50, 0x94F5, 0x98F9, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x8DC3, 0x9762, 0, 0, /* 0xA0 */
- 0, 0, 0x98FC, 0x9942, 0x98FB, 0x8DC2, 0, 0x8F9D, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0x8C58, 0, /* 0xB0 */
- 0, 0, 0x9943, 0, 0, 0x8BCD, 0, 0, /* 0xC0 */
- 0, 0x9940, 0x9941, 0, 0, 0x93AD, 0, 0x919C, /* 0xC0 */
- 0, 0x8BA1, 0, 0, 0, 0x966C, 0x9944, 0, /* 0xD0 */
- 0xFA7D, 0, 0x97BB, 0, 0, 0, 0x9945, 0, /* 0xD0 */
- 0, 0, 0, 0x9948, 0, 0x9946, 0, 0x916D, /* 0xE0 */
- 0, 0, 0, 0, 0, 0x9947, 0x9949, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xFA7C, 0x994B, 0, 0, /* 0xF0 */
- 0, 0x994A, 0, 0x95C6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_51[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8B56, 0x994D, 0x994E, 0, 0x89AD, 0, 0, 0, /* 0x00 */
- 0, 0x994C, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0x8EF2, 0, 0x9951, 0x9950, 0x994F, 0, /* 0x10 */
- 0x98D4, 0, 0x9952, 0, 0, 0, 0, 0x8F9E, /* 0x10 */
- 0, 0x9953, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x9744, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x96D7, 0, 0, 0, 0, 0x9955, /* 0x30 */
- 0, 0, 0x9954, 0x9957, 0x9956, 0, 0, 0x9958, /* 0x30 */
- 0x9959, 0x88F2, 0, 0x8CB3, 0x8C5A, 0x8F5B, 0x929B, 0x8BA2, /* 0x40 */
- 0x90E6, 0x8CF5, 0xFA7E, 0x8D8E, 0x995B, 0x96C6, 0x9365, 0, /* 0x40 */
- 0x8E99, 0, 0x995A, 0, 0x995C, 0, 0, 0, /* 0x50 */
- 0, 0, 0x937D, 0, 0x8A95, 0, 0, 0, /* 0x50 */
- 0, 0, 0x995D, 0, 0xFA80, 0x93FC, 0, 0, /* 0x60 */
- 0x9153, 0x995F, 0x9960, 0x94AA, 0x8CF6, 0x985A, 0x9961, 0, /* 0x60 */
- 0, 0x8BA4, 0, 0, 0, 0x95BA, 0x91B4, 0x8BEF, /* 0x70 */
- 0x9354, 0, 0, 0, 0x8C93, 0, 0, 0, /* 0x70 */
- 0x9962, 0, 0x9963, 0, 0, 0x93E0, 0x897E, 0, /* 0x80 */
- 0, 0x9966, 0x8DFB, 0, 0x9965, 0x8DC4, 0, 0x9967, /* 0x80 */
- 0xE3EC, 0x9968, 0x9660, 0x9969, 0, 0x996A, 0x996B, 0x8FE7, /* 0x90 */
- 0, 0x8ECA, 0, 0, 0, 0xFA81, 0, 0, /* 0x90 */
- 0x8AA5, 0, 0x996E, 0, 0x996C, 0x96BB, 0x996D, 0, /* 0xA0 */
- 0x9579, 0x996F, 0x9970, 0x9971, 0x937E, 0, 0, 0, /* 0xA0 */
- 0x9975, 0x9973, 0x9974, 0x9972, 0x8DE1, 0x9976, 0x96E8, 0x97E2, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x9977, 0xFA82, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x90A6, 0x9978, 0x8F79, 0, /* 0xC0 */
- 0, 0x9979, 0, 0x929C, 0x97BD, 0x9380, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0x99C3, 0, /* 0xD0 */
- 0, 0, 0, 0x997A, 0xEAA3, 0x8BC3, 0, 0, /* 0xD0 */
- 0x997B, 0x967D, 0, 0, 0, 0, 0x8F88, 0x91FA, /* 0xE0 */
- 0, 0x997D, 0x93E2, 0, 0xFA83, 0x997E, 0, 0, /* 0xE0 */
- 0x9980, 0x8A4D, 0, 0, 0, 0x9981, 0x8BA5, 0, /* 0xF0 */
- 0x93CA, 0x899A, 0x8F6F, 0, 0, 0x949F, 0x9982 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_52[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9381, 0, 0, 0x906E, 0x9983, 0, 0x95AA, 0x90D8, /* 0x00 */
- 0x8AA0, 0, 0x8AA7, 0x9984, 0, 0, 0x9986, 0, /* 0x00 */
- 0, 0x8C59, 0, 0, 0x9985, 0xFA84, 0, 0x97F1, /* 0x10 */
- 0, 0, 0, 0, 0, 0x8F89, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0x94BB, 0x95CA, 0, 0x9987, /* 0x20 */
- 0, 0x9798, 0x9988, 0, 0, 0, 0x9989, 0, /* 0x20 */
- 0x939E, 0, 0, 0x998A, 0, 0, 0x90A7, 0x8DFC, /* 0x30 */
- 0x8C94, 0x998B, 0x8E68, 0x8D8F, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0x92E4, 0x998D, 0, 0, 0x91A5, /* 0x40 */
- 0, 0, 0x8DED, 0x998E, 0x998F, 0x914F, 0, 0x998C, /* 0x40 */
- 0, 0, 0, 0, 0x9991, 0, 0x9655, 0, /* 0x50 */
- 0, 0, 0, 0x8D84, 0, 0, 0x9990, 0, /* 0x50 */
- 0, 0, 0, 0x8C95, 0x8DDC, 0x948D, 0, 0, /* 0x60 */
- 0, 0x9994, 0x9992, 0, 0, 0, 0, 0x959B, /* 0x60 */
- 0x8FE8, 0x999B, 0x8A84, 0x9995, 0x9993, 0x916E, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0x9997, 0, 0x9996, /* 0x70 */
- 0, 0, 0, 0x8A63, 0, 0, 0, 0x8C80, /* 0x80 */
- 0x999C, 0x97AB, 0, 0, 0, 0x9998, 0, 0, /* 0x80 */
- 0, 0x999D, 0x999A, 0, 0x9999, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0x97CD, 0xFA85, 0, 0, 0x8CF7, /* 0x90 */
- 0x89C1, 0, 0, 0x97F2, 0, 0, 0xFA86, 0, /* 0xA0 */
- 0, 0x8F95, 0x9377, 0x8D85, 0x99A0, 0x99A1, 0, 0xFB77, /* 0xA0 */
- 0, 0x97E3, 0, 0, 0x984A, 0x99A3, 0, 0, /* 0xB0 */
- 0, 0x8CF8, 0, 0, 0x99A2, 0, 0x8A4E, 0, /* 0xB0 */
- 0xFA87, 0x99A4, 0, 0x9675, 0, 0x92BA, 0, 0x9745, /* 0xC0 */
- 0, 0x95D7, 0, 0, 0, 0x99A5, 0, 0, /* 0xC0 */
- 0, 0, 0xE8D3, 0, 0, 0x93AE, 0, 0x99A6, /* 0xD0 */
- 0x8AA8, 0x96B1, 0, 0xFA88, 0, 0x8F9F, 0x99A7, 0x95E5, /* 0xD0 */
- 0x99AB, 0, 0x90A8, 0x99A8, 0x8BCE, 0, 0x99A9, 0x8AA9, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0x8C4D, 0x99AC, 0, 0x99AD, 0, 0, /* 0xF0 */
- 0x99AE, 0x99AF, 0x8ED9, 0, 0, 0, 0x8CF9, 0x96DC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_53[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFA89, 0x96E6, 0x93F5, 0, 0, 0x95EF, 0x99B0, 0xFA8A, /* 0x00 */
- 0x99B1, 0, 0, 0, 0, 0x99B3, 0, 0x99B5, /* 0x00 */
- 0x99B4, 0, 0, 0, 0, 0x99B6, 0x89BB, 0x966B, /* 0x10 */
- 0, 0x8DFA, 0x99B7, 0, 0, 0x9178, 0, 0, /* 0x10 */
- 0x8FA0, 0x8BA7, 0, 0x99B8, 0xFA8B, 0, 0, 0, /* 0x20 */
- 0, 0, 0x94D9, 0, 0, 0, 0, 0x99B9, /* 0x20 */
- 0, 0x99BA, 0, 0x99BB, 0, 0, 0, 0, /* 0x30 */
- 0x99BC, 0x9543, 0x8BE6, 0x88E3, 0, 0, 0, 0x93BD, /* 0x30 */
- 0x99BD, 0x8F5C, 0, 0x90E7, 0, 0x99BF, 0x99BE, 0x8FA1, /* 0x40 */
- 0x8CDF, 0x99C1, 0x94BC, 0, 0, 0x99C2, 0, 0, /* 0x40 */
- 0, 0x94DA, 0x91B2, 0x91EC, 0x8BA6, 0, 0, 0x93EC, /* 0x50 */
- 0x9250, 0, 0x948E, 0, 0x966D, 0, 0x99C4, 0, /* 0x50 */
- 0x90E8, 0, 0, 0, 0, 0, 0x8C54, 0, /* 0x60 */
- 0, 0x99C5, 0, 0, 0, 0, 0x99C6, 0x894B, /* 0x60 */
- 0x88F3, 0x8AEB, 0xFA8C, 0x91A6, 0x8B70, 0x9791, 0, 0x99C9, /* 0x70 */
- 0x89B5, 0, 0, 0x99C8, 0, 0, 0, 0x8BA8, /* 0x70 */
- 0, 0, 0x99CA, 0, 0x96EF, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xFA8D, 0, 0, 0x99CB, 0, /* 0x90 */
- 0x97D0, 0, 0x8CFA, 0, 0, 0, 0, 0x8CB4, /* 0x90 */
- 0x99CC, 0, 0, 0, 0, 0x99CE, 0x99CD, 0, /* 0xA0 */
- 0x907E, 0x8958, 0, 0, 0, 0x897D, 0x99CF, 0, /* 0xA0 */
- 0x99D0, 0, 0xFA8E, 0x8CB5, 0, 0, 0x99D1, 0, /* 0xB0 */
- 0, 0, 0, 0x8B8E, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0x8E51, 0x99D2, 0, 0, 0, 0, /* 0xC0 */
- 0x9694, 0x8DB3, 0x8B79, 0x9746, 0x916F, 0x94BD, 0x8EFB, 0, /* 0xC0 */
- 0, 0, 0, 0, 0x8F66, 0, 0x8EE6, 0x8EF3, /* 0xD0 */
- 0, 0x8F96, 0, 0x94BE, 0, 0xFA8F, 0, 0x99D5, /* 0xD0 */
- 0, 0x8962, 0x9170, 0x8CFB, 0x8CC3, 0x8BE5, 0, 0, /* 0xE0 */
- 0x99D9, 0x9240, 0x91FC, 0x8BA9, 0x8FA2, 0x99DA, 0x99D8, 0x89C2, /* 0xE0 */
- 0x91E4, 0x8EB6, 0x8E6A, 0x8945, 0, 0, 0x8A90, 0x8D86, /* 0xF0 */
- 0x8E69, 0, 0x99DB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_54[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x99DC, 0, 0x8B68, 0x8A65, 0, 0, 0, /* 0x00 */
- 0x8D87, 0x8B67, 0x92DD, 0x8944, 0x93AF, 0x96BC, 0x8D40, 0x9799, /* 0x00 */
- 0x9366, 0x8CFC, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0x8C4E, 0, 0x99E5, 0, 0x8BE1, /* 0x10 */
- 0x9669, 0, 0, 0, 0, 0, 0x94DB, 0, /* 0x20 */
- 0, 0x99E4, 0, 0x8ADC, 0x99DF, 0x99E0, 0x99E2, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0x99E3, 0, /* 0x30 */
- 0x8B7A, 0x9081, 0, 0x95AB, 0x99E1, 0x99DD, 0x8CE1, 0, /* 0x30 */
- 0x99DE, 0, 0x9843, 0, 0, 0, 0x95F0, 0, /* 0x40 */
- 0x92E6, 0x8CE0, 0x8D90, 0, 0, 0, 0x99E6, 0, /* 0x40 */
- 0, 0x93DB, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0x99EA, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0x8EFC, 0, 0x8EF4, 0, 0, 0, 0, 0, /* 0x60 */
- 0x99ED, 0x99EB, 0, 0x96A1, 0, 0x99E8, 0x99F1, 0x99EC, /* 0x70 */
- 0, 0, 0, 0x99EF, 0x8CC4, 0x96BD, 0, 0, /* 0x70 */
- 0x99F0, 0, 0, 0, 0x99F2, 0, 0x99F4, 0, /* 0x80 */
- 0, 0, 0xFA92, 0x8DEE, 0x9861, 0, 0x99E9, 0x99E7, /* 0x80 */
- 0x99F3, 0, 0x99EE, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xFA91, 0, 0, 0, /* 0x90 */
- 0, 0, 0x99F6, 0, 0x9A42, 0x99F8, 0, 0, /* 0xA0 */
- 0x99FC, 0xFA93, 0, 0x9A40, 0x99F9, 0, 0, 0x9A5D, /* 0xA0 */
- 0, 0, 0x8DE7, 0x8A50, 0, 0, 0, 0, /* 0xB0 */
- 0x99F7, 0, 0, 0, 0x9A44, 0x88F4, 0x9A43, 0, /* 0xB0 */
- 0x88A3, 0x9569, 0x9A41, 0, 0x99FA, 0, 0, 0x99F5, /* 0xC0 */
- 0x99FB, 0x8DC6, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x9A45, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x88F5, 0x9A4E, 0, 0, 0x9A46, 0x9A47, 0, /* 0xE0 */
- 0x8FA3, 0x9689, 0, 0, 0, 0x9A4C, 0x9A4B, 0, /* 0xE0 */
- 0, 0, 0x934E, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0x9A4D, 0, 0, 0x9A4A, 0, 0xFA94 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_55[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8953, 0, 0x8DB4, 0x904F, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0x9A48, /* 0x00 */
- 0x9382, 0, 0, 0, 0x9A49, 0, 0x88A0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0x9A53, 0x9742, /* 0x20 */
- 0, 0x8FA5, 0, 0x9A59, 0, 0, 0, 0, /* 0x30 */
- 0x9A58, 0x9A4F, 0, 0, 0, 0, 0x91C1, 0, /* 0x30 */
- 0x9A50, 0, 0, 0, 0x91ED, 0x9A55, 0x8FA4, 0, /* 0x40 */
- 0, 0, 0, 0, 0x9A52, 0, 0, 0x96E2, /* 0x40 */
- 0, 0, 0, 0x8C5B, 0, 0, 0x9A56, 0x9A57, /* 0x50 */
- 0, 0, 0, 0, 0x9A54, 0x9A5A, 0, 0, /* 0x50 */
- 0, 0, 0, 0x9A51, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0x9A60, 0x9A65, 0, 0x9A61, 0, /* 0x70 */
- 0x9A5C, 0, 0, 0x9A66, 0x9150, 0, 0xFA95, 0x9A68, /* 0x80 */
- 0, 0x8D41, 0x9A5E, 0x929D, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x9A62, 0x9A5B, 0x8AAB, 0, 0x8AEC, 0x8A85, 0x9A63, 0x9A5F, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0x8C96, /* 0xA0 */
- 0x9A69, 0x9A67, 0x9172, 0x8B69, 0x8BAA, 0, 0x9A64, 0, /* 0xA0 */
- 0x8BF2, 0, 0, 0, 0, 0, 0x8963, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x9A6D, 0x9A6B, 0, 0x9AA5, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0x9A70, 0, 0, 0, /* 0xD0 */
- 0, 0, 0x9A6A, 0, 0x9A6E, 0, 0, 0x9A6C, /* 0xD0 */
- 0, 0, 0, 0x8E6B, 0x9A6F, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0x9A72, /* 0xF0 */
- 0, 0x9A77, 0, 0, 0, 0x9A75, 0x9A74 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_56[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9251, 0, /* 0x00 */
- 0, 0x89C3, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0x9A71, 0, 0x9A73, 0x8FA6, /* 0x10 */
- 0x8952, 0, 0, 0x9A76, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0x89DC, 0, 0, 0, 0, 0, 0x9A82, /* 0x20 */
- 0, 0x8FFA, 0x9A7D, 0, 0x9A7B, 0, 0x9A7C, 0, /* 0x30 */
- 0x9A7E, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0x895C, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0x9158, 0, 0x9A78, 0, /* 0x40 */
- 0x9A79, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0x8A9A, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0x9A81, 0, 0, 0, /* 0x60 */
- 0x8AED, 0, 0x9A84, 0x9A80, 0x9A83, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0x95AC, 0, 0, 0, /* 0x70 */
- 0x93D3, 0, 0x94B6, 0, 0, 0, 0, 0, /* 0x70 */
- 0x9A86, 0, 0, 0, 0, 0, 0x9A85, 0x8A64, /* 0x80 */
- 0, 0, 0x9A87, 0, 0, 0, 0, 0x9A8A, /* 0x80 */
- 0, 0, 0, 0, 0x9A89, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x9A88, 0, 0x9458, 0, 0, 0x9A8B, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0x9A8C, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x9A8E, 0, 0x9A8D, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x9A90, 0, 0, 0, /* 0xB0 */
- 0x9A93, 0x9A91, 0x9A8F, 0x9A92, 0, 0, 0, 0, /* 0xC0 */
- 0x9A94, 0, 0, 0, 0, 0, 0x9A95, 0, /* 0xC0 */
- 0, 0x9A96, 0, 0x9A97, 0, 0, 0, 0x9A98, /* 0xD0 */
- 0x9964, 0, 0x8EFA, 0x8E6C, 0, 0, 0x89F1, 0, /* 0xD0 */
- 0x88F6, 0, 0, 0x9263, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0x9A99, 0, /* 0xE0 */
- 0x8DA2, 0, 0x88CD, 0x907D, 0, 0, 0, 0, /* 0xF0 */
- 0, 0x9A9A, 0x8CC5, 0, 0, 0x8D91, 0, 0x9A9C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_57[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9A9B, 0, 0, 0x95DE, 0x9A9D, 0, 0, 0, /* 0x00 */
- 0x9A9F, 0x9A9E, 0, 0x9AA0, 0, 0x9AA1, 0, 0x8C97, /* 0x00 */
- 0, 0, 0x8980, 0x9AA2, 0, 0, 0x9AA4, 0, /* 0x10 */
- 0x9AA3, 0, 0, 0, 0x9AA6, 0, 0, 0x9379, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x9AA7, 0x88B3, /* 0x20 */
- 0x8DDD, 0, 0, 0, 0, 0x8C5C, 0, 0, /* 0x20 */
- 0x926E, 0, 0, 0, 0, 0, 0, 0x9AA8, /* 0x30 */
- 0x9AA9, 0, 0, 0x9AAB, 0, 0, 0, 0, /* 0x30 */
- 0x9AAC, 0, 0x8DE2, 0, 0, 0, 0, 0x8BCF, /* 0x40 */
- 0, 0, 0x9656, 0, 0, 0, 0x9AAA, 0x9AAD, /* 0x40 */
- 0x8DBF, 0x8D42, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xFA96, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0x9AB1, 0, 0, 0x8DA3, 0xFA97, 0x9252, 0, /* 0x60 */
- 0, 0x9AAE, 0x92D8, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0x9AB2, /* 0x70 */
- 0, 0, 0x9082, 0, 0, 0, 0, 0, /* 0x80 */
- 0x9AB0, 0x9AB3, 0, 0x8C5E, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x9AB4, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x9AB5, 0, 0x8D43, 0x8A5F, 0x9AB7, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x9AB8, 0, 0xFA98, 0, 0, 0, /* 0xA0 */
- 0x9AB9, 0, 0, 0x9AB6, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x9AAF, 0, 0, 0x9ABA, 0, 0, 0x9ABB, 0xFA9A, /* 0xC0 */
- 0xFA99, 0, 0, 0x9684, 0, 0, 0x8FE9, 0, /* 0xC0 */
- 0, 0, 0x9ABD, 0x9ABE, 0x9ABC, 0, 0x9AC0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0x9457, 0, 0, 0x88E6, /* 0xD0 */
- 0x9575, 0, 0, 0x9AC1, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0x8FFB, 0, 0, 0x8EB7, /* 0xF0 */
- 0, 0x947C, 0x8AEE, 0, 0x8DE9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_58[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9678, 0, 0x93B0, 0, 0, 0x8C98, 0x91CD, 0, /* 0x00 */
- 0, 0, 0x9ABF, 0x9AC2, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0x91C2, 0, 0, /* 0x10 */
- 0, 0x9AC3, 0, 0, 0, 0x9AC4, 0, 0, /* 0x10 */
- 0, 0x9AC6, 0, 0, 0x92E7, 0, 0, 0, /* 0x20 */
- 0, 0, 0x8AAC, 0, 0, 0, 0, 0xEA9F, /* 0x20 */
- 0x8981, 0x95F1, 0, 0, 0x8FEA, 0x9367, 0, 0, /* 0x30 */
- 0, 0, 0x8DE4, 0, 0, 0x9ACC, 0, 0, /* 0x30 */
- 0x95BB, 0x97DB, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x89F2, 0x9AC8, 0, 0, 0, 0, /* 0x40 */
- 0, 0x9159, 0x9ACB, 0, 0x9383, 0, 0, 0x9368, /* 0x50 */
- 0x9384, 0x94B7, 0x92CB, 0, 0, 0, 0x8DC7, 0, /* 0x50 */
- 0, 0, 0x9AC7, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0x8996, 0, 0x9355, 0, 0, 0, 0, /* 0x60 */
- 0x9AC9, 0, 0x9AC5, 0, 0, 0x906F, 0, 0, /* 0x70 */
- 0, 0x9ACD, 0, 0, 0, 0, 0x8F6D, 0, /* 0x70 */
- 0, 0, 0, 0x8BAB, 0, 0x9ACE, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x95E6, 0, 0, 0, 0x919D, /* 0x90 */
- 0, 0, 0, 0, 0x92C4, 0, 0xFA9D, 0x9AD0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x966E, 0, 0, 0x9AD1, 0, 0, 0x9AD6, 0, /* 0xA0 */
- 0, 0, 0xFA9E, 0x95AD, 0, 0, 0, 0, /* 0xB0 */
- 0x9AD5, 0x9ACF, 0x9AD2, 0x9AD4, 0, 0, 0x8DA4, 0, /* 0xB0 */
- 0, 0x95C7, 0, 0, 0, 0x9AD7, 0, 0x9264, /* 0xC0 */
- 0, 0, 0x89F3, 0, 0x8FEB, 0, 0, 0, /* 0xC0 */
- 0, 0x9AD9, 0, 0x9AD8, 0, 0x8D88, 0, 0x9ADA, /* 0xD0 */
- 0x9ADC, 0x9ADB, 0, 0, 0x9ADE, 0, 0x9AD3, 0x9AE0, /* 0xD0 */
- 0, 0, 0, 0, 0x9ADF, 0x9ADD, 0, 0, /* 0xE0 */
- 0, 0, 0, 0x8E6D, 0x9070, 0, 0x9173, 0x9AE1, /* 0xE0 */
- 0x90BA, 0x88EB, 0x9484, 0, 0, 0, 0, 0x92D9, /* 0xF0 */
- 0, 0x9AE3, 0x9AE2, 0x9AE4, 0x9AE5, 0x9AE6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_59[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9AE7, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0x95CF, 0x9AE8, 0xFA9F, 0, 0, 0, 0x89C4, /* 0x00 */
- 0x9AE9, 0, 0, 0, 0, 0x975B, 0x8A4F, 0, /* 0x10 */
- 0x99C7, 0x8F67, 0x91BD, 0x9AEA, 0x96E9, 0, 0, 0, /* 0x10 */
- 0, 0, 0x96B2, 0, 0, 0x9AEC, 0, 0x91E5, /* 0x20 */
- 0, 0x9356, 0x91BE, 0x9576, 0x9AED, 0x9AEE, 0x899B, 0, /* 0x20 */
- 0, 0x8EB8, 0x9AEF, 0, 0, 0, 0, 0x88CE, /* 0x30 */
- 0x9AF0, 0, 0, 0, 0, 0, 0x9AF1, 0, /* 0x30 */
- 0, 0, 0, 0, 0x8982, 0, 0, 0x8AEF, /* 0x40 */
- 0x93DE, 0x95F2, 0, 0, 0, 0, 0x9AF5, 0x9174, /* 0x40 */
- 0x9AF4, 0x8C5F, 0, 0xFAA0, 0x967A, 0x9AF3, 0, 0x9385, /* 0x50 */
- 0x9AF7, 0, 0x9AF6, 0xFAA1, 0, 0xFAA2, 0, 0, /* 0x50 */
- 0x9AF9, 0, 0x9AF8, 0xFAA3, 0, 0x899C, 0, 0x9AFA, /* 0x60 */
- 0x8FA7, 0x9AFC, 0x9244, 0, 0x9AFB, 0, 0x95B1, 0, /* 0x60 */
- 0, 0, 0, 0x8F97, 0x937A, 0, 0, 0, /* 0x70 */
- 0x9B40, 0, 0, 0, 0, 0x8D44, 0, 0, /* 0x70 */
- 0, 0x9B41, 0x9440, 0x94DC, 0x96CF, 0, 0, 0, /* 0x80 */
- 0, 0, 0x9444, 0, 0, 0x9B4A, 0, 0, /* 0x80 */
- 0, 0, 0, 0x8B57, 0, 0, 0x9764, 0, /* 0x90 */
- 0, 0x96AD, 0, 0x9BAA, 0, 0x9B42, 0, 0, /* 0x90 */
- 0, 0, 0, 0x9B45, 0xFAA4, 0x91C3, 0, 0, /* 0xA0 */
- 0x9657, 0, 0, 0, 0x9369, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x9B46, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x9685, 0xFAA5, 0x8DC8, 0, 0, 0x8FA8, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0x9B47, 0, /* 0xC0 */
- 0, 0x8E6F, 0, 0x8E6E, 0, 0, 0, 0, /* 0xC0 */
- 0x88B7, 0x8CC6, 0, 0x90A9, 0x88CF, 0, 0, 0, /* 0xD0 */
- 0, 0x9B4B, 0x9B4C, 0, 0x9B49, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0x8957, 0x8AAD, 0, /* 0xE0 */
- 0x9B48, 0, 0x96C3, 0x9550, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0x88A6, 0, /* 0xF0 */
- 0, 0, 0, 0x88F7, 0, 0, 0, 0x8E70 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_5A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x88D0, 0, 0x88A1, 0, 0, 0, 0, /* 0x00 */
- 0, 0x9B51, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0x9B4F, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0x96BA, 0, 0x9B52, 0, 0x9B50, 0, 0, 0x9B4E, /* 0x10 */
- 0x9050, 0, 0, 0, 0, 0x9B4D, 0, 0, /* 0x20 */
- 0, 0x95D8, 0, 0, 0, 0, 0, 0x8CE2, /* 0x20 */
- 0, 0, 0, 0, 0, 0x9B56, 0x9B57, 0, /* 0x30 */
- 0, 0, 0, 0, 0x8FA9, 0, 0, 0, /* 0x30 */
- 0x9B53, 0x984B, 0, 0, 0, 0, 0x946B, 0, /* 0x40 */
- 0, 0x9B55, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0x8DA5, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0x9B58, 0, 0, 0, 0x9577, 0, /* 0x60 */
- 0, 0, 0x9B59, 0, 0x9B54, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0x96B9, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0x947D, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0x9B5A, 0x9551, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x9B5B, 0x9B5F, 0x9B5C, 0, /* 0xB0 */
- 0, 0x89C5, 0x9B5E, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x8EB9, 0, 0x9B5D, 0x8C99, 0, 0, 0, /* 0xC0 */
- 0x9B6B, 0, 0, 0, 0, 0, 0x9B64, 0x9B61, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x9284, 0, 0x9B60, 0, 0, 0x9B62, 0, /* 0xE0 */
- 0, 0x9B63, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0x9B65, 0x9B66 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_5B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0x8AF0, 0, 0x9B68, 0x9B67, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0x9B69, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x8FEC, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x9B6C, 0, 0x92DA, 0, 0, 0, /* 0x20 */
- 0x8964, 0, 0x9B6A, 0, 0, 0, 0x9B6D, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0x9B6E, 0, /* 0x30 */
- 0x9B71, 0, 0, 0x9B6F, 0, 0x9B70, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0x8E71, 0x9B72, 0, 0, 0x8D45, 0x9B73, 0xFAA6, 0x8E9A, /* 0x50 */
- 0x91B6, 0, 0x9B74, 0x9B75, 0x8E79, 0x8D46, 0, 0x96D0, /* 0x50 */
- 0, 0, 0, 0x8B47, 0x8CC7, 0x9B76, 0x8A77, 0, /* 0x60 */
- 0, 0x9B77, 0, 0x91B7, 0, 0, 0, 0, /* 0x60 */
- 0x9B78, 0x9BA1, 0, 0x9B79, 0, 0x9B7A, 0, 0, /* 0x70 */
- 0x9B7B, 0, 0x9B7D, 0, 0, 0, 0, 0, /* 0x70 */
- 0x9B7E, 0, 0, 0x9B80, 0, 0x91EE, 0, 0x8946, /* 0x80 */
- 0x8EE7, 0x88C0, 0, 0x9176, 0x8AAE, 0x8EB3, 0, 0x8D47, /* 0x80 */
- 0, 0, 0, 0, 0, 0x9386, 0, 0x8F40, /* 0x90 */
- 0x8AAF, 0x9288, 0x92E8, 0x88B6, 0x8B58, 0x95F3, 0, 0x8EC0, /* 0x90 */
- 0, 0, 0x8B71, 0x90E9, 0x8EBA, 0x9747, 0x9B81, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0x8B7B, 0, /* 0xA0 */
- 0x8DC9, 0, 0, 0x8A51, 0x8983, 0x8FAA, 0x89C6, 0, /* 0xB0 */
- 0x9B82, 0x9765, 0, 0, 0, 0, 0, 0x8F68, /* 0xB0 */
- 0xFAA7, 0, 0x8EE2, 0x9B83, 0x8AF1, 0x93D0, 0x96A7, 0x9B84, /* 0xC0 */
- 0, 0x9B85, 0, 0, 0x9578, 0, 0, 0, /* 0xC0 */
- 0x9B87, 0, 0x8AA6, 0x8BF5, 0x9B86, 0, 0, 0, /* 0xD0 */
- 0xFAA9, 0, 0, 0x8AB0, 0, 0x9051, 0x9B8B, 0x8E40, /* 0xD0 */
- 0, 0x89C7, 0x9B8A, 0, 0x9B88, 0x9B8C, 0x9B89, 0x944A, /* 0xE0 */
- 0x9ECB, 0x9052, 0, 0x9B8D, 0xFAAA, 0, 0x97BE, 0, /* 0xE0 */
- 0x9B8E, 0, 0, 0x9B90, 0, 0x929E, 0x9B8F, 0, /* 0xF0 */
- 0x90A1, 0, 0x8E9B, 0, 0, 0, 0x91CE, 0x8EF5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_5C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9595, 0x90EA, 0, 0x8ECB, 0x9B91, 0x8FAB, 0x9B92, /* 0x00 */
- 0x9B93, 0x88D1, 0x91B8, 0x9071, 0, 0x9B94, 0x93B1, 0x8FAC, /* 0x00 */
- 0, 0x8FAD, 0, 0x9B95, 0, 0, 0x90EB, 0, /* 0x10 */
- 0, 0, 0x8FAE, 0, 0, 0, 0xFAAB, 0, /* 0x10 */
- 0x9B96, 0, 0x9B97, 0, 0x96DE, 0, 0, 0, /* 0x20 */
- 0x9B98, 0, 0, 0, 0, 0x8BC4, 0, 0, /* 0x20 */
- 0, 0x8F41, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0x9B99, 0x9B9A, 0x8EDA, 0x904B, 0x93F2, 0x9073, 0x94F6, 0x9441, /* 0x30 */
- 0x8BC7, 0x9B9B, 0, 0, 0, 0x8B8F, 0x9B9C, 0, /* 0x40 */
- 0x8BFC, 0, 0x93CD, 0x89AE, 0, 0x8E72, 0x9B9D, 0x9BA0, /* 0x40 */
- 0x9B9F, 0x8BFB, 0, 0x9B9E, 0, 0x9357, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0x91AE, 0, /* 0x50 */
- 0x936A, 0x8EC6, 0, 0, 0x9177, 0x979A, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0x9BA2, 0, 0x9BA3, 0x93D4, /* 0x60 */
- 0, 0x8E52, 0, 0, 0, 0, 0x9BA5, 0, /* 0x70 */
- 0, 0x9BA6, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0x9BA7, 0, 0, 0, /* 0x80 */
- 0x8AF2, 0x9BA8, 0, 0, 0x9BA9, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x89AA, 0, 0, 0, 0, 0xFAAC, 0, /* 0xA0 */
- 0x915A, 0x8AE2, 0, 0x9BAB, 0x96A6, 0, 0, 0, /* 0xA0 */
- 0, 0x91D0, 0, 0x8A78, 0, 0, 0x9BAD, 0x9BAF, /* 0xB0 */
- 0x8ADD, 0, 0xFAAD, 0x9BAC, 0x9BAE, 0, 0x9BB1, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x9BB0, 0, 0x9BB2, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x9BB3, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x93BB, 0x8BAC, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x89E3, 0x9BB4, 0x9BB9, 0, 0, 0x9BB7, 0, 0x95F5, /* 0xE0 */
- 0x95F4, 0, 0, 0, 0, 0xFAAE, 0x9387, 0, /* 0xF0 */
- 0, 0, 0x9BB6, 0x8F73, 0, 0x9BB5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_5D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9092, /* 0x00 */
- 0, 0, 0, 0x9BBA, 0, 0, 0x8DE8, 0, /* 0x00 */
- 0, 0x9BC0, 0, 0, 0x9BC1, 0x9BBB, 0x8A52, 0x9BBC, /* 0x10 */
- 0x9BC5, 0x9BC4, 0x9BC3, 0x9BBF, 0, 0, 0, 0x9BBE, /* 0x10 */
- 0, 0, 0x9BC2, 0, 0, 0, 0, 0xFAAF, /* 0x20 */
- 0, 0x95F6, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0xFAB2, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0x9BC9, 0x9BC6, 0, 0x9BC8, 0, /* 0x40 */
- 0x9792, 0, 0x9BC7, 0xFAB0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0x9BBD, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0x9093, 0, 0, 0x9BCA, 0xFAB3, 0, 0x8DB5, /* 0x60 */
- 0, 0, 0, 0x9BCB, 0, 0, 0x9BCC, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0x9BCF, 0, 0x9BCE, 0, 0, 0x9BCD, /* 0x80 */
- 0, 0, 0, 0x9388, 0x9BB8, 0, 0, 0, /* 0x80 */
- 0x9BD5, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0x9BD1, 0, 0, /* 0x90 */
- 0, 0, 0x9BD0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x9BD2, 0, 0x9BD3, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0x9BD6, /* 0xB0 */
- 0xFAB4, 0xFAB5, 0x97E4, 0, 0x9BD7, 0x9BD4, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x9BD8, 0, 0, 0x8ADE, 0x9BD9, 0, 0, /* 0xC0 */
- 0xFAB6, 0, 0x9BDB, 0x9BDA, 0, 0, 0x9BDC, 0, /* 0xD0 */
- 0, 0, 0, 0x9BDD, 0, 0x90EC, 0x8F42, 0, /* 0xD0 */
- 0, 0x8F84, 0, 0x9183, 0, 0x8D48, 0x8DB6, 0x8D49, /* 0xE0 */
- 0x8B90, 0, 0, 0x9BDE, 0, 0, 0x8DB7, 0, /* 0xE0 */
- 0, 0x8CC8, 0x9BDF, 0x96A4, 0x9462, 0x9BE0, 0, 0x8D4A, /* 0xF0 */
- 0, 0, 0, 0x8AAA, 0, 0x9246, 0x8BD0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_5E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8E73, 0x957A, 0, 0, 0x94BF, 0, /* 0x00 */
- 0, 0, 0, 0x9BE1, 0x8AF3, 0, 0, 0, /* 0x00 */
- 0, 0x9BE4, 0, 0, 0, 0, 0x929F, 0, /* 0x10 */
- 0, 0x9BE3, 0x9BE2, 0x9BE5, 0, 0x92E9, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0x9083, 0, 0, /* 0x20 */
- 0, 0, 0, 0x8E74, 0, 0x90C8, 0, 0x91D1, /* 0x20 */
- 0x8B41, 0, 0, 0x92A0, 0, 0, 0x9BE6, 0x9BE7, /* 0x30 */
- 0x8FED, 0, 0, 0, 0, 0x9658, 0, 0, /* 0x30 */
- 0x9BEA, 0, 0, 0x9BE9, 0x9BE8, 0x959D, 0, 0x9BF1, /* 0x40 */
- 0, 0, 0, 0, 0x9679, 0, 0x9BEB, 0, /* 0x40 */
- 0, 0, 0, 0, 0x9BED, 0x968B, 0, 0x9BEC, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0x9BEE, /* 0x50 */
- 0, 0x94A6, 0x9BEF, 0x95BC, 0x9BF0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0x8AB1, 0x95BD, 0x944E, 0x9BF2, 0x9BF3, 0, /* 0x70 */
- 0x8D4B, 0x8AB2, 0x9BF4, 0x8CB6, 0x9763, 0x9748, 0x8AF4, 0x9BF6, /* 0x70 */
- 0, 0x92A1, 0, 0x8D4C, 0x8FAF, 0, 0, 0x94DD, /* 0x80 */
- 0, 0, 0x8FB0, 0, 0, 0, 0, 0x8F98, /* 0x80 */
- 0, 0, 0, 0, 0, 0x92EA, 0x95F7, 0x9358, /* 0x90 */
- 0, 0, 0x8D4D, 0, 0x957B, 0, 0, 0, /* 0x90 */
- 0x9BF7, 0, 0, 0, 0, 0, 0x9378, 0x8DC0, /* 0xA0 */
- 0, 0, 0, 0x8CC9, 0, 0x92EB, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0x88C1, 0x8F8E, 0x8D4E, /* 0xB0 */
- 0x9766, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x9BF8, 0x9BF9, 0x9470, 0, 0, 0, 0, /* 0xC0 */
- 0x9BFA, 0x97F5, 0x984C, 0, 0, 0, 0, 0x9BFC, /* 0xC0 */
- 0x9BFB, 0, 0, 0x8A66, 0, 0, 0x9C40, 0, /* 0xD0 */
- 0, 0, 0x9C43, 0x9C44, 0, 0x9C42, 0, 0x955F, /* 0xD0 */
- 0x8FB1, 0x9C46, 0x9C45, 0x9C41, 0, 0, 0, 0, /* 0xE0 */
- 0x9C47, 0x9C48, 0, 0, 0x9C49, 0, 0, 0, /* 0xE0 */
- 0x9C4C, 0x9C4A, 0, 0x9C4B, 0x9C4D, 0, 0x8984, 0x92EC, /* 0xF0 */
- 0x9C4E, 0, 0x8C9A, 0x89F4, 0x9455, 0, 0x9C4F, 0x93F9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_5F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x95D9, 0, 0x9C50, 0x984D, 0, 0, 0, /* 0x00 */
- 0, 0x9C51, 0x95BE, 0x9C54, 0x989F, 0x98AF, 0, 0x8EAE, /* 0x00 */
- 0x93F3, 0x9C55, 0, 0x8B7C, 0x92A2, 0x88F8, 0x9C56, 0x95A4, /* 0x10 */
- 0x8D4F, 0, 0, 0x926F, 0, 0, 0, 0x92ED, /* 0x10 */
- 0, 0xFAB7, 0, 0, 0, 0x96ED, 0x8CB7, 0x8CCA, /* 0x20 */
- 0, 0x9C57, 0, 0, 0, 0x9C58, 0, 0x9C5E, /* 0x20 */
- 0, 0x8EE3, 0, 0, 0xFAB8, 0x92A3, 0, 0x8BAD, /* 0x30 */
- 0x9C59, 0, 0, 0, 0x954A, 0, 0x9265, 0, /* 0x30 */
- 0, 0x9C5A, 0, 0, 0, 0xFA67, 0, 0, /* 0x40 */
- 0x9C5B, 0, 0x8BAE, 0, 0x9C5C, 0, 0x9C5D, 0, /* 0x40 */
- 0, 0x9C5F, 0, 0x9396, 0, 0, 0x9C60, 0x9C61, /* 0x50 */
- 0, 0x9C62, 0, 0, 0x9C53, 0x9C52, 0, 0, /* 0x50 */
- 0, 0x9C63, 0x8C60, 0, 0, 0, 0x9546, 0xFAB9, /* 0x60 */
- 0, 0x8DCA, 0x9556, 0x92A4, 0x956A, 0x9C64, 0, 0, /* 0x60 */
- 0x8FB2, 0x8965, 0, 0x9C65, 0, 0, 0, 0x9C66, /* 0x70 */
- 0, 0x96F0, 0, 0, 0x94DE, 0, 0, 0x9C69, /* 0x70 */
- 0x899D, 0x90AA, 0x9C68, 0x9C67, 0x8C61, 0x91D2, 0, 0x9C6D, /* 0x80 */
- 0x9C6B, 0, 0x9C6A, 0x97A5, 0x8CE3, 0, 0, 0, /* 0x80 */
- 0x8F99, 0x9C6C, 0x936B, 0x8F5D, 0, 0, 0, 0x93BE, /* 0x90 */
- 0x9C70, 0x9C6F, 0, 0, 0, 0, 0x9C6E, 0, /* 0x90 */
- 0x9C71, 0x8CE4, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x9C72, 0x959C, 0x8F7A, 0, 0, 0x9C73, 0x94F7, 0, /* 0xA0 */
- 0, 0, 0, 0x93BF, 0x92A5, 0, 0, 0xFABA, /* 0xB0 */
- 0, 0x934F, 0, 0, 0x9C74, 0x8B4A, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x9053, 0, 0x954B, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0x8AF5, 0x9445, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0x9C75, 0x8E75, /* 0xD0 */
- 0x9659, 0x965A, 0, 0, 0x899E, 0x9C7A, 0xFABB, 0, /* 0xD0 */
- 0x9289, 0, 0, 0, 0x9C77, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0x89F5, 0, 0, 0, 0, /* 0xE0 */
- 0x9CAB, 0x9C79, 0, 0, 0, 0x944F, 0, 0, /* 0xF0 */
- 0x9C78, 0, 0, 0x9C76, 0, 0x8D9A, 0, 0x9C7C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_60[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0x9C83, 0x9C89, /* 0x00 */
- 0x9C81, 0, 0x937B, 0, 0, 0x9C86, 0x957C, 0, /* 0x10 */
- 0, 0x9C80, 0, 0x9C85, 0x97E5, 0x8E76, 0, 0, /* 0x10 */
- 0x91D3, 0x9C7D, 0, 0, 0, 0x8B7D, 0x9C88, 0x90AB, /* 0x20 */
- 0x8985, 0x9C82, 0x89F6, 0x9C87, 0, 0, 0, 0x8BAF, /* 0x20 */
- 0, 0x9C84, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0x9C8A, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x9C8C, 0x9C96, 0x9C94, 0, 0, 0x9C91, 0, /* 0x40 */
- 0, 0, 0x9C90, 0x97F6, 0, 0x9C92, 0, 0, /* 0x40 */
- 0x8BB0, 0, 0x8D50, 0, 0, 0x8F9A, 0, 0, /* 0x50 */
- 0, 0x9C99, 0x9C8B, 0, 0, 0xFABC, 0, 0x9C8F, /* 0x50 */
- 0x9C7E, 0, 0x89F8, 0x9C93, 0x9C95, 0x9270, 0, 0, /* 0x60 */
- 0x8DA6, 0x89B6, 0x9C8D, 0x9C98, 0x9C97, 0x8BB1, 0, 0x91A7, /* 0x60 */
- 0x8A86, 0, 0, 0, 0, 0x8C62, 0, 0x9C8E, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x9C9A, 0, 0x9C9D, 0x9C9F, 0xFABD, 0, 0, /* 0x80 */
- 0, 0x8EBB, 0xFABE, 0x9CA5, 0x92EE, 0x9C9B, 0, 0, /* 0x80 */
- 0, 0, 0x9CA3, 0, 0x89F7, 0, 0x9CA1, 0x9CA2, /* 0x90 */
- 0, 0, 0x9C9E, 0x9CA0, 0, 0, 0, 0x8CE5, /* 0x90 */
- 0x9749, 0, 0, 0x8AB3, 0, 0, 0x8978, 0x9CA4, /* 0xA0 */
- 0, 0x9459, 0x88AB, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x94DF, 0x9C7B, 0x9CAA, 0x9CAE, 0x96E3, 0, /* 0xB0 */
- 0x9CA7, 0, 0, 0, 0x9389, 0x9CAC, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x8FEE, 0x9CAD, 0x93D5, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x9866, 0, 0x9CA9, 0, 0xFAC0, 0, 0, /* 0xD0 */
- 0x9CAF, 0, 0x8D9B, 0, 0x90C9, 0, 0xFABF, 0x88D2, /* 0xD0 */
- 0x9CA8, 0x9CA6, 0, 0x9179, 0, 0, 0, 0x9C9C, /* 0xE0 */
- 0x8E53, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x91C4, 0x9CBB, 0xFAC2, 0x917A, 0x9CB6, 0, 0x9CB3, 0x9CB4, /* 0xF0 */
- 0, 0x8EE4, 0x9CB7, 0x9CBA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_61[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9CB5, 0x8F44, 0, 0x9CB8, 0, 0, 0x9CB2, 0, /* 0x00 */
- 0x96FA, 0x96F9, 0, 0, 0, 0x9CBC, 0x9CBD, 0x88D3, /* 0x00 */
- 0, 0xFAC3, 0, 0, 0, 0x9CB1, 0, 0, /* 0x10 */
- 0, 0, 0x8BF0, 0x88A4, 0, 0, 0, 0x8AB4, /* 0x10 */
- 0xFAC1, 0x9CB9, 0, 0, 0, 0, 0, 0x9CC1, /* 0x20 */
- 0x9CC0, 0, 0, 0, 0x9CC5, 0, 0, 0, /* 0x20 */
- 0xFAC5, 0, 0, 0, 0x9CC6, 0, 0, 0xFAC4, /* 0x30 */
- 0, 0, 0, 0, 0x9CC4, 0x9CC7, 0x9CBF, 0x9CC3, /* 0x30 */
- 0, 0, 0x9CC8, 0, 0x9CC9, 0, 0, 0x9CBE, /* 0x40 */
- 0x8E9C, 0, 0x9CC2, 0x91D4, 0x8D51, 0x9CB0, 0x9054, 0, /* 0x40 */
- 0, 0, 0, 0x9CD6, 0, 0x95E7, 0, 0, /* 0x50 */
- 0x9CCC, 0x9CCD, 0x9CCE, 0, 0, 0x9CD5, 0, 0x9CD4, /* 0x50 */
- 0, 0, 0x969D, 0x8AB5, 0, 0x9CD2, 0, 0x8C64, /* 0x60 */
- 0x8A53, 0, 0, 0x9CCF, 0, 0, 0x97B6, 0x9CD1, /* 0x60 */
- 0x88D4, 0x9CD3, 0, 0x9CCA, 0x9CD0, 0x9CD7, 0x8C63, 0x9CCB, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x977C, 0, /* 0x70 */
- 0, 0, 0x974A, 0, 0, 0, 0, 0x9CDA, /* 0x80 */
- 0, 0, 0x9CDE, 0, 0, 0, 0x919E, 0, /* 0x80 */
- 0x97F7, 0x9CDF, 0, 0, 0x9CDC, 0, 0x9CD9, 0, /* 0x90 */
- 0xFAC6, 0x9CD8, 0x9CDD, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0x95AE, 0, 0, 0x93B2, /* 0xA0 */
- 0, 0x8C65, 0, 0x9CE0, 0x9CDB, 0, 0x9CE1, 0, /* 0xA0 */
- 0, 0, 0x8C9B, 0, 0, 0, 0x89AF, 0, /* 0xB0 */
- 0, 0, 0x9CE9, 0, 0, 0, 0x8AB6, 0, /* 0xB0 */
- 0, 0, 0, 0x9CE7, 0, 0, 0x9CE8, 0x8DA7, /* 0xC0 */
- 0x9CE6, 0x9CE4, 0x9CE3, 0x9CEA, 0x9CE2, 0x9CEC, 0, 0, /* 0xC0 */
- 0x89F9, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0x9CEE, 0, 0, 0x9CED, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0x92A6, 0, 0x9CF1, 0, 0x9CEF, 0x9CE5, /* 0xF0 */
- 0x8C9C, 0, 0x9CF0, 0, 0x9CF4, 0x9CF3, 0x9CF5, 0x9CF2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_62[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9CF6, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0x9CF7, 0x9CF8, 0x95E8, 0, 0x9CFA, 0x9CF9, 0x8F5E, 0, /* 0x00 */
- 0x90AC, 0x89E4, 0x89FA, 0xFAC7, 0x9CFB, 0, 0x88BD, 0, /* 0x10 */
- 0, 0, 0x90CA, 0x9CFC, 0, 0xE6C1, 0x9D40, 0x8C81, /* 0x10 */
- 0, 0x9D41, 0, 0, 0, 0, 0x90ED, 0, /* 0x20 */
- 0, 0, 0x9D42, 0, 0, 0, 0x9D43, 0x8B59, /* 0x20 */
- 0x9D44, 0, 0x9D45, 0x9D46, 0x91D5, 0, 0, 0, /* 0x30 */
- 0x8CCB, 0, 0, 0x96DF, 0, 0, 0, 0x965B, /* 0x30 */
- 0x8F8A, 0x9D47, 0, 0, 0, 0, 0, 0x90EE, /* 0x40 */
- 0xE7BB, 0x94E0, 0, 0x8EE8, 0, 0x8DCB, 0x9D48, 0, /* 0x40 */
- 0, 0, 0, 0x91C5, 0, 0x95A5, 0, 0, /* 0x50 */
- 0x91EF, 0, 0, 0x9D4B, 0, 0, 0x9D49, 0, /* 0x50 */
- 0x9D4C, 0, 0, 0x9D4A, 0, 0, 0, 0, /* 0x60 */
- 0x9D4D, 0, 0, 0, 0, 0, 0x95AF, 0, /* 0x60 */
- 0, 0x88B5, 0, 0, 0, 0, 0x957D, 0, /* 0x70 */
- 0, 0x94E1, 0, 0, 0x9D4E, 0, 0x9D51, 0x8FB3, /* 0x70 */
- 0x8B5A, 0, 0x9D4F, 0x9D56, 0x8FB4, 0, 0, 0, /* 0x80 */
- 0, 0x9D50, 0x9463, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x977D, 0x9D52, 0x9D53, 0x9D57, 0x938A, 0x9D54, 0x8D52, /* 0x90 */
- 0x90DC, 0, 0, 0x9D65, 0x94B2, 0, 0x91F0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0xFAC8, 0, /* 0xA0 */
- 0, 0, 0, 0x94E2, 0x9DAB, 0, 0, 0, /* 0xA0 */
- 0, 0x95F8, 0, 0, 0, 0x92EF, 0, 0, /* 0xB0 */
- 0, 0x9695, 0, 0x9D5A, 0x899F, 0x928A, 0, 0, /* 0xB0 */
- 0, 0, 0x9D63, 0, 0, 0x9253, 0x9D5D, 0x9D64, /* 0xC0 */
- 0x9D5F, 0x9D66, 0x9D62, 0, 0x9D61, 0x948F, 0, 0x9D5B, /* 0xC0 */
- 0x89FB, 0x9D59, 0x8B91, 0x91F1, 0x9D55, 0, 0, 0x9D58, /* 0xD0 */
- 0x8D53, 0x90D9, 0, 0x8FB5, 0x9D60, 0x9471, 0, 0, /* 0xD0 */
- 0x8B92, 0x8A67, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0x8A87, 0x9040, 0x9D68, 0x9D6D, /* 0xE0 */
- 0, 0x9D69, 0, 0x8C9D, 0, 0x9D6E, 0x8E41, 0x8D89, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0x8F45, 0x9D5C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_63[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8E9D, 0x9D6B, 0, 0, 0, 0, 0x8E77, /* 0x00 */
- 0x9D6C, 0x88C2, 0, 0, 0x9D67, 0, 0, 0, /* 0x00 */
- 0, 0x92A7, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0x8B93, 0, 0, 0, 0, 0, 0x8BB2, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0x9D6A, /* 0x20 */
- 0x88A5, 0, 0, 0x8DC1, 0, 0, 0, 0x9055, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0x92F0, 0, 0, 0x94D2, 0x9D70, 0x917D, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0x91A8, 0, 0, 0x8E4A, 0x9D71, 0, 0x9D73, /* 0x40 */
- 0x9D6F, 0, 0, 0, 0, 0x95DF, 0, 0x92BB, /* 0x50 */
- 0, 0, 0, 0, 0x917B, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0x95F9, /* 0x60 */
- 0x8ECC, 0x9D80, 0, 0x9D7E, 0, 0, 0x9098, 0, /* 0x60 */
- 0, 0, 0x8C9E, 0, 0, 0, 0x9D78, 0x8FB7, /* 0x70 */
- 0, 0, 0x93E6, 0x9450, 0, 0, 0, 0, /* 0x70 */
- 0x9D76, 0, 0, 0x917C, 0, 0, 0, 0, /* 0x80 */
- 0x8EF6, 0x9D7B, 0, 0, 0x8FB6, 0, 0x9D75, 0x9D7A, /* 0x80 */
- 0, 0, 0x9472, 0, 0, 0, 0x9D74, 0, /* 0x90 */
- 0x8C40, 0, 0, 0x8A7C, 0, 0, 0, 0x9D7C, /* 0x90 */
- 0x97A9, 0x8DCC, 0x9254, 0x9D79, 0, 0x90DA, 0, 0x8D54, /* 0xA0 */
- 0x9084, 0x8986, 0x915B, 0x9D77, 0x8B64, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x8C66, 0, 0x92CD, 0x9D7D, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x917E, 0, 0, 0x9D81, 0, /* 0xB0 */
- 0x9D83, 0, 0, 0x91B5, 0x9D89, 0, 0x9D84, 0, /* 0xC0 */
- 0, 0x9D86, 0, 0, 0, 0, 0, 0x9560, /* 0xC0 */
- 0x92F1, 0, 0x9D87, 0, 0, 0, 0x974B, 0, /* 0xD0 */
- 0, 0, 0x9767, 0x8AB7, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x88AC, 0, 0x9D85, 0, 0, 0, 0, /* 0xE0 */
- 0, 0x9D82, 0, 0, 0, 0, 0x8AF6, 0, /* 0xE0 */
- 0, 0, 0, 0, 0x8987, 0xFAC9, 0x9D88, 0, /* 0xF0 */
- 0, 0, 0x9768 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_64[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9D8C, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0x91B9, 0, 0x9D93, /* 0x00 */
- 0, 0, 0, 0x9D8D, 0, 0, 0x9D8A, 0x9D91, /* 0x10 */
- 0, 0, 0, 0, 0x9D72, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x9D8E, 0, /* 0x20 */
- 0x9D92, 0, 0, 0, 0x94C0, 0x938B, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0x9D8B, 0, 0x9D8F, 0, /* 0x30 */
- 0, 0, 0x8C67, 0, 0, 0, 0x8DEF, 0, /* 0x30 */
- 0, 0, 0x90DB, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0x9D97, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0x9345, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xFACA, 0, 0, 0, 0, 0, 0, 0x9D94, /* 0x60 */
- 0, 0x9680, 0, 0, 0, 0, 0, 0x9D95, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0x9D96, 0, /* 0x70 */
- 0x96CC, 0, 0x90A0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0x8C82, 0, 0, 0, 0, /* 0x80 */
- 0x9D9D, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0x8E54, 0x9D9A, 0, 0x9D99, 0, 0, /* 0x90 */
- 0, 0, 0x9451, 0, 0, 0xFACB, 0x93B3, 0, /* 0x90 */
- 0, 0, 0, 0, 0x9350, 0x9D9B, 0, 0, /* 0xA0 */
- 0, 0x9D9C, 0, 0x958F, 0, 0x9464, 0x8E42, 0, /* 0xA0 */
- 0x90EF, 0, 0x966F, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x8A68, 0, 0x9DA3, 0x9D9E, 0, 0, 0, /* 0xB0 */
- 0, 0x9769, 0x9DA5, 0, 0, 0x9DA1, 0, 0x9DA2, /* 0xC0 */
- 0, 0, 0, 0, 0, 0x9180, 0xFACC, 0, /* 0xC0 */
- 0, 0, 0x9DA0, 0, 0x9D5E, 0, 0, 0, /* 0xD0 */
- 0x9DA4, 0, 0x9D9F, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x9DA9, 0x9DAA, 0x9346, 0x9DAC, 0, 0, 0x8E43, 0x9DA7, /* 0xE0 */
- 0, 0, 0, 0, 0x8B5B, 0, 0, 0x9DAD, /* 0xE0 */
- 0, 0x9DA6, 0x9DB1, 0, 0x9DB0, 0, 0x9DAF, 0, /* 0xF0 */
- 0, 0, 0x9DB2, 0, 0, 0x9DB4, 0x8FEF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_65[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9DB3, 0, 0, 0, 0, 0x9DB7, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0x9DB5, 0, 0, 0, 0x9DB6, 0x9D90, 0, 0, /* 0x10 */
- 0, 0, 0, 0x9DB9, 0x9DB8, 0, 0, 0, /* 0x20 */
- 0, 0, 0x9D98, 0x9DBA, 0x9DAE, 0, 0, 0x8E78, /* 0x20 */
- 0, 0, 0, 0, 0x9DBB, 0x9DBC, 0x9DBE, 0x9DBD, /* 0x30 */
- 0x9DBF, 0x89FC, 0, 0x8D55, 0, 0, 0x95FA, 0x90AD, /* 0x30 */
- 0, 0, 0, 0, 0, 0x8CCC, 0, 0, /* 0x40 */
- 0x9DC1, 0, 0, 0, 0, 0x9DC4, 0xFACD, 0x9571, /* 0x40 */
- 0, 0x8B7E, 0, 0, 0, 0x9DC3, 0x9DC2, 0x9473, /* 0x50 */
- 0x9DC5, 0x8BB3, 0, 0, 0, 0x9DC7, 0x9DC6, 0, /* 0x50 */
- 0, 0, 0x8AB8, 0x8E55, 0, 0, 0x93D6, 0, /* 0x60 */
- 0, 0, 0, 0, 0x8C68, 0, 0, 0, /* 0x60 */
- 0x9094, 0, 0x9DC8, 0, 0x90AE, 0x9347, 0, 0x957E, /* 0x70 */
- 0x9DC9, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0x9DCA, 0x9DCB, 0, 0, 0, 0x95B6, /* 0x80 */
- 0x9B7C, 0x90C4, 0, 0, 0x956B, 0, 0x8DD6, 0, /* 0x80 */
- 0x94E3, 0x94C1, 0, 0, 0, 0, 0, 0x936C, /* 0x90 */
- 0, 0x97BF, 0, 0x9DCD, 0x8ECE, 0, 0, 0x9DCE, /* 0x90 */
- 0, 0x88B4, 0, 0, 0x8BD2, 0x90CB, 0, 0x9580, /* 0xA0 */
- 0, 0, 0, 0x9DCF, 0x8E61, 0x9266, 0, 0x8E7A, /* 0xA0 */
- 0x9056, 0, 0, 0, 0, 0, 0, 0x9DD0, /* 0xB0 */
- 0, 0x95FB, 0, 0, 0x8997, 0x8E7B, 0, 0, /* 0xB0 */
- 0, 0x9DD3, 0, 0x9DD1, 0x9DD4, 0x97B7, 0x9DD2, 0, /* 0xC0 */
- 0, 0, 0, 0x90F9, 0x9DD5, 0, 0, 0x91B0, /* 0xC0 */
- 0, 0, 0x9DD6, 0, 0, 0, 0, 0x8AF8, /* 0xD0 */
- 0, 0x9DD8, 0, 0x9DD7, 0, 0, 0, 0, /* 0xD0 */
- 0x9DD9, 0x9DDA, 0x8AF9, 0, 0, 0x93FA, 0x9255, 0x8B8C, /* 0xE0 */
- 0x8E7C, 0x9181, 0, 0, 0x8F7B, 0x88AE, 0, 0, /* 0xE0 */
- 0, 0x9DDB, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0x89A0, 0x9DDF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_66[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFACE, 0, 0x8D56, 0x9DDE, 0, 0, 0x8DA9, 0x8FB8, /* 0x00 */
- 0, 0xFAD1, 0x9DDD, 0, 0x8FB9, 0, 0x96BE, 0x8DA8, /* 0x00 */
- 0, 0, 0, 0x88D5, 0x90CC, 0xFACF, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0x9DE4, 0, 0xFAD3, 0x90AF, /* 0x10 */
- 0x8966, 0, 0, 0, 0xFAD4, 0x8F74, 0, 0x9686, /* 0x20 */
- 0x8DF0, 0, 0, 0, 0, 0x8FBA, 0xFAD2, 0x90A5, /* 0x20 */
- 0, 0xFA63, 0, 0, 0x9DE3, 0x9DE1, 0x9DE2, 0, /* 0x30 */
- 0, 0, 0, 0xFAD0, 0x928B, 0, 0, 0x9E45, /* 0x30 */
- 0, 0x9DE8, 0x8E9E, 0x8D57, 0x9DE6, 0, 0, 0, /* 0x40 */
- 0, 0x9DE7, 0, 0x9057, 0, 0, 0, 0x9DE5, /* 0x40 */
- 0, 0, 0x8E4E, 0, 0, 0, 0, 0xFAD6, /* 0x50 */
- 0, 0xFAD7, 0, 0, 0, 0x9DEA, 0x9DE9, 0x9DEE, /* 0x50 */
- 0, 0, 0x9DEF, 0, 0x9DEB, 0xFAD5, 0x8A41, 0x9DEC, /* 0x60 */
- 0x9DED, 0x94D3, 0, 0, 0, 0, 0x9581, 0x8C69, /* 0x60 */
- 0x9DF0, 0, 0, 0xFAD9, 0x90B0, 0, 0x8FBB, 0, /* 0x70 */
- 0, 0, 0x9271, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x8BC5, 0, 0x9DF1, 0x9DF5, 0, 0, 0x89C9, /* 0x80 */
- 0x9DF2, 0x9DF4, 0, 0, 0, 0, 0x9DF3, 0, /* 0x80 */
- 0, 0x8F8B, 0, 0, 0, 0, 0x9267, 0x88C3, /* 0x90 */
- 0x9DF6, 0xFADA, 0, 0, 0, 0x9DF7, 0, 0, /* 0x90 */
- 0xFADB, 0, 0x92A8, 0, 0, 0, 0x97EF, 0, /* 0xA0 */
- 0, 0, 0, 0x8E62, 0, 0, 0x95E9, 0, /* 0xA0 */
- 0, 0, 0xFADC, 0, 0x965C, 0, 0, 0, /* 0xB0 */
- 0x9E41, 0x9DF9, 0, 0, 0x9DFC, 0, 0x9DFB, 0xFADD, /* 0xB0 */
- 0, 0x9DF8, 0, 0, 0x9E40, 0, 0, 0x93DC, /* 0xC0 */
- 0, 0x9DFA, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0x9E42, 0, /* 0xD0 */
- 0, 0x8F8C, 0x9E43, 0, 0x976A, 0x9498, 0, 0, /* 0xD0 */
- 0x9E44, 0, 0, 0, 0, 0, 0x9E46, 0, /* 0xE0 */
- 0, 0x9E47, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x9E48, 0, 0x8BC8, 0x8967, 0x8D58, 0x9E49, 0, 0x9E4A, /* 0xF0 */
- 0x8F91, 0x9182, 0xFADE, 0xFA66, 0x99D6, 0x915D, 0x915C, 0x91D6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_67[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8DC5, 0, 0, 0x98F0, 0, 0, 0, 0, /* 0x00 */
- 0x8C8E, 0x974C, 0, 0x95FC, 0, 0x959E, 0xFADF, 0x9E4B, /* 0x00 */
- 0, 0, 0, 0, 0x8DF1, 0x92BD, 0x9E4C, 0x984E, /* 0x10 */
- 0, 0, 0, 0x965D, 0, 0x92A9, 0x9E4D, 0x8AFA, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x9E4E, 0x9E4F, /* 0x20 */
- 0x96D8, 0, 0x96A2, 0x9696, 0x967B, 0x8E44, 0x9E51, 0, /* 0x20 */
- 0, 0x8EE9, 0, 0, 0x9670, 0, 0x9E53, 0x9E56, /* 0x30 */
- 0x9E55, 0, 0x8AF7, 0, 0, 0x8B80, 0, 0x9E52, /* 0x30 */
- 0, 0x9E54, 0, 0, 0, 0, 0x9E57, 0, /* 0x40 */
- 0, 0x9099, 0, 0, 0, 0, 0x979B, 0x88C7, /* 0x40 */
- 0x8DDE, 0x91BA, 0, 0x8EDB, 0, 0, 0x8FF1, 0, /* 0x50 */
- 0, 0x9E5A, 0, 0, 0x936D, 0, 0x9E58, 0x91A9, /* 0x50 */
- 0x9E59, 0x8FF0, 0x96DB, 0x9E5B, 0x9E5C, 0x9788, 0xFAE1, 0, /* 0x60 */
- 0, 0, 0x9E61, 0, 0, 0x8D59, 0, 0x9474, /* 0x60 */
- 0x9E5E, 0x938C, 0x9DDC, 0x9DE0, 0, 0x8B6E, 0, 0x9466, /* 0x70 */
- 0, 0, 0, 0, 0x9E60, 0, 0x8FBC, 0x94C2, /* 0x70 */
- 0, 0, 0, 0, 0, 0x9E66, 0, 0x94F8, /* 0x80 */
- 0, 0x9E5D, 0, 0x9E63, 0x9E62, 0, 0, 0, /* 0x80 */
- 0x90CD, 0, 0, 0, 0, 0x968D, 0, 0x97D1, /* 0x90 */
- 0, 0, 0x9687, 0, 0x89CA, 0x8E7D, 0, 0, /* 0x90 */
- 0x9867, 0x9E65, 0x9095, 0, 0, 0, 0x9E64, 0, /* 0xA0 */
- 0, 0x9E5F, 0, 0, 0, 0, 0, 0x8CCD, /* 0xA0 */
- 0, 0, 0, 0x9E6B, 0x9E69, 0, 0x89CB, 0x9E67, /* 0xB0 */
- 0x9E6D, 0x9E73, 0, 0xFAE2, 0, 0, 0, 0, /* 0xB0 */
- 0xFAE4, 0x91C6, 0, 0, 0x95BF, 0, 0x9E75, 0, /* 0xC0 */
- 0, 0, 0x9541, 0, 0, 0, 0x9E74, 0x9490, /* 0xC0 */
- 0x965E, 0x8AB9, 0, 0x90F5, 0x8F5F, 0, 0, 0, /* 0xD0 */
- 0x92D1, 0, 0x974D, 0, 0, 0x9E70, 0x9E6F, 0, /* 0xD0 */
- 0, 0, 0x9E71, 0, 0x9E6E, 0, 0, 0x9E76, /* 0xE0 */
- 0, 0x9E6C, 0, 0, 0x9E6A, 0, 0x9E72, 0x9E68, /* 0xE0 */
- 0, 0x928C, 0, 0x96F6, 0x8EC4, 0x8DF2, 0, 0, /* 0xF0 */
- 0, 0, 0, 0x8DB8, 0, 0, 0x968F, 0x8A60 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_68[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFAE5, 0x92CC, 0x93C8, 0x8968, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0x90F0, 0, 0, 0x90B2, 0x8C49, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x9E78, 0, /* 0x10 */
- 0, 0x8D5A, 0x8A9C, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0x9E7A, 0x8A94, 0x9E81, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x9E7D, 0, 0x90F1, 0, 0, 0, /* 0x30 */
- 0x8A6A, 0x8DAA, 0, 0, 0x8A69, 0x8DCD, 0, 0, /* 0x30 */
- 0x9E7B, 0x8C85, 0x8C6A, 0x938D, 0xFAE6, 0, 0x9E79, 0, /* 0x40 */
- 0x88C4, 0, 0, 0, 0, 0x9E7C, 0x9E7E, 0, /* 0x40 */
- 0x8BCB, 0x8C4B, 0xFAE3, 0x8ABA, 0x8B6A, 0, 0, 0, /* 0x50 */
- 0, 0x9E82, 0, 0, 0x8DF7, 0x9691, 0, 0x8E56, /* 0x50 */
- 0, 0, 0, 0x9E83, 0, 0, 0, 0x954F, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0x9E8F, 0, 0x89B1, 0x9E84, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x9E95, 0x9E85, /* 0x70 */
- 0, 0x97C0, 0, 0x9E8C, 0, 0x947E, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0x9E94, 0, 0x9E87, /* 0x80 */
- 0, 0, 0, 0x88B2, 0x9E89, 0, 0, 0x8D5B, /* 0x90 */
- 0, 0, 0, 0x9E8B, 0, 0x9E8A, 0, 0x9E86, /* 0x90 */
- 0x9E91, 0, 0x8FBD, 0, 0, 0, 0x9AEB, 0x8CE6, /* 0xA0 */
- 0x979C, 0, 0, 0, 0, 0x9E88, 0, 0x92F2, /* 0xA0 */
- 0x8A42, 0x8DAB, 0, 0x9E80, 0, 0x9E90, 0x8A81, 0, /* 0xB0 */
- 0, 0x9E8E, 0x9E92, 0, 0x938E, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x8AFC, 0, 0x9EB0, 0, /* 0xC0 */
- 0xFA64, 0x96C7, 0x9E97, 0x8AFB, 0, 0x9E9E, 0, 0xFAE7, /* 0xC0 */
- 0, 0, 0x965F, 0, 0x9E9F, 0x9EA1, 0, 0x9EA5, /* 0xD0 */
- 0x9E99, 0, 0x9249, 0, 0, 0, 0, 0x938F, /* 0xD0 */
- 0x9EA9, 0x9E9C, 0, 0x9EA6, 0, 0, 0, 0x9EA0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0x9058, 0x9EAA, /* 0xE0 */
- 0, 0, 0x90B1, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0x9EA8, 0x8ABB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_69[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x986F, 0x9E96, 0, 0, 0x9EA4, 0x88D6, 0, 0, /* 0x00 */
- 0x9E98, 0, 0, 0x96B8, 0x9E9D, 0x9041, 0x92C5, 0x9E93, /* 0x00 */
- 0, 0, 0x9EA3, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0x909A, 0x9EAD, 0x8A91, 0x8C9F, 0, 0, 0, /* 0x10 */
- 0, 0x9EAF, 0x9E9A, 0x9EAE, 0, 0x9EA7, 0x9E9B, 0, /* 0x20 */
- 0x9EAB, 0, 0x9EAC, 0, 0, 0, 0, 0, /* 0x20 */
- 0x9EBD, 0, 0, 0, 0x93CC, 0, 0x9EA2, 0, /* 0x30 */
- 0, 0x9EB9, 0, 0, 0, 0x9EBB, 0, 0x92D6, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x976B, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0x9596, 0x9EB6, 0x91C8, 0, 0, /* 0x50 */
- 0, 0x9EBC, 0x915E, 0, 0x9EB3, 0x9EC0, 0x9EBF, 0, /* 0x50 */
- 0x93ED, 0x9EBE, 0x93E8, 0, 0, 0, 0, 0, /* 0x60 */
- 0xFAE9, 0, 0x9EC2, 0x9EB5, 0, 0x8BC6, 0x9EB8, 0x8F7C, /* 0x60 */
- 0, 0, 0, 0x9480, 0x9EBA, 0x8BC9, 0, 0x9EB2, /* 0x70 */
- 0x9EB4, 0x9EB1, 0, 0, 0x984F, 0x8A79, 0x9EB7, 0, /* 0x70 */
- 0, 0x9EC1, 0x8A54, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0x8DE5, 0, 0, 0, 0x897C, 0, /* 0x80 */
- 0, 0x9ED2, 0, 0, 0x9850, 0x9ED5, 0, 0, /* 0x90 */
- 0xFAEB, 0, 0, 0x9059, 0x9ED4, 0, 0, 0, /* 0x90 */
- 0x9ED3, 0, 0, 0, 0, 0, 0, 0x9ED0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0x9EC4, 0, /* 0xA0 */
- 0, 0x9EE1, 0x9EC3, 0, 0x9ED6, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x9ECE, 0, 0, 0x9EC9, 0x9EC6, /* 0xB0 */
- 0, 0x9EC7, 0, 0x9ECF, 0, 0, 0, 0xEAA0, /* 0xC0 */
- 0, 0, 0x9ECC, 0x8D5C, 0x92C6, 0x9184, 0x9ECA, 0, /* 0xC0 */
- 0x9EC5, 0, 0, 0x9EC8, 0, 0, 0, 0, /* 0xD0 */
- 0x976C, 0x968A, 0, 0, 0, 0x9ECD, 0x9ED7, 0, /* 0xD0 */
- 0, 0, 0xFAEC, 0, 0, 0, 0, 0x9EDF, /* 0xE0 */
- 0x9ED8, 0, 0, 0x9EE5, 0, 0x9EE3, 0, 0, /* 0xE0 */
- 0, 0, 0x9EDE, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0x9EDD, 0, 0x92CE, 0, 0x9185, 0, 0x9EDB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_6A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9ED9, 0, 0, 0x9EE0, 0, 0, /* 0x00 */
- 0, 0, 0x9EE6, 0x94F3, 0x9EEC, 0, 0, 0, /* 0x00 */
- 0, 0, 0x9EE7, 0x9EEA, 0x9EE4, 0, 0, 0x9294, /* 0x10 */
- 0, 0x9557, 0, 0x9EDA, 0, 0, 0x9EE2, 0x8FBE, /* 0x10 */
- 0, 0x96CD, 0x9EF6, 0x9EE9, 0, 0, 0, 0, /* 0x20 */
- 0, 0x8CA0, 0x89A1, 0x8A7E, 0, 0, 0x9ED1, 0, /* 0x20 */
- 0xFAED, 0, 0, 0, 0, 0x8FBF, 0x9EEE, 0, /* 0x30 */
- 0x9EF5, 0x8EF7, 0x8A92, 0, 0, 0x924D, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0x9EEB, 0, 0xFAEF, 0x9EF0, /* 0x40 */
- 0x9EF4, 0, 0, 0x8BB4, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0x8B6B, 0x9EF2, 0, 0, 0, 0, 0, 0x8B40, /* 0x50 */
- 0, 0x93C9, 0x9EF1, 0, 0, 0, 0x9EF3, 0, /* 0x60 */
- 0, 0, 0, 0xFAEE, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0x9EED, 0xFAF0, 0, 0, 0, 0, /* 0x70 */
- 0x9EEF, 0, 0, 0, 0, 0, 0xFAF1, 0x8A80, /* 0x70 */
- 0x9268, 0, 0, 0, 0x9EFA, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0x9EF8, 0x8CE7, 0, /* 0x80 */
- 0x9EF7, 0, 0, 0, 0, 0, 0, 0x9F40, /* 0x90 */
- 0, 0, 0, 0, 0x9E77, 0, 0, 0, /* 0x90 */
- 0x9EF9, 0, 0x9EFB, 0x9EFC, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x9F4B, 0, 0x9F47, 0, 0x9E8D, 0, /* 0xA0 */
- 0, 0, 0, 0x9F46, 0, 0, 0, 0, /* 0xB0 */
- 0x9F45, 0, 0, 0x9F42, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x9EE8, 0x9F44, 0x9F43, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x9F49, 0, 0x9845, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0x9F4C, 0x8BF9, 0, 0, 0x9F48, 0x9F4A, /* 0xD0 */
- 0, 0, 0xFAF2, 0, 0xFAF3, 0, 0, 0, /* 0xE0 */
- 0x94A5, 0, 0x9F4D, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0x9F51, 0x9F4E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_6B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9793, 0x9F4F, 0, 0, /* 0x00 */
- 0, 0, 0x9EDC, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0x9F52, 0, 0, 0, 0x9F53, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0x8954, 0, 0x9F55, /* 0x10 */
- 0x8C87, 0x8E9F, 0, 0x8BD3, 0, 0, 0, 0x89A2, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x977E, 0, 0, 0, 0, 0x9F57, /* 0x30 */
- 0x9F56, 0x9F59, 0x8B5C, 0, 0, 0x8BD4, 0x8ABC, 0, /* 0x30 */
- 0, 0, 0, 0x9F5C, 0, 0, 0, 0x9F5B, /* 0x40 */
- 0, 0x9F5D, 0, 0, 0x89CC, 0, 0x9256, 0, /* 0x40 */
- 0x9F5E, 0, 0, 0x8ABD, 0x9F60, 0, 0, 0, /* 0x50 */
- 0, 0x9F5F, 0, 0x9F61, 0, 0, 0, 0x9F62, /* 0x50 */
- 0, 0x9F63, 0x8E7E, 0x90B3, 0x8D9F, 0, 0x9590, 0, /* 0x60 */
- 0, 0x95E0, 0x9863, 0, 0, 0, 0, 0x8E95, /* 0x60 */
- 0, 0, 0, 0x8DCE, 0x97F0, 0, 0, 0, /* 0x70 */
- 0x9F64, 0x9F65, 0, 0x8E80, 0, 0, 0, 0x9F66, /* 0x70 */
- 0x9F67, 0, 0, 0x9F69, 0x9F68, 0, 0x9677, 0, /* 0x80 */
- 0, 0x8F7D, 0x8EEA, 0x8E63, 0, 0x9F6A, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0x9F6C, 0x9042, 0, /* 0x90 */
- 0x9F6B, 0, 0, 0, 0, 0, 0x9F6D, 0, /* 0x90 */
- 0, 0, 0, 0, 0x9F6E, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x9F6F, 0x9F70, 0, 0, 0, 0x9F71, /* 0xA0 */
- 0, 0x9F73, 0x9F72, 0x9F74, 0x89A3, 0x9269, 0, 0x9F75, /* 0xB0 */
- 0, 0, 0x8E45, 0x8A6B, 0x9F76, 0, 0, 0x9361, /* 0xB0 */
- 0x9ACA, 0, 0, 0, 0, 0x8B42, 0x9F77, 0, /* 0xC0 */
- 0, 0, 0, 0x9F78, 0, 0x95EA, 0x9688, 0, /* 0xC0 */
- 0, 0, 0x93C5, 0x9F79, 0x94E4, 0, 0xFAF4, 0, /* 0xD0 */
- 0x94F9, 0, 0, 0x96D1, 0, 0, 0, 0x9F7A, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0x9F7C, 0x9F7B, 0, 0, 0x9F7E, /* 0xE0 */
- 0, 0, 0, 0x9F7D /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_6C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0x9F81, 0, 0, 0, 0, 0, 0, 0x8E81, /* 0x00 */
- 0, 0x96AF, 0, 0x9F82, 0x9F83, 0, 0, 0x8B43, /* 0x10 */
- 0, 0, 0, 0x9F84, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0x9F86, 0x9F85, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0x9085, 0, 0, 0x9558, /* 0x30 */
- 0x8969, 0, 0, 0, 0, 0, 0x94C3, 0xFAF5, /* 0x30 */
- 0x92F3, 0x8F60, 0x8B81, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0x94C4, 0, /* 0x40 */
- 0x8EAC, 0, 0, 0, 0, 0x9F88, 0, 0x8ABE, /* 0x50 */
- 0, 0, 0x8998, 0, 0xFAF6, 0x93F0, 0x9F87, 0x8D5D, /* 0x50 */
- 0x9272, 0, 0x9F89, 0, 0, 0, 0, 0, /* 0x60 */
- 0x9F91, 0, 0x9F8A, 0, 0, 0, 0, 0xFAF8, /* 0x60 */
- 0x91BF, 0, 0x8B82, 0x9F92, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0x8C88, 0, 0, 0x8B44, 0x9F90, 0, /* 0x70 */
- 0, 0x9F8E, 0x9F8B, 0x9780, 0, 0, 0xFAF7, 0, /* 0x80 */
- 0x92BE, 0, 0, 0, 0x93D7, 0x9F8C, 0, 0, /* 0x80 */
- 0x9F94, 0, 0x9F93, 0x8C42, 0, 0, 0x89AB, 0, /* 0x90 */
- 0, 0x8DB9, 0x9F8D, 0x9F8F, 0, 0, 0, 0, /* 0x90 */
- 0, 0x9676, 0x91F2, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x9697, 0, 0, 0x9F9C, 0, /* 0xA0 */
- 0, 0x9F9D, 0, 0x89CD, 0, 0, 0, 0, /* 0xB0 */
- 0x95A6, 0x96FB, 0x9F9F, 0x8EA1, 0x8FC0, 0x9F98, 0x9F9E, 0x8988, /* 0xB0 */
- 0, 0x8BB5, 0, 0, 0x9F95, 0x9F9A, 0, 0, /* 0xC0 */
- 0, 0x90F2, 0x9491, 0, 0x94E5, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0x9F97, 0, 0x9640, 0, 0x9F99, /* 0xD0 */
- 0, 0x9FA2, 0xFAF9, 0x9FA0, 0, 0x9F9B, 0, 0, /* 0xD0 */
- 0, 0x9641, 0x9467, 0x8B83, 0, 0x9344, 0, 0, /* 0xE0 */
- 0x928D, 0, 0x9FA3, 0, 0, 0, 0, 0x9FA1, /* 0xE0 */
- 0x91D7, 0x9F96, 0, 0x896A /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_6D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFAFA, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0x976D, 0x9FAE, 0, 0, 0, /* 0x00 */
- 0, 0, 0x9FAD, 0, 0, 0, 0, 0x90F4, /* 0x10 */
- 0, 0x9FAA, 0, 0x978C, 0, 0, 0x93B4, 0x9FA4, /* 0x10 */
- 0, 0, 0, 0, 0, 0x92C3, 0, 0, /* 0x20 */
- 0, 0x896B, 0x8D5E, 0x9FA7, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x8F46, 0x9FAC, 0, 0x9FAB, 0x9FA6, 0, /* 0x30 */
- 0x9FA9, 0, 0, 0x8A88, 0, 0x9FA8, 0x9468, 0, /* 0x30 */
- 0, 0x97AC, 0, 0, 0x8FF2, 0x90F3, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0x9FB4, 0x9FB2, 0, 0x956C, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0x9FAF, 0x9FB1, 0, 0x8959, 0, /* 0x60 */
- 0, 0x8D5F, 0x9851, 0, 0x8A5C, 0, 0x9582, 0xFAFC, /* 0x60 */
- 0, 0, 0, 0, 0x9781, 0, 0, 0x8A43, /* 0x70 */
- 0x905A, 0x9FB3, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0x9FB8, 0, 0xFAFB, /* 0x80 */
- 0x8FC1, 0, 0, 0, 0x974F, 0, 0x9FB5, 0, /* 0x80 */
- 0, 0, 0, 0x9FB0, 0, 0x9FB6, 0xFB40, 0, /* 0x90 */
- 0, 0x97DC, 0, 0x9393, 0x93C0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xFB41, 0, 0, 0x8A55, /* 0xA0 */
- 0, 0, 0x8974, 0, 0, 0x9FBC, 0, 0, /* 0xB0 */
- 0x9FBF, 0, 0, 0, 0x97C1, 0, 0, 0, /* 0xB0 */
- 0x9784, 0, 0, 0, 0, 0x9FC6, 0x9FC0, 0x9FBD, /* 0xC0 */
- 0, 0, 0, 0x97D2, 0x9FC3, 0, 0, 0xFB42, /* 0xC0 */
- 0, 0x8F69, 0x9FC5, 0, 0, 0x9FCA, 0, 0, /* 0xD0 */
- 0x9391, 0x9FC8, 0, 0, 0, 0, 0x9FC2, 0, /* 0xD0 */
- 0, 0x9257, 0, 0, 0x9FC9, 0, 0x9FBE, 0, /* 0xE0 */
- 0x9FC4, 0, 0x9FCB, 0x88FA, 0x9FC1, 0, 0x9FCC, 0, /* 0xE0 */
- 0, 0x905B, 0xFB44, 0x8F7E, 0, 0x95A3, 0, 0x8DAC, /* 0xF0 */
- 0xFB43, 0x9FB9, 0x9FC7, 0x9359, 0xFB45 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_6E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x90B4, 0, 0x8A89, /* 0x00 */
- 0x8DCF, 0x8FC2, 0x9FBB, 0x8F61, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0x8C6B, 0, 0x9FBA, 0, 0, /* 0x10 */
- 0, 0x9FD0, 0x8F8D, 0x8CB8, 0, 0x9FDF, 0, 0x9FD9, /* 0x10 */
- 0x8B94, 0x936E, 0, 0x9FD4, 0x9FDD, 0x88AD, 0x8951, 0xFB48, /* 0x20 */
- 0, 0x89B7, 0, 0x9FD6, 0x91AA, 0x9FCD, 0x9FCF, 0x8D60, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0x9FE0, 0xFB46, 0x9FDB, 0, 0xFB49, 0, 0x9FD3, 0, /* 0x30 */
- 0, 0, 0, 0x9FDA, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x96A9, 0, 0, 0x9FD8, 0x9FDC, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0x8CCE, 0, /* 0x50 */
- 0x8FC3, 0, 0, 0x9258, 0xFB47, 0, 0, 0x9FD2, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0x974E, /* 0x60 */
- 0, 0, 0, 0x9FD5, 0, 0, 0x9FCE, 0x9392, /* 0x60 */
- 0, 0, 0x9FD1, 0, 0, 0, 0x9FD7, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x9870, 0x8EBC, /* 0x70 */
- 0x969E, 0, 0x9FE1, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0x94AC, 0, 0, 0x9FED, /* 0x80 */
- 0x8CB9, 0, 0, 0, 0, 0, 0x8F80, 0, /* 0x90 */
- 0x9FE3, 0, 0, 0, 0x97AD, 0x8D61, 0, 0x9FF0, /* 0x90 */
- 0, 0, 0x88EC, 0, 0, 0x9FEE, 0, 0, /* 0xA0 */
- 0, 0, 0x9FE2, 0, 0, 0, 0, 0x9FE8, /* 0xA0 */
- 0, 0, 0x9FEA, 0, 0, 0, 0x976E, 0x9FE5, /* 0xB0 */
- 0, 0, 0x934D, 0, 0, 0x9FE7, 0, 0xFB4A, /* 0xB0 */
- 0, 0, 0x9FEF, 0, 0x9FE9, 0x96C5, 0, 0, /* 0xC0 */
- 0, 0x9FE4, 0, 0x8EA0, 0x9FFC, 0, 0, 0, /* 0xC0 */
- 0, 0x8A8A, 0, 0x9FE6, 0x9FEB, 0x9FEC, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0x91EA, 0x91D8, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0x9FF4, 0, 0, 0x9FFA, /* 0xE0 */
- 0, 0, 0x9FF8, 0, 0x9348, 0, 0, 0xE042, /* 0xF0 */
- 0x9FF5, 0, 0, 0, 0, 0, 0x9FF6, 0x9FDE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_6F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8B99, 0x9559, 0, 0, 0, 0x8EBD, 0, /* 0x00 */
- 0, 0x8D97, 0, 0, 0, 0, 0, 0x9852, /* 0x00 */
- 0, 0x9FF2, 0, 0xE041, 0x8989, 0x9186, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0x9499, 0, 0x8ABF, 0x97F8, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0x969F, 0x92D0, 0, 0, 0, /* 0x20 */
- 0, 0x9FF9, 0x9FFB, 0, 0, 0, 0, 0, /* 0x30 */
- 0x9151, 0, 0, 0, 0, 0, 0xE040, 0x9FF7, /* 0x30 */
- 0, 0x9FF1, 0, 0, 0, 0x8AC1, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0x8C89, 0, 0, 0, /* 0x50 */
- 0xE04E, 0, 0, 0xE049, 0x90F6, 0, 0, 0x8A83, /* 0x50 */
- 0, 0, 0, 0, 0x8F81, 0, 0xE052, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xE04B, 0x92AA, 0xE048, /* 0x60 */
- 0x92D7, 0, 0, 0, 0xE06B, 0, 0, 0, /* 0x70 */
- 0xE045, 0, 0xE044, 0, 0xE04D, 0, 0, 0, /* 0x70 */
- 0xE047, 0xE046, 0xE04C, 0, 0x909F, 0, 0xE043, 0, /* 0x80 */
- 0xFB4B, 0, 0, 0, 0, 0, 0xE04F, 0, /* 0x80 */
- 0, 0xE050, 0, 0, 0, 0, 0, 0x8AC0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xE055, 0, 0xE054, 0xE056, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xE059, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0x9362, 0, 0xE053, 0, 0xFB4C, 0, 0, /* 0xB0 */
- 0, 0xE057, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x8C83, 0x91F7, 0xE051, 0x945A, 0, 0, 0xE058, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xE05D, 0xE05B, 0, 0, /* 0xD0 */
- 0xE05E, 0, 0, 0xE061, 0, 0, 0, 0xE05A, /* 0xD0 */
- 0x8D8A, 0x9447, 0, 0, 0x9FB7, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0x9794, 0xE05C, 0, 0xE060, 0x91F3, /* 0xE0 */
- 0, 0xE05F, 0, 0xE04A, 0, 0xFB4D, 0xE889, 0, /* 0xF0 */
- 0, 0, 0xE064, 0, 0, 0, 0xE068 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_70[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE066, 0, 0, 0, 0xFB4E, 0, 0xFB4F, /* 0x00 */
- 0, 0xE062, 0, 0xE063, 0, 0, 0, 0xE067, /* 0x00 */
- 0, 0xE065, 0, 0, 0, 0x956D, 0, 0, /* 0x10 */
- 0xE06D, 0, 0xE06A, 0xE069, 0, 0xE06C, 0x93D2, 0xE06E, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x9295, 0x91EB, /* 0x20 */
- 0xFB50, 0, 0, 0, 0x90A3, 0, 0, 0, /* 0x20 */
- 0xE06F, 0, 0xE071, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xE070, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0x9FF3, 0, 0, 0, /* 0x40 */
- 0, 0xE072, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0x93E5, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0xE073, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0x89CE, 0, 0, 0, 0x9394, /* 0x60 */
- 0x8A44, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0x8B84, 0, 0, 0, 0x8EDC, 0x8DD0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xFB51, 0, 0, /* 0x80 */
- 0, 0x9846, 0x9086, 0, 0, 0, 0x898A, 0, /* 0x80 */
- 0, 0, 0xE075, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xE074, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xFB52, 0xE078, 0x9259, 0xE07B, 0xE076, /* 0xA0 */
- 0, 0, 0, 0xE07A, 0, 0, 0, 0, /* 0xB0 */
- 0xE079, 0x935F, 0x88D7, 0xFA62, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0x97F3, 0, 0, 0xE07D, 0, 0, 0, 0x8947, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xE080, 0, 0, 0, 0xE07E, 0, 0xE07C, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0xE077, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0x9642, 0, 0, 0, 0xE082 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_71[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFB54, 0, 0, 0, /* 0x00 */
- 0, 0xE081, 0, 0, 0, 0, 0, 0xFB53, /* 0x00 */
- 0, 0, 0, 0, 0x898B, 0, 0, 0, /* 0x10 */
- 0, 0xE084, 0x95B0, 0, 0xE083, 0, 0, 0, /* 0x10 */
- 0, 0x96B3, 0, 0, 0, 0, 0x8FC5, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0x9152, 0, /* 0x30 */
- 0, 0, 0, 0, 0x8FC4, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xFB56, 0xFB57, /* 0x40 */
- 0, 0x97F9, 0, 0, 0xE08A, 0, 0x90F7, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xE086, 0xE08B, 0, /* 0x50 */
- 0, 0x898C, 0, 0, 0xFB55, 0, 0, 0, /* 0x50 */
- 0, 0, 0xE089, 0, 0x9481, 0xE085, 0xE088, 0x8FC6, /* 0x60 */
- 0, 0x94CF, 0, 0, 0xE08C, 0, 0x8ECF, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0x90F8, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xE08F, 0, 0, 0, /* 0x80 */
- 0xE087, 0, 0x8C46, 0, 0, 0, 0, 0xE08D, /* 0x80 */
- 0, 0, 0, 0, 0x976F, 0xE090, 0, 0, /* 0x90 */
- 0, 0xEAA4, 0, 0, 0, 0, 0, 0x8F6E, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xE091, 0, 0, 0, 0xE092, 0, 0, 0, /* 0xA0 */
- 0, 0x944D, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xE094, 0, 0, 0, 0, 0xE095, 0, /* 0xB0 */
- 0, 0xFB59, 0, 0x9452, 0, 0, 0, 0, /* 0xC0 */
- 0x9395, 0xE097, 0, 0, 0, 0, 0xE099, 0, /* 0xC0 */
- 0x97D3, 0, 0xE096, 0, 0xE098, 0x898D, 0, 0xE093, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0x9A7A, /* 0xD0 */
- 0xE09A, 0, 0, 0, 0, 0x9187, 0x8E57, 0xE09C, /* 0xE0 */
- 0, 0, 0, 0, 0xE09B, 0x9043, 0x99D7, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xE09D, 0, 0, /* 0xF0 */
- 0, 0xE09F, 0, 0xE08E, 0xE09E, 0, 0xFB5A, 0xE0A0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_72[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x949A, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0xE0A1, 0, 0, /* 0x00 */
- 0xE0A2, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xE0A3, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xE0A4, 0, 0x92DC, 0, 0xE0A6, 0xE0A5, 0, 0, /* 0x20 */
- 0xE0A7, 0, 0xE0A8, 0, 0, 0x8EDD, 0x9583, 0, /* 0x30 */
- 0, 0, 0x96EA, 0xE0A9, 0xE0AA, 0x9175, 0x8EA2, 0xE0AB, /* 0x30 */
- 0xE0AC, 0, 0, 0, 0, 0, 0xE0AD, 0x95D0, /* 0x40 */
- 0x94C5, 0, 0, 0xE0AE, 0x9476, 0, 0, 0, /* 0x40 */
- 0, 0, 0x92AB, 0, 0, 0, 0, 0, /* 0x50 */
- 0xE0AF, 0x89E5, 0, 0x8B8D, 0, 0x96C4, 0, 0x96B4, /* 0x50 */
- 0, 0x89B2, 0x9853, 0, 0, 0, 0, 0x9671, /* 0x60 */
- 0, 0x95A8, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0x90B5, 0, 0xE0B0, 0, 0, 0, /* 0x70 */
- 0, 0x93C1, 0, 0, 0, 0x8CA1, 0xE0B1, 0, /* 0x70 */
- 0x8DD2, 0xE0B3, 0xE0B2, 0, 0, 0, 0, 0xE0B4, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xE0B5, 0, 0, 0, 0xE0B6, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x8B5D, 0, 0xE0B7, 0, 0, 0, 0, 0xE0B8, /* 0xA0 */
- 0, 0, 0, 0, 0x8CA2, 0, 0, 0x94C6, /* 0xA0 */
- 0, 0xFB5B, 0xE0BA, 0, 0, 0, 0x8FF3, 0, /* 0xB0 */
- 0, 0xE0B9, 0, 0, 0, 0, 0xFB5C, 0, /* 0xB0 */
- 0, 0, 0x8BB6, 0xE0BB, 0xE0BD, 0, 0xE0BC, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xE0BE, 0, /* 0xC0 */
- 0x8CCF, 0, 0xE0BF, 0, 0, 0, 0, 0x8BE7, /* 0xD0 */
- 0, 0x915F, 0, 0x8D9D, 0, 0, 0, 0, /* 0xD0 */
- 0xE0C1, 0xE0C2, 0xE0C0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0x8EEB, 0, 0, 0x93C6, 0x8BB7, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE0C4, /* 0xF0 */
- 0x924B, 0xE0C3, 0, 0, 0x9854, 0x9482 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_73[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xE0C7, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xE0C9, 0xE0C6, /* 0x10 */
- 0, 0, 0, 0x96D2, 0xE0C8, 0xE0CA, 0, 0x97C2, /* 0x10 */
- 0, 0, 0, 0, 0xFB5D, 0xE0CE, 0, 0, /* 0x20 */
- 0, 0xE0CD, 0x9296, 0x944C, 0, 0, 0x8CA3, 0xE0CC, /* 0x20 */
- 0, 0, 0, 0, 0xE0CB, 0, 0x9750, 0x9751, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xE0CF, 0x898E, /* 0x30 */
- 0, 0, 0, 0, 0x8D96, 0x8E82, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0xE0D0, 0xE0D1, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0xE0D3, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0x8F62, 0, 0, 0, 0, /* 0x60 */
- 0xE0D5, 0, 0xE0D4, 0, 0, 0, 0, 0, /* 0x60 */
- 0xE0D6, 0, 0x8A6C, 0, 0, 0xE0D8, 0, 0xFB5F, /* 0x70 */
- 0xE0D7, 0, 0xE0DA, 0xE0D9, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0x8CBA, 0, 0, 0x97A6, /* 0x80 */
- 0, 0x8BCA, 0, 0x89A4, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0x8BE8, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0x8ADF, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x97E6, 0xE0DC, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xE0DE, 0, 0xFB60, 0, 0, /* 0xB0 */
- 0xE0DF, 0, 0x89CF, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xE0DB, 0xFB61, 0x8E58, 0, 0, 0x92BF, 0xE0DD, 0, /* 0xC0 */
- 0, 0, 0xFB64, 0, 0, 0, 0xFB62, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xE0E2, 0, /* 0xD0 */
- 0x8EEC, 0, 0, 0xFB63, 0, 0xE0E0, 0, 0, /* 0xE0 */
- 0, 0, 0x8C5D, 0, 0, 0x94C7, 0xE0E1, 0, /* 0xE0 */
- 0, 0xE0FC, 0, 0, 0, 0xFB66, 0, 0, /* 0xF0 */
- 0xE0E7, 0, 0, 0, 0, 0, 0x8CBB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_74[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8B85, 0, 0xE0E4, 0x979D, 0xFB65, /* 0x00 */
- 0, 0x97AE, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x91F4, 0, 0, 0xE0E6, 0xFB67, 0, /* 0x20 */
- 0, 0xFB69, 0xFB68, 0, 0, 0, 0xFB6A, 0, /* 0x20 */
- 0, 0, 0xE0E8, 0x97D4, 0x8BD5, 0x94FA, 0x9469, 0, /* 0x30 */
- 0, 0, 0xE0E9, 0, 0, 0, 0, 0xE0EB, /* 0x30 */
- 0, 0xE0EE, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xE0EA, 0, 0, /* 0x50 */
- 0, 0xE0ED, 0x8CE8, 0x896C, 0xE0EF, 0, 0x9090, 0xE0EC, /* 0x50 */
- 0x97DA, 0, 0xFB6B, 0xE0F2, 0xEAA2, 0, 0, 0, /* 0x60 */
- 0, 0xE0F0, 0xE0F3, 0, 0, 0, 0, 0xE0E5, /* 0x60 */
- 0xE0F1, 0, 0, 0x8DBA, 0, 0, 0xE0F4, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xE0F5, 0, /* 0x70 */
- 0, 0, 0, 0x979E, 0, 0, 0, 0, /* 0x80 */
- 0, 0xFB6C, 0, 0xE0F6, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0xE0F7, 0xFB6D, /* 0x90 */
- 0, 0, 0xE0E3, 0, 0, 0, 0, 0xE0F8, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x8AC2, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x8EA3, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xE0F9, 0, 0, 0, 0, 0xE0FA, /* 0xC0 */
- 0, 0, 0, 0, 0xE0FB, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0x895A, 0, 0, 0, /* 0xD0 */
- 0xE140, 0, 0x955A, 0xE141, 0, 0, 0x8AA2, 0xE142, /* 0xE0 */
- 0, 0xE143, 0, 0, 0, 0, 0xE144, 0, /* 0xE0 */
- 0xE146, 0xE147, 0xE145, 0, 0, 0, 0x9572, 0xE149, /* 0xF0 */
- 0xE148 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_75[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFB6E, 0, 0xE14B, 0xE14A, 0xE14C, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0xE14D, 0xE14F, 0xE14E, 0, /* 0x00 */
- 0, 0x8D99, 0, 0xE151, 0, 0xE150, 0, 0, /* 0x10 */
- 0x8AC3, 0, 0x9072, 0, 0x935B, 0, 0xE152, 0x90B6, /* 0x10 */
- 0, 0, 0, 0x8E59, 0, 0x8999, 0xE153, 0, /* 0x20 */
- 0x9770, 0, 0, 0x95E1, 0xE154, 0, 0, 0xFAA8, /* 0x20 */
- 0x9363, 0x9752, 0x8D62, 0x905C, 0, 0, 0, 0x926A, /* 0x30 */
- 0x99B2, 0, 0x92AC, 0x89E6, 0xE155, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0xE156, 0, 0xE15B, 0, /* 0x40 */
- 0, 0xE159, 0xE158, 0x9DC0, 0x8A45, 0xE157, 0, 0x88D8, /* 0x40 */
- 0, 0x94A8, 0, 0, 0x94C8, 0, 0, 0, /* 0x50 */
- 0, 0x97AF, 0xE15C, 0xE15A, 0x927B, 0x90A4, 0, 0, /* 0x50 */
- 0x94A9, 0, 0x954C, 0, 0xE15E, 0x97AA, 0x8C6C, 0xE15F, /* 0x60 */
- 0, 0xE15D, 0x94D4, 0xE160, 0, 0xE161, 0, 0xFB6F, /* 0x60 */
- 0x88D9, 0, 0, 0x8FF4, 0xE166, 0, 0xE163, 0x93EB, /* 0x70 */
- 0xE162, 0, 0, 0, 0, 0, 0, 0x8B45, /* 0x70 */
- 0, 0, 0xE169, 0, 0, 0, 0xE164, 0xE165, /* 0x80 */
- 0, 0xE168, 0xE167, 0x9544, 0, 0, 0x9161, 0x9160, /* 0x80 */
- 0, 0x8B5E, 0, 0, 0xE16A, 0, 0, 0, /* 0x90 */
- 0, 0, 0xE16B, 0, 0, 0xE16C, 0, 0, /* 0x90 */
- 0, 0, 0, 0xE16E, 0, 0xE16D, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x8975, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xE176, 0x94E6, 0xE170, 0, 0xE172, 0, 0, /* 0xB0 */
- 0xE174, 0x905D, 0, 0, 0xE175, 0xE173, 0x8EBE, 0, /* 0xB0 */
- 0, 0, 0xE16F, 0xE171, 0, 0x9561, 0, 0x8FC7, /* 0xC0 */
- 0, 0, 0xE178, 0, 0, 0xE177, 0, 0, /* 0xC0 */
- 0, 0, 0xE179, 0, 0x8EA4, 0x8DAD, 0, 0, /* 0xD0 */
- 0x9397, 0xE17A, 0, 0x92C9, 0, 0, 0xE17C, 0, /* 0xD0 */
- 0, 0, 0x979F, 0xE17B, 0, 0, 0, 0, /* 0xE0 */
- 0, 0x9189, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xE182, 0, 0xE184, 0xE185, 0x9273, 0, 0, 0, /* 0xF0 */
- 0, 0, 0xE183, 0, 0xE180, 0, 0xE17D, 0xE17E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_76[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE181, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0xE188, 0, 0xE186, 0, 0xE187, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xE189, /* 0x10 */
- 0xE18B, 0xE18C, 0xE18D, 0, 0xE18E, 0, 0, 0xE18A, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xE190, 0, 0, 0, 0xE18F, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xE191, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0x97C3, 0, 0, 0, 0xE194, 0xE192, /* 0x40 */
- 0xE193, 0, 0, 0, 0x8AE0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x96FC, 0, 0, 0, 0x95C8, 0, /* 0x50 */
- 0xE196, 0, 0, 0, 0xE195, 0, 0, 0, /* 0x50 */
- 0, 0xE197, 0xE198, 0, 0, 0, 0, 0xE19C, /* 0x60 */
- 0xE199, 0xE19A, 0xE19B, 0, 0xE19D, 0, 0, 0, /* 0x60 */
- 0xE19E, 0, 0xE19F, 0, 0, 0, 0xE1A0, 0, /* 0x70 */
- 0xE1A1, 0, 0x94AD, 0x936F, 0xE1A2, 0x9492, 0x9553, 0, /* 0x70 */
- 0xE1A3, 0, 0xFB70, 0xE1A4, 0x9349, 0, 0x8A46, 0x8D63, /* 0x80 */
- 0xE1A5, 0, 0, 0xE1A6, 0, 0, 0xE1A7, 0, /* 0x80 */
- 0x8E48, 0, 0, 0xE1A9, 0, 0, 0xE1A8, 0, /* 0x90 */
- 0, 0xE1AA, 0xE1AB, 0xFB73, 0xFB71, 0, 0xFB72, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0xFB74, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0x94E7, 0, /* 0xA0 */
- 0xE1AC, 0, 0, 0, 0xE1AD, 0, 0, 0xEA89, /* 0xB0 */
- 0xE1AE, 0xE1AF, 0xE1B0, 0, 0, 0, 0, 0x8E4D, /* 0xB0 */
- 0, 0, 0xE1B1, 0x9475, 0, 0, 0x967E, 0, /* 0xC0 */
- 0x896D, 0, 0x8976, 0, 0, 0xE1B2, 0, 0, /* 0xC0 */
- 0, 0, 0xE1B4, 0, 0, 0, 0xE1B3, 0x9390, /* 0xD0 */
- 0, 0, 0, 0x90B7, 0x9F58, 0, 0xE1B5, 0x96BF, /* 0xD0 */
- 0, 0xE1B6, 0, 0x8AC4, 0x94D5, 0xE1B7, 0, 0xE1B8, /* 0xE0 */
- 0, 0, 0xE1B9, 0, 0, 0, 0x96DA, 0, /* 0xE0 */
- 0, 0, 0x96D3, 0, 0x92BC, 0, 0, 0, /* 0xF0 */
- 0x918A, 0, 0, 0xE1BB, 0, 0, 0x8F82 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_77[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8FC8, 0, 0, 0xE1BE, 0, 0, 0xE1BD, /* 0x00 */
- 0xE1BC, 0x94FB, 0, 0x8AC5, 0x8CA7, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xE1C4, 0, 0, 0xE1C1, 0x905E, /* 0x10 */
- 0x96B0, 0, 0, 0, 0xE1C0, 0xE1C2, 0xE1C3, 0, /* 0x20 */
- 0, 0xE1BF, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0xE1C5, /* 0x30 */
- 0xE1C6, 0, 0x92AD, 0, 0x8AE1, 0, 0, 0, /* 0x30 */
- 0x9285, 0, 0, 0, 0, 0, 0xFB76, 0xE1C7, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0xE1C8, 0xE1CB, 0, 0, 0, 0, /* 0x50 */
- 0, 0x9087, 0, 0x93C2, 0, 0xE1CC, 0x9672, 0, /* 0x60 */
- 0xE1C9, 0, 0, 0xE1CA, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xE1CF, 0, 0, 0, 0, 0xE1CE, 0xE1CD, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xE1D1, 0, 0, 0xE1D0, 0, /* 0x80 */
- 0, 0xE1D2, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0xE1D4, 0, /* 0x90 */
- 0xE1D3, 0, 0, 0, 0, 0x95CB, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x8F75, 0x97C4, 0, 0, /* 0xA0 */
- 0xE1D5, 0, 0, 0x93B5, 0, 0, 0xE1D6, 0, /* 0xB0 */
- 0, 0xE1D7, 0, 0xE1DB, 0xE1D9, 0xE1DA, 0, 0xE1D8, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE1DC, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xE1DD, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE1DE, /* 0xD0 */
- 0, 0, 0xE1DF, 0x96B5, 0xE1E0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0x96EE, 0xE1E1, 0, 0x926D, 0, 0x948A, /* 0xE0 */
- 0, 0x8BE9, 0, 0, 0, 0x925A, 0xE1E2, 0x8BB8, /* 0xE0 */
- 0, 0, 0, 0x90CE, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0xE1E3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_78[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8DBB, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0xE1E4, 0, 0, 0, /* 0x00 */
- 0, 0, 0xE1E5, 0, 0x8CA4, 0x8DD3, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xE1E7, 0xFB78, 0, 0, 0, 0x9375, 0x8DD4, 0x8B6D, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x9643, 0, 0x946A, 0, 0, 0, /* 0x30 */
- 0, 0, 0x9376, 0, 0, 0, 0, 0x8D7B, /* 0x30 */
- 0, 0, 0, 0, 0, 0xE1E9, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0xFB79, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0x8FC9, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0xFB7A, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0x97B0, 0x8D64, 0, 0, 0x8CA5, /* 0x60 */
- 0, 0, 0x94A1, 0, 0xE1EB, 0, 0, 0, /* 0x70 */
- 0, 0, 0xFB7B, 0, 0xE1ED, 0, 0, 0, /* 0x70 */
- 0, 0x8CE9, 0, 0, 0, 0, 0xE1EC, 0x92F4, /* 0x80 */
- 0, 0, 0, 0, 0xE1EF, 0x8A56, 0xE1EA, 0, /* 0x80 */
- 0, 0x94E8, 0, 0x894F, 0, 0x8DEA, 0, 0x9871, /* 0x90 */
- 0, 0, 0xE1EE, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xE1F0, 0, 0, 0, 0x95C9, /* 0xA0 */
- 0, 0x90D7, 0xE1F2, 0, 0, 0, 0, 0xE1F3, /* 0xA0 */
- 0, 0, 0, 0, 0, 0xE1F1, 0, 0, /* 0xB0 */
- 0, 0, 0x8A6D, 0, 0xE1F9, 0, 0xE1F8, 0, /* 0xB0 */
- 0, 0x8EA5, 0, 0, 0, 0xE1FA, 0xE1F5, 0, /* 0xC0 */
- 0, 0, 0xE1FB, 0xE1F6, 0, 0, 0, 0, /* 0xC0 */
- 0x94D6, 0xE1F4, 0, 0, 0xE1F7, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xE241, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE240, /* 0xE0 */
- 0x9681, 0, 0, 0, 0xE1FC, 0, 0, 0x88E9, /* 0xE0 */
- 0, 0, 0, 0, 0xE243, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0xE242 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_79[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8FCA, 0, 0, 0, 0, 0, 0xE244, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0x9162, 0, /* 0x00 */
- 0, 0xE246, 0xE245, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xE247, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xE1E6, 0, /* 0x20 */
- 0, 0, 0xE1E8, 0xE249, 0xE248, 0, 0, 0, /* 0x20 */
- 0xFB7C, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0x8EA6, 0, 0x97E7, 0, 0x8ED0, 0, /* 0x30 */
- 0xE24A, 0x8C56, 0, 0, 0, 0, 0, 0x8B5F, /* 0x40 */
- 0x8B46, 0x8E83, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0x9753, 0, 0, 0xE250, 0, 0xE24F, 0x9163, 0xE24C, /* 0x50 */
- 0, 0, 0xE24E, 0, 0, 0x8F6A, 0x905F, 0xE24D, /* 0x50 */
- 0xE24B, 0, 0x9449, 0, 0, 0x8FCB, 0, 0, /* 0x60 */
- 0x955B, 0, 0, 0, 0, 0x8DD5, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0x9398, /* 0x70 */
- 0, 0, 0xE251, 0, 0, 0, 0, 0xE252, /* 0x70 */
- 0xE268, 0x8BD6, 0, 0, 0x985C, 0x9154, 0, 0, /* 0x80 */
- 0, 0, 0xE253, 0, 0, 0x89D0, 0x92F5, 0x959F, /* 0x80 */
- 0, 0, 0, 0, 0xFB81, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xFB83, 0, 0xE254, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0x8B9A, 0xE255, /* 0xA0 */
- 0, 0, 0xE257, 0, 0, 0, 0xE258, 0, /* 0xA0 */
- 0x9448, 0, 0, 0xE259, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xE25A, 0xE25B, 0, 0, 0x8BD7, 0x89D1, 0x93C3, /* 0xB0 */
- 0x8F47, 0x8E84, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xE25C, 0, 0x8F48, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x89C8, 0x9562, 0, 0, 0xE25D, 0, 0, /* 0xD0 */
- 0x94E9, 0, 0, 0, 0, 0, 0, 0x9164, /* 0xD0 */
- 0, 0xE260, 0, 0xE261, 0x9489, 0, 0x9060, 0xE25E, /* 0xE0 */
- 0, 0x9281, 0, 0, 0xE25F, 0, 0, 0, /* 0xE0 */
- 0x8FCC, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0x88DA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_7A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8B48, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0xE262, 0, 0, 0x92F6, 0, 0xE263, 0x90C5, 0, /* 0x00 */
- 0, 0, 0, 0, 0x96AB, 0, 0, 0x9542, /* 0x10 */
- 0xE264, 0xE265, 0x9274, 0, 0x97C5, 0, 0, 0xE267, /* 0x10 */
- 0xE266, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0x8EED, 0, /* 0x20 */
- 0, 0xE269, 0x88EE, 0, 0, 0, 0, 0xE26C, /* 0x30 */
- 0, 0, 0, 0xE26A, 0x89D2, 0x8C6D, 0xE26B, 0x8D65, /* 0x30 */
- 0x8D92, 0, 0x95E4, 0xE26D, 0, 0, 0x9673, 0, /* 0x40 */
- 0, 0xE26F, 0, 0, 0, 0x90CF, 0x896E, 0x89B8, /* 0x40 */
- 0x88AA, 0, 0, 0, 0, 0, 0, 0xE26E, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xE270, 0xE271, 0x8FF5, 0, 0, 0, 0, /* 0x60 */
- 0, 0xE272, 0, 0x8A6E, 0, 0, 0, 0, /* 0x60 */
- 0xE274, 0, 0, 0, 0x8C8A, 0, 0x8B86, 0, /* 0x70 */
- 0, 0xE275, 0x8BF3, 0, 0, 0xE276, 0, 0x90FA, /* 0x70 */
- 0, 0x93CB, 0, 0x90DE, 0x8DF3, 0, 0, 0, /* 0x80 */
- 0xE277, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0x9282, 0x918B, 0, 0xE279, 0xE27B, 0xE278, /* 0x90 */
- 0xE27A, 0, 0, 0, 0, 0, 0, 0x8C41, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xE27C, 0x8C45, 0, 0, 0, 0x8B87, 0x9771, /* 0xA0 */
- 0xE27E, 0, 0, 0, 0, 0, 0xE280, 0, /* 0xB0 */
- 0, 0, 0x894D, 0, 0, 0, 0, 0xE283, /* 0xB0 */
- 0, 0, 0, 0x8A96, 0xE282, 0xE281, 0, 0xE285, /* 0xC0 */
- 0xE27D, 0, 0xE286, 0x97A7, 0, 0xE287, 0, 0xE288, /* 0xC0 */
- 0, 0xFB84, 0x9AF2, 0xE28A, 0, 0xE289, 0, 0, /* 0xD0 */
- 0, 0xE28B, 0xE28C, 0, 0x97B3, 0xE28D, 0, 0xE8ED, /* 0xD0 */
- 0x8FCD, 0xE28E, 0xE28F, 0x8F76, 0, 0x93B6, 0xE290, 0xFB85, /* 0xE0 */
- 0, 0, 0x9247, 0xFB87, 0, 0xE291, 0, 0x925B, /* 0xE0 */
- 0xE292, 0, 0, 0, 0, 0, 0x8BA3, 0, /* 0xF0 */
- 0x995E, 0x927C, 0x8EB1, 0, 0, 0, 0, 0x8AC6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_7B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE293, 0, 0xE2A0, 0, 0xE296, 0, /* 0x00 */
- 0x8B88, 0, 0xE295, 0xE2A2, 0, 0, 0, 0xE294, /* 0x00 */
- 0, 0x8FCE, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xE298, 0xE299, 0, 0x934A, 0, 0, 0xE29A, 0, /* 0x10 */
- 0x8A7D, 0, 0, 0, 0, 0x9079, 0x9584, 0, /* 0x20 */
- 0xE29C, 0, 0, 0, 0x91E6, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xE297, 0, 0xE29B, 0xE29D, 0, /* 0x30 */
- 0, 0x8DF9, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xE2A4, 0x954D, 0, /* 0x40 */
- 0x94A4, 0x9399, 0, 0x8BD8, 0xE2A3, 0xE2A1, 0, 0x94B3, /* 0x40 */
- 0xE29E, 0x927D, 0x939B, 0, 0x939A, 0, 0x8DF4, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xE2B6, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xE2A6, 0, 0xE2A8, /* 0x60 */
- 0, 0, 0, 0, 0xE2AB, 0, 0xE2AC, 0, /* 0x60 */
- 0xE2A9, 0xE2AA, 0, 0, 0xE2A7, 0xE2A5, 0, 0, /* 0x70 */
- 0, 0, 0xE29F, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x95CD, 0x89D3, /* 0x80 */
- 0, 0, 0, 0xE2B3, 0, 0xE2B0, 0, 0xE2B5, /* 0x80 */
- 0, 0, 0xE2B4, 0, 0x9493, 0x96A5, 0, 0x8E5A, /* 0x90 */
- 0xE2AE, 0xE2B7, 0xE2B2, 0, 0xE2B1, 0xE2AD, 0xFB88, 0xE2AF, /* 0x90 */
- 0, 0x8AC7, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x925C, 0, 0, 0x90FB, 0, 0, /* 0xA0 */
- 0, 0x94A0, 0, 0, 0xE2BC, 0, 0, 0, /* 0xB0 */
- 0x94A2, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x90DF, 0xE2B9, 0, 0, 0x94CD, 0, 0xE2BD, 0x95D1, /* 0xC0 */
- 0, 0x927A, 0, 0xE2B8, 0xE2BA, 0, 0, 0xE2BB, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xE2BE, 0, 0, /* 0xD0 */
- 0x8EC2, 0, 0, 0, 0x93C4, 0xE2C3, 0xE2C2, 0, /* 0xE0 */
- 0, 0xE2BF, 0, 0, 0, 0x9855, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xE2C8, 0, 0, 0xE2CC, 0xE2C9, /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_7C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE2C5, 0, 0, 0, 0, 0, 0, 0xE2C6, /* 0x00 */
- 0, 0, 0, 0, 0, 0xE2CB, 0, 0, /* 0x00 */
- 0, 0xE2C0, 0x99D3, 0xE2C7, 0xE2C1, 0, 0, 0xE2CA, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xE2D0, /* 0x10 */
- 0, 0x8AC8, 0, 0xE2CD, 0, 0, 0, 0xE2CE, /* 0x20 */
- 0, 0, 0xE2CF, 0xE2D2, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0xE2D1, /* 0x30 */
- 0x94F4, 0, 0, 0, 0, 0xE2D3, 0x97FA, 0x95EB, /* 0x30 */
- 0xE2D8, 0, 0, 0xE2D5, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xE2D4, 0x90D0, 0, 0xE2D7, /* 0x40 */
- 0xE2D9, 0, 0, 0, 0xE2D6, 0, 0xE2DD, 0, /* 0x50 */
- 0xE2DA, 0, 0, 0, 0, 0, 0, 0xE2DB, /* 0x50 */
- 0xE2C4, 0, 0, 0, 0xE2DC, 0xE2DE, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xE2DF, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0x95C4, 0, 0xE2E0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x96E0, 0, /* 0x70 */
- 0, 0x8BCC, 0x8C48, 0xE2E1, 0, 0, 0, 0, /* 0x80 */
- 0, 0x95B2, 0, 0x9088, 0, 0x96AE, 0, 0, /* 0x80 */
- 0xE2E2, 0, 0x97B1, 0, 0, 0x9494, 0, 0x9165, /* 0x90 */
- 0x9453, 0, 0, 0x8F6C, 0, 0, 0, 0x88BE, /* 0x90 */
- 0, 0xE2E7, 0xE2E5, 0, 0xE2E3, 0x8A9F, 0, 0x8FCF, /* 0xA0 */
- 0xE2E8, 0, 0, 0xE2E6, 0, 0xE2E4, 0xE2EC, 0, /* 0xA0 */
- 0, 0xE2EB, 0xE2EA, 0xE2E9, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xE2ED, 0, 0, 0, 0xE2EE, 0x90B8, 0, /* 0xB0 */
- 0xE2EF, 0, 0xE2F1, 0, 0, 0xE2F0, 0, 0, /* 0xC0 */
- 0, 0, 0x8CD0, 0, 0, 0, 0x9157, 0, /* 0xC0 */
- 0, 0, 0xE2F3, 0, 0, 0, 0x939C, 0, /* 0xD0 */
- 0xE2F2, 0, 0, 0, 0xE2F4, 0, 0x95B3, 0x918C, /* 0xD0 */
- 0x8D66, 0, 0xE2F5, 0, 0, 0, 0, 0x97C6, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE2F7, /* 0xE0 */
- 0, 0, 0xE2F8, 0, 0xE2F9, 0, 0xE2FA, 0, /* 0xF0 */
- 0x8E85, 0, 0xE2FB, 0x8C6E, 0, 0, 0x8B8A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_7D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8B49, 0, 0xE340, 0, 0x96F1, 0x8D67, 0xE2FC, 0, /* 0x00 */
- 0, 0, 0xE343, 0x96E4, 0, 0x945B, 0, 0, /* 0x00 */
- 0x9552, 0, 0, 0, 0x8F83, 0xE342, 0, 0x8ED1, /* 0x10 */
- 0x8D68, 0x8E86, 0x8B89, 0x95B4, 0xE341, 0, 0, 0, /* 0x10 */
- 0x9166, 0x9661, 0x8DF5, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0x8E87, 0x92DB, 0, 0xE346, 0x97DD, /* 0x20 */
- 0x8DD7, 0, 0xE347, 0x9061, 0, 0xE349, 0, 0, /* 0x30 */
- 0, 0x8FD0, 0x8DAE, 0, 0, 0, 0, 0xE348, /* 0x30 */
- 0, 0, 0x8F49, 0x8CBC, 0x9167, 0xE344, 0xE34A, 0, /* 0x40 */
- 0xFB8A, 0, 0, 0xE345, 0x8C6F, 0, 0xE34D, 0xE351, /* 0x40 */
- 0x8C8B, 0, 0, 0, 0, 0, 0xE34C, 0, /* 0x50 */
- 0, 0, 0, 0xE355, 0xFB8B, 0, 0x8D69, 0, /* 0x50 */
- 0, 0x978D, 0x88BA, 0xE352, 0, 0, 0x8B8B, 0, /* 0x60 */
- 0xE34F, 0, 0, 0, 0, 0, 0xE350, 0, /* 0x60 */
- 0, 0x939D, 0xE34E, 0xE34B, 0, 0x8A47, 0x90E2, 0, /* 0x70 */
- 0, 0x8CA6, 0, 0, 0, 0xE357, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xE354, 0, 0, 0, 0, 0, 0xE356, /* 0x80 */
- 0, 0, 0, 0xE353, 0, 0, 0, 0, /* 0x90 */
- 0, 0x8C70, 0x91B1, 0xE358, 0x918E, 0, 0, 0xE365, /* 0x90 */
- 0xFB8D, 0, 0xE361, 0xE35B, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xE35F, 0x8EF8, 0x88DB, 0xE35A, 0xE362, /* 0xA0 */
- 0xE366, 0x8D6A, 0x96D4, 0, 0x92D4, 0xE35C, 0, 0xFB8C, /* 0xB0 */
- 0xE364, 0, 0xE359, 0x925D, 0, 0xE35E, 0x88BB, 0x96C8, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE35D, /* 0xC0 */
- 0, 0, 0x8BD9, 0x94EA, 0, 0, 0, 0x918D, /* 0xC0 */
- 0, 0x97CE, 0x8F8F, 0, 0, 0xE38E, 0xFB8E, 0, /* 0xD0 */
- 0xE367, 0, 0x90FC, 0, 0xE363, 0xE368, 0xE36A, 0, /* 0xD0 */
- 0x92F7, 0xE36D, 0, 0, 0xE369, 0, 0, 0, /* 0xE0 */
- 0x95D2, 0x8AC9, 0, 0, 0x96C9, 0, 0, 0x88DC, /* 0xE0 */
- 0, 0, 0xE36C, 0, 0x97FB, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0xE36B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_7E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x898F, 0, 0, 0x93EA, 0xE36E, 0, 0, /* 0x00 */
- 0, 0xE375, 0xE36F, 0xE376, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xE372, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0x949B, 0, 0, 0x8EC8, 0xE374, /* 0x10 */
- 0, 0xE371, 0xE377, 0xE370, 0, 0, 0x8F63, 0, /* 0x20 */
- 0, 0, 0, 0x9644, 0, 0, 0x8F6B, 0, /* 0x20 */
- 0, 0xE373, 0xE380, 0, 0, 0xE37B, 0, 0xE37E, /* 0x30 */
- 0, 0xE37C, 0xE381, 0xE37A, 0, 0xE360, 0x90D1, 0, /* 0x30 */
- 0, 0x94C9, 0, 0xE37D, 0, 0, 0xE378, 0, /* 0x40 */
- 0, 0, 0x9140, 0x8C71, 0, 0x8F4A, 0, 0, /* 0x40 */
- 0, 0, 0xFB8F, 0, 0x9044, 0x9155, 0xE384, 0, /* 0x50 */
- 0, 0xE386, 0xE387, 0, 0, 0xE383, 0xE385, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xE379, 0xE382, /* 0x60 */
- 0, 0xE38A, 0xE389, 0, 0, 0x969A, 0, 0, /* 0x60 */
- 0x8C4A, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xE388, 0, 0xE38C, 0xE38B, 0xE38F, 0, 0xE391, /* 0x70 */
- 0, 0, 0x8E5B, 0xE38D, 0, 0, 0, 0, /* 0x80 */
- 0xE392, 0xE393, 0xFA5C, 0, 0xE394, 0, 0xE39A, 0x935A, /* 0x80 */
- 0xE396, 0, 0xE395, 0xE397, 0xE398, 0, 0xE399, 0, /* 0x90 */
- 0, 0, 0, 0xE39B, 0xE39C /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_7F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8ACA, 0, /* 0x30 */
- 0xE39D, 0, 0xE39E, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xE39F, 0, 0xFB90, /* 0x40 */
- 0, 0, 0, 0, 0xE3A0, 0xE3A1, 0xE3A2, 0, /* 0x40 */
- 0xE3A3, 0xE3A4, 0, 0, 0xE3A6, 0xE3A5, 0, 0, /* 0x50 */
- 0xE3A7, 0, 0, 0, 0, 0, 0, 0xE3A8, /* 0x50 */
- 0xE3A9, 0, 0, 0, 0, 0, 0, 0xE3AC, /* 0x60 */
- 0xE3AA, 0xE3AB, 0x8DDF, 0x8C72, 0, 0, 0x9275, 0, /* 0x60 */
- 0x94B1, 0, 0x8F90, 0, 0, 0x946C, 0, 0x94EB, /* 0x70 */
- 0xE3AD, 0x9CEB, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xE3AE, 0xE3B0, 0, 0x9785, 0xE3AF, 0xE3B2, /* 0x80 */
- 0xE3B1, 0, 0x9772, 0, 0xE3B3, 0, 0x94FC, 0, /* 0x80 */
- 0, 0, 0, 0, 0xE3B4, 0, 0, 0, /* 0x90 */
- 0, 0, 0xE3B7, 0, 0, 0xE3B6, 0xE3B5, 0, /* 0x90 */
- 0, 0xFB91, 0, 0xE3B8, 0x8C51, 0, 0, 0, /* 0xA0 */
- 0x9141, 0x8B60, 0, 0, 0, 0, 0xE3BC, 0xE3B9, /* 0xA0 */
- 0, 0, 0xE3BA, 0, 0, 0, 0xE3BD, 0, /* 0xB0 */
- 0xE3BE, 0xE3BB, 0, 0, 0, 0x8948, 0, 0, /* 0xB0 */
- 0, 0x89A5, 0, 0, 0, 0xE3C0, 0xE3C1, 0, /* 0xC0 */
- 0, 0, 0xE3C2, 0, 0x9782, 0, 0, 0, /* 0xC0 */
- 0, 0, 0x8F4B, 0, 0xE3C4, 0xE3C3, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x9089, 0xE3C5, 0, 0, 0, 0, 0xE3C6, 0, /* 0xE0 */
- 0, 0xE3C7, 0, 0x8AE3, 0, 0, 0, 0, /* 0xE0 */
- 0x8ACB, 0, 0, 0xE3C8, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xE3C9, 0, 0x967C, 0x9783 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_80[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9773, 0x9856, 0, 0x8D6C, 0xE3CC, 0x8ED2, 0xE3CB, 0, /* 0x00 */
- 0, 0, 0, 0xE3CD, 0x8EA7, 0, 0, 0, /* 0x00 */
- 0x91CF, 0, 0xE3CE, 0, 0, 0x8D6B, 0, 0x96D5, /* 0x10 */
- 0xE3CF, 0xE3D0, 0, 0, 0xE3D1, 0, 0, 0, /* 0x10 */
- 0, 0xE3D2, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xE3D3, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0x8EA8, 0, 0, 0x96EB, 0, /* 0x30 */
- 0, 0, 0, 0xE3D5, 0, 0x925E, 0, 0xE3D4, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xE3D7, 0, /* 0x40 */
- 0, 0, 0xE3D6, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xE3D8, 0, 0, 0, 0x90B9, 0, /* 0x50 */
- 0xE3D9, 0, 0xE3DA, 0, 0, 0, 0x95B7, 0xE3DB, /* 0x50 */
- 0, 0x918F, 0xE3DC, 0, 0, 0, 0, 0, /* 0x60 */
- 0xE3DD, 0, 0, 0, 0, 0, 0, 0x97FC, /* 0x60 */
- 0xE3E0, 0, 0xE3DF, 0xE3DE, 0x92AE, 0, 0xE3E1, 0x9045, /* 0x70 */
- 0, 0xE3E2, 0, 0, 0, 0xE3E3, 0x9857, 0xE3E4, /* 0x70 */
- 0, 0, 0, 0, 0xE3E5, 0xE3E7, 0xE3E6, 0x94A3, /* 0x80 */
- 0, 0x93F7, 0, 0x985D, 0x94A7, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xE3E9, 0, 0, 0x8FD1, 0, /* 0x90 */
- 0x9549, 0, 0xE3EA, 0xE3E8, 0, 0x8ACC, 0, 0, /* 0x90 */
- 0, 0x8CD2, 0x8E88, 0, 0, 0x94EC, 0, 0, /* 0xA0 */
- 0, 0x8CA8, 0x9662, 0, 0xE3ED, 0xE3EB, 0, 0x8D6D, /* 0xA0 */
- 0, 0x8D6E, 0x88E7, 0, 0x8DE6, 0, 0, 0, /* 0xB0 */
- 0, 0, 0x9478, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x88DD, 0xE3F2, 0, 0x925F, 0, /* 0xC0 */
- 0, 0, 0, 0, 0x9477, 0, 0x91D9, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xE3F4, 0, /* 0xD0 */
- 0, 0xE3F0, 0xE3F3, 0xE3EE, 0, 0xE3F1, 0x9645, 0, /* 0xD0 */
- 0, 0x8CD3, 0, 0, 0x88FB, 0xE3EF, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE3F6, /* 0xE0 */
- 0, 0xE3F7, 0, 0, 0x93B7, 0, 0, 0, /* 0xF0 */
- 0x8BB9, 0, 0, 0, 0xE445, 0x945C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_81[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8E89, 0, 0, 0x8BBA, 0x90C6, 0x9865, /* 0x00 */
- 0x96AC, 0xE3F5, 0x90D2, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x8B72, 0xE3F8, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xE3FA, 0, 0, 0, 0, /* 0x20 */
- 0, 0xE3F9, 0, 0, 0, 0, 0, 0xE3FB, /* 0x20 */
- 0, 0x9245, 0, 0x945D, 0, 0, 0, 0, /* 0x30 */
- 0, 0x92AF, 0, 0, 0, 0, 0xE442, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xE441, 0, /* 0x40 */
- 0, 0, 0, 0xE3FC, 0, 0, 0x9074, 0, /* 0x40 */
- 0x9585, 0xE444, 0, 0xE443, 0x8D6F, 0x9872, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xE454, /* 0x50 */
- 0, 0, 0, 0, 0, 0xE448, 0xE449, 0, /* 0x60 */
- 0, 0, 0, 0x8EEE, 0, 0, 0xE447, 0, /* 0x60 */
- 0x8D98, 0xE446, 0, 0, 0xE44A, 0, 0, 0, /* 0x70 */
- 0x92B0, 0x95A0, 0x9142, 0, 0, 0, 0, 0x91DA, /* 0x70 */
- 0xE44E, 0, 0xE44F, 0xE44B, 0, 0, 0, 0, /* 0x80 */
- 0xE44C, 0, 0xE44D, 0, 0, 0, 0, 0x8D70, /* 0x80 */
- 0, 0, 0, 0xE455, 0, 0xE451, 0, 0, /* 0x90 */
- 0, 0, 0x9586, 0, 0x968C, 0x9547, 0, 0, /* 0x90 */
- 0xE450, 0, 0, 0xE453, 0xE452, 0, 0, 0, /* 0xA0 */
- 0x9663, 0xE456, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xE457, 0, 0, 0x9156, 0, 0xE458, 0, 0, /* 0xB0 */
- 0xE45A, 0, 0xE45E, 0, 0, 0xE45B, 0xE459, 0x945E, /* 0xB0 */
- 0xE45C, 0, 0xE45D, 0, 0, 0, 0x89B0, 0, /* 0xC0 */
- 0xE464, 0xE45F, 0, 0, 0, 0xE460, 0, 0, /* 0xC0 */
- 0, 0xE461, 0, 0x919F, 0, 0, 0, 0, /* 0xD0 */
- 0xE463, 0xE462, 0xE465, 0, 0, 0, 0, 0xE466, /* 0xD0 */
- 0xE467, 0, 0, 0x9062, 0, 0x89E7, 0, 0xE468, /* 0xE0 */
- 0x97D5, 0, 0x8EA9, 0, 0, 0x8F4C, 0, 0, /* 0xE0 */
- 0, 0, 0, 0x8E8A, 0x9276, 0, 0, 0, /* 0xF0 */
- 0, 0, 0xE469, 0xE46A, 0x8950, 0, 0xE46B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_82[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE46C, 0xE46D, 0, 0, 0xE46E, 0, 0xE46F, /* 0x00 */
- 0x8BBB, 0x9DA8, 0xE470, 0, 0x90E3, 0xE471, 0x8EC9, 0, /* 0x00 */
- 0xE472, 0, 0x98AE, 0, 0, 0, 0xE473, 0x95DC, /* 0x10 */
- 0x8ADA, 0, 0, 0x9143, 0x8F77, 0, 0x9591, 0x8F4D, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xE474, 0x8D71, 0xE475, 0x94CA, 0, 0xE484, 0, /* 0x20 */
- 0, 0, 0, 0xE477, 0, 0x91C7, 0x9495, 0x8CBD, /* 0x30 */
- 0xE476, 0x9144, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xE478, 0, 0, 0, 0, 0, 0, 0x92F8, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xE47A, 0xE479, 0xE47C, 0, 0, 0xE47B, 0, 0xE47D, /* 0x50 */
- 0, 0, 0xE480, 0, 0xE47E, 0, 0x8ACD, 0, /* 0x60 */
- 0xE481, 0, 0xE482, 0xE483, 0, 0, 0x8DAF, 0x97C7, /* 0x60 */
- 0, 0xE485, 0x9046, 0, 0, 0, 0x8990, 0xE486, /* 0x70 */
- 0xE487, 0, 0, 0, 0, 0, 0xE488, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x88F0, 0, 0xE489, 0, 0, /* 0x80 */
- 0, 0, 0xE48A, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x9587, 0, 0, 0, 0x8EC5, 0, 0xE48C, /* 0x90 */
- 0, 0, 0, 0, 0, 0x8A48, 0x88B0, 0, /* 0xA0 */
- 0, 0, 0, 0xE48B, 0xE48E, 0x946D, 0, 0x9063, /* 0xA0 */
- 0, 0x89D4, 0, 0x9646, 0, 0, 0, 0, /* 0xB0 */
- 0x8C7C, 0x8BDA, 0, 0xE48D, 0, 0x89E8, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x8AA1, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x8991, 0xE492, 0x97E8, 0x91DB, 0, 0, 0x9563, /* 0xD0 */
- 0, 0xE49E, 0, 0x89D5, 0xE49C, 0, 0xE49A, 0xE491, /* 0xD0 */
- 0, 0xE48F, 0, 0xE490, 0, 0x8EE1, 0x8BEA, 0x9297, /* 0xE0 */
- 0, 0, 0, 0x93CF, 0, 0, 0, 0, /* 0xE0 */
- 0, 0x8970, 0, 0xE494, 0xE493, 0, 0, 0, /* 0xF0 */
- 0, 0xE499, 0xE495, 0xE498 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_83[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFB93, 0x96CE, 0xE497, 0x89D6, 0x8A9D, 0xE49B, 0, /* 0x00 */
- 0, 0xE49D, 0, 0, 0, 0, 0x8C73, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xE4A1, 0xE4AA, /* 0x10 */
- 0xE4AB, 0, 0, 0, 0x88A9, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xE4B2, 0, 0, 0, 0, /* 0x20 */
- 0x88EF, 0, 0, 0xE4A9, 0, 0, 0, 0xE4A8, /* 0x20 */
- 0, 0xE4A3, 0xE4A2, 0, 0xE4A0, 0xE49F, 0x9283, 0, /* 0x30 */
- 0x91F9, 0xE4A5, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xE4A4, 0, 0, 0, 0, 0xE4A7, 0, 0, /* 0x40 */
- 0, 0x9190, 0x8C74, 0, 0, 0, 0, 0x8960, /* 0x40 */
- 0xE4A6, 0, 0x8D72, 0, 0, 0, 0, 0, /* 0x50 */
- 0x9191, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0xFB94, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xE4B8, 0, 0xE4B9, 0, 0x89D7, /* 0x70 */
- 0, 0, 0, 0x89AC, 0xE4B6, 0, 0, 0xFB95, /* 0x70 */
- 0, 0, 0, 0, 0, 0xE4AC, 0, 0xE4B4, /* 0x80 */
- 0, 0xE4BB, 0xE4B5, 0, 0, 0, 0xE4B3, 0, /* 0x80 */
- 0, 0, 0, 0xE496, 0, 0, 0xE4B1, 0, /* 0x90 */
- 0, 0, 0xE4AD, 0, 0, 0, 0x8ACE, 0xE4AF, /* 0x90 */
- 0xE4BA, 0, 0xE4B0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xE4BC, 0, 0xE4AE, 0x949C, 0, 0, 0, 0, /* 0xA0 */
- 0, 0x9789, 0, 0, 0, 0xE4B7, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xE4CD, 0, 0, /* 0xB0 */
- 0, 0xE4C5, 0, 0, 0, 0x909B, 0, 0xFB96, /* 0xC0 */
- 0, 0, 0x8B65, 0, 0x8BDB, 0, 0xE4C0, 0, /* 0xC0 */
- 0, 0, 0, 0x89D9, 0, 0, 0x8FD2, 0, /* 0xD0 */
- 0xE4C3, 0, 0, 0, 0x8DD8, 0, 0, 0x9370, /* 0xD0 */
- 0xE4C8, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0x95EC, 0, 0xE4BF, 0, 0, 0, 0x89D8, /* 0xE0 */
- 0x8CD4, 0x9548, 0xE4C9, 0, 0xE4BD, 0, 0xFB97, 0xE4C6, /* 0xF0 */
- 0, 0, 0, 0xE4D0, 0, 0xE4C1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_84[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE4C2, 0x93B8, 0, 0, 0xE4C7, /* 0x00 */
- 0, 0, 0, 0xE4C4, 0x9647, 0xE4CA, 0x88DE, 0, /* 0x00 */
- 0, 0, 0, 0xE4BE, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xE4CC, 0, 0xE4CB, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0x948B, 0xE4D2, 0, 0xE4DD, 0, 0, 0, /* 0x20 */
- 0, 0x8A9E, 0, 0, 0, 0xE4E0, 0, 0, /* 0x30 */
- 0xE4CE, 0, 0, 0, 0xE4D3, 0x978E, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xE4DC, 0, /* 0x40 */
- 0xFB98, 0x9774, 0, 0, 0, 0, 0x97A8, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0x9298, /* 0x50 */
- 0, 0, 0, 0x8A8B, 0, 0, 0, 0, /* 0x50 */
- 0, 0x9592, 0xE4E2, 0x939F, 0, 0, 0x88AF, 0, /* 0x60 */
- 0, 0xE4DB, 0, 0xE4D7, 0x9192, 0xE4D1, 0xE4D9, 0xE4DE, /* 0x60 */
- 0, 0x944B, 0, 0, 0, 0x88A8, 0, 0xE4D6, /* 0x70 */
- 0, 0xE4DF, 0x9598, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xE4DA, 0, 0xE4D5, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x8FD3, 0, 0, 0, 0, /* 0x80 */
- 0x8F4E, 0, 0, 0, 0x8EAA, 0, 0, 0, /* 0x90 */
- 0, 0x96D6, 0, 0, 0x9566, 0, 0, 0xE4E5, /* 0x90 */
- 0, 0xE4EE, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0xE4D8, 0, 0, /* 0xA0 */
- 0, 0, 0x8A97, 0, 0xFB99, 0, 0, 0, /* 0xB0 */
- 0x8FF6, 0xE4E3, 0, 0xE4E8, 0x9193, 0, 0, 0xE4E4, /* 0xB0 */
- 0, 0xE4EB, 0, 0, 0x927E, 0, 0xE4EC, 0, /* 0xC0 */
- 0, 0x9775, 0xE4E1, 0x8A57, 0, 0xE4E7, 0, 0, /* 0xC0 */
- 0xE4EA, 0x96AA, 0, 0, 0, 0, 0xE4ED, 0, /* 0xD0 */
- 0, 0xE4E6, 0xE4E9, 0, 0xFA60, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0x9648, 0, 0x9840, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xE4F1, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0xE4F8, 0, 0, 0xE4F0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_85[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8EC1, 0, 0, 0, 0, 0, 0xE4CF, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0x95CC, 0, 0x96A0, 0xE4F7, 0xE4F6, 0, 0xE4F2, /* 0x10 */
- 0xE4F3, 0, 0x8955, 0, 0, 0, 0, 0xE4F5, /* 0x10 */
- 0, 0xE4EF, 0, 0, 0, 0, 0x92D3, 0, /* 0x20 */
- 0, 0, 0, 0, 0xE4F4, 0x88FC, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0x91A0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0x95C1, 0, 0, /* 0x30 */
- 0xE4F9, 0xE540, 0, 0x94D7, 0, 0, 0, 0, /* 0x40 */
- 0xE4FC, 0x8FD4, 0x8EC7, 0xE542, 0, 0, 0x8BBC, 0, /* 0x40 */
- 0, 0, 0, 0xFB9A, 0, 0xE543, 0, 0x9599, /* 0x50 */
- 0xE4FB, 0xFB9B, 0xE4D4, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0xE4FA, 0, 0, 0, 0, /* 0x60 */
- 0x986E, 0x93A0, 0x9593, 0xFB9C, 0, 0xE54A, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0xE550, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xE551, 0, /* 0x70 */
- 0xE544, 0, 0, 0, 0x9496, 0, 0, 0xE54E, /* 0x80 */
- 0xE546, 0, 0xE548, 0, 0, 0, 0, 0, /* 0x80 */
- 0xE552, 0xE547, 0, 0, 0xE54B, 0, 0, 0x8992, /* 0x90 */
- 0, 0x93E3, 0, 0xE54C, 0xE54F, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xE545, 0, 0x9145, 0, /* 0xA0 */
- 0xE549, 0x8E46, 0x9064, 0x8C4F, 0x96F2, 0, 0x96F7, 0x8F92, /* 0xA0 */
- 0xFB9E, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xE556, 0xE554, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x986D, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xE553, 0, 0, 0, 0x9795, 0, 0xE555, /* 0xC0 */
- 0xE557, 0, 0, 0, 0, 0xE558, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xE55B, 0xE559, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0x93A1, 0xE55A, 0, 0, /* 0xE0 */
- 0, 0x94CB, 0xE54D, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0x8F93, /* 0xF0 */
- 0, 0xE55C, 0xE561, 0x9194, 0, 0, 0xE560 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_86[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE541, 0, 0, 0, 0xE562, 0x9168, /* 0x00 */
- 0, 0, 0xE55D, 0xE55F, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0xE55E, 0, 0, 0x9F50, 0x9F41, /* 0x10 */
- 0, 0, 0xE564, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0xE563, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0x9796, 0, 0xE1BA, /* 0x20 */
- 0xE565, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0xE566, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xE567, 0x8CD5, 0, /* 0x40 */
- 0x8B73, 0, 0, 0, 0xE569, 0x997C, 0, 0, /* 0x50 */
- 0, 0, 0x8B95, 0, 0x97B8, 0, 0x8BF1, 0xE56A, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xE56B, /* 0x60 */
- 0, 0, 0, 0x928E, 0, 0, 0, 0, /* 0x60 */
- 0, 0xE56C, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x93F8, 0, 0x88B8, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0x89E1, 0xE571, 0xE572, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xE56D, 0, 0x8E5C, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xE56E, 0x9461, 0, 0, 0, /* 0xA0 */
- 0, 0xE56F, 0xE570, 0xE57A, 0, 0, 0, 0xE574, /* 0xA0 */
- 0xE577, 0, 0, 0, 0, 0, 0xE573, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xE575, 0, 0xE576, 0x8ED6, /* 0xC0 */
- 0, 0xE578, 0, 0x9260, 0, 0x8C75, 0x8A61, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xE57B, 0, 0, 0, /* 0xD0 */
- 0, 0x8A5E, 0, 0xE581, 0, 0, 0xE57C, 0xE580, /* 0xD0 */
- 0, 0, 0, 0, 0x94B8, 0, 0, 0, /* 0xE0 */
- 0, 0xE57D, 0, 0, 0xE57E, 0x9567, 0x94D8, 0xE582, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0x91FB, 0xE58C, 0, 0xE588, 0, 0, 0x89E9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_87[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE586, 0, 0x9649, 0xE587, 0, 0, 0xE584, 0, /* 0x00 */
- 0xE585, 0xE58A, 0xE58D, 0, 0, 0xE58B, 0, 0, /* 0x00 */
- 0, 0xE589, 0xE583, 0, 0, 0, 0, 0, /* 0x10 */
- 0x9277, 0, 0xE594, 0, 0x96A8, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xE592, 0, 0, /* 0x20 */
- 0, 0xE593, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xE58E, 0, 0, 0xE590, /* 0x30 */
- 0, 0, 0, 0xE591, 0, 0, 0, 0xE58F, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0x90E4, 0, 0x9858, 0xE598, 0, 0xE599, 0, /* 0x40 */
- 0, 0, 0, 0xE59F, 0, 0x9049, 0, 0xE59B, /* 0x50 */
- 0, 0xE59E, 0, 0, 0, 0, 0, 0xE596, /* 0x50 */
- 0xE595, 0, 0, 0xE5A0, 0, 0, 0x89DA, 0, /* 0x60 */
- 0xE59C, 0, 0xE5A1, 0, 0, 0, 0xE59D, 0, /* 0x60 */
- 0, 0, 0, 0, 0xE59A, 0, 0x92B1, 0, /* 0x70 */
- 0xE597, 0, 0, 0, 0, 0, 0, 0x9488, /* 0x70 */
- 0, 0, 0xE5A5, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0x975A, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xE5A4, /* 0x90 */
- 0, 0, 0xE5A3, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xE5AC, 0, 0, 0, 0xE5A6, /* 0xA0 */
- 0, 0, 0, 0xE5AE, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0x9786, 0xE5B1, 0, 0xE5A8, 0, 0, /* 0xB0 */
- 0xE5A9, 0, 0, 0, 0xE5AD, 0, 0xE5B0, 0xE5AF, /* 0xC0 */
- 0, 0, 0, 0xE5A7, 0, 0, 0, 0, /* 0xC0 */
- 0xE5AA, 0, 0xE5BB, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xE5B4, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE5B2, /* 0xE0 */
- 0, 0, 0xE5B3, 0, 0, 0, 0xE5B8, 0xE5B9, /* 0xF0 */
- 0, 0x8A49, 0, 0x8B61, 0, 0, 0xE5B7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_88[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE5A2, 0, 0xFBA1, /* 0x00 */
- 0, 0, 0, 0, 0, 0xE5B6, 0xE5BA, 0xE5B5, /* 0x00 */
- 0, 0xE5BC, 0, 0, 0, 0xE5BE, 0xE5BD, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xE5C0, 0xE5BF, 0xE579, 0, 0, 0, 0xE5C4, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xE5C1, 0, 0, 0, 0, 0xE5C2, 0, /* 0x30 */
- 0, 0xE5C3, 0, 0xE5C5, 0, 0, 0, 0, /* 0x30 */
- 0x8C8C, 0, 0xE5C7, 0, 0xE5C6, 0, 0x8F4F, 0, /* 0x40 */
- 0, 0, 0, 0, 0x8D73, 0x9FA5, 0, 0, /* 0x40 */
- 0, 0, 0xE5C8, 0x8F70, 0, 0, 0, 0x8A58, /* 0x50 */
- 0, 0xE5C9, 0, 0x8971, 0, 0x8FD5, 0xE5CA, 0, /* 0x50 */
- 0, 0x8D74, 0xE5CB, 0x88DF, 0, 0, 0, 0, /* 0x60 */
- 0x955C, 0, 0, 0xE5CC, 0, 0, 0, 0, /* 0x60 */
- 0x908A, 0, 0xE5D3, 0, 0, 0xE5D0, 0, 0x928F, /* 0x70 */
- 0, 0, 0, 0, 0, 0xE5D1, 0xE5CE, 0x8BDC, /* 0x70 */
- 0, 0xE5CD, 0xE5D4, 0, 0, 0, 0, 0, /* 0x80 */
- 0x8C55, 0, 0, 0x91DC, 0, 0xE5DA, 0, 0, /* 0x80 */
- 0, 0, 0xE5D6, 0, 0, 0, 0x91B3, 0xE5D5, /* 0x90 */
- 0, 0xE5D8, 0, 0, 0, 0, 0xE5CF, 0, /* 0x90 */
- 0, 0, 0xE5D9, 0, 0xE5DB, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x94ED, 0, 0, 0xE5D7, 0, /* 0xA0 */
- 0xE5DC, 0xE5DE, 0, 0, 0x8CD1, 0xE5D2, 0, 0x88BF, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE5DD, /* 0xB0 */
- 0, 0x8DD9, 0x97F4, 0xE5DF, 0xE5E0, 0x9195, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0x97A0, /* 0xC0 */
- 0, 0, 0, 0, 0xE5E1, 0x9754, 0, 0, /* 0xD0 */
- 0xE5E2, 0xE5E3, 0, 0, 0x95E2, 0xE5E4, 0, 0x8DBE, /* 0xD0 */
- 0, 0x97A1, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xE5E9, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0xE5EA, 0x8FD6, 0xE5E8, 0xFBA2, 0, 0, /* 0xF0 */
- 0x9787, 0xE5E5, 0, 0, 0xE5E7, 0x90BB, 0x909E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_89[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE5E6, 0, 0xE5EB, 0, 0, 0x95A1, /* 0x00 */
- 0, 0, 0xE5ED, 0, 0xE5EC, 0, 0, 0, /* 0x00 */
- 0x8A8C, 0, 0x964A, 0xE5EE, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0xFA5D, 0xE5FA, 0xE5F0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xE5F1, 0, 0, /* 0x20 */
- 0, 0, 0xE5F2, 0xE5F3, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0xE5F7, 0, /* 0x30 */
- 0xE5F8, 0, 0, 0xE5F6, 0, 0, 0, 0, /* 0x30 */
- 0, 0xE5F4, 0, 0xE5EF, 0xE5F5, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xE5F9, 0xE8B5, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0x89A6, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xE5FC, 0x8BDD, /* 0x50 */
- 0xE5FB, 0, 0, 0, 0xE641, 0, 0xE640, 0, /* 0x60 */
- 0, 0, 0xE643, 0, 0, 0xE642, 0, 0xE644, /* 0x60 */
- 0, 0, 0x8F50, 0, 0xE645, 0, 0, 0xE646, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xE647, 0x90BC, /* 0x70 */
- 0, 0x9776, 0, 0xE648, 0, 0, 0x95A2, 0x9465, /* 0x80 */
- 0xE649, 0, 0xE64A, 0x8CA9, 0, 0, 0, 0x8B4B, /* 0x80 */
- 0, 0, 0, 0xE64B, 0, 0, 0x8E8B, 0x9460, /* 0x90 */
- 0xE64C, 0, 0x8A6F, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xE64D, 0, 0, 0, 0, 0xE64F, 0x9797, /* 0xA0 */
- 0, 0xE64E, 0x9065, 0, 0xE650, 0, 0, 0xE651, /* 0xA0 */
- 0, 0, 0xE652, 0x8ACF, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xE653, 0, 0, 0xE654, 0, 0xE655, /* 0xB0 */
- 0xE656, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0x8A70, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xE657, 0, 0xE658, 0xE659, 0, 0, /* 0xD0 */
- 0, 0, 0, 0x89F0, 0, 0, 0x9047, 0xE65A, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xE65B, 0, 0, 0, /* 0xF0 */
- 0xE65C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_8A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8CBE, 0, 0x92F9, 0xE65D, 0, 0, 0, 0, /* 0x00 */
- 0x8C76, 0, 0x9075, 0, 0xE660, 0, 0x93A2, 0, /* 0x00 */
- 0xE65F, 0, 0xFBA3, 0x8C50, 0, 0, 0xE65E, 0x91F5, /* 0x10 */
- 0x8B4C, 0, 0, 0xE661, 0, 0xE662, 0, 0x8FD7, /* 0x10 */
- 0, 0, 0, 0x8C8D, 0, 0xE663, 0, 0, /* 0x20 */
- 0, 0, 0x964B, 0, 0, 0x90DD, 0, 0, /* 0x20 */
- 0, 0x8B96, 0, 0x96F3, 0x9169, 0, 0xE664, 0xFBA4, /* 0x30 */
- 0, 0, 0x9066, 0x9290, 0x8FD8, 0, 0, 0, /* 0x30 */
- 0, 0xE665, 0, 0, 0, 0, 0xE668, 0, /* 0x40 */
- 0xE669, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0x8DBC, 0x91C0, 0xE667, 0, 0x8FD9, 0x955D, 0, 0, /* 0x50 */
- 0, 0, 0, 0xE666, 0, 0, 0x8E8C, 0, /* 0x50 */
- 0x8972, 0, 0xE66D, 0x8C77, 0, 0, 0x8E8E, 0, /* 0x60 */
- 0, 0x8E8D, 0, 0x986C, 0xE66C, 0xE66B, 0x9146, 0, /* 0x60 */
- 0x8B6C, 0x9862, 0x8A59, 0x8FDA, 0, 0, 0, 0, /* 0x70 */
- 0, 0xFBA5, 0, 0, 0xE66A, 0, 0, 0, /* 0x70 */
- 0, 0, 0xE66F, 0, 0xE670, 0xE66E, 0, 0x8CD6, /* 0x80 */
- 0, 0x975F, 0, 0, 0x8E8F, 0x9446, 0, 0, /* 0x80 */
- 0, 0xE673, 0, 0x90BE, 0, 0x9261, 0, 0, /* 0x90 */
- 0x9755, 0, 0xE676, 0, 0, 0, 0x8CEA, 0, /* 0x90 */
- 0x90BD, 0xE672, 0, 0xE677, 0x8CEB, 0xE674, 0xE675, 0xFBA6, /* 0xA0 */
- 0xE671, 0, 0, 0, 0x90E0, 0x93C7, 0, 0, /* 0xA0 */
- 0x924E, 0, 0x89DB, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x94EE, 0, 0, 0x8B62, 0, 0xFBA7, 0x92B2, /* 0xB0 */
- 0, 0, 0xE67A, 0, 0xE678, 0, 0, 0x926B, /* 0xC0 */
- 0, 0, 0, 0x90BF, 0x8AD0, 0xE679, 0, 0x907A, /* 0xC0 */
- 0, 0, 0x97C8, 0, 0, 0, 0x985F, 0, /* 0xD0 */
- 0, 0, 0xE67B, 0xE687, 0x92B3, 0, 0xE686, 0xFBA8, /* 0xD0 */
- 0xE683, 0xE68B, 0xE684, 0, 0xE680, 0, 0x92FA, 0xE67E, /* 0xE0 */
- 0, 0, 0, 0xE67C, 0, 0x9740, 0x8E90, 0, /* 0xE0 */
- 0, 0xE681, 0, 0xE67D, 0, 0, 0xFBAA, 0xE685, /* 0xF0 */
- 0x8F94, 0, 0x8CBF, 0, 0, 0, 0x91F8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_8B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9664, 0x8979, 0x88E0, 0, 0x93A3, 0, 0, 0xE689, /* 0x00 */
- 0, 0, 0, 0, 0xE688, 0, 0x93E4, 0, /* 0x00 */
- 0xE68D, 0, 0, 0, 0xE682, 0, 0xE68C, 0xE68E, /* 0x10 */
- 0, 0x8CAA, 0xE68A, 0x8D75, 0, 0x8ED3, 0, 0, /* 0x10 */
- 0xE68F, 0x9777, 0, 0, 0, 0, 0xE692, 0, /* 0x20 */
- 0xE695, 0, 0, 0xE693, 0x9554, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xE690, 0, 0, 0, 0, /* 0x30 */
- 0, 0x8BDE, 0, 0, 0, 0, 0xE694, 0, /* 0x30 */
- 0, 0xE696, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xE69A, 0, 0, 0xE697, 0, 0xE699, 0xE698, /* 0x40 */
- 0, 0, 0, 0xFBAB, 0, 0, 0xE69B, 0, /* 0x50 */
- 0x8EAF, 0, 0xE69D, 0xE69C, 0x9588, 0, 0, 0xE69F, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0x8C78, 0, /* 0x60 */
- 0, 0, 0, 0xE69E, 0xE6A0, 0, 0, 0xE6A1, /* 0x60 */
- 0x8B63, 0xE3BF, 0x8FF7, 0, 0xE6A2, 0, 0, 0x8CEC, /* 0x70 */
- 0, 0, 0, 0, 0, 0xE6A3, 0, 0xFBAC, /* 0x70 */
- 0xE6A4, 0, 0, 0x8E5D, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0x9DCC, 0, 0xE6A5, 0, 0xE6A6, 0, /* 0x80 */
- 0x8F51, 0, 0xE6A7, 0xE6A8, 0, 0, 0xE6A9, 0, /* 0x90 */
- 0, 0xE6AA, 0xE6AB /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_8C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x924A, /* 0x30 */
- 0, 0, 0xE6AC, 0, 0, 0, 0, 0xE6AE, /* 0x30 */
- 0, 0xE6AD, 0, 0, 0, 0, 0x93A4, 0, /* 0x40 */
- 0xE6AF, 0, 0x964C, 0, 0xE6B0, 0, 0xE6B1, 0, /* 0x40 */
- 0xE6B2, 0, 0, 0, 0, 0xE6B3, 0, 0, /* 0x50 */
- 0, 0, 0x93D8, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0x8FDB, 0xE6B4, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0x8D8B, 0x98AC, 0xE6B5, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xE6B6, 0x955E, 0xE6B7, 0, 0xE6BF, 0, 0, 0, /* 0x70 */
- 0, 0, 0xE6B8, 0, 0, 0xE6BA, 0, 0, /* 0x80 */
- 0, 0xE6B9, 0xE6BB, 0, 0x9665, 0xE6BC, 0xE6BD, 0, /* 0x80 */
- 0, 0, 0, 0, 0xE6BE, 0, 0, 0, /* 0x90 */
- 0xE6C0, 0, 0, 0, 0, 0x8A4C, 0x92E5, 0, /* 0x90 */
- 0x9589, 0x8DE0, 0x8D76, 0, 0, 0, 0, 0x956E, /* 0xA0 */
- 0x89DD, 0x94CC, 0xE6C3, 0x8AD1, 0x90D3, 0xE6C2, 0xE6C7, 0x9299, /* 0xA0 */
- 0x96E1, 0, 0xE6C5, 0xE6C6, 0x8B4D, 0, 0xE6C8, 0x9483, /* 0xB0 */
- 0x91DD, 0, 0, 0x94EF, 0x935C, 0xE6C4, 0, 0x9666, /* 0xB0 */
- 0x89EA, 0xE6CA, 0x9847, 0x92C0, 0x9864, 0, 0, 0x8E91, /* 0xC0 */
- 0xE6C9, 0, 0x91AF, 0, 0, 0xE6DA, 0x9147, 0, /* 0xC0 */
- 0, 0x93F6, 0, 0x956F, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xE6CD, 0x8E5E, 0x8E92, 0, 0x8FDC, 0, /* 0xD0 */
- 0x9485, 0, 0x8CAB, 0xE6CC, 0xE6CB, 0, 0x958A, 0, /* 0xE0 */
- 0, 0, 0x8EBF, 0, 0, 0x9371, 0, 0, /* 0xE0 */
- 0xFBAD, 0, 0, 0, 0xFBAE, 0, 0, 0, /* 0xF0 */
- 0, 0, 0xE6CF, 0xE6D0, 0x8D77, 0xE6CE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_8D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE6D1, 0xE6D2, 0, 0xE6D4, /* 0x00 */
- 0x91A1, 0, 0xE6D3, 0x8AE4, 0, 0xE6D6, 0, 0xE6D5, /* 0x00 */
- 0xE6D7, 0, 0xFBAF, 0xE6D9, 0xE6DB, 0, 0xE6DC, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0x90D4, 0, 0x8ECD, 0xE6DD, /* 0x60 */
- 0, 0, 0, 0x8A71, 0, 0xE6DE, 0, 0, /* 0x60 */
- 0x9196, 0xE6DF, 0, 0xE6E0, 0x958B, 0, 0xFBB0, 0x8B4E, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xE6E1, 0, 0, 0, 0x92B4, 0, 0, /* 0x80 */
- 0, 0, 0x897A, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xE6E2, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0x8EEF, 0, 0, 0, 0, /* 0xA0 */
- 0x9096, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x91AB, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xE6E5, 0, 0, 0, 0xE6E4, 0, /* 0xB0 */
- 0, 0, 0xE6E3, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xE6EB, 0xE6E9, 0, 0, 0xE6E6, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xE6E8, 0, /* 0xD0 */
- 0, 0, 0xE6E7, 0xE6EA, 0, 0x8B97, 0, 0xE6EE, /* 0xD0 */
- 0, 0x90D5, 0, 0xE6EF, 0, 0, 0, 0, /* 0xE0 */
- 0x8CD7, 0, 0xE6EC, 0xE6ED, 0, 0, 0, 0x9848, /* 0xE0 */
- 0, 0, 0, 0x92B5, 0, 0x9148, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0xE6F0, 0, 0, 0xE6F3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_8E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xE6F1, 0xE6F2, 0x9778, 0, 0, 0, 0, 0x93A5, /* 0x00 */
- 0xE6F6, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xE6F4, 0xE6F5, 0xE6F7, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xE748, 0, 0, 0, 0, 0, /* 0x20 */
- 0xE6FA, 0, 0, 0, 0xE6FB, 0xE6F9, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0xE6F8, 0, 0x92FB, 0, 0, 0xE740, /* 0x40 */
- 0xE744, 0xE741, 0xE6FC, 0, 0xE742, 0, 0, 0, /* 0x40 */
- 0xE743, 0, 0, 0, 0, 0xE74A, 0, 0, /* 0x50 */
- 0, 0xE745, 0, 0, 0, 0, 0, 0x90D6, /* 0x50 */
- 0xE747, 0, 0, 0xE749, 0xE746, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xE74C, 0, 0x8F52, 0, 0xE74B, 0, /* 0x70 */
- 0, 0, 0, 0, 0xE74D, 0, 0, 0, /* 0x70 */
- 0, 0xE74E, 0, 0, 0xE751, 0xE750, 0, 0xE74F, /* 0x80 */
- 0, 0, 0xE753, 0xE752, 0, 0x96F4, 0, 0, /* 0x80 */
- 0, 0xE755, 0, 0xE754, 0xE756, 0, 0, 0, /* 0x90 */
- 0, 0xE757, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xE759, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xE758, 0x9067, 0xE75A, 0, 0, 0x8BEB, /* 0xA0 */
- 0xE75B, 0xE75D, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xE75E, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xE75F, 0xE75C, 0, /* 0xC0 */
- 0xE760, 0, 0x8ED4, 0xE761, 0x8B4F, 0x8C52, 0, 0xFBB2, /* 0xC0 */
- 0, 0, 0x8CAC, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xE762, 0, 0, 0, 0x93EE, /* 0xD0 */
- 0, 0, 0x935D, 0xE763, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xE766, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0x8EB2, 0, 0, 0xE765, 0xE764, 0x8C79, 0xE767 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_8F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8A72, 0, 0xE769, 0, 0, /* 0x00 */
- 0, 0x8DDA, 0xE768, 0, 0xE771, 0, 0, 0, /* 0x00 */
- 0, 0, 0xE76B, 0xE76D, 0x95E3, 0xE76A, 0, 0, /* 0x10 */
- 0, 0xE76C, 0, 0xE770, 0xE76E, 0x8B50, 0, 0xE76F, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xE772, 0, /* 0x20 */
- 0, 0x9479, 0x97D6, 0, 0, 0, 0, 0x8F53, /* 0x20 */
- 0, 0, 0, 0xE773, 0, 0, 0, 0, /* 0x30 */
- 0x9741, 0xE775, 0, 0xE774, 0, 0, 0xE778, 0x9760, /* 0x30 */
- 0, 0, 0xE777, 0, 0x8A8D, 0xE776, 0xE77B, 0, /* 0x40 */
- 0, 0xE77A, 0, 0, 0xE779, 0x9351, 0xE77C, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0xE77D, /* 0x50 */
- 0, 0, 0, 0, 0xE77E, 0, 0, 0x8D8C, /* 0x50 */
- 0, 0x8C44, 0xE780, 0xE781, 0xE782, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0x9068, 0xE783, 0, 0x8EAB, 0xE784, /* 0x90 */
- 0, 0, 0, 0xE785, 0, 0, 0, 0x999F, /* 0xA0 */
- 0x999E, 0, 0, 0, 0, 0xE786, 0xE390, 0xE787, /* 0xA0 */
- 0x9243, 0x904A, 0x945F, 0, 0, 0, 0, 0xE788, /* 0xB0 */
- 0, 0, 0x95D3, 0x92D2, 0x8D9E, 0, 0, 0x9248, /* 0xB0 */
- 0, 0, 0x8949, 0, 0x9698, 0x9076, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0x8C7D, 0, /* 0xC0 */
- 0, 0x8BDF, 0, 0, 0x95D4, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xE789, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xE78B, 0, 0, 0xE78A, 0x89DE, 0, /* 0xE0 */
- 0, 0x93F4, 0xE78C, 0x9497, 0, 0x9352, 0, 0xE78D, /* 0xE0 */
- 0x8F71, 0, 0, 0, 0xE78F, 0, 0, 0x96C0, /* 0xF0 */
- 0xE79E, 0xE791, 0xE792, 0, 0, 0x92C7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_90[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x91DE, 0x9197, 0, 0x93A6, 0, 0xE790, 0x8B74, 0, /* 0x00 */
- 0, 0, 0, 0xE799, 0, 0xE796, 0xE7A3, 0x93A7, /* 0x00 */
- 0x9280, 0xE793, 0, 0x92FC, 0x9372, 0xE794, 0xE798, 0x9080, /* 0x10 */
- 0, 0x9487, 0x92CA, 0, 0, 0x90C0, 0xE797, 0x91AC, /* 0x10 */
- 0x91A2, 0xE795, 0x88A7, 0x9841, 0, 0, 0, 0xE79A, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0x91DF, 0, /* 0x20 */
- 0, 0x8F54, 0x9069, 0, 0, 0xE79C, 0xE79B, 0, /* 0x30 */
- 0x88ED, 0xE79D, 0, 0, 0x954E, 0, 0xE7A5, 0, /* 0x30 */
- 0, 0x93D9, 0x908B, 0, 0, 0x9278, 0, 0x8BF6, /* 0x40 */
- 0, 0xE7A4, 0x9756, 0x895E, 0, 0x95D5, 0x89DF, 0xE79F, /* 0x40 */
- 0xE7A0, 0xE7A1, 0xE7A2, 0x93B9, 0x9242, 0x88E1, 0xE7A6, 0, /* 0x50 */
- 0xE7A7, 0xEAA1, 0, 0, 0x91BB, 0, 0xE7A8, 0, /* 0x50 */
- 0x8993, 0x916B, 0, 0x8CAD, 0, 0x9779, 0, 0xFBB5, /* 0x60 */
- 0xE7A9, 0x934B, 0, 0, 0, 0x9198, 0x8ED5, 0xE7AA, /* 0x60 */
- 0, 0, 0xE7AD, 0, 0, 0x8F85, 0xE7AB, 0x914A, /* 0x70 */
- 0x9149, 0, 0x88E2, 0, 0x97C9, 0xE7AF, 0, 0x94F0, /* 0x70 */
- 0xE7B1, 0xE7B0, 0xE7AE, 0xE284, 0x8AD2, 0, 0, 0xE78E, /* 0x80 */
- 0, 0xE7B3, 0xE7B2, 0, 0, 0, 0, 0xE7B4, /* 0x80 */
- 0, 0x9757, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0x93DF, 0, 0, 0x964D, 0, /* 0xA0 */
- 0xE7B5, 0, 0x8ED7, 0, 0, 0, 0, 0xE7B6, /* 0xA0 */
- 0, 0xE7B7, 0, 0, 0, 0xE7B8, 0, 0, /* 0xB0 */
- 0x9340, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x88E8, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0x8D78, 0, 0, 0, 0x9859, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xE7BC, 0, 0, 0xFBB6, 0, /* 0xD0 */
- 0, 0x8C53, 0xE7B9, 0, 0xE7BA, 0, 0, 0, /* 0xE0 */
- 0x9594, 0, 0, 0, 0, 0x8A73, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0x9758, 0, 0x8BBD, /* 0xF0 */
- 0, 0, 0, 0, 0, 0x9373 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_91[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE7BD, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xE7BE, 0, 0, 0xFBB8, 0, 0, /* 0x10 */
- 0, 0xE7BF, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xFBB9, /* 0x20 */
- 0, 0, 0, 0, 0, 0x9341, 0, 0, /* 0x20 */
- 0xE7C1, 0, 0xE7C0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0x93D1, 0xE7C2, 0x8F55, 0x8EDE, 0x947A, 0x9291, 0, /* 0x40 */
- 0, 0, 0x8EF0, 0, 0x908C, 0, 0xE7C3, 0, /* 0x50 */
- 0xE7C4, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0x907C, 0xE7C5, 0, 0xE7C6, 0, 0, /* 0x60 */
- 0, 0xE7C7, 0x978F, 0, 0x8F56, 0, 0, 0, /* 0x60 */
- 0, 0, 0xE7C9, 0xE7C8, 0, 0x8D79, 0, 0x8D93, /* 0x70 */
- 0x8E5F, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xE7CC, 0, 0, 0, 0, 0x8F86, /* 0x80 */
- 0, 0xE7CB, 0, 0xE7CA, 0, 0x91E7, 0, 0, /* 0x80 */
- 0x8CED, 0, 0x90C1, 0, 0, 0, 0, 0x94AE, /* 0x90 */
- 0, 0, 0, 0, 0x8F58, 0, 0, 0, /* 0x90 */
- 0, 0, 0xE7CD, 0, 0x8FDD, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xE7D0, 0xE7CE, 0, 0, 0, 0xE7CF, /* 0xA0 */
- 0, 0, 0, 0, 0xE7D2, 0xE7D1, 0, 0, /* 0xB0 */
- 0x8FF8, 0, 0xE7D3, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xE7D4, 0xE7D5, 0, 0, 0, 0, 0x94CE, 0x8DD1, /* 0xC0 */
- 0x8EDF, 0xE7D6, 0, 0xE7D7, 0x97A2, 0x8F64, 0x96EC, 0x97CA, /* 0xC0 */
- 0xE7D8, 0x8BE0, 0, 0, 0, 0, 0xE7D9, 0xFBBB, /* 0xD0 */
- 0x9342, 0, 0xFBBA, 0xE7DC, 0x8A98, 0x906A, 0xFBBC, 0xE7DA, /* 0xD0 */
- 0, 0xE7DB, 0, 0x92DE, 0xFBBF, 0xFBC0, 0x9674, 0x8BFA, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xFBBD, 0xFBBE, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xE7DE, 0xE7DF, 0, /* 0xF0 */
- 0, 0, 0, 0, 0xE7DD, 0, 0, 0xE7E1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_92[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFBC1, 0, /* 0x00 */
- 0, 0, 0xFBC3, 0, 0, 0x93DD, 0x8A62, 0, /* 0x00 */
- 0xFBC2, 0xE7E5, 0, 0, 0xE7E2, 0xE7E4, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xE7E0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xE86E, 0, 0, 0xE7E3, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0x97E9, 0, 0, 0x8CD8, /* 0x30 */
- 0, 0xFBCA, 0xFBC4, 0, 0xFBC6, 0, 0, 0xE7ED, /* 0x30 */
- 0xFBC5, 0, 0, 0, 0x9353, 0xE7E8, 0, 0, /* 0x40 */
- 0xE7EB, 0xE7E9, 0, 0xE7EE, 0, 0, 0xFBC7, 0, /* 0x40 */
- 0xE7EF, 0xFBC9, 0, 0, 0, 0, 0, 0xE7E7, /* 0x50 */
- 0, 0xFBC8, 0xE7F4, 0x8994, 0, 0, 0xE7E6, 0, /* 0x50 */
- 0, 0, 0x94AB, 0, 0xE7EA, 0, 0x8FDE, 0xFBCB, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0x8D7A, 0, 0, 0, 0, 0, 0xFBCD, /* 0x70 */
- 0xFBCE, 0, 0, 0, 0, 0, 0x9667, 0, /* 0x70 */
- 0x8BE2, 0, 0, 0x8F65, 0, 0x93BA, 0, 0, /* 0x80 */
- 0xFA5F, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x914C, 0, 0xE7F2, 0, 0xE7EC, 0xE7F1, 0, /* 0x90 */
- 0x96C1, 0, 0x92B6, 0xE7F3, 0xE7F0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xFBCC, /* 0xA0 */
- 0, 0, 0, 0, 0, 0x914B, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE7F7, /* 0xB0 */
- 0, 0xE7F6, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE7F5, /* 0xC0 */
- 0xFBD2, 0, 0x964E, 0xFBD6, 0, 0xFBD4, 0, 0xFBD0, /* 0xD0 */
- 0, 0xFBD1, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xFBD5, 0, 0, 0, 0x8F9B, 0, 0, 0xFBCF, /* 0xE0 */
- 0, 0xE7F8, 0x95DD, 0, 0, 0x8973, 0, 0, /* 0xE0 */
- 0, 0, 0x9565, 0x9292, 0, 0, 0, 0, /* 0xF0 */
- 0x8B98, 0xFA65, 0xE7FA, 0xFBD9, 0x8D7C, 0, 0, 0xFBDC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_93[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFBDE, 0, 0, 0, 0x8E4B, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0xE7F9, /* 0x00 */
- 0x908D, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0x908E, 0xE840, 0xE842, 0, 0, 0xFBDD, 0xFBDB, 0, /* 0x10 */
- 0x8FF9, 0xFBD8, 0xE841, 0xE843, 0, 0xFBD7, 0x8BD1, 0, /* 0x20 */
- 0x9564, 0, 0, 0x8EE0, 0x9842, 0, 0xE7FC, 0x8DF6, /* 0x20 */
- 0, 0, 0x985E, 0, 0, 0xE845, 0, 0, /* 0x30 */
- 0, 0, 0xE844, 0xE846, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0xE7FB, 0, 0, 0, /* 0x40 */
- 0xFA5E, 0, 0, 0x93E7, 0, 0x9374, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0x92D5, 0, 0xE84B, 0xFBE0, /* 0x50 */
- 0, 0, 0, 0x9262, 0xE847, 0, 0, 0, /* 0x50 */
- 0xE848, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0x8C4C, 0, 0xE84A, 0, /* 0x60 */
- 0xFBDF, 0, 0, 0, 0, 0x8CAE, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xE849, 0, 0x8FDF, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0x8A99, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0xE84F, 0, 0x8DBD, 0x9199, /* 0x90 */
- 0, 0, 0x92C8, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xFBE1, 0, 0, 0x8A5A, /* 0xA0 */
- 0, 0, 0, 0, 0xE84D, 0xE84E, 0x92C1, 0, /* 0xA0 */
- 0xE84C, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xE850, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xE856, 0, 0, 0xFBE2, 0, /* 0xC0 */
- 0xE859, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xE858, 0x934C, 0, 0, 0, 0, 0xE851, 0xE852, /* 0xD0 */
- 0xE855, 0, 0, 0, 0, 0xE857, 0xFBE3, 0, /* 0xD0 */
- 0, 0x8BBE, 0, 0, 0xE85A, 0xE854, 0, 0, /* 0xE0 */
- 0xE853, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0xFBE4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_94[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE85E, 0, 0, 0, 0xE85F, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0xE860, 0, 0, 0xE85D, 0xE85C, 0, 0, 0, /* 0x10 */
- 0x8FE0, 0x93A8, 0xE85B, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xE864, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xE862, 0, 0, 0, 0, /* 0x20 */
- 0, 0xFBE5, 0, 0, 0, 0xE863, 0xE861, 0, /* 0x30 */
- 0x91F6, 0, 0xE865, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xE866, 0, 0, 0xE868, 0xFBE6, 0, 0, /* 0x40 */
- 0xFBE7, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0x8AD3, 0xE867, 0x96F8, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0xE873, 0xE869, 0, 0, 0xE86C, 0, /* 0x50 */
- 0xE86A, 0, 0xE86B, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xE86D, 0, 0, 0, 0, 0, /* 0x60 */
- 0xE86F, 0, 0, 0, 0, 0xE870, 0, 0xE871, /* 0x70 */
- 0, 0, 0, 0, 0xE874, 0xE872, 0xE875, 0xE877, /* 0x70 */
- 0, 0xE876 /* 0x80 */
- /* 0x80 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_95[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x92B7, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0x96E5, 0, 0xE878, 0x914D, 0, 0, 0, 0xE879, /* 0x80 */
- 0, 0x95C2, 0xE87A, 0x8A4A, 0, 0, 0, 0x895B, /* 0x80 */
- 0, 0x8AD5, 0xFBE8, 0x8AD4, 0xE87B, 0, 0xE87C, 0, /* 0x90 */
- 0xE87D, 0xE87E, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xE880, 0, 0x8AD6, 0x8A74, 0x8D7D, 0x94B4, 0, 0xE882, /* 0xA0 */
- 0xE881, 0, 0, 0, 0, 0xE883, 0, 0, /* 0xA0 */
- 0, 0, 0x897B, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xE886, 0, 0xE885, 0xE884, 0, 0xE887, 0, /* 0xB0 */
- 0, 0, 0, 0xE88A, 0, 0, 0, 0x88C5, /* 0xC0 */
- 0, 0, 0xE888, 0, 0xE88C, 0xE88B, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xE88E, 0xE88D, 0xE88F, 0, /* 0xD0 */
- 0x93AC, 0, 0, 0, 0xE890, 0, 0, 0, /* 0xD0 */
- 0, 0xE891, 0xE893, 0, 0, 0xE892 /* 0xE0 */
- /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_96[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x10 */
- 0x958C, 0, 0, 0, /* 0x10 */
- 0, 0xE894, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xE895, 0, 0x8DE3, 0, 0, 0, 0xE896, 0xE897, /* 0x20 */
- 0, 0, 0x9668, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0x916A, 0, 0, 0, 0x88A2, /* 0x30 */
- 0x91C9, 0, 0xE898, 0, 0x958D, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xE89B, 0xE899, 0x8D7E, 0, 0xE89A, /* 0x40 */
- 0x8CC0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0x95C3, 0xE89D, 0xE89F, 0xE89E, 0xE8A0, /* 0x50 */
- 0, 0, 0x8940, 0x9077, 0x8F9C, 0x8AD7, 0xE8A1, 0, /* 0x60 */
- 0, 0, 0x9486, 0, 0xE8A3, 0, 0, 0, /* 0x60 */
- 0x8941, 0, 0xE8A2, 0x92C2, 0, 0x97CB, 0x93A9, 0xE89C, /* 0x70 */
- 0x97A4, 0, 0x8CAF, 0, 0, 0x977A, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0x8BF7, 0x97B2, 0, /* 0x80 */
- 0x8C47, 0, 0x91E0, 0xE440, 0, 0xE8A4, 0x8A4B, 0x908F, /* 0x80 */
- 0, 0, 0, 0, 0x8A75, 0xE8A6, 0, 0xE8A7, /* 0x90 */
- 0xE8A5, 0x8C84, 0, 0x8DDB, 0x8FE1, 0xFBEB, 0, 0, /* 0x90 */
- 0x8942, 0, 0, 0x97D7, 0, 0, 0, 0xE8A9, /* 0xA0 */
- 0xE7AC, 0, 0xE8A8, 0, 0, 0, 0, 0xFBEC, /* 0xA0 */
- 0xE8AC, 0xE8AA, 0xE8AB, 0, 0xE8AD, 0, 0xE8AE, 0x97EA, /* 0xB0 */
- 0xE8AF, 0xE8B0, 0, 0x90C7, 0x94B9, 0, 0, 0, /* 0xB0 */
- 0x909D, 0x8AE5, 0, 0, 0x9759, 0x89EB, 0x8F57, 0x8CD9, /* 0xC0 */
- 0, 0xE8B3, 0, 0xE8B2, 0x8E93, 0xE8B4, 0xE8B1, 0, /* 0xC0 */
- 0, 0x8E47, 0, 0, 0, 0xE8B8, 0xE5AB, 0, /* 0xD0 */
- 0, 0x99D4, 0, 0x9097, 0xE8B6, 0, 0, 0, /* 0xD0 */
- 0, 0, 0x97A3, 0x93EF, 0, 0, 0, 0, /* 0xE0 */
- 0x894A, 0, 0x90E1, 0x8EB4, 0, 0, 0, 0, /* 0xE0 */
- 0x95B5, 0, 0x895F, 0, 0, 0, 0x97EB, 0x978B, /* 0xF0 */
- 0, 0xE8B9, 0, 0x9364 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_97[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8EF9, 0, 0, 0, 0xE8BA, 0, 0xE8BB, 0x906B, /* 0x00 */
- 0xE8BC, 0, 0x97EC, 0, 0, 0xE8B7, 0xE8BE, 0xE8C0, /* 0x00 */
- 0, 0xE8BF, 0, 0xE8BD, 0, 0, 0xE8C1, 0, /* 0x10 */
- 0, 0xE8C2, 0, 0, 0x919A, 0, 0x89E0, 0, /* 0x10 */
- 0, 0, 0, 0, 0xE8C3, 0, 0, 0x96B6, /* 0x20 */
- 0, 0, 0xE8C4, 0, 0, 0, 0, 0, /* 0x20 */
- 0xE8C5, 0, 0x9849, 0xFBED, 0, 0, 0, 0, /* 0x30 */
- 0x9E50, 0xE8C6, 0, 0xFBEE, 0, 0xE8C7, 0xE8C8, 0, /* 0x30 */
- 0, 0, 0xE8CC, 0xFBEF, 0xE8C9, 0, 0xE8CA, 0, /* 0x40 */
- 0xE8CB, 0xE8CD, 0, 0, 0, 0xFBF0, 0, 0xFBF1, /* 0x40 */
- 0, 0xFBF2, 0x90C2, 0, 0, 0xFBF3, 0x96F5, 0, /* 0x50 */
- 0, 0x90C3, 0, 0, 0xE8CE, 0, 0x94F1, 0, /* 0x50 */
- 0xE8CF, 0xEA72, 0x96CA, 0, 0xE8D0, 0, 0xE8D1, 0, /* 0x60 */
- 0xE8D2, 0x8A76, 0, 0xE8D4, 0, 0x9078, 0, 0, /* 0x60 */
- 0, 0xE8D5, 0, 0, 0x8C43, 0, 0, 0, /* 0x70 */
- 0, 0xE8D6, 0xE8DA, 0, 0xE8D8, 0, 0, 0, /* 0x70 */
- 0, 0xE8D9, 0, 0, 0x8A93, 0xE8D7, 0xE8DB, 0, /* 0x80 */
- 0, 0, 0, 0xE8DC, 0, 0x88C6, 0, 0xE8DD, /* 0x80 */
- 0xE8DE, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x8FE2, 0, 0, 0, 0xE8DF, 0, 0, 0, /* 0x90 */
- 0x8B66, 0, 0, 0xE8E2, 0, 0, 0xE8E1, 0, /* 0xA0 */
- 0xE8E0, 0, 0, 0xE691, 0, 0x95DA, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xE8E3, 0xE8E4, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xE8E5, 0, 0, 0xE8E6, 0, /* 0xC0 */
- 0xE8E7, 0, 0, 0xE8E8, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0x8AD8, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xE8E9, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xE8EA, 0x9442, 0, /* 0xE0 */
- 0, 0, 0xE8EC, 0x89B9, 0, 0xE8EF, 0xE8EE, 0, /* 0xF0 */
- 0, 0, 0, 0x8943, 0, 0, 0, 0x8BBF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_98[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x95C5, 0x92B8, 0x8DA0, 0, 0x8D80, 0x8F87, 0, /* 0x00 */
- 0x907B, 0, 0, 0, 0xE8F1, 0, 0, 0xE8F0, /* 0x00 */
- 0x9761, 0x8AE6, 0x94D0, 0x93DA, 0, 0, 0, 0x909C, /* 0x10 */
- 0x97CC, 0, 0x8C7A, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xE8F4, 0, 0, 0xE8F3, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0x966A, 0x93AA, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0x896F, 0, 0, 0xE8F5, /* 0x30 */
- 0xE8F2, 0, 0, 0x9570, 0x978A, 0xE8F6, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xE8F7, 0, /* 0x40 */
- 0, 0, 0, 0xE8F9, 0x91E8, 0x8A7A, 0x8A7B, 0xE8F8, /* 0x40 */
- 0, 0, 0, 0, 0x8AE7, 0x8CB0, 0, 0xFBF4, /* 0x50 */
- 0x8AE8, 0, 0, 0x935E, 0, 0, 0x97DE, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xFBF5, 0, 0x8CDA, /* 0x60 */
- 0, 0, 0, 0xE8FA, 0, 0, 0, 0xE8FB, /* 0x60 */
- 0xE8FC, 0xE940, 0, 0xE942, 0xE941, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x9597, 0, 0xE943, 0, 0, 0, 0, 0xE944, /* 0xA0 */
- 0, 0xE945, 0, 0, 0, 0, 0xE946, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xE948, 0xE947, 0, 0xE949, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0x94F2, 0xE3CA, 0, 0, 0x9048, /* 0xD0 */
- 0, 0, 0x8B51, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0xE94A, 0, 0xE94B, 0, 0x99AA, 0x9F5A, 0x94D1, /* 0xE0 */
- 0, 0, 0x88F9, 0, 0x88B9, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0x8E94, 0x964F, 0x8FFC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_99[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE94C, 0, 0x96DD, 0, 0, /* 0x00 */
- 0, 0xE94D, 0x977B, 0, 0x8961, 0, 0, 0, /* 0x00 */
- 0x8E60, 0, 0xE94E, 0x89EC, 0xE94F, 0, 0, 0, /* 0x10 */
- 0xE950, 0, 0, 0, 0, 0xE952, 0xE953, 0, /* 0x10 */
- 0xE955, 0xE951, 0, 0, 0xE954, 0, 0, 0xFBF8, /* 0x20 */
- 0x8AD9, 0, 0, 0, 0xE956, 0, 0xE957, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xE958, 0xE959, 0, /* 0x30 */
- 0, 0, 0xE95A, 0, 0, 0xE95C, 0, 0, /* 0x40 */
- 0, 0xE95B, 0, 0xE95E, 0xE961, 0, 0, 0, /* 0x40 */
- 0xE95D, 0xE95F, 0xE960, 0, 0, 0xE962, 0, 0x8BC0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0x8EF1, 0xE963, /* 0x90 */
- 0xE964, 0x8D81, 0, 0, 0, 0, 0xFBFA, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xE965, 0, 0, /* 0xA0 */
- 0x8A5D, 0, 0, 0, 0x946E, 0xE966, 0xE967, 0, /* 0xA0 */
- 0, 0, 0, 0x9279, 0x93E9, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xE968, 0, 0, 0, /* 0xB0 */
- 0, 0x949D, 0, 0, 0x91CA, 0x8977, 0x8BEC, 0, /* 0xC0 */
- 0x8BED, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0x9293, 0xE96D, 0x8BEE, 0, 0, 0x89ED, 0, 0, /* 0xD0 */
- 0xE96C, 0, 0, 0xE96A, 0, 0xE96B, 0, 0xE969, /* 0xD0 */
- 0, 0, 0xE977, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xE96E, 0xE96F, 0, /* 0xE0 */
- 0, 0xE970, 0xE971, 0, 0, 0, 0, 0, /* 0xF0 */
- 0xE973, 0, 0, 0xE972, 0, 0, 0, 0x8F78 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_9A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE974, 0, 0, 0, 0xE976, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0x8B52, 0xE975, /* 0x00 */
- 0, 0, 0x919B, 0x8CB1, 0, 0, 0, 0, /* 0x10 */
- 0, 0xE978, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0x91CB, 0, 0, 0xE979, 0, 0, 0, 0, /* 0x20 */
- 0x93AB, 0, 0, 0, 0, 0, 0, 0xE97A, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xE980, 0, /* 0x30 */
- 0xE97D, 0, 0xE97C, 0xE97E, 0, 0xE97B, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xE982, 0xFBFB, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xE981, 0, 0xE984, /* 0x50 */
- 0, 0, 0x8BC1, 0xE983, 0, 0, 0, 0xE985, /* 0x50 */
- 0, 0, 0xE986, 0, 0xE988, 0xE987, 0, 0, /* 0x60 */
- 0, 0xE989, 0xE98B, 0xE98A, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x8D9C, 0, 0, 0, 0, 0xE98C, 0, 0, /* 0xA0 */
- 0xE98D, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x8A5B, 0, 0, 0, 0xE98E, 0, 0, 0, /* 0xB0 */
- 0xE98F, 0, 0, 0, 0x9091, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE990, /* 0xC0 */
- 0, 0xE991, 0, 0xE992, 0xE993, 0, 0, 0, /* 0xD0 */
- 0x8D82, 0xFBFC, 0, 0, 0xFC40, 0, 0xE994, 0xE995, /* 0xD0 */
- 0, 0, 0xE996, 0xE997, 0, 0, 0xE998, 0, /* 0xE0 */
- 0, 0, 0x94AF, 0xE99A, 0, 0x9545, 0xE99B, 0xE999, /* 0xE0 */
- 0, 0xE99D, 0, 0, 0xE99C, 0, 0, 0xE99E, /* 0xF0 */
- 0, 0, 0, 0xE99F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_9B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE9A0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xE9A1, 0, 0xE9A2, 0, 0, 0, 0, 0xE9A3, /* 0x10 */
- 0, 0, 0xE9A4, 0xE9A5, 0, 0xE9A6, 0, 0xE9A7, /* 0x20 */
- 0xE9A8, 0xE9A9, 0xE9AA, 0, 0, 0, 0xE9AB, 0xE9AC, /* 0x20 */
- 0, 0x9F54, 0xE9AD, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xE2F6, 0x8B53, 0, 0, 0, /* 0x30 */
- 0, 0x8A40, 0x8DB0, 0xE9AF, 0xE9AE, 0x96A3, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xE9B1, 0xE9B2, 0xE9B0, /* 0x40 */
- 0, 0xE9B3, 0, 0, 0x9682, 0, 0, 0, /* 0x50 */
- 0xE9B4, 0, 0x8B9B, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0x9844, /* 0x60 */
- 0, 0, 0xFC42, 0, 0xE9B5, 0xFC41, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0xE9B7, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0x88BC, 0xFC43, /* 0x80 */
- 0, 0xE9B8, 0x95A9, 0xE9B6, 0, 0, 0xE9B9, 0xE9BA, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xE9BB, /* 0x90 */
- 0xE9BC, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xE9BD, 0, 0x968E, 0x8E4C, 0, 0x8DF8, 0x914E, 0, /* 0xA0 */
- 0, 0xFC44, 0, 0, 0xE9BE, 0, 0, 0, /* 0xB0 */
- 0, 0xE9C1, 0, 0xFC45, 0, 0, 0, 0, /* 0xB0 */
- 0xE9BF, 0, 0, 0, 0, 0, 0xE9C2, 0, /* 0xC0 */
- 0, 0x8CEF, 0xE9C0, 0, 0, 0, 0, 0xE9C3, /* 0xC0 */
- 0, 0xE9C4, 0xE9C5, 0, 0xE9C9, 0, 0x8E49, 0, /* 0xD0 */
- 0, 0, 0, 0x91E2, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xE9CA, 0xE9C7, 0xE9C6, 0xE9C8, 0, 0, 0, /* 0xE0 */
- 0x8C7E, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xE9CE, 0xE9CD, 0xE9CC, 0, 0, 0x88B1 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_9C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFC46, 0, 0, 0, 0xE9D8, 0, 0xE9D4, 0, /* 0x00 */
- 0xE9D5, 0xE9D1, 0xE9D7, 0, 0xE9D3, 0x8A82, 0, 0, /* 0x00 */
- 0x986B, 0, 0xE9D6, 0xE9D2, 0xE9D0, 0xE9CF, 0, 0, /* 0x10 */
- 0, 0, 0, 0xE9DA, 0, 0, 0, 0, /* 0x10 */
- 0, 0xE9DD, 0, 0, 0xE9DC, 0xE9DB, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0x9568, 0xE9D9, 0x88F1, /* 0x20 */
- 0xE9DE, 0, 0xE9E0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x8A8F, 0xE9CB, 0x8956, 0, 0, 0xE9E2, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xE9E1, 0xE9DF, /* 0x40 */
- 0x924C, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x9690, 0, 0, 0, 0, 0x97D8, /* 0x50 */
- 0, 0, 0xE9E3, 0, 0, 0, 0, 0, /* 0x50 */
- 0xE9E4, 0, 0, 0, 0, 0, 0, 0xE9E5, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0xE9E6, 0, /* 0x70 */
- 0xE9E7, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0x92B9, 0, 0xE9E8, /* 0xE0 */
- 0, 0x94B5, 0, 0xE9ED, 0xE9E9, 0, 0, 0, /* 0xE0 */
- 0xE9EA, 0, 0, 0x9650, 0x96C2, 0, 0x93CE /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_9D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE9EE, 0, 0, 0xE9EF, 0x93BC, /* 0x00 */
- 0xE9EC, 0xE9EB, 0, 0, 0, 0, 0x89A8, 0, /* 0x00 */
- 0, 0, 0xE9F7, 0, 0, 0xE9F6, 0, 0, /* 0x10 */
- 0, 0, 0, 0x8995, 0, 0, 0, 0xE9F4, /* 0x10 */
- 0, 0, 0, 0xE9F3, 0, 0, 0xE9F1, 0, /* 0x20 */
- 0x8A9B, 0, 0xE9F0, 0x8EB0, 0x89A7, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0x8D83, 0, 0, 0xE9FA, 0xE9F9, /* 0x30 */
- 0, 0xE9F8, 0, 0, 0xE9F5, 0, 0xE9FB, 0, /* 0x40 */
- 0xE9FC, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xEA44, 0xEA43, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xEA45, 0, 0, 0x894C, 0xEA40, 0xEA41, 0, /* 0x50 */
- 0x8D94, 0x96B7, 0, 0, 0xEA42, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xFC48, 0x9651, 0, 0, 0xEA4A, /* 0x60 */
- 0xFC47, 0, 0xEA46, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xEA4B, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xEA48, /* 0x80 */
- 0, 0xEA47, 0, 0, 0, 0, 0, 0x8C7B, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xEA4C, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xEA4D, 0, 0, 0, /* 0xA0 */
- 0, 0xEA4E, 0, 0xEA49, 0, 0, 0, 0xE9F2, /* 0xA0 */
- 0, 0, 0xEA4F, 0, 0x92DF, 0, 0, 0, /* 0xB0 */
- 0xEA53, 0, 0xEA54, 0xEA52, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xEA51, 0xEA57, 0, 0xEA50, 0, 0xEA55, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xEA56, /* 0xC0 */
- 0, 0, 0, 0xEA59, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xEA58, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xEA5B, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xEA5C, 0, 0xEA5D, /* 0xE0 */
- 0, 0, 0x9868, 0, 0, 0, 0, 0, /* 0xF0 */
- 0xEA5A, 0x91E9, 0x8DEB, 0, 0, 0xEA5E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_9E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x10 */
- 0xFC4A, 0xEA5F, 0xEA60, 0, 0, 0xEA61, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xEA62, 0, 0, /* 0x70 */
- 0x8CB2, 0xEA63, 0, 0, 0, 0xEA64, 0, 0x8EAD, /* 0x70 */
- 0, 0xEA65, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xEA66, 0, 0, 0xEA67, 0xEA68, 0, 0, 0, /* 0x80 */
- 0, 0xEA6B, 0xEA69, 0x985B, 0, 0xEA6A, 0, 0x97ED, /* 0x90 */
- 0, 0, 0, 0, 0, 0xEA6C, 0, 0x97D9, /* 0x90 */
- 0, 0, 0, 0, 0, 0xEA6D, 0x949E, 0, /* 0xA0 */
- 0, 0xEA6E, 0xEA70, 0, 0, 0xEA71, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xEA6F, 0x8D8D, 0x96CB, 0x9683, 0x9BF5, 0, 0x9F80, 0x969B, /* 0xB0 */
- 0, 0, 0, 0, 0x89A9, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xEA73, 0x8B6F, 0xEA74, 0xEA75, /* 0xC0 */
- 0xEA76, 0xFC4B, 0x8D95, 0, 0xEA77, 0, 0, 0, /* 0xD0 */
- 0xE0D2, 0x96D9, 0, 0x91E1, 0xEA78, 0xEA7A, 0xEA79, 0, /* 0xD0 */
- 0xEA7B, 0, 0, 0, 0, 0xEA7C, 0, 0, /* 0xE0 */
- 0xEA7D, 0, 0, 0, 0, 0, 0, 0xEA7E, /* 0xE0 */
- 0, 0, 0, 0, 0xEA80, 0, 0xEA81, 0xEA82, /* 0xF0 */
- 0, 0xEA83, 0, 0xEA84, 0xEA85, 0xEA86 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_9F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEA87, /* 0x00 */
- 0xEA88, 0, 0, 0, 0, 0, 0x9343, 0, /* 0x00 */
- 0, 0, 0, 0x8CDB, 0, 0xEA8A, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0x916C, 0xEA8B, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xEA8C, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0x9540, 0, 0, 0xEA8D, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xEA8E, 0xE256, 0, 0, 0xE6D8, 0xE8EB, /* 0x40 */
- 0, 0, 0xEA8F, 0, 0xEA90, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xEA92, /* 0x50 */
- 0xEA93, 0xEA94, 0x97EE, 0xEA91, 0, 0, 0xEA95, 0xEA96, /* 0x60 */
- 0, 0, 0xEA98, 0, 0xEA97, 0, 0, 0, /* 0x60 */
- 0, 0, 0xEA9A, 0, 0, 0, 0xEA9B, 0xEA99, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0x97B4, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xEA9C, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xEA9D, 0xE273, 0, 0, /* 0x90 */
- 0xEA9E /* 0xA0 */
- /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* this table includes some IBM Kanji's */
-
-static sal_uInt16 const aImplUniToDBCSTab_MS932_F9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x20 */
- 0xFAE0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xFBE9 /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* this table includes some IBM Kanji's */
-
-static sal_uInt16 const aImplUniToDBCSTab_MS932_FA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xFA90, 0xFA9B, /* 0x00 */
- 0xFA9C, 0xFAB1, 0xFAD8, 0xFAE8, 0xFAEA, 0xFB58, 0xFB5E, 0xFB75, /* 0x10 */
- 0xFB7D, 0xFB7E, 0xFB80, 0xFB82, 0xFB86, 0xFB89, 0xFB92, 0xFB9D, /* 0x10 */
- 0xFB9F, 0xFBA0, 0xFBA9, 0xFBB1, 0xFBB3, 0xFBB4, 0xFBB7, 0xFBD3, /* 0x20 */
- 0xFBDA, 0xFBEA, 0xFBF6, 0xFBF7, 0xFBF9, 0xFC49 /* 0x20 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_APPLEJAPANESE_FE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEB64, 0xEB5C, 0, 0xEB51, 0, 0xEB69, 0xEB6A, 0xEB6F, /* 0x30 */
- 0xEB70, 0xEB6B, 0xEB6C, 0xEB79, 0xEB7A, 0xEB73, 0xEB74, 0xEB71, /* 0x30 */
- 0xEB72, 0xEB75, 0xEB76, 0xEB77, 0xEB78 /* 0x40 */
- /* 0x40 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_SJIS_FF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8149, 0xFA57, 0x8194, 0x8190, 0x8193, 0x8195, 0xFA56, /* 0x00 */
- 0x8169, 0x816A, 0x8196, 0x817B, 0x8143, 0x817C, 0x8144, 0x815E, /* 0x00 */
- 0x824F, 0x8250, 0x8251, 0x8252, 0x8253, 0x8254, 0x8255, 0x8256, /* 0x10 */
- 0x8257, 0x8258, 0x8146, 0x8147, 0x8183, 0x8181, 0x8184, 0x8148, /* 0x10 */
- 0x8197, 0x8260, 0x8261, 0x8262, 0x8263, 0x8264, 0x8265, 0x8266, /* 0x20 */
- 0x8267, 0x8268, 0x8269, 0x826A, 0x826B, 0x826C, 0x826D, 0x826E, /* 0x20 */
- 0x826F, 0x8270, 0x8271, 0x8272, 0x8273, 0x8274, 0x8275, 0x8276, /* 0x30 */
- 0x8277, 0x8278, 0x8279, 0x816D, 0x815F, 0x816E, 0x814F, 0x8151, /* 0x30 */
- 0x814D, 0x8281, 0x8282, 0x8283, 0x8284, 0x8285, 0x8286, 0x8287, /* 0x40 */
- 0x8288, 0x8289, 0x828A, 0x828B, 0x828C, 0x828D, 0x828E, 0x828F, /* 0x40 */
- 0x8290, 0x8291, 0x8292, 0x8293, 0x8294, 0x8295, 0x8296, 0x8297, /* 0x50 */
- 0x8298, 0x8299, 0x829A, 0x816F, 0x8162, 0x8170, 0x8160, 0, /* 0x50 */
- 0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0x60 */
- 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0x60 */
- 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0x70 */
- 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, /* 0x70 */
- 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, /* 0x80 */
- 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, /* 0x80 */
- 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, /* 0x90 */
- 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x8191, 0x8192, 0x81CA, 0x8150, 0xFA55, 0x818F /* 0xE0 */
- /* 0xE0 */
-};
-
diff --git a/sal/textenc/tcvtjp3.tab b/sal/textenc/tcvtjp3.tab
deleted file mode 100644
index cca81dee6..000000000
--- a/sal/textenc/tcvtjp3.tab
+++ /dev/null
@@ -1,2914 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the DBCS to UniCode tables for the following */
-/* japanese charsets: JIS201, JIS208, JIS212 */
-
-/* For compatibility reasons, the Shift-JIS row 8740--879E as defined in
- http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT
- ("Table version: 2.01," "Date: 04/15/98") is used as the 13th row (i.e.,
- ISO-2022-JP 2D21--2D7E) of JIS X 0208 (officially, that 13th row contains no
- characters).
- */
-
-/* ======================================================================= */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_21[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3000, 0x3001, 0x3002, 0xFF0C, 0xFF0E, 0x30FB, 0xFF1A, /* 0x20 */
- 0xFF1B, 0xFF1F, 0xFF01, 0x309B, 0x309C, 0x00B4, 0xFF40, 0x00A8, /* 0x20 */
- 0xFF3E, 0xFFE3, 0xFF3F, 0x30FD, 0x30FE, 0x309D, 0x309E, 0x3003, /* 0x30 */
- 0x4EDD, 0x3005, 0x3006, 0x3007, 0x30FC, 0x2015, 0x2010, 0xFF0F, /* 0x30 */
- 0x005C, 0x301C, 0x2016, 0xFF5C, 0x2026, 0x2025, 0x2018, 0x2019, /* 0x40 */
- 0x201C, 0x201D, 0xFF08, 0xFF09, 0x3014, 0x3015, 0xFF3B, 0xFF3D, /* 0x40 */
- 0xFF5B, 0xFF5D, 0x3008, 0x3009, 0x300A, 0x300B, 0x300C, 0x300D, /* 0x50 */
- 0x300E, 0x300F, 0x3010, 0x3011, 0xFF0B, 0x2212, 0x00B1, 0x00D7, /* 0x50 */
- 0x00F7, 0xFF1D, 0x2260, 0xFF1C, 0xFF1E, 0x2266, 0x2267, 0x221E, /* 0x60 */
- 0x2234, 0x2642, 0x2640, 0x00B0, 0x2032, 0x2033, 0x2103, 0xFFE5, /* 0x60 */
- 0xFF04, 0x00A2, 0x00A3, 0xFF05, 0xFF03, 0xFF06, 0xFF0A, 0xFF20, /* 0x70 */
- 0x00A7, 0x2606, 0x2605, 0x25CB, 0x25CF, 0x25CE, 0x25C7 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_22[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x25C6, 0x25A1, 0x25A0, 0x25B3, 0x25B2, 0x25BD, 0x25BC, /* 0x20 */
- 0x203B, 0x3012, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0x2208, 0x220B, 0x2286, 0x2287, 0x2282, 0x2283, /* 0x30 */
- 0x222A, 0x2229, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x2227, 0x2228, 0x00AC, 0x21D2, 0x21D4, 0x2200, /* 0x40 */
- 0x2203, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0x2220, 0x22A5, 0x2312, 0x2202, /* 0x50 */
- 0x2207, 0x2261, 0x2252, 0x226A, 0x226B, 0x221A, 0x223D, 0x221D, /* 0x60 */
- 0x2235, 0x222B, 0x222C, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0x212B, 0x2030, 0x266F, 0x266D, 0x266A, 0x2020, /* 0x70 */
- 0x2021, 0x00B6, 0, 0, 0, 0, 0x25EF /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_23[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFF10, 0xFF11, 0xFF12, 0xFF13, 0xFF14, 0xFF15, 0xFF16, 0xFF17, /* 0x30 */
- 0xFF18, 0xFF19, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xFF21, 0xFF22, 0xFF23, 0xFF24, 0xFF25, 0xFF26, 0xFF27, /* 0x40 */
- 0xFF28, 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C, 0xFF2D, 0xFF2E, 0xFF2F, /* 0x40 */
- 0xFF30, 0xFF31, 0xFF32, 0xFF33, 0xFF34, 0xFF35, 0xFF36, 0xFF37, /* 0x50 */
- 0xFF38, 0xFF39, 0xFF3A, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xFF41, 0xFF42, 0xFF43, 0xFF44, 0xFF45, 0xFF46, 0xFF47, /* 0x60 */
- 0xFF48, 0xFF49, 0xFF4A, 0xFF4B, 0xFF4C, 0xFF4D, 0xFF4E, 0xFF4F, /* 0x60 */
- 0xFF50, 0xFF51, 0xFF52, 0xFF53, 0xFF54, 0xFF55, 0xFF56, 0xFF57, /* 0x70 */
- 0xFF58, 0xFF59, 0xFF5A /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_24[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, /* 0x20 */
- 0x3048, 0x3049, 0x304A, 0x304B, 0x304C, 0x304D, 0x304E, 0x304F, /* 0x20 */
- 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, /* 0x30 */
- 0x3058, 0x3059, 0x305A, 0x305B, 0x305C, 0x305D, 0x305E, 0x305F, /* 0x30 */
- 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, /* 0x40 */
- 0x3068, 0x3069, 0x306A, 0x306B, 0x306C, 0x306D, 0x306E, 0x306F, /* 0x40 */
- 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, /* 0x50 */
- 0x3078, 0x3079, 0x307A, 0x307B, 0x307C, 0x307D, 0x307E, 0x307F, /* 0x50 */
- 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, /* 0x60 */
- 0x3088, 0x3089, 0x308A, 0x308B, 0x308C, 0x308D, 0x308E, 0x308F, /* 0x60 */
- 0x3090, 0x3091, 0x3092, 0x3093 /* 0x70 */
- /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_25[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x30A1, 0x30A2, 0x30A3, 0x30A4, 0x30A5, 0x30A6, 0x30A7, /* 0x20 */
- 0x30A8, 0x30A9, 0x30AA, 0x30AB, 0x30AC, 0x30AD, 0x30AE, 0x30AF, /* 0x20 */
- 0x30B0, 0x30B1, 0x30B2, 0x30B3, 0x30B4, 0x30B5, 0x30B6, 0x30B7, /* 0x30 */
- 0x30B8, 0x30B9, 0x30BA, 0x30BB, 0x30BC, 0x30BD, 0x30BE, 0x30BF, /* 0x30 */
- 0x30C0, 0x30C1, 0x30C2, 0x30C3, 0x30C4, 0x30C5, 0x30C6, 0x30C7, /* 0x40 */
- 0x30C8, 0x30C9, 0x30CA, 0x30CB, 0x30CC, 0x30CD, 0x30CE, 0x30CF, /* 0x40 */
- 0x30D0, 0x30D1, 0x30D2, 0x30D3, 0x30D4, 0x30D5, 0x30D6, 0x30D7, /* 0x50 */
- 0x30D8, 0x30D9, 0x30DA, 0x30DB, 0x30DC, 0x30DD, 0x30DE, 0x30DF, /* 0x50 */
- 0x30E0, 0x30E1, 0x30E2, 0x30E3, 0x30E4, 0x30E5, 0x30E6, 0x30E7, /* 0x60 */
- 0x30E8, 0x30E9, 0x30EA, 0x30EB, 0x30EC, 0x30ED, 0x30EE, 0x30EF, /* 0x60 */
- 0x30F0, 0x30F1, 0x30F2, 0x30F3, 0x30F4, 0x30F5, 0x30F6 /* 0x70 */
- /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_26[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, /* 0x20 */
- 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, /* 0x20 */
- 0x03A0, 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, /* 0x30 */
- 0x03A9, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, /* 0x40 */
- 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, /* 0x40 */
- 0x03C0, 0x03C1, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, /* 0x50 */
- 0x03C9 /* 0x50 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_27[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, /* 0x20 */
- 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, /* 0x20 */
- 0x041E, 0x041F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, /* 0x30 */
- 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, /* 0x30 */
- 0x042E, 0x042F, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, /* 0x50 */
- 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, /* 0x50 */
- 0x043E, 0x043F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, /* 0x60 */
- 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, /* 0x60 */
- 0x044E, 0x044F /* 0x70 */
- /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_28[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2500, 0x2502, 0x250C, 0x2510, 0x2518, 0x2514, 0x251C, /* 0x20 */
- 0x252C, 0x2524, 0x2534, 0x253C, 0x2501, 0x2503, 0x250F, 0x2513, /* 0x20 */
- 0x251B, 0x2517, 0x2523, 0x2533, 0x252B, 0x253B, 0x254B, 0x2520, /* 0x30 */
- 0x252F, 0x2528, 0x2537, 0x253F, 0x251D, 0x2530, 0x2525, 0x2538, /* 0x30 */
- 0x2542 /* 0x40 */
- /* 0x40 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_2D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, /* 0x20 */
- 0x2467, 0x2468, 0x2469, 0x246A, 0x246B, 0x246C, 0x246D, 0x246E, /* 0x20 */
- 0x246F, 0x2470, 0x2471, 0x2472, 0x2473, 0x2160, 0x2161, 0x2162, /* 0x30 */
- 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0, /* 0x30 */
- 0x3349, 0x3314, 0x3322, 0x334D, 0x3318, 0x3327, 0x3303, 0x3336, /* 0x40 */
- 0x3351, 0x3357, 0x330D, 0x3326, 0x3323, 0x332B, 0x334A, 0x333B, /* 0x40 */
- 0x339C, 0x339D, 0x339E, 0x338E, 0x338F, 0x33C4, 0x33A1, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0x337B, /* 0x50 */
- 0x301D, 0x301F, 0x2116, 0x33CD, 0x2121, 0x32A4, 0x32A5, 0x32A6, /* 0x60 */
- 0x32A7, 0x32A8, 0x3231, 0x3232, 0x3239, 0x337E, 0x337D, 0x337C, /* 0x60 */
- 0x2252, 0x2261, 0x222B, 0x222E, 0x2211, 0x221A, 0x22A5, 0x2220, /* 0x70 */
- 0x221F, 0x22BF, 0x2235, 0x2229, 0x222A /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_30[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4E9C, 0x5516, 0x5A03, 0x963F, 0x54C0, 0x611B, 0x6328, /* 0x20 */
- 0x59F6, 0x9022, 0x8475, 0x831C, 0x7A50, 0x60AA, 0x63E1, 0x6E25, /* 0x20 */
- 0x65ED, 0x8466, 0x82A6, 0x9BF5, 0x6893, 0x5727, 0x65A1, 0x6271, /* 0x30 */
- 0x5B9B, 0x59D0, 0x867B, 0x98F4, 0x7D62, 0x7DBE, 0x9B8E, 0x6216, /* 0x30 */
- 0x7C9F, 0x88B7, 0x5B89, 0x5EB5, 0x6309, 0x6697, 0x6848, 0x95C7, /* 0x40 */
- 0x978D, 0x674F, 0x4EE5, 0x4F0A, 0x4F4D, 0x4F9D, 0x5049, 0x56F2, /* 0x40 */
- 0x5937, 0x59D4, 0x5A01, 0x5C09, 0x60DF, 0x610F, 0x6170, 0x6613, /* 0x50 */
- 0x6905, 0x70BA, 0x754F, 0x7570, 0x79FB, 0x7DAD, 0x7DEF, 0x80C3, /* 0x50 */
- 0x840E, 0x8863, 0x8B02, 0x9055, 0x907A, 0x533B, 0x4E95, 0x4EA5, /* 0x60 */
- 0x57DF, 0x80B2, 0x90C1, 0x78EF, 0x4E00, 0x58F1, 0x6EA2, 0x9038, /* 0x60 */
- 0x7A32, 0x8328, 0x828B, 0x9C2F, 0x5141, 0x5370, 0x54BD, 0x54E1, /* 0x70 */
- 0x56E0, 0x59FB, 0x5F15, 0x98F2, 0x6DEB, 0x80E4, 0x852D /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_31[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9662, 0x9670, 0x96A0, 0x97FB, 0x540B, 0x53F3, 0x5B87, /* 0x20 */
- 0x70CF, 0x7FBD, 0x8FC2, 0x96E8, 0x536F, 0x9D5C, 0x7ABA, 0x4E11, /* 0x20 */
- 0x7893, 0x81FC, 0x6E26, 0x5618, 0x5504, 0x6B1D, 0x851A, 0x9C3B, /* 0x30 */
- 0x59E5, 0x53A9, 0x6D66, 0x74DC, 0x958F, 0x5642, 0x4E91, 0x904B, /* 0x30 */
- 0x96F2, 0x834F, 0x990C, 0x53E1, 0x55B6, 0x5B30, 0x5F71, 0x6620, /* 0x40 */
- 0x66F3, 0x6804, 0x6C38, 0x6CF3, 0x6D29, 0x745B, 0x76C8, 0x7A4E, /* 0x40 */
- 0x9834, 0x82F1, 0x885B, 0x8A60, 0x92ED, 0x6DB2, 0x75AB, 0x76CA, /* 0x50 */
- 0x99C5, 0x60A6, 0x8B01, 0x8D8A, 0x95B2, 0x698E, 0x53AD, 0x5186, /* 0x50 */
- 0x5712, 0x5830, 0x5944, 0x5BB4, 0x5EF6, 0x6028, 0x63A9, 0x63F4, /* 0x60 */
- 0x6CBF, 0x6F14, 0x708E, 0x7114, 0x7159, 0x71D5, 0x733F, 0x7E01, /* 0x60 */
- 0x8276, 0x82D1, 0x8597, 0x9060, 0x925B, 0x9D1B, 0x5869, 0x65BC, /* 0x70 */
- 0x6C5A, 0x7525, 0x51F9, 0x592E, 0x5965, 0x5F80, 0x5FDC /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_32[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x62BC, 0x65FA, 0x6A2A, 0x6B27, 0x6BB4, 0x738B, 0x7FC1, /* 0x20 */
- 0x8956, 0x9D2C, 0x9D0E, 0x9EC4, 0x5CA1, 0x6C96, 0x837B, 0x5104, /* 0x20 */
- 0x5C4B, 0x61B6, 0x81C6, 0x6876, 0x7261, 0x4E59, 0x4FFA, 0x5378, /* 0x30 */
- 0x6069, 0x6E29, 0x7A4F, 0x97F3, 0x4E0B, 0x5316, 0x4EEE, 0x4F55, /* 0x30 */
- 0x4F3D, 0x4FA1, 0x4F73, 0x52A0, 0x53EF, 0x5609, 0x590F, 0x5AC1, /* 0x40 */
- 0x5BB6, 0x5BE1, 0x79D1, 0x6687, 0x679C, 0x67B6, 0x6B4C, 0x6CB3, /* 0x40 */
- 0x706B, 0x73C2, 0x798D, 0x79BE, 0x7A3C, 0x7B87, 0x82B1, 0x82DB, /* 0x50 */
- 0x8304, 0x8377, 0x83EF, 0x83D3, 0x8766, 0x8AB2, 0x5629, 0x8CA8, /* 0x50 */
- 0x8FE6, 0x904E, 0x971E, 0x868A, 0x4FC4, 0x5CE8, 0x6211, 0x7259, /* 0x60 */
- 0x753B, 0x81E5, 0x82BD, 0x86FE, 0x8CC0, 0x96C5, 0x9913, 0x99D5, /* 0x60 */
- 0x4ECB, 0x4F1A, 0x89E3, 0x56DE, 0x584A, 0x58CA, 0x5EFB, 0x5FEB, /* 0x70 */
- 0x602A, 0x6094, 0x6062, 0x61D0, 0x6212, 0x62D0, 0x6539 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_33[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9B41, 0x6666, 0x68B0, 0x6D77, 0x7070, 0x754C, 0x7686, /* 0x20 */
- 0x7D75, 0x82A5, 0x87F9, 0x958B, 0x968E, 0x8C9D, 0x51F1, 0x52BE, /* 0x20 */
- 0x5916, 0x54B3, 0x5BB3, 0x5D16, 0x6168, 0x6982, 0x6DAF, 0x788D, /* 0x30 */
- 0x84CB, 0x8857, 0x8A72, 0x93A7, 0x9AB8, 0x6D6C, 0x99A8, 0x86D9, /* 0x30 */
- 0x57A3, 0x67FF, 0x86CE, 0x920E, 0x5283, 0x5687, 0x5404, 0x5ED3, /* 0x40 */
- 0x62E1, 0x64B9, 0x683C, 0x6838, 0x6BBB, 0x7372, 0x78BA, 0x7A6B, /* 0x40 */
- 0x899A, 0x89D2, 0x8D6B, 0x8F03, 0x90ED, 0x95A3, 0x9694, 0x9769, /* 0x50 */
- 0x5B66, 0x5CB3, 0x697D, 0x984D, 0x984E, 0x639B, 0x7B20, 0x6A2B, /* 0x50 */
- 0x6A7F, 0x68B6, 0x9C0D, 0x6F5F, 0x5272, 0x559D, 0x6070, 0x62EC, /* 0x60 */
- 0x6D3B, 0x6E07, 0x6ED1, 0x845B, 0x8910, 0x8F44, 0x4E14, 0x9C39, /* 0x60 */
- 0x53F6, 0x691B, 0x6A3A, 0x9784, 0x682A, 0x515C, 0x7AC3, 0x84B2, /* 0x70 */
- 0x91DC, 0x938C, 0x565B, 0x9D28, 0x6822, 0x8305, 0x8431 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_34[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7CA5, 0x5208, 0x82C5, 0x74E6, 0x4E7E, 0x4F83, 0x51A0, /* 0x20 */
- 0x5BD2, 0x520A, 0x52D8, 0x52E7, 0x5DFB, 0x559A, 0x582A, 0x59E6, /* 0x20 */
- 0x5B8C, 0x5B98, 0x5BDB, 0x5E72, 0x5E79, 0x60A3, 0x611F, 0x6163, /* 0x30 */
- 0x61BE, 0x63DB, 0x6562, 0x67D1, 0x6853, 0x68FA, 0x6B3E, 0x6B53, /* 0x30 */
- 0x6C57, 0x6F22, 0x6F97, 0x6F45, 0x74B0, 0x7518, 0x76E3, 0x770B, /* 0x40 */
- 0x7AFF, 0x7BA1, 0x7C21, 0x7DE9, 0x7F36, 0x7FF0, 0x809D, 0x8266, /* 0x40 */
- 0x839E, 0x89B3, 0x8ACC, 0x8CAB, 0x9084, 0x9451, 0x9593, 0x9591, /* 0x50 */
- 0x95A2, 0x9665, 0x97D3, 0x9928, 0x8218, 0x4E38, 0x542B, 0x5CB8, /* 0x50 */
- 0x5DCC, 0x73A9, 0x764C, 0x773C, 0x5CA9, 0x7FEB, 0x8D0B, 0x96C1, /* 0x60 */
- 0x9811, 0x9854, 0x9858, 0x4F01, 0x4F0E, 0x5371, 0x559C, 0x5668, /* 0x60 */
- 0x57FA, 0x5947, 0x5B09, 0x5BC4, 0x5C90, 0x5E0C, 0x5E7E, 0x5FCC, /* 0x70 */
- 0x63EE, 0x673A, 0x65D7, 0x65E2, 0x671F, 0x68CB, 0x68C4 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_35[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6A5F, 0x5E30, 0x6BC5, 0x6C17, 0x6C7D, 0x757F, 0x7948, /* 0x20 */
- 0x5B63, 0x7A00, 0x7D00, 0x5FBD, 0x898F, 0x8A18, 0x8CB4, 0x8D77, /* 0x20 */
- 0x8ECC, 0x8F1D, 0x98E2, 0x9A0E, 0x9B3C, 0x4E80, 0x507D, 0x5100, /* 0x30 */
- 0x5993, 0x5B9C, 0x622F, 0x6280, 0x64EC, 0x6B3A, 0x72A0, 0x7591, /* 0x30 */
- 0x7947, 0x7FA9, 0x87FB, 0x8ABC, 0x8B70, 0x63AC, 0x83CA, 0x97A0, /* 0x40 */
- 0x5409, 0x5403, 0x55AB, 0x6854, 0x6A58, 0x8A70, 0x7827, 0x6775, /* 0x40 */
- 0x9ECD, 0x5374, 0x5BA2, 0x811A, 0x8650, 0x9006, 0x4E18, 0x4E45, /* 0x50 */
- 0x4EC7, 0x4F11, 0x53CA, 0x5438, 0x5BAE, 0x5F13, 0x6025, 0x6551, /* 0x50 */
- 0x673D, 0x6C42, 0x6C72, 0x6CE3, 0x7078, 0x7403, 0x7A76, 0x7AAE, /* 0x60 */
- 0x7B08, 0x7D1A, 0x7CFE, 0x7D66, 0x65E7, 0x725B, 0x53BB, 0x5C45, /* 0x60 */
- 0x5DE8, 0x62D2, 0x62E0, 0x6319, 0x6E20, 0x865A, 0x8A31, 0x8DDD, /* 0x70 */
- 0x92F8, 0x6F01, 0x79A6, 0x9B5A, 0x4EA8, 0x4EAB, 0x4EAC /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_36[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4F9B, 0x4FA0, 0x50D1, 0x5147, 0x7AF6, 0x5171, 0x51F6, /* 0x20 */
- 0x5354, 0x5321, 0x537F, 0x53EB, 0x55AC, 0x5883, 0x5CE1, 0x5F37, /* 0x20 */
- 0x5F4A, 0x602F, 0x6050, 0x606D, 0x631F, 0x6559, 0x6A4B, 0x6CC1, /* 0x30 */
- 0x72C2, 0x72ED, 0x77EF, 0x80F8, 0x8105, 0x8208, 0x854E, 0x90F7, /* 0x30 */
- 0x93E1, 0x97FF, 0x9957, 0x9A5A, 0x4EF0, 0x51DD, 0x5C2D, 0x6681, /* 0x40 */
- 0x696D, 0x5C40, 0x66F2, 0x6975, 0x7389, 0x6850, 0x7C81, 0x50C5, /* 0x40 */
- 0x52E4, 0x5747, 0x5DFE, 0x9326, 0x65A4, 0x6B23, 0x6B3D, 0x7434, /* 0x50 */
- 0x7981, 0x79BD, 0x7B4B, 0x7DCA, 0x82B9, 0x83CC, 0x887F, 0x895F, /* 0x50 */
- 0x8B39, 0x8FD1, 0x91D1, 0x541F, 0x9280, 0x4E5D, 0x5036, 0x53E5, /* 0x60 */
- 0x533A, 0x72D7, 0x7396, 0x77E9, 0x82E6, 0x8EAF, 0x99C6, 0x99C8, /* 0x60 */
- 0x99D2, 0x5177, 0x611A, 0x865E, 0x55B0, 0x7A7A, 0x5076, 0x5BD3, /* 0x70 */
- 0x9047, 0x9685, 0x4E32, 0x6ADB, 0x91E7, 0x5C51, 0x5C48 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_37[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6398, 0x7A9F, 0x6C93, 0x9774, 0x8F61, 0x7AAA, 0x718A, /* 0x20 */
- 0x9688, 0x7C82, 0x6817, 0x7E70, 0x6851, 0x936C, 0x52F2, 0x541B, /* 0x20 */
- 0x85AB, 0x8A13, 0x7FA4, 0x8ECD, 0x90E1, 0x5366, 0x8888, 0x7941, /* 0x30 */
- 0x4FC2, 0x50BE, 0x5211, 0x5144, 0x5553, 0x572D, 0x73EA, 0x578B, /* 0x30 */
- 0x5951, 0x5F62, 0x5F84, 0x6075, 0x6176, 0x6167, 0x61A9, 0x63B2, /* 0x40 */
- 0x643A, 0x656C, 0x666F, 0x6842, 0x6E13, 0x7566, 0x7A3D, 0x7CFB, /* 0x40 */
- 0x7D4C, 0x7D99, 0x7E4B, 0x7F6B, 0x830E, 0x834A, 0x86CD, 0x8A08, /* 0x50 */
- 0x8A63, 0x8B66, 0x8EFD, 0x981A, 0x9D8F, 0x82B8, 0x8FCE, 0x9BE8, /* 0x50 */
- 0x5287, 0x621F, 0x6483, 0x6FC0, 0x9699, 0x6841, 0x5091, 0x6B20, /* 0x60 */
- 0x6C7A, 0x6F54, 0x7A74, 0x7D50, 0x8840, 0x8A23, 0x6708, 0x4EF6, /* 0x60 */
- 0x5039, 0x5026, 0x5065, 0x517C, 0x5238, 0x5263, 0x55A7, 0x570F, /* 0x70 */
- 0x5805, 0x5ACC, 0x5EFA, 0x61B2, 0x61F8, 0x62F3, 0x6372 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_38[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x691C, 0x6A29, 0x727D, 0x72AC, 0x732E, 0x7814, 0x786F, /* 0x20 */
- 0x7D79, 0x770C, 0x80A9, 0x898B, 0x8B19, 0x8CE2, 0x8ED2, 0x9063, /* 0x20 */
- 0x9375, 0x967A, 0x9855, 0x9A13, 0x9E78, 0x5143, 0x539F, 0x53B3, /* 0x30 */
- 0x5E7B, 0x5F26, 0x6E1B, 0x6E90, 0x7384, 0x73FE, 0x7D43, 0x8237, /* 0x30 */
- 0x8A00, 0x8AFA, 0x9650, 0x4E4E, 0x500B, 0x53E4, 0x547C, 0x56FA, /* 0x40 */
- 0x59D1, 0x5B64, 0x5DF1, 0x5EAB, 0x5F27, 0x6238, 0x6545, 0x67AF, /* 0x40 */
- 0x6E56, 0x72D0, 0x7CCA, 0x88B4, 0x80A1, 0x80E1, 0x83F0, 0x864E, /* 0x50 */
- 0x8A87, 0x8DE8, 0x9237, 0x96C7, 0x9867, 0x9F13, 0x4E94, 0x4E92, /* 0x50 */
- 0x4F0D, 0x5348, 0x5449, 0x543E, 0x5A2F, 0x5F8C, 0x5FA1, 0x609F, /* 0x60 */
- 0x68A7, 0x6A8E, 0x745A, 0x7881, 0x8A9E, 0x8AA4, 0x8B77, 0x9190, /* 0x60 */
- 0x4E5E, 0x9BC9, 0x4EA4, 0x4F7C, 0x4FAF, 0x5019, 0x5016, 0x5149, /* 0x70 */
- 0x516C, 0x529F, 0x52B9, 0x52FE, 0x539A, 0x53E3, 0x5411 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_39[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x540E, 0x5589, 0x5751, 0x57A2, 0x597D, 0x5B54, 0x5B5D, /* 0x20 */
- 0x5B8F, 0x5DE5, 0x5DE7, 0x5DF7, 0x5E78, 0x5E83, 0x5E9A, 0x5EB7, /* 0x20 */
- 0x5F18, 0x6052, 0x614C, 0x6297, 0x62D8, 0x63A7, 0x653B, 0x6602, /* 0x30 */
- 0x6643, 0x66F4, 0x676D, 0x6821, 0x6897, 0x69CB, 0x6C5F, 0x6D2A, /* 0x30 */
- 0x6D69, 0x6E2F, 0x6E9D, 0x7532, 0x7687, 0x786C, 0x7A3F, 0x7CE0, /* 0x40 */
- 0x7D05, 0x7D18, 0x7D5E, 0x7DB1, 0x8015, 0x8003, 0x80AF, 0x80B1, /* 0x40 */
- 0x8154, 0x818F, 0x822A, 0x8352, 0x884C, 0x8861, 0x8B1B, 0x8CA2, /* 0x50 */
- 0x8CFC, 0x90CA, 0x9175, 0x9271, 0x783F, 0x92FC, 0x95A4, 0x964D, /* 0x50 */
- 0x9805, 0x9999, 0x9AD8, 0x9D3B, 0x525B, 0x52AB, 0x53F7, 0x5408, /* 0x60 */
- 0x58D5, 0x62F7, 0x6FE0, 0x8C6A, 0x8F5F, 0x9EB9, 0x514B, 0x523B, /* 0x60 */
- 0x544A, 0x56FD, 0x7A40, 0x9177, 0x9D60, 0x9ED2, 0x7344, 0x6F09, /* 0x70 */
- 0x8170, 0x7511, 0x5FFD, 0x60DA, 0x9AA8, 0x72DB, 0x8FBC /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_3A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6B64, 0x9803, 0x4ECA, 0x56F0, 0x5764, 0x58BE, 0x5A5A, /* 0x20 */
- 0x6068, 0x61C7, 0x660F, 0x6606, 0x6839, 0x68B1, 0x6DF7, 0x75D5, /* 0x20 */
- 0x7D3A, 0x826E, 0x9B42, 0x4E9B, 0x4F50, 0x53C9, 0x5506, 0x5D6F, /* 0x30 */
- 0x5DE6, 0x5DEE, 0x67FB, 0x6C99, 0x7473, 0x7802, 0x8A50, 0x9396, /* 0x30 */
- 0x88DF, 0x5750, 0x5EA7, 0x632B, 0x50B5, 0x50AC, 0x518D, 0x6700, /* 0x40 */
- 0x54C9, 0x585E, 0x59BB, 0x5BB0, 0x5F69, 0x624D, 0x63A1, 0x683D, /* 0x40 */
- 0x6B73, 0x6E08, 0x707D, 0x91C7, 0x7280, 0x7815, 0x7826, 0x796D, /* 0x50 */
- 0x658E, 0x7D30, 0x83DC, 0x88C1, 0x8F09, 0x969B, 0x5264, 0x5728, /* 0x50 */
- 0x6750, 0x7F6A, 0x8CA1, 0x51B4, 0x5742, 0x962A, 0x583A, 0x698A, /* 0x60 */
- 0x80B4, 0x54B2, 0x5D0E, 0x57FC, 0x7895, 0x9DFA, 0x4F5C, 0x524A, /* 0x60 */
- 0x548B, 0x643E, 0x6628, 0x6714, 0x67F5, 0x7A84, 0x7B56, 0x7D22, /* 0x70 */
- 0x932F, 0x685C, 0x9BAD, 0x7B39, 0x5319, 0x518A, 0x5237 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_3B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5BDF, 0x62F6, 0x64AE, 0x64E6, 0x672D, 0x6BBA, 0x85A9, /* 0x20 */
- 0x96D1, 0x7690, 0x9BD6, 0x634C, 0x9306, 0x9BAB, 0x76BF, 0x6652, /* 0x20 */
- 0x4E09, 0x5098, 0x53C2, 0x5C71, 0x60E8, 0x6492, 0x6563, 0x685F, /* 0x30 */
- 0x71E6, 0x73CA, 0x7523, 0x7B97, 0x7E82, 0x8695, 0x8B83, 0x8CDB, /* 0x30 */
- 0x9178, 0x9910, 0x65AC, 0x66AB, 0x6B8B, 0x4ED5, 0x4ED4, 0x4F3A, /* 0x40 */
- 0x4F7F, 0x523A, 0x53F8, 0x53F2, 0x55E3, 0x56DB, 0x58EB, 0x59CB, /* 0x40 */
- 0x59C9, 0x59FF, 0x5B50, 0x5C4D, 0x5E02, 0x5E2B, 0x5FD7, 0x601D, /* 0x50 */
- 0x6307, 0x652F, 0x5B5C, 0x65AF, 0x65BD, 0x65E8, 0x679D, 0x6B62, /* 0x50 */
- 0x6B7B, 0x6C0F, 0x7345, 0x7949, 0x79C1, 0x7CF8, 0x7D19, 0x7D2B, /* 0x60 */
- 0x80A2, 0x8102, 0x81F3, 0x8996, 0x8A5E, 0x8A69, 0x8A66, 0x8A8C, /* 0x60 */
- 0x8AEE, 0x8CC7, 0x8CDC, 0x96CC, 0x98FC, 0x6B6F, 0x4E8B, 0x4F3C, /* 0x70 */
- 0x4F8D, 0x5150, 0x5B57, 0x5BFA, 0x6148, 0x6301, 0x6642 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_3C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6B21, 0x6ECB, 0x6CBB, 0x723E, 0x74BD, 0x75D4, 0x78C1, /* 0x20 */
- 0x793A, 0x800C, 0x8033, 0x81EA, 0x8494, 0x8F9E, 0x6C50, 0x9E7F, /* 0x20 */
- 0x5F0F, 0x8B58, 0x9D2B, 0x7AFA, 0x8EF8, 0x5B8D, 0x96EB, 0x4E03, /* 0x30 */
- 0x53F1, 0x57F7, 0x5931, 0x5AC9, 0x5BA4, 0x6089, 0x6E7F, 0x6F06, /* 0x30 */
- 0x75BE, 0x8CEA, 0x5B9F, 0x8500, 0x7BE0, 0x5072, 0x67F4, 0x829D, /* 0x40 */
- 0x5C61, 0x854A, 0x7E1E, 0x820E, 0x5199, 0x5C04, 0x6368, 0x8D66, /* 0x40 */
- 0x659C, 0x716E, 0x793E, 0x7D17, 0x8005, 0x8B1D, 0x8ECA, 0x906E, /* 0x50 */
- 0x86C7, 0x90AA, 0x501F, 0x52FA, 0x5C3A, 0x6753, 0x707C, 0x7235, /* 0x50 */
- 0x914C, 0x91C8, 0x932B, 0x82E5, 0x5BC2, 0x5F31, 0x60F9, 0x4E3B, /* 0x60 */
- 0x53D6, 0x5B88, 0x624B, 0x6731, 0x6B8A, 0x72E9, 0x73E0, 0x7A2E, /* 0x60 */
- 0x816B, 0x8DA3, 0x9152, 0x9996, 0x5112, 0x53D7, 0x546A, 0x5BFF, /* 0x70 */
- 0x6388, 0x6A39, 0x7DAC, 0x9700, 0x56DA, 0x53CE, 0x5468 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_3D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5B97, 0x5C31, 0x5DDE, 0x4FEE, 0x6101, 0x62FE, 0x6D32, /* 0x20 */
- 0x79C0, 0x79CB, 0x7D42, 0x7E4D, 0x7FD2, 0x81ED, 0x821F, 0x8490, /* 0x20 */
- 0x8846, 0x8972, 0x8B90, 0x8E74, 0x8F2F, 0x9031, 0x914B, 0x916C, /* 0x30 */
- 0x96C6, 0x919C, 0x4EC0, 0x4F4F, 0x5145, 0x5341, 0x5F93, 0x620E, /* 0x30 */
- 0x67D4, 0x6C41, 0x6E0B, 0x7363, 0x7E26, 0x91CD, 0x9283, 0x53D4, /* 0x40 */
- 0x5919, 0x5BBF, 0x6DD1, 0x795D, 0x7E2E, 0x7C9B, 0x587E, 0x719F, /* 0x40 */
- 0x51FA, 0x8853, 0x8FF0, 0x4FCA, 0x5CFB, 0x6625, 0x77AC, 0x7AE3, /* 0x50 */
- 0x821C, 0x99FF, 0x51C6, 0x5FAA, 0x65EC, 0x696F, 0x6B89, 0x6DF3, /* 0x50 */
- 0x6E96, 0x6F64, 0x76FE, 0x7D14, 0x5DE1, 0x9075, 0x9187, 0x9806, /* 0x60 */
- 0x51E6, 0x521D, 0x6240, 0x6691, 0x66D9, 0x6E1A, 0x5EB6, 0x7DD2, /* 0x60 */
- 0x7F72, 0x66F8, 0x85AF, 0x85F7, 0x8AF8, 0x52A9, 0x53D9, 0x5973, /* 0x70 */
- 0x5E8F, 0x5F90, 0x6055, 0x92E4, 0x9664, 0x50B7, 0x511F /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_3E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x52DD, 0x5320, 0x5347, 0x53EC, 0x54E8, 0x5546, 0x5531, /* 0x20 */
- 0x5617, 0x5968, 0x59BE, 0x5A3C, 0x5BB5, 0x5C06, 0x5C0F, 0x5C11, /* 0x20 */
- 0x5C1A, 0x5E84, 0x5E8A, 0x5EE0, 0x5F70, 0x627F, 0x6284, 0x62DB, /* 0x30 */
- 0x638C, 0x6377, 0x6607, 0x660C, 0x662D, 0x6676, 0x677E, 0x68A2, /* 0x30 */
- 0x6A1F, 0x6A35, 0x6CBC, 0x6D88, 0x6E09, 0x6E58, 0x713C, 0x7126, /* 0x40 */
- 0x7167, 0x75C7, 0x7701, 0x785D, 0x7901, 0x7965, 0x79F0, 0x7AE0, /* 0x40 */
- 0x7B11, 0x7CA7, 0x7D39, 0x8096, 0x83D6, 0x848B, 0x8549, 0x885D, /* 0x50 */
- 0x88F3, 0x8A1F, 0x8A3C, 0x8A54, 0x8A73, 0x8C61, 0x8CDE, 0x91A4, /* 0x50 */
- 0x9266, 0x937E, 0x9418, 0x969C, 0x9798, 0x4E0A, 0x4E08, 0x4E1E, /* 0x60 */
- 0x4E57, 0x5197, 0x5270, 0x57CE, 0x5834, 0x58CC, 0x5B22, 0x5E38, /* 0x60 */
- 0x60C5, 0x64FE, 0x6761, 0x6756, 0x6D44, 0x72B6, 0x7573, 0x7A63, /* 0x70 */
- 0x84B8, 0x8B72, 0x91B8, 0x9320, 0x5631, 0x57F4, 0x98FE /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_3F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x62ED, 0x690D, 0x6B96, 0x71ED, 0x7E54, 0x8077, 0x8272, /* 0x20 */
- 0x89E6, 0x98DF, 0x8755, 0x8FB1, 0x5C3B, 0x4F38, 0x4FE1, 0x4FB5, /* 0x20 */
- 0x5507, 0x5A20, 0x5BDD, 0x5BE9, 0x5FC3, 0x614E, 0x632F, 0x65B0, /* 0x30 */
- 0x664B, 0x68EE, 0x699B, 0x6D78, 0x6DF1, 0x7533, 0x75B9, 0x771F, /* 0x30 */
- 0x795E, 0x79E6, 0x7D33, 0x81E3, 0x82AF, 0x85AA, 0x89AA, 0x8A3A, /* 0x40 */
- 0x8EAB, 0x8F9B, 0x9032, 0x91DD, 0x9707, 0x4EBA, 0x4EC1, 0x5203, /* 0x40 */
- 0x5875, 0x58EC, 0x5C0B, 0x751A, 0x5C3D, 0x814E, 0x8A0A, 0x8FC5, /* 0x50 */
- 0x9663, 0x976D, 0x7B25, 0x8ACF, 0x9808, 0x9162, 0x56F3, 0x53A8, /* 0x50 */
- 0x9017, 0x5439, 0x5782, 0x5E25, 0x63A8, 0x6C34, 0x708A, 0x7761, /* 0x60 */
- 0x7C8B, 0x7FE0, 0x8870, 0x9042, 0x9154, 0x9310, 0x9318, 0x968F, /* 0x60 */
- 0x745E, 0x9AC4, 0x5D07, 0x5D69, 0x6570, 0x67A2, 0x8DA8, 0x96DB, /* 0x70 */
- 0x636E, 0x6749, 0x6919, 0x83C5, 0x9817, 0x96C0, 0x88FE /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_40[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6F84, 0x647A, 0x5BF8, 0x4E16, 0x702C, 0x755D, 0x662F, /* 0x20 */
- 0x51C4, 0x5236, 0x52E2, 0x59D3, 0x5F81, 0x6027, 0x6210, 0x653F, /* 0x20 */
- 0x6574, 0x661F, 0x6674, 0x68F2, 0x6816, 0x6B63, 0x6E05, 0x7272, /* 0x30 */
- 0x751F, 0x76DB, 0x7CBE, 0x8056, 0x58F0, 0x88FD, 0x897F, 0x8AA0, /* 0x30 */
- 0x8A93, 0x8ACB, 0x901D, 0x9192, 0x9752, 0x9759, 0x6589, 0x7A0E, /* 0x40 */
- 0x8106, 0x96BB, 0x5E2D, 0x60DC, 0x621A, 0x65A5, 0x6614, 0x6790, /* 0x40 */
- 0x77F3, 0x7A4D, 0x7C4D, 0x7E3E, 0x810A, 0x8CAC, 0x8D64, 0x8DE1, /* 0x50 */
- 0x8E5F, 0x78A9, 0x5207, 0x62D9, 0x63A5, 0x6442, 0x6298, 0x8A2D, /* 0x50 */
- 0x7A83, 0x7BC0, 0x8AAC, 0x96EA, 0x7D76, 0x820C, 0x8749, 0x4ED9, /* 0x60 */
- 0x5148, 0x5343, 0x5360, 0x5BA3, 0x5C02, 0x5C16, 0x5DDD, 0x6226, /* 0x60 */
- 0x6247, 0x64B0, 0x6813, 0x6834, 0x6CC9, 0x6D45, 0x6D17, 0x67D3, /* 0x70 */
- 0x6F5C, 0x714E, 0x717D, 0x65CB, 0x7A7F, 0x7BAD, 0x7DDA /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_41[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7E4A, 0x7FA8, 0x817A, 0x821B, 0x8239, 0x85A6, 0x8A6E, /* 0x20 */
- 0x8CCE, 0x8DF5, 0x9078, 0x9077, 0x92AD, 0x9291, 0x9583, 0x9BAE, /* 0x20 */
- 0x524D, 0x5584, 0x6F38, 0x7136, 0x5168, 0x7985, 0x7E55, 0x81B3, /* 0x30 */
- 0x7CCE, 0x564C, 0x5851, 0x5CA8, 0x63AA, 0x66FE, 0x66FD, 0x695A, /* 0x30 */
- 0x72D9, 0x758F, 0x758E, 0x790E, 0x7956, 0x79DF, 0x7C97, 0x7D20, /* 0x40 */
- 0x7D44, 0x8607, 0x8A34, 0x963B, 0x9061, 0x9F20, 0x50E7, 0x5275, /* 0x40 */
- 0x53CC, 0x53E2, 0x5009, 0x55AA, 0x58EE, 0x594F, 0x723D, 0x5B8B, /* 0x50 */
- 0x5C64, 0x531D, 0x60E3, 0x60F3, 0x635C, 0x6383, 0x633F, 0x63BB, /* 0x50 */
- 0x64CD, 0x65E9, 0x66F9, 0x5DE3, 0x69CD, 0x69FD, 0x6F15, 0x71E5, /* 0x60 */
- 0x4E89, 0x75E9, 0x76F8, 0x7A93, 0x7CDF, 0x7DCF, 0x7D9C, 0x8061, /* 0x60 */
- 0x8349, 0x8358, 0x846C, 0x84BC, 0x85FB, 0x88C5, 0x8D70, 0x9001, /* 0x70 */
- 0x906D, 0x9397, 0x971C, 0x9A12, 0x50CF, 0x5897, 0x618E /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_42[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x81D3, 0x8535, 0x8D08, 0x9020, 0x4FC3, 0x5074, 0x5247, /* 0x20 */
- 0x5373, 0x606F, 0x6349, 0x675F, 0x6E2C, 0x8DB3, 0x901F, 0x4FD7, /* 0x20 */
- 0x5C5E, 0x8CCA, 0x65CF, 0x7D9A, 0x5352, 0x8896, 0x5176, 0x63C3, /* 0x30 */
- 0x5B58, 0x5B6B, 0x5C0A, 0x640D, 0x6751, 0x905C, 0x4ED6, 0x591A, /* 0x30 */
- 0x592A, 0x6C70, 0x8A51, 0x553E, 0x5815, 0x59A5, 0x60F0, 0x6253, /* 0x40 */
- 0x67C1, 0x8235, 0x6955, 0x9640, 0x99C4, 0x9A28, 0x4F53, 0x5806, /* 0x40 */
- 0x5BFE, 0x8010, 0x5CB1, 0x5E2F, 0x5F85, 0x6020, 0x614B, 0x6234, /* 0x50 */
- 0x66FF, 0x6CF0, 0x6EDE, 0x80CE, 0x817F, 0x82D4, 0x888B, 0x8CB8, /* 0x50 */
- 0x9000, 0x902E, 0x968A, 0x9EDB, 0x9BDB, 0x4EE3, 0x53F0, 0x5927, /* 0x60 */
- 0x7B2C, 0x918D, 0x984C, 0x9DF9, 0x6EDD, 0x7027, 0x5353, 0x5544, /* 0x60 */
- 0x5B85, 0x6258, 0x629E, 0x62D3, 0x6CA2, 0x6FEF, 0x7422, 0x8A17, /* 0x70 */
- 0x9438, 0x6FC1, 0x8AFE, 0x8338, 0x51E7, 0x86F8, 0x53EA /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_43[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x53E9, 0x4F46, 0x9054, 0x8FB0, 0x596A, 0x8131, 0x5DFD, /* 0x20 */
- 0x7AEA, 0x8FBF, 0x68DA, 0x8C37, 0x72F8, 0x9C48, 0x6A3D, 0x8AB0, /* 0x20 */
- 0x4E39, 0x5358, 0x5606, 0x5766, 0x62C5, 0x63A2, 0x65E6, 0x6B4E, /* 0x30 */
- 0x6DE1, 0x6E5B, 0x70AD, 0x77ED, 0x7AEF, 0x7BAA, 0x7DBB, 0x803D, /* 0x30 */
- 0x80C6, 0x86CB, 0x8A95, 0x935B, 0x56E3, 0x58C7, 0x5F3E, 0x65AD, /* 0x40 */
- 0x6696, 0x6A80, 0x6BB5, 0x7537, 0x8AC7, 0x5024, 0x77E5, 0x5730, /* 0x40 */
- 0x5F1B, 0x6065, 0x667A, 0x6C60, 0x75F4, 0x7A1A, 0x7F6E, 0x81F4, /* 0x50 */
- 0x8718, 0x9045, 0x99B3, 0x7BC9, 0x755C, 0x7AF9, 0x7B51, 0x84C4, /* 0x50 */
- 0x9010, 0x79E9, 0x7A92, 0x8336, 0x5AE1, 0x7740, 0x4E2D, 0x4EF2, /* 0x60 */
- 0x5B99, 0x5FE0, 0x62BD, 0x663C, 0x67F1, 0x6CE8, 0x866B, 0x8877, /* 0x60 */
- 0x8A3B, 0x914E, 0x92F3, 0x99D0, 0x6A17, 0x7026, 0x732A, 0x82E7, /* 0x70 */
- 0x8457, 0x8CAF, 0x4E01, 0x5146, 0x51CB, 0x558B, 0x5BF5 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_44[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5E16, 0x5E33, 0x5E81, 0x5F14, 0x5F35, 0x5F6B, 0x5FB4, /* 0x20 */
- 0x61F2, 0x6311, 0x66A2, 0x671D, 0x6F6E, 0x7252, 0x753A, 0x773A, /* 0x20 */
- 0x8074, 0x8139, 0x8178, 0x8776, 0x8ABF, 0x8ADC, 0x8D85, 0x8DF3, /* 0x30 */
- 0x929A, 0x9577, 0x9802, 0x9CE5, 0x52C5, 0x6357, 0x76F4, 0x6715, /* 0x30 */
- 0x6C88, 0x73CD, 0x8CC3, 0x93AE, 0x9673, 0x6D25, 0x589C, 0x690E, /* 0x40 */
- 0x69CC, 0x8FFD, 0x939A, 0x75DB, 0x901A, 0x585A, 0x6802, 0x63B4, /* 0x40 */
- 0x69FB, 0x4F43, 0x6F2C, 0x67D8, 0x8FBB, 0x8526, 0x7DB4, 0x9354, /* 0x50 */
- 0x693F, 0x6F70, 0x576A, 0x58F7, 0x5B2C, 0x7D2C, 0x722A, 0x540A, /* 0x50 */
- 0x91E3, 0x9DB4, 0x4EAD, 0x4F4E, 0x505C, 0x5075, 0x5243, 0x8C9E, /* 0x60 */
- 0x5448, 0x5824, 0x5B9A, 0x5E1D, 0x5E95, 0x5EAD, 0x5EF7, 0x5F1F, /* 0x60 */
- 0x608C, 0x62B5, 0x633A, 0x63D0, 0x68AF, 0x6C40, 0x7887, 0x798E, /* 0x70 */
- 0x7A0B, 0x7DE0, 0x8247, 0x8A02, 0x8AE6, 0x8E44, 0x9013 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_45[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x90B8, 0x912D, 0x91D8, 0x9F0E, 0x6CE5, 0x6458, 0x64E2, /* 0x20 */
- 0x6575, 0x6EF4, 0x7684, 0x7B1B, 0x9069, 0x93D1, 0x6EBA, 0x54F2, /* 0x20 */
- 0x5FB9, 0x64A4, 0x8F4D, 0x8FED, 0x9244, 0x5178, 0x586B, 0x5929, /* 0x30 */
- 0x5C55, 0x5E97, 0x6DFB, 0x7E8F, 0x751C, 0x8CBC, 0x8EE2, 0x985B, /* 0x30 */
- 0x70B9, 0x4F1D, 0x6BBF, 0x6FB1, 0x7530, 0x96FB, 0x514E, 0x5410, /* 0x40 */
- 0x5835, 0x5857, 0x59AC, 0x5C60, 0x5F92, 0x6597, 0x675C, 0x6E21, /* 0x40 */
- 0x767B, 0x83DF, 0x8CED, 0x9014, 0x90FD, 0x934D, 0x7825, 0x783A, /* 0x50 */
- 0x52AA, 0x5EA6, 0x571F, 0x5974, 0x6012, 0x5012, 0x515A, 0x51AC, /* 0x50 */
- 0x51CD, 0x5200, 0x5510, 0x5854, 0x5858, 0x5957, 0x5B95, 0x5CF6, /* 0x60 */
- 0x5D8B, 0x60BC, 0x6295, 0x642D, 0x6771, 0x6843, 0x68BC, 0x68DF, /* 0x60 */
- 0x76D7, 0x6DD8, 0x6E6F, 0x6D9B, 0x706F, 0x71C8, 0x5F53, 0x75D8, /* 0x70 */
- 0x7977, 0x7B49, 0x7B54, 0x7B52, 0x7CD6, 0x7D71, 0x5230 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_46[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8463, 0x8569, 0x85E4, 0x8A0E, 0x8B04, 0x8C46, 0x8E0F, /* 0x20 */
- 0x9003, 0x900F, 0x9419, 0x9676, 0x982D, 0x9A30, 0x95D8, 0x50CD, /* 0x20 */
- 0x52D5, 0x540C, 0x5802, 0x5C0E, 0x61A7, 0x649E, 0x6D1E, 0x77B3, /* 0x30 */
- 0x7AE5, 0x80F4, 0x8404, 0x9053, 0x9285, 0x5CE0, 0x9D07, 0x533F, /* 0x30 */
- 0x5F97, 0x5FB3, 0x6D9C, 0x7279, 0x7763, 0x79BF, 0x7BE4, 0x6BD2, /* 0x40 */
- 0x72EC, 0x8AAD, 0x6803, 0x6A61, 0x51F8, 0x7A81, 0x6934, 0x5C4A, /* 0x40 */
- 0x9CF6, 0x82EB, 0x5BC5, 0x9149, 0x701E, 0x5678, 0x5C6F, 0x60C7, /* 0x50 */
- 0x6566, 0x6C8C, 0x8C5A, 0x9041, 0x9813, 0x5451, 0x66C7, 0x920D, /* 0x50 */
- 0x5948, 0x90A3, 0x5185, 0x4E4D, 0x51EA, 0x8599, 0x8B0E, 0x7058, /* 0x60 */
- 0x637A, 0x934B, 0x6962, 0x99B4, 0x7E04, 0x7577, 0x5357, 0x6960, /* 0x60 */
- 0x8EDF, 0x96E3, 0x6C5D, 0x4E8C, 0x5C3C, 0x5F10, 0x8FE9, 0x5302, /* 0x70 */
- 0x8CD1, 0x8089, 0x8679, 0x5EFF, 0x65E5, 0x4E73, 0x5165 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_47[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5982, 0x5C3F, 0x97EE, 0x4EFB, 0x598A, 0x5FCD, 0x8A8D, /* 0x20 */
- 0x6FE1, 0x79B0, 0x7962, 0x5BE7, 0x8471, 0x732B, 0x71B1, 0x5E74, /* 0x20 */
- 0x5FF5, 0x637B, 0x649A, 0x71C3, 0x7C98, 0x4E43, 0x5EFC, 0x4E4B, /* 0x30 */
- 0x57DC, 0x56A2, 0x60A9, 0x6FC3, 0x7D0D, 0x80FD, 0x8133, 0x81BF, /* 0x30 */
- 0x8FB2, 0x8997, 0x86A4, 0x5DF4, 0x628A, 0x64AD, 0x8987, 0x6777, /* 0x40 */
- 0x6CE2, 0x6D3E, 0x7436, 0x7834, 0x5A46, 0x7F75, 0x82AD, 0x99AC, /* 0x40 */
- 0x4FF3, 0x5EC3, 0x62DD, 0x6392, 0x6557, 0x676F, 0x76C3, 0x724C, /* 0x50 */
- 0x80CC, 0x80BA, 0x8F29, 0x914D, 0x500D, 0x57F9, 0x5A92, 0x6885, /* 0x50 */
- 0x6973, 0x7164, 0x72FD, 0x8CB7, 0x58F2, 0x8CE0, 0x966A, 0x9019, /* 0x60 */
- 0x877F, 0x79E4, 0x77E7, 0x8429, 0x4F2F, 0x5265, 0x535A, 0x62CD, /* 0x60 */
- 0x67CF, 0x6CCA, 0x767D, 0x7B94, 0x7C95, 0x8236, 0x8584, 0x8FEB, /* 0x70 */
- 0x66DD, 0x6F20, 0x7206, 0x7E1B, 0x83AB, 0x99C1, 0x9EA6 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_48[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x51FD, 0x7BB1, 0x7872, 0x7BB8, 0x8087, 0x7B48, 0x6AE8, /* 0x20 */
- 0x5E61, 0x808C, 0x7551, 0x7560, 0x516B, 0x9262, 0x6E8C, 0x767A, /* 0x20 */
- 0x9197, 0x9AEA, 0x4F10, 0x7F70, 0x629C, 0x7B4F, 0x95A5, 0x9CE9, /* 0x30 */
- 0x567A, 0x5859, 0x86E4, 0x96BC, 0x4F34, 0x5224, 0x534A, 0x53CD, /* 0x30 */
- 0x53DB, 0x5E06, 0x642C, 0x6591, 0x677F, 0x6C3E, 0x6C4E, 0x7248, /* 0x40 */
- 0x72AF, 0x73ED, 0x7554, 0x7E41, 0x822C, 0x85E9, 0x8CA9, 0x7BC4, /* 0x40 */
- 0x91C6, 0x7169, 0x9812, 0x98EF, 0x633D, 0x6669, 0x756A, 0x76E4, /* 0x50 */
- 0x78D0, 0x8543, 0x86EE, 0x532A, 0x5351, 0x5426, 0x5983, 0x5E87, /* 0x50 */
- 0x5F7C, 0x60B2, 0x6249, 0x6279, 0x62AB, 0x6590, 0x6BD4, 0x6CCC, /* 0x60 */
- 0x75B2, 0x76AE, 0x7891, 0x79D8, 0x7DCB, 0x7F77, 0x80A5, 0x88AB, /* 0x60 */
- 0x8AB9, 0x8CBB, 0x907F, 0x975E, 0x98DB, 0x6A0B, 0x7C38, 0x5099, /* 0x70 */
- 0x5C3E, 0x5FAE, 0x6787, 0x6BD8, 0x7435, 0x7709, 0x7F8E /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_49[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9F3B, 0x67CA, 0x7A17, 0x5339, 0x758B, 0x9AED, 0x5F66, /* 0x20 */
- 0x819D, 0x83F1, 0x8098, 0x5F3C, 0x5FC5, 0x7562, 0x7B46, 0x903C, /* 0x20 */
- 0x6867, 0x59EB, 0x5A9B, 0x7D10, 0x767E, 0x8B2C, 0x4FF5, 0x5F6A, /* 0x30 */
- 0x6A19, 0x6C37, 0x6F02, 0x74E2, 0x7968, 0x8868, 0x8A55, 0x8C79, /* 0x30 */
- 0x5EDF, 0x63CF, 0x75C5, 0x79D2, 0x82D7, 0x9328, 0x92F2, 0x849C, /* 0x40 */
- 0x86ED, 0x9C2D, 0x54C1, 0x5F6C, 0x658C, 0x6D5C, 0x7015, 0x8CA7, /* 0x40 */
- 0x8CD3, 0x983B, 0x654F, 0x74F6, 0x4E0D, 0x4ED8, 0x57E0, 0x592B, /* 0x50 */
- 0x5A66, 0x5BCC, 0x51A8, 0x5E03, 0x5E9C, 0x6016, 0x6276, 0x6577, /* 0x50 */
- 0x65A7, 0x666E, 0x6D6E, 0x7236, 0x7B26, 0x8150, 0x819A, 0x8299, /* 0x60 */
- 0x8B5C, 0x8CA0, 0x8CE6, 0x8D74, 0x961C, 0x9644, 0x4FAE, 0x64AB, /* 0x60 */
- 0x6B66, 0x821E, 0x8461, 0x856A, 0x90E8, 0x5C01, 0x6953, 0x98A8, /* 0x70 */
- 0x847A, 0x8557, 0x4F0F, 0x526F, 0x5FA9, 0x5E45, 0x670D /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_4A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x798F, 0x8179, 0x8907, 0x8986, 0x6DF5, 0x5F17, 0x6255, /* 0x20 */
- 0x6CB8, 0x4ECF, 0x7269, 0x9B92, 0x5206, 0x543B, 0x5674, 0x58B3, /* 0x20 */
- 0x61A4, 0x626E, 0x711A, 0x596E, 0x7C89, 0x7CDE, 0x7D1B, 0x96F0, /* 0x30 */
- 0x6587, 0x805E, 0x4E19, 0x4F75, 0x5175, 0x5840, 0x5E63, 0x5E73, /* 0x30 */
- 0x5F0A, 0x67C4, 0x4E26, 0x853D, 0x9589, 0x965B, 0x7C73, 0x9801, /* 0x40 */
- 0x50FB, 0x58C1, 0x7656, 0x78A7, 0x5225, 0x77A5, 0x8511, 0x7B86, /* 0x40 */
- 0x504F, 0x5909, 0x7247, 0x7BC7, 0x7DE8, 0x8FBA, 0x8FD4, 0x904D, /* 0x50 */
- 0x4FBF, 0x52C9, 0x5A29, 0x5F01, 0x97AD, 0x4FDD, 0x8217, 0x92EA, /* 0x50 */
- 0x5703, 0x6355, 0x6B69, 0x752B, 0x88DC, 0x8F14, 0x7A42, 0x52DF, /* 0x60 */
- 0x5893, 0x6155, 0x620A, 0x66AE, 0x6BCD, 0x7C3F, 0x83E9, 0x5023, /* 0x60 */
- 0x4FF8, 0x5305, 0x5446, 0x5831, 0x5949, 0x5B9D, 0x5CF0, 0x5CEF, /* 0x70 */
- 0x5D29, 0x5E96, 0x62B1, 0x6367, 0x653E, 0x65B9, 0x670B /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_4B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6CD5, 0x6CE1, 0x70F9, 0x7832, 0x7E2B, 0x80DE, 0x82B3, /* 0x20 */
- 0x840C, 0x84EC, 0x8702, 0x8912, 0x8A2A, 0x8C4A, 0x90A6, 0x92D2, /* 0x20 */
- 0x98FD, 0x9CF3, 0x9D6C, 0x4E4F, 0x4EA1, 0x508D, 0x5256, 0x574A, /* 0x30 */
- 0x59A8, 0x5E3D, 0x5FD8, 0x5FD9, 0x623F, 0x66B4, 0x671B, 0x67D0, /* 0x30 */
- 0x68D2, 0x5192, 0x7D21, 0x80AA, 0x81A8, 0x8B00, 0x8C8C, 0x8CBF, /* 0x40 */
- 0x927E, 0x9632, 0x5420, 0x982C, 0x5317, 0x50D5, 0x535C, 0x58A8, /* 0x40 */
- 0x64B2, 0x6734, 0x7267, 0x7766, 0x7A46, 0x91E6, 0x52C3, 0x6CA1, /* 0x50 */
- 0x6B86, 0x5800, 0x5E4C, 0x5954, 0x672C, 0x7FFB, 0x51E1, 0x76C6, /* 0x50 */
- 0x6469, 0x78E8, 0x9B54, 0x9EBB, 0x57CB, 0x59B9, 0x6627, 0x679A, /* 0x60 */
- 0x6BCE, 0x54E9, 0x69D9, 0x5E55, 0x819C, 0x6795, 0x9BAA, 0x67FE, /* 0x60 */
- 0x9C52, 0x685D, 0x4EA6, 0x4FE3, 0x53C8, 0x62B9, 0x672B, 0x6CAB, /* 0x70 */
- 0x8FC4, 0x4FAD, 0x7E6D, 0x9EBF, 0x4E07, 0x6162, 0x6E80 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_4C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6F2B, 0x8513, 0x5473, 0x672A, 0x9B45, 0x5DF3, 0x7B95, /* 0x20 */
- 0x5CAC, 0x5BC6, 0x871C, 0x6E4A, 0x84D1, 0x7A14, 0x8108, 0x5999, /* 0x20 */
- 0x7C8D, 0x6C11, 0x7720, 0x52D9, 0x5922, 0x7121, 0x725F, 0x77DB, /* 0x30 */
- 0x9727, 0x9D61, 0x690B, 0x5A7F, 0x5A18, 0x51A5, 0x540D, 0x547D, /* 0x30 */
- 0x660E, 0x76DF, 0x8FF7, 0x9298, 0x9CF4, 0x59EA, 0x725D, 0x6EC5, /* 0x40 */
- 0x514D, 0x68C9, 0x7DBF, 0x7DEC, 0x9762, 0x9EBA, 0x6478, 0x6A21, /* 0x40 */
- 0x8302, 0x5984, 0x5B5F, 0x6BDB, 0x731B, 0x76F2, 0x7DB2, 0x8017, /* 0x50 */
- 0x8499, 0x5132, 0x6728, 0x9ED9, 0x76EE, 0x6762, 0x52FF, 0x9905, /* 0x50 */
- 0x5C24, 0x623B, 0x7C7E, 0x8CB0, 0x554F, 0x60B6, 0x7D0B, 0x9580, /* 0x60 */
- 0x5301, 0x4E5F, 0x51B6, 0x591C, 0x723A, 0x8036, 0x91CE, 0x5F25, /* 0x60 */
- 0x77E2, 0x5384, 0x5F79, 0x7D04, 0x85AC, 0x8A33, 0x8E8D, 0x9756, /* 0x70 */
- 0x67F3, 0x85AE, 0x9453, 0x6109, 0x6108, 0x6CB9, 0x7652 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_4D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8AED, 0x8F38, 0x552F, 0x4F51, 0x512A, 0x52C7, 0x53CB, /* 0x20 */
- 0x5BA5, 0x5E7D, 0x60A0, 0x6182, 0x63D6, 0x6709, 0x67DA, 0x6E67, /* 0x20 */
- 0x6D8C, 0x7336, 0x7337, 0x7531, 0x7950, 0x88D5, 0x8A98, 0x904A, /* 0x30 */
- 0x9091, 0x90F5, 0x96C4, 0x878D, 0x5915, 0x4E88, 0x4F59, 0x4E0E, /* 0x30 */
- 0x8A89, 0x8F3F, 0x9810, 0x50AD, 0x5E7C, 0x5996, 0x5BB9, 0x5EB8, /* 0x40 */
- 0x63DA, 0x63FA, 0x64C1, 0x66DC, 0x694A, 0x69D8, 0x6D0B, 0x6EB6, /* 0x40 */
- 0x7194, 0x7528, 0x7AAF, 0x7F8A, 0x8000, 0x8449, 0x84C9, 0x8981, /* 0x50 */
- 0x8B21, 0x8E0A, 0x9065, 0x967D, 0x990A, 0x617E, 0x6291, 0x6B32, /* 0x50 */
- 0x6C83, 0x6D74, 0x7FCC, 0x7FFC, 0x6DC0, 0x7F85, 0x87BA, 0x88F8, /* 0x60 */
- 0x6765, 0x83B1, 0x983C, 0x96F7, 0x6D1B, 0x7D61, 0x843D, 0x916A, /* 0x60 */
- 0x4E71, 0x5375, 0x5D50, 0x6B04, 0x6FEB, 0x85CD, 0x862D, 0x89A7, /* 0x70 */
- 0x5229, 0x540F, 0x5C65, 0x674E, 0x68A8, 0x7406, 0x7483 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_4E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x75E2, 0x88CF, 0x88E1, 0x91CC, 0x96E2, 0x9678, 0x5F8B, /* 0x20 */
- 0x7387, 0x7ACB, 0x844E, 0x63A0, 0x7565, 0x5289, 0x6D41, 0x6E9C, /* 0x20 */
- 0x7409, 0x7559, 0x786B, 0x7C92, 0x9686, 0x7ADC, 0x9F8D, 0x4FB6, /* 0x30 */
- 0x616E, 0x65C5, 0x865C, 0x4E86, 0x4EAE, 0x50DA, 0x4E21, 0x51CC, /* 0x30 */
- 0x5BEE, 0x6599, 0x6881, 0x6DBC, 0x731F, 0x7642, 0x77AD, 0x7A1C, /* 0x40 */
- 0x7CE7, 0x826F, 0x8AD2, 0x907C, 0x91CF, 0x9675, 0x9818, 0x529B, /* 0x40 */
- 0x7DD1, 0x502B, 0x5398, 0x6797, 0x6DCB, 0x71D0, 0x7433, 0x81E8, /* 0x50 */
- 0x8F2A, 0x96A3, 0x9C57, 0x9E9F, 0x7460, 0x5841, 0x6D99, 0x7D2F, /* 0x50 */
- 0x985E, 0x4EE4, 0x4F36, 0x4F8B, 0x51B7, 0x52B1, 0x5DBA, 0x601C, /* 0x60 */
- 0x73B2, 0x793C, 0x82D3, 0x9234, 0x96B7, 0x96F6, 0x970A, 0x9E97, /* 0x60 */
- 0x9F62, 0x66A6, 0x6B74, 0x5217, 0x52A3, 0x70C8, 0x88C2, 0x5EC9, /* 0x70 */
- 0x604B, 0x6190, 0x6F23, 0x7149, 0x7C3E, 0x7DF4, 0x806F /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_4F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x84EE, 0x9023, 0x932C, 0x5442, 0x9B6F, 0x6AD3, 0x7089, /* 0x20 */
- 0x8CC2, 0x8DEF, 0x9732, 0x52B4, 0x5A41, 0x5ECA, 0x5F04, 0x6717, /* 0x20 */
- 0x697C, 0x6994, 0x6D6A, 0x6F0F, 0x7262, 0x72FC, 0x7BED, 0x8001, /* 0x30 */
- 0x807E, 0x874B, 0x90CE, 0x516D, 0x9E93, 0x7984, 0x808B, 0x9332, /* 0x30 */
- 0x8AD6, 0x502D, 0x548C, 0x8A71, 0x6B6A, 0x8CC4, 0x8107, 0x60D1, /* 0x40 */
- 0x67A0, 0x9DF2, 0x4E99, 0x4E98, 0x9C10, 0x8A6B, 0x85C1, 0x8568, /* 0x40 */
- 0x6900, 0x6E7E, 0x7897, 0x8155 /* 0x50 */
- /* 0x50 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_50[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5F0C, 0x4E10, 0x4E15, 0x4E2A, 0x4E31, 0x4E36, 0x4E3C, /* 0x20 */
- 0x4E3F, 0x4E42, 0x4E56, 0x4E58, 0x4E82, 0x4E85, 0x8C6B, 0x4E8A, /* 0x20 */
- 0x8212, 0x5F0D, 0x4E8E, 0x4E9E, 0x4E9F, 0x4EA0, 0x4EA2, 0x4EB0, /* 0x30 */
- 0x4EB3, 0x4EB6, 0x4ECE, 0x4ECD, 0x4EC4, 0x4EC6, 0x4EC2, 0x4ED7, /* 0x30 */
- 0x4EDE, 0x4EED, 0x4EDF, 0x4EF7, 0x4F09, 0x4F5A, 0x4F30, 0x4F5B, /* 0x40 */
- 0x4F5D, 0x4F57, 0x4F47, 0x4F76, 0x4F88, 0x4F8F, 0x4F98, 0x4F7B, /* 0x40 */
- 0x4F69, 0x4F70, 0x4F91, 0x4F6F, 0x4F86, 0x4F96, 0x5118, 0x4FD4, /* 0x50 */
- 0x4FDF, 0x4FCE, 0x4FD8, 0x4FDB, 0x4FD1, 0x4FDA, 0x4FD0, 0x4FE4, /* 0x50 */
- 0x4FE5, 0x501A, 0x5028, 0x5014, 0x502A, 0x5025, 0x5005, 0x4F1C, /* 0x60 */
- 0x4FF6, 0x5021, 0x5029, 0x502C, 0x4FFE, 0x4FEF, 0x5011, 0x5006, /* 0x60 */
- 0x5043, 0x5047, 0x6703, 0x5055, 0x5050, 0x5048, 0x505A, 0x5056, /* 0x70 */
- 0x506C, 0x5078, 0x5080, 0x509A, 0x5085, 0x50B4, 0x50B2 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_51[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x50C9, 0x50CA, 0x50B3, 0x50C2, 0x50D6, 0x50DE, 0x50E5, /* 0x20 */
- 0x50ED, 0x50E3, 0x50EE, 0x50F9, 0x50F5, 0x5109, 0x5101, 0x5102, /* 0x20 */
- 0x5116, 0x5115, 0x5114, 0x511A, 0x5121, 0x513A, 0x5137, 0x513C, /* 0x30 */
- 0x513B, 0x513F, 0x5140, 0x5152, 0x514C, 0x5154, 0x5162, 0x7AF8, /* 0x30 */
- 0x5169, 0x516A, 0x516E, 0x5180, 0x5182, 0x56D8, 0x518C, 0x5189, /* 0x40 */
- 0x518F, 0x5191, 0x5193, 0x5195, 0x5196, 0x51A4, 0x51A6, 0x51A2, /* 0x40 */
- 0x51A9, 0x51AA, 0x51AB, 0x51B3, 0x51B1, 0x51B2, 0x51B0, 0x51B5, /* 0x50 */
- 0x51BD, 0x51C5, 0x51C9, 0x51DB, 0x51E0, 0x8655, 0x51E9, 0x51ED, /* 0x50 */
- 0x51F0, 0x51F5, 0x51FE, 0x5204, 0x520B, 0x5214, 0x520E, 0x5227, /* 0x60 */
- 0x522A, 0x522E, 0x5233, 0x5239, 0x524F, 0x5244, 0x524B, 0x524C, /* 0x60 */
- 0x525E, 0x5254, 0x526A, 0x5274, 0x5269, 0x5273, 0x527F, 0x527D, /* 0x70 */
- 0x528D, 0x5294, 0x5292, 0x5271, 0x5288, 0x5291, 0x8FA8 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_52[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8FA7, 0x52AC, 0x52AD, 0x52BC, 0x52B5, 0x52C1, 0x52CD, /* 0x20 */
- 0x52D7, 0x52DE, 0x52E3, 0x52E6, 0x98ED, 0x52E0, 0x52F3, 0x52F5, /* 0x20 */
- 0x52F8, 0x52F9, 0x5306, 0x5308, 0x7538, 0x530D, 0x5310, 0x530F, /* 0x30 */
- 0x5315, 0x531A, 0x5323, 0x532F, 0x5331, 0x5333, 0x5338, 0x5340, /* 0x30 */
- 0x5346, 0x5345, 0x4E17, 0x5349, 0x534D, 0x51D6, 0x535E, 0x5369, /* 0x40 */
- 0x536E, 0x5918, 0x537B, 0x5377, 0x5382, 0x5396, 0x53A0, 0x53A6, /* 0x40 */
- 0x53A5, 0x53AE, 0x53B0, 0x53B6, 0x53C3, 0x7C12, 0x96D9, 0x53DF, /* 0x50 */
- 0x66FC, 0x71EE, 0x53EE, 0x53E8, 0x53ED, 0x53FA, 0x5401, 0x543D, /* 0x50 */
- 0x5440, 0x542C, 0x542D, 0x543C, 0x542E, 0x5436, 0x5429, 0x541D, /* 0x60 */
- 0x544E, 0x548F, 0x5475, 0x548E, 0x545F, 0x5471, 0x5477, 0x5470, /* 0x60 */
- 0x5492, 0x547B, 0x5480, 0x5476, 0x5484, 0x5490, 0x5486, 0x54C7, /* 0x70 */
- 0x54A2, 0x54B8, 0x54A5, 0x54AC, 0x54C4, 0x54C8, 0x54A8 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_53[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x54AB, 0x54C2, 0x54A4, 0x54BE, 0x54BC, 0x54D8, 0x54E5, /* 0x20 */
- 0x54E6, 0x550F, 0x5514, 0x54FD, 0x54EE, 0x54ED, 0x54FA, 0x54E2, /* 0x20 */
- 0x5539, 0x5540, 0x5563, 0x554C, 0x552E, 0x555C, 0x5545, 0x5556, /* 0x30 */
- 0x5557, 0x5538, 0x5533, 0x555D, 0x5599, 0x5580, 0x54AF, 0x558A, /* 0x30 */
- 0x559F, 0x557B, 0x557E, 0x5598, 0x559E, 0x55AE, 0x557C, 0x5583, /* 0x40 */
- 0x55A9, 0x5587, 0x55A8, 0x55DA, 0x55C5, 0x55DF, 0x55C4, 0x55DC, /* 0x40 */
- 0x55E4, 0x55D4, 0x5614, 0x55F7, 0x5616, 0x55FE, 0x55FD, 0x561B, /* 0x50 */
- 0x55F9, 0x564E, 0x5650, 0x71DF, 0x5634, 0x5636, 0x5632, 0x5638, /* 0x50 */
- 0x566B, 0x5664, 0x562F, 0x566C, 0x566A, 0x5686, 0x5680, 0x568A, /* 0x60 */
- 0x56A0, 0x5694, 0x568F, 0x56A5, 0x56AE, 0x56B6, 0x56B4, 0x56C2, /* 0x60 */
- 0x56BC, 0x56C1, 0x56C3, 0x56C0, 0x56C8, 0x56CE, 0x56D1, 0x56D3, /* 0x70 */
- 0x56D7, 0x56EE, 0x56F9, 0x5700, 0x56FF, 0x5704, 0x5709 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_54[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5708, 0x570B, 0x570D, 0x5713, 0x5718, 0x5716, 0x55C7, /* 0x20 */
- 0x571C, 0x5726, 0x5737, 0x5738, 0x574E, 0x573B, 0x5740, 0x574F, /* 0x20 */
- 0x5769, 0x57C0, 0x5788, 0x5761, 0x577F, 0x5789, 0x5793, 0x57A0, /* 0x30 */
- 0x57B3, 0x57A4, 0x57AA, 0x57B0, 0x57C3, 0x57C6, 0x57D4, 0x57D2, /* 0x30 */
- 0x57D3, 0x580A, 0x57D6, 0x57E3, 0x580B, 0x5819, 0x581D, 0x5872, /* 0x40 */
- 0x5821, 0x5862, 0x584B, 0x5870, 0x6BC0, 0x5852, 0x583D, 0x5879, /* 0x40 */
- 0x5885, 0x58B9, 0x589F, 0x58AB, 0x58BA, 0x58DE, 0x58BB, 0x58B8, /* 0x50 */
- 0x58AE, 0x58C5, 0x58D3, 0x58D1, 0x58D7, 0x58D9, 0x58D8, 0x58E5, /* 0x50 */
- 0x58DC, 0x58E4, 0x58DF, 0x58EF, 0x58FA, 0x58F9, 0x58FB, 0x58FC, /* 0x60 */
- 0x58FD, 0x5902, 0x590A, 0x5910, 0x591B, 0x68A6, 0x5925, 0x592C, /* 0x60 */
- 0x592D, 0x5932, 0x5938, 0x593E, 0x7AD2, 0x5955, 0x5950, 0x594E, /* 0x70 */
- 0x595A, 0x5958, 0x5962, 0x5960, 0x5967, 0x596C, 0x5969 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_55[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5978, 0x5981, 0x599D, 0x4F5E, 0x4FAB, 0x59A3, 0x59B2, /* 0x20 */
- 0x59C6, 0x59E8, 0x59DC, 0x598D, 0x59D9, 0x59DA, 0x5A25, 0x5A1F, /* 0x20 */
- 0x5A11, 0x5A1C, 0x5A09, 0x5A1A, 0x5A40, 0x5A6C, 0x5A49, 0x5A35, /* 0x30 */
- 0x5A36, 0x5A62, 0x5A6A, 0x5A9A, 0x5ABC, 0x5ABE, 0x5ACB, 0x5AC2, /* 0x30 */
- 0x5ABD, 0x5AE3, 0x5AD7, 0x5AE6, 0x5AE9, 0x5AD6, 0x5AFA, 0x5AFB, /* 0x40 */
- 0x5B0C, 0x5B0B, 0x5B16, 0x5B32, 0x5AD0, 0x5B2A, 0x5B36, 0x5B3E, /* 0x40 */
- 0x5B43, 0x5B45, 0x5B40, 0x5B51, 0x5B55, 0x5B5A, 0x5B5B, 0x5B65, /* 0x50 */
- 0x5B69, 0x5B70, 0x5B73, 0x5B75, 0x5B78, 0x6588, 0x5B7A, 0x5B80, /* 0x50 */
- 0x5B83, 0x5BA6, 0x5BB8, 0x5BC3, 0x5BC7, 0x5BC9, 0x5BD4, 0x5BD0, /* 0x60 */
- 0x5BE4, 0x5BE6, 0x5BE2, 0x5BDE, 0x5BE5, 0x5BEB, 0x5BF0, 0x5BF6, /* 0x60 */
- 0x5BF3, 0x5C05, 0x5C07, 0x5C08, 0x5C0D, 0x5C13, 0x5C20, 0x5C22, /* 0x70 */
- 0x5C28, 0x5C38, 0x5C39, 0x5C41, 0x5C46, 0x5C4E, 0x5C53 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_56[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5C50, 0x5C4F, 0x5B71, 0x5C6C, 0x5C6E, 0x4E62, 0x5C76, /* 0x20 */
- 0x5C79, 0x5C8C, 0x5C91, 0x5C94, 0x599B, 0x5CAB, 0x5CBB, 0x5CB6, /* 0x20 */
- 0x5CBC, 0x5CB7, 0x5CC5, 0x5CBE, 0x5CC7, 0x5CD9, 0x5CE9, 0x5CFD, /* 0x30 */
- 0x5CFA, 0x5CED, 0x5D8C, 0x5CEA, 0x5D0B, 0x5D15, 0x5D17, 0x5D5C, /* 0x30 */
- 0x5D1F, 0x5D1B, 0x5D11, 0x5D14, 0x5D22, 0x5D1A, 0x5D19, 0x5D18, /* 0x40 */
- 0x5D4C, 0x5D52, 0x5D4E, 0x5D4B, 0x5D6C, 0x5D73, 0x5D76, 0x5D87, /* 0x40 */
- 0x5D84, 0x5D82, 0x5DA2, 0x5D9D, 0x5DAC, 0x5DAE, 0x5DBD, 0x5D90, /* 0x50 */
- 0x5DB7, 0x5DBC, 0x5DC9, 0x5DCD, 0x5DD3, 0x5DD2, 0x5DD6, 0x5DDB, /* 0x50 */
- 0x5DEB, 0x5DF2, 0x5DF5, 0x5E0B, 0x5E1A, 0x5E19, 0x5E11, 0x5E1B, /* 0x60 */
- 0x5E36, 0x5E37, 0x5E44, 0x5E43, 0x5E40, 0x5E4E, 0x5E57, 0x5E54, /* 0x60 */
- 0x5E5F, 0x5E62, 0x5E64, 0x5E47, 0x5E75, 0x5E76, 0x5E7A, 0x9EBC, /* 0x70 */
- 0x5E7F, 0x5EA0, 0x5EC1, 0x5EC2, 0x5EC8, 0x5ED0, 0x5ECF /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_57[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5ED6, 0x5EE3, 0x5EDD, 0x5EDA, 0x5EDB, 0x5EE2, 0x5EE1, /* 0x20 */
- 0x5EE8, 0x5EE9, 0x5EEC, 0x5EF1, 0x5EF3, 0x5EF0, 0x5EF4, 0x5EF8, /* 0x20 */
- 0x5EFE, 0x5F03, 0x5F09, 0x5F5D, 0x5F5C, 0x5F0B, 0x5F11, 0x5F16, /* 0x30 */
- 0x5F29, 0x5F2D, 0x5F38, 0x5F41, 0x5F48, 0x5F4C, 0x5F4E, 0x5F2F, /* 0x30 */
- 0x5F51, 0x5F56, 0x5F57, 0x5F59, 0x5F61, 0x5F6D, 0x5F73, 0x5F77, /* 0x40 */
- 0x5F83, 0x5F82, 0x5F7F, 0x5F8A, 0x5F88, 0x5F91, 0x5F87, 0x5F9E, /* 0x40 */
- 0x5F99, 0x5F98, 0x5FA0, 0x5FA8, 0x5FAD, 0x5FBC, 0x5FD6, 0x5FFB, /* 0x50 */
- 0x5FE4, 0x5FF8, 0x5FF1, 0x5FDD, 0x60B3, 0x5FFF, 0x6021, 0x6060, /* 0x50 */
- 0x6019, 0x6010, 0x6029, 0x600E, 0x6031, 0x601B, 0x6015, 0x602B, /* 0x60 */
- 0x6026, 0x600F, 0x603A, 0x605A, 0x6041, 0x606A, 0x6077, 0x605F, /* 0x60 */
- 0x604A, 0x6046, 0x604D, 0x6063, 0x6043, 0x6064, 0x6042, 0x606C, /* 0x70 */
- 0x606B, 0x6059, 0x6081, 0x608D, 0x60E7, 0x6083, 0x609A /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_58[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6084, 0x609B, 0x6096, 0x6097, 0x6092, 0x60A7, 0x608B, /* 0x20 */
- 0x60E1, 0x60B8, 0x60E0, 0x60D3, 0x60B4, 0x5FF0, 0x60BD, 0x60C6, /* 0x20 */
- 0x60B5, 0x60D8, 0x614D, 0x6115, 0x6106, 0x60F6, 0x60F7, 0x6100, /* 0x30 */
- 0x60F4, 0x60FA, 0x6103, 0x6121, 0x60FB, 0x60F1, 0x610D, 0x610E, /* 0x30 */
- 0x6147, 0x613E, 0x6128, 0x6127, 0x614A, 0x613F, 0x613C, 0x612C, /* 0x40 */
- 0x6134, 0x613D, 0x6142, 0x6144, 0x6173, 0x6177, 0x6158, 0x6159, /* 0x40 */
- 0x615A, 0x616B, 0x6174, 0x616F, 0x6165, 0x6171, 0x615F, 0x615D, /* 0x50 */
- 0x6153, 0x6175, 0x6199, 0x6196, 0x6187, 0x61AC, 0x6194, 0x619A, /* 0x50 */
- 0x618A, 0x6191, 0x61AB, 0x61AE, 0x61CC, 0x61CA, 0x61C9, 0x61F7, /* 0x60 */
- 0x61C8, 0x61C3, 0x61C6, 0x61BA, 0x61CB, 0x7F79, 0x61CD, 0x61E6, /* 0x60 */
- 0x61E3, 0x61F6, 0x61FA, 0x61F4, 0x61FF, 0x61FD, 0x61FC, 0x61FE, /* 0x70 */
- 0x6200, 0x6208, 0x6209, 0x620D, 0x620C, 0x6214, 0x621B /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_59[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x621E, 0x6221, 0x622A, 0x622E, 0x6230, 0x6232, 0x6233, /* 0x20 */
- 0x6241, 0x624E, 0x625E, 0x6263, 0x625B, 0x6260, 0x6268, 0x627C, /* 0x20 */
- 0x6282, 0x6289, 0x627E, 0x6292, 0x6293, 0x6296, 0x62D4, 0x6283, /* 0x30 */
- 0x6294, 0x62D7, 0x62D1, 0x62BB, 0x62CF, 0x62FF, 0x62C6, 0x64D4, /* 0x30 */
- 0x62C8, 0x62DC, 0x62CC, 0x62CA, 0x62C2, 0x62C7, 0x629B, 0x62C9, /* 0x40 */
- 0x630C, 0x62EE, 0x62F1, 0x6327, 0x6302, 0x6308, 0x62EF, 0x62F5, /* 0x40 */
- 0x6350, 0x633E, 0x634D, 0x641C, 0x634F, 0x6396, 0x638E, 0x6380, /* 0x50 */
- 0x63AB, 0x6376, 0x63A3, 0x638F, 0x6389, 0x639F, 0x63B5, 0x636B, /* 0x50 */
- 0x6369, 0x63BE, 0x63E9, 0x63C0, 0x63C6, 0x63E3, 0x63C9, 0x63D2, /* 0x60 */
- 0x63F6, 0x63C4, 0x6416, 0x6434, 0x6406, 0x6413, 0x6426, 0x6436, /* 0x60 */
- 0x651D, 0x6417, 0x6428, 0x640F, 0x6467, 0x646F, 0x6476, 0x644E, /* 0x70 */
- 0x652A, 0x6495, 0x6493, 0x64A5, 0x64A9, 0x6488, 0x64BC /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_5A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x64DA, 0x64D2, 0x64C5, 0x64C7, 0x64BB, 0x64D8, 0x64C2, /* 0x20 */
- 0x64F1, 0x64E7, 0x8209, 0x64E0, 0x64E1, 0x62AC, 0x64E3, 0x64EF, /* 0x20 */
- 0x652C, 0x64F6, 0x64F4, 0x64F2, 0x64FA, 0x6500, 0x64FD, 0x6518, /* 0x30 */
- 0x651C, 0x6505, 0x6524, 0x6523, 0x652B, 0x6534, 0x6535, 0x6537, /* 0x30 */
- 0x6536, 0x6538, 0x754B, 0x6548, 0x6556, 0x6555, 0x654D, 0x6558, /* 0x40 */
- 0x655E, 0x655D, 0x6572, 0x6578, 0x6582, 0x6583, 0x8B8A, 0x659B, /* 0x40 */
- 0x659F, 0x65AB, 0x65B7, 0x65C3, 0x65C6, 0x65C1, 0x65C4, 0x65CC, /* 0x50 */
- 0x65D2, 0x65DB, 0x65D9, 0x65E0, 0x65E1, 0x65F1, 0x6772, 0x660A, /* 0x50 */
- 0x6603, 0x65FB, 0x6773, 0x6635, 0x6636, 0x6634, 0x661C, 0x664F, /* 0x60 */
- 0x6644, 0x6649, 0x6641, 0x665E, 0x665D, 0x6664, 0x6667, 0x6668, /* 0x60 */
- 0x665F, 0x6662, 0x6670, 0x6683, 0x6688, 0x668E, 0x6689, 0x6684, /* 0x70 */
- 0x6698, 0x669D, 0x66C1, 0x66B9, 0x66C9, 0x66BE, 0x66BC /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_5B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x66C4, 0x66B8, 0x66D6, 0x66DA, 0x66E0, 0x663F, 0x66E6, /* 0x20 */
- 0x66E9, 0x66F0, 0x66F5, 0x66F7, 0x670F, 0x6716, 0x671E, 0x6726, /* 0x20 */
- 0x6727, 0x9738, 0x672E, 0x673F, 0x6736, 0x6741, 0x6738, 0x6737, /* 0x30 */
- 0x6746, 0x675E, 0x6760, 0x6759, 0x6763, 0x6764, 0x6789, 0x6770, /* 0x30 */
- 0x67A9, 0x677C, 0x676A, 0x678C, 0x678B, 0x67A6, 0x67A1, 0x6785, /* 0x40 */
- 0x67B7, 0x67EF, 0x67B4, 0x67EC, 0x67B3, 0x67E9, 0x67B8, 0x67E4, /* 0x40 */
- 0x67DE, 0x67DD, 0x67E2, 0x67EE, 0x67B9, 0x67CE, 0x67C6, 0x67E7, /* 0x50 */
- 0x6A9C, 0x681E, 0x6846, 0x6829, 0x6840, 0x684D, 0x6832, 0x684E, /* 0x50 */
- 0x68B3, 0x682B, 0x6859, 0x6863, 0x6877, 0x687F, 0x689F, 0x688F, /* 0x60 */
- 0x68AD, 0x6894, 0x689D, 0x689B, 0x6883, 0x6AAE, 0x68B9, 0x6874, /* 0x60 */
- 0x68B5, 0x68A0, 0x68BA, 0x690F, 0x688D, 0x687E, 0x6901, 0x68CA, /* 0x70 */
- 0x6908, 0x68D8, 0x6922, 0x6926, 0x68E1, 0x690C, 0x68CD /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_5C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x68D4, 0x68E7, 0x68D5, 0x6936, 0x6912, 0x6904, 0x68D7, /* 0x20 */
- 0x68E3, 0x6925, 0x68F9, 0x68E0, 0x68EF, 0x6928, 0x692A, 0x691A, /* 0x20 */
- 0x6923, 0x6921, 0x68C6, 0x6979, 0x6977, 0x695C, 0x6978, 0x696B, /* 0x30 */
- 0x6954, 0x697E, 0x696E, 0x6939, 0x6974, 0x693D, 0x6959, 0x6930, /* 0x30 */
- 0x6961, 0x695E, 0x695D, 0x6981, 0x696A, 0x69B2, 0x69AE, 0x69D0, /* 0x40 */
- 0x69BF, 0x69C1, 0x69D3, 0x69BE, 0x69CE, 0x5BE8, 0x69CA, 0x69DD, /* 0x40 */
- 0x69BB, 0x69C3, 0x69A7, 0x6A2E, 0x6991, 0x69A0, 0x699C, 0x6995, /* 0x50 */
- 0x69B4, 0x69DE, 0x69E8, 0x6A02, 0x6A1B, 0x69FF, 0x6B0A, 0x69F9, /* 0x50 */
- 0x69F2, 0x69E7, 0x6A05, 0x69B1, 0x6A1E, 0x69ED, 0x6A14, 0x69EB, /* 0x60 */
- 0x6A0A, 0x6A12, 0x6AC1, 0x6A23, 0x6A13, 0x6A44, 0x6A0C, 0x6A72, /* 0x60 */
- 0x6A36, 0x6A78, 0x6A47, 0x6A62, 0x6A59, 0x6A66, 0x6A48, 0x6A38, /* 0x70 */
- 0x6A22, 0x6A90, 0x6A8D, 0x6AA0, 0x6A84, 0x6AA2, 0x6AA3 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_5D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6A97, 0x8617, 0x6ABB, 0x6AC3, 0x6AC2, 0x6AB8, 0x6AB3, /* 0x20 */
- 0x6AAC, 0x6ADE, 0x6AD1, 0x6ADF, 0x6AAA, 0x6ADA, 0x6AEA, 0x6AFB, /* 0x20 */
- 0x6B05, 0x8616, 0x6AFA, 0x6B12, 0x6B16, 0x9B31, 0x6B1F, 0x6B38, /* 0x30 */
- 0x6B37, 0x76DC, 0x6B39, 0x98EE, 0x6B47, 0x6B43, 0x6B49, 0x6B50, /* 0x30 */
- 0x6B59, 0x6B54, 0x6B5B, 0x6B5F, 0x6B61, 0x6B78, 0x6B79, 0x6B7F, /* 0x40 */
- 0x6B80, 0x6B84, 0x6B83, 0x6B8D, 0x6B98, 0x6B95, 0x6B9E, 0x6BA4, /* 0x40 */
- 0x6BAA, 0x6BAB, 0x6BAF, 0x6BB2, 0x6BB1, 0x6BB3, 0x6BB7, 0x6BBC, /* 0x50 */
- 0x6BC6, 0x6BCB, 0x6BD3, 0x6BDF, 0x6BEC, 0x6BEB, 0x6BF3, 0x6BEF, /* 0x50 */
- 0x9EBE, 0x6C08, 0x6C13, 0x6C14, 0x6C1B, 0x6C24, 0x6C23, 0x6C5E, /* 0x60 */
- 0x6C55, 0x6C62, 0x6C6A, 0x6C82, 0x6C8D, 0x6C9A, 0x6C81, 0x6C9B, /* 0x60 */
- 0x6C7E, 0x6C68, 0x6C73, 0x6C92, 0x6C90, 0x6CC4, 0x6CF1, 0x6CD3, /* 0x70 */
- 0x6CBD, 0x6CD7, 0x6CC5, 0x6CDD, 0x6CAE, 0x6CB1, 0x6CBE /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_5E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6CBA, 0x6CDB, 0x6CEF, 0x6CD9, 0x6CEA, 0x6D1F, 0x884D, /* 0x20 */
- 0x6D36, 0x6D2B, 0x6D3D, 0x6D38, 0x6D19, 0x6D35, 0x6D33, 0x6D12, /* 0x20 */
- 0x6D0C, 0x6D63, 0x6D93, 0x6D64, 0x6D5A, 0x6D79, 0x6D59, 0x6D8E, /* 0x30 */
- 0x6D95, 0x6FE4, 0x6D85, 0x6DF9, 0x6E15, 0x6E0A, 0x6DB5, 0x6DC7, /* 0x30 */
- 0x6DE6, 0x6DB8, 0x6DC6, 0x6DEC, 0x6DDE, 0x6DCC, 0x6DE8, 0x6DD2, /* 0x40 */
- 0x6DC5, 0x6DFA, 0x6DD9, 0x6DE4, 0x6DD5, 0x6DEA, 0x6DEE, 0x6E2D, /* 0x40 */
- 0x6E6E, 0x6E2E, 0x6E19, 0x6E72, 0x6E5F, 0x6E3E, 0x6E23, 0x6E6B, /* 0x50 */
- 0x6E2B, 0x6E76, 0x6E4D, 0x6E1F, 0x6E43, 0x6E3A, 0x6E4E, 0x6E24, /* 0x50 */
- 0x6EFF, 0x6E1D, 0x6E38, 0x6E82, 0x6EAA, 0x6E98, 0x6EC9, 0x6EB7, /* 0x60 */
- 0x6ED3, 0x6EBD, 0x6EAF, 0x6EC4, 0x6EB2, 0x6ED4, 0x6ED5, 0x6E8F, /* 0x60 */
- 0x6EA5, 0x6EC2, 0x6E9F, 0x6F41, 0x6F11, 0x704C, 0x6EEC, 0x6EF8, /* 0x70 */
- 0x6EFE, 0x6F3F, 0x6EF2, 0x6F31, 0x6EEF, 0x6F32, 0x6ECC /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_5F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6F3E, 0x6F13, 0x6EF7, 0x6F86, 0x6F7A, 0x6F78, 0x6F81, /* 0x20 */
- 0x6F80, 0x6F6F, 0x6F5B, 0x6FF3, 0x6F6D, 0x6F82, 0x6F7C, 0x6F58, /* 0x20 */
- 0x6F8E, 0x6F91, 0x6FC2, 0x6F66, 0x6FB3, 0x6FA3, 0x6FA1, 0x6FA4, /* 0x30 */
- 0x6FB9, 0x6FC6, 0x6FAA, 0x6FDF, 0x6FD5, 0x6FEC, 0x6FD4, 0x6FD8, /* 0x30 */
- 0x6FF1, 0x6FEE, 0x6FDB, 0x7009, 0x700B, 0x6FFA, 0x7011, 0x7001, /* 0x40 */
- 0x700F, 0x6FFE, 0x701B, 0x701A, 0x6F74, 0x701D, 0x7018, 0x701F, /* 0x40 */
- 0x7030, 0x703E, 0x7032, 0x7051, 0x7063, 0x7099, 0x7092, 0x70AF, /* 0x50 */
- 0x70F1, 0x70AC, 0x70B8, 0x70B3, 0x70AE, 0x70DF, 0x70CB, 0x70DD, /* 0x50 */
- 0x70D9, 0x7109, 0x70FD, 0x711C, 0x7119, 0x7165, 0x7155, 0x7188, /* 0x60 */
- 0x7166, 0x7162, 0x714C, 0x7156, 0x716C, 0x718F, 0x71FB, 0x7184, /* 0x60 */
- 0x7195, 0x71A8, 0x71AC, 0x71D7, 0x71B9, 0x71BE, 0x71D2, 0x71C9, /* 0x70 */
- 0x71D4, 0x71CE, 0x71E0, 0x71EC, 0x71E7, 0x71F5, 0x71FC /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_60[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x71F9, 0x71FF, 0x720D, 0x7210, 0x721B, 0x7228, 0x722D, /* 0x20 */
- 0x722C, 0x7230, 0x7232, 0x723B, 0x723C, 0x723F, 0x7240, 0x7246, /* 0x20 */
- 0x724B, 0x7258, 0x7274, 0x727E, 0x7282, 0x7281, 0x7287, 0x7292, /* 0x30 */
- 0x7296, 0x72A2, 0x72A7, 0x72B9, 0x72B2, 0x72C3, 0x72C6, 0x72C4, /* 0x30 */
- 0x72CE, 0x72D2, 0x72E2, 0x72E0, 0x72E1, 0x72F9, 0x72F7, 0x500F, /* 0x40 */
- 0x7317, 0x730A, 0x731C, 0x7316, 0x731D, 0x7334, 0x732F, 0x7329, /* 0x40 */
- 0x7325, 0x733E, 0x734E, 0x734F, 0x9ED8, 0x7357, 0x736A, 0x7368, /* 0x50 */
- 0x7370, 0x7378, 0x7375, 0x737B, 0x737A, 0x73C8, 0x73B3, 0x73CE, /* 0x50 */
- 0x73BB, 0x73C0, 0x73E5, 0x73EE, 0x73DE, 0x74A2, 0x7405, 0x746F, /* 0x60 */
- 0x7425, 0x73F8, 0x7432, 0x743A, 0x7455, 0x743F, 0x745F, 0x7459, /* 0x60 */
- 0x7441, 0x745C, 0x7469, 0x7470, 0x7463, 0x746A, 0x7476, 0x747E, /* 0x70 */
- 0x748B, 0x749E, 0x74A7, 0x74CA, 0x74CF, 0x74D4, 0x73F1 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_61[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x74E0, 0x74E3, 0x74E7, 0x74E9, 0x74EE, 0x74F2, 0x74F0, /* 0x20 */
- 0x74F1, 0x74F8, 0x74F7, 0x7504, 0x7503, 0x7505, 0x750C, 0x750E, /* 0x20 */
- 0x750D, 0x7515, 0x7513, 0x751E, 0x7526, 0x752C, 0x753C, 0x7544, /* 0x30 */
- 0x754D, 0x754A, 0x7549, 0x755B, 0x7546, 0x755A, 0x7569, 0x7564, /* 0x30 */
- 0x7567, 0x756B, 0x756D, 0x7578, 0x7576, 0x7586, 0x7587, 0x7574, /* 0x40 */
- 0x758A, 0x7589, 0x7582, 0x7594, 0x759A, 0x759D, 0x75A5, 0x75A3, /* 0x40 */
- 0x75C2, 0x75B3, 0x75C3, 0x75B5, 0x75BD, 0x75B8, 0x75BC, 0x75B1, /* 0x50 */
- 0x75CD, 0x75CA, 0x75D2, 0x75D9, 0x75E3, 0x75DE, 0x75FE, 0x75FF, /* 0x50 */
- 0x75FC, 0x7601, 0x75F0, 0x75FA, 0x75F2, 0x75F3, 0x760B, 0x760D, /* 0x60 */
- 0x7609, 0x761F, 0x7627, 0x7620, 0x7621, 0x7622, 0x7624, 0x7634, /* 0x60 */
- 0x7630, 0x763B, 0x7647, 0x7648, 0x7646, 0x765C, 0x7658, 0x7661, /* 0x70 */
- 0x7662, 0x7668, 0x7669, 0x766A, 0x7667, 0x766C, 0x7670 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_62[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7672, 0x7676, 0x7678, 0x767C, 0x7680, 0x7683, 0x7688, /* 0x20 */
- 0x768B, 0x768E, 0x7696, 0x7693, 0x7699, 0x769A, 0x76B0, 0x76B4, /* 0x20 */
- 0x76B8, 0x76B9, 0x76BA, 0x76C2, 0x76CD, 0x76D6, 0x76D2, 0x76DE, /* 0x30 */
- 0x76E1, 0x76E5, 0x76E7, 0x76EA, 0x862F, 0x76FB, 0x7708, 0x7707, /* 0x30 */
- 0x7704, 0x7729, 0x7724, 0x771E, 0x7725, 0x7726, 0x771B, 0x7737, /* 0x40 */
- 0x7738, 0x7747, 0x775A, 0x7768, 0x776B, 0x775B, 0x7765, 0x777F, /* 0x40 */
- 0x777E, 0x7779, 0x778E, 0x778B, 0x7791, 0x77A0, 0x779E, 0x77B0, /* 0x50 */
- 0x77B6, 0x77B9, 0x77BF, 0x77BC, 0x77BD, 0x77BB, 0x77C7, 0x77CD, /* 0x50 */
- 0x77D7, 0x77DA, 0x77DC, 0x77E3, 0x77EE, 0x77FC, 0x780C, 0x7812, /* 0x60 */
- 0x7926, 0x7820, 0x792A, 0x7845, 0x788E, 0x7874, 0x7886, 0x787C, /* 0x60 */
- 0x789A, 0x788C, 0x78A3, 0x78B5, 0x78AA, 0x78AF, 0x78D1, 0x78C6, /* 0x70 */
- 0x78CB, 0x78D4, 0x78BE, 0x78BC, 0x78C5, 0x78CA, 0x78EC /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_63[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x78E7, 0x78DA, 0x78FD, 0x78F4, 0x7907, 0x7912, 0x7911, /* 0x20 */
- 0x7919, 0x792C, 0x792B, 0x7940, 0x7960, 0x7957, 0x795F, 0x795A, /* 0x20 */
- 0x7955, 0x7953, 0x797A, 0x797F, 0x798A, 0x799D, 0x79A7, 0x9F4B, /* 0x30 */
- 0x79AA, 0x79AE, 0x79B3, 0x79B9, 0x79BA, 0x79C9, 0x79D5, 0x79E7, /* 0x30 */
- 0x79EC, 0x79E1, 0x79E3, 0x7A08, 0x7A0D, 0x7A18, 0x7A19, 0x7A20, /* 0x40 */
- 0x7A1F, 0x7980, 0x7A31, 0x7A3B, 0x7A3E, 0x7A37, 0x7A43, 0x7A57, /* 0x40 */
- 0x7A49, 0x7A61, 0x7A62, 0x7A69, 0x9F9D, 0x7A70, 0x7A79, 0x7A7D, /* 0x50 */
- 0x7A88, 0x7A97, 0x7A95, 0x7A98, 0x7A96, 0x7AA9, 0x7AC8, 0x7AB0, /* 0x50 */
- 0x7AB6, 0x7AC5, 0x7AC4, 0x7ABF, 0x9083, 0x7AC7, 0x7ACA, 0x7ACD, /* 0x60 */
- 0x7ACF, 0x7AD5, 0x7AD3, 0x7AD9, 0x7ADA, 0x7ADD, 0x7AE1, 0x7AE2, /* 0x60 */
- 0x7AE6, 0x7AED, 0x7AF0, 0x7B02, 0x7B0F, 0x7B0A, 0x7B06, 0x7B33, /* 0x70 */
- 0x7B18, 0x7B19, 0x7B1E, 0x7B35, 0x7B28, 0x7B36, 0x7B50 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_64[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7B7A, 0x7B04, 0x7B4D, 0x7B0B, 0x7B4C, 0x7B45, 0x7B75, /* 0x20 */
- 0x7B65, 0x7B74, 0x7B67, 0x7B70, 0x7B71, 0x7B6C, 0x7B6E, 0x7B9D, /* 0x20 */
- 0x7B98, 0x7B9F, 0x7B8D, 0x7B9C, 0x7B9A, 0x7B8B, 0x7B92, 0x7B8F, /* 0x30 */
- 0x7B5D, 0x7B99, 0x7BCB, 0x7BC1, 0x7BCC, 0x7BCF, 0x7BB4, 0x7BC6, /* 0x30 */
- 0x7BDD, 0x7BE9, 0x7C11, 0x7C14, 0x7BE6, 0x7BE5, 0x7C60, 0x7C00, /* 0x40 */
- 0x7C07, 0x7C13, 0x7BF3, 0x7BF7, 0x7C17, 0x7C0D, 0x7BF6, 0x7C23, /* 0x40 */
- 0x7C27, 0x7C2A, 0x7C1F, 0x7C37, 0x7C2B, 0x7C3D, 0x7C4C, 0x7C43, /* 0x50 */
- 0x7C54, 0x7C4F, 0x7C40, 0x7C50, 0x7C58, 0x7C5F, 0x7C64, 0x7C56, /* 0x50 */
- 0x7C65, 0x7C6C, 0x7C75, 0x7C83, 0x7C90, 0x7CA4, 0x7CAD, 0x7CA2, /* 0x60 */
- 0x7CAB, 0x7CA1, 0x7CA8, 0x7CB3, 0x7CB2, 0x7CB1, 0x7CAE, 0x7CB9, /* 0x60 */
- 0x7CBD, 0x7CC0, 0x7CC5, 0x7CC2, 0x7CD8, 0x7CD2, 0x7CDC, 0x7CE2, /* 0x70 */
- 0x9B3B, 0x7CEF, 0x7CF2, 0x7CF4, 0x7CF6, 0x7CFA, 0x7D06 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_65[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7D02, 0x7D1C, 0x7D15, 0x7D0A, 0x7D45, 0x7D4B, 0x7D2E, /* 0x20 */
- 0x7D32, 0x7D3F, 0x7D35, 0x7D46, 0x7D73, 0x7D56, 0x7D4E, 0x7D72, /* 0x20 */
- 0x7D68, 0x7D6E, 0x7D4F, 0x7D63, 0x7D93, 0x7D89, 0x7D5B, 0x7D8F, /* 0x30 */
- 0x7D7D, 0x7D9B, 0x7DBA, 0x7DAE, 0x7DA3, 0x7DB5, 0x7DC7, 0x7DBD, /* 0x30 */
- 0x7DAB, 0x7E3D, 0x7DA2, 0x7DAF, 0x7DDC, 0x7DB8, 0x7D9F, 0x7DB0, /* 0x40 */
- 0x7DD8, 0x7DDD, 0x7DE4, 0x7DDE, 0x7DFB, 0x7DF2, 0x7DE1, 0x7E05, /* 0x40 */
- 0x7E0A, 0x7E23, 0x7E21, 0x7E12, 0x7E31, 0x7E1F, 0x7E09, 0x7E0B, /* 0x50 */
- 0x7E22, 0x7E46, 0x7E66, 0x7E3B, 0x7E35, 0x7E39, 0x7E43, 0x7E37, /* 0x50 */
- 0x7E32, 0x7E3A, 0x7E67, 0x7E5D, 0x7E56, 0x7E5E, 0x7E59, 0x7E5A, /* 0x60 */
- 0x7E79, 0x7E6A, 0x7E69, 0x7E7C, 0x7E7B, 0x7E83, 0x7DD5, 0x7E7D, /* 0x60 */
- 0x8FAE, 0x7E7F, 0x7E88, 0x7E89, 0x7E8C, 0x7E92, 0x7E90, 0x7E93, /* 0x70 */
- 0x7E94, 0x7E96, 0x7E8E, 0x7E9B, 0x7E9C, 0x7F38, 0x7F3A /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_66[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7F45, 0x7F4C, 0x7F4D, 0x7F4E, 0x7F50, 0x7F51, 0x7F55, /* 0x20 */
- 0x7F54, 0x7F58, 0x7F5F, 0x7F60, 0x7F68, 0x7F69, 0x7F67, 0x7F78, /* 0x20 */
- 0x7F82, 0x7F86, 0x7F83, 0x7F88, 0x7F87, 0x7F8C, 0x7F94, 0x7F9E, /* 0x30 */
- 0x7F9D, 0x7F9A, 0x7FA3, 0x7FAF, 0x7FB2, 0x7FB9, 0x7FAE, 0x7FB6, /* 0x30 */
- 0x7FB8, 0x8B71, 0x7FC5, 0x7FC6, 0x7FCA, 0x7FD5, 0x7FD4, 0x7FE1, /* 0x40 */
- 0x7FE6, 0x7FE9, 0x7FF3, 0x7FF9, 0x98DC, 0x8006, 0x8004, 0x800B, /* 0x40 */
- 0x8012, 0x8018, 0x8019, 0x801C, 0x8021, 0x8028, 0x803F, 0x803B, /* 0x50 */
- 0x804A, 0x8046, 0x8052, 0x8058, 0x805A, 0x805F, 0x8062, 0x8068, /* 0x50 */
- 0x8073, 0x8072, 0x8070, 0x8076, 0x8079, 0x807D, 0x807F, 0x8084, /* 0x60 */
- 0x8086, 0x8085, 0x809B, 0x8093, 0x809A, 0x80AD, 0x5190, 0x80AC, /* 0x60 */
- 0x80DB, 0x80E5, 0x80D9, 0x80DD, 0x80C4, 0x80DA, 0x80D6, 0x8109, /* 0x70 */
- 0x80EF, 0x80F1, 0x811B, 0x8129, 0x8123, 0x812F, 0x814B /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_67[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x968B, 0x8146, 0x813E, 0x8153, 0x8151, 0x80FC, 0x8171, /* 0x20 */
- 0x816E, 0x8165, 0x8166, 0x8174, 0x8183, 0x8188, 0x818A, 0x8180, /* 0x20 */
- 0x8182, 0x81A0, 0x8195, 0x81A4, 0x81A3, 0x815F, 0x8193, 0x81A9, /* 0x30 */
- 0x81B0, 0x81B5, 0x81BE, 0x81B8, 0x81BD, 0x81C0, 0x81C2, 0x81BA, /* 0x30 */
- 0x81C9, 0x81CD, 0x81D1, 0x81D9, 0x81D8, 0x81C8, 0x81DA, 0x81DF, /* 0x40 */
- 0x81E0, 0x81E7, 0x81FA, 0x81FB, 0x81FE, 0x8201, 0x8202, 0x8205, /* 0x40 */
- 0x8207, 0x820A, 0x820D, 0x8210, 0x8216, 0x8229, 0x822B, 0x8238, /* 0x50 */
- 0x8233, 0x8240, 0x8259, 0x8258, 0x825D, 0x825A, 0x825F, 0x8264, /* 0x50 */
- 0x8262, 0x8268, 0x826A, 0x826B, 0x822E, 0x8271, 0x8277, 0x8278, /* 0x60 */
- 0x827E, 0x828D, 0x8292, 0x82AB, 0x829F, 0x82BB, 0x82AC, 0x82E1, /* 0x60 */
- 0x82E3, 0x82DF, 0x82D2, 0x82F4, 0x82F3, 0x82FA, 0x8393, 0x8303, /* 0x70 */
- 0x82FB, 0x82F9, 0x82DE, 0x8306, 0x82DC, 0x8309, 0x82D9 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_68[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8335, 0x8334, 0x8316, 0x8332, 0x8331, 0x8340, 0x8339, /* 0x20 */
- 0x8350, 0x8345, 0x832F, 0x832B, 0x8317, 0x8318, 0x8385, 0x839A, /* 0x20 */
- 0x83AA, 0x839F, 0x83A2, 0x8396, 0x8323, 0x838E, 0x8387, 0x838A, /* 0x30 */
- 0x837C, 0x83B5, 0x8373, 0x8375, 0x83A0, 0x8389, 0x83A8, 0x83F4, /* 0x30 */
- 0x8413, 0x83EB, 0x83CE, 0x83FD, 0x8403, 0x83D8, 0x840B, 0x83C1, /* 0x40 */
- 0x83F7, 0x8407, 0x83E0, 0x83F2, 0x840D, 0x8422, 0x8420, 0x83BD, /* 0x40 */
- 0x8438, 0x8506, 0x83FB, 0x846D, 0x842A, 0x843C, 0x855A, 0x8484, /* 0x50 */
- 0x8477, 0x846B, 0x84AD, 0x846E, 0x8482, 0x8469, 0x8446, 0x842C, /* 0x50 */
- 0x846F, 0x8479, 0x8435, 0x84CA, 0x8462, 0x84B9, 0x84BF, 0x849F, /* 0x60 */
- 0x84D9, 0x84CD, 0x84BB, 0x84DA, 0x84D0, 0x84C1, 0x84C6, 0x84D6, /* 0x60 */
- 0x84A1, 0x8521, 0x84FF, 0x84F4, 0x8517, 0x8518, 0x852C, 0x851F, /* 0x70 */
- 0x8515, 0x8514, 0x84FC, 0x8540, 0x8563, 0x8558, 0x8548 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_69[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8541, 0x8602, 0x854B, 0x8555, 0x8580, 0x85A4, 0x8588, /* 0x20 */
- 0x8591, 0x858A, 0x85A8, 0x856D, 0x8594, 0x859B, 0x85EA, 0x8587, /* 0x20 */
- 0x859C, 0x8577, 0x857E, 0x8590, 0x85C9, 0x85BA, 0x85CF, 0x85B9, /* 0x30 */
- 0x85D0, 0x85D5, 0x85DD, 0x85E5, 0x85DC, 0x85F9, 0x860A, 0x8613, /* 0x30 */
- 0x860B, 0x85FE, 0x85FA, 0x8606, 0x8622, 0x861A, 0x8630, 0x863F, /* 0x40 */
- 0x864D, 0x4E55, 0x8654, 0x865F, 0x8667, 0x8671, 0x8693, 0x86A3, /* 0x40 */
- 0x86A9, 0x86AA, 0x868B, 0x868C, 0x86B6, 0x86AF, 0x86C4, 0x86C6, /* 0x50 */
- 0x86B0, 0x86C9, 0x8823, 0x86AB, 0x86D4, 0x86DE, 0x86E9, 0x86EC, /* 0x50 */
- 0x86DF, 0x86DB, 0x86EF, 0x8712, 0x8706, 0x8708, 0x8700, 0x8703, /* 0x60 */
- 0x86FB, 0x8711, 0x8709, 0x870D, 0x86F9, 0x870A, 0x8734, 0x873F, /* 0x60 */
- 0x8737, 0x873B, 0x8725, 0x8729, 0x871A, 0x8760, 0x875F, 0x8778, /* 0x70 */
- 0x874C, 0x874E, 0x8774, 0x8757, 0x8768, 0x876E, 0x8759 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_6A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8753, 0x8763, 0x876A, 0x8805, 0x87A2, 0x879F, 0x8782, /* 0x20 */
- 0x87AF, 0x87CB, 0x87BD, 0x87C0, 0x87D0, 0x96D6, 0x87AB, 0x87C4, /* 0x20 */
- 0x87B3, 0x87C7, 0x87C6, 0x87BB, 0x87EF, 0x87F2, 0x87E0, 0x880F, /* 0x30 */
- 0x880D, 0x87FE, 0x87F6, 0x87F7, 0x880E, 0x87D2, 0x8811, 0x8816, /* 0x30 */
- 0x8815, 0x8822, 0x8821, 0x8831, 0x8836, 0x8839, 0x8827, 0x883B, /* 0x40 */
- 0x8844, 0x8842, 0x8852, 0x8859, 0x885E, 0x8862, 0x886B, 0x8881, /* 0x40 */
- 0x887E, 0x889E, 0x8875, 0x887D, 0x88B5, 0x8872, 0x8882, 0x8897, /* 0x50 */
- 0x8892, 0x88AE, 0x8899, 0x88A2, 0x888D, 0x88A4, 0x88B0, 0x88BF, /* 0x50 */
- 0x88B1, 0x88C3, 0x88C4, 0x88D4, 0x88D8, 0x88D9, 0x88DD, 0x88F9, /* 0x60 */
- 0x8902, 0x88FC, 0x88F4, 0x88E8, 0x88F2, 0x8904, 0x890C, 0x890A, /* 0x60 */
- 0x8913, 0x8943, 0x891E, 0x8925, 0x892A, 0x892B, 0x8941, 0x8944, /* 0x70 */
- 0x893B, 0x8936, 0x8938, 0x894C, 0x891D, 0x8960, 0x895E /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_6B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8966, 0x8964, 0x896D, 0x896A, 0x896F, 0x8974, 0x8977, /* 0x20 */
- 0x897E, 0x8983, 0x8988, 0x898A, 0x8993, 0x8998, 0x89A1, 0x89A9, /* 0x20 */
- 0x89A6, 0x89AC, 0x89AF, 0x89B2, 0x89BA, 0x89BD, 0x89BF, 0x89C0, /* 0x30 */
- 0x89DA, 0x89DC, 0x89DD, 0x89E7, 0x89F4, 0x89F8, 0x8A03, 0x8A16, /* 0x30 */
- 0x8A10, 0x8A0C, 0x8A1B, 0x8A1D, 0x8A25, 0x8A36, 0x8A41, 0x8A5B, /* 0x40 */
- 0x8A52, 0x8A46, 0x8A48, 0x8A7C, 0x8A6D, 0x8A6C, 0x8A62, 0x8A85, /* 0x40 */
- 0x8A82, 0x8A84, 0x8AA8, 0x8AA1, 0x8A91, 0x8AA5, 0x8AA6, 0x8A9A, /* 0x50 */
- 0x8AA3, 0x8AC4, 0x8ACD, 0x8AC2, 0x8ADA, 0x8AEB, 0x8AF3, 0x8AE7, /* 0x50 */
- 0x8AE4, 0x8AF1, 0x8B14, 0x8AE0, 0x8AE2, 0x8AF7, 0x8ADE, 0x8ADB, /* 0x60 */
- 0x8B0C, 0x8B07, 0x8B1A, 0x8AE1, 0x8B16, 0x8B10, 0x8B17, 0x8B20, /* 0x60 */
- 0x8B33, 0x97AB, 0x8B26, 0x8B2B, 0x8B3E, 0x8B28, 0x8B41, 0x8B4C, /* 0x70 */
- 0x8B4F, 0x8B4E, 0x8B49, 0x8B56, 0x8B5B, 0x8B5A, 0x8B6B /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_6C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8B5F, 0x8B6C, 0x8B6F, 0x8B74, 0x8B7D, 0x8B80, 0x8B8C, /* 0x20 */
- 0x8B8E, 0x8B92, 0x8B93, 0x8B96, 0x8B99, 0x8B9A, 0x8C3A, 0x8C41, /* 0x20 */
- 0x8C3F, 0x8C48, 0x8C4C, 0x8C4E, 0x8C50, 0x8C55, 0x8C62, 0x8C6C, /* 0x30 */
- 0x8C78, 0x8C7A, 0x8C82, 0x8C89, 0x8C85, 0x8C8A, 0x8C8D, 0x8C8E, /* 0x30 */
- 0x8C94, 0x8C7C, 0x8C98, 0x621D, 0x8CAD, 0x8CAA, 0x8CBD, 0x8CB2, /* 0x40 */
- 0x8CB3, 0x8CAE, 0x8CB6, 0x8CC8, 0x8CC1, 0x8CE4, 0x8CE3, 0x8CDA, /* 0x40 */
- 0x8CFD, 0x8CFA, 0x8CFB, 0x8D04, 0x8D05, 0x8D0A, 0x8D07, 0x8D0F, /* 0x50 */
- 0x8D0D, 0x8D10, 0x9F4E, 0x8D13, 0x8CCD, 0x8D14, 0x8D16, 0x8D67, /* 0x50 */
- 0x8D6D, 0x8D71, 0x8D73, 0x8D81, 0x8D99, 0x8DC2, 0x8DBE, 0x8DBA, /* 0x60 */
- 0x8DCF, 0x8DDA, 0x8DD6, 0x8DCC, 0x8DDB, 0x8DCB, 0x8DEA, 0x8DEB, /* 0x60 */
- 0x8DDF, 0x8DE3, 0x8DFC, 0x8E08, 0x8E09, 0x8DFF, 0x8E1D, 0x8E1E, /* 0x70 */
- 0x8E10, 0x8E1F, 0x8E42, 0x8E35, 0x8E30, 0x8E34, 0x8E4A /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_6D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8E47, 0x8E49, 0x8E4C, 0x8E50, 0x8E48, 0x8E59, 0x8E64, /* 0x20 */
- 0x8E60, 0x8E2A, 0x8E63, 0x8E55, 0x8E76, 0x8E72, 0x8E7C, 0x8E81, /* 0x20 */
- 0x8E87, 0x8E85, 0x8E84, 0x8E8B, 0x8E8A, 0x8E93, 0x8E91, 0x8E94, /* 0x30 */
- 0x8E99, 0x8EAA, 0x8EA1, 0x8EAC, 0x8EB0, 0x8EC6, 0x8EB1, 0x8EBE, /* 0x30 */
- 0x8EC5, 0x8EC8, 0x8ECB, 0x8EDB, 0x8EE3, 0x8EFC, 0x8EFB, 0x8EEB, /* 0x40 */
- 0x8EFE, 0x8F0A, 0x8F05, 0x8F15, 0x8F12, 0x8F19, 0x8F13, 0x8F1C, /* 0x40 */
- 0x8F1F, 0x8F1B, 0x8F0C, 0x8F26, 0x8F33, 0x8F3B, 0x8F39, 0x8F45, /* 0x50 */
- 0x8F42, 0x8F3E, 0x8F4C, 0x8F49, 0x8F46, 0x8F4E, 0x8F57, 0x8F5C, /* 0x50 */
- 0x8F62, 0x8F63, 0x8F64, 0x8F9C, 0x8F9F, 0x8FA3, 0x8FAD, 0x8FAF, /* 0x60 */
- 0x8FB7, 0x8FDA, 0x8FE5, 0x8FE2, 0x8FEA, 0x8FEF, 0x9087, 0x8FF4, /* 0x60 */
- 0x9005, 0x8FF9, 0x8FFA, 0x9011, 0x9015, 0x9021, 0x900D, 0x901E, /* 0x70 */
- 0x9016, 0x900B, 0x9027, 0x9036, 0x9035, 0x9039, 0x8FF8 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_6E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x904F, 0x9050, 0x9051, 0x9052, 0x900E, 0x9049, 0x903E, /* 0x20 */
- 0x9056, 0x9058, 0x905E, 0x9068, 0x906F, 0x9076, 0x96A8, 0x9072, /* 0x20 */
- 0x9082, 0x907D, 0x9081, 0x9080, 0x908A, 0x9089, 0x908F, 0x90A8, /* 0x30 */
- 0x90AF, 0x90B1, 0x90B5, 0x90E2, 0x90E4, 0x6248, 0x90DB, 0x9102, /* 0x30 */
- 0x9112, 0x9119, 0x9132, 0x9130, 0x914A, 0x9156, 0x9158, 0x9163, /* 0x40 */
- 0x9165, 0x9169, 0x9173, 0x9172, 0x918B, 0x9189, 0x9182, 0x91A2, /* 0x40 */
- 0x91AB, 0x91AF, 0x91AA, 0x91B5, 0x91B4, 0x91BA, 0x91C0, 0x91C1, /* 0x50 */
- 0x91C9, 0x91CB, 0x91D0, 0x91D6, 0x91DF, 0x91E1, 0x91DB, 0x91FC, /* 0x50 */
- 0x91F5, 0x91F6, 0x921E, 0x91FF, 0x9214, 0x922C, 0x9215, 0x9211, /* 0x60 */
- 0x925E, 0x9257, 0x9245, 0x9249, 0x9264, 0x9248, 0x9295, 0x923F, /* 0x60 */
- 0x924B, 0x9250, 0x929C, 0x9296, 0x9293, 0x929B, 0x925A, 0x92CF, /* 0x70 */
- 0x92B9, 0x92B7, 0x92E9, 0x930F, 0x92FA, 0x9344, 0x932E /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_6F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9319, 0x9322, 0x931A, 0x9323, 0x933A, 0x9335, 0x933B, /* 0x20 */
- 0x935C, 0x9360, 0x937C, 0x936E, 0x9356, 0x93B0, 0x93AC, 0x93AD, /* 0x20 */
- 0x9394, 0x93B9, 0x93D6, 0x93D7, 0x93E8, 0x93E5, 0x93D8, 0x93C3, /* 0x30 */
- 0x93DD, 0x93D0, 0x93C8, 0x93E4, 0x941A, 0x9414, 0x9413, 0x9403, /* 0x30 */
- 0x9407, 0x9410, 0x9436, 0x942B, 0x9435, 0x9421, 0x943A, 0x9441, /* 0x40 */
- 0x9452, 0x9444, 0x945B, 0x9460, 0x9462, 0x945E, 0x946A, 0x9229, /* 0x40 */
- 0x9470, 0x9475, 0x9477, 0x947D, 0x945A, 0x947C, 0x947E, 0x9481, /* 0x50 */
- 0x947F, 0x9582, 0x9587, 0x958A, 0x9594, 0x9596, 0x9598, 0x9599, /* 0x50 */
- 0x95A0, 0x95A8, 0x95A7, 0x95AD, 0x95BC, 0x95BB, 0x95B9, 0x95BE, /* 0x60 */
- 0x95CA, 0x6FF6, 0x95C3, 0x95CD, 0x95CC, 0x95D5, 0x95D4, 0x95D6, /* 0x60 */
- 0x95DC, 0x95E1, 0x95E5, 0x95E2, 0x9621, 0x9628, 0x962E, 0x962F, /* 0x70 */
- 0x9642, 0x964C, 0x964F, 0x964B, 0x9677, 0x965C, 0x965E /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_70[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x965D, 0x965F, 0x9666, 0x9672, 0x966C, 0x968D, 0x9698, /* 0x20 */
- 0x9695, 0x9697, 0x96AA, 0x96A7, 0x96B1, 0x96B2, 0x96B0, 0x96B4, /* 0x20 */
- 0x96B6, 0x96B8, 0x96B9, 0x96CE, 0x96CB, 0x96C9, 0x96CD, 0x894D, /* 0x30 */
- 0x96DC, 0x970D, 0x96D5, 0x96F9, 0x9704, 0x9706, 0x9708, 0x9713, /* 0x30 */
- 0x970E, 0x9711, 0x970F, 0x9716, 0x9719, 0x9724, 0x972A, 0x9730, /* 0x40 */
- 0x9739, 0x973D, 0x973E, 0x9744, 0x9746, 0x9748, 0x9742, 0x9749, /* 0x40 */
- 0x975C, 0x9760, 0x9764, 0x9766, 0x9768, 0x52D2, 0x976B, 0x9771, /* 0x50 */
- 0x9779, 0x9785, 0x977C, 0x9781, 0x977A, 0x9786, 0x978B, 0x978F, /* 0x50 */
- 0x9790, 0x979C, 0x97A8, 0x97A6, 0x97A3, 0x97B3, 0x97B4, 0x97C3, /* 0x60 */
- 0x97C6, 0x97C8, 0x97CB, 0x97DC, 0x97ED, 0x9F4F, 0x97F2, 0x7ADF, /* 0x60 */
- 0x97F6, 0x97F5, 0x980F, 0x980C, 0x9838, 0x9824, 0x9821, 0x9837, /* 0x70 */
- 0x983D, 0x9846, 0x984F, 0x984B, 0x986B, 0x986F, 0x9870 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_71[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9871, 0x9874, 0x9873, 0x98AA, 0x98AF, 0x98B1, 0x98B6, /* 0x20 */
- 0x98C4, 0x98C3, 0x98C6, 0x98E9, 0x98EB, 0x9903, 0x9909, 0x9912, /* 0x20 */
- 0x9914, 0x9918, 0x9921, 0x991D, 0x991E, 0x9924, 0x9920, 0x992C, /* 0x30 */
- 0x992E, 0x993D, 0x993E, 0x9942, 0x9949, 0x9945, 0x9950, 0x994B, /* 0x30 */
- 0x9951, 0x9952, 0x994C, 0x9955, 0x9997, 0x9998, 0x99A5, 0x99AD, /* 0x40 */
- 0x99AE, 0x99BC, 0x99DF, 0x99DB, 0x99DD, 0x99D8, 0x99D1, 0x99ED, /* 0x40 */
- 0x99EE, 0x99F1, 0x99F2, 0x99FB, 0x99F8, 0x9A01, 0x9A0F, 0x9A05, /* 0x50 */
- 0x99E2, 0x9A19, 0x9A2B, 0x9A37, 0x9A45, 0x9A42, 0x9A40, 0x9A43, /* 0x50 */
- 0x9A3E, 0x9A55, 0x9A4D, 0x9A5B, 0x9A57, 0x9A5F, 0x9A62, 0x9A65, /* 0x60 */
- 0x9A64, 0x9A69, 0x9A6B, 0x9A6A, 0x9AAD, 0x9AB0, 0x9ABC, 0x9AC0, /* 0x60 */
- 0x9ACF, 0x9AD1, 0x9AD3, 0x9AD4, 0x9ADE, 0x9ADF, 0x9AE2, 0x9AE3, /* 0x70 */
- 0x9AE6, 0x9AEF, 0x9AEB, 0x9AEE, 0x9AF4, 0x9AF1, 0x9AF7 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_72[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9AFB, 0x9B06, 0x9B18, 0x9B1A, 0x9B1F, 0x9B22, 0x9B23, /* 0x20 */
- 0x9B25, 0x9B27, 0x9B28, 0x9B29, 0x9B2A, 0x9B2E, 0x9B2F, 0x9B32, /* 0x20 */
- 0x9B44, 0x9B43, 0x9B4F, 0x9B4D, 0x9B4E, 0x9B51, 0x9B58, 0x9B74, /* 0x30 */
- 0x9B93, 0x9B83, 0x9B91, 0x9B96, 0x9B97, 0x9B9F, 0x9BA0, 0x9BA8, /* 0x30 */
- 0x9BB4, 0x9BC0, 0x9BCA, 0x9BB9, 0x9BC6, 0x9BCF, 0x9BD1, 0x9BD2, /* 0x40 */
- 0x9BE3, 0x9BE2, 0x9BE4, 0x9BD4, 0x9BE1, 0x9C3A, 0x9BF2, 0x9BF1, /* 0x40 */
- 0x9BF0, 0x9C15, 0x9C14, 0x9C09, 0x9C13, 0x9C0C, 0x9C06, 0x9C08, /* 0x50 */
- 0x9C12, 0x9C0A, 0x9C04, 0x9C2E, 0x9C1B, 0x9C25, 0x9C24, 0x9C21, /* 0x50 */
- 0x9C30, 0x9C47, 0x9C32, 0x9C46, 0x9C3E, 0x9C5A, 0x9C60, 0x9C67, /* 0x60 */
- 0x9C76, 0x9C78, 0x9CE7, 0x9CEC, 0x9CF0, 0x9D09, 0x9D08, 0x9CEB, /* 0x60 */
- 0x9D03, 0x9D06, 0x9D2A, 0x9D26, 0x9DAF, 0x9D23, 0x9D1F, 0x9D44, /* 0x70 */
- 0x9D15, 0x9D12, 0x9D41, 0x9D3F, 0x9D3E, 0x9D46, 0x9D48 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_73[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9D5D, 0x9D5E, 0x9D64, 0x9D51, 0x9D50, 0x9D59, 0x9D72, /* 0x20 */
- 0x9D89, 0x9D87, 0x9DAB, 0x9D6F, 0x9D7A, 0x9D9A, 0x9DA4, 0x9DA9, /* 0x20 */
- 0x9DB2, 0x9DC4, 0x9DC1, 0x9DBB, 0x9DB8, 0x9DBA, 0x9DC6, 0x9DCF, /* 0x30 */
- 0x9DC2, 0x9DD9, 0x9DD3, 0x9DF8, 0x9DE6, 0x9DED, 0x9DEF, 0x9DFD, /* 0x30 */
- 0x9E1A, 0x9E1B, 0x9E1E, 0x9E75, 0x9E79, 0x9E7D, 0x9E81, 0x9E88, /* 0x40 */
- 0x9E8B, 0x9E8C, 0x9E92, 0x9E95, 0x9E91, 0x9E9D, 0x9EA5, 0x9EA9, /* 0x40 */
- 0x9EB8, 0x9EAA, 0x9EAD, 0x9761, 0x9ECC, 0x9ECE, 0x9ECF, 0x9ED0, /* 0x50 */
- 0x9ED4, 0x9EDC, 0x9EDE, 0x9EDD, 0x9EE0, 0x9EE5, 0x9EE8, 0x9EEF, /* 0x50 */
- 0x9EF4, 0x9EF6, 0x9EF7, 0x9EF9, 0x9EFB, 0x9EFC, 0x9EFD, 0x9F07, /* 0x60 */
- 0x9F08, 0x76B7, 0x9F15, 0x9F21, 0x9F2C, 0x9F3E, 0x9F4A, 0x9F52, /* 0x60 */
- 0x9F54, 0x9F63, 0x9F5F, 0x9F60, 0x9F61, 0x9F66, 0x9F67, 0x9F6C, /* 0x70 */
- 0x9F6A, 0x9F77, 0x9F72, 0x9F76, 0x9F95, 0x9F9C, 0x9FA0 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0208_74[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x582F, 0x69C7, 0x9059, 0x7464, 0x51DC, 0x7199 /* 0x20 */
- /* 0x20 */
-};
-
-/* ======================================================================= */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_22[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x20 */
- 0x02D8, /* 0x20 */
- 0x02C7, 0x00B8, 0x02D9, 0x02DD, 0x00AF, 0x02DB, 0x02DA, 0x007E, /* 0x30 */
- 0x0384, 0x0385, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0x00A1, 0x00A6, 0x00BF, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0x00BA, 0x00AA, 0x00A9, 0x00AE, 0x2122, /* 0x60 */
- 0x00A4, 0x2116 /* 0x70 */
- /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_26[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0386, 0x0388, 0x0389, 0x038A, 0x03AA, 0, 0x038C, /* 0x60 */
- 0, 0x038E, 0x03AB, 0, 0x038F, 0, 0, 0, /* 0x60 */
- 0, 0x03AC, 0x03AD, 0x03AE, 0x03AF, 0x03CA, 0x0390, 0x03CC, /* 0x70 */
- 0x03C2, 0x03CD, 0x03CB, 0x03B0, 0x03CE /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_27[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, /* 0x40 */
- 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x040E, 0x040F, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, /* 0x70 */
- 0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x045E, 0x045F /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_29[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00C6, 0x0110, 0, 0x0126, 0, 0x0132, 0, /* 0x20 */
- 0x0141, 0x013F, 0, 0x014A, 0x00D8, 0x0152, 0, 0x0166, /* 0x20 */
- 0x00DE, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x00E6, 0x0111, 0x00F0, 0x0127, 0x0131, 0x0133, 0x0138, /* 0x40 */
- 0x0142, 0x0140, 0x0149, 0x014B, 0x00F8, 0x0153, 0x00DF, 0x0167, /* 0x40 */
- 0x00FE /* 0x50 */
- /* 0x50 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_2A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00C1, 0x00C0, 0x00C4, 0x00C2, 0x0102, 0x01CD, 0x0100, /* 0x20 */
- 0x0104, 0x00C5, 0x00C3, 0x0106, 0x0108, 0x010C, 0x00C7, 0x010A, /* 0x20 */
- 0x010E, 0x00C9, 0x00C8, 0x00CB, 0x00CA, 0x011A, 0x0116, 0x0112, /* 0x30 */
- 0x0118, 0, 0x011C, 0x011E, 0x0122, 0x0120, 0x0124, 0x00CD, /* 0x30 */
- 0x00CC, 0x00CF, 0x00CE, 0x01CF, 0x0130, 0x012A, 0x012E, 0x0128, /* 0x40 */
- 0x0134, 0x0136, 0x0139, 0x013D, 0x013B, 0x0143, 0x0147, 0x0145, /* 0x40 */
- 0x00D1, 0x00D3, 0x00D2, 0x00D6, 0x00D4, 0x01D1, 0x0150, 0x014C, /* 0x50 */
- 0x00D5, 0x0154, 0x0158, 0x0156, 0x015A, 0x015C, 0x0160, 0x015E, /* 0x50 */
- 0x0164, 0x0162, 0x00DA, 0x00D9, 0x00DC, 0x00DB, 0x016C, 0x01D3, /* 0x60 */
- 0x0170, 0x016A, 0x0172, 0x016E, 0x0168, 0x01D7, 0x01DB, 0x01D9, /* 0x60 */
- 0x01D5, 0x0174, 0x00DD, 0x0178, 0x0176, 0x0179, 0x017D, 0x017B, /* 0x70 */
- /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_2B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00E1, 0x00E0, 0x00E4, 0x00E2, 0x0103, 0x01CE, 0x0101, /* 0x20 */
- 0x0105, 0x00E5, 0x00E3, 0x0107, 0x0109, 0x010D, 0x00E7, 0x010B, /* 0x20 */
- 0x010F, 0x00E9, 0x00E8, 0x00EB, 0x00EA, 0x011B, 0x0117, 0x0113, /* 0x30 */
- 0x0119, 0x01F5, 0x011D, 0x011F, 0, 0x0121, 0x0125, 0x00ED, /* 0x30 */
- 0x00EC, 0x00EF, 0x00EE, 0x01D0, 0, 0x012B, 0x012F, 0x0129, /* 0x40 */
- 0x0135, 0x0137, 0x013A, 0x013E, 0x013C, 0x0144, 0x0148, 0x0146, /* 0x40 */
- 0x00F1, 0x00F3, 0x00F2, 0x00F6, 0x00F4, 0x01D2, 0x0151, 0x014D, /* 0x50 */
- 0x00F5, 0x0155, 0x0159, 0x0157, 0x015B, 0x015D, 0x0161, 0x015F, /* 0x50 */
- 0x0165, 0x0163, 0x00FA, 0x00F9, 0x00FC, 0x00FB, 0x016D, 0x01D4, /* 0x60 */
- 0x0171, 0x016B, 0x0173, 0x016F, 0x0169, 0x01D8, 0x01DC, 0x01DA, /* 0x60 */
- 0x01D6, 0x0175, 0x00FD, 0x00FF, 0x0177, 0x017A, 0x017E, 0x017C /* 0x70 */
- /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_30[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4E02, 0x4E04, 0x4E05, 0x4E0C, 0x4E12, 0x4E1F, 0x4E23, /* 0x20 */
- 0x4E24, 0x4E28, 0x4E2B, 0x4E2E, 0x4E2F, 0x4E30, 0x4E35, 0x4E40, /* 0x20 */
- 0x4E41, 0x4E44, 0x4E47, 0x4E51, 0x4E5A, 0x4E5C, 0x4E63, 0x4E68, /* 0x30 */
- 0x4E69, 0x4E74, 0x4E75, 0x4E79, 0x4E7F, 0x4E8D, 0x4E96, 0x4E97, /* 0x30 */
- 0x4E9D, 0x4EAF, 0x4EB9, 0x4EC3, 0x4ED0, 0x4EDA, 0x4EDB, 0x4EE0, /* 0x40 */
- 0x4EE1, 0x4EE2, 0x4EE8, 0x4EEF, 0x4EF1, 0x4EF3, 0x4EF5, 0x4EFD, /* 0x40 */
- 0x4EFE, 0x4EFF, 0x4F00, 0x4F02, 0x4F03, 0x4F08, 0x4F0B, 0x4F0C, /* 0x50 */
- 0x4F12, 0x4F15, 0x4F16, 0x4F17, 0x4F19, 0x4F2E, 0x4F31, 0x4F60, /* 0x50 */
- 0x4F33, 0x4F35, 0x4F37, 0x4F39, 0x4F3B, 0x4F3E, 0x4F40, 0x4F42, /* 0x60 */
- 0x4F48, 0x4F49, 0x4F4B, 0x4F4C, 0x4F52, 0x4F54, 0x4F56, 0x4F58, /* 0x60 */
- 0x4F5F, 0x4F63, 0x4F6A, 0x4F6C, 0x4F6E, 0x4F71, 0x4F77, 0x4F78, /* 0x70 */
- 0x4F79, 0x4F7A, 0x4F7D, 0x4F7E, 0x4F81, 0x4F82, 0x4F84 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_31[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4F85, 0x4F89, 0x4F8A, 0x4F8C, 0x4F8E, 0x4F90, 0x4F92, /* 0x20 */
- 0x4F93, 0x4F94, 0x4F97, 0x4F99, 0x4F9A, 0x4F9E, 0x4F9F, 0x4FB2, /* 0x20 */
- 0x4FB7, 0x4FB9, 0x4FBB, 0x4FBC, 0x4FBD, 0x4FBE, 0x4FC0, 0x4FC1, /* 0x30 */
- 0x4FC5, 0x4FC6, 0x4FC8, 0x4FC9, 0x4FCB, 0x4FCC, 0x4FCD, 0x4FCF, /* 0x30 */
- 0x4FD2, 0x4FDC, 0x4FE0, 0x4FE2, 0x4FF0, 0x4FF2, 0x4FFC, 0x4FFD, /* 0x40 */
- 0x4FFF, 0x5000, 0x5001, 0x5004, 0x5007, 0x500A, 0x500C, 0x500E, /* 0x40 */
- 0x5010, 0x5013, 0x5017, 0x5018, 0x501B, 0x501C, 0x501D, 0x501E, /* 0x50 */
- 0x5022, 0x5027, 0x502E, 0x5030, 0x5032, 0x5033, 0x5035, 0x5040, /* 0x50 */
- 0x5041, 0x5042, 0x5045, 0x5046, 0x504A, 0x504C, 0x504E, 0x5051, /* 0x60 */
- 0x5052, 0x5053, 0x5057, 0x5059, 0x505F, 0x5060, 0x5062, 0x5063, /* 0x60 */
- 0x5066, 0x5067, 0x506A, 0x506D, 0x5070, 0x5071, 0x503B, 0x5081, /* 0x70 */
- 0x5083, 0x5084, 0x5086, 0x508A, 0x508E, 0x508F, 0x5090 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_32[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5092, 0x5093, 0x5094, 0x5096, 0x509B, 0x509C, 0x509E, /* 0x20 */
- 0x509F, 0x50A0, 0x50A1, 0x50A2, 0x50AA, 0x50AF, 0x50B0, 0x50B9, /* 0x20 */
- 0x50BA, 0x50BD, 0x50C0, 0x50C3, 0x50C4, 0x50C7, 0x50CC, 0x50CE, /* 0x30 */
- 0x50D0, 0x50D3, 0x50D4, 0x50D8, 0x50DC, 0x50DD, 0x50DF, 0x50E2, /* 0x30 */
- 0x50E4, 0x50E6, 0x50E8, 0x50E9, 0x50EF, 0x50F1, 0x50F6, 0x50FA, /* 0x40 */
- 0x50FE, 0x5103, 0x5106, 0x5107, 0x5108, 0x510B, 0x510C, 0x510D, /* 0x40 */
- 0x510E, 0x50F2, 0x5110, 0x5117, 0x5119, 0x511B, 0x511C, 0x511D, /* 0x50 */
- 0x511E, 0x5123, 0x5127, 0x5128, 0x512C, 0x512D, 0x512F, 0x5131, /* 0x50 */
- 0x5133, 0x5134, 0x5135, 0x5138, 0x5139, 0x5142, 0x514A, 0x514F, /* 0x60 */
- 0x5153, 0x5155, 0x5157, 0x5158, 0x515F, 0x5164, 0x5166, 0x517E, /* 0x60 */
- 0x5183, 0x5184, 0x518B, 0x518E, 0x5198, 0x519D, 0x51A1, 0x51A3, /* 0x70 */
- 0x51AD, 0x51B8, 0x51BA, 0x51BC, 0x51BE, 0x51BF, 0x51C2 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_33[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x51C8, 0x51CF, 0x51D1, 0x51D2, 0x51D3, 0x51D5, 0x51D8, /* 0x20 */
- 0x51DE, 0x51E2, 0x51E5, 0x51EE, 0x51F2, 0x51F3, 0x51F4, 0x51F7, /* 0x20 */
- 0x5201, 0x5202, 0x5205, 0x5212, 0x5213, 0x5215, 0x5216, 0x5218, /* 0x30 */
- 0x5222, 0x5228, 0x5231, 0x5232, 0x5235, 0x523C, 0x5245, 0x5249, /* 0x30 */
- 0x5255, 0x5257, 0x5258, 0x525A, 0x525C, 0x525F, 0x5260, 0x5261, /* 0x40 */
- 0x5266, 0x526E, 0x5277, 0x5278, 0x5279, 0x5280, 0x5282, 0x5285, /* 0x40 */
- 0x528A, 0x528C, 0x5293, 0x5295, 0x5296, 0x5297, 0x5298, 0x529A, /* 0x50 */
- 0x529C, 0x52A4, 0x52A5, 0x52A6, 0x52A7, 0x52AF, 0x52B0, 0x52B6, /* 0x50 */
- 0x52B7, 0x52B8, 0x52BA, 0x52BB, 0x52BD, 0x52C0, 0x52C4, 0x52C6, /* 0x60 */
- 0x52C8, 0x52CC, 0x52CF, 0x52D1, 0x52D4, 0x52D6, 0x52DB, 0x52DC, /* 0x60 */
- 0x52E1, 0x52E5, 0x52E8, 0x52E9, 0x52EA, 0x52EC, 0x52F0, 0x52F1, /* 0x70 */
- 0x52F4, 0x52F6, 0x52F7, 0x5300, 0x5303, 0x530A, 0x530B /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_34[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x530C, 0x5311, 0x5313, 0x5318, 0x531B, 0x531C, 0x531E, /* 0x20 */
- 0x531F, 0x5325, 0x5327, 0x5328, 0x5329, 0x532B, 0x532C, 0x532D, /* 0x20 */
- 0x5330, 0x5332, 0x5335, 0x533C, 0x533D, 0x533E, 0x5342, 0x534C, /* 0x30 */
- 0x534B, 0x5359, 0x535B, 0x5361, 0x5363, 0x5365, 0x536C, 0x536D, /* 0x30 */
- 0x5372, 0x5379, 0x537E, 0x5383, 0x5387, 0x5388, 0x538E, 0x5393, /* 0x40 */
- 0x5394, 0x5399, 0x539D, 0x53A1, 0x53A4, 0x53AA, 0x53AB, 0x53AF, /* 0x40 */
- 0x53B2, 0x53B4, 0x53B5, 0x53B7, 0x53B8, 0x53BA, 0x53BD, 0x53C0, /* 0x50 */
- 0x53C5, 0x53CF, 0x53D2, 0x53D3, 0x53D5, 0x53DA, 0x53DD, 0x53DE, /* 0x50 */
- 0x53E0, 0x53E6, 0x53E7, 0x53F5, 0x5402, 0x5413, 0x541A, 0x5421, /* 0x60 */
- 0x5427, 0x5428, 0x542A, 0x542F, 0x5431, 0x5434, 0x5435, 0x5443, /* 0x60 */
- 0x5444, 0x5447, 0x544D, 0x544F, 0x545E, 0x5462, 0x5464, 0x5466, /* 0x70 */
- 0x5467, 0x5469, 0x546B, 0x546D, 0x546E, 0x5474, 0x547F /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_35[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5481, 0x5483, 0x5485, 0x5488, 0x5489, 0x548D, 0x5491, /* 0x20 */
- 0x5495, 0x5496, 0x549C, 0x549F, 0x54A1, 0x54A6, 0x54A7, 0x54A9, /* 0x20 */
- 0x54AA, 0x54AD, 0x54AE, 0x54B1, 0x54B7, 0x54B9, 0x54BA, 0x54BB, /* 0x30 */
- 0x54BF, 0x54C6, 0x54CA, 0x54CD, 0x54CE, 0x54E0, 0x54EA, 0x54EC, /* 0x30 */
- 0x54EF, 0x54F6, 0x54FC, 0x54FE, 0x54FF, 0x5500, 0x5501, 0x5505, /* 0x40 */
- 0x5508, 0x5509, 0x550C, 0x550D, 0x550E, 0x5515, 0x552A, 0x552B, /* 0x40 */
- 0x5532, 0x5535, 0x5536, 0x553B, 0x553C, 0x553D, 0x5541, 0x5547, /* 0x50 */
- 0x5549, 0x554A, 0x554D, 0x5550, 0x5551, 0x5558, 0x555A, 0x555B, /* 0x50 */
- 0x555E, 0x5560, 0x5561, 0x5564, 0x5566, 0x557F, 0x5581, 0x5582, /* 0x60 */
- 0x5586, 0x5588, 0x558E, 0x558F, 0x5591, 0x5592, 0x5593, 0x5594, /* 0x60 */
- 0x5597, 0x55A3, 0x55A4, 0x55AD, 0x55B2, 0x55BF, 0x55C1, 0x55C3, /* 0x70 */
- 0x55C6, 0x55C9, 0x55CB, 0x55CC, 0x55CE, 0x55D1, 0x55D2 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_36[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x55D3, 0x55D7, 0x55D8, 0x55DB, 0x55DE, 0x55E2, 0x55E9, /* 0x20 */
- 0x55F6, 0x55FF, 0x5605, 0x5608, 0x560A, 0x560D, 0x560E, 0x560F, /* 0x20 */
- 0x5610, 0x5611, 0x5612, 0x5619, 0x562C, 0x5630, 0x5633, 0x5635, /* 0x30 */
- 0x5637, 0x5639, 0x563B, 0x563C, 0x563D, 0x563F, 0x5640, 0x5641, /* 0x30 */
- 0x5643, 0x5644, 0x5646, 0x5649, 0x564B, 0x564D, 0x564F, 0x5654, /* 0x40 */
- 0x565E, 0x5660, 0x5661, 0x5662, 0x5663, 0x5666, 0x5669, 0x566D, /* 0x40 */
- 0x566F, 0x5671, 0x5672, 0x5675, 0x5684, 0x5685, 0x5688, 0x568B, /* 0x50 */
- 0x568C, 0x5695, 0x5699, 0x569A, 0x569D, 0x569E, 0x569F, 0x56A6, /* 0x50 */
- 0x56A7, 0x56A8, 0x56A9, 0x56AB, 0x56AC, 0x56AD, 0x56B1, 0x56B3, /* 0x60 */
- 0x56B7, 0x56BE, 0x56C5, 0x56C9, 0x56CA, 0x56CB, 0x56CF, 0x56D0, /* 0x60 */
- 0x56CC, 0x56CD, 0x56D9, 0x56DC, 0x56DD, 0x56DF, 0x56E1, 0x56E4, /* 0x70 */
- 0x56E5, 0x56E6, 0x56E7, 0x56E8, 0x56F1, 0x56EB, 0x56ED /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_37[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x56F6, 0x56F7, 0x5701, 0x5702, 0x5707, 0x570A, 0x570C, /* 0x20 */
- 0x5711, 0x5715, 0x571A, 0x571B, 0x571D, 0x5720, 0x5722, 0x5723, /* 0x20 */
- 0x5724, 0x5725, 0x5729, 0x572A, 0x572C, 0x572E, 0x572F, 0x5733, /* 0x30 */
- 0x5734, 0x573D, 0x573E, 0x573F, 0x5745, 0x5746, 0x574C, 0x574D, /* 0x30 */
- 0x5752, 0x5762, 0x5765, 0x5767, 0x5768, 0x576B, 0x576D, 0x576E, /* 0x40 */
- 0x576F, 0x5770, 0x5771, 0x5773, 0x5774, 0x5775, 0x5777, 0x5779, /* 0x40 */
- 0x577A, 0x577B, 0x577C, 0x577E, 0x5781, 0x5783, 0x578C, 0x5794, /* 0x50 */
- 0x5797, 0x5799, 0x579A, 0x579C, 0x579D, 0x579E, 0x579F, 0x57A1, /* 0x50 */
- 0x5795, 0x57A7, 0x57A8, 0x57A9, 0x57AC, 0x57B8, 0x57BD, 0x57C7, /* 0x60 */
- 0x57C8, 0x57CC, 0x57CF, 0x57D5, 0x57DD, 0x57DE, 0x57E4, 0x57E6, /* 0x60 */
- 0x57E7, 0x57E9, 0x57ED, 0x57F0, 0x57F5, 0x57F6, 0x57F8, 0x57FD, /* 0x70 */
- 0x57FE, 0x57FF, 0x5803, 0x5804, 0x5808, 0x5809, 0x57E1 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_38[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x580C, 0x580D, 0x581B, 0x581E, 0x581F, 0x5820, 0x5826, /* 0x20 */
- 0x5827, 0x582D, 0x5832, 0x5839, 0x583F, 0x5849, 0x584C, 0x584D, /* 0x20 */
- 0x584F, 0x5850, 0x5855, 0x585F, 0x5861, 0x5864, 0x5867, 0x5868, /* 0x30 */
- 0x5878, 0x587C, 0x587F, 0x5880, 0x5881, 0x5887, 0x5888, 0x5889, /* 0x30 */
- 0x588A, 0x588C, 0x588D, 0x588F, 0x5890, 0x5894, 0x5896, 0x589D, /* 0x40 */
- 0x58A0, 0x58A1, 0x58A2, 0x58A6, 0x58A9, 0x58B1, 0x58B2, 0x58C4, /* 0x40 */
- 0x58BC, 0x58C2, 0x58C8, 0x58CD, 0x58CE, 0x58D0, 0x58D2, 0x58D4, /* 0x50 */
- 0x58D6, 0x58DA, 0x58DD, 0x58E1, 0x58E2, 0x58E9, 0x58F3, 0x5905, /* 0x50 */
- 0x5906, 0x590B, 0x590C, 0x5912, 0x5913, 0x5914, 0x8641, 0x591D, /* 0x60 */
- 0x5921, 0x5923, 0x5924, 0x5928, 0x592F, 0x5930, 0x5933, 0x5935, /* 0x60 */
- 0x5936, 0x593F, 0x5943, 0x5946, 0x5952, 0x5953, 0x5959, 0x595B, /* 0x70 */
- 0x595D, 0x595E, 0x595F, 0x5961, 0x5963, 0x596B, 0x596D /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_39[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x596F, 0x5972, 0x5975, 0x5976, 0x5979, 0x597B, 0x597C, /* 0x20 */
- 0x598B, 0x598C, 0x598E, 0x5992, 0x5995, 0x5997, 0x599F, 0x59A4, /* 0x20 */
- 0x59A7, 0x59AD, 0x59AE, 0x59AF, 0x59B0, 0x59B3, 0x59B7, 0x59BA, /* 0x30 */
- 0x59BC, 0x59C1, 0x59C3, 0x59C4, 0x59C8, 0x59CA, 0x59CD, 0x59D2, /* 0x30 */
- 0x59DD, 0x59DE, 0x59DF, 0x59E3, 0x59E4, 0x59E7, 0x59EE, 0x59EF, /* 0x40 */
- 0x59F1, 0x59F2, 0x59F4, 0x59F7, 0x5A00, 0x5A04, 0x5A0C, 0x5A0D, /* 0x40 */
- 0x5A0E, 0x5A12, 0x5A13, 0x5A1E, 0x5A23, 0x5A24, 0x5A27, 0x5A28, /* 0x50 */
- 0x5A2A, 0x5A2D, 0x5A30, 0x5A44, 0x5A45, 0x5A47, 0x5A48, 0x5A4C, /* 0x50 */
- 0x5A50, 0x5A55, 0x5A5E, 0x5A63, 0x5A65, 0x5A67, 0x5A6D, 0x5A77, /* 0x60 */
- 0x5A7A, 0x5A7B, 0x5A7E, 0x5A8B, 0x5A90, 0x5A93, 0x5A96, 0x5A99, /* 0x60 */
- 0x5A9C, 0x5A9E, 0x5A9F, 0x5AA0, 0x5AA2, 0x5AA7, 0x5AAC, 0x5AB1, /* 0x70 */
- 0x5AB2, 0x5AB3, 0x5AB5, 0x5AB8, 0x5ABA, 0x5ABB, 0x5ABF /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_3A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5AC4, 0x5AC6, 0x5AC8, 0x5ACF, 0x5ADA, 0x5ADC, 0x5AE0, /* 0x20 */
- 0x5AE5, 0x5AEA, 0x5AEE, 0x5AF5, 0x5AF6, 0x5AFD, 0x5B00, 0x5B01, /* 0x20 */
- 0x5B08, 0x5B17, 0x5B34, 0x5B19, 0x5B1B, 0x5B1D, 0x5B21, 0x5B25, /* 0x30 */
- 0x5B2D, 0x5B38, 0x5B41, 0x5B4B, 0x5B4C, 0x5B52, 0x5B56, 0x5B5E, /* 0x30 */
- 0x5B68, 0x5B6E, 0x5B6F, 0x5B7C, 0x5B7D, 0x5B7E, 0x5B7F, 0x5B81, /* 0x40 */
- 0x5B84, 0x5B86, 0x5B8A, 0x5B8E, 0x5B90, 0x5B91, 0x5B93, 0x5B94, /* 0x40 */
- 0x5B96, 0x5BA8, 0x5BA9, 0x5BAC, 0x5BAD, 0x5BAF, 0x5BB1, 0x5BB2, /* 0x50 */
- 0x5BB7, 0x5BBA, 0x5BBC, 0x5BC0, 0x5BC1, 0x5BCD, 0x5BCF, 0x5BD6, /* 0x50 */
- 0x5BD7, 0x5BD8, 0x5BD9, 0x5BDA, 0x5BE0, 0x5BEF, 0x5BF1, 0x5BF4, /* 0x60 */
- 0x5BFD, 0x5C0C, 0x5C17, 0x5C1E, 0x5C1F, 0x5C23, 0x5C26, 0x5C29, /* 0x60 */
- 0x5C2B, 0x5C2C, 0x5C2E, 0x5C30, 0x5C32, 0x5C35, 0x5C36, 0x5C59, /* 0x70 */
- 0x5C5A, 0x5C5C, 0x5C62, 0x5C63, 0x5C67, 0x5C68, 0x5C69 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_3B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5C6D, 0x5C70, 0x5C74, 0x5C75, 0x5C7A, 0x5C7B, 0x5C7C, /* 0x20 */
- 0x5C7D, 0x5C87, 0x5C88, 0x5C8A, 0x5C8F, 0x5C92, 0x5C9D, 0x5C9F, /* 0x20 */
- 0x5CA0, 0x5CA2, 0x5CA3, 0x5CA6, 0x5CAA, 0x5CB2, 0x5CB4, 0x5CB5, /* 0x30 */
- 0x5CBA, 0x5CC9, 0x5CCB, 0x5CD2, 0x5CDD, 0x5CD7, 0x5CEE, 0x5CF1, /* 0x30 */
- 0x5CF2, 0x5CF4, 0x5D01, 0x5D06, 0x5D0D, 0x5D12, 0x5D2B, 0x5D23, /* 0x40 */
- 0x5D24, 0x5D26, 0x5D27, 0x5D31, 0x5D34, 0x5D39, 0x5D3D, 0x5D3F, /* 0x40 */
- 0x5D42, 0x5D43, 0x5D46, 0x5D48, 0x5D55, 0x5D51, 0x5D59, 0x5D4A, /* 0x50 */
- 0x5D5F, 0x5D60, 0x5D61, 0x5D62, 0x5D64, 0x5D6A, 0x5D6D, 0x5D70, /* 0x50 */
- 0x5D79, 0x5D7A, 0x5D7E, 0x5D7F, 0x5D81, 0x5D83, 0x5D88, 0x5D8A, /* 0x60 */
- 0x5D92, 0x5D93, 0x5D94, 0x5D95, 0x5D99, 0x5D9B, 0x5D9F, 0x5DA0, /* 0x60 */
- 0x5DA7, 0x5DAB, 0x5DB0, 0x5DB4, 0x5DB8, 0x5DB9, 0x5DC3, 0x5DC7, /* 0x70 */
- 0x5DCB, 0x5DD0, 0x5DCE, 0x5DD8, 0x5DD9, 0x5DE0, 0x5DE4 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_3C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5DE9, 0x5DF8, 0x5DF9, 0x5E00, 0x5E07, 0x5E0D, 0x5E12, /* 0x20 */
- 0x5E14, 0x5E15, 0x5E18, 0x5E1F, 0x5E20, 0x5E2E, 0x5E28, 0x5E32, /* 0x20 */
- 0x5E35, 0x5E3E, 0x5E4B, 0x5E50, 0x5E49, 0x5E51, 0x5E56, 0x5E58, /* 0x30 */
- 0x5E5B, 0x5E5C, 0x5E5E, 0x5E68, 0x5E6A, 0x5E6B, 0x5E6C, 0x5E6D, /* 0x30 */
- 0x5E6E, 0x5E70, 0x5E80, 0x5E8B, 0x5E8E, 0x5EA2, 0x5EA4, 0x5EA5, /* 0x40 */
- 0x5EA8, 0x5EAA, 0x5EAC, 0x5EB1, 0x5EB3, 0x5EBD, 0x5EBE, 0x5EBF, /* 0x40 */
- 0x5EC6, 0x5ECC, 0x5ECB, 0x5ECE, 0x5ED1, 0x5ED2, 0x5ED4, 0x5ED5, /* 0x50 */
- 0x5EDC, 0x5EDE, 0x5EE5, 0x5EEB, 0x5F02, 0x5F06, 0x5F07, 0x5F08, /* 0x50 */
- 0x5F0E, 0x5F19, 0x5F1C, 0x5F1D, 0x5F21, 0x5F22, 0x5F23, 0x5F24, /* 0x60 */
- 0x5F28, 0x5F2B, 0x5F2C, 0x5F2E, 0x5F30, 0x5F34, 0x5F36, 0x5F3B, /* 0x60 */
- 0x5F3D, 0x5F3F, 0x5F40, 0x5F44, 0x5F45, 0x5F47, 0x5F4D, 0x5F50, /* 0x70 */
- 0x5F54, 0x5F58, 0x5F5B, 0x5F60, 0x5F63, 0x5F64, 0x5F67 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_3D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5F6F, 0x5F72, 0x5F74, 0x5F75, 0x5F78, 0x5F7A, 0x5F7D, /* 0x20 */
- 0x5F7E, 0x5F89, 0x5F8D, 0x5F8F, 0x5F96, 0x5F9C, 0x5F9D, 0x5FA2, /* 0x20 */
- 0x5FA7, 0x5FAB, 0x5FA4, 0x5FAC, 0x5FAF, 0x5FB0, 0x5FB1, 0x5FB8, /* 0x30 */
- 0x5FC4, 0x5FC7, 0x5FC8, 0x5FC9, 0x5FCB, 0x5FD0, 0x5FD1, 0x5FD2, /* 0x30 */
- 0x5FD3, 0x5FD4, 0x5FDE, 0x5FE1, 0x5FE2, 0x5FE8, 0x5FE9, 0x5FEA, /* 0x40 */
- 0x5FEC, 0x5FED, 0x5FEE, 0x5FEF, 0x5FF2, 0x5FF3, 0x5FF6, 0x5FFA, /* 0x40 */
- 0x5FFC, 0x6007, 0x600A, 0x600D, 0x6013, 0x6014, 0x6017, 0x6018, /* 0x50 */
- 0x601A, 0x601F, 0x6024, 0x602D, 0x6033, 0x6035, 0x6040, 0x6047, /* 0x50 */
- 0x6048, 0x6049, 0x604C, 0x6051, 0x6054, 0x6056, 0x6057, 0x605D, /* 0x60 */
- 0x6061, 0x6067, 0x6071, 0x607E, 0x607F, 0x6082, 0x6086, 0x6088, /* 0x60 */
- 0x608A, 0x608E, 0x6091, 0x6093, 0x6095, 0x6098, 0x609D, 0x609E, /* 0x70 */
- 0x60A2, 0x60A4, 0x60A5, 0x60A8, 0x60B0, 0x60B1, 0x60B7 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_3E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x60BB, 0x60BE, 0x60C2, 0x60C4, 0x60C8, 0x60C9, 0x60CA, /* 0x20 */
- 0x60CB, 0x60CE, 0x60CF, 0x60D4, 0x60D5, 0x60D9, 0x60DB, 0x60DD, /* 0x20 */
- 0x60DE, 0x60E2, 0x60E5, 0x60F2, 0x60F5, 0x60F8, 0x60FC, 0x60FD, /* 0x30 */
- 0x6102, 0x6107, 0x610A, 0x610C, 0x6110, 0x6111, 0x6112, 0x6113, /* 0x30 */
- 0x6114, 0x6116, 0x6117, 0x6119, 0x611C, 0x611E, 0x6122, 0x612A, /* 0x40 */
- 0x612B, 0x6130, 0x6131, 0x6135, 0x6136, 0x6137, 0x6139, 0x6141, /* 0x40 */
- 0x6145, 0x6146, 0x6149, 0x615E, 0x6160, 0x616C, 0x6172, 0x6178, /* 0x50 */
- 0x617B, 0x617C, 0x617F, 0x6180, 0x6181, 0x6183, 0x6184, 0x618B, /* 0x50 */
- 0x618D, 0x6192, 0x6193, 0x6197, 0x6198, 0x619C, 0x619D, 0x619F, /* 0x60 */
- 0x61A0, 0x61A5, 0x61A8, 0x61AA, 0x61AD, 0x61B8, 0x61B9, 0x61BC, /* 0x60 */
- 0x61C0, 0x61C1, 0x61C2, 0x61CE, 0x61CF, 0x61D5, 0x61DC, 0x61DD, /* 0x70 */
- 0x61DE, 0x61DF, 0x61E1, 0x61E2, 0x61E7, 0x61E9, 0x61E5 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_3F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x61EC, 0x61ED, 0x61EF, 0x6201, 0x6203, 0x6204, 0x6207, /* 0x20 */
- 0x6213, 0x6215, 0x621C, 0x6220, 0x6222, 0x6223, 0x6227, 0x6229, /* 0x20 */
- 0x622B, 0x6239, 0x623D, 0x6242, 0x6243, 0x6244, 0x6246, 0x624C, /* 0x30 */
- 0x6250, 0x6251, 0x6252, 0x6254, 0x6256, 0x625A, 0x625C, 0x6264, /* 0x30 */
- 0x626D, 0x626F, 0x6273, 0x627A, 0x627D, 0x628D, 0x628E, 0x628F, /* 0x40 */
- 0x6290, 0x62A6, 0x62A8, 0x62B3, 0x62B6, 0x62B7, 0x62BA, 0x62BE, /* 0x40 */
- 0x62BF, 0x62C4, 0x62CE, 0x62D5, 0x62D6, 0x62DA, 0x62EA, 0x62F2, /* 0x50 */
- 0x62F4, 0x62FC, 0x62FD, 0x6303, 0x6304, 0x630A, 0x630B, 0x630D, /* 0x50 */
- 0x6310, 0x6313, 0x6316, 0x6318, 0x6329, 0x632A, 0x632D, 0x6335, /* 0x60 */
- 0x6336, 0x6339, 0x633C, 0x6341, 0x6342, 0x6343, 0x6344, 0x6346, /* 0x60 */
- 0x634A, 0x634B, 0x634E, 0x6352, 0x6353, 0x6354, 0x6358, 0x635B, /* 0x70 */
- 0x6365, 0x6366, 0x636C, 0x636D, 0x6371, 0x6374, 0x6375 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_40[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6378, 0x637C, 0x637D, 0x637F, 0x6382, 0x6384, 0x6387, /* 0x20 */
- 0x638A, 0x6390, 0x6394, 0x6395, 0x6399, 0x639A, 0x639E, 0x63A4, /* 0x20 */
- 0x63A6, 0x63AD, 0x63AE, 0x63AF, 0x63BD, 0x63C1, 0x63C5, 0x63C8, /* 0x30 */
- 0x63CE, 0x63D1, 0x63D3, 0x63D4, 0x63D5, 0x63DC, 0x63E0, 0x63E5, /* 0x30 */
- 0x63EA, 0x63EC, 0x63F2, 0x63F3, 0x63F5, 0x63F8, 0x63F9, 0x6409, /* 0x40 */
- 0x640A, 0x6410, 0x6412, 0x6414, 0x6418, 0x641E, 0x6420, 0x6422, /* 0x40 */
- 0x6424, 0x6425, 0x6429, 0x642A, 0x642F, 0x6430, 0x6435, 0x643D, /* 0x50 */
- 0x643F, 0x644B, 0x644F, 0x6451, 0x6452, 0x6453, 0x6454, 0x645A, /* 0x50 */
- 0x645B, 0x645C, 0x645D, 0x645F, 0x6460, 0x6461, 0x6463, 0x646D, /* 0x60 */
- 0x6473, 0x6474, 0x647B, 0x647D, 0x6485, 0x6487, 0x648F, 0x6490, /* 0x60 */
- 0x6491, 0x6498, 0x6499, 0x649B, 0x649D, 0x649F, 0x64A1, 0x64A3, /* 0x70 */
- 0x64A6, 0x64A8, 0x64AC, 0x64B3, 0x64BD, 0x64BE, 0x64BF /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_41[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x64C4, 0x64C9, 0x64CA, 0x64CB, 0x64CC, 0x64CE, 0x64D0, /* 0x20 */
- 0x64D1, 0x64D5, 0x64D7, 0x64E4, 0x64E5, 0x64E9, 0x64EA, 0x64ED, /* 0x20 */
- 0x64F0, 0x64F5, 0x64F7, 0x64FB, 0x64FF, 0x6501, 0x6504, 0x6508, /* 0x30 */
- 0x6509, 0x650A, 0x650F, 0x6513, 0x6514, 0x6516, 0x6519, 0x651B, /* 0x30 */
- 0x651E, 0x651F, 0x6522, 0x6526, 0x6529, 0x652E, 0x6531, 0x653A, /* 0x40 */
- 0x653C, 0x653D, 0x6543, 0x6547, 0x6549, 0x6550, 0x6552, 0x6554, /* 0x40 */
- 0x655F, 0x6560, 0x6567, 0x656B, 0x657A, 0x657D, 0x6581, 0x6585, /* 0x50 */
- 0x658A, 0x6592, 0x6595, 0x6598, 0x659D, 0x65A0, 0x65A3, 0x65A6, /* 0x50 */
- 0x65AE, 0x65B2, 0x65B3, 0x65B4, 0x65BF, 0x65C2, 0x65C8, 0x65C9, /* 0x60 */
- 0x65CE, 0x65D0, 0x65D4, 0x65D6, 0x65D8, 0x65DF, 0x65F0, 0x65F2, /* 0x60 */
- 0x65F4, 0x65F5, 0x65F9, 0x65FE, 0x65FF, 0x6600, 0x6604, 0x6608, /* 0x70 */
- 0x6609, 0x660D, 0x6611, 0x6612, 0x6615, 0x6616, 0x661D /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_42[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x661E, 0x6621, 0x6622, 0x6623, 0x6624, 0x6626, 0x6629, /* 0x20 */
- 0x662A, 0x662B, 0x662C, 0x662E, 0x6630, 0x6631, 0x6633, 0x6639, /* 0x20 */
- 0x6637, 0x6640, 0x6645, 0x6646, 0x664A, 0x664C, 0x6651, 0x664E, /* 0x30 */
- 0x6657, 0x6658, 0x6659, 0x665B, 0x665C, 0x6660, 0x6661, 0x66FB, /* 0x30 */
- 0x666A, 0x666B, 0x666C, 0x667E, 0x6673, 0x6675, 0x667F, 0x6677, /* 0x40 */
- 0x6678, 0x6679, 0x667B, 0x6680, 0x667C, 0x668B, 0x668C, 0x668D, /* 0x40 */
- 0x6690, 0x6692, 0x6699, 0x669A, 0x669B, 0x669C, 0x669F, 0x66A0, /* 0x50 */
- 0x66A4, 0x66AD, 0x66B1, 0x66B2, 0x66B5, 0x66BB, 0x66BF, 0x66C0, /* 0x50 */
- 0x66C2, 0x66C3, 0x66C8, 0x66CC, 0x66CE, 0x66CF, 0x66D4, 0x66DB, /* 0x60 */
- 0x66DF, 0x66E8, 0x66EB, 0x66EC, 0x66EE, 0x66FA, 0x6705, 0x6707, /* 0x60 */
- 0x670E, 0x6713, 0x6719, 0x671C, 0x6720, 0x6722, 0x6733, 0x673E, /* 0x70 */
- 0x6745, 0x6747, 0x6748, 0x674C, 0x6754, 0x6755, 0x675D /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_43[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6766, 0x676C, 0x676E, 0x6774, 0x6776, 0x677B, 0x6781, /* 0x20 */
- 0x6784, 0x678E, 0x678F, 0x6791, 0x6793, 0x6796, 0x6798, 0x6799, /* 0x20 */
- 0x679B, 0x67B0, 0x67B1, 0x67B2, 0x67B5, 0x67BB, 0x67BC, 0x67BD, /* 0x30 */
- 0x67F9, 0x67C0, 0x67C2, 0x67C3, 0x67C5, 0x67C8, 0x67C9, 0x67D2, /* 0x30 */
- 0x67D7, 0x67D9, 0x67DC, 0x67E1, 0x67E6, 0x67F0, 0x67F2, 0x67F6, /* 0x40 */
- 0x67F7, 0x6852, 0x6814, 0x6819, 0x681D, 0x681F, 0x6828, 0x6827, /* 0x40 */
- 0x682C, 0x682D, 0x682F, 0x6830, 0x6831, 0x6833, 0x683B, 0x683F, /* 0x50 */
- 0x6844, 0x6845, 0x684A, 0x684C, 0x6855, 0x6857, 0x6858, 0x685B, /* 0x50 */
- 0x686B, 0x686E, 0x686F, 0x6870, 0x6871, 0x6872, 0x6875, 0x6879, /* 0x60 */
- 0x687A, 0x687B, 0x687C, 0x6882, 0x6884, 0x6886, 0x6888, 0x6896, /* 0x60 */
- 0x6898, 0x689A, 0x689C, 0x68A1, 0x68A3, 0x68A5, 0x68A9, 0x68AA, /* 0x70 */
- 0x68AE, 0x68B2, 0x68BB, 0x68C5, 0x68C8, 0x68CC, 0x68CF /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_44[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x68D0, 0x68D1, 0x68D3, 0x68D6, 0x68D9, 0x68DC, 0x68DD, /* 0x20 */
- 0x68E5, 0x68E8, 0x68EA, 0x68EB, 0x68EC, 0x68ED, 0x68F0, 0x68F1, /* 0x20 */
- 0x68F5, 0x68F6, 0x68FB, 0x68FC, 0x68FD, 0x6906, 0x6909, 0x690A, /* 0x30 */
- 0x6910, 0x6911, 0x6913, 0x6916, 0x6917, 0x6931, 0x6933, 0x6935, /* 0x30 */
- 0x6938, 0x693B, 0x6942, 0x6945, 0x6949, 0x694E, 0x6957, 0x695B, /* 0x40 */
- 0x6963, 0x6964, 0x6965, 0x6966, 0x6968, 0x6969, 0x696C, 0x6970, /* 0x40 */
- 0x6971, 0x6972, 0x697A, 0x697B, 0x697F, 0x6980, 0x698D, 0x6992, /* 0x50 */
- 0x6996, 0x6998, 0x69A1, 0x69A5, 0x69A6, 0x69A8, 0x69AB, 0x69AD, /* 0x50 */
- 0x69AF, 0x69B7, 0x69B8, 0x69BA, 0x69BC, 0x69C5, 0x69C8, 0x69D1, /* 0x60 */
- 0x69D6, 0x69D7, 0x69E2, 0x69E5, 0x69EE, 0x69EF, 0x69F1, 0x69F3, /* 0x60 */
- 0x69F5, 0x69FE, 0x6A00, 0x6A01, 0x6A03, 0x6A0F, 0x6A11, 0x6A15, /* 0x70 */
- 0x6A1A, 0x6A1D, 0x6A20, 0x6A24, 0x6A28, 0x6A30, 0x6A32 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_45[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6A34, 0x6A37, 0x6A3B, 0x6A3E, 0x6A3F, 0x6A45, 0x6A46, /* 0x20 */
- 0x6A49, 0x6A4A, 0x6A4E, 0x6A50, 0x6A51, 0x6A52, 0x6A55, 0x6A56, /* 0x20 */
- 0x6A5B, 0x6A64, 0x6A67, 0x6A6A, 0x6A71, 0x6A73, 0x6A7E, 0x6A81, /* 0x30 */
- 0x6A83, 0x6A86, 0x6A87, 0x6A89, 0x6A8B, 0x6A91, 0x6A9B, 0x6A9D, /* 0x30 */
- 0x6A9E, 0x6A9F, 0x6AA5, 0x6AAB, 0x6AAF, 0x6AB0, 0x6AB1, 0x6AB4, /* 0x40 */
- 0x6ABD, 0x6ABE, 0x6ABF, 0x6AC6, 0x6AC9, 0x6AC8, 0x6ACC, 0x6AD0, /* 0x40 */
- 0x6AD4, 0x6AD5, 0x6AD6, 0x6ADC, 0x6ADD, 0x6AE4, 0x6AE7, 0x6AEC, /* 0x50 */
- 0x6AF0, 0x6AF1, 0x6AF2, 0x6AFC, 0x6AFD, 0x6B02, 0x6B03, 0x6B06, /* 0x50 */
- 0x6B07, 0x6B09, 0x6B0F, 0x6B10, 0x6B11, 0x6B17, 0x6B1B, 0x6B1E, /* 0x60 */
- 0x6B24, 0x6B28, 0x6B2B, 0x6B2C, 0x6B2F, 0x6B35, 0x6B36, 0x6B3B, /* 0x60 */
- 0x6B3F, 0x6B46, 0x6B4A, 0x6B4D, 0x6B52, 0x6B56, 0x6B58, 0x6B5D, /* 0x70 */
- 0x6B60, 0x6B67, 0x6B6B, 0x6B6E, 0x6B70, 0x6B75, 0x6B7D /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_46[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6B7E, 0x6B82, 0x6B85, 0x6B97, 0x6B9B, 0x6B9F, 0x6BA0, /* 0x20 */
- 0x6BA2, 0x6BA3, 0x6BA8, 0x6BA9, 0x6BAC, 0x6BAD, 0x6BAE, 0x6BB0, /* 0x20 */
- 0x6BB8, 0x6BB9, 0x6BBD, 0x6BBE, 0x6BC3, 0x6BC4, 0x6BC9, 0x6BCC, /* 0x30 */
- 0x6BD6, 0x6BDA, 0x6BE1, 0x6BE3, 0x6BE6, 0x6BE7, 0x6BEE, 0x6BF1, /* 0x30 */
- 0x6BF7, 0x6BF9, 0x6BFF, 0x6C02, 0x6C04, 0x6C05, 0x6C09, 0x6C0D, /* 0x40 */
- 0x6C0E, 0x6C10, 0x6C12, 0x6C19, 0x6C1F, 0x6C26, 0x6C27, 0x6C28, /* 0x40 */
- 0x6C2C, 0x6C2E, 0x6C33, 0x6C35, 0x6C36, 0x6C3A, 0x6C3B, 0x6C3F, /* 0x50 */
- 0x6C4A, 0x6C4B, 0x6C4D, 0x6C4F, 0x6C52, 0x6C54, 0x6C59, 0x6C5B, /* 0x50 */
- 0x6C5C, 0x6C6B, 0x6C6D, 0x6C6F, 0x6C74, 0x6C76, 0x6C78, 0x6C79, /* 0x60 */
- 0x6C7B, 0x6C85, 0x6C86, 0x6C87, 0x6C89, 0x6C94, 0x6C95, 0x6C97, /* 0x60 */
- 0x6C98, 0x6C9C, 0x6C9F, 0x6CB0, 0x6CB2, 0x6CB4, 0x6CC2, 0x6CC6, /* 0x70 */
- 0x6CCD, 0x6CCF, 0x6CD0, 0x6CD1, 0x6CD2, 0x6CD4, 0x6CD6 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_47[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6CDA, 0x6CDC, 0x6CE0, 0x6CE7, 0x6CE9, 0x6CEB, 0x6CEC, /* 0x20 */
- 0x6CEE, 0x6CF2, 0x6CF4, 0x6D04, 0x6D07, 0x6D0A, 0x6D0E, 0x6D0F, /* 0x20 */
- 0x6D11, 0x6D13, 0x6D1A, 0x6D26, 0x6D27, 0x6D28, 0x6C67, 0x6D2E, /* 0x30 */
- 0x6D2F, 0x6D31, 0x6D39, 0x6D3C, 0x6D3F, 0x6D57, 0x6D5E, 0x6D5F, /* 0x30 */
- 0x6D61, 0x6D65, 0x6D67, 0x6D6F, 0x6D70, 0x6D7C, 0x6D82, 0x6D87, /* 0x40 */
- 0x6D91, 0x6D92, 0x6D94, 0x6D96, 0x6D97, 0x6D98, 0x6DAA, 0x6DAC, /* 0x40 */
- 0x6DB4, 0x6DB7, 0x6DB9, 0x6DBD, 0x6DBF, 0x6DC4, 0x6DC8, 0x6DCA, /* 0x50 */
- 0x6DCE, 0x6DCF, 0x6DD6, 0x6DDB, 0x6DDD, 0x6DDF, 0x6DE0, 0x6DE2, /* 0x50 */
- 0x6DE5, 0x6DE9, 0x6DEF, 0x6DF0, 0x6DF4, 0x6DF6, 0x6DFC, 0x6E00, /* 0x60 */
- 0x6E04, 0x6E1E, 0x6E22, 0x6E27, 0x6E32, 0x6E36, 0x6E39, 0x6E3B, /* 0x60 */
- 0x6E3C, 0x6E44, 0x6E45, 0x6E48, 0x6E49, 0x6E4B, 0x6E4F, 0x6E51, /* 0x70 */
- 0x6E52, 0x6E53, 0x6E54, 0x6E57, 0x6E5C, 0x6E5D, 0x6E5E /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_48[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6E62, 0x6E63, 0x6E68, 0x6E73, 0x6E7B, 0x6E7D, 0x6E8D, /* 0x20 */
- 0x6E93, 0x6E99, 0x6EA0, 0x6EA7, 0x6EAD, 0x6EAE, 0x6EB1, 0x6EB3, /* 0x20 */
- 0x6EBB, 0x6EBF, 0x6EC0, 0x6EC1, 0x6EC3, 0x6EC7, 0x6EC8, 0x6ECA, /* 0x30 */
- 0x6ECD, 0x6ECE, 0x6ECF, 0x6EEB, 0x6EED, 0x6EEE, 0x6EF9, 0x6EFB, /* 0x30 */
- 0x6EFD, 0x6F04, 0x6F08, 0x6F0A, 0x6F0C, 0x6F0D, 0x6F16, 0x6F18, /* 0x40 */
- 0x6F1A, 0x6F1B, 0x6F26, 0x6F29, 0x6F2A, 0x6F2F, 0x6F30, 0x6F33, /* 0x40 */
- 0x6F36, 0x6F3B, 0x6F3C, 0x6F2D, 0x6F4F, 0x6F51, 0x6F52, 0x6F53, /* 0x50 */
- 0x6F57, 0x6F59, 0x6F5A, 0x6F5D, 0x6F5E, 0x6F61, 0x6F62, 0x6F68, /* 0x50 */
- 0x6F6C, 0x6F7D, 0x6F7E, 0x6F83, 0x6F87, 0x6F88, 0x6F8B, 0x6F8C, /* 0x60 */
- 0x6F8D, 0x6F90, 0x6F92, 0x6F93, 0x6F94, 0x6F96, 0x6F9A, 0x6F9F, /* 0x60 */
- 0x6FA0, 0x6FA5, 0x6FA6, 0x6FA7, 0x6FA8, 0x6FAE, 0x6FAF, 0x6FB0, /* 0x70 */
- 0x6FB5, 0x6FB6, 0x6FBC, 0x6FC5, 0x6FC7, 0x6FC8, 0x6FCA /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_49[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6FDA, 0x6FDE, 0x6FE8, 0x6FE9, 0x6FF0, 0x6FF5, 0x6FF9, /* 0x20 */
- 0x6FFC, 0x6FFD, 0x7000, 0x7005, 0x7006, 0x7007, 0x700D, 0x7017, /* 0x20 */
- 0x7020, 0x7023, 0x702F, 0x7034, 0x7037, 0x7039, 0x703C, 0x7043, /* 0x30 */
- 0x7044, 0x7048, 0x7049, 0x704A, 0x704B, 0x7054, 0x7055, 0x705D, /* 0x30 */
- 0x705E, 0x704E, 0x7064, 0x7065, 0x706C, 0x706E, 0x7075, 0x7076, /* 0x40 */
- 0x707E, 0x7081, 0x7085, 0x7086, 0x7094, 0x7095, 0x7096, 0x7097, /* 0x40 */
- 0x7098, 0x709B, 0x70A4, 0x70AB, 0x70B0, 0x70B1, 0x70B4, 0x70B7, /* 0x50 */
- 0x70CA, 0x70D1, 0x70D3, 0x70D4, 0x70D5, 0x70D6, 0x70D8, 0x70DC, /* 0x50 */
- 0x70E4, 0x70FA, 0x7103, 0x7104, 0x7105, 0x7106, 0x7107, 0x710B, /* 0x60 */
- 0x710C, 0x710F, 0x711E, 0x7120, 0x712B, 0x712D, 0x712F, 0x7130, /* 0x60 */
- 0x7131, 0x7138, 0x7141, 0x7145, 0x7146, 0x7147, 0x714A, 0x714B, /* 0x70 */
- 0x7150, 0x7152, 0x7157, 0x715A, 0x715C, 0x715E, 0x7160 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_4A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7168, 0x7179, 0x7180, 0x7185, 0x7187, 0x718C, 0x7192, /* 0x20 */
- 0x719A, 0x719B, 0x71A0, 0x71A2, 0x71AF, 0x71B0, 0x71B2, 0x71B3, /* 0x20 */
- 0x71BA, 0x71BF, 0x71C0, 0x71C1, 0x71C4, 0x71CB, 0x71CC, 0x71D3, /* 0x30 */
- 0x71D6, 0x71D9, 0x71DA, 0x71DC, 0x71F8, 0x71FE, 0x7200, 0x7207, /* 0x30 */
- 0x7208, 0x7209, 0x7213, 0x7217, 0x721A, 0x721D, 0x721F, 0x7224, /* 0x40 */
- 0x722B, 0x722F, 0x7234, 0x7238, 0x7239, 0x7241, 0x7242, 0x7243, /* 0x40 */
- 0x7245, 0x724E, 0x724F, 0x7250, 0x7253, 0x7255, 0x7256, 0x725A, /* 0x50 */
- 0x725C, 0x725E, 0x7260, 0x7263, 0x7268, 0x726B, 0x726E, 0x726F, /* 0x50 */
- 0x7271, 0x7277, 0x7278, 0x727B, 0x727C, 0x727F, 0x7284, 0x7289, /* 0x60 */
- 0x728D, 0x728E, 0x7293, 0x729B, 0x72A8, 0x72AD, 0x72AE, 0x72B1, /* 0x60 */
- 0x72B4, 0x72BE, 0x72C1, 0x72C7, 0x72C9, 0x72CC, 0x72D5, 0x72D6, /* 0x70 */
- 0x72D8, 0x72DF, 0x72E5, 0x72F3, 0x72F4, 0x72FA, 0x72FB /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_4B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x72FE, 0x7302, 0x7304, 0x7305, 0x7307, 0x730B, 0x730D, /* 0x20 */
- 0x7312, 0x7313, 0x7318, 0x7319, 0x731E, 0x7322, 0x7324, 0x7327, /* 0x20 */
- 0x7328, 0x732C, 0x7331, 0x7332, 0x7335, 0x733A, 0x733B, 0x733D, /* 0x30 */
- 0x7343, 0x734D, 0x7350, 0x7352, 0x7356, 0x7358, 0x735D, 0x735E, /* 0x30 */
- 0x735F, 0x7360, 0x7366, 0x7367, 0x7369, 0x736B, 0x736C, 0x736E, /* 0x40 */
- 0x736F, 0x7371, 0x7377, 0x7379, 0x737C, 0x7380, 0x7381, 0x7383, /* 0x40 */
- 0x7385, 0x7386, 0x738E, 0x7390, 0x7393, 0x7395, 0x7397, 0x7398, /* 0x50 */
- 0x739C, 0x739E, 0x739F, 0x73A0, 0x73A2, 0x73A5, 0x73A6, 0x73AA, /* 0x50 */
- 0x73AB, 0x73AD, 0x73B5, 0x73B7, 0x73B9, 0x73BC, 0x73BD, 0x73BF, /* 0x60 */
- 0x73C5, 0x73C6, 0x73C9, 0x73CB, 0x73CC, 0x73CF, 0x73D2, 0x73D3, /* 0x60 */
- 0x73D6, 0x73D9, 0x73DD, 0x73E1, 0x73E3, 0x73E6, 0x73E7, 0x73E9, /* 0x70 */
- 0x73F4, 0x73F5, 0x73F7, 0x73F9, 0x73FA, 0x73FB, 0x73FD /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_4C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x73FF, 0x7400, 0x7401, 0x7404, 0x7407, 0x740A, 0x7411, /* 0x20 */
- 0x741A, 0x741B, 0x7424, 0x7426, 0x7428, 0x7429, 0x742A, 0x742B, /* 0x20 */
- 0x742C, 0x742D, 0x742E, 0x742F, 0x7430, 0x7431, 0x7439, 0x7440, /* 0x30 */
- 0x7443, 0x7444, 0x7446, 0x7447, 0x744B, 0x744D, 0x7451, 0x7452, /* 0x30 */
- 0x7457, 0x745D, 0x7462, 0x7466, 0x7467, 0x7468, 0x746B, 0x746D, /* 0x40 */
- 0x746E, 0x7471, 0x7472, 0x7480, 0x7481, 0x7485, 0x7486, 0x7487, /* 0x40 */
- 0x7489, 0x748F, 0x7490, 0x7491, 0x7492, 0x7498, 0x7499, 0x749A, /* 0x50 */
- 0x749C, 0x749F, 0x74A0, 0x74A1, 0x74A3, 0x74A6, 0x74A8, 0x74A9, /* 0x50 */
- 0x74AA, 0x74AB, 0x74AE, 0x74AF, 0x74B1, 0x74B2, 0x74B5, 0x74B9, /* 0x60 */
- 0x74BB, 0x74BF, 0x74C8, 0x74C9, 0x74CC, 0x74D0, 0x74D3, 0x74D8, /* 0x60 */
- 0x74DA, 0x74DB, 0x74DE, 0x74DF, 0x74E4, 0x74E8, 0x74EA, 0x74EB, /* 0x70 */
- 0x74EF, 0x74F4, 0x74FA, 0x74FB, 0x74FC, 0x74FF, 0x7506 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_4D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7512, 0x7516, 0x7517, 0x7520, 0x7521, 0x7524, 0x7527, /* 0x20 */
- 0x7529, 0x752A, 0x752F, 0x7536, 0x7539, 0x753D, 0x753E, 0x753F, /* 0x20 */
- 0x7540, 0x7543, 0x7547, 0x7548, 0x754E, 0x7550, 0x7552, 0x7557, /* 0x30 */
- 0x755E, 0x755F, 0x7561, 0x756F, 0x7571, 0x7579, 0x757A, 0x757B, /* 0x30 */
- 0x757C, 0x757D, 0x757E, 0x7581, 0x7585, 0x7590, 0x7592, 0x7593, /* 0x40 */
- 0x7595, 0x7599, 0x759C, 0x75A2, 0x75A4, 0x75B4, 0x75BA, 0x75BF, /* 0x40 */
- 0x75C0, 0x75C1, 0x75C4, 0x75C6, 0x75CC, 0x75CE, 0x75CF, 0x75D7, /* 0x50 */
- 0x75DC, 0x75DF, 0x75E0, 0x75E1, 0x75E4, 0x75E7, 0x75EC, 0x75EE, /* 0x50 */
- 0x75EF, 0x75F1, 0x75F9, 0x7600, 0x7602, 0x7603, 0x7604, 0x7607, /* 0x60 */
- 0x7608, 0x760A, 0x760C, 0x760F, 0x7612, 0x7613, 0x7615, 0x7616, /* 0x60 */
- 0x7619, 0x761B, 0x761C, 0x761D, 0x761E, 0x7623, 0x7625, 0x7626, /* 0x70 */
- 0x7629, 0x762D, 0x7632, 0x7633, 0x7635, 0x7638, 0x7639 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_4E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x763A, 0x763C, 0x764A, 0x7640, 0x7641, 0x7643, 0x7644, /* 0x20 */
- 0x7645, 0x7649, 0x764B, 0x7655, 0x7659, 0x765F, 0x7664, 0x7665, /* 0x20 */
- 0x766D, 0x766E, 0x766F, 0x7671, 0x7674, 0x7681, 0x7685, 0x768C, /* 0x30 */
- 0x768D, 0x7695, 0x769B, 0x769C, 0x769D, 0x769F, 0x76A0, 0x76A2, /* 0x30 */
- 0x76A3, 0x76A4, 0x76A5, 0x76A6, 0x76A7, 0x76A8, 0x76AA, 0x76AD, /* 0x40 */
- 0x76BD, 0x76C1, 0x76C5, 0x76C9, 0x76CB, 0x76CC, 0x76CE, 0x76D4, /* 0x40 */
- 0x76D9, 0x76E0, 0x76E6, 0x76E8, 0x76EC, 0x76F0, 0x76F1, 0x76F6, /* 0x50 */
- 0x76F9, 0x76FC, 0x7700, 0x7706, 0x770A, 0x770E, 0x7712, 0x7714, /* 0x50 */
- 0x7715, 0x7717, 0x7719, 0x771A, 0x771C, 0x7722, 0x7728, 0x772D, /* 0x60 */
- 0x772E, 0x772F, 0x7734, 0x7735, 0x7736, 0x7739, 0x773D, 0x773E, /* 0x60 */
- 0x7742, 0x7745, 0x7746, 0x774A, 0x774D, 0x774E, 0x774F, 0x7752, /* 0x70 */
- 0x7756, 0x7757, 0x775C, 0x775E, 0x775F, 0x7760, 0x7762 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_4F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7764, 0x7767, 0x776A, 0x776C, 0x7770, 0x7772, 0x7773, /* 0x20 */
- 0x7774, 0x777A, 0x777D, 0x7780, 0x7784, 0x778C, 0x778D, 0x7794, /* 0x20 */
- 0x7795, 0x7796, 0x779A, 0x779F, 0x77A2, 0x77A7, 0x77AA, 0x77AE, /* 0x30 */
- 0x77AF, 0x77B1, 0x77B5, 0x77BE, 0x77C3, 0x77C9, 0x77D1, 0x77D2, /* 0x30 */
- 0x77D5, 0x77D9, 0x77DE, 0x77DF, 0x77E0, 0x77E4, 0x77E6, 0x77EA, /* 0x40 */
- 0x77EC, 0x77F0, 0x77F1, 0x77F4, 0x77F8, 0x77FB, 0x7805, 0x7806, /* 0x40 */
- 0x7809, 0x780D, 0x780E, 0x7811, 0x781D, 0x7821, 0x7822, 0x7823, /* 0x50 */
- 0x782D, 0x782E, 0x7830, 0x7835, 0x7837, 0x7843, 0x7844, 0x7847, /* 0x50 */
- 0x7848, 0x784C, 0x784E, 0x7852, 0x785C, 0x785E, 0x7860, 0x7861, /* 0x60 */
- 0x7863, 0x7864, 0x7868, 0x786A, 0x786E, 0x787A, 0x787E, 0x788A, /* 0x60 */
- 0x788F, 0x7894, 0x7898, 0x78A1, 0x789D, 0x789E, 0x789F, 0x78A4, /* 0x70 */
- 0x78A8, 0x78AC, 0x78AD, 0x78B0, 0x78B1, 0x78B2, 0x78B3 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_50[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x78BB, 0x78BD, 0x78BF, 0x78C7, 0x78C8, 0x78C9, 0x78CC, /* 0x20 */
- 0x78CE, 0x78D2, 0x78D3, 0x78D5, 0x78D6, 0x78E4, 0x78DB, 0x78DF, /* 0x20 */
- 0x78E0, 0x78E1, 0x78E6, 0x78EA, 0x78F2, 0x78F3, 0x7900, 0x78F6, /* 0x30 */
- 0x78F7, 0x78FA, 0x78FB, 0x78FF, 0x7906, 0x790C, 0x7910, 0x791A, /* 0x30 */
- 0x791C, 0x791E, 0x791F, 0x7920, 0x7925, 0x7927, 0x7929, 0x792D, /* 0x40 */
- 0x7931, 0x7934, 0x7935, 0x793B, 0x793D, 0x793F, 0x7944, 0x7945, /* 0x40 */
- 0x7946, 0x794A, 0x794B, 0x794F, 0x7951, 0x7954, 0x7958, 0x795B, /* 0x50 */
- 0x795C, 0x7967, 0x7969, 0x796B, 0x7972, 0x7979, 0x797B, 0x797C, /* 0x50 */
- 0x797E, 0x798B, 0x798C, 0x7991, 0x7993, 0x7994, 0x7995, 0x7996, /* 0x60 */
- 0x7998, 0x799B, 0x799C, 0x79A1, 0x79A8, 0x79A9, 0x79AB, 0x79AF, /* 0x60 */
- 0x79B1, 0x79B4, 0x79B8, 0x79BB, 0x79C2, 0x79C4, 0x79C7, 0x79C8, /* 0x70 */
- 0x79CA, 0x79CF, 0x79D4, 0x79D6, 0x79DA, 0x79DD, 0x79DE /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_51[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x79E0, 0x79E2, 0x79E5, 0x79EA, 0x79EB, 0x79ED, 0x79F1, /* 0x20 */
- 0x79F8, 0x79FC, 0x7A02, 0x7A03, 0x7A07, 0x7A09, 0x7A0A, 0x7A0C, /* 0x20 */
- 0x7A11, 0x7A15, 0x7A1B, 0x7A1E, 0x7A21, 0x7A27, 0x7A2B, 0x7A2D, /* 0x30 */
- 0x7A2F, 0x7A30, 0x7A34, 0x7A35, 0x7A38, 0x7A39, 0x7A3A, 0x7A44, /* 0x30 */
- 0x7A45, 0x7A47, 0x7A48, 0x7A4C, 0x7A55, 0x7A56, 0x7A59, 0x7A5C, /* 0x40 */
- 0x7A5D, 0x7A5F, 0x7A60, 0x7A65, 0x7A67, 0x7A6A, 0x7A6D, 0x7A75, /* 0x40 */
- 0x7A78, 0x7A7E, 0x7A80, 0x7A82, 0x7A85, 0x7A86, 0x7A8A, 0x7A8B, /* 0x50 */
- 0x7A90, 0x7A91, 0x7A94, 0x7A9E, 0x7AA0, 0x7AA3, 0x7AAC, 0x7AB3, /* 0x50 */
- 0x7AB5, 0x7AB9, 0x7ABB, 0x7ABC, 0x7AC6, 0x7AC9, 0x7ACC, 0x7ACE, /* 0x60 */
- 0x7AD1, 0x7ADB, 0x7AE8, 0x7AE9, 0x7AEB, 0x7AEC, 0x7AF1, 0x7AF4, /* 0x60 */
- 0x7AFB, 0x7AFD, 0x7AFE, 0x7B07, 0x7B14, 0x7B1F, 0x7B23, 0x7B27, /* 0x70 */
- 0x7B29, 0x7B2A, 0x7B2B, 0x7B2D, 0x7B2E, 0x7B2F, 0x7B30 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_52[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7B31, 0x7B34, 0x7B3D, 0x7B3F, 0x7B40, 0x7B41, 0x7B47, /* 0x20 */
- 0x7B4E, 0x7B55, 0x7B60, 0x7B64, 0x7B66, 0x7B69, 0x7B6A, 0x7B6D, /* 0x20 */
- 0x7B6F, 0x7B72, 0x7B73, 0x7B77, 0x7B84, 0x7B89, 0x7B8E, 0x7B90, /* 0x30 */
- 0x7B91, 0x7B96, 0x7B9B, 0x7B9E, 0x7BA0, 0x7BA5, 0x7BAC, 0x7BAF, /* 0x30 */
- 0x7BB0, 0x7BB2, 0x7BB5, 0x7BB6, 0x7BBA, 0x7BBB, 0x7BBC, 0x7BBD, /* 0x40 */
- 0x7BC2, 0x7BC5, 0x7BC8, 0x7BCA, 0x7BD4, 0x7BD6, 0x7BD7, 0x7BD9, /* 0x40 */
- 0x7BDA, 0x7BDB, 0x7BE8, 0x7BEA, 0x7BF2, 0x7BF4, 0x7BF5, 0x7BF8, /* 0x50 */
- 0x7BF9, 0x7BFA, 0x7BFC, 0x7BFE, 0x7C01, 0x7C02, 0x7C03, 0x7C04, /* 0x50 */
- 0x7C06, 0x7C09, 0x7C0B, 0x7C0C, 0x7C0E, 0x7C0F, 0x7C19, 0x7C1B, /* 0x60 */
- 0x7C20, 0x7C25, 0x7C26, 0x7C28, 0x7C2C, 0x7C31, 0x7C33, 0x7C34, /* 0x60 */
- 0x7C36, 0x7C39, 0x7C3A, 0x7C46, 0x7C4A, 0x7C55, 0x7C51, 0x7C52, /* 0x70 */
- 0x7C53, 0x7C59, 0x7C5A, 0x7C5B, 0x7C5C, 0x7C5D, 0x7C5E /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_53[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7C61, 0x7C63, 0x7C67, 0x7C69, 0x7C6D, 0x7C6E, 0x7C70, /* 0x20 */
- 0x7C72, 0x7C79, 0x7C7C, 0x7C7D, 0x7C86, 0x7C87, 0x7C8F, 0x7C94, /* 0x20 */
- 0x7C9E, 0x7CA0, 0x7CA6, 0x7CB0, 0x7CB6, 0x7CB7, 0x7CBA, 0x7CBB, /* 0x30 */
- 0x7CBC, 0x7CBF, 0x7CC4, 0x7CC7, 0x7CC8, 0x7CC9, 0x7CCD, 0x7CCF, /* 0x30 */
- 0x7CD3, 0x7CD4, 0x7CD5, 0x7CD7, 0x7CD9, 0x7CDA, 0x7CDD, 0x7CE6, /* 0x40 */
- 0x7CE9, 0x7CEB, 0x7CF5, 0x7D03, 0x7D07, 0x7D08, 0x7D09, 0x7D0F, /* 0x40 */
- 0x7D11, 0x7D12, 0x7D13, 0x7D16, 0x7D1D, 0x7D1E, 0x7D23, 0x7D26, /* 0x50 */
- 0x7D2A, 0x7D2D, 0x7D31, 0x7D3C, 0x7D3D, 0x7D3E, 0x7D40, 0x7D41, /* 0x50 */
- 0x7D47, 0x7D48, 0x7D4D, 0x7D51, 0x7D53, 0x7D57, 0x7D59, 0x7D5A, /* 0x60 */
- 0x7D5C, 0x7D5D, 0x7D65, 0x7D67, 0x7D6A, 0x7D70, 0x7D78, 0x7D7A, /* 0x60 */
- 0x7D7B, 0x7D7F, 0x7D81, 0x7D82, 0x7D83, 0x7D85, 0x7D86, 0x7D88, /* 0x70 */
- 0x7D8B, 0x7D8C, 0x7D8D, 0x7D91, 0x7D96, 0x7D97, 0x7D9D /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_54[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7D9E, 0x7DA6, 0x7DA7, 0x7DAA, 0x7DB3, 0x7DB6, 0x7DB7, /* 0x20 */
- 0x7DB9, 0x7DC2, 0x7DC3, 0x7DC4, 0x7DC5, 0x7DC6, 0x7DCC, 0x7DCD, /* 0x20 */
- 0x7DCE, 0x7DD7, 0x7DD9, 0x7E00, 0x7DE2, 0x7DE5, 0x7DE6, 0x7DEA, /* 0x30 */
- 0x7DEB, 0x7DED, 0x7DF1, 0x7DF5, 0x7DF6, 0x7DF9, 0x7DFA, 0x7E08, /* 0x30 */
- 0x7E10, 0x7E11, 0x7E15, 0x7E17, 0x7E1C, 0x7E1D, 0x7E20, 0x7E27, /* 0x40 */
- 0x7E28, 0x7E2C, 0x7E2D, 0x7E2F, 0x7E33, 0x7E36, 0x7E3F, 0x7E44, /* 0x40 */
- 0x7E45, 0x7E47, 0x7E4E, 0x7E50, 0x7E52, 0x7E58, 0x7E5F, 0x7E61, /* 0x50 */
- 0x7E62, 0x7E65, 0x7E6B, 0x7E6E, 0x7E6F, 0x7E73, 0x7E78, 0x7E7E, /* 0x50 */
- 0x7E81, 0x7E86, 0x7E87, 0x7E8A, 0x7E8D, 0x7E91, 0x7E95, 0x7E98, /* 0x60 */
- 0x7E9A, 0x7E9D, 0x7E9E, 0x7F3C, 0x7F3B, 0x7F3D, 0x7F3E, 0x7F3F, /* 0x60 */
- 0x7F43, 0x7F44, 0x7F47, 0x7F4F, 0x7F52, 0x7F53, 0x7F5B, 0x7F5C, /* 0x70 */
- 0x7F5D, 0x7F61, 0x7F63, 0x7F64, 0x7F65, 0x7F66, 0x7F6D /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_55[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7F71, 0x7F7D, 0x7F7E, 0x7F7F, 0x7F80, 0x7F8B, 0x7F8D, /* 0x20 */
- 0x7F8F, 0x7F90, 0x7F91, 0x7F96, 0x7F97, 0x7F9C, 0x7FA1, 0x7FA2, /* 0x20 */
- 0x7FA6, 0x7FAA, 0x7FAD, 0x7FB4, 0x7FBC, 0x7FBF, 0x7FC0, 0x7FC3, /* 0x30 */
- 0x7FC8, 0x7FCE, 0x7FCF, 0x7FDB, 0x7FDF, 0x7FE3, 0x7FE5, 0x7FE8, /* 0x30 */
- 0x7FEC, 0x7FEE, 0x7FEF, 0x7FF2, 0x7FFA, 0x7FFD, 0x7FFE, 0x7FFF, /* 0x40 */
- 0x8007, 0x8008, 0x800A, 0x800D, 0x800E, 0x800F, 0x8011, 0x8013, /* 0x40 */
- 0x8014, 0x8016, 0x801D, 0x801E, 0x801F, 0x8020, 0x8024, 0x8026, /* 0x50 */
- 0x802C, 0x802E, 0x8030, 0x8034, 0x8035, 0x8037, 0x8039, 0x803A, /* 0x50 */
- 0x803C, 0x803E, 0x8040, 0x8044, 0x8060, 0x8064, 0x8066, 0x806D, /* 0x60 */
- 0x8071, 0x8075, 0x8081, 0x8088, 0x808E, 0x809C, 0x809E, 0x80A6, /* 0x60 */
- 0x80A7, 0x80AB, 0x80B8, 0x80B9, 0x80C8, 0x80CD, 0x80CF, 0x80D2, /* 0x70 */
- 0x80D4, 0x80D5, 0x80D7, 0x80D8, 0x80E0, 0x80ED, 0x80EE /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_56[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x80F0, 0x80F2, 0x80F3, 0x80F6, 0x80F9, 0x80FA, 0x80FE, /* 0x20 */
- 0x8103, 0x810B, 0x8116, 0x8117, 0x8118, 0x811C, 0x811E, 0x8120, /* 0x20 */
- 0x8124, 0x8127, 0x812C, 0x8130, 0x8135, 0x813A, 0x813C, 0x8145, /* 0x30 */
- 0x8147, 0x814A, 0x814C, 0x8152, 0x8157, 0x8160, 0x8161, 0x8167, /* 0x30 */
- 0x8168, 0x8169, 0x816D, 0x816F, 0x8177, 0x8181, 0x8190, 0x8184, /* 0x40 */
- 0x8185, 0x8186, 0x818B, 0x818E, 0x8196, 0x8198, 0x819B, 0x819E, /* 0x40 */
- 0x81A2, 0x81AE, 0x81B2, 0x81B4, 0x81BB, 0x81CB, 0x81C3, 0x81C5, /* 0x50 */
- 0x81CA, 0x81CE, 0x81CF, 0x81D5, 0x81D7, 0x81DB, 0x81DD, 0x81DE, /* 0x50 */
- 0x81E1, 0x81E4, 0x81EB, 0x81EC, 0x81F0, 0x81F1, 0x81F2, 0x81F5, /* 0x60 */
- 0x81F6, 0x81F8, 0x81F9, 0x81FD, 0x81FF, 0x8200, 0x8203, 0x820F, /* 0x60 */
- 0x8213, 0x8214, 0x8219, 0x821A, 0x821D, 0x8221, 0x8222, 0x8228, /* 0x70 */
- 0x8232, 0x8234, 0x823A, 0x8243, 0x8244, 0x8245, 0x8246 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_57[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x824B, 0x824E, 0x824F, 0x8251, 0x8256, 0x825C, 0x8260, /* 0x20 */
- 0x8263, 0x8267, 0x826D, 0x8274, 0x827B, 0x827D, 0x827F, 0x8280, /* 0x20 */
- 0x8281, 0x8283, 0x8284, 0x8287, 0x8289, 0x828A, 0x828E, 0x8291, /* 0x30 */
- 0x8294, 0x8296, 0x8298, 0x829A, 0x829B, 0x82A0, 0x82A1, 0x82A3, /* 0x30 */
- 0x82A4, 0x82A7, 0x82A8, 0x82A9, 0x82AA, 0x82AE, 0x82B0, 0x82B2, /* 0x40 */
- 0x82B4, 0x82B7, 0x82BA, 0x82BC, 0x82BE, 0x82BF, 0x82C6, 0x82D0, /* 0x40 */
- 0x82D5, 0x82DA, 0x82E0, 0x82E2, 0x82E4, 0x82E8, 0x82EA, 0x82ED, /* 0x50 */
- 0x82EF, 0x82F6, 0x82F7, 0x82FD, 0x82FE, 0x8300, 0x8301, 0x8307, /* 0x50 */
- 0x8308, 0x830A, 0x830B, 0x8354, 0x831B, 0x831D, 0x831E, 0x831F, /* 0x60 */
- 0x8321, 0x8322, 0x832C, 0x832D, 0x832E, 0x8330, 0x8333, 0x8337, /* 0x60 */
- 0x833A, 0x833C, 0x833D, 0x8342, 0x8343, 0x8344, 0x8347, 0x834D, /* 0x70 */
- 0x834E, 0x8351, 0x8355, 0x8356, 0x8357, 0x8370, 0x8378 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_58[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x837D, 0x837F, 0x8380, 0x8382, 0x8384, 0x8386, 0x838D, /* 0x20 */
- 0x8392, 0x8394, 0x8395, 0x8398, 0x8399, 0x839B, 0x839C, 0x839D, /* 0x20 */
- 0x83A6, 0x83A7, 0x83A9, 0x83AC, 0x83BE, 0x83BF, 0x83C0, 0x83C7, /* 0x30 */
- 0x83C9, 0x83CF, 0x83D0, 0x83D1, 0x83D4, 0x83DD, 0x8353, 0x83E8, /* 0x30 */
- 0x83EA, 0x83F6, 0x83F8, 0x83F9, 0x83FC, 0x8401, 0x8406, 0x840A, /* 0x40 */
- 0x840F, 0x8411, 0x8415, 0x8419, 0x83AD, 0x842F, 0x8439, 0x8445, /* 0x40 */
- 0x8447, 0x8448, 0x844A, 0x844D, 0x844F, 0x8451, 0x8452, 0x8456, /* 0x50 */
- 0x8458, 0x8459, 0x845A, 0x845C, 0x8460, 0x8464, 0x8465, 0x8467, /* 0x50 */
- 0x846A, 0x8470, 0x8473, 0x8474, 0x8476, 0x8478, 0x847C, 0x847D, /* 0x60 */
- 0x8481, 0x8485, 0x8492, 0x8493, 0x8495, 0x849E, 0x84A6, 0x84A8, /* 0x60 */
- 0x84A9, 0x84AA, 0x84AF, 0x84B1, 0x84B4, 0x84BA, 0x84BD, 0x84BE, /* 0x70 */
- 0x84C0, 0x84C2, 0x84C7, 0x84C8, 0x84CC, 0x84CF, 0x84D3 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_59[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x84DC, 0x84E7, 0x84EA, 0x84EF, 0x84F0, 0x84F1, 0x84F2, /* 0x20 */
- 0x84F7, 0x8532, 0x84FA, 0x84FB, 0x84FD, 0x8502, 0x8503, 0x8507, /* 0x20 */
- 0x850C, 0x850E, 0x8510, 0x851C, 0x851E, 0x8522, 0x8523, 0x8524, /* 0x30 */
- 0x8525, 0x8527, 0x852A, 0x852B, 0x852F, 0x8533, 0x8534, 0x8536, /* 0x30 */
- 0x853F, 0x8546, 0x854F, 0x8550, 0x8551, 0x8552, 0x8553, 0x8556, /* 0x40 */
- 0x8559, 0x855C, 0x855D, 0x855E, 0x855F, 0x8560, 0x8561, 0x8562, /* 0x40 */
- 0x8564, 0x856B, 0x856F, 0x8579, 0x857A, 0x857B, 0x857D, 0x857F, /* 0x50 */
- 0x8581, 0x8585, 0x8586, 0x8589, 0x858B, 0x858C, 0x858F, 0x8593, /* 0x50 */
- 0x8598, 0x859D, 0x859F, 0x85A0, 0x85A2, 0x85A5, 0x85A7, 0x85B4, /* 0x60 */
- 0x85B6, 0x85B7, 0x85B8, 0x85BC, 0x85BD, 0x85BE, 0x85BF, 0x85C2, /* 0x60 */
- 0x85C7, 0x85CA, 0x85CB, 0x85CE, 0x85AD, 0x85D8, 0x85DA, 0x85DF, /* 0x70 */
- 0x85E0, 0x85E6, 0x85E8, 0x85ED, 0x85F3, 0x85F6, 0x85FC /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_5A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x85FF, 0x8600, 0x8604, 0x8605, 0x860D, 0x860E, 0x8610, /* 0x20 */
- 0x8611, 0x8612, 0x8618, 0x8619, 0x861B, 0x861E, 0x8621, 0x8627, /* 0x20 */
- 0x8629, 0x8636, 0x8638, 0x863A, 0x863C, 0x863D, 0x8640, 0x8642, /* 0x30 */
- 0x8646, 0x8652, 0x8653, 0x8656, 0x8657, 0x8658, 0x8659, 0x865D, /* 0x30 */
- 0x8660, 0x8661, 0x8662, 0x8663, 0x8664, 0x8669, 0x866C, 0x866F, /* 0x40 */
- 0x8675, 0x8676, 0x8677, 0x867A, 0x868D, 0x8691, 0x8696, 0x8698, /* 0x40 */
- 0x869A, 0x869C, 0x86A1, 0x86A6, 0x86A7, 0x86A8, 0x86AD, 0x86B1, /* 0x50 */
- 0x86B3, 0x86B4, 0x86B5, 0x86B7, 0x86B8, 0x86B9, 0x86BF, 0x86C0, /* 0x50 */
- 0x86C1, 0x86C3, 0x86C5, 0x86D1, 0x86D2, 0x86D5, 0x86D7, 0x86DA, /* 0x60 */
- 0x86DC, 0x86E0, 0x86E3, 0x86E5, 0x86E7, 0x8688, 0x86FA, 0x86FC, /* 0x60 */
- 0x86FD, 0x8704, 0x8705, 0x8707, 0x870B, 0x870E, 0x870F, 0x8710, /* 0x70 */
- 0x8713, 0x8714, 0x8719, 0x871E, 0x871F, 0x8721, 0x8723 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_5B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8728, 0x872E, 0x872F, 0x8731, 0x8732, 0x8739, 0x873A, /* 0x20 */
- 0x873C, 0x873D, 0x873E, 0x8740, 0x8743, 0x8745, 0x874D, 0x8758, /* 0x20 */
- 0x875D, 0x8761, 0x8764, 0x8765, 0x876F, 0x8771, 0x8772, 0x877B, /* 0x30 */
- 0x8783, 0x8784, 0x8785, 0x8786, 0x8787, 0x8788, 0x8789, 0x878B, /* 0x30 */
- 0x878C, 0x8790, 0x8793, 0x8795, 0x8797, 0x8798, 0x8799, 0x879E, /* 0x40 */
- 0x87A0, 0x87A3, 0x87A7, 0x87AC, 0x87AD, 0x87AE, 0x87B1, 0x87B5, /* 0x40 */
- 0x87BE, 0x87BF, 0x87C1, 0x87C8, 0x87C9, 0x87CA, 0x87CE, 0x87D5, /* 0x50 */
- 0x87D6, 0x87D9, 0x87DA, 0x87DC, 0x87DF, 0x87E2, 0x87E3, 0x87E4, /* 0x50 */
- 0x87EA, 0x87EB, 0x87ED, 0x87F1, 0x87F3, 0x87F8, 0x87FA, 0x87FF, /* 0x60 */
- 0x8801, 0x8803, 0x8806, 0x8809, 0x880A, 0x880B, 0x8810, 0x8819, /* 0x60 */
- 0x8812, 0x8813, 0x8814, 0x8818, 0x881A, 0x881B, 0x881C, 0x881E, /* 0x70 */
- 0x881F, 0x8828, 0x882D, 0x882E, 0x8830, 0x8832, 0x8835 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_5C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x883A, 0x883C, 0x8841, 0x8843, 0x8845, 0x8848, 0x8849, /* 0x20 */
- 0x884A, 0x884B, 0x884E, 0x8851, 0x8855, 0x8856, 0x8858, 0x885A, /* 0x20 */
- 0x885C, 0x885F, 0x8860, 0x8864, 0x8869, 0x8871, 0x8879, 0x887B, /* 0x30 */
- 0x8880, 0x8898, 0x889A, 0x889B, 0x889C, 0x889F, 0x88A0, 0x88A8, /* 0x30 */
- 0x88AA, 0x88BA, 0x88BD, 0x88BE, 0x88C0, 0x88CA, 0x88CB, 0x88CC, /* 0x40 */
- 0x88CD, 0x88CE, 0x88D1, 0x88D2, 0x88D3, 0x88DB, 0x88DE, 0x88E7, /* 0x40 */
- 0x88EF, 0x88F0, 0x88F1, 0x88F5, 0x88F7, 0x8901, 0x8906, 0x890D, /* 0x50 */
- 0x890E, 0x890F, 0x8915, 0x8916, 0x8918, 0x8919, 0x891A, 0x891C, /* 0x50 */
- 0x8920, 0x8926, 0x8927, 0x8928, 0x8930, 0x8931, 0x8932, 0x8935, /* 0x60 */
- 0x8939, 0x893A, 0x893E, 0x8940, 0x8942, 0x8945, 0x8946, 0x8949, /* 0x60 */
- 0x894F, 0x8952, 0x8957, 0x895A, 0x895B, 0x895C, 0x8961, 0x8962, /* 0x70 */
- 0x8963, 0x896B, 0x896E, 0x8970, 0x8973, 0x8975, 0x897A /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_5D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x897B, 0x897C, 0x897D, 0x8989, 0x898D, 0x8990, 0x8994, /* 0x20 */
- 0x8995, 0x899B, 0x899C, 0x899F, 0x89A0, 0x89A5, 0x89B0, 0x89B4, /* 0x20 */
- 0x89B5, 0x89B6, 0x89B7, 0x89BC, 0x89D4, 0x89D5, 0x89D6, 0x89D7, /* 0x30 */
- 0x89D8, 0x89E5, 0x89E9, 0x89EB, 0x89ED, 0x89F1, 0x89F3, 0x89F6, /* 0x30 */
- 0x89F9, 0x89FD, 0x89FF, 0x8A04, 0x8A05, 0x8A07, 0x8A0F, 0x8A11, /* 0x40 */
- 0x8A12, 0x8A14, 0x8A15, 0x8A1E, 0x8A20, 0x8A22, 0x8A24, 0x8A26, /* 0x40 */
- 0x8A2B, 0x8A2C, 0x8A2F, 0x8A35, 0x8A37, 0x8A3D, 0x8A3E, 0x8A40, /* 0x50 */
- 0x8A43, 0x8A45, 0x8A47, 0x8A49, 0x8A4D, 0x8A4E, 0x8A53, 0x8A56, /* 0x50 */
- 0x8A57, 0x8A58, 0x8A5C, 0x8A5D, 0x8A61, 0x8A65, 0x8A67, 0x8A75, /* 0x60 */
- 0x8A76, 0x8A77, 0x8A79, 0x8A7A, 0x8A7B, 0x8A7E, 0x8A7F, 0x8A80, /* 0x60 */
- 0x8A83, 0x8A86, 0x8A8B, 0x8A8F, 0x8A90, 0x8A92, 0x8A96, 0x8A97, /* 0x70 */
- 0x8A99, 0x8A9F, 0x8AA7, 0x8AA9, 0x8AAE, 0x8AAF, 0x8AB3 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_5E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8AB6, 0x8AB7, 0x8ABB, 0x8ABE, 0x8AC3, 0x8AC6, 0x8AC8, /* 0x20 */
- 0x8AC9, 0x8ACA, 0x8AD1, 0x8AD3, 0x8AD4, 0x8AD5, 0x8AD7, 0x8ADD, /* 0x20 */
- 0x8ADF, 0x8AEC, 0x8AF0, 0x8AF4, 0x8AF5, 0x8AF6, 0x8AFC, 0x8AFF, /* 0x30 */
- 0x8B05, 0x8B06, 0x8B0B, 0x8B11, 0x8B1C, 0x8B1E, 0x8B1F, 0x8B0A, /* 0x30 */
- 0x8B2D, 0x8B30, 0x8B37, 0x8B3C, 0x8B42, 0x8B43, 0x8B44, 0x8B45, /* 0x40 */
- 0x8B46, 0x8B48, 0x8B52, 0x8B53, 0x8B54, 0x8B59, 0x8B4D, 0x8B5E, /* 0x40 */
- 0x8B63, 0x8B6D, 0x8B76, 0x8B78, 0x8B79, 0x8B7C, 0x8B7E, 0x8B81, /* 0x50 */
- 0x8B84, 0x8B85, 0x8B8B, 0x8B8D, 0x8B8F, 0x8B94, 0x8B95, 0x8B9C, /* 0x50 */
- 0x8B9E, 0x8B9F, 0x8C38, 0x8C39, 0x8C3D, 0x8C3E, 0x8C45, 0x8C47, /* 0x60 */
- 0x8C49, 0x8C4B, 0x8C4F, 0x8C51, 0x8C53, 0x8C54, 0x8C57, 0x8C58, /* 0x60 */
- 0x8C5B, 0x8C5D, 0x8C59, 0x8C63, 0x8C64, 0x8C66, 0x8C68, 0x8C69, /* 0x70 */
- 0x8C6D, 0x8C73, 0x8C75, 0x8C76, 0x8C7B, 0x8C7E, 0x8C86 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_5F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8C87, 0x8C8B, 0x8C90, 0x8C92, 0x8C93, 0x8C99, 0x8C9B, /* 0x20 */
- 0x8C9C, 0x8CA4, 0x8CB9, 0x8CBA, 0x8CC5, 0x8CC6, 0x8CC9, 0x8CCB, /* 0x20 */
- 0x8CCF, 0x8CD6, 0x8CD5, 0x8CD9, 0x8CDD, 0x8CE1, 0x8CE8, 0x8CEC, /* 0x30 */
- 0x8CEF, 0x8CF0, 0x8CF2, 0x8CF5, 0x8CF7, 0x8CF8, 0x8CFE, 0x8CFF, /* 0x30 */
- 0x8D01, 0x8D03, 0x8D09, 0x8D12, 0x8D17, 0x8D1B, 0x8D65, 0x8D69, /* 0x40 */
- 0x8D6C, 0x8D6E, 0x8D7F, 0x8D82, 0x8D84, 0x8D88, 0x8D8D, 0x8D90, /* 0x40 */
- 0x8D91, 0x8D95, 0x8D9E, 0x8D9F, 0x8DA0, 0x8DA6, 0x8DAB, 0x8DAC, /* 0x50 */
- 0x8DAF, 0x8DB2, 0x8DB5, 0x8DB7, 0x8DB9, 0x8DBB, 0x8DC0, 0x8DC5, /* 0x50 */
- 0x8DC6, 0x8DC7, 0x8DC8, 0x8DCA, 0x8DCE, 0x8DD1, 0x8DD4, 0x8DD5, /* 0x60 */
- 0x8DD7, 0x8DD9, 0x8DE4, 0x8DE5, 0x8DE7, 0x8DEC, 0x8DF0, 0x8DBC, /* 0x60 */
- 0x8DF1, 0x8DF2, 0x8DF4, 0x8DFD, 0x8E01, 0x8E04, 0x8E05, 0x8E06, /* 0x70 */
- 0x8E0B, 0x8E11, 0x8E14, 0x8E16, 0x8E20, 0x8E21, 0x8E22 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_60[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8E23, 0x8E26, 0x8E27, 0x8E31, 0x8E33, 0x8E36, 0x8E37, /* 0x20 */
- 0x8E38, 0x8E39, 0x8E3D, 0x8E40, 0x8E41, 0x8E4B, 0x8E4D, 0x8E4E, /* 0x20 */
- 0x8E4F, 0x8E54, 0x8E5B, 0x8E5C, 0x8E5D, 0x8E5E, 0x8E61, 0x8E62, /* 0x30 */
- 0x8E69, 0x8E6C, 0x8E6D, 0x8E6F, 0x8E70, 0x8E71, 0x8E79, 0x8E7A, /* 0x30 */
- 0x8E7B, 0x8E82, 0x8E83, 0x8E89, 0x8E90, 0x8E92, 0x8E95, 0x8E9A, /* 0x40 */
- 0x8E9B, 0x8E9D, 0x8E9E, 0x8EA2, 0x8EA7, 0x8EA9, 0x8EAD, 0x8EAE, /* 0x40 */
- 0x8EB3, 0x8EB5, 0x8EBA, 0x8EBB, 0x8EC0, 0x8EC1, 0x8EC3, 0x8EC4, /* 0x50 */
- 0x8EC7, 0x8ECF, 0x8ED1, 0x8ED4, 0x8EDC, 0x8EE8, 0x8EEE, 0x8EF0, /* 0x50 */
- 0x8EF1, 0x8EF7, 0x8EF9, 0x8EFA, 0x8EED, 0x8F00, 0x8F02, 0x8F07, /* 0x60 */
- 0x8F08, 0x8F0F, 0x8F10, 0x8F16, 0x8F17, 0x8F18, 0x8F1E, 0x8F20, /* 0x60 */
- 0x8F21, 0x8F23, 0x8F25, 0x8F27, 0x8F28, 0x8F2C, 0x8F2D, 0x8F2E, /* 0x70 */
- 0x8F34, 0x8F35, 0x8F36, 0x8F37, 0x8F3A, 0x8F40, 0x8F41 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_61[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8F43, 0x8F47, 0x8F4F, 0x8F51, 0x8F52, 0x8F53, 0x8F54, /* 0x20 */
- 0x8F55, 0x8F58, 0x8F5D, 0x8F5E, 0x8F65, 0x8F9D, 0x8FA0, 0x8FA1, /* 0x20 */
- 0x8FA4, 0x8FA5, 0x8FA6, 0x8FB5, 0x8FB6, 0x8FB8, 0x8FBE, 0x8FC0, /* 0x30 */
- 0x8FC1, 0x8FC6, 0x8FCA, 0x8FCB, 0x8FCD, 0x8FD0, 0x8FD2, 0x8FD3, /* 0x30 */
- 0x8FD5, 0x8FE0, 0x8FE3, 0x8FE4, 0x8FE8, 0x8FEE, 0x8FF1, 0x8FF5, /* 0x40 */
- 0x8FF6, 0x8FFB, 0x8FFE, 0x9002, 0x9004, 0x9008, 0x900C, 0x9018, /* 0x40 */
- 0x901B, 0x9028, 0x9029, 0x902F, 0x902A, 0x902C, 0x902D, 0x9033, /* 0x50 */
- 0x9034, 0x9037, 0x903F, 0x9043, 0x9044, 0x904C, 0x905B, 0x905D, /* 0x50 */
- 0x9062, 0x9066, 0x9067, 0x906C, 0x9070, 0x9074, 0x9079, 0x9085, /* 0x60 */
- 0x9088, 0x908B, 0x908C, 0x908E, 0x9090, 0x9095, 0x9097, 0x9098, /* 0x60 */
- 0x9099, 0x909B, 0x90A0, 0x90A1, 0x90A2, 0x90A5, 0x90B0, 0x90B2, /* 0x70 */
- 0x90B3, 0x90B4, 0x90B6, 0x90BD, 0x90CC, 0x90BE, 0x90C3 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_62[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x90C4, 0x90C5, 0x90C7, 0x90C8, 0x90D5, 0x90D7, 0x90D8, /* 0x20 */
- 0x90D9, 0x90DC, 0x90DD, 0x90DF, 0x90E5, 0x90D2, 0x90F6, 0x90EB, /* 0x20 */
- 0x90EF, 0x90F0, 0x90F4, 0x90FE, 0x90FF, 0x9100, 0x9104, 0x9105, /* 0x30 */
- 0x9106, 0x9108, 0x910D, 0x9110, 0x9114, 0x9116, 0x9117, 0x9118, /* 0x30 */
- 0x911A, 0x911C, 0x911E, 0x9120, 0x9125, 0x9122, 0x9123, 0x9127, /* 0x40 */
- 0x9129, 0x912E, 0x912F, 0x9131, 0x9134, 0x9136, 0x9137, 0x9139, /* 0x40 */
- 0x913A, 0x913C, 0x913D, 0x9143, 0x9147, 0x9148, 0x914F, 0x9153, /* 0x50 */
- 0x9157, 0x9159, 0x915A, 0x915B, 0x9161, 0x9164, 0x9167, 0x916D, /* 0x50 */
- 0x9174, 0x9179, 0x917A, 0x917B, 0x9181, 0x9183, 0x9185, 0x9186, /* 0x60 */
- 0x918A, 0x918E, 0x9191, 0x9193, 0x9194, 0x9195, 0x9198, 0x919E, /* 0x60 */
- 0x91A1, 0x91A6, 0x91A8, 0x91AC, 0x91AD, 0x91AE, 0x91B0, 0x91B1, /* 0x70 */
- 0x91B2, 0x91B3, 0x91B6, 0x91BB, 0x91BC, 0x91BD, 0x91BF /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_63[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x91C2, 0x91C3, 0x91C5, 0x91D3, 0x91D4, 0x91D7, 0x91D9, /* 0x20 */
- 0x91DA, 0x91DE, 0x91E4, 0x91E5, 0x91E9, 0x91EA, 0x91EC, 0x91ED, /* 0x20 */
- 0x91EE, 0x91EF, 0x91F0, 0x91F1, 0x91F7, 0x91F9, 0x91FB, 0x91FD, /* 0x30 */
- 0x9200, 0x9201, 0x9204, 0x9205, 0x9206, 0x9207, 0x9209, 0x920A, /* 0x30 */
- 0x920C, 0x9210, 0x9212, 0x9213, 0x9216, 0x9218, 0x921C, 0x921D, /* 0x40 */
- 0x9223, 0x9224, 0x9225, 0x9226, 0x9228, 0x922E, 0x922F, 0x9230, /* 0x40 */
- 0x9233, 0x9235, 0x9236, 0x9238, 0x9239, 0x923A, 0x923C, 0x923E, /* 0x50 */
- 0x9240, 0x9242, 0x9243, 0x9246, 0x9247, 0x924A, 0x924D, 0x924E, /* 0x50 */
- 0x924F, 0x9251, 0x9258, 0x9259, 0x925C, 0x925D, 0x9260, 0x9261, /* 0x60 */
- 0x9265, 0x9267, 0x9268, 0x9269, 0x926E, 0x926F, 0x9270, 0x9275, /* 0x60 */
- 0x9276, 0x9277, 0x9278, 0x9279, 0x927B, 0x927C, 0x927D, 0x927F, /* 0x70 */
- 0x9288, 0x9289, 0x928A, 0x928D, 0x928E, 0x9292, 0x9297 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_64[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9299, 0x929F, 0x92A0, 0x92A4, 0x92A5, 0x92A7, 0x92A8, /* 0x20 */
- 0x92AB, 0x92AF, 0x92B2, 0x92B6, 0x92B8, 0x92BA, 0x92BB, 0x92BC, /* 0x20 */
- 0x92BD, 0x92BF, 0x92C0, 0x92C1, 0x92C2, 0x92C3, 0x92C5, 0x92C6, /* 0x30 */
- 0x92C7, 0x92C8, 0x92CB, 0x92CC, 0x92CD, 0x92CE, 0x92D0, 0x92D3, /* 0x30 */
- 0x92D5, 0x92D7, 0x92D8, 0x92D9, 0x92DC, 0x92DD, 0x92DF, 0x92E0, /* 0x40 */
- 0x92E1, 0x92E3, 0x92E5, 0x92E7, 0x92E8, 0x92EC, 0x92EE, 0x92F0, /* 0x40 */
- 0x92F9, 0x92FB, 0x92FF, 0x9300, 0x9302, 0x9308, 0x930D, 0x9311, /* 0x50 */
- 0x9314, 0x9315, 0x931C, 0x931D, 0x931E, 0x931F, 0x9321, 0x9324, /* 0x50 */
- 0x9325, 0x9327, 0x9329, 0x932A, 0x9333, 0x9334, 0x9336, 0x9337, /* 0x60 */
- 0x9347, 0x9348, 0x9349, 0x9350, 0x9351, 0x9352, 0x9355, 0x9357, /* 0x60 */
- 0x9358, 0x935A, 0x935E, 0x9364, 0x9365, 0x9367, 0x9369, 0x936A, /* 0x70 */
- 0x936D, 0x936F, 0x9370, 0x9371, 0x9373, 0x9374, 0x9376 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_65[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x937A, 0x937D, 0x937F, 0x9380, 0x9381, 0x9382, 0x9388, /* 0x20 */
- 0x938A, 0x938B, 0x938D, 0x938F, 0x9392, 0x9395, 0x9398, 0x939B, /* 0x20 */
- 0x939E, 0x93A1, 0x93A3, 0x93A4, 0x93A6, 0x93A8, 0x93AB, 0x93B4, /* 0x30 */
- 0x93B5, 0x93B6, 0x93BA, 0x93A9, 0x93C1, 0x93C4, 0x93C5, 0x93C6, /* 0x30 */
- 0x93C7, 0x93C9, 0x93CA, 0x93CB, 0x93CC, 0x93CD, 0x93D3, 0x93D9, /* 0x40 */
- 0x93DC, 0x93DE, 0x93DF, 0x93E2, 0x93E6, 0x93E7, 0x93F9, 0x93F7, /* 0x40 */
- 0x93F8, 0x93FA, 0x93FB, 0x93FD, 0x9401, 0x9402, 0x9404, 0x9408, /* 0x50 */
- 0x9409, 0x940D, 0x940E, 0x940F, 0x9415, 0x9416, 0x9417, 0x941F, /* 0x50 */
- 0x942E, 0x942F, 0x9431, 0x9432, 0x9433, 0x9434, 0x943B, 0x943F, /* 0x60 */
- 0x943D, 0x9443, 0x9445, 0x9448, 0x944A, 0x944C, 0x9455, 0x9459, /* 0x60 */
- 0x945C, 0x945F, 0x9461, 0x9463, 0x9468, 0x946B, 0x946D, 0x946E, /* 0x70 */
- 0x946F, 0x9471, 0x9472, 0x9484, 0x9483, 0x9578, 0x9579 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_66[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x957E, 0x9584, 0x9588, 0x958C, 0x958D, 0x958E, 0x959D, /* 0x20 */
- 0x959E, 0x959F, 0x95A1, 0x95A6, 0x95A9, 0x95AB, 0x95AC, 0x95B4, /* 0x20 */
- 0x95B6, 0x95BA, 0x95BD, 0x95BF, 0x95C6, 0x95C8, 0x95C9, 0x95CB, /* 0x30 */
- 0x95D0, 0x95D1, 0x95D2, 0x95D3, 0x95D9, 0x95DA, 0x95DD, 0x95DE, /* 0x30 */
- 0x95DF, 0x95E0, 0x95E4, 0x95E6, 0x961D, 0x961E, 0x9622, 0x9624, /* 0x40 */
- 0x9625, 0x9626, 0x962C, 0x9631, 0x9633, 0x9637, 0x9638, 0x9639, /* 0x40 */
- 0x963A, 0x963C, 0x963D, 0x9641, 0x9652, 0x9654, 0x9656, 0x9657, /* 0x50 */
- 0x9658, 0x9661, 0x966E, 0x9674, 0x967B, 0x967C, 0x967E, 0x967F, /* 0x50 */
- 0x9681, 0x9682, 0x9683, 0x9684, 0x9689, 0x9691, 0x9696, 0x969A, /* 0x60 */
- 0x969D, 0x969F, 0x96A4, 0x96A5, 0x96A6, 0x96A9, 0x96AE, 0x96AF, /* 0x60 */
- 0x96B3, 0x96BA, 0x96CA, 0x96D2, 0x5DB2, 0x96D8, 0x96DA, 0x96DD, /* 0x70 */
- 0x96DE, 0x96DF, 0x96E9, 0x96EF, 0x96F1, 0x96FA, 0x9702 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_67[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9703, 0x9705, 0x9709, 0x971A, 0x971B, 0x971D, 0x9721, /* 0x20 */
- 0x9722, 0x9723, 0x9728, 0x9731, 0x9733, 0x9741, 0x9743, 0x974A, /* 0x20 */
- 0x974E, 0x974F, 0x9755, 0x9757, 0x9758, 0x975A, 0x975B, 0x9763, /* 0x30 */
- 0x9767, 0x976A, 0x976E, 0x9773, 0x9776, 0x9777, 0x9778, 0x977B, /* 0x30 */
- 0x977D, 0x977F, 0x9780, 0x9789, 0x9795, 0x9796, 0x9797, 0x9799, /* 0x40 */
- 0x979A, 0x979E, 0x979F, 0x97A2, 0x97AC, 0x97AE, 0x97B1, 0x97B2, /* 0x40 */
- 0x97B5, 0x97B6, 0x97B8, 0x97B9, 0x97BA, 0x97BC, 0x97BE, 0x97BF, /* 0x50 */
- 0x97C1, 0x97C4, 0x97C5, 0x97C7, 0x97C9, 0x97CA, 0x97CC, 0x97CD, /* 0x50 */
- 0x97CE, 0x97D0, 0x97D1, 0x97D4, 0x97D7, 0x97D8, 0x97D9, 0x97DD, /* 0x60 */
- 0x97DE, 0x97E0, 0x97DB, 0x97E1, 0x97E4, 0x97EF, 0x97F1, 0x97F4, /* 0x60 */
- 0x97F7, 0x97F8, 0x97FA, 0x9807, 0x980A, 0x9819, 0x980D, 0x980E, /* 0x70 */
- 0x9814, 0x9816, 0x981C, 0x981E, 0x9820, 0x9823, 0x9826 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_68[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x982B, 0x982E, 0x982F, 0x9830, 0x9832, 0x9833, 0x9835, /* 0x20 */
- 0x9825, 0x983E, 0x9844, 0x9847, 0x984A, 0x9851, 0x9852, 0x9853, /* 0x20 */
- 0x9856, 0x9857, 0x9859, 0x985A, 0x9862, 0x9863, 0x9865, 0x9866, /* 0x30 */
- 0x986A, 0x986C, 0x98AB, 0x98AD, 0x98AE, 0x98B0, 0x98B4, 0x98B7, /* 0x30 */
- 0x98B8, 0x98BA, 0x98BB, 0x98BF, 0x98C2, 0x98C5, 0x98C8, 0x98CC, /* 0x40 */
- 0x98E1, 0x98E3, 0x98E5, 0x98E6, 0x98E7, 0x98EA, 0x98F3, 0x98F6, /* 0x40 */
- 0x9902, 0x9907, 0x9908, 0x9911, 0x9915, 0x9916, 0x9917, 0x991A, /* 0x50 */
- 0x991B, 0x991C, 0x991F, 0x9922, 0x9926, 0x9927, 0x992B, 0x9931, /* 0x50 */
- 0x9932, 0x9933, 0x9934, 0x9935, 0x9939, 0x993A, 0x993B, 0x993C, /* 0x60 */
- 0x9940, 0x9941, 0x9946, 0x9947, 0x9948, 0x994D, 0x994E, 0x9954, /* 0x60 */
- 0x9958, 0x9959, 0x995B, 0x995C, 0x995E, 0x995F, 0x9960, 0x999B, /* 0x70 */
- 0x999D, 0x999F, 0x99A6, 0x99B0, 0x99B1, 0x99B2, 0x99B5 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_69[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x99B9, 0x99BA, 0x99BD, 0x99BF, 0x99C3, 0x99C9, 0x99D3, /* 0x20 */
- 0x99D4, 0x99D9, 0x99DA, 0x99DC, 0x99DE, 0x99E7, 0x99EA, 0x99EB, /* 0x20 */
- 0x99EC, 0x99F0, 0x99F4, 0x99F5, 0x99F9, 0x99FD, 0x99FE, 0x9A02, /* 0x30 */
- 0x9A03, 0x9A04, 0x9A0B, 0x9A0C, 0x9A10, 0x9A11, 0x9A16, 0x9A1E, /* 0x30 */
- 0x9A20, 0x9A22, 0x9A23, 0x9A24, 0x9A27, 0x9A2D, 0x9A2E, 0x9A33, /* 0x40 */
- 0x9A35, 0x9A36, 0x9A38, 0x9A47, 0x9A41, 0x9A44, 0x9A4A, 0x9A4B, /* 0x40 */
- 0x9A4C, 0x9A4E, 0x9A51, 0x9A54, 0x9A56, 0x9A5D, 0x9AAA, 0x9AAC, /* 0x50 */
- 0x9AAE, 0x9AAF, 0x9AB2, 0x9AB4, 0x9AB5, 0x9AB6, 0x9AB9, 0x9ABB, /* 0x50 */
- 0x9ABE, 0x9ABF, 0x9AC1, 0x9AC3, 0x9AC6, 0x9AC8, 0x9ACE, 0x9AD0, /* 0x60 */
- 0x9AD2, 0x9AD5, 0x9AD6, 0x9AD7, 0x9ADB, 0x9ADC, 0x9AE0, 0x9AE4, /* 0x60 */
- 0x9AE5, 0x9AE7, 0x9AE9, 0x9AEC, 0x9AF2, 0x9AF3, 0x9AF5, 0x9AF9, /* 0x70 */
- 0x9AFA, 0x9AFD, 0x9AFF, 0x9B00, 0x9B01, 0x9B02, 0x9B03 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_6A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9B04, 0x9B05, 0x9B08, 0x9B09, 0x9B0B, 0x9B0C, 0x9B0D, /* 0x20 */
- 0x9B0E, 0x9B10, 0x9B12, 0x9B16, 0x9B19, 0x9B1B, 0x9B1C, 0x9B20, /* 0x20 */
- 0x9B26, 0x9B2B, 0x9B2D, 0x9B33, 0x9B34, 0x9B35, 0x9B37, 0x9B39, /* 0x30 */
- 0x9B3A, 0x9B3D, 0x9B48, 0x9B4B, 0x9B4C, 0x9B55, 0x9B56, 0x9B57, /* 0x30 */
- 0x9B5B, 0x9B5E, 0x9B61, 0x9B63, 0x9B65, 0x9B66, 0x9B68, 0x9B6A, /* 0x40 */
- 0x9B6B, 0x9B6C, 0x9B6D, 0x9B6E, 0x9B73, 0x9B75, 0x9B77, 0x9B78, /* 0x40 */
- 0x9B79, 0x9B7F, 0x9B80, 0x9B84, 0x9B85, 0x9B86, 0x9B87, 0x9B89, /* 0x50 */
- 0x9B8A, 0x9B8B, 0x9B8D, 0x9B8F, 0x9B90, 0x9B94, 0x9B9A, 0x9B9D, /* 0x50 */
- 0x9B9E, 0x9BA6, 0x9BA7, 0x9BA9, 0x9BAC, 0x9BB0, 0x9BB1, 0x9BB2, /* 0x60 */
- 0x9BB7, 0x9BB8, 0x9BBB, 0x9BBC, 0x9BBE, 0x9BBF, 0x9BC1, 0x9BC7, /* 0x60 */
- 0x9BC8, 0x9BCE, 0x9BD0, 0x9BD7, 0x9BD8, 0x9BDD, 0x9BDF, 0x9BE5, /* 0x70 */
- 0x9BE7, 0x9BEA, 0x9BEB, 0x9BEF, 0x9BF3, 0x9BF7, 0x9BF8 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_6B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9BF9, 0x9BFA, 0x9BFD, 0x9BFF, 0x9C00, 0x9C02, 0x9C0B, /* 0x20 */
- 0x9C0F, 0x9C11, 0x9C16, 0x9C18, 0x9C19, 0x9C1A, 0x9C1C, 0x9C1E, /* 0x20 */
- 0x9C22, 0x9C23, 0x9C26, 0x9C27, 0x9C28, 0x9C29, 0x9C2A, 0x9C31, /* 0x30 */
- 0x9C35, 0x9C36, 0x9C37, 0x9C3D, 0x9C41, 0x9C43, 0x9C44, 0x9C45, /* 0x30 */
- 0x9C49, 0x9C4A, 0x9C4E, 0x9C4F, 0x9C50, 0x9C53, 0x9C54, 0x9C56, /* 0x40 */
- 0x9C58, 0x9C5B, 0x9C5D, 0x9C5E, 0x9C5F, 0x9C63, 0x9C69, 0x9C6A, /* 0x40 */
- 0x9C5C, 0x9C6B, 0x9C68, 0x9C6E, 0x9C70, 0x9C72, 0x9C75, 0x9C77, /* 0x50 */
- 0x9C7B, 0x9CE6, 0x9CF2, 0x9CF7, 0x9CF9, 0x9D0B, 0x9D02, 0x9D11, /* 0x50 */
- 0x9D17, 0x9D18, 0x9D1C, 0x9D1D, 0x9D1E, 0x9D2F, 0x9D30, 0x9D32, /* 0x60 */
- 0x9D33, 0x9D34, 0x9D3A, 0x9D3C, 0x9D45, 0x9D3D, 0x9D42, 0x9D43, /* 0x60 */
- 0x9D47, 0x9D4A, 0x9D53, 0x9D54, 0x9D5F, 0x9D63, 0x9D62, 0x9D65, /* 0x70 */
- 0x9D69, 0x9D6A, 0x9D6B, 0x9D70, 0x9D76, 0x9D77, 0x9D7B /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_6C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9D7C, 0x9D7E, 0x9D83, 0x9D84, 0x9D86, 0x9D8A, 0x9D8D, /* 0x20 */
- 0x9D8E, 0x9D92, 0x9D93, 0x9D95, 0x9D96, 0x9D97, 0x9D98, 0x9DA1, /* 0x20 */
- 0x9DAA, 0x9DAC, 0x9DAE, 0x9DB1, 0x9DB5, 0x9DB9, 0x9DBC, 0x9DBF, /* 0x30 */
- 0x9DC3, 0x9DC7, 0x9DC9, 0x9DCA, 0x9DD4, 0x9DD5, 0x9DD6, 0x9DD7, /* 0x30 */
- 0x9DDA, 0x9DDE, 0x9DDF, 0x9DE0, 0x9DE5, 0x9DE7, 0x9DE9, 0x9DEB, /* 0x40 */
- 0x9DEE, 0x9DF0, 0x9DF3, 0x9DF4, 0x9DFE, 0x9E0A, 0x9E02, 0x9E07, /* 0x40 */
- 0x9E0E, 0x9E10, 0x9E11, 0x9E12, 0x9E15, 0x9E16, 0x9E19, 0x9E1C, /* 0x50 */
- 0x9E1D, 0x9E7A, 0x9E7B, 0x9E7C, 0x9E80, 0x9E82, 0x9E83, 0x9E84, /* 0x50 */
- 0x9E85, 0x9E87, 0x9E8E, 0x9E8F, 0x9E96, 0x9E98, 0x9E9B, 0x9E9E, /* 0x60 */
- 0x9EA4, 0x9EA8, 0x9EAC, 0x9EAE, 0x9EAF, 0x9EB0, 0x9EB3, 0x9EB4, /* 0x60 */
- 0x9EB5, 0x9EC6, 0x9EC8, 0x9ECB, 0x9ED5, 0x9EDF, 0x9EE4, 0x9EE7, /* 0x70 */
- 0x9EEC, 0x9EED, 0x9EEE, 0x9EF0, 0x9EF1, 0x9EF2, 0x9EF5 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JIS0212_6D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9EF8, 0x9EFF, 0x9F02, 0x9F03, 0x9F09, 0x9F0F, 0x9F10, /* 0x20 */
- 0x9F11, 0x9F12, 0x9F14, 0x9F16, 0x9F17, 0x9F19, 0x9F1A, 0x9F1B, /* 0x20 */
- 0x9F1F, 0x9F22, 0x9F26, 0x9F2A, 0x9F2B, 0x9F2F, 0x9F31, 0x9F32, /* 0x30 */
- 0x9F34, 0x9F37, 0x9F39, 0x9F3A, 0x9F3C, 0x9F3D, 0x9F3F, 0x9F41, /* 0x30 */
- 0x9F43, 0x9F44, 0x9F45, 0x9F46, 0x9F47, 0x9F53, 0x9F55, 0x9F56, /* 0x40 */
- 0x9F57, 0x9F58, 0x9F5A, 0x9F5D, 0x9F5E, 0x9F68, 0x9F69, 0x9F6D, /* 0x40 */
- 0x9F6E, 0x9F6F, 0x9F70, 0x9F71, 0x9F73, 0x9F75, 0x9F7A, 0x9F7D, /* 0x50 */
- 0x9F8F, 0x9F90, 0x9F91, 0x9F92, 0x9F94, 0x9F96, 0x9F97, 0x9F9E, /* 0x50 */
- 0x9FA1, 0x9FA2, 0x9FA3, 0x9FA5 /* 0x60 */
- /* 0x60 */
-};
diff --git a/sal/textenc/tcvtjp4.tab b/sal/textenc/tcvtjp4.tab
deleted file mode 100644
index 946b2376a..000000000
--- a/sal/textenc/tcvtjp4.tab
+++ /dev/null
@@ -1,3585 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the UniCode to DBCS tables for the following */
-/* japanese charsets: JIS201, JIS208 */
-
-/* ======================================================================= */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_00[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2171, 0x2172, 0, 0, 0, 0x2178, /* 0xA0 */
- 0x212F, 0, 0, 0, 0x224C, 0, 0, 0, /* 0xA0 */
- 0x216B, 0x215E, 0, 0, 0x212D, 0, 0x2279, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0x215F, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0x2160, /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_03[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2621, 0x2622, 0x2623, 0x2624, 0x2625, 0x2626, 0x2627, /* 0x90 */
- 0x2628, 0x2629, 0x262A, 0x262B, 0x262C, 0x262D, 0x262E, 0x262F, /* 0x90 */
- 0x2630, 0x2631, 0, 0x2632, 0x2633, 0x2634, 0x2635, 0x2636, /* 0xA0 */
- 0x2637, 0x2638, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0x2641, 0x2642, 0x2643, 0x2644, 0x2645, 0x2646, 0x2647, /* 0xB0 */
- 0x2648, 0x2649, 0x264A, 0x264B, 0x264C, 0x264D, 0x264E, 0x264F, /* 0xB0 */
- 0x2650, 0x2651, 0, 0x2652, 0x2653, 0x2654, 0x2655, 0x2656, /* 0xC0 */
- 0x2657, 0x2658 /* 0xC0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_04[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2727, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0x2721, 0x2722, 0x2723, 0x2724, 0x2725, 0x2726, 0x2728, 0x2729, /* 0x10 */
- 0x272A, 0x272B, 0x272C, 0x272D, 0x272E, 0x272F, 0x2730, 0x2731, /* 0x10 */
- 0x2732, 0x2733, 0x2734, 0x2735, 0x2736, 0x2737, 0x2738, 0x2739, /* 0x20 */
- 0x273A, 0x273B, 0x273C, 0x273D, 0x273E, 0x273F, 0x2740, 0x2741, /* 0x20 */
- 0x2751, 0x2752, 0x2753, 0x2754, 0x2755, 0x2756, 0x2758, 0x2759, /* 0x30 */
- 0x275A, 0x275B, 0x275C, 0x275D, 0x275E, 0x275F, 0x2760, 0x2761, /* 0x30 */
- 0x2762, 0x2763, 0x2764, 0x2765, 0x2766, 0x2767, 0x2768, 0x2769, /* 0x40 */
- 0x276A, 0x276B, 0x276C, 0x276D, 0x276E, 0x276F, 0x2770, 0x2771, /* 0x40 */
- 0, 0x2757 /* 0x50 */
- /* 0x50 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_20[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x213E, 0, 0, 0, 0, 0x213D, 0x2142, 0, /* 0x10 */
- 0x2146, 0x2147, 0, 0, 0x2148, 0x2149, 0, 0, /* 0x10 */
- 0x2277, 0x2278, 0, 0, 0, 0x2145, 0x2144, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0x2273, 0, 0x216C, 0x216D, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0x2228 /* 0x30 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_21[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x216E, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0x2D62, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0x2D64, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0x2272, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0x2D35, 0x2D36, 0x2D37, 0x2D38, 0x2D39, 0x2D3A, 0x2D3B, 0x2D3C, /* 0x60 */
- 0x2D3D, 0x2D3E, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0x222B, 0x222C, 0x222A, 0x222D, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0x224D, 0, 0x224E /* 0xD0 */
- /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_22[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x224F, 0, 0x225F, 0x2250, 0, 0, 0, 0x2260, /* 0x00 */
- 0x223A, 0, 0, 0x223B, 0, 0, 0, 0, /* 0x00 */
- 0, 0x2D74, 0x215D, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x2265, 0, 0, 0x2267, 0x2167, 0x2D78, /* 0x10 */
- 0x225C, 0, 0, 0, 0, 0, 0, 0x224A, /* 0x20 */
- 0x224B, 0x2241, 0x2240, 0x2269, 0x226A, 0, 0x2D73, 0, /* 0x20 */
- 0, 0, 0, 0, 0x2168, 0x2268, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0x2266, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x2262, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0x2162, 0x2261, 0, 0, 0, 0, 0x2165, 0x2166, /* 0x60 */
- 0, 0, 0x2263, 0x2264, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0x223E, 0x223F, 0, 0, 0x223C, 0x223D, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0x225D, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0x2D79 /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_23[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x225E /* 0x10 */
- /* 0x10 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_24[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2D21, 0x2D22, 0x2D23, 0x2D24, 0x2D25, 0x2D26, 0x2D27, 0x2D28, /* 0x60 */
- 0x2D29, 0x2D2A, 0x2D2B, 0x2D2C, 0x2D2D, 0x2D2E, 0x2D2F, 0x2D30, /* 0x60 */
- 0x2D31, 0x2D32, 0x2D33, 0x2D34 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_25[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2821, 0x282C, 0x2822, 0x282D, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0x2823, 0, 0, 0x282E, /* 0x00 */
- 0x2824, 0, 0, 0x282F, 0x2826, 0, 0, 0x2831, /* 0x10 */
- 0x2825, 0, 0, 0x2830, 0x2827, 0x283C, 0, 0, /* 0x10 */
- 0x2837, 0, 0, 0x2832, 0x2829, 0x283E, 0, 0, /* 0x20 */
- 0x2839, 0, 0, 0x2834, 0x2828, 0, 0, 0x2838, /* 0x20 */
- 0x283D, 0, 0, 0x2833, 0x282A, 0, 0, 0x283A, /* 0x30 */
- 0x283F, 0, 0, 0x2835, 0x282B, 0, 0, 0x283B, /* 0x30 */
- 0, 0, 0x2840, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0x2836, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x2223, 0x2222, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x2225, 0x2224, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x2227, 0x2226, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0x2221, 0x217E, /* 0xC0 */
- 0, 0, 0, 0x217B, 0, 0, 0x217D, 0x217C, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0x227E /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_26[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x217A, 0x2179, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0x216A, 0, 0x2169, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0x2276, 0, 0, 0x2275, 0, 0x2274 /* 0x60 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_30[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2121, 0x2122, 0x2123, 0x2137, 0, 0x2139, 0x213A, 0x213B, /* 0x00 */
- 0x2152, 0x2153, 0x2154, 0x2155, 0x2156, 0x2157, 0x2158, 0x2159, /* 0x00 */
- 0x215A, 0x215B, 0x2229, 0x222E, 0x214C, 0x214D, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0x2141, 0x2D60, 0, 0x2D61, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x2421, 0x2422, 0x2423, 0x2424, 0x2425, 0x2426, 0x2427, /* 0x40 */
- 0x2428, 0x2429, 0x242A, 0x242B, 0x242C, 0x242D, 0x242E, 0x242F, /* 0x40 */
- 0x2430, 0x2431, 0x2432, 0x2433, 0x2434, 0x2435, 0x2436, 0x2437, /* 0x50 */
- 0x2438, 0x2439, 0x243A, 0x243B, 0x243C, 0x243D, 0x243E, 0x243F, /* 0x50 */
- 0x2440, 0x2441, 0x2442, 0x2443, 0x2444, 0x2445, 0x2446, 0x2447, /* 0x60 */
- 0x2448, 0x2449, 0x244A, 0x244B, 0x244C, 0x244D, 0x244E, 0x244F, /* 0x60 */
- 0x2450, 0x2451, 0x2452, 0x2453, 0x2454, 0x2455, 0x2456, 0x2457, /* 0x70 */
- 0x2458, 0x2459, 0x245A, 0x245B, 0x245C, 0x245D, 0x245E, 0x245F, /* 0x70 */
- 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, /* 0x80 */
- 0x2468, 0x2469, 0x246A, 0x246B, 0x246C, 0x246D, 0x246E, 0x246F, /* 0x80 */
- 0x2470, 0x2471, 0x2472, 0x2473, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0x212B, 0x212C, 0x2135, 0x2136, 0, /* 0x90 */
- 0, 0x2521, 0x2522, 0x2523, 0x2524, 0x2525, 0x2526, 0x2527, /* 0xA0 */
- 0x2528, 0x2529, 0x252A, 0x252B, 0x252C, 0x252D, 0x252E, 0x252F, /* 0xA0 */
- 0x2530, 0x2531, 0x2532, 0x2533, 0x2534, 0x2535, 0x2536, 0x2537, /* 0xB0 */
- 0x2538, 0x2539, 0x253A, 0x253B, 0x253C, 0x253D, 0x253E, 0x253F, /* 0xB0 */
- 0x2540, 0x2541, 0x2542, 0x2543, 0x2544, 0x2545, 0x2546, 0x2547, /* 0xC0 */
- 0x2548, 0x2549, 0x254A, 0x254B, 0x254C, 0x254D, 0x254E, 0x254F, /* 0xC0 */
- 0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555, 0x2556, 0x2557, /* 0xD0 */
- 0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255D, 0x255E, 0x255F, /* 0xD0 */
- 0x2560, 0x2561, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, 0x2567, /* 0xE0 */
- 0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x256D, 0x256E, 0x256F, /* 0xE0 */
- 0x2570, 0x2571, 0x2572, 0x2573, 0x2574, 0x2575, 0x2576, 0, /* 0xF0 */
- 0, 0, 0, 0x2126, 0x213C, 0x2133, 0x2134 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_32[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2D6A, 0x2D6B, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x2D6C, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0x2D65, 0x2D66, 0x2D67, 0x2D68, /* 0xA0 */
- 0x2D69 /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_33[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2D46, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0x2D4A, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0x2D41, 0, 0, 0, /* 0x10 */
- 0x2D44, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x2D42, 0x2D4C, 0, 0, 0x2D4B, 0x2D45, /* 0x20 */
- 0, 0, 0, 0x2D4D, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0x2D47, 0, /* 0x30 */
- 0, 0, 0, 0x2D4F, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0x2D40, 0x2D4E, 0, 0, 0x2D43, 0, 0, /* 0x40 */
- 0, 0x2D48, 0, 0, 0, 0, 0, 0x2D49, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0x2D5F, 0x2D6F, 0x2D6E, 0x2D6D, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0x2D53, 0x2D54, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0x2D50, 0x2D51, 0x2D52, 0, /* 0x90 */
- 0, 0x2D56, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x2D55, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0x2D63 /* 0xC0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_4E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x306C, 0x437A, 0, 0x3C37, 0, 0, 0, 0x4B7C, /* 0x00 */
- 0x3E66, 0x3B30, 0x3E65, 0x323C, 0, 0x4954, 0x4D3F, 0, /* 0x00 */
- 0x5022, 0x312F, 0, 0, 0x336E, 0x5023, 0x4024, 0x5242, /* 0x10 */
- 0x3556, 0x4A3A, 0, 0, 0, 0, 0x3E67, 0, /* 0x10 */
- 0, 0x4E3E, 0, 0, 0, 0, 0x4A42, 0, /* 0x20 */
- 0, 0, 0x5024, 0, 0, 0x4366, 0, 0, /* 0x20 */
- 0, 0x5025, 0x367A, 0, 0, 0, 0x5026, 0, /* 0x30 */
- 0x345D, 0x4330, 0, 0x3C67, 0x5027, 0, 0, 0x5028, /* 0x30 */
- 0, 0, 0x5029, 0x4735, 0, 0x3557, 0, 0, /* 0x40 */
- 0, 0, 0, 0x4737, 0, 0x4663, 0x3843, 0x4B33, /* 0x40 */
- 0, 0, 0, 0, 0, 0x6949, 0x502A, 0x3E68, /* 0x50 */
- 0x502B, 0x3235, 0, 0, 0, 0x3665, 0x3870, 0x4C69, /* 0x50 */
- 0, 0, 0x5626, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0x4D70, 0, 0x467D, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x3425, 0, /* 0x70 */
- 0x3535, 0, 0x502C, 0, 0, 0x502D, 0x4E3B, 0, /* 0x80 */
- 0x4D3D, 0x4168, 0x502F, 0x3B76, 0x4673, 0, 0x5032, 0, /* 0x80 */
- 0, 0x313E, 0x385F, 0, 0x385E, 0x3066, 0, 0, /* 0x90 */
- 0x4F4B, 0x4F4A, 0, 0x3A33, 0x3021, 0, 0x5033, 0x5034, /* 0x90 */
- 0x5035, 0x4B34, 0x5036, 0, 0x3872, 0x3067, 0x4B72, 0, /* 0xA0 */
- 0x357C, 0, 0, 0x357D, 0x357E, 0x4462, 0x4E3C, 0, /* 0xA0 */
- 0x5037, 0, 0, 0x5038, 0, 0, 0x5039, 0, /* 0xB0 */
- 0, 0, 0x3F4D, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x3D3A, 0x3F4E, 0x503E, 0, 0x503C, 0, 0x503D, 0x3558, /* 0xC0 */
- 0, 0, 0x3A23, 0x3270, 0, 0x503B, 0x503A, 0x4A29, /* 0xC0 */
- 0, 0, 0, 0, 0x3B46, 0x3B45, 0x423E, 0x503F, /* 0xD0 */
- 0x4955, 0x4067, 0, 0, 0, 0x2138, 0x5040, 0x5042, /* 0xD0 */
- 0, 0, 0, 0x4265, 0x4E61, 0x304A, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0x5041, 0x323E, 0, /* 0xE0 */
- 0x3644, 0, 0x4367, 0, 0, 0, 0x376F, 0x5043, /* 0xF0 */
- 0, 0, 0, 0x4724 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_4F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x346B, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0x5044, 0x304B, 0, 0, 0x3860, 0x346C, 0x497A, /* 0x00 */
- 0x4832, 0x3559, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x3271, 0, 0x5067, 0x4541, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0x476C, /* 0x20 */
- 0x5046, 0, 0, 0, 0x483C, 0, 0x4E62, 0, /* 0x30 */
- 0x3F2D, 0, 0x3B47, 0, 0x3B77, 0x3240, 0, 0, /* 0x30 */
- 0, 0, 0, 0x4451, 0, 0, 0x4322, 0x504A, /* 0x40 */
- 0, 0, 0, 0, 0, 0x304C, 0x4463, 0x3D3B, /* 0x40 */
- 0x3A34, 0x4D24, 0, 0x424E, 0, 0x323F, 0, 0x5049, /* 0x50 */
- 0, 0x4D3E, 0x5045, 0x5047, 0x3A6E, 0x5048, 0x5524, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0x5050, 0, 0, 0, 0, 0, 0x5053, /* 0x60 */
- 0x5051, 0, 0, 0x3242, 0, 0x4A3B, 0x504B, 0, /* 0x70 */
- 0, 0, 0, 0x504F, 0x3873, 0, 0, 0x3B48, /* 0x70 */
- 0, 0, 0, 0x3426, 0, 0, 0x5054, 0, /* 0x80 */
- 0x504C, 0, 0, 0x4E63, 0, 0x3B78, 0, 0x504D, /* 0x80 */
- 0, 0x5052, 0, 0, 0, 0, 0x5055, 0, /* 0x90 */
- 0x504E, 0, 0, 0x3621, 0, 0x304D, 0, 0, /* 0x90 */
- 0x3622, 0x3241, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x5525, 0, 0x4B79, 0x496E, 0x3874, /* 0xA0 */
- 0, 0, 0, 0, 0, 0x3F2F, 0x4E37, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0x4A58, /* 0xB0 */
- 0, 0, 0x3738, 0x4225, 0x3264, 0, 0, 0, /* 0xC0 */
- 0, 0, 0x3D53, 0, 0, 0, 0x5059, 0, /* 0xC0 */
- 0x505E, 0x505C, 0, 0, 0x5057, 0, 0, 0x422F, /* 0xD0 */
- 0x505A, 0, 0x505D, 0x505B, 0, 0x4A5D, 0, 0x5058, /* 0xD0 */
- 0, 0x3F2E, 0, 0x4B73, 0x505F, 0x5060, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0x3D24, 0x506D, /* 0xE0 */
- 0, 0, 0, 0x4750, 0, 0x4936, 0x5068, 0, /* 0xF0 */
- 0x4A70, 0, 0x3236, 0, 0, 0, 0x506C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_50[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5066, 0x506F, 0, /* 0x00 */
- 0, 0x4152, 0, 0x3844, 0, 0x475C, 0, 0x6047, /* 0x00 */
- 0, 0x506E, 0x455D, 0, 0x5063, 0, 0x3876, 0, /* 0x10 */
- 0, 0x3875, 0x5061, 0, 0, 0, 0, 0x3C5A, /* 0x10 */
- 0, 0x5069, 0, 0x4A6F, 0x434D, 0x5065, 0x3771, 0, /* 0x20 */
- 0x5062, 0x506A, 0x5064, 0x4E51, 0x506B, 0x4F41, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0x3666, 0, /* 0x30 */
- 0, 0x3770, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0x5070, 0, 0, 0, 0x5071, /* 0x40 */
- 0x5075, 0x304E, 0, 0, 0, 0, 0, 0x4A50, /* 0x40 */
- 0x5074, 0, 0, 0, 0, 0x5073, 0x5077, 0, /* 0x50 */
- 0, 0, 0x5076, 0, 0x4464, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0x3772, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0x5078, 0, 0, 0, /* 0x60 */
- 0, 0, 0x3C45, 0, 0x4226, 0x4465, 0x3676, 0, /* 0x70 */
- 0x5079, 0, 0, 0, 0, 0x3536, 0, 0, /* 0x70 */
- 0x507A, 0, 0, 0, 0, 0x507C, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0x4B35, 0, 0, /* 0x80 */
- 0, 0x3766, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x3B31, 0x4877, 0x507B, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x3A45, 0x4D43, 0, 0, /* 0xA0 */
- 0, 0, 0x507E, 0x5123, 0x507D, 0x3A44, 0, 0x3D7D, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0x3739, 0, /* 0xB0 */
- 0, 0, 0x5124, 0, 0, 0x364F, 0, 0, /* 0xC0 */
- 0, 0x5121, 0x5122, 0, 0, 0x462F, 0, 0x417C, /* 0xC0 */
- 0, 0x3623, 0, 0, 0, 0x4B4D, 0x5125, 0, /* 0xD0 */
- 0, 0, 0x4E3D, 0, 0, 0, 0x5126, 0, /* 0xD0 */
- 0, 0, 0, 0x5129, 0, 0x5127, 0, 0x414E, /* 0xE0 */
- 0, 0, 0, 0, 0, 0x5128, 0x512A, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0x512C, 0, 0, /* 0xF0 */
- 0, 0x512B, 0, 0x4A48 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_51[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3537, 0x512E, 0x512F, 0, 0x322F, 0, 0, 0, /* 0x00 */
- 0, 0x512D, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0x3C74, 0, 0x5132, 0x5131, 0x5130, 0, /* 0x10 */
- 0x5056, 0, 0x5133, 0, 0, 0, 0, 0x3D7E, /* 0x10 */
- 0, 0x5134, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x4D25, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x4C59, 0, 0, 0, 0, 0x5136, /* 0x30 */
- 0, 0, 0x5135, 0x5138, 0x5137, 0, 0, 0x5139, /* 0x30 */
- 0x513A, 0x3074, 0, 0x3835, 0x373B, 0x3D3C, 0x437B, 0x3624, /* 0x40 */
- 0x4068, 0x3877, 0, 0x396E, 0x513C, 0x4C48, 0x4546, 0, /* 0x40 */
- 0x3B79, 0, 0x513B, 0, 0x513D, 0, 0, 0, /* 0x50 */
- 0, 0, 0x455E, 0, 0x3375, 0, 0, 0, /* 0x50 */
- 0, 0, 0x513E, 0, 0, 0x467E, 0, 0, /* 0x60 */
- 0x4134, 0x5140, 0x5141, 0x482C, 0x3878, 0x4F3B, 0x5142, 0, /* 0x60 */
- 0, 0x3626, 0, 0, 0, 0x4A3C, 0x4236, 0x3671, /* 0x70 */
- 0x4535, 0, 0, 0, 0x3773, 0, 0, 0, /* 0x70 */
- 0x5143, 0, 0x5144, 0, 0, 0x4662, 0x315F, 0, /* 0x80 */
- 0, 0x5147, 0x3A7D, 0, 0x5146, 0x3A46, 0, 0x5148, /* 0x80 */
- 0x666E, 0x5149, 0x4B41, 0x514A, 0, 0x514B, 0x514C, 0x3E69, /* 0x90 */
- 0, 0x3C4C, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x3427, 0, 0x514F, 0, 0x514D, 0x4C3D, 0x514E, 0, /* 0xA0 */
- 0x495A, 0x5150, 0x5151, 0x5152, 0x455F, 0, 0, 0, /* 0xA0 */
- 0x5156, 0x5154, 0x5155, 0x5153, 0x3A63, 0x5157, 0x4C6A, 0x4E64, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x5158, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x4028, 0x5159, 0x3D5A, 0, /* 0xC0 */
- 0, 0x515A, 0, 0x437C, 0x4E3F, 0x4560, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0x5245, 0, /* 0xD0 */
- 0, 0, 0, 0x515B, 0x7425, 0x3645, 0, 0, /* 0xD0 */
- 0x515C, 0x4B5E, 0, 0, 0, 0, 0x3D68, 0x427C, /* 0xE0 */
- 0, 0x515E, 0x4664, 0, 0, 0x515F, 0, 0, /* 0xE0 */
- 0x5160, 0x332E, 0, 0, 0, 0x5161, 0x3627, 0, /* 0xF0 */
- 0x464C, 0x317A, 0x3D50, 0, 0, 0x4821, 0x5162 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_52[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4561, 0, 0, 0x3F4F, 0x5163, 0, 0x4A2C, 0x405A, /* 0x00 */
- 0x3422, 0, 0x3429, 0x5164, 0, 0, 0x5166, 0, /* 0x00 */
- 0, 0x373A, 0, 0, 0x5165, 0, 0, 0x4E73, /* 0x10 */
- 0, 0, 0, 0, 0, 0x3D69, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0x483D, 0x4A4C, 0, 0x5167, /* 0x20 */
- 0, 0x4D78, 0x5168, 0, 0, 0, 0x5169, 0, /* 0x20 */
- 0x457E, 0, 0, 0x516A, 0, 0, 0x4029, 0x3A7E, /* 0x30 */
- 0x3774, 0x516B, 0x3B49, 0x396F, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0x4466, 0x516D, 0, 0, 0x4227, /* 0x40 */
- 0, 0, 0x3A6F, 0x516E, 0x516F, 0x4130, 0, 0x516C, /* 0x40 */
- 0, 0, 0, 0, 0x5171, 0, 0x4B36, 0, /* 0x50 */
- 0, 0, 0, 0x3964, 0, 0, 0x5170, 0, /* 0x50 */
- 0, 0, 0, 0x3775, 0x3A5E, 0x476D, 0, 0, /* 0x60 */
- 0, 0x5174, 0x5172, 0, 0, 0, 0, 0x497B, /* 0x60 */
- 0x3E6A, 0x517B, 0x3364, 0x5175, 0x5173, 0x414F, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0x5177, 0, 0x5176, /* 0x70 */
- 0, 0, 0, 0x3344, 0, 0, 0, 0x3760, /* 0x80 */
- 0x517C, 0x4E2D, 0, 0, 0, 0x5178, 0, 0, /* 0x80 */
- 0, 0x517D, 0x517A, 0, 0x5179, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0x4E4F, 0, 0, 0, 0x3879, /* 0x90 */
- 0x3243, 0, 0, 0x4E74, 0, 0, 0, 0, /* 0xA0 */
- 0, 0x3D75, 0x4558, 0x3965, 0x5222, 0x5223, 0, 0, /* 0xA0 */
- 0, 0x4E65, 0, 0, 0x4F2B, 0x5225, 0, 0, /* 0xB0 */
- 0, 0x387A, 0, 0, 0x5224, 0, 0x332F, 0, /* 0xB0 */
- 0, 0x5226, 0, 0x4B56, 0, 0x443C, 0, 0x4D26, /* 0xC0 */
- 0, 0x4A59, 0, 0, 0, 0x5227, 0, 0, /* 0xC0 */
- 0, 0, 0x7055, 0, 0, 0x4630, 0, 0x5228, /* 0xD0 */
- 0x342A, 0x4C33, 0, 0, 0, 0x3E21, 0x5229, 0x4A67, /* 0xD0 */
- 0x522D, 0, 0x402A, 0x522A, 0x3650, 0, 0x522B, 0x342B, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0x372E, 0x522E, 0, 0x522F, 0, 0, /* 0xF0 */
- 0x5230, 0x5231, 0x3C5B, 0, 0, 0, 0x387B, 0x4C5E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_53[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4C68, 0x4677, 0, 0, 0x4A71, 0x5232, 0, /* 0x00 */
- 0x5233, 0, 0, 0, 0, 0x5235, 0, 0x5237, /* 0x00 */
- 0x5236, 0, 0, 0, 0, 0x5238, 0x323D, 0x4B4C, /* 0x10 */
- 0, 0x3A7C, 0x5239, 0, 0, 0x4159, 0, 0, /* 0x10 */
- 0x3E22, 0x3629, 0, 0x523A, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x485B, 0, 0, 0, 0, 0x523B, /* 0x20 */
- 0, 0x523C, 0, 0x523D, 0, 0, 0, 0, /* 0x30 */
- 0x523E, 0x4924, 0x3668, 0x3065, 0, 0, 0, 0x463F, /* 0x30 */
- 0x523F, 0x3D3D, 0, 0x4069, 0, 0x5241, 0x5240, 0x3E23, /* 0x40 */
- 0x3861, 0x5243, 0x483E, 0, 0, 0x5244, 0, 0, /* 0x40 */
- 0, 0x485C, 0x4234, 0x426E, 0x3628, 0, 0, 0x466E, /* 0x50 */
- 0x4331, 0, 0x476E, 0, 0x4B4E, 0, 0x5246, 0, /* 0x50 */
- 0x406A, 0, 0, 0, 0, 0, 0x3735, 0, /* 0x60 */
- 0, 0x5247, 0, 0, 0, 0, 0x5248, 0x312C, /* 0x60 */
- 0x3075, 0x346D, 0, 0x4228, 0x3551, 0x4D71, 0, 0x524B, /* 0x70 */
- 0x3237, 0, 0, 0x524A, 0, 0, 0, 0x362A, /* 0x70 */
- 0, 0, 0x524C, 0, 0x4C71, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0x524D, 0, /* 0x90 */
- 0x4E52, 0, 0x387C, 0, 0, 0, 0, 0x3836, /* 0x90 */
- 0x524E, 0, 0, 0, 0, 0x5250, 0x524F, 0, /* 0xA0 */
- 0x3F5F, 0x3139, 0, 0, 0, 0x315E, 0x5251, 0, /* 0xA0 */
- 0x5252, 0, 0, 0x3837, 0, 0, 0x5253, 0, /* 0xB0 */
- 0, 0, 0, 0x356E, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0x3B32, 0x5254, 0, 0, 0, 0, /* 0xC0 */
- 0x4B74, 0x3A35, 0x355A, 0x4D27, 0x4150, 0x483F, 0x3C7D, 0, /* 0xC0 */
- 0, 0, 0, 0, 0x3D47, 0, 0x3C68, 0x3C75, /* 0xD0 */
- 0, 0x3D76, 0, 0x4840, 0, 0, 0, 0x5257, /* 0xD0 */
- 0, 0x3143, 0x4151, 0x387D, 0x3845, 0x3667, 0, 0, /* 0xE0 */
- 0x525B, 0x4321, 0x427E, 0x362B, 0x3E24, 0x525C, 0x525A, 0x3244, /* 0xE0 */
- 0x4266, 0x3C38, 0x3B4B, 0x3126, 0, 0, 0x3370, 0x3966, /* 0xF0 */
- 0x3B4A, 0, 0x525D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_54[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x525E, 0, 0x3549, 0x3346, 0, 0, 0, /* 0x00 */
- 0x3967, 0x3548, 0x445F, 0x3125, 0x4631, 0x4C3E, 0x3921, 0x4D79, /* 0x00 */
- 0x4547, 0x387E, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0x372F, 0, 0x5267, 0, 0x3663, /* 0x10 */
- 0x4B4A, 0, 0, 0, 0, 0, 0x485D, 0, /* 0x20 */
- 0, 0x5266, 0, 0x345E, 0x5261, 0x5262, 0x5264, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0x5265, 0, /* 0x30 */
- 0x355B, 0x3F61, 0, 0x4A2D, 0x5263, 0x525F, 0x3863, 0, /* 0x30 */
- 0x5260, 0, 0x4F24, 0, 0, 0, 0x4A72, 0, /* 0x40 */
- 0x4468, 0x3862, 0x3970, 0, 0, 0, 0x5268, 0, /* 0x40 */
- 0, 0x465D, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0x526C, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0x3C7E, 0, 0x3C76, 0, 0, 0, 0, 0, /* 0x60 */
- 0x526F, 0x526D, 0, 0x4C23, 0, 0x526A, 0x5273, 0x526E, /* 0x70 */
- 0, 0, 0, 0x5271, 0x3846, 0x4C3F, 0, 0, /* 0x70 */
- 0x5272, 0, 0, 0, 0x5274, 0, 0x5276, 0, /* 0x80 */
- 0, 0, 0, 0x3A70, 0x4F42, 0, 0x526B, 0x5269, /* 0x80 */
- 0x5275, 0, 0x5270, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0x5278, 0, 0x5323, 0x527A, 0, 0, /* 0xA0 */
- 0x527E, 0, 0, 0x5321, 0x527B, 0, 0, 0x533E, /* 0xA0 */
- 0, 0, 0x3A69, 0x3331, 0, 0, 0, 0, /* 0xB0 */
- 0x5279, 0, 0, 0, 0x5325, 0x3076, 0x5324, 0, /* 0xB0 */
- 0x3025, 0x494A, 0x5322, 0, 0x527C, 0, 0, 0x5277, /* 0xC0 */
- 0x527D, 0x3A48, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x5326, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x3077, 0x532F, 0, 0, 0x5327, 0x5328, 0, /* 0xE0 */
- 0x3E25, 0x4B69, 0, 0, 0, 0x532D, 0x532C, 0, /* 0xE0 */
- 0, 0, 0x452F, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0x532E, 0, 0, 0x532B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_55[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3134, 0, 0x3A36, 0x3F30, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0x5329, /* 0x00 */
- 0x4562, 0, 0, 0, 0x532A, 0, 0x3022, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0x5334, 0x4D23, /* 0x20 */
- 0, 0x3E27, 0, 0x533A, 0, 0, 0, 0, /* 0x30 */
- 0x5339, 0x5330, 0, 0, 0, 0, 0x4243, 0, /* 0x30 */
- 0x5331, 0, 0, 0, 0x426F, 0x5336, 0x3E26, 0, /* 0x40 */
- 0, 0, 0, 0, 0x5333, 0, 0, 0x4C64, /* 0x40 */
- 0, 0, 0, 0x373C, 0, 0, 0x5337, 0x5338, /* 0x50 */
- 0, 0, 0, 0, 0x5335, 0x533B, 0, 0, /* 0x50 */
- 0, 0, 0, 0x5332, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0x5341, 0x5346, 0, 0x5342, 0, /* 0x70 */
- 0x533D, 0, 0, 0x5347, 0x4131, 0, 0, 0x5349, /* 0x80 */
- 0, 0x3922, 0x533F, 0x437D, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x5343, 0x533C, 0x342D, 0, 0x346E, 0x3365, 0x5344, 0x5340, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0x3776, /* 0xA0 */
- 0x534A, 0x5348, 0x4153, 0x354A, 0x362C, 0, 0x5345, 0, /* 0xA0 */
- 0x3674, 0, 0, 0, 0, 0, 0x3144, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x534E, 0x534C, 0, 0x5427, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0x5351, 0, 0, 0, /* 0xD0 */
- 0, 0, 0x534B, 0, 0x534F, 0, 0, 0x534D, /* 0xD0 */
- 0, 0, 0, 0x3B4C, 0x5350, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0x5353, /* 0xF0 */
- 0, 0x5358, 0, 0, 0, 0x5356, 0x5355 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_56[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4332, 0, /* 0x00 */
- 0, 0x3245, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0x5352, 0, 0x5354, 0x3E28, /* 0x10 */
- 0x3133, 0, 0, 0x5357, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0x325E, 0, 0, 0, 0, 0, 0x5362, /* 0x20 */
- 0, 0x3E7C, 0x535E, 0, 0x535C, 0, 0x535D, 0, /* 0x30 */
- 0x535F, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0x313D, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0x4139, 0, 0x5359, 0, /* 0x40 */
- 0x535A, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0x337A, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0x5361, 0, 0, 0, /* 0x60 */
- 0x346F, 0, 0x5364, 0x5360, 0x5363, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0x4A2E, 0, 0, 0, /* 0x70 */
- 0x4655, 0, 0x4838, 0, 0, 0, 0, 0, /* 0x70 */
- 0x5366, 0, 0, 0, 0, 0, 0x5365, 0x3345, /* 0x80 */
- 0, 0, 0x5367, 0, 0, 0, 0, 0x536A, /* 0x80 */
- 0, 0, 0, 0, 0x5369, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x5368, 0, 0x4739, 0, 0, 0x536B, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0x536C, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x536E, 0, 0x536D, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x5370, 0, 0, 0, /* 0xB0 */
- 0x5373, 0x5371, 0x536F, 0x5372, 0, 0, 0, 0, /* 0xC0 */
- 0x5374, 0, 0, 0, 0, 0, 0x5375, 0, /* 0xC0 */
- 0, 0x5376, 0, 0x5377, 0, 0, 0, 0x5378, /* 0xD0 */
- 0x5145, 0, 0x3C7C, 0x3B4D, 0, 0, 0x3273, 0, /* 0xD0 */
- 0x3078, 0, 0, 0x4344, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0x5379, 0, /* 0xE0 */
- 0x3A24, 0, 0x304F, 0x3F5E, 0, 0, 0, 0, /* 0xF0 */
- 0, 0x537A, 0x3847, 0, 0, 0x3971, 0, 0x537C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_57[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x537B, 0, 0, 0x4A60, 0x537D, 0, 0, 0, /* 0x00 */
- 0x5421, 0x537E, 0, 0x5422, 0, 0x5423, 0, 0x3777, /* 0x00 */
- 0, 0, 0x3160, 0x5424, 0, 0, 0x5426, 0, /* 0x10 */
- 0x5425, 0, 0, 0, 0x5428, 0, 0, 0x455A, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x5429, 0x3035, /* 0x20 */
- 0x3A5F, 0, 0, 0, 0, 0x373D, 0, 0, /* 0x20 */
- 0x434F, 0, 0, 0, 0, 0, 0, 0x542A, /* 0x30 */
- 0x542B, 0, 0, 0x542D, 0, 0, 0, 0, /* 0x30 */
- 0x542E, 0, 0x3A64, 0, 0, 0, 0, 0x3651, /* 0x40 */
- 0, 0, 0x4B37, 0, 0, 0, 0x542C, 0x542F, /* 0x40 */
- 0x3A41, 0x3923, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0x5433, 0, 0, 0x3A25, 0, 0x4333, 0, /* 0x60 */
- 0, 0x5430, 0x445A, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0x5434, /* 0x70 */
- 0, 0, 0x3F62, 0, 0, 0, 0, 0, /* 0x80 */
- 0x5432, 0x5435, 0, 0x373F, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x5436, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x5437, 0, 0x3924, 0x3340, 0x5439, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x543A, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x543B, 0, 0, 0x5438, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x5431, 0, 0, 0x543C, 0, 0, 0x543D, 0, /* 0xC0 */
- 0, 0, 0, 0x4B64, 0, 0, 0x3E6B, 0, /* 0xC0 */
- 0, 0, 0x543F, 0x5440, 0x543E, 0, 0x5442, 0, /* 0xD0 */
- 0, 0, 0, 0, 0x4738, 0, 0, 0x3068, /* 0xD0 */
- 0x4956, 0, 0, 0x5443, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0x3E7D, 0, 0, 0x3C39, /* 0xF0 */
- 0, 0x475D, 0x3470, 0, 0x3A6B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_58[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4B59, 0, 0x4632, 0, 0, 0x3778, 0x424F, 0, /* 0x00 */
- 0, 0, 0x5441, 0x5444, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0x4244, 0, 0, /* 0x10 */
- 0, 0x5445, 0, 0, 0, 0x5446, 0, 0, /* 0x10 */
- 0, 0x5448, 0, 0, 0x4469, 0, 0, 0, /* 0x20 */
- 0, 0, 0x342E, 0, 0, 0, 0, 0x7421, /* 0x20 */
- 0x3161, 0x4A73, 0, 0, 0x3E6C, 0x4548, 0, 0, /* 0x30 */
- 0, 0, 0x3A66, 0, 0, 0x544E, 0, 0, /* 0x30 */
- 0x4A3D, 0x4E5D, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x3274, 0x544A, 0, 0, 0, 0, /* 0x40 */
- 0, 0x413A, 0x544D, 0, 0x4563, 0, 0, 0x4549, /* 0x50 */
- 0x4564, 0x4839, 0x444D, 0, 0, 0, 0x3A49, 0, /* 0x50 */
- 0, 0, 0x5449, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0x3176, 0, 0x4536, 0, 0, 0, 0, /* 0x60 */
- 0x544B, 0, 0x5447, 0, 0, 0x3F50, 0, 0, /* 0x70 */
- 0, 0x544F, 0, 0, 0, 0, 0x3D4E, 0, /* 0x70 */
- 0, 0, 0, 0x362D, 0, 0x5450, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x4A68, 0, 0, 0, 0x417D, /* 0x90 */
- 0, 0, 0, 0, 0x4446, 0, 0, 0x5452, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x4B4F, 0, 0, 0x5453, 0, 0, 0x5458, 0, /* 0xA0 */
- 0, 0, 0, 0x4A2F, 0, 0, 0, 0, /* 0xB0 */
- 0x5457, 0x5451, 0x5454, 0x5456, 0, 0, 0x3A26, 0, /* 0xB0 */
- 0, 0x4A49, 0, 0, 0, 0x5459, 0, 0x4345, /* 0xC0 */
- 0, 0, 0x3275, 0, 0x3E6D, 0, 0, 0, /* 0xC0 */
- 0, 0x545B, 0, 0x545A, 0, 0x3968, 0, 0x545C, /* 0xD0 */
- 0x545E, 0x545D, 0, 0, 0x5460, 0, 0x5455, 0x5462, /* 0xD0 */
- 0, 0, 0, 0, 0x5461, 0x545F, 0, 0, /* 0xE0 */
- 0, 0, 0, 0x3B4E, 0x3F51, 0, 0x4154, 0x5463, /* 0xE0 */
- 0x403C, 0x306D, 0x4764, 0, 0, 0, 0, 0x445B, /* 0xF0 */
- 0, 0x5465, 0x5464, 0x5466, 0x5467, 0x5468 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_59[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5469, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0x4A51, 0x546A, 0, 0, 0, 0, 0x3246, /* 0x00 */
- 0x546B, 0, 0, 0, 0, 0x4D3C, 0x3330, 0, /* 0x10 */
- 0x5249, 0x3D48, 0x423F, 0x546C, 0x4C6B, 0, 0, 0, /* 0x10 */
- 0, 0, 0x4C34, 0, 0, 0x546E, 0, 0x4267, /* 0x20 */
- 0, 0x4537, 0x4240, 0x4957, 0x546F, 0x5470, 0x317B, 0, /* 0x20 */
- 0, 0x3C3A, 0x5471, 0, 0, 0, 0, 0x3050, /* 0x30 */
- 0x5472, 0, 0, 0, 0, 0, 0x5473, 0, /* 0x30 */
- 0, 0, 0, 0, 0x3162, 0, 0, 0x3471, /* 0x40 */
- 0x4660, 0x4A74, 0, 0, 0, 0, 0x5477, 0x4155, /* 0x40 */
- 0x5476, 0x3740, 0, 0, 0x4B5B, 0x5475, 0, 0x4565, /* 0x50 */
- 0x5479, 0, 0x5478, 0, 0, 0, 0, 0, /* 0x50 */
- 0x547B, 0, 0x547A, 0, 0, 0x317C, 0, 0x547C, /* 0x60 */
- 0x3E29, 0x547E, 0x4325, 0, 0x547D, 0, 0x4A33, 0, /* 0x60 */
- 0, 0, 0, 0x3D77, 0x455B, 0, 0, 0, /* 0x70 */
- 0x5521, 0, 0, 0, 0, 0x3925, 0, 0, /* 0x70 */
- 0, 0x5522, 0x4721, 0x485E, 0x4C51, 0, 0, 0, /* 0x80 */
- 0, 0, 0x4725, 0, 0, 0x552B, 0, 0, /* 0x80 */
- 0, 0, 0, 0x3538, 0, 0, 0x4D45, 0, /* 0x90 */
- 0, 0x4C2F, 0, 0x562C, 0, 0x5523, 0, 0, /* 0x90 */
- 0, 0, 0, 0x5526, 0, 0x4245, 0, 0, /* 0xA0 */
- 0x4B38, 0, 0, 0, 0x454A, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x5527, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x4B65, 0, 0x3A4A, 0, 0, 0x3E2A, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0x5528, 0, /* 0xC0 */
- 0, 0x3B50, 0, 0x3B4F, 0, 0, 0, 0, /* 0xC0 */
- 0x3039, 0x3848, 0, 0x402B, 0x3051, 0, 0, 0, /* 0xD0 */
- 0, 0x552C, 0x552D, 0, 0x552A, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0x3138, 0x342F, 0, /* 0xE0 */
- 0x5529, 0, 0x4C45, 0x4931, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0x3028, 0, /* 0xF0 */
- 0, 0, 0, 0x3079, 0, 0, 0, 0x3B51 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_5A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3052, 0, 0x3023, 0, 0, 0, 0, /* 0x00 */
- 0, 0x5532, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0x5530, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0x4C3C, 0, 0x5533, 0, 0x5531, 0, 0, 0x552F, /* 0x10 */
- 0x3F31, 0, 0, 0, 0, 0x552E, 0, 0, /* 0x20 */
- 0, 0x4A5A, 0, 0, 0, 0, 0, 0x3864, /* 0x20 */
- 0, 0, 0, 0, 0, 0x5537, 0x5538, 0, /* 0x30 */
- 0, 0, 0, 0, 0x3E2B, 0, 0, 0, /* 0x30 */
- 0x5534, 0x4F2C, 0, 0, 0, 0, 0x474C, 0, /* 0x40 */
- 0, 0x5536, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0x3A27, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0x5539, 0, 0, 0, 0x4958, 0, /* 0x60 */
- 0, 0, 0x553A, 0, 0x5535, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0x4C3B, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0x475E, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0x553B, 0x4932, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x553C, 0x5540, 0x553D, 0, /* 0xB0 */
- 0, 0x3247, 0x553F, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x3C3B, 0, 0x553E, 0x3779, 0, 0, 0, /* 0xC0 */
- 0x554C, 0, 0, 0, 0, 0, 0x5545, 0x5542, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x4364, 0, 0x5541, 0, 0, 0x5543, 0, /* 0xE0 */
- 0, 0x5544, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0x5546, 0x5547 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_5B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0x3472, 0, 0x5549, 0x5548, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0x554A, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x3E6E, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x554D, 0, 0x445C, 0, 0, 0, /* 0x20 */
- 0x3145, 0, 0x554B, 0, 0, 0, 0x554E, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0x554F, 0, /* 0x30 */
- 0x5552, 0, 0, 0x5550, 0, 0x5551, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0x3B52, 0x5553, 0, 0, 0x3926, 0x5554, 0, 0x3B7A, /* 0x50 */
- 0x4238, 0, 0x5555, 0x5556, 0x3B5A, 0x3927, 0, 0x4C52, /* 0x50 */
- 0, 0, 0, 0x3528, 0x3849, 0x5557, 0x3358, 0, /* 0x60 */
- 0, 0x5558, 0, 0x4239, 0, 0, 0, 0, /* 0x60 */
- 0x5559, 0x5623, 0, 0x555A, 0, 0x555B, 0, 0, /* 0x70 */
- 0x555C, 0, 0x555E, 0, 0, 0, 0, 0, /* 0x70 */
- 0x555F, 0, 0, 0x5560, 0, 0x4270, 0, 0x3127, /* 0x80 */
- 0x3C69, 0x3042, 0, 0x4157, 0x3430, 0x3C35, 0, 0x3928, /* 0x80 */
- 0, 0, 0, 0, 0, 0x4566, 0, 0x3D21, /* 0x90 */
- 0x3431, 0x4368, 0x446A, 0x3038, 0x3539, 0x4A75, 0, 0x3C42, /* 0x90 */
- 0, 0, 0x3552, 0x406B, 0x3C3C, 0x4D28, 0x5561, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0x355C, 0, /* 0xA0 */
- 0x3A4B, 0, 0, 0x3332, 0x3163, 0x3E2C, 0x3248, 0, /* 0xB0 */
- 0x5562, 0x4D46, 0, 0, 0, 0, 0, 0x3D49, /* 0xB0 */
- 0, 0, 0x3C64, 0x5563, 0x3473, 0x4652, 0x4C29, 0x5564, /* 0xC0 */
- 0, 0x5565, 0, 0, 0x4959, 0, 0, 0, /* 0xC0 */
- 0x5567, 0, 0x3428, 0x3677, 0x5566, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0x3432, 0, 0x3F32, 0x556B, 0x3B21, /* 0xD0 */
- 0, 0x3249, 0x556A, 0, 0x5568, 0x556C, 0x5569, 0x472B, /* 0xE0 */
- 0x5C4D, 0x3F33, 0, 0x556D, 0, 0, 0x4E40, 0, /* 0xE0 */
- 0x556E, 0, 0, 0x5570, 0, 0x437E, 0x556F, 0, /* 0xF0 */
- 0x4023, 0, 0x3B7B, 0, 0, 0, 0x4250, 0x3C77 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_5C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4975, 0x406C, 0, 0x3C4D, 0x5571, 0x3E2D, 0x5572, /* 0x00 */
- 0x5573, 0x3053, 0x423A, 0x3F52, 0, 0x5574, 0x4633, 0x3E2E, /* 0x00 */
- 0, 0x3E2F, 0, 0x5575, 0, 0, 0x406D, 0, /* 0x10 */
- 0, 0, 0x3E30, 0, 0, 0, 0, 0, /* 0x10 */
- 0x5576, 0, 0x5577, 0, 0x4C60, 0, 0, 0, /* 0x20 */
- 0x5578, 0, 0, 0, 0, 0x3646, 0, 0, /* 0x20 */
- 0, 0x3D22, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0x5579, 0x557A, 0x3C5C, 0x3F2C, 0x4674, 0x3F54, 0x4878, 0x4722, /* 0x30 */
- 0x3649, 0x557B, 0, 0, 0, 0x356F, 0x557C, 0, /* 0x40 */
- 0x367E, 0, 0x464F, 0x3230, 0, 0x3B53, 0x557D, 0x5622, /* 0x40 */
- 0x5621, 0x367D, 0, 0x557E, 0, 0x4538, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0x4230, 0, /* 0x50 */
- 0x454B, 0x3C48, 0, 0, 0x4158, 0x4D7A, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0x5624, 0, 0x5625, 0x4656, /* 0x60 */
- 0, 0x3B33, 0, 0, 0, 0, 0x5627, 0, /* 0x70 */
- 0, 0x5628, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0x5629, 0, 0, 0, /* 0x80 */
- 0x3474, 0x562A, 0, 0, 0x562B, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x322C, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x413B, 0x3464, 0, 0x562D, 0x4C28, 0, 0, 0, /* 0xA0 */
- 0, 0x4252, 0, 0x3359, 0, 0, 0x562F, 0x5631, /* 0xB0 */
- 0x345F, 0, 0, 0x562E, 0x5630, 0, 0x5633, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x5632, 0, 0x5634, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x5635, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x463D, 0x362E, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x3265, 0x5636, 0x563B, 0, 0, 0x5639, 0, 0x4A77, /* 0xE0 */
- 0x4A76, 0, 0, 0, 0, 0, 0x4567, 0, /* 0xF0 */
- 0, 0, 0x5638, 0x3D54, 0, 0x5637 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_5D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3F72, /* 0x00 */
- 0, 0, 0, 0x563C, 0, 0, 0x3A6A, 0, /* 0x00 */
- 0, 0x5642, 0, 0, 0x5643, 0x563D, 0x3333, 0x563E, /* 0x10 */
- 0x5647, 0x5646, 0x5645, 0x5641, 0, 0, 0, 0x5640, /* 0x10 */
- 0, 0, 0x5644, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0x4A78, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0x564B, 0x5648, 0, 0x564A, 0, /* 0x40 */
- 0x4D72, 0, 0x5649, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0x563F, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0x3F73, 0, 0, 0x564C, 0, 0, 0x3A37, /* 0x60 */
- 0, 0, 0, 0x564D, 0, 0, 0x564E, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0x5651, 0, 0x5650, 0, 0, 0x564F, /* 0x80 */
- 0, 0, 0, 0x4568, 0x563A, 0, 0, 0, /* 0x80 */
- 0x5657, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0x5653, 0, 0, /* 0x90 */
- 0, 0, 0x5652, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x5654, 0, 0x5655, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0x5658, /* 0xB0 */
- 0, 0, 0x4E66, 0, 0x5659, 0x5656, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x565A, 0, 0, 0x3460, 0x565B, 0, 0, /* 0xC0 */
- 0, 0, 0x565D, 0x565C, 0, 0, 0x565E, 0, /* 0xD0 */
- 0, 0, 0, 0x565F, 0, 0x406E, 0x3D23, 0, /* 0xD0 */
- 0, 0x3D64, 0, 0x4163, 0, 0x3929, 0x3A38, 0x392A, /* 0xE0 */
- 0x3570, 0, 0, 0x5660, 0, 0, 0x3A39, 0, /* 0xE0 */
- 0, 0x384A, 0x5661, 0x4C26, 0x4743, 0x5662, 0, 0x392B, /* 0xF0 */
- 0, 0, 0, 0x342C, 0, 0x4327, 0x3652 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_5E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3B54, 0x495B, 0, 0, 0x4841, 0, /* 0x00 */
- 0, 0, 0, 0x5663, 0x3475, 0, 0, 0, /* 0x00 */
- 0, 0x5666, 0, 0, 0, 0, 0x4421, 0, /* 0x10 */
- 0, 0x5665, 0x5664, 0x5667, 0, 0x446B, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0x3F63, 0, 0, /* 0x20 */
- 0, 0, 0, 0x3B55, 0, 0x404A, 0, 0x4253, /* 0x20 */
- 0x3522, 0, 0, 0x4422, 0, 0, 0x5668, 0x5669, /* 0x30 */
- 0x3E6F, 0, 0, 0, 0, 0x4B39, 0, 0, /* 0x30 */
- 0x566C, 0, 0, 0x566B, 0x566A, 0x497D, 0, 0x5673, /* 0x40 */
- 0, 0, 0, 0, 0x4B5A, 0, 0x566D, 0, /* 0x40 */
- 0, 0, 0, 0, 0x566F, 0x4B6B, 0, 0x566E, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0x5670, /* 0x50 */
- 0, 0x4828, 0x5671, 0x4A3E, 0x5672, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0x3433, 0x4A3F, 0x472F, 0x5674, 0x5675, 0, /* 0x70 */
- 0x392C, 0x3434, 0x5676, 0x3838, 0x4D44, 0x4D29, 0x3476, 0x5678, /* 0x70 */
- 0, 0x4423, 0, 0x392D, 0x3E31, 0, 0, 0x485F, /* 0x80 */
- 0, 0, 0x3E32, 0, 0, 0, 0, 0x3D78, /* 0x80 */
- 0, 0, 0, 0, 0, 0x446C, 0x4A79, 0x4539, /* 0x90 */
- 0, 0, 0x392E, 0, 0x495C, 0, 0, 0, /* 0x90 */
- 0x5679, 0, 0, 0, 0, 0, 0x4559, 0x3A42, /* 0xA0 */
- 0, 0, 0, 0x384B, 0, 0x446D, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0x3043, 0x3D6E, 0x392F, /* 0xB0 */
- 0x4D47, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x567A, 0x567B, 0x4751, 0, 0, 0, 0, /* 0xC0 */
- 0x567C, 0x4E77, 0x4F2D, 0, 0, 0, 0, 0x567E, /* 0xC0 */
- 0x567D, 0, 0, 0x3347, 0, 0, 0x5721, 0, /* 0xD0 */
- 0, 0, 0x5724, 0x5725, 0, 0x5723, 0, 0x4940, /* 0xD0 */
- 0x3E33, 0x5727, 0x5726, 0x5722, 0, 0, 0, 0, /* 0xE0 */
- 0x5728, 0x5729, 0, 0, 0x572A, 0, 0, 0, /* 0xE0 */
- 0x572D, 0x572B, 0, 0x572C, 0x572E, 0, 0x3164, 0x446E, /* 0xF0 */
- 0x572F, 0, 0x377A, 0x3276, 0x4736, 0, 0x5730, 0x467B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_5F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4A5B, 0, 0x5731, 0x4F2E, 0, 0, 0, /* 0x00 */
- 0, 0x5732, 0x4A40, 0x5735, 0x5021, 0x5031, 0, 0x3C30, /* 0x00 */
- 0x4675, 0x5736, 0, 0x355D, 0x4424, 0x307A, 0x5737, 0x4A26, /* 0x10 */
- 0x3930, 0, 0, 0x4350, 0, 0, 0, 0x446F, /* 0x10 */
- 0, 0, 0, 0, 0, 0x4C6F, 0x3839, 0x384C, /* 0x20 */
- 0, 0x5738, 0, 0, 0, 0x5739, 0, 0x573F, /* 0x20 */
- 0, 0x3C65, 0, 0, 0, 0x4425, 0, 0x362F, /* 0x30 */
- 0x573A, 0, 0, 0, 0x492B, 0, 0x4346, 0, /* 0x30 */
- 0, 0x573B, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0x573C, 0, 0x3630, 0, 0x573D, 0, 0x573E, 0, /* 0x40 */
- 0, 0x5740, 0, 0x4576, 0, 0, 0x5741, 0x5742, /* 0x50 */
- 0, 0x5743, 0, 0, 0x5734, 0x5733, 0, 0, /* 0x50 */
- 0, 0x5744, 0x3741, 0, 0, 0, 0x4927, 0, /* 0x60 */
- 0, 0x3A4C, 0x4937, 0x4426, 0x494B, 0x5745, 0, 0, /* 0x60 */
- 0x3E34, 0x3146, 0, 0x5746, 0, 0, 0, 0x5747, /* 0x70 */
- 0, 0x4C72, 0, 0, 0x4860, 0, 0, 0x574A, /* 0x70 */
- 0x317D, 0x402C, 0x5749, 0x5748, 0x3742, 0x4254, 0, 0x574E, /* 0x80 */
- 0x574C, 0, 0x574B, 0x4E27, 0x3865, 0, 0, 0, /* 0x80 */
- 0x3D79, 0x574D, 0x454C, 0x3D3E, 0, 0, 0, 0x4640, /* 0x90 */
- 0x5751, 0x5750, 0, 0, 0, 0, 0x574F, 0, /* 0x90 */
- 0x5752, 0x3866, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x5753, 0x497C, 0x3D5B, 0, 0, 0x5754, 0x4879, 0, /* 0xA0 */
- 0, 0, 0, 0x4641, 0x4427, 0, 0, 0, /* 0xB0 */
- 0, 0x4530, 0, 0, 0x5755, 0x352B, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x3F34, 0, 0x492C, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0x3477, 0x4726, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0x5756, 0x3B56, /* 0xD0 */
- 0x4B3A, 0x4B3B, 0, 0, 0x317E, 0x575B, 0, 0, /* 0xD0 */
- 0x4369, 0, 0, 0, 0x5758, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0x3277, 0, 0, 0, 0, /* 0xE0 */
- 0x582D, 0x575A, 0, 0, 0, 0x4730, 0, 0, /* 0xF0 */
- 0x5759, 0, 0, 0x5757, 0, 0x397A, 0, 0x575D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_60[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0x5763, 0x5769, /* 0x00 */
- 0x5761, 0, 0x455C, 0, 0, 0x5766, 0x495D, 0, /* 0x10 */
- 0, 0x5760, 0, 0x5765, 0x4E67, 0x3B57, 0, 0, /* 0x10 */
- 0x4255, 0x575E, 0, 0, 0, 0x355E, 0x5768, 0x402D, /* 0x20 */
- 0x3165, 0x5762, 0x3278, 0x5767, 0, 0, 0, 0x3631, /* 0x20 */
- 0, 0x5764, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0x576A, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x576C, 0x5776, 0x5774, 0, 0, 0x5771, 0, /* 0x40 */
- 0, 0, 0x5770, 0x4E78, 0, 0x5772, 0, 0, /* 0x40 */
- 0x3632, 0, 0x3931, 0, 0, 0x3D7A, 0, 0, /* 0x50 */
- 0, 0x5779, 0x576B, 0, 0, 0, 0, 0x576F, /* 0x50 */
- 0x575F, 0, 0x327A, 0x5773, 0x5775, 0x4351, 0, 0, /* 0x60 */
- 0x3A28, 0x3238, 0x576D, 0x5778, 0x5777, 0x3633, 0, 0x4229, /* 0x60 */
- 0x3366, 0, 0, 0, 0, 0x3743, 0, 0x576E, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x577A, 0, 0x577D, 0x5821, 0, 0, 0, /* 0x80 */
- 0, 0x3C3D, 0, 0x5827, 0x4470, 0x577B, 0, 0, /* 0x80 */
- 0, 0, 0x5825, 0, 0x3279, 0, 0x5823, 0x5824, /* 0x90 */
- 0, 0, 0x577E, 0x5822, 0, 0, 0, 0x3867, /* 0x90 */
- 0x4D2A, 0, 0, 0x3435, 0, 0, 0x3159, 0x5826, /* 0xA0 */
- 0, 0x473A, 0x302D, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x4861, 0x575C, 0x582C, 0x5830, 0x4C65, 0, /* 0xB0 */
- 0x5829, 0, 0, 0, 0x4569, 0x582E, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x3E70, 0x582F, 0x4657, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x4F47, 0, 0x582B, 0, 0, 0, 0, /* 0xD0 */
- 0x5831, 0, 0x397B, 0, 0x404B, 0, 0, 0x3054, /* 0xD0 */
- 0x582A, 0x5828, 0, 0x415A, 0, 0, 0, 0x577C, /* 0xE0 */
- 0x3B34, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x4246, 0x583D, 0, 0x415B, 0x5838, 0, 0x5835, 0x5836, /* 0xF0 */
- 0, 0x3C66, 0x5839, 0x583C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_61[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5837, 0x3D25, 0, 0x583A, 0, 0, 0x5834, 0, /* 0x00 */
- 0x4C7C, 0x4C7B, 0, 0, 0, 0x583E, 0x583F, 0x3055, /* 0x00 */
- 0, 0, 0, 0, 0, 0x5833, 0, 0, /* 0x10 */
- 0, 0, 0x3672, 0x3026, 0, 0, 0, 0x3436, /* 0x10 */
- 0, 0x583B, 0, 0, 0, 0, 0, 0x5843, /* 0x20 */
- 0x5842, 0, 0, 0, 0x5847, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0x5848, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0x5846, 0x5849, 0x5841, 0x5845, /* 0x30 */
- 0, 0, 0x584A, 0, 0x584B, 0, 0, 0x5840, /* 0x40 */
- 0x3B7C, 0, 0x5844, 0x4256, 0x3932, 0x5832, 0x3F35, 0, /* 0x40 */
- 0, 0, 0, 0x5858, 0, 0x4A69, 0, 0, /* 0x50 */
- 0x584E, 0x584F, 0x5850, 0, 0, 0x5857, 0, 0x5856, /* 0x50 */
- 0, 0, 0x4B7D, 0x3437, 0, 0x5854, 0, 0x3745, /* 0x60 */
- 0x3334, 0, 0, 0x5851, 0, 0, 0x4E38, 0x5853, /* 0x60 */
- 0x3056, 0x5855, 0, 0x584C, 0x5852, 0x5859, 0x3744, 0x584D, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x4D5D, 0, /* 0x70 */
- 0, 0, 0x4D2B, 0, 0, 0, 0, 0x585C, /* 0x80 */
- 0, 0, 0x5860, 0, 0, 0, 0x417E, 0, /* 0x80 */
- 0x4E79, 0x5861, 0, 0, 0x585E, 0, 0x585B, 0, /* 0x90 */
- 0, 0x585A, 0x585F, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0x4A30, 0, 0, 0x4634, /* 0xA0 */
- 0, 0x3746, 0, 0x5862, 0x585D, 0, 0x5863, 0, /* 0xA0 */
- 0, 0, 0x377B, 0, 0, 0, 0x3231, 0, /* 0xB0 */
- 0, 0, 0x586B, 0, 0, 0, 0x3438, 0, /* 0xB0 */
- 0, 0, 0, 0x5869, 0, 0, 0x586A, 0x3A29, /* 0xC0 */
- 0x5868, 0x5866, 0x5865, 0x586C, 0x5864, 0x586E, 0, 0, /* 0xC0 */
- 0x327B, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0x5870, 0, 0, 0x586F, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0x4428, 0, 0x5873, 0, 0x5871, 0x5867, /* 0xF0 */
- 0x377C, 0, 0x5872, 0, 0x5876, 0x5875, 0x5877, 0x5874 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_62[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5878, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0x5879, 0x587A, 0x4A6A, 0, 0x587C, 0x587B, 0x3D3F, 0, /* 0x00 */
- 0x402E, 0x3266, 0x327C, 0, 0x587D, 0, 0x303F, 0, /* 0x10 */
- 0, 0, 0x404C, 0x587E, 0, 0x6C43, 0x5921, 0x3761, /* 0x10 */
- 0, 0x5922, 0, 0, 0, 0, 0x406F, 0, /* 0x20 */
- 0, 0, 0x5923, 0, 0, 0, 0x5924, 0x353A, /* 0x20 */
- 0x5925, 0, 0x5926, 0x5927, 0x4257, 0, 0, 0, /* 0x30 */
- 0x384D, 0, 0, 0x4C61, 0, 0, 0, 0x4B3C, /* 0x30 */
- 0x3D6A, 0x5928, 0, 0, 0, 0, 0, 0x4070, /* 0x40 */
- 0x6E3D, 0x4862, 0, 0x3C6A, 0, 0x3A4D, 0x5929, 0, /* 0x40 */
- 0, 0, 0, 0x4247, 0, 0x4A27, 0, 0, /* 0x50 */
- 0x4271, 0, 0, 0x592C, 0, 0, 0x592A, 0, /* 0x50 */
- 0x592D, 0, 0, 0x592B, 0, 0, 0, 0, /* 0x60 */
- 0x592E, 0, 0, 0, 0, 0, 0x4A31, 0, /* 0x60 */
- 0, 0x3037, 0, 0, 0, 0, 0x495E, 0, /* 0x70 */
- 0, 0x4863, 0, 0, 0x592F, 0, 0x5932, 0x3E35, /* 0x70 */
- 0x353B, 0, 0x5930, 0x5937, 0x3E36, 0, 0, 0, /* 0x80 */
- 0, 0x5931, 0x4744, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x4D5E, 0x5933, 0x5934, 0x5938, 0x456A, 0x5935, 0x3933, /* 0x90 */
- 0x405E, 0, 0, 0x5946, 0x4834, 0, 0x4272, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x4864, 0x5A2D, 0, 0, 0, /* 0xA0 */
- 0, 0x4A7A, 0, 0, 0, 0x4471, 0, 0, /* 0xB0 */
- 0, 0x4B75, 0, 0x593B, 0x3221, 0x436A, 0, 0, /* 0xB0 */
- 0, 0, 0x5944, 0, 0, 0x4334, 0x593E, 0x5945, /* 0xC0 */
- 0x5940, 0x5947, 0x5943, 0, 0x5942, 0x476F, 0, 0x593C, /* 0xC0 */
- 0x327D, 0x593A, 0x3571, 0x4273, 0x5936, 0, 0, 0x5939, /* 0xD0 */
- 0x3934, 0x405B, 0, 0x3E37, 0x5941, 0x4752, 0, 0, /* 0xD0 */
- 0x3572, 0x3348, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0x3367, 0x3F21, 0x5949, 0x594E, /* 0xE0 */
- 0, 0x594A, 0, 0x377D, 0, 0x594F, 0x3B22, 0x3969, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0x3D26, 0x593D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_63[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3B7D, 0x594C, 0, 0, 0, 0, 0x3B58, /* 0x00 */
- 0x594D, 0x3044, 0, 0, 0x5948, 0, 0, 0, /* 0x00 */
- 0, 0x4429, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0x3573, 0, 0, 0, 0, 0, 0x3634, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0x594B, /* 0x20 */
- 0x3027, 0, 0, 0x3A43, 0, 0, 0, 0x3F36, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0x4472, 0, 0, 0x4854, 0x5951, 0x415E, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0x422A, 0, 0, 0x3B2B, 0x5952, 0, 0x5954, /* 0x40 */
- 0x5950, 0, 0, 0, 0, 0x4A61, 0, 0x443D, /* 0x50 */
- 0, 0, 0, 0, 0x415C, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0x4A7B, /* 0x60 */
- 0x3C4E, 0x5960, 0, 0x595F, 0, 0, 0x3F78, 0, /* 0x60 */
- 0, 0, 0x377E, 0, 0, 0, 0x5959, 0x3E39, /* 0x70 */
- 0, 0, 0x4668, 0x4731, 0, 0, 0, 0, /* 0x70 */
- 0x5957, 0, 0, 0x415D, 0, 0, 0, 0, /* 0x80 */
- 0x3C78, 0x595C, 0, 0, 0x3E38, 0, 0x5956, 0x595B, /* 0x80 */
- 0, 0, 0x4753, 0, 0, 0, 0x5955, 0, /* 0x90 */
- 0x3721, 0, 0, 0x335D, 0, 0, 0, 0x595D, /* 0x90 */
- 0x4E2B, 0x3A4E, 0x4335, 0x595A, 0, 0x405C, 0, 0x3935, /* 0xA0 */
- 0x3F64, 0x3166, 0x413C, 0x5958, 0x3545, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x3747, 0, 0x444F, 0x595E, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x415F, 0, 0, 0x5961, 0, /* 0xB0 */
- 0x5963, 0, 0, 0x4237, 0x5969, 0, 0x5964, 0, /* 0xC0 */
- 0, 0x5966, 0, 0, 0, 0, 0, 0x4941, /* 0xC0 */
- 0x4473, 0, 0x5967, 0, 0, 0, 0x4D2C, 0, /* 0xD0 */
- 0, 0, 0x4D48, 0x3439, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x302E, 0, 0x5965, 0, 0, 0, 0, /* 0xE0 */
- 0, 0x5962, 0, 0, 0, 0, 0x3478, 0, /* 0xE0 */
- 0, 0, 0, 0, 0x3167, 0, 0x5968, 0, /* 0xF0 */
- 0, 0, 0x4D49 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_64[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x596C, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0x423B, 0, 0x5973, /* 0x00 */
- 0, 0, 0, 0x596D, 0, 0, 0x596A, 0x5971, /* 0x10 */
- 0, 0, 0, 0, 0x5953, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x596E, 0, /* 0x20 */
- 0x5972, 0, 0, 0, 0x4842, 0x456B, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0x596B, 0, 0x596F, 0, /* 0x30 */
- 0, 0, 0x3748, 0, 0, 0, 0x3A71, 0, /* 0x30 */
- 0, 0, 0x405D, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0x5977, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0x4526, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0x5974, /* 0x60 */
- 0, 0x4B60, 0, 0, 0, 0, 0, 0x5975, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0x5976, 0, /* 0x70 */
- 0x4C4E, 0, 0x4022, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0x3762, 0, 0, 0, 0, /* 0x80 */
- 0x597D, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0x3B35, 0x597A, 0, 0x5979, 0, 0, /* 0x90 */
- 0, 0, 0x4732, 0, 0, 0, 0x4635, 0, /* 0x90 */
- 0, 0, 0, 0, 0x4531, 0x597B, 0, 0, /* 0xA0 */
- 0, 0x597C, 0, 0x496F, 0, 0x4745, 0x3B23, 0, /* 0xA0 */
- 0x4071, 0, 0x4B50, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x3349, 0, 0x5A25, 0x597E, 0, 0, 0, /* 0xB0 */
- 0, 0x4D4A, 0x5A27, 0, 0, 0x5A23, 0, 0x5A24, /* 0xC0 */
- 0, 0, 0, 0, 0, 0x4160, 0, 0, /* 0xC0 */
- 0, 0, 0x5A22, 0, 0x593F, 0, 0, 0, /* 0xD0 */
- 0x5A26, 0, 0x5A21, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x5A2B, 0x5A2C, 0x4527, 0x5A2E, 0, 0, 0x3B24, 0x5A29, /* 0xE0 */
- 0, 0, 0, 0, 0x353C, 0, 0, 0x5A2F, /* 0xE0 */
- 0, 0x5A28, 0x5A33, 0, 0x5A32, 0, 0x5A31, 0, /* 0xF0 */
- 0, 0, 0x5A34, 0, 0, 0x5A36, 0x3E71 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_65[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5A35, 0, 0, 0, 0, 0x5A39, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0x5A37, 0, 0, 0, 0x5A38, 0x5970, 0, 0, /* 0x10 */
- 0, 0, 0, 0x5A3B, 0x5A3A, 0, 0, 0, /* 0x20 */
- 0, 0, 0x5978, 0x5A3C, 0x5A30, 0, 0, 0x3B59, /* 0x20 */
- 0, 0, 0, 0, 0x5A3D, 0x5A3E, 0x5A40, 0x5A3F, /* 0x30 */
- 0x5A41, 0x327E, 0, 0x3936, 0, 0, 0x4A7C, 0x402F, /* 0x30 */
- 0, 0, 0, 0, 0, 0x384E, 0, 0, /* 0x40 */
- 0x5A43, 0, 0, 0, 0, 0x5A46, 0, 0x4952, /* 0x40 */
- 0, 0x355F, 0, 0, 0, 0x5A45, 0x5A44, 0x4754, /* 0x50 */
- 0x5A47, 0x3635, 0, 0, 0, 0x5A49, 0x5A48, 0, /* 0x50 */
- 0, 0, 0x343A, 0x3B36, 0, 0, 0x4658, 0, /* 0x60 */
- 0, 0, 0, 0, 0x3749, 0, 0, 0, /* 0x60 */
- 0x3F74, 0, 0x5A4A, 0, 0x4030, 0x4528, 0, 0x495F, /* 0x70 */
- 0x5A4B, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0x5A4C, 0x5A4D, 0, 0, 0, 0x4A38, /* 0x80 */
- 0x555D, 0x4046, 0, 0, 0x494C, 0, 0x3A58, 0, /* 0x80 */
- 0x4865, 0x4843, 0, 0, 0, 0, 0, 0x454D, /* 0x90 */
- 0, 0x4E41, 0, 0x5A4F, 0x3C50, 0, 0, 0x5A50, /* 0x90 */
- 0, 0x3036, 0, 0, 0x3654, 0x404D, 0, 0x4960, /* 0xA0 */
- 0, 0, 0, 0x5A51, 0x3B42, 0x4347, 0, 0x3B5B, /* 0xA0 */
- 0x3F37, 0, 0, 0, 0, 0, 0, 0x5A52, /* 0xB0 */
- 0, 0x4A7D, 0, 0, 0x3177, 0x3B5C, 0, 0, /* 0xB0 */
- 0, 0x5A55, 0, 0x5A53, 0x5A56, 0x4E39, 0x5A54, 0, /* 0xC0 */
- 0, 0, 0, 0x407B, 0x5A57, 0, 0, 0x4232, /* 0xC0 */
- 0, 0, 0x5A58, 0, 0, 0, 0, 0x347A, /* 0xD0 */
- 0, 0x5A5A, 0, 0x5A59, 0, 0, 0, 0, /* 0xD0 */
- 0x5A5B, 0x5A5C, 0x347B, 0, 0, 0x467C, 0x4336, 0x356C, /* 0xE0 */
- 0x3B5D, 0x4161, 0, 0, 0x3D5C, 0x3030, 0, 0, /* 0xE0 */
- 0, 0x5A5D, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0x3222, 0x5A61 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_66[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3937, 0x5A60, 0, 0, 0x3A2B, 0x3E3A, /* 0x00 */
- 0, 0, 0x5A5F, 0, 0x3E3B, 0, 0x4C40, 0x3A2A, /* 0x00 */
- 0, 0, 0, 0x3057, 0x404E, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0x5A66, 0, 0, 0x4031, /* 0x10 */
- 0x3147, 0, 0, 0, 0, 0x3D55, 0, 0x4B66, /* 0x20 */
- 0x3A72, 0, 0, 0, 0, 0x3E3C, 0, 0x4027, /* 0x20 */
- 0, 0, 0, 0, 0x5A65, 0x5A63, 0x5A64, 0, /* 0x30 */
- 0, 0, 0, 0, 0x436B, 0, 0, 0x5B26, /* 0x30 */
- 0, 0x5A6A, 0x3B7E, 0x3938, 0x5A68, 0, 0, 0, /* 0x40 */
- 0, 0x5A69, 0, 0x3F38, 0, 0, 0, 0x5A67, /* 0x40 */
- 0, 0, 0x3B2F, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0x5A6C, 0x5A6B, 0x5A70, /* 0x50 */
- 0, 0, 0x5A71, 0, 0x5A6D, 0, 0x3322, 0x5A6E, /* 0x60 */
- 0x5A6F, 0x4855, 0, 0, 0, 0, 0x4961, 0x374A, /* 0x60 */
- 0x5A72, 0, 0, 0, 0x4032, 0, 0x3E3D, 0, /* 0x70 */
- 0, 0, 0x4352, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x3647, 0, 0x5A73, 0x5A77, 0, 0, 0x324B, /* 0x80 */
- 0x5A74, 0x5A76, 0, 0, 0, 0, 0x5A75, 0, /* 0x80 */
- 0, 0x3D6B, 0, 0, 0, 0, 0x4348, 0x3045, /* 0x90 */
- 0x5A78, 0, 0, 0, 0, 0x5A79, 0, 0, /* 0x90 */
- 0, 0, 0x442A, 0, 0, 0, 0x4E71, 0, /* 0xA0 */
- 0, 0, 0, 0x3B43, 0, 0, 0x4A6B, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x4B3D, 0, 0, 0, /* 0xB0 */
- 0x5B22, 0x5A7B, 0, 0, 0x5A7E, 0, 0x5A7D, 0, /* 0xB0 */
- 0, 0x5A7A, 0, 0, 0x5B21, 0, 0, 0x465E, /* 0xC0 */
- 0, 0x5A7C, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0x5B23, 0, /* 0xD0 */
- 0, 0x3D6C, 0x5B24, 0, 0x4D4B, 0x4778, 0, 0, /* 0xD0 */
- 0x5B25, 0, 0, 0, 0, 0, 0x5B27, 0, /* 0xE0 */
- 0, 0x5B28, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x5B29, 0, 0x364A, 0x3148, 0x3939, 0x5B2A, 0, 0x5B2B, /* 0xF0 */
- 0x3D71, 0x4162, 0, 0, 0x5258, 0x413E, 0x413D, 0x4258 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_67[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3A47, 0, 0, 0x5072, 0, 0, 0, 0, /* 0x00 */
- 0x376E, 0x4D2D, 0, 0x4A7E, 0, 0x497E, 0, 0x5B2C, /* 0x00 */
- 0, 0, 0, 0, 0x3A73, 0x443F, 0x5B2D, 0x4F2F, /* 0x10 */
- 0, 0, 0, 0x4B3E, 0, 0x442B, 0x5B2E, 0x347C, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x5B2F, 0x5B30, /* 0x20 */
- 0x4C5A, 0, 0x4C24, 0x4B76, 0x4B5C, 0x3B25, 0x5B32, 0, /* 0x20 */
- 0, 0x3C6B, 0, 0, 0x4B51, 0, 0x5B34, 0x5B37, /* 0x30 */
- 0x5B36, 0, 0x3479, 0, 0, 0x3560, 0, 0x5B33, /* 0x30 */
- 0, 0x5B35, 0, 0, 0, 0, 0x5B38, 0, /* 0x40 */
- 0, 0x3F79, 0, 0, 0, 0, 0x4D7B, 0x3049, /* 0x40 */
- 0x3A60, 0x423C, 0, 0x3C5D, 0, 0, 0x3E73, 0, /* 0x50 */
- 0, 0x5B3B, 0, 0, 0x454E, 0, 0x5B39, 0x422B, /* 0x50 */
- 0x5B3A, 0x3E72, 0x4C5D, 0x5B3C, 0x5B3D, 0x4D68, 0, 0, /* 0x60 */
- 0, 0, 0x5B42, 0, 0, 0x393A, 0, 0x4755, /* 0x60 */
- 0x5B3F, 0x456C, 0x5A5E, 0x5A62, 0, 0x354F, 0, 0x4747, /* 0x70 */
- 0, 0, 0, 0, 0x5B41, 0, 0x3E3E, 0x4844, /* 0x70 */
- 0, 0, 0, 0, 0, 0x5B47, 0, 0x487A, /* 0x80 */
- 0, 0x5B3E, 0, 0x5B44, 0x5B43, 0, 0, 0, /* 0x80 */
- 0x404F, 0, 0, 0, 0, 0x4B6D, 0, 0x4E53, /* 0x90 */
- 0, 0, 0x4B67, 0, 0x324C, 0x3B5E, 0, 0, /* 0x90 */
- 0x4F48, 0x5B46, 0x3F75, 0, 0, 0, 0x5B45, 0, /* 0xA0 */
- 0, 0x5B40, 0, 0, 0, 0, 0, 0x384F, /* 0xA0 */
- 0, 0, 0, 0x5B4C, 0x5B4A, 0, 0x324D, 0x5B48, /* 0xB0 */
- 0x5B4E, 0x5B54, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x4248, 0, 0, 0x4A41, 0, 0x5B56, 0, /* 0xC0 */
- 0, 0, 0x4922, 0, 0, 0, 0x5B55, 0x4770, /* 0xC0 */
- 0x4B3F, 0x343B, 0, 0x4077, 0x3D40, 0, 0, 0, /* 0xD0 */
- 0x4453, 0, 0x4D2E, 0, 0, 0x5B51, 0x5B50, 0, /* 0xD0 */
- 0, 0, 0x5B52, 0, 0x5B4F, 0, 0, 0x5B57, /* 0xE0 */
- 0, 0x5B4D, 0, 0, 0x5B4B, 0, 0x5B53, 0x5B49, /* 0xE0 */
- 0, 0x436C, 0, 0x4C78, 0x3C46, 0x3A74, 0, 0, /* 0xF0 */
- 0, 0, 0, 0x3A3A, 0, 0, 0x4B6F, 0x3341 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_68[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x444E, 0x464A, 0x3149, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0x4072, 0, 0, 0x4034, 0x372A, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x5B59, 0, /* 0x10 */
- 0, 0x393B, 0x337C, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0x5B5B, 0x3374, 0x5B61, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x5B5E, 0, 0x4073, 0, 0, 0, /* 0x30 */
- 0x334B, 0x3A2C, 0, 0, 0x334A, 0x3A4F, 0, 0, /* 0x30 */
- 0x5B5C, 0x3765, 0x374B, 0x456D, 0, 0, 0x5B5A, 0, /* 0x40 */
- 0x3046, 0, 0, 0, 0, 0x5B5D, 0x5B5F, 0, /* 0x40 */
- 0x364D, 0x372C, 0, 0x343C, 0x354B, 0, 0, 0, /* 0x50 */
- 0, 0x5B62, 0, 0, 0x3A79, 0x4B71, 0, 0x3B37, /* 0x50 */
- 0, 0, 0, 0x5B63, 0, 0, 0, 0x4930, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0x5B6F, 0, 0x3233, 0x5B64, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x5B75, 0x5B65, /* 0x70 */
- 0, 0x4E42, 0, 0x5B6C, 0, 0x475F, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0x5B74, 0, 0x5B67, /* 0x80 */
- 0, 0, 0, 0x3034, 0x5B69, 0, 0, 0x393C, /* 0x90 */
- 0, 0, 0, 0x5B6B, 0, 0x5B6A, 0, 0x5B66, /* 0x90 */
- 0x5B71, 0, 0x3E3F, 0, 0, 0, 0x546D, 0x3868, /* 0xA0 */
- 0x4D7C, 0, 0, 0, 0, 0x5B68, 0, 0x4474, /* 0xA0 */
- 0x3323, 0x3A2D, 0, 0x5B60, 0, 0x5B70, 0x3361, 0, /* 0xB0 */
- 0, 0x5B6E, 0x5B72, 0, 0x456E, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x347E, 0, 0x5C32, 0, /* 0xC0 */
- 0, 0x4C49, 0x5B77, 0x347D, 0, 0x5B7E, 0, 0, /* 0xC0 */
- 0, 0, 0x4B40, 0, 0x5C21, 0x5C23, 0, 0x5C27, /* 0xD0 */
- 0x5B79, 0, 0x432A, 0, 0, 0, 0, 0x456F, /* 0xD0 */
- 0x5C2B, 0x5B7C, 0, 0x5C28, 0, 0, 0, 0x5C22, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0x3F39, 0x5C2C, /* 0xE0 */
- 0, 0, 0x4033, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0x5C2A, 0x343D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_69[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4F50, 0x5B76, 0, 0, 0x5C26, 0x3058, 0, 0, /* 0x00 */
- 0x5B78, 0, 0, 0x4C3A, 0x5B7D, 0x3F22, 0x4447, 0x5B73, /* 0x00 */
- 0, 0, 0x5C25, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0x3F7A, 0x5C2F, 0x3371, 0x3821, 0, 0, 0, /* 0x10 */
- 0, 0x5C31, 0x5B7A, 0x5C30, 0, 0x5C29, 0x5B7B, 0, /* 0x20 */
- 0x5C2D, 0, 0x5C2E, 0, 0, 0, 0, 0, /* 0x20 */
- 0x5C3F, 0, 0, 0, 0x464E, 0, 0x5C24, 0, /* 0x30 */
- 0, 0x5C3B, 0, 0, 0, 0x5C3D, 0, 0x4458, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x4D4C, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0x4976, 0x5C38, 0x424A, 0, 0, /* 0x50 */
- 0, 0x5C3E, 0x413F, 0, 0x5C35, 0x5C42, 0x5C41, 0, /* 0x50 */
- 0x466F, 0x5C40, 0x466A, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0x5C44, 0x5C37, 0, 0x3648, 0x5C3A, 0x3D5D, /* 0x60 */
- 0, 0, 0, 0x4760, 0x5C3C, 0x364B, 0, 0x5C34, /* 0x70 */
- 0x5C36, 0x5C33, 0, 0, 0x4F30, 0x335A, 0x5C39, 0, /* 0x70 */
- 0, 0x5C43, 0x3335, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0x3A67, 0, 0, 0, 0x315D, 0, /* 0x80 */
- 0, 0x5C54, 0, 0, 0x4F31, 0x5C57, 0, 0, /* 0x90 */
- 0, 0, 0, 0x3F3A, 0x5C56, 0, 0, 0, /* 0x90 */
- 0x5C55, 0, 0, 0, 0, 0, 0, 0x5C52, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0x5C46, 0, /* 0xA0 */
- 0, 0x5C63, 0x5C45, 0, 0x5C58, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x5C50, 0, 0, 0x5C4B, 0x5C48, /* 0xB0 */
- 0, 0x5C49, 0, 0x5C51, 0, 0, 0, 0x7422, /* 0xC0 */
- 0, 0, 0x5C4E, 0x393D, 0x4448, 0x4164, 0x5C4C, 0, /* 0xC0 */
- 0x5C47, 0, 0, 0x5C4A, 0, 0, 0, 0, /* 0xD0 */
- 0x4D4D, 0x4B6A, 0, 0, 0, 0x5C4F, 0x5C59, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0x5C61, /* 0xE0 */
- 0x5C5A, 0, 0, 0x5C67, 0, 0x5C65, 0, 0, /* 0xE0 */
- 0, 0, 0x5C60, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0x5C5F, 0, 0x4450, 0, 0x4165, 0, 0x5C5D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_6A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5C5B, 0, 0, 0x5C62, 0, 0, /* 0x00 */
- 0, 0, 0x5C68, 0x4875, 0x5C6E, 0, 0, 0, /* 0x00 */
- 0, 0, 0x5C69, 0x5C6C, 0x5C66, 0, 0, 0x4374, /* 0x10 */
- 0, 0x4938, 0, 0x5C5C, 0, 0, 0x5C64, 0x3E40, /* 0x10 */
- 0, 0x4C4F, 0x5C78, 0x5C6B, 0, 0, 0, 0, /* 0x20 */
- 0, 0x3822, 0x3223, 0x335F, 0, 0, 0x5C53, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0x3E41, 0x5C70, 0, /* 0x30 */
- 0x5C77, 0x3C79, 0x3372, 0, 0, 0x432E, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0x5C6D, 0, 0, 0x5C72, /* 0x40 */
- 0x5C76, 0, 0, 0x3636, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0x354C, 0x5C74, 0, 0, 0, 0, 0, 0x3521, /* 0x50 */
- 0, 0x464B, 0x5C73, 0, 0, 0, 0x5C75, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0x5C6F, 0, 0, 0, 0, 0, /* 0x70 */
- 0x5C71, 0, 0, 0, 0, 0, 0, 0x3360, /* 0x70 */
- 0x4349, 0, 0, 0, 0x5C7C, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0x5C7A, 0x3869, 0, /* 0x80 */
- 0x5C79, 0, 0, 0, 0, 0, 0, 0x5D21, /* 0x90 */
- 0, 0, 0, 0, 0x5B58, 0, 0, 0, /* 0x90 */
- 0x5C7B, 0, 0x5C7D, 0x5C7E, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x5D2C, 0, 0x5D28, 0, 0x5B6D, 0, /* 0xA0 */
- 0, 0, 0, 0x5D27, 0, 0, 0, 0, /* 0xB0 */
- 0x5D26, 0, 0, 0x5D23, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x5C6A, 0x5D25, 0x5D24, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x5D2A, 0, 0x4F26, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0x5D2D, 0x367B, 0, 0, 0x5D29, 0x5D2B, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x4827, 0, 0x5D2E, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0x5D32, 0x5D2F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_6B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4D73, 0x5D30, 0, 0, /* 0x00 */
- 0, 0, 0x5C5E, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0x5D33, 0, 0, 0, 0x5D34, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0x3135, 0, 0x5D36, /* 0x10 */
- 0x3767, 0x3C21, 0, 0x3655, 0, 0, 0, 0x3224, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x4D5F, 0, 0, 0, 0, 0x5D38, /* 0x30 */
- 0x5D37, 0x5D3A, 0x353D, 0, 0, 0x3656, 0x343E, 0, /* 0x30 */
- 0, 0, 0, 0x5D3D, 0, 0, 0, 0x5D3C, /* 0x40 */
- 0, 0x5D3E, 0, 0, 0x324E, 0, 0x4337, 0, /* 0x40 */
- 0x5D3F, 0, 0, 0x343F, 0x5D41, 0, 0, 0, /* 0x50 */
- 0, 0x5D40, 0, 0x5D42, 0, 0, 0, 0x5D43, /* 0x50 */
- 0, 0x5D44, 0x3B5F, 0x4035, 0x3A21, 0, 0x4970, 0, /* 0x60 */
- 0, 0x4A62, 0x4F44, 0, 0, 0, 0, 0x3B75, /* 0x60 */
- 0, 0, 0, 0x3A50, 0x4E72, 0, 0, 0, /* 0x70 */
- 0x5D45, 0x5D46, 0, 0x3B60, 0, 0, 0, 0x5D47, /* 0x70 */
- 0x5D48, 0, 0, 0x5D4A, 0x5D49, 0, 0x4B58, 0, /* 0x80 */
- 0, 0x3D5E, 0x3C6C, 0x3B44, 0, 0x5D4B, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0x5D4D, 0x3F23, 0, /* 0x90 */
- 0x5D4C, 0, 0, 0, 0, 0, 0x5D4E, 0, /* 0x90 */
- 0, 0, 0, 0, 0x5D4F, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x5D50, 0x5D51, 0, 0, 0, 0x5D52, /* 0xA0 */
- 0, 0x5D54, 0x5D53, 0x5D55, 0x3225, 0x434A, 0, 0x5D56, /* 0xB0 */
- 0, 0, 0x3B26, 0x334C, 0x5D57, 0, 0, 0x4542, /* 0xB0 */
- 0x544C, 0, 0, 0, 0, 0x3523, 0x5D58, 0, /* 0xC0 */
- 0, 0, 0, 0x5D59, 0, 0x4A6C, 0x4B68, 0, /* 0xC0 */
- 0, 0, 0x4647, 0x5D5A, 0x4866, 0, 0, 0, /* 0xD0 */
- 0x487B, 0, 0, 0x4C53, 0, 0, 0, 0x5D5B, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0x5D5D, 0x5D5C, 0, 0, 0x5D5F, /* 0xE0 */
- 0, 0, 0, 0x5D5E /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_6C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0x5D61, 0, 0, 0, 0, 0, 0, 0x3B61, /* 0x00 */
- 0, 0x4C31, 0, 0x5D62, 0x5D63, 0, 0, 0x3524, /* 0x10 */
- 0, 0, 0, 0x5D64, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0x5D66, 0x5D65, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0x3F65, 0, 0, 0x4939, /* 0x30 */
- 0x314A, 0, 0, 0, 0, 0, 0x4845, 0, /* 0x30 */
- 0x4475, 0x3D41, 0x3561, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0x4846, 0, /* 0x40 */
- 0x3C2E, 0, 0, 0, 0, 0x5D68, 0, 0x3440, /* 0x50 */
- 0, 0, 0x3178, 0, 0, 0x4672, 0x5D67, 0x393E, /* 0x50 */
- 0x4353, 0, 0x5D69, 0, 0, 0, 0, 0, /* 0x60 */
- 0x5D71, 0, 0x5D6A, 0, 0, 0, 0, 0, /* 0x60 */
- 0x4241, 0, 0x3562, 0x5D72, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0x3768, 0, 0, 0x3525, 0x5D70, 0, /* 0x70 */
- 0, 0x5D6E, 0x5D6B, 0x4D60, 0, 0, 0, 0, /* 0x80 */
- 0x4440, 0, 0, 0, 0x4659, 0x5D6C, 0, 0, /* 0x80 */
- 0x5D74, 0, 0x5D73, 0x3723, 0, 0, 0x322D, 0, /* 0x90 */
- 0, 0x3A3B, 0x5D6D, 0x5D6F, 0, 0, 0, 0, /* 0x90 */
- 0, 0x4B57, 0x4274, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x4B77, 0, 0, 0x5D7C, 0, /* 0xA0 */
- 0, 0x5D7D, 0, 0x324F, 0, 0, 0, 0, /* 0xB0 */
- 0x4A28, 0x4C7D, 0x5E21, 0x3C23, 0x3E42, 0x5D78, 0x5D7E, 0x3168, /* 0xB0 */
- 0, 0x3637, 0, 0, 0x5D75, 0x5D7A, 0, 0, /* 0xC0 */
- 0, 0x4074, 0x4771, 0, 0x4867, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0x5D77, 0, 0x4B21, 0, 0x5D79, /* 0xD0 */
- 0, 0x5E24, 0, 0x5E22, 0, 0x5D7B, 0, 0, /* 0xD0 */
- 0, 0x4B22, 0x4748, 0x3563, 0, 0x4525, 0, 0, /* 0xE0 */
- 0x436D, 0, 0x5E25, 0, 0, 0, 0, 0x5E23, /* 0xE0 */
- 0x4259, 0x5D76, 0, 0x314B /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_6D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0x4D4E, 0x5E30, 0, 0, 0, /* 0x00 */
- 0, 0, 0x5E2F, 0, 0, 0, 0, 0x4076, /* 0x10 */
- 0, 0x5E2C, 0, 0x4D6C, 0, 0, 0x4636, 0x5E26, /* 0x10 */
- 0, 0, 0, 0, 0, 0x4445, 0, 0, /* 0x20 */
- 0, 0x314C, 0x393F, 0x5E29, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x3D27, 0x5E2E, 0, 0x5E2D, 0x5E28, 0, /* 0x30 */
- 0x5E2B, 0, 0, 0x3368, 0, 0x5E2A, 0x4749, 0, /* 0x30 */
- 0, 0x4E2E, 0, 0, 0x3E74, 0x4075, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0x5E36, 0x5E34, 0, 0x494D, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0x5E31, 0x5E33, 0, 0x313A, 0, /* 0x60 */
- 0, 0x3940, 0x4F32, 0, 0x333D, 0, 0x4962, 0, /* 0x60 */
- 0, 0, 0, 0, 0x4D61, 0, 0, 0x3324, /* 0x70 */
- 0x3F3B, 0x5E35, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0x5E3A, 0, 0, /* 0x80 */
- 0x3E43, 0, 0, 0, 0x4D30, 0, 0x5E37, 0, /* 0x80 */
- 0, 0, 0, 0x5E32, 0, 0x5E38, 0, 0, /* 0x90 */
- 0, 0x4E5E, 0, 0x4573, 0x4642, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0x3336, /* 0xA0 */
- 0, 0, 0x3155, 0, 0, 0x5E3E, 0, 0, /* 0xB0 */
- 0x5E41, 0, 0, 0, 0x4E43, 0, 0, 0, /* 0xB0 */
- 0x4D64, 0, 0, 0, 0, 0x5E48, 0x5E42, 0x5E3F, /* 0xC0 */
- 0, 0, 0, 0x4E54, 0x5E45, 0, 0, 0, /* 0xC0 */
- 0, 0x3D4A, 0x5E47, 0, 0, 0x5E4C, 0, 0, /* 0xD0 */
- 0x4571, 0x5E4A, 0, 0, 0, 0, 0x5E44, 0, /* 0xD0 */
- 0, 0x4338, 0, 0, 0x5E4B, 0, 0x5E40, 0, /* 0xE0 */
- 0x5E46, 0, 0x5E4D, 0x307C, 0x5E43, 0, 0x5E4E, 0, /* 0xE0 */
- 0, 0x3F3C, 0, 0x3D5F, 0, 0x4A25, 0, 0x3A2E, /* 0xF0 */
- 0, 0x5E3B, 0x5E49, 0x453A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_6E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4036, 0, 0x3369, /* 0x00 */
- 0x3A51, 0x3E44, 0x5E3D, 0x3D42, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0x374C, 0, 0x5E3C, 0, 0, /* 0x10 */
- 0, 0x5E52, 0x3D6D, 0x383A, 0, 0x5E61, 0, 0x5E5B, /* 0x10 */
- 0x3574, 0x454F, 0, 0x5E56, 0x5E5F, 0x302F, 0x3132, 0, /* 0x20 */
- 0, 0x3239, 0, 0x5E58, 0x422C, 0x5E4F, 0x5E51, 0x3941, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0x5E62, 0, 0x5E5D, 0, 0, 0, 0x5E55, 0, /* 0x30 */
- 0, 0, 0, 0x5E5C, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x4C2B, 0, 0, 0x5E5A, 0x5E5E, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0x3850, 0, /* 0x50 */
- 0x3E45, 0, 0, 0x4339, 0, 0, 0, 0x5E54, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0x4D2F, /* 0x60 */
- 0, 0, 0, 0x5E57, 0, 0, 0x5E50, 0x4572, /* 0x60 */
- 0, 0, 0x5E53, 0, 0, 0, 0x5E59, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x4F51, 0x3C3E, /* 0x70 */
- 0x4B7E, 0, 0x5E63, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0x482E, 0, 0, 0x5E6F, /* 0x80 */
- 0x383B, 0, 0, 0, 0, 0, 0x3D60, 0, /* 0x90 */
- 0x5E65, 0, 0, 0, 0x4E2F, 0x3942, 0, 0x5E72, /* 0x90 */
- 0, 0, 0x306E, 0, 0, 0x5E70, 0, 0, /* 0xA0 */
- 0, 0, 0x5E64, 0, 0, 0, 0, 0x5E6A, /* 0xA0 */
- 0, 0, 0x5E6C, 0, 0, 0, 0x4D4F, 0x5E67, /* 0xB0 */
- 0, 0, 0x452E, 0, 0, 0x5E69, 0, 0, /* 0xB0 */
- 0, 0, 0x5E71, 0, 0x5E6B, 0x4C47, 0, 0, /* 0xC0 */
- 0, 0x5E66, 0, 0x3C22, 0x5E7E, 0, 0, 0, /* 0xC0 */
- 0, 0x336A, 0, 0x5E68, 0x5E6D, 0x5E6E, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0x426C, 0x425A, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0x5E76, 0, 0, 0x5E7C, /* 0xE0 */
- 0, 0, 0x5E7A, 0, 0x4529, 0, 0, 0x5F23, /* 0xF0 */
- 0x5E77, 0, 0, 0, 0, 0, 0x5E78, 0x5E60 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_6F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3579, 0x493A, 0, 0, 0, 0x3C3F, 0, /* 0x00 */
- 0, 0x3977, 0, 0, 0, 0, 0, 0x4F33, /* 0x00 */
- 0, 0x5E74, 0, 0x5F22, 0x3169, 0x4166, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0x4779, 0, 0x3441, 0x4E7A, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0x4C21, 0x4452, 0, 0, 0, /* 0x20 */
- 0, 0x5E7B, 0x5E7D, 0, 0, 0, 0, 0, /* 0x30 */
- 0x4132, 0, 0, 0, 0, 0, 0x5F21, 0x5E79, /* 0x30 */
- 0, 0x5E73, 0, 0, 0, 0x3443, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0x3769, 0, 0, 0, /* 0x50 */
- 0x5F2F, 0, 0, 0x5F2A, 0x4078, 0, 0, 0x3363, /* 0x50 */
- 0, 0, 0, 0, 0x3D61, 0, 0x5F33, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0x5F2C, 0x442C, 0x5F29, /* 0x60 */
- 0x4459, 0, 0, 0, 0x5F4C, 0, 0, 0, /* 0x70 */
- 0x5F26, 0, 0x5F25, 0, 0x5F2E, 0, 0, 0, /* 0x70 */
- 0x5F28, 0x5F27, 0x5F2D, 0, 0x4021, 0, 0x5F24, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0x5F30, 0, /* 0x80 */
- 0, 0x5F31, 0, 0, 0, 0, 0, 0x3442, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x5F36, 0, 0x5F35, 0x5F37, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x5F3A, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0x4543, 0, 0x5F34, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x5F38, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x3763, 0x4279, 0x5F32, 0x473B, 0, 0, 0x5F39, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0x5F3E, 0x5F3C, 0, 0, /* 0xD0 */
- 0x5F3F, 0, 0, 0x5F42, 0, 0, 0, 0x5F3B, /* 0xD0 */
- 0x396A, 0x4728, 0, 0, 0x5E39, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0x4D74, 0x5F3D, 0, 0x5F41, 0x4275, /* 0xE0 */
- 0, 0x5F40, 0, 0x5F2B, 0, 0, 0x6F69, 0, /* 0xF0 */
- 0, 0, 0x5F45, 0, 0, 0, 0x5F49 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_70[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5F47, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0x5F43, 0, 0x5F44, 0, 0, 0, 0x5F48, /* 0x00 */
- 0, 0x5F46, 0, 0, 0, 0x494E, 0, 0, /* 0x10 */
- 0x5F4E, 0, 0x5F4B, 0x5F4A, 0, 0x5F4D, 0x4654, 0x5F4F, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x4375, 0x426D, /* 0x20 */
- 0, 0, 0, 0, 0x4025, 0, 0, 0, /* 0x20 */
- 0x5F50, 0, 0x5F52, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0x5F51, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0x5E75, 0, 0, 0, /* 0x40 */
- 0, 0x5F53, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0x4667, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0x5F54, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0x3250, 0, 0, 0, 0x4574, /* 0x60 */
- 0x3325, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0x3564, 0, 0, 0, 0x3C5E, 0x3A52, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x4F27, 0x3F66, 0, 0, 0, 0x316A, 0, /* 0x80 */
- 0, 0, 0x5F56, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x5F55, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x5F59, 0x433A, 0x5F5C, 0x5F57, /* 0xA0 */
- 0, 0, 0, 0x5F5B, 0, 0, 0, 0, /* 0xB0 */
- 0x5F5A, 0x4540, 0x3059, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0x4E75, 0, 0, 0x5F5E, 0, 0, 0, 0x3128, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x5F60, 0, 0, 0, 0x5F5F, 0, 0x5F5D, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0x5F58, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0x4B23, 0, 0, 0, 0x5F62 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_71[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0x5F61, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0x316B, 0, 0, 0, /* 0x10 */
- 0, 0x5F64, 0x4A32, 0, 0x5F63, 0, 0, 0, /* 0x10 */
- 0, 0x4C35, 0, 0, 0, 0, 0x3E47, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0x4133, 0, /* 0x30 */
- 0, 0, 0, 0, 0x3E46, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0x4E7B, 0, 0, 0x5F6A, 0, 0x4079, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0x5F66, 0x5F6B, 0, /* 0x50 */
- 0, 0x316C, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0x5F69, 0, 0x4761, 0x5F65, 0x5F68, 0x3E48, /* 0x60 */
- 0, 0x4851, 0, 0, 0x5F6C, 0, 0x3C51, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0x407A, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0x5F6F, 0, 0, 0, /* 0x80 */
- 0x5F67, 0, 0x3727, 0, 0, 0, 0, 0x5F6D, /* 0x80 */
- 0, 0, 0, 0, 0x4D50, 0x5F70, 0, 0, /* 0x90 */
- 0, 0x7426, 0, 0, 0, 0, 0, 0x3D4F, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x5F71, 0, 0, 0, 0x5F72, 0, 0, 0, /* 0xA0 */
- 0, 0x472E, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x5F74, 0, 0, 0, 0, 0x5F75, 0, /* 0xB0 */
- 0, 0, 0, 0x4733, 0, 0, 0, 0, /* 0xC0 */
- 0x4575, 0x5F77, 0, 0, 0, 0, 0x5F79, 0, /* 0xC0 */
- 0x4E55, 0, 0x5F76, 0, 0x5F78, 0x316D, 0, 0x5F73, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0x535B, /* 0xD0 */
- 0x5F7A, 0, 0, 0, 0, 0x4167, 0x3B38, 0x5F7C, /* 0xE0 */
- 0, 0, 0, 0, 0x5F7B, 0x3F24, 0x5259, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0x5F7D, 0, 0, /* 0xF0 */
- 0, 0x6021, 0, 0x5F6E, 0x5F7E, 0, 0, 0x6022 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_72[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x477A, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0x6023, 0, 0, /* 0x00 */
- 0x6024, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0x6025, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0x6026, 0, 0x445E, 0, 0x6028, 0x6027, 0, 0, /* 0x20 */
- 0x6029, 0, 0x602A, 0, 0, 0x3C5F, 0x4963, 0, /* 0x30 */
- 0, 0, 0x4C6C, 0x602B, 0x602C, 0x4156, 0x3C24, 0x602D, /* 0x30 */
- 0x602E, 0, 0, 0, 0, 0, 0x602F, 0x4A52, /* 0x40 */
- 0x4847, 0, 0, 0x6030, 0x4757, 0, 0, 0, /* 0x40 */
- 0, 0, 0x442D, 0, 0, 0, 0, 0, /* 0x50 */
- 0x6031, 0x3267, 0, 0x356D, 0, 0x4C46, 0, 0x4C36, /* 0x50 */
- 0, 0x3234, 0x4F34, 0, 0, 0, 0, 0x4B52, /* 0x60 */
- 0, 0x4A2A, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0x4037, 0, 0x6032, 0, 0, 0, /* 0x70 */
- 0, 0x4643, 0, 0, 0, 0x3823, 0x6033, 0, /* 0x70 */
- 0x3A54, 0x6035, 0x6034, 0, 0, 0, 0, 0x6036, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0x6037, 0, 0, 0, 0x6038, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x353E, 0, 0x6039, 0, 0, 0, 0, 0x603A, /* 0xA0 */
- 0, 0, 0, 0, 0x3824, 0, 0, 0x4848, /* 0xA0 */
- 0, 0, 0x603C, 0, 0, 0, 0x3E75, 0, /* 0xB0 */
- 0, 0x603B, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0x3638, 0x603D, 0x603F, 0, 0x603E, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0x6040, 0, /* 0xC0 */
- 0x3851, 0, 0x6041, 0, 0, 0, 0, 0x3669, /* 0xD0 */
- 0, 0x4140, 0, 0x397D, 0, 0, 0, 0, /* 0xD0 */
- 0x6043, 0x6044, 0x6042, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0x3C6D, 0, 0, 0x4648, 0x3639, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0x6046, /* 0xF0 */
- 0x432C, 0x6045, 0, 0, 0x4F35, 0x4762 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_73[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0x6049, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0x604B, 0x6048, /* 0x10 */
- 0, 0, 0, 0x4C54, 0x604A, 0x604C, 0, 0x4E44, /* 0x10 */
- 0, 0, 0, 0, 0, 0x6050, 0, 0, /* 0x20 */
- 0, 0x604F, 0x4376, 0x472D, 0, 0, 0x3825, 0x604E, /* 0x20 */
- 0, 0, 0, 0, 0x604D, 0, 0x4D31, 0x4D32, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0x6051, 0x316E, /* 0x30 */
- 0, 0, 0, 0, 0x3976, 0x3B62, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0x6052, 0x6053, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0x6055, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0x3D43, 0, 0, 0, 0, /* 0x60 */
- 0x6057, 0, 0x6056, 0, 0, 0, 0, 0, /* 0x60 */
- 0x6058, 0, 0x334D, 0, 0, 0x605A, 0, 0, /* 0x70 */
- 0x6059, 0, 0x605C, 0x605B, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0x383C, 0, 0, 0x4E28, /* 0x80 */
- 0, 0x364C, 0, 0x3226, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0x366A, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0x3461, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x4E68, 0x605E, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x6060, 0, 0, 0, 0, /* 0xB0 */
- 0x6061, 0, 0x3251, 0, 0, 0, 0, 0, /* 0xC0 */
- 0x605D, 0, 0x3B39, 0, 0, 0x4441, 0x605F, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0x6064, 0, /* 0xD0 */
- 0x3C6E, 0, 0, 0, 0, 0x6062, 0, 0, /* 0xE0 */
- 0, 0, 0x373E, 0, 0, 0x4849, 0x6063, 0, /* 0xE0 */
- 0, 0x607E, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0x6069, 0, 0, 0, 0, 0, 0x383D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_74[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3565, 0, 0x6066, 0x4D7D, 0, /* 0x00 */
- 0, 0x4E30, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x4276, 0, 0, 0x6068, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x606A, 0x4E56, 0x3657, 0x487C, 0x474A, 0, /* 0x30 */
- 0, 0, 0x606B, 0, 0, 0, 0, 0x606D, /* 0x30 */
- 0, 0x6070, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0x606C, 0, 0, /* 0x50 */
- 0, 0x606F, 0x386A, 0x314D, 0x6071, 0, 0x3F70, 0x606E, /* 0x50 */
- 0x4E5C, 0, 0, 0x6074, 0x7424, 0, 0, 0, /* 0x60 */
- 0, 0x6072, 0x6075, 0, 0, 0, 0, 0x6067, /* 0x60 */
- 0x6073, 0, 0, 0x3A3C, 0, 0, 0x6076, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x6077, 0, /* 0x70 */
- 0, 0, 0, 0x4D7E, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x6078, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0x6079, 0, /* 0x90 */
- 0, 0, 0x6065, 0, 0, 0, 0, 0x607A, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x3444, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x3C25, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0x607B, 0, 0, 0, 0, 0x607C, /* 0xC0 */
- 0, 0, 0, 0, 0x607D, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0x313B, 0, 0, 0, /* 0xD0 */
- 0x6121, 0, 0x493B, 0x6122, 0, 0, 0x3424, 0x6123, /* 0xE0 */
- 0, 0x6124, 0, 0, 0, 0, 0x6125, 0, /* 0xE0 */
- 0x6127, 0x6128, 0x6126, 0, 0, 0, 0x4953, 0x612A, /* 0xF0 */
- 0x6129 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_75[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x612C, 0x612B, 0x612D, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0x612E, 0x6130, 0x612F, 0, /* 0x00 */
- 0, 0x3979, 0, 0x6132, 0, 0x6131, 0, 0, /* 0x10 */
- 0x3445, 0, 0x3F53, 0, 0x453C, 0, 0x6133, 0x4038, /* 0x10 */
- 0, 0, 0, 0x3B3A, 0, 0x3179, 0x6134, 0, /* 0x20 */
- 0x4D51, 0, 0, 0x4A63, 0x6135, 0, 0, 0, /* 0x20 */
- 0x4544, 0x4D33, 0x3943, 0x3F3D, 0, 0, 0, 0x434B, /* 0x30 */
- 0x5234, 0, 0x442E, 0x3268, 0x6136, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0x6137, 0, 0x613C, 0, /* 0x40 */
- 0, 0x613A, 0x6139, 0x5A42, 0x3326, 0x6138, 0, 0x305A, /* 0x40 */
- 0, 0x482A, 0, 0, 0x484A, 0, 0, 0, /* 0x50 */
- 0, 0x4E31, 0x613D, 0x613B, 0x435C, 0x4026, 0, 0, /* 0x50 */
- 0x482B, 0, 0x492D, 0, 0x613F, 0x4E2C, 0x374D, 0x6140, /* 0x60 */
- 0, 0x613E, 0x4856, 0x6141, 0, 0x6142, 0, 0, /* 0x60 */
- 0x305B, 0, 0, 0x3E76, 0x6147, 0, 0x6144, 0x466D, /* 0x70 */
- 0x6143, 0, 0, 0, 0, 0, 0, 0x3526, /* 0x70 */
- 0, 0, 0x614A, 0, 0, 0, 0x6145, 0x6146, /* 0x80 */
- 0, 0x6149, 0x6148, 0x4925, 0, 0, 0x4142, 0x4141, /* 0x80 */
- 0, 0x353F, 0, 0, 0x614B, 0, 0, 0, /* 0x90 */
- 0, 0, 0x614C, 0, 0, 0x614D, 0, 0, /* 0x90 */
- 0, 0, 0, 0x614F, 0, 0x614E, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x3156, 0, 0, 0, 0, /* 0xA0 */
- 0, 0x6157, 0x4868, 0x6151, 0, 0x6153, 0, 0, /* 0xB0 */
- 0x6155, 0x3F3E, 0, 0, 0x6156, 0x6154, 0x3C40, 0, /* 0xB0 */
- 0, 0, 0x6150, 0x6152, 0, 0x4942, 0, 0x3E49, /* 0xC0 */
- 0, 0, 0x6159, 0, 0, 0x6158, 0, 0, /* 0xC0 */
- 0, 0, 0x615A, 0, 0x3C26, 0x3A2F, 0, 0, /* 0xD0 */
- 0x4577, 0x615B, 0, 0x444B, 0, 0, 0x615D, 0, /* 0xD0 */
- 0, 0, 0x4E21, 0x615C, 0, 0, 0, 0, /* 0xE0 */
- 0, 0x4169, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x6162, 0, 0x6164, 0x6165, 0x4354, 0, 0, 0, /* 0xF0 */
- 0, 0, 0x6163, 0, 0x6160, 0, 0x615E, 0x615F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_76[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6161, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0x6168, 0, 0x6166, 0, 0x6167, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0x6169, /* 0x10 */
- 0x616B, 0x616C, 0x616D, 0, 0x616E, 0, 0, 0x616A, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0x6170, 0, 0, 0, 0x616F, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0x6171, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0x4E45, 0, 0, 0, 0x6174, 0x6172, /* 0x40 */
- 0x6173, 0, 0, 0, 0x3462, 0, 0, 0, /* 0x40 */
- 0, 0, 0x4C7E, 0, 0, 0, 0x4A4A, 0, /* 0x50 */
- 0x6176, 0, 0, 0, 0x6175, 0, 0, 0, /* 0x50 */
- 0, 0x6177, 0x6178, 0, 0, 0, 0, 0x617C, /* 0x60 */
- 0x6179, 0x617A, 0x617B, 0, 0x617D, 0, 0, 0, /* 0x60 */
- 0x617E, 0, 0x6221, 0, 0, 0, 0x6222, 0, /* 0x70 */
- 0x6223, 0, 0x482F, 0x4550, 0x6224, 0x4772, 0x4934, 0, /* 0x70 */
- 0x6225, 0, 0, 0x6226, 0x452A, 0, 0x3327, 0x3944, /* 0x80 */
- 0x6227, 0, 0, 0x6228, 0, 0, 0x6229, 0, /* 0x80 */
- 0x3B29, 0, 0, 0x622B, 0, 0, 0x622A, 0, /* 0x90 */
- 0, 0x622C, 0x622D, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0x4869, 0, /* 0xA0 */
- 0x622E, 0, 0, 0, 0x622F, 0, 0, 0x7369, /* 0xB0 */
- 0x6230, 0x6231, 0x6232, 0, 0, 0, 0, 0x3B2E, /* 0xB0 */
- 0, 0, 0x6233, 0x4756, 0, 0, 0x4B5F, 0, /* 0xC0 */
- 0x314E, 0, 0x3157, 0, 0, 0x6234, 0, 0, /* 0xC0 */
- 0, 0, 0x6236, 0, 0, 0, 0x6235, 0x4570, /* 0xD0 */
- 0, 0, 0, 0x4039, 0x5D39, 0, 0x6237, 0x4C41, /* 0xD0 */
- 0, 0x6238, 0, 0x3446, 0x4857, 0x6239, 0, 0x623A, /* 0xE0 */
- 0, 0, 0x623B, 0, 0, 0, 0x4C5C, 0, /* 0xE0 */
- 0, 0, 0x4C55, 0, 0x443E, 0, 0, 0, /* 0xF0 */
- 0x416A, 0, 0, 0x623D, 0, 0, 0x3D62 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_77[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3E4A, 0, 0, 0x6240, 0, 0, 0x623F, /* 0x00 */
- 0x623E, 0x487D, 0, 0x3447, 0x3829, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0x6246, 0, 0, 0x6243, 0x3F3F, /* 0x10 */
- 0x4C32, 0, 0, 0, 0x6242, 0x6244, 0x6245, 0, /* 0x20 */
- 0, 0x6241, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0x6247, /* 0x30 */
- 0x6248, 0, 0x442F, 0, 0x3463, 0, 0, 0, /* 0x30 */
- 0x4365, 0, 0, 0, 0, 0, 0, 0x6249, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0x624A, 0x624D, 0, 0, 0, 0, /* 0x50 */
- 0, 0x3F67, 0, 0x4644, 0, 0x624E, 0x4B53, 0, /* 0x60 */
- 0x624B, 0, 0, 0x624C, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x6251, 0, 0, 0, 0, 0x6250, 0x624F, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x6253, 0, 0, 0x6252, 0, /* 0x80 */
- 0, 0x6254, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0x6256, 0, /* 0x90 */
- 0x6255, 0, 0, 0, 0, 0x4A4D, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x3D56, 0x4E46, 0, 0, /* 0xA0 */
- 0x6257, 0, 0, 0x4637, 0, 0, 0x6258, 0, /* 0xB0 */
- 0, 0x6259, 0, 0x625D, 0x625B, 0x625C, 0, 0x625A, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0x625E, /* 0xC0 */
- 0, 0, 0, 0, 0, 0x625F, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0x6260, /* 0xD0 */
- 0, 0, 0x6261, 0x4C37, 0x6262, 0, 0, 0, /* 0xD0 */
- 0, 0, 0x4C70, 0x6263, 0, 0x434E, 0, 0x476A, /* 0xE0 */
- 0, 0x366B, 0, 0, 0, 0x433B, 0x6264, 0x363A, /* 0xE0 */
- 0, 0, 0, 0x4050, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0x6265 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_78[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3A3D, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0x6266, 0, 0, 0, /* 0x00 */
- 0, 0, 0x6267, 0, 0x3826, 0x3A55, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0x6269, 0, 0, 0, 0, 0x4556, 0x3A56, 0x354E, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x4B24, 0, 0x474B, 0, 0, 0, /* 0x30 */
- 0, 0, 0x4557, 0, 0, 0, 0, 0x395C, /* 0x30 */
- 0, 0, 0, 0, 0, 0x626B, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0x3E4B, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0x4E32, 0x3945, 0, 0, 0x3827, /* 0x60 */
- 0, 0, 0x4823, 0, 0x626D, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0x626F, 0, 0, 0, /* 0x70 */
- 0, 0x386B, 0, 0, 0, 0, 0x626E, 0x4476, /* 0x80 */
- 0, 0, 0, 0, 0x6271, 0x3337, 0x626C, 0, /* 0x80 */
- 0, 0x486A, 0, 0x3130, 0, 0x3A6C, 0, 0x4F52, /* 0x90 */
- 0, 0, 0x6270, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0x6272, 0, 0, 0, 0x4A4B, /* 0xA0 */
- 0, 0x4059, 0x6274, 0, 0, 0, 0, 0x6275, /* 0xA0 */
- 0, 0, 0, 0, 0, 0x6273, 0, 0, /* 0xB0 */
- 0, 0, 0x334E, 0, 0x627B, 0, 0x627A, 0, /* 0xB0 */
- 0, 0x3C27, 0, 0, 0, 0x627C, 0x6277, 0, /* 0xC0 */
- 0, 0, 0x627D, 0x6278, 0, 0, 0, 0, /* 0xC0 */
- 0x4858, 0x6276, 0, 0, 0x6279, 0, 0, 0, /* 0xD0 */
- 0, 0, 0x6322, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0x6321, /* 0xE0 */
- 0x4B61, 0, 0, 0, 0x627E, 0, 0, 0x306B, /* 0xE0 */
- 0, 0, 0, 0, 0x6324, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0x6323 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_79[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3E4C, 0, 0, 0, 0, 0, 0x6325, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0x4143, 0, /* 0x00 */
- 0, 0x6327, 0x6326, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0x6328, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x6268, 0, /* 0x20 */
- 0, 0, 0x626A, 0x632A, 0x6329, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0x3C28, 0, 0x4E69, 0, 0x3C52, 0, /* 0x30 */
- 0x632B, 0x3737, 0, 0, 0, 0, 0, 0x3540, /* 0x40 */
- 0x3527, 0x3B63, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0x4D34, 0, 0, 0x6331, 0, 0x6330, 0x4144, 0x632D, /* 0x50 */
- 0, 0, 0x632F, 0, 0, 0x3D4B, 0x3F40, 0x632E, /* 0x50 */
- 0x632C, 0, 0x472A, 0, 0, 0x3E4D, 0, 0, /* 0x60 */
- 0x493C, 0, 0, 0, 0, 0x3A57, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0x4578, /* 0x70 */
- 0, 0, 0x6332, 0, 0, 0, 0, 0x6333, /* 0x70 */
- 0x6349, 0x3658, 0, 0, 0x4F3D, 0x4135, 0, 0, /* 0x80 */
- 0, 0, 0x6334, 0, 0, 0x3252, 0x4477, 0x4A21, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0x6335, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0x357A, 0x6336, /* 0xA0 */
- 0, 0, 0x6338, 0, 0, 0, 0x6339, 0, /* 0xA0 */
- 0x4729, 0, 0, 0x633A, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x633B, 0x633C, 0, 0, 0x3659, 0x3253, 0x4645, /* 0xB0 */
- 0x3D28, 0x3B64, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x633D, 0, 0x3D29, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x324A, 0x4943, 0, 0, 0x633E, 0, 0, /* 0xD0 */
- 0x486B, 0, 0, 0, 0, 0, 0, 0x4145, /* 0xD0 */
- 0, 0x6341, 0, 0x6342, 0x4769, 0, 0x3F41, 0x633F, /* 0xE0 */
- 0, 0x4361, 0, 0, 0x6340, 0, 0, 0, /* 0xE0 */
- 0x3E4E, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0x305C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_7A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3529, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0x6343, 0, 0, 0x4478, 0, 0x6344, 0x4047, 0, /* 0x00 */
- 0, 0, 0, 0, 0x4C2D, 0, 0, 0x4923, /* 0x10 */
- 0x6345, 0x6346, 0x4355, 0, 0x4E47, 0, 0, 0x6348, /* 0x10 */
- 0x6347, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0x3C6F, 0, /* 0x20 */
- 0, 0x634A, 0x3070, 0, 0, 0, 0, 0x634D, /* 0x30 */
- 0, 0, 0, 0x634B, 0x3254, 0x374E, 0x634C, 0x3946, /* 0x30 */
- 0x3972, 0, 0x4A66, 0x634E, 0, 0, 0x4B54, 0, /* 0x40 */
- 0, 0x6350, 0, 0, 0, 0x4051, 0x314F, 0x323A, /* 0x40 */
- 0x302C, 0, 0, 0, 0, 0, 0, 0x634F, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0x6351, 0x6352, 0x3E77, 0, 0, 0, 0, /* 0x60 */
- 0, 0x6353, 0, 0x334F, 0, 0, 0, 0, /* 0x60 */
- 0x6355, 0, 0, 0, 0x376A, 0, 0x3566, 0, /* 0x70 */
- 0, 0x6356, 0x3675, 0, 0, 0x6357, 0, 0x407C, /* 0x70 */
- 0, 0x464D, 0, 0x4060, 0x3A75, 0, 0, 0, /* 0x80 */
- 0x6358, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0x4362, 0x416B, 0, 0x635A, 0x635C, 0x6359, /* 0x90 */
- 0x635B, 0, 0, 0, 0, 0, 0, 0x3722, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0x635D, 0x3726, 0, 0, 0, 0x3567, 0x4D52, /* 0xA0 */
- 0x635F, 0, 0, 0, 0, 0, 0x6360, 0, /* 0xB0 */
- 0, 0, 0x312E, 0, 0, 0, 0, 0x6363, /* 0xB0 */
- 0, 0, 0, 0x3376, 0x6362, 0x6361, 0, 0x6365, /* 0xC0 */
- 0x635E, 0, 0x6366, 0x4E29, 0, 0x6367, 0, 0x6368, /* 0xC0 */
- 0, 0, 0x5474, 0x636A, 0, 0x6369, 0, 0, /* 0xD0 */
- 0, 0x636B, 0x636C, 0, 0x4E35, 0x636D, 0, 0x706F, /* 0xD0 */
- 0x3E4F, 0x636E, 0x636F, 0x3D57, 0, 0x4638, 0x6370, 0, /* 0xE0 */
- 0, 0, 0x4328, 0, 0, 0x6371, 0, 0x433C, /* 0xE0 */
- 0x6372, 0, 0, 0, 0, 0, 0x3625, 0, /* 0xF0 */
- 0x513F, 0x435D, 0x3C33, 0, 0, 0, 0, 0x3448 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_7B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6373, 0, 0x6422, 0, 0x6376, 0, /* 0x00 */
- 0x3568, 0, 0x6375, 0x6424, 0, 0, 0, 0x6374, /* 0x00 */
- 0, 0x3E50, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0x6378, 0x6379, 0, 0x452B, 0, 0, 0x637A, 0, /* 0x10 */
- 0x335E, 0, 0, 0, 0, 0x3F5A, 0x4964, 0, /* 0x20 */
- 0x637C, 0, 0, 0, 0x4268, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0x6377, 0, 0x637B, 0x637D, 0, /* 0x30 */
- 0, 0x3A7B, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0x6426, 0x492E, 0, /* 0x40 */
- 0x4826, 0x4579, 0, 0x365A, 0x6425, 0x6423, 0, 0x4835, /* 0x40 */
- 0x637E, 0x435E, 0x457B, 0, 0x457A, 0, 0x3A76, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0x6438, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0x6428, 0, 0x642A, /* 0x60 */
- 0, 0, 0, 0, 0x642D, 0, 0x642E, 0, /* 0x60 */
- 0x642B, 0x642C, 0, 0, 0x6429, 0x6427, 0, 0, /* 0x70 */
- 0, 0, 0x6421, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x4A4F, 0x3255, /* 0x80 */
- 0, 0, 0, 0x6435, 0, 0x6432, 0, 0x6437, /* 0x80 */
- 0, 0, 0x6436, 0, 0x4773, 0x4C27, 0, 0x3B3B, /* 0x90 */
- 0x6430, 0x6439, 0x6434, 0, 0x6433, 0x642F, 0, 0x6431, /* 0x90 */
- 0, 0x3449, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x433D, 0, 0, 0x407D, 0, 0, /* 0xA0 */
- 0, 0x4822, 0, 0, 0x643E, 0, 0, 0, /* 0xB0 */
- 0x4824, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x4061, 0x643B, 0, 0, 0x484F, 0, 0x643F, 0x4A53, /* 0xC0 */
- 0, 0x435B, 0, 0x643A, 0x643C, 0, 0, 0x643D, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0x6440, 0, 0, /* 0xD0 */
- 0x3C44, 0, 0, 0, 0x4646, 0x6445, 0x6444, 0, /* 0xE0 */
- 0, 0x6441, 0, 0, 0, 0x4F36, 0, 0, /* 0xE0 */
- 0, 0, 0, 0x644A, 0, 0, 0x644E, 0x644B /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_7C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6447, 0, 0, 0, 0, 0, 0, 0x6448, /* 0x00 */
- 0, 0, 0, 0, 0, 0x644D, 0, 0, /* 0x00 */
- 0, 0x6442, 0x5255, 0x6449, 0x6443, 0, 0, 0x644C, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0x6452, /* 0x10 */
- 0, 0x344A, 0, 0x644F, 0, 0, 0, 0x6450, /* 0x20 */
- 0, 0, 0x6451, 0x6454, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0x6453, /* 0x30 */
- 0x4876, 0, 0, 0, 0, 0x6455, 0x4E7C, 0x4A6D, /* 0x30 */
- 0x645A, 0, 0, 0x6457, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0x6456, 0x4052, 0, 0x6459, /* 0x40 */
- 0x645B, 0, 0, 0, 0x6458, 0, 0x645F, 0, /* 0x50 */
- 0x645C, 0, 0, 0, 0, 0, 0, 0x645D, /* 0x50 */
- 0x6446, 0, 0, 0, 0x645E, 0x6460, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0x6461, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0x4A46, 0, 0x6462, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x4C62, 0, /* 0x70 */
- 0, 0x364E, 0x3729, 0x6463, 0, 0, 0, 0, /* 0x80 */
- 0, 0x4A34, 0, 0x3F68, 0, 0x4C30, 0, 0, /* 0x80 */
- 0x6464, 0, 0x4E33, 0, 0, 0x4774, 0, 0x4146, /* 0x90 */
- 0x4734, 0, 0, 0x3D4D, 0, 0, 0, 0x3040, /* 0x90 */
- 0, 0x6469, 0x6467, 0, 0x6465, 0x3421, 0, 0x3E51, /* 0xA0 */
- 0x646A, 0, 0, 0x6468, 0, 0x6466, 0x646E, 0, /* 0xA0 */
- 0, 0x646D, 0x646C, 0x646B, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x646F, 0, 0, 0, 0x6470, 0x403A, 0, /* 0xB0 */
- 0x6471, 0, 0x6473, 0, 0, 0x6472, 0, 0, /* 0xC0 */
- 0, 0, 0x3852, 0, 0, 0, 0x4138, 0, /* 0xC0 */
- 0, 0, 0x6475, 0, 0, 0, 0x457C, 0, /* 0xD0 */
- 0x6474, 0, 0, 0, 0x6476, 0, 0x4A35, 0x416C, /* 0xD0 */
- 0x3947, 0, 0x6477, 0, 0, 0, 0, 0x4E48, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0x6479, /* 0xE0 */
- 0, 0, 0x647A, 0, 0x647B, 0, 0x647C, 0, /* 0xF0 */
- 0x3B65, 0, 0x647D, 0x374F, 0, 0, 0x356A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_7D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x352A, 0, 0x6521, 0, 0x4C73, 0x3948, 0x647E, 0, /* 0x00 */
- 0, 0, 0x6524, 0x4C66, 0, 0x473C, 0, 0, /* 0x00 */
- 0x4933, 0, 0, 0, 0x3D63, 0x6523, 0, 0x3C53, /* 0x10 */
- 0x3949, 0x3B66, 0x3569, 0x4A36, 0x6522, 0, 0, 0, /* 0x10 */
- 0x4147, 0x4B42, 0x3A77, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0x3B67, 0x445D, 0, 0x6527, 0x4E5F, /* 0x20 */
- 0x3A59, 0, 0x6528, 0x3F42, 0, 0x652A, 0, 0, /* 0x30 */
- 0, 0x3E52, 0x3A30, 0, 0, 0, 0, 0x6529, /* 0x30 */
- 0, 0, 0x3D2A, 0x383E, 0x4148, 0x6525, 0x652B, 0, /* 0x40 */
- 0, 0, 0, 0x6526, 0x3750, 0, 0x652E, 0x6532, /* 0x40 */
- 0x376B, 0, 0, 0, 0, 0, 0x652D, 0, /* 0x50 */
- 0, 0, 0, 0x6536, 0, 0, 0x394A, 0, /* 0x50 */
- 0, 0x4D6D, 0x303C, 0x6533, 0, 0, 0x356B, 0, /* 0x60 */
- 0x6530, 0, 0, 0, 0, 0, 0x6531, 0, /* 0x60 */
- 0, 0x457D, 0x652F, 0x652C, 0, 0x3328, 0x4064, 0, /* 0x70 */
- 0, 0x3828, 0, 0, 0, 0x6538, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x6535, 0, 0, 0, 0, 0, 0x6537, /* 0x80 */
- 0, 0, 0, 0x6534, 0, 0, 0, 0, /* 0x90 */
- 0, 0x3751, 0x4233, 0x6539, 0x416E, 0, 0, 0x6546, /* 0x90 */
- 0, 0, 0x6542, 0x653C, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x6540, 0x3C7A, 0x305D, 0x653B, 0x6543, /* 0xA0 */
- 0x6547, 0x394B, 0x4C56, 0, 0x4456, 0x653D, 0, 0, /* 0xB0 */
- 0x6545, 0, 0x653A, 0x433E, 0, 0x653F, 0x303D, 0x4C4A, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0x653E, /* 0xC0 */
- 0, 0, 0x365B, 0x486C, 0, 0, 0, 0x416D, /* 0xC0 */
- 0, 0x4E50, 0x3D6F, 0, 0, 0x656E, 0, 0, /* 0xD0 */
- 0x6548, 0, 0x407E, 0, 0x6544, 0x6549, 0x654B, 0, /* 0xD0 */
- 0x4479, 0x654E, 0, 0, 0x654A, 0, 0, 0, /* 0xE0 */
- 0x4A54, 0x344B, 0, 0, 0x4C4B, 0, 0, 0x305E, /* 0xE0 */
- 0, 0, 0x654D, 0, 0x4E7D, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0x654C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_7E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x316F, 0, 0, 0x466C, 0x654F, 0, 0, /* 0x00 */
- 0, 0x6556, 0x6550, 0x6557, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0x6553, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0x477B, 0, 0, 0x3C4A, 0x6555, /* 0x10 */
- 0, 0x6552, 0x6558, 0x6551, 0, 0, 0x3D44, 0, /* 0x20 */
- 0, 0, 0, 0x4B25, 0, 0, 0x3D4C, 0, /* 0x20 */
- 0, 0x6554, 0x6560, 0, 0, 0x655C, 0, 0x655F, /* 0x30 */
- 0, 0x655D, 0x6561, 0x655B, 0, 0x6541, 0x4053, 0, /* 0x30 */
- 0, 0x484B, 0, 0x655E, 0, 0, 0x6559, 0, /* 0x40 */
- 0, 0, 0x4121, 0x3752, 0, 0x3D2B, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0x3F25, 0x4136, 0x6564, 0, /* 0x50 */
- 0, 0x6566, 0x6567, 0, 0, 0x6563, 0x6565, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0x655A, 0x6562, /* 0x60 */
- 0, 0x656A, 0x6569, 0, 0, 0x4B7A, 0, 0, /* 0x60 */
- 0x372B, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x6568, 0, 0x656C, 0x656B, 0x656F, 0, 0x6571, /* 0x70 */
- 0, 0, 0x3B3C, 0x656D, 0, 0, 0, 0, /* 0x80 */
- 0x6572, 0x6573, 0, 0, 0x6574, 0, 0x657A, 0x453B, /* 0x80 */
- 0x6576, 0, 0x6575, 0x6577, 0x6578, 0, 0x6579, 0, /* 0x90 */
- 0, 0, 0, 0x657B, 0x657C /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_7F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x344C, 0, /* 0x30 */
- 0x657D, 0, 0x657E, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0x6621, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0x6622, 0x6623, 0x6624, 0, /* 0x40 */
- 0x6625, 0x6626, 0, 0, 0x6628, 0x6627, 0, 0, /* 0x50 */
- 0x6629, 0, 0, 0, 0, 0, 0, 0x662A, /* 0x50 */
- 0x662B, 0, 0, 0, 0, 0, 0, 0x662E, /* 0x60 */
- 0x662C, 0x662D, 0x3A61, 0x3753, 0, 0, 0x4356, 0, /* 0x60 */
- 0x4833, 0, 0x3D70, 0, 0, 0x474D, 0, 0x486D, /* 0x70 */
- 0x662F, 0x586D, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0x6630, 0x6632, 0, 0x4D65, 0x6631, 0x6634, /* 0x80 */
- 0x6633, 0, 0x4D53, 0, 0x6635, 0, 0x487E, 0, /* 0x80 */
- 0, 0, 0, 0, 0x6636, 0, 0, 0, /* 0x90 */
- 0, 0, 0x6639, 0, 0, 0x6638, 0x6637, 0, /* 0x90 */
- 0, 0, 0, 0x663A, 0x3732, 0, 0, 0, /* 0xA0 */
- 0x4122, 0x3541, 0, 0, 0, 0, 0x663E, 0x663B, /* 0xA0 */
- 0, 0, 0x663C, 0, 0, 0, 0x663F, 0, /* 0xB0 */
- 0x6640, 0x663D, 0, 0, 0, 0x3129, 0, 0, /* 0xB0 */
- 0, 0x3227, 0, 0, 0, 0x6642, 0x6643, 0, /* 0xC0 */
- 0, 0, 0x6644, 0, 0x4D62, 0, 0, 0, /* 0xC0 */
- 0, 0, 0x3D2C, 0, 0x6646, 0x6645, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x3F69, 0x6647, 0, 0, 0, 0, 0x6648, 0, /* 0xE0 */
- 0, 0x6649, 0, 0x3465, 0, 0, 0, 0, /* 0xE0 */
- 0x344D, 0, 0, 0x664A, 0, 0, 0, 0, /* 0xF0 */
- 0, 0x664B, 0, 0x4B5D, 0x4D63 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_80[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4D54, 0x4F37, 0, 0x394D, 0x664E, 0x3C54, 0x664D, 0, /* 0x00 */
- 0, 0, 0, 0x664F, 0x3C29, 0, 0, 0, /* 0x00 */
- 0x4251, 0, 0x6650, 0, 0, 0x394C, 0, 0x4C57, /* 0x10 */
- 0x6651, 0x6652, 0, 0, 0x6653, 0, 0, 0, /* 0x10 */
- 0, 0x6654, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0x6655, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0x3C2A, 0, 0, 0x4C6D, 0, /* 0x30 */
- 0, 0, 0, 0x6657, 0, 0x433F, 0, 0x6656, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0x6659, 0, /* 0x40 */
- 0, 0, 0x6658, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x665A, 0, 0, 0, 0x403B, 0, /* 0x50 */
- 0x665B, 0, 0x665C, 0, 0, 0, 0x4A39, 0x665D, /* 0x50 */
- 0, 0x416F, 0x665E, 0, 0, 0, 0, 0, /* 0x60 */
- 0x665F, 0, 0, 0, 0, 0, 0, 0x4E7E, /* 0x60 */
- 0x6662, 0, 0x6661, 0x6660, 0x4430, 0, 0x6663, 0x3F26, /* 0x70 */
- 0, 0x6664, 0, 0, 0, 0x6665, 0x4F38, 0x6666, /* 0x70 */
- 0, 0, 0, 0, 0x6667, 0x6669, 0x6668, 0x4825, /* 0x80 */
- 0, 0x4679, 0, 0x4F3E, 0x4829, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x666B, 0, 0, 0x3E53, 0, /* 0x90 */
- 0x492A, 0, 0x666C, 0x666A, 0, 0x344E, 0, 0, /* 0x90 */
- 0, 0x3854, 0x3B68, 0, 0, 0x486E, 0, 0, /* 0xA0 */
- 0, 0x382A, 0x4B43, 0, 0x666F, 0x666D, 0, 0x394E, /* 0xA0 */
- 0, 0x394F, 0x3069, 0, 0x3A68, 0, 0, 0, /* 0xB0 */
- 0, 0, 0x4759, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x305F, 0x6674, 0, 0x4340, 0, /* 0xC0 */
- 0, 0, 0, 0, 0x4758, 0, 0x425B, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0x6676, 0, /* 0xD0 */
- 0, 0x6672, 0x6675, 0x6670, 0, 0x6673, 0x4B26, 0, /* 0xD0 */
- 0, 0x3855, 0, 0, 0x307D, 0x6671, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0x6678, /* 0xE0 */
- 0, 0x6679, 0, 0, 0x4639, 0, 0, 0, /* 0xF0 */
- 0x363B, 0, 0, 0, 0x6726, 0x473D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_81[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3B69, 0, 0, 0x363C, 0x4048, 0x4F46, /* 0x00 */
- 0x4C2E, 0x6677, 0x4054, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x3553, 0x667A, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0x667C, 0, 0, 0, 0, /* 0x20 */
- 0, 0x667B, 0, 0, 0, 0, 0, 0x667D, /* 0x20 */
- 0, 0x4326, 0, 0x473E, 0, 0, 0, 0, /* 0x30 */
- 0, 0x4431, 0, 0, 0, 0, 0x6723, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0x6722, 0, /* 0x40 */
- 0, 0, 0, 0x667E, 0, 0, 0x3F55, 0, /* 0x40 */
- 0x4965, 0x6725, 0, 0x6724, 0x3950, 0x4F53, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0x6735, /* 0x50 */
- 0, 0, 0, 0, 0, 0x6729, 0x672A, 0, /* 0x60 */
- 0, 0, 0, 0x3C70, 0, 0, 0x6728, 0, /* 0x60 */
- 0x3978, 0x6727, 0, 0, 0x672B, 0, 0, 0, /* 0x70 */
- 0x4432, 0x4A22, 0x4123, 0, 0, 0, 0, 0x425C, /* 0x70 */
- 0x672F, 0, 0x6730, 0x672C, 0, 0, 0, 0, /* 0x80 */
- 0x672D, 0, 0x672E, 0, 0, 0, 0, 0x3951, /* 0x80 */
- 0, 0, 0, 0x6736, 0, 0x6732, 0, 0, /* 0x90 */
- 0, 0, 0x4966, 0, 0x4B6C, 0x4928, 0, 0, /* 0x90 */
- 0x6731, 0, 0, 0x6734, 0x6733, 0, 0, 0, /* 0xA0 */
- 0x4B44, 0x6737, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x6738, 0, 0, 0x4137, 0, 0x6739, 0, 0, /* 0xB0 */
- 0x673B, 0, 0x673F, 0, 0, 0x673C, 0x673A, 0x473F, /* 0xB0 */
- 0x673D, 0, 0x673E, 0, 0, 0, 0x3232, 0, /* 0xC0 */
- 0x6745, 0x6740, 0, 0, 0, 0x6741, 0, 0, /* 0xC0 */
- 0, 0x6742, 0, 0x4221, 0, 0, 0, 0, /* 0xD0 */
- 0x6744, 0x6743, 0x6746, 0, 0, 0, 0, 0x6747, /* 0xD0 */
- 0x6748, 0, 0, 0x3F43, 0, 0x3269, 0, 0x6749, /* 0xE0 */
- 0x4E57, 0, 0x3C2B, 0, 0, 0x3D2D, 0, 0, /* 0xE0 */
- 0, 0, 0, 0x3B6A, 0x4357, 0, 0, 0, /* 0xF0 */
- 0, 0, 0x674A, 0x674B, 0x3131, 0, 0x674C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_82[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x674D, 0x674E, 0, 0, 0x674F, 0, 0x6750, /* 0x00 */
- 0x363D, 0x5A2A, 0x6751, 0, 0x4065, 0x6752, 0x3C4B, 0, /* 0x00 */
- 0x6753, 0, 0x5030, 0, 0, 0, 0x6754, 0x4A5E, /* 0x10 */
- 0x345C, 0, 0, 0x4124, 0x3D58, 0, 0x4971, 0x3D2E, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0x6755, 0x3952, 0x6756, 0x484C, 0, 0x6764, 0, /* 0x20 */
- 0, 0, 0, 0x6758, 0, 0x4249, 0x4775, 0x383F, /* 0x30 */
- 0x6757, 0x4125, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0x6759, 0, 0, 0, 0, 0, 0, 0x447A, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0x675B, 0x675A, 0x675D, 0, 0, 0x675C, 0, 0x675E, /* 0x50 */
- 0, 0, 0x6760, 0, 0x675F, 0, 0x344F, 0, /* 0x60 */
- 0x6761, 0, 0x6762, 0x6763, 0, 0, 0x3A31, 0x4E49, /* 0x60 */
- 0, 0x6765, 0x3F27, 0, 0, 0, 0x3170, 0x6766, /* 0x70 */
- 0x6767, 0, 0, 0, 0, 0, 0x6768, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x3072, 0, 0x6769, 0, 0, /* 0x80 */
- 0, 0, 0x676A, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x4967, 0, 0, 0, 0x3C47, 0, 0x676C, /* 0x90 */
- 0, 0, 0, 0, 0, 0x3329, 0x3032, 0, /* 0xA0 */
- 0, 0, 0, 0x676B, 0x676E, 0x474E, 0, 0x3F44, /* 0xA0 */
- 0, 0x3256, 0, 0x4B27, 0, 0, 0, 0, /* 0xB0 */
- 0x375D, 0x365C, 0, 0x676D, 0, 0x326A, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x3423, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x3171, 0x6772, 0x4E6A, 0x425D, 0, 0, 0x4944, /* 0xD0 */
- 0, 0x677E, 0, 0x3257, 0x677C, 0, 0x677A, 0x6771, /* 0xD0 */
- 0, 0x676F, 0, 0x6770, 0, 0x3C63, 0x366C, 0x4377, /* 0xE0 */
- 0, 0, 0, 0x4651, 0, 0, 0, 0, /* 0xE0 */
- 0, 0x3151, 0, 0x6774, 0x6773, 0, 0, 0, /* 0xF0 */
- 0, 0x6779, 0x6775, 0x6778 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_83[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4C50, 0x6777, 0x3258, 0x337D, 0x677B, 0, /* 0x00 */
- 0, 0x677D, 0, 0, 0, 0, 0x3754, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0x6823, 0x682C, /* 0x10 */
- 0x682D, 0, 0, 0, 0x302B, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0x6834, 0, 0, 0, 0, /* 0x20 */
- 0x3071, 0, 0, 0x682B, 0, 0, 0, 0x682A, /* 0x20 */
- 0, 0x6825, 0x6824, 0, 0x6822, 0x6821, 0x4363, 0, /* 0x30 */
- 0x427B, 0x6827, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0x6826, 0, 0, 0, 0, 0x6829, 0, 0, /* 0x40 */
- 0, 0x4170, 0x3755, 0, 0, 0, 0, 0x3141, /* 0x40 */
- 0x6828, 0, 0x3953, 0, 0, 0, 0, 0, /* 0x50 */
- 0x4171, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0x683A, 0, 0x683B, 0, 0x3259, /* 0x70 */
- 0, 0, 0, 0x322E, 0x6838, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0x682E, 0, 0x6836, /* 0x80 */
- 0, 0x683D, 0x6837, 0, 0, 0, 0x6835, 0, /* 0x80 */
- 0, 0, 0, 0x6776, 0, 0, 0x6833, 0, /* 0x90 */
- 0, 0, 0x682F, 0, 0, 0, 0x3450, 0x6831, /* 0x90 */
- 0x683C, 0, 0x6832, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x683E, 0, 0x6830, 0x477C, 0, 0, 0, 0, /* 0xA0 */
- 0, 0x4D69, 0, 0, 0, 0x6839, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x684F, 0, 0, /* 0xB0 */
- 0, 0x6847, 0, 0, 0, 0x3F7B, 0, 0, /* 0xC0 */
- 0, 0, 0x3546, 0, 0x365D, 0, 0x6842, 0, /* 0xC0 */
- 0, 0, 0, 0x325B, 0, 0, 0x3E54, 0, /* 0xD0 */
- 0x6845, 0, 0, 0, 0x3A5A, 0, 0, 0x4551, /* 0xD0 */
- 0x684A, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0x4A6E, 0, 0x6841, 0, 0, 0, 0x325A, /* 0xE0 */
- 0x3856, 0x4929, 0x684B, 0, 0x683F, 0, 0, 0x6848, /* 0xF0 */
- 0, 0, 0, 0x6852, 0, 0x6843 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_84[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6844, 0x463A, 0, 0, 0x6849, /* 0x00 */
- 0, 0, 0, 0x6846, 0x4B28, 0x684C, 0x3060, 0, /* 0x00 */
- 0, 0, 0, 0x6840, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0x684E, 0, 0x684D, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0x476B, 0x6854, 0, 0x685F, 0, 0, 0, /* 0x20 */
- 0, 0x337E, 0, 0, 0, 0x6862, 0, 0, /* 0x30 */
- 0x6850, 0, 0, 0, 0x6855, 0x4D6E, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0x685E, 0, /* 0x40 */
- 0, 0x4D55, 0, 0, 0, 0, 0x4E2A, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0x4378, /* 0x50 */
- 0, 0, 0, 0x336B, 0, 0, 0, 0, /* 0x50 */
- 0, 0x4972, 0x6864, 0x4621, 0, 0, 0x3031, 0, /* 0x60 */
- 0, 0x685D, 0, 0x6859, 0x4172, 0x6853, 0x685B, 0x6860, /* 0x60 */
- 0, 0x472C, 0, 0, 0, 0x302A, 0, 0x6858, /* 0x70 */
- 0, 0x6861, 0x4978, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0x685C, 0, 0x6857, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x3E55, 0, 0, 0, 0, /* 0x80 */
- 0x3D2F, 0, 0, 0, 0x3C2C, 0, 0, 0, /* 0x90 */
- 0, 0x4C58, 0, 0, 0x4947, 0, 0, 0x6867, /* 0x90 */
- 0, 0x6870, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0x685A, 0, 0, /* 0xA0 */
- 0, 0, 0x3377, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x3E78, 0x6865, 0, 0x686A, 0x4173, 0, 0, 0x6866, /* 0xB0 */
- 0, 0x686D, 0, 0, 0x435F, 0, 0x686E, 0, /* 0xC0 */
- 0, 0x4D56, 0x6863, 0x3338, 0, 0x6869, 0, 0, /* 0xC0 */
- 0x686C, 0x4C2C, 0, 0, 0, 0, 0x686F, 0, /* 0xD0 */
- 0, 0x6868, 0x686B, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0x4B29, 0, 0x4F21, 0, /* 0xE0 */
- 0, 0, 0, 0, 0x6873, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0x687A, 0, 0, 0x6872 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_85[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3C43, 0, 0, 0, 0, 0, 0x6851, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0x4A4E, 0, 0x4C22, 0x6879, 0x6878, 0, 0x6874, /* 0x10 */
- 0x6875, 0, 0x3136, 0, 0, 0, 0, 0x6877, /* 0x10 */
- 0, 0x6871, 0, 0, 0, 0, 0x4455, 0, /* 0x20 */
- 0, 0, 0, 0, 0x6876, 0x307E, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0x4222, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0x4A43, 0, 0, /* 0x30 */
- 0x687B, 0x6921, 0, 0x4859, 0, 0, 0, 0, /* 0x40 */
- 0x687E, 0x3E56, 0x3C49, 0x6923, 0, 0, 0x363E, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0x6924, 0, 0x4979, /* 0x50 */
- 0x687D, 0, 0x6856, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0x687C, 0, 0, 0, 0, /* 0x60 */
- 0x4F4F, 0x4622, 0x4973, 0, 0, 0x692B, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0x6931, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x6932, 0, /* 0x70 */
- 0x6925, 0, 0, 0, 0x4776, 0, 0, 0x692F, /* 0x80 */
- 0x6927, 0, 0x6929, 0, 0, 0, 0, 0, /* 0x80 */
- 0x6933, 0x6928, 0, 0, 0x692C, 0, 0, 0x3172, /* 0x90 */
- 0, 0x4665, 0, 0x692D, 0x6930, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0x6926, 0, 0x4126, 0, /* 0xA0 */
- 0x692A, 0x3B27, 0x3F45, 0x3730, 0x4C74, 0, 0x4C79, 0x3D72, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x6937, 0x6935, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x4F4E, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x6934, 0, 0, 0, 0x4D75, 0, 0x6936, /* 0xC0 */
- 0x6938, 0, 0, 0, 0, 0x6939, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0x693C, 0x693A, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0x4623, 0x693B, 0, 0, /* 0xE0 */
- 0, 0x484D, 0x692E, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0x3D73, /* 0xF0 */
- 0, 0x693D, 0x6942, 0x4174, 0, 0, 0x6941 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_86[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6922, 0, 0, 0, 0x6943, 0x4149, /* 0x00 */
- 0, 0, 0x693E, 0x6940, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0x693F, 0, 0, 0x5D31, 0x5D22, /* 0x10 */
- 0, 0, 0x6945, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x6944, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0x4D76, 0, 0x623C, /* 0x20 */
- 0x6946, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0x6947, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0x6948, 0x3857, 0, /* 0x40 */
- 0x3554, 0, 0, 0, 0x694A, 0x515D, 0, 0, /* 0x50 */
- 0, 0, 0x3575, 0, 0x4E3A, 0, 0x3673, 0x694B, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0x694C, /* 0x60 */
- 0, 0, 0, 0x436E, 0, 0, 0, 0, /* 0x60 */
- 0, 0x694D, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x467A, 0, 0x303A, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0x3263, 0x6952, 0x6953, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x694E, 0, 0x3B3D, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0x694F, 0x4742, 0, 0, 0, /* 0xA0 */
- 0, 0x6950, 0x6951, 0x695B, 0, 0, 0, 0x6955, /* 0xA0 */
- 0x6958, 0, 0, 0, 0, 0, 0x6954, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x6956, 0, 0x6957, 0x3C58, /* 0xC0 */
- 0, 0x6959, 0, 0x4341, 0, 0x3756, 0x3342, 0, /* 0xC0 */
- 0, 0, 0, 0, 0x695C, 0, 0, 0, /* 0xD0 */
- 0, 0x333F, 0, 0x6961, 0, 0, 0x695D, 0x6960, /* 0xD0 */
- 0, 0, 0, 0, 0x483A, 0, 0, 0, /* 0xE0 */
- 0, 0x695E, 0, 0, 0x695F, 0x4948, 0x485A, 0x6962, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0x427D, 0x696C, 0, 0x6968, 0, 0, 0x326B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_87[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6966, 0, 0x4B2A, 0x6967, 0, 0, 0x6964, 0, /* 0x00 */
- 0x6965, 0x696A, 0x696D, 0, 0, 0x696B, 0, 0, /* 0x00 */
- 0, 0x6969, 0x6963, 0, 0, 0, 0, 0, /* 0x10 */
- 0x4358, 0, 0x6974, 0, 0x4C2A, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0x6972, 0, 0, /* 0x20 */
- 0, 0x6973, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0x696E, 0, 0, 0x6970, /* 0x30 */
- 0, 0, 0, 0x6971, 0, 0, 0, 0x696F, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0x4066, 0, 0x4F39, 0x6978, 0, 0x6979, 0, /* 0x40 */
- 0, 0, 0, 0x6A21, 0, 0x3F2A, 0, 0x697B, /* 0x50 */
- 0, 0x697E, 0, 0, 0, 0, 0, 0x6976, /* 0x50 */
- 0x6975, 0, 0, 0x6A22, 0, 0, 0x325C, 0, /* 0x60 */
- 0x697C, 0, 0x6A23, 0, 0, 0, 0x697D, 0, /* 0x60 */
- 0, 0, 0, 0, 0x697A, 0, 0x4433, 0, /* 0x70 */
- 0x6977, 0, 0, 0, 0, 0, 0, 0x4768, /* 0x70 */
- 0, 0, 0x6A27, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0x4D3B, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0x6A26, /* 0x90 */
- 0, 0, 0x6A25, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x6A2E, 0, 0, 0, 0x6A28, /* 0xA0 */
- 0, 0, 0, 0x6A30, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0x4D66, 0x6A33, 0, 0x6A2A, 0, 0, /* 0xB0 */
- 0x6A2B, 0, 0, 0, 0x6A2F, 0, 0x6A32, 0x6A31, /* 0xC0 */
- 0, 0, 0, 0x6A29, 0, 0, 0, 0, /* 0xC0 */
- 0x6A2C, 0, 0x6A3D, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x6A36, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0x6A34, /* 0xE0 */
- 0, 0, 0x6A35, 0, 0, 0, 0x6A3A, 0x6A3B, /* 0xF0 */
- 0, 0x332A, 0, 0x3542, 0, 0, 0x6A39 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_88[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6A24, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0x6A38, 0x6A3C, 0x6A37, /* 0x00 */
- 0, 0x6A3E, 0, 0, 0, 0x6A40, 0x6A3F, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0x6A42, 0x6A41, 0x695A, 0, 0, 0, 0x6A46, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0x6A43, 0, 0, 0, 0, 0x6A44, 0, /* 0x30 */
- 0, 0x6A45, 0, 0x6A47, 0, 0, 0, 0, /* 0x30 */
- 0x376C, 0, 0x6A49, 0, 0x6A48, 0, 0x3D30, 0, /* 0x40 */
- 0, 0, 0, 0, 0x3954, 0x5E27, 0, 0, /* 0x40 */
- 0, 0, 0x6A4A, 0x3D51, 0, 0, 0, 0x3339, /* 0x50 */
- 0, 0x6A4B, 0, 0x3152, 0, 0x3E57, 0x6A4C, 0, /* 0x50 */
- 0, 0x3955, 0x6A4D, 0x3061, 0, 0, 0, 0, /* 0x60 */
- 0x493D, 0, 0, 0x6A4E, 0, 0, 0, 0, /* 0x60 */
- 0x3F6A, 0, 0x6A55, 0, 0, 0x6A52, 0, 0x436F, /* 0x70 */
- 0, 0, 0, 0, 0, 0x6A53, 0x6A50, 0x365E, /* 0x70 */
- 0, 0x6A4F, 0x6A56, 0, 0, 0, 0, 0, /* 0x80 */
- 0x3736, 0, 0, 0x425E, 0, 0x6A5C, 0, 0, /* 0x80 */
- 0, 0, 0x6A58, 0, 0, 0, 0x4235, 0x6A57, /* 0x90 */
- 0, 0x6A5A, 0, 0, 0, 0, 0x6A51, 0, /* 0x90 */
- 0, 0, 0x6A5B, 0, 0x6A5D, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x486F, 0, 0, 0x6A59, 0, /* 0xA0 */
- 0x6A5E, 0x6A60, 0, 0, 0x3853, 0x6A54, 0, 0x3041, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0x6A5F, /* 0xB0 */
- 0, 0x3A5B, 0x4E76, 0x6A61, 0x6A62, 0x4175, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0x4E22, /* 0xC0 */
- 0, 0, 0, 0, 0x6A63, 0x4D35, 0, 0, /* 0xD0 */
- 0x6A64, 0x6A65, 0, 0, 0x4A64, 0x6A66, 0, 0x3A40, /* 0xD0 */
- 0, 0x4E23, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x6A6B, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0x6A6C, 0x3E58, 0x6A6A, 0, 0, 0, /* 0xF0 */
- 0x4D67, 0x6A67, 0, 0, 0x6A69, 0x403D, 0x3F7E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_89[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6A68, 0, 0x6A6D, 0, 0, 0x4A23, /* 0x00 */
- 0, 0, 0x6A6F, 0, 0x6A6E, 0, 0, 0, /* 0x00 */
- 0x336C, 0, 0x4B2B, 0x6A70, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0x6A7C, 0x6A72, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0x6A73, 0, 0, /* 0x20 */
- 0, 0, 0x6A74, 0x6A75, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0x6A79, 0, /* 0x30 */
- 0x6A7A, 0, 0, 0x6A78, 0, 0, 0, 0, /* 0x30 */
- 0, 0x6A76, 0, 0x6A71, 0x6A77, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0x6A7B, 0x7037, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0x3228, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0x6A7E, 0x365F, /* 0x50 */
- 0x6A7D, 0, 0, 0, 0x6B22, 0, 0x6B21, 0, /* 0x60 */
- 0, 0, 0x6B24, 0, 0, 0x6B23, 0, 0x6B25, /* 0x60 */
- 0, 0, 0x3D31, 0, 0x6B26, 0, 0, 0x6B27, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x6B28, 0x403E, /* 0x70 */
- 0, 0x4D57, 0, 0x6B29, 0, 0, 0x4A24, 0x4746, /* 0x80 */
- 0x6B2A, 0, 0x6B2B, 0x382B, 0, 0, 0, 0x352C, /* 0x80 */
- 0, 0, 0, 0x6B2C, 0, 0, 0x3B6B, 0x4741, /* 0x90 */
- 0x6B2D, 0, 0x3350, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x6B2E, 0, 0, 0, 0, 0x6B30, 0x4D77, /* 0xA0 */
- 0, 0x6B2F, 0x3F46, 0, 0x6B31, 0, 0, 0x6B32, /* 0xA0 */
- 0, 0, 0x6B33, 0x3451, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0x6B34, 0, 0, 0x6B35, 0, 0x6B36, /* 0xB0 */
- 0x6B37, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0x3351, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0x6B38, 0, 0x6B39, 0x6B3A, 0, 0, /* 0xD0 */
- 0, 0, 0, 0x3272, 0, 0, 0x3F28, 0x6B3B, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0x6B3C, 0, 0, 0, /* 0xF0 */
- 0x6B3D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_8A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3840, 0, 0x447B, 0x6B3E, 0, 0, 0, 0, /* 0x00 */
- 0x3757, 0, 0x3F56, 0, 0x6B41, 0, 0x4624, 0, /* 0x00 */
- 0x6B40, 0, 0, 0x3731, 0, 0, 0x6B3F, 0x4277, /* 0x10 */
- 0x352D, 0, 0, 0x6B42, 0, 0x6B43, 0, 0x3E59, /* 0x10 */
- 0, 0, 0, 0x376D, 0, 0x6B44, 0, 0, /* 0x20 */
- 0, 0, 0x4B2C, 0, 0, 0x405F, 0, 0, /* 0x20 */
- 0, 0x3576, 0, 0x4C75, 0x414A, 0, 0x6B45, 0, /* 0x30 */
- 0, 0, 0x3F47, 0x4370, 0x3E5A, 0, 0, 0, /* 0x30 */
- 0, 0x6B46, 0, 0, 0, 0, 0x6B49, 0, /* 0x40 */
- 0x6B4A, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0x3A3E, 0x4242, 0x6B48, 0, 0x3E5B, 0x493E, 0, 0, /* 0x50 */
- 0, 0, 0, 0x6B47, 0, 0, 0x3B6C, 0, /* 0x50 */
- 0x3153, 0, 0x6B4E, 0x3758, 0, 0, 0x3B6E, 0, /* 0x60 */
- 0, 0x3B6D, 0, 0x4F4D, 0x6B4D, 0x6B4C, 0x4127, 0, /* 0x60 */
- 0x354D, 0x4F43, 0x333A, 0x3E5C, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0x6B4B, 0, 0, 0, /* 0x70 */
- 0, 0, 0x6B50, 0, 0x6B51, 0x6B4F, 0, 0x3858, /* 0x80 */
- 0, 0x4D40, 0, 0, 0x3B6F, 0x4727, 0, 0, /* 0x80 */
- 0, 0x6B54, 0, 0x4040, 0, 0x4342, 0, 0, /* 0x90 */
- 0x4D36, 0, 0x6B57, 0, 0, 0, 0x386C, 0, /* 0x90 */
- 0x403F, 0x6B53, 0, 0x6B58, 0x386D, 0x6B55, 0x6B56, 0, /* 0xA0 */
- 0x6B52, 0, 0, 0, 0x4062, 0x4649, 0, 0, /* 0xA0 */
- 0x432F, 0, 0x325D, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x4870, 0, 0, 0x3543, 0, 0, 0x4434, /* 0xB0 */
- 0, 0, 0x6B5B, 0, 0x6B59, 0, 0, 0x434C, /* 0xC0 */
- 0, 0, 0, 0x4041, 0x3452, 0x6B5A, 0, 0x3F5B, /* 0xC0 */
- 0, 0, 0x4E4A, 0, 0, 0, 0x4F40, 0, /* 0xD0 */
- 0, 0, 0x6B5C, 0x6B67, 0x4435, 0, 0x6B66, 0, /* 0xD0 */
- 0x6B63, 0x6B6B, 0x6B64, 0, 0x6B60, 0, 0x447C, 0x6B5F, /* 0xE0 */
- 0, 0, 0, 0x6B5D, 0, 0x4D21, 0x3B70, 0, /* 0xE0 */
- 0, 0x6B61, 0, 0x6B5E, 0, 0, 0, 0x6B65, /* 0xF0 */
- 0x3D74, 0, 0x3841, 0, 0, 0, 0x427A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_8B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4B45, 0x315A, 0x3062, 0, 0x4625, 0, 0, 0x6B69, /* 0x00 */
- 0, 0, 0, 0, 0x6B68, 0, 0x4666, 0, /* 0x00 */
- 0x6B6D, 0, 0, 0, 0x6B62, 0, 0x6B6C, 0x6B6E, /* 0x10 */
- 0, 0x382C, 0x6B6A, 0x3956, 0, 0x3C55, 0, 0, /* 0x10 */
- 0x6B6F, 0x4D58, 0, 0, 0, 0, 0x6B72, 0, /* 0x20 */
- 0x6B75, 0, 0, 0x6B73, 0x4935, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0x6B70, 0, 0, 0, 0, /* 0x30 */
- 0, 0x3660, 0, 0, 0, 0, 0x6B74, 0, /* 0x30 */
- 0, 0x6B76, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0x6B7A, 0, 0, 0x6B77, 0, 0x6B79, 0x6B78, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0x6B7B, 0, /* 0x50 */
- 0x3C31, 0, 0x6B7D, 0x6B7C, 0x4968, 0, 0, 0x6C21, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0x3759, 0, /* 0x60 */
- 0, 0, 0, 0x6B7E, 0x6C22, 0, 0, 0x6C23, /* 0x60 */
- 0x3544, 0x6641, 0x3E79, 0, 0x6C24, 0, 0, 0x386E, /* 0x70 */
- 0, 0, 0, 0, 0, 0x6C25, 0, 0, /* 0x70 */
- 0x6C26, 0, 0, 0x3B3E, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0x5A4E, 0, 0x6C27, 0, 0x6C28, 0, /* 0x80 */
- 0x3D32, 0, 0x6C29, 0x6C2A, 0, 0, 0x6C2B, 0, /* 0x90 */
- 0, 0x6C2C, 0x6C2D /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_8C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x432B, /* 0x30 */
- 0, 0, 0x6C2E, 0, 0, 0, 0, 0x6C30, /* 0x30 */
- 0, 0x6C2F, 0, 0, 0, 0, 0x4626, 0, /* 0x40 */
- 0x6C31, 0, 0x4B2D, 0, 0x6C32, 0, 0x6C33, 0, /* 0x40 */
- 0x6C34, 0, 0, 0, 0, 0x6C35, 0, 0, /* 0x50 */
- 0, 0, 0x465A, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0x3E5D, 0x6C36, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0x396B, 0x502E, 0x6C37, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0x6C38, 0x493F, 0x6C39, 0, 0x6C41, 0, 0, 0, /* 0x70 */
- 0, 0, 0x6C3A, 0, 0, 0x6C3C, 0, 0, /* 0x80 */
- 0, 0x6C3B, 0x6C3D, 0, 0x4B46, 0x6C3E, 0x6C3F, 0, /* 0x80 */
- 0, 0, 0, 0, 0x6C40, 0, 0, 0, /* 0x90 */
- 0x6C42, 0, 0, 0, 0, 0x332D, 0x4467, 0, /* 0x90 */
- 0x4969, 0x3A62, 0x3957, 0, 0, 0, 0, 0x494F, /* 0xA0 */
- 0x325F, 0x484E, 0x6C45, 0x3453, 0x4055, 0x6C44, 0x6C49, 0x4379, /* 0xA0 */
- 0x4C63, 0, 0x6C47, 0x6C48, 0x352E, 0, 0x6C4A, 0x4763, /* 0xB0 */
- 0x425F, 0, 0, 0x4871, 0x453D, 0x6C46, 0, 0x4B47, /* 0xB0 */
- 0x326C, 0x6C4C, 0x4F28, 0x4442, 0x4F45, 0, 0, 0x3B71, /* 0xC0 */
- 0x6C4B, 0, 0x4231, 0, 0, 0x6C5C, 0x4128, 0, /* 0xC0 */
- 0, 0x4678, 0, 0x4950, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0x6C4F, 0x3B3F, 0x3B72, 0, 0x3E5E, 0, /* 0xD0 */
- 0x4765, 0, 0x382D, 0x6C4E, 0x6C4D, 0, 0x496A, 0, /* 0xE0 */
- 0, 0, 0x3C41, 0, 0, 0x4552, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0x6C51, 0x6C52, 0x3958, 0x6C50 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_8D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6C53, 0x6C54, 0, 0x6C56, /* 0x00 */
- 0x4223, 0, 0x6C55, 0x3466, 0, 0x6C58, 0, 0x6C57, /* 0x00 */
- 0x6C59, 0, 0, 0x6C5B, 0x6C5D, 0, 0x6C5E, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0x4056, 0, 0x3C4F, 0x6C5F, /* 0x60 */
- 0, 0, 0, 0x3352, 0, 0x6C60, 0, 0, /* 0x60 */
- 0x4176, 0x6C61, 0, 0x6C62, 0x496B, 0, 0, 0x352F, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x6C63, 0, 0, 0, 0x4436, 0, 0, /* 0x80 */
- 0, 0, 0x315B, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x6C64, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0x3C71, 0, 0, 0, 0, /* 0xA0 */
- 0x3F76, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x422D, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0x6C67, 0, 0, 0, 0x6C66, 0, /* 0xB0 */
- 0, 0, 0x6C65, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0x6C6D, 0x6C6B, 0, 0, 0x6C68, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0x6C6A, 0, /* 0xD0 */
- 0, 0, 0x6C69, 0x6C6C, 0, 0x3577, 0, 0x6C70, /* 0xD0 */
- 0, 0x4057, 0, 0x6C71, 0, 0, 0, 0, /* 0xE0 */
- 0x3859, 0, 0x6C6E, 0x6C6F, 0, 0, 0, 0x4F29, /* 0xE0 */
- 0, 0, 0, 0x4437, 0, 0x4129, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0x6C72, 0, 0, 0x6C75 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_8E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0x6C73, 0x6C74, 0x4D59, 0, 0, 0, 0, 0x4627, /* 0x00 */
- 0x6C78, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0x6C76, 0x6C77, 0x6C79, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x6D29, 0, 0, 0, 0, 0, /* 0x20 */
- 0x6C7C, 0, 0, 0, 0x6C7D, 0x6C7B, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0x6C7A, 0, 0x447D, 0, 0, 0x6D21, /* 0x40 */
- 0x6D25, 0x6D22, 0x6C7E, 0, 0x6D23, 0, 0, 0, /* 0x40 */
- 0x6D24, 0, 0, 0, 0, 0x6D2B, 0, 0, /* 0x50 */
- 0, 0x6D26, 0, 0, 0, 0, 0, 0x4058, /* 0x50 */
- 0x6D28, 0, 0, 0x6D2A, 0x6D27, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0x6D2D, 0, 0x3D33, 0, 0x6D2C, 0, /* 0x70 */
- 0, 0, 0, 0, 0x6D2E, 0, 0, 0, /* 0x70 */
- 0, 0x6D2F, 0, 0, 0x6D32, 0x6D31, 0, 0x6D30, /* 0x80 */
- 0, 0, 0x6D34, 0x6D33, 0, 0x4C76, 0, 0, /* 0x80 */
- 0, 0x6D36, 0, 0x6D35, 0x6D37, 0, 0, 0, /* 0x90 */
- 0, 0x6D38, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x6D3A, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x6D39, 0x3F48, 0x6D3B, 0, 0, 0x366D, /* 0xA0 */
- 0x6D3C, 0x6D3E, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0x6D3F, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x6D40, 0x6D3D, 0, /* 0xC0 */
- 0x6D41, 0, 0x3C56, 0x6D42, 0x3530, 0x3733, 0, 0, /* 0xC0 */
- 0, 0, 0x382E, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0x6D43, 0, 0, 0, 0x4670, /* 0xD0 */
- 0, 0, 0x453E, 0x6D44, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0x6D47, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0x3C34, 0, 0, 0x6D46, 0x6D45, 0x375A, 0x6D48 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_8F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3353, 0, 0x6D4A, 0, 0, /* 0x00 */
- 0, 0x3A5C, 0x6D49, 0, 0x6D52, 0, 0, 0, /* 0x00 */
- 0, 0, 0x6D4C, 0x6D4E, 0x4A65, 0x6D4B, 0, 0, /* 0x10 */
- 0, 0x6D4D, 0, 0x6D51, 0x6D4F, 0x3531, 0, 0x6D50, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x6D53, 0, /* 0x20 */
- 0, 0x475A, 0x4E58, 0, 0, 0, 0, 0x3D34, /* 0x20 */
- 0, 0, 0, 0x6D54, 0, 0, 0, 0, /* 0x30 */
- 0x4D22, 0x6D56, 0, 0x6D55, 0, 0, 0x6D59, 0x4D41, /* 0x30 */
- 0, 0, 0x6D58, 0, 0x336D, 0x6D57, 0x6D5C, 0, /* 0x40 */
- 0, 0x6D5B, 0, 0, 0x6D5A, 0x4532, 0x6D5D, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0x6D5E, /* 0x50 */
- 0, 0, 0, 0, 0x6D5F, 0, 0, 0x396C, /* 0x50 */
- 0, 0x3725, 0x6D60, 0x6D61, 0x6D62, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0x3F49, 0x6D63, 0, 0x3C2D, 0x6D64, /* 0x90 */
- 0, 0, 0, 0x6D65, 0, 0, 0, 0x5221, /* 0xA0 */
- 0x517E, 0, 0, 0, 0, 0x6D66, 0x6570, 0x6D67, /* 0xA0 */
- 0x4324, 0x3F2B, 0x4740, 0, 0, 0, 0, 0x6D68, /* 0xB0 */
- 0, 0, 0x4A55, 0x4454, 0x397E, 0, 0, 0x4329, /* 0xB0 */
- 0, 0, 0x312A, 0, 0x4B78, 0x3F57, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0x375E, 0, /* 0xC0 */
- 0, 0x3661, 0, 0, 0x4A56, 0, 0, 0, /* 0xD0 */
- 0, 0, 0x6D69, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0x6D6B, 0, 0, 0x6D6A, 0x3260, 0, /* 0xE0 */
- 0, 0x4676, 0x6D6C, 0x4777, 0, 0x4533, 0, 0x6D6D, /* 0xE0 */
- 0x3D52, 0, 0, 0, 0x6D6F, 0, 0, 0x4C42, /* 0xF0 */
- 0x6D7E, 0x6D71, 0x6D72, 0, 0, 0x4449 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_90[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4260, 0x4177, 0, 0x4628, 0, 0x6D70, 0x3555, 0, /* 0x00 */
- 0, 0, 0, 0x6D79, 0, 0x6D76, 0x6E25, 0x4629, /* 0x00 */
- 0x4360, 0x6D73, 0, 0x447E, 0x4553, 0x6D74, 0x6D78, 0x3F60, /* 0x10 */
- 0, 0x4767, 0x444C, 0, 0, 0x4042, 0x6D77, 0x422E, /* 0x10 */
- 0x4224, 0x6D75, 0x3029, 0x4F22, 0, 0, 0, 0x6D7A, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0x4261, 0, /* 0x20 */
- 0, 0x3D35, 0x3F4A, 0, 0, 0x6D7C, 0x6D7B, 0, /* 0x30 */
- 0x306F, 0x6D7D, 0, 0, 0x492F, 0, 0x6E27, 0, /* 0x30 */
- 0, 0x465B, 0x3F6B, 0, 0, 0x4359, 0, 0x3678, /* 0x40 */
- 0, 0x6E26, 0x4D37, 0x313F, 0, 0x4A57, 0x3261, 0x6E21, /* 0x40 */
- 0x6E22, 0x6E23, 0x6E24, 0x463B, 0x4323, 0x3063, 0x6E28, 0, /* 0x50 */
- 0x6E29, 0x7423, 0, 0, 0x423D, 0, 0x6E2A, 0, /* 0x50 */
- 0x3173, 0x414C, 0, 0x382F, 0, 0x4D5A, 0, 0, /* 0x60 */
- 0x6E2B, 0x452C, 0, 0, 0, 0x4178, 0x3C57, 0x6E2C, /* 0x60 */
- 0, 0, 0x6E2F, 0, 0, 0x3D65, 0x6E2D, 0x412B, /* 0x70 */
- 0x412A, 0, 0x3064, 0, 0x4E4B, 0x6E31, 0, 0x4872, /* 0x70 */
- 0x6E33, 0x6E32, 0x6E30, 0x6364, 0x3454, 0, 0, 0x6D6E, /* 0x80 */
- 0, 0x6E35, 0x6E34, 0, 0, 0, 0, 0x6E36, /* 0x80 */
- 0, 0x4D38, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0x4661, 0, 0, 0x4B2E, 0, /* 0xA0 */
- 0x6E37, 0, 0x3C59, 0, 0, 0, 0, 0x6E38, /* 0xA0 */
- 0, 0x6E39, 0, 0, 0, 0x6E3A, 0, 0, /* 0xB0 */
- 0x4521, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x306A, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0x3959, 0, 0, 0, 0x4F3A, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0x6E3E, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x3734, 0x6E3B, 0, 0x6E3C, 0, 0, 0, /* 0xE0 */
- 0x4974, 0, 0, 0, 0, 0x3354, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0x4D39, 0, 0x363F, /* 0xF0 */
- 0, 0, 0, 0, 0, 0x4554 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_91[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6E3F, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0x6E40, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0x6E41, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0x4522, 0, 0, /* 0x20 */
- 0x6E43, 0, 0x6E42, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0x4653, 0x6E44, 0x3D36, 0x3C60, 0x475B, 0x4371, 0, /* 0x40 */
- 0, 0, 0x3C72, 0, 0x3F6C, 0, 0x6E45, 0, /* 0x50 */
- 0x6E46, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0x3F5D, 0x6E47, 0, 0x6E48, 0, 0, /* 0x60 */
- 0, 0x6E49, 0x4D6F, 0, 0x3D37, 0, 0, 0, /* 0x60 */
- 0, 0, 0x6E4B, 0x6E4A, 0, 0x395A, 0, 0x3973, /* 0x70 */
- 0x3B40, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0x6E4E, 0, 0, 0, 0, 0x3D66, /* 0x80 */
- 0, 0x6E4D, 0, 0x6E4C, 0, 0x4269, 0, 0, /* 0x80 */
- 0x386F, 0, 0x4043, 0, 0, 0, 0, 0x4830, /* 0x90 */
- 0, 0, 0, 0, 0x3D39, 0, 0, 0, /* 0x90 */
- 0, 0, 0x6E4F, 0, 0x3E5F, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x6E52, 0x6E50, 0, 0, 0, 0x6E51, /* 0xA0 */
- 0, 0, 0, 0, 0x6E54, 0x6E53, 0, 0, /* 0xB0 */
- 0x3E7A, 0, 0x6E55, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x6E56, 0x6E57, 0, 0, 0, 0, 0x4850, 0x3A53, /* 0xC0 */
- 0x3C61, 0x6E58, 0, 0x6E59, 0x4E24, 0x3D45, 0x4C6E, 0x4E4C, /* 0xC0 */
- 0x6E5A, 0x3662, 0, 0, 0, 0, 0x6E5B, 0, /* 0xD0 */
- 0x4523, 0, 0, 0x6E5E, 0x3378, 0x3F4B, 0, 0x6E5C, /* 0xD0 */
- 0, 0x6E5D, 0, 0x4460, 0, 0, 0x4B55, 0x367C, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0x6E60, 0x6E61, 0, /* 0xF0 */
- 0, 0, 0, 0, 0x6E5F, 0, 0, 0x6E63 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_92[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0x465F, 0x3343, 0, /* 0x00 */
- 0, 0x6E67, 0, 0, 0x6E64, 0x6E66, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x6E62, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0x6F4F, 0, 0, 0x6E65, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0x4E6B, 0, 0, 0x385A, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0x6E6F, /* 0x30 */
- 0, 0, 0, 0, 0x4534, 0x6E6A, 0, 0, /* 0x40 */
- 0x6E6D, 0x6E6B, 0, 0x6E70, 0, 0, 0, 0, /* 0x40 */
- 0x6E71, 0, 0, 0, 0, 0, 0, 0x6E69, /* 0x50 */
- 0, 0, 0x6E76, 0x3174, 0, 0, 0x6E68, 0, /* 0x50 */
- 0, 0, 0x482D, 0, 0x6E6C, 0, 0x3E60, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0x395B, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x4B48, 0, /* 0x70 */
- 0x3664, 0, 0, 0x3D46, 0, 0x463C, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x412D, 0, 0x6E74, 0, 0x6E6E, 0x6E73, 0, /* 0x90 */
- 0x4C43, 0, 0x4438, 0x6E75, 0x6E72, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0x412C, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0x6E79, /* 0xB0 */
- 0, 0x6E78, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0x6E77, /* 0xC0 */
- 0, 0, 0x4B2F, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0x3D7B, 0, 0, 0, /* 0xE0 */
- 0, 0x6E7A, 0x4A5F, 0, 0, 0x3154, 0, 0, /* 0xE0 */
- 0, 0, 0x4946, 0x4372, 0, 0, 0, 0, /* 0xF0 */
- 0x3578, 0, 0x6E7C, 0, 0x395D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_93[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3B2C, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0x6E7B, /* 0x00 */
- 0x3F6D, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0x3F6E, 0x6F21, 0x6F23, 0, 0, 0, 0, 0, /* 0x10 */
- 0x3E7B, 0, 0x6F22, 0x6F24, 0, 0, 0x3653, 0, /* 0x20 */
- 0x4945, 0, 0, 0x3C62, 0x4F23, 0, 0x6E7E, 0x3A78, /* 0x20 */
- 0, 0, 0x4F3F, 0, 0, 0x6F26, 0, 0, /* 0x30 */
- 0, 0, 0x6F25, 0x6F27, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0x6E7D, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0x4669, 0, 0x4555, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0x4457, 0, 0x6F2C, 0, /* 0x50 */
- 0, 0, 0, 0x4343, 0x6F28, 0, 0, 0, /* 0x50 */
- 0x6F29, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0x372D, 0, 0x6F2B, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0x3830, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0x6F2A, 0, 0x3E61, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0x3379, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0x6F30, 0, 0x3A3F, 0x4179, /* 0x90 */
- 0, 0, 0x444A, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0x333B, /* 0xA0 */
- 0, 0, 0, 0, 0x6F2E, 0x6F2F, 0x4443, 0, /* 0xA0 */
- 0x6F2D, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x6F31, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x6F37, 0, 0, 0, 0, /* 0xC0 */
- 0x6F3A, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0x6F39, 0x452D, 0, 0, 0, 0, 0x6F32, 0x6F33, /* 0xD0 */
- 0x6F36, 0, 0, 0, 0, 0x6F38, 0, 0, /* 0xD0 */
- 0, 0x3640, 0, 0, 0x6F3B, 0x6F35, 0, 0, /* 0xE0 */
- 0x6F34 /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_94[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6F3F, 0, 0, 0, 0x6F40, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0x6F41, 0, 0, 0x6F3E, 0x6F3D, 0, 0, 0, /* 0x10 */
- 0x3E62, 0x462A, 0x6F3C, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0x6F45, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0x6F43, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0x6F44, 0x6F42, 0, /* 0x30 */
- 0x4278, 0, 0x6F46, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x6F47, 0, 0, 0x6F49, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0x3455, 0x6F48, 0x4C7A, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0x6F54, 0x6F4A, 0, 0, 0x6F4D, 0, /* 0x50 */
- 0x6F4B, 0, 0x6F4C, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0x6F4E, 0, 0, 0, 0, 0, /* 0x60 */
- 0x6F50, 0, 0, 0, 0, 0x6F51, 0, 0x6F52, /* 0x70 */
- 0, 0, 0, 0, 0x6F55, 0x6F53, 0x6F56, 0x6F58, /* 0x70 */
- 0, 0x6F57 /* 0x80 */
- /* 0x80 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_95[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4439, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0x4C67, 0, 0x6F59, 0x412E, 0, 0, 0, 0x6F5A, /* 0x80 */
- 0, 0x4A44, 0x6F5B, 0x332B, 0, 0, 0, 0x313C, /* 0x80 */
- 0, 0x3457, 0, 0x3456, 0x6F5C, 0, 0x6F5D, 0, /* 0x90 */
- 0x6F5E, 0x6F5F, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x6F60, 0, 0x3458, 0x3355, 0x395E, 0x4836, 0, 0x6F62, /* 0xA0 */
- 0x6F61, 0, 0, 0, 0, 0x6F63, 0, 0, /* 0xA0 */
- 0, 0, 0x315C, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x6F66, 0, 0x6F65, 0x6F64, 0, 0x6F67, 0, /* 0xB0 */
- 0, 0, 0, 0x6F6A, 0, 0, 0, 0x3047, /* 0xC0 */
- 0, 0, 0x6F68, 0, 0x6F6C, 0x6F6B, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0x6F6E, 0x6F6D, 0x6F6F, 0, /* 0xD0 */
- 0x462E, 0, 0, 0, 0x6F70, 0, 0, 0, /* 0xD0 */
- 0, 0x6F71, 0x6F73, 0, 0, 0x6F72 /* 0xE0 */
- /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_96[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x10 */
- 0x496C, 0, 0, 0, /* 0x10 */
- 0, 0x6F74, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0x6F75, 0, 0x3A65, 0, 0, 0, 0x6F76, 0x6F77, /* 0x20 */
- 0, 0, 0x4B49, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0x414B, 0, 0, 0, 0x3024, /* 0x30 */
- 0x424B, 0, 0x6F78, 0, 0x496D, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0x6F7B, 0x6F79, 0x395F, 0, 0x6F7A, /* 0x40 */
- 0x3842, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0x4A45, 0x6F7D, 0x7021, 0x6F7E, 0x7022, /* 0x50 */
- 0, 0, 0x3121, 0x3F58, 0x3D7C, 0x3459, 0x7023, 0, /* 0x60 */
- 0, 0, 0x4766, 0, 0x7025, 0, 0, 0, /* 0x60 */
- 0x3122, 0, 0x7024, 0x4444, 0, 0x4E4D, 0x462B, 0x6F7C, /* 0x70 */
- 0x4E26, 0, 0x3831, 0, 0, 0x4D5B, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0x3679, 0x4E34, 0, /* 0x80 */
- 0x3728, 0, 0x4262, 0x6721, 0, 0x7026, 0x332C, 0x3F6F, /* 0x80 */
- 0, 0, 0, 0, 0x3356, 0x7028, 0, 0x7029, /* 0x90 */
- 0x7027, 0x3764, 0, 0x3A5D, 0x3E63, 0, 0, 0, /* 0x90 */
- 0x3123, 0, 0, 0x4E59, 0, 0, 0, 0x702B, /* 0xA0 */
- 0x6E2E, 0, 0x702A, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x702E, 0x702C, 0x702D, 0, 0x702F, 0, 0x7030, 0x4E6C, /* 0xB0 */
- 0x7031, 0x7032, 0, 0x4049, 0x483B, 0, 0, 0, /* 0xB0 */
- 0x3F7D, 0x3467, 0, 0, 0x4D3A, 0x326D, 0x3D38, 0x385B, /* 0xC0 */
- 0, 0x7035, 0, 0x7034, 0x3B73, 0x7036, 0x7033, 0, /* 0xC0 */
- 0, 0x3B28, 0, 0, 0, 0x703A, 0x6A2D, 0, /* 0xD0 */
- 0, 0x5256, 0, 0x3F77, 0x7038, 0, 0, 0, /* 0xD0 */
- 0, 0, 0x4E25, 0x4671, 0, 0, 0, 0, /* 0xE0 */
- 0x312B, 0, 0x4063, 0x3C36, 0, 0, 0, 0, /* 0xE0 */
- 0x4A37, 0, 0x3140, 0, 0, 0, 0x4E6D, 0x4D6B, /* 0xF0 */
- 0, 0x703B, 0, 0x4545 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_97[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3C7B, 0, 0, 0, 0x703C, 0, 0x703D, 0x3F4C, /* 0x00 */
- 0x703E, 0, 0x4E6E, 0, 0, 0x7039, 0x7040, 0x7042, /* 0x00 */
- 0, 0x7041, 0, 0x703F, 0, 0, 0x7043, 0, /* 0x10 */
- 0, 0x7044, 0, 0, 0x417A, 0, 0x3262, 0, /* 0x10 */
- 0, 0, 0, 0, 0x7045, 0, 0, 0x4C38, /* 0x20 */
- 0, 0, 0x7046, 0, 0, 0, 0, 0, /* 0x20 */
- 0x7047, 0, 0x4F2A, 0, 0, 0, 0, 0, /* 0x30 */
- 0x5B31, 0x7048, 0, 0, 0, 0x7049, 0x704A, 0, /* 0x30 */
- 0, 0, 0x704E, 0, 0x704B, 0, 0x704C, 0, /* 0x40 */
- 0x704D, 0x704F, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x4044, 0, 0, 0, 0x4C77, 0, /* 0x50 */
- 0, 0x4045, 0, 0, 0x7050, 0, 0x4873, 0, /* 0x50 */
- 0x7051, 0x7353, 0x4C4C, 0, 0x7052, 0, 0x7053, 0, /* 0x60 */
- 0x7054, 0x3357, 0, 0x7056, 0, 0x3F59, 0, 0, /* 0x60 */
- 0, 0x7057, 0, 0, 0x3724, 0, 0, 0, /* 0x70 */
- 0, 0x7058, 0x705C, 0, 0x705A, 0, 0, 0, /* 0x70 */
- 0, 0x705B, 0, 0, 0x3373, 0x7059, 0x705D, 0, /* 0x80 */
- 0, 0, 0, 0x705E, 0, 0x3048, 0, 0x705F, /* 0x80 */
- 0x7060, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x3E64, 0, 0, 0, 0x7061, 0, 0, 0, /* 0x90 */
- 0x3547, 0, 0, 0x7064, 0, 0, 0x7063, 0, /* 0xA0 */
- 0x7062, 0, 0, 0x6B71, 0, 0x4A5C, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x7065, 0x7066, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x7067, 0, 0, 0x7068, 0, /* 0xC0 */
- 0x7069, 0, 0, 0x706A, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0x345A, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0x706B, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0x706C, 0x4723, 0, /* 0xE0 */
- 0, 0, 0x706E, 0x323B, 0, 0x7071, 0x7070, 0, /* 0xF0 */
- 0, 0, 0, 0x3124, 0, 0, 0, 0x3641 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_98[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4A47, 0x443A, 0x3A22, 0, 0x3960, 0x3D67, 0, /* 0x00 */
- 0x3F5C, 0, 0, 0, 0x7073, 0, 0, 0x7072, /* 0x00 */
- 0x4D42, 0x3468, 0x4852, 0x465C, 0, 0, 0, 0x3F7C, /* 0x10 */
- 0x4E4E, 0, 0x375B, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0x7076, 0, 0, 0x7075, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0x4B4B, 0x462C, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0x3150, 0, 0, 0x7077, /* 0x30 */
- 0x7074, 0, 0, 0x4951, 0x4D6A, 0x7078, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0x7079, 0, /* 0x40 */
- 0, 0, 0, 0x707B, 0x426A, 0x335B, 0x335C, 0x707A, /* 0x40 */
- 0, 0, 0, 0, 0x3469, 0x3832, 0, 0, /* 0x50 */
- 0x346A, 0, 0, 0x453F, 0, 0, 0x4E60, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0x385C, /* 0x60 */
- 0, 0, 0, 0x707C, 0, 0, 0, 0x707D, /* 0x60 */
- 0x707E, 0x7121, 0, 0x7123, 0x7122, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x4977, 0, 0x7124, 0, 0, 0, 0, 0x7125, /* 0xA0 */
- 0, 0x7126, 0, 0, 0, 0, 0x7127, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x7129, 0x7128, 0, 0x712A, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0x4874, 0x664C, 0, 0, 0x3F29, /* 0xD0 */
- 0, 0, 0x3532, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0x712B, 0, 0x712C, 0, 0x522C, 0x5D3B, 0x4853, /* 0xE0 */
- 0, 0, 0x307B, 0, 0x303B, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0x3B74, 0x4B30, 0x3E7E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_99[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x712D, 0, 0x4C5F, 0, 0, /* 0x00 */
- 0, 0x712E, 0x4D5C, 0, 0x3142, 0, 0, 0, /* 0x00 */
- 0x3B41, 0, 0x712F, 0x326E, 0x7130, 0, 0, 0, /* 0x10 */
- 0x7131, 0, 0, 0, 0, 0x7133, 0x7134, 0, /* 0x10 */
- 0x7136, 0x7132, 0, 0, 0x7135, 0, 0, 0, /* 0x20 */
- 0x345B, 0, 0, 0, 0x7137, 0, 0x7138, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0x7139, 0x713A, 0, /* 0x30 */
- 0, 0, 0x713B, 0, 0, 0x713D, 0, 0, /* 0x40 */
- 0, 0x713C, 0, 0x713F, 0x7142, 0, 0, 0, /* 0x40 */
- 0x713E, 0x7140, 0x7141, 0, 0, 0x7143, 0, 0x3642, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0x3C73, 0x7144, /* 0x90 */
- 0x7145, 0x3961, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0x7146, 0, 0, /* 0xA0 */
- 0x333E, 0, 0, 0, 0x474F, 0x7147, 0x7148, 0, /* 0xA0 */
- 0, 0, 0, 0x435A, 0x466B, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x7149, 0, 0, 0, /* 0xB0 */
- 0, 0x477D, 0, 0, 0x424C, 0x3158, 0x366E, 0, /* 0xC0 */
- 0x366F, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0x4373, 0x714E, 0x3670, 0, 0, 0x326F, 0, 0, /* 0xD0 */
- 0x714D, 0, 0, 0x714B, 0, 0x714C, 0, 0x714A, /* 0xD0 */
- 0, 0, 0x7158, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0x714F, 0x7150, 0, /* 0xE0 */
- 0, 0x7151, 0x7152, 0, 0, 0, 0, 0, /* 0xF0 */
- 0x7154, 0, 0, 0x7153, 0, 0, 0, 0x3D59 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_9A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7155, 0, 0, 0, 0x7157, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0x3533, 0x7156, /* 0x00 */
- 0, 0, 0x417B, 0x3833, 0, 0, 0, 0, /* 0x10 */
- 0, 0x7159, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0x424D, 0, 0, 0x715A, 0, 0, 0, 0, /* 0x20 */
- 0x462D, 0, 0, 0, 0, 0, 0, 0x715B, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0x7160, 0, /* 0x30 */
- 0x715E, 0, 0x715D, 0x715F, 0, 0x715C, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0x7162, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0x7161, 0, 0x7164, /* 0x50 */
- 0, 0, 0x3643, 0x7163, 0, 0, 0, 0x7165, /* 0x50 */
- 0, 0, 0x7166, 0, 0x7168, 0x7167, 0, 0, /* 0x60 */
- 0, 0x7169, 0x716B, 0x716A, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x397C, 0, 0, 0, 0, 0x716C, 0, 0, /* 0xA0 */
- 0x716D, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x333C, 0, 0, 0, 0x716E, 0, 0, 0, /* 0xB0 */
- 0x716F, 0, 0, 0, 0x3F71, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0x7170, /* 0xC0 */
- 0, 0x7171, 0, 0x7172, 0x7173, 0, 0, 0, /* 0xD0 */
- 0x3962, 0, 0, 0, 0, 0, 0x7174, 0x7175, /* 0xD0 */
- 0, 0, 0x7176, 0x7177, 0, 0, 0x7178, 0, /* 0xE0 */
- 0, 0, 0x4831, 0x717A, 0, 0x4926, 0x717B, 0x7179, /* 0xE0 */
- 0, 0x717D, 0, 0, 0x717C, 0, 0, 0x717E, /* 0xF0 */
- 0, 0, 0, 0x7221 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_9B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7222, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0x7223, 0, 0x7224, 0, 0, 0, 0, 0x7225, /* 0x10 */
- 0, 0, 0x7226, 0x7227, 0, 0x7228, 0, 0x7229, /* 0x20 */
- 0x722A, 0x722B, 0x722C, 0, 0, 0, 0x722D, 0x722E, /* 0x20 */
- 0, 0x5D35, 0x722F, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0x6478, 0x3534, 0, 0, 0, /* 0x30 */
- 0, 0x3321, 0x3A32, 0x7231, 0x7230, 0x4C25, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0x7233, 0x7234, 0x7232, /* 0x40 */
- 0, 0x7235, 0, 0, 0x4B62, 0, 0, 0, /* 0x50 */
- 0x7236, 0, 0x357B, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0x4F25, /* 0x60 */
- 0, 0, 0, 0, 0x7237, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0x7239, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0x303E, 0, /* 0x80 */
- 0, 0x723A, 0x4A2B, 0x7238, 0, 0, 0x723B, 0x723C, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0x723D, /* 0x90 */
- 0x723E, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x723F, 0, 0x4B6E, 0x3B2D, 0, 0x3A7A, 0x412F, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x7240, 0, 0, 0, /* 0xB0 */
- 0, 0x7243, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x7241, 0, 0, 0, 0, 0, 0x7244, 0, /* 0xC0 */
- 0, 0x3871, 0x7242, 0, 0, 0, 0, 0x7245, /* 0xC0 */
- 0, 0x7246, 0x7247, 0, 0x724B, 0, 0x3B2A, 0, /* 0xD0 */
- 0, 0, 0, 0x4264, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x724C, 0x7249, 0x7248, 0x724A, 0, 0, 0, /* 0xE0 */
- 0x375F, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x7250, 0x724F, 0x724E, 0, 0, 0x3033 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_9C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x725A, 0, 0x7256, 0, /* 0x00 */
- 0x7257, 0x7253, 0x7259, 0, 0x7255, 0x3362, 0, 0, /* 0x00 */
- 0x4F4C, 0, 0x7258, 0x7254, 0x7252, 0x7251, 0, 0, /* 0x10 */
- 0, 0, 0, 0x725C, 0, 0, 0, 0, /* 0x10 */
- 0, 0x725F, 0, 0, 0x725E, 0x725D, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0x4949, 0x725B, 0x3073, /* 0x20 */
- 0x7260, 0, 0x7262, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x336F, 0x724D, 0x3137, 0, 0, 0x7264, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0x7263, 0x7261, /* 0x40 */
- 0x432D, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x4B70, 0, 0, 0, 0, 0x4E5A, /* 0x50 */
- 0, 0, 0x7265, 0, 0, 0, 0, 0, /* 0x50 */
- 0x7266, 0, 0, 0, 0, 0, 0, 0x7267, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0x7268, 0, /* 0x70 */
- 0x7269, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0x443B, 0, 0x726A, /* 0xE0 */
- 0, 0x4837, 0, 0x726F, 0x726B, 0, 0, 0, /* 0xE0 */
- 0x726C, 0, 0, 0x4B31, 0x4C44, 0, 0x4650 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_9D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7270, 0, 0, 0x7271, 0x463E, /* 0x00 */
- 0x726E, 0x726D, 0, 0, 0, 0, 0x322A, 0, /* 0x00 */
- 0, 0, 0x7279, 0, 0, 0x7278, 0, 0, /* 0x10 */
- 0, 0, 0, 0x3175, 0, 0, 0, 0x7276, /* 0x10 */
- 0, 0, 0, 0x7275, 0, 0, 0x7273, 0, /* 0x20 */
- 0x337B, 0, 0x7272, 0x3C32, 0x3229, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0x3963, 0, 0, 0x727C, 0x727B, /* 0x30 */
- 0, 0x727A, 0, 0, 0x7277, 0, 0x727D, 0, /* 0x40 */
- 0x727E, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0x7325, 0x7324, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0x7326, 0, 0, 0x312D, 0x7321, 0x7322, 0, /* 0x50 */
- 0x3974, 0x4C39, 0, 0, 0x7323, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0x4B32, 0, 0, 0x732B, /* 0x60 */
- 0, 0, 0x7327, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0x732C, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0x7329, /* 0x80 */
- 0, 0x7328, 0, 0, 0, 0, 0, 0x375C, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0x732D, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0x732E, 0, 0, 0, /* 0xA0 */
- 0, 0x732F, 0, 0x732A, 0, 0, 0, 0x7274, /* 0xA0 */
- 0, 0, 0x7330, 0, 0x4461, 0, 0, 0, /* 0xB0 */
- 0x7334, 0, 0x7335, 0x7333, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x7332, 0x7338, 0, 0x7331, 0, 0x7336, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0x7337, /* 0xC0 */
- 0, 0, 0, 0x733A, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x7339, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0x733C, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0x733D, 0, 0x733E, /* 0xE0 */
- 0, 0, 0x4F49, 0, 0, 0, 0, 0, /* 0xF0 */
- 0x733B, 0x426B, 0x3A6D, 0, 0, 0x733F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_9E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x10 */
- 0x7340, 0x7341, 0, 0, 0x7342, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0x7343, 0, 0, /* 0x70 */
- 0x3834, 0x7344, 0, 0, 0, 0x7345, 0, 0x3C2F, /* 0x70 */
- 0, 0x7346, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0x7347, 0, 0, 0x7348, 0x7349, 0, 0, 0, /* 0x80 */
- 0, 0x734C, 0x734A, 0x4F3C, 0, 0x734B, 0, 0x4E6F, /* 0x90 */
- 0, 0, 0, 0, 0, 0x734D, 0, 0x4E5B, /* 0x90 */
- 0, 0, 0, 0, 0, 0x734E, 0x477E, 0, /* 0xA0 */
- 0, 0x734F, 0x7351, 0, 0, 0x7352, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x7350, 0x396D, 0x4C4D, 0x4B63, 0x5677, 0, 0x5D60, 0x4B7B, /* 0xB0 */
- 0, 0, 0, 0, 0x322B, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0x7354, 0x3550, 0x7355, 0x7356, /* 0xC0 */
- 0x7357, 0, 0x3975, 0, 0x7358, 0, 0, 0, /* 0xD0 */
- 0x6054, 0x4C5B, 0, 0x4263, 0x7359, 0x735B, 0x735A, 0, /* 0xD0 */
- 0x735C, 0, 0, 0, 0, 0x735D, 0, 0, /* 0xE0 */
- 0x735E, 0, 0, 0, 0, 0, 0, 0x735F, /* 0xE0 */
- 0, 0, 0, 0, 0x7360, 0, 0x7361, 0x7362, /* 0xF0 */
- 0, 0x7363, 0, 0x7364, 0x7365, 0x7366 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_9F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7367, /* 0x00 */
- 0x7368, 0, 0, 0, 0, 0, 0x4524, 0, /* 0x00 */
- 0, 0, 0, 0x385D, 0, 0x736A, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0x414D, 0x736B, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0x736C, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0x4921, 0, 0, 0x736D, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x736E, 0x6337, 0, 0, 0x6C5A, 0x706D, /* 0x40 */
- 0, 0, 0x736F, 0, 0x7370, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0x7372, /* 0x50 */
- 0x7373, 0x7374, 0x4E70, 0x7371, 0, 0, 0x7375, 0x7376, /* 0x60 */
- 0, 0, 0x7378, 0, 0x7377, 0, 0, 0, /* 0x60 */
- 0, 0, 0x737A, 0, 0, 0, 0x737B, 0x7379, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0x4E36, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0x737C, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0x737D, 0x6354, 0, 0, /* 0x90 */
- 0x737E /* 0xA0 */
- /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0208_FF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x212A, 0, 0x2174, 0x2170, 0x2173, 0x2175, 0, /* 0x00 */
- 0x214A, 0x214B, 0x2176, 0x215C, 0x2124, 0, 0x2125, 0x213F, /* 0x00 */
- 0x2330, 0x2331, 0x2332, 0x2333, 0x2334, 0x2335, 0x2336, 0x2337, /* 0x10 */
- 0x2338, 0x2339, 0x2127, 0x2128, 0x2163, 0x2161, 0x2164, 0x2129, /* 0x10 */
- 0x2177, 0x2341, 0x2342, 0x2343, 0x2344, 0x2345, 0x2346, 0x2347, /* 0x20 */
- 0x2348, 0x2349, 0x234A, 0x234B, 0x234C, 0x234D, 0x234E, 0x234F, /* 0x20 */
- 0x2350, 0x2351, 0x2352, 0x2353, 0x2354, 0x2355, 0x2356, 0x2357, /* 0x30 */
- 0x2358, 0x2359, 0x235A, 0x214E, 0, 0x214F, 0x2130, 0x2132, /* 0x30 */
- 0x212E, 0x2361, 0x2362, 0x2363, 0x2364, 0x2365, 0x2366, 0x2367, /* 0x40 */
- 0x2368, 0x2369, 0x236A, 0x236B, 0x236C, 0x236D, 0x236E, 0x236F, /* 0x40 */
- 0x2370, 0x2371, 0x2372, 0x2373, 0x2374, 0x2375, 0x2376, 0x2377, /* 0x50 */
- 0x2378, 0x2379, 0x237A, 0x2150, 0x2143, 0x2151, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0x2131, 0, 0x216F /* 0xE0 */
- /* 0xE0 */
-};
-
diff --git a/sal/textenc/tcvtjp5.tab b/sal/textenc/tcvtjp5.tab
deleted file mode 100644
index e8bc6c18a..000000000
--- a/sal/textenc/tcvtjp5.tab
+++ /dev/null
@@ -1,3350 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the UniCode to DBCS tables for the following */
-/* japanese charsets: JIS212 */
-
-/* ======================================================================= */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_00[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2242, 0, 0, 0x2270, 0, 0x2243, 0, /* 0xA0 */
- 0, 0x226D, 0x226C, 0, 0, 0, 0x226E, 0x2234, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x2231, 0, 0x226B, 0, 0, 0, 0, 0x2244, /* 0xB0 */
- 0x2A22, 0x2A21, 0x2A24, 0x2A2A, 0x2A23, 0x2A29, 0x2921, 0x2A2E, /* 0xC0 */
- 0x2A32, 0x2A31, 0x2A34, 0x2A33, 0x2A40, 0x2A3F, 0x2A42, 0x2A41, /* 0xC0 */
- 0, 0x2A50, 0x2A52, 0x2A51, 0x2A54, 0x2A58, 0x2A53, 0, /* 0xD0 */
- 0x292C, 0x2A63, 0x2A62, 0x2A65, 0x2A64, 0x2A72, 0x2930, 0x294E, /* 0xD0 */
- 0x2B22, 0x2B21, 0x2B24, 0x2B2A, 0x2B23, 0x2B29, 0x2941, 0x2B2E, /* 0xE0 */
- 0x2B32, 0x2B31, 0x2B34, 0x2B33, 0x2B40, 0x2B3F, 0x2B42, 0x2B41, /* 0xE0 */
- 0x2943, 0x2B50, 0x2B52, 0x2B51, 0x2B54, 0x2B58, 0x2B53, 0, /* 0xF0 */
- 0x294C, 0x2B63, 0x2B62, 0x2B65, 0x2B64, 0x2B72, 0x2950, 0x2B73 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_01[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2A27, 0x2B27, 0x2A25, 0x2B25, 0x2A28, 0x2B28, 0x2A2B, 0x2B2B, /* 0x00 */
- 0x2A2C, 0x2B2C, 0x2A2F, 0x2B2F, 0x2A2D, 0x2B2D, 0x2A30, 0x2B30, /* 0x00 */
- 0x2922, 0x2942, 0x2A37, 0x2B37, 0, 0, 0x2A36, 0x2B36, /* 0x10 */
- 0x2A38, 0x2B38, 0x2A35, 0x2B35, 0x2A3A, 0x2B3A, 0x2A3B, 0x2B3B, /* 0x10 */
- 0x2A3D, 0x2B3D, 0x2A3C, 0, 0x2A3E, 0x2B3E, 0x2924, 0x2944, /* 0x20 */
- 0x2A47, 0x2B47, 0x2A45, 0x2B45, 0, 0, 0x2A46, 0x2B46, /* 0x20 */
- 0x2A44, 0x2945, 0x2926, 0x2946, 0x2A48, 0x2B48, 0x2A49, 0x2B49, /* 0x30 */
- 0x2947, 0x2A4A, 0x2B4A, 0x2A4C, 0x2B4C, 0x2A4B, 0x2B4B, 0x2929, /* 0x30 */
- 0x2949, 0x2928, 0x2948, 0x2A4D, 0x2B4D, 0x2A4F, 0x2B4F, 0x2A4E, /* 0x40 */
- 0x2B4E, 0x294A, 0x292B, 0x294B, 0x2A57, 0x2B57, 0, 0, /* 0x40 */
- 0x2A56, 0x2B56, 0x292D, 0x294D, 0x2A59, 0x2B59, 0x2A5B, 0x2B5B, /* 0x50 */
- 0x2A5A, 0x2B5A, 0x2A5C, 0x2B5C, 0x2A5D, 0x2B5D, 0x2A5F, 0x2B5F, /* 0x50 */
- 0x2A5E, 0x2B5E, 0x2A61, 0x2B61, 0x2A60, 0x2B60, 0x292F, 0x294F, /* 0x60 */
- 0x2A6C, 0x2B6C, 0x2A69, 0x2B69, 0x2A66, 0x2B66, 0x2A6B, 0x2B6B, /* 0x60 */
- 0x2A68, 0x2B68, 0x2A6A, 0x2B6A, 0x2A71, 0x2B71, 0x2A74, 0x2B74, /* 0x70 */
- 0x2A73, 0x2A75, 0x2B75, 0x2A77, 0x2B77, 0x2A76, 0x2B76, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0x2A26, 0x2B26, 0x2A43, /* 0xC0 */
- 0x2B43, 0x2A55, 0x2B55, 0x2A67, 0x2B67, 0x2A70, 0x2B70, 0x2A6D, /* 0xD0 */
- 0x2B6D, 0x2A6F, 0x2B6F, 0x2A6E, 0x2B6E, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0x2B39 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_02[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2230, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x222F, 0x2232, 0x2236, 0x2235, 0, 0x2233 /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_03[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2238, 0x2239, 0x2661, 0, /* 0x80 */
- 0x2662, 0x2663, 0x2664, 0, 0x2667, 0, 0x2669, 0x266C, /* 0x80 */
- 0x2676, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x2665, 0x266A, 0x2671, 0x2672, 0x2673, 0x2674, /* 0xA0 */
- 0x267B, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0x2678, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0x2675, 0x267A, 0x2677, 0x2679, 0x267C /* 0xC0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_04[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2742, 0x2743, 0x2744, 0x2745, 0x2746, 0x2747, /* 0x00 */
- 0x2748, 0x2749, 0x274A, 0x274B, 0x274C, 0, 0x274D, 0x274E, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x2772, 0x2773, 0x2774, 0x2775, 0x2776, 0x2777, /* 0x50 */
- 0x2778, 0x2779, 0x277A, 0x277B, 0x277C, 0, 0x277D, 0x277E /* 0x50 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_21[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2271, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x226F /* 0x20 */
- /* 0x20 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_4E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3021, 0, 0x3022, 0x3023, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0x3024, 0, 0, 0, /* 0x00 */
- 0, 0, 0x3025, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0x3026, /* 0x10 */
- 0, 0, 0, 0x3027, 0x3028, 0, 0, 0, /* 0x20 */
- 0x3029, 0, 0, 0x302A, 0, 0, 0x302B, 0x302C, /* 0x20 */
- 0x302D, 0, 0, 0, 0, 0x302E, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0x302F, 0x3030, 0, 0, 0x3031, 0, 0, 0x3032, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0x3033, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0x3034, 0, 0x3035, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0x3036, 0, 0, 0, 0, /* 0x60 */
- 0x3037, 0x3038, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0x3039, 0x303A, 0, 0, /* 0x70 */
- 0, 0x303B, 0, 0, 0, 0, 0, 0x303C, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0x303D, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0x303E, 0x303F, /* 0x90 */
- 0, 0, 0, 0, 0, 0x3040, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0x3041, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x3042, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x3043, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0x3044, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0x3045, 0x3046, 0, 0, 0, 0, /* 0xD0 */
- 0x3047, 0x3048, 0x3049, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x304A, 0, 0, 0, 0, 0, 0, 0x304B, /* 0xE0 */
- 0, 0x304C, 0, 0x304D, 0, 0x304E, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0x304F, 0x3050, 0x3051 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_4F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3052, 0, 0x3053, 0x3054, 0, 0, 0, 0, /* 0x00 */
- 0x3055, 0, 0, 0x3056, 0x3057, 0, 0, 0, /* 0x00 */
- 0, 0, 0x3058, 0, 0, 0x3059, 0x305A, 0x305B, /* 0x10 */
- 0, 0x305C, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0x305D, 0, /* 0x20 */
- 0, 0x305E, 0, 0x3060, 0, 0x3061, 0, 0x3062, /* 0x30 */
- 0, 0x3063, 0, 0x3064, 0, 0, 0x3065, 0, /* 0x30 */
- 0x3066, 0, 0x3067, 0, 0, 0, 0, 0, /* 0x40 */
- 0x3068, 0x3069, 0, 0x306A, 0x306B, 0, 0, 0, /* 0x40 */
- 0, 0, 0x306C, 0, 0x306D, 0, 0x306E, 0, /* 0x50 */
- 0x306F, 0, 0, 0, 0, 0, 0, 0x3070, /* 0x50 */
- 0x305F, 0, 0, 0x3071, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0x3072, 0, 0x3073, 0, 0x3074, 0, /* 0x60 */
- 0, 0x3075, 0, 0, 0, 0, 0, 0x3076, /* 0x70 */
- 0x3077, 0x3078, 0x3079, 0, 0, 0x307A, 0x307B, 0, /* 0x70 */
- 0, 0x307C, 0x307D, 0, 0x307E, 0x3121, 0, 0, /* 0x80 */
- 0, 0x3122, 0x3123, 0, 0x3124, 0, 0x3125, 0, /* 0x80 */
- 0x3126, 0, 0x3127, 0x3128, 0x3129, 0, 0, 0x312A, /* 0x90 */
- 0, 0x312B, 0x312C, 0, 0, 0, 0x312D, 0x312E, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x312F, 0, 0, 0, 0, 0x3130, /* 0xB0 */
- 0, 0x3131, 0, 0x3132, 0x3133, 0x3134, 0x3135, 0, /* 0xB0 */
- 0x3136, 0x3137, 0, 0, 0, 0x3138, 0x3139, 0, /* 0xC0 */
- 0x313A, 0x313B, 0, 0x313C, 0x313D, 0x313E, 0, 0x313F, /* 0xC0 */
- 0, 0, 0x3140, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0x3141, 0, 0, 0, /* 0xD0 */
- 0x3142, 0, 0x3143, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x3144, 0, 0x3145, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0x3146, 0x3147, 0, 0x3148 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_50[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3149, 0x314A, 0, 0, 0x314B, 0, 0, 0x314C, /* 0x00 */
- 0, 0, 0x314D, 0, 0x314E, 0, 0x314F, 0, /* 0x00 */
- 0x3150, 0, 0, 0x3151, 0, 0, 0, 0x3152, /* 0x10 */
- 0x3153, 0, 0, 0x3154, 0x3155, 0x3156, 0x3157, 0, /* 0x10 */
- 0, 0, 0x3158, 0, 0, 0, 0, 0x3159, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0x315A, 0, /* 0x20 */
- 0x315B, 0, 0x315C, 0x315D, 0, 0x315E, 0, 0, /* 0x30 */
- 0, 0, 0, 0x3176, 0, 0, 0, 0, /* 0x30 */
- 0x315F, 0x3160, 0x3161, 0, 0, 0x3162, 0x3163, 0, /* 0x40 */
- 0, 0, 0x3164, 0, 0x3165, 0, 0x3166, 0, /* 0x40 */
- 0, 0x3167, 0x3168, 0x3169, 0, 0, 0, 0x316A, /* 0x50 */
- 0, 0x316B, 0, 0, 0, 0, 0, 0x316C, /* 0x50 */
- 0x316D, 0, 0x316E, 0x316F, 0, 0, 0x3170, 0x3171, /* 0x60 */
- 0, 0, 0x3172, 0, 0, 0x3173, 0, 0, /* 0x60 */
- 0x3174, 0x3175, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x3177, 0, 0x3178, 0x3179, 0, 0x317A, 0, /* 0x80 */
- 0, 0, 0x317B, 0, 0, 0, 0x317C, 0x317D, /* 0x80 */
- 0x317E, 0, 0x3221, 0x3222, 0x3223, 0, 0x3224, 0, /* 0x90 */
- 0, 0, 0, 0x3225, 0x3226, 0, 0x3227, 0x3228, /* 0x90 */
- 0x3229, 0x322A, 0x322B, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x322C, 0, 0, 0, 0, 0x322D, /* 0xA0 */
- 0x322E, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x322F, 0x3230, 0, 0, 0x3231, 0, 0, /* 0xB0 */
- 0x3232, 0, 0, 0x3233, 0x3234, 0, 0, 0x3235, /* 0xC0 */
- 0, 0, 0, 0, 0x3236, 0, 0x3237, 0, /* 0xC0 */
- 0x3238, 0, 0, 0x3239, 0x323A, 0, 0, 0, /* 0xD0 */
- 0x323B, 0, 0, 0, 0x323C, 0x323D, 0, 0x323E, /* 0xD0 */
- 0, 0, 0x323F, 0, 0x3240, 0, 0x3241, 0, /* 0xE0 */
- 0x3242, 0x3243, 0, 0, 0, 0, 0, 0x3244, /* 0xE0 */
- 0, 0x3245, 0x3251, 0, 0, 0, 0x3246, 0, /* 0xF0 */
- 0, 0, 0x3247, 0, 0, 0, 0x3248 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_51[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3249, 0, 0, 0x324A, 0x324B, /* 0x00 */
- 0x324C, 0, 0, 0x324D, 0x324E, 0x324F, 0x3250, 0, /* 0x00 */
- 0x3252, 0, 0, 0, 0, 0, 0, 0x3253, /* 0x10 */
- 0, 0x3254, 0, 0x3255, 0x3256, 0x3257, 0x3258, 0, /* 0x10 */
- 0, 0, 0, 0x3259, 0, 0, 0, 0x325A, /* 0x20 */
- 0x325B, 0, 0, 0, 0x325C, 0x325D, 0, 0x325E, /* 0x20 */
- 0, 0x325F, 0, 0x3260, 0x3261, 0x3262, 0, 0, /* 0x30 */
- 0x3263, 0x3264, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0x3265, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x3266, 0, 0, 0, 0, 0x3267, /* 0x40 */
- 0, 0, 0, 0x3268, 0, 0x3269, 0, 0x326A, /* 0x50 */
- 0x326B, 0, 0, 0, 0, 0, 0, 0x326C, /* 0x50 */
- 0, 0, 0, 0, 0x326D, 0, 0x326E, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x326F, 0, /* 0x70 */
- 0, 0, 0, 0x3270, 0x3271, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x3272, 0, 0, 0x3273, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x3274, 0, 0, 0, 0, 0x3275, 0, 0, /* 0x90 */
- 0, 0x3276, 0, 0x3277, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0x3278, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x3279, 0, 0x327A, 0, 0x327B, 0, 0x327C, 0x327D, /* 0xB0 */
- 0, 0, 0x327E, 0, 0, 0, 0, 0, /* 0xC0 */
- 0x3321, 0, 0, 0, 0, 0, 0, 0x3322, /* 0xC0 */
- 0, 0x3323, 0x3324, 0x3325, 0, 0x3326, 0, 0, /* 0xD0 */
- 0x3327, 0, 0, 0, 0, 0, 0x3328, 0, /* 0xD0 */
- 0, 0, 0x3329, 0, 0, 0x332A, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0x332B, 0, /* 0xE0 */
- 0, 0, 0x332C, 0x332D, 0x332E, 0, 0, 0x332F /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_52[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3330, 0x3331, 0, 0, 0x3332, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0x3333, 0x3334, 0, 0x3335, 0x3336, 0, /* 0x10 */
- 0x3337, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x3338, 0, 0, 0, 0, 0, /* 0x20 */
- 0x3339, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0x333A, 0x333B, 0, 0, 0x333C, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0x333D, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0x333E, 0, 0, /* 0x40 */
- 0, 0x333F, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0x3340, 0, 0x3341, /* 0x50 */
- 0x3342, 0, 0x3343, 0, 0x3344, 0, 0, 0x3345, /* 0x50 */
- 0x3346, 0x3347, 0, 0, 0, 0, 0x3348, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0x3349, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0x334A, /* 0x70 */
- 0x334B, 0x334C, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0x334D, 0, 0x334E, 0, 0, 0x334F, 0, 0, /* 0x80 */
- 0, 0, 0x3350, 0, 0x3351, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x3352, 0, 0x3353, 0x3354, 0x3355, /* 0x90 */
- 0x3356, 0, 0x3357, 0, 0x3358, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0x3359, 0x335A, 0x335B, 0x335C, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0x335D, /* 0xA0 */
- 0x335E, 0, 0, 0, 0, 0, 0x335F, 0x3360, /* 0xB0 */
- 0x3361, 0, 0x3362, 0x3363, 0, 0x3364, 0, 0, /* 0xB0 */
- 0x3365, 0, 0, 0, 0x3366, 0, 0x3367, 0, /* 0xC0 */
- 0x3368, 0, 0, 0, 0x3369, 0, 0, 0x336A, /* 0xC0 */
- 0, 0x336B, 0, 0, 0x336C, 0, 0x336D, 0, /* 0xD0 */
- 0, 0, 0, 0x336E, 0x336F, 0, 0, 0, /* 0xD0 */
- 0, 0x3370, 0, 0, 0, 0x3371, 0, 0, /* 0xE0 */
- 0x3372, 0x3373, 0x3374, 0, 0x3375, 0, 0, 0, /* 0xE0 */
- 0x3376, 0x3377, 0, 0, 0x3378, 0, 0x3379, 0x337A /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_53[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x337B, 0, 0, 0x337C, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0x337D, 0x337E, 0x3421, 0, 0, 0, /* 0x00 */
- 0, 0x3422, 0, 0x3423, 0, 0, 0, 0, /* 0x10 */
- 0x3424, 0, 0, 0x3425, 0x3426, 0, 0x3427, 0x3428, /* 0x10 */
- 0, 0, 0, 0, 0, 0x3429, 0, 0x342A, /* 0x20 */
- 0x342B, 0x342C, 0, 0x342D, 0x342E, 0x342F, 0, 0, /* 0x20 */
- 0x3430, 0, 0x3431, 0, 0, 0x3432, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0x3433, 0x3434, 0x3435, 0, /* 0x30 */
- 0, 0, 0x3436, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0x3438, 0x3437, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0x3439, 0, 0x343A, 0, 0, 0, 0, /* 0x50 */
- 0, 0x343B, 0, 0x343C, 0, 0x343D, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0x343E, 0x343F, 0, 0, /* 0x60 */
- 0, 0, 0x3440, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x3441, 0, 0, 0, 0, 0x3442, 0, /* 0x70 */
- 0, 0, 0, 0x3443, 0, 0, 0, 0x3444, /* 0x80 */
- 0x3445, 0, 0, 0, 0, 0, 0x3446, 0, /* 0x80 */
- 0, 0, 0, 0x3447, 0x3448, 0, 0, 0, /* 0x90 */
- 0, 0x3449, 0, 0, 0, 0x344A, 0, 0, /* 0x90 */
- 0, 0x344B, 0, 0, 0x344C, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x344D, 0x344E, 0, 0, 0, 0x344F, /* 0xA0 */
- 0, 0, 0x3450, 0, 0x3451, 0x3452, 0, 0x3453, /* 0xB0 */
- 0x3454, 0, 0x3455, 0, 0, 0x3456, 0, 0, /* 0xB0 */
- 0x3457, 0, 0, 0, 0, 0x3458, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0x3459, /* 0xC0 */
- 0, 0, 0x345A, 0x345B, 0, 0x345C, 0, 0, /* 0xD0 */
- 0, 0, 0x345D, 0, 0, 0x345E, 0x345F, 0, /* 0xD0 */
- 0x3460, 0, 0, 0, 0, 0, 0x3461, 0x3462, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0x3463 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_54[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3464, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0x3465, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x3466, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0x3467, 0, 0, 0, 0, 0, 0x3468, /* 0x20 */
- 0x3469, 0, 0x346A, 0, 0, 0, 0, 0x346B, /* 0x20 */
- 0, 0x346C, 0, 0, 0x346D, 0x346E, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0x346F, 0x3470, 0, 0, 0x3471, /* 0x40 */
- 0, 0, 0, 0, 0, 0x3472, 0, 0x3473, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0x3474, 0, /* 0x50 */
- 0, 0, 0x3475, 0, 0x3476, 0, 0x3477, 0x3478, /* 0x60 */
- 0, 0x3479, 0, 0x347A, 0, 0x347B, 0x347C, 0, /* 0x60 */
- 0, 0, 0, 0, 0x347D, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0x347E, /* 0x70 */
- 0, 0x3521, 0, 0x3522, 0, 0x3523, 0, 0, /* 0x80 */
- 0x3524, 0x3525, 0, 0, 0, 0x3526, 0, 0, /* 0x80 */
- 0, 0x3527, 0, 0, 0, 0x3528, 0x3529, 0, /* 0x90 */
- 0, 0, 0, 0, 0x352A, 0, 0, 0x352B, /* 0x90 */
- 0, 0x352C, 0, 0, 0, 0, 0x352D, 0x352E, /* 0xA0 */
- 0, 0x352F, 0x3530, 0, 0, 0x3531, 0x3532, 0, /* 0xA0 */
- 0, 0x3533, 0, 0, 0, 0, 0, 0x3534, /* 0xB0 */
- 0, 0x3535, 0x3536, 0x3537, 0, 0, 0, 0x3538, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0x3539, 0, /* 0xC0 */
- 0, 0, 0x353A, 0, 0, 0x353B, 0x353C, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x353D, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0x353E, 0, 0x353F, 0, 0, 0x3540, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0x3541, 0, /* 0xF0 */
- 0, 0, 0, 0, 0x3542, 0, 0x3543, 0x3544 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_55[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3545, 0x3546, 0, 0, 0, 0x3547, 0, 0, /* 0x00 */
- 0x3548, 0x3549, 0, 0, 0x354A, 0x354B, 0x354C, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0x354D, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x354E, 0x354F, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x3550, 0, 0, 0x3551, 0x3552, 0, /* 0x30 */
- 0, 0, 0, 0x3553, 0x3554, 0x3555, 0, 0, /* 0x30 */
- 0, 0x3556, 0, 0, 0, 0, 0, 0x3557, /* 0x40 */
- 0, 0x3558, 0x3559, 0, 0, 0x355A, 0, 0, /* 0x40 */
- 0x355B, 0x355C, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0x355D, 0, 0x355E, 0x355F, 0, 0, 0x3560, 0, /* 0x50 */
- 0x3561, 0x3562, 0, 0, 0x3563, 0, 0x3564, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0x3565, /* 0x70 */
- 0, 0x3566, 0x3567, 0, 0, 0, 0x3568, 0, /* 0x80 */
- 0x3569, 0, 0, 0, 0, 0, 0x356A, 0x356B, /* 0x80 */
- 0, 0x356C, 0x356D, 0x356E, 0x356F, 0, 0, 0x3570, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0x3571, 0x3572, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0x3573, 0, 0, /* 0xA0 */
- 0, 0, 0x3574, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0x3575, /* 0xB0 */
- 0, 0x3576, 0, 0x3577, 0, 0, 0x3578, 0, /* 0xC0 */
- 0, 0x3579, 0, 0x357A, 0x357B, 0, 0x357C, 0, /* 0xC0 */
- 0, 0x357D, 0x357E, 0x3621, 0, 0, 0, 0x3622, /* 0xD0 */
- 0x3623, 0, 0, 0x3624, 0, 0, 0x3625, 0, /* 0xD0 */
- 0, 0, 0x3626, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0x3627, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0x3628, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0, 0x3629 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_56[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x362A, 0, 0, /* 0x00 */
- 0x362B, 0, 0x362C, 0, 0, 0x362D, 0x362E, 0x362F, /* 0x00 */
- 0x3630, 0x3631, 0x3632, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0x3633, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0x3634, 0, 0, 0, /* 0x20 */
- 0x3635, 0, 0, 0x3636, 0, 0x3637, 0, 0x3638, /* 0x30 */
- 0, 0x3639, 0, 0x363A, 0x363B, 0x363C, 0, 0x363D, /* 0x30 */
- 0x363E, 0x363F, 0, 0x3640, 0x3641, 0, 0x3642, 0, /* 0x40 */
- 0, 0x3643, 0, 0x3644, 0, 0x3645, 0, 0x3646, /* 0x40 */
- 0, 0, 0, 0, 0x3647, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0x3648, 0, /* 0x50 */
- 0x3649, 0x364A, 0x364B, 0x364C, 0, 0, 0x364D, 0, /* 0x60 */
- 0, 0x364E, 0, 0, 0, 0x364F, 0, 0x3650, /* 0x60 */
- 0, 0x3651, 0x3652, 0, 0, 0x3653, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0x3654, 0x3655, 0, 0, /* 0x80 */
- 0x3656, 0, 0, 0x3657, 0x3658, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0x3659, 0, 0, /* 0x90 */
- 0, 0x365A, 0x365B, 0, 0, 0x365C, 0x365D, 0x365E, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0x365F, 0x3660, /* 0xA0 */
- 0x3661, 0x3662, 0, 0x3663, 0x3664, 0x3665, 0, 0, /* 0xA0 */
- 0, 0x3666, 0, 0x3667, 0, 0, 0, 0x3668, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0x3669, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x366A, 0, 0, /* 0xC0 */
- 0, 0x366B, 0x366C, 0x366D, 0x3670, 0x3671, 0, 0x366E, /* 0xC0 */
- 0x366F, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x3672, 0, 0, 0x3673, 0x3674, 0, 0x3675, /* 0xD0 */
- 0, 0x3676, 0, 0, 0x3677, 0x3678, 0x3679, 0x367A, /* 0xE0 */
- 0x367B, 0, 0, 0x367D, 0, 0x367E, 0, 0, /* 0xE0 */
- 0, 0x367C, 0, 0, 0, 0, 0x3721, 0x3722 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_57[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3723, 0x3724, 0, 0, 0, 0, 0x3725, /* 0x00 */
- 0, 0, 0x3726, 0, 0x3727, 0, 0, 0, /* 0x00 */
- 0, 0x3728, 0, 0, 0, 0x3729, 0, 0, /* 0x10 */
- 0, 0, 0x372A, 0x372B, 0, 0x372C, 0, 0, /* 0x10 */
- 0x372D, 0, 0x372E, 0x372F, 0x3730, 0x3731, 0, 0, /* 0x20 */
- 0, 0x3732, 0x3733, 0, 0x3734, 0, 0x3735, 0x3736, /* 0x20 */
- 0, 0, 0, 0x3737, 0x3738, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0x3739, 0x373A, 0x373B, /* 0x30 */
- 0, 0, 0, 0, 0, 0x373C, 0x373D, 0, /* 0x40 */
- 0, 0, 0, 0, 0x373E, 0x373F, 0, 0, /* 0x40 */
- 0, 0, 0x3740, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0x3741, 0, 0, 0x3742, 0, 0x3743, /* 0x60 */
- 0x3744, 0, 0, 0x3745, 0, 0x3746, 0x3747, 0x3748, /* 0x60 */
- 0x3749, 0x374A, 0, 0x374B, 0x374C, 0x374D, 0, 0x374E, /* 0x70 */
- 0, 0x374F, 0x3750, 0x3751, 0x3752, 0, 0x3753, 0, /* 0x70 */
- 0, 0x3754, 0, 0x3755, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0x3756, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0x3757, 0x3760, 0, 0x3758, /* 0x90 */
- 0, 0x3759, 0x375A, 0, 0x375B, 0x375C, 0x375D, 0x375E, /* 0x90 */
- 0, 0x375F, 0, 0, 0, 0, 0, 0x3761, /* 0xA0 */
- 0x3762, 0x3763, 0, 0, 0x3764, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x3765, 0, 0, 0, 0, 0x3766, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0x3767, /* 0xC0 */
- 0x3768, 0, 0, 0, 0x3769, 0, 0, 0x376A, /* 0xC0 */
- 0, 0, 0, 0, 0, 0x376B, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0x376C, 0x376D, 0, /* 0xD0 */
- 0, 0x377E, 0, 0, 0x376E, 0, 0x376F, 0x3770, /* 0xE0 */
- 0, 0x3771, 0, 0, 0, 0x3772, 0, 0, /* 0xE0 */
- 0x3773, 0, 0, 0, 0, 0x3774, 0x3775, 0, /* 0xF0 */
- 0x3776, 0, 0, 0, 0, 0x3777, 0x3778, 0x3779 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_58[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x377A, 0x377B, 0, 0, 0, /* 0x00 */
- 0x377C, 0x377D, 0, 0, 0x3821, 0x3822, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0x3823, 0, 0, 0x3824, 0x3825, /* 0x10 */
- 0x3826, 0, 0, 0, 0, 0, 0x3827, 0x3828, /* 0x20 */
- 0, 0, 0, 0, 0, 0x3829, 0, 0, /* 0x20 */
- 0, 0, 0x382A, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x382B, 0, 0, 0, 0, 0, 0x382C, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0x382D, 0, 0, 0x382E, 0x382F, 0, 0x3830, /* 0x40 */
- 0x3831, 0, 0, 0, 0, 0x3832, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0x3833, /* 0x50 */
- 0, 0x3834, 0, 0, 0x3835, 0, 0, 0x3836, /* 0x60 */
- 0x3837, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0x3838, 0, 0, 0, 0x3839, 0, 0, 0x383A, /* 0x70 */
- 0x383B, 0x383C, 0, 0, 0, 0, 0, 0x383D, /* 0x80 */
- 0x383E, 0x383F, 0x3840, 0, 0x3841, 0x3842, 0, 0x3843, /* 0x80 */
- 0x3844, 0, 0, 0, 0x3845, 0, 0x3846, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0x3847, 0, 0, /* 0x90 */
- 0x3848, 0x3849, 0x384A, 0, 0, 0, 0x384B, 0, /* 0xA0 */
- 0, 0x384C, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0x384D, 0x384E, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x3850, 0, 0, 0, /* 0xB0 */
- 0, 0, 0x3851, 0, 0x384F, 0, 0, 0, /* 0xC0 */
- 0x3852, 0, 0, 0, 0, 0x3853, 0x3854, 0, /* 0xC0 */
- 0x3855, 0, 0x3856, 0, 0x3857, 0, 0x3858, 0, /* 0xD0 */
- 0, 0, 0x3859, 0, 0, 0x385A, 0, 0, /* 0xD0 */
- 0, 0x385B, 0x385C, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0x385D, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0x385E /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_59[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x385F, 0x3860, 0, /* 0x00 */
- 0, 0, 0, 0x3861, 0x3862, 0, 0, 0, /* 0x00 */
- 0, 0, 0x3863, 0x3864, 0x3865, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0x3867, 0, 0, /* 0x10 */
- 0, 0x3868, 0, 0x3869, 0x386A, 0, 0, 0, /* 0x20 */
- 0x386B, 0, 0, 0, 0, 0, 0, 0x386C, /* 0x20 */
- 0x386D, 0, 0, 0x386E, 0, 0x386F, 0x3870, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0x3871, /* 0x30 */
- 0, 0, 0, 0x3872, 0, 0, 0x3873, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x3874, 0x3875, 0, 0, 0, 0, /* 0x50 */
- 0, 0x3876, 0, 0x3877, 0, 0x3878, 0x3879, 0x387A, /* 0x50 */
- 0, 0x387B, 0, 0x387C, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0x387D, 0, 0x387E, 0, 0x3921, /* 0x60 */
- 0, 0, 0x3922, 0, 0, 0x3923, 0x3924, 0, /* 0x70 */
- 0, 0x3925, 0, 0x3926, 0x3927, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x3928, 0x3929, 0, 0x392A, 0, /* 0x80 */
- 0, 0, 0x392B, 0, 0, 0x392C, 0, 0x392D, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0x392E, /* 0x90 */
- 0, 0, 0, 0, 0x392F, 0, 0, 0x3930, /* 0xA0 */
- 0, 0, 0, 0, 0, 0x3931, 0x3932, 0x3933, /* 0xA0 */
- 0x3934, 0, 0, 0x3935, 0, 0, 0, 0x3936, /* 0xB0 */
- 0, 0, 0x3937, 0, 0x3938, 0, 0, 0, /* 0xB0 */
- 0, 0x3939, 0, 0x393A, 0x393B, 0, 0, 0, /* 0xC0 */
- 0x393C, 0, 0x393D, 0, 0, 0x393E, 0, 0, /* 0xC0 */
- 0, 0, 0x393F, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0x3940, 0x3941, 0x3942, /* 0xD0 */
- 0, 0, 0, 0x3943, 0x3944, 0, 0, 0x3945, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0x3946, 0x3947, /* 0xE0 */
- 0, 0x3948, 0x3949, 0, 0x394A, 0, 0, 0x394B /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_5A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x394C, 0, 0, 0, 0x394D, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0x394E, 0x394F, 0x3950, 0, /* 0x00 */
- 0, 0, 0x3951, 0x3952, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x3953, 0, /* 0x10 */
- 0, 0, 0, 0x3954, 0x3955, 0, 0, 0x3956, /* 0x20 */
- 0x3957, 0, 0x3958, 0, 0, 0x3959, 0, 0, /* 0x20 */
- 0x395A, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0x395B, 0x395C, 0, 0x395D, /* 0x40 */
- 0x395E, 0, 0, 0, 0x395F, 0, 0, 0, /* 0x40 */
- 0x3960, 0, 0, 0, 0, 0x3961, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0x3962, 0, /* 0x50 */
- 0, 0, 0, 0x3963, 0, 0x3964, 0, 0x3965, /* 0x60 */
- 0, 0, 0, 0, 0, 0x3966, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0x3967, /* 0x70 */
- 0, 0, 0x3968, 0x3969, 0, 0, 0x396A, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x396B, 0, 0, 0, 0, /* 0x80 */
- 0x396C, 0, 0, 0x396D, 0, 0, 0x396E, 0, /* 0x90 */
- 0, 0x396F, 0, 0, 0x3970, 0, 0x3971, 0x3972, /* 0x90 */
- 0x3973, 0, 0x3974, 0, 0, 0, 0, 0x3975, /* 0xA0 */
- 0, 0, 0, 0, 0x3976, 0, 0, 0, /* 0xA0 */
- 0, 0x3977, 0x3978, 0x3979, 0, 0x397A, 0, 0, /* 0xB0 */
- 0x397B, 0, 0x397C, 0x397D, 0, 0, 0, 0x397E, /* 0xB0 */
- 0, 0, 0, 0, 0x3A21, 0, 0x3A22, 0, /* 0xC0 */
- 0x3A23, 0, 0, 0, 0, 0, 0, 0x3A24, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0x3A25, 0, 0x3A26, 0, 0, 0, /* 0xD0 */
- 0x3A27, 0, 0, 0, 0, 0x3A28, 0, 0, /* 0xE0 */
- 0, 0, 0x3A29, 0, 0, 0, 0x3A2A, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0x3A2B, 0x3A2C, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0x3A2D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_5B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3A2E, 0x3A2F, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0x3A30, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0x3A31, /* 0x10 */
- 0, 0x3A33, 0, 0x3A34, 0, 0x3A35, 0, 0, /* 0x10 */
- 0, 0x3A36, 0, 0, 0, 0x3A37, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0x3A38, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0x3A32, 0, 0, 0, /* 0x30 */
- 0x3A39, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x3A3A, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0x3A3B, 0x3A3C, 0, 0, 0, /* 0x40 */
- 0, 0, 0x3A3D, 0, 0, 0, 0x3A3E, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0x3A3F, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0x3A40, 0, 0, 0, 0, 0, 0x3A41, 0x3A42, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0x3A43, 0x3A44, 0x3A45, 0x3A46, /* 0x70 */
- 0, 0x3A47, 0, 0, 0x3A48, 0, 0x3A49, 0, /* 0x80 */
- 0, 0, 0x3A4A, 0, 0, 0, 0x3A4B, 0, /* 0x80 */
- 0x3A4C, 0x3A4D, 0, 0x3A4E, 0x3A4F, 0, 0x3A50, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x3A51, 0x3A52, 0, 0, 0x3A53, 0x3A54, 0, 0x3A55, /* 0xA0 */
- 0, 0x3A56, 0x3A57, 0, 0, 0, 0, 0x3A58, /* 0xB0 */
- 0, 0, 0x3A59, 0, 0x3A5A, 0, 0, 0, /* 0xB0 */
- 0x3A5B, 0x3A5C, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0x3A5D, 0, 0x3A5E, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0x3A5F, 0x3A60, /* 0xD0 */
- 0x3A61, 0x3A62, 0x3A63, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x3A64, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0x3A65, /* 0xE0 */
- 0, 0x3A66, 0, 0, 0x3A67, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0x3A68 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_5C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0x3A69, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0x3A6A, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x3A6B, 0x3A6C, /* 0x10 */
- 0, 0, 0, 0x3A6D, 0, 0, 0x3A6E, 0, /* 0x20 */
- 0, 0x3A6F, 0, 0x3A70, 0x3A71, 0, 0x3A72, 0, /* 0x20 */
- 0x3A73, 0, 0x3A74, 0, 0, 0x3A75, 0x3A76, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0x3A77, 0x3A78, 0, 0x3A79, 0, 0, 0, /* 0x50 */
- 0, 0, 0x3A7A, 0x3A7B, 0, 0, 0, 0x3A7C, /* 0x60 */
- 0x3A7D, 0x3A7E, 0, 0, 0, 0x3B21, 0, 0, /* 0x60 */
- 0x3B22, 0, 0, 0, 0x3B23, 0x3B24, 0, 0, /* 0x70 */
- 0, 0, 0x3B25, 0x3B26, 0x3B27, 0x3B28, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0x3B29, /* 0x80 */
- 0x3B2A, 0, 0x3B2B, 0, 0, 0, 0, 0x3B2C, /* 0x80 */
- 0, 0, 0x3B2D, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0x3B2E, 0, 0x3B2F, /* 0x90 */
- 0x3B30, 0, 0x3B31, 0x3B32, 0, 0, 0x3B33, 0, /* 0xA0 */
- 0, 0, 0x3B34, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x3B35, 0, 0x3B36, 0x3B37, 0, 0, /* 0xB0 */
- 0, 0, 0x3B38, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x3B39, 0, 0x3B3A, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0x3B3B, 0, 0, 0, 0, 0x3B3D, /* 0xD0 */
- 0, 0, 0, 0, 0, 0x3B3C, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0x3B3E, 0, /* 0xE0 */
- 0, 0x3B3F, 0x3B40, 0, 0x3B41 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_5D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3B42, 0, 0, 0, 0, 0x3B43, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0x3B44, 0, 0, /* 0x00 */
- 0, 0, 0x3B45, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0x3B47, 0x3B48, 0, 0x3B49, 0x3B4A, /* 0x20 */
- 0, 0, 0, 0x3B46, 0, 0, 0, 0, /* 0x20 */
- 0, 0x3B4B, 0, 0, 0x3B4C, 0, 0, 0, /* 0x30 */
- 0, 0x3B4D, 0, 0, 0, 0x3B4E, 0, 0x3B4F, /* 0x30 */
- 0, 0, 0x3B50, 0x3B51, 0, 0, 0x3B52, 0, /* 0x40 */
- 0x3B53, 0, 0x3B57, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0x3B55, 0, 0, 0, 0x3B54, 0, 0, /* 0x50 */
- 0, 0x3B56, 0, 0, 0, 0, 0, 0x3B58, /* 0x50 */
- 0x3B59, 0x3B5A, 0x3B5B, 0, 0x3B5C, 0, 0, 0, /* 0x60 */
- 0, 0, 0x3B5D, 0, 0, 0x3B5E, 0, 0, /* 0x60 */
- 0x3B5F, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x3B60, 0x3B61, 0, 0, 0, 0x3B62, 0x3B63, /* 0x70 */
- 0, 0x3B64, 0, 0x3B65, 0, 0, 0, 0, /* 0x80 */
- 0x3B66, 0, 0x3B67, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0x3B68, 0x3B69, 0x3B6A, 0x3B6B, 0, 0, /* 0x90 */
- 0, 0x3B6C, 0, 0x3B6D, 0, 0, 0, 0x3B6E, /* 0x90 */
- 0x3B6F, 0, 0, 0, 0, 0, 0, 0x3B70, /* 0xA0 */
- 0, 0, 0, 0x3B71, 0, 0, 0, 0, /* 0xA0 */
- 0x3B72, 0, 0x6674, 0, 0x3B73, 0, 0, 0, /* 0xB0 */
- 0x3B74, 0x3B75, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x3B76, 0, 0, 0, 0x3B77, /* 0xC0 */
- 0, 0, 0, 0x3B78, 0, 0, 0x3B7A, 0, /* 0xC0 */
- 0x3B79, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x3B7B, 0x3B7C, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x3B7D, 0, 0, 0, 0x3B7E, 0, 0, 0, /* 0xE0 */
- 0, 0x3C21, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0x3C22, 0x3C23 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_5E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3C24, 0, 0, 0, 0, 0, 0, 0x3C25, /* 0x00 */
- 0, 0, 0, 0, 0, 0x3C26, 0, 0, /* 0x00 */
- 0, 0, 0x3C27, 0, 0x3C28, 0x3C29, 0, 0, /* 0x10 */
- 0x3C2A, 0, 0, 0, 0, 0, 0, 0x3C2B, /* 0x10 */
- 0x3C2C, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0x3C2E, 0, 0, 0, 0, 0, 0x3C2D, 0, /* 0x20 */
- 0, 0, 0x3C2F, 0, 0, 0x3C30, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0x3C31, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0x3C34, 0, 0x3C32, 0, 0, 0, 0, /* 0x40 */
- 0x3C33, 0x3C35, 0, 0, 0, 0, 0x3C36, 0, /* 0x50 */
- 0x3C37, 0, 0, 0x3C38, 0x3C39, 0, 0x3C3A, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0x3C3B, 0, 0x3C3C, 0x3C3D, 0x3C3E, 0x3C3F, 0x3C40, 0, /* 0x60 */
- 0x3C41, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0x3C42, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x3C43, 0, 0, 0x3C44, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0x3C45, 0, 0x3C46, 0x3C47, 0, 0, /* 0xA0 */
- 0x3C48, 0, 0x3C49, 0, 0x3C4A, 0, 0, 0, /* 0xA0 */
- 0, 0x3C4B, 0, 0x3C4C, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x3C4D, 0x3C4E, 0x3C4F, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0x3C50, 0, /* 0xC0 */
- 0, 0, 0, 0x3C52, 0x3C51, 0, 0x3C53, 0, /* 0xC0 */
- 0, 0x3C54, 0x3C55, 0, 0x3C56, 0x3C57, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0x3C58, 0, 0x3C59, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0x3C5A, 0, 0, /* 0xE0 */
- 0, 0, 0, 0x3C5B /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_5F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3C5C, 0, 0, 0, 0x3C5D, 0x3C5E, /* 0x00 */
- 0x3C5F, 0, 0, 0, 0, 0, 0x3C60, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0x3C61, 0, 0, 0x3C62, 0x3C63, 0, 0, /* 0x10 */
- 0, 0x3C64, 0x3C65, 0x3C66, 0x3C67, 0, 0, 0, /* 0x20 */
- 0x3C68, 0, 0, 0x3C69, 0x3C6A, 0, 0x3C6B, 0, /* 0x20 */
- 0x3C6C, 0, 0, 0, 0x3C6D, 0, 0x3C6E, 0, /* 0x30 */
- 0, 0, 0, 0x3C6F, 0, 0x3C70, 0, 0x3C71, /* 0x30 */
- 0x3C72, 0, 0, 0, 0x3C73, 0x3C74, 0, 0x3C75, /* 0x40 */
- 0, 0, 0, 0, 0, 0x3C76, 0, 0, /* 0x40 */
- 0x3C77, 0, 0, 0, 0x3C78, 0, 0, 0, /* 0x50 */
- 0x3C79, 0, 0, 0x3C7A, 0, 0, 0, 0, /* 0x50 */
- 0x3C7B, 0, 0, 0x3C7C, 0x3C7D, 0, 0, 0x3C7E, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0x3D21, /* 0x60 */
- 0, 0, 0x3D22, 0, 0x3D23, 0x3D24, 0, 0, /* 0x70 */
- 0x3D25, 0, 0x3D26, 0, 0, 0x3D27, 0x3D28, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x3D29, 0, 0, 0, 0x3D2A, 0, 0x3D2B, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0x3D2C, 0, /* 0x90 */
- 0, 0, 0, 0, 0x3D2D, 0x3D2E, 0, 0, /* 0x90 */
- 0, 0, 0x3D2F, 0, 0x3D32, 0, 0, 0x3D30, /* 0xA0 */
- 0, 0, 0, 0x3D31, 0x3D33, 0, 0, 0x3D34, /* 0xA0 */
- 0x3D35, 0x3D36, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x3D37, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x3D38, 0, 0, 0x3D39, /* 0xC0 */
- 0x3D3A, 0x3D3B, 0, 0x3D3C, 0, 0, 0, 0, /* 0xC0 */
- 0x3D3D, 0x3D3E, 0x3D3F, 0x3D40, 0x3D41, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0x3D42, 0, /* 0xD0 */
- 0, 0x3D43, 0x3D44, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x3D45, 0x3D46, 0x3D47, 0, 0x3D48, 0x3D49, 0x3D4A, 0x3D4B, /* 0xE0 */
- 0, 0, 0x3D4C, 0x3D4D, 0, 0, 0x3D4E, 0, /* 0xF0 */
- 0, 0, 0x3D4F, 0, 0x3D50 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_60[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3D51, /* 0x00 */
- 0, 0, 0x3D52, 0, 0, 0x3D53, 0, 0, /* 0x00 */
- 0, 0, 0, 0x3D54, 0x3D55, 0, 0, 0x3D56, /* 0x10 */
- 0x3D57, 0, 0x3D58, 0, 0, 0, 0, 0x3D59, /* 0x10 */
- 0, 0, 0, 0, 0x3D5A, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0x3D5B, 0, 0, /* 0x20 */
- 0, 0, 0, 0x3D5C, 0, 0x3D5D, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0x3D5E, 0, 0, 0, 0, 0, 0, 0x3D5F, /* 0x40 */
- 0x3D60, 0x3D61, 0, 0, 0x3D62, 0, 0, 0, /* 0x40 */
- 0, 0x3D63, 0, 0, 0x3D64, 0, 0x3D65, 0x3D66, /* 0x50 */
- 0, 0, 0, 0, 0, 0x3D67, 0, 0, /* 0x50 */
- 0, 0x3D68, 0, 0, 0, 0, 0, 0x3D69, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0x3D6A, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x3D6B, 0x3D6C, /* 0x70 */
- 0, 0, 0x3D6D, 0, 0, 0, 0x3D6E, 0, /* 0x80 */
- 0x3D6F, 0, 0x3D70, 0, 0, 0, 0x3D71, 0, /* 0x80 */
- 0, 0x3D72, 0, 0x3D73, 0, 0x3D74, 0, 0, /* 0x90 */
- 0x3D75, 0, 0, 0, 0, 0x3D76, 0x3D77, 0, /* 0x90 */
- 0, 0, 0x3D78, 0, 0x3D79, 0x3D7A, 0, 0, /* 0xA0 */
- 0x3D7B, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x3D7C, 0x3D7D, 0, 0, 0, 0, 0, 0x3D7E, /* 0xB0 */
- 0, 0, 0, 0x3E21, 0, 0, 0x3E22, 0, /* 0xB0 */
- 0, 0, 0x3E23, 0, 0x3E24, 0, 0, 0, /* 0xC0 */
- 0x3E25, 0x3E26, 0x3E27, 0x3E28, 0, 0, 0x3E29, 0x3E2A, /* 0xC0 */
- 0, 0, 0, 0, 0x3E2B, 0x3E2C, 0, 0, /* 0xD0 */
- 0, 0x3E2D, 0, 0x3E2E, 0, 0x3E2F, 0x3E30, 0, /* 0xD0 */
- 0, 0, 0x3E31, 0, 0, 0x3E32, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0x3E33, 0, 0, 0x3E34, 0, 0, /* 0xF0 */
- 0x3E35, 0, 0, 0, 0x3E36, 0x3E37 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_61[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3E38, 0, 0, 0, 0, 0x3E39, /* 0x00 */
- 0, 0, 0x3E3A, 0, 0x3E3B, 0, 0, 0, /* 0x00 */
- 0x3E3C, 0x3E3D, 0x3E3E, 0x3E3F, 0x3E40, 0, 0x3E41, 0x3E42, /* 0x10 */
- 0, 0x3E43, 0, 0, 0x3E44, 0, 0x3E45, 0, /* 0x10 */
- 0, 0, 0x3E46, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x3E47, 0x3E48, 0, 0, 0, 0, /* 0x20 */
- 0x3E49, 0x3E4A, 0, 0, 0, 0x3E4B, 0x3E4C, 0x3E4D, /* 0x30 */
- 0, 0x3E4E, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x3E4F, 0, 0, 0, 0x3E50, 0x3E51, 0, /* 0x40 */
- 0, 0x3E52, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0x3E53, 0, /* 0x50 */
- 0x3E54, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0x3E55, 0, 0, 0, /* 0x60 */
- 0, 0, 0x3E56, 0, 0, 0, 0, 0, /* 0x70 */
- 0x3E57, 0, 0, 0x3E58, 0x3E59, 0, 0, 0x3E5A, /* 0x70 */
- 0x3E5B, 0x3E5C, 0, 0x3E5D, 0x3E5E, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x3E5F, 0, 0x3E60, 0, 0, /* 0x80 */
- 0, 0, 0x3E61, 0x3E62, 0, 0, 0, 0x3E63, /* 0x90 */
- 0x3E64, 0, 0, 0, 0x3E65, 0x3E66, 0, 0x3E67, /* 0x90 */
- 0x3E68, 0, 0, 0, 0, 0x3E69, 0, 0, /* 0xA0 */
- 0x3E6A, 0, 0x3E6B, 0, 0, 0x3E6C, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x3E6D, 0x3E6E, 0, 0, 0x3E6F, 0, 0, 0, /* 0xB0 */
- 0x3E70, 0x3E71, 0x3E72, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0x3E73, 0x3E74, /* 0xC0 */
- 0, 0, 0, 0, 0, 0x3E75, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0x3E76, 0x3E77, 0x3E78, 0x3E79, /* 0xD0 */
- 0, 0x3E7A, 0x3E7B, 0, 0, 0x3E7E, 0, 0x3E7C, /* 0xE0 */
- 0, 0x3E7D, 0, 0, 0x3F21, 0x3F22, 0, 0x3F23 /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_62[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3F24, 0, 0x3F25, 0x3F26, 0, 0, 0x3F27, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0x3F28, 0, 0x3F29, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0x3F2A, 0, 0, 0, /* 0x10 */
- 0x3F2B, 0, 0x3F2C, 0x3F2D, 0, 0, 0, 0x3F2E, /* 0x20 */
- 0, 0x3F2F, 0, 0x3F30, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x3F31, 0, 0, 0, 0x3F32, 0, 0, /* 0x30 */
- 0, 0, 0x3F33, 0x3F34, 0x3F35, 0, 0x3F36, 0, /* 0x40 */
- 0, 0, 0, 0, 0x3F37, 0, 0, 0, /* 0x40 */
- 0x3F38, 0x3F39, 0x3F3A, 0, 0x3F3B, 0, 0x3F3C, 0, /* 0x50 */
- 0, 0, 0x3F3D, 0, 0x3F3E, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0x3F3F, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0x3F40, 0, 0x3F41, /* 0x60 */
- 0, 0, 0, 0x3F42, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0x3F43, 0, 0, 0x3F44, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0x3F45, 0x3F46, 0x3F47, /* 0x80 */
- 0x3F48, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0x3F49, 0, /* 0xA0 */
- 0x3F4A, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x3F4B, 0, 0, 0x3F4C, 0x3F4D, /* 0xB0 */
- 0, 0, 0x3F4E, 0, 0, 0, 0x3F4F, 0x3F50, /* 0xB0 */
- 0, 0, 0, 0, 0x3F51, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0x3F52, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0x3F53, 0x3F54, 0, /* 0xD0 */
- 0, 0, 0x3F55, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0x3F56, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0x3F57, 0, 0x3F58, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0x3F59, 0x3F5A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_63[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3F5B, 0x3F5C, 0, 0, 0, /* 0x00 */
- 0, 0, 0x3F5D, 0x3F5E, 0, 0x3F5F, 0, 0, /* 0x00 */
- 0x3F60, 0, 0, 0x3F61, 0, 0, 0x3F62, 0, /* 0x10 */
- 0x3F63, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0x3F64, 0x3F65, 0, 0, 0x3F66, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0x3F67, 0x3F68, 0, /* 0x30 */
- 0, 0x3F69, 0, 0, 0x3F6A, 0, 0, 0, /* 0x30 */
- 0, 0x3F6B, 0x3F6C, 0x3F6D, 0x3F6E, 0, 0x3F6F, 0, /* 0x40 */
- 0, 0, 0x3F70, 0x3F71, 0, 0, 0x3F72, 0, /* 0x40 */
- 0, 0, 0x3F73, 0x3F74, 0x3F75, 0, 0, 0, /* 0x50 */
- 0x3F76, 0, 0, 0x3F77, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0x3F78, 0x3F79, 0, /* 0x60 */
- 0, 0, 0, 0, 0x3F7A, 0x3F7B, 0, 0, /* 0x60 */
- 0, 0x3F7C, 0, 0, 0x3F7D, 0x3F7E, 0, 0, /* 0x70 */
- 0x4021, 0, 0, 0, 0x4022, 0x4023, 0, 0x4024, /* 0x70 */
- 0, 0, 0x4025, 0, 0x4026, 0, 0, 0x4027, /* 0x80 */
- 0, 0, 0x4028, 0, 0, 0, 0, 0, /* 0x80 */
- 0x4029, 0, 0, 0, 0x402A, 0x402B, 0, 0, /* 0x90 */
- 0, 0x402C, 0x402D, 0, 0, 0, 0x402E, 0, /* 0x90 */
- 0, 0, 0, 0, 0x402F, 0, 0x4030, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0x4031, 0x4032, 0x4033, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x4034, 0, 0, /* 0xB0 */
- 0, 0x4035, 0, 0, 0, 0x4036, 0, 0, /* 0xC0 */
- 0x4037, 0, 0, 0, 0, 0, 0x4038, 0, /* 0xC0 */
- 0, 0x4039, 0, 0x403A, 0x403B, 0x403C, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0x403D, 0, 0, 0, /* 0xD0 */
- 0x403E, 0, 0, 0, 0, 0x403F, 0, 0, /* 0xE0 */
- 0, 0, 0x4040, 0, 0x4041, 0, 0, 0, /* 0xE0 */
- 0, 0, 0x4042, 0x4043, 0, 0x4044, 0, 0, /* 0xF0 */
- 0x4045, 0x4046 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_64[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0x4047, 0x4048, 0, 0, 0, 0, 0, /* 0x00 */
- 0x4049, 0, 0x404A, 0, 0x404B, 0, 0, 0, /* 0x10 */
- 0x404C, 0, 0, 0, 0, 0, 0x404D, 0, /* 0x10 */
- 0x404E, 0, 0x404F, 0, 0x4050, 0x4051, 0, 0, /* 0x20 */
- 0, 0x4052, 0x4053, 0, 0, 0, 0, 0x4054, /* 0x20 */
- 0x4055, 0, 0, 0, 0, 0x4056, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0x4057, 0, 0x4058, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0x4059, 0, 0, 0, 0x405A, /* 0x40 */
- 0, 0x405B, 0x405C, 0x405D, 0x405E, 0, 0, 0, /* 0x50 */
- 0, 0, 0x405F, 0x4060, 0x4061, 0x4062, 0, 0x4063, /* 0x50 */
- 0x4064, 0x4065, 0, 0x4066, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0x4067, 0, 0, /* 0x60 */
- 0, 0, 0, 0x4068, 0x4069, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0x406A, 0, 0x406B, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0x406C, 0, 0x406D, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0x406E, /* 0x80 */
- 0x406F, 0x4070, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x4071, 0x4072, 0, 0x4073, 0, 0x4074, 0, 0x4075, /* 0x90 */
- 0, 0x4076, 0, 0x4077, 0, 0, 0x4078, 0, /* 0xA0 */
- 0x4079, 0, 0, 0, 0x407A, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x407B, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x407C, 0x407D, 0x407E, /* 0xB0 */
- 0, 0, 0, 0, 0x4121, 0, 0, 0, /* 0xC0 */
- 0, 0x4122, 0x4123, 0x4124, 0x4125, 0, 0x4126, 0, /* 0xC0 */
- 0x4127, 0x4128, 0, 0, 0, 0x4129, 0, 0x412A, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0x412B, 0x412C, 0, 0, /* 0xE0 */
- 0, 0x412D, 0x412E, 0, 0, 0x412F, 0, 0, /* 0xE0 */
- 0x4130, 0, 0, 0, 0, 0x4131, 0, 0x4132, /* 0xF0 */
- 0, 0, 0, 0x4133, 0, 0, 0, 0x4134 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_65[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4135, 0, 0, 0x4136, 0, 0, 0, /* 0x00 */
- 0x4137, 0x4138, 0x4139, 0, 0, 0, 0, 0x413A, /* 0x00 */
- 0, 0, 0, 0x413B, 0x413C, 0, 0x413D, 0, /* 0x10 */
- 0, 0x413E, 0, 0x413F, 0, 0, 0x4140, 0x4141, /* 0x10 */
- 0, 0, 0x4142, 0, 0, 0, 0x4143, 0, /* 0x20 */
- 0, 0x4144, 0, 0, 0, 0, 0x4145, 0, /* 0x20 */
- 0, 0x4146, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0x4147, 0, 0x4148, 0x4149, 0, 0, /* 0x30 */
- 0, 0, 0, 0x414A, 0, 0, 0, 0x414B, /* 0x40 */
- 0, 0x414C, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0x414D, 0, 0x414E, 0, 0x414F, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0x4150, /* 0x50 */
- 0x4151, 0, 0, 0, 0, 0, 0, 0x4152, /* 0x60 */
- 0, 0, 0, 0x4153, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0x4154, 0, 0, 0x4155, 0, 0, /* 0x70 */
- 0, 0x4156, 0, 0, 0, 0x4157, 0, 0, /* 0x80 */
- 0, 0, 0x4158, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0x4159, 0, 0, 0x415A, 0, 0, /* 0x90 */
- 0x415B, 0, 0, 0, 0, 0x415C, 0, 0, /* 0x90 */
- 0x415D, 0, 0, 0x415E, 0, 0, 0x415F, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0x4160, 0, /* 0xA0 */
- 0, 0, 0x4161, 0x4162, 0x4163, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0x4164, /* 0xB0 */
- 0, 0, 0x4165, 0, 0, 0, 0, 0, /* 0xC0 */
- 0x4166, 0x4167, 0, 0, 0, 0, 0x4168, 0, /* 0xC0 */
- 0x4169, 0, 0, 0, 0x416A, 0, 0x416B, 0, /* 0xD0 */
- 0x416C, 0, 0, 0, 0, 0, 0, 0x416D, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x416E, 0, 0x416F, 0, 0x4170, 0x4171, 0, 0, /* 0xF0 */
- 0, 0x4172, 0, 0, 0, 0, 0x4173, 0x4174 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_66[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4175, 0, 0, 0, 0x4176, 0, 0, 0, /* 0x00 */
- 0x4177, 0x4178, 0, 0, 0, 0x4179, 0, 0, /* 0x00 */
- 0, 0x417A, 0x417B, 0, 0, 0x417C, 0x417D, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0x417E, 0x4221, 0, /* 0x10 */
- 0, 0x4222, 0x4223, 0x4224, 0x4225, 0, 0x4226, 0, /* 0x20 */
- 0, 0x4227, 0x4228, 0x4229, 0x422A, 0, 0x422B, 0, /* 0x20 */
- 0x422C, 0x422D, 0, 0x422E, 0, 0, 0, 0x4230, /* 0x30 */
- 0, 0x422F, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0x4231, 0, 0, 0, 0, 0x4232, 0x4233, 0, /* 0x40 */
- 0, 0, 0x4234, 0, 0x4235, 0, 0x4237, 0, /* 0x40 */
- 0, 0x4236, 0, 0, 0, 0, 0, 0x4238, /* 0x50 */
- 0x4239, 0x423A, 0, 0x423B, 0x423C, 0, 0, 0, /* 0x50 */
- 0x423D, 0x423E, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0x4240, 0x4241, 0x4242, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0x4244, 0, 0x4245, 0, 0x4247, /* 0x70 */
- 0x4248, 0x4249, 0, 0x424A, 0x424C, 0, 0x4243, 0x4246, /* 0x70 */
- 0x424B, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x424D, 0x424E, 0x424F, 0, 0, /* 0x80 */
- 0x4250, 0, 0x4251, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x4252, 0x4253, 0x4254, 0x4255, 0, 0, 0x4256, /* 0x90 */
- 0x4257, 0, 0, 0, 0x4258, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0x4259, 0, 0, /* 0xA0 */
- 0, 0x425A, 0x425B, 0, 0, 0x425C, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x425D, 0, 0, 0, 0x425E, /* 0xB0 */
- 0x425F, 0, 0x4260, 0x4261, 0, 0, 0, 0, /* 0xC0 */
- 0x4262, 0, 0, 0, 0x4263, 0, 0x4264, 0x4265, /* 0xC0 */
- 0, 0, 0, 0, 0x4266, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0x4267, 0, 0, 0, 0x4268, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x4269, 0, 0, 0x426A, 0x426B, 0, 0x426C, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0x426D, 0x423F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_67[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x426E, 0, 0x426F, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0x4270, 0, /* 0x00 */
- 0, 0, 0, 0x4271, 0, 0, 0, 0, /* 0x10 */
- 0, 0x4272, 0, 0, 0x4273, 0, 0, 0, /* 0x10 */
- 0x4274, 0, 0x4275, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0x4276, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0x4277, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0x4278, 0, 0x4279, /* 0x40 */
- 0x427A, 0, 0, 0, 0x427B, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0x427C, 0x427D, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0x427E, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0x4321, 0, /* 0x60 */
- 0, 0, 0, 0, 0x4322, 0, 0x4323, 0, /* 0x60 */
- 0, 0, 0, 0, 0x4324, 0, 0x4325, 0, /* 0x70 */
- 0, 0, 0, 0x4326, 0, 0, 0, 0, /* 0x70 */
- 0, 0x4327, 0, 0, 0x4328, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0x4329, 0x432A, /* 0x80 */
- 0, 0x432B, 0, 0x432C, 0, 0, 0x432D, 0, /* 0x90 */
- 0x432E, 0x432F, 0, 0x4330, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x4331, 0x4332, 0x4333, 0, 0, 0x4334, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x4335, 0x4336, 0x4337, 0, 0, /* 0xB0 */
- 0x4339, 0, 0x433A, 0x433B, 0, 0x433C, 0, 0, /* 0xC0 */
- 0x433D, 0x433E, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0x433F, 0, 0, 0, 0, 0x4340, /* 0xD0 */
- 0, 0x4341, 0, 0, 0x4342, 0, 0, 0, /* 0xD0 */
- 0, 0x4343, 0, 0, 0, 0, 0x4344, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x4345, 0, 0x4346, 0, 0, 0, 0x4347, 0x4348, /* 0xF0 */
- 0, 0x4338 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_68[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x434A, 0, 0, 0, /* 0x10 */
- 0, 0x434B, 0, 0, 0, 0x434C, 0, 0x434D, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0x434F, /* 0x20 */
- 0x434E, 0, 0, 0, 0x4350, 0x4351, 0, 0x4352, /* 0x20 */
- 0x4353, 0x4354, 0, 0x4355, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0x4356, 0, 0, 0, 0x4357, /* 0x30 */
- 0, 0, 0, 0, 0x4358, 0x4359, 0, 0, /* 0x40 */
- 0, 0, 0x435A, 0, 0x435B, 0, 0, 0, /* 0x40 */
- 0, 0, 0x4349, 0, 0, 0x435C, 0, 0x435D, /* 0x50 */
- 0x435E, 0, 0, 0x435F, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0x4360, 0, 0, 0x4361, 0x4362, /* 0x60 */
- 0x4363, 0x4364, 0x4365, 0, 0, 0x4366, 0, 0, /* 0x70 */
- 0, 0x4367, 0x4368, 0x4369, 0x436A, 0, 0, 0, /* 0x70 */
- 0, 0, 0x436B, 0, 0x436C, 0, 0x436D, 0, /* 0x80 */
- 0x436E, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0x436F, 0, /* 0x90 */
- 0x4370, 0, 0x4371, 0, 0x4372, 0, 0, 0, /* 0x90 */
- 0, 0x4373, 0, 0x4374, 0, 0x4375, 0, 0, /* 0xA0 */
- 0, 0x4376, 0x4377, 0, 0, 0, 0x4378, 0, /* 0xA0 */
- 0, 0, 0x4379, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x437A, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x437B, 0, 0, /* 0xC0 */
- 0x437C, 0, 0, 0, 0x437D, 0, 0, 0x437E, /* 0xC0 */
- 0x4421, 0x4422, 0, 0x4423, 0, 0, 0x4424, 0, /* 0xD0 */
- 0, 0x4425, 0, 0, 0x4426, 0x4427, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0x4428, 0, 0, /* 0xE0 */
- 0x4429, 0, 0x442A, 0x442B, 0x442C, 0x442D, 0, 0, /* 0xE0 */
- 0x442E, 0x442F, 0, 0, 0, 0x4430, 0x4431, 0, /* 0xF0 */
- 0, 0, 0, 0x4432, 0x4433, 0x4434 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_69[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4435, 0, /* 0x00 */
- 0, 0x4436, 0x4437, 0, 0, 0, 0, 0, /* 0x00 */
- 0x4438, 0x4439, 0, 0x443A, 0, 0, 0x443B, 0x443C, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0x443D, 0, 0x443E, 0, 0x443F, 0, 0, /* 0x30 */
- 0x4440, 0, 0, 0x4441, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0x4442, 0, 0, 0x4443, 0, 0, /* 0x40 */
- 0, 0x4444, 0, 0, 0, 0, 0x4445, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0x4446, /* 0x50 */
- 0, 0, 0, 0x4447, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0x4448, 0x4449, 0x444A, 0x444B, 0, /* 0x60 */
- 0x444C, 0x444D, 0, 0, 0x444E, 0, 0, 0, /* 0x60 */
- 0x444F, 0x4450, 0x4451, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0x4452, 0x4453, 0, 0, 0, 0x4454, /* 0x70 */
- 0x4455, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0x4456, 0, 0, /* 0x80 */
- 0, 0, 0x4457, 0, 0, 0, 0x4458, 0, /* 0x90 */
- 0x4459, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x445A, 0, 0, 0, 0x445B, 0x445C, 0, /* 0xA0 */
- 0x445D, 0, 0, 0x445E, 0, 0x445F, 0, 0x4460, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0x4461, /* 0xB0 */
- 0x4462, 0, 0x4463, 0, 0x4464, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x4465, 0, 0, /* 0xC0 */
- 0x4466, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x4467, 0, 0, 0, 0, 0x4468, 0x4469, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0x446A, 0, 0, 0x446B, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0x446C, 0x446D, /* 0xE0 */
- 0, 0x446E, 0, 0x446F, 0, 0x4470, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0x4471 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_6A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4472, 0x4473, 0, 0x4474, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0x4475, /* 0x00 */
- 0, 0x4476, 0, 0, 0, 0x4477, 0, 0, /* 0x10 */
- 0, 0, 0x4478, 0, 0, 0x4479, 0, 0, /* 0x10 */
- 0x447A, 0, 0, 0, 0x447B, 0, 0, 0, /* 0x20 */
- 0x447C, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0x447D, 0, 0x447E, 0, 0x4521, 0, 0, 0x4522, /* 0x30 */
- 0, 0, 0, 0x4523, 0, 0, 0x4524, 0x4525, /* 0x30 */
- 0, 0, 0, 0, 0, 0x4526, 0x4527, 0, /* 0x40 */
- 0, 0x4528, 0x4529, 0, 0, 0, 0x452A, 0, /* 0x40 */
- 0x452B, 0x452C, 0x452D, 0, 0, 0x452E, 0x452F, 0, /* 0x50 */
- 0, 0, 0, 0x4530, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0x4531, 0, 0, 0x4532, /* 0x60 */
- 0, 0, 0x4533, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0x4534, 0, 0x4535, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x4536, 0, /* 0x70 */
- 0, 0x4537, 0, 0x4538, 0, 0, 0x4539, 0x453A, /* 0x80 */
- 0, 0x453B, 0, 0x453C, 0, 0, 0, 0, /* 0x80 */
- 0, 0x453D, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0x453E, 0, 0x453F, 0x4540, 0x4541, /* 0x90 */
- 0, 0, 0, 0, 0, 0x4542, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x4543, 0, 0, 0, 0x4544, /* 0xA0 */
- 0x4545, 0x4546, 0, 0, 0x4547, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x4548, 0x4549, 0x454A, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0x454B, 0, /* 0xC0 */
- 0x454D, 0x454C, 0, 0, 0x454E, 0, 0, 0, /* 0xC0 */
- 0x454F, 0, 0, 0, 0x4550, 0x4551, 0x4552, 0, /* 0xD0 */
- 0, 0, 0, 0, 0x4553, 0x4554, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0x4555, 0, 0, 0x4556, /* 0xE0 */
- 0, 0, 0, 0, 0x4557, 0, 0, 0, /* 0xE0 */
- 0x4558, 0x4559, 0x455A, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0x455B, 0x455C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_6B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x455D, 0x455E, 0, 0, 0x455F, 0x4560, /* 0x00 */
- 0, 0x4561, 0, 0, 0, 0, 0, 0x4562, /* 0x00 */
- 0x4563, 0x4564, 0, 0, 0, 0, 0, 0x4565, /* 0x10 */
- 0, 0, 0, 0x4566, 0, 0, 0x4567, 0, /* 0x10 */
- 0, 0, 0, 0, 0x4568, 0, 0, 0, /* 0x20 */
- 0x4569, 0, 0, 0x456A, 0x456B, 0, 0, 0x456C, /* 0x20 */
- 0, 0, 0, 0, 0, 0x456D, 0x456E, 0, /* 0x30 */
- 0, 0, 0, 0x456F, 0, 0, 0, 0x4570, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0x4571, 0, /* 0x40 */
- 0, 0, 0x4572, 0, 0, 0x4573, 0, 0, /* 0x40 */
- 0, 0, 0x4574, 0, 0, 0, 0x4575, 0, /* 0x50 */
- 0x4576, 0, 0, 0, 0, 0x4577, 0, 0, /* 0x50 */
- 0x4578, 0, 0, 0, 0, 0, 0, 0x4579, /* 0x60 */
- 0, 0, 0, 0x457A, 0, 0, 0x457B, 0, /* 0x60 */
- 0x457C, 0, 0, 0, 0, 0x457D, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0x457E, 0x4621, 0, /* 0x70 */
- 0, 0, 0x4622, 0, 0, 0x4623, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0x4624, /* 0x90 */
- 0, 0, 0, 0x4625, 0, 0, 0, 0x4626, /* 0x90 */
- 0x4627, 0, 0x4628, 0x4629, 0, 0, 0, 0, /* 0xA0 */
- 0x462A, 0x462B, 0, 0, 0x462C, 0x462D, 0x462E, 0, /* 0xA0 */
- 0x462F, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x4630, 0x4631, 0, 0, 0, 0x4632, 0x4633, 0, /* 0xB0 */
- 0, 0, 0, 0x4634, 0x4635, 0, 0, 0, /* 0xC0 */
- 0, 0x4636, 0, 0, 0x4637, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0x4638, 0, /* 0xD0 */
- 0, 0, 0x4639, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x463A, 0, 0x463B, 0, 0, 0x463C, 0x463D, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0x463E, 0, /* 0xE0 */
- 0, 0x463F, 0, 0, 0, 0, 0, 0x4640, /* 0xF0 */
- 0, 0x4641, 0, 0, 0, 0, 0, 0x4642 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_6C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4643, 0, 0x4644, 0x4645, 0, 0, /* 0x00 */
- 0, 0x4646, 0, 0, 0, 0x4647, 0x4648, 0, /* 0x00 */
- 0x4649, 0, 0x464A, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0x464B, 0, 0, 0, 0, 0, 0x464C, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x464D, 0x464E, /* 0x20 */
- 0x464F, 0, 0, 0, 0x4650, 0, 0x4651, 0, /* 0x20 */
- 0, 0, 0, 0x4652, 0, 0x4653, 0x4654, 0, /* 0x30 */
- 0, 0, 0x4655, 0x4656, 0, 0, 0, 0x4657, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x4658, 0x4659, 0, 0x465A, 0, 0x465B, /* 0x40 */
- 0, 0, 0x465C, 0, 0x465D, 0, 0, 0, /* 0x50 */
- 0, 0x465E, 0, 0x465F, 0x4660, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0x4736, /* 0x60 */
- 0, 0, 0, 0x4661, 0, 0x4662, 0, 0x4663, /* 0x60 */
- 0, 0, 0, 0, 0x4664, 0, 0x4665, 0, /* 0x70 */
- 0x4666, 0x4667, 0, 0x4668, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0x4669, 0x466A, 0x466B, /* 0x80 */
- 0, 0x466C, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0x466D, 0x466E, 0, 0x466F, /* 0x90 */
- 0x4670, 0, 0, 0, 0x4671, 0, 0, 0x4672, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x4673, 0, 0x4674, 0, 0x4675, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0x4676, 0, 0, 0, 0x4677, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0x4678, 0, 0x4679, /* 0xC0 */
- 0x467A, 0x467B, 0x467C, 0, 0x467D, 0, 0x467E, 0, /* 0xD0 */
- 0, 0, 0x4721, 0, 0x4722, 0, 0, 0, /* 0xD0 */
- 0x4723, 0, 0, 0, 0, 0, 0, 0x4724, /* 0xE0 */
- 0, 0x4725, 0, 0x4726, 0x4727, 0, 0x4728, 0, /* 0xE0 */
- 0, 0, 0x4729, 0, 0x472A /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_6D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x472B, 0, 0, 0x472C, /* 0x00 */
- 0, 0, 0x472D, 0, 0, 0, 0x472E, 0x472F, /* 0x00 */
- 0, 0x4730, 0, 0x4731, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x4732, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x4733, 0x4734, /* 0x20 */
- 0x4735, 0, 0, 0, 0, 0, 0x4737, 0x4738, /* 0x20 */
- 0, 0x4739, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x473A, 0, 0, 0x473B, 0, 0, 0x473C, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0x473D, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0x473E, 0x473F, /* 0x50 */
- 0, 0x4740, 0, 0, 0, 0x4741, 0, 0x4742, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0x4743, /* 0x60 */
- 0x4744, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0x4745, 0, 0, 0, /* 0x70 */
- 0, 0, 0x4746, 0, 0, 0, 0, 0x4747, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x4748, 0x4749, 0, 0x474A, 0, 0x474B, 0x474C, /* 0x90 */
- 0x474D, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x474E, 0, 0x474F, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x4750, 0, 0, 0x4751, /* 0xB0 */
- 0, 0x4752, 0, 0, 0, 0x4753, 0, 0x4754, /* 0xB0 */
- 0, 0, 0, 0, 0x4755, 0, 0, 0, /* 0xC0 */
- 0x4756, 0, 0x4757, 0, 0, 0, 0x4758, 0x4759, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0x475A, 0, /* 0xD0 */
- 0, 0, 0, 0x475B, 0, 0x475C, 0, 0x475D, /* 0xD0 */
- 0x475E, 0, 0x475F, 0, 0, 0x4760, 0, 0, /* 0xE0 */
- 0, 0x4761, 0, 0, 0, 0, 0, 0x4762, /* 0xE0 */
- 0x4763, 0, 0, 0, 0x4764, 0, 0x4765, 0, /* 0xF0 */
- 0, 0, 0, 0, 0x4766 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_6E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4767, 0, 0, 0, 0x4768, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x4769, 0, /* 0x10 */
- 0, 0, 0x476A, 0, 0, 0, 0, 0x476B, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x476C, 0, 0, 0, 0x476D, 0, /* 0x30 */
- 0, 0x476E, 0, 0x476F, 0x4770, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0x4771, 0x4772, 0, 0, /* 0x40 */
- 0x4773, 0x4774, 0, 0x4775, 0, 0, 0, 0x4776, /* 0x40 */
- 0, 0x4777, 0x4778, 0x4779, 0x477A, 0, 0, 0x477B, /* 0x50 */
- 0, 0, 0, 0, 0x477C, 0x477D, 0x477E, 0, /* 0x50 */
- 0, 0, 0x4821, 0x4822, 0, 0, 0, 0, /* 0x60 */
- 0x4823, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0x4824, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0x4825, 0, 0x4826, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0x4827, 0, 0, /* 0x80 */
- 0, 0, 0, 0x4828, 0, 0, 0, 0, /* 0x90 */
- 0, 0x4829, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x482A, 0, 0, 0, 0, 0, 0, 0x482B, /* 0xA0 */
- 0, 0, 0, 0, 0, 0x482C, 0x482D, 0, /* 0xA0 */
- 0, 0x482E, 0, 0x482F, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x4830, 0, 0, 0, 0x4831, /* 0xB0 */
- 0x4832, 0x4833, 0, 0x4834, 0, 0, 0, 0x4835, /* 0xC0 */
- 0x4836, 0, 0x4837, 0, 0, 0x4838, 0x4839, 0x483A, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0x483B, 0, 0x483C, 0x483D, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0x483E, 0, 0x483F, 0, 0x4840 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_6F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4841, 0, 0, 0, /* 0x00 */
- 0x4842, 0, 0x4843, 0, 0x4844, 0x4845, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0x4846, 0, /* 0x10 */
- 0x4847, 0, 0x4848, 0x4849, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x484A, 0, /* 0x20 */
- 0, 0x484B, 0x484C, 0, 0, 0x4853, 0, 0x484D, /* 0x20 */
- 0x484E, 0, 0, 0x484F, 0, 0, 0x4850, 0, /* 0x30 */
- 0, 0, 0, 0x4851, 0x4852, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0x4854, /* 0x40 */
- 0, 0x4855, 0x4856, 0x4857, 0, 0, 0, 0x4858, /* 0x50 */
- 0, 0x4859, 0x485A, 0, 0, 0x485B, 0x485C, 0, /* 0x50 */
- 0, 0x485D, 0x485E, 0, 0, 0, 0, 0, /* 0x60 */
- 0x485F, 0, 0, 0, 0x4860, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0x4861, 0x4862, 0, /* 0x70 */
- 0, 0, 0, 0x4863, 0, 0, 0, 0x4864, /* 0x80 */
- 0x4865, 0, 0, 0x4866, 0x4867, 0x4868, 0, 0, /* 0x80 */
- 0x4869, 0, 0x486A, 0x486B, 0x486C, 0, 0x486D, 0, /* 0x90 */
- 0, 0, 0x486E, 0, 0, 0, 0, 0x486F, /* 0x90 */
- 0x4870, 0, 0, 0, 0, 0x4871, 0x4872, 0x4873, /* 0xA0 */
- 0x4874, 0, 0, 0, 0, 0, 0x4875, 0x4876, /* 0xA0 */
- 0x4877, 0, 0, 0, 0, 0x4878, 0x4879, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x487A, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x487B, 0, 0x487C, /* 0xC0 */
- 0x487D, 0, 0x487E, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0x4921, 0, 0, 0, 0x4922, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x4923, 0x4924, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x4925, 0, 0, 0, 0, 0x4926, 0, 0, /* 0xF0 */
- 0, 0x4927, 0, 0, 0x4928, 0x4929 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_70[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x492A, 0, 0, 0, 0, 0x492B, 0x492C, 0x492D, /* 0x00 */
- 0, 0, 0, 0, 0, 0x492E, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0x492F, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0x4930, 0, 0, 0x4931, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0x4932, /* 0x20 */
- 0, 0, 0, 0, 0x4933, 0, 0, 0x4934, /* 0x30 */
- 0, 0x4935, 0, 0, 0x4936, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0x4937, 0x4938, 0, 0, 0, /* 0x40 */
- 0x4939, 0x493A, 0x493B, 0x493C, 0, 0, 0x4941, 0, /* 0x40 */
- 0, 0, 0, 0, 0x493D, 0x493E, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0x493F, 0x4940, 0, /* 0x50 */
- 0, 0, 0, 0, 0x4942, 0x4943, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0x4944, 0, 0x4945, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0x4946, 0x4947, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x4948, 0, /* 0x70 */
- 0, 0x4949, 0, 0, 0, 0x494A, 0x494B, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0x494C, 0x494D, 0x494E, 0x494F, /* 0x90 */
- 0x4950, 0, 0, 0x4951, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0x4952, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x4953, 0, 0, 0, 0, /* 0xA0 */
- 0x4954, 0x4955, 0, 0, 0x4956, 0, 0, 0x4957, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0x4958, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x4959, 0, 0x495A, 0x495B, 0x495C, 0x495D, 0, /* 0xD0 */
- 0x495E, 0, 0, 0, 0x495F, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0x4960, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0x4961 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_71[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4962, 0x4963, 0x4964, 0x4965, 0x4966, /* 0x00 */
- 0, 0, 0, 0x4967, 0x4968, 0, 0, 0x4969, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x496A, 0, /* 0x10 */
- 0x496B, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0x496C, 0, 0x496D, 0, 0x496E, /* 0x20 */
- 0x496F, 0x4970, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0x4971, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x4972, 0, 0, 0, 0x4973, 0x4974, 0x4975, /* 0x40 */
- 0, 0, 0x4976, 0x4977, 0, 0, 0, 0, /* 0x40 */
- 0x4978, 0, 0x4979, 0, 0, 0, 0, 0x497A, /* 0x50 */
- 0, 0, 0x497B, 0, 0x497C, 0, 0x497D, 0, /* 0x50 */
- 0x497E, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0x4A21, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x4A22, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0x4A23, 0, 0, 0, 0, 0x4A24, 0, 0x4A25, /* 0x80 */
- 0, 0, 0, 0, 0x4A26, 0, 0, 0, /* 0x80 */
- 0, 0, 0x4A27, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0x4A28, 0x4A29, 0, 0, 0, 0, /* 0x90 */
- 0x4A2A, 0, 0x4A2B, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0x4A2C, /* 0xA0 */
- 0x4A2D, 0, 0x4A2E, 0x4A2F, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0x4A30, 0, 0, 0, 0, 0x4A31, /* 0xB0 */
- 0x4A32, 0x4A33, 0, 0, 0x4A34, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0x4A35, 0x4A36, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0x4A37, 0, 0, 0x4A38, 0, /* 0xD0 */
- 0, 0x4A39, 0x4A3A, 0, 0x4A3B, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0x4A3C, 0, 0, 0, 0, 0, 0x4A3D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_72[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4A3E, 0, 0, 0, 0, 0, 0, 0x4A3F, /* 0x00 */
- 0x4A40, 0x4A41, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0x4A42, 0, 0, 0, 0x4A43, /* 0x10 */
- 0, 0, 0x4A44, 0, 0, 0x4A45, 0, 0x4A46, /* 0x10 */
- 0, 0, 0, 0, 0x4A47, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0x4A48, 0, 0, 0, 0x4A49, /* 0x20 */
- 0, 0, 0, 0, 0x4A4A, 0, 0, 0, /* 0x30 */
- 0x4A4B, 0x4A4C, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x4A4D, 0x4A4E, 0x4A4F, 0, 0x4A50, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0x4A51, 0x4A52, /* 0x40 */
- 0x4A53, 0, 0, 0x4A54, 0, 0x4A55, 0x4A56, 0, /* 0x50 */
- 0, 0, 0x4A57, 0, 0x4A58, 0, 0x4A59, 0, /* 0x50 */
- 0x4A5A, 0, 0, 0x4A5B, 0, 0, 0, 0, /* 0x60 */
- 0x4A5C, 0, 0, 0x4A5D, 0, 0, 0x4A5E, 0x4A5F, /* 0x60 */
- 0, 0x4A60, 0, 0, 0, 0, 0, 0x4A61, /* 0x70 */
- 0x4A62, 0, 0, 0x4A63, 0x4A64, 0, 0, 0x4A65, /* 0x70 */
- 0, 0, 0, 0, 0x4A66, 0, 0, 0, /* 0x80 */
- 0, 0x4A67, 0, 0, 0, 0x4A68, 0x4A69, 0, /* 0x80 */
- 0, 0, 0, 0x4A6A, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0x4A6B, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x4A6C, 0, 0, 0, 0, 0x4A6D, 0x4A6E, 0, /* 0xA0 */
- 0, 0x4A6F, 0, 0, 0x4A70, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0x4A71, 0, /* 0xB0 */
- 0, 0x4A72, 0, 0, 0, 0, 0, 0x4A73, /* 0xC0 */
- 0, 0x4A74, 0, 0, 0x4A75, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0x4A76, 0x4A77, 0, /* 0xD0 */
- 0x4A78, 0, 0, 0, 0, 0, 0, 0x4A79, /* 0xD0 */
- 0, 0, 0, 0, 0, 0x4A7A, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0x4A7B, 0x4A7C, 0, 0, 0, /* 0xF0 */
- 0, 0, 0x4A7D, 0x4A7E, 0, 0, 0x4B21 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_73[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4B22, 0, 0x4B23, 0x4B24, 0, 0x4B25, /* 0x00 */
- 0, 0, 0, 0x4B26, 0, 0x4B27, 0, 0, /* 0x00 */
- 0, 0, 0x4B28, 0x4B29, 0, 0, 0, 0, /* 0x10 */
- 0x4B2A, 0x4B2B, 0, 0, 0, 0, 0x4B2C, 0, /* 0x10 */
- 0, 0, 0x4B2D, 0, 0x4B2E, 0, 0, 0x4B2F, /* 0x20 */
- 0x4B30, 0, 0, 0, 0x4B31, 0, 0, 0, /* 0x20 */
- 0, 0x4B32, 0x4B33, 0, 0, 0x4B34, 0, 0, /* 0x30 */
- 0, 0, 0x4B35, 0x4B36, 0, 0x4B37, 0, 0, /* 0x30 */
- 0, 0, 0, 0x4B38, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0x4B39, 0, 0, /* 0x40 */
- 0x4B3A, 0, 0x4B3B, 0, 0, 0, 0x4B3C, 0, /* 0x50 */
- 0x4B3D, 0, 0, 0, 0, 0x4B3E, 0x4B3F, 0x4B40, /* 0x50 */
- 0x4B41, 0, 0, 0, 0, 0, 0x4B42, 0x4B43, /* 0x60 */
- 0, 0x4B44, 0, 0x4B45, 0x4B46, 0, 0x4B47, 0x4B48, /* 0x60 */
- 0, 0x4B49, 0, 0, 0, 0, 0, 0x4B4A, /* 0x70 */
- 0, 0x4B4B, 0, 0, 0x4B4C, 0, 0, 0, /* 0x70 */
- 0x4B4D, 0x4B4E, 0, 0x4B4F, 0, 0x4B50, 0x4B51, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0x4B52, 0, /* 0x80 */
- 0x4B53, 0, 0, 0x4B54, 0, 0x4B55, 0, 0x4B56, /* 0x90 */
- 0x4B57, 0, 0, 0, 0x4B58, 0, 0x4B59, 0x4B5A, /* 0x90 */
- 0x4B5B, 0, 0x4B5C, 0, 0, 0x4B5D, 0x4B5E, 0, /* 0xA0 */
- 0, 0, 0x4B5F, 0x4B60, 0, 0x4B61, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0x4B62, 0, 0x4B63, /* 0xB0 */
- 0, 0x4B64, 0, 0, 0x4B65, 0x4B66, 0, 0x4B67, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x4B68, 0x4B69, 0, /* 0xC0 */
- 0, 0x4B6A, 0, 0x4B6B, 0x4B6C, 0, 0, 0x4B6D, /* 0xC0 */
- 0, 0, 0x4B6E, 0x4B6F, 0, 0, 0x4B70, 0, /* 0xD0 */
- 0, 0x4B71, 0, 0, 0, 0x4B72, 0, 0, /* 0xD0 */
- 0, 0x4B73, 0, 0x4B74, 0, 0, 0x4B75, 0x4B76, /* 0xE0 */
- 0, 0x4B77, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0x4B78, 0x4B79, 0, 0x4B7A, /* 0xF0 */
- 0, 0x4B7B, 0x4B7C, 0x4B7D, 0, 0x4B7E, 0, 0x4C21 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_74[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4C22, 0x4C23, 0, 0, 0x4C24, 0, 0, 0x4C25, /* 0x00 */
- 0, 0, 0x4C26, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0x4C27, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x4C28, 0x4C29, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0x4C2A, 0, 0x4C2B, 0, /* 0x20 */
- 0x4C2C, 0x4C2D, 0x4C2E, 0x4C2F, 0x4C30, 0x4C31, 0x4C32, 0x4C33, /* 0x20 */
- 0x4C34, 0x4C35, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x4C36, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0x4C37, 0, 0, 0x4C38, 0x4C39, 0, 0x4C3A, 0x4C3B, /* 0x40 */
- 0, 0, 0, 0x4C3C, 0, 0x4C3D, 0, 0, /* 0x40 */
- 0, 0x4C3E, 0x4C3F, 0, 0, 0, 0, 0x4C40, /* 0x50 */
- 0, 0, 0, 0, 0, 0x4C41, 0, 0, /* 0x50 */
- 0, 0, 0x4C42, 0, 0, 0, 0x4C43, 0x4C44, /* 0x60 */
- 0x4C45, 0, 0, 0x4C46, 0, 0x4C47, 0x4C48, 0, /* 0x60 */
- 0, 0x4C49, 0x4C4A, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0x4C4B, 0x4C4C, 0, 0, 0, 0x4C4D, 0x4C4E, 0x4C4F, /* 0x80 */
- 0, 0x4C50, 0, 0, 0, 0, 0, 0x4C51, /* 0x80 */
- 0x4C52, 0x4C53, 0x4C54, 0, 0, 0, 0, 0, /* 0x90 */
- 0x4C55, 0x4C56, 0x4C57, 0, 0x4C58, 0, 0, 0x4C59, /* 0x90 */
- 0x4C5A, 0x4C5B, 0, 0x4C5C, 0, 0, 0x4C5D, 0, /* 0xA0 */
- 0x4C5E, 0x4C5F, 0x4C60, 0x4C61, 0, 0, 0x4C62, 0x4C63, /* 0xA0 */
- 0, 0x4C64, 0x4C65, 0, 0, 0x4C66, 0, 0, /* 0xB0 */
- 0, 0x4C67, 0, 0x4C68, 0, 0, 0, 0x4C69, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0x4C6A, 0x4C6B, 0, 0, 0x4C6C, 0, 0, 0, /* 0xC0 */
- 0x4C6D, 0, 0, 0x4C6E, 0, 0, 0, 0, /* 0xD0 */
- 0x4C6F, 0, 0x4C70, 0x4C71, 0, 0, 0x4C72, 0x4C73, /* 0xD0 */
- 0, 0, 0, 0, 0x4C74, 0, 0, 0, /* 0xE0 */
- 0x4C75, 0, 0x4C76, 0x4C77, 0, 0, 0, 0x4C78, /* 0xE0 */
- 0, 0, 0, 0, 0x4C79, 0, 0, 0, /* 0xF0 */
- 0, 0, 0x4C7A, 0x4C7B, 0x4C7C, 0, 0, 0x4C7D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_75[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4C7E, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0x4D21, 0, 0, 0, 0x4D22, 0x4D23, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0x4D24, 0x4D25, 0, 0, 0x4D26, 0, 0, 0x4D27, /* 0x20 */
- 0, 0x4D28, 0x4D29, 0, 0, 0, 0, 0x4D2A, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0x4D2B, 0, /* 0x30 */
- 0, 0x4D2C, 0, 0, 0, 0x4D2D, 0x4D2E, 0x4D2F, /* 0x30 */
- 0x4D30, 0, 0, 0x4D31, 0, 0, 0, 0x4D32, /* 0x40 */
- 0x4D33, 0, 0, 0, 0, 0, 0x4D34, 0, /* 0x40 */
- 0x4D35, 0, 0x4D36, 0, 0, 0, 0, 0x4D37, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0x4D38, 0x4D39, /* 0x50 */
- 0, 0x4D3A, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0x4D3B, /* 0x60 */
- 0, 0x4D3C, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x4D3D, 0x4D3E, 0x4D3F, 0x4D40, 0x4D41, 0x4D42, 0, /* 0x70 */
- 0, 0x4D43, 0, 0, 0, 0x4D44, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0x4D45, 0, 0x4D46, 0x4D47, 0, 0x4D48, 0, 0, /* 0x90 */
- 0, 0x4D49, 0, 0, 0x4D4A, 0, 0, 0, /* 0x90 */
- 0, 0, 0x4D4B, 0, 0x4D4C, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x4D4D, 0, 0, 0, /* 0xB0 */
- 0, 0, 0x4D4E, 0, 0, 0, 0, 0x4D4F, /* 0xB0 */
- 0x4D50, 0x4D51, 0, 0, 0x4D52, 0, 0x4D53, 0, /* 0xC0 */
- 0, 0, 0, 0, 0x4D54, 0, 0x4D55, 0x4D56, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0x4D57, /* 0xD0 */
- 0, 0, 0, 0, 0x4D58, 0, 0, 0x4D59, /* 0xD0 */
- 0x4D5A, 0x4D5B, 0, 0, 0x4D5C, 0, 0, 0x4D5D, /* 0xE0 */
- 0, 0, 0, 0, 0x4D5E, 0, 0x4D5F, 0x4D60, /* 0xE0 */
- 0, 0x4D61, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0x4D62 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_76[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4D63, 0, 0x4D64, 0x4D65, 0x4D66, 0, 0, 0x4D67, /* 0x00 */
- 0x4D68, 0, 0x4D69, 0, 0x4D6A, 0, 0, 0x4D6B, /* 0x00 */
- 0, 0, 0x4D6C, 0x4D6D, 0, 0x4D6E, 0x4D6F, 0, /* 0x10 */
- 0, 0x4D70, 0, 0x4D71, 0x4D72, 0x4D73, 0x4D74, 0, /* 0x10 */
- 0, 0, 0, 0x4D75, 0, 0x4D76, 0x4D77, 0, /* 0x20 */
- 0, 0x4D78, 0, 0, 0, 0x4D79, 0, 0, /* 0x20 */
- 0, 0, 0x4D7A, 0x4D7B, 0, 0x4D7C, 0, 0, /* 0x30 */
- 0x4D7D, 0x4D7E, 0x4E21, 0, 0x4E22, 0, 0, 0, /* 0x30 */
- 0x4E24, 0x4E25, 0, 0x4E26, 0x4E27, 0x4E28, 0, 0, /* 0x40 */
- 0, 0x4E29, 0x4E23, 0x4E2A, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0x4E2B, 0, 0, /* 0x50 */
- 0, 0x4E2C, 0, 0, 0, 0, 0, 0x4E2D, /* 0x50 */
- 0, 0, 0, 0, 0x4E2E, 0x4E2F, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0x4E30, 0x4E31, 0x4E32, /* 0x60 */
- 0, 0x4E33, 0, 0, 0x4E34, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x4E35, 0, 0, 0, 0x4E36, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0x4E37, 0x4E38, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0x4E39, 0, 0, /* 0x90 */
- 0, 0, 0, 0x4E3A, 0x4E3B, 0x4E3C, 0, 0x4E3D, /* 0x90 */
- 0x4E3E, 0, 0x4E3F, 0x4E40, 0x4E41, 0x4E42, 0x4E43, 0x4E44, /* 0xA0 */
- 0x4E45, 0, 0x4E46, 0, 0, 0x4E47, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x4E48, 0, 0, /* 0xB0 */
- 0, 0x4E49, 0, 0, 0, 0x4E4A, 0, 0, /* 0xC0 */
- 0, 0x4E4B, 0, 0x4E4C, 0x4E4D, 0, 0x4E4E, 0, /* 0xC0 */
- 0, 0, 0, 0, 0x4E4F, 0, 0, 0, /* 0xD0 */
- 0, 0x4E50, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x4E51, 0, 0, 0, 0, 0, 0x4E52, 0, /* 0xE0 */
- 0x4E53, 0, 0, 0, 0x4E54, 0, 0, 0, /* 0xE0 */
- 0x4E55, 0x4E56, 0, 0, 0, 0, 0x4E57, 0, /* 0xF0 */
- 0, 0x4E58, 0, 0, 0x4E59 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_77[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4E5A, 0, 0, 0, 0, 0, 0x4E5B, 0, /* 0x00 */
- 0, 0, 0x4E5C, 0, 0, 0, 0x4E5D, 0, /* 0x00 */
- 0, 0, 0x4E5E, 0, 0x4E5F, 0x4E60, 0, 0x4E61, /* 0x10 */
- 0, 0x4E62, 0x4E63, 0, 0x4E64, 0, 0, 0, /* 0x10 */
- 0, 0, 0x4E65, 0, 0, 0, 0, 0, /* 0x20 */
- 0x4E66, 0, 0, 0, 0, 0x4E67, 0x4E68, 0x4E69, /* 0x20 */
- 0, 0, 0, 0, 0x4E6A, 0x4E6B, 0x4E6C, 0, /* 0x30 */
- 0, 0x4E6D, 0, 0, 0, 0x4E6E, 0x4E6F, 0, /* 0x30 */
- 0, 0, 0x4E70, 0, 0, 0x4E71, 0x4E72, 0, /* 0x40 */
- 0, 0, 0x4E73, 0, 0, 0x4E74, 0x4E75, 0x4E76, /* 0x40 */
- 0, 0, 0x4E77, 0, 0, 0, 0x4E78, 0x4E79, /* 0x50 */
- 0, 0, 0, 0, 0x4E7A, 0, 0x4E7B, 0x4E7C, /* 0x50 */
- 0x4E7D, 0, 0x4E7E, 0, 0x4F21, 0, 0, 0x4F22, /* 0x60 */
- 0, 0, 0x4F23, 0, 0x4F24, 0, 0, 0, /* 0x60 */
- 0x4F25, 0, 0x4F26, 0x4F27, 0x4F28, 0, 0, 0, /* 0x70 */
- 0, 0, 0x4F29, 0, 0, 0x4F2A, 0, 0, /* 0x70 */
- 0x4F2B, 0, 0, 0, 0x4F2C, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0x4F2D, 0x4F2E, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0x4F2F, 0x4F30, 0x4F31, 0, /* 0x90 */
- 0, 0, 0x4F32, 0, 0, 0, 0, 0x4F33, /* 0x90 */
- 0, 0, 0x4F34, 0, 0, 0, 0, 0x4F35, /* 0xA0 */
- 0, 0, 0x4F36, 0, 0, 0, 0x4F37, 0x4F38, /* 0xA0 */
- 0, 0x4F39, 0, 0, 0, 0x4F3A, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0x4F3B, 0, /* 0xB0 */
- 0, 0, 0, 0x4F3C, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x4F3D, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x4F3E, 0x4F3F, 0, 0, 0x4F40, 0, 0, /* 0xD0 */
- 0, 0x4F41, 0, 0, 0, 0, 0x4F42, 0x4F43, /* 0xD0 */
- 0x4F44, 0, 0, 0, 0x4F45, 0, 0x4F46, 0, /* 0xE0 */
- 0, 0, 0x4F47, 0, 0x4F48, 0, 0, 0, /* 0xE0 */
- 0x4F49, 0x4F4A, 0, 0, 0x4F4B, 0, 0, 0, /* 0xF0 */
- 0x4F4C, 0, 0, 0x4F4D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_78[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4F4E, 0x4F4F, 0, /* 0x00 */
- 0, 0x4F50, 0, 0, 0, 0x4F51, 0x4F52, 0, /* 0x00 */
- 0, 0x4F53, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0x4F54, 0, 0, /* 0x10 */
- 0, 0x4F55, 0x4F56, 0x4F57, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0x4F58, 0x4F59, 0, /* 0x20 */
- 0x4F5A, 0, 0, 0, 0, 0x4F5B, 0, 0x4F5C, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0x4F5D, 0x4F5E, 0, 0, 0x4F5F, /* 0x40 */
- 0x4F60, 0, 0, 0, 0x4F61, 0, 0x4F62, 0, /* 0x40 */
- 0, 0, 0x4F63, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0x4F64, 0, 0x4F65, 0, /* 0x50 */
- 0x4F66, 0x4F67, 0, 0x4F68, 0x4F69, 0, 0, 0, /* 0x60 */
- 0x4F6A, 0, 0x4F6B, 0, 0, 0, 0x4F6C, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0x4F6D, 0, 0, 0, 0x4F6E, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0x4F6F, 0, 0, 0, 0, 0x4F70, /* 0x80 */
- 0, 0, 0, 0, 0x4F71, 0, 0, 0, /* 0x90 */
- 0x4F72, 0, 0, 0, 0, 0x4F74, 0x4F75, 0x4F76, /* 0x90 */
- 0, 0x4F73, 0, 0, 0x4F77, 0, 0, 0, /* 0xA0 */
- 0x4F78, 0, 0, 0, 0x4F79, 0x4F7A, 0, 0, /* 0xA0 */
- 0x4F7B, 0x4F7C, 0x4F7D, 0x4F7E, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x5021, 0, 0x5022, 0, 0x5023, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0x5024, /* 0xC0 */
- 0x5025, 0x5026, 0, 0, 0x5027, 0, 0x5028, 0, /* 0xC0 */
- 0, 0, 0x5029, 0x502A, 0, 0x502B, 0x502C, 0, /* 0xD0 */
- 0, 0, 0, 0x502E, 0, 0, 0, 0x502F, /* 0xD0 */
- 0x5030, 0x5031, 0, 0, 0x502D, 0, 0x5032, 0, /* 0xE0 */
- 0, 0, 0x5033, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0x5034, 0x5035, 0, 0, 0x5037, 0x5038, /* 0xF0 */
- 0, 0, 0x5039, 0x503A, 0, 0, 0, 0x503B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_79[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5036, 0, 0, 0, 0, 0, 0x503C, 0, /* 0x00 */
- 0, 0, 0, 0, 0x503D, 0, 0, 0, /* 0x00 */
- 0x503E, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x503F, 0, 0x5040, 0, 0x5041, 0x5042, /* 0x10 */
- 0x5043, 0, 0, 0, 0, 0x5044, 0, 0x5045, /* 0x20 */
- 0, 0x5046, 0, 0, 0, 0x5047, 0, 0, /* 0x20 */
- 0, 0x5048, 0, 0, 0x5049, 0x504A, 0, 0, /* 0x30 */
- 0, 0, 0, 0x504B, 0, 0x504C, 0, 0x504D, /* 0x30 */
- 0, 0, 0, 0, 0x504E, 0x504F, 0x5050, 0, /* 0x40 */
- 0, 0, 0x5051, 0x5052, 0, 0, 0, 0x5053, /* 0x40 */
- 0, 0x5054, 0, 0, 0x5055, 0, 0, 0, /* 0x50 */
- 0x5056, 0, 0, 0x5057, 0x5058, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0x5059, /* 0x60 */
- 0, 0x505A, 0, 0x505B, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0x505C, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x505D, 0, 0x505E, 0x505F, 0, 0x5060, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x5061, 0x5062, 0, 0, 0, /* 0x80 */
- 0, 0x5063, 0, 0x5064, 0x5065, 0x5066, 0x5067, 0, /* 0x90 */
- 0x5068, 0, 0, 0x5069, 0x506A, 0, 0, 0, /* 0x90 */
- 0, 0x506B, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x506C, 0x506D, 0, 0x506E, 0, 0, 0, 0x506F, /* 0xA0 */
- 0, 0x5070, 0, 0, 0x5071, 0, 0, 0, /* 0xB0 */
- 0x5072, 0, 0, 0x5073, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0x5074, 0, 0x5075, 0, 0, 0x5076, /* 0xC0 */
- 0x5077, 0, 0x5078, 0, 0, 0, 0, 0x5079, /* 0xC0 */
- 0, 0, 0, 0, 0x507A, 0, 0x507B, 0, /* 0xD0 */
- 0, 0, 0x507C, 0, 0, 0x507D, 0x507E, 0, /* 0xD0 */
- 0x5121, 0, 0x5122, 0, 0, 0x5123, 0, 0, /* 0xE0 */
- 0, 0, 0x5124, 0x5125, 0, 0x5126, 0, 0, /* 0xE0 */
- 0, 0x5127, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0x5128, 0, 0, 0, 0x5129 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_7A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x512A, 0x512B, 0, 0, 0, 0x512C, /* 0x00 */
- 0, 0x512D, 0x512E, 0, 0x512F, 0, 0, 0, /* 0x00 */
- 0, 0x5130, 0, 0, 0, 0x5131, 0, 0, /* 0x10 */
- 0, 0, 0, 0x5132, 0, 0, 0x5133, 0, /* 0x10 */
- 0, 0x5134, 0, 0, 0, 0, 0, 0x5135, /* 0x20 */
- 0, 0, 0, 0x5136, 0, 0x5137, 0, 0x5138, /* 0x20 */
- 0x5139, 0, 0, 0, 0x513A, 0x513B, 0, 0, /* 0x30 */
- 0x513C, 0x513D, 0x513E, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0x513F, 0x5140, 0, 0x5141, /* 0x40 */
- 0x5142, 0, 0, 0, 0x5143, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0x5144, 0x5145, 0, /* 0x50 */
- 0, 0x5146, 0, 0, 0x5147, 0x5148, 0, 0x5149, /* 0x50 */
- 0x514A, 0, 0, 0, 0, 0x514B, 0, 0x514C, /* 0x60 */
- 0, 0, 0x514D, 0, 0, 0x514E, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0x514F, 0, 0, /* 0x70 */
- 0x5150, 0, 0, 0, 0, 0, 0x5151, 0, /* 0x70 */
- 0x5152, 0, 0x5153, 0, 0, 0x5154, 0x5155, 0, /* 0x80 */
- 0, 0, 0x5156, 0x5157, 0, 0, 0, 0, /* 0x80 */
- 0x5158, 0x5159, 0, 0, 0x515A, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0x515B, 0, /* 0x90 */
- 0x515C, 0, 0, 0x515D, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x515E, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x515F, 0, 0x5160, 0, 0, /* 0xB0 */
- 0, 0x5161, 0, 0x5162, 0x5163, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0x5164, 0, /* 0xC0 */
- 0, 0x5165, 0, 0, 0x5166, 0, 0x5167, 0, /* 0xC0 */
- 0, 0x5168, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0x5169, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x516A, 0x516B, 0, 0x516C, 0x516D, 0, 0, 0, /* 0xE0 */
- 0, 0x516E, 0, 0, 0x516F, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0x5170, 0, 0x5171, 0x5172 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_7B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5173, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0x5174, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0x5175, /* 0x10 */
- 0, 0, 0, 0x5176, 0, 0, 0, 0x5177, /* 0x20 */
- 0, 0x5178, 0x5179, 0x517A, 0, 0x517B, 0x517C, 0x517D, /* 0x20 */
- 0x517E, 0x5221, 0, 0, 0x5222, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0x5223, 0, 0x5224, /* 0x30 */
- 0x5225, 0x5226, 0, 0, 0, 0, 0, 0x5227, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0x5228, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0x5229, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0x522A, 0, 0, 0, 0x522B, 0, 0x522C, 0, /* 0x60 */
- 0, 0x522D, 0x522E, 0, 0, 0x522F, 0, 0x5230, /* 0x60 */
- 0, 0, 0x5231, 0x5232, 0, 0, 0, 0x5233, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0x5234, 0, 0, 0, /* 0x80 */
- 0, 0x5235, 0, 0, 0, 0, 0x5236, 0, /* 0x80 */
- 0x5237, 0x5238, 0, 0, 0, 0, 0x5239, 0, /* 0x90 */
- 0, 0, 0, 0x523A, 0, 0, 0x523B, 0, /* 0x90 */
- 0x523C, 0, 0, 0, 0, 0x523D, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x523E, 0, 0, 0x523F, /* 0xA0 */
- 0x5240, 0, 0x5241, 0, 0, 0x5242, 0x5243, 0, /* 0xB0 */
- 0, 0, 0x5244, 0x5245, 0x5246, 0x5247, 0, 0, /* 0xB0 */
- 0, 0, 0x5248, 0, 0, 0x5249, 0, 0, /* 0xC0 */
- 0x524A, 0, 0x524B, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0x524C, 0, 0x524D, 0x524E, /* 0xD0 */
- 0, 0x524F, 0x5250, 0x5251, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x5252, 0, 0x5253, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0x5254, 0, 0x5255, 0x5256, 0, 0, /* 0xF0 */
- 0x5257, 0x5258, 0x5259, 0, 0x525A, 0, 0x525B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_7C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x525C, 0x525D, 0x525E, 0x525F, 0, 0x5260, 0, /* 0x00 */
- 0, 0x5261, 0, 0x5262, 0x5263, 0, 0x5264, 0x5265, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0x5266, 0, 0x5267, 0, 0, 0, 0, /* 0x10 */
- 0x5268, 0, 0, 0, 0, 0x5269, 0x526A, 0, /* 0x20 */
- 0x526B, 0, 0, 0, 0x526C, 0, 0, 0, /* 0x20 */
- 0, 0x526D, 0, 0x526E, 0x526F, 0, 0x5270, 0, /* 0x30 */
- 0, 0x5271, 0x5272, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0x5273, 0, /* 0x40 */
- 0, 0, 0x5274, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0x5276, 0x5277, 0x5278, 0, 0x5275, 0, 0, /* 0x50 */
- 0, 0x5279, 0x527A, 0x527B, 0x527C, 0x527D, 0x527E, 0, /* 0x50 */
- 0, 0x5321, 0, 0x5322, 0, 0, 0, 0x5323, /* 0x60 */
- 0, 0x5324, 0, 0, 0, 0x5325, 0x5326, 0, /* 0x60 */
- 0x5327, 0, 0x5328, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x5329, 0, 0, 0x532A, 0x532B, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x532C, 0x532D, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0x532E, /* 0x80 */
- 0, 0, 0, 0, 0x532F, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0x5330, 0, /* 0x90 */
- 0x5331, 0, 0, 0, 0, 0, 0x5332, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x5333, 0, 0, 0, 0, 0, 0x5334, 0x5335, /* 0xB0 */
- 0, 0, 0x5336, 0x5337, 0x5338, 0, 0, 0x5339, /* 0xB0 */
- 0, 0, 0, 0, 0x533A, 0, 0, 0x533B, /* 0xC0 */
- 0x533C, 0x533D, 0, 0, 0, 0x533E, 0, 0x533F, /* 0xC0 */
- 0, 0, 0, 0x5340, 0x5341, 0x5342, 0, 0x5343, /* 0xD0 */
- 0, 0x5344, 0x5345, 0, 0, 0x5346, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0x5347, 0, /* 0xE0 */
- 0, 0x5348, 0, 0x5349, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0x534A /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_7D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x534B, 0, 0, 0, 0x534C, /* 0x00 */
- 0x534D, 0x534E, 0, 0, 0, 0, 0, 0x534F, /* 0x00 */
- 0, 0x5350, 0x5351, 0x5352, 0, 0, 0x5353, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0x5354, 0x5355, 0, /* 0x10 */
- 0, 0, 0, 0x5356, 0, 0, 0x5357, 0, /* 0x20 */
- 0, 0, 0x5358, 0, 0, 0x5359, 0, 0, /* 0x20 */
- 0, 0x535A, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0x535B, 0x535C, 0x535D, 0, /* 0x30 */
- 0x535E, 0x535F, 0, 0, 0, 0, 0, 0x5360, /* 0x40 */
- 0x5361, 0, 0, 0, 0, 0x5362, 0, 0, /* 0x40 */
- 0, 0x5363, 0, 0x5364, 0, 0, 0, 0x5365, /* 0x50 */
- 0, 0x5366, 0x5367, 0, 0x5368, 0x5369, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0x536A, 0, 0x536B, /* 0x60 */
- 0, 0, 0x536C, 0, 0, 0, 0, 0, /* 0x60 */
- 0x536D, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0x536E, 0, 0x536F, 0x5370, 0, 0, 0, 0x5371, /* 0x70 */
- 0, 0x5372, 0x5373, 0x5374, 0, 0x5375, 0x5376, 0, /* 0x80 */
- 0x5377, 0, 0, 0x5378, 0x5379, 0x537A, 0, 0, /* 0x80 */
- 0, 0x537B, 0, 0, 0, 0, 0x537C, 0x537D, /* 0x90 */
- 0, 0, 0, 0, 0, 0x537E, 0x5421, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0x5422, 0x5423, /* 0xA0 */
- 0, 0, 0x5424, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x5425, 0, 0, 0x5426, 0x5427, /* 0xB0 */
- 0, 0x5428, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0x5429, 0x542A, 0x542B, 0x542C, 0x542D, 0, /* 0xC0 */
- 0, 0, 0, 0, 0x542E, 0x542F, 0x5430, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0x5431, /* 0xD0 */
- 0, 0x5432, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0x5434, 0, 0, 0x5435, 0x5436, 0, /* 0xE0 */
- 0, 0, 0x5437, 0x5438, 0, 0x5439, 0, 0, /* 0xE0 */
- 0, 0x543A, 0, 0, 0, 0x543B, 0x543C, 0, /* 0xF0 */
- 0, 0x543D, 0x543E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_7E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5433, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0x543F, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0x5440, 0x5441, 0, 0, 0, 0x5442, 0, 0x5443, /* 0x10 */
- 0, 0, 0, 0, 0x5444, 0x5445, 0, 0, /* 0x10 */
- 0x5446, 0, 0, 0, 0, 0, 0, 0x5447, /* 0x20 */
- 0x5448, 0, 0, 0, 0x5449, 0x544A, 0, 0x544B, /* 0x20 */
- 0, 0, 0, 0x544C, 0, 0, 0x544D, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0x544E, /* 0x30 */
- 0, 0, 0, 0, 0x544F, 0x5450, 0, 0x5451, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0x5452, 0, /* 0x40 */
- 0x5453, 0, 0x5454, 0, 0, 0, 0, 0, /* 0x50 */
- 0x5455, 0, 0, 0, 0, 0, 0, 0x5456, /* 0x50 */
- 0, 0x5457, 0x5458, 0, 0, 0x5459, 0, 0, /* 0x60 */
- 0, 0, 0, 0x545A, 0, 0, 0x545B, 0x545C, /* 0x60 */
- 0, 0, 0, 0x545D, 0, 0, 0, 0, /* 0x70 */
- 0x545E, 0, 0, 0, 0, 0, 0x545F, 0, /* 0x70 */
- 0, 0x5460, 0, 0, 0, 0, 0x5461, 0x5462, /* 0x80 */
- 0, 0, 0x5463, 0, 0, 0x5464, 0, 0, /* 0x80 */
- 0, 0x5465, 0, 0, 0, 0x5466, 0, 0, /* 0x90 */
- 0x5467, 0, 0x5468, 0, 0, 0x5469, 0x546A /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_7F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x30 */
- 0x546C, 0x546B, 0x546D, 0x546E, 0x546F, /* 0x30 */
- 0, 0, 0, 0x5470, 0x5471, 0, 0, 0x5472, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0x5473, /* 0x40 */
- 0, 0, 0x5474, 0x5475, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0x5476, 0x5477, 0x5478, 0, 0, /* 0x50 */
- 0, 0x5479, 0, 0x547A, 0x547B, 0x547C, 0x547D, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0x547E, 0, 0, /* 0x60 */
- 0, 0x5521, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0x5522, 0x5523, 0x5524, /* 0x70 */
- 0x5525, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0x5526, 0, 0x5527, 0, 0x5528, /* 0x80 */
- 0x5529, 0x552A, 0, 0, 0, 0, 0x552B, 0x552C, /* 0x90 */
- 0, 0, 0, 0, 0x552D, 0, 0, 0, /* 0x90 */
- 0, 0x552E, 0x552F, 0, 0, 0, 0x5530, 0, /* 0xA0 */
- 0, 0, 0x5531, 0, 0, 0x5532, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x5533, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0x5534, 0, 0, 0x5535, /* 0xB0 */
- 0x5536, 0, 0, 0x5537, 0, 0, 0, 0, /* 0xC0 */
- 0x5538, 0, 0, 0, 0, 0, 0x5539, 0x553A, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0x553B, 0, 0, 0, 0x553C, /* 0xD0 */
- 0, 0, 0, 0x553D, 0, 0x553E, 0, 0, /* 0xE0 */
- 0x553F, 0, 0, 0, 0x5540, 0, 0x5541, 0x5542, /* 0xE0 */
- 0, 0, 0x5543, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0x5544, 0, 0, 0x5545, 0x5546, 0x5547 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_80[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5548, /* 0x00 */
- 0x5549, 0, 0x554A, 0, 0, 0x554B, 0x554C, 0x554D, /* 0x00 */
- 0, 0x554E, 0, 0x554F, 0x5550, 0, 0x5551, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0x5552, 0x5553, 0x5554, /* 0x10 */
- 0x5555, 0, 0, 0, 0x5556, 0, 0x5557, 0, /* 0x20 */
- 0, 0, 0, 0, 0x5558, 0, 0x5559, 0, /* 0x20 */
- 0x555A, 0, 0, 0, 0x555B, 0x555C, 0, 0x555D, /* 0x30 */
- 0, 0x555E, 0x555F, 0, 0x5560, 0, 0x5561, 0, /* 0x30 */
- 0x5562, 0, 0, 0, 0x5563, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0x5564, 0, 0, 0, 0x5565, 0, 0x5566, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0x5567, 0, 0, /* 0x60 */
- 0, 0x5568, 0, 0, 0, 0x5569, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x556A, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0x556B, 0, 0, 0, 0, 0, 0x556C, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0x556D, 0, 0x556E, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0x556F, 0x5570, /* 0xA0 */
- 0, 0, 0, 0x5571, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0x5572, 0x5573, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0x5574, 0, 0, 0, 0, 0x5575, 0, 0x5576, /* 0xC0 */
- 0, 0, 0x5577, 0, 0x5578, 0x5579, 0, 0x557A, /* 0xD0 */
- 0x557B, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x557C, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0x557D, 0x557E, 0, /* 0xE0 */
- 0x5621, 0, 0x5622, 0x5623, 0, 0, 0x5624, 0, /* 0xF0 */
- 0, 0x5625, 0x5626, 0, 0, 0, 0x5627 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_81[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5628, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0x5629, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0x562A, 0x562B, /* 0x10 */
- 0x562C, 0, 0, 0, 0x562D, 0, 0x562E, 0, /* 0x10 */
- 0x562F, 0, 0, 0, 0x5630, 0, 0, 0x5631, /* 0x20 */
- 0, 0, 0, 0, 0x5632, 0, 0, 0, /* 0x20 */
- 0x5633, 0, 0, 0, 0, 0x5634, 0, 0, /* 0x30 */
- 0, 0, 0x5635, 0, 0x5636, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0x5637, 0, 0x5638, /* 0x40 */
- 0, 0, 0x5639, 0, 0x563A, 0, 0, 0, /* 0x40 */
- 0, 0, 0x563B, 0, 0, 0, 0, 0x563C, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0x563D, 0x563E, 0, 0, 0, 0, 0, 0x563F, /* 0x60 */
- 0x5640, 0x5641, 0, 0, 0, 0x5642, 0, 0x5643, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0x5644, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x5645, 0, 0, 0x5647, 0x5648, 0x5649, 0, /* 0x80 */
- 0, 0, 0, 0x564A, 0, 0, 0x564B, 0, /* 0x80 */
- 0x5646, 0, 0, 0, 0, 0, 0x564C, 0, /* 0x90 */
- 0x564D, 0, 0, 0x564E, 0, 0, 0x564F, 0, /* 0x90 */
- 0, 0, 0x5650, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0x5651, 0, /* 0xA0 */
- 0, 0, 0x5652, 0, 0x5653, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x5654, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0x5656, 0, 0x5657, 0, 0, /* 0xC0 */
- 0, 0, 0x5658, 0x5655, 0, 0, 0x5659, 0x565A, /* 0xC0 */
- 0, 0, 0, 0, 0, 0x565B, 0, 0x565C, /* 0xD0 */
- 0, 0, 0, 0x565D, 0, 0x565E, 0x565F, 0, /* 0xD0 */
- 0, 0x5660, 0, 0, 0x5661, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0x5662, 0x5663, 0, 0, 0, /* 0xE0 */
- 0x5664, 0x5665, 0x5666, 0, 0, 0x5667, 0x5668, 0, /* 0xF0 */
- 0x5669, 0x566A, 0, 0, 0, 0x566B, 0, 0x566C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_82[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x566D, 0, 0, 0x566E, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0x566F, /* 0x00 */
- 0, 0, 0, 0x5670, 0x5671, 0, 0, 0, /* 0x10 */
- 0, 0x5672, 0x5673, 0, 0, 0x5674, 0, 0, /* 0x10 */
- 0, 0x5675, 0x5676, 0, 0, 0, 0, 0, /* 0x20 */
- 0x5677, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0x5678, 0, 0x5679, 0, 0, 0, /* 0x30 */
- 0, 0, 0x567A, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0x567B, 0x567C, 0x567D, 0x567E, 0, /* 0x40 */
- 0, 0, 0, 0x5721, 0, 0, 0x5722, 0x5723, /* 0x40 */
- 0, 0x5724, 0, 0, 0, 0, 0x5725, 0, /* 0x50 */
- 0, 0, 0, 0, 0x5726, 0, 0, 0, /* 0x50 */
- 0x5727, 0, 0, 0x5728, 0, 0, 0, 0x5729, /* 0x60 */
- 0, 0, 0, 0, 0, 0x572A, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0x572B, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0x572C, 0, 0x572D, 0, 0x572E, /* 0x70 */
- 0x572F, 0x5730, 0, 0x5731, 0x5732, 0, 0, 0x5733, /* 0x80 */
- 0, 0x5734, 0x5735, 0, 0, 0, 0x5736, 0, /* 0x80 */
- 0, 0x5737, 0, 0, 0x5738, 0, 0x5739, 0, /* 0x90 */
- 0x573A, 0, 0x573B, 0x573C, 0, 0, 0, 0, /* 0x90 */
- 0x573D, 0x573E, 0, 0x573F, 0x5740, 0, 0, 0x5741, /* 0xA0 */
- 0x5742, 0x5743, 0x5744, 0, 0, 0, 0x5745, 0, /* 0xA0 */
- 0x5746, 0, 0x5747, 0, 0x5748, 0, 0, 0x5749, /* 0xB0 */
- 0, 0, 0x574A, 0, 0x574B, 0, 0x574C, 0x574D, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0x574E, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0x574F, 0, 0, 0, 0, 0x5750, 0, 0, /* 0xD0 */
- 0, 0, 0x5751, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x5752, 0, 0x5753, 0, 0x5754, 0, 0, 0, /* 0xE0 */
- 0x5755, 0, 0x5756, 0, 0, 0x5757, 0, 0x5758, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0x5759, 0x575A, /* 0xF0 */
- 0, 0, 0, 0, 0, 0x575B, 0x575C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_83[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x575D, 0x575E, 0, 0, 0, 0, 0, 0x575F, /* 0x00 */
- 0x5760, 0, 0x5761, 0x5762, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0x5764, 0, 0x5765, 0x5766, 0x5767, /* 0x10 */
- 0, 0x5768, 0x5769, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0x576A, 0x576B, 0x576C, 0, /* 0x20 */
- 0x576D, 0, 0, 0x576E, 0, 0, 0, 0x576F, /* 0x30 */
- 0, 0, 0x5770, 0, 0x5771, 0x5772, 0, 0, /* 0x30 */
- 0, 0, 0x5773, 0x5774, 0x5775, 0, 0, 0x5776, /* 0x40 */
- 0, 0, 0, 0, 0, 0x5777, 0x5778, 0, /* 0x40 */
- 0, 0x5779, 0, 0x583E, 0x5763, 0x577A, 0x577B, 0x577C, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0x577D, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0x577E, 0, 0, 0, 0, 0x5821, 0, 0x5822, /* 0x70 */
- 0x5823, 0, 0x5824, 0, 0x5825, 0, 0x5826, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0x5827, 0, 0, /* 0x80 */
- 0, 0, 0x5828, 0, 0x5829, 0x582A, 0, 0, /* 0x90 */
- 0x582B, 0x582C, 0, 0x582D, 0x582E, 0x582F, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0x5830, 0x5831, /* 0xA0 */
- 0, 0x5832, 0, 0, 0x5833, 0x584C, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0x5834, 0x5835, /* 0xB0 */
- 0x5836, 0, 0, 0, 0, 0, 0, 0x5837, /* 0xC0 */
- 0, 0x5838, 0, 0, 0, 0, 0, 0x5839, /* 0xC0 */
- 0x583A, 0x583B, 0, 0, 0x583C, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0x583D, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x583F, 0, 0x5840, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0x5841, 0, /* 0xF0 */
- 0x5842, 0x5843, 0, 0, 0x5844 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_84[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5845, 0, 0, 0, 0, 0x5846, 0, /* 0x00 */
- 0, 0, 0x5847, 0, 0, 0, 0, 0x5848, /* 0x00 */
- 0, 0x5849, 0, 0, 0, 0x584A, 0, 0, /* 0x10 */
- 0, 0x584B, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0x584D, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x584E, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0x584F, 0, 0x5850, /* 0x40 */
- 0x5851, 0, 0x5852, 0, 0, 0x5853, 0, 0x5854, /* 0x40 */
- 0, 0x5855, 0x5856, 0, 0, 0, 0x5857, 0, /* 0x50 */
- 0x5858, 0x5859, 0x585A, 0, 0x585B, 0, 0, 0, /* 0x50 */
- 0x585C, 0, 0, 0, 0x585D, 0x585E, 0, 0x585F, /* 0x60 */
- 0, 0, 0x5860, 0, 0, 0, 0, 0, /* 0x60 */
- 0x5861, 0, 0, 0x5862, 0x5863, 0, 0x5864, 0, /* 0x70 */
- 0x5865, 0, 0, 0, 0x5866, 0x5867, 0, 0, /* 0x70 */
- 0, 0x5868, 0, 0, 0, 0x5869, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0x586A, 0x586B, 0, 0x586C, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0x586D, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0x586E, 0, /* 0xA0 */
- 0x586F, 0x5870, 0x5871, 0, 0, 0, 0, 0x5872, /* 0xA0 */
- 0, 0x5873, 0, 0, 0x5874, 0, 0, 0, /* 0xB0 */
- 0, 0, 0x5875, 0, 0, 0x5876, 0x5877, 0, /* 0xB0 */
- 0x5878, 0, 0x5879, 0, 0, 0, 0, 0x587A, /* 0xC0 */
- 0x587B, 0, 0, 0, 0x587C, 0, 0, 0x587D, /* 0xC0 */
- 0, 0, 0, 0x587E, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0x5921, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0x5922, /* 0xE0 */
- 0, 0, 0x5923, 0, 0, 0, 0, 0x5924, /* 0xE0 */
- 0x5925, 0x5926, 0x5927, 0, 0, 0, 0, 0x5928, /* 0xF0 */
- 0, 0, 0x592A, 0x592B, 0, 0x592C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_85[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x592D, 0x592E, 0, 0, 0, 0x592F, /* 0x00 */
- 0, 0, 0, 0, 0x5930, 0, 0x5931, 0, /* 0x00 */
- 0x5932, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0x5933, 0, 0x5934, 0, /* 0x10 */
- 0, 0, 0x5935, 0x5936, 0x5937, 0x5938, 0, 0x5939, /* 0x20 */
- 0, 0, 0x593A, 0x593B, 0, 0, 0, 0x593C, /* 0x20 */
- 0, 0, 0x5929, 0x593D, 0x593E, 0, 0x593F, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0x5940, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0x5941, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0x5942, /* 0x40 */
- 0x5943, 0x5944, 0x5945, 0x5946, 0, 0, 0x5947, 0, /* 0x50 */
- 0, 0x5948, 0, 0, 0x5949, 0x594A, 0x594B, 0x594C, /* 0x50 */
- 0x594D, 0x594E, 0x594F, 0, 0x5950, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0x5951, 0, 0, 0, 0x5952, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x5953, 0x5954, 0x5955, 0, 0x5956, 0, 0x5957, /* 0x70 */
- 0, 0x5958, 0, 0, 0, 0x5959, 0x595A, 0, /* 0x80 */
- 0, 0x595B, 0, 0x595C, 0x595D, 0, 0, 0x595E, /* 0x80 */
- 0, 0, 0, 0x595F, 0, 0, 0, 0, /* 0x90 */
- 0x5960, 0, 0, 0, 0, 0x5961, 0, 0x5962, /* 0x90 */
- 0x5963, 0, 0x5964, 0, 0, 0x5965, 0, 0x5966, /* 0xA0 */
- 0, 0, 0, 0, 0, 0x5974, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x5967, 0, 0x5968, 0x5969, /* 0xB0 */
- 0x596A, 0, 0, 0, 0x596B, 0x596C, 0x596D, 0x596E, /* 0xB0 */
- 0, 0, 0x596F, 0, 0, 0, 0, 0x5970, /* 0xC0 */
- 0, 0, 0x5971, 0x5972, 0, 0, 0x5973, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x5975, 0, 0x5976, 0, 0, 0, 0, 0x5977, /* 0xD0 */
- 0x5978, 0, 0, 0, 0, 0, 0x5979, 0, /* 0xE0 */
- 0x597A, 0, 0, 0, 0, 0x597B, 0, 0, /* 0xE0 */
- 0, 0, 0, 0x597C, 0, 0, 0x597D, 0, /* 0xF0 */
- 0, 0, 0, 0, 0x597E, 0, 0, 0x5A21 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_86[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5A22, 0, 0, 0, 0x5A23, 0x5A24, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0x5A25, 0x5A26, 0, /* 0x00 */
- 0x5A27, 0x5A28, 0x5A29, 0, 0, 0, 0, 0, /* 0x10 */
- 0x5A2A, 0x5A2B, 0, 0x5A2C, 0, 0, 0x5A2D, 0, /* 0x10 */
- 0, 0x5A2E, 0, 0, 0, 0, 0, 0x5A2F, /* 0x20 */
- 0, 0x5A30, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0x5A31, 0, /* 0x30 */
- 0x5A32, 0, 0x5A33, 0, 0x5A34, 0x5A35, 0, 0, /* 0x30 */
- 0x5A36, 0x3866, 0x5A37, 0, 0, 0, 0x5A38, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x5A39, 0x5A3A, 0, 0, 0x5A3B, 0x5A3C, /* 0x50 */
- 0x5A3D, 0x5A3E, 0, 0, 0, 0x5A3F, 0, 0, /* 0x50 */
- 0x5A40, 0x5A41, 0x5A42, 0x5A43, 0x5A44, 0, 0, 0, /* 0x60 */
- 0, 0x5A45, 0, 0, 0x5A46, 0, 0, 0x5A47, /* 0x60 */
- 0, 0, 0, 0, 0, 0x5A48, 0x5A49, 0x5A4A, /* 0x70 */
- 0, 0, 0x5A4B, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0x5A6D, 0, 0, 0, 0, 0x5A4C, 0, 0, /* 0x80 */
- 0, 0x5A4D, 0, 0, 0, 0, 0x5A4E, 0, /* 0x90 */
- 0x5A4F, 0, 0x5A50, 0, 0x5A51, 0, 0, 0, /* 0x90 */
- 0, 0x5A52, 0, 0, 0, 0, 0x5A53, 0x5A54, /* 0xA0 */
- 0x5A55, 0, 0, 0, 0, 0x5A56, 0, 0, /* 0xA0 */
- 0, 0x5A57, 0, 0x5A58, 0x5A59, 0x5A5A, 0, 0x5A5B, /* 0xB0 */
- 0x5A5C, 0x5A5D, 0, 0, 0, 0, 0, 0x5A5E, /* 0xB0 */
- 0x5A5F, 0x5A60, 0, 0x5A61, 0, 0x5A62, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x5A63, 0x5A64, 0, 0, 0x5A65, 0, 0x5A66, /* 0xD0 */
- 0, 0, 0x5A67, 0, 0x5A68, 0, 0, 0, /* 0xD0 */
- 0x5A69, 0, 0, 0x5A6A, 0, 0x5A6B, 0, 0x5A6C, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0x5A6E, 0, 0x5A6F, 0x5A70 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_87[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5A71, 0x5A72, 0, 0x5A73, /* 0x00 */
- 0, 0, 0, 0x5A74, 0, 0, 0x5A75, 0x5A76, /* 0x00 */
- 0x5A77, 0, 0, 0x5A78, 0x5A79, 0, 0, 0, /* 0x10 */
- 0, 0x5A7A, 0, 0, 0, 0, 0x5A7B, 0x5A7C, /* 0x10 */
- 0, 0x5A7D, 0, 0x5A7E, 0, 0, 0, 0, /* 0x20 */
- 0x5B21, 0, 0, 0, 0, 0, 0x5B22, 0x5B23, /* 0x20 */
- 0, 0x5B24, 0x5B25, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x5B26, 0x5B27, 0, 0x5B28, 0x5B29, 0x5B2A, 0, /* 0x30 */
- 0x5B2B, 0, 0, 0x5B2C, 0, 0x5B2D, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0x5B2E, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0x5B2F, 0, 0, 0, 0, 0x5B30, 0, 0, /* 0x50 */
- 0, 0x5B31, 0, 0, 0x5B32, 0x5B33, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0x5B34, /* 0x60 */
- 0, 0x5B35, 0x5B36, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0x5B37, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0x5B38, 0x5B39, 0x5B3A, 0x5B3B, 0x5B3C, /* 0x80 */
- 0x5B3D, 0x5B3E, 0, 0x5B3F, 0x5B40, 0, 0, 0, /* 0x80 */
- 0x5B41, 0, 0, 0x5B42, 0, 0x5B43, 0, 0x5B44, /* 0x90 */
- 0x5B45, 0x5B46, 0, 0, 0, 0, 0x5B47, 0, /* 0x90 */
- 0x5B48, 0, 0, 0x5B49, 0, 0, 0, 0x5B4A, /* 0xA0 */
- 0, 0, 0, 0, 0x5B4B, 0x5B4C, 0x5B4D, 0, /* 0xA0 */
- 0, 0x5B4E, 0, 0, 0, 0x5B4F, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0x5B50, 0x5B51, /* 0xB0 */
- 0, 0x5B52, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0x5B53, 0x5B54, 0x5B55, 0, 0, 0, 0x5B56, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0x5B57, 0x5B58, 0, /* 0xD0 */
- 0, 0x5B59, 0x5B5A, 0, 0x5B5B, 0, 0, 0x5B5C, /* 0xD0 */
- 0, 0, 0x5B5D, 0x5B5E, 0x5B5F, 0, 0, 0, /* 0xE0 */
- 0, 0, 0x5B60, 0x5B61, 0, 0x5B62, 0, 0, /* 0xE0 */
- 0, 0x5B63, 0, 0x5B64, 0, 0, 0, 0, /* 0xF0 */
- 0x5B65, 0, 0x5B66, 0, 0, 0, 0, 0x5B67 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_88[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5B68, 0, 0x5B69, 0, 0, 0x5B6A, 0, /* 0x00 */
- 0, 0x5B6B, 0x5B6C, 0x5B6D, 0, 0, 0, 0, /* 0x00 */
- 0x5B6E, 0, 0x5B70, 0x5B71, 0x5B72, 0, 0, 0, /* 0x10 */
- 0x5B73, 0x5B6F, 0x5B74, 0x5B75, 0x5B76, 0, 0x5B77, 0x5B78, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0x5B79, 0, 0, 0, 0, 0x5B7A, 0x5B7B, 0, /* 0x20 */
- 0x5B7C, 0, 0x5B7D, 0, 0, 0x5B7E, 0, 0, /* 0x30 */
- 0, 0, 0x5C21, 0, 0x5C22, 0, 0, 0, /* 0x30 */
- 0, 0x5C23, 0, 0x5C24, 0, 0x5C25, 0, 0, /* 0x40 */
- 0x5C26, 0x5C27, 0x5C28, 0x5C29, 0, 0, 0x5C2A, 0, /* 0x40 */
- 0, 0x5C2B, 0, 0, 0, 0x5C2C, 0x5C2D, 0, /* 0x50 */
- 0x5C2E, 0, 0x5C2F, 0, 0x5C30, 0, 0, 0x5C31, /* 0x50 */
- 0x5C32, 0, 0, 0, 0x5C33, 0, 0, 0, /* 0x60 */
- 0, 0x5C34, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0x5C35, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x5C36, 0, 0x5C37, 0, 0, 0, 0, /* 0x70 */
- 0x5C38, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x5C39, 0, 0x5C3A, 0x5C3B, 0x5C3C, 0, 0, 0x5C3D, /* 0x90 */
- 0x5C3E, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x5C3F, 0, 0x5C40, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0x5C41, 0, 0, 0x5C42, 0x5C43, 0, /* 0xB0 */
- 0x5C44, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0x5C45, 0x5C46, 0x5C47, 0x5C48, 0x5C49, 0, /* 0xC0 */
- 0, 0x5C4A, 0x5C4B, 0x5C4C, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0x5C4D, 0, 0, 0x5C4E, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0x5C4F, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0x5C50, /* 0xE0 */
- 0x5C51, 0x5C52, 0, 0, 0, 0x5C53, 0, 0x5C54 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_89[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5C55, 0, 0, 0, 0, 0x5C56, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0x5C57, 0x5C58, 0x5C59, /* 0x00 */
- 0, 0, 0, 0, 0, 0x5C5A, 0x5C5B, 0, /* 0x10 */
- 0x5C5C, 0x5C5D, 0x5C5E, 0, 0x5C5F, 0, 0, 0, /* 0x10 */
- 0x5C60, 0, 0, 0, 0, 0, 0x5C61, 0x5C62, /* 0x20 */
- 0x5C63, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0x5C64, 0x5C65, 0x5C66, 0, 0, 0x5C67, 0, 0, /* 0x30 */
- 0, 0x5C68, 0x5C69, 0, 0, 0, 0x5C6A, 0, /* 0x30 */
- 0x5C6B, 0, 0x5C6C, 0, 0, 0x5C6D, 0x5C6E, 0, /* 0x40 */
- 0, 0x5C6F, 0, 0, 0, 0, 0, 0x5C70, /* 0x40 */
- 0, 0, 0x5C71, 0, 0, 0, 0, 0x5C72, /* 0x50 */
- 0, 0, 0x5C73, 0x5C74, 0x5C75, 0, 0, 0, /* 0x50 */
- 0, 0x5C76, 0x5C77, 0x5C78, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0x5C79, 0, 0, 0x5C7A, 0, /* 0x60 */
- 0x5C7B, 0, 0, 0x5C7C, 0, 0x5C7D, 0, 0, /* 0x70 */
- 0, 0, 0x5C7E, 0x5D21, 0x5D22, 0x5D23, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x5D24, 0, 0, 0, 0x5D25, 0, 0, /* 0x80 */
- 0x5D26, 0, 0, 0, 0x5D27, 0x5D28, 0, 0, /* 0x90 */
- 0, 0, 0, 0x5D29, 0x5D2A, 0, 0, 0x5D2B, /* 0x90 */
- 0x5D2C, 0, 0, 0, 0, 0x5D2D, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x5D2E, 0, 0, 0, 0x5D2F, 0x5D30, 0x5D31, 0x5D32, /* 0xB0 */
- 0, 0, 0, 0, 0x5D33, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0x5D34, 0x5D35, 0x5D36, 0x5D37, /* 0xD0 */
- 0x5D38, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0x5D39, 0, 0, /* 0xE0 */
- 0, 0x5D3A, 0, 0x5D3B, 0, 0x5D3C, 0, 0, /* 0xE0 */
- 0, 0x5D3D, 0, 0x5D3E, 0, 0, 0x5D3F, 0, /* 0xF0 */
- 0, 0x5D40, 0, 0, 0, 0x5D41, 0, 0x5D42 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_8A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5D43, 0x5D44, 0, 0x5D45, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0x5D46, /* 0x00 */
- 0, 0x5D47, 0x5D48, 0, 0x5D49, 0x5D4A, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x5D4B, 0, /* 0x10 */
- 0x5D4C, 0, 0x5D4D, 0, 0x5D4E, 0, 0x5D4F, 0, /* 0x20 */
- 0, 0, 0, 0x5D50, 0x5D51, 0, 0, 0x5D52, /* 0x20 */
- 0, 0, 0, 0, 0, 0x5D53, 0, 0x5D54, /* 0x30 */
- 0, 0, 0, 0, 0, 0x5D55, 0x5D56, 0, /* 0x30 */
- 0x5D57, 0, 0, 0x5D58, 0, 0x5D59, 0, 0x5D5A, /* 0x40 */
- 0, 0x5D5B, 0, 0, 0, 0x5D5C, 0x5D5D, 0, /* 0x40 */
- 0, 0, 0, 0x5D5E, 0, 0, 0x5D5F, 0x5D60, /* 0x50 */
- 0x5D61, 0, 0, 0, 0x5D62, 0x5D63, 0, 0, /* 0x50 */
- 0, 0x5D64, 0, 0, 0, 0x5D65, 0, 0x5D66, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0x5D67, 0x5D68, 0x5D69, /* 0x70 */
- 0, 0x5D6A, 0x5D6B, 0x5D6C, 0, 0, 0x5D6D, 0x5D6E, /* 0x70 */
- 0x5D6F, 0, 0, 0x5D70, 0, 0, 0x5D71, 0, /* 0x80 */
- 0, 0, 0, 0x5D72, 0, 0, 0, 0x5D73, /* 0x80 */
- 0x5D74, 0, 0x5D75, 0, 0, 0, 0x5D76, 0x5D77, /* 0x90 */
- 0, 0x5D78, 0, 0, 0, 0, 0, 0x5D79, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0x5D7A, /* 0xA0 */
- 0, 0x5D7B, 0, 0, 0, 0, 0x5D7C, 0x5D7D, /* 0xA0 */
- 0, 0, 0, 0x5D7E, 0, 0, 0x5E21, 0x5E22, /* 0xB0 */
- 0, 0, 0, 0x5E23, 0, 0, 0x5E24, 0, /* 0xB0 */
- 0, 0, 0, 0x5E25, 0, 0, 0x5E26, 0, /* 0xC0 */
- 0x5E27, 0x5E28, 0x5E29, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x5E2A, 0, 0x5E2B, 0x5E2C, 0x5E2D, 0, 0x5E2E, /* 0xD0 */
- 0, 0, 0, 0, 0, 0x5E2F, 0, 0x5E30, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0x5E31, 0, 0, 0, /* 0xE0 */
- 0x5E32, 0, 0, 0, 0x5E33, 0x5E34, 0x5E35, 0, /* 0xF0 */
- 0, 0, 0, 0, 0x5E36, 0, 0, 0x5E37 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_8B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5E38, 0x5E39, 0, /* 0x00 */
- 0, 0, 0x5E3F, 0x5E3A, 0, 0, 0, 0, /* 0x00 */
- 0, 0x5E3B, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0x5E3C, 0, 0x5E3D, 0x5E3E, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0x5E40, 0, 0, /* 0x20 */
- 0x5E41, 0, 0, 0, 0, 0, 0, 0x5E42, /* 0x30 */
- 0, 0, 0, 0, 0x5E43, 0, 0, 0, /* 0x30 */
- 0, 0, 0x5E44, 0x5E45, 0x5E46, 0x5E47, 0x5E48, 0, /* 0x40 */
- 0x5E49, 0, 0, 0, 0, 0x5E4E, 0, 0, /* 0x40 */
- 0, 0, 0x5E4A, 0x5E4B, 0x5E4C, 0, 0, 0, /* 0x50 */
- 0, 0x5E4D, 0, 0, 0, 0, 0x5E4F, 0, /* 0x50 */
- 0, 0, 0, 0x5E50, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0x5E51, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0x5E52, 0, /* 0x70 */
- 0x5E53, 0x5E54, 0, 0, 0x5E55, 0, 0x5E56, 0, /* 0x70 */
- 0, 0x5E57, 0, 0, 0x5E58, 0x5E59, 0, 0, /* 0x80 */
- 0, 0, 0, 0x5E5A, 0, 0x5E5B, 0, 0x5E5C, /* 0x80 */
- 0, 0, 0, 0, 0x5E5D, 0x5E5E, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0x5E5F, 0, 0x5E60, 0x5E61 /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_8C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x30 */
- 0x5E62, 0x5E63, 0, 0, 0, 0x5E64, 0x5E65, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0x5E66, 0, 0x5E67, /* 0x40 */
- 0, 0x5E68, 0, 0x5E69, 0, 0, 0, 0x5E6A, /* 0x40 */
- 0, 0x5E6B, 0, 0x5E6C, 0x5E6D, 0, 0, 0x5E6E, /* 0x50 */
- 0x5E6F, 0x5E72, 0, 0x5E70, 0, 0x5E71, 0, 0, /* 0x50 */
- 0, 0, 0, 0x5E73, 0x5E74, 0, 0x5E75, 0, /* 0x60 */
- 0x5E76, 0x5E77, 0, 0, 0, 0x5E78, 0, 0, /* 0x60 */
- 0, 0, 0, 0x5E79, 0, 0x5E7A, 0x5E7B, 0, /* 0x70 */
- 0, 0, 0, 0x5E7C, 0, 0, 0x5E7D, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0x5E7E, 0x5F21, /* 0x80 */
- 0, 0, 0, 0x5F22, 0, 0, 0, 0, /* 0x80 */
- 0x5F23, 0, 0x5F24, 0x5F25, 0, 0, 0, 0, /* 0x90 */
- 0, 0x5F26, 0, 0x5F27, 0x5F28, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0x5F29, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x5F2A, 0x5F2B, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x5F2C, 0x5F2D, 0, /* 0xC0 */
- 0, 0x5F2E, 0, 0x5F2F, 0, 0, 0, 0x5F30, /* 0xC0 */
- 0, 0, 0, 0, 0, 0x5F32, 0x5F31, 0, /* 0xD0 */
- 0, 0x5F33, 0, 0, 0, 0x5F34, 0, 0, /* 0xD0 */
- 0, 0x5F35, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x5F36, 0, 0, 0, 0x5F37, 0, 0, 0x5F38, /* 0xE0 */
- 0x5F39, 0, 0x5F3A, 0, 0, 0x5F3B, 0, 0x5F3C, /* 0xF0 */
- 0x5F3D, 0, 0, 0, 0, 0, 0x5F3E, 0x5F3F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_8D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5F40, 0, 0x5F41, 0, 0, 0, 0, /* 0x00 */
- 0, 0x5F42, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0x5F43, 0, 0, 0, 0, 0x5F44, /* 0x10 */
- 0, 0, 0, 0x5F45, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0x5F46, 0, 0, /* 0x60 */
- 0, 0x5F47, 0, 0, 0x5F48, 0, 0x5F49, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0x5F4A, /* 0x70 */
- 0, 0, 0x5F4B, 0, 0x5F4C, 0, 0, 0, /* 0x80 */
- 0x5F4D, 0, 0, 0, 0, 0x5F4E, 0, 0, /* 0x80 */
- 0x5F4F, 0x5F50, 0, 0, 0, 0x5F51, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0x5F52, 0x5F53, /* 0x90 */
- 0x5F54, 0, 0, 0, 0, 0, 0x5F55, 0, /* 0xA0 */
- 0, 0, 0, 0x5F56, 0x5F57, 0, 0, 0x5F58, /* 0xA0 */
- 0, 0, 0x5F59, 0, 0, 0x5F5A, 0, 0x5F5B, /* 0xB0 */
- 0, 0x5F5C, 0, 0x5F5D, 0x5F6F, 0, 0, 0, /* 0xB0 */
- 0x5F5E, 0, 0, 0, 0, 0x5F5F, 0x5F60, 0x5F61, /* 0xC0 */
- 0x5F62, 0, 0x5F63, 0, 0, 0, 0x5F64, 0, /* 0xC0 */
- 0, 0x5F65, 0, 0, 0x5F66, 0x5F67, 0, 0x5F68, /* 0xD0 */
- 0, 0x5F69, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0x5F6A, 0x5F6B, 0, 0x5F6C, /* 0xE0 */
- 0, 0, 0, 0, 0x5F6D, 0, 0, 0, /* 0xE0 */
- 0x5F6E, 0x5F70, 0x5F71, 0, 0x5F72, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0x5F73 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_8E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5F74, 0, 0, 0x5F75, 0x5F76, 0x5F77, 0, /* 0x00 */
- 0, 0, 0, 0x5F78, 0, 0, 0, 0, /* 0x00 */
- 0, 0x5F79, 0, 0, 0x5F7A, 0, 0x5F7B, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0x5F7C, 0x5F7D, 0x5F7E, 0x6021, 0, 0, 0x6022, 0x6023, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0x6024, 0, 0x6025, 0, 0, 0x6026, 0x6027, /* 0x30 */
- 0x6028, 0x6029, 0, 0, 0, 0x602A, 0, 0, /* 0x30 */
- 0x602B, 0x602C, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0x602D, 0, 0x602E, 0x602F, 0x6030, /* 0x40 */
- 0, 0, 0, 0, 0x6031, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0x6032, 0x6033, 0x6034, 0x6035, 0, /* 0x50 */
- 0, 0x6036, 0x6037, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0x6038, 0, 0, 0x6039, 0x603A, 0, 0x603B, /* 0x60 */
- 0x603C, 0x603D, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x603E, 0x603F, 0x6040, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0x6041, 0x6042, 0, 0, 0, 0, /* 0x80 */
- 0, 0x6043, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0x6044, 0, 0x6045, 0, 0, 0x6046, 0, 0, /* 0x90 */
- 0, 0, 0x6047, 0x6048, 0, 0x6049, 0x604A, 0, /* 0x90 */
- 0, 0, 0x604B, 0, 0, 0, 0, 0x604C, /* 0xA0 */
- 0, 0x604D, 0, 0, 0, 0x604E, 0x604F, 0, /* 0xA0 */
- 0, 0, 0, 0x6050, 0, 0x6051, 0, 0, /* 0xB0 */
- 0, 0, 0x6052, 0x6053, 0, 0, 0, 0, /* 0xB0 */
- 0x6054, 0x6055, 0, 0x6056, 0x6057, 0, 0, 0x6058, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0x6059, /* 0xC0 */
- 0, 0x605A, 0, 0, 0x605B, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0x605C, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0x605D, 0, 0, 0, 0, 0x6064, 0x605E, 0, /* 0xE0 */
- 0x605F, 0x6060, 0, 0, 0, 0, 0, 0x6061, /* 0xF0 */
- 0, 0x6062, 0x6063 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_8F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6065, 0, 0x6066, 0, 0, 0, 0, 0x6067, /* 0x00 */
- 0x6068, 0, 0, 0, 0, 0, 0, 0x6069, /* 0x00 */
- 0x606A, 0, 0, 0, 0, 0, 0x606B, 0x606C, /* 0x10 */
- 0x606D, 0, 0, 0, 0, 0, 0x606E, 0, /* 0x10 */
- 0x606F, 0x6070, 0, 0x6071, 0, 0x6072, 0, 0x6073, /* 0x20 */
- 0x6074, 0, 0, 0, 0x6075, 0x6076, 0x6077, 0, /* 0x20 */
- 0, 0, 0, 0, 0x6078, 0x6079, 0x607A, 0x607B, /* 0x30 */
- 0, 0, 0x607C, 0, 0, 0, 0, 0, /* 0x30 */
- 0x607D, 0x607E, 0, 0x6121, 0, 0, 0, 0x6122, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0x6123, /* 0x40 */
- 0, 0x6124, 0x6125, 0x6126, 0x6127, 0x6128, 0, 0, /* 0x50 */
- 0x6129, 0, 0, 0, 0, 0x612A, 0x612B, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0x612C, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0x612D, 0, 0, /* 0x90 */
- 0x612E, 0x612F, 0, 0, 0x6130, 0x6131, 0x6132, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0x6133, 0x6134, 0, /* 0xB0 */
- 0x6135, 0, 0, 0, 0, 0, 0x6136, 0, /* 0xB0 */
- 0x6137, 0x6138, 0, 0, 0, 0, 0x6139, 0, /* 0xC0 */
- 0, 0, 0x613A, 0x613B, 0, 0x613C, 0, 0, /* 0xC0 */
- 0x613D, 0, 0x613E, 0x613F, 0, 0x6140, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x6141, 0, 0, 0x6142, 0x6143, 0, 0, 0, /* 0xE0 */
- 0x6144, 0, 0, 0, 0, 0, 0x6145, 0, /* 0xE0 */
- 0, 0x6146, 0, 0, 0, 0x6147, 0x6148, 0, /* 0xF0 */
- 0, 0, 0, 0x6149, 0, 0, 0x614A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_90[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x614B, 0, 0x614C, 0, 0, 0, /* 0x00 */
- 0x614D, 0, 0, 0, 0x614E, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0x614F, 0, 0, 0x6150, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0x6151, 0x6152, 0x6154, 0, 0x6155, 0x6156, 0, 0x6153, /* 0x20 */
- 0, 0, 0, 0x6157, 0x6158, 0, 0, 0x6159, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0x615A, /* 0x30 */
- 0, 0, 0, 0x615B, 0x615C, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0x615D, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0x615E, 0, 0x615F, 0, 0, /* 0x50 */
- 0, 0, 0x6160, 0, 0, 0, 0x6161, 0x6162, /* 0x60 */
- 0, 0, 0, 0, 0x6163, 0, 0, 0, /* 0x60 */
- 0x6164, 0, 0, 0, 0x6165, 0, 0, 0, /* 0x70 */
- 0, 0x6166, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0x6167, 0, 0, /* 0x80 */
- 0x6168, 0, 0, 0x6169, 0x616A, 0, 0x616B, 0, /* 0x80 */
- 0x616C, 0, 0, 0, 0, 0x616D, 0, 0x616E, /* 0x90 */
- 0x616F, 0x6170, 0, 0x6171, 0, 0, 0, 0, /* 0x90 */
- 0x6172, 0x6173, 0x6174, 0, 0, 0x6175, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x6176, 0, 0x6177, 0x6178, 0x6179, 0, 0x617A, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0x617B, 0x617D, 0, /* 0xB0 */
- 0, 0, 0, 0x617E, 0x6221, 0x6222, 0, 0x6223, /* 0xC0 */
- 0x6224, 0, 0, 0, 0x617C, 0, 0, 0, /* 0xC0 */
- 0, 0, 0x622D, 0, 0, 0x6225, 0, 0x6226, /* 0xD0 */
- 0x6227, 0x6228, 0, 0, 0x6229, 0x622A, 0, 0x622B, /* 0xD0 */
- 0, 0, 0, 0, 0, 0x622C, 0, 0, /* 0xE0 */
- 0, 0, 0, 0x622F, 0, 0, 0, 0x6230, /* 0xE0 */
- 0x6231, 0, 0, 0, 0x6232, 0, 0x622E, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0x6233, 0x6234 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_91[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6235, 0, 0, 0, 0x6236, 0x6237, 0x6238, 0, /* 0x00 */
- 0x6239, 0, 0, 0, 0, 0x623A, 0, 0, /* 0x00 */
- 0x623B, 0, 0, 0, 0x623C, 0, 0x623D, 0x623E, /* 0x10 */
- 0x623F, 0, 0x6240, 0, 0x6241, 0, 0x6242, 0, /* 0x10 */
- 0x6243, 0, 0x6245, 0x6246, 0, 0x6244, 0, 0x6247, /* 0x20 */
- 0, 0x6248, 0, 0, 0, 0, 0x6249, 0x624A, /* 0x20 */
- 0, 0x624B, 0, 0, 0x624C, 0, 0x624D, 0x624E, /* 0x30 */
- 0, 0x624F, 0x6250, 0, 0x6251, 0x6252, 0, 0, /* 0x30 */
- 0, 0, 0, 0x6253, 0, 0, 0, 0x6254, /* 0x40 */
- 0x6255, 0, 0, 0, 0, 0, 0, 0x6256, /* 0x40 */
- 0, 0, 0, 0x6257, 0, 0, 0, 0x6258, /* 0x50 */
- 0, 0x6259, 0x625A, 0x625B, 0, 0, 0, 0, /* 0x50 */
- 0, 0x625C, 0, 0, 0x625D, 0, 0, 0x625E, /* 0x60 */
- 0, 0, 0, 0, 0, 0x625F, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0x6260, 0, 0, 0, /* 0x70 */
- 0, 0x6261, 0x6262, 0x6263, 0, 0, 0, 0, /* 0x70 */
- 0, 0x6264, 0, 0x6265, 0, 0x6266, 0x6267, 0, /* 0x80 */
- 0, 0, 0x6268, 0, 0, 0, 0x6269, 0, /* 0x80 */
- 0, 0x626A, 0, 0x626B, 0x626C, 0x626D, 0, 0, /* 0x90 */
- 0x626E, 0, 0, 0, 0, 0, 0x626F, 0, /* 0x90 */
- 0, 0x6270, 0, 0, 0, 0, 0x6271, 0, /* 0xA0 */
- 0x6272, 0, 0, 0, 0x6273, 0x6274, 0x6275, 0, /* 0xA0 */
- 0x6276, 0x6277, 0x6278, 0x6279, 0, 0, 0x627A, 0, /* 0xB0 */
- 0, 0, 0, 0x627B, 0x627C, 0x627D, 0, 0x627E, /* 0xB0 */
- 0, 0, 0x6321, 0x6322, 0, 0x6323, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0x6324, 0x6325, 0, 0, 0x6326, /* 0xD0 */
- 0, 0x6327, 0x6328, 0, 0, 0, 0x6329, 0, /* 0xD0 */
- 0, 0, 0, 0, 0x632A, 0x632B, 0, 0, /* 0xE0 */
- 0, 0x632C, 0x632D, 0, 0x632E, 0x632F, 0x6330, 0x6331, /* 0xE0 */
- 0x6332, 0x6333, 0, 0, 0, 0, 0, 0x6334, /* 0xF0 */
- 0, 0x6335, 0, 0x6336, 0, 0x6337 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_92[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6338, 0x6339, 0, 0, 0x633A, 0x633B, 0x633C, 0x633D, /* 0x00 */
- 0, 0x633E, 0x633F, 0, 0x6340, 0, 0, 0, /* 0x00 */
- 0x6341, 0, 0x6342, 0x6343, 0, 0, 0x6344, 0, /* 0x10 */
- 0x6345, 0, 0, 0, 0x6346, 0x6347, 0, 0, /* 0x10 */
- 0, 0, 0, 0x6348, 0x6349, 0x634A, 0x634B, 0, /* 0x20 */
- 0x634C, 0, 0, 0, 0, 0, 0x634D, 0x634E, /* 0x20 */
- 0x634F, 0, 0, 0x6350, 0, 0x6351, 0x6352, 0, /* 0x30 */
- 0x6353, 0x6354, 0x6355, 0, 0x6356, 0, 0x6357, 0, /* 0x30 */
- 0x6358, 0, 0x6359, 0x635A, 0, 0, 0x635B, 0x635C, /* 0x40 */
- 0, 0, 0x635D, 0, 0, 0x635E, 0x635F, 0x6360, /* 0x40 */
- 0, 0x6361, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0x6362, 0x6363, 0, 0, 0x6364, 0x6365, 0, 0, /* 0x50 */
- 0x6366, 0x6367, 0, 0, 0, 0x6368, 0, 0x6369, /* 0x60 */
- 0x636A, 0x636B, 0, 0, 0, 0, 0x636C, 0x636D, /* 0x60 */
- 0x636E, 0, 0, 0, 0, 0x636F, 0x6370, 0x6371, /* 0x70 */
- 0x6372, 0x6373, 0, 0x6374, 0x6375, 0x6376, 0, 0x6377, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0x6378, 0x6379, 0x637A, 0, 0, 0x637B, 0x637C, 0, /* 0x80 */
- 0, 0, 0x637D, 0, 0, 0, 0, 0x637E, /* 0x90 */
- 0, 0x6421, 0, 0, 0, 0, 0, 0x6422, /* 0x90 */
- 0x6423, 0, 0, 0, 0x6424, 0x6425, 0, 0x6426, /* 0xA0 */
- 0x6427, 0, 0, 0x6428, 0, 0, 0, 0x6429, /* 0xA0 */
- 0, 0, 0x642A, 0, 0, 0, 0x642B, 0, /* 0xB0 */
- 0x642C, 0, 0x642D, 0x642E, 0x642F, 0x6430, 0, 0x6431, /* 0xB0 */
- 0x6432, 0x6433, 0x6434, 0x6435, 0, 0x6436, 0x6437, 0x6438, /* 0xC0 */
- 0x6439, 0, 0, 0x643A, 0x643B, 0x643C, 0x643D, 0, /* 0xC0 */
- 0x643E, 0, 0, 0x643F, 0, 0x6440, 0, 0x6441, /* 0xD0 */
- 0x6442, 0x6443, 0, 0, 0x6444, 0x6445, 0, 0x6446, /* 0xD0 */
- 0x6447, 0x6448, 0, 0x6449, 0, 0x644A, 0, 0x644B, /* 0xE0 */
- 0x644C, 0, 0, 0, 0x644D, 0, 0x644E, 0, /* 0xE0 */
- 0x644F, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0x6450, 0, 0x6451, 0, 0, 0, 0x6452 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_93[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6453, 0, 0x6454, 0, 0, 0, 0, 0, /* 0x00 */
- 0x6455, 0, 0, 0, 0, 0x6456, 0, 0, /* 0x00 */
- 0, 0x6457, 0, 0, 0x6458, 0x6459, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0x645A, 0x645B, 0x645C, 0x645D, /* 0x10 */
- 0, 0x645E, 0, 0, 0x645F, 0x6460, 0, 0x6461, /* 0x20 */
- 0, 0x6462, 0x6463, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0x6464, 0x6465, 0, 0x6466, 0x6467, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0x6468, /* 0x40 */
- 0x6469, 0x646A, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0x646B, 0x646C, 0x646D, 0, 0, 0x646E, 0, 0x646F, /* 0x50 */
- 0x6470, 0, 0x6471, 0, 0, 0, 0x6472, 0, /* 0x50 */
- 0, 0, 0, 0, 0x6473, 0x6474, 0, 0x6475, /* 0x60 */
- 0, 0x6476, 0x6477, 0, 0, 0x6478, 0, 0x6479, /* 0x60 */
- 0x647A, 0x647B, 0, 0x647C, 0x647D, 0, 0x647E, 0, /* 0x70 */
- 0, 0, 0x6521, 0, 0, 0x6522, 0, 0x6523, /* 0x70 */
- 0x6524, 0x6525, 0x6526, 0, 0, 0, 0, 0, /* 0x80 */
- 0x6527, 0, 0x6528, 0x6529, 0, 0x652A, 0, 0x652B, /* 0x80 */
- 0, 0, 0x652C, 0, 0, 0x652D, 0, 0, /* 0x90 */
- 0x652E, 0, 0, 0x652F, 0, 0, 0x6530, 0, /* 0x90 */
- 0, 0x6531, 0, 0x6532, 0x6533, 0, 0x6534, 0, /* 0xA0 */
- 0x6535, 0x653B, 0, 0x6536, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x6537, 0x6538, 0x6539, 0, /* 0xB0 */
- 0, 0, 0x653A, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x653C, 0, 0, 0x653D, 0x653E, 0x653F, 0x6540, /* 0xC0 */
- 0, 0x6541, 0x6542, 0x6543, 0x6544, 0x6545, 0, 0, /* 0xC0 */
- 0, 0, 0, 0x6546, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x6547, 0, 0, 0x6548, 0, 0x6549, 0x654A, /* 0xD0 */
- 0, 0, 0x654B, 0, 0, 0, 0x654C, 0x654D, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0x654F, /* 0xF0 */
- 0x6550, 0x654E, 0x6551, 0x6552, 0, 0x6553 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_94[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6554, 0x6555, 0, 0x6556, 0, 0, 0, /* 0x00 */
- 0x6557, 0x6558, 0, 0, 0, 0x6559, 0x655A, 0x655B, /* 0x00 */
- 0, 0, 0, 0, 0, 0x655C, 0x655D, 0x655E, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0x655F, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0x6560, 0x6561, /* 0x20 */
- 0, 0x6562, 0x6563, 0x6564, 0x6565, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0x6566, 0, 0x6568, 0, 0x6567, /* 0x30 */
- 0, 0, 0, 0x6569, 0, 0x656A, 0, 0, /* 0x40 */
- 0x656B, 0, 0x656C, 0, 0x656D, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0x656E, 0, 0, /* 0x50 */
- 0, 0x656F, 0, 0, 0x6570, 0, 0, 0x6571, /* 0x50 */
- 0, 0x6572, 0, 0x6573, 0, 0, 0, 0, /* 0x60 */
- 0x6574, 0, 0, 0x6575, 0, 0x6576, 0x6577, 0x6578, /* 0x60 */
- 0, 0x6579, 0x657A, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0x657C, 0x657B /* 0x80 */
- /* 0x80 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_95[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x70 */
- 0x657D, 0x657E, 0, 0, 0, 0, 0x6621, 0, /* 0x70 */
- 0, 0, 0, 0, 0x6622, 0, 0, 0, /* 0x80 */
- 0x6623, 0, 0, 0, 0x6624, 0x6625, 0x6626, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0x6627, 0x6628, 0x6629, /* 0x90 */
- 0, 0x662A, 0, 0, 0, 0, 0x662B, 0, /* 0xA0 */
- 0, 0x662C, 0, 0x662D, 0x662E, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x662F, 0, 0x6630, 0, /* 0xB0 */
- 0, 0, 0x6631, 0, 0, 0x6632, 0, 0x6633, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0x6634, 0, /* 0xC0 */
- 0x6635, 0x6636, 0, 0x6637, 0, 0, 0, 0, /* 0xC0 */
- 0x6638, 0x6639, 0x663A, 0x663B, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x663C, 0x663D, 0, 0, 0x663E, 0x663F, 0x6640, /* 0xD0 */
- 0x6641, 0, 0, 0, 0x6642, 0, 0x6643 /* 0xE0 */
- /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_96[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x10 */
- 0x6644, 0x6645, 0, /* 0x10 */
- 0, 0, 0x6646, 0, 0x6647, 0x6648, 0x6649, 0, /* 0x20 */
- 0, 0, 0, 0, 0x664A, 0, 0, 0, /* 0x20 */
- 0, 0x664B, 0, 0x664C, 0, 0, 0, 0x664D, /* 0x30 */
- 0x664E, 0x664F, 0x6650, 0, 0x6651, 0x6652, 0, 0, /* 0x30 */
- 0, 0x6653, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x6654, 0, 0x6655, 0, 0x6656, 0x6657, /* 0x50 */
- 0x6658, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0x6659, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0x665A, 0, /* 0x60 */
- 0, 0, 0, 0, 0x665B, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0x665C, 0x665D, 0, 0x665E, 0x665F, /* 0x70 */
- 0, 0x6660, 0x6661, 0x6662, 0x6663, 0, 0, 0, /* 0x80 */
- 0, 0x6664, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x6665, 0, 0, 0, 0, 0x6666, 0, /* 0x90 */
- 0, 0, 0x6667, 0, 0, 0x6668, 0, 0x6669, /* 0x90 */
- 0, 0, 0, 0, 0x666A, 0x666B, 0x666C, 0, /* 0xA0 */
- 0, 0x666D, 0, 0, 0, 0, 0x666E, 0x666F, /* 0xA0 */
- 0, 0, 0, 0x6670, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0x6671, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0x6672, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0x6673, 0, 0, 0, 0, 0, /* 0xD0 */
- 0x6675, 0, 0x6676, 0, 0, 0x6677, 0x6678, 0x6679, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0x667A, 0, 0, 0, 0, 0, 0x667B, /* 0xE0 */
- 0, 0x667C, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0x667D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_97[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x667E, 0x6721, 0, 0x6722, 0, 0, /* 0x00 */
- 0, 0x6723, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x6724, 0x6725, 0, 0x6726, 0, 0, /* 0x10 */
- 0, 0x6727, 0x6728, 0x6729, 0, 0, 0, 0, /* 0x20 */
- 0x672A, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0x672B, 0, 0x672C, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x672D, 0, 0x672E, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0x672F, 0, 0, 0, 0x6730, 0x6731, /* 0x40 */
- 0, 0, 0, 0, 0, 0x6732, 0, 0x6733, /* 0x50 */
- 0x6734, 0, 0x6735, 0x6736, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0x6737, 0, 0, 0, 0x6738, /* 0x60 */
- 0, 0, 0x6739, 0, 0, 0, 0x673A, 0, /* 0x60 */
- 0, 0, 0, 0x673B, 0, 0, 0x673C, 0x673D, /* 0x70 */
- 0x673E, 0, 0, 0x673F, 0, 0x6740, 0, 0x6741, /* 0x70 */
- 0x6742, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x6743, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0x6744, 0x6745, 0x6746, /* 0x90 */
- 0, 0x6747, 0x6748, 0, 0, 0, 0x6749, 0x674A, /* 0x90 */
- 0, 0, 0x674B, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x674C, 0, 0x674D, 0, /* 0xA0 */
- 0, 0x674E, 0x674F, 0, 0, 0x6750, 0x6751, 0, /* 0xB0 */
- 0x6752, 0x6753, 0x6754, 0, 0x6755, 0, 0x6756, 0x6757, /* 0xB0 */
- 0, 0x6758, 0, 0, 0x6759, 0x675A, 0, 0x675B, /* 0xC0 */
- 0, 0x675C, 0x675D, 0, 0x675E, 0x675F, 0x6760, 0, /* 0xC0 */
- 0x6761, 0x6762, 0, 0, 0x6763, 0, 0, 0x6764, /* 0xD0 */
- 0x6765, 0x6766, 0, 0x676A, 0, 0x6767, 0x6768, 0, /* 0xD0 */
- 0x6769, 0x676B, 0, 0, 0x676C, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0x676D, /* 0xE0 */
- 0, 0x676E, 0, 0, 0x676F, 0, 0, 0x6770, /* 0xF0 */
- 0x6771, 0, 0x6772 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_98[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6773, /* 0x00 */
- 0, 0, 0x6774, 0, 0, 0x6776, 0x6777, 0, /* 0x00 */
- 0, 0, 0, 0, 0x6778, 0, 0x6779, 0, /* 0x10 */
- 0, 0x6775, 0, 0, 0x677A, 0, 0x677B, 0, /* 0x10 */
- 0x677C, 0, 0, 0x677D, 0, 0x6828, 0x677E, 0, /* 0x20 */
- 0, 0, 0, 0x6821, 0, 0, 0x6822, 0x6823, /* 0x20 */
- 0x6824, 0, 0x6825, 0x6826, 0, 0x6827, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0x6829, 0, /* 0x30 */
- 0, 0, 0, 0, 0x682A, 0, 0, 0x682B, /* 0x40 */
- 0, 0, 0x682C, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0x682D, 0x682E, 0x682F, 0, 0, 0x6830, 0x6831, /* 0x50 */
- 0, 0x6832, 0x6833, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0x6834, 0x6835, 0, 0x6836, 0x6837, 0, /* 0x60 */
- 0, 0, 0x6838, 0, 0x6839, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0x683A, 0, 0x683B, 0x683C, 0, /* 0xA0 */
- 0x683D, 0, 0, 0, 0x683E, 0, 0, 0x683F, /* 0xB0 */
- 0x6840, 0, 0x6841, 0x6842, 0, 0, 0, 0x6843, /* 0xB0 */
- 0, 0, 0x6844, 0, 0, 0x6845, 0, 0, /* 0xC0 */
- 0x6846, 0, 0, 0, 0x6847, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x6848, 0, 0x6849, 0, 0x684A, 0x684B, 0x684C, /* 0xE0 */
- 0, 0, 0x684D, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0x684E, 0, 0, 0x684F /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_99[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6850, 0, 0, 0, 0, 0x6851, /* 0x00 */
- 0x6852, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0x6853, 0, 0, 0, 0x6854, 0x6855, 0x6856, /* 0x10 */
- 0, 0, 0x6857, 0x6858, 0x6859, 0, 0, 0x685A, /* 0x10 */
- 0, 0, 0x685B, 0, 0, 0, 0x685C, 0x685D, /* 0x20 */
- 0, 0, 0, 0x685E, 0, 0, 0, 0, /* 0x20 */
- 0, 0x685F, 0x6860, 0x6861, 0x6862, 0x6863, 0, 0, /* 0x30 */
- 0, 0x6864, 0x6865, 0x6866, 0x6867, 0, 0, 0, /* 0x30 */
- 0x6868, 0x6869, 0, 0, 0, 0, 0x686A, 0x686B, /* 0x40 */
- 0x686C, 0, 0, 0, 0, 0x686D, 0x686E, 0, /* 0x40 */
- 0, 0, 0, 0, 0x686F, 0, 0, 0, /* 0x50 */
- 0x6870, 0x6871, 0, 0x6872, 0x6873, 0, 0x6874, 0x6875, /* 0x50 */
- 0x6876, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0x6877, 0, 0x6878, 0, 0x6879, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0x687A, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x687B, 0x687C, 0x687D, 0, 0, 0x687E, 0, 0, /* 0xB0 */
- 0, 0x6921, 0x6922, 0, 0, 0x6923, 0, 0x6924, /* 0xB0 */
- 0, 0, 0, 0x6925, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x6926, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0x6927, 0x6928, 0, 0, 0, /* 0xD0 */
- 0, 0x6929, 0x692A, 0, 0x692B, 0, 0x692C, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0x692D, /* 0xE0 */
- 0, 0, 0x692E, 0x692F, 0x6930, 0, 0, 0, /* 0xE0 */
- 0x6931, 0, 0, 0, 0x6932, 0x6933, 0, 0, /* 0xF0 */
- 0, 0x6934, 0, 0, 0, 0x6935, 0x6936 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_9A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6937, 0x6938, 0x6939, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0x693A, 0x693B, 0, 0, 0, /* 0x00 */
- 0x693C, 0x693D, 0, 0, 0, 0, 0x693E, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0x693F, 0, /* 0x10 */
- 0x6940, 0, 0x6941, 0x6942, 0x6943, 0, 0, 0x6944, /* 0x20 */
- 0, 0, 0, 0, 0, 0x6945, 0x6946, 0, /* 0x20 */
- 0, 0, 0, 0x6947, 0, 0x6948, 0x6949, 0, /* 0x30 */
- 0x694A, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0x694C, 0, 0, 0x694D, 0, 0, 0x694B, /* 0x40 */
- 0, 0, 0x694E, 0x694F, 0x6950, 0, 0x6951, 0, /* 0x40 */
- 0, 0x6952, 0, 0, 0x6953, 0, 0x6954, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0x6955, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x6956, 0, 0x6957, 0, 0x6958, 0x6959, /* 0xA0 */
- 0, 0, 0x695A, 0, 0x695B, 0x695C, 0x695D, 0, /* 0xB0 */
- 0, 0x695E, 0, 0x695F, 0, 0, 0x6960, 0x6961, /* 0xB0 */
- 0, 0x6962, 0, 0x6963, 0, 0, 0x6964, 0, /* 0xC0 */
- 0x6965, 0, 0, 0, 0, 0, 0x6966, 0, /* 0xC0 */
- 0x6967, 0, 0x6968, 0, 0, 0x6969, 0x696A, 0x696B, /* 0xD0 */
- 0, 0, 0, 0x696C, 0x696D, 0, 0, 0, /* 0xD0 */
- 0x696E, 0, 0, 0, 0x696F, 0x6970, 0, 0x6971, /* 0xE0 */
- 0, 0x6972, 0, 0, 0x6973, 0, 0, 0, /* 0xE0 */
- 0, 0, 0x6974, 0x6975, 0, 0x6976, 0, 0, /* 0xF0 */
- 0, 0x6977, 0x6978, 0, 0, 0x6979, 0, 0x697A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_9B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x697B, 0x697C, 0x697D, 0x697E, 0x6A21, 0x6A22, 0, 0, /* 0x00 */
- 0x6A23, 0x6A24, 0, 0x6A25, 0x6A26, 0x6A27, 0x6A28, 0, /* 0x00 */
- 0x6A29, 0, 0x6A2A, 0, 0, 0, 0x6A2B, 0, /* 0x10 */
- 0, 0x6A2C, 0, 0x6A2D, 0x6A2E, 0, 0, 0, /* 0x10 */
- 0x6A2F, 0, 0, 0, 0, 0, 0x6A30, 0, /* 0x20 */
- 0, 0, 0, 0x6A31, 0, 0x6A32, 0, 0, /* 0x20 */
- 0, 0, 0, 0x6A33, 0x6A34, 0x6A35, 0, 0x6A36, /* 0x30 */
- 0, 0x6A37, 0x6A38, 0, 0, 0x6A39, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0x6A3A, 0, 0, 0x6A3B, 0x6A3C, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0x6A3D, 0x6A3E, 0x6A3F, /* 0x50 */
- 0, 0, 0, 0x6A40, 0, 0, 0x6A41, 0, /* 0x50 */
- 0, 0x6A42, 0, 0x6A43, 0, 0x6A44, 0x6A45, 0, /* 0x60 */
- 0x6A46, 0, 0x6A47, 0x6A48, 0x6A49, 0x6A4A, 0x6A4B, 0, /* 0x60 */
- 0, 0, 0, 0x6A4C, 0, 0x6A4D, 0, 0x6A4E, /* 0x70 */
- 0x6A4F, 0x6A50, 0, 0, 0, 0, 0, 0x6A51, /* 0x70 */
- 0x6A52, 0, 0, 0, 0x6A53, 0x6A54, 0x6A55, 0x6A56, /* 0x80 */
- 0, 0x6A57, 0x6A58, 0x6A59, 0, 0x6A5A, 0, 0x6A5B, /* 0x80 */
- 0x6A5C, 0, 0, 0, 0x6A5D, 0, 0, 0, /* 0x90 */
- 0, 0, 0x6A5E, 0, 0, 0x6A5F, 0x6A60, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0x6A61, 0x6A62, /* 0xA0 */
- 0, 0x6A63, 0, 0, 0x6A64, 0, 0, 0, /* 0xA0 */
- 0x6A65, 0x6A66, 0x6A67, 0, 0, 0, 0, 0x6A68, /* 0xB0 */
- 0x6A69, 0, 0, 0x6A6A, 0x6A6B, 0, 0x6A6C, 0x6A6D, /* 0xB0 */
- 0, 0x6A6E, 0, 0, 0, 0, 0, 0x6A6F, /* 0xC0 */
- 0x6A70, 0, 0, 0, 0, 0, 0x6A71, 0, /* 0xC0 */
- 0x6A72, 0, 0, 0, 0, 0, 0, 0x6A73, /* 0xD0 */
- 0x6A74, 0, 0, 0, 0, 0x6A75, 0, 0x6A76, /* 0xD0 */
- 0, 0, 0, 0, 0, 0x6A77, 0, 0x6A78, /* 0xE0 */
- 0, 0, 0x6A79, 0x6A7A, 0, 0, 0, 0x6A7B, /* 0xE0 */
- 0, 0, 0, 0x6A7C, 0, 0, 0, 0x6A7D, /* 0xF0 */
- 0x6A7E, 0x6B21, 0x6B22, 0, 0, 0x6B23, 0, 0x6B24 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_9C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6B25, 0, 0x6B26, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0x6B27, 0, 0, 0, 0x6B28, /* 0x00 */
- 0, 0x6B29, 0, 0, 0, 0, 0x6B2A, 0, /* 0x10 */
- 0x6B2B, 0x6B2C, 0x6B2D, 0, 0x6B2E, 0, 0x6B2F, 0, /* 0x10 */
- 0, 0, 0x6B30, 0x6B31, 0, 0, 0x6B32, 0x6B33, /* 0x20 */
- 0x6B34, 0x6B35, 0x6B36, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0x6B37, 0, 0, 0, 0x6B38, 0x6B39, 0x6B3A, /* 0x30 */
- 0, 0, 0, 0, 0, 0x6B3B, 0, 0, /* 0x30 */
- 0, 0x6B3C, 0, 0x6B3D, 0x6B3E, 0x6B3F, 0, 0, /* 0x40 */
- 0, 0x6B40, 0x6B41, 0, 0, 0, 0x6B42, 0x6B43, /* 0x40 */
- 0x6B44, 0, 0, 0x6B45, 0x6B46, 0, 0x6B47, 0, /* 0x50 */
- 0x6B48, 0, 0, 0x6B49, 0x6B50, 0x6B4A, 0x6B4B, 0x6B4C, /* 0x50 */
- 0, 0, 0, 0x6B4D, 0, 0, 0, 0, /* 0x60 */
- 0x6B52, 0x6B4E, 0x6B4F, 0x6B51, 0, 0, 0x6B53, 0, /* 0x60 */
- 0x6B54, 0, 0x6B55, 0, 0, 0x6B56, 0, 0x6B57, /* 0x70 */
- 0, 0, 0, 0x6B58, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0x6B59, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0x6B5A, 0, 0, 0, 0, 0x6B5B, /* 0xF0 */
- 0, 0x6B5C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_9D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6B5E, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0x6B5D, 0, 0, 0, 0, /* 0x00 */
- 0, 0x6B5F, 0, 0, 0, 0, 0, 0x6B60, /* 0x10 */
- 0x6B61, 0, 0, 0, 0x6B62, 0x6B63, 0x6B64, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0x6B65, /* 0x20 */
- 0x6B66, 0, 0x6B67, 0x6B68, 0x6B69, 0, 0, 0, /* 0x30 */
- 0, 0, 0x6B6A, 0, 0x6B6B, 0x6B6D, 0, 0, /* 0x30 */
- 0, 0, 0x6B6E, 0x6B6F, 0, 0x6B6C, 0, 0x6B70, /* 0x40 */
- 0, 0, 0x6B71, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0x6B72, 0x6B73, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0x6B74, /* 0x50 */
- 0, 0, 0x6B76, 0x6B75, 0, 0x6B77, 0, 0, /* 0x60 */
- 0, 0x6B78, 0x6B79, 0x6B7A, 0, 0, 0, 0, /* 0x60 */
- 0x6B7B, 0, 0, 0, 0, 0, 0x6B7C, 0x6B7D, /* 0x70 */
- 0, 0, 0, 0x6B7E, 0x6C21, 0, 0x6C22, 0, /* 0x70 */
- 0, 0, 0, 0x6C23, 0x6C24, 0, 0x6C25, 0, /* 0x80 */
- 0, 0, 0x6C26, 0, 0, 0x6C27, 0x6C28, 0, /* 0x80 */
- 0, 0, 0x6C29, 0x6C2A, 0, 0x6C2B, 0x6C2C, 0x6C2D, /* 0x90 */
- 0x6C2E, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x6C2F, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0x6C30, 0, 0x6C31, 0, 0x6C32, 0, /* 0xA0 */
- 0, 0x6C33, 0, 0, 0, 0x6C34, 0, 0, /* 0xB0 */
- 0, 0x6C35, 0, 0, 0x6C36, 0, 0, 0x6C37, /* 0xB0 */
- 0, 0, 0, 0x6C38, 0, 0, 0, 0x6C39, /* 0xC0 */
- 0, 0x6C3A, 0x6C3B, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0x6C3C, 0x6C3D, 0x6C3E, 0x6C3F, /* 0xD0 */
- 0, 0, 0x6C40, 0, 0, 0, 0x6C41, 0x6C42, /* 0xD0 */
- 0x6C43, 0, 0, 0, 0, 0x6C44, 0, 0x6C45, /* 0xE0 */
- 0, 0x6C46, 0, 0x6C47, 0, 0, 0x6C48, 0, /* 0xE0 */
- 0x6C49, 0, 0, 0x6C4A, 0x6C4B, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0x6C4C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_9E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6C4E, 0, 0, 0, 0, 0x6C4F, /* 0x00 */
- 0, 0, 0x6C4D, 0, 0, 0, 0x6C50, 0, /* 0x00 */
- 0x6C51, 0x6C52, 0x6C53, 0, 0, 0x6C54, 0x6C55, 0, /* 0x10 */
- 0, 0x6C56, 0, 0, 0x6C57, 0x6C58, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0x6C59, 0x6C5A, 0x6C5B, 0, 0, 0, /* 0x70 */
- 0x6C5C, 0, 0x6C5D, 0x6C5E, 0x6C5F, 0x6C60, 0, 0x6C61, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0x6C62, 0x6C63, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0x6C64, 0, /* 0x90 */
- 0x6C65, 0, 0, 0x6C66, 0, 0, 0x6C67, 0, /* 0x90 */
- 0, 0, 0, 0, 0x6C68, 0, 0, 0, /* 0xA0 */
- 0x6C69, 0, 0, 0, 0x6C6A, 0, 0x6C6B, 0x6C6C, /* 0xA0 */
- 0x6C6D, 0, 0, 0x6C6E, 0x6C6F, 0x6C70, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0x6C71, 0, /* 0xC0 */
- 0x6C72, 0, 0, 0x6C73, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0x6C74, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0x6C75, /* 0xD0 */
- 0, 0, 0, 0, 0x6C76, 0, 0, 0x6C77, /* 0xE0 */
- 0, 0, 0, 0, 0x6C78, 0x6C79, 0x6C7A, 0, /* 0xE0 */
- 0x6C7B, 0x6C7C, 0x6C7D, 0, 0, 0x6C7E, 0, 0, /* 0xF0 */
- 0x6D21, 0, 0, 0, 0, 0, 0, 0x6D22 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JIS0212_9F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6D23, 0x6D24, 0, 0, 0, 0, /* 0x00 */
- 0, 0x6D25, 0, 0, 0, 0, 0, 0x6D26, /* 0x00 */
- 0x6D27, 0x6D28, 0x6D29, 0, 0x6D2A, 0, 0x6D2B, 0x6D2C, /* 0x10 */
- 0, 0x6D2D, 0x6D2E, 0x6D2F, 0, 0, 0, 0x6D30, /* 0x10 */
- 0, 0, 0x6D31, 0, 0, 0, 0x6D32, 0, /* 0x20 */
- 0, 0, 0x6D33, 0x6D34, 0, 0, 0, 0x6D35, /* 0x20 */
- 0, 0x6D36, 0x6D37, 0, 0x6D38, 0, 0, 0x6D39, /* 0x30 */
- 0, 0x6D3A, 0x6D3B, 0, 0x6D3C, 0x6D3D, 0, 0x6D3E, /* 0x30 */
- 0, 0x6D3F, 0, 0x6D40, 0x6D41, 0x6D42, 0x6D43, 0x6D44, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0x6D45, 0, 0x6D46, 0x6D47, 0x6D48, /* 0x50 */
- 0x6D49, 0, 0x6D4A, 0, 0, 0x6D4B, 0x6D4C, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0x6D4D, 0x6D4E, 0, 0, 0, 0x6D4F, 0x6D50, 0x6D51, /* 0x60 */
- 0x6D52, 0x6D53, 0, 0x6D54, 0, 0x6D55, 0, 0, /* 0x70 */
- 0, 0, 0x6D56, 0, 0, 0x6D57, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0x6D58, /* 0x80 */
- 0x6D59, 0x6D5A, 0x6D5B, 0, 0x6D5C, 0, 0x6D5D, 0x6D5E, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0x6D5F, 0, /* 0x90 */
- 0, 0x6D60, 0x6D61, 0x6D62, 0, 0x6D63 /* 0xA0 */
- /* 0xA0 */
-};
-
diff --git a/sal/textenc/tcvtjp6.tab b/sal/textenc/tcvtjp6.tab
deleted file mode 100644
index 462c958f6..000000000
--- a/sal/textenc/tcvtjp6.tab
+++ /dev/null
@@ -1,2660 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the information tables for all japanese charsets: */
-/* SJIS, MS932, APPLE_JAPANESE, EUC_JP, JIS-X-201, JIS-X-208, JIS-X-212 */
-
-/* ======================================================================= */
-
-static ImplDBCSToUniLeadTab const aSJISUniLeadTab[256] =
-{
- { 0x0000, 0, 0, NULL }, /* 0x00 */
- { 0x0001, 0, 0, NULL }, /* 0x01 */
- { 0x0002, 0, 0, NULL }, /* 0x02 */
- { 0x0003, 0, 0, NULL }, /* 0x03 */
- { 0x0004, 0, 0, NULL }, /* 0x04 */
- { 0x0005, 0, 0, NULL }, /* 0x05 */
- { 0x0006, 0, 0, NULL }, /* 0x06 */
- { 0x0007, 0, 0, NULL }, /* 0x07 */
- { 0x0008, 0, 0, NULL }, /* 0x08 */
- { 0x0009, 0, 0, NULL }, /* 0x09 */
- { 0x000A, 0, 0, NULL }, /* 0x0A */
- { 0x000B, 0, 0, NULL }, /* 0x0B */
- { 0x000C, 0, 0, NULL }, /* 0x0C */
- { 0x000D, 0, 0, NULL }, /* 0x0D */
- { 0x000E, 0, 0, NULL }, /* 0x0E */
- { 0x000F, 0, 0, NULL }, /* 0x0F */
- { 0x0010, 0, 0, NULL }, /* 0x10 */
- { 0x0011, 0, 0, NULL }, /* 0x11 */
- { 0x0012, 0, 0, NULL }, /* 0x12 */
- { 0x0013, 0, 0, NULL }, /* 0x13 */
- { 0x0014, 0, 0, NULL }, /* 0x14 */
- { 0x0015, 0, 0, NULL }, /* 0x15 */
- { 0x0016, 0, 0, NULL }, /* 0x16 */
- { 0x0017, 0, 0, NULL }, /* 0x17 */
- { 0x0018, 0, 0, NULL }, /* 0x18 */
- { 0x0019, 0, 0, NULL }, /* 0x19 */
- { 0x001A, 0, 0, NULL }, /* 0x1A */
- { 0x001B, 0, 0, NULL }, /* 0x1B */
- { 0x001C, 0, 0, NULL }, /* 0x1C */
- { 0x001D, 0, 0, NULL }, /* 0x1D */
- { 0x001E, 0, 0, NULL }, /* 0x1E */
- { 0x001F, 0, 0, NULL }, /* 0x1F */
- { 0x0020, 0, 0, NULL }, /* 0x20 */
- { 0x0021, 0, 0, NULL }, /* 0x21 */
- { 0x0022, 0, 0, NULL }, /* 0x22 */
- { 0x0023, 0, 0, NULL }, /* 0x23 */
- { 0x0024, 0, 0, NULL }, /* 0x24 */
- { 0x0025, 0, 0, NULL }, /* 0x25 */
- { 0x0026, 0, 0, NULL }, /* 0x26 */
- { 0x0027, 0, 0, NULL }, /* 0x27 */
- { 0x0028, 0, 0, NULL }, /* 0x28 */
- { 0x0029, 0, 0, NULL }, /* 0x29 */
- { 0x002A, 0, 0, NULL }, /* 0x2A */
- { 0x002B, 0, 0, NULL }, /* 0x2B */
- { 0x002C, 0, 0, NULL }, /* 0x2C */
- { 0x002D, 0, 0, NULL }, /* 0x2D */
- { 0x002E, 0, 0, NULL }, /* 0x2E */
- { 0x002F, 0, 0, NULL }, /* 0x2F */
- { 0x0030, 0, 0, NULL }, /* 0x30 */
- { 0x0031, 0, 0, NULL }, /* 0x31 */
- { 0x0032, 0, 0, NULL }, /* 0x32 */
- { 0x0033, 0, 0, NULL }, /* 0x33 */
- { 0x0034, 0, 0, NULL }, /* 0x34 */
- { 0x0035, 0, 0, NULL }, /* 0x35 */
- { 0x0036, 0, 0, NULL }, /* 0x36 */
- { 0x0037, 0, 0, NULL }, /* 0x37 */
- { 0x0038, 0, 0, NULL }, /* 0x38 */
- { 0x0039, 0, 0, NULL }, /* 0x39 */
- { 0x003A, 0, 0, NULL }, /* 0x3A */
- { 0x003B, 0, 0, NULL }, /* 0x3B */
- { 0x003C, 0, 0, NULL }, /* 0x3C */
- { 0x003D, 0, 0, NULL }, /* 0x3D */
- { 0x003E, 0, 0, NULL }, /* 0x3E */
- { 0x003F, 0, 0, NULL }, /* 0x3F */
- { 0x0040, 0, 0, NULL }, /* 0x40 */
- { 0x0041, 0, 0, NULL }, /* 0x41 */
- { 0x0042, 0, 0, NULL }, /* 0x42 */
- { 0x0043, 0, 0, NULL }, /* 0x43 */
- { 0x0044, 0, 0, NULL }, /* 0x44 */
- { 0x0045, 0, 0, NULL }, /* 0x45 */
- { 0x0046, 0, 0, NULL }, /* 0x46 */
- { 0x0047, 0, 0, NULL }, /* 0x47 */
- { 0x0048, 0, 0, NULL }, /* 0x48 */
- { 0x0049, 0, 0, NULL }, /* 0x49 */
- { 0x004A, 0, 0, NULL }, /* 0x4A */
- { 0x004B, 0, 0, NULL }, /* 0x4B */
- { 0x004C, 0, 0, NULL }, /* 0x4C */
- { 0x004D, 0, 0, NULL }, /* 0x4D */
- { 0x004E, 0, 0, NULL }, /* 0x4E */
- { 0x004F, 0, 0, NULL }, /* 0x4F */
- { 0x0050, 0, 0, NULL }, /* 0x50 */
- { 0x0051, 0, 0, NULL }, /* 0x51 */
- { 0x0052, 0, 0, NULL }, /* 0x52 */
- { 0x0053, 0, 0, NULL }, /* 0x53 */
- { 0x0054, 0, 0, NULL }, /* 0x54 */
- { 0x0055, 0, 0, NULL }, /* 0x55 */
- { 0x0056, 0, 0, NULL }, /* 0x56 */
- { 0x0057, 0, 0, NULL }, /* 0x57 */
- { 0x0058, 0, 0, NULL }, /* 0x58 */
- { 0x0059, 0, 0, NULL }, /* 0x59 */
- { 0x005A, 0, 0, NULL }, /* 0x5A */
- { 0x005B, 0, 0, NULL }, /* 0x5B */
- { 0x005C, 0, 0, NULL }, /* 0x5C */ /* is A5 (YEN SIGN), but for compatibiliy with ascii, we use 0x5C (SLASH) like MS CP392 */
- { 0x005D, 0, 0, NULL }, /* 0x5D */
- { 0x005E, 0, 0, NULL }, /* 0x5E */
- { 0x005F, 0, 0, NULL }, /* 0x5F */
- { 0x0060, 0, 0, NULL }, /* 0x60 */
- { 0x0061, 0, 0, NULL }, /* 0x61 */
- { 0x0062, 0, 0, NULL }, /* 0x62 */
- { 0x0063, 0, 0, NULL }, /* 0x63 */
- { 0x0064, 0, 0, NULL }, /* 0x64 */
- { 0x0065, 0, 0, NULL }, /* 0x65 */
- { 0x0066, 0, 0, NULL }, /* 0x66 */
- { 0x0067, 0, 0, NULL }, /* 0x67 */
- { 0x0068, 0, 0, NULL }, /* 0x68 */
- { 0x0069, 0, 0, NULL }, /* 0x69 */
- { 0x006A, 0, 0, NULL }, /* 0x6A */
- { 0x006B, 0, 0, NULL }, /* 0x6B */
- { 0x006C, 0, 0, NULL }, /* 0x6C */
- { 0x006D, 0, 0, NULL }, /* 0x6D */
- { 0x006E, 0, 0, NULL }, /* 0x6E */
- { 0x006F, 0, 0, NULL }, /* 0x6F */
- { 0x0070, 0, 0, NULL }, /* 0x70 */
- { 0x0071, 0, 0, NULL }, /* 0x71 */
- { 0x0072, 0, 0, NULL }, /* 0x72 */
- { 0x0073, 0, 0, NULL }, /* 0x73 */
- { 0x0074, 0, 0, NULL }, /* 0x74 */
- { 0x0075, 0, 0, NULL }, /* 0x75 */
- { 0x0076, 0, 0, NULL }, /* 0x76 */
- { 0x0077, 0, 0, NULL }, /* 0x77 */
- { 0x0078, 0, 0, NULL }, /* 0x78 */
- { 0x0079, 0, 0, NULL }, /* 0x79 */
- { 0x007A, 0, 0, NULL }, /* 0x7A */
- { 0x007B, 0, 0, NULL }, /* 0x7B */
- { 0x007C, 0, 0, NULL }, /* 0x7C */
- { 0x007D, 0, 0, NULL }, /* 0x7D */
- { 0x007E, 0, 0, NULL }, /* 0x7E */ /* is 0x0203E (SPACING OVERSCORE), but for compatibiliy with ascii, we use 0x7E (TILDE) like MS CP392 */
- { 0x007F, 0, 0, NULL }, /* 0x7F */
- { 0x005C, 0, 0, NULL }, /* 0x80 */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_81 }, /* 0x81 */
- { 0, 0x4F, 0xF1, aImplDBCSToUniTab_SJIS_82 }, /* 0x82 */
- { 0, 0x40, 0xD6, aImplDBCSToUniTab_SJIS_83 }, /* 0x83 */
- { 0, 0x40, 0xBF, aImplDBCSToUniTab_SJIS_84 }, /* 0x84 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x85 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x86 */ /* We convert this as double byte */
- { 0, 0x40, 0x9C, aImplDBCSToUniTab_MS932_87 }, /* 0x87 */ /* We use the MS table for better MS compatibility */
- { 0, 0x9F, 0xFC, aImplDBCSToUniTab_SJIS_88 }, /* 0x88 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_89 }, /* 0x89 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8A }, /* 0x8A */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8B }, /* 0x8B */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8C }, /* 0x8C */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8D }, /* 0x8D */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8E }, /* 0x8E */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8F }, /* 0x8F */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_90 }, /* 0x90 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_91 }, /* 0x91 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_92 }, /* 0x92 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_93 }, /* 0x93 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_94 }, /* 0x94 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_95 }, /* 0x95 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_96 }, /* 0x96 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_97 }, /* 0x97 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_98 }, /* 0x98 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_99 }, /* 0x99 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9A }, /* 0x9A */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9B }, /* 0x9B */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9C }, /* 0x9C */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9D }, /* 0x9D */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9E }, /* 0x9E */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9F }, /* 0x9F */
- { 0x00A0, 0, 0, NULL }, /* 0xA0 */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */
- { 0xFF61, 0, 0, NULL }, /* 0xA1 */
- { 0xFF62, 0, 0, NULL }, /* 0xA2 */
- { 0xFF63, 0, 0, NULL }, /* 0xA3 */
- { 0xFF64, 0, 0, NULL }, /* 0xA4 */
- { 0xFF65, 0, 0, NULL }, /* 0xA5 */
- { 0xFF66, 0, 0, NULL }, /* 0xA6 */
- { 0xFF67, 0, 0, NULL }, /* 0xA7 */
- { 0xFF68, 0, 0, NULL }, /* 0xA8 */
- { 0xFF69, 0, 0, NULL }, /* 0xA9 */
- { 0xFF6A, 0, 0, NULL }, /* 0xAA */
- { 0xFF6B, 0, 0, NULL }, /* 0xAB */
- { 0xFF6C, 0, 0, NULL }, /* 0xAC */
- { 0xFF6D, 0, 0, NULL }, /* 0xAD */
- { 0xFF6E, 0, 0, NULL }, /* 0xAE */
- { 0xFF6F, 0, 0, NULL }, /* 0xAF */
- { 0xFF70, 0, 0, NULL }, /* 0xB0 */
- { 0xFF71, 0, 0, NULL }, /* 0xB1 */
- { 0xFF72, 0, 0, NULL }, /* 0xB2 */
- { 0xFF73, 0, 0, NULL }, /* 0xB3 */
- { 0xFF74, 0, 0, NULL }, /* 0xB4 */
- { 0xFF75, 0, 0, NULL }, /* 0xB5 */
- { 0xFF76, 0, 0, NULL }, /* 0xB6 */
- { 0xFF77, 0, 0, NULL }, /* 0xB7 */
- { 0xFF78, 0, 0, NULL }, /* 0xB8 */
- { 0xFF79, 0, 0, NULL }, /* 0xB9 */
- { 0xFF7A, 0, 0, NULL }, /* 0xBA */
- { 0xFF7B, 0, 0, NULL }, /* 0xBB */
- { 0xFF7C, 0, 0, NULL }, /* 0xBC */
- { 0xFF7D, 0, 0, NULL }, /* 0xBD */
- { 0xFF7E, 0, 0, NULL }, /* 0xBE */
- { 0xFF7F, 0, 0, NULL }, /* 0xBF */
- { 0xFF80, 0, 0, NULL }, /* 0xC0 */
- { 0xFF81, 0, 0, NULL }, /* 0xC1 */
- { 0xFF82, 0, 0, NULL }, /* 0xC2 */
- { 0xFF83, 0, 0, NULL }, /* 0xC3 */
- { 0xFF84, 0, 0, NULL }, /* 0xC4 */
- { 0xFF85, 0, 0, NULL }, /* 0xC5 */
- { 0xFF86, 0, 0, NULL }, /* 0xC6 */
- { 0xFF87, 0, 0, NULL }, /* 0xC7 */
- { 0xFF88, 0, 0, NULL }, /* 0xC8 */
- { 0xFF89, 0, 0, NULL }, /* 0xC9 */
- { 0xFF8A, 0, 0, NULL }, /* 0xCA */
- { 0xFF8B, 0, 0, NULL }, /* 0xCB */
- { 0xFF8C, 0, 0, NULL }, /* 0xCC */
- { 0xFF8D, 0, 0, NULL }, /* 0xCD */
- { 0xFF8E, 0, 0, NULL }, /* 0xCE */
- { 0xFF8F, 0, 0, NULL }, /* 0xCF */
- { 0xFF90, 0, 0, NULL }, /* 0xD0 */
- { 0xFF91, 0, 0, NULL }, /* 0xD1 */
- { 0xFF92, 0, 0, NULL }, /* 0xD2 */
- { 0xFF93, 0, 0, NULL }, /* 0xD3 */
- { 0xFF94, 0, 0, NULL }, /* 0xD4 */
- { 0xFF95, 0, 0, NULL }, /* 0xD5 */
- { 0xFF96, 0, 0, NULL }, /* 0xD6 */
- { 0xFF97, 0, 0, NULL }, /* 0xD7 */
- { 0xFF98, 0, 0, NULL }, /* 0xD8 */
- { 0xFF99, 0, 0, NULL }, /* 0xD9 */
- { 0xFF9A, 0, 0, NULL }, /* 0xDA */
- { 0xFF9B, 0, 0, NULL }, /* 0xDB */
- { 0xFF9C, 0, 0, NULL }, /* 0xDC */
- { 0xFF9D, 0, 0, NULL }, /* 0xDD */
- { 0xFF9E, 0, 0, NULL }, /* 0xDE */
- { 0xFF9F, 0, 0, NULL }, /* 0xDF */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E0 }, /* 0xE0 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E1 }, /* 0xE1 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E2 }, /* 0xE2 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E3 }, /* 0xE3 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E4 }, /* 0xE4 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E5 }, /* 0xE5 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E6 }, /* 0xE6 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E7 }, /* 0xE7 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E8 }, /* 0xE8 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E9 }, /* 0xE9 */
- { 0, 0x40, 0xA4, aImplDBCSToUniTab_SJIS_EA }, /* 0xEA */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEB */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEC */ /* We convert this as double byte */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_ED }, /* 0xED */ /* We use the MS table for better MS compatibility */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_EE }, /* 0xEE */ /* We use the MS table for better MS compatibility */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEF */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF0 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF1 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF2 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF3 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF4 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF5 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF6 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF7 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF8 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF9 */ /* EUDC Range */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FA }, /* 0xFA */ /* We use the MS table for better MS compatibility */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FB }, /* 0xFB */ /* We use the MS table for better MS compatibility */
- { 0, 0x40, 0x4B, aImplDBCSToUniTab_MS932_FC }, /* 0xFC */ /* We use the MS table for better MS compatibility */
- { 0x00A9, 0, 0, NULL }, /* 0xFD */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */
- { 0x2122, 0, 0, NULL }, /* 0xFE */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */
- { 0x2026, 0, 0, NULL } /* 0xFF */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* MS932-Tables are used for better microsoft compatibility */
-
-static ImplUniToDBCSHighTab const aSJISDBCSHighTab[256] =
-{
- { 0x00, 0xF7, aImplUniToDBCSTab_SJIS_00 }, /* 0x00 */
- { 1, 0, NULL }, /* 0x01 */
- { 1, 0, NULL }, /* 0x02 */
- { 0x91, 0xC9, aImplUniToDBCSTab_SJIS_03 }, /* 0x03 */
- { 0x01, 0x51, aImplUniToDBCSTab_SJIS_04 }, /* 0x04 */
- { 1, 0, NULL }, /* 0x05 */
- { 1, 0, NULL }, /* 0x06 */
- { 1, 0, NULL }, /* 0x07 */
- { 1, 0, NULL }, /* 0x08 */
- { 1, 0, NULL }, /* 0x09 */
- { 1, 0, NULL }, /* 0x0A */
- { 1, 0, NULL }, /* 0x0B */
- { 1, 0, NULL }, /* 0x0C */
- { 1, 0, NULL }, /* 0x0D */
- { 1, 0, NULL }, /* 0x0E */
- { 1, 0, NULL }, /* 0x0F */
- { 1, 0, NULL }, /* 0x10 */
- { 1, 0, NULL }, /* 0x11 */
- { 1, 0, NULL }, /* 0x12 */
- { 1, 0, NULL }, /* 0x13 */
- { 1, 0, NULL }, /* 0x14 */
- { 1, 0, NULL }, /* 0x15 */
- { 1, 0, NULL }, /* 0x16 */
- { 1, 0, NULL }, /* 0x17 */
- { 1, 0, NULL }, /* 0x18 */
- { 1, 0, NULL }, /* 0x19 */
- { 1, 0, NULL }, /* 0x1A */
- { 1, 0, NULL }, /* 0x1B */
- { 1, 0, NULL }, /* 0x1C */
- { 1, 0, NULL }, /* 0x1D */
- { 1, 0, NULL }, /* 0x1E */
- { 1, 0, NULL }, /* 0x1F */
- { 0x10, 0x3E, aImplUniToDBCSTab_SJIS_20 }, /* 0x20 */
- { 0x03, 0xD4, aImplUniToDBCSTab_MS932_21 }, /* 0x21 */
- { 0x00, 0xBF, aImplUniToDBCSTab_MS932_22 }, /* 0x22 */
- { 0x12, 0x12, aImplUniToDBCSTab_SJIS_23 }, /* 0x23 */
- { 0x60, 0x73, aImplUniToDBCSTab_MS932_24 }, /* 0x24 */
- { 0x00, 0xEF, aImplUniToDBCSTab_SJIS_25 }, /* 0x25 */
- { 0x05, 0x6F, aImplUniToDBCSTab_SJIS_26 }, /* 0x26 */
- { 1, 0, NULL }, /* 0x27 */
- { 1, 0, NULL }, /* 0x28 */
- { 1, 0, NULL }, /* 0x29 */
- { 1, 0, NULL }, /* 0x2A */
- { 1, 0, NULL }, /* 0x2B */
- { 1, 0, NULL }, /* 0x2C */
- { 1, 0, NULL }, /* 0x2D */
- { 1, 0, NULL }, /* 0x2E */
- { 1, 0, NULL }, /* 0x2F */
- { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_30 }, /* 0x30 */
- { 1, 0, NULL }, /* 0x31 */
- { 0x31, 0xA8, aImplUniToDBCSTab_MS932_32 }, /* 0x32 */
- { 0x03, 0xCD, aImplUniToDBCSTab_MS932_33 }, /* 0x33 */
- { 1, 0, NULL }, /* 0x34 */
- { 1, 0, NULL }, /* 0x35 */
- { 1, 0, NULL }, /* 0x36 */
- { 1, 0, NULL }, /* 0x37 */
- { 1, 0, NULL }, /* 0x38 */
- { 1, 0, NULL }, /* 0x39 */
- { 1, 0, NULL }, /* 0x3A */
- { 1, 0, NULL }, /* 0x3B */
- { 1, 0, NULL }, /* 0x3C */
- { 1, 0, NULL }, /* 0x3D */
- { 1, 0, NULL }, /* 0x3E */
- { 1, 0, NULL }, /* 0x3F */
- { 1, 0, NULL }, /* 0x40 */
- { 1, 0, NULL }, /* 0x41 */
- { 1, 0, NULL }, /* 0x42 */
- { 1, 0, NULL }, /* 0x43 */
- { 1, 0, NULL }, /* 0x44 */
- { 1, 0, NULL }, /* 0x45 */
- { 1, 0, NULL }, /* 0x46 */
- { 1, 0, NULL }, /* 0x47 */
- { 1, 0, NULL }, /* 0x48 */
- { 1, 0, NULL }, /* 0x49 */
- { 1, 0, NULL }, /* 0x4A */
- { 1, 0, NULL }, /* 0x4B */
- { 1, 0, NULL }, /* 0x4C */
- { 1, 0, NULL }, /* 0x4D */
- { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_4E }, /* 0x4E */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_4F }, /* 0x4F */
- { 0x05, 0xFB, aImplUniToDBCSTab_SJIS_50 }, /* 0x50 */
- { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_51 }, /* 0x51 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_52 }, /* 0x52 */
- { 0x00, 0xFA, aImplUniToDBCSTab_SJIS_53 }, /* 0x53 */
- { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_54 }, /* 0x54 */
- { 0x04, 0xFE, aImplUniToDBCSTab_SJIS_55 }, /* 0x55 */
- { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_56 }, /* 0x56 */
- { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_57 }, /* 0x57 */
- { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_58 }, /* 0x58 */
- { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_59 }, /* 0x59 */
- { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_5A }, /* 0x5A */
- { 0x09, 0xFF, aImplUniToDBCSTab_SJIS_5B }, /* 0x5B */
- { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_5C }, /* 0x5C */
- { 0x07, 0xFE, aImplUniToDBCSTab_SJIS_5D }, /* 0x5D */
- { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_5E }, /* 0x5E */
- { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_5F }, /* 0x5F */
- { 0x0E, 0xFB, aImplUniToDBCSTab_SJIS_60 }, /* 0x60 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_61 }, /* 0x61 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_62 }, /* 0x62 */
- { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_63 }, /* 0x63 */
- { 0x06, 0xFE, aImplUniToDBCSTab_SJIS_64 }, /* 0x64 */
- { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_65 }, /* 0x65 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_66 }, /* 0x66 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_67 }, /* 0x67 */
- { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_68 }, /* 0x68 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_69 }, /* 0x69 */
- { 0x02, 0xFB, aImplUniToDBCSTab_SJIS_6A }, /* 0x6A */
- { 0x04, 0xF3, aImplUniToDBCSTab_SJIS_6B }, /* 0x6B */
- { 0x08, 0xF3, aImplUniToDBCSTab_SJIS_6C }, /* 0x6C */
- { 0x04, 0xFC, aImplUniToDBCSTab_SJIS_6D }, /* 0x6D */
- { 0x05, 0xFF, aImplUniToDBCSTab_SJIS_6E }, /* 0x6E */
- { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_6F }, /* 0x6F */
- { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_70 }, /* 0x70 */
- { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_71 }, /* 0x71 */
- { 0x06, 0xFD, aImplUniToDBCSTab_SJIS_72 }, /* 0x72 */
- { 0x0A, 0xFE, aImplUniToDBCSTab_SJIS_73 }, /* 0x73 */
- { 0x03, 0xF8, aImplUniToDBCSTab_SJIS_74 }, /* 0x74 */
- { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_75 }, /* 0x75 */
- { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_76 }, /* 0x76 */
- { 0x01, 0xFC, aImplUniToDBCSTab_SJIS_77 }, /* 0x77 */
- { 0x02, 0xFD, aImplUniToDBCSTab_SJIS_78 }, /* 0x78 */
- { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_79 }, /* 0x79 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_7A }, /* 0x7A */
- { 0x02, 0xF7, aImplUniToDBCSTab_SJIS_7B }, /* 0x7B */
- { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_7C }, /* 0x7C */
- { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_7D }, /* 0x7D */
- { 0x01, 0x9C, aImplUniToDBCSTab_SJIS_7E }, /* 0x7E */
- { 0x36, 0xFC, aImplUniToDBCSTab_SJIS_7F }, /* 0x7F */
- { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_80 }, /* 0x80 */
- { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_81 }, /* 0x81 */
- { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_82 }, /* 0x82 */
- { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_83 }, /* 0x83 */
- { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_84 }, /* 0x84 */
- { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_85 }, /* 0x85 */
- { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_86 }, /* 0x86 */
- { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_87 }, /* 0x87 */
- { 0x05, 0xFE, aImplUniToDBCSTab_SJIS_88 }, /* 0x88 */
- { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_89 }, /* 0x89 */
- { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_8A }, /* 0x8A */
- { 0x00, 0x9A, aImplUniToDBCSTab_SJIS_8B }, /* 0x8B */
- { 0x37, 0xFD, aImplUniToDBCSTab_SJIS_8C }, /* 0x8C */
- { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_8D }, /* 0x8D */
- { 0x08, 0xFE, aImplUniToDBCSTab_SJIS_8E }, /* 0x8E */
- { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_8F }, /* 0x8F */
- { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_90 }, /* 0x90 */
- { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_91 }, /* 0x91 */
- { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_92 }, /* 0x92 */
- { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_93 }, /* 0x93 */
- { 0x03, 0x81, aImplUniToDBCSTab_SJIS_94 }, /* 0x94 */
- { 0x77, 0xE5, aImplUniToDBCSTab_SJIS_95 }, /* 0x95 */
- { 0x1C, 0xFB, aImplUniToDBCSTab_SJIS_96 }, /* 0x96 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_97 }, /* 0x97 */
- { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_98 }, /* 0x98 */
- { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_99 }, /* 0x99 */
- { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_9A }, /* 0x9A */
- { 0x06, 0xF5, aImplUniToDBCSTab_SJIS_9B }, /* 0x9B */
- { 0x00, 0xF6, aImplUniToDBCSTab_SJIS_9C }, /* 0x9C */
- { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_9D }, /* 0x9D */
- { 0x19, 0xFD, aImplUniToDBCSTab_SJIS_9E }, /* 0x9E */
- { 0x07, 0xA0, aImplUniToDBCSTab_SJIS_9F }, /* 0x9F */
- { 1, 0, NULL }, /* 0xA0 */
- { 1, 0, NULL }, /* 0xA1 */
- { 1, 0, NULL }, /* 0xA2 */
- { 1, 0, NULL }, /* 0xA3 */
- { 1, 0, NULL }, /* 0xA4 */
- { 1, 0, NULL }, /* 0xA5 */
- { 1, 0, NULL }, /* 0xA6 */
- { 1, 0, NULL }, /* 0xA7 */
- { 1, 0, NULL }, /* 0xA8 */
- { 1, 0, NULL }, /* 0xA9 */
- { 1, 0, NULL }, /* 0xAA */
- { 1, 0, NULL }, /* 0xAB */
- { 1, 0, NULL }, /* 0xAC */
- { 1, 0, NULL }, /* 0xAD */
- { 1, 0, NULL }, /* 0xAE */
- { 1, 0, NULL }, /* 0xAF */
- { 1, 0, NULL }, /* 0xB0 */
- { 1, 0, NULL }, /* 0xB1 */
- { 1, 0, NULL }, /* 0xB2 */
- { 1, 0, NULL }, /* 0xB3 */
- { 1, 0, NULL }, /* 0xB4 */
- { 1, 0, NULL }, /* 0xB5 */
- { 1, 0, NULL }, /* 0xB6 */
- { 1, 0, NULL }, /* 0xB7 */
- { 1, 0, NULL }, /* 0xB8 */
- { 1, 0, NULL }, /* 0xB9 */
- { 1, 0, NULL }, /* 0xBA */
- { 1, 0, NULL }, /* 0xBB */
- { 1, 0, NULL }, /* 0xBC */
- { 1, 0, NULL }, /* 0xBD */
- { 1, 0, NULL }, /* 0xBE */
- { 1, 0, NULL }, /* 0xBF */
- { 1, 0, NULL }, /* 0xC0 */
- { 1, 0, NULL }, /* 0xC1 */
- { 1, 0, NULL }, /* 0xC2 */
- { 1, 0, NULL }, /* 0xC3 */
- { 1, 0, NULL }, /* 0xC4 */
- { 1, 0, NULL }, /* 0xC5 */
- { 1, 0, NULL }, /* 0xC6 */
- { 1, 0, NULL }, /* 0xC7 */
- { 1, 0, NULL }, /* 0xC8 */
- { 1, 0, NULL }, /* 0xC9 */
- { 1, 0, NULL }, /* 0xCA */
- { 1, 0, NULL }, /* 0xCB */
- { 1, 0, NULL }, /* 0xCC */
- { 1, 0, NULL }, /* 0xCD */
- { 1, 0, NULL }, /* 0xCE */
- { 1, 0, NULL }, /* 0xCF */
- { 1, 0, NULL }, /* 0xD0 */
- { 1, 0, NULL }, /* 0xD1 */
- { 1, 0, NULL }, /* 0xD2 */
- { 1, 0, NULL }, /* 0xD3 */
- { 1, 0, NULL }, /* 0xD4 */
- { 1, 0, NULL }, /* 0xD5 */
- { 1, 0, NULL }, /* 0xD6 */
- { 1, 0, NULL }, /* 0xD7 */
- { 1, 0, NULL }, /* 0xD8 */
- { 1, 0, NULL }, /* 0xD9 */
- { 1, 0, NULL }, /* 0xDA */
- { 1, 0, NULL }, /* 0xDB */
- { 1, 0, NULL }, /* 0xDC */
- { 1, 0, NULL }, /* 0xDD */
- { 1, 0, NULL }, /* 0xDE */
- { 1, 0, NULL }, /* 0xDF */
- { 1, 0, NULL }, /* 0xE0 */
- { 1, 0, NULL }, /* 0xE1 */
- { 1, 0, NULL }, /* 0xE2 */
- { 1, 0, NULL }, /* 0xE3 */
- { 1, 0, NULL }, /* 0xE4 */
- { 1, 0, NULL }, /* 0xE5 */
- { 1, 0, NULL }, /* 0xE6 */
- { 1, 0, NULL }, /* 0xE7 */
- { 1, 0, NULL }, /* 0xE8 */
- { 1, 0, NULL }, /* 0xE9 */
- { 1, 0, NULL }, /* 0xEA */
- { 1, 0, NULL }, /* 0xEB */
- { 1, 0, NULL }, /* 0xEC */
- { 1, 0, NULL }, /* 0xED */
- { 1, 0, NULL }, /* 0xEE */
- { 1, 0, NULL }, /* 0xEF */
- { 1, 0, NULL }, /* 0xF0 */
- { 1, 0, NULL }, /* 0xF1 */
- { 1, 0, NULL }, /* 0xF2 */
- { 1, 0, NULL }, /* 0xF3 */
- { 1, 0, NULL }, /* 0xF4 */
- { 1, 0, NULL }, /* 0xF5 */
- { 1, 0, NULL }, /* 0xF6 */
- { 1, 0, NULL }, /* 0xF7 */
- { 1, 0, NULL }, /* 0xF8 */
- { 0x29, 0xDC, aImplUniToDBCSTab_MS932_F9 }, /* 0xF9 */
- { 0x0E, 0x2D, aImplUniToDBCSTab_MS932_FA }, /* 0xFA */
- { 1, 0, NULL }, /* 0xFB */
- { 1, 0, NULL }, /* 0xFC */
- { 1, 0, NULL }, /* 0xFD */
- { 1, 0, NULL }, /* 0xFE */
- { 0x01, 0xE5, aImplUniToDBCSTab_SJIS_FF } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* F040-F9FC --> E000-E757 */
-
-#define DBCS_EUDC_SJIS_COUNT 1
-static ImplDBCSEUDCData const aImplSJISDBCSEUDCTab[DBCS_EUDC_SJIS_COUNT] =
-{
- /* EUDC-Range */
- /* Lead: F0-F9 */
- /* Trail: 40-7E, 80-FC */
- { 0xF0, 0xF9, 0x40, 0x7E, 0x80, 0xFC, 0, 0, 2, 0xBC, 0xE000, 0xE757 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplDBCSConvertData const aImplSJISDBCSCvtData =
-{
- aSJISUniLeadTab,
- aSJISDBCSHighTab,
- 0x00, 0xFF,
- 0x40, 0xFC,
- aImplSJISDBCSEUDCTab,
- DBCS_EUDC_SJIS_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplSJISTextEncodingData
- = { { &aImplSJISDBCSCvtData,
- ImplDBCSToUnicode,
- ImplUnicodeToDBCS,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 2,
- 2,
- 128,
- "euc-jp",
- "shift_jis",
- RTL_TEXTENCODING_INFO_MULTIBYTE | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_JAPANESE, pc code page 932, mac encoding 1 */
-
-/* ======================================================================= */
-
-static ImplDBCSToUniLeadTab const aMS932UniLeadTab[256] =
-{
- { 0x0000, 0, 0, NULL }, /* 0x00 */
- { 0x0001, 0, 0, NULL }, /* 0x01 */
- { 0x0002, 0, 0, NULL }, /* 0x02 */
- { 0x0003, 0, 0, NULL }, /* 0x03 */
- { 0x0004, 0, 0, NULL }, /* 0x04 */
- { 0x0005, 0, 0, NULL }, /* 0x05 */
- { 0x0006, 0, 0, NULL }, /* 0x06 */
- { 0x0007, 0, 0, NULL }, /* 0x07 */
- { 0x0008, 0, 0, NULL }, /* 0x08 */
- { 0x0009, 0, 0, NULL }, /* 0x09 */
- { 0x000A, 0, 0, NULL }, /* 0x0A */
- { 0x000B, 0, 0, NULL }, /* 0x0B */
- { 0x000C, 0, 0, NULL }, /* 0x0C */
- { 0x000D, 0, 0, NULL }, /* 0x0D */
- { 0x000E, 0, 0, NULL }, /* 0x0E */
- { 0x000F, 0, 0, NULL }, /* 0x0F */
- { 0x0010, 0, 0, NULL }, /* 0x10 */
- { 0x0011, 0, 0, NULL }, /* 0x11 */
- { 0x0012, 0, 0, NULL }, /* 0x12 */
- { 0x0013, 0, 0, NULL }, /* 0x13 */
- { 0x0014, 0, 0, NULL }, /* 0x14 */
- { 0x0015, 0, 0, NULL }, /* 0x15 */
- { 0x0016, 0, 0, NULL }, /* 0x16 */
- { 0x0017, 0, 0, NULL }, /* 0x17 */
- { 0x0018, 0, 0, NULL }, /* 0x18 */
- { 0x0019, 0, 0, NULL }, /* 0x19 */
- { 0x001A, 0, 0, NULL }, /* 0x1A */
- { 0x001B, 0, 0, NULL }, /* 0x1B */
- { 0x001C, 0, 0, NULL }, /* 0x1C */
- { 0x001D, 0, 0, NULL }, /* 0x1D */
- { 0x001E, 0, 0, NULL }, /* 0x1E */
- { 0x001F, 0, 0, NULL }, /* 0x1F */
- { 0x0020, 0, 0, NULL }, /* 0x20 */
- { 0x0021, 0, 0, NULL }, /* 0x21 */
- { 0x0022, 0, 0, NULL }, /* 0x22 */
- { 0x0023, 0, 0, NULL }, /* 0x23 */
- { 0x0024, 0, 0, NULL }, /* 0x24 */
- { 0x0025, 0, 0, NULL }, /* 0x25 */
- { 0x0026, 0, 0, NULL }, /* 0x26 */
- { 0x0027, 0, 0, NULL }, /* 0x27 */
- { 0x0028, 0, 0, NULL }, /* 0x28 */
- { 0x0029, 0, 0, NULL }, /* 0x29 */
- { 0x002A, 0, 0, NULL }, /* 0x2A */
- { 0x002B, 0, 0, NULL }, /* 0x2B */
- { 0x002C, 0, 0, NULL }, /* 0x2C */
- { 0x002D, 0, 0, NULL }, /* 0x2D */
- { 0x002E, 0, 0, NULL }, /* 0x2E */
- { 0x002F, 0, 0, NULL }, /* 0x2F */
- { 0x0030, 0, 0, NULL }, /* 0x30 */
- { 0x0031, 0, 0, NULL }, /* 0x31 */
- { 0x0032, 0, 0, NULL }, /* 0x32 */
- { 0x0033, 0, 0, NULL }, /* 0x33 */
- { 0x0034, 0, 0, NULL }, /* 0x34 */
- { 0x0035, 0, 0, NULL }, /* 0x35 */
- { 0x0036, 0, 0, NULL }, /* 0x36 */
- { 0x0037, 0, 0, NULL }, /* 0x37 */
- { 0x0038, 0, 0, NULL }, /* 0x38 */
- { 0x0039, 0, 0, NULL }, /* 0x39 */
- { 0x003A, 0, 0, NULL }, /* 0x3A */
- { 0x003B, 0, 0, NULL }, /* 0x3B */
- { 0x003C, 0, 0, NULL }, /* 0x3C */
- { 0x003D, 0, 0, NULL }, /* 0x3D */
- { 0x003E, 0, 0, NULL }, /* 0x3E */
- { 0x003F, 0, 0, NULL }, /* 0x3F */
- { 0x0040, 0, 0, NULL }, /* 0x40 */
- { 0x0041, 0, 0, NULL }, /* 0x41 */
- { 0x0042, 0, 0, NULL }, /* 0x42 */
- { 0x0043, 0, 0, NULL }, /* 0x43 */
- { 0x0044, 0, 0, NULL }, /* 0x44 */
- { 0x0045, 0, 0, NULL }, /* 0x45 */
- { 0x0046, 0, 0, NULL }, /* 0x46 */
- { 0x0047, 0, 0, NULL }, /* 0x47 */
- { 0x0048, 0, 0, NULL }, /* 0x48 */
- { 0x0049, 0, 0, NULL }, /* 0x49 */
- { 0x004A, 0, 0, NULL }, /* 0x4A */
- { 0x004B, 0, 0, NULL }, /* 0x4B */
- { 0x004C, 0, 0, NULL }, /* 0x4C */
- { 0x004D, 0, 0, NULL }, /* 0x4D */
- { 0x004E, 0, 0, NULL }, /* 0x4E */
- { 0x004F, 0, 0, NULL }, /* 0x4F */
- { 0x0050, 0, 0, NULL }, /* 0x50 */
- { 0x0051, 0, 0, NULL }, /* 0x51 */
- { 0x0052, 0, 0, NULL }, /* 0x52 */
- { 0x0053, 0, 0, NULL }, /* 0x53 */
- { 0x0054, 0, 0, NULL }, /* 0x54 */
- { 0x0055, 0, 0, NULL }, /* 0x55 */
- { 0x0056, 0, 0, NULL }, /* 0x56 */
- { 0x0057, 0, 0, NULL }, /* 0x57 */
- { 0x0058, 0, 0, NULL }, /* 0x58 */
- { 0x0059, 0, 0, NULL }, /* 0x59 */
- { 0x005A, 0, 0, NULL }, /* 0x5A */
- { 0x005B, 0, 0, NULL }, /* 0x5B */
- { 0x005C, 0, 0, NULL }, /* 0x5C */ /* in SJIS this is A5 (YEN SIGN), but for compatibiliy with ascii, we use 0x5C like MS CP392 */
- { 0x005D, 0, 0, NULL }, /* 0x5D */
- { 0x005E, 0, 0, NULL }, /* 0x5E */
- { 0x005F, 0, 0, NULL }, /* 0x5F */
- { 0x0060, 0, 0, NULL }, /* 0x60 */
- { 0x0061, 0, 0, NULL }, /* 0x61 */
- { 0x0062, 0, 0, NULL }, /* 0x62 */
- { 0x0063, 0, 0, NULL }, /* 0x63 */
- { 0x0064, 0, 0, NULL }, /* 0x64 */
- { 0x0065, 0, 0, NULL }, /* 0x65 */
- { 0x0066, 0, 0, NULL }, /* 0x66 */
- { 0x0067, 0, 0, NULL }, /* 0x67 */
- { 0x0068, 0, 0, NULL }, /* 0x68 */
- { 0x0069, 0, 0, NULL }, /* 0x69 */
- { 0x006A, 0, 0, NULL }, /* 0x6A */
- { 0x006B, 0, 0, NULL }, /* 0x6B */
- { 0x006C, 0, 0, NULL }, /* 0x6C */
- { 0x006D, 0, 0, NULL }, /* 0x6D */
- { 0x006E, 0, 0, NULL }, /* 0x6E */
- { 0x006F, 0, 0, NULL }, /* 0x6F */
- { 0x0070, 0, 0, NULL }, /* 0x70 */
- { 0x0071, 0, 0, NULL }, /* 0x71 */
- { 0x0072, 0, 0, NULL }, /* 0x72 */
- { 0x0073, 0, 0, NULL }, /* 0x73 */
- { 0x0074, 0, 0, NULL }, /* 0x74 */
- { 0x0075, 0, 0, NULL }, /* 0x75 */
- { 0x0076, 0, 0, NULL }, /* 0x76 */
- { 0x0077, 0, 0, NULL }, /* 0x77 */
- { 0x0078, 0, 0, NULL }, /* 0x78 */
- { 0x0079, 0, 0, NULL }, /* 0x79 */
- { 0x007A, 0, 0, NULL }, /* 0x7A */
- { 0x007B, 0, 0, NULL }, /* 0x7B */
- { 0x007C, 0, 0, NULL }, /* 0x7C */
- { 0x007D, 0, 0, NULL }, /* 0x7D */
- { 0x007E, 0, 0, NULL }, /* 0x7E */ /* in SJIS this is 0x0203E (SPACING OVERSCORE), but for compatibiliy with ascii, we use 0x7E (TILDE) like MS CP392 */
- { 0x007F, 0, 0, NULL }, /* 0x7F */
- { 0x005C, 0, 0, NULL }, /* 0x80 */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_81 }, /* 0x81 */
- { 0, 0x4F, 0xF1, aImplDBCSToUniTab_SJIS_82 }, /* 0x82 */
- { 0, 0x40, 0xD6, aImplDBCSToUniTab_SJIS_83 }, /* 0x83 */
- { 0, 0x40, 0xBF, aImplDBCSToUniTab_SJIS_84 }, /* 0x84 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x85 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x86 */ /* We convert this as double byte */
- { 0, 0x40, 0x9C, aImplDBCSToUniTab_MS932_87 }, /* 0x87 */
- { 0, 0x9F, 0xFC, aImplDBCSToUniTab_SJIS_88 }, /* 0x88 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_89 }, /* 0x89 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8A }, /* 0x8A */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8B }, /* 0x8B */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8C }, /* 0x8C */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8D }, /* 0x8D */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8E }, /* 0x8E */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8F }, /* 0x8F */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_90 }, /* 0x90 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_91 }, /* 0x91 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_92 }, /* 0x92 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_93 }, /* 0x93 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_94 }, /* 0x94 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_95 }, /* 0x95 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_96 }, /* 0x96 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_97 }, /* 0x97 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_98 }, /* 0x98 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_99 }, /* 0x99 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9A }, /* 0x9A */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9B }, /* 0x9B */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9C }, /* 0x9C */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9D }, /* 0x9D */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9E }, /* 0x9E */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9F }, /* 0x9F */
- { 0x00A0, 0, 0, NULL }, /* 0xA0 */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */
- { 0xFF61, 0, 0, NULL }, /* 0xA1 */
- { 0xFF62, 0, 0, NULL }, /* 0xA2 */
- { 0xFF63, 0, 0, NULL }, /* 0xA3 */
- { 0xFF64, 0, 0, NULL }, /* 0xA4 */
- { 0xFF65, 0, 0, NULL }, /* 0xA5 */
- { 0xFF66, 0, 0, NULL }, /* 0xA6 */
- { 0xFF67, 0, 0, NULL }, /* 0xA7 */
- { 0xFF68, 0, 0, NULL }, /* 0xA8 */
- { 0xFF69, 0, 0, NULL }, /* 0xA9 */
- { 0xFF6A, 0, 0, NULL }, /* 0xAA */
- { 0xFF6B, 0, 0, NULL }, /* 0xAB */
- { 0xFF6C, 0, 0, NULL }, /* 0xAC */
- { 0xFF6D, 0, 0, NULL }, /* 0xAD */
- { 0xFF6E, 0, 0, NULL }, /* 0xAE */
- { 0xFF6F, 0, 0, NULL }, /* 0xAF */
- { 0xFF70, 0, 0, NULL }, /* 0xB0 */
- { 0xFF71, 0, 0, NULL }, /* 0xB1 */
- { 0xFF72, 0, 0, NULL }, /* 0xB2 */
- { 0xFF73, 0, 0, NULL }, /* 0xB3 */
- { 0xFF74, 0, 0, NULL }, /* 0xB4 */
- { 0xFF75, 0, 0, NULL }, /* 0xB5 */
- { 0xFF76, 0, 0, NULL }, /* 0xB6 */
- { 0xFF77, 0, 0, NULL }, /* 0xB7 */
- { 0xFF78, 0, 0, NULL }, /* 0xB8 */
- { 0xFF79, 0, 0, NULL }, /* 0xB9 */
- { 0xFF7A, 0, 0, NULL }, /* 0xBA */
- { 0xFF7B, 0, 0, NULL }, /* 0xBB */
- { 0xFF7C, 0, 0, NULL }, /* 0xBC */
- { 0xFF7D, 0, 0, NULL }, /* 0xBD */
- { 0xFF7E, 0, 0, NULL }, /* 0xBE */
- { 0xFF7F, 0, 0, NULL }, /* 0xBF */
- { 0xFF80, 0, 0, NULL }, /* 0xC0 */
- { 0xFF81, 0, 0, NULL }, /* 0xC1 */
- { 0xFF82, 0, 0, NULL }, /* 0xC2 */
- { 0xFF83, 0, 0, NULL }, /* 0xC3 */
- { 0xFF84, 0, 0, NULL }, /* 0xC4 */
- { 0xFF85, 0, 0, NULL }, /* 0xC5 */
- { 0xFF86, 0, 0, NULL }, /* 0xC6 */
- { 0xFF87, 0, 0, NULL }, /* 0xC7 */
- { 0xFF88, 0, 0, NULL }, /* 0xC8 */
- { 0xFF89, 0, 0, NULL }, /* 0xC9 */
- { 0xFF8A, 0, 0, NULL }, /* 0xCA */
- { 0xFF8B, 0, 0, NULL }, /* 0xCB */
- { 0xFF8C, 0, 0, NULL }, /* 0xCC */
- { 0xFF8D, 0, 0, NULL }, /* 0xCD */
- { 0xFF8E, 0, 0, NULL }, /* 0xCE */
- { 0xFF8F, 0, 0, NULL }, /* 0xCF */
- { 0xFF90, 0, 0, NULL }, /* 0xD0 */
- { 0xFF91, 0, 0, NULL }, /* 0xD1 */
- { 0xFF92, 0, 0, NULL }, /* 0xD2 */
- { 0xFF93, 0, 0, NULL }, /* 0xD3 */
- { 0xFF94, 0, 0, NULL }, /* 0xD4 */
- { 0xFF95, 0, 0, NULL }, /* 0xD5 */
- { 0xFF96, 0, 0, NULL }, /* 0xD6 */
- { 0xFF97, 0, 0, NULL }, /* 0xD7 */
- { 0xFF98, 0, 0, NULL }, /* 0xD8 */
- { 0xFF99, 0, 0, NULL }, /* 0xD9 */
- { 0xFF9A, 0, 0, NULL }, /* 0xDA */
- { 0xFF9B, 0, 0, NULL }, /* 0xDB */
- { 0xFF9C, 0, 0, NULL }, /* 0xDC */
- { 0xFF9D, 0, 0, NULL }, /* 0xDD */
- { 0xFF9E, 0, 0, NULL }, /* 0xDE */
- { 0xFF9F, 0, 0, NULL }, /* 0xDF */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E0 }, /* 0xE0 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E1 }, /* 0xE1 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E2 }, /* 0xE2 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E3 }, /* 0xE3 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E4 }, /* 0xE4 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E5 }, /* 0xE5 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E6 }, /* 0xE6 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E7 }, /* 0xE7 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E8 }, /* 0xE8 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E9 }, /* 0xE9 */
- { 0, 0x40, 0xA4, aImplDBCSToUniTab_SJIS_EA }, /* 0xEA */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEB */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEC */ /* We convert this as double byte */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_ED }, /* 0xED */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_EE }, /* 0xEE */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEF */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF0 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF1 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF2 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF3 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF4 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF5 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF6 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF7 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF8 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF9 */ /* EUDC Range */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FA }, /* 0xFA */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FB }, /* 0xFB */
- { 0, 0x40, 0x4B, aImplDBCSToUniTab_MS932_FC }, /* 0xFC */
- { 0x00A9, 0, 0, NULL }, /* 0xFD */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */
- { 0x2122, 0, 0, NULL }, /* 0xFE */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */
- { 0x2026, 0, 0, NULL } /* 0xFF */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplUniToDBCSHighTab const aMS932DBCSHighTab[256] =
-{
- { 0x00, 0xF7, aImplUniToDBCSTab_SJIS_00 }, /* 0x00 */
- { 1, 0, NULL }, /* 0x01 */
- { 1, 0, NULL }, /* 0x02 */
- { 0x91, 0xC9, aImplUniToDBCSTab_SJIS_03 }, /* 0x03 */
- { 0x01, 0x51, aImplUniToDBCSTab_SJIS_04 }, /* 0x04 */
- { 1, 0, NULL }, /* 0x05 */
- { 1, 0, NULL }, /* 0x06 */
- { 1, 0, NULL }, /* 0x07 */
- { 1, 0, NULL }, /* 0x08 */
- { 1, 0, NULL }, /* 0x09 */
- { 1, 0, NULL }, /* 0x0A */
- { 1, 0, NULL }, /* 0x0B */
- { 1, 0, NULL }, /* 0x0C */
- { 1, 0, NULL }, /* 0x0D */
- { 1, 0, NULL }, /* 0x0E */
- { 1, 0, NULL }, /* 0x0F */
- { 1, 0, NULL }, /* 0x10 */
- { 1, 0, NULL }, /* 0x11 */
- { 1, 0, NULL }, /* 0x12 */
- { 1, 0, NULL }, /* 0x13 */
- { 1, 0, NULL }, /* 0x14 */
- { 1, 0, NULL }, /* 0x15 */
- { 1, 0, NULL }, /* 0x16 */
- { 1, 0, NULL }, /* 0x17 */
- { 1, 0, NULL }, /* 0x18 */
- { 1, 0, NULL }, /* 0x19 */
- { 1, 0, NULL }, /* 0x1A */
- { 1, 0, NULL }, /* 0x1B */
- { 1, 0, NULL }, /* 0x1C */
- { 1, 0, NULL }, /* 0x1D */
- { 1, 0, NULL }, /* 0x1E */
- { 1, 0, NULL }, /* 0x1F */
- { 0x10, 0x3E, aImplUniToDBCSTab_SJIS_20 }, /* 0x20 */
- { 0x03, 0xD4, aImplUniToDBCSTab_MS932_21 }, /* 0x21 */
- { 0x00, 0xBF, aImplUniToDBCSTab_MS932_22 }, /* 0x22 */
- { 0x12, 0x12, aImplUniToDBCSTab_SJIS_23 }, /* 0x23 */
- { 0x60, 0x73, aImplUniToDBCSTab_MS932_24 }, /* 0x24 */
- { 0x00, 0xEF, aImplUniToDBCSTab_SJIS_25 }, /* 0x25 */
- { 0x05, 0x6F, aImplUniToDBCSTab_SJIS_26 }, /* 0x26 */
- { 1, 0, NULL }, /* 0x27 */
- { 1, 0, NULL }, /* 0x28 */
- { 1, 0, NULL }, /* 0x29 */
- { 1, 0, NULL }, /* 0x2A */
- { 1, 0, NULL }, /* 0x2B */
- { 1, 0, NULL }, /* 0x2C */
- { 1, 0, NULL }, /* 0x2D */
- { 1, 0, NULL }, /* 0x2E */
- { 1, 0, NULL }, /* 0x2F */
- { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_30 }, /* 0x30 */
- { 1, 0, NULL }, /* 0x31 */
- { 0x31, 0xA8, aImplUniToDBCSTab_MS932_32 }, /* 0x32 */
- { 0x03, 0xCD, aImplUniToDBCSTab_MS932_33 }, /* 0x33 */
- { 1, 0, NULL }, /* 0x34 */
- { 1, 0, NULL }, /* 0x35 */
- { 1, 0, NULL }, /* 0x36 */
- { 1, 0, NULL }, /* 0x37 */
- { 1, 0, NULL }, /* 0x38 */
- { 1, 0, NULL }, /* 0x39 */
- { 1, 0, NULL }, /* 0x3A */
- { 1, 0, NULL }, /* 0x3B */
- { 1, 0, NULL }, /* 0x3C */
- { 1, 0, NULL }, /* 0x3D */
- { 1, 0, NULL }, /* 0x3E */
- { 1, 0, NULL }, /* 0x3F */
- { 1, 0, NULL }, /* 0x40 */
- { 1, 0, NULL }, /* 0x41 */
- { 1, 0, NULL }, /* 0x42 */
- { 1, 0, NULL }, /* 0x43 */
- { 1, 0, NULL }, /* 0x44 */
- { 1, 0, NULL }, /* 0x45 */
- { 1, 0, NULL }, /* 0x46 */
- { 1, 0, NULL }, /* 0x47 */
- { 1, 0, NULL }, /* 0x48 */
- { 1, 0, NULL }, /* 0x49 */
- { 1, 0, NULL }, /* 0x4A */
- { 1, 0, NULL }, /* 0x4B */
- { 1, 0, NULL }, /* 0x4C */
- { 1, 0, NULL }, /* 0x4D */
- { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_4E }, /* 0x4E */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_4F }, /* 0x4F */
- { 0x05, 0xFB, aImplUniToDBCSTab_SJIS_50 }, /* 0x50 */
- { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_51 }, /* 0x51 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_52 }, /* 0x52 */
- { 0x00, 0xFA, aImplUniToDBCSTab_SJIS_53 }, /* 0x53 */
- { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_54 }, /* 0x54 */
- { 0x04, 0xFE, aImplUniToDBCSTab_SJIS_55 }, /* 0x55 */
- { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_56 }, /* 0x56 */
- { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_57 }, /* 0x57 */
- { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_58 }, /* 0x58 */
- { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_59 }, /* 0x59 */
- { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_5A }, /* 0x5A */
- { 0x09, 0xFF, aImplUniToDBCSTab_SJIS_5B }, /* 0x5B */
- { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_5C }, /* 0x5C */
- { 0x07, 0xFE, aImplUniToDBCSTab_SJIS_5D }, /* 0x5D */
- { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_5E }, /* 0x5E */
- { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_5F }, /* 0x5F */
- { 0x0E, 0xFB, aImplUniToDBCSTab_SJIS_60 }, /* 0x60 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_61 }, /* 0x61 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_62 }, /* 0x62 */
- { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_63 }, /* 0x63 */
- { 0x06, 0xFE, aImplUniToDBCSTab_SJIS_64 }, /* 0x64 */
- { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_65 }, /* 0x65 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_66 }, /* 0x66 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_67 }, /* 0x67 */
- { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_68 }, /* 0x68 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_69 }, /* 0x69 */
- { 0x02, 0xFB, aImplUniToDBCSTab_SJIS_6A }, /* 0x6A */
- { 0x04, 0xF3, aImplUniToDBCSTab_SJIS_6B }, /* 0x6B */
- { 0x08, 0xF3, aImplUniToDBCSTab_SJIS_6C }, /* 0x6C */
- { 0x04, 0xFC, aImplUniToDBCSTab_SJIS_6D }, /* 0x6D */
- { 0x05, 0xFF, aImplUniToDBCSTab_SJIS_6E }, /* 0x6E */
- { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_6F }, /* 0x6F */
- { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_70 }, /* 0x70 */
- { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_71 }, /* 0x71 */
- { 0x06, 0xFD, aImplUniToDBCSTab_SJIS_72 }, /* 0x72 */
- { 0x0A, 0xFE, aImplUniToDBCSTab_SJIS_73 }, /* 0x73 */
- { 0x03, 0xF8, aImplUniToDBCSTab_SJIS_74 }, /* 0x74 */
- { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_75 }, /* 0x75 */
- { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_76 }, /* 0x76 */
- { 0x01, 0xFC, aImplUniToDBCSTab_SJIS_77 }, /* 0x77 */
- { 0x02, 0xFD, aImplUniToDBCSTab_SJIS_78 }, /* 0x78 */
- { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_79 }, /* 0x79 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_7A }, /* 0x7A */
- { 0x02, 0xF7, aImplUniToDBCSTab_SJIS_7B }, /* 0x7B */
- { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_7C }, /* 0x7C */
- { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_7D }, /* 0x7D */
- { 0x01, 0x9C, aImplUniToDBCSTab_SJIS_7E }, /* 0x7E */
- { 0x36, 0xFC, aImplUniToDBCSTab_SJIS_7F }, /* 0x7F */
- { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_80 }, /* 0x80 */
- { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_81 }, /* 0x81 */
- { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_82 }, /* 0x82 */
- { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_83 }, /* 0x83 */
- { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_84 }, /* 0x84 */
- { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_85 }, /* 0x85 */
- { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_86 }, /* 0x86 */
- { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_87 }, /* 0x87 */
- { 0x05, 0xFE, aImplUniToDBCSTab_SJIS_88 }, /* 0x88 */
- { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_89 }, /* 0x89 */
- { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_8A }, /* 0x8A */
- { 0x00, 0x9A, aImplUniToDBCSTab_SJIS_8B }, /* 0x8B */
- { 0x37, 0xFD, aImplUniToDBCSTab_SJIS_8C }, /* 0x8C */
- { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_8D }, /* 0x8D */
- { 0x08, 0xFE, aImplUniToDBCSTab_SJIS_8E }, /* 0x8E */
- { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_8F }, /* 0x8F */
- { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_90 }, /* 0x90 */
- { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_91 }, /* 0x91 */
- { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_92 }, /* 0x92 */
- { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_93 }, /* 0x93 */
- { 0x03, 0x81, aImplUniToDBCSTab_SJIS_94 }, /* 0x94 */
- { 0x77, 0xE5, aImplUniToDBCSTab_SJIS_95 }, /* 0x95 */
- { 0x1C, 0xFB, aImplUniToDBCSTab_SJIS_96 }, /* 0x96 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_97 }, /* 0x97 */
- { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_98 }, /* 0x98 */
- { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_99 }, /* 0x99 */
- { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_9A }, /* 0x9A */
- { 0x06, 0xF5, aImplUniToDBCSTab_SJIS_9B }, /* 0x9B */
- { 0x00, 0xF6, aImplUniToDBCSTab_SJIS_9C }, /* 0x9C */
- { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_9D }, /* 0x9D */
- { 0x19, 0xFD, aImplUniToDBCSTab_SJIS_9E }, /* 0x9E */
- { 0x07, 0xA0, aImplUniToDBCSTab_SJIS_9F }, /* 0x9F */
- { 1, 0, NULL }, /* 0xA0 */
- { 1, 0, NULL }, /* 0xA1 */
- { 1, 0, NULL }, /* 0xA2 */
- { 1, 0, NULL }, /* 0xA3 */
- { 1, 0, NULL }, /* 0xA4 */
- { 1, 0, NULL }, /* 0xA5 */
- { 1, 0, NULL }, /* 0xA6 */
- { 1, 0, NULL }, /* 0xA7 */
- { 1, 0, NULL }, /* 0xA8 */
- { 1, 0, NULL }, /* 0xA9 */
- { 1, 0, NULL }, /* 0xAA */
- { 1, 0, NULL }, /* 0xAB */
- { 1, 0, NULL }, /* 0xAC */
- { 1, 0, NULL }, /* 0xAD */
- { 1, 0, NULL }, /* 0xAE */
- { 1, 0, NULL }, /* 0xAF */
- { 1, 0, NULL }, /* 0xB0 */
- { 1, 0, NULL }, /* 0xB1 */
- { 1, 0, NULL }, /* 0xB2 */
- { 1, 0, NULL }, /* 0xB3 */
- { 1, 0, NULL }, /* 0xB4 */
- { 1, 0, NULL }, /* 0xB5 */
- { 1, 0, NULL }, /* 0xB6 */
- { 1, 0, NULL }, /* 0xB7 */
- { 1, 0, NULL }, /* 0xB8 */
- { 1, 0, NULL }, /* 0xB9 */
- { 1, 0, NULL }, /* 0xBA */
- { 1, 0, NULL }, /* 0xBB */
- { 1, 0, NULL }, /* 0xBC */
- { 1, 0, NULL }, /* 0xBD */
- { 1, 0, NULL }, /* 0xBE */
- { 1, 0, NULL }, /* 0xBF */
- { 1, 0, NULL }, /* 0xC0 */
- { 1, 0, NULL }, /* 0xC1 */
- { 1, 0, NULL }, /* 0xC2 */
- { 1, 0, NULL }, /* 0xC3 */
- { 1, 0, NULL }, /* 0xC4 */
- { 1, 0, NULL }, /* 0xC5 */
- { 1, 0, NULL }, /* 0xC6 */
- { 1, 0, NULL }, /* 0xC7 */
- { 1, 0, NULL }, /* 0xC8 */
- { 1, 0, NULL }, /* 0xC9 */
- { 1, 0, NULL }, /* 0xCA */
- { 1, 0, NULL }, /* 0xCB */
- { 1, 0, NULL }, /* 0xCC */
- { 1, 0, NULL }, /* 0xCD */
- { 1, 0, NULL }, /* 0xCE */
- { 1, 0, NULL }, /* 0xCF */
- { 1, 0, NULL }, /* 0xD0 */
- { 1, 0, NULL }, /* 0xD1 */
- { 1, 0, NULL }, /* 0xD2 */
- { 1, 0, NULL }, /* 0xD3 */
- { 1, 0, NULL }, /* 0xD4 */
- { 1, 0, NULL }, /* 0xD5 */
- { 1, 0, NULL }, /* 0xD6 */
- { 1, 0, NULL }, /* 0xD7 */
- { 1, 0, NULL }, /* 0xD8 */
- { 1, 0, NULL }, /* 0xD9 */
- { 1, 0, NULL }, /* 0xDA */
- { 1, 0, NULL }, /* 0xDB */
- { 1, 0, NULL }, /* 0xDC */
- { 1, 0, NULL }, /* 0xDD */
- { 1, 0, NULL }, /* 0xDE */
- { 1, 0, NULL }, /* 0xDF */
- { 1, 0, NULL }, /* 0xE0 */
- { 1, 0, NULL }, /* 0xE1 */
- { 1, 0, NULL }, /* 0xE2 */
- { 1, 0, NULL }, /* 0xE3 */
- { 1, 0, NULL }, /* 0xE4 */
- { 1, 0, NULL }, /* 0xE5 */
- { 1, 0, NULL }, /* 0xE6 */
- { 1, 0, NULL }, /* 0xE7 */
- { 1, 0, NULL }, /* 0xE8 */
- { 1, 0, NULL }, /* 0xE9 */
- { 1, 0, NULL }, /* 0xEA */
- { 1, 0, NULL }, /* 0xEB */
- { 1, 0, NULL }, /* 0xEC */
- { 1, 0, NULL }, /* 0xED */
- { 1, 0, NULL }, /* 0xEE */
- { 1, 0, NULL }, /* 0xEF */
- { 1, 0, NULL }, /* 0xF0 */
- { 1, 0, NULL }, /* 0xF1 */
- { 1, 0, NULL }, /* 0xF2 */
- { 1, 0, NULL }, /* 0xF3 */
- { 1, 0, NULL }, /* 0xF4 */
- { 1, 0, NULL }, /* 0xF5 */
- { 1, 0, NULL }, /* 0xF6 */
- { 1, 0, NULL }, /* 0xF7 */
- { 1, 0, NULL }, /* 0xF8 */
- { 0x29, 0xDC, aImplUniToDBCSTab_MS932_F9 }, /* 0xF9 */
- { 0x0E, 0x2D, aImplUniToDBCSTab_MS932_FA }, /* 0xFA */
- { 1, 0, NULL }, /* 0xFB */
- { 1, 0, NULL }, /* 0xFC */
- { 1, 0, NULL }, /* 0xFD */
- { 1, 0, NULL }, /* 0xFE */
- { 0x01, 0xE5, aImplUniToDBCSTab_SJIS_FF } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplDBCSConvertData const aImplMS932DBCSCvtData =
-{
- aMS932UniLeadTab,
- aMS932DBCSHighTab,
- 0x00, 0xFF,
- 0x40, 0xFC,
- aImplSJISDBCSEUDCTab,
- DBCS_EUDC_SJIS_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplMS932TextEncodingData
- = { { &aImplMS932DBCSCvtData,
- ImplDBCSToUnicode,
- ImplUnicodeToDBCS,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 2,
- 2,
- 128,
- "euc-jp",
- "shift_jis",
- RTL_TEXTENCODING_INFO_MULTIBYTE };
- /* WIN/DOS/OS2, SCRIPT_JAPANESE, pc code page 932, mac encoding 1 */
-
-/* ======================================================================= */
-
-static ImplDBCSToUniLeadTab const aAPPLEJAPANESEUniLeadTab[256] =
-{
- { 0x0000, 0, 0, NULL }, /* 0x00 */
- { 0x0001, 0, 0, NULL }, /* 0x01 */
- { 0x0002, 0, 0, NULL }, /* 0x02 */
- { 0x0003, 0, 0, NULL }, /* 0x03 */
- { 0x0004, 0, 0, NULL }, /* 0x04 */
- { 0x0005, 0, 0, NULL }, /* 0x05 */
- { 0x0006, 0, 0, NULL }, /* 0x06 */
- { 0x0007, 0, 0, NULL }, /* 0x07 */
- { 0x0008, 0, 0, NULL }, /* 0x08 */
- { 0x0009, 0, 0, NULL }, /* 0x09 */
- { 0x000A, 0, 0, NULL }, /* 0x0A */
- { 0x000B, 0, 0, NULL }, /* 0x0B */
- { 0x000C, 0, 0, NULL }, /* 0x0C */
- { 0x000D, 0, 0, NULL }, /* 0x0D */
- { 0x000E, 0, 0, NULL }, /* 0x0E */
- { 0x000F, 0, 0, NULL }, /* 0x0F */
- { 0x0010, 0, 0, NULL }, /* 0x10 */
- { 0x0011, 0, 0, NULL }, /* 0x11 */
- { 0x0012, 0, 0, NULL }, /* 0x12 */
- { 0x0013, 0, 0, NULL }, /* 0x13 */
- { 0x0014, 0, 0, NULL }, /* 0x14 */
- { 0x0015, 0, 0, NULL }, /* 0x15 */
- { 0x0016, 0, 0, NULL }, /* 0x16 */
- { 0x0017, 0, 0, NULL }, /* 0x17 */
- { 0x0018, 0, 0, NULL }, /* 0x18 */
- { 0x0019, 0, 0, NULL }, /* 0x19 */
- { 0x001A, 0, 0, NULL }, /* 0x1A */
- { 0x001B, 0, 0, NULL }, /* 0x1B */
- { 0x001C, 0, 0, NULL }, /* 0x1C */
- { 0x001D, 0, 0, NULL }, /* 0x1D */
- { 0x001E, 0, 0, NULL }, /* 0x1E */
- { 0x001F, 0, 0, NULL }, /* 0x1F */
- { 0x0020, 0, 0, NULL }, /* 0x20 */
- { 0x0021, 0, 0, NULL }, /* 0x21 */
- { 0x0022, 0, 0, NULL }, /* 0x22 */
- { 0x0023, 0, 0, NULL }, /* 0x23 */
- { 0x0024, 0, 0, NULL }, /* 0x24 */
- { 0x0025, 0, 0, NULL }, /* 0x25 */
- { 0x0026, 0, 0, NULL }, /* 0x26 */
- { 0x0027, 0, 0, NULL }, /* 0x27 */
- { 0x0028, 0, 0, NULL }, /* 0x28 */
- { 0x0029, 0, 0, NULL }, /* 0x29 */
- { 0x002A, 0, 0, NULL }, /* 0x2A */
- { 0x002B, 0, 0, NULL }, /* 0x2B */
- { 0x002C, 0, 0, NULL }, /* 0x2C */
- { 0x002D, 0, 0, NULL }, /* 0x2D */
- { 0x002E, 0, 0, NULL }, /* 0x2E */
- { 0x002F, 0, 0, NULL }, /* 0x2F */
- { 0x0030, 0, 0, NULL }, /* 0x30 */
- { 0x0031, 0, 0, NULL }, /* 0x31 */
- { 0x0032, 0, 0, NULL }, /* 0x32 */
- { 0x0033, 0, 0, NULL }, /* 0x33 */
- { 0x0034, 0, 0, NULL }, /* 0x34 */
- { 0x0035, 0, 0, NULL }, /* 0x35 */
- { 0x0036, 0, 0, NULL }, /* 0x36 */
- { 0x0037, 0, 0, NULL }, /* 0x37 */
- { 0x0038, 0, 0, NULL }, /* 0x38 */
- { 0x0039, 0, 0, NULL }, /* 0x39 */
- { 0x003A, 0, 0, NULL }, /* 0x3A */
- { 0x003B, 0, 0, NULL }, /* 0x3B */
- { 0x003C, 0, 0, NULL }, /* 0x3C */
- { 0x003D, 0, 0, NULL }, /* 0x3D */
- { 0x003E, 0, 0, NULL }, /* 0x3E */
- { 0x003F, 0, 0, NULL }, /* 0x3F */
- { 0x0040, 0, 0, NULL }, /* 0x40 */
- { 0x0041, 0, 0, NULL }, /* 0x41 */
- { 0x0042, 0, 0, NULL }, /* 0x42 */
- { 0x0043, 0, 0, NULL }, /* 0x43 */
- { 0x0044, 0, 0, NULL }, /* 0x44 */
- { 0x0045, 0, 0, NULL }, /* 0x45 */
- { 0x0046, 0, 0, NULL }, /* 0x46 */
- { 0x0047, 0, 0, NULL }, /* 0x47 */
- { 0x0048, 0, 0, NULL }, /* 0x48 */
- { 0x0049, 0, 0, NULL }, /* 0x49 */
- { 0x004A, 0, 0, NULL }, /* 0x4A */
- { 0x004B, 0, 0, NULL }, /* 0x4B */
- { 0x004C, 0, 0, NULL }, /* 0x4C */
- { 0x004D, 0, 0, NULL }, /* 0x4D */
- { 0x004E, 0, 0, NULL }, /* 0x4E */
- { 0x004F, 0, 0, NULL }, /* 0x4F */
- { 0x0050, 0, 0, NULL }, /* 0x50 */
- { 0x0051, 0, 0, NULL }, /* 0x51 */
- { 0x0052, 0, 0, NULL }, /* 0x52 */
- { 0x0053, 0, 0, NULL }, /* 0x53 */
- { 0x0054, 0, 0, NULL }, /* 0x54 */
- { 0x0055, 0, 0, NULL }, /* 0x55 */
- { 0x0056, 0, 0, NULL }, /* 0x56 */
- { 0x0057, 0, 0, NULL }, /* 0x57 */
- { 0x0058, 0, 0, NULL }, /* 0x58 */
- { 0x0059, 0, 0, NULL }, /* 0x59 */
- { 0x005A, 0, 0, NULL }, /* 0x5A */
- { 0x005B, 0, 0, NULL }, /* 0x5B */
- { 0x005C, 0, 0, NULL }, /* 0x5C */ /* is A5 (YEN SIGN), but for compatibiliy with ascii, we use 0x5C like MS CP392 */
- { 0x005D, 0, 0, NULL }, /* 0x5D */
- { 0x005E, 0, 0, NULL }, /* 0x5E */
- { 0x005F, 0, 0, NULL }, /* 0x5F */
- { 0x0060, 0, 0, NULL }, /* 0x60 */
- { 0x0061, 0, 0, NULL }, /* 0x61 */
- { 0x0062, 0, 0, NULL }, /* 0x62 */
- { 0x0063, 0, 0, NULL }, /* 0x63 */
- { 0x0064, 0, 0, NULL }, /* 0x64 */
- { 0x0065, 0, 0, NULL }, /* 0x65 */
- { 0x0066, 0, 0, NULL }, /* 0x66 */
- { 0x0067, 0, 0, NULL }, /* 0x67 */
- { 0x0068, 0, 0, NULL }, /* 0x68 */
- { 0x0069, 0, 0, NULL }, /* 0x69 */
- { 0x006A, 0, 0, NULL }, /* 0x6A */
- { 0x006B, 0, 0, NULL }, /* 0x6B */
- { 0x006C, 0, 0, NULL }, /* 0x6C */
- { 0x006D, 0, 0, NULL }, /* 0x6D */
- { 0x006E, 0, 0, NULL }, /* 0x6E */
- { 0x006F, 0, 0, NULL }, /* 0x6F */
- { 0x0070, 0, 0, NULL }, /* 0x70 */
- { 0x0071, 0, 0, NULL }, /* 0x71 */
- { 0x0072, 0, 0, NULL }, /* 0x72 */
- { 0x0073, 0, 0, NULL }, /* 0x73 */
- { 0x0074, 0, 0, NULL }, /* 0x74 */
- { 0x0075, 0, 0, NULL }, /* 0x75 */
- { 0x0076, 0, 0, NULL }, /* 0x76 */
- { 0x0077, 0, 0, NULL }, /* 0x77 */
- { 0x0078, 0, 0, NULL }, /* 0x78 */
- { 0x0079, 0, 0, NULL }, /* 0x79 */
- { 0x007A, 0, 0, NULL }, /* 0x7A */
- { 0x007B, 0, 0, NULL }, /* 0x7B */
- { 0x007C, 0, 0, NULL }, /* 0x7C */
- { 0x007D, 0, 0, NULL }, /* 0x7D */
- { 0x007E, 0, 0, NULL }, /* 0x7E */ /* in SJIS this is 0x0203E (SPACING OVERSCORE), but for compatibiliy with ascii, we use 0x7E (TILDE) like MS CP392 */
- { 0x007F, 0, 0, NULL }, /* 0x7F */
- { 0x005C, 0, 0, NULL }, /* 0x80 */ /* APPLE additons over SJIS */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_81 }, /* 0x81 */
- { 0, 0x4F, 0xF1, aImplDBCSToUniTab_SJIS_82 }, /* 0x82 */
- { 0, 0x40, 0xD6, aImplDBCSToUniTab_SJIS_83 }, /* 0x83 */
- { 0, 0x40, 0xBF, aImplDBCSToUniTab_SJIS_84 }, /* 0x84 */
- { 0, 0x40, 0xF4, aImplDBCSToUniTab_APPLEJAPANESE_85 }, /* 0x85 */
- { 0, 0x40, 0xD2, aImplDBCSToUniTab_APPLEJAPANESE_86 }, /* 0x86 */
- { 0, 0x40, 0xFA, aImplDBCSToUniTab_APPLEJAPANESE_87 }, /* 0x87 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_APPLEJAPANESE_88 }, /* 0x88 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_89 }, /* 0x89 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8A }, /* 0x8A */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8B }, /* 0x8B */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8C }, /* 0x8C */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8D }, /* 0x8D */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8E }, /* 0x8E */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8F }, /* 0x8F */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_90 }, /* 0x90 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_91 }, /* 0x91 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_92 }, /* 0x92 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_93 }, /* 0x93 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_94 }, /* 0x94 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_95 }, /* 0x95 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_96 }, /* 0x96 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_97 }, /* 0x97 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_98 }, /* 0x98 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_99 }, /* 0x99 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9A }, /* 0x9A */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9B }, /* 0x9B */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9C }, /* 0x9C */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9D }, /* 0x9D */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9E }, /* 0x9E */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9F }, /* 0x9F */
- { 0x00A0, 0, 0, NULL }, /* 0xA0 */ /* APPLE additons over SJIS */
- { 0xFF61, 0, 0, NULL }, /* 0xA1 */
- { 0xFF62, 0, 0, NULL }, /* 0xA2 */
- { 0xFF63, 0, 0, NULL }, /* 0xA3 */
- { 0xFF64, 0, 0, NULL }, /* 0xA4 */
- { 0xFF65, 0, 0, NULL }, /* 0xA5 */
- { 0xFF66, 0, 0, NULL }, /* 0xA6 */
- { 0xFF67, 0, 0, NULL }, /* 0xA7 */
- { 0xFF68, 0, 0, NULL }, /* 0xA8 */
- { 0xFF69, 0, 0, NULL }, /* 0xA9 */
- { 0xFF6A, 0, 0, NULL }, /* 0xAA */
- { 0xFF6B, 0, 0, NULL }, /* 0xAB */
- { 0xFF6C, 0, 0, NULL }, /* 0xAC */
- { 0xFF6D, 0, 0, NULL }, /* 0xAD */
- { 0xFF6E, 0, 0, NULL }, /* 0xAE */
- { 0xFF6F, 0, 0, NULL }, /* 0xAF */
- { 0xFF70, 0, 0, NULL }, /* 0xB0 */
- { 0xFF71, 0, 0, NULL }, /* 0xB1 */
- { 0xFF72, 0, 0, NULL }, /* 0xB2 */
- { 0xFF73, 0, 0, NULL }, /* 0xB3 */
- { 0xFF74, 0, 0, NULL }, /* 0xB4 */
- { 0xFF75, 0, 0, NULL }, /* 0xB5 */
- { 0xFF76, 0, 0, NULL }, /* 0xB6 */
- { 0xFF77, 0, 0, NULL }, /* 0xB7 */
- { 0xFF78, 0, 0, NULL }, /* 0xB8 */
- { 0xFF79, 0, 0, NULL }, /* 0xB9 */
- { 0xFF7A, 0, 0, NULL }, /* 0xBA */
- { 0xFF7B, 0, 0, NULL }, /* 0xBB */
- { 0xFF7C, 0, 0, NULL }, /* 0xBC */
- { 0xFF7D, 0, 0, NULL }, /* 0xBD */
- { 0xFF7E, 0, 0, NULL }, /* 0xBE */
- { 0xFF7F, 0, 0, NULL }, /* 0xBF */
- { 0xFF80, 0, 0, NULL }, /* 0xC0 */
- { 0xFF81, 0, 0, NULL }, /* 0xC1 */
- { 0xFF82, 0, 0, NULL }, /* 0xC2 */
- { 0xFF83, 0, 0, NULL }, /* 0xC3 */
- { 0xFF84, 0, 0, NULL }, /* 0xC4 */
- { 0xFF85, 0, 0, NULL }, /* 0xC5 */
- { 0xFF86, 0, 0, NULL }, /* 0xC6 */
- { 0xFF87, 0, 0, NULL }, /* 0xC7 */
- { 0xFF88, 0, 0, NULL }, /* 0xC8 */
- { 0xFF89, 0, 0, NULL }, /* 0xC9 */
- { 0xFF8A, 0, 0, NULL }, /* 0xCA */
- { 0xFF8B, 0, 0, NULL }, /* 0xCB */
- { 0xFF8C, 0, 0, NULL }, /* 0xCC */
- { 0xFF8D, 0, 0, NULL }, /* 0xCD */
- { 0xFF8E, 0, 0, NULL }, /* 0xCE */
- { 0xFF8F, 0, 0, NULL }, /* 0xCF */
- { 0xFF90, 0, 0, NULL }, /* 0xD0 */
- { 0xFF91, 0, 0, NULL }, /* 0xD1 */
- { 0xFF92, 0, 0, NULL }, /* 0xD2 */
- { 0xFF93, 0, 0, NULL }, /* 0xD3 */
- { 0xFF94, 0, 0, NULL }, /* 0xD4 */
- { 0xFF95, 0, 0, NULL }, /* 0xD5 */
- { 0xFF96, 0, 0, NULL }, /* 0xD6 */
- { 0xFF97, 0, 0, NULL }, /* 0xD7 */
- { 0xFF98, 0, 0, NULL }, /* 0xD8 */
- { 0xFF99, 0, 0, NULL }, /* 0xD9 */
- { 0xFF9A, 0, 0, NULL }, /* 0xDA */
- { 0xFF9B, 0, 0, NULL }, /* 0xDB */
- { 0xFF9C, 0, 0, NULL }, /* 0xDC */
- { 0xFF9D, 0, 0, NULL }, /* 0xDD */
- { 0xFF9E, 0, 0, NULL }, /* 0xDE */
- { 0xFF9F, 0, 0, NULL }, /* 0xDF */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E0 }, /* 0xE0 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E1 }, /* 0xE1 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E2 }, /* 0xE2 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E3 }, /* 0xE3 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E4 }, /* 0xE4 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E5 }, /* 0xE5 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E6 }, /* 0xE6 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E7 }, /* 0xE7 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E8 }, /* 0xE8 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E9 }, /* 0xE9 */
- { 0, 0x40, 0xA4, aImplDBCSToUniTab_SJIS_EA }, /* 0xEA */
- { 0, 0x51, 0x7A, aImplDBCSToUniTab_APPLEJAPANESE_EB }, /* 0xEB */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEC */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xED */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEE */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEF */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF0 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF1 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF2 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF3 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF4 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF5 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF6 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF7 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF8 */ /* EUDC Range */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF9 */ /* EUDC Range */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FA }, /* 0xFA */ /* We use the MS table for better MS compatibility */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FB }, /* 0xFB */ /* We use the MS table for better MS compatibility */
- { 0, 0x40, 0x4B, aImplDBCSToUniTab_MS932_FC }, /* 0xFC */ /* We use the MS table for better MS compatibility */
- { 0x00A9, 0, 0, NULL }, /* 0xFD */ /* APPLE additons over SJIS */
- { 0x2122, 0, 0, NULL }, /* 0xFE */ /* APPLE additons over SJIS */
- { 0x2026, 0, 0, NULL } /* 0xFF */ /* APPLE additons over SJIS */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplUniToDBCSHighTab const aAPPLEJAPANESEDBCSHighTab[256] =
-{
- { 0x00, 0xF7, aImplUniToDBCSTab_APPLEJAPANESE_00 }, /* 0x00 */
- { 1, 0, NULL }, /* 0x01 */
- { 1, 0, NULL }, /* 0x02 */
- { 0x91, 0xC9, aImplUniToDBCSTab_SJIS_03 }, /* 0x03 */
- { 0x01, 0x51, aImplUniToDBCSTab_SJIS_04 }, /* 0x04 */
- { 1, 0, NULL }, /* 0x05 */
- { 1, 0, NULL }, /* 0x06 */
- { 1, 0, NULL }, /* 0x07 */
- { 1, 0, NULL }, /* 0x08 */
- { 1, 0, NULL }, /* 0x09 */
- { 1, 0, NULL }, /* 0x0A */
- { 1, 0, NULL }, /* 0x0B */
- { 1, 0, NULL }, /* 0x0C */
- { 1, 0, NULL }, /* 0x0D */
- { 1, 0, NULL }, /* 0x0E */
- { 1, 0, NULL }, /* 0x0F */
- { 1, 0, NULL }, /* 0x10 */
- { 1, 0, NULL }, /* 0x11 */
- { 1, 0, NULL }, /* 0x12 */
- { 1, 0, NULL }, /* 0x13 */
- { 1, 0, NULL }, /* 0x14 */
- { 1, 0, NULL }, /* 0x15 */
- { 1, 0, NULL }, /* 0x16 */
- { 1, 0, NULL }, /* 0x17 */
- { 1, 0, NULL }, /* 0x18 */
- { 1, 0, NULL }, /* 0x19 */
- { 1, 0, NULL }, /* 0x1A */
- { 1, 0, NULL }, /* 0x1B */
- { 1, 0, NULL }, /* 0x1C */
- { 1, 0, NULL }, /* 0x1D */
- { 1, 0, NULL }, /* 0x1E */
- { 1, 0, NULL }, /* 0x1F */
- { 0x10, 0x3E, aImplUniToDBCSTab_SJIS_20 }, /* 0x20 */
- { 0x03, 0xE9, aImplUniToDBCSTab_APPLEJAPANESE_21 }, /* 0x21 */
- { 0x00, 0xEF, aImplUniToDBCSTab_APPLEJAPANESE_22 }, /* 0x22 */
- { 0x12, 0x12, aImplUniToDBCSTab_SJIS_23 }, /* 0x23 */
- { 0x60, 0xB5, aImplUniToDBCSTab_APPLEJAPANESE_24 }, /* 0x24 */
- { 0x00, 0xEF, aImplUniToDBCSTab_SJIS_25 }, /* 0x25 */
- { 0x05, 0x6F, aImplUniToDBCSTab_APPLEJAPANESE_26 }, /* 0x26 */
- { 0x76, 0x7E, aImplUniToDBCSTab_APPLEJAPANESE_27 }, /* 0x27 */
- { 1, 0, NULL }, /* 0x28 */
- { 1, 0, NULL }, /* 0x29 */
- { 1, 0, NULL }, /* 0x2A */
- { 1, 0, NULL }, /* 0x2B */
- { 1, 0, NULL }, /* 0x2C */
- { 1, 0, NULL }, /* 0x2D */
- { 1, 0, NULL }, /* 0x2E */
- { 1, 0, NULL }, /* 0x2F */
- { 0x00, 0xFE, aImplUniToDBCSTab_APPLEJAPANESE_30 }, /* 0x30 */
- { 1, 0, NULL }, /* 0x31 */
- { 0x2A, 0xA9, aImplUniToDBCSTab_APPLEJAPANESE_32 }, /* 0x32 */
- { 0x00, 0xD4, aImplUniToDBCSTab_APPLEJAPANESE_33 }, /* 0x33 */
- { 1, 0, NULL }, /* 0x34 */
- { 1, 0, NULL }, /* 0x35 */
- { 1, 0, NULL }, /* 0x36 */
- { 1, 0, NULL }, /* 0x37 */
- { 1, 0, NULL }, /* 0x38 */
- { 1, 0, NULL }, /* 0x39 */
- { 1, 0, NULL }, /* 0x3A */
- { 1, 0, NULL }, /* 0x3B */
- { 1, 0, NULL }, /* 0x3C */
- { 1, 0, NULL }, /* 0x3D */
- { 1, 0, NULL }, /* 0x3E */
- { 1, 0, NULL }, /* 0x3F */
- { 1, 0, NULL }, /* 0x40 */
- { 1, 0, NULL }, /* 0x41 */
- { 1, 0, NULL }, /* 0x42 */
- { 1, 0, NULL }, /* 0x43 */
- { 1, 0, NULL }, /* 0x44 */
- { 1, 0, NULL }, /* 0x45 */
- { 1, 0, NULL }, /* 0x46 */
- { 1, 0, NULL }, /* 0x47 */
- { 1, 0, NULL }, /* 0x48 */
- { 1, 0, NULL }, /* 0x49 */
- { 1, 0, NULL }, /* 0x4A */
- { 1, 0, NULL }, /* 0x4B */
- { 1, 0, NULL }, /* 0x4C */
- { 1, 0, NULL }, /* 0x4D */
- { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_4E }, /* 0x4E */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_4F }, /* 0x4F */
- { 0x05, 0xFB, aImplUniToDBCSTab_SJIS_50 }, /* 0x50 */
- { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_51 }, /* 0x51 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_52 }, /* 0x52 */
- { 0x00, 0xFA, aImplUniToDBCSTab_SJIS_53 }, /* 0x53 */
- { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_54 }, /* 0x54 */
- { 0x04, 0xFE, aImplUniToDBCSTab_SJIS_55 }, /* 0x55 */
- { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_56 }, /* 0x56 */
- { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_57 }, /* 0x57 */
- { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_58 }, /* 0x58 */
- { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_59 }, /* 0x59 */
- { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_5A }, /* 0x5A */
- { 0x09, 0xFF, aImplUniToDBCSTab_SJIS_5B }, /* 0x5B */
- { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_5C }, /* 0x5C */
- { 0x07, 0xFE, aImplUniToDBCSTab_SJIS_5D }, /* 0x5D */
- { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_5E }, /* 0x5E */
- { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_5F }, /* 0x5F */
- { 0x0E, 0xFB, aImplUniToDBCSTab_SJIS_60 }, /* 0x60 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_61 }, /* 0x61 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_62 }, /* 0x62 */
- { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_63 }, /* 0x63 */
- { 0x06, 0xFE, aImplUniToDBCSTab_SJIS_64 }, /* 0x64 */
- { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_65 }, /* 0x65 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_66 }, /* 0x66 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_67 }, /* 0x67 */
- { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_68 }, /* 0x68 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_69 }, /* 0x69 */
- { 0x02, 0xFB, aImplUniToDBCSTab_SJIS_6A }, /* 0x6A */
- { 0x04, 0xF3, aImplUniToDBCSTab_SJIS_6B }, /* 0x6B */
- { 0x08, 0xF3, aImplUniToDBCSTab_SJIS_6C }, /* 0x6C */
- { 0x04, 0xFC, aImplUniToDBCSTab_SJIS_6D }, /* 0x6D */
- { 0x05, 0xFF, aImplUniToDBCSTab_SJIS_6E }, /* 0x6E */
- { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_6F }, /* 0x6F */
- { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_70 }, /* 0x70 */
- { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_71 }, /* 0x71 */
- { 0x06, 0xFD, aImplUniToDBCSTab_SJIS_72 }, /* 0x72 */
- { 0x0A, 0xFE, aImplUniToDBCSTab_SJIS_73 }, /* 0x73 */
- { 0x03, 0xF8, aImplUniToDBCSTab_SJIS_74 }, /* 0x74 */
- { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_75 }, /* 0x75 */
- { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_76 }, /* 0x76 */
- { 0x01, 0xFC, aImplUniToDBCSTab_SJIS_77 }, /* 0x77 */
- { 0x02, 0xFD, aImplUniToDBCSTab_SJIS_78 }, /* 0x78 */
- { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_79 }, /* 0x79 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_7A }, /* 0x7A */
- { 0x02, 0xF7, aImplUniToDBCSTab_SJIS_7B }, /* 0x7B */
- { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_7C }, /* 0x7C */
- { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_7D }, /* 0x7D */
- { 0x01, 0x9C, aImplUniToDBCSTab_SJIS_7E }, /* 0x7E */
- { 0x36, 0xFC, aImplUniToDBCSTab_SJIS_7F }, /* 0x7F */
- { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_80 }, /* 0x80 */
- { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_81 }, /* 0x81 */
- { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_82 }, /* 0x82 */
- { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_83 }, /* 0x83 */
- { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_84 }, /* 0x84 */
- { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_85 }, /* 0x85 */
- { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_86 }, /* 0x86 */
- { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_87 }, /* 0x87 */
- { 0x05, 0xFE, aImplUniToDBCSTab_SJIS_88 }, /* 0x88 */
- { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_89 }, /* 0x89 */
- { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_8A }, /* 0x8A */
- { 0x00, 0x9A, aImplUniToDBCSTab_SJIS_8B }, /* 0x8B */
- { 0x37, 0xFD, aImplUniToDBCSTab_SJIS_8C }, /* 0x8C */
- { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_8D }, /* 0x8D */
- { 0x08, 0xFE, aImplUniToDBCSTab_SJIS_8E }, /* 0x8E */
- { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_8F }, /* 0x8F */
- { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_90 }, /* 0x90 */
- { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_91 }, /* 0x91 */
- { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_92 }, /* 0x92 */
- { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_93 }, /* 0x93 */
- { 0x03, 0x81, aImplUniToDBCSTab_SJIS_94 }, /* 0x94 */
- { 0x77, 0xE5, aImplUniToDBCSTab_SJIS_95 }, /* 0x95 */
- { 0x1C, 0xFB, aImplUniToDBCSTab_SJIS_96 }, /* 0x96 */
- { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_97 }, /* 0x97 */
- { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_98 }, /* 0x98 */
- { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_99 }, /* 0x99 */
- { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_9A }, /* 0x9A */
- { 0x06, 0xF5, aImplUniToDBCSTab_SJIS_9B }, /* 0x9B */
- { 0x00, 0xF6, aImplUniToDBCSTab_SJIS_9C }, /* 0x9C */
- { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_9D }, /* 0x9D */
- { 0x19, 0xFD, aImplUniToDBCSTab_SJIS_9E }, /* 0x9E */
- { 0x07, 0xA0, aImplUniToDBCSTab_SJIS_9F }, /* 0x9F */
- { 1, 0, NULL }, /* 0xA0 */
- { 1, 0, NULL }, /* 0xA1 */
- { 1, 0, NULL }, /* 0xA2 */
- { 1, 0, NULL }, /* 0xA3 */
- { 1, 0, NULL }, /* 0xA4 */
- { 1, 0, NULL }, /* 0xA5 */
- { 1, 0, NULL }, /* 0xA6 */
- { 1, 0, NULL }, /* 0xA7 */
- { 1, 0, NULL }, /* 0xA8 */
- { 1, 0, NULL }, /* 0xA9 */
- { 1, 0, NULL }, /* 0xAA */
- { 1, 0, NULL }, /* 0xAB */
- { 1, 0, NULL }, /* 0xAC */
- { 1, 0, NULL }, /* 0xAD */
- { 1, 0, NULL }, /* 0xAE */
- { 1, 0, NULL }, /* 0xAF */
- { 1, 0, NULL }, /* 0xB0 */
- { 1, 0, NULL }, /* 0xB1 */
- { 1, 0, NULL }, /* 0xB2 */
- { 1, 0, NULL }, /* 0xB3 */
- { 1, 0, NULL }, /* 0xB4 */
- { 1, 0, NULL }, /* 0xB5 */
- { 1, 0, NULL }, /* 0xB6 */
- { 1, 0, NULL }, /* 0xB7 */
- { 1, 0, NULL }, /* 0xB8 */
- { 1, 0, NULL }, /* 0xB9 */
- { 1, 0, NULL }, /* 0xBA */
- { 1, 0, NULL }, /* 0xBB */
- { 1, 0, NULL }, /* 0xBC */
- { 1, 0, NULL }, /* 0xBD */
- { 1, 0, NULL }, /* 0xBE */
- { 1, 0, NULL }, /* 0xBF */
- { 1, 0, NULL }, /* 0xC0 */
- { 1, 0, NULL }, /* 0xC1 */
- { 1, 0, NULL }, /* 0xC2 */
- { 1, 0, NULL }, /* 0xC3 */
- { 1, 0, NULL }, /* 0xC4 */
- { 1, 0, NULL }, /* 0xC5 */
- { 1, 0, NULL }, /* 0xC6 */
- { 1, 0, NULL }, /* 0xC7 */
- { 1, 0, NULL }, /* 0xC8 */
- { 1, 0, NULL }, /* 0xC9 */
- { 1, 0, NULL }, /* 0xCA */
- { 1, 0, NULL }, /* 0xCB */
- { 1, 0, NULL }, /* 0xCC */
- { 1, 0, NULL }, /* 0xCD */
- { 1, 0, NULL }, /* 0xCE */
- { 1, 0, NULL }, /* 0xCF */
- { 1, 0, NULL }, /* 0xD0 */
- { 1, 0, NULL }, /* 0xD1 */
- { 1, 0, NULL }, /* 0xD2 */
- { 1, 0, NULL }, /* 0xD3 */
- { 1, 0, NULL }, /* 0xD4 */
- { 1, 0, NULL }, /* 0xD5 */
- { 1, 0, NULL }, /* 0xD6 */
- { 1, 0, NULL }, /* 0xD7 */
- { 1, 0, NULL }, /* 0xD8 */
- { 1, 0, NULL }, /* 0xD9 */
- { 1, 0, NULL }, /* 0xDA */
- { 1, 0, NULL }, /* 0xDB */
- { 1, 0, NULL }, /* 0xDC */
- { 1, 0, NULL }, /* 0xDD */
- { 1, 0, NULL }, /* 0xDE */
- { 1, 0, NULL }, /* 0xDF */
- { 1, 0, NULL }, /* 0xE0 */
- { 1, 0, NULL }, /* 0xE1 */
- { 1, 0, NULL }, /* 0xE2 */
- { 1, 0, NULL }, /* 0xE3 */
- { 1, 0, NULL }, /* 0xE4 */
- { 1, 0, NULL }, /* 0xE5 */
- { 1, 0, NULL }, /* 0xE6 */
- { 1, 0, NULL }, /* 0xE7 */
- { 1, 0, NULL }, /* 0xE8 */
- { 1, 0, NULL }, /* 0xE9 */
- { 1, 0, NULL }, /* 0xEA */
- { 1, 0, NULL }, /* 0xEB */
- { 1, 0, NULL }, /* 0xEC */
- { 1, 0, NULL }, /* 0xED */
- { 1, 0, NULL }, /* 0xEE */
- { 1, 0, NULL }, /* 0xEF */
- { 1, 0, NULL }, /* 0xF0 */
- { 1, 0, NULL }, /* 0xF1 */
- { 1, 0, NULL }, /* 0xF2 */
- { 1, 0, NULL }, /* 0xF3 */
- { 1, 0, NULL }, /* 0xF4 */
- { 1, 0, NULL }, /* 0xF5 */
- { 1, 0, NULL }, /* 0xF6 */
- { 1, 0, NULL }, /* 0xF7 */
- { 1, 0, NULL }, /* 0xF8 */
- { 0x29, 0xDC, aImplUniToDBCSTab_MS932_F9 }, /* 0xF9 */
- { 0x0E, 0x2D, aImplUniToDBCSTab_MS932_FA }, /* 0xFA */
- { 1, 0, NULL }, /* 0xFB */
- { 1, 0, NULL }, /* 0xFC */
- { 1, 0, NULL }, /* 0xFD */
- { 0x30, 0x44, aImplUniToDBCSTab_APPLEJAPANESE_FE }, /* 0xFE */
- { 0x01, 0xE5, aImplUniToDBCSTab_SJIS_FF } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplDBCSConvertData const aImplAPPLEJAPANESEDBCSCvtData =
-{
- aAPPLEJAPANESEUniLeadTab,
- aAPPLEJAPANESEDBCSHighTab,
- 0x00, 0xFF,
- 0x40, 0xFC,
- aImplSJISDBCSEUDCTab,
- DBCS_EUDC_SJIS_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplAPPLEJAPANESETextEncodingData
- = { { &aImplAPPLEJAPANESEDBCSCvtData,
- ImplDBCSToUnicode,
- ImplUnicodeToDBCS,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 2,
- 2,
- 128,
- "euc-jp",
- "shift_jis",
- RTL_TEXTENCODING_INFO_MULTIBYTE };
- /* MAC, SCRIPT_JAPANESE, pc code page 932, mac encoding 1 */
-
-/* ======================================================================= */
-
-static ImplDBCSToUniLeadTab const aJIS0208UniLeadTab[128] =
-{
- { 0, 1, 0, NULL }, /* 0x00 */
- { 0, 1, 0, NULL }, /* 0x01 */
- { 0, 1, 0, NULL }, /* 0x02 */
- { 0, 1, 0, NULL }, /* 0x03 */
- { 0, 1, 0, NULL }, /* 0x04 */
- { 0, 1, 0, NULL }, /* 0x05 */
- { 0, 1, 0, NULL }, /* 0x06 */
- { 0, 1, 0, NULL }, /* 0x07 */
- { 0, 1, 0, NULL }, /* 0x08 */
- { 0, 1, 0, NULL }, /* 0x09 */
- { 0, 1, 0, NULL }, /* 0x0A */
- { 0, 1, 0, NULL }, /* 0x0B */
- { 0, 1, 0, NULL }, /* 0x0C */
- { 0, 1, 0, NULL }, /* 0x0D */
- { 0, 1, 0, NULL }, /* 0x0E */
- { 0, 1, 0, NULL }, /* 0x0F */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x10 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x11 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x12 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x13 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x14 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x15 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x16 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x17 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x18 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x19 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1A */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1B */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1C */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1D */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1E */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1F */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x20 */ /* We convert this as double byte */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_21 }, /* 0x21 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_22 }, /* 0x22 */
- { 0, 0x30, 0x7A, aImplDBCSToUniTab_JIS0208_23 }, /* 0x23 */
- { 0, 0x21, 0x73, aImplDBCSToUniTab_JIS0208_24 }, /* 0x24 */
- { 0, 0x21, 0x76, aImplDBCSToUniTab_JIS0208_25 }, /* 0x25 */
- { 0, 0x21, 0x58, aImplDBCSToUniTab_JIS0208_26 }, /* 0x26 */
- { 0, 0x21, 0x71, aImplDBCSToUniTab_JIS0208_27 }, /* 0x27 */
- { 0, 0x21, 0x40, aImplDBCSToUniTab_JIS0208_28 }, /* 0x28 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x29 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2A */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2B */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2C */ /* We convert this as double byte */
- { 0, 0x21, 0x7C, aImplDBCSToUniTab_JIS0208_2D }, /* 0x2D */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2E */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2F */ /* We convert this as double byte */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_30 }, /* 0x30 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_31 }, /* 0x31 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_32 }, /* 0x32 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_33 }, /* 0x33 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_34 }, /* 0x34 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_35 }, /* 0x35 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_36 }, /* 0x36 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_37 }, /* 0x37 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_38 }, /* 0x38 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_39 }, /* 0x39 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3A }, /* 0x3A */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3B }, /* 0x3B */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3C }, /* 0x3C */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3D }, /* 0x3D */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3E }, /* 0x3E */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3F }, /* 0x3F */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_40 }, /* 0x40 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_41 }, /* 0x41 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_42 }, /* 0x42 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_43 }, /* 0x43 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_44 }, /* 0x44 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_45 }, /* 0x45 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_46 }, /* 0x46 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_47 }, /* 0x47 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_48 }, /* 0x48 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_49 }, /* 0x49 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_4A }, /* 0x4A */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_4B }, /* 0x4B */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_4C }, /* 0x4C */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_4D }, /* 0x4D */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_4E }, /* 0x4E */
- { 0, 0x21, 0x53, aImplDBCSToUniTab_JIS0208_4F }, /* 0x4F */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_50 }, /* 0x50 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_51 }, /* 0x51 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_52 }, /* 0x52 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_53 }, /* 0x53 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_54 }, /* 0x54 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_55 }, /* 0x55 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_56 }, /* 0x56 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_57 }, /* 0x57 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_58 }, /* 0x58 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_59 }, /* 0x59 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5A }, /* 0x5A */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5B }, /* 0x5B */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5C }, /* 0x5C */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5D }, /* 0x5D */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5E }, /* 0x5E */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5F }, /* 0x5F */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_60 }, /* 0x60 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_61 }, /* 0x61 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_62 }, /* 0x62 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_63 }, /* 0x63 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_64 }, /* 0x64 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_65 }, /* 0x65 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_66 }, /* 0x66 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_67 }, /* 0x67 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_68 }, /* 0x68 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_69 }, /* 0x69 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6A }, /* 0x6A */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6B }, /* 0x6B */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6C }, /* 0x6C */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6D }, /* 0x6D */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6E }, /* 0x6E */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6F }, /* 0x6F */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_70 }, /* 0x70 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_71 }, /* 0x71 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_72 }, /* 0x72 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_73 }, /* 0x73 */
- { 0, 0x21, 0x26, aImplDBCSToUniTab_JIS0208_74 }, /* 0x74 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x75 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x76 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x77 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x78 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x79 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7A */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7B */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7C */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7D */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7E */ /* We convert this as double byte */
- { 0, 1, 0, NULL } /* 0x7F */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplUniToDBCSHighTab const aJIS0208DBCSHighTab[256] =
-{
- { 0xA2, 0xF7, aImplUniToDBCSTab_JIS0208_00 }, /* 0x00 */
- { 1, 0, NULL }, /* 0x01 */
- { 1, 0, NULL }, /* 0x02 */
- { 0x91, 0xC9, aImplUniToDBCSTab_JIS0208_03 }, /* 0x03 */
- { 0x01, 0x51, aImplUniToDBCSTab_JIS0208_04 }, /* 0x04 */
- { 1, 0, NULL }, /* 0x05 */
- { 1, 0, NULL }, /* 0x06 */
- { 1, 0, NULL }, /* 0x07 */
- { 1, 0, NULL }, /* 0x08 */
- { 1, 0, NULL }, /* 0x09 */
- { 1, 0, NULL }, /* 0x0A */
- { 1, 0, NULL }, /* 0x0B */
- { 1, 0, NULL }, /* 0x0C */
- { 1, 0, NULL }, /* 0x0D */
- { 1, 0, NULL }, /* 0x0E */
- { 1, 0, NULL }, /* 0x0F */
- { 1, 0, NULL }, /* 0x10 */
- { 1, 0, NULL }, /* 0x11 */
- { 1, 0, NULL }, /* 0x12 */
- { 1, 0, NULL }, /* 0x13 */
- { 1, 0, NULL }, /* 0x14 */
- { 1, 0, NULL }, /* 0x15 */
- { 1, 0, NULL }, /* 0x16 */
- { 1, 0, NULL }, /* 0x17 */
- { 1, 0, NULL }, /* 0x18 */
- { 1, 0, NULL }, /* 0x19 */
- { 1, 0, NULL }, /* 0x1A */
- { 1, 0, NULL }, /* 0x1B */
- { 1, 0, NULL }, /* 0x1C */
- { 1, 0, NULL }, /* 0x1D */
- { 1, 0, NULL }, /* 0x1E */
- { 1, 0, NULL }, /* 0x1F */
- { 0x10, 0x3B, aImplUniToDBCSTab_JIS0208_20 }, /* 0x20 */
- { 0x03, 0xD4, aImplUniToDBCSTab_JIS0208_21 }, /* 0x21 */
- { 0x00, 0xBF, aImplUniToDBCSTab_JIS0208_22 }, /* 0x22 */
- { 0x12, 0x12, aImplUniToDBCSTab_JIS0208_23 }, /* 0x23 */
- { 0x60, 0x73, aImplUniToDBCSTab_JIS0208_24 }, /* 0x24 */
- { 0x00, 0xEF, aImplUniToDBCSTab_JIS0208_25 }, /* 0x25 */
- { 0x05, 0x6F, aImplUniToDBCSTab_JIS0208_26 }, /* 0x26 */
- { 1, 0, NULL }, /* 0x27 */
- { 1, 0, NULL }, /* 0x28 */
- { 1, 0, NULL }, /* 0x29 */
- { 1, 0, NULL }, /* 0x2A */
- { 1, 0, NULL }, /* 0x2B */
- { 1, 0, NULL }, /* 0x2C */
- { 1, 0, NULL }, /* 0x2D */
- { 1, 0, NULL }, /* 0x2E */
- { 1, 0, NULL }, /* 0x2F */
- { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_30 }, /* 0x30 */
- { 1, 0, NULL }, /* 0x31 */
- { 0x31, 0xA8, aImplUniToDBCSTab_JIS0208_32 }, /* 0x32 */
- { 0x03, 0xCD, aImplUniToDBCSTab_JIS0208_33 }, /* 0x33 */
- { 1, 0, NULL }, /* 0x34 */
- { 1, 0, NULL }, /* 0x35 */
- { 1, 0, NULL }, /* 0x36 */
- { 1, 0, NULL }, /* 0x37 */
- { 1, 0, NULL }, /* 0x38 */
- { 1, 0, NULL }, /* 0x39 */
- { 1, 0, NULL }, /* 0x3A */
- { 1, 0, NULL }, /* 0x3B */
- { 1, 0, NULL }, /* 0x3C */
- { 1, 0, NULL }, /* 0x3D */
- { 1, 0, NULL }, /* 0x3E */
- { 1, 0, NULL }, /* 0x3F */
- { 1, 0, NULL }, /* 0x40 */
- { 1, 0, NULL }, /* 0x41 */
- { 1, 0, NULL }, /* 0x42 */
- { 1, 0, NULL }, /* 0x43 */
- { 1, 0, NULL }, /* 0x44 */
- { 1, 0, NULL }, /* 0x45 */
- { 1, 0, NULL }, /* 0x46 */
- { 1, 0, NULL }, /* 0x47 */
- { 1, 0, NULL }, /* 0x48 */
- { 1, 0, NULL }, /* 0x49 */
- { 1, 0, NULL }, /* 0x4A */
- { 1, 0, NULL }, /* 0x4B */
- { 1, 0, NULL }, /* 0x4C */
- { 1, 0, NULL }, /* 0x4D */
- { 0x00, 0xFB, aImplUniToDBCSTab_JIS0208_4E }, /* 0x4E */
- { 0x01, 0xFE, aImplUniToDBCSTab_JIS0208_4F }, /* 0x4F */
- { 0x05, 0xFB, aImplUniToDBCSTab_JIS0208_50 }, /* 0x50 */
- { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_51 }, /* 0x51 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_52 }, /* 0x52 */
- { 0x01, 0xFA, aImplUniToDBCSTab_JIS0208_53 }, /* 0x53 */
- { 0x01, 0xFD, aImplUniToDBCSTab_JIS0208_54 }, /* 0x54 */
- { 0x04, 0xFE, aImplUniToDBCSTab_JIS0208_55 }, /* 0x55 */
- { 0x06, 0xFF, aImplUniToDBCSTab_JIS0208_56 }, /* 0x56 */
- { 0x00, 0xFC, aImplUniToDBCSTab_JIS0208_57 }, /* 0x57 */
- { 0x00, 0xFD, aImplUniToDBCSTab_JIS0208_58 }, /* 0x58 */
- { 0x02, 0xFF, aImplUniToDBCSTab_JIS0208_59 }, /* 0x59 */
- { 0x01, 0xFB, aImplUniToDBCSTab_JIS0208_5A }, /* 0x5A */
- { 0x09, 0xFF, aImplUniToDBCSTab_JIS0208_5B }, /* 0x5B */
- { 0x01, 0xFD, aImplUniToDBCSTab_JIS0208_5C }, /* 0x5C */
- { 0x07, 0xFE, aImplUniToDBCSTab_JIS0208_5D }, /* 0x5D */
- { 0x02, 0xFF, aImplUniToDBCSTab_JIS0208_5E }, /* 0x5E */
- { 0x01, 0xFF, aImplUniToDBCSTab_JIS0208_5F }, /* 0x5F */
- { 0x0E, 0xFB, aImplUniToDBCSTab_JIS0208_60 }, /* 0x60 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_61 }, /* 0x61 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_62 }, /* 0x62 */
- { 0x01, 0xFA, aImplUniToDBCSTab_JIS0208_63 }, /* 0x63 */
- { 0x06, 0xFE, aImplUniToDBCSTab_JIS0208_64 }, /* 0x64 */
- { 0x00, 0xFB, aImplUniToDBCSTab_JIS0208_65 }, /* 0x65 */
- { 0x02, 0xFF, aImplUniToDBCSTab_JIS0208_66 }, /* 0x66 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_67 }, /* 0x67 */
- { 0x02, 0xFA, aImplUniToDBCSTab_JIS0208_68 }, /* 0x68 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_69 }, /* 0x69 */
- { 0x02, 0xFB, aImplUniToDBCSTab_JIS0208_6A }, /* 0x6A */
- { 0x04, 0xF3, aImplUniToDBCSTab_JIS0208_6B }, /* 0x6B */
- { 0x08, 0xF3, aImplUniToDBCSTab_JIS0208_6C }, /* 0x6C */
- { 0x0B, 0xFB, aImplUniToDBCSTab_JIS0208_6D }, /* 0x6D */
- { 0x05, 0xFF, aImplUniToDBCSTab_JIS0208_6E }, /* 0x6E */
- { 0x01, 0xFE, aImplUniToDBCSTab_JIS0208_6F }, /* 0x6F */
- { 0x01, 0xFD, aImplUniToDBCSTab_JIS0208_70 }, /* 0x70 */
- { 0x09, 0xFF, aImplUniToDBCSTab_JIS0208_71 }, /* 0x71 */
- { 0x06, 0xFD, aImplUniToDBCSTab_JIS0208_72 }, /* 0x72 */
- { 0x0A, 0xFE, aImplUniToDBCSTab_JIS0208_73 }, /* 0x73 */
- { 0x03, 0xF8, aImplUniToDBCSTab_JIS0208_74 }, /* 0x74 */
- { 0x03, 0xFF, aImplUniToDBCSTab_JIS0208_75 }, /* 0x75 */
- { 0x01, 0xFE, aImplUniToDBCSTab_JIS0208_76 }, /* 0x76 */
- { 0x01, 0xFC, aImplUniToDBCSTab_JIS0208_77 }, /* 0x77 */
- { 0x02, 0xFD, aImplUniToDBCSTab_JIS0208_78 }, /* 0x78 */
- { 0x01, 0xFB, aImplUniToDBCSTab_JIS0208_79 }, /* 0x79 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_7A }, /* 0x7A */
- { 0x02, 0xF7, aImplUniToDBCSTab_JIS0208_7B }, /* 0x7B */
- { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_7C }, /* 0x7C */
- { 0x00, 0xFB, aImplUniToDBCSTab_JIS0208_7D }, /* 0x7D */
- { 0x01, 0x9C, aImplUniToDBCSTab_JIS0208_7E }, /* 0x7E */
- { 0x36, 0xFC, aImplUniToDBCSTab_JIS0208_7F }, /* 0x7F */
- { 0x00, 0xFD, aImplUniToDBCSTab_JIS0208_80 }, /* 0x80 */
- { 0x02, 0xFE, aImplUniToDBCSTab_JIS0208_81 }, /* 0x81 */
- { 0x01, 0xFB, aImplUniToDBCSTab_JIS0208_82 }, /* 0x82 */
- { 0x02, 0xFD, aImplUniToDBCSTab_JIS0208_83 }, /* 0x83 */
- { 0x03, 0xFF, aImplUniToDBCSTab_JIS0208_84 }, /* 0x84 */
- { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_85 }, /* 0x85 */
- { 0x02, 0xFE, aImplUniToDBCSTab_JIS0208_86 }, /* 0x86 */
- { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_87 }, /* 0x87 */
- { 0x05, 0xFE, aImplUniToDBCSTab_JIS0208_88 }, /* 0x88 */
- { 0x02, 0xF8, aImplUniToDBCSTab_JIS0208_89 }, /* 0x89 */
- { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_8A }, /* 0x8A */
- { 0x00, 0x9A, aImplUniToDBCSTab_JIS0208_8B }, /* 0x8B */
- { 0x37, 0xFD, aImplUniToDBCSTab_JIS0208_8C }, /* 0x8C */
- { 0x04, 0xFF, aImplUniToDBCSTab_JIS0208_8D }, /* 0x8D */
- { 0x08, 0xFE, aImplUniToDBCSTab_JIS0208_8E }, /* 0x8E */
- { 0x03, 0xFD, aImplUniToDBCSTab_JIS0208_8F }, /* 0x8F */
- { 0x00, 0xFD, aImplUniToDBCSTab_JIS0208_90 }, /* 0x90 */
- { 0x02, 0xFF, aImplUniToDBCSTab_JIS0208_91 }, /* 0x91 */
- { 0x0D, 0xFC, aImplUniToDBCSTab_JIS0208_92 }, /* 0x92 */
- { 0x06, 0xE8, aImplUniToDBCSTab_JIS0208_93 }, /* 0x93 */
- { 0x03, 0x81, aImplUniToDBCSTab_JIS0208_94 }, /* 0x94 */
- { 0x77, 0xE5, aImplUniToDBCSTab_JIS0208_95 }, /* 0x95 */
- { 0x1C, 0xFB, aImplUniToDBCSTab_JIS0208_96 }, /* 0x96 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_97 }, /* 0x97 */
- { 0x01, 0xFE, aImplUniToDBCSTab_JIS0208_98 }, /* 0x98 */
- { 0x03, 0xFF, aImplUniToDBCSTab_JIS0208_99 }, /* 0x99 */
- { 0x01, 0xFB, aImplUniToDBCSTab_JIS0208_9A }, /* 0x9A */
- { 0x06, 0xF5, aImplUniToDBCSTab_JIS0208_9B }, /* 0x9B */
- { 0x04, 0xF6, aImplUniToDBCSTab_JIS0208_9C }, /* 0x9C */
- { 0x03, 0xFD, aImplUniToDBCSTab_JIS0208_9D }, /* 0x9D */
- { 0x1A, 0xFD, aImplUniToDBCSTab_JIS0208_9E }, /* 0x9E */
- { 0x07, 0xA0, aImplUniToDBCSTab_JIS0208_9F }, /* 0x9F */
- { 1, 0, NULL }, /* 0xA0 */
- { 1, 0, NULL }, /* 0xA1 */
- { 1, 0, NULL }, /* 0xA2 */
- { 1, 0, NULL }, /* 0xA3 */
- { 1, 0, NULL }, /* 0xA4 */
- { 1, 0, NULL }, /* 0xA5 */
- { 1, 0, NULL }, /* 0xA6 */
- { 1, 0, NULL }, /* 0xA7 */
- { 1, 0, NULL }, /* 0xA8 */
- { 1, 0, NULL }, /* 0xA9 */
- { 1, 0, NULL }, /* 0xAA */
- { 1, 0, NULL }, /* 0xAB */
- { 1, 0, NULL }, /* 0xAC */
- { 1, 0, NULL }, /* 0xAD */
- { 1, 0, NULL }, /* 0xAE */
- { 1, 0, NULL }, /* 0xAF */
- { 1, 0, NULL }, /* 0xB0 */
- { 1, 0, NULL }, /* 0xB1 */
- { 1, 0, NULL }, /* 0xB2 */
- { 1, 0, NULL }, /* 0xB3 */
- { 1, 0, NULL }, /* 0xB4 */
- { 1, 0, NULL }, /* 0xB5 */
- { 1, 0, NULL }, /* 0xB6 */
- { 1, 0, NULL }, /* 0xB7 */
- { 1, 0, NULL }, /* 0xB8 */
- { 1, 0, NULL }, /* 0xB9 */
- { 1, 0, NULL }, /* 0xBA */
- { 1, 0, NULL }, /* 0xBB */
- { 1, 0, NULL }, /* 0xBC */
- { 1, 0, NULL }, /* 0xBD */
- { 1, 0, NULL }, /* 0xBE */
- { 1, 0, NULL }, /* 0xBF */
- { 1, 0, NULL }, /* 0xC0 */
- { 1, 0, NULL }, /* 0xC1 */
- { 1, 0, NULL }, /* 0xC2 */
- { 1, 0, NULL }, /* 0xC3 */
- { 1, 0, NULL }, /* 0xC4 */
- { 1, 0, NULL }, /* 0xC5 */
- { 1, 0, NULL }, /* 0xC6 */
- { 1, 0, NULL }, /* 0xC7 */
- { 1, 0, NULL }, /* 0xC8 */
- { 1, 0, NULL }, /* 0xC9 */
- { 1, 0, NULL }, /* 0xCA */
- { 1, 0, NULL }, /* 0xCB */
- { 1, 0, NULL }, /* 0xCC */
- { 1, 0, NULL }, /* 0xCD */
- { 1, 0, NULL }, /* 0xCE */
- { 1, 0, NULL }, /* 0xCF */
- { 1, 0, NULL }, /* 0xD0 */
- { 1, 0, NULL }, /* 0xD1 */
- { 1, 0, NULL }, /* 0xD2 */
- { 1, 0, NULL }, /* 0xD3 */
- { 1, 0, NULL }, /* 0xD4 */
- { 1, 0, NULL }, /* 0xD5 */
- { 1, 0, NULL }, /* 0xD6 */
- { 1, 0, NULL }, /* 0xD7 */
- { 1, 0, NULL }, /* 0xD8 */
- { 1, 0, NULL }, /* 0xD9 */
- { 1, 0, NULL }, /* 0xDA */
- { 1, 0, NULL }, /* 0xDB */
- { 1, 0, NULL }, /* 0xDC */
- { 1, 0, NULL }, /* 0xDD */
- { 1, 0, NULL }, /* 0xDE */
- { 1, 0, NULL }, /* 0xDF */
- { 1, 0, NULL }, /* 0xE0 */
- { 1, 0, NULL }, /* 0xE1 */
- { 1, 0, NULL }, /* 0xE2 */
- { 1, 0, NULL }, /* 0xE3 */
- { 1, 0, NULL }, /* 0xE4 */
- { 1, 0, NULL }, /* 0xE5 */
- { 1, 0, NULL }, /* 0xE6 */
- { 1, 0, NULL }, /* 0xE7 */
- { 1, 0, NULL }, /* 0xE8 */
- { 1, 0, NULL }, /* 0xE9 */
- { 1, 0, NULL }, /* 0xEA */
- { 1, 0, NULL }, /* 0xEB */
- { 1, 0, NULL }, /* 0xEC */
- { 1, 0, NULL }, /* 0xED */
- { 1, 0, NULL }, /* 0xEE */
- { 1, 0, NULL }, /* 0xEF */
- { 1, 0, NULL }, /* 0xF0 */
- { 1, 0, NULL }, /* 0xF1 */
- { 1, 0, NULL }, /* 0xF2 */
- { 1, 0, NULL }, /* 0xF3 */
- { 1, 0, NULL }, /* 0xF4 */
- { 1, 0, NULL }, /* 0xF5 */
- { 1, 0, NULL }, /* 0xF6 */
- { 1, 0, NULL }, /* 0xF7 */
- { 1, 0, NULL }, /* 0xF8 */
- { 1, 0, NULL }, /* 0xF9 */
- { 1, 0, NULL }, /* 0xFA */
- { 1, 0, NULL }, /* 0xFB */
- { 1, 0, NULL }, /* 0xFC */
- { 1, 0, NULL }, /* 0xFD */
- { 1, 0, NULL }, /* 0xFE */
- { 0x01, 0xE5, aImplUniToDBCSTab_JIS0208_FF } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplDBCSToUniLeadTab const aJIS0212UniLeadTab[128] =
-{
- { 0, 1, 0, NULL }, /* 0x00 */
- { 0, 1, 0, NULL }, /* 0x01 */
- { 0, 1, 0, NULL }, /* 0x02 */
- { 0, 1, 0, NULL }, /* 0x03 */
- { 0, 1, 0, NULL }, /* 0x04 */
- { 0, 1, 0, NULL }, /* 0x05 */
- { 0, 1, 0, NULL }, /* 0x06 */
- { 0, 1, 0, NULL }, /* 0x07 */
- { 0, 1, 0, NULL }, /* 0x08 */
- { 0, 1, 0, NULL }, /* 0x09 */
- { 0, 1, 0, NULL }, /* 0x0A */
- { 0, 1, 0, NULL }, /* 0x0B */
- { 0, 1, 0, NULL }, /* 0x0C */
- { 0, 1, 0, NULL }, /* 0x0D */
- { 0, 1, 0, NULL }, /* 0x0E */
- { 0, 1, 0, NULL }, /* 0x0F */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x10 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x11 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x12 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x13 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x14 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x15 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x16 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x17 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x18 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x19 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1A */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1B */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1C */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1D */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1E */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1F */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x20 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x21 */ /* We convert this as double byte */
- { 0, 0x2F, 0x71, aImplDBCSToUniTab_JIS0212_22 }, /* 0x22 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x23 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x24 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x25 */ /* We convert this as double byte */
- { 0, 0x61, 0x7C, aImplDBCSToUniTab_JIS0212_26 }, /* 0x26 */
- { 0, 0x42, 0x7E, aImplDBCSToUniTab_JIS0212_27 }, /* 0x27 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x28 */ /* We convert this as double byte */
- { 0, 0x21, 0x50, aImplDBCSToUniTab_JIS0212_29 }, /* 0x29 */
- { 0, 0x21, 0x77, aImplDBCSToUniTab_JIS0212_2A }, /* 0x2A */
- { 0, 0x21, 0x77, aImplDBCSToUniTab_JIS0212_2B }, /* 0x2B */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2C */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2D */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2E */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2F */ /* We convert this as double byte */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_30 }, /* 0x30 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_31 }, /* 0x31 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_32 }, /* 0x32 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_33 }, /* 0x33 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_34 }, /* 0x34 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_35 }, /* 0x35 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_36 }, /* 0x36 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_37 }, /* 0x37 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_38 }, /* 0x38 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_39 }, /* 0x39 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3A }, /* 0x3A */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3B }, /* 0x3B */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3C }, /* 0x3C */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3D }, /* 0x3D */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3E }, /* 0x3E */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3F }, /* 0x3F */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_40 }, /* 0x40 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_41 }, /* 0x41 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_42 }, /* 0x42 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_43 }, /* 0x43 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_44 }, /* 0x44 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_45 }, /* 0x45 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_46 }, /* 0x46 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_47 }, /* 0x47 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_48 }, /* 0x48 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_49 }, /* 0x49 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4A }, /* 0x4A */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4B }, /* 0x4B */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4C }, /* 0x4C */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4D }, /* 0x4D */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4E }, /* 0x4E */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4F }, /* 0x4F */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_50 }, /* 0x50 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_51 }, /* 0x51 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_52 }, /* 0x52 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_53 }, /* 0x53 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_54 }, /* 0x54 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_55 }, /* 0x55 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_56 }, /* 0x56 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_57 }, /* 0x57 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_58 }, /* 0x58 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_59 }, /* 0x59 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5A }, /* 0x5A */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5B }, /* 0x5B */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5C }, /* 0x5C */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5D }, /* 0x5D */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5E }, /* 0x5E */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5F }, /* 0x5F */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_60 }, /* 0x60 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_61 }, /* 0x61 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_62 }, /* 0x62 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_63 }, /* 0x63 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_64 }, /* 0x64 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_65 }, /* 0x65 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_66 }, /* 0x66 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_67 }, /* 0x67 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_68 }, /* 0x68 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_69 }, /* 0x69 */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_6A }, /* 0x6A */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_6B }, /* 0x6B */
- { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_6C }, /* 0x6C */
- { 0, 0x21, 0x63, aImplDBCSToUniTab_JIS0212_6D }, /* 0x6D */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x6E */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x6F */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x70 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x71 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x72 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x73 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x74 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x75 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x76 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x77 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x78 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x79 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7A */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7B */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7C */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7D */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7E */ /* We convert this as double byte */
- { 0, 1, 0, NULL } /* 0x7F */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplUniToDBCSHighTab const aJIS0212DBCSHighTab[256] =
-{
- { 0xA1, 0xFF, aImplUniToDBCSTab_JIS0212_00 }, /* 0x00 */
- { 0x00, 0xF5, aImplUniToDBCSTab_JIS0212_01 }, /* 0x01 */
- { 0xC7, 0xDD, aImplUniToDBCSTab_JIS0212_02 }, /* 0x02 */
- { 0x84, 0xCE, aImplUniToDBCSTab_JIS0212_03 }, /* 0x03 */
- { 0x02, 0x5F, aImplUniToDBCSTab_JIS0212_04 }, /* 0x04 */
- { 1, 0, NULL }, /* 0x05 */
- { 1, 0, NULL }, /* 0x06 */
- { 1, 0, NULL }, /* 0x07 */
- { 1, 0, NULL }, /* 0x08 */
- { 1, 0, NULL }, /* 0x09 */
- { 1, 0, NULL }, /* 0x0A */
- { 1, 0, NULL }, /* 0x0B */
- { 1, 0, NULL }, /* 0x0C */
- { 1, 0, NULL }, /* 0x0D */
- { 1, 0, NULL }, /* 0x0E */
- { 1, 0, NULL }, /* 0x0F */
- { 1, 0, NULL }, /* 0x10 */
- { 1, 0, NULL }, /* 0x11 */
- { 1, 0, NULL }, /* 0x12 */
- { 1, 0, NULL }, /* 0x13 */
- { 1, 0, NULL }, /* 0x14 */
- { 1, 0, NULL }, /* 0x15 */
- { 1, 0, NULL }, /* 0x16 */
- { 1, 0, NULL }, /* 0x17 */
- { 1, 0, NULL }, /* 0x18 */
- { 1, 0, NULL }, /* 0x19 */
- { 1, 0, NULL }, /* 0x1A */
- { 1, 0, NULL }, /* 0x1B */
- { 1, 0, NULL }, /* 0x1C */
- { 1, 0, NULL }, /* 0x1D */
- { 1, 0, NULL }, /* 0x1E */
- { 1, 0, NULL }, /* 0x1F */
- { 1, 0, NULL }, /* 0x20 */
- { 0x16, 0x22, aImplUniToDBCSTab_JIS0212_21 }, /* 0x21 */
- { 1, 0, NULL }, /* 0x22 */
- { 1, 0, NULL }, /* 0x23 */
- { 1, 0, NULL }, /* 0x24 */
- { 1, 0, NULL }, /* 0x25 */
- { 1, 0, NULL }, /* 0x26 */
- { 1, 0, NULL }, /* 0x27 */
- { 1, 0, NULL }, /* 0x28 */
- { 1, 0, NULL }, /* 0x29 */
- { 1, 0, NULL }, /* 0x2A */
- { 1, 0, NULL }, /* 0x2B */
- { 1, 0, NULL }, /* 0x2C */
- { 1, 0, NULL }, /* 0x2D */
- { 1, 0, NULL }, /* 0x2E */
- { 1, 0, NULL }, /* 0x2F */
- { 1, 0, NULL }, /* 0x30 */
- { 1, 0, NULL }, /* 0x31 */
- { 1, 0, NULL }, /* 0x32 */
- { 1, 0, NULL }, /* 0x33 */
- { 1, 0, NULL }, /* 0x34 */
- { 1, 0, NULL }, /* 0x35 */
- { 1, 0, NULL }, /* 0x36 */
- { 1, 0, NULL }, /* 0x37 */
- { 1, 0, NULL }, /* 0x38 */
- { 1, 0, NULL }, /* 0x39 */
- { 1, 0, NULL }, /* 0x3A */
- { 1, 0, NULL }, /* 0x3B */
- { 1, 0, NULL }, /* 0x3C */
- { 1, 0, NULL }, /* 0x3D */
- { 1, 0, NULL }, /* 0x3E */
- { 1, 0, NULL }, /* 0x3F */
- { 1, 0, NULL }, /* 0x40 */
- { 1, 0, NULL }, /* 0x41 */
- { 1, 0, NULL }, /* 0x42 */
- { 1, 0, NULL }, /* 0x43 */
- { 1, 0, NULL }, /* 0x44 */
- { 1, 0, NULL }, /* 0x45 */
- { 1, 0, NULL }, /* 0x46 */
- { 1, 0, NULL }, /* 0x47 */
- { 1, 0, NULL }, /* 0x48 */
- { 1, 0, NULL }, /* 0x49 */
- { 1, 0, NULL }, /* 0x4A */
- { 1, 0, NULL }, /* 0x4B */
- { 1, 0, NULL }, /* 0x4C */
- { 1, 0, NULL }, /* 0x4D */
- { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_4E }, /* 0x4E */
- { 0x00, 0xFF, aImplUniToDBCSTab_JIS0212_4F }, /* 0x4F */
- { 0x00, 0xFE, aImplUniToDBCSTab_JIS0212_50 }, /* 0x50 */
- { 0x03, 0xF7, aImplUniToDBCSTab_JIS0212_51 }, /* 0x51 */
- { 0x01, 0xF7, aImplUniToDBCSTab_JIS0212_52 }, /* 0x52 */
- { 0x00, 0xF5, aImplUniToDBCSTab_JIS0212_53 }, /* 0x53 */
- { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_54 }, /* 0x54 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JIS0212_55 }, /* 0x55 */
- { 0x05, 0xF7, aImplUniToDBCSTab_JIS0212_56 }, /* 0x56 */
- { 0x01, 0xFF, aImplUniToDBCSTab_JIS0212_57 }, /* 0x57 */
- { 0x03, 0xF3, aImplUniToDBCSTab_JIS0212_58 }, /* 0x58 */
- { 0x05, 0xF7, aImplUniToDBCSTab_JIS0212_59 }, /* 0x59 */
- { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_5A }, /* 0x5A */
- { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_5B }, /* 0x5B */
- { 0x0C, 0xF4, aImplUniToDBCSTab_JIS0212_5C }, /* 0x5C */
- { 0x01, 0xF9, aImplUniToDBCSTab_JIS0212_5D }, /* 0x5D */
- { 0x00, 0xEB, aImplUniToDBCSTab_JIS0212_5E }, /* 0x5E */
- { 0x02, 0xFC, aImplUniToDBCSTab_JIS0212_5F }, /* 0x5F */
- { 0x07, 0xFD, aImplUniToDBCSTab_JIS0212_60 }, /* 0x60 */
- { 0x02, 0xEF, aImplUniToDBCSTab_JIS0212_61 }, /* 0x61 */
- { 0x01, 0xFD, aImplUniToDBCSTab_JIS0212_62 }, /* 0x62 */
- { 0x03, 0xF9, aImplUniToDBCSTab_JIS0212_63 }, /* 0x63 */
- { 0x09, 0xFF, aImplUniToDBCSTab_JIS0212_64 }, /* 0x64 */
- { 0x01, 0xFF, aImplUniToDBCSTab_JIS0212_65 }, /* 0x65 */
- { 0x00, 0xFB, aImplUniToDBCSTab_JIS0212_66 }, /* 0x66 */
- { 0x05, 0xF9, aImplUniToDBCSTab_JIS0212_67 }, /* 0x67 */
- { 0x04, 0xFD, aImplUniToDBCSTab_JIS0212_68 }, /* 0x68 */
- { 0x06, 0xFE, aImplUniToDBCSTab_JIS0212_69 }, /* 0x69 */
- { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_6A }, /* 0x6A */
- { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_6B }, /* 0x6B */
- { 0x02, 0xF4, aImplUniToDBCSTab_JIS0212_6C }, /* 0x6C */
- { 0x04, 0xFC, aImplUniToDBCSTab_JIS0212_6D }, /* 0x6D */
- { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_6E }, /* 0x6E */
- { 0x04, 0xFD, aImplUniToDBCSTab_JIS0212_6F }, /* 0x6F */
- { 0x00, 0xFA, aImplUniToDBCSTab_JIS0212_70 }, /* 0x70 */
- { 0x03, 0xFE, aImplUniToDBCSTab_JIS0212_71 }, /* 0x71 */
- { 0x00, 0xFE, aImplUniToDBCSTab_JIS0212_72 }, /* 0x72 */
- { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_73 }, /* 0x73 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JIS0212_74 }, /* 0x74 */
- { 0x06, 0xF9, aImplUniToDBCSTab_JIS0212_75 }, /* 0x75 */
- { 0x00, 0xFC, aImplUniToDBCSTab_JIS0212_76 }, /* 0x76 */
- { 0x00, 0xFB, aImplUniToDBCSTab_JIS0212_77 }, /* 0x77 */
- { 0x05, 0xFF, aImplUniToDBCSTab_JIS0212_78 }, /* 0x78 */
- { 0x00, 0xFC, aImplUniToDBCSTab_JIS0212_79 }, /* 0x79 */
- { 0x02, 0xFE, aImplUniToDBCSTab_JIS0212_7A }, /* 0x7A */
- { 0x07, 0xFE, aImplUniToDBCSTab_JIS0212_7B }, /* 0x7B */
- { 0x01, 0xF5, aImplUniToDBCSTab_JIS0212_7C }, /* 0x7C */
- { 0x03, 0xFA, aImplUniToDBCSTab_JIS0212_7D }, /* 0x7D */
- { 0x00, 0x9E, aImplUniToDBCSTab_JIS0212_7E }, /* 0x7E */
- { 0x3B, 0xFF, aImplUniToDBCSTab_JIS0212_7F }, /* 0x7F */
- { 0x07, 0xFE, aImplUniToDBCSTab_JIS0212_80 }, /* 0x80 */
- { 0x03, 0xFF, aImplUniToDBCSTab_JIS0212_81 }, /* 0x81 */
- { 0x00, 0xFE, aImplUniToDBCSTab_JIS0212_82 }, /* 0x82 */
- { 0x00, 0xFC, aImplUniToDBCSTab_JIS0212_83 }, /* 0x83 */
- { 0x01, 0xFD, aImplUniToDBCSTab_JIS0212_84 }, /* 0x84 */
- { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_85 }, /* 0x85 */
- { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_86 }, /* 0x86 */
- { 0x04, 0xFF, aImplUniToDBCSTab_JIS0212_87 }, /* 0x87 */
- { 0x01, 0xF7, aImplUniToDBCSTab_JIS0212_88 }, /* 0x88 */
- { 0x01, 0xFF, aImplUniToDBCSTab_JIS0212_89 }, /* 0x89 */
- { 0x04, 0xFF, aImplUniToDBCSTab_JIS0212_8A }, /* 0x8A */
- { 0x05, 0x9F, aImplUniToDBCSTab_JIS0212_8B }, /* 0x8B */
- { 0x38, 0xFF, aImplUniToDBCSTab_JIS0212_8C }, /* 0x8C */
- { 0x01, 0xFD, aImplUniToDBCSTab_JIS0212_8D }, /* 0x8D */
- { 0x01, 0xFA, aImplUniToDBCSTab_JIS0212_8E }, /* 0x8E */
- { 0x00, 0xFE, aImplUniToDBCSTab_JIS0212_8F }, /* 0x8F */
- { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_90 }, /* 0x90 */
- { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_91 }, /* 0x91 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JIS0212_92 }, /* 0x92 */
- { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_93 }, /* 0x93 */
- { 0x01, 0x84, aImplUniToDBCSTab_JIS0212_94 }, /* 0x94 */
- { 0x78, 0xE6, aImplUniToDBCSTab_JIS0212_95 }, /* 0x95 */
- { 0x1D, 0xFA, aImplUniToDBCSTab_JIS0212_96 }, /* 0x96 */
- { 0x02, 0xFA, aImplUniToDBCSTab_JIS0212_97 }, /* 0x97 */
- { 0x07, 0xF6, aImplUniToDBCSTab_JIS0212_98 }, /* 0x98 */
- { 0x02, 0xFE, aImplUniToDBCSTab_JIS0212_99 }, /* 0x99 */
- { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_9A }, /* 0x9A */
- { 0x00, 0xFF, aImplUniToDBCSTab_JIS0212_9B }, /* 0x9B */
- { 0x00, 0xF9, aImplUniToDBCSTab_JIS0212_9C }, /* 0x9C */
- { 0x02, 0xFE, aImplUniToDBCSTab_JIS0212_9D }, /* 0x9D */
- { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_9E }, /* 0x9E */
- { 0x02, 0xA5, aImplUniToDBCSTab_JIS0212_9F }, /* 0x9F */
- { 1, 0, NULL }, /* 0xA0 */
- { 1, 0, NULL }, /* 0xA1 */
- { 1, 0, NULL }, /* 0xA2 */
- { 1, 0, NULL }, /* 0xA3 */
- { 1, 0, NULL }, /* 0xA4 */
- { 1, 0, NULL }, /* 0xA5 */
- { 1, 0, NULL }, /* 0xA6 */
- { 1, 0, NULL }, /* 0xA7 */
- { 1, 0, NULL }, /* 0xA8 */
- { 1, 0, NULL }, /* 0xA9 */
- { 1, 0, NULL }, /* 0xAA */
- { 1, 0, NULL }, /* 0xAB */
- { 1, 0, NULL }, /* 0xAC */
- { 1, 0, NULL }, /* 0xAD */
- { 1, 0, NULL }, /* 0xAE */
- { 1, 0, NULL }, /* 0xAF */
- { 1, 0, NULL }, /* 0xB0 */
- { 1, 0, NULL }, /* 0xB1 */
- { 1, 0, NULL }, /* 0xB2 */
- { 1, 0, NULL }, /* 0xB3 */
- { 1, 0, NULL }, /* 0xB4 */
- { 1, 0, NULL }, /* 0xB5 */
- { 1, 0, NULL }, /* 0xB6 */
- { 1, 0, NULL }, /* 0xB7 */
- { 1, 0, NULL }, /* 0xB8 */
- { 1, 0, NULL }, /* 0xB9 */
- { 1, 0, NULL }, /* 0xBA */
- { 1, 0, NULL }, /* 0xBB */
- { 1, 0, NULL }, /* 0xBC */
- { 1, 0, NULL }, /* 0xBD */
- { 1, 0, NULL }, /* 0xBE */
- { 1, 0, NULL }, /* 0xBF */
- { 1, 0, NULL }, /* 0xC0 */
- { 1, 0, NULL }, /* 0xC1 */
- { 1, 0, NULL }, /* 0xC2 */
- { 1, 0, NULL }, /* 0xC3 */
- { 1, 0, NULL }, /* 0xC4 */
- { 1, 0, NULL }, /* 0xC5 */
- { 1, 0, NULL }, /* 0xC6 */
- { 1, 0, NULL }, /* 0xC7 */
- { 1, 0, NULL }, /* 0xC8 */
- { 1, 0, NULL }, /* 0xC9 */
- { 1, 0, NULL }, /* 0xCA */
- { 1, 0, NULL }, /* 0xCB */
- { 1, 0, NULL }, /* 0xCC */
- { 1, 0, NULL }, /* 0xCD */
- { 1, 0, NULL }, /* 0xCE */
- { 1, 0, NULL }, /* 0xCF */
- { 1, 0, NULL }, /* 0xD0 */
- { 1, 0, NULL }, /* 0xD1 */
- { 1, 0, NULL }, /* 0xD2 */
- { 1, 0, NULL }, /* 0xD3 */
- { 1, 0, NULL }, /* 0xD4 */
- { 1, 0, NULL }, /* 0xD5 */
- { 1, 0, NULL }, /* 0xD6 */
- { 1, 0, NULL }, /* 0xD7 */
- { 1, 0, NULL }, /* 0xD8 */
- { 1, 0, NULL }, /* 0xD9 */
- { 1, 0, NULL }, /* 0xDA */
- { 1, 0, NULL }, /* 0xDB */
- { 1, 0, NULL }, /* 0xDC */
- { 1, 0, NULL }, /* 0xDD */
- { 1, 0, NULL }, /* 0xDE */
- { 1, 0, NULL }, /* 0xDF */
- { 1, 0, NULL }, /* 0xE0 */
- { 1, 0, NULL }, /* 0xE1 */
- { 1, 0, NULL }, /* 0xE2 */
- { 1, 0, NULL }, /* 0xE3 */
- { 1, 0, NULL }, /* 0xE4 */
- { 1, 0, NULL }, /* 0xE5 */
- { 1, 0, NULL }, /* 0xE6 */
- { 1, 0, NULL }, /* 0xE7 */
- { 1, 0, NULL }, /* 0xE8 */
- { 1, 0, NULL }, /* 0xE9 */
- { 1, 0, NULL }, /* 0xEA */
- { 1, 0, NULL }, /* 0xEB */
- { 1, 0, NULL }, /* 0xEC */
- { 1, 0, NULL }, /* 0xED */
- { 1, 0, NULL }, /* 0xEE */
- { 1, 0, NULL }, /* 0xEF */
- { 1, 0, NULL }, /* 0xF0 */
- { 1, 0, NULL }, /* 0xF1 */
- { 1, 0, NULL }, /* 0xF2 */
- { 1, 0, NULL }, /* 0xF3 */
- { 1, 0, NULL }, /* 0xF4 */
- { 1, 0, NULL }, /* 0xF5 */
- { 1, 0, NULL }, /* 0xF6 */
- { 1, 0, NULL }, /* 0xF7 */
- { 1, 0, NULL }, /* 0xF8 */
- { 1, 0, NULL }, /* 0xF9 */
- { 1, 0, NULL }, /* 0xFA */
- { 1, 0, NULL }, /* 0xFB */
- { 1, 0, NULL }, /* 0xFC */
- { 1, 0, NULL }, /* 0xFD */
- { 1, 0, NULL }, /* 0xFE */
- { 1, 0, NULL } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplEUCJPConvertData const aImplEUCJPCvtData =
-{
- aJIS0208UniLeadTab,
- aJIS0212UniLeadTab,
- aJIS0208DBCSHighTab,
- aJIS0212DBCSHighTab
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplEUCJPTextEncodingData
- = { { &aImplEUCJPCvtData,
- ImplEUCJPToUnicode,
- ImplUnicodeToEUCJP,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 3,
- 2,
- 128,
- "euc-jp",
- "euc-jp",
- RTL_TEXTENCODING_INFO_ASCII
- | RTL_TEXTENCODING_INFO_MULTIBYTE
- | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_JAPANESE, pc code page 932, mac encoding 1 */
-
-/* ======================================================================= */
-
-/* !!! JIS - X Encodings not complete !!! */
-
-#define HALFWIDTHKANA_START 0xFF61
-#define HALFWIDTHKANA_END 0xFF9F
-
-static sal_uChar const aImplJISX0201Tab[HALFWIDTHKANA_END - HALFWIDTHKANA_START + 1] =
-{
- 0xA1, 0xA2, 0xA3, 0xA4, 0x5A, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplJISX0201ByteCvtData =
-{
- NULL,
- NULL,
- 0, 0,
- 0, 0,
- aImplJISX0201Tab,
- NULL,
- NULL,
- HALFWIDTHKANA_START, HALFWIDTHKANA_END,
- 0, 0,
- 0
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplJISX0201TextEncodingData
- = { { &aImplJISX0201ByteCvtData,
- NULL,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 128,
- "euc-jp",
- "euc-jp",
- RTL_TEXTENCODING_INFO_MULTIBYTE };
- /* SCRIPT_JAPANESE, pc code page 932, mac encoding 1 */
-
-/* ======================================================================= */
-
-static ImplDBCSConvertData const aImplJISX0208DBCSCvtData =
-{
- NULL,
- aJIS0208DBCSHighTab,
- 0x00, 0xFF,
- 0x21, 0x7E,
- NULL,
- 0
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplJISX0208TextEncodingData
- = { { &aImplJISX0208DBCSCvtData,
- NULL,
- ImplUnicodeToDBCS,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 2,
- 2,
- 2,
- 128,
- "euc-jp",
- "euc-jp",
- RTL_TEXTENCODING_INFO_MULTIBYTE };
- /* SCRIPT_JAPANESE, pc code page 932, mac encoding 1 */
-
-/* ======================================================================= */
-
-static ImplDBCSConvertData const aImplJISX0212DBCSCvtData =
-{
- NULL,
- aJIS0212DBCSHighTab,
- 0x00, 0xFF,
- 0x21, 0x7E,
- NULL,
- 0
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplJISX0212TextEncodingData
- = { { &aImplJISX0212DBCSCvtData,
- NULL,
- ImplUnicodeToDBCS,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 2,
- 2,
- 2,
- 128,
- "euc-jp",
- "euc-jp",
- RTL_TEXTENCODING_INFO_MULTIBYTE };
- /* SCRIPT_JAPANESE, pc code page 932, mac encoding 1 */
diff --git a/sal/textenc/tcvtkr1.tab b/sal/textenc/tcvtkr1.tab
deleted file mode 100644
index ef86f0865..000000000
--- a/sal/textenc/tcvtkr1.tab
+++ /dev/null
@@ -1,3323 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* Mapping tables from KS X 1001:1992 (formerly known as KS C 5601-1992) to
- Unicode.
-
- The mappings are suitable for the EUC-KR encoding (first and second byte
- each ranging from 0xA1 to 0xFE), and for ISO-2022-KR if you subtract
- accordingly. But note that the tables are too "large" for both EUC-KR and
- ISO-2022-KR (and map undefined input to Unicode code points), because they
- also support UHC.
-
- The mappings also include UHC encoding (Unified Hangul Code, also known as
- Microsoft Code Page 949), which is a superset of EUC-KR (extra first byte
- range 0x81 to 0xA0, extra second byte ranges 0x41 to 0x5A, 0x61 to 0x7A,
- and 0x81 to 0xA0, even within the original EUC-KR area).
-
- The mappings are also used for the HangulTalk encoding (Macintosh), altough
- this contains some other EUC-KR extensions (that are thus not supported):
- special single byte characters 0x81, 0x82, 0x83, 0xFE, and 0xFF; extra
- double byte characters within first byte range 0xA1 to 0xAD and second byte
- range 0x41 to 0xFE, even within the original EUC-KR area).
- */
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_81[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xAC02, 0xAC03, 0xAC05, 0xAC06, 0xAC0B, 0xAC0C, 0xAC0D, /* 0x40 */
- 0xAC0E, 0xAC0F, 0xAC18, 0xAC1E, 0xAC1F, 0xAC21, 0xAC22, 0xAC23, /* 0x40 */
- 0xAC25, 0xAC26, 0xAC27, 0xAC28, 0xAC29, 0xAC2A, 0xAC2B, 0xAC2E, /* 0x50 */
- 0xAC32, 0xAC33, 0xAC34, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xAC35, 0xAC36, 0xAC37, 0xAC3A, 0xAC3B, 0xAC3D, 0xAC3E, /* 0x60 */
- 0xAC3F, 0xAC41, 0xAC42, 0xAC43, 0xAC44, 0xAC45, 0xAC46, 0xAC47, /* 0x60 */
- 0xAC48, 0xAC49, 0xAC4A, 0xAC4C, 0xAC4E, 0xAC4F, 0xAC50, 0xAC51, /* 0x70 */
- 0xAC52, 0xAC53, 0xAC55, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xAC56, 0xAC57, 0xAC59, 0xAC5A, 0xAC5B, 0xAC5D, 0xAC5E, /* 0x80 */
- 0xAC5F, 0xAC60, 0xAC61, 0xAC62, 0xAC63, 0xAC64, 0xAC65, 0xAC66, /* 0x80 */
- 0xAC67, 0xAC68, 0xAC69, 0xAC6A, 0xAC6B, 0xAC6C, 0xAC6D, 0xAC6E, /* 0x90 */
- 0xAC6F, 0xAC72, 0xAC73, 0xAC75, 0xAC76, 0xAC79, 0xAC7B, 0xAC7C, /* 0x90 */
- 0xAC7D, 0xAC7E, 0xAC7F, 0xAC82, 0xAC87, 0xAC88, 0xAC8D, 0xAC8E, /* 0xA0 */
- 0xAC8F, 0xAC91, 0xAC92, 0xAC93, 0xAC95, 0xAC96, 0xAC97, 0xAC98, /* 0xA0 */
- 0xAC99, 0xAC9A, 0xAC9B, 0xAC9E, 0xACA2, 0xACA3, 0xACA4, 0xACA5, /* 0xB0 */
- 0xACA6, 0xACA7, 0xACAB, 0xACAD, 0xACAE, 0xACB1, 0xACB2, 0xACB3, /* 0xB0 */
- 0xACB4, 0xACB5, 0xACB6, 0xACB7, 0xACBA, 0xACBE, 0xACBF, 0xACC0, /* 0xC0 */
- 0xACC2, 0xACC3, 0xACC5, 0xACC6, 0xACC7, 0xACC9, 0xACCA, 0xACCB, /* 0xC0 */
- 0xACCD, 0xACCE, 0xACCF, 0xACD0, 0xACD1, 0xACD2, 0xACD3, 0xACD4, /* 0xD0 */
- 0xACD6, 0xACD8, 0xACD9, 0xACDA, 0xACDB, 0xACDC, 0xACDD, 0xACDE, /* 0xD0 */
- 0xACDF, 0xACE2, 0xACE3, 0xACE5, 0xACE6, 0xACE9, 0xACEB, 0xACED, /* 0xE0 */
- 0xACEE, 0xACF2, 0xACF4, 0xACF7, 0xACF8, 0xACF9, 0xACFA, 0xACFB, /* 0xE0 */
- 0xACFE, 0xACFF, 0xAD01, 0xAD02, 0xAD03, 0xAD05, 0xAD07, 0xAD08, /* 0xF0 */
- 0xAD09, 0xAD0A, 0xAD0B, 0xAD0E, 0xAD10, 0xAD12, 0xAD13 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_82[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xAD14, 0xAD15, 0xAD16, 0xAD17, 0xAD19, 0xAD1A, 0xAD1B, /* 0x40 */
- 0xAD1D, 0xAD1E, 0xAD1F, 0xAD21, 0xAD22, 0xAD23, 0xAD24, 0xAD25, /* 0x40 */
- 0xAD26, 0xAD27, 0xAD28, 0xAD2A, 0xAD2B, 0xAD2E, 0xAD2F, 0xAD30, /* 0x50 */
- 0xAD31, 0xAD32, 0xAD33, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xAD36, 0xAD37, 0xAD39, 0xAD3A, 0xAD3B, 0xAD3D, 0xAD3E, /* 0x60 */
- 0xAD3F, 0xAD40, 0xAD41, 0xAD42, 0xAD43, 0xAD46, 0xAD48, 0xAD4A, /* 0x60 */
- 0xAD4B, 0xAD4C, 0xAD4D, 0xAD4E, 0xAD4F, 0xAD51, 0xAD52, 0xAD53, /* 0x70 */
- 0xAD55, 0xAD56, 0xAD57, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xAD59, 0xAD5A, 0xAD5B, 0xAD5C, 0xAD5D, 0xAD5E, 0xAD5F, /* 0x80 */
- 0xAD60, 0xAD62, 0xAD64, 0xAD65, 0xAD66, 0xAD67, 0xAD68, 0xAD69, /* 0x80 */
- 0xAD6A, 0xAD6B, 0xAD6E, 0xAD6F, 0xAD71, 0xAD72, 0xAD77, 0xAD78, /* 0x90 */
- 0xAD79, 0xAD7A, 0xAD7E, 0xAD80, 0xAD83, 0xAD84, 0xAD85, 0xAD86, /* 0x90 */
- 0xAD87, 0xAD8A, 0xAD8B, 0xAD8D, 0xAD8E, 0xAD8F, 0xAD91, 0xAD92, /* 0xA0 */
- 0xAD93, 0xAD94, 0xAD95, 0xAD96, 0xAD97, 0xAD98, 0xAD99, 0xAD9A, /* 0xA0 */
- 0xAD9B, 0xAD9E, 0xAD9F, 0xADA0, 0xADA1, 0xADA2, 0xADA3, 0xADA5, /* 0xB0 */
- 0xADA6, 0xADA7, 0xADA8, 0xADA9, 0xADAA, 0xADAB, 0xADAC, 0xADAD, /* 0xB0 */
- 0xADAE, 0xADAF, 0xADB0, 0xADB1, 0xADB2, 0xADB3, 0xADB4, 0xADB5, /* 0xC0 */
- 0xADB6, 0xADB8, 0xADB9, 0xADBA, 0xADBB, 0xADBC, 0xADBD, 0xADBE, /* 0xC0 */
- 0xADBF, 0xADC2, 0xADC3, 0xADC5, 0xADC6, 0xADC7, 0xADC9, 0xADCA, /* 0xD0 */
- 0xADCB, 0xADCC, 0xADCD, 0xADCE, 0xADCF, 0xADD2, 0xADD4, 0xADD5, /* 0xD0 */
- 0xADD6, 0xADD7, 0xADD8, 0xADD9, 0xADDA, 0xADDB, 0xADDD, 0xADDE, /* 0xE0 */
- 0xADDF, 0xADE1, 0xADE2, 0xADE3, 0xADE5, 0xADE6, 0xADE7, 0xADE8, /* 0xE0 */
- 0xADE9, 0xADEA, 0xADEB, 0xADEC, 0xADED, 0xADEE, 0xADEF, 0xADF0, /* 0xF0 */
- 0xADF1, 0xADF2, 0xADF3, 0xADF4, 0xADF5, 0xADF6, 0xADF7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_83[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xADFA, 0xADFB, 0xADFD, 0xADFE, 0xAE02, 0xAE03, 0xAE04, /* 0x40 */
- 0xAE05, 0xAE06, 0xAE07, 0xAE0A, 0xAE0C, 0xAE0E, 0xAE0F, 0xAE10, /* 0x40 */
- 0xAE11, 0xAE12, 0xAE13, 0xAE15, 0xAE16, 0xAE17, 0xAE18, 0xAE19, /* 0x50 */
- 0xAE1A, 0xAE1B, 0xAE1C, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xAE1D, 0xAE1E, 0xAE1F, 0xAE20, 0xAE21, 0xAE22, 0xAE23, /* 0x60 */
- 0xAE24, 0xAE25, 0xAE26, 0xAE27, 0xAE28, 0xAE29, 0xAE2A, 0xAE2B, /* 0x60 */
- 0xAE2C, 0xAE2D, 0xAE2E, 0xAE2F, 0xAE32, 0xAE33, 0xAE35, 0xAE36, /* 0x70 */
- 0xAE39, 0xAE3B, 0xAE3C, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xAE3D, 0xAE3E, 0xAE3F, 0xAE42, 0xAE44, 0xAE47, 0xAE48, /* 0x80 */
- 0xAE49, 0xAE4B, 0xAE4F, 0xAE51, 0xAE52, 0xAE53, 0xAE55, 0xAE57, /* 0x80 */
- 0xAE58, 0xAE59, 0xAE5A, 0xAE5B, 0xAE5E, 0xAE62, 0xAE63, 0xAE64, /* 0x90 */
- 0xAE66, 0xAE67, 0xAE6A, 0xAE6B, 0xAE6D, 0xAE6E, 0xAE6F, 0xAE71, /* 0x90 */
- 0xAE72, 0xAE73, 0xAE74, 0xAE75, 0xAE76, 0xAE77, 0xAE7A, 0xAE7E, /* 0xA0 */
- 0xAE7F, 0xAE80, 0xAE81, 0xAE82, 0xAE83, 0xAE86, 0xAE87, 0xAE88, /* 0xA0 */
- 0xAE89, 0xAE8A, 0xAE8B, 0xAE8D, 0xAE8E, 0xAE8F, 0xAE90, 0xAE91, /* 0xB0 */
- 0xAE92, 0xAE93, 0xAE94, 0xAE95, 0xAE96, 0xAE97, 0xAE98, 0xAE99, /* 0xB0 */
- 0xAE9A, 0xAE9B, 0xAE9C, 0xAE9D, 0xAE9E, 0xAE9F, 0xAEA0, 0xAEA1, /* 0xC0 */
- 0xAEA2, 0xAEA3, 0xAEA4, 0xAEA5, 0xAEA6, 0xAEA7, 0xAEA8, 0xAEA9, /* 0xC0 */
- 0xAEAA, 0xAEAB, 0xAEAC, 0xAEAD, 0xAEAE, 0xAEAF, 0xAEB0, 0xAEB1, /* 0xD0 */
- 0xAEB2, 0xAEB3, 0xAEB4, 0xAEB5, 0xAEB6, 0xAEB7, 0xAEB8, 0xAEB9, /* 0xD0 */
- 0xAEBA, 0xAEBB, 0xAEBF, 0xAEC1, 0xAEC2, 0xAEC3, 0xAEC5, 0xAEC6, /* 0xE0 */
- 0xAEC7, 0xAEC8, 0xAEC9, 0xAECA, 0xAECB, 0xAECE, 0xAED2, 0xAED3, /* 0xE0 */
- 0xAED4, 0xAED5, 0xAED6, 0xAED7, 0xAEDA, 0xAEDB, 0xAEDD, 0xAEDE, /* 0xF0 */
- 0xAEDF, 0xAEE0, 0xAEE1, 0xAEE2, 0xAEE3, 0xAEE4, 0xAEE5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_84[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xAEE6, 0xAEE7, 0xAEE9, 0xAEEA, 0xAEEC, 0xAEEE, 0xAEEF, /* 0x40 */
- 0xAEF0, 0xAEF1, 0xAEF2, 0xAEF3, 0xAEF5, 0xAEF6, 0xAEF7, 0xAEF9, /* 0x40 */
- 0xAEFA, 0xAEFB, 0xAEFD, 0xAEFE, 0xAEFF, 0xAF00, 0xAF01, 0xAF02, /* 0x50 */
- 0xAF03, 0xAF04, 0xAF05, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xAF06, 0xAF09, 0xAF0A, 0xAF0B, 0xAF0C, 0xAF0E, 0xAF0F, /* 0x60 */
- 0xAF11, 0xAF12, 0xAF13, 0xAF14, 0xAF15, 0xAF16, 0xAF17, 0xAF18, /* 0x60 */
- 0xAF19, 0xAF1A, 0xAF1B, 0xAF1C, 0xAF1D, 0xAF1E, 0xAF1F, 0xAF20, /* 0x70 */
- 0xAF21, 0xAF22, 0xAF23, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xAF24, 0xAF25, 0xAF26, 0xAF27, 0xAF28, 0xAF29, 0xAF2A, /* 0x80 */
- 0xAF2B, 0xAF2E, 0xAF2F, 0xAF31, 0xAF33, 0xAF35, 0xAF36, 0xAF37, /* 0x80 */
- 0xAF38, 0xAF39, 0xAF3A, 0xAF3B, 0xAF3E, 0xAF40, 0xAF44, 0xAF45, /* 0x90 */
- 0xAF46, 0xAF47, 0xAF4A, 0xAF4B, 0xAF4C, 0xAF4D, 0xAF4E, 0xAF4F, /* 0x90 */
- 0xAF51, 0xAF52, 0xAF53, 0xAF54, 0xAF55, 0xAF56, 0xAF57, 0xAF58, /* 0xA0 */
- 0xAF59, 0xAF5A, 0xAF5B, 0xAF5E, 0xAF5F, 0xAF60, 0xAF61, 0xAF62, /* 0xA0 */
- 0xAF63, 0xAF66, 0xAF67, 0xAF68, 0xAF69, 0xAF6A, 0xAF6B, 0xAF6C, /* 0xB0 */
- 0xAF6D, 0xAF6E, 0xAF6F, 0xAF70, 0xAF71, 0xAF72, 0xAF73, 0xAF74, /* 0xB0 */
- 0xAF75, 0xAF76, 0xAF77, 0xAF78, 0xAF7A, 0xAF7B, 0xAF7C, 0xAF7D, /* 0xC0 */
- 0xAF7E, 0xAF7F, 0xAF81, 0xAF82, 0xAF83, 0xAF85, 0xAF86, 0xAF87, /* 0xC0 */
- 0xAF89, 0xAF8A, 0xAF8B, 0xAF8C, 0xAF8D, 0xAF8E, 0xAF8F, 0xAF92, /* 0xD0 */
- 0xAF93, 0xAF94, 0xAF96, 0xAF97, 0xAF98, 0xAF99, 0xAF9A, 0xAF9B, /* 0xD0 */
- 0xAF9D, 0xAF9E, 0xAF9F, 0xAFA0, 0xAFA1, 0xAFA2, 0xAFA3, 0xAFA4, /* 0xE0 */
- 0xAFA5, 0xAFA6, 0xAFA7, 0xAFA8, 0xAFA9, 0xAFAA, 0xAFAB, 0xAFAC, /* 0xE0 */
- 0xAFAD, 0xAFAE, 0xAFAF, 0xAFB0, 0xAFB1, 0xAFB2, 0xAFB3, 0xAFB4, /* 0xF0 */
- 0xAFB5, 0xAFB6, 0xAFB7, 0xAFBA, 0xAFBB, 0xAFBD, 0xAFBE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_85[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xAFBF, 0xAFC1, 0xAFC2, 0xAFC3, 0xAFC4, 0xAFC5, 0xAFC6, /* 0x40 */
- 0xAFCA, 0xAFCC, 0xAFCF, 0xAFD0, 0xAFD1, 0xAFD2, 0xAFD3, 0xAFD5, /* 0x40 */
- 0xAFD6, 0xAFD7, 0xAFD8, 0xAFD9, 0xAFDA, 0xAFDB, 0xAFDD, 0xAFDE, /* 0x50 */
- 0xAFDF, 0xAFE0, 0xAFE1, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xAFE2, 0xAFE3, 0xAFE4, 0xAFE5, 0xAFE6, 0xAFE7, 0xAFEA, /* 0x60 */
- 0xAFEB, 0xAFEC, 0xAFED, 0xAFEE, 0xAFEF, 0xAFF2, 0xAFF3, 0xAFF5, /* 0x60 */
- 0xAFF6, 0xAFF7, 0xAFF9, 0xAFFA, 0xAFFB, 0xAFFC, 0xAFFD, 0xAFFE, /* 0x70 */
- 0xAFFF, 0xB002, 0xB003, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xB005, 0xB006, 0xB007, 0xB008, 0xB009, 0xB00A, 0xB00B, /* 0x80 */
- 0xB00D, 0xB00E, 0xB00F, 0xB011, 0xB012, 0xB013, 0xB015, 0xB016, /* 0x80 */
- 0xB017, 0xB018, 0xB019, 0xB01A, 0xB01B, 0xB01E, 0xB01F, 0xB020, /* 0x90 */
- 0xB021, 0xB022, 0xB023, 0xB024, 0xB025, 0xB026, 0xB027, 0xB029, /* 0x90 */
- 0xB02A, 0xB02B, 0xB02C, 0xB02D, 0xB02E, 0xB02F, 0xB030, 0xB031, /* 0xA0 */
- 0xB032, 0xB033, 0xB034, 0xB035, 0xB036, 0xB037, 0xB038, 0xB039, /* 0xA0 */
- 0xB03A, 0xB03B, 0xB03C, 0xB03D, 0xB03E, 0xB03F, 0xB040, 0xB041, /* 0xB0 */
- 0xB042, 0xB043, 0xB046, 0xB047, 0xB049, 0xB04B, 0xB04D, 0xB04F, /* 0xB0 */
- 0xB050, 0xB051, 0xB052, 0xB056, 0xB058, 0xB05A, 0xB05B, 0xB05C, /* 0xC0 */
- 0xB05E, 0xB05F, 0xB060, 0xB061, 0xB062, 0xB063, 0xB064, 0xB065, /* 0xC0 */
- 0xB066, 0xB067, 0xB068, 0xB069, 0xB06A, 0xB06B, 0xB06C, 0xB06D, /* 0xD0 */
- 0xB06E, 0xB06F, 0xB070, 0xB071, 0xB072, 0xB073, 0xB074, 0xB075, /* 0xD0 */
- 0xB076, 0xB077, 0xB078, 0xB079, 0xB07A, 0xB07B, 0xB07E, 0xB07F, /* 0xE0 */
- 0xB081, 0xB082, 0xB083, 0xB085, 0xB086, 0xB087, 0xB088, 0xB089, /* 0xE0 */
- 0xB08A, 0xB08B, 0xB08E, 0xB090, 0xB092, 0xB093, 0xB094, 0xB095, /* 0xF0 */
- 0xB096, 0xB097, 0xB09B, 0xB09D, 0xB09E, 0xB0A3, 0xB0A4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_86[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB0A5, 0xB0A6, 0xB0A7, 0xB0AA, 0xB0B0, 0xB0B2, 0xB0B6, /* 0x40 */
- 0xB0B7, 0xB0B9, 0xB0BA, 0xB0BB, 0xB0BD, 0xB0BE, 0xB0BF, 0xB0C0, /* 0x40 */
- 0xB0C1, 0xB0C2, 0xB0C3, 0xB0C6, 0xB0CA, 0xB0CB, 0xB0CC, 0xB0CD, /* 0x50 */
- 0xB0CE, 0xB0CF, 0xB0D2, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xB0D3, 0xB0D5, 0xB0D6, 0xB0D7, 0xB0D9, 0xB0DA, 0xB0DB, /* 0x60 */
- 0xB0DC, 0xB0DD, 0xB0DE, 0xB0DF, 0xB0E1, 0xB0E2, 0xB0E3, 0xB0E4, /* 0x60 */
- 0xB0E6, 0xB0E7, 0xB0E8, 0xB0E9, 0xB0EA, 0xB0EB, 0xB0EC, 0xB0ED, /* 0x70 */
- 0xB0EE, 0xB0EF, 0xB0F0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xB0F1, 0xB0F2, 0xB0F3, 0xB0F4, 0xB0F5, 0xB0F6, 0xB0F7, /* 0x80 */
- 0xB0F8, 0xB0F9, 0xB0FA, 0xB0FB, 0xB0FC, 0xB0FD, 0xB0FE, 0xB0FF, /* 0x80 */
- 0xB100, 0xB101, 0xB102, 0xB103, 0xB104, 0xB105, 0xB106, 0xB107, /* 0x90 */
- 0xB10A, 0xB10D, 0xB10E, 0xB10F, 0xB111, 0xB114, 0xB115, 0xB116, /* 0x90 */
- 0xB117, 0xB11A, 0xB11E, 0xB11F, 0xB120, 0xB121, 0xB122, 0xB126, /* 0xA0 */
- 0xB127, 0xB129, 0xB12A, 0xB12B, 0xB12D, 0xB12E, 0xB12F, 0xB130, /* 0xA0 */
- 0xB131, 0xB132, 0xB133, 0xB136, 0xB13A, 0xB13B, 0xB13C, 0xB13D, /* 0xB0 */
- 0xB13E, 0xB13F, 0xB142, 0xB143, 0xB145, 0xB146, 0xB147, 0xB149, /* 0xB0 */
- 0xB14A, 0xB14B, 0xB14C, 0xB14D, 0xB14E, 0xB14F, 0xB152, 0xB153, /* 0xC0 */
- 0xB156, 0xB157, 0xB159, 0xB15A, 0xB15B, 0xB15D, 0xB15E, 0xB15F, /* 0xC0 */
- 0xB161, 0xB162, 0xB163, 0xB164, 0xB165, 0xB166, 0xB167, 0xB168, /* 0xD0 */
- 0xB169, 0xB16A, 0xB16B, 0xB16C, 0xB16D, 0xB16E, 0xB16F, 0xB170, /* 0xD0 */
- 0xB171, 0xB172, 0xB173, 0xB174, 0xB175, 0xB176, 0xB177, 0xB17A, /* 0xE0 */
- 0xB17B, 0xB17D, 0xB17E, 0xB17F, 0xB181, 0xB183, 0xB184, 0xB185, /* 0xE0 */
- 0xB186, 0xB187, 0xB18A, 0xB18C, 0xB18E, 0xB18F, 0xB190, 0xB191, /* 0xF0 */
- 0xB195, 0xB196, 0xB197, 0xB199, 0xB19A, 0xB19B, 0xB19D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_87[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB19E, 0xB19F, 0xB1A0, 0xB1A1, 0xB1A2, 0xB1A3, 0xB1A4, /* 0x40 */
- 0xB1A5, 0xB1A6, 0xB1A7, 0xB1A9, 0xB1AA, 0xB1AB, 0xB1AC, 0xB1AD, /* 0x40 */
- 0xB1AE, 0xB1AF, 0xB1B0, 0xB1B1, 0xB1B2, 0xB1B3, 0xB1B4, 0xB1B5, /* 0x50 */
- 0xB1B6, 0xB1B7, 0xB1B8, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xB1B9, 0xB1BA, 0xB1BB, 0xB1BC, 0xB1BD, 0xB1BE, 0xB1BF, /* 0x60 */
- 0xB1C0, 0xB1C1, 0xB1C2, 0xB1C3, 0xB1C4, 0xB1C5, 0xB1C6, 0xB1C7, /* 0x60 */
- 0xB1C8, 0xB1C9, 0xB1CA, 0xB1CB, 0xB1CD, 0xB1CE, 0xB1CF, 0xB1D1, /* 0x70 */
- 0xB1D2, 0xB1D3, 0xB1D5, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xB1D6, 0xB1D7, 0xB1D8, 0xB1D9, 0xB1DA, 0xB1DB, 0xB1DE, /* 0x80 */
- 0xB1E0, 0xB1E1, 0xB1E2, 0xB1E3, 0xB1E4, 0xB1E5, 0xB1E6, 0xB1E7, /* 0x80 */
- 0xB1EA, 0xB1EB, 0xB1ED, 0xB1EE, 0xB1EF, 0xB1F1, 0xB1F2, 0xB1F3, /* 0x90 */
- 0xB1F4, 0xB1F5, 0xB1F6, 0xB1F7, 0xB1F8, 0xB1FA, 0xB1FC, 0xB1FE, /* 0x90 */
- 0xB1FF, 0xB200, 0xB201, 0xB202, 0xB203, 0xB206, 0xB207, 0xB209, /* 0xA0 */
- 0xB20A, 0xB20D, 0xB20E, 0xB20F, 0xB210, 0xB211, 0xB212, 0xB213, /* 0xA0 */
- 0xB216, 0xB218, 0xB21A, 0xB21B, 0xB21C, 0xB21D, 0xB21E, 0xB21F, /* 0xB0 */
- 0xB221, 0xB222, 0xB223, 0xB224, 0xB225, 0xB226, 0xB227, 0xB228, /* 0xB0 */
- 0xB229, 0xB22A, 0xB22B, 0xB22C, 0xB22D, 0xB22E, 0xB22F, 0xB230, /* 0xC0 */
- 0xB231, 0xB232, 0xB233, 0xB235, 0xB236, 0xB237, 0xB238, 0xB239, /* 0xC0 */
- 0xB23A, 0xB23B, 0xB23D, 0xB23E, 0xB23F, 0xB240, 0xB241, 0xB242, /* 0xD0 */
- 0xB243, 0xB244, 0xB245, 0xB246, 0xB247, 0xB248, 0xB249, 0xB24A, /* 0xD0 */
- 0xB24B, 0xB24C, 0xB24D, 0xB24E, 0xB24F, 0xB250, 0xB251, 0xB252, /* 0xE0 */
- 0xB253, 0xB254, 0xB255, 0xB256, 0xB257, 0xB259, 0xB25A, 0xB25B, /* 0xE0 */
- 0xB25D, 0xB25E, 0xB25F, 0xB261, 0xB262, 0xB263, 0xB264, 0xB265, /* 0xF0 */
- 0xB266, 0xB267, 0xB26A, 0xB26B, 0xB26C, 0xB26D, 0xB26E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_88[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB26F, 0xB270, 0xB271, 0xB272, 0xB273, 0xB276, 0xB277, /* 0x40 */
- 0xB278, 0xB279, 0xB27A, 0xB27B, 0xB27D, 0xB27E, 0xB27F, 0xB280, /* 0x40 */
- 0xB281, 0xB282, 0xB283, 0xB286, 0xB287, 0xB288, 0xB28A, 0xB28B, /* 0x50 */
- 0xB28C, 0xB28D, 0xB28E, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xB28F, 0xB292, 0xB293, 0xB295, 0xB296, 0xB297, 0xB29B, /* 0x60 */
- 0xB29C, 0xB29D, 0xB29E, 0xB29F, 0xB2A2, 0xB2A4, 0xB2A7, 0xB2A8, /* 0x60 */
- 0xB2A9, 0xB2AB, 0xB2AD, 0xB2AE, 0xB2AF, 0xB2B1, 0xB2B2, 0xB2B3, /* 0x70 */
- 0xB2B5, 0xB2B6, 0xB2B7, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xB2B8, 0xB2B9, 0xB2BA, 0xB2BB, 0xB2BC, 0xB2BD, 0xB2BE, /* 0x80 */
- 0xB2BF, 0xB2C0, 0xB2C1, 0xB2C2, 0xB2C3, 0xB2C4, 0xB2C5, 0xB2C6, /* 0x80 */
- 0xB2C7, 0xB2CA, 0xB2CB, 0xB2CD, 0xB2CE, 0xB2CF, 0xB2D1, 0xB2D3, /* 0x90 */
- 0xB2D4, 0xB2D5, 0xB2D6, 0xB2D7, 0xB2DA, 0xB2DC, 0xB2DE, 0xB2DF, /* 0x90 */
- 0xB2E0, 0xB2E1, 0xB2E3, 0xB2E7, 0xB2E9, 0xB2EA, 0xB2F0, 0xB2F1, /* 0xA0 */
- 0xB2F2, 0xB2F6, 0xB2FC, 0xB2FD, 0xB2FE, 0xB302, 0xB303, 0xB305, /* 0xA0 */
- 0xB306, 0xB307, 0xB309, 0xB30A, 0xB30B, 0xB30C, 0xB30D, 0xB30E, /* 0xB0 */
- 0xB30F, 0xB312, 0xB316, 0xB317, 0xB318, 0xB319, 0xB31A, 0xB31B, /* 0xB0 */
- 0xB31D, 0xB31E, 0xB31F, 0xB320, 0xB321, 0xB322, 0xB323, 0xB324, /* 0xC0 */
- 0xB325, 0xB326, 0xB327, 0xB328, 0xB329, 0xB32A, 0xB32B, 0xB32C, /* 0xC0 */
- 0xB32D, 0xB32E, 0xB32F, 0xB330, 0xB331, 0xB332, 0xB333, 0xB334, /* 0xD0 */
- 0xB335, 0xB336, 0xB337, 0xB338, 0xB339, 0xB33A, 0xB33B, 0xB33C, /* 0xD0 */
- 0xB33D, 0xB33E, 0xB33F, 0xB340, 0xB341, 0xB342, 0xB343, 0xB344, /* 0xE0 */
- 0xB345, 0xB346, 0xB347, 0xB348, 0xB349, 0xB34A, 0xB34B, 0xB34C, /* 0xE0 */
- 0xB34D, 0xB34E, 0xB34F, 0xB350, 0xB351, 0xB352, 0xB353, 0xB357, /* 0xF0 */
- 0xB359, 0xB35A, 0xB35D, 0xB360, 0xB361, 0xB362, 0xB363 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_89[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB366, 0xB368, 0xB36A, 0xB36C, 0xB36D, 0xB36F, 0xB372, /* 0x40 */
- 0xB373, 0xB375, 0xB376, 0xB377, 0xB379, 0xB37A, 0xB37B, 0xB37C, /* 0x40 */
- 0xB37D, 0xB37E, 0xB37F, 0xB382, 0xB386, 0xB387, 0xB388, 0xB389, /* 0x50 */
- 0xB38A, 0xB38B, 0xB38D, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xB38E, 0xB38F, 0xB391, 0xB392, 0xB393, 0xB395, 0xB396, /* 0x60 */
- 0xB397, 0xB398, 0xB399, 0xB39A, 0xB39B, 0xB39C, 0xB39D, 0xB39E, /* 0x60 */
- 0xB39F, 0xB3A2, 0xB3A3, 0xB3A4, 0xB3A5, 0xB3A6, 0xB3A7, 0xB3A9, /* 0x70 */
- 0xB3AA, 0xB3AB, 0xB3AD, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xB3AE, 0xB3AF, 0xB3B0, 0xB3B1, 0xB3B2, 0xB3B3, 0xB3B4, /* 0x80 */
- 0xB3B5, 0xB3B6, 0xB3B7, 0xB3B8, 0xB3B9, 0xB3BA, 0xB3BB, 0xB3BC, /* 0x80 */
- 0xB3BD, 0xB3BE, 0xB3BF, 0xB3C0, 0xB3C1, 0xB3C2, 0xB3C3, 0xB3C6, /* 0x90 */
- 0xB3C7, 0xB3C9, 0xB3CA, 0xB3CD, 0xB3CF, 0xB3D1, 0xB3D2, 0xB3D3, /* 0x90 */
- 0xB3D6, 0xB3D8, 0xB3DA, 0xB3DC, 0xB3DE, 0xB3DF, 0xB3E1, 0xB3E2, /* 0xA0 */
- 0xB3E3, 0xB3E5, 0xB3E6, 0xB3E7, 0xB3E9, 0xB3EA, 0xB3EB, 0xB3EC, /* 0xA0 */
- 0xB3ED, 0xB3EE, 0xB3EF, 0xB3F0, 0xB3F1, 0xB3F2, 0xB3F3, 0xB3F4, /* 0xB0 */
- 0xB3F5, 0xB3F6, 0xB3F7, 0xB3F8, 0xB3F9, 0xB3FA, 0xB3FB, 0xB3FD, /* 0xB0 */
- 0xB3FE, 0xB3FF, 0xB400, 0xB401, 0xB402, 0xB403, 0xB404, 0xB405, /* 0xC0 */
- 0xB406, 0xB407, 0xB408, 0xB409, 0xB40A, 0xB40B, 0xB40C, 0xB40D, /* 0xC0 */
- 0xB40E, 0xB40F, 0xB411, 0xB412, 0xB413, 0xB414, 0xB415, 0xB416, /* 0xD0 */
- 0xB417, 0xB419, 0xB41A, 0xB41B, 0xB41D, 0xB41E, 0xB41F, 0xB421, /* 0xD0 */
- 0xB422, 0xB423, 0xB424, 0xB425, 0xB426, 0xB427, 0xB42A, 0xB42C, /* 0xE0 */
- 0xB42D, 0xB42E, 0xB42F, 0xB430, 0xB431, 0xB432, 0xB433, 0xB435, /* 0xE0 */
- 0xB436, 0xB437, 0xB438, 0xB439, 0xB43A, 0xB43B, 0xB43C, 0xB43D, /* 0xF0 */
- 0xB43E, 0xB43F, 0xB440, 0xB441, 0xB442, 0xB443, 0xB444 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_8A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB445, 0xB446, 0xB447, 0xB448, 0xB449, 0xB44A, 0xB44B, /* 0x40 */
- 0xB44C, 0xB44D, 0xB44E, 0xB44F, 0xB452, 0xB453, 0xB455, 0xB456, /* 0x40 */
- 0xB457, 0xB459, 0xB45A, 0xB45B, 0xB45C, 0xB45D, 0xB45E, 0xB45F, /* 0x50 */
- 0xB462, 0xB464, 0xB466, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xB467, 0xB468, 0xB469, 0xB46A, 0xB46B, 0xB46D, 0xB46E, /* 0x60 */
- 0xB46F, 0xB470, 0xB471, 0xB472, 0xB473, 0xB474, 0xB475, 0xB476, /* 0x60 */
- 0xB477, 0xB478, 0xB479, 0xB47A, 0xB47B, 0xB47C, 0xB47D, 0xB47E, /* 0x70 */
- 0xB47F, 0xB481, 0xB482, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xB483, 0xB484, 0xB485, 0xB486, 0xB487, 0xB489, 0xB48A, /* 0x80 */
- 0xB48B, 0xB48C, 0xB48D, 0xB48E, 0xB48F, 0xB490, 0xB491, 0xB492, /* 0x80 */
- 0xB493, 0xB494, 0xB495, 0xB496, 0xB497, 0xB498, 0xB499, 0xB49A, /* 0x90 */
- 0xB49B, 0xB49C, 0xB49E, 0xB49F, 0xB4A0, 0xB4A1, 0xB4A2, 0xB4A3, /* 0x90 */
- 0xB4A5, 0xB4A6, 0xB4A7, 0xB4A9, 0xB4AA, 0xB4AB, 0xB4AD, 0xB4AE, /* 0xA0 */
- 0xB4AF, 0xB4B0, 0xB4B1, 0xB4B2, 0xB4B3, 0xB4B4, 0xB4B6, 0xB4B8, /* 0xA0 */
- 0xB4BA, 0xB4BB, 0xB4BC, 0xB4BD, 0xB4BE, 0xB4BF, 0xB4C1, 0xB4C2, /* 0xB0 */
- 0xB4C3, 0xB4C5, 0xB4C6, 0xB4C7, 0xB4C9, 0xB4CA, 0xB4CB, 0xB4CC, /* 0xB0 */
- 0xB4CD, 0xB4CE, 0xB4CF, 0xB4D1, 0xB4D2, 0xB4D3, 0xB4D4, 0xB4D6, /* 0xC0 */
- 0xB4D7, 0xB4D8, 0xB4D9, 0xB4DA, 0xB4DB, 0xB4DE, 0xB4DF, 0xB4E1, /* 0xC0 */
- 0xB4E2, 0xB4E5, 0xB4E7, 0xB4E8, 0xB4E9, 0xB4EA, 0xB4EB, 0xB4EE, /* 0xD0 */
- 0xB4F0, 0xB4F2, 0xB4F3, 0xB4F4, 0xB4F5, 0xB4F6, 0xB4F7, 0xB4F9, /* 0xD0 */
- 0xB4FA, 0xB4FB, 0xB4FC, 0xB4FD, 0xB4FE, 0xB4FF, 0xB500, 0xB501, /* 0xE0 */
- 0xB502, 0xB503, 0xB504, 0xB505, 0xB506, 0xB507, 0xB508, 0xB509, /* 0xE0 */
- 0xB50A, 0xB50B, 0xB50C, 0xB50D, 0xB50E, 0xB50F, 0xB510, 0xB511, /* 0xF0 */
- 0xB512, 0xB513, 0xB516, 0xB517, 0xB519, 0xB51A, 0xB51D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_8B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB51E, 0xB51F, 0xB520, 0xB521, 0xB522, 0xB523, 0xB526, /* 0x40 */
- 0xB52B, 0xB52C, 0xB52D, 0xB52E, 0xB52F, 0xB532, 0xB533, 0xB535, /* 0x40 */
- 0xB536, 0xB537, 0xB539, 0xB53A, 0xB53B, 0xB53C, 0xB53D, 0xB53E, /* 0x50 */
- 0xB53F, 0xB542, 0xB546, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xB547, 0xB548, 0xB549, 0xB54A, 0xB54E, 0xB54F, 0xB551, /* 0x60 */
- 0xB552, 0xB553, 0xB555, 0xB556, 0xB557, 0xB558, 0xB559, 0xB55A, /* 0x60 */
- 0xB55B, 0xB55E, 0xB562, 0xB563, 0xB564, 0xB565, 0xB566, 0xB567, /* 0x70 */
- 0xB568, 0xB569, 0xB56A, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xB56B, 0xB56C, 0xB56D, 0xB56E, 0xB56F, 0xB570, 0xB571, /* 0x80 */
- 0xB572, 0xB573, 0xB574, 0xB575, 0xB576, 0xB577, 0xB578, 0xB579, /* 0x80 */
- 0xB57A, 0xB57B, 0xB57C, 0xB57D, 0xB57E, 0xB57F, 0xB580, 0xB581, /* 0x90 */
- 0xB582, 0xB583, 0xB584, 0xB585, 0xB586, 0xB587, 0xB588, 0xB589, /* 0x90 */
- 0xB58A, 0xB58B, 0xB58C, 0xB58D, 0xB58E, 0xB58F, 0xB590, 0xB591, /* 0xA0 */
- 0xB592, 0xB593, 0xB594, 0xB595, 0xB596, 0xB597, 0xB598, 0xB599, /* 0xA0 */
- 0xB59A, 0xB59B, 0xB59C, 0xB59D, 0xB59E, 0xB59F, 0xB5A2, 0xB5A3, /* 0xB0 */
- 0xB5A5, 0xB5A6, 0xB5A7, 0xB5A9, 0xB5AC, 0xB5AD, 0xB5AE, 0xB5AF, /* 0xB0 */
- 0xB5B2, 0xB5B6, 0xB5B7, 0xB5B8, 0xB5B9, 0xB5BA, 0xB5BE, 0xB5BF, /* 0xC0 */
- 0xB5C1, 0xB5C2, 0xB5C3, 0xB5C5, 0xB5C6, 0xB5C7, 0xB5C8, 0xB5C9, /* 0xC0 */
- 0xB5CA, 0xB5CB, 0xB5CE, 0xB5D2, 0xB5D3, 0xB5D4, 0xB5D5, 0xB5D6, /* 0xD0 */
- 0xB5D7, 0xB5D9, 0xB5DA, 0xB5DB, 0xB5DC, 0xB5DD, 0xB5DE, 0xB5DF, /* 0xD0 */
- 0xB5E0, 0xB5E1, 0xB5E2, 0xB5E3, 0xB5E4, 0xB5E5, 0xB5E6, 0xB5E7, /* 0xE0 */
- 0xB5E8, 0xB5E9, 0xB5EA, 0xB5EB, 0xB5ED, 0xB5EE, 0xB5EF, 0xB5F0, /* 0xE0 */
- 0xB5F1, 0xB5F2, 0xB5F3, 0xB5F4, 0xB5F5, 0xB5F6, 0xB5F7, 0xB5F8, /* 0xF0 */
- 0xB5F9, 0xB5FA, 0xB5FB, 0xB5FC, 0xB5FD, 0xB5FE, 0xB5FF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_8C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB600, 0xB601, 0xB602, 0xB603, 0xB604, 0xB605, 0xB606, /* 0x40 */
- 0xB607, 0xB608, 0xB609, 0xB60A, 0xB60B, 0xB60C, 0xB60D, 0xB60E, /* 0x40 */
- 0xB60F, 0xB612, 0xB613, 0xB615, 0xB616, 0xB617, 0xB619, 0xB61A, /* 0x50 */
- 0xB61B, 0xB61C, 0xB61D, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xB61E, 0xB61F, 0xB620, 0xB621, 0xB622, 0xB623, 0xB624, /* 0x60 */
- 0xB626, 0xB627, 0xB628, 0xB629, 0xB62A, 0xB62B, 0xB62D, 0xB62E, /* 0x60 */
- 0xB62F, 0xB630, 0xB631, 0xB632, 0xB633, 0xB635, 0xB636, 0xB637, /* 0x70 */
- 0xB638, 0xB639, 0xB63A, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xB63B, 0xB63C, 0xB63D, 0xB63E, 0xB63F, 0xB640, 0xB641, /* 0x80 */
- 0xB642, 0xB643, 0xB644, 0xB645, 0xB646, 0xB647, 0xB649, 0xB64A, /* 0x80 */
- 0xB64B, 0xB64C, 0xB64D, 0xB64E, 0xB64F, 0xB650, 0xB651, 0xB652, /* 0x90 */
- 0xB653, 0xB654, 0xB655, 0xB656, 0xB657, 0xB658, 0xB659, 0xB65A, /* 0x90 */
- 0xB65B, 0xB65C, 0xB65D, 0xB65E, 0xB65F, 0xB660, 0xB661, 0xB662, /* 0xA0 */
- 0xB663, 0xB665, 0xB666, 0xB667, 0xB669, 0xB66A, 0xB66B, 0xB66C, /* 0xA0 */
- 0xB66D, 0xB66E, 0xB66F, 0xB670, 0xB671, 0xB672, 0xB673, 0xB674, /* 0xB0 */
- 0xB675, 0xB676, 0xB677, 0xB678, 0xB679, 0xB67A, 0xB67B, 0xB67C, /* 0xB0 */
- 0xB67D, 0xB67E, 0xB67F, 0xB680, 0xB681, 0xB682, 0xB683, 0xB684, /* 0xC0 */
- 0xB685, 0xB686, 0xB687, 0xB688, 0xB689, 0xB68A, 0xB68B, 0xB68C, /* 0xC0 */
- 0xB68D, 0xB68E, 0xB68F, 0xB690, 0xB691, 0xB692, 0xB693, 0xB694, /* 0xD0 */
- 0xB695, 0xB696, 0xB697, 0xB698, 0xB699, 0xB69A, 0xB69B, 0xB69E, /* 0xD0 */
- 0xB69F, 0xB6A1, 0xB6A2, 0xB6A3, 0xB6A5, 0xB6A6, 0xB6A7, 0xB6A8, /* 0xE0 */
- 0xB6A9, 0xB6AA, 0xB6AD, 0xB6AE, 0xB6AF, 0xB6B0, 0xB6B2, 0xB6B3, /* 0xE0 */
- 0xB6B4, 0xB6B5, 0xB6B6, 0xB6B7, 0xB6B8, 0xB6B9, 0xB6BA, 0xB6BB, /* 0xF0 */
- 0xB6BC, 0xB6BD, 0xB6BE, 0xB6BF, 0xB6C0, 0xB6C1, 0xB6C2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_8D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB6C3, 0xB6C4, 0xB6C5, 0xB6C6, 0xB6C7, 0xB6C8, 0xB6C9, /* 0x40 */
- 0xB6CA, 0xB6CB, 0xB6CC, 0xB6CD, 0xB6CE, 0xB6CF, 0xB6D0, 0xB6D1, /* 0x40 */
- 0xB6D2, 0xB6D3, 0xB6D5, 0xB6D6, 0xB6D7, 0xB6D8, 0xB6D9, 0xB6DA, /* 0x50 */
- 0xB6DB, 0xB6DC, 0xB6DD, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xB6DE, 0xB6DF, 0xB6E0, 0xB6E1, 0xB6E2, 0xB6E3, 0xB6E4, /* 0x60 */
- 0xB6E5, 0xB6E6, 0xB6E7, 0xB6E8, 0xB6E9, 0xB6EA, 0xB6EB, 0xB6EC, /* 0x60 */
- 0xB6ED, 0xB6EE, 0xB6EF, 0xB6F1, 0xB6F2, 0xB6F3, 0xB6F5, 0xB6F6, /* 0x70 */
- 0xB6F7, 0xB6F9, 0xB6FA, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xB6FB, 0xB6FC, 0xB6FD, 0xB6FE, 0xB6FF, 0xB702, 0xB703, /* 0x80 */
- 0xB704, 0xB706, 0xB707, 0xB708, 0xB709, 0xB70A, 0xB70B, 0xB70C, /* 0x80 */
- 0xB70D, 0xB70E, 0xB70F, 0xB710, 0xB711, 0xB712, 0xB713, 0xB714, /* 0x90 */
- 0xB715, 0xB716, 0xB717, 0xB718, 0xB719, 0xB71A, 0xB71B, 0xB71C, /* 0x90 */
- 0xB71D, 0xB71E, 0xB71F, 0xB720, 0xB721, 0xB722, 0xB723, 0xB724, /* 0xA0 */
- 0xB725, 0xB726, 0xB727, 0xB72A, 0xB72B, 0xB72D, 0xB72E, 0xB731, /* 0xA0 */
- 0xB732, 0xB733, 0xB734, 0xB735, 0xB736, 0xB737, 0xB73A, 0xB73C, /* 0xB0 */
- 0xB73D, 0xB73E, 0xB73F, 0xB740, 0xB741, 0xB742, 0xB743, 0xB745, /* 0xB0 */
- 0xB746, 0xB747, 0xB749, 0xB74A, 0xB74B, 0xB74D, 0xB74E, 0xB74F, /* 0xC0 */
- 0xB750, 0xB751, 0xB752, 0xB753, 0xB756, 0xB757, 0xB758, 0xB759, /* 0xC0 */
- 0xB75A, 0xB75B, 0xB75C, 0xB75D, 0xB75E, 0xB75F, 0xB761, 0xB762, /* 0xD0 */
- 0xB763, 0xB765, 0xB766, 0xB767, 0xB769, 0xB76A, 0xB76B, 0xB76C, /* 0xD0 */
- 0xB76D, 0xB76E, 0xB76F, 0xB772, 0xB774, 0xB776, 0xB777, 0xB778, /* 0xE0 */
- 0xB779, 0xB77A, 0xB77B, 0xB77E, 0xB77F, 0xB781, 0xB782, 0xB783, /* 0xE0 */
- 0xB785, 0xB786, 0xB787, 0xB788, 0xB789, 0xB78A, 0xB78B, 0xB78E, /* 0xF0 */
- 0xB793, 0xB794, 0xB795, 0xB79A, 0xB79B, 0xB79D, 0xB79E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_8E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB79F, 0xB7A1, 0xB7A2, 0xB7A3, 0xB7A4, 0xB7A5, 0xB7A6, /* 0x40 */
- 0xB7A7, 0xB7AA, 0xB7AE, 0xB7AF, 0xB7B0, 0xB7B1, 0xB7B2, 0xB7B3, /* 0x40 */
- 0xB7B6, 0xB7B7, 0xB7B9, 0xB7BA, 0xB7BB, 0xB7BC, 0xB7BD, 0xB7BE, /* 0x50 */
- 0xB7BF, 0xB7C0, 0xB7C1, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xB7C2, 0xB7C3, 0xB7C4, 0xB7C5, 0xB7C6, 0xB7C8, 0xB7CA, /* 0x60 */
- 0xB7CB, 0xB7CC, 0xB7CD, 0xB7CE, 0xB7CF, 0xB7D0, 0xB7D1, 0xB7D2, /* 0x60 */
- 0xB7D3, 0xB7D4, 0xB7D5, 0xB7D6, 0xB7D7, 0xB7D8, 0xB7D9, 0xB7DA, /* 0x70 */
- 0xB7DB, 0xB7DC, 0xB7DD, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xB7DE, 0xB7DF, 0xB7E0, 0xB7E1, 0xB7E2, 0xB7E3, 0xB7E4, /* 0x80 */
- 0xB7E5, 0xB7E6, 0xB7E7, 0xB7E8, 0xB7E9, 0xB7EA, 0xB7EB, 0xB7EE, /* 0x80 */
- 0xB7EF, 0xB7F1, 0xB7F2, 0xB7F3, 0xB7F5, 0xB7F6, 0xB7F7, 0xB7F8, /* 0x90 */
- 0xB7F9, 0xB7FA, 0xB7FB, 0xB7FE, 0xB802, 0xB803, 0xB804, 0xB805, /* 0x90 */
- 0xB806, 0xB80A, 0xB80B, 0xB80D, 0xB80E, 0xB80F, 0xB811, 0xB812, /* 0xA0 */
- 0xB813, 0xB814, 0xB815, 0xB816, 0xB817, 0xB81A, 0xB81C, 0xB81E, /* 0xA0 */
- 0xB81F, 0xB820, 0xB821, 0xB822, 0xB823, 0xB826, 0xB827, 0xB829, /* 0xB0 */
- 0xB82A, 0xB82B, 0xB82D, 0xB82E, 0xB82F, 0xB830, 0xB831, 0xB832, /* 0xB0 */
- 0xB833, 0xB836, 0xB83A, 0xB83B, 0xB83C, 0xB83D, 0xB83E, 0xB83F, /* 0xC0 */
- 0xB841, 0xB842, 0xB843, 0xB845, 0xB846, 0xB847, 0xB848, 0xB849, /* 0xC0 */
- 0xB84A, 0xB84B, 0xB84C, 0xB84D, 0xB84E, 0xB84F, 0xB850, 0xB852, /* 0xD0 */
- 0xB854, 0xB855, 0xB856, 0xB857, 0xB858, 0xB859, 0xB85A, 0xB85B, /* 0xD0 */
- 0xB85E, 0xB85F, 0xB861, 0xB862, 0xB863, 0xB865, 0xB866, 0xB867, /* 0xE0 */
- 0xB868, 0xB869, 0xB86A, 0xB86B, 0xB86E, 0xB870, 0xB872, 0xB873, /* 0xE0 */
- 0xB874, 0xB875, 0xB876, 0xB877, 0xB879, 0xB87A, 0xB87B, 0xB87D, /* 0xF0 */
- 0xB87E, 0xB87F, 0xB880, 0xB881, 0xB882, 0xB883, 0xB884 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_8F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB885, 0xB886, 0xB887, 0xB888, 0xB889, 0xB88A, 0xB88B, /* 0x40 */
- 0xB88C, 0xB88E, 0xB88F, 0xB890, 0xB891, 0xB892, 0xB893, 0xB894, /* 0x40 */
- 0xB895, 0xB896, 0xB897, 0xB898, 0xB899, 0xB89A, 0xB89B, 0xB89C, /* 0x50 */
- 0xB89D, 0xB89E, 0xB89F, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xB8A0, 0xB8A1, 0xB8A2, 0xB8A3, 0xB8A4, 0xB8A5, 0xB8A6, /* 0x60 */
- 0xB8A7, 0xB8A9, 0xB8AA, 0xB8AB, 0xB8AC, 0xB8AD, 0xB8AE, 0xB8AF, /* 0x60 */
- 0xB8B1, 0xB8B2, 0xB8B3, 0xB8B5, 0xB8B6, 0xB8B7, 0xB8B9, 0xB8BA, /* 0x70 */
- 0xB8BB, 0xB8BC, 0xB8BD, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xB8BE, 0xB8BF, 0xB8C2, 0xB8C4, 0xB8C6, 0xB8C7, 0xB8C8, /* 0x80 */
- 0xB8C9, 0xB8CA, 0xB8CB, 0xB8CD, 0xB8CE, 0xB8CF, 0xB8D1, 0xB8D2, /* 0x80 */
- 0xB8D3, 0xB8D5, 0xB8D6, 0xB8D7, 0xB8D8, 0xB8D9, 0xB8DA, 0xB8DB, /* 0x90 */
- 0xB8DC, 0xB8DE, 0xB8E0, 0xB8E2, 0xB8E3, 0xB8E4, 0xB8E5, 0xB8E6, /* 0x90 */
- 0xB8E7, 0xB8EA, 0xB8EB, 0xB8ED, 0xB8EE, 0xB8EF, 0xB8F1, 0xB8F2, /* 0xA0 */
- 0xB8F3, 0xB8F4, 0xB8F5, 0xB8F6, 0xB8F7, 0xB8FA, 0xB8FC, 0xB8FE, /* 0xA0 */
- 0xB8FF, 0xB900, 0xB901, 0xB902, 0xB903, 0xB905, 0xB906, 0xB907, /* 0xB0 */
- 0xB908, 0xB909, 0xB90A, 0xB90B, 0xB90C, 0xB90D, 0xB90E, 0xB90F, /* 0xB0 */
- 0xB910, 0xB911, 0xB912, 0xB913, 0xB914, 0xB915, 0xB916, 0xB917, /* 0xC0 */
- 0xB919, 0xB91A, 0xB91B, 0xB91C, 0xB91D, 0xB91E, 0xB91F, 0xB921, /* 0xC0 */
- 0xB922, 0xB923, 0xB924, 0xB925, 0xB926, 0xB927, 0xB928, 0xB929, /* 0xD0 */
- 0xB92A, 0xB92B, 0xB92C, 0xB92D, 0xB92E, 0xB92F, 0xB930, 0xB931, /* 0xD0 */
- 0xB932, 0xB933, 0xB934, 0xB935, 0xB936, 0xB937, 0xB938, 0xB939, /* 0xE0 */
- 0xB93A, 0xB93B, 0xB93E, 0xB93F, 0xB941, 0xB942, 0xB943, 0xB945, /* 0xE0 */
- 0xB946, 0xB947, 0xB948, 0xB949, 0xB94A, 0xB94B, 0xB94D, 0xB94E, /* 0xF0 */
- 0xB950, 0xB952, 0xB953, 0xB954, 0xB955, 0xB956, 0xB957 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_90[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB95A, 0xB95B, 0xB95D, 0xB95E, 0xB95F, 0xB961, 0xB962, /* 0x40 */
- 0xB963, 0xB964, 0xB965, 0xB966, 0xB967, 0xB96A, 0xB96C, 0xB96E, /* 0x40 */
- 0xB96F, 0xB970, 0xB971, 0xB972, 0xB973, 0xB976, 0xB977, 0xB979, /* 0x50 */
- 0xB97A, 0xB97B, 0xB97D, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xB97E, 0xB97F, 0xB980, 0xB981, 0xB982, 0xB983, 0xB986, /* 0x60 */
- 0xB988, 0xB98B, 0xB98C, 0xB98F, 0xB990, 0xB991, 0xB992, 0xB993, /* 0x60 */
- 0xB994, 0xB995, 0xB996, 0xB997, 0xB998, 0xB999, 0xB99A, 0xB99B, /* 0x70 */
- 0xB99C, 0xB99D, 0xB99E, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xB99F, 0xB9A0, 0xB9A1, 0xB9A2, 0xB9A3, 0xB9A4, 0xB9A5, /* 0x80 */
- 0xB9A6, 0xB9A7, 0xB9A8, 0xB9A9, 0xB9AA, 0xB9AB, 0xB9AE, 0xB9AF, /* 0x80 */
- 0xB9B1, 0xB9B2, 0xB9B3, 0xB9B5, 0xB9B6, 0xB9B7, 0xB9B8, 0xB9B9, /* 0x90 */
- 0xB9BA, 0xB9BB, 0xB9BE, 0xB9C0, 0xB9C2, 0xB9C3, 0xB9C4, 0xB9C5, /* 0x90 */
- 0xB9C6, 0xB9C7, 0xB9CA, 0xB9CB, 0xB9CD, 0xB9D3, 0xB9D4, 0xB9D5, /* 0xA0 */
- 0xB9D6, 0xB9D7, 0xB9DA, 0xB9DC, 0xB9DF, 0xB9E0, 0xB9E2, 0xB9E6, /* 0xA0 */
- 0xB9E7, 0xB9E9, 0xB9EA, 0xB9EB, 0xB9ED, 0xB9EE, 0xB9EF, 0xB9F0, /* 0xB0 */
- 0xB9F1, 0xB9F2, 0xB9F3, 0xB9F6, 0xB9FB, 0xB9FC, 0xB9FD, 0xB9FE, /* 0xB0 */
- 0xB9FF, 0xBA02, 0xBA03, 0xBA04, 0xBA05, 0xBA06, 0xBA07, 0xBA09, /* 0xC0 */
- 0xBA0A, 0xBA0B, 0xBA0C, 0xBA0D, 0xBA0E, 0xBA0F, 0xBA10, 0xBA11, /* 0xC0 */
- 0xBA12, 0xBA13, 0xBA14, 0xBA16, 0xBA17, 0xBA18, 0xBA19, 0xBA1A, /* 0xD0 */
- 0xBA1B, 0xBA1C, 0xBA1D, 0xBA1E, 0xBA1F, 0xBA20, 0xBA21, 0xBA22, /* 0xD0 */
- 0xBA23, 0xBA24, 0xBA25, 0xBA26, 0xBA27, 0xBA28, 0xBA29, 0xBA2A, /* 0xE0 */
- 0xBA2B, 0xBA2C, 0xBA2D, 0xBA2E, 0xBA2F, 0xBA30, 0xBA31, 0xBA32, /* 0xE0 */
- 0xBA33, 0xBA34, 0xBA35, 0xBA36, 0xBA37, 0xBA3A, 0xBA3B, 0xBA3D, /* 0xF0 */
- 0xBA3E, 0xBA3F, 0xBA41, 0xBA43, 0xBA44, 0xBA45, 0xBA46 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_91[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBA47, 0xBA4A, 0xBA4C, 0xBA4F, 0xBA50, 0xBA51, 0xBA52, /* 0x40 */
- 0xBA56, 0xBA57, 0xBA59, 0xBA5A, 0xBA5B, 0xBA5D, 0xBA5E, 0xBA5F, /* 0x40 */
- 0xBA60, 0xBA61, 0xBA62, 0xBA63, 0xBA66, 0xBA6A, 0xBA6B, 0xBA6C, /* 0x50 */
- 0xBA6D, 0xBA6E, 0xBA6F, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xBA72, 0xBA73, 0xBA75, 0xBA76, 0xBA77, 0xBA79, 0xBA7A, /* 0x60 */
- 0xBA7B, 0xBA7C, 0xBA7D, 0xBA7E, 0xBA7F, 0xBA80, 0xBA81, 0xBA82, /* 0x60 */
- 0xBA86, 0xBA88, 0xBA89, 0xBA8A, 0xBA8B, 0xBA8D, 0xBA8E, 0xBA8F, /* 0x70 */
- 0xBA90, 0xBA91, 0xBA92, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xBA93, 0xBA94, 0xBA95, 0xBA96, 0xBA97, 0xBA98, 0xBA99, /* 0x80 */
- 0xBA9A, 0xBA9B, 0xBA9C, 0xBA9D, 0xBA9E, 0xBA9F, 0xBAA0, 0xBAA1, /* 0x80 */
- 0xBAA2, 0xBAA3, 0xBAA4, 0xBAA5, 0xBAA6, 0xBAA7, 0xBAAA, 0xBAAD, /* 0x90 */
- 0xBAAE, 0xBAAF, 0xBAB1, 0xBAB3, 0xBAB4, 0xBAB5, 0xBAB6, 0xBAB7, /* 0x90 */
- 0xBABA, 0xBABC, 0xBABE, 0xBABF, 0xBAC0, 0xBAC1, 0xBAC2, 0xBAC3, /* 0xA0 */
- 0xBAC5, 0xBAC6, 0xBAC7, 0xBAC9, 0xBACA, 0xBACB, 0xBACC, 0xBACD, /* 0xA0 */
- 0xBACE, 0xBACF, 0xBAD0, 0xBAD1, 0xBAD2, 0xBAD3, 0xBAD4, 0xBAD5, /* 0xB0 */
- 0xBAD6, 0xBAD7, 0xBADA, 0xBADB, 0xBADC, 0xBADD, 0xBADE, 0xBADF, /* 0xB0 */
- 0xBAE0, 0xBAE1, 0xBAE2, 0xBAE3, 0xBAE4, 0xBAE5, 0xBAE6, 0xBAE7, /* 0xC0 */
- 0xBAE8, 0xBAE9, 0xBAEA, 0xBAEB, 0xBAEC, 0xBAED, 0xBAEE, 0xBAEF, /* 0xC0 */
- 0xBAF0, 0xBAF1, 0xBAF2, 0xBAF3, 0xBAF4, 0xBAF5, 0xBAF6, 0xBAF7, /* 0xD0 */
- 0xBAF8, 0xBAF9, 0xBAFA, 0xBAFB, 0xBAFD, 0xBAFE, 0xBAFF, 0xBB01, /* 0xD0 */
- 0xBB02, 0xBB03, 0xBB05, 0xBB06, 0xBB07, 0xBB08, 0xBB09, 0xBB0A, /* 0xE0 */
- 0xBB0B, 0xBB0C, 0xBB0E, 0xBB10, 0xBB12, 0xBB13, 0xBB14, 0xBB15, /* 0xE0 */
- 0xBB16, 0xBB17, 0xBB19, 0xBB1A, 0xBB1B, 0xBB1D, 0xBB1E, 0xBB1F, /* 0xF0 */
- 0xBB21, 0xBB22, 0xBB23, 0xBB24, 0xBB25, 0xBB26, 0xBB27 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_92[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBB28, 0xBB2A, 0xBB2C, 0xBB2D, 0xBB2E, 0xBB2F, 0xBB30, /* 0x40 */
- 0xBB31, 0xBB32, 0xBB33, 0xBB37, 0xBB39, 0xBB3A, 0xBB3F, 0xBB40, /* 0x40 */
- 0xBB41, 0xBB42, 0xBB43, 0xBB46, 0xBB48, 0xBB4A, 0xBB4B, 0xBB4C, /* 0x50 */
- 0xBB4E, 0xBB51, 0xBB52, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xBB53, 0xBB55, 0xBB56, 0xBB57, 0xBB59, 0xBB5A, 0xBB5B, /* 0x60 */
- 0xBB5C, 0xBB5D, 0xBB5E, 0xBB5F, 0xBB60, 0xBB62, 0xBB64, 0xBB65, /* 0x60 */
- 0xBB66, 0xBB67, 0xBB68, 0xBB69, 0xBB6A, 0xBB6B, 0xBB6D, 0xBB6E, /* 0x70 */
- 0xBB6F, 0xBB70, 0xBB71, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xBB72, 0xBB73, 0xBB74, 0xBB75, 0xBB76, 0xBB77, 0xBB78, /* 0x80 */
- 0xBB79, 0xBB7A, 0xBB7B, 0xBB7C, 0xBB7D, 0xBB7E, 0xBB7F, 0xBB80, /* 0x80 */
- 0xBB81, 0xBB82, 0xBB83, 0xBB84, 0xBB85, 0xBB86, 0xBB87, 0xBB89, /* 0x90 */
- 0xBB8A, 0xBB8B, 0xBB8D, 0xBB8E, 0xBB8F, 0xBB91, 0xBB92, 0xBB93, /* 0x90 */
- 0xBB94, 0xBB95, 0xBB96, 0xBB97, 0xBB98, 0xBB99, 0xBB9A, 0xBB9B, /* 0xA0 */
- 0xBB9C, 0xBB9D, 0xBB9E, 0xBB9F, 0xBBA0, 0xBBA1, 0xBBA2, 0xBBA3, /* 0xA0 */
- 0xBBA5, 0xBBA6, 0xBBA7, 0xBBA9, 0xBBAA, 0xBBAB, 0xBBAD, 0xBBAE, /* 0xB0 */
- 0xBBAF, 0xBBB0, 0xBBB1, 0xBBB2, 0xBBB3, 0xBBB5, 0xBBB6, 0xBBB8, /* 0xB0 */
- 0xBBB9, 0xBBBA, 0xBBBB, 0xBBBC, 0xBBBD, 0xBBBE, 0xBBBF, 0xBBC1, /* 0xC0 */
- 0xBBC2, 0xBBC3, 0xBBC5, 0xBBC6, 0xBBC7, 0xBBC9, 0xBBCA, 0xBBCB, /* 0xC0 */
- 0xBBCC, 0xBBCD, 0xBBCE, 0xBBCF, 0xBBD1, 0xBBD2, 0xBBD4, 0xBBD5, /* 0xD0 */
- 0xBBD6, 0xBBD7, 0xBBD8, 0xBBD9, 0xBBDA, 0xBBDB, 0xBBDC, 0xBBDD, /* 0xD0 */
- 0xBBDE, 0xBBDF, 0xBBE0, 0xBBE1, 0xBBE2, 0xBBE3, 0xBBE4, 0xBBE5, /* 0xE0 */
- 0xBBE6, 0xBBE7, 0xBBE8, 0xBBE9, 0xBBEA, 0xBBEB, 0xBBEC, 0xBBED, /* 0xE0 */
- 0xBBEE, 0xBBEF, 0xBBF0, 0xBBF1, 0xBBF2, 0xBBF3, 0xBBF4, 0xBBF5, /* 0xF0 */
- 0xBBF6, 0xBBF7, 0xBBFA, 0xBBFB, 0xBBFD, 0xBBFE, 0xBC01 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_93[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBC03, 0xBC04, 0xBC05, 0xBC06, 0xBC07, 0xBC0A, 0xBC0E, /* 0x40 */
- 0xBC10, 0xBC12, 0xBC13, 0xBC19, 0xBC1A, 0xBC20, 0xBC21, 0xBC22, /* 0x40 */
- 0xBC23, 0xBC26, 0xBC28, 0xBC2A, 0xBC2B, 0xBC2C, 0xBC2E, 0xBC2F, /* 0x50 */
- 0xBC32, 0xBC33, 0xBC35, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xBC36, 0xBC37, 0xBC39, 0xBC3A, 0xBC3B, 0xBC3C, 0xBC3D, /* 0x60 */
- 0xBC3E, 0xBC3F, 0xBC42, 0xBC46, 0xBC47, 0xBC48, 0xBC4A, 0xBC4B, /* 0x60 */
- 0xBC4E, 0xBC4F, 0xBC51, 0xBC52, 0xBC53, 0xBC54, 0xBC55, 0xBC56, /* 0x70 */
- 0xBC57, 0xBC58, 0xBC59, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xBC5A, 0xBC5B, 0xBC5C, 0xBC5E, 0xBC5F, 0xBC60, 0xBC61, /* 0x80 */
- 0xBC62, 0xBC63, 0xBC64, 0xBC65, 0xBC66, 0xBC67, 0xBC68, 0xBC69, /* 0x80 */
- 0xBC6A, 0xBC6B, 0xBC6C, 0xBC6D, 0xBC6E, 0xBC6F, 0xBC70, 0xBC71, /* 0x90 */
- 0xBC72, 0xBC73, 0xBC74, 0xBC75, 0xBC76, 0xBC77, 0xBC78, 0xBC79, /* 0x90 */
- 0xBC7A, 0xBC7B, 0xBC7C, 0xBC7D, 0xBC7E, 0xBC7F, 0xBC80, 0xBC81, /* 0xA0 */
- 0xBC82, 0xBC83, 0xBC86, 0xBC87, 0xBC89, 0xBC8A, 0xBC8D, 0xBC8F, /* 0xA0 */
- 0xBC90, 0xBC91, 0xBC92, 0xBC93, 0xBC96, 0xBC98, 0xBC9B, 0xBC9C, /* 0xB0 */
- 0xBC9D, 0xBC9E, 0xBC9F, 0xBCA2, 0xBCA3, 0xBCA5, 0xBCA6, 0xBCA9, /* 0xB0 */
- 0xBCAA, 0xBCAB, 0xBCAC, 0xBCAD, 0xBCAE, 0xBCAF, 0xBCB2, 0xBCB6, /* 0xC0 */
- 0xBCB7, 0xBCB8, 0xBCB9, 0xBCBA, 0xBCBB, 0xBCBE, 0xBCBF, 0xBCC1, /* 0xC0 */
- 0xBCC2, 0xBCC3, 0xBCC5, 0xBCC6, 0xBCC7, 0xBCC8, 0xBCC9, 0xBCCA, /* 0xD0 */
- 0xBCCB, 0xBCCC, 0xBCCE, 0xBCD2, 0xBCD3, 0xBCD4, 0xBCD6, 0xBCD7, /* 0xD0 */
- 0xBCD9, 0xBCDA, 0xBCDB, 0xBCDD, 0xBCDE, 0xBCDF, 0xBCE0, 0xBCE1, /* 0xE0 */
- 0xBCE2, 0xBCE3, 0xBCE4, 0xBCE5, 0xBCE6, 0xBCE7, 0xBCE8, 0xBCE9, /* 0xE0 */
- 0xBCEA, 0xBCEB, 0xBCEC, 0xBCED, 0xBCEE, 0xBCEF, 0xBCF0, 0xBCF1, /* 0xF0 */
- 0xBCF2, 0xBCF3, 0xBCF7, 0xBCF9, 0xBCFA, 0xBCFB, 0xBCFD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_94[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBCFE, 0xBCFF, 0xBD00, 0xBD01, 0xBD02, 0xBD03, 0xBD06, /* 0x40 */
- 0xBD08, 0xBD0A, 0xBD0B, 0xBD0C, 0xBD0D, 0xBD0E, 0xBD0F, 0xBD11, /* 0x40 */
- 0xBD12, 0xBD13, 0xBD15, 0xBD16, 0xBD17, 0xBD18, 0xBD19, 0xBD1A, /* 0x50 */
- 0xBD1B, 0xBD1C, 0xBD1D, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xBD1E, 0xBD1F, 0xBD20, 0xBD21, 0xBD22, 0xBD23, 0xBD25, /* 0x60 */
- 0xBD26, 0xBD27, 0xBD28, 0xBD29, 0xBD2A, 0xBD2B, 0xBD2D, 0xBD2E, /* 0x60 */
- 0xBD2F, 0xBD30, 0xBD31, 0xBD32, 0xBD33, 0xBD34, 0xBD35, 0xBD36, /* 0x70 */
- 0xBD37, 0xBD38, 0xBD39, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xBD3A, 0xBD3B, 0xBD3C, 0xBD3D, 0xBD3E, 0xBD3F, 0xBD41, /* 0x80 */
- 0xBD42, 0xBD43, 0xBD44, 0xBD45, 0xBD46, 0xBD47, 0xBD4A, 0xBD4B, /* 0x80 */
- 0xBD4D, 0xBD4E, 0xBD4F, 0xBD51, 0xBD52, 0xBD53, 0xBD54, 0xBD55, /* 0x90 */
- 0xBD56, 0xBD57, 0xBD5A, 0xBD5B, 0xBD5C, 0xBD5D, 0xBD5E, 0xBD5F, /* 0x90 */
- 0xBD60, 0xBD61, 0xBD62, 0xBD63, 0xBD65, 0xBD66, 0xBD67, 0xBD69, /* 0xA0 */
- 0xBD6A, 0xBD6B, 0xBD6C, 0xBD6D, 0xBD6E, 0xBD6F, 0xBD70, 0xBD71, /* 0xA0 */
- 0xBD72, 0xBD73, 0xBD74, 0xBD75, 0xBD76, 0xBD77, 0xBD78, 0xBD79, /* 0xB0 */
- 0xBD7A, 0xBD7B, 0xBD7C, 0xBD7D, 0xBD7E, 0xBD7F, 0xBD82, 0xBD83, /* 0xB0 */
- 0xBD85, 0xBD86, 0xBD8B, 0xBD8C, 0xBD8D, 0xBD8E, 0xBD8F, 0xBD92, /* 0xC0 */
- 0xBD94, 0xBD96, 0xBD97, 0xBD98, 0xBD9B, 0xBD9D, 0xBD9E, 0xBD9F, /* 0xC0 */
- 0xBDA0, 0xBDA1, 0xBDA2, 0xBDA3, 0xBDA5, 0xBDA6, 0xBDA7, 0xBDA8, /* 0xD0 */
- 0xBDA9, 0xBDAA, 0xBDAB, 0xBDAC, 0xBDAD, 0xBDAE, 0xBDAF, 0xBDB1, /* 0xD0 */
- 0xBDB2, 0xBDB3, 0xBDB4, 0xBDB5, 0xBDB6, 0xBDB7, 0xBDB9, 0xBDBA, /* 0xE0 */
- 0xBDBB, 0xBDBC, 0xBDBD, 0xBDBE, 0xBDBF, 0xBDC0, 0xBDC1, 0xBDC2, /* 0xE0 */
- 0xBDC3, 0xBDC4, 0xBDC5, 0xBDC6, 0xBDC7, 0xBDC8, 0xBDC9, 0xBDCA, /* 0xF0 */
- 0xBDCB, 0xBDCC, 0xBDCD, 0xBDCE, 0xBDCF, 0xBDD0, 0xBDD1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_95[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBDD2, 0xBDD3, 0xBDD6, 0xBDD7, 0xBDD9, 0xBDDA, 0xBDDB, /* 0x40 */
- 0xBDDD, 0xBDDE, 0xBDDF, 0xBDE0, 0xBDE1, 0xBDE2, 0xBDE3, 0xBDE4, /* 0x40 */
- 0xBDE5, 0xBDE6, 0xBDE7, 0xBDE8, 0xBDEA, 0xBDEB, 0xBDEC, 0xBDED, /* 0x50 */
- 0xBDEE, 0xBDEF, 0xBDF1, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xBDF2, 0xBDF3, 0xBDF5, 0xBDF6, 0xBDF7, 0xBDF9, 0xBDFA, /* 0x60 */
- 0xBDFB, 0xBDFC, 0xBDFD, 0xBDFE, 0xBDFF, 0xBE01, 0xBE02, 0xBE04, /* 0x60 */
- 0xBE06, 0xBE07, 0xBE08, 0xBE09, 0xBE0A, 0xBE0B, 0xBE0E, 0xBE0F, /* 0x70 */
- 0xBE11, 0xBE12, 0xBE13, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xBE15, 0xBE16, 0xBE17, 0xBE18, 0xBE19, 0xBE1A, 0xBE1B, /* 0x80 */
- 0xBE1E, 0xBE20, 0xBE21, 0xBE22, 0xBE23, 0xBE24, 0xBE25, 0xBE26, /* 0x80 */
- 0xBE27, 0xBE28, 0xBE29, 0xBE2A, 0xBE2B, 0xBE2C, 0xBE2D, 0xBE2E, /* 0x90 */
- 0xBE2F, 0xBE30, 0xBE31, 0xBE32, 0xBE33, 0xBE34, 0xBE35, 0xBE36, /* 0x90 */
- 0xBE37, 0xBE38, 0xBE39, 0xBE3A, 0xBE3B, 0xBE3C, 0xBE3D, 0xBE3E, /* 0xA0 */
- 0xBE3F, 0xBE40, 0xBE41, 0xBE42, 0xBE43, 0xBE46, 0xBE47, 0xBE49, /* 0xA0 */
- 0xBE4A, 0xBE4B, 0xBE4D, 0xBE4F, 0xBE50, 0xBE51, 0xBE52, 0xBE53, /* 0xB0 */
- 0xBE56, 0xBE58, 0xBE5C, 0xBE5D, 0xBE5E, 0xBE5F, 0xBE62, 0xBE63, /* 0xB0 */
- 0xBE65, 0xBE66, 0xBE67, 0xBE69, 0xBE6B, 0xBE6C, 0xBE6D, 0xBE6E, /* 0xC0 */
- 0xBE6F, 0xBE72, 0xBE76, 0xBE77, 0xBE78, 0xBE79, 0xBE7A, 0xBE7E, /* 0xC0 */
- 0xBE7F, 0xBE81, 0xBE82, 0xBE83, 0xBE85, 0xBE86, 0xBE87, 0xBE88, /* 0xD0 */
- 0xBE89, 0xBE8A, 0xBE8B, 0xBE8E, 0xBE92, 0xBE93, 0xBE94, 0xBE95, /* 0xD0 */
- 0xBE96, 0xBE97, 0xBE9A, 0xBE9B, 0xBE9C, 0xBE9D, 0xBE9E, 0xBE9F, /* 0xE0 */
- 0xBEA0, 0xBEA1, 0xBEA2, 0xBEA3, 0xBEA4, 0xBEA5, 0xBEA6, 0xBEA7, /* 0xE0 */
- 0xBEA9, 0xBEAA, 0xBEAB, 0xBEAC, 0xBEAD, 0xBEAE, 0xBEAF, 0xBEB0, /* 0xF0 */
- 0xBEB1, 0xBEB2, 0xBEB3, 0xBEB4, 0xBEB5, 0xBEB6, 0xBEB7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_96[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBEB8, 0xBEB9, 0xBEBA, 0xBEBB, 0xBEBC, 0xBEBD, 0xBEBE, /* 0x40 */
- 0xBEBF, 0xBEC0, 0xBEC1, 0xBEC2, 0xBEC3, 0xBEC4, 0xBEC5, 0xBEC6, /* 0x40 */
- 0xBEC7, 0xBEC8, 0xBEC9, 0xBECA, 0xBECB, 0xBECC, 0xBECD, 0xBECE, /* 0x50 */
- 0xBECF, 0xBED2, 0xBED3, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xBED5, 0xBED6, 0xBED9, 0xBEDA, 0xBEDB, 0xBEDC, 0xBEDD, /* 0x60 */
- 0xBEDE, 0xBEDF, 0xBEE1, 0xBEE2, 0xBEE6, 0xBEE7, 0xBEE8, 0xBEE9, /* 0x60 */
- 0xBEEA, 0xBEEB, 0xBEED, 0xBEEE, 0xBEEF, 0xBEF0, 0xBEF1, 0xBEF2, /* 0x70 */
- 0xBEF3, 0xBEF4, 0xBEF5, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xBEF6, 0xBEF7, 0xBEF8, 0xBEF9, 0xBEFA, 0xBEFB, 0xBEFC, /* 0x80 */
- 0xBEFD, 0xBEFE, 0xBEFF, 0xBF00, 0xBF02, 0xBF03, 0xBF04, 0xBF05, /* 0x80 */
- 0xBF06, 0xBF07, 0xBF0A, 0xBF0B, 0xBF0C, 0xBF0D, 0xBF0E, 0xBF0F, /* 0x90 */
- 0xBF10, 0xBF11, 0xBF12, 0xBF13, 0xBF14, 0xBF15, 0xBF16, 0xBF17, /* 0x90 */
- 0xBF1A, 0xBF1E, 0xBF1F, 0xBF20, 0xBF21, 0xBF22, 0xBF23, 0xBF24, /* 0xA0 */
- 0xBF25, 0xBF26, 0xBF27, 0xBF28, 0xBF29, 0xBF2A, 0xBF2B, 0xBF2C, /* 0xA0 */
- 0xBF2D, 0xBF2E, 0xBF2F, 0xBF30, 0xBF31, 0xBF32, 0xBF33, 0xBF34, /* 0xB0 */
- 0xBF35, 0xBF36, 0xBF37, 0xBF38, 0xBF39, 0xBF3A, 0xBF3B, 0xBF3C, /* 0xB0 */
- 0xBF3D, 0xBF3E, 0xBF3F, 0xBF42, 0xBF43, 0xBF45, 0xBF46, 0xBF47, /* 0xC0 */
- 0xBF49, 0xBF4A, 0xBF4B, 0xBF4C, 0xBF4D, 0xBF4E, 0xBF4F, 0xBF52, /* 0xC0 */
- 0xBF53, 0xBF54, 0xBF56, 0xBF57, 0xBF58, 0xBF59, 0xBF5A, 0xBF5B, /* 0xD0 */
- 0xBF5C, 0xBF5D, 0xBF5E, 0xBF5F, 0xBF60, 0xBF61, 0xBF62, 0xBF63, /* 0xD0 */
- 0xBF64, 0xBF65, 0xBF66, 0xBF67, 0xBF68, 0xBF69, 0xBF6A, 0xBF6B, /* 0xE0 */
- 0xBF6C, 0xBF6D, 0xBF6E, 0xBF6F, 0xBF70, 0xBF71, 0xBF72, 0xBF73, /* 0xE0 */
- 0xBF74, 0xBF75, 0xBF76, 0xBF77, 0xBF78, 0xBF79, 0xBF7A, 0xBF7B, /* 0xF0 */
- 0xBF7C, 0xBF7D, 0xBF7E, 0xBF7F, 0xBF80, 0xBF81, 0xBF82 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_97[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBF83, 0xBF84, 0xBF85, 0xBF86, 0xBF87, 0xBF88, 0xBF89, /* 0x40 */
- 0xBF8A, 0xBF8B, 0xBF8C, 0xBF8D, 0xBF8E, 0xBF8F, 0xBF90, 0xBF91, /* 0x40 */
- 0xBF92, 0xBF93, 0xBF95, 0xBF96, 0xBF97, 0xBF98, 0xBF99, 0xBF9A, /* 0x50 */
- 0xBF9B, 0xBF9C, 0xBF9D, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xBF9E, 0xBF9F, 0xBFA0, 0xBFA1, 0xBFA2, 0xBFA3, 0xBFA4, /* 0x60 */
- 0xBFA5, 0xBFA6, 0xBFA7, 0xBFA8, 0xBFA9, 0xBFAA, 0xBFAB, 0xBFAC, /* 0x60 */
- 0xBFAD, 0xBFAE, 0xBFAF, 0xBFB1, 0xBFB2, 0xBFB3, 0xBFB4, 0xBFB5, /* 0x70 */
- 0xBFB6, 0xBFB7, 0xBFB8, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xBFB9, 0xBFBA, 0xBFBB, 0xBFBC, 0xBFBD, 0xBFBE, 0xBFBF, /* 0x80 */
- 0xBFC0, 0xBFC1, 0xBFC2, 0xBFC3, 0xBFC4, 0xBFC6, 0xBFC7, 0xBFC8, /* 0x80 */
- 0xBFC9, 0xBFCA, 0xBFCB, 0xBFCE, 0xBFCF, 0xBFD1, 0xBFD2, 0xBFD3, /* 0x90 */
- 0xBFD5, 0xBFD6, 0xBFD7, 0xBFD8, 0xBFD9, 0xBFDA, 0xBFDB, 0xBFDD, /* 0x90 */
- 0xBFDE, 0xBFE0, 0xBFE2, 0xBFE3, 0xBFE4, 0xBFE5, 0xBFE6, 0xBFE7, /* 0xA0 */
- 0xBFE8, 0xBFE9, 0xBFEA, 0xBFEB, 0xBFEC, 0xBFED, 0xBFEE, 0xBFEF, /* 0xA0 */
- 0xBFF0, 0xBFF1, 0xBFF2, 0xBFF3, 0xBFF4, 0xBFF5, 0xBFF6, 0xBFF7, /* 0xB0 */
- 0xBFF8, 0xBFF9, 0xBFFA, 0xBFFB, 0xBFFC, 0xBFFD, 0xBFFE, 0xBFFF, /* 0xB0 */
- 0xC000, 0xC001, 0xC002, 0xC003, 0xC004, 0xC005, 0xC006, 0xC007, /* 0xC0 */
- 0xC008, 0xC009, 0xC00A, 0xC00B, 0xC00C, 0xC00D, 0xC00E, 0xC00F, /* 0xC0 */
- 0xC010, 0xC011, 0xC012, 0xC013, 0xC014, 0xC015, 0xC016, 0xC017, /* 0xD0 */
- 0xC018, 0xC019, 0xC01A, 0xC01B, 0xC01C, 0xC01D, 0xC01E, 0xC01F, /* 0xD0 */
- 0xC020, 0xC021, 0xC022, 0xC023, 0xC024, 0xC025, 0xC026, 0xC027, /* 0xE0 */
- 0xC028, 0xC029, 0xC02A, 0xC02B, 0xC02C, 0xC02D, 0xC02E, 0xC02F, /* 0xE0 */
- 0xC030, 0xC031, 0xC032, 0xC033, 0xC034, 0xC035, 0xC036, 0xC037, /* 0xF0 */
- 0xC038, 0xC039, 0xC03A, 0xC03B, 0xC03D, 0xC03E, 0xC03F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_98[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC040, 0xC041, 0xC042, 0xC043, 0xC044, 0xC045, 0xC046, /* 0x40 */
- 0xC047, 0xC048, 0xC049, 0xC04A, 0xC04B, 0xC04C, 0xC04D, 0xC04E, /* 0x40 */
- 0xC04F, 0xC050, 0xC052, 0xC053, 0xC054, 0xC055, 0xC056, 0xC057, /* 0x50 */
- 0xC059, 0xC05A, 0xC05B, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xC05D, 0xC05E, 0xC05F, 0xC061, 0xC062, 0xC063, 0xC064, /* 0x60 */
- 0xC065, 0xC066, 0xC067, 0xC06A, 0xC06B, 0xC06C, 0xC06D, 0xC06E, /* 0x60 */
- 0xC06F, 0xC070, 0xC071, 0xC072, 0xC073, 0xC074, 0xC075, 0xC076, /* 0x70 */
- 0xC077, 0xC078, 0xC079, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xC07A, 0xC07B, 0xC07C, 0xC07D, 0xC07E, 0xC07F, 0xC080, /* 0x80 */
- 0xC081, 0xC082, 0xC083, 0xC084, 0xC085, 0xC086, 0xC087, 0xC088, /* 0x80 */
- 0xC089, 0xC08A, 0xC08B, 0xC08C, 0xC08D, 0xC08E, 0xC08F, 0xC092, /* 0x90 */
- 0xC093, 0xC095, 0xC096, 0xC097, 0xC099, 0xC09A, 0xC09B, 0xC09C, /* 0x90 */
- 0xC09D, 0xC09E, 0xC09F, 0xC0A2, 0xC0A4, 0xC0A6, 0xC0A7, 0xC0A8, /* 0xA0 */
- 0xC0A9, 0xC0AA, 0xC0AB, 0xC0AE, 0xC0B1, 0xC0B2, 0xC0B7, 0xC0B8, /* 0xA0 */
- 0xC0B9, 0xC0BA, 0xC0BB, 0xC0BE, 0xC0C2, 0xC0C3, 0xC0C4, 0xC0C6, /* 0xB0 */
- 0xC0C7, 0xC0CA, 0xC0CB, 0xC0CD, 0xC0CE, 0xC0CF, 0xC0D1, 0xC0D2, /* 0xB0 */
- 0xC0D3, 0xC0D4, 0xC0D5, 0xC0D6, 0xC0D7, 0xC0DA, 0xC0DE, 0xC0DF, /* 0xC0 */
- 0xC0E0, 0xC0E1, 0xC0E2, 0xC0E3, 0xC0E6, 0xC0E7, 0xC0E9, 0xC0EA, /* 0xC0 */
- 0xC0EB, 0xC0ED, 0xC0EE, 0xC0EF, 0xC0F0, 0xC0F1, 0xC0F2, 0xC0F3, /* 0xD0 */
- 0xC0F6, 0xC0F8, 0xC0FA, 0xC0FB, 0xC0FC, 0xC0FD, 0xC0FE, 0xC0FF, /* 0xD0 */
- 0xC101, 0xC102, 0xC103, 0xC105, 0xC106, 0xC107, 0xC109, 0xC10A, /* 0xE0 */
- 0xC10B, 0xC10C, 0xC10D, 0xC10E, 0xC10F, 0xC111, 0xC112, 0xC113, /* 0xE0 */
- 0xC114, 0xC116, 0xC117, 0xC118, 0xC119, 0xC11A, 0xC11B, 0xC121, /* 0xF0 */
- 0xC122, 0xC125, 0xC128, 0xC129, 0xC12A, 0xC12B, 0xC12E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_99[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC132, 0xC133, 0xC134, 0xC135, 0xC137, 0xC13A, 0xC13B, /* 0x40 */
- 0xC13D, 0xC13E, 0xC13F, 0xC141, 0xC142, 0xC143, 0xC144, 0xC145, /* 0x40 */
- 0xC146, 0xC147, 0xC14A, 0xC14E, 0xC14F, 0xC150, 0xC151, 0xC152, /* 0x50 */
- 0xC153, 0xC156, 0xC157, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xC159, 0xC15A, 0xC15B, 0xC15D, 0xC15E, 0xC15F, 0xC160, /* 0x60 */
- 0xC161, 0xC162, 0xC163, 0xC166, 0xC16A, 0xC16B, 0xC16C, 0xC16D, /* 0x60 */
- 0xC16E, 0xC16F, 0xC171, 0xC172, 0xC173, 0xC175, 0xC176, 0xC177, /* 0x70 */
- 0xC179, 0xC17A, 0xC17B, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xC17C, 0xC17D, 0xC17E, 0xC17F, 0xC180, 0xC181, 0xC182, /* 0x80 */
- 0xC183, 0xC184, 0xC186, 0xC187, 0xC188, 0xC189, 0xC18A, 0xC18B, /* 0x80 */
- 0xC18F, 0xC191, 0xC192, 0xC193, 0xC195, 0xC197, 0xC198, 0xC199, /* 0x90 */
- 0xC19A, 0xC19B, 0xC19E, 0xC1A0, 0xC1A2, 0xC1A3, 0xC1A4, 0xC1A6, /* 0x90 */
- 0xC1A7, 0xC1AA, 0xC1AB, 0xC1AD, 0xC1AE, 0xC1AF, 0xC1B1, 0xC1B2, /* 0xA0 */
- 0xC1B3, 0xC1B4, 0xC1B5, 0xC1B6, 0xC1B7, 0xC1B8, 0xC1B9, 0xC1BA, /* 0xA0 */
- 0xC1BB, 0xC1BC, 0xC1BE, 0xC1BF, 0xC1C0, 0xC1C1, 0xC1C2, 0xC1C3, /* 0xB0 */
- 0xC1C5, 0xC1C6, 0xC1C7, 0xC1C9, 0xC1CA, 0xC1CB, 0xC1CD, 0xC1CE, /* 0xB0 */
- 0xC1CF, 0xC1D0, 0xC1D1, 0xC1D2, 0xC1D3, 0xC1D5, 0xC1D6, 0xC1D9, /* 0xC0 */
- 0xC1DA, 0xC1DB, 0xC1DC, 0xC1DD, 0xC1DE, 0xC1DF, 0xC1E1, 0xC1E2, /* 0xC0 */
- 0xC1E3, 0xC1E5, 0xC1E6, 0xC1E7, 0xC1E9, 0xC1EA, 0xC1EB, 0xC1EC, /* 0xD0 */
- 0xC1ED, 0xC1EE, 0xC1EF, 0xC1F2, 0xC1F4, 0xC1F5, 0xC1F6, 0xC1F7, /* 0xD0 */
- 0xC1F8, 0xC1F9, 0xC1FA, 0xC1FB, 0xC1FE, 0xC1FF, 0xC201, 0xC202, /* 0xE0 */
- 0xC203, 0xC205, 0xC206, 0xC207, 0xC208, 0xC209, 0xC20A, 0xC20B, /* 0xE0 */
- 0xC20E, 0xC210, 0xC212, 0xC213, 0xC214, 0xC215, 0xC216, 0xC217, /* 0xF0 */
- 0xC21A, 0xC21B, 0xC21D, 0xC21E, 0xC221, 0xC222, 0xC223 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_9A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC224, 0xC225, 0xC226, 0xC227, 0xC22A, 0xC22C, 0xC22E, /* 0x40 */
- 0xC230, 0xC233, 0xC235, 0xC236, 0xC237, 0xC238, 0xC239, 0xC23A, /* 0x40 */
- 0xC23B, 0xC23C, 0xC23D, 0xC23E, 0xC23F, 0xC240, 0xC241, 0xC242, /* 0x50 */
- 0xC243, 0xC244, 0xC245, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xC246, 0xC247, 0xC249, 0xC24A, 0xC24B, 0xC24C, 0xC24D, /* 0x60 */
- 0xC24E, 0xC24F, 0xC252, 0xC253, 0xC255, 0xC256, 0xC257, 0xC259, /* 0x60 */
- 0xC25A, 0xC25B, 0xC25C, 0xC25D, 0xC25E, 0xC25F, 0xC261, 0xC262, /* 0x70 */
- 0xC263, 0xC264, 0xC266, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xC267, 0xC268, 0xC269, 0xC26A, 0xC26B, 0xC26E, 0xC26F, /* 0x80 */
- 0xC271, 0xC272, 0xC273, 0xC275, 0xC276, 0xC277, 0xC278, 0xC279, /* 0x80 */
- 0xC27A, 0xC27B, 0xC27E, 0xC280, 0xC282, 0xC283, 0xC284, 0xC285, /* 0x90 */
- 0xC286, 0xC287, 0xC28A, 0xC28B, 0xC28C, 0xC28D, 0xC28E, 0xC28F, /* 0x90 */
- 0xC291, 0xC292, 0xC293, 0xC294, 0xC295, 0xC296, 0xC297, 0xC299, /* 0xA0 */
- 0xC29A, 0xC29C, 0xC29E, 0xC29F, 0xC2A0, 0xC2A1, 0xC2A2, 0xC2A3, /* 0xA0 */
- 0xC2A6, 0xC2A7, 0xC2A9, 0xC2AA, 0xC2AB, 0xC2AE, 0xC2AF, 0xC2B0, /* 0xB0 */
- 0xC2B1, 0xC2B2, 0xC2B3, 0xC2B6, 0xC2B8, 0xC2BA, 0xC2BB, 0xC2BC, /* 0xB0 */
- 0xC2BD, 0xC2BE, 0xC2BF, 0xC2C0, 0xC2C1, 0xC2C2, 0xC2C3, 0xC2C4, /* 0xC0 */
- 0xC2C5, 0xC2C6, 0xC2C7, 0xC2C8, 0xC2C9, 0xC2CA, 0xC2CB, 0xC2CC, /* 0xC0 */
- 0xC2CD, 0xC2CE, 0xC2CF, 0xC2D0, 0xC2D1, 0xC2D2, 0xC2D3, 0xC2D4, /* 0xD0 */
- 0xC2D5, 0xC2D6, 0xC2D7, 0xC2D8, 0xC2D9, 0xC2DA, 0xC2DB, 0xC2DE, /* 0xD0 */
- 0xC2DF, 0xC2E1, 0xC2E2, 0xC2E5, 0xC2E6, 0xC2E7, 0xC2E8, 0xC2E9, /* 0xE0 */
- 0xC2EA, 0xC2EE, 0xC2F0, 0xC2F2, 0xC2F3, 0xC2F4, 0xC2F5, 0xC2F7, /* 0xE0 */
- 0xC2FA, 0xC2FD, 0xC2FE, 0xC2FF, 0xC301, 0xC302, 0xC303, 0xC304, /* 0xF0 */
- 0xC305, 0xC306, 0xC307, 0xC30A, 0xC30B, 0xC30E, 0xC30F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_9B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC310, 0xC311, 0xC312, 0xC316, 0xC317, 0xC319, 0xC31A, /* 0x40 */
- 0xC31B, 0xC31D, 0xC31E, 0xC31F, 0xC320, 0xC321, 0xC322, 0xC323, /* 0x40 */
- 0xC326, 0xC327, 0xC32A, 0xC32B, 0xC32C, 0xC32D, 0xC32E, 0xC32F, /* 0x50 */
- 0xC330, 0xC331, 0xC332, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xC333, 0xC334, 0xC335, 0xC336, 0xC337, 0xC338, 0xC339, /* 0x60 */
- 0xC33A, 0xC33B, 0xC33C, 0xC33D, 0xC33E, 0xC33F, 0xC340, 0xC341, /* 0x60 */
- 0xC342, 0xC343, 0xC344, 0xC346, 0xC347, 0xC348, 0xC349, 0xC34A, /* 0x70 */
- 0xC34B, 0xC34C, 0xC34D, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xC34E, 0xC34F, 0xC350, 0xC351, 0xC352, 0xC353, 0xC354, /* 0x80 */
- 0xC355, 0xC356, 0xC357, 0xC358, 0xC359, 0xC35A, 0xC35B, 0xC35C, /* 0x80 */
- 0xC35D, 0xC35E, 0xC35F, 0xC360, 0xC361, 0xC362, 0xC363, 0xC364, /* 0x90 */
- 0xC365, 0xC366, 0xC367, 0xC36A, 0xC36B, 0xC36D, 0xC36E, 0xC36F, /* 0x90 */
- 0xC371, 0xC373, 0xC374, 0xC375, 0xC376, 0xC377, 0xC37A, 0xC37B, /* 0xA0 */
- 0xC37E, 0xC37F, 0xC380, 0xC381, 0xC382, 0xC383, 0xC385, 0xC386, /* 0xA0 */
- 0xC387, 0xC389, 0xC38A, 0xC38B, 0xC38D, 0xC38E, 0xC38F, 0xC390, /* 0xB0 */
- 0xC391, 0xC392, 0xC393, 0xC394, 0xC395, 0xC396, 0xC397, 0xC398, /* 0xB0 */
- 0xC399, 0xC39A, 0xC39B, 0xC39C, 0xC39D, 0xC39E, 0xC39F, 0xC3A0, /* 0xC0 */
- 0xC3A1, 0xC3A2, 0xC3A3, 0xC3A4, 0xC3A5, 0xC3A6, 0xC3A7, 0xC3A8, /* 0xC0 */
- 0xC3A9, 0xC3AA, 0xC3AB, 0xC3AC, 0xC3AD, 0xC3AE, 0xC3AF, 0xC3B0, /* 0xD0 */
- 0xC3B1, 0xC3B2, 0xC3B3, 0xC3B4, 0xC3B5, 0xC3B6, 0xC3B7, 0xC3B8, /* 0xD0 */
- 0xC3B9, 0xC3BA, 0xC3BB, 0xC3BC, 0xC3BD, 0xC3BE, 0xC3BF, 0xC3C1, /* 0xE0 */
- 0xC3C2, 0xC3C3, 0xC3C4, 0xC3C5, 0xC3C6, 0xC3C7, 0xC3C8, 0xC3C9, /* 0xE0 */
- 0xC3CA, 0xC3CB, 0xC3CC, 0xC3CD, 0xC3CE, 0xC3CF, 0xC3D0, 0xC3D1, /* 0xF0 */
- 0xC3D2, 0xC3D3, 0xC3D4, 0xC3D5, 0xC3D6, 0xC3D7, 0xC3DA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_9C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC3DB, 0xC3DD, 0xC3DE, 0xC3E1, 0xC3E3, 0xC3E4, 0xC3E5, /* 0x40 */
- 0xC3E6, 0xC3E7, 0xC3EA, 0xC3EB, 0xC3EC, 0xC3EE, 0xC3EF, 0xC3F0, /* 0x40 */
- 0xC3F1, 0xC3F2, 0xC3F3, 0xC3F6, 0xC3F7, 0xC3F9, 0xC3FA, 0xC3FB, /* 0x50 */
- 0xC3FC, 0xC3FD, 0xC3FE, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xC3FF, 0xC400, 0xC401, 0xC402, 0xC403, 0xC404, 0xC405, /* 0x60 */
- 0xC406, 0xC407, 0xC409, 0xC40A, 0xC40B, 0xC40C, 0xC40D, 0xC40E, /* 0x60 */
- 0xC40F, 0xC411, 0xC412, 0xC413, 0xC414, 0xC415, 0xC416, 0xC417, /* 0x70 */
- 0xC418, 0xC419, 0xC41A, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xC41B, 0xC41C, 0xC41D, 0xC41E, 0xC41F, 0xC420, 0xC421, /* 0x80 */
- 0xC422, 0xC423, 0xC425, 0xC426, 0xC427, 0xC428, 0xC429, 0xC42A, /* 0x80 */
- 0xC42B, 0xC42D, 0xC42E, 0xC42F, 0xC431, 0xC432, 0xC433, 0xC435, /* 0x90 */
- 0xC436, 0xC437, 0xC438, 0xC439, 0xC43A, 0xC43B, 0xC43E, 0xC43F, /* 0x90 */
- 0xC440, 0xC441, 0xC442, 0xC443, 0xC444, 0xC445, 0xC446, 0xC447, /* 0xA0 */
- 0xC449, 0xC44A, 0xC44B, 0xC44C, 0xC44D, 0xC44E, 0xC44F, 0xC450, /* 0xA0 */
- 0xC451, 0xC452, 0xC453, 0xC454, 0xC455, 0xC456, 0xC457, 0xC458, /* 0xB0 */
- 0xC459, 0xC45A, 0xC45B, 0xC45C, 0xC45D, 0xC45E, 0xC45F, 0xC460, /* 0xB0 */
- 0xC461, 0xC462, 0xC463, 0xC466, 0xC467, 0xC469, 0xC46A, 0xC46B, /* 0xC0 */
- 0xC46D, 0xC46E, 0xC46F, 0xC470, 0xC471, 0xC472, 0xC473, 0xC476, /* 0xC0 */
- 0xC477, 0xC478, 0xC47A, 0xC47B, 0xC47C, 0xC47D, 0xC47E, 0xC47F, /* 0xD0 */
- 0xC481, 0xC482, 0xC483, 0xC484, 0xC485, 0xC486, 0xC487, 0xC488, /* 0xD0 */
- 0xC489, 0xC48A, 0xC48B, 0xC48C, 0xC48D, 0xC48E, 0xC48F, 0xC490, /* 0xE0 */
- 0xC491, 0xC492, 0xC493, 0xC495, 0xC496, 0xC497, 0xC498, 0xC499, /* 0xE0 */
- 0xC49A, 0xC49B, 0xC49D, 0xC49E, 0xC49F, 0xC4A0, 0xC4A1, 0xC4A2, /* 0xF0 */
- 0xC4A3, 0xC4A4, 0xC4A5, 0xC4A6, 0xC4A7, 0xC4A8, 0xC4A9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_9D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC4AA, 0xC4AB, 0xC4AC, 0xC4AD, 0xC4AE, 0xC4AF, 0xC4B0, /* 0x40 */
- 0xC4B1, 0xC4B2, 0xC4B3, 0xC4B4, 0xC4B5, 0xC4B6, 0xC4B7, 0xC4B9, /* 0x40 */
- 0xC4BA, 0xC4BB, 0xC4BD, 0xC4BE, 0xC4BF, 0xC4C0, 0xC4C1, 0xC4C2, /* 0x50 */
- 0xC4C3, 0xC4C4, 0xC4C5, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xC4C6, 0xC4C7, 0xC4C8, 0xC4C9, 0xC4CA, 0xC4CB, 0xC4CC, /* 0x60 */
- 0xC4CD, 0xC4CE, 0xC4CF, 0xC4D0, 0xC4D1, 0xC4D2, 0xC4D3, 0xC4D4, /* 0x60 */
- 0xC4D5, 0xC4D6, 0xC4D7, 0xC4D8, 0xC4D9, 0xC4DA, 0xC4DB, 0xC4DC, /* 0x70 */
- 0xC4DD, 0xC4DE, 0xC4DF, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xC4E0, 0xC4E1, 0xC4E2, 0xC4E3, 0xC4E4, 0xC4E5, 0xC4E6, /* 0x80 */
- 0xC4E7, 0xC4E8, 0xC4EA, 0xC4EB, 0xC4EC, 0xC4ED, 0xC4EE, 0xC4EF, /* 0x80 */
- 0xC4F2, 0xC4F3, 0xC4F5, 0xC4F6, 0xC4F7, 0xC4F9, 0xC4FB, 0xC4FC, /* 0x90 */
- 0xC4FD, 0xC4FE, 0xC502, 0xC503, 0xC504, 0xC505, 0xC506, 0xC507, /* 0x90 */
- 0xC508, 0xC509, 0xC50A, 0xC50B, 0xC50D, 0xC50E, 0xC50F, 0xC511, /* 0xA0 */
- 0xC512, 0xC513, 0xC515, 0xC516, 0xC517, 0xC518, 0xC519, 0xC51A, /* 0xA0 */
- 0xC51B, 0xC51D, 0xC51E, 0xC51F, 0xC520, 0xC521, 0xC522, 0xC523, /* 0xB0 */
- 0xC524, 0xC525, 0xC526, 0xC527, 0xC52A, 0xC52B, 0xC52D, 0xC52E, /* 0xB0 */
- 0xC52F, 0xC531, 0xC532, 0xC533, 0xC534, 0xC535, 0xC536, 0xC537, /* 0xC0 */
- 0xC53A, 0xC53C, 0xC53E, 0xC53F, 0xC540, 0xC541, 0xC542, 0xC543, /* 0xC0 */
- 0xC546, 0xC547, 0xC54B, 0xC54F, 0xC550, 0xC551, 0xC552, 0xC556, /* 0xD0 */
- 0xC55A, 0xC55B, 0xC55C, 0xC55F, 0xC562, 0xC563, 0xC565, 0xC566, /* 0xD0 */
- 0xC567, 0xC569, 0xC56A, 0xC56B, 0xC56C, 0xC56D, 0xC56E, 0xC56F, /* 0xE0 */
- 0xC572, 0xC576, 0xC577, 0xC578, 0xC579, 0xC57A, 0xC57B, 0xC57E, /* 0xE0 */
- 0xC57F, 0xC581, 0xC582, 0xC583, 0xC585, 0xC586, 0xC588, 0xC589, /* 0xF0 */
- 0xC58A, 0xC58B, 0xC58E, 0xC590, 0xC592, 0xC593, 0xC594 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_9E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC596, 0xC599, 0xC59A, 0xC59B, 0xC59D, 0xC59E, 0xC59F, /* 0x40 */
- 0xC5A1, 0xC5A2, 0xC5A3, 0xC5A4, 0xC5A5, 0xC5A6, 0xC5A7, 0xC5A8, /* 0x40 */
- 0xC5AA, 0xC5AB, 0xC5AC, 0xC5AD, 0xC5AE, 0xC5AF, 0xC5B0, 0xC5B1, /* 0x50 */
- 0xC5B2, 0xC5B3, 0xC5B6, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xC5B7, 0xC5BA, 0xC5BF, 0xC5C0, 0xC5C1, 0xC5C2, 0xC5C3, /* 0x60 */
- 0xC5CB, 0xC5CD, 0xC5CF, 0xC5D2, 0xC5D3, 0xC5D5, 0xC5D6, 0xC5D7, /* 0x60 */
- 0xC5D9, 0xC5DA, 0xC5DB, 0xC5DC, 0xC5DD, 0xC5DE, 0xC5DF, 0xC5E2, /* 0x70 */
- 0xC5E4, 0xC5E6, 0xC5E7, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xC5E8, 0xC5E9, 0xC5EA, 0xC5EB, 0xC5EF, 0xC5F1, 0xC5F2, /* 0x80 */
- 0xC5F3, 0xC5F5, 0xC5F8, 0xC5F9, 0xC5FA, 0xC5FB, 0xC602, 0xC603, /* 0x80 */
- 0xC604, 0xC609, 0xC60A, 0xC60B, 0xC60D, 0xC60E, 0xC60F, 0xC611, /* 0x90 */
- 0xC612, 0xC613, 0xC614, 0xC615, 0xC616, 0xC617, 0xC61A, 0xC61D, /* 0x90 */
- 0xC61E, 0xC61F, 0xC620, 0xC621, 0xC622, 0xC623, 0xC626, 0xC627, /* 0xA0 */
- 0xC629, 0xC62A, 0xC62B, 0xC62F, 0xC631, 0xC632, 0xC636, 0xC638, /* 0xA0 */
- 0xC63A, 0xC63C, 0xC63D, 0xC63E, 0xC63F, 0xC642, 0xC643, 0xC645, /* 0xB0 */
- 0xC646, 0xC647, 0xC649, 0xC64A, 0xC64B, 0xC64C, 0xC64D, 0xC64E, /* 0xB0 */
- 0xC64F, 0xC652, 0xC656, 0xC657, 0xC658, 0xC659, 0xC65A, 0xC65B, /* 0xC0 */
- 0xC65E, 0xC65F, 0xC661, 0xC662, 0xC663, 0xC664, 0xC665, 0xC666, /* 0xC0 */
- 0xC667, 0xC668, 0xC669, 0xC66A, 0xC66B, 0xC66D, 0xC66E, 0xC670, /* 0xD0 */
- 0xC672, 0xC673, 0xC674, 0xC675, 0xC676, 0xC677, 0xC67A, 0xC67B, /* 0xD0 */
- 0xC67D, 0xC67E, 0xC67F, 0xC681, 0xC682, 0xC683, 0xC684, 0xC685, /* 0xE0 */
- 0xC686, 0xC687, 0xC68A, 0xC68C, 0xC68E, 0xC68F, 0xC690, 0xC691, /* 0xE0 */
- 0xC692, 0xC693, 0xC696, 0xC697, 0xC699, 0xC69A, 0xC69B, 0xC69D, /* 0xF0 */
- 0xC69E, 0xC69F, 0xC6A0, 0xC6A1, 0xC6A2, 0xC6A3, 0xC6A6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_9F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC6A8, 0xC6AA, 0xC6AB, 0xC6AC, 0xC6AD, 0xC6AE, 0xC6AF, /* 0x40 */
- 0xC6B2, 0xC6B3, 0xC6B5, 0xC6B6, 0xC6B7, 0xC6BB, 0xC6BC, 0xC6BD, /* 0x40 */
- 0xC6BE, 0xC6BF, 0xC6C2, 0xC6C4, 0xC6C6, 0xC6C7, 0xC6C8, 0xC6C9, /* 0x50 */
- 0xC6CA, 0xC6CB, 0xC6CE, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xC6CF, 0xC6D1, 0xC6D2, 0xC6D3, 0xC6D5, 0xC6D6, 0xC6D7, /* 0x60 */
- 0xC6D8, 0xC6D9, 0xC6DA, 0xC6DB, 0xC6DE, 0xC6DF, 0xC6E2, 0xC6E3, /* 0x60 */
- 0xC6E4, 0xC6E5, 0xC6E6, 0xC6E7, 0xC6EA, 0xC6EB, 0xC6ED, 0xC6EE, /* 0x70 */
- 0xC6EF, 0xC6F1, 0xC6F2, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xC6F3, 0xC6F4, 0xC6F5, 0xC6F6, 0xC6F7, 0xC6FA, 0xC6FB, /* 0x80 */
- 0xC6FC, 0xC6FE, 0xC6FF, 0xC700, 0xC701, 0xC702, 0xC703, 0xC706, /* 0x80 */
- 0xC707, 0xC709, 0xC70A, 0xC70B, 0xC70D, 0xC70E, 0xC70F, 0xC710, /* 0x90 */
- 0xC711, 0xC712, 0xC713, 0xC716, 0xC718, 0xC71A, 0xC71B, 0xC71C, /* 0x90 */
- 0xC71D, 0xC71E, 0xC71F, 0xC722, 0xC723, 0xC725, 0xC726, 0xC727, /* 0xA0 */
- 0xC729, 0xC72A, 0xC72B, 0xC72C, 0xC72D, 0xC72E, 0xC72F, 0xC732, /* 0xA0 */
- 0xC734, 0xC736, 0xC738, 0xC739, 0xC73A, 0xC73B, 0xC73E, 0xC73F, /* 0xB0 */
- 0xC741, 0xC742, 0xC743, 0xC745, 0xC746, 0xC747, 0xC748, 0xC749, /* 0xB0 */
- 0xC74B, 0xC74E, 0xC750, 0xC759, 0xC75A, 0xC75B, 0xC75D, 0xC75E, /* 0xC0 */
- 0xC75F, 0xC761, 0xC762, 0xC763, 0xC764, 0xC765, 0xC766, 0xC767, /* 0xC0 */
- 0xC769, 0xC76A, 0xC76C, 0xC76D, 0xC76E, 0xC76F, 0xC770, 0xC771, /* 0xD0 */
- 0xC772, 0xC773, 0xC776, 0xC777, 0xC779, 0xC77A, 0xC77B, 0xC77F, /* 0xD0 */
- 0xC780, 0xC781, 0xC782, 0xC786, 0xC78B, 0xC78C, 0xC78D, 0xC78F, /* 0xE0 */
- 0xC792, 0xC793, 0xC795, 0xC799, 0xC79B, 0xC79C, 0xC79D, 0xC79E, /* 0xE0 */
- 0xC79F, 0xC7A2, 0xC7A7, 0xC7A8, 0xC7A9, 0xC7AA, 0xC7AB, 0xC7AE, /* 0xF0 */
- 0xC7AF, 0xC7B1, 0xC7B2, 0xC7B3, 0xC7B5, 0xC7B6, 0xC7B7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_A0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC7B8, 0xC7B9, 0xC7BA, 0xC7BB, 0xC7BE, 0xC7C2, 0xC7C3, /* 0x40 */
- 0xC7C4, 0xC7C5, 0xC7C6, 0xC7C7, 0xC7CA, 0xC7CB, 0xC7CD, 0xC7CF, /* 0x40 */
- 0xC7D1, 0xC7D2, 0xC7D3, 0xC7D4, 0xC7D5, 0xC7D6, 0xC7D7, 0xC7D9, /* 0x50 */
- 0xC7DA, 0xC7DB, 0xC7DC, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xC7DE, 0xC7DF, 0xC7E0, 0xC7E1, 0xC7E2, 0xC7E3, 0xC7E5, /* 0x60 */
- 0xC7E6, 0xC7E7, 0xC7E9, 0xC7EA, 0xC7EB, 0xC7ED, 0xC7EE, 0xC7EF, /* 0x60 */
- 0xC7F0, 0xC7F1, 0xC7F2, 0xC7F3, 0xC7F4, 0xC7F5, 0xC7F6, 0xC7F7, /* 0x70 */
- 0xC7F8, 0xC7F9, 0xC7FA, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xC7FB, 0xC7FC, 0xC7FD, 0xC7FE, 0xC7FF, 0xC802, 0xC803, /* 0x80 */
- 0xC805, 0xC806, 0xC807, 0xC809, 0xC80B, 0xC80C, 0xC80D, 0xC80E, /* 0x80 */
- 0xC80F, 0xC812, 0xC814, 0xC817, 0xC818, 0xC819, 0xC81A, 0xC81B, /* 0x90 */
- 0xC81E, 0xC81F, 0xC821, 0xC822, 0xC823, 0xC825, 0xC826, 0xC827, /* 0x90 */
- 0xC828, 0xC829, 0xC82A, 0xC82B, 0xC82E, 0xC830, 0xC832, 0xC833, /* 0xA0 */
- 0xC834, 0xC835, 0xC836, 0xC837, 0xC839, 0xC83A, 0xC83B, 0xC83D, /* 0xA0 */
- 0xC83E, 0xC83F, 0xC841, 0xC842, 0xC843, 0xC844, 0xC845, 0xC846, /* 0xB0 */
- 0xC847, 0xC84A, 0xC84B, 0xC84E, 0xC84F, 0xC850, 0xC851, 0xC852, /* 0xB0 */
- 0xC853, 0xC855, 0xC856, 0xC857, 0xC858, 0xC859, 0xC85A, 0xC85B, /* 0xC0 */
- 0xC85C, 0xC85D, 0xC85E, 0xC85F, 0xC860, 0xC861, 0xC862, 0xC863, /* 0xC0 */
- 0xC864, 0xC865, 0xC866, 0xC867, 0xC868, 0xC869, 0xC86A, 0xC86B, /* 0xD0 */
- 0xC86C, 0xC86D, 0xC86E, 0xC86F, 0xC872, 0xC873, 0xC875, 0xC876, /* 0xD0 */
- 0xC877, 0xC879, 0xC87B, 0xC87C, 0xC87D, 0xC87E, 0xC87F, 0xC882, /* 0xE0 */
- 0xC884, 0xC888, 0xC889, 0xC88A, 0xC88E, 0xC88F, 0xC890, 0xC891, /* 0xE0 */
- 0xC892, 0xC893, 0xC895, 0xC896, 0xC897, 0xC898, 0xC899, 0xC89A, /* 0xF0 */
- 0xC89B, 0xC89C, 0xC89E, 0xC8A0, 0xC8A2, 0xC8A3, 0xC8A4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_A1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC8A5, 0xC8A6, 0xC8A7, 0xC8A9, 0xC8AA, 0xC8AB, 0xC8AC, /* 0x40 */
- 0xC8AD, 0xC8AE, 0xC8AF, 0xC8B0, 0xC8B1, 0xC8B2, 0xC8B3, 0xC8B4, /* 0x40 */
- 0xC8B5, 0xC8B6, 0xC8B7, 0xC8B8, 0xC8B9, 0xC8BA, 0xC8BB, 0xC8BE, /* 0x50 */
- 0xC8BF, 0xC8C0, 0xC8C1, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xC8C2, 0xC8C3, 0xC8C5, 0xC8C6, 0xC8C7, 0xC8C9, 0xC8CA, /* 0x60 */
- 0xC8CB, 0xC8CD, 0xC8CE, 0xC8CF, 0xC8D0, 0xC8D1, 0xC8D2, 0xC8D3, /* 0x60 */
- 0xC8D6, 0xC8D8, 0xC8DA, 0xC8DB, 0xC8DC, 0xC8DD, 0xC8DE, 0xC8DF, /* 0x70 */
- 0xC8E2, 0xC8E3, 0xC8E5, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xC8E6, 0xC8E7, 0xC8E8, 0xC8E9, 0xC8EA, 0xC8EB, 0xC8EC, /* 0x80 */
- 0xC8ED, 0xC8EE, 0xC8EF, 0xC8F0, 0xC8F1, 0xC8F2, 0xC8F3, 0xC8F4, /* 0x80 */
- 0xC8F6, 0xC8F7, 0xC8F8, 0xC8F9, 0xC8FA, 0xC8FB, 0xC8FE, 0xC8FF, /* 0x90 */
- 0xC901, 0xC902, 0xC903, 0xC907, 0xC908, 0xC909, 0xC90A, 0xC90B, /* 0x90 */
- 0xC90E, 0x3000, 0x3001, 0x3002, 0x00B7, 0x2025, 0x2026, 0x00A8, /* 0xA0 */
- 0x3003, 0x00AD, 0x2015, 0x2225, 0xFF3C, 0x223C, 0x2018, 0x2019, /* 0xA0 */
- 0x201C, 0x201D, 0x3014, 0x3015, 0x3008, 0x3009, 0x300A, 0x300B, /* 0xB0 */
- 0x300C, 0x300D, 0x300E, 0x300F, 0x3010, 0x3011, 0x00B1, 0x00D7, /* 0xB0 */
- 0x00F7, 0x2260, 0x2264, 0x2265, 0x221E, 0x2234, 0x00B0, 0x2032, /* 0xC0 */
- 0x2033, 0x2103, 0x212B, 0xFFE0, 0xFFE1, 0xFFE5, 0x2642, 0x2640, /* 0xC0 */
- 0x2220, 0x22A5, 0x2312, 0x2202, 0x2207, 0x2261, 0x2252, 0x00A7, /* 0xD0 */
- 0x203B, 0x2606, 0x2605, 0x25CB, 0x25CF, 0x25CE, 0x25C7, 0x25C6, /* 0xD0 */
- 0x25A1, 0x25A0, 0x25B3, 0x25B2, 0x25BD, 0x25BC, 0x2192, 0x2190, /* 0xE0 */
- 0x2191, 0x2193, 0x2194, 0x3013, 0x226A, 0x226B, 0x221A, 0x223D, /* 0xE0 */
- 0x221D, 0x2235, 0x222B, 0x222C, 0x2208, 0x220B, 0x2286, 0x2287, /* 0xF0 */
- 0x2282, 0x2283, 0x222A, 0x2229, 0x2227, 0x2228, 0xFFE2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_A2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC910, 0xC912, 0xC913, 0xC914, 0xC915, 0xC916, 0xC917, /* 0x40 */
- 0xC919, 0xC91A, 0xC91B, 0xC91C, 0xC91D, 0xC91E, 0xC91F, 0xC920, /* 0x40 */
- 0xC921, 0xC922, 0xC923, 0xC924, 0xC925, 0xC926, 0xC927, 0xC928, /* 0x50 */
- 0xC929, 0xC92A, 0xC92B, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xC92D, 0xC92E, 0xC92F, 0xC930, 0xC931, 0xC932, 0xC933, /* 0x60 */
- 0xC935, 0xC936, 0xC937, 0xC938, 0xC939, 0xC93A, 0xC93B, 0xC93C, /* 0x60 */
- 0xC93D, 0xC93E, 0xC93F, 0xC940, 0xC941, 0xC942, 0xC943, 0xC944, /* 0x70 */
- 0xC945, 0xC946, 0xC947, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xC948, 0xC949, 0xC94A, 0xC94B, 0xC94C, 0xC94D, 0xC94E, /* 0x80 */
- 0xC94F, 0xC952, 0xC953, 0xC955, 0xC956, 0xC957, 0xC959, 0xC95A, /* 0x80 */
- 0xC95B, 0xC95C, 0xC95D, 0xC95E, 0xC95F, 0xC962, 0xC964, 0xC965, /* 0x90 */
- 0xC966, 0xC967, 0xC968, 0xC969, 0xC96A, 0xC96B, 0xC96D, 0xC96E, /* 0x90 */
- 0xC96F, 0x21D2, 0x21D4, 0x2200, 0x2203, 0x00B4, 0xFF5E, 0x02C7, /* 0xA0 */
- 0x02D8, 0x02DD, 0x02DA, 0x02D9, 0x00B8, 0x02DB, 0x00A1, 0x00BF, /* 0xA0 */
- 0x02D0, 0x222E, 0x2211, 0x220F, 0x00A4, 0x2109, 0x2030, 0x25C1, /* 0xB0 */
- 0x25C0, 0x25B7, 0x25B6, 0x2664, 0x2660, 0x2661, 0x2665, 0x2667, /* 0xB0 */
- 0x2663, 0x2299, 0x25C8, 0x25A3, 0x25D0, 0x25D1, 0x2592, 0x25A4, /* 0xC0 */
- 0x25A5, 0x25A8, 0x25A7, 0x25A6, 0x25A9, 0x2668, 0x260F, 0x260E, /* 0xC0 */
- 0x261C, 0x261E, 0x00B6, 0x2020, 0x2021, 0x2195, 0x2197, 0x2199, /* 0xD0 */
- 0x2196, 0x2198, 0x266D, 0x2669, 0x266A, 0x266C, 0x327F, 0x321C, /* 0xD0 */
- 0x2116, 0x33C7, 0x2122, 0x33C2, 0x33D8, 0x2121, 0x20AC, 0x00AE /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_A3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC971, 0xC972, 0xC973, 0xC975, 0xC976, 0xC977, 0xC978, /* 0x40 */
- 0xC979, 0xC97A, 0xC97B, 0xC97D, 0xC97E, 0xC97F, 0xC980, 0xC981, /* 0x40 */
- 0xC982, 0xC983, 0xC984, 0xC985, 0xC986, 0xC987, 0xC98A, 0xC98B, /* 0x50 */
- 0xC98D, 0xC98E, 0xC98F, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xC991, 0xC992, 0xC993, 0xC994, 0xC995, 0xC996, 0xC997, /* 0x60 */
- 0xC99A, 0xC99C, 0xC99E, 0xC99F, 0xC9A0, 0xC9A1, 0xC9A2, 0xC9A3, /* 0x60 */
- 0xC9A4, 0xC9A5, 0xC9A6, 0xC9A7, 0xC9A8, 0xC9A9, 0xC9AA, 0xC9AB, /* 0x70 */
- 0xC9AC, 0xC9AD, 0xC9AE, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xC9AF, 0xC9B0, 0xC9B1, 0xC9B2, 0xC9B3, 0xC9B4, 0xC9B5, /* 0x80 */
- 0xC9B6, 0xC9B7, 0xC9B8, 0xC9B9, 0xC9BA, 0xC9BB, 0xC9BC, 0xC9BD, /* 0x80 */
- 0xC9BE, 0xC9BF, 0xC9C2, 0xC9C3, 0xC9C5, 0xC9C6, 0xC9C9, 0xC9CB, /* 0x90 */
- 0xC9CC, 0xC9CD, 0xC9CE, 0xC9CF, 0xC9D2, 0xC9D4, 0xC9D7, 0xC9D8, /* 0x90 */
- 0xC9DB, 0xFF01, 0xFF02, 0xFF03, 0xFF04, 0xFF05, 0xFF06, 0xFF07, /* 0xA0 */
- 0xFF08, 0xFF09, 0xFF0A, 0xFF0B, 0xFF0C, 0xFF0D, 0xFF0E, 0xFF0F, /* 0xA0 */
- 0xFF10, 0xFF11, 0xFF12, 0xFF13, 0xFF14, 0xFF15, 0xFF16, 0xFF17, /* 0xB0 */
- 0xFF18, 0xFF19, 0xFF1A, 0xFF1B, 0xFF1C, 0xFF1D, 0xFF1E, 0xFF1F, /* 0xB0 */
- 0xFF20, 0xFF21, 0xFF22, 0xFF23, 0xFF24, 0xFF25, 0xFF26, 0xFF27, /* 0xC0 */
- 0xFF28, 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C, 0xFF2D, 0xFF2E, 0xFF2F, /* 0xC0 */
- 0xFF30, 0xFF31, 0xFF32, 0xFF33, 0xFF34, 0xFF35, 0xFF36, 0xFF37, /* 0xD0 */
- 0xFF38, 0xFF39, 0xFF3A, 0xFF3B, 0xFFE6, 0xFF3D, 0xFF3E, 0xFF3F, /* 0xD0 */
- 0xFF40, 0xFF41, 0xFF42, 0xFF43, 0xFF44, 0xFF45, 0xFF46, 0xFF47, /* 0xE0 */
- 0xFF48, 0xFF49, 0xFF4A, 0xFF4B, 0xFF4C, 0xFF4D, 0xFF4E, 0xFF4F, /* 0xE0 */
- 0xFF50, 0xFF51, 0xFF52, 0xFF53, 0xFF54, 0xFF55, 0xFF56, 0xFF57, /* 0xF0 */
- 0xFF58, 0xFF59, 0xFF5A, 0xFF5B, 0xFF5C, 0xFF5D, 0xFFE3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_A4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC9DE, 0xC9DF, 0xC9E1, 0xC9E3, 0xC9E5, 0xC9E6, 0xC9E8, /* 0x40 */
- 0xC9E9, 0xC9EA, 0xC9EB, 0xC9EE, 0xC9F2, 0xC9F3, 0xC9F4, 0xC9F5, /* 0x40 */
- 0xC9F6, 0xC9F7, 0xC9FA, 0xC9FB, 0xC9FD, 0xC9FE, 0xC9FF, 0xCA01, /* 0x50 */
- 0xCA02, 0xCA03, 0xCA04, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCA05, 0xCA06, 0xCA07, 0xCA0A, 0xCA0E, 0xCA0F, 0xCA10, /* 0x60 */
- 0xCA11, 0xCA12, 0xCA13, 0xCA15, 0xCA16, 0xCA17, 0xCA19, 0xCA1A, /* 0x60 */
- 0xCA1B, 0xCA1C, 0xCA1D, 0xCA1E, 0xCA1F, 0xCA20, 0xCA21, 0xCA22, /* 0x70 */
- 0xCA23, 0xCA24, 0xCA25, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xCA26, 0xCA27, 0xCA28, 0xCA2A, 0xCA2B, 0xCA2C, 0xCA2D, /* 0x80 */
- 0xCA2E, 0xCA2F, 0xCA30, 0xCA31, 0xCA32, 0xCA33, 0xCA34, 0xCA35, /* 0x80 */
- 0xCA36, 0xCA37, 0xCA38, 0xCA39, 0xCA3A, 0xCA3B, 0xCA3C, 0xCA3D, /* 0x90 */
- 0xCA3E, 0xCA3F, 0xCA40, 0xCA41, 0xCA42, 0xCA43, 0xCA44, 0xCA45, /* 0x90 */
- 0xCA46, 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, /* 0xA0 */
- 0x3138, 0x3139, 0x313A, 0x313B, 0x313C, 0x313D, 0x313E, 0x313F, /* 0xA0 */
- 0x3140, 0x3141, 0x3142, 0x3143, 0x3144, 0x3145, 0x3146, 0x3147, /* 0xB0 */
- 0x3148, 0x3149, 0x314A, 0x314B, 0x314C, 0x314D, 0x314E, 0x314F, /* 0xB0 */
- 0x3150, 0x3151, 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, /* 0xC0 */
- 0x3158, 0x3159, 0x315A, 0x315B, 0x315C, 0x315D, 0x315E, 0x315F, /* 0xC0 */
- 0x3160, 0x3161, 0x3162, 0x3163, 0x3164, 0x3165, 0x3166, 0x3167, /* 0xD0 */
- 0x3168, 0x3169, 0x316A, 0x316B, 0x316C, 0x316D, 0x316E, 0x316F, /* 0xD0 */
- 0x3170, 0x3171, 0x3172, 0x3173, 0x3174, 0x3175, 0x3176, 0x3177, /* 0xE0 */
- 0x3178, 0x3179, 0x317A, 0x317B, 0x317C, 0x317D, 0x317E, 0x317F, /* 0xE0 */
- 0x3180, 0x3181, 0x3182, 0x3183, 0x3184, 0x3185, 0x3186, 0x3187, /* 0xF0 */
- 0x3188, 0x3189, 0x318A, 0x318B, 0x318C, 0x318D, 0x318E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_A5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCA47, 0xCA48, 0xCA49, 0xCA4A, 0xCA4B, 0xCA4E, 0xCA4F, /* 0x40 */
- 0xCA51, 0xCA52, 0xCA53, 0xCA55, 0xCA56, 0xCA57, 0xCA58, 0xCA59, /* 0x40 */
- 0xCA5A, 0xCA5B, 0xCA5E, 0xCA62, 0xCA63, 0xCA64, 0xCA65, 0xCA66, /* 0x50 */
- 0xCA67, 0xCA69, 0xCA6A, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCA6B, 0xCA6C, 0xCA6D, 0xCA6E, 0xCA6F, 0xCA70, 0xCA71, /* 0x60 */
- 0xCA72, 0xCA73, 0xCA74, 0xCA75, 0xCA76, 0xCA77, 0xCA78, 0xCA79, /* 0x60 */
- 0xCA7A, 0xCA7B, 0xCA7C, 0xCA7E, 0xCA7F, 0xCA80, 0xCA81, 0xCA82, /* 0x70 */
- 0xCA83, 0xCA85, 0xCA86, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xCA87, 0xCA88, 0xCA89, 0xCA8A, 0xCA8B, 0xCA8C, 0xCA8D, /* 0x80 */
- 0xCA8E, 0xCA8F, 0xCA90, 0xCA91, 0xCA92, 0xCA93, 0xCA94, 0xCA95, /* 0x80 */
- 0xCA96, 0xCA97, 0xCA99, 0xCA9A, 0xCA9B, 0xCA9C, 0xCA9D, 0xCA9E, /* 0x90 */
- 0xCA9F, 0xCAA0, 0xCAA1, 0xCAA2, 0xCAA3, 0xCAA4, 0xCAA5, 0xCAA6, /* 0x90 */
- 0xCAA7, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, /* 0xA0 */
- 0x2177, 0x2178, 0x2179, 0, 0, 0, 0, 0, /* 0xA0 */
- 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, /* 0xB0 */
- 0x2168, 0x2169, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, /* 0xC0 */
- 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, /* 0xC0 */
- 0x03A0, 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, /* 0xD0 */
- 0x03A9, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, /* 0xE0 */
- 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, /* 0xE0 */
- 0x03C0, 0x03C1, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, /* 0xF0 */
- 0x03C9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_A6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCAA8, 0xCAA9, 0xCAAA, 0xCAAB, 0xCAAC, 0xCAAD, 0xCAAE, /* 0x40 */
- 0xCAAF, 0xCAB0, 0xCAB1, 0xCAB2, 0xCAB3, 0xCAB4, 0xCAB5, 0xCAB6, /* 0x40 */
- 0xCAB7, 0xCAB8, 0xCAB9, 0xCABA, 0xCABB, 0xCABE, 0xCABF, 0xCAC1, /* 0x50 */
- 0xCAC2, 0xCAC3, 0xCAC5, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCAC6, 0xCAC7, 0xCAC8, 0xCAC9, 0xCACA, 0xCACB, 0xCACE, /* 0x60 */
- 0xCAD0, 0xCAD2, 0xCAD4, 0xCAD5, 0xCAD6, 0xCAD7, 0xCADA, 0xCADB, /* 0x60 */
- 0xCADC, 0xCADD, 0xCADE, 0xCADF, 0xCAE1, 0xCAE2, 0xCAE3, 0xCAE4, /* 0x70 */
- 0xCAE5, 0xCAE6, 0xCAE7, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xCAE8, 0xCAE9, 0xCAEA, 0xCAEB, 0xCAED, 0xCAEE, 0xCAEF, /* 0x80 */
- 0xCAF0, 0xCAF1, 0xCAF2, 0xCAF3, 0xCAF5, 0xCAF6, 0xCAF7, 0xCAF8, /* 0x80 */
- 0xCAF9, 0xCAFA, 0xCAFB, 0xCAFC, 0xCAFD, 0xCAFE, 0xCAFF, 0xCB00, /* 0x90 */
- 0xCB01, 0xCB02, 0xCB03, 0xCB04, 0xCB05, 0xCB06, 0xCB07, 0xCB09, /* 0x90 */
- 0xCB0A, 0x2500, 0x2502, 0x250C, 0x2510, 0x2518, 0x2514, 0x251C, /* 0xA0 */
- 0x252C, 0x2524, 0x2534, 0x253C, 0x2501, 0x2503, 0x250F, 0x2513, /* 0xA0 */
- 0x251B, 0x2517, 0x2523, 0x2533, 0x252B, 0x253B, 0x254B, 0x2520, /* 0xB0 */
- 0x252F, 0x2528, 0x2537, 0x253F, 0x251D, 0x2530, 0x2525, 0x2538, /* 0xB0 */
- 0x2542, 0x2512, 0x2511, 0x251A, 0x2519, 0x2516, 0x2515, 0x250E, /* 0xC0 */
- 0x250D, 0x251E, 0x251F, 0x2521, 0x2522, 0x2526, 0x2527, 0x2529, /* 0xC0 */
- 0x252A, 0x252D, 0x252E, 0x2531, 0x2532, 0x2535, 0x2536, 0x2539, /* 0xD0 */
- 0x253A, 0x253D, 0x253E, 0x2540, 0x2541, 0x2543, 0x2544, 0x2545, /* 0xD0 */
- 0x2546, 0x2547, 0x2548, 0x2549, 0x254A /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_A7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCB0B, 0xCB0C, 0xCB0D, 0xCB0E, 0xCB0F, 0xCB11, 0xCB12, /* 0x40 */
- 0xCB13, 0xCB15, 0xCB16, 0xCB17, 0xCB19, 0xCB1A, 0xCB1B, 0xCB1C, /* 0x40 */
- 0xCB1D, 0xCB1E, 0xCB1F, 0xCB22, 0xCB23, 0xCB24, 0xCB25, 0xCB26, /* 0x50 */
- 0xCB27, 0xCB28, 0xCB29, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCB2A, 0xCB2B, 0xCB2C, 0xCB2D, 0xCB2E, 0xCB2F, 0xCB30, /* 0x60 */
- 0xCB31, 0xCB32, 0xCB33, 0xCB34, 0xCB35, 0xCB36, 0xCB37, 0xCB38, /* 0x60 */
- 0xCB39, 0xCB3A, 0xCB3B, 0xCB3C, 0xCB3D, 0xCB3E, 0xCB3F, 0xCB40, /* 0x70 */
- 0xCB42, 0xCB43, 0xCB44, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xCB45, 0xCB46, 0xCB47, 0xCB4A, 0xCB4B, 0xCB4D, 0xCB4E, /* 0x80 */
- 0xCB4F, 0xCB51, 0xCB52, 0xCB53, 0xCB54, 0xCB55, 0xCB56, 0xCB57, /* 0x80 */
- 0xCB5A, 0xCB5B, 0xCB5C, 0xCB5E, 0xCB5F, 0xCB60, 0xCB61, 0xCB62, /* 0x90 */
- 0xCB63, 0xCB65, 0xCB66, 0xCB67, 0xCB68, 0xCB69, 0xCB6A, 0xCB6B, /* 0x90 */
- 0xCB6C, 0x3395, 0x3396, 0x3397, 0x2113, 0x3398, 0x33C4, 0x33A3, /* 0xA0 */
- 0x33A4, 0x33A5, 0x33A6, 0x3399, 0x339A, 0x339B, 0x339C, 0x339D, /* 0xA0 */
- 0x339E, 0x339F, 0x33A0, 0x33A1, 0x33A2, 0x33CA, 0x338D, 0x338E, /* 0xB0 */
- 0x338F, 0x33CF, 0x3388, 0x3389, 0x33C8, 0x33A7, 0x33A8, 0x33B0, /* 0xB0 */
- 0x33B1, 0x33B2, 0x33B3, 0x33B4, 0x33B5, 0x33B6, 0x33B7, 0x33B8, /* 0xC0 */
- 0x33B9, 0x3380, 0x3381, 0x3382, 0x3383, 0x3384, 0x33BA, 0x33BB, /* 0xC0 */
- 0x33BC, 0x33BD, 0x33BE, 0x33BF, 0x3390, 0x3391, 0x3392, 0x3393, /* 0xD0 */
- 0x3394, 0x2126, 0x33C0, 0x33C1, 0x338A, 0x338B, 0x338C, 0x33D6, /* 0xD0 */
- 0x33C5, 0x33AD, 0x33AE, 0x33AF, 0x33DB, 0x33A9, 0x33AA, 0x33AB, /* 0xE0 */
- 0x33AC, 0x33DD, 0x33D0, 0x33D3, 0x33C3, 0x33C9, 0x33DC, 0x33C6 /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_A8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCB6D, 0xCB6E, 0xCB6F, 0xCB70, 0xCB71, 0xCB72, 0xCB73, /* 0x40 */
- 0xCB74, 0xCB75, 0xCB76, 0xCB77, 0xCB7A, 0xCB7B, 0xCB7C, 0xCB7D, /* 0x40 */
- 0xCB7E, 0xCB7F, 0xCB80, 0xCB81, 0xCB82, 0xCB83, 0xCB84, 0xCB85, /* 0x50 */
- 0xCB86, 0xCB87, 0xCB88, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCB89, 0xCB8A, 0xCB8B, 0xCB8C, 0xCB8D, 0xCB8E, 0xCB8F, /* 0x60 */
- 0xCB90, 0xCB91, 0xCB92, 0xCB93, 0xCB94, 0xCB95, 0xCB96, 0xCB97, /* 0x60 */
- 0xCB98, 0xCB99, 0xCB9A, 0xCB9B, 0xCB9D, 0xCB9E, 0xCB9F, 0xCBA0, /* 0x70 */
- 0xCBA1, 0xCBA2, 0xCBA3, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xCBA4, 0xCBA5, 0xCBA6, 0xCBA7, 0xCBA8, 0xCBA9, 0xCBAA, /* 0x80 */
- 0xCBAB, 0xCBAC, 0xCBAD, 0xCBAE, 0xCBAF, 0xCBB0, 0xCBB1, 0xCBB2, /* 0x80 */
- 0xCBB3, 0xCBB4, 0xCBB5, 0xCBB6, 0xCBB7, 0xCBB9, 0xCBBA, 0xCBBB, /* 0x90 */
- 0xCBBC, 0xCBBD, 0xCBBE, 0xCBBF, 0xCBC0, 0xCBC1, 0xCBC2, 0xCBC3, /* 0x90 */
- 0xCBC4, 0x00C6, 0x00D0, 0x00AA, 0x0126, 0, 0x0132, 0, /* 0xA0 */
- 0x013F, 0x0141, 0x00D8, 0x0152, 0x00BA, 0x00DE, 0x0166, 0x014A, /* 0xA0 */
- 0, 0x3260, 0x3261, 0x3262, 0x3263, 0x3264, 0x3265, 0x3266, /* 0xB0 */
- 0x3267, 0x3268, 0x3269, 0x326A, 0x326B, 0x326C, 0x326D, 0x326E, /* 0xB0 */
- 0x326F, 0x3270, 0x3271, 0x3272, 0x3273, 0x3274, 0x3275, 0x3276, /* 0xC0 */
- 0x3277, 0x3278, 0x3279, 0x327A, 0x327B, 0x24D0, 0x24D1, 0x24D2, /* 0xC0 */
- 0x24D3, 0x24D4, 0x24D5, 0x24D6, 0x24D7, 0x24D8, 0x24D9, 0x24DA, /* 0xD0 */
- 0x24DB, 0x24DC, 0x24DD, 0x24DE, 0x24DF, 0x24E0, 0x24E1, 0x24E2, /* 0xD0 */
- 0x24E3, 0x24E4, 0x24E5, 0x24E6, 0x24E7, 0x24E8, 0x24E9, 0x2460, /* 0xE0 */
- 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, /* 0xE0 */
- 0x2469, 0x246A, 0x246B, 0x246C, 0x246D, 0x246E, 0x00BD, 0x2153, /* 0xF0 */
- 0x2154, 0x00BC, 0x00BE, 0x215B, 0x215C, 0x215D, 0x215E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_A9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCBC5, 0xCBC6, 0xCBC7, 0xCBC8, 0xCBC9, 0xCBCA, 0xCBCB, /* 0x40 */
- 0xCBCC, 0xCBCD, 0xCBCE, 0xCBCF, 0xCBD0, 0xCBD1, 0xCBD2, 0xCBD3, /* 0x40 */
- 0xCBD5, 0xCBD6, 0xCBD7, 0xCBD8, 0xCBD9, 0xCBDA, 0xCBDB, 0xCBDC, /* 0x50 */
- 0xCBDD, 0xCBDE, 0xCBDF, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCBE0, 0xCBE1, 0xCBE2, 0xCBE3, 0xCBE5, 0xCBE6, 0xCBE8, /* 0x60 */
- 0xCBEA, 0xCBEB, 0xCBEC, 0xCBED, 0xCBEE, 0xCBEF, 0xCBF0, 0xCBF1, /* 0x60 */
- 0xCBF2, 0xCBF3, 0xCBF4, 0xCBF5, 0xCBF6, 0xCBF7, 0xCBF8, 0xCBF9, /* 0x70 */
- 0xCBFA, 0xCBFB, 0xCBFC, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xCBFD, 0xCBFE, 0xCBFF, 0xCC00, 0xCC01, 0xCC02, 0xCC03, /* 0x80 */
- 0xCC04, 0xCC05, 0xCC06, 0xCC07, 0xCC08, 0xCC09, 0xCC0A, 0xCC0B, /* 0x80 */
- 0xCC0E, 0xCC0F, 0xCC11, 0xCC12, 0xCC13, 0xCC15, 0xCC16, 0xCC17, /* 0x90 */
- 0xCC18, 0xCC19, 0xCC1A, 0xCC1B, 0xCC1E, 0xCC1F, 0xCC20, 0xCC23, /* 0x90 */
- 0xCC24, 0x00E6, 0x0111, 0x00F0, 0x0127, 0x0131, 0x0133, 0x0138, /* 0xA0 */
- 0x0140, 0x0142, 0x00F8, 0x0153, 0x00DF, 0x00FE, 0x0167, 0x014B, /* 0xA0 */
- 0x0149, 0x3200, 0x3201, 0x3202, 0x3203, 0x3204, 0x3205, 0x3206, /* 0xB0 */
- 0x3207, 0x3208, 0x3209, 0x320A, 0x320B, 0x320C, 0x320D, 0x320E, /* 0xB0 */
- 0x320F, 0x3210, 0x3211, 0x3212, 0x3213, 0x3214, 0x3215, 0x3216, /* 0xC0 */
- 0x3217, 0x3218, 0x3219, 0x321A, 0x321B, 0x249C, 0x249D, 0x249E, /* 0xC0 */
- 0x249F, 0x24A0, 0x24A1, 0x24A2, 0x24A3, 0x24A4, 0x24A5, 0x24A6, /* 0xD0 */
- 0x24A7, 0x24A8, 0x24A9, 0x24AA, 0x24AB, 0x24AC, 0x24AD, 0x24AE, /* 0xD0 */
- 0x24AF, 0x24B0, 0x24B1, 0x24B2, 0x24B3, 0x24B4, 0x24B5, 0x2474, /* 0xE0 */
- 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, 0x247A, 0x247B, 0x247C, /* 0xE0 */
- 0x247D, 0x247E, 0x247F, 0x2480, 0x2481, 0x2482, 0x00B9, 0x00B2, /* 0xF0 */
- 0x00B3, 0x2074, 0x207F, 0x2081, 0x2082, 0x2083, 0x2084 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_AA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCC25, 0xCC26, 0xCC2A, 0xCC2B, 0xCC2D, 0xCC2F, 0xCC31, /* 0x40 */
- 0xCC32, 0xCC33, 0xCC34, 0xCC35, 0xCC36, 0xCC37, 0xCC3A, 0xCC3F, /* 0x40 */
- 0xCC40, 0xCC41, 0xCC42, 0xCC43, 0xCC46, 0xCC47, 0xCC49, 0xCC4A, /* 0x50 */
- 0xCC4B, 0xCC4D, 0xCC4E, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCC4F, 0xCC50, 0xCC51, 0xCC52, 0xCC53, 0xCC56, 0xCC5A, /* 0x60 */
- 0xCC5B, 0xCC5C, 0xCC5D, 0xCC5E, 0xCC5F, 0xCC61, 0xCC62, 0xCC63, /* 0x60 */
- 0xCC65, 0xCC67, 0xCC69, 0xCC6A, 0xCC6B, 0xCC6C, 0xCC6D, 0xCC6E, /* 0x70 */
- 0xCC6F, 0xCC71, 0xCC72, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xCC73, 0xCC74, 0xCC76, 0xCC77, 0xCC78, 0xCC79, 0xCC7A, /* 0x80 */
- 0xCC7B, 0xCC7C, 0xCC7D, 0xCC7E, 0xCC7F, 0xCC80, 0xCC81, 0xCC82, /* 0x80 */
- 0xCC83, 0xCC84, 0xCC85, 0xCC86, 0xCC87, 0xCC88, 0xCC89, 0xCC8A, /* 0x90 */
- 0xCC8B, 0xCC8C, 0xCC8D, 0xCC8E, 0xCC8F, 0xCC90, 0xCC91, 0xCC92, /* 0x90 */
- 0xCC93, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, /* 0xA0 */
- 0x3048, 0x3049, 0x304A, 0x304B, 0x304C, 0x304D, 0x304E, 0x304F, /* 0xA0 */
- 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, /* 0xB0 */
- 0x3058, 0x3059, 0x305A, 0x305B, 0x305C, 0x305D, 0x305E, 0x305F, /* 0xB0 */
- 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, /* 0xC0 */
- 0x3068, 0x3069, 0x306A, 0x306B, 0x306C, 0x306D, 0x306E, 0x306F, /* 0xC0 */
- 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, /* 0xD0 */
- 0x3078, 0x3079, 0x307A, 0x307B, 0x307C, 0x307D, 0x307E, 0x307F, /* 0xD0 */
- 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, /* 0xE0 */
- 0x3088, 0x3089, 0x308A, 0x308B, 0x308C, 0x308D, 0x308E, 0x308F, /* 0xE0 */
- 0x3090, 0x3091, 0x3092, 0x3093 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_AB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCC94, 0xCC95, 0xCC96, 0xCC97, 0xCC9A, 0xCC9B, 0xCC9D, /* 0x40 */
- 0xCC9E, 0xCC9F, 0xCCA1, 0xCCA2, 0xCCA3, 0xCCA4, 0xCCA5, 0xCCA6, /* 0x40 */
- 0xCCA7, 0xCCAA, 0xCCAE, 0xCCAF, 0xCCB0, 0xCCB1, 0xCCB2, 0xCCB3, /* 0x50 */
- 0xCCB6, 0xCCB7, 0xCCB9, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCCBA, 0xCCBB, 0xCCBD, 0xCCBE, 0xCCBF, 0xCCC0, 0xCCC1, /* 0x60 */
- 0xCCC2, 0xCCC3, 0xCCC6, 0xCCC8, 0xCCCA, 0xCCCB, 0xCCCC, 0xCCCD, /* 0x60 */
- 0xCCCE, 0xCCCF, 0xCCD1, 0xCCD2, 0xCCD3, 0xCCD5, 0xCCD6, 0xCCD7, /* 0x70 */
- 0xCCD8, 0xCCD9, 0xCCDA, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xCCDB, 0xCCDC, 0xCCDD, 0xCCDE, 0xCCDF, 0xCCE0, 0xCCE1, /* 0x80 */
- 0xCCE2, 0xCCE3, 0xCCE5, 0xCCE6, 0xCCE7, 0xCCE8, 0xCCE9, 0xCCEA, /* 0x80 */
- 0xCCEB, 0xCCED, 0xCCEE, 0xCCEF, 0xCCF1, 0xCCF2, 0xCCF3, 0xCCF4, /* 0x90 */
- 0xCCF5, 0xCCF6, 0xCCF7, 0xCCF8, 0xCCF9, 0xCCFA, 0xCCFB, 0xCCFC, /* 0x90 */
- 0xCCFD, 0x30A1, 0x30A2, 0x30A3, 0x30A4, 0x30A5, 0x30A6, 0x30A7, /* 0xA0 */
- 0x30A8, 0x30A9, 0x30AA, 0x30AB, 0x30AC, 0x30AD, 0x30AE, 0x30AF, /* 0xA0 */
- 0x30B0, 0x30B1, 0x30B2, 0x30B3, 0x30B4, 0x30B5, 0x30B6, 0x30B7, /* 0xB0 */
- 0x30B8, 0x30B9, 0x30BA, 0x30BB, 0x30BC, 0x30BD, 0x30BE, 0x30BF, /* 0xB0 */
- 0x30C0, 0x30C1, 0x30C2, 0x30C3, 0x30C4, 0x30C5, 0x30C6, 0x30C7, /* 0xC0 */
- 0x30C8, 0x30C9, 0x30CA, 0x30CB, 0x30CC, 0x30CD, 0x30CE, 0x30CF, /* 0xC0 */
- 0x30D0, 0x30D1, 0x30D2, 0x30D3, 0x30D4, 0x30D5, 0x30D6, 0x30D7, /* 0xD0 */
- 0x30D8, 0x30D9, 0x30DA, 0x30DB, 0x30DC, 0x30DD, 0x30DE, 0x30DF, /* 0xD0 */
- 0x30E0, 0x30E1, 0x30E2, 0x30E3, 0x30E4, 0x30E5, 0x30E6, 0x30E7, /* 0xE0 */
- 0x30E8, 0x30E9, 0x30EA, 0x30EB, 0x30EC, 0x30ED, 0x30EE, 0x30EF, /* 0xE0 */
- 0x30F0, 0x30F1, 0x30F2, 0x30F3, 0x30F4, 0x30F5, 0x30F6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_AC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCCFE, 0xCCFF, 0xCD00, 0xCD02, 0xCD03, 0xCD04, 0xCD05, /* 0x40 */
- 0xCD06, 0xCD07, 0xCD0A, 0xCD0B, 0xCD0D, 0xCD0E, 0xCD0F, 0xCD11, /* 0x40 */
- 0xCD12, 0xCD13, 0xCD14, 0xCD15, 0xCD16, 0xCD17, 0xCD1A, 0xCD1C, /* 0x50 */
- 0xCD1E, 0xCD1F, 0xCD20, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCD21, 0xCD22, 0xCD23, 0xCD25, 0xCD26, 0xCD27, 0xCD29, /* 0x60 */
- 0xCD2A, 0xCD2B, 0xCD2D, 0xCD2E, 0xCD2F, 0xCD30, 0xCD31, 0xCD32, /* 0x60 */
- 0xCD33, 0xCD34, 0xCD35, 0xCD36, 0xCD37, 0xCD38, 0xCD3A, 0xCD3B, /* 0x70 */
- 0xCD3C, 0xCD3D, 0xCD3E, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xCD3F, 0xCD40, 0xCD41, 0xCD42, 0xCD43, 0xCD44, 0xCD45, /* 0x80 */
- 0xCD46, 0xCD47, 0xCD48, 0xCD49, 0xCD4A, 0xCD4B, 0xCD4C, 0xCD4D, /* 0x80 */
- 0xCD4E, 0xCD4F, 0xCD50, 0xCD51, 0xCD52, 0xCD53, 0xCD54, 0xCD55, /* 0x90 */
- 0xCD56, 0xCD57, 0xCD58, 0xCD59, 0xCD5A, 0xCD5B, 0xCD5D, 0xCD5E, /* 0x90 */
- 0xCD5F, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, /* 0xA0 */
- 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, /* 0xA0 */
- 0x041E, 0x041F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, /* 0xB0 */
- 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, /* 0xB0 */
- 0x042E, 0x042F, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, /* 0xD0 */
- 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, /* 0xD0 */
- 0x043E, 0x043F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, /* 0xE0 */
- 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, /* 0xE0 */
- 0x044E, 0x044F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_AD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCD61, 0xCD62, 0xCD63, 0xCD65, 0xCD66, 0xCD67, 0xCD68, /* 0x40 */
- 0xCD69, 0xCD6A, 0xCD6B, 0xCD6E, 0xCD70, 0xCD72, 0xCD73, 0xCD74, /* 0x40 */
- 0xCD75, 0xCD76, 0xCD77, 0xCD79, 0xCD7A, 0xCD7B, 0xCD7C, 0xCD7D, /* 0x50 */
- 0xCD7E, 0xCD7F, 0xCD80, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCD81, 0xCD82, 0xCD83, 0xCD84, 0xCD85, 0xCD86, 0xCD87, /* 0x60 */
- 0xCD89, 0xCD8A, 0xCD8B, 0xCD8C, 0xCD8D, 0xCD8E, 0xCD8F, 0xCD90, /* 0x60 */
- 0xCD91, 0xCD92, 0xCD93, 0xCD96, 0xCD97, 0xCD99, 0xCD9A, 0xCD9B, /* 0x70 */
- 0xCD9D, 0xCD9E, 0xCD9F, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xCDA0, 0xCDA1, 0xCDA2, 0xCDA3, 0xCDA6, 0xCDA8, 0xCDAA, /* 0x80 */
- 0xCDAB, 0xCDAC, 0xCDAD, 0xCDAE, 0xCDAF, 0xCDB1, 0xCDB2, 0xCDB3, /* 0x80 */
- 0xCDB4, 0xCDB5, 0xCDB6, 0xCDB7, 0xCDB8, 0xCDB9, 0xCDBA, 0xCDBB, /* 0x90 */
- 0xCDBC, 0xCDBD, 0xCDBE, 0xCDBF, 0xCDC0, 0xCDC1, 0xCDC2, 0xCDC3, /* 0x90 */
- 0xCDC5 /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_AE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCDC6, 0xCDC7, 0xCDC8, 0xCDC9, 0xCDCA, 0xCDCB, 0xCDCD, /* 0x40 */
- 0xCDCE, 0xCDCF, 0xCDD1, 0xCDD2, 0xCDD3, 0xCDD4, 0xCDD5, 0xCDD6, /* 0x40 */
- 0xCDD7, 0xCDD8, 0xCDD9, 0xCDDA, 0xCDDB, 0xCDDC, 0xCDDD, 0xCDDE, /* 0x50 */
- 0xCDDF, 0xCDE0, 0xCDE1, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCDE2, 0xCDE3, 0xCDE4, 0xCDE5, 0xCDE6, 0xCDE7, 0xCDE9, /* 0x60 */
- 0xCDEA, 0xCDEB, 0xCDED, 0xCDEE, 0xCDEF, 0xCDF1, 0xCDF2, 0xCDF3, /* 0x60 */
- 0xCDF4, 0xCDF5, 0xCDF6, 0xCDF7, 0xCDFA, 0xCDFC, 0xCDFE, 0xCDFF, /* 0x70 */
- 0xCE00, 0xCE01, 0xCE02, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xCE03, 0xCE05, 0xCE06, 0xCE07, 0xCE09, 0xCE0A, 0xCE0B, /* 0x80 */
- 0xCE0D, 0xCE0E, 0xCE0F, 0xCE10, 0xCE11, 0xCE12, 0xCE13, 0xCE15, /* 0x80 */
- 0xCE16, 0xCE17, 0xCE18, 0xCE1A, 0xCE1B, 0xCE1C, 0xCE1D, 0xCE1E, /* 0x90 */
- 0xCE1F, 0xCE22, 0xCE23, 0xCE25, 0xCE26, 0xCE27, 0xCE29, 0xCE2A, /* 0x90 */
- 0xCE2B /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_AF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCE2C, 0xCE2D, 0xCE2E, 0xCE2F, 0xCE32, 0xCE34, 0xCE36, /* 0x40 */
- 0xCE37, 0xCE38, 0xCE39, 0xCE3A, 0xCE3B, 0xCE3C, 0xCE3D, 0xCE3E, /* 0x40 */
- 0xCE3F, 0xCE40, 0xCE41, 0xCE42, 0xCE43, 0xCE44, 0xCE45, 0xCE46, /* 0x50 */
- 0xCE47, 0xCE48, 0xCE49, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCE4A, 0xCE4B, 0xCE4C, 0xCE4D, 0xCE4E, 0xCE4F, 0xCE50, /* 0x60 */
- 0xCE51, 0xCE52, 0xCE53, 0xCE54, 0xCE55, 0xCE56, 0xCE57, 0xCE5A, /* 0x60 */
- 0xCE5B, 0xCE5D, 0xCE5E, 0xCE62, 0xCE63, 0xCE64, 0xCE65, 0xCE66, /* 0x70 */
- 0xCE67, 0xCE6A, 0xCE6C, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xCE6E, 0xCE6F, 0xCE70, 0xCE71, 0xCE72, 0xCE73, 0xCE76, /* 0x80 */
- 0xCE77, 0xCE79, 0xCE7A, 0xCE7B, 0xCE7D, 0xCE7E, 0xCE7F, 0xCE80, /* 0x80 */
- 0xCE81, 0xCE82, 0xCE83, 0xCE86, 0xCE88, 0xCE8A, 0xCE8B, 0xCE8C, /* 0x90 */
- 0xCE8D, 0xCE8E, 0xCE8F, 0xCE92, 0xCE93, 0xCE95, 0xCE96, 0xCE97, /* 0x90 */
- 0xCE99 /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_B0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCE9A, 0xCE9B, 0xCE9C, 0xCE9D, 0xCE9E, 0xCE9F, 0xCEA2, /* 0x40 */
- 0xCEA6, 0xCEA7, 0xCEA8, 0xCEA9, 0xCEAA, 0xCEAB, 0xCEAE, 0xCEAF, /* 0x40 */
- 0xCEB0, 0xCEB1, 0xCEB2, 0xCEB3, 0xCEB4, 0xCEB5, 0xCEB6, 0xCEB7, /* 0x50 */
- 0xCEB8, 0xCEB9, 0xCEBA, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCEBB, 0xCEBC, 0xCEBD, 0xCEBE, 0xCEBF, 0xCEC0, 0xCEC2, /* 0x60 */
- 0xCEC3, 0xCEC4, 0xCEC5, 0xCEC6, 0xCEC7, 0xCEC8, 0xCEC9, 0xCECA, /* 0x60 */
- 0xCECB, 0xCECC, 0xCECD, 0xCECE, 0xCECF, 0xCED0, 0xCED1, 0xCED2, /* 0x70 */
- 0xCED3, 0xCED4, 0xCED5, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xCED6, 0xCED7, 0xCED8, 0xCED9, 0xCEDA, 0xCEDB, 0xCEDC, /* 0x80 */
- 0xCEDD, 0xCEDE, 0xCEDF, 0xCEE0, 0xCEE1, 0xCEE2, 0xCEE3, 0xCEE6, /* 0x80 */
- 0xCEE7, 0xCEE9, 0xCEEA, 0xCEED, 0xCEEE, 0xCEEF, 0xCEF0, 0xCEF1, /* 0x90 */
- 0xCEF2, 0xCEF3, 0xCEF6, 0xCEFA, 0xCEFB, 0xCEFC, 0xCEFD, 0xCEFE, /* 0x90 */
- 0xCEFF, 0xAC00, 0xAC01, 0xAC04, 0xAC07, 0xAC08, 0xAC09, 0xAC0A, /* 0xA0 */
- 0xAC10, 0xAC11, 0xAC12, 0xAC13, 0xAC14, 0xAC15, 0xAC16, 0xAC17, /* 0xA0 */
- 0xAC19, 0xAC1A, 0xAC1B, 0xAC1C, 0xAC1D, 0xAC20, 0xAC24, 0xAC2C, /* 0xB0 */
- 0xAC2D, 0xAC2F, 0xAC30, 0xAC31, 0xAC38, 0xAC39, 0xAC3C, 0xAC40, /* 0xB0 */
- 0xAC4B, 0xAC4D, 0xAC54, 0xAC58, 0xAC5C, 0xAC70, 0xAC71, 0xAC74, /* 0xC0 */
- 0xAC77, 0xAC78, 0xAC7A, 0xAC80, 0xAC81, 0xAC83, 0xAC84, 0xAC85, /* 0xC0 */
- 0xAC86, 0xAC89, 0xAC8A, 0xAC8B, 0xAC8C, 0xAC90, 0xAC94, 0xAC9C, /* 0xD0 */
- 0xAC9D, 0xAC9F, 0xACA0, 0xACA1, 0xACA8, 0xACA9, 0xACAA, 0xACAC, /* 0xD0 */
- 0xACAF, 0xACB0, 0xACB8, 0xACB9, 0xACBB, 0xACBC, 0xACBD, 0xACC1, /* 0xE0 */
- 0xACC4, 0xACC8, 0xACCC, 0xACD5, 0xACD7, 0xACE0, 0xACE1, 0xACE4, /* 0xE0 */
- 0xACE7, 0xACE8, 0xACEA, 0xACEC, 0xACEF, 0xACF0, 0xACF1, 0xACF3, /* 0xF0 */
- 0xACF5, 0xACF6, 0xACFC, 0xACFD, 0xAD00, 0xAD04, 0xAD06 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_B1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCF02, 0xCF03, 0xCF05, 0xCF06, 0xCF07, 0xCF09, 0xCF0A, /* 0x40 */
- 0xCF0B, 0xCF0C, 0xCF0D, 0xCF0E, 0xCF0F, 0xCF12, 0xCF14, 0xCF16, /* 0x40 */
- 0xCF17, 0xCF18, 0xCF19, 0xCF1A, 0xCF1B, 0xCF1D, 0xCF1E, 0xCF1F, /* 0x50 */
- 0xCF21, 0xCF22, 0xCF23, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCF25, 0xCF26, 0xCF27, 0xCF28, 0xCF29, 0xCF2A, 0xCF2B, /* 0x60 */
- 0xCF2E, 0xCF32, 0xCF33, 0xCF34, 0xCF35, 0xCF36, 0xCF37, 0xCF39, /* 0x60 */
- 0xCF3A, 0xCF3B, 0xCF3C, 0xCF3D, 0xCF3E, 0xCF3F, 0xCF40, 0xCF41, /* 0x70 */
- 0xCF42, 0xCF43, 0xCF44, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xCF45, 0xCF46, 0xCF47, 0xCF48, 0xCF49, 0xCF4A, 0xCF4B, /* 0x80 */
- 0xCF4C, 0xCF4D, 0xCF4E, 0xCF4F, 0xCF50, 0xCF51, 0xCF52, 0xCF53, /* 0x80 */
- 0xCF56, 0xCF57, 0xCF59, 0xCF5A, 0xCF5B, 0xCF5D, 0xCF5E, 0xCF5F, /* 0x90 */
- 0xCF60, 0xCF61, 0xCF62, 0xCF63, 0xCF66, 0xCF68, 0xCF6A, 0xCF6B, /* 0x90 */
- 0xCF6C, 0xAD0C, 0xAD0D, 0xAD0F, 0xAD11, 0xAD18, 0xAD1C, 0xAD20, /* 0xA0 */
- 0xAD29, 0xAD2C, 0xAD2D, 0xAD34, 0xAD35, 0xAD38, 0xAD3C, 0xAD44, /* 0xA0 */
- 0xAD45, 0xAD47, 0xAD49, 0xAD50, 0xAD54, 0xAD58, 0xAD61, 0xAD63, /* 0xB0 */
- 0xAD6C, 0xAD6D, 0xAD70, 0xAD73, 0xAD74, 0xAD75, 0xAD76, 0xAD7B, /* 0xB0 */
- 0xAD7C, 0xAD7D, 0xAD7F, 0xAD81, 0xAD82, 0xAD88, 0xAD89, 0xAD8C, /* 0xC0 */
- 0xAD90, 0xAD9C, 0xAD9D, 0xADA4, 0xADB7, 0xADC0, 0xADC1, 0xADC4, /* 0xC0 */
- 0xADC8, 0xADD0, 0xADD1, 0xADD3, 0xADDC, 0xADE0, 0xADE4, 0xADF8, /* 0xD0 */
- 0xADF9, 0xADFC, 0xADFF, 0xAE00, 0xAE01, 0xAE08, 0xAE09, 0xAE0B, /* 0xD0 */
- 0xAE0D, 0xAE14, 0xAE30, 0xAE31, 0xAE34, 0xAE37, 0xAE38, 0xAE3A, /* 0xE0 */
- 0xAE40, 0xAE41, 0xAE43, 0xAE45, 0xAE46, 0xAE4A, 0xAE4C, 0xAE4D, /* 0xE0 */
- 0xAE4E, 0xAE50, 0xAE54, 0xAE56, 0xAE5C, 0xAE5D, 0xAE5F, 0xAE60, /* 0xF0 */
- 0xAE61, 0xAE65, 0xAE68, 0xAE69, 0xAE6C, 0xAE70, 0xAE78 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_B2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCF6D, 0xCF6E, 0xCF6F, 0xCF72, 0xCF73, 0xCF75, 0xCF76, /* 0x40 */
- 0xCF77, 0xCF79, 0xCF7A, 0xCF7B, 0xCF7C, 0xCF7D, 0xCF7E, 0xCF7F, /* 0x40 */
- 0xCF81, 0xCF82, 0xCF83, 0xCF84, 0xCF86, 0xCF87, 0xCF88, 0xCF89, /* 0x50 */
- 0xCF8A, 0xCF8B, 0xCF8D, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCF8E, 0xCF8F, 0xCF90, 0xCF91, 0xCF92, 0xCF93, 0xCF94, /* 0x60 */
- 0xCF95, 0xCF96, 0xCF97, 0xCF98, 0xCF99, 0xCF9A, 0xCF9B, 0xCF9C, /* 0x60 */
- 0xCF9D, 0xCF9E, 0xCF9F, 0xCFA0, 0xCFA2, 0xCFA3, 0xCFA4, 0xCFA5, /* 0x70 */
- 0xCFA6, 0xCFA7, 0xCFA9, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xCFAA, 0xCFAB, 0xCFAC, 0xCFAD, 0xCFAE, 0xCFAF, 0xCFB1, /* 0x80 */
- 0xCFB2, 0xCFB3, 0xCFB4, 0xCFB5, 0xCFB6, 0xCFB7, 0xCFB8, 0xCFB9, /* 0x80 */
- 0xCFBA, 0xCFBB, 0xCFBC, 0xCFBD, 0xCFBE, 0xCFBF, 0xCFC0, 0xCFC1, /* 0x90 */
- 0xCFC2, 0xCFC3, 0xCFC5, 0xCFC6, 0xCFC7, 0xCFC8, 0xCFC9, 0xCFCA, /* 0x90 */
- 0xCFCB, 0xAE79, 0xAE7B, 0xAE7C, 0xAE7D, 0xAE84, 0xAE85, 0xAE8C, /* 0xA0 */
- 0xAEBC, 0xAEBD, 0xAEBE, 0xAEC0, 0xAEC4, 0xAECC, 0xAECD, 0xAECF, /* 0xA0 */
- 0xAED0, 0xAED1, 0xAED8, 0xAED9, 0xAEDC, 0xAEE8, 0xAEEB, 0xAEED, /* 0xB0 */
- 0xAEF4, 0xAEF8, 0xAEFC, 0xAF07, 0xAF08, 0xAF0D, 0xAF10, 0xAF2C, /* 0xB0 */
- 0xAF2D, 0xAF30, 0xAF32, 0xAF34, 0xAF3C, 0xAF3D, 0xAF3F, 0xAF41, /* 0xC0 */
- 0xAF42, 0xAF43, 0xAF48, 0xAF49, 0xAF50, 0xAF5C, 0xAF5D, 0xAF64, /* 0xC0 */
- 0xAF65, 0xAF79, 0xAF80, 0xAF84, 0xAF88, 0xAF90, 0xAF91, 0xAF95, /* 0xD0 */
- 0xAF9C, 0xAFB8, 0xAFB9, 0xAFBC, 0xAFC0, 0xAFC7, 0xAFC8, 0xAFC9, /* 0xD0 */
- 0xAFCB, 0xAFCD, 0xAFCE, 0xAFD4, 0xAFDC, 0xAFE8, 0xAFE9, 0xAFF0, /* 0xE0 */
- 0xAFF1, 0xAFF4, 0xAFF8, 0xB000, 0xB001, 0xB004, 0xB00C, 0xB010, /* 0xE0 */
- 0xB014, 0xB01C, 0xB01D, 0xB028, 0xB044, 0xB045, 0xB048, 0xB04A, /* 0xF0 */
- 0xB04C, 0xB04E, 0xB053, 0xB054, 0xB055, 0xB057, 0xB059 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_B3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCFCC, 0xCFCD, 0xCFCE, 0xCFCF, 0xCFD0, 0xCFD1, 0xCFD2, /* 0x40 */
- 0xCFD3, 0xCFD4, 0xCFD5, 0xCFD6, 0xCFD7, 0xCFD8, 0xCFD9, 0xCFDA, /* 0x40 */
- 0xCFDB, 0xCFDC, 0xCFDD, 0xCFDE, 0xCFDF, 0xCFE2, 0xCFE3, 0xCFE5, /* 0x50 */
- 0xCFE6, 0xCFE7, 0xCFE9, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCFEA, 0xCFEB, 0xCFEC, 0xCFED, 0xCFEE, 0xCFEF, 0xCFF2, /* 0x60 */
- 0xCFF4, 0xCFF6, 0xCFF7, 0xCFF8, 0xCFF9, 0xCFFA, 0xCFFB, 0xCFFD, /* 0x60 */
- 0xCFFE, 0xCFFF, 0xD001, 0xD002, 0xD003, 0xD005, 0xD006, 0xD007, /* 0x70 */
- 0xD008, 0xD009, 0xD00A, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD00B, 0xD00C, 0xD00D, 0xD00E, 0xD00F, 0xD010, 0xD012, /* 0x80 */
- 0xD013, 0xD014, 0xD015, 0xD016, 0xD017, 0xD019, 0xD01A, 0xD01B, /* 0x80 */
- 0xD01C, 0xD01D, 0xD01E, 0xD01F, 0xD020, 0xD021, 0xD022, 0xD023, /* 0x90 */
- 0xD024, 0xD025, 0xD026, 0xD027, 0xD028, 0xD029, 0xD02A, 0xD02B, /* 0x90 */
- 0xD02C, 0xB05D, 0xB07C, 0xB07D, 0xB080, 0xB084, 0xB08C, 0xB08D, /* 0xA0 */
- 0xB08F, 0xB091, 0xB098, 0xB099, 0xB09A, 0xB09C, 0xB09F, 0xB0A0, /* 0xA0 */
- 0xB0A1, 0xB0A2, 0xB0A8, 0xB0A9, 0xB0AB, 0xB0AC, 0xB0AD, 0xB0AE, /* 0xB0 */
- 0xB0AF, 0xB0B1, 0xB0B3, 0xB0B4, 0xB0B5, 0xB0B8, 0xB0BC, 0xB0C4, /* 0xB0 */
- 0xB0C5, 0xB0C7, 0xB0C8, 0xB0C9, 0xB0D0, 0xB0D1, 0xB0D4, 0xB0D8, /* 0xC0 */
- 0xB0E0, 0xB0E5, 0xB108, 0xB109, 0xB10B, 0xB10C, 0xB110, 0xB112, /* 0xC0 */
- 0xB113, 0xB118, 0xB119, 0xB11B, 0xB11C, 0xB11D, 0xB123, 0xB124, /* 0xD0 */
- 0xB125, 0xB128, 0xB12C, 0xB134, 0xB135, 0xB137, 0xB138, 0xB139, /* 0xD0 */
- 0xB140, 0xB141, 0xB144, 0xB148, 0xB150, 0xB151, 0xB154, 0xB155, /* 0xE0 */
- 0xB158, 0xB15C, 0xB160, 0xB178, 0xB179, 0xB17C, 0xB180, 0xB182, /* 0xE0 */
- 0xB188, 0xB189, 0xB18B, 0xB18D, 0xB192, 0xB193, 0xB194, 0xB198, /* 0xF0 */
- 0xB19C, 0xB1A8, 0xB1CC, 0xB1D0, 0xB1D4, 0xB1DC, 0xB1DD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_B4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD02E, 0xD02F, 0xD030, 0xD031, 0xD032, 0xD033, 0xD036, /* 0x40 */
- 0xD037, 0xD039, 0xD03A, 0xD03B, 0xD03D, 0xD03E, 0xD03F, 0xD040, /* 0x40 */
- 0xD041, 0xD042, 0xD043, 0xD046, 0xD048, 0xD04A, 0xD04B, 0xD04C, /* 0x50 */
- 0xD04D, 0xD04E, 0xD04F, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD051, 0xD052, 0xD053, 0xD055, 0xD056, 0xD057, 0xD059, /* 0x60 */
- 0xD05A, 0xD05B, 0xD05C, 0xD05D, 0xD05E, 0xD05F, 0xD061, 0xD062, /* 0x60 */
- 0xD063, 0xD064, 0xD065, 0xD066, 0xD067, 0xD068, 0xD069, 0xD06A, /* 0x70 */
- 0xD06B, 0xD06E, 0xD06F, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD071, 0xD072, 0xD073, 0xD075, 0xD076, 0xD077, 0xD078, /* 0x80 */
- 0xD079, 0xD07A, 0xD07B, 0xD07E, 0xD07F, 0xD080, 0xD082, 0xD083, /* 0x80 */
- 0xD084, 0xD085, 0xD086, 0xD087, 0xD088, 0xD089, 0xD08A, 0xD08B, /* 0x90 */
- 0xD08C, 0xD08D, 0xD08E, 0xD08F, 0xD090, 0xD091, 0xD092, 0xD093, /* 0x90 */
- 0xD094, 0xB1DF, 0xB1E8, 0xB1E9, 0xB1EC, 0xB1F0, 0xB1F9, 0xB1FB, /* 0xA0 */
- 0xB1FD, 0xB204, 0xB205, 0xB208, 0xB20B, 0xB20C, 0xB214, 0xB215, /* 0xA0 */
- 0xB217, 0xB219, 0xB220, 0xB234, 0xB23C, 0xB258, 0xB25C, 0xB260, /* 0xB0 */
- 0xB268, 0xB269, 0xB274, 0xB275, 0xB27C, 0xB284, 0xB285, 0xB289, /* 0xB0 */
- 0xB290, 0xB291, 0xB294, 0xB298, 0xB299, 0xB29A, 0xB2A0, 0xB2A1, /* 0xC0 */
- 0xB2A3, 0xB2A5, 0xB2A6, 0xB2AA, 0xB2AC, 0xB2B0, 0xB2B4, 0xB2C8, /* 0xC0 */
- 0xB2C9, 0xB2CC, 0xB2D0, 0xB2D2, 0xB2D8, 0xB2D9, 0xB2DB, 0xB2DD, /* 0xD0 */
- 0xB2E2, 0xB2E4, 0xB2E5, 0xB2E6, 0xB2E8, 0xB2EB, 0xB2EC, 0xB2ED, /* 0xD0 */
- 0xB2EE, 0xB2EF, 0xB2F3, 0xB2F4, 0xB2F5, 0xB2F7, 0xB2F8, 0xB2F9, /* 0xE0 */
- 0xB2FA, 0xB2FB, 0xB2FF, 0xB300, 0xB301, 0xB304, 0xB308, 0xB310, /* 0xE0 */
- 0xB311, 0xB313, 0xB314, 0xB315, 0xB31C, 0xB354, 0xB355, 0xB356, /* 0xF0 */
- 0xB358, 0xB35B, 0xB35C, 0xB35E, 0xB35F, 0xB364, 0xB365 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_B5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD095, 0xD096, 0xD097, 0xD098, 0xD099, 0xD09A, 0xD09B, /* 0x40 */
- 0xD09C, 0xD09D, 0xD09E, 0xD09F, 0xD0A0, 0xD0A1, 0xD0A2, 0xD0A3, /* 0x40 */
- 0xD0A6, 0xD0A7, 0xD0A9, 0xD0AA, 0xD0AB, 0xD0AD, 0xD0AE, 0xD0AF, /* 0x50 */
- 0xD0B0, 0xD0B1, 0xD0B2, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD0B3, 0xD0B6, 0xD0B8, 0xD0BA, 0xD0BB, 0xD0BC, 0xD0BD, /* 0x60 */
- 0xD0BE, 0xD0BF, 0xD0C2, 0xD0C3, 0xD0C5, 0xD0C6, 0xD0C7, 0xD0CA, /* 0x60 */
- 0xD0CB, 0xD0CC, 0xD0CD, 0xD0CE, 0xD0CF, 0xD0D2, 0xD0D6, 0xD0D7, /* 0x70 */
- 0xD0D8, 0xD0D9, 0xD0DA, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD0DB, 0xD0DE, 0xD0DF, 0xD0E1, 0xD0E2, 0xD0E3, 0xD0E5, /* 0x80 */
- 0xD0E6, 0xD0E7, 0xD0E8, 0xD0E9, 0xD0EA, 0xD0EB, 0xD0EE, 0xD0F2, /* 0x80 */
- 0xD0F3, 0xD0F4, 0xD0F5, 0xD0F6, 0xD0F7, 0xD0F9, 0xD0FA, 0xD0FB, /* 0x90 */
- 0xD0FC, 0xD0FD, 0xD0FE, 0xD0FF, 0xD100, 0xD101, 0xD102, 0xD103, /* 0x90 */
- 0xD104, 0xB367, 0xB369, 0xB36B, 0xB36E, 0xB370, 0xB371, 0xB374, /* 0xA0 */
- 0xB378, 0xB380, 0xB381, 0xB383, 0xB384, 0xB385, 0xB38C, 0xB390, /* 0xA0 */
- 0xB394, 0xB3A0, 0xB3A1, 0xB3A8, 0xB3AC, 0xB3C4, 0xB3C5, 0xB3C8, /* 0xB0 */
- 0xB3CB, 0xB3CC, 0xB3CE, 0xB3D0, 0xB3D4, 0xB3D5, 0xB3D7, 0xB3D9, /* 0xB0 */
- 0xB3DB, 0xB3DD, 0xB3E0, 0xB3E4, 0xB3E8, 0xB3FC, 0xB410, 0xB418, /* 0xC0 */
- 0xB41C, 0xB420, 0xB428, 0xB429, 0xB42B, 0xB434, 0xB450, 0xB451, /* 0xC0 */
- 0xB454, 0xB458, 0xB460, 0xB461, 0xB463, 0xB465, 0xB46C, 0xB480, /* 0xD0 */
- 0xB488, 0xB49D, 0xB4A4, 0xB4A8, 0xB4AC, 0xB4B5, 0xB4B7, 0xB4B9, /* 0xD0 */
- 0xB4C0, 0xB4C4, 0xB4C8, 0xB4D0, 0xB4D5, 0xB4DC, 0xB4DD, 0xB4E0, /* 0xE0 */
- 0xB4E3, 0xB4E4, 0xB4E6, 0xB4EC, 0xB4ED, 0xB4EF, 0xB4F1, 0xB4F8, /* 0xE0 */
- 0xB514, 0xB515, 0xB518, 0xB51B, 0xB51C, 0xB524, 0xB525, 0xB527, /* 0xF0 */
- 0xB528, 0xB529, 0xB52A, 0xB530, 0xB531, 0xB534, 0xB538 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_B6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD105, 0xD106, 0xD107, 0xD108, 0xD109, 0xD10A, 0xD10B, /* 0x40 */
- 0xD10C, 0xD10E, 0xD10F, 0xD110, 0xD111, 0xD112, 0xD113, 0xD114, /* 0x40 */
- 0xD115, 0xD116, 0xD117, 0xD118, 0xD119, 0xD11A, 0xD11B, 0xD11C, /* 0x50 */
- 0xD11D, 0xD11E, 0xD11F, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD120, 0xD121, 0xD122, 0xD123, 0xD124, 0xD125, 0xD126, /* 0x60 */
- 0xD127, 0xD128, 0xD129, 0xD12A, 0xD12B, 0xD12C, 0xD12D, 0xD12E, /* 0x60 */
- 0xD12F, 0xD132, 0xD133, 0xD135, 0xD136, 0xD137, 0xD139, 0xD13B, /* 0x70 */
- 0xD13C, 0xD13D, 0xD13E, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD13F, 0xD142, 0xD146, 0xD147, 0xD148, 0xD149, 0xD14A, /* 0x80 */
- 0xD14B, 0xD14E, 0xD14F, 0xD151, 0xD152, 0xD153, 0xD155, 0xD156, /* 0x80 */
- 0xD157, 0xD158, 0xD159, 0xD15A, 0xD15B, 0xD15E, 0xD160, 0xD162, /* 0x90 */
- 0xD163, 0xD164, 0xD165, 0xD166, 0xD167, 0xD169, 0xD16A, 0xD16B, /* 0x90 */
- 0xD16D, 0xB540, 0xB541, 0xB543, 0xB544, 0xB545, 0xB54B, 0xB54C, /* 0xA0 */
- 0xB54D, 0xB550, 0xB554, 0xB55C, 0xB55D, 0xB55F, 0xB560, 0xB561, /* 0xA0 */
- 0xB5A0, 0xB5A1, 0xB5A4, 0xB5A8, 0xB5AA, 0xB5AB, 0xB5B0, 0xB5B1, /* 0xB0 */
- 0xB5B3, 0xB5B4, 0xB5B5, 0xB5BB, 0xB5BC, 0xB5BD, 0xB5C0, 0xB5C4, /* 0xB0 */
- 0xB5CC, 0xB5CD, 0xB5CF, 0xB5D0, 0xB5D1, 0xB5D8, 0xB5EC, 0xB610, /* 0xC0 */
- 0xB611, 0xB614, 0xB618, 0xB625, 0xB62C, 0xB634, 0xB648, 0xB664, /* 0xC0 */
- 0xB668, 0xB69C, 0xB69D, 0xB6A0, 0xB6A4, 0xB6AB, 0xB6AC, 0xB6B1, /* 0xD0 */
- 0xB6D4, 0xB6F0, 0xB6F4, 0xB6F8, 0xB700, 0xB701, 0xB705, 0xB728, /* 0xD0 */
- 0xB729, 0xB72C, 0xB72F, 0xB730, 0xB738, 0xB739, 0xB73B, 0xB744, /* 0xE0 */
- 0xB748, 0xB74C, 0xB754, 0xB755, 0xB760, 0xB764, 0xB768, 0xB770, /* 0xE0 */
- 0xB771, 0xB773, 0xB775, 0xB77C, 0xB77D, 0xB780, 0xB784, 0xB78C, /* 0xF0 */
- 0xB78D, 0xB78F, 0xB790, 0xB791, 0xB792, 0xB796, 0xB797 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_B7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD16E, 0xD16F, 0xD170, 0xD171, 0xD172, 0xD173, 0xD174, /* 0x40 */
- 0xD175, 0xD176, 0xD177, 0xD178, 0xD179, 0xD17A, 0xD17B, 0xD17D, /* 0x40 */
- 0xD17E, 0xD17F, 0xD180, 0xD181, 0xD182, 0xD183, 0xD185, 0xD186, /* 0x50 */
- 0xD187, 0xD189, 0xD18A, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD18B, 0xD18C, 0xD18D, 0xD18E, 0xD18F, 0xD190, 0xD191, /* 0x60 */
- 0xD192, 0xD193, 0xD194, 0xD195, 0xD196, 0xD197, 0xD198, 0xD199, /* 0x60 */
- 0xD19A, 0xD19B, 0xD19C, 0xD19D, 0xD19E, 0xD19F, 0xD1A2, 0xD1A3, /* 0x70 */
- 0xD1A5, 0xD1A6, 0xD1A7, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD1A9, 0xD1AA, 0xD1AB, 0xD1AC, 0xD1AD, 0xD1AE, 0xD1AF, /* 0x80 */
- 0xD1B2, 0xD1B4, 0xD1B6, 0xD1B7, 0xD1B8, 0xD1B9, 0xD1BB, 0xD1BD, /* 0x80 */
- 0xD1BE, 0xD1BF, 0xD1C1, 0xD1C2, 0xD1C3, 0xD1C4, 0xD1C5, 0xD1C6, /* 0x90 */
- 0xD1C7, 0xD1C8, 0xD1C9, 0xD1CA, 0xD1CB, 0xD1CC, 0xD1CD, 0xD1CE, /* 0x90 */
- 0xD1CF, 0xB798, 0xB799, 0xB79C, 0xB7A0, 0xB7A8, 0xB7A9, 0xB7AB, /* 0xA0 */
- 0xB7AC, 0xB7AD, 0xB7B4, 0xB7B5, 0xB7B8, 0xB7C7, 0xB7C9, 0xB7EC, /* 0xA0 */
- 0xB7ED, 0xB7F0, 0xB7F4, 0xB7FC, 0xB7FD, 0xB7FF, 0xB800, 0xB801, /* 0xB0 */
- 0xB807, 0xB808, 0xB809, 0xB80C, 0xB810, 0xB818, 0xB819, 0xB81B, /* 0xB0 */
- 0xB81D, 0xB824, 0xB825, 0xB828, 0xB82C, 0xB834, 0xB835, 0xB837, /* 0xC0 */
- 0xB838, 0xB839, 0xB840, 0xB844, 0xB851, 0xB853, 0xB85C, 0xB85D, /* 0xC0 */
- 0xB860, 0xB864, 0xB86C, 0xB86D, 0xB86F, 0xB871, 0xB878, 0xB87C, /* 0xD0 */
- 0xB88D, 0xB8A8, 0xB8B0, 0xB8B4, 0xB8B8, 0xB8C0, 0xB8C1, 0xB8C3, /* 0xD0 */
- 0xB8C5, 0xB8CC, 0xB8D0, 0xB8D4, 0xB8DD, 0xB8DF, 0xB8E1, 0xB8E8, /* 0xE0 */
- 0xB8E9, 0xB8EC, 0xB8F0, 0xB8F8, 0xB8F9, 0xB8FB, 0xB8FD, 0xB904, /* 0xE0 */
- 0xB918, 0xB920, 0xB93C, 0xB93D, 0xB940, 0xB944, 0xB94C, 0xB94F, /* 0xF0 */
- 0xB951, 0xB958, 0xB959, 0xB95C, 0xB960, 0xB968, 0xB969 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_B8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD1D0, 0xD1D1, 0xD1D2, 0xD1D3, 0xD1D4, 0xD1D5, 0xD1D6, /* 0x40 */
- 0xD1D7, 0xD1D9, 0xD1DA, 0xD1DB, 0xD1DC, 0xD1DD, 0xD1DE, 0xD1DF, /* 0x40 */
- 0xD1E0, 0xD1E1, 0xD1E2, 0xD1E3, 0xD1E4, 0xD1E5, 0xD1E6, 0xD1E7, /* 0x50 */
- 0xD1E8, 0xD1E9, 0xD1EA, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD1EB, 0xD1EC, 0xD1ED, 0xD1EE, 0xD1EF, 0xD1F0, 0xD1F1, /* 0x60 */
- 0xD1F2, 0xD1F3, 0xD1F5, 0xD1F6, 0xD1F7, 0xD1F9, 0xD1FA, 0xD1FB, /* 0x60 */
- 0xD1FC, 0xD1FD, 0xD1FE, 0xD1FF, 0xD200, 0xD201, 0xD202, 0xD203, /* 0x70 */
- 0xD204, 0xD205, 0xD206, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD208, 0xD20A, 0xD20B, 0xD20C, 0xD20D, 0xD20E, 0xD20F, /* 0x80 */
- 0xD211, 0xD212, 0xD213, 0xD214, 0xD215, 0xD216, 0xD217, 0xD218, /* 0x80 */
- 0xD219, 0xD21A, 0xD21B, 0xD21C, 0xD21D, 0xD21E, 0xD21F, 0xD220, /* 0x90 */
- 0xD221, 0xD222, 0xD223, 0xD224, 0xD225, 0xD226, 0xD227, 0xD228, /* 0x90 */
- 0xD229, 0xB96B, 0xB96D, 0xB974, 0xB975, 0xB978, 0xB97C, 0xB984, /* 0xA0 */
- 0xB985, 0xB987, 0xB989, 0xB98A, 0xB98D, 0xB98E, 0xB9AC, 0xB9AD, /* 0xA0 */
- 0xB9B0, 0xB9B4, 0xB9BC, 0xB9BD, 0xB9BF, 0xB9C1, 0xB9C8, 0xB9C9, /* 0xB0 */
- 0xB9CC, 0xB9CE, 0xB9CF, 0xB9D0, 0xB9D1, 0xB9D2, 0xB9D8, 0xB9D9, /* 0xB0 */
- 0xB9DB, 0xB9DD, 0xB9DE, 0xB9E1, 0xB9E3, 0xB9E4, 0xB9E5, 0xB9E8, /* 0xC0 */
- 0xB9EC, 0xB9F4, 0xB9F5, 0xB9F7, 0xB9F8, 0xB9F9, 0xB9FA, 0xBA00, /* 0xC0 */
- 0xBA01, 0xBA08, 0xBA15, 0xBA38, 0xBA39, 0xBA3C, 0xBA40, 0xBA42, /* 0xD0 */
- 0xBA48, 0xBA49, 0xBA4B, 0xBA4D, 0xBA4E, 0xBA53, 0xBA54, 0xBA55, /* 0xD0 */
- 0xBA58, 0xBA5C, 0xBA64, 0xBA65, 0xBA67, 0xBA68, 0xBA69, 0xBA70, /* 0xE0 */
- 0xBA71, 0xBA74, 0xBA78, 0xBA83, 0xBA84, 0xBA85, 0xBA87, 0xBA8C, /* 0xE0 */
- 0xBAA8, 0xBAA9, 0xBAAB, 0xBAAC, 0xBAB0, 0xBAB2, 0xBAB8, 0xBAB9, /* 0xF0 */
- 0xBABB, 0xBABD, 0xBAC4, 0xBAC8, 0xBAD8, 0xBAD9, 0xBAFC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_B9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD22A, 0xD22B, 0xD22E, 0xD22F, 0xD231, 0xD232, 0xD233, /* 0x40 */
- 0xD235, 0xD236, 0xD237, 0xD238, 0xD239, 0xD23A, 0xD23B, 0xD23E, /* 0x40 */
- 0xD240, 0xD242, 0xD243, 0xD244, 0xD245, 0xD246, 0xD247, 0xD249, /* 0x50 */
- 0xD24A, 0xD24B, 0xD24C, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD24D, 0xD24E, 0xD24F, 0xD250, 0xD251, 0xD252, 0xD253, /* 0x60 */
- 0xD254, 0xD255, 0xD256, 0xD257, 0xD258, 0xD259, 0xD25A, 0xD25B, /* 0x60 */
- 0xD25D, 0xD25E, 0xD25F, 0xD260, 0xD261, 0xD262, 0xD263, 0xD265, /* 0x70 */
- 0xD266, 0xD267, 0xD268, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD269, 0xD26A, 0xD26B, 0xD26C, 0xD26D, 0xD26E, 0xD26F, /* 0x80 */
- 0xD270, 0xD271, 0xD272, 0xD273, 0xD274, 0xD275, 0xD276, 0xD277, /* 0x80 */
- 0xD278, 0xD279, 0xD27A, 0xD27B, 0xD27C, 0xD27D, 0xD27E, 0xD27F, /* 0x90 */
- 0xD282, 0xD283, 0xD285, 0xD286, 0xD287, 0xD289, 0xD28A, 0xD28B, /* 0x90 */
- 0xD28C, 0xBB00, 0xBB04, 0xBB0D, 0xBB0F, 0xBB11, 0xBB18, 0xBB1C, /* 0xA0 */
- 0xBB20, 0xBB29, 0xBB2B, 0xBB34, 0xBB35, 0xBB36, 0xBB38, 0xBB3B, /* 0xA0 */
- 0xBB3C, 0xBB3D, 0xBB3E, 0xBB44, 0xBB45, 0xBB47, 0xBB49, 0xBB4D, /* 0xB0 */
- 0xBB4F, 0xBB50, 0xBB54, 0xBB58, 0xBB61, 0xBB63, 0xBB6C, 0xBB88, /* 0xB0 */
- 0xBB8C, 0xBB90, 0xBBA4, 0xBBA8, 0xBBAC, 0xBBB4, 0xBBB7, 0xBBC0, /* 0xC0 */
- 0xBBC4, 0xBBC8, 0xBBD0, 0xBBD3, 0xBBF8, 0xBBF9, 0xBBFC, 0xBBFF, /* 0xC0 */
- 0xBC00, 0xBC02, 0xBC08, 0xBC09, 0xBC0B, 0xBC0C, 0xBC0D, 0xBC0F, /* 0xD0 */
- 0xBC11, 0xBC14, 0xBC15, 0xBC16, 0xBC17, 0xBC18, 0xBC1B, 0xBC1C, /* 0xD0 */
- 0xBC1D, 0xBC1E, 0xBC1F, 0xBC24, 0xBC25, 0xBC27, 0xBC29, 0xBC2D, /* 0xE0 */
- 0xBC30, 0xBC31, 0xBC34, 0xBC38, 0xBC40, 0xBC41, 0xBC43, 0xBC44, /* 0xE0 */
- 0xBC45, 0xBC49, 0xBC4C, 0xBC4D, 0xBC50, 0xBC5D, 0xBC84, 0xBC85, /* 0xF0 */
- 0xBC88, 0xBC8B, 0xBC8C, 0xBC8E, 0xBC94, 0xBC95, 0xBC97 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_BA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD28D, 0xD28E, 0xD28F, 0xD292, 0xD293, 0xD294, 0xD296, /* 0x40 */
- 0xD297, 0xD298, 0xD299, 0xD29A, 0xD29B, 0xD29D, 0xD29E, 0xD29F, /* 0x40 */
- 0xD2A1, 0xD2A2, 0xD2A3, 0xD2A5, 0xD2A6, 0xD2A7, 0xD2A8, 0xD2A9, /* 0x50 */
- 0xD2AA, 0xD2AB, 0xD2AD, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD2AE, 0xD2AF, 0xD2B0, 0xD2B2, 0xD2B3, 0xD2B4, 0xD2B5, /* 0x60 */
- 0xD2B6, 0xD2B7, 0xD2BA, 0xD2BB, 0xD2BD, 0xD2BE, 0xD2C1, 0xD2C3, /* 0x60 */
- 0xD2C4, 0xD2C5, 0xD2C6, 0xD2C7, 0xD2CA, 0xD2CC, 0xD2CD, 0xD2CE, /* 0x70 */
- 0xD2CF, 0xD2D0, 0xD2D1, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD2D2, 0xD2D3, 0xD2D5, 0xD2D6, 0xD2D7, 0xD2D9, 0xD2DA, /* 0x80 */
- 0xD2DB, 0xD2DD, 0xD2DE, 0xD2DF, 0xD2E0, 0xD2E1, 0xD2E2, 0xD2E3, /* 0x80 */
- 0xD2E6, 0xD2E7, 0xD2E8, 0xD2E9, 0xD2EA, 0xD2EB, 0xD2EC, 0xD2ED, /* 0x90 */
- 0xD2EE, 0xD2EF, 0xD2F2, 0xD2F3, 0xD2F5, 0xD2F6, 0xD2F7, 0xD2F9, /* 0x90 */
- 0xD2FA, 0xBC99, 0xBC9A, 0xBCA0, 0xBCA1, 0xBCA4, 0xBCA7, 0xBCA8, /* 0xA0 */
- 0xBCB0, 0xBCB1, 0xBCB3, 0xBCB4, 0xBCB5, 0xBCBC, 0xBCBD, 0xBCC0, /* 0xA0 */
- 0xBCC4, 0xBCCD, 0xBCCF, 0xBCD0, 0xBCD1, 0xBCD5, 0xBCD8, 0xBCDC, /* 0xB0 */
- 0xBCF4, 0xBCF5, 0xBCF6, 0xBCF8, 0xBCFC, 0xBD04, 0xBD05, 0xBD07, /* 0xB0 */
- 0xBD09, 0xBD10, 0xBD14, 0xBD24, 0xBD2C, 0xBD40, 0xBD48, 0xBD49, /* 0xC0 */
- 0xBD4C, 0xBD50, 0xBD58, 0xBD59, 0xBD64, 0xBD68, 0xBD80, 0xBD81, /* 0xC0 */
- 0xBD84, 0xBD87, 0xBD88, 0xBD89, 0xBD8A, 0xBD90, 0xBD91, 0xBD93, /* 0xD0 */
- 0xBD95, 0xBD99, 0xBD9A, 0xBD9C, 0xBDA4, 0xBDB0, 0xBDB8, 0xBDD4, /* 0xD0 */
- 0xBDD5, 0xBDD8, 0xBDDC, 0xBDE9, 0xBDF0, 0xBDF4, 0xBDF8, 0xBE00, /* 0xE0 */
- 0xBE03, 0xBE05, 0xBE0C, 0xBE0D, 0xBE10, 0xBE14, 0xBE1C, 0xBE1D, /* 0xE0 */
- 0xBE1F, 0xBE44, 0xBE45, 0xBE48, 0xBE4C, 0xBE4E, 0xBE54, 0xBE55, /* 0xF0 */
- 0xBE57, 0xBE59, 0xBE5A, 0xBE5B, 0xBE60, 0xBE61, 0xBE64 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_BB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD2FB, 0xD2FC, 0xD2FD, 0xD2FE, 0xD2FF, 0xD302, 0xD304, /* 0x40 */
- 0xD306, 0xD307, 0xD308, 0xD309, 0xD30A, 0xD30B, 0xD30F, 0xD311, /* 0x40 */
- 0xD312, 0xD313, 0xD315, 0xD317, 0xD318, 0xD319, 0xD31A, 0xD31B, /* 0x50 */
- 0xD31E, 0xD322, 0xD323, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD324, 0xD326, 0xD327, 0xD32A, 0xD32B, 0xD32D, 0xD32E, /* 0x60 */
- 0xD32F, 0xD331, 0xD332, 0xD333, 0xD334, 0xD335, 0xD336, 0xD337, /* 0x60 */
- 0xD33A, 0xD33E, 0xD33F, 0xD340, 0xD341, 0xD342, 0xD343, 0xD346, /* 0x70 */
- 0xD347, 0xD348, 0xD349, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD34A, 0xD34B, 0xD34C, 0xD34D, 0xD34E, 0xD34F, 0xD350, /* 0x80 */
- 0xD351, 0xD352, 0xD353, 0xD354, 0xD355, 0xD356, 0xD357, 0xD358, /* 0x80 */
- 0xD359, 0xD35A, 0xD35B, 0xD35C, 0xD35D, 0xD35E, 0xD35F, 0xD360, /* 0x90 */
- 0xD361, 0xD362, 0xD363, 0xD364, 0xD365, 0xD366, 0xD367, 0xD368, /* 0x90 */
- 0xD369, 0xBE68, 0xBE6A, 0xBE70, 0xBE71, 0xBE73, 0xBE74, 0xBE75, /* 0xA0 */
- 0xBE7B, 0xBE7C, 0xBE7D, 0xBE80, 0xBE84, 0xBE8C, 0xBE8D, 0xBE8F, /* 0xA0 */
- 0xBE90, 0xBE91, 0xBE98, 0xBE99, 0xBEA8, 0xBED0, 0xBED1, 0xBED4, /* 0xB0 */
- 0xBED7, 0xBED8, 0xBEE0, 0xBEE3, 0xBEE4, 0xBEE5, 0xBEEC, 0xBF01, /* 0xB0 */
- 0xBF08, 0xBF09, 0xBF18, 0xBF19, 0xBF1B, 0xBF1C, 0xBF1D, 0xBF40, /* 0xC0 */
- 0xBF41, 0xBF44, 0xBF48, 0xBF50, 0xBF51, 0xBF55, 0xBF94, 0xBFB0, /* 0xC0 */
- 0xBFC5, 0xBFCC, 0xBFCD, 0xBFD0, 0xBFD4, 0xBFDC, 0xBFDF, 0xBFE1, /* 0xD0 */
- 0xC03C, 0xC051, 0xC058, 0xC05C, 0xC060, 0xC068, 0xC069, 0xC090, /* 0xD0 */
- 0xC091, 0xC094, 0xC098, 0xC0A0, 0xC0A1, 0xC0A3, 0xC0A5, 0xC0AC, /* 0xE0 */
- 0xC0AD, 0xC0AF, 0xC0B0, 0xC0B3, 0xC0B4, 0xC0B5, 0xC0B6, 0xC0BC, /* 0xE0 */
- 0xC0BD, 0xC0BF, 0xC0C0, 0xC0C1, 0xC0C5, 0xC0C8, 0xC0C9, 0xC0CC, /* 0xF0 */
- 0xC0D0, 0xC0D8, 0xC0D9, 0xC0DB, 0xC0DC, 0xC0DD, 0xC0E4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_BC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD36A, 0xD36B, 0xD36C, 0xD36D, 0xD36E, 0xD36F, 0xD370, /* 0x40 */
- 0xD371, 0xD372, 0xD373, 0xD374, 0xD375, 0xD376, 0xD377, 0xD378, /* 0x40 */
- 0xD379, 0xD37A, 0xD37B, 0xD37E, 0xD37F, 0xD381, 0xD382, 0xD383, /* 0x50 */
- 0xD385, 0xD386, 0xD387, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD388, 0xD389, 0xD38A, 0xD38B, 0xD38E, 0xD392, 0xD393, /* 0x60 */
- 0xD394, 0xD395, 0xD396, 0xD397, 0xD39A, 0xD39B, 0xD39D, 0xD39E, /* 0x60 */
- 0xD39F, 0xD3A1, 0xD3A2, 0xD3A3, 0xD3A4, 0xD3A5, 0xD3A6, 0xD3A7, /* 0x70 */
- 0xD3AA, 0xD3AC, 0xD3AE, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD3AF, 0xD3B0, 0xD3B1, 0xD3B2, 0xD3B3, 0xD3B5, 0xD3B6, /* 0x80 */
- 0xD3B7, 0xD3B9, 0xD3BA, 0xD3BB, 0xD3BD, 0xD3BE, 0xD3BF, 0xD3C0, /* 0x80 */
- 0xD3C1, 0xD3C2, 0xD3C3, 0xD3C6, 0xD3C7, 0xD3CA, 0xD3CB, 0xD3CC, /* 0x90 */
- 0xD3CD, 0xD3CE, 0xD3CF, 0xD3D1, 0xD3D2, 0xD3D3, 0xD3D4, 0xD3D5, /* 0x90 */
- 0xD3D6, 0xC0E5, 0xC0E8, 0xC0EC, 0xC0F4, 0xC0F5, 0xC0F7, 0xC0F9, /* 0xA0 */
- 0xC100, 0xC104, 0xC108, 0xC110, 0xC115, 0xC11C, 0xC11D, 0xC11E, /* 0xA0 */
- 0xC11F, 0xC120, 0xC123, 0xC124, 0xC126, 0xC127, 0xC12C, 0xC12D, /* 0xB0 */
- 0xC12F, 0xC130, 0xC131, 0xC136, 0xC138, 0xC139, 0xC13C, 0xC140, /* 0xB0 */
- 0xC148, 0xC149, 0xC14B, 0xC14C, 0xC14D, 0xC154, 0xC155, 0xC158, /* 0xC0 */
- 0xC15C, 0xC164, 0xC165, 0xC167, 0xC168, 0xC169, 0xC170, 0xC174, /* 0xC0 */
- 0xC178, 0xC185, 0xC18C, 0xC18D, 0xC18E, 0xC190, 0xC194, 0xC196, /* 0xD0 */
- 0xC19C, 0xC19D, 0xC19F, 0xC1A1, 0xC1A5, 0xC1A8, 0xC1A9, 0xC1AC, /* 0xD0 */
- 0xC1B0, 0xC1BD, 0xC1C4, 0xC1C8, 0xC1CC, 0xC1D4, 0xC1D7, 0xC1D8, /* 0xE0 */
- 0xC1E0, 0xC1E4, 0xC1E8, 0xC1F0, 0xC1F1, 0xC1F3, 0xC1FC, 0xC1FD, /* 0xE0 */
- 0xC200, 0xC204, 0xC20C, 0xC20D, 0xC20F, 0xC211, 0xC218, 0xC219, /* 0xF0 */
- 0xC21C, 0xC21F, 0xC220, 0xC228, 0xC229, 0xC22B, 0xC22D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_BD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD3D7, 0xD3D9, 0xD3DA, 0xD3DB, 0xD3DC, 0xD3DD, 0xD3DE, /* 0x40 */
- 0xD3DF, 0xD3E0, 0xD3E2, 0xD3E4, 0xD3E5, 0xD3E6, 0xD3E7, 0xD3E8, /* 0x40 */
- 0xD3E9, 0xD3EA, 0xD3EB, 0xD3EE, 0xD3EF, 0xD3F1, 0xD3F2, 0xD3F3, /* 0x50 */
- 0xD3F5, 0xD3F6, 0xD3F7, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD3F8, 0xD3F9, 0xD3FA, 0xD3FB, 0xD3FE, 0xD400, 0xD402, /* 0x60 */
- 0xD403, 0xD404, 0xD405, 0xD406, 0xD407, 0xD409, 0xD40A, 0xD40B, /* 0x60 */
- 0xD40C, 0xD40D, 0xD40E, 0xD40F, 0xD410, 0xD411, 0xD412, 0xD413, /* 0x70 */
- 0xD414, 0xD415, 0xD416, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD417, 0xD418, 0xD419, 0xD41A, 0xD41B, 0xD41C, 0xD41E, /* 0x80 */
- 0xD41F, 0xD420, 0xD421, 0xD422, 0xD423, 0xD424, 0xD425, 0xD426, /* 0x80 */
- 0xD427, 0xD428, 0xD429, 0xD42A, 0xD42B, 0xD42C, 0xD42D, 0xD42E, /* 0x90 */
- 0xD42F, 0xD430, 0xD431, 0xD432, 0xD433, 0xD434, 0xD435, 0xD436, /* 0x90 */
- 0xD437, 0xC22F, 0xC231, 0xC232, 0xC234, 0xC248, 0xC250, 0xC251, /* 0xA0 */
- 0xC254, 0xC258, 0xC260, 0xC265, 0xC26C, 0xC26D, 0xC270, 0xC274, /* 0xA0 */
- 0xC27C, 0xC27D, 0xC27F, 0xC281, 0xC288, 0xC289, 0xC290, 0xC298, /* 0xB0 */
- 0xC29B, 0xC29D, 0xC2A4, 0xC2A5, 0xC2A8, 0xC2AC, 0xC2AD, 0xC2B4, /* 0xB0 */
- 0xC2B5, 0xC2B7, 0xC2B9, 0xC2DC, 0xC2DD, 0xC2E0, 0xC2E3, 0xC2E4, /* 0xC0 */
- 0xC2EB, 0xC2EC, 0xC2ED, 0xC2EF, 0xC2F1, 0xC2F6, 0xC2F8, 0xC2F9, /* 0xC0 */
- 0xC2FB, 0xC2FC, 0xC300, 0xC308, 0xC309, 0xC30C, 0xC30D, 0xC313, /* 0xD0 */
- 0xC314, 0xC315, 0xC318, 0xC31C, 0xC324, 0xC325, 0xC328, 0xC329, /* 0xD0 */
- 0xC345, 0xC368, 0xC369, 0xC36C, 0xC370, 0xC372, 0xC378, 0xC379, /* 0xE0 */
- 0xC37C, 0xC37D, 0xC384, 0xC388, 0xC38C, 0xC3C0, 0xC3D8, 0xC3D9, /* 0xE0 */
- 0xC3DC, 0xC3DF, 0xC3E0, 0xC3E2, 0xC3E8, 0xC3E9, 0xC3ED, 0xC3F4, /* 0xF0 */
- 0xC3F5, 0xC3F8, 0xC408, 0xC410, 0xC424, 0xC42C, 0xC430 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_BE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD438, 0xD439, 0xD43A, 0xD43B, 0xD43C, 0xD43D, 0xD43E, /* 0x40 */
- 0xD43F, 0xD441, 0xD442, 0xD443, 0xD445, 0xD446, 0xD447, 0xD448, /* 0x40 */
- 0xD449, 0xD44A, 0xD44B, 0xD44C, 0xD44D, 0xD44E, 0xD44F, 0xD450, /* 0x50 */
- 0xD451, 0xD452, 0xD453, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD454, 0xD455, 0xD456, 0xD457, 0xD458, 0xD459, 0xD45A, /* 0x60 */
- 0xD45B, 0xD45D, 0xD45E, 0xD45F, 0xD461, 0xD462, 0xD463, 0xD465, /* 0x60 */
- 0xD466, 0xD467, 0xD468, 0xD469, 0xD46A, 0xD46B, 0xD46C, 0xD46E, /* 0x70 */
- 0xD470, 0xD471, 0xD472, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD473, 0xD474, 0xD475, 0xD476, 0xD477, 0xD47A, 0xD47B, /* 0x80 */
- 0xD47D, 0xD47E, 0xD481, 0xD483, 0xD484, 0xD485, 0xD486, 0xD487, /* 0x80 */
- 0xD48A, 0xD48C, 0xD48E, 0xD48F, 0xD490, 0xD491, 0xD492, 0xD493, /* 0x90 */
- 0xD495, 0xD496, 0xD497, 0xD498, 0xD499, 0xD49A, 0xD49B, 0xD49C, /* 0x90 */
- 0xD49D, 0xC434, 0xC43C, 0xC43D, 0xC448, 0xC464, 0xC465, 0xC468, /* 0xA0 */
- 0xC46C, 0xC474, 0xC475, 0xC479, 0xC480, 0xC494, 0xC49C, 0xC4B8, /* 0xA0 */
- 0xC4BC, 0xC4E9, 0xC4F0, 0xC4F1, 0xC4F4, 0xC4F8, 0xC4FA, 0xC4FF, /* 0xB0 */
- 0xC500, 0xC501, 0xC50C, 0xC510, 0xC514, 0xC51C, 0xC528, 0xC529, /* 0xB0 */
- 0xC52C, 0xC530, 0xC538, 0xC539, 0xC53B, 0xC53D, 0xC544, 0xC545, /* 0xC0 */
- 0xC548, 0xC549, 0xC54A, 0xC54C, 0xC54D, 0xC54E, 0xC553, 0xC554, /* 0xC0 */
- 0xC555, 0xC557, 0xC558, 0xC559, 0xC55D, 0xC55E, 0xC560, 0xC561, /* 0xD0 */
- 0xC564, 0xC568, 0xC570, 0xC571, 0xC573, 0xC574, 0xC575, 0xC57C, /* 0xD0 */
- 0xC57D, 0xC580, 0xC584, 0xC587, 0xC58C, 0xC58D, 0xC58F, 0xC591, /* 0xE0 */
- 0xC595, 0xC597, 0xC598, 0xC59C, 0xC5A0, 0xC5A9, 0xC5B4, 0xC5B5, /* 0xE0 */
- 0xC5B8, 0xC5B9, 0xC5BB, 0xC5BC, 0xC5BD, 0xC5BE, 0xC5C4, 0xC5C5, /* 0xF0 */
- 0xC5C6, 0xC5C7, 0xC5C8, 0xC5C9, 0xC5CA, 0xC5CC, 0xC5CE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_BF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD49E, 0xD49F, 0xD4A0, 0xD4A1, 0xD4A2, 0xD4A3, 0xD4A4, /* 0x40 */
- 0xD4A5, 0xD4A6, 0xD4A7, 0xD4A8, 0xD4AA, 0xD4AB, 0xD4AC, 0xD4AD, /* 0x40 */
- 0xD4AE, 0xD4AF, 0xD4B0, 0xD4B1, 0xD4B2, 0xD4B3, 0xD4B4, 0xD4B5, /* 0x50 */
- 0xD4B6, 0xD4B7, 0xD4B8, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD4B9, 0xD4BA, 0xD4BB, 0xD4BC, 0xD4BD, 0xD4BE, 0xD4BF, /* 0x60 */
- 0xD4C0, 0xD4C1, 0xD4C2, 0xD4C3, 0xD4C4, 0xD4C5, 0xD4C6, 0xD4C7, /* 0x60 */
- 0xD4C8, 0xD4C9, 0xD4CA, 0xD4CB, 0xD4CD, 0xD4CE, 0xD4CF, 0xD4D1, /* 0x70 */
- 0xD4D2, 0xD4D3, 0xD4D5, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD4D6, 0xD4D7, 0xD4D8, 0xD4D9, 0xD4DA, 0xD4DB, 0xD4DD, /* 0x80 */
- 0xD4DE, 0xD4E0, 0xD4E1, 0xD4E2, 0xD4E3, 0xD4E4, 0xD4E5, 0xD4E6, /* 0x80 */
- 0xD4E7, 0xD4E9, 0xD4EA, 0xD4EB, 0xD4ED, 0xD4EE, 0xD4EF, 0xD4F1, /* 0x90 */
- 0xD4F2, 0xD4F3, 0xD4F4, 0xD4F5, 0xD4F6, 0xD4F7, 0xD4F9, 0xD4FA, /* 0x90 */
- 0xD4FC, 0xC5D0, 0xC5D1, 0xC5D4, 0xC5D8, 0xC5E0, 0xC5E1, 0xC5E3, /* 0xA0 */
- 0xC5E5, 0xC5EC, 0xC5ED, 0xC5EE, 0xC5F0, 0xC5F4, 0xC5F6, 0xC5F7, /* 0xA0 */
- 0xC5FC, 0xC5FD, 0xC5FE, 0xC5FF, 0xC600, 0xC601, 0xC605, 0xC606, /* 0xB0 */
- 0xC607, 0xC608, 0xC60C, 0xC610, 0xC618, 0xC619, 0xC61B, 0xC61C, /* 0xB0 */
- 0xC624, 0xC625, 0xC628, 0xC62C, 0xC62D, 0xC62E, 0xC630, 0xC633, /* 0xC0 */
- 0xC634, 0xC635, 0xC637, 0xC639, 0xC63B, 0xC640, 0xC641, 0xC644, /* 0xC0 */
- 0xC648, 0xC650, 0xC651, 0xC653, 0xC654, 0xC655, 0xC65C, 0xC65D, /* 0xD0 */
- 0xC660, 0xC66C, 0xC66F, 0xC671, 0xC678, 0xC679, 0xC67C, 0xC680, /* 0xD0 */
- 0xC688, 0xC689, 0xC68B, 0xC68D, 0xC694, 0xC695, 0xC698, 0xC69C, /* 0xE0 */
- 0xC6A4, 0xC6A5, 0xC6A7, 0xC6A9, 0xC6B0, 0xC6B1, 0xC6B4, 0xC6B8, /* 0xE0 */
- 0xC6B9, 0xC6BA, 0xC6C0, 0xC6C1, 0xC6C3, 0xC6C5, 0xC6CC, 0xC6CD, /* 0xF0 */
- 0xC6D0, 0xC6D4, 0xC6DC, 0xC6DD, 0xC6E0, 0xC6E1, 0xC6E8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_C0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD4FE, 0xD4FF, 0xD500, 0xD501, 0xD502, 0xD503, 0xD505, /* 0x40 */
- 0xD506, 0xD507, 0xD509, 0xD50A, 0xD50B, 0xD50D, 0xD50E, 0xD50F, /* 0x40 */
- 0xD510, 0xD511, 0xD512, 0xD513, 0xD516, 0xD518, 0xD519, 0xD51A, /* 0x50 */
- 0xD51B, 0xD51C, 0xD51D, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD51E, 0xD51F, 0xD520, 0xD521, 0xD522, 0xD523, 0xD524, /* 0x60 */
- 0xD525, 0xD526, 0xD527, 0xD528, 0xD529, 0xD52A, 0xD52B, 0xD52C, /* 0x60 */
- 0xD52D, 0xD52E, 0xD52F, 0xD530, 0xD531, 0xD532, 0xD533, 0xD534, /* 0x70 */
- 0xD535, 0xD536, 0xD537, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD538, 0xD539, 0xD53A, 0xD53B, 0xD53E, 0xD53F, 0xD541, /* 0x80 */
- 0xD542, 0xD543, 0xD545, 0xD546, 0xD547, 0xD548, 0xD549, 0xD54A, /* 0x80 */
- 0xD54B, 0xD54E, 0xD550, 0xD552, 0xD553, 0xD554, 0xD555, 0xD556, /* 0x90 */
- 0xD557, 0xD55A, 0xD55B, 0xD55D, 0xD55E, 0xD55F, 0xD561, 0xD562, /* 0x90 */
- 0xD563, 0xC6E9, 0xC6EC, 0xC6F0, 0xC6F8, 0xC6F9, 0xC6FD, 0xC704, /* 0xA0 */
- 0xC705, 0xC708, 0xC70C, 0xC714, 0xC715, 0xC717, 0xC719, 0xC720, /* 0xA0 */
- 0xC721, 0xC724, 0xC728, 0xC730, 0xC731, 0xC733, 0xC735, 0xC737, /* 0xB0 */
- 0xC73C, 0xC73D, 0xC740, 0xC744, 0xC74A, 0xC74C, 0xC74D, 0xC74F, /* 0xB0 */
- 0xC751, 0xC752, 0xC753, 0xC754, 0xC755, 0xC756, 0xC757, 0xC758, /* 0xC0 */
- 0xC75C, 0xC760, 0xC768, 0xC76B, 0xC774, 0xC775, 0xC778, 0xC77C, /* 0xC0 */
- 0xC77D, 0xC77E, 0xC783, 0xC784, 0xC785, 0xC787, 0xC788, 0xC789, /* 0xD0 */
- 0xC78A, 0xC78E, 0xC790, 0xC791, 0xC794, 0xC796, 0xC797, 0xC798, /* 0xD0 */
- 0xC79A, 0xC7A0, 0xC7A1, 0xC7A3, 0xC7A4, 0xC7A5, 0xC7A6, 0xC7AC, /* 0xE0 */
- 0xC7AD, 0xC7B0, 0xC7B4, 0xC7BC, 0xC7BD, 0xC7BF, 0xC7C0, 0xC7C1, /* 0xE0 */
- 0xC7C8, 0xC7C9, 0xC7CC, 0xC7CE, 0xC7D0, 0xC7D8, 0xC7DD, 0xC7E4, /* 0xF0 */
- 0xC7E8, 0xC7EC, 0xC800, 0xC801, 0xC804, 0xC808, 0xC80A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_C1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD564, 0xD566, 0xD567, 0xD56A, 0xD56C, 0xD56E, 0xD56F, /* 0x40 */
- 0xD570, 0xD571, 0xD572, 0xD573, 0xD576, 0xD577, 0xD579, 0xD57A, /* 0x40 */
- 0xD57B, 0xD57D, 0xD57E, 0xD57F, 0xD580, 0xD581, 0xD582, 0xD583, /* 0x50 */
- 0xD586, 0xD58A, 0xD58B, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD58C, 0xD58D, 0xD58E, 0xD58F, 0xD591, 0xD592, 0xD593, /* 0x60 */
- 0xD594, 0xD595, 0xD596, 0xD597, 0xD598, 0xD599, 0xD59A, 0xD59B, /* 0x60 */
- 0xD59C, 0xD59D, 0xD59E, 0xD59F, 0xD5A0, 0xD5A1, 0xD5A2, 0xD5A3, /* 0x70 */
- 0xD5A4, 0xD5A6, 0xD5A7, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD5A8, 0xD5A9, 0xD5AA, 0xD5AB, 0xD5AC, 0xD5AD, 0xD5AE, /* 0x80 */
- 0xD5AF, 0xD5B0, 0xD5B1, 0xD5B2, 0xD5B3, 0xD5B4, 0xD5B5, 0xD5B6, /* 0x80 */
- 0xD5B7, 0xD5B8, 0xD5B9, 0xD5BA, 0xD5BB, 0xD5BC, 0xD5BD, 0xD5BE, /* 0x90 */
- 0xD5BF, 0xD5C0, 0xD5C1, 0xD5C2, 0xD5C3, 0xD5C4, 0xD5C5, 0xD5C6, /* 0x90 */
- 0xD5C7, 0xC810, 0xC811, 0xC813, 0xC815, 0xC816, 0xC81C, 0xC81D, /* 0xA0 */
- 0xC820, 0xC824, 0xC82C, 0xC82D, 0xC82F, 0xC831, 0xC838, 0xC83C, /* 0xA0 */
- 0xC840, 0xC848, 0xC849, 0xC84C, 0xC84D, 0xC854, 0xC870, 0xC871, /* 0xB0 */
- 0xC874, 0xC878, 0xC87A, 0xC880, 0xC881, 0xC883, 0xC885, 0xC886, /* 0xB0 */
- 0xC887, 0xC88B, 0xC88C, 0xC88D, 0xC894, 0xC89D, 0xC89F, 0xC8A1, /* 0xC0 */
- 0xC8A8, 0xC8BC, 0xC8BD, 0xC8C4, 0xC8C8, 0xC8CC, 0xC8D4, 0xC8D5, /* 0xC0 */
- 0xC8D7, 0xC8D9, 0xC8E0, 0xC8E1, 0xC8E4, 0xC8F5, 0xC8FC, 0xC8FD, /* 0xD0 */
- 0xC900, 0xC904, 0xC905, 0xC906, 0xC90C, 0xC90D, 0xC90F, 0xC911, /* 0xD0 */
- 0xC918, 0xC92C, 0xC934, 0xC950, 0xC951, 0xC954, 0xC958, 0xC960, /* 0xE0 */
- 0xC961, 0xC963, 0xC96C, 0xC970, 0xC974, 0xC97C, 0xC988, 0xC989, /* 0xE0 */
- 0xC98C, 0xC990, 0xC998, 0xC999, 0xC99B, 0xC99D, 0xC9C0, 0xC9C1, /* 0xF0 */
- 0xC9C4, 0xC9C7, 0xC9C8, 0xC9CA, 0xC9D0, 0xC9D1, 0xC9D3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_C2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD5CA, 0xD5CB, 0xD5CD, 0xD5CE, 0xD5CF, 0xD5D1, 0xD5D3, /* 0x40 */
- 0xD5D4, 0xD5D5, 0xD5D6, 0xD5D7, 0xD5DA, 0xD5DC, 0xD5DE, 0xD5DF, /* 0x40 */
- 0xD5E0, 0xD5E1, 0xD5E2, 0xD5E3, 0xD5E6, 0xD5E7, 0xD5E9, 0xD5EA, /* 0x50 */
- 0xD5EB, 0xD5ED, 0xD5EE, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD5EF, 0xD5F0, 0xD5F1, 0xD5F2, 0xD5F3, 0xD5F6, 0xD5F8, /* 0x60 */
- 0xD5FA, 0xD5FB, 0xD5FC, 0xD5FD, 0xD5FE, 0xD5FF, 0xD602, 0xD603, /* 0x60 */
- 0xD605, 0xD606, 0xD607, 0xD609, 0xD60A, 0xD60B, 0xD60C, 0xD60D, /* 0x70 */
- 0xD60E, 0xD60F, 0xD612, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD616, 0xD617, 0xD618, 0xD619, 0xD61A, 0xD61B, 0xD61D, /* 0x80 */
- 0xD61E, 0xD61F, 0xD621, 0xD622, 0xD623, 0xD625, 0xD626, 0xD627, /* 0x80 */
- 0xD628, 0xD629, 0xD62A, 0xD62B, 0xD62C, 0xD62E, 0xD62F, 0xD630, /* 0x90 */
- 0xD631, 0xD632, 0xD633, 0xD634, 0xD635, 0xD636, 0xD637, 0xD63A, /* 0x90 */
- 0xD63B, 0xC9D5, 0xC9D6, 0xC9D9, 0xC9DA, 0xC9DC, 0xC9DD, 0xC9E0, /* 0xA0 */
- 0xC9E2, 0xC9E4, 0xC9E7, 0xC9EC, 0xC9ED, 0xC9EF, 0xC9F0, 0xC9F1, /* 0xA0 */
- 0xC9F8, 0xC9F9, 0xC9FC, 0xCA00, 0xCA08, 0xCA09, 0xCA0B, 0xCA0C, /* 0xB0 */
- 0xCA0D, 0xCA14, 0xCA18, 0xCA29, 0xCA4C, 0xCA4D, 0xCA50, 0xCA54, /* 0xB0 */
- 0xCA5C, 0xCA5D, 0xCA5F, 0xCA60, 0xCA61, 0xCA68, 0xCA7D, 0xCA84, /* 0xC0 */
- 0xCA98, 0xCABC, 0xCABD, 0xCAC0, 0xCAC4, 0xCACC, 0xCACD, 0xCACF, /* 0xC0 */
- 0xCAD1, 0xCAD3, 0xCAD8, 0xCAD9, 0xCAE0, 0xCAEC, 0xCAF4, 0xCB08, /* 0xD0 */
- 0xCB10, 0xCB14, 0xCB18, 0xCB20, 0xCB21, 0xCB41, 0xCB48, 0xCB49, /* 0xD0 */
- 0xCB4C, 0xCB50, 0xCB58, 0xCB59, 0xCB5D, 0xCB64, 0xCB78, 0xCB79, /* 0xE0 */
- 0xCB9C, 0xCBB8, 0xCBD4, 0xCBE4, 0xCBE7, 0xCBE9, 0xCC0C, 0xCC0D, /* 0xE0 */
- 0xCC10, 0xCC14, 0xCC1C, 0xCC1D, 0xCC21, 0xCC22, 0xCC27, 0xCC28, /* 0xF0 */
- 0xCC29, 0xCC2C, 0xCC2E, 0xCC30, 0xCC38, 0xCC39, 0xCC3B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_C3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD63D, 0xD63E, 0xD63F, 0xD641, 0xD642, 0xD643, 0xD644, /* 0x40 */
- 0xD646, 0xD647, 0xD64A, 0xD64C, 0xD64E, 0xD64F, 0xD650, 0xD652, /* 0x40 */
- 0xD653, 0xD656, 0xD657, 0xD659, 0xD65A, 0xD65B, 0xD65D, 0xD65E, /* 0x50 */
- 0xD65F, 0xD660, 0xD661, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD662, 0xD663, 0xD664, 0xD665, 0xD666, 0xD668, 0xD66A, /* 0x60 */
- 0xD66B, 0xD66C, 0xD66D, 0xD66E, 0xD66F, 0xD672, 0xD673, 0xD675, /* 0x60 */
- 0xD676, 0xD677, 0xD678, 0xD679, 0xD67A, 0xD67B, 0xD67C, 0xD67D, /* 0x70 */
- 0xD67E, 0xD67F, 0xD680, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD681, 0xD682, 0xD684, 0xD686, 0xD687, 0xD688, 0xD689, /* 0x80 */
- 0xD68A, 0xD68B, 0xD68E, 0xD68F, 0xD691, 0xD692, 0xD693, 0xD695, /* 0x80 */
- 0xD696, 0xD697, 0xD698, 0xD699, 0xD69A, 0xD69B, 0xD69C, 0xD69E, /* 0x90 */
- 0xD6A0, 0xD6A2, 0xD6A3, 0xD6A4, 0xD6A5, 0xD6A6, 0xD6A7, 0xD6A9, /* 0x90 */
- 0xD6AA, 0xCC3C, 0xCC3D, 0xCC3E, 0xCC44, 0xCC45, 0xCC48, 0xCC4C, /* 0xA0 */
- 0xCC54, 0xCC55, 0xCC57, 0xCC58, 0xCC59, 0xCC60, 0xCC64, 0xCC66, /* 0xA0 */
- 0xCC68, 0xCC70, 0xCC75, 0xCC98, 0xCC99, 0xCC9C, 0xCCA0, 0xCCA8, /* 0xB0 */
- 0xCCA9, 0xCCAB, 0xCCAC, 0xCCAD, 0xCCB4, 0xCCB5, 0xCCB8, 0xCCBC, /* 0xB0 */
- 0xCCC4, 0xCCC5, 0xCCC7, 0xCCC9, 0xCCD0, 0xCCD4, 0xCCE4, 0xCCEC, /* 0xC0 */
- 0xCCF0, 0xCD01, 0xCD08, 0xCD09, 0xCD0C, 0xCD10, 0xCD18, 0xCD19, /* 0xC0 */
- 0xCD1B, 0xCD1D, 0xCD24, 0xCD28, 0xCD2C, 0xCD39, 0xCD5C, 0xCD60, /* 0xD0 */
- 0xCD64, 0xCD6C, 0xCD6D, 0xCD6F, 0xCD71, 0xCD78, 0xCD88, 0xCD94, /* 0xD0 */
- 0xCD95, 0xCD98, 0xCD9C, 0xCDA4, 0xCDA5, 0xCDA7, 0xCDA9, 0xCDB0, /* 0xE0 */
- 0xCDC4, 0xCDCC, 0xCDD0, 0xCDE8, 0xCDEC, 0xCDF0, 0xCDF8, 0xCDF9, /* 0xE0 */
- 0xCDFB, 0xCDFD, 0xCE04, 0xCE08, 0xCE0C, 0xCE14, 0xCE19, 0xCE20, /* 0xF0 */
- 0xCE21, 0xCE24, 0xCE28, 0xCE30, 0xCE31, 0xCE33, 0xCE35 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_C4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD6AB, 0xD6AD, 0xD6AE, 0xD6AF, 0xD6B1, 0xD6B2, 0xD6B3, /* 0x40 */
- 0xD6B4, 0xD6B5, 0xD6B6, 0xD6B7, 0xD6B8, 0xD6BA, 0xD6BC, 0xD6BD, /* 0x40 */
- 0xD6BE, 0xD6BF, 0xD6C0, 0xD6C1, 0xD6C2, 0xD6C3, 0xD6C6, 0xD6C7, /* 0x50 */
- 0xD6C9, 0xD6CA, 0xD6CB, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD6CD, 0xD6CE, 0xD6CF, 0xD6D0, 0xD6D2, 0xD6D3, 0xD6D5, /* 0x60 */
- 0xD6D6, 0xD6D8, 0xD6DA, 0xD6DB, 0xD6DC, 0xD6DD, 0xD6DE, 0xD6DF, /* 0x60 */
- 0xD6E1, 0xD6E2, 0xD6E3, 0xD6E5, 0xD6E6, 0xD6E7, 0xD6E9, 0xD6EA, /* 0x70 */
- 0xD6EB, 0xD6EC, 0xD6ED, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD6EE, 0xD6EF, 0xD6F1, 0xD6F2, 0xD6F3, 0xD6F4, 0xD6F6, /* 0x80 */
- 0xD6F7, 0xD6F8, 0xD6F9, 0xD6FA, 0xD6FB, 0xD6FE, 0xD6FF, 0xD701, /* 0x80 */
- 0xD702, 0xD703, 0xD705, 0xD706, 0xD707, 0xD708, 0xD709, 0xD70A, /* 0x90 */
- 0xD70B, 0xD70C, 0xD70D, 0xD70E, 0xD70F, 0xD710, 0xD712, 0xD713, /* 0x90 */
- 0xD714, 0xCE58, 0xCE59, 0xCE5C, 0xCE5F, 0xCE60, 0xCE61, 0xCE68, /* 0xA0 */
- 0xCE69, 0xCE6B, 0xCE6D, 0xCE74, 0xCE75, 0xCE78, 0xCE7C, 0xCE84, /* 0xA0 */
- 0xCE85, 0xCE87, 0xCE89, 0xCE90, 0xCE91, 0xCE94, 0xCE98, 0xCEA0, /* 0xB0 */
- 0xCEA1, 0xCEA3, 0xCEA4, 0xCEA5, 0xCEAC, 0xCEAD, 0xCEC1, 0xCEE4, /* 0xB0 */
- 0xCEE5, 0xCEE8, 0xCEEB, 0xCEEC, 0xCEF4, 0xCEF5, 0xCEF7, 0xCEF8, /* 0xC0 */
- 0xCEF9, 0xCF00, 0xCF01, 0xCF04, 0xCF08, 0xCF10, 0xCF11, 0xCF13, /* 0xC0 */
- 0xCF15, 0xCF1C, 0xCF20, 0xCF24, 0xCF2C, 0xCF2D, 0xCF2F, 0xCF30, /* 0xD0 */
- 0xCF31, 0xCF38, 0xCF54, 0xCF55, 0xCF58, 0xCF5C, 0xCF64, 0xCF65, /* 0xD0 */
- 0xCF67, 0xCF69, 0xCF70, 0xCF71, 0xCF74, 0xCF78, 0xCF80, 0xCF85, /* 0xE0 */
- 0xCF8C, 0xCFA1, 0xCFA8, 0xCFB0, 0xCFC4, 0xCFE0, 0xCFE1, 0xCFE4, /* 0xE0 */
- 0xCFE8, 0xCFF0, 0xCFF1, 0xCFF3, 0xCFF5, 0xCFFC, 0xD000, 0xD004, /* 0xF0 */
- 0xD011, 0xD018, 0xD02D, 0xD034, 0xD035, 0xD038, 0xD03C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_C5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD715, 0xD716, 0xD717, 0xD71A, 0xD71B, 0xD71D, 0xD71E, /* 0x40 */
- 0xD71F, 0xD721, 0xD722, 0xD723, 0xD724, 0xD725, 0xD726, 0xD727, /* 0x40 */
- 0xD72A, 0xD72C, 0xD72E, 0xD72F, 0xD730, 0xD731, 0xD732, 0xD733, /* 0x50 */
- 0xD736, 0xD737, 0xD739, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD73A, 0xD73B, 0xD73D, 0xD73E, 0xD73F, 0xD740, 0xD741, /* 0x60 */
- 0xD742, 0xD743, 0xD745, 0xD746, 0xD748, 0xD74A, 0xD74B, 0xD74C, /* 0x60 */
- 0xD74D, 0xD74E, 0xD74F, 0xD752, 0xD753, 0xD755, 0xD75A, 0xD75B, /* 0x70 */
- 0xD75C, 0xD75D, 0xD75E, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD75F, 0xD762, 0xD764, 0xD766, 0xD767, 0xD768, 0xD76A, /* 0x80 */
- 0xD76B, 0xD76D, 0xD76E, 0xD76F, 0xD771, 0xD772, 0xD773, 0xD775, /* 0x80 */
- 0xD776, 0xD777, 0xD778, 0xD779, 0xD77A, 0xD77B, 0xD77E, 0xD77F, /* 0x90 */
- 0xD780, 0xD782, 0xD783, 0xD784, 0xD785, 0xD786, 0xD787, 0xD78A, /* 0x90 */
- 0xD78B, 0xD044, 0xD045, 0xD047, 0xD049, 0xD050, 0xD054, 0xD058, /* 0xA0 */
- 0xD060, 0xD06C, 0xD06D, 0xD070, 0xD074, 0xD07C, 0xD07D, 0xD081, /* 0xA0 */
- 0xD0A4, 0xD0A5, 0xD0A8, 0xD0AC, 0xD0B4, 0xD0B5, 0xD0B7, 0xD0B9, /* 0xB0 */
- 0xD0C0, 0xD0C1, 0xD0C4, 0xD0C8, 0xD0C9, 0xD0D0, 0xD0D1, 0xD0D3, /* 0xB0 */
- 0xD0D4, 0xD0D5, 0xD0DC, 0xD0DD, 0xD0E0, 0xD0E4, 0xD0EC, 0xD0ED, /* 0xC0 */
- 0xD0EF, 0xD0F0, 0xD0F1, 0xD0F8, 0xD10D, 0xD130, 0xD131, 0xD134, /* 0xC0 */
- 0xD138, 0xD13A, 0xD140, 0xD141, 0xD143, 0xD144, 0xD145, 0xD14C, /* 0xD0 */
- 0xD14D, 0xD150, 0xD154, 0xD15C, 0xD15D, 0xD15F, 0xD161, 0xD168, /* 0xD0 */
- 0xD16C, 0xD17C, 0xD184, 0xD188, 0xD1A0, 0xD1A1, 0xD1A4, 0xD1A8, /* 0xE0 */
- 0xD1B0, 0xD1B1, 0xD1B3, 0xD1B5, 0xD1BA, 0xD1BC, 0xD1C0, 0xD1D8, /* 0xE0 */
- 0xD1F4, 0xD1F8, 0xD207, 0xD209, 0xD210, 0xD22C, 0xD22D, 0xD230, /* 0xF0 */
- 0xD234, 0xD23C, 0xD23D, 0xD23F, 0xD241, 0xD248, 0xD25C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_C6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD78D, 0xD78E, 0xD78F, 0xD791, 0xD792, 0xD793, 0xD794, /* 0x40 */
- 0xD795, 0xD796, 0xD797, 0xD79A, 0xD79C, 0xD79E, 0xD79F, 0xD7A0, /* 0x40 */
- 0xD7A1, 0xD7A2, 0xD7A3, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xD264, 0xD280, 0xD281, 0xD284, 0xD288, 0xD290, 0xD291, /* 0xA0 */
- 0xD295, 0xD29C, 0xD2A0, 0xD2A4, 0xD2AC, 0xD2B1, 0xD2B8, 0xD2B9, /* 0xA0 */
- 0xD2BC, 0xD2BF, 0xD2C0, 0xD2C2, 0xD2C8, 0xD2C9, 0xD2CB, 0xD2D4, /* 0xB0 */
- 0xD2D8, 0xD2DC, 0xD2E4, 0xD2E5, 0xD2F0, 0xD2F1, 0xD2F4, 0xD2F8, /* 0xB0 */
- 0xD300, 0xD301, 0xD303, 0xD305, 0xD30C, 0xD30D, 0xD30E, 0xD310, /* 0xC0 */
- 0xD314, 0xD316, 0xD31C, 0xD31D, 0xD31F, 0xD320, 0xD321, 0xD325, /* 0xC0 */
- 0xD328, 0xD329, 0xD32C, 0xD330, 0xD338, 0xD339, 0xD33B, 0xD33C, /* 0xD0 */
- 0xD33D, 0xD344, 0xD345, 0xD37C, 0xD37D, 0xD380, 0xD384, 0xD38C, /* 0xD0 */
- 0xD38D, 0xD38F, 0xD390, 0xD391, 0xD398, 0xD399, 0xD39C, 0xD3A0, /* 0xE0 */
- 0xD3A8, 0xD3A9, 0xD3AB, 0xD3AD, 0xD3B4, 0xD3B8, 0xD3BC, 0xD3C4, /* 0xE0 */
- 0xD3C5, 0xD3C8, 0xD3C9, 0xD3D0, 0xD3D8, 0xD3E1, 0xD3E3, 0xD3EC, /* 0xF0 */
- 0xD3ED, 0xD3F0, 0xD3F4, 0xD3FC, 0xD3FD, 0xD3FF, 0xD401 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_C7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD408, 0xD41D, 0xD440, 0xD444, 0xD45C, 0xD460, 0xD464, /* 0xA0 */
- 0xD46D, 0xD46F, 0xD478, 0xD479, 0xD47C, 0xD47F, 0xD480, 0xD482, /* 0xA0 */
- 0xD488, 0xD489, 0xD48B, 0xD48D, 0xD494, 0xD4A9, 0xD4CC, 0xD4D0, /* 0xB0 */
- 0xD4D4, 0xD4DC, 0xD4DF, 0xD4E8, 0xD4EC, 0xD4F0, 0xD4F8, 0xD4FB, /* 0xB0 */
- 0xD4FD, 0xD504, 0xD508, 0xD50C, 0xD514, 0xD515, 0xD517, 0xD53C, /* 0xC0 */
- 0xD53D, 0xD540, 0xD544, 0xD54C, 0xD54D, 0xD54F, 0xD551, 0xD558, /* 0xC0 */
- 0xD559, 0xD55C, 0xD560, 0xD565, 0xD568, 0xD569, 0xD56B, 0xD56D, /* 0xD0 */
- 0xD574, 0xD575, 0xD578, 0xD57C, 0xD584, 0xD585, 0xD587, 0xD588, /* 0xD0 */
- 0xD589, 0xD590, 0xD5A5, 0xD5C8, 0xD5C9, 0xD5CC, 0xD5D0, 0xD5D2, /* 0xE0 */
- 0xD5D8, 0xD5D9, 0xD5DB, 0xD5DD, 0xD5E4, 0xD5E5, 0xD5E8, 0xD5EC, /* 0xE0 */
- 0xD5F4, 0xD5F5, 0xD5F7, 0xD5F9, 0xD600, 0xD601, 0xD604, 0xD608, /* 0xF0 */
- 0xD610, 0xD611, 0xD613, 0xD614, 0xD615, 0xD61C, 0xD620 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_C8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD624, 0xD62D, 0xD638, 0xD639, 0xD63C, 0xD640, 0xD645, /* 0xA0 */
- 0xD648, 0xD649, 0xD64B, 0xD64D, 0xD651, 0xD654, 0xD655, 0xD658, /* 0xA0 */
- 0xD65C, 0xD667, 0xD669, 0xD670, 0xD671, 0xD674, 0xD683, 0xD685, /* 0xB0 */
- 0xD68C, 0xD68D, 0xD690, 0xD694, 0xD69D, 0xD69F, 0xD6A1, 0xD6A8, /* 0xB0 */
- 0xD6AC, 0xD6B0, 0xD6B9, 0xD6BB, 0xD6C4, 0xD6C5, 0xD6C8, 0xD6CC, /* 0xC0 */
- 0xD6D1, 0xD6D4, 0xD6D7, 0xD6D9, 0xD6E0, 0xD6E4, 0xD6E8, 0xD6F0, /* 0xC0 */
- 0xD6F5, 0xD6FC, 0xD6FD, 0xD700, 0xD704, 0xD711, 0xD718, 0xD719, /* 0xD0 */
- 0xD71C, 0xD720, 0xD728, 0xD729, 0xD72B, 0xD72D, 0xD734, 0xD735, /* 0xD0 */
- 0xD738, 0xD73C, 0xD744, 0xD747, 0xD749, 0xD750, 0xD751, 0xD754, /* 0xE0 */
- 0xD756, 0xD757, 0xD758, 0xD759, 0xD760, 0xD761, 0xD763, 0xD765, /* 0xE0 */
- 0xD769, 0xD76C, 0xD770, 0xD774, 0xD77C, 0xD77D, 0xD781, 0xD788, /* 0xF0 */
- 0xD789, 0xD78C, 0xD790, 0xD798, 0xD799, 0xD79B, 0xD79D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_CA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4F3D, 0x4F73, 0x5047, 0x50F9, 0x52A0, 0x53EF, 0x5475, /* 0xA0 */
- 0x54E5, 0x5609, 0x5AC1, 0x5BB6, 0x6687, 0x67B6, 0x67B7, 0x67EF, /* 0xA0 */
- 0x6B4C, 0x73C2, 0x75C2, 0x7A3C, 0x82DB, 0x8304, 0x8857, 0x8888, /* 0xB0 */
- 0x8A36, 0x8CC8, 0x8DCF, 0x8EFB, 0x8FE6, 0x99D5, 0x523B, 0x5374, /* 0xB0 */
- 0x5404, 0x606A, 0x6164, 0x6BBC, 0x73CF, 0x811A, 0x89BA, 0x89D2, /* 0xC0 */
- 0x95A3, 0x4F83, 0x520A, 0x58BE, 0x5978, 0x59E6, 0x5E72, 0x5E79, /* 0xC0 */
- 0x61C7, 0x63C0, 0x6746, 0x67EC, 0x687F, 0x6F97, 0x764E, 0x770B, /* 0xD0 */
- 0x78F5, 0x7A08, 0x7AFF, 0x7C21, 0x809D, 0x826E, 0x8271, 0x8AEB, /* 0xD0 */
- 0x9593, 0x4E6B, 0x559D, 0x66F7, 0x6E34, 0x78A3, 0x7AED, 0x845B, /* 0xE0 */
- 0x8910, 0x874E, 0x97A8, 0x52D8, 0x574E, 0x582A, 0x5D4C, 0x611F, /* 0xE0 */
- 0x61BE, 0x6221, 0x6562, 0x67D1, 0x6A44, 0x6E1B, 0x7518, 0x75B3, /* 0xF0 */
- 0x76E3, 0x77B0, 0x7D3A, 0x90AF, 0x9451, 0x9452, 0x9F95 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_CB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5323, 0x5CAC, 0x7532, 0x80DB, 0x9240, 0x9598, 0x525B, /* 0xA0 */
- 0x5808, 0x59DC, 0x5CA1, 0x5D17, 0x5EB7, 0x5F3A, 0x5F4A, 0x6177, /* 0xA0 */
- 0x6C5F, 0x757A, 0x7586, 0x7CE0, 0x7D73, 0x7DB1, 0x7F8C, 0x8154, /* 0xB0 */
- 0x8221, 0x8591, 0x8941, 0x8B1B, 0x92FC, 0x964D, 0x9C47, 0x4ECB, /* 0xB0 */
- 0x4EF7, 0x500B, 0x51F1, 0x584F, 0x6137, 0x613E, 0x6168, 0x6539, /* 0xC0 */
- 0x69EA, 0x6F11, 0x75A5, 0x7686, 0x76D6, 0x7B87, 0x82A5, 0x84CB, /* 0xC0 */
- 0xF900, 0x93A7, 0x958B, 0x5580, 0x5BA2, 0x5751, 0xF901, 0x7CB3, /* 0xD0 */
- 0x7FB9, 0x91B5, 0x5028, 0x53BB, 0x5C45, 0x5DE8, 0x62D2, 0x636E, /* 0xD0 */
- 0x64DA, 0x64E7, 0x6E20, 0x70AC, 0x795B, 0x8DDD, 0x8E1E, 0xF902, /* 0xE0 */
- 0x907D, 0x9245, 0x92F8, 0x4E7E, 0x4EF6, 0x5065, 0x5DFE, 0x5EFA, /* 0xE0 */
- 0x6106, 0x6957, 0x8171, 0x8654, 0x8E47, 0x9375, 0x9A2B, 0x4E5E, /* 0xF0 */
- 0x5091, 0x6770, 0x6840, 0x5109, 0x528D, 0x5292, 0x6AA2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_CC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x77BC, 0x9210, 0x9ED4, 0x52AB, 0x602F, 0x8FF2, 0x5048, /* 0xA0 */
- 0x61A9, 0x63ED, 0x64CA, 0x683C, 0x6A84, 0x6FC0, 0x8188, 0x89A1, /* 0xA0 */
- 0x9694, 0x5805, 0x727D, 0x72AC, 0x7504, 0x7D79, 0x7E6D, 0x80A9, /* 0xB0 */
- 0x898B, 0x8B74, 0x9063, 0x9D51, 0x6289, 0x6C7A, 0x6F54, 0x7D50, /* 0xB0 */
- 0x7F3A, 0x8A23, 0x517C, 0x614A, 0x7B9D, 0x8B19, 0x9257, 0x938C, /* 0xC0 */
- 0x4EAC, 0x4FD3, 0x501E, 0x50BE, 0x5106, 0x52C1, 0x52CD, 0x537F, /* 0xC0 */
- 0x5770, 0x5883, 0x5E9A, 0x5F91, 0x6176, 0x61AC, 0x64CE, 0x656C, /* 0xD0 */
- 0x666F, 0x66BB, 0x66F4, 0x6897, 0x6D87, 0x7085, 0x70F1, 0x749F, /* 0xD0 */
- 0x74A5, 0x74CA, 0x75D9, 0x786C, 0x78EC, 0x7ADF, 0x7AF6, 0x7D45, /* 0xE0 */
- 0x7D93, 0x8015, 0x803F, 0x811B, 0x8396, 0x8B66, 0x8F15, 0x9015, /* 0xE0 */
- 0x93E1, 0x9803, 0x9838, 0x9A5A, 0x9BE8, 0x4FC2, 0x5553, 0x583A, /* 0xF0 */
- 0x5951, 0x5B63, 0x5C46, 0x60B8, 0x6212, 0x6842, 0x68B0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_CD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x68E8, 0x6EAA, 0x754C, 0x7678, 0x78CE, 0x7A3D, 0x7CFB, /* 0xA0 */
- 0x7E6B, 0x7E7C, 0x8A08, 0x8AA1, 0x8C3F, 0x968E, 0x9DC4, 0x53E4, /* 0xA0 */
- 0x53E9, 0x544A, 0x5471, 0x56FA, 0x59D1, 0x5B64, 0x5C3B, 0x5EAB, /* 0xB0 */
- 0x62F7, 0x6537, 0x6545, 0x6572, 0x66A0, 0x67AF, 0x69C1, 0x6CBD, /* 0xB0 */
- 0x75FC, 0x7690, 0x777E, 0x7A3F, 0x7F94, 0x8003, 0x80A1, 0x818F, /* 0xC0 */
- 0x82E6, 0x82FD, 0x83F0, 0x85C1, 0x8831, 0x88B4, 0x8AA5, 0xF903, /* 0xC0 */
- 0x8F9C, 0x932E, 0x96C7, 0x9867, 0x9AD8, 0x9F13, 0x54ED, 0x659B, /* 0xD0 */
- 0x66F2, 0x688F, 0x7A40, 0x8C37, 0x9D60, 0x56F0, 0x5764, 0x5D11, /* 0xD0 */
- 0x6606, 0x68B1, 0x68CD, 0x6EFE, 0x7428, 0x889E, 0x9BE4, 0x6C68, /* 0xE0 */
- 0xF904, 0x9AA8, 0x4F9B, 0x516C, 0x5171, 0x529F, 0x5B54, 0x5DE5, /* 0xE0 */
- 0x6050, 0x606D, 0x62F1, 0x63A7, 0x653B, 0x73D9, 0x7A7A, 0x86A3, /* 0xF0 */
- 0x8CA2, 0x978F, 0x4E32, 0x5BE1, 0x6208, 0x679C, 0x74DC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_CE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x79D1, 0x83D3, 0x8A87, 0x8AB2, 0x8DE8, 0x904E, 0x934B, /* 0xA0 */
- 0x9846, 0x5ED3, 0x69E8, 0x85FF, 0x90ED, 0xF905, 0x51A0, 0x5B98, /* 0xA0 */
- 0x5BEC, 0x6163, 0x68FA, 0x6B3E, 0x704C, 0x742F, 0x74D8, 0x7BA1, /* 0xB0 */
- 0x7F50, 0x83C5, 0x89C0, 0x8CAB, 0x95DC, 0x9928, 0x522E, 0x605D, /* 0xB0 */
- 0x62EC, 0x9002, 0x4F8A, 0x5149, 0x5321, 0x58D9, 0x5EE3, 0x66E0, /* 0xC0 */
- 0x6D38, 0x709A, 0x72C2, 0x73D6, 0x7B50, 0x80F1, 0x945B, 0x5366, /* 0xC0 */
- 0x639B, 0x7F6B, 0x4E56, 0x5080, 0x584A, 0x58DE, 0x602A, 0x6127, /* 0xD0 */
- 0x62D0, 0x69D0, 0x9B41, 0x5B8F, 0x7D18, 0x80B1, 0x8F5F, 0x4EA4, /* 0xD0 */
- 0x50D1, 0x54AC, 0x55AC, 0x5B0C, 0x5DA0, 0x5DE7, 0x652A, 0x654E, /* 0xE0 */
- 0x6821, 0x6A4B, 0x72E1, 0x768E, 0x77EF, 0x7D5E, 0x7FF9, 0x81A0, /* 0xE0 */
- 0x854E, 0x86DF, 0x8F03, 0x8F4E, 0x90CA, 0x9903, 0x9A55, 0x9BAB, /* 0xF0 */
- 0x4E18, 0x4E45, 0x4E5D, 0x4EC7, 0x4FF1, 0x5177, 0x52FE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_CF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5340, 0x53E3, 0x53E5, 0x548E, 0x5614, 0x5775, 0x57A2, /* 0xA0 */
- 0x5BC7, 0x5D87, 0x5ED0, 0x61FC, 0x62D8, 0x6551, 0x67B8, 0x67E9, /* 0xA0 */
- 0x69CB, 0x6B50, 0x6BC6, 0x6BEC, 0x6C42, 0x6E9D, 0x7078, 0x72D7, /* 0xB0 */
- 0x7396, 0x7403, 0x77BF, 0x77E9, 0x7A76, 0x7D7F, 0x8009, 0x81FC, /* 0xB0 */
- 0x8205, 0x820A, 0x82DF, 0x8862, 0x8B33, 0x8CFC, 0x8EC0, 0x9011, /* 0xC0 */
- 0x90B1, 0x9264, 0x92B6, 0x99D2, 0x9A45, 0x9CE9, 0x9DD7, 0x9F9C, /* 0xC0 */
- 0x570B, 0x5C40, 0x83CA, 0x97A0, 0x97AB, 0x9EB4, 0x541B, 0x7A98, /* 0xD0 */
- 0x7FA4, 0x88D9, 0x8ECD, 0x90E1, 0x5800, 0x5C48, 0x6398, 0x7A9F, /* 0xD0 */
- 0x5BAE, 0x5F13, 0x7A79, 0x7AAE, 0x828E, 0x8EAC, 0x5026, 0x5238, /* 0xE0 */
- 0x52F8, 0x5377, 0x5708, 0x62F3, 0x6372, 0x6B0A, 0x6DC3, 0x7737, /* 0xE0 */
- 0x53A5, 0x7357, 0x8568, 0x8E76, 0x95D5, 0x673A, 0x6AC3, 0x6F70, /* 0xF0 */
- 0x8A6D, 0x8ECC, 0x994B, 0xF906, 0x6677, 0x6B78, 0x8CB4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_D0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9B3C, 0xF907, 0x53EB, 0x572D, 0x594E, 0x63C6, 0x69FB, /* 0xA0 */
- 0x73EA, 0x7845, 0x7ABA, 0x7AC5, 0x7CFE, 0x8475, 0x898F, 0x8D73, /* 0xA0 */
- 0x9035, 0x95A8, 0x52FB, 0x5747, 0x7547, 0x7B60, 0x83CC, 0x921E, /* 0xB0 */
- 0xF908, 0x6A58, 0x514B, 0x524B, 0x5287, 0x621F, 0x68D8, 0x6975, /* 0xB0 */
- 0x9699, 0x50C5, 0x52A4, 0x52E4, 0x61C3, 0x65A4, 0x6839, 0x69FF, /* 0xC0 */
- 0x747E, 0x7B4B, 0x82B9, 0x83EB, 0x89B2, 0x8B39, 0x8FD1, 0x9949, /* 0xC0 */
- 0xF909, 0x4ECA, 0x5997, 0x64D2, 0x6611, 0x6A8E, 0x7434, 0x7981, /* 0xD0 */
- 0x79BD, 0x82A9, 0x887E, 0x887F, 0x895F, 0xF90A, 0x9326, 0x4F0B, /* 0xD0 */
- 0x53CA, 0x6025, 0x6271, 0x6C72, 0x7D1A, 0x7D66, 0x4E98, 0x5162, /* 0xE0 */
- 0x77DC, 0x80AF, 0x4F01, 0x4F0E, 0x5176, 0x5180, 0x55DC, 0x5668, /* 0xE0 */
- 0x573B, 0x57FA, 0x57FC, 0x5914, 0x5947, 0x5993, 0x5BC4, 0x5C90, /* 0xF0 */
- 0x5D0E, 0x5DF1, 0x5E7E, 0x5FCC, 0x6280, 0x65D7, 0x65E3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_D1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x671E, 0x671F, 0x675E, 0x68CB, 0x68C4, 0x6A5F, 0x6B3A, /* 0xA0 */
- 0x6C23, 0x6C7D, 0x6C82, 0x6DC7, 0x7398, 0x7426, 0x742A, 0x7482, /* 0xA0 */
- 0x74A3, 0x7578, 0x757F, 0x7881, 0x78EF, 0x7941, 0x7947, 0x7948, /* 0xB0 */
- 0x797A, 0x7B95, 0x7D00, 0x7DBA, 0x7F88, 0x8006, 0x802D, 0x808C, /* 0xB0 */
- 0x8A18, 0x8B4F, 0x8C48, 0x8D77, 0x9321, 0x9324, 0x98E2, 0x9951, /* 0xC0 */
- 0x9A0E, 0x9A0F, 0x9A65, 0x9E92, 0x7DCA, 0x4F76, 0x5409, 0x62EE, /* 0xC0 */
- 0x6854, 0x91D1, 0x55AB, 0x513A, 0xF90B, 0xF90C, 0x5A1C, 0x61E6, /* 0xD0 */
- 0xF90D, 0x62CF, 0x62FF, 0xF90E, 0xF90F, 0xF910, 0xF911, 0xF912, /* 0xD0 */
- 0xF913, 0x90A3, 0xF914, 0xF915, 0xF916, 0xF917, 0xF918, 0x8AFE, /* 0xE0 */
- 0xF919, 0xF91A, 0xF91B, 0xF91C, 0x6696, 0xF91D, 0x7156, 0xF91E, /* 0xE0 */
- 0xF91F, 0x96E3, 0xF920, 0x634F, 0x637A, 0x5357, 0xF921, 0x678F, /* 0xF0 */
- 0x6960, 0x6E73, 0xF922, 0x7537, 0xF923, 0xF924, 0xF925 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_D2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7D0D, 0xF926, 0xF927, 0x8872, 0x56CA, 0x5A18, 0xF928, /* 0xA0 */
- 0xF929, 0xF92A, 0xF92B, 0xF92C, 0x4E43, 0xF92D, 0x5167, 0x5948, /* 0xA0 */
- 0x67F0, 0x8010, 0xF92E, 0x5973, 0x5E74, 0x649A, 0x79CA, 0x5FF5, /* 0xB0 */
- 0x606C, 0x62C8, 0x637B, 0x5BE7, 0x5BD7, 0x52AA, 0xF92F, 0x5974, /* 0xB0 */
- 0x5F29, 0x6012, 0xF930, 0xF931, 0xF932, 0x7459, 0xF933, 0xF934, /* 0xC0 */
- 0xF935, 0xF936, 0xF937, 0xF938, 0x99D1, 0xF939, 0xF93A, 0xF93B, /* 0xC0 */
- 0xF93C, 0xF93D, 0xF93E, 0xF93F, 0xF940, 0xF941, 0xF942, 0xF943, /* 0xD0 */
- 0x6FC3, 0xF944, 0xF945, 0x81BF, 0x8FB2, 0x60F1, 0xF946, 0xF947, /* 0xD0 */
- 0x8166, 0xF948, 0xF949, 0x5C3F, 0xF94A, 0xF94B, 0xF94C, 0xF94D, /* 0xE0 */
- 0xF94E, 0xF94F, 0xF950, 0xF951, 0x5AE9, 0x8A25, 0x677B, 0x7D10, /* 0xE0 */
- 0xF952, 0xF953, 0xF954, 0xF955, 0xF956, 0xF957, 0x80FD, 0xF958, /* 0xF0 */
- 0xF959, 0x5C3C, 0x6CE5, 0x533F, 0x6EBA, 0x591A, 0x8336 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_D3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4E39, 0x4EB6, 0x4F46, 0x55AE, 0x5718, 0x58C7, 0x5F56, /* 0xA0 */
- 0x65B7, 0x65E6, 0x6A80, 0x6BB5, 0x6E4D, 0x77ED, 0x7AEF, 0x7C1E, /* 0xA0 */
- 0x7DDE, 0x86CB, 0x8892, 0x9132, 0x935B, 0x64BB, 0x6FBE, 0x737A, /* 0xB0 */
- 0x75B8, 0x9054, 0x5556, 0x574D, 0x61BA, 0x64D4, 0x66C7, 0x6DE1, /* 0xB0 */
- 0x6E5B, 0x6F6D, 0x6FB9, 0x75F0, 0x8043, 0x81BD, 0x8541, 0x8983, /* 0xC0 */
- 0x8AC7, 0x8B5A, 0x931F, 0x6C93, 0x7553, 0x7B54, 0x8E0F, 0x905D, /* 0xC0 */
- 0x5510, 0x5802, 0x5858, 0x5E62, 0x6207, 0x649E, 0x68E0, 0x7576, /* 0xD0 */
- 0x7CD6, 0x87B3, 0x9EE8, 0x4EE3, 0x5788, 0x576E, 0x5927, 0x5C0D, /* 0xD0 */
- 0x5CB1, 0x5E36, 0x5F85, 0x6234, 0x64E1, 0x73B3, 0x81FA, 0x888B, /* 0xE0 */
- 0x8CB8, 0x968A, 0x9EDB, 0x5B85, 0x5FB7, 0x60B3, 0x5012, 0x5200, /* 0xE0 */
- 0x5230, 0x5716, 0x5835, 0x5857, 0x5C0E, 0x5C60, 0x5CF6, 0x5D8B, /* 0xF0 */
- 0x5EA6, 0x5F92, 0x60BC, 0x6311, 0x6389, 0x6417, 0x6843 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_D4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x68F9, 0x6AC2, 0x6DD8, 0x6E21, 0x6ED4, 0x6FE4, 0x71FE, /* 0xA0 */
- 0x76DC, 0x7779, 0x79B1, 0x7A3B, 0x8404, 0x89A9, 0x8CED, 0x8DF3, /* 0xA0 */
- 0x8E48, 0x9003, 0x9014, 0x9053, 0x90FD, 0x934D, 0x9676, 0x97DC, /* 0xB0 */
- 0x6BD2, 0x7006, 0x7258, 0x72A2, 0x7368, 0x7763, 0x79BF, 0x7BE4, /* 0xB0 */
- 0x7E9B, 0x8B80, 0x58A9, 0x60C7, 0x6566, 0x65FD, 0x66BE, 0x6C8C, /* 0xC0 */
- 0x711E, 0x71C9, 0x8C5A, 0x9813, 0x4E6D, 0x7A81, 0x4EDD, 0x51AC, /* 0xC0 */
- 0x51CD, 0x52D5, 0x540C, 0x61A7, 0x6771, 0x6850, 0x68DF, 0x6D1E, /* 0xD0 */
- 0x6F7C, 0x75BC, 0x77B3, 0x7AE5, 0x80F4, 0x8463, 0x9285, 0x515C, /* 0xD0 */
- 0x6597, 0x675C, 0x6793, 0x75D8, 0x7AC7, 0x8373, 0xF95A, 0x8C46, /* 0xE0 */
- 0x9017, 0x982D, 0x5C6F, 0x81C0, 0x829A, 0x9041, 0x906F, 0x920D, /* 0xE0 */
- 0x5F97, 0x5D9D, 0x6A59, 0x71C8, 0x767B, 0x7B49, 0x85E4, 0x8B04, /* 0xF0 */
- 0x9127, 0x9A30, 0x5587, 0x61F6, 0xF95B, 0x7669, 0x7F85 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_D5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x863F, 0x87BA, 0x88F8, 0x908F, 0xF95C, 0x6D1B, 0x70D9, /* 0xA0 */
- 0x73DE, 0x7D61, 0x843D, 0xF95D, 0x916A, 0x99F1, 0xF95E, 0x4E82, /* 0xA0 */
- 0x5375, 0x6B04, 0x6B12, 0x703E, 0x721B, 0x862D, 0x9E1E, 0x524C, /* 0xB0 */
- 0x8FA3, 0x5D50, 0x64E5, 0x652C, 0x6B16, 0x6FEB, 0x7C43, 0x7E9C, /* 0xB0 */
- 0x85CD, 0x8964, 0x89BD, 0x62C9, 0x81D8, 0x881F, 0x5ECA, 0x6717, /* 0xC0 */
- 0x6D6A, 0x72FC, 0x7405, 0x746F, 0x8782, 0x90DE, 0x4F86, 0x5D0D, /* 0xC0 */
- 0x5FA0, 0x840A, 0x51B7, 0x63A0, 0x7565, 0x4EAE, 0x5006, 0x5169, /* 0xD0 */
- 0x51C9, 0x6881, 0x6A11, 0x7CAE, 0x7CB1, 0x7CE7, 0x826F, 0x8AD2, /* 0xD0 */
- 0x8F1B, 0x91CF, 0x4FB6, 0x5137, 0x52F5, 0x5442, 0x5EEC, 0x616E, /* 0xE0 */
- 0x623E, 0x65C5, 0x6ADA, 0x6FFE, 0x792A, 0x85DC, 0x8823, 0x95AD, /* 0xE0 */
- 0x9A62, 0x9A6A, 0x9E97, 0x9ECE, 0x529B, 0x66C6, 0x6B77, 0x701D, /* 0xF0 */
- 0x792B, 0x8F62, 0x9742, 0x6190, 0x6200, 0x6523, 0x6F23 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_D6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7149, 0x7489, 0x7DF4, 0x806F, 0x84EE, 0x8F26, 0x9023, /* 0xA0 */
- 0x934A, 0x51BD, 0x5217, 0x52A3, 0x6D0C, 0x70C8, 0x88C2, 0x5EC9, /* 0xA0 */
- 0x6582, 0x6BAE, 0x6FC2, 0x7C3E, 0x7375, 0x4EE4, 0x4F36, 0x56F9, /* 0xB0 */
- 0xF95F, 0x5CBA, 0x5DBA, 0x601C, 0x73B2, 0x7B2D, 0x7F9A, 0x7FCE, /* 0xB0 */
- 0x8046, 0x901E, 0x9234, 0x96F6, 0x9748, 0x9818, 0x9F61, 0x4F8B, /* 0xC0 */
- 0x6FA7, 0x79AE, 0x91B4, 0x96B7, 0x52DE, 0xF960, 0x6488, 0x64C4, /* 0xC0 */
- 0x6AD3, 0x6F5E, 0x7018, 0x7210, 0x76E7, 0x8001, 0x8606, 0x865C, /* 0xD0 */
- 0x8DEF, 0x8F05, 0x9732, 0x9B6F, 0x9DFA, 0x9E75, 0x788C, 0x797F, /* 0xD0 */
- 0x7DA0, 0x83C9, 0x9304, 0x9E7F, 0x9E93, 0x8AD6, 0x58DF, 0x5F04, /* 0xE0 */
- 0x6727, 0x7027, 0x74CF, 0x7C60, 0x807E, 0x5121, 0x7028, 0x7262, /* 0xE0 */
- 0x78CA, 0x8CC2, 0x8CDA, 0x8CF4, 0x96F7, 0x4E86, 0x50DA, 0x5BEE, /* 0xF0 */
- 0x5ED6, 0x6599, 0x71CE, 0x7642, 0x77AD, 0x804A, 0x84FC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_D7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x907C, 0x9B27, 0x9F8D, 0x58D8, 0x5A41, 0x5C62, 0x6A13, /* 0xA0 */
- 0x6DDA, 0x6F0F, 0x763B, 0x7D2F, 0x7E37, 0x851E, 0x8938, 0x93E4, /* 0xA0 */
- 0x964B, 0x5289, 0x65D2, 0x67F3, 0x69B4, 0x6D41, 0x6E9C, 0x700F, /* 0xB0 */
- 0x7409, 0x7460, 0x7559, 0x7624, 0x786B, 0x8B2C, 0x985E, 0x516D, /* 0xB0 */
- 0x622E, 0x9678, 0x4F96, 0x502B, 0x5D19, 0x6DEA, 0x7DB8, 0x8F2A, /* 0xC0 */
- 0x5F8B, 0x6144, 0x6817, 0xF961, 0x9686, 0x52D2, 0x808B, 0x51DC, /* 0xC0 */
- 0x51CC, 0x695E, 0x7A1C, 0x7DBE, 0x83F1, 0x9675, 0x4FDA, 0x5229, /* 0xD0 */
- 0x5398, 0x540F, 0x550E, 0x5C65, 0x60A7, 0x674E, 0x68A8, 0x6D6C, /* 0xD0 */
- 0x7281, 0x72F8, 0x7406, 0x7483, 0xF962, 0x75E2, 0x7C6C, 0x7F79, /* 0xE0 */
- 0x7FB8, 0x8389, 0x88CF, 0x88E1, 0x91CC, 0x91D0, 0x96E2, 0x9BC9, /* 0xE0 */
- 0x541D, 0x6F7E, 0x71D0, 0x7498, 0x85FA, 0x8EAA, 0x96A3, 0x9C57, /* 0xF0 */
- 0x9E9F, 0x6797, 0x6DCB, 0x7433, 0x81E8, 0x9716, 0x782C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_D8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7ACB, 0x7B20, 0x7C92, 0x6469, 0x746A, 0x75F2, 0x78BC, /* 0xA0 */
- 0x78E8, 0x99AC, 0x9B54, 0x9EBB, 0x5BDE, 0x5E55, 0x6F20, 0x819C, /* 0xA0 */
- 0x83AB, 0x9088, 0x4E07, 0x534D, 0x5A29, 0x5DD2, 0x5F4E, 0x6162, /* 0xB0 */
- 0x633D, 0x6669, 0x66FC, 0x6EFF, 0x6F2B, 0x7063, 0x779E, 0x842C, /* 0xB0 */
- 0x8513, 0x883B, 0x8F13, 0x9945, 0x9C3B, 0x551C, 0x62B9, 0x672B, /* 0xC0 */
- 0x6CAB, 0x8309, 0x896A, 0x977A, 0x4EA1, 0x5984, 0x5FD8, 0x5FD9, /* 0xC0 */
- 0x671B, 0x7DB2, 0x7F54, 0x8292, 0x832B, 0x83BD, 0x8F1E, 0x9099, /* 0xD0 */
- 0x57CB, 0x59B9, 0x5A92, 0x5BD0, 0x6627, 0x679A, 0x6885, 0x6BCF, /* 0xD0 */
- 0x7164, 0x7F75, 0x8CB7, 0x8CE3, 0x9081, 0x9B45, 0x8108, 0x8C8A, /* 0xE0 */
- 0x964C, 0x9A40, 0x9EA5, 0x5B5F, 0x6C13, 0x731B, 0x76F2, 0x76DF, /* 0xE0 */
- 0x840C, 0x51AA, 0x8993, 0x514D, 0x5195, 0x52C9, 0x68C9, 0x6C94, /* 0xF0 */
- 0x7704, 0x7720, 0x7DBF, 0x7DEC, 0x9762, 0x9EB5, 0x6EC5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_D9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8511, 0x51A5, 0x540D, 0x547D, 0x660E, 0x669D, 0x6927, /* 0xA0 */
- 0x6E9F, 0x76BF, 0x7791, 0x8317, 0x84C2, 0x879F, 0x9169, 0x9298, /* 0xA0 */
- 0x9CF4, 0x8882, 0x4FAE, 0x5192, 0x52DF, 0x59C6, 0x5E3D, 0x6155, /* 0xB0 */
- 0x6478, 0x6479, 0x66AE, 0x67D0, 0x6A21, 0x6BCD, 0x6BDB, 0x725F, /* 0xB0 */
- 0x7261, 0x7441, 0x7738, 0x77DB, 0x8017, 0x82BC, 0x8305, 0x8B00, /* 0xC0 */
- 0x8B28, 0x8C8C, 0x6728, 0x6C90, 0x7267, 0x76EE, 0x7766, 0x7A46, /* 0xC0 */
- 0x9DA9, 0x6B7F, 0x6C92, 0x5922, 0x6726, 0x8499, 0x536F, 0x5893, /* 0xD0 */
- 0x5999, 0x5EDF, 0x63CF, 0x6634, 0x6773, 0x6E3A, 0x732B, 0x7AD7, /* 0xD0 */
- 0x82D7, 0x9328, 0x52D9, 0x5DEB, 0x61AE, 0x61CB, 0x620A, 0x62C7, /* 0xE0 */
- 0x64AB, 0x65E0, 0x6959, 0x6B66, 0x6BCB, 0x7121, 0x73F7, 0x755D, /* 0xE0 */
- 0x7E46, 0x821E, 0x8302, 0x856A, 0x8AA3, 0x8CBF, 0x9727, 0x9D61, /* 0xF0 */
- 0x58A8, 0x9ED8, 0x5011, 0x520E, 0x543B, 0x554F, 0x6587 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_DA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6C76, 0x7D0A, 0x7D0B, 0x805E, 0x868A, 0x9580, 0x96EF, /* 0xA0 */
- 0x52FF, 0x6C95, 0x7269, 0x5473, 0x5A9A, 0x5C3E, 0x5D4B, 0x5F4C, /* 0xA0 */
- 0x5FAE, 0x672A, 0x68B6, 0x6963, 0x6E3C, 0x6E44, 0x7709, 0x7C73, /* 0xB0 */
- 0x7F8E, 0x8587, 0x8B0E, 0x8FF7, 0x9761, 0x9EF4, 0x5CB7, 0x60B6, /* 0xB0 */
- 0x610D, 0x61AB, 0x654F, 0x65FB, 0x65FC, 0x6C11, 0x6CEF, 0x739F, /* 0xC0 */
- 0x73C9, 0x7DE1, 0x9594, 0x5BC6, 0x871C, 0x8B10, 0x525D, 0x535A, /* 0xC0 */
- 0x62CD, 0x640F, 0x64B2, 0x6734, 0x6A38, 0x6CCA, 0x73C0, 0x749E, /* 0xD0 */
- 0x7B94, 0x7C95, 0x7E1B, 0x818A, 0x8236, 0x8584, 0x8FEB, 0x96F9, /* 0xD0 */
- 0x99C1, 0x4F34, 0x534A, 0x53CD, 0x53DB, 0x62CC, 0x642C, 0x6500, /* 0xE0 */
- 0x6591, 0x69C3, 0x6CEE, 0x6F58, 0x73ED, 0x7554, 0x7622, 0x76E4, /* 0xE0 */
- 0x76FC, 0x78D0, 0x78FB, 0x792C, 0x7D46, 0x822C, 0x87E0, 0x8FD4, /* 0xF0 */
- 0x9812, 0x98EF, 0x52C3, 0x62D4, 0x64A5, 0x6E24, 0x6F51 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_DB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x767C, 0x8DCB, 0x91B1, 0x9262, 0x9AEE, 0x9B43, 0x5023, /* 0xA0 */
- 0x508D, 0x574A, 0x59A8, 0x5C28, 0x5E47, 0x5F77, 0x623F, 0x653E, /* 0xA0 */
- 0x65B9, 0x65C1, 0x6609, 0x678B, 0x699C, 0x6EC2, 0x78C5, 0x7D21, /* 0xB0 */
- 0x80AA, 0x8180, 0x822B, 0x82B3, 0x84A1, 0x868C, 0x8A2A, 0x8B17, /* 0xB0 */
- 0x90A6, 0x9632, 0x9F90, 0x500D, 0x4FF3, 0xF963, 0x57F9, 0x5F98, /* 0xC0 */
- 0x62DC, 0x6392, 0x676F, 0x6E43, 0x7119, 0x76C3, 0x80CC, 0x80DA, /* 0xC0 */
- 0x88F4, 0x88F5, 0x8919, 0x8CE0, 0x8F29, 0x914D, 0x966A, 0x4F2F, /* 0xD0 */
- 0x4F70, 0x5E1B, 0x67CF, 0x6822, 0x767D, 0x767E, 0x9B44, 0x5E61, /* 0xD0 */
- 0x6A0A, 0x7169, 0x71D4, 0x756A, 0xF964, 0x7E41, 0x8543, 0x85E9, /* 0xE0 */
- 0x98DC, 0x4F10, 0x7B4F, 0x7F70, 0x95A5, 0x51E1, 0x5E06, 0x68B5, /* 0xE0 */
- 0x6C3E, 0x6C4E, 0x6CDB, 0x72AF, 0x7BC4, 0x8303, 0x6CD5, 0x743A, /* 0xF0 */
- 0x50FB, 0x5288, 0x58C1, 0x64D8, 0x6A97, 0x74A7, 0x7656 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_DC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x78A7, 0x8617, 0x95E2, 0x9739, 0xF965, 0x535E, 0x5F01, /* 0xA0 */
- 0x8B8A, 0x8FA8, 0x8FAF, 0x908A, 0x5225, 0x77A5, 0x9C49, 0x9F08, /* 0xA0 */
- 0x4E19, 0x5002, 0x5175, 0x5C5B, 0x5E77, 0x661E, 0x663A, 0x67C4, /* 0xB0 */
- 0x68C5, 0x70B3, 0x7501, 0x75C5, 0x79C9, 0x7ADD, 0x8F27, 0x9920, /* 0xB0 */
- 0x9A08, 0x4FDD, 0x5821, 0x5831, 0x5BF6, 0x666E, 0x6B65, 0x6D11, /* 0xC0 */
- 0x6E7A, 0x6F7D, 0x73E4, 0x752B, 0x83E9, 0x88DC, 0x8913, 0x8B5C, /* 0xC0 */
- 0x8F14, 0x4F0F, 0x50D5, 0x5310, 0x535C, 0x5B93, 0x5FA9, 0x670D, /* 0xD0 */
- 0x798F, 0x8179, 0x832F, 0x8514, 0x8907, 0x8986, 0x8F39, 0x8F3B, /* 0xD0 */
- 0x99A5, 0x9C12, 0x672C, 0x4E76, 0x4FF8, 0x5949, 0x5C01, 0x5CEF, /* 0xE0 */
- 0x5CF0, 0x6367, 0x68D2, 0x70FD, 0x71A2, 0x742B, 0x7E2B, 0x84EC, /* 0xE0 */
- 0x8702, 0x9022, 0x92D2, 0x9CF3, 0x4E0D, 0x4ED8, 0x4FEF, 0x5085, /* 0xF0 */
- 0x5256, 0x526F, 0x5426, 0x5490, 0x57E0, 0x592B, 0x5A66 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_DD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5B5A, 0x5B75, 0x5BCC, 0x5E9C, 0xF966, 0x6276, 0x6577, /* 0xA0 */
- 0x65A7, 0x6D6E, 0x6EA5, 0x7236, 0x7B26, 0x7C3F, 0x7F36, 0x8150, /* 0xA0 */
- 0x8151, 0x819A, 0x8240, 0x8299, 0x83A9, 0x8A03, 0x8CA0, 0x8CE6, /* 0xB0 */
- 0x8CFB, 0x8D74, 0x8DBA, 0x90E8, 0x91DC, 0x961C, 0x9644, 0x99D9, /* 0xB0 */
- 0x9CE7, 0x5317, 0x5206, 0x5429, 0x5674, 0x58B3, 0x5954, 0x596E, /* 0xC0 */
- 0x5FFF, 0x61A4, 0x626E, 0x6610, 0x6C7E, 0x711A, 0x76C6, 0x7C89, /* 0xC0 */
- 0x7CDE, 0x7D1B, 0x82AC, 0x8CC1, 0x96F0, 0xF967, 0x4F5B, 0x5F17, /* 0xD0 */
- 0x5F7F, 0x62C2, 0x5D29, 0x670B, 0x68DA, 0x787C, 0x7E43, 0x9D6C, /* 0xD0 */
- 0x4E15, 0x5099, 0x5315, 0x532A, 0x5351, 0x5983, 0x5A62, 0x5E87, /* 0xE0 */
- 0x60B2, 0x618A, 0x6249, 0x6279, 0x6590, 0x6787, 0x69A7, 0x6BD4, /* 0xE0 */
- 0x6BD6, 0x6BD7, 0x6BD8, 0x6CB8, 0xF968, 0x7435, 0x75FA, 0x7812, /* 0xF0 */
- 0x7891, 0x79D5, 0x79D8, 0x7C83, 0x7DCB, 0x7FE1, 0x80A5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_DE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x813E, 0x81C2, 0x83F2, 0x871A, 0x88E8, 0x8AB9, 0x8B6C, /* 0xA0 */
- 0x8CBB, 0x9119, 0x975E, 0x98DB, 0x9F3B, 0x56AC, 0x5B2A, 0x5F6C, /* 0xA0 */
- 0x658C, 0x6AB3, 0x6BAF, 0x6D5C, 0x6FF1, 0x7015, 0x725D, 0x73AD, /* 0xB0 */
- 0x8CA7, 0x8CD3, 0x983B, 0x6191, 0x6C37, 0x8058, 0x9A01, 0x4E4D, /* 0xB0 */
- 0x4E8B, 0x4E9B, 0x4ED5, 0x4F3A, 0x4F3C, 0x4F7F, 0x4FDF, 0x50FF, /* 0xC0 */
- 0x53F2, 0x53F8, 0x5506, 0x55E3, 0x56DB, 0x58EB, 0x5962, 0x5A11, /* 0xC0 */
- 0x5BEB, 0x5BFA, 0x5C04, 0x5DF3, 0x5E2B, 0x5F99, 0x601D, 0x6368, /* 0xD0 */
- 0x659C, 0x65AF, 0x67F6, 0x67FB, 0x68AD, 0x6B7B, 0x6C99, 0x6CD7, /* 0xD0 */
- 0x6E23, 0x7009, 0x7345, 0x7802, 0x793E, 0x7940, 0x7960, 0x79C1, /* 0xE0 */
- 0x7BE9, 0x7D17, 0x7D72, 0x8086, 0x820D, 0x838E, 0x84D1, 0x86C7, /* 0xE0 */
- 0x88DF, 0x8A50, 0x8A5E, 0x8B1D, 0x8CDC, 0x8D66, 0x8FAD, 0x90AA, /* 0xF0 */
- 0x98FC, 0x99DF, 0x9E9D, 0x524A, 0xF969, 0x6714, 0xF96A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_DF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5098, 0x522A, 0x5C71, 0x6563, 0x6C55, 0x73CA, 0x7523, /* 0xA0 */
- 0x759D, 0x7B97, 0x849C, 0x9178, 0x9730, 0x4E77, 0x6492, 0x6BBA, /* 0xA0 */
- 0x715E, 0x85A9, 0x4E09, 0xF96B, 0x6749, 0x68EE, 0x6E17, 0x829F, /* 0xB0 */
- 0x8518, 0x886B, 0x63F7, 0x6F81, 0x9212, 0x98AF, 0x4E0A, 0x50B7, /* 0xB0 */
- 0x50CF, 0x511F, 0x5546, 0x55AA, 0x5617, 0x5B40, 0x5C19, 0x5CE0, /* 0xC0 */
- 0x5E38, 0x5E8A, 0x5EA0, 0x5EC2, 0x60F3, 0x6851, 0x6A61, 0x6E58, /* 0xC0 */
- 0x723D, 0x7240, 0x72C0, 0x76F8, 0x7965, 0x7BB1, 0x7FD4, 0x88F3, /* 0xD0 */
- 0x89F4, 0x8A73, 0x8C61, 0x8CDE, 0x971C, 0x585E, 0x74BD, 0x8CFD, /* 0xD0 */
- 0x55C7, 0xF96C, 0x7A61, 0x7D22, 0x8272, 0x7272, 0x751F, 0x7525, /* 0xE0 */
- 0xF96D, 0x7B19, 0x5885, 0x58FB, 0x5DBC, 0x5E8F, 0x5EB6, 0x5F90, /* 0xE0 */
- 0x6055, 0x6292, 0x637F, 0x654D, 0x6691, 0x66D9, 0x66F8, 0x6816, /* 0xF0 */
- 0x68F2, 0x7280, 0x745E, 0x7B6E, 0x7D6E, 0x7DD6, 0x7F72 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_E0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x80E5, 0x8212, 0x85AF, 0x897F, 0x8A93, 0x901D, 0x92E4, /* 0xA0 */
- 0x9ECD, 0x9F20, 0x5915, 0x596D, 0x5E2D, 0x60DC, 0x6614, 0x6673, /* 0xA0 */
- 0x6790, 0x6C50, 0x6DC5, 0x6F5F, 0x77F3, 0x78A9, 0x84C6, 0x91CB, /* 0xB0 */
- 0x932B, 0x4ED9, 0x50CA, 0x5148, 0x5584, 0x5B0B, 0x5BA3, 0x6247, /* 0xB0 */
- 0x657E, 0x65CB, 0x6E32, 0x717D, 0x7401, 0x7444, 0x7487, 0x74BF, /* 0xC0 */
- 0x766C, 0x79AA, 0x7DDA, 0x7E55, 0x7FA8, 0x817A, 0x81B3, 0x8239, /* 0xC0 */
- 0x861A, 0x87EC, 0x8A75, 0x8DE3, 0x9078, 0x9291, 0x9425, 0x994D, /* 0xD0 */
- 0x9BAE, 0x5368, 0x5C51, 0x6954, 0x6CC4, 0x6D29, 0x6E2B, 0x820C, /* 0xD0 */
- 0x859B, 0x893B, 0x8A2D, 0x8AAA, 0x96EA, 0x9F67, 0x5261, 0x66B9, /* 0xE0 */
- 0x6BB2, 0x7E96, 0x87FE, 0x8D0D, 0x9583, 0x965D, 0x651D, 0x6D89, /* 0xE0 */
- 0x71EE, 0xF96E, 0x57CE, 0x59D3, 0x5BAC, 0x6027, 0x60FA, 0x6210, /* 0xF0 */
- 0x661F, 0x665F, 0x7329, 0x73F9, 0x76DB, 0x7701, 0x7B6C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_E1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8056, 0x8072, 0x8165, 0x8AA0, 0x9192, 0x4E16, 0x52E2, /* 0xA0 */
- 0x6B72, 0x6D17, 0x7A05, 0x7B39, 0x7D30, 0xF96F, 0x8CB0, 0x53EC, /* 0xA0 */
- 0x562F, 0x5851, 0x5BB5, 0x5C0F, 0x5C11, 0x5DE2, 0x6240, 0x6383, /* 0xB0 */
- 0x6414, 0x662D, 0x68B3, 0x6CBC, 0x6D88, 0x6EAF, 0x701F, 0x70A4, /* 0xB0 */
- 0x71D2, 0x7526, 0x758F, 0x758E, 0x7619, 0x7B11, 0x7BE0, 0x7C2B, /* 0xC0 */
- 0x7D20, 0x7D39, 0x852C, 0x856D, 0x8607, 0x8A34, 0x900D, 0x9061, /* 0xC0 */
- 0x90B5, 0x92B7, 0x97F6, 0x9A37, 0x4FD7, 0x5C6C, 0x675F, 0x6D91, /* 0xD0 */
- 0x7C9F, 0x7E8C, 0x8B16, 0x8D16, 0x901F, 0x5B6B, 0x5DFD, 0x640D, /* 0xD0 */
- 0x84C0, 0x905C, 0x98E1, 0x7387, 0x5B8B, 0x609A, 0x677E, 0x6DDE, /* 0xE0 */
- 0x8A1F, 0x8AA6, 0x9001, 0x980C, 0x5237, 0xF970, 0x7051, 0x788E, /* 0xE0 */
- 0x9396, 0x8870, 0x91D7, 0x4FEE, 0x53D7, 0x55FD, 0x56DA, 0x5782, /* 0xF0 */
- 0x58FD, 0x5AC2, 0x5B88, 0x5CAB, 0x5CC0, 0x5E25, 0x6101 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_E2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x620D, 0x624B, 0x6388, 0x641C, 0x6536, 0x6578, 0x6A39, /* 0xA0 */
- 0x6B8A, 0x6C34, 0x6D19, 0x6F31, 0x71E7, 0x72E9, 0x7378, 0x7407, /* 0xA0 */
- 0x74B2, 0x7626, 0x7761, 0x79C0, 0x7A57, 0x7AEA, 0x7CB9, 0x7D8F, /* 0xB0 */
- 0x7DAC, 0x7E61, 0x7F9E, 0x8129, 0x8331, 0x8490, 0x84DA, 0x85EA, /* 0xB0 */
- 0x8896, 0x8AB0, 0x8B90, 0x8F38, 0x9042, 0x9083, 0x916C, 0x9296, /* 0xC0 */
- 0x92B9, 0x968B, 0x96A7, 0x96A8, 0x96D6, 0x9700, 0x9808, 0x9996, /* 0xC0 */
- 0x9AD3, 0x9B1A, 0x53D4, 0x587E, 0x5919, 0x5B70, 0x5BBF, 0x6DD1, /* 0xD0 */
- 0x6F5A, 0x719F, 0x7421, 0x74B9, 0x8085, 0x83FD, 0x5DE1, 0x5F87, /* 0xD0 */
- 0x5FAA, 0x6042, 0x65EC, 0x6812, 0x696F, 0x6A53, 0x6B89, 0x6D35, /* 0xE0 */
- 0x6DF3, 0x73E3, 0x76FE, 0x77AC, 0x7B4D, 0x7D14, 0x8123, 0x821C, /* 0xE0 */
- 0x8340, 0x84F4, 0x8563, 0x8A62, 0x8AC4, 0x9187, 0x931E, 0x9806, /* 0xF0 */
- 0x99B4, 0x620C, 0x8853, 0x8FF0, 0x9265, 0x5D07, 0x5D27 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_E3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5D69, 0x745F, 0x819D, 0x8768, 0x6FD5, 0x62FE, 0x7FD2, /* 0xA0 */
- 0x8936, 0x8972, 0x4E1E, 0x4E58, 0x50E7, 0x52DD, 0x5347, 0x627F, /* 0xA0 */
- 0x6607, 0x7E69, 0x8805, 0x965E, 0x4F8D, 0x5319, 0x5636, 0x59CB, /* 0xB0 */
- 0x5AA4, 0x5C38, 0x5C4E, 0x5C4D, 0x5E02, 0x5F11, 0x6043, 0x65BD, /* 0xB0 */
- 0x662F, 0x6642, 0x67BE, 0x67F4, 0x731C, 0x77E2, 0x793A, 0x7FC5, /* 0xC0 */
- 0x8494, 0x84CD, 0x8996, 0x8A66, 0x8A69, 0x8AE1, 0x8C55, 0x8C7A, /* 0xC0 */
- 0x57F4, 0x5BD4, 0x5F0F, 0x606F, 0x62ED, 0x690D, 0x6B96, 0x6E5C, /* 0xD0 */
- 0x7184, 0x7BD2, 0x8755, 0x8B58, 0x8EFE, 0x98DF, 0x98FE, 0x4F38, /* 0xD0 */
- 0x4F81, 0x4FE1, 0x547B, 0x5A20, 0x5BB8, 0x613C, 0x65B0, 0x6668, /* 0xE0 */
- 0x71FC, 0x7533, 0x795E, 0x7D33, 0x814E, 0x81E3, 0x8398, 0x85AA, /* 0xE0 */
- 0x85CE, 0x8703, 0x8A0A, 0x8EAB, 0x8F9B, 0xF971, 0x8FC5, 0x5931, /* 0xF0 */
- 0x5BA4, 0x5BE6, 0x6089, 0x5BE9, 0x5C0B, 0x5FC3, 0x6C81 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_E4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF972, 0x6DF1, 0x700B, 0x751A, 0x82AF, 0x8AF6, 0x4EC0, /* 0xA0 */
- 0x5341, 0xF973, 0x96D9, 0x6C0F, 0x4E9E, 0x4FC4, 0x5152, 0x555E, /* 0xA0 */
- 0x5A25, 0x5CE8, 0x6211, 0x7259, 0x82BD, 0x83AA, 0x86FE, 0x8859, /* 0xB0 */
- 0x8A1D, 0x963F, 0x96C5, 0x9913, 0x9D09, 0x9D5D, 0x580A, 0x5CB3, /* 0xB0 */
- 0x5DBD, 0x5E44, 0x60E1, 0x6115, 0x63E1, 0x6A02, 0x6E25, 0x9102, /* 0xC0 */
- 0x9354, 0x984E, 0x9C10, 0x9F77, 0x5B89, 0x5CB8, 0x6309, 0x664F, /* 0xC0 */
- 0x6848, 0x773C, 0x96C1, 0x978D, 0x9854, 0x9B9F, 0x65A1, 0x8B01, /* 0xD0 */
- 0x8ECB, 0x95BC, 0x5535, 0x5CA9, 0x5DD6, 0x5EB5, 0x6697, 0x764C, /* 0xD0 */
- 0x83F4, 0x95C7, 0x58D3, 0x62BC, 0x72CE, 0x9D28, 0x4EF0, 0x592E, /* 0xE0 */
- 0x600F, 0x663B, 0x6B83, 0x79E7, 0x9D26, 0x5393, 0x54C0, 0x57C3, /* 0xE0 */
- 0x5D16, 0x611B, 0x66D6, 0x6DAF, 0x788D, 0x827E, 0x9698, 0x9744, /* 0xF0 */
- 0x5384, 0x627C, 0x6396, 0x6DB2, 0x7E0A, 0x814B, 0x984D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_E5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6AFB, 0x7F4C, 0x9DAF, 0x9E1A, 0x4E5F, 0x503B, 0x51B6, /* 0xA0 */
- 0x591C, 0x60F9, 0x63F6, 0x6930, 0x723A, 0x8036, 0xF974, 0x91CE, /* 0xA0 */
- 0x5F31, 0xF975, 0xF976, 0x7D04, 0x82E5, 0x846F, 0x84BB, 0x85E5, /* 0xB0 */
- 0x8E8D, 0xF977, 0x4F6F, 0xF978, 0xF979, 0x58E4, 0x5B43, 0x6059, /* 0xB0 */
- 0x63DA, 0x6518, 0x656D, 0x6698, 0xF97A, 0x694A, 0x6A23, 0x6D0B, /* 0xC0 */
- 0x7001, 0x716C, 0x75D2, 0x760D, 0x79B3, 0x7A70, 0xF97B, 0x7F8A, /* 0xC0 */
- 0xF97C, 0x8944, 0xF97D, 0x8B93, 0x91C0, 0x967D, 0xF97E, 0x990A, /* 0xD0 */
- 0x5704, 0x5FA1, 0x65BC, 0x6F01, 0x7600, 0x79A6, 0x8A9E, 0x99AD, /* 0xD0 */
- 0x9B5A, 0x9F6C, 0x5104, 0x61B6, 0x6291, 0x6A8D, 0x81C6, 0x5043, /* 0xE0 */
- 0x5830, 0x5F66, 0x7109, 0x8A00, 0x8AFA, 0x5B7C, 0x8616, 0x4FFA, /* 0xE0 */
- 0x513C, 0x56B4, 0x5944, 0x63A9, 0x6DF9, 0x5DAA, 0x696D, 0x5186, /* 0xF0 */
- 0x4E88, 0x4F59, 0xF97F, 0xF980, 0xF981, 0x5982, 0xF982 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_E6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF983, 0x6B5F, 0x6C5D, 0xF984, 0x74B5, 0x7916, 0xF985, /* 0xA0 */
- 0x8207, 0x8245, 0x8339, 0x8F3F, 0x8F5D, 0xF986, 0x9918, 0xF987, /* 0xA0 */
- 0xF988, 0xF989, 0x4EA6, 0xF98A, 0x57DF, 0x5F79, 0x6613, 0xF98B, /* 0xB0 */
- 0xF98C, 0x75AB, 0x7E79, 0x8B6F, 0xF98D, 0x9006, 0x9A5B, 0x56A5, /* 0xB0 */
- 0x5827, 0x59F8, 0x5A1F, 0x5BB4, 0xF98E, 0x5EF6, 0xF98F, 0xF990, /* 0xC0 */
- 0x6350, 0x633B, 0xF991, 0x693D, 0x6C87, 0x6CBF, 0x6D8E, 0x6D93, /* 0xC0 */
- 0x6DF5, 0x6F14, 0xF992, 0x70DF, 0x7136, 0x7159, 0xF993, 0x71C3, /* 0xD0 */
- 0x71D5, 0xF994, 0x784F, 0x786F, 0xF995, 0x7B75, 0x7DE3, 0xF996, /* 0xD0 */
- 0x7E2F, 0xF997, 0x884D, 0x8EDF, 0xF998, 0xF999, 0xF99A, 0x925B, /* 0xE0 */
- 0xF99B, 0x9CF6, 0xF99C, 0xF99D, 0xF99E, 0x6085, 0x6D85, 0xF99F, /* 0xE0 */
- 0x71B1, 0xF9A0, 0xF9A1, 0x95B1, 0x53AD, 0xF9A2, 0xF9A3, 0xF9A4, /* 0xF0 */
- 0x67D3, 0xF9A5, 0x708E, 0x7130, 0x7430, 0x8276, 0x82D2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_E7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF9A6, 0x95BB, 0x9AE5, 0x9E7D, 0x66C4, 0xF9A7, 0x71C1, /* 0xA0 */
- 0x8449, 0xF9A8, 0xF9A9, 0x584B, 0xF9AA, 0xF9AB, 0x5DB8, 0x5F71, /* 0xA0 */
- 0xF9AC, 0x6620, 0x668E, 0x6979, 0x69AE, 0x6C38, 0x6CF3, 0x6E36, /* 0xB0 */
- 0x6F41, 0x6FDA, 0x701B, 0x702F, 0x7150, 0x71DF, 0x7370, 0xF9AD, /* 0xB0 */
- 0x745B, 0xF9AE, 0x74D4, 0x76C8, 0x7A4E, 0x7E93, 0xF9AF, 0xF9B0, /* 0xC0 */
- 0x82F1, 0x8A60, 0x8FCE, 0xF9B1, 0x9348, 0xF9B2, 0x9719, 0xF9B3, /* 0xC0 */
- 0xF9B4, 0x4E42, 0x502A, 0xF9B5, 0x5208, 0x53E1, 0x66F3, 0x6C6D, /* 0xD0 */
- 0x6FCA, 0x730A, 0x777F, 0x7A62, 0x82AE, 0x85DD, 0x8602, 0xF9B6, /* 0xD0 */
- 0x88D4, 0x8A63, 0x8B7D, 0x8C6B, 0xF9B7, 0x92B3, 0xF9B8, 0x9713, /* 0xE0 */
- 0x9810, 0x4E94, 0x4F0D, 0x4FC9, 0x50B2, 0x5348, 0x543E, 0x5433, /* 0xE0 */
- 0x55DA, 0x5862, 0x58BA, 0x5967, 0x5A1B, 0x5BE4, 0x609F, 0xF9B9, /* 0xF0 */
- 0x61CA, 0x6556, 0x65FF, 0x6664, 0x68A7, 0x6C5A, 0x6FB3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_E8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x70CF, 0x71AC, 0x7352, 0x7B7D, 0x8708, 0x8AA4, 0x9C32, /* 0xA0 */
- 0x9F07, 0x5C4B, 0x6C83, 0x7344, 0x7389, 0x923A, 0x6EAB, 0x7465, /* 0xA0 */
- 0x761F, 0x7A69, 0x7E15, 0x860A, 0x5140, 0x58C5, 0x64C1, 0x74EE, /* 0xB0 */
- 0x7515, 0x7670, 0x7FC1, 0x9095, 0x96CD, 0x9954, 0x6E26, 0x74E6, /* 0xB0 */
- 0x7AA9, 0x7AAA, 0x81E5, 0x86D9, 0x8778, 0x8A1B, 0x5A49, 0x5B8C, /* 0xC0 */
- 0x5B9B, 0x68A1, 0x6900, 0x6D63, 0x73A9, 0x7413, 0x742C, 0x7897, /* 0xC0 */
- 0x7DE9, 0x7FEB, 0x8118, 0x8155, 0x839E, 0x8C4C, 0x962E, 0x9811, /* 0xD0 */
- 0x66F0, 0x5F80, 0x65FA, 0x6789, 0x6C6A, 0x738B, 0x502D, 0x5A03, /* 0xD0 */
- 0x6B6A, 0x77EE, 0x5916, 0x5D6C, 0x5DCD, 0x7325, 0x754F, 0xF9BA, /* 0xE0 */
- 0xF9BB, 0x50E5, 0x51F9, 0x582F, 0x592D, 0x5996, 0x59DA, 0x5BE5, /* 0xE0 */
- 0xF9BC, 0xF9BD, 0x5DA2, 0x62D7, 0x6416, 0x6493, 0x64FE, 0xF9BE, /* 0xF0 */
- 0x66DC, 0xF9BF, 0x6A48, 0xF9C0, 0x71FF, 0x7464, 0xF9C1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_E9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7A88, 0x7AAF, 0x7E47, 0x7E5E, 0x8000, 0x8170, 0xF9C2, /* 0xA0 */
- 0x87EF, 0x8981, 0x8B20, 0x9059, 0xF9C3, 0x9080, 0x9952, 0x617E, /* 0xA0 */
- 0x6B32, 0x6D74, 0x7E1F, 0x8925, 0x8FB1, 0x4FD1, 0x50AD, 0x5197, /* 0xB0 */
- 0x52C7, 0x57C7, 0x5889, 0x5BB9, 0x5EB8, 0x6142, 0x6995, 0x6D8C, /* 0xB0 */
- 0x6E67, 0x6EB6, 0x7194, 0x7462, 0x7528, 0x752C, 0x8073, 0x8338, /* 0xC0 */
- 0x84C9, 0x8E0A, 0x9394, 0x93DE, 0xF9C4, 0x4E8E, 0x4F51, 0x5076, /* 0xC0 */
- 0x512A, 0x53C8, 0x53CB, 0x53F3, 0x5B87, 0x5BD3, 0x5C24, 0x611A, /* 0xD0 */
- 0x6182, 0x65F4, 0x725B, 0x7397, 0x7440, 0x76C2, 0x7950, 0x7991, /* 0xD0 */
- 0x79B9, 0x7D06, 0x7FBD, 0x828B, 0x85D5, 0x865E, 0x8FC2, 0x9047, /* 0xE0 */
- 0x90F5, 0x91EA, 0x9685, 0x96E8, 0x96E9, 0x52D6, 0x5F67, 0x65ED, /* 0xE0 */
- 0x6631, 0x682F, 0x715C, 0x7A36, 0x90C1, 0x980A, 0x4E91, 0xF9C5, /* 0xF0 */
- 0x6A52, 0x6B9E, 0x6F90, 0x7189, 0x8018, 0x82B8, 0x8553 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_EA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x904B, 0x9695, 0x96F2, 0x97FB, 0x851A, 0x9B31, 0x4E90, /* 0xA0 */
- 0x718A, 0x96C4, 0x5143, 0x539F, 0x54E1, 0x5713, 0x5712, 0x57A3, /* 0xA0 */
- 0x5A9B, 0x5AC4, 0x5BC3, 0x6028, 0x613F, 0x63F4, 0x6C85, 0x6D39, /* 0xB0 */
- 0x6E72, 0x6E90, 0x7230, 0x733F, 0x7457, 0x82D1, 0x8881, 0x8F45, /* 0xB0 */
- 0x9060, 0xF9C6, 0x9662, 0x9858, 0x9D1B, 0x6708, 0x8D8A, 0x925E, /* 0xC0 */
- 0x4F4D, 0x5049, 0x50DE, 0x5371, 0x570D, 0x59D4, 0x5A01, 0x5C09, /* 0xC0 */
- 0x6170, 0x6690, 0x6E2D, 0x7232, 0x744B, 0x7DEF, 0x80C3, 0x840E, /* 0xD0 */
- 0x8466, 0x853F, 0x875F, 0x885B, 0x8918, 0x8B02, 0x9055, 0x97CB, /* 0xD0 */
- 0x9B4F, 0x4E73, 0x4F91, 0x5112, 0x516A, 0xF9C7, 0x552F, 0x55A9, /* 0xE0 */
- 0x5B7A, 0x5BA5, 0x5E7C, 0x5E7D, 0x5EBE, 0x60A0, 0x60DF, 0x6108, /* 0xE0 */
- 0x6109, 0x63C4, 0x6538, 0x6709, 0xF9C8, 0x67D4, 0x67DA, 0xF9C9, /* 0xF0 */
- 0x6961, 0x6962, 0x6CB9, 0x6D27, 0xF9CA, 0x6E38, 0xF9CB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_EB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6FE1, 0x7336, 0x7337, 0xF9CC, 0x745C, 0x7531, 0xF9CD, /* 0xA0 */
- 0x7652, 0xF9CE, 0xF9CF, 0x7DAD, 0x81FE, 0x8438, 0x88D5, 0x8A98, /* 0xA0 */
- 0x8ADB, 0x8AED, 0x8E30, 0x8E42, 0x904A, 0x903E, 0x907A, 0x9149, /* 0xB0 */
- 0x91C9, 0x936E, 0xF9D0, 0xF9D1, 0x5809, 0xF9D2, 0x6BD3, 0x8089, /* 0xB0 */
- 0x80B2, 0xF9D3, 0xF9D4, 0x5141, 0x596B, 0x5C39, 0xF9D5, 0xF9D6, /* 0xC0 */
- 0x6F64, 0x73A7, 0x80E4, 0x8D07, 0xF9D7, 0x9217, 0x958F, 0xF9D8, /* 0xC0 */
- 0xF9D9, 0xF9DA, 0xF9DB, 0x807F, 0x620E, 0x701C, 0x7D68, 0x878D, /* 0xD0 */
- 0xF9DC, 0x57A0, 0x6069, 0x6147, 0x6BB7, 0x8ABE, 0x9280, 0x96B1, /* 0xD0 */
- 0x4E59, 0x541F, 0x6DEB, 0x852D, 0x9670, 0x97F3, 0x98EE, 0x63D6, /* 0xE0 */
- 0x6CE3, 0x9091, 0x51DD, 0x61C9, 0x81BA, 0x9DF9, 0x4F9D, 0x501A, /* 0xE0 */
- 0x5100, 0x5B9C, 0x610F, 0x61FF, 0x64EC, 0x6905, 0x6BC5, 0x7591, /* 0xF0 */
- 0x77E3, 0x7FA9, 0x8264, 0x858F, 0x87FB, 0x8863, 0x8ABC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_EC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8B70, 0x91AB, 0x4E8C, 0x4EE5, 0x4F0A, 0xF9DD, 0xF9DE, /* 0xA0 */
- 0x5937, 0x59E8, 0xF9DF, 0x5DF2, 0x5F1B, 0x5F5B, 0x6021, 0xF9E0, /* 0xA0 */
- 0xF9E1, 0xF9E2, 0xF9E3, 0x723E, 0x73E5, 0xF9E4, 0x7570, 0x75CD, /* 0xB0 */
- 0xF9E5, 0x79FB, 0xF9E6, 0x800C, 0x8033, 0x8084, 0x82E1, 0x8351, /* 0xB0 */
- 0xF9E7, 0xF9E8, 0x8CBD, 0x8CB3, 0x9087, 0xF9E9, 0xF9EA, 0x98F4, /* 0xC0 */
- 0x990C, 0xF9EB, 0xF9EC, 0x7037, 0x76CA, 0x7FCA, 0x7FCC, 0x7FFC, /* 0xC0 */
- 0x8B1A, 0x4EBA, 0x4EC1, 0x5203, 0x5370, 0xF9ED, 0x54BD, 0x56E0, /* 0xD0 */
- 0x59FB, 0x5BC5, 0x5F15, 0x5FCD, 0x6E6E, 0xF9EE, 0xF9EF, 0x7D6A, /* 0xD0 */
- 0x8335, 0xF9F0, 0x8693, 0x8A8D, 0xF9F1, 0x976D, 0x9777, 0xF9F2, /* 0xE0 */
- 0xF9F3, 0x4E00, 0x4F5A, 0x4F7E, 0x58F9, 0x65E5, 0x6EA2, 0x9038, /* 0xE0 */
- 0x93B0, 0x99B9, 0x4EFB, 0x58EC, 0x598A, 0x59D9, 0x6041, 0xF9F4, /* 0xF0 */
- 0xF9F5, 0x7A14, 0xF9F6, 0x834F, 0x8CC3, 0x5165, 0x5344 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_ED[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF9F7, 0xF9F8, 0xF9F9, 0x4ECD, 0x5269, 0x5B55, 0x82BF, /* 0xA0 */
- 0x4ED4, 0x523A, 0x54A8, 0x59C9, 0x59FF, 0x5B50, 0x5B57, 0x5B5C, /* 0xA0 */
- 0x6063, 0x6148, 0x6ECB, 0x7099, 0x716E, 0x7386, 0x74F7, 0x75B5, /* 0xB0 */
- 0x78C1, 0x7D2B, 0x8005, 0x81EA, 0x8328, 0x8517, 0x85C9, 0x8AEE, /* 0xB0 */
- 0x8CC7, 0x96CC, 0x4F5C, 0x52FA, 0x56BC, 0x65AB, 0x6628, 0x707C, /* 0xC0 */
- 0x70B8, 0x7235, 0x7DBD, 0x828D, 0x914C, 0x96C0, 0x9D72, 0x5B71, /* 0xC0 */
- 0x68E7, 0x6B98, 0x6F7A, 0x76DE, 0x5C91, 0x66AB, 0x6F5B, 0x7BB4, /* 0xD0 */
- 0x7C2A, 0x8836, 0x96DC, 0x4E08, 0x4ED7, 0x5320, 0x5834, 0x58BB, /* 0xD0 */
- 0x58EF, 0x596C, 0x5C07, 0x5E33, 0x5E84, 0x5F35, 0x638C, 0x66B2, /* 0xE0 */
- 0x6756, 0x6A1F, 0x6AA3, 0x6B0C, 0x6F3F, 0x7246, 0xF9FA, 0x7350, /* 0xE0 */
- 0x748B, 0x7AE0, 0x7CA7, 0x8178, 0x81DF, 0x81E7, 0x838A, 0x846C, /* 0xF0 */
- 0x8523, 0x8594, 0x85CF, 0x88DD, 0x8D13, 0x91AC, 0x9577 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_EE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x969C, 0x518D, 0x54C9, 0x5728, 0x5BB0, 0x624D, 0x6750, /* 0xA0 */
- 0x683D, 0x6893, 0x6E3D, 0x6ED3, 0x707D, 0x7E21, 0x88C1, 0x8CA1, /* 0xA0 */
- 0x8F09, 0x9F4B, 0x9F4E, 0x722D, 0x7B8F, 0x8ACD, 0x931A, 0x4F47, /* 0xB0 */
- 0x4F4E, 0x5132, 0x5480, 0x59D0, 0x5E95, 0x62B5, 0x6775, 0x696E, /* 0xB0 */
- 0x6A17, 0x6CAE, 0x6E1A, 0x72D9, 0x732A, 0x75BD, 0x7BB8, 0x7D35, /* 0xC0 */
- 0x82E7, 0x83F9, 0x8457, 0x85F7, 0x8A5B, 0x8CAF, 0x8E87, 0x9019, /* 0xC0 */
- 0x90B8, 0x96CE, 0x9F5F, 0x52E3, 0x540A, 0x5AE1, 0x5BC2, 0x6458, /* 0xD0 */
- 0x6575, 0x6EF4, 0x72C4, 0xF9FB, 0x7684, 0x7A4D, 0x7B1B, 0x7C4D, /* 0xD0 */
- 0x7E3E, 0x7FDF, 0x837B, 0x8B2B, 0x8CCA, 0x8D64, 0x8DE1, 0x8E5F, /* 0xE0 */
- 0x8FEA, 0x8FF9, 0x9069, 0x93D1, 0x4F43, 0x4F7A, 0x50B3, 0x5168, /* 0xE0 */
- 0x5178, 0x524D, 0x526A, 0x5861, 0x587C, 0x5960, 0x5C08, 0x5C55, /* 0xF0 */
- 0x5EDB, 0x609B, 0x6230, 0x6813, 0x6BBF, 0x6C08, 0x6FB1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_EF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x714E, 0x7420, 0x7530, 0x7538, 0x7551, 0x7672, 0x7B4C, /* 0xA0 */
- 0x7B8B, 0x7BAD, 0x7BC6, 0x7E8F, 0x8A6E, 0x8F3E, 0x8F49, 0x923F, /* 0xA0 */
- 0x9293, 0x9322, 0x942B, 0x96FB, 0x985A, 0x986B, 0x991E, 0x5207, /* 0xB0 */
- 0x622A, 0x6298, 0x6D59, 0x7664, 0x7ACA, 0x7BC0, 0x7D76, 0x5360, /* 0xB0 */
- 0x5CBE, 0x5E97, 0x6F38, 0x70B9, 0x7C98, 0x9711, 0x9B8E, 0x9EDE, /* 0xC0 */
- 0x63A5, 0x647A, 0x8776, 0x4E01, 0x4E95, 0x4EAD, 0x505C, 0x5075, /* 0xC0 */
- 0x5448, 0x59C3, 0x5B9A, 0x5E40, 0x5EAD, 0x5EF7, 0x5F81, 0x60C5, /* 0xD0 */
- 0x633A, 0x653F, 0x6574, 0x65CC, 0x6676, 0x6678, 0x67FE, 0x6968, /* 0xD0 */
- 0x6A89, 0x6B63, 0x6C40, 0x6DC0, 0x6DE8, 0x6E1F, 0x6E5E, 0x701E, /* 0xE0 */
- 0x70A1, 0x738E, 0x73FD, 0x753A, 0x775B, 0x7887, 0x798E, 0x7A0B, /* 0xE0 */
- 0x7A7D, 0x7CBE, 0x7D8E, 0x8247, 0x8A02, 0x8AEA, 0x8C9E, 0x912D, /* 0xF0 */
- 0x914A, 0x91D8, 0x9266, 0x92CC, 0x9320, 0x9706, 0x9756 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_F0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x975C, 0x9802, 0x9F0E, 0x5236, 0x5291, 0x557C, 0x5824, /* 0xA0 */
- 0x5E1D, 0x5F1F, 0x608C, 0x63D0, 0x68AF, 0x6FDF, 0x796D, 0x7B2C, /* 0xA0 */
- 0x81CD, 0x85BA, 0x88FD, 0x8AF8, 0x8E44, 0x918D, 0x9664, 0x969B, /* 0xB0 */
- 0x973D, 0x984C, 0x9F4A, 0x4FCE, 0x5146, 0x51CB, 0x52A9, 0x5632, /* 0xB0 */
- 0x5F14, 0x5F6B, 0x63AA, 0x64CD, 0x65E9, 0x6641, 0x66FA, 0x66F9, /* 0xC0 */
- 0x671D, 0x689D, 0x68D7, 0x69FD, 0x6F15, 0x6F6E, 0x7167, 0x71E5, /* 0xC0 */
- 0x722A, 0x74AA, 0x773A, 0x7956, 0x795A, 0x79DF, 0x7A20, 0x7A95, /* 0xD0 */
- 0x7C97, 0x7CDF, 0x7D44, 0x7E70, 0x8087, 0x85FB, 0x86A4, 0x8A54, /* 0xD0 */
- 0x8ABF, 0x8D99, 0x8E81, 0x9020, 0x906D, 0x91E3, 0x963B, 0x96D5, /* 0xE0 */
- 0x9CE5, 0x65CF, 0x7C07, 0x8DB3, 0x93C3, 0x5B58, 0x5C0A, 0x5352, /* 0xE0 */
- 0x62D9, 0x731D, 0x5027, 0x5B97, 0x5F9E, 0x60B0, 0x616B, 0x68D5, /* 0xF0 */
- 0x6DD9, 0x742E, 0x7A2E, 0x7D42, 0x7D9C, 0x7E31, 0x816B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_F1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8E2A, 0x8E35, 0x937E, 0x9418, 0x4F50, 0x5750, 0x5DE6, /* 0xA0 */
- 0x5EA7, 0x632B, 0x7F6A, 0x4E3B, 0x4F4F, 0x4F8F, 0x505A, 0x59DD, /* 0xA0 */
- 0x80C4, 0x546A, 0x5468, 0x55FE, 0x594F, 0x5B99, 0x5DDE, 0x5EDA, /* 0xB0 */
- 0x665D, 0x6731, 0x67F1, 0x682A, 0x6CE8, 0x6D32, 0x6E4A, 0x6F8D, /* 0xB0 */
- 0x70B7, 0x73E0, 0x7587, 0x7C4C, 0x7D02, 0x7D2C, 0x7DA2, 0x821F, /* 0xC0 */
- 0x86DB, 0x8A3B, 0x8A85, 0x8D70, 0x8E8A, 0x8F33, 0x9031, 0x914E, /* 0xC0 */
- 0x9152, 0x9444, 0x99D0, 0x7AF9, 0x7CA5, 0x4FCA, 0x5101, 0x51C6, /* 0xD0 */
- 0x57C8, 0x5BEF, 0x5CFB, 0x6659, 0x6A3D, 0x6D5A, 0x6E96, 0x6FEC, /* 0xD0 */
- 0x710C, 0x756F, 0x7AE3, 0x8822, 0x9021, 0x9075, 0x96CB, 0x99FF, /* 0xE0 */
- 0x8301, 0x4E2D, 0x4EF2, 0x8846, 0x91CD, 0x537D, 0x6ADB, 0x696B, /* 0xE0 */
- 0x6C41, 0x847A, 0x589E, 0x618E, 0x66FE, 0x62EF, 0x70DD, 0x7511, /* 0xF0 */
- 0x75C7, 0x7E52, 0x84B8, 0x8B49, 0x8D08, 0x4E4B, 0x53EA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_F2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x54AB, 0x5730, 0x5740, 0x5FD7, 0x6301, 0x6307, 0x646F, /* 0xA0 */
- 0x652F, 0x65E8, 0x667A, 0x679D, 0x67B3, 0x6B62, 0x6C60, 0x6C9A, /* 0xA0 */
- 0x6F2C, 0x77E5, 0x7825, 0x7949, 0x7957, 0x7D19, 0x80A2, 0x8102, /* 0xB0 */
- 0x81F3, 0x829D, 0x82B7, 0x8718, 0x8A8C, 0xF9FC, 0x8D04, 0x8DBE, /* 0xB0 */
- 0x9072, 0x76F4, 0x7A19, 0x7A37, 0x7E54, 0x8077, 0x5507, 0x55D4, /* 0xC0 */
- 0x5875, 0x632F, 0x6422, 0x6649, 0x664B, 0x686D, 0x699B, 0x6B84, /* 0xC0 */
- 0x6D25, 0x6EB1, 0x73CD, 0x7468, 0x74A1, 0x755B, 0x75B9, 0x76E1, /* 0xD0 */
- 0x771E, 0x778B, 0x79E6, 0x7E09, 0x7E1D, 0x81FB, 0x852F, 0x8897, /* 0xD0 */
- 0x8A3A, 0x8CD1, 0x8EEB, 0x8FB0, 0x9032, 0x93AD, 0x9663, 0x9673, /* 0xE0 */
- 0x9707, 0x4F84, 0x53F1, 0x59EA, 0x5AC9, 0x5E19, 0x684E, 0x74C6, /* 0xE0 */
- 0x75BE, 0x79E9, 0x7A92, 0x81A3, 0x86ED, 0x8CEA, 0x8DCC, 0x8FED, /* 0xF0 */
- 0x659F, 0x6715, 0xF9FD, 0x57F7, 0x6F57, 0x7DDD, 0x8F2F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_F3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x93F6, 0x96C6, 0x5FB5, 0x61F2, 0x6F84, 0x4E14, 0x4F98, /* 0xA0 */
- 0x501F, 0x53C9, 0x55DF, 0x5D6F, 0x5DEE, 0x6B21, 0x6B64, 0x78CB, /* 0xA0 */
- 0x7B9A, 0xF9FE, 0x8E49, 0x8ECA, 0x906E, 0x6349, 0x643E, 0x7740, /* 0xB0 */
- 0x7A84, 0x932F, 0x947F, 0x9F6A, 0x64B0, 0x6FAF, 0x71E6, 0x74A8, /* 0xB0 */
- 0x74DA, 0x7AC4, 0x7C12, 0x7E82, 0x7CB2, 0x7E98, 0x8B9A, 0x8D0A, /* 0xC0 */
- 0x947D, 0x9910, 0x994C, 0x5239, 0x5BDF, 0x64E6, 0x672D, 0x7D2E, /* 0xC0 */
- 0x50ED, 0x53C3, 0x5879, 0x6158, 0x6159, 0x61FA, 0x65AC, 0x7AD9, /* 0xD0 */
- 0x8B92, 0x8B96, 0x5009, 0x5021, 0x5275, 0x5531, 0x5A3C, 0x5EE0, /* 0xD0 */
- 0x5F70, 0x6134, 0x655E, 0x660C, 0x6636, 0x66A2, 0x69CD, 0x6EC4, /* 0xE0 */
- 0x6F32, 0x7316, 0x7621, 0x7A93, 0x8139, 0x8259, 0x83D6, 0x84BC, /* 0xE0 */
- 0x50B5, 0x57F0, 0x5BC0, 0x5BE8, 0x5F69, 0x63A1, 0x7826, 0x7DB5, /* 0xF0 */
- 0x83DC, 0x8521, 0x91C7, 0x91F5, 0x518A, 0x67F5, 0x7B56 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_F4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8CAC, 0x51C4, 0x59BB, 0x60BD, 0x8655, 0x501C, 0xF9FF, /* 0xA0 */
- 0x5254, 0x5C3A, 0x617D, 0x621A, 0x62D3, 0x64F2, 0x65A5, 0x6ECC, /* 0xA0 */
- 0x7620, 0x810A, 0x8E60, 0x965F, 0x96BB, 0x4EDF, 0x5343, 0x5598, /* 0xB0 */
- 0x5929, 0x5DDD, 0x64C5, 0x6CC9, 0x6DFA, 0x7394, 0x7A7F, 0x821B, /* 0xB0 */
- 0x85A6, 0x8CE4, 0x8E10, 0x9077, 0x91E7, 0x95E1, 0x9621, 0x97C6, /* 0xC0 */
- 0x51F8, 0x54F2, 0x5586, 0x5FB9, 0x64A4, 0x6F88, 0x7DB4, 0x8F1F, /* 0xC0 */
- 0x8F4D, 0x9435, 0x50C9, 0x5C16, 0x6CBE, 0x6DFB, 0x751B, 0x77BB, /* 0xD0 */
- 0x7C3D, 0x7C64, 0x8A79, 0x8AC2, 0x581E, 0x59BE, 0x5E16, 0x6377, /* 0xD0 */
- 0x7252, 0x758A, 0x776B, 0x8ADC, 0x8CBC, 0x8F12, 0x5EF3, 0x6674, /* 0xE0 */
- 0x6DF8, 0x807D, 0x83C1, 0x8ACB, 0x9751, 0x9BD6, 0xFA00, 0x5243, /* 0xE0 */
- 0x66FF, 0x6D95, 0x6EEF, 0x7DE0, 0x8AE6, 0x902E, 0x905E, 0x9AD4, /* 0xF0 */
- 0x521D, 0x527F, 0x54E8, 0x6194, 0x6284, 0x62DB, 0x68A2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_F5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6912, 0x695A, 0x6A35, 0x7092, 0x7126, 0x785D, 0x7901, /* 0xA0 */
- 0x790E, 0x79D2, 0x7A0D, 0x8096, 0x8278, 0x82D5, 0x8349, 0x8549, /* 0xA0 */
- 0x8C82, 0x8D85, 0x9162, 0x918B, 0x91AE, 0x4FC3, 0x56D1, 0x71ED, /* 0xB0 */
- 0x77D7, 0x8700, 0x89F8, 0x5BF8, 0x5FD6, 0x6751, 0x90A8, 0x53E2, /* 0xB0 */
- 0x585A, 0x5BF5, 0x60A4, 0x6181, 0x6460, 0x7E3D, 0x8070, 0x8525, /* 0xC0 */
- 0x9283, 0x64AE, 0x50AC, 0x5D14, 0x6700, 0x589C, 0x62BD, 0x63A8, /* 0xC0 */
- 0x690E, 0x6978, 0x6A1E, 0x6E6B, 0x76BA, 0x79CB, 0x82BB, 0x8429, /* 0xD0 */
- 0x8ACF, 0x8DA8, 0x8FFD, 0x9112, 0x914B, 0x919C, 0x9310, 0x9318, /* 0xD0 */
- 0x939A, 0x96DB, 0x9A36, 0x9C0D, 0x4E11, 0x755C, 0x795D, 0x7AFA, /* 0xE0 */
- 0x7B51, 0x7BC9, 0x7E2E, 0x84C4, 0x8E59, 0x8E74, 0x8EF8, 0x9010, /* 0xE0 */
- 0x6625, 0x693F, 0x7443, 0x51FA, 0x672E, 0x9EDC, 0x5145, 0x5FE0, /* 0xF0 */
- 0x6C96, 0x87F2, 0x885D, 0x8877, 0x60B4, 0x81B5, 0x8403 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_F6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8D05, 0x53D6, 0x5439, 0x5634, 0x5A36, 0x5C31, 0x708A, /* 0xA0 */
- 0x7FE0, 0x805A, 0x8106, 0x81ED, 0x8DA3, 0x9189, 0x9A5F, 0x9DF2, /* 0xA0 */
- 0x5074, 0x4EC4, 0x53A0, 0x60FB, 0x6E2C, 0x5C64, 0x4F88, 0x5024, /* 0xB0 */
- 0x55E4, 0x5CD9, 0x5E5F, 0x6065, 0x6894, 0x6CBB, 0x6DC4, 0x71BE, /* 0xB0 */
- 0x75D4, 0x75F4, 0x7661, 0x7A1A, 0x7A49, 0x7DC7, 0x7DFB, 0x7F6E, /* 0xC0 */
- 0x81F4, 0x86A9, 0x8F1C, 0x96C9, 0x99B3, 0x9F52, 0x5247, 0x52C5, /* 0xC0 */
- 0x98ED, 0x89AA, 0x4E03, 0x67D2, 0x6F06, 0x4FB5, 0x5BE2, 0x6795, /* 0xD0 */
- 0x6C88, 0x6D78, 0x741B, 0x7827, 0x91DD, 0x937C, 0x87C4, 0x79E4, /* 0xD0 */
- 0x7A31, 0x5FEB, 0x4ED6, 0x54A4, 0x553E, 0x58AE, 0x59A5, 0x60F0, /* 0xE0 */
- 0x6253, 0x62D6, 0x6736, 0x6955, 0x8235, 0x9640, 0x99B1, 0x99DD, /* 0xE0 */
- 0x502C, 0x5353, 0x5544, 0x577C, 0xFA01, 0x6258, 0xFA02, 0x64E2, /* 0xF0 */
- 0x666B, 0x67DD, 0x6FC1, 0x6FEF, 0x7422, 0x7438, 0x8A17 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_F7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9438, 0x5451, 0x5606, 0x5766, 0x5F48, 0x619A, 0x6B4E, /* 0xA0 */
- 0x7058, 0x70AD, 0x7DBB, 0x8A95, 0x596A, 0x812B, 0x63A2, 0x7708, /* 0xA0 */
- 0x803D, 0x8CAA, 0x5854, 0x642D, 0x69BB, 0x5B95, 0x5E11, 0x6E6F, /* 0xB0 */
- 0xFA03, 0x8569, 0x514C, 0x53F0, 0x592A, 0x6020, 0x614B, 0x6B86, /* 0xB0 */
- 0x6C70, 0x6CF0, 0x7B1E, 0x80CE, 0x82D4, 0x8DC6, 0x90B0, 0x98B1, /* 0xC0 */
- 0xFA04, 0x64C7, 0x6FA4, 0x6491, 0x6504, 0x514E, 0x5410, 0x571F, /* 0xC0 */
- 0x8A0E, 0x615F, 0x6876, 0xFA05, 0x75DB, 0x7B52, 0x7D71, 0x901A, /* 0xD0 */
- 0x5806, 0x69CC, 0x817F, 0x892A, 0x9000, 0x9839, 0x5078, 0x5957, /* 0xD0 */
- 0x59AC, 0x6295, 0x900F, 0x9B2A, 0x615D, 0x7279, 0x95D6, 0x5761, /* 0xE0 */
- 0x5A46, 0x5DF4, 0x628A, 0x64AD, 0x64FA, 0x6777, 0x6CE2, 0x6D3E, /* 0xE0 */
- 0x722C, 0x7436, 0x7834, 0x7F77, 0x82AD, 0x8DDB, 0x9817, 0x5224, /* 0xF0 */
- 0x5742, 0x677F, 0x7248, 0x74E3, 0x8CA9, 0x8FA6, 0x9211 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_F8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x962A, 0x516B, 0x53ED, 0x634C, 0x4F69, 0x5504, 0x6096, /* 0xA0 */
- 0x6557, 0x6C9B, 0x6D7F, 0x724C, 0x72FD, 0x7A17, 0x8987, 0x8C9D, /* 0xA0 */
- 0x5F6D, 0x6F8E, 0x70F9, 0x81A8, 0x610E, 0x4FBF, 0x504F, 0x6241, /* 0xB0 */
- 0x7247, 0x7BC7, 0x7DE8, 0x7FE9, 0x904D, 0x97AD, 0x9A19, 0x8CB6, /* 0xB0 */
- 0x576A, 0x5E73, 0x67B0, 0x840D, 0x8A55, 0x5420, 0x5B16, 0x5E63, /* 0xC0 */
- 0x5EE2, 0x5F0A, 0x6583, 0x80BA, 0x853D, 0x9589, 0x965B, 0x4F48, /* 0xC0 */
- 0x5305, 0x530D, 0x530F, 0x5486, 0x54FA, 0x5703, 0x5E03, 0x6016, /* 0xD0 */
- 0x629B, 0x62B1, 0x6355, 0xFA06, 0x6CE1, 0x6D66, 0x75B1, 0x7832, /* 0xD0 */
- 0x80DE, 0x812F, 0x82DE, 0x8461, 0x84B2, 0x888D, 0x8912, 0x900B, /* 0xE0 */
- 0x92EA, 0x98FD, 0x9B91, 0x5E45, 0x66B4, 0x66DD, 0x7011, 0x7206, /* 0xE0 */
- 0xFA07, 0x4FF5, 0x527D, 0x5F6A, 0x6153, 0x6753, 0x6A19, 0x6F02, /* 0xF0 */
- 0x74E2, 0x7968, 0x8868, 0x8C79, 0x98C7, 0x98C4, 0x9A43 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_F9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x54C1, 0x7A1F, 0x6953, 0x8AF7, 0x8C4A, 0x98A8, 0x99AE, /* 0xA0 */
- 0x5F7C, 0x62AB, 0x75B2, 0x76AE, 0x88AB, 0x907F, 0x9642, 0x5339, /* 0xA0 */
- 0x5F3C, 0x5FC5, 0x6CCC, 0x73CC, 0x7562, 0x758B, 0x7B46, 0x82FE, /* 0xB0 */
- 0x999D, 0x4E4F, 0x903C, 0x4E0B, 0x4F55, 0x53A6, 0x590F, 0x5EC8, /* 0xB0 */
- 0x6630, 0x6CB3, 0x7455, 0x8377, 0x8766, 0x8CC0, 0x9050, 0x971E, /* 0xC0 */
- 0x9C15, 0x58D1, 0x5B78, 0x8650, 0x8B14, 0x9DB4, 0x5BD2, 0x6068, /* 0xC0 */
- 0x608D, 0x65F1, 0x6C57, 0x6F22, 0x6FA3, 0x701A, 0x7F55, 0x7FF0, /* 0xD0 */
- 0x9591, 0x9592, 0x9650, 0x97D3, 0x5272, 0x8F44, 0x51FD, 0x542B, /* 0xD0 */
- 0x54B8, 0x5563, 0x558A, 0x6ABB, 0x6DB5, 0x7DD8, 0x8266, 0x929C, /* 0xE0 */
- 0x9677, 0x9E79, 0x5408, 0x54C8, 0x76D2, 0x86E4, 0x95A4, 0x95D4, /* 0xE0 */
- 0x965C, 0x4EA2, 0x4F09, 0x59EE, 0x5AE6, 0x5DF7, 0x6052, 0x6297, /* 0xF0 */
- 0x676D, 0x6841, 0x6C86, 0x6E2F, 0x7F38, 0x809B, 0x822A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_FA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFA08, 0xFA09, 0x9805, 0x4EA5, 0x5055, 0x54B3, 0x5793, /* 0xA0 */
- 0x595A, 0x5B69, 0x5BB3, 0x61C8, 0x6977, 0x6D77, 0x7023, 0x87F9, /* 0xA0 */
- 0x89E3, 0x8A72, 0x8AE7, 0x9082, 0x99ED, 0x9AB8, 0x52BE, 0x6838, /* 0xB0 */
- 0x5016, 0x5E78, 0x674F, 0x8347, 0x884C, 0x4EAB, 0x5411, 0x56AE, /* 0xB0 */
- 0x73E6, 0x9115, 0x97FF, 0x9909, 0x9957, 0x9999, 0x5653, 0x589F, /* 0xC0 */
- 0x865B, 0x8A31, 0x61B2, 0x6AF6, 0x737B, 0x8ED2, 0x6B47, 0x96AA, /* 0xC0 */
- 0x9A57, 0x5955, 0x7200, 0x8D6B, 0x9769, 0x4FD4, 0x5CF4, 0x5F26, /* 0xD0 */
- 0x61F8, 0x665B, 0x6CEB, 0x70AB, 0x7384, 0x73B9, 0x73FE, 0x7729, /* 0xD0 */
- 0x774D, 0x7D43, 0x7D62, 0x7E23, 0x8237, 0x8852, 0xFA0A, 0x8CE2, /* 0xE0 */
- 0x9249, 0x986F, 0x5B51, 0x7A74, 0x8840, 0x9801, 0x5ACC, 0x4FE0, /* 0xE0 */
- 0x5354, 0x593E, 0x5CFD, 0x633E, 0x6D79, 0x72F9, 0x8105, 0x8107, /* 0xF0 */
- 0x83A2, 0x92CF, 0x9830, 0x4EA8, 0x5144, 0x5211, 0x578B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_FB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5F62, 0x6CC2, 0x6ECE, 0x7005, 0x7050, 0x70AF, 0x7192, /* 0xA0 */
- 0x73E9, 0x7469, 0x834A, 0x87A2, 0x8861, 0x9008, 0x90A2, 0x93A3, /* 0xA0 */
- 0x99A8, 0x516E, 0x5F57, 0x60E0, 0x6167, 0x66B3, 0x8559, 0x8E4A, /* 0xB0 */
- 0x91AF, 0x978B, 0x4E4E, 0x4E92, 0x547C, 0x58D5, 0x58FA, 0x597D, /* 0xB0 */
- 0x5CB5, 0x5F27, 0x6236, 0x6248, 0x660A, 0x6667, 0x6BEB, 0x6D69, /* 0xC0 */
- 0x6DCF, 0x6E56, 0x6EF8, 0x6F94, 0x6FE0, 0x6FE9, 0x705D, 0x72D0, /* 0xC0 */
- 0x7425, 0x745A, 0x74E0, 0x7693, 0x795C, 0x7CCA, 0x7E1E, 0x80E1, /* 0xD0 */
- 0x82A6, 0x846B, 0x84BF, 0x864E, 0x865F, 0x8774, 0x8B77, 0x8C6A, /* 0xD0 */
- 0x93AC, 0x9800, 0x9865, 0x60D1, 0x6216, 0x9177, 0x5A5A, 0x660F, /* 0xE0 */
- 0x6DF7, 0x6E3E, 0x743F, 0x9B42, 0x5FFD, 0x60DA, 0x7B0F, 0x54C4, /* 0xE0 */
- 0x5F18, 0x6C5E, 0x6CD3, 0x6D2A, 0x70D8, 0x7D05, 0x8679, 0x8A0C, /* 0xF0 */
- 0x9D3B, 0x5316, 0x548C, 0x5B05, 0x6A3A, 0x706B, 0x7575 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_FC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x798D, 0x79BE, 0x82B1, 0x83EF, 0x8A71, 0x8B41, 0x8CA8, /* 0xA0 */
- 0x9774, 0xFA0B, 0x64F4, 0x652B, 0x78BA, 0x78BB, 0x7A6B, 0x4E38, /* 0xA0 */
- 0x559A, 0x5950, 0x5BA6, 0x5E7B, 0x60A3, 0x63DB, 0x6B61, 0x6665, /* 0xB0 */
- 0x6853, 0x6E19, 0x7165, 0x74B0, 0x7D08, 0x9084, 0x9A69, 0x9C25, /* 0xB0 */
- 0x6D3B, 0x6ED1, 0x733E, 0x8C41, 0x95CA, 0x51F0, 0x5E4C, 0x5FA8, /* 0xC0 */
- 0x604D, 0x60F6, 0x6130, 0x614C, 0x6643, 0x6644, 0x69A5, 0x6CC1, /* 0xC0 */
- 0x6E5F, 0x6EC9, 0x6F62, 0x714C, 0x749C, 0x7687, 0x7BC1, 0x7C27, /* 0xD0 */
- 0x8352, 0x8757, 0x9051, 0x968D, 0x9EC3, 0x532F, 0x56DE, 0x5EFB, /* 0xD0 */
- 0x5F8A, 0x6062, 0x6094, 0x61F7, 0x6666, 0x6703, 0x6A9C, 0x6DEE, /* 0xE0 */
- 0x6FAE, 0x7070, 0x736A, 0x7E6A, 0x81BE, 0x8334, 0x86D4, 0x8AA8, /* 0xE0 */
- 0x8CC4, 0x5283, 0x7372, 0x5B96, 0x6A6B, 0x9404, 0x54EE, 0x5686, /* 0xF0 */
- 0x5B5D, 0x6548, 0x6585, 0x66C9, 0x689F, 0x6D8D, 0x6DC6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_KSC5601_FD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x723B, 0x80B4, 0x9175, 0x9A4D, 0x4FAF, 0x5019, 0x539A, /* 0xA0 */
- 0x540E, 0x543C, 0x5589, 0x55C5, 0x5E3F, 0x5F8C, 0x673D, 0x7166, /* 0xA0 */
- 0x73DD, 0x9005, 0x52DB, 0x52F3, 0x5864, 0x58CE, 0x7104, 0x718F, /* 0xB0 */
- 0x71FB, 0x85B0, 0x8A13, 0x6688, 0x85A8, 0x55A7, 0x6684, 0x714A, /* 0xB0 */
- 0x8431, 0x5349, 0x5599, 0x6BC1, 0x5F59, 0x5FBD, 0x63EE, 0x6689, /* 0xC0 */
- 0x7147, 0x8AF1, 0x8F1D, 0x9EBE, 0x4F11, 0x643A, 0x70CB, 0x7566, /* 0xC0 */
- 0x8667, 0x6064, 0x8B4E, 0x9DF8, 0x5147, 0x51F6, 0x5308, 0x6D36, /* 0xD0 */
- 0x80F8, 0x9ED1, 0x6615, 0x6B23, 0x7098, 0x75D5, 0x5403, 0x5C79, /* 0xD0 */
- 0x7D07, 0x8A16, 0x6B20, 0x6B3D, 0x6B46, 0x5438, 0x6070, 0x6D3D, /* 0xE0 */
- 0x7FD5, 0x8208, 0x50D6, 0x51DE, 0x559C, 0x566B, 0x56CD, 0x59EC, /* 0xE0 */
- 0x5B09, 0x5E0C, 0x6199, 0x6198, 0x6231, 0x665E, 0x66E6, 0x7199, /* 0xF0 */
- 0x71B9, 0x71BA, 0x72A7, 0x79A7, 0x7A00, 0x7FB2, 0x8A70 /* 0xF0 */
-};
diff --git a/sal/textenc/tcvtkr2.tab b/sal/textenc/tcvtkr2.tab
deleted file mode 100644
index 6aeaf4ecf..000000000
--- a/sal/textenc/tcvtkr2.tab
+++ /dev/null
@@ -1,5415 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the DBCS to UniCode tables for the following */
-/* korean charsets: */
-/* KSC_5601, EUC-KR, MS_949, APPLE_KOREAN */
-
-/* ======================================================================= */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_00[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, /* 0x00 */
- 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, /* 0x00 */
- 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, /* 0x10 */
- 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, /* 0x10 */
- 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, /* 0x20 */
- 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, /* 0x20 */
- 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* 0x30 */
- 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, /* 0x30 */
- 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* 0x40 */
- 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, /* 0x40 */
- 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, /* 0x50 */
- 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, /* 0x50 */
- 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, /* 0x60 */
- 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, /* 0x60 */
- 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, /* 0x70 */
- 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xA2AE, 0, 0, 0xA2B4, 0, 0, 0xA1D7, /* 0xA0 */
- 0xA1A7, 0, 0xA8A3, 0, 0, 0xA1A9, 0xA2E7, 0, /* 0xA0 */
- 0xA1C6, 0xA1BE, 0xA9F7, 0xA9F8, 0xA2A5, 0, 0xA2D2, 0xA1A4, /* 0xB0 */
- 0xA2AC, 0xA9F6, 0xA8AC, 0, 0xA8F9, 0xA8F6, 0xA8FA, 0xA2AF, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xA8A1, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xA8A2, 0, 0, 0, 0, 0, 0, 0xA1BF, /* 0xD0 */
- 0xA8AA, 0, 0, 0, 0, 0, 0xA8AD, 0xA9AC, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xA9A1, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xA9A3, 0, 0, 0, 0, 0, 0, 0xA1C0, /* 0xF0 */
- 0xA9AA, 0, 0, 0, 0, 0, 0xA9AD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_01[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA9A2, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xA8A4, 0xA9A4, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xA9A5, 0xA8A6, 0xA9A6, 0, 0, 0, 0, /* 0x30 */
- 0xA9A7, 0, 0, 0, 0, 0, 0, 0xA8A8, /* 0x30 */
- 0xA9A8, 0xA8A9, 0xA9A9, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xA9B0, 0xA8AF, 0xA9AF, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xA8AB, 0xA9AB, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xA8AE, 0xA9AE /* 0x60 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_02[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA2A7, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xA2B0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xA2A8, 0xA2AB, 0xA2AA, 0xA2AD, 0, 0xA2A9 /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_03[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA5C1, 0xA5C2, 0xA5C3, 0xA5C4, 0xA5C5, 0xA5C6, 0xA5C7, /* 0x90 */
- 0xA5C8, 0xA5C9, 0xA5CA, 0xA5CB, 0xA5CC, 0xA5CD, 0xA5CE, 0xA5CF, /* 0x90 */
- 0xA5D0, 0xA5D1, 0, 0xA5D2, 0xA5D3, 0xA5D4, 0xA5D5, 0xA5D6, /* 0xA0 */
- 0xA5D7, 0xA5D8, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xA5E1, 0xA5E2, 0xA5E3, 0xA5E4, 0xA5E5, 0xA5E6, 0xA5E7, /* 0xB0 */
- 0xA5E8, 0xA5E9, 0xA5EA, 0xA5EB, 0xA5EC, 0xA5ED, 0xA5EE, 0xA5EF, /* 0xB0 */
- 0xA5F0, 0xA5F1, 0, 0xA5F2, 0xA5F3, 0xA5F4, 0xA5F5, 0xA5F6, /* 0xC0 */
- 0xA5F7, 0xA5F8 /* 0xC0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_04[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xACA7, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0xACA1, 0xACA2, 0xACA3, 0xACA4, 0xACA5, 0xACA6, 0xACA8, 0xACA9, /* 0x10 */
- 0xACAA, 0xACAB, 0xACAC, 0xACAD, 0xACAE, 0xACAF, 0xACB0, 0xACB1, /* 0x10 */
- 0xACB2, 0xACB3, 0xACB4, 0xACB5, 0xACB6, 0xACB7, 0xACB8, 0xACB9, /* 0x20 */
- 0xACBA, 0xACBB, 0xACBC, 0xACBD, 0xACBE, 0xACBF, 0xACC0, 0xACC1, /* 0x20 */
- 0xACD1, 0xACD2, 0xACD3, 0xACD4, 0xACD5, 0xACD6, 0xACD8, 0xACD9, /* 0x30 */
- 0xACDA, 0xACDB, 0xACDC, 0xACDD, 0xACDE, 0xACDF, 0xACE0, 0xACE1, /* 0x30 */
- 0xACE2, 0xACE3, 0xACE4, 0xACE5, 0xACE6, 0xACE7, 0xACE8, 0xACE9, /* 0x40 */
- 0xACEA, 0xACEB, 0xACEC, 0xACED, 0xACEE, 0xACEF, 0xACF0, 0xACF1, /* 0x40 */
- 0, 0xACD7 /* 0x50 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_20[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA1AA, 0, 0, /* 0x10 */
- 0xA1AE, 0xA1AF, 0, 0, 0xA1B0, 0xA1B1, 0, 0, /* 0x10 */
- 0xA2D3, 0xA2D4, 0, 0, 0, 0xA1A5, 0xA1A6, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xA2B6, 0, 0xA1C7, 0xA1C8, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xA1D8, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xA9F9, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xA9FA, /* 0x70 */
- 0, 0xA9FB, 0xA9FC, 0xA9FD, 0xA9FE, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xA2E6 /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_21[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA1C9, 0, 0, 0, 0, /* 0x00 */
- 0, 0xA2B5, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0xA7A4, 0, 0, 0xA2E0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xA2E5, 0xA2E2, 0, 0, 0, 0xA7D9, 0, /* 0x20 */
- 0, 0, 0, 0xA1CA, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xA8F7, 0xA8F8, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0xA8FB, 0xA8FC, 0xA8FD, 0xA8FE, 0, /* 0x50 */
- 0xA5B0, 0xA5B1, 0xA5B2, 0xA5B3, 0xA5B4, 0xA5B5, 0xA5B6, 0xA5B7, /* 0x60 */
- 0xA5B8, 0xA5B9, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0xA5A1, 0xA5A2, 0xA5A3, 0xA5A4, 0xA5A5, 0xA5A6, 0xA5A7, 0xA5A8, /* 0x70 */
- 0xA5A9, 0xA5AA, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xA1E7, 0xA1E8, 0xA1E6, 0xA1E9, 0xA1EA, 0xA2D5, 0xA2D8, 0xA2D6, /* 0x90 */
- 0xA2D9, 0xA2D7, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xA2A1, 0, 0xA2A2 /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_22[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA2A3, 0, 0xA1D3, 0xA2A4, 0, 0, 0, 0xA1D4, /* 0x00 */
- 0xA1F4, 0, 0, 0xA1F5, 0, 0, 0, 0xA2B3, /* 0x00 */
- 0, 0xA2B2, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0xA1EE, 0, 0, 0xA1F0, 0xA1C4, 0, /* 0x10 */
- 0xA1D0, 0, 0, 0, 0, 0xA1AB, 0, 0xA1FC, /* 0x20 */
- 0xA1FD, 0xA1FB, 0xA1FA, 0xA1F2, 0xA1F3, 0, 0xA2B1, 0, /* 0x20 */
- 0, 0, 0, 0, 0xA1C5, 0xA1F1, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0xA1AD, 0xA1EF, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xA1D6, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xA1C1, 0xA1D5, 0, 0, 0xA1C2, 0xA1C3, 0, 0, /* 0x60 */
- 0, 0, 0xA1EC, 0xA1ED, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xA1F8, 0xA1F9, 0, 0, 0xA1F6, 0xA1F7, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xA2C1, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xA1D1 /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_23[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA1D2 /* 0x10 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_24[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA8E7, 0xA8E8, 0xA8E9, 0xA8EA, 0xA8EB, 0xA8EC, 0xA8ED, 0xA8EE, /* 0x60 */
- 0xA8EF, 0xA8F0, 0xA8F1, 0xA8F2, 0xA8F3, 0xA8F4, 0xA8F5, 0, /* 0x60 */
- 0, 0, 0, 0, 0xA9E7, 0xA9E8, 0xA9E9, 0xA9EA, /* 0x70 */
- 0xA9EB, 0xA9EC, 0xA9ED, 0xA9EE, 0xA9EF, 0xA9F0, 0xA9F1, 0xA9F2, /* 0x70 */
- 0xA9F3, 0xA9F4, 0xA9F5, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xA9CD, 0xA9CE, 0xA9CF, 0xA9D0, /* 0x90 */
- 0xA9D1, 0xA9D2, 0xA9D3, 0xA9D4, 0xA9D5, 0xA9D6, 0xA9D7, 0xA9D8, /* 0xA0 */
- 0xA9D9, 0xA9DA, 0xA9DB, 0xA9DC, 0xA9DD, 0xA9DE, 0xA9DF, 0xA9E0, /* 0xA0 */
- 0xA9E1, 0xA9E2, 0xA9E3, 0xA9E4, 0xA9E5, 0xA9E6, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xA8CD, 0xA8CE, 0xA8CF, 0xA8D0, 0xA8D1, 0xA8D2, 0xA8D3, 0xA8D4, /* 0xD0 */
- 0xA8D5, 0xA8D6, 0xA8D7, 0xA8D8, 0xA8D9, 0xA8DA, 0xA8DB, 0xA8DC, /* 0xD0 */
- 0xA8DD, 0xA8DE, 0xA8DF, 0xA8E0, 0xA8E1, 0xA8E2, 0xA8E3, 0xA8E4, /* 0xE0 */
- 0xA8E5, 0xA8E6 /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_25[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA6A1, 0xA6AC, 0xA6A2, 0xA6AD, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0xA6A3, 0xA6C8, 0xA6C7, 0xA6AE, /* 0x00 */
- 0xA6A4, 0xA6C2, 0xA6C1, 0xA6AF, 0xA6A6, 0xA6C6, 0xA6C5, 0xA6B1, /* 0x10 */
- 0xA6A5, 0xA6C4, 0xA6C3, 0xA6B0, 0xA6A7, 0xA6BC, 0xA6C9, 0xA6CA, /* 0x10 */
- 0xA6B7, 0xA6CB, 0xA6CC, 0xA6B2, 0xA6A9, 0xA6BE, 0xA6CD, 0xA6CE, /* 0x20 */
- 0xA6B9, 0xA6CF, 0xA6D0, 0xA6B4, 0xA6A8, 0xA6D1, 0xA6D2, 0xA6B8, /* 0x20 */
- 0xA6BD, 0xA6D3, 0xA6D4, 0xA6B3, 0xA6AA, 0xA6D5, 0xA6D6, 0xA6BA, /* 0x30 */
- 0xA6BF, 0xA6D7, 0xA6D8, 0xA6B5, 0xA6AB, 0xA6D9, 0xA6DA, 0xA6BB, /* 0x30 */
- 0xA6DB, 0xA6DC, 0xA6C0, 0xA6DD, 0xA6DE, 0xA6DF, 0xA6E0, 0xA6E1, /* 0x40 */
- 0xA6E2, 0xA6E3, 0xA6E4, 0xA6B6, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xA2C6, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xA1E1, 0xA1E0, 0, 0xA2C3, 0xA2C7, 0xA2C8, 0xA2CB, 0xA2CA, /* 0xA0 */
- 0xA2C9, 0xA2CC, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xA1E3, 0xA1E2, 0, 0, 0xA2BA, 0xA2B9, /* 0xB0 */
- 0, 0, 0, 0, 0xA1E5, 0xA1E4, 0, 0, /* 0xB0 */
- 0xA2B8, 0xA2B7, 0, 0, 0, 0, 0xA1DF, 0xA1DE, /* 0xC0 */
- 0xA2C2, 0, 0, 0xA1DB, 0, 0, 0xA1DD, 0xA1DC, /* 0xC0 */
- 0xA2C4, 0xA2C5 /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_26[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA1DA, 0xA1D9, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xA2CF, 0xA2CE, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0xA2D0, 0, 0xA2D1, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xA1CF, 0, 0xA1CE, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xA2BC, 0xA2BD, 0, 0xA2C0, 0xA2BB, 0xA2BE, 0, 0xA2BF, /* 0x60 */
- 0xA2CD, 0xA2DB, 0xA2DC, 0, 0xA2DD, 0xA2DA /* 0x60 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_30[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA1A1, 0xA1A2, 0xA1A3, 0xA1A8, 0, 0, 0, 0, /* 0x00 */
- 0xA1B4, 0xA1B5, 0xA1B6, 0xA1B7, 0xA1B8, 0xA1B9, 0xA1BA, 0xA1BB, /* 0x00 */
- 0xA1BC, 0xA1BD, 0, 0xA1EB, 0xA1B2, 0xA1B3, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xAAA1, 0xAAA2, 0xAAA3, 0xAAA4, 0xAAA5, 0xAAA6, 0xAAA7, /* 0x40 */
- 0xAAA8, 0xAAA9, 0xAAAA, 0xAAAB, 0xAAAC, 0xAAAD, 0xAAAE, 0xAAAF, /* 0x40 */
- 0xAAB0, 0xAAB1, 0xAAB2, 0xAAB3, 0xAAB4, 0xAAB5, 0xAAB6, 0xAAB7, /* 0x50 */
- 0xAAB8, 0xAAB9, 0xAABA, 0xAABB, 0xAABC, 0xAABD, 0xAABE, 0xAABF, /* 0x50 */
- 0xAAC0, 0xAAC1, 0xAAC2, 0xAAC3, 0xAAC4, 0xAAC5, 0xAAC6, 0xAAC7, /* 0x60 */
- 0xAAC8, 0xAAC9, 0xAACA, 0xAACB, 0xAACC, 0xAACD, 0xAACE, 0xAACF, /* 0x60 */
- 0xAAD0, 0xAAD1, 0xAAD2, 0xAAD3, 0xAAD4, 0xAAD5, 0xAAD6, 0xAAD7, /* 0x70 */
- 0xAAD8, 0xAAD9, 0xAADA, 0xAADB, 0xAADC, 0xAADD, 0xAADE, 0xAADF, /* 0x70 */
- 0xAAE0, 0xAAE1, 0xAAE2, 0xAAE3, 0xAAE4, 0xAAE5, 0xAAE6, 0xAAE7, /* 0x80 */
- 0xAAE8, 0xAAE9, 0xAAEA, 0xAAEB, 0xAAEC, 0xAAED, 0xAAEE, 0xAAEF, /* 0x80 */
- 0xAAF0, 0xAAF1, 0xAAF2, 0xAAF3, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xABA1, 0xABA2, 0xABA3, 0xABA4, 0xABA5, 0xABA6, 0xABA7, /* 0xA0 */
- 0xABA8, 0xABA9, 0xABAA, 0xABAB, 0xABAC, 0xABAD, 0xABAE, 0xABAF, /* 0xA0 */
- 0xABB0, 0xABB1, 0xABB2, 0xABB3, 0xABB4, 0xABB5, 0xABB6, 0xABB7, /* 0xB0 */
- 0xABB8, 0xABB9, 0xABBA, 0xABBB, 0xABBC, 0xABBD, 0xABBE, 0xABBF, /* 0xB0 */
- 0xABC0, 0xABC1, 0xABC2, 0xABC3, 0xABC4, 0xABC5, 0xABC6, 0xABC7, /* 0xC0 */
- 0xABC8, 0xABC9, 0xABCA, 0xABCB, 0xABCC, 0xABCD, 0xABCE, 0xABCF, /* 0xC0 */
- 0xABD0, 0xABD1, 0xABD2, 0xABD3, 0xABD4, 0xABD5, 0xABD6, 0xABD7, /* 0xD0 */
- 0xABD8, 0xABD9, 0xABDA, 0xABDB, 0xABDC, 0xABDD, 0xABDE, 0xABDF, /* 0xD0 */
- 0xABE0, 0xABE1, 0xABE2, 0xABE3, 0xABE4, 0xABE5, 0xABE6, 0xABE7, /* 0xE0 */
- 0xABE8, 0xABE9, 0xABEA, 0xABEB, 0xABEC, 0xABED, 0xABEE, 0xABEF, /* 0xE0 */
- 0xABF0, 0xABF1, 0xABF2, 0xABF3, 0xABF4, 0xABF5, 0xABF6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_31[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA4A1, 0xA4A2, 0xA4A3, 0xA4A4, 0xA4A5, 0xA4A6, 0xA4A7, /* 0x30 */
- 0xA4A8, 0xA4A9, 0xA4AA, 0xA4AB, 0xA4AC, 0xA4AD, 0xA4AE, 0xA4AF, /* 0x30 */
- 0xA4B0, 0xA4B1, 0xA4B2, 0xA4B3, 0xA4B4, 0xA4B5, 0xA4B6, 0xA4B7, /* 0x40 */
- 0xA4B8, 0xA4B9, 0xA4BA, 0xA4BB, 0xA4BC, 0xA4BD, 0xA4BE, 0xA4BF, /* 0x40 */
- 0xA4C0, 0xA4C1, 0xA4C2, 0xA4C3, 0xA4C4, 0xA4C5, 0xA4C6, 0xA4C7, /* 0x50 */
- 0xA4C8, 0xA4C9, 0xA4CA, 0xA4CB, 0xA4CC, 0xA4CD, 0xA4CE, 0xA4CF, /* 0x50 */
- 0xA4D0, 0xA4D1, 0xA4D2, 0xA4D3, 0xA4D4, 0xA4D5, 0xA4D6, 0xA4D7, /* 0x60 */
- 0xA4D8, 0xA4D9, 0xA4DA, 0xA4DB, 0xA4DC, 0xA4DD, 0xA4DE, 0xA4DF, /* 0x60 */
- 0xA4E0, 0xA4E1, 0xA4E2, 0xA4E3, 0xA4E4, 0xA4E5, 0xA4E6, 0xA4E7, /* 0x70 */
- 0xA4E8, 0xA4E9, 0xA4EA, 0xA4EB, 0xA4EC, 0xA4ED, 0xA4EE, 0xA4EF, /* 0x70 */
- 0xA4F0, 0xA4F1, 0xA4F2, 0xA4F3, 0xA4F4, 0xA4F5, 0xA4F6, 0xA4F7, /* 0x80 */
- 0xA4F8, 0xA4F9, 0xA4FA, 0xA4FB, 0xA4FC, 0xA4FD, 0xA4FE /* 0x80 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_32[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA9B1, 0xA9B2, 0xA9B3, 0xA9B4, 0xA9B5, 0xA9B6, 0xA9B7, 0xA9B8, /* 0x00 */
- 0xA9B9, 0xA9BA, 0xA9BB, 0xA9BC, 0xA9BD, 0xA9BE, 0xA9BF, 0xA9C0, /* 0x00 */
- 0xA9C1, 0xA9C2, 0xA9C3, 0xA9C4, 0xA9C5, 0xA9C6, 0xA9C7, 0xA9C8, /* 0x10 */
- 0xA9C9, 0xA9CA, 0xA9CB, 0xA9CC, 0xA2DF, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xA8B1, 0xA8B2, 0xA8B3, 0xA8B4, 0xA8B5, 0xA8B6, 0xA8B7, 0xA8B8, /* 0x60 */
- 0xA8B9, 0xA8BA, 0xA8BB, 0xA8BC, 0xA8BD, 0xA8BE, 0xA8BF, 0xA8C0, /* 0x60 */
- 0xA8C1, 0xA8C2, 0xA8C3, 0xA8C4, 0xA8C5, 0xA8C6, 0xA8C7, 0xA8C8, /* 0x70 */
- 0xA8C9, 0xA8CA, 0xA8CB, 0xA8CC, 0, 0, 0, 0xA2DE /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_33[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA7C9, 0xA7CA, 0xA7CB, 0xA7CC, 0xA7CD, 0, 0, 0, /* 0x80 */
- 0xA7BA, 0xA7BB, 0xA7DC, 0xA7DD, 0xA7DE, 0xA7B6, 0xA7B7, 0xA7B8, /* 0x80 */
- 0xA7D4, 0xA7D5, 0xA7D6, 0xA7D7, 0xA7D8, 0xA7A1, 0xA7A2, 0xA7A3, /* 0x90 */
- 0xA7A5, 0xA7AB, 0xA7AC, 0xA7AD, 0xA7AE, 0xA7AF, 0xA7B0, 0xA7B1, /* 0x90 */
- 0xA7B2, 0xA7B3, 0xA7B4, 0xA7A7, 0xA7A8, 0xA7A9, 0xA7AA, 0xA7BD, /* 0xA0 */
- 0xA7BE, 0xA7E5, 0xA7E6, 0xA7E7, 0xA7E8, 0xA7E1, 0xA7E2, 0xA7E3, /* 0xA0 */
- 0xA7BF, 0xA7C0, 0xA7C1, 0xA7C2, 0xA7C3, 0xA7C4, 0xA7C5, 0xA7C6, /* 0xB0 */
- 0xA7C7, 0xA7C8, 0xA7CE, 0xA7CF, 0xA7D0, 0xA7D1, 0xA7D2, 0xA7D3, /* 0xB0 */
- 0xA7DA, 0xA7DB, 0xA2E3, 0xA7EC, 0xA7A6, 0xA7E0, 0xA7EF, 0xA2E1, /* 0xC0 */
- 0xA7BC, 0xA7ED, 0xA7B5, 0, 0, 0, 0, 0xA7B9, /* 0xC0 */
- 0xA7EA, 0, 0, 0xA7EB, 0, 0, 0xA7DF, 0, /* 0xD0 */
- 0xA2E4, 0, 0, 0xA7E4, 0xA7EE, 0xA7E9 /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_4E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xECE9, 0xEFCB, 0, 0xF6D2, 0, 0, 0, 0xD8B2, /* 0x00 */
- 0xEDDB, 0xDFB2, 0xDFBE, 0xF9BB, 0, 0xDCF4, 0, 0, /* 0x00 */
- 0, 0xF5E4, 0, 0, 0xF3A6, 0xDDE0, 0xE1A6, 0, /* 0x10 */
- 0xCEF8, 0xDCB0, 0, 0, 0, 0, 0xE3AA, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xF1E9, 0, 0, /* 0x20 */
- 0, 0, 0xCDFA, 0, 0, 0, 0, 0, /* 0x30 */
- 0xFCAF, 0xD3A1, 0, 0xF1AB, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0xE7D1, 0xD2AC, 0, 0xCEF9, 0, 0, /* 0x40 */
- 0, 0, 0, 0xF1FD, 0, 0xDEBF, 0xFBBA, 0xF9B9, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0xCED2, 0, /* 0x50 */
- 0xE3AB, 0xEBE0, 0, 0, 0, 0xCEFA, 0xCBF7, 0xE5A5, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xCAE1, 0, 0xD4CC, 0, 0, /* 0x60 */
- 0, 0, 0, 0xEAE1, 0, 0, 0xDCE3, 0xDFAD, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xCBEB, 0, /* 0x70 */
- 0, 0, 0xD5AF, 0, 0, 0, 0xD6F5, 0, /* 0x80 */
- 0xE5F8, 0, 0, 0xDEC0, 0xECA3, 0, 0xE9CD, 0, /* 0x80 */
- 0xEAA7, 0xE9F6, 0xFBBB, 0, 0xE7E9, 0xEFCC, 0, 0, /* 0x90 */
- 0xD0E6, 0, 0, 0xDEC1, 0, 0, 0xE4AC, 0, /* 0x90 */
- 0, 0xD8CC, 0xF9F1, 0, 0xCEDF, 0xFAA4, 0xE6B2, 0, /* 0xA0 */
- 0xFAFB, 0, 0, 0xFABD, 0xCCC8, 0xEFCD, 0xD5D5, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xD3A2, 0, /* 0xB0 */
- 0, 0, 0xECD1, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xE4A7, 0xECD2, 0, 0, 0xF6B1, 0, 0, 0xCEFB, /* 0xC0 */
- 0, 0, 0xD0D1, 0xCBBF, 0, 0xEDA4, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xEDA8, 0xDEC2, 0xF6E2, 0xEDDC, /* 0xD0 */
- 0xDCF5, 0xE0B9, 0, 0, 0, 0xD4CE, 0, 0xF4B5, /* 0xD0 */
- 0, 0, 0, 0xD3DB, 0xD6B5, 0xECA4, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xE4E6, 0, 0xF1EA, 0, 0, 0, 0xCBEC, 0xCBC0, /* 0xF0 */
- 0, 0, 0, 0xECF2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_4F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD0EA, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0xF9F2, 0xECA5, 0xD0DF, 0, 0xE7EA, 0xD0EB, 0xDCD1, /* 0x00 */
- 0xDBE9, 0xFDCC, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0xDBD7, /* 0x20 */
- 0, 0, 0, 0, 0xDAE1, 0, 0xD6B6, 0, /* 0x30 */
- 0xE3DF, 0, 0xDEC3, 0, 0xDEC4, 0xCAA1, 0, 0, /* 0x30 */
- 0, 0, 0, 0xEEEC, 0, 0, 0xD3A3, 0xEEB7, /* 0x40 */
- 0xF8CF, 0, 0, 0, 0, 0xEAC8, 0xEEB8, 0xF1AC, /* 0x40 */
- 0xF1A5, 0xE9CE, 0, 0, 0, 0xF9BC, 0, 0, /* 0x50 */
- 0, 0xE5F9, 0xECEA, 0xDDD6, 0xEDC2, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xF8A5, 0, 0, 0, 0, 0, 0xE5BA, /* 0x60 */
- 0xDBD8, 0, 0, 0xCAA2, 0, 0, 0xD1CD, 0, /* 0x70 */
- 0, 0, 0xEEED, 0, 0, 0, 0xECEB, 0xDEC5, /* 0x70 */
- 0, 0xE3E0, 0, 0xCAC9, 0xF2E9, 0, 0xD5CE, 0, /* 0x80 */
- 0xF6B6, 0, 0xCEC2, 0xD6C7, 0, 0xE3B4, 0, 0xF1AD, /* 0x80 */
- 0, 0xEAE2, 0, 0, 0, 0, 0xD7C2, 0, /* 0x90 */
- 0xF3A7, 0, 0, 0xCDEA, 0, 0xEBEE, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xD9B2, 0xFDA5, /* 0xA0 */
- 0, 0, 0, 0, 0, 0xF6D5, 0xD5E2, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xF8B5, /* 0xB0 */
- 0, 0, 0xCCF5, 0xF5B5, 0xE4AD, 0, 0, 0, /* 0xC0 */
- 0, 0xE7EB, 0xF1D5, 0, 0, 0, 0xF0BB, 0, /* 0xC0 */
- 0, 0xE9B5, 0, 0xCCC9, 0xFAD5, 0, 0, 0xE1D4, /* 0xD0 */
- 0, 0, 0xD7D6, 0, 0, 0xDCC1, 0, 0xDEC6, /* 0xD0 */
- 0xFAEF, 0xE3E1, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xE1F3, 0xDCF6, /* 0xE0 */
- 0, 0xCEFC, 0, 0xDBC4, 0, 0xF8F1, 0, 0, /* 0xF0 */
- 0xDCE4, 0, 0xE5EF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_50[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDCB1, 0, 0, 0, 0xD5D6, 0, /* 0x00 */
- 0, 0xF3DA, 0, 0xCBC1, 0, 0xDBC3, 0, 0, /* 0x00 */
- 0, 0xD9FA, 0xD3EE, 0, 0, 0, 0xFAB8, 0, /* 0x10 */
- 0, 0xFDA6, 0xEBEF, 0, 0xF4A6, 0, 0xCCCA, 0xF3A8, /* 0x10 */
- 0, 0xF3DB, 0, 0xDBA7, 0xF6B7, 0, 0xCFE6, 0xF0F2, /* 0x20 */
- 0xCBDA, 0, 0xE7D2, 0xD7C3, 0xF6F0, 0xE8DE, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xE5A6, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xE5E7, 0, 0, 0, 0xCAA3, /* 0x40 */
- 0xCCA7, 0xEAC9, 0, 0, 0, 0, 0, 0xF8B6, /* 0x40 */
- 0, 0, 0, 0, 0, 0xFAA5, 0, 0, /* 0x50 */
- 0, 0, 0xF1AE, 0, 0xEFCE, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xCBED, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xF6B0, 0xEFCF, 0xE9CF, 0, /* 0x70 */
- 0xF7DE, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xCED3, 0, 0, 0, 0, 0xDCF7, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xDBA8, 0, 0, /* 0x80 */
- 0, 0xCBF8, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xDFA1, 0xDDE1, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xF5CA, 0xE9B6, 0, 0, /* 0xA0 */
- 0, 0, 0xE7EC, 0xEEEE, 0, 0xF3F0, 0, 0xDFBF, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xCCCB, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xD0C1, 0, 0, /* 0xC0 */
- 0, 0xF4D2, 0xE0BA, 0, 0, 0, 0, 0xDFC0, /* 0xC0 */
- 0, 0xCEE0, 0, 0, 0, 0xDCD2, 0xFDEA, 0, /* 0xD0 */
- 0, 0, 0xD6F6, 0, 0, 0, 0xEACA, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xE8E9, 0, 0xE3AC, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xF3D0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xCAA4, 0, 0xDBF8, 0, 0, 0, 0xDEC7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_51[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEBF0, 0xF1D6, 0, 0, 0xE5E2, 0, 0xCCCC, 0, /* 0x00 */
- 0, 0xCBFB, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xEAE3, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xDFC1, /* 0x10 */
- 0, 0xD6ED, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xE9D0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xEEB9, 0, 0, 0, 0, 0xD5E3, /* 0x30 */
- 0, 0, 0xD1D3, 0, 0xE5F0, 0, 0, 0, /* 0x30 */
- 0xE8B4, 0xEBC3, 0, 0xEAAA, 0xFAFC, 0xF5F6, 0xF0BC, 0xFDD4, /* 0x40 */
- 0xE0BB, 0xCEC3, 0, 0xD0BA, 0xF7BA, 0xD8F3, 0xF7CD, 0, /* 0x40 */
- 0, 0, 0xE4AE, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0xD4DF, 0, 0, 0, /* 0x50 */
- 0, 0, 0xD0E7, 0, 0, 0xECFD, 0, 0xD2AE, /* 0x60 */
- 0xEEEF, 0xD5D7, 0xEAE4, 0xF8A2, 0xCDEB, 0xD7BF, 0xFBB1, 0, /* 0x60 */
- 0, 0xCDEC, 0, 0, 0, 0xDCB2, 0xD0EC, 0xCEFD, /* 0x70 */
- 0xEEF0, 0, 0, 0, 0xCCC2, 0, 0, 0, /* 0x70 */
- 0xD0ED, 0, 0, 0, 0, 0, 0xE5F7, 0, /* 0x80 */
- 0, 0, 0xF3FC, 0, 0, 0xEEA2, 0, 0, /* 0x80 */
- 0, 0, 0xD9B3, 0, 0, 0xD8F4, 0, 0xE9B7, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xCEAE, 0, 0, 0, 0, 0xD9A2, 0, 0, /* 0xA0 */
- 0, 0, 0xD8F1, 0, 0xD4CF, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xE5A7, 0xD5D2, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xD6A9, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xF4A2, 0, 0xF1D7, 0, /* 0xC0 */
- 0, 0xD5D8, 0, 0xF0BD, 0xD7D0, 0xD4D0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xD7CF, 0xEBEA, 0xFDEB, 0, /* 0xD0 */
- 0, 0xDBED, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xFCC5, 0xCBC2, 0, 0, 0, 0, 0xFDD5, 0, /* 0xF0 */
- 0xF4C8, 0xE8EA, 0xF5F3, 0, 0, 0xF9DE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_52[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD3EF, 0, 0, 0xECD3, 0, 0, 0xDDC2, 0xEFB7, /* 0x00 */
- 0xE7D4, 0, 0xCACA, 0, 0, 0, 0xD9FB, 0, /* 0x00 */
- 0, 0xFAFD, 0, 0, 0, 0, 0, 0xD6AA, /* 0x10 */
- 0, 0, 0, 0, 0, 0xF4F8, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0xF7F7, 0xDCAC, 0, 0, /* 0x20 */
- 0, 0xD7D7, 0xDFA2, 0, 0, 0, 0xCEBE, 0, /* 0x20 */
- 0xD3F0, 0, 0, 0, 0, 0, 0xF0A4, 0xE1EC, /* 0x30 */
- 0xCFE7, 0xF3CB, 0xEDA9, 0xCABE, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xF4EF, 0, 0, 0, 0xF6CE, /* 0x40 */
- 0, 0, 0xDEFB, 0xD0BB, 0xD5B7, 0xEEF1, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xF4A8, 0, 0xDCF8, 0, /* 0x50 */
- 0, 0, 0, 0xCBA7, 0, 0xDACE, 0, 0, /* 0x50 */
- 0, 0xE0E6, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xEDA5, 0xEEF2, 0, 0, 0, 0, 0xDCF9, /* 0x60 */
- 0, 0, 0xF9DC, 0, 0, 0xF3DC, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xF8F2, 0, 0xF4F9, /* 0x70 */
- 0, 0, 0, 0xFCF1, 0, 0, 0, 0xD0BC, /* 0x80 */
- 0xDBF9, 0xD7B1, 0, 0, 0, 0xCBFC, 0, 0, /* 0x80 */
- 0, 0xF0A5, 0xCBFD, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xD5F4, 0, 0, 0, 0xCDED, /* 0x90 */
- 0xCAA5, 0, 0, 0xD6AB, 0xD0C2, 0, 0, 0, /* 0xA0 */
- 0, 0xF0BE, 0xD2BD, 0xCCA4, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xFAB6, 0, /* 0xB0 */
- 0, 0xCCCD, 0, 0xDAFA, 0, 0xF6CF, 0, 0xE9B8, /* 0xC0 */
- 0, 0xD8F5, 0, 0, 0, 0xCCCE, 0, 0, /* 0xC0 */
- 0, 0, 0xD7CD, 0, 0, 0xD4D1, 0xE9ED, 0, /* 0xD0 */
- 0xCAEB, 0xD9E2, 0, 0xFDB2, 0, 0xE3AD, 0xD6CC, 0xD9B4, /* 0xD0 */
- 0, 0, 0xE1A7, 0xEED3, 0xD0C3, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xFDB3, 0, 0xD5E4, 0, 0, /* 0xF0 */
- 0xCFE8, 0, 0xEDC3, 0xD0B2, 0, 0, 0xCEFE, 0xDAA8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_53[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF8D0, 0, 0, /* 0x00 */
- 0xFDD6, 0, 0, 0, 0, 0xF8D1, 0, 0xF8D2, /* 0x00 */
- 0xDCD3, 0, 0, 0, 0, 0xDDE2, 0xFBF9, 0xDDC1, /* 0x10 */
- 0, 0xE3B5, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xEDDD, 0xCEC4, 0, 0xCBA1, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xDDE3, 0, 0, 0, 0, 0xFCDD, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xF9AF, 0, 0, 0, 0, 0, 0xD2FB, /* 0x30 */
- 0xCFA1, 0xE4A8, 0, 0xF4B6, 0xECFE, 0, 0, 0xE3AE, /* 0x40 */
- 0xE7ED, 0xFDC1, 0xDAE2, 0, 0, 0xD8B3, 0, 0, /* 0x40 */
- 0, 0xDDE4, 0xF0EF, 0xF6F1, 0xFAF0, 0, 0, 0xD1F5, /* 0x50 */
- 0, 0, 0xDACF, 0, 0xDCD4, 0, 0xDCA6, 0, /* 0x50 */
- 0xEFBF, 0, 0, 0, 0, 0, 0xCECF, 0, /* 0x60 */
- 0xE0D9, 0, 0, 0, 0, 0, 0, 0xD9D6, /* 0x60 */
- 0xECD4, 0xEACB, 0, 0, 0xCABF, 0xD5B0, 0, 0xCFE9, /* 0x70 */
- 0, 0, 0, 0, 0, 0xF1ED, 0, 0xCCCF, /* 0x70 */
- 0, 0, 0, 0, 0xE4F8, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xE4ED, 0, 0, 0, 0, /* 0x90 */
- 0xD7D8, 0, 0xFDA7, 0, 0, 0, 0, 0xEAAB, /* 0x90 */
- 0xF6B2, 0, 0, 0, 0, 0xCFF0, 0xF9BD, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0xE6F4, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xCBDB, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xF3D1, 0, 0, 0, 0, /* 0xC0 */
- 0xE9D1, 0xF3A9, 0xD0E0, 0xE9D2, 0, 0xDAE3, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xE2D2, 0, 0xF6A2, 0xE1F4, /* 0xD0 */
- 0, 0, 0, 0xDAE4, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xE7D5, 0xF5BF, 0xCFA2, 0xCDAF, 0xCFA3, 0, 0, /* 0xE0 */
- 0, 0xCDB0, 0xF1FE, 0xD0A3, 0xE1AF, 0xF8A3, 0, 0xCAA6, /* 0xE0 */
- 0xF7BB, 0xF2EA, 0xDEC8, 0xE9D3, 0, 0, 0, 0, /* 0xF0 */
- 0xDEC9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_54[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFDDE, 0xCAC0, 0, 0, 0, /* 0x00 */
- 0xF9EA, 0xD1CE, 0xEED4, 0, 0xD4D2, 0xD9A3, 0xFDA8, 0xD7D9, /* 0x00 */
- 0xF7CE, 0xFABE, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xCFD6, 0, 0xD7F0, 0, 0xEBE1, /* 0x10 */
- 0xF8C5, 0, 0, 0, 0, 0, 0xDCFA, 0, /* 0x20 */
- 0, 0xDDC3, 0, 0xF9DF, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xE7EF, 0, 0, 0, 0, /* 0x30 */
- 0xFDE5, 0xF6A3, 0, 0xD9FC, 0xFDA9, 0, 0xE7EE, 0, /* 0x30 */
- 0, 0, 0xD5E5, 0, 0, 0, 0, 0, /* 0x40 */
- 0xEFD0, 0, 0xCDB1, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xF7A2, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0xF1B2, 0, 0xF1B1, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xCDB2, 0, 0xDAAB, 0, 0xCAA7, 0, 0, /* 0x70 */
- 0, 0, 0, 0xE3E2, 0xFBBC, 0xD9A4, 0, 0, /* 0x70 */
- 0xEEBA, 0, 0, 0, 0, 0, 0xF8D3, 0, /* 0x80 */
- 0, 0, 0, 0, 0xFBFA, 0, 0xCFA4, 0, /* 0x80 */
- 0xDCFB, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xF6E3, 0, 0, 0, /* 0xA0 */
- 0xEDAA, 0, 0, 0xF2A1, 0xCEE1, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xFAA6, 0, 0, 0, 0, /* 0xB0 */
- 0xF9E0, 0, 0, 0, 0, 0xECD6, 0, 0, /* 0xB0 */
- 0xE4EE, 0xF9A1, 0, 0, 0xFBEF, 0, 0, 0, /* 0xC0 */
- 0xF9EB, 0xEEA3, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xEAAC, 0, 0, 0, 0xCAA8, 0, 0, /* 0xE0 */
- 0xF4FA, 0, 0, 0, 0, 0xCDD6, 0xFCF6, 0, /* 0xE0 */
- 0, 0, 0xF4C9, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0xF8D4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_55[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF8A6, 0, 0xDECA, 0xF2C6, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xD7DA, 0, /* 0x00 */
- 0xD3D0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0xD8C5, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0xEAE6, /* 0x20 */
- 0, 0xF3DD, 0, 0, 0, 0xE4DA, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xF6E4, 0, /* 0x30 */
- 0, 0, 0, 0, 0xF6F2, 0, 0xDFC2, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0xD9FD, /* 0x40 */
- 0, 0, 0, 0xCCF6, 0, 0, 0xD3BA, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xE4AF, 0, /* 0x50 */
- 0, 0, 0, 0xF9E1, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xF0A6, 0, 0, 0, /* 0x70 */
- 0xCBD3, 0, 0, 0, 0xE0BC, 0, 0xF4CA, 0xD4FA, /* 0x80 */
- 0, 0xFDAA, 0xF9E2, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xF4B7, 0xFDC2, 0xFCB0, 0, 0xFDEC, 0xCAE2, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xFDBD, /* 0xA0 */
- 0, 0xEAE7, 0xDFC3, 0xD1D2, 0xCEE2, 0, 0xD3A4, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xFDAB, 0, 0xDFE0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xF2C7, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xE7F0, 0, 0xD0EE, 0, 0, 0xF3AA, /* 0xD0 */
- 0, 0, 0, 0xDECB, 0xF6B8, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0xE1F5, 0xF1B3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_56[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF7A3, 0, /* 0x00 */
- 0, 0xCAA9, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0xCFA5, 0, 0, 0xDFC4, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0xE1B0, /* 0x20 */
- 0, 0, 0xF0BF, 0, 0xF6A4, 0, 0xE3B6, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xFAC6, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0xD0EF, 0, 0, 0xFDED, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xDDC4, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xFCF7, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xE6BF, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xDEAD, 0, 0xFABF, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xE5F1, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xEDC4, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xD2A5, 0, 0, 0xFDEE, 0, 0, /* 0xC0 */
- 0, 0xF5B6, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xE1F6, 0xDECC, 0, 0, 0xFCDE, 0, /* 0xD0 */
- 0xECD7, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xCDDD, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xD6B7, 0xCDB3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_57[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF8D5, 0xE5D8, 0, 0, 0, /* 0x00 */
- 0xCFEA, 0, 0, 0xCFD0, 0, 0xEACC, 0, 0, /* 0x00 */
- 0, 0, 0xEAAE, 0xEAAD, 0, 0, 0xD3F1, 0, /* 0x10 */
- 0xD3A5, 0, 0, 0, 0, 0, 0, 0xF7CF, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xEEA4, 0, 0, 0, 0, 0xD0A4, 0, 0, /* 0x20 */
- 0xF2A2, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xD0F0, 0, 0, 0, 0, /* 0x30 */
- 0xF2A3, 0, 0xF7F8, 0, 0, 0, 0, 0xD0B3, /* 0x40 */
- 0, 0, 0xDBA9, 0, 0, 0xD3BB, 0xCAEC, 0, /* 0x40 */
- 0xF1A6, 0xCBD5, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xF7E7, 0, 0, 0xCDDE, 0, 0xF7A4, 0, /* 0x60 */
- 0, 0, 0xF8C0, 0, 0, 0, 0xD3DD, 0, /* 0x60 */
- 0xCCD0, 0, 0, 0, 0, 0xCFA6, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xF6F3, 0, 0, 0, /* 0x70 */
- 0, 0, 0xE1F7, 0, 0, 0, 0, 0, /* 0x80 */
- 0xD3DC, 0, 0, 0xFAFE, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xFAA7, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xEBD9, 0, 0xCFA7, 0xEAAF, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xE4EF, 0, 0, 0, 0xE9B9, /* 0xC0 */
- 0xF1D8, 0, 0, 0xD8D8, 0, 0, 0xE0F2, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE6B4, /* 0xD0 */
- 0xDCFC, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xF3F1, 0, 0, 0, 0xE3D0, 0, 0, 0xF2FB, /* 0xF0 */
- 0, 0xDBC6, 0xD0F1, 0, 0xD0F2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_58[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCFDC, 0, 0xD3D1, 0, 0, 0xCCB1, 0xF7D8, 0, /* 0x00 */
- 0xCBA8, 0xEBBC, 0xE4BE, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xF4DC, 0, /* 0x10 */
- 0, 0xDCC2, 0, 0, 0xF0A7, 0, 0, 0xE6C0, /* 0x20 */
- 0, 0, 0xCAED, 0, 0, 0, 0, 0xE8EB, /* 0x20 */
- 0xE5E8, 0xDCC3, 0, 0, 0xEDDE, 0xD3F2, 0, 0, /* 0x30 */
- 0, 0, 0xCCF7, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xCED4, 0xE7AB, 0, 0, 0, 0xCBC3, /* 0x40 */
- 0, 0xE1B1, 0, 0, 0xF7B2, 0, 0, 0xD3F3, /* 0x50 */
- 0xD3D2, 0, 0xF5C0, 0, 0, 0, 0xDFDD, 0, /* 0x50 */
- 0, 0xEEF3, 0xE7F1, 0, 0xFDB4, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xF2C8, 0, 0, /* 0x70 */
- 0, 0xF3D2, 0, 0, 0xEEF4, 0, 0xE2D3, 0, /* 0x70 */
- 0, 0, 0, 0xCCD1, 0, 0xDFEA, 0, 0, /* 0x80 */
- 0, 0xE9BA, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xD9D7, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xF5CD, 0, 0xF1F2, 0xFAC7, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xD9F8, 0xD4C2, 0, 0, 0, 0, 0xF6E5, 0, /* 0xA0 */
- 0, 0, 0, 0xDDC5, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xE7F2, 0xEDDF, 0, 0, 0xCACB, 0, /* 0xB0 */
- 0, 0xDBFA, 0, 0, 0, 0xE8B5, 0, 0xD3A6, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xFDB5, 0, /* 0xC0 */
- 0, 0xF9C9, 0, 0xE4E2, 0, 0xFBBD, 0, 0, /* 0xD0 */
- 0xD7A4, 0xCEC5, 0, 0, 0, 0, 0xCED5, 0xD6E6, /* 0xD0 */
- 0, 0, 0, 0, 0xE5BD, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xDECD, 0xECF3, 0, 0, 0xEDE0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xECEC, 0xFBBE, 0xDFEB, 0, 0xE1F8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_59[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF9BE, /* 0x00 */
- 0, 0, 0, 0, 0xD0F3, 0xE0AA, 0xE8E2, 0, /* 0x10 */
- 0, 0xE2D4, 0xD2FD, 0, 0xE5A8, 0, 0, 0, /* 0x10 */
- 0, 0, 0xD9D3, 0, 0, 0, 0, 0xD3DE, /* 0x20 */
- 0, 0xF4B8, 0xF7BC, 0xDCFD, 0, 0xE8EC, 0xE4E7, 0, /* 0x20 */
- 0, 0xE3F7, 0, 0, 0, 0, 0, 0xECA8, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xFAF1, 0, /* 0x30 */
- 0, 0, 0, 0, 0xE5F2, 0, 0, 0xD0F4, /* 0x40 */
- 0xD2AF, 0xDCE5, 0, 0, 0, 0, 0xD0A5, 0xF1B4, /* 0x40 */
- 0xFCB1, 0xCCF8, 0, 0, 0xDDC6, 0xFAD1, 0, 0xF7DF, /* 0x50 */
- 0, 0, 0xFAA8, 0, 0, 0, 0, 0, /* 0x50 */
- 0xEEF5, 0, 0xDECE, 0, 0, 0, 0, 0xE7F3, /* 0x60 */
- 0, 0, 0xF7AC, 0xEBC4, 0xEDE1, 0xE0AB, 0xDDC7, 0, /* 0x60 */
- 0, 0, 0, 0xD2B3, 0xD2BF, 0, 0, 0, /* 0x70 */
- 0xCACC, 0, 0, 0, 0, 0xFBBF, 0, 0, /* 0x70 */
- 0, 0, 0xE5FD, 0xDDE5, 0xD8CD, 0, 0, 0, /* 0x80 */
- 0, 0, 0xECF4, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xD0F5, 0, 0, 0xE8ED, 0xD0D2, /* 0x90 */
- 0, 0xD9D8, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xF6E6, 0, 0, /* 0xA0 */
- 0xDBAA, 0, 0, 0, 0xF7E0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xD8D9, 0, 0xF4A3, 0, 0, 0xF4DD, 0, /* 0xB0 */
- 0, 0, 0, 0xEFD1, 0, 0, 0xD9B5, 0, /* 0xC0 */
- 0, 0xEDAB, 0, 0xE3B7, 0, 0, 0, 0, /* 0xC0 */
- 0xEEBB, 0xCDB4, 0, 0xE0F3, 0xEACD, 0, 0, 0, /* 0xD0 */
- 0, 0xECF5, 0xE8EE, 0, 0xCBA9, 0xF1AF, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xCACD, 0, /* 0xE0 */
- 0xECA9, 0, 0xF2EB, 0, 0xFDEF, 0, 0xF9F3, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0xE6C1, 0, 0, 0xECD8, 0, 0, 0, 0xEDAC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_5A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEACE, 0, 0xE8DF, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0xDECF, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xD2A6, 0, 0, 0xE7F4, 0xD1D6, 0, 0, 0xE6C2, /* 0x10 */
- 0xE3E3, 0, 0, 0, 0, 0xE4B0, 0, 0, /* 0x20 */
- 0, 0xD8B4, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0xF6A5, 0, /* 0x30 */
- 0, 0, 0, 0, 0xF3DE, 0, 0, 0, /* 0x30 */
- 0, 0xD7A5, 0, 0, 0, 0, 0xF7E8, 0, /* 0x40 */
- 0, 0xE8C6, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0xFBE6, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0xDDE6, 0, 0, 0, 0xDCFE, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xD8DA, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xDAAC, 0xEAB0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xE3B8, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xCAAA, 0xE1F9, 0, 0xEAB1, 0, 0, 0, /* 0xC0 */
- 0, 0xF2EC, 0, 0, 0xFAEE, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xEED5, 0, 0, 0, 0, 0xF9F4, 0, /* 0xE0 */
- 0, 0xD2EC /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_5B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFBFB, 0, 0, /* 0x00 */
- 0, 0xFDF0, 0, 0xE0BD, 0xCEE3, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xF8C6, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xDEAE, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xDFC5, 0, 0, 0xE5BE, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xEDAD, 0xFAEA, 0, 0, 0xCDEE, 0xEDA6, 0, 0xEDAE, /* 0x50 */
- 0xF0ED, 0, 0xDDA1, 0, 0xEDAF, 0xFCF8, 0, 0xD8EB, /* 0x50 */
- 0, 0, 0, 0xCCF9, 0xCDB5, 0, 0, 0, /* 0x60 */
- 0, 0xFAA9, 0, 0xE1DD, 0, 0, 0, 0, /* 0x60 */
- 0xE2D5, 0xEDCF, 0, 0, 0, 0xDDA2, 0, 0, /* 0x70 */
- 0xF9CA, 0, 0xEAE8, 0, 0xE5ED, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xD3EB, 0, 0xE9D4, /* 0x80 */
- 0xE1FA, 0xE4CC, 0, 0xE1E4, 0xE8C7, 0, 0, 0xCEDB, /* 0x80 */
- 0, 0, 0, 0xDCD5, 0, 0xF7B5, 0xFCF3, 0xF0F3, /* 0x90 */
- 0xCEAF, 0xF1B5, 0xEFD2, 0xE8C8, 0xEBF1, 0, 0, 0, /* 0x90 */
- 0, 0, 0xCBD4, 0xE0BE, 0xE3F8, 0xEAE9, 0xFCB2, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xE0F4, 0, 0xCFE0, 0, /* 0xA0 */
- 0xEEA5, 0, 0, 0xFAAA, 0xE6C3, 0xE1B2, 0xCAAB, 0, /* 0xB0 */
- 0xE3E4, 0xE9BB, 0, 0, 0, 0, 0, 0xE2D6, /* 0xB0 */
- 0xF3F2, 0, 0xEED6, 0xEAB2, 0xD0F6, 0xECD9, 0xDACB, 0xCFA8, /* 0xC0 */
- 0, 0, 0, 0, 0xDDA3, 0, 0, 0, /* 0xC0 */
- 0xD8DB, 0, 0xF9CE, 0xE9D5, 0xE3D1, 0, 0, 0xD2BC, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xD8AC, 0xF3CC, /* 0xD0 */
- 0, 0xCDFB, 0xF6D6, 0, 0xE7F5, 0xE8EF, 0xE3F9, 0xD2BB, /* 0xE0 */
- 0xF3F3, 0xE3FB, 0, 0xDED0, 0xCEB0, 0, 0xD6F7, 0xF1D9, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xF5C1, 0xDCC4, 0, /* 0xF0 */
- 0xF5BB, 0, 0xDED1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_5C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDCE6, 0, 0, 0xDED2, 0, 0, 0xEDE2, /* 0x00 */
- 0xEEF6, 0xEACF, 0xF0EE, 0xE3FC, 0, 0xD3DF, 0xD3F4, 0xE1B3, /* 0x00 */
- 0, 0xE1B4, 0, 0, 0, 0, 0xF4D3, 0, /* 0x10 */
- 0, 0xDFC6, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0xE9D6, 0, 0, 0, /* 0x20 */
- 0xDBAB, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xF6A6, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xE3B9, 0xEBC5, 0xF4A9, 0xCDB6, 0xD2F9, 0, 0xDAAD, 0xD2E3, /* 0x30 */
- 0xCFD1, 0, 0, 0, 0, 0xCBDC, 0xCCFA, 0, /* 0x40 */
- 0xCFDD, 0, 0, 0xE8A9, 0, 0xE3BB, 0xE3BA, 0, /* 0x40 */
- 0, 0xE0DA, 0, 0, 0, 0xEEF7, 0, 0, /* 0x50 */
- 0, 0, 0, 0xDCB3, 0, 0, 0, 0, /* 0x50 */
- 0xD3F5, 0, 0xD7A6, 0, 0xF6B5, 0xD7DB, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xE1D5, 0, 0, 0xD4EA, /* 0x60 */
- 0, 0xDFA3, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xFDDF, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xD0F7, 0xEDD4, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xCBAA, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xE4DB, 0, 0xE1FB, 0xCBA2, 0, 0, 0, /* 0xA0 */
- 0, 0xD3E0, 0, 0xE4BF, 0, 0xFBC0, 0, 0xDABE, /* 0xB0 */
- 0xE4CD, 0, 0xD6B9, 0, 0, 0, 0xEFC0, 0, /* 0xB0 */
- 0xE1FC, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xF6B9, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xDFC7, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xE4B1, 0, 0, 0, 0, 0, 0, 0xDCE7, /* 0xE0 */
- 0xDCE8, 0, 0, 0, 0xFAD6, 0, 0xD3F6, 0, /* 0xF0 */
- 0, 0, 0, 0xF1DA, 0, 0xFAF2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_5D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE2FD, /* 0x00 */
- 0, 0, 0, 0, 0, 0xD5CF, 0xD0F8, 0, /* 0x00 */
- 0, 0xCDDF, 0, 0, 0xF5CB, 0, 0xE4F0, 0xCBAB, /* 0x10 */
- 0, 0xD7C4, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xE2FE, /* 0x20 */
- 0, 0xDDDA, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xDAAE, 0xCAEE, 0, 0, 0, /* 0x40 */
- 0xD5B9, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xE3A1, 0, 0, 0xE8E3, 0, 0, 0xF3AB, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xCFA9, /* 0x80 */
- 0, 0, 0, 0xD3F7, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xD4F1, 0, 0, /* 0x90 */
- 0xCEE4, 0, 0xE8F2, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xE5F5, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xE7AE, 0, 0xD6BA, 0, 0xDFEC, 0xE4C0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xE8E4, 0, 0, /* 0xC0 */
- 0, 0, 0xD8B5, 0, 0, 0, 0xE4DC, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xF4B9, 0xF1B6, 0, /* 0xD0 */
- 0, 0xE2DE, 0xE1B5, 0, 0, 0xCDEF, 0xF1A7, 0xCEE5, /* 0xE0 */
- 0xCBDD, 0, 0, 0xD9E3, 0, 0, 0xF3AC, 0, /* 0xE0 */
- 0, 0xD0F9, 0xECAB, 0xDED3, 0xF7E9, 0, 0, 0xF9F5, /* 0xF0 */
- 0, 0, 0, 0, 0, 0xE1DE, 0xCBEE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_5E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE3BC, 0xF8D6, 0, 0, 0xDBEE, 0, /* 0x00 */
- 0, 0, 0, 0, 0xFDF1, 0, 0, 0, /* 0x00 */
- 0, 0xF7B6, 0, 0, 0, 0, 0xF4DE, 0, /* 0x10 */
- 0, 0xF2ED, 0, 0xDBD9, 0, 0xF0A8, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xE1FD, 0, 0, /* 0x20 */
- 0, 0, 0, 0xDED4, 0, 0xE0AC, 0, 0, /* 0x20 */
- 0, 0, 0, 0xEDE3, 0, 0, 0xD3E1, 0, /* 0x30 */
- 0xDFC8, 0, 0, 0, 0, 0xD9B6, 0, 0xFDAC, /* 0x30 */
- 0xEFD3, 0, 0, 0, 0xE4C1, 0xF8EB, 0, 0xDBAC, /* 0x40 */
- 0, 0, 0, 0, 0xFCC6, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xD8AD, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xF6BA, /* 0x50 */
- 0, 0xDBDF, 0xD3D3, 0xF8C7, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xCACE, 0xF8C1, 0xD2B4, 0, 0, 0xDCB4, /* 0x70 */
- 0xFAB9, 0xCACF, 0, 0xFCB3, 0xEAEA, 0xEAEB, 0xD0FA, 0, /* 0x70 */
- 0, 0, 0, 0, 0xEDE4, 0, 0, 0xDDE7, /* 0x80 */
- 0, 0, 0xDFC9, 0, 0, 0, 0, 0xDFED, /* 0x80 */
- 0, 0, 0, 0, 0, 0xEEBC, 0, 0xEFC1, /* 0x90 */
- 0, 0, 0xCCD2, 0, 0xDDA4, 0, 0, 0, /* 0x90 */
- 0xDFCA, 0, 0, 0, 0, 0, 0xD3F8, 0xF1A8, /* 0xA0 */
- 0, 0, 0, 0xCDB7, 0, 0xEFD4, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0xE4DD, 0xDFEE, 0xCBAC, /* 0xB0 */
- 0xE9BC, 0, 0, 0, 0, 0, 0xEAEC, 0, /* 0xB0 */
- 0, 0, 0xDFCB, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xF9BF, 0xD6AF, 0xD5C6, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xCFAA, 0, 0, 0xCEA9, 0, 0, 0xD6F8, 0, /* 0xD0 */
- 0, 0, 0xF1B7, 0xEEF8, 0, 0, 0, 0xD9D9, /* 0xD0 */
- 0xF3DF, 0, 0xF8C8, 0xCEC6, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xD5E6, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xF4E6, 0, 0, 0xE6C5, 0xEFD5, /* 0xF0 */
- 0, 0, 0xCBEF, 0xFCDF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_5F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDCA7, 0, 0, 0xD6E7, 0, 0, 0, /* 0x00 */
- 0, 0, 0xF8C9, 0, 0, 0, 0, 0xE3D2, /* 0x00 */
- 0, 0xE3BD, 0, 0xCFE1, 0xF0C0, 0xECDA, 0, 0xDDD7, /* 0x10 */
- 0xFBF0, 0, 0, 0xECAC, 0, 0, 0, 0xF0A9, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xFAD7, 0xFBC1, /* 0x20 */
- 0, 0xD2C0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xE5B0, 0, 0, 0, 0xEDE5, 0, 0, /* 0x30 */
- 0, 0, 0xCBAD, 0, 0xF9B0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xF7A5, 0, 0xCBAE, 0, 0xDAAF, 0, 0xD8B6, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0xD3A7, 0xFBB2, /* 0x50 */
- 0, 0xFDC4, 0, 0xECAD, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0xFBA1, 0, 0, 0, 0xE5E9, 0xE9EE, /* 0x60 */
- 0, 0xF3F4, 0xF8F3, 0xF0C1, 0xDEAF, 0xF8B0, 0, 0, /* 0x60 */
- 0xF3E0, 0xE7AF, 0, 0, 0, 0, 0, 0xDBAD, /* 0x70 */
- 0, 0xE6B5, 0, 0, 0xF9A8, 0, 0, 0xDDD8, /* 0x70 */
- 0xE8D9, 0xEFD6, 0, 0, 0, 0xD3E2, 0, 0xE2DF, /* 0x80 */
- 0, 0, 0xFCE0, 0xD7C8, 0xFDAD, 0, 0, 0, /* 0x80 */
- 0xDFEF, 0xCCD3, 0xD3F9, 0, 0, 0, 0, 0xD4F0, /* 0x90 */
- 0xDBC7, 0xDED5, 0, 0, 0, 0, 0xF0F4, 0, /* 0x90 */
- 0xD5D0, 0xE5D9, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xFCC7, 0xDCD6, 0xE2E0, 0, 0, 0, 0xDAB0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0xF3A3, 0, 0xD3EC, /* 0xB0 */
- 0, 0xF4CB, 0, 0, 0, 0xFDC5, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xE3FD, 0, 0xF9B1, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xD0FB, 0xECDB, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xF5BC, 0xF2A4, /* 0xD0 */
- 0xD8CE, 0xD8CF, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xF5F7, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xF6E1, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xD2B7, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0xFBEC, 0, 0xDDC8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_60[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE4E8, /* 0x00 */
- 0, 0, 0xD2C1, 0, 0, 0, 0xF8D7, 0, /* 0x10 */
- 0, 0, 0, 0, 0xD6BB, 0xDED6, 0, 0, /* 0x10 */
- 0xF7BD, 0xECAE, 0, 0, 0, 0xD0E1, 0, 0xE0F5, /* 0x20 */
- 0xEAB3, 0, 0xCED6, 0, 0, 0, 0, 0xCCA5, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xECF6, 0xE2E1, 0xE3BE, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xFCC8, 0, 0, /* 0x40 */
- 0xCDF0, 0, 0xF9F6, 0, 0, 0xDFF0, 0, 0, /* 0x50 */
- 0, 0xE5BF, 0, 0, 0, 0xCEBF, 0, 0, /* 0x50 */
- 0, 0, 0xFCE1, 0xEDB0, 0xFDD1, 0xF6BB, 0, 0, /* 0x60 */
- 0xF9CF, 0xEBDA, 0xCAC1, 0, 0xD2B8, 0xCDF1, 0, 0xE3D3, /* 0x60 */
- 0xFDE6, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xE6ED, 0, 0, /* 0x80 */
- 0, 0xE3FA, 0, 0, 0xF0AA, 0xF9D0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0xFCE2, 0, 0xF8A7, 0, /* 0x90 */
- 0, 0, 0xE1E5, 0xEEF9, 0, 0, 0, 0xE7F6, /* 0x90 */
- 0xEAED, 0, 0, 0xFCB4, 0xF5C2, 0, 0, 0xD7DC, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xF0F5, 0, 0xDDE8, 0xD3ED, 0xF5FC, 0, 0xDABF, 0, /* 0xB0 */
- 0xCCFB, 0, 0, 0, 0xD3FA, 0xF4A4, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xEFD7, 0, 0xD4C3, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xFBE3, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xFBED, 0, 0xE0AD, 0, 0, 0xEAEE, /* 0xD0 */
- 0xFBB3, 0xE4C2, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xF6E7, 0xD2DD, 0, 0xDFCC, 0, 0, 0xFCC9, 0, /* 0xF0 */
- 0, 0xE5A9, 0xE0F6, 0xF6B3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_61[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE1FE, 0, 0, 0, 0, 0xCBF0, 0, /* 0x00 */
- 0xEAEF, 0xEAF0, 0, 0, 0, 0xDAC0, 0xF8B4, 0xEBF2, /* 0x00 */
- 0, 0, 0, 0, 0, 0xE4C3, 0, 0, /* 0x10 */
- 0, 0, 0xE9D7, 0xE4F1, 0, 0, 0, 0xCAEF, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xCED7, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xFCCA, 0, 0, 0, 0xF3E1, 0, 0, 0xCBC4, /* 0x30 */
- 0, 0, 0, 0, 0xE3E5, 0, 0xCBC5, 0xEAB4, /* 0x30 */
- 0, 0, 0xE9BD, 0, 0xD7C9, 0, 0, 0xEBDB, /* 0x40 */
- 0xEDB1, 0, 0xCCC3, 0xF7BE, 0xFCCB, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xF8F4, 0, 0xD9B7, 0, 0, /* 0x50 */
- 0xF3D3, 0xF3D4, 0, 0, 0, 0xF7E4, 0, 0xF7D1, /* 0x50 */
- 0, 0, 0xD8B7, 0xCEB1, 0xCAC2, 0, 0, 0xFBB4, /* 0x60 */
- 0xCBC6, 0, 0, 0xF0F6, 0, 0, 0xD5E7, 0, /* 0x60 */
- 0xEAD0, 0, 0, 0, 0, 0, 0xCCD4, 0xCBAF, /* 0x70 */
- 0, 0, 0, 0, 0, 0xF4AA, 0xE9AF, 0, /* 0x70 */
- 0, 0xF5C3, 0xE9D8, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xDDE9, 0, 0, 0, 0xF1F3, 0, /* 0x80 */
- 0xD5FB, 0xDEBB, 0, 0, 0xF4FB, 0, 0, 0, /* 0x90 */
- 0xFDF3, 0xFDF2, 0xF7A6, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xDDC9, 0, 0, 0xD4D3, /* 0xA0 */
- 0, 0xCCA8, 0, 0xDAC1, 0xCCD5, 0, 0xD9E4, 0, /* 0xA0 */
- 0, 0, 0xFACA, 0, 0, 0, 0xE5E3, 0, /* 0xB0 */
- 0, 0, 0xD3BC, 0, 0, 0, 0xCAF0, 0, /* 0xB0 */
- 0, 0, 0, 0xD0C4, 0, 0, 0, 0xCAD0, /* 0xC0 */
- 0xFAAB, 0xEBEB, 0xE7F8, 0xD9E5, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xD1D7, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0xF3A4, 0, 0, 0, 0xD4FB, 0xFCE3, /* 0xF0 */
- 0xFAD8, 0, 0xF3D5, 0, 0xCFAB, 0, 0, 0xEBF3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_62[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD5FC, 0, 0, 0, 0, 0, 0, 0xD3D4, /* 0x00 */
- 0xCDFC, 0, 0xD9E6, 0, 0xE2F9, 0xE2A1, 0xEBD4, 0, /* 0x00 */
- 0xE0F7, 0xE4B2, 0xCCFC, 0, 0, 0, 0xFBE4, 0, /* 0x10 */
- 0, 0, 0xF4AB, 0, 0, 0, 0, 0xD0BD, /* 0x10 */
- 0, 0xCAF1, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xEFB8, 0, 0, 0, 0xD7C0, 0, /* 0x20 */
- 0xEEFA, 0xFDF4, 0, 0, 0xD3E3, 0, 0xFBC2, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xD5E8, 0xDBAE, /* 0x30 */
- 0xE1B6, 0xF8B7, 0, 0, 0, 0, 0, 0xE0BF, /* 0x40 */
- 0xFBC3, 0xDDEA, 0, 0xE2A2, 0, 0xEEA6, 0, 0, /* 0x40 */
- 0, 0, 0, 0xF6E8, 0, 0, 0, 0, /* 0x50 */
- 0xF6F5, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0xDDCA, 0, /* 0x60 */
- 0, 0xD0E2, 0, 0, 0, 0, 0xDDA6, 0, /* 0x70 */
- 0, 0xDDEB, 0, 0, 0xE4F9, 0, 0, 0xE3AF, /* 0x70 */
- 0xD0FC, 0, 0, 0, 0xF4FC, 0, 0, 0, /* 0x80 */
- 0, 0xCCBC, 0xF7EA, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xE5E4, 0xDFF1, 0, 0, 0xF7E1, 0, 0xF9F7, /* 0x90 */
- 0xEFB9, 0, 0, 0xF8D8, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xF9A9, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xF8D9, 0, 0, 0, 0xEEBD, 0, 0, /* 0xB0 */
- 0, 0xD8C6, 0, 0, 0xE4E3, 0xF5CE, 0, 0, /* 0xB0 */
- 0, 0, 0xDDD9, 0, 0, 0, 0, 0xD9E7, /* 0xC0 */
- 0xD2B9, 0xD5C3, 0, 0, 0xDAE5, 0xDAD0, 0, 0xD1D9, /* 0xC0 */
- 0xCED8, 0, 0xCBDE, 0xF4AC, 0xDAFB, 0, 0xF6E9, 0xE8F3, /* 0xD0 */
- 0xCFAC, 0xF0F0, 0, 0xF4FD, 0xDBC8, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xCEC0, 0xE3D4, 0xD1CF, 0xF1F5, /* 0xE0 */
- 0, 0xCDF2, 0, 0xCFEB, 0, 0, 0, 0xCDB8, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0xE3A6, 0xD1DA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_63[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF2A5, 0, 0, 0, 0, 0, 0xF2A6, /* 0x00 */
- 0, 0xE4CE, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0xD3FB, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xF1A9, 0, 0, 0, 0xF2C9, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0xEFD8, 0xE6C9, 0, 0xD8B8, 0xFAF3, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xF3B5, 0, 0, 0xF8A4, 0, 0, 0xD1F3, /* 0x40 */
- 0xE6C8, 0, 0, 0, 0, 0xF8DA, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xDCE9, /* 0x60 */
- 0xDED7, 0, 0, 0, 0, 0, 0xCBDF, 0, /* 0x60 */
- 0, 0, 0xCFEC, 0, 0, 0, 0, 0xF4DF, /* 0x70 */
- 0, 0, 0xD1F4, 0xD2BA, 0, 0, 0, 0xDFF2, /* 0x70 */
- 0, 0, 0, 0xE1B7, 0, 0, 0, 0, /* 0x80 */
- 0xE2A3, 0xD3FC, 0, 0, 0xEDE6, 0, 0, 0, /* 0x80 */
- 0, 0, 0xDBC9, 0, 0, 0, 0xE4FA, 0, /* 0x90 */
- 0xCFDE, 0, 0, 0xCED0, 0, 0, 0, 0, /* 0x90 */
- 0xD5D3, 0xF3F5, 0xF7AE, 0, 0, 0xEFC8, 0, 0xCDF3, /* 0xA0 */
- 0xF5CF, 0xE5F3, 0xF0C2, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xCAD1, 0, 0, 0, 0xEAF1, 0, 0xD0A6, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xD9DA, /* 0xC0 */
- 0xF0AB, 0, 0, 0, 0, 0, 0xEBE7, 0, /* 0xD0 */
- 0, 0, 0xE5C0, 0xFCB5, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xE4C4, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xCCA9, 0xFDC6, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xEAB5, 0, 0xE5AA, 0xDFBA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_64[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE1DF, 0, 0xDAD1, /* 0x00 */
- 0, 0, 0, 0, 0xE1B8, 0, 0xE8F4, 0xD3FD, /* 0x10 */
- 0, 0, 0, 0, 0xE2A4, 0, 0, 0, /* 0x10 */
- 0, 0, 0xF2CA, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xDAE6, 0xF7B3, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0xFDCD, 0, 0, 0, 0xF3B6, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xEED7, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xF5C4, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xD8A4, 0, 0, 0, 0, 0, 0xF2A7, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xD9B8, 0xD9B9, 0xEFC9, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xD6CE, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xF7CB, 0xDFAE, 0xE8F5, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xD2B5, 0, 0, 0, 0xD3D5, 0, /* 0x90 */
- 0, 0, 0, 0, 0xF4CC, 0xDAFC, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xD9E8, 0, 0xF7EB, 0xF5C9, 0, /* 0xA0 */
- 0xF3BC, 0, 0xDAD2, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xD3B5, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xE8B6, 0, 0, 0xD6CF, 0xF4BA, 0, 0xF7C9, /* 0xC0 */
- 0, 0, 0xCCAA, 0, 0, 0xF0C3, 0xCCD6, 0, /* 0xC0 */
- 0, 0, 0xD0D3, 0, 0xD3BD, 0, 0, 0, /* 0xD0 */
- 0xDBFB, 0, 0xCBE0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xD3E4, 0xF6F7, 0, 0, 0xD5BA, 0xF3CD, 0xCBE1, /* 0xE0 */
- 0, 0, 0, 0, 0xEBF4, 0, 0, 0, /* 0xE0 */
- 0, 0, 0xF4AD, 0, 0xFCAA, 0, 0, 0, /* 0xF0 */
- 0, 0, 0xF7EC, 0, 0, 0, 0xE8F6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_65[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDAE7, 0, 0, 0, 0xF7CC, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xE5C1, 0, 0, 0, 0, 0xE0EE, 0, 0, /* 0x10 */
- 0, 0, 0, 0xD5FD, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xCEE6, 0xFCAB, 0xD5BB, 0, 0, 0xF2A8, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0xE2A5, 0xCDB9, /* 0x30 */
- 0xEAF2, 0xCBC7, 0, 0xCDF4, 0, 0, 0xDBAF, 0xEFD9, /* 0x30 */
- 0, 0, 0, 0, 0, 0xCDBA, 0, 0, /* 0x40 */
- 0xFCF9, 0, 0, 0, 0, 0xDFF3, 0xCEE7, 0xDAC2, /* 0x40 */
- 0, 0xCFAD, 0, 0, 0, 0, 0xE7F9, 0xF8A8, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xF3E2, 0, /* 0x50 */
- 0, 0, 0xCAF2, 0xDFA4, 0, 0, 0xD4C4, 0, /* 0x60 */
- 0, 0, 0, 0, 0xCCD7, 0xE5C2, 0, 0, /* 0x60 */
- 0, 0, 0xCDBB, 0, 0xEFDA, 0xEED8, 0, 0xDDA7, /* 0x70 */
- 0xE2A6, 0, 0, 0, 0, 0, 0xE0C0, 0, /* 0x70 */
- 0, 0, 0xD6B0, 0xF8CA, 0, 0xFCFA, 0, 0xD9FE, /* 0x80 */
- 0, 0, 0, 0, 0xDEB0, 0, 0, 0, /* 0x80 */
- 0xDDEC, 0xDAE8, 0, 0, 0, 0, 0, 0xD4E0, /* 0x90 */
- 0, 0xD6F9, 0, 0xCDD7, 0xDED8, 0, 0, 0xF2F8, /* 0x90 */
- 0, 0xE4D6, 0, 0, 0xD0C5, 0xF4AE, 0, 0xDDA8, /* 0xA0 */
- 0, 0, 0, 0xEDC5, 0xF3D6, 0, 0, 0xDED9, /* 0xA0 */
- 0xE3E6, 0, 0, 0, 0, 0, 0, 0xD3A8, /* 0xB0 */
- 0, 0xDBB0, 0, 0, 0xE5DA, 0xE3BF, 0, 0, /* 0xB0 */
- 0, 0xDBB1, 0, 0, 0, 0xD5E9, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xE0C1, 0xEFDB, 0, 0, 0xF0E9, /* 0xC0 */
- 0, 0, 0xD7B2, 0, 0, 0, 0, 0xD0FD, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xD9E9, 0, 0, 0xD0FE, 0, 0xECED, 0xD3A9, 0, /* 0xE0 */
- 0xF2A9, 0xF0C4, 0, 0, 0xE2E2, 0xE9EF, 0, 0, /* 0xE0 */
- 0, 0xF9D1, 0, 0, 0xE9D9, 0, 0, 0, /* 0xF0 */
- 0, 0, 0xE8DA, 0xDAC3, 0xDAC4, 0xD4C5, 0, 0xE7FA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_66[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCDE0, 0xE3B0, /* 0x00 */
- 0, 0xDBB2, 0xFBC4, 0, 0xF3E3, 0, 0xD9A5, 0xFBE7, /* 0x00 */
- 0xDDCB, 0xD0D4, 0, 0xE6B6, 0xE0AE, 0xFDDA, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xDCB5, 0xE0F8, /* 0x10 */
- 0xE7B1, 0, 0, 0, 0, 0xF5F0, 0, 0xD8DC, /* 0x20 */
- 0xEDC6, 0, 0, 0, 0, 0xE1B9, 0, 0xE3C0, /* 0x20 */
- 0xF9C0, 0xE9F0, 0, 0, 0xD9DB, 0, 0xF3E4, 0, /* 0x30 */
- 0, 0, 0xDCB6, 0xE4E9, 0, 0, 0, 0, /* 0x30 */
- 0, 0xF0C5, 0xE3C1, 0xFCCC, 0xFCCD, 0, 0, 0, /* 0x40 */
- 0, 0xF2CB, 0, 0xF2CC, 0, 0, 0, 0xE4CF, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xF1DB, 0, 0xFAD9, 0, 0xF1B8, 0xFDF5, 0xE0F9, /* 0x50 */
- 0, 0, 0, 0, 0xE7FB, 0xFCB7, 0xFCE4, 0xFBC5, /* 0x60 */
- 0xE3E7, 0xD8B9, 0, 0xF6F8, 0, 0, 0xDCC5, 0xCCD8, /* 0x60 */
- 0, 0, 0, 0xE0AF, 0xF4E7, 0, 0xEFDC, 0xCFFC, /* 0x70 */
- 0xEFDD, 0, 0xF2AA, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xFDBE, 0, 0, 0xCAAC, /* 0x80 */
- 0xFDBB, 0xFDC7, 0, 0, 0, 0, 0xE7B2, 0, /* 0x80 */
- 0xEAD1, 0xDFF4, 0, 0, 0, 0, 0xD1EC, 0xE4DE, /* 0x90 */
- 0xE5C3, 0, 0, 0, 0, 0xD9A6, 0, 0, /* 0x90 */
- 0xCDBC, 0, 0xF3E5, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xEDD5, 0, 0, 0xD9BA, 0, /* 0xA0 */
- 0, 0, 0xEDE7, 0xFBB5, 0xF8EC, 0, 0, 0, /* 0xB0 */
- 0, 0xE0E7, 0, 0xCCD9, 0, 0, 0xD4C6, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xE7A5, 0, 0xD5F5, 0xD3BE, /* 0xC0 */
- 0, 0xFCFB, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xE4F2, 0, /* 0xD0 */
- 0, 0xDFF5, 0, 0, 0xE8F8, 0xF8ED, 0, 0, /* 0xD0 */
- 0xCEC7, 0, 0, 0, 0, 0, 0xFDF6, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xE8D8, 0, 0xCDD8, 0xE7D6, 0xCCDA, 0, 0, 0xCAE3, /* 0xF0 */
- 0xDFF6, 0xF0C7, 0xF0C6, 0, 0xD8BA, 0, 0xF1F4, 0xF4F0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_67[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF5CC, 0, 0, 0xFCE5, 0, 0, 0, 0, /* 0x00 */
- 0xEAC5, 0xEAF3, 0, 0xDDDB, 0, 0xDCD7, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0xDEFD, 0xF2F9, 0, 0xD5C7, /* 0x10 */
- 0, 0, 0, 0xD8D0, 0, 0xF0C8, 0xD1A1, 0xD1A2, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xD9D4, 0xD6E8, /* 0x20 */
- 0xD9CA, 0, 0xDAB1, 0xD8C7, 0xDCE2, 0xF3CE, 0xF5F4, 0, /* 0x20 */
- 0, 0xF1B9, 0, 0, 0xDAD3, 0, 0xF6EA, 0, /* 0x30 */
- 0, 0, 0xCFF5, 0, 0, 0xFDAE, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xCAD2, 0, /* 0x40 */
- 0, 0xDFB4, 0, 0, 0, 0, 0xD7DD, 0xFABA, /* 0x40 */
- 0xEEA7, 0xF5BD, 0, 0xF8F5, 0, 0, 0xEDE8, 0, /* 0x50 */
- 0, 0, 0, 0, 0xD4E1, 0, 0xD1A3, 0xE1D6, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xF9F8, 0, 0xDBCA, /* 0x60 */
- 0xCBF9, 0xD4D4, 0, 0xD9DC, 0, 0xEEBE, 0, 0xF7ED, /* 0x70 */
- 0, 0, 0, 0xD2EE, 0, 0, 0xE1E6, 0xF7F9, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xDDED, /* 0x80 */
- 0, 0xE8DB, 0, 0xDBB3, 0, 0, 0, 0xD1F7, /* 0x80 */
- 0xE0B0, 0, 0, 0xD4E2, 0, 0xF6D7, 0, 0xD7F9, /* 0x90 */
- 0, 0, 0xD8DD, 0, 0xCDFD, 0xF2AB, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0xCDBD, /* 0xA0 */
- 0xF8C2, 0, 0, 0xF2AC, 0, 0, 0xCAAD, 0xCAAE, /* 0xB0 */
- 0xCFAE, 0, 0, 0, 0, 0, 0xE3C2, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xDCB7, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xDBDA, /* 0xC0 */
- 0xD9BB, 0xCAF3, 0xF6D3, 0xE6F8, 0xEAF5, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xEAF6, 0, 0, 0xF6F9, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0xCFAF, 0, 0, 0xCAD3, 0, 0, 0xCAAF, /* 0xE0 */
- 0xD2B0, 0xF1BA, 0, 0xD7B3, 0xE3C3, 0xF3FD, 0xDEDA, 0, /* 0xF0 */
- 0, 0, 0, 0xDEDB, 0, 0, 0xEFDE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_68[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE2E3, 0xEEFB, 0, 0, 0xDFF7, 0xD7CA, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xCEE8, 0xDBDB, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xF1BB, 0, 0, 0, 0, 0xE9F1, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xFAB7, 0xD0C6, 0, 0, 0xCCAB, 0xEEA8, 0, 0, /* 0x30 */
- 0xCBFA, 0xF9F9, 0xCCFD, 0xD3FE, 0, 0, 0, 0, /* 0x40 */
- 0xE4D0, 0, 0, 0, 0, 0, 0xF2EE, 0, /* 0x40 */
- 0xD4D5, 0xDFCD, 0, 0xFCB8, 0xD1D0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xF2CD, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0xF7D2, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xCAD4, /* 0x70 */
- 0, 0xD5D9, 0, 0, 0, 0xD8DE, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0xCDD9, /* 0x80 */
- 0, 0, 0, 0xEEA9, 0xF6BC, 0, 0, 0xCCDB, /* 0x90 */
- 0, 0, 0, 0, 0, 0xF0C9, 0, 0xFCFC, /* 0x90 */
- 0, 0xE8C9, 0xF4FE, 0, 0, 0, 0, 0xE7FC, /* 0xA0 */
- 0xD7DE, 0, 0, 0, 0, 0xDEDC, 0, 0xF0AC, /* 0xA0 */
- 0xCCFE, 0xCDE1, 0, 0xE1BA, 0, 0xDBEF, 0xDAB2, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xD1A5, 0xDCB8, 0, 0, /* 0xC0 */
- 0, 0xD8F6, 0, 0xD1A4, 0, 0xCDE2, 0, 0, /* 0xC0 */
- 0, 0, 0xDCEA, 0, 0, 0xF0F7, 0, 0xF0CA, /* 0xD0 */
- 0xD0BE, 0, 0xDDDC, 0, 0, 0, 0, 0xD4D6, /* 0xD0 */
- 0xD3D6, 0, 0, 0, 0, 0, 0, 0xEDD0, /* 0xE0 */
- 0xCDA1, 0, 0, 0, 0, 0, 0xDFB5, 0, /* 0xE0 */
- 0, 0, 0xDFF8, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xD4A1, 0xCEB2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_69[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE8CA, 0, 0, 0, 0, 0xEBF5, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0xE3D5, 0xF5D0, 0, /* 0x00 */
- 0, 0, 0xF5A1, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xD9A7, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xE5AB, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xE6CB, 0, 0xF5F1, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xE5C5, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xF9A3, 0xE0DB, 0xF6EB, 0, 0xCBF1, /* 0x50 */
- 0, 0xD9EA, 0xF5A2, 0, 0, 0, 0xD7D1, 0, /* 0x50 */
- 0xD1F8, 0xEAF8, 0xEAF9, 0xDAB3, 0, 0, 0, 0, /* 0x60 */
- 0xEFDF, 0, 0, 0xF1EF, 0, 0xE5F6, 0xEEBF, 0xE2E4, /* 0x60 */
- 0, 0, 0, 0, 0, 0xD0BF, 0, 0xFAAC, /* 0x70 */
- 0xF5D1, 0xE7B3, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xE9BE, 0, 0, /* 0x90 */
- 0, 0, 0, 0xF2CE, 0xDBB4, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xFCCE, 0, 0xDDEE, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xE7B4, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xD7B4, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xF7B4, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xCDBE, 0, 0xDAE9, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xCFB0, 0xF7D9, 0xF3E6, 0, 0, /* 0xC0 */
- 0xCED9, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xCEAA, 0, 0xCBC8, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0xD0A7, 0, 0xF0CB, 0, 0xD0C7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_6A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE4C5, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xDBE0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0xD5DA, 0, 0xD7A7, 0, 0, 0, 0xEEC0, /* 0x10 */
- 0, 0xF8F6, 0, 0, 0, 0, 0xF5D2, 0xEDE9, /* 0x10 */
- 0, 0xD9BC, 0, 0xE5C6, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xF5A3, 0, 0, /* 0x30 */
- 0xDAD4, 0xE2A7, 0xFBFC, 0, 0, 0xF1DC, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0xCAF4, 0, 0, 0, /* 0x40 */
- 0xE8FA, 0, 0, 0xCEE9, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xE9F8, 0xE2E5, 0, 0, 0, 0, /* 0x50 */
- 0xD0B9, 0xD4F2, 0, 0, 0, 0, 0, 0xD1A6, /* 0x50 */
- 0, 0xDFCE, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xFCF4, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xD3AA, 0, 0, 0, 0xCCAC, 0, 0, 0, /* 0x80 */
- 0, 0xEFE0, 0, 0, 0, 0xE5E5, 0xD0D5, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0xDBFC, /* 0x90 */
- 0, 0, 0, 0, 0xFCE6, 0, 0, 0, /* 0x90 */
- 0, 0, 0xCBFE, 0xEDEA, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xDEB1, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xF9E3, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xD4A2, 0xCFF6, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xD6D0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xD5EA, 0xF1EE, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xFACB, 0, /* 0xF0 */
- 0, 0, 0, 0xE5A1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_6B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD5B1, 0, 0, 0, /* 0x00 */
- 0, 0, 0xCFED, 0, 0xEDEB, 0, 0, 0, /* 0x00 */
- 0, 0, 0xD5B2, 0, 0, 0, 0xD5BC, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xFDE2, 0xF3AD, 0, 0xFDDB, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xE9B0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0xD1A7, 0, 0, 0xFDE3, 0xCEB3, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xFDE4, 0xFACE, /* 0x40 */
- 0, 0, 0, 0, 0xCAB0, 0, 0xF7A7, 0, /* 0x40 */
- 0xCFB1, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xE6A2, /* 0x50 */
- 0, 0xFCB6, 0xF2AD, 0xEFE1, 0xF3AE, 0xDCC6, 0xD9EB, 0, /* 0x60 */
- 0, 0, 0xE8E0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xE1A8, 0, 0, 0, 0, 0xD5F6, /* 0x70 */
- 0xCFFD, 0, 0, 0xDEDD, 0, 0, 0, 0xD9D1, /* 0x70 */
- 0, 0, 0, 0xE4EA, 0xF2CF, 0, 0xF7BF, 0, /* 0x80 */
- 0, 0xE2E6, 0xE2A8, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xE3D6, 0, /* 0x90 */
- 0xEDD1, 0, 0, 0, 0, 0, 0xE9F9, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xD6B1, 0xDEB2, /* 0xA0 */
- 0, 0, 0xE0E8, 0, 0, 0xD3AB, 0, 0xEBDC, /* 0xB0 */
- 0, 0, 0xDFAF, 0, 0xCAC3, 0, 0, 0xEEFC, /* 0xB0 */
- 0, 0xFDC3, 0, 0, 0, 0xEBF6, 0xCFB2, 0, /* 0xC0 */
- 0, 0, 0, 0xD9EC, 0, 0xD9BD, 0, 0xD8DF, /* 0xC0 */
- 0, 0, 0xD4B8, 0xEBBE, 0xDDEF, 0, 0xDDF0, 0xDDF1, /* 0xD0 */
- 0xDDF2, 0, 0, 0xD9BE, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xFBC6, 0xCFB3 /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_6C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEEFD, 0, 0, 0, 0, 0, 0, 0xE4AB, /* 0x00 */
- 0, 0xDAC5, 0, 0xD8EC, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xD1A8, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xE2A9, 0, 0, 0xDEBC, /* 0x30 */
- 0xE7B5, 0, 0, 0, 0, 0, 0xDBF0, 0, /* 0x30 */
- 0xEFE2, 0xF1F0, 0xCFB4, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0xDBF1, 0, /* 0x40 */
- 0xE0B1, 0, 0, 0, 0, 0xDFA5, 0, 0xF9D2, /* 0x50 */
- 0, 0, 0xE7FD, 0, 0, 0xE6A3, 0xFBF1, 0xCBB0, /* 0x50 */
- 0xF2AE, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0xCDE7, 0, 0xE8DC, 0, 0, 0xE7D7, 0, 0, /* 0x60 */
- 0xF7C0, 0, 0xD0E3, 0, 0, 0, 0xDAA1, 0, /* 0x70 */
- 0, 0, 0xCCBD, 0, 0, 0xD1A9, 0xDDCC, 0, /* 0x70 */
- 0, 0xE3FE, 0xD1AA, 0xE8AA, 0, 0xEAB6, 0xF9FA, 0xE6CC, /* 0x80 */
- 0xF6D8, 0, 0, 0, 0xD4C7, 0, 0, 0, /* 0x80 */
- 0xD9CB, 0, 0xD9D2, 0xD3CB, 0xD8F7, 0xDAA9, 0xF5F8, 0, /* 0x90 */
- 0, 0xDEDE, 0xF2AF, 0xF8A9, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xD8C8, 0, 0, 0xEEC1, 0, /* 0xA0 */
- 0, 0, 0, 0xF9C1, 0, 0, 0, 0, /* 0xB0 */
- 0xDDF3, 0xEAFA, 0, 0xF6BD, 0xE1BB, 0xCDBF, 0xF4D4, 0xE6CD, /* 0xB0 */
- 0, 0xFCCF, 0xFBA2, 0, 0xE0DC, 0, 0, 0, /* 0xC0 */
- 0, 0xF4BB, 0xDAD5, 0, 0xF9B2, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xFBF2, 0, 0xDBF6, 0, 0xDEDF, /* 0xD0 */
- 0, 0, 0, 0xDBF2, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xF8DC, 0xF7EE, 0xEBE8, 0, 0xD2FA, 0, 0, /* 0xE0 */
- 0xF1BC, 0, 0, 0xFADA, 0, 0, 0xDAEA, 0xDAC6, /* 0xE0 */
- 0xF7C1, 0, 0, 0xE7B6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_6D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE5C7, 0xD6AC, 0, 0, 0, /* 0x00 */
- 0, 0xDCC7, 0, 0, 0, 0, 0, 0xE1A9, /* 0x10 */
- 0, 0xE2AA, 0, 0xD5A6, 0, 0, 0xD4D7, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xF2D0, 0, 0xEAFB, /* 0x20 */
- 0, 0xE0DD, 0xFBF3, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xF1BD, 0, 0, 0xE2E7, 0xFDD7, 0, /* 0x30 */
- 0xCEC8, 0xEAB7, 0, 0xFCC0, 0, 0xFDE7, 0xF7EF, 0, /* 0x30 */
- 0, 0xD7B5, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xEFBA, 0xF1DD, 0, 0xDEB3, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0xE8CB, 0, 0, 0xF8DD, 0, /* 0x60 */
- 0, 0xFBC7, 0xD5C8, 0, 0xD7DF, 0, 0xDDA9, 0, /* 0x60 */
- 0, 0, 0, 0, 0xE9B1, 0, 0, 0xFAAD, /* 0x70 */
- 0xF6D9, 0xFAF4, 0, 0, 0, 0, 0, 0xF8AA, /* 0x70 */
- 0, 0, 0, 0, 0, 0xE6EE, 0, 0xCCDC, /* 0x80 */
- 0xE1BC, 0xE0EF, 0, 0, 0xE9BF, 0xFCFD, 0xE6CE, 0, /* 0x80 */
- 0, 0xE1D7, 0, 0xE6CF, 0, 0xF4F1, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE4F3, /* 0xA0 */
- 0, 0, 0xE4FB, 0, 0, 0xF9E4, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xEFE3, 0, 0, 0xCFEE, 0xF6BE, 0xE0B2, 0xFCFE, 0xD1AB, /* 0xC0 */
- 0, 0, 0, 0xD7FA, 0, 0, 0, 0xFBC8, /* 0xC0 */
- 0, 0xE2D7, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xD4A3, 0xF0F8, 0xD7A8, 0, 0, 0, 0xE1E7, 0, /* 0xD0 */
- 0, 0xD3BF, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xEFE4, 0, 0xD7C5, 0xEBE2, 0, 0, 0xFCE7, 0, /* 0xE0 */
- 0, 0xE4A2, 0, 0xE2E8, 0, 0xE6D0, 0, 0xFBE8, /* 0xF0 */
- 0xF4E8, 0xE5F4, 0xF4BC, 0xF4D5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_6E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDFB6, /* 0x10 */
- 0, 0xFCB9, 0xEEC2, 0xCAF5, 0, 0, 0, 0xEFE5, /* 0x10 */
- 0xCBE2, 0xD4A4, 0, 0xDEE0, 0xDAFD, 0xE4C6, 0xE8BE, 0, /* 0x20 */
- 0, 0, 0, 0xE0DE, 0xF6B4, 0xEAD2, 0, 0xF9FB, /* 0x20 */
- 0, 0, 0xE0C2, 0, 0xCAE4, 0, 0xE7B7, 0, /* 0x30 */
- 0xEAFD, 0, 0xD9DD, 0, 0xDAB4, 0xEEAA, 0xFBE9, 0, /* 0x30 */
- 0, 0, 0, 0xDBCB, 0xDAB5, 0, 0, 0, /* 0x40 */
- 0, 0, 0xF1BE, 0, 0, 0xD3AC, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0xFBC9, 0, /* 0x50 */
- 0xDFCF, 0, 0, 0xD3C0, 0xE3D7, 0, 0xEFE6, 0xFCD0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xE9C0, /* 0x60 */
- 0, 0, 0, 0xF5D3, 0, 0, 0xECDC, 0xF7B7, /* 0x60 */
- 0, 0, 0xEAB8, 0xD1F9, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xDCC8, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xEAB9, 0, 0, 0, 0, 0, 0xF1DE, 0, /* 0x90 */
- 0, 0, 0, 0, 0xD7B6, 0xCFB5, 0, 0xD9A8, /* 0x90 */
- 0, 0, 0xECEE, 0, 0, 0xDDAA, 0, 0, /* 0xA0 */
- 0, 0, 0xCDA2, 0xE8AE, 0, 0, 0, 0xE1BD, /* 0xA0 */
- 0, 0xF2D1, 0, 0, 0, 0, 0xE9C1, 0, /* 0xB0 */
- 0, 0, 0xD2FC, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xDBB5, 0, 0xF3E7, 0xD8FE, 0, 0, /* 0xC0 */
- 0, 0xFCD1, 0, 0xEDB2, 0xF4AF, 0, 0xFBA3, 0, /* 0xC0 */
- 0, 0xFCC1, 0, 0xEEAB, 0xD4A5, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0xF4F2, /* 0xE0 */
- 0, 0, 0, 0, 0xEED9, 0, 0, 0, /* 0xF0 */
- 0xFBCA, 0, 0, 0, 0, 0, 0xCDE3, 0xD8BB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_6F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE5DB, 0xF8F7, 0, 0, 0, 0xF6D4, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0xD7A9, /* 0x00 */
- 0, 0xCBC9, 0, 0, 0xE6D1, 0xF0CC, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xD8AE, 0, 0xF9D3, 0xD5FE, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xD8BC, 0xF2B0, 0, 0, 0, /* 0x20 */
- 0, 0xE2AB, 0xF3E8, 0, 0, 0, 0, 0, /* 0x30 */
- 0xEFC2, 0, 0, 0, 0, 0, 0, 0xEDEC, /* 0x30 */
- 0, 0xE7B8, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xDAFE, 0, 0, 0xCCBE, 0, 0, 0xF2FC, /* 0x50 */
- 0xDAEB, 0, 0xE2D8, 0xEDD6, 0, 0, 0xD6D1, 0xE0B3, /* 0x50 */
- 0, 0, 0xFCD2, 0, 0xEBC8, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xD3C1, 0xF0CD, 0, /* 0x60 */
- 0xCFF7, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xEDD2, 0, 0xD4D8, 0xDCC9, 0xD7F1, 0, /* 0x70 */
- 0, 0xDFBB, 0, 0, 0xF3A5, 0, 0, 0, /* 0x80 */
- 0xF4CD, 0, 0, 0, 0, 0xF1BF, 0xF8B1, 0, /* 0x80 */
- 0xE9FA, 0, 0, 0, 0xFBCB, 0, 0, 0xCAD5, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xF9D4, 0xF7CA, 0, 0, 0xD6C8, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xFCE8, 0xF3BD, /* 0xA0 */
- 0, 0xEEFE, 0, 0xE7FE, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xD3C2, 0, 0, 0, 0, 0xD3B6, 0, /* 0xB0 */
- 0xCCAD, 0xF6FA, 0xD6B2, 0xD2D8, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xE7D8, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xE3A5, 0, 0, /* 0xD0 */
- 0, 0, 0xE7B9, 0, 0, 0, 0, 0xF0AD, /* 0xD0 */
- 0xFBCC, 0xEBA1, 0, 0, 0xD4A6, 0, 0, 0, /* 0xE0 */
- 0, 0xFBCD, 0, 0xD5BD, 0xF1DF, 0, 0, 0xF6FB, /* 0xE0 */
- 0, 0xDEB4, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0xD5EB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_70[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE5C8, 0, 0, 0, 0xFBA4, 0xD4B9, 0, /* 0x00 */
- 0, 0xDEE1, 0, 0xE4A3, 0, 0, 0, 0xD7B7, /* 0x00 */
- 0, 0xF8EE, 0, 0, 0, 0xDEB5, 0, 0, /* 0x10 */
- 0xD6D2, 0, 0xF9D5, 0xE7BA, 0xEBD5, 0xD5F7, 0xEFE7, 0xE1BE, /* 0x10 */
- 0, 0, 0, 0xFAAE, 0, 0, 0, 0xD6E9, /* 0x20 */
- 0xD6EE, 0, 0, 0, 0, 0, 0, 0xE7BB, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0xECCB, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xD5B3, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xCEB4, 0, 0, 0, /* 0x40 */
- 0xFBA5, 0xE1EE, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xF7A8, 0, 0, 0, 0, 0xFBCE, 0, 0, /* 0x50 */
- 0, 0, 0, 0xD8BD, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xFBFD, 0, 0, 0, 0, /* 0x60 */
- 0xFCE9, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xCFB6, 0, 0, 0, 0xEDC7, 0xEEAC, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xCCDD, 0, 0, /* 0x80 */
- 0, 0, 0xF6A7, 0, 0, 0, 0xE6FA, 0, /* 0x80 */
- 0, 0, 0xF5A4, 0, 0, 0, 0, 0, /* 0x90 */
- 0xFDDC, 0xEDB3, 0xCEC9, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xEFE8, 0, 0, 0xE1BF, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xFADB, 0xCBE3, 0xF7A9, 0, 0xFBA6, /* 0xA0 */
- 0, 0, 0, 0xDCB9, 0, 0, 0, 0xF1C0, /* 0xB0 */
- 0xEDC8, 0xEFC3, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xD6AD, 0, 0, 0xFDCE, 0, 0, 0, 0xE8A1, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xFBF4, 0xD5A7, 0, 0, 0, 0xF1F6, 0, 0xE6D3, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0xCCDE, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xF8B2, 0, 0, 0, 0xDCEB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_71[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFDB6, 0, 0, 0, /* 0x00 */
- 0, 0xE5EA, 0, 0, 0xF1E0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xDBCC, 0xDDCD, 0, 0, 0, 0xD4C8, 0, /* 0x10 */
- 0, 0xD9ED, 0, 0, 0, 0, 0xF5A5, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xE6FB, 0, 0, 0, 0, 0, 0xE6D4, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0xFDC8, /* 0x40 */
- 0, 0xD6A1, 0xFDBF, 0, 0xFCD3, 0, 0xEFA1, 0, /* 0x40 */
- 0xE7BC, 0, 0, 0, 0, 0, 0xD1EE, 0, /* 0x50 */
- 0, 0xE6D5, 0, 0, 0xE9F2, 0, 0xDFB0, 0, /* 0x50 */
- 0, 0, 0, 0, 0xD8E0, 0xFCBA, 0xFDAF, 0xF0CE, /* 0x60 */
- 0, 0xDBE1, 0, 0, 0xE5C9, 0, 0xEDB4, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xE0C3, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xE3D8, 0, 0, 0, /* 0x80 */
- 0, 0xE9FB, 0xEAA8, 0, 0, 0, 0, 0xFDB7, /* 0x80 */
- 0, 0, 0xFBA7, 0, 0xE9C2, 0, 0, 0, /* 0x90 */
- 0, 0xFDF7, 0, 0, 0, 0, 0, 0xE2D9, /* 0x90 */
- 0, 0, 0xDCEC, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xE8A2, 0, 0, 0, /* 0xA0 */
- 0, 0xE6F0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xFDF8, 0xFDF9, 0, 0, 0, 0xF6BF, 0, /* 0xB0 */
- 0, 0xE7A7, 0, 0xE6D7, 0, 0, 0, 0, /* 0xC0 */
- 0xD4F3, 0xD4C9, 0, 0, 0, 0, 0xD6FA, 0, /* 0xC0 */
- 0xD7F2, 0, 0xE1C0, 0, 0xDBE2, 0xE6D8, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE7BD, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xF0CF, 0xF3BE, 0xE2AC, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xF5B7, 0xE0F0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0xFDB8, 0xE3E8, 0, 0xD4A7, 0xE8FC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_72[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFAD2, 0, 0, 0, 0, 0, 0xF8EF, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0xD6D3, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xD5B4, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xF0D0, 0, 0xF7F0, 0xEEB3, 0, 0, /* 0x20 */
- 0xEABA, 0, 0xEAD3, 0, 0, 0xEDC9, 0xDDAB, 0, /* 0x30 */
- 0, 0, 0xE5AC, 0xFDA1, 0, 0xDFD0, 0xECB3, 0, /* 0x30 */
- 0xDFD1, 0, 0, 0, 0, 0, 0xEDED, 0xF8B8, /* 0x40 */
- 0xF7FA, 0, 0, 0, 0xF8AB, 0, 0, 0, /* 0x40 */
- 0, 0, 0xF4E0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xD4BA, 0xE4B3, 0, 0xE9DA, 0, 0xDEB6, 0, 0xD9BF, /* 0x50 */
- 0, 0xD9C0, 0xD6EF, 0, 0, 0, 0, 0xD9CC, /* 0x60 */
- 0, 0xDAAA, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xDFE5, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xF7E5, 0, 0, 0, 0xCCB2, 0, 0, /* 0x70 */
- 0xDFF9, 0xD7E0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xD4BB, 0, 0, 0, 0, 0xFDFA, /* 0xA0 */
- 0, 0, 0, 0, 0xCCB3, 0, 0, 0xDBF3, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xDFD2, 0, 0xCECA, 0, 0xEEDA, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xE4E4, 0, /* 0xC0 */
- 0xFBCF, 0, 0, 0, 0, 0, 0, 0xCFB7, /* 0xD0 */
- 0, 0xEEC3, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xCEEA, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0xE2AD, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0xD7E1, 0xFAF5, 0, 0, 0xD5C9, 0xF8AC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_73[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE7D9, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xF3E9, 0, /* 0x10 */
- 0, 0, 0, 0xD8ED, 0xE3C4, 0xF0F1, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xE8E5, 0, 0, /* 0x20 */
- 0, 0xE0FA, 0xEEC4, 0xD9DE, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0xEBA2, 0xEBA3, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xFCC2, 0xEABB, /* 0x30 */
- 0, 0, 0, 0, 0xE8AB, 0xDEE2, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xEDEF, 0, 0xE8A3, 0, 0, 0, 0, 0xCFF1, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0xD4BC, 0, 0xFCEA, 0, 0, 0, 0, 0, /* 0x60 */
- 0xE7BE, 0, 0xFCF2, 0, 0, 0xD6B4, 0, 0, /* 0x70 */
- 0xE2AE, 0, 0xD3B7, 0xFACC, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xFADC, 0, 0xEDB5, 0xE1E3, /* 0x80 */
- 0, 0xE8AC, 0, 0xE8DD, 0, 0, 0xEFE9, 0, /* 0x80 */
- 0, 0, 0, 0, 0xF4BD, 0, 0xCFB8, 0xE9DB, /* 0x90 */
- 0xD1AC, 0, 0, 0, 0, 0, 0, 0xDAC7, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xEBC9, /* 0xA0 */
- 0, 0xE8CC, 0, 0, 0, 0xDEB7, 0, 0, /* 0xA0 */
- 0, 0, 0xD6BC, 0xD3E5, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xFADD, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xDAD6, 0, 0xCAB1, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xDAC8, 0xDFA6, 0, 0xF9B3, 0xF2D2, 0, 0xCAC4, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xCECB, 0, /* 0xD0 */
- 0, 0xCDF5, 0, 0, 0, 0xFDB0, 0xD5A8, 0, /* 0xD0 */
- 0xF1C1, 0, 0, 0xE2E9, 0xDCCA, 0xECB4, 0xFAC0, 0, /* 0xE0 */
- 0, 0xFBA8, 0xD0A8, 0, 0, 0xDAEC, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0xD9EE, /* 0xF0 */
- 0, 0xE0FB, 0, 0, 0, 0xEFEA, 0xFADE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_74[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE0C4, 0, 0xCFB9, 0, 0xD5CA, 0xD7E2, 0xE2AF, /* 0x00 */
- 0, 0xD7B8, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0xE8CD, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xF6DA, 0, 0, 0, 0, /* 0x10 */
- 0xEFA2, 0xE2DA, 0xF6FC, 0, 0, 0xFBD0, 0xD1AD, 0, /* 0x20 */
- 0xCDE4, 0, 0xD1AE, 0xDCED, 0xE8CE, 0, 0xF0F9, 0xCEB5, /* 0x20 */
- 0xE6FC, 0, 0, 0xD7FB, 0xD0D6, 0xDDF5, 0xF7F1, 0, /* 0x30 */
- 0xF6FD, 0, 0xDBF7, 0, 0, 0, 0, 0xFBEA, /* 0x30 */
- 0xE9DC, 0xD9C1, 0, 0xF5F2, 0xE0C5, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xEAD4, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xF9C2, 0, 0xEABC, /* 0x50 */
- 0, 0xD2C5, 0xFBD1, 0xE7C0, 0xEBA5, 0, 0xDFFA, 0xE3A2, /* 0x50 */
- 0xD7B9, 0, 0xE9C3, 0, 0xE8FD, 0xE8AF, 0, 0, /* 0x60 */
- 0xF2D3, 0xFBA9, 0xD8A5, 0, 0, 0, 0, 0xD5CB, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xD0C8, 0, /* 0x70 */
- 0, 0, 0xD1AF, 0xD7E3, 0, 0, 0, 0xE0C6, /* 0x80 */
- 0, 0xD6A2, 0, 0xEDF0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xD7F3, 0, 0, 0, 0xFCD4, 0, 0xDAD7, 0xCCDF, /* 0x90 */
- 0, 0xF2D4, 0, 0xD1B0, 0, 0xCCE0, 0, 0xDBFD, /* 0xA0 */
- 0xF3BF, 0, 0xF0D1, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xFCBB, 0, 0xE2B0, 0, 0, 0xE6A5, 0, 0, /* 0xB0 */
- 0, 0xE2DB, 0, 0, 0, 0xDFDE, 0, 0xE0C7, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xF2EF, 0, /* 0xC0 */
- 0, 0, 0xCCE1, 0, 0, 0, 0, 0xD6EA, /* 0xC0 */
- 0, 0, 0, 0, 0xE7C2, 0, 0, 0, /* 0xD0 */
- 0xCEB6, 0, 0xF3C0, 0, 0xCDFE, 0, 0, 0, /* 0xD0 */
- 0xFBD2, 0, 0xF8F8, 0xF7FB, 0, 0, 0xE8BF, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xE8B7, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0xEDB6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_75[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDCBA, 0, 0, 0xCCB4, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0xF1F7, 0, 0, 0, 0xE8B8, 0, 0, /* 0x10 */
- 0xCAF6, 0, 0xE4A4, 0xF4D6, 0, 0, 0, 0xDFE6, /* 0x10 */
- 0, 0, 0, 0xDFA7, 0, 0xDFE7, 0xE1C1, 0, /* 0x20 */
- 0xE9C4, 0, 0, 0xDCCB, 0xE9C5, 0, 0, 0, /* 0x20 */
- 0xEFA3, 0xEBA6, 0xCBA3, 0xE3E9, 0, 0, 0, 0xD1FB, /* 0x30 */
- 0xEFA4, 0, 0xEFEB, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0xD0B4, /* 0x40 */
- 0, 0, 0, 0, 0xCDA3, 0, 0, 0xE8E6, /* 0x40 */
- 0, 0xEFA5, 0, 0xD3CC, 0xDAED, 0, 0, 0, /* 0x50 */
- 0, 0xD7BA, 0, 0xF2D5, 0xF5E5, 0xD9EF, 0, 0, /* 0x50 */
- 0, 0, 0xF9B4, 0, 0, 0xD5D4, 0xFDCF, 0, /* 0x60 */
- 0, 0, 0xDBE3, 0, 0, 0, 0, 0xF1E1, /* 0x60 */
- 0xECB6, 0, 0, 0, 0, 0xFBFE, 0xD3D7, 0, /* 0x70 */
- 0xD1B1, 0, 0xCBB1, 0, 0, 0, 0, 0xD1B2, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xCBB2, 0xF1C2, /* 0x80 */
- 0, 0, 0xF4E1, 0xF9B5, 0, 0, 0xE1C3, 0xE1C2, /* 0x80 */
- 0, 0xEBF7, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xDFA8, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xCBCA, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xE6B9, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xF8DE, 0xF9AA, 0xCAF7, 0, 0xEDB7, 0, 0, /* 0xB0 */
- 0xD3B8, 0xF2D6, 0, 0, 0xD4D9, 0xEEC5, 0xF2F0, 0, /* 0xB0 */
- 0, 0, 0xCAB2, 0, 0, 0xDCBB, 0, 0xF1F8, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xECB7, 0, 0, /* 0xC0 */
- 0, 0, 0xE5CA, 0, 0xF6C0, 0xFDDD, 0, 0, /* 0xD0 */
- 0xD4E3, 0xCCE2, 0, 0xF7D4, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xD7E5, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xD3C3, 0, 0xD8A6, 0, 0xF6C1, 0, 0, 0, /* 0xF0 */
- 0, 0, 0xDDF6, 0, 0xCDC0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_76[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE5DC, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0xE5CB, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xE1C4, 0, 0, 0, 0, 0, 0xE8B0, /* 0x10 */
- 0xF4B0, 0xF3EA, 0xDAEE, 0, 0xD7BB, 0, 0xE2B1, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xD7AA, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0xD6FB, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xE4DF, 0, 0xCAD6, 0, /* 0x40 */
- 0, 0, 0xEBA8, 0, 0, 0, 0xDBFE, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xF6C2, 0, 0, 0xEFBB, 0, 0, 0, /* 0x60 */
- 0, 0xD4FD, 0, 0, 0xE0C8, 0, 0, 0, /* 0x60 */
- 0xE8B9, 0, 0xEFA6, 0, 0, 0, 0, 0, /* 0x70 */
- 0xCDA4, 0, 0, 0xD4F4, 0xDBA1, 0xDBDC, 0xDBDD, 0, /* 0x70 */
- 0, 0, 0, 0, 0xEEDC, 0, 0xCBCB, 0xFCD5, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xCEEB, 0, /* 0x80 */
- 0xCDC1, 0, 0, 0xFBD3, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xF9AB, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xF5D4, 0, 0, 0, 0, 0xD9A9, /* 0xB0 */
- 0, 0, 0xE9DD, 0xDBCD, 0, 0, 0xDDCE, 0, /* 0xC0 */
- 0xE7C3, 0, 0xECCC, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xF9EC, 0, 0, 0, 0xCBCC, 0, /* 0xD0 */
- 0, 0, 0, 0xE0FC, 0xD4A8, 0, 0xEDD3, 0xD8EF, /* 0xD0 */
- 0, 0xF2D7, 0, 0xCAF8, 0xDAEF, 0, 0, 0xD6D4, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xD9CD, 0, /* 0xE0 */
- 0, 0, 0xD8EE, 0, 0xF2C1, 0, 0, 0, /* 0xF0 */
- 0xDFD3, 0, 0, 0, 0xDAF0, 0, 0xE2EA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_77[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE0FD, 0, 0, 0xD8F8, 0, 0, 0, /* 0x00 */
- 0xF7AF, 0xDAB6, 0, 0xCAD7, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xF2D8, 0, /* 0x10 */
- 0xD8F9, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xFADF, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0xCFEF, /* 0x30 */
- 0xD9C2, 0, 0xF0D2, 0, 0xE4D1, 0, 0, 0, /* 0x30 */
- 0xF3B7, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xFAE0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0xEFEC, 0, 0, 0, 0, /* 0x50 */
- 0, 0xE2B2, 0, 0xD4BD, 0, 0, 0xD9CE, 0, /* 0x60 */
- 0, 0, 0, 0xF4E2, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD4A9, 0, 0, 0, 0, 0xCDC2, 0xE7DA, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xF2D9, 0, 0, 0, 0, /* 0x80 */
- 0, 0xD9AA, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0xD8BE, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xDCAD, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xE2EB, 0xD6FC, 0, 0, /* 0xA0 */
- 0xCAF9, 0, 0, 0xD4DA, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xF4D7, 0xCCA1, 0, 0, 0xCFBA, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xF5B8, /* 0xD0 */
- 0, 0, 0, 0xD9C3, 0xD0E8, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xE3C5, 0xEBF8, 0, 0xF2B1, 0, 0, /* 0xE0 */
- 0, 0xCFBB, 0, 0, 0, 0xD3AD, 0xE8E1, 0xCEEC, /* 0xE0 */
- 0, 0, 0, 0xE0B4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_78[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDEE3, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xDDF7, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xF2B2, 0xF3F6, 0xF6DB, /* 0x20 */
- 0, 0, 0, 0, 0xD7FE, 0, 0, 0, /* 0x20 */
- 0, 0, 0xF8DF, 0, 0xF7F2, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xD0A9, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0xE6DA, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xF5A6, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xD7BC, 0xCCE3, 0, 0, 0xE6DB, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xDDDD, 0, 0, 0, /* 0x70 */
- 0, 0xD1B3, 0, 0, 0, 0, 0, 0xEFED, /* 0x80 */
- 0, 0, 0, 0, 0xD6DE, 0xE4F4, 0xE1EF, 0, /* 0x80 */
- 0, 0xDDF8, 0, 0, 0, 0, 0, 0xE8CF, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xCAE5, 0, 0, 0, 0xDCA1, /* 0xA0 */
- 0, 0xE0B5, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xFCAC, 0xFCAD, 0xD8A7, 0, 0, 0, /* 0xB0 */
- 0, 0xEDB8, 0, 0, 0, 0xDBB6, 0, 0, /* 0xC0 */
- 0, 0, 0xD6F0, 0xF3AF, 0, 0, 0xCDA5, 0, /* 0xC0 */
- 0xDAF1, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xD8A8, 0, 0, 0, 0xCCE4, 0, 0, 0xD1B4, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xCAD8, 0, 0, /* 0xF0 */
- 0, 0, 0, 0xDAF2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_79[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF5A7, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xF5A8, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xE6A6, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xD5EC, 0xD5F8, 0xDAF3, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0xE3C6, 0, 0, 0, 0xDEE4, 0, /* 0x30 */
- 0xDEE5, 0xD1B5, 0, 0, 0, 0, 0, 0xD1B6, /* 0x40 */
- 0xD1B7, 0xF2B3, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xE9DE, 0, 0, 0, 0, 0, 0xF0D3, 0xF2B4, /* 0x50 */
- 0, 0, 0xF0D4, 0xCBE4, 0xFBD4, 0xF5E6, 0xE3EA, 0, /* 0x50 */
- 0xDEE6, 0, 0, 0, 0, 0xDFD4, 0, 0, /* 0x60 */
- 0xF8F9, 0, 0, 0, 0, 0xF0AE, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xD1B8, 0, 0, 0, 0, 0xD6DF, /* 0x70 */
- 0, 0xD0D7, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xFCA1, 0xEFEE, 0xDCD8, /* 0x80 */
- 0, 0xE9DF, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0xE5DD, 0xFDFB, /* 0xA0 */
- 0, 0, 0xE0C9, 0, 0, 0, 0xD6C9, 0, /* 0xA0 */
- 0, 0xD4AA, 0, 0xE5CC, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xE9E0, 0, 0, 0, 0xD0D8, 0xFCA2, 0xD4BE, /* 0xB0 */
- 0xE2B3, 0xDEE7, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xDCBC, 0xD2B6, 0xF5D5, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xCEA1, 0xF5A9, 0, 0, 0xDDF9, 0, 0, /* 0xD0 */
- 0xDDFA, 0, 0, 0, 0, 0, 0, 0xF0D5, /* 0xD0 */
- 0, 0, 0, 0, 0xF6DF, 0, 0xF2DA, 0xE4EB, /* 0xE0 */
- 0, 0xF2F1, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0xECB9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_7A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFDFC, 0, 0, 0, 0, 0xE1AA, 0, 0, /* 0x00 */
- 0xCAD9, 0, 0, 0xEFEF, 0, 0xF5AA, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0xECF9, 0, 0, 0xF8AD, /* 0x10 */
- 0, 0xF2C2, 0xF6C3, 0, 0xD7D2, 0, 0, 0xF9A2, /* 0x10 */
- 0xF0D6, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0xF0FA, 0, /* 0x20 */
- 0, 0xF6E0, 0, 0, 0, 0, 0xE9F3, 0xF2C3, /* 0x30 */
- 0, 0, 0, 0xD4AB, 0xCAB3, 0xCDA6, 0, 0xCDC3, /* 0x30 */
- 0xCDDA, 0, 0, 0, 0, 0, 0xD9CF, 0, /* 0x40 */
- 0, 0xF6C4, 0, 0, 0, 0xEEDD, 0xE7C4, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0xE2B4, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xDFE2, 0xE7DB, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xE8B1, 0, 0xFCAE, 0, 0, 0, 0, /* 0x60 */
- 0xE5CD, 0, 0, 0, 0xFAEB, 0, 0xCFBC, 0, /* 0x70 */
- 0, 0xCFE2, 0xCDF6, 0, 0, 0xEFF0, 0, 0xF4BE, /* 0x70 */
- 0, 0xD4CD, 0, 0, 0xF3B8, 0, 0, 0, /* 0x80 */
- 0xE9A1, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xF2F2, 0xF3EB, 0, 0xF0D7, 0, 0, /* 0x90 */
- 0xCFD7, 0, 0, 0, 0, 0, 0, 0xCFDF, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xE8C0, 0xE8C1, 0, 0, 0, 0xCFE3, 0xE9A2, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xD0AA, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xF3C1, 0xD0AB, 0, 0xD4E4, /* 0xC0 */
- 0, 0, 0xEFBC, 0xD8A1, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xD9DF, /* 0xD0 */
- 0, 0xF3D7, 0, 0, 0, 0xDCBD, 0, 0xCCE5, /* 0xD0 */
- 0xEDF1, 0, 0, 0xF1E2, 0, 0xD4DB, 0, 0, /* 0xE0 */
- 0, 0, 0xE2B5, 0, 0, 0xCAE6, 0, 0xD3AE, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xCCE6, 0, /* 0xF0 */
- 0, 0xF1D3, 0xF5E7, 0, 0, 0, 0, 0xCADA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_7B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFBEE, /* 0x00 */
- 0, 0xE1C5, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xDFE9, 0, 0xEEDE, 0, 0, 0xF7C2, 0, /* 0x10 */
- 0xD8A2, 0, 0, 0, 0, 0, 0xDDAC, 0, /* 0x20 */
- 0, 0, 0, 0, 0xF0AF, 0xD6BD, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xE1AB, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xF9B6, 0, /* 0x40 */
- 0, 0xD4F5, 0, 0xD0C9, 0xEFA7, 0xE2EC, 0, 0xDBEA, /* 0x40 */
- 0xCECC, 0xF5E8, 0xF7D5, 0, 0xD3CD, 0, 0xF3FE, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xD0B5, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xE0FE, 0, 0xDFFB, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xE6DD, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xE8A4, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xCBCD, /* 0x80 */
- 0, 0, 0, 0xEFA8, 0, 0, 0, 0xEEB4, /* 0x80 */
- 0, 0, 0, 0, 0xDAD8, 0xD1B9, 0, 0xDFA9, /* 0x90 */
- 0, 0, 0xF3B0, 0, 0, 0xCCC4, 0, 0, /* 0x90 */
- 0, 0xCEB7, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0xEFA9, 0, 0, /* 0xA0 */
- 0, 0xDFD5, 0, 0, 0xEDD7, 0, 0, 0, /* 0xB0 */
- 0xEEC6, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xEFBD, 0xFCD6, 0, 0, 0xDBF4, 0, 0xEFAA, 0xF8B9, /* 0xC0 */
- 0, 0xF5E9, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xE3D9, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xE1C6, 0, 0, 0, 0xD4BF, 0, 0, 0, /* 0xE0 */
- 0, 0xDEE8 /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_7C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF0EA, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xF3C2, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xD3AF, 0, /* 0x10 */
- 0, 0xCADB, 0, 0, 0, 0, 0, 0xFCD7, /* 0x20 */
- 0, 0, 0xEDD8, 0xE1C7, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xF4D8, 0xD6B3, 0xDDAD, /* 0x30 */
- 0, 0, 0, 0xD5BE, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xF1C3, 0xEEDF, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xD6EB, 0, 0, 0, 0xF4D9, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xD7E6, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xDAB7, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0xDDFB, 0, 0, 0, 0, /* 0x80 */
- 0, 0xDDCF, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xD8A3, 0, 0, 0xDAD9, 0, 0xF0D8, /* 0x90 */
- 0xEFC4, 0, 0, 0, 0, 0, 0, 0xE1D8, /* 0x90 */
- 0, 0, 0, 0, 0, 0xF1D4, 0, 0xEDF2, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xD5DB, 0, /* 0xA0 */
- 0, 0xD5DC, 0xF3C4, 0xCBD7, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xE2B6, 0, 0, 0, 0, 0xEFF1, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xFBD5, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xD3D8, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xDDD0, 0xF0D9, /* 0xD0 */
- 0xCBB3, 0, 0, 0, 0, 0, 0, 0xD5DD, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0xCDA7, 0, 0, 0xD0AC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_7D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD1BA, 0, 0xF1C4, 0, 0xE5B3, 0xFBF5, 0xE9E1, 0xFDE0, /* 0x00 */
- 0xFCBC, 0, 0xDAA2, 0xDAA3, 0, 0xD2A1, 0, 0, /* 0x00 */
- 0xD2EF, 0, 0, 0, 0xE2ED, 0, 0, 0xDEE9, /* 0x10 */
- 0xCEDC, 0xF2B5, 0xD0E4, 0xDDD1, 0, 0, 0, 0, /* 0x10 */
- 0xE1C8, 0xDBB7, 0xDFE3, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xEDB9, 0xF1C5, 0, 0xF3CF, 0xD7AB, /* 0x20 */
- 0xE1AC, 0, 0, 0xE3EB, 0, 0xEEC7, 0, 0, /* 0x30 */
- 0, 0xE1C9, 0xCAFA, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0xF0FB, 0xFAE1, 0xF0DA, 0xCCE7, 0xDAF4, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xCCBF, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xCEED, 0, /* 0x50 */
- 0, 0xD5A9, 0xFAE2, 0, 0, 0, 0xD0E5, 0, /* 0x60 */
- 0xEBD6, 0, 0xECDF, 0, 0, 0, 0xDFFC, 0, /* 0x60 */
- 0, 0xF7D6, 0xDEEA, 0xCBB4, 0, 0, 0xEFBE, 0, /* 0x70 */
- 0, 0xCCB5, 0, 0, 0, 0, 0, 0xCFBD, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xEFF2, 0xE2B7, /* 0x80 */
- 0, 0, 0, 0xCCE8, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xF0FC, 0, 0, 0, /* 0x90 */
- 0xD6E0, 0, 0xF1C6, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xE2B8, 0xEBAB, 0, 0, /* 0xA0 */
- 0, 0xCBB5, 0xD8D1, 0, 0xF4CE, 0xF3F7, 0, 0, /* 0xB0 */
- 0xD7C6, 0, 0xD1BB, 0xF7AA, 0, 0xEDCA, 0xD7D3, 0xD8FA, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xF6C5, /* 0xC0 */
- 0, 0, 0xD1CC, 0xDDFC, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xDFFD, 0, /* 0xD0 */
- 0xF9E5, 0, 0xE0CA, 0, 0, 0xF2FD, 0xD3B0, 0, /* 0xD0 */
- 0xF4F3, 0xDAC9, 0, 0xE6DE, 0, 0, 0, 0, /* 0xE0 */
- 0xF8BA, 0xE8D0, 0, 0, 0xD8FB, 0, 0, 0xEAD5, /* 0xE0 */
- 0, 0, 0, 0, 0xD6A3, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0xF6C6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_7E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF2DB, 0xE4FC, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0xE8B2, 0, 0, /* 0x10 */
- 0, 0, 0, 0xDADA, 0, 0xF2DC, 0xFBD6, 0xE9B2, /* 0x10 */
- 0, 0xEEAD, 0, 0xFAE3, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xDCEE, 0, 0, 0xF5EA, 0xE6E0, /* 0x20 */
- 0, 0xF0FD, 0, 0, 0, 0, 0, 0xD7AC, /* 0x30 */
- 0, 0, 0, 0, 0, 0xF5C5, 0xEEE0, 0, /* 0x30 */
- 0, 0xDBE5, 0, 0xDDDE, 0, 0, 0xD9F0, 0xE9A3, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xF1F9, 0, 0xF2C4, 0xE0CB, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xE9A4, 0, /* 0x50 */
- 0, 0xE2B9, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xE3B1, 0xFCEB, 0xCDA8, 0, 0xCCB6, 0, 0, /* 0x60 */
- 0xF0DB, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xE6BA, 0, 0, 0xCDA9, 0, 0, 0, /* 0x70 */
- 0, 0, 0xF3C3, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0xE1D9, 0, 0, 0xEFAB, /* 0x80 */
- 0, 0, 0, 0xE7C5, 0, 0, 0xE0E9, 0, /* 0x90 */
- 0xF3C5, 0, 0, 0xD4C0, 0xD5BF /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_7F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDDAE, 0, /* 0x30 */
- 0xF9FC, 0, 0xCCC0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xE5A2, 0, 0, 0, /* 0x40 */
- 0xCEB8, 0, 0, 0, 0xD8D2, 0xF9D6, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xF1AA, 0xCED1, 0, 0, 0xF6C7, 0, /* 0x60 */
- 0xDBEB, 0, 0xDFFE, 0, 0, 0xD8E1, 0, 0xF7F3, /* 0x70 */
- 0, 0xD7E7, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xD4FE, 0, 0, /* 0x80 */
- 0xD1BC, 0, 0xE5CF, 0, 0xCBB6, 0, 0xDAB8, 0, /* 0x80 */
- 0, 0, 0, 0, 0xCDC4, 0, 0, 0, /* 0x90 */
- 0, 0, 0xD6BE, 0, 0, 0, 0xE2BA, 0, /* 0x90 */
- 0, 0, 0, 0, 0xCFD8, 0, 0, 0, /* 0xA0 */
- 0xE0CC, 0xEBF9, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xFDFD, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xD7E8, 0xCBD8, 0, 0, 0, 0xE9E2, 0, 0, /* 0xB0 */
- 0, 0xE8BA, 0, 0, 0, 0xE3C7, 0, 0, /* 0xC0 */
- 0, 0, 0xECCD, 0, 0xECCE, 0, 0xD6BF, 0, /* 0xC0 */
- 0, 0, 0xE3A7, 0, 0xDFD6, 0xFDE8, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0xEEE1, /* 0xD0 */
- 0xF6A8, 0xDDFD, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0xF8BB, 0, 0xE8D1, 0, 0, 0, 0, /* 0xE0 */
- 0xF9D7, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xCEEE, 0, 0, 0xECCF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_80[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE9A5, 0xD6D5, 0, 0xCDC5, 0, 0xEDBA, 0xD1BD, 0, /* 0x00 */
- 0, 0xCFBE, 0, 0, 0xECBB, 0, 0, 0, /* 0x00 */
- 0xD2B1, 0, 0, 0, 0, 0xCCE9, 0, 0xD9C4, /* 0x10 */
- 0xE9FC, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xD1BE, 0, 0, /* 0x20 */
- 0, 0, 0, 0xECBC, 0, 0, 0xE5AD, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xF7B0, 0, 0xCCEA, /* 0x30 */
- 0, 0, 0, 0xD3C4, 0, 0, 0xD6C0, 0, /* 0x40 */
- 0, 0, 0xD6FD, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0xE1A1, 0, /* 0x50 */
- 0xDEBD, 0, 0xF6A9, 0, 0, 0, 0xDAA4, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0xD6A4, /* 0x60 */
- 0xF5C6, 0, 0xE1A2, 0xE9C6, 0, 0, 0, 0xF2C5, /* 0x70 */
- 0, 0, 0, 0, 0, 0xF4E9, 0xD6EC, 0xEBD3, /* 0x70 */
- 0, 0, 0, 0, 0xECBD, 0xE2DC, 0xDEEB, 0xF0DC, /* 0x80 */
- 0, 0xEBBF, 0, 0xD7CE, 0xD1BF, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xF5AB, 0, /* 0x90 */
- 0, 0, 0, 0xF9FD, 0, 0xCADC, 0, 0, /* 0x90 */
- 0, 0xCDC6, 0xF2B6, 0, 0, 0xDDFE, 0, 0, /* 0xA0 */
- 0, 0xCCB7, 0xDBB8, 0, 0, 0, 0, 0xD0E9, /* 0xA0 */
- 0, 0xCEDD, 0xEBC0, 0, 0xFDA2, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xF8CB, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xEAD6, 0xF1B0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xDBCE, 0, 0xF7C3, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xDBCF, 0xCBA4, 0, 0, 0xF8E0, 0, /* 0xD0 */
- 0, 0xFBD7, 0, 0, 0xEBCA, 0xE0A1, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0xCECD, 0, 0, 0xD4DC, 0, 0, 0, /* 0xF0 */
- 0xFDD8, 0, 0, 0, 0, 0xD2F6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_81[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF2B7, 0, 0, 0xFAF6, 0xF6AA, 0xFAF7, /* 0x00 */
- 0xD8E6, 0, 0xF4B1, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xE8D2, 0, 0xCAC5, 0xCCEB, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xE2EE, 0, 0, 0, 0, /* 0x20 */
- 0, 0xE2BB, 0, 0xF7AD, 0, 0, 0, 0xF8E1, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xF3EC, 0, 0, 0, 0, 0xDEA1, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xE4FD, 0, 0, 0xE3EC, 0, /* 0x40 */
- 0xDDAF, 0xDDB0, 0, 0, 0xCBB7, 0xE8D3, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xE1A3, 0xD2E0, 0, /* 0x60 */
- 0, 0, 0, 0xF0FE, 0, 0, 0, 0, /* 0x60 */
- 0xE9A6, 0xCBF2, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xEDF3, 0xDCD9, 0xE0CD, 0, 0, 0, 0, 0xF7DA, /* 0x70 */
- 0xDBB9, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xCCAE, 0, 0xDADB, 0, 0, 0, 0, 0xCDC7, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xDDB1, 0, 0xD8AF, 0xE3A3, 0, 0, /* 0x90 */
- 0xCEEF, 0, 0, 0xF2F3, 0, 0, 0, 0, /* 0xA0 */
- 0xF8B3, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xE0CE, 0, 0xF5FD, 0, 0, /* 0xB0 */
- 0, 0, 0xEBEC, 0, 0, 0xD3C5, 0xFCEC, 0xD2DB, /* 0xB0 */
- 0xD4EB, 0, 0xDEA2, 0, 0, 0, 0xE5E6, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xF0B0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xD5C4, 0, 0, 0, 0, 0, 0, 0xEDF4, /* 0xD0 */
- 0, 0, 0, 0xE3ED, 0, 0xE8C2, 0, 0xEDF5, /* 0xE0 */
- 0xD7FC, 0, 0xEDBB, 0, 0, 0xF6AB, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xF2B8, 0xF6C8, 0, 0, 0, /* 0xF0 */
- 0, 0, 0xD3E6, 0xF2DD, 0xCFBF, 0, 0xEBAC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_82[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCFC0, 0, 0xE6A8, /* 0x00 */
- 0xFDE9, 0, 0xCFC1, 0, 0xE0DF, 0xDEEC, 0, 0, /* 0x00 */
- 0, 0, 0xE0A2, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xF4BF, 0xE2EF, 0, 0xD9F1, 0xF1C7, /* 0x10 */
- 0, 0xCBB8, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xF9FE, 0xDBBA, 0xDAF5, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xF6EC, 0xDADC, 0xFAE4, /* 0x30 */
- 0, 0xE0CF, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xDDB2, 0, 0, 0, 0, 0xE6A9, 0, 0xEFF3, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xF3ED, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0xEBFA, 0, 0xF9E6, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0xCADD, 0xD5DE, /* 0x60 */
- 0, 0xCADE, 0xDFE4, 0, 0, 0, 0xE6FD, 0, /* 0x70 */
- 0xF5AC, 0, 0, 0, 0, 0, 0xE4F5, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xE9E3, 0, 0xEDCB, 0xCFE4, 0, /* 0x80 */
- 0, 0, 0xD8D3, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xDDB3, 0xD4EC, 0, 0, 0xF2B9, 0, 0xDFB7, /* 0x90 */
- 0, 0, 0, 0, 0, 0xCBCE, 0xFBD8, 0, /* 0xA0 */
- 0, 0xD0D9, 0, 0, 0xDDD2, 0xF7F4, 0xE7DC, 0xE4A5, /* 0xA0 */
- 0, 0xFCA3, 0, 0xDBBB, 0, 0, 0, 0xF2BA, /* 0xB0 */
- 0xE9FD, 0xD0CA, 0, 0xF5D6, 0xD9C5, 0xE4B4, 0, 0xEDA7, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xEABD, 0xE6FE, 0, 0xF7C4, 0xF5AD, 0, 0xD9E0, /* 0xD0 */
- 0, 0, 0, 0xCAB4, 0, 0, 0xF8E2, 0xCFC2, /* 0xD0 */
- 0, 0xECBE, 0, 0, 0, 0xE5B4, 0xCDC8, 0xEEC8, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0xE7C8, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0xCDC9, 0xF9B7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_83[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF1E8, 0xD9F2, 0xDBF5, 0xCAB5, 0xD9C6, 0, 0, /* 0x00 */
- 0, 0xD8C9, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0xD9AB, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xEDBC, 0, 0, 0xD8D4, 0, 0, 0, 0xDCDA, /* 0x20 */
- 0, 0xE2BC, 0, 0, 0xFCED, 0xECE0, 0xD2FE, 0, /* 0x30 */
- 0xE9C7, 0xE6AA, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xE2F0, 0, 0, 0, 0, 0, 0, 0xFABB, /* 0x40 */
- 0, 0xF5AE, 0xFBAA, 0, 0, 0, 0, 0xECFB, /* 0x40 */
- 0, 0xECBF, 0xFCD8, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xD4E5, 0, 0, 0, 0xF9C3, /* 0x70 */
- 0, 0, 0, 0xEEE2, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xD7E9, 0xEDF6, 0, 0, 0, 0xDEED, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xCCEC, 0, /* 0x90 */
- 0xE3EE, 0, 0, 0, 0, 0, 0xE8D4, 0, /* 0x90 */
- 0, 0, 0xFAF8, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xDDB4, 0xE4B5, 0xD8B0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xD8D5, 0, 0, /* 0xB0 */
- 0, 0xF4EA, 0, 0, 0, 0xCEB9, 0, 0, /* 0xC0 */
- 0, 0xD6E1, 0xCFD2, 0, 0xD0B6, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xCEA2, 0, 0, 0xF3EE, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xF3F8, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0xDCCC, 0, 0xD0CB, 0, 0, 0, 0xFCA4, /* 0xE0 */
- 0xCDCA, 0xD7D4, 0xDEA3, 0, 0xE4E0, 0, 0, 0, /* 0xF0 */
- 0, 0xEEC9, 0, 0, 0, 0xE2DD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_84[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF5FE, 0xD4AC, 0, 0, 0, /* 0x00 */
- 0, 0, 0xD5D1, 0, 0xD8F0, 0xF8C3, 0xEAD7, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xF5D7, 0, 0, 0xD8BF, 0, 0, 0, /* 0x20 */
- 0, 0xFDC0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xEBAD, 0, 0, 0, 0, 0xD5AA, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xE7A8, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0xEECA, /* 0x50 */
- 0, 0, 0, 0xCAE7, 0, 0, 0, 0, /* 0x50 */
- 0, 0xF8E3, 0, 0xD4DD, 0, 0, 0xEAD8, 0, /* 0x60 */
- 0, 0, 0, 0xFBD9, 0xEDF7, 0, 0, 0xE5B5, /* 0x60 */
- 0, 0, 0, 0, 0, 0xD0AD, 0, 0, /* 0x70 */
- 0, 0, 0xF1F1, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xE2BD, 0, 0, 0, 0xE3C8, 0, 0, 0, /* 0x90 */
- 0, 0xD9D5, 0, 0, 0xDFAA, 0, 0, 0, /* 0x90 */
- 0, 0xDBBC, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xF8E4, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xF1FA, 0, 0, 0xE5B6, 0xF3EF, 0, 0, 0xFBDA, /* 0xB0 */
- 0xE1E0, 0, 0xD9AC, 0, 0xF5EB, 0, 0xE0B6, 0, /* 0xC0 */
- 0, 0xE9C8, 0, 0xCBCF, 0, 0xE3C9, 0, 0, /* 0xC0 */
- 0, 0xDEEE, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xE2BE, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xDCEF, 0, 0xD6A5, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xE2F1, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0xD6FE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_85[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD9A1, 0, 0xD8C0, 0xDCDB, 0, 0, 0xEDBD, /* 0x10 */
- 0xDFB8, 0, 0xEAA5, 0, 0, 0, 0xD7AD, 0, /* 0x10 */
- 0, 0xF3F9, 0, 0xEDF8, 0, 0xF5C7, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xE1CA, 0xEBE3, 0, 0xF2DE, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xF8CC, 0, 0xEAD9, /* 0x30 */
- 0, 0xD3C6, 0, 0xDBE6, 0, 0, 0, 0, /* 0x40 */
- 0, 0xF5AF, 0, 0, 0, 0, 0xCEF0, 0, /* 0x40 */
- 0, 0, 0, 0xE9FE, 0, 0, 0, 0, /* 0x50 */
- 0, 0xFBB6, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0xE2F2, 0, 0, 0, 0, /* 0x60 */
- 0xCFF2, 0xF7B9, 0xD9F3, 0, 0, 0xE1CB, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xDADD, 0, 0, 0xDAB9, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0xEBFB, /* 0x80 */
- 0, 0xCBB9, 0, 0, 0xEDF9, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xE0E0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0xF4C0, 0, /* 0xA0 */
- 0xFDBC, 0xDFB1, 0xE3EF, 0, 0, 0, 0, 0xE0A3, /* 0xA0 */
- 0xFDB9, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xF0B1, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xCDCB, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xEDBE, 0, 0, 0, 0xD5C0, 0xE3F0, 0xEDFA, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xE9E4, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xD5ED, 0xE7DD, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xD4F6, 0xE5B7, 0, 0, /* 0xE0 */
- 0, 0xDBE7, 0xE2BF, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0xEECB, /* 0xF0 */
- 0, 0, 0xD7F4, 0xF0DD, 0, 0, 0, 0xCEAB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_86[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE7DE, 0, 0, 0, 0xD6D6, 0xE1CC, /* 0x00 */
- 0, 0, 0xE8B3, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xE5EE, 0xDCA2, /* 0x10 */
- 0, 0, 0xE0D0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xD5B5, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0xD5A1, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0xFBDB, 0, /* 0x40 */
- 0xF9CB, 0, 0, 0, 0xCBF3, 0xF4A5, 0, 0, /* 0x50 */
- 0, 0, 0, 0xFAC8, 0xD6D7, 0, 0xE9E5, 0xFBDC, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xFDD0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xFBF6, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xDAA5, 0, 0xDBBD, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xECE2, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xCDF7, 0xF0DE, 0, 0, 0, /* 0xA0 */
- 0, 0xF6C9, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xDEEF, /* 0xC0 */
- 0, 0, 0, 0xD3B1, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xFCEE, 0, 0, 0, /* 0xD0 */
- 0, 0xE8C3, 0, 0xF1C8, 0, 0, 0, 0xCEF1, /* 0xD0 */
- 0, 0, 0, 0, 0xF9ED, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xF2F4, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0xE4B6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_87[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF5B9, 0, 0xDCF0, 0xE3F1, 0, 0, 0, 0, /* 0x00 */
- 0xE8A5, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xF2BB, 0, 0xDEA4, 0, 0xDACC, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0xCAE9, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xE3DA, 0, 0xFCD9, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xEADA, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xF9C4, 0, /* 0x60 */
- 0xE3A4, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xFBDD, 0, 0xEFCA, 0, /* 0x70 */
- 0xE8C4, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xD5CC, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xEBD7, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xD9AD, /* 0x90 */
- 0, 0, 0xFBAB, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xD3D9, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xD5A2, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xF6DE, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xDAF6, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xE0D1, 0, 0, 0xE9A8, /* 0xE0 */
- 0, 0, 0xF5F9, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xFAAF, 0, 0xEBFC, 0, 0, 0xE0EA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_88[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE3B2, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xD5C5, /* 0x10 */
- 0, 0, 0xF1E3, 0xD5EE, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xCDCC, 0, 0, 0, 0, 0xEDD9, 0, /* 0x30 */
- 0, 0, 0, 0xD8C1, 0, 0, 0, 0, /* 0x30 */
- 0xFAEC, 0, 0, 0, 0, 0, 0xF1EB, 0, /* 0x40 */
- 0, 0, 0, 0, 0xFABC, 0xE6E2, 0, 0, /* 0x40 */
- 0, 0, 0xFAE5, 0xE2FA, 0, 0, 0, 0xCAB6, /* 0x50 */
- 0, 0xE4B7, 0, 0xEADB, 0, 0xF5FA, 0, 0, /* 0x50 */
- 0, 0xFBAC, 0xCFC3, 0xEBFD, 0, 0, 0, 0, /* 0x60 */
- 0xF8FA, 0, 0, 0xDFB9, 0, 0, 0, 0, /* 0x60 */
- 0xE1F1, 0, 0xD2A4, 0, 0, 0, 0, 0xF5FB, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xD0DA, 0xD0DB, /* 0x70 */
- 0, 0xEABE, 0xD9B1, 0, 0, 0, 0, 0, /* 0x80 */
- 0xCAB7, 0, 0, 0xD3E7, 0, 0xF8E5, 0, 0, /* 0x80 */
- 0, 0, 0xD3B2, 0, 0, 0, 0xE2C0, 0xF2DF, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0xCDE5, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xF9AC, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xCDCD, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xEEAE, 0xD6AE, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xD7EA, /* 0xC0 */
- 0, 0, 0, 0, 0xE7E0, 0xEBAE, 0, 0, /* 0xD0 */
- 0, 0xCFD9, 0, 0, 0xDCCD, 0xEDFB, 0, 0xDEF0, /* 0xD0 */
- 0, 0xD7EB, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xDEA5, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xDFD7, 0xDBD0, 0xDBD1, 0, 0, /* 0xF0 */
- 0xD5A3, 0, 0, 0, 0, 0xF0B2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_89[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDCDC, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0xCAE8, 0, 0xF8E6, 0xDCCE, 0, 0, 0, 0, /* 0x10 */
- 0xEADC, 0xDBD2, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xE9B3, 0, 0, /* 0x20 */
- 0, 0, 0xF7DB, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0xE3A8, 0, /* 0x30 */
- 0xD7AE, 0, 0, 0xE0E1, 0, 0, 0, 0, /* 0x30 */
- 0, 0xCBBA, 0, 0, 0xE5D1, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xD0DC, /* 0x50 */
- 0, 0, 0, 0, 0xD5C1, 0, 0, 0, /* 0x60 */
- 0, 0, 0xD8CA, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xE3A9, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xE0A4, /* 0x70 */
- 0, 0xE9A9, 0, 0xD3C7, 0, 0, 0xDCDD, 0xF8AE, /* 0x80 */
- 0, 0, 0, 0xCCB8, 0, 0, 0, 0xD0AE, /* 0x80 */
- 0, 0, 0, 0xD8F2, 0, 0, 0xE3CA, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xCCAF, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xD4AD, 0xF6D1, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xD0CC, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xCAC6, 0, 0, 0xD5C2, 0, 0, /* 0xB0 */
- 0xCEBA, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xCAC7, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xFAB0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xDFD8, 0, 0, 0, /* 0xF0 */
- 0xF5BA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_8A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE5EB, 0, 0xEFF4, 0xDDB5, 0, 0, 0, 0, /* 0x00 */
- 0xCDAA, 0, 0xE3F2, 0, 0xFBF7, 0, 0xF7D0, 0, /* 0x00 */
- 0, 0, 0, 0xFDBA, 0, 0, 0xFDE1, 0xF6FE, /* 0x10 */
- 0xD1C0, 0, 0, 0xE8C5, 0, 0xE4B8, 0, 0xE1E8, /* 0x10 */
- 0, 0, 0, 0xCCC1, 0, 0xD2ED, 0, 0, /* 0x20 */
- 0, 0, 0xDBBE, 0, 0, 0xE0E2, 0, 0, /* 0x20 */
- 0, 0xFAC9, 0, 0, 0xE1CD, 0, 0xCAB8, 0, /* 0x30 */
- 0, 0, 0xF2E0, 0xF1C9, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xDEF1, 0, 0, 0, 0xF0DF, 0xF8C4, 0, 0, /* 0x50 */
- 0, 0, 0, 0xEECC, 0, 0, 0xDEF2, 0, /* 0x50 */
- 0xE7C9, 0, 0xE2F3, 0xE7E1, 0, 0, 0xE3CB, 0, /* 0x60 */
- 0, 0xE3CC, 0, 0, 0, 0xCFF8, 0xEFAC, 0, /* 0x60 */
- 0xFDFE, 0xFCA5, 0xFAB1, 0xDFD9, 0, 0xE0D2, 0, 0, /* 0x70 */
- 0, 0xF4DA, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xF1CA, 0, 0xCEA3, /* 0x80 */
- 0, 0, 0, 0, 0xF2BC, 0xECE3, 0, 0, /* 0x80 */
- 0, 0, 0, 0xE0A5, 0, 0xF7AB, 0, 0, /* 0x90 */
- 0xEBAF, 0, 0, 0, 0, 0, 0xE5DE, 0, /* 0x90 */
- 0xE1A4, 0xCDAB, 0, 0xD9F4, 0xE8A6, 0xCDCE, 0xE1E9, 0, /* 0xA0 */
- 0xFCEF, 0, 0xE0E3, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xE2C1, 0, 0xCEA4, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xDEA6, 0, 0, 0xEBFE, 0, 0xEBDD, 0xF0E0, /* 0xB0 */
- 0, 0, 0xF4DB, 0, 0xE2F4, 0, 0, 0xD3C8, /* 0xC0 */
- 0, 0, 0, 0xF4EB, 0, 0xEEB5, 0, 0xF5D8, /* 0xC0 */
- 0, 0, 0xD5DF, 0, 0, 0, 0xD6E5, 0, /* 0xD0 */
- 0, 0, 0, 0xEBB0, 0xF4E3, 0, 0, 0, /* 0xD0 */
- 0, 0xE3CD, 0, 0, 0, 0, 0xF4F4, 0xFAB2, /* 0xE0 */
- 0, 0, 0xEFF5, 0xCADF, 0, 0xEBB1, 0xEDBF, 0, /* 0xE0 */
- 0, 0xFDC9, 0, 0, 0, 0, 0xE4A6, 0xF9A4, /* 0xF0 */
- 0xF0B3, 0, 0xE5EC, 0, 0, 0, 0xD1E7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_8B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD9C7, 0xE4D7, 0xEADD, 0, 0xD4F7, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xDABA, 0, /* 0x00 */
- 0xDACD, 0, 0, 0, 0xF9CC, 0, 0xE1DA, 0xDBBF, /* 0x10 */
- 0, 0xCCC5, 0xECD0, 0xCBBB, 0, 0xDEF3, 0, 0, /* 0x10 */
- 0xE9AA, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xD9C8, 0, 0, 0xEEE3, 0xD7BD, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xCFC4, 0, 0, 0, 0, /* 0x30 */
- 0, 0xD0CD, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xFCA6, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xF1FB, 0, 0, 0, 0, 0xFDD2, 0xD1C1, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xE3DB, 0, 0xD3C9, 0, 0xDCCF, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xCCED, 0, /* 0x60 */
- 0, 0, 0, 0, 0xDEA7, 0, 0, 0xE6BB, /* 0x60 */
- 0xECA1, 0, 0, 0, 0xCCB9, 0, 0, 0xFBDE, /* 0x70 */
- 0, 0, 0, 0, 0, 0xE7E2, 0, 0, /* 0x70 */
- 0xD4C1, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xDCA8, 0, 0, 0, 0, 0, /* 0x80 */
- 0xE2C2, 0, 0xF3D8, 0xE5D3, 0, 0, 0xF3D9, 0, /* 0x90 */
- 0, 0, 0xF3C6 /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_8C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCDDB, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0xCDAC, /* 0x30 */
- 0, 0xFCC3, 0, 0, 0, 0, 0xD4E7, 0, /* 0x40 */
- 0xD1C2, 0, 0xF9A5, 0, 0xE8D5, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xE3CE, 0, 0, /* 0x50 */
- 0, 0, 0xD4CA, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xDFDA, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xFBDF, 0xE7E3, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xF8FB, 0xE3CF, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xF5B0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xD8E7, 0, 0xD9C9, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xF8AF, 0xEFF6, 0, /* 0x90 */
- 0xDDB6, 0xEEAF, 0xCDF8, 0, 0, 0, 0, 0xDEB8, /* 0xA0 */
- 0xFCA7, 0xF7FC, 0xF7B1, 0xCEBB, 0xF4A1, 0, 0, 0xEECD, /* 0xA0 */
- 0xE1AE, 0, 0, 0xECC3, 0xCFFE, 0, 0xF8BF, 0xD8E2, /* 0xB0 */
- 0xD3E8, 0, 0, 0xDEA8, 0xF4E4, 0xECC2, 0, 0xD9F5, /* 0xB0 */
- 0xF9C5, 0xDDD3, 0xD6F1, 0xECFC, 0xFCF0, 0, 0, 0xEDC0, /* 0xC0 */
- 0xCAB9, 0, 0xEEE4, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xF2E1, 0, 0xDEB9, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xD6F2, 0, 0xDEF4, 0, 0xDFDB, 0, /* 0xD0 */
- 0xDBD3, 0, 0xFAE7, 0xD8E3, 0xF4C1, 0, 0xDDB7, 0, /* 0xE0 */
- 0, 0, 0xF2F5, 0, 0, 0xD4AE, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xD6F3, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0xDDB8, 0xCFC5, 0xDFDF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_8D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF2BE, 0xF6A1, 0, 0xEBCB, /* 0x00 */
- 0xF1FC, 0, 0xF3C7, 0, 0, 0xE0EB, 0, 0, /* 0x00 */
- 0, 0, 0, 0xEDFC, 0, 0, 0xE1DB, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0xEEE5, 0, 0xDEF5, 0, /* 0x60 */
- 0, 0, 0, 0xFAD3, 0, 0, 0, 0, /* 0x60 */
- 0xF1CB, 0, 0, 0xD0AF, 0xDDB9, 0, 0, 0xD1C3, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xF5B1, 0, 0, /* 0x80 */
- 0, 0, 0xEAC6, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xF0E1, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xF6AC, 0, 0, 0, 0, /* 0xA0 */
- 0xF5D9, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xF0EB, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xDDBA, 0, 0, 0, 0xF2BF, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xF7C5, 0, /* 0xC0 */
- 0, 0, 0, 0xDBA2, 0xF2F6, 0, 0, 0xCABA, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xF7F5, 0, 0xCBE5, 0, 0, /* 0xD0 */
- 0, 0xEEE6, 0, 0xE0D3, 0, 0, 0, 0, /* 0xE0 */
- 0xCEA5, 0, 0, 0, 0, 0, 0, 0xD6D8, /* 0xE0 */
- 0, 0, 0, 0xD4AF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_8E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE9C9, 0, 0, 0, 0, 0xD3CE, /* 0x00 */
- 0xF4C2, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xCBE6, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xF1A1, 0, 0, 0, 0, 0, /* 0x20 */
- 0xEBB2, 0, 0, 0, 0, 0xF1A2, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0xEBB3, 0, 0xF0B4, 0, 0, 0xCBF4, /* 0x40 */
- 0xD4B0, 0xF3B2, 0xFBB7, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xF5EC, 0, 0, 0, 0, 0, 0xEEE7, /* 0x50 */
- 0xF4B2, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xF5ED, 0, 0xCFF3, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xF0E2, 0, 0, 0, 0, 0, 0xEECE, /* 0x80 */
- 0, 0, 0xF1CC, 0, 0, 0xE5B8, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xD7F5, 0xE3F3, 0xCFE5, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xCFC6, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xF3B3, 0xE4D8, 0xCFF9, 0xCFDA, 0, 0, /* 0xC0 */
- 0, 0, 0xFACD, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE6E3, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xF2E2, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0xF5EE, 0, 0, 0xCABB, 0, 0, 0xE3DC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_8F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCEF2, 0, 0xD6D9, 0, 0, /* 0x00 */
- 0, 0xEEB0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xF4E5, 0xD8C2, 0xDCD0, 0xCCEE, 0, 0, /* 0x10 */
- 0, 0, 0, 0xD5E0, 0xF6CA, 0xFDCA, 0xD8D6, 0xF4CF, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xD6A6, 0xDCBE, /* 0x20 */
- 0, 0xDBD4, 0xD7C7, 0, 0, 0, 0, 0xF2FE, /* 0x20 */
- 0, 0, 0, 0xF1CD, 0, 0, 0, 0, /* 0x30 */
- 0xE2C3, 0xDCDE, 0, 0xDCDF, 0, 0, 0xEFAD, 0xE6AB, /* 0x30 */
- 0, 0, 0, 0, 0xF9DD, 0xEABF, 0, 0, /* 0x40 */
- 0, 0xEFAE, 0, 0, 0, 0xF4D0, 0xCEF3, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xE6AC, 0, 0xCEDE, /* 0x50 */
- 0, 0, 0xD5F9, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xE3F4, 0xCDD0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xD5B8, 0, 0, 0xF7FD, 0, /* 0xA0 */
- 0xDCA9, 0, 0, 0, 0, 0xDEF6, 0, 0xDCAA, /* 0xA0 */
- 0xF2E3, 0xE9B4, 0xD2DC, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xE9E6, 0, 0, 0xE3F6, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xE7CA, 0, /* 0xC0 */
- 0, 0xD0CE, 0, 0, 0xDAF7, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xCABC, 0, /* 0xE0 */
- 0, 0, 0xEEE8, 0xDADE, 0, 0xF2F7, 0, 0, /* 0xE0 */
- 0xE2FB, 0, 0xCCA6, 0, 0, 0, 0, 0xDABB, /* 0xF0 */
- 0, 0xEEE9, 0, 0, 0, 0xF5DA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_90[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF7DC, 0xE1EA, 0xCEC1, 0xD4B1, 0, 0xFDB1, 0xE6BD, 0, /* 0x00 */
- 0xFBAD, 0, 0, 0xF8E7, 0, 0xE1CE, 0, 0xF7E2, /* 0x00 */
- 0xF5EF, 0xCFC7, 0, 0, 0xD4B2, 0xCCEF, 0, 0xD4E8, /* 0x10 */
- 0, 0xEECF, 0xF7D7, 0, 0, 0xE0A6, 0xD6C1, 0xE1DC, /* 0x10 */
- 0xF0E3, 0xF1E4, 0xDCF1, 0xD6A7, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0xF4F5, 0, /* 0x20 */
- 0, 0xF1CE, 0xF2E4, 0, 0, 0xD0B0, 0, 0, /* 0x30 */
- 0xECEF, 0, 0, 0, 0xF9BA, 0, 0xEBB5, 0, /* 0x30 */
- 0, 0xD4ED, 0xE2C4, 0, 0, 0, 0, 0xE9E7, /* 0x40 */
- 0, 0, 0xEBB4, 0xEAA1, 0, 0xF8BC, 0xCEA6, 0, /* 0x40 */
- 0xF9C6, 0xFCDA, 0, 0xD4B3, 0xD3B9, 0xEADE, 0, 0, /* 0x50 */
- 0, 0xE9AB, 0, 0, 0xE1E1, 0xD3CF, 0xF4F6, 0, /* 0x50 */
- 0xEAC0, 0xE1CF, 0, 0xCCBA, 0, 0, 0, 0, /* 0x60 */
- 0, 0xEEEA, 0, 0, 0, 0xF0E4, 0xF3B4, 0xD4EE, /* 0x60 */
- 0, 0, 0xF2C0, 0, 0, 0xF1E5, 0, 0xF4C3, /* 0x70 */
- 0xE0D4, 0, 0xEBB6, 0, 0xD7A1, 0xCBE8, 0, 0xF9AD, /* 0x70 */
- 0xE9AD, 0xD8E4, 0xFAB3, 0xE2C5, 0xFCBD, 0, 0, 0xECC4, /* 0x80 */
- 0xD8B1, 0, 0xDCAB, 0, 0, 0, 0, 0xD5A4, /* 0x80 */
- 0, 0xEBE9, 0, 0, 0, 0xE8BB, 0, 0, /* 0x90 */
- 0, 0xD8D7, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xFBAE, 0xD1E1, 0, 0, 0xDBC0, 0, /* 0xA0 */
- 0xF5BE, 0, 0xDEF7, 0, 0, 0, 0, 0xCAFB, /* 0xA0 */
- 0xF7C6, 0xCFC8, 0, 0, 0, 0xE1D0, 0, 0, /* 0xB0 */
- 0xEED0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xE9F4, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xCEF4, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xD5CD, 0, /* 0xD0 */
- 0, 0xCFDB, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xDDBB, 0, 0, 0, 0, 0xCEAC, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xE9E8, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0xD4B4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_91[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE4C7, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xF5DB, 0, 0, 0xFAC1, 0, 0, /* 0x10 */
- 0, 0xDEA9, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xD4F8, /* 0x20 */
- 0, 0, 0, 0, 0, 0xEFF7, 0, 0, /* 0x20 */
- 0, 0, 0xD3B3, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xEBB7, 0xEFF8, 0xF5DC, 0xEDCC, 0xDBD5, 0xF1CF, 0, /* 0x40 */
- 0, 0, 0xF1D0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0xF5B2, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xD9AE, 0xD5AC, 0, 0xE2C6, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xFDA3, 0, 0xFBE5, /* 0x70 */
- 0xDFAB, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xE2F5, /* 0x80 */
- 0, 0xF6AD, 0, 0xF5B3, 0, 0xF0B5, 0, 0, /* 0x80 */
- 0, 0, 0xE1A5, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xF5DD, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xECA2, 0xEDFD, 0, 0xF5B4, 0xFBB8, /* 0xA0 */
- 0, 0xDBA3, 0, 0, 0xD6CA, 0xCBD9, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xE5D4, 0, 0, 0, 0, 0, 0, 0xF3FA, /* 0xC0 */
- 0, 0xEBB8, 0, 0xE0B7, 0xD7EC, 0xF1EC, 0xE5AF, 0xD5E1, /* 0xC0 */
- 0xD7ED, 0xD1D1, 0, 0, 0, 0, 0, 0xE1F2, /* 0xD0 */
- 0xEFF9, 0, 0, 0, 0xDDBC, 0xF6DC, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xF0E5, 0, 0, 0, 0xF4C4, /* 0xE0 */
- 0, 0, 0xE9E9, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xF3FB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_92[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD4EF, 0, 0, /* 0x00 */
- 0xCCA2, 0xF7FE, 0xDFBC, 0, 0, 0, 0, 0xEBCD, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xD0B7, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xD6C2, 0, 0, 0, /* 0x30 */
- 0, 0, 0xE8AD, 0, 0, 0, 0, 0xEFAF, /* 0x30 */
- 0xCBA5, 0, 0, 0, 0, 0xCBE9, 0, 0, /* 0x40 */
- 0, 0xFAE8, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0xCCC6, /* 0x50 */
- 0, 0, 0, 0xE6E7, 0, 0, 0xEAC7, 0, /* 0x50 */
- 0, 0, 0xDBA4, 0, 0xCFC9, 0xE2FC, 0xEFFA, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xEBDE, 0, 0, 0xF5C8, 0, 0xD4DE, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xE0D5, 0, 0xEFB0, 0, 0, 0xE2C7, 0, /* 0x90 */
- 0xD9AF, 0, 0, 0, 0xF9E7, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xE7E5, 0, 0, 0xCFCA, 0xE1D1, /* 0xB0 */
- 0, 0xE2C8, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xEFFB, 0, 0, 0xFAF9, /* 0xC0 */
- 0, 0, 0xDCF2, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xE0A7, 0, 0, 0, /* 0xE0 */
- 0, 0, 0xF8E8, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0xCBEA, 0, 0, 0, 0xCBBC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_93[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD6E2, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0xF5DE, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xF5DF, 0, 0xEEB6, 0, 0, 0, 0xE2F6, 0xD3CA, /* 0x10 */
- 0xEFFC, 0xD1C4, 0xEFB1, 0, 0xD1C5, 0, 0xD0DE, 0, /* 0x20 */
- 0xD9E1, 0, 0, 0xE0B8, 0, 0, 0xCDD1, 0xF3B9, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xE7CC, 0, 0xD6A8, 0xCEA7, 0, 0xD4B5, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xE4C8, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0xD3B4, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0xEBB9, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xCBF5, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xF6DD, 0, 0xF1A3, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0xCCC7, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0xE9CA, 0, 0xE1F0, 0, /* 0x90 */
- 0, 0, 0xF5E0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xFBAF, 0, 0, 0, 0xCBD1, /* 0xA0 */
- 0, 0, 0, 0, 0xFBE0, 0xF2E5, 0, 0, /* 0xA0 */
- 0xECF0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xF0EC, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xEEEB, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xE9CB, 0, /* 0xD0 */
- 0, 0xCCF0, 0, 0, 0xD7AF, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xF3A1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_94[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFCF5, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xF1A4, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xE0D6, 0, 0, /* 0x20 */
- 0, 0, 0, 0xEFB2, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xF4D1, 0, 0, /* 0x30 */
- 0xF7A1, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0xF1D1, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xCAFC, 0xCAFD, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0xCECE, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xF3C8, 0, 0xF3BA /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_95[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEDFE, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xDAA6, 0, 0, 0xE0EC, 0, 0, 0, 0, /* 0x80 */
- 0, 0xF8CD, 0, 0xCBD2, 0, 0, 0, 0xEBCE, /* 0x80 */
- 0, 0xF9D8, 0xF9D9, 0xCAE0, 0xDACA, 0, 0, 0, /* 0x90 */
- 0xCBA6, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xCAC8, 0xF9EE, 0xDBEC, 0, 0, /* 0xA0 */
- 0xD0B1, 0, 0, 0, 0, 0xD5EF, 0, 0, /* 0xA0 */
- 0, 0xE6F3, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xE7A2, 0xE4D9, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE4E1, /* 0xC0 */
- 0, 0, 0xFCC4, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xF9EF, 0xCFF4, 0xF7E6, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xCEBC, 0, 0, 0, /* 0xD0 */
- 0, 0xF4C5, 0xDCA3 /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_96[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDDBD, 0, 0, 0, /* 0x10 */
- 0, 0xF4C6, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xF8A1, 0, 0, 0, 0xE8D6, 0, /* 0x20 */
- 0, 0, 0xDBC1, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xF0E6, 0, 0, 0, 0xE4B9, /* 0x30 */
- 0xF6ED, 0, 0xF9AE, 0, 0xDDBE, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xD7B0, 0xD8E8, 0xCBBD, 0, 0, /* 0x40 */
- 0xF9DA, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0xF8CE, 0xF9F0, 0xE0ED, 0xE3B3, 0xF4B3, /* 0x50 */
- 0, 0, 0xEAC2, 0xF2E6, 0xF0B6, 0, 0, 0, /* 0x60 */
- 0, 0, 0xDBD6, 0, 0, 0, 0, 0, /* 0x60 */
- 0xEBE4, 0, 0, 0xF2E7, 0, 0xD7D5, 0xD4B6, 0xF9E8, /* 0x70 */
- 0xD7C1, 0, 0, 0, 0, 0xE5D5, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xE9EA, 0xD7CC, 0, /* 0x80 */
- 0, 0, 0xD3E9, 0xE2C9, 0, 0xFCDB, 0xCDAD, 0, /* 0x80 */
- 0, 0, 0, 0, 0xCCB0, 0xEAA2, 0, 0, /* 0x90 */
- 0xE4F6, 0xD0C0, 0, 0xF0B7, 0xEEA1, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xD7F6, 0, 0, 0, 0xE2CA, /* 0xA0 */
- 0xE2CB, 0, 0xFACF, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xEBDF, 0, 0, 0, 0, 0, 0xD6CB, /* 0xB0 */
- 0, 0, 0, 0xF4B4, 0, 0, 0, 0, /* 0xB0 */
- 0xEDCD, 0xE4D2, 0, 0, 0xEAA9, 0xE4BA, 0xF3A2, 0xCDD2, /* 0xC0 */
- 0, 0xF6CB, 0, 0xF1E6, 0xEDC1, 0xE8BC, 0xEED1, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xF0E7, 0xE2CC, 0, /* 0xD0 */
- 0, 0xE4AA, 0, 0xF5E1, 0xEDDA, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xD7EE, 0xD1F1, 0, 0, 0, 0, /* 0xE0 */
- 0xE9EB, 0xE9EC, 0xE0E4, 0, 0, 0, 0, 0xDAA7, /* 0xE0 */
- 0xDDD4, 0, 0xEAA3, 0, 0, 0, 0xD6C3, 0xD6F4, /* 0xF0 */
- 0, 0xDADF, 0, 0xEFB3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_97[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE2CD, 0, 0, 0, 0, 0, 0xEFFD, 0xF2E8, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0xEFC5, 0, 0xE7E7, 0, 0, 0xD7FD, 0, /* 0x10 */
- 0, 0xE7CE, 0, 0, 0xDFDC, 0, 0xF9C7, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xD9F6, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xDFAC, 0, 0xD6DA, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xDCA4, 0, 0, 0, 0xF0B8, 0, 0, /* 0x30 */
- 0, 0, 0xD5FA, 0, 0xE4F7, 0, 0, 0, /* 0x40 */
- 0xD6C4, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xF4EC, 0, 0, 0, 0, 0xEFFE, 0, /* 0x50 */
- 0, 0, 0, 0, 0xF0A1, 0, 0xDEAA, 0, /* 0x50 */
- 0, 0xDABC, 0xD8FC, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xFAD4, 0, 0, 0, 0xECE5, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xFCA8, 0, 0, 0xECE6, /* 0x70 */
- 0, 0, 0xD8CB, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xFBB9, 0, 0xE4D3, 0, 0xCDF9, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xCFD3, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xCAEA, 0, 0, 0xCFD4, 0, 0xF8BD, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xF4C7, 0, /* 0xC0 */
- 0, 0, 0, 0xEADF, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xF9DB, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xD4B7, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xEBE5, 0, 0, 0xE1D2, 0, /* 0xF0 */
- 0, 0, 0, 0xEAA4, 0, 0, 0, 0xFAC2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_98[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFBE1, 0xFAED, 0xF0A2, 0xCCF1, 0, 0xFAA3, 0xE2F7, 0, /* 0x00 */
- 0xE2CE, 0, 0xE9F5, 0, 0xE1EB, 0, 0, 0, /* 0x00 */
- 0xE7E8, 0xE8D7, 0xDAF8, 0xD4CB, 0, 0, 0, 0xF7F6, /* 0x10 */
- 0xD6C5, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xD4E9, 0, 0, /* 0x20 */
- 0xFAFA, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xCCF2, 0xF7DD, 0, 0xDEBA, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xCEA8, 0, /* 0x40 */
- 0, 0, 0, 0, 0xF0B9, 0xE4FE, 0xE4C9, 0, /* 0x40 */
- 0, 0, 0, 0, 0xE4D4, 0, 0, 0, /* 0x50 */
- 0xEAC3, 0, 0xEFB4, 0, 0, 0, 0xD7BE, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xFBE2, 0, 0xCDD3, /* 0x60 */
- 0, 0, 0, 0xEFB5, 0, 0, 0, 0xFAE9, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xF9A6, 0, 0, 0, 0, 0, 0, 0xDFBD, /* 0xA0 */
- 0, 0xF7C7, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xF8FD, 0, 0, 0xF8FC, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xDEAB, 0xDBE8, 0, 0, 0xE3DD, /* 0xD0 */
- 0, 0xE1E2, 0xD1C6, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xF6D0, 0xEBE6, 0xDAF9, /* 0xE0 */
- 0, 0, 0, 0, 0xECC7, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0xDEF8, 0xF8E9, 0xE3DE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_99[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCEF5, 0, 0, 0, 0, /* 0x00 */
- 0, 0xFAC3, 0xE5D7, 0, 0xECC8, 0, 0, 0, /* 0x00 */
- 0xF3C9, 0, 0, 0xE4BB, 0, 0, 0, 0, /* 0x10 */
- 0xE6AE, 0, 0, 0, 0, 0, 0xEFB6, 0, /* 0x10 */
- 0xDCBF, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xCEBD, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xD8C3, 0, 0, /* 0x40 */
- 0, 0xD0CF, 0, 0xCFFA, 0xF3CA, 0xE0D7, 0, 0, /* 0x40 */
- 0, 0xD1C7, 0xE9AE, 0, 0xE8BD, 0, 0, 0xFAC4, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xE2CF, 0, /* 0x90 */
- 0, 0xFAC5, 0, 0, 0, 0xF9B8, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xDCE0, 0, 0, /* 0xA0 */
- 0xFBB0, 0, 0, 0, 0xD8A9, 0xE5DF, 0xF9A7, 0, /* 0xA0 */
- 0, 0xF6EE, 0, 0xF6CC, 0xE2F8, 0, 0, 0, /* 0xB0 */
- 0, 0xECF1, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xDAE0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xF1D2, 0xD2CC, 0xCFCB, 0, 0, 0xCABD, 0, 0, /* 0xD0 */
- 0, 0xDDBF, 0, 0, 0, 0xF6EF, 0, 0xDEF9, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xFAB4, 0, 0, /* 0xE0 */
- 0, 0xD5AD, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0, 0xF1E7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_9A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDEBE, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0xDCC0, 0, 0, 0, 0, 0, 0xD1C8, 0xD1C9, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xF8BE, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xCBF6, 0, 0, 0, 0, /* 0x20 */
- 0xD4F9, 0, 0, 0, 0, 0, 0xF5E2, 0xE1D3, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xD8E9, 0, 0, 0xF8FE, 0, 0xCFCC, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xFDA4, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xCEF6, 0, 0xFAD0, /* 0x50 */
- 0, 0, 0xCCF3, 0xE6BE, 0, 0, 0, 0xF6AE, /* 0x50 */
- 0, 0, 0xD5F0, 0, 0, 0xD1CA, 0, 0, /* 0x60 */
- 0, 0xFCBE, 0xD5F1, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xCDE9, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xFAB5, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xE2D0, 0xF4F7, 0, 0, 0, /* 0xD0 */
- 0xCDD4, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xE7A3, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xDBA5 /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_9B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE2D1, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xD7A2, /* 0x20 */
- 0, 0, 0xF7E3, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xEAA6, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0xD0A1, 0, 0, 0, /* 0x30 */
- 0, 0xCEDA, 0xFBEB, 0xDBA6, 0xDBDE, 0xD8E5, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0xEAE0, /* 0x40 */
- 0, 0, 0, 0, 0xD8AA, 0, 0, 0, /* 0x50 */
- 0, 0, 0xE5E0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0xD6DB, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xEFC6, 0, /* 0x80 */
- 0, 0xF8EA, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xE4D5, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xCEF7, 0, 0, 0xE0D8, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xD7EF, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xF4ED, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xCDE6, 0, 0, 0, /* 0xE0 */
- 0xCCF4 /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_9C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF5E3, 0, 0, /* 0x00 */
- 0xE4CA, 0, 0xDCE1, 0, 0, 0xF9C8, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xFCBF, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xE8A7, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xD8C4, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0xCBBE, /* 0x40 */
- 0, 0xDCAE, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0xD7F7, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xF0E8, 0, 0xDDC0, /* 0xE0 */
- 0, 0xCFCD, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xDCF3, 0xD9B0, 0, 0xE6E9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_9D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE4BC, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xEAC4, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xE4EC, 0, /* 0x20 */
- 0xE4E5, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xFBF8, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xCCBB, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xE4BD, 0, 0, /* 0x50 */
- 0xCDDC, 0xD9F7, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xDDDF, 0, 0, 0, /* 0x60 */
- 0, 0, 0xEDCE, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xD9D0, 0, 0, 0, 0, 0, 0xE5A3, /* 0xA0 */
- 0, 0, 0, 0, 0xF9CD, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xCDAE, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xCFCE, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0xF6AF, 0, 0, 0, 0, 0, /* 0xF0 */
- 0xFDD3, 0xEBED, 0xD6DC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_9E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE5A4, 0, 0, 0, 0xD5B6, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xD6DD, 0, 0, /* 0x70 */
- 0, 0xF9E9, 0, 0, 0, 0xE7A4, 0, 0xD6E3, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xD1CB, 0xD6E4, 0, 0, 0, 0xD5F2, /* 0x90 */
- 0, 0, 0, 0, 0, 0xDEFA, 0, 0xD7F8, /* 0x90 */
- 0, 0, 0, 0, 0, 0xD8EA, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xCFD5, 0xD8FD, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xD8AB, 0, 0, 0xFDCB, 0, /* 0xB0 */
- 0, 0, 0, 0xFCDC, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xE0A8, 0xD5F3, 0, /* 0xC0 */
- 0, 0xFDD9, 0, 0, 0xCCA3, 0, 0, 0, /* 0xD0 */
- 0xD9F9, 0, 0, 0xD3EA, 0xF5F5, 0, 0xEFC7, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xD3DA, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xDABD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_9F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE8A8, /* 0x00 */
- 0xDCAF, 0, 0, 0, 0, 0, 0xF0A3, 0, /* 0x00 */
- 0, 0, 0, 0xCDD5, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xE0A9, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xDEAC, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xF0BA, 0xEEB1, 0, 0, 0xEEB2, 0, /* 0x40 */
- 0, 0, 0xF6CD, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xEED2, /* 0x50 */
- 0, 0xD6C6, 0, 0, 0, 0, 0, 0xE0E5, /* 0x60 */
- 0, 0, 0xF3BB, 0, 0xE5E1, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0xE4CB, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xD7A3, 0, 0, /* 0x80 */
- 0xDBC2, 0, 0, 0, 0, 0xCAFE, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xCFCF /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_AC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB0A1, 0xB0A2, 0x8141, 0x8142, 0xB0A3, 0x8143, 0x8144, 0xB0A4, /* 0x00 */
- 0xB0A5, 0xB0A6, 0xB0A7, 0x8145, 0x8146, 0x8147, 0x8148, 0x8149, /* 0x00 */
- 0xB0A8, 0xB0A9, 0xB0AA, 0xB0AB, 0xB0AC, 0xB0AD, 0xB0AE, 0xB0AF, /* 0x10 */
- 0x814A, 0xB0B0, 0xB0B1, 0xB0B2, 0xB0B3, 0xB0B4, 0x814B, 0x814C, /* 0x10 */
- 0xB0B5, 0x814D, 0x814E, 0x814F, 0xB0B6, 0x8150, 0x8151, 0x8152, /* 0x20 */
- 0x8153, 0x8154, 0x8155, 0x8156, 0xB0B7, 0xB0B8, 0x8157, 0xB0B9, /* 0x20 */
- 0xB0BA, 0xB0BB, 0x8158, 0x8159, 0x815A, 0x8161, 0x8162, 0x8163, /* 0x30 */
- 0xB0BC, 0xB0BD, 0x8164, 0x8165, 0xB0BE, 0x8166, 0x8167, 0x8168, /* 0x30 */
- 0xB0BF, 0x8169, 0x816A, 0x816B, 0x816C, 0x816D, 0x816E, 0x816F, /* 0x40 */
- 0x8170, 0x8171, 0x8172, 0xB0C0, 0x8173, 0xB0C1, 0x8174, 0x8175, /* 0x40 */
- 0x8176, 0x8177, 0x8178, 0x8179, 0xB0C2, 0x817A, 0x8181, 0x8182, /* 0x50 */
- 0xB0C3, 0x8183, 0x8184, 0x8185, 0xB0C4, 0x8186, 0x8187, 0x8188, /* 0x50 */
- 0x8189, 0x818A, 0x818B, 0x818C, 0x818D, 0x818E, 0x818F, 0x8190, /* 0x60 */
- 0x8191, 0x8192, 0x8193, 0x8194, 0x8195, 0x8196, 0x8197, 0x8198, /* 0x60 */
- 0xB0C5, 0xB0C6, 0x8199, 0x819A, 0xB0C7, 0x819B, 0x819C, 0xB0C8, /* 0x70 */
- 0xB0C9, 0x819D, 0xB0CA, 0x819E, 0x819F, 0x81A0, 0x81A1, 0x81A2, /* 0x70 */
- 0xB0CB, 0xB0CC, 0x81A3, 0xB0CD, 0xB0CE, 0xB0CF, 0xB0D0, 0x81A4, /* 0x80 */
- 0x81A5, 0xB0D1, 0xB0D2, 0xB0D3, 0xB0D4, 0x81A6, 0x81A7, 0x81A8, /* 0x80 */
- 0xB0D5, 0x81A9, 0x81AA, 0x81AB, 0xB0D6, 0x81AC, 0x81AD, 0x81AE, /* 0x90 */
- 0x81AF, 0x81B0, 0x81B1, 0x81B2, 0xB0D7, 0xB0D8, 0x81B3, 0xB0D9, /* 0x90 */
- 0xB0DA, 0xB0DB, 0x81B4, 0x81B5, 0x81B6, 0x81B7, 0x81B8, 0x81B9, /* 0xA0 */
- 0xB0DC, 0xB0DD, 0xB0DE, 0x81BA, 0xB0DF, 0x81BB, 0x81BC, 0xB0E0, /* 0xA0 */
- 0xB0E1, 0x81BD, 0x81BE, 0x81BF, 0x81C0, 0x81C1, 0x81C2, 0x81C3, /* 0xB0 */
- 0xB0E2, 0xB0E3, 0x81C4, 0xB0E4, 0xB0E5, 0xB0E6, 0x81C5, 0x81C6, /* 0xB0 */
- 0x81C7, 0xB0E7, 0x81C8, 0x81C9, 0xB0E8, 0x81CA, 0x81CB, 0x81CC, /* 0xC0 */
- 0xB0E9, 0x81CD, 0x81CE, 0x81CF, 0xB0EA, 0x81D0, 0x81D1, 0x81D2, /* 0xC0 */
- 0x81D3, 0x81D4, 0x81D5, 0x81D6, 0x81D7, 0xB0EB, 0x81D8, 0xB0EC, /* 0xD0 */
- 0x81D9, 0x81DA, 0x81DB, 0x81DC, 0x81DD, 0x81DE, 0x81DF, 0x81E0, /* 0xD0 */
- 0xB0ED, 0xB0EE, 0x81E1, 0x81E2, 0xB0EF, 0x81E3, 0x81E4, 0xB0F0, /* 0xE0 */
- 0xB0F1, 0x81E5, 0xB0F2, 0x81E6, 0xB0F3, 0x81E7, 0x81E8, 0xB0F4, /* 0xE0 */
- 0xB0F5, 0xB0F6, 0x81E9, 0xB0F7, 0x81EA, 0xB0F8, 0xB0F9, 0x81EB, /* 0xF0 */
- 0x81EC, 0x81ED, 0x81EE, 0x81EF, 0xB0FA, 0xB0FB, 0x81F0, 0x81F1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_AD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB0FC, 0x81F2, 0x81F3, 0x81F4, 0xB0FD, 0x81F5, 0xB0FE, 0x81F6, /* 0x00 */
- 0x81F7, 0x81F8, 0x81F9, 0x81FA, 0xB1A1, 0xB1A2, 0x81FB, 0xB1A3, /* 0x00 */
- 0x81FC, 0xB1A4, 0x81FD, 0x81FE, 0x8241, 0x8242, 0x8243, 0x8244, /* 0x10 */
- 0xB1A5, 0x8245, 0x8246, 0x8247, 0xB1A6, 0x8248, 0x8249, 0x824A, /* 0x10 */
- 0xB1A7, 0x824B, 0x824C, 0x824D, 0x824E, 0x824F, 0x8250, 0x8251, /* 0x20 */
- 0x8252, 0xB1A8, 0x8253, 0x8254, 0xB1A9, 0xB1AA, 0x8255, 0x8256, /* 0x20 */
- 0x8257, 0x8258, 0x8259, 0x825A, 0xB1AB, 0xB1AC, 0x8261, 0x8262, /* 0x30 */
- 0xB1AD, 0x8263, 0x8264, 0x8265, 0xB1AE, 0x8266, 0x8267, 0x8268, /* 0x30 */
- 0x8269, 0x826A, 0x826B, 0x826C, 0xB1AF, 0xB1B0, 0x826D, 0xB1B1, /* 0x40 */
- 0x826E, 0xB1B2, 0x826F, 0x8270, 0x8271, 0x8272, 0x8273, 0x8274, /* 0x40 */
- 0xB1B3, 0x8275, 0x8276, 0x8277, 0xB1B4, 0x8278, 0x8279, 0x827A, /* 0x50 */
- 0xB1B5, 0x8281, 0x8282, 0x8283, 0x8284, 0x8285, 0x8286, 0x8287, /* 0x50 */
- 0x8288, 0xB1B6, 0x8289, 0xB1B7, 0x828A, 0x828B, 0x828C, 0x828D, /* 0x60 */
- 0x828E, 0x828F, 0x8290, 0x8291, 0xB1B8, 0xB1B9, 0x8292, 0x8293, /* 0x60 */
- 0xB1BA, 0x8294, 0x8295, 0xB1BB, 0xB1BC, 0xB1BD, 0xB1BE, 0x8296, /* 0x70 */
- 0x8297, 0x8298, 0x8299, 0xB1BF, 0xB1C0, 0xB1C1, 0x829A, 0xB1C2, /* 0x70 */
- 0x829B, 0xB1C3, 0xB1C4, 0x829C, 0x829D, 0x829E, 0x829F, 0x82A0, /* 0x80 */
- 0xB1C5, 0xB1C6, 0x82A1, 0x82A2, 0xB1C7, 0x82A3, 0x82A4, 0x82A5, /* 0x80 */
- 0xB1C8, 0x82A6, 0x82A7, 0x82A8, 0x82A9, 0x82AA, 0x82AB, 0x82AC, /* 0x90 */
- 0x82AD, 0x82AE, 0x82AF, 0x82B0, 0xB1C9, 0xB1CA, 0x82B1, 0x82B2, /* 0x90 */
- 0x82B3, 0x82B4, 0x82B5, 0x82B6, 0xB1CB, 0x82B7, 0x82B8, 0x82B9, /* 0xA0 */
- 0x82BA, 0x82BB, 0x82BC, 0x82BD, 0x82BE, 0x82BF, 0x82C0, 0x82C1, /* 0xA0 */
- 0x82C2, 0x82C3, 0x82C4, 0x82C5, 0x82C6, 0x82C7, 0x82C8, 0xB1CC, /* 0xB0 */
- 0x82C9, 0x82CA, 0x82CB, 0x82CC, 0x82CD, 0x82CE, 0x82CF, 0x82D0, /* 0xB0 */
- 0xB1CD, 0xB1CE, 0x82D1, 0x82D2, 0xB1CF, 0x82D3, 0x82D4, 0x82D5, /* 0xC0 */
- 0xB1D0, 0x82D6, 0x82D7, 0x82D8, 0x82D9, 0x82DA, 0x82DB, 0x82DC, /* 0xC0 */
- 0xB1D1, 0xB1D2, 0x82DD, 0xB1D3, 0x82DE, 0x82DF, 0x82E0, 0x82E1, /* 0xD0 */
- 0x82E2, 0x82E3, 0x82E4, 0x82E5, 0xB1D4, 0x82E6, 0x82E7, 0x82E8, /* 0xD0 */
- 0xB1D5, 0x82E9, 0x82EA, 0x82EB, 0xB1D6, 0x82EC, 0x82ED, 0x82EE, /* 0xE0 */
- 0x82EF, 0x82F0, 0x82F1, 0x82F2, 0x82F3, 0x82F4, 0x82F5, 0x82F6, /* 0xE0 */
- 0x82F7, 0x82F8, 0x82F9, 0x82FA, 0x82FB, 0x82FC, 0x82FD, 0x82FE, /* 0xF0 */
- 0xB1D7, 0xB1D8, 0x8341, 0x8342, 0xB1D9, 0x8343, 0x8344, 0xB1DA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_AE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB1DB, 0xB1DC, 0x8345, 0x8346, 0x8347, 0x8348, 0x8349, 0x834A, /* 0x00 */
- 0xB1DD, 0xB1DE, 0x834B, 0xB1DF, 0x834C, 0xB1E0, 0x834D, 0x834E, /* 0x00 */
- 0x834F, 0x8350, 0x8351, 0x8352, 0xB1E1, 0x8353, 0x8354, 0x8355, /* 0x10 */
- 0x8356, 0x8357, 0x8358, 0x8359, 0x835A, 0x8361, 0x8362, 0x8363, /* 0x10 */
- 0x8364, 0x8365, 0x8366, 0x8367, 0x8368, 0x8369, 0x836A, 0x836B, /* 0x20 */
- 0x836C, 0x836D, 0x836E, 0x836F, 0x8370, 0x8371, 0x8372, 0x8373, /* 0x20 */
- 0xB1E2, 0xB1E3, 0x8374, 0x8375, 0xB1E4, 0x8376, 0x8377, 0xB1E5, /* 0x30 */
- 0xB1E6, 0x8378, 0xB1E7, 0x8379, 0x837A, 0x8381, 0x8382, 0x8383, /* 0x30 */
- 0xB1E8, 0xB1E9, 0x8384, 0xB1EA, 0x8385, 0xB1EB, 0xB1EC, 0x8386, /* 0x40 */
- 0x8387, 0x8388, 0xB1ED, 0x8389, 0xB1EE, 0xB1EF, 0xB1F0, 0x838A, /* 0x40 */
- 0xB1F1, 0x838B, 0x838C, 0x838D, 0xB1F2, 0x838E, 0xB1F3, 0x838F, /* 0x50 */
- 0x8390, 0x8391, 0x8392, 0x8393, 0xB1F4, 0xB1F5, 0x8394, 0xB1F6, /* 0x50 */
- 0xB1F7, 0xB1F8, 0x8395, 0x8396, 0x8397, 0xB1F9, 0x8398, 0x8399, /* 0x60 */
- 0xB1FA, 0xB1FB, 0x839A, 0x839B, 0xB1FC, 0x839C, 0x839D, 0x839E, /* 0x60 */
- 0xB1FD, 0x839F, 0x83A0, 0x83A1, 0x83A2, 0x83A3, 0x83A4, 0x83A5, /* 0x70 */
- 0xB1FE, 0xB2A1, 0x83A6, 0xB2A2, 0xB2A3, 0xB2A4, 0x83A7, 0x83A8, /* 0x70 */
- 0x83A9, 0x83AA, 0x83AB, 0x83AC, 0xB2A5, 0xB2A6, 0x83AD, 0x83AE, /* 0x80 */
- 0x83AF, 0x83B0, 0x83B1, 0x83B2, 0xB2A7, 0x83B3, 0x83B4, 0x83B5, /* 0x80 */
- 0x83B6, 0x83B7, 0x83B8, 0x83B9, 0x83BA, 0x83BB, 0x83BC, 0x83BD, /* 0x90 */
- 0x83BE, 0x83BF, 0x83C0, 0x83C1, 0x83C2, 0x83C3, 0x83C4, 0x83C5, /* 0x90 */
- 0x83C6, 0x83C7, 0x83C8, 0x83C9, 0x83CA, 0x83CB, 0x83CC, 0x83CD, /* 0xA0 */
- 0x83CE, 0x83CF, 0x83D0, 0x83D1, 0x83D2, 0x83D3, 0x83D4, 0x83D5, /* 0xA0 */
- 0x83D6, 0x83D7, 0x83D8, 0x83D9, 0x83DA, 0x83DB, 0x83DC, 0x83DD, /* 0xB0 */
- 0x83DE, 0x83DF, 0x83E0, 0x83E1, 0xB2A8, 0xB2A9, 0xB2AA, 0x83E2, /* 0xB0 */
- 0xB2AB, 0x83E3, 0x83E4, 0x83E5, 0xB2AC, 0x83E6, 0x83E7, 0x83E8, /* 0xC0 */
- 0x83E9, 0x83EA, 0x83EB, 0x83EC, 0xB2AD, 0xB2AE, 0x83ED, 0xB2AF, /* 0xC0 */
- 0xB2B0, 0xB2B1, 0x83EE, 0x83EF, 0x83F0, 0x83F1, 0x83F2, 0x83F3, /* 0xD0 */
- 0xB2B2, 0xB2B3, 0x83F4, 0x83F5, 0xB2B4, 0x83F6, 0x83F7, 0x83F8, /* 0xD0 */
- 0x83F9, 0x83FA, 0x83FB, 0x83FC, 0x83FD, 0x83FE, 0x8441, 0x8442, /* 0xE0 */
- 0xB2B5, 0x8443, 0x8444, 0xB2B6, 0x8445, 0xB2B7, 0x8446, 0x8447, /* 0xE0 */
- 0x8448, 0x8449, 0x844A, 0x844B, 0xB2B8, 0x844C, 0x844D, 0x844E, /* 0xF0 */
- 0xB2B9, 0x844F, 0x8450, 0x8451, 0xB2BA, 0x8452, 0x8453, 0x8454 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_AF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8455, 0x8456, 0x8457, 0x8458, 0x8459, 0x845A, 0x8461, 0xB2BB, /* 0x00 */
- 0xB2BC, 0x8462, 0x8463, 0x8464, 0x8465, 0xB2BD, 0x8466, 0x8467, /* 0x00 */
- 0xB2BE, 0x8468, 0x8469, 0x846A, 0x846B, 0x846C, 0x846D, 0x846E, /* 0x10 */
- 0x846F, 0x8470, 0x8471, 0x8472, 0x8473, 0x8474, 0x8475, 0x8476, /* 0x10 */
- 0x8477, 0x8478, 0x8479, 0x847A, 0x8481, 0x8482, 0x8483, 0x8484, /* 0x20 */
- 0x8485, 0x8486, 0x8487, 0x8488, 0xB2BF, 0xB2C0, 0x8489, 0x848A, /* 0x20 */
- 0xB2C1, 0x848B, 0xB2C2, 0x848C, 0xB2C3, 0x848D, 0x848E, 0x848F, /* 0x30 */
- 0x8490, 0x8491, 0x8492, 0x8493, 0xB2C4, 0xB2C5, 0x8494, 0xB2C6, /* 0x30 */
- 0x8495, 0xB2C7, 0xB2C8, 0xB2C9, 0x8496, 0x8497, 0x8498, 0x8499, /* 0x40 */
- 0xB2CA, 0xB2CB, 0x849A, 0x849B, 0x849C, 0x849D, 0x849E, 0x849F, /* 0x40 */
- 0xB2CC, 0x84A0, 0x84A1, 0x84A2, 0x84A3, 0x84A4, 0x84A5, 0x84A6, /* 0x50 */
- 0x84A7, 0x84A8, 0x84A9, 0x84AA, 0xB2CD, 0xB2CE, 0x84AB, 0x84AC, /* 0x50 */
- 0x84AD, 0x84AE, 0x84AF, 0x84B0, 0xB2CF, 0xB2D0, 0x84B1, 0x84B2, /* 0x60 */
- 0x84B3, 0x84B4, 0x84B5, 0x84B6, 0x84B7, 0x84B8, 0x84B9, 0x84BA, /* 0x60 */
- 0x84BB, 0x84BC, 0x84BD, 0x84BE, 0x84BF, 0x84C0, 0x84C1, 0x84C2, /* 0x70 */
- 0x84C3, 0xB2D1, 0x84C4, 0x84C5, 0x84C6, 0x84C7, 0x84C8, 0x84C9, /* 0x70 */
- 0xB2D2, 0x84CA, 0x84CB, 0x84CC, 0xB2D3, 0x84CD, 0x84CE, 0x84CF, /* 0x80 */
- 0xB2D4, 0x84D0, 0x84D1, 0x84D2, 0x84D3, 0x84D4, 0x84D5, 0x84D6, /* 0x80 */
- 0xB2D5, 0xB2D6, 0x84D7, 0x84D8, 0x84D9, 0xB2D7, 0x84DA, 0x84DB, /* 0x90 */
- 0x84DC, 0x84DD, 0x84DE, 0x84DF, 0xB2D8, 0x84E0, 0x84E1, 0x84E2, /* 0x90 */
- 0x84E3, 0x84E4, 0x84E5, 0x84E6, 0x84E7, 0x84E8, 0x84E9, 0x84EA, /* 0xA0 */
- 0x84EB, 0x84EC, 0x84ED, 0x84EE, 0x84EF, 0x84F0, 0x84F1, 0x84F2, /* 0xA0 */
- 0x84F3, 0x84F4, 0x84F5, 0x84F6, 0x84F7, 0x84F8, 0x84F9, 0x84FA, /* 0xB0 */
- 0xB2D9, 0xB2DA, 0x84FB, 0x84FC, 0xB2DB, 0x84FD, 0x84FE, 0x8541, /* 0xB0 */
- 0xB2DC, 0x8542, 0x8543, 0x8544, 0x8545, 0x8546, 0x8547, 0xB2DD, /* 0xC0 */
- 0xB2DE, 0xB2DF, 0x8548, 0xB2E0, 0x8549, 0xB2E1, 0xB2E2, 0x854A, /* 0xC0 */
- 0x854B, 0x854C, 0x854D, 0x854E, 0xB2E3, 0x854F, 0x8550, 0x8551, /* 0xD0 */
- 0x8552, 0x8553, 0x8554, 0x8555, 0xB2E4, 0x8556, 0x8557, 0x8558, /* 0xD0 */
- 0x8559, 0x855A, 0x8561, 0x8562, 0x8563, 0x8564, 0x8565, 0x8566, /* 0xE0 */
- 0xB2E5, 0xB2E6, 0x8567, 0x8568, 0x8569, 0x856A, 0x856B, 0x856C, /* 0xE0 */
- 0xB2E7, 0xB2E8, 0x856D, 0x856E, 0xB2E9, 0x856F, 0x8570, 0x8571, /* 0xF0 */
- 0xB2EA, 0x8572, 0x8573, 0x8574, 0x8575, 0x8576, 0x8577, 0x8578 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_B0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB2EB, 0xB2EC, 0x8579, 0x857A, 0xB2ED, 0x8581, 0x8582, 0x8583, /* 0x00 */
- 0x8584, 0x8585, 0x8586, 0x8587, 0xB2EE, 0x8588, 0x8589, 0x858A, /* 0x00 */
- 0xB2EF, 0x858B, 0x858C, 0x858D, 0xB2F0, 0x858E, 0x858F, 0x8590, /* 0x10 */
- 0x8591, 0x8592, 0x8593, 0x8594, 0xB2F1, 0xB2F2, 0x8595, 0x8596, /* 0x10 */
- 0x8597, 0x8598, 0x8599, 0x859A, 0x859B, 0x859C, 0x859D, 0x859E, /* 0x20 */
- 0xB2F3, 0x859F, 0x85A0, 0x85A1, 0x85A2, 0x85A3, 0x85A4, 0x85A5, /* 0x20 */
- 0x85A6, 0x85A7, 0x85A8, 0x85A9, 0x85AA, 0x85AB, 0x85AC, 0x85AD, /* 0x30 */
- 0x85AE, 0x85AF, 0x85B0, 0x85B1, 0x85B2, 0x85B3, 0x85B4, 0x85B5, /* 0x30 */
- 0x85B6, 0x85B7, 0x85B8, 0x85B9, 0xB2F4, 0xB2F5, 0x85BA, 0x85BB, /* 0x40 */
- 0xB2F6, 0x85BC, 0xB2F7, 0x85BD, 0xB2F8, 0x85BE, 0xB2F9, 0x85BF, /* 0x40 */
- 0x85C0, 0x85C1, 0x85C2, 0xB2FA, 0xB2FB, 0xB2FC, 0x85C3, 0xB2FD, /* 0x50 */
- 0x85C4, 0xB2FE, 0x85C5, 0x85C6, 0x85C7, 0xB3A1, 0x85C8, 0x85C9, /* 0x50 */
- 0x85CA, 0x85CB, 0x85CC, 0x85CD, 0x85CE, 0x85CF, 0x85D0, 0x85D1, /* 0x60 */
- 0x85D2, 0x85D3, 0x85D4, 0x85D5, 0x85D6, 0x85D7, 0x85D8, 0x85D9, /* 0x60 */
- 0x85DA, 0x85DB, 0x85DC, 0x85DD, 0x85DE, 0x85DF, 0x85E0, 0x85E1, /* 0x70 */
- 0x85E2, 0x85E3, 0x85E4, 0x85E5, 0xB3A2, 0xB3A3, 0x85E6, 0x85E7, /* 0x70 */
- 0xB3A4, 0x85E8, 0x85E9, 0x85EA, 0xB3A5, 0x85EB, 0x85EC, 0x85ED, /* 0x80 */
- 0x85EE, 0x85EF, 0x85F0, 0x85F1, 0xB3A6, 0xB3A7, 0x85F2, 0xB3A8, /* 0x80 */
- 0x85F3, 0xB3A9, 0x85F4, 0x85F5, 0x85F6, 0x85F7, 0x85F8, 0x85F9, /* 0x90 */
- 0xB3AA, 0xB3AB, 0xB3AC, 0x85FA, 0xB3AD, 0x85FB, 0x85FC, 0xB3AE, /* 0x90 */
- 0xB3AF, 0xB3B0, 0xB3B1, 0x85FD, 0x85FE, 0x8641, 0x8642, 0x8643, /* 0xA0 */
- 0xB3B2, 0xB3B3, 0x8644, 0xB3B4, 0xB3B5, 0xB3B6, 0xB3B7, 0xB3B8, /* 0xA0 */
- 0x8645, 0xB3B9, 0x8646, 0xB3BA, 0xB3BB, 0xB3BC, 0x8647, 0x8648, /* 0xB0 */
- 0xB3BD, 0x8649, 0x864A, 0x864B, 0xB3BE, 0x864C, 0x864D, 0x864E, /* 0xB0 */
- 0x864F, 0x8650, 0x8651, 0x8652, 0xB3BF, 0xB3C0, 0x8653, 0xB3C1, /* 0xC0 */
- 0xB3C2, 0xB3C3, 0x8654, 0x8655, 0x8656, 0x8657, 0x8658, 0x8659, /* 0xC0 */
- 0xB3C4, 0xB3C5, 0x865A, 0x8661, 0xB3C6, 0x8662, 0x8663, 0x8664, /* 0xD0 */
- 0xB3C7, 0x8665, 0x8666, 0x8667, 0x8668, 0x8669, 0x866A, 0x866B, /* 0xD0 */
- 0xB3C8, 0x866C, 0x866D, 0x866E, 0x866F, 0xB3C9, 0x8670, 0x8671, /* 0xE0 */
- 0x8672, 0x8673, 0x8674, 0x8675, 0x8676, 0x8677, 0x8678, 0x8679, /* 0xE0 */
- 0x867A, 0x8681, 0x8682, 0x8683, 0x8684, 0x8685, 0x8686, 0x8687, /* 0xF0 */
- 0x8688, 0x8689, 0x868A, 0x868B, 0x868C, 0x868D, 0x868E, 0x868F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_B1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8690, 0x8691, 0x8692, 0x8693, 0x8694, 0x8695, 0x8696, 0x8697, /* 0x00 */
- 0xB3CA, 0xB3CB, 0x8698, 0xB3CC, 0xB3CD, 0x8699, 0x869A, 0x869B, /* 0x00 */
- 0xB3CE, 0x869C, 0xB3CF, 0xB3D0, 0x869D, 0x869E, 0x869F, 0x86A0, /* 0x10 */
- 0xB3D1, 0xB3D2, 0x86A1, 0xB3D3, 0xB3D4, 0xB3D5, 0x86A2, 0x86A3, /* 0x10 */
- 0x86A4, 0x86A5, 0x86A6, 0xB3D6, 0xB3D7, 0xB3D8, 0x86A7, 0x86A8, /* 0x20 */
- 0xB3D9, 0x86A9, 0x86AA, 0x86AB, 0xB3DA, 0x86AC, 0x86AD, 0x86AE, /* 0x20 */
- 0x86AF, 0x86B0, 0x86B1, 0x86B2, 0xB3DB, 0xB3DC, 0x86B3, 0xB3DD, /* 0x30 */
- 0xB3DE, 0xB3DF, 0x86B4, 0x86B5, 0x86B6, 0x86B7, 0x86B8, 0x86B9, /* 0x30 */
- 0xB3E0, 0xB3E1, 0x86BA, 0x86BB, 0xB3E2, 0x86BC, 0x86BD, 0x86BE, /* 0x40 */
- 0xB3E3, 0x86BF, 0x86C0, 0x86C1, 0x86C2, 0x86C3, 0x86C4, 0x86C5, /* 0x40 */
- 0xB3E4, 0xB3E5, 0x86C6, 0x86C7, 0xB3E6, 0xB3E7, 0x86C8, 0x86C9, /* 0x50 */
- 0xB3E8, 0x86CA, 0x86CB, 0x86CC, 0xB3E9, 0x86CD, 0x86CE, 0x86CF, /* 0x50 */
- 0xB3EA, 0x86D0, 0x86D1, 0x86D2, 0x86D3, 0x86D4, 0x86D5, 0x86D6, /* 0x60 */
- 0x86D7, 0x86D8, 0x86D9, 0x86DA, 0x86DB, 0x86DC, 0x86DD, 0x86DE, /* 0x60 */
- 0x86DF, 0x86E0, 0x86E1, 0x86E2, 0x86E3, 0x86E4, 0x86E5, 0x86E6, /* 0x70 */
- 0xB3EB, 0xB3EC, 0x86E7, 0x86E8, 0xB3ED, 0x86E9, 0x86EA, 0x86EB, /* 0x70 */
- 0xB3EE, 0x86EC, 0xB3EF, 0x86ED, 0x86EE, 0x86EF, 0x86F0, 0x86F1, /* 0x80 */
- 0xB3F0, 0xB3F1, 0x86F2, 0xB3F2, 0x86F3, 0xB3F3, 0x86F4, 0x86F5, /* 0x80 */
- 0x86F6, 0x86F7, 0xB3F4, 0xB3F5, 0xB3F6, 0x86F8, 0x86F9, 0x86FA, /* 0x90 */
- 0xB3F7, 0x86FB, 0x86FC, 0x86FD, 0xB3F8, 0x86FE, 0x8741, 0x8742, /* 0x90 */
- 0x8743, 0x8744, 0x8745, 0x8746, 0x8747, 0x8748, 0x8749, 0x874A, /* 0xA0 */
- 0xB3F9, 0x874B, 0x874C, 0x874D, 0x874E, 0x874F, 0x8750, 0x8751, /* 0xA0 */
- 0x8752, 0x8753, 0x8754, 0x8755, 0x8756, 0x8757, 0x8758, 0x8759, /* 0xB0 */
- 0x875A, 0x8761, 0x8762, 0x8763, 0x8764, 0x8765, 0x8766, 0x8767, /* 0xB0 */
- 0x8768, 0x8769, 0x876A, 0x876B, 0x876C, 0x876D, 0x876E, 0x876F, /* 0xC0 */
- 0x8770, 0x8771, 0x8772, 0x8773, 0xB3FA, 0x8774, 0x8775, 0x8776, /* 0xC0 */
- 0xB3FB, 0x8777, 0x8778, 0x8779, 0xB3FC, 0x877A, 0x8781, 0x8782, /* 0xD0 */
- 0x8783, 0x8784, 0x8785, 0x8786, 0xB3FD, 0xB3FE, 0x8787, 0xB4A1, /* 0xD0 */
- 0x8788, 0x8789, 0x878A, 0x878B, 0x878C, 0x878D, 0x878E, 0x878F, /* 0xE0 */
- 0xB4A2, 0xB4A3, 0x8790, 0x8791, 0xB4A4, 0x8792, 0x8793, 0x8794, /* 0xE0 */
- 0xB4A5, 0x8795, 0x8796, 0x8797, 0x8798, 0x8799, 0x879A, 0x879B, /* 0xF0 */
- 0x879C, 0xB4A6, 0x879D, 0xB4A7, 0x879E, 0xB4A8, 0x879F, 0x87A0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_B2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x87A1, 0x87A2, 0x87A3, 0x87A4, 0xB4A9, 0xB4AA, 0x87A5, 0x87A6, /* 0x00 */
- 0xB4AB, 0x87A7, 0x87A8, 0xB4AC, 0xB4AD, 0x87A9, 0x87AA, 0x87AB, /* 0x00 */
- 0x87AC, 0x87AD, 0x87AE, 0x87AF, 0xB4AE, 0xB4AF, 0x87B0, 0xB4B0, /* 0x10 */
- 0x87B1, 0xB4B1, 0x87B2, 0x87B3, 0x87B4, 0x87B5, 0x87B6, 0x87B7, /* 0x10 */
- 0xB4B2, 0x87B8, 0x87B9, 0x87BA, 0x87BB, 0x87BC, 0x87BD, 0x87BE, /* 0x20 */
- 0x87BF, 0x87C0, 0x87C1, 0x87C2, 0x87C3, 0x87C4, 0x87C5, 0x87C6, /* 0x20 */
- 0x87C7, 0x87C8, 0x87C9, 0x87CA, 0xB4B3, 0x87CB, 0x87CC, 0x87CD, /* 0x30 */
- 0x87CE, 0x87CF, 0x87D0, 0x87D1, 0xB4B4, 0x87D2, 0x87D3, 0x87D4, /* 0x30 */
- 0x87D5, 0x87D6, 0x87D7, 0x87D8, 0x87D9, 0x87DA, 0x87DB, 0x87DC, /* 0x40 */
- 0x87DD, 0x87DE, 0x87DF, 0x87E0, 0x87E1, 0x87E2, 0x87E3, 0x87E4, /* 0x40 */
- 0x87E5, 0x87E6, 0x87E7, 0x87E8, 0x87E9, 0x87EA, 0x87EB, 0x87EC, /* 0x50 */
- 0xB4B5, 0x87ED, 0x87EE, 0x87EF, 0xB4B6, 0x87F0, 0x87F1, 0x87F2, /* 0x50 */
- 0xB4B7, 0x87F3, 0x87F4, 0x87F5, 0x87F6, 0x87F7, 0x87F8, 0x87F9, /* 0x60 */
- 0xB4B8, 0xB4B9, 0x87FA, 0x87FB, 0x87FC, 0x87FD, 0x87FE, 0x8841, /* 0x60 */
- 0x8842, 0x8843, 0x8844, 0x8845, 0xB4BA, 0xB4BB, 0x8846, 0x8847, /* 0x70 */
- 0x8848, 0x8849, 0x884A, 0x884B, 0xB4BC, 0x884C, 0x884D, 0x884E, /* 0x70 */
- 0x884F, 0x8850, 0x8851, 0x8852, 0xB4BD, 0xB4BE, 0x8853, 0x8854, /* 0x80 */
- 0x8855, 0xB4BF, 0x8856, 0x8857, 0x8858, 0x8859, 0x885A, 0x8861, /* 0x80 */
- 0xB4C0, 0xB4C1, 0x8862, 0x8863, 0xB4C2, 0x8864, 0x8865, 0x8866, /* 0x90 */
- 0xB4C3, 0xB4C4, 0xB4C5, 0x8867, 0x8868, 0x8869, 0x886A, 0x886B, /* 0x90 */
- 0xB4C6, 0xB4C7, 0x886C, 0xB4C8, 0x886D, 0xB4C9, 0xB4CA, 0x886E, /* 0xA0 */
- 0x886F, 0x8870, 0xB4CB, 0x8871, 0xB4CC, 0x8872, 0x8873, 0x8874, /* 0xA0 */
- 0xB4CD, 0x8875, 0x8876, 0x8877, 0xB4CE, 0x8878, 0x8879, 0x887A, /* 0xB0 */
- 0x8881, 0x8882, 0x8883, 0x8884, 0x8885, 0x8886, 0x8887, 0x8888, /* 0xB0 */
- 0x8889, 0x888A, 0x888B, 0x888C, 0x888D, 0x888E, 0x888F, 0x8890, /* 0xC0 */
- 0xB4CF, 0xB4D0, 0x8891, 0x8892, 0xB4D1, 0x8893, 0x8894, 0x8895, /* 0xC0 */
- 0xB4D2, 0x8896, 0xB4D3, 0x8897, 0x8898, 0x8899, 0x889A, 0x889B, /* 0xD0 */
- 0xB4D4, 0xB4D5, 0x889C, 0xB4D6, 0x889D, 0xB4D7, 0x889E, 0x889F, /* 0xD0 */
- 0x88A0, 0x88A1, 0xB4D8, 0x88A2, 0xB4D9, 0xB4DA, 0xB4DB, 0x88A3, /* 0xE0 */
- 0xB4DC, 0x88A4, 0x88A5, 0xB4DD, 0xB4DE, 0xB4DF, 0xB4E0, 0xB4E1, /* 0xE0 */
- 0x88A6, 0x88A7, 0x88A8, 0xB4E2, 0xB4E3, 0xB4E4, 0x88A9, 0xB4E5, /* 0xF0 */
- 0xB4E6, 0xB4E7, 0xB4E8, 0xB4E9, 0x88AA, 0x88AB, 0x88AC, 0xB4EA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_B3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB4EB, 0xB4EC, 0x88AD, 0x88AE, 0xB4ED, 0x88AF, 0x88B0, 0x88B1, /* 0x00 */
- 0xB4EE, 0x88B2, 0x88B3, 0x88B4, 0x88B5, 0x88B6, 0x88B7, 0x88B8, /* 0x00 */
- 0xB4EF, 0xB4F0, 0x88B9, 0xB4F1, 0xB4F2, 0xB4F3, 0x88BA, 0x88BB, /* 0x10 */
- 0x88BC, 0x88BD, 0x88BE, 0x88BF, 0xB4F4, 0x88C0, 0x88C1, 0x88C2, /* 0x10 */
- 0x88C3, 0x88C4, 0x88C5, 0x88C6, 0x88C7, 0x88C8, 0x88C9, 0x88CA, /* 0x20 */
- 0x88CB, 0x88CC, 0x88CD, 0x88CE, 0x88CF, 0x88D0, 0x88D1, 0x88D2, /* 0x20 */
- 0x88D3, 0x88D4, 0x88D5, 0x88D6, 0x88D7, 0x88D8, 0x88D9, 0x88DA, /* 0x30 */
- 0x88DB, 0x88DC, 0x88DD, 0x88DE, 0x88DF, 0x88E0, 0x88E1, 0x88E2, /* 0x30 */
- 0x88E3, 0x88E4, 0x88E5, 0x88E6, 0x88E7, 0x88E8, 0x88E9, 0x88EA, /* 0x40 */
- 0x88EB, 0x88EC, 0x88ED, 0x88EE, 0x88EF, 0x88F0, 0x88F1, 0x88F2, /* 0x40 */
- 0x88F3, 0x88F4, 0x88F5, 0x88F6, 0xB4F5, 0xB4F6, 0xB4F7, 0x88F7, /* 0x50 */
- 0xB4F8, 0x88F8, 0x88F9, 0xB4F9, 0xB4FA, 0x88FA, 0xB4FB, 0xB4FC, /* 0x50 */
- 0x88FB, 0x88FC, 0x88FD, 0x88FE, 0xB4FD, 0xB4FE, 0x8941, 0xB5A1, /* 0x60 */
- 0x8942, 0xB5A2, 0x8943, 0xB5A3, 0x8944, 0x8945, 0xB5A4, 0x8946, /* 0x60 */
- 0xB5A5, 0xB5A6, 0x8947, 0x8948, 0xB5A7, 0x8949, 0x894A, 0x894B, /* 0x70 */
- 0xB5A8, 0x894C, 0x894D, 0x894E, 0x894F, 0x8950, 0x8951, 0x8952, /* 0x70 */
- 0xB5A9, 0xB5AA, 0x8953, 0xB5AB, 0xB5AC, 0xB5AD, 0x8954, 0x8955, /* 0x80 */
- 0x8956, 0x8957, 0x8958, 0x8959, 0xB5AE, 0x895A, 0x8961, 0x8962, /* 0x80 */
- 0xB5AF, 0x8963, 0x8964, 0x8965, 0xB5B0, 0x8966, 0x8967, 0x8968, /* 0x90 */
- 0x8969, 0x896A, 0x896B, 0x896C, 0x896D, 0x896E, 0x896F, 0x8970, /* 0x90 */
- 0xB5B1, 0xB5B2, 0x8971, 0x8972, 0x8973, 0x8974, 0x8975, 0x8976, /* 0xA0 */
- 0xB5B3, 0x8977, 0x8978, 0x8979, 0xB5B4, 0x897A, 0x8981, 0x8982, /* 0xA0 */
- 0x8983, 0x8984, 0x8985, 0x8986, 0x8987, 0x8988, 0x8989, 0x898A, /* 0xB0 */
- 0x898B, 0x898C, 0x898D, 0x898E, 0x898F, 0x8990, 0x8991, 0x8992, /* 0xB0 */
- 0x8993, 0x8994, 0x8995, 0x8996, 0xB5B5, 0xB5B6, 0x8997, 0x8998, /* 0xC0 */
- 0xB5B7, 0x8999, 0x899A, 0xB5B8, 0xB5B9, 0x899B, 0xB5BA, 0x899C, /* 0xC0 */
- 0xB5BB, 0x899D, 0x899E, 0x899F, 0xB5BC, 0xB5BD, 0x89A0, 0xB5BE, /* 0xD0 */
- 0x89A1, 0xB5BF, 0x89A2, 0xB5C0, 0x89A3, 0xB5C1, 0x89A4, 0x89A5, /* 0xD0 */
- 0xB5C2, 0x89A6, 0x89A7, 0x89A8, 0xB5C3, 0x89A9, 0x89AA, 0x89AB, /* 0xE0 */
- 0xB5C4, 0x89AC, 0x89AD, 0x89AE, 0x89AF, 0x89B0, 0x89B1, 0x89B2, /* 0xE0 */
- 0x89B3, 0x89B4, 0x89B5, 0x89B6, 0x89B7, 0x89B8, 0x89B9, 0x89BA, /* 0xF0 */
- 0x89BB, 0x89BC, 0x89BD, 0x89BE, 0xB5C5, 0x89BF, 0x89C0, 0x89C1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_B4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x89C2, 0x89C3, 0x89C4, 0x89C5, 0x89C6, 0x89C7, 0x89C8, 0x89C9, /* 0x00 */
- 0x89CA, 0x89CB, 0x89CC, 0x89CD, 0x89CE, 0x89CF, 0x89D0, 0x89D1, /* 0x00 */
- 0xB5C6, 0x89D2, 0x89D3, 0x89D4, 0x89D5, 0x89D6, 0x89D7, 0x89D8, /* 0x10 */
- 0xB5C7, 0x89D9, 0x89DA, 0x89DB, 0xB5C8, 0x89DC, 0x89DD, 0x89DE, /* 0x10 */
- 0xB5C9, 0x89DF, 0x89E0, 0x89E1, 0x89E2, 0x89E3, 0x89E4, 0x89E5, /* 0x20 */
- 0xB5CA, 0xB5CB, 0x89E6, 0xB5CC, 0x89E7, 0x89E8, 0x89E9, 0x89EA, /* 0x20 */
- 0x89EB, 0x89EC, 0x89ED, 0x89EE, 0xB5CD, 0x89EF, 0x89F0, 0x89F1, /* 0x30 */
- 0x89F2, 0x89F3, 0x89F4, 0x89F5, 0x89F6, 0x89F7, 0x89F8, 0x89F9, /* 0x30 */
- 0x89FA, 0x89FB, 0x89FC, 0x89FD, 0x89FE, 0x8A41, 0x8A42, 0x8A43, /* 0x40 */
- 0x8A44, 0x8A45, 0x8A46, 0x8A47, 0x8A48, 0x8A49, 0x8A4A, 0x8A4B, /* 0x40 */
- 0xB5CE, 0xB5CF, 0x8A4C, 0x8A4D, 0xB5D0, 0x8A4E, 0x8A4F, 0x8A50, /* 0x50 */
- 0xB5D1, 0x8A51, 0x8A52, 0x8A53, 0x8A54, 0x8A55, 0x8A56, 0x8A57, /* 0x50 */
- 0xB5D2, 0xB5D3, 0x8A58, 0xB5D4, 0x8A59, 0xB5D5, 0x8A5A, 0x8A61, /* 0x60 */
- 0x8A62, 0x8A63, 0x8A64, 0x8A65, 0xB5D6, 0x8A66, 0x8A67, 0x8A68, /* 0x60 */
- 0x8A69, 0x8A6A, 0x8A6B, 0x8A6C, 0x8A6D, 0x8A6E, 0x8A6F, 0x8A70, /* 0x70 */
- 0x8A71, 0x8A72, 0x8A73, 0x8A74, 0x8A75, 0x8A76, 0x8A77, 0x8A78, /* 0x70 */
- 0xB5D7, 0x8A79, 0x8A7A, 0x8A81, 0x8A82, 0x8A83, 0x8A84, 0x8A85, /* 0x80 */
- 0xB5D8, 0x8A86, 0x8A87, 0x8A88, 0x8A89, 0x8A8A, 0x8A8B, 0x8A8C, /* 0x80 */
- 0x8A8D, 0x8A8E, 0x8A8F, 0x8A90, 0x8A91, 0x8A92, 0x8A93, 0x8A94, /* 0x90 */
- 0x8A95, 0x8A96, 0x8A97, 0x8A98, 0x8A99, 0xB5D9, 0x8A9A, 0x8A9B, /* 0x90 */
- 0x8A9C, 0x8A9D, 0x8A9E, 0x8A9F, 0xB5DA, 0x8AA0, 0x8AA1, 0x8AA2, /* 0xA0 */
- 0xB5DB, 0x8AA3, 0x8AA4, 0x8AA5, 0xB5DC, 0x8AA6, 0x8AA7, 0x8AA8, /* 0xA0 */
- 0x8AA9, 0x8AAA, 0x8AAB, 0x8AAC, 0x8AAD, 0xB5DD, 0x8AAE, 0xB5DE, /* 0xB0 */
- 0x8AAF, 0xB5DF, 0x8AB0, 0x8AB1, 0x8AB2, 0x8AB3, 0x8AB4, 0x8AB5, /* 0xB0 */
- 0xB5E0, 0x8AB6, 0x8AB7, 0x8AB8, 0xB5E1, 0x8AB9, 0x8ABA, 0x8ABB, /* 0xC0 */
- 0xB5E2, 0x8ABC, 0x8ABD, 0x8ABE, 0x8ABF, 0x8AC0, 0x8AC1, 0x8AC2, /* 0xC0 */
- 0xB5E3, 0x8AC3, 0x8AC4, 0x8AC5, 0x8AC6, 0xB5E4, 0x8AC7, 0x8AC8, /* 0xD0 */
- 0x8AC9, 0x8ACA, 0x8ACB, 0x8ACC, 0xB5E5, 0xB5E6, 0x8ACD, 0x8ACE, /* 0xD0 */
- 0xB5E7, 0x8ACF, 0x8AD0, 0xB5E8, 0xB5E9, 0x8AD1, 0xB5EA, 0x8AD2, /* 0xE0 */
- 0x8AD3, 0x8AD4, 0x8AD5, 0x8AD6, 0xB5EB, 0xB5EC, 0x8AD7, 0xB5ED, /* 0xE0 */
- 0x8AD8, 0xB5EE, 0x8AD9, 0x8ADA, 0x8ADB, 0x8ADC, 0x8ADD, 0x8ADE, /* 0xF0 */
- 0xB5EF, 0x8ADF, 0x8AE0, 0x8AE1, 0x8AE2, 0x8AE3, 0x8AE4, 0x8AE5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_B5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8AE6, 0x8AE7, 0x8AE8, 0x8AE9, 0x8AEA, 0x8AEB, 0x8AEC, 0x8AED, /* 0x00 */
- 0x8AEE, 0x8AEF, 0x8AF0, 0x8AF1, 0x8AF2, 0x8AF3, 0x8AF4, 0x8AF5, /* 0x00 */
- 0x8AF6, 0x8AF7, 0x8AF8, 0x8AF9, 0xB5F0, 0xB5F1, 0x8AFA, 0x8AFB, /* 0x10 */
- 0xB5F2, 0x8AFC, 0x8AFD, 0xB5F3, 0xB5F4, 0x8AFE, 0x8B41, 0x8B42, /* 0x10 */
- 0x8B43, 0x8B44, 0x8B45, 0x8B46, 0xB5F5, 0xB5F6, 0x8B47, 0xB5F7, /* 0x20 */
- 0xB5F8, 0xB5F9, 0xB5FA, 0x8B48, 0x8B49, 0x8B4A, 0x8B4B, 0x8B4C, /* 0x20 */
- 0xB5FB, 0xB5FC, 0x8B4D, 0x8B4E, 0xB5FD, 0x8B4F, 0x8B50, 0x8B51, /* 0x30 */
- 0xB5FE, 0x8B52, 0x8B53, 0x8B54, 0x8B55, 0x8B56, 0x8B57, 0x8B58, /* 0x30 */
- 0xB6A1, 0xB6A2, 0x8B59, 0xB6A3, 0xB6A4, 0xB6A5, 0x8B5A, 0x8B61, /* 0x40 */
- 0x8B62, 0x8B63, 0x8B64, 0xB6A6, 0xB6A7, 0xB6A8, 0x8B65, 0x8B66, /* 0x40 */
- 0xB6A9, 0x8B67, 0x8B68, 0x8B69, 0xB6AA, 0x8B6A, 0x8B6B, 0x8B6C, /* 0x50 */
- 0x8B6D, 0x8B6E, 0x8B6F, 0x8B70, 0xB6AB, 0xB6AC, 0x8B71, 0xB6AD, /* 0x50 */
- 0xB6AE, 0xB6AF, 0x8B72, 0x8B73, 0x8B74, 0x8B75, 0x8B76, 0x8B77, /* 0x60 */
- 0x8B78, 0x8B79, 0x8B7A, 0x8B81, 0x8B82, 0x8B83, 0x8B84, 0x8B85, /* 0x60 */
- 0x8B86, 0x8B87, 0x8B88, 0x8B89, 0x8B8A, 0x8B8B, 0x8B8C, 0x8B8D, /* 0x70 */
- 0x8B8E, 0x8B8F, 0x8B90, 0x8B91, 0x8B92, 0x8B93, 0x8B94, 0x8B95, /* 0x70 */
- 0x8B96, 0x8B97, 0x8B98, 0x8B99, 0x8B9A, 0x8B9B, 0x8B9C, 0x8B9D, /* 0x80 */
- 0x8B9E, 0x8B9F, 0x8BA0, 0x8BA1, 0x8BA2, 0x8BA3, 0x8BA4, 0x8BA5, /* 0x80 */
- 0x8BA6, 0x8BA7, 0x8BA8, 0x8BA9, 0x8BAA, 0x8BAB, 0x8BAC, 0x8BAD, /* 0x90 */
- 0x8BAE, 0x8BAF, 0x8BB0, 0x8BB1, 0x8BB2, 0x8BB3, 0x8BB4, 0x8BB5, /* 0x90 */
- 0xB6B0, 0xB6B1, 0x8BB6, 0x8BB7, 0xB6B2, 0x8BB8, 0x8BB9, 0x8BBA, /* 0xA0 */
- 0xB6B3, 0x8BBB, 0xB6B4, 0xB6B5, 0x8BBC, 0x8BBD, 0x8BBE, 0x8BBF, /* 0xA0 */
- 0xB6B6, 0xB6B7, 0x8BC0, 0xB6B8, 0xB6B9, 0xB6BA, 0x8BC1, 0x8BC2, /* 0xB0 */
- 0x8BC3, 0x8BC4, 0x8BC5, 0xB6BB, 0xB6BC, 0xB6BD, 0x8BC6, 0x8BC7, /* 0xB0 */
- 0xB6BE, 0x8BC8, 0x8BC9, 0x8BCA, 0xB6BF, 0x8BCB, 0x8BCC, 0x8BCD, /* 0xC0 */
- 0x8BCE, 0x8BCF, 0x8BD0, 0x8BD1, 0xB6C0, 0xB6C1, 0x8BD2, 0xB6C2, /* 0xC0 */
- 0xB6C3, 0xB6C4, 0x8BD3, 0x8BD4, 0x8BD5, 0x8BD6, 0x8BD7, 0x8BD8, /* 0xD0 */
- 0xB6C5, 0x8BD9, 0x8BDA, 0x8BDB, 0x8BDC, 0x8BDD, 0x8BDE, 0x8BDF, /* 0xD0 */
- 0x8BE0, 0x8BE1, 0x8BE2, 0x8BE3, 0x8BE4, 0x8BE5, 0x8BE6, 0x8BE7, /* 0xE0 */
- 0x8BE8, 0x8BE9, 0x8BEA, 0x8BEB, 0xB6C6, 0x8BEC, 0x8BED, 0x8BEE, /* 0xE0 */
- 0x8BEF, 0x8BF0, 0x8BF1, 0x8BF2, 0x8BF3, 0x8BF4, 0x8BF5, 0x8BF6, /* 0xF0 */
- 0x8BF7, 0x8BF8, 0x8BF9, 0x8BFA, 0x8BFB, 0x8BFC, 0x8BFD, 0x8BFE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_B6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8C41, 0x8C42, 0x8C43, 0x8C44, 0x8C45, 0x8C46, 0x8C47, 0x8C48, /* 0x00 */
- 0x8C49, 0x8C4A, 0x8C4B, 0x8C4C, 0x8C4D, 0x8C4E, 0x8C4F, 0x8C50, /* 0x00 */
- 0xB6C7, 0xB6C8, 0x8C51, 0x8C52, 0xB6C9, 0x8C53, 0x8C54, 0x8C55, /* 0x10 */
- 0xB6CA, 0x8C56, 0x8C57, 0x8C58, 0x8C59, 0x8C5A, 0x8C61, 0x8C62, /* 0x10 */
- 0x8C63, 0x8C64, 0x8C65, 0x8C66, 0x8C67, 0xB6CB, 0x8C68, 0x8C69, /* 0x20 */
- 0x8C6A, 0x8C6B, 0x8C6C, 0x8C6D, 0xB6CC, 0x8C6E, 0x8C6F, 0x8C70, /* 0x20 */
- 0x8C71, 0x8C72, 0x8C73, 0x8C74, 0xB6CD, 0x8C75, 0x8C76, 0x8C77, /* 0x30 */
- 0x8C78, 0x8C79, 0x8C7A, 0x8C81, 0x8C82, 0x8C83, 0x8C84, 0x8C85, /* 0x30 */
- 0x8C86, 0x8C87, 0x8C88, 0x8C89, 0x8C8A, 0x8C8B, 0x8C8C, 0x8C8D, /* 0x40 */
- 0xB6CE, 0x8C8E, 0x8C8F, 0x8C90, 0x8C91, 0x8C92, 0x8C93, 0x8C94, /* 0x40 */
- 0x8C95, 0x8C96, 0x8C97, 0x8C98, 0x8C99, 0x8C9A, 0x8C9B, 0x8C9C, /* 0x50 */
- 0x8C9D, 0x8C9E, 0x8C9F, 0x8CA0, 0x8CA1, 0x8CA2, 0x8CA3, 0x8CA4, /* 0x50 */
- 0x8CA5, 0x8CA6, 0x8CA7, 0x8CA8, 0xB6CF, 0x8CA9, 0x8CAA, 0x8CAB, /* 0x60 */
- 0xB6D0, 0x8CAC, 0x8CAD, 0x8CAE, 0x8CAF, 0x8CB0, 0x8CB1, 0x8CB2, /* 0x60 */
- 0x8CB3, 0x8CB4, 0x8CB5, 0x8CB6, 0x8CB7, 0x8CB8, 0x8CB9, 0x8CBA, /* 0x70 */
- 0x8CBB, 0x8CBC, 0x8CBD, 0x8CBE, 0x8CBF, 0x8CC0, 0x8CC1, 0x8CC2, /* 0x70 */
- 0x8CC3, 0x8CC4, 0x8CC5, 0x8CC6, 0x8CC7, 0x8CC8, 0x8CC9, 0x8CCA, /* 0x80 */
- 0x8CCB, 0x8CCC, 0x8CCD, 0x8CCE, 0x8CCF, 0x8CD0, 0x8CD1, 0x8CD2, /* 0x80 */
- 0x8CD3, 0x8CD4, 0x8CD5, 0x8CD6, 0x8CD7, 0x8CD8, 0x8CD9, 0x8CDA, /* 0x90 */
- 0x8CDB, 0x8CDC, 0x8CDD, 0x8CDE, 0xB6D1, 0xB6D2, 0x8CDF, 0x8CE0, /* 0x90 */
- 0xB6D3, 0x8CE1, 0x8CE2, 0x8CE3, 0xB6D4, 0x8CE4, 0x8CE5, 0x8CE6, /* 0xA0 */
- 0x8CE7, 0x8CE8, 0x8CE9, 0xB6D5, 0xB6D6, 0x8CEA, 0x8CEB, 0x8CEC, /* 0xA0 */
- 0x8CED, 0xB6D7, 0x8CEE, 0x8CEF, 0x8CF0, 0x8CF1, 0x8CF2, 0x8CF3, /* 0xB0 */
- 0x8CF4, 0x8CF5, 0x8CF6, 0x8CF7, 0x8CF8, 0x8CF9, 0x8CFA, 0x8CFB, /* 0xB0 */
- 0x8CFC, 0x8CFD, 0x8CFE, 0x8D41, 0x8D42, 0x8D43, 0x8D44, 0x8D45, /* 0xC0 */
- 0x8D46, 0x8D47, 0x8D48, 0x8D49, 0x8D4A, 0x8D4B, 0x8D4C, 0x8D4D, /* 0xC0 */
- 0x8D4E, 0x8D4F, 0x8D50, 0x8D51, 0xB6D8, 0x8D52, 0x8D53, 0x8D54, /* 0xD0 */
- 0x8D55, 0x8D56, 0x8D57, 0x8D58, 0x8D59, 0x8D5A, 0x8D61, 0x8D62, /* 0xD0 */
- 0x8D63, 0x8D64, 0x8D65, 0x8D66, 0x8D67, 0x8D68, 0x8D69, 0x8D6A, /* 0xE0 */
- 0x8D6B, 0x8D6C, 0x8D6D, 0x8D6E, 0x8D6F, 0x8D70, 0x8D71, 0x8D72, /* 0xE0 */
- 0xB6D9, 0x8D73, 0x8D74, 0x8D75, 0xB6DA, 0x8D76, 0x8D77, 0x8D78, /* 0xF0 */
- 0xB6DB, 0x8D79, 0x8D7A, 0x8D81, 0x8D82, 0x8D83, 0x8D84, 0x8D85 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_B7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB6DC, 0xB6DD, 0x8D86, 0x8D87, 0x8D88, 0xB6DE, 0x8D89, 0x8D8A, /* 0x00 */
- 0x8D8B, 0x8D8C, 0x8D8D, 0x8D8E, 0x8D8F, 0x8D90, 0x8D91, 0x8D92, /* 0x00 */
- 0x8D93, 0x8D94, 0x8D95, 0x8D96, 0x8D97, 0x8D98, 0x8D99, 0x8D9A, /* 0x10 */
- 0x8D9B, 0x8D9C, 0x8D9D, 0x8D9E, 0x8D9F, 0x8DA0, 0x8DA1, 0x8DA2, /* 0x10 */
- 0x8DA3, 0x8DA4, 0x8DA5, 0x8DA6, 0x8DA7, 0x8DA8, 0x8DA9, 0x8DAA, /* 0x20 */
- 0xB6DF, 0xB6E0, 0x8DAB, 0x8DAC, 0xB6E1, 0x8DAD, 0x8DAE, 0xB6E2, /* 0x20 */
- 0xB6E3, 0x8DAF, 0x8DB0, 0x8DB1, 0x8DB2, 0x8DB3, 0x8DB4, 0x8DB5, /* 0x30 */
- 0xB6E4, 0xB6E5, 0x8DB6, 0xB6E6, 0x8DB7, 0x8DB8, 0x8DB9, 0x8DBA, /* 0x30 */
- 0x8DBB, 0x8DBC, 0x8DBD, 0x8DBE, 0xB6E7, 0x8DBF, 0x8DC0, 0x8DC1, /* 0x40 */
- 0xB6E8, 0x8DC2, 0x8DC3, 0x8DC4, 0xB6E9, 0x8DC5, 0x8DC6, 0x8DC7, /* 0x40 */
- 0x8DC8, 0x8DC9, 0x8DCA, 0x8DCB, 0xB6EA, 0xB6EB, 0x8DCC, 0x8DCD, /* 0x50 */
- 0x8DCE, 0x8DCF, 0x8DD0, 0x8DD1, 0x8DD2, 0x8DD3, 0x8DD4, 0x8DD5, /* 0x50 */
- 0xB6EC, 0x8DD6, 0x8DD7, 0x8DD8, 0xB6ED, 0x8DD9, 0x8DDA, 0x8DDB, /* 0x60 */
- 0xB6EE, 0x8DDC, 0x8DDD, 0x8DDE, 0x8DDF, 0x8DE0, 0x8DE1, 0x8DE2, /* 0x60 */
- 0xB6EF, 0xB6F0, 0x8DE3, 0xB6F1, 0x8DE4, 0xB6F2, 0x8DE5, 0x8DE6, /* 0x70 */
- 0x8DE7, 0x8DE8, 0x8DE9, 0x8DEA, 0xB6F3, 0xB6F4, 0x8DEB, 0x8DEC, /* 0x70 */
- 0xB6F5, 0x8DED, 0x8DEE, 0x8DEF, 0xB6F6, 0x8DF0, 0x8DF1, 0x8DF2, /* 0x80 */
- 0x8DF3, 0x8DF4, 0x8DF5, 0x8DF6, 0xB6F7, 0xB6F8, 0x8DF7, 0xB6F9, /* 0x80 */
- 0xB6FA, 0xB6FB, 0xB6FC, 0x8DF8, 0x8DF9, 0x8DFA, 0xB6FD, 0xB6FE, /* 0x90 */
- 0xB7A1, 0xB7A2, 0x8DFB, 0x8DFC, 0xB7A3, 0x8DFD, 0x8DFE, 0x8E41, /* 0x90 */
- 0xB7A4, 0x8E42, 0x8E43, 0x8E44, 0x8E45, 0x8E46, 0x8E47, 0x8E48, /* 0xA0 */
- 0xB7A5, 0xB7A6, 0x8E49, 0xB7A7, 0xB7A8, 0xB7A9, 0x8E4A, 0x8E4B, /* 0xA0 */
- 0x8E4C, 0x8E4D, 0x8E4E, 0x8E4F, 0xB7AA, 0xB7AB, 0x8E50, 0x8E51, /* 0xB0 */
- 0xB7AC, 0x8E52, 0x8E53, 0x8E54, 0x8E55, 0x8E56, 0x8E57, 0x8E58, /* 0xB0 */
- 0x8E59, 0x8E5A, 0x8E61, 0x8E62, 0x8E63, 0x8E64, 0x8E65, 0xB7AD, /* 0xC0 */
- 0x8E66, 0xB7AE, 0x8E67, 0x8E68, 0x8E69, 0x8E6A, 0x8E6B, 0x8E6C, /* 0xC0 */
- 0x8E6D, 0x8E6E, 0x8E6F, 0x8E70, 0x8E71, 0x8E72, 0x8E73, 0x8E74, /* 0xD0 */
- 0x8E75, 0x8E76, 0x8E77, 0x8E78, 0x8E79, 0x8E7A, 0x8E81, 0x8E82, /* 0xD0 */
- 0x8E83, 0x8E84, 0x8E85, 0x8E86, 0x8E87, 0x8E88, 0x8E89, 0x8E8A, /* 0xE0 */
- 0x8E8B, 0x8E8C, 0x8E8D, 0x8E8E, 0xB7AF, 0xB7B0, 0x8E8F, 0x8E90, /* 0xE0 */
- 0xB7B1, 0x8E91, 0x8E92, 0x8E93, 0xB7B2, 0x8E94, 0x8E95, 0x8E96, /* 0xF0 */
- 0x8E97, 0x8E98, 0x8E99, 0x8E9A, 0xB7B3, 0xB7B4, 0x8E9B, 0xB7B5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_B8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB7B6, 0xB7B7, 0x8E9C, 0x8E9D, 0x8E9E, 0x8E9F, 0x8EA0, 0xB7B8, /* 0x00 */
- 0xB7B9, 0xB7BA, 0x8EA1, 0x8EA2, 0xB7BB, 0x8EA3, 0x8EA4, 0x8EA5, /* 0x00 */
- 0xB7BC, 0x8EA6, 0x8EA7, 0x8EA8, 0x8EA9, 0x8EAA, 0x8EAB, 0x8EAC, /* 0x10 */
- 0xB7BD, 0xB7BE, 0x8EAD, 0xB7BF, 0x8EAE, 0xB7C0, 0x8EAF, 0x8EB0, /* 0x10 */
- 0x8EB1, 0x8EB2, 0x8EB3, 0x8EB4, 0xB7C1, 0xB7C2, 0x8EB5, 0x8EB6, /* 0x20 */
- 0xB7C3, 0x8EB7, 0x8EB8, 0x8EB9, 0xB7C4, 0x8EBA, 0x8EBB, 0x8EBC, /* 0x20 */
- 0x8EBD, 0x8EBE, 0x8EBF, 0x8EC0, 0xB7C5, 0xB7C6, 0x8EC1, 0xB7C7, /* 0x30 */
- 0xB7C8, 0xB7C9, 0x8EC2, 0x8EC3, 0x8EC4, 0x8EC5, 0x8EC6, 0x8EC7, /* 0x30 */
- 0xB7CA, 0x8EC8, 0x8EC9, 0x8ECA, 0xB7CB, 0x8ECB, 0x8ECC, 0x8ECD, /* 0x40 */
- 0x8ECE, 0x8ECF, 0x8ED0, 0x8ED1, 0x8ED2, 0x8ED3, 0x8ED4, 0x8ED5, /* 0x40 */
- 0x8ED6, 0xB7CC, 0x8ED7, 0xB7CD, 0x8ED8, 0x8ED9, 0x8EDA, 0x8EDB, /* 0x50 */
- 0x8EDC, 0x8EDD, 0x8EDE, 0x8EDF, 0xB7CE, 0xB7CF, 0x8EE0, 0x8EE1, /* 0x50 */
- 0xB7D0, 0x8EE2, 0x8EE3, 0x8EE4, 0xB7D1, 0x8EE5, 0x8EE6, 0x8EE7, /* 0x60 */
- 0x8EE8, 0x8EE9, 0x8EEA, 0x8EEB, 0xB7D2, 0xB7D3, 0x8EEC, 0xB7D4, /* 0x60 */
- 0x8EED, 0xB7D5, 0x8EEE, 0x8EEF, 0x8EF0, 0x8EF1, 0x8EF2, 0x8EF3, /* 0x70 */
- 0xB7D6, 0x8EF4, 0x8EF5, 0x8EF6, 0xB7D7, 0x8EF7, 0x8EF8, 0x8EF9, /* 0x70 */
- 0x8EFA, 0x8EFB, 0x8EFC, 0x8EFD, 0x8EFE, 0x8F41, 0x8F42, 0x8F43, /* 0x80 */
- 0x8F44, 0x8F45, 0x8F46, 0x8F47, 0x8F48, 0xB7D8, 0x8F49, 0x8F4A, /* 0x80 */
- 0x8F4B, 0x8F4C, 0x8F4D, 0x8F4E, 0x8F4F, 0x8F50, 0x8F51, 0x8F52, /* 0x90 */
- 0x8F53, 0x8F54, 0x8F55, 0x8F56, 0x8F57, 0x8F58, 0x8F59, 0x8F5A, /* 0x90 */
- 0x8F61, 0x8F62, 0x8F63, 0x8F64, 0x8F65, 0x8F66, 0x8F67, 0x8F68, /* 0xA0 */
- 0xB7D9, 0x8F69, 0x8F6A, 0x8F6B, 0x8F6C, 0x8F6D, 0x8F6E, 0x8F6F, /* 0xA0 */
- 0xB7DA, 0x8F70, 0x8F71, 0x8F72, 0xB7DB, 0x8F73, 0x8F74, 0x8F75, /* 0xB0 */
- 0xB7DC, 0x8F76, 0x8F77, 0x8F78, 0x8F79, 0x8F7A, 0x8F81, 0x8F82, /* 0xB0 */
- 0xB7DD, 0xB7DE, 0x8F83, 0xB7DF, 0x8F84, 0xB7E0, 0x8F85, 0x8F86, /* 0xC0 */
- 0x8F87, 0x8F88, 0x8F89, 0x8F8A, 0xB7E1, 0x8F8B, 0x8F8C, 0x8F8D, /* 0xC0 */
- 0xB7E2, 0x8F8E, 0x8F8F, 0x8F90, 0xB7E3, 0x8F91, 0x8F92, 0x8F93, /* 0xD0 */
- 0x8F94, 0x8F95, 0x8F96, 0x8F97, 0x8F98, 0xB7E4, 0x8F99, 0xB7E5, /* 0xD0 */
- 0x8F9A, 0xB7E6, 0x8F9B, 0x8F9C, 0x8F9D, 0x8F9E, 0x8F9F, 0x8FA0, /* 0xE0 */
- 0xB7E7, 0xB7E8, 0x8FA1, 0x8FA2, 0xB7E9, 0x8FA3, 0x8FA4, 0x8FA5, /* 0xE0 */
- 0xB7EA, 0x8FA6, 0x8FA7, 0x8FA8, 0x8FA9, 0x8FAA, 0x8FAB, 0x8FAC, /* 0xF0 */
- 0xB7EB, 0xB7EC, 0x8FAD, 0xB7ED, 0x8FAE, 0xB7EE, 0x8FAF, 0x8FB0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_B9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8FB1, 0x8FB2, 0x8FB3, 0x8FB4, 0xB7EF, 0x8FB5, 0x8FB6, 0x8FB7, /* 0x00 */
- 0x8FB8, 0x8FB9, 0x8FBA, 0x8FBB, 0x8FBC, 0x8FBD, 0x8FBE, 0x8FBF, /* 0x00 */
- 0x8FC0, 0x8FC1, 0x8FC2, 0x8FC3, 0x8FC4, 0x8FC5, 0x8FC6, 0x8FC7, /* 0x10 */
- 0xB7F0, 0x8FC8, 0x8FC9, 0x8FCA, 0x8FCB, 0x8FCC, 0x8FCD, 0x8FCE, /* 0x10 */
- 0xB7F1, 0x8FCF, 0x8FD0, 0x8FD1, 0x8FD2, 0x8FD3, 0x8FD4, 0x8FD5, /* 0x20 */
- 0x8FD6, 0x8FD7, 0x8FD8, 0x8FD9, 0x8FDA, 0x8FDB, 0x8FDC, 0x8FDD, /* 0x20 */
- 0x8FDE, 0x8FDF, 0x8FE0, 0x8FE1, 0x8FE2, 0x8FE3, 0x8FE4, 0x8FE5, /* 0x30 */
- 0x8FE6, 0x8FE7, 0x8FE8, 0x8FE9, 0xB7F2, 0xB7F3, 0x8FEA, 0x8FEB, /* 0x30 */
- 0xB7F4, 0x8FEC, 0x8FED, 0x8FEE, 0xB7F5, 0x8FEF, 0x8FF0, 0x8FF1, /* 0x40 */
- 0x8FF2, 0x8FF3, 0x8FF4, 0x8FF5, 0xB7F6, 0x8FF6, 0x8FF7, 0xB7F7, /* 0x40 */
- 0x8FF8, 0xB7F8, 0x8FF9, 0x8FFA, 0x8FFB, 0x8FFC, 0x8FFD, 0x8FFE, /* 0x50 */
- 0xB7F9, 0xB7FA, 0x9041, 0x9042, 0xB7FB, 0x9043, 0x9044, 0x9045, /* 0x50 */
- 0xB7FC, 0x9046, 0x9047, 0x9048, 0x9049, 0x904A, 0x904B, 0x904C, /* 0x60 */
- 0xB7FD, 0xB7FE, 0x904D, 0xB8A1, 0x904E, 0xB8A2, 0x904F, 0x9050, /* 0x60 */
- 0x9051, 0x9052, 0x9053, 0x9054, 0xB8A3, 0xB8A4, 0x9055, 0x9056, /* 0x70 */
- 0xB8A5, 0x9057, 0x9058, 0x9059, 0xB8A6, 0x905A, 0x9061, 0x9062, /* 0x70 */
- 0x9063, 0x9064, 0x9065, 0x9066, 0xB8A7, 0xB8A8, 0x9067, 0xB8A9, /* 0x80 */
- 0x9068, 0xB8AA, 0xB8AB, 0x9069, 0x906A, 0xB8AC, 0xB8AD, 0x906B, /* 0x80 */
- 0x906C, 0x906D, 0x906E, 0x906F, 0x9070, 0x9071, 0x9072, 0x9073, /* 0x90 */
- 0x9074, 0x9075, 0x9076, 0x9077, 0x9078, 0x9079, 0x907A, 0x9081, /* 0x90 */
- 0x9082, 0x9083, 0x9084, 0x9085, 0x9086, 0x9087, 0x9088, 0x9089, /* 0xA0 */
- 0x908A, 0x908B, 0x908C, 0x908D, 0xB8AE, 0xB8AF, 0x908E, 0x908F, /* 0xA0 */
- 0xB8B0, 0x9090, 0x9091, 0x9092, 0xB8B1, 0x9093, 0x9094, 0x9095, /* 0xB0 */
- 0x9096, 0x9097, 0x9098, 0x9099, 0xB8B2, 0xB8B3, 0x909A, 0xB8B4, /* 0xB0 */
- 0x909B, 0xB8B5, 0x909C, 0x909D, 0x909E, 0x909F, 0x90A0, 0x90A1, /* 0xC0 */
- 0xB8B6, 0xB8B7, 0x90A2, 0x90A3, 0xB8B8, 0x90A4, 0xB8B9, 0xB8BA, /* 0xC0 */
- 0xB8BB, 0xB8BC, 0xB8BD, 0x90A5, 0x90A6, 0x90A7, 0x90A8, 0x90A9, /* 0xD0 */
- 0xB8BE, 0xB8BF, 0x90AA, 0xB8C0, 0x90AB, 0xB8C1, 0xB8C2, 0x90AC, /* 0xD0 */
- 0x90AD, 0xB8C3, 0x90AE, 0xB8C4, 0xB8C5, 0xB8C6, 0x90AF, 0x90B0, /* 0xE0 */
- 0xB8C7, 0x90B1, 0x90B2, 0x90B3, 0xB8C8, 0x90B4, 0x90B5, 0x90B6, /* 0xE0 */
- 0x90B7, 0x90B8, 0x90B9, 0x90BA, 0xB8C9, 0xB8CA, 0x90BB, 0xB8CB, /* 0xF0 */
- 0xB8CC, 0xB8CD, 0xB8CE, 0x90BC, 0x90BD, 0x90BE, 0x90BF, 0x90C0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_BA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB8CF, 0xB8D0, 0x90C1, 0x90C2, 0x90C3, 0x90C4, 0x90C5, 0x90C6, /* 0x00 */
- 0xB8D1, 0x90C7, 0x90C8, 0x90C9, 0x90CA, 0x90CB, 0x90CC, 0x90CD, /* 0x00 */
- 0x90CE, 0x90CF, 0x90D0, 0x90D1, 0x90D2, 0xB8D2, 0x90D3, 0x90D4, /* 0x10 */
- 0x90D5, 0x90D6, 0x90D7, 0x90D8, 0x90D9, 0x90DA, 0x90DB, 0x90DC, /* 0x10 */
- 0x90DD, 0x90DE, 0x90DF, 0x90E0, 0x90E1, 0x90E2, 0x90E3, 0x90E4, /* 0x20 */
- 0x90E5, 0x90E6, 0x90E7, 0x90E8, 0x90E9, 0x90EA, 0x90EB, 0x90EC, /* 0x20 */
- 0x90ED, 0x90EE, 0x90EF, 0x90F0, 0x90F1, 0x90F2, 0x90F3, 0x90F4, /* 0x30 */
- 0xB8D3, 0xB8D4, 0x90F5, 0x90F6, 0xB8D5, 0x90F7, 0x90F8, 0x90F9, /* 0x30 */
- 0xB8D6, 0x90FA, 0xB8D7, 0x90FB, 0x90FC, 0x90FD, 0x90FE, 0x9141, /* 0x40 */
- 0xB8D8, 0xB8D9, 0x9142, 0xB8DA, 0x9143, 0xB8DB, 0xB8DC, 0x9144, /* 0x40 */
- 0x9145, 0x9146, 0x9147, 0xB8DD, 0xB8DE, 0xB8DF, 0x9148, 0x9149, /* 0x50 */
- 0xB8E0, 0x914A, 0x914B, 0x914C, 0xB8E1, 0x914D, 0x914E, 0x914F, /* 0x50 */
- 0x9150, 0x9151, 0x9152, 0x9153, 0xB8E2, 0xB8E3, 0x9154, 0xB8E4, /* 0x60 */
- 0xB8E5, 0xB8E6, 0x9155, 0x9156, 0x9157, 0x9158, 0x9159, 0x915A, /* 0x60 */
- 0xB8E7, 0xB8E8, 0x9161, 0x9162, 0xB8E9, 0x9163, 0x9164, 0x9165, /* 0x70 */
- 0xB8EA, 0x9166, 0x9167, 0x9168, 0x9169, 0x916A, 0x916B, 0x916C, /* 0x70 */
- 0x916D, 0x916E, 0x916F, 0xB8EB, 0xB8EC, 0xB8ED, 0x9170, 0xB8EE, /* 0x80 */
- 0x9171, 0x9172, 0x9173, 0x9174, 0xB8EF, 0x9175, 0x9176, 0x9177, /* 0x80 */
- 0x9178, 0x9179, 0x917A, 0x9181, 0x9182, 0x9183, 0x9184, 0x9185, /* 0x90 */
- 0x9186, 0x9187, 0x9188, 0x9189, 0x918A, 0x918B, 0x918C, 0x918D, /* 0x90 */
- 0x918E, 0x918F, 0x9190, 0x9191, 0x9192, 0x9193, 0x9194, 0x9195, /* 0xA0 */
- 0xB8F0, 0xB8F1, 0x9196, 0xB8F2, 0xB8F3, 0x9197, 0x9198, 0x9199, /* 0xA0 */
- 0xB8F4, 0x919A, 0xB8F5, 0x919B, 0x919C, 0x919D, 0x919E, 0x919F, /* 0xB0 */
- 0xB8F6, 0xB8F7, 0x91A0, 0xB8F8, 0x91A1, 0xB8F9, 0x91A2, 0x91A3, /* 0xB0 */
- 0x91A4, 0x91A5, 0x91A6, 0x91A7, 0xB8FA, 0x91A8, 0x91A9, 0x91AA, /* 0xC0 */
- 0xB8FB, 0x91AB, 0x91AC, 0x91AD, 0x91AE, 0x91AF, 0x91B0, 0x91B1, /* 0xC0 */
- 0x91B2, 0x91B3, 0x91B4, 0x91B5, 0x91B6, 0x91B7, 0x91B8, 0x91B9, /* 0xD0 */
- 0xB8FC, 0xB8FD, 0x91BA, 0x91BB, 0x91BC, 0x91BD, 0x91BE, 0x91BF, /* 0xD0 */
- 0x91C0, 0x91C1, 0x91C2, 0x91C3, 0x91C4, 0x91C5, 0x91C6, 0x91C7, /* 0xE0 */
- 0x91C8, 0x91C9, 0x91CA, 0x91CB, 0x91CC, 0x91CD, 0x91CE, 0x91CF, /* 0xE0 */
- 0x91D0, 0x91D1, 0x91D2, 0x91D3, 0x91D4, 0x91D5, 0x91D6, 0x91D7, /* 0xF0 */
- 0x91D8, 0x91D9, 0x91DA, 0x91DB, 0xB8FE, 0x91DC, 0x91DD, 0x91DE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_BB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB9A1, 0x91DF, 0x91E0, 0x91E1, 0xB9A2, 0x91E2, 0x91E3, 0x91E4, /* 0x00 */
- 0x91E5, 0x91E6, 0x91E7, 0x91E8, 0x91E9, 0xB9A3, 0x91EA, 0xB9A4, /* 0x00 */
- 0x91EB, 0xB9A5, 0x91EC, 0x91ED, 0x91EE, 0x91EF, 0x91F0, 0x91F1, /* 0x10 */
- 0xB9A6, 0x91F2, 0x91F3, 0x91F4, 0xB9A7, 0x91F5, 0x91F6, 0x91F7, /* 0x10 */
- 0xB9A8, 0x91F8, 0x91F9, 0x91FA, 0x91FB, 0x91FC, 0x91FD, 0x91FE, /* 0x20 */
- 0x9241, 0xB9A9, 0x9242, 0xB9AA, 0x9243, 0x9244, 0x9245, 0x9246, /* 0x20 */
- 0x9247, 0x9248, 0x9249, 0x924A, 0xB9AB, 0xB9AC, 0xB9AD, 0x924B, /* 0x30 */
- 0xB9AE, 0x924C, 0x924D, 0xB9AF, 0xB9B0, 0xB9B1, 0xB9B2, 0x924E, /* 0x30 */
- 0x924F, 0x9250, 0x9251, 0x9252, 0xB9B3, 0xB9B4, 0x9253, 0xB9B5, /* 0x40 */
- 0x9254, 0xB9B6, 0x9255, 0x9256, 0x9257, 0xB9B7, 0x9258, 0xB9B8, /* 0x40 */
- 0xB9B9, 0x9259, 0x925A, 0x9261, 0xB9BA, 0x9262, 0x9263, 0x9264, /* 0x50 */
- 0xB9BB, 0x9265, 0x9266, 0x9267, 0x9268, 0x9269, 0x926A, 0x926B, /* 0x50 */
- 0x926C, 0xB9BC, 0x926D, 0xB9BD, 0x926E, 0x926F, 0x9270, 0x9271, /* 0x60 */
- 0x9272, 0x9273, 0x9274, 0x9275, 0xB9BE, 0x9276, 0x9277, 0x9278, /* 0x60 */
- 0x9279, 0x927A, 0x9281, 0x9282, 0x9283, 0x9284, 0x9285, 0x9286, /* 0x70 */
- 0x9287, 0x9288, 0x9289, 0x928A, 0x928B, 0x928C, 0x928D, 0x928E, /* 0x70 */
- 0x928F, 0x9290, 0x9291, 0x9292, 0x9293, 0x9294, 0x9295, 0x9296, /* 0x80 */
- 0xB9BF, 0x9297, 0x9298, 0x9299, 0xB9C0, 0x929A, 0x929B, 0x929C, /* 0x80 */
- 0xB9C1, 0x929D, 0x929E, 0x929F, 0x92A0, 0x92A1, 0x92A2, 0x92A3, /* 0x90 */
- 0x92A4, 0x92A5, 0x92A6, 0x92A7, 0x92A8, 0x92A9, 0x92AA, 0x92AB, /* 0x90 */
- 0x92AC, 0x92AD, 0x92AE, 0x92AF, 0xB9C2, 0x92B0, 0x92B1, 0x92B2, /* 0xA0 */
- 0xB9C3, 0x92B3, 0x92B4, 0x92B5, 0xB9C4, 0x92B6, 0x92B7, 0x92B8, /* 0xA0 */
- 0x92B9, 0x92BA, 0x92BB, 0x92BC, 0xB9C5, 0x92BD, 0x92BE, 0xB9C6, /* 0xB0 */
- 0x92BF, 0x92C0, 0x92C1, 0x92C2, 0x92C3, 0x92C4, 0x92C5, 0x92C6, /* 0xB0 */
- 0xB9C7, 0x92C7, 0x92C8, 0x92C9, 0xB9C8, 0x92CA, 0x92CB, 0x92CC, /* 0xC0 */
- 0xB9C9, 0x92CD, 0x92CE, 0x92CF, 0x92D0, 0x92D1, 0x92D2, 0x92D3, /* 0xC0 */
- 0xB9CA, 0x92D4, 0x92D5, 0xB9CB, 0x92D6, 0x92D7, 0x92D8, 0x92D9, /* 0xD0 */
- 0x92DA, 0x92DB, 0x92DC, 0x92DD, 0x92DE, 0x92DF, 0x92E0, 0x92E1, /* 0xD0 */
- 0x92E2, 0x92E3, 0x92E4, 0x92E5, 0x92E6, 0x92E7, 0x92E8, 0x92E9, /* 0xE0 */
- 0x92EA, 0x92EB, 0x92EC, 0x92ED, 0x92EE, 0x92EF, 0x92F0, 0x92F1, /* 0xE0 */
- 0x92F2, 0x92F3, 0x92F4, 0x92F5, 0x92F6, 0x92F7, 0x92F8, 0x92F9, /* 0xF0 */
- 0xB9CC, 0xB9CD, 0x92FA, 0x92FB, 0xB9CE, 0x92FC, 0x92FD, 0xB9CF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_BC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB9D0, 0x92FE, 0xB9D1, 0x9341, 0x9342, 0x9343, 0x9344, 0x9345, /* 0x00 */
- 0xB9D2, 0xB9D3, 0x9346, 0xB9D4, 0xB9D5, 0xB9D6, 0x9347, 0xB9D7, /* 0x00 */
- 0x9348, 0xB9D8, 0x9349, 0x934A, 0xB9D9, 0xB9DA, 0xB9DB, 0xB9DC, /* 0x10 */
- 0xB9DD, 0x934B, 0x934C, 0xB9DE, 0xB9DF, 0xB9E0, 0xB9E1, 0xB9E2, /* 0x10 */
- 0x934D, 0x934E, 0x934F, 0x9350, 0xB9E3, 0xB9E4, 0x9351, 0xB9E5, /* 0x20 */
- 0x9352, 0xB9E6, 0x9353, 0x9354, 0x9355, 0xB9E7, 0x9356, 0x9357, /* 0x20 */
- 0xB9E8, 0xB9E9, 0x9358, 0x9359, 0xB9EA, 0x935A, 0x9361, 0x9362, /* 0x30 */
- 0xB9EB, 0x9363, 0x9364, 0x9365, 0x9366, 0x9367, 0x9368, 0x9369, /* 0x30 */
- 0xB9EC, 0xB9ED, 0x936A, 0xB9EE, 0xB9EF, 0xB9F0, 0x936B, 0x936C, /* 0x40 */
- 0x936D, 0xB9F1, 0x936E, 0x936F, 0xB9F2, 0xB9F3, 0x9370, 0x9371, /* 0x40 */
- 0xB9F4, 0x9372, 0x9373, 0x9374, 0x9375, 0x9376, 0x9377, 0x9378, /* 0x50 */
- 0x9379, 0x937A, 0x9381, 0x9382, 0x9383, 0xB9F5, 0x9384, 0x9385, /* 0x50 */
- 0x9386, 0x9387, 0x9388, 0x9389, 0x938A, 0x938B, 0x938C, 0x938D, /* 0x60 */
- 0x938E, 0x938F, 0x9390, 0x9391, 0x9392, 0x9393, 0x9394, 0x9395, /* 0x60 */
- 0x9396, 0x9397, 0x9398, 0x9399, 0x939A, 0x939B, 0x939C, 0x939D, /* 0x70 */
- 0x939E, 0x939F, 0x93A0, 0x93A1, 0x93A2, 0x93A3, 0x93A4, 0x93A5, /* 0x70 */
- 0x93A6, 0x93A7, 0x93A8, 0x93A9, 0xB9F6, 0xB9F7, 0x93AA, 0x93AB, /* 0x80 */
- 0xB9F8, 0x93AC, 0x93AD, 0xB9F9, 0xB9FA, 0x93AE, 0xB9FB, 0x93AF, /* 0x80 */
- 0x93B0, 0x93B1, 0x93B2, 0x93B3, 0xB9FC, 0xB9FD, 0x93B4, 0xB9FE, /* 0x90 */
- 0x93B5, 0xBAA1, 0xBAA2, 0x93B6, 0x93B7, 0x93B8, 0x93B9, 0x93BA, /* 0x90 */
- 0xBAA3, 0xBAA4, 0x93BB, 0x93BC, 0xBAA5, 0x93BD, 0x93BE, 0xBAA6, /* 0xA0 */
- 0xBAA7, 0x93BF, 0x93C0, 0x93C1, 0x93C2, 0x93C3, 0x93C4, 0x93C5, /* 0xA0 */
- 0xBAA8, 0xBAA9, 0x93C6, 0xBAAA, 0xBAAB, 0xBAAC, 0x93C7, 0x93C8, /* 0xB0 */
- 0x93C9, 0x93CA, 0x93CB, 0x93CC, 0xBAAD, 0xBAAE, 0x93CD, 0x93CE, /* 0xB0 */
- 0xBAAF, 0x93CF, 0x93D0, 0x93D1, 0xBAB0, 0x93D2, 0x93D3, 0x93D4, /* 0xC0 */
- 0x93D5, 0x93D6, 0x93D7, 0x93D8, 0x93D9, 0xBAB1, 0x93DA, 0xBAB2, /* 0xC0 */
- 0xBAB3, 0xBAB4, 0x93DB, 0x93DC, 0x93DD, 0xBAB5, 0x93DE, 0x93DF, /* 0xD0 */
- 0xBAB6, 0x93E0, 0x93E1, 0x93E2, 0xBAB7, 0x93E3, 0x93E4, 0x93E5, /* 0xD0 */
- 0x93E6, 0x93E7, 0x93E8, 0x93E9, 0x93EA, 0x93EB, 0x93EC, 0x93ED, /* 0xE0 */
- 0x93EE, 0x93EF, 0x93F0, 0x93F1, 0x93F2, 0x93F3, 0x93F4, 0x93F5, /* 0xE0 */
- 0x93F6, 0x93F7, 0x93F8, 0x93F9, 0xBAB8, 0xBAB9, 0xBABA, 0x93FA, /* 0xF0 */
- 0xBABB, 0x93FB, 0x93FC, 0x93FD, 0xBABC, 0x93FE, 0x9441, 0x9442 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_BD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9443, 0x9444, 0x9445, 0x9446, 0xBABD, 0xBABE, 0x9447, 0xBABF, /* 0x00 */
- 0x9448, 0xBAC0, 0x9449, 0x944A, 0x944B, 0x944C, 0x944D, 0x944E, /* 0x00 */
- 0xBAC1, 0x944F, 0x9450, 0x9451, 0xBAC2, 0x9452, 0x9453, 0x9454, /* 0x10 */
- 0x9455, 0x9456, 0x9457, 0x9458, 0x9459, 0x945A, 0x9461, 0x9462, /* 0x10 */
- 0x9463, 0x9464, 0x9465, 0x9466, 0xBAC3, 0x9467, 0x9468, 0x9469, /* 0x20 */
- 0x946A, 0x946B, 0x946C, 0x946D, 0xBAC4, 0x946E, 0x946F, 0x9470, /* 0x20 */
- 0x9471, 0x9472, 0x9473, 0x9474, 0x9475, 0x9476, 0x9477, 0x9478, /* 0x30 */
- 0x9479, 0x947A, 0x9481, 0x9482, 0x9483, 0x9484, 0x9485, 0x9486, /* 0x30 */
- 0xBAC5, 0x9487, 0x9488, 0x9489, 0x948A, 0x948B, 0x948C, 0x948D, /* 0x40 */
- 0xBAC6, 0xBAC7, 0x948E, 0x948F, 0xBAC8, 0x9490, 0x9491, 0x9492, /* 0x40 */
- 0xBAC9, 0x9493, 0x9494, 0x9495, 0x9496, 0x9497, 0x9498, 0x9499, /* 0x50 */
- 0xBACA, 0xBACB, 0x949A, 0x949B, 0x949C, 0x949D, 0x949E, 0x949F, /* 0x50 */
- 0x94A0, 0x94A1, 0x94A2, 0x94A3, 0xBACC, 0x94A4, 0x94A5, 0x94A6, /* 0x60 */
- 0xBACD, 0x94A7, 0x94A8, 0x94A9, 0x94AA, 0x94AB, 0x94AC, 0x94AD, /* 0x60 */
- 0x94AE, 0x94AF, 0x94B0, 0x94B1, 0x94B2, 0x94B3, 0x94B4, 0x94B5, /* 0x70 */
- 0x94B6, 0x94B7, 0x94B8, 0x94B9, 0x94BA, 0x94BB, 0x94BC, 0x94BD, /* 0x70 */
- 0xBACE, 0xBACF, 0x94BE, 0x94BF, 0xBAD0, 0x94C0, 0x94C1, 0xBAD1, /* 0x80 */
- 0xBAD2, 0xBAD3, 0xBAD4, 0x94C2, 0x94C3, 0x94C4, 0x94C5, 0x94C6, /* 0x80 */
- 0xBAD5, 0xBAD6, 0x94C7, 0xBAD7, 0x94C8, 0xBAD8, 0x94C9, 0x94CA, /* 0x90 */
- 0x94CB, 0xBAD9, 0xBADA, 0x94CC, 0xBADB, 0x94CD, 0x94CE, 0x94CF, /* 0x90 */
- 0x94D0, 0x94D1, 0x94D2, 0x94D3, 0xBADC, 0x94D4, 0x94D5, 0x94D6, /* 0xA0 */
- 0x94D7, 0x94D8, 0x94D9, 0x94DA, 0x94DB, 0x94DC, 0x94DD, 0x94DE, /* 0xA0 */
- 0xBADD, 0x94DF, 0x94E0, 0x94E1, 0x94E2, 0x94E3, 0x94E4, 0x94E5, /* 0xB0 */
- 0xBADE, 0x94E6, 0x94E7, 0x94E8, 0x94E9, 0x94EA, 0x94EB, 0x94EC, /* 0xB0 */
- 0x94ED, 0x94EE, 0x94EF, 0x94F0, 0x94F1, 0x94F2, 0x94F3, 0x94F4, /* 0xC0 */
- 0x94F5, 0x94F6, 0x94F7, 0x94F8, 0x94F9, 0x94FA, 0x94FB, 0x94FC, /* 0xC0 */
- 0x94FD, 0x94FE, 0x9541, 0x9542, 0xBADF, 0xBAE0, 0x9543, 0x9544, /* 0xD0 */
- 0xBAE1, 0x9545, 0x9546, 0x9547, 0xBAE2, 0x9548, 0x9549, 0x954A, /* 0xD0 */
- 0x954B, 0x954C, 0x954D, 0x954E, 0x954F, 0x9550, 0x9551, 0x9552, /* 0xE0 */
- 0x9553, 0xBAE3, 0x9554, 0x9555, 0x9556, 0x9557, 0x9558, 0x9559, /* 0xE0 */
- 0xBAE4, 0x955A, 0x9561, 0x9562, 0xBAE5, 0x9563, 0x9564, 0x9565, /* 0xF0 */
- 0xBAE6, 0x9566, 0x9567, 0x9568, 0x9569, 0x956A, 0x956B, 0x956C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_BE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBAE7, 0x956D, 0x956E, 0xBAE8, 0x956F, 0xBAE9, 0x9570, 0x9571, /* 0x00 */
- 0x9572, 0x9573, 0x9574, 0x9575, 0xBAEA, 0xBAEB, 0x9576, 0x9577, /* 0x00 */
- 0xBAEC, 0x9578, 0x9579, 0x957A, 0xBAED, 0x9581, 0x9582, 0x9583, /* 0x10 */
- 0x9584, 0x9585, 0x9586, 0x9587, 0xBAEE, 0xBAEF, 0x9588, 0xBAF0, /* 0x10 */
- 0x9589, 0x958A, 0x958B, 0x958C, 0x958D, 0x958E, 0x958F, 0x9590, /* 0x20 */
- 0x9591, 0x9592, 0x9593, 0x9594, 0x9595, 0x9596, 0x9597, 0x9598, /* 0x20 */
- 0x9599, 0x959A, 0x959B, 0x959C, 0x959D, 0x959E, 0x959F, 0x95A0, /* 0x30 */
- 0x95A1, 0x95A2, 0x95A3, 0x95A4, 0x95A5, 0x95A6, 0x95A7, 0x95A8, /* 0x30 */
- 0x95A9, 0x95AA, 0x95AB, 0x95AC, 0xBAF1, 0xBAF2, 0x95AD, 0x95AE, /* 0x40 */
- 0xBAF3, 0x95AF, 0x95B0, 0x95B1, 0xBAF4, 0x95B2, 0xBAF5, 0x95B3, /* 0x40 */
- 0x95B4, 0x95B5, 0x95B6, 0x95B7, 0xBAF6, 0xBAF7, 0x95B8, 0xBAF8, /* 0x50 */
- 0x95B9, 0xBAF9, 0xBAFA, 0xBAFB, 0x95BA, 0x95BB, 0x95BC, 0x95BD, /* 0x50 */
- 0xBAFC, 0xBAFD, 0x95BE, 0x95BF, 0xBAFE, 0x95C0, 0x95C1, 0x95C2, /* 0x60 */
- 0xBBA1, 0x95C3, 0xBBA2, 0x95C4, 0x95C5, 0x95C6, 0x95C7, 0x95C8, /* 0x60 */
- 0xBBA3, 0xBBA4, 0x95C9, 0xBBA5, 0xBBA6, 0xBBA7, 0x95CA, 0x95CB, /* 0x70 */
- 0x95CC, 0x95CD, 0x95CE, 0xBBA8, 0xBBA9, 0xBBAA, 0x95CF, 0x95D0, /* 0x70 */
- 0xBBAB, 0x95D1, 0x95D2, 0x95D3, 0xBBAC, 0x95D4, 0x95D5, 0x95D6, /* 0x80 */
- 0x95D7, 0x95D8, 0x95D9, 0x95DA, 0xBBAD, 0xBBAE, 0x95DB, 0xBBAF, /* 0x80 */
- 0xBBB0, 0xBBB1, 0x95DC, 0x95DD, 0x95DE, 0x95DF, 0x95E0, 0x95E1, /* 0x90 */
- 0xBBB2, 0xBBB3, 0x95E2, 0x95E3, 0x95E4, 0x95E5, 0x95E6, 0x95E7, /* 0x90 */
- 0x95E8, 0x95E9, 0x95EA, 0x95EB, 0x95EC, 0x95ED, 0x95EE, 0x95EF, /* 0xA0 */
- 0xBBB4, 0x95F0, 0x95F1, 0x95F2, 0x95F3, 0x95F4, 0x95F5, 0x95F6, /* 0xA0 */
- 0x95F7, 0x95F8, 0x95F9, 0x95FA, 0x95FB, 0x95FC, 0x95FD, 0x95FE, /* 0xB0 */
- 0x9641, 0x9642, 0x9643, 0x9644, 0x9645, 0x9646, 0x9647, 0x9648, /* 0xB0 */
- 0x9649, 0x964A, 0x964B, 0x964C, 0x964D, 0x964E, 0x964F, 0x9650, /* 0xC0 */
- 0x9651, 0x9652, 0x9653, 0x9654, 0x9655, 0x9656, 0x9657, 0x9658, /* 0xC0 */
- 0xBBB5, 0xBBB6, 0x9659, 0x965A, 0xBBB7, 0x9661, 0x9662, 0xBBB8, /* 0xD0 */
- 0xBBB9, 0x9663, 0x9664, 0x9665, 0x9666, 0x9667, 0x9668, 0x9669, /* 0xD0 */
- 0xBBBA, 0x966A, 0x966B, 0xBBBB, 0xBBBC, 0xBBBD, 0x966C, 0x966D, /* 0xE0 */
- 0x966E, 0x966F, 0x9670, 0x9671, 0xBBBE, 0x9672, 0x9673, 0x9674, /* 0xE0 */
- 0x9675, 0x9676, 0x9677, 0x9678, 0x9679, 0x967A, 0x9681, 0x9682, /* 0xF0 */
- 0x9683, 0x9684, 0x9685, 0x9686, 0x9687, 0x9688, 0x9689, 0x968A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_BF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x968B, 0xBBBF, 0x968C, 0x968D, 0x968E, 0x968F, 0x9690, 0x9691, /* 0x00 */
- 0xBBC0, 0xBBC1, 0x9692, 0x9693, 0x9694, 0x9695, 0x9696, 0x9697, /* 0x00 */
- 0x9698, 0x9699, 0x969A, 0x969B, 0x969C, 0x969D, 0x969E, 0x969F, /* 0x10 */
- 0xBBC2, 0xBBC3, 0x96A0, 0xBBC4, 0xBBC5, 0xBBC6, 0x96A1, 0x96A2, /* 0x10 */
- 0x96A3, 0x96A4, 0x96A5, 0x96A6, 0x96A7, 0x96A8, 0x96A9, 0x96AA, /* 0x20 */
- 0x96AB, 0x96AC, 0x96AD, 0x96AE, 0x96AF, 0x96B0, 0x96B1, 0x96B2, /* 0x20 */
- 0x96B3, 0x96B4, 0x96B5, 0x96B6, 0x96B7, 0x96B8, 0x96B9, 0x96BA, /* 0x30 */
- 0x96BB, 0x96BC, 0x96BD, 0x96BE, 0x96BF, 0x96C0, 0x96C1, 0x96C2, /* 0x30 */
- 0xBBC7, 0xBBC8, 0x96C3, 0x96C4, 0xBBC9, 0x96C5, 0x96C6, 0x96C7, /* 0x40 */
- 0xBBCA, 0x96C8, 0x96C9, 0x96CA, 0x96CB, 0x96CC, 0x96CD, 0x96CE, /* 0x40 */
- 0xBBCB, 0xBBCC, 0x96CF, 0x96D0, 0x96D1, 0xBBCD, 0x96D2, 0x96D3, /* 0x50 */
- 0x96D4, 0x96D5, 0x96D6, 0x96D7, 0x96D8, 0x96D9, 0x96DA, 0x96DB, /* 0x50 */
- 0x96DC, 0x96DD, 0x96DE, 0x96DF, 0x96E0, 0x96E1, 0x96E2, 0x96E3, /* 0x60 */
- 0x96E4, 0x96E5, 0x96E6, 0x96E7, 0x96E8, 0x96E9, 0x96EA, 0x96EB, /* 0x60 */
- 0x96EC, 0x96ED, 0x96EE, 0x96EF, 0x96F0, 0x96F1, 0x96F2, 0x96F3, /* 0x70 */
- 0x96F4, 0x96F5, 0x96F6, 0x96F7, 0x96F8, 0x96F9, 0x96FA, 0x96FB, /* 0x70 */
- 0x96FC, 0x96FD, 0x96FE, 0x9741, 0x9742, 0x9743, 0x9744, 0x9745, /* 0x80 */
- 0x9746, 0x9747, 0x9748, 0x9749, 0x974A, 0x974B, 0x974C, 0x974D, /* 0x80 */
- 0x974E, 0x974F, 0x9750, 0x9751, 0xBBCE, 0x9752, 0x9753, 0x9754, /* 0x90 */
- 0x9755, 0x9756, 0x9757, 0x9758, 0x9759, 0x975A, 0x9761, 0x9762, /* 0x90 */
- 0x9763, 0x9764, 0x9765, 0x9766, 0x9767, 0x9768, 0x9769, 0x976A, /* 0xA0 */
- 0x976B, 0x976C, 0x976D, 0x976E, 0x976F, 0x9770, 0x9771, 0x9772, /* 0xA0 */
- 0xBBCF, 0x9773, 0x9774, 0x9775, 0x9776, 0x9777, 0x9778, 0x9779, /* 0xB0 */
- 0x977A, 0x9781, 0x9782, 0x9783, 0x9784, 0x9785, 0x9786, 0x9787, /* 0xB0 */
- 0x9788, 0x9789, 0x978A, 0x978B, 0x978C, 0xBBD0, 0x978D, 0x978E, /* 0xC0 */
- 0x978F, 0x9790, 0x9791, 0x9792, 0xBBD1, 0xBBD2, 0x9793, 0x9794, /* 0xC0 */
- 0xBBD3, 0x9795, 0x9796, 0x9797, 0xBBD4, 0x9798, 0x9799, 0x979A, /* 0xD0 */
- 0x979B, 0x979C, 0x979D, 0x979E, 0xBBD5, 0x979F, 0x97A0, 0xBBD6, /* 0xD0 */
- 0x97A1, 0xBBD7, 0x97A2, 0x97A3, 0x97A4, 0x97A5, 0x97A6, 0x97A7, /* 0xE0 */
- 0x97A8, 0x97A9, 0x97AA, 0x97AB, 0x97AC, 0x97AD, 0x97AE, 0x97AF, /* 0xE0 */
- 0x97B0, 0x97B1, 0x97B2, 0x97B3, 0x97B4, 0x97B5, 0x97B6, 0x97B7, /* 0xF0 */
- 0x97B8, 0x97B9, 0x97BA, 0x97BB, 0x97BC, 0x97BD, 0x97BE, 0x97BF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_C0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x97C0, 0x97C1, 0x97C2, 0x97C3, 0x97C4, 0x97C5, 0x97C6, 0x97C7, /* 0x00 */
- 0x97C8, 0x97C9, 0x97CA, 0x97CB, 0x97CC, 0x97CD, 0x97CE, 0x97CF, /* 0x00 */
- 0x97D0, 0x97D1, 0x97D2, 0x97D3, 0x97D4, 0x97D5, 0x97D6, 0x97D7, /* 0x10 */
- 0x97D8, 0x97D9, 0x97DA, 0x97DB, 0x97DC, 0x97DD, 0x97DE, 0x97DF, /* 0x10 */
- 0x97E0, 0x97E1, 0x97E2, 0x97E3, 0x97E4, 0x97E5, 0x97E6, 0x97E7, /* 0x20 */
- 0x97E8, 0x97E9, 0x97EA, 0x97EB, 0x97EC, 0x97ED, 0x97EE, 0x97EF, /* 0x20 */
- 0x97F0, 0x97F1, 0x97F2, 0x97F3, 0x97F4, 0x97F5, 0x97F6, 0x97F7, /* 0x30 */
- 0x97F8, 0x97F9, 0x97FA, 0x97FB, 0xBBD8, 0x97FC, 0x97FD, 0x97FE, /* 0x30 */
- 0x9841, 0x9842, 0x9843, 0x9844, 0x9845, 0x9846, 0x9847, 0x9848, /* 0x40 */
- 0x9849, 0x984A, 0x984B, 0x984C, 0x984D, 0x984E, 0x984F, 0x9850, /* 0x40 */
- 0x9851, 0xBBD9, 0x9852, 0x9853, 0x9854, 0x9855, 0x9856, 0x9857, /* 0x50 */
- 0xBBDA, 0x9858, 0x9859, 0x985A, 0xBBDB, 0x9861, 0x9862, 0x9863, /* 0x50 */
- 0xBBDC, 0x9864, 0x9865, 0x9866, 0x9867, 0x9868, 0x9869, 0x986A, /* 0x60 */
- 0xBBDD, 0xBBDE, 0x986B, 0x986C, 0x986D, 0x986E, 0x986F, 0x9870, /* 0x60 */
- 0x9871, 0x9872, 0x9873, 0x9874, 0x9875, 0x9876, 0x9877, 0x9878, /* 0x70 */
- 0x9879, 0x987A, 0x9881, 0x9882, 0x9883, 0x9884, 0x9885, 0x9886, /* 0x70 */
- 0x9887, 0x9888, 0x9889, 0x988A, 0x988B, 0x988C, 0x988D, 0x988E, /* 0x80 */
- 0x988F, 0x9890, 0x9891, 0x9892, 0x9893, 0x9894, 0x9895, 0x9896, /* 0x80 */
- 0xBBDF, 0xBBE0, 0x9897, 0x9898, 0xBBE1, 0x9899, 0x989A, 0x989B, /* 0x90 */
- 0xBBE2, 0x989C, 0x989D, 0x989E, 0x989F, 0x98A0, 0x98A1, 0x98A2, /* 0x90 */
- 0xBBE3, 0xBBE4, 0x98A3, 0xBBE5, 0x98A4, 0xBBE6, 0x98A5, 0x98A6, /* 0xA0 */
- 0x98A7, 0x98A8, 0x98A9, 0x98AA, 0xBBE7, 0xBBE8, 0x98AB, 0xBBE9, /* 0xA0 */
- 0xBBEA, 0x98AC, 0x98AD, 0xBBEB, 0xBBEC, 0xBBED, 0xBBEE, 0x98AE, /* 0xB0 */
- 0x98AF, 0x98B0, 0x98B1, 0x98B2, 0xBBEF, 0xBBF0, 0x98B3, 0xBBF1, /* 0xB0 */
- 0xBBF2, 0xBBF3, 0x98B4, 0x98B5, 0x98B6, 0xBBF4, 0x98B7, 0x98B8, /* 0xC0 */
- 0xBBF5, 0xBBF6, 0x98B9, 0x98BA, 0xBBF7, 0x98BB, 0x98BC, 0x98BD, /* 0xC0 */
- 0xBBF8, 0x98BE, 0x98BF, 0x98C0, 0x98C1, 0x98C2, 0x98C3, 0x98C4, /* 0xD0 */
- 0xBBF9, 0xBBFA, 0x98C5, 0xBBFB, 0xBBFC, 0xBBFD, 0x98C6, 0x98C7, /* 0xD0 */
- 0x98C8, 0x98C9, 0x98CA, 0x98CB, 0xBBFE, 0xBCA1, 0x98CC, 0x98CD, /* 0xE0 */
- 0xBCA2, 0x98CE, 0x98CF, 0x98D0, 0xBCA3, 0x98D1, 0x98D2, 0x98D3, /* 0xE0 */
- 0x98D4, 0x98D5, 0x98D6, 0x98D7, 0xBCA4, 0xBCA5, 0x98D8, 0xBCA6, /* 0xF0 */
- 0x98D9, 0xBCA7, 0x98DA, 0x98DB, 0x98DC, 0x98DD, 0x98DE, 0x98DF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_C1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBCA8, 0x98E0, 0x98E1, 0x98E2, 0xBCA9, 0x98E3, 0x98E4, 0x98E5, /* 0x00 */
- 0xBCAA, 0x98E6, 0x98E7, 0x98E8, 0x98E9, 0x98EA, 0x98EB, 0x98EC, /* 0x00 */
- 0xBCAB, 0x98ED, 0x98EE, 0x98EF, 0x98F0, 0xBCAC, 0x98F1, 0x98F2, /* 0x10 */
- 0x98F3, 0x98F4, 0x98F5, 0x98F6, 0xBCAD, 0xBCAE, 0xBCAF, 0xBCB0, /* 0x10 */
- 0xBCB1, 0x98F7, 0x98F8, 0xBCB2, 0xBCB3, 0x98F9, 0xBCB4, 0xBCB5, /* 0x20 */
- 0x98FA, 0x98FB, 0x98FC, 0x98FD, 0xBCB6, 0xBCB7, 0x98FE, 0xBCB8, /* 0x20 */
- 0xBCB9, 0xBCBA, 0x9941, 0x9942, 0x9943, 0x9944, 0xBCBB, 0x9945, /* 0x30 */
- 0xBCBC, 0xBCBD, 0x9946, 0x9947, 0xBCBE, 0x9948, 0x9949, 0x994A, /* 0x30 */
- 0xBCBF, 0x994B, 0x994C, 0x994D, 0x994E, 0x994F, 0x9950, 0x9951, /* 0x40 */
- 0xBCC0, 0xBCC1, 0x9952, 0xBCC2, 0xBCC3, 0xBCC4, 0x9953, 0x9954, /* 0x40 */
- 0x9955, 0x9956, 0x9957, 0x9958, 0xBCC5, 0xBCC6, 0x9959, 0x995A, /* 0x50 */
- 0xBCC7, 0x9961, 0x9962, 0x9963, 0xBCC8, 0x9964, 0x9965, 0x9966, /* 0x50 */
- 0x9967, 0x9968, 0x9969, 0x996A, 0xBCC9, 0xBCCA, 0x996B, 0xBCCB, /* 0x60 */
- 0xBCCC, 0xBCCD, 0x996C, 0x996D, 0x996E, 0x996F, 0x9970, 0x9971, /* 0x60 */
- 0xBCCE, 0x9972, 0x9973, 0x9974, 0xBCCF, 0x9975, 0x9976, 0x9977, /* 0x70 */
- 0xBCD0, 0x9978, 0x9979, 0x997A, 0x9981, 0x9982, 0x9983, 0x9984, /* 0x70 */
- 0x9985, 0x9986, 0x9987, 0x9988, 0x9989, 0xBCD1, 0x998A, 0x998B, /* 0x80 */
- 0x998C, 0x998D, 0x998E, 0x998F, 0xBCD2, 0xBCD3, 0xBCD4, 0x9990, /* 0x80 */
- 0xBCD5, 0x9991, 0x9992, 0x9993, 0xBCD6, 0x9994, 0xBCD7, 0x9995, /* 0x90 */
- 0x9996, 0x9997, 0x9998, 0x9999, 0xBCD8, 0xBCD9, 0x999A, 0xBCDA, /* 0x90 */
- 0x999B, 0xBCDB, 0x999C, 0x999D, 0x999E, 0xBCDC, 0x999F, 0x99A0, /* 0xA0 */
- 0xBCDD, 0xBCDE, 0x99A1, 0x99A2, 0xBCDF, 0x99A3, 0x99A4, 0x99A5, /* 0xA0 */
- 0xBCE0, 0x99A6, 0x99A7, 0x99A8, 0x99A9, 0x99AA, 0x99AB, 0x99AC, /* 0xB0 */
- 0x99AD, 0x99AE, 0x99AF, 0x99B0, 0x99B1, 0xBCE1, 0x99B2, 0x99B3, /* 0xB0 */
- 0x99B4, 0x99B5, 0x99B6, 0x99B7, 0xBCE2, 0x99B8, 0x99B9, 0x99BA, /* 0xC0 */
- 0xBCE3, 0x99BB, 0x99BC, 0x99BD, 0xBCE4, 0x99BE, 0x99BF, 0x99C0, /* 0xC0 */
- 0x99C1, 0x99C2, 0x99C3, 0x99C4, 0xBCE5, 0x99C5, 0x99C6, 0xBCE6, /* 0xD0 */
- 0xBCE7, 0x99C7, 0x99C8, 0x99C9, 0x99CA, 0x99CB, 0x99CC, 0x99CD, /* 0xD0 */
- 0xBCE8, 0x99CE, 0x99CF, 0x99D0, 0xBCE9, 0x99D1, 0x99D2, 0x99D3, /* 0xE0 */
- 0xBCEA, 0x99D4, 0x99D5, 0x99D6, 0x99D7, 0x99D8, 0x99D9, 0x99DA, /* 0xE0 */
- 0xBCEB, 0xBCEC, 0x99DB, 0xBCED, 0x99DC, 0x99DD, 0x99DE, 0x99DF, /* 0xF0 */
- 0x99E0, 0x99E1, 0x99E2, 0x99E3, 0xBCEE, 0xBCEF, 0x99E4, 0x99E5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_C2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBCF0, 0x99E6, 0x99E7, 0x99E8, 0xBCF1, 0x99E9, 0x99EA, 0x99EB, /* 0x00 */
- 0x99EC, 0x99ED, 0x99EE, 0x99EF, 0xBCF2, 0xBCF3, 0x99F0, 0xBCF4, /* 0x00 */
- 0x99F1, 0xBCF5, 0x99F2, 0x99F3, 0x99F4, 0x99F5, 0x99F6, 0x99F7, /* 0x10 */
- 0xBCF6, 0xBCF7, 0x99F8, 0x99F9, 0xBCF8, 0x99FA, 0x99FB, 0xBCF9, /* 0x10 */
- 0xBCFA, 0x99FC, 0x99FD, 0x99FE, 0x9A41, 0x9A42, 0x9A43, 0x9A44, /* 0x20 */
- 0xBCFB, 0xBCFC, 0x9A45, 0xBCFD, 0x9A46, 0xBCFE, 0x9A47, 0xBDA1, /* 0x20 */
- 0x9A48, 0xBDA2, 0xBDA3, 0x9A49, 0xBDA4, 0x9A4A, 0x9A4B, 0x9A4C, /* 0x30 */
- 0x9A4D, 0x9A4E, 0x9A4F, 0x9A50, 0x9A51, 0x9A52, 0x9A53, 0x9A54, /* 0x30 */
- 0x9A55, 0x9A56, 0x9A57, 0x9A58, 0x9A59, 0x9A5A, 0x9A61, 0x9A62, /* 0x40 */
- 0xBDA5, 0x9A63, 0x9A64, 0x9A65, 0x9A66, 0x9A67, 0x9A68, 0x9A69, /* 0x40 */
- 0xBDA6, 0xBDA7, 0x9A6A, 0x9A6B, 0xBDA8, 0x9A6C, 0x9A6D, 0x9A6E, /* 0x50 */
- 0xBDA9, 0x9A6F, 0x9A70, 0x9A71, 0x9A72, 0x9A73, 0x9A74, 0x9A75, /* 0x50 */
- 0xBDAA, 0x9A76, 0x9A77, 0x9A78, 0x9A79, 0xBDAB, 0x9A7A, 0x9A81, /* 0x60 */
- 0x9A82, 0x9A83, 0x9A84, 0x9A85, 0xBDAC, 0xBDAD, 0x9A86, 0x9A87, /* 0x60 */
- 0xBDAE, 0x9A88, 0x9A89, 0x9A8A, 0xBDAF, 0x9A8B, 0x9A8C, 0x9A8D, /* 0x70 */
- 0x9A8E, 0x9A8F, 0x9A90, 0x9A91, 0xBDB0, 0xBDB1, 0x9A92, 0xBDB2, /* 0x70 */
- 0x9A93, 0xBDB3, 0x9A94, 0x9A95, 0x9A96, 0x9A97, 0x9A98, 0x9A99, /* 0x80 */
- 0xBDB4, 0xBDB5, 0x9A9A, 0x9A9B, 0x9A9C, 0x9A9D, 0x9A9E, 0x9A9F, /* 0x80 */
- 0xBDB6, 0x9AA0, 0x9AA1, 0x9AA2, 0x9AA3, 0x9AA4, 0x9AA5, 0x9AA6, /* 0x90 */
- 0xBDB7, 0x9AA7, 0x9AA8, 0xBDB8, 0x9AA9, 0xBDB9, 0x9AAA, 0x9AAB, /* 0x90 */
- 0x9AAC, 0x9AAD, 0x9AAE, 0x9AAF, 0xBDBA, 0xBDBB, 0x9AB0, 0x9AB1, /* 0xA0 */
- 0xBDBC, 0x9AB2, 0x9AB3, 0x9AB4, 0xBDBD, 0xBDBE, 0x9AB5, 0x9AB6, /* 0xA0 */
- 0x9AB7, 0x9AB8, 0x9AB9, 0x9ABA, 0xBDBF, 0xBDC0, 0x9ABB, 0xBDC1, /* 0xB0 */
- 0x9ABC, 0xBDC2, 0x9ABD, 0x9ABE, 0x9ABF, 0x9AC0, 0x9AC1, 0x9AC2, /* 0xB0 */
- 0x9AC3, 0x9AC4, 0x9AC5, 0x9AC6, 0x9AC7, 0x9AC8, 0x9AC9, 0x9ACA, /* 0xC0 */
- 0x9ACB, 0x9ACC, 0x9ACD, 0x9ACE, 0x9ACF, 0x9AD0, 0x9AD1, 0x9AD2, /* 0xC0 */
- 0x9AD3, 0x9AD4, 0x9AD5, 0x9AD6, 0x9AD7, 0x9AD8, 0x9AD9, 0x9ADA, /* 0xD0 */
- 0x9ADB, 0x9ADC, 0x9ADD, 0x9ADE, 0xBDC3, 0xBDC4, 0x9ADF, 0x9AE0, /* 0xD0 */
- 0xBDC5, 0x9AE1, 0x9AE2, 0xBDC6, 0xBDC7, 0x9AE3, 0x9AE4, 0x9AE5, /* 0xE0 */
- 0x9AE6, 0x9AE7, 0x9AE8, 0xBDC8, 0xBDC9, 0xBDCA, 0x9AE9, 0xBDCB, /* 0xE0 */
- 0x9AEA, 0xBDCC, 0x9AEB, 0x9AEC, 0x9AED, 0x9AEE, 0xBDCD, 0x9AEF, /* 0xF0 */
- 0xBDCE, 0xBDCF, 0x9AF0, 0xBDD0, 0xBDD1, 0x9AF1, 0x9AF2, 0x9AF3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_C3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBDD2, 0x9AF4, 0x9AF5, 0x9AF6, 0x9AF7, 0x9AF8, 0x9AF9, 0x9AFA, /* 0x00 */
- 0xBDD3, 0xBDD4, 0x9AFB, 0x9AFC, 0xBDD5, 0xBDD6, 0x9AFD, 0x9AFE, /* 0x00 */
- 0x9B41, 0x9B42, 0x9B43, 0xBDD7, 0xBDD8, 0xBDD9, 0x9B44, 0x9B45, /* 0x10 */
- 0xBDDA, 0x9B46, 0x9B47, 0x9B48, 0xBDDB, 0x9B49, 0x9B4A, 0x9B4B, /* 0x10 */
- 0x9B4C, 0x9B4D, 0x9B4E, 0x9B4F, 0xBDDC, 0xBDDD, 0x9B50, 0x9B51, /* 0x20 */
- 0xBDDE, 0xBDDF, 0x9B52, 0x9B53, 0x9B54, 0x9B55, 0x9B56, 0x9B57, /* 0x20 */
- 0x9B58, 0x9B59, 0x9B5A, 0x9B61, 0x9B62, 0x9B63, 0x9B64, 0x9B65, /* 0x30 */
- 0x9B66, 0x9B67, 0x9B68, 0x9B69, 0x9B6A, 0x9B6B, 0x9B6C, 0x9B6D, /* 0x30 */
- 0x9B6E, 0x9B6F, 0x9B70, 0x9B71, 0x9B72, 0xBDE0, 0x9B73, 0x9B74, /* 0x40 */
- 0x9B75, 0x9B76, 0x9B77, 0x9B78, 0x9B79, 0x9B7A, 0x9B81, 0x9B82, /* 0x40 */
- 0x9B83, 0x9B84, 0x9B85, 0x9B86, 0x9B87, 0x9B88, 0x9B89, 0x9B8A, /* 0x50 */
- 0x9B8B, 0x9B8C, 0x9B8D, 0x9B8E, 0x9B8F, 0x9B90, 0x9B91, 0x9B92, /* 0x50 */
- 0x9B93, 0x9B94, 0x9B95, 0x9B96, 0x9B97, 0x9B98, 0x9B99, 0x9B9A, /* 0x60 */
- 0xBDE1, 0xBDE2, 0x9B9B, 0x9B9C, 0xBDE3, 0x9B9D, 0x9B9E, 0x9B9F, /* 0x60 */
- 0xBDE4, 0x9BA0, 0xBDE5, 0x9BA1, 0x9BA2, 0x9BA3, 0x9BA4, 0x9BA5, /* 0x70 */
- 0xBDE6, 0xBDE7, 0x9BA6, 0x9BA7, 0xBDE8, 0xBDE9, 0x9BA8, 0x9BA9, /* 0x70 */
- 0x9BAA, 0x9BAB, 0x9BAC, 0x9BAD, 0xBDEA, 0x9BAE, 0x9BAF, 0x9BB0, /* 0x80 */
- 0xBDEB, 0x9BB1, 0x9BB2, 0x9BB3, 0xBDEC, 0x9BB4, 0x9BB5, 0x9BB6, /* 0x80 */
- 0x9BB7, 0x9BB8, 0x9BB9, 0x9BBA, 0x9BBB, 0x9BBC, 0x9BBD, 0x9BBE, /* 0x90 */
- 0x9BBF, 0x9BC0, 0x9BC1, 0x9BC2, 0x9BC3, 0x9BC4, 0x9BC5, 0x9BC6, /* 0x90 */
- 0x9BC7, 0x9BC8, 0x9BC9, 0x9BCA, 0x9BCB, 0x9BCC, 0x9BCD, 0x9BCE, /* 0xA0 */
- 0x9BCF, 0x9BD0, 0x9BD1, 0x9BD2, 0x9BD3, 0x9BD4, 0x9BD5, 0x9BD6, /* 0xA0 */
- 0x9BD7, 0x9BD8, 0x9BD9, 0x9BDA, 0x9BDB, 0x9BDC, 0x9BDD, 0x9BDE, /* 0xB0 */
- 0x9BDF, 0x9BE0, 0x9BE1, 0x9BE2, 0x9BE3, 0x9BE4, 0x9BE5, 0x9BE6, /* 0xB0 */
- 0xBDED, 0x9BE7, 0x9BE8, 0x9BE9, 0x9BEA, 0x9BEB, 0x9BEC, 0x9BED, /* 0xC0 */
- 0x9BEE, 0x9BEF, 0x9BF0, 0x9BF1, 0x9BF2, 0x9BF3, 0x9BF4, 0x9BF5, /* 0xC0 */
- 0x9BF6, 0x9BF7, 0x9BF8, 0x9BF9, 0x9BFA, 0x9BFB, 0x9BFC, 0x9BFD, /* 0xD0 */
- 0xBDEE, 0xBDEF, 0x9BFE, 0x9C41, 0xBDF0, 0x9C42, 0x9C43, 0xBDF1, /* 0xD0 */
- 0xBDF2, 0x9C44, 0xBDF3, 0x9C45, 0x9C46, 0x9C47, 0x9C48, 0x9C49, /* 0xE0 */
- 0xBDF4, 0xBDF5, 0x9C4A, 0x9C4B, 0x9C4C, 0xBDF6, 0x9C4D, 0x9C4E, /* 0xE0 */
- 0x9C4F, 0x9C50, 0x9C51, 0x9C52, 0xBDF7, 0xBDF8, 0x9C53, 0x9C54, /* 0xF0 */
- 0xBDF9, 0x9C55, 0x9C56, 0x9C57, 0x9C58, 0x9C59, 0x9C5A, 0x9C61 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_C4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9C62, 0x9C63, 0x9C64, 0x9C65, 0x9C66, 0x9C67, 0x9C68, 0x9C69, /* 0x00 */
- 0xBDFA, 0x9C6A, 0x9C6B, 0x9C6C, 0x9C6D, 0x9C6E, 0x9C6F, 0x9C70, /* 0x00 */
- 0xBDFB, 0x9C71, 0x9C72, 0x9C73, 0x9C74, 0x9C75, 0x9C76, 0x9C77, /* 0x10 */
- 0x9C78, 0x9C79, 0x9C7A, 0x9C81, 0x9C82, 0x9C83, 0x9C84, 0x9C85, /* 0x10 */
- 0x9C86, 0x9C87, 0x9C88, 0x9C89, 0xBDFC, 0x9C8A, 0x9C8B, 0x9C8C, /* 0x20 */
- 0x9C8D, 0x9C8E, 0x9C8F, 0x9C90, 0xBDFD, 0x9C91, 0x9C92, 0x9C93, /* 0x20 */
- 0xBDFE, 0x9C94, 0x9C95, 0x9C96, 0xBEA1, 0x9C97, 0x9C98, 0x9C99, /* 0x30 */
- 0x9C9A, 0x9C9B, 0x9C9C, 0x9C9D, 0xBEA2, 0xBEA3, 0x9C9E, 0x9C9F, /* 0x30 */
- 0x9CA0, 0x9CA1, 0x9CA2, 0x9CA3, 0x9CA4, 0x9CA5, 0x9CA6, 0x9CA7, /* 0x40 */
- 0xBEA4, 0x9CA8, 0x9CA9, 0x9CAA, 0x9CAB, 0x9CAC, 0x9CAD, 0x9CAE, /* 0x40 */
- 0x9CAF, 0x9CB0, 0x9CB1, 0x9CB2, 0x9CB3, 0x9CB4, 0x9CB5, 0x9CB6, /* 0x50 */
- 0x9CB7, 0x9CB8, 0x9CB9, 0x9CBA, 0x9CBB, 0x9CBC, 0x9CBD, 0x9CBE, /* 0x50 */
- 0x9CBF, 0x9CC0, 0x9CC1, 0x9CC2, 0xBEA5, 0xBEA6, 0x9CC3, 0x9CC4, /* 0x60 */
- 0xBEA7, 0x9CC5, 0x9CC6, 0x9CC7, 0xBEA8, 0x9CC8, 0x9CC9, 0x9CCA, /* 0x60 */
- 0x9CCB, 0x9CCC, 0x9CCD, 0x9CCE, 0xBEA9, 0xBEAA, 0x9CCF, 0x9CD0, /* 0x70 */
- 0x9CD1, 0xBEAB, 0x9CD2, 0x9CD3, 0x9CD4, 0x9CD5, 0x9CD6, 0x9CD7, /* 0x70 */
- 0xBEAC, 0x9CD8, 0x9CD9, 0x9CDA, 0x9CDB, 0x9CDC, 0x9CDD, 0x9CDE, /* 0x80 */
- 0x9CDF, 0x9CE0, 0x9CE1, 0x9CE2, 0x9CE3, 0x9CE4, 0x9CE5, 0x9CE6, /* 0x80 */
- 0x9CE7, 0x9CE8, 0x9CE9, 0x9CEA, 0xBEAD, 0x9CEB, 0x9CEC, 0x9CED, /* 0x90 */
- 0x9CEE, 0x9CEF, 0x9CF0, 0x9CF1, 0xBEAE, 0x9CF2, 0x9CF3, 0x9CF4, /* 0x90 */
- 0x9CF5, 0x9CF6, 0x9CF7, 0x9CF8, 0x9CF9, 0x9CFA, 0x9CFB, 0x9CFC, /* 0xA0 */
- 0x9CFD, 0x9CFE, 0x9D41, 0x9D42, 0x9D43, 0x9D44, 0x9D45, 0x9D46, /* 0xA0 */
- 0x9D47, 0x9D48, 0x9D49, 0x9D4A, 0x9D4B, 0x9D4C, 0x9D4D, 0x9D4E, /* 0xB0 */
- 0xBEAF, 0x9D4F, 0x9D50, 0x9D51, 0xBEB0, 0x9D52, 0x9D53, 0x9D54, /* 0xB0 */
- 0x9D55, 0x9D56, 0x9D57, 0x9D58, 0x9D59, 0x9D5A, 0x9D61, 0x9D62, /* 0xC0 */
- 0x9D63, 0x9D64, 0x9D65, 0x9D66, 0x9D67, 0x9D68, 0x9D69, 0x9D6A, /* 0xC0 */
- 0x9D6B, 0x9D6C, 0x9D6D, 0x9D6E, 0x9D6F, 0x9D70, 0x9D71, 0x9D72, /* 0xD0 */
- 0x9D73, 0x9D74, 0x9D75, 0x9D76, 0x9D77, 0x9D78, 0x9D79, 0x9D7A, /* 0xD0 */
- 0x9D81, 0x9D82, 0x9D83, 0x9D84, 0x9D85, 0x9D86, 0x9D87, 0x9D88, /* 0xE0 */
- 0x9D89, 0xBEB1, 0x9D8A, 0x9D8B, 0x9D8C, 0x9D8D, 0x9D8E, 0x9D8F, /* 0xE0 */
- 0xBEB2, 0xBEB3, 0x9D90, 0x9D91, 0xBEB4, 0x9D92, 0x9D93, 0x9D94, /* 0xF0 */
- 0xBEB5, 0x9D95, 0xBEB6, 0x9D96, 0x9D97, 0x9D98, 0x9D99, 0xBEB7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_C5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBEB8, 0xBEB9, 0x9D9A, 0x9D9B, 0x9D9C, 0x9D9D, 0x9D9E, 0x9D9F, /* 0x00 */
- 0x9DA0, 0x9DA1, 0x9DA2, 0x9DA3, 0xBEBA, 0x9DA4, 0x9DA5, 0x9DA6, /* 0x00 */
- 0xBEBB, 0x9DA7, 0x9DA8, 0x9DA9, 0xBEBC, 0x9DAA, 0x9DAB, 0x9DAC, /* 0x10 */
- 0x9DAD, 0x9DAE, 0x9DAF, 0x9DB0, 0xBEBD, 0x9DB1, 0x9DB2, 0x9DB3, /* 0x10 */
- 0x9DB4, 0x9DB5, 0x9DB6, 0x9DB7, 0x9DB8, 0x9DB9, 0x9DBA, 0x9DBB, /* 0x20 */
- 0xBEBE, 0xBEBF, 0x9DBC, 0x9DBD, 0xBEC0, 0x9DBE, 0x9DBF, 0x9DC0, /* 0x20 */
- 0xBEC1, 0x9DC1, 0x9DC2, 0x9DC3, 0x9DC4, 0x9DC5, 0x9DC6, 0x9DC7, /* 0x30 */
- 0xBEC2, 0xBEC3, 0x9DC8, 0xBEC4, 0x9DC9, 0xBEC5, 0x9DCA, 0x9DCB, /* 0x30 */
- 0x9DCC, 0x9DCD, 0x9DCE, 0x9DCF, 0xBEC6, 0xBEC7, 0x9DD0, 0x9DD1, /* 0x40 */
- 0xBEC8, 0xBEC9, 0xBECA, 0x9DD2, 0xBECB, 0xBECC, 0xBECD, 0x9DD3, /* 0x40 */
- 0x9DD4, 0x9DD5, 0x9DD6, 0xBECE, 0xBECF, 0xBED0, 0x9DD7, 0xBED1, /* 0x50 */
- 0xBED2, 0xBED3, 0x9DD8, 0x9DD9, 0x9DDA, 0xBED4, 0xBED5, 0x9DDB, /* 0x50 */
- 0xBED6, 0xBED7, 0x9DDC, 0x9DDD, 0xBED8, 0x9DDE, 0x9DDF, 0x9DE0, /* 0x60 */
- 0xBED9, 0x9DE1, 0x9DE2, 0x9DE3, 0x9DE4, 0x9DE5, 0x9DE6, 0x9DE7, /* 0x60 */
- 0xBEDA, 0xBEDB, 0x9DE8, 0xBEDC, 0xBEDD, 0xBEDE, 0x9DE9, 0x9DEA, /* 0x70 */
- 0x9DEB, 0x9DEC, 0x9DED, 0x9DEE, 0xBEDF, 0xBEE0, 0x9DEF, 0x9DF0, /* 0x70 */
- 0xBEE1, 0x9DF1, 0x9DF2, 0x9DF3, 0xBEE2, 0x9DF4, 0x9DF5, 0xBEE3, /* 0x80 */
- 0x9DF6, 0x9DF7, 0x9DF8, 0x9DF9, 0xBEE4, 0xBEE5, 0x9DFA, 0xBEE6, /* 0x80 */
- 0x9DFB, 0xBEE7, 0x9DFC, 0x9DFD, 0x9DFE, 0xBEE8, 0x9E41, 0xBEE9, /* 0x90 */
- 0xBEEA, 0x9E42, 0x9E43, 0x9E44, 0xBEEB, 0x9E45, 0x9E46, 0x9E47, /* 0x90 */
- 0xBEEC, 0x9E48, 0x9E49, 0x9E4A, 0x9E4B, 0x9E4C, 0x9E4D, 0x9E4E, /* 0xA0 */
- 0x9E4F, 0xBEED, 0x9E50, 0x9E51, 0x9E52, 0x9E53, 0x9E54, 0x9E55, /* 0xA0 */
- 0x9E56, 0x9E57, 0x9E58, 0x9E59, 0xBEEE, 0xBEEF, 0x9E5A, 0x9E61, /* 0xB0 */
- 0xBEF0, 0xBEF1, 0x9E62, 0xBEF2, 0xBEF3, 0xBEF4, 0xBEF5, 0x9E63, /* 0xB0 */
- 0x9E64, 0x9E65, 0x9E66, 0x9E67, 0xBEF6, 0xBEF7, 0xBEF8, 0xBEF9, /* 0xC0 */
- 0xBEFA, 0xBEFB, 0xBEFC, 0x9E68, 0xBEFD, 0x9E69, 0xBEFE, 0x9E6A, /* 0xC0 */
- 0xBFA1, 0xBFA2, 0x9E6B, 0x9E6C, 0xBFA3, 0x9E6D, 0x9E6E, 0x9E6F, /* 0xD0 */
- 0xBFA4, 0x9E70, 0x9E71, 0x9E72, 0x9E73, 0x9E74, 0x9E75, 0x9E76, /* 0xD0 */
- 0xBFA5, 0xBFA6, 0x9E77, 0xBFA7, 0x9E78, 0xBFA8, 0x9E79, 0x9E7A, /* 0xE0 */
- 0x9E81, 0x9E82, 0x9E83, 0x9E84, 0xBFA9, 0xBFAA, 0xBFAB, 0x9E85, /* 0xE0 */
- 0xBFAC, 0x9E86, 0x9E87, 0x9E88, 0xBFAD, 0x9E89, 0xBFAE, 0xBFAF, /* 0xF0 */
- 0x9E8A, 0x9E8B, 0x9E8C, 0x9E8D, 0xBFB0, 0xBFB1, 0xBFB2, 0xBFB3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_C6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBFB4, 0xBFB5, 0x9E8E, 0x9E8F, 0x9E90, 0xBFB6, 0xBFB7, 0xBFB8, /* 0x00 */
- 0xBFB9, 0x9E91, 0x9E92, 0x9E93, 0xBFBA, 0x9E94, 0x9E95, 0x9E96, /* 0x00 */
- 0xBFBB, 0x9E97, 0x9E98, 0x9E99, 0x9E9A, 0x9E9B, 0x9E9C, 0x9E9D, /* 0x10 */
- 0xBFBC, 0xBFBD, 0x9E9E, 0xBFBE, 0xBFBF, 0x9E9F, 0x9EA0, 0x9EA1, /* 0x10 */
- 0x9EA2, 0x9EA3, 0x9EA4, 0x9EA5, 0xBFC0, 0xBFC1, 0x9EA6, 0x9EA7, /* 0x20 */
- 0xBFC2, 0x9EA8, 0x9EA9, 0x9EAA, 0xBFC3, 0xBFC4, 0xBFC5, 0x9EAB, /* 0x20 */
- 0xBFC6, 0x9EAC, 0x9EAD, 0xBFC7, 0xBFC8, 0xBFC9, 0x9EAE, 0xBFCA, /* 0x30 */
- 0x9EAF, 0xBFCB, 0x9EB0, 0xBFCC, 0x9EB1, 0x9EB2, 0x9EB3, 0x9EB4, /* 0x30 */
- 0xBFCD, 0xBFCE, 0x9EB5, 0x9EB6, 0xBFCF, 0x9EB7, 0x9EB8, 0x9EB9, /* 0x40 */
- 0xBFD0, 0x9EBA, 0x9EBB, 0x9EBC, 0x9EBD, 0x9EBE, 0x9EBF, 0x9EC0, /* 0x40 */
- 0xBFD1, 0xBFD2, 0x9EC1, 0xBFD3, 0xBFD4, 0xBFD5, 0x9EC2, 0x9EC3, /* 0x50 */
- 0x9EC4, 0x9EC5, 0x9EC6, 0x9EC7, 0xBFD6, 0xBFD7, 0x9EC8, 0x9EC9, /* 0x50 */
- 0xBFD8, 0x9ECA, 0x9ECB, 0x9ECC, 0x9ECD, 0x9ECE, 0x9ECF, 0x9ED0, /* 0x60 */
- 0x9ED1, 0x9ED2, 0x9ED3, 0x9ED4, 0xBFD9, 0x9ED5, 0x9ED6, 0xBFDA, /* 0x60 */
- 0x9ED7, 0xBFDB, 0x9ED8, 0x9ED9, 0x9EDA, 0x9EDB, 0x9EDC, 0x9EDD, /* 0x70 */
- 0xBFDC, 0xBFDD, 0x9EDE, 0x9EDF, 0xBFDE, 0x9EE0, 0x9EE1, 0x9EE2, /* 0x70 */
- 0xBFDF, 0x9EE3, 0x9EE4, 0x9EE5, 0x9EE6, 0x9EE7, 0x9EE8, 0x9EE9, /* 0x80 */
- 0xBFE0, 0xBFE1, 0x9EEA, 0xBFE2, 0x9EEB, 0xBFE3, 0x9EEC, 0x9EED, /* 0x80 */
- 0x9EEE, 0x9EEF, 0x9EF0, 0x9EF1, 0xBFE4, 0xBFE5, 0x9EF2, 0x9EF3, /* 0x90 */
- 0xBFE6, 0x9EF4, 0x9EF5, 0x9EF6, 0xBFE7, 0x9EF7, 0x9EF8, 0x9EF9, /* 0x90 */
- 0x9EFA, 0x9EFB, 0x9EFC, 0x9EFD, 0xBFE8, 0xBFE9, 0x9EFE, 0xBFEA, /* 0xA0 */
- 0x9F41, 0xBFEB, 0x9F42, 0x9F43, 0x9F44, 0x9F45, 0x9F46, 0x9F47, /* 0xA0 */
- 0xBFEC, 0xBFED, 0x9F48, 0x9F49, 0xBFEE, 0x9F4A, 0x9F4B, 0x9F4C, /* 0xB0 */
- 0xBFEF, 0xBFF0, 0xBFF1, 0x9F4D, 0x9F4E, 0x9F4F, 0x9F50, 0x9F51, /* 0xB0 */
- 0xBFF2, 0xBFF3, 0x9F52, 0xBFF4, 0x9F53, 0xBFF5, 0x9F54, 0x9F55, /* 0xC0 */
- 0x9F56, 0x9F57, 0x9F58, 0x9F59, 0xBFF6, 0xBFF7, 0x9F5A, 0x9F61, /* 0xC0 */
- 0xBFF8, 0x9F62, 0x9F63, 0x9F64, 0xBFF9, 0x9F65, 0x9F66, 0x9F67, /* 0xD0 */
- 0x9F68, 0x9F69, 0x9F6A, 0x9F6B, 0xBFFA, 0xBFFB, 0x9F6C, 0x9F6D, /* 0xD0 */
- 0xBFFC, 0xBFFD, 0x9F6E, 0x9F6F, 0x9F70, 0x9F71, 0x9F72, 0x9F73, /* 0xE0 */
- 0xBFFE, 0xC0A1, 0x9F74, 0x9F75, 0xC0A2, 0x9F76, 0x9F77, 0x9F78, /* 0xE0 */
- 0xC0A3, 0x9F79, 0x9F7A, 0x9F81, 0x9F82, 0x9F83, 0x9F84, 0x9F85, /* 0xF0 */
- 0xC0A4, 0xC0A5, 0x9F86, 0x9F87, 0x9F88, 0xC0A6, 0x9F89, 0x9F8A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_C7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9F8B, 0x9F8C, 0x9F8D, 0x9F8E, 0xC0A7, 0xC0A8, 0x9F8F, 0x9F90, /* 0x00 */
- 0xC0A9, 0x9F91, 0x9F92, 0x9F93, 0xC0AA, 0x9F94, 0x9F95, 0x9F96, /* 0x00 */
- 0x9F97, 0x9F98, 0x9F99, 0x9F9A, 0xC0AB, 0xC0AC, 0x9F9B, 0xC0AD, /* 0x10 */
- 0x9F9C, 0xC0AE, 0x9F9D, 0x9F9E, 0x9F9F, 0x9FA0, 0x9FA1, 0x9FA2, /* 0x10 */
- 0xC0AF, 0xC0B0, 0x9FA3, 0x9FA4, 0xC0B1, 0x9FA5, 0x9FA6, 0x9FA7, /* 0x20 */
- 0xC0B2, 0x9FA8, 0x9FA9, 0x9FAA, 0x9FAB, 0x9FAC, 0x9FAD, 0x9FAE, /* 0x20 */
- 0xC0B3, 0xC0B4, 0x9FAF, 0xC0B5, 0x9FB0, 0xC0B6, 0x9FB1, 0xC0B7, /* 0x30 */
- 0x9FB2, 0x9FB3, 0x9FB4, 0x9FB5, 0xC0B8, 0xC0B9, 0x9FB6, 0x9FB7, /* 0x30 */
- 0xC0BA, 0x9FB8, 0x9FB9, 0x9FBA, 0xC0BB, 0x9FBB, 0x9FBC, 0x9FBD, /* 0x40 */
- 0x9FBE, 0x9FBF, 0xC0BC, 0x9FC0, 0xC0BD, 0xC0BE, 0x9FC1, 0xC0BF, /* 0x40 */
- 0x9FC2, 0xC0C0, 0xC0C1, 0xC0C2, 0xC0C3, 0xC0C4, 0xC0C5, 0xC0C6, /* 0x50 */
- 0xC0C7, 0x9FC3, 0x9FC4, 0x9FC5, 0xC0C8, 0x9FC6, 0x9FC7, 0x9FC8, /* 0x50 */
- 0xC0C9, 0x9FC9, 0x9FCA, 0x9FCB, 0x9FCC, 0x9FCD, 0x9FCE, 0x9FCF, /* 0x60 */
- 0xC0CA, 0x9FD0, 0x9FD1, 0xC0CB, 0x9FD2, 0x9FD3, 0x9FD4, 0x9FD5, /* 0x60 */
- 0x9FD6, 0x9FD7, 0x9FD8, 0x9FD9, 0xC0CC, 0xC0CD, 0x9FDA, 0x9FDB, /* 0x70 */
- 0xC0CE, 0x9FDC, 0x9FDD, 0x9FDE, 0xC0CF, 0xC0D0, 0xC0D1, 0x9FDF, /* 0x70 */
- 0x9FE0, 0x9FE1, 0x9FE2, 0xC0D2, 0xC0D3, 0xC0D4, 0x9FE3, 0xC0D5, /* 0x80 */
- 0xC0D6, 0xC0D7, 0xC0D8, 0x9FE4, 0x9FE5, 0x9FE6, 0xC0D9, 0x9FE7, /* 0x80 */
- 0xC0DA, 0xC0DB, 0x9FE8, 0x9FE9, 0xC0DC, 0x9FEA, 0xC0DD, 0xC0DE, /* 0x90 */
- 0xC0DF, 0x9FEB, 0xC0E0, 0x9FEC, 0x9FED, 0x9FEE, 0x9FEF, 0x9FF0, /* 0x90 */
- 0xC0E1, 0xC0E2, 0x9FF1, 0xC0E3, 0xC0E4, 0xC0E5, 0xC0E6, 0x9FF2, /* 0xA0 */
- 0x9FF3, 0x9FF4, 0x9FF5, 0x9FF6, 0xC0E7, 0xC0E8, 0x9FF7, 0x9FF8, /* 0xA0 */
- 0xC0E9, 0x9FF9, 0x9FFA, 0x9FFB, 0xC0EA, 0x9FFC, 0x9FFD, 0x9FFE, /* 0xB0 */
- 0xA041, 0xA042, 0xA043, 0xA044, 0xC0EB, 0xC0EC, 0xA045, 0xC0ED, /* 0xB0 */
- 0xC0EE, 0xC0EF, 0xA046, 0xA047, 0xA048, 0xA049, 0xA04A, 0xA04B, /* 0xC0 */
- 0xC0F0, 0xC0F1, 0xA04C, 0xA04D, 0xC0F2, 0xA04E, 0xC0F3, 0xA04F, /* 0xC0 */
- 0xC0F4, 0xA050, 0xA051, 0xA052, 0xA053, 0xA054, 0xA055, 0xA056, /* 0xD0 */
- 0xC0F5, 0xA057, 0xA058, 0xA059, 0xA05A, 0xC0F6, 0xA061, 0xA062, /* 0xD0 */
- 0xA063, 0xA064, 0xA065, 0xA066, 0xC0F7, 0xA067, 0xA068, 0xA069, /* 0xE0 */
- 0xC0F8, 0xA06A, 0xA06B, 0xA06C, 0xC0F9, 0xA06D, 0xA06E, 0xA06F, /* 0xE0 */
- 0xA070, 0xA071, 0xA072, 0xA073, 0xA074, 0xA075, 0xA076, 0xA077, /* 0xF0 */
- 0xA078, 0xA079, 0xA07A, 0xA081, 0xA082, 0xA083, 0xA084, 0xA085 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_C8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC0FA, 0xC0FB, 0xA086, 0xA087, 0xC0FC, 0xA088, 0xA089, 0xA08A, /* 0x00 */
- 0xC0FD, 0xA08B, 0xC0FE, 0xA08C, 0xA08D, 0xA08E, 0xA08F, 0xA090, /* 0x00 */
- 0xC1A1, 0xC1A2, 0xA091, 0xC1A3, 0xA092, 0xC1A4, 0xC1A5, 0xA093, /* 0x10 */
- 0xA094, 0xA095, 0xA096, 0xA097, 0xC1A6, 0xC1A7, 0xA098, 0xA099, /* 0x10 */
- 0xC1A8, 0xA09A, 0xA09B, 0xA09C, 0xC1A9, 0xA09D, 0xA09E, 0xA09F, /* 0x20 */
- 0xA0A0, 0xA0A1, 0xA0A2, 0xA0A3, 0xC1AA, 0xC1AB, 0xA0A4, 0xC1AC, /* 0x20 */
- 0xA0A5, 0xC1AD, 0xA0A6, 0xA0A7, 0xA0A8, 0xA0A9, 0xA0AA, 0xA0AB, /* 0x30 */
- 0xC1AE, 0xA0AC, 0xA0AD, 0xA0AE, 0xC1AF, 0xA0AF, 0xA0B0, 0xA0B1, /* 0x30 */
- 0xC1B0, 0xA0B2, 0xA0B3, 0xA0B4, 0xA0B5, 0xA0B6, 0xA0B7, 0xA0B8, /* 0x40 */
- 0xC1B1, 0xC1B2, 0xA0B9, 0xA0BA, 0xC1B3, 0xC1B4, 0xA0BB, 0xA0BC, /* 0x40 */
- 0xA0BD, 0xA0BE, 0xA0BF, 0xA0C0, 0xC1B5, 0xA0C1, 0xA0C2, 0xA0C3, /* 0x50 */
- 0xA0C4, 0xA0C5, 0xA0C6, 0xA0C7, 0xA0C8, 0xA0C9, 0xA0CA, 0xA0CB, /* 0x50 */
- 0xA0CC, 0xA0CD, 0xA0CE, 0xA0CF, 0xA0D0, 0xA0D1, 0xA0D2, 0xA0D3, /* 0x60 */
- 0xA0D4, 0xA0D5, 0xA0D6, 0xA0D7, 0xA0D8, 0xA0D9, 0xA0DA, 0xA0DB, /* 0x60 */
- 0xC1B6, 0xC1B7, 0xA0DC, 0xA0DD, 0xC1B8, 0xA0DE, 0xA0DF, 0xA0E0, /* 0x70 */
- 0xC1B9, 0xA0E1, 0xC1BA, 0xA0E2, 0xA0E3, 0xA0E4, 0xA0E5, 0xA0E6, /* 0x70 */
- 0xC1BB, 0xC1BC, 0xA0E7, 0xC1BD, 0xA0E8, 0xC1BE, 0xC1BF, 0xC1C0, /* 0x80 */
- 0xA0E9, 0xA0EA, 0xA0EB, 0xC1C1, 0xC1C2, 0xC1C3, 0xA0EC, 0xA0ED, /* 0x80 */
- 0xA0EE, 0xA0EF, 0xA0F0, 0xA0F1, 0xC1C4, 0xA0F2, 0xA0F3, 0xA0F4, /* 0x90 */
- 0xA0F5, 0xA0F6, 0xA0F7, 0xA0F8, 0xA0F9, 0xC1C5, 0xA0FA, 0xC1C6, /* 0x90 */
- 0xA0FB, 0xC1C7, 0xA0FC, 0xA0FD, 0xA0FE, 0xA141, 0xA142, 0xA143, /* 0xA0 */
- 0xC1C8, 0xA144, 0xA145, 0xA146, 0xA147, 0xA148, 0xA149, 0xA14A, /* 0xA0 */
- 0xA14B, 0xA14C, 0xA14D, 0xA14E, 0xA14F, 0xA150, 0xA151, 0xA152, /* 0xB0 */
- 0xA153, 0xA154, 0xA155, 0xA156, 0xC1C9, 0xC1CA, 0xA157, 0xA158, /* 0xB0 */
- 0xA159, 0xA15A, 0xA161, 0xA162, 0xC1CB, 0xA163, 0xA164, 0xA165, /* 0xC0 */
- 0xC1CC, 0xA166, 0xA167, 0xA168, 0xC1CD, 0xA169, 0xA16A, 0xA16B, /* 0xC0 */
- 0xA16C, 0xA16D, 0xA16E, 0xA16F, 0xC1CE, 0xC1CF, 0xA170, 0xC1D0, /* 0xD0 */
- 0xA171, 0xC1D1, 0xA172, 0xA173, 0xA174, 0xA175, 0xA176, 0xA177, /* 0xD0 */
- 0xC1D2, 0xC1D3, 0xA178, 0xA179, 0xC1D4, 0xA17A, 0xA181, 0xA182, /* 0xE0 */
- 0xA183, 0xA184, 0xA185, 0xA186, 0xA187, 0xA188, 0xA189, 0xA18A, /* 0xE0 */
- 0xA18B, 0xA18C, 0xA18D, 0xA18E, 0xA18F, 0xC1D5, 0xA190, 0xA191, /* 0xF0 */
- 0xA192, 0xA193, 0xA194, 0xA195, 0xC1D6, 0xC1D7, 0xA196, 0xA197 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_C9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC1D8, 0xA198, 0xA199, 0xA19A, 0xC1D9, 0xC1DA, 0xC1DB, 0xA19B, /* 0x00 */
- 0xA19C, 0xA19D, 0xA19E, 0xA19F, 0xC1DC, 0xC1DD, 0xA1A0, 0xC1DE, /* 0x00 */
- 0xA241, 0xC1DF, 0xA242, 0xA243, 0xA244, 0xA245, 0xA246, 0xA247, /* 0x10 */
- 0xC1E0, 0xA248, 0xA249, 0xA24A, 0xA24B, 0xA24C, 0xA24D, 0xA24E, /* 0x10 */
- 0xA24F, 0xA250, 0xA251, 0xA252, 0xA253, 0xA254, 0xA255, 0xA256, /* 0x20 */
- 0xA257, 0xA258, 0xA259, 0xA25A, 0xC1E1, 0xA261, 0xA262, 0xA263, /* 0x20 */
- 0xA264, 0xA265, 0xA266, 0xA267, 0xC1E2, 0xA268, 0xA269, 0xA26A, /* 0x30 */
- 0xA26B, 0xA26C, 0xA26D, 0xA26E, 0xA26F, 0xA270, 0xA271, 0xA272, /* 0x30 */
- 0xA273, 0xA274, 0xA275, 0xA276, 0xA277, 0xA278, 0xA279, 0xA27A, /* 0x40 */
- 0xA281, 0xA282, 0xA283, 0xA284, 0xA285, 0xA286, 0xA287, 0xA288, /* 0x40 */
- 0xC1E3, 0xC1E4, 0xA289, 0xA28A, 0xC1E5, 0xA28B, 0xA28C, 0xA28D, /* 0x50 */
- 0xC1E6, 0xA28E, 0xA28F, 0xA290, 0xA291, 0xA292, 0xA293, 0xA294, /* 0x50 */
- 0xC1E7, 0xC1E8, 0xA295, 0xC1E9, 0xA296, 0xA297, 0xA298, 0xA299, /* 0x60 */
- 0xA29A, 0xA29B, 0xA29C, 0xA29D, 0xC1EA, 0xA29E, 0xA29F, 0xA2A0, /* 0x60 */
- 0xC1EB, 0xA341, 0xA342, 0xA343, 0xC1EC, 0xA344, 0xA345, 0xA346, /* 0x70 */
- 0xA347, 0xA348, 0xA349, 0xA34A, 0xC1ED, 0xA34B, 0xA34C, 0xA34D, /* 0x70 */
- 0xA34E, 0xA34F, 0xA350, 0xA351, 0xA352, 0xA353, 0xA354, 0xA355, /* 0x80 */
- 0xC1EE, 0xC1EF, 0xA356, 0xA357, 0xC1F0, 0xA358, 0xA359, 0xA35A, /* 0x80 */
- 0xC1F1, 0xA361, 0xA362, 0xA363, 0xA364, 0xA365, 0xA366, 0xA367, /* 0x90 */
- 0xC1F2, 0xC1F3, 0xA368, 0xC1F4, 0xA369, 0xC1F5, 0xA36A, 0xA36B, /* 0x90 */
- 0xA36C, 0xA36D, 0xA36E, 0xA36F, 0xA370, 0xA371, 0xA372, 0xA373, /* 0xA0 */
- 0xA374, 0xA375, 0xA376, 0xA377, 0xA378, 0xA379, 0xA37A, 0xA381, /* 0xA0 */
- 0xA382, 0xA383, 0xA384, 0xA385, 0xA386, 0xA387, 0xA388, 0xA389, /* 0xB0 */
- 0xA38A, 0xA38B, 0xA38C, 0xA38D, 0xA38E, 0xA38F, 0xA390, 0xA391, /* 0xB0 */
- 0xC1F6, 0xC1F7, 0xA392, 0xA393, 0xC1F8, 0xA394, 0xA395, 0xC1F9, /* 0xC0 */
- 0xC1FA, 0xA396, 0xC1FB, 0xA397, 0xA398, 0xA399, 0xA39A, 0xA39B, /* 0xC0 */
- 0xC1FC, 0xC1FD, 0xA39C, 0xC1FE, 0xA39D, 0xC2A1, 0xC2A2, 0xA39E, /* 0xD0 */
- 0xA39F, 0xC2A3, 0xC2A4, 0xA3A0, 0xC2A5, 0xC2A6, 0xA441, 0xA442, /* 0xD0 */
- 0xC2A7, 0xA443, 0xC2A8, 0xA444, 0xC2A9, 0xA445, 0xA446, 0xC2AA, /* 0xE0 */
- 0xA447, 0xA448, 0xA449, 0xA44A, 0xC2AB, 0xC2AC, 0xA44B, 0xC2AD, /* 0xE0 */
- 0xC2AE, 0xC2AF, 0xA44C, 0xA44D, 0xA44E, 0xA44F, 0xA450, 0xA451, /* 0xF0 */
- 0xC2B0, 0xC2B1, 0xA452, 0xA453, 0xC2B2, 0xA454, 0xA455, 0xA456 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_CA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC2B3, 0xA457, 0xA458, 0xA459, 0xA45A, 0xA461, 0xA462, 0xA463, /* 0x00 */
- 0xC2B4, 0xC2B5, 0xA464, 0xC2B6, 0xC2B7, 0xC2B8, 0xA465, 0xA466, /* 0x00 */
- 0xA467, 0xA468, 0xA469, 0xA46A, 0xC2B9, 0xA46B, 0xA46C, 0xA46D, /* 0x10 */
- 0xC2BA, 0xA46E, 0xA46F, 0xA470, 0xA471, 0xA472, 0xA473, 0xA474, /* 0x10 */
- 0xA475, 0xA476, 0xA477, 0xA478, 0xA479, 0xA47A, 0xA481, 0xA482, /* 0x20 */
- 0xA483, 0xC2BB, 0xA484, 0xA485, 0xA486, 0xA487, 0xA488, 0xA489, /* 0x20 */
- 0xA48A, 0xA48B, 0xA48C, 0xA48D, 0xA48E, 0xA48F, 0xA490, 0xA491, /* 0x30 */
- 0xA492, 0xA493, 0xA494, 0xA495, 0xA496, 0xA497, 0xA498, 0xA499, /* 0x30 */
- 0xA49A, 0xA49B, 0xA49C, 0xA49D, 0xA49E, 0xA49F, 0xA4A0, 0xA541, /* 0x40 */
- 0xA542, 0xA543, 0xA544, 0xA545, 0xC2BC, 0xC2BD, 0xA546, 0xA547, /* 0x40 */
- 0xC2BE, 0xA548, 0xA549, 0xA54A, 0xC2BF, 0xA54B, 0xA54C, 0xA54D, /* 0x50 */
- 0xA54E, 0xA54F, 0xA550, 0xA551, 0xC2C0, 0xC2C1, 0xA552, 0xC2C2, /* 0x50 */
- 0xC2C3, 0xC2C4, 0xA553, 0xA554, 0xA555, 0xA556, 0xA557, 0xA558, /* 0x60 */
- 0xC2C5, 0xA559, 0xA55A, 0xA561, 0xA562, 0xA563, 0xA564, 0xA565, /* 0x60 */
- 0xA566, 0xA567, 0xA568, 0xA569, 0xA56A, 0xA56B, 0xA56C, 0xA56D, /* 0x70 */
- 0xA56E, 0xA56F, 0xA570, 0xA571, 0xA572, 0xC2C6, 0xA573, 0xA574, /* 0x70 */
- 0xA575, 0xA576, 0xA577, 0xA578, 0xC2C7, 0xA579, 0xA57A, 0xA581, /* 0x80 */
- 0xA582, 0xA583, 0xA584, 0xA585, 0xA586, 0xA587, 0xA588, 0xA589, /* 0x80 */
- 0xA58A, 0xA58B, 0xA58C, 0xA58D, 0xA58E, 0xA58F, 0xA590, 0xA591, /* 0x90 */
- 0xC2C8, 0xA592, 0xA593, 0xA594, 0xA595, 0xA596, 0xA597, 0xA598, /* 0x90 */
- 0xA599, 0xA59A, 0xA59B, 0xA59C, 0xA59D, 0xA59E, 0xA59F, 0xA5A0, /* 0xA0 */
- 0xA641, 0xA642, 0xA643, 0xA644, 0xA645, 0xA646, 0xA647, 0xA648, /* 0xA0 */
- 0xA649, 0xA64A, 0xA64B, 0xA64C, 0xA64D, 0xA64E, 0xA64F, 0xA650, /* 0xB0 */
- 0xA651, 0xA652, 0xA653, 0xA654, 0xC2C9, 0xC2CA, 0xA655, 0xA656, /* 0xB0 */
- 0xC2CB, 0xA657, 0xA658, 0xA659, 0xC2CC, 0xA65A, 0xA661, 0xA662, /* 0xC0 */
- 0xA663, 0xA664, 0xA665, 0xA666, 0xC2CD, 0xC2CE, 0xA667, 0xC2CF, /* 0xC0 */
- 0xA668, 0xC2D0, 0xA669, 0xC2D1, 0xA66A, 0xA66B, 0xA66C, 0xA66D, /* 0xD0 */
- 0xC2D2, 0xC2D3, 0xA66E, 0xA66F, 0xA670, 0xA671, 0xA672, 0xA673, /* 0xD0 */
- 0xC2D4, 0xA674, 0xA675, 0xA676, 0xA677, 0xA678, 0xA679, 0xA67A, /* 0xE0 */
- 0xA681, 0xA682, 0xA683, 0xA684, 0xC2D5, 0xA685, 0xA686, 0xA687, /* 0xE0 */
- 0xA688, 0xA689, 0xA68A, 0xA68B, 0xC2D6, 0xA68C, 0xA68D, 0xA68E, /* 0xF0 */
- 0xA68F, 0xA690, 0xA691, 0xA692, 0xA693, 0xA694, 0xA695, 0xA696 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_CB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA697, 0xA698, 0xA699, 0xA69A, 0xA69B, 0xA69C, 0xA69D, 0xA69E, /* 0x00 */
- 0xC2D7, 0xA69F, 0xA6A0, 0xA741, 0xA742, 0xA743, 0xA744, 0xA745, /* 0x00 */
- 0xC2D8, 0xA746, 0xA747, 0xA748, 0xC2D9, 0xA749, 0xA74A, 0xA74B, /* 0x10 */
- 0xC2DA, 0xA74C, 0xA74D, 0xA74E, 0xA74F, 0xA750, 0xA751, 0xA752, /* 0x10 */
- 0xC2DB, 0xC2DC, 0xA753, 0xA754, 0xA755, 0xA756, 0xA757, 0xA758, /* 0x20 */
- 0xA759, 0xA75A, 0xA761, 0xA762, 0xA763, 0xA764, 0xA765, 0xA766, /* 0x20 */
- 0xA767, 0xA768, 0xA769, 0xA76A, 0xA76B, 0xA76C, 0xA76D, 0xA76E, /* 0x30 */
- 0xA76F, 0xA770, 0xA771, 0xA772, 0xA773, 0xA774, 0xA775, 0xA776, /* 0x30 */
- 0xA777, 0xC2DD, 0xA778, 0xA779, 0xA77A, 0xA781, 0xA782, 0xA783, /* 0x40 */
- 0xC2DE, 0xC2DF, 0xA784, 0xA785, 0xC2E0, 0xA786, 0xA787, 0xA788, /* 0x40 */
- 0xC2E1, 0xA789, 0xA78A, 0xA78B, 0xA78C, 0xA78D, 0xA78E, 0xA78F, /* 0x50 */
- 0xC2E2, 0xC2E3, 0xA790, 0xA791, 0xA792, 0xC2E4, 0xA793, 0xA794, /* 0x50 */
- 0xA795, 0xA796, 0xA797, 0xA798, 0xC2E5, 0xA799, 0xA79A, 0xA79B, /* 0x60 */
- 0xA79C, 0xA79D, 0xA79E, 0xA79F, 0xA7A0, 0xA841, 0xA842, 0xA843, /* 0x60 */
- 0xA844, 0xA845, 0xA846, 0xA847, 0xA848, 0xA849, 0xA84A, 0xA84B, /* 0x70 */
- 0xC2E6, 0xC2E7, 0xA84C, 0xA84D, 0xA84E, 0xA84F, 0xA850, 0xA851, /* 0x70 */
- 0xA852, 0xA853, 0xA854, 0xA855, 0xA856, 0xA857, 0xA858, 0xA859, /* 0x80 */
- 0xA85A, 0xA861, 0xA862, 0xA863, 0xA864, 0xA865, 0xA866, 0xA867, /* 0x80 */
- 0xA868, 0xA869, 0xA86A, 0xA86B, 0xA86C, 0xA86D, 0xA86E, 0xA86F, /* 0x90 */
- 0xA870, 0xA871, 0xA872, 0xA873, 0xC2E8, 0xA874, 0xA875, 0xA876, /* 0x90 */
- 0xA877, 0xA878, 0xA879, 0xA87A, 0xA881, 0xA882, 0xA883, 0xA884, /* 0xA0 */
- 0xA885, 0xA886, 0xA887, 0xA888, 0xA889, 0xA88A, 0xA88B, 0xA88C, /* 0xA0 */
- 0xA88D, 0xA88E, 0xA88F, 0xA890, 0xA891, 0xA892, 0xA893, 0xA894, /* 0xB0 */
- 0xC2E9, 0xA895, 0xA896, 0xA897, 0xA898, 0xA899, 0xA89A, 0xA89B, /* 0xB0 */
- 0xA89C, 0xA89D, 0xA89E, 0xA89F, 0xA8A0, 0xA941, 0xA942, 0xA943, /* 0xC0 */
- 0xA944, 0xA945, 0xA946, 0xA947, 0xA948, 0xA949, 0xA94A, 0xA94B, /* 0xC0 */
- 0xA94C, 0xA94D, 0xA94E, 0xA94F, 0xC2EA, 0xA950, 0xA951, 0xA952, /* 0xD0 */
- 0xA953, 0xA954, 0xA955, 0xA956, 0xA957, 0xA958, 0xA959, 0xA95A, /* 0xD0 */
- 0xA961, 0xA962, 0xA963, 0xA964, 0xC2EB, 0xA965, 0xA966, 0xC2EC, /* 0xE0 */
- 0xA967, 0xC2ED, 0xA968, 0xA969, 0xA96A, 0xA96B, 0xA96C, 0xA96D, /* 0xE0 */
- 0xA96E, 0xA96F, 0xA970, 0xA971, 0xA972, 0xA973, 0xA974, 0xA975, /* 0xF0 */
- 0xA976, 0xA977, 0xA978, 0xA979, 0xA97A, 0xA981, 0xA982, 0xA983 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_CC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA984, 0xA985, 0xA986, 0xA987, 0xA988, 0xA989, 0xA98A, 0xA98B, /* 0x00 */
- 0xA98C, 0xA98D, 0xA98E, 0xA98F, 0xC2EE, 0xC2EF, 0xA990, 0xA991, /* 0x00 */
- 0xC2F0, 0xA992, 0xA993, 0xA994, 0xC2F1, 0xA995, 0xA996, 0xA997, /* 0x10 */
- 0xA998, 0xA999, 0xA99A, 0xA99B, 0xC2F2, 0xC2F3, 0xA99C, 0xA99D, /* 0x10 */
- 0xA99E, 0xC2F4, 0xC2F5, 0xA99F, 0xA9A0, 0xAA41, 0xAA42, 0xC2F6, /* 0x20 */
- 0xC2F7, 0xC2F8, 0xAA43, 0xAA44, 0xC2F9, 0xAA45, 0xC2FA, 0xAA46, /* 0x20 */
- 0xC2FB, 0xAA47, 0xAA48, 0xAA49, 0xAA4A, 0xAA4B, 0xAA4C, 0xAA4D, /* 0x30 */
- 0xC2FC, 0xC2FD, 0xAA4E, 0xC2FE, 0xC3A1, 0xC3A2, 0xC3A3, 0xAA4F, /* 0x30 */
- 0xAA50, 0xAA51, 0xAA52, 0xAA53, 0xC3A4, 0xC3A5, 0xAA54, 0xAA55, /* 0x40 */
- 0xC3A6, 0xAA56, 0xAA57, 0xAA58, 0xC3A7, 0xAA59, 0xAA5A, 0xAA61, /* 0x40 */
- 0xAA62, 0xAA63, 0xAA64, 0xAA65, 0xC3A8, 0xC3A9, 0xAA66, 0xC3AA, /* 0x50 */
- 0xC3AB, 0xC3AC, 0xAA67, 0xAA68, 0xAA69, 0xAA6A, 0xAA6B, 0xAA6C, /* 0x50 */
- 0xC3AD, 0xAA6D, 0xAA6E, 0xAA6F, 0xC3AE, 0xAA70, 0xC3AF, 0xAA71, /* 0x60 */
- 0xC3B0, 0xAA72, 0xAA73, 0xAA74, 0xAA75, 0xAA76, 0xAA77, 0xAA78, /* 0x60 */
- 0xC3B1, 0xAA79, 0xAA7A, 0xAA81, 0xAA82, 0xC3B2, 0xAA83, 0xAA84, /* 0x70 */
- 0xAA85, 0xAA86, 0xAA87, 0xAA88, 0xAA89, 0xAA8A, 0xAA8B, 0xAA8C, /* 0x70 */
- 0xAA8D, 0xAA8E, 0xAA8F, 0xAA90, 0xAA91, 0xAA92, 0xAA93, 0xAA94, /* 0x80 */
- 0xAA95, 0xAA96, 0xAA97, 0xAA98, 0xAA99, 0xAA9A, 0xAA9B, 0xAA9C, /* 0x80 */
- 0xAA9D, 0xAA9E, 0xAA9F, 0xAAA0, 0xAB41, 0xAB42, 0xAB43, 0xAB44, /* 0x90 */
- 0xC3B3, 0xC3B4, 0xAB45, 0xAB46, 0xC3B5, 0xAB47, 0xAB48, 0xAB49, /* 0x90 */
- 0xC3B6, 0xAB4A, 0xAB4B, 0xAB4C, 0xAB4D, 0xAB4E, 0xAB4F, 0xAB50, /* 0xA0 */
- 0xC3B7, 0xC3B8, 0xAB51, 0xC3B9, 0xC3BA, 0xC3BB, 0xAB52, 0xAB53, /* 0xA0 */
- 0xAB54, 0xAB55, 0xAB56, 0xAB57, 0xC3BC, 0xC3BD, 0xAB58, 0xAB59, /* 0xB0 */
- 0xC3BE, 0xAB5A, 0xAB61, 0xAB62, 0xC3BF, 0xAB63, 0xAB64, 0xAB65, /* 0xB0 */
- 0xAB66, 0xAB67, 0xAB68, 0xAB69, 0xC3C0, 0xC3C1, 0xAB6A, 0xC3C2, /* 0xC0 */
- 0xAB6B, 0xC3C3, 0xAB6C, 0xAB6D, 0xAB6E, 0xAB6F, 0xAB70, 0xAB71, /* 0xC0 */
- 0xC3C4, 0xAB72, 0xAB73, 0xAB74, 0xC3C5, 0xAB75, 0xAB76, 0xAB77, /* 0xD0 */
- 0xAB78, 0xAB79, 0xAB7A, 0xAB81, 0xAB82, 0xAB83, 0xAB84, 0xAB85, /* 0xD0 */
- 0xAB86, 0xAB87, 0xAB88, 0xAB89, 0xC3C6, 0xAB8A, 0xAB8B, 0xAB8C, /* 0xE0 */
- 0xAB8D, 0xAB8E, 0xAB8F, 0xAB90, 0xC3C7, 0xAB91, 0xAB92, 0xAB93, /* 0xE0 */
- 0xC3C8, 0xAB94, 0xAB95, 0xAB96, 0xAB97, 0xAB98, 0xAB99, 0xAB9A, /* 0xF0 */
- 0xAB9B, 0xAB9C, 0xAB9D, 0xAB9E, 0xAB9F, 0xABA0, 0xAC41, 0xAC42 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_CD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xAC43, 0xC3C9, 0xAC44, 0xAC45, 0xAC46, 0xAC47, 0xAC48, 0xAC49, /* 0x00 */
- 0xC3CA, 0xC3CB, 0xAC4A, 0xAC4B, 0xC3CC, 0xAC4C, 0xAC4D, 0xAC4E, /* 0x00 */
- 0xC3CD, 0xAC4F, 0xAC50, 0xAC51, 0xAC52, 0xAC53, 0xAC54, 0xAC55, /* 0x10 */
- 0xC3CE, 0xC3CF, 0xAC56, 0xC3D0, 0xAC57, 0xC3D1, 0xAC58, 0xAC59, /* 0x10 */
- 0xAC5A, 0xAC61, 0xAC62, 0xAC63, 0xC3D2, 0xAC64, 0xAC65, 0xAC66, /* 0x20 */
- 0xC3D3, 0xAC67, 0xAC68, 0xAC69, 0xC3D4, 0xAC6A, 0xAC6B, 0xAC6C, /* 0x20 */
- 0xAC6D, 0xAC6E, 0xAC6F, 0xAC70, 0xAC71, 0xAC72, 0xAC73, 0xAC74, /* 0x30 */
- 0xAC75, 0xC3D5, 0xAC76, 0xAC77, 0xAC78, 0xAC79, 0xAC7A, 0xAC81, /* 0x30 */
- 0xAC82, 0xAC83, 0xAC84, 0xAC85, 0xAC86, 0xAC87, 0xAC88, 0xAC89, /* 0x40 */
- 0xAC8A, 0xAC8B, 0xAC8C, 0xAC8D, 0xAC8E, 0xAC8F, 0xAC90, 0xAC91, /* 0x40 */
- 0xAC92, 0xAC93, 0xAC94, 0xAC95, 0xAC96, 0xAC97, 0xAC98, 0xAC99, /* 0x50 */
- 0xAC9A, 0xAC9B, 0xAC9C, 0xAC9D, 0xC3D6, 0xAC9E, 0xAC9F, 0xACA0, /* 0x50 */
- 0xC3D7, 0xAD41, 0xAD42, 0xAD43, 0xC3D8, 0xAD44, 0xAD45, 0xAD46, /* 0x60 */
- 0xAD47, 0xAD48, 0xAD49, 0xAD4A, 0xC3D9, 0xC3DA, 0xAD4B, 0xC3DB, /* 0x60 */
- 0xAD4C, 0xC3DC, 0xAD4D, 0xAD4E, 0xAD4F, 0xAD50, 0xAD51, 0xAD52, /* 0x70 */
- 0xC3DD, 0xAD53, 0xAD54, 0xAD55, 0xAD56, 0xAD57, 0xAD58, 0xAD59, /* 0x70 */
- 0xAD5A, 0xAD61, 0xAD62, 0xAD63, 0xAD64, 0xAD65, 0xAD66, 0xAD67, /* 0x80 */
- 0xC3DE, 0xAD68, 0xAD69, 0xAD6A, 0xAD6B, 0xAD6C, 0xAD6D, 0xAD6E, /* 0x80 */
- 0xAD6F, 0xAD70, 0xAD71, 0xAD72, 0xC3DF, 0xC3E0, 0xAD73, 0xAD74, /* 0x90 */
- 0xC3E1, 0xAD75, 0xAD76, 0xAD77, 0xC3E2, 0xAD78, 0xAD79, 0xAD7A, /* 0x90 */
- 0xAD81, 0xAD82, 0xAD83, 0xAD84, 0xC3E3, 0xC3E4, 0xAD85, 0xC3E5, /* 0xA0 */
- 0xAD86, 0xC3E6, 0xAD87, 0xAD88, 0xAD89, 0xAD8A, 0xAD8B, 0xAD8C, /* 0xA0 */
- 0xC3E7, 0xAD8D, 0xAD8E, 0xAD8F, 0xAD90, 0xAD91, 0xAD92, 0xAD93, /* 0xB0 */
- 0xAD94, 0xAD95, 0xAD96, 0xAD97, 0xAD98, 0xAD99, 0xAD9A, 0xAD9B, /* 0xB0 */
- 0xAD9C, 0xAD9D, 0xAD9E, 0xAD9F, 0xC3E8, 0xADA0, 0xAE41, 0xAE42, /* 0xC0 */
- 0xAE43, 0xAE44, 0xAE45, 0xAE46, 0xC3E9, 0xAE47, 0xAE48, 0xAE49, /* 0xC0 */
- 0xC3EA, 0xAE4A, 0xAE4B, 0xAE4C, 0xAE4D, 0xAE4E, 0xAE4F, 0xAE50, /* 0xD0 */
- 0xAE51, 0xAE52, 0xAE53, 0xAE54, 0xAE55, 0xAE56, 0xAE57, 0xAE58, /* 0xD0 */
- 0xAE59, 0xAE5A, 0xAE61, 0xAE62, 0xAE63, 0xAE64, 0xAE65, 0xAE66, /* 0xE0 */
- 0xC3EB, 0xAE67, 0xAE68, 0xAE69, 0xC3EC, 0xAE6A, 0xAE6B, 0xAE6C, /* 0xE0 */
- 0xC3ED, 0xAE6D, 0xAE6E, 0xAE6F, 0xAE70, 0xAE71, 0xAE72, 0xAE73, /* 0xF0 */
- 0xC3EE, 0xC3EF, 0xAE74, 0xC3F0, 0xAE75, 0xC3F1, 0xAE76, 0xAE77 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_CE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xAE78, 0xAE79, 0xAE7A, 0xAE81, 0xC3F2, 0xAE82, 0xAE83, 0xAE84, /* 0x00 */
- 0xC3F3, 0xAE85, 0xAE86, 0xAE87, 0xC3F4, 0xAE88, 0xAE89, 0xAE8A, /* 0x00 */
- 0xAE8B, 0xAE8C, 0xAE8D, 0xAE8E, 0xC3F5, 0xAE8F, 0xAE90, 0xAE91, /* 0x10 */
- 0xAE92, 0xC3F6, 0xAE93, 0xAE94, 0xAE95, 0xAE96, 0xAE97, 0xAE98, /* 0x10 */
- 0xC3F7, 0xC3F8, 0xAE99, 0xAE9A, 0xC3F9, 0xAE9B, 0xAE9C, 0xAE9D, /* 0x20 */
- 0xC3FA, 0xAE9E, 0xAE9F, 0xAEA0, 0xAF41, 0xAF42, 0xAF43, 0xAF44, /* 0x20 */
- 0xC3FB, 0xC3FC, 0xAF45, 0xC3FD, 0xAF46, 0xC3FE, 0xAF47, 0xAF48, /* 0x30 */
- 0xAF49, 0xAF4A, 0xAF4B, 0xAF4C, 0xAF4D, 0xAF4E, 0xAF4F, 0xAF50, /* 0x30 */
- 0xAF51, 0xAF52, 0xAF53, 0xAF54, 0xAF55, 0xAF56, 0xAF57, 0xAF58, /* 0x40 */
- 0xAF59, 0xAF5A, 0xAF61, 0xAF62, 0xAF63, 0xAF64, 0xAF65, 0xAF66, /* 0x40 */
- 0xAF67, 0xAF68, 0xAF69, 0xAF6A, 0xAF6B, 0xAF6C, 0xAF6D, 0xAF6E, /* 0x50 */
- 0xC4A1, 0xC4A2, 0xAF6F, 0xAF70, 0xC4A3, 0xAF71, 0xAF72, 0xC4A4, /* 0x50 */
- 0xC4A5, 0xC4A6, 0xAF73, 0xAF74, 0xAF75, 0xAF76, 0xAF77, 0xAF78, /* 0x60 */
- 0xC4A7, 0xC4A8, 0xAF79, 0xC4A9, 0xAF7A, 0xC4AA, 0xAF81, 0xAF82, /* 0x60 */
- 0xAF83, 0xAF84, 0xAF85, 0xAF86, 0xC4AB, 0xC4AC, 0xAF87, 0xAF88, /* 0x70 */
- 0xC4AD, 0xAF89, 0xAF8A, 0xAF8B, 0xC4AE, 0xAF8C, 0xAF8D, 0xAF8E, /* 0x70 */
- 0xAF8F, 0xAF90, 0xAF91, 0xAF92, 0xC4AF, 0xC4B0, 0xAF93, 0xC4B1, /* 0x80 */
- 0xAF94, 0xC4B2, 0xAF95, 0xAF96, 0xAF97, 0xAF98, 0xAF99, 0xAF9A, /* 0x80 */
- 0xC4B3, 0xC4B4, 0xAF9B, 0xAF9C, 0xC4B5, 0xAF9D, 0xAF9E, 0xAF9F, /* 0x90 */
- 0xC4B6, 0xAFA0, 0xB041, 0xB042, 0xB043, 0xB044, 0xB045, 0xB046, /* 0x90 */
- 0xC4B7, 0xC4B8, 0xB047, 0xC4B9, 0xC4BA, 0xC4BB, 0xB048, 0xB049, /* 0xA0 */
- 0xB04A, 0xB04B, 0xB04C, 0xB04D, 0xC4BC, 0xC4BD, 0xB04E, 0xB04F, /* 0xA0 */
- 0xB050, 0xB051, 0xB052, 0xB053, 0xB054, 0xB055, 0xB056, 0xB057, /* 0xB0 */
- 0xB058, 0xB059, 0xB05A, 0xB061, 0xB062, 0xB063, 0xB064, 0xB065, /* 0xB0 */
- 0xB066, 0xC4BE, 0xB067, 0xB068, 0xB069, 0xB06A, 0xB06B, 0xB06C, /* 0xC0 */
- 0xB06D, 0xB06E, 0xB06F, 0xB070, 0xB071, 0xB072, 0xB073, 0xB074, /* 0xC0 */
- 0xB075, 0xB076, 0xB077, 0xB078, 0xB079, 0xB07A, 0xB081, 0xB082, /* 0xD0 */
- 0xB083, 0xB084, 0xB085, 0xB086, 0xB087, 0xB088, 0xB089, 0xB08A, /* 0xD0 */
- 0xB08B, 0xB08C, 0xB08D, 0xB08E, 0xC4BF, 0xC4C0, 0xB08F, 0xB090, /* 0xE0 */
- 0xC4C1, 0xB091, 0xB092, 0xC4C2, 0xC4C3, 0xB093, 0xB094, 0xB095, /* 0xE0 */
- 0xB096, 0xB097, 0xB098, 0xB099, 0xC4C4, 0xC4C5, 0xB09A, 0xC4C6, /* 0xF0 */
- 0xC4C7, 0xC4C8, 0xB09B, 0xB09C, 0xB09D, 0xB09E, 0xB09F, 0xB0A0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_CF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC4C9, 0xC4CA, 0xB141, 0xB142, 0xC4CB, 0xB143, 0xB144, 0xB145, /* 0x00 */
- 0xC4CC, 0xB146, 0xB147, 0xB148, 0xB149, 0xB14A, 0xB14B, 0xB14C, /* 0x00 */
- 0xC4CD, 0xC4CE, 0xB14D, 0xC4CF, 0xB14E, 0xC4D0, 0xB14F, 0xB150, /* 0x10 */
- 0xB151, 0xB152, 0xB153, 0xB154, 0xC4D1, 0xB155, 0xB156, 0xB157, /* 0x10 */
- 0xC4D2, 0xB158, 0xB159, 0xB15A, 0xC4D3, 0xB161, 0xB162, 0xB163, /* 0x20 */
- 0xB164, 0xB165, 0xB166, 0xB167, 0xC4D4, 0xC4D5, 0xB168, 0xC4D6, /* 0x20 */
- 0xC4D7, 0xC4D8, 0xB169, 0xB16A, 0xB16B, 0xB16C, 0xB16D, 0xB16E, /* 0x30 */
- 0xC4D9, 0xB16F, 0xB170, 0xB171, 0xB172, 0xB173, 0xB174, 0xB175, /* 0x30 */
- 0xB176, 0xB177, 0xB178, 0xB179, 0xB17A, 0xB181, 0xB182, 0xB183, /* 0x40 */
- 0xB184, 0xB185, 0xB186, 0xB187, 0xB188, 0xB189, 0xB18A, 0xB18B, /* 0x40 */
- 0xB18C, 0xB18D, 0xB18E, 0xB18F, 0xC4DA, 0xC4DB, 0xB190, 0xB191, /* 0x50 */
- 0xC4DC, 0xB192, 0xB193, 0xB194, 0xC4DD, 0xB195, 0xB196, 0xB197, /* 0x50 */
- 0xB198, 0xB199, 0xB19A, 0xB19B, 0xC4DE, 0xC4DF, 0xB19C, 0xC4E0, /* 0x60 */
- 0xB19D, 0xC4E1, 0xB19E, 0xB19F, 0xB1A0, 0xB241, 0xB242, 0xB243, /* 0x60 */
- 0xC4E2, 0xC4E3, 0xB244, 0xB245, 0xC4E4, 0xB246, 0xB247, 0xB248, /* 0x70 */
- 0xC4E5, 0xB249, 0xB24A, 0xB24B, 0xB24C, 0xB24D, 0xB24E, 0xB24F, /* 0x70 */
- 0xC4E6, 0xB250, 0xB251, 0xB252, 0xB253, 0xC4E7, 0xB254, 0xB255, /* 0x80 */
- 0xB256, 0xB257, 0xB258, 0xB259, 0xC4E8, 0xB25A, 0xB261, 0xB262, /* 0x80 */
- 0xB263, 0xB264, 0xB265, 0xB266, 0xB267, 0xB268, 0xB269, 0xB26A, /* 0x90 */
- 0xB26B, 0xB26C, 0xB26D, 0xB26E, 0xB26F, 0xB270, 0xB271, 0xB272, /* 0x90 */
- 0xB273, 0xC4E9, 0xB274, 0xB275, 0xB276, 0xB277, 0xB278, 0xB279, /* 0xA0 */
- 0xC4EA, 0xB27A, 0xB281, 0xB282, 0xB283, 0xB284, 0xB285, 0xB286, /* 0xA0 */
- 0xC4EB, 0xB287, 0xB288, 0xB289, 0xB28A, 0xB28B, 0xB28C, 0xB28D, /* 0xB0 */
- 0xB28E, 0xB28F, 0xB290, 0xB291, 0xB292, 0xB293, 0xB294, 0xB295, /* 0xB0 */
- 0xB296, 0xB297, 0xB298, 0xB299, 0xC4EC, 0xB29A, 0xB29B, 0xB29C, /* 0xC0 */
- 0xB29D, 0xB29E, 0xB29F, 0xB2A0, 0xB341, 0xB342, 0xB343, 0xB344, /* 0xC0 */
- 0xB345, 0xB346, 0xB347, 0xB348, 0xB349, 0xB34A, 0xB34B, 0xB34C, /* 0xD0 */
- 0xB34D, 0xB34E, 0xB34F, 0xB350, 0xB351, 0xB352, 0xB353, 0xB354, /* 0xD0 */
- 0xC4ED, 0xC4EE, 0xB355, 0xB356, 0xC4EF, 0xB357, 0xB358, 0xB359, /* 0xE0 */
- 0xC4F0, 0xB35A, 0xB361, 0xB362, 0xB363, 0xB364, 0xB365, 0xB366, /* 0xE0 */
- 0xC4F1, 0xC4F2, 0xB367, 0xC4F3, 0xB368, 0xC4F4, 0xB369, 0xB36A, /* 0xF0 */
- 0xB36B, 0xB36C, 0xB36D, 0xB36E, 0xC4F5, 0xB36F, 0xB370, 0xB371 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_D0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC4F6, 0xB372, 0xB373, 0xB374, 0xC4F7, 0xB375, 0xB376, 0xB377, /* 0x00 */
- 0xB378, 0xB379, 0xB37A, 0xB381, 0xB382, 0xB383, 0xB384, 0xB385, /* 0x00 */
- 0xB386, 0xC4F8, 0xB387, 0xB388, 0xB389, 0xB38A, 0xB38B, 0xB38C, /* 0x10 */
- 0xC4F9, 0xB38D, 0xB38E, 0xB38F, 0xB390, 0xB391, 0xB392, 0xB393, /* 0x10 */
- 0xB394, 0xB395, 0xB396, 0xB397, 0xB398, 0xB399, 0xB39A, 0xB39B, /* 0x20 */
- 0xB39C, 0xB39D, 0xB39E, 0xB39F, 0xB3A0, 0xC4FA, 0xB441, 0xB442, /* 0x20 */
- 0xB443, 0xB444, 0xB445, 0xB446, 0xC4FB, 0xC4FC, 0xB447, 0xB448, /* 0x30 */
- 0xC4FD, 0xB449, 0xB44A, 0xB44B, 0xC4FE, 0xB44C, 0xB44D, 0xB44E, /* 0x30 */
- 0xB44F, 0xB450, 0xB451, 0xB452, 0xC5A1, 0xC5A2, 0xB453, 0xC5A3, /* 0x40 */
- 0xB454, 0xC5A4, 0xB455, 0xB456, 0xB457, 0xB458, 0xB459, 0xB45A, /* 0x40 */
- 0xC5A5, 0xB461, 0xB462, 0xB463, 0xC5A6, 0xB464, 0xB465, 0xB466, /* 0x50 */
- 0xC5A7, 0xB467, 0xB468, 0xB469, 0xB46A, 0xB46B, 0xB46C, 0xB46D, /* 0x50 */
- 0xC5A8, 0xB46E, 0xB46F, 0xB470, 0xB471, 0xB472, 0xB473, 0xB474, /* 0x60 */
- 0xB475, 0xB476, 0xB477, 0xB478, 0xC5A9, 0xC5AA, 0xB479, 0xB47A, /* 0x60 */
- 0xC5AB, 0xB481, 0xB482, 0xB483, 0xC5AC, 0xB484, 0xB485, 0xB486, /* 0x70 */
- 0xB487, 0xB488, 0xB489, 0xB48A, 0xC5AD, 0xC5AE, 0xB48B, 0xB48C, /* 0x70 */
- 0xB48D, 0xC5AF, 0xB48E, 0xB48F, 0xB490, 0xB491, 0xB492, 0xB493, /* 0x80 */
- 0xB494, 0xB495, 0xB496, 0xB497, 0xB498, 0xB499, 0xB49A, 0xB49B, /* 0x80 */
- 0xB49C, 0xB49D, 0xB49E, 0xB49F, 0xB4A0, 0xB541, 0xB542, 0xB543, /* 0x90 */
- 0xB544, 0xB545, 0xB546, 0xB547, 0xB548, 0xB549, 0xB54A, 0xB54B, /* 0x90 */
- 0xB54C, 0xB54D, 0xB54E, 0xB54F, 0xC5B0, 0xC5B1, 0xB550, 0xB551, /* 0xA0 */
- 0xC5B2, 0xB552, 0xB553, 0xB554, 0xC5B3, 0xB555, 0xB556, 0xB557, /* 0xA0 */
- 0xB558, 0xB559, 0xB55A, 0xB561, 0xC5B4, 0xC5B5, 0xB562, 0xC5B6, /* 0xB0 */
- 0xB563, 0xC5B7, 0xB564, 0xB565, 0xB566, 0xB567, 0xB568, 0xB569, /* 0xB0 */
- 0xC5B8, 0xC5B9, 0xB56A, 0xB56B, 0xC5BA, 0xB56C, 0xB56D, 0xB56E, /* 0xC0 */
- 0xC5BB, 0xC5BC, 0xB56F, 0xB570, 0xB571, 0xB572, 0xB573, 0xB574, /* 0xC0 */
- 0xC5BD, 0xC5BE, 0xB575, 0xC5BF, 0xC5C0, 0xC5C1, 0xB576, 0xB577, /* 0xD0 */
- 0xB578, 0xB579, 0xB57A, 0xB581, 0xC5C2, 0xC5C3, 0xB582, 0xB583, /* 0xD0 */
- 0xC5C4, 0xB584, 0xB585, 0xB586, 0xC5C5, 0xB587, 0xB588, 0xB589, /* 0xE0 */
- 0xB58A, 0xB58B, 0xB58C, 0xB58D, 0xC5C6, 0xC5C7, 0xB58E, 0xC5C8, /* 0xE0 */
- 0xC5C9, 0xC5CA, 0xB58F, 0xB590, 0xB591, 0xB592, 0xB593, 0xB594, /* 0xF0 */
- 0xC5CB, 0xB595, 0xB596, 0xB597, 0xB598, 0xB599, 0xB59A, 0xB59B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_D1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB59C, 0xB59D, 0xB59E, 0xB59F, 0xB5A0, 0xB641, 0xB642, 0xB643, /* 0x00 */
- 0xB644, 0xB645, 0xB646, 0xB647, 0xB648, 0xC5CC, 0xB649, 0xB64A, /* 0x00 */
- 0xB64B, 0xB64C, 0xB64D, 0xB64E, 0xB64F, 0xB650, 0xB651, 0xB652, /* 0x10 */
- 0xB653, 0xB654, 0xB655, 0xB656, 0xB657, 0xB658, 0xB659, 0xB65A, /* 0x10 */
- 0xB661, 0xB662, 0xB663, 0xB664, 0xB665, 0xB666, 0xB667, 0xB668, /* 0x20 */
- 0xB669, 0xB66A, 0xB66B, 0xB66C, 0xB66D, 0xB66E, 0xB66F, 0xB670, /* 0x20 */
- 0xC5CD, 0xC5CE, 0xB671, 0xB672, 0xC5CF, 0xB673, 0xB674, 0xB675, /* 0x30 */
- 0xC5D0, 0xB676, 0xC5D1, 0xB677, 0xB678, 0xB679, 0xB67A, 0xB681, /* 0x30 */
- 0xC5D2, 0xC5D3, 0xB682, 0xC5D4, 0xC5D5, 0xC5D6, 0xB683, 0xB684, /* 0x40 */
- 0xB685, 0xB686, 0xB687, 0xB688, 0xC5D7, 0xC5D8, 0xB689, 0xB68A, /* 0x40 */
- 0xC5D9, 0xB68B, 0xB68C, 0xB68D, 0xC5DA, 0xB68E, 0xB68F, 0xB690, /* 0x50 */
- 0xB691, 0xB692, 0xB693, 0xB694, 0xC5DB, 0xC5DC, 0xB695, 0xC5DD, /* 0x50 */
- 0xB696, 0xC5DE, 0xB697, 0xB698, 0xB699, 0xB69A, 0xB69B, 0xB69C, /* 0x60 */
- 0xC5DF, 0xB69D, 0xB69E, 0xB69F, 0xC5E0, 0xB6A0, 0xB741, 0xB742, /* 0x60 */
- 0xB743, 0xB744, 0xB745, 0xB746, 0xB747, 0xB748, 0xB749, 0xB74A, /* 0x70 */
- 0xB74B, 0xB74C, 0xB74D, 0xB74E, 0xC5E1, 0xB74F, 0xB750, 0xB751, /* 0x70 */
- 0xB752, 0xB753, 0xB754, 0xB755, 0xC5E2, 0xB756, 0xB757, 0xB758, /* 0x80 */
- 0xC5E3, 0xB759, 0xB75A, 0xB761, 0xB762, 0xB763, 0xB764, 0xB765, /* 0x80 */
- 0xB766, 0xB767, 0xB768, 0xB769, 0xB76A, 0xB76B, 0xB76C, 0xB76D, /* 0x90 */
- 0xB76E, 0xB76F, 0xB770, 0xB771, 0xB772, 0xB773, 0xB774, 0xB775, /* 0x90 */
- 0xC5E4, 0xC5E5, 0xB776, 0xB777, 0xC5E6, 0xB778, 0xB779, 0xB77A, /* 0xA0 */
- 0xC5E7, 0xB781, 0xB782, 0xB783, 0xB784, 0xB785, 0xB786, 0xB787, /* 0xA0 */
- 0xC5E8, 0xC5E9, 0xB788, 0xC5EA, 0xB789, 0xC5EB, 0xB78A, 0xB78B, /* 0xB0 */
- 0xB78C, 0xB78D, 0xC5EC, 0xB78E, 0xC5ED, 0xB78F, 0xB790, 0xB791, /* 0xB0 */
- 0xC5EE, 0xB792, 0xB793, 0xB794, 0xB795, 0xB796, 0xB797, 0xB798, /* 0xC0 */
- 0xB799, 0xB79A, 0xB79B, 0xB79C, 0xB79D, 0xB79E, 0xB79F, 0xB7A0, /* 0xC0 */
- 0xB841, 0xB842, 0xB843, 0xB844, 0xB845, 0xB846, 0xB847, 0xB848, /* 0xD0 */
- 0xC5EF, 0xB849, 0xB84A, 0xB84B, 0xB84C, 0xB84D, 0xB84E, 0xB84F, /* 0xD0 */
- 0xB850, 0xB851, 0xB852, 0xB853, 0xB854, 0xB855, 0xB856, 0xB857, /* 0xE0 */
- 0xB858, 0xB859, 0xB85A, 0xB861, 0xB862, 0xB863, 0xB864, 0xB865, /* 0xE0 */
- 0xB866, 0xB867, 0xB868, 0xB869, 0xC5F0, 0xB86A, 0xB86B, 0xB86C, /* 0xF0 */
- 0xC5F1, 0xB86D, 0xB86E, 0xB86F, 0xB870, 0xB871, 0xB872, 0xB873 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_D2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB874, 0xB875, 0xB876, 0xB877, 0xB878, 0xB879, 0xB87A, 0xC5F2, /* 0x00 */
- 0xB881, 0xC5F3, 0xB882, 0xB883, 0xB884, 0xB885, 0xB886, 0xB887, /* 0x00 */
- 0xC5F4, 0xB888, 0xB889, 0xB88A, 0xB88B, 0xB88C, 0xB88D, 0xB88E, /* 0x10 */
- 0xB88F, 0xB890, 0xB891, 0xB892, 0xB893, 0xB894, 0xB895, 0xB896, /* 0x10 */
- 0xB897, 0xB898, 0xB899, 0xB89A, 0xB89B, 0xB89C, 0xB89D, 0xB89E, /* 0x20 */
- 0xB89F, 0xB8A0, 0xB941, 0xB942, 0xC5F5, 0xC5F6, 0xB943, 0xB944, /* 0x20 */
- 0xC5F7, 0xB945, 0xB946, 0xB947, 0xC5F8, 0xB948, 0xB949, 0xB94A, /* 0x30 */
- 0xB94B, 0xB94C, 0xB94D, 0xB94E, 0xC5F9, 0xC5FA, 0xB94F, 0xC5FB, /* 0x30 */
- 0xB950, 0xC5FC, 0xB951, 0xB952, 0xB953, 0xB954, 0xB955, 0xB956, /* 0x40 */
- 0xC5FD, 0xB957, 0xB958, 0xB959, 0xB95A, 0xB961, 0xB962, 0xB963, /* 0x40 */
- 0xB964, 0xB965, 0xB966, 0xB967, 0xB968, 0xB969, 0xB96A, 0xB96B, /* 0x50 */
- 0xB96C, 0xB96D, 0xB96E, 0xB96F, 0xC5FE, 0xB970, 0xB971, 0xB972, /* 0x50 */
- 0xB973, 0xB974, 0xB975, 0xB976, 0xC6A1, 0xB977, 0xB978, 0xB979, /* 0x60 */
- 0xB97A, 0xB981, 0xB982, 0xB983, 0xB984, 0xB985, 0xB986, 0xB987, /* 0x60 */
- 0xB988, 0xB989, 0xB98A, 0xB98B, 0xB98C, 0xB98D, 0xB98E, 0xB98F, /* 0x70 */
- 0xB990, 0xB991, 0xB992, 0xB993, 0xB994, 0xB995, 0xB996, 0xB997, /* 0x70 */
- 0xC6A2, 0xC6A3, 0xB998, 0xB999, 0xC6A4, 0xB99A, 0xB99B, 0xB99C, /* 0x80 */
- 0xC6A5, 0xB99D, 0xB99E, 0xB99F, 0xB9A0, 0xBA41, 0xBA42, 0xBA43, /* 0x80 */
- 0xC6A6, 0xC6A7, 0xBA44, 0xBA45, 0xBA46, 0xC6A8, 0xBA47, 0xBA48, /* 0x90 */
- 0xBA49, 0xBA4A, 0xBA4B, 0xBA4C, 0xC6A9, 0xBA4D, 0xBA4E, 0xBA4F, /* 0x90 */
- 0xC6AA, 0xBA50, 0xBA51, 0xBA52, 0xC6AB, 0xBA53, 0xBA54, 0xBA55, /* 0xA0 */
- 0xBA56, 0xBA57, 0xBA58, 0xBA59, 0xC6AC, 0xBA5A, 0xBA61, 0xBA62, /* 0xA0 */
- 0xBA63, 0xC6AD, 0xBA64, 0xBA65, 0xBA66, 0xBA67, 0xBA68, 0xBA69, /* 0xB0 */
- 0xC6AE, 0xC6AF, 0xBA6A, 0xBA6B, 0xC6B0, 0xBA6C, 0xBA6D, 0xC6B1, /* 0xB0 */
- 0xC6B2, 0xBA6E, 0xC6B3, 0xBA6F, 0xBA70, 0xBA71, 0xBA72, 0xBA73, /* 0xC0 */
- 0xC6B4, 0xC6B5, 0xBA74, 0xC6B6, 0xBA75, 0xBA76, 0xBA77, 0xBA78, /* 0xC0 */
- 0xBA79, 0xBA7A, 0xBA81, 0xBA82, 0xC6B7, 0xBA83, 0xBA84, 0xBA85, /* 0xD0 */
- 0xC6B8, 0xBA86, 0xBA87, 0xBA88, 0xC6B9, 0xBA89, 0xBA8A, 0xBA8B, /* 0xD0 */
- 0xBA8C, 0xBA8D, 0xBA8E, 0xBA8F, 0xC6BA, 0xC6BB, 0xBA90, 0xBA91, /* 0xE0 */
- 0xBA92, 0xBA93, 0xBA94, 0xBA95, 0xBA96, 0xBA97, 0xBA98, 0xBA99, /* 0xE0 */
- 0xC6BC, 0xC6BD, 0xBA9A, 0xBA9B, 0xC6BE, 0xBA9C, 0xBA9D, 0xBA9E, /* 0xF0 */
- 0xC6BF, 0xBA9F, 0xBAA0, 0xBB41, 0xBB42, 0xBB43, 0xBB44, 0xBB45 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_D3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC6C0, 0xC6C1, 0xBB46, 0xC6C2, 0xBB47, 0xC6C3, 0xBB48, 0xBB49, /* 0x00 */
- 0xBB4A, 0xBB4B, 0xBB4C, 0xBB4D, 0xC6C4, 0xC6C5, 0xC6C6, 0xBB4E, /* 0x00 */
- 0xC6C7, 0xBB4F, 0xBB50, 0xBB51, 0xC6C8, 0xBB52, 0xC6C9, 0xBB53, /* 0x10 */
- 0xBB54, 0xBB55, 0xBB56, 0xBB57, 0xC6CA, 0xC6CB, 0xBB58, 0xC6CC, /* 0x10 */
- 0xC6CD, 0xC6CE, 0xBB59, 0xBB5A, 0xBB61, 0xC6CF, 0xBB62, 0xBB63, /* 0x20 */
- 0xC6D0, 0xC6D1, 0xBB64, 0xBB65, 0xC6D2, 0xBB66, 0xBB67, 0xBB68, /* 0x20 */
- 0xC6D3, 0xBB69, 0xBB6A, 0xBB6B, 0xBB6C, 0xBB6D, 0xBB6E, 0xBB6F, /* 0x30 */
- 0xC6D4, 0xC6D5, 0xBB70, 0xC6D6, 0xC6D7, 0xC6D8, 0xBB71, 0xBB72, /* 0x30 */
- 0xBB73, 0xBB74, 0xBB75, 0xBB76, 0xC6D9, 0xC6DA, 0xBB77, 0xBB78, /* 0x40 */
- 0xBB79, 0xBB7A, 0xBB81, 0xBB82, 0xBB83, 0xBB84, 0xBB85, 0xBB86, /* 0x40 */
- 0xBB87, 0xBB88, 0xBB89, 0xBB8A, 0xBB8B, 0xBB8C, 0xBB8D, 0xBB8E, /* 0x50 */
- 0xBB8F, 0xBB90, 0xBB91, 0xBB92, 0xBB93, 0xBB94, 0xBB95, 0xBB96, /* 0x50 */
- 0xBB97, 0xBB98, 0xBB99, 0xBB9A, 0xBB9B, 0xBB9C, 0xBB9D, 0xBB9E, /* 0x60 */
- 0xBB9F, 0xBBA0, 0xBC41, 0xBC42, 0xBC43, 0xBC44, 0xBC45, 0xBC46, /* 0x60 */
- 0xBC47, 0xBC48, 0xBC49, 0xBC4A, 0xBC4B, 0xBC4C, 0xBC4D, 0xBC4E, /* 0x70 */
- 0xBC4F, 0xBC50, 0xBC51, 0xBC52, 0xC6DB, 0xC6DC, 0xBC53, 0xBC54, /* 0x70 */
- 0xC6DD, 0xBC55, 0xBC56, 0xBC57, 0xC6DE, 0xBC58, 0xBC59, 0xBC5A, /* 0x80 */
- 0xBC61, 0xBC62, 0xBC63, 0xBC64, 0xC6DF, 0xC6E0, 0xBC65, 0xC6E1, /* 0x80 */
- 0xC6E2, 0xC6E3, 0xBC66, 0xBC67, 0xBC68, 0xBC69, 0xBC6A, 0xBC6B, /* 0x90 */
- 0xC6E4, 0xC6E5, 0xBC6C, 0xBC6D, 0xC6E6, 0xBC6E, 0xBC6F, 0xBC70, /* 0x90 */
- 0xC6E7, 0xBC71, 0xBC72, 0xBC73, 0xBC74, 0xBC75, 0xBC76, 0xBC77, /* 0xA0 */
- 0xC6E8, 0xC6E9, 0xBC78, 0xC6EA, 0xBC79, 0xC6EB, 0xBC7A, 0xBC81, /* 0xA0 */
- 0xBC82, 0xBC83, 0xBC84, 0xBC85, 0xC6EC, 0xBC86, 0xBC87, 0xBC88, /* 0xB0 */
- 0xC6ED, 0xBC89, 0xBC8A, 0xBC8B, 0xC6EE, 0xBC8C, 0xBC8D, 0xBC8E, /* 0xB0 */
- 0xBC8F, 0xBC90, 0xBC91, 0xBC92, 0xC6EF, 0xC6F0, 0xBC93, 0xBC94, /* 0xC0 */
- 0xC6F1, 0xC6F2, 0xBC95, 0xBC96, 0xBC97, 0xBC98, 0xBC99, 0xBC9A, /* 0xC0 */
- 0xC6F3, 0xBC9B, 0xBC9C, 0xBC9D, 0xBC9E, 0xBC9F, 0xBCA0, 0xBD41, /* 0xD0 */
- 0xC6F4, 0xBD42, 0xBD43, 0xBD44, 0xBD45, 0xBD46, 0xBD47, 0xBD48, /* 0xD0 */
- 0xBD49, 0xC6F5, 0xBD4A, 0xC6F6, 0xBD4B, 0xBD4C, 0xBD4D, 0xBD4E, /* 0xE0 */
- 0xBD4F, 0xBD50, 0xBD51, 0xBD52, 0xC6F7, 0xC6F8, 0xBD53, 0xBD54, /* 0xE0 */
- 0xC6F9, 0xBD55, 0xBD56, 0xBD57, 0xC6FA, 0xBD58, 0xBD59, 0xBD5A, /* 0xF0 */
- 0xBD61, 0xBD62, 0xBD63, 0xBD64, 0xC6FB, 0xC6FC, 0xBD65, 0xC6FD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_D4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBD66, 0xC6FE, 0xBD67, 0xBD68, 0xBD69, 0xBD6A, 0xBD6B, 0xBD6C, /* 0x00 */
- 0xC7A1, 0xBD6D, 0xBD6E, 0xBD6F, 0xBD70, 0xBD71, 0xBD72, 0xBD73, /* 0x00 */
- 0xBD74, 0xBD75, 0xBD76, 0xBD77, 0xBD78, 0xBD79, 0xBD7A, 0xBD81, /* 0x10 */
- 0xBD82, 0xBD83, 0xBD84, 0xBD85, 0xBD86, 0xC7A2, 0xBD87, 0xBD88, /* 0x10 */
- 0xBD89, 0xBD8A, 0xBD8B, 0xBD8C, 0xBD8D, 0xBD8E, 0xBD8F, 0xBD90, /* 0x20 */
- 0xBD91, 0xBD92, 0xBD93, 0xBD94, 0xBD95, 0xBD96, 0xBD97, 0xBD98, /* 0x20 */
- 0xBD99, 0xBD9A, 0xBD9B, 0xBD9C, 0xBD9D, 0xBD9E, 0xBD9F, 0xBDA0, /* 0x30 */
- 0xBE41, 0xBE42, 0xBE43, 0xBE44, 0xBE45, 0xBE46, 0xBE47, 0xBE48, /* 0x30 */
- 0xC7A3, 0xBE49, 0xBE4A, 0xBE4B, 0xC7A4, 0xBE4C, 0xBE4D, 0xBE4E, /* 0x40 */
- 0xBE4F, 0xBE50, 0xBE51, 0xBE52, 0xBE53, 0xBE54, 0xBE55, 0xBE56, /* 0x40 */
- 0xBE57, 0xBE58, 0xBE59, 0xBE5A, 0xBE61, 0xBE62, 0xBE63, 0xBE64, /* 0x50 */
- 0xBE65, 0xBE66, 0xBE67, 0xBE68, 0xC7A5, 0xBE69, 0xBE6A, 0xBE6B, /* 0x50 */
- 0xC7A6, 0xBE6C, 0xBE6D, 0xBE6E, 0xC7A7, 0xBE6F, 0xBE70, 0xBE71, /* 0x60 */
- 0xBE72, 0xBE73, 0xBE74, 0xBE75, 0xBE76, 0xC7A8, 0xBE77, 0xC7A9, /* 0x60 */
- 0xBE78, 0xBE79, 0xBE7A, 0xBE81, 0xBE82, 0xBE83, 0xBE84, 0xBE85, /* 0x70 */
- 0xC7AA, 0xC7AB, 0xBE86, 0xBE87, 0xC7AC, 0xBE88, 0xBE89, 0xC7AD, /* 0x70 */
- 0xC7AE, 0xBE8A, 0xC7AF, 0xBE8B, 0xBE8C, 0xBE8D, 0xBE8E, 0xBE8F, /* 0x80 */
- 0xC7B0, 0xC7B1, 0xBE90, 0xC7B2, 0xBE91, 0xC7B3, 0xBE92, 0xBE93, /* 0x80 */
- 0xBE94, 0xBE95, 0xBE96, 0xBE97, 0xC7B4, 0xBE98, 0xBE99, 0xBE9A, /* 0x90 */
- 0xBE9B, 0xBE9C, 0xBE9D, 0xBE9E, 0xBE9F, 0xBEA0, 0xBF41, 0xBF42, /* 0x90 */
- 0xBF43, 0xBF44, 0xBF45, 0xBF46, 0xBF47, 0xBF48, 0xBF49, 0xBF4A, /* 0xA0 */
- 0xBF4B, 0xC7B5, 0xBF4C, 0xBF4D, 0xBF4E, 0xBF4F, 0xBF50, 0xBF51, /* 0xA0 */
- 0xBF52, 0xBF53, 0xBF54, 0xBF55, 0xBF56, 0xBF57, 0xBF58, 0xBF59, /* 0xB0 */
- 0xBF5A, 0xBF61, 0xBF62, 0xBF63, 0xBF64, 0xBF65, 0xBF66, 0xBF67, /* 0xB0 */
- 0xBF68, 0xBF69, 0xBF6A, 0xBF6B, 0xBF6C, 0xBF6D, 0xBF6E, 0xBF6F, /* 0xC0 */
- 0xBF70, 0xBF71, 0xBF72, 0xBF73, 0xC7B6, 0xBF74, 0xBF75, 0xBF76, /* 0xC0 */
- 0xC7B7, 0xBF77, 0xBF78, 0xBF79, 0xC7B8, 0xBF7A, 0xBF81, 0xBF82, /* 0xD0 */
- 0xBF83, 0xBF84, 0xBF85, 0xBF86, 0xC7B9, 0xBF87, 0xBF88, 0xC7BA, /* 0xD0 */
- 0xBF89, 0xBF8A, 0xBF8B, 0xBF8C, 0xBF8D, 0xBF8E, 0xBF8F, 0xBF90, /* 0xE0 */
- 0xC7BB, 0xBF91, 0xBF92, 0xBF93, 0xC7BC, 0xBF94, 0xBF95, 0xBF96, /* 0xE0 */
- 0xC7BD, 0xBF97, 0xBF98, 0xBF99, 0xBF9A, 0xBF9B, 0xBF9C, 0xBF9D, /* 0xF0 */
- 0xC7BE, 0xBF9E, 0xBF9F, 0xC7BF, 0xBFA0, 0xC7C0, 0xC041, 0xC042 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_D5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC043, 0xC044, 0xC045, 0xC046, 0xC7C1, 0xC047, 0xC048, 0xC049, /* 0x00 */
- 0xC7C2, 0xC04A, 0xC04B, 0xC04C, 0xC7C3, 0xC04D, 0xC04E, 0xC04F, /* 0x00 */
- 0xC050, 0xC051, 0xC052, 0xC053, 0xC7C4, 0xC7C5, 0xC054, 0xC7C6, /* 0x10 */
- 0xC055, 0xC056, 0xC057, 0xC058, 0xC059, 0xC05A, 0xC061, 0xC062, /* 0x10 */
- 0xC063, 0xC064, 0xC065, 0xC066, 0xC067, 0xC068, 0xC069, 0xC06A, /* 0x20 */
- 0xC06B, 0xC06C, 0xC06D, 0xC06E, 0xC06F, 0xC070, 0xC071, 0xC072, /* 0x20 */
- 0xC073, 0xC074, 0xC075, 0xC076, 0xC077, 0xC078, 0xC079, 0xC07A, /* 0x30 */
- 0xC081, 0xC082, 0xC083, 0xC084, 0xC7C7, 0xC7C8, 0xC085, 0xC086, /* 0x30 */
- 0xC7C9, 0xC087, 0xC088, 0xC089, 0xC7CA, 0xC08A, 0xC08B, 0xC08C, /* 0x40 */
- 0xC08D, 0xC08E, 0xC08F, 0xC090, 0xC7CB, 0xC7CC, 0xC091, 0xC7CD, /* 0x40 */
- 0xC092, 0xC7CE, 0xC093, 0xC094, 0xC095, 0xC096, 0xC097, 0xC098, /* 0x50 */
- 0xC7CF, 0xC7D0, 0xC099, 0xC09A, 0xC7D1, 0xC09B, 0xC09C, 0xC09D, /* 0x50 */
- 0xC7D2, 0xC09E, 0xC09F, 0xC0A0, 0xC141, 0xC7D3, 0xC142, 0xC143, /* 0x60 */
- 0xC7D4, 0xC7D5, 0xC144, 0xC7D6, 0xC145, 0xC7D7, 0xC146, 0xC147, /* 0x60 */
- 0xC148, 0xC149, 0xC14A, 0xC14B, 0xC7D8, 0xC7D9, 0xC14C, 0xC14D, /* 0x70 */
- 0xC7DA, 0xC14E, 0xC14F, 0xC150, 0xC7DB, 0xC151, 0xC152, 0xC153, /* 0x70 */
- 0xC154, 0xC155, 0xC156, 0xC157, 0xC7DC, 0xC7DD, 0xC158, 0xC7DE, /* 0x80 */
- 0xC7DF, 0xC7E0, 0xC159, 0xC15A, 0xC161, 0xC162, 0xC163, 0xC164, /* 0x80 */
- 0xC7E1, 0xC165, 0xC166, 0xC167, 0xC168, 0xC169, 0xC16A, 0xC16B, /* 0x90 */
- 0xC16C, 0xC16D, 0xC16E, 0xC16F, 0xC170, 0xC171, 0xC172, 0xC173, /* 0x90 */
- 0xC174, 0xC175, 0xC176, 0xC177, 0xC178, 0xC7E2, 0xC179, 0xC17A, /* 0xA0 */
- 0xC181, 0xC182, 0xC183, 0xC184, 0xC185, 0xC186, 0xC187, 0xC188, /* 0xA0 */
- 0xC189, 0xC18A, 0xC18B, 0xC18C, 0xC18D, 0xC18E, 0xC18F, 0xC190, /* 0xB0 */
- 0xC191, 0xC192, 0xC193, 0xC194, 0xC195, 0xC196, 0xC197, 0xC198, /* 0xB0 */
- 0xC199, 0xC19A, 0xC19B, 0xC19C, 0xC19D, 0xC19E, 0xC19F, 0xC1A0, /* 0xC0 */
- 0xC7E3, 0xC7E4, 0xC241, 0xC242, 0xC7E5, 0xC243, 0xC244, 0xC245, /* 0xC0 */
- 0xC7E6, 0xC246, 0xC7E7, 0xC247, 0xC248, 0xC249, 0xC24A, 0xC24B, /* 0xD0 */
- 0xC7E8, 0xC7E9, 0xC24C, 0xC7EA, 0xC24D, 0xC7EB, 0xC24E, 0xC24F, /* 0xD0 */
- 0xC250, 0xC251, 0xC252, 0xC253, 0xC7EC, 0xC7ED, 0xC254, 0xC255, /* 0xE0 */
- 0xC7EE, 0xC256, 0xC257, 0xC258, 0xC7EF, 0xC259, 0xC25A, 0xC261, /* 0xE0 */
- 0xC262, 0xC263, 0xC264, 0xC265, 0xC7F0, 0xC7F1, 0xC266, 0xC7F2, /* 0xF0 */
- 0xC267, 0xC7F3, 0xC268, 0xC269, 0xC26A, 0xC26B, 0xC26C, 0xC26D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_D6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC7F4, 0xC7F5, 0xC26E, 0xC26F, 0xC7F6, 0xC270, 0xC271, 0xC272, /* 0x00 */
- 0xC7F7, 0xC273, 0xC274, 0xC275, 0xC276, 0xC277, 0xC278, 0xC279, /* 0x00 */
- 0xC7F8, 0xC7F9, 0xC27A, 0xC7FA, 0xC7FB, 0xC7FC, 0xC281, 0xC282, /* 0x10 */
- 0xC283, 0xC284, 0xC285, 0xC286, 0xC7FD, 0xC287, 0xC288, 0xC289, /* 0x10 */
- 0xC7FE, 0xC28A, 0xC28B, 0xC28C, 0xC8A1, 0xC28D, 0xC28E, 0xC28F, /* 0x20 */
- 0xC290, 0xC291, 0xC292, 0xC293, 0xC294, 0xC8A2, 0xC295, 0xC296, /* 0x20 */
- 0xC297, 0xC298, 0xC299, 0xC29A, 0xC29B, 0xC29C, 0xC29D, 0xC29E, /* 0x30 */
- 0xC8A3, 0xC8A4, 0xC29F, 0xC2A0, 0xC8A5, 0xC341, 0xC342, 0xC343, /* 0x30 */
- 0xC8A6, 0xC344, 0xC345, 0xC346, 0xC347, 0xC8A7, 0xC348, 0xC349, /* 0x40 */
- 0xC8A8, 0xC8A9, 0xC34A, 0xC8AA, 0xC34B, 0xC8AB, 0xC34C, 0xC34D, /* 0x40 */
- 0xC34E, 0xC8AC, 0xC34F, 0xC350, 0xC8AD, 0xC8AE, 0xC351, 0xC352, /* 0x50 */
- 0xC8AF, 0xC353, 0xC354, 0xC355, 0xC8B0, 0xC356, 0xC357, 0xC358, /* 0x50 */
- 0xC359, 0xC35A, 0xC361, 0xC362, 0xC363, 0xC364, 0xC365, 0xC8B1, /* 0x60 */
- 0xC366, 0xC8B2, 0xC367, 0xC368, 0xC369, 0xC36A, 0xC36B, 0xC36C, /* 0x60 */
- 0xC8B3, 0xC8B4, 0xC36D, 0xC36E, 0xC8B5, 0xC36F, 0xC370, 0xC371, /* 0x70 */
- 0xC372, 0xC373, 0xC374, 0xC375, 0xC376, 0xC377, 0xC378, 0xC379, /* 0x70 */
- 0xC37A, 0xC381, 0xC382, 0xC8B6, 0xC383, 0xC8B7, 0xC384, 0xC385, /* 0x80 */
- 0xC386, 0xC387, 0xC388, 0xC389, 0xC8B8, 0xC8B9, 0xC38A, 0xC38B, /* 0x80 */
- 0xC8BA, 0xC38C, 0xC38D, 0xC38E, 0xC8BB, 0xC38F, 0xC390, 0xC391, /* 0x90 */
- 0xC392, 0xC393, 0xC394, 0xC395, 0xC396, 0xC8BC, 0xC397, 0xC8BD, /* 0x90 */
- 0xC398, 0xC8BE, 0xC399, 0xC39A, 0xC39B, 0xC39C, 0xC39D, 0xC39E, /* 0xA0 */
- 0xC8BF, 0xC39F, 0xC3A0, 0xC441, 0xC8C0, 0xC442, 0xC443, 0xC444, /* 0xA0 */
- 0xC8C1, 0xC445, 0xC446, 0xC447, 0xC448, 0xC449, 0xC44A, 0xC44B, /* 0xB0 */
- 0xC44C, 0xC8C2, 0xC44D, 0xC8C3, 0xC44E, 0xC44F, 0xC450, 0xC451, /* 0xB0 */
- 0xC452, 0xC453, 0xC454, 0xC455, 0xC8C4, 0xC8C5, 0xC456, 0xC457, /* 0xC0 */
- 0xC8C6, 0xC458, 0xC459, 0xC45A, 0xC8C7, 0xC461, 0xC462, 0xC463, /* 0xC0 */
- 0xC464, 0xC8C8, 0xC465, 0xC466, 0xC8C9, 0xC467, 0xC468, 0xC8CA, /* 0xD0 */
- 0xC469, 0xC8CB, 0xC46A, 0xC46B, 0xC46C, 0xC46D, 0xC46E, 0xC46F, /* 0xD0 */
- 0xC8CC, 0xC470, 0xC471, 0xC472, 0xC8CD, 0xC473, 0xC474, 0xC475, /* 0xE0 */
- 0xC8CE, 0xC476, 0xC477, 0xC478, 0xC479, 0xC47A, 0xC481, 0xC482, /* 0xE0 */
- 0xC8CF, 0xC483, 0xC484, 0xC485, 0xC486, 0xC8D0, 0xC487, 0xC488, /* 0xF0 */
- 0xC489, 0xC48A, 0xC48B, 0xC48C, 0xC8D1, 0xC8D2, 0xC48D, 0xC48E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_D7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC8D3, 0xC48F, 0xC490, 0xC491, 0xC8D4, 0xC492, 0xC493, 0xC494, /* 0x00 */
- 0xC495, 0xC496, 0xC497, 0xC498, 0xC499, 0xC49A, 0xC49B, 0xC49C, /* 0x00 */
- 0xC49D, 0xC8D5, 0xC49E, 0xC49F, 0xC4A0, 0xC541, 0xC542, 0xC543, /* 0x10 */
- 0xC8D6, 0xC8D7, 0xC544, 0xC545, 0xC8D8, 0xC546, 0xC547, 0xC548, /* 0x10 */
- 0xC8D9, 0xC549, 0xC54A, 0xC54B, 0xC54C, 0xC54D, 0xC54E, 0xC54F, /* 0x20 */
- 0xC8DA, 0xC8DB, 0xC550, 0xC8DC, 0xC551, 0xC8DD, 0xC552, 0xC553, /* 0x20 */
- 0xC554, 0xC555, 0xC556, 0xC557, 0xC8DE, 0xC8DF, 0xC558, 0xC559, /* 0x30 */
- 0xC8E0, 0xC55A, 0xC561, 0xC562, 0xC8E1, 0xC563, 0xC564, 0xC565, /* 0x30 */
- 0xC566, 0xC567, 0xC568, 0xC569, 0xC8E2, 0xC56A, 0xC56B, 0xC8E3, /* 0x40 */
- 0xC56C, 0xC8E4, 0xC56D, 0xC56E, 0xC56F, 0xC570, 0xC571, 0xC572, /* 0x40 */
- 0xC8E5, 0xC8E6, 0xC573, 0xC574, 0xC8E7, 0xC575, 0xC8E8, 0xC8E9, /* 0x50 */
- 0xC8EA, 0xC8EB, 0xC576, 0xC577, 0xC578, 0xC579, 0xC57A, 0xC581, /* 0x50 */
- 0xC8EC, 0xC8ED, 0xC582, 0xC8EE, 0xC583, 0xC8EF, 0xC584, 0xC585, /* 0x60 */
- 0xC586, 0xC8F0, 0xC587, 0xC588, 0xC8F1, 0xC589, 0xC58A, 0xC58B, /* 0x60 */
- 0xC8F2, 0xC58C, 0xC58D, 0xC58E, 0xC8F3, 0xC58F, 0xC590, 0xC591, /* 0x70 */
- 0xC592, 0xC593, 0xC594, 0xC595, 0xC8F4, 0xC8F5, 0xC596, 0xC597, /* 0x70 */
- 0xC598, 0xC8F6, 0xC599, 0xC59A, 0xC59B, 0xC59C, 0xC59D, 0xC59E, /* 0x80 */
- 0xC8F7, 0xC8F8, 0xC59F, 0xC5A0, 0xC8F9, 0xC641, 0xC642, 0xC643, /* 0x80 */
- 0xC8FA, 0xC644, 0xC645, 0xC646, 0xC647, 0xC648, 0xC649, 0xC64A, /* 0x90 */
- 0xC8FB, 0xC8FC, 0xC64B, 0xC8FD, 0xC64C, 0xC8FE, 0xC64D, 0xC64E, /* 0x90 */
- 0xC64F, 0xC650, 0xC651, 0xC652 /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_F9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCBD0, 0xCBD6, 0xCBE7, 0xCDCF, 0xCDE8, 0xCEAD, 0xCFFB, 0xD0A2, /* 0x00 */
- 0xD0B8, 0xD0D0, 0xD0DD, 0xD1D4, 0xD1D5, 0xD1D8, 0xD1DB, 0xD1DC, /* 0x00 */
- 0xD1DD, 0xD1DE, 0xD1DF, 0xD1E0, 0xD1E2, 0xD1E3, 0xD1E4, 0xD1E5, /* 0x10 */
- 0xD1E6, 0xD1E8, 0xD1E9, 0xD1EA, 0xD1EB, 0xD1ED, 0xD1EF, 0xD1F0, /* 0x10 */
- 0xD1F2, 0xD1F6, 0xD1FA, 0xD1FC, 0xD1FD, 0xD1FE, 0xD2A2, 0xD2A3, /* 0x20 */
- 0xD2A7, 0xD2A8, 0xD2A9, 0xD2AA, 0xD2AB, 0xD2AD, 0xD2B2, 0xD2BE, /* 0x20 */
- 0xD2C2, 0xD2C3, 0xD2C4, 0xD2C6, 0xD2C7, 0xD2C8, 0xD2C9, 0xD2CA, /* 0x30 */
- 0xD2CB, 0xD2CD, 0xD2CE, 0xD2CF, 0xD2D0, 0xD2D1, 0xD2D2, 0xD2D3, /* 0x30 */
- 0xD2D4, 0xD2D5, 0xD2D6, 0xD2D7, 0xD2D9, 0xD2DA, 0xD2DE, 0xD2DF, /* 0x40 */
- 0xD2E1, 0xD2E2, 0xD2E4, 0xD2E5, 0xD2E6, 0xD2E7, 0xD2E8, 0xD2E9, /* 0x40 */
- 0xD2EA, 0xD2EB, 0xD2F0, 0xD2F1, 0xD2F2, 0xD2F3, 0xD2F4, 0xD2F5, /* 0x50 */
- 0xD2F7, 0xD2F8, 0xD4E6, 0xD4FC, 0xD5A5, 0xD5AB, 0xD5AE, 0xD6B8, /* 0x50 */
- 0xD6CD, 0xD7CB, 0xD7E4, 0xDBC5, 0xDBE4, 0xDCA5, 0xDDA5, 0xDDD5, /* 0x60 */
- 0xDDF4, 0xDEFC, 0xDEFE, 0xDFB3, 0xDFE1, 0xDFE8, 0xE0F1, 0xE1AD, /* 0x60 */
- 0xE1ED, 0xE3F5, 0xE4A1, 0xE4A9, 0xE5AE, 0xE5B1, 0xE5B2, 0xE5B9, /* 0x70 */
- 0xE5BB, 0xE5BC, 0xE5C4, 0xE5CE, 0xE5D0, 0xE5D2, 0xE5D6, 0xE5FA, /* 0x70 */
- 0xE5FB, 0xE5FC, 0xE5FE, 0xE6A1, 0xE6A4, 0xE6A7, 0xE6AD, 0xE6AF, /* 0x80 */
- 0xE6B0, 0xE6B1, 0xE6B3, 0xE6B7, 0xE6B8, 0xE6BC, 0xE6C4, 0xE6C6, /* 0x80 */
- 0xE6C7, 0xE6CA, 0xE6D2, 0xE6D6, 0xE6D9, 0xE6DC, 0xE6DF, 0xE6E1, /* 0x90 */
- 0xE6E4, 0xE6E5, 0xE6E6, 0xE6E8, 0xE6EA, 0xE6EB, 0xE6EC, 0xE6EF, /* 0x90 */
- 0xE6F1, 0xE6F2, 0xE6F5, 0xE6F6, 0xE6F7, 0xE6F9, 0xE7A1, 0xE7A6, /* 0xA0 */
- 0xE7A9, 0xE7AA, 0xE7AC, 0xE7AD, 0xE7B0, 0xE7BF, 0xE7C1, 0xE7C6, /* 0xA0 */
- 0xE7C7, 0xE7CB, 0xE7CD, 0xE7CF, 0xE7D0, 0xE7D3, 0xE7DF, 0xE7E4, /* 0xB0 */
- 0xE7E6, 0xE7F7, 0xE8E7, 0xE8E8, 0xE8F0, 0xE8F1, 0xE8F7, 0xE8F9, /* 0xB0 */
- 0xE8FB, 0xE8FE, 0xE9A7, 0xE9AC, 0xE9CC, 0xE9F7, 0xEAC1, 0xEAE5, /* 0xC0 */
- 0xEAF4, 0xEAF7, 0xEAFC, 0xEAFE, 0xEBA4, 0xEBA7, 0xEBA9, 0xEBAA, /* 0xC0 */
- 0xEBBA, 0xEBBB, 0xEBBD, 0xEBC1, 0xEBC2, 0xEBC6, 0xEBC7, 0xEBCC, /* 0xD0 */
- 0xEBCF, 0xEBD0, 0xEBD1, 0xEBD2, 0xEBD8, 0xECA6, 0xECA7, 0xECAA, /* 0xD0 */
- 0xECAF, 0xECB0, 0xECB1, 0xECB2, 0xECB5, 0xECB8, 0xECBA, 0xECC0, /* 0xE0 */
- 0xECC1, 0xECC5, 0xECC6, 0xECC9, 0xECCA, 0xECD5, 0xECDD, 0xECDE, /* 0xE0 */
- 0xECE1, 0xECE4, 0xECE7, 0xECE8, 0xECF7, 0xECF8, 0xECFA, 0xEDA1, /* 0xF0 */
- 0xEDA2, 0xEDA3, 0xEDEE, 0xEEDB, 0xF2BD, 0xF2FA, 0xF3B1, 0xF4A7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_FA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF4EE, 0xF6F4, 0xF6F6, 0xF7B8, 0xF7C8, 0xF7D3, 0xF8DB, 0xF8F0, /* 0x00 */
- 0xFAA1, 0xFAA2, 0xFAE6, 0xFCA9 /* 0x00 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_KSC5601_FF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA3A1, 0xA3A2, 0xA3A3, 0xA3A4, 0xA3A5, 0xA3A6, 0xA3A7, /* 0x00 */
- 0xA3A8, 0xA3A9, 0xA3AA, 0xA3AB, 0xA3AC, 0xA3AD, 0xA3AE, 0xA3AF, /* 0x00 */
- 0xA3B0, 0xA3B1, 0xA3B2, 0xA3B3, 0xA3B4, 0xA3B5, 0xA3B6, 0xA3B7, /* 0x10 */
- 0xA3B8, 0xA3B9, 0xA3BA, 0xA3BB, 0xA3BC, 0xA3BD, 0xA3BE, 0xA3BF, /* 0x10 */
- 0xA3C0, 0xA3C1, 0xA3C2, 0xA3C3, 0xA3C4, 0xA3C5, 0xA3C6, 0xA3C7, /* 0x20 */
- 0xA3C8, 0xA3C9, 0xA3CA, 0xA3CB, 0xA3CC, 0xA3CD, 0xA3CE, 0xA3CF, /* 0x20 */
- 0xA3D0, 0xA3D1, 0xA3D2, 0xA3D3, 0xA3D4, 0xA3D5, 0xA3D6, 0xA3D7, /* 0x30 */
- 0xA3D8, 0xA3D9, 0xA3DA, 0xA3DB, 0xA1AC, 0xA3DD, 0xA3DE, 0xA3DF, /* 0x30 */
- 0xA3E0, 0xA3E1, 0xA3E2, 0xA3E3, 0xA3E4, 0xA3E5, 0xA3E6, 0xA3E7, /* 0x40 */
- 0xA3E8, 0xA3E9, 0xA3EA, 0xA3EB, 0xA3EC, 0xA3ED, 0xA3EE, 0xA3EF, /* 0x40 */
- 0xA3F0, 0xA3F1, 0xA3F2, 0xA3F3, 0xA3F4, 0xA3F5, 0xA3F6, 0xA3F7, /* 0x50 */
- 0xA3F8, 0xA3F9, 0xA3FA, 0xA3FB, 0xA3FC, 0xA3FD, 0xA2A6, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xA1CB, 0xA1CC, 0xA1FE, 0xA3FE, 0, 0xA1CD, 0xA3DC /* 0xE0 */
-};
-
diff --git a/sal/textenc/tcvtkr4.tab b/sal/textenc/tcvtkr4.tab
deleted file mode 100644
index ce365faa0..000000000
--- a/sal/textenc/tcvtkr4.tab
+++ /dev/null
@@ -1,3503 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the DBCS to UniCode tables for the following */
-/* korean charsets: */
-/* JOHAB */
-
-/* ======================================================================= */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_84[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3133, 0, 0x3135, 0x3136, /* 0x40 */
- 0, 0, 0x313A, 0x313B, 0x313C, 0x313D, 0x313E, 0x313F, /* 0x40 */
- 0x3140, 0, 0, 0, 0x3144, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0x314F, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x3150, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x3151, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x3152, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x3153 /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_85[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3154, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0x3155, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x3156, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x3157, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x3158, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x3159 /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_86[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x315A, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0x315B, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x315C, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x315D, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x315E, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x315F /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_87[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3160, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0x3161, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0x3162, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x3163 /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_88[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3131, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xAC00, 0xAC01, 0xAC02, 0xAC03, 0xAC04, 0xAC05, 0xAC06, /* 0x60 */
- 0xAC07, 0xAC08, 0xAC09, 0xAC0A, 0xAC0B, 0xAC0C, 0xAC0D, 0xAC0E, /* 0x60 */
- 0xAC0F, 0xAC10, 0, 0xAC11, 0xAC12, 0xAC13, 0xAC14, 0xAC15, /* 0x70 */
- 0xAC16, 0xAC17, 0xAC18, 0xAC19, 0xAC1A, 0xAC1B, 0, 0, /* 0x70 */
- 0, 0xAC1C, 0xAC1D, 0xAC1E, 0xAC1F, 0xAC20, 0xAC21, 0xAC22, /* 0x80 */
- 0xAC23, 0xAC24, 0xAC25, 0xAC26, 0xAC27, 0xAC28, 0xAC29, 0xAC2A, /* 0x80 */
- 0xAC2B, 0xAC2C, 0, 0xAC2D, 0xAC2E, 0xAC2F, 0xAC30, 0xAC31, /* 0x90 */
- 0xAC32, 0xAC33, 0xAC34, 0xAC35, 0xAC36, 0xAC37, 0, 0, /* 0x90 */
- 0, 0xAC38, 0xAC39, 0xAC3A, 0xAC3B, 0xAC3C, 0xAC3D, 0xAC3E, /* 0xA0 */
- 0xAC3F, 0xAC40, 0xAC41, 0xAC42, 0xAC43, 0xAC44, 0xAC45, 0xAC46, /* 0xA0 */
- 0xAC47, 0xAC48, 0, 0xAC49, 0xAC4A, 0xAC4B, 0xAC4C, 0xAC4D, /* 0xB0 */
- 0xAC4E, 0xAC4F, 0xAC50, 0xAC51, 0xAC52, 0xAC53, 0, 0, /* 0xB0 */
- 0, 0xAC54, 0xAC55, 0xAC56, 0xAC57, 0xAC58, 0xAC59, 0xAC5A, /* 0xC0 */
- 0xAC5B, 0xAC5C, 0xAC5D, 0xAC5E, 0xAC5F, 0xAC60, 0xAC61, 0xAC62, /* 0xC0 */
- 0xAC63, 0xAC64, 0, 0xAC65, 0xAC66, 0xAC67, 0xAC68, 0xAC69, /* 0xD0 */
- 0xAC6A, 0xAC6B, 0xAC6C, 0xAC6D, 0xAC6E, 0xAC6F, 0, 0, /* 0xD0 */
- 0, 0xAC70, 0xAC71, 0xAC72, 0xAC73, 0xAC74, 0xAC75, 0xAC76, /* 0xE0 */
- 0xAC77, 0xAC78, 0xAC79, 0xAC7A, 0xAC7B, 0xAC7C, 0xAC7D, 0xAC7E, /* 0xE0 */
- 0xAC7F, 0xAC80, 0, 0xAC81, 0xAC82, 0xAC83, 0xAC84, 0xAC85, /* 0xF0 */
- 0xAC86, 0xAC87, 0xAC88, 0xAC89, 0xAC8A, 0xAC8B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_89[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xAC8C, 0xAC8D, 0xAC8E, 0xAC8F, 0xAC90, 0xAC91, 0xAC92, /* 0x40 */
- 0xAC93, 0xAC94, 0xAC95, 0xAC96, 0xAC97, 0xAC98, 0xAC99, 0xAC9A, /* 0x40 */
- 0xAC9B, 0xAC9C, 0, 0xAC9D, 0xAC9E, 0xAC9F, 0xACA0, 0xACA1, /* 0x50 */
- 0xACA2, 0xACA3, 0xACA4, 0xACA5, 0xACA6, 0xACA7, 0, 0, /* 0x50 */
- 0, 0xACA8, 0xACA9, 0xACAA, 0xACAB, 0xACAC, 0xACAD, 0xACAE, /* 0x60 */
- 0xACAF, 0xACB0, 0xACB1, 0xACB2, 0xACB3, 0xACB4, 0xACB5, 0xACB6, /* 0x60 */
- 0xACB7, 0xACB8, 0, 0xACB9, 0xACBA, 0xACBB, 0xACBC, 0xACBD, /* 0x70 */
- 0xACBE, 0xACBF, 0xACC0, 0xACC1, 0xACC2, 0xACC3, 0, 0, /* 0x70 */
- 0, 0xACC4, 0xACC5, 0xACC6, 0xACC7, 0xACC8, 0xACC9, 0xACCA, /* 0x80 */
- 0xACCB, 0xACCC, 0xACCD, 0xACCE, 0xACCF, 0xACD0, 0xACD1, 0xACD2, /* 0x80 */
- 0xACD3, 0xACD4, 0, 0xACD5, 0xACD6, 0xACD7, 0xACD8, 0xACD9, /* 0x90 */
- 0xACDA, 0xACDB, 0xACDC, 0xACDD, 0xACDE, 0xACDF, 0, 0, /* 0x90 */
- 0, 0xACE0, 0xACE1, 0xACE2, 0xACE3, 0xACE4, 0xACE5, 0xACE6, /* 0xA0 */
- 0xACE7, 0xACE8, 0xACE9, 0xACEA, 0xACEB, 0xACEC, 0xACED, 0xACEE, /* 0xA0 */
- 0xACEF, 0xACF0, 0, 0xACF1, 0xACF2, 0xACF3, 0xACF4, 0xACF5, /* 0xB0 */
- 0xACF6, 0xACF7, 0xACF8, 0xACF9, 0xACFA, 0xACFB, 0, 0, /* 0xB0 */
- 0, 0xACFC, 0xACFD, 0xACFE, 0xACFF, 0xAD00, 0xAD01, 0xAD02, /* 0xC0 */
- 0xAD03, 0xAD04, 0xAD05, 0xAD06, 0xAD07, 0xAD08, 0xAD09, 0xAD0A, /* 0xC0 */
- 0xAD0B, 0xAD0C, 0, 0xAD0D, 0xAD0E, 0xAD0F, 0xAD10, 0xAD11, /* 0xD0 */
- 0xAD12, 0xAD13, 0xAD14, 0xAD15, 0xAD16, 0xAD17, 0, 0, /* 0xD0 */
- 0, 0xAD18, 0xAD19, 0xAD1A, 0xAD1B, 0xAD1C, 0xAD1D, 0xAD1E, /* 0xE0 */
- 0xAD1F, 0xAD20, 0xAD21, 0xAD22, 0xAD23, 0xAD24, 0xAD25, 0xAD26, /* 0xE0 */
- 0xAD27, 0xAD28, 0, 0xAD29, 0xAD2A, 0xAD2B, 0xAD2C, 0xAD2D, /* 0xF0 */
- 0xAD2E, 0xAD2F, 0xAD30, 0xAD31, 0xAD32, 0xAD33 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_8A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xAD34, 0xAD35, 0xAD36, 0xAD37, 0xAD38, 0xAD39, 0xAD3A, /* 0x40 */
- 0xAD3B, 0xAD3C, 0xAD3D, 0xAD3E, 0xAD3F, 0xAD40, 0xAD41, 0xAD42, /* 0x40 */
- 0xAD43, 0xAD44, 0, 0xAD45, 0xAD46, 0xAD47, 0xAD48, 0xAD49, /* 0x50 */
- 0xAD4A, 0xAD4B, 0xAD4C, 0xAD4D, 0xAD4E, 0xAD4F, 0, 0, /* 0x50 */
- 0, 0xAD50, 0xAD51, 0xAD52, 0xAD53, 0xAD54, 0xAD55, 0xAD56, /* 0x60 */
- 0xAD57, 0xAD58, 0xAD59, 0xAD5A, 0xAD5B, 0xAD5C, 0xAD5D, 0xAD5E, /* 0x60 */
- 0xAD5F, 0xAD60, 0, 0xAD61, 0xAD62, 0xAD63, 0xAD64, 0xAD65, /* 0x70 */
- 0xAD66, 0xAD67, 0xAD68, 0xAD69, 0xAD6A, 0xAD6B, 0, 0, /* 0x70 */
- 0, 0xAD6C, 0xAD6D, 0xAD6E, 0xAD6F, 0xAD70, 0xAD71, 0xAD72, /* 0x80 */
- 0xAD73, 0xAD74, 0xAD75, 0xAD76, 0xAD77, 0xAD78, 0xAD79, 0xAD7A, /* 0x80 */
- 0xAD7B, 0xAD7C, 0, 0xAD7D, 0xAD7E, 0xAD7F, 0xAD80, 0xAD81, /* 0x90 */
- 0xAD82, 0xAD83, 0xAD84, 0xAD85, 0xAD86, 0xAD87, 0, 0, /* 0x90 */
- 0, 0xAD88, 0xAD89, 0xAD8A, 0xAD8B, 0xAD8C, 0xAD8D, 0xAD8E, /* 0xA0 */
- 0xAD8F, 0xAD90, 0xAD91, 0xAD92, 0xAD93, 0xAD94, 0xAD95, 0xAD96, /* 0xA0 */
- 0xAD97, 0xAD98, 0, 0xAD99, 0xAD9A, 0xAD9B, 0xAD9C, 0xAD9D, /* 0xB0 */
- 0xAD9E, 0xAD9F, 0xADA0, 0xADA1, 0xADA2, 0xADA3, 0, 0, /* 0xB0 */
- 0, 0xADA4, 0xADA5, 0xADA6, 0xADA7, 0xADA8, 0xADA9, 0xADAA, /* 0xC0 */
- 0xADAB, 0xADAC, 0xADAD, 0xADAE, 0xADAF, 0xADB0, 0xADB1, 0xADB2, /* 0xC0 */
- 0xADB3, 0xADB4, 0, 0xADB5, 0xADB6, 0xADB7, 0xADB8, 0xADB9, /* 0xD0 */
- 0xADBA, 0xADBB, 0xADBC, 0xADBD, 0xADBE, 0xADBF, 0, 0, /* 0xD0 */
- 0, 0xADC0, 0xADC1, 0xADC2, 0xADC3, 0xADC4, 0xADC5, 0xADC6, /* 0xE0 */
- 0xADC7, 0xADC8, 0xADC9, 0xADCA, 0xADCB, 0xADCC, 0xADCD, 0xADCE, /* 0xE0 */
- 0xADCF, 0xADD0, 0, 0xADD1, 0xADD2, 0xADD3, 0xADD4, 0xADD5, /* 0xF0 */
- 0xADD6, 0xADD7, 0xADD8, 0xADD9, 0xADDA, 0xADDB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_8B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xADDC, 0xADDD, 0xADDE, 0xADDF, 0xADE0, 0xADE1, 0xADE2, /* 0x40 */
- 0xADE3, 0xADE4, 0xADE5, 0xADE6, 0xADE7, 0xADE8, 0xADE9, 0xADEA, /* 0x40 */
- 0xADEB, 0xADEC, 0, 0xADED, 0xADEE, 0xADEF, 0xADF0, 0xADF1, /* 0x50 */
- 0xADF2, 0xADF3, 0xADF4, 0xADF5, 0xADF6, 0xADF7, 0, 0, /* 0x50 */
- 0, 0xADF8, 0xADF9, 0xADFA, 0xADFB, 0xADFC, 0xADFD, 0xADFE, /* 0x60 */
- 0xADFF, 0xAE00, 0xAE01, 0xAE02, 0xAE03, 0xAE04, 0xAE05, 0xAE06, /* 0x60 */
- 0xAE07, 0xAE08, 0, 0xAE09, 0xAE0A, 0xAE0B, 0xAE0C, 0xAE0D, /* 0x70 */
- 0xAE0E, 0xAE0F, 0xAE10, 0xAE11, 0xAE12, 0xAE13, 0, 0, /* 0x70 */
- 0, 0xAE14, 0xAE15, 0xAE16, 0xAE17, 0xAE18, 0xAE19, 0xAE1A, /* 0x80 */
- 0xAE1B, 0xAE1C, 0xAE1D, 0xAE1E, 0xAE1F, 0xAE20, 0xAE21, 0xAE22, /* 0x80 */
- 0xAE23, 0xAE24, 0, 0xAE25, 0xAE26, 0xAE27, 0xAE28, 0xAE29, /* 0x90 */
- 0xAE2A, 0xAE2B, 0xAE2C, 0xAE2D, 0xAE2E, 0xAE2F, 0, 0, /* 0x90 */
- 0, 0xAE30, 0xAE31, 0xAE32, 0xAE33, 0xAE34, 0xAE35, 0xAE36, /* 0xA0 */
- 0xAE37, 0xAE38, 0xAE39, 0xAE3A, 0xAE3B, 0xAE3C, 0xAE3D, 0xAE3E, /* 0xA0 */
- 0xAE3F, 0xAE40, 0, 0xAE41, 0xAE42, 0xAE43, 0xAE44, 0xAE45, /* 0xB0 */
- 0xAE46, 0xAE47, 0xAE48, 0xAE49, 0xAE4A, 0xAE4B /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_8C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3132, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xAE4C, 0xAE4D, 0xAE4E, 0xAE4F, 0xAE50, 0xAE51, 0xAE52, /* 0x60 */
- 0xAE53, 0xAE54, 0xAE55, 0xAE56, 0xAE57, 0xAE58, 0xAE59, 0xAE5A, /* 0x60 */
- 0xAE5B, 0xAE5C, 0, 0xAE5D, 0xAE5E, 0xAE5F, 0xAE60, 0xAE61, /* 0x70 */
- 0xAE62, 0xAE63, 0xAE64, 0xAE65, 0xAE66, 0xAE67, 0, 0, /* 0x70 */
- 0, 0xAE68, 0xAE69, 0xAE6A, 0xAE6B, 0xAE6C, 0xAE6D, 0xAE6E, /* 0x80 */
- 0xAE6F, 0xAE70, 0xAE71, 0xAE72, 0xAE73, 0xAE74, 0xAE75, 0xAE76, /* 0x80 */
- 0xAE77, 0xAE78, 0, 0xAE79, 0xAE7A, 0xAE7B, 0xAE7C, 0xAE7D, /* 0x90 */
- 0xAE7E, 0xAE7F, 0xAE80, 0xAE81, 0xAE82, 0xAE83, 0, 0, /* 0x90 */
- 0, 0xAE84, 0xAE85, 0xAE86, 0xAE87, 0xAE88, 0xAE89, 0xAE8A, /* 0xA0 */
- 0xAE8B, 0xAE8C, 0xAE8D, 0xAE8E, 0xAE8F, 0xAE90, 0xAE91, 0xAE92, /* 0xA0 */
- 0xAE93, 0xAE94, 0, 0xAE95, 0xAE96, 0xAE97, 0xAE98, 0xAE99, /* 0xB0 */
- 0xAE9A, 0xAE9B, 0xAE9C, 0xAE9D, 0xAE9E, 0xAE9F, 0, 0, /* 0xB0 */
- 0, 0xAEA0, 0xAEA1, 0xAEA2, 0xAEA3, 0xAEA4, 0xAEA5, 0xAEA6, /* 0xC0 */
- 0xAEA7, 0xAEA8, 0xAEA9, 0xAEAA, 0xAEAB, 0xAEAC, 0xAEAD, 0xAEAE, /* 0xC0 */
- 0xAEAF, 0xAEB0, 0, 0xAEB1, 0xAEB2, 0xAEB3, 0xAEB4, 0xAEB5, /* 0xD0 */
- 0xAEB6, 0xAEB7, 0xAEB8, 0xAEB9, 0xAEBA, 0xAEBB, 0, 0, /* 0xD0 */
- 0, 0xAEBC, 0xAEBD, 0xAEBE, 0xAEBF, 0xAEC0, 0xAEC1, 0xAEC2, /* 0xE0 */
- 0xAEC3, 0xAEC4, 0xAEC5, 0xAEC6, 0xAEC7, 0xAEC8, 0xAEC9, 0xAECA, /* 0xE0 */
- 0xAECB, 0xAECC, 0, 0xAECD, 0xAECE, 0xAECF, 0xAED0, 0xAED1, /* 0xF0 */
- 0xAED2, 0xAED3, 0xAED4, 0xAED5, 0xAED6, 0xAED7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_8D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xAED8, 0xAED9, 0xAEDA, 0xAEDB, 0xAEDC, 0xAEDD, 0xAEDE, /* 0x40 */
- 0xAEDF, 0xAEE0, 0xAEE1, 0xAEE2, 0xAEE3, 0xAEE4, 0xAEE5, 0xAEE6, /* 0x40 */
- 0xAEE7, 0xAEE8, 0, 0xAEE9, 0xAEEA, 0xAEEB, 0xAEEC, 0xAEED, /* 0x50 */
- 0xAEEE, 0xAEEF, 0xAEF0, 0xAEF1, 0xAEF2, 0xAEF3, 0, 0, /* 0x50 */
- 0, 0xAEF4, 0xAEF5, 0xAEF6, 0xAEF7, 0xAEF8, 0xAEF9, 0xAEFA, /* 0x60 */
- 0xAEFB, 0xAEFC, 0xAEFD, 0xAEFE, 0xAEFF, 0xAF00, 0xAF01, 0xAF02, /* 0x60 */
- 0xAF03, 0xAF04, 0, 0xAF05, 0xAF06, 0xAF07, 0xAF08, 0xAF09, /* 0x70 */
- 0xAF0A, 0xAF0B, 0xAF0C, 0xAF0D, 0xAF0E, 0xAF0F, 0, 0, /* 0x70 */
- 0, 0xAF10, 0xAF11, 0xAF12, 0xAF13, 0xAF14, 0xAF15, 0xAF16, /* 0x80 */
- 0xAF17, 0xAF18, 0xAF19, 0xAF1A, 0xAF1B, 0xAF1C, 0xAF1D, 0xAF1E, /* 0x80 */
- 0xAF1F, 0xAF20, 0, 0xAF21, 0xAF22, 0xAF23, 0xAF24, 0xAF25, /* 0x90 */
- 0xAF26, 0xAF27, 0xAF28, 0xAF29, 0xAF2A, 0xAF2B, 0, 0, /* 0x90 */
- 0, 0xAF2C, 0xAF2D, 0xAF2E, 0xAF2F, 0xAF30, 0xAF31, 0xAF32, /* 0xA0 */
- 0xAF33, 0xAF34, 0xAF35, 0xAF36, 0xAF37, 0xAF38, 0xAF39, 0xAF3A, /* 0xA0 */
- 0xAF3B, 0xAF3C, 0, 0xAF3D, 0xAF3E, 0xAF3F, 0xAF40, 0xAF41, /* 0xB0 */
- 0xAF42, 0xAF43, 0xAF44, 0xAF45, 0xAF46, 0xAF47, 0, 0, /* 0xB0 */
- 0, 0xAF48, 0xAF49, 0xAF4A, 0xAF4B, 0xAF4C, 0xAF4D, 0xAF4E, /* 0xC0 */
- 0xAF4F, 0xAF50, 0xAF51, 0xAF52, 0xAF53, 0xAF54, 0xAF55, 0xAF56, /* 0xC0 */
- 0xAF57, 0xAF58, 0, 0xAF59, 0xAF5A, 0xAF5B, 0xAF5C, 0xAF5D, /* 0xD0 */
- 0xAF5E, 0xAF5F, 0xAF60, 0xAF61, 0xAF62, 0xAF63, 0, 0, /* 0xD0 */
- 0, 0xAF64, 0xAF65, 0xAF66, 0xAF67, 0xAF68, 0xAF69, 0xAF6A, /* 0xE0 */
- 0xAF6B, 0xAF6C, 0xAF6D, 0xAF6E, 0xAF6F, 0xAF70, 0xAF71, 0xAF72, /* 0xE0 */
- 0xAF73, 0xAF74, 0, 0xAF75, 0xAF76, 0xAF77, 0xAF78, 0xAF79, /* 0xF0 */
- 0xAF7A, 0xAF7B, 0xAF7C, 0xAF7D, 0xAF7E, 0xAF7F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_8E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xAF80, 0xAF81, 0xAF82, 0xAF83, 0xAF84, 0xAF85, 0xAF86, /* 0x40 */
- 0xAF87, 0xAF88, 0xAF89, 0xAF8A, 0xAF8B, 0xAF8C, 0xAF8D, 0xAF8E, /* 0x40 */
- 0xAF8F, 0xAF90, 0, 0xAF91, 0xAF92, 0xAF93, 0xAF94, 0xAF95, /* 0x50 */
- 0xAF96, 0xAF97, 0xAF98, 0xAF99, 0xAF9A, 0xAF9B, 0, 0, /* 0x50 */
- 0, 0xAF9C, 0xAF9D, 0xAF9E, 0xAF9F, 0xAFA0, 0xAFA1, 0xAFA2, /* 0x60 */
- 0xAFA3, 0xAFA4, 0xAFA5, 0xAFA6, 0xAFA7, 0xAFA8, 0xAFA9, 0xAFAA, /* 0x60 */
- 0xAFAB, 0xAFAC, 0, 0xAFAD, 0xAFAE, 0xAFAF, 0xAFB0, 0xAFB1, /* 0x70 */
- 0xAFB2, 0xAFB3, 0xAFB4, 0xAFB5, 0xAFB6, 0xAFB7, 0, 0, /* 0x70 */
- 0, 0xAFB8, 0xAFB9, 0xAFBA, 0xAFBB, 0xAFBC, 0xAFBD, 0xAFBE, /* 0x80 */
- 0xAFBF, 0xAFC0, 0xAFC1, 0xAFC2, 0xAFC3, 0xAFC4, 0xAFC5, 0xAFC6, /* 0x80 */
- 0xAFC7, 0xAFC8, 0, 0xAFC9, 0xAFCA, 0xAFCB, 0xAFCC, 0xAFCD, /* 0x90 */
- 0xAFCE, 0xAFCF, 0xAFD0, 0xAFD1, 0xAFD2, 0xAFD3, 0, 0, /* 0x90 */
- 0, 0xAFD4, 0xAFD5, 0xAFD6, 0xAFD7, 0xAFD8, 0xAFD9, 0xAFDA, /* 0xA0 */
- 0xAFDB, 0xAFDC, 0xAFDD, 0xAFDE, 0xAFDF, 0xAFE0, 0xAFE1, 0xAFE2, /* 0xA0 */
- 0xAFE3, 0xAFE4, 0, 0xAFE5, 0xAFE6, 0xAFE7, 0xAFE8, 0xAFE9, /* 0xB0 */
- 0xAFEA, 0xAFEB, 0xAFEC, 0xAFED, 0xAFEE, 0xAFEF, 0, 0, /* 0xB0 */
- 0, 0xAFF0, 0xAFF1, 0xAFF2, 0xAFF3, 0xAFF4, 0xAFF5, 0xAFF6, /* 0xC0 */
- 0xAFF7, 0xAFF8, 0xAFF9, 0xAFFA, 0xAFFB, 0xAFFC, 0xAFFD, 0xAFFE, /* 0xC0 */
- 0xAFFF, 0xB000, 0, 0xB001, 0xB002, 0xB003, 0xB004, 0xB005, /* 0xD0 */
- 0xB006, 0xB007, 0xB008, 0xB009, 0xB00A, 0xB00B, 0, 0, /* 0xD0 */
- 0, 0xB00C, 0xB00D, 0xB00E, 0xB00F, 0xB010, 0xB011, 0xB012, /* 0xE0 */
- 0xB013, 0xB014, 0xB015, 0xB016, 0xB017, 0xB018, 0xB019, 0xB01A, /* 0xE0 */
- 0xB01B, 0xB01C, 0, 0xB01D, 0xB01E, 0xB01F, 0xB020, 0xB021, /* 0xF0 */
- 0xB022, 0xB023, 0xB024, 0xB025, 0xB026, 0xB027 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_8F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB028, 0xB029, 0xB02A, 0xB02B, 0xB02C, 0xB02D, 0xB02E, /* 0x40 */
- 0xB02F, 0xB030, 0xB031, 0xB032, 0xB033, 0xB034, 0xB035, 0xB036, /* 0x40 */
- 0xB037, 0xB038, 0, 0xB039, 0xB03A, 0xB03B, 0xB03C, 0xB03D, /* 0x50 */
- 0xB03E, 0xB03F, 0xB040, 0xB041, 0xB042, 0xB043, 0, 0, /* 0x50 */
- 0, 0xB044, 0xB045, 0xB046, 0xB047, 0xB048, 0xB049, 0xB04A, /* 0x60 */
- 0xB04B, 0xB04C, 0xB04D, 0xB04E, 0xB04F, 0xB050, 0xB051, 0xB052, /* 0x60 */
- 0xB053, 0xB054, 0, 0xB055, 0xB056, 0xB057, 0xB058, 0xB059, /* 0x70 */
- 0xB05A, 0xB05B, 0xB05C, 0xB05D, 0xB05E, 0xB05F, 0, 0, /* 0x70 */
- 0, 0xB060, 0xB061, 0xB062, 0xB063, 0xB064, 0xB065, 0xB066, /* 0x80 */
- 0xB067, 0xB068, 0xB069, 0xB06A, 0xB06B, 0xB06C, 0xB06D, 0xB06E, /* 0x80 */
- 0xB06F, 0xB070, 0, 0xB071, 0xB072, 0xB073, 0xB074, 0xB075, /* 0x90 */
- 0xB076, 0xB077, 0xB078, 0xB079, 0xB07A, 0xB07B, 0, 0, /* 0x90 */
- 0, 0xB07C, 0xB07D, 0xB07E, 0xB07F, 0xB080, 0xB081, 0xB082, /* 0xA0 */
- 0xB083, 0xB084, 0xB085, 0xB086, 0xB087, 0xB088, 0xB089, 0xB08A, /* 0xA0 */
- 0xB08B, 0xB08C, 0, 0xB08D, 0xB08E, 0xB08F, 0xB090, 0xB091, /* 0xB0 */
- 0xB092, 0xB093, 0xB094, 0xB095, 0xB096, 0xB097 /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_90[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3134, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xB098, 0xB099, 0xB09A, 0xB09B, 0xB09C, 0xB09D, 0xB09E, /* 0x60 */
- 0xB09F, 0xB0A0, 0xB0A1, 0xB0A2, 0xB0A3, 0xB0A4, 0xB0A5, 0xB0A6, /* 0x60 */
- 0xB0A7, 0xB0A8, 0, 0xB0A9, 0xB0AA, 0xB0AB, 0xB0AC, 0xB0AD, /* 0x70 */
- 0xB0AE, 0xB0AF, 0xB0B0, 0xB0B1, 0xB0B2, 0xB0B3, 0, 0, /* 0x70 */
- 0, 0xB0B4, 0xB0B5, 0xB0B6, 0xB0B7, 0xB0B8, 0xB0B9, 0xB0BA, /* 0x80 */
- 0xB0BB, 0xB0BC, 0xB0BD, 0xB0BE, 0xB0BF, 0xB0C0, 0xB0C1, 0xB0C2, /* 0x80 */
- 0xB0C3, 0xB0C4, 0, 0xB0C5, 0xB0C6, 0xB0C7, 0xB0C8, 0xB0C9, /* 0x90 */
- 0xB0CA, 0xB0CB, 0xB0CC, 0xB0CD, 0xB0CE, 0xB0CF, 0, 0, /* 0x90 */
- 0, 0xB0D0, 0xB0D1, 0xB0D2, 0xB0D3, 0xB0D4, 0xB0D5, 0xB0D6, /* 0xA0 */
- 0xB0D7, 0xB0D8, 0xB0D9, 0xB0DA, 0xB0DB, 0xB0DC, 0xB0DD, 0xB0DE, /* 0xA0 */
- 0xB0DF, 0xB0E0, 0, 0xB0E1, 0xB0E2, 0xB0E3, 0xB0E4, 0xB0E5, /* 0xB0 */
- 0xB0E6, 0xB0E7, 0xB0E8, 0xB0E9, 0xB0EA, 0xB0EB, 0, 0, /* 0xB0 */
- 0, 0xB0EC, 0xB0ED, 0xB0EE, 0xB0EF, 0xB0F0, 0xB0F1, 0xB0F2, /* 0xC0 */
- 0xB0F3, 0xB0F4, 0xB0F5, 0xB0F6, 0xB0F7, 0xB0F8, 0xB0F9, 0xB0FA, /* 0xC0 */
- 0xB0FB, 0xB0FC, 0, 0xB0FD, 0xB0FE, 0xB0FF, 0xB100, 0xB101, /* 0xD0 */
- 0xB102, 0xB103, 0xB104, 0xB105, 0xB106, 0xB107, 0, 0, /* 0xD0 */
- 0, 0xB108, 0xB109, 0xB10A, 0xB10B, 0xB10C, 0xB10D, 0xB10E, /* 0xE0 */
- 0xB10F, 0xB110, 0xB111, 0xB112, 0xB113, 0xB114, 0xB115, 0xB116, /* 0xE0 */
- 0xB117, 0xB118, 0, 0xB119, 0xB11A, 0xB11B, 0xB11C, 0xB11D, /* 0xF0 */
- 0xB11E, 0xB11F, 0xB120, 0xB121, 0xB122, 0xB123 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_91[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB124, 0xB125, 0xB126, 0xB127, 0xB128, 0xB129, 0xB12A, /* 0x40 */
- 0xB12B, 0xB12C, 0xB12D, 0xB12E, 0xB12F, 0xB130, 0xB131, 0xB132, /* 0x40 */
- 0xB133, 0xB134, 0, 0xB135, 0xB136, 0xB137, 0xB138, 0xB139, /* 0x50 */
- 0xB13A, 0xB13B, 0xB13C, 0xB13D, 0xB13E, 0xB13F, 0, 0, /* 0x50 */
- 0, 0xB140, 0xB141, 0xB142, 0xB143, 0xB144, 0xB145, 0xB146, /* 0x60 */
- 0xB147, 0xB148, 0xB149, 0xB14A, 0xB14B, 0xB14C, 0xB14D, 0xB14E, /* 0x60 */
- 0xB14F, 0xB150, 0, 0xB151, 0xB152, 0xB153, 0xB154, 0xB155, /* 0x70 */
- 0xB156, 0xB157, 0xB158, 0xB159, 0xB15A, 0xB15B, 0, 0, /* 0x70 */
- 0, 0xB15C, 0xB15D, 0xB15E, 0xB15F, 0xB160, 0xB161, 0xB162, /* 0x80 */
- 0xB163, 0xB164, 0xB165, 0xB166, 0xB167, 0xB168, 0xB169, 0xB16A, /* 0x80 */
- 0xB16B, 0xB16C, 0, 0xB16D, 0xB16E, 0xB16F, 0xB170, 0xB171, /* 0x90 */
- 0xB172, 0xB173, 0xB174, 0xB175, 0xB176, 0xB177, 0, 0, /* 0x90 */
- 0, 0xB178, 0xB179, 0xB17A, 0xB17B, 0xB17C, 0xB17D, 0xB17E, /* 0xA0 */
- 0xB17F, 0xB180, 0xB181, 0xB182, 0xB183, 0xB184, 0xB185, 0xB186, /* 0xA0 */
- 0xB187, 0xB188, 0, 0xB189, 0xB18A, 0xB18B, 0xB18C, 0xB18D, /* 0xB0 */
- 0xB18E, 0xB18F, 0xB190, 0xB191, 0xB192, 0xB193, 0, 0, /* 0xB0 */
- 0, 0xB194, 0xB195, 0xB196, 0xB197, 0xB198, 0xB199, 0xB19A, /* 0xC0 */
- 0xB19B, 0xB19C, 0xB19D, 0xB19E, 0xB19F, 0xB1A0, 0xB1A1, 0xB1A2, /* 0xC0 */
- 0xB1A3, 0xB1A4, 0, 0xB1A5, 0xB1A6, 0xB1A7, 0xB1A8, 0xB1A9, /* 0xD0 */
- 0xB1AA, 0xB1AB, 0xB1AC, 0xB1AD, 0xB1AE, 0xB1AF, 0, 0, /* 0xD0 */
- 0, 0xB1B0, 0xB1B1, 0xB1B2, 0xB1B3, 0xB1B4, 0xB1B5, 0xB1B6, /* 0xE0 */
- 0xB1B7, 0xB1B8, 0xB1B9, 0xB1BA, 0xB1BB, 0xB1BC, 0xB1BD, 0xB1BE, /* 0xE0 */
- 0xB1BF, 0xB1C0, 0, 0xB1C1, 0xB1C2, 0xB1C3, 0xB1C4, 0xB1C5, /* 0xF0 */
- 0xB1C6, 0xB1C7, 0xB1C8, 0xB1C9, 0xB1CA, 0xB1CB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_92[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB1CC, 0xB1CD, 0xB1CE, 0xB1CF, 0xB1D0, 0xB1D1, 0xB1D2, /* 0x40 */
- 0xB1D3, 0xB1D4, 0xB1D5, 0xB1D6, 0xB1D7, 0xB1D8, 0xB1D9, 0xB1DA, /* 0x40 */
- 0xB1DB, 0xB1DC, 0, 0xB1DD, 0xB1DE, 0xB1DF, 0xB1E0, 0xB1E1, /* 0x50 */
- 0xB1E2, 0xB1E3, 0xB1E4, 0xB1E5, 0xB1E6, 0xB1E7, 0, 0, /* 0x50 */
- 0, 0xB1E8, 0xB1E9, 0xB1EA, 0xB1EB, 0xB1EC, 0xB1ED, 0xB1EE, /* 0x60 */
- 0xB1EF, 0xB1F0, 0xB1F1, 0xB1F2, 0xB1F3, 0xB1F4, 0xB1F5, 0xB1F6, /* 0x60 */
- 0xB1F7, 0xB1F8, 0, 0xB1F9, 0xB1FA, 0xB1FB, 0xB1FC, 0xB1FD, /* 0x70 */
- 0xB1FE, 0xB1FF, 0xB200, 0xB201, 0xB202, 0xB203, 0, 0, /* 0x70 */
- 0, 0xB204, 0xB205, 0xB206, 0xB207, 0xB208, 0xB209, 0xB20A, /* 0x80 */
- 0xB20B, 0xB20C, 0xB20D, 0xB20E, 0xB20F, 0xB210, 0xB211, 0xB212, /* 0x80 */
- 0xB213, 0xB214, 0, 0xB215, 0xB216, 0xB217, 0xB218, 0xB219, /* 0x90 */
- 0xB21A, 0xB21B, 0xB21C, 0xB21D, 0xB21E, 0xB21F, 0, 0, /* 0x90 */
- 0, 0xB220, 0xB221, 0xB222, 0xB223, 0xB224, 0xB225, 0xB226, /* 0xA0 */
- 0xB227, 0xB228, 0xB229, 0xB22A, 0xB22B, 0xB22C, 0xB22D, 0xB22E, /* 0xA0 */
- 0xB22F, 0xB230, 0, 0xB231, 0xB232, 0xB233, 0xB234, 0xB235, /* 0xB0 */
- 0xB236, 0xB237, 0xB238, 0xB239, 0xB23A, 0xB23B, 0, 0, /* 0xB0 */
- 0, 0xB23C, 0xB23D, 0xB23E, 0xB23F, 0xB240, 0xB241, 0xB242, /* 0xC0 */
- 0xB243, 0xB244, 0xB245, 0xB246, 0xB247, 0xB248, 0xB249, 0xB24A, /* 0xC0 */
- 0xB24B, 0xB24C, 0, 0xB24D, 0xB24E, 0xB24F, 0xB250, 0xB251, /* 0xD0 */
- 0xB252, 0xB253, 0xB254, 0xB255, 0xB256, 0xB257, 0, 0, /* 0xD0 */
- 0, 0xB258, 0xB259, 0xB25A, 0xB25B, 0xB25C, 0xB25D, 0xB25E, /* 0xE0 */
- 0xB25F, 0xB260, 0xB261, 0xB262, 0xB263, 0xB264, 0xB265, 0xB266, /* 0xE0 */
- 0xB267, 0xB268, 0, 0xB269, 0xB26A, 0xB26B, 0xB26C, 0xB26D, /* 0xF0 */
- 0xB26E, 0xB26F, 0xB270, 0xB271, 0xB272, 0xB273 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_93[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB274, 0xB275, 0xB276, 0xB277, 0xB278, 0xB279, 0xB27A, /* 0x40 */
- 0xB27B, 0xB27C, 0xB27D, 0xB27E, 0xB27F, 0xB280, 0xB281, 0xB282, /* 0x40 */
- 0xB283, 0xB284, 0, 0xB285, 0xB286, 0xB287, 0xB288, 0xB289, /* 0x50 */
- 0xB28A, 0xB28B, 0xB28C, 0xB28D, 0xB28E, 0xB28F, 0, 0, /* 0x50 */
- 0, 0xB290, 0xB291, 0xB292, 0xB293, 0xB294, 0xB295, 0xB296, /* 0x60 */
- 0xB297, 0xB298, 0xB299, 0xB29A, 0xB29B, 0xB29C, 0xB29D, 0xB29E, /* 0x60 */
- 0xB29F, 0xB2A0, 0, 0xB2A1, 0xB2A2, 0xB2A3, 0xB2A4, 0xB2A5, /* 0x70 */
- 0xB2A6, 0xB2A7, 0xB2A8, 0xB2A9, 0xB2AA, 0xB2AB, 0, 0, /* 0x70 */
- 0, 0xB2AC, 0xB2AD, 0xB2AE, 0xB2AF, 0xB2B0, 0xB2B1, 0xB2B2, /* 0x80 */
- 0xB2B3, 0xB2B4, 0xB2B5, 0xB2B6, 0xB2B7, 0xB2B8, 0xB2B9, 0xB2BA, /* 0x80 */
- 0xB2BB, 0xB2BC, 0, 0xB2BD, 0xB2BE, 0xB2BF, 0xB2C0, 0xB2C1, /* 0x90 */
- 0xB2C2, 0xB2C3, 0xB2C4, 0xB2C5, 0xB2C6, 0xB2C7, 0, 0, /* 0x90 */
- 0, 0xB2C8, 0xB2C9, 0xB2CA, 0xB2CB, 0xB2CC, 0xB2CD, 0xB2CE, /* 0xA0 */
- 0xB2CF, 0xB2D0, 0xB2D1, 0xB2D2, 0xB2D3, 0xB2D4, 0xB2D5, 0xB2D6, /* 0xA0 */
- 0xB2D7, 0xB2D8, 0, 0xB2D9, 0xB2DA, 0xB2DB, 0xB2DC, 0xB2DD, /* 0xB0 */
- 0xB2DE, 0xB2DF, 0xB2E0, 0xB2E1, 0xB2E2, 0xB2E3 /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_94[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3137, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xB2E4, 0xB2E5, 0xB2E6, 0xB2E7, 0xB2E8, 0xB2E9, 0xB2EA, /* 0x60 */
- 0xB2EB, 0xB2EC, 0xB2ED, 0xB2EE, 0xB2EF, 0xB2F0, 0xB2F1, 0xB2F2, /* 0x60 */
- 0xB2F3, 0xB2F4, 0, 0xB2F5, 0xB2F6, 0xB2F7, 0xB2F8, 0xB2F9, /* 0x70 */
- 0xB2FA, 0xB2FB, 0xB2FC, 0xB2FD, 0xB2FE, 0xB2FF, 0, 0, /* 0x70 */
- 0, 0xB300, 0xB301, 0xB302, 0xB303, 0xB304, 0xB305, 0xB306, /* 0x80 */
- 0xB307, 0xB308, 0xB309, 0xB30A, 0xB30B, 0xB30C, 0xB30D, 0xB30E, /* 0x80 */
- 0xB30F, 0xB310, 0, 0xB311, 0xB312, 0xB313, 0xB314, 0xB315, /* 0x90 */
- 0xB316, 0xB317, 0xB318, 0xB319, 0xB31A, 0xB31B, 0, 0, /* 0x90 */
- 0, 0xB31C, 0xB31D, 0xB31E, 0xB31F, 0xB320, 0xB321, 0xB322, /* 0xA0 */
- 0xB323, 0xB324, 0xB325, 0xB326, 0xB327, 0xB328, 0xB329, 0xB32A, /* 0xA0 */
- 0xB32B, 0xB32C, 0, 0xB32D, 0xB32E, 0xB32F, 0xB330, 0xB331, /* 0xB0 */
- 0xB332, 0xB333, 0xB334, 0xB335, 0xB336, 0xB337, 0, 0, /* 0xB0 */
- 0, 0xB338, 0xB339, 0xB33A, 0xB33B, 0xB33C, 0xB33D, 0xB33E, /* 0xC0 */
- 0xB33F, 0xB340, 0xB341, 0xB342, 0xB343, 0xB344, 0xB345, 0xB346, /* 0xC0 */
- 0xB347, 0xB348, 0, 0xB349, 0xB34A, 0xB34B, 0xB34C, 0xB34D, /* 0xD0 */
- 0xB34E, 0xB34F, 0xB350, 0xB351, 0xB352, 0xB353, 0, 0, /* 0xD0 */
- 0, 0xB354, 0xB355, 0xB356, 0xB357, 0xB358, 0xB359, 0xB35A, /* 0xE0 */
- 0xB35B, 0xB35C, 0xB35D, 0xB35E, 0xB35F, 0xB360, 0xB361, 0xB362, /* 0xE0 */
- 0xB363, 0xB364, 0, 0xB365, 0xB366, 0xB367, 0xB368, 0xB369, /* 0xF0 */
- 0xB36A, 0xB36B, 0xB36C, 0xB36D, 0xB36E, 0xB36F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_95[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB370, 0xB371, 0xB372, 0xB373, 0xB374, 0xB375, 0xB376, /* 0x40 */
- 0xB377, 0xB378, 0xB379, 0xB37A, 0xB37B, 0xB37C, 0xB37D, 0xB37E, /* 0x40 */
- 0xB37F, 0xB380, 0, 0xB381, 0xB382, 0xB383, 0xB384, 0xB385, /* 0x50 */
- 0xB386, 0xB387, 0xB388, 0xB389, 0xB38A, 0xB38B, 0, 0, /* 0x50 */
- 0, 0xB38C, 0xB38D, 0xB38E, 0xB38F, 0xB390, 0xB391, 0xB392, /* 0x60 */
- 0xB393, 0xB394, 0xB395, 0xB396, 0xB397, 0xB398, 0xB399, 0xB39A, /* 0x60 */
- 0xB39B, 0xB39C, 0, 0xB39D, 0xB39E, 0xB39F, 0xB3A0, 0xB3A1, /* 0x70 */
- 0xB3A2, 0xB3A3, 0xB3A4, 0xB3A5, 0xB3A6, 0xB3A7, 0, 0, /* 0x70 */
- 0, 0xB3A8, 0xB3A9, 0xB3AA, 0xB3AB, 0xB3AC, 0xB3AD, 0xB3AE, /* 0x80 */
- 0xB3AF, 0xB3B0, 0xB3B1, 0xB3B2, 0xB3B3, 0xB3B4, 0xB3B5, 0xB3B6, /* 0x80 */
- 0xB3B7, 0xB3B8, 0, 0xB3B9, 0xB3BA, 0xB3BB, 0xB3BC, 0xB3BD, /* 0x90 */
- 0xB3BE, 0xB3BF, 0xB3C0, 0xB3C1, 0xB3C2, 0xB3C3, 0, 0, /* 0x90 */
- 0, 0xB3C4, 0xB3C5, 0xB3C6, 0xB3C7, 0xB3C8, 0xB3C9, 0xB3CA, /* 0xA0 */
- 0xB3CB, 0xB3CC, 0xB3CD, 0xB3CE, 0xB3CF, 0xB3D0, 0xB3D1, 0xB3D2, /* 0xA0 */
- 0xB3D3, 0xB3D4, 0, 0xB3D5, 0xB3D6, 0xB3D7, 0xB3D8, 0xB3D9, /* 0xB0 */
- 0xB3DA, 0xB3DB, 0xB3DC, 0xB3DD, 0xB3DE, 0xB3DF, 0, 0, /* 0xB0 */
- 0, 0xB3E0, 0xB3E1, 0xB3E2, 0xB3E3, 0xB3E4, 0xB3E5, 0xB3E6, /* 0xC0 */
- 0xB3E7, 0xB3E8, 0xB3E9, 0xB3EA, 0xB3EB, 0xB3EC, 0xB3ED, 0xB3EE, /* 0xC0 */
- 0xB3EF, 0xB3F0, 0, 0xB3F1, 0xB3F2, 0xB3F3, 0xB3F4, 0xB3F5, /* 0xD0 */
- 0xB3F6, 0xB3F7, 0xB3F8, 0xB3F9, 0xB3FA, 0xB3FB, 0, 0, /* 0xD0 */
- 0, 0xB3FC, 0xB3FD, 0xB3FE, 0xB3FF, 0xB400, 0xB401, 0xB402, /* 0xE0 */
- 0xB403, 0xB404, 0xB405, 0xB406, 0xB407, 0xB408, 0xB409, 0xB40A, /* 0xE0 */
- 0xB40B, 0xB40C, 0, 0xB40D, 0xB40E, 0xB40F, 0xB410, 0xB411, /* 0xF0 */
- 0xB412, 0xB413, 0xB414, 0xB415, 0xB416, 0xB417 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_96[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB418, 0xB419, 0xB41A, 0xB41B, 0xB41C, 0xB41D, 0xB41E, /* 0x40 */
- 0xB41F, 0xB420, 0xB421, 0xB422, 0xB423, 0xB424, 0xB425, 0xB426, /* 0x40 */
- 0xB427, 0xB428, 0, 0xB429, 0xB42A, 0xB42B, 0xB42C, 0xB42D, /* 0x50 */
- 0xB42E, 0xB42F, 0xB430, 0xB431, 0xB432, 0xB433, 0, 0, /* 0x50 */
- 0, 0xB434, 0xB435, 0xB436, 0xB437, 0xB438, 0xB439, 0xB43A, /* 0x60 */
- 0xB43B, 0xB43C, 0xB43D, 0xB43E, 0xB43F, 0xB440, 0xB441, 0xB442, /* 0x60 */
- 0xB443, 0xB444, 0, 0xB445, 0xB446, 0xB447, 0xB448, 0xB449, /* 0x70 */
- 0xB44A, 0xB44B, 0xB44C, 0xB44D, 0xB44E, 0xB44F, 0, 0, /* 0x70 */
- 0, 0xB450, 0xB451, 0xB452, 0xB453, 0xB454, 0xB455, 0xB456, /* 0x80 */
- 0xB457, 0xB458, 0xB459, 0xB45A, 0xB45B, 0xB45C, 0xB45D, 0xB45E, /* 0x80 */
- 0xB45F, 0xB460, 0, 0xB461, 0xB462, 0xB463, 0xB464, 0xB465, /* 0x90 */
- 0xB466, 0xB467, 0xB468, 0xB469, 0xB46A, 0xB46B, 0, 0, /* 0x90 */
- 0, 0xB46C, 0xB46D, 0xB46E, 0xB46F, 0xB470, 0xB471, 0xB472, /* 0xA0 */
- 0xB473, 0xB474, 0xB475, 0xB476, 0xB477, 0xB478, 0xB479, 0xB47A, /* 0xA0 */
- 0xB47B, 0xB47C, 0, 0xB47D, 0xB47E, 0xB47F, 0xB480, 0xB481, /* 0xB0 */
- 0xB482, 0xB483, 0xB484, 0xB485, 0xB486, 0xB487, 0, 0, /* 0xB0 */
- 0, 0xB488, 0xB489, 0xB48A, 0xB48B, 0xB48C, 0xB48D, 0xB48E, /* 0xC0 */
- 0xB48F, 0xB490, 0xB491, 0xB492, 0xB493, 0xB494, 0xB495, 0xB496, /* 0xC0 */
- 0xB497, 0xB498, 0, 0xB499, 0xB49A, 0xB49B, 0xB49C, 0xB49D, /* 0xD0 */
- 0xB49E, 0xB49F, 0xB4A0, 0xB4A1, 0xB4A2, 0xB4A3, 0, 0, /* 0xD0 */
- 0, 0xB4A4, 0xB4A5, 0xB4A6, 0xB4A7, 0xB4A8, 0xB4A9, 0xB4AA, /* 0xE0 */
- 0xB4AB, 0xB4AC, 0xB4AD, 0xB4AE, 0xB4AF, 0xB4B0, 0xB4B1, 0xB4B2, /* 0xE0 */
- 0xB4B3, 0xB4B4, 0, 0xB4B5, 0xB4B6, 0xB4B7, 0xB4B8, 0xB4B9, /* 0xF0 */
- 0xB4BA, 0xB4BB, 0xB4BC, 0xB4BD, 0xB4BE, 0xB4BF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_97[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB4C0, 0xB4C1, 0xB4C2, 0xB4C3, 0xB4C4, 0xB4C5, 0xB4C6, /* 0x40 */
- 0xB4C7, 0xB4C8, 0xB4C9, 0xB4CA, 0xB4CB, 0xB4CC, 0xB4CD, 0xB4CE, /* 0x40 */
- 0xB4CF, 0xB4D0, 0, 0xB4D1, 0xB4D2, 0xB4D3, 0xB4D4, 0xB4D5, /* 0x50 */
- 0xB4D6, 0xB4D7, 0xB4D8, 0xB4D9, 0xB4DA, 0xB4DB, 0, 0, /* 0x50 */
- 0, 0xB4DC, 0xB4DD, 0xB4DE, 0xB4DF, 0xB4E0, 0xB4E1, 0xB4E2, /* 0x60 */
- 0xB4E3, 0xB4E4, 0xB4E5, 0xB4E6, 0xB4E7, 0xB4E8, 0xB4E9, 0xB4EA, /* 0x60 */
- 0xB4EB, 0xB4EC, 0, 0xB4ED, 0xB4EE, 0xB4EF, 0xB4F0, 0xB4F1, /* 0x70 */
- 0xB4F2, 0xB4F3, 0xB4F4, 0xB4F5, 0xB4F6, 0xB4F7, 0, 0, /* 0x70 */
- 0, 0xB4F8, 0xB4F9, 0xB4FA, 0xB4FB, 0xB4FC, 0xB4FD, 0xB4FE, /* 0x80 */
- 0xB4FF, 0xB500, 0xB501, 0xB502, 0xB503, 0xB504, 0xB505, 0xB506, /* 0x80 */
- 0xB507, 0xB508, 0, 0xB509, 0xB50A, 0xB50B, 0xB50C, 0xB50D, /* 0x90 */
- 0xB50E, 0xB50F, 0xB510, 0xB511, 0xB512, 0xB513, 0, 0, /* 0x90 */
- 0, 0xB514, 0xB515, 0xB516, 0xB517, 0xB518, 0xB519, 0xB51A, /* 0xA0 */
- 0xB51B, 0xB51C, 0xB51D, 0xB51E, 0xB51F, 0xB520, 0xB521, 0xB522, /* 0xA0 */
- 0xB523, 0xB524, 0, 0xB525, 0xB526, 0xB527, 0xB528, 0xB529, /* 0xB0 */
- 0xB52A, 0xB52B, 0xB52C, 0xB52D, 0xB52E, 0xB52F /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_98[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3138, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xB530, 0xB531, 0xB532, 0xB533, 0xB534, 0xB535, 0xB536, /* 0x60 */
- 0xB537, 0xB538, 0xB539, 0xB53A, 0xB53B, 0xB53C, 0xB53D, 0xB53E, /* 0x60 */
- 0xB53F, 0xB540, 0, 0xB541, 0xB542, 0xB543, 0xB544, 0xB545, /* 0x70 */
- 0xB546, 0xB547, 0xB548, 0xB549, 0xB54A, 0xB54B, 0, 0, /* 0x70 */
- 0, 0xB54C, 0xB54D, 0xB54E, 0xB54F, 0xB550, 0xB551, 0xB552, /* 0x80 */
- 0xB553, 0xB554, 0xB555, 0xB556, 0xB557, 0xB558, 0xB559, 0xB55A, /* 0x80 */
- 0xB55B, 0xB55C, 0, 0xB55D, 0xB55E, 0xB55F, 0xB560, 0xB561, /* 0x90 */
- 0xB562, 0xB563, 0xB564, 0xB565, 0xB566, 0xB567, 0, 0, /* 0x90 */
- 0, 0xB568, 0xB569, 0xB56A, 0xB56B, 0xB56C, 0xB56D, 0xB56E, /* 0xA0 */
- 0xB56F, 0xB570, 0xB571, 0xB572, 0xB573, 0xB574, 0xB575, 0xB576, /* 0xA0 */
- 0xB577, 0xB578, 0, 0xB579, 0xB57A, 0xB57B, 0xB57C, 0xB57D, /* 0xB0 */
- 0xB57E, 0xB57F, 0xB580, 0xB581, 0xB582, 0xB583, 0, 0, /* 0xB0 */
- 0, 0xB584, 0xB585, 0xB586, 0xB587, 0xB588, 0xB589, 0xB58A, /* 0xC0 */
- 0xB58B, 0xB58C, 0xB58D, 0xB58E, 0xB58F, 0xB590, 0xB591, 0xB592, /* 0xC0 */
- 0xB593, 0xB594, 0, 0xB595, 0xB596, 0xB597, 0xB598, 0xB599, /* 0xD0 */
- 0xB59A, 0xB59B, 0xB59C, 0xB59D, 0xB59E, 0xB59F, 0, 0, /* 0xD0 */
- 0, 0xB5A0, 0xB5A1, 0xB5A2, 0xB5A3, 0xB5A4, 0xB5A5, 0xB5A6, /* 0xE0 */
- 0xB5A7, 0xB5A8, 0xB5A9, 0xB5AA, 0xB5AB, 0xB5AC, 0xB5AD, 0xB5AE, /* 0xE0 */
- 0xB5AF, 0xB5B0, 0, 0xB5B1, 0xB5B2, 0xB5B3, 0xB5B4, 0xB5B5, /* 0xF0 */
- 0xB5B6, 0xB5B7, 0xB5B8, 0xB5B9, 0xB5BA, 0xB5BB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_99[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB5BC, 0xB5BD, 0xB5BE, 0xB5BF, 0xB5C0, 0xB5C1, 0xB5C2, /* 0x40 */
- 0xB5C3, 0xB5C4, 0xB5C5, 0xB5C6, 0xB5C7, 0xB5C8, 0xB5C9, 0xB5CA, /* 0x40 */
- 0xB5CB, 0xB5CC, 0, 0xB5CD, 0xB5CE, 0xB5CF, 0xB5D0, 0xB5D1, /* 0x50 */
- 0xB5D2, 0xB5D3, 0xB5D4, 0xB5D5, 0xB5D6, 0xB5D7, 0, 0, /* 0x50 */
- 0, 0xB5D8, 0xB5D9, 0xB5DA, 0xB5DB, 0xB5DC, 0xB5DD, 0xB5DE, /* 0x60 */
- 0xB5DF, 0xB5E0, 0xB5E1, 0xB5E2, 0xB5E3, 0xB5E4, 0xB5E5, 0xB5E6, /* 0x60 */
- 0xB5E7, 0xB5E8, 0, 0xB5E9, 0xB5EA, 0xB5EB, 0xB5EC, 0xB5ED, /* 0x70 */
- 0xB5EE, 0xB5EF, 0xB5F0, 0xB5F1, 0xB5F2, 0xB5F3, 0, 0, /* 0x70 */
- 0, 0xB5F4, 0xB5F5, 0xB5F6, 0xB5F7, 0xB5F8, 0xB5F9, 0xB5FA, /* 0x80 */
- 0xB5FB, 0xB5FC, 0xB5FD, 0xB5FE, 0xB5FF, 0xB600, 0xB601, 0xB602, /* 0x80 */
- 0xB603, 0xB604, 0, 0xB605, 0xB606, 0xB607, 0xB608, 0xB609, /* 0x90 */
- 0xB60A, 0xB60B, 0xB60C, 0xB60D, 0xB60E, 0xB60F, 0, 0, /* 0x90 */
- 0, 0xB610, 0xB611, 0xB612, 0xB613, 0xB614, 0xB615, 0xB616, /* 0xA0 */
- 0xB617, 0xB618, 0xB619, 0xB61A, 0xB61B, 0xB61C, 0xB61D, 0xB61E, /* 0xA0 */
- 0xB61F, 0xB620, 0, 0xB621, 0xB622, 0xB623, 0xB624, 0xB625, /* 0xB0 */
- 0xB626, 0xB627, 0xB628, 0xB629, 0xB62A, 0xB62B, 0, 0, /* 0xB0 */
- 0, 0xB62C, 0xB62D, 0xB62E, 0xB62F, 0xB630, 0xB631, 0xB632, /* 0xC0 */
- 0xB633, 0xB634, 0xB635, 0xB636, 0xB637, 0xB638, 0xB639, 0xB63A, /* 0xC0 */
- 0xB63B, 0xB63C, 0, 0xB63D, 0xB63E, 0xB63F, 0xB640, 0xB641, /* 0xD0 */
- 0xB642, 0xB643, 0xB644, 0xB645, 0xB646, 0xB647, 0, 0, /* 0xD0 */
- 0, 0xB648, 0xB649, 0xB64A, 0xB64B, 0xB64C, 0xB64D, 0xB64E, /* 0xE0 */
- 0xB64F, 0xB650, 0xB651, 0xB652, 0xB653, 0xB654, 0xB655, 0xB656, /* 0xE0 */
- 0xB657, 0xB658, 0, 0xB659, 0xB65A, 0xB65B, 0xB65C, 0xB65D, /* 0xF0 */
- 0xB65E, 0xB65F, 0xB660, 0xB661, 0xB662, 0xB663 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_9A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB664, 0xB665, 0xB666, 0xB667, 0xB668, 0xB669, 0xB66A, /* 0x40 */
- 0xB66B, 0xB66C, 0xB66D, 0xB66E, 0xB66F, 0xB670, 0xB671, 0xB672, /* 0x40 */
- 0xB673, 0xB674, 0, 0xB675, 0xB676, 0xB677, 0xB678, 0xB679, /* 0x50 */
- 0xB67A, 0xB67B, 0xB67C, 0xB67D, 0xB67E, 0xB67F, 0, 0, /* 0x50 */
- 0, 0xB680, 0xB681, 0xB682, 0xB683, 0xB684, 0xB685, 0xB686, /* 0x60 */
- 0xB687, 0xB688, 0xB689, 0xB68A, 0xB68B, 0xB68C, 0xB68D, 0xB68E, /* 0x60 */
- 0xB68F, 0xB690, 0, 0xB691, 0xB692, 0xB693, 0xB694, 0xB695, /* 0x70 */
- 0xB696, 0xB697, 0xB698, 0xB699, 0xB69A, 0xB69B, 0, 0, /* 0x70 */
- 0, 0xB69C, 0xB69D, 0xB69E, 0xB69F, 0xB6A0, 0xB6A1, 0xB6A2, /* 0x80 */
- 0xB6A3, 0xB6A4, 0xB6A5, 0xB6A6, 0xB6A7, 0xB6A8, 0xB6A9, 0xB6AA, /* 0x80 */
- 0xB6AB, 0xB6AC, 0, 0xB6AD, 0xB6AE, 0xB6AF, 0xB6B0, 0xB6B1, /* 0x90 */
- 0xB6B2, 0xB6B3, 0xB6B4, 0xB6B5, 0xB6B6, 0xB6B7, 0, 0, /* 0x90 */
- 0, 0xB6B8, 0xB6B9, 0xB6BA, 0xB6BB, 0xB6BC, 0xB6BD, 0xB6BE, /* 0xA0 */
- 0xB6BF, 0xB6C0, 0xB6C1, 0xB6C2, 0xB6C3, 0xB6C4, 0xB6C5, 0xB6C6, /* 0xA0 */
- 0xB6C7, 0xB6C8, 0, 0xB6C9, 0xB6CA, 0xB6CB, 0xB6CC, 0xB6CD, /* 0xB0 */
- 0xB6CE, 0xB6CF, 0xB6D0, 0xB6D1, 0xB6D2, 0xB6D3, 0, 0, /* 0xB0 */
- 0, 0xB6D4, 0xB6D5, 0xB6D6, 0xB6D7, 0xB6D8, 0xB6D9, 0xB6DA, /* 0xC0 */
- 0xB6DB, 0xB6DC, 0xB6DD, 0xB6DE, 0xB6DF, 0xB6E0, 0xB6E1, 0xB6E2, /* 0xC0 */
- 0xB6E3, 0xB6E4, 0, 0xB6E5, 0xB6E6, 0xB6E7, 0xB6E8, 0xB6E9, /* 0xD0 */
- 0xB6EA, 0xB6EB, 0xB6EC, 0xB6ED, 0xB6EE, 0xB6EF, 0, 0, /* 0xD0 */
- 0, 0xB6F0, 0xB6F1, 0xB6F2, 0xB6F3, 0xB6F4, 0xB6F5, 0xB6F6, /* 0xE0 */
- 0xB6F7, 0xB6F8, 0xB6F9, 0xB6FA, 0xB6FB, 0xB6FC, 0xB6FD, 0xB6FE, /* 0xE0 */
- 0xB6FF, 0xB700, 0, 0xB701, 0xB702, 0xB703, 0xB704, 0xB705, /* 0xF0 */
- 0xB706, 0xB707, 0xB708, 0xB709, 0xB70A, 0xB70B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_9B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB70C, 0xB70D, 0xB70E, 0xB70F, 0xB710, 0xB711, 0xB712, /* 0x40 */
- 0xB713, 0xB714, 0xB715, 0xB716, 0xB717, 0xB718, 0xB719, 0xB71A, /* 0x40 */
- 0xB71B, 0xB71C, 0, 0xB71D, 0xB71E, 0xB71F, 0xB720, 0xB721, /* 0x50 */
- 0xB722, 0xB723, 0xB724, 0xB725, 0xB726, 0xB727, 0, 0, /* 0x50 */
- 0, 0xB728, 0xB729, 0xB72A, 0xB72B, 0xB72C, 0xB72D, 0xB72E, /* 0x60 */
- 0xB72F, 0xB730, 0xB731, 0xB732, 0xB733, 0xB734, 0xB735, 0xB736, /* 0x60 */
- 0xB737, 0xB738, 0, 0xB739, 0xB73A, 0xB73B, 0xB73C, 0xB73D, /* 0x70 */
- 0xB73E, 0xB73F, 0xB740, 0xB741, 0xB742, 0xB743, 0, 0, /* 0x70 */
- 0, 0xB744, 0xB745, 0xB746, 0xB747, 0xB748, 0xB749, 0xB74A, /* 0x80 */
- 0xB74B, 0xB74C, 0xB74D, 0xB74E, 0xB74F, 0xB750, 0xB751, 0xB752, /* 0x80 */
- 0xB753, 0xB754, 0, 0xB755, 0xB756, 0xB757, 0xB758, 0xB759, /* 0x90 */
- 0xB75A, 0xB75B, 0xB75C, 0xB75D, 0xB75E, 0xB75F, 0, 0, /* 0x90 */
- 0, 0xB760, 0xB761, 0xB762, 0xB763, 0xB764, 0xB765, 0xB766, /* 0xA0 */
- 0xB767, 0xB768, 0xB769, 0xB76A, 0xB76B, 0xB76C, 0xB76D, 0xB76E, /* 0xA0 */
- 0xB76F, 0xB770, 0, 0xB771, 0xB772, 0xB773, 0xB774, 0xB775, /* 0xB0 */
- 0xB776, 0xB777, 0xB778, 0xB779, 0xB77A, 0xB77B /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_9C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3139, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xB77C, 0xB77D, 0xB77E, 0xB77F, 0xB780, 0xB781, 0xB782, /* 0x60 */
- 0xB783, 0xB784, 0xB785, 0xB786, 0xB787, 0xB788, 0xB789, 0xB78A, /* 0x60 */
- 0xB78B, 0xB78C, 0, 0xB78D, 0xB78E, 0xB78F, 0xB790, 0xB791, /* 0x70 */
- 0xB792, 0xB793, 0xB794, 0xB795, 0xB796, 0xB797, 0, 0, /* 0x70 */
- 0, 0xB798, 0xB799, 0xB79A, 0xB79B, 0xB79C, 0xB79D, 0xB79E, /* 0x80 */
- 0xB79F, 0xB7A0, 0xB7A1, 0xB7A2, 0xB7A3, 0xB7A4, 0xB7A5, 0xB7A6, /* 0x80 */
- 0xB7A7, 0xB7A8, 0, 0xB7A9, 0xB7AA, 0xB7AB, 0xB7AC, 0xB7AD, /* 0x90 */
- 0xB7AE, 0xB7AF, 0xB7B0, 0xB7B1, 0xB7B2, 0xB7B3, 0, 0, /* 0x90 */
- 0, 0xB7B4, 0xB7B5, 0xB7B6, 0xB7B7, 0xB7B8, 0xB7B9, 0xB7BA, /* 0xA0 */
- 0xB7BB, 0xB7BC, 0xB7BD, 0xB7BE, 0xB7BF, 0xB7C0, 0xB7C1, 0xB7C2, /* 0xA0 */
- 0xB7C3, 0xB7C4, 0, 0xB7C5, 0xB7C6, 0xB7C7, 0xB7C8, 0xB7C9, /* 0xB0 */
- 0xB7CA, 0xB7CB, 0xB7CC, 0xB7CD, 0xB7CE, 0xB7CF, 0, 0, /* 0xB0 */
- 0, 0xB7D0, 0xB7D1, 0xB7D2, 0xB7D3, 0xB7D4, 0xB7D5, 0xB7D6, /* 0xC0 */
- 0xB7D7, 0xB7D8, 0xB7D9, 0xB7DA, 0xB7DB, 0xB7DC, 0xB7DD, 0xB7DE, /* 0xC0 */
- 0xB7DF, 0xB7E0, 0, 0xB7E1, 0xB7E2, 0xB7E3, 0xB7E4, 0xB7E5, /* 0xD0 */
- 0xB7E6, 0xB7E7, 0xB7E8, 0xB7E9, 0xB7EA, 0xB7EB, 0, 0, /* 0xD0 */
- 0, 0xB7EC, 0xB7ED, 0xB7EE, 0xB7EF, 0xB7F0, 0xB7F1, 0xB7F2, /* 0xE0 */
- 0xB7F3, 0xB7F4, 0xB7F5, 0xB7F6, 0xB7F7, 0xB7F8, 0xB7F9, 0xB7FA, /* 0xE0 */
- 0xB7FB, 0xB7FC, 0, 0xB7FD, 0xB7FE, 0xB7FF, 0xB800, 0xB801, /* 0xF0 */
- 0xB802, 0xB803, 0xB804, 0xB805, 0xB806, 0xB807 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_9D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB808, 0xB809, 0xB80A, 0xB80B, 0xB80C, 0xB80D, 0xB80E, /* 0x40 */
- 0xB80F, 0xB810, 0xB811, 0xB812, 0xB813, 0xB814, 0xB815, 0xB816, /* 0x40 */
- 0xB817, 0xB818, 0, 0xB819, 0xB81A, 0xB81B, 0xB81C, 0xB81D, /* 0x50 */
- 0xB81E, 0xB81F, 0xB820, 0xB821, 0xB822, 0xB823, 0, 0, /* 0x50 */
- 0, 0xB824, 0xB825, 0xB826, 0xB827, 0xB828, 0xB829, 0xB82A, /* 0x60 */
- 0xB82B, 0xB82C, 0xB82D, 0xB82E, 0xB82F, 0xB830, 0xB831, 0xB832, /* 0x60 */
- 0xB833, 0xB834, 0, 0xB835, 0xB836, 0xB837, 0xB838, 0xB839, /* 0x70 */
- 0xB83A, 0xB83B, 0xB83C, 0xB83D, 0xB83E, 0xB83F, 0, 0, /* 0x70 */
- 0, 0xB840, 0xB841, 0xB842, 0xB843, 0xB844, 0xB845, 0xB846, /* 0x80 */
- 0xB847, 0xB848, 0xB849, 0xB84A, 0xB84B, 0xB84C, 0xB84D, 0xB84E, /* 0x80 */
- 0xB84F, 0xB850, 0, 0xB851, 0xB852, 0xB853, 0xB854, 0xB855, /* 0x90 */
- 0xB856, 0xB857, 0xB858, 0xB859, 0xB85A, 0xB85B, 0, 0, /* 0x90 */
- 0, 0xB85C, 0xB85D, 0xB85E, 0xB85F, 0xB860, 0xB861, 0xB862, /* 0xA0 */
- 0xB863, 0xB864, 0xB865, 0xB866, 0xB867, 0xB868, 0xB869, 0xB86A, /* 0xA0 */
- 0xB86B, 0xB86C, 0, 0xB86D, 0xB86E, 0xB86F, 0xB870, 0xB871, /* 0xB0 */
- 0xB872, 0xB873, 0xB874, 0xB875, 0xB876, 0xB877, 0, 0, /* 0xB0 */
- 0, 0xB878, 0xB879, 0xB87A, 0xB87B, 0xB87C, 0xB87D, 0xB87E, /* 0xC0 */
- 0xB87F, 0xB880, 0xB881, 0xB882, 0xB883, 0xB884, 0xB885, 0xB886, /* 0xC0 */
- 0xB887, 0xB888, 0, 0xB889, 0xB88A, 0xB88B, 0xB88C, 0xB88D, /* 0xD0 */
- 0xB88E, 0xB88F, 0xB890, 0xB891, 0xB892, 0xB893, 0, 0, /* 0xD0 */
- 0, 0xB894, 0xB895, 0xB896, 0xB897, 0xB898, 0xB899, 0xB89A, /* 0xE0 */
- 0xB89B, 0xB89C, 0xB89D, 0xB89E, 0xB89F, 0xB8A0, 0xB8A1, 0xB8A2, /* 0xE0 */
- 0xB8A3, 0xB8A4, 0, 0xB8A5, 0xB8A6, 0xB8A7, 0xB8A8, 0xB8A9, /* 0xF0 */
- 0xB8AA, 0xB8AB, 0xB8AC, 0xB8AD, 0xB8AE, 0xB8AF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_9E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB8B0, 0xB8B1, 0xB8B2, 0xB8B3, 0xB8B4, 0xB8B5, 0xB8B6, /* 0x40 */
- 0xB8B7, 0xB8B8, 0xB8B9, 0xB8BA, 0xB8BB, 0xB8BC, 0xB8BD, 0xB8BE, /* 0x40 */
- 0xB8BF, 0xB8C0, 0, 0xB8C1, 0xB8C2, 0xB8C3, 0xB8C4, 0xB8C5, /* 0x50 */
- 0xB8C6, 0xB8C7, 0xB8C8, 0xB8C9, 0xB8CA, 0xB8CB, 0, 0, /* 0x50 */
- 0, 0xB8CC, 0xB8CD, 0xB8CE, 0xB8CF, 0xB8D0, 0xB8D1, 0xB8D2, /* 0x60 */
- 0xB8D3, 0xB8D4, 0xB8D5, 0xB8D6, 0xB8D7, 0xB8D8, 0xB8D9, 0xB8DA, /* 0x60 */
- 0xB8DB, 0xB8DC, 0, 0xB8DD, 0xB8DE, 0xB8DF, 0xB8E0, 0xB8E1, /* 0x70 */
- 0xB8E2, 0xB8E3, 0xB8E4, 0xB8E5, 0xB8E6, 0xB8E7, 0, 0, /* 0x70 */
- 0, 0xB8E8, 0xB8E9, 0xB8EA, 0xB8EB, 0xB8EC, 0xB8ED, 0xB8EE, /* 0x80 */
- 0xB8EF, 0xB8F0, 0xB8F1, 0xB8F2, 0xB8F3, 0xB8F4, 0xB8F5, 0xB8F6, /* 0x80 */
- 0xB8F7, 0xB8F8, 0, 0xB8F9, 0xB8FA, 0xB8FB, 0xB8FC, 0xB8FD, /* 0x90 */
- 0xB8FE, 0xB8FF, 0xB900, 0xB901, 0xB902, 0xB903, 0, 0, /* 0x90 */
- 0, 0xB904, 0xB905, 0xB906, 0xB907, 0xB908, 0xB909, 0xB90A, /* 0xA0 */
- 0xB90B, 0xB90C, 0xB90D, 0xB90E, 0xB90F, 0xB910, 0xB911, 0xB912, /* 0xA0 */
- 0xB913, 0xB914, 0, 0xB915, 0xB916, 0xB917, 0xB918, 0xB919, /* 0xB0 */
- 0xB91A, 0xB91B, 0xB91C, 0xB91D, 0xB91E, 0xB91F, 0, 0, /* 0xB0 */
- 0, 0xB920, 0xB921, 0xB922, 0xB923, 0xB924, 0xB925, 0xB926, /* 0xC0 */
- 0xB927, 0xB928, 0xB929, 0xB92A, 0xB92B, 0xB92C, 0xB92D, 0xB92E, /* 0xC0 */
- 0xB92F, 0xB930, 0, 0xB931, 0xB932, 0xB933, 0xB934, 0xB935, /* 0xD0 */
- 0xB936, 0xB937, 0xB938, 0xB939, 0xB93A, 0xB93B, 0, 0, /* 0xD0 */
- 0, 0xB93C, 0xB93D, 0xB93E, 0xB93F, 0xB940, 0xB941, 0xB942, /* 0xE0 */
- 0xB943, 0xB944, 0xB945, 0xB946, 0xB947, 0xB948, 0xB949, 0xB94A, /* 0xE0 */
- 0xB94B, 0xB94C, 0, 0xB94D, 0xB94E, 0xB94F, 0xB950, 0xB951, /* 0xF0 */
- 0xB952, 0xB953, 0xB954, 0xB955, 0xB956, 0xB957 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_9F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB958, 0xB959, 0xB95A, 0xB95B, 0xB95C, 0xB95D, 0xB95E, /* 0x40 */
- 0xB95F, 0xB960, 0xB961, 0xB962, 0xB963, 0xB964, 0xB965, 0xB966, /* 0x40 */
- 0xB967, 0xB968, 0, 0xB969, 0xB96A, 0xB96B, 0xB96C, 0xB96D, /* 0x50 */
- 0xB96E, 0xB96F, 0xB970, 0xB971, 0xB972, 0xB973, 0, 0, /* 0x50 */
- 0, 0xB974, 0xB975, 0xB976, 0xB977, 0xB978, 0xB979, 0xB97A, /* 0x60 */
- 0xB97B, 0xB97C, 0xB97D, 0xB97E, 0xB97F, 0xB980, 0xB981, 0xB982, /* 0x60 */
- 0xB983, 0xB984, 0, 0xB985, 0xB986, 0xB987, 0xB988, 0xB989, /* 0x70 */
- 0xB98A, 0xB98B, 0xB98C, 0xB98D, 0xB98E, 0xB98F, 0, 0, /* 0x70 */
- 0, 0xB990, 0xB991, 0xB992, 0xB993, 0xB994, 0xB995, 0xB996, /* 0x80 */
- 0xB997, 0xB998, 0xB999, 0xB99A, 0xB99B, 0xB99C, 0xB99D, 0xB99E, /* 0x80 */
- 0xB99F, 0xB9A0, 0, 0xB9A1, 0xB9A2, 0xB9A3, 0xB9A4, 0xB9A5, /* 0x90 */
- 0xB9A6, 0xB9A7, 0xB9A8, 0xB9A9, 0xB9AA, 0xB9AB, 0, 0, /* 0x90 */
- 0, 0xB9AC, 0xB9AD, 0xB9AE, 0xB9AF, 0xB9B0, 0xB9B1, 0xB9B2, /* 0xA0 */
- 0xB9B3, 0xB9B4, 0xB9B5, 0xB9B6, 0xB9B7, 0xB9B8, 0xB9B9, 0xB9BA, /* 0xA0 */
- 0xB9BB, 0xB9BC, 0, 0xB9BD, 0xB9BE, 0xB9BF, 0xB9C0, 0xB9C1, /* 0xB0 */
- 0xB9C2, 0xB9C3, 0xB9C4, 0xB9C5, 0xB9C6, 0xB9C7 /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_A0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3141, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xB9C8, 0xB9C9, 0xB9CA, 0xB9CB, 0xB9CC, 0xB9CD, 0xB9CE, /* 0x60 */
- 0xB9CF, 0xB9D0, 0xB9D1, 0xB9D2, 0xB9D3, 0xB9D4, 0xB9D5, 0xB9D6, /* 0x60 */
- 0xB9D7, 0xB9D8, 0, 0xB9D9, 0xB9DA, 0xB9DB, 0xB9DC, 0xB9DD, /* 0x70 */
- 0xB9DE, 0xB9DF, 0xB9E0, 0xB9E1, 0xB9E2, 0xB9E3, 0, 0, /* 0x70 */
- 0, 0xB9E4, 0xB9E5, 0xB9E6, 0xB9E7, 0xB9E8, 0xB9E9, 0xB9EA, /* 0x80 */
- 0xB9EB, 0xB9EC, 0xB9ED, 0xB9EE, 0xB9EF, 0xB9F0, 0xB9F1, 0xB9F2, /* 0x80 */
- 0xB9F3, 0xB9F4, 0, 0xB9F5, 0xB9F6, 0xB9F7, 0xB9F8, 0xB9F9, /* 0x90 */
- 0xB9FA, 0xB9FB, 0xB9FC, 0xB9FD, 0xB9FE, 0xB9FF, 0, 0, /* 0x90 */
- 0, 0xBA00, 0xBA01, 0xBA02, 0xBA03, 0xBA04, 0xBA05, 0xBA06, /* 0xA0 */
- 0xBA07, 0xBA08, 0xBA09, 0xBA0A, 0xBA0B, 0xBA0C, 0xBA0D, 0xBA0E, /* 0xA0 */
- 0xBA0F, 0xBA10, 0, 0xBA11, 0xBA12, 0xBA13, 0xBA14, 0xBA15, /* 0xB0 */
- 0xBA16, 0xBA17, 0xBA18, 0xBA19, 0xBA1A, 0xBA1B, 0, 0, /* 0xB0 */
- 0, 0xBA1C, 0xBA1D, 0xBA1E, 0xBA1F, 0xBA20, 0xBA21, 0xBA22, /* 0xC0 */
- 0xBA23, 0xBA24, 0xBA25, 0xBA26, 0xBA27, 0xBA28, 0xBA29, 0xBA2A, /* 0xC0 */
- 0xBA2B, 0xBA2C, 0, 0xBA2D, 0xBA2E, 0xBA2F, 0xBA30, 0xBA31, /* 0xD0 */
- 0xBA32, 0xBA33, 0xBA34, 0xBA35, 0xBA36, 0xBA37, 0, 0, /* 0xD0 */
- 0, 0xBA38, 0xBA39, 0xBA3A, 0xBA3B, 0xBA3C, 0xBA3D, 0xBA3E, /* 0xE0 */
- 0xBA3F, 0xBA40, 0xBA41, 0xBA42, 0xBA43, 0xBA44, 0xBA45, 0xBA46, /* 0xE0 */
- 0xBA47, 0xBA48, 0, 0xBA49, 0xBA4A, 0xBA4B, 0xBA4C, 0xBA4D, /* 0xF0 */
- 0xBA4E, 0xBA4F, 0xBA50, 0xBA51, 0xBA52, 0xBA53 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_A1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBA54, 0xBA55, 0xBA56, 0xBA57, 0xBA58, 0xBA59, 0xBA5A, /* 0x40 */
- 0xBA5B, 0xBA5C, 0xBA5D, 0xBA5E, 0xBA5F, 0xBA60, 0xBA61, 0xBA62, /* 0x40 */
- 0xBA63, 0xBA64, 0, 0xBA65, 0xBA66, 0xBA67, 0xBA68, 0xBA69, /* 0x50 */
- 0xBA6A, 0xBA6B, 0xBA6C, 0xBA6D, 0xBA6E, 0xBA6F, 0, 0, /* 0x50 */
- 0, 0xBA70, 0xBA71, 0xBA72, 0xBA73, 0xBA74, 0xBA75, 0xBA76, /* 0x60 */
- 0xBA77, 0xBA78, 0xBA79, 0xBA7A, 0xBA7B, 0xBA7C, 0xBA7D, 0xBA7E, /* 0x60 */
- 0xBA7F, 0xBA80, 0, 0xBA81, 0xBA82, 0xBA83, 0xBA84, 0xBA85, /* 0x70 */
- 0xBA86, 0xBA87, 0xBA88, 0xBA89, 0xBA8A, 0xBA8B, 0, 0, /* 0x70 */
- 0, 0xBA8C, 0xBA8D, 0xBA8E, 0xBA8F, 0xBA90, 0xBA91, 0xBA92, /* 0x80 */
- 0xBA93, 0xBA94, 0xBA95, 0xBA96, 0xBA97, 0xBA98, 0xBA99, 0xBA9A, /* 0x80 */
- 0xBA9B, 0xBA9C, 0, 0xBA9D, 0xBA9E, 0xBA9F, 0xBAA0, 0xBAA1, /* 0x90 */
- 0xBAA2, 0xBAA3, 0xBAA4, 0xBAA5, 0xBAA6, 0xBAA7, 0, 0, /* 0x90 */
- 0, 0xBAA8, 0xBAA9, 0xBAAA, 0xBAAB, 0xBAAC, 0xBAAD, 0xBAAE, /* 0xA0 */
- 0xBAAF, 0xBAB0, 0xBAB1, 0xBAB2, 0xBAB3, 0xBAB4, 0xBAB5, 0xBAB6, /* 0xA0 */
- 0xBAB7, 0xBAB8, 0, 0xBAB9, 0xBABA, 0xBABB, 0xBABC, 0xBABD, /* 0xB0 */
- 0xBABE, 0xBABF, 0xBAC0, 0xBAC1, 0xBAC2, 0xBAC3, 0, 0, /* 0xB0 */
- 0, 0xBAC4, 0xBAC5, 0xBAC6, 0xBAC7, 0xBAC8, 0xBAC9, 0xBACA, /* 0xC0 */
- 0xBACB, 0xBACC, 0xBACD, 0xBACE, 0xBACF, 0xBAD0, 0xBAD1, 0xBAD2, /* 0xC0 */
- 0xBAD3, 0xBAD4, 0, 0xBAD5, 0xBAD6, 0xBAD7, 0xBAD8, 0xBAD9, /* 0xD0 */
- 0xBADA, 0xBADB, 0xBADC, 0xBADD, 0xBADE, 0xBADF, 0, 0, /* 0xD0 */
- 0, 0xBAE0, 0xBAE1, 0xBAE2, 0xBAE3, 0xBAE4, 0xBAE5, 0xBAE6, /* 0xE0 */
- 0xBAE7, 0xBAE8, 0xBAE9, 0xBAEA, 0xBAEB, 0xBAEC, 0xBAED, 0xBAEE, /* 0xE0 */
- 0xBAEF, 0xBAF0, 0, 0xBAF1, 0xBAF2, 0xBAF3, 0xBAF4, 0xBAF5, /* 0xF0 */
- 0xBAF6, 0xBAF7, 0xBAF8, 0xBAF9, 0xBAFA, 0xBAFB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_A2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBAFC, 0xBAFD, 0xBAFE, 0xBAFF, 0xBB00, 0xBB01, 0xBB02, /* 0x40 */
- 0xBB03, 0xBB04, 0xBB05, 0xBB06, 0xBB07, 0xBB08, 0xBB09, 0xBB0A, /* 0x40 */
- 0xBB0B, 0xBB0C, 0, 0xBB0D, 0xBB0E, 0xBB0F, 0xBB10, 0xBB11, /* 0x50 */
- 0xBB12, 0xBB13, 0xBB14, 0xBB15, 0xBB16, 0xBB17, 0, 0, /* 0x50 */
- 0, 0xBB18, 0xBB19, 0xBB1A, 0xBB1B, 0xBB1C, 0xBB1D, 0xBB1E, /* 0x60 */
- 0xBB1F, 0xBB20, 0xBB21, 0xBB22, 0xBB23, 0xBB24, 0xBB25, 0xBB26, /* 0x60 */
- 0xBB27, 0xBB28, 0, 0xBB29, 0xBB2A, 0xBB2B, 0xBB2C, 0xBB2D, /* 0x70 */
- 0xBB2E, 0xBB2F, 0xBB30, 0xBB31, 0xBB32, 0xBB33, 0, 0, /* 0x70 */
- 0, 0xBB34, 0xBB35, 0xBB36, 0xBB37, 0xBB38, 0xBB39, 0xBB3A, /* 0x80 */
- 0xBB3B, 0xBB3C, 0xBB3D, 0xBB3E, 0xBB3F, 0xBB40, 0xBB41, 0xBB42, /* 0x80 */
- 0xBB43, 0xBB44, 0, 0xBB45, 0xBB46, 0xBB47, 0xBB48, 0xBB49, /* 0x90 */
- 0xBB4A, 0xBB4B, 0xBB4C, 0xBB4D, 0xBB4E, 0xBB4F, 0, 0, /* 0x90 */
- 0, 0xBB50, 0xBB51, 0xBB52, 0xBB53, 0xBB54, 0xBB55, 0xBB56, /* 0xA0 */
- 0xBB57, 0xBB58, 0xBB59, 0xBB5A, 0xBB5B, 0xBB5C, 0xBB5D, 0xBB5E, /* 0xA0 */
- 0xBB5F, 0xBB60, 0, 0xBB61, 0xBB62, 0xBB63, 0xBB64, 0xBB65, /* 0xB0 */
- 0xBB66, 0xBB67, 0xBB68, 0xBB69, 0xBB6A, 0xBB6B, 0, 0, /* 0xB0 */
- 0, 0xBB6C, 0xBB6D, 0xBB6E, 0xBB6F, 0xBB70, 0xBB71, 0xBB72, /* 0xC0 */
- 0xBB73, 0xBB74, 0xBB75, 0xBB76, 0xBB77, 0xBB78, 0xBB79, 0xBB7A, /* 0xC0 */
- 0xBB7B, 0xBB7C, 0, 0xBB7D, 0xBB7E, 0xBB7F, 0xBB80, 0xBB81, /* 0xD0 */
- 0xBB82, 0xBB83, 0xBB84, 0xBB85, 0xBB86, 0xBB87, 0, 0, /* 0xD0 */
- 0, 0xBB88, 0xBB89, 0xBB8A, 0xBB8B, 0xBB8C, 0xBB8D, 0xBB8E, /* 0xE0 */
- 0xBB8F, 0xBB90, 0xBB91, 0xBB92, 0xBB93, 0xBB94, 0xBB95, 0xBB96, /* 0xE0 */
- 0xBB97, 0xBB98, 0, 0xBB99, 0xBB9A, 0xBB9B, 0xBB9C, 0xBB9D, /* 0xF0 */
- 0xBB9E, 0xBB9F, 0xBBA0, 0xBBA1, 0xBBA2, 0xBBA3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_A3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBBA4, 0xBBA5, 0xBBA6, 0xBBA7, 0xBBA8, 0xBBA9, 0xBBAA, /* 0x40 */
- 0xBBAB, 0xBBAC, 0xBBAD, 0xBBAE, 0xBBAF, 0xBBB0, 0xBBB1, 0xBBB2, /* 0x40 */
- 0xBBB3, 0xBBB4, 0, 0xBBB5, 0xBBB6, 0xBBB7, 0xBBB8, 0xBBB9, /* 0x50 */
- 0xBBBA, 0xBBBB, 0xBBBC, 0xBBBD, 0xBBBE, 0xBBBF, 0, 0, /* 0x50 */
- 0, 0xBBC0, 0xBBC1, 0xBBC2, 0xBBC3, 0xBBC4, 0xBBC5, 0xBBC6, /* 0x60 */
- 0xBBC7, 0xBBC8, 0xBBC9, 0xBBCA, 0xBBCB, 0xBBCC, 0xBBCD, 0xBBCE, /* 0x60 */
- 0xBBCF, 0xBBD0, 0, 0xBBD1, 0xBBD2, 0xBBD3, 0xBBD4, 0xBBD5, /* 0x70 */
- 0xBBD6, 0xBBD7, 0xBBD8, 0xBBD9, 0xBBDA, 0xBBDB, 0, 0, /* 0x70 */
- 0, 0xBBDC, 0xBBDD, 0xBBDE, 0xBBDF, 0xBBE0, 0xBBE1, 0xBBE2, /* 0x80 */
- 0xBBE3, 0xBBE4, 0xBBE5, 0xBBE6, 0xBBE7, 0xBBE8, 0xBBE9, 0xBBEA, /* 0x80 */
- 0xBBEB, 0xBBEC, 0, 0xBBED, 0xBBEE, 0xBBEF, 0xBBF0, 0xBBF1, /* 0x90 */
- 0xBBF2, 0xBBF3, 0xBBF4, 0xBBF5, 0xBBF6, 0xBBF7, 0, 0, /* 0x90 */
- 0, 0xBBF8, 0xBBF9, 0xBBFA, 0xBBFB, 0xBBFC, 0xBBFD, 0xBBFE, /* 0xA0 */
- 0xBBFF, 0xBC00, 0xBC01, 0xBC02, 0xBC03, 0xBC04, 0xBC05, 0xBC06, /* 0xA0 */
- 0xBC07, 0xBC08, 0, 0xBC09, 0xBC0A, 0xBC0B, 0xBC0C, 0xBC0D, /* 0xB0 */
- 0xBC0E, 0xBC0F, 0xBC10, 0xBC11, 0xBC12, 0xBC13 /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_A4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3142, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xBC14, 0xBC15, 0xBC16, 0xBC17, 0xBC18, 0xBC19, 0xBC1A, /* 0x60 */
- 0xBC1B, 0xBC1C, 0xBC1D, 0xBC1E, 0xBC1F, 0xBC20, 0xBC21, 0xBC22, /* 0x60 */
- 0xBC23, 0xBC24, 0, 0xBC25, 0xBC26, 0xBC27, 0xBC28, 0xBC29, /* 0x70 */
- 0xBC2A, 0xBC2B, 0xBC2C, 0xBC2D, 0xBC2E, 0xBC2F, 0, 0, /* 0x70 */
- 0, 0xBC30, 0xBC31, 0xBC32, 0xBC33, 0xBC34, 0xBC35, 0xBC36, /* 0x80 */
- 0xBC37, 0xBC38, 0xBC39, 0xBC3A, 0xBC3B, 0xBC3C, 0xBC3D, 0xBC3E, /* 0x80 */
- 0xBC3F, 0xBC40, 0, 0xBC41, 0xBC42, 0xBC43, 0xBC44, 0xBC45, /* 0x90 */
- 0xBC46, 0xBC47, 0xBC48, 0xBC49, 0xBC4A, 0xBC4B, 0, 0, /* 0x90 */
- 0, 0xBC4C, 0xBC4D, 0xBC4E, 0xBC4F, 0xBC50, 0xBC51, 0xBC52, /* 0xA0 */
- 0xBC53, 0xBC54, 0xBC55, 0xBC56, 0xBC57, 0xBC58, 0xBC59, 0xBC5A, /* 0xA0 */
- 0xBC5B, 0xBC5C, 0, 0xBC5D, 0xBC5E, 0xBC5F, 0xBC60, 0xBC61, /* 0xB0 */
- 0xBC62, 0xBC63, 0xBC64, 0xBC65, 0xBC66, 0xBC67, 0, 0, /* 0xB0 */
- 0, 0xBC68, 0xBC69, 0xBC6A, 0xBC6B, 0xBC6C, 0xBC6D, 0xBC6E, /* 0xC0 */
- 0xBC6F, 0xBC70, 0xBC71, 0xBC72, 0xBC73, 0xBC74, 0xBC75, 0xBC76, /* 0xC0 */
- 0xBC77, 0xBC78, 0, 0xBC79, 0xBC7A, 0xBC7B, 0xBC7C, 0xBC7D, /* 0xD0 */
- 0xBC7E, 0xBC7F, 0xBC80, 0xBC81, 0xBC82, 0xBC83, 0, 0, /* 0xD0 */
- 0, 0xBC84, 0xBC85, 0xBC86, 0xBC87, 0xBC88, 0xBC89, 0xBC8A, /* 0xE0 */
- 0xBC8B, 0xBC8C, 0xBC8D, 0xBC8E, 0xBC8F, 0xBC90, 0xBC91, 0xBC92, /* 0xE0 */
- 0xBC93, 0xBC94, 0, 0xBC95, 0xBC96, 0xBC97, 0xBC98, 0xBC99, /* 0xF0 */
- 0xBC9A, 0xBC9B, 0xBC9C, 0xBC9D, 0xBC9E, 0xBC9F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_A5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBCA0, 0xBCA1, 0xBCA2, 0xBCA3, 0xBCA4, 0xBCA5, 0xBCA6, /* 0x40 */
- 0xBCA7, 0xBCA8, 0xBCA9, 0xBCAA, 0xBCAB, 0xBCAC, 0xBCAD, 0xBCAE, /* 0x40 */
- 0xBCAF, 0xBCB0, 0, 0xBCB1, 0xBCB2, 0xBCB3, 0xBCB4, 0xBCB5, /* 0x50 */
- 0xBCB6, 0xBCB7, 0xBCB8, 0xBCB9, 0xBCBA, 0xBCBB, 0, 0, /* 0x50 */
- 0, 0xBCBC, 0xBCBD, 0xBCBE, 0xBCBF, 0xBCC0, 0xBCC1, 0xBCC2, /* 0x60 */
- 0xBCC3, 0xBCC4, 0xBCC5, 0xBCC6, 0xBCC7, 0xBCC8, 0xBCC9, 0xBCCA, /* 0x60 */
- 0xBCCB, 0xBCCC, 0, 0xBCCD, 0xBCCE, 0xBCCF, 0xBCD0, 0xBCD1, /* 0x70 */
- 0xBCD2, 0xBCD3, 0xBCD4, 0xBCD5, 0xBCD6, 0xBCD7, 0, 0, /* 0x70 */
- 0, 0xBCD8, 0xBCD9, 0xBCDA, 0xBCDB, 0xBCDC, 0xBCDD, 0xBCDE, /* 0x80 */
- 0xBCDF, 0xBCE0, 0xBCE1, 0xBCE2, 0xBCE3, 0xBCE4, 0xBCE5, 0xBCE6, /* 0x80 */
- 0xBCE7, 0xBCE8, 0, 0xBCE9, 0xBCEA, 0xBCEB, 0xBCEC, 0xBCED, /* 0x90 */
- 0xBCEE, 0xBCEF, 0xBCF0, 0xBCF1, 0xBCF2, 0xBCF3, 0, 0, /* 0x90 */
- 0, 0xBCF4, 0xBCF5, 0xBCF6, 0xBCF7, 0xBCF8, 0xBCF9, 0xBCFA, /* 0xA0 */
- 0xBCFB, 0xBCFC, 0xBCFD, 0xBCFE, 0xBCFF, 0xBD00, 0xBD01, 0xBD02, /* 0xA0 */
- 0xBD03, 0xBD04, 0, 0xBD05, 0xBD06, 0xBD07, 0xBD08, 0xBD09, /* 0xB0 */
- 0xBD0A, 0xBD0B, 0xBD0C, 0xBD0D, 0xBD0E, 0xBD0F, 0, 0, /* 0xB0 */
- 0, 0xBD10, 0xBD11, 0xBD12, 0xBD13, 0xBD14, 0xBD15, 0xBD16, /* 0xC0 */
- 0xBD17, 0xBD18, 0xBD19, 0xBD1A, 0xBD1B, 0xBD1C, 0xBD1D, 0xBD1E, /* 0xC0 */
- 0xBD1F, 0xBD20, 0, 0xBD21, 0xBD22, 0xBD23, 0xBD24, 0xBD25, /* 0xD0 */
- 0xBD26, 0xBD27, 0xBD28, 0xBD29, 0xBD2A, 0xBD2B, 0, 0, /* 0xD0 */
- 0, 0xBD2C, 0xBD2D, 0xBD2E, 0xBD2F, 0xBD30, 0xBD31, 0xBD32, /* 0xE0 */
- 0xBD33, 0xBD34, 0xBD35, 0xBD36, 0xBD37, 0xBD38, 0xBD39, 0xBD3A, /* 0xE0 */
- 0xBD3B, 0xBD3C, 0, 0xBD3D, 0xBD3E, 0xBD3F, 0xBD40, 0xBD41, /* 0xF0 */
- 0xBD42, 0xBD43, 0xBD44, 0xBD45, 0xBD46, 0xBD47 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_A6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBD48, 0xBD49, 0xBD4A, 0xBD4B, 0xBD4C, 0xBD4D, 0xBD4E, /* 0x40 */
- 0xBD4F, 0xBD50, 0xBD51, 0xBD52, 0xBD53, 0xBD54, 0xBD55, 0xBD56, /* 0x40 */
- 0xBD57, 0xBD58, 0, 0xBD59, 0xBD5A, 0xBD5B, 0xBD5C, 0xBD5D, /* 0x50 */
- 0xBD5E, 0xBD5F, 0xBD60, 0xBD61, 0xBD62, 0xBD63, 0, 0, /* 0x50 */
- 0, 0xBD64, 0xBD65, 0xBD66, 0xBD67, 0xBD68, 0xBD69, 0xBD6A, /* 0x60 */
- 0xBD6B, 0xBD6C, 0xBD6D, 0xBD6E, 0xBD6F, 0xBD70, 0xBD71, 0xBD72, /* 0x60 */
- 0xBD73, 0xBD74, 0, 0xBD75, 0xBD76, 0xBD77, 0xBD78, 0xBD79, /* 0x70 */
- 0xBD7A, 0xBD7B, 0xBD7C, 0xBD7D, 0xBD7E, 0xBD7F, 0, 0, /* 0x70 */
- 0, 0xBD80, 0xBD81, 0xBD82, 0xBD83, 0xBD84, 0xBD85, 0xBD86, /* 0x80 */
- 0xBD87, 0xBD88, 0xBD89, 0xBD8A, 0xBD8B, 0xBD8C, 0xBD8D, 0xBD8E, /* 0x80 */
- 0xBD8F, 0xBD90, 0, 0xBD91, 0xBD92, 0xBD93, 0xBD94, 0xBD95, /* 0x90 */
- 0xBD96, 0xBD97, 0xBD98, 0xBD99, 0xBD9A, 0xBD9B, 0, 0, /* 0x90 */
- 0, 0xBD9C, 0xBD9D, 0xBD9E, 0xBD9F, 0xBDA0, 0xBDA1, 0xBDA2, /* 0xA0 */
- 0xBDA3, 0xBDA4, 0xBDA5, 0xBDA6, 0xBDA7, 0xBDA8, 0xBDA9, 0xBDAA, /* 0xA0 */
- 0xBDAB, 0xBDAC, 0, 0xBDAD, 0xBDAE, 0xBDAF, 0xBDB0, 0xBDB1, /* 0xB0 */
- 0xBDB2, 0xBDB3, 0xBDB4, 0xBDB5, 0xBDB6, 0xBDB7, 0, 0, /* 0xB0 */
- 0, 0xBDB8, 0xBDB9, 0xBDBA, 0xBDBB, 0xBDBC, 0xBDBD, 0xBDBE, /* 0xC0 */
- 0xBDBF, 0xBDC0, 0xBDC1, 0xBDC2, 0xBDC3, 0xBDC4, 0xBDC5, 0xBDC6, /* 0xC0 */
- 0xBDC7, 0xBDC8, 0, 0xBDC9, 0xBDCA, 0xBDCB, 0xBDCC, 0xBDCD, /* 0xD0 */
- 0xBDCE, 0xBDCF, 0xBDD0, 0xBDD1, 0xBDD2, 0xBDD3, 0, 0, /* 0xD0 */
- 0, 0xBDD4, 0xBDD5, 0xBDD6, 0xBDD7, 0xBDD8, 0xBDD9, 0xBDDA, /* 0xE0 */
- 0xBDDB, 0xBDDC, 0xBDDD, 0xBDDE, 0xBDDF, 0xBDE0, 0xBDE1, 0xBDE2, /* 0xE0 */
- 0xBDE3, 0xBDE4, 0, 0xBDE5, 0xBDE6, 0xBDE7, 0xBDE8, 0xBDE9, /* 0xF0 */
- 0xBDEA, 0xBDEB, 0xBDEC, 0xBDED, 0xBDEE, 0xBDEF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_A7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBDF0, 0xBDF1, 0xBDF2, 0xBDF3, 0xBDF4, 0xBDF5, 0xBDF6, /* 0x40 */
- 0xBDF7, 0xBDF8, 0xBDF9, 0xBDFA, 0xBDFB, 0xBDFC, 0xBDFD, 0xBDFE, /* 0x40 */
- 0xBDFF, 0xBE00, 0, 0xBE01, 0xBE02, 0xBE03, 0xBE04, 0xBE05, /* 0x50 */
- 0xBE06, 0xBE07, 0xBE08, 0xBE09, 0xBE0A, 0xBE0B, 0, 0, /* 0x50 */
- 0, 0xBE0C, 0xBE0D, 0xBE0E, 0xBE0F, 0xBE10, 0xBE11, 0xBE12, /* 0x60 */
- 0xBE13, 0xBE14, 0xBE15, 0xBE16, 0xBE17, 0xBE18, 0xBE19, 0xBE1A, /* 0x60 */
- 0xBE1B, 0xBE1C, 0, 0xBE1D, 0xBE1E, 0xBE1F, 0xBE20, 0xBE21, /* 0x70 */
- 0xBE22, 0xBE23, 0xBE24, 0xBE25, 0xBE26, 0xBE27, 0, 0, /* 0x70 */
- 0, 0xBE28, 0xBE29, 0xBE2A, 0xBE2B, 0xBE2C, 0xBE2D, 0xBE2E, /* 0x80 */
- 0xBE2F, 0xBE30, 0xBE31, 0xBE32, 0xBE33, 0xBE34, 0xBE35, 0xBE36, /* 0x80 */
- 0xBE37, 0xBE38, 0, 0xBE39, 0xBE3A, 0xBE3B, 0xBE3C, 0xBE3D, /* 0x90 */
- 0xBE3E, 0xBE3F, 0xBE40, 0xBE41, 0xBE42, 0xBE43, 0, 0, /* 0x90 */
- 0, 0xBE44, 0xBE45, 0xBE46, 0xBE47, 0xBE48, 0xBE49, 0xBE4A, /* 0xA0 */
- 0xBE4B, 0xBE4C, 0xBE4D, 0xBE4E, 0xBE4F, 0xBE50, 0xBE51, 0xBE52, /* 0xA0 */
- 0xBE53, 0xBE54, 0, 0xBE55, 0xBE56, 0xBE57, 0xBE58, 0xBE59, /* 0xB0 */
- 0xBE5A, 0xBE5B, 0xBE5C, 0xBE5D, 0xBE5E, 0xBE5F /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_A8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3143, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xBE60, 0xBE61, 0xBE62, 0xBE63, 0xBE64, 0xBE65, 0xBE66, /* 0x60 */
- 0xBE67, 0xBE68, 0xBE69, 0xBE6A, 0xBE6B, 0xBE6C, 0xBE6D, 0xBE6E, /* 0x60 */
- 0xBE6F, 0xBE70, 0, 0xBE71, 0xBE72, 0xBE73, 0xBE74, 0xBE75, /* 0x70 */
- 0xBE76, 0xBE77, 0xBE78, 0xBE79, 0xBE7A, 0xBE7B, 0, 0, /* 0x70 */
- 0, 0xBE7C, 0xBE7D, 0xBE7E, 0xBE7F, 0xBE80, 0xBE81, 0xBE82, /* 0x80 */
- 0xBE83, 0xBE84, 0xBE85, 0xBE86, 0xBE87, 0xBE88, 0xBE89, 0xBE8A, /* 0x80 */
- 0xBE8B, 0xBE8C, 0, 0xBE8D, 0xBE8E, 0xBE8F, 0xBE90, 0xBE91, /* 0x90 */
- 0xBE92, 0xBE93, 0xBE94, 0xBE95, 0xBE96, 0xBE97, 0, 0, /* 0x90 */
- 0, 0xBE98, 0xBE99, 0xBE9A, 0xBE9B, 0xBE9C, 0xBE9D, 0xBE9E, /* 0xA0 */
- 0xBE9F, 0xBEA0, 0xBEA1, 0xBEA2, 0xBEA3, 0xBEA4, 0xBEA5, 0xBEA6, /* 0xA0 */
- 0xBEA7, 0xBEA8, 0, 0xBEA9, 0xBEAA, 0xBEAB, 0xBEAC, 0xBEAD, /* 0xB0 */
- 0xBEAE, 0xBEAF, 0xBEB0, 0xBEB1, 0xBEB2, 0xBEB3, 0, 0, /* 0xB0 */
- 0, 0xBEB4, 0xBEB5, 0xBEB6, 0xBEB7, 0xBEB8, 0xBEB9, 0xBEBA, /* 0xC0 */
- 0xBEBB, 0xBEBC, 0xBEBD, 0xBEBE, 0xBEBF, 0xBEC0, 0xBEC1, 0xBEC2, /* 0xC0 */
- 0xBEC3, 0xBEC4, 0, 0xBEC5, 0xBEC6, 0xBEC7, 0xBEC8, 0xBEC9, /* 0xD0 */
- 0xBECA, 0xBECB, 0xBECC, 0xBECD, 0xBECE, 0xBECF, 0, 0, /* 0xD0 */
- 0, 0xBED0, 0xBED1, 0xBED2, 0xBED3, 0xBED4, 0xBED5, 0xBED6, /* 0xE0 */
- 0xBED7, 0xBED8, 0xBED9, 0xBEDA, 0xBEDB, 0xBEDC, 0xBEDD, 0xBEDE, /* 0xE0 */
- 0xBEDF, 0xBEE0, 0, 0xBEE1, 0xBEE2, 0xBEE3, 0xBEE4, 0xBEE5, /* 0xF0 */
- 0xBEE6, 0xBEE7, 0xBEE8, 0xBEE9, 0xBEEA, 0xBEEB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_A9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBEEC, 0xBEED, 0xBEEE, 0xBEEF, 0xBEF0, 0xBEF1, 0xBEF2, /* 0x40 */
- 0xBEF3, 0xBEF4, 0xBEF5, 0xBEF6, 0xBEF7, 0xBEF8, 0xBEF9, 0xBEFA, /* 0x40 */
- 0xBEFB, 0xBEFC, 0, 0xBEFD, 0xBEFE, 0xBEFF, 0xBF00, 0xBF01, /* 0x50 */
- 0xBF02, 0xBF03, 0xBF04, 0xBF05, 0xBF06, 0xBF07, 0, 0, /* 0x50 */
- 0, 0xBF08, 0xBF09, 0xBF0A, 0xBF0B, 0xBF0C, 0xBF0D, 0xBF0E, /* 0x60 */
- 0xBF0F, 0xBF10, 0xBF11, 0xBF12, 0xBF13, 0xBF14, 0xBF15, 0xBF16, /* 0x60 */
- 0xBF17, 0xBF18, 0, 0xBF19, 0xBF1A, 0xBF1B, 0xBF1C, 0xBF1D, /* 0x70 */
- 0xBF1E, 0xBF1F, 0xBF20, 0xBF21, 0xBF22, 0xBF23, 0, 0, /* 0x70 */
- 0, 0xBF24, 0xBF25, 0xBF26, 0xBF27, 0xBF28, 0xBF29, 0xBF2A, /* 0x80 */
- 0xBF2B, 0xBF2C, 0xBF2D, 0xBF2E, 0xBF2F, 0xBF30, 0xBF31, 0xBF32, /* 0x80 */
- 0xBF33, 0xBF34, 0, 0xBF35, 0xBF36, 0xBF37, 0xBF38, 0xBF39, /* 0x90 */
- 0xBF3A, 0xBF3B, 0xBF3C, 0xBF3D, 0xBF3E, 0xBF3F, 0, 0, /* 0x90 */
- 0, 0xBF40, 0xBF41, 0xBF42, 0xBF43, 0xBF44, 0xBF45, 0xBF46, /* 0xA0 */
- 0xBF47, 0xBF48, 0xBF49, 0xBF4A, 0xBF4B, 0xBF4C, 0xBF4D, 0xBF4E, /* 0xA0 */
- 0xBF4F, 0xBF50, 0, 0xBF51, 0xBF52, 0xBF53, 0xBF54, 0xBF55, /* 0xB0 */
- 0xBF56, 0xBF57, 0xBF58, 0xBF59, 0xBF5A, 0xBF5B, 0, 0, /* 0xB0 */
- 0, 0xBF5C, 0xBF5D, 0xBF5E, 0xBF5F, 0xBF60, 0xBF61, 0xBF62, /* 0xC0 */
- 0xBF63, 0xBF64, 0xBF65, 0xBF66, 0xBF67, 0xBF68, 0xBF69, 0xBF6A, /* 0xC0 */
- 0xBF6B, 0xBF6C, 0, 0xBF6D, 0xBF6E, 0xBF6F, 0xBF70, 0xBF71, /* 0xD0 */
- 0xBF72, 0xBF73, 0xBF74, 0xBF75, 0xBF76, 0xBF77, 0, 0, /* 0xD0 */
- 0, 0xBF78, 0xBF79, 0xBF7A, 0xBF7B, 0xBF7C, 0xBF7D, 0xBF7E, /* 0xE0 */
- 0xBF7F, 0xBF80, 0xBF81, 0xBF82, 0xBF83, 0xBF84, 0xBF85, 0xBF86, /* 0xE0 */
- 0xBF87, 0xBF88, 0, 0xBF89, 0xBF8A, 0xBF8B, 0xBF8C, 0xBF8D, /* 0xF0 */
- 0xBF8E, 0xBF8F, 0xBF90, 0xBF91, 0xBF92, 0xBF93 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_AA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBF94, 0xBF95, 0xBF96, 0xBF97, 0xBF98, 0xBF99, 0xBF9A, /* 0x40 */
- 0xBF9B, 0xBF9C, 0xBF9D, 0xBF9E, 0xBF9F, 0xBFA0, 0xBFA1, 0xBFA2, /* 0x40 */
- 0xBFA3, 0xBFA4, 0, 0xBFA5, 0xBFA6, 0xBFA7, 0xBFA8, 0xBFA9, /* 0x50 */
- 0xBFAA, 0xBFAB, 0xBFAC, 0xBFAD, 0xBFAE, 0xBFAF, 0, 0, /* 0x50 */
- 0, 0xBFB0, 0xBFB1, 0xBFB2, 0xBFB3, 0xBFB4, 0xBFB5, 0xBFB6, /* 0x60 */
- 0xBFB7, 0xBFB8, 0xBFB9, 0xBFBA, 0xBFBB, 0xBFBC, 0xBFBD, 0xBFBE, /* 0x60 */
- 0xBFBF, 0xBFC0, 0, 0xBFC1, 0xBFC2, 0xBFC3, 0xBFC4, 0xBFC5, /* 0x70 */
- 0xBFC6, 0xBFC7, 0xBFC8, 0xBFC9, 0xBFCA, 0xBFCB, 0, 0, /* 0x70 */
- 0, 0xBFCC, 0xBFCD, 0xBFCE, 0xBFCF, 0xBFD0, 0xBFD1, 0xBFD2, /* 0x80 */
- 0xBFD3, 0xBFD4, 0xBFD5, 0xBFD6, 0xBFD7, 0xBFD8, 0xBFD9, 0xBFDA, /* 0x80 */
- 0xBFDB, 0xBFDC, 0, 0xBFDD, 0xBFDE, 0xBFDF, 0xBFE0, 0xBFE1, /* 0x90 */
- 0xBFE2, 0xBFE3, 0xBFE4, 0xBFE5, 0xBFE6, 0xBFE7, 0, 0, /* 0x90 */
- 0, 0xBFE8, 0xBFE9, 0xBFEA, 0xBFEB, 0xBFEC, 0xBFED, 0xBFEE, /* 0xA0 */
- 0xBFEF, 0xBFF0, 0xBFF1, 0xBFF2, 0xBFF3, 0xBFF4, 0xBFF5, 0xBFF6, /* 0xA0 */
- 0xBFF7, 0xBFF8, 0, 0xBFF9, 0xBFFA, 0xBFFB, 0xBFFC, 0xBFFD, /* 0xB0 */
- 0xBFFE, 0xBFFF, 0xC000, 0xC001, 0xC002, 0xC003, 0, 0, /* 0xB0 */
- 0, 0xC004, 0xC005, 0xC006, 0xC007, 0xC008, 0xC009, 0xC00A, /* 0xC0 */
- 0xC00B, 0xC00C, 0xC00D, 0xC00E, 0xC00F, 0xC010, 0xC011, 0xC012, /* 0xC0 */
- 0xC013, 0xC014, 0, 0xC015, 0xC016, 0xC017, 0xC018, 0xC019, /* 0xD0 */
- 0xC01A, 0xC01B, 0xC01C, 0xC01D, 0xC01E, 0xC01F, 0, 0, /* 0xD0 */
- 0, 0xC020, 0xC021, 0xC022, 0xC023, 0xC024, 0xC025, 0xC026, /* 0xE0 */
- 0xC027, 0xC028, 0xC029, 0xC02A, 0xC02B, 0xC02C, 0xC02D, 0xC02E, /* 0xE0 */
- 0xC02F, 0xC030, 0, 0xC031, 0xC032, 0xC033, 0xC034, 0xC035, /* 0xF0 */
- 0xC036, 0xC037, 0xC038, 0xC039, 0xC03A, 0xC03B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_AB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC03C, 0xC03D, 0xC03E, 0xC03F, 0xC040, 0xC041, 0xC042, /* 0x40 */
- 0xC043, 0xC044, 0xC045, 0xC046, 0xC047, 0xC048, 0xC049, 0xC04A, /* 0x40 */
- 0xC04B, 0xC04C, 0, 0xC04D, 0xC04E, 0xC04F, 0xC050, 0xC051, /* 0x50 */
- 0xC052, 0xC053, 0xC054, 0xC055, 0xC056, 0xC057, 0, 0, /* 0x50 */
- 0, 0xC058, 0xC059, 0xC05A, 0xC05B, 0xC05C, 0xC05D, 0xC05E, /* 0x60 */
- 0xC05F, 0xC060, 0xC061, 0xC062, 0xC063, 0xC064, 0xC065, 0xC066, /* 0x60 */
- 0xC067, 0xC068, 0, 0xC069, 0xC06A, 0xC06B, 0xC06C, 0xC06D, /* 0x70 */
- 0xC06E, 0xC06F, 0xC070, 0xC071, 0xC072, 0xC073, 0, 0, /* 0x70 */
- 0, 0xC074, 0xC075, 0xC076, 0xC077, 0xC078, 0xC079, 0xC07A, /* 0x80 */
- 0xC07B, 0xC07C, 0xC07D, 0xC07E, 0xC07F, 0xC080, 0xC081, 0xC082, /* 0x80 */
- 0xC083, 0xC084, 0, 0xC085, 0xC086, 0xC087, 0xC088, 0xC089, /* 0x90 */
- 0xC08A, 0xC08B, 0xC08C, 0xC08D, 0xC08E, 0xC08F, 0, 0, /* 0x90 */
- 0, 0xC090, 0xC091, 0xC092, 0xC093, 0xC094, 0xC095, 0xC096, /* 0xA0 */
- 0xC097, 0xC098, 0xC099, 0xC09A, 0xC09B, 0xC09C, 0xC09D, 0xC09E, /* 0xA0 */
- 0xC09F, 0xC0A0, 0, 0xC0A1, 0xC0A2, 0xC0A3, 0xC0A4, 0xC0A5, /* 0xB0 */
- 0xC0A6, 0xC0A7, 0xC0A8, 0xC0A9, 0xC0AA, 0xC0AB /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_AC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3145, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xC0AC, 0xC0AD, 0xC0AE, 0xC0AF, 0xC0B0, 0xC0B1, 0xC0B2, /* 0x60 */
- 0xC0B3, 0xC0B4, 0xC0B5, 0xC0B6, 0xC0B7, 0xC0B8, 0xC0B9, 0xC0BA, /* 0x60 */
- 0xC0BB, 0xC0BC, 0, 0xC0BD, 0xC0BE, 0xC0BF, 0xC0C0, 0xC0C1, /* 0x70 */
- 0xC0C2, 0xC0C3, 0xC0C4, 0xC0C5, 0xC0C6, 0xC0C7, 0, 0, /* 0x70 */
- 0, 0xC0C8, 0xC0C9, 0xC0CA, 0xC0CB, 0xC0CC, 0xC0CD, 0xC0CE, /* 0x80 */
- 0xC0CF, 0xC0D0, 0xC0D1, 0xC0D2, 0xC0D3, 0xC0D4, 0xC0D5, 0xC0D6, /* 0x80 */
- 0xC0D7, 0xC0D8, 0, 0xC0D9, 0xC0DA, 0xC0DB, 0xC0DC, 0xC0DD, /* 0x90 */
- 0xC0DE, 0xC0DF, 0xC0E0, 0xC0E1, 0xC0E2, 0xC0E3, 0, 0, /* 0x90 */
- 0, 0xC0E4, 0xC0E5, 0xC0E6, 0xC0E7, 0xC0E8, 0xC0E9, 0xC0EA, /* 0xA0 */
- 0xC0EB, 0xC0EC, 0xC0ED, 0xC0EE, 0xC0EF, 0xC0F0, 0xC0F1, 0xC0F2, /* 0xA0 */
- 0xC0F3, 0xC0F4, 0, 0xC0F5, 0xC0F6, 0xC0F7, 0xC0F8, 0xC0F9, /* 0xB0 */
- 0xC0FA, 0xC0FB, 0xC0FC, 0xC0FD, 0xC0FE, 0xC0FF, 0, 0, /* 0xB0 */
- 0, 0xC100, 0xC101, 0xC102, 0xC103, 0xC104, 0xC105, 0xC106, /* 0xC0 */
- 0xC107, 0xC108, 0xC109, 0xC10A, 0xC10B, 0xC10C, 0xC10D, 0xC10E, /* 0xC0 */
- 0xC10F, 0xC110, 0, 0xC111, 0xC112, 0xC113, 0xC114, 0xC115, /* 0xD0 */
- 0xC116, 0xC117, 0xC118, 0xC119, 0xC11A, 0xC11B, 0, 0, /* 0xD0 */
- 0, 0xC11C, 0xC11D, 0xC11E, 0xC11F, 0xC120, 0xC121, 0xC122, /* 0xE0 */
- 0xC123, 0xC124, 0xC125, 0xC126, 0xC127, 0xC128, 0xC129, 0xC12A, /* 0xE0 */
- 0xC12B, 0xC12C, 0, 0xC12D, 0xC12E, 0xC12F, 0xC130, 0xC131, /* 0xF0 */
- 0xC132, 0xC133, 0xC134, 0xC135, 0xC136, 0xC137 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_AD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC138, 0xC139, 0xC13A, 0xC13B, 0xC13C, 0xC13D, 0xC13E, /* 0x40 */
- 0xC13F, 0xC140, 0xC141, 0xC142, 0xC143, 0xC144, 0xC145, 0xC146, /* 0x40 */
- 0xC147, 0xC148, 0, 0xC149, 0xC14A, 0xC14B, 0xC14C, 0xC14D, /* 0x50 */
- 0xC14E, 0xC14F, 0xC150, 0xC151, 0xC152, 0xC153, 0, 0, /* 0x50 */
- 0, 0xC154, 0xC155, 0xC156, 0xC157, 0xC158, 0xC159, 0xC15A, /* 0x60 */
- 0xC15B, 0xC15C, 0xC15D, 0xC15E, 0xC15F, 0xC160, 0xC161, 0xC162, /* 0x60 */
- 0xC163, 0xC164, 0, 0xC165, 0xC166, 0xC167, 0xC168, 0xC169, /* 0x70 */
- 0xC16A, 0xC16B, 0xC16C, 0xC16D, 0xC16E, 0xC16F, 0, 0, /* 0x70 */
- 0, 0xC170, 0xC171, 0xC172, 0xC173, 0xC174, 0xC175, 0xC176, /* 0x80 */
- 0xC177, 0xC178, 0xC179, 0xC17A, 0xC17B, 0xC17C, 0xC17D, 0xC17E, /* 0x80 */
- 0xC17F, 0xC180, 0, 0xC181, 0xC182, 0xC183, 0xC184, 0xC185, /* 0x90 */
- 0xC186, 0xC187, 0xC188, 0xC189, 0xC18A, 0xC18B, 0, 0, /* 0x90 */
- 0, 0xC18C, 0xC18D, 0xC18E, 0xC18F, 0xC190, 0xC191, 0xC192, /* 0xA0 */
- 0xC193, 0xC194, 0xC195, 0xC196, 0xC197, 0xC198, 0xC199, 0xC19A, /* 0xA0 */
- 0xC19B, 0xC19C, 0, 0xC19D, 0xC19E, 0xC19F, 0xC1A0, 0xC1A1, /* 0xB0 */
- 0xC1A2, 0xC1A3, 0xC1A4, 0xC1A5, 0xC1A6, 0xC1A7, 0, 0, /* 0xB0 */
- 0, 0xC1A8, 0xC1A9, 0xC1AA, 0xC1AB, 0xC1AC, 0xC1AD, 0xC1AE, /* 0xC0 */
- 0xC1AF, 0xC1B0, 0xC1B1, 0xC1B2, 0xC1B3, 0xC1B4, 0xC1B5, 0xC1B6, /* 0xC0 */
- 0xC1B7, 0xC1B8, 0, 0xC1B9, 0xC1BA, 0xC1BB, 0xC1BC, 0xC1BD, /* 0xD0 */
- 0xC1BE, 0xC1BF, 0xC1C0, 0xC1C1, 0xC1C2, 0xC1C3, 0, 0, /* 0xD0 */
- 0, 0xC1C4, 0xC1C5, 0xC1C6, 0xC1C7, 0xC1C8, 0xC1C9, 0xC1CA, /* 0xE0 */
- 0xC1CB, 0xC1CC, 0xC1CD, 0xC1CE, 0xC1CF, 0xC1D0, 0xC1D1, 0xC1D2, /* 0xE0 */
- 0xC1D3, 0xC1D4, 0, 0xC1D5, 0xC1D6, 0xC1D7, 0xC1D8, 0xC1D9, /* 0xF0 */
- 0xC1DA, 0xC1DB, 0xC1DC, 0xC1DD, 0xC1DE, 0xC1DF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_AE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC1E0, 0xC1E1, 0xC1E2, 0xC1E3, 0xC1E4, 0xC1E5, 0xC1E6, /* 0x40 */
- 0xC1E7, 0xC1E8, 0xC1E9, 0xC1EA, 0xC1EB, 0xC1EC, 0xC1ED, 0xC1EE, /* 0x40 */
- 0xC1EF, 0xC1F0, 0, 0xC1F1, 0xC1F2, 0xC1F3, 0xC1F4, 0xC1F5, /* 0x50 */
- 0xC1F6, 0xC1F7, 0xC1F8, 0xC1F9, 0xC1FA, 0xC1FB, 0, 0, /* 0x50 */
- 0, 0xC1FC, 0xC1FD, 0xC1FE, 0xC1FF, 0xC200, 0xC201, 0xC202, /* 0x60 */
- 0xC203, 0xC204, 0xC205, 0xC206, 0xC207, 0xC208, 0xC209, 0xC20A, /* 0x60 */
- 0xC20B, 0xC20C, 0, 0xC20D, 0xC20E, 0xC20F, 0xC210, 0xC211, /* 0x70 */
- 0xC212, 0xC213, 0xC214, 0xC215, 0xC216, 0xC217, 0, 0, /* 0x70 */
- 0, 0xC218, 0xC219, 0xC21A, 0xC21B, 0xC21C, 0xC21D, 0xC21E, /* 0x80 */
- 0xC21F, 0xC220, 0xC221, 0xC222, 0xC223, 0xC224, 0xC225, 0xC226, /* 0x80 */
- 0xC227, 0xC228, 0, 0xC229, 0xC22A, 0xC22B, 0xC22C, 0xC22D, /* 0x90 */
- 0xC22E, 0xC22F, 0xC230, 0xC231, 0xC232, 0xC233, 0, 0, /* 0x90 */
- 0, 0xC234, 0xC235, 0xC236, 0xC237, 0xC238, 0xC239, 0xC23A, /* 0xA0 */
- 0xC23B, 0xC23C, 0xC23D, 0xC23E, 0xC23F, 0xC240, 0xC241, 0xC242, /* 0xA0 */
- 0xC243, 0xC244, 0, 0xC245, 0xC246, 0xC247, 0xC248, 0xC249, /* 0xB0 */
- 0xC24A, 0xC24B, 0xC24C, 0xC24D, 0xC24E, 0xC24F, 0, 0, /* 0xB0 */
- 0, 0xC250, 0xC251, 0xC252, 0xC253, 0xC254, 0xC255, 0xC256, /* 0xC0 */
- 0xC257, 0xC258, 0xC259, 0xC25A, 0xC25B, 0xC25C, 0xC25D, 0xC25E, /* 0xC0 */
- 0xC25F, 0xC260, 0, 0xC261, 0xC262, 0xC263, 0xC264, 0xC265, /* 0xD0 */
- 0xC266, 0xC267, 0xC268, 0xC269, 0xC26A, 0xC26B, 0, 0, /* 0xD0 */
- 0, 0xC26C, 0xC26D, 0xC26E, 0xC26F, 0xC270, 0xC271, 0xC272, /* 0xE0 */
- 0xC273, 0xC274, 0xC275, 0xC276, 0xC277, 0xC278, 0xC279, 0xC27A, /* 0xE0 */
- 0xC27B, 0xC27C, 0, 0xC27D, 0xC27E, 0xC27F, 0xC280, 0xC281, /* 0xF0 */
- 0xC282, 0xC283, 0xC284, 0xC285, 0xC286, 0xC287 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_AF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC288, 0xC289, 0xC28A, 0xC28B, 0xC28C, 0xC28D, 0xC28E, /* 0x40 */
- 0xC28F, 0xC290, 0xC291, 0xC292, 0xC293, 0xC294, 0xC295, 0xC296, /* 0x40 */
- 0xC297, 0xC298, 0, 0xC299, 0xC29A, 0xC29B, 0xC29C, 0xC29D, /* 0x50 */
- 0xC29E, 0xC29F, 0xC2A0, 0xC2A1, 0xC2A2, 0xC2A3, 0, 0, /* 0x50 */
- 0, 0xC2A4, 0xC2A5, 0xC2A6, 0xC2A7, 0xC2A8, 0xC2A9, 0xC2AA, /* 0x60 */
- 0xC2AB, 0xC2AC, 0xC2AD, 0xC2AE, 0xC2AF, 0xC2B0, 0xC2B1, 0xC2B2, /* 0x60 */
- 0xC2B3, 0xC2B4, 0, 0xC2B5, 0xC2B6, 0xC2B7, 0xC2B8, 0xC2B9, /* 0x70 */
- 0xC2BA, 0xC2BB, 0xC2BC, 0xC2BD, 0xC2BE, 0xC2BF, 0, 0, /* 0x70 */
- 0, 0xC2C0, 0xC2C1, 0xC2C2, 0xC2C3, 0xC2C4, 0xC2C5, 0xC2C6, /* 0x80 */
- 0xC2C7, 0xC2C8, 0xC2C9, 0xC2CA, 0xC2CB, 0xC2CC, 0xC2CD, 0xC2CE, /* 0x80 */
- 0xC2CF, 0xC2D0, 0, 0xC2D1, 0xC2D2, 0xC2D3, 0xC2D4, 0xC2D5, /* 0x90 */
- 0xC2D6, 0xC2D7, 0xC2D8, 0xC2D9, 0xC2DA, 0xC2DB, 0, 0, /* 0x90 */
- 0, 0xC2DC, 0xC2DD, 0xC2DE, 0xC2DF, 0xC2E0, 0xC2E1, 0xC2E2, /* 0xA0 */
- 0xC2E3, 0xC2E4, 0xC2E5, 0xC2E6, 0xC2E7, 0xC2E8, 0xC2E9, 0xC2EA, /* 0xA0 */
- 0xC2EB, 0xC2EC, 0, 0xC2ED, 0xC2EE, 0xC2EF, 0xC2F0, 0xC2F1, /* 0xB0 */
- 0xC2F2, 0xC2F3, 0xC2F4, 0xC2F5, 0xC2F6, 0xC2F7 /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_B0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3146, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xC2F8, 0xC2F9, 0xC2FA, 0xC2FB, 0xC2FC, 0xC2FD, 0xC2FE, /* 0x60 */
- 0xC2FF, 0xC300, 0xC301, 0xC302, 0xC303, 0xC304, 0xC305, 0xC306, /* 0x60 */
- 0xC307, 0xC308, 0, 0xC309, 0xC30A, 0xC30B, 0xC30C, 0xC30D, /* 0x70 */
- 0xC30E, 0xC30F, 0xC310, 0xC311, 0xC312, 0xC313, 0, 0, /* 0x70 */
- 0, 0xC314, 0xC315, 0xC316, 0xC317, 0xC318, 0xC319, 0xC31A, /* 0x80 */
- 0xC31B, 0xC31C, 0xC31D, 0xC31E, 0xC31F, 0xC320, 0xC321, 0xC322, /* 0x80 */
- 0xC323, 0xC324, 0, 0xC325, 0xC326, 0xC327, 0xC328, 0xC329, /* 0x90 */
- 0xC32A, 0xC32B, 0xC32C, 0xC32D, 0xC32E, 0xC32F, 0, 0, /* 0x90 */
- 0, 0xC330, 0xC331, 0xC332, 0xC333, 0xC334, 0xC335, 0xC336, /* 0xA0 */
- 0xC337, 0xC338, 0xC339, 0xC33A, 0xC33B, 0xC33C, 0xC33D, 0xC33E, /* 0xA0 */
- 0xC33F, 0xC340, 0, 0xC341, 0xC342, 0xC343, 0xC344, 0xC345, /* 0xB0 */
- 0xC346, 0xC347, 0xC348, 0xC349, 0xC34A, 0xC34B, 0, 0, /* 0xB0 */
- 0, 0xC34C, 0xC34D, 0xC34E, 0xC34F, 0xC350, 0xC351, 0xC352, /* 0xC0 */
- 0xC353, 0xC354, 0xC355, 0xC356, 0xC357, 0xC358, 0xC359, 0xC35A, /* 0xC0 */
- 0xC35B, 0xC35C, 0, 0xC35D, 0xC35E, 0xC35F, 0xC360, 0xC361, /* 0xD0 */
- 0xC362, 0xC363, 0xC364, 0xC365, 0xC366, 0xC367, 0, 0, /* 0xD0 */
- 0, 0xC368, 0xC369, 0xC36A, 0xC36B, 0xC36C, 0xC36D, 0xC36E, /* 0xE0 */
- 0xC36F, 0xC370, 0xC371, 0xC372, 0xC373, 0xC374, 0xC375, 0xC376, /* 0xE0 */
- 0xC377, 0xC378, 0, 0xC379, 0xC37A, 0xC37B, 0xC37C, 0xC37D, /* 0xF0 */
- 0xC37E, 0xC37F, 0xC380, 0xC381, 0xC382, 0xC383 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_B1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC384, 0xC385, 0xC386, 0xC387, 0xC388, 0xC389, 0xC38A, /* 0x40 */
- 0xC38B, 0xC38C, 0xC38D, 0xC38E, 0xC38F, 0xC390, 0xC391, 0xC392, /* 0x40 */
- 0xC393, 0xC394, 0, 0xC395, 0xC396, 0xC397, 0xC398, 0xC399, /* 0x50 */
- 0xC39A, 0xC39B, 0xC39C, 0xC39D, 0xC39E, 0xC39F, 0, 0, /* 0x50 */
- 0, 0xC3A0, 0xC3A1, 0xC3A2, 0xC3A3, 0xC3A4, 0xC3A5, 0xC3A6, /* 0x60 */
- 0xC3A7, 0xC3A8, 0xC3A9, 0xC3AA, 0xC3AB, 0xC3AC, 0xC3AD, 0xC3AE, /* 0x60 */
- 0xC3AF, 0xC3B0, 0, 0xC3B1, 0xC3B2, 0xC3B3, 0xC3B4, 0xC3B5, /* 0x70 */
- 0xC3B6, 0xC3B7, 0xC3B8, 0xC3B9, 0xC3BA, 0xC3BB, 0, 0, /* 0x70 */
- 0, 0xC3BC, 0xC3BD, 0xC3BE, 0xC3BF, 0xC3C0, 0xC3C1, 0xC3C2, /* 0x80 */
- 0xC3C3, 0xC3C4, 0xC3C5, 0xC3C6, 0xC3C7, 0xC3C8, 0xC3C9, 0xC3CA, /* 0x80 */
- 0xC3CB, 0xC3CC, 0, 0xC3CD, 0xC3CE, 0xC3CF, 0xC3D0, 0xC3D1, /* 0x90 */
- 0xC3D2, 0xC3D3, 0xC3D4, 0xC3D5, 0xC3D6, 0xC3D7, 0, 0, /* 0x90 */
- 0, 0xC3D8, 0xC3D9, 0xC3DA, 0xC3DB, 0xC3DC, 0xC3DD, 0xC3DE, /* 0xA0 */
- 0xC3DF, 0xC3E0, 0xC3E1, 0xC3E2, 0xC3E3, 0xC3E4, 0xC3E5, 0xC3E6, /* 0xA0 */
- 0xC3E7, 0xC3E8, 0, 0xC3E9, 0xC3EA, 0xC3EB, 0xC3EC, 0xC3ED, /* 0xB0 */
- 0xC3EE, 0xC3EF, 0xC3F0, 0xC3F1, 0xC3F2, 0xC3F3, 0, 0, /* 0xB0 */
- 0, 0xC3F4, 0xC3F5, 0xC3F6, 0xC3F7, 0xC3F8, 0xC3F9, 0xC3FA, /* 0xC0 */
- 0xC3FB, 0xC3FC, 0xC3FD, 0xC3FE, 0xC3FF, 0xC400, 0xC401, 0xC402, /* 0xC0 */
- 0xC403, 0xC404, 0, 0xC405, 0xC406, 0xC407, 0xC408, 0xC409, /* 0xD0 */
- 0xC40A, 0xC40B, 0xC40C, 0xC40D, 0xC40E, 0xC40F, 0, 0, /* 0xD0 */
- 0, 0xC410, 0xC411, 0xC412, 0xC413, 0xC414, 0xC415, 0xC416, /* 0xE0 */
- 0xC417, 0xC418, 0xC419, 0xC41A, 0xC41B, 0xC41C, 0xC41D, 0xC41E, /* 0xE0 */
- 0xC41F, 0xC420, 0, 0xC421, 0xC422, 0xC423, 0xC424, 0xC425, /* 0xF0 */
- 0xC426, 0xC427, 0xC428, 0xC429, 0xC42A, 0xC42B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_B2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC42C, 0xC42D, 0xC42E, 0xC42F, 0xC430, 0xC431, 0xC432, /* 0x40 */
- 0xC433, 0xC434, 0xC435, 0xC436, 0xC437, 0xC438, 0xC439, 0xC43A, /* 0x40 */
- 0xC43B, 0xC43C, 0, 0xC43D, 0xC43E, 0xC43F, 0xC440, 0xC441, /* 0x50 */
- 0xC442, 0xC443, 0xC444, 0xC445, 0xC446, 0xC447, 0, 0, /* 0x50 */
- 0, 0xC448, 0xC449, 0xC44A, 0xC44B, 0xC44C, 0xC44D, 0xC44E, /* 0x60 */
- 0xC44F, 0xC450, 0xC451, 0xC452, 0xC453, 0xC454, 0xC455, 0xC456, /* 0x60 */
- 0xC457, 0xC458, 0, 0xC459, 0xC45A, 0xC45B, 0xC45C, 0xC45D, /* 0x70 */
- 0xC45E, 0xC45F, 0xC460, 0xC461, 0xC462, 0xC463, 0, 0, /* 0x70 */
- 0, 0xC464, 0xC465, 0xC466, 0xC467, 0xC468, 0xC469, 0xC46A, /* 0x80 */
- 0xC46B, 0xC46C, 0xC46D, 0xC46E, 0xC46F, 0xC470, 0xC471, 0xC472, /* 0x80 */
- 0xC473, 0xC474, 0, 0xC475, 0xC476, 0xC477, 0xC478, 0xC479, /* 0x90 */
- 0xC47A, 0xC47B, 0xC47C, 0xC47D, 0xC47E, 0xC47F, 0, 0, /* 0x90 */
- 0, 0xC480, 0xC481, 0xC482, 0xC483, 0xC484, 0xC485, 0xC486, /* 0xA0 */
- 0xC487, 0xC488, 0xC489, 0xC48A, 0xC48B, 0xC48C, 0xC48D, 0xC48E, /* 0xA0 */
- 0xC48F, 0xC490, 0, 0xC491, 0xC492, 0xC493, 0xC494, 0xC495, /* 0xB0 */
- 0xC496, 0xC497, 0xC498, 0xC499, 0xC49A, 0xC49B, 0, 0, /* 0xB0 */
- 0, 0xC49C, 0xC49D, 0xC49E, 0xC49F, 0xC4A0, 0xC4A1, 0xC4A2, /* 0xC0 */
- 0xC4A3, 0xC4A4, 0xC4A5, 0xC4A6, 0xC4A7, 0xC4A8, 0xC4A9, 0xC4AA, /* 0xC0 */
- 0xC4AB, 0xC4AC, 0, 0xC4AD, 0xC4AE, 0xC4AF, 0xC4B0, 0xC4B1, /* 0xD0 */
- 0xC4B2, 0xC4B3, 0xC4B4, 0xC4B5, 0xC4B6, 0xC4B7, 0, 0, /* 0xD0 */
- 0, 0xC4B8, 0xC4B9, 0xC4BA, 0xC4BB, 0xC4BC, 0xC4BD, 0xC4BE, /* 0xE0 */
- 0xC4BF, 0xC4C0, 0xC4C1, 0xC4C2, 0xC4C3, 0xC4C4, 0xC4C5, 0xC4C6, /* 0xE0 */
- 0xC4C7, 0xC4C8, 0, 0xC4C9, 0xC4CA, 0xC4CB, 0xC4CC, 0xC4CD, /* 0xF0 */
- 0xC4CE, 0xC4CF, 0xC4D0, 0xC4D1, 0xC4D2, 0xC4D3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_B3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC4D4, 0xC4D5, 0xC4D6, 0xC4D7, 0xC4D8, 0xC4D9, 0xC4DA, /* 0x40 */
- 0xC4DB, 0xC4DC, 0xC4DD, 0xC4DE, 0xC4DF, 0xC4E0, 0xC4E1, 0xC4E2, /* 0x40 */
- 0xC4E3, 0xC4E4, 0, 0xC4E5, 0xC4E6, 0xC4E7, 0xC4E8, 0xC4E9, /* 0x50 */
- 0xC4EA, 0xC4EB, 0xC4EC, 0xC4ED, 0xC4EE, 0xC4EF, 0, 0, /* 0x50 */
- 0, 0xC4F0, 0xC4F1, 0xC4F2, 0xC4F3, 0xC4F4, 0xC4F5, 0xC4F6, /* 0x60 */
- 0xC4F7, 0xC4F8, 0xC4F9, 0xC4FA, 0xC4FB, 0xC4FC, 0xC4FD, 0xC4FE, /* 0x60 */
- 0xC4FF, 0xC500, 0, 0xC501, 0xC502, 0xC503, 0xC504, 0xC505, /* 0x70 */
- 0xC506, 0xC507, 0xC508, 0xC509, 0xC50A, 0xC50B, 0, 0, /* 0x70 */
- 0, 0xC50C, 0xC50D, 0xC50E, 0xC50F, 0xC510, 0xC511, 0xC512, /* 0x80 */
- 0xC513, 0xC514, 0xC515, 0xC516, 0xC517, 0xC518, 0xC519, 0xC51A, /* 0x80 */
- 0xC51B, 0xC51C, 0, 0xC51D, 0xC51E, 0xC51F, 0xC520, 0xC521, /* 0x90 */
- 0xC522, 0xC523, 0xC524, 0xC525, 0xC526, 0xC527, 0, 0, /* 0x90 */
- 0, 0xC528, 0xC529, 0xC52A, 0xC52B, 0xC52C, 0xC52D, 0xC52E, /* 0xA0 */
- 0xC52F, 0xC530, 0xC531, 0xC532, 0xC533, 0xC534, 0xC535, 0xC536, /* 0xA0 */
- 0xC537, 0xC538, 0, 0xC539, 0xC53A, 0xC53B, 0xC53C, 0xC53D, /* 0xB0 */
- 0xC53E, 0xC53F, 0xC540, 0xC541, 0xC542, 0xC543 /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_B4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3147, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xC544, 0xC545, 0xC546, 0xC547, 0xC548, 0xC549, 0xC54A, /* 0x60 */
- 0xC54B, 0xC54C, 0xC54D, 0xC54E, 0xC54F, 0xC550, 0xC551, 0xC552, /* 0x60 */
- 0xC553, 0xC554, 0, 0xC555, 0xC556, 0xC557, 0xC558, 0xC559, /* 0x70 */
- 0xC55A, 0xC55B, 0xC55C, 0xC55D, 0xC55E, 0xC55F, 0, 0, /* 0x70 */
- 0, 0xC560, 0xC561, 0xC562, 0xC563, 0xC564, 0xC565, 0xC566, /* 0x80 */
- 0xC567, 0xC568, 0xC569, 0xC56A, 0xC56B, 0xC56C, 0xC56D, 0xC56E, /* 0x80 */
- 0xC56F, 0xC570, 0, 0xC571, 0xC572, 0xC573, 0xC574, 0xC575, /* 0x90 */
- 0xC576, 0xC577, 0xC578, 0xC579, 0xC57A, 0xC57B, 0, 0, /* 0x90 */
- 0, 0xC57C, 0xC57D, 0xC57E, 0xC57F, 0xC580, 0xC581, 0xC582, /* 0xA0 */
- 0xC583, 0xC584, 0xC585, 0xC586, 0xC587, 0xC588, 0xC589, 0xC58A, /* 0xA0 */
- 0xC58B, 0xC58C, 0, 0xC58D, 0xC58E, 0xC58F, 0xC590, 0xC591, /* 0xB0 */
- 0xC592, 0xC593, 0xC594, 0xC595, 0xC596, 0xC597, 0, 0, /* 0xB0 */
- 0, 0xC598, 0xC599, 0xC59A, 0xC59B, 0xC59C, 0xC59D, 0xC59E, /* 0xC0 */
- 0xC59F, 0xC5A0, 0xC5A1, 0xC5A2, 0xC5A3, 0xC5A4, 0xC5A5, 0xC5A6, /* 0xC0 */
- 0xC5A7, 0xC5A8, 0, 0xC5A9, 0xC5AA, 0xC5AB, 0xC5AC, 0xC5AD, /* 0xD0 */
- 0xC5AE, 0xC5AF, 0xC5B0, 0xC5B1, 0xC5B2, 0xC5B3, 0, 0, /* 0xD0 */
- 0, 0xC5B4, 0xC5B5, 0xC5B6, 0xC5B7, 0xC5B8, 0xC5B9, 0xC5BA, /* 0xE0 */
- 0xC5BB, 0xC5BC, 0xC5BD, 0xC5BE, 0xC5BF, 0xC5C0, 0xC5C1, 0xC5C2, /* 0xE0 */
- 0xC5C3, 0xC5C4, 0, 0xC5C5, 0xC5C6, 0xC5C7, 0xC5C8, 0xC5C9, /* 0xF0 */
- 0xC5CA, 0xC5CB, 0xC5CC, 0xC5CD, 0xC5CE, 0xC5CF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_B5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC5D0, 0xC5D1, 0xC5D2, 0xC5D3, 0xC5D4, 0xC5D5, 0xC5D6, /* 0x40 */
- 0xC5D7, 0xC5D8, 0xC5D9, 0xC5DA, 0xC5DB, 0xC5DC, 0xC5DD, 0xC5DE, /* 0x40 */
- 0xC5DF, 0xC5E0, 0, 0xC5E1, 0xC5E2, 0xC5E3, 0xC5E4, 0xC5E5, /* 0x50 */
- 0xC5E6, 0xC5E7, 0xC5E8, 0xC5E9, 0xC5EA, 0xC5EB, 0, 0, /* 0x50 */
- 0, 0xC5EC, 0xC5ED, 0xC5EE, 0xC5EF, 0xC5F0, 0xC5F1, 0xC5F2, /* 0x60 */
- 0xC5F3, 0xC5F4, 0xC5F5, 0xC5F6, 0xC5F7, 0xC5F8, 0xC5F9, 0xC5FA, /* 0x60 */
- 0xC5FB, 0xC5FC, 0, 0xC5FD, 0xC5FE, 0xC5FF, 0xC600, 0xC601, /* 0x70 */
- 0xC602, 0xC603, 0xC604, 0xC605, 0xC606, 0xC607, 0, 0, /* 0x70 */
- 0, 0xC608, 0xC609, 0xC60A, 0xC60B, 0xC60C, 0xC60D, 0xC60E, /* 0x80 */
- 0xC60F, 0xC610, 0xC611, 0xC612, 0xC613, 0xC614, 0xC615, 0xC616, /* 0x80 */
- 0xC617, 0xC618, 0, 0xC619, 0xC61A, 0xC61B, 0xC61C, 0xC61D, /* 0x90 */
- 0xC61E, 0xC61F, 0xC620, 0xC621, 0xC622, 0xC623, 0, 0, /* 0x90 */
- 0, 0xC624, 0xC625, 0xC626, 0xC627, 0xC628, 0xC629, 0xC62A, /* 0xA0 */
- 0xC62B, 0xC62C, 0xC62D, 0xC62E, 0xC62F, 0xC630, 0xC631, 0xC632, /* 0xA0 */
- 0xC633, 0xC634, 0, 0xC635, 0xC636, 0xC637, 0xC638, 0xC639, /* 0xB0 */
- 0xC63A, 0xC63B, 0xC63C, 0xC63D, 0xC63E, 0xC63F, 0, 0, /* 0xB0 */
- 0, 0xC640, 0xC641, 0xC642, 0xC643, 0xC644, 0xC645, 0xC646, /* 0xC0 */
- 0xC647, 0xC648, 0xC649, 0xC64A, 0xC64B, 0xC64C, 0xC64D, 0xC64E, /* 0xC0 */
- 0xC64F, 0xC650, 0, 0xC651, 0xC652, 0xC653, 0xC654, 0xC655, /* 0xD0 */
- 0xC656, 0xC657, 0xC658, 0xC659, 0xC65A, 0xC65B, 0, 0, /* 0xD0 */
- 0, 0xC65C, 0xC65D, 0xC65E, 0xC65F, 0xC660, 0xC661, 0xC662, /* 0xE0 */
- 0xC663, 0xC664, 0xC665, 0xC666, 0xC667, 0xC668, 0xC669, 0xC66A, /* 0xE0 */
- 0xC66B, 0xC66C, 0, 0xC66D, 0xC66E, 0xC66F, 0xC670, 0xC671, /* 0xF0 */
- 0xC672, 0xC673, 0xC674, 0xC675, 0xC676, 0xC677 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_B6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC678, 0xC679, 0xC67A, 0xC67B, 0xC67C, 0xC67D, 0xC67E, /* 0x40 */
- 0xC67F, 0xC680, 0xC681, 0xC682, 0xC683, 0xC684, 0xC685, 0xC686, /* 0x40 */
- 0xC687, 0xC688, 0, 0xC689, 0xC68A, 0xC68B, 0xC68C, 0xC68D, /* 0x50 */
- 0xC68E, 0xC68F, 0xC690, 0xC691, 0xC692, 0xC693, 0, 0, /* 0x50 */
- 0, 0xC694, 0xC695, 0xC696, 0xC697, 0xC698, 0xC699, 0xC69A, /* 0x60 */
- 0xC69B, 0xC69C, 0xC69D, 0xC69E, 0xC69F, 0xC6A0, 0xC6A1, 0xC6A2, /* 0x60 */
- 0xC6A3, 0xC6A4, 0, 0xC6A5, 0xC6A6, 0xC6A7, 0xC6A8, 0xC6A9, /* 0x70 */
- 0xC6AA, 0xC6AB, 0xC6AC, 0xC6AD, 0xC6AE, 0xC6AF, 0, 0, /* 0x70 */
- 0, 0xC6B0, 0xC6B1, 0xC6B2, 0xC6B3, 0xC6B4, 0xC6B5, 0xC6B6, /* 0x80 */
- 0xC6B7, 0xC6B8, 0xC6B9, 0xC6BA, 0xC6BB, 0xC6BC, 0xC6BD, 0xC6BE, /* 0x80 */
- 0xC6BF, 0xC6C0, 0, 0xC6C1, 0xC6C2, 0xC6C3, 0xC6C4, 0xC6C5, /* 0x90 */
- 0xC6C6, 0xC6C7, 0xC6C8, 0xC6C9, 0xC6CA, 0xC6CB, 0, 0, /* 0x90 */
- 0, 0xC6CC, 0xC6CD, 0xC6CE, 0xC6CF, 0xC6D0, 0xC6D1, 0xC6D2, /* 0xA0 */
- 0xC6D3, 0xC6D4, 0xC6D5, 0xC6D6, 0xC6D7, 0xC6D8, 0xC6D9, 0xC6DA, /* 0xA0 */
- 0xC6DB, 0xC6DC, 0, 0xC6DD, 0xC6DE, 0xC6DF, 0xC6E0, 0xC6E1, /* 0xB0 */
- 0xC6E2, 0xC6E3, 0xC6E4, 0xC6E5, 0xC6E6, 0xC6E7, 0, 0, /* 0xB0 */
- 0, 0xC6E8, 0xC6E9, 0xC6EA, 0xC6EB, 0xC6EC, 0xC6ED, 0xC6EE, /* 0xC0 */
- 0xC6EF, 0xC6F0, 0xC6F1, 0xC6F2, 0xC6F3, 0xC6F4, 0xC6F5, 0xC6F6, /* 0xC0 */
- 0xC6F7, 0xC6F8, 0, 0xC6F9, 0xC6FA, 0xC6FB, 0xC6FC, 0xC6FD, /* 0xD0 */
- 0xC6FE, 0xC6FF, 0xC700, 0xC701, 0xC702, 0xC703, 0, 0, /* 0xD0 */
- 0, 0xC704, 0xC705, 0xC706, 0xC707, 0xC708, 0xC709, 0xC70A, /* 0xE0 */
- 0xC70B, 0xC70C, 0xC70D, 0xC70E, 0xC70F, 0xC710, 0xC711, 0xC712, /* 0xE0 */
- 0xC713, 0xC714, 0, 0xC715, 0xC716, 0xC717, 0xC718, 0xC719, /* 0xF0 */
- 0xC71A, 0xC71B, 0xC71C, 0xC71D, 0xC71E, 0xC71F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_B7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC720, 0xC721, 0xC722, 0xC723, 0xC724, 0xC725, 0xC726, /* 0x40 */
- 0xC727, 0xC728, 0xC729, 0xC72A, 0xC72B, 0xC72C, 0xC72D, 0xC72E, /* 0x40 */
- 0xC72F, 0xC730, 0, 0xC731, 0xC732, 0xC733, 0xC734, 0xC735, /* 0x50 */
- 0xC736, 0xC737, 0xC738, 0xC739, 0xC73A, 0xC73B, 0, 0, /* 0x50 */
- 0, 0xC73C, 0xC73D, 0xC73E, 0xC73F, 0xC740, 0xC741, 0xC742, /* 0x60 */
- 0xC743, 0xC744, 0xC745, 0xC746, 0xC747, 0xC748, 0xC749, 0xC74A, /* 0x60 */
- 0xC74B, 0xC74C, 0, 0xC74D, 0xC74E, 0xC74F, 0xC750, 0xC751, /* 0x70 */
- 0xC752, 0xC753, 0xC754, 0xC755, 0xC756, 0xC757, 0, 0, /* 0x70 */
- 0, 0xC758, 0xC759, 0xC75A, 0xC75B, 0xC75C, 0xC75D, 0xC75E, /* 0x80 */
- 0xC75F, 0xC760, 0xC761, 0xC762, 0xC763, 0xC764, 0xC765, 0xC766, /* 0x80 */
- 0xC767, 0xC768, 0, 0xC769, 0xC76A, 0xC76B, 0xC76C, 0xC76D, /* 0x90 */
- 0xC76E, 0xC76F, 0xC770, 0xC771, 0xC772, 0xC773, 0, 0, /* 0x90 */
- 0, 0xC774, 0xC775, 0xC776, 0xC777, 0xC778, 0xC779, 0xC77A, /* 0xA0 */
- 0xC77B, 0xC77C, 0xC77D, 0xC77E, 0xC77F, 0xC780, 0xC781, 0xC782, /* 0xA0 */
- 0xC783, 0xC784, 0, 0xC785, 0xC786, 0xC787, 0xC788, 0xC789, /* 0xB0 */
- 0xC78A, 0xC78B, 0xC78C, 0xC78D, 0xC78E, 0xC78F /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_B8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3148, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xC790, 0xC791, 0xC792, 0xC793, 0xC794, 0xC795, 0xC796, /* 0x60 */
- 0xC797, 0xC798, 0xC799, 0xC79A, 0xC79B, 0xC79C, 0xC79D, 0xC79E, /* 0x60 */
- 0xC79F, 0xC7A0, 0, 0xC7A1, 0xC7A2, 0xC7A3, 0xC7A4, 0xC7A5, /* 0x70 */
- 0xC7A6, 0xC7A7, 0xC7A8, 0xC7A9, 0xC7AA, 0xC7AB, 0, 0, /* 0x70 */
- 0, 0xC7AC, 0xC7AD, 0xC7AE, 0xC7AF, 0xC7B0, 0xC7B1, 0xC7B2, /* 0x80 */
- 0xC7B3, 0xC7B4, 0xC7B5, 0xC7B6, 0xC7B7, 0xC7B8, 0xC7B9, 0xC7BA, /* 0x80 */
- 0xC7BB, 0xC7BC, 0, 0xC7BD, 0xC7BE, 0xC7BF, 0xC7C0, 0xC7C1, /* 0x90 */
- 0xC7C2, 0xC7C3, 0xC7C4, 0xC7C5, 0xC7C6, 0xC7C7, 0, 0, /* 0x90 */
- 0, 0xC7C8, 0xC7C9, 0xC7CA, 0xC7CB, 0xC7CC, 0xC7CD, 0xC7CE, /* 0xA0 */
- 0xC7CF, 0xC7D0, 0xC7D1, 0xC7D2, 0xC7D3, 0xC7D4, 0xC7D5, 0xC7D6, /* 0xA0 */
- 0xC7D7, 0xC7D8, 0, 0xC7D9, 0xC7DA, 0xC7DB, 0xC7DC, 0xC7DD, /* 0xB0 */
- 0xC7DE, 0xC7DF, 0xC7E0, 0xC7E1, 0xC7E2, 0xC7E3, 0, 0, /* 0xB0 */
- 0, 0xC7E4, 0xC7E5, 0xC7E6, 0xC7E7, 0xC7E8, 0xC7E9, 0xC7EA, /* 0xC0 */
- 0xC7EB, 0xC7EC, 0xC7ED, 0xC7EE, 0xC7EF, 0xC7F0, 0xC7F1, 0xC7F2, /* 0xC0 */
- 0xC7F3, 0xC7F4, 0, 0xC7F5, 0xC7F6, 0xC7F7, 0xC7F8, 0xC7F9, /* 0xD0 */
- 0xC7FA, 0xC7FB, 0xC7FC, 0xC7FD, 0xC7FE, 0xC7FF, 0, 0, /* 0xD0 */
- 0, 0xC800, 0xC801, 0xC802, 0xC803, 0xC804, 0xC805, 0xC806, /* 0xE0 */
- 0xC807, 0xC808, 0xC809, 0xC80A, 0xC80B, 0xC80C, 0xC80D, 0xC80E, /* 0xE0 */
- 0xC80F, 0xC810, 0, 0xC811, 0xC812, 0xC813, 0xC814, 0xC815, /* 0xF0 */
- 0xC816, 0xC817, 0xC818, 0xC819, 0xC81A, 0xC81B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_B9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC81C, 0xC81D, 0xC81E, 0xC81F, 0xC820, 0xC821, 0xC822, /* 0x40 */
- 0xC823, 0xC824, 0xC825, 0xC826, 0xC827, 0xC828, 0xC829, 0xC82A, /* 0x40 */
- 0xC82B, 0xC82C, 0, 0xC82D, 0xC82E, 0xC82F, 0xC830, 0xC831, /* 0x50 */
- 0xC832, 0xC833, 0xC834, 0xC835, 0xC836, 0xC837, 0, 0, /* 0x50 */
- 0, 0xC838, 0xC839, 0xC83A, 0xC83B, 0xC83C, 0xC83D, 0xC83E, /* 0x60 */
- 0xC83F, 0xC840, 0xC841, 0xC842, 0xC843, 0xC844, 0xC845, 0xC846, /* 0x60 */
- 0xC847, 0xC848, 0, 0xC849, 0xC84A, 0xC84B, 0xC84C, 0xC84D, /* 0x70 */
- 0xC84E, 0xC84F, 0xC850, 0xC851, 0xC852, 0xC853, 0, 0, /* 0x70 */
- 0, 0xC854, 0xC855, 0xC856, 0xC857, 0xC858, 0xC859, 0xC85A, /* 0x80 */
- 0xC85B, 0xC85C, 0xC85D, 0xC85E, 0xC85F, 0xC860, 0xC861, 0xC862, /* 0x80 */
- 0xC863, 0xC864, 0, 0xC865, 0xC866, 0xC867, 0xC868, 0xC869, /* 0x90 */
- 0xC86A, 0xC86B, 0xC86C, 0xC86D, 0xC86E, 0xC86F, 0, 0, /* 0x90 */
- 0, 0xC870, 0xC871, 0xC872, 0xC873, 0xC874, 0xC875, 0xC876, /* 0xA0 */
- 0xC877, 0xC878, 0xC879, 0xC87A, 0xC87B, 0xC87C, 0xC87D, 0xC87E, /* 0xA0 */
- 0xC87F, 0xC880, 0, 0xC881, 0xC882, 0xC883, 0xC884, 0xC885, /* 0xB0 */
- 0xC886, 0xC887, 0xC888, 0xC889, 0xC88A, 0xC88B, 0, 0, /* 0xB0 */
- 0, 0xC88C, 0xC88D, 0xC88E, 0xC88F, 0xC890, 0xC891, 0xC892, /* 0xC0 */
- 0xC893, 0xC894, 0xC895, 0xC896, 0xC897, 0xC898, 0xC899, 0xC89A, /* 0xC0 */
- 0xC89B, 0xC89C, 0, 0xC89D, 0xC89E, 0xC89F, 0xC8A0, 0xC8A1, /* 0xD0 */
- 0xC8A2, 0xC8A3, 0xC8A4, 0xC8A5, 0xC8A6, 0xC8A7, 0, 0, /* 0xD0 */
- 0, 0xC8A8, 0xC8A9, 0xC8AA, 0xC8AB, 0xC8AC, 0xC8AD, 0xC8AE, /* 0xE0 */
- 0xC8AF, 0xC8B0, 0xC8B1, 0xC8B2, 0xC8B3, 0xC8B4, 0xC8B5, 0xC8B6, /* 0xE0 */
- 0xC8B7, 0xC8B8, 0, 0xC8B9, 0xC8BA, 0xC8BB, 0xC8BC, 0xC8BD, /* 0xF0 */
- 0xC8BE, 0xC8BF, 0xC8C0, 0xC8C1, 0xC8C2, 0xC8C3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_BA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC8C4, 0xC8C5, 0xC8C6, 0xC8C7, 0xC8C8, 0xC8C9, 0xC8CA, /* 0x40 */
- 0xC8CB, 0xC8CC, 0xC8CD, 0xC8CE, 0xC8CF, 0xC8D0, 0xC8D1, 0xC8D2, /* 0x40 */
- 0xC8D3, 0xC8D4, 0, 0xC8D5, 0xC8D6, 0xC8D7, 0xC8D8, 0xC8D9, /* 0x50 */
- 0xC8DA, 0xC8DB, 0xC8DC, 0xC8DD, 0xC8DE, 0xC8DF, 0, 0, /* 0x50 */
- 0, 0xC8E0, 0xC8E1, 0xC8E2, 0xC8E3, 0xC8E4, 0xC8E5, 0xC8E6, /* 0x60 */
- 0xC8E7, 0xC8E8, 0xC8E9, 0xC8EA, 0xC8EB, 0xC8EC, 0xC8ED, 0xC8EE, /* 0x60 */
- 0xC8EF, 0xC8F0, 0, 0xC8F1, 0xC8F2, 0xC8F3, 0xC8F4, 0xC8F5, /* 0x70 */
- 0xC8F6, 0xC8F7, 0xC8F8, 0xC8F9, 0xC8FA, 0xC8FB, 0, 0, /* 0x70 */
- 0, 0xC8FC, 0xC8FD, 0xC8FE, 0xC8FF, 0xC900, 0xC901, 0xC902, /* 0x80 */
- 0xC903, 0xC904, 0xC905, 0xC906, 0xC907, 0xC908, 0xC909, 0xC90A, /* 0x80 */
- 0xC90B, 0xC90C, 0, 0xC90D, 0xC90E, 0xC90F, 0xC910, 0xC911, /* 0x90 */
- 0xC912, 0xC913, 0xC914, 0xC915, 0xC916, 0xC917, 0, 0, /* 0x90 */
- 0, 0xC918, 0xC919, 0xC91A, 0xC91B, 0xC91C, 0xC91D, 0xC91E, /* 0xA0 */
- 0xC91F, 0xC920, 0xC921, 0xC922, 0xC923, 0xC924, 0xC925, 0xC926, /* 0xA0 */
- 0xC927, 0xC928, 0, 0xC929, 0xC92A, 0xC92B, 0xC92C, 0xC92D, /* 0xB0 */
- 0xC92E, 0xC92F, 0xC930, 0xC931, 0xC932, 0xC933, 0, 0, /* 0xB0 */
- 0, 0xC934, 0xC935, 0xC936, 0xC937, 0xC938, 0xC939, 0xC93A, /* 0xC0 */
- 0xC93B, 0xC93C, 0xC93D, 0xC93E, 0xC93F, 0xC940, 0xC941, 0xC942, /* 0xC0 */
- 0xC943, 0xC944, 0, 0xC945, 0xC946, 0xC947, 0xC948, 0xC949, /* 0xD0 */
- 0xC94A, 0xC94B, 0xC94C, 0xC94D, 0xC94E, 0xC94F, 0, 0, /* 0xD0 */
- 0, 0xC950, 0xC951, 0xC952, 0xC953, 0xC954, 0xC955, 0xC956, /* 0xE0 */
- 0xC957, 0xC958, 0xC959, 0xC95A, 0xC95B, 0xC95C, 0xC95D, 0xC95E, /* 0xE0 */
- 0xC95F, 0xC960, 0, 0xC961, 0xC962, 0xC963, 0xC964, 0xC965, /* 0xF0 */
- 0xC966, 0xC967, 0xC968, 0xC969, 0xC96A, 0xC96B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_BB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC96C, 0xC96D, 0xC96E, 0xC96F, 0xC970, 0xC971, 0xC972, /* 0x40 */
- 0xC973, 0xC974, 0xC975, 0xC976, 0xC977, 0xC978, 0xC979, 0xC97A, /* 0x40 */
- 0xC97B, 0xC97C, 0, 0xC97D, 0xC97E, 0xC97F, 0xC980, 0xC981, /* 0x50 */
- 0xC982, 0xC983, 0xC984, 0xC985, 0xC986, 0xC987, 0, 0, /* 0x50 */
- 0, 0xC988, 0xC989, 0xC98A, 0xC98B, 0xC98C, 0xC98D, 0xC98E, /* 0x60 */
- 0xC98F, 0xC990, 0xC991, 0xC992, 0xC993, 0xC994, 0xC995, 0xC996, /* 0x60 */
- 0xC997, 0xC998, 0, 0xC999, 0xC99A, 0xC99B, 0xC99C, 0xC99D, /* 0x70 */
- 0xC99E, 0xC99F, 0xC9A0, 0xC9A1, 0xC9A2, 0xC9A3, 0, 0, /* 0x70 */
- 0, 0xC9A4, 0xC9A5, 0xC9A6, 0xC9A7, 0xC9A8, 0xC9A9, 0xC9AA, /* 0x80 */
- 0xC9AB, 0xC9AC, 0xC9AD, 0xC9AE, 0xC9AF, 0xC9B0, 0xC9B1, 0xC9B2, /* 0x80 */
- 0xC9B3, 0xC9B4, 0, 0xC9B5, 0xC9B6, 0xC9B7, 0xC9B8, 0xC9B9, /* 0x90 */
- 0xC9BA, 0xC9BB, 0xC9BC, 0xC9BD, 0xC9BE, 0xC9BF, 0, 0, /* 0x90 */
- 0, 0xC9C0, 0xC9C1, 0xC9C2, 0xC9C3, 0xC9C4, 0xC9C5, 0xC9C6, /* 0xA0 */
- 0xC9C7, 0xC9C8, 0xC9C9, 0xC9CA, 0xC9CB, 0xC9CC, 0xC9CD, 0xC9CE, /* 0xA0 */
- 0xC9CF, 0xC9D0, 0, 0xC9D1, 0xC9D2, 0xC9D3, 0xC9D4, 0xC9D5, /* 0xB0 */
- 0xC9D6, 0xC9D7, 0xC9D8, 0xC9D9, 0xC9DA, 0xC9DB /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_BC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3149, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xC9DC, 0xC9DD, 0xC9DE, 0xC9DF, 0xC9E0, 0xC9E1, 0xC9E2, /* 0x60 */
- 0xC9E3, 0xC9E4, 0xC9E5, 0xC9E6, 0xC9E7, 0xC9E8, 0xC9E9, 0xC9EA, /* 0x60 */
- 0xC9EB, 0xC9EC, 0, 0xC9ED, 0xC9EE, 0xC9EF, 0xC9F0, 0xC9F1, /* 0x70 */
- 0xC9F2, 0xC9F3, 0xC9F4, 0xC9F5, 0xC9F6, 0xC9F7, 0, 0, /* 0x70 */
- 0, 0xC9F8, 0xC9F9, 0xC9FA, 0xC9FB, 0xC9FC, 0xC9FD, 0xC9FE, /* 0x80 */
- 0xC9FF, 0xCA00, 0xCA01, 0xCA02, 0xCA03, 0xCA04, 0xCA05, 0xCA06, /* 0x80 */
- 0xCA07, 0xCA08, 0, 0xCA09, 0xCA0A, 0xCA0B, 0xCA0C, 0xCA0D, /* 0x90 */
- 0xCA0E, 0xCA0F, 0xCA10, 0xCA11, 0xCA12, 0xCA13, 0, 0, /* 0x90 */
- 0, 0xCA14, 0xCA15, 0xCA16, 0xCA17, 0xCA18, 0xCA19, 0xCA1A, /* 0xA0 */
- 0xCA1B, 0xCA1C, 0xCA1D, 0xCA1E, 0xCA1F, 0xCA20, 0xCA21, 0xCA22, /* 0xA0 */
- 0xCA23, 0xCA24, 0, 0xCA25, 0xCA26, 0xCA27, 0xCA28, 0xCA29, /* 0xB0 */
- 0xCA2A, 0xCA2B, 0xCA2C, 0xCA2D, 0xCA2E, 0xCA2F, 0, 0, /* 0xB0 */
- 0, 0xCA30, 0xCA31, 0xCA32, 0xCA33, 0xCA34, 0xCA35, 0xCA36, /* 0xC0 */
- 0xCA37, 0xCA38, 0xCA39, 0xCA3A, 0xCA3B, 0xCA3C, 0xCA3D, 0xCA3E, /* 0xC0 */
- 0xCA3F, 0xCA40, 0, 0xCA41, 0xCA42, 0xCA43, 0xCA44, 0xCA45, /* 0xD0 */
- 0xCA46, 0xCA47, 0xCA48, 0xCA49, 0xCA4A, 0xCA4B, 0, 0, /* 0xD0 */
- 0, 0xCA4C, 0xCA4D, 0xCA4E, 0xCA4F, 0xCA50, 0xCA51, 0xCA52, /* 0xE0 */
- 0xCA53, 0xCA54, 0xCA55, 0xCA56, 0xCA57, 0xCA58, 0xCA59, 0xCA5A, /* 0xE0 */
- 0xCA5B, 0xCA5C, 0, 0xCA5D, 0xCA5E, 0xCA5F, 0xCA60, 0xCA61, /* 0xF0 */
- 0xCA62, 0xCA63, 0xCA64, 0xCA65, 0xCA66, 0xCA67 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_BD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCA68, 0xCA69, 0xCA6A, 0xCA6B, 0xCA6C, 0xCA6D, 0xCA6E, /* 0x40 */
- 0xCA6F, 0xCA70, 0xCA71, 0xCA72, 0xCA73, 0xCA74, 0xCA75, 0xCA76, /* 0x40 */
- 0xCA77, 0xCA78, 0, 0xCA79, 0xCA7A, 0xCA7B, 0xCA7C, 0xCA7D, /* 0x50 */
- 0xCA7E, 0xCA7F, 0xCA80, 0xCA81, 0xCA82, 0xCA83, 0, 0, /* 0x50 */
- 0, 0xCA84, 0xCA85, 0xCA86, 0xCA87, 0xCA88, 0xCA89, 0xCA8A, /* 0x60 */
- 0xCA8B, 0xCA8C, 0xCA8D, 0xCA8E, 0xCA8F, 0xCA90, 0xCA91, 0xCA92, /* 0x60 */
- 0xCA93, 0xCA94, 0, 0xCA95, 0xCA96, 0xCA97, 0xCA98, 0xCA99, /* 0x70 */
- 0xCA9A, 0xCA9B, 0xCA9C, 0xCA9D, 0xCA9E, 0xCA9F, 0, 0, /* 0x70 */
- 0, 0xCAA0, 0xCAA1, 0xCAA2, 0xCAA3, 0xCAA4, 0xCAA5, 0xCAA6, /* 0x80 */
- 0xCAA7, 0xCAA8, 0xCAA9, 0xCAAA, 0xCAAB, 0xCAAC, 0xCAAD, 0xCAAE, /* 0x80 */
- 0xCAAF, 0xCAB0, 0, 0xCAB1, 0xCAB2, 0xCAB3, 0xCAB4, 0xCAB5, /* 0x90 */
- 0xCAB6, 0xCAB7, 0xCAB8, 0xCAB9, 0xCABA, 0xCABB, 0, 0, /* 0x90 */
- 0, 0xCABC, 0xCABD, 0xCABE, 0xCABF, 0xCAC0, 0xCAC1, 0xCAC2, /* 0xA0 */
- 0xCAC3, 0xCAC4, 0xCAC5, 0xCAC6, 0xCAC7, 0xCAC8, 0xCAC9, 0xCACA, /* 0xA0 */
- 0xCACB, 0xCACC, 0, 0xCACD, 0xCACE, 0xCACF, 0xCAD0, 0xCAD1, /* 0xB0 */
- 0xCAD2, 0xCAD3, 0xCAD4, 0xCAD5, 0xCAD6, 0xCAD7, 0, 0, /* 0xB0 */
- 0, 0xCAD8, 0xCAD9, 0xCADA, 0xCADB, 0xCADC, 0xCADD, 0xCADE, /* 0xC0 */
- 0xCADF, 0xCAE0, 0xCAE1, 0xCAE2, 0xCAE3, 0xCAE4, 0xCAE5, 0xCAE6, /* 0xC0 */
- 0xCAE7, 0xCAE8, 0, 0xCAE9, 0xCAEA, 0xCAEB, 0xCAEC, 0xCAED, /* 0xD0 */
- 0xCAEE, 0xCAEF, 0xCAF0, 0xCAF1, 0xCAF2, 0xCAF3, 0, 0, /* 0xD0 */
- 0, 0xCAF4, 0xCAF5, 0xCAF6, 0xCAF7, 0xCAF8, 0xCAF9, 0xCAFA, /* 0xE0 */
- 0xCAFB, 0xCAFC, 0xCAFD, 0xCAFE, 0xCAFF, 0xCB00, 0xCB01, 0xCB02, /* 0xE0 */
- 0xCB03, 0xCB04, 0, 0xCB05, 0xCB06, 0xCB07, 0xCB08, 0xCB09, /* 0xF0 */
- 0xCB0A, 0xCB0B, 0xCB0C, 0xCB0D, 0xCB0E, 0xCB0F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_BE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCB10, 0xCB11, 0xCB12, 0xCB13, 0xCB14, 0xCB15, 0xCB16, /* 0x40 */
- 0xCB17, 0xCB18, 0xCB19, 0xCB1A, 0xCB1B, 0xCB1C, 0xCB1D, 0xCB1E, /* 0x40 */
- 0xCB1F, 0xCB20, 0, 0xCB21, 0xCB22, 0xCB23, 0xCB24, 0xCB25, /* 0x50 */
- 0xCB26, 0xCB27, 0xCB28, 0xCB29, 0xCB2A, 0xCB2B, 0, 0, /* 0x50 */
- 0, 0xCB2C, 0xCB2D, 0xCB2E, 0xCB2F, 0xCB30, 0xCB31, 0xCB32, /* 0x60 */
- 0xCB33, 0xCB34, 0xCB35, 0xCB36, 0xCB37, 0xCB38, 0xCB39, 0xCB3A, /* 0x60 */
- 0xCB3B, 0xCB3C, 0, 0xCB3D, 0xCB3E, 0xCB3F, 0xCB40, 0xCB41, /* 0x70 */
- 0xCB42, 0xCB43, 0xCB44, 0xCB45, 0xCB46, 0xCB47, 0, 0, /* 0x70 */
- 0, 0xCB48, 0xCB49, 0xCB4A, 0xCB4B, 0xCB4C, 0xCB4D, 0xCB4E, /* 0x80 */
- 0xCB4F, 0xCB50, 0xCB51, 0xCB52, 0xCB53, 0xCB54, 0xCB55, 0xCB56, /* 0x80 */
- 0xCB57, 0xCB58, 0, 0xCB59, 0xCB5A, 0xCB5B, 0xCB5C, 0xCB5D, /* 0x90 */
- 0xCB5E, 0xCB5F, 0xCB60, 0xCB61, 0xCB62, 0xCB63, 0, 0, /* 0x90 */
- 0, 0xCB64, 0xCB65, 0xCB66, 0xCB67, 0xCB68, 0xCB69, 0xCB6A, /* 0xA0 */
- 0xCB6B, 0xCB6C, 0xCB6D, 0xCB6E, 0xCB6F, 0xCB70, 0xCB71, 0xCB72, /* 0xA0 */
- 0xCB73, 0xCB74, 0, 0xCB75, 0xCB76, 0xCB77, 0xCB78, 0xCB79, /* 0xB0 */
- 0xCB7A, 0xCB7B, 0xCB7C, 0xCB7D, 0xCB7E, 0xCB7F, 0, 0, /* 0xB0 */
- 0, 0xCB80, 0xCB81, 0xCB82, 0xCB83, 0xCB84, 0xCB85, 0xCB86, /* 0xC0 */
- 0xCB87, 0xCB88, 0xCB89, 0xCB8A, 0xCB8B, 0xCB8C, 0xCB8D, 0xCB8E, /* 0xC0 */
- 0xCB8F, 0xCB90, 0, 0xCB91, 0xCB92, 0xCB93, 0xCB94, 0xCB95, /* 0xD0 */
- 0xCB96, 0xCB97, 0xCB98, 0xCB99, 0xCB9A, 0xCB9B, 0, 0, /* 0xD0 */
- 0, 0xCB9C, 0xCB9D, 0xCB9E, 0xCB9F, 0xCBA0, 0xCBA1, 0xCBA2, /* 0xE0 */
- 0xCBA3, 0xCBA4, 0xCBA5, 0xCBA6, 0xCBA7, 0xCBA8, 0xCBA9, 0xCBAA, /* 0xE0 */
- 0xCBAB, 0xCBAC, 0, 0xCBAD, 0xCBAE, 0xCBAF, 0xCBB0, 0xCBB1, /* 0xF0 */
- 0xCBB2, 0xCBB3, 0xCBB4, 0xCBB5, 0xCBB6, 0xCBB7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_BF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCBB8, 0xCBB9, 0xCBBA, 0xCBBB, 0xCBBC, 0xCBBD, 0xCBBE, /* 0x40 */
- 0xCBBF, 0xCBC0, 0xCBC1, 0xCBC2, 0xCBC3, 0xCBC4, 0xCBC5, 0xCBC6, /* 0x40 */
- 0xCBC7, 0xCBC8, 0, 0xCBC9, 0xCBCA, 0xCBCB, 0xCBCC, 0xCBCD, /* 0x50 */
- 0xCBCE, 0xCBCF, 0xCBD0, 0xCBD1, 0xCBD2, 0xCBD3, 0, 0, /* 0x50 */
- 0, 0xCBD4, 0xCBD5, 0xCBD6, 0xCBD7, 0xCBD8, 0xCBD9, 0xCBDA, /* 0x60 */
- 0xCBDB, 0xCBDC, 0xCBDD, 0xCBDE, 0xCBDF, 0xCBE0, 0xCBE1, 0xCBE2, /* 0x60 */
- 0xCBE3, 0xCBE4, 0, 0xCBE5, 0xCBE6, 0xCBE7, 0xCBE8, 0xCBE9, /* 0x70 */
- 0xCBEA, 0xCBEB, 0xCBEC, 0xCBED, 0xCBEE, 0xCBEF, 0, 0, /* 0x70 */
- 0, 0xCBF0, 0xCBF1, 0xCBF2, 0xCBF3, 0xCBF4, 0xCBF5, 0xCBF6, /* 0x80 */
- 0xCBF7, 0xCBF8, 0xCBF9, 0xCBFA, 0xCBFB, 0xCBFC, 0xCBFD, 0xCBFE, /* 0x80 */
- 0xCBFF, 0xCC00, 0, 0xCC01, 0xCC02, 0xCC03, 0xCC04, 0xCC05, /* 0x90 */
- 0xCC06, 0xCC07, 0xCC08, 0xCC09, 0xCC0A, 0xCC0B, 0, 0, /* 0x90 */
- 0, 0xCC0C, 0xCC0D, 0xCC0E, 0xCC0F, 0xCC10, 0xCC11, 0xCC12, /* 0xA0 */
- 0xCC13, 0xCC14, 0xCC15, 0xCC16, 0xCC17, 0xCC18, 0xCC19, 0xCC1A, /* 0xA0 */
- 0xCC1B, 0xCC1C, 0, 0xCC1D, 0xCC1E, 0xCC1F, 0xCC20, 0xCC21, /* 0xB0 */
- 0xCC22, 0xCC23, 0xCC24, 0xCC25, 0xCC26, 0xCC27 /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_C0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x314A, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCC28, 0xCC29, 0xCC2A, 0xCC2B, 0xCC2C, 0xCC2D, 0xCC2E, /* 0x60 */
- 0xCC2F, 0xCC30, 0xCC31, 0xCC32, 0xCC33, 0xCC34, 0xCC35, 0xCC36, /* 0x60 */
- 0xCC37, 0xCC38, 0, 0xCC39, 0xCC3A, 0xCC3B, 0xCC3C, 0xCC3D, /* 0x70 */
- 0xCC3E, 0xCC3F, 0xCC40, 0xCC41, 0xCC42, 0xCC43, 0, 0, /* 0x70 */
- 0, 0xCC44, 0xCC45, 0xCC46, 0xCC47, 0xCC48, 0xCC49, 0xCC4A, /* 0x80 */
- 0xCC4B, 0xCC4C, 0xCC4D, 0xCC4E, 0xCC4F, 0xCC50, 0xCC51, 0xCC52, /* 0x80 */
- 0xCC53, 0xCC54, 0, 0xCC55, 0xCC56, 0xCC57, 0xCC58, 0xCC59, /* 0x90 */
- 0xCC5A, 0xCC5B, 0xCC5C, 0xCC5D, 0xCC5E, 0xCC5F, 0, 0, /* 0x90 */
- 0, 0xCC60, 0xCC61, 0xCC62, 0xCC63, 0xCC64, 0xCC65, 0xCC66, /* 0xA0 */
- 0xCC67, 0xCC68, 0xCC69, 0xCC6A, 0xCC6B, 0xCC6C, 0xCC6D, 0xCC6E, /* 0xA0 */
- 0xCC6F, 0xCC70, 0, 0xCC71, 0xCC72, 0xCC73, 0xCC74, 0xCC75, /* 0xB0 */
- 0xCC76, 0xCC77, 0xCC78, 0xCC79, 0xCC7A, 0xCC7B, 0, 0, /* 0xB0 */
- 0, 0xCC7C, 0xCC7D, 0xCC7E, 0xCC7F, 0xCC80, 0xCC81, 0xCC82, /* 0xC0 */
- 0xCC83, 0xCC84, 0xCC85, 0xCC86, 0xCC87, 0xCC88, 0xCC89, 0xCC8A, /* 0xC0 */
- 0xCC8B, 0xCC8C, 0, 0xCC8D, 0xCC8E, 0xCC8F, 0xCC90, 0xCC91, /* 0xD0 */
- 0xCC92, 0xCC93, 0xCC94, 0xCC95, 0xCC96, 0xCC97, 0, 0, /* 0xD0 */
- 0, 0xCC98, 0xCC99, 0xCC9A, 0xCC9B, 0xCC9C, 0xCC9D, 0xCC9E, /* 0xE0 */
- 0xCC9F, 0xCCA0, 0xCCA1, 0xCCA2, 0xCCA3, 0xCCA4, 0xCCA5, 0xCCA6, /* 0xE0 */
- 0xCCA7, 0xCCA8, 0, 0xCCA9, 0xCCAA, 0xCCAB, 0xCCAC, 0xCCAD, /* 0xF0 */
- 0xCCAE, 0xCCAF, 0xCCB0, 0xCCB1, 0xCCB2, 0xCCB3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_C1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCCB4, 0xCCB5, 0xCCB6, 0xCCB7, 0xCCB8, 0xCCB9, 0xCCBA, /* 0x40 */
- 0xCCBB, 0xCCBC, 0xCCBD, 0xCCBE, 0xCCBF, 0xCCC0, 0xCCC1, 0xCCC2, /* 0x40 */
- 0xCCC3, 0xCCC4, 0, 0xCCC5, 0xCCC6, 0xCCC7, 0xCCC8, 0xCCC9, /* 0x50 */
- 0xCCCA, 0xCCCB, 0xCCCC, 0xCCCD, 0xCCCE, 0xCCCF, 0, 0, /* 0x50 */
- 0, 0xCCD0, 0xCCD1, 0xCCD2, 0xCCD3, 0xCCD4, 0xCCD5, 0xCCD6, /* 0x60 */
- 0xCCD7, 0xCCD8, 0xCCD9, 0xCCDA, 0xCCDB, 0xCCDC, 0xCCDD, 0xCCDE, /* 0x60 */
- 0xCCDF, 0xCCE0, 0, 0xCCE1, 0xCCE2, 0xCCE3, 0xCCE4, 0xCCE5, /* 0x70 */
- 0xCCE6, 0xCCE7, 0xCCE8, 0xCCE9, 0xCCEA, 0xCCEB, 0, 0, /* 0x70 */
- 0, 0xCCEC, 0xCCED, 0xCCEE, 0xCCEF, 0xCCF0, 0xCCF1, 0xCCF2, /* 0x80 */
- 0xCCF3, 0xCCF4, 0xCCF5, 0xCCF6, 0xCCF7, 0xCCF8, 0xCCF9, 0xCCFA, /* 0x80 */
- 0xCCFB, 0xCCFC, 0, 0xCCFD, 0xCCFE, 0xCCFF, 0xCD00, 0xCD01, /* 0x90 */
- 0xCD02, 0xCD03, 0xCD04, 0xCD05, 0xCD06, 0xCD07, 0, 0, /* 0x90 */
- 0, 0xCD08, 0xCD09, 0xCD0A, 0xCD0B, 0xCD0C, 0xCD0D, 0xCD0E, /* 0xA0 */
- 0xCD0F, 0xCD10, 0xCD11, 0xCD12, 0xCD13, 0xCD14, 0xCD15, 0xCD16, /* 0xA0 */
- 0xCD17, 0xCD18, 0, 0xCD19, 0xCD1A, 0xCD1B, 0xCD1C, 0xCD1D, /* 0xB0 */
- 0xCD1E, 0xCD1F, 0xCD20, 0xCD21, 0xCD22, 0xCD23, 0, 0, /* 0xB0 */
- 0, 0xCD24, 0xCD25, 0xCD26, 0xCD27, 0xCD28, 0xCD29, 0xCD2A, /* 0xC0 */
- 0xCD2B, 0xCD2C, 0xCD2D, 0xCD2E, 0xCD2F, 0xCD30, 0xCD31, 0xCD32, /* 0xC0 */
- 0xCD33, 0xCD34, 0, 0xCD35, 0xCD36, 0xCD37, 0xCD38, 0xCD39, /* 0xD0 */
- 0xCD3A, 0xCD3B, 0xCD3C, 0xCD3D, 0xCD3E, 0xCD3F, 0, 0, /* 0xD0 */
- 0, 0xCD40, 0xCD41, 0xCD42, 0xCD43, 0xCD44, 0xCD45, 0xCD46, /* 0xE0 */
- 0xCD47, 0xCD48, 0xCD49, 0xCD4A, 0xCD4B, 0xCD4C, 0xCD4D, 0xCD4E, /* 0xE0 */
- 0xCD4F, 0xCD50, 0, 0xCD51, 0xCD52, 0xCD53, 0xCD54, 0xCD55, /* 0xF0 */
- 0xCD56, 0xCD57, 0xCD58, 0xCD59, 0xCD5A, 0xCD5B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_C2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCD5C, 0xCD5D, 0xCD5E, 0xCD5F, 0xCD60, 0xCD61, 0xCD62, /* 0x40 */
- 0xCD63, 0xCD64, 0xCD65, 0xCD66, 0xCD67, 0xCD68, 0xCD69, 0xCD6A, /* 0x40 */
- 0xCD6B, 0xCD6C, 0, 0xCD6D, 0xCD6E, 0xCD6F, 0xCD70, 0xCD71, /* 0x50 */
- 0xCD72, 0xCD73, 0xCD74, 0xCD75, 0xCD76, 0xCD77, 0, 0, /* 0x50 */
- 0, 0xCD78, 0xCD79, 0xCD7A, 0xCD7B, 0xCD7C, 0xCD7D, 0xCD7E, /* 0x60 */
- 0xCD7F, 0xCD80, 0xCD81, 0xCD82, 0xCD83, 0xCD84, 0xCD85, 0xCD86, /* 0x60 */
- 0xCD87, 0xCD88, 0, 0xCD89, 0xCD8A, 0xCD8B, 0xCD8C, 0xCD8D, /* 0x70 */
- 0xCD8E, 0xCD8F, 0xCD90, 0xCD91, 0xCD92, 0xCD93, 0, 0, /* 0x70 */
- 0, 0xCD94, 0xCD95, 0xCD96, 0xCD97, 0xCD98, 0xCD99, 0xCD9A, /* 0x80 */
- 0xCD9B, 0xCD9C, 0xCD9D, 0xCD9E, 0xCD9F, 0xCDA0, 0xCDA1, 0xCDA2, /* 0x80 */
- 0xCDA3, 0xCDA4, 0, 0xCDA5, 0xCDA6, 0xCDA7, 0xCDA8, 0xCDA9, /* 0x90 */
- 0xCDAA, 0xCDAB, 0xCDAC, 0xCDAD, 0xCDAE, 0xCDAF, 0, 0, /* 0x90 */
- 0, 0xCDB0, 0xCDB1, 0xCDB2, 0xCDB3, 0xCDB4, 0xCDB5, 0xCDB6, /* 0xA0 */
- 0xCDB7, 0xCDB8, 0xCDB9, 0xCDBA, 0xCDBB, 0xCDBC, 0xCDBD, 0xCDBE, /* 0xA0 */
- 0xCDBF, 0xCDC0, 0, 0xCDC1, 0xCDC2, 0xCDC3, 0xCDC4, 0xCDC5, /* 0xB0 */
- 0xCDC6, 0xCDC7, 0xCDC8, 0xCDC9, 0xCDCA, 0xCDCB, 0, 0, /* 0xB0 */
- 0, 0xCDCC, 0xCDCD, 0xCDCE, 0xCDCF, 0xCDD0, 0xCDD1, 0xCDD2, /* 0xC0 */
- 0xCDD3, 0xCDD4, 0xCDD5, 0xCDD6, 0xCDD7, 0xCDD8, 0xCDD9, 0xCDDA, /* 0xC0 */
- 0xCDDB, 0xCDDC, 0, 0xCDDD, 0xCDDE, 0xCDDF, 0xCDE0, 0xCDE1, /* 0xD0 */
- 0xCDE2, 0xCDE3, 0xCDE4, 0xCDE5, 0xCDE6, 0xCDE7, 0, 0, /* 0xD0 */
- 0, 0xCDE8, 0xCDE9, 0xCDEA, 0xCDEB, 0xCDEC, 0xCDED, 0xCDEE, /* 0xE0 */
- 0xCDEF, 0xCDF0, 0xCDF1, 0xCDF2, 0xCDF3, 0xCDF4, 0xCDF5, 0xCDF6, /* 0xE0 */
- 0xCDF7, 0xCDF8, 0, 0xCDF9, 0xCDFA, 0xCDFB, 0xCDFC, 0xCDFD, /* 0xF0 */
- 0xCDFE, 0xCDFF, 0xCE00, 0xCE01, 0xCE02, 0xCE03 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_C3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCE04, 0xCE05, 0xCE06, 0xCE07, 0xCE08, 0xCE09, 0xCE0A, /* 0x40 */
- 0xCE0B, 0xCE0C, 0xCE0D, 0xCE0E, 0xCE0F, 0xCE10, 0xCE11, 0xCE12, /* 0x40 */
- 0xCE13, 0xCE14, 0, 0xCE15, 0xCE16, 0xCE17, 0xCE18, 0xCE19, /* 0x50 */
- 0xCE1A, 0xCE1B, 0xCE1C, 0xCE1D, 0xCE1E, 0xCE1F, 0, 0, /* 0x50 */
- 0, 0xCE20, 0xCE21, 0xCE22, 0xCE23, 0xCE24, 0xCE25, 0xCE26, /* 0x60 */
- 0xCE27, 0xCE28, 0xCE29, 0xCE2A, 0xCE2B, 0xCE2C, 0xCE2D, 0xCE2E, /* 0x60 */
- 0xCE2F, 0xCE30, 0, 0xCE31, 0xCE32, 0xCE33, 0xCE34, 0xCE35, /* 0x70 */
- 0xCE36, 0xCE37, 0xCE38, 0xCE39, 0xCE3A, 0xCE3B, 0, 0, /* 0x70 */
- 0, 0xCE3C, 0xCE3D, 0xCE3E, 0xCE3F, 0xCE40, 0xCE41, 0xCE42, /* 0x80 */
- 0xCE43, 0xCE44, 0xCE45, 0xCE46, 0xCE47, 0xCE48, 0xCE49, 0xCE4A, /* 0x80 */
- 0xCE4B, 0xCE4C, 0, 0xCE4D, 0xCE4E, 0xCE4F, 0xCE50, 0xCE51, /* 0x90 */
- 0xCE52, 0xCE53, 0xCE54, 0xCE55, 0xCE56, 0xCE57, 0, 0, /* 0x90 */
- 0, 0xCE58, 0xCE59, 0xCE5A, 0xCE5B, 0xCE5C, 0xCE5D, 0xCE5E, /* 0xA0 */
- 0xCE5F, 0xCE60, 0xCE61, 0xCE62, 0xCE63, 0xCE64, 0xCE65, 0xCE66, /* 0xA0 */
- 0xCE67, 0xCE68, 0, 0xCE69, 0xCE6A, 0xCE6B, 0xCE6C, 0xCE6D, /* 0xB0 */
- 0xCE6E, 0xCE6F, 0xCE70, 0xCE71, 0xCE72, 0xCE73 /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_C4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x314B, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCE74, 0xCE75, 0xCE76, 0xCE77, 0xCE78, 0xCE79, 0xCE7A, /* 0x60 */
- 0xCE7B, 0xCE7C, 0xCE7D, 0xCE7E, 0xCE7F, 0xCE80, 0xCE81, 0xCE82, /* 0x60 */
- 0xCE83, 0xCE84, 0, 0xCE85, 0xCE86, 0xCE87, 0xCE88, 0xCE89, /* 0x70 */
- 0xCE8A, 0xCE8B, 0xCE8C, 0xCE8D, 0xCE8E, 0xCE8F, 0, 0, /* 0x70 */
- 0, 0xCE90, 0xCE91, 0xCE92, 0xCE93, 0xCE94, 0xCE95, 0xCE96, /* 0x80 */
- 0xCE97, 0xCE98, 0xCE99, 0xCE9A, 0xCE9B, 0xCE9C, 0xCE9D, 0xCE9E, /* 0x80 */
- 0xCE9F, 0xCEA0, 0, 0xCEA1, 0xCEA2, 0xCEA3, 0xCEA4, 0xCEA5, /* 0x90 */
- 0xCEA6, 0xCEA7, 0xCEA8, 0xCEA9, 0xCEAA, 0xCEAB, 0, 0, /* 0x90 */
- 0, 0xCEAC, 0xCEAD, 0xCEAE, 0xCEAF, 0xCEB0, 0xCEB1, 0xCEB2, /* 0xA0 */
- 0xCEB3, 0xCEB4, 0xCEB5, 0xCEB6, 0xCEB7, 0xCEB8, 0xCEB9, 0xCEBA, /* 0xA0 */
- 0xCEBB, 0xCEBC, 0, 0xCEBD, 0xCEBE, 0xCEBF, 0xCEC0, 0xCEC1, /* 0xB0 */
- 0xCEC2, 0xCEC3, 0xCEC4, 0xCEC5, 0xCEC6, 0xCEC7, 0, 0, /* 0xB0 */
- 0, 0xCEC8, 0xCEC9, 0xCECA, 0xCECB, 0xCECC, 0xCECD, 0xCECE, /* 0xC0 */
- 0xCECF, 0xCED0, 0xCED1, 0xCED2, 0xCED3, 0xCED4, 0xCED5, 0xCED6, /* 0xC0 */
- 0xCED7, 0xCED8, 0, 0xCED9, 0xCEDA, 0xCEDB, 0xCEDC, 0xCEDD, /* 0xD0 */
- 0xCEDE, 0xCEDF, 0xCEE0, 0xCEE1, 0xCEE2, 0xCEE3, 0, 0, /* 0xD0 */
- 0, 0xCEE4, 0xCEE5, 0xCEE6, 0xCEE7, 0xCEE8, 0xCEE9, 0xCEEA, /* 0xE0 */
- 0xCEEB, 0xCEEC, 0xCEED, 0xCEEE, 0xCEEF, 0xCEF0, 0xCEF1, 0xCEF2, /* 0xE0 */
- 0xCEF3, 0xCEF4, 0, 0xCEF5, 0xCEF6, 0xCEF7, 0xCEF8, 0xCEF9, /* 0xF0 */
- 0xCEFA, 0xCEFB, 0xCEFC, 0xCEFD, 0xCEFE, 0xCEFF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_C5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCF00, 0xCF01, 0xCF02, 0xCF03, 0xCF04, 0xCF05, 0xCF06, /* 0x40 */
- 0xCF07, 0xCF08, 0xCF09, 0xCF0A, 0xCF0B, 0xCF0C, 0xCF0D, 0xCF0E, /* 0x40 */
- 0xCF0F, 0xCF10, 0, 0xCF11, 0xCF12, 0xCF13, 0xCF14, 0xCF15, /* 0x50 */
- 0xCF16, 0xCF17, 0xCF18, 0xCF19, 0xCF1A, 0xCF1B, 0, 0, /* 0x50 */
- 0, 0xCF1C, 0xCF1D, 0xCF1E, 0xCF1F, 0xCF20, 0xCF21, 0xCF22, /* 0x60 */
- 0xCF23, 0xCF24, 0xCF25, 0xCF26, 0xCF27, 0xCF28, 0xCF29, 0xCF2A, /* 0x60 */
- 0xCF2B, 0xCF2C, 0, 0xCF2D, 0xCF2E, 0xCF2F, 0xCF30, 0xCF31, /* 0x70 */
- 0xCF32, 0xCF33, 0xCF34, 0xCF35, 0xCF36, 0xCF37, 0, 0, /* 0x70 */
- 0, 0xCF38, 0xCF39, 0xCF3A, 0xCF3B, 0xCF3C, 0xCF3D, 0xCF3E, /* 0x80 */
- 0xCF3F, 0xCF40, 0xCF41, 0xCF42, 0xCF43, 0xCF44, 0xCF45, 0xCF46, /* 0x80 */
- 0xCF47, 0xCF48, 0, 0xCF49, 0xCF4A, 0xCF4B, 0xCF4C, 0xCF4D, /* 0x90 */
- 0xCF4E, 0xCF4F, 0xCF50, 0xCF51, 0xCF52, 0xCF53, 0, 0, /* 0x90 */
- 0, 0xCF54, 0xCF55, 0xCF56, 0xCF57, 0xCF58, 0xCF59, 0xCF5A, /* 0xA0 */
- 0xCF5B, 0xCF5C, 0xCF5D, 0xCF5E, 0xCF5F, 0xCF60, 0xCF61, 0xCF62, /* 0xA0 */
- 0xCF63, 0xCF64, 0, 0xCF65, 0xCF66, 0xCF67, 0xCF68, 0xCF69, /* 0xB0 */
- 0xCF6A, 0xCF6B, 0xCF6C, 0xCF6D, 0xCF6E, 0xCF6F, 0, 0, /* 0xB0 */
- 0, 0xCF70, 0xCF71, 0xCF72, 0xCF73, 0xCF74, 0xCF75, 0xCF76, /* 0xC0 */
- 0xCF77, 0xCF78, 0xCF79, 0xCF7A, 0xCF7B, 0xCF7C, 0xCF7D, 0xCF7E, /* 0xC0 */
- 0xCF7F, 0xCF80, 0, 0xCF81, 0xCF82, 0xCF83, 0xCF84, 0xCF85, /* 0xD0 */
- 0xCF86, 0xCF87, 0xCF88, 0xCF89, 0xCF8A, 0xCF8B, 0, 0, /* 0xD0 */
- 0, 0xCF8C, 0xCF8D, 0xCF8E, 0xCF8F, 0xCF90, 0xCF91, 0xCF92, /* 0xE0 */
- 0xCF93, 0xCF94, 0xCF95, 0xCF96, 0xCF97, 0xCF98, 0xCF99, 0xCF9A, /* 0xE0 */
- 0xCF9B, 0xCF9C, 0, 0xCF9D, 0xCF9E, 0xCF9F, 0xCFA0, 0xCFA1, /* 0xF0 */
- 0xCFA2, 0xCFA3, 0xCFA4, 0xCFA5, 0xCFA6, 0xCFA7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_C6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCFA8, 0xCFA9, 0xCFAA, 0xCFAB, 0xCFAC, 0xCFAD, 0xCFAE, /* 0x40 */
- 0xCFAF, 0xCFB0, 0xCFB1, 0xCFB2, 0xCFB3, 0xCFB4, 0xCFB5, 0xCFB6, /* 0x40 */
- 0xCFB7, 0xCFB8, 0, 0xCFB9, 0xCFBA, 0xCFBB, 0xCFBC, 0xCFBD, /* 0x50 */
- 0xCFBE, 0xCFBF, 0xCFC0, 0xCFC1, 0xCFC2, 0xCFC3, 0, 0, /* 0x50 */
- 0, 0xCFC4, 0xCFC5, 0xCFC6, 0xCFC7, 0xCFC8, 0xCFC9, 0xCFCA, /* 0x60 */
- 0xCFCB, 0xCFCC, 0xCFCD, 0xCFCE, 0xCFCF, 0xCFD0, 0xCFD1, 0xCFD2, /* 0x60 */
- 0xCFD3, 0xCFD4, 0, 0xCFD5, 0xCFD6, 0xCFD7, 0xCFD8, 0xCFD9, /* 0x70 */
- 0xCFDA, 0xCFDB, 0xCFDC, 0xCFDD, 0xCFDE, 0xCFDF, 0, 0, /* 0x70 */
- 0, 0xCFE0, 0xCFE1, 0xCFE2, 0xCFE3, 0xCFE4, 0xCFE5, 0xCFE6, /* 0x80 */
- 0xCFE7, 0xCFE8, 0xCFE9, 0xCFEA, 0xCFEB, 0xCFEC, 0xCFED, 0xCFEE, /* 0x80 */
- 0xCFEF, 0xCFF0, 0, 0xCFF1, 0xCFF2, 0xCFF3, 0xCFF4, 0xCFF5, /* 0x90 */
- 0xCFF6, 0xCFF7, 0xCFF8, 0xCFF9, 0xCFFA, 0xCFFB, 0, 0, /* 0x90 */
- 0, 0xCFFC, 0xCFFD, 0xCFFE, 0xCFFF, 0xD000, 0xD001, 0xD002, /* 0xA0 */
- 0xD003, 0xD004, 0xD005, 0xD006, 0xD007, 0xD008, 0xD009, 0xD00A, /* 0xA0 */
- 0xD00B, 0xD00C, 0, 0xD00D, 0xD00E, 0xD00F, 0xD010, 0xD011, /* 0xB0 */
- 0xD012, 0xD013, 0xD014, 0xD015, 0xD016, 0xD017, 0, 0, /* 0xB0 */
- 0, 0xD018, 0xD019, 0xD01A, 0xD01B, 0xD01C, 0xD01D, 0xD01E, /* 0xC0 */
- 0xD01F, 0xD020, 0xD021, 0xD022, 0xD023, 0xD024, 0xD025, 0xD026, /* 0xC0 */
- 0xD027, 0xD028, 0, 0xD029, 0xD02A, 0xD02B, 0xD02C, 0xD02D, /* 0xD0 */
- 0xD02E, 0xD02F, 0xD030, 0xD031, 0xD032, 0xD033, 0, 0, /* 0xD0 */
- 0, 0xD034, 0xD035, 0xD036, 0xD037, 0xD038, 0xD039, 0xD03A, /* 0xE0 */
- 0xD03B, 0xD03C, 0xD03D, 0xD03E, 0xD03F, 0xD040, 0xD041, 0xD042, /* 0xE0 */
- 0xD043, 0xD044, 0, 0xD045, 0xD046, 0xD047, 0xD048, 0xD049, /* 0xF0 */
- 0xD04A, 0xD04B, 0xD04C, 0xD04D, 0xD04E, 0xD04F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_C7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD050, 0xD051, 0xD052, 0xD053, 0xD054, 0xD055, 0xD056, /* 0x40 */
- 0xD057, 0xD058, 0xD059, 0xD05A, 0xD05B, 0xD05C, 0xD05D, 0xD05E, /* 0x40 */
- 0xD05F, 0xD060, 0, 0xD061, 0xD062, 0xD063, 0xD064, 0xD065, /* 0x50 */
- 0xD066, 0xD067, 0xD068, 0xD069, 0xD06A, 0xD06B, 0, 0, /* 0x50 */
- 0, 0xD06C, 0xD06D, 0xD06E, 0xD06F, 0xD070, 0xD071, 0xD072, /* 0x60 */
- 0xD073, 0xD074, 0xD075, 0xD076, 0xD077, 0xD078, 0xD079, 0xD07A, /* 0x60 */
- 0xD07B, 0xD07C, 0, 0xD07D, 0xD07E, 0xD07F, 0xD080, 0xD081, /* 0x70 */
- 0xD082, 0xD083, 0xD084, 0xD085, 0xD086, 0xD087, 0, 0, /* 0x70 */
- 0, 0xD088, 0xD089, 0xD08A, 0xD08B, 0xD08C, 0xD08D, 0xD08E, /* 0x80 */
- 0xD08F, 0xD090, 0xD091, 0xD092, 0xD093, 0xD094, 0xD095, 0xD096, /* 0x80 */
- 0xD097, 0xD098, 0, 0xD099, 0xD09A, 0xD09B, 0xD09C, 0xD09D, /* 0x90 */
- 0xD09E, 0xD09F, 0xD0A0, 0xD0A1, 0xD0A2, 0xD0A3, 0, 0, /* 0x90 */
- 0, 0xD0A4, 0xD0A5, 0xD0A6, 0xD0A7, 0xD0A8, 0xD0A9, 0xD0AA, /* 0xA0 */
- 0xD0AB, 0xD0AC, 0xD0AD, 0xD0AE, 0xD0AF, 0xD0B0, 0xD0B1, 0xD0B2, /* 0xA0 */
- 0xD0B3, 0xD0B4, 0, 0xD0B5, 0xD0B6, 0xD0B7, 0xD0B8, 0xD0B9, /* 0xB0 */
- 0xD0BA, 0xD0BB, 0xD0BC, 0xD0BD, 0xD0BE, 0xD0BF /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_C8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x314C, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD0C0, 0xD0C1, 0xD0C2, 0xD0C3, 0xD0C4, 0xD0C5, 0xD0C6, /* 0x60 */
- 0xD0C7, 0xD0C8, 0xD0C9, 0xD0CA, 0xD0CB, 0xD0CC, 0xD0CD, 0xD0CE, /* 0x60 */
- 0xD0CF, 0xD0D0, 0, 0xD0D1, 0xD0D2, 0xD0D3, 0xD0D4, 0xD0D5, /* 0x70 */
- 0xD0D6, 0xD0D7, 0xD0D8, 0xD0D9, 0xD0DA, 0xD0DB, 0, 0, /* 0x70 */
- 0, 0xD0DC, 0xD0DD, 0xD0DE, 0xD0DF, 0xD0E0, 0xD0E1, 0xD0E2, /* 0x80 */
- 0xD0E3, 0xD0E4, 0xD0E5, 0xD0E6, 0xD0E7, 0xD0E8, 0xD0E9, 0xD0EA, /* 0x80 */
- 0xD0EB, 0xD0EC, 0, 0xD0ED, 0xD0EE, 0xD0EF, 0xD0F0, 0xD0F1, /* 0x90 */
- 0xD0F2, 0xD0F3, 0xD0F4, 0xD0F5, 0xD0F6, 0xD0F7, 0, 0, /* 0x90 */
- 0, 0xD0F8, 0xD0F9, 0xD0FA, 0xD0FB, 0xD0FC, 0xD0FD, 0xD0FE, /* 0xA0 */
- 0xD0FF, 0xD100, 0xD101, 0xD102, 0xD103, 0xD104, 0xD105, 0xD106, /* 0xA0 */
- 0xD107, 0xD108, 0, 0xD109, 0xD10A, 0xD10B, 0xD10C, 0xD10D, /* 0xB0 */
- 0xD10E, 0xD10F, 0xD110, 0xD111, 0xD112, 0xD113, 0, 0, /* 0xB0 */
- 0, 0xD114, 0xD115, 0xD116, 0xD117, 0xD118, 0xD119, 0xD11A, /* 0xC0 */
- 0xD11B, 0xD11C, 0xD11D, 0xD11E, 0xD11F, 0xD120, 0xD121, 0xD122, /* 0xC0 */
- 0xD123, 0xD124, 0, 0xD125, 0xD126, 0xD127, 0xD128, 0xD129, /* 0xD0 */
- 0xD12A, 0xD12B, 0xD12C, 0xD12D, 0xD12E, 0xD12F, 0, 0, /* 0xD0 */
- 0, 0xD130, 0xD131, 0xD132, 0xD133, 0xD134, 0xD135, 0xD136, /* 0xE0 */
- 0xD137, 0xD138, 0xD139, 0xD13A, 0xD13B, 0xD13C, 0xD13D, 0xD13E, /* 0xE0 */
- 0xD13F, 0xD140, 0, 0xD141, 0xD142, 0xD143, 0xD144, 0xD145, /* 0xF0 */
- 0xD146, 0xD147, 0xD148, 0xD149, 0xD14A, 0xD14B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_C9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD14C, 0xD14D, 0xD14E, 0xD14F, 0xD150, 0xD151, 0xD152, /* 0x40 */
- 0xD153, 0xD154, 0xD155, 0xD156, 0xD157, 0xD158, 0xD159, 0xD15A, /* 0x40 */
- 0xD15B, 0xD15C, 0, 0xD15D, 0xD15E, 0xD15F, 0xD160, 0xD161, /* 0x50 */
- 0xD162, 0xD163, 0xD164, 0xD165, 0xD166, 0xD167, 0, 0, /* 0x50 */
- 0, 0xD168, 0xD169, 0xD16A, 0xD16B, 0xD16C, 0xD16D, 0xD16E, /* 0x60 */
- 0xD16F, 0xD170, 0xD171, 0xD172, 0xD173, 0xD174, 0xD175, 0xD176, /* 0x60 */
- 0xD177, 0xD178, 0, 0xD179, 0xD17A, 0xD17B, 0xD17C, 0xD17D, /* 0x70 */
- 0xD17E, 0xD17F, 0xD180, 0xD181, 0xD182, 0xD183, 0, 0, /* 0x70 */
- 0, 0xD184, 0xD185, 0xD186, 0xD187, 0xD188, 0xD189, 0xD18A, /* 0x80 */
- 0xD18B, 0xD18C, 0xD18D, 0xD18E, 0xD18F, 0xD190, 0xD191, 0xD192, /* 0x80 */
- 0xD193, 0xD194, 0, 0xD195, 0xD196, 0xD197, 0xD198, 0xD199, /* 0x90 */
- 0xD19A, 0xD19B, 0xD19C, 0xD19D, 0xD19E, 0xD19F, 0, 0, /* 0x90 */
- 0, 0xD1A0, 0xD1A1, 0xD1A2, 0xD1A3, 0xD1A4, 0xD1A5, 0xD1A6, /* 0xA0 */
- 0xD1A7, 0xD1A8, 0xD1A9, 0xD1AA, 0xD1AB, 0xD1AC, 0xD1AD, 0xD1AE, /* 0xA0 */
- 0xD1AF, 0xD1B0, 0, 0xD1B1, 0xD1B2, 0xD1B3, 0xD1B4, 0xD1B5, /* 0xB0 */
- 0xD1B6, 0xD1B7, 0xD1B8, 0xD1B9, 0xD1BA, 0xD1BB, 0, 0, /* 0xB0 */
- 0, 0xD1BC, 0xD1BD, 0xD1BE, 0xD1BF, 0xD1C0, 0xD1C1, 0xD1C2, /* 0xC0 */
- 0xD1C3, 0xD1C4, 0xD1C5, 0xD1C6, 0xD1C7, 0xD1C8, 0xD1C9, 0xD1CA, /* 0xC0 */
- 0xD1CB, 0xD1CC, 0, 0xD1CD, 0xD1CE, 0xD1CF, 0xD1D0, 0xD1D1, /* 0xD0 */
- 0xD1D2, 0xD1D3, 0xD1D4, 0xD1D5, 0xD1D6, 0xD1D7, 0, 0, /* 0xD0 */
- 0, 0xD1D8, 0xD1D9, 0xD1DA, 0xD1DB, 0xD1DC, 0xD1DD, 0xD1DE, /* 0xE0 */
- 0xD1DF, 0xD1E0, 0xD1E1, 0xD1E2, 0xD1E3, 0xD1E4, 0xD1E5, 0xD1E6, /* 0xE0 */
- 0xD1E7, 0xD1E8, 0, 0xD1E9, 0xD1EA, 0xD1EB, 0xD1EC, 0xD1ED, /* 0xF0 */
- 0xD1EE, 0xD1EF, 0xD1F0, 0xD1F1, 0xD1F2, 0xD1F3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_CA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD1F4, 0xD1F5, 0xD1F6, 0xD1F7, 0xD1F8, 0xD1F9, 0xD1FA, /* 0x40 */
- 0xD1FB, 0xD1FC, 0xD1FD, 0xD1FE, 0xD1FF, 0xD200, 0xD201, 0xD202, /* 0x40 */
- 0xD203, 0xD204, 0, 0xD205, 0xD206, 0xD207, 0xD208, 0xD209, /* 0x50 */
- 0xD20A, 0xD20B, 0xD20C, 0xD20D, 0xD20E, 0xD20F, 0, 0, /* 0x50 */
- 0, 0xD210, 0xD211, 0xD212, 0xD213, 0xD214, 0xD215, 0xD216, /* 0x60 */
- 0xD217, 0xD218, 0xD219, 0xD21A, 0xD21B, 0xD21C, 0xD21D, 0xD21E, /* 0x60 */
- 0xD21F, 0xD220, 0, 0xD221, 0xD222, 0xD223, 0xD224, 0xD225, /* 0x70 */
- 0xD226, 0xD227, 0xD228, 0xD229, 0xD22A, 0xD22B, 0, 0, /* 0x70 */
- 0, 0xD22C, 0xD22D, 0xD22E, 0xD22F, 0xD230, 0xD231, 0xD232, /* 0x80 */
- 0xD233, 0xD234, 0xD235, 0xD236, 0xD237, 0xD238, 0xD239, 0xD23A, /* 0x80 */
- 0xD23B, 0xD23C, 0, 0xD23D, 0xD23E, 0xD23F, 0xD240, 0xD241, /* 0x90 */
- 0xD242, 0xD243, 0xD244, 0xD245, 0xD246, 0xD247, 0, 0, /* 0x90 */
- 0, 0xD248, 0xD249, 0xD24A, 0xD24B, 0xD24C, 0xD24D, 0xD24E, /* 0xA0 */
- 0xD24F, 0xD250, 0xD251, 0xD252, 0xD253, 0xD254, 0xD255, 0xD256, /* 0xA0 */
- 0xD257, 0xD258, 0, 0xD259, 0xD25A, 0xD25B, 0xD25C, 0xD25D, /* 0xB0 */
- 0xD25E, 0xD25F, 0xD260, 0xD261, 0xD262, 0xD263, 0, 0, /* 0xB0 */
- 0, 0xD264, 0xD265, 0xD266, 0xD267, 0xD268, 0xD269, 0xD26A, /* 0xC0 */
- 0xD26B, 0xD26C, 0xD26D, 0xD26E, 0xD26F, 0xD270, 0xD271, 0xD272, /* 0xC0 */
- 0xD273, 0xD274, 0, 0xD275, 0xD276, 0xD277, 0xD278, 0xD279, /* 0xD0 */
- 0xD27A, 0xD27B, 0xD27C, 0xD27D, 0xD27E, 0xD27F, 0, 0, /* 0xD0 */
- 0, 0xD280, 0xD281, 0xD282, 0xD283, 0xD284, 0xD285, 0xD286, /* 0xE0 */
- 0xD287, 0xD288, 0xD289, 0xD28A, 0xD28B, 0xD28C, 0xD28D, 0xD28E, /* 0xE0 */
- 0xD28F, 0xD290, 0, 0xD291, 0xD292, 0xD293, 0xD294, 0xD295, /* 0xF0 */
- 0xD296, 0xD297, 0xD298, 0xD299, 0xD29A, 0xD29B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_CB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD29C, 0xD29D, 0xD29E, 0xD29F, 0xD2A0, 0xD2A1, 0xD2A2, /* 0x40 */
- 0xD2A3, 0xD2A4, 0xD2A5, 0xD2A6, 0xD2A7, 0xD2A8, 0xD2A9, 0xD2AA, /* 0x40 */
- 0xD2AB, 0xD2AC, 0, 0xD2AD, 0xD2AE, 0xD2AF, 0xD2B0, 0xD2B1, /* 0x50 */
- 0xD2B2, 0xD2B3, 0xD2B4, 0xD2B5, 0xD2B6, 0xD2B7, 0, 0, /* 0x50 */
- 0, 0xD2B8, 0xD2B9, 0xD2BA, 0xD2BB, 0xD2BC, 0xD2BD, 0xD2BE, /* 0x60 */
- 0xD2BF, 0xD2C0, 0xD2C1, 0xD2C2, 0xD2C3, 0xD2C4, 0xD2C5, 0xD2C6, /* 0x60 */
- 0xD2C7, 0xD2C8, 0, 0xD2C9, 0xD2CA, 0xD2CB, 0xD2CC, 0xD2CD, /* 0x70 */
- 0xD2CE, 0xD2CF, 0xD2D0, 0xD2D1, 0xD2D2, 0xD2D3, 0, 0, /* 0x70 */
- 0, 0xD2D4, 0xD2D5, 0xD2D6, 0xD2D7, 0xD2D8, 0xD2D9, 0xD2DA, /* 0x80 */
- 0xD2DB, 0xD2DC, 0xD2DD, 0xD2DE, 0xD2DF, 0xD2E0, 0xD2E1, 0xD2E2, /* 0x80 */
- 0xD2E3, 0xD2E4, 0, 0xD2E5, 0xD2E6, 0xD2E7, 0xD2E8, 0xD2E9, /* 0x90 */
- 0xD2EA, 0xD2EB, 0xD2EC, 0xD2ED, 0xD2EE, 0xD2EF, 0, 0, /* 0x90 */
- 0, 0xD2F0, 0xD2F1, 0xD2F2, 0xD2F3, 0xD2F4, 0xD2F5, 0xD2F6, /* 0xA0 */
- 0xD2F7, 0xD2F8, 0xD2F9, 0xD2FA, 0xD2FB, 0xD2FC, 0xD2FD, 0xD2FE, /* 0xA0 */
- 0xD2FF, 0xD300, 0, 0xD301, 0xD302, 0xD303, 0xD304, 0xD305, /* 0xB0 */
- 0xD306, 0xD307, 0xD308, 0xD309, 0xD30A, 0xD30B /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_CC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x314D, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD30C, 0xD30D, 0xD30E, 0xD30F, 0xD310, 0xD311, 0xD312, /* 0x60 */
- 0xD313, 0xD314, 0xD315, 0xD316, 0xD317, 0xD318, 0xD319, 0xD31A, /* 0x60 */
- 0xD31B, 0xD31C, 0, 0xD31D, 0xD31E, 0xD31F, 0xD320, 0xD321, /* 0x70 */
- 0xD322, 0xD323, 0xD324, 0xD325, 0xD326, 0xD327, 0, 0, /* 0x70 */
- 0, 0xD328, 0xD329, 0xD32A, 0xD32B, 0xD32C, 0xD32D, 0xD32E, /* 0x80 */
- 0xD32F, 0xD330, 0xD331, 0xD332, 0xD333, 0xD334, 0xD335, 0xD336, /* 0x80 */
- 0xD337, 0xD338, 0, 0xD339, 0xD33A, 0xD33B, 0xD33C, 0xD33D, /* 0x90 */
- 0xD33E, 0xD33F, 0xD340, 0xD341, 0xD342, 0xD343, 0, 0, /* 0x90 */
- 0, 0xD344, 0xD345, 0xD346, 0xD347, 0xD348, 0xD349, 0xD34A, /* 0xA0 */
- 0xD34B, 0xD34C, 0xD34D, 0xD34E, 0xD34F, 0xD350, 0xD351, 0xD352, /* 0xA0 */
- 0xD353, 0xD354, 0, 0xD355, 0xD356, 0xD357, 0xD358, 0xD359, /* 0xB0 */
- 0xD35A, 0xD35B, 0xD35C, 0xD35D, 0xD35E, 0xD35F, 0, 0, /* 0xB0 */
- 0, 0xD360, 0xD361, 0xD362, 0xD363, 0xD364, 0xD365, 0xD366, /* 0xC0 */
- 0xD367, 0xD368, 0xD369, 0xD36A, 0xD36B, 0xD36C, 0xD36D, 0xD36E, /* 0xC0 */
- 0xD36F, 0xD370, 0, 0xD371, 0xD372, 0xD373, 0xD374, 0xD375, /* 0xD0 */
- 0xD376, 0xD377, 0xD378, 0xD379, 0xD37A, 0xD37B, 0, 0, /* 0xD0 */
- 0, 0xD37C, 0xD37D, 0xD37E, 0xD37F, 0xD380, 0xD381, 0xD382, /* 0xE0 */
- 0xD383, 0xD384, 0xD385, 0xD386, 0xD387, 0xD388, 0xD389, 0xD38A, /* 0xE0 */
- 0xD38B, 0xD38C, 0, 0xD38D, 0xD38E, 0xD38F, 0xD390, 0xD391, /* 0xF0 */
- 0xD392, 0xD393, 0xD394, 0xD395, 0xD396, 0xD397 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_CD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD398, 0xD399, 0xD39A, 0xD39B, 0xD39C, 0xD39D, 0xD39E, /* 0x40 */
- 0xD39F, 0xD3A0, 0xD3A1, 0xD3A2, 0xD3A3, 0xD3A4, 0xD3A5, 0xD3A6, /* 0x40 */
- 0xD3A7, 0xD3A8, 0, 0xD3A9, 0xD3AA, 0xD3AB, 0xD3AC, 0xD3AD, /* 0x50 */
- 0xD3AE, 0xD3AF, 0xD3B0, 0xD3B1, 0xD3B2, 0xD3B3, 0, 0, /* 0x50 */
- 0, 0xD3B4, 0xD3B5, 0xD3B6, 0xD3B7, 0xD3B8, 0xD3B9, 0xD3BA, /* 0x60 */
- 0xD3BB, 0xD3BC, 0xD3BD, 0xD3BE, 0xD3BF, 0xD3C0, 0xD3C1, 0xD3C2, /* 0x60 */
- 0xD3C3, 0xD3C4, 0, 0xD3C5, 0xD3C6, 0xD3C7, 0xD3C8, 0xD3C9, /* 0x70 */
- 0xD3CA, 0xD3CB, 0xD3CC, 0xD3CD, 0xD3CE, 0xD3CF, 0, 0, /* 0x70 */
- 0, 0xD3D0, 0xD3D1, 0xD3D2, 0xD3D3, 0xD3D4, 0xD3D5, 0xD3D6, /* 0x80 */
- 0xD3D7, 0xD3D8, 0xD3D9, 0xD3DA, 0xD3DB, 0xD3DC, 0xD3DD, 0xD3DE, /* 0x80 */
- 0xD3DF, 0xD3E0, 0, 0xD3E1, 0xD3E2, 0xD3E3, 0xD3E4, 0xD3E5, /* 0x90 */
- 0xD3E6, 0xD3E7, 0xD3E8, 0xD3E9, 0xD3EA, 0xD3EB, 0, 0, /* 0x90 */
- 0, 0xD3EC, 0xD3ED, 0xD3EE, 0xD3EF, 0xD3F0, 0xD3F1, 0xD3F2, /* 0xA0 */
- 0xD3F3, 0xD3F4, 0xD3F5, 0xD3F6, 0xD3F7, 0xD3F8, 0xD3F9, 0xD3FA, /* 0xA0 */
- 0xD3FB, 0xD3FC, 0, 0xD3FD, 0xD3FE, 0xD3FF, 0xD400, 0xD401, /* 0xB0 */
- 0xD402, 0xD403, 0xD404, 0xD405, 0xD406, 0xD407, 0, 0, /* 0xB0 */
- 0, 0xD408, 0xD409, 0xD40A, 0xD40B, 0xD40C, 0xD40D, 0xD40E, /* 0xC0 */
- 0xD40F, 0xD410, 0xD411, 0xD412, 0xD413, 0xD414, 0xD415, 0xD416, /* 0xC0 */
- 0xD417, 0xD418, 0, 0xD419, 0xD41A, 0xD41B, 0xD41C, 0xD41D, /* 0xD0 */
- 0xD41E, 0xD41F, 0xD420, 0xD421, 0xD422, 0xD423, 0, 0, /* 0xD0 */
- 0, 0xD424, 0xD425, 0xD426, 0xD427, 0xD428, 0xD429, 0xD42A, /* 0xE0 */
- 0xD42B, 0xD42C, 0xD42D, 0xD42E, 0xD42F, 0xD430, 0xD431, 0xD432, /* 0xE0 */
- 0xD433, 0xD434, 0, 0xD435, 0xD436, 0xD437, 0xD438, 0xD439, /* 0xF0 */
- 0xD43A, 0xD43B, 0xD43C, 0xD43D, 0xD43E, 0xD43F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_CE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD440, 0xD441, 0xD442, 0xD443, 0xD444, 0xD445, 0xD446, /* 0x40 */
- 0xD447, 0xD448, 0xD449, 0xD44A, 0xD44B, 0xD44C, 0xD44D, 0xD44E, /* 0x40 */
- 0xD44F, 0xD450, 0, 0xD451, 0xD452, 0xD453, 0xD454, 0xD455, /* 0x50 */
- 0xD456, 0xD457, 0xD458, 0xD459, 0xD45A, 0xD45B, 0, 0, /* 0x50 */
- 0, 0xD45C, 0xD45D, 0xD45E, 0xD45F, 0xD460, 0xD461, 0xD462, /* 0x60 */
- 0xD463, 0xD464, 0xD465, 0xD466, 0xD467, 0xD468, 0xD469, 0xD46A, /* 0x60 */
- 0xD46B, 0xD46C, 0, 0xD46D, 0xD46E, 0xD46F, 0xD470, 0xD471, /* 0x70 */
- 0xD472, 0xD473, 0xD474, 0xD475, 0xD476, 0xD477, 0, 0, /* 0x70 */
- 0, 0xD478, 0xD479, 0xD47A, 0xD47B, 0xD47C, 0xD47D, 0xD47E, /* 0x80 */
- 0xD47F, 0xD480, 0xD481, 0xD482, 0xD483, 0xD484, 0xD485, 0xD486, /* 0x80 */
- 0xD487, 0xD488, 0, 0xD489, 0xD48A, 0xD48B, 0xD48C, 0xD48D, /* 0x90 */
- 0xD48E, 0xD48F, 0xD490, 0xD491, 0xD492, 0xD493, 0, 0, /* 0x90 */
- 0, 0xD494, 0xD495, 0xD496, 0xD497, 0xD498, 0xD499, 0xD49A, /* 0xA0 */
- 0xD49B, 0xD49C, 0xD49D, 0xD49E, 0xD49F, 0xD4A0, 0xD4A1, 0xD4A2, /* 0xA0 */
- 0xD4A3, 0xD4A4, 0, 0xD4A5, 0xD4A6, 0xD4A7, 0xD4A8, 0xD4A9, /* 0xB0 */
- 0xD4AA, 0xD4AB, 0xD4AC, 0xD4AD, 0xD4AE, 0xD4AF, 0, 0, /* 0xB0 */
- 0, 0xD4B0, 0xD4B1, 0xD4B2, 0xD4B3, 0xD4B4, 0xD4B5, 0xD4B6, /* 0xC0 */
- 0xD4B7, 0xD4B8, 0xD4B9, 0xD4BA, 0xD4BB, 0xD4BC, 0xD4BD, 0xD4BE, /* 0xC0 */
- 0xD4BF, 0xD4C0, 0, 0xD4C1, 0xD4C2, 0xD4C3, 0xD4C4, 0xD4C5, /* 0xD0 */
- 0xD4C6, 0xD4C7, 0xD4C8, 0xD4C9, 0xD4CA, 0xD4CB, 0, 0, /* 0xD0 */
- 0, 0xD4CC, 0xD4CD, 0xD4CE, 0xD4CF, 0xD4D0, 0xD4D1, 0xD4D2, /* 0xE0 */
- 0xD4D3, 0xD4D4, 0xD4D5, 0xD4D6, 0xD4D7, 0xD4D8, 0xD4D9, 0xD4DA, /* 0xE0 */
- 0xD4DB, 0xD4DC, 0, 0xD4DD, 0xD4DE, 0xD4DF, 0xD4E0, 0xD4E1, /* 0xF0 */
- 0xD4E2, 0xD4E3, 0xD4E4, 0xD4E5, 0xD4E6, 0xD4E7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_CF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD4E8, 0xD4E9, 0xD4EA, 0xD4EB, 0xD4EC, 0xD4ED, 0xD4EE, /* 0x40 */
- 0xD4EF, 0xD4F0, 0xD4F1, 0xD4F2, 0xD4F3, 0xD4F4, 0xD4F5, 0xD4F6, /* 0x40 */
- 0xD4F7, 0xD4F8, 0, 0xD4F9, 0xD4FA, 0xD4FB, 0xD4FC, 0xD4FD, /* 0x50 */
- 0xD4FE, 0xD4FF, 0xD500, 0xD501, 0xD502, 0xD503, 0, 0, /* 0x50 */
- 0, 0xD504, 0xD505, 0xD506, 0xD507, 0xD508, 0xD509, 0xD50A, /* 0x60 */
- 0xD50B, 0xD50C, 0xD50D, 0xD50E, 0xD50F, 0xD510, 0xD511, 0xD512, /* 0x60 */
- 0xD513, 0xD514, 0, 0xD515, 0xD516, 0xD517, 0xD518, 0xD519, /* 0x70 */
- 0xD51A, 0xD51B, 0xD51C, 0xD51D, 0xD51E, 0xD51F, 0, 0, /* 0x70 */
- 0, 0xD520, 0xD521, 0xD522, 0xD523, 0xD524, 0xD525, 0xD526, /* 0x80 */
- 0xD527, 0xD528, 0xD529, 0xD52A, 0xD52B, 0xD52C, 0xD52D, 0xD52E, /* 0x80 */
- 0xD52F, 0xD530, 0, 0xD531, 0xD532, 0xD533, 0xD534, 0xD535, /* 0x90 */
- 0xD536, 0xD537, 0xD538, 0xD539, 0xD53A, 0xD53B, 0, 0, /* 0x90 */
- 0, 0xD53C, 0xD53D, 0xD53E, 0xD53F, 0xD540, 0xD541, 0xD542, /* 0xA0 */
- 0xD543, 0xD544, 0xD545, 0xD546, 0xD547, 0xD548, 0xD549, 0xD54A, /* 0xA0 */
- 0xD54B, 0xD54C, 0, 0xD54D, 0xD54E, 0xD54F, 0xD550, 0xD551, /* 0xB0 */
- 0xD552, 0xD553, 0xD554, 0xD555, 0xD556, 0xD557 /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_D0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x314E, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD558, 0xD559, 0xD55A, 0xD55B, 0xD55C, 0xD55D, 0xD55E, /* 0x60 */
- 0xD55F, 0xD560, 0xD561, 0xD562, 0xD563, 0xD564, 0xD565, 0xD566, /* 0x60 */
- 0xD567, 0xD568, 0, 0xD569, 0xD56A, 0xD56B, 0xD56C, 0xD56D, /* 0x70 */
- 0xD56E, 0xD56F, 0xD570, 0xD571, 0xD572, 0xD573, 0, 0, /* 0x70 */
- 0, 0xD574, 0xD575, 0xD576, 0xD577, 0xD578, 0xD579, 0xD57A, /* 0x80 */
- 0xD57B, 0xD57C, 0xD57D, 0xD57E, 0xD57F, 0xD580, 0xD581, 0xD582, /* 0x80 */
- 0xD583, 0xD584, 0, 0xD585, 0xD586, 0xD587, 0xD588, 0xD589, /* 0x90 */
- 0xD58A, 0xD58B, 0xD58C, 0xD58D, 0xD58E, 0xD58F, 0, 0, /* 0x90 */
- 0, 0xD590, 0xD591, 0xD592, 0xD593, 0xD594, 0xD595, 0xD596, /* 0xA0 */
- 0xD597, 0xD598, 0xD599, 0xD59A, 0xD59B, 0xD59C, 0xD59D, 0xD59E, /* 0xA0 */
- 0xD59F, 0xD5A0, 0, 0xD5A1, 0xD5A2, 0xD5A3, 0xD5A4, 0xD5A5, /* 0xB0 */
- 0xD5A6, 0xD5A7, 0xD5A8, 0xD5A9, 0xD5AA, 0xD5AB, 0, 0, /* 0xB0 */
- 0, 0xD5AC, 0xD5AD, 0xD5AE, 0xD5AF, 0xD5B0, 0xD5B1, 0xD5B2, /* 0xC0 */
- 0xD5B3, 0xD5B4, 0xD5B5, 0xD5B6, 0xD5B7, 0xD5B8, 0xD5B9, 0xD5BA, /* 0xC0 */
- 0xD5BB, 0xD5BC, 0, 0xD5BD, 0xD5BE, 0xD5BF, 0xD5C0, 0xD5C1, /* 0xD0 */
- 0xD5C2, 0xD5C3, 0xD5C4, 0xD5C5, 0xD5C6, 0xD5C7, 0, 0, /* 0xD0 */
- 0, 0xD5C8, 0xD5C9, 0xD5CA, 0xD5CB, 0xD5CC, 0xD5CD, 0xD5CE, /* 0xE0 */
- 0xD5CF, 0xD5D0, 0xD5D1, 0xD5D2, 0xD5D3, 0xD5D4, 0xD5D5, 0xD5D6, /* 0xE0 */
- 0xD5D7, 0xD5D8, 0, 0xD5D9, 0xD5DA, 0xD5DB, 0xD5DC, 0xD5DD, /* 0xF0 */
- 0xD5DE, 0xD5DF, 0xD5E0, 0xD5E1, 0xD5E2, 0xD5E3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_D1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD5E4, 0xD5E5, 0xD5E6, 0xD5E7, 0xD5E8, 0xD5E9, 0xD5EA, /* 0x40 */
- 0xD5EB, 0xD5EC, 0xD5ED, 0xD5EE, 0xD5EF, 0xD5F0, 0xD5F1, 0xD5F2, /* 0x40 */
- 0xD5F3, 0xD5F4, 0, 0xD5F5, 0xD5F6, 0xD5F7, 0xD5F8, 0xD5F9, /* 0x50 */
- 0xD5FA, 0xD5FB, 0xD5FC, 0xD5FD, 0xD5FE, 0xD5FF, 0, 0, /* 0x50 */
- 0, 0xD600, 0xD601, 0xD602, 0xD603, 0xD604, 0xD605, 0xD606, /* 0x60 */
- 0xD607, 0xD608, 0xD609, 0xD60A, 0xD60B, 0xD60C, 0xD60D, 0xD60E, /* 0x60 */
- 0xD60F, 0xD610, 0, 0xD611, 0xD612, 0xD613, 0xD614, 0xD615, /* 0x70 */
- 0xD616, 0xD617, 0xD618, 0xD619, 0xD61A, 0xD61B, 0, 0, /* 0x70 */
- 0, 0xD61C, 0xD61D, 0xD61E, 0xD61F, 0xD620, 0xD621, 0xD622, /* 0x80 */
- 0xD623, 0xD624, 0xD625, 0xD626, 0xD627, 0xD628, 0xD629, 0xD62A, /* 0x80 */
- 0xD62B, 0xD62C, 0, 0xD62D, 0xD62E, 0xD62F, 0xD630, 0xD631, /* 0x90 */
- 0xD632, 0xD633, 0xD634, 0xD635, 0xD636, 0xD637, 0, 0, /* 0x90 */
- 0, 0xD638, 0xD639, 0xD63A, 0xD63B, 0xD63C, 0xD63D, 0xD63E, /* 0xA0 */
- 0xD63F, 0xD640, 0xD641, 0xD642, 0xD643, 0xD644, 0xD645, 0xD646, /* 0xA0 */
- 0xD647, 0xD648, 0, 0xD649, 0xD64A, 0xD64B, 0xD64C, 0xD64D, /* 0xB0 */
- 0xD64E, 0xD64F, 0xD650, 0xD651, 0xD652, 0xD653, 0, 0, /* 0xB0 */
- 0, 0xD654, 0xD655, 0xD656, 0xD657, 0xD658, 0xD659, 0xD65A, /* 0xC0 */
- 0xD65B, 0xD65C, 0xD65D, 0xD65E, 0xD65F, 0xD660, 0xD661, 0xD662, /* 0xC0 */
- 0xD663, 0xD664, 0, 0xD665, 0xD666, 0xD667, 0xD668, 0xD669, /* 0xD0 */
- 0xD66A, 0xD66B, 0xD66C, 0xD66D, 0xD66E, 0xD66F, 0, 0, /* 0xD0 */
- 0, 0xD670, 0xD671, 0xD672, 0xD673, 0xD674, 0xD675, 0xD676, /* 0xE0 */
- 0xD677, 0xD678, 0xD679, 0xD67A, 0xD67B, 0xD67C, 0xD67D, 0xD67E, /* 0xE0 */
- 0xD67F, 0xD680, 0, 0xD681, 0xD682, 0xD683, 0xD684, 0xD685, /* 0xF0 */
- 0xD686, 0xD687, 0xD688, 0xD689, 0xD68A, 0xD68B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_D2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD68C, 0xD68D, 0xD68E, 0xD68F, 0xD690, 0xD691, 0xD692, /* 0x40 */
- 0xD693, 0xD694, 0xD695, 0xD696, 0xD697, 0xD698, 0xD699, 0xD69A, /* 0x40 */
- 0xD69B, 0xD69C, 0, 0xD69D, 0xD69E, 0xD69F, 0xD6A0, 0xD6A1, /* 0x50 */
- 0xD6A2, 0xD6A3, 0xD6A4, 0xD6A5, 0xD6A6, 0xD6A7, 0, 0, /* 0x50 */
- 0, 0xD6A8, 0xD6A9, 0xD6AA, 0xD6AB, 0xD6AC, 0xD6AD, 0xD6AE, /* 0x60 */
- 0xD6AF, 0xD6B0, 0xD6B1, 0xD6B2, 0xD6B3, 0xD6B4, 0xD6B5, 0xD6B6, /* 0x60 */
- 0xD6B7, 0xD6B8, 0, 0xD6B9, 0xD6BA, 0xD6BB, 0xD6BC, 0xD6BD, /* 0x70 */
- 0xD6BE, 0xD6BF, 0xD6C0, 0xD6C1, 0xD6C2, 0xD6C3, 0, 0, /* 0x70 */
- 0, 0xD6C4, 0xD6C5, 0xD6C6, 0xD6C7, 0xD6C8, 0xD6C9, 0xD6CA, /* 0x80 */
- 0xD6CB, 0xD6CC, 0xD6CD, 0xD6CE, 0xD6CF, 0xD6D0, 0xD6D1, 0xD6D2, /* 0x80 */
- 0xD6D3, 0xD6D4, 0, 0xD6D5, 0xD6D6, 0xD6D7, 0xD6D8, 0xD6D9, /* 0x90 */
- 0xD6DA, 0xD6DB, 0xD6DC, 0xD6DD, 0xD6DE, 0xD6DF, 0, 0, /* 0x90 */
- 0, 0xD6E0, 0xD6E1, 0xD6E2, 0xD6E3, 0xD6E4, 0xD6E5, 0xD6E6, /* 0xA0 */
- 0xD6E7, 0xD6E8, 0xD6E9, 0xD6EA, 0xD6EB, 0xD6EC, 0xD6ED, 0xD6EE, /* 0xA0 */
- 0xD6EF, 0xD6F0, 0, 0xD6F1, 0xD6F2, 0xD6F3, 0xD6F4, 0xD6F5, /* 0xB0 */
- 0xD6F6, 0xD6F7, 0xD6F8, 0xD6F9, 0xD6FA, 0xD6FB, 0, 0, /* 0xB0 */
- 0, 0xD6FC, 0xD6FD, 0xD6FE, 0xD6FF, 0xD700, 0xD701, 0xD702, /* 0xC0 */
- 0xD703, 0xD704, 0xD705, 0xD706, 0xD707, 0xD708, 0xD709, 0xD70A, /* 0xC0 */
- 0xD70B, 0xD70C, 0, 0xD70D, 0xD70E, 0xD70F, 0xD710, 0xD711, /* 0xD0 */
- 0xD712, 0xD713, 0xD714, 0xD715, 0xD716, 0xD717, 0, 0, /* 0xD0 */
- 0, 0xD718, 0xD719, 0xD71A, 0xD71B, 0xD71C, 0xD71D, 0xD71E, /* 0xE0 */
- 0xD71F, 0xD720, 0xD721, 0xD722, 0xD723, 0xD724, 0xD725, 0xD726, /* 0xE0 */
- 0xD727, 0xD728, 0, 0xD729, 0xD72A, 0xD72B, 0xD72C, 0xD72D, /* 0xF0 */
- 0xD72E, 0xD72F, 0xD730, 0xD731, 0xD732, 0xD733 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_D3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD734, 0xD735, 0xD736, 0xD737, 0xD738, 0xD739, 0xD73A, /* 0x40 */
- 0xD73B, 0xD73C, 0xD73D, 0xD73E, 0xD73F, 0xD740, 0xD741, 0xD742, /* 0x40 */
- 0xD743, 0xD744, 0, 0xD745, 0xD746, 0xD747, 0xD748, 0xD749, /* 0x50 */
- 0xD74A, 0xD74B, 0xD74C, 0xD74D, 0xD74E, 0xD74F, 0, 0, /* 0x50 */
- 0, 0xD750, 0xD751, 0xD752, 0xD753, 0xD754, 0xD755, 0xD756, /* 0x60 */
- 0xD757, 0xD758, 0xD759, 0xD75A, 0xD75B, 0xD75C, 0xD75D, 0xD75E, /* 0x60 */
- 0xD75F, 0xD760, 0, 0xD761, 0xD762, 0xD763, 0xD764, 0xD765, /* 0x70 */
- 0xD766, 0xD767, 0xD768, 0xD769, 0xD76A, 0xD76B, 0, 0, /* 0x70 */
- 0, 0xD76C, 0xD76D, 0xD76E, 0xD76F, 0xD770, 0xD771, 0xD772, /* 0x80 */
- 0xD773, 0xD774, 0xD775, 0xD776, 0xD777, 0xD778, 0xD779, 0xD77A, /* 0x80 */
- 0xD77B, 0xD77C, 0, 0xD77D, 0xD77E, 0xD77F, 0xD780, 0xD781, /* 0x90 */
- 0xD782, 0xD783, 0xD784, 0xD785, 0xD786, 0xD787, 0, 0, /* 0x90 */
- 0, 0xD788, 0xD789, 0xD78A, 0xD78B, 0xD78C, 0xD78D, 0xD78E, /* 0xA0 */
- 0xD78F, 0xD790, 0xD791, 0xD792, 0xD793, 0xD794, 0xD795, 0xD796, /* 0xA0 */
- 0xD797, 0xD798, 0, 0xD799, 0xD79A, 0xD79B, 0xD79C, 0xD79D, /* 0xB0 */
- 0xD79E, 0xD79F, 0xD7A0, 0xD7A1, 0xD7A2, 0xD7A3 /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_D9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3000, 0x3001, 0x3002, 0x00B7, 0x2025, 0x2026, 0x00A8, /* 0x30 */
- 0x3003, 0x00AD, 0x2015, 0x2225, 0xFF3C, 0x223C, 0x2018, 0x2019, /* 0x30 */
- 0x201C, 0x201D, 0x3014, 0x3015, 0x3008, 0x3009, 0x300A, 0x300B, /* 0x40 */
- 0x300C, 0x300D, 0x300E, 0x300F, 0x3010, 0x3011, 0x00B1, 0x00D7, /* 0x40 */
- 0x00F7, 0x2260, 0x2264, 0x2265, 0x221E, 0x2234, 0x00B0, 0x2032, /* 0x50 */
- 0x2033, 0x2103, 0x212B, 0xFFE0, 0xFFE1, 0xFFE5, 0x2642, 0x2640, /* 0x50 */
- 0x2220, 0x22A5, 0x2312, 0x2202, 0x2207, 0x2261, 0x2252, 0x00A7, /* 0x60 */
- 0x203B, 0x2606, 0x2605, 0x25CB, 0x25CF, 0x25CE, 0x25C7, 0x25C6, /* 0x60 */
- 0x25A1, 0x25A0, 0x25B3, 0x25B2, 0x25BD, 0x25BC, 0x2192, 0x2190, /* 0x70 */
- 0x2191, 0x2193, 0x2194, 0x3013, 0x226A, 0x226B, 0x221A, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x223D, 0x221D, 0x2235, 0x222B, 0x222C, 0x2208, 0x220B, /* 0x90 */
- 0x2286, 0x2287, 0x2282, 0x2283, 0x222A, 0x2229, 0x2227, 0x2228, /* 0x90 */
- 0xFFE2, 0x21D2, 0x21D4, 0x2200, 0x2203, 0x00B4, 0xFF5E, 0x02C7, /* 0xA0 */
- 0x02D8, 0x02DD, 0x02DA, 0x02D9, 0x00B8, 0x02DB, 0x00A1, 0x00BF, /* 0xA0 */
- 0x02D0, 0x222E, 0x2211, 0x220F, 0x00A4, 0x2109, 0x2030, 0x25C1, /* 0xB0 */
- 0x25C0, 0x25B7, 0x25B6, 0x2664, 0x2660, 0x2661, 0x2665, 0x2667, /* 0xB0 */
- 0x2663, 0x2299, 0x25C8, 0x25A3, 0x25D0, 0x25D1, 0x2592, 0x25A4, /* 0xC0 */
- 0x25A5, 0x25A8, 0x25A7, 0x25A6, 0x25A9, 0x2668, 0x260F, 0x260E, /* 0xC0 */
- 0x261C, 0x261E, 0x00B6, 0x2020, 0x2021, 0x2195, 0x2197, 0x2199, /* 0xD0 */
- 0x2196, 0x2198, 0x266D, 0x2669, 0x266A, 0x266C, 0x327F, 0x321C, /* 0xD0 */
- 0x2116, 0x33C7, 0x2122, 0x33C2, 0x33D8, 0x2121 /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* Add some additional characters, which are different defined on Solaris */
-/* DAA1-DAD3 --> 3131-3163 */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_DA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFF01, 0xFF02, 0xFF03, 0xFF04, 0xFF05, 0xFF06, 0xFF07, /* 0x30 */
- 0xFF08, 0xFF09, 0xFF0A, 0xFF0B, 0xFF0C, 0xFF0D, 0xFF0E, 0xFF0F, /* 0x30 */
- 0xFF10, 0xFF11, 0xFF12, 0xFF13, 0xFF14, 0xFF15, 0xFF16, 0xFF17, /* 0x40 */
- 0xFF18, 0xFF19, 0xFF1A, 0xFF1B, 0xFF1C, 0xFF1D, 0xFF1E, 0xFF1F, /* 0x40 */
- 0xFF20, 0xFF21, 0xFF22, 0xFF23, 0xFF24, 0xFF25, 0xFF26, 0xFF27, /* 0x50 */
- 0xFF28, 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C, 0xFF2D, 0xFF2E, 0xFF2F, /* 0x50 */
- 0xFF30, 0xFF31, 0xFF32, 0xFF33, 0xFF34, 0xFF35, 0xFF36, 0xFF37, /* 0x60 */
- 0xFF38, 0xFF39, 0xFF3A, 0xFF3B, 0xFFE6, 0xFF3D, 0xFF3E, 0xFF3F, /* 0x60 */
- 0xFF40, 0xFF41, 0xFF42, 0xFF43, 0xFF44, 0xFF45, 0xFF46, 0xFF47, /* 0x70 */
- 0xFF48, 0xFF49, 0xFF4A, 0xFF4B, 0xFF4C, 0xFF4D, 0xFF4E, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xFF4F, 0xFF50, 0xFF51, 0xFF52, 0xFF53, 0xFF54, 0xFF55, /* 0x90 */
- 0xFF56, 0xFF57, 0xFF58, 0xFF59, 0xFF5A, 0xFF5B, 0xFF5C, 0xFF5D, /* 0x90 */
- 0xFFE3, 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, /* 0xA0 */
- 0x3138, 0x3139, 0x313A, 0x313B, 0x313C, 0x313D, 0x313E, 0x313F, /* 0xA0 */
- 0x3140, 0x3141, 0x3142, 0x3143, 0x3144, 0x3145, 0x3146, 0x3147, /* 0xB0 */
- 0x3148, 0x3149, 0x314A, 0x314B, 0x314C, 0x314D, 0x314E, 0x314F, /* 0xB0 */
- 0x3150, 0x3151, 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, /* 0xC0 */
- 0x3158, 0x3159, 0x315A, 0x315B, 0x315C, 0x315D, 0x315E, 0x315F, /* 0xC0 */
- 0x3160, 0x3161, 0x3162, 0x3163, 0x3164, 0x3165, 0x3166, 0x3167, /* 0xD0 */
- 0x3168, 0x3169, 0x316A, 0x316B, 0x316C, 0x316D, 0x316E, 0x316F, /* 0xD0 */
- 0x3170, 0x3171, 0x3172, 0x3173, 0x3174, 0x3175, 0x3176, 0x3177, /* 0xE0 */
- 0x3178, 0x3179, 0x317A, 0x317B, 0x317C, 0x317D, 0x317E, 0x317F, /* 0xE0 */
- 0x3180, 0x3181, 0x3182, 0x3183, 0x3184, 0x3185, 0x3186, 0x3187, /* 0xF0 */
- 0x3188, 0x3189, 0x318A, 0x318B, 0x318C, 0x318D, 0x318E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_DB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, /* 0x30 */
- 0x2177, 0x2178, 0x2179, 0, 0, 0, 0, 0, /* 0x30 */
- 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, /* 0x40 */
- 0x2168, 0x2169, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, /* 0x50 */
- 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, /* 0x50 */
- 0x03A0, 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, /* 0x60 */
- 0x03A9, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, /* 0x70 */
- 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C4, 0x03C5, 0x03C6, /* 0x90 */
- 0x03C7, 0x03C8, 0x03C9, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x2500, 0x2502, 0x250C, 0x2510, 0x2518, 0x2514, 0x251C, /* 0xA0 */
- 0x252C, 0x2524, 0x2534, 0x253C, 0x2501, 0x2503, 0x250F, 0x2513, /* 0xA0 */
- 0x251B, 0x2517, 0x2523, 0x2533, 0x252B, 0x253B, 0x254B, 0x2520, /* 0xB0 */
- 0x252F, 0x2528, 0x2537, 0x253F, 0x251D, 0x2530, 0x2525, 0x2538, /* 0xB0 */
- 0x2542, 0x2512, 0x2511, 0x251A, 0x2519, 0x2516, 0x2515, 0x250E, /* 0xC0 */
- 0x250D, 0x251E, 0x251F, 0x2521, 0x2522, 0x2526, 0x2527, 0x2529, /* 0xC0 */
- 0x252A, 0x252D, 0x252E, 0x2531, 0x2532, 0x2535, 0x2536, 0x2539, /* 0xD0 */
- 0x253A, 0x253D, 0x253E, 0x2540, 0x2541, 0x2543, 0x2544, 0x2545, /* 0xD0 */
- 0x2546, 0x2547, 0x2548, 0x2549, 0x254A /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_DC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3395, 0x3396, 0x3397, 0x2113, 0x3398, 0x33C4, 0x33A3, /* 0x30 */
- 0x33A4, 0x33A5, 0x33A6, 0x3399, 0x339A, 0x339B, 0x339C, 0x339D, /* 0x30 */
- 0x339E, 0x339F, 0x33A0, 0x33A1, 0x33A2, 0x33CA, 0x338D, 0x338E, /* 0x40 */
- 0x338F, 0x33CF, 0x3388, 0x3389, 0x33C8, 0x33A7, 0x33A8, 0x33B0, /* 0x40 */
- 0x33B1, 0x33B2, 0x33B3, 0x33B4, 0x33B5, 0x33B6, 0x33B7, 0x33B8, /* 0x50 */
- 0x33B9, 0x3380, 0x3381, 0x3382, 0x3383, 0x3384, 0x33BA, 0x33BB, /* 0x50 */
- 0x33BC, 0x33BD, 0x33BE, 0x33BF, 0x3390, 0x3391, 0x3392, 0x3393, /* 0x60 */
- 0x3394, 0x2126, 0x33C0, 0x33C1, 0x338A, 0x338B, 0x338C, 0x33D6, /* 0x60 */
- 0x33C5, 0x33AD, 0x33AE, 0x33AF, 0x33DB, 0x33A9, 0x33AA, 0x33AB, /* 0x70 */
- 0x33AC, 0x33DD, 0x33D0, 0x33D3, 0x33C3, 0x33C9, 0x33DC, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x33C6, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x00C6, 0x00D0, 0x00AA, 0x0126, 0, 0x0132, 0, /* 0xA0 */
- 0x013F, 0x0141, 0x00D8, 0x0152, 0x00BA, 0x00DE, 0x0166, 0x014A, /* 0xA0 */
- 0, 0x3260, 0x3261, 0x3262, 0x3263, 0x3264, 0x3265, 0x3266, /* 0xB0 */
- 0x3267, 0x3268, 0x3269, 0x326A, 0x326B, 0x326C, 0x326D, 0x326E, /* 0xB0 */
- 0x326F, 0x3270, 0x3271, 0x3272, 0x3273, 0x3274, 0x3275, 0x3276, /* 0xC0 */
- 0x3277, 0x3278, 0x3279, 0x327A, 0x327B, 0x24D0, 0x24D1, 0x24D2, /* 0xC0 */
- 0x24D3, 0x24D4, 0x24D5, 0x24D6, 0x24D7, 0x24D8, 0x24D9, 0x24DA, /* 0xD0 */
- 0x24DB, 0x24DC, 0x24DD, 0x24DE, 0x24DF, 0x24E0, 0x24E1, 0x24E2, /* 0xD0 */
- 0x24E3, 0x24E4, 0x24E5, 0x24E6, 0x24E7, 0x24E8, 0x24E9, 0x2460, /* 0xE0 */
- 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, /* 0xE0 */
- 0x2469, 0x246A, 0x246B, 0x246C, 0x246D, 0x246E, 0x00BD, 0x2153, /* 0xF0 */
- 0x2154, 0x00BC, 0x00BE, 0x215B, 0x215C, 0x215D, 0x215E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_DD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00E6, 0x0111, 0x00F0, 0x0127, 0x0131, 0x0133, 0x0138, /* 0x30 */
- 0x0140, 0x0142, 0x00F8, 0x0153, 0x00DF, 0x00FE, 0x0167, 0x014B, /* 0x30 */
- 0x0149, 0x3200, 0x3201, 0x3202, 0x3203, 0x3204, 0x3205, 0x3206, /* 0x40 */
- 0x3207, 0x3208, 0x3209, 0x320A, 0x320B, 0x320C, 0x320D, 0x320E, /* 0x40 */
- 0x320F, 0x3210, 0x3211, 0x3212, 0x3213, 0x3214, 0x3215, 0x3216, /* 0x50 */
- 0x3217, 0x3218, 0x3219, 0x321A, 0x321B, 0x249C, 0x249D, 0x249E, /* 0x50 */
- 0x249F, 0x24A0, 0x24A1, 0x24A2, 0x24A3, 0x24A4, 0x24A5, 0x24A6, /* 0x60 */
- 0x24A7, 0x24A8, 0x24A9, 0x24AA, 0x24AB, 0x24AC, 0x24AD, 0x24AE, /* 0x60 */
- 0x24AF, 0x24B0, 0x24B1, 0x24B2, 0x24B3, 0x24B4, 0x24B5, 0x2474, /* 0x70 */
- 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, 0x247A, 0x247B, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x247C, 0x247D, 0x247E, 0x247F, 0x2480, 0x2481, 0x2482, /* 0x90 */
- 0x00B9, 0x00B2, 0x00B3, 0x2074, 0x207F, 0x2081, 0x2082, 0x2083, /* 0x90 */
- 0x2084, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, /* 0xA0 */
- 0x3048, 0x3049, 0x304A, 0x304B, 0x304C, 0x304D, 0x304E, 0x304F, /* 0xA0 */
- 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, /* 0xB0 */
- 0x3058, 0x3059, 0x305A, 0x305B, 0x305C, 0x305D, 0x305E, 0x305F, /* 0xB0 */
- 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, /* 0xC0 */
- 0x3068, 0x3069, 0x306A, 0x306B, 0x306C, 0x306D, 0x306E, 0x306F, /* 0xC0 */
- 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, /* 0xD0 */
- 0x3078, 0x3079, 0x307A, 0x307B, 0x307C, 0x307D, 0x307E, 0x307F, /* 0xD0 */
- 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, /* 0xE0 */
- 0x3088, 0x3089, 0x308A, 0x308B, 0x308C, 0x308D, 0x308E, 0x308F, /* 0xE0 */
- 0x3090, 0x3091, 0x3092, 0x3093 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_DE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x30A1, 0x30A2, 0x30A3, 0x30A4, 0x30A5, 0x30A6, 0x30A7, /* 0x30 */
- 0x30A8, 0x30A9, 0x30AA, 0x30AB, 0x30AC, 0x30AD, 0x30AE, 0x30AF, /* 0x30 */
- 0x30B0, 0x30B1, 0x30B2, 0x30B3, 0x30B4, 0x30B5, 0x30B6, 0x30B7, /* 0x40 */
- 0x30B8, 0x30B9, 0x30BA, 0x30BB, 0x30BC, 0x30BD, 0x30BE, 0x30BF, /* 0x40 */
- 0x30C0, 0x30C1, 0x30C2, 0x30C3, 0x30C4, 0x30C5, 0x30C6, 0x30C7, /* 0x50 */
- 0x30C8, 0x30C9, 0x30CA, 0x30CB, 0x30CC, 0x30CD, 0x30CE, 0x30CF, /* 0x50 */
- 0x30D0, 0x30D1, 0x30D2, 0x30D3, 0x30D4, 0x30D5, 0x30D6, 0x30D7, /* 0x60 */
- 0x30D8, 0x30D9, 0x30DA, 0x30DB, 0x30DC, 0x30DD, 0x30DE, 0x30DF, /* 0x60 */
- 0x30E0, 0x30E1, 0x30E2, 0x30E3, 0x30E4, 0x30E5, 0x30E6, 0x30E7, /* 0x70 */
- 0x30E8, 0x30E9, 0x30EA, 0x30EB, 0x30EC, 0x30ED, 0x30EE, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x30EF, 0x30F0, 0x30F1, 0x30F2, 0x30F3, 0x30F4, 0x30F5, /* 0x90 */
- 0x30F6, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, /* 0xA0 */
- 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, /* 0xA0 */
- 0x041E, 0x041F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, /* 0xB0 */
- 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, /* 0xB0 */
- 0x042E, 0x042F, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, /* 0xD0 */
- 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, /* 0xD0 */
- 0x043E, 0x043F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, /* 0xE0 */
- 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, /* 0xE0 */
- 0x044E, 0x044F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_E0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4F3D, 0x4F73, 0x5047, 0x50F9, 0x52A0, 0x53EF, 0x5475, /* 0x30 */
- 0x54E5, 0x5609, 0x5AC1, 0x5BB6, 0x6687, 0x67B6, 0x67B7, 0x67EF, /* 0x30 */
- 0x6B4C, 0x73C2, 0x75C2, 0x7A3C, 0x82DB, 0x8304, 0x8857, 0x8888, /* 0x40 */
- 0x8A36, 0x8CC8, 0x8DCF, 0x8EFB, 0x8FE6, 0x99D5, 0x523B, 0x5374, /* 0x40 */
- 0x5404, 0x606A, 0x6164, 0x6BBC, 0x73CF, 0x811A, 0x89BA, 0x89D2, /* 0x50 */
- 0x95A3, 0x4F83, 0x520A, 0x58BE, 0x5978, 0x59E6, 0x5E72, 0x5E79, /* 0x50 */
- 0x61C7, 0x63C0, 0x6746, 0x67EC, 0x687F, 0x6F97, 0x764E, 0x770B, /* 0x60 */
- 0x78F5, 0x7A08, 0x7AFF, 0x7C21, 0x809D, 0x826E, 0x8271, 0x8AEB, /* 0x60 */
- 0x9593, 0x4E6B, 0x559D, 0x66F7, 0x6E34, 0x78A3, 0x7AED, 0x845B, /* 0x70 */
- 0x8910, 0x874E, 0x97A8, 0x52D8, 0x574E, 0x582A, 0x5D4C, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x611F, 0x61BE, 0x6221, 0x6562, 0x67D1, 0x6A44, 0x6E1B, /* 0x90 */
- 0x7518, 0x75B3, 0x76E3, 0x77B0, 0x7D3A, 0x90AF, 0x9451, 0x9452, /* 0x90 */
- 0x9F95, 0x5323, 0x5CAC, 0x7532, 0x80DB, 0x9240, 0x9598, 0x525B, /* 0xA0 */
- 0x5808, 0x59DC, 0x5CA1, 0x5D17, 0x5EB7, 0x5F3A, 0x5F4A, 0x6177, /* 0xA0 */
- 0x6C5F, 0x757A, 0x7586, 0x7CE0, 0x7D73, 0x7DB1, 0x7F8C, 0x8154, /* 0xB0 */
- 0x8221, 0x8591, 0x8941, 0x8B1B, 0x92FC, 0x964D, 0x9C47, 0x4ECB, /* 0xB0 */
- 0x4EF7, 0x500B, 0x51F1, 0x584F, 0x6137, 0x613E, 0x6168, 0x6539, /* 0xC0 */
- 0x69EA, 0x6F11, 0x75A5, 0x7686, 0x76D6, 0x7B87, 0x82A5, 0x84CB, /* 0xC0 */
- 0xF900, 0x93A7, 0x958B, 0x5580, 0x5BA2, 0x5751, 0xF901, 0x7CB3, /* 0xD0 */
- 0x7FB9, 0x91B5, 0x5028, 0x53BB, 0x5C45, 0x5DE8, 0x62D2, 0x636E, /* 0xD0 */
- 0x64DA, 0x64E7, 0x6E20, 0x70AC, 0x795B, 0x8DDD, 0x8E1E, 0xF902, /* 0xE0 */
- 0x907D, 0x9245, 0x92F8, 0x4E7E, 0x4EF6, 0x5065, 0x5DFE, 0x5EFA, /* 0xE0 */
- 0x6106, 0x6957, 0x8171, 0x8654, 0x8E47, 0x9375, 0x9A2B, 0x4E5E, /* 0xF0 */
- 0x5091, 0x6770, 0x6840, 0x5109, 0x528D, 0x5292, 0x6AA2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_E1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x77BC, 0x9210, 0x9ED4, 0x52AB, 0x602F, 0x8FF2, 0x5048, /* 0x30 */
- 0x61A9, 0x63ED, 0x64CA, 0x683C, 0x6A84, 0x6FC0, 0x8188, 0x89A1, /* 0x30 */
- 0x9694, 0x5805, 0x727D, 0x72AC, 0x7504, 0x7D79, 0x7E6D, 0x80A9, /* 0x40 */
- 0x898B, 0x8B74, 0x9063, 0x9D51, 0x6289, 0x6C7A, 0x6F54, 0x7D50, /* 0x40 */
- 0x7F3A, 0x8A23, 0x517C, 0x614A, 0x7B9D, 0x8B19, 0x9257, 0x938C, /* 0x50 */
- 0x4EAC, 0x4FD3, 0x501E, 0x50BE, 0x5106, 0x52C1, 0x52CD, 0x537F, /* 0x50 */
- 0x5770, 0x5883, 0x5E9A, 0x5F91, 0x6176, 0x61AC, 0x64CE, 0x656C, /* 0x60 */
- 0x666F, 0x66BB, 0x66F4, 0x6897, 0x6D87, 0x7085, 0x70F1, 0x749F, /* 0x60 */
- 0x74A5, 0x74CA, 0x75D9, 0x786C, 0x78EC, 0x7ADF, 0x7AF6, 0x7D45, /* 0x70 */
- 0x7D93, 0x8015, 0x803F, 0x811B, 0x8396, 0x8B66, 0x8F15, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x9015, 0x93E1, 0x9803, 0x9838, 0x9A5A, 0x9BE8, 0x4FC2, /* 0x90 */
- 0x5553, 0x583A, 0x5951, 0x5B63, 0x5C46, 0x60B8, 0x6212, 0x6842, /* 0x90 */
- 0x68B0, 0x68E8, 0x6EAA, 0x754C, 0x7678, 0x78CE, 0x7A3D, 0x7CFB, /* 0xA0 */
- 0x7E6B, 0x7E7C, 0x8A08, 0x8AA1, 0x8C3F, 0x968E, 0x9DC4, 0x53E4, /* 0xA0 */
- 0x53E9, 0x544A, 0x5471, 0x56FA, 0x59D1, 0x5B64, 0x5C3B, 0x5EAB, /* 0xB0 */
- 0x62F7, 0x6537, 0x6545, 0x6572, 0x66A0, 0x67AF, 0x69C1, 0x6CBD, /* 0xB0 */
- 0x75FC, 0x7690, 0x777E, 0x7A3F, 0x7F94, 0x8003, 0x80A1, 0x818F, /* 0xC0 */
- 0x82E6, 0x82FD, 0x83F0, 0x85C1, 0x8831, 0x88B4, 0x8AA5, 0xF903, /* 0xC0 */
- 0x8F9C, 0x932E, 0x96C7, 0x9867, 0x9AD8, 0x9F13, 0x54ED, 0x659B, /* 0xD0 */
- 0x66F2, 0x688F, 0x7A40, 0x8C37, 0x9D60, 0x56F0, 0x5764, 0x5D11, /* 0xD0 */
- 0x6606, 0x68B1, 0x68CD, 0x6EFE, 0x7428, 0x889E, 0x9BE4, 0x6C68, /* 0xE0 */
- 0xF904, 0x9AA8, 0x4F9B, 0x516C, 0x5171, 0x529F, 0x5B54, 0x5DE5, /* 0xE0 */
- 0x6050, 0x606D, 0x62F1, 0x63A7, 0x653B, 0x73D9, 0x7A7A, 0x86A3, /* 0xF0 */
- 0x8CA2, 0x978F, 0x4E32, 0x5BE1, 0x6208, 0x679C, 0x74DC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_E2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x79D1, 0x83D3, 0x8A87, 0x8AB2, 0x8DE8, 0x904E, 0x934B, /* 0x30 */
- 0x9846, 0x5ED3, 0x69E8, 0x85FF, 0x90ED, 0xF905, 0x51A0, 0x5B98, /* 0x30 */
- 0x5BEC, 0x6163, 0x68FA, 0x6B3E, 0x704C, 0x742F, 0x74D8, 0x7BA1, /* 0x40 */
- 0x7F50, 0x83C5, 0x89C0, 0x8CAB, 0x95DC, 0x9928, 0x522E, 0x605D, /* 0x40 */
- 0x62EC, 0x9002, 0x4F8A, 0x5149, 0x5321, 0x58D9, 0x5EE3, 0x66E0, /* 0x50 */
- 0x6D38, 0x709A, 0x72C2, 0x73D6, 0x7B50, 0x80F1, 0x945B, 0x5366, /* 0x50 */
- 0x639B, 0x7F6B, 0x4E56, 0x5080, 0x584A, 0x58DE, 0x602A, 0x6127, /* 0x60 */
- 0x62D0, 0x69D0, 0x9B41, 0x5B8F, 0x7D18, 0x80B1, 0x8F5F, 0x4EA4, /* 0x60 */
- 0x50D1, 0x54AC, 0x55AC, 0x5B0C, 0x5DA0, 0x5DE7, 0x652A, 0x654E, /* 0x70 */
- 0x6821, 0x6A4B, 0x72E1, 0x768E, 0x77EF, 0x7D5E, 0x7FF9, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x81A0, 0x854E, 0x86DF, 0x8F03, 0x8F4E, 0x90CA, 0x9903, /* 0x90 */
- 0x9A55, 0x9BAB, 0x4E18, 0x4E45, 0x4E5D, 0x4EC7, 0x4FF1, 0x5177, /* 0x90 */
- 0x52FE, 0x5340, 0x53E3, 0x53E5, 0x548E, 0x5614, 0x5775, 0x57A2, /* 0xA0 */
- 0x5BC7, 0x5D87, 0x5ED0, 0x61FC, 0x62D8, 0x6551, 0x67B8, 0x67E9, /* 0xA0 */
- 0x69CB, 0x6B50, 0x6BC6, 0x6BEC, 0x6C42, 0x6E9D, 0x7078, 0x72D7, /* 0xB0 */
- 0x7396, 0x7403, 0x77BF, 0x77E9, 0x7A76, 0x7D7F, 0x8009, 0x81FC, /* 0xB0 */
- 0x8205, 0x820A, 0x82DF, 0x8862, 0x8B33, 0x8CFC, 0x8EC0, 0x9011, /* 0xC0 */
- 0x90B1, 0x9264, 0x92B6, 0x99D2, 0x9A45, 0x9CE9, 0x9DD7, 0x9F9C, /* 0xC0 */
- 0x570B, 0x5C40, 0x83CA, 0x97A0, 0x97AB, 0x9EB4, 0x541B, 0x7A98, /* 0xD0 */
- 0x7FA4, 0x88D9, 0x8ECD, 0x90E1, 0x5800, 0x5C48, 0x6398, 0x7A9F, /* 0xD0 */
- 0x5BAE, 0x5F13, 0x7A79, 0x7AAE, 0x828E, 0x8EAC, 0x5026, 0x5238, /* 0xE0 */
- 0x52F8, 0x5377, 0x5708, 0x62F3, 0x6372, 0x6B0A, 0x6DC3, 0x7737, /* 0xE0 */
- 0x53A5, 0x7357, 0x8568, 0x8E76, 0x95D5, 0x673A, 0x6AC3, 0x6F70, /* 0xF0 */
- 0x8A6D, 0x8ECC, 0x994B, 0xF906, 0x6677, 0x6B78, 0x8CB4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_E3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9B3C, 0xF907, 0x53EB, 0x572D, 0x594E, 0x63C6, 0x69FB, /* 0x30 */
- 0x73EA, 0x7845, 0x7ABA, 0x7AC5, 0x7CFE, 0x8475, 0x898F, 0x8D73, /* 0x30 */
- 0x9035, 0x95A8, 0x52FB, 0x5747, 0x7547, 0x7B60, 0x83CC, 0x921E, /* 0x40 */
- 0xF908, 0x6A58, 0x514B, 0x524B, 0x5287, 0x621F, 0x68D8, 0x6975, /* 0x40 */
- 0x9699, 0x50C5, 0x52A4, 0x52E4, 0x61C3, 0x65A4, 0x6839, 0x69FF, /* 0x50 */
- 0x747E, 0x7B4B, 0x82B9, 0x83EB, 0x89B2, 0x8B39, 0x8FD1, 0x9949, /* 0x50 */
- 0xF909, 0x4ECA, 0x5997, 0x64D2, 0x6611, 0x6A8E, 0x7434, 0x7981, /* 0x60 */
- 0x79BD, 0x82A9, 0x887E, 0x887F, 0x895F, 0xF90A, 0x9326, 0x4F0B, /* 0x60 */
- 0x53CA, 0x6025, 0x6271, 0x6C72, 0x7D1A, 0x7D66, 0x4E98, 0x5162, /* 0x70 */
- 0x77DC, 0x80AF, 0x4F01, 0x4F0E, 0x5176, 0x5180, 0x55DC, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x5668, 0x573B, 0x57FA, 0x57FC, 0x5914, 0x5947, 0x5993, /* 0x90 */
- 0x5BC4, 0x5C90, 0x5D0E, 0x5DF1, 0x5E7E, 0x5FCC, 0x6280, 0x65D7, /* 0x90 */
- 0x65E3, 0x671E, 0x671F, 0x675E, 0x68CB, 0x68C4, 0x6A5F, 0x6B3A, /* 0xA0 */
- 0x6C23, 0x6C7D, 0x6C82, 0x6DC7, 0x7398, 0x7426, 0x742A, 0x7482, /* 0xA0 */
- 0x74A3, 0x7578, 0x757F, 0x7881, 0x78EF, 0x7941, 0x7947, 0x7948, /* 0xB0 */
- 0x797A, 0x7B95, 0x7D00, 0x7DBA, 0x7F88, 0x8006, 0x802D, 0x808C, /* 0xB0 */
- 0x8A18, 0x8B4F, 0x8C48, 0x8D77, 0x9321, 0x9324, 0x98E2, 0x9951, /* 0xC0 */
- 0x9A0E, 0x9A0F, 0x9A65, 0x9E92, 0x7DCA, 0x4F76, 0x5409, 0x62EE, /* 0xC0 */
- 0x6854, 0x91D1, 0x55AB, 0x513A, 0xF90B, 0xF90C, 0x5A1C, 0x61E6, /* 0xD0 */
- 0xF90D, 0x62CF, 0x62FF, 0xF90E, 0xF90F, 0xF910, 0xF911, 0xF912, /* 0xD0 */
- 0xF913, 0x90A3, 0xF914, 0xF915, 0xF916, 0xF917, 0xF918, 0x8AFE, /* 0xE0 */
- 0xF919, 0xF91A, 0xF91B, 0xF91C, 0x6696, 0xF91D, 0x7156, 0xF91E, /* 0xE0 */
- 0xF91F, 0x96E3, 0xF920, 0x634F, 0x637A, 0x5357, 0xF921, 0x678F, /* 0xF0 */
- 0x6960, 0x6E73, 0xF922, 0x7537, 0xF923, 0xF924, 0xF925 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_E4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7D0D, 0xF926, 0xF927, 0x8872, 0x56CA, 0x5A18, 0xF928, /* 0x30 */
- 0xF929, 0xF92A, 0xF92B, 0xF92C, 0x4E43, 0xF92D, 0x5167, 0x5948, /* 0x30 */
- 0x67F0, 0x8010, 0xF92E, 0x5973, 0x5E74, 0x649A, 0x79CA, 0x5FF5, /* 0x40 */
- 0x606C, 0x62C8, 0x637B, 0x5BE7, 0x5BD7, 0x52AA, 0xF92F, 0x5974, /* 0x40 */
- 0x5F29, 0x6012, 0xF930, 0xF931, 0xF932, 0x7459, 0xF933, 0xF934, /* 0x50 */
- 0xF935, 0xF936, 0xF937, 0xF938, 0x99D1, 0xF939, 0xF93A, 0xF93B, /* 0x50 */
- 0xF93C, 0xF93D, 0xF93E, 0xF93F, 0xF940, 0xF941, 0xF942, 0xF943, /* 0x60 */
- 0x6FC3, 0xF944, 0xF945, 0x81BF, 0x8FB2, 0x60F1, 0xF946, 0xF947, /* 0x60 */
- 0x8166, 0xF948, 0xF949, 0x5C3F, 0xF94A, 0xF94B, 0xF94C, 0xF94D, /* 0x70 */
- 0xF94E, 0xF94F, 0xF950, 0xF951, 0x5AE9, 0x8A25, 0x677B, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x7D10, 0xF952, 0xF953, 0xF954, 0xF955, 0xF956, 0xF957, /* 0x90 */
- 0x80FD, 0xF958, 0xF959, 0x5C3C, 0x6CE5, 0x533F, 0x6EBA, 0x591A, /* 0x90 */
- 0x8336, 0x4E39, 0x4EB6, 0x4F46, 0x55AE, 0x5718, 0x58C7, 0x5F56, /* 0xA0 */
- 0x65B7, 0x65E6, 0x6A80, 0x6BB5, 0x6E4D, 0x77ED, 0x7AEF, 0x7C1E, /* 0xA0 */
- 0x7DDE, 0x86CB, 0x8892, 0x9132, 0x935B, 0x64BB, 0x6FBE, 0x737A, /* 0xB0 */
- 0x75B8, 0x9054, 0x5556, 0x574D, 0x61BA, 0x64D4, 0x66C7, 0x6DE1, /* 0xB0 */
- 0x6E5B, 0x6F6D, 0x6FB9, 0x75F0, 0x8043, 0x81BD, 0x8541, 0x8983, /* 0xC0 */
- 0x8AC7, 0x8B5A, 0x931F, 0x6C93, 0x7553, 0x7B54, 0x8E0F, 0x905D, /* 0xC0 */
- 0x5510, 0x5802, 0x5858, 0x5E62, 0x6207, 0x649E, 0x68E0, 0x7576, /* 0xD0 */
- 0x7CD6, 0x87B3, 0x9EE8, 0x4EE3, 0x5788, 0x576E, 0x5927, 0x5C0D, /* 0xD0 */
- 0x5CB1, 0x5E36, 0x5F85, 0x6234, 0x64E1, 0x73B3, 0x81FA, 0x888B, /* 0xE0 */
- 0x8CB8, 0x968A, 0x9EDB, 0x5B85, 0x5FB7, 0x60B3, 0x5012, 0x5200, /* 0xE0 */
- 0x5230, 0x5716, 0x5835, 0x5857, 0x5C0E, 0x5C60, 0x5CF6, 0x5D8B, /* 0xF0 */
- 0x5EA6, 0x5F92, 0x60BC, 0x6311, 0x6389, 0x6417, 0x6843 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_E5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x68F9, 0x6AC2, 0x6DD8, 0x6E21, 0x6ED4, 0x6FE4, 0x71FE, /* 0x30 */
- 0x76DC, 0x7779, 0x79B1, 0x7A3B, 0x8404, 0x89A9, 0x8CED, 0x8DF3, /* 0x30 */
- 0x8E48, 0x9003, 0x9014, 0x9053, 0x90FD, 0x934D, 0x9676, 0x97DC, /* 0x40 */
- 0x6BD2, 0x7006, 0x7258, 0x72A2, 0x7368, 0x7763, 0x79BF, 0x7BE4, /* 0x40 */
- 0x7E9B, 0x8B80, 0x58A9, 0x60C7, 0x6566, 0x65FD, 0x66BE, 0x6C8C, /* 0x50 */
- 0x711E, 0x71C9, 0x8C5A, 0x9813, 0x4E6D, 0x7A81, 0x4EDD, 0x51AC, /* 0x50 */
- 0x51CD, 0x52D5, 0x540C, 0x61A7, 0x6771, 0x6850, 0x68DF, 0x6D1E, /* 0x60 */
- 0x6F7C, 0x75BC, 0x77B3, 0x7AE5, 0x80F4, 0x8463, 0x9285, 0x515C, /* 0x60 */
- 0x6597, 0x675C, 0x6793, 0x75D8, 0x7AC7, 0x8373, 0xF95A, 0x8C46, /* 0x70 */
- 0x9017, 0x982D, 0x5C6F, 0x81C0, 0x829A, 0x9041, 0x906F, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x920D, 0x5F97, 0x5D9D, 0x6A59, 0x71C8, 0x767B, 0x7B49, /* 0x90 */
- 0x85E4, 0x8B04, 0x9127, 0x9A30, 0x5587, 0x61F6, 0xF95B, 0x7669, /* 0x90 */
- 0x7F85, 0x863F, 0x87BA, 0x88F8, 0x908F, 0xF95C, 0x6D1B, 0x70D9, /* 0xA0 */
- 0x73DE, 0x7D61, 0x843D, 0xF95D, 0x916A, 0x99F1, 0xF95E, 0x4E82, /* 0xA0 */
- 0x5375, 0x6B04, 0x6B12, 0x703E, 0x721B, 0x862D, 0x9E1E, 0x524C, /* 0xB0 */
- 0x8FA3, 0x5D50, 0x64E5, 0x652C, 0x6B16, 0x6FEB, 0x7C43, 0x7E9C, /* 0xB0 */
- 0x85CD, 0x8964, 0x89BD, 0x62C9, 0x81D8, 0x881F, 0x5ECA, 0x6717, /* 0xC0 */
- 0x6D6A, 0x72FC, 0x7405, 0x746F, 0x8782, 0x90DE, 0x4F86, 0x5D0D, /* 0xC0 */
- 0x5FA0, 0x840A, 0x51B7, 0x63A0, 0x7565, 0x4EAE, 0x5006, 0x5169, /* 0xD0 */
- 0x51C9, 0x6881, 0x6A11, 0x7CAE, 0x7CB1, 0x7CE7, 0x826F, 0x8AD2, /* 0xD0 */
- 0x8F1B, 0x91CF, 0x4FB6, 0x5137, 0x52F5, 0x5442, 0x5EEC, 0x616E, /* 0xE0 */
- 0x623E, 0x65C5, 0x6ADA, 0x6FFE, 0x792A, 0x85DC, 0x8823, 0x95AD, /* 0xE0 */
- 0x9A62, 0x9A6A, 0x9E97, 0x9ECE, 0x529B, 0x66C6, 0x6B77, 0x701D, /* 0xF0 */
- 0x792B, 0x8F62, 0x9742, 0x6190, 0x6200, 0x6523, 0x6F23 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_E6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7149, 0x7489, 0x7DF4, 0x806F, 0x84EE, 0x8F26, 0x9023, /* 0x30 */
- 0x934A, 0x51BD, 0x5217, 0x52A3, 0x6D0C, 0x70C8, 0x88C2, 0x5EC9, /* 0x30 */
- 0x6582, 0x6BAE, 0x6FC2, 0x7C3E, 0x7375, 0x4EE4, 0x4F36, 0x56F9, /* 0x40 */
- 0xF95F, 0x5CBA, 0x5DBA, 0x601C, 0x73B2, 0x7B2D, 0x7F9A, 0x7FCE, /* 0x40 */
- 0x8046, 0x901E, 0x9234, 0x96F6, 0x9748, 0x9818, 0x9F61, 0x4F8B, /* 0x50 */
- 0x6FA7, 0x79AE, 0x91B4, 0x96B7, 0x52DE, 0xF960, 0x6488, 0x64C4, /* 0x50 */
- 0x6AD3, 0x6F5E, 0x7018, 0x7210, 0x76E7, 0x8001, 0x8606, 0x865C, /* 0x60 */
- 0x8DEF, 0x8F05, 0x9732, 0x9B6F, 0x9DFA, 0x9E75, 0x788C, 0x797F, /* 0x60 */
- 0x7DA0, 0x83C9, 0x9304, 0x9E7F, 0x9E93, 0x8AD6, 0x58DF, 0x5F04, /* 0x70 */
- 0x6727, 0x7027, 0x74CF, 0x7C60, 0x807E, 0x5121, 0x7028, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x7262, 0x78CA, 0x8CC2, 0x8CDA, 0x8CF4, 0x96F7, 0x4E86, /* 0x90 */
- 0x50DA, 0x5BEE, 0x5ED6, 0x6599, 0x71CE, 0x7642, 0x77AD, 0x804A, /* 0x90 */
- 0x84FC, 0x907C, 0x9B27, 0x9F8D, 0x58D8, 0x5A41, 0x5C62, 0x6A13, /* 0xA0 */
- 0x6DDA, 0x6F0F, 0x763B, 0x7D2F, 0x7E37, 0x851E, 0x8938, 0x93E4, /* 0xA0 */
- 0x964B, 0x5289, 0x65D2, 0x67F3, 0x69B4, 0x6D41, 0x6E9C, 0x700F, /* 0xB0 */
- 0x7409, 0x7460, 0x7559, 0x7624, 0x786B, 0x8B2C, 0x985E, 0x516D, /* 0xB0 */
- 0x622E, 0x9678, 0x4F96, 0x502B, 0x5D19, 0x6DEA, 0x7DB8, 0x8F2A, /* 0xC0 */
- 0x5F8B, 0x6144, 0x6817, 0xF961, 0x9686, 0x52D2, 0x808B, 0x51DC, /* 0xC0 */
- 0x51CC, 0x695E, 0x7A1C, 0x7DBE, 0x83F1, 0x9675, 0x4FDA, 0x5229, /* 0xD0 */
- 0x5398, 0x540F, 0x550E, 0x5C65, 0x60A7, 0x674E, 0x68A8, 0x6D6C, /* 0xD0 */
- 0x7281, 0x72F8, 0x7406, 0x7483, 0xF962, 0x75E2, 0x7C6C, 0x7F79, /* 0xE0 */
- 0x7FB8, 0x8389, 0x88CF, 0x88E1, 0x91CC, 0x91D0, 0x96E2, 0x9BC9, /* 0xE0 */
- 0x541D, 0x6F7E, 0x71D0, 0x7498, 0x85FA, 0x8EAA, 0x96A3, 0x9C57, /* 0xF0 */
- 0x9E9F, 0x6797, 0x6DCB, 0x7433, 0x81E8, 0x9716, 0x782C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_E7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7ACB, 0x7B20, 0x7C92, 0x6469, 0x746A, 0x75F2, 0x78BC, /* 0x30 */
- 0x78E8, 0x99AC, 0x9B54, 0x9EBB, 0x5BDE, 0x5E55, 0x6F20, 0x819C, /* 0x30 */
- 0x83AB, 0x9088, 0x4E07, 0x534D, 0x5A29, 0x5DD2, 0x5F4E, 0x6162, /* 0x40 */
- 0x633D, 0x6669, 0x66FC, 0x6EFF, 0x6F2B, 0x7063, 0x779E, 0x842C, /* 0x40 */
- 0x8513, 0x883B, 0x8F13, 0x9945, 0x9C3B, 0x551C, 0x62B9, 0x672B, /* 0x50 */
- 0x6CAB, 0x8309, 0x896A, 0x977A, 0x4EA1, 0x5984, 0x5FD8, 0x5FD9, /* 0x50 */
- 0x671B, 0x7DB2, 0x7F54, 0x8292, 0x832B, 0x83BD, 0x8F1E, 0x9099, /* 0x60 */
- 0x57CB, 0x59B9, 0x5A92, 0x5BD0, 0x6627, 0x679A, 0x6885, 0x6BCF, /* 0x60 */
- 0x7164, 0x7F75, 0x8CB7, 0x8CE3, 0x9081, 0x9B45, 0x8108, 0x8C8A, /* 0x70 */
- 0x964C, 0x9A40, 0x9EA5, 0x5B5F, 0x6C13, 0x731B, 0x76F2, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x76DF, 0x840C, 0x51AA, 0x8993, 0x514D, 0x5195, 0x52C9, /* 0x90 */
- 0x68C9, 0x6C94, 0x7704, 0x7720, 0x7DBF, 0x7DEC, 0x9762, 0x9EB5, /* 0x90 */
- 0x6EC5, 0x8511, 0x51A5, 0x540D, 0x547D, 0x660E, 0x669D, 0x6927, /* 0xA0 */
- 0x6E9F, 0x76BF, 0x7791, 0x8317, 0x84C2, 0x879F, 0x9169, 0x9298, /* 0xA0 */
- 0x9CF4, 0x8882, 0x4FAE, 0x5192, 0x52DF, 0x59C6, 0x5E3D, 0x6155, /* 0xB0 */
- 0x6478, 0x6479, 0x66AE, 0x67D0, 0x6A21, 0x6BCD, 0x6BDB, 0x725F, /* 0xB0 */
- 0x7261, 0x7441, 0x7738, 0x77DB, 0x8017, 0x82BC, 0x8305, 0x8B00, /* 0xC0 */
- 0x8B28, 0x8C8C, 0x6728, 0x6C90, 0x7267, 0x76EE, 0x7766, 0x7A46, /* 0xC0 */
- 0x9DA9, 0x6B7F, 0x6C92, 0x5922, 0x6726, 0x8499, 0x536F, 0x5893, /* 0xD0 */
- 0x5999, 0x5EDF, 0x63CF, 0x6634, 0x6773, 0x6E3A, 0x732B, 0x7AD7, /* 0xD0 */
- 0x82D7, 0x9328, 0x52D9, 0x5DEB, 0x61AE, 0x61CB, 0x620A, 0x62C7, /* 0xE0 */
- 0x64AB, 0x65E0, 0x6959, 0x6B66, 0x6BCB, 0x7121, 0x73F7, 0x755D, /* 0xE0 */
- 0x7E46, 0x821E, 0x8302, 0x856A, 0x8AA3, 0x8CBF, 0x9727, 0x9D61, /* 0xF0 */
- 0x58A8, 0x9ED8, 0x5011, 0x520E, 0x543B, 0x554F, 0x6587 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_E8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6C76, 0x7D0A, 0x7D0B, 0x805E, 0x868A, 0x9580, 0x96EF, /* 0x30 */
- 0x52FF, 0x6C95, 0x7269, 0x5473, 0x5A9A, 0x5C3E, 0x5D4B, 0x5F4C, /* 0x30 */
- 0x5FAE, 0x672A, 0x68B6, 0x6963, 0x6E3C, 0x6E44, 0x7709, 0x7C73, /* 0x40 */
- 0x7F8E, 0x8587, 0x8B0E, 0x8FF7, 0x9761, 0x9EF4, 0x5CB7, 0x60B6, /* 0x40 */
- 0x610D, 0x61AB, 0x654F, 0x65FB, 0x65FC, 0x6C11, 0x6CEF, 0x739F, /* 0x50 */
- 0x73C9, 0x7DE1, 0x9594, 0x5BC6, 0x871C, 0x8B10, 0x525D, 0x535A, /* 0x50 */
- 0x62CD, 0x640F, 0x64B2, 0x6734, 0x6A38, 0x6CCA, 0x73C0, 0x749E, /* 0x60 */
- 0x7B94, 0x7C95, 0x7E1B, 0x818A, 0x8236, 0x8584, 0x8FEB, 0x96F9, /* 0x60 */
- 0x99C1, 0x4F34, 0x534A, 0x53CD, 0x53DB, 0x62CC, 0x642C, 0x6500, /* 0x70 */
- 0x6591, 0x69C3, 0x6CEE, 0x6F58, 0x73ED, 0x7554, 0x7622, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x76E4, 0x76FC, 0x78D0, 0x78FB, 0x792C, 0x7D46, 0x822C, /* 0x90 */
- 0x87E0, 0x8FD4, 0x9812, 0x98EF, 0x52C3, 0x62D4, 0x64A5, 0x6E24, /* 0x90 */
- 0x6F51, 0x767C, 0x8DCB, 0x91B1, 0x9262, 0x9AEE, 0x9B43, 0x5023, /* 0xA0 */
- 0x508D, 0x574A, 0x59A8, 0x5C28, 0x5E47, 0x5F77, 0x623F, 0x653E, /* 0xA0 */
- 0x65B9, 0x65C1, 0x6609, 0x678B, 0x699C, 0x6EC2, 0x78C5, 0x7D21, /* 0xB0 */
- 0x80AA, 0x8180, 0x822B, 0x82B3, 0x84A1, 0x868C, 0x8A2A, 0x8B17, /* 0xB0 */
- 0x90A6, 0x9632, 0x9F90, 0x500D, 0x4FF3, 0xF963, 0x57F9, 0x5F98, /* 0xC0 */
- 0x62DC, 0x6392, 0x676F, 0x6E43, 0x7119, 0x76C3, 0x80CC, 0x80DA, /* 0xC0 */
- 0x88F4, 0x88F5, 0x8919, 0x8CE0, 0x8F29, 0x914D, 0x966A, 0x4F2F, /* 0xD0 */
- 0x4F70, 0x5E1B, 0x67CF, 0x6822, 0x767D, 0x767E, 0x9B44, 0x5E61, /* 0xD0 */
- 0x6A0A, 0x7169, 0x71D4, 0x756A, 0xF964, 0x7E41, 0x8543, 0x85E9, /* 0xE0 */
- 0x98DC, 0x4F10, 0x7B4F, 0x7F70, 0x95A5, 0x51E1, 0x5E06, 0x68B5, /* 0xE0 */
- 0x6C3E, 0x6C4E, 0x6CDB, 0x72AF, 0x7BC4, 0x8303, 0x6CD5, 0x743A, /* 0xF0 */
- 0x50FB, 0x5288, 0x58C1, 0x64D8, 0x6A97, 0x74A7, 0x7656 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_E9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x78A7, 0x8617, 0x95E2, 0x9739, 0xF965, 0x535E, 0x5F01, /* 0x30 */
- 0x8B8A, 0x8FA8, 0x8FAF, 0x908A, 0x5225, 0x77A5, 0x9C49, 0x9F08, /* 0x30 */
- 0x4E19, 0x5002, 0x5175, 0x5C5B, 0x5E77, 0x661E, 0x663A, 0x67C4, /* 0x40 */
- 0x68C5, 0x70B3, 0x7501, 0x75C5, 0x79C9, 0x7ADD, 0x8F27, 0x9920, /* 0x40 */
- 0x9A08, 0x4FDD, 0x5821, 0x5831, 0x5BF6, 0x666E, 0x6B65, 0x6D11, /* 0x50 */
- 0x6E7A, 0x6F7D, 0x73E4, 0x752B, 0x83E9, 0x88DC, 0x8913, 0x8B5C, /* 0x50 */
- 0x8F14, 0x4F0F, 0x50D5, 0x5310, 0x535C, 0x5B93, 0x5FA9, 0x670D, /* 0x60 */
- 0x798F, 0x8179, 0x832F, 0x8514, 0x8907, 0x8986, 0x8F39, 0x8F3B, /* 0x60 */
- 0x99A5, 0x9C12, 0x672C, 0x4E76, 0x4FF8, 0x5949, 0x5C01, 0x5CEF, /* 0x70 */
- 0x5CF0, 0x6367, 0x68D2, 0x70FD, 0x71A2, 0x742B, 0x7E2B, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x84EC, 0x8702, 0x9022, 0x92D2, 0x9CF3, 0x4E0D, 0x4ED8, /* 0x90 */
- 0x4FEF, 0x5085, 0x5256, 0x526F, 0x5426, 0x5490, 0x57E0, 0x592B, /* 0x90 */
- 0x5A66, 0x5B5A, 0x5B75, 0x5BCC, 0x5E9C, 0xF966, 0x6276, 0x6577, /* 0xA0 */
- 0x65A7, 0x6D6E, 0x6EA5, 0x7236, 0x7B26, 0x7C3F, 0x7F36, 0x8150, /* 0xA0 */
- 0x8151, 0x819A, 0x8240, 0x8299, 0x83A9, 0x8A03, 0x8CA0, 0x8CE6, /* 0xB0 */
- 0x8CFB, 0x8D74, 0x8DBA, 0x90E8, 0x91DC, 0x961C, 0x9644, 0x99D9, /* 0xB0 */
- 0x9CE7, 0x5317, 0x5206, 0x5429, 0x5674, 0x58B3, 0x5954, 0x596E, /* 0xC0 */
- 0x5FFF, 0x61A4, 0x626E, 0x6610, 0x6C7E, 0x711A, 0x76C6, 0x7C89, /* 0xC0 */
- 0x7CDE, 0x7D1B, 0x82AC, 0x8CC1, 0x96F0, 0xF967, 0x4F5B, 0x5F17, /* 0xD0 */
- 0x5F7F, 0x62C2, 0x5D29, 0x670B, 0x68DA, 0x787C, 0x7E43, 0x9D6C, /* 0xD0 */
- 0x4E15, 0x5099, 0x5315, 0x532A, 0x5351, 0x5983, 0x5A62, 0x5E87, /* 0xE0 */
- 0x60B2, 0x618A, 0x6249, 0x6279, 0x6590, 0x6787, 0x69A7, 0x6BD4, /* 0xE0 */
- 0x6BD6, 0x6BD7, 0x6BD8, 0x6CB8, 0xF968, 0x7435, 0x75FA, 0x7812, /* 0xF0 */
- 0x7891, 0x79D5, 0x79D8, 0x7C83, 0x7DCB, 0x7FE1, 0x80A5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_EA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x813E, 0x81C2, 0x83F2, 0x871A, 0x88E8, 0x8AB9, 0x8B6C, /* 0x30 */
- 0x8CBB, 0x9119, 0x975E, 0x98DB, 0x9F3B, 0x56AC, 0x5B2A, 0x5F6C, /* 0x30 */
- 0x658C, 0x6AB3, 0x6BAF, 0x6D5C, 0x6FF1, 0x7015, 0x725D, 0x73AD, /* 0x40 */
- 0x8CA7, 0x8CD3, 0x983B, 0x6191, 0x6C37, 0x8058, 0x9A01, 0x4E4D, /* 0x40 */
- 0x4E8B, 0x4E9B, 0x4ED5, 0x4F3A, 0x4F3C, 0x4F7F, 0x4FDF, 0x50FF, /* 0x50 */
- 0x53F2, 0x53F8, 0x5506, 0x55E3, 0x56DB, 0x58EB, 0x5962, 0x5A11, /* 0x50 */
- 0x5BEB, 0x5BFA, 0x5C04, 0x5DF3, 0x5E2B, 0x5F99, 0x601D, 0x6368, /* 0x60 */
- 0x659C, 0x65AF, 0x67F6, 0x67FB, 0x68AD, 0x6B7B, 0x6C99, 0x6CD7, /* 0x60 */
- 0x6E23, 0x7009, 0x7345, 0x7802, 0x793E, 0x7940, 0x7960, 0x79C1, /* 0x70 */
- 0x7BE9, 0x7D17, 0x7D72, 0x8086, 0x820D, 0x838E, 0x84D1, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x86C7, 0x88DF, 0x8A50, 0x8A5E, 0x8B1D, 0x8CDC, 0x8D66, /* 0x90 */
- 0x8FAD, 0x90AA, 0x98FC, 0x99DF, 0x9E9D, 0x524A, 0xF969, 0x6714, /* 0x90 */
- 0xF96A, 0x5098, 0x522A, 0x5C71, 0x6563, 0x6C55, 0x73CA, 0x7523, /* 0xA0 */
- 0x759D, 0x7B97, 0x849C, 0x9178, 0x9730, 0x4E77, 0x6492, 0x6BBA, /* 0xA0 */
- 0x715E, 0x85A9, 0x4E09, 0xF96B, 0x6749, 0x68EE, 0x6E17, 0x829F, /* 0xB0 */
- 0x8518, 0x886B, 0x63F7, 0x6F81, 0x9212, 0x98AF, 0x4E0A, 0x50B7, /* 0xB0 */
- 0x50CF, 0x511F, 0x5546, 0x55AA, 0x5617, 0x5B40, 0x5C19, 0x5CE0, /* 0xC0 */
- 0x5E38, 0x5E8A, 0x5EA0, 0x5EC2, 0x60F3, 0x6851, 0x6A61, 0x6E58, /* 0xC0 */
- 0x723D, 0x7240, 0x72C0, 0x76F8, 0x7965, 0x7BB1, 0x7FD4, 0x88F3, /* 0xD0 */
- 0x89F4, 0x8A73, 0x8C61, 0x8CDE, 0x971C, 0x585E, 0x74BD, 0x8CFD, /* 0xD0 */
- 0x55C7, 0xF96C, 0x7A61, 0x7D22, 0x8272, 0x7272, 0x751F, 0x7525, /* 0xE0 */
- 0xF96D, 0x7B19, 0x5885, 0x58FB, 0x5DBC, 0x5E8F, 0x5EB6, 0x5F90, /* 0xE0 */
- 0x6055, 0x6292, 0x637F, 0x654D, 0x6691, 0x66D9, 0x66F8, 0x6816, /* 0xF0 */
- 0x68F2, 0x7280, 0x745E, 0x7B6E, 0x7D6E, 0x7DD6, 0x7F72 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_EB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x80E5, 0x8212, 0x85AF, 0x897F, 0x8A93, 0x901D, 0x92E4, /* 0x30 */
- 0x9ECD, 0x9F20, 0x5915, 0x596D, 0x5E2D, 0x60DC, 0x6614, 0x6673, /* 0x30 */
- 0x6790, 0x6C50, 0x6DC5, 0x6F5F, 0x77F3, 0x78A9, 0x84C6, 0x91CB, /* 0x40 */
- 0x932B, 0x4ED9, 0x50CA, 0x5148, 0x5584, 0x5B0B, 0x5BA3, 0x6247, /* 0x40 */
- 0x657E, 0x65CB, 0x6E32, 0x717D, 0x7401, 0x7444, 0x7487, 0x74BF, /* 0x50 */
- 0x766C, 0x79AA, 0x7DDA, 0x7E55, 0x7FA8, 0x817A, 0x81B3, 0x8239, /* 0x50 */
- 0x861A, 0x87EC, 0x8A75, 0x8DE3, 0x9078, 0x9291, 0x9425, 0x994D, /* 0x60 */
- 0x9BAE, 0x5368, 0x5C51, 0x6954, 0x6CC4, 0x6D29, 0x6E2B, 0x820C, /* 0x60 */
- 0x859B, 0x893B, 0x8A2D, 0x8AAA, 0x96EA, 0x9F67, 0x5261, 0x66B9, /* 0x70 */
- 0x6BB2, 0x7E96, 0x87FE, 0x8D0D, 0x9583, 0x965D, 0x651D, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x6D89, 0x71EE, 0xF96E, 0x57CE, 0x59D3, 0x5BAC, 0x6027, /* 0x90 */
- 0x60FA, 0x6210, 0x661F, 0x665F, 0x7329, 0x73F9, 0x76DB, 0x7701, /* 0x90 */
- 0x7B6C, 0x8056, 0x8072, 0x8165, 0x8AA0, 0x9192, 0x4E16, 0x52E2, /* 0xA0 */
- 0x6B72, 0x6D17, 0x7A05, 0x7B39, 0x7D30, 0xF96F, 0x8CB0, 0x53EC, /* 0xA0 */
- 0x562F, 0x5851, 0x5BB5, 0x5C0F, 0x5C11, 0x5DE2, 0x6240, 0x6383, /* 0xB0 */
- 0x6414, 0x662D, 0x68B3, 0x6CBC, 0x6D88, 0x6EAF, 0x701F, 0x70A4, /* 0xB0 */
- 0x71D2, 0x7526, 0x758F, 0x758E, 0x7619, 0x7B11, 0x7BE0, 0x7C2B, /* 0xC0 */
- 0x7D20, 0x7D39, 0x852C, 0x856D, 0x8607, 0x8A34, 0x900D, 0x9061, /* 0xC0 */
- 0x90B5, 0x92B7, 0x97F6, 0x9A37, 0x4FD7, 0x5C6C, 0x675F, 0x6D91, /* 0xD0 */
- 0x7C9F, 0x7E8C, 0x8B16, 0x8D16, 0x901F, 0x5B6B, 0x5DFD, 0x640D, /* 0xD0 */
- 0x84C0, 0x905C, 0x98E1, 0x7387, 0x5B8B, 0x609A, 0x677E, 0x6DDE, /* 0xE0 */
- 0x8A1F, 0x8AA6, 0x9001, 0x980C, 0x5237, 0xF970, 0x7051, 0x788E, /* 0xE0 */
- 0x9396, 0x8870, 0x91D7, 0x4FEE, 0x53D7, 0x55FD, 0x56DA, 0x5782, /* 0xF0 */
- 0x58FD, 0x5AC2, 0x5B88, 0x5CAB, 0x5CC0, 0x5E25, 0x6101 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_EC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x620D, 0x624B, 0x6388, 0x641C, 0x6536, 0x6578, 0x6A39, /* 0x30 */
- 0x6B8A, 0x6C34, 0x6D19, 0x6F31, 0x71E7, 0x72E9, 0x7378, 0x7407, /* 0x30 */
- 0x74B2, 0x7626, 0x7761, 0x79C0, 0x7A57, 0x7AEA, 0x7CB9, 0x7D8F, /* 0x40 */
- 0x7DAC, 0x7E61, 0x7F9E, 0x8129, 0x8331, 0x8490, 0x84DA, 0x85EA, /* 0x40 */
- 0x8896, 0x8AB0, 0x8B90, 0x8F38, 0x9042, 0x9083, 0x916C, 0x9296, /* 0x50 */
- 0x92B9, 0x968B, 0x96A7, 0x96A8, 0x96D6, 0x9700, 0x9808, 0x9996, /* 0x50 */
- 0x9AD3, 0x9B1A, 0x53D4, 0x587E, 0x5919, 0x5B70, 0x5BBF, 0x6DD1, /* 0x60 */
- 0x6F5A, 0x719F, 0x7421, 0x74B9, 0x8085, 0x83FD, 0x5DE1, 0x5F87, /* 0x60 */
- 0x5FAA, 0x6042, 0x65EC, 0x6812, 0x696F, 0x6A53, 0x6B89, 0x6D35, /* 0x70 */
- 0x6DF3, 0x73E3, 0x76FE, 0x77AC, 0x7B4D, 0x7D14, 0x8123, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x821C, 0x8340, 0x84F4, 0x8563, 0x8A62, 0x8AC4, 0x9187, /* 0x90 */
- 0x931E, 0x9806, 0x99B4, 0x620C, 0x8853, 0x8FF0, 0x9265, 0x5D07, /* 0x90 */
- 0x5D27, 0x5D69, 0x745F, 0x819D, 0x8768, 0x6FD5, 0x62FE, 0x7FD2, /* 0xA0 */
- 0x8936, 0x8972, 0x4E1E, 0x4E58, 0x50E7, 0x52DD, 0x5347, 0x627F, /* 0xA0 */
- 0x6607, 0x7E69, 0x8805, 0x965E, 0x4F8D, 0x5319, 0x5636, 0x59CB, /* 0xB0 */
- 0x5AA4, 0x5C38, 0x5C4E, 0x5C4D, 0x5E02, 0x5F11, 0x6043, 0x65BD, /* 0xB0 */
- 0x662F, 0x6642, 0x67BE, 0x67F4, 0x731C, 0x77E2, 0x793A, 0x7FC5, /* 0xC0 */
- 0x8494, 0x84CD, 0x8996, 0x8A66, 0x8A69, 0x8AE1, 0x8C55, 0x8C7A, /* 0xC0 */
- 0x57F4, 0x5BD4, 0x5F0F, 0x606F, 0x62ED, 0x690D, 0x6B96, 0x6E5C, /* 0xD0 */
- 0x7184, 0x7BD2, 0x8755, 0x8B58, 0x8EFE, 0x98DF, 0x98FE, 0x4F38, /* 0xD0 */
- 0x4F81, 0x4FE1, 0x547B, 0x5A20, 0x5BB8, 0x613C, 0x65B0, 0x6668, /* 0xE0 */
- 0x71FC, 0x7533, 0x795E, 0x7D33, 0x814E, 0x81E3, 0x8398, 0x85AA, /* 0xE0 */
- 0x85CE, 0x8703, 0x8A0A, 0x8EAB, 0x8F9B, 0xF971, 0x8FC5, 0x5931, /* 0xF0 */
- 0x5BA4, 0x5BE6, 0x6089, 0x5BE9, 0x5C0B, 0x5FC3, 0x6C81 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_ED[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF972, 0x6DF1, 0x700B, 0x751A, 0x82AF, 0x8AF6, 0x4EC0, /* 0x30 */
- 0x5341, 0xF973, 0x96D9, 0x6C0F, 0x4E9E, 0x4FC4, 0x5152, 0x555E, /* 0x30 */
- 0x5A25, 0x5CE8, 0x6211, 0x7259, 0x82BD, 0x83AA, 0x86FE, 0x8859, /* 0x40 */
- 0x8A1D, 0x963F, 0x96C5, 0x9913, 0x9D09, 0x9D5D, 0x580A, 0x5CB3, /* 0x40 */
- 0x5DBD, 0x5E44, 0x60E1, 0x6115, 0x63E1, 0x6A02, 0x6E25, 0x9102, /* 0x50 */
- 0x9354, 0x984E, 0x9C10, 0x9F77, 0x5B89, 0x5CB8, 0x6309, 0x664F, /* 0x50 */
- 0x6848, 0x773C, 0x96C1, 0x978D, 0x9854, 0x9B9F, 0x65A1, 0x8B01, /* 0x60 */
- 0x8ECB, 0x95BC, 0x5535, 0x5CA9, 0x5DD6, 0x5EB5, 0x6697, 0x764C, /* 0x60 */
- 0x83F4, 0x95C7, 0x58D3, 0x62BC, 0x72CE, 0x9D28, 0x4EF0, 0x592E, /* 0x70 */
- 0x600F, 0x663B, 0x6B83, 0x79E7, 0x9D26, 0x5393, 0x54C0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x57C3, 0x5D16, 0x611B, 0x66D6, 0x6DAF, 0x788D, 0x827E, /* 0x90 */
- 0x9698, 0x9744, 0x5384, 0x627C, 0x6396, 0x6DB2, 0x7E0A, 0x814B, /* 0x90 */
- 0x984D, 0x6AFB, 0x7F4C, 0x9DAF, 0x9E1A, 0x4E5F, 0x503B, 0x51B6, /* 0xA0 */
- 0x591C, 0x60F9, 0x63F6, 0x6930, 0x723A, 0x8036, 0xF974, 0x91CE, /* 0xA0 */
- 0x5F31, 0xF975, 0xF976, 0x7D04, 0x82E5, 0x846F, 0x84BB, 0x85E5, /* 0xB0 */
- 0x8E8D, 0xF977, 0x4F6F, 0xF978, 0xF979, 0x58E4, 0x5B43, 0x6059, /* 0xB0 */
- 0x63DA, 0x6518, 0x656D, 0x6698, 0xF97A, 0x694A, 0x6A23, 0x6D0B, /* 0xC0 */
- 0x7001, 0x716C, 0x75D2, 0x760D, 0x79B3, 0x7A70, 0xF97B, 0x7F8A, /* 0xC0 */
- 0xF97C, 0x8944, 0xF97D, 0x8B93, 0x91C0, 0x967D, 0xF97E, 0x990A, /* 0xD0 */
- 0x5704, 0x5FA1, 0x65BC, 0x6F01, 0x7600, 0x79A6, 0x8A9E, 0x99AD, /* 0xD0 */
- 0x9B5A, 0x9F6C, 0x5104, 0x61B6, 0x6291, 0x6A8D, 0x81C6, 0x5043, /* 0xE0 */
- 0x5830, 0x5F66, 0x7109, 0x8A00, 0x8AFA, 0x5B7C, 0x8616, 0x4FFA, /* 0xE0 */
- 0x513C, 0x56B4, 0x5944, 0x63A9, 0x6DF9, 0x5DAA, 0x696D, 0x5186, /* 0xF0 */
- 0x4E88, 0x4F59, 0xF97F, 0xF980, 0xF981, 0x5982, 0xF982 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_EE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF983, 0x6B5F, 0x6C5D, 0xF984, 0x74B5, 0x7916, 0xF985, /* 0x30 */
- 0x8207, 0x8245, 0x8339, 0x8F3F, 0x8F5D, 0xF986, 0x9918, 0xF987, /* 0x30 */
- 0xF988, 0xF989, 0x4EA6, 0xF98A, 0x57DF, 0x5F79, 0x6613, 0xF98B, /* 0x40 */
- 0xF98C, 0x75AB, 0x7E79, 0x8B6F, 0xF98D, 0x9006, 0x9A5B, 0x56A5, /* 0x40 */
- 0x5827, 0x59F8, 0x5A1F, 0x5BB4, 0xF98E, 0x5EF6, 0xF98F, 0xF990, /* 0x50 */
- 0x6350, 0x633B, 0xF991, 0x693D, 0x6C87, 0x6CBF, 0x6D8E, 0x6D93, /* 0x50 */
- 0x6DF5, 0x6F14, 0xF992, 0x70DF, 0x7136, 0x7159, 0xF993, 0x71C3, /* 0x60 */
- 0x71D5, 0xF994, 0x784F, 0x786F, 0xF995, 0x7B75, 0x7DE3, 0xF996, /* 0x60 */
- 0x7E2F, 0xF997, 0x884D, 0x8EDF, 0xF998, 0xF999, 0xF99A, 0x925B, /* 0x70 */
- 0xF99B, 0x9CF6, 0xF99C, 0xF99D, 0xF99E, 0x6085, 0x6D85, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xF99F, 0x71B1, 0xF9A0, 0xF9A1, 0x95B1, 0x53AD, 0xF9A2, /* 0x90 */
- 0xF9A3, 0xF9A4, 0x67D3, 0xF9A5, 0x708E, 0x7130, 0x7430, 0x8276, /* 0x90 */
- 0x82D2, 0xF9A6, 0x95BB, 0x9AE5, 0x9E7D, 0x66C4, 0xF9A7, 0x71C1, /* 0xA0 */
- 0x8449, 0xF9A8, 0xF9A9, 0x584B, 0xF9AA, 0xF9AB, 0x5DB8, 0x5F71, /* 0xA0 */
- 0xF9AC, 0x6620, 0x668E, 0x6979, 0x69AE, 0x6C38, 0x6CF3, 0x6E36, /* 0xB0 */
- 0x6F41, 0x6FDA, 0x701B, 0x702F, 0x7150, 0x71DF, 0x7370, 0xF9AD, /* 0xB0 */
- 0x745B, 0xF9AE, 0x74D4, 0x76C8, 0x7A4E, 0x7E93, 0xF9AF, 0xF9B0, /* 0xC0 */
- 0x82F1, 0x8A60, 0x8FCE, 0xF9B1, 0x9348, 0xF9B2, 0x9719, 0xF9B3, /* 0xC0 */
- 0xF9B4, 0x4E42, 0x502A, 0xF9B5, 0x5208, 0x53E1, 0x66F3, 0x6C6D, /* 0xD0 */
- 0x6FCA, 0x730A, 0x777F, 0x7A62, 0x82AE, 0x85DD, 0x8602, 0xF9B6, /* 0xD0 */
- 0x88D4, 0x8A63, 0x8B7D, 0x8C6B, 0xF9B7, 0x92B3, 0xF9B8, 0x9713, /* 0xE0 */
- 0x9810, 0x4E94, 0x4F0D, 0x4FC9, 0x50B2, 0x5348, 0x543E, 0x5433, /* 0xE0 */
- 0x55DA, 0x5862, 0x58BA, 0x5967, 0x5A1B, 0x5BE4, 0x609F, 0xF9B9, /* 0xF0 */
- 0x61CA, 0x6556, 0x65FF, 0x6664, 0x68A7, 0x6C5A, 0x6FB3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_EF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x70CF, 0x71AC, 0x7352, 0x7B7D, 0x8708, 0x8AA4, 0x9C32, /* 0x30 */
- 0x9F07, 0x5C4B, 0x6C83, 0x7344, 0x7389, 0x923A, 0x6EAB, 0x7465, /* 0x30 */
- 0x761F, 0x7A69, 0x7E15, 0x860A, 0x5140, 0x58C5, 0x64C1, 0x74EE, /* 0x40 */
- 0x7515, 0x7670, 0x7FC1, 0x9095, 0x96CD, 0x9954, 0x6E26, 0x74E6, /* 0x40 */
- 0x7AA9, 0x7AAA, 0x81E5, 0x86D9, 0x8778, 0x8A1B, 0x5A49, 0x5B8C, /* 0x50 */
- 0x5B9B, 0x68A1, 0x6900, 0x6D63, 0x73A9, 0x7413, 0x742C, 0x7897, /* 0x50 */
- 0x7DE9, 0x7FEB, 0x8118, 0x8155, 0x839E, 0x8C4C, 0x962E, 0x9811, /* 0x60 */
- 0x66F0, 0x5F80, 0x65FA, 0x6789, 0x6C6A, 0x738B, 0x502D, 0x5A03, /* 0x60 */
- 0x6B6A, 0x77EE, 0x5916, 0x5D6C, 0x5DCD, 0x7325, 0x754F, 0xF9BA, /* 0x70 */
- 0xF9BB, 0x50E5, 0x51F9, 0x582F, 0x592D, 0x5996, 0x59DA, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x5BE5, 0xF9BC, 0xF9BD, 0x5DA2, 0x62D7, 0x6416, 0x6493, /* 0x90 */
- 0x64FE, 0xF9BE, 0x66DC, 0xF9BF, 0x6A48, 0xF9C0, 0x71FF, 0x7464, /* 0x90 */
- 0xF9C1, 0x7A88, 0x7AAF, 0x7E47, 0x7E5E, 0x8000, 0x8170, 0xF9C2, /* 0xA0 */
- 0x87EF, 0x8981, 0x8B20, 0x9059, 0xF9C3, 0x9080, 0x9952, 0x617E, /* 0xA0 */
- 0x6B32, 0x6D74, 0x7E1F, 0x8925, 0x8FB1, 0x4FD1, 0x50AD, 0x5197, /* 0xB0 */
- 0x52C7, 0x57C7, 0x5889, 0x5BB9, 0x5EB8, 0x6142, 0x6995, 0x6D8C, /* 0xB0 */
- 0x6E67, 0x6EB6, 0x7194, 0x7462, 0x7528, 0x752C, 0x8073, 0x8338, /* 0xC0 */
- 0x84C9, 0x8E0A, 0x9394, 0x93DE, 0xF9C4, 0x4E8E, 0x4F51, 0x5076, /* 0xC0 */
- 0x512A, 0x53C8, 0x53CB, 0x53F3, 0x5B87, 0x5BD3, 0x5C24, 0x611A, /* 0xD0 */
- 0x6182, 0x65F4, 0x725B, 0x7397, 0x7440, 0x76C2, 0x7950, 0x7991, /* 0xD0 */
- 0x79B9, 0x7D06, 0x7FBD, 0x828B, 0x85D5, 0x865E, 0x8FC2, 0x9047, /* 0xE0 */
- 0x90F5, 0x91EA, 0x9685, 0x96E8, 0x96E9, 0x52D6, 0x5F67, 0x65ED, /* 0xE0 */
- 0x6631, 0x682F, 0x715C, 0x7A36, 0x90C1, 0x980A, 0x4E91, 0xF9C5, /* 0xF0 */
- 0x6A52, 0x6B9E, 0x6F90, 0x7189, 0x8018, 0x82B8, 0x8553 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_F0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x904B, 0x9695, 0x96F2, 0x97FB, 0x851A, 0x9B31, 0x4E90, /* 0x30 */
- 0x718A, 0x96C4, 0x5143, 0x539F, 0x54E1, 0x5713, 0x5712, 0x57A3, /* 0x30 */
- 0x5A9B, 0x5AC4, 0x5BC3, 0x6028, 0x613F, 0x63F4, 0x6C85, 0x6D39, /* 0x40 */
- 0x6E72, 0x6E90, 0x7230, 0x733F, 0x7457, 0x82D1, 0x8881, 0x8F45, /* 0x40 */
- 0x9060, 0xF9C6, 0x9662, 0x9858, 0x9D1B, 0x6708, 0x8D8A, 0x925E, /* 0x50 */
- 0x4F4D, 0x5049, 0x50DE, 0x5371, 0x570D, 0x59D4, 0x5A01, 0x5C09, /* 0x50 */
- 0x6170, 0x6690, 0x6E2D, 0x7232, 0x744B, 0x7DEF, 0x80C3, 0x840E, /* 0x60 */
- 0x8466, 0x853F, 0x875F, 0x885B, 0x8918, 0x8B02, 0x9055, 0x97CB, /* 0x60 */
- 0x9B4F, 0x4E73, 0x4F91, 0x5112, 0x516A, 0xF9C7, 0x552F, 0x55A9, /* 0x70 */
- 0x5B7A, 0x5BA5, 0x5E7C, 0x5E7D, 0x5EBE, 0x60A0, 0x60DF, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x6108, 0x6109, 0x63C4, 0x6538, 0x6709, 0xF9C8, 0x67D4, /* 0x90 */
- 0x67DA, 0xF9C9, 0x6961, 0x6962, 0x6CB9, 0x6D27, 0xF9CA, 0x6E38, /* 0x90 */
- 0xF9CB, 0x6FE1, 0x7336, 0x7337, 0xF9CC, 0x745C, 0x7531, 0xF9CD, /* 0xA0 */
- 0x7652, 0xF9CE, 0xF9CF, 0x7DAD, 0x81FE, 0x8438, 0x88D5, 0x8A98, /* 0xA0 */
- 0x8ADB, 0x8AED, 0x8E30, 0x8E42, 0x904A, 0x903E, 0x907A, 0x9149, /* 0xB0 */
- 0x91C9, 0x936E, 0xF9D0, 0xF9D1, 0x5809, 0xF9D2, 0x6BD3, 0x8089, /* 0xB0 */
- 0x80B2, 0xF9D3, 0xF9D4, 0x5141, 0x596B, 0x5C39, 0xF9D5, 0xF9D6, /* 0xC0 */
- 0x6F64, 0x73A7, 0x80E4, 0x8D07, 0xF9D7, 0x9217, 0x958F, 0xF9D8, /* 0xC0 */
- 0xF9D9, 0xF9DA, 0xF9DB, 0x807F, 0x620E, 0x701C, 0x7D68, 0x878D, /* 0xD0 */
- 0xF9DC, 0x57A0, 0x6069, 0x6147, 0x6BB7, 0x8ABE, 0x9280, 0x96B1, /* 0xD0 */
- 0x4E59, 0x541F, 0x6DEB, 0x852D, 0x9670, 0x97F3, 0x98EE, 0x63D6, /* 0xE0 */
- 0x6CE3, 0x9091, 0x51DD, 0x61C9, 0x81BA, 0x9DF9, 0x4F9D, 0x501A, /* 0xE0 */
- 0x5100, 0x5B9C, 0x610F, 0x61FF, 0x64EC, 0x6905, 0x6BC5, 0x7591, /* 0xF0 */
- 0x77E3, 0x7FA9, 0x8264, 0x858F, 0x87FB, 0x8863, 0x8ABC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_F1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8B70, 0x91AB, 0x4E8C, 0x4EE5, 0x4F0A, 0xF9DD, 0xF9DE, /* 0x30 */
- 0x5937, 0x59E8, 0xF9DF, 0x5DF2, 0x5F1B, 0x5F5B, 0x6021, 0xF9E0, /* 0x30 */
- 0xF9E1, 0xF9E2, 0xF9E3, 0x723E, 0x73E5, 0xF9E4, 0x7570, 0x75CD, /* 0x40 */
- 0xF9E5, 0x79FB, 0xF9E6, 0x800C, 0x8033, 0x8084, 0x82E1, 0x8351, /* 0x40 */
- 0xF9E7, 0xF9E8, 0x8CBD, 0x8CB3, 0x9087, 0xF9E9, 0xF9EA, 0x98F4, /* 0x50 */
- 0x990C, 0xF9EB, 0xF9EC, 0x7037, 0x76CA, 0x7FCA, 0x7FCC, 0x7FFC, /* 0x50 */
- 0x8B1A, 0x4EBA, 0x4EC1, 0x5203, 0x5370, 0xF9ED, 0x54BD, 0x56E0, /* 0x60 */
- 0x59FB, 0x5BC5, 0x5F15, 0x5FCD, 0x6E6E, 0xF9EE, 0xF9EF, 0x7D6A, /* 0x60 */
- 0x8335, 0xF9F0, 0x8693, 0x8A8D, 0xF9F1, 0x976D, 0x9777, 0xF9F2, /* 0x70 */
- 0xF9F3, 0x4E00, 0x4F5A, 0x4F7E, 0x58F9, 0x65E5, 0x6EA2, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x9038, 0x93B0, 0x99B9, 0x4EFB, 0x58EC, 0x598A, 0x59D9, /* 0x90 */
- 0x6041, 0xF9F4, 0xF9F5, 0x7A14, 0xF9F6, 0x834F, 0x8CC3, 0x5165, /* 0x90 */
- 0x5344, 0xF9F7, 0xF9F8, 0xF9F9, 0x4ECD, 0x5269, 0x5B55, 0x82BF, /* 0xA0 */
- 0x4ED4, 0x523A, 0x54A8, 0x59C9, 0x59FF, 0x5B50, 0x5B57, 0x5B5C, /* 0xA0 */
- 0x6063, 0x6148, 0x6ECB, 0x7099, 0x716E, 0x7386, 0x74F7, 0x75B5, /* 0xB0 */
- 0x78C1, 0x7D2B, 0x8005, 0x81EA, 0x8328, 0x8517, 0x85C9, 0x8AEE, /* 0xB0 */
- 0x8CC7, 0x96CC, 0x4F5C, 0x52FA, 0x56BC, 0x65AB, 0x6628, 0x707C, /* 0xC0 */
- 0x70B8, 0x7235, 0x7DBD, 0x828D, 0x914C, 0x96C0, 0x9D72, 0x5B71, /* 0xC0 */
- 0x68E7, 0x6B98, 0x6F7A, 0x76DE, 0x5C91, 0x66AB, 0x6F5B, 0x7BB4, /* 0xD0 */
- 0x7C2A, 0x8836, 0x96DC, 0x4E08, 0x4ED7, 0x5320, 0x5834, 0x58BB, /* 0xD0 */
- 0x58EF, 0x596C, 0x5C07, 0x5E33, 0x5E84, 0x5F35, 0x638C, 0x66B2, /* 0xE0 */
- 0x6756, 0x6A1F, 0x6AA3, 0x6B0C, 0x6F3F, 0x7246, 0xF9FA, 0x7350, /* 0xE0 */
- 0x748B, 0x7AE0, 0x7CA7, 0x8178, 0x81DF, 0x81E7, 0x838A, 0x846C, /* 0xF0 */
- 0x8523, 0x8594, 0x85CF, 0x88DD, 0x8D13, 0x91AC, 0x9577 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_F2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x969C, 0x518D, 0x54C9, 0x5728, 0x5BB0, 0x624D, 0x6750, /* 0x30 */
- 0x683D, 0x6893, 0x6E3D, 0x6ED3, 0x707D, 0x7E21, 0x88C1, 0x8CA1, /* 0x30 */
- 0x8F09, 0x9F4B, 0x9F4E, 0x722D, 0x7B8F, 0x8ACD, 0x931A, 0x4F47, /* 0x40 */
- 0x4F4E, 0x5132, 0x5480, 0x59D0, 0x5E95, 0x62B5, 0x6775, 0x696E, /* 0x40 */
- 0x6A17, 0x6CAE, 0x6E1A, 0x72D9, 0x732A, 0x75BD, 0x7BB8, 0x7D35, /* 0x50 */
- 0x82E7, 0x83F9, 0x8457, 0x85F7, 0x8A5B, 0x8CAF, 0x8E87, 0x9019, /* 0x50 */
- 0x90B8, 0x96CE, 0x9F5F, 0x52E3, 0x540A, 0x5AE1, 0x5BC2, 0x6458, /* 0x60 */
- 0x6575, 0x6EF4, 0x72C4, 0xF9FB, 0x7684, 0x7A4D, 0x7B1B, 0x7C4D, /* 0x60 */
- 0x7E3E, 0x7FDF, 0x837B, 0x8B2B, 0x8CCA, 0x8D64, 0x8DE1, 0x8E5F, /* 0x70 */
- 0x8FEA, 0x8FF9, 0x9069, 0x93D1, 0x4F43, 0x4F7A, 0x50B3, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x5168, 0x5178, 0x524D, 0x526A, 0x5861, 0x587C, 0x5960, /* 0x90 */
- 0x5C08, 0x5C55, 0x5EDB, 0x609B, 0x6230, 0x6813, 0x6BBF, 0x6C08, /* 0x90 */
- 0x6FB1, 0x714E, 0x7420, 0x7530, 0x7538, 0x7551, 0x7672, 0x7B4C, /* 0xA0 */
- 0x7B8B, 0x7BAD, 0x7BC6, 0x7E8F, 0x8A6E, 0x8F3E, 0x8F49, 0x923F, /* 0xA0 */
- 0x9293, 0x9322, 0x942B, 0x96FB, 0x985A, 0x986B, 0x991E, 0x5207, /* 0xB0 */
- 0x622A, 0x6298, 0x6D59, 0x7664, 0x7ACA, 0x7BC0, 0x7D76, 0x5360, /* 0xB0 */
- 0x5CBE, 0x5E97, 0x6F38, 0x70B9, 0x7C98, 0x9711, 0x9B8E, 0x9EDE, /* 0xC0 */
- 0x63A5, 0x647A, 0x8776, 0x4E01, 0x4E95, 0x4EAD, 0x505C, 0x5075, /* 0xC0 */
- 0x5448, 0x59C3, 0x5B9A, 0x5E40, 0x5EAD, 0x5EF7, 0x5F81, 0x60C5, /* 0xD0 */
- 0x633A, 0x653F, 0x6574, 0x65CC, 0x6676, 0x6678, 0x67FE, 0x6968, /* 0xD0 */
- 0x6A89, 0x6B63, 0x6C40, 0x6DC0, 0x6DE8, 0x6E1F, 0x6E5E, 0x701E, /* 0xE0 */
- 0x70A1, 0x738E, 0x73FD, 0x753A, 0x775B, 0x7887, 0x798E, 0x7A0B, /* 0xE0 */
- 0x7A7D, 0x7CBE, 0x7D8E, 0x8247, 0x8A02, 0x8AEA, 0x8C9E, 0x912D, /* 0xF0 */
- 0x914A, 0x91D8, 0x9266, 0x92CC, 0x9320, 0x9706, 0x9756 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_F3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x975C, 0x9802, 0x9F0E, 0x5236, 0x5291, 0x557C, 0x5824, /* 0x30 */
- 0x5E1D, 0x5F1F, 0x608C, 0x63D0, 0x68AF, 0x6FDF, 0x796D, 0x7B2C, /* 0x30 */
- 0x81CD, 0x85BA, 0x88FD, 0x8AF8, 0x8E44, 0x918D, 0x9664, 0x969B, /* 0x40 */
- 0x973D, 0x984C, 0x9F4A, 0x4FCE, 0x5146, 0x51CB, 0x52A9, 0x5632, /* 0x40 */
- 0x5F14, 0x5F6B, 0x63AA, 0x64CD, 0x65E9, 0x6641, 0x66FA, 0x66F9, /* 0x50 */
- 0x671D, 0x689D, 0x68D7, 0x69FD, 0x6F15, 0x6F6E, 0x7167, 0x71E5, /* 0x50 */
- 0x722A, 0x74AA, 0x773A, 0x7956, 0x795A, 0x79DF, 0x7A20, 0x7A95, /* 0x60 */
- 0x7C97, 0x7CDF, 0x7D44, 0x7E70, 0x8087, 0x85FB, 0x86A4, 0x8A54, /* 0x60 */
- 0x8ABF, 0x8D99, 0x8E81, 0x9020, 0x906D, 0x91E3, 0x963B, 0x96D5, /* 0x70 */
- 0x9CE5, 0x65CF, 0x7C07, 0x8DB3, 0x93C3, 0x5B58, 0x5C0A, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x5352, 0x62D9, 0x731D, 0x5027, 0x5B97, 0x5F9E, 0x60B0, /* 0x90 */
- 0x616B, 0x68D5, 0x6DD9, 0x742E, 0x7A2E, 0x7D42, 0x7D9C, 0x7E31, /* 0x90 */
- 0x816B, 0x8E2A, 0x8E35, 0x937E, 0x9418, 0x4F50, 0x5750, 0x5DE6, /* 0xA0 */
- 0x5EA7, 0x632B, 0x7F6A, 0x4E3B, 0x4F4F, 0x4F8F, 0x505A, 0x59DD, /* 0xA0 */
- 0x80C4, 0x546A, 0x5468, 0x55FE, 0x594F, 0x5B99, 0x5DDE, 0x5EDA, /* 0xB0 */
- 0x665D, 0x6731, 0x67F1, 0x682A, 0x6CE8, 0x6D32, 0x6E4A, 0x6F8D, /* 0xB0 */
- 0x70B7, 0x73E0, 0x7587, 0x7C4C, 0x7D02, 0x7D2C, 0x7DA2, 0x821F, /* 0xC0 */
- 0x86DB, 0x8A3B, 0x8A85, 0x8D70, 0x8E8A, 0x8F33, 0x9031, 0x914E, /* 0xC0 */
- 0x9152, 0x9444, 0x99D0, 0x7AF9, 0x7CA5, 0x4FCA, 0x5101, 0x51C6, /* 0xD0 */
- 0x57C8, 0x5BEF, 0x5CFB, 0x6659, 0x6A3D, 0x6D5A, 0x6E96, 0x6FEC, /* 0xD0 */
- 0x710C, 0x756F, 0x7AE3, 0x8822, 0x9021, 0x9075, 0x96CB, 0x99FF, /* 0xE0 */
- 0x8301, 0x4E2D, 0x4EF2, 0x8846, 0x91CD, 0x537D, 0x6ADB, 0x696B, /* 0xE0 */
- 0x6C41, 0x847A, 0x589E, 0x618E, 0x66FE, 0x62EF, 0x70DD, 0x7511, /* 0xF0 */
- 0x75C7, 0x7E52, 0x84B8, 0x8B49, 0x8D08, 0x4E4B, 0x53EA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_F4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x54AB, 0x5730, 0x5740, 0x5FD7, 0x6301, 0x6307, 0x646F, /* 0x30 */
- 0x652F, 0x65E8, 0x667A, 0x679D, 0x67B3, 0x6B62, 0x6C60, 0x6C9A, /* 0x30 */
- 0x6F2C, 0x77E5, 0x7825, 0x7949, 0x7957, 0x7D19, 0x80A2, 0x8102, /* 0x40 */
- 0x81F3, 0x829D, 0x82B7, 0x8718, 0x8A8C, 0xF9FC, 0x8D04, 0x8DBE, /* 0x40 */
- 0x9072, 0x76F4, 0x7A19, 0x7A37, 0x7E54, 0x8077, 0x5507, 0x55D4, /* 0x50 */
- 0x5875, 0x632F, 0x6422, 0x6649, 0x664B, 0x686D, 0x699B, 0x6B84, /* 0x50 */
- 0x6D25, 0x6EB1, 0x73CD, 0x7468, 0x74A1, 0x755B, 0x75B9, 0x76E1, /* 0x60 */
- 0x771E, 0x778B, 0x79E6, 0x7E09, 0x7E1D, 0x81FB, 0x852F, 0x8897, /* 0x60 */
- 0x8A3A, 0x8CD1, 0x8EEB, 0x8FB0, 0x9032, 0x93AD, 0x9663, 0x9673, /* 0x70 */
- 0x9707, 0x4F84, 0x53F1, 0x59EA, 0x5AC9, 0x5E19, 0x684E, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x74C6, 0x75BE, 0x79E9, 0x7A92, 0x81A3, 0x86ED, 0x8CEA, /* 0x90 */
- 0x8DCC, 0x8FED, 0x659F, 0x6715, 0xF9FD, 0x57F7, 0x6F57, 0x7DDD, /* 0x90 */
- 0x8F2F, 0x93F6, 0x96C6, 0x5FB5, 0x61F2, 0x6F84, 0x4E14, 0x4F98, /* 0xA0 */
- 0x501F, 0x53C9, 0x55DF, 0x5D6F, 0x5DEE, 0x6B21, 0x6B64, 0x78CB, /* 0xA0 */
- 0x7B9A, 0xF9FE, 0x8E49, 0x8ECA, 0x906E, 0x6349, 0x643E, 0x7740, /* 0xB0 */
- 0x7A84, 0x932F, 0x947F, 0x9F6A, 0x64B0, 0x6FAF, 0x71E6, 0x74A8, /* 0xB0 */
- 0x74DA, 0x7AC4, 0x7C12, 0x7E82, 0x7CB2, 0x7E98, 0x8B9A, 0x8D0A, /* 0xC0 */
- 0x947D, 0x9910, 0x994C, 0x5239, 0x5BDF, 0x64E6, 0x672D, 0x7D2E, /* 0xC0 */
- 0x50ED, 0x53C3, 0x5879, 0x6158, 0x6159, 0x61FA, 0x65AC, 0x7AD9, /* 0xD0 */
- 0x8B92, 0x8B96, 0x5009, 0x5021, 0x5275, 0x5531, 0x5A3C, 0x5EE0, /* 0xD0 */
- 0x5F70, 0x6134, 0x655E, 0x660C, 0x6636, 0x66A2, 0x69CD, 0x6EC4, /* 0xE0 */
- 0x6F32, 0x7316, 0x7621, 0x7A93, 0x8139, 0x8259, 0x83D6, 0x84BC, /* 0xE0 */
- 0x50B5, 0x57F0, 0x5BC0, 0x5BE8, 0x5F69, 0x63A1, 0x7826, 0x7DB5, /* 0xF0 */
- 0x83DC, 0x8521, 0x91C7, 0x91F5, 0x518A, 0x67F5, 0x7B56 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_F5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8CAC, 0x51C4, 0x59BB, 0x60BD, 0x8655, 0x501C, 0xF9FF, /* 0x30 */
- 0x5254, 0x5C3A, 0x617D, 0x621A, 0x62D3, 0x64F2, 0x65A5, 0x6ECC, /* 0x30 */
- 0x7620, 0x810A, 0x8E60, 0x965F, 0x96BB, 0x4EDF, 0x5343, 0x5598, /* 0x40 */
- 0x5929, 0x5DDD, 0x64C5, 0x6CC9, 0x6DFA, 0x7394, 0x7A7F, 0x821B, /* 0x40 */
- 0x85A6, 0x8CE4, 0x8E10, 0x9077, 0x91E7, 0x95E1, 0x9621, 0x97C6, /* 0x50 */
- 0x51F8, 0x54F2, 0x5586, 0x5FB9, 0x64A4, 0x6F88, 0x7DB4, 0x8F1F, /* 0x50 */
- 0x8F4D, 0x9435, 0x50C9, 0x5C16, 0x6CBE, 0x6DFB, 0x751B, 0x77BB, /* 0x60 */
- 0x7C3D, 0x7C64, 0x8A79, 0x8AC2, 0x581E, 0x59BE, 0x5E16, 0x6377, /* 0x60 */
- 0x7252, 0x758A, 0x776B, 0x8ADC, 0x8CBC, 0x8F12, 0x5EF3, 0x6674, /* 0x70 */
- 0x6DF8, 0x807D, 0x83C1, 0x8ACB, 0x9751, 0x9BD6, 0xFA00, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x5243, 0x66FF, 0x6D95, 0x6EEF, 0x7DE0, 0x8AE6, 0x902E, /* 0x90 */
- 0x905E, 0x9AD4, 0x521D, 0x527F, 0x54E8, 0x6194, 0x6284, 0x62DB, /* 0x90 */
- 0x68A2, 0x6912, 0x695A, 0x6A35, 0x7092, 0x7126, 0x785D, 0x7901, /* 0xA0 */
- 0x790E, 0x79D2, 0x7A0D, 0x8096, 0x8278, 0x82D5, 0x8349, 0x8549, /* 0xA0 */
- 0x8C82, 0x8D85, 0x9162, 0x918B, 0x91AE, 0x4FC3, 0x56D1, 0x71ED, /* 0xB0 */
- 0x77D7, 0x8700, 0x89F8, 0x5BF8, 0x5FD6, 0x6751, 0x90A8, 0x53E2, /* 0xB0 */
- 0x585A, 0x5BF5, 0x60A4, 0x6181, 0x6460, 0x7E3D, 0x8070, 0x8525, /* 0xC0 */
- 0x9283, 0x64AE, 0x50AC, 0x5D14, 0x6700, 0x589C, 0x62BD, 0x63A8, /* 0xC0 */
- 0x690E, 0x6978, 0x6A1E, 0x6E6B, 0x76BA, 0x79CB, 0x82BB, 0x8429, /* 0xD0 */
- 0x8ACF, 0x8DA8, 0x8FFD, 0x9112, 0x914B, 0x919C, 0x9310, 0x9318, /* 0xD0 */
- 0x939A, 0x96DB, 0x9A36, 0x9C0D, 0x4E11, 0x755C, 0x795D, 0x7AFA, /* 0xE0 */
- 0x7B51, 0x7BC9, 0x7E2E, 0x84C4, 0x8E59, 0x8E74, 0x8EF8, 0x9010, /* 0xE0 */
- 0x6625, 0x693F, 0x7443, 0x51FA, 0x672E, 0x9EDC, 0x5145, 0x5FE0, /* 0xF0 */
- 0x6C96, 0x87F2, 0x885D, 0x8877, 0x60B4, 0x81B5, 0x8403 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_F6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8D05, 0x53D6, 0x5439, 0x5634, 0x5A36, 0x5C31, 0x708A, /* 0x30 */
- 0x7FE0, 0x805A, 0x8106, 0x81ED, 0x8DA3, 0x9189, 0x9A5F, 0x9DF2, /* 0x30 */
- 0x5074, 0x4EC4, 0x53A0, 0x60FB, 0x6E2C, 0x5C64, 0x4F88, 0x5024, /* 0x40 */
- 0x55E4, 0x5CD9, 0x5E5F, 0x6065, 0x6894, 0x6CBB, 0x6DC4, 0x71BE, /* 0x40 */
- 0x75D4, 0x75F4, 0x7661, 0x7A1A, 0x7A49, 0x7DC7, 0x7DFB, 0x7F6E, /* 0x50 */
- 0x81F4, 0x86A9, 0x8F1C, 0x96C9, 0x99B3, 0x9F52, 0x5247, 0x52C5, /* 0x50 */
- 0x98ED, 0x89AA, 0x4E03, 0x67D2, 0x6F06, 0x4FB5, 0x5BE2, 0x6795, /* 0x60 */
- 0x6C88, 0x6D78, 0x741B, 0x7827, 0x91DD, 0x937C, 0x87C4, 0x79E4, /* 0x60 */
- 0x7A31, 0x5FEB, 0x4ED6, 0x54A4, 0x553E, 0x58AE, 0x59A5, 0x60F0, /* 0x70 */
- 0x6253, 0x62D6, 0x6736, 0x6955, 0x8235, 0x9640, 0x99B1, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x99DD, 0x502C, 0x5353, 0x5544, 0x577C, 0xFA01, 0x6258, /* 0x90 */
- 0xFA02, 0x64E2, 0x666B, 0x67DD, 0x6FC1, 0x6FEF, 0x7422, 0x7438, /* 0x90 */
- 0x8A17, 0x9438, 0x5451, 0x5606, 0x5766, 0x5F48, 0x619A, 0x6B4E, /* 0xA0 */
- 0x7058, 0x70AD, 0x7DBB, 0x8A95, 0x596A, 0x812B, 0x63A2, 0x7708, /* 0xA0 */
- 0x803D, 0x8CAA, 0x5854, 0x642D, 0x69BB, 0x5B95, 0x5E11, 0x6E6F, /* 0xB0 */
- 0xFA03, 0x8569, 0x514C, 0x53F0, 0x592A, 0x6020, 0x614B, 0x6B86, /* 0xB0 */
- 0x6C70, 0x6CF0, 0x7B1E, 0x80CE, 0x82D4, 0x8DC6, 0x90B0, 0x98B1, /* 0xC0 */
- 0xFA04, 0x64C7, 0x6FA4, 0x6491, 0x6504, 0x514E, 0x5410, 0x571F, /* 0xC0 */
- 0x8A0E, 0x615F, 0x6876, 0xFA05, 0x75DB, 0x7B52, 0x7D71, 0x901A, /* 0xD0 */
- 0x5806, 0x69CC, 0x817F, 0x892A, 0x9000, 0x9839, 0x5078, 0x5957, /* 0xD0 */
- 0x59AC, 0x6295, 0x900F, 0x9B2A, 0x615D, 0x7279, 0x95D6, 0x5761, /* 0xE0 */
- 0x5A46, 0x5DF4, 0x628A, 0x64AD, 0x64FA, 0x6777, 0x6CE2, 0x6D3E, /* 0xE0 */
- 0x722C, 0x7436, 0x7834, 0x7F77, 0x82AD, 0x8DDB, 0x9817, 0x5224, /* 0xF0 */
- 0x5742, 0x677F, 0x7248, 0x74E3, 0x8CA9, 0x8FA6, 0x9211 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_F7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x962A, 0x516B, 0x53ED, 0x634C, 0x4F69, 0x5504, 0x6096, /* 0x30 */
- 0x6557, 0x6C9B, 0x6D7F, 0x724C, 0x72FD, 0x7A17, 0x8987, 0x8C9D, /* 0x30 */
- 0x5F6D, 0x6F8E, 0x70F9, 0x81A8, 0x610E, 0x4FBF, 0x504F, 0x6241, /* 0x40 */
- 0x7247, 0x7BC7, 0x7DE8, 0x7FE9, 0x904D, 0x97AD, 0x9A19, 0x8CB6, /* 0x40 */
- 0x576A, 0x5E73, 0x67B0, 0x840D, 0x8A55, 0x5420, 0x5B16, 0x5E63, /* 0x50 */
- 0x5EE2, 0x5F0A, 0x6583, 0x80BA, 0x853D, 0x9589, 0x965B, 0x4F48, /* 0x50 */
- 0x5305, 0x530D, 0x530F, 0x5486, 0x54FA, 0x5703, 0x5E03, 0x6016, /* 0x60 */
- 0x629B, 0x62B1, 0x6355, 0xFA06, 0x6CE1, 0x6D66, 0x75B1, 0x7832, /* 0x60 */
- 0x80DE, 0x812F, 0x82DE, 0x8461, 0x84B2, 0x888D, 0x8912, 0x900B, /* 0x70 */
- 0x92EA, 0x98FD, 0x9B91, 0x5E45, 0x66B4, 0x66DD, 0x7011, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x7206, 0xFA07, 0x4FF5, 0x527D, 0x5F6A, 0x6153, 0x6753, /* 0x90 */
- 0x6A19, 0x6F02, 0x74E2, 0x7968, 0x8868, 0x8C79, 0x98C7, 0x98C4, /* 0x90 */
- 0x9A43, 0x54C1, 0x7A1F, 0x6953, 0x8AF7, 0x8C4A, 0x98A8, 0x99AE, /* 0xA0 */
- 0x5F7C, 0x62AB, 0x75B2, 0x76AE, 0x88AB, 0x907F, 0x9642, 0x5339, /* 0xA0 */
- 0x5F3C, 0x5FC5, 0x6CCC, 0x73CC, 0x7562, 0x758B, 0x7B46, 0x82FE, /* 0xB0 */
- 0x999D, 0x4E4F, 0x903C, 0x4E0B, 0x4F55, 0x53A6, 0x590F, 0x5EC8, /* 0xB0 */
- 0x6630, 0x6CB3, 0x7455, 0x8377, 0x8766, 0x8CC0, 0x9050, 0x971E, /* 0xC0 */
- 0x9C15, 0x58D1, 0x5B78, 0x8650, 0x8B14, 0x9DB4, 0x5BD2, 0x6068, /* 0xC0 */
- 0x608D, 0x65F1, 0x6C57, 0x6F22, 0x6FA3, 0x701A, 0x7F55, 0x7FF0, /* 0xD0 */
- 0x9591, 0x9592, 0x9650, 0x97D3, 0x5272, 0x8F44, 0x51FD, 0x542B, /* 0xD0 */
- 0x54B8, 0x5563, 0x558A, 0x6ABB, 0x6DB5, 0x7DD8, 0x8266, 0x929C, /* 0xE0 */
- 0x9677, 0x9E79, 0x5408, 0x54C8, 0x76D2, 0x86E4, 0x95A4, 0x95D4, /* 0xE0 */
- 0x965C, 0x4EA2, 0x4F09, 0x59EE, 0x5AE6, 0x5DF7, 0x6052, 0x6297, /* 0xF0 */
- 0x676D, 0x6841, 0x6C86, 0x6E2F, 0x7F38, 0x809B, 0x822A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_F8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFA08, 0xFA09, 0x9805, 0x4EA5, 0x5055, 0x54B3, 0x5793, /* 0x30 */
- 0x595A, 0x5B69, 0x5BB3, 0x61C8, 0x6977, 0x6D77, 0x7023, 0x87F9, /* 0x30 */
- 0x89E3, 0x8A72, 0x8AE7, 0x9082, 0x99ED, 0x9AB8, 0x52BE, 0x6838, /* 0x40 */
- 0x5016, 0x5E78, 0x674F, 0x8347, 0x884C, 0x4EAB, 0x5411, 0x56AE, /* 0x40 */
- 0x73E6, 0x9115, 0x97FF, 0x9909, 0x9957, 0x9999, 0x5653, 0x589F, /* 0x50 */
- 0x865B, 0x8A31, 0x61B2, 0x6AF6, 0x737B, 0x8ED2, 0x6B47, 0x96AA, /* 0x50 */
- 0x9A57, 0x5955, 0x7200, 0x8D6B, 0x9769, 0x4FD4, 0x5CF4, 0x5F26, /* 0x60 */
- 0x61F8, 0x665B, 0x6CEB, 0x70AB, 0x7384, 0x73B9, 0x73FE, 0x7729, /* 0x60 */
- 0x774D, 0x7D43, 0x7D62, 0x7E23, 0x8237, 0x8852, 0xFA0A, 0x8CE2, /* 0x70 */
- 0x9249, 0x986F, 0x5B51, 0x7A74, 0x8840, 0x9801, 0x5ACC, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x4FE0, 0x5354, 0x593E, 0x5CFD, 0x633E, 0x6D79, 0x72F9, /* 0x90 */
- 0x8105, 0x8107, 0x83A2, 0x92CF, 0x9830, 0x4EA8, 0x5144, 0x5211, /* 0x90 */
- 0x578B, 0x5F62, 0x6CC2, 0x6ECE, 0x7005, 0x7050, 0x70AF, 0x7192, /* 0xA0 */
- 0x73E9, 0x7469, 0x834A, 0x87A2, 0x8861, 0x9008, 0x90A2, 0x93A3, /* 0xA0 */
- 0x99A8, 0x516E, 0x5F57, 0x60E0, 0x6167, 0x66B3, 0x8559, 0x8E4A, /* 0xB0 */
- 0x91AF, 0x978B, 0x4E4E, 0x4E92, 0x547C, 0x58D5, 0x58FA, 0x597D, /* 0xB0 */
- 0x5CB5, 0x5F27, 0x6236, 0x6248, 0x660A, 0x6667, 0x6BEB, 0x6D69, /* 0xC0 */
- 0x6DCF, 0x6E56, 0x6EF8, 0x6F94, 0x6FE0, 0x6FE9, 0x705D, 0x72D0, /* 0xC0 */
- 0x7425, 0x745A, 0x74E0, 0x7693, 0x795C, 0x7CCA, 0x7E1E, 0x80E1, /* 0xD0 */
- 0x82A6, 0x846B, 0x84BF, 0x864E, 0x865F, 0x8774, 0x8B77, 0x8C6A, /* 0xD0 */
- 0x93AC, 0x9800, 0x9865, 0x60D1, 0x6216, 0x9177, 0x5A5A, 0x660F, /* 0xE0 */
- 0x6DF7, 0x6E3E, 0x743F, 0x9B42, 0x5FFD, 0x60DA, 0x7B0F, 0x54C4, /* 0xE0 */
- 0x5F18, 0x6C5E, 0x6CD3, 0x6D2A, 0x70D8, 0x7D05, 0x8679, 0x8A0C, /* 0xF0 */
- 0x9D3B, 0x5316, 0x548C, 0x5B05, 0x6A3A, 0x706B, 0x7575 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_JOHAB_F9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x798D, 0x79BE, 0x82B1, 0x83EF, 0x8A71, 0x8B41, 0x8CA8, /* 0x30 */
- 0x9774, 0xFA0B, 0x64F4, 0x652B, 0x78BA, 0x78BB, 0x7A6B, 0x4E38, /* 0x30 */
- 0x559A, 0x5950, 0x5BA6, 0x5E7B, 0x60A3, 0x63DB, 0x6B61, 0x6665, /* 0x40 */
- 0x6853, 0x6E19, 0x7165, 0x74B0, 0x7D08, 0x9084, 0x9A69, 0x9C25, /* 0x40 */
- 0x6D3B, 0x6ED1, 0x733E, 0x8C41, 0x95CA, 0x51F0, 0x5E4C, 0x5FA8, /* 0x50 */
- 0x604D, 0x60F6, 0x6130, 0x614C, 0x6643, 0x6644, 0x69A5, 0x6CC1, /* 0x50 */
- 0x6E5F, 0x6EC9, 0x6F62, 0x714C, 0x749C, 0x7687, 0x7BC1, 0x7C27, /* 0x60 */
- 0x8352, 0x8757, 0x9051, 0x968D, 0x9EC3, 0x532F, 0x56DE, 0x5EFB, /* 0x60 */
- 0x5F8A, 0x6062, 0x6094, 0x61F7, 0x6666, 0x6703, 0x6A9C, 0x6DEE, /* 0x70 */
- 0x6FAE, 0x7070, 0x736A, 0x7E6A, 0x81BE, 0x8334, 0x86D4, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0x8AA8, 0x8CC4, 0x5283, 0x7372, 0x5B96, 0x6A6B, 0x9404, /* 0x90 */
- 0x54EE, 0x5686, 0x5B5D, 0x6548, 0x6585, 0x66C9, 0x689F, 0x6D8D, /* 0x90 */
- 0x6DC6, 0x723B, 0x80B4, 0x9175, 0x9A4D, 0x4FAF, 0x5019, 0x539A, /* 0xA0 */
- 0x540E, 0x543C, 0x5589, 0x55C5, 0x5E3F, 0x5F8C, 0x673D, 0x7166, /* 0xA0 */
- 0x73DD, 0x9005, 0x52DB, 0x52F3, 0x5864, 0x58CE, 0x7104, 0x718F, /* 0xB0 */
- 0x71FB, 0x85B0, 0x8A13, 0x6688, 0x85A8, 0x55A7, 0x6684, 0x714A, /* 0xB0 */
- 0x8431, 0x5349, 0x5599, 0x6BC1, 0x5F59, 0x5FBD, 0x63EE, 0x6689, /* 0xC0 */
- 0x7147, 0x8AF1, 0x8F1D, 0x9EBE, 0x4F11, 0x643A, 0x70CB, 0x7566, /* 0xC0 */
- 0x8667, 0x6064, 0x8B4E, 0x9DF8, 0x5147, 0x51F6, 0x5308, 0x6D36, /* 0xD0 */
- 0x80F8, 0x9ED1, 0x6615, 0x6B23, 0x7098, 0x75D5, 0x5403, 0x5C79, /* 0xD0 */
- 0x7D07, 0x8A16, 0x6B20, 0x6B3D, 0x6B46, 0x5438, 0x6070, 0x6D3D, /* 0xE0 */
- 0x7FD5, 0x8208, 0x50D6, 0x51DE, 0x559C, 0x566B, 0x56CD, 0x59EC, /* 0xE0 */
- 0x5B09, 0x5E0C, 0x6199, 0x6198, 0x6231, 0x665E, 0x66E6, 0x7199, /* 0xF0 */
- 0x71B9, 0x71BA, 0x72A7, 0x79A7, 0x7A00, 0x7FB2, 0x8A70 /* 0xF0 */
-};
diff --git a/sal/textenc/tcvtkr5.tab b/sal/textenc/tcvtkr5.tab
deleted file mode 100644
index 377dda22e..000000000
--- a/sal/textenc/tcvtkr5.tab
+++ /dev/null
@@ -1,5415 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the DBCS to UniCode tables for the following */
-/* korean charsets: */
-/* JOHAB */
-
-/* ======================================================================= */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_00[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, /* 0x00 */
- 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, /* 0x00 */
- 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, /* 0x10 */
- 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, /* 0x10 */
- 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, /* 0x20 */
- 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, /* 0x20 */
- 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* 0x30 */
- 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, /* 0x30 */
- 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* 0x40 */
- 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, /* 0x40 */
- 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, /* 0x50 */
- 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, /* 0x50 */
- 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, /* 0x60 */
- 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, /* 0x60 */
- 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, /* 0x70 */
- 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xD9AE, 0, 0, 0xD9B4, 0, 0, 0xD967, /* 0xA0 */
- 0xD937, 0, 0xDCA3, 0, 0, 0xD939, 0, 0, /* 0xA0 */
- 0xD956, 0xD94E, 0xDD99, 0xDD9A, 0xD9A5, 0, 0xD9D2, 0xD934, /* 0xB0 */
- 0xD9AC, 0xDD98, 0xDCAC, 0, 0xDCF9, 0xDCF6, 0xDCFA, 0xD9AF, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xDCA1, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xDCA2, 0, 0, 0, 0, 0, 0, 0xD94F, /* 0xD0 */
- 0xDCAA, 0, 0, 0, 0, 0, 0xDCAD, 0xDD3C, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xDD31, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xDD33, 0, 0, 0, 0, 0, 0, 0xD950, /* 0xF0 */
- 0xDD3A, 0, 0, 0, 0, 0, 0xDD3D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_01[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDD32, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xDCA4, 0xDD34, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xDD35, 0xDCA6, 0xDD36, 0, 0, 0, 0, /* 0x30 */
- 0xDD37, 0, 0, 0, 0, 0, 0, 0xDCA8, /* 0x30 */
- 0xDD38, 0xDCA9, 0xDD39, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xDD40, 0xDCAF, 0xDD3F, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xDCAB, 0xDD3B, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xDCAE, 0xDD3E /* 0x60 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_02[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD9A7, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xD9B0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xD9A8, 0xD9AB, 0xD9AA, 0xD9AD, 0, 0xD9A9 /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_03[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDB51, 0xDB52, 0xDB53, 0xDB54, 0xDB55, 0xDB56, 0xDB57, /* 0x90 */
- 0xDB58, 0xDB59, 0xDB5A, 0xDB5B, 0xDB5C, 0xDB5D, 0xDB5E, 0xDB5F, /* 0x90 */
- 0xDB60, 0xDB61, 0, 0xDB62, 0xDB63, 0xDB64, 0xDB65, 0xDB66, /* 0xA0 */
- 0xDB67, 0xDB68, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xDB71, 0xDB72, 0xDB73, 0xDB74, 0xDB75, 0xDB76, 0xDB77, /* 0xB0 */
- 0xDB78, 0xDB79, 0xDB7A, 0xDB7B, 0xDB7C, 0xDB7D, 0xDB7E, 0xDB91, /* 0xB0 */
- 0xDB92, 0xDB93, 0, 0xDB94, 0xDB95, 0xDB96, 0xDB97, 0xDB98, /* 0xC0 */
- 0xDB99, 0xDB9A /* 0xC0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_04[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDEA7, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0xDEA1, 0xDEA2, 0xDEA3, 0xDEA4, 0xDEA5, 0xDEA6, 0xDEA8, 0xDEA9, /* 0x10 */
- 0xDEAA, 0xDEAB, 0xDEAC, 0xDEAD, 0xDEAE, 0xDEAF, 0xDEB0, 0xDEB1, /* 0x10 */
- 0xDEB2, 0xDEB3, 0xDEB4, 0xDEB5, 0xDEB6, 0xDEB7, 0xDEB8, 0xDEB9, /* 0x20 */
- 0xDEBA, 0xDEBB, 0xDEBC, 0xDEBD, 0xDEBE, 0xDEBF, 0xDEC0, 0xDEC1, /* 0x20 */
- 0xDED1, 0xDED2, 0xDED3, 0xDED4, 0xDED5, 0xDED6, 0xDED8, 0xDED9, /* 0x30 */
- 0xDEDA, 0xDEDB, 0xDEDC, 0xDEDD, 0xDEDE, 0xDEDF, 0xDEE0, 0xDEE1, /* 0x30 */
- 0xDEE2, 0xDEE3, 0xDEE4, 0xDEE5, 0xDEE6, 0xDEE7, 0xDEE8, 0xDEE9, /* 0x40 */
- 0xDEEA, 0xDEEB, 0xDEEC, 0xDEED, 0xDEEE, 0xDEEF, 0xDEF0, 0xDEF1, /* 0x40 */
- 0, 0xDED7 /* 0x50 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_20[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD93A, 0, 0, /* 0x10 */
- 0xD93E, 0xD93F, 0, 0, 0xD940, 0xD941, 0, 0, /* 0x10 */
- 0xD9D3, 0xD9D4, 0, 0, 0, 0xD935, 0xD936, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xD9B6, 0, 0xD957, 0xD958, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xD968, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xDD9B, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xDD9C, /* 0x70 */
- 0, 0xDD9D, 0xDD9E, 0xDD9F, 0xDDA0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0x005C /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_21[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD959, 0, 0, 0, 0, /* 0x00 */
- 0, 0xD9B5, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0xDC34, 0, 0, 0xD9E0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xD9E5, 0xD9E2, 0, 0, 0, 0xDC69, 0, /* 0x20 */
- 0, 0, 0, 0xD95A, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xDCF7, 0xDCF8, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0xDCFB, 0xDCFC, 0xDCFD, 0xDCFE, 0, /* 0x50 */
- 0xDB40, 0xDB41, 0xDB42, 0xDB43, 0xDB44, 0xDB45, 0xDB46, 0xDB47, /* 0x60 */
- 0xDB48, 0xDB49, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0xDB31, 0xDB32, 0xDB33, 0xDB34, 0xDB35, 0xDB36, 0xDB37, 0xDB38, /* 0x70 */
- 0xDB39, 0xDB3A, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xD977, 0xD978, 0xD976, 0xD979, 0xD97A, 0xD9D5, 0xD9D8, 0xD9D6, /* 0x90 */
- 0xD9D9, 0xD9D7, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xD9A1, 0, 0xD9A2 /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_22[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD9A3, 0, 0xD963, 0xD9A4, 0, 0, 0, 0xD964, /* 0x00 */
- 0xD996, 0, 0, 0xD997, 0, 0, 0, 0xD9B3, /* 0x00 */
- 0, 0xD9B2, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0xD97E, 0, 0, 0xD992, 0xD954, 0, /* 0x10 */
- 0xD960, 0, 0, 0, 0, 0xD93B, 0, 0xD99E, /* 0x20 */
- 0xD99F, 0xD99D, 0xD99C, 0xD994, 0xD995, 0, 0xD9B1, 0, /* 0x20 */
- 0, 0, 0, 0, 0xD955, 0xD993, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0xD93D, 0xD991, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xD966, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xD951, 0xD965, 0, 0, 0xD952, 0xD953, 0, 0, /* 0x60 */
- 0, 0, 0xD97C, 0xD97D, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xD99A, 0xD99B, 0, 0, 0xD998, 0xD999, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xD9C1, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xD961 /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_23[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD962 /* 0x10 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_24[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDCE7, 0xDCE8, 0xDCE9, 0xDCEA, 0xDCEB, 0xDCEC, 0xDCED, 0xDCEE, /* 0x60 */
- 0xDCEF, 0xDCF0, 0xDCF1, 0xDCF2, 0xDCF3, 0xDCF4, 0xDCF5, 0, /* 0x60 */
- 0, 0, 0, 0, 0xDD77, 0xDD78, 0xDD79, 0xDD7A, /* 0x70 */
- 0xDD7B, 0xDD7C, 0xDD7D, 0xDD7E, 0xDD91, 0xDD92, 0xDD93, 0xDD94, /* 0x70 */
- 0xDD95, 0xDD96, 0xDD97, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xDD5D, 0xDD5E, 0xDD5F, 0xDD60, /* 0x90 */
- 0xDD61, 0xDD62, 0xDD63, 0xDD64, 0xDD65, 0xDD66, 0xDD67, 0xDD68, /* 0xA0 */
- 0xDD69, 0xDD6A, 0xDD6B, 0xDD6C, 0xDD6D, 0xDD6E, 0xDD6F, 0xDD70, /* 0xA0 */
- 0xDD71, 0xDD72, 0xDD73, 0xDD74, 0xDD75, 0xDD76, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xDCCD, 0xDCCE, 0xDCCF, 0xDCD0, 0xDCD1, 0xDCD2, 0xDCD3, 0xDCD4, /* 0xD0 */
- 0xDCD5, 0xDCD6, 0xDCD7, 0xDCD8, 0xDCD9, 0xDCDA, 0xDCDB, 0xDCDC, /* 0xD0 */
- 0xDCDD, 0xDCDE, 0xDCDF, 0xDCE0, 0xDCE1, 0xDCE2, 0xDCE3, 0xDCE4, /* 0xE0 */
- 0xDCE5, 0xDCE6 /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_25[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDBA1, 0xDBAC, 0xDBA2, 0xDBAD, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0xDBA3, 0xDBC8, 0xDBC7, 0xDBAE, /* 0x00 */
- 0xDBA4, 0xDBC2, 0xDBC1, 0xDBAF, 0xDBA6, 0xDBC6, 0xDBC5, 0xDBB1, /* 0x10 */
- 0xDBA5, 0xDBC4, 0xDBC3, 0xDBB0, 0xDBA7, 0xDBBC, 0xDBC9, 0xDBCA, /* 0x10 */
- 0xDBB7, 0xDBCB, 0xDBCC, 0xDBB2, 0xDBA9, 0xDBBE, 0xDBCD, 0xDBCE, /* 0x20 */
- 0xDBB9, 0xDBCF, 0xDBD0, 0xDBB4, 0xDBA8, 0xDBD1, 0xDBD2, 0xDBB8, /* 0x20 */
- 0xDBBD, 0xDBD3, 0xDBD4, 0xDBB3, 0xDBAA, 0xDBD5, 0xDBD6, 0xDBBA, /* 0x30 */
- 0xDBBF, 0xDBD7, 0xDBD8, 0xDBB5, 0xDBAB, 0xDBD9, 0xDBDA, 0xDBBB, /* 0x30 */
- 0xDBDB, 0xDBDC, 0xDBC0, 0xDBDD, 0xDBDE, 0xDBDF, 0xDBE0, 0xDBE1, /* 0x40 */
- 0xDBE2, 0xDBE3, 0xDBE4, 0xDBB6, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xD9C6, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xD971, 0xD970, 0, 0xD9C3, 0xD9C7, 0xD9C8, 0xD9CB, 0xD9CA, /* 0xA0 */
- 0xD9C9, 0xD9CC, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xD973, 0xD972, 0, 0, 0xD9BA, 0xD9B9, /* 0xB0 */
- 0, 0, 0, 0, 0xD975, 0xD974, 0, 0, /* 0xB0 */
- 0xD9B8, 0xD9B7, 0, 0, 0, 0, 0xD96F, 0xD96E, /* 0xC0 */
- 0xD9C2, 0, 0, 0xD96B, 0, 0, 0xD96D, 0xD96C, /* 0xC0 */
- 0xD9C4, 0xD9C5 /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_26[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD96A, 0xD969, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xD9CF, 0xD9CE, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0xD9D0, 0, 0xD9D1, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xD95F, 0, 0xD95E, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xD9BC, 0xD9BD, 0, 0xD9C0, 0xD9BB, 0xD9BE, 0, 0xD9BF, /* 0x60 */
- 0xD9CD, 0xD9DB, 0xD9DC, 0, 0xD9DD, 0xD9DA /* 0x60 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_30[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD931, 0xD932, 0xD933, 0xD938, 0, 0, 0, 0, /* 0x00 */
- 0xD944, 0xD945, 0xD946, 0xD947, 0xD948, 0xD949, 0xD94A, 0xD94B, /* 0x00 */
- 0xD94C, 0xD94D, 0, 0xD97B, 0xD942, 0xD943, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xDDA1, 0xDDA2, 0xDDA3, 0xDDA4, 0xDDA5, 0xDDA6, 0xDDA7, /* 0x40 */
- 0xDDA8, 0xDDA9, 0xDDAA, 0xDDAB, 0xDDAC, 0xDDAD, 0xDDAE, 0xDDAF, /* 0x40 */
- 0xDDB0, 0xDDB1, 0xDDB2, 0xDDB3, 0xDDB4, 0xDDB5, 0xDDB6, 0xDDB7, /* 0x50 */
- 0xDDB8, 0xDDB9, 0xDDBA, 0xDDBB, 0xDDBC, 0xDDBD, 0xDDBE, 0xDDBF, /* 0x50 */
- 0xDDC0, 0xDDC1, 0xDDC2, 0xDDC3, 0xDDC4, 0xDDC5, 0xDDC6, 0xDDC7, /* 0x60 */
- 0xDDC8, 0xDDC9, 0xDDCA, 0xDDCB, 0xDDCC, 0xDDCD, 0xDDCE, 0xDDCF, /* 0x60 */
- 0xDDD0, 0xDDD1, 0xDDD2, 0xDDD3, 0xDDD4, 0xDDD5, 0xDDD6, 0xDDD7, /* 0x70 */
- 0xDDD8, 0xDDD9, 0xDDDA, 0xDDDB, 0xDDDC, 0xDDDD, 0xDDDE, 0xDDDF, /* 0x70 */
- 0xDDE0, 0xDDE1, 0xDDE2, 0xDDE3, 0xDDE4, 0xDDE5, 0xDDE6, 0xDDE7, /* 0x80 */
- 0xDDE8, 0xDDE9, 0xDDEA, 0xDDEB, 0xDDEC, 0xDDED, 0xDDEE, 0xDDEF, /* 0x80 */
- 0xDDF0, 0xDDF1, 0xDDF2, 0xDDF3, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xDE31, 0xDE32, 0xDE33, 0xDE34, 0xDE35, 0xDE36, 0xDE37, /* 0xA0 */
- 0xDE38, 0xDE39, 0xDE3A, 0xDE3B, 0xDE3C, 0xDE3D, 0xDE3E, 0xDE3F, /* 0xA0 */
- 0xDE40, 0xDE41, 0xDE42, 0xDE43, 0xDE44, 0xDE45, 0xDE46, 0xDE47, /* 0xB0 */
- 0xDE48, 0xDE49, 0xDE4A, 0xDE4B, 0xDE4C, 0xDE4D, 0xDE4E, 0xDE4F, /* 0xB0 */
- 0xDE50, 0xDE51, 0xDE52, 0xDE53, 0xDE54, 0xDE55, 0xDE56, 0xDE57, /* 0xC0 */
- 0xDE58, 0xDE59, 0xDE5A, 0xDE5B, 0xDE5C, 0xDE5D, 0xDE5E, 0xDE5F, /* 0xC0 */
- 0xDE60, 0xDE61, 0xDE62, 0xDE63, 0xDE64, 0xDE65, 0xDE66, 0xDE67, /* 0xD0 */
- 0xDE68, 0xDE69, 0xDE6A, 0xDE6B, 0xDE6C, 0xDE6D, 0xDE6E, 0xDE6F, /* 0xD0 */
- 0xDE70, 0xDE71, 0xDE72, 0xDE73, 0xDE74, 0xDE75, 0xDE76, 0xDE77, /* 0xE0 */
- 0xDE78, 0xDE79, 0xDE7A, 0xDE7B, 0xDE7C, 0xDE7D, 0xDE7E, 0xDE91, /* 0xE0 */
- 0xDE92, 0xDE93, 0xDE94, 0xDE95, 0xDE96, 0xDE97, 0xDE98 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_31[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8841, 0x8C41, 0x8444, 0x9041, 0x8446, 0x8447, 0x9441, /* 0x30 */
- 0x9841, 0x9C41, 0x844A, 0x844B, 0x844C, 0x844D, 0x844E, 0x844F, /* 0x30 */
- 0x8450, 0xA041, 0xA441, 0xA841, 0x8454, 0xAC41, 0xB041, 0xB441, /* 0x40 */
- 0xB841, 0xBC41, 0xC041, 0xC441, 0xC841, 0xCC41, 0xD041, 0x8461, /* 0x40 */
- 0x8481, 0x84A1, 0x84C1, 0x84E1, 0x8541, 0x8561, 0x8581, 0x85A1, /* 0x50 */
- 0x85C1, 0x85E1, 0x8641, 0x8661, 0x8681, 0x86A1, 0x86C1, 0x86E1, /* 0x50 */
- 0x8741, 0x8761, 0x8781, 0x87A1, 0xDAD4, 0xDAD5, 0xDAD6, 0xDAD7, /* 0x60 */
- 0xDAD8, 0xDAD9, 0xDADA, 0xDADB, 0xDADC, 0xDADD, 0xDADE, 0xDADF, /* 0x60 */
- 0xDAE0, 0xDAE1, 0xDAE2, 0xDAE3, 0xDAE4, 0xDAE5, 0xDAE6, 0xDAE7, /* 0x70 */
- 0xDAE8, 0xDAE9, 0xDAEA, 0xDAEB, 0xDAEC, 0xDAED, 0xDAEE, 0xDAEF, /* 0x70 */
- 0xDAF0, 0xDAF1, 0xDAF2, 0xDAF3, 0xDAF4, 0xDAF5, 0xDAF6, 0xDAF7, /* 0x80 */
- 0xDAF8, 0xDAF9, 0xDAFA, 0xDAFB, 0xDAFC, 0xDAFD, 0xDAFE /* 0x80 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_32[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDD41, 0xDD42, 0xDD43, 0xDD44, 0xDD45, 0xDD46, 0xDD47, 0xDD48, /* 0x00 */
- 0xDD49, 0xDD4A, 0xDD4B, 0xDD4C, 0xDD4D, 0xDD4E, 0xDD4F, 0xDD50, /* 0x00 */
- 0xDD51, 0xDD52, 0xDD53, 0xDD54, 0xDD55, 0xDD56, 0xDD57, 0xDD58, /* 0x10 */
- 0xDD59, 0xDD5A, 0xDD5B, 0xDD5C, 0xD9DF, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xDCB1, 0xDCB2, 0xDCB3, 0xDCB4, 0xDCB5, 0xDCB6, 0xDCB7, 0xDCB8, /* 0x60 */
- 0xDCB9, 0xDCBA, 0xDCBB, 0xDCBC, 0xDCBD, 0xDCBE, 0xDCBF, 0xDCC0, /* 0x60 */
- 0xDCC1, 0xDCC2, 0xDCC3, 0xDCC4, 0xDCC5, 0xDCC6, 0xDCC7, 0xDCC8, /* 0x70 */
- 0xDCC9, 0xDCCA, 0xDCCB, 0xDCCC, 0, 0, 0, 0xD9DE /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_33[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDC59, 0xDC5A, 0xDC5B, 0xDC5C, 0xDC5D, 0, 0, 0, /* 0x80 */
- 0xDC4A, 0xDC4B, 0xDC6C, 0xDC6D, 0xDC6E, 0xDC46, 0xDC47, 0xDC48, /* 0x80 */
- 0xDC64, 0xDC65, 0xDC66, 0xDC67, 0xDC68, 0xDC31, 0xDC32, 0xDC33, /* 0x90 */
- 0xDC35, 0xDC3B, 0xDC3C, 0xDC3D, 0xDC3E, 0xDC3F, 0xDC40, 0xDC41, /* 0x90 */
- 0xDC42, 0xDC43, 0xDC44, 0xDC37, 0xDC38, 0xDC39, 0xDC3A, 0xDC4D, /* 0xA0 */
- 0xDC4E, 0xDC75, 0xDC76, 0xDC77, 0xDC78, 0xDC71, 0xDC72, 0xDC73, /* 0xA0 */
- 0xDC4F, 0xDC50, 0xDC51, 0xDC52, 0xDC53, 0xDC54, 0xDC55, 0xDC56, /* 0xB0 */
- 0xDC57, 0xDC58, 0xDC5E, 0xDC5F, 0xDC60, 0xDC61, 0xDC62, 0xDC63, /* 0xB0 */
- 0xDC6A, 0xDC6B, 0xD9E3, 0xDC7C, 0xDC36, 0xDC70, 0xDC91, 0xD9E1, /* 0xC0 */
- 0xDC4C, 0xDC7D, 0xDC45, 0, 0, 0, 0, 0xDC49, /* 0xC0 */
- 0xDC7A, 0, 0, 0xDC7B, 0, 0, 0xDC6F, 0, /* 0xD0 */
- 0xD9E4, 0, 0, 0xDC74, 0xDC7E, 0xDC79 /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_4E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF179, 0xF2CB, 0, 0xF662, 0, 0, 0, 0xE742, /* 0x00 */
- 0xF1DB, 0xEAB2, 0xEABE, 0xF7BB, 0, 0xE996, 0, 0, /* 0x00 */
- 0, 0xF5E4, 0, 0, 0xF4A6, 0xE9E0, 0xEBA6, 0, /* 0x10 */
- 0xE29A, 0xE940, 0, 0, 0, 0, 0xECAA, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xF3E9, 0, 0, /* 0x20 */
- 0, 0, 0xE1FA, 0, 0, 0, 0, 0, /* 0x30 */
- 0xF93F, 0xE4A1, 0, 0xF3AB, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0xEED1, 0xE43C, 0, 0xE29B, 0, 0, /* 0x40 */
- 0, 0, 0, 0xF3FD, 0, 0xEA4F, 0xF8BA, 0xF7B9, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0xE262, 0, /* 0x50 */
- 0xECAB, 0xF0E0, 0, 0, 0, 0xE29C, 0xE0F7, 0xEDA5, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xE071, 0, 0xE55C, 0, 0, /* 0x60 */
- 0, 0, 0, 0xF071, 0, 0, 0xE973, 0xEAAD, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xE0EB, 0, /* 0x70 */
- 0, 0, 0xE5AF, 0, 0, 0, 0xE697, 0, /* 0x80 */
- 0xEDF8, 0, 0, 0xEA50, 0xF133, 0, 0xEFCD, 0, /* 0x80 */
- 0xF037, 0xEFF6, 0xF8BB, 0, 0xEEE9, 0xF2CC, 0, 0, /* 0x90 */
- 0xE376, 0, 0, 0xEA51, 0, 0, 0xED3C, 0, /* 0x90 */
- 0, 0xE75C, 0xF7F1, 0, 0xE26F, 0xF834, 0xEE42, 0, /* 0xA0 */
- 0xF89D, 0, 0, 0xF84D, 0xE158, 0xF2CD, 0xE5D5, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xE4A2, 0, /* 0xB0 */
- 0, 0, 0xF161, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xED37, 0xF162, 0, 0, 0xF641, 0, 0, 0xE29D, /* 0xC0 */
- 0, 0, 0xE361, 0xE0BF, 0, 0xF1A4, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xF1A8, 0xEA52, 0xF672, 0xF1DC, /* 0xD0 */
- 0xE997, 0xEB49, 0, 0, 0, 0xE55E, 0, 0xF545, /* 0xD0 */
- 0, 0, 0, 0xE4DB, 0xE645, 0xF134, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xED76, 0, 0xF3EA, 0, 0, 0, 0xE0EC, 0xE0C0, /* 0xF0 */
- 0, 0, 0, 0xF194 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_4F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE37A, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0xF7F2, 0xF135, 0xE36F, 0, 0xEEEA, 0xE37B, 0xE961, /* 0x00 */
- 0xE8E9, 0xF9CC, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0xE8D7, /* 0x20 */
- 0, 0, 0, 0, 0xE871, 0, 0xE646, 0, /* 0x30 */
- 0xECDF, 0, 0xEA53, 0, 0xEA54, 0xE031, 0, 0, /* 0x30 */
- 0, 0, 0, 0xF27C, 0, 0, 0xE4A3, 0xF247, /* 0x40 */
- 0xF75F, 0, 0, 0, 0, 0xF058, 0xF248, 0xF3AC, /* 0x40 */
- 0xF3A5, 0xEFCE, 0, 0, 0, 0xF7BC, 0, 0, /* 0x50 */
- 0, 0xEDF9, 0xF17A, 0xE9D6, 0xF1C2, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xF735, 0, 0, 0, 0, 0, 0xEDBA, /* 0x60 */
- 0xE8D8, 0, 0, 0xE032, 0, 0, 0xE3CD, 0, /* 0x70 */
- 0, 0, 0xF27D, 0, 0, 0, 0xF17B, 0xEA55, /* 0x70 */
- 0, 0xECE0, 0, 0xE059, 0xF479, 0, 0xE5CE, 0, /* 0x80 */
- 0xF646, 0, 0xE252, 0xE657, 0, 0xECB4, 0, 0xF3AD, /* 0x80 */
- 0, 0xF072, 0, 0, 0, 0, 0xE6C2, 0, /* 0x90 */
- 0xF4A7, 0, 0, 0xE1EA, 0, 0xF0EE, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xE7B2, 0xF9A5, /* 0xA0 */
- 0, 0, 0, 0, 0, 0xF665, 0xE5E2, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xF745, /* 0xB0 */
- 0, 0, 0xE197, 0xF5B5, 0xED3D, 0, 0, 0, /* 0xC0 */
- 0, 0xEEEB, 0xF3D5, 0, 0, 0, 0xF34B, 0, /* 0xC0 */
- 0, 0xEFB5, 0, 0xE159, 0xF865, 0, 0, 0xEBD4, /* 0xD0 */
- 0, 0, 0xE6D6, 0, 0, 0xE951, 0, 0xEA56, /* 0xD0 */
- 0xF891, 0xECE1, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xEBF3, 0xE998, /* 0xE0 */
- 0, 0xE29E, 0, 0xE8C4, 0, 0xF793, 0, 0, /* 0xF0 */
- 0xE974, 0, 0xEDEF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_50[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE941, 0, 0, 0, 0xE5D6, 0, /* 0x00 */
- 0, 0xF4DA, 0, 0xE0C1, 0, 0xE8C3, 0, 0, /* 0x00 */
- 0, 0xE7FA, 0xE4EE, 0, 0, 0, 0xF848, 0, /* 0x10 */
- 0, 0xF9A6, 0xF0EF, 0, 0xF536, 0, 0xE15A, 0xF4A8, /* 0x10 */
- 0, 0xF4DB, 0, 0xE8A7, 0xF647, 0, 0xE2E6, 0xF394, /* 0x20 */
- 0xE0DA, 0, 0xEED2, 0xE6C3, 0xF692, 0xEF6E, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xEDA6, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xEDE7, 0, 0, 0, 0xE033, /* 0x40 */
- 0xE137, 0xF059, 0, 0, 0, 0, 0, 0xF746, /* 0x40 */
- 0, 0, 0, 0, 0, 0xF835, 0, 0, /* 0x50 */
- 0, 0, 0xF3AE, 0, 0xF2CE, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xE0ED, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xF640, 0xF2CF, 0xEFCF, 0, /* 0x70 */
- 0xF6DE, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xE263, 0, 0, 0, 0, 0xE999, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xE8A8, 0, 0, /* 0x80 */
- 0, 0xE0F8, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xEAA1, 0xE9E1, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xF5CA, 0xEFB6, 0, 0, /* 0xA0 */
- 0, 0, 0xEEEC, 0xF27E, 0, 0xF4F0, 0, 0xEABF, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xE15B, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xE351, 0, 0, /* 0xC0 */
- 0, 0xF562, 0xEB4A, 0, 0, 0, 0, 0xEAC0, /* 0xC0 */
- 0, 0xE270, 0, 0, 0, 0xE962, 0xF9EA, 0, /* 0xD0 */
- 0, 0, 0xE698, 0, 0, 0, 0xF05A, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xEF79, 0, 0xECAC, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xF4D0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xE034, 0, 0xE8F8, 0, 0, 0, 0xEA57 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_51[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF0F0, 0xF3D6, 0, 0, 0xEDE2, 0, 0xE15C, 0, /* 0x00 */
- 0, 0xE0FB, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xF073, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xEAC1, /* 0x10 */
- 0, 0xE67D, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xEFD0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xF249, 0, 0, 0, 0, 0xE5E3, /* 0x30 */
- 0, 0, 0xE3D3, 0, 0xEDF0, 0, 0, 0, /* 0x30 */
- 0xEF44, 0xF0C3, 0, 0xF03A, 0xF89E, 0xF5F6, 0xF34C, 0xF9D4, /* 0x40 */
- 0xEB4B, 0xE253, 0, 0xE34A, 0xF6BA, 0xE795, 0xF6CD, 0, /* 0x40 */
- 0, 0, 0xED3E, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0xE56F, 0, 0, 0, /* 0x50 */
- 0, 0, 0xE377, 0, 0, 0xF19F, 0, 0xE43E, /* 0x60 */
- 0xF291, 0xE5D7, 0xF074, 0xF732, 0xE1EB, 0xE6BF, 0xF8B1, 0, /* 0x60 */
- 0, 0xE1EC, 0, 0, 0, 0xE942, 0xE37C, 0xE29F, /* 0x70 */
- 0xF292, 0, 0, 0, 0xE152, 0, 0, 0, /* 0x70 */
- 0xE37D, 0, 0, 0, 0, 0, 0xEDF7, 0, /* 0x80 */
- 0, 0, 0xF4FC, 0, 0, 0xF232, 0, 0, /* 0x80 */
- 0, 0, 0xE7B3, 0, 0, 0xE796, 0, 0xEFB7, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xE23E, 0, 0, 0, 0, 0xE7A2, 0, 0, /* 0xA0 */
- 0, 0, 0xE793, 0, 0xE55F, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xEDA7, 0xE5D2, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xE639, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xF532, 0, 0xF3D7, 0, /* 0xC0 */
- 0, 0xE5D8, 0, 0xF34D, 0xE6D0, 0xE560, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xE6CF, 0xF0EA, 0xF9EB, 0, /* 0xD0 */
- 0, 0xE8ED, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xF955, 0xE0C2, 0, 0, 0, 0, 0xF9D5, 0, /* 0xF0 */
- 0xF558, 0xEF7A, 0xF5F3, 0, 0, 0xF7DE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_52[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE4EF, 0, 0, 0xF163, 0, 0, 0xE9C2, 0xF2B7, /* 0x00 */
- 0xEED4, 0, 0xE05A, 0, 0, 0, 0xE7FB, 0, /* 0x00 */
- 0, 0xF89F, 0, 0, 0, 0, 0, 0xE63A, /* 0x10 */
- 0, 0, 0, 0, 0, 0xF59A, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0xF6F7, 0xE93C, 0, 0, /* 0x20 */
- 0, 0xE6D7, 0xEAA2, 0, 0, 0, 0xE24E, 0, /* 0x20 */
- 0xE4F0, 0, 0, 0, 0, 0, 0xF334, 0xEBEC, /* 0x30 */
- 0xE2E7, 0xF4CB, 0xF1A9, 0xE04E, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xF591, 0, 0, 0, 0xF65E, /* 0x40 */
- 0, 0, 0xEA9D, 0xE34B, 0xE5B7, 0xF293, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xF538, 0, 0xE99A, 0, /* 0x50 */
- 0, 0, 0, 0xE0A7, 0, 0xE85E, 0, 0, /* 0x50 */
- 0, 0xEB76, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xF1A5, 0xF294, 0, 0, 0, 0, 0xE99B, /* 0x60 */
- 0, 0, 0xF7DC, 0, 0, 0xF4DC, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xF794, 0, 0xF59B, /* 0x70 */
- 0, 0, 0, 0xF993, 0, 0, 0, 0xE34C, /* 0x80 */
- 0xE8F9, 0xE6B1, 0, 0, 0, 0xE0FC, 0, 0, /* 0x80 */
- 0, 0xF335, 0xE0FD, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xE5F4, 0, 0, 0, 0xE1ED, /* 0x90 */
- 0xE035, 0, 0, 0xE63B, 0xE352, 0, 0, 0, /* 0xA0 */
- 0, 0xF34E, 0xE44D, 0xE134, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xF846, 0, /* 0xB0 */
- 0, 0xE15D, 0, 0xE89C, 0, 0xF65F, 0, 0xEFB8, /* 0xC0 */
- 0, 0xE797, 0, 0, 0, 0xE15E, 0, 0, /* 0xC0 */
- 0, 0, 0xE6CD, 0, 0, 0xE561, 0xEFED, 0, /* 0xD0 */
- 0xE07B, 0xE7E2, 0, 0xF9B2, 0, 0xECAD, 0xE65C, 0xE7B4, /* 0xD0 */
- 0, 0, 0xEBA7, 0xF263, 0xE353, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xF9B3, 0, 0xE5E4, 0, 0, /* 0xF0 */
- 0xE2E8, 0, 0xF1C3, 0xE342, 0, 0, 0xE2A0, 0xE838 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_53[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF760, 0, 0, /* 0x00 */
- 0xF9D6, 0, 0, 0, 0, 0xF761, 0, 0xF762, /* 0x00 */
- 0xE963, 0, 0, 0, 0, 0xE9E2, 0xF8F9, 0xE9C1, /* 0x10 */
- 0, 0xECB5, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xF1DD, 0xE254, 0, 0xE0A1, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xE9E3, 0, 0, 0, 0, 0xF96D, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xF7AF, 0, 0, 0, 0, 0, 0xE49D, /* 0x30 */
- 0xE2A1, 0xED38, 0, 0xF546, 0xF1A0, 0, 0, 0xECAE, /* 0x40 */
- 0xEEED, 0xF9C1, 0xE872, 0, 0, 0xE743, 0, 0, /* 0x40 */
- 0, 0xE9E4, 0xF391, 0xF693, 0xF892, 0, 0, 0xE3F5, /* 0x50 */
- 0, 0, 0xE85F, 0, 0xE964, 0, 0xE936, 0, /* 0x50 */
- 0xF2BF, 0, 0, 0, 0, 0, 0xE25F, 0, /* 0x60 */
- 0xEB69, 0, 0, 0, 0, 0, 0, 0xE7D6, /* 0x60 */
- 0xF164, 0xF05B, 0, 0, 0xE04F, 0xE5B0, 0, 0xE2E9, /* 0x70 */
- 0, 0, 0, 0, 0, 0xF3ED, 0, 0xE15F, /* 0x70 */
- 0, 0, 0, 0, 0xED9A, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xED7D, 0, 0, 0, 0, /* 0x90 */
- 0xE6D8, 0, 0xF9A7, 0, 0, 0, 0, 0xF03B, /* 0x90 */
- 0xF642, 0, 0, 0, 0, 0xE2F0, 0xF7BD, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0xEE96, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xE0DB, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xF4D1, 0, 0, 0, 0, /* 0xC0 */
- 0xEFD1, 0xF4A9, 0xE370, 0xEFD2, 0, 0xE873, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xEC62, 0, 0xF632, 0xEBF4, /* 0xD0 */
- 0, 0, 0, 0xE874, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xEED5, 0xF5BF, 0xE2A2, 0xE1AF, 0xE2A3, 0, 0, /* 0xE0 */
- 0, 0xE1B0, 0xF3FE, 0xE333, 0xEBAF, 0xF733, 0, 0xE036, /* 0xE0 */
- 0xF6BB, 0xF47A, 0xEA58, 0xEFD3, 0, 0, 0, 0, /* 0xF0 */
- 0xEA59 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_54[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF9DE, 0xE050, 0, 0, 0, /* 0x00 */
- 0xF7EA, 0xE3CE, 0xF264, 0, 0xE562, 0xE7A3, 0xF9A8, 0xE6D9, /* 0x00 */
- 0xF6CE, 0xF84E, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xE2D6, 0, 0xE6F0, 0, 0xF0E1, /* 0x10 */
- 0xF755, 0, 0, 0, 0, 0, 0xE99C, 0, /* 0x20 */
- 0, 0xE9C3, 0, 0xF7DF, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xEEEF, 0, 0, 0, 0, /* 0x30 */
- 0xF9E5, 0xF633, 0, 0xE7FC, 0xF9A9, 0, 0xEEEE, 0, /* 0x30 */
- 0, 0, 0xE5E5, 0, 0, 0, 0, 0, /* 0x40 */
- 0xF2D0, 0, 0xE1B1, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xF6A2, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0xF3B2, 0, 0xF3B1, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xE1B2, 0, 0xE83B, 0, 0xE037, 0, 0, /* 0x70 */
- 0, 0, 0, 0xECE2, 0xF8BC, 0xE7A4, 0, 0, /* 0x70 */
- 0xF24A, 0, 0, 0, 0, 0, 0xF763, 0, /* 0x80 */
- 0, 0, 0, 0, 0xF8FA, 0, 0xE2A4, 0, /* 0x80 */
- 0xE99D, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xF673, 0, 0, 0, /* 0xA0 */
- 0xF1AA, 0, 0, 0xF431, 0xE271, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xF836, 0, 0, 0, 0, /* 0xB0 */
- 0xF7E0, 0, 0, 0, 0, 0xF166, 0, 0, /* 0xB0 */
- 0xED7E, 0xF7A1, 0, 0, 0xF8EF, 0, 0, 0, /* 0xC0 */
- 0xF7EB, 0xF233, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xF03C, 0, 0, 0, 0xE038, 0, 0, /* 0xE0 */
- 0xF59C, 0, 0, 0, 0, 0xE1D6, 0xF998, 0, /* 0xE0 */
- 0, 0, 0xF559, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0xF764 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_55[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF736, 0, 0xEA5A, 0xF456, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xE6DA, 0, /* 0x00 */
- 0xE4D0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0xE755, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0xF076, /* 0x20 */
- 0, 0xF4DD, 0, 0, 0, 0xED6A, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xF674, 0, /* 0x30 */
- 0, 0, 0, 0, 0xF694, 0, 0xEAC2, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0xE7FD, /* 0x40 */
- 0, 0, 0, 0xE198, 0, 0, 0xE4BA, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xED3F, 0, /* 0x50 */
- 0, 0, 0, 0xF7E1, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xF336, 0, 0, 0, /* 0x70 */
- 0xE0D3, 0, 0, 0, 0xEB4C, 0, 0xF55A, 0xE59C, /* 0x80 */
- 0, 0xF9AA, 0xF7E2, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xF547, 0xF9C2, 0xF940, 0, 0xF9EC, 0xE072, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xF9BD, /* 0xA0 */
- 0, 0xF077, 0xEAC3, 0xE3D2, 0xE272, 0, 0xE4A4, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xF9AB, 0, 0xEAE0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xF457, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xEEF0, 0, 0xE37E, 0, 0, 0xF4AA, /* 0xD0 */
- 0, 0, 0, 0xEA5B, 0xF648, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0xEBF5, 0xF3B3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_56[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF6A3, 0, /* 0x00 */
- 0, 0xE039, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0xE2A5, 0, 0, 0xEAC4, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0xEBB0, /* 0x20 */
- 0, 0, 0xF34F, 0, 0xF634, 0, 0xECB6, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xF856, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0xE391, 0, 0, 0xF9ED, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xE9C4, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xF999, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xEE4F, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xEA3D, 0, 0xF84F, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xEDF1, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xF1C4, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xE435, 0, 0, 0xF9EE, 0, 0, /* 0xC0 */
- 0, 0xF5B6, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xEBF6, 0xEA5C, 0, 0, 0xF96E, 0, /* 0xD0 */
- 0xF167, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xE1DD, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xE647, 0xE1B3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_57[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF765, 0xEDD8, 0, 0, 0, /* 0x00 */
- 0xE2EA, 0, 0, 0xE2D0, 0, 0xF05C, 0, 0, /* 0x00 */
- 0, 0, 0xF03E, 0xF03D, 0, 0, 0xE4F1, 0, /* 0x10 */
- 0xE4A5, 0, 0, 0, 0, 0, 0, 0xF6CF, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xF234, 0, 0, 0, 0, 0xE334, 0, 0, /* 0x20 */
- 0xF432, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xE392, 0, 0, 0, 0, /* 0x30 */
- 0xF433, 0, 0xF6F8, 0, 0, 0, 0, 0xE343, /* 0x40 */
- 0, 0, 0xE8A9, 0, 0, 0xE4BB, 0xE07C, 0, /* 0x40 */
- 0xF3A6, 0xE0D5, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xF6E7, 0, 0, 0xE1DE, 0, 0xF6A4, 0, /* 0x60 */
- 0, 0, 0xF750, 0, 0, 0, 0xE4DD, 0, /* 0x60 */
- 0xE160, 0, 0, 0, 0, 0xE2A6, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xF695, 0, 0, 0, /* 0x70 */
- 0, 0, 0xEBF7, 0, 0, 0, 0, 0, /* 0x80 */
- 0xE4DC, 0, 0, 0xF8A0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xF837, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xF0D9, 0, 0xE2A7, 0xF03F, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xED91, 0, 0, 0, 0xEFB9, /* 0xC0 */
- 0xF3D8, 0, 0, 0xE768, 0, 0, 0xEB94, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0xEE44, /* 0xD0 */
- 0xE99E, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xF4F1, 0, 0, 0, 0xECD0, 0, 0, 0xF49D, /* 0xF0 */
- 0, 0xE8C6, 0xE393, 0, 0xE394 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_58[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE2DC, 0, 0xE4D1, 0, 0, 0xE141, 0xF6D8, 0, /* 0x00 */
- 0xE0A8, 0xF0BC, 0xED4E, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xF56C, 0, /* 0x10 */
- 0, 0xE952, 0, 0, 0xF337, 0, 0, 0xEE50, /* 0x20 */
- 0, 0, 0xE07D, 0, 0, 0, 0, 0xEF7B, /* 0x20 */
- 0xEDE8, 0xE953, 0, 0, 0xF1DE, 0xE4F2, 0, 0, /* 0x30 */
- 0, 0, 0xE199, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xE264, 0xEEAB, 0, 0, 0, 0xE0C3, /* 0x40 */
- 0, 0xEBB1, 0, 0, 0xF6B2, 0, 0, 0xE4F3, /* 0x50 */
- 0xE4D2, 0, 0xF5C0, 0, 0, 0, 0xEADD, 0, /* 0x50 */
- 0, 0xF295, 0xEEF1, 0, 0xF9B4, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xF458, 0, 0, /* 0x70 */
- 0, 0xF4D2, 0, 0, 0xF296, 0, 0xEC63, 0, /* 0x70 */
- 0, 0, 0, 0xE161, 0, 0xEAEA, 0, 0, /* 0x80 */
- 0, 0xEFBA, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xE7D7, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xF5CD, 0, 0xF3F2, 0xF857, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xE7F8, 0xE552, 0, 0, 0, 0, 0xF675, 0, /* 0xA0 */
- 0, 0, 0, 0xE9C5, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xEEF2, 0xF1DF, 0, 0, 0xE05B, 0, /* 0xB0 */
- 0, 0xE8FA, 0, 0, 0, 0xEF45, 0, 0xE4A6, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xF9B5, 0, /* 0xC0 */
- 0, 0xF7C9, 0, 0xED72, 0, 0xF8BD, 0, 0, /* 0xD0 */
- 0xE6A4, 0xE255, 0, 0, 0, 0, 0xE265, 0xE676, /* 0xD0 */
- 0, 0, 0, 0, 0xEDBD, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xEA5D, 0xF195, 0, 0, 0xF1E0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xF17C, 0xF8BE, 0xEAEB, 0, 0xEBF8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_59[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF7BE, /* 0x00 */
- 0, 0, 0, 0, 0xE395, 0xEB3A, 0xEF72, 0, /* 0x10 */
- 0, 0xEC64, 0xE49F, 0, 0xEDA8, 0, 0, 0, /* 0x10 */
- 0, 0, 0xE7D3, 0, 0, 0, 0, 0xE4DE, /* 0x20 */
- 0, 0xF548, 0xF6BC, 0xE99F, 0, 0xEF7C, 0xED77, 0, /* 0x20 */
- 0, 0xECF7, 0, 0, 0, 0, 0, 0xF138, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xF893, 0, /* 0x30 */
- 0, 0, 0, 0, 0xEDF2, 0, 0, 0xE396, /* 0x40 */
- 0xE43F, 0xE975, 0, 0, 0, 0, 0xE335, 0xF3B4, /* 0x40 */
- 0xF941, 0xE19A, 0, 0, 0xE9C6, 0xF861, 0, 0xF6DF, /* 0x50 */
- 0, 0, 0xF838, 0, 0, 0, 0, 0, /* 0x50 */
- 0xF297, 0, 0xEA5E, 0, 0, 0, 0, 0xEEF3, /* 0x60 */
- 0, 0, 0xF6AC, 0xF0C4, 0xF1E1, 0xEB3B, 0xE9C7, 0, /* 0x60 */
- 0, 0, 0, 0xE443, 0xE44F, 0, 0, 0, /* 0x70 */
- 0xE05C, 0, 0, 0, 0, 0xF8BF, 0, 0, /* 0x70 */
- 0, 0, 0xEDFD, 0xE9E5, 0xE75D, 0, 0, 0, /* 0x80 */
- 0, 0, 0xF196, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xE397, 0, 0, 0xEF7D, 0xE362, /* 0x90 */
- 0, 0xE7D8, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xF676, 0, 0, /* 0xA0 */
- 0xE8AA, 0, 0, 0, 0xF6E0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xE769, 0, 0xF533, 0, 0, 0xF56D, 0, /* 0xB0 */
- 0, 0, 0, 0xF2D1, 0, 0, 0xE7B5, 0, /* 0xC0 */
- 0, 0xF1AB, 0, 0xECB7, 0, 0, 0, 0, /* 0xC0 */
- 0xF24B, 0xE1B4, 0, 0xEB95, 0xF05D, 0, 0, 0, /* 0xD0 */
- 0, 0xF197, 0xEF7E, 0, 0xE0A9, 0xF3AF, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xE05D, 0, /* 0xE0 */
- 0xF139, 0, 0xF47B, 0, 0xF9EF, 0, 0xF7F3, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0xEE51, 0, 0, 0xF168, 0, 0, 0, 0xF1AC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_5A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF05E, 0, 0xEF6F, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0xEA5F, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xE436, 0, 0, 0xEEF4, 0xE3D6, 0, 0, 0xEE52, /* 0x10 */
- 0xECE3, 0, 0, 0, 0, 0xED40, 0, 0, /* 0x20 */
- 0, 0xE744, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0xF635, 0, /* 0x30 */
- 0, 0, 0, 0, 0xF4DE, 0, 0, 0, /* 0x30 */
- 0, 0xE6A5, 0, 0, 0, 0, 0xF6E8, 0, /* 0x40 */
- 0, 0xEF56, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0xF8E6, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0xE9E6, 0, 0, 0, 0xE9A0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xE76A, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xE83C, 0xF040, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xECB8, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xE03A, 0xEBF9, 0, 0xF041, 0, 0, 0, /* 0xC0 */
- 0, 0xF47C, 0, 0, 0xF87E, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xF265, 0, 0, 0, 0, 0xF7F4, 0, /* 0xE0 */
- 0, 0xE47C /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_5B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF8FB, 0, 0, /* 0x00 */
- 0, 0xF9F0, 0, 0xEB4D, 0xE273, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xF756, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xEA3E, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xEAC5, 0, 0, 0xEDBE, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xF1AD, 0xF87A, 0, 0, 0xE1EE, 0xF1A6, 0, 0xF1AE, /* 0x50 */
- 0xF37D, 0, 0xE9A1, 0, 0xF1AF, 0xF99A, 0, 0xE77B, /* 0x50 */
- 0, 0, 0, 0xE19B, 0xE1B5, 0, 0, 0, /* 0x60 */
- 0, 0xF839, 0, 0xEBDD, 0, 0, 0, 0, /* 0x60 */
- 0xEC65, 0xF1CF, 0, 0, 0, 0xE9A2, 0, 0, /* 0x70 */
- 0xF7CA, 0, 0xF078, 0, 0xEDED, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xE4EB, 0, 0xEFD4, /* 0x80 */
- 0xEBFA, 0xED5C, 0, 0xEBE4, 0xEF57, 0, 0, 0xE26B, /* 0x80 */
- 0, 0, 0, 0xE965, 0, 0xF6B5, 0xF995, 0xF395, /* 0x90 */
- 0xE23F, 0xF3B5, 0xF2D2, 0xEF58, 0xF0F1, 0, 0, 0, /* 0x90 */
- 0, 0, 0xE0D4, 0xEB4E, 0xECF8, 0xF079, 0xF942, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xEB96, 0, 0xE2E0, 0, /* 0xA0 */
- 0xF235, 0, 0, 0xF83A, 0xEE53, 0xEBB2, 0xE03B, 0, /* 0xB0 */
- 0xECE4, 0xEFBB, 0, 0, 0, 0, 0, 0xEC66, /* 0xB0 */
- 0xF4F2, 0, 0xF266, 0xF042, 0xE398, 0xF169, 0xE85B, 0xE2A8, /* 0xC0 */
- 0, 0, 0, 0, 0xE9A3, 0, 0, 0, /* 0xC0 */
- 0xE76B, 0, 0xF7CE, 0xEFD5, 0xECD1, 0, 0, 0xE44C, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xE73C, 0xF4CC, /* 0xD0 */
- 0, 0xE1FB, 0xF666, 0, 0xEEF5, 0xEF91, 0xECF9, 0xE44B, /* 0xE0 */
- 0xF4F3, 0xECFB, 0, 0xEA60, 0xE240, 0, 0xE699, 0xF3D9, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xF5C1, 0xE954, 0, /* 0xF0 */
- 0xF5BB, 0, 0xEA61 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_5C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE976, 0, 0, 0xEA62, 0, 0, 0xF1E2, /* 0x00 */
- 0xF298, 0xF05F, 0xF37E, 0xECFC, 0, 0xE4DF, 0xE4F4, 0xEBB3, /* 0x00 */
- 0, 0xEBB4, 0, 0, 0, 0, 0xF563, 0, /* 0x10 */
- 0, 0xEAC6, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0xEFD6, 0, 0, 0, /* 0x20 */
- 0xE8AB, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xF636, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xECB9, 0xF0C5, 0xF539, 0xE1B6, 0xE49B, 0, 0xE83D, 0xE473, /* 0x30 */
- 0xE2D1, 0, 0, 0, 0, 0xE0DC, 0xE19C, 0, /* 0x40 */
- 0xE2DD, 0, 0, 0xEF39, 0, 0xECBB, 0xECBA, 0, /* 0x40 */
- 0, 0xEB6A, 0, 0, 0, 0xF299, 0, 0, /* 0x50 */
- 0, 0, 0, 0xE943, 0, 0, 0, 0, /* 0x50 */
- 0xE4F5, 0, 0xE6A6, 0, 0xF645, 0xE6DB, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xEBD5, 0, 0, 0xE57A, /* 0x60 */
- 0, 0xEAA3, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xF9DF, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xE399, 0xF1D4, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xE0AA, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xED6B, 0, 0xEBFB, 0xE0A2, 0, 0, 0, /* 0xA0 */
- 0, 0xE4E0, 0, 0xED4F, 0, 0xF8C0, 0, 0xE84E, /* 0xB0 */
- 0xED5D, 0, 0xE649, 0, 0, 0, 0xF2C0, 0, /* 0xB0 */
- 0xEBFC, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xF649, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xEAC7, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xED41, 0, 0, 0, 0, 0, 0, 0xE977, /* 0xE0 */
- 0xE978, 0, 0, 0, 0xF866, 0, 0xE4F6, 0, /* 0xF0 */
- 0, 0, 0, 0xF3DA, 0, 0xF894 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_5D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEC9F, /* 0x00 */
- 0, 0, 0, 0, 0, 0xE5CF, 0xE39A, 0, /* 0x00 */
- 0, 0xE1DF, 0, 0, 0xF5CB, 0, 0xED92, 0xE0AB, /* 0x10 */
- 0, 0xE6C4, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xECA0, /* 0x20 */
- 0, 0xE9DA, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xE83E, 0xE07E, 0, 0, 0, /* 0x40 */
- 0xE5B9, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xECA1, 0, 0, 0xEF73, 0, 0, 0xF4AB, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xE2A9, /* 0x80 */
- 0, 0, 0, 0xE4F7, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xE593, 0, 0, /* 0x90 */
- 0xE274, 0, 0xEF94, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xEDF5, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xEEAE, 0, 0xE64A, 0, 0xEAEC, 0xED50, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xEF74, 0, 0, /* 0xC0 */
- 0, 0, 0xE745, 0, 0, 0, 0xED6C, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xF549, 0xF3B6, 0, /* 0xD0 */
- 0, 0xEC6E, 0xEBB5, 0, 0, 0xE1EF, 0xF3A7, 0xE275, /* 0xE0 */
- 0xE0DD, 0, 0, 0xE7E3, 0, 0, 0xF4AC, 0, /* 0xE0 */
- 0, 0xE39B, 0xF13B, 0xEA63, 0xF6E9, 0, 0, 0xF7F5, /* 0xF0 */
- 0, 0, 0, 0, 0, 0xEBDE, 0xE0EE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_5E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xECBC, 0xF766, 0, 0, 0xE8EE, 0, /* 0x00 */
- 0, 0, 0, 0, 0xF9F1, 0, 0, 0, /* 0x00 */
- 0, 0xF6B6, 0, 0, 0, 0, 0xF56E, 0, /* 0x10 */
- 0, 0xF47D, 0, 0xE8D9, 0, 0xF338, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xEBFD, 0, 0, /* 0x20 */
- 0, 0, 0, 0xEA64, 0, 0xEB3C, 0, 0, /* 0x20 */
- 0, 0, 0, 0xF1E3, 0, 0, 0xE4E1, 0, /* 0x30 */
- 0xEAC8, 0, 0, 0, 0, 0xE7B6, 0, 0xF9AC, /* 0x30 */
- 0xF2D3, 0, 0, 0, 0xED51, 0xF77B, 0, 0xE8AC, /* 0x40 */
- 0, 0, 0, 0, 0xF956, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xE73D, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xF64A, /* 0x50 */
- 0, 0xE8DF, 0xE4D3, 0xF757, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xE05E, 0xF751, 0xE444, 0, 0, 0xE944, /* 0x70 */
- 0xF849, 0xE05F, 0, 0xF943, 0xF07A, 0xF07B, 0xE39C, 0, /* 0x70 */
- 0, 0, 0, 0, 0xF1E4, 0, 0, 0xE9E7, /* 0x80 */
- 0, 0, 0xEAC9, 0, 0, 0, 0, 0xEAED, /* 0x80 */
- 0, 0, 0, 0, 0, 0xF24C, 0, 0xF2C1, /* 0x90 */
- 0, 0, 0xE162, 0, 0xE9A4, 0, 0, 0, /* 0x90 */
- 0xEACA, 0, 0, 0, 0, 0, 0xE4F8, 0xF3A8, /* 0xA0 */
- 0, 0, 0, 0xE1B7, 0, 0xF2D4, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0xED6D, 0xEAEE, 0xE0AC, /* 0xB0 */
- 0xEFBC, 0, 0, 0, 0, 0, 0xF07C, 0, /* 0xB0 */
- 0, 0, 0xEACB, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xF7BF, 0xE63F, 0xE5C6, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xE2AA, 0, 0, 0xE239, 0, 0, 0xE69A, 0, /* 0xD0 */
- 0, 0, 0xF3B7, 0xF29A, 0, 0, 0, 0xE7D9, /* 0xD0 */
- 0xF4DF, 0, 0xF758, 0xE256, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xE5E6, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xF576, 0, 0, 0xEE55, 0xF2D5, /* 0xF0 */
- 0, 0, 0xE0EF, 0xF96F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_5F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE937, 0, 0, 0xE677, 0, 0, 0, /* 0x00 */
- 0, 0, 0xF759, 0, 0, 0, 0, 0xECD2, /* 0x00 */
- 0, 0xECBD, 0, 0xE2E1, 0xF350, 0xF16A, 0, 0xE9D7, /* 0x10 */
- 0xF8F0, 0, 0, 0xF13C, 0, 0, 0, 0xF339, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xF867, 0xF8C1, /* 0x20 */
- 0, 0xE450, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xEDB0, 0, 0, 0, 0xF1E5, 0, 0, /* 0x30 */
- 0, 0, 0xE0AD, 0, 0xF7B0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xF6A5, 0, 0xE0AE, 0, 0xE83F, 0, 0xE746, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0xE4A7, 0xF8B2, /* 0x50 */
- 0, 0xF9C4, 0, 0xF13D, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0xF8A1, 0, 0, 0, 0xEDE9, 0xEFEE, /* 0x60 */
- 0, 0xF4F4, 0xF795, 0xF351, 0xEA3F, 0xF740, 0, 0, /* 0x60 */
- 0xF4E0, 0xEEAF, 0, 0, 0, 0, 0, 0xE8AD, /* 0x70 */
- 0, 0xEE45, 0, 0, 0xF7A8, 0, 0, 0xE9D8, /* 0x70 */
- 0xEF69, 0xF2D6, 0, 0, 0, 0xE4E2, 0, 0xEC6F, /* 0x80 */
- 0, 0, 0xF970, 0xE6C8, 0xF9AD, 0, 0, 0, /* 0x80 */
- 0xEAEF, 0xE163, 0xE4F9, 0, 0, 0, 0, 0xE592, /* 0x90 */
- 0xE8C7, 0xEA65, 0, 0, 0, 0, 0xF396, 0, /* 0x90 */
- 0xE5D0, 0xEDD9, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xF957, 0xE966, 0xEC70, 0, 0, 0, 0xE840, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0xF4A3, 0, 0xE4EC, /* 0xB0 */
- 0, 0xF55B, 0, 0, 0, 0xF9C5, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xECFD, 0, 0xF7B1, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xE39D, 0xF16B, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xF5BC, 0xF434, /* 0xD0 */
- 0xE75E, 0xE75F, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xF5F7, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xF671, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xE447, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0xF8EC, 0, 0xE9C8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_60[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xED78, /* 0x00 */
- 0, 0, 0xE451, 0, 0, 0, 0xF767, 0, /* 0x10 */
- 0, 0, 0, 0, 0xE64B, 0xEA66, 0, 0, /* 0x10 */
- 0xF6BD, 0xF13E, 0, 0, 0, 0xE371, 0, 0xEB97, /* 0x20 */
- 0xF043, 0, 0xE266, 0, 0, 0, 0, 0xE135, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xF198, 0xEC71, 0xECBE, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xF958, 0, 0, /* 0x40 */
- 0xE1F0, 0, 0xF7F6, 0, 0, 0xEAF0, 0, 0, /* 0x50 */
- 0, 0xEDBF, 0, 0, 0, 0xE24F, 0, 0, /* 0x50 */
- 0, 0, 0xF971, 0xF1B0, 0xF9D1, 0xF64B, 0, 0, /* 0x60 */
- 0xF7CF, 0xF0DA, 0xE051, 0, 0xE448, 0xE1F1, 0, 0xECD3, /* 0x60 */
- 0xF9E6, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xEE7D, 0, 0, /* 0x80 */
- 0, 0xECFA, 0, 0, 0xF33A, 0xF7D0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0xF972, 0, 0xF737, 0, /* 0x90 */
- 0, 0, 0xEBE5, 0xF29B, 0, 0, 0, 0xEEF6, /* 0x90 */
- 0xF07D, 0, 0, 0xF944, 0xF5C2, 0, 0, 0xE6DC, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xF397, 0, 0xE9E8, 0xE4ED, 0xF5FC, 0, 0xE84F, 0, /* 0xB0 */
- 0xE19D, 0, 0, 0, 0xE4FA, 0xF534, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xF2D7, 0, 0xE553, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xF8E3, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xF8ED, 0, 0xEB3D, 0, 0, 0xF07E, /* 0xD0 */
- 0xF8B3, 0xED52, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xF677, 0xE46D, 0, 0xEACC, 0, 0, 0xF959, 0, /* 0xF0 */
- 0, 0xEDA9, 0xEB98, 0xF643 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_61[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEBFE, 0, 0, 0, 0, 0xE0F0, 0, /* 0x00 */
- 0xF091, 0xF092, 0, 0, 0, 0xE850, 0xF744, 0xF0F2, /* 0x00 */
- 0, 0, 0, 0, 0, 0xED53, 0, 0, /* 0x10 */
- 0, 0, 0xEFD7, 0xED93, 0, 0, 0, 0xE091, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xE267, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xF95A, 0, 0, 0, 0xF4E1, 0, 0, 0xE0C4, /* 0x30 */
- 0, 0, 0, 0, 0xECE5, 0, 0xE0C5, 0xF044, /* 0x30 */
- 0, 0, 0xEFBD, 0, 0xE6C9, 0, 0, 0xF0DB, /* 0x40 */
- 0xF1B1, 0, 0xE153, 0xF6BE, 0xF95B, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xF796, 0, 0xE7B7, 0, 0, /* 0x50 */
- 0xF4D3, 0xF4D4, 0, 0, 0, 0xF6E4, 0, 0xF6D1, /* 0x50 */
- 0, 0, 0xE747, 0xE241, 0xE052, 0, 0, 0xF8B4, /* 0x60 */
- 0xE0C6, 0, 0, 0xF398, 0, 0, 0xE5E7, 0, /* 0x60 */
- 0xF060, 0, 0, 0, 0, 0, 0xE164, 0xE0AF, /* 0x70 */
- 0, 0, 0, 0, 0, 0xF53A, 0xEFAF, 0, /* 0x70 */
- 0, 0xF5C3, 0xEFD8, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xE9E9, 0, 0, 0, 0xF3F3, 0, /* 0x80 */
- 0xE5FB, 0xEA4B, 0, 0, 0xF59D, 0, 0, 0, /* 0x90 */
- 0xF9F3, 0xF9F2, 0xF6A6, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xE9C9, 0, 0, 0xE563, /* 0xA0 */
- 0, 0xE138, 0, 0xE851, 0xE165, 0, 0xE7E4, 0, /* 0xA0 */
- 0, 0, 0xF85A, 0, 0, 0, 0xEDE3, 0, /* 0xB0 */
- 0, 0, 0xE4BC, 0, 0, 0, 0xE092, 0, /* 0xB0 */
- 0, 0, 0, 0xE354, 0, 0, 0, 0xE060, /* 0xC0 */
- 0xF83B, 0xF0EB, 0xEEF8, 0xE7E5, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xE3D7, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0xF4A4, 0, 0, 0, 0xE59D, 0xF973, /* 0xF0 */
- 0xF868, 0, 0xF4D5, 0, 0xE2AB, 0, 0, 0xF0F3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_62[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE5FC, 0, 0, 0, 0, 0, 0, 0xE4D4, /* 0x00 */
- 0xE1FC, 0, 0xE7E6, 0, 0xEC9B, 0xEC31, 0xF0D4, 0, /* 0x00 */
- 0xEB99, 0xED42, 0xE19E, 0, 0, 0, 0xF8E4, 0, /* 0x10 */
- 0, 0, 0xF53B, 0, 0, 0, 0, 0xE34D, /* 0x10 */
- 0, 0xE093, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xF2B8, 0, 0, 0, 0xE6C0, 0, /* 0x20 */
- 0xF29C, 0xF9F4, 0, 0, 0xE4E3, 0, 0xF8C2, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xE5E8, 0xE8AE, /* 0x30 */
- 0xEBB6, 0xF747, 0, 0, 0, 0, 0, 0xEB4F, /* 0x40 */
- 0xF8C3, 0xE9EA, 0, 0xEC32, 0, 0xF236, 0, 0, /* 0x40 */
- 0, 0, 0, 0xF678, 0, 0, 0, 0, /* 0x50 */
- 0xF697, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0xE9CA, 0, /* 0x60 */
- 0, 0xE372, 0, 0, 0, 0, 0xE9A6, 0, /* 0x70 */
- 0, 0xE9EB, 0, 0, 0xED9B, 0, 0, 0xECAF, /* 0x70 */
- 0xE39E, 0, 0, 0, 0xF59E, 0, 0, 0, /* 0x80 */
- 0, 0xE14C, 0xF6EA, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xEDE4, 0xEAF1, 0, 0, 0xF6E1, 0, 0xF7F7, /* 0x90 */
- 0xF2B9, 0, 0, 0xF768, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xF7A9, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xF769, 0, 0, 0, 0xF24D, 0, 0, /* 0xB0 */
- 0, 0xE756, 0, 0, 0xED73, 0xF5CE, 0, 0, /* 0xB0 */
- 0, 0, 0xE9D9, 0, 0, 0, 0, 0xE7E7, /* 0xC0 */
- 0xE449, 0xE5C3, 0, 0, 0xE875, 0xE860, 0, 0xE3D9, /* 0xC0 */
- 0xE268, 0, 0xE0DE, 0xF53C, 0xE89D, 0, 0xF679, 0xEF95, /* 0xD0 */
- 0xE2AC, 0xF392, 0, 0xF59F, 0xE8C8, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xE250, 0xECD4, 0xE3CF, 0xF3F5, /* 0xE0 */
- 0, 0xE1F2, 0, 0xE2EB, 0, 0, 0, 0xE1B8, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0xECA6, 0xE3DA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_63[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF435, 0, 0, 0, 0, 0, 0xF436, /* 0x00 */
- 0, 0xED5E, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0xE4FB, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xF3A9, 0, 0, 0, 0xF459, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0xF2D8, 0xEE59, 0, 0xE748, 0xF895, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xF4B5, 0, 0, 0xF734, 0, 0, 0xE3F3, /* 0x40 */
- 0xEE58, 0, 0, 0, 0, 0xF76A, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xE979, /* 0x60 */
- 0xEA67, 0, 0, 0, 0, 0, 0xE0DF, 0, /* 0x60 */
- 0, 0, 0xE2EC, 0, 0, 0, 0, 0xF56F, /* 0x70 */
- 0, 0, 0xE3F4, 0xE44A, 0, 0, 0, 0xEAF2, /* 0x70 */
- 0, 0, 0, 0xEBB7, 0, 0, 0, 0, /* 0x80 */
- 0xEC33, 0xE4FC, 0, 0, 0xF1E6, 0, 0, 0, /* 0x80 */
- 0, 0, 0xE8C9, 0, 0, 0, 0xED9C, 0, /* 0x90 */
- 0xE2DE, 0, 0, 0xE260, 0, 0, 0, 0, /* 0x90 */
- 0xE5D3, 0xF4F5, 0xF6AE, 0, 0, 0xF2C8, 0, 0xE1F3, /* 0xA0 */
- 0xF5CF, 0xEDF3, 0xF352, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xE061, 0, 0, 0, 0xF093, 0, 0xE336, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE7DA, /* 0xC0 */
- 0xF33B, 0, 0, 0, 0, 0, 0xF0E7, 0, /* 0xD0 */
- 0, 0, 0xEDC0, 0xF945, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xED54, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xE139, 0xF9C6, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xF045, 0, 0xEDAA, 0xEABA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_64[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEBDF, 0, 0xE861, /* 0x00 */
- 0, 0, 0, 0, 0xEBB8, 0, 0xEF96, 0xE4FD, /* 0x10 */
- 0, 0, 0, 0, 0xEC34, 0, 0, 0, /* 0x10 */
- 0, 0, 0xF45A, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xE876, 0xF6B3, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0xF9CD, 0, 0, 0, 0xF4B6, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xF267, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xF5C4, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xE734, 0, 0, 0, 0, 0, 0xF437, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xE7B8, 0xE7B9, 0xF2C9, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xE65E, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xF6CB, 0xEAAE, 0xEF97, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xE445, 0, 0, 0, 0xE4D5, 0, /* 0x90 */
- 0, 0, 0, 0, 0xF55C, 0xE89E, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xE7E8, 0, 0xF6EB, 0xF5C9, 0, /* 0xA0 */
- 0xF4BC, 0, 0xE862, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xE4B5, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xEF46, 0, 0, 0xE65F, 0xF54A, 0, 0xF6C9, /* 0xC0 */
- 0, 0, 0xE13A, 0, 0, 0xF353, 0xE166, 0, /* 0xC0 */
- 0, 0, 0xE363, 0, 0xE4BD, 0, 0, 0, /* 0xD0 */
- 0xE8FB, 0, 0xE0E0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xE4E4, 0xF699, 0, 0, 0xE5BA, 0xF4CD, 0xE0E1, /* 0xE0 */
- 0, 0, 0, 0, 0xF0F4, 0, 0, 0, /* 0xE0 */
- 0, 0, 0xF53D, 0, 0xF93A, 0, 0, 0, /* 0xF0 */
- 0, 0, 0xF6EC, 0, 0, 0, 0xEF98 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_65[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE877, 0, 0, 0, 0xF6CC, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xEDC1, 0, 0, 0, 0, 0xEB7E, 0, 0, /* 0x10 */
- 0, 0, 0, 0xE5FD, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xE276, 0xF93B, 0xE5BB, 0, 0, 0xF438, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0xEC35, 0xE1B9, /* 0x30 */
- 0xF094, 0xE0C7, 0, 0xE1F4, 0, 0, 0xE8AF, 0xF2D9, /* 0x30 */
- 0, 0, 0, 0, 0, 0xE1BA, 0, 0, /* 0x40 */
- 0xF99B, 0, 0, 0, 0, 0xEAF3, 0xE277, 0xE852, /* 0x40 */
- 0, 0xE2AD, 0, 0, 0, 0, 0xEEF9, 0xF738, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xF4E2, 0, /* 0x50 */
- 0, 0, 0xE094, 0xEAA4, 0, 0, 0xE554, 0, /* 0x60 */
- 0, 0, 0, 0, 0xE167, 0xEDC2, 0, 0, /* 0x60 */
- 0, 0, 0xE1BB, 0, 0xF2DA, 0xF268, 0, 0xE9A7, /* 0x70 */
- 0xEC36, 0, 0, 0, 0, 0, 0xEB50, 0, /* 0x70 */
- 0, 0, 0xE640, 0xF75A, 0, 0xF99C, 0, 0xE7FE, /* 0x80 */
- 0, 0, 0, 0, 0xEA40, 0, 0, 0, /* 0x80 */
- 0xE9EC, 0xE878, 0, 0, 0, 0, 0, 0xE570, /* 0x90 */
- 0, 0xE69B, 0, 0xE1D7, 0xEA68, 0, 0, 0xF49A, /* 0x90 */
- 0, 0xED66, 0, 0, 0xE355, 0xF53E, 0, 0xE9A8, /* 0xA0 */
- 0, 0, 0, 0xF1C5, 0xF4D6, 0, 0, 0xEA69, /* 0xA0 */
- 0xECE6, 0, 0, 0, 0, 0, 0, 0xE4A8, /* 0xB0 */
- 0, 0xE8B0, 0, 0, 0xEDDA, 0xECBF, 0, 0, /* 0xB0 */
- 0, 0xE8B1, 0, 0, 0, 0xE5E9, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xEB51, 0xF2DB, 0, 0, 0xF379, /* 0xC0 */
- 0, 0, 0xE6B2, 0, 0, 0, 0, 0xE39F, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xE7E9, 0, 0, 0xE3A0, 0, 0xF17D, 0xE4A9, 0, /* 0xE0 */
- 0xF439, 0xF354, 0, 0, 0xEC72, 0xEFEF, 0, 0, /* 0xE0 */
- 0, 0xF7D1, 0, 0, 0xEFD9, 0, 0, 0, /* 0xF0 */
- 0, 0, 0xEF6A, 0xE853, 0xE854, 0xE555, 0, 0xEEFA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_66[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE1E0, 0xECB0, /* 0x00 */
- 0, 0xE8B2, 0xF8C4, 0, 0xF4E3, 0, 0xE7A5, 0xF8E7, /* 0x00 */
- 0xE9CB, 0xE364, 0, 0xEE46, 0xEB3E, 0xF9DA, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xE945, 0xEB9A, /* 0x10 */
- 0xEEB1, 0, 0, 0, 0, 0xF5F0, 0, 0xE76C, /* 0x20 */
- 0xF1C6, 0, 0, 0, 0, 0xEBB9, 0, 0xECC0, /* 0x20 */
- 0xF7C0, 0xEFF0, 0, 0, 0xE7DB, 0, 0xF4E4, 0, /* 0x30 */
- 0, 0, 0xE946, 0xED79, 0, 0, 0, 0, /* 0x30 */
- 0, 0xF355, 0xECC1, 0xF95C, 0xF95D, 0, 0, 0, /* 0x40 */
- 0, 0xF45B, 0, 0xF45C, 0, 0, 0, 0xED5F, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xF3DB, 0, 0xF869, 0, 0xF3B8, 0xF9F5, 0xEB9B, /* 0x50 */
- 0, 0, 0, 0, 0xEEFB, 0xF947, 0xF974, 0xF8C5, /* 0x60 */
- 0xECE7, 0xE749, 0, 0xF69A, 0, 0, 0xE955, 0xE168, /* 0x60 */
- 0, 0, 0, 0xEB3F, 0xF577, 0, 0xF2DC, 0xE2FC, /* 0x70 */
- 0xF2DD, 0, 0xF43A, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xF9BE, 0, 0, 0xE03C, /* 0x80 */
- 0xF9BB, 0xF9C7, 0, 0, 0, 0, 0xEEB2, 0, /* 0x80 */
- 0xF061, 0xEAF4, 0, 0, 0, 0, 0xE3EC, 0xED6E, /* 0x90 */
- 0xEDC3, 0, 0, 0, 0, 0xE7A6, 0, 0, /* 0x90 */
- 0xE1BC, 0, 0xF4E5, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xF1D5, 0, 0, 0xE7BA, 0, /* 0xA0 */
- 0, 0, 0xF1E7, 0xF8B5, 0xF77C, 0, 0, 0, /* 0xB0 */
- 0, 0xEB77, 0, 0xE169, 0, 0, 0xE556, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xEEA5, 0, 0xE5F5, 0xE4BE, /* 0xC0 */
- 0, 0xF99D, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xED94, 0, /* 0xD0 */
- 0, 0xEAF5, 0, 0, 0xEF9A, 0xF77D, 0, 0, /* 0xD0 */
- 0xE257, 0, 0, 0, 0, 0, 0xF9F6, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xEF68, 0, 0xE1D8, 0xEED6, 0xE16A, 0, 0, 0xE073, /* 0xF0 */
- 0xEAF6, 0xF357, 0xF356, 0, 0xE74A, 0, 0xF3F4, 0xF592 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_67[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF5CC, 0, 0, 0xF975, 0, 0, 0, 0, /* 0x00 */
- 0xF055, 0xF095, 0, 0xE9DB, 0, 0xE967, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0xEA9F, 0xF49B, 0, 0xE5C7, /* 0x10 */
- 0, 0, 0, 0xE760, 0, 0xF358, 0xE3A1, 0xE3A2, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xE7D4, 0xE678, /* 0x20 */
- 0xE7CA, 0, 0xE841, 0xE757, 0xE972, 0xF4CE, 0xF5F4, 0, /* 0x20 */
- 0, 0xF3B9, 0, 0, 0xE863, 0, 0xF67A, 0, /* 0x30 */
- 0, 0, 0xE2F5, 0, 0, 0xF9AE, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xE062, 0, /* 0x40 */
- 0, 0xEAB4, 0, 0, 0, 0, 0xE6DD, 0xF84A, /* 0x40 */
- 0xF237, 0xF5BD, 0, 0xF797, 0, 0, 0xF1E8, 0, /* 0x50 */
- 0, 0, 0, 0, 0xE571, 0, 0xE3A3, 0xEBD6, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xF7F8, 0, 0xE8CA, /* 0x60 */
- 0xE0F9, 0xE564, 0, 0xE7DC, 0, 0xF24E, 0, 0xF6ED, /* 0x70 */
- 0, 0, 0, 0xE47E, 0, 0, 0xEBE6, 0xF6F9, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xE9ED, /* 0x80 */
- 0, 0xEF6B, 0, 0xE8B3, 0, 0, 0, 0xE3F7, /* 0x80 */
- 0xEB40, 0, 0, 0xE572, 0, 0xF667, 0, 0xE6F9, /* 0x90 */
- 0, 0, 0xE76D, 0, 0xE1FD, 0xF43B, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE1BD, /* 0xA0 */
- 0xF752, 0, 0, 0xF43C, 0, 0, 0xE03D, 0xE03E, /* 0xB0 */
- 0xE2AE, 0, 0, 0, 0, 0, 0xECC2, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xE947, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE8DA, /* 0xC0 */
- 0xE7BB, 0xE095, 0xF663, 0xEE9A, 0xF097, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xF098, 0, 0, 0xF69B, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0xE2AF, 0, 0, 0xE063, 0, 0, 0xE03F, /* 0xE0 */
- 0xE440, 0xF3BA, 0, 0xE6B3, 0xECC3, 0xF4FD, 0xEA6A, 0, /* 0xF0 */
- 0, 0, 0, 0xEA6B, 0, 0, 0xF2DE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_68[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEC73, 0xF29D, 0, 0, 0xEAF7, 0xE6CA, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xE278, 0xE8DB, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xF3BB, 0, 0, 0, 0, 0xEFF1, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xF847, 0xE356, 0, 0, 0xE13B, 0xF238, 0, 0, /* 0x30 */
- 0xE0FA, 0xF7F9, 0xE19F, 0xE4FE, 0, 0, 0, 0, /* 0x40 */
- 0xED60, 0, 0, 0, 0, 0, 0xF47E, 0, /* 0x40 */
- 0xE565, 0xEACD, 0, 0xF948, 0xE3D0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xF45D, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0xF6D2, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xE064, /* 0x70 */
- 0, 0xE5D9, 0, 0, 0, 0xE76E, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0xE1D9, /* 0x80 */
- 0, 0, 0, 0xF239, 0xF64C, 0, 0, 0xE16B, /* 0x90 */
- 0, 0, 0, 0, 0, 0xF359, 0, 0xF99E, /* 0x90 */
- 0, 0xEF59, 0xF5A0, 0, 0, 0, 0, 0xEEFC, /* 0xA0 */
- 0xE6DE, 0, 0, 0, 0, 0xEA6C, 0, 0xF33C, /* 0xA0 */
- 0xE1A0, 0xE1E1, 0, 0xEBBA, 0, 0xE8EF, 0xE842, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xE3A5, 0xE948, 0, 0, /* 0xC0 */
- 0, 0xE798, 0, 0xE3A4, 0, 0xE1E2, 0, 0, /* 0xC0 */
- 0, 0, 0xE97A, 0, 0, 0xF399, 0, 0xF35A, /* 0xD0 */
- 0xE34E, 0, 0xE9DC, 0, 0, 0, 0, 0xE566, /* 0xD0 */
- 0xE4D6, 0, 0, 0, 0, 0, 0, 0xF1D0, /* 0xE0 */
- 0xE1A1, 0, 0, 0, 0, 0, 0xEAB5, 0, /* 0xE0 */
- 0, 0, 0xEAF8, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xE531, 0xE242 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_69[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEF5A, 0, 0, 0, 0, 0xF0F5, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0xECD5, 0xF5D0, 0, /* 0x00 */
- 0, 0, 0xF5A1, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xE7A7, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xEDAB, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xEE5B, 0, 0xF5F1, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xEDC5, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xF7A3, 0xEB6B, 0xF67B, 0, 0xE0F1, /* 0x50 */
- 0, 0xE7EA, 0xF5A2, 0, 0, 0, 0xE6D1, 0, /* 0x50 */
- 0xE3F8, 0xF09A, 0xF09B, 0xE843, 0, 0, 0, 0, /* 0x60 */
- 0xF2DF, 0, 0, 0xF3EF, 0, 0xEDF6, 0xF24F, 0xEC74, /* 0x60 */
- 0, 0, 0, 0, 0, 0xE34F, 0, 0xF83C, /* 0x70 */
- 0xF5D1, 0xEEB3, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xEFBE, 0, 0, /* 0x90 */
- 0, 0, 0, 0xF45E, 0xE8B4, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xF95E, 0, 0xE9EE, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xEEB4, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xE6B4, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xF6B4, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xE1BE, 0, 0xE879, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xE2B0, 0xF6D9, 0xF4E6, 0, 0, /* 0xC0 */
- 0xE269, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xE23A, 0, 0xE0C8, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0xE337, 0, 0xF35B, 0, 0xE357 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_6A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xED55, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xE8E0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0xE5DA, 0, 0xE6A7, 0, 0, 0, 0xF250, /* 0x10 */
- 0, 0xF798, 0, 0, 0, 0, 0xF5D2, 0xF1E9, /* 0x10 */
- 0, 0xE7BC, 0, 0xEDC6, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xF5A3, 0, 0, /* 0x30 */
- 0xE864, 0xEC37, 0xF8FC, 0, 0, 0xF3DC, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0xE096, 0, 0, 0, /* 0x40 */
- 0xEF9C, 0, 0, 0xE279, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xEFF8, 0xEC75, 0, 0, 0, 0, /* 0x50 */
- 0xE349, 0xE594, 0, 0, 0, 0, 0, 0xE3A6, /* 0x50 */
- 0, 0xEACE, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xF996, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xE4AA, 0, 0, 0, 0xE13C, 0, 0, 0, /* 0x80 */
- 0, 0xF2E0, 0, 0, 0, 0xEDE5, 0xE365, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0xE8FC, /* 0x90 */
- 0, 0, 0, 0, 0xF976, 0, 0, 0, /* 0x90 */
- 0, 0, 0xE0FE, 0xF1EA, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xEA41, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xF7E3, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xE532, 0xE2F6, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xE660, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xE5EA, 0xF3EE, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xF85B, 0, /* 0xF0 */
- 0, 0, 0, 0xEDA1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_6B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE5B1, 0, 0, 0, /* 0x00 */
- 0, 0, 0xE2ED, 0, 0xF1EB, 0, 0, 0, /* 0x00 */
- 0, 0, 0xE5B2, 0, 0, 0, 0xE5BC, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xF9E2, 0xF4AD, 0, 0xF9DB, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xEFB0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0xE3A7, 0, 0, 0xF9E3, 0xE243, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xF9E4, 0xF85E, /* 0x40 */
- 0, 0, 0, 0, 0xE040, 0, 0xF6A7, 0, /* 0x40 */
- 0xE2B1, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xEE32, /* 0x50 */
- 0, 0xF946, 0xF43D, 0xF2E1, 0xF4AE, 0xE956, 0xE7EB, 0, /* 0x60 */
- 0, 0, 0xEF70, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xEBA8, 0, 0, 0, 0, 0xE5F6, /* 0x70 */
- 0xE2FD, 0, 0, 0xEA6D, 0, 0, 0, 0xE7D1, /* 0x70 */
- 0, 0, 0, 0xED7A, 0xF45F, 0, 0xF6BF, 0, /* 0x80 */
- 0, 0xEC76, 0xEC38, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xECD6, 0, /* 0x90 */
- 0xF1D1, 0, 0, 0, 0, 0, 0xEFF9, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xE641, 0xEA42, /* 0xA0 */
- 0, 0, 0xEB78, 0, 0, 0xE4AB, 0, 0xF0DC, /* 0xB0 */
- 0, 0, 0xEAAF, 0, 0xE053, 0, 0, 0xF29E, /* 0xB0 */
- 0, 0xF9C3, 0, 0, 0, 0xF0F6, 0xE2B2, 0, /* 0xC0 */
- 0, 0, 0, 0xE7EC, 0, 0xE7BD, 0, 0xE76F, /* 0xC0 */
- 0, 0, 0xE548, 0xF0BE, 0xE9EF, 0, 0xE9F0, 0xE9F1, /* 0xD0 */
- 0xE9F2, 0, 0, 0xE7BE, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xF8C6, 0xE2B3 /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_6C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF29F, 0, 0, 0, 0, 0, 0, 0xED3B, /* 0x00 */
- 0, 0xE855, 0, 0xE77C, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xE3A8, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xEC39, 0, 0, 0xEA4C, /* 0x30 */
- 0xEEB5, 0, 0, 0, 0, 0, 0xE8F0, 0, /* 0x30 */
- 0xF2E2, 0xF3F0, 0xE2B4, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0xE8F1, 0, /* 0x40 */
- 0xEB41, 0, 0, 0, 0, 0xEAA5, 0, 0xF7D2, /* 0x50 */
- 0, 0, 0xEEFD, 0, 0, 0xEE33, 0xF8F1, 0xE0B0, /* 0x50 */
- 0xF43E, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0xE1E7, 0, 0xEF6C, 0, 0, 0xEED7, 0, 0, /* 0x60 */
- 0xF6C0, 0, 0xE373, 0, 0, 0, 0xE831, 0, /* 0x70 */
- 0, 0, 0xE14D, 0, 0, 0xE3A9, 0xE9CC, 0, /* 0x70 */
- 0, 0xECFE, 0xE3AA, 0xEF3A, 0, 0xF046, 0xF7FA, 0xEE5C, /* 0x80 */
- 0xF668, 0, 0, 0, 0xE557, 0, 0, 0, /* 0x80 */
- 0xE7CB, 0, 0xE7D2, 0xE4CB, 0xE799, 0xE839, 0xF5F8, 0, /* 0x90 */
- 0, 0xEA6E, 0xF43F, 0xF739, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xE758, 0, 0, 0xF251, 0, /* 0xA0 */
- 0, 0, 0, 0xF7C1, 0, 0, 0, 0, /* 0xB0 */
- 0xE9F3, 0xF09C, 0, 0xF64D, 0xEBBB, 0xE1BF, 0xF564, 0xEE5D, /* 0xB0 */
- 0, 0xF95F, 0xF8A2, 0, 0xEB6C, 0, 0, 0, /* 0xC0 */
- 0, 0xF54B, 0xE865, 0, 0xF7B2, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xF8F2, 0, 0xE8F6, 0, 0xEA6F, /* 0xD0 */
- 0, 0, 0, 0xE8F2, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xF76C, 0xF6EE, 0xF0E8, 0, 0xE49C, 0, 0, /* 0xE0 */
- 0xF3BC, 0, 0, 0xF86A, 0, 0, 0xE87A, 0xE856, /* 0xE0 */
- 0xF6C1, 0, 0, 0xEEB6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_6D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEDC7, 0xE63C, 0, 0, 0, /* 0x00 */
- 0, 0xE957, 0, 0, 0, 0, 0, 0xEBA9, /* 0x10 */
- 0, 0xEC3A, 0, 0xE5A6, 0, 0, 0xE567, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xF460, 0, 0xF09D, /* 0x20 */
- 0, 0xEB6D, 0xF8F3, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xF3BD, 0, 0, 0xEC77, 0xF9D7, 0, /* 0x30 */
- 0xE258, 0xF047, 0, 0xF950, 0, 0xF9E7, 0xF6EF, 0, /* 0x30 */
- 0, 0xE6B5, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xF2BA, 0xF3DD, 0, 0xEA43, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0xEF5B, 0, 0, 0xF76D, 0, /* 0x60 */
- 0, 0xF8C7, 0xE5C8, 0, 0xE6DF, 0, 0xE9A9, 0, /* 0x60 */
- 0, 0, 0, 0, 0xEFB1, 0, 0, 0xF83D, /* 0x70 */
- 0xF669, 0xF896, 0, 0, 0, 0, 0, 0xF73A, /* 0x70 */
- 0, 0, 0, 0, 0, 0xEE7E, 0, 0xE16C, /* 0x80 */
- 0xEBBC, 0xEB91, 0, 0, 0xEFBF, 0xF99F, 0xEE5E, 0, /* 0x80 */
- 0, 0xEBD7, 0, 0xEE5F, 0, 0xF593, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0xED95, /* 0xA0 */
- 0, 0, 0xED9D, 0, 0, 0xF7E4, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xF2E3, 0, 0, 0xE2EE, 0xF64E, 0xEB42, 0xF9A0, 0xE3AB, /* 0xC0 */
- 0, 0, 0, 0xE6FA, 0, 0, 0, 0xF8C8, /* 0xC0 */
- 0, 0xEC67, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xE533, 0xF39A, 0xE6A8, 0, 0, 0, 0xEBE7, 0, /* 0xD0 */
- 0, 0xE4BF, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xF2E4, 0, 0xE6C5, 0xF0E2, 0, 0, 0xF977, 0, /* 0xE0 */
- 0, 0xED32, 0, 0xEC78, 0, 0xEE60, 0, 0xF8E8, /* 0xF0 */
- 0xF578, 0xEDF4, 0xF54C, 0xF565 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_6E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEAB6, /* 0x10 */
- 0, 0xF949, 0xF252, 0xE097, 0, 0, 0, 0xF2E5, /* 0x10 */
- 0xE0E2, 0xE534, 0, 0xEA70, 0xE89F, 0xED56, 0xEF4E, 0, /* 0x20 */
- 0, 0, 0, 0xEB6E, 0xF644, 0xF062, 0, 0xF7FB, /* 0x20 */
- 0, 0, 0xEB52, 0, 0xE074, 0, 0xEEB7, 0, /* 0x30 */
- 0xF09F, 0, 0xE7DD, 0, 0xE844, 0xF23A, 0xF8E9, 0, /* 0x30 */
- 0, 0, 0, 0xE8CB, 0xE845, 0, 0, 0, /* 0x40 */
- 0, 0, 0xF3BE, 0, 0, 0xE4AC, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0xF8C9, 0, /* 0x50 */
- 0xEACF, 0, 0, 0xE4C0, 0xECD7, 0, 0xF2E6, 0xF960, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xEFC0, /* 0x60 */
- 0, 0, 0, 0xF5D3, 0, 0, 0xF16C, 0xF6B7, /* 0x60 */
- 0, 0, 0xF048, 0xE3F9, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xE958, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xF049, 0, 0, 0, 0, 0, 0xF3DE, 0, /* 0x90 */
- 0, 0, 0, 0, 0xE6B6, 0xE2B5, 0, 0xE7A8, /* 0x90 */
- 0, 0, 0xF17E, 0, 0, 0xE9AA, 0, 0, /* 0xA0 */
- 0, 0, 0xE1A2, 0xEF3E, 0, 0, 0, 0xEBBD, /* 0xA0 */
- 0, 0xF461, 0, 0, 0, 0, 0xEFC1, 0, /* 0xB0 */
- 0, 0, 0xE49E, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xE8B5, 0, 0xF4E7, 0xE7A0, 0, 0, /* 0xC0 */
- 0, 0xF961, 0, 0xF1B2, 0xF53F, 0, 0xF8A3, 0, /* 0xC0 */
- 0, 0xF951, 0, 0xF23B, 0xE535, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0xF594, /* 0xE0 */
- 0, 0, 0, 0, 0xF269, 0, 0, 0, /* 0xF0 */
- 0xF8CA, 0, 0, 0, 0, 0, 0xE1E3, 0xE74B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_6F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEDDB, 0xF799, 0, 0, 0, 0xF664, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0xE6A9, /* 0x00 */
- 0, 0xE0C9, 0, 0, 0xEE61, 0xF35C, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xE73E, 0, 0xF7D3, 0xE5FE, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xE74C, 0xF440, 0, 0, 0, /* 0x20 */
- 0, 0xEC3B, 0xF4E8, 0, 0, 0, 0, 0, /* 0x30 */
- 0xF2C2, 0, 0, 0, 0, 0, 0, 0xF1EC, /* 0x30 */
- 0, 0xEEB8, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xE8A0, 0, 0, 0xE14E, 0, 0, 0xF49E, /* 0x50 */
- 0xE87B, 0, 0xEC68, 0xF1D6, 0, 0, 0xE661, 0xEB43, /* 0x50 */
- 0, 0, 0xF962, 0, 0xF0C8, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xE4C1, 0xF35D, 0, /* 0x60 */
- 0xE2F7, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xF1D2, 0, 0xE568, 0xE959, 0xE6F1, 0, /* 0x70 */
- 0, 0xEABB, 0, 0, 0xF4A5, 0, 0, 0, /* 0x80 */
- 0xF55D, 0, 0, 0, 0, 0xF3BF, 0xF741, 0, /* 0x80 */
- 0xEFFA, 0, 0, 0, 0xF8CB, 0, 0, 0xE065, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xF7D4, 0xF6CA, 0, 0, 0xE658, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xF978, 0xF4BD, /* 0xA0 */
- 0, 0xF2A0, 0, 0xEEFE, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xE4C2, 0, 0, 0, 0, 0xE4B6, 0, /* 0xB0 */
- 0xE13D, 0xF69C, 0xE642, 0xE468, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xEED8, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xECA5, 0, 0, /* 0xD0 */
- 0, 0, 0xEEB9, 0, 0, 0, 0, 0xF33D, /* 0xD0 */
- 0xF8CC, 0xF0A1, 0, 0, 0xE536, 0, 0, 0, /* 0xE0 */
- 0, 0xF8CD, 0, 0xE5BD, 0xF3DF, 0, 0, 0xF69D, /* 0xE0 */
- 0, 0xEA44, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0xE5EB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_70[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEDC8, 0, 0, 0, 0xF8A4, 0xE549, 0, /* 0x00 */
- 0, 0xEA71, 0, 0xED33, 0, 0, 0, 0xE6B7, /* 0x00 */
- 0, 0xF77E, 0, 0, 0, 0xEA45, 0, 0, /* 0x10 */
- 0xE662, 0, 0xF7D5, 0xEEBA, 0xF0D5, 0xE5F7, 0xF2E7, 0xEBBE, /* 0x10 */
- 0, 0, 0, 0xF83E, 0, 0, 0, 0xE679, /* 0x20 */
- 0xE67E, 0, 0, 0, 0, 0, 0, 0xEEBB, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0xF15B, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xE5B3, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xE244, 0, 0, 0, /* 0x40 */
- 0xF8A5, 0xEBEE, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xF6A8, 0, 0, 0, 0, 0xF8CE, 0, 0, /* 0x50 */
- 0, 0, 0, 0xE74D, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xF8FD, 0, 0, 0, 0, /* 0x60 */
- 0xF979, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xE2B6, 0, 0, 0, 0xF1C7, 0xF23C, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xE16D, 0, 0, /* 0x80 */
- 0, 0, 0xF637, 0, 0, 0, 0xEE9C, 0, /* 0x80 */
- 0, 0, 0xF5A4, 0, 0, 0, 0, 0, /* 0x90 */
- 0xF9DC, 0xF1B3, 0xE259, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xF2E8, 0, 0, 0xEBBF, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xF86B, 0xE0E3, 0xF6A9, 0, 0xF8A6, /* 0xA0 */
- 0, 0, 0, 0xE949, 0, 0, 0, 0xF3C0, /* 0xB0 */
- 0xF1C8, 0xF2C3, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xE63D, 0, 0, 0xF9CE, 0, 0, 0, 0xEF31, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xF8F4, 0xE5A7, 0, 0, 0, 0xF3F6, 0, 0xEE63, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0xE16E, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xF742, 0, 0, 0, 0xE97B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_71[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF9B6, 0, 0, 0, /* 0x00 */
- 0, 0xEDEA, 0, 0, 0xF3E0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xE8CC, 0xE9CD, 0, 0, 0, 0xE558, 0, /* 0x10 */
- 0, 0xE7ED, 0, 0, 0, 0, 0xF5A5, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xEE9D, 0, 0, 0, 0, 0, 0xEE64, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0xF9C8, /* 0x40 */
- 0, 0xE631, 0xF9BF, 0, 0xF963, 0, 0xF2A1, 0, /* 0x40 */
- 0xEEBC, 0, 0, 0, 0, 0, 0xE3EE, 0, /* 0x50 */
- 0, 0xEE65, 0, 0, 0xEFF2, 0, 0xEAB0, 0, /* 0x50 */
- 0, 0, 0, 0, 0xE770, 0xF94A, 0xF9AF, 0xF35E, /* 0x60 */
- 0, 0xE8E1, 0, 0, 0xEDC9, 0, 0xF1B4, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xEB53, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xECD8, 0, 0, 0, /* 0x80 */
- 0, 0xEFFB, 0xF038, 0, 0, 0, 0, 0xF9B7, /* 0x80 */
- 0, 0, 0xF8A7, 0, 0xEFC2, 0, 0, 0, /* 0x90 */
- 0, 0xF9F7, 0, 0, 0, 0, 0, 0xEC69, /* 0x90 */
- 0, 0, 0xE97C, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xEF32, 0, 0, 0, /* 0xA0 */
- 0, 0xEE92, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xF9F8, 0xF9F9, 0, 0, 0, 0xF64F, 0, /* 0xB0 */
- 0, 0xEEA7, 0, 0xEE67, 0, 0, 0, 0, /* 0xC0 */
- 0xE595, 0xE559, 0, 0, 0, 0, 0xE69C, 0, /* 0xC0 */
- 0xE6F2, 0, 0xEBC0, 0, 0xE8E2, 0xEE68, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0xEEBD, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xF35F, 0xF4BE, 0xEC3C, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xF5B7, 0xEB92, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0xF9B8, 0xECE8, 0, 0xE537, 0xEF9E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_72[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF862, 0, 0, 0, 0, 0, 0xF791, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0xE663, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xE5B4, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xF360, 0, 0xF6F0, 0xF243, 0, 0, /* 0x20 */
- 0xF04A, 0, 0xF063, 0, 0, 0xF1C9, 0xE9AB, 0, /* 0x30 */
- 0, 0, 0xEDAC, 0xF9A1, 0, 0xEAD0, 0xF143, 0, /* 0x30 */
- 0xEAD1, 0, 0, 0, 0, 0, 0xF1ED, 0xF748, /* 0x40 */
- 0xF6FA, 0, 0, 0, 0xF73B, 0, 0, 0, /* 0x40 */
- 0, 0, 0xF570, 0, 0, 0, 0, 0, /* 0x50 */
- 0xE54A, 0xED43, 0, 0xEFDA, 0, 0xEA46, 0, 0xE7BF, /* 0x50 */
- 0, 0xE7C0, 0xE691, 0, 0, 0, 0, 0xE7CC, /* 0x60 */
- 0, 0xE83A, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xEAE5, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xF6E5, 0, 0, 0, 0xE142, 0, 0, /* 0x70 */
- 0xEAF9, 0xE6E0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xE54B, 0, 0, 0, 0, 0xF9FA, /* 0xA0 */
- 0, 0, 0, 0, 0xE143, 0, 0, 0xE8F3, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xEAD2, 0, 0xE25A, 0, 0xF26A, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xED74, 0, /* 0xC0 */
- 0xF8CF, 0, 0, 0, 0, 0, 0, 0xE2B7, /* 0xD0 */
- 0, 0xF253, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xE27A, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0xEC3D, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0xE6E1, 0xF897, 0, 0, 0xE5C9, 0xF73C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_73[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEED9, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xF4E9, 0, /* 0x10 */
- 0, 0, 0, 0xE77D, 0xECC4, 0xF393, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xEF75, 0, 0, /* 0x20 */
- 0, 0xEB9C, 0xF254, 0xE7DE, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0xF0A2, 0xF0A3, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xF952, 0xF04B, /* 0x30 */
- 0, 0, 0, 0, 0xEF3B, 0xEA72, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xF1EF, 0, 0xEF33, 0, 0, 0, 0, 0xE2F1, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0xE54C, 0, 0xF97A, 0, 0, 0, 0, 0, /* 0x60 */
- 0xEEBE, 0, 0xF994, 0, 0, 0xE644, 0, 0, /* 0x70 */
- 0xEC3E, 0, 0xE4B7, 0xF85C, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xF86C, 0, 0xF1B5, 0xEBE3, /* 0x80 */
- 0, 0xEF3C, 0, 0xEF6D, 0, 0, 0xF2E9, 0, /* 0x80 */
- 0, 0, 0, 0, 0xF54D, 0, 0xE2B8, 0xEFDB, /* 0x90 */
- 0xE3AC, 0, 0, 0, 0, 0, 0, 0xE857, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xF0C9, /* 0xA0 */
- 0, 0xEF5C, 0, 0, 0, 0xEA47, 0, 0, /* 0xA0 */
- 0, 0, 0xE64C, 0xE4E5, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xF86D, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xE866, 0, 0xE041, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xE858, 0xEAA6, 0, 0xF7B3, 0xF462, 0, 0xE054, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xE25B, 0, /* 0xD0 */
- 0, 0xE1F5, 0, 0, 0, 0xF9B0, 0xE5A8, 0, /* 0xD0 */
- 0xF3C1, 0, 0, 0xEC79, 0xE95A, 0xF144, 0xF850, 0, /* 0xE0 */
- 0, 0xF8A8, 0xE338, 0, 0, 0xE87C, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE7EE, /* 0xF0 */
- 0, 0xEB9D, 0, 0, 0, 0xF2EA, 0xF86E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_74[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEB54, 0, 0xE2B9, 0, 0xE5CA, 0xE6E2, 0xEC3F, /* 0x00 */
- 0, 0xE6B8, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0xEF5D, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xF66A, 0, 0, 0, 0, /* 0x10 */
- 0xF2A2, 0xEC6A, 0xF69E, 0, 0, 0xF8D0, 0xE3AD, 0, /* 0x20 */
- 0xE1E4, 0, 0xE3AE, 0xE97D, 0xEF5E, 0, 0xF39B, 0xE245, /* 0x20 */
- 0xEE9E, 0, 0, 0xE6FB, 0xE366, 0xE9F5, 0xF6F1, 0, /* 0x30 */
- 0xF69F, 0, 0xE8F7, 0, 0, 0, 0, 0xF8EA, /* 0x30 */
- 0xEFDC, 0xE7C1, 0, 0xF5F2, 0xEB55, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xF064, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xF7C2, 0, 0xF04C, /* 0x50 */
- 0, 0xE455, 0xF8D1, 0xEEC0, 0xF0A5, 0, 0xEAFA, 0xECA2, /* 0x50 */
- 0xE6B9, 0, 0xEFC3, 0, 0xEF9F, 0xEF3F, 0, 0, /* 0x60 */
- 0xF463, 0xF8A9, 0xE735, 0, 0, 0, 0, 0xE5CB, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xE358, 0, /* 0x70 */
- 0, 0, 0xE3AF, 0xE6E3, 0, 0, 0, 0xEB56, /* 0x80 */
- 0, 0xE632, 0, 0xF1F0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xE6F3, 0, 0, 0, 0xF964, 0, 0xE867, 0xE16F, /* 0x90 */
- 0, 0xF464, 0, 0xE3B0, 0, 0xE170, 0, 0xE8FD, /* 0xA0 */
- 0xF4BF, 0, 0xF361, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xF94B, 0, 0xEC40, 0, 0, 0xEE35, 0, 0, /* 0xB0 */
- 0, 0xEC6B, 0, 0, 0, 0xEADE, 0, 0xEB57, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xF491, 0, /* 0xC0 */
- 0, 0, 0xE171, 0, 0, 0, 0, 0xE67A, /* 0xC0 */
- 0, 0, 0, 0, 0xEEC2, 0, 0, 0, /* 0xD0 */
- 0xE246, 0, 0xF4C0, 0, 0xE1FE, 0, 0, 0, /* 0xD0 */
- 0xF8D2, 0, 0xF79A, 0xF6FB, 0, 0, 0xEF4F, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xEF47, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0xF1B6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_75[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE94A, 0, 0, 0xE144, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0xF3F7, 0, 0, 0, 0xEF48, 0, 0, /* 0x10 */
- 0xE098, 0, 0xED34, 0xF566, 0, 0, 0, 0xEAE6, /* 0x10 */
- 0, 0, 0, 0xEAA7, 0, 0xEAE7, 0xEBC1, 0, /* 0x20 */
- 0xEFC4, 0, 0, 0xE95B, 0xEFC5, 0, 0, 0, /* 0x20 */
- 0xF2A3, 0xF0A6, 0xE0A3, 0xECE9, 0, 0, 0, 0xE3FB, /* 0x30 */
- 0xF2A4, 0, 0xF2EB, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0xE344, /* 0x40 */
- 0, 0, 0, 0, 0xE1A3, 0, 0, 0xEF76, /* 0x40 */
- 0, 0xF2A5, 0, 0xE4CC, 0xE87D, 0, 0, 0, /* 0x50 */
- 0, 0xE6BA, 0, 0xF465, 0xF5E5, 0xE7EF, 0, 0, /* 0x50 */
- 0, 0, 0xF7B4, 0, 0, 0xE5D4, 0xF9CF, 0, /* 0x60 */
- 0, 0, 0xE8E3, 0, 0, 0, 0, 0xF3E1, /* 0x60 */
- 0xF146, 0, 0, 0, 0, 0xF8FE, 0xE4D7, 0, /* 0x70 */
- 0xE3B1, 0, 0xE0B1, 0, 0, 0, 0, 0xE3B2, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xE0B2, 0xF3C2, /* 0x80 */
- 0, 0, 0xF571, 0xF7B5, 0, 0, 0xEBC3, 0xEBC2, /* 0x80 */
- 0, 0xF0F7, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xEAA8, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xE0CA, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xEE49, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xF76E, 0xF7AA, 0xE099, 0, 0xF1B7, 0, 0, /* 0xB0 */
- 0xE4B8, 0xF466, 0, 0, 0xE569, 0xF255, 0xF492, 0, /* 0xB0 */
- 0, 0, 0xE042, 0, 0, 0xE94B, 0, 0xF3F8, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xF147, 0, 0, /* 0xC0 */
- 0, 0, 0xEDCA, 0, 0xF650, 0xF9DD, 0, 0, /* 0xD0 */
- 0xE573, 0xE172, 0, 0xF6D4, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xE6E5, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xE4C3, 0, 0xE736, 0, 0xF651, 0, 0, 0, /* 0xF0 */
- 0, 0, 0xE9F6, 0, 0xE1C0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_76[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEDDC, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0xEDCB, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xEBC4, 0, 0, 0, 0, 0, 0xEF40, /* 0x10 */
- 0xF540, 0xF4EA, 0xE87E, 0, 0xE6BB, 0, 0xEC41, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xE6AA, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0xE69D, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xED6F, 0, 0xE066, 0, /* 0x40 */
- 0, 0, 0xF0A8, 0, 0, 0, 0xE8FE, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xF652, 0, 0, 0xF2BB, 0, 0, 0, /* 0x60 */
- 0, 0xE59F, 0, 0, 0xEB58, 0, 0, 0, /* 0x60 */
- 0xEF49, 0, 0xF2A6, 0, 0, 0, 0, 0, /* 0x70 */
- 0xE1A4, 0, 0, 0xE596, 0xE8A1, 0xE8DC, 0xE8DD, 0, /* 0x70 */
- 0, 0, 0, 0, 0xF26C, 0, 0xE0CB, 0xF965, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xE27B, 0, /* 0x80 */
- 0xE1C1, 0, 0, 0xF8D3, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xF7AB, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xF5D4, 0, 0, 0, 0, 0xE7A9, /* 0xB0 */
- 0, 0, 0xEFDD, 0xE8CD, 0, 0, 0xE9CE, 0, /* 0xC0 */
- 0xEEC3, 0, 0xF15C, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xF7EC, 0, 0, 0, 0xE0CC, 0, /* 0xD0 */
- 0, 0, 0, 0xEB9E, 0xE538, 0, 0xF1D3, 0xE791, /* 0xD0 */
- 0, 0xF467, 0, 0xE09A, 0xE891, 0, 0, 0xE664, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xE7CD, 0, /* 0xE0 */
- 0, 0, 0xE77E, 0, 0xF451, 0, 0, 0, /* 0xF0 */
- 0xEAD3, 0, 0, 0, 0xE892, 0, 0xEC7A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_77[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEB9F, 0, 0, 0xE79A, 0, 0, 0, /* 0x00 */
- 0xF6AF, 0xE846, 0, 0xE067, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xF468, 0, /* 0x10 */
- 0xE79B, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xF86F, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0xE2EF, /* 0x30 */
- 0xE7C2, 0, 0xF362, 0, 0xED61, 0, 0, 0, /* 0x30 */
- 0xF4B7, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xF870, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0xF2EC, 0, 0, 0, 0, /* 0x50 */
- 0, 0xEC42, 0, 0xE54D, 0, 0, 0xE7CE, 0, /* 0x60 */
- 0, 0, 0, 0xF572, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xE539, 0, 0, 0, 0, 0xE1C2, 0xEEDA, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xF469, 0, 0, 0, 0, /* 0x80 */
- 0, 0xE7AA, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0xE74E, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xE93D, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xEC7B, 0xE69E, 0, 0, /* 0xA0 */
- 0xE09B, 0, 0, 0xE56A, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xF567, 0xE131, 0, 0, 0xE2BA, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xF5B8, /* 0xD0 */
- 0, 0, 0, 0xE7C3, 0xE378, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xECC5, 0xF0F8, 0, 0xF441, 0, 0, /* 0xE0 */
- 0, 0xE2BB, 0, 0, 0, 0xE4AD, 0xEF71, 0xE27C, /* 0xE0 */
- 0, 0, 0, 0xEB44 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_78[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEA73, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xE9F7, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xF442, 0xF4F6, 0xF66B, /* 0x20 */
- 0, 0, 0, 0, 0xE6FE, 0, 0, 0, /* 0x20 */
- 0, 0, 0xF76F, 0, 0xF6F2, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xE339, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0xEE6A, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xF5A6, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xE6BC, 0xE173, 0, 0, 0xEE6B, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xE9DD, 0, 0, 0, /* 0x70 */
- 0, 0xE3B3, 0, 0, 0, 0, 0, 0xF2ED, /* 0x80 */
- 0, 0, 0, 0, 0xE66E, 0xED96, 0xEBEF, 0, /* 0x80 */
- 0, 0xE9F8, 0, 0, 0, 0, 0, 0xEF5F, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xE075, 0, 0, 0, 0xE931, /* 0xA0 */
- 0, 0xEB45, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xF93C, 0xF93D, 0xE737, 0, 0, 0, /* 0xB0 */
- 0, 0xF1B8, 0, 0, 0, 0xE8B6, 0, 0, /* 0xC0 */
- 0, 0, 0xE692, 0xF4AF, 0, 0, 0xE1A5, 0, /* 0xC0 */
- 0xE893, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xE738, 0, 0, 0, 0xE174, 0, 0, 0xE3B4, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xE068, 0, 0, /* 0xF0 */
- 0, 0, 0, 0xE894 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_79[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF5A7, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xF5A8, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xEE36, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xE5EC, 0xE5F8, 0xE895, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0xECC6, 0, 0, 0, 0xEA74, 0, /* 0x30 */
- 0xEA75, 0xE3B5, 0, 0, 0, 0, 0, 0xE3B6, /* 0x40 */
- 0xE3B7, 0xF443, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xEFDE, 0, 0, 0, 0, 0, 0xF363, 0xF444, /* 0x50 */
- 0, 0, 0xF364, 0xE0E4, 0xF8D4, 0xF5E6, 0xECEA, 0, /* 0x50 */
- 0xEA76, 0, 0, 0, 0, 0xEAD4, 0, 0, /* 0x60 */
- 0xF79B, 0, 0, 0, 0, 0xF33E, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xE3B8, 0, 0, 0, 0, 0xE66F, /* 0x70 */
- 0, 0xE367, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xF931, 0xF2EE, 0xE968, /* 0x80 */
- 0, 0xEFDF, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0xEDDD, 0xF9FB, /* 0xA0 */
- 0, 0, 0xEB59, 0, 0, 0, 0xE659, 0, /* 0xA0 */
- 0, 0xE53A, 0, 0xEDCC, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xEFE0, 0, 0, 0, 0xE368, 0xF932, 0xE54E, /* 0xB0 */
- 0xEC43, 0xEA77, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xE94C, 0xE446, 0xF5D5, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xE231, 0xF5A9, 0, 0, 0xE9F9, 0, 0, /* 0xD0 */
- 0xE9FA, 0, 0, 0, 0, 0, 0, 0xF365, /* 0xD0 */
- 0, 0, 0, 0, 0xF66F, 0, 0xF46A, 0xED7B, /* 0xE0 */
- 0, 0xF493, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0xF149 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_7A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF9FC, 0, 0, 0, 0, 0xEBAA, 0, 0, /* 0x00 */
- 0xE069, 0, 0, 0xF2EF, 0, 0xF5AA, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0xF19B, 0, 0, 0xF73D, /* 0x10 */
- 0, 0xF452, 0xF653, 0, 0xE6D2, 0, 0, 0xF7A2, /* 0x10 */
- 0xF366, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0xF39C, 0, /* 0x20 */
- 0, 0xF670, 0, 0, 0, 0, 0xEFF3, 0xF453, /* 0x30 */
- 0, 0, 0, 0xE53B, 0xE043, 0xE1A6, 0, 0xE1C3, /* 0x30 */
- 0xE1DA, 0, 0, 0, 0, 0, 0xE7CF, 0, /* 0x40 */
- 0, 0xF654, 0, 0, 0, 0xF26D, 0xEEC4, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0xEC44, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xEAE2, 0xEEDB, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xEF41, 0, 0xF93E, 0, 0, 0, 0, /* 0x60 */
- 0xEDCD, 0, 0, 0, 0xF87B, 0, 0xE2BC, 0, /* 0x70 */
- 0, 0xE2E2, 0xE1F6, 0, 0, 0xF2F0, 0, 0xF54E, /* 0x70 */
- 0, 0xE55D, 0, 0, 0xF4B8, 0, 0, 0, /* 0x80 */
- 0xEFA1, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xF494, 0xF4EB, 0, 0xF367, 0, 0, /* 0x90 */
- 0xE2D7, 0, 0, 0, 0, 0, 0, 0xE2DF, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xEF50, 0xEF51, 0, 0, 0, 0xE2E3, 0xEFA2, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xE33A, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xF4C1, 0xE33B, 0, 0xE574, /* 0xC0 */
- 0, 0, 0xF2BC, 0xE731, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE7DF, /* 0xD0 */
- 0, 0xF4D7, 0, 0, 0, 0xE94D, 0, 0xE175, /* 0xD0 */
- 0xF1F1, 0, 0, 0xF3E2, 0, 0xE56B, 0, 0, /* 0xE0 */
- 0, 0, 0xEC45, 0, 0, 0xE076, 0, 0xE4AE, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xE176, 0, /* 0xF0 */
- 0, 0xF3D3, 0xF5E7, 0, 0, 0, 0, 0xE06A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_7B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF8EE, /* 0x00 */
- 0, 0xEBC5, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xEAE9, 0, 0xF26E, 0, 0, 0xF6C2, 0, /* 0x10 */
- 0xE732, 0, 0, 0, 0, 0, 0xE9AC, 0, /* 0x20 */
- 0, 0, 0, 0, 0xF33F, 0xE64D, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xEBAB, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xF7B6, 0, /* 0x40 */
- 0, 0xE597, 0, 0xE359, 0xF2A7, 0xEC7C, 0, 0xE8EA, /* 0x40 */
- 0xE25C, 0xF5E8, 0xF6D5, 0, 0xE4CD, 0, 0xF4FE, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xE345, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xEBA0, 0, 0xEAFB, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xEE6D, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xEF34, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xE0CD, /* 0x80 */
- 0, 0, 0, 0xF2A8, 0, 0, 0, 0xF244, /* 0x80 */
- 0, 0, 0, 0, 0xE868, 0xE3B9, 0, 0xEAA9, /* 0x90 */
- 0, 0, 0xF4B0, 0, 0, 0xE154, 0, 0, /* 0x90 */
- 0, 0xE247, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0xF2A9, 0, 0, /* 0xA0 */
- 0, 0xEAD5, 0, 0, 0xF1D7, 0, 0, 0, /* 0xB0 */
- 0xF256, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xF2BD, 0xF966, 0, 0, 0xE8F4, 0, 0xF2AA, 0xF749, /* 0xC0 */
- 0, 0xF5E9, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xECD9, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xEBC6, 0, 0, 0, 0xE54F, 0, 0, 0, /* 0xE0 */
- 0, 0xEA78 /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_7C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF37A, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xF4C2, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xE4AF, 0, /* 0x10 */
- 0, 0xE06B, 0, 0, 0, 0, 0, 0xF967, /* 0x20 */
- 0, 0, 0xF1D8, 0xEBC7, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xF568, 0xE643, 0xE9AD, /* 0x30 */
- 0, 0, 0, 0xE5BE, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xF3C3, 0xF26F, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xE67B, 0, 0, 0, 0xF569, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xE6E6, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xE847, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0xE9FB, 0, 0, 0, 0, /* 0x80 */
- 0, 0xE9CF, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xE733, 0, 0, 0xE869, 0, 0xF368, /* 0x90 */
- 0xF2C4, 0, 0, 0, 0, 0, 0, 0xEBD8, /* 0x90 */
- 0, 0, 0, 0, 0, 0xF3D4, 0, 0xF1F2, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xE5DB, 0, /* 0xA0 */
- 0, 0xE5DC, 0xF4C4, 0xE0D7, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xEC46, 0, 0, 0, 0, 0xF2F1, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xF8D5, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xE4D8, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xE9D0, 0xF369, /* 0xD0 */
- 0xE0B3, 0, 0, 0, 0, 0, 0, 0xE5DD, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0xE1A7, 0, 0, 0xE33C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_7D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE3BA, 0, 0xF3C4, 0, 0xEDB3, 0xF8F5, 0xEFE1, 0xF9E0, /* 0x00 */
- 0xF94C, 0, 0xE832, 0xE833, 0, 0xE431, 0, 0, /* 0x00 */
- 0xE491, 0, 0, 0, 0xEC7D, 0, 0, 0xEA79, /* 0x10 */
- 0xE26C, 0xF445, 0xE374, 0xE9D1, 0, 0, 0, 0, /* 0x10 */
- 0xEBC8, 0xE8B7, 0xEAE3, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xF1B9, 0xF3C5, 0, 0xF4CF, 0xE6AB, /* 0x20 */
- 0xEBAC, 0, 0, 0xECEB, 0, 0xF257, 0, 0, /* 0x30 */
- 0, 0xEBC9, 0xE09C, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0xF39D, 0xF871, 0xF36A, 0xE177, 0xE896, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xE14F, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xE27D, 0, /* 0x50 */
- 0, 0xE5A9, 0xF872, 0, 0, 0, 0xE375, 0, /* 0x60 */
- 0xF0D6, 0, 0xF16F, 0, 0, 0, 0xEAFC, 0, /* 0x60 */
- 0, 0xF6D6, 0xEA7A, 0xE0B4, 0, 0, 0xF2BE, 0, /* 0x70 */
- 0, 0xE145, 0, 0, 0, 0, 0, 0xE2BD, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xF2F2, 0xEC47, /* 0x80 */
- 0, 0, 0, 0xE178, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xF39E, 0, 0, 0, /* 0x90 */
- 0xE670, 0, 0xF3C6, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xEC48, 0xF0AB, 0, 0, /* 0xA0 */
- 0, 0xE0B5, 0xE761, 0, 0xF55E, 0xF4F7, 0, 0, /* 0xB0 */
- 0xE6C6, 0, 0xE3BB, 0xF6AA, 0, 0xF1CA, 0xE6D3, 0xE79C, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xF655, /* 0xC0 */
- 0, 0, 0xE3CC, 0xE9FC, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xEAFD, 0, /* 0xD0 */
- 0xF7E5, 0, 0xEB5A, 0, 0, 0xF49F, 0xE4B0, 0, /* 0xD0 */
- 0xF595, 0xE859, 0, 0xEE6E, 0, 0, 0, 0, /* 0xE0 */
- 0xF74A, 0xEF60, 0, 0, 0xE79D, 0, 0, 0xF065, /* 0xE0 */
- 0, 0, 0, 0, 0xE633, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0xF656 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_7E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF46B, 0xED9E, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0xEF42, 0, 0, /* 0x10 */
- 0, 0, 0, 0xE86A, 0, 0xF46C, 0xF8D6, 0xEFB2, /* 0x10 */
- 0, 0xF23D, 0, 0xF873, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xE97E, 0, 0, 0xF5EA, 0xEE70, /* 0x20 */
- 0, 0xF39F, 0, 0, 0, 0, 0, 0xE6AC, /* 0x30 */
- 0, 0, 0, 0, 0, 0xF5C5, 0xF270, 0, /* 0x30 */
- 0, 0xE8E5, 0, 0xE9DE, 0, 0, 0xE7F0, 0xEFA3, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xF3F9, 0, 0xF454, 0xEB5B, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xEFA4, 0, /* 0x50 */
- 0, 0xEC49, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xECB1, 0xF97B, 0xE1A8, 0, 0xE146, 0, 0, /* 0x60 */
- 0xF36B, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xEE4A, 0, 0, 0xE1A9, 0, 0, 0, /* 0x70 */
- 0, 0, 0xF4C3, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0xEBD9, 0, 0, 0xF2AB, /* 0x80 */
- 0, 0, 0, 0xEEC5, 0, 0, 0xEB79, 0, /* 0x90 */
- 0xF4C5, 0, 0, 0xE550, 0xE5BF /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_7F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE9AE, 0, /* 0x30 */
- 0xF7FC, 0, 0xE150, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xEDA2, 0, 0, 0, /* 0x40 */
- 0xE248, 0, 0, 0, 0xE762, 0xF7D6, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xF3AA, 0xE261, 0, 0, 0xF657, 0, /* 0x60 */
- 0xE8EB, 0, 0xEAFE, 0, 0, 0xE771, 0, 0xF6F3, /* 0x70 */
- 0, 0xE6E7, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xE5A0, 0, 0, /* 0x80 */
- 0xE3BC, 0, 0xEDCF, 0, 0xE0B6, 0, 0xE848, 0, /* 0x80 */
- 0, 0, 0, 0, 0xE1C4, 0, 0, 0, /* 0x90 */
- 0, 0, 0xE64E, 0, 0, 0, 0xEC4A, 0, /* 0x90 */
- 0, 0, 0, 0, 0xE2D8, 0, 0, 0, /* 0xA0 */
- 0xEB5C, 0xF0F9, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xF9FD, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xE6E8, 0xE0D8, 0, 0, 0, 0xEFE2, 0, 0, /* 0xB0 */
- 0, 0xEF4A, 0, 0, 0, 0xECC7, 0, 0, /* 0xC0 */
- 0, 0, 0xF15D, 0, 0xF15E, 0, 0xE64F, 0, /* 0xC0 */
- 0, 0, 0xECA7, 0, 0xEAD6, 0xF9E8, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0xF271, /* 0xD0 */
- 0xF638, 0xE9FD, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0xF74B, 0, 0xEF61, 0, 0, 0, 0, /* 0xE0 */
- 0xF7D7, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xE27E, 0, 0, 0xF15F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_80[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEFA5, 0xE665, 0, 0xE1C5, 0, 0xF1BA, 0xE3BD, 0, /* 0x00 */
- 0, 0xE2BE, 0, 0, 0xF14B, 0, 0, 0, /* 0x00 */
- 0xE441, 0, 0, 0, 0, 0xE179, 0, 0xE7C4, /* 0x10 */
- 0xEFFC, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xE3BE, 0, 0, /* 0x20 */
- 0, 0, 0, 0xF14C, 0, 0, 0xEDAD, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xF6B0, 0, 0xE17A, /* 0x30 */
- 0, 0, 0, 0xE4C4, 0, 0, 0xE650, 0, /* 0x40 */
- 0, 0, 0xE69F, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0xEBA1, 0, /* 0x50 */
- 0xEA4D, 0, 0xF639, 0, 0, 0, 0xE834, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0xE634, /* 0x60 */
- 0xF5C6, 0, 0xEBA2, 0xEFC6, 0, 0, 0, 0xF455, /* 0x70 */
- 0, 0, 0, 0, 0, 0xF579, 0xE67C, 0xF0D3, /* 0x70 */
- 0, 0, 0, 0, 0xF14D, 0xEC6C, 0xEA7B, 0xF36C, /* 0x80 */
- 0, 0xF0BF, 0, 0xE6CE, 0xE3BF, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xF5AB, 0, /* 0x90 */
- 0, 0, 0, 0xF7FD, 0, 0xE06C, 0, 0, /* 0x90 */
- 0, 0xE1C6, 0xF446, 0, 0, 0xE9FE, 0, 0, /* 0xA0 */
- 0, 0xE147, 0xE8B8, 0, 0, 0, 0, 0xE379, /* 0xA0 */
- 0, 0xE26D, 0xF0C0, 0, 0xF9A2, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xF75B, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xF066, 0xF3B0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xE8CE, 0, 0xF6C3, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xE8CF, 0xE0A4, 0, 0, 0xF770, 0, /* 0xD0 */
- 0, 0xF8D7, 0, 0, 0xF0CA, 0xEB31, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0xE25D, 0, 0, 0xE56C, 0, 0, 0, /* 0xF0 */
- 0xF9D8, 0, 0, 0, 0, 0xE498 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_81[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF447, 0, 0, 0xF898, 0xF63A, 0xF899, /* 0x00 */
- 0xE776, 0, 0xF541, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xEF62, 0, 0xE055, 0xE17B, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xEC7E, 0, 0, 0, 0, /* 0x20 */
- 0, 0xEC4B, 0, 0xF6AD, 0, 0, 0, 0xF771, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xF4EC, 0, 0, 0, 0, 0xEA31, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xED9F, 0, 0, 0xECEC, 0, /* 0x40 */
- 0xE9AF, 0xE9B0, 0, 0, 0xE0B7, 0xEF63, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xEBA3, 0xE470, 0, /* 0x60 */
- 0, 0, 0, 0xF3A0, 0, 0, 0, 0, /* 0x60 */
- 0xEFA6, 0xE0F2, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xF1F3, 0xE969, 0xEB5D, 0, 0, 0, 0, 0xF6DA, /* 0x70 */
- 0xE8B9, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xE13E, 0, 0xE86B, 0, 0, 0, 0, 0xE1C7, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xE9B1, 0, 0xE73F, 0xECA3, 0, 0, /* 0x90 */
- 0xE291, 0, 0, 0xF495, 0, 0, 0, 0, /* 0xA0 */
- 0xF743, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xEB5E, 0, 0xF5FD, 0, 0, /* 0xB0 */
- 0, 0, 0xF0EC, 0, 0, 0xE4C5, 0xF97C, 0xE46B, /* 0xB0 */
- 0xE57B, 0, 0xEA32, 0, 0, 0, 0xEDE6, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xF340, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xE5C4, 0, 0, 0, 0, 0, 0, 0xF1F4, /* 0xD0 */
- 0, 0, 0, 0xECED, 0, 0xEF52, 0, 0xF1F5, /* 0xE0 */
- 0xE6FC, 0, 0xF1BB, 0, 0, 0xF63B, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xF448, 0xF658, 0, 0, 0, /* 0xF0 */
- 0, 0, 0xE4E6, 0xF46D, 0xE2BF, 0, 0xF0AC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_82[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE2C0, 0, 0xEE38, /* 0x00 */
- 0xF9E9, 0, 0xE2C1, 0, 0xEB6F, 0xEA7C, 0, 0, /* 0x00 */
- 0, 0, 0xEB32, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xF54F, 0xEC91, 0, 0xE7F1, 0xF3C7, /* 0x10 */
- 0, 0xE0B8, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xF7FE, 0xE8BA, 0xE897, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xF67C, 0xE86C, 0xF874, /* 0x30 */
- 0, 0xEB5F, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xE9B2, 0, 0, 0, 0, 0xEE39, 0, 0xF2F3, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xF4ED, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0xF0FA, 0, 0xF7E6, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0xE06D, 0xE5DE, /* 0x60 */
- 0, 0xE06E, 0xEAE4, 0, 0, 0, 0xEE9F, 0, /* 0x70 */
- 0xF5AC, 0, 0, 0, 0, 0, 0xED97, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xEFE3, 0, 0xF1CB, 0xE2E4, 0, /* 0x80 */
- 0, 0, 0xE763, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xE9B3, 0xE57C, 0, 0, 0xF449, 0, 0xEAB7, /* 0x90 */
- 0, 0, 0, 0, 0, 0xE0CE, 0xF8D8, 0, /* 0xA0 */
- 0, 0xE369, 0, 0, 0xE9D2, 0xF6F4, 0xEEDC, 0xED35, /* 0xA0 */
- 0, 0xF933, 0, 0xE8BB, 0, 0, 0, 0xF44A, /* 0xB0 */
- 0xEFFD, 0xE35A, 0, 0xF5D6, 0xE7C5, 0xED44, 0, 0xF1A7, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xF04D, 0xEEA0, 0, 0xF6C4, 0xF5AD, 0, 0xE7E0, /* 0xD0 */
- 0, 0, 0, 0xE044, 0, 0, 0xF772, 0xE2C2, /* 0xD0 */
- 0, 0xF14E, 0, 0, 0, 0xEDB4, 0xE1C8, 0xF258, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0xEEC8, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0xE1C9, 0xF7B7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_83[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF3E8, 0xE7F2, 0xE8F5, 0xE045, 0xE7C6, 0, 0, /* 0x00 */
- 0, 0xE759, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0xE7AB, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xF1BC, 0, 0, 0xE764, 0, 0, 0, 0xE96A, /* 0x20 */
- 0, 0xEC4C, 0, 0, 0xF97D, 0xF170, 0xE4A0, 0, /* 0x30 */
- 0xEFC7, 0xEE3A, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xEC92, 0, 0, 0, 0, 0, 0, 0xF84B, /* 0x40 */
- 0, 0xF5AE, 0xF8AA, 0, 0, 0, 0, 0xF19D, /* 0x40 */
- 0, 0xF14F, 0xF968, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xE575, 0, 0, 0, 0xF7C3, /* 0x70 */
- 0, 0, 0, 0xF272, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xE6E9, 0xF1F6, 0, 0, 0, 0xEA7D, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xE17C, 0, /* 0x90 */
- 0xECEE, 0, 0, 0, 0, 0, 0xEF64, 0, /* 0x90 */
- 0, 0, 0xF89A, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xE9B4, 0xED45, 0xE740, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xE765, 0, 0, /* 0xB0 */
- 0, 0xF57A, 0, 0, 0, 0xE249, 0, 0, /* 0xC0 */
- 0, 0xE671, 0xE2D2, 0, 0xE346, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xE232, 0, 0, 0xF4EE, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xF4F8, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0xE95C, 0, 0xE35B, 0, 0, 0, 0xF934, /* 0xE0 */
- 0xE1CA, 0xE6D4, 0xEA33, 0, 0xED70, 0, 0, 0, /* 0xF0 */
- 0, 0xF259, 0, 0, 0, 0xEC6D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_84[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF5FE, 0xE53C, 0, 0, 0, /* 0x00 */
- 0, 0, 0xE5D1, 0, 0xE792, 0xF753, 0xF067, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xF5D7, 0, 0, 0xE74F, 0, 0, 0, /* 0x20 */
- 0, 0xF9C0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xF0AD, 0, 0, 0, 0, 0xE5AA, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xEEA8, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0xF25A, /* 0x50 */
- 0, 0, 0, 0xE077, 0, 0, 0, 0, /* 0x50 */
- 0, 0xF773, 0, 0xE56D, 0, 0, 0xF068, 0, /* 0x60 */
- 0, 0, 0, 0xF8D9, 0xF1F7, 0, 0, 0xEDB5, /* 0x60 */
- 0, 0, 0, 0, 0, 0xE33D, 0, 0, /* 0x70 */
- 0, 0, 0xF3F1, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xEC4D, 0, 0, 0, 0xECC8, 0, 0, 0, /* 0x90 */
- 0, 0xE7D5, 0, 0, 0xEAAA, 0, 0, 0, /* 0x90 */
- 0, 0xE8BC, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xF774, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xF3FA, 0, 0, 0xEDB6, 0xF4EF, 0, 0, 0xF8DA, /* 0xB0 */
- 0xEBE0, 0, 0xE7AC, 0, 0xF5EB, 0, 0xEB46, 0, /* 0xC0 */
- 0, 0xEFC8, 0, 0xE0CF, 0, 0xECC9, 0, 0, /* 0xC0 */
- 0, 0xEA7E, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xEC4E, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xE991, 0, 0xE635, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xEC93, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0xE6A0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_85[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE7A1, 0, 0xE750, 0xE96B, 0, 0, 0xF1BD, /* 0x10 */
- 0xEAB8, 0, 0xF035, 0, 0, 0, 0xE6AD, 0, /* 0x10 */
- 0, 0xF4F9, 0, 0xF1F8, 0, 0xF5C7, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xEBCA, 0xF0E3, 0, 0xF46E, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xF75C, 0, 0xF069, /* 0x30 */
- 0, 0xE4C6, 0, 0xE8E6, 0, 0, 0, 0, /* 0x40 */
- 0, 0xF5AF, 0, 0, 0, 0, 0xE292, 0, /* 0x40 */
- 0, 0, 0, 0xEFFE, 0, 0, 0, 0, /* 0x50 */
- 0, 0xF8B6, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0xEC94, 0, 0, 0, 0, /* 0x60 */
- 0xE2F2, 0xF6B9, 0xE7F3, 0, 0, 0xEBCB, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xE86D, 0, 0, 0xE849, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0xF0FB, /* 0x80 */
- 0, 0xE0B9, 0, 0, 0xF1F9, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xEB70, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0xF550, 0, /* 0xA0 */
- 0xF9BC, 0xEAB1, 0xECEF, 0, 0, 0, 0, 0xEB33, /* 0xA0 */
- 0xF9B9, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xF341, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xE1CB, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xF1BE, 0, 0, 0, 0xE5C0, 0xECF0, 0xF1FA, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xEFE4, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xE5ED, 0xEEDD, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xE598, 0xEDB7, 0, 0, /* 0xE0 */
- 0, 0xE8E7, 0xEC4F, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0xF25B, /* 0xF0 */
- 0, 0, 0xE6F4, 0xF36D, 0, 0, 0, 0xE23B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_86[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEEDE, 0, 0, 0, 0xE666, 0xEBCC, /* 0x00 */
- 0, 0, 0xEF43, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xEDEE, 0xE932, /* 0x10 */
- 0, 0, 0xEB60, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xE5B5, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0xE5A1, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0xF8DB, 0, /* 0x40 */
- 0xF7CB, 0, 0, 0, 0xE0F3, 0xF535, 0, 0, /* 0x50 */
- 0, 0, 0, 0xF858, 0xE667, 0, 0xEFE5, 0xF8DC, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xF9D0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xF8F6, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xE835, 0, 0xE8BD, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xF172, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xE1F7, 0xF36E, 0, 0, 0, /* 0xA0 */
- 0, 0xF659, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xEA91, /* 0xC0 */
- 0, 0, 0, 0xE4B1, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xF97E, 0, 0, 0, /* 0xD0 */
- 0, 0xEF53, 0, 0xF3C8, 0, 0, 0, 0xE293, /* 0xD0 */
- 0, 0, 0, 0, 0xF7ED, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xF496, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0xED46 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_87[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF5B9, 0, 0xE992, 0xECF1, 0, 0, 0, 0, /* 0x00 */
- 0xEF35, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xF44B, 0, 0xEA34, 0, 0xE85C, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0xE079, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xECDA, 0, 0xF969, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xF06A, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xF7C4, 0, /* 0x60 */
- 0xECA4, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xF8DD, 0, 0xF2CA, 0, /* 0x70 */
- 0xEF54, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xE5CC, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xF0D7, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xE7AD, /* 0x90 */
- 0, 0, 0xF8AB, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xE4D9, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xE5A2, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xF66E, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xE898, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xEB61, 0, 0, 0xEFA8, /* 0xE0 */
- 0, 0, 0xF5F9, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xF83F, 0, 0xF0FC, 0, 0, 0xEB7A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_88[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xECB2, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xE5C5, /* 0x10 */
- 0, 0, 0xF3E3, 0xE5EE, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xE1CC, 0, 0, 0, 0, 0xF1D9, 0, /* 0x30 */
- 0, 0, 0, 0xE751, 0, 0, 0, 0, /* 0x30 */
- 0xF87C, 0, 0, 0, 0, 0, 0xF3EB, 0, /* 0x40 */
- 0, 0, 0, 0, 0xF84C, 0xEE72, 0, 0, /* 0x40 */
- 0, 0, 0xF875, 0xEC9C, 0, 0, 0, 0xE046, /* 0x50 */
- 0, 0xED47, 0, 0xF06B, 0, 0xF5FA, 0, 0, /* 0x50 */
- 0, 0xF8AC, 0xE2C3, 0xF0FD, 0, 0, 0, 0, /* 0x60 */
- 0xF79C, 0, 0, 0xEAB9, 0, 0, 0, 0, /* 0x60 */
- 0xEBF1, 0, 0xE434, 0, 0, 0, 0, 0xF5FB, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xE36A, 0xE36B, /* 0x70 */
- 0, 0xF04E, 0xE7B1, 0, 0, 0, 0, 0, /* 0x80 */
- 0xE047, 0, 0, 0xE4E7, 0, 0xF775, 0, 0, /* 0x80 */
- 0, 0, 0xE4B2, 0, 0, 0, 0xEC50, 0xF46F, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0xE1E5, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xF7AC, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xE1CD, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xF23E, 0xE63E, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE6EA, /* 0xC0 */
- 0, 0, 0, 0, 0xEEE0, 0xF0AE, 0, 0, /* 0xD0 */
- 0, 0xE2D9, 0, 0, 0xE95D, 0xF1FB, 0, 0xEA92, /* 0xD0 */
- 0, 0xE6EB, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xEA35, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xEAD7, 0xE8D0, 0xE8D1, 0, 0, /* 0xF0 */
- 0xE5A3, 0, 0, 0, 0, 0xF342 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_89[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE96C, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0xE078, 0, 0xF776, 0xE95E, 0, 0, 0, 0, /* 0x10 */
- 0xF06C, 0xE8D2, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xEFB3, 0, 0, /* 0x20 */
- 0, 0, 0xF6DB, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0xECA8, 0, /* 0x30 */
- 0xE6AE, 0, 0, 0xEB71, 0, 0, 0, 0, /* 0x30 */
- 0, 0xE0BA, 0, 0, 0xEDD1, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xE36C, /* 0x50 */
- 0, 0, 0, 0, 0xE5C1, 0, 0, 0, /* 0x60 */
- 0, 0, 0xE75A, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xECA9, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xEB34, /* 0x70 */
- 0, 0xEFA9, 0, 0xE4C7, 0, 0, 0xE96D, 0xF73E, /* 0x80 */
- 0, 0, 0, 0xE148, 0, 0, 0, 0xE33E, /* 0x80 */
- 0, 0, 0, 0xE794, 0, 0, 0xECCA, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xE13F, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xE53D, 0xF661, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xE35C, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xE056, 0, 0, 0xE5C2, 0, 0, /* 0xB0 */
- 0xE24A, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xE057, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xF840, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xEAD8, 0, 0, 0, /* 0xF0 */
- 0xF5BA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_8A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEDEB, 0, 0xF2F4, 0xE9B5, 0, 0, 0, 0, /* 0x00 */
- 0xE1AA, 0, 0xECF2, 0, 0xF8F7, 0, 0xF6D0, 0, /* 0x00 */
- 0, 0, 0, 0xF9BA, 0, 0, 0xF9E1, 0xF6A0, /* 0x10 */
- 0xE3C0, 0, 0, 0xEF55, 0, 0xED48, 0, 0xEBE8, /* 0x10 */
- 0, 0, 0, 0xE151, 0, 0xE47D, 0, 0, /* 0x20 */
- 0, 0, 0xE8BE, 0, 0, 0xEB72, 0, 0, /* 0x20 */
- 0, 0xF859, 0, 0, 0xEBCD, 0, 0xE048, 0, /* 0x30 */
- 0, 0, 0xF470, 0xF3C9, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xEA93, 0, 0, 0, 0xF36F, 0xF754, 0, 0, /* 0x50 */
- 0, 0, 0, 0xF25C, 0, 0, 0xEA94, 0, /* 0x50 */
- 0xEEC9, 0, 0xEC95, 0xEEE1, 0, 0, 0xECCB, 0, /* 0x60 */
- 0, 0xECCC, 0, 0, 0, 0xE2F8, 0xF2AC, 0, /* 0x60 */
- 0xF9FE, 0xF935, 0xF841, 0xEAD9, 0, 0xEB62, 0, 0, /* 0x70 */
- 0, 0xF56A, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xF3CA, 0, 0xE233, /* 0x80 */
- 0, 0, 0, 0, 0xF44C, 0xF173, 0, 0, /* 0x80 */
- 0, 0, 0, 0xEB35, 0, 0xF6AB, 0, 0, /* 0x90 */
- 0xF0AF, 0, 0, 0, 0, 0, 0xEDDE, 0, /* 0x90 */
- 0xEBA4, 0xE1AB, 0, 0xE7F4, 0xEF36, 0xE1CE, 0xEBE9, 0, /* 0xA0 */
- 0xF991, 0, 0xEB73, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xEC51, 0, 0xE234, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xEA36, 0, 0, 0xF0FE, 0, 0xF0DD, 0xF370, /* 0xB0 */
- 0, 0, 0xF56B, 0, 0xEC96, 0, 0, 0xE4C8, /* 0xC0 */
- 0, 0, 0, 0xF57B, 0, 0xF245, 0, 0xF5D8, /* 0xC0 */
- 0, 0, 0xE5DF, 0, 0, 0, 0xE675, 0, /* 0xD0 */
- 0, 0, 0, 0xF0B0, 0xF573, 0, 0, 0, /* 0xD0 */
- 0, 0xECCD, 0, 0, 0, 0, 0xF596, 0xF842, /* 0xE0 */
- 0, 0, 0xF2F5, 0xE06F, 0, 0xF0B1, 0xF1BF, 0, /* 0xE0 */
- 0, 0xF9C9, 0, 0, 0, 0, 0xED36, 0xF7A4, /* 0xF0 */
- 0xF343, 0, 0xEDEC, 0, 0, 0, 0xE3E7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_8B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE7C7, 0xED67, 0xF06D, 0, 0xE599, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xE84A, 0, /* 0x00 */
- 0xE85D, 0, 0, 0, 0xF7CC, 0, 0xEBDA, 0xE8BF, /* 0x10 */
- 0, 0xE155, 0xF160, 0xE0BB, 0, 0xEA95, 0, 0, /* 0x10 */
- 0xEFAA, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xE7C8, 0, 0, 0xF273, 0xE6BD, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xE2C4, 0, 0, 0, 0, /* 0x30 */
- 0, 0xE35D, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xF936, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xF3FB, 0, 0, 0, 0, 0xF9D2, 0xE3C1, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xECDB, 0, 0xE4C9, 0, 0xE95F, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xE17D, 0, /* 0x60 */
- 0, 0, 0, 0, 0xEA37, 0, 0, 0xEE4B, /* 0x60 */
- 0xF131, 0, 0, 0, 0xE149, 0, 0, 0xF8DE, /* 0x70 */
- 0, 0, 0, 0, 0, 0xEEE2, 0, 0, /* 0x70 */
- 0xE551, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xE938, 0, 0, 0, 0, 0, /* 0x80 */
- 0xEC52, 0, 0xF4D8, 0xEDD3, 0, 0, 0xF4D9, 0, /* 0x90 */
- 0, 0, 0xF4C6 /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_8C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE1DB, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0xE1AC, /* 0x30 */
- 0, 0xF953, 0, 0, 0, 0, 0xE577, 0, /* 0x40 */
- 0xE3C2, 0, 0xF7A5, 0, 0xEF65, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xECCE, 0, 0, /* 0x50 */
- 0, 0, 0xE55A, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xEADA, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xF8DF, 0xEEE3, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xF79D, 0xECCF, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xF5B0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xE777, 0, 0xE7C9, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xF73F, 0xF2F6, 0, /* 0x90 */
- 0xE9B6, 0xF23F, 0xE1F8, 0, 0, 0, 0, 0xEA48, /* 0xA0 */
- 0xF937, 0xF6FC, 0xF6B1, 0xE24B, 0xF531, 0, 0, 0xF25D, /* 0xA0 */
- 0xEBAE, 0, 0, 0xF153, 0xE2FE, 0, 0xF74F, 0xE772, /* 0xB0 */
- 0xE4E8, 0, 0, 0xEA38, 0xF574, 0xF152, 0, 0xE7F5, /* 0xB0 */
- 0xF7C5, 0xE9D3, 0xE693, 0xF19E, 0xF992, 0, 0, 0xF1C0, /* 0xC0 */
- 0xE049, 0, 0xF274, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xF471, 0, 0xEA49, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xE694, 0, 0xEA96, 0, 0xEADB, 0, /* 0xD0 */
- 0xE8D3, 0, 0xF877, 0xE773, 0xF551, 0, 0xE9B7, 0, /* 0xE0 */
- 0, 0, 0xF497, 0, 0, 0xE53E, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xE695, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0xE9B8, 0xE2C5, 0xEADF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_8D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF44E, 0xF631, 0, 0xF0CB, /* 0x00 */
- 0xF3FC, 0, 0xF4C7, 0, 0, 0xEB7B, 0, 0, /* 0x00 */
- 0, 0, 0, 0xF1FC, 0, 0, 0xEBDB, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0xF275, 0, 0xEA97, 0, /* 0x60 */
- 0, 0, 0, 0xF863, 0, 0, 0, 0, /* 0x60 */
- 0xF3CB, 0, 0, 0xE33F, 0xE9B9, 0, 0, 0xE3C3, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xF5B1, 0, 0, /* 0x80 */
- 0, 0, 0xF056, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xF371, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xF63C, 0, 0, 0, 0, /* 0xA0 */
- 0xF5D9, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xF37B, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xE9BA, 0, 0, 0, 0xF44F, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xF6C5, 0, /* 0xC0 */
- 0, 0, 0, 0xE8A2, 0xF498, 0, 0, 0xE04A, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xF6F5, 0, 0xE0E5, 0, 0, /* 0xD0 */
- 0, 0xF276, 0, 0xEB63, 0, 0, 0, 0, /* 0xE0 */
- 0xE235, 0, 0, 0, 0, 0, 0, 0xE668, /* 0xE0 */
- 0, 0, 0, 0xE53F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_8E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEFC9, 0, 0, 0, 0, 0xE4CE, /* 0x00 */
- 0xF552, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xE0E6, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xF3A1, 0, 0, 0, 0, 0, /* 0x20 */
- 0xF0B2, 0, 0, 0, 0, 0xF3A2, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0xF0B3, 0, 0xF344, 0, 0, 0xE0F4, /* 0x40 */
- 0xE540, 0xF4B2, 0xF8B7, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xF5EC, 0, 0, 0, 0, 0, 0xF277, /* 0x50 */
- 0xF542, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xF5ED, 0, 0xE2F3, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xF372, 0, 0, 0, 0, 0, 0xF25E, /* 0x80 */
- 0, 0, 0xF3CC, 0, 0, 0xEDB8, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xE6F5, 0xECF3, 0xE2E5, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xE2C6, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xF4B3, 0xED68, 0xE2F9, 0xE2DA, 0, 0, /* 0xC0 */
- 0, 0, 0xF85D, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0xEE73, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xF472, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0xF5EE, 0, 0, 0xE04B, 0, 0, 0xECDC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_8F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE294, 0, 0xE669, 0, 0, /* 0x00 */
- 0, 0xF240, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xF575, 0xE752, 0xE960, 0xE17E, 0, 0, /* 0x10 */
- 0, 0, 0, 0xE5E0, 0xF65A, 0xF9CA, 0xE766, 0xF55F, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xE636, 0xE94E, /* 0x20 */
- 0, 0xE8D4, 0xE6C7, 0, 0, 0, 0, 0xF4A0, /* 0x20 */
- 0, 0, 0, 0xF3CD, 0, 0, 0, 0, /* 0x30 */
- 0xEC53, 0xE96E, 0, 0xE96F, 0, 0, 0xF2AD, 0xEE3B, /* 0x30 */
- 0, 0, 0, 0, 0xF7DD, 0xF04F, 0, 0, /* 0x40 */
- 0, 0xF2AE, 0, 0, 0, 0xF560, 0xE295, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xEE3C, 0, 0xE26E, /* 0x50 */
- 0, 0, 0xE5F9, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xECF4, 0xE1D0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xE5B8, 0, 0, 0xF6FD, 0, /* 0xA0 */
- 0xE939, 0, 0, 0, 0, 0xEA98, 0, 0xE93A, /* 0xA0 */
- 0xF473, 0xEFB4, 0xE46C, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xEFE6, 0, 0, 0xECF6, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xEECA, 0, /* 0xC0 */
- 0, 0xE35E, 0, 0, 0xE899, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xE04C, 0, /* 0xE0 */
- 0, 0, 0xF278, 0xE86E, 0, 0xF499, 0, 0, /* 0xE0 */
- 0xEC9D, 0, 0xE136, 0, 0, 0, 0, 0xE84B, /* 0xF0 */
- 0, 0xF279, 0, 0, 0, 0xF5DA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_90[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF6DC, 0xEBEA, 0xE251, 0xE541, 0, 0xF9B1, 0xEE4D, 0, /* 0x00 */
- 0xF8AD, 0, 0, 0xF777, 0, 0xEBCE, 0, 0xF6E2, /* 0x00 */
- 0xF5EF, 0xE2C7, 0, 0, 0xE542, 0xE191, 0, 0xE578, /* 0x10 */
- 0, 0xF25F, 0xF6D7, 0, 0, 0xEB36, 0xE651, 0xEBDC, /* 0x10 */
- 0xF373, 0xF3E4, 0xE993, 0xE637, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0xF597, 0, /* 0x20 */
- 0, 0xF3CE, 0xF474, 0, 0, 0xE340, 0, 0, /* 0x30 */
- 0xF191, 0, 0, 0, 0xF7BA, 0, 0xF0B5, 0, /* 0x30 */
- 0, 0xE57D, 0xEC54, 0, 0, 0, 0, 0xEFE7, /* 0x40 */
- 0, 0, 0xF0B4, 0xF031, 0, 0xF74C, 0xE236, 0, /* 0x40 */
- 0xF7C6, 0xF96A, 0, 0xE543, 0xE4B9, 0xF06E, 0, 0, /* 0x50 */
- 0, 0xEFAB, 0, 0, 0xEBE1, 0xE4CF, 0xF598, 0, /* 0x50 */
- 0xF050, 0xEBCF, 0, 0xE14A, 0, 0, 0, 0, /* 0x60 */
- 0, 0xF27A, 0, 0, 0, 0xF374, 0xF4B4, 0xE57E, /* 0x60 */
- 0, 0, 0xF450, 0, 0, 0xF3E5, 0, 0xF553, /* 0x70 */
- 0xEB64, 0, 0xF0B6, 0, 0xE6A1, 0xE0E8, 0, 0xF7AD, /* 0x70 */
- 0xEFAD, 0xE774, 0xF843, 0xEC55, 0xF94D, 0, 0, 0xF154, /* 0x80 */
- 0xE741, 0, 0xE93B, 0, 0, 0, 0, 0xE5A4, /* 0x80 */
- 0, 0xF0E9, 0, 0, 0, 0xEF4B, 0, 0, /* 0x90 */
- 0, 0xE767, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xF8AE, 0xE3E1, 0, 0, 0xE8C0, 0, /* 0xA0 */
- 0xF5BE, 0, 0xEA99, 0, 0, 0, 0, 0xE09D, /* 0xA0 */
- 0xF6C6, 0xE2C8, 0, 0, 0, 0xEBD0, 0, 0, /* 0xB0 */
- 0xF260, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xEFF4, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xE296, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xE5CD, 0, /* 0xD0 */
- 0, 0xE2DB, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xE9BB, 0, 0, 0, 0, 0xE23C, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xEFE8, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0xE544 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_91[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xED57, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xF5DB, 0, 0, 0xF851, 0, 0, /* 0x10 */
- 0, 0xEA39, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xE59A, /* 0x20 */
- 0, 0, 0, 0, 0, 0xF2F7, 0, 0, /* 0x20 */
- 0, 0, 0xE4B3, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xF0B7, 0xF2F8, 0xF5DC, 0xF1CC, 0xE8D5, 0xF3CF, 0, /* 0x40 */
- 0, 0, 0xF3D0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0xF5B2, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xE7AE, 0xE5AC, 0, 0xEC56, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xF9A3, 0, 0xF8E5, /* 0x70 */
- 0xEAAB, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xEC97, /* 0x80 */
- 0, 0xF63D, 0, 0xF5B3, 0, 0xF345, 0, 0, /* 0x80 */
- 0, 0, 0xEBA5, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xF5DD, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xF132, 0xF1FD, 0, 0xF5B4, 0xF8B8, /* 0xA0 */
- 0, 0xE8A3, 0, 0, 0xE65A, 0xE0D9, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xEDD4, 0, 0, 0, 0, 0, 0, 0xF4FA, /* 0xC0 */
- 0, 0xF0B8, 0, 0xEB47, 0xE6EC, 0xF3EC, 0xEDAF, 0xE5E1, /* 0xC0 */
- 0xE6ED, 0xE3D1, 0, 0, 0, 0, 0, 0xEBF2, /* 0xD0 */
- 0xF2F9, 0, 0, 0, 0xE9BC, 0xF66C, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xF375, 0, 0, 0, 0xF554, /* 0xE0 */
- 0, 0, 0xEFE9, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xF4FB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_92[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE591, 0, 0, /* 0x00 */
- 0xE132, 0xF6FE, 0xEABC, 0, 0, 0, 0, 0xF0CD, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xE347, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xE652, 0, 0, 0, /* 0x30 */
- 0, 0, 0xEF3D, 0, 0, 0, 0, 0xF2AF, /* 0x30 */
- 0xE0A5, 0, 0, 0, 0, 0xE0E9, 0, 0, /* 0x40 */
- 0, 0xF878, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0xE156, /* 0x50 */
- 0, 0, 0, 0xEE77, 0, 0, 0xF057, 0, /* 0x50 */
- 0, 0, 0xE8A4, 0, 0xE2C9, 0xEC9E, 0xF2FA, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xF0DE, 0, 0, 0xF5C8, 0, 0xE56E, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xEB65, 0, 0xF2B0, 0, 0, 0xEC57, 0, /* 0x90 */
- 0xE7AF, 0, 0, 0, 0xF7E7, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xEEE5, 0, 0, 0xE2CA, 0xEBD1, /* 0xB0 */
- 0, 0xEC58, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xF2FB, 0, 0, 0xF89B, /* 0xC0 */
- 0, 0, 0xE994, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xEB37, 0, 0, 0, /* 0xE0 */
- 0, 0, 0xF778, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0xE0EA, 0, 0, 0, 0xE0BC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_93[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE672, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0xF5DE, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xF5DF, 0, 0xF246, 0, 0, 0, 0xEC98, 0xE4CA, /* 0x10 */
- 0xF2FC, 0xE3C4, 0xF2B1, 0, 0xE3C5, 0, 0xE36E, 0, /* 0x20 */
- 0xE7E1, 0, 0, 0xEB48, 0, 0, 0xE1D1, 0xF4B9, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xEECC, 0, 0xE638, 0xE237, 0, 0xE545, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xED58, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0xE4B4, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0xF0B9, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xE0F5, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xF66D, 0, 0xF3A3, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0xE157, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0xEFCA, 0, 0xEBF0, 0, /* 0x90 */
- 0, 0, 0xF5E0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xF8AF, 0, 0, 0, 0xE0D1, /* 0xA0 */
- 0, 0, 0, 0, 0xF8E0, 0xF475, 0, 0, /* 0xA0 */
- 0xF192, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xF37C, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xF27B, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xEFCB, 0, /* 0xD0 */
- 0, 0xE192, 0, 0, 0xE6AF, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xF4A1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_94[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF997, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xF3A4, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xEB66, 0, 0, /* 0x20 */
- 0, 0, 0, 0xF2B2, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xF561, 0, 0, /* 0x30 */
- 0xF6A1, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0xF3D1, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xE09E, 0xE09F, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0xE25E, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xF4C8, 0, 0xF4BA /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_95[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF1FE, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xE836, 0, 0, 0xEB7C, 0, 0, 0, 0, /* 0x80 */
- 0, 0xF75D, 0, 0xE0D2, 0, 0, 0, 0xF0CE, /* 0x80 */
- 0, 0xF7D8, 0xF7D9, 0xE070, 0xE85A, 0, 0, 0, /* 0x90 */
- 0xE0A6, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xE058, 0xF7EE, 0xE8EC, 0, 0, /* 0xA0 */
- 0xE341, 0, 0, 0, 0, 0xE5EF, 0, 0, /* 0xA0 */
- 0, 0xEE95, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xEEA2, 0xED69, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xED71, /* 0xC0 */
- 0, 0, 0xF954, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xF7EF, 0xE2F4, 0xF6E6, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xE24C, 0, 0, 0, /* 0xD0 */
- 0, 0xF555, 0xE933 /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_96[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE9BD, 0, 0, 0, /* 0x10 */
- 0, 0xF556, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xF731, 0, 0, 0, 0xEF66, 0, /* 0x20 */
- 0, 0, 0xE8C1, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xF376, 0, 0, 0, 0xED49, /* 0x30 */
- 0xF67D, 0, 0xF7AE, 0, 0xE9BE, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xE6B0, 0xE778, 0xE0BD, 0, 0, /* 0x40 */
- 0xF7DA, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0xF75E, 0xF7F0, 0xEB7D, 0xECB3, 0xF543, /* 0x50 */
- 0, 0, 0xF052, 0xF476, 0xF346, 0, 0, 0, /* 0x60 */
- 0, 0, 0xE8D6, 0, 0, 0, 0, 0, /* 0x60 */
- 0xF0E4, 0, 0, 0xF477, 0, 0xE6D5, 0xE546, 0xF7E8, /* 0x70 */
- 0xE6C1, 0, 0, 0, 0, 0xEDD5, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xEFEA, 0xE6CC, 0, /* 0x80 */
- 0, 0, 0xE4E9, 0xEC59, 0, 0xF96B, 0xE1AD, 0, /* 0x80 */
- 0, 0, 0, 0, 0xE140, 0xF032, 0, 0, /* 0x90 */
- 0xED98, 0xE350, 0, 0xF347, 0xF231, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xE6F6, 0, 0, 0, 0xEC5A, /* 0xA0 */
- 0xEC5B, 0, 0xF85F, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xF0DF, 0, 0, 0, 0, 0, 0xE65B, /* 0xB0 */
- 0, 0, 0, 0xF544, 0, 0, 0, 0, /* 0xB0 */
- 0xF1CD, 0xED62, 0, 0, 0xF039, 0xED4A, 0xF4A2, 0xE1D2, /* 0xC0 */
- 0, 0xF65B, 0, 0xF3E6, 0xF1C1, 0xEF4C, 0xF261, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xF377, 0xEC5C, 0, /* 0xD0 */
- 0, 0xED3A, 0, 0xF5E1, 0xF1DA, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xE6EE, 0xE3F1, 0, 0, 0, 0, /* 0xE0 */
- 0xEFEB, 0xEFEC, 0xEB74, 0, 0, 0, 0, 0xE837, /* 0xE0 */
- 0xE9D4, 0, 0xF033, 0, 0, 0, 0xE653, 0xE696, /* 0xF0 */
- 0, 0xE86F, 0, 0xF2B3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_97[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEC5D, 0, 0, 0, 0, 0, 0xF2FD, 0xF478, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0xF2C5, 0, 0xEEE7, 0, 0, 0xE6FD, 0, /* 0x10 */
- 0, 0xEECE, 0, 0, 0xEADC, 0, 0xF7C7, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xE7F6, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xEAAC, 0, 0xE66A, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xE934, 0, 0, 0, 0xF348, 0, 0, /* 0x30 */
- 0, 0, 0xE5FA, 0, 0xED99, 0, 0, 0, /* 0x40 */
- 0xE654, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xF57C, 0, 0, 0, 0, 0xF2FE, 0, /* 0x50 */
- 0, 0, 0, 0, 0xF331, 0, 0xEA3A, 0, /* 0x50 */
- 0, 0xE84C, 0xE79E, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xF864, 0, 0, 0, 0xF175, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xF938, 0, 0, 0xF176, /* 0x70 */
- 0, 0, 0xE75B, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xF8B9, 0, 0xED63, 0, 0xE1F9, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xE2D3, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xE07A, 0, 0, 0xE2D4, 0, 0xF74D, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xF557, 0, /* 0xC0 */
- 0, 0, 0, 0xF06F, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xF7DB, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xE547, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xF0E5, 0, 0, 0xEBD2, 0, /* 0xF0 */
- 0, 0, 0, 0xF034, 0, 0, 0, 0xF852 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_98[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF8E1, 0xF87D, 0xF332, 0xE193, 0, 0xF833, 0xEC99, 0, /* 0x00 */
- 0xEC5E, 0, 0xEFF5, 0, 0xEBEB, 0, 0, 0, /* 0x00 */
- 0xEEE8, 0xEF67, 0xE89A, 0xE55B, 0, 0, 0, 0xF6F6, /* 0x10 */
- 0xE655, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xE579, 0, 0, /* 0x20 */
- 0xF89C, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xE194, 0xF6DD, 0, 0xEA4A, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xE238, 0, /* 0x40 */
- 0, 0, 0, 0, 0xF349, 0xEDA0, 0xED59, 0, /* 0x40 */
- 0, 0, 0, 0, 0xED64, 0, 0, 0, /* 0x50 */
- 0xF053, 0, 0xF2B4, 0, 0, 0, 0xE6BE, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xF8E2, 0, 0xE1D3, /* 0x60 */
- 0, 0, 0, 0xF2B5, 0, 0, 0, 0xF879, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xF7A6, 0, 0, 0, 0, 0, 0, 0xEABD, /* 0xA0 */
- 0, 0xF6C7, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xF79F, 0, 0, 0xF79E, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xEA3B, 0xE8E8, 0, 0, 0xECDD, /* 0xD0 */
- 0, 0xEBE2, 0xE3C6, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xF660, 0xF0E6, 0xE89B, /* 0xE0 */
- 0, 0, 0, 0, 0xF157, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0xEA9A, 0xF779, 0xECDE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_99[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE297, 0, 0, 0, 0, /* 0x00 */
- 0, 0xF853, 0xEDD7, 0, 0xF158, 0, 0, 0, /* 0x00 */
- 0xF4C9, 0, 0, 0xED4B, 0, 0, 0, 0, /* 0x10 */
- 0xEE3E, 0, 0, 0, 0, 0, 0xF2B6, 0, /* 0x10 */
- 0xE94F, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xE24D, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xE753, 0, 0, /* 0x40 */
- 0, 0xE35F, 0, 0xE2FA, 0xF4CA, 0xEB67, 0, 0, /* 0x40 */
- 0, 0xE3C7, 0xEFAE, 0, 0xEF4D, 0, 0, 0xF854, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xEC5F, 0, /* 0x90 */
- 0, 0xF855, 0, 0, 0, 0xF7B8, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xE970, 0, 0, /* 0xA0 */
- 0xF8B0, 0, 0, 0, 0xE739, 0xEDDF, 0xF7A7, 0, /* 0xA0 */
- 0, 0xF67E, 0, 0xF65C, 0xEC9A, 0, 0, 0, /* 0xB0 */
- 0, 0xF193, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xE870, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xF3D2, 0xE45C, 0xE2CB, 0, 0, 0xE04D, 0, 0, /* 0xD0 */
- 0, 0xE9BF, 0, 0, 0, 0xF691, 0, 0xEA9B, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xF844, 0, 0, /* 0xE0 */
- 0, 0xE5AD, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0, 0xF3E7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_9A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEA4E, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0xE950, 0, 0, 0, 0, 0, 0xE3C8, 0xE3C9, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xF74E, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xE0F6, 0, 0, 0, 0, /* 0x20 */
- 0xE59B, 0, 0, 0, 0, 0, 0xF5E2, 0xEBD3, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xE779, 0, 0, 0xF7A0, 0, 0xE2CC, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xF9A4, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xE298, 0, 0xF860, /* 0x50 */
- 0, 0, 0xE195, 0xEE4E, 0, 0, 0, 0xF63E, /* 0x50 */
- 0, 0, 0xE5F0, 0, 0, 0xE3CA, 0, 0, /* 0x60 */
- 0, 0xF94E, 0xE5F1, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xE1E9, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xF845, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xEC60, 0xF599, 0, 0, 0, /* 0xD0 */
- 0xE1D4, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xEEA3, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xE8A5 /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_9B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEC61, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xE6A2, /* 0x20 */
- 0, 0, 0xF6E3, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xF036, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0xE331, 0, 0, 0, /* 0x30 */
- 0, 0xE26A, 0xF8EB, 0xE8A6, 0xE8DE, 0xE775, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0xF070, /* 0x40 */
- 0, 0, 0, 0, 0xE73A, 0, 0, 0, /* 0x50 */
- 0, 0, 0xEDE0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0xE66B, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xF2C6, 0, /* 0x80 */
- 0, 0xF77A, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xED65, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xE299, 0, 0, 0xEB68, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xE6EF, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xF57D, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xE1E6, 0, 0, 0, /* 0xE0 */
- 0xE196 /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_9C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF5E3, 0, 0, /* 0x00 */
- 0xED5A, 0, 0xE971, 0, 0, 0xF7C8, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xF94F, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xEF37, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xE754, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0xE0BE, /* 0x40 */
- 0, 0xE93E, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0xE6F7, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xF378, 0, 0xE9C0, /* 0xE0 */
- 0, 0xE2CD, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xE995, 0xE7B0, 0, 0xEE79 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_9D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xED4C, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xF054, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xED7C, 0, /* 0x20 */
- 0xED75, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xF8F8, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xE14B, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xED4D, 0, 0, /* 0x50 */
- 0xE1DC, 0xE7F7, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xE9DF, 0, 0, 0, /* 0x60 */
- 0, 0, 0xF1CE, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xE7D0, 0, 0, 0, 0, 0, 0xEDA3, /* 0xA0 */
- 0, 0, 0, 0, 0xF7CD, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xE1AE, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE2CE, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0xF63F, 0, 0, 0, 0, 0, /* 0xF0 */
- 0xF9D3, 0xF0ED, 0xE66C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_9E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEDA4, 0, 0, 0, 0xE5B6, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xE66D, 0, 0, /* 0x70 */
- 0, 0xF7E9, 0, 0, 0, 0xEEA4, 0, 0xE673, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xE3CB, 0xE674, 0, 0, 0, 0xE5F2, /* 0x90 */
- 0, 0, 0, 0, 0, 0xEA9C, 0, 0xE6F8, /* 0x90 */
- 0, 0, 0, 0, 0, 0xE77A, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xE2D5, 0xE79F, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xE73B, 0, 0, 0xF9CB, 0, /* 0xB0 */
- 0, 0, 0, 0xF96C, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xEB38, 0xE5F3, 0, /* 0xC0 */
- 0, 0xF9D9, 0, 0, 0xE133, 0, 0, 0, /* 0xD0 */
- 0xE7F9, 0, 0, 0xE4EA, 0xF5F5, 0, 0xF2C7, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xE4DA, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xE84D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_9F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEF38, /* 0x00 */
- 0xE93F, 0, 0, 0, 0, 0, 0xF333, 0, /* 0x00 */
- 0, 0, 0, 0xE1D5, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xEB39, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xEA3C, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xF34A, 0xF241, 0, 0, 0xF242, 0, /* 0x40 */
- 0, 0, 0xF65D, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xF262, /* 0x50 */
- 0, 0xE656, 0, 0, 0, 0, 0, 0xEB75, /* 0x60 */
- 0, 0, 0xF4BB, 0, 0xEDE1, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0xED5B, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xE6A3, 0, 0, /* 0x80 */
- 0xE8C2, 0, 0, 0, 0, 0xE0A0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xE2CF /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_AC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8861, 0x8862, 0x8863, 0x8864, 0x8865, 0x8866, 0x8867, 0x8868, /* 0x00 */
- 0x8869, 0x886A, 0x886B, 0x886C, 0x886D, 0x886E, 0x886F, 0x8870, /* 0x00 */
- 0x8871, 0x8873, 0x8874, 0x8875, 0x8876, 0x8877, 0x8878, 0x8879, /* 0x10 */
- 0x887A, 0x887B, 0x887C, 0x887D, 0x8881, 0x8882, 0x8883, 0x8884, /* 0x10 */
- 0x8885, 0x8886, 0x8887, 0x8888, 0x8889, 0x888A, 0x888B, 0x888C, /* 0x20 */
- 0x888D, 0x888E, 0x888F, 0x8890, 0x8891, 0x8893, 0x8894, 0x8895, /* 0x20 */
- 0x8896, 0x8897, 0x8898, 0x8899, 0x889A, 0x889B, 0x889C, 0x889D, /* 0x30 */
- 0x88A1, 0x88A2, 0x88A3, 0x88A4, 0x88A5, 0x88A6, 0x88A7, 0x88A8, /* 0x30 */
- 0x88A9, 0x88AA, 0x88AB, 0x88AC, 0x88AD, 0x88AE, 0x88AF, 0x88B0, /* 0x40 */
- 0x88B1, 0x88B3, 0x88B4, 0x88B5, 0x88B6, 0x88B7, 0x88B8, 0x88B9, /* 0x40 */
- 0x88BA, 0x88BB, 0x88BC, 0x88BD, 0x88C1, 0x88C2, 0x88C3, 0x88C4, /* 0x50 */
- 0x88C5, 0x88C6, 0x88C7, 0x88C8, 0x88C9, 0x88CA, 0x88CB, 0x88CC, /* 0x50 */
- 0x88CD, 0x88CE, 0x88CF, 0x88D0, 0x88D1, 0x88D3, 0x88D4, 0x88D5, /* 0x60 */
- 0x88D6, 0x88D7, 0x88D8, 0x88D9, 0x88DA, 0x88DB, 0x88DC, 0x88DD, /* 0x60 */
- 0x88E1, 0x88E2, 0x88E3, 0x88E4, 0x88E5, 0x88E6, 0x88E7, 0x88E8, /* 0x70 */
- 0x88E9, 0x88EA, 0x88EB, 0x88EC, 0x88ED, 0x88EE, 0x88EF, 0x88F0, /* 0x70 */
- 0x88F1, 0x88F3, 0x88F4, 0x88F5, 0x88F6, 0x88F7, 0x88F8, 0x88F9, /* 0x80 */
- 0x88FA, 0x88FB, 0x88FC, 0x88FD, 0x8941, 0x8942, 0x8943, 0x8944, /* 0x80 */
- 0x8945, 0x8946, 0x8947, 0x8948, 0x8949, 0x894A, 0x894B, 0x894C, /* 0x90 */
- 0x894D, 0x894E, 0x894F, 0x8950, 0x8951, 0x8953, 0x8954, 0x8955, /* 0x90 */
- 0x8956, 0x8957, 0x8958, 0x8959, 0x895A, 0x895B, 0x895C, 0x895D, /* 0xA0 */
- 0x8961, 0x8962, 0x8963, 0x8964, 0x8965, 0x8966, 0x8967, 0x8968, /* 0xA0 */
- 0x8969, 0x896A, 0x896B, 0x896C, 0x896D, 0x896E, 0x896F, 0x8970, /* 0xB0 */
- 0x8971, 0x8973, 0x8974, 0x8975, 0x8976, 0x8977, 0x8978, 0x8979, /* 0xB0 */
- 0x897A, 0x897B, 0x897C, 0x897D, 0x8981, 0x8982, 0x8983, 0x8984, /* 0xC0 */
- 0x8985, 0x8986, 0x8987, 0x8988, 0x8989, 0x898A, 0x898B, 0x898C, /* 0xC0 */
- 0x898D, 0x898E, 0x898F, 0x8990, 0x8991, 0x8993, 0x8994, 0x8995, /* 0xD0 */
- 0x8996, 0x8997, 0x8998, 0x8999, 0x899A, 0x899B, 0x899C, 0x899D, /* 0xD0 */
- 0x89A1, 0x89A2, 0x89A3, 0x89A4, 0x89A5, 0x89A6, 0x89A7, 0x89A8, /* 0xE0 */
- 0x89A9, 0x89AA, 0x89AB, 0x89AC, 0x89AD, 0x89AE, 0x89AF, 0x89B0, /* 0xE0 */
- 0x89B1, 0x89B3, 0x89B4, 0x89B5, 0x89B6, 0x89B7, 0x89B8, 0x89B9, /* 0xF0 */
- 0x89BA, 0x89BB, 0x89BC, 0x89BD, 0x89C1, 0x89C2, 0x89C3, 0x89C4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_AD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x89C5, 0x89C6, 0x89C7, 0x89C8, 0x89C9, 0x89CA, 0x89CB, 0x89CC, /* 0x00 */
- 0x89CD, 0x89CE, 0x89CF, 0x89D0, 0x89D1, 0x89D3, 0x89D4, 0x89D5, /* 0x00 */
- 0x89D6, 0x89D7, 0x89D8, 0x89D9, 0x89DA, 0x89DB, 0x89DC, 0x89DD, /* 0x10 */
- 0x89E1, 0x89E2, 0x89E3, 0x89E4, 0x89E5, 0x89E6, 0x89E7, 0x89E8, /* 0x10 */
- 0x89E9, 0x89EA, 0x89EB, 0x89EC, 0x89ED, 0x89EE, 0x89EF, 0x89F0, /* 0x20 */
- 0x89F1, 0x89F3, 0x89F4, 0x89F5, 0x89F6, 0x89F7, 0x89F8, 0x89F9, /* 0x20 */
- 0x89FA, 0x89FB, 0x89FC, 0x89FD, 0x8A41, 0x8A42, 0x8A43, 0x8A44, /* 0x30 */
- 0x8A45, 0x8A46, 0x8A47, 0x8A48, 0x8A49, 0x8A4A, 0x8A4B, 0x8A4C, /* 0x30 */
- 0x8A4D, 0x8A4E, 0x8A4F, 0x8A50, 0x8A51, 0x8A53, 0x8A54, 0x8A55, /* 0x40 */
- 0x8A56, 0x8A57, 0x8A58, 0x8A59, 0x8A5A, 0x8A5B, 0x8A5C, 0x8A5D, /* 0x40 */
- 0x8A61, 0x8A62, 0x8A63, 0x8A64, 0x8A65, 0x8A66, 0x8A67, 0x8A68, /* 0x50 */
- 0x8A69, 0x8A6A, 0x8A6B, 0x8A6C, 0x8A6D, 0x8A6E, 0x8A6F, 0x8A70, /* 0x50 */
- 0x8A71, 0x8A73, 0x8A74, 0x8A75, 0x8A76, 0x8A77, 0x8A78, 0x8A79, /* 0x60 */
- 0x8A7A, 0x8A7B, 0x8A7C, 0x8A7D, 0x8A81, 0x8A82, 0x8A83, 0x8A84, /* 0x60 */
- 0x8A85, 0x8A86, 0x8A87, 0x8A88, 0x8A89, 0x8A8A, 0x8A8B, 0x8A8C, /* 0x70 */
- 0x8A8D, 0x8A8E, 0x8A8F, 0x8A90, 0x8A91, 0x8A93, 0x8A94, 0x8A95, /* 0x70 */
- 0x8A96, 0x8A97, 0x8A98, 0x8A99, 0x8A9A, 0x8A9B, 0x8A9C, 0x8A9D, /* 0x80 */
- 0x8AA1, 0x8AA2, 0x8AA3, 0x8AA4, 0x8AA5, 0x8AA6, 0x8AA7, 0x8AA8, /* 0x80 */
- 0x8AA9, 0x8AAA, 0x8AAB, 0x8AAC, 0x8AAD, 0x8AAE, 0x8AAF, 0x8AB0, /* 0x90 */
- 0x8AB1, 0x8AB3, 0x8AB4, 0x8AB5, 0x8AB6, 0x8AB7, 0x8AB8, 0x8AB9, /* 0x90 */
- 0x8ABA, 0x8ABB, 0x8ABC, 0x8ABD, 0x8AC1, 0x8AC2, 0x8AC3, 0x8AC4, /* 0xA0 */
- 0x8AC5, 0x8AC6, 0x8AC7, 0x8AC8, 0x8AC9, 0x8ACA, 0x8ACB, 0x8ACC, /* 0xA0 */
- 0x8ACD, 0x8ACE, 0x8ACF, 0x8AD0, 0x8AD1, 0x8AD3, 0x8AD4, 0x8AD5, /* 0xB0 */
- 0x8AD6, 0x8AD7, 0x8AD8, 0x8AD9, 0x8ADA, 0x8ADB, 0x8ADC, 0x8ADD, /* 0xB0 */
- 0x8AE1, 0x8AE2, 0x8AE3, 0x8AE4, 0x8AE5, 0x8AE6, 0x8AE7, 0x8AE8, /* 0xC0 */
- 0x8AE9, 0x8AEA, 0x8AEB, 0x8AEC, 0x8AED, 0x8AEE, 0x8AEF, 0x8AF0, /* 0xC0 */
- 0x8AF1, 0x8AF3, 0x8AF4, 0x8AF5, 0x8AF6, 0x8AF7, 0x8AF8, 0x8AF9, /* 0xD0 */
- 0x8AFA, 0x8AFB, 0x8AFC, 0x8AFD, 0x8B41, 0x8B42, 0x8B43, 0x8B44, /* 0xD0 */
- 0x8B45, 0x8B46, 0x8B47, 0x8B48, 0x8B49, 0x8B4A, 0x8B4B, 0x8B4C, /* 0xE0 */
- 0x8B4D, 0x8B4E, 0x8B4F, 0x8B50, 0x8B51, 0x8B53, 0x8B54, 0x8B55, /* 0xE0 */
- 0x8B56, 0x8B57, 0x8B58, 0x8B59, 0x8B5A, 0x8B5B, 0x8B5C, 0x8B5D, /* 0xF0 */
- 0x8B61, 0x8B62, 0x8B63, 0x8B64, 0x8B65, 0x8B66, 0x8B67, 0x8B68 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_AE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8B69, 0x8B6A, 0x8B6B, 0x8B6C, 0x8B6D, 0x8B6E, 0x8B6F, 0x8B70, /* 0x00 */
- 0x8B71, 0x8B73, 0x8B74, 0x8B75, 0x8B76, 0x8B77, 0x8B78, 0x8B79, /* 0x00 */
- 0x8B7A, 0x8B7B, 0x8B7C, 0x8B7D, 0x8B81, 0x8B82, 0x8B83, 0x8B84, /* 0x10 */
- 0x8B85, 0x8B86, 0x8B87, 0x8B88, 0x8B89, 0x8B8A, 0x8B8B, 0x8B8C, /* 0x10 */
- 0x8B8D, 0x8B8E, 0x8B8F, 0x8B90, 0x8B91, 0x8B93, 0x8B94, 0x8B95, /* 0x20 */
- 0x8B96, 0x8B97, 0x8B98, 0x8B99, 0x8B9A, 0x8B9B, 0x8B9C, 0x8B9D, /* 0x20 */
- 0x8BA1, 0x8BA2, 0x8BA3, 0x8BA4, 0x8BA5, 0x8BA6, 0x8BA7, 0x8BA8, /* 0x30 */
- 0x8BA9, 0x8BAA, 0x8BAB, 0x8BAC, 0x8BAD, 0x8BAE, 0x8BAF, 0x8BB0, /* 0x30 */
- 0x8BB1, 0x8BB3, 0x8BB4, 0x8BB5, 0x8BB6, 0x8BB7, 0x8BB8, 0x8BB9, /* 0x40 */
- 0x8BBA, 0x8BBB, 0x8BBC, 0x8BBD, 0x8C61, 0x8C62, 0x8C63, 0x8C64, /* 0x40 */
- 0x8C65, 0x8C66, 0x8C67, 0x8C68, 0x8C69, 0x8C6A, 0x8C6B, 0x8C6C, /* 0x50 */
- 0x8C6D, 0x8C6E, 0x8C6F, 0x8C70, 0x8C71, 0x8C73, 0x8C74, 0x8C75, /* 0x50 */
- 0x8C76, 0x8C77, 0x8C78, 0x8C79, 0x8C7A, 0x8C7B, 0x8C7C, 0x8C7D, /* 0x60 */
- 0x8C81, 0x8C82, 0x8C83, 0x8C84, 0x8C85, 0x8C86, 0x8C87, 0x8C88, /* 0x60 */
- 0x8C89, 0x8C8A, 0x8C8B, 0x8C8C, 0x8C8D, 0x8C8E, 0x8C8F, 0x8C90, /* 0x70 */
- 0x8C91, 0x8C93, 0x8C94, 0x8C95, 0x8C96, 0x8C97, 0x8C98, 0x8C99, /* 0x70 */
- 0x8C9A, 0x8C9B, 0x8C9C, 0x8C9D, 0x8CA1, 0x8CA2, 0x8CA3, 0x8CA4, /* 0x80 */
- 0x8CA5, 0x8CA6, 0x8CA7, 0x8CA8, 0x8CA9, 0x8CAA, 0x8CAB, 0x8CAC, /* 0x80 */
- 0x8CAD, 0x8CAE, 0x8CAF, 0x8CB0, 0x8CB1, 0x8CB3, 0x8CB4, 0x8CB5, /* 0x90 */
- 0x8CB6, 0x8CB7, 0x8CB8, 0x8CB9, 0x8CBA, 0x8CBB, 0x8CBC, 0x8CBD, /* 0x90 */
- 0x8CC1, 0x8CC2, 0x8CC3, 0x8CC4, 0x8CC5, 0x8CC6, 0x8CC7, 0x8CC8, /* 0xA0 */
- 0x8CC9, 0x8CCA, 0x8CCB, 0x8CCC, 0x8CCD, 0x8CCE, 0x8CCF, 0x8CD0, /* 0xA0 */
- 0x8CD1, 0x8CD3, 0x8CD4, 0x8CD5, 0x8CD6, 0x8CD7, 0x8CD8, 0x8CD9, /* 0xB0 */
- 0x8CDA, 0x8CDB, 0x8CDC, 0x8CDD, 0x8CE1, 0x8CE2, 0x8CE3, 0x8CE4, /* 0xB0 */
- 0x8CE5, 0x8CE6, 0x8CE7, 0x8CE8, 0x8CE9, 0x8CEA, 0x8CEB, 0x8CEC, /* 0xC0 */
- 0x8CED, 0x8CEE, 0x8CEF, 0x8CF0, 0x8CF1, 0x8CF3, 0x8CF4, 0x8CF5, /* 0xC0 */
- 0x8CF6, 0x8CF7, 0x8CF8, 0x8CF9, 0x8CFA, 0x8CFB, 0x8CFC, 0x8CFD, /* 0xD0 */
- 0x8D41, 0x8D42, 0x8D43, 0x8D44, 0x8D45, 0x8D46, 0x8D47, 0x8D48, /* 0xD0 */
- 0x8D49, 0x8D4A, 0x8D4B, 0x8D4C, 0x8D4D, 0x8D4E, 0x8D4F, 0x8D50, /* 0xE0 */
- 0x8D51, 0x8D53, 0x8D54, 0x8D55, 0x8D56, 0x8D57, 0x8D58, 0x8D59, /* 0xE0 */
- 0x8D5A, 0x8D5B, 0x8D5C, 0x8D5D, 0x8D61, 0x8D62, 0x8D63, 0x8D64, /* 0xF0 */
- 0x8D65, 0x8D66, 0x8D67, 0x8D68, 0x8D69, 0x8D6A, 0x8D6B, 0x8D6C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_AF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8D6D, 0x8D6E, 0x8D6F, 0x8D70, 0x8D71, 0x8D73, 0x8D74, 0x8D75, /* 0x00 */
- 0x8D76, 0x8D77, 0x8D78, 0x8D79, 0x8D7A, 0x8D7B, 0x8D7C, 0x8D7D, /* 0x00 */
- 0x8D81, 0x8D82, 0x8D83, 0x8D84, 0x8D85, 0x8D86, 0x8D87, 0x8D88, /* 0x10 */
- 0x8D89, 0x8D8A, 0x8D8B, 0x8D8C, 0x8D8D, 0x8D8E, 0x8D8F, 0x8D90, /* 0x10 */
- 0x8D91, 0x8D93, 0x8D94, 0x8D95, 0x8D96, 0x8D97, 0x8D98, 0x8D99, /* 0x20 */
- 0x8D9A, 0x8D9B, 0x8D9C, 0x8D9D, 0x8DA1, 0x8DA2, 0x8DA3, 0x8DA4, /* 0x20 */
- 0x8DA5, 0x8DA6, 0x8DA7, 0x8DA8, 0x8DA9, 0x8DAA, 0x8DAB, 0x8DAC, /* 0x30 */
- 0x8DAD, 0x8DAE, 0x8DAF, 0x8DB0, 0x8DB1, 0x8DB3, 0x8DB4, 0x8DB5, /* 0x30 */
- 0x8DB6, 0x8DB7, 0x8DB8, 0x8DB9, 0x8DBA, 0x8DBB, 0x8DBC, 0x8DBD, /* 0x40 */
- 0x8DC1, 0x8DC2, 0x8DC3, 0x8DC4, 0x8DC5, 0x8DC6, 0x8DC7, 0x8DC8, /* 0x40 */
- 0x8DC9, 0x8DCA, 0x8DCB, 0x8DCC, 0x8DCD, 0x8DCE, 0x8DCF, 0x8DD0, /* 0x50 */
- 0x8DD1, 0x8DD3, 0x8DD4, 0x8DD5, 0x8DD6, 0x8DD7, 0x8DD8, 0x8DD9, /* 0x50 */
- 0x8DDA, 0x8DDB, 0x8DDC, 0x8DDD, 0x8DE1, 0x8DE2, 0x8DE3, 0x8DE4, /* 0x60 */
- 0x8DE5, 0x8DE6, 0x8DE7, 0x8DE8, 0x8DE9, 0x8DEA, 0x8DEB, 0x8DEC, /* 0x60 */
- 0x8DED, 0x8DEE, 0x8DEF, 0x8DF0, 0x8DF1, 0x8DF3, 0x8DF4, 0x8DF5, /* 0x70 */
- 0x8DF6, 0x8DF7, 0x8DF8, 0x8DF9, 0x8DFA, 0x8DFB, 0x8DFC, 0x8DFD, /* 0x70 */
- 0x8E41, 0x8E42, 0x8E43, 0x8E44, 0x8E45, 0x8E46, 0x8E47, 0x8E48, /* 0x80 */
- 0x8E49, 0x8E4A, 0x8E4B, 0x8E4C, 0x8E4D, 0x8E4E, 0x8E4F, 0x8E50, /* 0x80 */
- 0x8E51, 0x8E53, 0x8E54, 0x8E55, 0x8E56, 0x8E57, 0x8E58, 0x8E59, /* 0x90 */
- 0x8E5A, 0x8E5B, 0x8E5C, 0x8E5D, 0x8E61, 0x8E62, 0x8E63, 0x8E64, /* 0x90 */
- 0x8E65, 0x8E66, 0x8E67, 0x8E68, 0x8E69, 0x8E6A, 0x8E6B, 0x8E6C, /* 0xA0 */
- 0x8E6D, 0x8E6E, 0x8E6F, 0x8E70, 0x8E71, 0x8E73, 0x8E74, 0x8E75, /* 0xA0 */
- 0x8E76, 0x8E77, 0x8E78, 0x8E79, 0x8E7A, 0x8E7B, 0x8E7C, 0x8E7D, /* 0xB0 */
- 0x8E81, 0x8E82, 0x8E83, 0x8E84, 0x8E85, 0x8E86, 0x8E87, 0x8E88, /* 0xB0 */
- 0x8E89, 0x8E8A, 0x8E8B, 0x8E8C, 0x8E8D, 0x8E8E, 0x8E8F, 0x8E90, /* 0xC0 */
- 0x8E91, 0x8E93, 0x8E94, 0x8E95, 0x8E96, 0x8E97, 0x8E98, 0x8E99, /* 0xC0 */
- 0x8E9A, 0x8E9B, 0x8E9C, 0x8E9D, 0x8EA1, 0x8EA2, 0x8EA3, 0x8EA4, /* 0xD0 */
- 0x8EA5, 0x8EA6, 0x8EA7, 0x8EA8, 0x8EA9, 0x8EAA, 0x8EAB, 0x8EAC, /* 0xD0 */
- 0x8EAD, 0x8EAE, 0x8EAF, 0x8EB0, 0x8EB1, 0x8EB3, 0x8EB4, 0x8EB5, /* 0xE0 */
- 0x8EB6, 0x8EB7, 0x8EB8, 0x8EB9, 0x8EBA, 0x8EBB, 0x8EBC, 0x8EBD, /* 0xE0 */
- 0x8EC1, 0x8EC2, 0x8EC3, 0x8EC4, 0x8EC5, 0x8EC6, 0x8EC7, 0x8EC8, /* 0xF0 */
- 0x8EC9, 0x8ECA, 0x8ECB, 0x8ECC, 0x8ECD, 0x8ECE, 0x8ECF, 0x8ED0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_B0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8ED1, 0x8ED3, 0x8ED4, 0x8ED5, 0x8ED6, 0x8ED7, 0x8ED8, 0x8ED9, /* 0x00 */
- 0x8EDA, 0x8EDB, 0x8EDC, 0x8EDD, 0x8EE1, 0x8EE2, 0x8EE3, 0x8EE4, /* 0x00 */
- 0x8EE5, 0x8EE6, 0x8EE7, 0x8EE8, 0x8EE9, 0x8EEA, 0x8EEB, 0x8EEC, /* 0x10 */
- 0x8EED, 0x8EEE, 0x8EEF, 0x8EF0, 0x8EF1, 0x8EF3, 0x8EF4, 0x8EF5, /* 0x10 */
- 0x8EF6, 0x8EF7, 0x8EF8, 0x8EF9, 0x8EFA, 0x8EFB, 0x8EFC, 0x8EFD, /* 0x20 */
- 0x8F41, 0x8F42, 0x8F43, 0x8F44, 0x8F45, 0x8F46, 0x8F47, 0x8F48, /* 0x20 */
- 0x8F49, 0x8F4A, 0x8F4B, 0x8F4C, 0x8F4D, 0x8F4E, 0x8F4F, 0x8F50, /* 0x30 */
- 0x8F51, 0x8F53, 0x8F54, 0x8F55, 0x8F56, 0x8F57, 0x8F58, 0x8F59, /* 0x30 */
- 0x8F5A, 0x8F5B, 0x8F5C, 0x8F5D, 0x8F61, 0x8F62, 0x8F63, 0x8F64, /* 0x40 */
- 0x8F65, 0x8F66, 0x8F67, 0x8F68, 0x8F69, 0x8F6A, 0x8F6B, 0x8F6C, /* 0x40 */
- 0x8F6D, 0x8F6E, 0x8F6F, 0x8F70, 0x8F71, 0x8F73, 0x8F74, 0x8F75, /* 0x50 */
- 0x8F76, 0x8F77, 0x8F78, 0x8F79, 0x8F7A, 0x8F7B, 0x8F7C, 0x8F7D, /* 0x50 */
- 0x8F81, 0x8F82, 0x8F83, 0x8F84, 0x8F85, 0x8F86, 0x8F87, 0x8F88, /* 0x60 */
- 0x8F89, 0x8F8A, 0x8F8B, 0x8F8C, 0x8F8D, 0x8F8E, 0x8F8F, 0x8F90, /* 0x60 */
- 0x8F91, 0x8F93, 0x8F94, 0x8F95, 0x8F96, 0x8F97, 0x8F98, 0x8F99, /* 0x70 */
- 0x8F9A, 0x8F9B, 0x8F9C, 0x8F9D, 0x8FA1, 0x8FA2, 0x8FA3, 0x8FA4, /* 0x70 */
- 0x8FA5, 0x8FA6, 0x8FA7, 0x8FA8, 0x8FA9, 0x8FAA, 0x8FAB, 0x8FAC, /* 0x80 */
- 0x8FAD, 0x8FAE, 0x8FAF, 0x8FB0, 0x8FB1, 0x8FB3, 0x8FB4, 0x8FB5, /* 0x80 */
- 0x8FB6, 0x8FB7, 0x8FB8, 0x8FB9, 0x8FBA, 0x8FBB, 0x8FBC, 0x8FBD, /* 0x90 */
- 0x9061, 0x9062, 0x9063, 0x9064, 0x9065, 0x9066, 0x9067, 0x9068, /* 0x90 */
- 0x9069, 0x906A, 0x906B, 0x906C, 0x906D, 0x906E, 0x906F, 0x9070, /* 0xA0 */
- 0x9071, 0x9073, 0x9074, 0x9075, 0x9076, 0x9077, 0x9078, 0x9079, /* 0xA0 */
- 0x907A, 0x907B, 0x907C, 0x907D, 0x9081, 0x9082, 0x9083, 0x9084, /* 0xB0 */
- 0x9085, 0x9086, 0x9087, 0x9088, 0x9089, 0x908A, 0x908B, 0x908C, /* 0xB0 */
- 0x908D, 0x908E, 0x908F, 0x9090, 0x9091, 0x9093, 0x9094, 0x9095, /* 0xC0 */
- 0x9096, 0x9097, 0x9098, 0x9099, 0x909A, 0x909B, 0x909C, 0x909D, /* 0xC0 */
- 0x90A1, 0x90A2, 0x90A3, 0x90A4, 0x90A5, 0x90A6, 0x90A7, 0x90A8, /* 0xD0 */
- 0x90A9, 0x90AA, 0x90AB, 0x90AC, 0x90AD, 0x90AE, 0x90AF, 0x90B0, /* 0xD0 */
- 0x90B1, 0x90B3, 0x90B4, 0x90B5, 0x90B6, 0x90B7, 0x90B8, 0x90B9, /* 0xE0 */
- 0x90BA, 0x90BB, 0x90BC, 0x90BD, 0x90C1, 0x90C2, 0x90C3, 0x90C4, /* 0xE0 */
- 0x90C5, 0x90C6, 0x90C7, 0x90C8, 0x90C9, 0x90CA, 0x90CB, 0x90CC, /* 0xF0 */
- 0x90CD, 0x90CE, 0x90CF, 0x90D0, 0x90D1, 0x90D3, 0x90D4, 0x90D5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_B1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x90D6, 0x90D7, 0x90D8, 0x90D9, 0x90DA, 0x90DB, 0x90DC, 0x90DD, /* 0x00 */
- 0x90E1, 0x90E2, 0x90E3, 0x90E4, 0x90E5, 0x90E6, 0x90E7, 0x90E8, /* 0x00 */
- 0x90E9, 0x90EA, 0x90EB, 0x90EC, 0x90ED, 0x90EE, 0x90EF, 0x90F0, /* 0x10 */
- 0x90F1, 0x90F3, 0x90F4, 0x90F5, 0x90F6, 0x90F7, 0x90F8, 0x90F9, /* 0x10 */
- 0x90FA, 0x90FB, 0x90FC, 0x90FD, 0x9141, 0x9142, 0x9143, 0x9144, /* 0x20 */
- 0x9145, 0x9146, 0x9147, 0x9148, 0x9149, 0x914A, 0x914B, 0x914C, /* 0x20 */
- 0x914D, 0x914E, 0x914F, 0x9150, 0x9151, 0x9153, 0x9154, 0x9155, /* 0x30 */
- 0x9156, 0x9157, 0x9158, 0x9159, 0x915A, 0x915B, 0x915C, 0x915D, /* 0x30 */
- 0x9161, 0x9162, 0x9163, 0x9164, 0x9165, 0x9166, 0x9167, 0x9168, /* 0x40 */
- 0x9169, 0x916A, 0x916B, 0x916C, 0x916D, 0x916E, 0x916F, 0x9170, /* 0x40 */
- 0x9171, 0x9173, 0x9174, 0x9175, 0x9176, 0x9177, 0x9178, 0x9179, /* 0x50 */
- 0x917A, 0x917B, 0x917C, 0x917D, 0x9181, 0x9182, 0x9183, 0x9184, /* 0x50 */
- 0x9185, 0x9186, 0x9187, 0x9188, 0x9189, 0x918A, 0x918B, 0x918C, /* 0x60 */
- 0x918D, 0x918E, 0x918F, 0x9190, 0x9191, 0x9193, 0x9194, 0x9195, /* 0x60 */
- 0x9196, 0x9197, 0x9198, 0x9199, 0x919A, 0x919B, 0x919C, 0x919D, /* 0x70 */
- 0x91A1, 0x91A2, 0x91A3, 0x91A4, 0x91A5, 0x91A6, 0x91A7, 0x91A8, /* 0x70 */
- 0x91A9, 0x91AA, 0x91AB, 0x91AC, 0x91AD, 0x91AE, 0x91AF, 0x91B0, /* 0x80 */
- 0x91B1, 0x91B3, 0x91B4, 0x91B5, 0x91B6, 0x91B7, 0x91B8, 0x91B9, /* 0x80 */
- 0x91BA, 0x91BB, 0x91BC, 0x91BD, 0x91C1, 0x91C2, 0x91C3, 0x91C4, /* 0x90 */
- 0x91C5, 0x91C6, 0x91C7, 0x91C8, 0x91C9, 0x91CA, 0x91CB, 0x91CC, /* 0x90 */
- 0x91CD, 0x91CE, 0x91CF, 0x91D0, 0x91D1, 0x91D3, 0x91D4, 0x91D5, /* 0xA0 */
- 0x91D6, 0x91D7, 0x91D8, 0x91D9, 0x91DA, 0x91DB, 0x91DC, 0x91DD, /* 0xA0 */
- 0x91E1, 0x91E2, 0x91E3, 0x91E4, 0x91E5, 0x91E6, 0x91E7, 0x91E8, /* 0xB0 */
- 0x91E9, 0x91EA, 0x91EB, 0x91EC, 0x91ED, 0x91EE, 0x91EF, 0x91F0, /* 0xB0 */
- 0x91F1, 0x91F3, 0x91F4, 0x91F5, 0x91F6, 0x91F7, 0x91F8, 0x91F9, /* 0xC0 */
- 0x91FA, 0x91FB, 0x91FC, 0x91FD, 0x9241, 0x9242, 0x9243, 0x9244, /* 0xC0 */
- 0x9245, 0x9246, 0x9247, 0x9248, 0x9249, 0x924A, 0x924B, 0x924C, /* 0xD0 */
- 0x924D, 0x924E, 0x924F, 0x9250, 0x9251, 0x9253, 0x9254, 0x9255, /* 0xD0 */
- 0x9256, 0x9257, 0x9258, 0x9259, 0x925A, 0x925B, 0x925C, 0x925D, /* 0xE0 */
- 0x9261, 0x9262, 0x9263, 0x9264, 0x9265, 0x9266, 0x9267, 0x9268, /* 0xE0 */
- 0x9269, 0x926A, 0x926B, 0x926C, 0x926D, 0x926E, 0x926F, 0x9270, /* 0xF0 */
- 0x9271, 0x9273, 0x9274, 0x9275, 0x9276, 0x9277, 0x9278, 0x9279 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_B2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x927A, 0x927B, 0x927C, 0x927D, 0x9281, 0x9282, 0x9283, 0x9284, /* 0x00 */
- 0x9285, 0x9286, 0x9287, 0x9288, 0x9289, 0x928A, 0x928B, 0x928C, /* 0x00 */
- 0x928D, 0x928E, 0x928F, 0x9290, 0x9291, 0x9293, 0x9294, 0x9295, /* 0x10 */
- 0x9296, 0x9297, 0x9298, 0x9299, 0x929A, 0x929B, 0x929C, 0x929D, /* 0x10 */
- 0x92A1, 0x92A2, 0x92A3, 0x92A4, 0x92A5, 0x92A6, 0x92A7, 0x92A8, /* 0x20 */
- 0x92A9, 0x92AA, 0x92AB, 0x92AC, 0x92AD, 0x92AE, 0x92AF, 0x92B0, /* 0x20 */
- 0x92B1, 0x92B3, 0x92B4, 0x92B5, 0x92B6, 0x92B7, 0x92B8, 0x92B9, /* 0x30 */
- 0x92BA, 0x92BB, 0x92BC, 0x92BD, 0x92C1, 0x92C2, 0x92C3, 0x92C4, /* 0x30 */
- 0x92C5, 0x92C6, 0x92C7, 0x92C8, 0x92C9, 0x92CA, 0x92CB, 0x92CC, /* 0x40 */
- 0x92CD, 0x92CE, 0x92CF, 0x92D0, 0x92D1, 0x92D3, 0x92D4, 0x92D5, /* 0x40 */
- 0x92D6, 0x92D7, 0x92D8, 0x92D9, 0x92DA, 0x92DB, 0x92DC, 0x92DD, /* 0x50 */
- 0x92E1, 0x92E2, 0x92E3, 0x92E4, 0x92E5, 0x92E6, 0x92E7, 0x92E8, /* 0x50 */
- 0x92E9, 0x92EA, 0x92EB, 0x92EC, 0x92ED, 0x92EE, 0x92EF, 0x92F0, /* 0x60 */
- 0x92F1, 0x92F3, 0x92F4, 0x92F5, 0x92F6, 0x92F7, 0x92F8, 0x92F9, /* 0x60 */
- 0x92FA, 0x92FB, 0x92FC, 0x92FD, 0x9341, 0x9342, 0x9343, 0x9344, /* 0x70 */
- 0x9345, 0x9346, 0x9347, 0x9348, 0x9349, 0x934A, 0x934B, 0x934C, /* 0x70 */
- 0x934D, 0x934E, 0x934F, 0x9350, 0x9351, 0x9353, 0x9354, 0x9355, /* 0x80 */
- 0x9356, 0x9357, 0x9358, 0x9359, 0x935A, 0x935B, 0x935C, 0x935D, /* 0x80 */
- 0x9361, 0x9362, 0x9363, 0x9364, 0x9365, 0x9366, 0x9367, 0x9368, /* 0x90 */
- 0x9369, 0x936A, 0x936B, 0x936C, 0x936D, 0x936E, 0x936F, 0x9370, /* 0x90 */
- 0x9371, 0x9373, 0x9374, 0x9375, 0x9376, 0x9377, 0x9378, 0x9379, /* 0xA0 */
- 0x937A, 0x937B, 0x937C, 0x937D, 0x9381, 0x9382, 0x9383, 0x9384, /* 0xA0 */
- 0x9385, 0x9386, 0x9387, 0x9388, 0x9389, 0x938A, 0x938B, 0x938C, /* 0xB0 */
- 0x938D, 0x938E, 0x938F, 0x9390, 0x9391, 0x9393, 0x9394, 0x9395, /* 0xB0 */
- 0x9396, 0x9397, 0x9398, 0x9399, 0x939A, 0x939B, 0x939C, 0x939D, /* 0xC0 */
- 0x93A1, 0x93A2, 0x93A3, 0x93A4, 0x93A5, 0x93A6, 0x93A7, 0x93A8, /* 0xC0 */
- 0x93A9, 0x93AA, 0x93AB, 0x93AC, 0x93AD, 0x93AE, 0x93AF, 0x93B0, /* 0xD0 */
- 0x93B1, 0x93B3, 0x93B4, 0x93B5, 0x93B6, 0x93B7, 0x93B8, 0x93B9, /* 0xD0 */
- 0x93BA, 0x93BB, 0x93BC, 0x93BD, 0x9461, 0x9462, 0x9463, 0x9464, /* 0xE0 */
- 0x9465, 0x9466, 0x9467, 0x9468, 0x9469, 0x946A, 0x946B, 0x946C, /* 0xE0 */
- 0x946D, 0x946E, 0x946F, 0x9470, 0x9471, 0x9473, 0x9474, 0x9475, /* 0xF0 */
- 0x9476, 0x9477, 0x9478, 0x9479, 0x947A, 0x947B, 0x947C, 0x947D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_B3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9481, 0x9482, 0x9483, 0x9484, 0x9485, 0x9486, 0x9487, 0x9488, /* 0x00 */
- 0x9489, 0x948A, 0x948B, 0x948C, 0x948D, 0x948E, 0x948F, 0x9490, /* 0x00 */
- 0x9491, 0x9493, 0x9494, 0x9495, 0x9496, 0x9497, 0x9498, 0x9499, /* 0x10 */
- 0x949A, 0x949B, 0x949C, 0x949D, 0x94A1, 0x94A2, 0x94A3, 0x94A4, /* 0x10 */
- 0x94A5, 0x94A6, 0x94A7, 0x94A8, 0x94A9, 0x94AA, 0x94AB, 0x94AC, /* 0x20 */
- 0x94AD, 0x94AE, 0x94AF, 0x94B0, 0x94B1, 0x94B3, 0x94B4, 0x94B5, /* 0x20 */
- 0x94B6, 0x94B7, 0x94B8, 0x94B9, 0x94BA, 0x94BB, 0x94BC, 0x94BD, /* 0x30 */
- 0x94C1, 0x94C2, 0x94C3, 0x94C4, 0x94C5, 0x94C6, 0x94C7, 0x94C8, /* 0x30 */
- 0x94C9, 0x94CA, 0x94CB, 0x94CC, 0x94CD, 0x94CE, 0x94CF, 0x94D0, /* 0x40 */
- 0x94D1, 0x94D3, 0x94D4, 0x94D5, 0x94D6, 0x94D7, 0x94D8, 0x94D9, /* 0x40 */
- 0x94DA, 0x94DB, 0x94DC, 0x94DD, 0x94E1, 0x94E2, 0x94E3, 0x94E4, /* 0x50 */
- 0x94E5, 0x94E6, 0x94E7, 0x94E8, 0x94E9, 0x94EA, 0x94EB, 0x94EC, /* 0x50 */
- 0x94ED, 0x94EE, 0x94EF, 0x94F0, 0x94F1, 0x94F3, 0x94F4, 0x94F5, /* 0x60 */
- 0x94F6, 0x94F7, 0x94F8, 0x94F9, 0x94FA, 0x94FB, 0x94FC, 0x94FD, /* 0x60 */
- 0x9541, 0x9542, 0x9543, 0x9544, 0x9545, 0x9546, 0x9547, 0x9548, /* 0x70 */
- 0x9549, 0x954A, 0x954B, 0x954C, 0x954D, 0x954E, 0x954F, 0x9550, /* 0x70 */
- 0x9551, 0x9553, 0x9554, 0x9555, 0x9556, 0x9557, 0x9558, 0x9559, /* 0x80 */
- 0x955A, 0x955B, 0x955C, 0x955D, 0x9561, 0x9562, 0x9563, 0x9564, /* 0x80 */
- 0x9565, 0x9566, 0x9567, 0x9568, 0x9569, 0x956A, 0x956B, 0x956C, /* 0x90 */
- 0x956D, 0x956E, 0x956F, 0x9570, 0x9571, 0x9573, 0x9574, 0x9575, /* 0x90 */
- 0x9576, 0x9577, 0x9578, 0x9579, 0x957A, 0x957B, 0x957C, 0x957D, /* 0xA0 */
- 0x9581, 0x9582, 0x9583, 0x9584, 0x9585, 0x9586, 0x9587, 0x9588, /* 0xA0 */
- 0x9589, 0x958A, 0x958B, 0x958C, 0x958D, 0x958E, 0x958F, 0x9590, /* 0xB0 */
- 0x9591, 0x9593, 0x9594, 0x9595, 0x9596, 0x9597, 0x9598, 0x9599, /* 0xB0 */
- 0x959A, 0x959B, 0x959C, 0x959D, 0x95A1, 0x95A2, 0x95A3, 0x95A4, /* 0xC0 */
- 0x95A5, 0x95A6, 0x95A7, 0x95A8, 0x95A9, 0x95AA, 0x95AB, 0x95AC, /* 0xC0 */
- 0x95AD, 0x95AE, 0x95AF, 0x95B0, 0x95B1, 0x95B3, 0x95B4, 0x95B5, /* 0xD0 */
- 0x95B6, 0x95B7, 0x95B8, 0x95B9, 0x95BA, 0x95BB, 0x95BC, 0x95BD, /* 0xD0 */
- 0x95C1, 0x95C2, 0x95C3, 0x95C4, 0x95C5, 0x95C6, 0x95C7, 0x95C8, /* 0xE0 */
- 0x95C9, 0x95CA, 0x95CB, 0x95CC, 0x95CD, 0x95CE, 0x95CF, 0x95D0, /* 0xE0 */
- 0x95D1, 0x95D3, 0x95D4, 0x95D5, 0x95D6, 0x95D7, 0x95D8, 0x95D9, /* 0xF0 */
- 0x95DA, 0x95DB, 0x95DC, 0x95DD, 0x95E1, 0x95E2, 0x95E3, 0x95E4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_B4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x95E5, 0x95E6, 0x95E7, 0x95E8, 0x95E9, 0x95EA, 0x95EB, 0x95EC, /* 0x00 */
- 0x95ED, 0x95EE, 0x95EF, 0x95F0, 0x95F1, 0x95F3, 0x95F4, 0x95F5, /* 0x00 */
- 0x95F6, 0x95F7, 0x95F8, 0x95F9, 0x95FA, 0x95FB, 0x95FC, 0x95FD, /* 0x10 */
- 0x9641, 0x9642, 0x9643, 0x9644, 0x9645, 0x9646, 0x9647, 0x9648, /* 0x10 */
- 0x9649, 0x964A, 0x964B, 0x964C, 0x964D, 0x964E, 0x964F, 0x9650, /* 0x20 */
- 0x9651, 0x9653, 0x9654, 0x9655, 0x9656, 0x9657, 0x9658, 0x9659, /* 0x20 */
- 0x965A, 0x965B, 0x965C, 0x965D, 0x9661, 0x9662, 0x9663, 0x9664, /* 0x30 */
- 0x9665, 0x9666, 0x9667, 0x9668, 0x9669, 0x966A, 0x966B, 0x966C, /* 0x30 */
- 0x966D, 0x966E, 0x966F, 0x9670, 0x9671, 0x9673, 0x9674, 0x9675, /* 0x40 */
- 0x9676, 0x9677, 0x9678, 0x9679, 0x967A, 0x967B, 0x967C, 0x967D, /* 0x40 */
- 0x9681, 0x9682, 0x9683, 0x9684, 0x9685, 0x9686, 0x9687, 0x9688, /* 0x50 */
- 0x9689, 0x968A, 0x968B, 0x968C, 0x968D, 0x968E, 0x968F, 0x9690, /* 0x50 */
- 0x9691, 0x9693, 0x9694, 0x9695, 0x9696, 0x9697, 0x9698, 0x9699, /* 0x60 */
- 0x969A, 0x969B, 0x969C, 0x969D, 0x96A1, 0x96A2, 0x96A3, 0x96A4, /* 0x60 */
- 0x96A5, 0x96A6, 0x96A7, 0x96A8, 0x96A9, 0x96AA, 0x96AB, 0x96AC, /* 0x70 */
- 0x96AD, 0x96AE, 0x96AF, 0x96B0, 0x96B1, 0x96B3, 0x96B4, 0x96B5, /* 0x70 */
- 0x96B6, 0x96B7, 0x96B8, 0x96B9, 0x96BA, 0x96BB, 0x96BC, 0x96BD, /* 0x80 */
- 0x96C1, 0x96C2, 0x96C3, 0x96C4, 0x96C5, 0x96C6, 0x96C7, 0x96C8, /* 0x80 */
- 0x96C9, 0x96CA, 0x96CB, 0x96CC, 0x96CD, 0x96CE, 0x96CF, 0x96D0, /* 0x90 */
- 0x96D1, 0x96D3, 0x96D4, 0x96D5, 0x96D6, 0x96D7, 0x96D8, 0x96D9, /* 0x90 */
- 0x96DA, 0x96DB, 0x96DC, 0x96DD, 0x96E1, 0x96E2, 0x96E3, 0x96E4, /* 0xA0 */
- 0x96E5, 0x96E6, 0x96E7, 0x96E8, 0x96E9, 0x96EA, 0x96EB, 0x96EC, /* 0xA0 */
- 0x96ED, 0x96EE, 0x96EF, 0x96F0, 0x96F1, 0x96F3, 0x96F4, 0x96F5, /* 0xB0 */
- 0x96F6, 0x96F7, 0x96F8, 0x96F9, 0x96FA, 0x96FB, 0x96FC, 0x96FD, /* 0xB0 */
- 0x9741, 0x9742, 0x9743, 0x9744, 0x9745, 0x9746, 0x9747, 0x9748, /* 0xC0 */
- 0x9749, 0x974A, 0x974B, 0x974C, 0x974D, 0x974E, 0x974F, 0x9750, /* 0xC0 */
- 0x9751, 0x9753, 0x9754, 0x9755, 0x9756, 0x9757, 0x9758, 0x9759, /* 0xD0 */
- 0x975A, 0x975B, 0x975C, 0x975D, 0x9761, 0x9762, 0x9763, 0x9764, /* 0xD0 */
- 0x9765, 0x9766, 0x9767, 0x9768, 0x9769, 0x976A, 0x976B, 0x976C, /* 0xE0 */
- 0x976D, 0x976E, 0x976F, 0x9770, 0x9771, 0x9773, 0x9774, 0x9775, /* 0xE0 */
- 0x9776, 0x9777, 0x9778, 0x9779, 0x977A, 0x977B, 0x977C, 0x977D, /* 0xF0 */
- 0x9781, 0x9782, 0x9783, 0x9784, 0x9785, 0x9786, 0x9787, 0x9788 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_B5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9789, 0x978A, 0x978B, 0x978C, 0x978D, 0x978E, 0x978F, 0x9790, /* 0x00 */
- 0x9791, 0x9793, 0x9794, 0x9795, 0x9796, 0x9797, 0x9798, 0x9799, /* 0x00 */
- 0x979A, 0x979B, 0x979C, 0x979D, 0x97A1, 0x97A2, 0x97A3, 0x97A4, /* 0x10 */
- 0x97A5, 0x97A6, 0x97A7, 0x97A8, 0x97A9, 0x97AA, 0x97AB, 0x97AC, /* 0x10 */
- 0x97AD, 0x97AE, 0x97AF, 0x97B0, 0x97B1, 0x97B3, 0x97B4, 0x97B5, /* 0x20 */
- 0x97B6, 0x97B7, 0x97B8, 0x97B9, 0x97BA, 0x97BB, 0x97BC, 0x97BD, /* 0x20 */
- 0x9861, 0x9862, 0x9863, 0x9864, 0x9865, 0x9866, 0x9867, 0x9868, /* 0x30 */
- 0x9869, 0x986A, 0x986B, 0x986C, 0x986D, 0x986E, 0x986F, 0x9870, /* 0x30 */
- 0x9871, 0x9873, 0x9874, 0x9875, 0x9876, 0x9877, 0x9878, 0x9879, /* 0x40 */
- 0x987A, 0x987B, 0x987C, 0x987D, 0x9881, 0x9882, 0x9883, 0x9884, /* 0x40 */
- 0x9885, 0x9886, 0x9887, 0x9888, 0x9889, 0x988A, 0x988B, 0x988C, /* 0x50 */
- 0x988D, 0x988E, 0x988F, 0x9890, 0x9891, 0x9893, 0x9894, 0x9895, /* 0x50 */
- 0x9896, 0x9897, 0x9898, 0x9899, 0x989A, 0x989B, 0x989C, 0x989D, /* 0x60 */
- 0x98A1, 0x98A2, 0x98A3, 0x98A4, 0x98A5, 0x98A6, 0x98A7, 0x98A8, /* 0x60 */
- 0x98A9, 0x98AA, 0x98AB, 0x98AC, 0x98AD, 0x98AE, 0x98AF, 0x98B0, /* 0x70 */
- 0x98B1, 0x98B3, 0x98B4, 0x98B5, 0x98B6, 0x98B7, 0x98B8, 0x98B9, /* 0x70 */
- 0x98BA, 0x98BB, 0x98BC, 0x98BD, 0x98C1, 0x98C2, 0x98C3, 0x98C4, /* 0x80 */
- 0x98C5, 0x98C6, 0x98C7, 0x98C8, 0x98C9, 0x98CA, 0x98CB, 0x98CC, /* 0x80 */
- 0x98CD, 0x98CE, 0x98CF, 0x98D0, 0x98D1, 0x98D3, 0x98D4, 0x98D5, /* 0x90 */
- 0x98D6, 0x98D7, 0x98D8, 0x98D9, 0x98DA, 0x98DB, 0x98DC, 0x98DD, /* 0x90 */
- 0x98E1, 0x98E2, 0x98E3, 0x98E4, 0x98E5, 0x98E6, 0x98E7, 0x98E8, /* 0xA0 */
- 0x98E9, 0x98EA, 0x98EB, 0x98EC, 0x98ED, 0x98EE, 0x98EF, 0x98F0, /* 0xA0 */
- 0x98F1, 0x98F3, 0x98F4, 0x98F5, 0x98F6, 0x98F7, 0x98F8, 0x98F9, /* 0xB0 */
- 0x98FA, 0x98FB, 0x98FC, 0x98FD, 0x9941, 0x9942, 0x9943, 0x9944, /* 0xB0 */
- 0x9945, 0x9946, 0x9947, 0x9948, 0x9949, 0x994A, 0x994B, 0x994C, /* 0xC0 */
- 0x994D, 0x994E, 0x994F, 0x9950, 0x9951, 0x9953, 0x9954, 0x9955, /* 0xC0 */
- 0x9956, 0x9957, 0x9958, 0x9959, 0x995A, 0x995B, 0x995C, 0x995D, /* 0xD0 */
- 0x9961, 0x9962, 0x9963, 0x9964, 0x9965, 0x9966, 0x9967, 0x9968, /* 0xD0 */
- 0x9969, 0x996A, 0x996B, 0x996C, 0x996D, 0x996E, 0x996F, 0x9970, /* 0xE0 */
- 0x9971, 0x9973, 0x9974, 0x9975, 0x9976, 0x9977, 0x9978, 0x9979, /* 0xE0 */
- 0x997A, 0x997B, 0x997C, 0x997D, 0x9981, 0x9982, 0x9983, 0x9984, /* 0xF0 */
- 0x9985, 0x9986, 0x9987, 0x9988, 0x9989, 0x998A, 0x998B, 0x998C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_B6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x998D, 0x998E, 0x998F, 0x9990, 0x9991, 0x9993, 0x9994, 0x9995, /* 0x00 */
- 0x9996, 0x9997, 0x9998, 0x9999, 0x999A, 0x999B, 0x999C, 0x999D, /* 0x00 */
- 0x99A1, 0x99A2, 0x99A3, 0x99A4, 0x99A5, 0x99A6, 0x99A7, 0x99A8, /* 0x10 */
- 0x99A9, 0x99AA, 0x99AB, 0x99AC, 0x99AD, 0x99AE, 0x99AF, 0x99B0, /* 0x10 */
- 0x99B1, 0x99B3, 0x99B4, 0x99B5, 0x99B6, 0x99B7, 0x99B8, 0x99B9, /* 0x20 */
- 0x99BA, 0x99BB, 0x99BC, 0x99BD, 0x99C1, 0x99C2, 0x99C3, 0x99C4, /* 0x20 */
- 0x99C5, 0x99C6, 0x99C7, 0x99C8, 0x99C9, 0x99CA, 0x99CB, 0x99CC, /* 0x30 */
- 0x99CD, 0x99CE, 0x99CF, 0x99D0, 0x99D1, 0x99D3, 0x99D4, 0x99D5, /* 0x30 */
- 0x99D6, 0x99D7, 0x99D8, 0x99D9, 0x99DA, 0x99DB, 0x99DC, 0x99DD, /* 0x40 */
- 0x99E1, 0x99E2, 0x99E3, 0x99E4, 0x99E5, 0x99E6, 0x99E7, 0x99E8, /* 0x40 */
- 0x99E9, 0x99EA, 0x99EB, 0x99EC, 0x99ED, 0x99EE, 0x99EF, 0x99F0, /* 0x50 */
- 0x99F1, 0x99F3, 0x99F4, 0x99F5, 0x99F6, 0x99F7, 0x99F8, 0x99F9, /* 0x50 */
- 0x99FA, 0x99FB, 0x99FC, 0x99FD, 0x9A41, 0x9A42, 0x9A43, 0x9A44, /* 0x60 */
- 0x9A45, 0x9A46, 0x9A47, 0x9A48, 0x9A49, 0x9A4A, 0x9A4B, 0x9A4C, /* 0x60 */
- 0x9A4D, 0x9A4E, 0x9A4F, 0x9A50, 0x9A51, 0x9A53, 0x9A54, 0x9A55, /* 0x70 */
- 0x9A56, 0x9A57, 0x9A58, 0x9A59, 0x9A5A, 0x9A5B, 0x9A5C, 0x9A5D, /* 0x70 */
- 0x9A61, 0x9A62, 0x9A63, 0x9A64, 0x9A65, 0x9A66, 0x9A67, 0x9A68, /* 0x80 */
- 0x9A69, 0x9A6A, 0x9A6B, 0x9A6C, 0x9A6D, 0x9A6E, 0x9A6F, 0x9A70, /* 0x80 */
- 0x9A71, 0x9A73, 0x9A74, 0x9A75, 0x9A76, 0x9A77, 0x9A78, 0x9A79, /* 0x90 */
- 0x9A7A, 0x9A7B, 0x9A7C, 0x9A7D, 0x9A81, 0x9A82, 0x9A83, 0x9A84, /* 0x90 */
- 0x9A85, 0x9A86, 0x9A87, 0x9A88, 0x9A89, 0x9A8A, 0x9A8B, 0x9A8C, /* 0xA0 */
- 0x9A8D, 0x9A8E, 0x9A8F, 0x9A90, 0x9A91, 0x9A93, 0x9A94, 0x9A95, /* 0xA0 */
- 0x9A96, 0x9A97, 0x9A98, 0x9A99, 0x9A9A, 0x9A9B, 0x9A9C, 0x9A9D, /* 0xB0 */
- 0x9AA1, 0x9AA2, 0x9AA3, 0x9AA4, 0x9AA5, 0x9AA6, 0x9AA7, 0x9AA8, /* 0xB0 */
- 0x9AA9, 0x9AAA, 0x9AAB, 0x9AAC, 0x9AAD, 0x9AAE, 0x9AAF, 0x9AB0, /* 0xC0 */
- 0x9AB1, 0x9AB3, 0x9AB4, 0x9AB5, 0x9AB6, 0x9AB7, 0x9AB8, 0x9AB9, /* 0xC0 */
- 0x9ABA, 0x9ABB, 0x9ABC, 0x9ABD, 0x9AC1, 0x9AC2, 0x9AC3, 0x9AC4, /* 0xD0 */
- 0x9AC5, 0x9AC6, 0x9AC7, 0x9AC8, 0x9AC9, 0x9ACA, 0x9ACB, 0x9ACC, /* 0xD0 */
- 0x9ACD, 0x9ACE, 0x9ACF, 0x9AD0, 0x9AD1, 0x9AD3, 0x9AD4, 0x9AD5, /* 0xE0 */
- 0x9AD6, 0x9AD7, 0x9AD8, 0x9AD9, 0x9ADA, 0x9ADB, 0x9ADC, 0x9ADD, /* 0xE0 */
- 0x9AE1, 0x9AE2, 0x9AE3, 0x9AE4, 0x9AE5, 0x9AE6, 0x9AE7, 0x9AE8, /* 0xF0 */
- 0x9AE9, 0x9AEA, 0x9AEB, 0x9AEC, 0x9AED, 0x9AEE, 0x9AEF, 0x9AF0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_B7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9AF1, 0x9AF3, 0x9AF4, 0x9AF5, 0x9AF6, 0x9AF7, 0x9AF8, 0x9AF9, /* 0x00 */
- 0x9AFA, 0x9AFB, 0x9AFC, 0x9AFD, 0x9B41, 0x9B42, 0x9B43, 0x9B44, /* 0x00 */
- 0x9B45, 0x9B46, 0x9B47, 0x9B48, 0x9B49, 0x9B4A, 0x9B4B, 0x9B4C, /* 0x10 */
- 0x9B4D, 0x9B4E, 0x9B4F, 0x9B50, 0x9B51, 0x9B53, 0x9B54, 0x9B55, /* 0x10 */
- 0x9B56, 0x9B57, 0x9B58, 0x9B59, 0x9B5A, 0x9B5B, 0x9B5C, 0x9B5D, /* 0x20 */
- 0x9B61, 0x9B62, 0x9B63, 0x9B64, 0x9B65, 0x9B66, 0x9B67, 0x9B68, /* 0x20 */
- 0x9B69, 0x9B6A, 0x9B6B, 0x9B6C, 0x9B6D, 0x9B6E, 0x9B6F, 0x9B70, /* 0x30 */
- 0x9B71, 0x9B73, 0x9B74, 0x9B75, 0x9B76, 0x9B77, 0x9B78, 0x9B79, /* 0x30 */
- 0x9B7A, 0x9B7B, 0x9B7C, 0x9B7D, 0x9B81, 0x9B82, 0x9B83, 0x9B84, /* 0x40 */
- 0x9B85, 0x9B86, 0x9B87, 0x9B88, 0x9B89, 0x9B8A, 0x9B8B, 0x9B8C, /* 0x40 */
- 0x9B8D, 0x9B8E, 0x9B8F, 0x9B90, 0x9B91, 0x9B93, 0x9B94, 0x9B95, /* 0x50 */
- 0x9B96, 0x9B97, 0x9B98, 0x9B99, 0x9B9A, 0x9B9B, 0x9B9C, 0x9B9D, /* 0x50 */
- 0x9BA1, 0x9BA2, 0x9BA3, 0x9BA4, 0x9BA5, 0x9BA6, 0x9BA7, 0x9BA8, /* 0x60 */
- 0x9BA9, 0x9BAA, 0x9BAB, 0x9BAC, 0x9BAD, 0x9BAE, 0x9BAF, 0x9BB0, /* 0x60 */
- 0x9BB1, 0x9BB3, 0x9BB4, 0x9BB5, 0x9BB6, 0x9BB7, 0x9BB8, 0x9BB9, /* 0x70 */
- 0x9BBA, 0x9BBB, 0x9BBC, 0x9BBD, 0x9C61, 0x9C62, 0x9C63, 0x9C64, /* 0x70 */
- 0x9C65, 0x9C66, 0x9C67, 0x9C68, 0x9C69, 0x9C6A, 0x9C6B, 0x9C6C, /* 0x80 */
- 0x9C6D, 0x9C6E, 0x9C6F, 0x9C70, 0x9C71, 0x9C73, 0x9C74, 0x9C75, /* 0x80 */
- 0x9C76, 0x9C77, 0x9C78, 0x9C79, 0x9C7A, 0x9C7B, 0x9C7C, 0x9C7D, /* 0x90 */
- 0x9C81, 0x9C82, 0x9C83, 0x9C84, 0x9C85, 0x9C86, 0x9C87, 0x9C88, /* 0x90 */
- 0x9C89, 0x9C8A, 0x9C8B, 0x9C8C, 0x9C8D, 0x9C8E, 0x9C8F, 0x9C90, /* 0xA0 */
- 0x9C91, 0x9C93, 0x9C94, 0x9C95, 0x9C96, 0x9C97, 0x9C98, 0x9C99, /* 0xA0 */
- 0x9C9A, 0x9C9B, 0x9C9C, 0x9C9D, 0x9CA1, 0x9CA2, 0x9CA3, 0x9CA4, /* 0xB0 */
- 0x9CA5, 0x9CA6, 0x9CA7, 0x9CA8, 0x9CA9, 0x9CAA, 0x9CAB, 0x9CAC, /* 0xB0 */
- 0x9CAD, 0x9CAE, 0x9CAF, 0x9CB0, 0x9CB1, 0x9CB3, 0x9CB4, 0x9CB5, /* 0xC0 */
- 0x9CB6, 0x9CB7, 0x9CB8, 0x9CB9, 0x9CBA, 0x9CBB, 0x9CBC, 0x9CBD, /* 0xC0 */
- 0x9CC1, 0x9CC2, 0x9CC3, 0x9CC4, 0x9CC5, 0x9CC6, 0x9CC7, 0x9CC8, /* 0xD0 */
- 0x9CC9, 0x9CCA, 0x9CCB, 0x9CCC, 0x9CCD, 0x9CCE, 0x9CCF, 0x9CD0, /* 0xD0 */
- 0x9CD1, 0x9CD3, 0x9CD4, 0x9CD5, 0x9CD6, 0x9CD7, 0x9CD8, 0x9CD9, /* 0xE0 */
- 0x9CDA, 0x9CDB, 0x9CDC, 0x9CDD, 0x9CE1, 0x9CE2, 0x9CE3, 0x9CE4, /* 0xE0 */
- 0x9CE5, 0x9CE6, 0x9CE7, 0x9CE8, 0x9CE9, 0x9CEA, 0x9CEB, 0x9CEC, /* 0xF0 */
- 0x9CED, 0x9CEE, 0x9CEF, 0x9CF0, 0x9CF1, 0x9CF3, 0x9CF4, 0x9CF5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_B8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9CF6, 0x9CF7, 0x9CF8, 0x9CF9, 0x9CFA, 0x9CFB, 0x9CFC, 0x9CFD, /* 0x00 */
- 0x9D41, 0x9D42, 0x9D43, 0x9D44, 0x9D45, 0x9D46, 0x9D47, 0x9D48, /* 0x00 */
- 0x9D49, 0x9D4A, 0x9D4B, 0x9D4C, 0x9D4D, 0x9D4E, 0x9D4F, 0x9D50, /* 0x10 */
- 0x9D51, 0x9D53, 0x9D54, 0x9D55, 0x9D56, 0x9D57, 0x9D58, 0x9D59, /* 0x10 */
- 0x9D5A, 0x9D5B, 0x9D5C, 0x9D5D, 0x9D61, 0x9D62, 0x9D63, 0x9D64, /* 0x20 */
- 0x9D65, 0x9D66, 0x9D67, 0x9D68, 0x9D69, 0x9D6A, 0x9D6B, 0x9D6C, /* 0x20 */
- 0x9D6D, 0x9D6E, 0x9D6F, 0x9D70, 0x9D71, 0x9D73, 0x9D74, 0x9D75, /* 0x30 */
- 0x9D76, 0x9D77, 0x9D78, 0x9D79, 0x9D7A, 0x9D7B, 0x9D7C, 0x9D7D, /* 0x30 */
- 0x9D81, 0x9D82, 0x9D83, 0x9D84, 0x9D85, 0x9D86, 0x9D87, 0x9D88, /* 0x40 */
- 0x9D89, 0x9D8A, 0x9D8B, 0x9D8C, 0x9D8D, 0x9D8E, 0x9D8F, 0x9D90, /* 0x40 */
- 0x9D91, 0x9D93, 0x9D94, 0x9D95, 0x9D96, 0x9D97, 0x9D98, 0x9D99, /* 0x50 */
- 0x9D9A, 0x9D9B, 0x9D9C, 0x9D9D, 0x9DA1, 0x9DA2, 0x9DA3, 0x9DA4, /* 0x50 */
- 0x9DA5, 0x9DA6, 0x9DA7, 0x9DA8, 0x9DA9, 0x9DAA, 0x9DAB, 0x9DAC, /* 0x60 */
- 0x9DAD, 0x9DAE, 0x9DAF, 0x9DB0, 0x9DB1, 0x9DB3, 0x9DB4, 0x9DB5, /* 0x60 */
- 0x9DB6, 0x9DB7, 0x9DB8, 0x9DB9, 0x9DBA, 0x9DBB, 0x9DBC, 0x9DBD, /* 0x70 */
- 0x9DC1, 0x9DC2, 0x9DC3, 0x9DC4, 0x9DC5, 0x9DC6, 0x9DC7, 0x9DC8, /* 0x70 */
- 0x9DC9, 0x9DCA, 0x9DCB, 0x9DCC, 0x9DCD, 0x9DCE, 0x9DCF, 0x9DD0, /* 0x80 */
- 0x9DD1, 0x9DD3, 0x9DD4, 0x9DD5, 0x9DD6, 0x9DD7, 0x9DD8, 0x9DD9, /* 0x80 */
- 0x9DDA, 0x9DDB, 0x9DDC, 0x9DDD, 0x9DE1, 0x9DE2, 0x9DE3, 0x9DE4, /* 0x90 */
- 0x9DE5, 0x9DE6, 0x9DE7, 0x9DE8, 0x9DE9, 0x9DEA, 0x9DEB, 0x9DEC, /* 0x90 */
- 0x9DED, 0x9DEE, 0x9DEF, 0x9DF0, 0x9DF1, 0x9DF3, 0x9DF4, 0x9DF5, /* 0xA0 */
- 0x9DF6, 0x9DF7, 0x9DF8, 0x9DF9, 0x9DFA, 0x9DFB, 0x9DFC, 0x9DFD, /* 0xA0 */
- 0x9E41, 0x9E42, 0x9E43, 0x9E44, 0x9E45, 0x9E46, 0x9E47, 0x9E48, /* 0xB0 */
- 0x9E49, 0x9E4A, 0x9E4B, 0x9E4C, 0x9E4D, 0x9E4E, 0x9E4F, 0x9E50, /* 0xB0 */
- 0x9E51, 0x9E53, 0x9E54, 0x9E55, 0x9E56, 0x9E57, 0x9E58, 0x9E59, /* 0xC0 */
- 0x9E5A, 0x9E5B, 0x9E5C, 0x9E5D, 0x9E61, 0x9E62, 0x9E63, 0x9E64, /* 0xC0 */
- 0x9E65, 0x9E66, 0x9E67, 0x9E68, 0x9E69, 0x9E6A, 0x9E6B, 0x9E6C, /* 0xD0 */
- 0x9E6D, 0x9E6E, 0x9E6F, 0x9E70, 0x9E71, 0x9E73, 0x9E74, 0x9E75, /* 0xD0 */
- 0x9E76, 0x9E77, 0x9E78, 0x9E79, 0x9E7A, 0x9E7B, 0x9E7C, 0x9E7D, /* 0xE0 */
- 0x9E81, 0x9E82, 0x9E83, 0x9E84, 0x9E85, 0x9E86, 0x9E87, 0x9E88, /* 0xE0 */
- 0x9E89, 0x9E8A, 0x9E8B, 0x9E8C, 0x9E8D, 0x9E8E, 0x9E8F, 0x9E90, /* 0xF0 */
- 0x9E91, 0x9E93, 0x9E94, 0x9E95, 0x9E96, 0x9E97, 0x9E98, 0x9E99 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_B9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9E9A, 0x9E9B, 0x9E9C, 0x9E9D, 0x9EA1, 0x9EA2, 0x9EA3, 0x9EA4, /* 0x00 */
- 0x9EA5, 0x9EA6, 0x9EA7, 0x9EA8, 0x9EA9, 0x9EAA, 0x9EAB, 0x9EAC, /* 0x00 */
- 0x9EAD, 0x9EAE, 0x9EAF, 0x9EB0, 0x9EB1, 0x9EB3, 0x9EB4, 0x9EB5, /* 0x10 */
- 0x9EB6, 0x9EB7, 0x9EB8, 0x9EB9, 0x9EBA, 0x9EBB, 0x9EBC, 0x9EBD, /* 0x10 */
- 0x9EC1, 0x9EC2, 0x9EC3, 0x9EC4, 0x9EC5, 0x9EC6, 0x9EC7, 0x9EC8, /* 0x20 */
- 0x9EC9, 0x9ECA, 0x9ECB, 0x9ECC, 0x9ECD, 0x9ECE, 0x9ECF, 0x9ED0, /* 0x20 */
- 0x9ED1, 0x9ED3, 0x9ED4, 0x9ED5, 0x9ED6, 0x9ED7, 0x9ED8, 0x9ED9, /* 0x30 */
- 0x9EDA, 0x9EDB, 0x9EDC, 0x9EDD, 0x9EE1, 0x9EE2, 0x9EE3, 0x9EE4, /* 0x30 */
- 0x9EE5, 0x9EE6, 0x9EE7, 0x9EE8, 0x9EE9, 0x9EEA, 0x9EEB, 0x9EEC, /* 0x40 */
- 0x9EED, 0x9EEE, 0x9EEF, 0x9EF0, 0x9EF1, 0x9EF3, 0x9EF4, 0x9EF5, /* 0x40 */
- 0x9EF6, 0x9EF7, 0x9EF8, 0x9EF9, 0x9EFA, 0x9EFB, 0x9EFC, 0x9EFD, /* 0x50 */
- 0x9F41, 0x9F42, 0x9F43, 0x9F44, 0x9F45, 0x9F46, 0x9F47, 0x9F48, /* 0x50 */
- 0x9F49, 0x9F4A, 0x9F4B, 0x9F4C, 0x9F4D, 0x9F4E, 0x9F4F, 0x9F50, /* 0x60 */
- 0x9F51, 0x9F53, 0x9F54, 0x9F55, 0x9F56, 0x9F57, 0x9F58, 0x9F59, /* 0x60 */
- 0x9F5A, 0x9F5B, 0x9F5C, 0x9F5D, 0x9F61, 0x9F62, 0x9F63, 0x9F64, /* 0x70 */
- 0x9F65, 0x9F66, 0x9F67, 0x9F68, 0x9F69, 0x9F6A, 0x9F6B, 0x9F6C, /* 0x70 */
- 0x9F6D, 0x9F6E, 0x9F6F, 0x9F70, 0x9F71, 0x9F73, 0x9F74, 0x9F75, /* 0x80 */
- 0x9F76, 0x9F77, 0x9F78, 0x9F79, 0x9F7A, 0x9F7B, 0x9F7C, 0x9F7D, /* 0x80 */
- 0x9F81, 0x9F82, 0x9F83, 0x9F84, 0x9F85, 0x9F86, 0x9F87, 0x9F88, /* 0x90 */
- 0x9F89, 0x9F8A, 0x9F8B, 0x9F8C, 0x9F8D, 0x9F8E, 0x9F8F, 0x9F90, /* 0x90 */
- 0x9F91, 0x9F93, 0x9F94, 0x9F95, 0x9F96, 0x9F97, 0x9F98, 0x9F99, /* 0xA0 */
- 0x9F9A, 0x9F9B, 0x9F9C, 0x9F9D, 0x9FA1, 0x9FA2, 0x9FA3, 0x9FA4, /* 0xA0 */
- 0x9FA5, 0x9FA6, 0x9FA7, 0x9FA8, 0x9FA9, 0x9FAA, 0x9FAB, 0x9FAC, /* 0xB0 */
- 0x9FAD, 0x9FAE, 0x9FAF, 0x9FB0, 0x9FB1, 0x9FB3, 0x9FB4, 0x9FB5, /* 0xB0 */
- 0x9FB6, 0x9FB7, 0x9FB8, 0x9FB9, 0x9FBA, 0x9FBB, 0x9FBC, 0x9FBD, /* 0xC0 */
- 0xA061, 0xA062, 0xA063, 0xA064, 0xA065, 0xA066, 0xA067, 0xA068, /* 0xC0 */
- 0xA069, 0xA06A, 0xA06B, 0xA06C, 0xA06D, 0xA06E, 0xA06F, 0xA070, /* 0xD0 */
- 0xA071, 0xA073, 0xA074, 0xA075, 0xA076, 0xA077, 0xA078, 0xA079, /* 0xD0 */
- 0xA07A, 0xA07B, 0xA07C, 0xA07D, 0xA081, 0xA082, 0xA083, 0xA084, /* 0xE0 */
- 0xA085, 0xA086, 0xA087, 0xA088, 0xA089, 0xA08A, 0xA08B, 0xA08C, /* 0xE0 */
- 0xA08D, 0xA08E, 0xA08F, 0xA090, 0xA091, 0xA093, 0xA094, 0xA095, /* 0xF0 */
- 0xA096, 0xA097, 0xA098, 0xA099, 0xA09A, 0xA09B, 0xA09C, 0xA09D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_BA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA0A1, 0xA0A2, 0xA0A3, 0xA0A4, 0xA0A5, 0xA0A6, 0xA0A7, 0xA0A8, /* 0x00 */
- 0xA0A9, 0xA0AA, 0xA0AB, 0xA0AC, 0xA0AD, 0xA0AE, 0xA0AF, 0xA0B0, /* 0x00 */
- 0xA0B1, 0xA0B3, 0xA0B4, 0xA0B5, 0xA0B6, 0xA0B7, 0xA0B8, 0xA0B9, /* 0x10 */
- 0xA0BA, 0xA0BB, 0xA0BC, 0xA0BD, 0xA0C1, 0xA0C2, 0xA0C3, 0xA0C4, /* 0x10 */
- 0xA0C5, 0xA0C6, 0xA0C7, 0xA0C8, 0xA0C9, 0xA0CA, 0xA0CB, 0xA0CC, /* 0x20 */
- 0xA0CD, 0xA0CE, 0xA0CF, 0xA0D0, 0xA0D1, 0xA0D3, 0xA0D4, 0xA0D5, /* 0x20 */
- 0xA0D6, 0xA0D7, 0xA0D8, 0xA0D9, 0xA0DA, 0xA0DB, 0xA0DC, 0xA0DD, /* 0x30 */
- 0xA0E1, 0xA0E2, 0xA0E3, 0xA0E4, 0xA0E5, 0xA0E6, 0xA0E7, 0xA0E8, /* 0x30 */
- 0xA0E9, 0xA0EA, 0xA0EB, 0xA0EC, 0xA0ED, 0xA0EE, 0xA0EF, 0xA0F0, /* 0x40 */
- 0xA0F1, 0xA0F3, 0xA0F4, 0xA0F5, 0xA0F6, 0xA0F7, 0xA0F8, 0xA0F9, /* 0x40 */
- 0xA0FA, 0xA0FB, 0xA0FC, 0xA0FD, 0xA141, 0xA142, 0xA143, 0xA144, /* 0x50 */
- 0xA145, 0xA146, 0xA147, 0xA148, 0xA149, 0xA14A, 0xA14B, 0xA14C, /* 0x50 */
- 0xA14D, 0xA14E, 0xA14F, 0xA150, 0xA151, 0xA153, 0xA154, 0xA155, /* 0x60 */
- 0xA156, 0xA157, 0xA158, 0xA159, 0xA15A, 0xA15B, 0xA15C, 0xA15D, /* 0x60 */
- 0xA161, 0xA162, 0xA163, 0xA164, 0xA165, 0xA166, 0xA167, 0xA168, /* 0x70 */
- 0xA169, 0xA16A, 0xA16B, 0xA16C, 0xA16D, 0xA16E, 0xA16F, 0xA170, /* 0x70 */
- 0xA171, 0xA173, 0xA174, 0xA175, 0xA176, 0xA177, 0xA178, 0xA179, /* 0x80 */
- 0xA17A, 0xA17B, 0xA17C, 0xA17D, 0xA181, 0xA182, 0xA183, 0xA184, /* 0x80 */
- 0xA185, 0xA186, 0xA187, 0xA188, 0xA189, 0xA18A, 0xA18B, 0xA18C, /* 0x90 */
- 0xA18D, 0xA18E, 0xA18F, 0xA190, 0xA191, 0xA193, 0xA194, 0xA195, /* 0x90 */
- 0xA196, 0xA197, 0xA198, 0xA199, 0xA19A, 0xA19B, 0xA19C, 0xA19D, /* 0xA0 */
- 0xA1A1, 0xA1A2, 0xA1A3, 0xA1A4, 0xA1A5, 0xA1A6, 0xA1A7, 0xA1A8, /* 0xA0 */
- 0xA1A9, 0xA1AA, 0xA1AB, 0xA1AC, 0xA1AD, 0xA1AE, 0xA1AF, 0xA1B0, /* 0xB0 */
- 0xA1B1, 0xA1B3, 0xA1B4, 0xA1B5, 0xA1B6, 0xA1B7, 0xA1B8, 0xA1B9, /* 0xB0 */
- 0xA1BA, 0xA1BB, 0xA1BC, 0xA1BD, 0xA1C1, 0xA1C2, 0xA1C3, 0xA1C4, /* 0xC0 */
- 0xA1C5, 0xA1C6, 0xA1C7, 0xA1C8, 0xA1C9, 0xA1CA, 0xA1CB, 0xA1CC, /* 0xC0 */
- 0xA1CD, 0xA1CE, 0xA1CF, 0xA1D0, 0xA1D1, 0xA1D3, 0xA1D4, 0xA1D5, /* 0xD0 */
- 0xA1D6, 0xA1D7, 0xA1D8, 0xA1D9, 0xA1DA, 0xA1DB, 0xA1DC, 0xA1DD, /* 0xD0 */
- 0xA1E1, 0xA1E2, 0xA1E3, 0xA1E4, 0xA1E5, 0xA1E6, 0xA1E7, 0xA1E8, /* 0xE0 */
- 0xA1E9, 0xA1EA, 0xA1EB, 0xA1EC, 0xA1ED, 0xA1EE, 0xA1EF, 0xA1F0, /* 0xE0 */
- 0xA1F1, 0xA1F3, 0xA1F4, 0xA1F5, 0xA1F6, 0xA1F7, 0xA1F8, 0xA1F9, /* 0xF0 */
- 0xA1FA, 0xA1FB, 0xA1FC, 0xA1FD, 0xA241, 0xA242, 0xA243, 0xA244 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_BB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA245, 0xA246, 0xA247, 0xA248, 0xA249, 0xA24A, 0xA24B, 0xA24C, /* 0x00 */
- 0xA24D, 0xA24E, 0xA24F, 0xA250, 0xA251, 0xA253, 0xA254, 0xA255, /* 0x00 */
- 0xA256, 0xA257, 0xA258, 0xA259, 0xA25A, 0xA25B, 0xA25C, 0xA25D, /* 0x10 */
- 0xA261, 0xA262, 0xA263, 0xA264, 0xA265, 0xA266, 0xA267, 0xA268, /* 0x10 */
- 0xA269, 0xA26A, 0xA26B, 0xA26C, 0xA26D, 0xA26E, 0xA26F, 0xA270, /* 0x20 */
- 0xA271, 0xA273, 0xA274, 0xA275, 0xA276, 0xA277, 0xA278, 0xA279, /* 0x20 */
- 0xA27A, 0xA27B, 0xA27C, 0xA27D, 0xA281, 0xA282, 0xA283, 0xA284, /* 0x30 */
- 0xA285, 0xA286, 0xA287, 0xA288, 0xA289, 0xA28A, 0xA28B, 0xA28C, /* 0x30 */
- 0xA28D, 0xA28E, 0xA28F, 0xA290, 0xA291, 0xA293, 0xA294, 0xA295, /* 0x40 */
- 0xA296, 0xA297, 0xA298, 0xA299, 0xA29A, 0xA29B, 0xA29C, 0xA29D, /* 0x40 */
- 0xA2A1, 0xA2A2, 0xA2A3, 0xA2A4, 0xA2A5, 0xA2A6, 0xA2A7, 0xA2A8, /* 0x50 */
- 0xA2A9, 0xA2AA, 0xA2AB, 0xA2AC, 0xA2AD, 0xA2AE, 0xA2AF, 0xA2B0, /* 0x50 */
- 0xA2B1, 0xA2B3, 0xA2B4, 0xA2B5, 0xA2B6, 0xA2B7, 0xA2B8, 0xA2B9, /* 0x60 */
- 0xA2BA, 0xA2BB, 0xA2BC, 0xA2BD, 0xA2C1, 0xA2C2, 0xA2C3, 0xA2C4, /* 0x60 */
- 0xA2C5, 0xA2C6, 0xA2C7, 0xA2C8, 0xA2C9, 0xA2CA, 0xA2CB, 0xA2CC, /* 0x70 */
- 0xA2CD, 0xA2CE, 0xA2CF, 0xA2D0, 0xA2D1, 0xA2D3, 0xA2D4, 0xA2D5, /* 0x70 */
- 0xA2D6, 0xA2D7, 0xA2D8, 0xA2D9, 0xA2DA, 0xA2DB, 0xA2DC, 0xA2DD, /* 0x80 */
- 0xA2E1, 0xA2E2, 0xA2E3, 0xA2E4, 0xA2E5, 0xA2E6, 0xA2E7, 0xA2E8, /* 0x80 */
- 0xA2E9, 0xA2EA, 0xA2EB, 0xA2EC, 0xA2ED, 0xA2EE, 0xA2EF, 0xA2F0, /* 0x90 */
- 0xA2F1, 0xA2F3, 0xA2F4, 0xA2F5, 0xA2F6, 0xA2F7, 0xA2F8, 0xA2F9, /* 0x90 */
- 0xA2FA, 0xA2FB, 0xA2FC, 0xA2FD, 0xA341, 0xA342, 0xA343, 0xA344, /* 0xA0 */
- 0xA345, 0xA346, 0xA347, 0xA348, 0xA349, 0xA34A, 0xA34B, 0xA34C, /* 0xA0 */
- 0xA34D, 0xA34E, 0xA34F, 0xA350, 0xA351, 0xA353, 0xA354, 0xA355, /* 0xB0 */
- 0xA356, 0xA357, 0xA358, 0xA359, 0xA35A, 0xA35B, 0xA35C, 0xA35D, /* 0xB0 */
- 0xA361, 0xA362, 0xA363, 0xA364, 0xA365, 0xA366, 0xA367, 0xA368, /* 0xC0 */
- 0xA369, 0xA36A, 0xA36B, 0xA36C, 0xA36D, 0xA36E, 0xA36F, 0xA370, /* 0xC0 */
- 0xA371, 0xA373, 0xA374, 0xA375, 0xA376, 0xA377, 0xA378, 0xA379, /* 0xD0 */
- 0xA37A, 0xA37B, 0xA37C, 0xA37D, 0xA381, 0xA382, 0xA383, 0xA384, /* 0xD0 */
- 0xA385, 0xA386, 0xA387, 0xA388, 0xA389, 0xA38A, 0xA38B, 0xA38C, /* 0xE0 */
- 0xA38D, 0xA38E, 0xA38F, 0xA390, 0xA391, 0xA393, 0xA394, 0xA395, /* 0xE0 */
- 0xA396, 0xA397, 0xA398, 0xA399, 0xA39A, 0xA39B, 0xA39C, 0xA39D, /* 0xF0 */
- 0xA3A1, 0xA3A2, 0xA3A3, 0xA3A4, 0xA3A5, 0xA3A6, 0xA3A7, 0xA3A8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_BC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA3A9, 0xA3AA, 0xA3AB, 0xA3AC, 0xA3AD, 0xA3AE, 0xA3AF, 0xA3B0, /* 0x00 */
- 0xA3B1, 0xA3B3, 0xA3B4, 0xA3B5, 0xA3B6, 0xA3B7, 0xA3B8, 0xA3B9, /* 0x00 */
- 0xA3BA, 0xA3BB, 0xA3BC, 0xA3BD, 0xA461, 0xA462, 0xA463, 0xA464, /* 0x10 */
- 0xA465, 0xA466, 0xA467, 0xA468, 0xA469, 0xA46A, 0xA46B, 0xA46C, /* 0x10 */
- 0xA46D, 0xA46E, 0xA46F, 0xA470, 0xA471, 0xA473, 0xA474, 0xA475, /* 0x20 */
- 0xA476, 0xA477, 0xA478, 0xA479, 0xA47A, 0xA47B, 0xA47C, 0xA47D, /* 0x20 */
- 0xA481, 0xA482, 0xA483, 0xA484, 0xA485, 0xA486, 0xA487, 0xA488, /* 0x30 */
- 0xA489, 0xA48A, 0xA48B, 0xA48C, 0xA48D, 0xA48E, 0xA48F, 0xA490, /* 0x30 */
- 0xA491, 0xA493, 0xA494, 0xA495, 0xA496, 0xA497, 0xA498, 0xA499, /* 0x40 */
- 0xA49A, 0xA49B, 0xA49C, 0xA49D, 0xA4A1, 0xA4A2, 0xA4A3, 0xA4A4, /* 0x40 */
- 0xA4A5, 0xA4A6, 0xA4A7, 0xA4A8, 0xA4A9, 0xA4AA, 0xA4AB, 0xA4AC, /* 0x50 */
- 0xA4AD, 0xA4AE, 0xA4AF, 0xA4B0, 0xA4B1, 0xA4B3, 0xA4B4, 0xA4B5, /* 0x50 */
- 0xA4B6, 0xA4B7, 0xA4B8, 0xA4B9, 0xA4BA, 0xA4BB, 0xA4BC, 0xA4BD, /* 0x60 */
- 0xA4C1, 0xA4C2, 0xA4C3, 0xA4C4, 0xA4C5, 0xA4C6, 0xA4C7, 0xA4C8, /* 0x60 */
- 0xA4C9, 0xA4CA, 0xA4CB, 0xA4CC, 0xA4CD, 0xA4CE, 0xA4CF, 0xA4D0, /* 0x70 */
- 0xA4D1, 0xA4D3, 0xA4D4, 0xA4D5, 0xA4D6, 0xA4D7, 0xA4D8, 0xA4D9, /* 0x70 */
- 0xA4DA, 0xA4DB, 0xA4DC, 0xA4DD, 0xA4E1, 0xA4E2, 0xA4E3, 0xA4E4, /* 0x80 */
- 0xA4E5, 0xA4E6, 0xA4E7, 0xA4E8, 0xA4E9, 0xA4EA, 0xA4EB, 0xA4EC, /* 0x80 */
- 0xA4ED, 0xA4EE, 0xA4EF, 0xA4F0, 0xA4F1, 0xA4F3, 0xA4F4, 0xA4F5, /* 0x90 */
- 0xA4F6, 0xA4F7, 0xA4F8, 0xA4F9, 0xA4FA, 0xA4FB, 0xA4FC, 0xA4FD, /* 0x90 */
- 0xA541, 0xA542, 0xA543, 0xA544, 0xA545, 0xA546, 0xA547, 0xA548, /* 0xA0 */
- 0xA549, 0xA54A, 0xA54B, 0xA54C, 0xA54D, 0xA54E, 0xA54F, 0xA550, /* 0xA0 */
- 0xA551, 0xA553, 0xA554, 0xA555, 0xA556, 0xA557, 0xA558, 0xA559, /* 0xB0 */
- 0xA55A, 0xA55B, 0xA55C, 0xA55D, 0xA561, 0xA562, 0xA563, 0xA564, /* 0xB0 */
- 0xA565, 0xA566, 0xA567, 0xA568, 0xA569, 0xA56A, 0xA56B, 0xA56C, /* 0xC0 */
- 0xA56D, 0xA56E, 0xA56F, 0xA570, 0xA571, 0xA573, 0xA574, 0xA575, /* 0xC0 */
- 0xA576, 0xA577, 0xA578, 0xA579, 0xA57A, 0xA57B, 0xA57C, 0xA57D, /* 0xD0 */
- 0xA581, 0xA582, 0xA583, 0xA584, 0xA585, 0xA586, 0xA587, 0xA588, /* 0xD0 */
- 0xA589, 0xA58A, 0xA58B, 0xA58C, 0xA58D, 0xA58E, 0xA58F, 0xA590, /* 0xE0 */
- 0xA591, 0xA593, 0xA594, 0xA595, 0xA596, 0xA597, 0xA598, 0xA599, /* 0xE0 */
- 0xA59A, 0xA59B, 0xA59C, 0xA59D, 0xA5A1, 0xA5A2, 0xA5A3, 0xA5A4, /* 0xF0 */
- 0xA5A5, 0xA5A6, 0xA5A7, 0xA5A8, 0xA5A9, 0xA5AA, 0xA5AB, 0xA5AC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_BD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA5AD, 0xA5AE, 0xA5AF, 0xA5B0, 0xA5B1, 0xA5B3, 0xA5B4, 0xA5B5, /* 0x00 */
- 0xA5B6, 0xA5B7, 0xA5B8, 0xA5B9, 0xA5BA, 0xA5BB, 0xA5BC, 0xA5BD, /* 0x00 */
- 0xA5C1, 0xA5C2, 0xA5C3, 0xA5C4, 0xA5C5, 0xA5C6, 0xA5C7, 0xA5C8, /* 0x10 */
- 0xA5C9, 0xA5CA, 0xA5CB, 0xA5CC, 0xA5CD, 0xA5CE, 0xA5CF, 0xA5D0, /* 0x10 */
- 0xA5D1, 0xA5D3, 0xA5D4, 0xA5D5, 0xA5D6, 0xA5D7, 0xA5D8, 0xA5D9, /* 0x20 */
- 0xA5DA, 0xA5DB, 0xA5DC, 0xA5DD, 0xA5E1, 0xA5E2, 0xA5E3, 0xA5E4, /* 0x20 */
- 0xA5E5, 0xA5E6, 0xA5E7, 0xA5E8, 0xA5E9, 0xA5EA, 0xA5EB, 0xA5EC, /* 0x30 */
- 0xA5ED, 0xA5EE, 0xA5EF, 0xA5F0, 0xA5F1, 0xA5F3, 0xA5F4, 0xA5F5, /* 0x30 */
- 0xA5F6, 0xA5F7, 0xA5F8, 0xA5F9, 0xA5FA, 0xA5FB, 0xA5FC, 0xA5FD, /* 0x40 */
- 0xA641, 0xA642, 0xA643, 0xA644, 0xA645, 0xA646, 0xA647, 0xA648, /* 0x40 */
- 0xA649, 0xA64A, 0xA64B, 0xA64C, 0xA64D, 0xA64E, 0xA64F, 0xA650, /* 0x50 */
- 0xA651, 0xA653, 0xA654, 0xA655, 0xA656, 0xA657, 0xA658, 0xA659, /* 0x50 */
- 0xA65A, 0xA65B, 0xA65C, 0xA65D, 0xA661, 0xA662, 0xA663, 0xA664, /* 0x60 */
- 0xA665, 0xA666, 0xA667, 0xA668, 0xA669, 0xA66A, 0xA66B, 0xA66C, /* 0x60 */
- 0xA66D, 0xA66E, 0xA66F, 0xA670, 0xA671, 0xA673, 0xA674, 0xA675, /* 0x70 */
- 0xA676, 0xA677, 0xA678, 0xA679, 0xA67A, 0xA67B, 0xA67C, 0xA67D, /* 0x70 */
- 0xA681, 0xA682, 0xA683, 0xA684, 0xA685, 0xA686, 0xA687, 0xA688, /* 0x80 */
- 0xA689, 0xA68A, 0xA68B, 0xA68C, 0xA68D, 0xA68E, 0xA68F, 0xA690, /* 0x80 */
- 0xA691, 0xA693, 0xA694, 0xA695, 0xA696, 0xA697, 0xA698, 0xA699, /* 0x90 */
- 0xA69A, 0xA69B, 0xA69C, 0xA69D, 0xA6A1, 0xA6A2, 0xA6A3, 0xA6A4, /* 0x90 */
- 0xA6A5, 0xA6A6, 0xA6A7, 0xA6A8, 0xA6A9, 0xA6AA, 0xA6AB, 0xA6AC, /* 0xA0 */
- 0xA6AD, 0xA6AE, 0xA6AF, 0xA6B0, 0xA6B1, 0xA6B3, 0xA6B4, 0xA6B5, /* 0xA0 */
- 0xA6B6, 0xA6B7, 0xA6B8, 0xA6B9, 0xA6BA, 0xA6BB, 0xA6BC, 0xA6BD, /* 0xB0 */
- 0xA6C1, 0xA6C2, 0xA6C3, 0xA6C4, 0xA6C5, 0xA6C6, 0xA6C7, 0xA6C8, /* 0xB0 */
- 0xA6C9, 0xA6CA, 0xA6CB, 0xA6CC, 0xA6CD, 0xA6CE, 0xA6CF, 0xA6D0, /* 0xC0 */
- 0xA6D1, 0xA6D3, 0xA6D4, 0xA6D5, 0xA6D6, 0xA6D7, 0xA6D8, 0xA6D9, /* 0xC0 */
- 0xA6DA, 0xA6DB, 0xA6DC, 0xA6DD, 0xA6E1, 0xA6E2, 0xA6E3, 0xA6E4, /* 0xD0 */
- 0xA6E5, 0xA6E6, 0xA6E7, 0xA6E8, 0xA6E9, 0xA6EA, 0xA6EB, 0xA6EC, /* 0xD0 */
- 0xA6ED, 0xA6EE, 0xA6EF, 0xA6F0, 0xA6F1, 0xA6F3, 0xA6F4, 0xA6F5, /* 0xE0 */
- 0xA6F6, 0xA6F7, 0xA6F8, 0xA6F9, 0xA6FA, 0xA6FB, 0xA6FC, 0xA6FD, /* 0xE0 */
- 0xA741, 0xA742, 0xA743, 0xA744, 0xA745, 0xA746, 0xA747, 0xA748, /* 0xF0 */
- 0xA749, 0xA74A, 0xA74B, 0xA74C, 0xA74D, 0xA74E, 0xA74F, 0xA750 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_BE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA751, 0xA753, 0xA754, 0xA755, 0xA756, 0xA757, 0xA758, 0xA759, /* 0x00 */
- 0xA75A, 0xA75B, 0xA75C, 0xA75D, 0xA761, 0xA762, 0xA763, 0xA764, /* 0x00 */
- 0xA765, 0xA766, 0xA767, 0xA768, 0xA769, 0xA76A, 0xA76B, 0xA76C, /* 0x10 */
- 0xA76D, 0xA76E, 0xA76F, 0xA770, 0xA771, 0xA773, 0xA774, 0xA775, /* 0x10 */
- 0xA776, 0xA777, 0xA778, 0xA779, 0xA77A, 0xA77B, 0xA77C, 0xA77D, /* 0x20 */
- 0xA781, 0xA782, 0xA783, 0xA784, 0xA785, 0xA786, 0xA787, 0xA788, /* 0x20 */
- 0xA789, 0xA78A, 0xA78B, 0xA78C, 0xA78D, 0xA78E, 0xA78F, 0xA790, /* 0x30 */
- 0xA791, 0xA793, 0xA794, 0xA795, 0xA796, 0xA797, 0xA798, 0xA799, /* 0x30 */
- 0xA79A, 0xA79B, 0xA79C, 0xA79D, 0xA7A1, 0xA7A2, 0xA7A3, 0xA7A4, /* 0x40 */
- 0xA7A5, 0xA7A6, 0xA7A7, 0xA7A8, 0xA7A9, 0xA7AA, 0xA7AB, 0xA7AC, /* 0x40 */
- 0xA7AD, 0xA7AE, 0xA7AF, 0xA7B0, 0xA7B1, 0xA7B3, 0xA7B4, 0xA7B5, /* 0x50 */
- 0xA7B6, 0xA7B7, 0xA7B8, 0xA7B9, 0xA7BA, 0xA7BB, 0xA7BC, 0xA7BD, /* 0x50 */
- 0xA861, 0xA862, 0xA863, 0xA864, 0xA865, 0xA866, 0xA867, 0xA868, /* 0x60 */
- 0xA869, 0xA86A, 0xA86B, 0xA86C, 0xA86D, 0xA86E, 0xA86F, 0xA870, /* 0x60 */
- 0xA871, 0xA873, 0xA874, 0xA875, 0xA876, 0xA877, 0xA878, 0xA879, /* 0x70 */
- 0xA87A, 0xA87B, 0xA87C, 0xA87D, 0xA881, 0xA882, 0xA883, 0xA884, /* 0x70 */
- 0xA885, 0xA886, 0xA887, 0xA888, 0xA889, 0xA88A, 0xA88B, 0xA88C, /* 0x80 */
- 0xA88D, 0xA88E, 0xA88F, 0xA890, 0xA891, 0xA893, 0xA894, 0xA895, /* 0x80 */
- 0xA896, 0xA897, 0xA898, 0xA899, 0xA89A, 0xA89B, 0xA89C, 0xA89D, /* 0x90 */
- 0xA8A1, 0xA8A2, 0xA8A3, 0xA8A4, 0xA8A5, 0xA8A6, 0xA8A7, 0xA8A8, /* 0x90 */
- 0xA8A9, 0xA8AA, 0xA8AB, 0xA8AC, 0xA8AD, 0xA8AE, 0xA8AF, 0xA8B0, /* 0xA0 */
- 0xA8B1, 0xA8B3, 0xA8B4, 0xA8B5, 0xA8B6, 0xA8B7, 0xA8B8, 0xA8B9, /* 0xA0 */
- 0xA8BA, 0xA8BB, 0xA8BC, 0xA8BD, 0xA8C1, 0xA8C2, 0xA8C3, 0xA8C4, /* 0xB0 */
- 0xA8C5, 0xA8C6, 0xA8C7, 0xA8C8, 0xA8C9, 0xA8CA, 0xA8CB, 0xA8CC, /* 0xB0 */
- 0xA8CD, 0xA8CE, 0xA8CF, 0xA8D0, 0xA8D1, 0xA8D3, 0xA8D4, 0xA8D5, /* 0xC0 */
- 0xA8D6, 0xA8D7, 0xA8D8, 0xA8D9, 0xA8DA, 0xA8DB, 0xA8DC, 0xA8DD, /* 0xC0 */
- 0xA8E1, 0xA8E2, 0xA8E3, 0xA8E4, 0xA8E5, 0xA8E6, 0xA8E7, 0xA8E8, /* 0xD0 */
- 0xA8E9, 0xA8EA, 0xA8EB, 0xA8EC, 0xA8ED, 0xA8EE, 0xA8EF, 0xA8F0, /* 0xD0 */
- 0xA8F1, 0xA8F3, 0xA8F4, 0xA8F5, 0xA8F6, 0xA8F7, 0xA8F8, 0xA8F9, /* 0xE0 */
- 0xA8FA, 0xA8FB, 0xA8FC, 0xA8FD, 0xA941, 0xA942, 0xA943, 0xA944, /* 0xE0 */
- 0xA945, 0xA946, 0xA947, 0xA948, 0xA949, 0xA94A, 0xA94B, 0xA94C, /* 0xF0 */
- 0xA94D, 0xA94E, 0xA94F, 0xA950, 0xA951, 0xA953, 0xA954, 0xA955 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_BF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA956, 0xA957, 0xA958, 0xA959, 0xA95A, 0xA95B, 0xA95C, 0xA95D, /* 0x00 */
- 0xA961, 0xA962, 0xA963, 0xA964, 0xA965, 0xA966, 0xA967, 0xA968, /* 0x00 */
- 0xA969, 0xA96A, 0xA96B, 0xA96C, 0xA96D, 0xA96E, 0xA96F, 0xA970, /* 0x10 */
- 0xA971, 0xA973, 0xA974, 0xA975, 0xA976, 0xA977, 0xA978, 0xA979, /* 0x10 */
- 0xA97A, 0xA97B, 0xA97C, 0xA97D, 0xA981, 0xA982, 0xA983, 0xA984, /* 0x20 */
- 0xA985, 0xA986, 0xA987, 0xA988, 0xA989, 0xA98A, 0xA98B, 0xA98C, /* 0x20 */
- 0xA98D, 0xA98E, 0xA98F, 0xA990, 0xA991, 0xA993, 0xA994, 0xA995, /* 0x30 */
- 0xA996, 0xA997, 0xA998, 0xA999, 0xA99A, 0xA99B, 0xA99C, 0xA99D, /* 0x30 */
- 0xA9A1, 0xA9A2, 0xA9A3, 0xA9A4, 0xA9A5, 0xA9A6, 0xA9A7, 0xA9A8, /* 0x40 */
- 0xA9A9, 0xA9AA, 0xA9AB, 0xA9AC, 0xA9AD, 0xA9AE, 0xA9AF, 0xA9B0, /* 0x40 */
- 0xA9B1, 0xA9B3, 0xA9B4, 0xA9B5, 0xA9B6, 0xA9B7, 0xA9B8, 0xA9B9, /* 0x50 */
- 0xA9BA, 0xA9BB, 0xA9BC, 0xA9BD, 0xA9C1, 0xA9C2, 0xA9C3, 0xA9C4, /* 0x50 */
- 0xA9C5, 0xA9C6, 0xA9C7, 0xA9C8, 0xA9C9, 0xA9CA, 0xA9CB, 0xA9CC, /* 0x60 */
- 0xA9CD, 0xA9CE, 0xA9CF, 0xA9D0, 0xA9D1, 0xA9D3, 0xA9D4, 0xA9D5, /* 0x60 */
- 0xA9D6, 0xA9D7, 0xA9D8, 0xA9D9, 0xA9DA, 0xA9DB, 0xA9DC, 0xA9DD, /* 0x70 */
- 0xA9E1, 0xA9E2, 0xA9E3, 0xA9E4, 0xA9E5, 0xA9E6, 0xA9E7, 0xA9E8, /* 0x70 */
- 0xA9E9, 0xA9EA, 0xA9EB, 0xA9EC, 0xA9ED, 0xA9EE, 0xA9EF, 0xA9F0, /* 0x80 */
- 0xA9F1, 0xA9F3, 0xA9F4, 0xA9F5, 0xA9F6, 0xA9F7, 0xA9F8, 0xA9F9, /* 0x80 */
- 0xA9FA, 0xA9FB, 0xA9FC, 0xA9FD, 0xAA41, 0xAA42, 0xAA43, 0xAA44, /* 0x90 */
- 0xAA45, 0xAA46, 0xAA47, 0xAA48, 0xAA49, 0xAA4A, 0xAA4B, 0xAA4C, /* 0x90 */
- 0xAA4D, 0xAA4E, 0xAA4F, 0xAA50, 0xAA51, 0xAA53, 0xAA54, 0xAA55, /* 0xA0 */
- 0xAA56, 0xAA57, 0xAA58, 0xAA59, 0xAA5A, 0xAA5B, 0xAA5C, 0xAA5D, /* 0xA0 */
- 0xAA61, 0xAA62, 0xAA63, 0xAA64, 0xAA65, 0xAA66, 0xAA67, 0xAA68, /* 0xB0 */
- 0xAA69, 0xAA6A, 0xAA6B, 0xAA6C, 0xAA6D, 0xAA6E, 0xAA6F, 0xAA70, /* 0xB0 */
- 0xAA71, 0xAA73, 0xAA74, 0xAA75, 0xAA76, 0xAA77, 0xAA78, 0xAA79, /* 0xC0 */
- 0xAA7A, 0xAA7B, 0xAA7C, 0xAA7D, 0xAA81, 0xAA82, 0xAA83, 0xAA84, /* 0xC0 */
- 0xAA85, 0xAA86, 0xAA87, 0xAA88, 0xAA89, 0xAA8A, 0xAA8B, 0xAA8C, /* 0xD0 */
- 0xAA8D, 0xAA8E, 0xAA8F, 0xAA90, 0xAA91, 0xAA93, 0xAA94, 0xAA95, /* 0xD0 */
- 0xAA96, 0xAA97, 0xAA98, 0xAA99, 0xAA9A, 0xAA9B, 0xAA9C, 0xAA9D, /* 0xE0 */
- 0xAAA1, 0xAAA2, 0xAAA3, 0xAAA4, 0xAAA5, 0xAAA6, 0xAAA7, 0xAAA8, /* 0xE0 */
- 0xAAA9, 0xAAAA, 0xAAAB, 0xAAAC, 0xAAAD, 0xAAAE, 0xAAAF, 0xAAB0, /* 0xF0 */
- 0xAAB1, 0xAAB3, 0xAAB4, 0xAAB5, 0xAAB6, 0xAAB7, 0xAAB8, 0xAAB9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_C0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xAABA, 0xAABB, 0xAABC, 0xAABD, 0xAAC1, 0xAAC2, 0xAAC3, 0xAAC4, /* 0x00 */
- 0xAAC5, 0xAAC6, 0xAAC7, 0xAAC8, 0xAAC9, 0xAACA, 0xAACB, 0xAACC, /* 0x00 */
- 0xAACD, 0xAACE, 0xAACF, 0xAAD0, 0xAAD1, 0xAAD3, 0xAAD4, 0xAAD5, /* 0x10 */
- 0xAAD6, 0xAAD7, 0xAAD8, 0xAAD9, 0xAADA, 0xAADB, 0xAADC, 0xAADD, /* 0x10 */
- 0xAAE1, 0xAAE2, 0xAAE3, 0xAAE4, 0xAAE5, 0xAAE6, 0xAAE7, 0xAAE8, /* 0x20 */
- 0xAAE9, 0xAAEA, 0xAAEB, 0xAAEC, 0xAAED, 0xAAEE, 0xAAEF, 0xAAF0, /* 0x20 */
- 0xAAF1, 0xAAF3, 0xAAF4, 0xAAF5, 0xAAF6, 0xAAF7, 0xAAF8, 0xAAF9, /* 0x30 */
- 0xAAFA, 0xAAFB, 0xAAFC, 0xAAFD, 0xAB41, 0xAB42, 0xAB43, 0xAB44, /* 0x30 */
- 0xAB45, 0xAB46, 0xAB47, 0xAB48, 0xAB49, 0xAB4A, 0xAB4B, 0xAB4C, /* 0x40 */
- 0xAB4D, 0xAB4E, 0xAB4F, 0xAB50, 0xAB51, 0xAB53, 0xAB54, 0xAB55, /* 0x40 */
- 0xAB56, 0xAB57, 0xAB58, 0xAB59, 0xAB5A, 0xAB5B, 0xAB5C, 0xAB5D, /* 0x50 */
- 0xAB61, 0xAB62, 0xAB63, 0xAB64, 0xAB65, 0xAB66, 0xAB67, 0xAB68, /* 0x50 */
- 0xAB69, 0xAB6A, 0xAB6B, 0xAB6C, 0xAB6D, 0xAB6E, 0xAB6F, 0xAB70, /* 0x60 */
- 0xAB71, 0xAB73, 0xAB74, 0xAB75, 0xAB76, 0xAB77, 0xAB78, 0xAB79, /* 0x60 */
- 0xAB7A, 0xAB7B, 0xAB7C, 0xAB7D, 0xAB81, 0xAB82, 0xAB83, 0xAB84, /* 0x70 */
- 0xAB85, 0xAB86, 0xAB87, 0xAB88, 0xAB89, 0xAB8A, 0xAB8B, 0xAB8C, /* 0x70 */
- 0xAB8D, 0xAB8E, 0xAB8F, 0xAB90, 0xAB91, 0xAB93, 0xAB94, 0xAB95, /* 0x80 */
- 0xAB96, 0xAB97, 0xAB98, 0xAB99, 0xAB9A, 0xAB9B, 0xAB9C, 0xAB9D, /* 0x80 */
- 0xABA1, 0xABA2, 0xABA3, 0xABA4, 0xABA5, 0xABA6, 0xABA7, 0xABA8, /* 0x90 */
- 0xABA9, 0xABAA, 0xABAB, 0xABAC, 0xABAD, 0xABAE, 0xABAF, 0xABB0, /* 0x90 */
- 0xABB1, 0xABB3, 0xABB4, 0xABB5, 0xABB6, 0xABB7, 0xABB8, 0xABB9, /* 0xA0 */
- 0xABBA, 0xABBB, 0xABBC, 0xABBD, 0xAC61, 0xAC62, 0xAC63, 0xAC64, /* 0xA0 */
- 0xAC65, 0xAC66, 0xAC67, 0xAC68, 0xAC69, 0xAC6A, 0xAC6B, 0xAC6C, /* 0xB0 */
- 0xAC6D, 0xAC6E, 0xAC6F, 0xAC70, 0xAC71, 0xAC73, 0xAC74, 0xAC75, /* 0xB0 */
- 0xAC76, 0xAC77, 0xAC78, 0xAC79, 0xAC7A, 0xAC7B, 0xAC7C, 0xAC7D, /* 0xC0 */
- 0xAC81, 0xAC82, 0xAC83, 0xAC84, 0xAC85, 0xAC86, 0xAC87, 0xAC88, /* 0xC0 */
- 0xAC89, 0xAC8A, 0xAC8B, 0xAC8C, 0xAC8D, 0xAC8E, 0xAC8F, 0xAC90, /* 0xD0 */
- 0xAC91, 0xAC93, 0xAC94, 0xAC95, 0xAC96, 0xAC97, 0xAC98, 0xAC99, /* 0xD0 */
- 0xAC9A, 0xAC9B, 0xAC9C, 0xAC9D, 0xACA1, 0xACA2, 0xACA3, 0xACA4, /* 0xE0 */
- 0xACA5, 0xACA6, 0xACA7, 0xACA8, 0xACA9, 0xACAA, 0xACAB, 0xACAC, /* 0xE0 */
- 0xACAD, 0xACAE, 0xACAF, 0xACB0, 0xACB1, 0xACB3, 0xACB4, 0xACB5, /* 0xF0 */
- 0xACB6, 0xACB7, 0xACB8, 0xACB9, 0xACBA, 0xACBB, 0xACBC, 0xACBD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_C1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xACC1, 0xACC2, 0xACC3, 0xACC4, 0xACC5, 0xACC6, 0xACC7, 0xACC8, /* 0x00 */
- 0xACC9, 0xACCA, 0xACCB, 0xACCC, 0xACCD, 0xACCE, 0xACCF, 0xACD0, /* 0x00 */
- 0xACD1, 0xACD3, 0xACD4, 0xACD5, 0xACD6, 0xACD7, 0xACD8, 0xACD9, /* 0x10 */
- 0xACDA, 0xACDB, 0xACDC, 0xACDD, 0xACE1, 0xACE2, 0xACE3, 0xACE4, /* 0x10 */
- 0xACE5, 0xACE6, 0xACE7, 0xACE8, 0xACE9, 0xACEA, 0xACEB, 0xACEC, /* 0x20 */
- 0xACED, 0xACEE, 0xACEF, 0xACF0, 0xACF1, 0xACF3, 0xACF4, 0xACF5, /* 0x20 */
- 0xACF6, 0xACF7, 0xACF8, 0xACF9, 0xACFA, 0xACFB, 0xACFC, 0xACFD, /* 0x30 */
- 0xAD41, 0xAD42, 0xAD43, 0xAD44, 0xAD45, 0xAD46, 0xAD47, 0xAD48, /* 0x30 */
- 0xAD49, 0xAD4A, 0xAD4B, 0xAD4C, 0xAD4D, 0xAD4E, 0xAD4F, 0xAD50, /* 0x40 */
- 0xAD51, 0xAD53, 0xAD54, 0xAD55, 0xAD56, 0xAD57, 0xAD58, 0xAD59, /* 0x40 */
- 0xAD5A, 0xAD5B, 0xAD5C, 0xAD5D, 0xAD61, 0xAD62, 0xAD63, 0xAD64, /* 0x50 */
- 0xAD65, 0xAD66, 0xAD67, 0xAD68, 0xAD69, 0xAD6A, 0xAD6B, 0xAD6C, /* 0x50 */
- 0xAD6D, 0xAD6E, 0xAD6F, 0xAD70, 0xAD71, 0xAD73, 0xAD74, 0xAD75, /* 0x60 */
- 0xAD76, 0xAD77, 0xAD78, 0xAD79, 0xAD7A, 0xAD7B, 0xAD7C, 0xAD7D, /* 0x60 */
- 0xAD81, 0xAD82, 0xAD83, 0xAD84, 0xAD85, 0xAD86, 0xAD87, 0xAD88, /* 0x70 */
- 0xAD89, 0xAD8A, 0xAD8B, 0xAD8C, 0xAD8D, 0xAD8E, 0xAD8F, 0xAD90, /* 0x70 */
- 0xAD91, 0xAD93, 0xAD94, 0xAD95, 0xAD96, 0xAD97, 0xAD98, 0xAD99, /* 0x80 */
- 0xAD9A, 0xAD9B, 0xAD9C, 0xAD9D, 0xADA1, 0xADA2, 0xADA3, 0xADA4, /* 0x80 */
- 0xADA5, 0xADA6, 0xADA7, 0xADA8, 0xADA9, 0xADAA, 0xADAB, 0xADAC, /* 0x90 */
- 0xADAD, 0xADAE, 0xADAF, 0xADB0, 0xADB1, 0xADB3, 0xADB4, 0xADB5, /* 0x90 */
- 0xADB6, 0xADB7, 0xADB8, 0xADB9, 0xADBA, 0xADBB, 0xADBC, 0xADBD, /* 0xA0 */
- 0xADC1, 0xADC2, 0xADC3, 0xADC4, 0xADC5, 0xADC6, 0xADC7, 0xADC8, /* 0xA0 */
- 0xADC9, 0xADCA, 0xADCB, 0xADCC, 0xADCD, 0xADCE, 0xADCF, 0xADD0, /* 0xB0 */
- 0xADD1, 0xADD3, 0xADD4, 0xADD5, 0xADD6, 0xADD7, 0xADD8, 0xADD9, /* 0xB0 */
- 0xADDA, 0xADDB, 0xADDC, 0xADDD, 0xADE1, 0xADE2, 0xADE3, 0xADE4, /* 0xC0 */
- 0xADE5, 0xADE6, 0xADE7, 0xADE8, 0xADE9, 0xADEA, 0xADEB, 0xADEC, /* 0xC0 */
- 0xADED, 0xADEE, 0xADEF, 0xADF0, 0xADF1, 0xADF3, 0xADF4, 0xADF5, /* 0xD0 */
- 0xADF6, 0xADF7, 0xADF8, 0xADF9, 0xADFA, 0xADFB, 0xADFC, 0xADFD, /* 0xD0 */
- 0xAE41, 0xAE42, 0xAE43, 0xAE44, 0xAE45, 0xAE46, 0xAE47, 0xAE48, /* 0xE0 */
- 0xAE49, 0xAE4A, 0xAE4B, 0xAE4C, 0xAE4D, 0xAE4E, 0xAE4F, 0xAE50, /* 0xE0 */
- 0xAE51, 0xAE53, 0xAE54, 0xAE55, 0xAE56, 0xAE57, 0xAE58, 0xAE59, /* 0xF0 */
- 0xAE5A, 0xAE5B, 0xAE5C, 0xAE5D, 0xAE61, 0xAE62, 0xAE63, 0xAE64 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_C2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xAE65, 0xAE66, 0xAE67, 0xAE68, 0xAE69, 0xAE6A, 0xAE6B, 0xAE6C, /* 0x00 */
- 0xAE6D, 0xAE6E, 0xAE6F, 0xAE70, 0xAE71, 0xAE73, 0xAE74, 0xAE75, /* 0x00 */
- 0xAE76, 0xAE77, 0xAE78, 0xAE79, 0xAE7A, 0xAE7B, 0xAE7C, 0xAE7D, /* 0x10 */
- 0xAE81, 0xAE82, 0xAE83, 0xAE84, 0xAE85, 0xAE86, 0xAE87, 0xAE88, /* 0x10 */
- 0xAE89, 0xAE8A, 0xAE8B, 0xAE8C, 0xAE8D, 0xAE8E, 0xAE8F, 0xAE90, /* 0x20 */
- 0xAE91, 0xAE93, 0xAE94, 0xAE95, 0xAE96, 0xAE97, 0xAE98, 0xAE99, /* 0x20 */
- 0xAE9A, 0xAE9B, 0xAE9C, 0xAE9D, 0xAEA1, 0xAEA2, 0xAEA3, 0xAEA4, /* 0x30 */
- 0xAEA5, 0xAEA6, 0xAEA7, 0xAEA8, 0xAEA9, 0xAEAA, 0xAEAB, 0xAEAC, /* 0x30 */
- 0xAEAD, 0xAEAE, 0xAEAF, 0xAEB0, 0xAEB1, 0xAEB3, 0xAEB4, 0xAEB5, /* 0x40 */
- 0xAEB6, 0xAEB7, 0xAEB8, 0xAEB9, 0xAEBA, 0xAEBB, 0xAEBC, 0xAEBD, /* 0x40 */
- 0xAEC1, 0xAEC2, 0xAEC3, 0xAEC4, 0xAEC5, 0xAEC6, 0xAEC7, 0xAEC8, /* 0x50 */
- 0xAEC9, 0xAECA, 0xAECB, 0xAECC, 0xAECD, 0xAECE, 0xAECF, 0xAED0, /* 0x50 */
- 0xAED1, 0xAED3, 0xAED4, 0xAED5, 0xAED6, 0xAED7, 0xAED8, 0xAED9, /* 0x60 */
- 0xAEDA, 0xAEDB, 0xAEDC, 0xAEDD, 0xAEE1, 0xAEE2, 0xAEE3, 0xAEE4, /* 0x60 */
- 0xAEE5, 0xAEE6, 0xAEE7, 0xAEE8, 0xAEE9, 0xAEEA, 0xAEEB, 0xAEEC, /* 0x70 */
- 0xAEED, 0xAEEE, 0xAEEF, 0xAEF0, 0xAEF1, 0xAEF3, 0xAEF4, 0xAEF5, /* 0x70 */
- 0xAEF6, 0xAEF7, 0xAEF8, 0xAEF9, 0xAEFA, 0xAEFB, 0xAEFC, 0xAEFD, /* 0x80 */
- 0xAF41, 0xAF42, 0xAF43, 0xAF44, 0xAF45, 0xAF46, 0xAF47, 0xAF48, /* 0x80 */
- 0xAF49, 0xAF4A, 0xAF4B, 0xAF4C, 0xAF4D, 0xAF4E, 0xAF4F, 0xAF50, /* 0x90 */
- 0xAF51, 0xAF53, 0xAF54, 0xAF55, 0xAF56, 0xAF57, 0xAF58, 0xAF59, /* 0x90 */
- 0xAF5A, 0xAF5B, 0xAF5C, 0xAF5D, 0xAF61, 0xAF62, 0xAF63, 0xAF64, /* 0xA0 */
- 0xAF65, 0xAF66, 0xAF67, 0xAF68, 0xAF69, 0xAF6A, 0xAF6B, 0xAF6C, /* 0xA0 */
- 0xAF6D, 0xAF6E, 0xAF6F, 0xAF70, 0xAF71, 0xAF73, 0xAF74, 0xAF75, /* 0xB0 */
- 0xAF76, 0xAF77, 0xAF78, 0xAF79, 0xAF7A, 0xAF7B, 0xAF7C, 0xAF7D, /* 0xB0 */
- 0xAF81, 0xAF82, 0xAF83, 0xAF84, 0xAF85, 0xAF86, 0xAF87, 0xAF88, /* 0xC0 */
- 0xAF89, 0xAF8A, 0xAF8B, 0xAF8C, 0xAF8D, 0xAF8E, 0xAF8F, 0xAF90, /* 0xC0 */
- 0xAF91, 0xAF93, 0xAF94, 0xAF95, 0xAF96, 0xAF97, 0xAF98, 0xAF99, /* 0xD0 */
- 0xAF9A, 0xAF9B, 0xAF9C, 0xAF9D, 0xAFA1, 0xAFA2, 0xAFA3, 0xAFA4, /* 0xD0 */
- 0xAFA5, 0xAFA6, 0xAFA7, 0xAFA8, 0xAFA9, 0xAFAA, 0xAFAB, 0xAFAC, /* 0xE0 */
- 0xAFAD, 0xAFAE, 0xAFAF, 0xAFB0, 0xAFB1, 0xAFB3, 0xAFB4, 0xAFB5, /* 0xE0 */
- 0xAFB6, 0xAFB7, 0xAFB8, 0xAFB9, 0xAFBA, 0xAFBB, 0xAFBC, 0xAFBD, /* 0xF0 */
- 0xB061, 0xB062, 0xB063, 0xB064, 0xB065, 0xB066, 0xB067, 0xB068 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_C3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB069, 0xB06A, 0xB06B, 0xB06C, 0xB06D, 0xB06E, 0xB06F, 0xB070, /* 0x00 */
- 0xB071, 0xB073, 0xB074, 0xB075, 0xB076, 0xB077, 0xB078, 0xB079, /* 0x00 */
- 0xB07A, 0xB07B, 0xB07C, 0xB07D, 0xB081, 0xB082, 0xB083, 0xB084, /* 0x10 */
- 0xB085, 0xB086, 0xB087, 0xB088, 0xB089, 0xB08A, 0xB08B, 0xB08C, /* 0x10 */
- 0xB08D, 0xB08E, 0xB08F, 0xB090, 0xB091, 0xB093, 0xB094, 0xB095, /* 0x20 */
- 0xB096, 0xB097, 0xB098, 0xB099, 0xB09A, 0xB09B, 0xB09C, 0xB09D, /* 0x20 */
- 0xB0A1, 0xB0A2, 0xB0A3, 0xB0A4, 0xB0A5, 0xB0A6, 0xB0A7, 0xB0A8, /* 0x30 */
- 0xB0A9, 0xB0AA, 0xB0AB, 0xB0AC, 0xB0AD, 0xB0AE, 0xB0AF, 0xB0B0, /* 0x30 */
- 0xB0B1, 0xB0B3, 0xB0B4, 0xB0B5, 0xB0B6, 0xB0B7, 0xB0B8, 0xB0B9, /* 0x40 */
- 0xB0BA, 0xB0BB, 0xB0BC, 0xB0BD, 0xB0C1, 0xB0C2, 0xB0C3, 0xB0C4, /* 0x40 */
- 0xB0C5, 0xB0C6, 0xB0C7, 0xB0C8, 0xB0C9, 0xB0CA, 0xB0CB, 0xB0CC, /* 0x50 */
- 0xB0CD, 0xB0CE, 0xB0CF, 0xB0D0, 0xB0D1, 0xB0D3, 0xB0D4, 0xB0D5, /* 0x50 */
- 0xB0D6, 0xB0D7, 0xB0D8, 0xB0D9, 0xB0DA, 0xB0DB, 0xB0DC, 0xB0DD, /* 0x60 */
- 0xB0E1, 0xB0E2, 0xB0E3, 0xB0E4, 0xB0E5, 0xB0E6, 0xB0E7, 0xB0E8, /* 0x60 */
- 0xB0E9, 0xB0EA, 0xB0EB, 0xB0EC, 0xB0ED, 0xB0EE, 0xB0EF, 0xB0F0, /* 0x70 */
- 0xB0F1, 0xB0F3, 0xB0F4, 0xB0F5, 0xB0F6, 0xB0F7, 0xB0F8, 0xB0F9, /* 0x70 */
- 0xB0FA, 0xB0FB, 0xB0FC, 0xB0FD, 0xB141, 0xB142, 0xB143, 0xB144, /* 0x80 */
- 0xB145, 0xB146, 0xB147, 0xB148, 0xB149, 0xB14A, 0xB14B, 0xB14C, /* 0x80 */
- 0xB14D, 0xB14E, 0xB14F, 0xB150, 0xB151, 0xB153, 0xB154, 0xB155, /* 0x90 */
- 0xB156, 0xB157, 0xB158, 0xB159, 0xB15A, 0xB15B, 0xB15C, 0xB15D, /* 0x90 */
- 0xB161, 0xB162, 0xB163, 0xB164, 0xB165, 0xB166, 0xB167, 0xB168, /* 0xA0 */
- 0xB169, 0xB16A, 0xB16B, 0xB16C, 0xB16D, 0xB16E, 0xB16F, 0xB170, /* 0xA0 */
- 0xB171, 0xB173, 0xB174, 0xB175, 0xB176, 0xB177, 0xB178, 0xB179, /* 0xB0 */
- 0xB17A, 0xB17B, 0xB17C, 0xB17D, 0xB181, 0xB182, 0xB183, 0xB184, /* 0xB0 */
- 0xB185, 0xB186, 0xB187, 0xB188, 0xB189, 0xB18A, 0xB18B, 0xB18C, /* 0xC0 */
- 0xB18D, 0xB18E, 0xB18F, 0xB190, 0xB191, 0xB193, 0xB194, 0xB195, /* 0xC0 */
- 0xB196, 0xB197, 0xB198, 0xB199, 0xB19A, 0xB19B, 0xB19C, 0xB19D, /* 0xD0 */
- 0xB1A1, 0xB1A2, 0xB1A3, 0xB1A4, 0xB1A5, 0xB1A6, 0xB1A7, 0xB1A8, /* 0xD0 */
- 0xB1A9, 0xB1AA, 0xB1AB, 0xB1AC, 0xB1AD, 0xB1AE, 0xB1AF, 0xB1B0, /* 0xE0 */
- 0xB1B1, 0xB1B3, 0xB1B4, 0xB1B5, 0xB1B6, 0xB1B7, 0xB1B8, 0xB1B9, /* 0xE0 */
- 0xB1BA, 0xB1BB, 0xB1BC, 0xB1BD, 0xB1C1, 0xB1C2, 0xB1C3, 0xB1C4, /* 0xF0 */
- 0xB1C5, 0xB1C6, 0xB1C7, 0xB1C8, 0xB1C9, 0xB1CA, 0xB1CB, 0xB1CC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_C4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB1CD, 0xB1CE, 0xB1CF, 0xB1D0, 0xB1D1, 0xB1D3, 0xB1D4, 0xB1D5, /* 0x00 */
- 0xB1D6, 0xB1D7, 0xB1D8, 0xB1D9, 0xB1DA, 0xB1DB, 0xB1DC, 0xB1DD, /* 0x00 */
- 0xB1E1, 0xB1E2, 0xB1E3, 0xB1E4, 0xB1E5, 0xB1E6, 0xB1E7, 0xB1E8, /* 0x10 */
- 0xB1E9, 0xB1EA, 0xB1EB, 0xB1EC, 0xB1ED, 0xB1EE, 0xB1EF, 0xB1F0, /* 0x10 */
- 0xB1F1, 0xB1F3, 0xB1F4, 0xB1F5, 0xB1F6, 0xB1F7, 0xB1F8, 0xB1F9, /* 0x20 */
- 0xB1FA, 0xB1FB, 0xB1FC, 0xB1FD, 0xB241, 0xB242, 0xB243, 0xB244, /* 0x20 */
- 0xB245, 0xB246, 0xB247, 0xB248, 0xB249, 0xB24A, 0xB24B, 0xB24C, /* 0x30 */
- 0xB24D, 0xB24E, 0xB24F, 0xB250, 0xB251, 0xB253, 0xB254, 0xB255, /* 0x30 */
- 0xB256, 0xB257, 0xB258, 0xB259, 0xB25A, 0xB25B, 0xB25C, 0xB25D, /* 0x40 */
- 0xB261, 0xB262, 0xB263, 0xB264, 0xB265, 0xB266, 0xB267, 0xB268, /* 0x40 */
- 0xB269, 0xB26A, 0xB26B, 0xB26C, 0xB26D, 0xB26E, 0xB26F, 0xB270, /* 0x50 */
- 0xB271, 0xB273, 0xB274, 0xB275, 0xB276, 0xB277, 0xB278, 0xB279, /* 0x50 */
- 0xB27A, 0xB27B, 0xB27C, 0xB27D, 0xB281, 0xB282, 0xB283, 0xB284, /* 0x60 */
- 0xB285, 0xB286, 0xB287, 0xB288, 0xB289, 0xB28A, 0xB28B, 0xB28C, /* 0x60 */
- 0xB28D, 0xB28E, 0xB28F, 0xB290, 0xB291, 0xB293, 0xB294, 0xB295, /* 0x70 */
- 0xB296, 0xB297, 0xB298, 0xB299, 0xB29A, 0xB29B, 0xB29C, 0xB29D, /* 0x70 */
- 0xB2A1, 0xB2A2, 0xB2A3, 0xB2A4, 0xB2A5, 0xB2A6, 0xB2A7, 0xB2A8, /* 0x80 */
- 0xB2A9, 0xB2AA, 0xB2AB, 0xB2AC, 0xB2AD, 0xB2AE, 0xB2AF, 0xB2B0, /* 0x80 */
- 0xB2B1, 0xB2B3, 0xB2B4, 0xB2B5, 0xB2B6, 0xB2B7, 0xB2B8, 0xB2B9, /* 0x90 */
- 0xB2BA, 0xB2BB, 0xB2BC, 0xB2BD, 0xB2C1, 0xB2C2, 0xB2C3, 0xB2C4, /* 0x90 */
- 0xB2C5, 0xB2C6, 0xB2C7, 0xB2C8, 0xB2C9, 0xB2CA, 0xB2CB, 0xB2CC, /* 0xA0 */
- 0xB2CD, 0xB2CE, 0xB2CF, 0xB2D0, 0xB2D1, 0xB2D3, 0xB2D4, 0xB2D5, /* 0xA0 */
- 0xB2D6, 0xB2D7, 0xB2D8, 0xB2D9, 0xB2DA, 0xB2DB, 0xB2DC, 0xB2DD, /* 0xB0 */
- 0xB2E1, 0xB2E2, 0xB2E3, 0xB2E4, 0xB2E5, 0xB2E6, 0xB2E7, 0xB2E8, /* 0xB0 */
- 0xB2E9, 0xB2EA, 0xB2EB, 0xB2EC, 0xB2ED, 0xB2EE, 0xB2EF, 0xB2F0, /* 0xC0 */
- 0xB2F1, 0xB2F3, 0xB2F4, 0xB2F5, 0xB2F6, 0xB2F7, 0xB2F8, 0xB2F9, /* 0xC0 */
- 0xB2FA, 0xB2FB, 0xB2FC, 0xB2FD, 0xB341, 0xB342, 0xB343, 0xB344, /* 0xD0 */
- 0xB345, 0xB346, 0xB347, 0xB348, 0xB349, 0xB34A, 0xB34B, 0xB34C, /* 0xD0 */
- 0xB34D, 0xB34E, 0xB34F, 0xB350, 0xB351, 0xB353, 0xB354, 0xB355, /* 0xE0 */
- 0xB356, 0xB357, 0xB358, 0xB359, 0xB35A, 0xB35B, 0xB35C, 0xB35D, /* 0xE0 */
- 0xB361, 0xB362, 0xB363, 0xB364, 0xB365, 0xB366, 0xB367, 0xB368, /* 0xF0 */
- 0xB369, 0xB36A, 0xB36B, 0xB36C, 0xB36D, 0xB36E, 0xB36F, 0xB370 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_C5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB371, 0xB373, 0xB374, 0xB375, 0xB376, 0xB377, 0xB378, 0xB379, /* 0x00 */
- 0xB37A, 0xB37B, 0xB37C, 0xB37D, 0xB381, 0xB382, 0xB383, 0xB384, /* 0x00 */
- 0xB385, 0xB386, 0xB387, 0xB388, 0xB389, 0xB38A, 0xB38B, 0xB38C, /* 0x10 */
- 0xB38D, 0xB38E, 0xB38F, 0xB390, 0xB391, 0xB393, 0xB394, 0xB395, /* 0x10 */
- 0xB396, 0xB397, 0xB398, 0xB399, 0xB39A, 0xB39B, 0xB39C, 0xB39D, /* 0x20 */
- 0xB3A1, 0xB3A2, 0xB3A3, 0xB3A4, 0xB3A5, 0xB3A6, 0xB3A7, 0xB3A8, /* 0x20 */
- 0xB3A9, 0xB3AA, 0xB3AB, 0xB3AC, 0xB3AD, 0xB3AE, 0xB3AF, 0xB3B0, /* 0x30 */
- 0xB3B1, 0xB3B3, 0xB3B4, 0xB3B5, 0xB3B6, 0xB3B7, 0xB3B8, 0xB3B9, /* 0x30 */
- 0xB3BA, 0xB3BB, 0xB3BC, 0xB3BD, 0xB461, 0xB462, 0xB463, 0xB464, /* 0x40 */
- 0xB465, 0xB466, 0xB467, 0xB468, 0xB469, 0xB46A, 0xB46B, 0xB46C, /* 0x40 */
- 0xB46D, 0xB46E, 0xB46F, 0xB470, 0xB471, 0xB473, 0xB474, 0xB475, /* 0x50 */
- 0xB476, 0xB477, 0xB478, 0xB479, 0xB47A, 0xB47B, 0xB47C, 0xB47D, /* 0x50 */
- 0xB481, 0xB482, 0xB483, 0xB484, 0xB485, 0xB486, 0xB487, 0xB488, /* 0x60 */
- 0xB489, 0xB48A, 0xB48B, 0xB48C, 0xB48D, 0xB48E, 0xB48F, 0xB490, /* 0x60 */
- 0xB491, 0xB493, 0xB494, 0xB495, 0xB496, 0xB497, 0xB498, 0xB499, /* 0x70 */
- 0xB49A, 0xB49B, 0xB49C, 0xB49D, 0xB4A1, 0xB4A2, 0xB4A3, 0xB4A4, /* 0x70 */
- 0xB4A5, 0xB4A6, 0xB4A7, 0xB4A8, 0xB4A9, 0xB4AA, 0xB4AB, 0xB4AC, /* 0x80 */
- 0xB4AD, 0xB4AE, 0xB4AF, 0xB4B0, 0xB4B1, 0xB4B3, 0xB4B4, 0xB4B5, /* 0x80 */
- 0xB4B6, 0xB4B7, 0xB4B8, 0xB4B9, 0xB4BA, 0xB4BB, 0xB4BC, 0xB4BD, /* 0x90 */
- 0xB4C1, 0xB4C2, 0xB4C3, 0xB4C4, 0xB4C5, 0xB4C6, 0xB4C7, 0xB4C8, /* 0x90 */
- 0xB4C9, 0xB4CA, 0xB4CB, 0xB4CC, 0xB4CD, 0xB4CE, 0xB4CF, 0xB4D0, /* 0xA0 */
- 0xB4D1, 0xB4D3, 0xB4D4, 0xB4D5, 0xB4D6, 0xB4D7, 0xB4D8, 0xB4D9, /* 0xA0 */
- 0xB4DA, 0xB4DB, 0xB4DC, 0xB4DD, 0xB4E1, 0xB4E2, 0xB4E3, 0xB4E4, /* 0xB0 */
- 0xB4E5, 0xB4E6, 0xB4E7, 0xB4E8, 0xB4E9, 0xB4EA, 0xB4EB, 0xB4EC, /* 0xB0 */
- 0xB4ED, 0xB4EE, 0xB4EF, 0xB4F0, 0xB4F1, 0xB4F3, 0xB4F4, 0xB4F5, /* 0xC0 */
- 0xB4F6, 0xB4F7, 0xB4F8, 0xB4F9, 0xB4FA, 0xB4FB, 0xB4FC, 0xB4FD, /* 0xC0 */
- 0xB541, 0xB542, 0xB543, 0xB544, 0xB545, 0xB546, 0xB547, 0xB548, /* 0xD0 */
- 0xB549, 0xB54A, 0xB54B, 0xB54C, 0xB54D, 0xB54E, 0xB54F, 0xB550, /* 0xD0 */
- 0xB551, 0xB553, 0xB554, 0xB555, 0xB556, 0xB557, 0xB558, 0xB559, /* 0xE0 */
- 0xB55A, 0xB55B, 0xB55C, 0xB55D, 0xB561, 0xB562, 0xB563, 0xB564, /* 0xE0 */
- 0xB565, 0xB566, 0xB567, 0xB568, 0xB569, 0xB56A, 0xB56B, 0xB56C, /* 0xF0 */
- 0xB56D, 0xB56E, 0xB56F, 0xB570, 0xB571, 0xB573, 0xB574, 0xB575 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_C6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB576, 0xB577, 0xB578, 0xB579, 0xB57A, 0xB57B, 0xB57C, 0xB57D, /* 0x00 */
- 0xB581, 0xB582, 0xB583, 0xB584, 0xB585, 0xB586, 0xB587, 0xB588, /* 0x00 */
- 0xB589, 0xB58A, 0xB58B, 0xB58C, 0xB58D, 0xB58E, 0xB58F, 0xB590, /* 0x10 */
- 0xB591, 0xB593, 0xB594, 0xB595, 0xB596, 0xB597, 0xB598, 0xB599, /* 0x10 */
- 0xB59A, 0xB59B, 0xB59C, 0xB59D, 0xB5A1, 0xB5A2, 0xB5A3, 0xB5A4, /* 0x20 */
- 0xB5A5, 0xB5A6, 0xB5A7, 0xB5A8, 0xB5A9, 0xB5AA, 0xB5AB, 0xB5AC, /* 0x20 */
- 0xB5AD, 0xB5AE, 0xB5AF, 0xB5B0, 0xB5B1, 0xB5B3, 0xB5B4, 0xB5B5, /* 0x30 */
- 0xB5B6, 0xB5B7, 0xB5B8, 0xB5B9, 0xB5BA, 0xB5BB, 0xB5BC, 0xB5BD, /* 0x30 */
- 0xB5C1, 0xB5C2, 0xB5C3, 0xB5C4, 0xB5C5, 0xB5C6, 0xB5C7, 0xB5C8, /* 0x40 */
- 0xB5C9, 0xB5CA, 0xB5CB, 0xB5CC, 0xB5CD, 0xB5CE, 0xB5CF, 0xB5D0, /* 0x40 */
- 0xB5D1, 0xB5D3, 0xB5D4, 0xB5D5, 0xB5D6, 0xB5D7, 0xB5D8, 0xB5D9, /* 0x50 */
- 0xB5DA, 0xB5DB, 0xB5DC, 0xB5DD, 0xB5E1, 0xB5E2, 0xB5E3, 0xB5E4, /* 0x50 */
- 0xB5E5, 0xB5E6, 0xB5E7, 0xB5E8, 0xB5E9, 0xB5EA, 0xB5EB, 0xB5EC, /* 0x60 */
- 0xB5ED, 0xB5EE, 0xB5EF, 0xB5F0, 0xB5F1, 0xB5F3, 0xB5F4, 0xB5F5, /* 0x60 */
- 0xB5F6, 0xB5F7, 0xB5F8, 0xB5F9, 0xB5FA, 0xB5FB, 0xB5FC, 0xB5FD, /* 0x70 */
- 0xB641, 0xB642, 0xB643, 0xB644, 0xB645, 0xB646, 0xB647, 0xB648, /* 0x70 */
- 0xB649, 0xB64A, 0xB64B, 0xB64C, 0xB64D, 0xB64E, 0xB64F, 0xB650, /* 0x80 */
- 0xB651, 0xB653, 0xB654, 0xB655, 0xB656, 0xB657, 0xB658, 0xB659, /* 0x80 */
- 0xB65A, 0xB65B, 0xB65C, 0xB65D, 0xB661, 0xB662, 0xB663, 0xB664, /* 0x90 */
- 0xB665, 0xB666, 0xB667, 0xB668, 0xB669, 0xB66A, 0xB66B, 0xB66C, /* 0x90 */
- 0xB66D, 0xB66E, 0xB66F, 0xB670, 0xB671, 0xB673, 0xB674, 0xB675, /* 0xA0 */
- 0xB676, 0xB677, 0xB678, 0xB679, 0xB67A, 0xB67B, 0xB67C, 0xB67D, /* 0xA0 */
- 0xB681, 0xB682, 0xB683, 0xB684, 0xB685, 0xB686, 0xB687, 0xB688, /* 0xB0 */
- 0xB689, 0xB68A, 0xB68B, 0xB68C, 0xB68D, 0xB68E, 0xB68F, 0xB690, /* 0xB0 */
- 0xB691, 0xB693, 0xB694, 0xB695, 0xB696, 0xB697, 0xB698, 0xB699, /* 0xC0 */
- 0xB69A, 0xB69B, 0xB69C, 0xB69D, 0xB6A1, 0xB6A2, 0xB6A3, 0xB6A4, /* 0xC0 */
- 0xB6A5, 0xB6A6, 0xB6A7, 0xB6A8, 0xB6A9, 0xB6AA, 0xB6AB, 0xB6AC, /* 0xD0 */
- 0xB6AD, 0xB6AE, 0xB6AF, 0xB6B0, 0xB6B1, 0xB6B3, 0xB6B4, 0xB6B5, /* 0xD0 */
- 0xB6B6, 0xB6B7, 0xB6B8, 0xB6B9, 0xB6BA, 0xB6BB, 0xB6BC, 0xB6BD, /* 0xE0 */
- 0xB6C1, 0xB6C2, 0xB6C3, 0xB6C4, 0xB6C5, 0xB6C6, 0xB6C7, 0xB6C8, /* 0xE0 */
- 0xB6C9, 0xB6CA, 0xB6CB, 0xB6CC, 0xB6CD, 0xB6CE, 0xB6CF, 0xB6D0, /* 0xF0 */
- 0xB6D1, 0xB6D3, 0xB6D4, 0xB6D5, 0xB6D6, 0xB6D7, 0xB6D8, 0xB6D9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_C7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB6DA, 0xB6DB, 0xB6DC, 0xB6DD, 0xB6E1, 0xB6E2, 0xB6E3, 0xB6E4, /* 0x00 */
- 0xB6E5, 0xB6E6, 0xB6E7, 0xB6E8, 0xB6E9, 0xB6EA, 0xB6EB, 0xB6EC, /* 0x00 */
- 0xB6ED, 0xB6EE, 0xB6EF, 0xB6F0, 0xB6F1, 0xB6F3, 0xB6F4, 0xB6F5, /* 0x10 */
- 0xB6F6, 0xB6F7, 0xB6F8, 0xB6F9, 0xB6FA, 0xB6FB, 0xB6FC, 0xB6FD, /* 0x10 */
- 0xB741, 0xB742, 0xB743, 0xB744, 0xB745, 0xB746, 0xB747, 0xB748, /* 0x20 */
- 0xB749, 0xB74A, 0xB74B, 0xB74C, 0xB74D, 0xB74E, 0xB74F, 0xB750, /* 0x20 */
- 0xB751, 0xB753, 0xB754, 0xB755, 0xB756, 0xB757, 0xB758, 0xB759, /* 0x30 */
- 0xB75A, 0xB75B, 0xB75C, 0xB75D, 0xB761, 0xB762, 0xB763, 0xB764, /* 0x30 */
- 0xB765, 0xB766, 0xB767, 0xB768, 0xB769, 0xB76A, 0xB76B, 0xB76C, /* 0x40 */
- 0xB76D, 0xB76E, 0xB76F, 0xB770, 0xB771, 0xB773, 0xB774, 0xB775, /* 0x40 */
- 0xB776, 0xB777, 0xB778, 0xB779, 0xB77A, 0xB77B, 0xB77C, 0xB77D, /* 0x50 */
- 0xB781, 0xB782, 0xB783, 0xB784, 0xB785, 0xB786, 0xB787, 0xB788, /* 0x50 */
- 0xB789, 0xB78A, 0xB78B, 0xB78C, 0xB78D, 0xB78E, 0xB78F, 0xB790, /* 0x60 */
- 0xB791, 0xB793, 0xB794, 0xB795, 0xB796, 0xB797, 0xB798, 0xB799, /* 0x60 */
- 0xB79A, 0xB79B, 0xB79C, 0xB79D, 0xB7A1, 0xB7A2, 0xB7A3, 0xB7A4, /* 0x70 */
- 0xB7A5, 0xB7A6, 0xB7A7, 0xB7A8, 0xB7A9, 0xB7AA, 0xB7AB, 0xB7AC, /* 0x70 */
- 0xB7AD, 0xB7AE, 0xB7AF, 0xB7B0, 0xB7B1, 0xB7B3, 0xB7B4, 0xB7B5, /* 0x80 */
- 0xB7B6, 0xB7B7, 0xB7B8, 0xB7B9, 0xB7BA, 0xB7BB, 0xB7BC, 0xB7BD, /* 0x80 */
- 0xB861, 0xB862, 0xB863, 0xB864, 0xB865, 0xB866, 0xB867, 0xB868, /* 0x90 */
- 0xB869, 0xB86A, 0xB86B, 0xB86C, 0xB86D, 0xB86E, 0xB86F, 0xB870, /* 0x90 */
- 0xB871, 0xB873, 0xB874, 0xB875, 0xB876, 0xB877, 0xB878, 0xB879, /* 0xA0 */
- 0xB87A, 0xB87B, 0xB87C, 0xB87D, 0xB881, 0xB882, 0xB883, 0xB884, /* 0xA0 */
- 0xB885, 0xB886, 0xB887, 0xB888, 0xB889, 0xB88A, 0xB88B, 0xB88C, /* 0xB0 */
- 0xB88D, 0xB88E, 0xB88F, 0xB890, 0xB891, 0xB893, 0xB894, 0xB895, /* 0xB0 */
- 0xB896, 0xB897, 0xB898, 0xB899, 0xB89A, 0xB89B, 0xB89C, 0xB89D, /* 0xC0 */
- 0xB8A1, 0xB8A2, 0xB8A3, 0xB8A4, 0xB8A5, 0xB8A6, 0xB8A7, 0xB8A8, /* 0xC0 */
- 0xB8A9, 0xB8AA, 0xB8AB, 0xB8AC, 0xB8AD, 0xB8AE, 0xB8AF, 0xB8B0, /* 0xD0 */
- 0xB8B1, 0xB8B3, 0xB8B4, 0xB8B5, 0xB8B6, 0xB8B7, 0xB8B8, 0xB8B9, /* 0xD0 */
- 0xB8BA, 0xB8BB, 0xB8BC, 0xB8BD, 0xB8C1, 0xB8C2, 0xB8C3, 0xB8C4, /* 0xE0 */
- 0xB8C5, 0xB8C6, 0xB8C7, 0xB8C8, 0xB8C9, 0xB8CA, 0xB8CB, 0xB8CC, /* 0xE0 */
- 0xB8CD, 0xB8CE, 0xB8CF, 0xB8D0, 0xB8D1, 0xB8D3, 0xB8D4, 0xB8D5, /* 0xF0 */
- 0xB8D6, 0xB8D7, 0xB8D8, 0xB8D9, 0xB8DA, 0xB8DB, 0xB8DC, 0xB8DD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_C8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB8E1, 0xB8E2, 0xB8E3, 0xB8E4, 0xB8E5, 0xB8E6, 0xB8E7, 0xB8E8, /* 0x00 */
- 0xB8E9, 0xB8EA, 0xB8EB, 0xB8EC, 0xB8ED, 0xB8EE, 0xB8EF, 0xB8F0, /* 0x00 */
- 0xB8F1, 0xB8F3, 0xB8F4, 0xB8F5, 0xB8F6, 0xB8F7, 0xB8F8, 0xB8F9, /* 0x10 */
- 0xB8FA, 0xB8FB, 0xB8FC, 0xB8FD, 0xB941, 0xB942, 0xB943, 0xB944, /* 0x10 */
- 0xB945, 0xB946, 0xB947, 0xB948, 0xB949, 0xB94A, 0xB94B, 0xB94C, /* 0x20 */
- 0xB94D, 0xB94E, 0xB94F, 0xB950, 0xB951, 0xB953, 0xB954, 0xB955, /* 0x20 */
- 0xB956, 0xB957, 0xB958, 0xB959, 0xB95A, 0xB95B, 0xB95C, 0xB95D, /* 0x30 */
- 0xB961, 0xB962, 0xB963, 0xB964, 0xB965, 0xB966, 0xB967, 0xB968, /* 0x30 */
- 0xB969, 0xB96A, 0xB96B, 0xB96C, 0xB96D, 0xB96E, 0xB96F, 0xB970, /* 0x40 */
- 0xB971, 0xB973, 0xB974, 0xB975, 0xB976, 0xB977, 0xB978, 0xB979, /* 0x40 */
- 0xB97A, 0xB97B, 0xB97C, 0xB97D, 0xB981, 0xB982, 0xB983, 0xB984, /* 0x50 */
- 0xB985, 0xB986, 0xB987, 0xB988, 0xB989, 0xB98A, 0xB98B, 0xB98C, /* 0x50 */
- 0xB98D, 0xB98E, 0xB98F, 0xB990, 0xB991, 0xB993, 0xB994, 0xB995, /* 0x60 */
- 0xB996, 0xB997, 0xB998, 0xB999, 0xB99A, 0xB99B, 0xB99C, 0xB99D, /* 0x60 */
- 0xB9A1, 0xB9A2, 0xB9A3, 0xB9A4, 0xB9A5, 0xB9A6, 0xB9A7, 0xB9A8, /* 0x70 */
- 0xB9A9, 0xB9AA, 0xB9AB, 0xB9AC, 0xB9AD, 0xB9AE, 0xB9AF, 0xB9B0, /* 0x70 */
- 0xB9B1, 0xB9B3, 0xB9B4, 0xB9B5, 0xB9B6, 0xB9B7, 0xB9B8, 0xB9B9, /* 0x80 */
- 0xB9BA, 0xB9BB, 0xB9BC, 0xB9BD, 0xB9C1, 0xB9C2, 0xB9C3, 0xB9C4, /* 0x80 */
- 0xB9C5, 0xB9C6, 0xB9C7, 0xB9C8, 0xB9C9, 0xB9CA, 0xB9CB, 0xB9CC, /* 0x90 */
- 0xB9CD, 0xB9CE, 0xB9CF, 0xB9D0, 0xB9D1, 0xB9D3, 0xB9D4, 0xB9D5, /* 0x90 */
- 0xB9D6, 0xB9D7, 0xB9D8, 0xB9D9, 0xB9DA, 0xB9DB, 0xB9DC, 0xB9DD, /* 0xA0 */
- 0xB9E1, 0xB9E2, 0xB9E3, 0xB9E4, 0xB9E5, 0xB9E6, 0xB9E7, 0xB9E8, /* 0xA0 */
- 0xB9E9, 0xB9EA, 0xB9EB, 0xB9EC, 0xB9ED, 0xB9EE, 0xB9EF, 0xB9F0, /* 0xB0 */
- 0xB9F1, 0xB9F3, 0xB9F4, 0xB9F5, 0xB9F6, 0xB9F7, 0xB9F8, 0xB9F9, /* 0xB0 */
- 0xB9FA, 0xB9FB, 0xB9FC, 0xB9FD, 0xBA41, 0xBA42, 0xBA43, 0xBA44, /* 0xC0 */
- 0xBA45, 0xBA46, 0xBA47, 0xBA48, 0xBA49, 0xBA4A, 0xBA4B, 0xBA4C, /* 0xC0 */
- 0xBA4D, 0xBA4E, 0xBA4F, 0xBA50, 0xBA51, 0xBA53, 0xBA54, 0xBA55, /* 0xD0 */
- 0xBA56, 0xBA57, 0xBA58, 0xBA59, 0xBA5A, 0xBA5B, 0xBA5C, 0xBA5D, /* 0xD0 */
- 0xBA61, 0xBA62, 0xBA63, 0xBA64, 0xBA65, 0xBA66, 0xBA67, 0xBA68, /* 0xE0 */
- 0xBA69, 0xBA6A, 0xBA6B, 0xBA6C, 0xBA6D, 0xBA6E, 0xBA6F, 0xBA70, /* 0xE0 */
- 0xBA71, 0xBA73, 0xBA74, 0xBA75, 0xBA76, 0xBA77, 0xBA78, 0xBA79, /* 0xF0 */
- 0xBA7A, 0xBA7B, 0xBA7C, 0xBA7D, 0xBA81, 0xBA82, 0xBA83, 0xBA84 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_C9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBA85, 0xBA86, 0xBA87, 0xBA88, 0xBA89, 0xBA8A, 0xBA8B, 0xBA8C, /* 0x00 */
- 0xBA8D, 0xBA8E, 0xBA8F, 0xBA90, 0xBA91, 0xBA93, 0xBA94, 0xBA95, /* 0x00 */
- 0xBA96, 0xBA97, 0xBA98, 0xBA99, 0xBA9A, 0xBA9B, 0xBA9C, 0xBA9D, /* 0x10 */
- 0xBAA1, 0xBAA2, 0xBAA3, 0xBAA4, 0xBAA5, 0xBAA6, 0xBAA7, 0xBAA8, /* 0x10 */
- 0xBAA9, 0xBAAA, 0xBAAB, 0xBAAC, 0xBAAD, 0xBAAE, 0xBAAF, 0xBAB0, /* 0x20 */
- 0xBAB1, 0xBAB3, 0xBAB4, 0xBAB5, 0xBAB6, 0xBAB7, 0xBAB8, 0xBAB9, /* 0x20 */
- 0xBABA, 0xBABB, 0xBABC, 0xBABD, 0xBAC1, 0xBAC2, 0xBAC3, 0xBAC4, /* 0x30 */
- 0xBAC5, 0xBAC6, 0xBAC7, 0xBAC8, 0xBAC9, 0xBACA, 0xBACB, 0xBACC, /* 0x30 */
- 0xBACD, 0xBACE, 0xBACF, 0xBAD0, 0xBAD1, 0xBAD3, 0xBAD4, 0xBAD5, /* 0x40 */
- 0xBAD6, 0xBAD7, 0xBAD8, 0xBAD9, 0xBADA, 0xBADB, 0xBADC, 0xBADD, /* 0x40 */
- 0xBAE1, 0xBAE2, 0xBAE3, 0xBAE4, 0xBAE5, 0xBAE6, 0xBAE7, 0xBAE8, /* 0x50 */
- 0xBAE9, 0xBAEA, 0xBAEB, 0xBAEC, 0xBAED, 0xBAEE, 0xBAEF, 0xBAF0, /* 0x50 */
- 0xBAF1, 0xBAF3, 0xBAF4, 0xBAF5, 0xBAF6, 0xBAF7, 0xBAF8, 0xBAF9, /* 0x60 */
- 0xBAFA, 0xBAFB, 0xBAFC, 0xBAFD, 0xBB41, 0xBB42, 0xBB43, 0xBB44, /* 0x60 */
- 0xBB45, 0xBB46, 0xBB47, 0xBB48, 0xBB49, 0xBB4A, 0xBB4B, 0xBB4C, /* 0x70 */
- 0xBB4D, 0xBB4E, 0xBB4F, 0xBB50, 0xBB51, 0xBB53, 0xBB54, 0xBB55, /* 0x70 */
- 0xBB56, 0xBB57, 0xBB58, 0xBB59, 0xBB5A, 0xBB5B, 0xBB5C, 0xBB5D, /* 0x80 */
- 0xBB61, 0xBB62, 0xBB63, 0xBB64, 0xBB65, 0xBB66, 0xBB67, 0xBB68, /* 0x80 */
- 0xBB69, 0xBB6A, 0xBB6B, 0xBB6C, 0xBB6D, 0xBB6E, 0xBB6F, 0xBB70, /* 0x90 */
- 0xBB71, 0xBB73, 0xBB74, 0xBB75, 0xBB76, 0xBB77, 0xBB78, 0xBB79, /* 0x90 */
- 0xBB7A, 0xBB7B, 0xBB7C, 0xBB7D, 0xBB81, 0xBB82, 0xBB83, 0xBB84, /* 0xA0 */
- 0xBB85, 0xBB86, 0xBB87, 0xBB88, 0xBB89, 0xBB8A, 0xBB8B, 0xBB8C, /* 0xA0 */
- 0xBB8D, 0xBB8E, 0xBB8F, 0xBB90, 0xBB91, 0xBB93, 0xBB94, 0xBB95, /* 0xB0 */
- 0xBB96, 0xBB97, 0xBB98, 0xBB99, 0xBB9A, 0xBB9B, 0xBB9C, 0xBB9D, /* 0xB0 */
- 0xBBA1, 0xBBA2, 0xBBA3, 0xBBA4, 0xBBA5, 0xBBA6, 0xBBA7, 0xBBA8, /* 0xC0 */
- 0xBBA9, 0xBBAA, 0xBBAB, 0xBBAC, 0xBBAD, 0xBBAE, 0xBBAF, 0xBBB0, /* 0xC0 */
- 0xBBB1, 0xBBB3, 0xBBB4, 0xBBB5, 0xBBB6, 0xBBB7, 0xBBB8, 0xBBB9, /* 0xD0 */
- 0xBBBA, 0xBBBB, 0xBBBC, 0xBBBD, 0xBC61, 0xBC62, 0xBC63, 0xBC64, /* 0xD0 */
- 0xBC65, 0xBC66, 0xBC67, 0xBC68, 0xBC69, 0xBC6A, 0xBC6B, 0xBC6C, /* 0xE0 */
- 0xBC6D, 0xBC6E, 0xBC6F, 0xBC70, 0xBC71, 0xBC73, 0xBC74, 0xBC75, /* 0xE0 */
- 0xBC76, 0xBC77, 0xBC78, 0xBC79, 0xBC7A, 0xBC7B, 0xBC7C, 0xBC7D, /* 0xF0 */
- 0xBC81, 0xBC82, 0xBC83, 0xBC84, 0xBC85, 0xBC86, 0xBC87, 0xBC88 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_CA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBC89, 0xBC8A, 0xBC8B, 0xBC8C, 0xBC8D, 0xBC8E, 0xBC8F, 0xBC90, /* 0x00 */
- 0xBC91, 0xBC93, 0xBC94, 0xBC95, 0xBC96, 0xBC97, 0xBC98, 0xBC99, /* 0x00 */
- 0xBC9A, 0xBC9B, 0xBC9C, 0xBC9D, 0xBCA1, 0xBCA2, 0xBCA3, 0xBCA4, /* 0x10 */
- 0xBCA5, 0xBCA6, 0xBCA7, 0xBCA8, 0xBCA9, 0xBCAA, 0xBCAB, 0xBCAC, /* 0x10 */
- 0xBCAD, 0xBCAE, 0xBCAF, 0xBCB0, 0xBCB1, 0xBCB3, 0xBCB4, 0xBCB5, /* 0x20 */
- 0xBCB6, 0xBCB7, 0xBCB8, 0xBCB9, 0xBCBA, 0xBCBB, 0xBCBC, 0xBCBD, /* 0x20 */
- 0xBCC1, 0xBCC2, 0xBCC3, 0xBCC4, 0xBCC5, 0xBCC6, 0xBCC7, 0xBCC8, /* 0x30 */
- 0xBCC9, 0xBCCA, 0xBCCB, 0xBCCC, 0xBCCD, 0xBCCE, 0xBCCF, 0xBCD0, /* 0x30 */
- 0xBCD1, 0xBCD3, 0xBCD4, 0xBCD5, 0xBCD6, 0xBCD7, 0xBCD8, 0xBCD9, /* 0x40 */
- 0xBCDA, 0xBCDB, 0xBCDC, 0xBCDD, 0xBCE1, 0xBCE2, 0xBCE3, 0xBCE4, /* 0x40 */
- 0xBCE5, 0xBCE6, 0xBCE7, 0xBCE8, 0xBCE9, 0xBCEA, 0xBCEB, 0xBCEC, /* 0x50 */
- 0xBCED, 0xBCEE, 0xBCEF, 0xBCF0, 0xBCF1, 0xBCF3, 0xBCF4, 0xBCF5, /* 0x50 */
- 0xBCF6, 0xBCF7, 0xBCF8, 0xBCF9, 0xBCFA, 0xBCFB, 0xBCFC, 0xBCFD, /* 0x60 */
- 0xBD41, 0xBD42, 0xBD43, 0xBD44, 0xBD45, 0xBD46, 0xBD47, 0xBD48, /* 0x60 */
- 0xBD49, 0xBD4A, 0xBD4B, 0xBD4C, 0xBD4D, 0xBD4E, 0xBD4F, 0xBD50, /* 0x70 */
- 0xBD51, 0xBD53, 0xBD54, 0xBD55, 0xBD56, 0xBD57, 0xBD58, 0xBD59, /* 0x70 */
- 0xBD5A, 0xBD5B, 0xBD5C, 0xBD5D, 0xBD61, 0xBD62, 0xBD63, 0xBD64, /* 0x80 */
- 0xBD65, 0xBD66, 0xBD67, 0xBD68, 0xBD69, 0xBD6A, 0xBD6B, 0xBD6C, /* 0x80 */
- 0xBD6D, 0xBD6E, 0xBD6F, 0xBD70, 0xBD71, 0xBD73, 0xBD74, 0xBD75, /* 0x90 */
- 0xBD76, 0xBD77, 0xBD78, 0xBD79, 0xBD7A, 0xBD7B, 0xBD7C, 0xBD7D, /* 0x90 */
- 0xBD81, 0xBD82, 0xBD83, 0xBD84, 0xBD85, 0xBD86, 0xBD87, 0xBD88, /* 0xA0 */
- 0xBD89, 0xBD8A, 0xBD8B, 0xBD8C, 0xBD8D, 0xBD8E, 0xBD8F, 0xBD90, /* 0xA0 */
- 0xBD91, 0xBD93, 0xBD94, 0xBD95, 0xBD96, 0xBD97, 0xBD98, 0xBD99, /* 0xB0 */
- 0xBD9A, 0xBD9B, 0xBD9C, 0xBD9D, 0xBDA1, 0xBDA2, 0xBDA3, 0xBDA4, /* 0xB0 */
- 0xBDA5, 0xBDA6, 0xBDA7, 0xBDA8, 0xBDA9, 0xBDAA, 0xBDAB, 0xBDAC, /* 0xC0 */
- 0xBDAD, 0xBDAE, 0xBDAF, 0xBDB0, 0xBDB1, 0xBDB3, 0xBDB4, 0xBDB5, /* 0xC0 */
- 0xBDB6, 0xBDB7, 0xBDB8, 0xBDB9, 0xBDBA, 0xBDBB, 0xBDBC, 0xBDBD, /* 0xD0 */
- 0xBDC1, 0xBDC2, 0xBDC3, 0xBDC4, 0xBDC5, 0xBDC6, 0xBDC7, 0xBDC8, /* 0xD0 */
- 0xBDC9, 0xBDCA, 0xBDCB, 0xBDCC, 0xBDCD, 0xBDCE, 0xBDCF, 0xBDD0, /* 0xE0 */
- 0xBDD1, 0xBDD3, 0xBDD4, 0xBDD5, 0xBDD6, 0xBDD7, 0xBDD8, 0xBDD9, /* 0xE0 */
- 0xBDDA, 0xBDDB, 0xBDDC, 0xBDDD, 0xBDE1, 0xBDE2, 0xBDE3, 0xBDE4, /* 0xF0 */
- 0xBDE5, 0xBDE6, 0xBDE7, 0xBDE8, 0xBDE9, 0xBDEA, 0xBDEB, 0xBDEC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_CB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBDED, 0xBDEE, 0xBDEF, 0xBDF0, 0xBDF1, 0xBDF3, 0xBDF4, 0xBDF5, /* 0x00 */
- 0xBDF6, 0xBDF7, 0xBDF8, 0xBDF9, 0xBDFA, 0xBDFB, 0xBDFC, 0xBDFD, /* 0x00 */
- 0xBE41, 0xBE42, 0xBE43, 0xBE44, 0xBE45, 0xBE46, 0xBE47, 0xBE48, /* 0x10 */
- 0xBE49, 0xBE4A, 0xBE4B, 0xBE4C, 0xBE4D, 0xBE4E, 0xBE4F, 0xBE50, /* 0x10 */
- 0xBE51, 0xBE53, 0xBE54, 0xBE55, 0xBE56, 0xBE57, 0xBE58, 0xBE59, /* 0x20 */
- 0xBE5A, 0xBE5B, 0xBE5C, 0xBE5D, 0xBE61, 0xBE62, 0xBE63, 0xBE64, /* 0x20 */
- 0xBE65, 0xBE66, 0xBE67, 0xBE68, 0xBE69, 0xBE6A, 0xBE6B, 0xBE6C, /* 0x30 */
- 0xBE6D, 0xBE6E, 0xBE6F, 0xBE70, 0xBE71, 0xBE73, 0xBE74, 0xBE75, /* 0x30 */
- 0xBE76, 0xBE77, 0xBE78, 0xBE79, 0xBE7A, 0xBE7B, 0xBE7C, 0xBE7D, /* 0x40 */
- 0xBE81, 0xBE82, 0xBE83, 0xBE84, 0xBE85, 0xBE86, 0xBE87, 0xBE88, /* 0x40 */
- 0xBE89, 0xBE8A, 0xBE8B, 0xBE8C, 0xBE8D, 0xBE8E, 0xBE8F, 0xBE90, /* 0x50 */
- 0xBE91, 0xBE93, 0xBE94, 0xBE95, 0xBE96, 0xBE97, 0xBE98, 0xBE99, /* 0x50 */
- 0xBE9A, 0xBE9B, 0xBE9C, 0xBE9D, 0xBEA1, 0xBEA2, 0xBEA3, 0xBEA4, /* 0x60 */
- 0xBEA5, 0xBEA6, 0xBEA7, 0xBEA8, 0xBEA9, 0xBEAA, 0xBEAB, 0xBEAC, /* 0x60 */
- 0xBEAD, 0xBEAE, 0xBEAF, 0xBEB0, 0xBEB1, 0xBEB3, 0xBEB4, 0xBEB5, /* 0x70 */
- 0xBEB6, 0xBEB7, 0xBEB8, 0xBEB9, 0xBEBA, 0xBEBB, 0xBEBC, 0xBEBD, /* 0x70 */
- 0xBEC1, 0xBEC2, 0xBEC3, 0xBEC4, 0xBEC5, 0xBEC6, 0xBEC7, 0xBEC8, /* 0x80 */
- 0xBEC9, 0xBECA, 0xBECB, 0xBECC, 0xBECD, 0xBECE, 0xBECF, 0xBED0, /* 0x80 */
- 0xBED1, 0xBED3, 0xBED4, 0xBED5, 0xBED6, 0xBED7, 0xBED8, 0xBED9, /* 0x90 */
- 0xBEDA, 0xBEDB, 0xBEDC, 0xBEDD, 0xBEE1, 0xBEE2, 0xBEE3, 0xBEE4, /* 0x90 */
- 0xBEE5, 0xBEE6, 0xBEE7, 0xBEE8, 0xBEE9, 0xBEEA, 0xBEEB, 0xBEEC, /* 0xA0 */
- 0xBEED, 0xBEEE, 0xBEEF, 0xBEF0, 0xBEF1, 0xBEF3, 0xBEF4, 0xBEF5, /* 0xA0 */
- 0xBEF6, 0xBEF7, 0xBEF8, 0xBEF9, 0xBEFA, 0xBEFB, 0xBEFC, 0xBEFD, /* 0xB0 */
- 0xBF41, 0xBF42, 0xBF43, 0xBF44, 0xBF45, 0xBF46, 0xBF47, 0xBF48, /* 0xB0 */
- 0xBF49, 0xBF4A, 0xBF4B, 0xBF4C, 0xBF4D, 0xBF4E, 0xBF4F, 0xBF50, /* 0xC0 */
- 0xBF51, 0xBF53, 0xBF54, 0xBF55, 0xBF56, 0xBF57, 0xBF58, 0xBF59, /* 0xC0 */
- 0xBF5A, 0xBF5B, 0xBF5C, 0xBF5D, 0xBF61, 0xBF62, 0xBF63, 0xBF64, /* 0xD0 */
- 0xBF65, 0xBF66, 0xBF67, 0xBF68, 0xBF69, 0xBF6A, 0xBF6B, 0xBF6C, /* 0xD0 */
- 0xBF6D, 0xBF6E, 0xBF6F, 0xBF70, 0xBF71, 0xBF73, 0xBF74, 0xBF75, /* 0xE0 */
- 0xBF76, 0xBF77, 0xBF78, 0xBF79, 0xBF7A, 0xBF7B, 0xBF7C, 0xBF7D, /* 0xE0 */
- 0xBF81, 0xBF82, 0xBF83, 0xBF84, 0xBF85, 0xBF86, 0xBF87, 0xBF88, /* 0xF0 */
- 0xBF89, 0xBF8A, 0xBF8B, 0xBF8C, 0xBF8D, 0xBF8E, 0xBF8F, 0xBF90 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_CC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBF91, 0xBF93, 0xBF94, 0xBF95, 0xBF96, 0xBF97, 0xBF98, 0xBF99, /* 0x00 */
- 0xBF9A, 0xBF9B, 0xBF9C, 0xBF9D, 0xBFA1, 0xBFA2, 0xBFA3, 0xBFA4, /* 0x00 */
- 0xBFA5, 0xBFA6, 0xBFA7, 0xBFA8, 0xBFA9, 0xBFAA, 0xBFAB, 0xBFAC, /* 0x10 */
- 0xBFAD, 0xBFAE, 0xBFAF, 0xBFB0, 0xBFB1, 0xBFB3, 0xBFB4, 0xBFB5, /* 0x10 */
- 0xBFB6, 0xBFB7, 0xBFB8, 0xBFB9, 0xBFBA, 0xBFBB, 0xBFBC, 0xBFBD, /* 0x20 */
- 0xC061, 0xC062, 0xC063, 0xC064, 0xC065, 0xC066, 0xC067, 0xC068, /* 0x20 */
- 0xC069, 0xC06A, 0xC06B, 0xC06C, 0xC06D, 0xC06E, 0xC06F, 0xC070, /* 0x30 */
- 0xC071, 0xC073, 0xC074, 0xC075, 0xC076, 0xC077, 0xC078, 0xC079, /* 0x30 */
- 0xC07A, 0xC07B, 0xC07C, 0xC07D, 0xC081, 0xC082, 0xC083, 0xC084, /* 0x40 */
- 0xC085, 0xC086, 0xC087, 0xC088, 0xC089, 0xC08A, 0xC08B, 0xC08C, /* 0x40 */
- 0xC08D, 0xC08E, 0xC08F, 0xC090, 0xC091, 0xC093, 0xC094, 0xC095, /* 0x50 */
- 0xC096, 0xC097, 0xC098, 0xC099, 0xC09A, 0xC09B, 0xC09C, 0xC09D, /* 0x50 */
- 0xC0A1, 0xC0A2, 0xC0A3, 0xC0A4, 0xC0A5, 0xC0A6, 0xC0A7, 0xC0A8, /* 0x60 */
- 0xC0A9, 0xC0AA, 0xC0AB, 0xC0AC, 0xC0AD, 0xC0AE, 0xC0AF, 0xC0B0, /* 0x60 */
- 0xC0B1, 0xC0B3, 0xC0B4, 0xC0B5, 0xC0B6, 0xC0B7, 0xC0B8, 0xC0B9, /* 0x70 */
- 0xC0BA, 0xC0BB, 0xC0BC, 0xC0BD, 0xC0C1, 0xC0C2, 0xC0C3, 0xC0C4, /* 0x70 */
- 0xC0C5, 0xC0C6, 0xC0C7, 0xC0C8, 0xC0C9, 0xC0CA, 0xC0CB, 0xC0CC, /* 0x80 */
- 0xC0CD, 0xC0CE, 0xC0CF, 0xC0D0, 0xC0D1, 0xC0D3, 0xC0D4, 0xC0D5, /* 0x80 */
- 0xC0D6, 0xC0D7, 0xC0D8, 0xC0D9, 0xC0DA, 0xC0DB, 0xC0DC, 0xC0DD, /* 0x90 */
- 0xC0E1, 0xC0E2, 0xC0E3, 0xC0E4, 0xC0E5, 0xC0E6, 0xC0E7, 0xC0E8, /* 0x90 */
- 0xC0E9, 0xC0EA, 0xC0EB, 0xC0EC, 0xC0ED, 0xC0EE, 0xC0EF, 0xC0F0, /* 0xA0 */
- 0xC0F1, 0xC0F3, 0xC0F4, 0xC0F5, 0xC0F6, 0xC0F7, 0xC0F8, 0xC0F9, /* 0xA0 */
- 0xC0FA, 0xC0FB, 0xC0FC, 0xC0FD, 0xC141, 0xC142, 0xC143, 0xC144, /* 0xB0 */
- 0xC145, 0xC146, 0xC147, 0xC148, 0xC149, 0xC14A, 0xC14B, 0xC14C, /* 0xB0 */
- 0xC14D, 0xC14E, 0xC14F, 0xC150, 0xC151, 0xC153, 0xC154, 0xC155, /* 0xC0 */
- 0xC156, 0xC157, 0xC158, 0xC159, 0xC15A, 0xC15B, 0xC15C, 0xC15D, /* 0xC0 */
- 0xC161, 0xC162, 0xC163, 0xC164, 0xC165, 0xC166, 0xC167, 0xC168, /* 0xD0 */
- 0xC169, 0xC16A, 0xC16B, 0xC16C, 0xC16D, 0xC16E, 0xC16F, 0xC170, /* 0xD0 */
- 0xC171, 0xC173, 0xC174, 0xC175, 0xC176, 0xC177, 0xC178, 0xC179, /* 0xE0 */
- 0xC17A, 0xC17B, 0xC17C, 0xC17D, 0xC181, 0xC182, 0xC183, 0xC184, /* 0xE0 */
- 0xC185, 0xC186, 0xC187, 0xC188, 0xC189, 0xC18A, 0xC18B, 0xC18C, /* 0xF0 */
- 0xC18D, 0xC18E, 0xC18F, 0xC190, 0xC191, 0xC193, 0xC194, 0xC195 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_CD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC196, 0xC197, 0xC198, 0xC199, 0xC19A, 0xC19B, 0xC19C, 0xC19D, /* 0x00 */
- 0xC1A1, 0xC1A2, 0xC1A3, 0xC1A4, 0xC1A5, 0xC1A6, 0xC1A7, 0xC1A8, /* 0x00 */
- 0xC1A9, 0xC1AA, 0xC1AB, 0xC1AC, 0xC1AD, 0xC1AE, 0xC1AF, 0xC1B0, /* 0x10 */
- 0xC1B1, 0xC1B3, 0xC1B4, 0xC1B5, 0xC1B6, 0xC1B7, 0xC1B8, 0xC1B9, /* 0x10 */
- 0xC1BA, 0xC1BB, 0xC1BC, 0xC1BD, 0xC1C1, 0xC1C2, 0xC1C3, 0xC1C4, /* 0x20 */
- 0xC1C5, 0xC1C6, 0xC1C7, 0xC1C8, 0xC1C9, 0xC1CA, 0xC1CB, 0xC1CC, /* 0x20 */
- 0xC1CD, 0xC1CE, 0xC1CF, 0xC1D0, 0xC1D1, 0xC1D3, 0xC1D4, 0xC1D5, /* 0x30 */
- 0xC1D6, 0xC1D7, 0xC1D8, 0xC1D9, 0xC1DA, 0xC1DB, 0xC1DC, 0xC1DD, /* 0x30 */
- 0xC1E1, 0xC1E2, 0xC1E3, 0xC1E4, 0xC1E5, 0xC1E6, 0xC1E7, 0xC1E8, /* 0x40 */
- 0xC1E9, 0xC1EA, 0xC1EB, 0xC1EC, 0xC1ED, 0xC1EE, 0xC1EF, 0xC1F0, /* 0x40 */
- 0xC1F1, 0xC1F3, 0xC1F4, 0xC1F5, 0xC1F6, 0xC1F7, 0xC1F8, 0xC1F9, /* 0x50 */
- 0xC1FA, 0xC1FB, 0xC1FC, 0xC1FD, 0xC241, 0xC242, 0xC243, 0xC244, /* 0x50 */
- 0xC245, 0xC246, 0xC247, 0xC248, 0xC249, 0xC24A, 0xC24B, 0xC24C, /* 0x60 */
- 0xC24D, 0xC24E, 0xC24F, 0xC250, 0xC251, 0xC253, 0xC254, 0xC255, /* 0x60 */
- 0xC256, 0xC257, 0xC258, 0xC259, 0xC25A, 0xC25B, 0xC25C, 0xC25D, /* 0x70 */
- 0xC261, 0xC262, 0xC263, 0xC264, 0xC265, 0xC266, 0xC267, 0xC268, /* 0x70 */
- 0xC269, 0xC26A, 0xC26B, 0xC26C, 0xC26D, 0xC26E, 0xC26F, 0xC270, /* 0x80 */
- 0xC271, 0xC273, 0xC274, 0xC275, 0xC276, 0xC277, 0xC278, 0xC279, /* 0x80 */
- 0xC27A, 0xC27B, 0xC27C, 0xC27D, 0xC281, 0xC282, 0xC283, 0xC284, /* 0x90 */
- 0xC285, 0xC286, 0xC287, 0xC288, 0xC289, 0xC28A, 0xC28B, 0xC28C, /* 0x90 */
- 0xC28D, 0xC28E, 0xC28F, 0xC290, 0xC291, 0xC293, 0xC294, 0xC295, /* 0xA0 */
- 0xC296, 0xC297, 0xC298, 0xC299, 0xC29A, 0xC29B, 0xC29C, 0xC29D, /* 0xA0 */
- 0xC2A1, 0xC2A2, 0xC2A3, 0xC2A4, 0xC2A5, 0xC2A6, 0xC2A7, 0xC2A8, /* 0xB0 */
- 0xC2A9, 0xC2AA, 0xC2AB, 0xC2AC, 0xC2AD, 0xC2AE, 0xC2AF, 0xC2B0, /* 0xB0 */
- 0xC2B1, 0xC2B3, 0xC2B4, 0xC2B5, 0xC2B6, 0xC2B7, 0xC2B8, 0xC2B9, /* 0xC0 */
- 0xC2BA, 0xC2BB, 0xC2BC, 0xC2BD, 0xC2C1, 0xC2C2, 0xC2C3, 0xC2C4, /* 0xC0 */
- 0xC2C5, 0xC2C6, 0xC2C7, 0xC2C8, 0xC2C9, 0xC2CA, 0xC2CB, 0xC2CC, /* 0xD0 */
- 0xC2CD, 0xC2CE, 0xC2CF, 0xC2D0, 0xC2D1, 0xC2D3, 0xC2D4, 0xC2D5, /* 0xD0 */
- 0xC2D6, 0xC2D7, 0xC2D8, 0xC2D9, 0xC2DA, 0xC2DB, 0xC2DC, 0xC2DD, /* 0xE0 */
- 0xC2E1, 0xC2E2, 0xC2E3, 0xC2E4, 0xC2E5, 0xC2E6, 0xC2E7, 0xC2E8, /* 0xE0 */
- 0xC2E9, 0xC2EA, 0xC2EB, 0xC2EC, 0xC2ED, 0xC2EE, 0xC2EF, 0xC2F0, /* 0xF0 */
- 0xC2F1, 0xC2F3, 0xC2F4, 0xC2F5, 0xC2F6, 0xC2F7, 0xC2F8, 0xC2F9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_CE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC2FA, 0xC2FB, 0xC2FC, 0xC2FD, 0xC341, 0xC342, 0xC343, 0xC344, /* 0x00 */
- 0xC345, 0xC346, 0xC347, 0xC348, 0xC349, 0xC34A, 0xC34B, 0xC34C, /* 0x00 */
- 0xC34D, 0xC34E, 0xC34F, 0xC350, 0xC351, 0xC353, 0xC354, 0xC355, /* 0x10 */
- 0xC356, 0xC357, 0xC358, 0xC359, 0xC35A, 0xC35B, 0xC35C, 0xC35D, /* 0x10 */
- 0xC361, 0xC362, 0xC363, 0xC364, 0xC365, 0xC366, 0xC367, 0xC368, /* 0x20 */
- 0xC369, 0xC36A, 0xC36B, 0xC36C, 0xC36D, 0xC36E, 0xC36F, 0xC370, /* 0x20 */
- 0xC371, 0xC373, 0xC374, 0xC375, 0xC376, 0xC377, 0xC378, 0xC379, /* 0x30 */
- 0xC37A, 0xC37B, 0xC37C, 0xC37D, 0xC381, 0xC382, 0xC383, 0xC384, /* 0x30 */
- 0xC385, 0xC386, 0xC387, 0xC388, 0xC389, 0xC38A, 0xC38B, 0xC38C, /* 0x40 */
- 0xC38D, 0xC38E, 0xC38F, 0xC390, 0xC391, 0xC393, 0xC394, 0xC395, /* 0x40 */
- 0xC396, 0xC397, 0xC398, 0xC399, 0xC39A, 0xC39B, 0xC39C, 0xC39D, /* 0x50 */
- 0xC3A1, 0xC3A2, 0xC3A3, 0xC3A4, 0xC3A5, 0xC3A6, 0xC3A7, 0xC3A8, /* 0x50 */
- 0xC3A9, 0xC3AA, 0xC3AB, 0xC3AC, 0xC3AD, 0xC3AE, 0xC3AF, 0xC3B0, /* 0x60 */
- 0xC3B1, 0xC3B3, 0xC3B4, 0xC3B5, 0xC3B6, 0xC3B7, 0xC3B8, 0xC3B9, /* 0x60 */
- 0xC3BA, 0xC3BB, 0xC3BC, 0xC3BD, 0xC461, 0xC462, 0xC463, 0xC464, /* 0x70 */
- 0xC465, 0xC466, 0xC467, 0xC468, 0xC469, 0xC46A, 0xC46B, 0xC46C, /* 0x70 */
- 0xC46D, 0xC46E, 0xC46F, 0xC470, 0xC471, 0xC473, 0xC474, 0xC475, /* 0x80 */
- 0xC476, 0xC477, 0xC478, 0xC479, 0xC47A, 0xC47B, 0xC47C, 0xC47D, /* 0x80 */
- 0xC481, 0xC482, 0xC483, 0xC484, 0xC485, 0xC486, 0xC487, 0xC488, /* 0x90 */
- 0xC489, 0xC48A, 0xC48B, 0xC48C, 0xC48D, 0xC48E, 0xC48F, 0xC490, /* 0x90 */
- 0xC491, 0xC493, 0xC494, 0xC495, 0xC496, 0xC497, 0xC498, 0xC499, /* 0xA0 */
- 0xC49A, 0xC49B, 0xC49C, 0xC49D, 0xC4A1, 0xC4A2, 0xC4A3, 0xC4A4, /* 0xA0 */
- 0xC4A5, 0xC4A6, 0xC4A7, 0xC4A8, 0xC4A9, 0xC4AA, 0xC4AB, 0xC4AC, /* 0xB0 */
- 0xC4AD, 0xC4AE, 0xC4AF, 0xC4B0, 0xC4B1, 0xC4B3, 0xC4B4, 0xC4B5, /* 0xB0 */
- 0xC4B6, 0xC4B7, 0xC4B8, 0xC4B9, 0xC4BA, 0xC4BB, 0xC4BC, 0xC4BD, /* 0xC0 */
- 0xC4C1, 0xC4C2, 0xC4C3, 0xC4C4, 0xC4C5, 0xC4C6, 0xC4C7, 0xC4C8, /* 0xC0 */
- 0xC4C9, 0xC4CA, 0xC4CB, 0xC4CC, 0xC4CD, 0xC4CE, 0xC4CF, 0xC4D0, /* 0xD0 */
- 0xC4D1, 0xC4D3, 0xC4D4, 0xC4D5, 0xC4D6, 0xC4D7, 0xC4D8, 0xC4D9, /* 0xD0 */
- 0xC4DA, 0xC4DB, 0xC4DC, 0xC4DD, 0xC4E1, 0xC4E2, 0xC4E3, 0xC4E4, /* 0xE0 */
- 0xC4E5, 0xC4E6, 0xC4E7, 0xC4E8, 0xC4E9, 0xC4EA, 0xC4EB, 0xC4EC, /* 0xE0 */
- 0xC4ED, 0xC4EE, 0xC4EF, 0xC4F0, 0xC4F1, 0xC4F3, 0xC4F4, 0xC4F5, /* 0xF0 */
- 0xC4F6, 0xC4F7, 0xC4F8, 0xC4F9, 0xC4FA, 0xC4FB, 0xC4FC, 0xC4FD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_CF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC541, 0xC542, 0xC543, 0xC544, 0xC545, 0xC546, 0xC547, 0xC548, /* 0x00 */
- 0xC549, 0xC54A, 0xC54B, 0xC54C, 0xC54D, 0xC54E, 0xC54F, 0xC550, /* 0x00 */
- 0xC551, 0xC553, 0xC554, 0xC555, 0xC556, 0xC557, 0xC558, 0xC559, /* 0x10 */
- 0xC55A, 0xC55B, 0xC55C, 0xC55D, 0xC561, 0xC562, 0xC563, 0xC564, /* 0x10 */
- 0xC565, 0xC566, 0xC567, 0xC568, 0xC569, 0xC56A, 0xC56B, 0xC56C, /* 0x20 */
- 0xC56D, 0xC56E, 0xC56F, 0xC570, 0xC571, 0xC573, 0xC574, 0xC575, /* 0x20 */
- 0xC576, 0xC577, 0xC578, 0xC579, 0xC57A, 0xC57B, 0xC57C, 0xC57D, /* 0x30 */
- 0xC581, 0xC582, 0xC583, 0xC584, 0xC585, 0xC586, 0xC587, 0xC588, /* 0x30 */
- 0xC589, 0xC58A, 0xC58B, 0xC58C, 0xC58D, 0xC58E, 0xC58F, 0xC590, /* 0x40 */
- 0xC591, 0xC593, 0xC594, 0xC595, 0xC596, 0xC597, 0xC598, 0xC599, /* 0x40 */
- 0xC59A, 0xC59B, 0xC59C, 0xC59D, 0xC5A1, 0xC5A2, 0xC5A3, 0xC5A4, /* 0x50 */
- 0xC5A5, 0xC5A6, 0xC5A7, 0xC5A8, 0xC5A9, 0xC5AA, 0xC5AB, 0xC5AC, /* 0x50 */
- 0xC5AD, 0xC5AE, 0xC5AF, 0xC5B0, 0xC5B1, 0xC5B3, 0xC5B4, 0xC5B5, /* 0x60 */
- 0xC5B6, 0xC5B7, 0xC5B8, 0xC5B9, 0xC5BA, 0xC5BB, 0xC5BC, 0xC5BD, /* 0x60 */
- 0xC5C1, 0xC5C2, 0xC5C3, 0xC5C4, 0xC5C5, 0xC5C6, 0xC5C7, 0xC5C8, /* 0x70 */
- 0xC5C9, 0xC5CA, 0xC5CB, 0xC5CC, 0xC5CD, 0xC5CE, 0xC5CF, 0xC5D0, /* 0x70 */
- 0xC5D1, 0xC5D3, 0xC5D4, 0xC5D5, 0xC5D6, 0xC5D7, 0xC5D8, 0xC5D9, /* 0x80 */
- 0xC5DA, 0xC5DB, 0xC5DC, 0xC5DD, 0xC5E1, 0xC5E2, 0xC5E3, 0xC5E4, /* 0x80 */
- 0xC5E5, 0xC5E6, 0xC5E7, 0xC5E8, 0xC5E9, 0xC5EA, 0xC5EB, 0xC5EC, /* 0x90 */
- 0xC5ED, 0xC5EE, 0xC5EF, 0xC5F0, 0xC5F1, 0xC5F3, 0xC5F4, 0xC5F5, /* 0x90 */
- 0xC5F6, 0xC5F7, 0xC5F8, 0xC5F9, 0xC5FA, 0xC5FB, 0xC5FC, 0xC5FD, /* 0xA0 */
- 0xC641, 0xC642, 0xC643, 0xC644, 0xC645, 0xC646, 0xC647, 0xC648, /* 0xA0 */
- 0xC649, 0xC64A, 0xC64B, 0xC64C, 0xC64D, 0xC64E, 0xC64F, 0xC650, /* 0xB0 */
- 0xC651, 0xC653, 0xC654, 0xC655, 0xC656, 0xC657, 0xC658, 0xC659, /* 0xB0 */
- 0xC65A, 0xC65B, 0xC65C, 0xC65D, 0xC661, 0xC662, 0xC663, 0xC664, /* 0xC0 */
- 0xC665, 0xC666, 0xC667, 0xC668, 0xC669, 0xC66A, 0xC66B, 0xC66C, /* 0xC0 */
- 0xC66D, 0xC66E, 0xC66F, 0xC670, 0xC671, 0xC673, 0xC674, 0xC675, /* 0xD0 */
- 0xC676, 0xC677, 0xC678, 0xC679, 0xC67A, 0xC67B, 0xC67C, 0xC67D, /* 0xD0 */
- 0xC681, 0xC682, 0xC683, 0xC684, 0xC685, 0xC686, 0xC687, 0xC688, /* 0xE0 */
- 0xC689, 0xC68A, 0xC68B, 0xC68C, 0xC68D, 0xC68E, 0xC68F, 0xC690, /* 0xE0 */
- 0xC691, 0xC693, 0xC694, 0xC695, 0xC696, 0xC697, 0xC698, 0xC699, /* 0xF0 */
- 0xC69A, 0xC69B, 0xC69C, 0xC69D, 0xC6A1, 0xC6A2, 0xC6A3, 0xC6A4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_D0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC6A5, 0xC6A6, 0xC6A7, 0xC6A8, 0xC6A9, 0xC6AA, 0xC6AB, 0xC6AC, /* 0x00 */
- 0xC6AD, 0xC6AE, 0xC6AF, 0xC6B0, 0xC6B1, 0xC6B3, 0xC6B4, 0xC6B5, /* 0x00 */
- 0xC6B6, 0xC6B7, 0xC6B8, 0xC6B9, 0xC6BA, 0xC6BB, 0xC6BC, 0xC6BD, /* 0x10 */
- 0xC6C1, 0xC6C2, 0xC6C3, 0xC6C4, 0xC6C5, 0xC6C6, 0xC6C7, 0xC6C8, /* 0x10 */
- 0xC6C9, 0xC6CA, 0xC6CB, 0xC6CC, 0xC6CD, 0xC6CE, 0xC6CF, 0xC6D0, /* 0x20 */
- 0xC6D1, 0xC6D3, 0xC6D4, 0xC6D5, 0xC6D6, 0xC6D7, 0xC6D8, 0xC6D9, /* 0x20 */
- 0xC6DA, 0xC6DB, 0xC6DC, 0xC6DD, 0xC6E1, 0xC6E2, 0xC6E3, 0xC6E4, /* 0x30 */
- 0xC6E5, 0xC6E6, 0xC6E7, 0xC6E8, 0xC6E9, 0xC6EA, 0xC6EB, 0xC6EC, /* 0x30 */
- 0xC6ED, 0xC6EE, 0xC6EF, 0xC6F0, 0xC6F1, 0xC6F3, 0xC6F4, 0xC6F5, /* 0x40 */
- 0xC6F6, 0xC6F7, 0xC6F8, 0xC6F9, 0xC6FA, 0xC6FB, 0xC6FC, 0xC6FD, /* 0x40 */
- 0xC741, 0xC742, 0xC743, 0xC744, 0xC745, 0xC746, 0xC747, 0xC748, /* 0x50 */
- 0xC749, 0xC74A, 0xC74B, 0xC74C, 0xC74D, 0xC74E, 0xC74F, 0xC750, /* 0x50 */
- 0xC751, 0xC753, 0xC754, 0xC755, 0xC756, 0xC757, 0xC758, 0xC759, /* 0x60 */
- 0xC75A, 0xC75B, 0xC75C, 0xC75D, 0xC761, 0xC762, 0xC763, 0xC764, /* 0x60 */
- 0xC765, 0xC766, 0xC767, 0xC768, 0xC769, 0xC76A, 0xC76B, 0xC76C, /* 0x70 */
- 0xC76D, 0xC76E, 0xC76F, 0xC770, 0xC771, 0xC773, 0xC774, 0xC775, /* 0x70 */
- 0xC776, 0xC777, 0xC778, 0xC779, 0xC77A, 0xC77B, 0xC77C, 0xC77D, /* 0x80 */
- 0xC781, 0xC782, 0xC783, 0xC784, 0xC785, 0xC786, 0xC787, 0xC788, /* 0x80 */
- 0xC789, 0xC78A, 0xC78B, 0xC78C, 0xC78D, 0xC78E, 0xC78F, 0xC790, /* 0x90 */
- 0xC791, 0xC793, 0xC794, 0xC795, 0xC796, 0xC797, 0xC798, 0xC799, /* 0x90 */
- 0xC79A, 0xC79B, 0xC79C, 0xC79D, 0xC7A1, 0xC7A2, 0xC7A3, 0xC7A4, /* 0xA0 */
- 0xC7A5, 0xC7A6, 0xC7A7, 0xC7A8, 0xC7A9, 0xC7AA, 0xC7AB, 0xC7AC, /* 0xA0 */
- 0xC7AD, 0xC7AE, 0xC7AF, 0xC7B0, 0xC7B1, 0xC7B3, 0xC7B4, 0xC7B5, /* 0xB0 */
- 0xC7B6, 0xC7B7, 0xC7B8, 0xC7B9, 0xC7BA, 0xC7BB, 0xC7BC, 0xC7BD, /* 0xB0 */
- 0xC861, 0xC862, 0xC863, 0xC864, 0xC865, 0xC866, 0xC867, 0xC868, /* 0xC0 */
- 0xC869, 0xC86A, 0xC86B, 0xC86C, 0xC86D, 0xC86E, 0xC86F, 0xC870, /* 0xC0 */
- 0xC871, 0xC873, 0xC874, 0xC875, 0xC876, 0xC877, 0xC878, 0xC879, /* 0xD0 */
- 0xC87A, 0xC87B, 0xC87C, 0xC87D, 0xC881, 0xC882, 0xC883, 0xC884, /* 0xD0 */
- 0xC885, 0xC886, 0xC887, 0xC888, 0xC889, 0xC88A, 0xC88B, 0xC88C, /* 0xE0 */
- 0xC88D, 0xC88E, 0xC88F, 0xC890, 0xC891, 0xC893, 0xC894, 0xC895, /* 0xE0 */
- 0xC896, 0xC897, 0xC898, 0xC899, 0xC89A, 0xC89B, 0xC89C, 0xC89D, /* 0xF0 */
- 0xC8A1, 0xC8A2, 0xC8A3, 0xC8A4, 0xC8A5, 0xC8A6, 0xC8A7, 0xC8A8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_D1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC8A9, 0xC8AA, 0xC8AB, 0xC8AC, 0xC8AD, 0xC8AE, 0xC8AF, 0xC8B0, /* 0x00 */
- 0xC8B1, 0xC8B3, 0xC8B4, 0xC8B5, 0xC8B6, 0xC8B7, 0xC8B8, 0xC8B9, /* 0x00 */
- 0xC8BA, 0xC8BB, 0xC8BC, 0xC8BD, 0xC8C1, 0xC8C2, 0xC8C3, 0xC8C4, /* 0x10 */
- 0xC8C5, 0xC8C6, 0xC8C7, 0xC8C8, 0xC8C9, 0xC8CA, 0xC8CB, 0xC8CC, /* 0x10 */
- 0xC8CD, 0xC8CE, 0xC8CF, 0xC8D0, 0xC8D1, 0xC8D3, 0xC8D4, 0xC8D5, /* 0x20 */
- 0xC8D6, 0xC8D7, 0xC8D8, 0xC8D9, 0xC8DA, 0xC8DB, 0xC8DC, 0xC8DD, /* 0x20 */
- 0xC8E1, 0xC8E2, 0xC8E3, 0xC8E4, 0xC8E5, 0xC8E6, 0xC8E7, 0xC8E8, /* 0x30 */
- 0xC8E9, 0xC8EA, 0xC8EB, 0xC8EC, 0xC8ED, 0xC8EE, 0xC8EF, 0xC8F0, /* 0x30 */
- 0xC8F1, 0xC8F3, 0xC8F4, 0xC8F5, 0xC8F6, 0xC8F7, 0xC8F8, 0xC8F9, /* 0x40 */
- 0xC8FA, 0xC8FB, 0xC8FC, 0xC8FD, 0xC941, 0xC942, 0xC943, 0xC944, /* 0x40 */
- 0xC945, 0xC946, 0xC947, 0xC948, 0xC949, 0xC94A, 0xC94B, 0xC94C, /* 0x50 */
- 0xC94D, 0xC94E, 0xC94F, 0xC950, 0xC951, 0xC953, 0xC954, 0xC955, /* 0x50 */
- 0xC956, 0xC957, 0xC958, 0xC959, 0xC95A, 0xC95B, 0xC95C, 0xC95D, /* 0x60 */
- 0xC961, 0xC962, 0xC963, 0xC964, 0xC965, 0xC966, 0xC967, 0xC968, /* 0x60 */
- 0xC969, 0xC96A, 0xC96B, 0xC96C, 0xC96D, 0xC96E, 0xC96F, 0xC970, /* 0x70 */
- 0xC971, 0xC973, 0xC974, 0xC975, 0xC976, 0xC977, 0xC978, 0xC979, /* 0x70 */
- 0xC97A, 0xC97B, 0xC97C, 0xC97D, 0xC981, 0xC982, 0xC983, 0xC984, /* 0x80 */
- 0xC985, 0xC986, 0xC987, 0xC988, 0xC989, 0xC98A, 0xC98B, 0xC98C, /* 0x80 */
- 0xC98D, 0xC98E, 0xC98F, 0xC990, 0xC991, 0xC993, 0xC994, 0xC995, /* 0x90 */
- 0xC996, 0xC997, 0xC998, 0xC999, 0xC99A, 0xC99B, 0xC99C, 0xC99D, /* 0x90 */
- 0xC9A1, 0xC9A2, 0xC9A3, 0xC9A4, 0xC9A5, 0xC9A6, 0xC9A7, 0xC9A8, /* 0xA0 */
- 0xC9A9, 0xC9AA, 0xC9AB, 0xC9AC, 0xC9AD, 0xC9AE, 0xC9AF, 0xC9B0, /* 0xA0 */
- 0xC9B1, 0xC9B3, 0xC9B4, 0xC9B5, 0xC9B6, 0xC9B7, 0xC9B8, 0xC9B9, /* 0xB0 */
- 0xC9BA, 0xC9BB, 0xC9BC, 0xC9BD, 0xC9C1, 0xC9C2, 0xC9C3, 0xC9C4, /* 0xB0 */
- 0xC9C5, 0xC9C6, 0xC9C7, 0xC9C8, 0xC9C9, 0xC9CA, 0xC9CB, 0xC9CC, /* 0xC0 */
- 0xC9CD, 0xC9CE, 0xC9CF, 0xC9D0, 0xC9D1, 0xC9D3, 0xC9D4, 0xC9D5, /* 0xC0 */
- 0xC9D6, 0xC9D7, 0xC9D8, 0xC9D9, 0xC9DA, 0xC9DB, 0xC9DC, 0xC9DD, /* 0xD0 */
- 0xC9E1, 0xC9E2, 0xC9E3, 0xC9E4, 0xC9E5, 0xC9E6, 0xC9E7, 0xC9E8, /* 0xD0 */
- 0xC9E9, 0xC9EA, 0xC9EB, 0xC9EC, 0xC9ED, 0xC9EE, 0xC9EF, 0xC9F0, /* 0xE0 */
- 0xC9F1, 0xC9F3, 0xC9F4, 0xC9F5, 0xC9F6, 0xC9F7, 0xC9F8, 0xC9F9, /* 0xE0 */
- 0xC9FA, 0xC9FB, 0xC9FC, 0xC9FD, 0xCA41, 0xCA42, 0xCA43, 0xCA44, /* 0xF0 */
- 0xCA45, 0xCA46, 0xCA47, 0xCA48, 0xCA49, 0xCA4A, 0xCA4B, 0xCA4C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_D2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCA4D, 0xCA4E, 0xCA4F, 0xCA50, 0xCA51, 0xCA53, 0xCA54, 0xCA55, /* 0x00 */
- 0xCA56, 0xCA57, 0xCA58, 0xCA59, 0xCA5A, 0xCA5B, 0xCA5C, 0xCA5D, /* 0x00 */
- 0xCA61, 0xCA62, 0xCA63, 0xCA64, 0xCA65, 0xCA66, 0xCA67, 0xCA68, /* 0x10 */
- 0xCA69, 0xCA6A, 0xCA6B, 0xCA6C, 0xCA6D, 0xCA6E, 0xCA6F, 0xCA70, /* 0x10 */
- 0xCA71, 0xCA73, 0xCA74, 0xCA75, 0xCA76, 0xCA77, 0xCA78, 0xCA79, /* 0x20 */
- 0xCA7A, 0xCA7B, 0xCA7C, 0xCA7D, 0xCA81, 0xCA82, 0xCA83, 0xCA84, /* 0x20 */
- 0xCA85, 0xCA86, 0xCA87, 0xCA88, 0xCA89, 0xCA8A, 0xCA8B, 0xCA8C, /* 0x30 */
- 0xCA8D, 0xCA8E, 0xCA8F, 0xCA90, 0xCA91, 0xCA93, 0xCA94, 0xCA95, /* 0x30 */
- 0xCA96, 0xCA97, 0xCA98, 0xCA99, 0xCA9A, 0xCA9B, 0xCA9C, 0xCA9D, /* 0x40 */
- 0xCAA1, 0xCAA2, 0xCAA3, 0xCAA4, 0xCAA5, 0xCAA6, 0xCAA7, 0xCAA8, /* 0x40 */
- 0xCAA9, 0xCAAA, 0xCAAB, 0xCAAC, 0xCAAD, 0xCAAE, 0xCAAF, 0xCAB0, /* 0x50 */
- 0xCAB1, 0xCAB3, 0xCAB4, 0xCAB5, 0xCAB6, 0xCAB7, 0xCAB8, 0xCAB9, /* 0x50 */
- 0xCABA, 0xCABB, 0xCABC, 0xCABD, 0xCAC1, 0xCAC2, 0xCAC3, 0xCAC4, /* 0x60 */
- 0xCAC5, 0xCAC6, 0xCAC7, 0xCAC8, 0xCAC9, 0xCACA, 0xCACB, 0xCACC, /* 0x60 */
- 0xCACD, 0xCACE, 0xCACF, 0xCAD0, 0xCAD1, 0xCAD3, 0xCAD4, 0xCAD5, /* 0x70 */
- 0xCAD6, 0xCAD7, 0xCAD8, 0xCAD9, 0xCADA, 0xCADB, 0xCADC, 0xCADD, /* 0x70 */
- 0xCAE1, 0xCAE2, 0xCAE3, 0xCAE4, 0xCAE5, 0xCAE6, 0xCAE7, 0xCAE8, /* 0x80 */
- 0xCAE9, 0xCAEA, 0xCAEB, 0xCAEC, 0xCAED, 0xCAEE, 0xCAEF, 0xCAF0, /* 0x80 */
- 0xCAF1, 0xCAF3, 0xCAF4, 0xCAF5, 0xCAF6, 0xCAF7, 0xCAF8, 0xCAF9, /* 0x90 */
- 0xCAFA, 0xCAFB, 0xCAFC, 0xCAFD, 0xCB41, 0xCB42, 0xCB43, 0xCB44, /* 0x90 */
- 0xCB45, 0xCB46, 0xCB47, 0xCB48, 0xCB49, 0xCB4A, 0xCB4B, 0xCB4C, /* 0xA0 */
- 0xCB4D, 0xCB4E, 0xCB4F, 0xCB50, 0xCB51, 0xCB53, 0xCB54, 0xCB55, /* 0xA0 */
- 0xCB56, 0xCB57, 0xCB58, 0xCB59, 0xCB5A, 0xCB5B, 0xCB5C, 0xCB5D, /* 0xB0 */
- 0xCB61, 0xCB62, 0xCB63, 0xCB64, 0xCB65, 0xCB66, 0xCB67, 0xCB68, /* 0xB0 */
- 0xCB69, 0xCB6A, 0xCB6B, 0xCB6C, 0xCB6D, 0xCB6E, 0xCB6F, 0xCB70, /* 0xC0 */
- 0xCB71, 0xCB73, 0xCB74, 0xCB75, 0xCB76, 0xCB77, 0xCB78, 0xCB79, /* 0xC0 */
- 0xCB7A, 0xCB7B, 0xCB7C, 0xCB7D, 0xCB81, 0xCB82, 0xCB83, 0xCB84, /* 0xD0 */
- 0xCB85, 0xCB86, 0xCB87, 0xCB88, 0xCB89, 0xCB8A, 0xCB8B, 0xCB8C, /* 0xD0 */
- 0xCB8D, 0xCB8E, 0xCB8F, 0xCB90, 0xCB91, 0xCB93, 0xCB94, 0xCB95, /* 0xE0 */
- 0xCB96, 0xCB97, 0xCB98, 0xCB99, 0xCB9A, 0xCB9B, 0xCB9C, 0xCB9D, /* 0xE0 */
- 0xCBA1, 0xCBA2, 0xCBA3, 0xCBA4, 0xCBA5, 0xCBA6, 0xCBA7, 0xCBA8, /* 0xF0 */
- 0xCBA9, 0xCBAA, 0xCBAB, 0xCBAC, 0xCBAD, 0xCBAE, 0xCBAF, 0xCBB0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_D3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCBB1, 0xCBB3, 0xCBB4, 0xCBB5, 0xCBB6, 0xCBB7, 0xCBB8, 0xCBB9, /* 0x00 */
- 0xCBBA, 0xCBBB, 0xCBBC, 0xCBBD, 0xCC61, 0xCC62, 0xCC63, 0xCC64, /* 0x00 */
- 0xCC65, 0xCC66, 0xCC67, 0xCC68, 0xCC69, 0xCC6A, 0xCC6B, 0xCC6C, /* 0x10 */
- 0xCC6D, 0xCC6E, 0xCC6F, 0xCC70, 0xCC71, 0xCC73, 0xCC74, 0xCC75, /* 0x10 */
- 0xCC76, 0xCC77, 0xCC78, 0xCC79, 0xCC7A, 0xCC7B, 0xCC7C, 0xCC7D, /* 0x20 */
- 0xCC81, 0xCC82, 0xCC83, 0xCC84, 0xCC85, 0xCC86, 0xCC87, 0xCC88, /* 0x20 */
- 0xCC89, 0xCC8A, 0xCC8B, 0xCC8C, 0xCC8D, 0xCC8E, 0xCC8F, 0xCC90, /* 0x30 */
- 0xCC91, 0xCC93, 0xCC94, 0xCC95, 0xCC96, 0xCC97, 0xCC98, 0xCC99, /* 0x30 */
- 0xCC9A, 0xCC9B, 0xCC9C, 0xCC9D, 0xCCA1, 0xCCA2, 0xCCA3, 0xCCA4, /* 0x40 */
- 0xCCA5, 0xCCA6, 0xCCA7, 0xCCA8, 0xCCA9, 0xCCAA, 0xCCAB, 0xCCAC, /* 0x40 */
- 0xCCAD, 0xCCAE, 0xCCAF, 0xCCB0, 0xCCB1, 0xCCB3, 0xCCB4, 0xCCB5, /* 0x50 */
- 0xCCB6, 0xCCB7, 0xCCB8, 0xCCB9, 0xCCBA, 0xCCBB, 0xCCBC, 0xCCBD, /* 0x50 */
- 0xCCC1, 0xCCC2, 0xCCC3, 0xCCC4, 0xCCC5, 0xCCC6, 0xCCC7, 0xCCC8, /* 0x60 */
- 0xCCC9, 0xCCCA, 0xCCCB, 0xCCCC, 0xCCCD, 0xCCCE, 0xCCCF, 0xCCD0, /* 0x60 */
- 0xCCD1, 0xCCD3, 0xCCD4, 0xCCD5, 0xCCD6, 0xCCD7, 0xCCD8, 0xCCD9, /* 0x70 */
- 0xCCDA, 0xCCDB, 0xCCDC, 0xCCDD, 0xCCE1, 0xCCE2, 0xCCE3, 0xCCE4, /* 0x70 */
- 0xCCE5, 0xCCE6, 0xCCE7, 0xCCE8, 0xCCE9, 0xCCEA, 0xCCEB, 0xCCEC, /* 0x80 */
- 0xCCED, 0xCCEE, 0xCCEF, 0xCCF0, 0xCCF1, 0xCCF3, 0xCCF4, 0xCCF5, /* 0x80 */
- 0xCCF6, 0xCCF7, 0xCCF8, 0xCCF9, 0xCCFA, 0xCCFB, 0xCCFC, 0xCCFD, /* 0x90 */
- 0xCD41, 0xCD42, 0xCD43, 0xCD44, 0xCD45, 0xCD46, 0xCD47, 0xCD48, /* 0x90 */
- 0xCD49, 0xCD4A, 0xCD4B, 0xCD4C, 0xCD4D, 0xCD4E, 0xCD4F, 0xCD50, /* 0xA0 */
- 0xCD51, 0xCD53, 0xCD54, 0xCD55, 0xCD56, 0xCD57, 0xCD58, 0xCD59, /* 0xA0 */
- 0xCD5A, 0xCD5B, 0xCD5C, 0xCD5D, 0xCD61, 0xCD62, 0xCD63, 0xCD64, /* 0xB0 */
- 0xCD65, 0xCD66, 0xCD67, 0xCD68, 0xCD69, 0xCD6A, 0xCD6B, 0xCD6C, /* 0xB0 */
- 0xCD6D, 0xCD6E, 0xCD6F, 0xCD70, 0xCD71, 0xCD73, 0xCD74, 0xCD75, /* 0xC0 */
- 0xCD76, 0xCD77, 0xCD78, 0xCD79, 0xCD7A, 0xCD7B, 0xCD7C, 0xCD7D, /* 0xC0 */
- 0xCD81, 0xCD82, 0xCD83, 0xCD84, 0xCD85, 0xCD86, 0xCD87, 0xCD88, /* 0xD0 */
- 0xCD89, 0xCD8A, 0xCD8B, 0xCD8C, 0xCD8D, 0xCD8E, 0xCD8F, 0xCD90, /* 0xD0 */
- 0xCD91, 0xCD93, 0xCD94, 0xCD95, 0xCD96, 0xCD97, 0xCD98, 0xCD99, /* 0xE0 */
- 0xCD9A, 0xCD9B, 0xCD9C, 0xCD9D, 0xCDA1, 0xCDA2, 0xCDA3, 0xCDA4, /* 0xE0 */
- 0xCDA5, 0xCDA6, 0xCDA7, 0xCDA8, 0xCDA9, 0xCDAA, 0xCDAB, 0xCDAC, /* 0xF0 */
- 0xCDAD, 0xCDAE, 0xCDAF, 0xCDB0, 0xCDB1, 0xCDB3, 0xCDB4, 0xCDB5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_D4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCDB6, 0xCDB7, 0xCDB8, 0xCDB9, 0xCDBA, 0xCDBB, 0xCDBC, 0xCDBD, /* 0x00 */
- 0xCDC1, 0xCDC2, 0xCDC3, 0xCDC4, 0xCDC5, 0xCDC6, 0xCDC7, 0xCDC8, /* 0x00 */
- 0xCDC9, 0xCDCA, 0xCDCB, 0xCDCC, 0xCDCD, 0xCDCE, 0xCDCF, 0xCDD0, /* 0x10 */
- 0xCDD1, 0xCDD3, 0xCDD4, 0xCDD5, 0xCDD6, 0xCDD7, 0xCDD8, 0xCDD9, /* 0x10 */
- 0xCDDA, 0xCDDB, 0xCDDC, 0xCDDD, 0xCDE1, 0xCDE2, 0xCDE3, 0xCDE4, /* 0x20 */
- 0xCDE5, 0xCDE6, 0xCDE7, 0xCDE8, 0xCDE9, 0xCDEA, 0xCDEB, 0xCDEC, /* 0x20 */
- 0xCDED, 0xCDEE, 0xCDEF, 0xCDF0, 0xCDF1, 0xCDF3, 0xCDF4, 0xCDF5, /* 0x30 */
- 0xCDF6, 0xCDF7, 0xCDF8, 0xCDF9, 0xCDFA, 0xCDFB, 0xCDFC, 0xCDFD, /* 0x30 */
- 0xCE41, 0xCE42, 0xCE43, 0xCE44, 0xCE45, 0xCE46, 0xCE47, 0xCE48, /* 0x40 */
- 0xCE49, 0xCE4A, 0xCE4B, 0xCE4C, 0xCE4D, 0xCE4E, 0xCE4F, 0xCE50, /* 0x40 */
- 0xCE51, 0xCE53, 0xCE54, 0xCE55, 0xCE56, 0xCE57, 0xCE58, 0xCE59, /* 0x50 */
- 0xCE5A, 0xCE5B, 0xCE5C, 0xCE5D, 0xCE61, 0xCE62, 0xCE63, 0xCE64, /* 0x50 */
- 0xCE65, 0xCE66, 0xCE67, 0xCE68, 0xCE69, 0xCE6A, 0xCE6B, 0xCE6C, /* 0x60 */
- 0xCE6D, 0xCE6E, 0xCE6F, 0xCE70, 0xCE71, 0xCE73, 0xCE74, 0xCE75, /* 0x60 */
- 0xCE76, 0xCE77, 0xCE78, 0xCE79, 0xCE7A, 0xCE7B, 0xCE7C, 0xCE7D, /* 0x70 */
- 0xCE81, 0xCE82, 0xCE83, 0xCE84, 0xCE85, 0xCE86, 0xCE87, 0xCE88, /* 0x70 */
- 0xCE89, 0xCE8A, 0xCE8B, 0xCE8C, 0xCE8D, 0xCE8E, 0xCE8F, 0xCE90, /* 0x80 */
- 0xCE91, 0xCE93, 0xCE94, 0xCE95, 0xCE96, 0xCE97, 0xCE98, 0xCE99, /* 0x80 */
- 0xCE9A, 0xCE9B, 0xCE9C, 0xCE9D, 0xCEA1, 0xCEA2, 0xCEA3, 0xCEA4, /* 0x90 */
- 0xCEA5, 0xCEA6, 0xCEA7, 0xCEA8, 0xCEA9, 0xCEAA, 0xCEAB, 0xCEAC, /* 0x90 */
- 0xCEAD, 0xCEAE, 0xCEAF, 0xCEB0, 0xCEB1, 0xCEB3, 0xCEB4, 0xCEB5, /* 0xA0 */
- 0xCEB6, 0xCEB7, 0xCEB8, 0xCEB9, 0xCEBA, 0xCEBB, 0xCEBC, 0xCEBD, /* 0xA0 */
- 0xCEC1, 0xCEC2, 0xCEC3, 0xCEC4, 0xCEC5, 0xCEC6, 0xCEC7, 0xCEC8, /* 0xB0 */
- 0xCEC9, 0xCECA, 0xCECB, 0xCECC, 0xCECD, 0xCECE, 0xCECF, 0xCED0, /* 0xB0 */
- 0xCED1, 0xCED3, 0xCED4, 0xCED5, 0xCED6, 0xCED7, 0xCED8, 0xCED9, /* 0xC0 */
- 0xCEDA, 0xCEDB, 0xCEDC, 0xCEDD, 0xCEE1, 0xCEE2, 0xCEE3, 0xCEE4, /* 0xC0 */
- 0xCEE5, 0xCEE6, 0xCEE7, 0xCEE8, 0xCEE9, 0xCEEA, 0xCEEB, 0xCEEC, /* 0xD0 */
- 0xCEED, 0xCEEE, 0xCEEF, 0xCEF0, 0xCEF1, 0xCEF3, 0xCEF4, 0xCEF5, /* 0xD0 */
- 0xCEF6, 0xCEF7, 0xCEF8, 0xCEF9, 0xCEFA, 0xCEFB, 0xCEFC, 0xCEFD, /* 0xE0 */
- 0xCF41, 0xCF42, 0xCF43, 0xCF44, 0xCF45, 0xCF46, 0xCF47, 0xCF48, /* 0xE0 */
- 0xCF49, 0xCF4A, 0xCF4B, 0xCF4C, 0xCF4D, 0xCF4E, 0xCF4F, 0xCF50, /* 0xF0 */
- 0xCF51, 0xCF53, 0xCF54, 0xCF55, 0xCF56, 0xCF57, 0xCF58, 0xCF59 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_D5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCF5A, 0xCF5B, 0xCF5C, 0xCF5D, 0xCF61, 0xCF62, 0xCF63, 0xCF64, /* 0x00 */
- 0xCF65, 0xCF66, 0xCF67, 0xCF68, 0xCF69, 0xCF6A, 0xCF6B, 0xCF6C, /* 0x00 */
- 0xCF6D, 0xCF6E, 0xCF6F, 0xCF70, 0xCF71, 0xCF73, 0xCF74, 0xCF75, /* 0x10 */
- 0xCF76, 0xCF77, 0xCF78, 0xCF79, 0xCF7A, 0xCF7B, 0xCF7C, 0xCF7D, /* 0x10 */
- 0xCF81, 0xCF82, 0xCF83, 0xCF84, 0xCF85, 0xCF86, 0xCF87, 0xCF88, /* 0x20 */
- 0xCF89, 0xCF8A, 0xCF8B, 0xCF8C, 0xCF8D, 0xCF8E, 0xCF8F, 0xCF90, /* 0x20 */
- 0xCF91, 0xCF93, 0xCF94, 0xCF95, 0xCF96, 0xCF97, 0xCF98, 0xCF99, /* 0x30 */
- 0xCF9A, 0xCF9B, 0xCF9C, 0xCF9D, 0xCFA1, 0xCFA2, 0xCFA3, 0xCFA4, /* 0x30 */
- 0xCFA5, 0xCFA6, 0xCFA7, 0xCFA8, 0xCFA9, 0xCFAA, 0xCFAB, 0xCFAC, /* 0x40 */
- 0xCFAD, 0xCFAE, 0xCFAF, 0xCFB0, 0xCFB1, 0xCFB3, 0xCFB4, 0xCFB5, /* 0x40 */
- 0xCFB6, 0xCFB7, 0xCFB8, 0xCFB9, 0xCFBA, 0xCFBB, 0xCFBC, 0xCFBD, /* 0x50 */
- 0xD061, 0xD062, 0xD063, 0xD064, 0xD065, 0xD066, 0xD067, 0xD068, /* 0x50 */
- 0xD069, 0xD06A, 0xD06B, 0xD06C, 0xD06D, 0xD06E, 0xD06F, 0xD070, /* 0x60 */
- 0xD071, 0xD073, 0xD074, 0xD075, 0xD076, 0xD077, 0xD078, 0xD079, /* 0x60 */
- 0xD07A, 0xD07B, 0xD07C, 0xD07D, 0xD081, 0xD082, 0xD083, 0xD084, /* 0x70 */
- 0xD085, 0xD086, 0xD087, 0xD088, 0xD089, 0xD08A, 0xD08B, 0xD08C, /* 0x70 */
- 0xD08D, 0xD08E, 0xD08F, 0xD090, 0xD091, 0xD093, 0xD094, 0xD095, /* 0x80 */
- 0xD096, 0xD097, 0xD098, 0xD099, 0xD09A, 0xD09B, 0xD09C, 0xD09D, /* 0x80 */
- 0xD0A1, 0xD0A2, 0xD0A3, 0xD0A4, 0xD0A5, 0xD0A6, 0xD0A7, 0xD0A8, /* 0x90 */
- 0xD0A9, 0xD0AA, 0xD0AB, 0xD0AC, 0xD0AD, 0xD0AE, 0xD0AF, 0xD0B0, /* 0x90 */
- 0xD0B1, 0xD0B3, 0xD0B4, 0xD0B5, 0xD0B6, 0xD0B7, 0xD0B8, 0xD0B9, /* 0xA0 */
- 0xD0BA, 0xD0BB, 0xD0BC, 0xD0BD, 0xD0C1, 0xD0C2, 0xD0C3, 0xD0C4, /* 0xA0 */
- 0xD0C5, 0xD0C6, 0xD0C7, 0xD0C8, 0xD0C9, 0xD0CA, 0xD0CB, 0xD0CC, /* 0xB0 */
- 0xD0CD, 0xD0CE, 0xD0CF, 0xD0D0, 0xD0D1, 0xD0D3, 0xD0D4, 0xD0D5, /* 0xB0 */
- 0xD0D6, 0xD0D7, 0xD0D8, 0xD0D9, 0xD0DA, 0xD0DB, 0xD0DC, 0xD0DD, /* 0xC0 */
- 0xD0E1, 0xD0E2, 0xD0E3, 0xD0E4, 0xD0E5, 0xD0E6, 0xD0E7, 0xD0E8, /* 0xC0 */
- 0xD0E9, 0xD0EA, 0xD0EB, 0xD0EC, 0xD0ED, 0xD0EE, 0xD0EF, 0xD0F0, /* 0xD0 */
- 0xD0F1, 0xD0F3, 0xD0F4, 0xD0F5, 0xD0F6, 0xD0F7, 0xD0F8, 0xD0F9, /* 0xD0 */
- 0xD0FA, 0xD0FB, 0xD0FC, 0xD0FD, 0xD141, 0xD142, 0xD143, 0xD144, /* 0xE0 */
- 0xD145, 0xD146, 0xD147, 0xD148, 0xD149, 0xD14A, 0xD14B, 0xD14C, /* 0xE0 */
- 0xD14D, 0xD14E, 0xD14F, 0xD150, 0xD151, 0xD153, 0xD154, 0xD155, /* 0xF0 */
- 0xD156, 0xD157, 0xD158, 0xD159, 0xD15A, 0xD15B, 0xD15C, 0xD15D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_D6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD161, 0xD162, 0xD163, 0xD164, 0xD165, 0xD166, 0xD167, 0xD168, /* 0x00 */
- 0xD169, 0xD16A, 0xD16B, 0xD16C, 0xD16D, 0xD16E, 0xD16F, 0xD170, /* 0x00 */
- 0xD171, 0xD173, 0xD174, 0xD175, 0xD176, 0xD177, 0xD178, 0xD179, /* 0x10 */
- 0xD17A, 0xD17B, 0xD17C, 0xD17D, 0xD181, 0xD182, 0xD183, 0xD184, /* 0x10 */
- 0xD185, 0xD186, 0xD187, 0xD188, 0xD189, 0xD18A, 0xD18B, 0xD18C, /* 0x20 */
- 0xD18D, 0xD18E, 0xD18F, 0xD190, 0xD191, 0xD193, 0xD194, 0xD195, /* 0x20 */
- 0xD196, 0xD197, 0xD198, 0xD199, 0xD19A, 0xD19B, 0xD19C, 0xD19D, /* 0x30 */
- 0xD1A1, 0xD1A2, 0xD1A3, 0xD1A4, 0xD1A5, 0xD1A6, 0xD1A7, 0xD1A8, /* 0x30 */
- 0xD1A9, 0xD1AA, 0xD1AB, 0xD1AC, 0xD1AD, 0xD1AE, 0xD1AF, 0xD1B0, /* 0x40 */
- 0xD1B1, 0xD1B3, 0xD1B4, 0xD1B5, 0xD1B6, 0xD1B7, 0xD1B8, 0xD1B9, /* 0x40 */
- 0xD1BA, 0xD1BB, 0xD1BC, 0xD1BD, 0xD1C1, 0xD1C2, 0xD1C3, 0xD1C4, /* 0x50 */
- 0xD1C5, 0xD1C6, 0xD1C7, 0xD1C8, 0xD1C9, 0xD1CA, 0xD1CB, 0xD1CC, /* 0x50 */
- 0xD1CD, 0xD1CE, 0xD1CF, 0xD1D0, 0xD1D1, 0xD1D3, 0xD1D4, 0xD1D5, /* 0x60 */
- 0xD1D6, 0xD1D7, 0xD1D8, 0xD1D9, 0xD1DA, 0xD1DB, 0xD1DC, 0xD1DD, /* 0x60 */
- 0xD1E1, 0xD1E2, 0xD1E3, 0xD1E4, 0xD1E5, 0xD1E6, 0xD1E7, 0xD1E8, /* 0x70 */
- 0xD1E9, 0xD1EA, 0xD1EB, 0xD1EC, 0xD1ED, 0xD1EE, 0xD1EF, 0xD1F0, /* 0x70 */
- 0xD1F1, 0xD1F3, 0xD1F4, 0xD1F5, 0xD1F6, 0xD1F7, 0xD1F8, 0xD1F9, /* 0x80 */
- 0xD1FA, 0xD1FB, 0xD1FC, 0xD1FD, 0xD241, 0xD242, 0xD243, 0xD244, /* 0x80 */
- 0xD245, 0xD246, 0xD247, 0xD248, 0xD249, 0xD24A, 0xD24B, 0xD24C, /* 0x90 */
- 0xD24D, 0xD24E, 0xD24F, 0xD250, 0xD251, 0xD253, 0xD254, 0xD255, /* 0x90 */
- 0xD256, 0xD257, 0xD258, 0xD259, 0xD25A, 0xD25B, 0xD25C, 0xD25D, /* 0xA0 */
- 0xD261, 0xD262, 0xD263, 0xD264, 0xD265, 0xD266, 0xD267, 0xD268, /* 0xA0 */
- 0xD269, 0xD26A, 0xD26B, 0xD26C, 0xD26D, 0xD26E, 0xD26F, 0xD270, /* 0xB0 */
- 0xD271, 0xD273, 0xD274, 0xD275, 0xD276, 0xD277, 0xD278, 0xD279, /* 0xB0 */
- 0xD27A, 0xD27B, 0xD27C, 0xD27D, 0xD281, 0xD282, 0xD283, 0xD284, /* 0xC0 */
- 0xD285, 0xD286, 0xD287, 0xD288, 0xD289, 0xD28A, 0xD28B, 0xD28C, /* 0xC0 */
- 0xD28D, 0xD28E, 0xD28F, 0xD290, 0xD291, 0xD293, 0xD294, 0xD295, /* 0xD0 */
- 0xD296, 0xD297, 0xD298, 0xD299, 0xD29A, 0xD29B, 0xD29C, 0xD29D, /* 0xD0 */
- 0xD2A1, 0xD2A2, 0xD2A3, 0xD2A4, 0xD2A5, 0xD2A6, 0xD2A7, 0xD2A8, /* 0xE0 */
- 0xD2A9, 0xD2AA, 0xD2AB, 0xD2AC, 0xD2AD, 0xD2AE, 0xD2AF, 0xD2B0, /* 0xE0 */
- 0xD2B1, 0xD2B3, 0xD2B4, 0xD2B5, 0xD2B6, 0xD2B7, 0xD2B8, 0xD2B9, /* 0xF0 */
- 0xD2BA, 0xD2BB, 0xD2BC, 0xD2BD, 0xD2C1, 0xD2C2, 0xD2C3, 0xD2C4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_D7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD2C5, 0xD2C6, 0xD2C7, 0xD2C8, 0xD2C9, 0xD2CA, 0xD2CB, 0xD2CC, /* 0x00 */
- 0xD2CD, 0xD2CE, 0xD2CF, 0xD2D0, 0xD2D1, 0xD2D3, 0xD2D4, 0xD2D5, /* 0x00 */
- 0xD2D6, 0xD2D7, 0xD2D8, 0xD2D9, 0xD2DA, 0xD2DB, 0xD2DC, 0xD2DD, /* 0x10 */
- 0xD2E1, 0xD2E2, 0xD2E3, 0xD2E4, 0xD2E5, 0xD2E6, 0xD2E7, 0xD2E8, /* 0x10 */
- 0xD2E9, 0xD2EA, 0xD2EB, 0xD2EC, 0xD2ED, 0xD2EE, 0xD2EF, 0xD2F0, /* 0x20 */
- 0xD2F1, 0xD2F3, 0xD2F4, 0xD2F5, 0xD2F6, 0xD2F7, 0xD2F8, 0xD2F9, /* 0x20 */
- 0xD2FA, 0xD2FB, 0xD2FC, 0xD2FD, 0xD341, 0xD342, 0xD343, 0xD344, /* 0x30 */
- 0xD345, 0xD346, 0xD347, 0xD348, 0xD349, 0xD34A, 0xD34B, 0xD34C, /* 0x30 */
- 0xD34D, 0xD34E, 0xD34F, 0xD350, 0xD351, 0xD353, 0xD354, 0xD355, /* 0x40 */
- 0xD356, 0xD357, 0xD358, 0xD359, 0xD35A, 0xD35B, 0xD35C, 0xD35D, /* 0x40 */
- 0xD361, 0xD362, 0xD363, 0xD364, 0xD365, 0xD366, 0xD367, 0xD368, /* 0x50 */
- 0xD369, 0xD36A, 0xD36B, 0xD36C, 0xD36D, 0xD36E, 0xD36F, 0xD370, /* 0x50 */
- 0xD371, 0xD373, 0xD374, 0xD375, 0xD376, 0xD377, 0xD378, 0xD379, /* 0x60 */
- 0xD37A, 0xD37B, 0xD37C, 0xD37D, 0xD381, 0xD382, 0xD383, 0xD384, /* 0x60 */
- 0xD385, 0xD386, 0xD387, 0xD388, 0xD389, 0xD38A, 0xD38B, 0xD38C, /* 0x70 */
- 0xD38D, 0xD38E, 0xD38F, 0xD390, 0xD391, 0xD393, 0xD394, 0xD395, /* 0x70 */
- 0xD396, 0xD397, 0xD398, 0xD399, 0xD39A, 0xD39B, 0xD39C, 0xD39D, /* 0x80 */
- 0xD3A1, 0xD3A2, 0xD3A3, 0xD3A4, 0xD3A5, 0xD3A6, 0xD3A7, 0xD3A8, /* 0x80 */
- 0xD3A9, 0xD3AA, 0xD3AB, 0xD3AC, 0xD3AD, 0xD3AE, 0xD3AF, 0xD3B0, /* 0x90 */
- 0xD3B1, 0xD3B3, 0xD3B4, 0xD3B5, 0xD3B6, 0xD3B7, 0xD3B8, 0xD3B9, /* 0x90 */
- 0xD3BA, 0xD3BB, 0xD3BC, 0xD3BD /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_F9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE0D0, 0xE0D6, 0xE0E7, 0xE1CF, 0xE1E8, 0xE23D, 0xE2FB, 0xE332, /* 0x00 */
- 0xE348, 0xE360, 0xE36D, 0xE3D4, 0xE3D5, 0xE3D8, 0xE3DB, 0xE3DC, /* 0x00 */
- 0xE3DD, 0xE3DE, 0xE3DF, 0xE3E0, 0xE3E2, 0xE3E3, 0xE3E4, 0xE3E5, /* 0x10 */
- 0xE3E6, 0xE3E8, 0xE3E9, 0xE3EA, 0xE3EB, 0xE3ED, 0xE3EF, 0xE3F0, /* 0x10 */
- 0xE3F2, 0xE3F6, 0xE3FA, 0xE3FC, 0xE3FD, 0xE3FE, 0xE432, 0xE433, /* 0x20 */
- 0xE437, 0xE438, 0xE439, 0xE43A, 0xE43B, 0xE43D, 0xE442, 0xE44E, /* 0x20 */
- 0xE452, 0xE453, 0xE454, 0xE456, 0xE457, 0xE458, 0xE459, 0xE45A, /* 0x30 */
- 0xE45B, 0xE45D, 0xE45E, 0xE45F, 0xE460, 0xE461, 0xE462, 0xE463, /* 0x30 */
- 0xE464, 0xE465, 0xE466, 0xE467, 0xE469, 0xE46A, 0xE46E, 0xE46F, /* 0x40 */
- 0xE471, 0xE472, 0xE474, 0xE475, 0xE476, 0xE477, 0xE478, 0xE479, /* 0x40 */
- 0xE47A, 0xE47B, 0xE492, 0xE493, 0xE494, 0xE495, 0xE496, 0xE497, /* 0x50 */
- 0xE499, 0xE49A, 0xE576, 0xE59E, 0xE5A5, 0xE5AB, 0xE5AE, 0xE648, /* 0x50 */
- 0xE65D, 0xE6CB, 0xE6E4, 0xE8C5, 0xE8E4, 0xE935, 0xE9A5, 0xE9D5, /* 0x60 */
- 0xE9F4, 0xEA9E, 0xEAA0, 0xEAB3, 0xEAE1, 0xEAE8, 0xEB93, 0xEBAD, /* 0x60 */
- 0xEBED, 0xECF5, 0xED31, 0xED39, 0xEDAE, 0xEDB1, 0xEDB2, 0xEDB9, /* 0x70 */
- 0xEDBB, 0xEDBC, 0xEDC4, 0xEDCE, 0xEDD0, 0xEDD2, 0xEDD6, 0xEDFA, /* 0x70 */
- 0xEDFB, 0xEDFC, 0xEDFE, 0xEE31, 0xEE34, 0xEE37, 0xEE3D, 0xEE3F, /* 0x80 */
- 0xEE40, 0xEE41, 0xEE43, 0xEE47, 0xEE48, 0xEE4C, 0xEE54, 0xEE56, /* 0x80 */
- 0xEE57, 0xEE5A, 0xEE62, 0xEE66, 0xEE69, 0xEE6C, 0xEE6F, 0xEE71, /* 0x90 */
- 0xEE74, 0xEE75, 0xEE76, 0xEE78, 0xEE7A, 0xEE7B, 0xEE7C, 0xEE91, /* 0x90 */
- 0xEE93, 0xEE94, 0xEE97, 0xEE98, 0xEE99, 0xEE9B, 0xEEA1, 0xEEA6, /* 0xA0 */
- 0xEEA9, 0xEEAA, 0xEEAC, 0xEEAD, 0xEEB0, 0xEEBF, 0xEEC1, 0xEEC6, /* 0xA0 */
- 0xEEC7, 0xEECB, 0xEECD, 0xEECF, 0xEED0, 0xEED3, 0xEEDF, 0xEEE4, /* 0xB0 */
- 0xEEE6, 0xEEF7, 0xEF77, 0xEF78, 0xEF92, 0xEF93, 0xEF99, 0xEF9B, /* 0xB0 */
- 0xEF9D, 0xEFA0, 0xEFA7, 0xEFAC, 0xEFCC, 0xEFF7, 0xF051, 0xF075, /* 0xC0 */
- 0xF096, 0xF099, 0xF09E, 0xF0A0, 0xF0A4, 0xF0A7, 0xF0A9, 0xF0AA, /* 0xC0 */
- 0xF0BA, 0xF0BB, 0xF0BD, 0xF0C1, 0xF0C2, 0xF0C6, 0xF0C7, 0xF0CC, /* 0xD0 */
- 0xF0CF, 0xF0D0, 0xF0D1, 0xF0D2, 0xF0D8, 0xF136, 0xF137, 0xF13A, /* 0xD0 */
- 0xF13F, 0xF140, 0xF141, 0xF142, 0xF145, 0xF148, 0xF14A, 0xF150, /* 0xE0 */
- 0xF151, 0xF155, 0xF156, 0xF159, 0xF15A, 0xF165, 0xF16D, 0xF16E, /* 0xE0 */
- 0xF171, 0xF174, 0xF177, 0xF178, 0xF199, 0xF19A, 0xF19C, 0xF1A1, /* 0xF0 */
- 0xF1A2, 0xF1A3, 0xF1EE, 0xF26B, 0xF44D, 0xF49C, 0xF4B1, 0xF537 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_FA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF57E, 0xF696, 0xF698, 0xF6B8, 0xF6C8, 0xF6D3, 0xF76B, 0xF792, /* 0x00 */
- 0xF831, 0xF832, 0xF876, 0xF939 /* 0x00 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_JOHAB_FF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDA31, 0xDA32, 0xDA33, 0xDA34, 0xDA35, 0xDA36, 0xDA37, /* 0x00 */
- 0xDA38, 0xDA39, 0xDA3A, 0xDA3B, 0xDA3C, 0xDA3D, 0xDA3E, 0xDA3F, /* 0x00 */
- 0xDA40, 0xDA41, 0xDA42, 0xDA43, 0xDA44, 0xDA45, 0xDA46, 0xDA47, /* 0x10 */
- 0xDA48, 0xDA49, 0xDA4A, 0xDA4B, 0xDA4C, 0xDA4D, 0xDA4E, 0xDA4F, /* 0x10 */
- 0xDA50, 0xDA51, 0xDA52, 0xDA53, 0xDA54, 0xDA55, 0xDA56, 0xDA57, /* 0x20 */
- 0xDA58, 0xDA59, 0xDA5A, 0xDA5B, 0xDA5C, 0xDA5D, 0xDA5E, 0xDA5F, /* 0x20 */
- 0xDA60, 0xDA61, 0xDA62, 0xDA63, 0xDA64, 0xDA65, 0xDA66, 0xDA67, /* 0x30 */
- 0xDA68, 0xDA69, 0xDA6A, 0xDA6B, 0xD93C, 0xDA6D, 0xDA6E, 0xDA6F, /* 0x30 */
- 0xDA70, 0xDA71, 0xDA72, 0xDA73, 0xDA74, 0xDA75, 0xDA76, 0xDA77, /* 0x40 */
- 0xDA78, 0xDA79, 0xDA7A, 0xDA7B, 0xDA7C, 0xDA7D, 0xDA7E, 0xDA91, /* 0x40 */
- 0xDA92, 0xDA93, 0xDA94, 0xDA95, 0xDA96, 0xDA97, 0xDA98, 0xDA99, /* 0x50 */
- 0xDA9A, 0xDA9B, 0xDA9C, 0xDA9D, 0xDA9E, 0xDA9F, 0xD9A6, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xD95B, 0xD95C, 0xD9A0, 0xDAA0, 0, 0xD95D, 0xDA6C /* 0xE0 */
-};
-
diff --git a/sal/textenc/tcvtkr6.tab b/sal/textenc/tcvtkr6.tab
deleted file mode 100644
index ef9e4cd9e..000000000
--- a/sal/textenc/tcvtkr6.tab
+++ /dev/null
@@ -1,1238 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the information tables for all */
-/* korean charsets: */
-/* CP949, JOHAB */
-
-/* ======================================================================= */
-
-static ImplDBCSToUniLeadTab const aKSC5601UniLeadTab[256] =
-{
- { 0x0000, 0, 0, NULL }, /* 0x00 */
- { 0x0001, 0, 0, NULL }, /* 0x01 */
- { 0x0002, 0, 0, NULL }, /* 0x02 */
- { 0x0003, 0, 0, NULL }, /* 0x03 */
- { 0x0004, 0, 0, NULL }, /* 0x04 */
- { 0x0005, 0, 0, NULL }, /* 0x05 */
- { 0x0006, 0, 0, NULL }, /* 0x06 */
- { 0x0007, 0, 0, NULL }, /* 0x07 */
- { 0x0008, 0, 0, NULL }, /* 0x08 */
- { 0x0009, 0, 0, NULL }, /* 0x09 */
- { 0x000A, 0, 0, NULL }, /* 0x0A */
- { 0x000B, 0, 0, NULL }, /* 0x0B */
- { 0x000C, 0, 0, NULL }, /* 0x0C */
- { 0x000D, 0, 0, NULL }, /* 0x0D */
- { 0x000E, 0, 0, NULL }, /* 0x0E */
- { 0x000F, 0, 0, NULL }, /* 0x0F */
- { 0x0010, 0, 0, NULL }, /* 0x10 */
- { 0x0011, 0, 0, NULL }, /* 0x11 */
- { 0x0012, 0, 0, NULL }, /* 0x12 */
- { 0x0013, 0, 0, NULL }, /* 0x13 */
- { 0x0014, 0, 0, NULL }, /* 0x14 */
- { 0x0015, 0, 0, NULL }, /* 0x15 */
- { 0x0016, 0, 0, NULL }, /* 0x16 */
- { 0x0017, 0, 0, NULL }, /* 0x17 */
- { 0x0018, 0, 0, NULL }, /* 0x18 */
- { 0x0019, 0, 0, NULL }, /* 0x19 */
- { 0x001A, 0, 0, NULL }, /* 0x1A */
- { 0x001B, 0, 0, NULL }, /* 0x1B */
- { 0x001C, 0, 0, NULL }, /* 0x1C */
- { 0x001D, 0, 0, NULL }, /* 0x1D */
- { 0x001E, 0, 0, NULL }, /* 0x1E */
- { 0x001F, 0, 0, NULL }, /* 0x1F */
- { 0x0020, 0, 0, NULL }, /* 0x20 */
- { 0x0021, 0, 0, NULL }, /* 0x21 */
- { 0x0022, 0, 0, NULL }, /* 0x22 */
- { 0x0023, 0, 0, NULL }, /* 0x23 */
- { 0x0024, 0, 0, NULL }, /* 0x24 */
- { 0x0025, 0, 0, NULL }, /* 0x25 */
- { 0x0026, 0, 0, NULL }, /* 0x26 */
- { 0x0027, 0, 0, NULL }, /* 0x27 */
- { 0x0028, 0, 0, NULL }, /* 0x28 */
- { 0x0029, 0, 0, NULL }, /* 0x29 */
- { 0x002A, 0, 0, NULL }, /* 0x2A */
- { 0x002B, 0, 0, NULL }, /* 0x2B */
- { 0x002C, 0, 0, NULL }, /* 0x2C */
- { 0x002D, 0, 0, NULL }, /* 0x2D */
- { 0x002E, 0, 0, NULL }, /* 0x2E */
- { 0x002F, 0, 0, NULL }, /* 0x2F */
- { 0x0030, 0, 0, NULL }, /* 0x30 */
- { 0x0031, 0, 0, NULL }, /* 0x31 */
- { 0x0032, 0, 0, NULL }, /* 0x32 */
- { 0x0033, 0, 0, NULL }, /* 0x33 */
- { 0x0034, 0, 0, NULL }, /* 0x34 */
- { 0x0035, 0, 0, NULL }, /* 0x35 */
- { 0x0036, 0, 0, NULL }, /* 0x36 */
- { 0x0037, 0, 0, NULL }, /* 0x37 */
- { 0x0038, 0, 0, NULL }, /* 0x38 */
- { 0x0039, 0, 0, NULL }, /* 0x39 */
- { 0x003A, 0, 0, NULL }, /* 0x3A */
- { 0x003B, 0, 0, NULL }, /* 0x3B */
- { 0x003C, 0, 0, NULL }, /* 0x3C */
- { 0x003D, 0, 0, NULL }, /* 0x3D */
- { 0x003E, 0, 0, NULL }, /* 0x3E */
- { 0x003F, 0, 0, NULL }, /* 0x3F */
- { 0x0040, 0, 0, NULL }, /* 0x40 */
- { 0x0041, 0, 0, NULL }, /* 0x41 */
- { 0x0042, 0, 0, NULL }, /* 0x42 */
- { 0x0043, 0, 0, NULL }, /* 0x43 */
- { 0x0044, 0, 0, NULL }, /* 0x44 */
- { 0x0045, 0, 0, NULL }, /* 0x45 */
- { 0x0046, 0, 0, NULL }, /* 0x46 */
- { 0x0047, 0, 0, NULL }, /* 0x47 */
- { 0x0048, 0, 0, NULL }, /* 0x48 */
- { 0x0049, 0, 0, NULL }, /* 0x49 */
- { 0x004A, 0, 0, NULL }, /* 0x4A */
- { 0x004B, 0, 0, NULL }, /* 0x4B */
- { 0x004C, 0, 0, NULL }, /* 0x4C */
- { 0x004D, 0, 0, NULL }, /* 0x4D */
- { 0x004E, 0, 0, NULL }, /* 0x4E */
- { 0x004F, 0, 0, NULL }, /* 0x4F */
- { 0x0050, 0, 0, NULL }, /* 0x50 */
- { 0x0051, 0, 0, NULL }, /* 0x51 */
- { 0x0052, 0, 0, NULL }, /* 0x52 */
- { 0x0053, 0, 0, NULL }, /* 0x53 */
- { 0x0054, 0, 0, NULL }, /* 0x54 */
- { 0x0055, 0, 0, NULL }, /* 0x55 */
- { 0x0056, 0, 0, NULL }, /* 0x56 */
- { 0x0057, 0, 0, NULL }, /* 0x57 */
- { 0x0058, 0, 0, NULL }, /* 0x58 */
- { 0x0059, 0, 0, NULL }, /* 0x59 */
- { 0x005A, 0, 0, NULL }, /* 0x5A */
- { 0x005B, 0, 0, NULL }, /* 0x5B */
- { 0x005C, 0, 0, NULL }, /* 0x5C */
- { 0x005D, 0, 0, NULL }, /* 0x5D */
- { 0x005E, 0, 0, NULL }, /* 0x5E */
- { 0x005F, 0, 0, NULL }, /* 0x5F */
- { 0x0060, 0, 0, NULL }, /* 0x60 */
- { 0x0061, 0, 0, NULL }, /* 0x61 */
- { 0x0062, 0, 0, NULL }, /* 0x62 */
- { 0x0063, 0, 0, NULL }, /* 0x63 */
- { 0x0064, 0, 0, NULL }, /* 0x64 */
- { 0x0065, 0, 0, NULL }, /* 0x65 */
- { 0x0066, 0, 0, NULL }, /* 0x66 */
- { 0x0067, 0, 0, NULL }, /* 0x67 */
- { 0x0068, 0, 0, NULL }, /* 0x68 */
- { 0x0069, 0, 0, NULL }, /* 0x69 */
- { 0x006A, 0, 0, NULL }, /* 0x6A */
- { 0x006B, 0, 0, NULL }, /* 0x6B */
- { 0x006C, 0, 0, NULL }, /* 0x6C */
- { 0x006D, 0, 0, NULL }, /* 0x6D */
- { 0x006E, 0, 0, NULL }, /* 0x6E */
- { 0x006F, 0, 0, NULL }, /* 0x6F */
- { 0x0070, 0, 0, NULL }, /* 0x70 */
- { 0x0071, 0, 0, NULL }, /* 0x71 */
- { 0x0072, 0, 0, NULL }, /* 0x72 */
- { 0x0073, 0, 0, NULL }, /* 0x73 */
- { 0x0074, 0, 0, NULL }, /* 0x74 */
- { 0x0075, 0, 0, NULL }, /* 0x75 */
- { 0x0076, 0, 0, NULL }, /* 0x76 */
- { 0x0077, 0, 0, NULL }, /* 0x77 */
- { 0x0078, 0, 0, NULL }, /* 0x78 */
- { 0x0079, 0, 0, NULL }, /* 0x79 */
- { 0x007A, 0, 0, NULL }, /* 0x7A */
- { 0x007B, 0, 0, NULL }, /* 0x7B */
- { 0x007C, 0, 0, NULL }, /* 0x7C */
- { 0x007D, 0, 0, NULL }, /* 0x7D */
- { 0x007E, 0, 0, NULL }, /* 0x7E */
- { 0x007F, 0, 0, NULL }, /* 0x7F */
- { 0, 1, 0, NULL }, /* 0x80 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_81 }, /* 0x81 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_82 }, /* 0x82 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_83 }, /* 0x83 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_84 }, /* 0x84 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_85 }, /* 0x85 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_86 }, /* 0x86 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_87 }, /* 0x87 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_88 }, /* 0x88 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_89 }, /* 0x89 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8A }, /* 0x8A */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8B }, /* 0x8B */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8C }, /* 0x8C */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8D }, /* 0x8D */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8E }, /* 0x8E */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8F }, /* 0x8F */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_90 }, /* 0x90 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_91 }, /* 0x91 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_92 }, /* 0x92 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_93 }, /* 0x93 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_94 }, /* 0x94 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_95 }, /* 0x95 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_96 }, /* 0x96 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_97 }, /* 0x97 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_98 }, /* 0x98 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_99 }, /* 0x99 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9A }, /* 0x9A */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9B }, /* 0x9B */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9C }, /* 0x9C */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9D }, /* 0x9D */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9E }, /* 0x9E */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9F }, /* 0x9F */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A0 }, /* 0xA0 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A1 }, /* 0xA1 */
- { 0, 0x41, 0xE7, aImplDBCSToUniTab_KSC5601_A2 }, /* 0xA2 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A3 }, /* 0xA3 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A4 }, /* 0xA4 */
- { 0, 0x41, 0xF8, aImplDBCSToUniTab_KSC5601_A5 }, /* 0xA5 */
- { 0, 0x41, 0xE4, aImplDBCSToUniTab_KSC5601_A6 }, /* 0xA6 */
- { 0, 0x41, 0xEF, aImplDBCSToUniTab_KSC5601_A7 }, /* 0xA7 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A8 }, /* 0xA8 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A9 }, /* 0xA9 */
- { 0, 0x41, 0xF3, aImplDBCSToUniTab_KSC5601_AA }, /* 0xAA */
- { 0, 0x41, 0xF6, aImplDBCSToUniTab_KSC5601_AB }, /* 0xAB */
- { 0, 0x41, 0xF1, aImplDBCSToUniTab_KSC5601_AC }, /* 0xAC */
- { 0, 0x41, 0xA0, aImplDBCSToUniTab_KSC5601_AD }, /* 0xAD */
- { 0, 0x41, 0xA0, aImplDBCSToUniTab_KSC5601_AE }, /* 0xAE */
- { 0, 0x41, 0xA0, aImplDBCSToUniTab_KSC5601_AF }, /* 0xAF */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B0 }, /* 0xB0 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B1 }, /* 0xB1 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B2 }, /* 0xB2 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B3 }, /* 0xB3 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B4 }, /* 0xB4 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B5 }, /* 0xB5 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B6 }, /* 0xB6 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B7 }, /* 0xB7 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B8 }, /* 0xB8 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B9 }, /* 0xB9 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BA }, /* 0xBA */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BB }, /* 0xBB */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BC }, /* 0xBC */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BD }, /* 0xBD */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BE }, /* 0xBE */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BF }, /* 0xBF */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C0 }, /* 0xC0 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C1 }, /* 0xC1 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C2 }, /* 0xC2 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C3 }, /* 0xC3 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C4 }, /* 0xC4 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C5 }, /* 0xC5 */
- { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C6 }, /* 0xC6 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_C7 }, /* 0xC7 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_C8 }, /* 0xC8 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xC9 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CA }, /* 0xCA */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CB }, /* 0xCB */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CC }, /* 0xCC */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CD }, /* 0xCD */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CE }, /* 0xCE */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CF }, /* 0xCF */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D0 }, /* 0xD0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D1 }, /* 0xD1 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D2 }, /* 0xD2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D3 }, /* 0xD3 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D4 }, /* 0xD4 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D5 }, /* 0xD5 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D6 }, /* 0xD6 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D7 }, /* 0xD7 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D8 }, /* 0xD8 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D9 }, /* 0xD9 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DA }, /* 0xDA */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DB }, /* 0xDB */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DC }, /* 0xDC */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DD }, /* 0xDD */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DE }, /* 0xDE */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DF }, /* 0xDF */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E0 }, /* 0xE0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E1 }, /* 0xE1 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E2 }, /* 0xE2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E3 }, /* 0xE3 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E4 }, /* 0xE4 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E5 }, /* 0xE5 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E6 }, /* 0xE6 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E7 }, /* 0xE7 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E8 }, /* 0xE8 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E9 }, /* 0xE9 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_EA }, /* 0xEA */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_EB }, /* 0xEB */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_EC }, /* 0xEC */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_ED }, /* 0xED */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_EE }, /* 0xEE */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_EF }, /* 0xEF */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F0 }, /* 0xF0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F1 }, /* 0xF1 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F2 }, /* 0xF2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F3 }, /* 0xF3 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F4 }, /* 0xF4 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F5 }, /* 0xF5 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F6 }, /* 0xF6 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F7 }, /* 0xF7 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F8 }, /* 0xF8 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F9 }, /* 0xF9 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_FA }, /* 0xFA */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_FB }, /* 0xFB */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_FC }, /* 0xFC */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_FD }, /* 0xFD */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFE */
- { 0, 1, 0, NULL } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplUniToDBCSHighTab const aKSC5601DBCSHighTab[256] =
-{
- { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_00 }, /* 0x00 */
- { 0x11, 0x67, aImplUniToDBCSTab_KSC5601_01 }, /* 0x01 */
- { 0xC7, 0xDD, aImplUniToDBCSTab_KSC5601_02 }, /* 0x02 */
- { 0x91, 0xC9, aImplUniToDBCSTab_KSC5601_03 }, /* 0x03 */
- { 0x01, 0x51, aImplUniToDBCSTab_KSC5601_04 }, /* 0x04 */
- { 1, 0, NULL }, /* 0x05 */
- { 1, 0, NULL }, /* 0x06 */
- { 1, 0, NULL }, /* 0x07 */
- { 1, 0, NULL }, /* 0x08 */
- { 1, 0, NULL }, /* 0x09 */
- { 1, 0, NULL }, /* 0x0A */
- { 1, 0, NULL }, /* 0x0B */
- { 1, 0, NULL }, /* 0x0C */
- { 1, 0, NULL }, /* 0x0D */
- { 1, 0, NULL }, /* 0x0E */
- { 1, 0, NULL }, /* 0x0F */
- { 1, 0, NULL }, /* 0x10 */
- { 1, 0, NULL }, /* 0x11 */
- { 1, 0, NULL }, /* 0x12 */
- { 1, 0, NULL }, /* 0x13 */
- { 1, 0, NULL }, /* 0x14 */
- { 1, 0, NULL }, /* 0x15 */
- { 1, 0, NULL }, /* 0x16 */
- { 1, 0, NULL }, /* 0x17 */
- { 1, 0, NULL }, /* 0x18 */
- { 1, 0, NULL }, /* 0x19 */
- { 1, 0, NULL }, /* 0x1A */
- { 1, 0, NULL }, /* 0x1B */
- { 1, 0, NULL }, /* 0x1C */
- { 1, 0, NULL }, /* 0x1D */
- { 1, 0, NULL }, /* 0x1E */
- { 1, 0, NULL }, /* 0x1F */
- { 0x15, 0xAC, aImplUniToDBCSTab_KSC5601_20 }, /* 0x20 */
- { 0x03, 0xD4, aImplUniToDBCSTab_KSC5601_21 }, /* 0x21 */
- { 0x00, 0xA5, aImplUniToDBCSTab_KSC5601_22 }, /* 0x22 */
- { 0x12, 0x12, aImplUniToDBCSTab_KSC5601_23 }, /* 0x23 */
- { 0x60, 0xE9, aImplUniToDBCSTab_KSC5601_24 }, /* 0x24 */
- { 0x00, 0xD1, aImplUniToDBCSTab_KSC5601_25 }, /* 0x25 */
- { 0x05, 0x6D, aImplUniToDBCSTab_KSC5601_26 }, /* 0x26 */
- { 1, 0, NULL }, /* 0x27 */
- { 1, 0, NULL }, /* 0x28 */
- { 1, 0, NULL }, /* 0x29 */
- { 1, 0, NULL }, /* 0x2A */
- { 1, 0, NULL }, /* 0x2B */
- { 1, 0, NULL }, /* 0x2C */
- { 1, 0, NULL }, /* 0x2D */
- { 1, 0, NULL }, /* 0x2E */
- { 1, 0, NULL }, /* 0x2F */
- { 0x00, 0xF7, aImplUniToDBCSTab_KSC5601_30 }, /* 0x30 */
- { 0x31, 0xFE, aImplUniToDBCSTab_KSC5601_31 }, /* 0x31 */
- { 0x00, 0x7F, aImplUniToDBCSTab_KSC5601_32 }, /* 0x32 */
- { 0x80, 0xDD, aImplUniToDBCSTab_KSC5601_33 }, /* 0x33 */
- { 1, 0, NULL }, /* 0x34 */
- { 1, 0, NULL }, /* 0x35 */
- { 1, 0, NULL }, /* 0x36 */
- { 1, 0, NULL }, /* 0x37 */
- { 1, 0, NULL }, /* 0x38 */
- { 1, 0, NULL }, /* 0x39 */
- { 1, 0, NULL }, /* 0x3A */
- { 1, 0, NULL }, /* 0x3B */
- { 1, 0, NULL }, /* 0x3C */
- { 1, 0, NULL }, /* 0x3D */
- { 1, 0, NULL }, /* 0x3E */
- { 1, 0, NULL }, /* 0x3F */
- { 1, 0, NULL }, /* 0x40 */
- { 1, 0, NULL }, /* 0x41 */
- { 1, 0, NULL }, /* 0x42 */
- { 1, 0, NULL }, /* 0x43 */
- { 1, 0, NULL }, /* 0x44 */
- { 1, 0, NULL }, /* 0x45 */
- { 1, 0, NULL }, /* 0x46 */
- { 1, 0, NULL }, /* 0x47 */
- { 1, 0, NULL }, /* 0x48 */
- { 1, 0, NULL }, /* 0x49 */
- { 1, 0, NULL }, /* 0x4A */
- { 1, 0, NULL }, /* 0x4B */
- { 1, 0, NULL }, /* 0x4C */
- { 1, 0, NULL }, /* 0x4D */
- { 0x00, 0xFB, aImplUniToDBCSTab_KSC5601_4E }, /* 0x4E */
- { 0x01, 0xFA, aImplUniToDBCSTab_KSC5601_4F }, /* 0x4F */
- { 0x02, 0xFF, aImplUniToDBCSTab_KSC5601_50 }, /* 0x50 */
- { 0x00, 0xFD, aImplUniToDBCSTab_KSC5601_51 }, /* 0x51 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_52 }, /* 0x52 */
- { 0x05, 0xF8, aImplUniToDBCSTab_KSC5601_53 }, /* 0x53 */
- { 0x03, 0xFA, aImplUniToDBCSTab_KSC5601_54 }, /* 0x54 */
- { 0x04, 0xFE, aImplUniToDBCSTab_KSC5601_55 }, /* 0x55 */
- { 0x06, 0xFA, aImplUniToDBCSTab_KSC5601_56 }, /* 0x56 */
- { 0x03, 0xFC, aImplUniToDBCSTab_KSC5601_57 }, /* 0x57 */
- { 0x00, 0xFD, aImplUniToDBCSTab_KSC5601_58 }, /* 0x58 */
- { 0x07, 0xFF, aImplUniToDBCSTab_KSC5601_59 }, /* 0x59 */
- { 0x01, 0xE9, aImplUniToDBCSTab_KSC5601_5A }, /* 0x5A */
- { 0x05, 0xFA, aImplUniToDBCSTab_KSC5601_5B }, /* 0x5B */
- { 0x01, 0xFD, aImplUniToDBCSTab_KSC5601_5C }, /* 0x5C */
- { 0x07, 0xFE, aImplUniToDBCSTab_KSC5601_5D }, /* 0x5D */
- { 0x02, 0xFB, aImplUniToDBCSTab_KSC5601_5E }, /* 0x5E */
- { 0x01, 0xFF, aImplUniToDBCSTab_KSC5601_5F }, /* 0x5F */
- { 0x07, 0xFB, aImplUniToDBCSTab_KSC5601_60 }, /* 0x60 */
- { 0x01, 0xFF, aImplUniToDBCSTab_KSC5601_61 }, /* 0x61 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_62 }, /* 0x62 */
- { 0x01, 0xF7, aImplUniToDBCSTab_KSC5601_63 }, /* 0x63 */
- { 0x0D, 0xFE, aImplUniToDBCSTab_KSC5601_64 }, /* 0x64 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_65 }, /* 0x65 */
- { 0x06, 0xFF, aImplUniToDBCSTab_KSC5601_66 }, /* 0x66 */
- { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_67 }, /* 0x67 */
- { 0x12, 0xFA, aImplUniToDBCSTab_KSC5601_68 }, /* 0x68 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_69 }, /* 0x69 */
- { 0x02, 0xFB, aImplUniToDBCSTab_KSC5601_6A }, /* 0x6A */
- { 0x04, 0xEC, aImplUniToDBCSTab_KSC5601_6B }, /* 0x6B */
- { 0x08, 0xF3, aImplUniToDBCSTab_KSC5601_6C }, /* 0x6C */
- { 0x03, 0xFB, aImplUniToDBCSTab_KSC5601_6D }, /* 0x6D */
- { 0x17, 0xFF, aImplUniToDBCSTab_KSC5601_6E }, /* 0x6E */
- { 0x01, 0xFE, aImplUniToDBCSTab_KSC5601_6F }, /* 0x6F */
- { 0x01, 0xFD, aImplUniToDBCSTab_KSC5601_70 }, /* 0x70 */
- { 0x04, 0xFF, aImplUniToDBCSTab_KSC5601_71 }, /* 0x71 */
- { 0x00, 0xFD, aImplUniToDBCSTab_KSC5601_72 }, /* 0x72 */
- { 0x02, 0xFE, aImplUniToDBCSTab_KSC5601_73 }, /* 0x73 */
- { 0x01, 0xF7, aImplUniToDBCSTab_KSC5601_74 }, /* 0x74 */
- { 0x01, 0xFC, aImplUniToDBCSTab_KSC5601_75 }, /* 0x75 */
- { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_76 }, /* 0x76 */
- { 0x01, 0xFB, aImplUniToDBCSTab_KSC5601_77 }, /* 0x77 */
- { 0x02, 0xFB, aImplUniToDBCSTab_KSC5601_78 }, /* 0x78 */
- { 0x01, 0xFB, aImplUniToDBCSTab_KSC5601_79 }, /* 0x79 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_7A }, /* 0x7A */
- { 0x0F, 0xE9, aImplUniToDBCSTab_KSC5601_7B }, /* 0x7B */
- { 0x07, 0xFE, aImplUniToDBCSTab_KSC5601_7C }, /* 0x7C */
- { 0x00, 0xFB, aImplUniToDBCSTab_KSC5601_7D }, /* 0x7D */
- { 0x09, 0x9C, aImplUniToDBCSTab_KSC5601_7E }, /* 0x7E */
- { 0x36, 0xFC, aImplUniToDBCSTab_KSC5601_7F }, /* 0x7F */
- { 0x00, 0xFD, aImplUniToDBCSTab_KSC5601_80 }, /* 0x80 */
- { 0x02, 0xFE, aImplUniToDBCSTab_KSC5601_81 }, /* 0x81 */
- { 0x05, 0xFE, aImplUniToDBCSTab_KSC5601_82 }, /* 0x82 */
- { 0x01, 0xFD, aImplUniToDBCSTab_KSC5601_83 }, /* 0x83 */
- { 0x03, 0xFC, aImplUniToDBCSTab_KSC5601_84 }, /* 0x84 */
- { 0x11, 0xFF, aImplUniToDBCSTab_KSC5601_85 }, /* 0x85 */
- { 0x02, 0xFE, aImplUniToDBCSTab_KSC5601_86 }, /* 0x86 */
- { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_87 }, /* 0x87 */
- { 0x05, 0xFD, aImplUniToDBCSTab_KSC5601_88 }, /* 0x88 */
- { 0x07, 0xF8, aImplUniToDBCSTab_KSC5601_89 }, /* 0x89 */
- { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_8A }, /* 0x8A */
- { 0x00, 0x9A, aImplUniToDBCSTab_KSC5601_8B }, /* 0x8B */
- { 0x37, 0xFD, aImplUniToDBCSTab_KSC5601_8C }, /* 0x8C */
- { 0x04, 0xFB, aImplUniToDBCSTab_KSC5601_8D }, /* 0x8D */
- { 0x0A, 0xFE, aImplUniToDBCSTab_KSC5601_8E }, /* 0x8E */
- { 0x03, 0xFD, aImplUniToDBCSTab_KSC5601_8F }, /* 0x8F */
- { 0x00, 0xFD, aImplUniToDBCSTab_KSC5601_90 }, /* 0x90 */
- { 0x02, 0xF5, aImplUniToDBCSTab_KSC5601_91 }, /* 0x91 */
- { 0x0D, 0xFC, aImplUniToDBCSTab_KSC5601_92 }, /* 0x92 */
- { 0x04, 0xF6, aImplUniToDBCSTab_KSC5601_93 }, /* 0x93 */
- { 0x04, 0x7F, aImplUniToDBCSTab_KSC5601_94 }, /* 0x94 */
- { 0x77, 0xE2, aImplUniToDBCSTab_KSC5601_95 }, /* 0x95 */
- { 0x1C, 0xFB, aImplUniToDBCSTab_KSC5601_96 }, /* 0x96 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_97 }, /* 0x97 */
- { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_98 }, /* 0x98 */
- { 0x03, 0xFF, aImplUniToDBCSTab_KSC5601_99 }, /* 0x99 */
- { 0x01, 0xEE, aImplUniToDBCSTab_KSC5601_9A }, /* 0x9A */
- { 0x1A, 0xE8, aImplUniToDBCSTab_KSC5601_9B }, /* 0x9B */
- { 0x0D, 0xF6, aImplUniToDBCSTab_KSC5601_9C }, /* 0x9C */
- { 0x09, 0xFA, aImplUniToDBCSTab_KSC5601_9D }, /* 0x9D */
- { 0x1A, 0xF4, aImplUniToDBCSTab_KSC5601_9E }, /* 0x9E */
- { 0x07, 0x9C, aImplUniToDBCSTab_KSC5601_9F }, /* 0x9F */
- { 1, 0, NULL }, /* 0xA0 */
- { 1, 0, NULL }, /* 0xA1 */
- { 1, 0, NULL }, /* 0xA2 */
- { 1, 0, NULL }, /* 0xA3 */
- { 1, 0, NULL }, /* 0xA4 */
- { 1, 0, NULL }, /* 0xA5 */
- { 1, 0, NULL }, /* 0xA6 */
- { 1, 0, NULL }, /* 0xA7 */
- { 1, 0, NULL }, /* 0xA8 */
- { 1, 0, NULL }, /* 0xA9 */
- { 1, 0, NULL }, /* 0xAA */
- { 1, 0, NULL }, /* 0xAB */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_AC }, /* 0xAC */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_AD }, /* 0xAD */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_AE }, /* 0xAE */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_AF }, /* 0xAF */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B0 }, /* 0xB0 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B1 }, /* 0xB1 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B2 }, /* 0xB2 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B3 }, /* 0xB3 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B4 }, /* 0xB4 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B5 }, /* 0xB5 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B6 }, /* 0xB6 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B7 }, /* 0xB7 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B8 }, /* 0xB8 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B9 }, /* 0xB9 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BA }, /* 0xBA */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BB }, /* 0xBB */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BC }, /* 0xBC */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BD }, /* 0xBD */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BE }, /* 0xBE */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BF }, /* 0xBF */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C0 }, /* 0xC0 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C1 }, /* 0xC1 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C2 }, /* 0xC2 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C3 }, /* 0xC3 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C4 }, /* 0xC4 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C5 }, /* 0xC5 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C6 }, /* 0xC6 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C7 }, /* 0xC7 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C8 }, /* 0xC8 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C9 }, /* 0xC9 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CA }, /* 0xCA */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CB }, /* 0xCB */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CC }, /* 0xCC */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CD }, /* 0xCD */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CE }, /* 0xCE */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CF }, /* 0xCF */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D0 }, /* 0xD0 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D1 }, /* 0xD1 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D2 }, /* 0xD2 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D3 }, /* 0xD3 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D4 }, /* 0xD4 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D5 }, /* 0xD5 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D6 }, /* 0xD6 */
- { 0x00, 0xA3, aImplUniToDBCSTab_KSC5601_D7 }, /* 0xD7 */
- { 1, 0, NULL }, /* 0xD8 */
- { 1, 0, NULL }, /* 0xD9 */
- { 1, 0, NULL }, /* 0xDA */
- { 1, 0, NULL }, /* 0xDB */
- { 1, 0, NULL }, /* 0xDC */
- { 1, 0, NULL }, /* 0xDD */
- { 1, 0, NULL }, /* 0xDE */
- { 1, 0, NULL }, /* 0xDF */
- { 1, 0, NULL }, /* 0xE0 */
- { 1, 0, NULL }, /* 0xE1 */
- { 1, 0, NULL }, /* 0xE2 */
- { 1, 0, NULL }, /* 0xE3 */
- { 1, 0, NULL }, /* 0xE4 */
- { 1, 0, NULL }, /* 0xE5 */
- { 1, 0, NULL }, /* 0xE6 */
- { 1, 0, NULL }, /* 0xE7 */
- { 1, 0, NULL }, /* 0xE8 */
- { 1, 0, NULL }, /* 0xE9 */
- { 1, 0, NULL }, /* 0xEA */
- { 1, 0, NULL }, /* 0xEB */
- { 1, 0, NULL }, /* 0xEC */
- { 1, 0, NULL }, /* 0xED */
- { 1, 0, NULL }, /* 0xEE */
- { 1, 0, NULL }, /* 0xEF */
- { 1, 0, NULL }, /* 0xF0 */
- { 1, 0, NULL }, /* 0xF1 */
- { 1, 0, NULL }, /* 0xF2 */
- { 1, 0, NULL }, /* 0xF3 */
- { 1, 0, NULL }, /* 0xF4 */
- { 1, 0, NULL }, /* 0xF5 */
- { 1, 0, NULL }, /* 0xF6 */
- { 1, 0, NULL }, /* 0xF7 */
- { 1, 0, NULL }, /* 0xF8 */
- { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_F9 }, /* 0xF9 */
- { 0x00, 0x0B, aImplUniToDBCSTab_KSC5601_FA }, /* 0xFA */
- { 1, 0, NULL }, /* 0xFB */
- { 1, 0, NULL }, /* 0xFC */
- { 1, 0, NULL }, /* 0xFD */
- { 1, 0, NULL }, /* 0xFE */
- { 0x01, 0xE6, aImplUniToDBCSTab_KSC5601_FF } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* C9A1-C9FE -> E000-E05D */
-/* FEA1-FEFE -> E05E-E0BB */
-
-#define DBCS_EUDC_MS949_COUNT 2
-static ImplDBCSEUDCData const aImplMS949DBCSEUDCTab[DBCS_EUDC_MS949_COUNT] =
-{
- /* EUDC-Range */
- /* Lead: C9-C9 */
- /* Trail: A1-FE */
- { 0xC9, 0xC9, 0xA1, 0xFE, 0, 0, 0, 0, 1, 0x5E, 0xE000, 0xE05D },
- /* Lead: FE-FE */
- /* Trail: A1-FE */
- { 0xFE, 0xFE, 0xA1, 0xFE, 0, 0, 0, 0, 1, 0x5E, 0xE05E, 0xE0BB }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplDBCSConvertData const aImplKSC5601DBCSCvtData =
-{
- aKSC5601UniLeadTab,
- aKSC5601DBCSHighTab,
- 0xA1, 0xFE,
- 0xA1, 0xFE,
- aImplMS949DBCSEUDCTab,
- DBCS_EUDC_MS949_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplDBCSConvertData const aImplMS949DBCSCvtData =
-{
- aKSC5601UniLeadTab,
- aKSC5601DBCSHighTab,
- 0x00, 0xFF,
- 0x41, 0xFE,
- aImplMS949DBCSEUDCTab,
- DBCS_EUDC_MS949_COUNT
-};
-
-/* ======================================================================= */
-
-static ImplTextEncodingData const aImplEUCKRTextEncodingData
- = { { &aImplKSC5601DBCSCvtData,
- ImplDBCSToUnicode,
- ImplUnicodeToDBCS,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 2,
- 2,
- 129,
- "euc-kr",
- "euc-kr",
- RTL_TEXTENCODING_INFO_ASCII
- | RTL_TEXTENCODING_INFO_MULTIBYTE
- | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_KOREAN, pc code page 934, mac encoding 3 */
-
-/* ======================================================================= */
-
-static ImplTextEncodingData const aImplMS949TextEncodingData
- = { { &aImplMS949DBCSCvtData,
- ImplDBCSToUnicode,
- ImplUnicodeToDBCS,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 2,
- 2,
- 129,
- "euc-kr",
- "euc-kr",
- RTL_TEXTENCODING_INFO_MULTIBYTE };
- /* WIN/DOS/OS2, SCRIPT_KOREAN, pc code page 934, mac encoding 3 */
-
-/* ======================================================================= */
-
-/* Apple has some extension, which we don't support */
-
-static ImplTextEncodingData const aImplAPPLEKOREANTextEncodingData
- = { { &aImplMS949DBCSCvtData,
- ImplDBCSToUnicode,
- ImplUnicodeToDBCS,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 2,
- 2,
- 129,
- "euc-kr",
- "euc-kr",
- RTL_TEXTENCODING_INFO_MULTIBYTE };
- /* MAC, SCRIPT_KOREAN, pc code page 934, mac encoding 3 */
-
-/* ======================================================================= */
-
-static ImplDBCSToUniLeadTab const aJOHABUniLeadTab[256] =
-{
- { 0x0000, 0, 0, NULL }, /* 0x00 */
- { 0x0001, 0, 0, NULL }, /* 0x01 */
- { 0x0002, 0, 0, NULL }, /* 0x02 */
- { 0x0003, 0, 0, NULL }, /* 0x03 */
- { 0x0004, 0, 0, NULL }, /* 0x04 */
- { 0x0005, 0, 0, NULL }, /* 0x05 */
- { 0x0006, 0, 0, NULL }, /* 0x06 */
- { 0x0007, 0, 0, NULL }, /* 0x07 */
- { 0x0008, 0, 0, NULL }, /* 0x08 */
- { 0x0009, 0, 0, NULL }, /* 0x09 */
- { 0x000A, 0, 0, NULL }, /* 0x0A */
- { 0x000B, 0, 0, NULL }, /* 0x0B */
- { 0x000C, 0, 0, NULL }, /* 0x0C */
- { 0x000D, 0, 0, NULL }, /* 0x0D */
- { 0x000E, 0, 0, NULL }, /* 0x0E */
- { 0x000F, 0, 0, NULL }, /* 0x0F */
- { 0x0010, 0, 0, NULL }, /* 0x10 */
- { 0x0011, 0, 0, NULL }, /* 0x11 */
- { 0x0012, 0, 0, NULL }, /* 0x12 */
- { 0x0013, 0, 0, NULL }, /* 0x13 */
- { 0x0014, 0, 0, NULL }, /* 0x14 */
- { 0x0015, 0, 0, NULL }, /* 0x15 */
- { 0x0016, 0, 0, NULL }, /* 0x16 */
- { 0x0017, 0, 0, NULL }, /* 0x17 */
- { 0x0018, 0, 0, NULL }, /* 0x18 */
- { 0x0019, 0, 0, NULL }, /* 0x19 */
- { 0x001A, 0, 0, NULL }, /* 0x1A */
- { 0x001B, 0, 0, NULL }, /* 0x1B */
- { 0x001C, 0, 0, NULL }, /* 0x1C */
- { 0x001D, 0, 0, NULL }, /* 0x1D */
- { 0x001E, 0, 0, NULL }, /* 0x1E */
- { 0x001F, 0, 0, NULL }, /* 0x1F */
- { 0x0020, 0, 0, NULL }, /* 0x20 */
- { 0x0021, 0, 0, NULL }, /* 0x21 */
- { 0x0022, 0, 0, NULL }, /* 0x22 */
- { 0x0023, 0, 0, NULL }, /* 0x23 */
- { 0x0024, 0, 0, NULL }, /* 0x24 */
- { 0x0025, 0, 0, NULL }, /* 0x25 */
- { 0x0026, 0, 0, NULL }, /* 0x26 */
- { 0x0027, 0, 0, NULL }, /* 0x27 */
- { 0x0028, 0, 0, NULL }, /* 0x28 */
- { 0x0029, 0, 0, NULL }, /* 0x29 */
- { 0x002A, 0, 0, NULL }, /* 0x2A */
- { 0x002B, 0, 0, NULL }, /* 0x2B */
- { 0x002C, 0, 0, NULL }, /* 0x2C */
- { 0x002D, 0, 0, NULL }, /* 0x2D */
- { 0x002E, 0, 0, NULL }, /* 0x2E */
- { 0x002F, 0, 0, NULL }, /* 0x2F */
- { 0x0030, 0, 0, NULL }, /* 0x30 */
- { 0x0031, 0, 0, NULL }, /* 0x31 */
- { 0x0032, 0, 0, NULL }, /* 0x32 */
- { 0x0033, 0, 0, NULL }, /* 0x33 */
- { 0x0034, 0, 0, NULL }, /* 0x34 */
- { 0x0035, 0, 0, NULL }, /* 0x35 */
- { 0x0036, 0, 0, NULL }, /* 0x36 */
- { 0x0037, 0, 0, NULL }, /* 0x37 */
- { 0x0038, 0, 0, NULL }, /* 0x38 */
- { 0x0039, 0, 0, NULL }, /* 0x39 */
- { 0x003A, 0, 0, NULL }, /* 0x3A */
- { 0x003B, 0, 0, NULL }, /* 0x3B */
- { 0x003C, 0, 0, NULL }, /* 0x3C */
- { 0x003D, 0, 0, NULL }, /* 0x3D */
- { 0x003E, 0, 0, NULL }, /* 0x3E */
- { 0x003F, 0, 0, NULL }, /* 0x3F */
- { 0x0040, 0, 0, NULL }, /* 0x40 */
- { 0x0041, 0, 0, NULL }, /* 0x41 */
- { 0x0042, 0, 0, NULL }, /* 0x42 */
- { 0x0043, 0, 0, NULL }, /* 0x43 */
- { 0x0044, 0, 0, NULL }, /* 0x44 */
- { 0x0045, 0, 0, NULL }, /* 0x45 */
- { 0x0046, 0, 0, NULL }, /* 0x46 */
- { 0x0047, 0, 0, NULL }, /* 0x47 */
- { 0x0048, 0, 0, NULL }, /* 0x48 */
- { 0x0049, 0, 0, NULL }, /* 0x49 */
- { 0x004A, 0, 0, NULL }, /* 0x4A */
- { 0x004B, 0, 0, NULL }, /* 0x4B */
- { 0x004C, 0, 0, NULL }, /* 0x4C */
- { 0x004D, 0, 0, NULL }, /* 0x4D */
- { 0x004E, 0, 0, NULL }, /* 0x4E */
- { 0x004F, 0, 0, NULL }, /* 0x4F */
- { 0x0050, 0, 0, NULL }, /* 0x50 */
- { 0x0051, 0, 0, NULL }, /* 0x51 */
- { 0x0052, 0, 0, NULL }, /* 0x52 */
- { 0x0053, 0, 0, NULL }, /* 0x53 */
- { 0x0054, 0, 0, NULL }, /* 0x54 */
- { 0x0055, 0, 0, NULL }, /* 0x55 */
- { 0x0056, 0, 0, NULL }, /* 0x56 */
- { 0x0057, 0, 0, NULL }, /* 0x57 */
- { 0x0058, 0, 0, NULL }, /* 0x58 */
- { 0x0059, 0, 0, NULL }, /* 0x59 */
- { 0x005A, 0, 0, NULL }, /* 0x5A */
- { 0x005B, 0, 0, NULL }, /* 0x5B */
- { 0x005C, 0, 0, NULL }, /* 0x5C */
- { 0x005D, 0, 0, NULL }, /* 0x5D */
- { 0x005E, 0, 0, NULL }, /* 0x5E */
- { 0x005F, 0, 0, NULL }, /* 0x5F */
- { 0x0060, 0, 0, NULL }, /* 0x60 */
- { 0x0061, 0, 0, NULL }, /* 0x61 */
- { 0x0062, 0, 0, NULL }, /* 0x62 */
- { 0x0063, 0, 0, NULL }, /* 0x63 */
- { 0x0064, 0, 0, NULL }, /* 0x64 */
- { 0x0065, 0, 0, NULL }, /* 0x65 */
- { 0x0066, 0, 0, NULL }, /* 0x66 */
- { 0x0067, 0, 0, NULL }, /* 0x67 */
- { 0x0068, 0, 0, NULL }, /* 0x68 */
- { 0x0069, 0, 0, NULL }, /* 0x69 */
- { 0x006A, 0, 0, NULL }, /* 0x6A */
- { 0x006B, 0, 0, NULL }, /* 0x6B */
- { 0x006C, 0, 0, NULL }, /* 0x6C */
- { 0x006D, 0, 0, NULL }, /* 0x6D */
- { 0x006E, 0, 0, NULL }, /* 0x6E */
- { 0x006F, 0, 0, NULL }, /* 0x6F */
- { 0x0070, 0, 0, NULL }, /* 0x70 */
- { 0x0071, 0, 0, NULL }, /* 0x71 */
- { 0x0072, 0, 0, NULL }, /* 0x72 */
- { 0x0073, 0, 0, NULL }, /* 0x73 */
- { 0x0074, 0, 0, NULL }, /* 0x74 */
- { 0x0075, 0, 0, NULL }, /* 0x75 */
- { 0x0076, 0, 0, NULL }, /* 0x76 */
- { 0x0077, 0, 0, NULL }, /* 0x77 */
- { 0x0078, 0, 0, NULL }, /* 0x78 */
- { 0x0079, 0, 0, NULL }, /* 0x79 */
- { 0x007A, 0, 0, NULL }, /* 0x7A */
- { 0x007B, 0, 0, NULL }, /* 0x7B */
- { 0x007C, 0, 0, NULL }, /* 0x7C */
- { 0x007D, 0, 0, NULL }, /* 0x7D */
- { 0x007E, 0, 0, NULL }, /* 0x7E */
- { 0x007F, 0, 0, NULL }, /* 0x7F */
- { 0x0080, 0, 0, NULL }, /* 0x80 */
- { 0x0081, 0, 0, NULL }, /* 0x81 */
- { 0x0082, 0, 0, NULL }, /* 0x82 */
- { 0x0083, 0, 0, NULL }, /* 0x83 */
- { 0, 0x44, 0xE1, aImplDBCSToUniTab_JOHAB_84 }, /* 0x84 */
- { 0, 0x41, 0xE1, aImplDBCSToUniTab_JOHAB_85 }, /* 0x85 */
- { 0, 0x41, 0xE1, aImplDBCSToUniTab_JOHAB_86 }, /* 0x86 */
- { 0, 0x41, 0xA1, aImplDBCSToUniTab_JOHAB_87 }, /* 0x87 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_88 }, /* 0x88 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_89 }, /* 0x89 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_8A }, /* 0x8A */
- { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_8B }, /* 0x8B */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_8C }, /* 0x8C */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_8D }, /* 0x8D */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_8E }, /* 0x8E */
- { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_8F }, /* 0x8F */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_90 }, /* 0x90 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_91 }, /* 0x91 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_92 }, /* 0x92 */
- { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_93 }, /* 0x93 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_94 }, /* 0x94 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_95 }, /* 0x95 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_96 }, /* 0x96 */
- { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_97 }, /* 0x97 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_98 }, /* 0x98 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_99 }, /* 0x99 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_9A }, /* 0x9A */
- { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_9B }, /* 0x9B */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_9C }, /* 0x9C */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_9D }, /* 0x9D */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_9E }, /* 0x9E */
- { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_9F }, /* 0x9F */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A0 }, /* 0xA0 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A1 }, /* 0xA1 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A2 }, /* 0xA2 */
- { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_A3 }, /* 0xA3 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A4 }, /* 0xA4 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A5 }, /* 0xA5 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A6 }, /* 0xA6 */
- { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_A7 }, /* 0xA7 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A8 }, /* 0xA8 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A9 }, /* 0xA9 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_AA }, /* 0xAA */
- { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_AB }, /* 0xAB */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_AC }, /* 0xAC */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_AD }, /* 0xAD */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_AE }, /* 0xAE */
- { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_AF }, /* 0xAF */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B0 }, /* 0xB0 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B1 }, /* 0xB1 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B2 }, /* 0xB2 */
- { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_B3 }, /* 0xB3 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B4 }, /* 0xB4 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B5 }, /* 0xB5 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B6 }, /* 0xB6 */
- { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_B7 }, /* 0xB7 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B8 }, /* 0xB8 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B9 }, /* 0xB9 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_BA }, /* 0xBA */
- { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_BB }, /* 0xBB */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_BC }, /* 0xBC */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_BD }, /* 0xBD */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_BE }, /* 0xBE */
- { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_BF }, /* 0xBF */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C0 }, /* 0xC0 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C1 }, /* 0xC1 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C2 }, /* 0xC2 */
- { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_C3 }, /* 0xC3 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C4 }, /* 0xC4 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C5 }, /* 0xC5 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C6 }, /* 0xC6 */
- { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_C7 }, /* 0xC7 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C8 }, /* 0xC8 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C9 }, /* 0xC9 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_CA }, /* 0xCA */
- { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_CB }, /* 0xCB */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_CC }, /* 0xCC */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_CD }, /* 0xCD */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_CE }, /* 0xCE */
- { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_CF }, /* 0xCF */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_D0 }, /* 0xD0 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_D1 }, /* 0xD1 */
- { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_D2 }, /* 0xD2 */
- { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_D3 }, /* 0xD3 */
- { 0, 1, 0, NULL }, /* 0xD4 */
- { 0, 1, 0, NULL }, /* 0xD5 */
- { 0, 1, 0, NULL }, /* 0xD6 */
- { 0, 1, 0, NULL }, /* 0xD7 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xD8 */ /* We convert this as double byte */
- { 0, 0x31, 0xE5, aImplDBCSToUniTab_JOHAB_D9 }, /* 0xD9 */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_DA }, /* 0xDA */
- { 0, 0x31, 0xE4, aImplDBCSToUniTab_JOHAB_DB }, /* 0xDB */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_DC }, /* 0xDC */
- { 0, 0x31, 0xF3, aImplDBCSToUniTab_JOHAB_DD }, /* 0xDD */
- { 0, 0x31, 0xF1, aImplDBCSToUniTab_JOHAB_DE }, /* 0xDE */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xDF */ /* We convert this as double byte */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E0 }, /* 0xE0 */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E1 }, /* 0xE1 */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E2 }, /* 0xE2 */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E3 }, /* 0xE3 */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E4 }, /* 0xE4 */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E5 }, /* 0xE5 */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E6 }, /* 0xE6 */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E7 }, /* 0xE7 */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E8 }, /* 0xE8 */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E9 }, /* 0xE9 */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_EA }, /* 0xEA */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_EB }, /* 0xEB */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_EC }, /* 0xEC */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_ED }, /* 0xED */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_EE }, /* 0xEE */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_EF }, /* 0xEF */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F0 }, /* 0xF0 */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F1 }, /* 0xF1 */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F2 }, /* 0xF2 */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F3 }, /* 0xF3 */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F4 }, /* 0xF4 */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F5 }, /* 0xF5 */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F6 }, /* 0xF6 */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F7 }, /* 0xF7 */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F8 }, /* 0xF8 */
- { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F9 }, /* 0xF9 */
- { 0, 1, 0, NULL }, /* 0xFA */
- { 0, 1, 0, NULL }, /* 0xFB */
- { 0, 1, 0, NULL }, /* 0xFC */
- { 0, 1, 0, NULL }, /* 0xFD */
- { 0, 1, 0, NULL }, /* 0xFE */
- { 0, 1, 0, NULL } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplUniToDBCSHighTab const aJOHABDBCSHighTab[256] =
-{
- { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_00 }, /* 0x00 */
- { 0x11, 0x67, aImplUniToDBCSTab_JOHAB_01 }, /* 0x01 */
- { 0xC7, 0xDD, aImplUniToDBCSTab_JOHAB_02 }, /* 0x02 */
- { 0x91, 0xC9, aImplUniToDBCSTab_JOHAB_03 }, /* 0x03 */
- { 0x01, 0x51, aImplUniToDBCSTab_JOHAB_04 }, /* 0x04 */
- { 1, 0, NULL }, /* 0x05 */
- { 1, 0, NULL }, /* 0x06 */
- { 1, 0, NULL }, /* 0x07 */
- { 1, 0, NULL }, /* 0x08 */
- { 1, 0, NULL }, /* 0x09 */
- { 1, 0, NULL }, /* 0x0A */
- { 1, 0, NULL }, /* 0x0B */
- { 1, 0, NULL }, /* 0x0C */
- { 1, 0, NULL }, /* 0x0D */
- { 1, 0, NULL }, /* 0x0E */
- { 1, 0, NULL }, /* 0x0F */
- { 1, 0, NULL }, /* 0x10 */
- { 1, 0, NULL }, /* 0x11 */
- { 1, 0, NULL }, /* 0x12 */
- { 1, 0, NULL }, /* 0x13 */
- { 1, 0, NULL }, /* 0x14 */
- { 1, 0, NULL }, /* 0x15 */
- { 1, 0, NULL }, /* 0x16 */
- { 1, 0, NULL }, /* 0x17 */
- { 1, 0, NULL }, /* 0x18 */
- { 1, 0, NULL }, /* 0x19 */
- { 1, 0, NULL }, /* 0x1A */
- { 1, 0, NULL }, /* 0x1B */
- { 1, 0, NULL }, /* 0x1C */
- { 1, 0, NULL }, /* 0x1D */
- { 1, 0, NULL }, /* 0x1E */
- { 1, 0, NULL }, /* 0x1F */
- { 0x15, 0xA9, aImplUniToDBCSTab_JOHAB_20 }, /* 0x20 */
- { 0x03, 0xD4, aImplUniToDBCSTab_JOHAB_21 }, /* 0x21 */
- { 0x00, 0xA5, aImplUniToDBCSTab_JOHAB_22 }, /* 0x22 */
- { 0x12, 0x12, aImplUniToDBCSTab_JOHAB_23 }, /* 0x23 */
- { 0x60, 0xE9, aImplUniToDBCSTab_JOHAB_24 }, /* 0x24 */
- { 0x00, 0xD1, aImplUniToDBCSTab_JOHAB_25 }, /* 0x25 */
- { 0x05, 0x6D, aImplUniToDBCSTab_JOHAB_26 }, /* 0x26 */
- { 1, 0, NULL }, /* 0x27 */
- { 1, 0, NULL }, /* 0x28 */
- { 1, 0, NULL }, /* 0x29 */
- { 1, 0, NULL }, /* 0x2A */
- { 1, 0, NULL }, /* 0x2B */
- { 1, 0, NULL }, /* 0x2C */
- { 1, 0, NULL }, /* 0x2D */
- { 1, 0, NULL }, /* 0x2E */
- { 1, 0, NULL }, /* 0x2F */
- { 0x00, 0xF7, aImplUniToDBCSTab_JOHAB_30 }, /* 0x30 */
- { 0x31, 0x8E, aImplUniToDBCSTab_JOHAB_31 }, /* 0x31 */
- { 0x00, 0x7F, aImplUniToDBCSTab_JOHAB_32 }, /* 0x32 */
- { 0x80, 0xDD, aImplUniToDBCSTab_JOHAB_33 }, /* 0x33 */
- { 1, 0, NULL }, /* 0x34 */
- { 1, 0, NULL }, /* 0x35 */
- { 1, 0, NULL }, /* 0x36 */
- { 1, 0, NULL }, /* 0x37 */
- { 1, 0, NULL }, /* 0x38 */
- { 1, 0, NULL }, /* 0x39 */
- { 1, 0, NULL }, /* 0x3A */
- { 1, 0, NULL }, /* 0x3B */
- { 1, 0, NULL }, /* 0x3C */
- { 1, 0, NULL }, /* 0x3D */
- { 1, 0, NULL }, /* 0x3E */
- { 1, 0, NULL }, /* 0x3F */
- { 1, 0, NULL }, /* 0x40 */
- { 1, 0, NULL }, /* 0x41 */
- { 1, 0, NULL }, /* 0x42 */
- { 1, 0, NULL }, /* 0x43 */
- { 1, 0, NULL }, /* 0x44 */
- { 1, 0, NULL }, /* 0x45 */
- { 1, 0, NULL }, /* 0x46 */
- { 1, 0, NULL }, /* 0x47 */
- { 1, 0, NULL }, /* 0x48 */
- { 1, 0, NULL }, /* 0x49 */
- { 1, 0, NULL }, /* 0x4A */
- { 1, 0, NULL }, /* 0x4B */
- { 1, 0, NULL }, /* 0x4C */
- { 1, 0, NULL }, /* 0x4D */
- { 0x00, 0xFB, aImplUniToDBCSTab_JOHAB_4E }, /* 0x4E */
- { 0x01, 0xFA, aImplUniToDBCSTab_JOHAB_4F }, /* 0x4F */
- { 0x02, 0xFF, aImplUniToDBCSTab_JOHAB_50 }, /* 0x50 */
- { 0x00, 0xFD, aImplUniToDBCSTab_JOHAB_51 }, /* 0x51 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_52 }, /* 0x52 */
- { 0x05, 0xF8, aImplUniToDBCSTab_JOHAB_53 }, /* 0x53 */
- { 0x03, 0xFA, aImplUniToDBCSTab_JOHAB_54 }, /* 0x54 */
- { 0x04, 0xFE, aImplUniToDBCSTab_JOHAB_55 }, /* 0x55 */
- { 0x06, 0xFA, aImplUniToDBCSTab_JOHAB_56 }, /* 0x56 */
- { 0x03, 0xFC, aImplUniToDBCSTab_JOHAB_57 }, /* 0x57 */
- { 0x00, 0xFD, aImplUniToDBCSTab_JOHAB_58 }, /* 0x58 */
- { 0x07, 0xFF, aImplUniToDBCSTab_JOHAB_59 }, /* 0x59 */
- { 0x01, 0xE9, aImplUniToDBCSTab_JOHAB_5A }, /* 0x5A */
- { 0x05, 0xFA, aImplUniToDBCSTab_JOHAB_5B }, /* 0x5B */
- { 0x01, 0xFD, aImplUniToDBCSTab_JOHAB_5C }, /* 0x5C */
- { 0x07, 0xFE, aImplUniToDBCSTab_JOHAB_5D }, /* 0x5D */
- { 0x02, 0xFB, aImplUniToDBCSTab_JOHAB_5E }, /* 0x5E */
- { 0x01, 0xFF, aImplUniToDBCSTab_JOHAB_5F }, /* 0x5F */
- { 0x07, 0xFB, aImplUniToDBCSTab_JOHAB_60 }, /* 0x60 */
- { 0x01, 0xFF, aImplUniToDBCSTab_JOHAB_61 }, /* 0x61 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_62 }, /* 0x62 */
- { 0x01, 0xF7, aImplUniToDBCSTab_JOHAB_63 }, /* 0x63 */
- { 0x0D, 0xFE, aImplUniToDBCSTab_JOHAB_64 }, /* 0x64 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_65 }, /* 0x65 */
- { 0x06, 0xFF, aImplUniToDBCSTab_JOHAB_66 }, /* 0x66 */
- { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_67 }, /* 0x67 */
- { 0x12, 0xFA, aImplUniToDBCSTab_JOHAB_68 }, /* 0x68 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_69 }, /* 0x69 */
- { 0x02, 0xFB, aImplUniToDBCSTab_JOHAB_6A }, /* 0x6A */
- { 0x04, 0xEC, aImplUniToDBCSTab_JOHAB_6B }, /* 0x6B */
- { 0x08, 0xF3, aImplUniToDBCSTab_JOHAB_6C }, /* 0x6C */
- { 0x03, 0xFB, aImplUniToDBCSTab_JOHAB_6D }, /* 0x6D */
- { 0x17, 0xFF, aImplUniToDBCSTab_JOHAB_6E }, /* 0x6E */
- { 0x01, 0xFE, aImplUniToDBCSTab_JOHAB_6F }, /* 0x6F */
- { 0x01, 0xFD, aImplUniToDBCSTab_JOHAB_70 }, /* 0x70 */
- { 0x04, 0xFF, aImplUniToDBCSTab_JOHAB_71 }, /* 0x71 */
- { 0x00, 0xFD, aImplUniToDBCSTab_JOHAB_72 }, /* 0x72 */
- { 0x02, 0xFE, aImplUniToDBCSTab_JOHAB_73 }, /* 0x73 */
- { 0x01, 0xF7, aImplUniToDBCSTab_JOHAB_74 }, /* 0x74 */
- { 0x01, 0xFC, aImplUniToDBCSTab_JOHAB_75 }, /* 0x75 */
- { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_76 }, /* 0x76 */
- { 0x01, 0xFB, aImplUniToDBCSTab_JOHAB_77 }, /* 0x77 */
- { 0x02, 0xFB, aImplUniToDBCSTab_JOHAB_78 }, /* 0x78 */
- { 0x01, 0xFB, aImplUniToDBCSTab_JOHAB_79 }, /* 0x79 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_7A }, /* 0x7A */
- { 0x0F, 0xE9, aImplUniToDBCSTab_JOHAB_7B }, /* 0x7B */
- { 0x07, 0xFE, aImplUniToDBCSTab_JOHAB_7C }, /* 0x7C */
- { 0x00, 0xFB, aImplUniToDBCSTab_JOHAB_7D }, /* 0x7D */
- { 0x09, 0x9C, aImplUniToDBCSTab_JOHAB_7E }, /* 0x7E */
- { 0x36, 0xFC, aImplUniToDBCSTab_JOHAB_7F }, /* 0x7F */
- { 0x00, 0xFD, aImplUniToDBCSTab_JOHAB_80 }, /* 0x80 */
- { 0x02, 0xFE, aImplUniToDBCSTab_JOHAB_81 }, /* 0x81 */
- { 0x05, 0xFE, aImplUniToDBCSTab_JOHAB_82 }, /* 0x82 */
- { 0x01, 0xFD, aImplUniToDBCSTab_JOHAB_83 }, /* 0x83 */
- { 0x03, 0xFC, aImplUniToDBCSTab_JOHAB_84 }, /* 0x84 */
- { 0x11, 0xFF, aImplUniToDBCSTab_JOHAB_85 }, /* 0x85 */
- { 0x02, 0xFE, aImplUniToDBCSTab_JOHAB_86 }, /* 0x86 */
- { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_87 }, /* 0x87 */
- { 0x05, 0xFD, aImplUniToDBCSTab_JOHAB_88 }, /* 0x88 */
- { 0x07, 0xF8, aImplUniToDBCSTab_JOHAB_89 }, /* 0x89 */
- { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_8A }, /* 0x8A */
- { 0x00, 0x9A, aImplUniToDBCSTab_JOHAB_8B }, /* 0x8B */
- { 0x37, 0xFD, aImplUniToDBCSTab_JOHAB_8C }, /* 0x8C */
- { 0x04, 0xFB, aImplUniToDBCSTab_JOHAB_8D }, /* 0x8D */
- { 0x0A, 0xFE, aImplUniToDBCSTab_JOHAB_8E }, /* 0x8E */
- { 0x03, 0xFD, aImplUniToDBCSTab_JOHAB_8F }, /* 0x8F */
- { 0x00, 0xFD, aImplUniToDBCSTab_JOHAB_90 }, /* 0x90 */
- { 0x02, 0xF5, aImplUniToDBCSTab_JOHAB_91 }, /* 0x91 */
- { 0x0D, 0xFC, aImplUniToDBCSTab_JOHAB_92 }, /* 0x92 */
- { 0x04, 0xF6, aImplUniToDBCSTab_JOHAB_93 }, /* 0x93 */
- { 0x04, 0x7F, aImplUniToDBCSTab_JOHAB_94 }, /* 0x94 */
- { 0x77, 0xE2, aImplUniToDBCSTab_JOHAB_95 }, /* 0x95 */
- { 0x1C, 0xFB, aImplUniToDBCSTab_JOHAB_96 }, /* 0x96 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_97 }, /* 0x97 */
- { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_98 }, /* 0x98 */
- { 0x03, 0xFF, aImplUniToDBCSTab_JOHAB_99 }, /* 0x99 */
- { 0x01, 0xEE, aImplUniToDBCSTab_JOHAB_9A }, /* 0x9A */
- { 0x1A, 0xE8, aImplUniToDBCSTab_JOHAB_9B }, /* 0x9B */
- { 0x0D, 0xF6, aImplUniToDBCSTab_JOHAB_9C }, /* 0x9C */
- { 0x09, 0xFA, aImplUniToDBCSTab_JOHAB_9D }, /* 0x9D */
- { 0x1A, 0xF4, aImplUniToDBCSTab_JOHAB_9E }, /* 0x9E */
- { 0x07, 0x9C, aImplUniToDBCSTab_JOHAB_9F }, /* 0x9F */
- { 1, 0, NULL }, /* 0xA0 */
- { 1, 0, NULL }, /* 0xA1 */
- { 1, 0, NULL }, /* 0xA2 */
- { 1, 0, NULL }, /* 0xA3 */
- { 1, 0, NULL }, /* 0xA4 */
- { 1, 0, NULL }, /* 0xA5 */
- { 1, 0, NULL }, /* 0xA6 */
- { 1, 0, NULL }, /* 0xA7 */
- { 1, 0, NULL }, /* 0xA8 */
- { 1, 0, NULL }, /* 0xA9 */
- { 1, 0, NULL }, /* 0xAA */
- { 1, 0, NULL }, /* 0xAB */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_AC }, /* 0xAC */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_AD }, /* 0xAD */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_AE }, /* 0xAE */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_AF }, /* 0xAF */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B0 }, /* 0xB0 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B1 }, /* 0xB1 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B2 }, /* 0xB2 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B3 }, /* 0xB3 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B4 }, /* 0xB4 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B5 }, /* 0xB5 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B6 }, /* 0xB6 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B7 }, /* 0xB7 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B8 }, /* 0xB8 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B9 }, /* 0xB9 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BA }, /* 0xBA */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BB }, /* 0xBB */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BC }, /* 0xBC */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BD }, /* 0xBD */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BE }, /* 0xBE */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BF }, /* 0xBF */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C0 }, /* 0xC0 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C1 }, /* 0xC1 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C2 }, /* 0xC2 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C3 }, /* 0xC3 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C4 }, /* 0xC4 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C5 }, /* 0xC5 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C6 }, /* 0xC6 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C7 }, /* 0xC7 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C8 }, /* 0xC8 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C9 }, /* 0xC9 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CA }, /* 0xCA */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CB }, /* 0xCB */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CC }, /* 0xCC */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CD }, /* 0xCD */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CE }, /* 0xCE */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CF }, /* 0xCF */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D0 }, /* 0xD0 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D1 }, /* 0xD1 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D2 }, /* 0xD2 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D3 }, /* 0xD3 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D4 }, /* 0xD4 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D5 }, /* 0xD5 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D6 }, /* 0xD6 */
- { 0x00, 0xA3, aImplUniToDBCSTab_JOHAB_D7 }, /* 0xD7 */
- { 1, 0, NULL }, /* 0xD8 */
- { 1, 0, NULL }, /* 0xD9 */
- { 1, 0, NULL }, /* 0xDA */
- { 1, 0, NULL }, /* 0xDB */
- { 1, 0, NULL }, /* 0xDC */
- { 1, 0, NULL }, /* 0xDD */
- { 1, 0, NULL }, /* 0xDE */
- { 1, 0, NULL }, /* 0xDF */
- { 1, 0, NULL }, /* 0xE0 */
- { 1, 0, NULL }, /* 0xE1 */
- { 1, 0, NULL }, /* 0xE2 */
- { 1, 0, NULL }, /* 0xE3 */
- { 1, 0, NULL }, /* 0xE4 */
- { 1, 0, NULL }, /* 0xE5 */
- { 1, 0, NULL }, /* 0xE6 */
- { 1, 0, NULL }, /* 0xE7 */
- { 1, 0, NULL }, /* 0xE8 */
- { 1, 0, NULL }, /* 0xE9 */
- { 1, 0, NULL }, /* 0xEA */
- { 1, 0, NULL }, /* 0xEB */
- { 1, 0, NULL }, /* 0xEC */
- { 1, 0, NULL }, /* 0xED */
- { 1, 0, NULL }, /* 0xEE */
- { 1, 0, NULL }, /* 0xEF */
- { 1, 0, NULL }, /* 0xF0 */
- { 1, 0, NULL }, /* 0xF1 */
- { 1, 0, NULL }, /* 0xF2 */
- { 1, 0, NULL }, /* 0xF3 */
- { 1, 0, NULL }, /* 0xF4 */
- { 1, 0, NULL }, /* 0xF5 */
- { 1, 0, NULL }, /* 0xF6 */
- { 1, 0, NULL }, /* 0xF7 */
- { 1, 0, NULL }, /* 0xF8 */
- { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_F9 }, /* 0xF9 */
- { 0x00, 0x0B, aImplUniToDBCSTab_JOHAB_FA }, /* 0xFA */
- { 1, 0, NULL }, /* 0xFB */
- { 1, 0, NULL }, /* 0xFC */
- { 1, 0, NULL }, /* 0xFD */
- { 1, 0, NULL }, /* 0xFE */
- { 0x01, 0xE6, aImplUniToDBCSTab_JOHAB_FF } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* D831-D87E -> E000-E05D */
-/* D891-D8FE -> E05E-E0BB */
-
-#define DBCS_EUDC_MS1361_COUNT 2
-static ImplDBCSEUDCData const aImplMS1361DBCSEUDCTab[DBCS_EUDC_MS1361_COUNT] =
-{
- /* EUDC-Range */
- /* Lead: D8-D8 */
- /* Trail: 31-7E */
- { 0xD8, 0xD8, 0x31, 0x7E, 0, 0, 0, 0, 1, 0x5D, 0xE000, 0xE05D },
- /* Lead: D8-D8 */
- /* Trail: 91-FE */
- { 0xD8, 0xD8, 0x91, 0xFE, 0, 0, 0, 0, 1, 0x5D, 0xE05E, 0xE0BB }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplDBCSConvertData const aImplJOHABDBCSCvtData =
-{
- aJOHABUniLeadTab,
- aJOHABDBCSHighTab,
- 0x00, 0xFF,
- 0x31, 0xFE,
- aImplMS1361DBCSEUDCTab,
- DBCS_EUDC_MS1361_COUNT
-};
-
-/* ======================================================================= */
-
-static ImplTextEncodingData const aImplMS1361TextEncodingData
- = { { &aImplJOHABDBCSCvtData,
- ImplDBCSToUnicode,
- ImplUnicodeToDBCS,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 2,
- 2,
- 130,
- "euc-kr",
- "euc-kr",
- RTL_TEXTENCODING_INFO_MULTIBYTE | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_KOREAN, pc code page 1361, mac encoding 3 */
diff --git a/sal/textenc/tcvtlat1.tab b/sal/textenc/tcvtlat1.tab
deleted file mode 100644
index 9c0a0e3a8..000000000
--- a/sal/textenc/tcvtlat1.tab
+++ /dev/null
@@ -1,1775 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the tables for all 1 byte charsets, for the */
-/* following scripts: latin, iceland, nordic */
-
-/* ======================================================================= */
-
-/* IBM-437 */
-/* Dos Latin US - Standard CharSet for Western Script */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/pc/cp437.txt from 04/24/96 Version 2.00 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM437UNI_START 0x80
-#define IBM437UNI_END 0xFF
-static sal_uInt16 const aImplIBM437ToUniTab[IBM437UNI_END - IBM437UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, /* 0x80 */
- 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, /* 0x80 */
- 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, /* 0x90 */
- 0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, /* 0x90 */
- 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, /* 0xA0 */
- 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, /* 0xA0 */
- 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
- 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
- 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
- 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
- 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
- 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
- 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, /* 0xE0 */
- 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, /* 0xE0 */
- 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, /* 0xF0 */
- 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM437CHAR_START 0x00A0
-#define IBM437CHAR_END 0x00FF
-static sal_uChar const aImplIBM437ToCharTab[IBM437CHAR_END - IBM437CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFF, 0xAD, 0x9B, 0x9C, 0, 0x9D, 0, 0, /* 0x00A0 */
- 0, 0, 0xA6, 0xAE, 0xAA, 0, 0, 0, /* 0x00A0 */
- 0xF8, 0xF1, 0xFD, 0, 0, 0xE6, 0, 0xFA, /* 0x00B0 */
- 0, 0, 0xA7, 0xAF, 0xAC, 0xAB, 0, 0xA8, /* 0x00B0 */
- 0, 0, 0, 0, 0x8E, 0x8F, 0x92, 0x80, /* 0x00C0 */
- 0, 0x90, 0, 0, 0, 0, 0, 0, /* 0x00C0 */
- 0, 0xA5, 0, 0, 0, 0, 0x99, 0, /* 0x00D0 */
- 0, 0, 0, 0, 0x9A, 0, 0, 0xE1, /* 0x00D0 */
- 0x85, 0xA0, 0x83, 0, 0x84, 0x86, 0x91, 0x87, /* 0x00E0 */
- 0x8A, 0x82, 0x88, 0x89, 0x8D, 0xA1, 0x8C, 0x8B, /* 0x00E0 */
- 0, 0xA4, 0x95, 0xA2, 0x93, 0, 0x94, 0xF6, /* 0x00F0 */
- 0, 0x97, 0xA3, 0x96, 0x81, 0, 0, 0x98 /* 0x00F0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM437TOCHARTABEX_COUNT 75
-static ImplUniCharTabData const aImplIBM437ToCharTabEx[IBM437TOCHARTABEX_COUNT] =
-{
- { 0x0192, 0x9F, 0 },
- { 0x0393, 0xE2, 0 },
- { 0x0398, 0xE9, 0 },
- { 0x03A3, 0xE4, 0 },
- { 0x03A6, 0xE8, 0 },
- { 0x03A9, 0xEA, 0 },
- { 0x03B1, 0xE0, 0 },
- { 0x03B4, 0xEB, 0 },
- { 0x03B5, 0xEE, 0 },
- { 0x03C0, 0xE3, 0 },
- { 0x03C3, 0xE5, 0 },
- { 0x03C4, 0xE7, 0 },
- { 0x03C6, 0xED, 0 },
- { 0x207F, 0xFC, 0 },
- { 0x20A7, 0x9E, 0 },
- { 0x2219, 0xF9, 0 },
- { 0x221A, 0xFB, 0 },
- { 0x221E, 0xEC, 0 },
- { 0x2229, 0xEF, 0 },
- { 0x2248, 0xF7, 0 },
- { 0x2261, 0xF0, 0 },
- { 0x2264, 0xF3, 0 },
- { 0x2265, 0xF2, 0 },
- { 0x2310, 0xA9, 0 },
- { 0x2320, 0xF4, 0 },
- { 0x2321, 0xF5, 0 },
- { 0x2500, 0xC4, 0 },
- { 0x2502, 0xB3, 0 },
- { 0x250C, 0xDA, 0 },
- { 0x2510, 0xBF, 0 },
- { 0x2514, 0xC0, 0 },
- { 0x2518, 0xD9, 0 },
- { 0x251C, 0xC3, 0 },
- { 0x2524, 0xB4, 0 },
- { 0x252C, 0xC2, 0 },
- { 0x2534, 0xC1, 0 },
- { 0x253C, 0xC5, 0 },
- { 0x2550, 0xCD, 0 },
- { 0x2551, 0xBA, 0 },
- { 0x2552, 0xD5, 0 },
- { 0x2553, 0xD6, 0 },
- { 0x2554, 0xC9, 0 },
- { 0x2555, 0xB8, 0 },
- { 0x2556, 0xB7, 0 },
- { 0x2557, 0xBB, 0 },
- { 0x2558, 0xD4, 0 },
- { 0x2559, 0xD3, 0 },
- { 0x255A, 0xC8, 0 },
- { 0x255B, 0xBE, 0 },
- { 0x255C, 0xBD, 0 },
- { 0x255D, 0xBC, 0 },
- { 0x255E, 0xC6, 0 },
- { 0x255F, 0xC7, 0 },
- { 0x2560, 0xCC, 0 },
- { 0x2561, 0xB5, 0 },
- { 0x2562, 0xB6, 0 },
- { 0x2563, 0xB9, 0 },
- { 0x2564, 0xD1, 0 },
- { 0x2565, 0xD2, 0 },
- { 0x2566, 0xCB, 0 },
- { 0x2567, 0xCF, 0 },
- { 0x2568, 0xD0, 0 },
- { 0x2569, 0xCA, 0 },
- { 0x256A, 0xD8, 0 },
- { 0x256B, 0xD7, 0 },
- { 0x256C, 0xCE, 0 },
- { 0x2580, 0xDF, 0 },
- { 0x2584, 0xDC, 0 },
- { 0x2588, 0xDB, 0 },
- { 0x258C, 0xDD, 0 },
- { 0x2590, 0xDE, 0 },
- { 0x2591, 0xB0, 0 },
- { 0x2592, 0xB1, 0 },
- { 0x2593, 0xB2, 0 },
- { 0x25A0, 0xFE, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplIBM437ByteCvtData =
-{
- aImplIBM437ToUniTab,
- NULL,
- IBM437UNI_START, IBM437UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplIBM437ToCharTab,
- NULL,
- aImplIBM437ToCharTabEx,
- IBM437CHAR_START, IBM437CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- IBM437TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplIBM437TextEncodingData
- = { { &aImplIBM437ByteCvtData,
- ImplUpperCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 0,
- "iso8859-1",
- "ibm437",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* DOS/OS2, SCRIPT_LATIN, pc code page 437 */
-
-/* ======================================================================= */
-
-/* IBM-850 */
-/* Dos Standard CharSet for Western/Europa */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/pc/cp850.txt from 04/24/96 Version 2.00 */
-/* Last-Changes from us: */
-/* D5 - geaendert auf EURO SIGN and 0x20AC added to D5 */
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM850UNI_START 0x80
-#define IBM850UNI_END 0xFF
-static sal_uInt16 const aImplIBM850ToUniTab[IBM850UNI_END - IBM850UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, /* 0x80 */
- 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, /* 0x80 */
- 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, /* 0x90 */
- 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x0192, /* 0x90 */
- 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, /* 0xA0 */
- 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, /* 0xA0 */
- 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0, /* 0xB0 */
- 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510, /* 0xB0 */
- 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3, /* 0xC0 */
- 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, /* 0xC0 */
- 0x00F0, 0x00D0, 0x00CA, 0x00CB, 0x00C8, 0x20AC, 0x00CD, 0x00CE, /* 0xD0 */
- 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580, /* 0xD0 */
- 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x00FE, /* 0xE0 */
- 0x00DE, 0x00DA, 0x00DB, 0x00D9, 0x00FD, 0x00DD, 0x00AF, 0x00B4, /* 0xE0 */
- 0x00AD, 0x00B1, 0x2017, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8, /* 0xF0 */
- 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM850CHAR_START 0x00A0
-#define IBM850CHAR_END 0x00FF
-static sal_uChar const aImplIBM850ToCharTab[IBM850CHAR_END - IBM850CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFF, 0xAD, 0xBD, 0x9C, 0xCF, 0xBE, 0xDD, 0xF5, /* 0x00A0 */
- 0xF9, 0xB8, 0xA6, 0xAE, 0xAA, 0xF0, 0xA9, 0xEE, /* 0x00A0 */
- 0xF8, 0xF1, 0xFD, 0xFC, 0xEF, 0xE6, 0xF4, 0xFA, /* 0x00B0 */
- 0xF7, 0xFB, 0xA7, 0xAF, 0xAC, 0xAB, 0xF3, 0xA8, /* 0x00B0 */
- 0xB7, 0xB5, 0xB6, 0xC7, 0x8E, 0x8F, 0x92, 0x80, /* 0x00C0 */
- 0xD4, 0x90, 0xD2, 0xD3, 0xDE, 0xD6, 0xD7, 0xD8, /* 0x00C0 */
- 0xD1, 0xA5, 0xE3, 0xE0, 0xE2, 0xE5, 0x99, 0x9E, /* 0x00D0 */
- 0x9D, 0xEB, 0xE9, 0xEA, 0x9A, 0xED, 0xE8, 0xE1, /* 0x00D0 */
- 0x85, 0xA0, 0x83, 0xC6, 0x84, 0x86, 0x91, 0x87, /* 0x00E0 */
- 0x8A, 0x82, 0x88, 0x89, 0x8D, 0xA1, 0x8C, 0x8B, /* 0x00E0 */
- 0xD0, 0xA4, 0x95, 0xA2, 0x93, 0xE4, 0x94, 0xF6, /* 0x00F0 */
- 0x9B, 0x97, 0xA3, 0x96, 0x81, 0xEC, 0xE7, 0x98 /* 0x00F0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM850TOCHARTABEX_COUNT 33
-static ImplUniCharTabData const aImplIBM850ToCharTabEx[IBM850TOCHARTABEX_COUNT] =
-{
- { 0x0131, 0xD5, 0 },
- { 0x0192, 0x9F, 0 },
- { 0x2017, 0xF2, 0 },
- { 0x20AC, 0xD5, 0 },
- { 0x2500, 0xC4, 0 },
- { 0x2502, 0xB3, 0 },
- { 0x250C, 0xDA, 0 },
- { 0x2510, 0xBF, 0 },
- { 0x2514, 0xC0, 0 },
- { 0x2518, 0xD9, 0 },
- { 0x251C, 0xC3, 0 },
- { 0x2524, 0xB4, 0 },
- { 0x252C, 0xC2, 0 },
- { 0x2534, 0xC1, 0 },
- { 0x253C, 0xC5, 0 },
- { 0x2550, 0xCD, 0 },
- { 0x2551, 0xBA, 0 },
- { 0x2554, 0xC9, 0 },
- { 0x2557, 0xBB, 0 },
- { 0x255A, 0xC8, 0 },
- { 0x255D, 0xBC, 0 },
- { 0x2560, 0xCC, 0 },
- { 0x2563, 0xB9, 0 },
- { 0x2566, 0xCB, 0 },
- { 0x2569, 0xCA, 0 },
- { 0x256C, 0xCE, 0 },
- { 0x2580, 0xDF, 0 },
- { 0x2584, 0xDC, 0 },
- { 0x2588, 0xDB, 0 },
- { 0x2591, 0xB0, 0 },
- { 0x2592, 0xB1, 0 },
- { 0x2593, 0xB2, 0 },
- { 0x25A0, 0xFE, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplIBM850ByteCvtData =
-{
- aImplIBM850ToUniTab,
- NULL,
- IBM850UNI_START, IBM850UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplIBM850ToCharTab,
- NULL,
- aImplIBM850ToCharTabEx,
- IBM850CHAR_START, IBM850CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- IBM850TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplIBM850TextEncodingData
- = { { &aImplIBM850ByteCvtData,
- ImplUpperCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 0,
- "iso8859-1",
- "ibm850",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* DOS/OS2, SCRIPT_LATIN, pc code page 850 */
-
-/* ======================================================================= */
-
-/* IBM-860 */
-/* Dos Standard CharSet for Portugiese */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/pc/cp860.txt from 04/24/96 Version 2.00 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM860UNI_START 0x80
-#define IBM860UNI_END 0xFF
-static sal_uInt16 const aImplIBM860ToUniTab[IBM860UNI_END - IBM860UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E3, 0x00E0, 0x00C1, 0x00E7, /* 0x80 */
- 0x00EA, 0x00CA, 0x00E8, 0x00CD, 0x00D4, 0x00EC, 0x00C3, 0x00C2, /* 0x80 */
- 0x00C9, 0x00C0, 0x00C8, 0x00F4, 0x00F5, 0x00F2, 0x00DA, 0x00F9, /* 0x90 */
- 0x00CC, 0x00D5, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x20A7, 0x00D3, /* 0x90 */
- 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, /* 0xA0 */
- 0x00BF, 0x00D2, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, /* 0xA0 */
- 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
- 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
- 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
- 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
- 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
- 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
- 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, /* 0xE0 */
- 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, /* 0xE0 */
- 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, /* 0xF0 */
- 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM860CHAR_START 0x00A0
-#define IBM860CHAR_END 0x00FC
-static sal_uChar const aImplIBM860ToCharTab[IBM860CHAR_END - IBM860CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFF, 0xAD, 0x9B, 0x9C, 0 , 0, 0, 0, /* 0x00A0 */
- 0, 0, 0xA6, 0xAE, 0xAA, 0, 0, 0, /* 0x00A0 */
- 0xF8, 0xF1, 0xFD, 0, 0, 0xE6, 0, 0xFA, /* 0x00B0 */
- 0, 0, 0xA7, 0xAF, 0xAC, 0xAB, 0, 0xA8, /* 0x00B0 */
- 0x91, 0x86, 0x8F, 0x8E, 0, 0, 0, 0x80, /* 0x00C0 */
- 0x92, 0x90, 0x89, 0, 0x98, 0x8B, 0, 0, /* 0x00C0 */
- 0, 0xA5, 0xA9, 0x9F, 0x8C, 0x99, 0, 0, /* 0x00D0 */
- 0, 0x9D, 0x96, 0, 0x9A, 0, 0, 0xE1, /* 0x00D0 */
- 0x85, 0xA0, 0x83, 0x84, 0, 0, 0, 0x87, /* 0x00E0 */
- 0x8A, 0x82, 0x88, 0, 0x8D, 0xA1, 0, 0, /* 0x00E0 */
- 0, 0xA4, 0x95, 0xA2, 0x93, 0x94, 0, 0xF6, /* 0x00F0 */
- 0, 0x97, 0xA3, 0, 0x81 /* 0x00F0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM860TOCHARTABEX_COUNT 73
-static ImplUniCharTabData const aImplIBM860ToCharTabEx[IBM860TOCHARTABEX_COUNT] =
-{
- { 0x0393, 0xE2, 0 },
- { 0x0398, 0xE9, 0 },
- { 0x03A3, 0xE4, 0 },
- { 0x03A6, 0xE8, 0 },
- { 0x03A9, 0xEA, 0 },
- { 0x03B1, 0xE0, 0 },
- { 0x03B4, 0xEB, 0 },
- { 0x03B5, 0xEE, 0 },
- { 0x03C0, 0xE3, 0 },
- { 0x03C3, 0xE5, 0 },
- { 0x03C4, 0xE7, 0 },
- { 0x03C6, 0xED, 0 },
- { 0x207F, 0xFC, 0 },
- { 0x20A7, 0x9E, 0 },
- { 0x2219, 0xF9, 0 },
- { 0x221A, 0xFB, 0 },
- { 0x221E, 0xEC, 0 },
- { 0x2229, 0xEF, 0 },
- { 0x2248, 0xF7, 0 },
- { 0x2261, 0xF0, 0 },
- { 0x2264, 0xF3, 0 },
- { 0x2265, 0xF2, 0 },
- { 0x2320, 0xF4, 0 },
- { 0x2321, 0xF5, 0 },
- { 0x2500, 0xC4, 0 },
- { 0x2502, 0xB3, 0 },
- { 0x250C, 0xDA, 0 },
- { 0x2510, 0xBF, 0 },
- { 0x2514, 0xC0, 0 },
- { 0x2518, 0xD9, 0 },
- { 0x251C, 0xC3, 0 },
- { 0x2524, 0xB4, 0 },
- { 0x252C, 0xC2, 0 },
- { 0x2534, 0xC1, 0 },
- { 0x253C, 0xC5, 0 },
- { 0x2550, 0xCD, 0 },
- { 0x2551, 0xBA, 0 },
- { 0x2552, 0xD5, 0 },
- { 0x2553, 0xD6, 0 },
- { 0x2554, 0xC9, 0 },
- { 0x2555, 0xB8, 0 },
- { 0x2556, 0xB7, 0 },
- { 0x2557, 0xBB, 0 },
- { 0x2558, 0xD4, 0 },
- { 0x2559, 0xD3, 0 },
- { 0x255A, 0xC8, 0 },
- { 0x255B, 0xBE, 0 },
- { 0x255C, 0xBD, 0 },
- { 0x255D, 0xBC, 0 },
- { 0x255E, 0xC6, 0 },
- { 0x255F, 0xC7, 0 },
- { 0x2560, 0xCC, 0 },
- { 0x2561, 0xB5, 0 },
- { 0x2562, 0xB6, 0 },
- { 0x2563, 0xB9, 0 },
- { 0x2564, 0xD1, 0 },
- { 0x2565, 0xD2, 0 },
- { 0x2566, 0xCB, 0 },
- { 0x2567, 0xCF, 0 },
- { 0x2568, 0xD0, 0 },
- { 0x2569, 0xCA, 0 },
- { 0x256A, 0xD8, 0 },
- { 0x256B, 0xD7, 0 },
- { 0x256C, 0xCE, 0 },
- { 0x2580, 0xDF, 0 },
- { 0x2584, 0xDC, 0 },
- { 0x2588, 0xDB, 0 },
- { 0x258C, 0xDD, 0 },
- { 0x2590, 0xDE, 0 },
- { 0x2591, 0xB0, 0 },
- { 0x2592, 0xB1, 0 },
- { 0x2593, 0xB2, 0 },
- { 0x25A0, 0xFE, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplIBM860ByteCvtData =
-{
- aImplIBM860ToUniTab,
- NULL,
- IBM860UNI_START, IBM860UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplIBM860ToCharTab,
- NULL,
- aImplIBM860ToCharTabEx,
- IBM860CHAR_START, IBM860CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- IBM860TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplIBM860TextEncodingData
- = { { &aImplIBM860ByteCvtData,
- ImplUpperCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 0,
- "iso8859-1",
- "IBM860",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* DOS/OS2, SCRIPT_LATIN, pc code page 860 */
-
-/* ======================================================================= */
-
-/* IBM-861 */
-/* Dos Standard CharSet for Icelandic */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/pc/cp861.txt from 04/24/96 Version 2.00 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM861UNI_START 0x80
-#define IBM861UNI_END 0xFF
-static sal_uInt16 const aImplIBM861ToUniTab[IBM861UNI_END - IBM861UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, /* 0x80 */
- 0x00EA, 0x00EB, 0x00E8, 0x00D0, 0x00F0, 0x00DE, 0x00C4, 0x00C5, /* 0x80 */
- 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00FE, 0x00FB, 0x00DD, /* 0x90 */
- 0x00FD, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192, /* 0x90 */
- 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00C1, 0x00CD, 0x00D3, 0x00DA, /* 0xA0 */
- 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, /* 0xA0 */
- 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
- 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
- 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
- 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
- 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
- 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
- 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, /* 0xE0 */
- 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, /* 0xE0 */
- 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, /* 0xF0 */
- 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM861CHAR_START 0x00A0
-#define IBM861CHAR_END 0x00FE
-static sal_uChar const aImplIBM861ToCharTab[IBM861CHAR_END - IBM861CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFF, 0xAD, 0, 0x9C, 0, 0, 0, 0, /* 0x00A0 */
- 0, 0, 0, 0xAE, 0xAA, 0, 0, 0, /* 0x00A0 */
- 0xF8, 0xF1, 0xFD, 0, 0, 0xE6, 0, 0xFA, /* 0x00B0 */
- 0, 0, 0, 0xAF, 0xAC, 0xAB, 0, 0xA8, /* 0x00B0 */
- 0, 0xA4, 0, 0, 0x8E, 0x8F, 0x92, 0x80, /* 0x00C0 */
- 0, 0x90, 0, 0, 0, 0xA5, 0, 0, /* 0x00C0 */
- 0x8B, 0, 0, 0xA6, 0, 0, 0x99, 0, /* 0x00D0 */
- 0x9D, 0, 0xA7, 0, 0x9A, 0x97, 0x8D, 0xE1, /* 0x00D0 */
- 0x85, 0xA0, 0x83, 0, 0x84, 0x86, 0x91, 0x87, /* 0x00E0 */
- 0x8A, 0x82, 0x88, 0x89, 0, 0xA1, 0, 0, /* 0x00E0 */
- 0x8C, 0, 0, 0xA2, 0x93, 0, 0x94, 0xF6, /* 0x00F0 */
- 0x9B, 0, 0xA3, 0x96, 0x81, 0x98, 0x95 /* 0x00F0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM861TOCHARTABEX_COUNT 75
-static ImplUniCharTabData const aImplIBM861ToCharTabEx[IBM861TOCHARTABEX_COUNT] =
-{
- { 0x0192, 0x9F, 0 },
- { 0x0393, 0xE2, 0 },
- { 0x0398, 0xE9, 0 },
- { 0x03A3, 0xE4, 0 },
- { 0x03A6, 0xE8, 0 },
- { 0x03A9, 0xEA, 0 },
- { 0x03B1, 0xE0, 0 },
- { 0x03B4, 0xEB, 0 },
- { 0x03B5, 0xEE, 0 },
- { 0x03C0, 0xE3, 0 },
- { 0x03C3, 0xE5, 0 },
- { 0x03C4, 0xE7, 0 },
- { 0x03C6, 0xED, 0 },
- { 0x207F, 0xFC, 0 },
- { 0x20A7, 0x9E, 0 },
- { 0x2219, 0xF9, 0 },
- { 0x221A, 0xFB, 0 },
- { 0x221E, 0xEC, 0 },
- { 0x2229, 0xEF, 0 },
- { 0x2248, 0xF7, 0 },
- { 0x2261, 0xF0, 0 },
- { 0x2264, 0xF3, 0 },
- { 0x2265, 0xF2, 0 },
- { 0x2310, 0xA9, 0 },
- { 0x2320, 0xF4, 0 },
- { 0x2321, 0xF5, 0 },
- { 0x2500, 0xC4, 0 },
- { 0x2502, 0xB3, 0 },
- { 0x250C, 0xDA, 0 },
- { 0x2510, 0xBF, 0 },
- { 0x2514, 0xC0, 0 },
- { 0x2518, 0xD9, 0 },
- { 0x251C, 0xC3, 0 },
- { 0x2524, 0xB4, 0 },
- { 0x252C, 0xC2, 0 },
- { 0x2534, 0xC1, 0 },
- { 0x253C, 0xC5, 0 },
- { 0x2550, 0xCD, 0 },
- { 0x2551, 0xBA, 0 },
- { 0x2552, 0xD5, 0 },
- { 0x2553, 0xD6, 0 },
- { 0x2554, 0xC9, 0 },
- { 0x2555, 0xB8, 0 },
- { 0x2556, 0xB7, 0 },
- { 0x2557, 0xBB, 0 },
- { 0x2558, 0xD4, 0 },
- { 0x2559, 0xD3, 0 },
- { 0x255A, 0xC8, 0 },
- { 0x255B, 0xBE, 0 },
- { 0x255C, 0xBD, 0 },
- { 0x255D, 0xBC, 0 },
- { 0x255E, 0xC6, 0 },
- { 0x255F, 0xC7, 0 },
- { 0x2560, 0xCC, 0 },
- { 0x2561, 0xB5, 0 },
- { 0x2562, 0xB6, 0 },
- { 0x2563, 0xB9, 0 },
- { 0x2564, 0xD1, 0 },
- { 0x2565, 0xD2, 0 },
- { 0x2566, 0xCB, 0 },
- { 0x2567, 0xCF, 0 },
- { 0x2568, 0xD0, 0 },
- { 0x2569, 0xCA, 0 },
- { 0x256A, 0xD8, 0 },
- { 0x256B, 0xD7, 0 },
- { 0x256C, 0xCE, 0 },
- { 0x2580, 0xDF, 0 },
- { 0x2584, 0xDC, 0 },
- { 0x2588, 0xDB, 0 },
- { 0x258C, 0xDD, 0 },
- { 0x2590, 0xDE, 0 },
- { 0x2591, 0xB0, 0 },
- { 0x2592, 0xB1, 0 },
- { 0x2593, 0xB2, 0 },
- { 0x25A0, 0xFE, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplIBM861ByteCvtData =
-{
- aImplIBM861ToUniTab,
- NULL,
- IBM861UNI_START, IBM861UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplIBM861ToCharTab,
- NULL,
- aImplIBM861ToCharTabEx,
- IBM861CHAR_START, IBM861CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- IBM861TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplIBM861TextEncodingData
- = { { &aImplIBM861ByteCvtData,
- ImplUpperCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 0,
- "iso8859-1",
- "IBM861",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* DOS/OS2, SCRIPT_LATIN, pc code page 861, mac encoding 37 */
-
-/* ======================================================================= */
-
-/* IBM-863 */
-/* Dos Standard CharSet for Canada-France */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/pc/cp863.txt from 04/24/96 Version 2.00 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM863UNI_START 0x80
-#define IBM863UNI_END 0xFF
-static sal_uInt16 const aImplIBM863ToUniTab[IBM863UNI_END - IBM863UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00C2, 0x00E0, 0x00B6, 0x00E7, /* 0x80 */
- 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x2017, 0x00C0, 0x00A7, /* 0x80 */
- 0x00C9, 0x00C8, 0x00CA, 0x00F4, 0x00CB, 0x00CF, 0x00FB, 0x00F9, /* 0x90 */
- 0x00A4, 0x00D4, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x00DB, 0x0192, /* 0x90 */
- 0x00A6, 0x00B4, 0x00F3, 0x00FA, 0x00A8, 0x00B8, 0x00B3, 0x00AF, /* 0xA0 */
- 0x00CE, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00BE, 0x00AB, 0x00BB, /* 0xA0 */
- 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
- 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
- 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
- 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
- 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
- 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
- 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, /* 0xE0 */
- 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, /* 0xE0 */
- 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, /* 0xF0 */
- 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM863CHAR_START 0x00A0
-#define IBM863CHAR_END 0x00FC
-static sal_uChar const aImplIBM863ToCharTab[IBM863CHAR_END - IBM863CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFF, 0, 0x9B, 0x9C, 0x98, 0, 0xA0, 0x8F, /* 0x00A0 */
- 0xA4, 0, 0, 0xAE, 0xAA, 0, 0, 0xA7, /* 0x00A0 */
- 0xF8, 0xF1, 0xFD, 0xA6, 0xA1, 0xE6, 0x86, 0xFA, /* 0x00B0 */
- 0xA5, 0, 0, 0xAF, 0xAC, 0xAB, 0xAD, 0, /* 0x00B0 */
- 0x8E, 0, 0x84, 0, 0, 0, 0, 0x80, /* 0x00C0 */
- 0x91, 0x90, 0x92, 0x94, 0, 0, 0xA8, 0x95, /* 0x00C0 */
- 0, 0, 0, 0, 0x99, 0, 0, 0, /* 0x00D0 */
- 0, 0x9D, 0, 0x9E, 0x9A, 0, 0, 0xE1, /* 0x00D0 */
- 0x85, 0, 0x83, 0, 0, 0, 0, 0x87, /* 0x00E0 */
- 0x8A, 0x82, 0x88, 0x89, 0, 0, 0x8C, 0x8B, /* 0x00E0 */
- 0, 0, 0, 0xA2, 0x93, 0, 0, 0xF6, /* 0x00F0 */
- 0, 0x97, 0xA3, 0x96, 0x81 /* 0x00F0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM863TOCHARTABEX_COUNT 75
-static ImplUniCharTabData const aImplIBM863ToCharTabEx[IBM863TOCHARTABEX_COUNT] =
-{
- { 0x0192, 0x9F, 0 },
- { 0x0393, 0xE2, 0 },
- { 0x0398, 0xE9, 0 },
- { 0x03A3, 0xE4, 0 },
- { 0x03A6, 0xE8, 0 },
- { 0x03A9, 0xEA, 0 },
- { 0x03B1, 0xE0, 0 },
- { 0x03B4, 0xEB, 0 },
- { 0x03B5, 0xEE, 0 },
- { 0x03C0, 0xE3, 0 },
- { 0x03C3, 0xE5, 0 },
- { 0x03C4, 0xE7, 0 },
- { 0x03C6, 0xED, 0 },
- { 0x2017, 0x8D, 0 },
- { 0x207F, 0xFC, 0 },
- { 0x2219, 0xF9, 0 },
- { 0x221A, 0xFB, 0 },
- { 0x221E, 0xEC, 0 },
- { 0x2229, 0xEF, 0 },
- { 0x2248, 0xF7, 0 },
- { 0x2261, 0xF0, 0 },
- { 0x2264, 0xF3, 0 },
- { 0x2265, 0xF2, 0 },
- { 0x2310, 0xA9, 0 },
- { 0x2320, 0xF4, 0 },
- { 0x2321, 0xF5, 0 },
- { 0x2500, 0xC4, 0 },
- { 0x2502, 0xB3, 0 },
- { 0x250C, 0xDA, 0 },
- { 0x2510, 0xBF, 0 },
- { 0x2514, 0xC0, 0 },
- { 0x2518, 0xD9, 0 },
- { 0x251C, 0xC3, 0 },
- { 0x2524, 0xB4, 0 },
- { 0x252C, 0xC2, 0 },
- { 0x2534, 0xC1, 0 },
- { 0x253C, 0xC5, 0 },
- { 0x2550, 0xCD, 0 },
- { 0x2551, 0xBA, 0 },
- { 0x2552, 0xD5, 0 },
- { 0x2553, 0xD6, 0 },
- { 0x2554, 0xC9, 0 },
- { 0x2555, 0xB8, 0 },
- { 0x2556, 0xB7, 0 },
- { 0x2557, 0xBB, 0 },
- { 0x2558, 0xD4, 0 },
- { 0x2559, 0xD3, 0 },
- { 0x255A, 0xC8, 0 },
- { 0x255B, 0xBE, 0 },
- { 0x255C, 0xBD, 0 },
- { 0x255D, 0xBC, 0 },
- { 0x255E, 0xC6, 0 },
- { 0x255F, 0xC7, 0 },
- { 0x2560, 0xCC, 0 },
- { 0x2561, 0xB5, 0 },
- { 0x2562, 0xB6, 0 },
- { 0x2563, 0xB9, 0 },
- { 0x2564, 0xD1, 0 },
- { 0x2565, 0xD2, 0 },
- { 0x2566, 0xCB, 0 },
- { 0x2567, 0xCF, 0 },
- { 0x2568, 0xD0, 0 },
- { 0x2569, 0xCA, 0 },
- { 0x256A, 0xD8, 0 },
- { 0x256B, 0xD7, 0 },
- { 0x256C, 0xCE, 0 },
- { 0x2580, 0xDF, 0 },
- { 0x2584, 0xDC, 0 },
- { 0x2588, 0xDB, 0 },
- { 0x258C, 0xDD, 0 },
- { 0x2590, 0xDE, 0 },
- { 0x2591, 0xB0, 0 },
- { 0x2592, 0xB1, 0 },
- { 0x2593, 0xB2, 0 },
- { 0x25A0, 0xFE, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplIBM863ByteCvtData =
-{
- aImplIBM863ToUniTab,
- NULL,
- IBM863UNI_START, IBM863UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplIBM863ToCharTab,
- NULL,
- aImplIBM863ToCharTabEx,
- IBM863CHAR_START, IBM863CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- IBM863TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplIBM863TextEncodingData
- = { { &aImplIBM863ByteCvtData,
- ImplUpperCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 0,
- "iso8859-1",
- "IBM863",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* DOS/OS2, SCRIPT_LATIN, pc code page 863 */
-
-/* ======================================================================= */
-
-/* IBM-865 */
-/* Dos Standard CharSet for Nordic */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/pc/cp865.txt from 04/24/96 Version 2.00 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM865UNI_START 0x80
-#define IBM865UNI_END 0xFF
-static sal_uInt16 const aImplIBM865ToUniTab[IBM865UNI_END - IBM865UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, /* 0x80 */
- 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, /* 0x80 */
- 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, /* 0x90 */
- 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192, /* 0x90 */
- 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, /* 0xA0 */
- 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00A4, /* 0xA0 */
- 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
- 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
- 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
- 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
- 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
- 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
- 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, /* 0xE0 */
- 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, /* 0xE0 */
- 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, /* 0xF0 */
- 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM865CHAR_START 0x00A0
-#define IBM865CHAR_END 0x00FF
-static sal_uChar const aImplIBM865ToCharTab[IBM865CHAR_END - IBM865CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFF, 0xAD, 0, 0x9C, 0xAF, 0, 0, 0, /* 0x00A0 */
- 0, 0, 0xA6, 0xAE, 0xAA, 0, 0, 0, /* 0x00A0 */
- 0xF8, 0xF1, 0xFD, 0, 0, 0xE6, 0, 0xFA, /* 0x00B0 */
- 0, 0, 0xA7, 0, 0xAC, 0xAB, 0, 0xA8, /* 0x00B0 */
- 0, 0, 0, 0, 0x8E, 0x8F, 0x92, 0x80, /* 0x00C0 */
- 0, 0x90, 0, 0, 0, 0, 0, 0, /* 0x00C0 */
- 0, 0xA5, 0, 0, 0, 0, 0x99, 0, /* 0x00D0 */
- 0x9D, 0, 0, 0, 0x9A, 0, 0, 0xE1, /* 0x00D0 */
- 0x85, 0xA0, 0x83, 0, 0x84, 0x86, 0x91, 0x87, /* 0x00E0 */
- 0x8A, 0x82, 0x88, 0x89, 0x8D, 0xA1, 0x8C, 0x8B, /* 0x00E0 */
- 0, 0xA4, 0x95, 0xA2, 0x93, 0, 0x94, 0xF6, /* 0x00F0 */
- 0x9B, 0x97, 0xA3, 0x96, 0x81, 0, 0, 0x98 /* 0x00F0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define IBM865TOCHARTABEX_COUNT 75
-static ImplUniCharTabData const aImplIBM865ToCharTabEx[IBM865TOCHARTABEX_COUNT] =
-{
- { 0x0192, 0x9F, 0 },
- { 0x0393, 0xE2, 0 },
- { 0x0398, 0xE9, 0 },
- { 0x03A3, 0xE4, 0 },
- { 0x03A6, 0xE8, 0 },
- { 0x03A9, 0xEA, 0 },
- { 0x03B1, 0xE0, 0 },
- { 0x03B4, 0xEB, 0 },
- { 0x03B5, 0xEE, 0 },
- { 0x03C0, 0xE3, 0 },
- { 0x03C3, 0xE5, 0 },
- { 0x03C4, 0xE7, 0 },
- { 0x03C6, 0xED, 0 },
- { 0x207F, 0xFC, 0 },
- { 0x20A7, 0x9E, 0 },
- { 0x2219, 0xF9, 0 },
- { 0x221A, 0xFB, 0 },
- { 0x221E, 0xEC, 0 },
- { 0x2229, 0xEF, 0 },
- { 0x2248, 0xF7, 0 },
- { 0x2261, 0xF0, 0 },
- { 0x2264, 0xF3, 0 },
- { 0x2265, 0xF2, 0 },
- { 0x2310, 0xA9, 0 },
- { 0x2320, 0xF4, 0 },
- { 0x2321, 0xF5, 0 },
- { 0x2500, 0xC4, 0 },
- { 0x2502, 0xB3, 0 },
- { 0x250C, 0xDA, 0 },
- { 0x2510, 0xBF, 0 },
- { 0x2514, 0xC0, 0 },
- { 0x2518, 0xD9, 0 },
- { 0x251C, 0xC3, 0 },
- { 0x2524, 0xB4, 0 },
- { 0x252C, 0xC2, 0 },
- { 0x2534, 0xC1, 0 },
- { 0x253C, 0xC5, 0 },
- { 0x2550, 0xCD, 0 },
- { 0x2551, 0xBA, 0 },
- { 0x2552, 0xD5, 0 },
- { 0x2553, 0xD6, 0 },
- { 0x2554, 0xC9, 0 },
- { 0x2555, 0xB8, 0 },
- { 0x2556, 0xB7, 0 },
- { 0x2557, 0xBB, 0 },
- { 0x2558, 0xD4, 0 },
- { 0x2559, 0xD3, 0 },
- { 0x255A, 0xC8, 0 },
- { 0x255B, 0xBE, 0 },
- { 0x255C, 0xBD, 0 },
- { 0x255D, 0xBC, 0 },
- { 0x255E, 0xC6, 0 },
- { 0x255F, 0xC7, 0 },
- { 0x2560, 0xCC, 0 },
- { 0x2561, 0xB5, 0 },
- { 0x2562, 0xB6, 0 },
- { 0x2563, 0xB9, 0 },
- { 0x2564, 0xD1, 0 },
- { 0x2565, 0xD2, 0 },
- { 0x2566, 0xCB, 0 },
- { 0x2567, 0xCF, 0 },
- { 0x2568, 0xD0, 0 },
- { 0x2569, 0xCA, 0 },
- { 0x256A, 0xD8, 0 },
- { 0x256B, 0xD7, 0 },
- { 0x256C, 0xCE, 0 },
- { 0x2580, 0xDF, 0 },
- { 0x2584, 0xDC, 0 },
- { 0x2588, 0xDB, 0 },
- { 0x258C, 0xDD, 0 },
- { 0x2590, 0xDE, 0 },
- { 0x2591, 0xB0, 0 },
- { 0x2592, 0xB1, 0 },
- { 0x2593, 0xB2, 0 },
- { 0x25A0, 0xFE, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplIBM865ByteCvtData =
-{
- aImplIBM865ToUniTab,
- NULL,
- IBM865UNI_START, IBM865UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplIBM865ToCharTab,
- NULL,
- aImplIBM865ToCharTabEx,
- IBM865CHAR_START, IBM865CHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- IBM865TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplIBM865TextEncodingData
- = { { &aImplIBM865ByteCvtData,
- ImplUpperCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 0,
- "iso8859-1",
- "IBM865",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* DOS/OS2, SCRIPT_LATIN, pc code page 865 */
-
-/* ======================================================================= */
-
-/* MS-1252 */
-/* Windows Standard CharSet (ANSI) for Western Script */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* Convert-Tables: mappings/vendors/micsft/windows/cp1252.txt from 04/15/98 Version 2.01 */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1252UNI_START 0x80
-#define MS1252UNI_END 0xFF
-static sal_uInt16 const aImplMS1252ToUniTab[MS1252UNI_END - MS1252UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x20AC, 0, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
- 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0, 0x017D, 0, /* 0x80 */
- 0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
- 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0, 0x017E, 0x0178, /* 0x90 */
- 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */
- 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0xA0 */
- 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
- 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, /* 0xB0 */
- 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, /* 0xC0 */
- 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */
- 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */
- 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, /* 0xD0 */
- 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, /* 0xE0 */
- 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */
- 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */
- 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define MS1252TOCHARTABEX_COUNT 27
-static ImplUniCharTabData const aImplMS1252ToCharTabEx[MS1252TOCHARTABEX_COUNT] =
-{
- { 0x0152, 0x8C, 0 },
- { 0x0153, 0x9C, 0 },
- { 0x0160, 0x8A, 0 },
- { 0x0161, 0x9A, 0 },
- { 0x0178, 0x9F, 0 },
- { 0x017D, 0x8E, 0 },
- { 0x017E, 0x9E, 0 },
- { 0x0192, 0x83, 0 },
- { 0x02C6, 0x88, 0 },
- { 0x02DC, 0x98, 0 },
- { 0x2013, 0x96, 0 },
- { 0x2014, 0x97, 0 },
- { 0x2018, 0x91, 0 },
- { 0x2019, 0x92, 0 },
- { 0x201A, 0x82, 0 },
- { 0x201C, 0x93, 0 },
- { 0x201D, 0x94, 0 },
- { 0x201E, 0x84, 0 },
- { 0x2020, 0x86, 0 },
- { 0x2021, 0x87, 0 },
- { 0x2022, 0x95, 0 },
- { 0x2026, 0x85, 0 },
- { 0x2030, 0x89, 0 },
- { 0x2039, 0x8B, 0 },
- { 0x203A, 0x9B, 0 },
- { 0x20AC, 0x80, 0 },
- { 0x2122, 0x99, 0 },
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplMS1252ByteCvtData =
-{
- aImplMS1252ToUniTab,
- NULL,
- MS1252UNI_START, MS1252UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplA0FFSameToCharTab,
- NULL,
- aImplMS1252ToCharTabEx,
- SAMEA0FFCHAR_START, SAMEA0FFCHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- MS1252TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplMS1252TextEncodingData
- = { { &aImplMS1252ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 0,
- "iso8859-1",
- "windows-1252",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* WIN, SCRIPT_LATIN, pc code page 850 */
-
-/* ======================================================================= */
-
-/* ISO-8859-1 */
-/* Unix Standard CharSet (Latin1) for Western Script */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */
-/* Convert-Tables: mappings/iso8859/8859-1.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
-/* Last-Changes from us: */
-
-#define ISO88591UNI_START 0xA0
-#define ISO88591UNI_END 0xFF
-static sal_uInt16 const aImplISO88591ToUniTab[ISO88591UNI_END - ISO88591UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */
- 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0xA0 */
- 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
- 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, /* 0xB0 */
- 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, /* 0xC0 */
- 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */
- 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */
- 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, /* 0xD0 */
- 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, /* 0xE0 */
- 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */
- 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */
- 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplISO88591ByteCvtData =
-{
- aImplISO88591ToUniTab,
- aImpl8090SameToUniTab,
- ISO88591UNI_START, ISO88591UNI_END,
- SAME8090UNI_START, SAME8090UNI_END,
- aImplA0FFSameToCharTab,
- aImpl8090SameToCharTab,
- NULL,
- SAMEA0FFCHAR_START, SAMEA0FFCHAR_END,
- SAME8090CHAR_START, SAME8090CHAR_END,
- 0
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplISO88591TextEncodingData
- = { { &aImplISO88591ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 0,
- "iso8859-1",
- "iso-8859-1",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_LATIN, pc code page 850 */
-
-/* ======================================================================= */
-
-/* ISO-8859-14 */
-/* ungefaehr wie Latin1 */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */
-/* Convert-Tables: mappings/iso8859/8859-14.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
-/* Last-Changes from us: */
-
-#define ISO885914UNI_START 0xA0
-#define ISO885914UNI_END 0xFF
-static sal_uInt16 const aImplISO885914ToUniTab[ISO885914UNI_END - ISO885914UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00A0, 0x1E02, 0x1E03, 0x00A3, 0x010A, 0x010B, 0x1E0A, 0x00A7, /* 0xA0 */
- 0x1E80, 0x00A9, 0x1E82, 0x1E0B, 0x1EF2, 0x00AD, 0x00AE, 0x0178, /* 0xA0 */
- 0x1E1E, 0x1E1F, 0x0120, 0x0121, 0x1E40, 0x1E41, 0x00B6, 0x1E56, /* 0xB0 */
- 0x1E81, 0x1E57, 0x1E83, 0x1E60, 0x1EF3, 0x1E84, 0x1E85, 0x1E61, /* 0xB0 */
- 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, /* 0xC0 */
- 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */
- 0x0174, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x1E6A, /* 0xD0 */
- 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x0176, 0x00DF, /* 0xD0 */
- 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, /* 0xE0 */
- 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */
- 0x0175, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x1E6B, /* 0xF0 */
- 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x0177, 0x00FF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define ISO885914CHAR_START 0x00C0
-#define ISO885914CHAR_END 0x00FF
-static sal_uChar const aImplISO885914ToCharTab[ISO885914CHAR_END - ISO885914CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x00C0 */
- 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x00C0 */
- 0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0, /* 0x00D0 */
- 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0, 0xDF, /* 0x00D0 */
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x00E0 */
- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x00E0 */
- 0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0, /* 0x00F0 */
- 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0, 0xFF /* 0x00F0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define ISO885914TOCHARTABEX_COUNT 38
-static ImplUniCharTabData const aImplISO885914ToCharTabEx[ISO885914TOCHARTABEX_COUNT] =
-{
- { 0x00A0, 0xA0, 0 },
- { 0x00A3, 0xA3, 0 },
- { 0x00A7, 0xA7, 0 },
- { 0x00A9, 0xA9, 0 },
- { 0x00AD, 0xAD, 0 },
- { 0x00AE, 0xAE, 0 },
- { 0x00B6, 0xB6, 0 },
- { 0x010A, 0xA4, 0 },
- { 0x010B, 0xA5, 0 },
- { 0x0120, 0xB2, 0 },
- { 0x0121, 0xB3, 0 },
- { 0x0174, 0xD0, 0 },
- { 0x0175, 0xF0, 0 },
- { 0x0176, 0xDE, 0 },
- { 0x0177, 0xFE, 0 },
- { 0x0178, 0xAF, 0 },
- { 0x1E02, 0xA1, 0 },
- { 0x1E03, 0xA2, 0 },
- { 0x1E0A, 0xA6, 0 },
- { 0x1E0B, 0xAB, 0 },
- { 0x1E1E, 0xB0, 0 },
- { 0x1E1F, 0xB1, 0 },
- { 0x1E40, 0xB4, 0 },
- { 0x1E41, 0xB5, 0 },
- { 0x1E56, 0xB7, 0 },
- { 0x1E57, 0xB9, 0 },
- { 0x1E60, 0xBB, 0 },
- { 0x1E61, 0xBF, 0 },
- { 0x1E6A, 0xD7, 0 },
- { 0x1E6B, 0xF7, 0 },
- { 0x1E80, 0xA8, 0 },
- { 0x1E81, 0xB8, 0 },
- { 0x1E82, 0xAA, 0 },
- { 0x1E83, 0xBA, 0 },
- { 0x1E84, 0xBD, 0 },
- { 0x1E85, 0xBE, 0 },
- { 0x1EF2, 0xAC, 0 },
- { 0x1EF3, 0xBC, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplISO885914ByteCvtData =
-{
- aImplISO885914ToUniTab,
- aImpl8090SameToUniTab,
- ISO885914UNI_START, ISO885914UNI_END,
- SAME8090UNI_START, SAME8090UNI_END,
- aImplISO885914ToCharTab,
- aImpl8090SameToCharTab,
- aImplISO885914ToCharTabEx,
- ISO885914CHAR_START, ISO885914CHAR_END,
- SAME8090CHAR_START, SAME8090CHAR_END,
- ISO885914TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplISO885914TextEncodingData
- = { { &aImplISO885914ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 0,
- "iso8859-14",
- "iso-8859-14",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_LATIN, pc code page 850 */
-
-/* ======================================================================= */
-
-/* ISO-8859-15 */
-/* ungefaehr wie Latin1, jedoch mit Euro (ehemaliges CURRENCY-Symbol an A4) */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */
-/* Convert-Tables: mappings/iso8859/8859-15.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
-/* Last-Changes from us: */
-
-#define ISO885915UNI_START 0xA0
-#define ISO885915UNI_END 0xFF
-static sal_uInt16 const aImplISO885915ToUniTab[ISO885915UNI_END - ISO885915UNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AC, 0x00A5, 0x0160, 0x00A7, /* 0xA0 */
- 0x0161, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0xA0 */
- 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x017D, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
- 0x017E, 0x00B9, 0x00BA, 0x00BB, 0x0152, 0x0153, 0x0178, 0x00BF, /* 0xB0 */
- 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, /* 0xC0 */
- 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */
- 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */
- 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, /* 0xD0 */
- 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, /* 0xE0 */
- 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */
- 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */
- 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define ISO885915CHAR_START 0x00A0
-#define ISO885915CHAR_END 0x00FF
-static sal_uChar const aImplISO885915ToCharTab[ISO885915CHAR_END - ISO885915CHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA0, 0xA1, 0xA2, 0xA3, 0, 0xA5, 0, 0xA7, /* 0x00A0 */
- 0, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, /* 0x00A0 */
- 0xB0, 0xB1, 0xB2, 0xB3, 0, 0xB5, 0xB6, 0xB7, /* 0x00B0 */
- 0, 0xB9, 0xBA, 0xBB, 0, 0, 0, 0xBF, /* 0x00B0 */
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x00C0 */
- 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x00C0 */
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x00D0 */
- 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, /* 0x00D0 */
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x00E0 */
- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x00E0 */
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x00F0 */
- 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF /* 0x00F0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define ISO885915TOCHARTABEX_COUNT 8
-static ImplUniCharTabData const aImplISO885915ToCharTabEx[ISO885915TOCHARTABEX_COUNT] =
-{
- { 0x0152, 0xBC, 0 },
- { 0x0153, 0xBD, 0 },
- { 0x0160, 0xA6, 0 },
- { 0x0161, 0xA8, 0 },
- { 0x0178, 0xBE, 0 },
- { 0x017D, 0xB4, 0 },
- { 0x017E, 0xB8, 0 },
- { 0x20AC, 0xA4, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplISO885915ByteCvtData =
-{
- aImplISO885915ToUniTab,
- aImpl8090SameToUniTab,
- ISO885915UNI_START, ISO885915UNI_END,
- SAME8090UNI_START, SAME8090UNI_END,
- aImplISO885915ToCharTab,
- aImpl8090SameToCharTab,
- aImplISO885915ToCharTabEx,
- ISO885915CHAR_START, ISO885915CHAR_END,
- SAME8090CHAR_START, SAME8090CHAR_END,
- ISO885915TOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplISO885915TextEncodingData
- = { { &aImplISO885915ByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 0,
- "iso8859-15",
- "iso-8859-15",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_LATIN, pc code page 850 */
-
-/* ======================================================================= */
-
-/* APPLE-Iceland */
-/* Apple CharSet for Iceland */
-/* 1-Byte, 0x00-0x7F ASCII, jedoch eigentich Sonderzeichen zwischen 0x00-0x1F */
-/* die wir aber nicht beruecksichtigen */
-/* Convert-Tables: mappings/vendors/apple/iceland.txt from 02/05/98 */
-/* Last-Changes from us: */
-
-#define APPLEICELANDUNI_START 0x80
-#define APPLEICELANDUNI_END 0xFF
-static sal_uInt16 const aImplAPPLEICELANDToUniTab[APPLEICELANDUNI_END - APPLEICELANDUNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, /* 0x80 */
- 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, /* 0x80 */
- 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, /* 0x90 */
- 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, /* 0x90 */
- 0x00DD, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, /* 0xA0 */
- 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8, /* 0xA0 */
- 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211, /* 0xB0 */
- 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x00E6, 0x00F8, /* 0xB0 */
- 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, /* 0xC0 */
- 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, /* 0xC0 */
- 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, /* 0xD0 */
- 0x00FF, 0x0178, 0x2044, 0x00A4, 0x00D0, 0x00F0, 0x00DE, 0x00FE, /* 0xD0 */
- 0x00FD, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1, /* 0xE0 */
- 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, /* 0xE0 */
- 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC, /* 0xF0 */
- 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define APPLEICELANDCHAR_START 0x00A0
-#define APPLEICELANDCHAR_END 0x00FF
-static sal_uChar const aImplAPPLEICELANDToCharTab[APPLEICELANDCHAR_END - APPLEICELANDCHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCA, 0xC1, 0xA2, 0xA3, 0xDB, 0xB4, 0, 0xA4, /* 0x00A0 */
- 0xAC, 0xA9, 0xBB, 0xC7, 0xC2, 0, 0xA8, 0xF8, /* 0x00A0 */
- 0xA1, 0xB1, 0, 0, 0xAB, 0xB5, 0xA6, 0xE1, /* 0x00B0 */
- 0xFC, 0, 0xBC, 0xC8, 0, 0, 0, 0xC0, /* 0x00B0 */
- 0xCB, 0xE7, 0xE5, 0xCC, 0x80, 0x81, 0xAE, 0x82, /* 0x00C0 */
- 0xE9, 0x83, 0xE6, 0xE8, 0xED, 0xEA, 0xEB, 0xEC, /* 0x00C0 */
- 0xDC, 0x84, 0xF1, 0xEE, 0xEF, 0xCD, 0x85, 0, /* 0x00D0 */
- 0xAF, 0xF4, 0xF2, 0xF3, 0x86, 0xA0, 0xDE, 0xA7, /* 0x00D0 */
- 0x88, 0x87, 0x89, 0x8B, 0x8A, 0x8C, 0xBE, 0x8D, /* 0x00E0 */
- 0x8F, 0x8E, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0x00E0 */
- 0xDD, 0x96, 0x98, 0x97, 0x99, 0x9B, 0x9A, 0xD6, /* 0x00F0 */
- 0xBF, 0x9D, 0x9C, 0x9E, 0x9F, 0xE0, 0xDF, 0xD8 /* 0x00F0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define APPLEICELANDTOCHARTABEX_COUNT 41
-static ImplUniCharTabData const aImplAPPLEICELANDToCharTabEx[APPLEICELANDTOCHARTABEX_COUNT] =
-{
- { 0x0131, 0xF5, 0 },
- { 0x0152, 0xCE, 0 },
- { 0x0153, 0xCF, 0 },
- { 0x0178, 0xD9, 0 },
- { 0x0192, 0xC4, 0 },
- { 0x02C6, 0xF6, 0 },
- { 0x02C7, 0xFF, 0 },
- { 0x02D8, 0xF9, 0 },
- { 0x02D9, 0xFA, 0 },
- { 0x02DA, 0xFB, 0 },
- { 0x02DB, 0xFE, 0 },
- { 0x02DC, 0xF7, 0 },
- { 0x02DD, 0xFD, 0 },
- { 0x03A9, 0xBD, 0 },
- { 0x03C0, 0xB9, 0 },
- { 0x2013, 0xD0, 0 },
- { 0x2014, 0xD1, 0 },
- { 0x2018, 0xD4, 0 },
- { 0x2019, 0xD5, 0 },
- { 0x201A, 0xE2, 0 },
- { 0x201C, 0xD2, 0 },
- { 0x201D, 0xD3, 0 },
- { 0x201E, 0xE3, 0 },
- { 0x2022, 0xA5, 0 },
- { 0x2026, 0xC9, 0 },
- { 0x2030, 0xE4, 0 },
- { 0x2044, 0xDA, 0 },
- { 0x2122, 0xAA, 0 },
- { 0x2202, 0xB6, 0 },
- { 0x2206, 0xC6, 0 },
- { 0x220F, 0xB8, 0 },
- { 0x2211, 0xB7, 0 },
- { 0x221A, 0xC3, 0 },
- { 0x221E, 0xB0, 0 },
- { 0x222B, 0xBA, 0 },
- { 0x2248, 0xC5, 0 },
- { 0x2260, 0xAD, 0 },
- { 0x2264, 0xB2, 0 },
- { 0x2265, 0xB3, 0 },
- { 0x25CA, 0xD7, 0 },
- { 0xF8FF, 0xF0, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplAPPLEICELANDByteCvtData =
-{
- aImplAPPLEICELANDToUniTab,
- NULL,
- APPLEICELANDUNI_START, APPLEICELANDUNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplAPPLEICELANDToCharTab,
- NULL,
- aImplAPPLEICELANDToCharTabEx,
- APPLEICELANDCHAR_START, APPLEICELANDCHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- APPLEICELANDTOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplAPPLEICELANDTextEncodingData
- = { { &aImplAPPLEICELANDByteCvtData,
- ImplUpperCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 0,
- "iso8859-1",
- "iso-8859-1",
- RTL_TEXTENCODING_INFO_ASCII };
- /* MAC, SCRIPT_LATIN, pc code page 861, mac encoding 37 */
-
-/* ======================================================================= */
-
-/* APPLE-Roman */
-/* Standard Apple CharSet for Western */
-/* 1-Byte, 0x00-0x7F ASCII, jedoch eigentich Sonderzeichen zwischen 0x00-0x1F */
-/* die wir aber nicht beruecksichtigen */
-/* Convert-Tables: mappings/vendors/apple/roman.txt from 08/18/98 */
-/* Last-Changes from us: */
-
-#define APPLEROMANUNI_START 0x80
-#define APPLEROMANUNI_END 0xFF
-static sal_uInt16 const aImplAPPLEROMANToUniTab[APPLEROMANUNI_END - APPLEROMANUNI_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, /* 0x80 */
- 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, /* 0x80 */
- 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, /* 0x90 */
- 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, /* 0x90 */
- 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, /* 0xA0 */
- 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8, /* 0xA0 */
- 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211, /* 0xB0 */
- 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x00E6, 0x00F8, /* 0xB0 */
- 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, /* 0xC0 */
- 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, /* 0xC0 */
- 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, /* 0xD0 */
- 0x00FF, 0x0178, 0x2044, 0x20AC, 0x2039, 0x203A, 0xFB01, 0xFB02, /* 0xD0 */
- 0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1, /* 0xE0 */
- 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, /* 0xE0 */
- 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC, /* 0xF0 */
- 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define APPLEROMANCHAR_START 0x00A0
-#define APPLEROMANCHAR_END 0x00FF
-static sal_uChar const aImplAPPLEROMANToCharTab[APPLEROMANCHAR_END - APPLEROMANCHAR_START + 1] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCA, 0xC1, 0xA2, 0xA3, 0, 0xB4, 0, 0xA4, /* 0x00A0 */
- 0xAC, 0xA9, 0xBB, 0xC7, 0xC2, 0, 0xA8, 0xF8, /* 0x00A0 */
- 0xA1, 0xB1, 0, 0, 0xAB, 0xB5, 0xA6, 0xE1, /* 0x00B0 */
- 0xFC, 0, 0xBC, 0xC8, 0, 0, 0, 0xC0, /* 0x00B0 */
- 0xCB, 0xE7, 0xE5, 0xCC, 0x80, 0x81, 0xAE, 0x82, /* 0x00C0 */
- 0xE9, 0x83, 0xE6, 0xE8, 0xED, 0xEA, 0xEB, 0xEC, /* 0x00C0 */
- 0, 0x84, 0xF1, 0xEE, 0xEF, 0xCD, 0x85, 0, /* 0x00D0 */
- 0xAF, 0xF4, 0xF2, 0xF3, 0x86, 0, 0, 0xA7, /* 0x00D0 */
- 0x88, 0x87, 0x89, 0x8B, 0x8A, 0x8C, 0xBE, 0x8D, /* 0x00E0 */
- 0x8F, 0x8E, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0x00E0 */
- 0, 0x96, 0x98, 0x97, 0x99, 0x9B, 0x9A, 0xD6, /* 0x00F0 */
- 0xBF, 0x9D, 0x9C, 0x9E, 0x9F, 0, 0, 0xD8 /* 0x00F0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-#define APPLEROMANTOCHARTABEX_COUNT 48
-static ImplUniCharTabData const aImplAPPLEROMANToCharTabEx[APPLEROMANTOCHARTABEX_COUNT] =
-{
- { 0x0131, 0xF5, 0 },
- { 0x0152, 0xCE, 0 },
- { 0x0153, 0xCF, 0 },
- { 0x0178, 0xD9, 0 },
- { 0x0192, 0xC4, 0 },
- { 0x02C6, 0xF6, 0 },
- { 0x02C7, 0xFF, 0 },
- { 0x02D8, 0xF9, 0 },
- { 0x02D9, 0xFA, 0 },
- { 0x02DA, 0xFB, 0 },
- { 0x02DB, 0xFE, 0 },
- { 0x02DC, 0xF7, 0 },
- { 0x02DD, 0xFD, 0 },
- { 0x03A9, 0xBD, 0 },
- { 0x03C0, 0xB9, 0 },
- { 0x2013, 0xD0, 0 },
- { 0x2014, 0xD1, 0 },
- { 0x2018, 0xD4, 0 },
- { 0x2019, 0xD5, 0 },
- { 0x201A, 0xE2, 0 },
- { 0x201C, 0xD2, 0 },
- { 0x201D, 0xD3, 0 },
- { 0x201E, 0xE3, 0 },
- { 0x2020, 0xA0, 0 },
- { 0x2021, 0xE0, 0 },
- { 0x2022, 0xA5, 0 },
- { 0x2026, 0xC9, 0 },
- { 0x2030, 0xE4, 0 },
- { 0x2039, 0xDC, 0 },
- { 0x203A, 0xDD, 0 },
- { 0x2044, 0xDA, 0 },
- { 0x20AC, 0xDB, 0 },
- { 0x2122, 0xAA, 0 },
- { 0x2202, 0xB6, 0 },
- { 0x2206, 0xC6, 0 },
- { 0x220F, 0xB8, 0 },
- { 0x2211, 0xB7, 0 },
- { 0x221A, 0xC3, 0 },
- { 0x221E, 0xB0, 0 },
- { 0x222B, 0xBA, 0 },
- { 0x2248, 0xC5, 0 },
- { 0x2260, 0xAD, 0 },
- { 0x2264, 0xB2, 0 },
- { 0x2265, 0xB3, 0 },
- { 0x25CA, 0xD7, 0 },
- { 0xF8FF, 0xF0, 0 },
- { 0xFB01, 0xDE, 0 },
- { 0xFB02, 0xDF, 0 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplAPPLEROMANByteCvtData =
-{
- aImplAPPLEROMANToUniTab,
- NULL,
- APPLEROMANUNI_START, APPLEROMANUNI_END,
- NOTABUNI_START, NOTABUNI_END,
- aImplAPPLEROMANToCharTab,
- NULL,
- aImplAPPLEROMANToCharTabEx,
- APPLEROMANCHAR_START, APPLEROMANCHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- APPLEROMANTOCHARTABEX_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplAPPLEROMANTextEncodingData
- = { { &aImplAPPLEROMANByteCvtData,
- ImplUpperCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 77,
- "iso8859-1",
- "macintosh",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
- /* MAC, SCRIPT_LATIN, pc code page 850 */
-
-/* ======================================================================= */
-
-/* US-ASCII */
-/* 7-Bit ASCII */
-/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
-/* For the import we use ISO-8859-1 with MS extension (MS-1252), because */
-/* when the 8-Bit is set, the chance, that this is a ISO-8859-1 character */
-/* is the greatest. For the export all chars greater than 127 are not */
-/* converted and are replaced by the replacement character. */
-/* Last-Changes from us: */
-
-/* ----------------------------------------------------------------------- */
-
-static ImplByteConvertData const aImplUSASCIIByteCvtData =
-{
- aImplMS1252ToUniTab,
- NULL,
- MS1252UNI_START, MS1252UNI_END,
- NOTABUNI_START, NOTABUNI_END,
- NULL,
- NULL,
- NULL,
- NOTABCHAR_START, NOTABCHAR_END,
- NOTABCHAR_START, NOTABCHAR_END,
- 0
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplUSASCIITextEncodingData
- = { { &aImplUSASCIIByteCvtData,
- ImplCharToUnicode,
- ImplUnicodeToChar,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 0,
- "iso8859-1",
- "us-ascii",
- RTL_TEXTENCODING_INFO_ASCII
- | RTL_TEXTENCODING_INFO_7BIT
- | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_LATIN, pc code page 437 */
diff --git a/sal/textenc/tcvtmb.c b/sal/textenc/tcvtmb.c
deleted file mode 100644
index ea7a5dfc0..000000000
--- a/sal/textenc/tcvtmb.c
+++ /dev/null
@@ -1,695 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "tenchelp.h"
-#include "unichars.h"
-#include "rtl/textcvt.h"
-
-/* ======================================================================= */
-
-/* DBCS to Unicode conversion routine use a lead table for the first byte, */
-/* where we determine the trail table or for single byte chars the unicode */
-/* value. We have for all lead byte a separate table, because we can */
-/* then share many tables for diffrent charset encodings. */
-
-/* ======================================================================= */
-
-sal_Size ImplDBCSToUnicode( const ImplTextConverterData* pData, void* pContext,
- const sal_Char* pSrcBuf, sal_Size nSrcBytes,
- sal_Unicode* pDestBuf, sal_Size nDestChars,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtBytes )
-{
- sal_uChar cLead;
- sal_uChar cTrail;
- sal_Unicode cConv;
- const ImplDBCSToUniLeadTab* pLeadEntry;
- const ImplDBCSConvertData* pConvertData = (const ImplDBCSConvertData*)pData;
- const ImplDBCSToUniLeadTab* pLeadTab = pConvertData->mpToUniLeadTab;
- sal_Unicode* pEndDestBuf;
- const sal_Char* pEndSrcBuf;
-
- (void) pContext; /* unused */
-
- *pInfo = 0;
- pEndDestBuf = pDestBuf+nDestChars;
- pEndSrcBuf = pSrcBuf+nSrcBytes;
- while ( pSrcBuf < pEndSrcBuf )
- {
- cLead = (sal_uChar)*pSrcBuf;
-
- /* get entry for the lead byte */
- pLeadEntry = pLeadTab+cLead;
-
- /* SingleByte char? */
- if (pLeadEntry->mpToUniTrailTab == NULL
- || cLead < pConvertData->mnLeadStart
- || cLead > pConvertData->mnLeadEnd)
- {
- cConv = pLeadEntry->mnUniChar;
- if ( !cConv && (cLead != 0) )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_UNDEFINED;
- if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MASK) == RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR;
- break;
- }
- else if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MASK) == RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE )
- {
- pSrcBuf++;
- continue;
- }
- else
- cConv = ImplGetUndefinedUnicodeChar(cLead, nFlags);
- }
- }
- else
- {
- /* Source buffer to small */
- if ( pSrcBuf +1 == pEndSrcBuf )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR | RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL;
- break;
- }
-
- pSrcBuf++;
- cTrail = (sal_uChar)*pSrcBuf;
- if ( (cTrail >= pLeadEntry->mnTrailStart) && (cTrail <= pLeadEntry->mnTrailEnd) )
- cConv = pLeadEntry->mpToUniTrailTab[cTrail-pLeadEntry->mnTrailStart];
- else
- cConv = 0;
-
- if ( !cConv )
- {
- /* EUDC Ranges */
- sal_uInt16 i;
- const ImplDBCSEUDCData* pEUDCTab = pConvertData->mpEUDCTab;
- for ( i = 0; i < pConvertData->mnEUDCCount; i++ )
- {
- if ( (cLead >= pEUDCTab->mnLeadStart) &&
- (cLead <= pEUDCTab->mnLeadEnd) )
- {
- if ( (cTrail >= pEUDCTab->mnTrail1Start) &&
- (cTrail <= pEUDCTab->mnTrail1End) )
- {
- cConv = pEUDCTab->mnUniStart+
- ((cLead-pEUDCTab->mnLeadStart)*pEUDCTab->mnTrailRangeCount)+
- (cTrail-pEUDCTab->mnTrail1Start);
- break;
- }
- else
- {
- sal_uInt16 nTrailCount = pEUDCTab->mnTrail1End-pEUDCTab->mnTrail1Start+1;
- if ( (pEUDCTab->mnTrailCount >= 2) &&
- (cTrail >= pEUDCTab->mnTrail2Start) &&
- (cTrail <= pEUDCTab->mnTrail2End) )
- {
- cConv = pEUDCTab->mnUniStart+
- ((cLead-pEUDCTab->mnLeadStart)*pEUDCTab->mnTrailRangeCount)+
- nTrailCount+
- (cTrail-pEUDCTab->mnTrail2Start);
- break;
- }
- else
- {
- nTrailCount = pEUDCTab->mnTrail2End-pEUDCTab->mnTrail2Start+1;
- if ( (pEUDCTab->mnTrailCount >= 3) &&
- (cTrail >= pEUDCTab->mnTrail3Start) &&
- (cTrail <= pEUDCTab->mnTrail3End) )
- {
- cConv = pEUDCTab->mnUniStart+
- ((cLead-pEUDCTab->mnLeadStart)*pEUDCTab->mnTrailRangeCount)+
- nTrailCount+
- (cTrail-pEUDCTab->mnTrail3Start);
- break;
- }
- }
- }
- }
-
- pEUDCTab++;
- }
-
- if ( !cConv )
- {
- /* Wir vergleichen den kompletten Trailbereich den wir */
- /* definieren, der normalerweise groesser sein kann als */
- /* der definierte. Dies machen wir, damit Erweiterungen von */
- /* uns nicht beruecksichtigten Encodings so weit wie */
- /* moeglich auch richtig zu behandeln, das double byte */
- /* characters auch als ein einzelner Character behandelt */
- /* wird. */
- if (cLead < pConvertData->mnLeadStart
- || cLead > pConvertData->mnLeadEnd
- || cTrail < pConvertData->mnTrailStart
- || cTrail > pConvertData->mnTrailEnd)
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_INVALID;
- if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_INVALID_MASK) == RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR;
- break;
- }
- else if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_INVALID_MASK) == RTL_TEXTTOUNICODE_FLAGS_INVALID_IGNORE )
- {
- pSrcBuf++;
- continue;
- }
- else
- cConv = RTL_TEXTENC_UNICODE_REPLACEMENT_CHARACTER;
- }
- else
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_MBUNDEFINED;
- if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_MASK) == RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR;
- break;
- }
- else if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_MASK) == RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_IGNORE )
- {
- pSrcBuf++;
- continue;
- }
- else
- cConv = RTL_TEXTENC_UNICODE_REPLACEMENT_CHARACTER;
- }
- }
- }
- }
-
- if ( pDestBuf == pEndDestBuf )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- *pDestBuf = cConv;
- pDestBuf++;
- pSrcBuf++;
- }
-
- *pSrcCvtBytes = nSrcBytes - (pEndSrcBuf-pSrcBuf);
- return (nDestChars - (pEndDestBuf-pDestBuf));
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Size ImplUnicodeToDBCS( const ImplTextConverterData* pData, void* pContext,
- const sal_Unicode* pSrcBuf, sal_Size nSrcChars,
- sal_Char* pDestBuf, sal_Size nDestBytes,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtChars )
-{
- sal_uInt16 cConv;
- sal_Unicode c;
- sal_uChar nHighChar;
- sal_uChar nLowChar;
- const ImplUniToDBCSHighTab* pHighEntry;
- const ImplDBCSConvertData* pConvertData = (const ImplDBCSConvertData*)pData;
- const ImplUniToDBCSHighTab* pHighTab = pConvertData->mpToDBCSHighTab;
- sal_Char* pEndDestBuf;
- const sal_Unicode* pEndSrcBuf;
-
- sal_Bool bCheckRange = (pConvertData->mnLeadStart != 0
- || pConvertData->mnLeadEnd != 0xFF);
- /* this statement has the effect that this extra check is only done for
- EUC-KR, which uses the MS-949 tables, but does not support the full
- range of MS-949 */
-
- (void) pContext; /* unused */
-
- *pInfo = 0;
- pEndDestBuf = pDestBuf+nDestBytes;
- pEndSrcBuf = pSrcBuf+nSrcChars;
- while ( pSrcBuf < pEndSrcBuf )
- {
- c = *pSrcBuf;
- nHighChar = (sal_uChar)((c >> 8) & 0xFF);
- nLowChar = (sal_uChar)(c & 0xFF);
-
- /* get entry for the high byte */
- pHighEntry = pHighTab+nHighChar;
-
- /* is low byte in the table range */
- if ( (nLowChar >= pHighEntry->mnLowStart) && (nLowChar <= pHighEntry->mnLowEnd) )
- {
- cConv = pHighEntry->mpToUniTrailTab[nLowChar-pHighEntry->mnLowStart];
- if (bCheckRange && cConv > 0x7F
- && ((cConv >> 8) < pConvertData->mnLeadStart
- || (cConv >> 8) > pConvertData->mnLeadEnd
- || (cConv & 0xFF) < pConvertData->mnTrailStart
- || (cConv & 0xFF) > pConvertData->mnTrailEnd))
- cConv = 0;
- }
- else
- cConv = 0;
-
- if (cConv == 0 && c != 0)
- {
- /* Map to EUDC ranges: */
- ImplDBCSEUDCData const * pEUDCTab = pConvertData->mpEUDCTab;
- sal_uInt32 i;
- for (i = 0; i < pConvertData->mnEUDCCount; ++i)
- {
- if (c >= pEUDCTab->mnUniStart && c <= pEUDCTab->mnUniEnd)
- {
- sal_uInt32 nIndex = c - pEUDCTab->mnUniStart;
- sal_uInt32 nLeadOff
- = nIndex / pEUDCTab->mnTrailRangeCount;
- sal_uInt32 nTrailOff
- = nIndex % pEUDCTab->mnTrailRangeCount;
- sal_uInt32 nSize;
- cConv = (sal_uInt16)
- ((pEUDCTab->mnLeadStart + nLeadOff) << 8);
- nSize
- = pEUDCTab->mnTrail1End - pEUDCTab->mnTrail1Start + 1;
- if (nTrailOff < nSize)
- {
- cConv |= pEUDCTab->mnTrail1Start + nTrailOff;
- break;
- }
- nTrailOff -= nSize;
- nSize
- = pEUDCTab->mnTrail2End - pEUDCTab->mnTrail2Start + 1;
- if (nTrailOff < nSize)
- {
- cConv |= pEUDCTab->mnTrail2Start + nTrailOff;
- break;
- }
- nTrailOff -= nSize;
- cConv |= pEUDCTab->mnTrail3Start + nTrailOff;
- break;
- }
- pEUDCTab++;
- }
-
- /* FIXME
- * SB: Not sure why this is in here. Plus, it does not work as
- * intended when (c & 0xFF) == 0, because the next !cConv check
- * will then think c has not yet been converted...
- */
- if (c >= RTL_TEXTCVT_BYTE_PRIVATE_START
- && c <= RTL_TEXTCVT_BYTE_PRIVATE_END)
- {
- if ( nFlags & RTL_UNICODETOTEXT_FLAGS_PRIVATE_MAPTO0 )
- cConv = (sal_Char)(sal_uChar)(c & 0xFF);
- }
- }
-
- if ( !cConv )
- {
- if ( nFlags & RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACE )
- {
- /* !!! */
- }
-
- if ( nFlags & RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACESTR )
- {
- /* !!! */
- }
-
- /* Handle undefined and surrogates characters */
- /* (all surrogates characters are undefined) */
- if (ImplHandleUndefinedUnicodeToTextChar(pData,
- &pSrcBuf,
- pEndSrcBuf,
- &pDestBuf,
- pEndDestBuf,
- nFlags,
- pInfo))
- continue;
- else
- break;
- }
-
- /* SingleByte */
- if ( !(cConv & 0xFF00) )
- {
- if ( pDestBuf == pEndDestBuf )
- {
- *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- *pDestBuf = (sal_Char)(sal_uChar)(cConv & 0xFF);
- pDestBuf++;
- }
- else
- {
- if ( pDestBuf+1 >= pEndDestBuf )
- {
- *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- *pDestBuf = (sal_Char)(sal_uChar)((cConv >> 8) & 0xFF);
- pDestBuf++;
- *pDestBuf = (sal_Char)(sal_uChar)(cConv & 0xFF);
- pDestBuf++;
- }
-
- pSrcBuf++;
- }
-
- *pSrcCvtChars = nSrcChars - (pEndSrcBuf-pSrcBuf);
- return (nDestBytes - (pEndDestBuf-pDestBuf));
-}
-
-/* ======================================================================= */
-
-#define JIS_EUC_LEAD_OFF 0x80
-#define JIS_EUC_TRAIL_OFF 0x80
-
-/* ----------------------------------------------------------------------- */
-
-sal_Size ImplEUCJPToUnicode( const ImplTextConverterData* pData,
- void* pContext,
- const sal_Char* pSrcBuf, sal_Size nSrcBytes,
- sal_Unicode* pDestBuf, sal_Size nDestChars,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtBytes )
-{
- sal_uChar c;
- sal_uChar cLead = '\0';
- sal_uChar cTrail = '\0';
- sal_Unicode cConv;
- const ImplDBCSToUniLeadTab* pLeadEntry;
- const ImplDBCSToUniLeadTab* pLeadTab;
- const ImplEUCJPConvertData* pConvertData = (const ImplEUCJPConvertData*)pData;
- sal_Unicode* pEndDestBuf;
- const sal_Char* pEndSrcBuf;
-
- (void) pContext; /* unused */
-
- *pInfo = 0;
- pEndDestBuf = pDestBuf+nDestChars;
- pEndSrcBuf = pSrcBuf+nSrcBytes;
- while ( pSrcBuf < pEndSrcBuf )
- {
- c = (sal_uChar)*pSrcBuf;
-
- /* ASCII */
- if ( c <= 0x7F )
- cConv = c;
- else
- {
- /* SS2 - Half-width katakana */
- /* 8E + A1-DF */
- if ( c == 0x8E )
- {
- /* Source buffer to small */
- if ( pSrcBuf + 1 == pEndSrcBuf )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL;
- break;
- }
-
- pSrcBuf++;
- c = (sal_uChar)*pSrcBuf;
- if ( (c >= 0xA1) && (c <= 0xDF) )
- cConv = 0xFF61+(c-0xA1);
- else
- {
- cConv = 0;
- cLead = 0x8E;
- cTrail = c;
- }
- }
- else
- {
- /* SS3 - JIS 0212-1990 */
- /* 8F + A1-FE + A1-FE */
- if ( c == 0x8F )
- {
- /* Source buffer to small */
- if (pEndSrcBuf - pSrcBuf < 3)
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL;
- break;
- }
-
- pSrcBuf++;
- cLead = (sal_uChar)*pSrcBuf;
- pSrcBuf++;
- cTrail = (sal_uChar)*pSrcBuf;
- pLeadTab = pConvertData->mpJIS0212ToUniLeadTab;
- }
- /* CodeSet 2 JIS 0208-1997 */
- /* A1-FE + A1-FE */
- else
- {
- /* Source buffer to small */
- if ( pSrcBuf + 1 == pEndSrcBuf )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL;
- break;
- }
-
- cLead = c;
- pSrcBuf++;
- cTrail = (sal_uChar)*pSrcBuf;
- pLeadTab = pConvertData->mpJIS0208ToUniLeadTab;
- }
-
- /* Undefined Range */
- if ( (cLead < JIS_EUC_LEAD_OFF) || (cTrail < JIS_EUC_TRAIL_OFF) )
- cConv = 0;
- else
- {
- cLead -= JIS_EUC_LEAD_OFF;
- cTrail -= JIS_EUC_TRAIL_OFF;
- pLeadEntry = pLeadTab+cLead;
- if ( (cTrail >= pLeadEntry->mnTrailStart) && (cTrail <= pLeadEntry->mnTrailEnd) )
- cConv = pLeadEntry->mpToUniTrailTab[cTrail-pLeadEntry->mnTrailStart];
- else
- cConv = 0;
- }
- }
-
- if ( !cConv )
- {
- /* Wir vergleichen den kompletten Trailbereich den wir */
- /* definieren, der normalerweise groesser sein kann als */
- /* der definierte. Dies machen wir, damit Erweiterungen von */
- /* uns nicht beruecksichtigten Encodings so weit wie */
- /* moeglich auch richtig zu behandeln, das double byte */
- /* characters auch als ein einzelner Character behandelt */
- /* wird. */
- if ( (cLead < JIS_EUC_LEAD_OFF) || (cTrail < JIS_EUC_TRAIL_OFF) )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_INVALID;
- if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_INVALID_MASK) == RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR;
- break;
- }
- else if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_INVALID_MASK) == RTL_TEXTTOUNICODE_FLAGS_INVALID_IGNORE )
- {
- pSrcBuf++;
- continue;
- }
- else
- cConv = RTL_TEXTENC_UNICODE_REPLACEMENT_CHARACTER;
- }
- else
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_MBUNDEFINED;
- if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_MASK) == RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR;
- break;
- }
- else if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_MASK) == RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_IGNORE )
- {
- pSrcBuf++;
- continue;
- }
- else
- cConv = RTL_TEXTENC_UNICODE_REPLACEMENT_CHARACTER;
- }
- }
- }
-
- if ( pDestBuf == pEndDestBuf )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- *pDestBuf = cConv;
- pDestBuf++;
- pSrcBuf++;
- }
-
- *pSrcCvtBytes = nSrcBytes - (pEndSrcBuf-pSrcBuf);
- return (nDestChars - (pEndDestBuf-pDestBuf));
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Size ImplUnicodeToEUCJP( const ImplTextConverterData* pData,
- void* pContext,
- const sal_Unicode* pSrcBuf, sal_Size nSrcChars,
- sal_Char* pDestBuf, sal_Size nDestBytes,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtChars )
-{
- sal_uInt32 cConv;
- sal_Unicode c;
- sal_uChar nHighChar;
- sal_uChar nLowChar;
- const ImplUniToDBCSHighTab* pHighEntry;
- const ImplUniToDBCSHighTab* pHighTab;
- const ImplEUCJPConvertData* pConvertData = (const ImplEUCJPConvertData*)pData;
- sal_Char* pEndDestBuf;
- const sal_Unicode* pEndSrcBuf;
-
- (void) pContext; /* unused */
-
- *pInfo = 0;
- pEndDestBuf = pDestBuf+nDestBytes;
- pEndSrcBuf = pSrcBuf+nSrcChars;
- while ( pSrcBuf < pEndSrcBuf )
- {
- c = *pSrcBuf;
-
- /* ASCII */
- if ( c <= 0x7F )
- cConv = c;
- /* Half-width katakana */
- else if ( (c >= 0xFF61) && (c <= 0xFF9F) )
- cConv = 0x8E00+0xA1+(c-0xFF61);
- else
- {
- nHighChar = (sal_uChar)((c >> 8) & 0xFF);
- nLowChar = (sal_uChar)(c & 0xFF);
-
- /* JIS 0208 */
- pHighTab = pConvertData->mpUniToJIS0208HighTab;
- pHighEntry = pHighTab+nHighChar;
- if ( (nLowChar >= pHighEntry->mnLowStart) && (nLowChar <= pHighEntry->mnLowEnd) )
- {
- cConv = pHighEntry->mpToUniTrailTab[nLowChar-pHighEntry->mnLowStart];
- if (cConv != 0)
- cConv |= 0x8080;
- }
- else
- cConv = 0;
-
- /* JIS 0212 */
- if ( !cConv )
- {
- pHighTab = pConvertData->mpUniToJIS0212HighTab;
- pHighEntry = pHighTab+nHighChar;
- if ( (nLowChar >= pHighEntry->mnLowStart) && (nLowChar <= pHighEntry->mnLowEnd) )
- {
- cConv = pHighEntry->mpToUniTrailTab[nLowChar-pHighEntry->mnLowStart];
- if (cConv != 0)
- cConv |= 0x8F8080;
- }
-
- if ( !cConv )
- {
- if ( nFlags & RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACE )
- {
- /* !!! */
- }
-
- if ( nFlags & RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACESTR )
- {
- /* !!! */
- }
-
- /* Handle undefined and surrogates characters */
- /* (all surrogates characters are undefined) */
- if (ImplHandleUndefinedUnicodeToTextChar(pData,
- &pSrcBuf,
- pEndSrcBuf,
- &pDestBuf,
- pEndDestBuf,
- nFlags,
- pInfo))
- continue;
- else
- break;
- }
- }
- }
-
- /* SingleByte */
- if ( !(cConv & 0xFFFF00) )
- {
- if ( pDestBuf == pEndDestBuf )
- {
- *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- *pDestBuf = (sal_Char)(sal_uChar)(cConv & 0xFF);
- pDestBuf++;
- }
- /* DoubleByte */
- else if ( !(cConv & 0xFF0000) )
- {
- if ( pDestBuf+1 >= pEndDestBuf )
- {
- *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- *pDestBuf = (sal_Char)(sal_uChar)((cConv >> 8) & 0xFF);
- pDestBuf++;
- *pDestBuf = (sal_Char)(sal_uChar)(cConv & 0xFF);
- pDestBuf++;
- }
- else
- {
- if ( pDestBuf+2 >= pEndDestBuf )
- {
- *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- *pDestBuf = (sal_Char)(sal_uChar)((cConv >> 16) & 0xFF);
- pDestBuf++;
- *pDestBuf = (sal_Char)(sal_uChar)((cConv >> 8) & 0xFF);
- pDestBuf++;
- *pDestBuf = (sal_Char)(sal_uChar)(cConv & 0xFF);
- pDestBuf++;
- }
-
- pSrcBuf++;
- }
-
- *pSrcCvtChars = nSrcChars - (pEndSrcBuf-pSrcBuf);
- return (nDestBytes - (pEndDestBuf-pDestBuf));
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/tcvtscn1.tab b/sal/textenc/tcvtscn1.tab
deleted file mode 100644
index 07ec8230d..000000000
--- a/sal/textenc/tcvtscn1.tab
+++ /dev/null
@@ -1,3860 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the DBCS to UniCode tables for the following */
-/* chinese simplified (China) charsets: */
-/* GB (GB2312), GBK, MS936, APPLE_CHINSIMP */
-
-/* GBK is a superset of GB2312, so we have only GBK tables. The offset is */
-/* added in the lead byte tables. */
-
-/* ======================================================================= */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_81[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4E02, 0x4E04, 0x4E05, 0x4E06, 0x4E0F, 0x4E12, 0x4E17, 0x4E1F, /* 0x40 */
- 0x4E20, 0x4E21, 0x4E23, 0x4E26, 0x4E29, 0x4E2E, 0x4E2F, 0x4E31, /* 0x40 */
- 0x4E33, 0x4E35, 0x4E37, 0x4E3C, 0x4E40, 0x4E41, 0x4E42, 0x4E44, /* 0x50 */
- 0x4E46, 0x4E4A, 0x4E51, 0x4E55, 0x4E57, 0x4E5A, 0x4E5B, 0x4E62, /* 0x50 */
- 0x4E63, 0x4E64, 0x4E65, 0x4E67, 0x4E68, 0x4E6A, 0x4E6B, 0x4E6C, /* 0x60 */
- 0x4E6D, 0x4E6E, 0x4E6F, 0x4E72, 0x4E74, 0x4E75, 0x4E76, 0x4E77, /* 0x60 */
- 0x4E78, 0x4E79, 0x4E7A, 0x4E7B, 0x4E7C, 0x4E7D, 0x4E7F, 0x4E80, /* 0x70 */
- 0x4E81, 0x4E82, 0x4E83, 0x4E84, 0x4E85, 0x4E87, 0x4E8A, 0, /* 0x70 */
- 0x4E90, 0x4E96, 0x4E97, 0x4E99, 0x4E9C, 0x4E9D, 0x4E9E, 0x4EA3, /* 0x80 */
- 0x4EAA, 0x4EAF, 0x4EB0, 0x4EB1, 0x4EB4, 0x4EB6, 0x4EB7, 0x4EB8, /* 0x80 */
- 0x4EB9, 0x4EBC, 0x4EBD, 0x4EBE, 0x4EC8, 0x4ECC, 0x4ECF, 0x4ED0, /* 0x90 */
- 0x4ED2, 0x4EDA, 0x4EDB, 0x4EDC, 0x4EE0, 0x4EE2, 0x4EE6, 0x4EE7, /* 0x90 */
- 0x4EE9, 0x4EED, 0x4EEE, 0x4EEF, 0x4EF1, 0x4EF4, 0x4EF8, 0x4EF9, /* 0xA0 */
- 0x4EFA, 0x4EFC, 0x4EFE, 0x4F00, 0x4F02, 0x4F03, 0x4F04, 0x4F05, /* 0xA0 */
- 0x4F06, 0x4F07, 0x4F08, 0x4F0B, 0x4F0C, 0x4F12, 0x4F13, 0x4F14, /* 0xB0 */
- 0x4F15, 0x4F16, 0x4F1C, 0x4F1D, 0x4F21, 0x4F23, 0x4F28, 0x4F29, /* 0xB0 */
- 0x4F2C, 0x4F2D, 0x4F2E, 0x4F31, 0x4F33, 0x4F35, 0x4F37, 0x4F39, /* 0xC0 */
- 0x4F3B, 0x4F3E, 0x4F3F, 0x4F40, 0x4F41, 0x4F42, 0x4F44, 0x4F45, /* 0xC0 */
- 0x4F47, 0x4F48, 0x4F49, 0x4F4A, 0x4F4B, 0x4F4C, 0x4F52, 0x4F54, /* 0xD0 */
- 0x4F56, 0x4F61, 0x4F62, 0x4F66, 0x4F68, 0x4F6A, 0x4F6B, 0x4F6D, /* 0xD0 */
- 0x4F6E, 0x4F71, 0x4F72, 0x4F75, 0x4F77, 0x4F78, 0x4F79, 0x4F7A, /* 0xE0 */
- 0x4F7D, 0x4F80, 0x4F81, 0x4F82, 0x4F85, 0x4F86, 0x4F87, 0x4F8A, /* 0xE0 */
- 0x4F8C, 0x4F8E, 0x4F90, 0x4F92, 0x4F93, 0x4F95, 0x4F96, 0x4F98, /* 0xF0 */
- 0x4F99, 0x4F9A, 0x4F9C, 0x4F9E, 0x4F9F, 0x4FA1, 0x4FA2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_82[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4FA4, 0x4FAB, 0x4FAD, 0x4FB0, 0x4FB1, 0x4FB2, 0x4FB3, 0x4FB4, /* 0x40 */
- 0x4FB6, 0x4FB7, 0x4FB8, 0x4FB9, 0x4FBA, 0x4FBB, 0x4FBC, 0x4FBD, /* 0x40 */
- 0x4FBE, 0x4FC0, 0x4FC1, 0x4FC2, 0x4FC6, 0x4FC7, 0x4FC8, 0x4FC9, /* 0x50 */
- 0x4FCB, 0x4FCC, 0x4FCD, 0x4FD2, 0x4FD3, 0x4FD4, 0x4FD5, 0x4FD6, /* 0x50 */
- 0x4FD9, 0x4FDB, 0x4FE0, 0x4FE2, 0x4FE4, 0x4FE5, 0x4FE7, 0x4FEB, /* 0x60 */
- 0x4FEC, 0x4FF0, 0x4FF2, 0x4FF4, 0x4FF5, 0x4FF6, 0x4FF7, 0x4FF9, /* 0x60 */
- 0x4FFB, 0x4FFC, 0x4FFD, 0x4FFF, 0x5000, 0x5001, 0x5002, 0x5003, /* 0x70 */
- 0x5004, 0x5005, 0x5006, 0x5007, 0x5008, 0x5009, 0x500A, 0, /* 0x70 */
- 0x500B, 0x500E, 0x5010, 0x5011, 0x5013, 0x5015, 0x5016, 0x5017, /* 0x80 */
- 0x501B, 0x501D, 0x501E, 0x5020, 0x5022, 0x5023, 0x5024, 0x5027, /* 0x80 */
- 0x502B, 0x502F, 0x5030, 0x5031, 0x5032, 0x5033, 0x5034, 0x5035, /* 0x90 */
- 0x5036, 0x5037, 0x5038, 0x5039, 0x503B, 0x503D, 0x503F, 0x5040, /* 0x90 */
- 0x5041, 0x5042, 0x5044, 0x5045, 0x5046, 0x5049, 0x504A, 0x504B, /* 0xA0 */
- 0x504D, 0x5050, 0x5051, 0x5052, 0x5053, 0x5054, 0x5056, 0x5057, /* 0xA0 */
- 0x5058, 0x5059, 0x505B, 0x505D, 0x505E, 0x505F, 0x5060, 0x5061, /* 0xB0 */
- 0x5062, 0x5063, 0x5064, 0x5066, 0x5067, 0x5068, 0x5069, 0x506A, /* 0xB0 */
- 0x506B, 0x506D, 0x506E, 0x506F, 0x5070, 0x5071, 0x5072, 0x5073, /* 0xC0 */
- 0x5074, 0x5075, 0x5078, 0x5079, 0x507A, 0x507C, 0x507D, 0x5081, /* 0xC0 */
- 0x5082, 0x5083, 0x5084, 0x5086, 0x5087, 0x5089, 0x508A, 0x508B, /* 0xD0 */
- 0x508C, 0x508E, 0x508F, 0x5090, 0x5091, 0x5092, 0x5093, 0x5094, /* 0xD0 */
- 0x5095, 0x5096, 0x5097, 0x5098, 0x5099, 0x509A, 0x509B, 0x509C, /* 0xE0 */
- 0x509D, 0x509E, 0x509F, 0x50A0, 0x50A1, 0x50A2, 0x50A4, 0x50A6, /* 0xE0 */
- 0x50AA, 0x50AB, 0x50AD, 0x50AE, 0x50AF, 0x50B0, 0x50B1, 0x50B3, /* 0xF0 */
- 0x50B4, 0x50B5, 0x50B6, 0x50B7, 0x50B8, 0x50B9, 0x50BC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_83[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x50BD, 0x50BE, 0x50BF, 0x50C0, 0x50C1, 0x50C2, 0x50C3, 0x50C4, /* 0x40 */
- 0x50C5, 0x50C6, 0x50C7, 0x50C8, 0x50C9, 0x50CA, 0x50CB, 0x50CC, /* 0x40 */
- 0x50CD, 0x50CE, 0x50D0, 0x50D1, 0x50D2, 0x50D3, 0x50D4, 0x50D5, /* 0x50 */
- 0x50D7, 0x50D8, 0x50D9, 0x50DB, 0x50DC, 0x50DD, 0x50DE, 0x50DF, /* 0x50 */
- 0x50E0, 0x50E1, 0x50E2, 0x50E3, 0x50E4, 0x50E5, 0x50E8, 0x50E9, /* 0x60 */
- 0x50EA, 0x50EB, 0x50EF, 0x50F0, 0x50F1, 0x50F2, 0x50F4, 0x50F6, /* 0x60 */
- 0x50F7, 0x50F8, 0x50F9, 0x50FA, 0x50FC, 0x50FD, 0x50FE, 0x50FF, /* 0x70 */
- 0x5100, 0x5101, 0x5102, 0x5103, 0x5104, 0x5105, 0x5108, 0, /* 0x70 */
- 0x5109, 0x510A, 0x510C, 0x510D, 0x510E, 0x510F, 0x5110, 0x5111, /* 0x80 */
- 0x5113, 0x5114, 0x5115, 0x5116, 0x5117, 0x5118, 0x5119, 0x511A, /* 0x80 */
- 0x511B, 0x511C, 0x511D, 0x511E, 0x511F, 0x5120, 0x5122, 0x5123, /* 0x90 */
- 0x5124, 0x5125, 0x5126, 0x5127, 0x5128, 0x5129, 0x512A, 0x512B, /* 0x90 */
- 0x512C, 0x512D, 0x512E, 0x512F, 0x5130, 0x5131, 0x5132, 0x5133, /* 0xA0 */
- 0x5134, 0x5135, 0x5136, 0x5137, 0x5138, 0x5139, 0x513A, 0x513B, /* 0xA0 */
- 0x513C, 0x513D, 0x513E, 0x5142, 0x5147, 0x514A, 0x514C, 0x514E, /* 0xB0 */
- 0x514F, 0x5150, 0x5152, 0x5153, 0x5157, 0x5158, 0x5159, 0x515B, /* 0xB0 */
- 0x515D, 0x515E, 0x515F, 0x5160, 0x5161, 0x5163, 0x5164, 0x5166, /* 0xC0 */
- 0x5167, 0x5169, 0x516A, 0x516F, 0x5172, 0x517A, 0x517E, 0x517F, /* 0xC0 */
- 0x5183, 0x5184, 0x5186, 0x5187, 0x518A, 0x518B, 0x518E, 0x518F, /* 0xD0 */
- 0x5190, 0x5191, 0x5193, 0x5194, 0x5198, 0x519A, 0x519D, 0x519E, /* 0xD0 */
- 0x519F, 0x51A1, 0x51A3, 0x51A6, 0x51A7, 0x51A8, 0x51A9, 0x51AA, /* 0xE0 */
- 0x51AD, 0x51AE, 0x51B4, 0x51B8, 0x51B9, 0x51BA, 0x51BE, 0x51BF, /* 0xE0 */
- 0x51C1, 0x51C2, 0x51C3, 0x51C5, 0x51C8, 0x51CA, 0x51CD, 0x51CE, /* 0xF0 */
- 0x51D0, 0x51D2, 0x51D3, 0x51D4, 0x51D5, 0x51D6, 0x51D7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_84[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x51D8, 0x51D9, 0x51DA, 0x51DC, 0x51DE, 0x51DF, 0x51E2, 0x51E3, /* 0x40 */
- 0x51E5, 0x51E6, 0x51E7, 0x51E8, 0x51E9, 0x51EA, 0x51EC, 0x51EE, /* 0x40 */
- 0x51F1, 0x51F2, 0x51F4, 0x51F7, 0x51FE, 0x5204, 0x5205, 0x5209, /* 0x50 */
- 0x520B, 0x520C, 0x520F, 0x5210, 0x5213, 0x5214, 0x5215, 0x521C, /* 0x50 */
- 0x521E, 0x521F, 0x5221, 0x5222, 0x5223, 0x5225, 0x5226, 0x5227, /* 0x60 */
- 0x522A, 0x522C, 0x522F, 0x5231, 0x5232, 0x5234, 0x5235, 0x523C, /* 0x60 */
- 0x523E, 0x5244, 0x5245, 0x5246, 0x5247, 0x5248, 0x5249, 0x524B, /* 0x70 */
- 0x524E, 0x524F, 0x5252, 0x5253, 0x5255, 0x5257, 0x5258, 0, /* 0x70 */
- 0x5259, 0x525A, 0x525B, 0x525D, 0x525F, 0x5260, 0x5262, 0x5263, /* 0x80 */
- 0x5264, 0x5266, 0x5268, 0x526B, 0x526C, 0x526D, 0x526E, 0x5270, /* 0x80 */
- 0x5271, 0x5273, 0x5274, 0x5275, 0x5276, 0x5277, 0x5278, 0x5279, /* 0x90 */
- 0x527A, 0x527B, 0x527C, 0x527E, 0x5280, 0x5283, 0x5284, 0x5285, /* 0x90 */
- 0x5286, 0x5287, 0x5289, 0x528A, 0x528B, 0x528C, 0x528D, 0x528E, /* 0xA0 */
- 0x528F, 0x5291, 0x5292, 0x5294, 0x5295, 0x5296, 0x5297, 0x5298, /* 0xA0 */
- 0x5299, 0x529A, 0x529C, 0x52A4, 0x52A5, 0x52A6, 0x52A7, 0x52AE, /* 0xB0 */
- 0x52AF, 0x52B0, 0x52B4, 0x52B5, 0x52B6, 0x52B7, 0x52B8, 0x52B9, /* 0xB0 */
- 0x52BA, 0x52BB, 0x52BC, 0x52BD, 0x52C0, 0x52C1, 0x52C2, 0x52C4, /* 0xC0 */
- 0x52C5, 0x52C6, 0x52C8, 0x52CA, 0x52CC, 0x52CD, 0x52CE, 0x52CF, /* 0xC0 */
- 0x52D1, 0x52D3, 0x52D4, 0x52D5, 0x52D7, 0x52D9, 0x52DA, 0x52DB, /* 0xD0 */
- 0x52DC, 0x52DD, 0x52DE, 0x52E0, 0x52E1, 0x52E2, 0x52E3, 0x52E5, /* 0xD0 */
- 0x52E6, 0x52E7, 0x52E8, 0x52E9, 0x52EA, 0x52EB, 0x52EC, 0x52ED, /* 0xE0 */
- 0x52EE, 0x52EF, 0x52F1, 0x52F2, 0x52F3, 0x52F4, 0x52F5, 0x52F6, /* 0xE0 */
- 0x52F7, 0x52F8, 0x52FB, 0x52FC, 0x52FD, 0x5301, 0x5302, 0x5303, /* 0xF0 */
- 0x5304, 0x5307, 0x5309, 0x530A, 0x530B, 0x530C, 0x530E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_85[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5311, 0x5312, 0x5313, 0x5314, 0x5318, 0x531B, 0x531C, 0x531E, /* 0x40 */
- 0x531F, 0x5322, 0x5324, 0x5325, 0x5327, 0x5328, 0x5329, 0x532B, /* 0x40 */
- 0x532C, 0x532D, 0x532F, 0x5330, 0x5331, 0x5332, 0x5333, 0x5334, /* 0x50 */
- 0x5335, 0x5336, 0x5337, 0x5338, 0x533C, 0x533D, 0x5340, 0x5342, /* 0x50 */
- 0x5344, 0x5346, 0x534B, 0x534C, 0x534D, 0x5350, 0x5354, 0x5358, /* 0x60 */
- 0x5359, 0x535B, 0x535D, 0x5365, 0x5368, 0x536A, 0x536C, 0x536D, /* 0x60 */
- 0x5372, 0x5376, 0x5379, 0x537B, 0x537C, 0x537D, 0x537E, 0x5380, /* 0x70 */
- 0x5381, 0x5383, 0x5387, 0x5388, 0x538A, 0x538E, 0x538F, 0, /* 0x70 */
- 0x5390, 0x5391, 0x5392, 0x5393, 0x5394, 0x5396, 0x5397, 0x5399, /* 0x80 */
- 0x539B, 0x539C, 0x539E, 0x53A0, 0x53A1, 0x53A4, 0x53A7, 0x53AA, /* 0x80 */
- 0x53AB, 0x53AC, 0x53AD, 0x53AF, 0x53B0, 0x53B1, 0x53B2, 0x53B3, /* 0x90 */
- 0x53B4, 0x53B5, 0x53B7, 0x53B8, 0x53B9, 0x53BA, 0x53BC, 0x53BD, /* 0x90 */
- 0x53BE, 0x53C0, 0x53C3, 0x53C4, 0x53C5, 0x53C6, 0x53C7, 0x53CE, /* 0xA0 */
- 0x53CF, 0x53D0, 0x53D2, 0x53D3, 0x53D5, 0x53DA, 0x53DC, 0x53DD, /* 0xA0 */
- 0x53DE, 0x53E1, 0x53E2, 0x53E7, 0x53F4, 0x53FA, 0x53FE, 0x53FF, /* 0xB0 */
- 0x5400, 0x5402, 0x5405, 0x5407, 0x540B, 0x5414, 0x5418, 0x5419, /* 0xB0 */
- 0x541A, 0x541C, 0x5422, 0x5424, 0x5425, 0x542A, 0x5430, 0x5433, /* 0xC0 */
- 0x5436, 0x5437, 0x543A, 0x543D, 0x543F, 0x5441, 0x5442, 0x5444, /* 0xC0 */
- 0x5445, 0x5447, 0x5449, 0x544C, 0x544D, 0x544E, 0x544F, 0x5451, /* 0xD0 */
- 0x545A, 0x545D, 0x545E, 0x545F, 0x5460, 0x5461, 0x5463, 0x5465, /* 0xD0 */
- 0x5467, 0x5469, 0x546A, 0x546B, 0x546C, 0x546D, 0x546E, 0x546F, /* 0xE0 */
- 0x5470, 0x5474, 0x5479, 0x547A, 0x547E, 0x547F, 0x5481, 0x5483, /* 0xE0 */
- 0x5485, 0x5487, 0x5488, 0x5489, 0x548A, 0x548D, 0x5491, 0x5493, /* 0xF0 */
- 0x5497, 0x5498, 0x549C, 0x549E, 0x549F, 0x54A0, 0x54A1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_86[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x54A2, 0x54A5, 0x54AE, 0x54B0, 0x54B2, 0x54B5, 0x54B6, 0x54B7, /* 0x40 */
- 0x54B9, 0x54BA, 0x54BC, 0x54BE, 0x54C3, 0x54C5, 0x54CA, 0x54CB, /* 0x40 */
- 0x54D6, 0x54D8, 0x54DB, 0x54E0, 0x54E1, 0x54E2, 0x54E3, 0x54E4, /* 0x50 */
- 0x54EB, 0x54EC, 0x54EF, 0x54F0, 0x54F1, 0x54F4, 0x54F5, 0x54F6, /* 0x50 */
- 0x54F7, 0x54F8, 0x54F9, 0x54FB, 0x54FE, 0x5500, 0x5502, 0x5503, /* 0x60 */
- 0x5504, 0x5505, 0x5508, 0x550A, 0x550B, 0x550C, 0x550D, 0x550E, /* 0x60 */
- 0x5512, 0x5513, 0x5515, 0x5516, 0x5517, 0x5518, 0x5519, 0x551A, /* 0x70 */
- 0x551C, 0x551D, 0x551E, 0x551F, 0x5521, 0x5525, 0x5526, 0, /* 0x70 */
- 0x5528, 0x5529, 0x552B, 0x552D, 0x5532, 0x5534, 0x5535, 0x5536, /* 0x80 */
- 0x5538, 0x5539, 0x553A, 0x553B, 0x553D, 0x5540, 0x5542, 0x5545, /* 0x80 */
- 0x5547, 0x5548, 0x554B, 0x554C, 0x554D, 0x554E, 0x554F, 0x5551, /* 0x90 */
- 0x5552, 0x5553, 0x5554, 0x5557, 0x5558, 0x5559, 0x555A, 0x555B, /* 0x90 */
- 0x555D, 0x555E, 0x555F, 0x5560, 0x5562, 0x5563, 0x5568, 0x5569, /* 0xA0 */
- 0x556B, 0x556F, 0x5570, 0x5571, 0x5572, 0x5573, 0x5574, 0x5579, /* 0xA0 */
- 0x557A, 0x557D, 0x557F, 0x5585, 0x5586, 0x558C, 0x558D, 0x558E, /* 0xB0 */
- 0x5590, 0x5592, 0x5593, 0x5595, 0x5596, 0x5597, 0x559A, 0x559B, /* 0xB0 */
- 0x559E, 0x55A0, 0x55A1, 0x55A2, 0x55A3, 0x55A4, 0x55A5, 0x55A6, /* 0xC0 */
- 0x55A8, 0x55A9, 0x55AA, 0x55AB, 0x55AC, 0x55AD, 0x55AE, 0x55AF, /* 0xC0 */
- 0x55B0, 0x55B2, 0x55B4, 0x55B6, 0x55B8, 0x55BA, 0x55BC, 0x55BF, /* 0xD0 */
- 0x55C0, 0x55C1, 0x55C2, 0x55C3, 0x55C6, 0x55C7, 0x55C8, 0x55CA, /* 0xD0 */
- 0x55CB, 0x55CE, 0x55CF, 0x55D0, 0x55D5, 0x55D7, 0x55D8, 0x55D9, /* 0xE0 */
- 0x55DA, 0x55DB, 0x55DE, 0x55E0, 0x55E2, 0x55E7, 0x55E9, 0x55ED, /* 0xE0 */
- 0x55EE, 0x55F0, 0x55F1, 0x55F4, 0x55F6, 0x55F8, 0x55F9, 0x55FA, /* 0xF0 */
- 0x55FB, 0x55FC, 0x55FF, 0x5602, 0x5603, 0x5604, 0x5605 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_87[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5606, 0x5607, 0x560A, 0x560B, 0x560D, 0x5610, 0x5611, 0x5612, /* 0x40 */
- 0x5613, 0x5614, 0x5615, 0x5616, 0x5617, 0x5619, 0x561A, 0x561C, /* 0x40 */
- 0x561D, 0x5620, 0x5621, 0x5622, 0x5625, 0x5626, 0x5628, 0x5629, /* 0x50 */
- 0x562A, 0x562B, 0x562E, 0x562F, 0x5630, 0x5633, 0x5635, 0x5637, /* 0x50 */
- 0x5638, 0x563A, 0x563C, 0x563D, 0x563E, 0x5640, 0x5641, 0x5642, /* 0x60 */
- 0x5643, 0x5644, 0x5645, 0x5646, 0x5647, 0x5648, 0x5649, 0x564A, /* 0x60 */
- 0x564B, 0x564F, 0x5650, 0x5651, 0x5652, 0x5653, 0x5655, 0x5656, /* 0x70 */
- 0x565A, 0x565B, 0x565D, 0x565E, 0x565F, 0x5660, 0x5661, 0, /* 0x70 */
- 0x5663, 0x5665, 0x5666, 0x5667, 0x566D, 0x566E, 0x566F, 0x5670, /* 0x80 */
- 0x5672, 0x5673, 0x5674, 0x5675, 0x5677, 0x5678, 0x5679, 0x567A, /* 0x80 */
- 0x567D, 0x567E, 0x567F, 0x5680, 0x5681, 0x5682, 0x5683, 0x5684, /* 0x90 */
- 0x5687, 0x5688, 0x5689, 0x568A, 0x568B, 0x568C, 0x568D, 0x5690, /* 0x90 */
- 0x5691, 0x5692, 0x5694, 0x5695, 0x5696, 0x5697, 0x5698, 0x5699, /* 0xA0 */
- 0x569A, 0x569B, 0x569C, 0x569D, 0x569E, 0x569F, 0x56A0, 0x56A1, /* 0xA0 */
- 0x56A2, 0x56A4, 0x56A5, 0x56A6, 0x56A7, 0x56A8, 0x56A9, 0x56AA, /* 0xB0 */
- 0x56AB, 0x56AC, 0x56AD, 0x56AE, 0x56B0, 0x56B1, 0x56B2, 0x56B3, /* 0xB0 */
- 0x56B4, 0x56B5, 0x56B6, 0x56B8, 0x56B9, 0x56BA, 0x56BB, 0x56BD, /* 0xC0 */
- 0x56BE, 0x56BF, 0x56C0, 0x56C1, 0x56C2, 0x56C3, 0x56C4, 0x56C5, /* 0xC0 */
- 0x56C6, 0x56C7, 0x56C8, 0x56C9, 0x56CB, 0x56CC, 0x56CD, 0x56CE, /* 0xD0 */
- 0x56CF, 0x56D0, 0x56D1, 0x56D2, 0x56D3, 0x56D5, 0x56D6, 0x56D8, /* 0xD0 */
- 0x56D9, 0x56DC, 0x56E3, 0x56E5, 0x56E6, 0x56E7, 0x56E8, 0x56E9, /* 0xE0 */
- 0x56EA, 0x56EC, 0x56EE, 0x56EF, 0x56F2, 0x56F3, 0x56F6, 0x56F7, /* 0xE0 */
- 0x56F8, 0x56FB, 0x56FC, 0x5700, 0x5701, 0x5702, 0x5705, 0x5707, /* 0xF0 */
- 0x570B, 0x570C, 0x570D, 0x570E, 0x570F, 0x5710, 0x5711 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_88[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5712, 0x5713, 0x5714, 0x5715, 0x5716, 0x5717, 0x5718, 0x5719, /* 0x40 */
- 0x571A, 0x571B, 0x571D, 0x571E, 0x5720, 0x5721, 0x5722, 0x5724, /* 0x40 */
- 0x5725, 0x5726, 0x5727, 0x572B, 0x5731, 0x5732, 0x5734, 0x5735, /* 0x50 */
- 0x5736, 0x5737, 0x5738, 0x573C, 0x573D, 0x573F, 0x5741, 0x5743, /* 0x50 */
- 0x5744, 0x5745, 0x5746, 0x5748, 0x5749, 0x574B, 0x5752, 0x5753, /* 0x60 */
- 0x5754, 0x5755, 0x5756, 0x5758, 0x5759, 0x5762, 0x5763, 0x5765, /* 0x60 */
- 0x5767, 0x576C, 0x576E, 0x5770, 0x5771, 0x5772, 0x5774, 0x5775, /* 0x70 */
- 0x5778, 0x5779, 0x577A, 0x577D, 0x577E, 0x577F, 0x5780, 0, /* 0x70 */
- 0x5781, 0x5787, 0x5788, 0x5789, 0x578A, 0x578D, 0x578E, 0x578F, /* 0x80 */
- 0x5790, 0x5791, 0x5794, 0x5795, 0x5796, 0x5797, 0x5798, 0x5799, /* 0x80 */
- 0x579A, 0x579C, 0x579D, 0x579E, 0x579F, 0x57A5, 0x57A8, 0x57AA, /* 0x90 */
- 0x57AC, 0x57AF, 0x57B0, 0x57B1, 0x57B3, 0x57B5, 0x57B6, 0x57B7, /* 0x90 */
- 0x57B9, 0x57BA, 0x57BB, 0x57BC, 0x57BD, 0x57BE, 0x57BF, 0x57C0, /* 0xA0 */
- 0x57C1, 0x57C4, 0x57C5, 0x57C6, 0x57C7, 0x57C8, 0x57C9, 0x57CA, /* 0xA0 */
- 0x57CC, 0x57CD, 0x57D0, 0x57D1, 0x57D3, 0x57D6, 0x57D7, 0x57DB, /* 0xB0 */
- 0x57DC, 0x57DE, 0x57E1, 0x57E2, 0x57E3, 0x57E5, 0x57E6, 0x57E7, /* 0xB0 */
- 0x57E8, 0x57E9, 0x57EA, 0x57EB, 0x57EC, 0x57EE, 0x57F0, 0x57F1, /* 0xC0 */
- 0x57F2, 0x57F3, 0x57F5, 0x57F6, 0x57F7, 0x57FB, 0x57FC, 0x57FE, /* 0xC0 */
- 0x57FF, 0x5801, 0x5803, 0x5804, 0x5805, 0x5808, 0x5809, 0x580A, /* 0xD0 */
- 0x580C, 0x580E, 0x580F, 0x5810, 0x5812, 0x5813, 0x5814, 0x5816, /* 0xD0 */
- 0x5817, 0x5818, 0x581A, 0x581B, 0x581C, 0x581D, 0x581F, 0x5822, /* 0xE0 */
- 0x5823, 0x5825, 0x5826, 0x5827, 0x5828, 0x5829, 0x582B, 0x582C, /* 0xE0 */
- 0x582D, 0x582E, 0x582F, 0x5831, 0x5832, 0x5833, 0x5834, 0x5836, /* 0xF0 */
- 0x5837, 0x5838, 0x5839, 0x583A, 0x583B, 0x583C, 0x583D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_89[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x583E, 0x583F, 0x5840, 0x5841, 0x5842, 0x5843, 0x5845, 0x5846, /* 0x40 */
- 0x5847, 0x5848, 0x5849, 0x584A, 0x584B, 0x584E, 0x584F, 0x5850, /* 0x40 */
- 0x5852, 0x5853, 0x5855, 0x5856, 0x5857, 0x5859, 0x585A, 0x585B, /* 0x50 */
- 0x585C, 0x585D, 0x585F, 0x5860, 0x5861, 0x5862, 0x5863, 0x5864, /* 0x50 */
- 0x5866, 0x5867, 0x5868, 0x5869, 0x586A, 0x586D, 0x586E, 0x586F, /* 0x60 */
- 0x5870, 0x5871, 0x5872, 0x5873, 0x5874, 0x5875, 0x5876, 0x5877, /* 0x60 */
- 0x5878, 0x5879, 0x587A, 0x587B, 0x587C, 0x587D, 0x587F, 0x5882, /* 0x70 */
- 0x5884, 0x5886, 0x5887, 0x5888, 0x588A, 0x588B, 0x588C, 0, /* 0x70 */
- 0x588D, 0x588E, 0x588F, 0x5890, 0x5891, 0x5894, 0x5895, 0x5896, /* 0x80 */
- 0x5897, 0x5898, 0x589B, 0x589C, 0x589D, 0x58A0, 0x58A1, 0x58A2, /* 0x80 */
- 0x58A3, 0x58A4, 0x58A5, 0x58A6, 0x58A7, 0x58AA, 0x58AB, 0x58AC, /* 0x90 */
- 0x58AD, 0x58AE, 0x58AF, 0x58B0, 0x58B1, 0x58B2, 0x58B3, 0x58B4, /* 0x90 */
- 0x58B5, 0x58B6, 0x58B7, 0x58B8, 0x58B9, 0x58BA, 0x58BB, 0x58BD, /* 0xA0 */
- 0x58BE, 0x58BF, 0x58C0, 0x58C2, 0x58C3, 0x58C4, 0x58C6, 0x58C7, /* 0xA0 */
- 0x58C8, 0x58C9, 0x58CA, 0x58CB, 0x58CC, 0x58CD, 0x58CE, 0x58CF, /* 0xB0 */
- 0x58D0, 0x58D2, 0x58D3, 0x58D4, 0x58D6, 0x58D7, 0x58D8, 0x58D9, /* 0xB0 */
- 0x58DA, 0x58DB, 0x58DC, 0x58DD, 0x58DE, 0x58DF, 0x58E0, 0x58E1, /* 0xC0 */
- 0x58E2, 0x58E3, 0x58E5, 0x58E6, 0x58E7, 0x58E8, 0x58E9, 0x58EA, /* 0xC0 */
- 0x58ED, 0x58EF, 0x58F1, 0x58F2, 0x58F4, 0x58F5, 0x58F7, 0x58F8, /* 0xD0 */
- 0x58FA, 0x58FB, 0x58FC, 0x58FD, 0x58FE, 0x58FF, 0x5900, 0x5901, /* 0xD0 */
- 0x5903, 0x5905, 0x5906, 0x5908, 0x5909, 0x590A, 0x590B, 0x590C, /* 0xE0 */
- 0x590E, 0x5910, 0x5911, 0x5912, 0x5913, 0x5917, 0x5918, 0x591B, /* 0xE0 */
- 0x591D, 0x591E, 0x5920, 0x5921, 0x5922, 0x5923, 0x5926, 0x5928, /* 0xF0 */
- 0x592C, 0x5930, 0x5932, 0x5933, 0x5935, 0x5936, 0x593B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_8A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x593D, 0x593E, 0x593F, 0x5940, 0x5943, 0x5945, 0x5946, 0x594A, /* 0x40 */
- 0x594C, 0x594D, 0x5950, 0x5952, 0x5953, 0x5959, 0x595B, 0x595C, /* 0x40 */
- 0x595D, 0x595E, 0x595F, 0x5961, 0x5963, 0x5964, 0x5966, 0x5967, /* 0x50 */
- 0x5968, 0x5969, 0x596A, 0x596B, 0x596C, 0x596D, 0x596E, 0x596F, /* 0x50 */
- 0x5970, 0x5971, 0x5972, 0x5975, 0x5977, 0x597A, 0x597B, 0x597C, /* 0x60 */
- 0x597E, 0x597F, 0x5980, 0x5985, 0x5989, 0x598B, 0x598C, 0x598E, /* 0x60 */
- 0x598F, 0x5990, 0x5991, 0x5994, 0x5995, 0x5998, 0x599A, 0x599B, /* 0x70 */
- 0x599C, 0x599D, 0x599F, 0x59A0, 0x59A1, 0x59A2, 0x59A6, 0, /* 0x70 */
- 0x59A7, 0x59AC, 0x59AD, 0x59B0, 0x59B1, 0x59B3, 0x59B4, 0x59B5, /* 0x80 */
- 0x59B6, 0x59B7, 0x59B8, 0x59BA, 0x59BC, 0x59BD, 0x59BF, 0x59C0, /* 0x80 */
- 0x59C1, 0x59C2, 0x59C3, 0x59C4, 0x59C5, 0x59C7, 0x59C8, 0x59C9, /* 0x90 */
- 0x59CC, 0x59CD, 0x59CE, 0x59CF, 0x59D5, 0x59D6, 0x59D9, 0x59DB, /* 0x90 */
- 0x59DE, 0x59DF, 0x59E0, 0x59E1, 0x59E2, 0x59E4, 0x59E6, 0x59E7, /* 0xA0 */
- 0x59E9, 0x59EA, 0x59EB, 0x59ED, 0x59EE, 0x59EF, 0x59F0, 0x59F1, /* 0xA0 */
- 0x59F2, 0x59F3, 0x59F4, 0x59F5, 0x59F6, 0x59F7, 0x59F8, 0x59FA, /* 0xB0 */
- 0x59FC, 0x59FD, 0x59FE, 0x5A00, 0x5A02, 0x5A0A, 0x5A0B, 0x5A0D, /* 0xB0 */
- 0x5A0E, 0x5A0F, 0x5A10, 0x5A12, 0x5A14, 0x5A15, 0x5A16, 0x5A17, /* 0xC0 */
- 0x5A19, 0x5A1A, 0x5A1B, 0x5A1D, 0x5A1E, 0x5A21, 0x5A22, 0x5A24, /* 0xC0 */
- 0x5A26, 0x5A27, 0x5A28, 0x5A2A, 0x5A2B, 0x5A2C, 0x5A2D, 0x5A2E, /* 0xD0 */
- 0x5A2F, 0x5A30, 0x5A33, 0x5A35, 0x5A37, 0x5A38, 0x5A39, 0x5A3A, /* 0xD0 */
- 0x5A3B, 0x5A3D, 0x5A3E, 0x5A3F, 0x5A41, 0x5A42, 0x5A43, 0x5A44, /* 0xE0 */
- 0x5A45, 0x5A47, 0x5A48, 0x5A4B, 0x5A4C, 0x5A4D, 0x5A4E, 0x5A4F, /* 0xE0 */
- 0x5A50, 0x5A51, 0x5A52, 0x5A53, 0x5A54, 0x5A56, 0x5A57, 0x5A58, /* 0xF0 */
- 0x5A59, 0x5A5B, 0x5A5C, 0x5A5D, 0x5A5E, 0x5A5F, 0x5A60 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_8B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5A61, 0x5A63, 0x5A64, 0x5A65, 0x5A66, 0x5A68, 0x5A69, 0x5A6B, /* 0x40 */
- 0x5A6C, 0x5A6D, 0x5A6E, 0x5A6F, 0x5A70, 0x5A71, 0x5A72, 0x5A73, /* 0x40 */
- 0x5A78, 0x5A79, 0x5A7B, 0x5A7C, 0x5A7D, 0x5A7E, 0x5A80, 0x5A81, /* 0x50 */
- 0x5A82, 0x5A83, 0x5A84, 0x5A85, 0x5A86, 0x5A87, 0x5A88, 0x5A89, /* 0x50 */
- 0x5A8A, 0x5A8B, 0x5A8C, 0x5A8D, 0x5A8E, 0x5A8F, 0x5A90, 0x5A91, /* 0x60 */
- 0x5A93, 0x5A94, 0x5A95, 0x5A96, 0x5A97, 0x5A98, 0x5A99, 0x5A9C, /* 0x60 */
- 0x5A9D, 0x5A9E, 0x5A9F, 0x5AA0, 0x5AA1, 0x5AA2, 0x5AA3, 0x5AA4, /* 0x70 */
- 0x5AA5, 0x5AA6, 0x5AA7, 0x5AA8, 0x5AA9, 0x5AAB, 0x5AAC, 0, /* 0x70 */
- 0x5AAD, 0x5AAE, 0x5AAF, 0x5AB0, 0x5AB1, 0x5AB4, 0x5AB6, 0x5AB7, /* 0x80 */
- 0x5AB9, 0x5ABA, 0x5ABB, 0x5ABC, 0x5ABD, 0x5ABF, 0x5AC0, 0x5AC3, /* 0x80 */
- 0x5AC4, 0x5AC5, 0x5AC6, 0x5AC7, 0x5AC8, 0x5ACA, 0x5ACB, 0x5ACD, /* 0x90 */
- 0x5ACE, 0x5ACF, 0x5AD0, 0x5AD1, 0x5AD3, 0x5AD5, 0x5AD7, 0x5AD9, /* 0x90 */
- 0x5ADA, 0x5ADB, 0x5ADD, 0x5ADE, 0x5ADF, 0x5AE2, 0x5AE4, 0x5AE5, /* 0xA0 */
- 0x5AE7, 0x5AE8, 0x5AEA, 0x5AEC, 0x5AED, 0x5AEE, 0x5AEF, 0x5AF0, /* 0xA0 */
- 0x5AF2, 0x5AF3, 0x5AF4, 0x5AF5, 0x5AF6, 0x5AF7, 0x5AF8, 0x5AF9, /* 0xB0 */
- 0x5AFA, 0x5AFB, 0x5AFC, 0x5AFD, 0x5AFE, 0x5AFF, 0x5B00, 0x5B01, /* 0xB0 */
- 0x5B02, 0x5B03, 0x5B04, 0x5B05, 0x5B06, 0x5B07, 0x5B08, 0x5B0A, /* 0xC0 */
- 0x5B0B, 0x5B0C, 0x5B0D, 0x5B0E, 0x5B0F, 0x5B10, 0x5B11, 0x5B12, /* 0xC0 */
- 0x5B13, 0x5B14, 0x5B15, 0x5B18, 0x5B19, 0x5B1A, 0x5B1B, 0x5B1C, /* 0xD0 */
- 0x5B1D, 0x5B1E, 0x5B1F, 0x5B20, 0x5B21, 0x5B22, 0x5B23, 0x5B24, /* 0xD0 */
- 0x5B25, 0x5B26, 0x5B27, 0x5B28, 0x5B29, 0x5B2A, 0x5B2B, 0x5B2C, /* 0xE0 */
- 0x5B2D, 0x5B2E, 0x5B2F, 0x5B30, 0x5B31, 0x5B33, 0x5B35, 0x5B36, /* 0xE0 */
- 0x5B38, 0x5B39, 0x5B3A, 0x5B3B, 0x5B3C, 0x5B3D, 0x5B3E, 0x5B3F, /* 0xF0 */
- 0x5B41, 0x5B42, 0x5B43, 0x5B44, 0x5B45, 0x5B46, 0x5B47 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_8C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5B48, 0x5B49, 0x5B4A, 0x5B4B, 0x5B4C, 0x5B4D, 0x5B4E, 0x5B4F, /* 0x40 */
- 0x5B52, 0x5B56, 0x5B5E, 0x5B60, 0x5B61, 0x5B67, 0x5B68, 0x5B6B, /* 0x40 */
- 0x5B6D, 0x5B6E, 0x5B6F, 0x5B72, 0x5B74, 0x5B76, 0x5B77, 0x5B78, /* 0x50 */
- 0x5B79, 0x5B7B, 0x5B7C, 0x5B7E, 0x5B7F, 0x5B82, 0x5B86, 0x5B8A, /* 0x50 */
- 0x5B8D, 0x5B8E, 0x5B90, 0x5B91, 0x5B92, 0x5B94, 0x5B96, 0x5B9F, /* 0x60 */
- 0x5BA7, 0x5BA8, 0x5BA9, 0x5BAC, 0x5BAD, 0x5BAE, 0x5BAF, 0x5BB1, /* 0x60 */
- 0x5BB2, 0x5BB7, 0x5BBA, 0x5BBB, 0x5BBC, 0x5BC0, 0x5BC1, 0x5BC3, /* 0x70 */
- 0x5BC8, 0x5BC9, 0x5BCA, 0x5BCB, 0x5BCD, 0x5BCE, 0x5BCF, 0, /* 0x70 */
- 0x5BD1, 0x5BD4, 0x5BD5, 0x5BD6, 0x5BD7, 0x5BD8, 0x5BD9, 0x5BDA, /* 0x80 */
- 0x5BDB, 0x5BDC, 0x5BE0, 0x5BE2, 0x5BE3, 0x5BE6, 0x5BE7, 0x5BE9, /* 0x80 */
- 0x5BEA, 0x5BEB, 0x5BEC, 0x5BED, 0x5BEF, 0x5BF1, 0x5BF2, 0x5BF3, /* 0x90 */
- 0x5BF4, 0x5BF5, 0x5BF6, 0x5BF7, 0x5BFD, 0x5BFE, 0x5C00, 0x5C02, /* 0x90 */
- 0x5C03, 0x5C05, 0x5C07, 0x5C08, 0x5C0B, 0x5C0C, 0x5C0D, 0x5C0E, /* 0xA0 */
- 0x5C10, 0x5C12, 0x5C13, 0x5C17, 0x5C19, 0x5C1B, 0x5C1E, 0x5C1F, /* 0xA0 */
- 0x5C20, 0x5C21, 0x5C23, 0x5C26, 0x5C28, 0x5C29, 0x5C2A, 0x5C2B, /* 0xB0 */
- 0x5C2D, 0x5C2E, 0x5C2F, 0x5C30, 0x5C32, 0x5C33, 0x5C35, 0x5C36, /* 0xB0 */
- 0x5C37, 0x5C43, 0x5C44, 0x5C46, 0x5C47, 0x5C4C, 0x5C4D, 0x5C52, /* 0xC0 */
- 0x5C53, 0x5C54, 0x5C56, 0x5C57, 0x5C58, 0x5C5A, 0x5C5B, 0x5C5C, /* 0xC0 */
- 0x5C5D, 0x5C5F, 0x5C62, 0x5C64, 0x5C67, 0x5C68, 0x5C69, 0x5C6A, /* 0xD0 */
- 0x5C6B, 0x5C6C, 0x5C6D, 0x5C70, 0x5C72, 0x5C73, 0x5C74, 0x5C75, /* 0xD0 */
- 0x5C76, 0x5C77, 0x5C78, 0x5C7B, 0x5C7C, 0x5C7D, 0x5C7E, 0x5C80, /* 0xE0 */
- 0x5C83, 0x5C84, 0x5C85, 0x5C86, 0x5C87, 0x5C89, 0x5C8A, 0x5C8B, /* 0xE0 */
- 0x5C8E, 0x5C8F, 0x5C92, 0x5C93, 0x5C95, 0x5C9D, 0x5C9E, 0x5C9F, /* 0xF0 */
- 0x5CA0, 0x5CA1, 0x5CA4, 0x5CA5, 0x5CA6, 0x5CA7, 0x5CA8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_8D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5CAA, 0x5CAE, 0x5CAF, 0x5CB0, 0x5CB2, 0x5CB4, 0x5CB6, 0x5CB9, /* 0x40 */
- 0x5CBA, 0x5CBB, 0x5CBC, 0x5CBE, 0x5CC0, 0x5CC2, 0x5CC3, 0x5CC5, /* 0x40 */
- 0x5CC6, 0x5CC7, 0x5CC8, 0x5CC9, 0x5CCA, 0x5CCC, 0x5CCD, 0x5CCE, /* 0x50 */
- 0x5CCF, 0x5CD0, 0x5CD1, 0x5CD3, 0x5CD4, 0x5CD5, 0x5CD6, 0x5CD7, /* 0x50 */
- 0x5CD8, 0x5CDA, 0x5CDB, 0x5CDC, 0x5CDD, 0x5CDE, 0x5CDF, 0x5CE0, /* 0x60 */
- 0x5CE2, 0x5CE3, 0x5CE7, 0x5CE9, 0x5CEB, 0x5CEC, 0x5CEE, 0x5CEF, /* 0x60 */
- 0x5CF1, 0x5CF2, 0x5CF3, 0x5CF4, 0x5CF5, 0x5CF6, 0x5CF7, 0x5CF8, /* 0x70 */
- 0x5CF9, 0x5CFA, 0x5CFC, 0x5CFD, 0x5CFE, 0x5CFF, 0x5D00, 0, /* 0x70 */
- 0x5D01, 0x5D04, 0x5D05, 0x5D08, 0x5D09, 0x5D0A, 0x5D0B, 0x5D0C, /* 0x80 */
- 0x5D0D, 0x5D0F, 0x5D10, 0x5D11, 0x5D12, 0x5D13, 0x5D15, 0x5D17, /* 0x80 */
- 0x5D18, 0x5D19, 0x5D1A, 0x5D1C, 0x5D1D, 0x5D1F, 0x5D20, 0x5D21, /* 0x90 */
- 0x5D22, 0x5D23, 0x5D25, 0x5D28, 0x5D2A, 0x5D2B, 0x5D2C, 0x5D2F, /* 0x90 */
- 0x5D30, 0x5D31, 0x5D32, 0x5D33, 0x5D35, 0x5D36, 0x5D37, 0x5D38, /* 0xA0 */
- 0x5D39, 0x5D3A, 0x5D3B, 0x5D3C, 0x5D3F, 0x5D40, 0x5D41, 0x5D42, /* 0xA0 */
- 0x5D43, 0x5D44, 0x5D45, 0x5D46, 0x5D48, 0x5D49, 0x5D4D, 0x5D4E, /* 0xB0 */
- 0x5D4F, 0x5D50, 0x5D51, 0x5D52, 0x5D53, 0x5D54, 0x5D55, 0x5D56, /* 0xB0 */
- 0x5D57, 0x5D59, 0x5D5A, 0x5D5C, 0x5D5E, 0x5D5F, 0x5D60, 0x5D61, /* 0xC0 */
- 0x5D62, 0x5D63, 0x5D64, 0x5D65, 0x5D66, 0x5D67, 0x5D68, 0x5D6A, /* 0xC0 */
- 0x5D6D, 0x5D6E, 0x5D70, 0x5D71, 0x5D72, 0x5D73, 0x5D75, 0x5D76, /* 0xD0 */
- 0x5D77, 0x5D78, 0x5D79, 0x5D7A, 0x5D7B, 0x5D7C, 0x5D7D, 0x5D7E, /* 0xD0 */
- 0x5D7F, 0x5D80, 0x5D81, 0x5D83, 0x5D84, 0x5D85, 0x5D86, 0x5D87, /* 0xE0 */
- 0x5D88, 0x5D89, 0x5D8A, 0x5D8B, 0x5D8C, 0x5D8D, 0x5D8E, 0x5D8F, /* 0xE0 */
- 0x5D90, 0x5D91, 0x5D92, 0x5D93, 0x5D94, 0x5D95, 0x5D96, 0x5D97, /* 0xF0 */
- 0x5D98, 0x5D9A, 0x5D9B, 0x5D9C, 0x5D9E, 0x5D9F, 0x5DA0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_8E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5DA1, 0x5DA2, 0x5DA3, 0x5DA4, 0x5DA5, 0x5DA6, 0x5DA7, 0x5DA8, /* 0x40 */
- 0x5DA9, 0x5DAA, 0x5DAB, 0x5DAC, 0x5DAD, 0x5DAE, 0x5DAF, 0x5DB0, /* 0x40 */
- 0x5DB1, 0x5DB2, 0x5DB3, 0x5DB4, 0x5DB5, 0x5DB6, 0x5DB8, 0x5DB9, /* 0x50 */
- 0x5DBA, 0x5DBB, 0x5DBC, 0x5DBD, 0x5DBE, 0x5DBF, 0x5DC0, 0x5DC1, /* 0x50 */
- 0x5DC2, 0x5DC3, 0x5DC4, 0x5DC6, 0x5DC7, 0x5DC8, 0x5DC9, 0x5DCA, /* 0x60 */
- 0x5DCB, 0x5DCC, 0x5DCE, 0x5DCF, 0x5DD0, 0x5DD1, 0x5DD2, 0x5DD3, /* 0x60 */
- 0x5DD4, 0x5DD5, 0x5DD6, 0x5DD7, 0x5DD8, 0x5DD9, 0x5DDA, 0x5DDC, /* 0x70 */
- 0x5DDF, 0x5DE0, 0x5DE3, 0x5DE4, 0x5DEA, 0x5DEC, 0x5DED, 0, /* 0x70 */
- 0x5DF0, 0x5DF5, 0x5DF6, 0x5DF8, 0x5DF9, 0x5DFA, 0x5DFB, 0x5DFC, /* 0x80 */
- 0x5DFF, 0x5E00, 0x5E04, 0x5E07, 0x5E09, 0x5E0A, 0x5E0B, 0x5E0D, /* 0x80 */
- 0x5E0E, 0x5E12, 0x5E13, 0x5E17, 0x5E1E, 0x5E1F, 0x5E20, 0x5E21, /* 0x90 */
- 0x5E22, 0x5E23, 0x5E24, 0x5E25, 0x5E28, 0x5E29, 0x5E2A, 0x5E2B, /* 0x90 */
- 0x5E2C, 0x5E2F, 0x5E30, 0x5E32, 0x5E33, 0x5E34, 0x5E35, 0x5E36, /* 0xA0 */
- 0x5E39, 0x5E3A, 0x5E3E, 0x5E3F, 0x5E40, 0x5E41, 0x5E43, 0x5E46, /* 0xA0 */
- 0x5E47, 0x5E48, 0x5E49, 0x5E4A, 0x5E4B, 0x5E4D, 0x5E4E, 0x5E4F, /* 0xB0 */
- 0x5E50, 0x5E51, 0x5E52, 0x5E53, 0x5E56, 0x5E57, 0x5E58, 0x5E59, /* 0xB0 */
- 0x5E5A, 0x5E5C, 0x5E5D, 0x5E5F, 0x5E60, 0x5E63, 0x5E64, 0x5E65, /* 0xC0 */
- 0x5E66, 0x5E67, 0x5E68, 0x5E69, 0x5E6A, 0x5E6B, 0x5E6C, 0x5E6D, /* 0xC0 */
- 0x5E6E, 0x5E6F, 0x5E70, 0x5E71, 0x5E75, 0x5E77, 0x5E79, 0x5E7E, /* 0xD0 */
- 0x5E81, 0x5E82, 0x5E83, 0x5E85, 0x5E88, 0x5E89, 0x5E8C, 0x5E8D, /* 0xD0 */
- 0x5E8E, 0x5E92, 0x5E98, 0x5E9B, 0x5E9D, 0x5EA1, 0x5EA2, 0x5EA3, /* 0xE0 */
- 0x5EA4, 0x5EA8, 0x5EA9, 0x5EAA, 0x5EAB, 0x5EAC, 0x5EAE, 0x5EAF, /* 0xE0 */
- 0x5EB0, 0x5EB1, 0x5EB2, 0x5EB4, 0x5EBA, 0x5EBB, 0x5EBC, 0x5EBD, /* 0xF0 */
- 0x5EBF, 0x5EC0, 0x5EC1, 0x5EC2, 0x5EC3, 0x5EC4, 0x5EC5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_8F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5EC6, 0x5EC7, 0x5EC8, 0x5ECB, 0x5ECC, 0x5ECD, 0x5ECE, 0x5ECF, /* 0x40 */
- 0x5ED0, 0x5ED4, 0x5ED5, 0x5ED7, 0x5ED8, 0x5ED9, 0x5EDA, 0x5EDC, /* 0x40 */
- 0x5EDD, 0x5EDE, 0x5EDF, 0x5EE0, 0x5EE1, 0x5EE2, 0x5EE3, 0x5EE4, /* 0x50 */
- 0x5EE5, 0x5EE6, 0x5EE7, 0x5EE9, 0x5EEB, 0x5EEC, 0x5EED, 0x5EEE, /* 0x50 */
- 0x5EEF, 0x5EF0, 0x5EF1, 0x5EF2, 0x5EF3, 0x5EF5, 0x5EF8, 0x5EF9, /* 0x60 */
- 0x5EFB, 0x5EFC, 0x5EFD, 0x5F05, 0x5F06, 0x5F07, 0x5F09, 0x5F0C, /* 0x60 */
- 0x5F0D, 0x5F0E, 0x5F10, 0x5F12, 0x5F14, 0x5F16, 0x5F19, 0x5F1A, /* 0x70 */
- 0x5F1C, 0x5F1D, 0x5F1E, 0x5F21, 0x5F22, 0x5F23, 0x5F24, 0, /* 0x70 */
- 0x5F28, 0x5F2B, 0x5F2C, 0x5F2E, 0x5F30, 0x5F32, 0x5F33, 0x5F34, /* 0x80 */
- 0x5F35, 0x5F36, 0x5F37, 0x5F38, 0x5F3B, 0x5F3D, 0x5F3E, 0x5F3F, /* 0x80 */
- 0x5F41, 0x5F42, 0x5F43, 0x5F44, 0x5F45, 0x5F46, 0x5F47, 0x5F48, /* 0x90 */
- 0x5F49, 0x5F4A, 0x5F4B, 0x5F4C, 0x5F4D, 0x5F4E, 0x5F4F, 0x5F51, /* 0x90 */
- 0x5F54, 0x5F59, 0x5F5A, 0x5F5B, 0x5F5C, 0x5F5E, 0x5F5F, 0x5F60, /* 0xA0 */
- 0x5F63, 0x5F65, 0x5F67, 0x5F68, 0x5F6B, 0x5F6E, 0x5F6F, 0x5F72, /* 0xA0 */
- 0x5F74, 0x5F75, 0x5F76, 0x5F78, 0x5F7A, 0x5F7D, 0x5F7E, 0x5F7F, /* 0xB0 */
- 0x5F83, 0x5F86, 0x5F8D, 0x5F8E, 0x5F8F, 0x5F91, 0x5F93, 0x5F94, /* 0xB0 */
- 0x5F96, 0x5F9A, 0x5F9B, 0x5F9D, 0x5F9E, 0x5F9F, 0x5FA0, 0x5FA2, /* 0xC0 */
- 0x5FA3, 0x5FA4, 0x5FA5, 0x5FA6, 0x5FA7, 0x5FA9, 0x5FAB, 0x5FAC, /* 0xC0 */
- 0x5FAF, 0x5FB0, 0x5FB1, 0x5FB2, 0x5FB3, 0x5FB4, 0x5FB6, 0x5FB8, /* 0xD0 */
- 0x5FB9, 0x5FBA, 0x5FBB, 0x5FBE, 0x5FBF, 0x5FC0, 0x5FC1, 0x5FC2, /* 0xD0 */
- 0x5FC7, 0x5FC8, 0x5FCA, 0x5FCB, 0x5FCE, 0x5FD3, 0x5FD4, 0x5FD5, /* 0xE0 */
- 0x5FDA, 0x5FDB, 0x5FDC, 0x5FDE, 0x5FDF, 0x5FE2, 0x5FE3, 0x5FE5, /* 0xE0 */
- 0x5FE6, 0x5FE8, 0x5FE9, 0x5FEC, 0x5FEF, 0x5FF0, 0x5FF2, 0x5FF3, /* 0xF0 */
- 0x5FF4, 0x5FF6, 0x5FF7, 0x5FF9, 0x5FFA, 0x5FFC, 0x6007 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_90[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6008, 0x6009, 0x600B, 0x600C, 0x6010, 0x6011, 0x6013, 0x6017, /* 0x40 */
- 0x6018, 0x601A, 0x601E, 0x601F, 0x6022, 0x6023, 0x6024, 0x602C, /* 0x40 */
- 0x602D, 0x602E, 0x6030, 0x6031, 0x6032, 0x6033, 0x6034, 0x6036, /* 0x50 */
- 0x6037, 0x6038, 0x6039, 0x603A, 0x603D, 0x603E, 0x6040, 0x6044, /* 0x50 */
- 0x6045, 0x6046, 0x6047, 0x6048, 0x6049, 0x604A, 0x604C, 0x604E, /* 0x60 */
- 0x604F, 0x6051, 0x6053, 0x6054, 0x6056, 0x6057, 0x6058, 0x605B, /* 0x60 */
- 0x605C, 0x605E, 0x605F, 0x6060, 0x6061, 0x6065, 0x6066, 0x606E, /* 0x70 */
- 0x6071, 0x6072, 0x6074, 0x6075, 0x6077, 0x607E, 0x6080, 0, /* 0x70 */
- 0x6081, 0x6082, 0x6085, 0x6086, 0x6087, 0x6088, 0x608A, 0x608B, /* 0x80 */
- 0x608E, 0x608F, 0x6090, 0x6091, 0x6093, 0x6095, 0x6097, 0x6098, /* 0x80 */
- 0x6099, 0x609C, 0x609E, 0x60A1, 0x60A2, 0x60A4, 0x60A5, 0x60A7, /* 0x90 */
- 0x60A9, 0x60AA, 0x60AE, 0x60B0, 0x60B3, 0x60B5, 0x60B6, 0x60B7, /* 0x90 */
- 0x60B9, 0x60BA, 0x60BD, 0x60BE, 0x60BF, 0x60C0, 0x60C1, 0x60C2, /* 0xA0 */
- 0x60C3, 0x60C4, 0x60C7, 0x60C8, 0x60C9, 0x60CC, 0x60CD, 0x60CE, /* 0xA0 */
- 0x60CF, 0x60D0, 0x60D2, 0x60D3, 0x60D4, 0x60D6, 0x60D7, 0x60D9, /* 0xB0 */
- 0x60DB, 0x60DE, 0x60E1, 0x60E2, 0x60E3, 0x60E4, 0x60E5, 0x60EA, /* 0xB0 */
- 0x60F1, 0x60F2, 0x60F5, 0x60F7, 0x60F8, 0x60FB, 0x60FC, 0x60FD, /* 0xC0 */
- 0x60FE, 0x60FF, 0x6102, 0x6103, 0x6104, 0x6105, 0x6107, 0x610A, /* 0xC0 */
- 0x610B, 0x610C, 0x6110, 0x6111, 0x6112, 0x6113, 0x6114, 0x6116, /* 0xD0 */
- 0x6117, 0x6118, 0x6119, 0x611B, 0x611C, 0x611D, 0x611E, 0x6121, /* 0xD0 */
- 0x6122, 0x6125, 0x6128, 0x6129, 0x612A, 0x612C, 0x612D, 0x612E, /* 0xE0 */
- 0x612F, 0x6130, 0x6131, 0x6132, 0x6133, 0x6134, 0x6135, 0x6136, /* 0xE0 */
- 0x6137, 0x6138, 0x6139, 0x613A, 0x613B, 0x613C, 0x613D, 0x613E, /* 0xF0 */
- 0x6140, 0x6141, 0x6142, 0x6143, 0x6144, 0x6145, 0x6146 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_91[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6147, 0x6149, 0x614B, 0x614D, 0x614F, 0x6150, 0x6152, 0x6153, /* 0x40 */
- 0x6154, 0x6156, 0x6157, 0x6158, 0x6159, 0x615A, 0x615B, 0x615C, /* 0x40 */
- 0x615E, 0x615F, 0x6160, 0x6161, 0x6163, 0x6164, 0x6165, 0x6166, /* 0x50 */
- 0x6169, 0x616A, 0x616B, 0x616C, 0x616D, 0x616E, 0x616F, 0x6171, /* 0x50 */
- 0x6172, 0x6173, 0x6174, 0x6176, 0x6178, 0x6179, 0x617A, 0x617B, /* 0x60 */
- 0x617C, 0x617D, 0x617E, 0x617F, 0x6180, 0x6181, 0x6182, 0x6183, /* 0x60 */
- 0x6184, 0x6185, 0x6186, 0x6187, 0x6188, 0x6189, 0x618A, 0x618C, /* 0x70 */
- 0x618D, 0x618F, 0x6190, 0x6191, 0x6192, 0x6193, 0x6195, 0, /* 0x70 */
- 0x6196, 0x6197, 0x6198, 0x6199, 0x619A, 0x619B, 0x619C, 0x619E, /* 0x80 */
- 0x619F, 0x61A0, 0x61A1, 0x61A2, 0x61A3, 0x61A4, 0x61A5, 0x61A6, /* 0x80 */
- 0x61AA, 0x61AB, 0x61AD, 0x61AE, 0x61AF, 0x61B0, 0x61B1, 0x61B2, /* 0x90 */
- 0x61B3, 0x61B4, 0x61B5, 0x61B6, 0x61B8, 0x61B9, 0x61BA, 0x61BB, /* 0x90 */
- 0x61BC, 0x61BD, 0x61BF, 0x61C0, 0x61C1, 0x61C3, 0x61C4, 0x61C5, /* 0xA0 */
- 0x61C6, 0x61C7, 0x61C9, 0x61CC, 0x61CD, 0x61CE, 0x61CF, 0x61D0, /* 0xA0 */
- 0x61D3, 0x61D5, 0x61D6, 0x61D7, 0x61D8, 0x61D9, 0x61DA, 0x61DB, /* 0xB0 */
- 0x61DC, 0x61DD, 0x61DE, 0x61DF, 0x61E0, 0x61E1, 0x61E2, 0x61E3, /* 0xB0 */
- 0x61E4, 0x61E5, 0x61E7, 0x61E8, 0x61E9, 0x61EA, 0x61EB, 0x61EC, /* 0xC0 */
- 0x61ED, 0x61EE, 0x61EF, 0x61F0, 0x61F1, 0x61F2, 0x61F3, 0x61F4, /* 0xC0 */
- 0x61F6, 0x61F7, 0x61F8, 0x61F9, 0x61FA, 0x61FB, 0x61FC, 0x61FD, /* 0xD0 */
- 0x61FE, 0x6200, 0x6201, 0x6202, 0x6203, 0x6204, 0x6205, 0x6207, /* 0xD0 */
- 0x6209, 0x6213, 0x6214, 0x6219, 0x621C, 0x621D, 0x621E, 0x6220, /* 0xE0 */
- 0x6223, 0x6226, 0x6227, 0x6228, 0x6229, 0x622B, 0x622D, 0x622F, /* 0xE0 */
- 0x6230, 0x6231, 0x6232, 0x6235, 0x6236, 0x6238, 0x6239, 0x623A, /* 0xF0 */
- 0x623B, 0x623C, 0x6242, 0x6244, 0x6245, 0x6246, 0x624A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_92[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x624F, 0x6250, 0x6255, 0x6256, 0x6257, 0x6259, 0x625A, 0x625C, /* 0x40 */
- 0x625D, 0x625E, 0x625F, 0x6260, 0x6261, 0x6262, 0x6264, 0x6265, /* 0x40 */
- 0x6268, 0x6271, 0x6272, 0x6274, 0x6275, 0x6277, 0x6278, 0x627A, /* 0x50 */
- 0x627B, 0x627D, 0x6281, 0x6282, 0x6283, 0x6285, 0x6286, 0x6287, /* 0x50 */
- 0x6288, 0x628B, 0x628C, 0x628D, 0x628E, 0x628F, 0x6290, 0x6294, /* 0x60 */
- 0x6299, 0x629C, 0x629D, 0x629E, 0x62A3, 0x62A6, 0x62A7, 0x62A9, /* 0x60 */
- 0x62AA, 0x62AD, 0x62AE, 0x62AF, 0x62B0, 0x62B2, 0x62B3, 0x62B4, /* 0x70 */
- 0x62B6, 0x62B7, 0x62B8, 0x62BA, 0x62BE, 0x62C0, 0x62C1, 0, /* 0x70 */
- 0x62C3, 0x62CB, 0x62CF, 0x62D1, 0x62D5, 0x62DD, 0x62DE, 0x62E0, /* 0x80 */
- 0x62E1, 0x62E4, 0x62EA, 0x62EB, 0x62F0, 0x62F2, 0x62F5, 0x62F8, /* 0x80 */
- 0x62F9, 0x62FA, 0x62FB, 0x6300, 0x6303, 0x6304, 0x6305, 0x6306, /* 0x90 */
- 0x630A, 0x630B, 0x630C, 0x630D, 0x630F, 0x6310, 0x6312, 0x6313, /* 0x90 */
- 0x6314, 0x6315, 0x6317, 0x6318, 0x6319, 0x631C, 0x6326, 0x6327, /* 0xA0 */
- 0x6329, 0x632C, 0x632D, 0x632E, 0x6330, 0x6331, 0x6333, 0x6334, /* 0xA0 */
- 0x6335, 0x6336, 0x6337, 0x6338, 0x633B, 0x633C, 0x633E, 0x633F, /* 0xB0 */
- 0x6340, 0x6341, 0x6344, 0x6347, 0x6348, 0x634A, 0x6351, 0x6352, /* 0xB0 */
- 0x6353, 0x6354, 0x6356, 0x6357, 0x6358, 0x6359, 0x635A, 0x635B, /* 0xC0 */
- 0x635C, 0x635D, 0x6360, 0x6364, 0x6365, 0x6366, 0x6368, 0x636A, /* 0xC0 */
- 0x636B, 0x636C, 0x636F, 0x6370, 0x6372, 0x6373, 0x6374, 0x6375, /* 0xD0 */
- 0x6378, 0x6379, 0x637C, 0x637D, 0x637E, 0x637F, 0x6381, 0x6383, /* 0xD0 */
- 0x6384, 0x6385, 0x6386, 0x638B, 0x638D, 0x6391, 0x6393, 0x6394, /* 0xE0 */
- 0x6395, 0x6397, 0x6399, 0x639A, 0x639B, 0x639C, 0x639D, 0x639E, /* 0xE0 */
- 0x639F, 0x63A1, 0x63A4, 0x63A6, 0x63AB, 0x63AF, 0x63B1, 0x63B2, /* 0xF0 */
- 0x63B5, 0x63B6, 0x63B9, 0x63BB, 0x63BD, 0x63BF, 0x63C0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_93[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x63C1, 0x63C2, 0x63C3, 0x63C5, 0x63C7, 0x63C8, 0x63CA, 0x63CB, /* 0x40 */
- 0x63CC, 0x63D1, 0x63D3, 0x63D4, 0x63D5, 0x63D7, 0x63D8, 0x63D9, /* 0x40 */
- 0x63DA, 0x63DB, 0x63DC, 0x63DD, 0x63DF, 0x63E2, 0x63E4, 0x63E5, /* 0x50 */
- 0x63E6, 0x63E7, 0x63E8, 0x63EB, 0x63EC, 0x63EE, 0x63EF, 0x63F0, /* 0x50 */
- 0x63F1, 0x63F3, 0x63F5, 0x63F7, 0x63F9, 0x63FA, 0x63FB, 0x63FC, /* 0x60 */
- 0x63FE, 0x6403, 0x6404, 0x6406, 0x6407, 0x6408, 0x6409, 0x640A, /* 0x60 */
- 0x640D, 0x640E, 0x6411, 0x6412, 0x6415, 0x6416, 0x6417, 0x6418, /* 0x70 */
- 0x6419, 0x641A, 0x641D, 0x641F, 0x6422, 0x6423, 0x6424, 0, /* 0x70 */
- 0x6425, 0x6427, 0x6428, 0x6429, 0x642B, 0x642E, 0x642F, 0x6430, /* 0x80 */
- 0x6431, 0x6432, 0x6433, 0x6435, 0x6436, 0x6437, 0x6438, 0x6439, /* 0x80 */
- 0x643B, 0x643C, 0x643E, 0x6440, 0x6442, 0x6443, 0x6449, 0x644B, /* 0x90 */
- 0x644C, 0x644D, 0x644E, 0x644F, 0x6450, 0x6451, 0x6453, 0x6455, /* 0x90 */
- 0x6456, 0x6457, 0x6459, 0x645A, 0x645B, 0x645C, 0x645D, 0x645F, /* 0xA0 */
- 0x6460, 0x6461, 0x6462, 0x6463, 0x6464, 0x6465, 0x6466, 0x6468, /* 0xA0 */
- 0x646A, 0x646B, 0x646C, 0x646E, 0x646F, 0x6470, 0x6471, 0x6472, /* 0xB0 */
- 0x6473, 0x6474, 0x6475, 0x6476, 0x6477, 0x647B, 0x647C, 0x647D, /* 0xB0 */
- 0x647E, 0x647F, 0x6480, 0x6481, 0x6483, 0x6486, 0x6488, 0x6489, /* 0xC0 */
- 0x648A, 0x648B, 0x648C, 0x648D, 0x648E, 0x648F, 0x6490, 0x6493, /* 0xC0 */
- 0x6494, 0x6497, 0x6498, 0x649A, 0x649B, 0x649C, 0x649D, 0x649F, /* 0xD0 */
- 0x64A0, 0x64A1, 0x64A2, 0x64A3, 0x64A5, 0x64A6, 0x64A7, 0x64A8, /* 0xD0 */
- 0x64AA, 0x64AB, 0x64AF, 0x64B1, 0x64B2, 0x64B3, 0x64B4, 0x64B6, /* 0xE0 */
- 0x64B9, 0x64BB, 0x64BD, 0x64BE, 0x64BF, 0x64C1, 0x64C3, 0x64C4, /* 0xE0 */
- 0x64C6, 0x64C7, 0x64C8, 0x64C9, 0x64CA, 0x64CB, 0x64CC, 0x64CF, /* 0xF0 */
- 0x64D1, 0x64D3, 0x64D4, 0x64D5, 0x64D6, 0x64D9, 0x64DA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_94[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x64DB, 0x64DC, 0x64DD, 0x64DF, 0x64E0, 0x64E1, 0x64E3, 0x64E5, /* 0x40 */
- 0x64E7, 0x64E8, 0x64E9, 0x64EA, 0x64EB, 0x64EC, 0x64ED, 0x64EE, /* 0x40 */
- 0x64EF, 0x64F0, 0x64F1, 0x64F2, 0x64F3, 0x64F4, 0x64F5, 0x64F6, /* 0x50 */
- 0x64F7, 0x64F8, 0x64F9, 0x64FA, 0x64FB, 0x64FC, 0x64FD, 0x64FE, /* 0x50 */
- 0x64FF, 0x6501, 0x6502, 0x6503, 0x6504, 0x6505, 0x6506, 0x6507, /* 0x60 */
- 0x6508, 0x650A, 0x650B, 0x650C, 0x650D, 0x650E, 0x650F, 0x6510, /* 0x60 */
- 0x6511, 0x6513, 0x6514, 0x6515, 0x6516, 0x6517, 0x6519, 0x651A, /* 0x70 */
- 0x651B, 0x651C, 0x651D, 0x651E, 0x651F, 0x6520, 0x6521, 0, /* 0x70 */
- 0x6522, 0x6523, 0x6524, 0x6526, 0x6527, 0x6528, 0x6529, 0x652A, /* 0x80 */
- 0x652C, 0x652D, 0x6530, 0x6531, 0x6532, 0x6533, 0x6537, 0x653A, /* 0x80 */
- 0x653C, 0x653D, 0x6540, 0x6541, 0x6542, 0x6543, 0x6544, 0x6546, /* 0x90 */
- 0x6547, 0x654A, 0x654B, 0x654D, 0x654E, 0x6550, 0x6552, 0x6553, /* 0x90 */
- 0x6554, 0x6557, 0x6558, 0x655A, 0x655C, 0x655F, 0x6560, 0x6561, /* 0xA0 */
- 0x6564, 0x6565, 0x6567, 0x6568, 0x6569, 0x656A, 0x656D, 0x656E, /* 0xA0 */
- 0x656F, 0x6571, 0x6573, 0x6575, 0x6576, 0x6578, 0x6579, 0x657A, /* 0xB0 */
- 0x657B, 0x657C, 0x657D, 0x657E, 0x657F, 0x6580, 0x6581, 0x6582, /* 0xB0 */
- 0x6583, 0x6584, 0x6585, 0x6586, 0x6588, 0x6589, 0x658A, 0x658D, /* 0xC0 */
- 0x658E, 0x658F, 0x6592, 0x6594, 0x6595, 0x6596, 0x6598, 0x659A, /* 0xC0 */
- 0x659D, 0x659E, 0x65A0, 0x65A2, 0x65A3, 0x65A6, 0x65A8, 0x65AA, /* 0xD0 */
- 0x65AC, 0x65AE, 0x65B1, 0x65B2, 0x65B3, 0x65B4, 0x65B5, 0x65B6, /* 0xD0 */
- 0x65B7, 0x65B8, 0x65BA, 0x65BB, 0x65BE, 0x65BF, 0x65C0, 0x65C2, /* 0xE0 */
- 0x65C7, 0x65C8, 0x65C9, 0x65CA, 0x65CD, 0x65D0, 0x65D1, 0x65D3, /* 0xE0 */
- 0x65D4, 0x65D5, 0x65D8, 0x65D9, 0x65DA, 0x65DB, 0x65DC, 0x65DD, /* 0xF0 */
- 0x65DE, 0x65DF, 0x65E1, 0x65E3, 0x65E4, 0x65EA, 0x65EB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_95[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x65F2, 0x65F3, 0x65F4, 0x65F5, 0x65F8, 0x65F9, 0x65FB, 0x65FC, /* 0x40 */
- 0x65FD, 0x65FE, 0x65FF, 0x6601, 0x6604, 0x6605, 0x6607, 0x6608, /* 0x40 */
- 0x6609, 0x660B, 0x660D, 0x6610, 0x6611, 0x6612, 0x6616, 0x6617, /* 0x50 */
- 0x6618, 0x661A, 0x661B, 0x661C, 0x661E, 0x6621, 0x6622, 0x6623, /* 0x50 */
- 0x6624, 0x6626, 0x6629, 0x662A, 0x662B, 0x662C, 0x662E, 0x6630, /* 0x60 */
- 0x6632, 0x6633, 0x6637, 0x6638, 0x6639, 0x663A, 0x663B, 0x663D, /* 0x60 */
- 0x663F, 0x6640, 0x6642, 0x6644, 0x6645, 0x6646, 0x6647, 0x6648, /* 0x70 */
- 0x6649, 0x664A, 0x664D, 0x664E, 0x6650, 0x6651, 0x6658, 0, /* 0x70 */
- 0x6659, 0x665B, 0x665C, 0x665D, 0x665E, 0x6660, 0x6662, 0x6663, /* 0x80 */
- 0x6665, 0x6667, 0x6669, 0x666A, 0x666B, 0x666C, 0x666D, 0x6671, /* 0x80 */
- 0x6672, 0x6673, 0x6675, 0x6678, 0x6679, 0x667B, 0x667C, 0x667D, /* 0x90 */
- 0x667F, 0x6680, 0x6681, 0x6683, 0x6685, 0x6686, 0x6688, 0x6689, /* 0x90 */
- 0x668A, 0x668B, 0x668D, 0x668E, 0x668F, 0x6690, 0x6692, 0x6693, /* 0xA0 */
- 0x6694, 0x6695, 0x6698, 0x6699, 0x669A, 0x669B, 0x669C, 0x669E, /* 0xA0 */
- 0x669F, 0x66A0, 0x66A1, 0x66A2, 0x66A3, 0x66A4, 0x66A5, 0x66A6, /* 0xB0 */
- 0x66A9, 0x66AA, 0x66AB, 0x66AC, 0x66AD, 0x66AF, 0x66B0, 0x66B1, /* 0xB0 */
- 0x66B2, 0x66B3, 0x66B5, 0x66B6, 0x66B7, 0x66B8, 0x66BA, 0x66BB, /* 0xC0 */
- 0x66BC, 0x66BD, 0x66BF, 0x66C0, 0x66C1, 0x66C2, 0x66C3, 0x66C4, /* 0xC0 */
- 0x66C5, 0x66C6, 0x66C7, 0x66C8, 0x66C9, 0x66CA, 0x66CB, 0x66CC, /* 0xD0 */
- 0x66CD, 0x66CE, 0x66CF, 0x66D0, 0x66D1, 0x66D2, 0x66D3, 0x66D4, /* 0xD0 */
- 0x66D5, 0x66D6, 0x66D7, 0x66D8, 0x66DA, 0x66DE, 0x66DF, 0x66E0, /* 0xE0 */
- 0x66E1, 0x66E2, 0x66E3, 0x66E4, 0x66E5, 0x66E7, 0x66E8, 0x66EA, /* 0xE0 */
- 0x66EB, 0x66EC, 0x66ED, 0x66EE, 0x66EF, 0x66F1, 0x66F5, 0x66F6, /* 0xF0 */
- 0x66F8, 0x66FA, 0x66FB, 0x66FD, 0x6701, 0x6702, 0x6703 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_96[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6704, 0x6705, 0x6706, 0x6707, 0x670C, 0x670E, 0x670F, 0x6711, /* 0x40 */
- 0x6712, 0x6713, 0x6716, 0x6718, 0x6719, 0x671A, 0x671C, 0x671E, /* 0x40 */
- 0x6720, 0x6721, 0x6722, 0x6723, 0x6724, 0x6725, 0x6727, 0x6729, /* 0x50 */
- 0x672E, 0x6730, 0x6732, 0x6733, 0x6736, 0x6737, 0x6738, 0x6739, /* 0x50 */
- 0x673B, 0x673C, 0x673E, 0x673F, 0x6741, 0x6744, 0x6745, 0x6747, /* 0x60 */
- 0x674A, 0x674B, 0x674D, 0x6752, 0x6754, 0x6755, 0x6757, 0x6758, /* 0x60 */
- 0x6759, 0x675A, 0x675B, 0x675D, 0x6762, 0x6763, 0x6764, 0x6766, /* 0x70 */
- 0x6767, 0x676B, 0x676C, 0x676E, 0x6771, 0x6774, 0x6776, 0, /* 0x70 */
- 0x6778, 0x6779, 0x677A, 0x677B, 0x677D, 0x6780, 0x6782, 0x6783, /* 0x80 */
- 0x6785, 0x6786, 0x6788, 0x678A, 0x678C, 0x678D, 0x678E, 0x678F, /* 0x80 */
- 0x6791, 0x6792, 0x6793, 0x6794, 0x6796, 0x6799, 0x679B, 0x679F, /* 0x90 */
- 0x67A0, 0x67A1, 0x67A4, 0x67A6, 0x67A9, 0x67AC, 0x67AE, 0x67B1, /* 0x90 */
- 0x67B2, 0x67B4, 0x67B9, 0x67BA, 0x67BB, 0x67BC, 0x67BD, 0x67BE, /* 0xA0 */
- 0x67BF, 0x67C0, 0x67C2, 0x67C5, 0x67C6, 0x67C7, 0x67C8, 0x67C9, /* 0xA0 */
- 0x67CA, 0x67CB, 0x67CC, 0x67CD, 0x67CE, 0x67D5, 0x67D6, 0x67D7, /* 0xB0 */
- 0x67DB, 0x67DF, 0x67E1, 0x67E3, 0x67E4, 0x67E6, 0x67E7, 0x67E8, /* 0xB0 */
- 0x67EA, 0x67EB, 0x67ED, 0x67EE, 0x67F2, 0x67F5, 0x67F6, 0x67F7, /* 0xC0 */
- 0x67F8, 0x67F9, 0x67FA, 0x67FB, 0x67FC, 0x67FE, 0x6801, 0x6802, /* 0xC0 */
- 0x6803, 0x6804, 0x6806, 0x680D, 0x6810, 0x6812, 0x6814, 0x6815, /* 0xD0 */
- 0x6818, 0x6819, 0x681A, 0x681B, 0x681C, 0x681E, 0x681F, 0x6820, /* 0xD0 */
- 0x6822, 0x6823, 0x6824, 0x6825, 0x6826, 0x6827, 0x6828, 0x682B, /* 0xE0 */
- 0x682C, 0x682D, 0x682E, 0x682F, 0x6830, 0x6831, 0x6834, 0x6835, /* 0xE0 */
- 0x6836, 0x683A, 0x683B, 0x683F, 0x6847, 0x684B, 0x684D, 0x684F, /* 0xF0 */
- 0x6852, 0x6856, 0x6857, 0x6858, 0x6859, 0x685A, 0x685B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_97[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x685C, 0x685D, 0x685E, 0x685F, 0x686A, 0x686C, 0x686D, 0x686E, /* 0x40 */
- 0x686F, 0x6870, 0x6871, 0x6872, 0x6873, 0x6875, 0x6878, 0x6879, /* 0x40 */
- 0x687A, 0x687B, 0x687C, 0x687D, 0x687E, 0x687F, 0x6880, 0x6882, /* 0x50 */
- 0x6884, 0x6887, 0x6888, 0x6889, 0x688A, 0x688B, 0x688C, 0x688D, /* 0x50 */
- 0x688E, 0x6890, 0x6891, 0x6892, 0x6894, 0x6895, 0x6896, 0x6898, /* 0x60 */
- 0x6899, 0x689A, 0x689B, 0x689C, 0x689D, 0x689E, 0x689F, 0x68A0, /* 0x60 */
- 0x68A1, 0x68A3, 0x68A4, 0x68A5, 0x68A9, 0x68AA, 0x68AB, 0x68AC, /* 0x70 */
- 0x68AE, 0x68B1, 0x68B2, 0x68B4, 0x68B6, 0x68B7, 0x68B8, 0, /* 0x70 */
- 0x68B9, 0x68BA, 0x68BB, 0x68BC, 0x68BD, 0x68BE, 0x68BF, 0x68C1, /* 0x80 */
- 0x68C3, 0x68C4, 0x68C5, 0x68C6, 0x68C7, 0x68C8, 0x68CA, 0x68CC, /* 0x80 */
- 0x68CE, 0x68CF, 0x68D0, 0x68D1, 0x68D3, 0x68D4, 0x68D6, 0x68D7, /* 0x90 */
- 0x68D9, 0x68DB, 0x68DC, 0x68DD, 0x68DE, 0x68DF, 0x68E1, 0x68E2, /* 0x90 */
- 0x68E4, 0x68E5, 0x68E6, 0x68E7, 0x68E8, 0x68E9, 0x68EA, 0x68EB, /* 0xA0 */
- 0x68EC, 0x68ED, 0x68EF, 0x68F2, 0x68F3, 0x68F4, 0x68F6, 0x68F7, /* 0xA0 */
- 0x68F8, 0x68FB, 0x68FD, 0x68FE, 0x68FF, 0x6900, 0x6902, 0x6903, /* 0xB0 */
- 0x6904, 0x6906, 0x6907, 0x6908, 0x6909, 0x690A, 0x690C, 0x690F, /* 0xB0 */
- 0x6911, 0x6913, 0x6914, 0x6915, 0x6916, 0x6917, 0x6918, 0x6919, /* 0xC0 */
- 0x691A, 0x691B, 0x691C, 0x691D, 0x691E, 0x6921, 0x6922, 0x6923, /* 0xC0 */
- 0x6925, 0x6926, 0x6927, 0x6928, 0x6929, 0x692A, 0x692B, 0x692C, /* 0xD0 */
- 0x692E, 0x692F, 0x6931, 0x6932, 0x6933, 0x6935, 0x6936, 0x6937, /* 0xD0 */
- 0x6938, 0x693A, 0x693B, 0x693C, 0x693E, 0x6940, 0x6941, 0x6943, /* 0xE0 */
- 0x6944, 0x6945, 0x6946, 0x6947, 0x6948, 0x6949, 0x694A, 0x694B, /* 0xE0 */
- 0x694C, 0x694D, 0x694E, 0x694F, 0x6950, 0x6951, 0x6952, 0x6953, /* 0xF0 */
- 0x6955, 0x6956, 0x6958, 0x6959, 0x695B, 0x695C, 0x695F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_98[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6961, 0x6962, 0x6964, 0x6965, 0x6967, 0x6968, 0x6969, 0x696A, /* 0x40 */
- 0x696C, 0x696D, 0x696F, 0x6970, 0x6972, 0x6973, 0x6974, 0x6975, /* 0x40 */
- 0x6976, 0x697A, 0x697B, 0x697D, 0x697E, 0x697F, 0x6981, 0x6983, /* 0x50 */
- 0x6985, 0x698A, 0x698B, 0x698C, 0x698E, 0x698F, 0x6990, 0x6991, /* 0x50 */
- 0x6992, 0x6993, 0x6996, 0x6997, 0x6999, 0x699A, 0x699D, 0x699E, /* 0x60 */
- 0x699F, 0x69A0, 0x69A1, 0x69A2, 0x69A3, 0x69A4, 0x69A5, 0x69A6, /* 0x60 */
- 0x69A9, 0x69AA, 0x69AC, 0x69AE, 0x69AF, 0x69B0, 0x69B2, 0x69B3, /* 0x70 */
- 0x69B5, 0x69B6, 0x69B8, 0x69B9, 0x69BA, 0x69BC, 0x69BD, 0, /* 0x70 */
- 0x69BE, 0x69BF, 0x69C0, 0x69C2, 0x69C3, 0x69C4, 0x69C5, 0x69C6, /* 0x80 */
- 0x69C7, 0x69C8, 0x69C9, 0x69CB, 0x69CD, 0x69CF, 0x69D1, 0x69D2, /* 0x80 */
- 0x69D3, 0x69D5, 0x69D6, 0x69D7, 0x69D8, 0x69D9, 0x69DA, 0x69DC, /* 0x90 */
- 0x69DD, 0x69DE, 0x69E1, 0x69E2, 0x69E3, 0x69E4, 0x69E5, 0x69E6, /* 0x90 */
- 0x69E7, 0x69E8, 0x69E9, 0x69EA, 0x69EB, 0x69EC, 0x69EE, 0x69EF, /* 0xA0 */
- 0x69F0, 0x69F1, 0x69F3, 0x69F4, 0x69F5, 0x69F6, 0x69F7, 0x69F8, /* 0xA0 */
- 0x69F9, 0x69FA, 0x69FB, 0x69FC, 0x69FE, 0x6A00, 0x6A01, 0x6A02, /* 0xB0 */
- 0x6A03, 0x6A04, 0x6A05, 0x6A06, 0x6A07, 0x6A08, 0x6A09, 0x6A0B, /* 0xB0 */
- 0x6A0C, 0x6A0D, 0x6A0E, 0x6A0F, 0x6A10, 0x6A11, 0x6A12, 0x6A13, /* 0xC0 */
- 0x6A14, 0x6A15, 0x6A16, 0x6A19, 0x6A1A, 0x6A1B, 0x6A1C, 0x6A1D, /* 0xC0 */
- 0x6A1E, 0x6A20, 0x6A22, 0x6A23, 0x6A24, 0x6A25, 0x6A26, 0x6A27, /* 0xD0 */
- 0x6A29, 0x6A2B, 0x6A2C, 0x6A2D, 0x6A2E, 0x6A30, 0x6A32, 0x6A33, /* 0xD0 */
- 0x6A34, 0x6A36, 0x6A37, 0x6A38, 0x6A39, 0x6A3A, 0x6A3B, 0x6A3C, /* 0xE0 */
- 0x6A3F, 0x6A40, 0x6A41, 0x6A42, 0x6A43, 0x6A45, 0x6A46, 0x6A48, /* 0xE0 */
- 0x6A49, 0x6A4A, 0x6A4B, 0x6A4C, 0x6A4D, 0x6A4E, 0x6A4F, 0x6A51, /* 0xF0 */
- 0x6A52, 0x6A53, 0x6A54, 0x6A55, 0x6A56, 0x6A57, 0x6A5A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_99[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6A5C, 0x6A5D, 0x6A5E, 0x6A5F, 0x6A60, 0x6A62, 0x6A63, 0x6A64, /* 0x40 */
- 0x6A66, 0x6A67, 0x6A68, 0x6A69, 0x6A6A, 0x6A6B, 0x6A6C, 0x6A6D, /* 0x40 */
- 0x6A6E, 0x6A6F, 0x6A70, 0x6A72, 0x6A73, 0x6A74, 0x6A75, 0x6A76, /* 0x50 */
- 0x6A77, 0x6A78, 0x6A7A, 0x6A7B, 0x6A7D, 0x6A7E, 0x6A7F, 0x6A81, /* 0x50 */
- 0x6A82, 0x6A83, 0x6A85, 0x6A86, 0x6A87, 0x6A88, 0x6A89, 0x6A8A, /* 0x60 */
- 0x6A8B, 0x6A8C, 0x6A8D, 0x6A8F, 0x6A92, 0x6A93, 0x6A94, 0x6A95, /* 0x60 */
- 0x6A96, 0x6A98, 0x6A99, 0x6A9A, 0x6A9B, 0x6A9C, 0x6A9D, 0x6A9E, /* 0x70 */
- 0x6A9F, 0x6AA1, 0x6AA2, 0x6AA3, 0x6AA4, 0x6AA5, 0x6AA6, 0, /* 0x70 */
- 0x6AA7, 0x6AA8, 0x6AAA, 0x6AAD, 0x6AAE, 0x6AAF, 0x6AB0, 0x6AB1, /* 0x80 */
- 0x6AB2, 0x6AB3, 0x6AB4, 0x6AB5, 0x6AB6, 0x6AB7, 0x6AB8, 0x6AB9, /* 0x80 */
- 0x6ABA, 0x6ABB, 0x6ABC, 0x6ABD, 0x6ABE, 0x6ABF, 0x6AC0, 0x6AC1, /* 0x90 */
- 0x6AC2, 0x6AC3, 0x6AC4, 0x6AC5, 0x6AC6, 0x6AC7, 0x6AC8, 0x6AC9, /* 0x90 */
- 0x6ACA, 0x6ACB, 0x6ACC, 0x6ACD, 0x6ACE, 0x6ACF, 0x6AD0, 0x6AD1, /* 0xA0 */
- 0x6AD2, 0x6AD3, 0x6AD4, 0x6AD5, 0x6AD6, 0x6AD7, 0x6AD8, 0x6AD9, /* 0xA0 */
- 0x6ADA, 0x6ADB, 0x6ADC, 0x6ADD, 0x6ADE, 0x6ADF, 0x6AE0, 0x6AE1, /* 0xB0 */
- 0x6AE2, 0x6AE3, 0x6AE4, 0x6AE5, 0x6AE6, 0x6AE7, 0x6AE8, 0x6AE9, /* 0xB0 */
- 0x6AEA, 0x6AEB, 0x6AEC, 0x6AED, 0x6AEE, 0x6AEF, 0x6AF0, 0x6AF1, /* 0xC0 */
- 0x6AF2, 0x6AF3, 0x6AF4, 0x6AF5, 0x6AF6, 0x6AF7, 0x6AF8, 0x6AF9, /* 0xC0 */
- 0x6AFA, 0x6AFB, 0x6AFC, 0x6AFD, 0x6AFE, 0x6AFF, 0x6B00, 0x6B01, /* 0xD0 */
- 0x6B02, 0x6B03, 0x6B04, 0x6B05, 0x6B06, 0x6B07, 0x6B08, 0x6B09, /* 0xD0 */
- 0x6B0A, 0x6B0B, 0x6B0C, 0x6B0D, 0x6B0E, 0x6B0F, 0x6B10, 0x6B11, /* 0xE0 */
- 0x6B12, 0x6B13, 0x6B14, 0x6B15, 0x6B16, 0x6B17, 0x6B18, 0x6B19, /* 0xE0 */
- 0x6B1A, 0x6B1B, 0x6B1C, 0x6B1D, 0x6B1E, 0x6B1F, 0x6B25, 0x6B26, /* 0xF0 */
- 0x6B28, 0x6B29, 0x6B2A, 0x6B2B, 0x6B2C, 0x6B2D, 0x6B2E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_9A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6B2F, 0x6B30, 0x6B31, 0x6B33, 0x6B34, 0x6B35, 0x6B36, 0x6B38, /* 0x40 */
- 0x6B3B, 0x6B3C, 0x6B3D, 0x6B3F, 0x6B40, 0x6B41, 0x6B42, 0x6B44, /* 0x40 */
- 0x6B45, 0x6B48, 0x6B4A, 0x6B4B, 0x6B4D, 0x6B4E, 0x6B4F, 0x6B50, /* 0x50 */
- 0x6B51, 0x6B52, 0x6B53, 0x6B54, 0x6B55, 0x6B56, 0x6B57, 0x6B58, /* 0x50 */
- 0x6B5A, 0x6B5B, 0x6B5C, 0x6B5D, 0x6B5E, 0x6B5F, 0x6B60, 0x6B61, /* 0x60 */
- 0x6B68, 0x6B69, 0x6B6B, 0x6B6C, 0x6B6D, 0x6B6E, 0x6B6F, 0x6B70, /* 0x60 */
- 0x6B71, 0x6B72, 0x6B73, 0x6B74, 0x6B75, 0x6B76, 0x6B77, 0x6B78, /* 0x70 */
- 0x6B7A, 0x6B7D, 0x6B7E, 0x6B7F, 0x6B80, 0x6B85, 0x6B88, 0, /* 0x70 */
- 0x6B8C, 0x6B8E, 0x6B8F, 0x6B90, 0x6B91, 0x6B94, 0x6B95, 0x6B97, /* 0x80 */
- 0x6B98, 0x6B99, 0x6B9C, 0x6B9D, 0x6B9E, 0x6B9F, 0x6BA0, 0x6BA2, /* 0x80 */
- 0x6BA3, 0x6BA4, 0x6BA5, 0x6BA6, 0x6BA7, 0x6BA8, 0x6BA9, 0x6BAB, /* 0x90 */
- 0x6BAC, 0x6BAD, 0x6BAE, 0x6BAF, 0x6BB0, 0x6BB1, 0x6BB2, 0x6BB6, /* 0x90 */
- 0x6BB8, 0x6BB9, 0x6BBA, 0x6BBB, 0x6BBC, 0x6BBD, 0x6BBE, 0x6BC0, /* 0xA0 */
- 0x6BC3, 0x6BC4, 0x6BC6, 0x6BC7, 0x6BC8, 0x6BC9, 0x6BCA, 0x6BCC, /* 0xA0 */
- 0x6BCE, 0x6BD0, 0x6BD1, 0x6BD8, 0x6BDA, 0x6BDC, 0x6BDD, 0x6BDE, /* 0xB0 */
- 0x6BDF, 0x6BE0, 0x6BE2, 0x6BE3, 0x6BE4, 0x6BE5, 0x6BE6, 0x6BE7, /* 0xB0 */
- 0x6BE8, 0x6BE9, 0x6BEC, 0x6BED, 0x6BEE, 0x6BF0, 0x6BF1, 0x6BF2, /* 0xC0 */
- 0x6BF4, 0x6BF6, 0x6BF7, 0x6BF8, 0x6BFA, 0x6BFB, 0x6BFC, 0x6BFE, /* 0xC0 */
- 0x6BFF, 0x6C00, 0x6C01, 0x6C02, 0x6C03, 0x6C04, 0x6C08, 0x6C09, /* 0xD0 */
- 0x6C0A, 0x6C0B, 0x6C0C, 0x6C0E, 0x6C12, 0x6C17, 0x6C1C, 0x6C1D, /* 0xD0 */
- 0x6C1E, 0x6C20, 0x6C23, 0x6C25, 0x6C2B, 0x6C2C, 0x6C2D, 0x6C31, /* 0xE0 */
- 0x6C33, 0x6C36, 0x6C37, 0x6C39, 0x6C3A, 0x6C3B, 0x6C3C, 0x6C3E, /* 0xE0 */
- 0x6C3F, 0x6C43, 0x6C44, 0x6C45, 0x6C48, 0x6C4B, 0x6C4C, 0x6C4D, /* 0xF0 */
- 0x6C4E, 0x6C4F, 0x6C51, 0x6C52, 0x6C53, 0x6C56, 0x6C58 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_9B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6C59, 0x6C5A, 0x6C62, 0x6C63, 0x6C65, 0x6C66, 0x6C67, 0x6C6B, /* 0x40 */
- 0x6C6C, 0x6C6D, 0x6C6E, 0x6C6F, 0x6C71, 0x6C73, 0x6C75, 0x6C77, /* 0x40 */
- 0x6C78, 0x6C7A, 0x6C7B, 0x6C7C, 0x6C7F, 0x6C80, 0x6C84, 0x6C87, /* 0x50 */
- 0x6C8A, 0x6C8B, 0x6C8D, 0x6C8E, 0x6C91, 0x6C92, 0x6C95, 0x6C96, /* 0x50 */
- 0x6C97, 0x6C98, 0x6C9A, 0x6C9C, 0x6C9D, 0x6C9E, 0x6CA0, 0x6CA2, /* 0x60 */
- 0x6CA8, 0x6CAC, 0x6CAF, 0x6CB0, 0x6CB4, 0x6CB5, 0x6CB6, 0x6CB7, /* 0x60 */
- 0x6CBA, 0x6CC0, 0x6CC1, 0x6CC2, 0x6CC3, 0x6CC6, 0x6CC7, 0x6CC8, /* 0x70 */
- 0x6CCB, 0x6CCD, 0x6CCE, 0x6CCF, 0x6CD1, 0x6CD2, 0x6CD8, 0, /* 0x70 */
- 0x6CD9, 0x6CDA, 0x6CDC, 0x6CDD, 0x6CDF, 0x6CE4, 0x6CE6, 0x6CE7, /* 0x80 */
- 0x6CE9, 0x6CEC, 0x6CED, 0x6CF2, 0x6CF4, 0x6CF9, 0x6CFF, 0x6D00, /* 0x80 */
- 0x6D02, 0x6D03, 0x6D05, 0x6D06, 0x6D08, 0x6D09, 0x6D0A, 0x6D0D, /* 0x90 */
- 0x6D0F, 0x6D10, 0x6D11, 0x6D13, 0x6D14, 0x6D15, 0x6D16, 0x6D18, /* 0x90 */
- 0x6D1C, 0x6D1D, 0x6D1F, 0x6D20, 0x6D21, 0x6D22, 0x6D23, 0x6D24, /* 0xA0 */
- 0x6D26, 0x6D28, 0x6D29, 0x6D2C, 0x6D2D, 0x6D2F, 0x6D30, 0x6D34, /* 0xA0 */
- 0x6D36, 0x6D37, 0x6D38, 0x6D3A, 0x6D3F, 0x6D40, 0x6D42, 0x6D44, /* 0xB0 */
- 0x6D49, 0x6D4C, 0x6D50, 0x6D55, 0x6D56, 0x6D57, 0x6D58, 0x6D5B, /* 0xB0 */
- 0x6D5D, 0x6D5F, 0x6D61, 0x6D62, 0x6D64, 0x6D65, 0x6D67, 0x6D68, /* 0xC0 */
- 0x6D6B, 0x6D6C, 0x6D6D, 0x6D70, 0x6D71, 0x6D72, 0x6D73, 0x6D75, /* 0xC0 */
- 0x6D76, 0x6D79, 0x6D7A, 0x6D7B, 0x6D7D, 0x6D7E, 0x6D7F, 0x6D80, /* 0xD0 */
- 0x6D81, 0x6D83, 0x6D84, 0x6D86, 0x6D87, 0x6D8A, 0x6D8B, 0x6D8D, /* 0xD0 */
- 0x6D8F, 0x6D90, 0x6D92, 0x6D96, 0x6D97, 0x6D98, 0x6D99, 0x6D9A, /* 0xE0 */
- 0x6D9C, 0x6DA2, 0x6DA5, 0x6DAC, 0x6DAD, 0x6DB0, 0x6DB1, 0x6DB3, /* 0xE0 */
- 0x6DB4, 0x6DB6, 0x6DB7, 0x6DB9, 0x6DBA, 0x6DBB, 0x6DBC, 0x6DBD, /* 0xF0 */
- 0x6DBE, 0x6DC1, 0x6DC2, 0x6DC3, 0x6DC8, 0x6DC9, 0x6DCA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_9C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6DCD, 0x6DCE, 0x6DCF, 0x6DD0, 0x6DD2, 0x6DD3, 0x6DD4, 0x6DD5, /* 0x40 */
- 0x6DD7, 0x6DDA, 0x6DDB, 0x6DDC, 0x6DDF, 0x6DE2, 0x6DE3, 0x6DE5, /* 0x40 */
- 0x6DE7, 0x6DE8, 0x6DE9, 0x6DEA, 0x6DED, 0x6DEF, 0x6DF0, 0x6DF2, /* 0x50 */
- 0x6DF4, 0x6DF5, 0x6DF6, 0x6DF8, 0x6DFA, 0x6DFD, 0x6DFE, 0x6DFF, /* 0x50 */
- 0x6E00, 0x6E01, 0x6E02, 0x6E03, 0x6E04, 0x6E06, 0x6E07, 0x6E08, /* 0x60 */
- 0x6E09, 0x6E0B, 0x6E0F, 0x6E12, 0x6E13, 0x6E15, 0x6E18, 0x6E19, /* 0x60 */
- 0x6E1B, 0x6E1C, 0x6E1E, 0x6E1F, 0x6E22, 0x6E26, 0x6E27, 0x6E28, /* 0x70 */
- 0x6E2A, 0x6E2C, 0x6E2E, 0x6E30, 0x6E31, 0x6E33, 0x6E35, 0, /* 0x70 */
- 0x6E36, 0x6E37, 0x6E39, 0x6E3B, 0x6E3C, 0x6E3D, 0x6E3E, 0x6E3F, /* 0x80 */
- 0x6E40, 0x6E41, 0x6E42, 0x6E45, 0x6E46, 0x6E47, 0x6E48, 0x6E49, /* 0x80 */
- 0x6E4A, 0x6E4B, 0x6E4C, 0x6E4F, 0x6E50, 0x6E51, 0x6E52, 0x6E55, /* 0x90 */
- 0x6E57, 0x6E59, 0x6E5A, 0x6E5C, 0x6E5D, 0x6E5E, 0x6E60, 0x6E61, /* 0x90 */
- 0x6E62, 0x6E63, 0x6E64, 0x6E65, 0x6E66, 0x6E67, 0x6E68, 0x6E69, /* 0xA0 */
- 0x6E6A, 0x6E6C, 0x6E6D, 0x6E6F, 0x6E70, 0x6E71, 0x6E72, 0x6E73, /* 0xA0 */
- 0x6E74, 0x6E75, 0x6E76, 0x6E77, 0x6E78, 0x6E79, 0x6E7A, 0x6E7B, /* 0xB0 */
- 0x6E7C, 0x6E7D, 0x6E80, 0x6E81, 0x6E82, 0x6E84, 0x6E87, 0x6E88, /* 0xB0 */
- 0x6E8A, 0x6E8B, 0x6E8C, 0x6E8D, 0x6E8E, 0x6E91, 0x6E92, 0x6E93, /* 0xC0 */
- 0x6E94, 0x6E95, 0x6E96, 0x6E97, 0x6E99, 0x6E9A, 0x6E9B, 0x6E9D, /* 0xC0 */
- 0x6E9E, 0x6EA0, 0x6EA1, 0x6EA3, 0x6EA4, 0x6EA6, 0x6EA8, 0x6EA9, /* 0xD0 */
- 0x6EAB, 0x6EAC, 0x6EAD, 0x6EAE, 0x6EB0, 0x6EB3, 0x6EB5, 0x6EB8, /* 0xD0 */
- 0x6EB9, 0x6EBC, 0x6EBE, 0x6EBF, 0x6EC0, 0x6EC3, 0x6EC4, 0x6EC5, /* 0xE0 */
- 0x6EC6, 0x6EC8, 0x6EC9, 0x6ECA, 0x6ECC, 0x6ECD, 0x6ECE, 0x6ED0, /* 0xE0 */
- 0x6ED2, 0x6ED6, 0x6ED8, 0x6ED9, 0x6EDB, 0x6EDC, 0x6EDD, 0x6EE3, /* 0xF0 */
- 0x6EE7, 0x6EEA, 0x6EEB, 0x6EEC, 0x6EED, 0x6EEE, 0x6EEF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_9D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6EF0, 0x6EF1, 0x6EF2, 0x6EF3, 0x6EF5, 0x6EF6, 0x6EF7, 0x6EF8, /* 0x40 */
- 0x6EFA, 0x6EFB, 0x6EFC, 0x6EFD, 0x6EFE, 0x6EFF, 0x6F00, 0x6F01, /* 0x40 */
- 0x6F03, 0x6F04, 0x6F05, 0x6F07, 0x6F08, 0x6F0A, 0x6F0B, 0x6F0C, /* 0x50 */
- 0x6F0D, 0x6F0E, 0x6F10, 0x6F11, 0x6F12, 0x6F16, 0x6F17, 0x6F18, /* 0x50 */
- 0x6F19, 0x6F1A, 0x6F1B, 0x6F1C, 0x6F1D, 0x6F1E, 0x6F1F, 0x6F21, /* 0x60 */
- 0x6F22, 0x6F23, 0x6F25, 0x6F26, 0x6F27, 0x6F28, 0x6F2C, 0x6F2E, /* 0x60 */
- 0x6F30, 0x6F32, 0x6F34, 0x6F35, 0x6F37, 0x6F38, 0x6F39, 0x6F3A, /* 0x70 */
- 0x6F3B, 0x6F3C, 0x6F3D, 0x6F3F, 0x6F40, 0x6F41, 0x6F42, 0, /* 0x70 */
- 0x6F43, 0x6F44, 0x6F45, 0x6F48, 0x6F49, 0x6F4A, 0x6F4C, 0x6F4E, /* 0x80 */
- 0x6F4F, 0x6F50, 0x6F51, 0x6F52, 0x6F53, 0x6F54, 0x6F55, 0x6F56, /* 0x80 */
- 0x6F57, 0x6F59, 0x6F5A, 0x6F5B, 0x6F5D, 0x6F5F, 0x6F60, 0x6F61, /* 0x90 */
- 0x6F63, 0x6F64, 0x6F65, 0x6F67, 0x6F68, 0x6F69, 0x6F6A, 0x6F6B, /* 0x90 */
- 0x6F6C, 0x6F6F, 0x6F70, 0x6F71, 0x6F73, 0x6F75, 0x6F76, 0x6F77, /* 0xA0 */
- 0x6F79, 0x6F7B, 0x6F7D, 0x6F7E, 0x6F7F, 0x6F80, 0x6F81, 0x6F82, /* 0xA0 */
- 0x6F83, 0x6F85, 0x6F86, 0x6F87, 0x6F8A, 0x6F8B, 0x6F8F, 0x6F90, /* 0xB0 */
- 0x6F91, 0x6F92, 0x6F93, 0x6F94, 0x6F95, 0x6F96, 0x6F97, 0x6F98, /* 0xB0 */
- 0x6F99, 0x6F9A, 0x6F9B, 0x6F9D, 0x6F9E, 0x6F9F, 0x6FA0, 0x6FA2, /* 0xC0 */
- 0x6FA3, 0x6FA4, 0x6FA5, 0x6FA6, 0x6FA8, 0x6FA9, 0x6FAA, 0x6FAB, /* 0xC0 */
- 0x6FAC, 0x6FAD, 0x6FAE, 0x6FAF, 0x6FB0, 0x6FB1, 0x6FB2, 0x6FB4, /* 0xD0 */
- 0x6FB5, 0x6FB7, 0x6FB8, 0x6FBA, 0x6FBB, 0x6FBC, 0x6FBD, 0x6FBE, /* 0xD0 */
- 0x6FBF, 0x6FC1, 0x6FC3, 0x6FC4, 0x6FC5, 0x6FC6, 0x6FC7, 0x6FC8, /* 0xE0 */
- 0x6FCA, 0x6FCB, 0x6FCC, 0x6FCD, 0x6FCE, 0x6FCF, 0x6FD0, 0x6FD3, /* 0xE0 */
- 0x6FD4, 0x6FD5, 0x6FD6, 0x6FD7, 0x6FD8, 0x6FD9, 0x6FDA, 0x6FDB, /* 0xF0 */
- 0x6FDC, 0x6FDD, 0x6FDF, 0x6FE2, 0x6FE3, 0x6FE4, 0x6FE5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_9E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6FE6, 0x6FE7, 0x6FE8, 0x6FE9, 0x6FEA, 0x6FEB, 0x6FEC, 0x6FED, /* 0x40 */
- 0x6FF0, 0x6FF1, 0x6FF2, 0x6FF3, 0x6FF4, 0x6FF5, 0x6FF6, 0x6FF7, /* 0x40 */
- 0x6FF8, 0x6FF9, 0x6FFA, 0x6FFB, 0x6FFC, 0x6FFD, 0x6FFE, 0x6FFF, /* 0x50 */
- 0x7000, 0x7001, 0x7002, 0x7003, 0x7004, 0x7005, 0x7006, 0x7007, /* 0x50 */
- 0x7008, 0x7009, 0x700A, 0x700B, 0x700C, 0x700D, 0x700E, 0x700F, /* 0x60 */
- 0x7010, 0x7012, 0x7013, 0x7014, 0x7015, 0x7016, 0x7017, 0x7018, /* 0x60 */
- 0x7019, 0x701C, 0x701D, 0x701E, 0x701F, 0x7020, 0x7021, 0x7022, /* 0x70 */
- 0x7024, 0x7025, 0x7026, 0x7027, 0x7028, 0x7029, 0x702A, 0, /* 0x70 */
- 0x702B, 0x702C, 0x702D, 0x702E, 0x702F, 0x7030, 0x7031, 0x7032, /* 0x80 */
- 0x7033, 0x7034, 0x7036, 0x7037, 0x7038, 0x703A, 0x703B, 0x703C, /* 0x80 */
- 0x703D, 0x703E, 0x703F, 0x7040, 0x7041, 0x7042, 0x7043, 0x7044, /* 0x90 */
- 0x7045, 0x7046, 0x7047, 0x7048, 0x7049, 0x704A, 0x704B, 0x704D, /* 0x90 */
- 0x704E, 0x7050, 0x7051, 0x7052, 0x7053, 0x7054, 0x7055, 0x7056, /* 0xA0 */
- 0x7057, 0x7058, 0x7059, 0x705A, 0x705B, 0x705C, 0x705D, 0x705F, /* 0xA0 */
- 0x7060, 0x7061, 0x7062, 0x7063, 0x7064, 0x7065, 0x7066, 0x7067, /* 0xB0 */
- 0x7068, 0x7069, 0x706A, 0x706E, 0x7071, 0x7072, 0x7073, 0x7074, /* 0xB0 */
- 0x7077, 0x7079, 0x707A, 0x707B, 0x707D, 0x7081, 0x7082, 0x7083, /* 0xC0 */
- 0x7084, 0x7086, 0x7087, 0x7088, 0x708B, 0x708C, 0x708D, 0x708F, /* 0xC0 */
- 0x7090, 0x7091, 0x7093, 0x7097, 0x7098, 0x709A, 0x709B, 0x709E, /* 0xD0 */
- 0x709F, 0x70A0, 0x70A1, 0x70A2, 0x70A3, 0x70A4, 0x70A5, 0x70A6, /* 0xD0 */
- 0x70A7, 0x70A8, 0x70A9, 0x70AA, 0x70B0, 0x70B2, 0x70B4, 0x70B5, /* 0xE0 */
- 0x70B6, 0x70BA, 0x70BE, 0x70BF, 0x70C4, 0x70C5, 0x70C6, 0x70C7, /* 0xE0 */
- 0x70C9, 0x70CB, 0x70CC, 0x70CD, 0x70CE, 0x70CF, 0x70D0, 0x70D1, /* 0xF0 */
- 0x70D2, 0x70D3, 0x70D4, 0x70D5, 0x70D6, 0x70D7, 0x70DA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_9F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x70DC, 0x70DD, 0x70DE, 0x70E0, 0x70E1, 0x70E2, 0x70E3, 0x70E5, /* 0x40 */
- 0x70EA, 0x70EE, 0x70F0, 0x70F1, 0x70F2, 0x70F3, 0x70F4, 0x70F5, /* 0x40 */
- 0x70F6, 0x70F8, 0x70FA, 0x70FB, 0x70FC, 0x70FE, 0x70FF, 0x7100, /* 0x50 */
- 0x7101, 0x7102, 0x7103, 0x7104, 0x7105, 0x7106, 0x7107, 0x7108, /* 0x50 */
- 0x710B, 0x710C, 0x710D, 0x710E, 0x710F, 0x7111, 0x7112, 0x7114, /* 0x60 */
- 0x7117, 0x711B, 0x711C, 0x711D, 0x711E, 0x711F, 0x7120, 0x7121, /* 0x60 */
- 0x7122, 0x7123, 0x7124, 0x7125, 0x7127, 0x7128, 0x7129, 0x712A, /* 0x70 */
- 0x712B, 0x712C, 0x712D, 0x712E, 0x7132, 0x7133, 0x7134, 0, /* 0x70 */
- 0x7135, 0x7137, 0x7138, 0x7139, 0x713A, 0x713B, 0x713C, 0x713D, /* 0x80 */
- 0x713E, 0x713F, 0x7140, 0x7141, 0x7142, 0x7143, 0x7144, 0x7146, /* 0x80 */
- 0x7147, 0x7148, 0x7149, 0x714B, 0x714D, 0x714F, 0x7150, 0x7151, /* 0x90 */
- 0x7152, 0x7153, 0x7154, 0x7155, 0x7156, 0x7157, 0x7158, 0x7159, /* 0x90 */
- 0x715A, 0x715B, 0x715D, 0x715F, 0x7160, 0x7161, 0x7162, 0x7163, /* 0xA0 */
- 0x7165, 0x7169, 0x716A, 0x716B, 0x716C, 0x716D, 0x716F, 0x7170, /* 0xA0 */
- 0x7171, 0x7174, 0x7175, 0x7176, 0x7177, 0x7179, 0x717B, 0x717C, /* 0xB0 */
- 0x717E, 0x717F, 0x7180, 0x7181, 0x7182, 0x7183, 0x7185, 0x7186, /* 0xB0 */
- 0x7187, 0x7188, 0x7189, 0x718B, 0x718C, 0x718D, 0x718E, 0x7190, /* 0xC0 */
- 0x7191, 0x7192, 0x7193, 0x7195, 0x7196, 0x7197, 0x719A, 0x719B, /* 0xC0 */
- 0x719C, 0x719D, 0x719E, 0x71A1, 0x71A2, 0x71A3, 0x71A4, 0x71A5, /* 0xD0 */
- 0x71A6, 0x71A7, 0x71A9, 0x71AA, 0x71AB, 0x71AD, 0x71AE, 0x71AF, /* 0xD0 */
- 0x71B0, 0x71B1, 0x71B2, 0x71B4, 0x71B6, 0x71B7, 0x71B8, 0x71BA, /* 0xE0 */
- 0x71BB, 0x71BC, 0x71BD, 0x71BE, 0x71BF, 0x71C0, 0x71C1, 0x71C2, /* 0xE0 */
- 0x71C4, 0x71C5, 0x71C6, 0x71C7, 0x71C8, 0x71C9, 0x71CA, 0x71CB, /* 0xF0 */
- 0x71CC, 0x71CD, 0x71CF, 0x71D0, 0x71D1, 0x71D2, 0x71D3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_A0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x71D6, 0x71D7, 0x71D8, 0x71D9, 0x71DA, 0x71DB, 0x71DC, 0x71DD, /* 0x40 */
- 0x71DE, 0x71DF, 0x71E1, 0x71E2, 0x71E3, 0x71E4, 0x71E6, 0x71E8, /* 0x40 */
- 0x71E9, 0x71EA, 0x71EB, 0x71EC, 0x71ED, 0x71EF, 0x71F0, 0x71F1, /* 0x50 */
- 0x71F2, 0x71F3, 0x71F4, 0x71F5, 0x71F6, 0x71F7, 0x71F8, 0x71FA, /* 0x50 */
- 0x71FB, 0x71FC, 0x71FD, 0x71FE, 0x71FF, 0x7200, 0x7201, 0x7202, /* 0x60 */
- 0x7203, 0x7204, 0x7205, 0x7207, 0x7208, 0x7209, 0x720A, 0x720B, /* 0x60 */
- 0x720C, 0x720D, 0x720E, 0x720F, 0x7210, 0x7211, 0x7212, 0x7213, /* 0x70 */
- 0x7214, 0x7215, 0x7216, 0x7217, 0x7218, 0x7219, 0x721A, 0, /* 0x70 */
- 0x721B, 0x721C, 0x721E, 0x721F, 0x7220, 0x7221, 0x7222, 0x7223, /* 0x80 */
- 0x7224, 0x7225, 0x7226, 0x7227, 0x7229, 0x722B, 0x722D, 0x722E, /* 0x80 */
- 0x722F, 0x7232, 0x7233, 0x7234, 0x723A, 0x723C, 0x723E, 0x7240, /* 0x90 */
- 0x7241, 0x7242, 0x7243, 0x7244, 0x7245, 0x7246, 0x7249, 0x724A, /* 0x90 */
- 0x724B, 0x724E, 0x724F, 0x7250, 0x7251, 0x7253, 0x7254, 0x7255, /* 0xA0 */
- 0x7257, 0x7258, 0x725A, 0x725C, 0x725E, 0x7260, 0x7263, 0x7264, /* 0xA0 */
- 0x7265, 0x7268, 0x726A, 0x726B, 0x726C, 0x726D, 0x7270, 0x7271, /* 0xB0 */
- 0x7273, 0x7274, 0x7276, 0x7277, 0x7278, 0x727B, 0x727C, 0x727D, /* 0xB0 */
- 0x7282, 0x7283, 0x7285, 0x7286, 0x7287, 0x7288, 0x7289, 0x728C, /* 0xC0 */
- 0x728E, 0x7290, 0x7291, 0x7293, 0x7294, 0x7295, 0x7296, 0x7297, /* 0xC0 */
- 0x7298, 0x7299, 0x729A, 0x729B, 0x729C, 0x729D, 0x729E, 0x72A0, /* 0xD0 */
- 0x72A1, 0x72A2, 0x72A3, 0x72A4, 0x72A5, 0x72A6, 0x72A7, 0x72A8, /* 0xD0 */
- 0x72A9, 0x72AA, 0x72AB, 0x72AE, 0x72B1, 0x72B2, 0x72B3, 0x72B5, /* 0xE0 */
- 0x72BA, 0x72BB, 0x72BC, 0x72BD, 0x72BE, 0x72BF, 0x72C0, 0x72C5, /* 0xE0 */
- 0x72C6, 0x72C7, 0x72C9, 0x72CA, 0x72CB, 0x72CC, 0x72CF, 0x72D1, /* 0xF0 */
- 0x72D3, 0x72D4, 0x72D5, 0x72D6, 0x72D8, 0x72DA, 0x72DB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* Changes: */
-/* A1_A4: GB == 0x30FB, MS936 == 0x00B7, APPLE_CHINSIMP == 0x00B7 - we use in all systems 0x00B7 for better MS compatibility */
-/* A1_AA: GB == 0x2015, MS936 == 0x2014, APPLE_CHINSIMP == 0x2014 - we use in all systems 0x2014 for better MS compatibility */
-/* A1_AB: GB == 0xFF5E, MS936 == 0xFF5E, APPLE_CHINSIMP == 0x301C - we use in all systems 0xFF5E for better MS compatibility */
-/* A1_AD: GB == 0x2026, MS936 == 0x2026, APPLE_CHINSIMP == 0x22EF - we use in all systems 0x2026 for better MS compatibility */
-/* A1_E9: GB == 0xFFE0, MS936 == 0xFFE0, APPLE_CHINSIMP == 0x00A2 - we use in all systems 0xFFE0 for better MS compatibility */
-/* A1_EA: GB == 0xFFE1, MS936 == 0xFFE1, APPLE_CHINSIMP == 0x00A3 - we use in all systems 0xFFE1 for better MS compatibility */
-
-static sal_uInt16 const aImplDBCSToUniTab_GB_A1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3000, 0x3001, 0x3002, 0x00B7, 0x02C9, 0x02C7, 0x00A8, /* 0xA0 */
- 0x3003, 0x3005, 0x2014, 0xFF5E, 0x2016, 0x2026, 0x2018, 0x2019, /* 0xA0 */
- 0x201C, 0x201D, 0x3014, 0x3015, 0x3008, 0x3009, 0x300A, 0x300B, /* 0xB0 */
- 0x300C, 0x300D, 0x300E, 0x300F, 0x3016, 0x3017, 0x3010, 0x3011, /* 0xB0 */
- 0x00B1, 0x00D7, 0x00F7, 0x2236, 0x2227, 0x2228, 0x2211, 0x220F, /* 0xC0 */
- 0x222A, 0x2229, 0x2208, 0x2237, 0x221A, 0x22A5, 0x2225, 0x2220, /* 0xC0 */
- 0x2312, 0x2299, 0x222B, 0x222E, 0x2261, 0x224C, 0x2248, 0x223D, /* 0xD0 */
- 0x221D, 0x2260, 0x226E, 0x226F, 0x2264, 0x2265, 0x221E, 0x2235, /* 0xD0 */
- 0x2234, 0x2642, 0x2640, 0x00B0, 0x2032, 0x2033, 0x2103, 0xFF04, /* 0xE0 */
- 0x00A4, 0xFFE0, 0xFFE1, 0x2030, 0x00A7, 0x2116, 0x2606, 0x2605, /* 0xE0 */
- 0x25CB, 0x25CF, 0x25CE, 0x25C7, 0x25C6, 0x25A1, 0x25A0, 0x25B3, /* 0xF0 */
- 0x25B2, 0x203B, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* A2_A1-A2_AA is a MS 936 extension, but we use this on all systems for better MS compatibility */
-
-static sal_uInt16 const aImplDBCSToUniTab_GB_A2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, /* 0xA0 */
- 0x2177, 0x2178, 0x2179, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0x2488, 0x2489, 0x248A, 0x248B, 0x248C, 0x248D, 0x248E, /* 0xB0 */
- 0x248F, 0x2490, 0x2491, 0x2492, 0x2493, 0x2494, 0x2495, 0x2496, /* 0xB0 */
- 0x2497, 0x2498, 0x2499, 0x249A, 0x249B, 0x2474, 0x2475, 0x2476, /* 0xC0 */
- 0x2477, 0x2478, 0x2479, 0x247A, 0x247B, 0x247C, 0x247D, 0x247E, /* 0xC0 */
- 0x247F, 0x2480, 0x2481, 0x2482, 0x2483, 0x2484, 0x2485, 0x2486, /* 0xD0 */
- 0x2487, 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, /* 0xD0 */
- 0x2467, 0x2468, 0x2469, 0, 0, 0x3220, 0x3221, 0x3222, /* 0xE0 */
- 0x3223, 0x3224, 0x3225, 0x3226, 0x3227, 0x3228, 0x3229, 0, /* 0xE0 */
- 0, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, /* 0xF0 */
- 0x2167, 0x2168, 0x2169, 0x216A, 0x216B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* Changes: */
-/* A3_A4: GB == 0xFFE5, MS936 == 0xFFE5, APPLE_CHINSIMP == 0x00A5 - we use in all systems 0xFFE5 for better MS compatibility */
-/* A3_FE: GB == 0xFFE3, MS936 == 0xFFE3, APPLE_CHINSIMP == 0x203E - we use in all systems 0xFFE3 for better MS compatibility */
-
-static sal_uInt16 const aImplDBCSToUniTab_GB_A3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFF01, 0xFF02, 0xFF03, 0xFFE5, 0xFF05, 0xFF06, 0xFF07, /* 0xA0 */
- 0xFF08, 0xFF09, 0xFF0A, 0xFF0B, 0xFF0C, 0xFF0D, 0xFF0E, 0xFF0F, /* 0xA0 */
- 0xFF10, 0xFF11, 0xFF12, 0xFF13, 0xFF14, 0xFF15, 0xFF16, 0xFF17, /* 0xB0 */
- 0xFF18, 0xFF19, 0xFF1A, 0xFF1B, 0xFF1C, 0xFF1D, 0xFF1E, 0xFF1F, /* 0xB0 */
- 0xFF20, 0xFF21, 0xFF22, 0xFF23, 0xFF24, 0xFF25, 0xFF26, 0xFF27, /* 0xC0 */
- 0xFF28, 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C, 0xFF2D, 0xFF2E, 0xFF2F, /* 0xC0 */
- 0xFF30, 0xFF31, 0xFF32, 0xFF33, 0xFF34, 0xFF35, 0xFF36, 0xFF37, /* 0xD0 */
- 0xFF38, 0xFF39, 0xFF3A, 0xFF3B, 0xFF3C, 0xFF3D, 0xFF3E, 0xFF3F, /* 0xD0 */
- 0xFF40, 0xFF41, 0xFF42, 0xFF43, 0xFF44, 0xFF45, 0xFF46, 0xFF47, /* 0xE0 */
- 0xFF48, 0xFF49, 0xFF4A, 0xFF4B, 0xFF4C, 0xFF4D, 0xFF4E, 0xFF4F, /* 0xE0 */
- 0xFF50, 0xFF51, 0xFF52, 0xFF53, 0xFF54, 0xFF55, 0xFF56, 0xFF57, /* 0xF0 */
- 0xFF58, 0xFF59, 0xFF5A, 0xFF5B, 0xFF5C, 0xFF5D, 0xFFE3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GB_A4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, /* 0xA0 */
- 0x3048, 0x3049, 0x304A, 0x304B, 0x304C, 0x304D, 0x304E, 0x304F, /* 0xA0 */
- 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, /* 0xB0 */
- 0x3058, 0x3059, 0x305A, 0x305B, 0x305C, 0x305D, 0x305E, 0x305F, /* 0xB0 */
- 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, /* 0xC0 */
- 0x3068, 0x3069, 0x306A, 0x306B, 0x306C, 0x306D, 0x306E, 0x306F, /* 0xC0 */
- 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, /* 0xD0 */
- 0x3078, 0x3079, 0x307A, 0x307B, 0x307C, 0x307D, 0x307E, 0x307F, /* 0xD0 */
- 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, /* 0xE0 */
- 0x3088, 0x3089, 0x308A, 0x308B, 0x308C, 0x308D, 0x308E, 0x308F, /* 0xE0 */
- 0x3090, 0x3091, 0x3092, 0x3093 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GB_A5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x30A1, 0x30A2, 0x30A3, 0x30A4, 0x30A5, 0x30A6, 0x30A7, /* 0xA0 */
- 0x30A8, 0x30A9, 0x30AA, 0x30AB, 0x30AC, 0x30AD, 0x30AE, 0x30AF, /* 0xA0 */
- 0x30B0, 0x30B1, 0x30B2, 0x30B3, 0x30B4, 0x30B5, 0x30B6, 0x30B7, /* 0xB0 */
- 0x30B8, 0x30B9, 0x30BA, 0x30BB, 0x30BC, 0x30BD, 0x30BE, 0x30BF, /* 0xB0 */
- 0x30C0, 0x30C1, 0x30C2, 0x30C3, 0x30C4, 0x30C5, 0x30C6, 0x30C7, /* 0xC0 */
- 0x30C8, 0x30C9, 0x30CA, 0x30CB, 0x30CC, 0x30CD, 0x30CE, 0x30CF, /* 0xC0 */
- 0x30D0, 0x30D1, 0x30D2, 0x30D3, 0x30D4, 0x30D5, 0x30D6, 0x30D7, /* 0xD0 */
- 0x30D8, 0x30D9, 0x30DA, 0x30DB, 0x30DC, 0x30DD, 0x30DE, 0x30DF, /* 0xD0 */
- 0x30E0, 0x30E1, 0x30E2, 0x30E3, 0x30E4, 0x30E5, 0x30E6, 0x30E7, /* 0xE0 */
- 0x30E8, 0x30E9, 0x30EA, 0x30EB, 0x30EC, 0x30ED, 0x30EE, 0x30EF, /* 0xE0 */
- 0x30F0, 0x30F1, 0x30F2, 0x30F3, 0x30F4, 0x30F5, 0x30F6 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GB_A6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, /* 0xA0 */
- 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, /* 0xA0 */
- 0x03A0, 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, /* 0xB0 */
- 0x03A9, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, /* 0xC0 */
- 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, /* 0xC0 */
- 0x03C0, 0x03C1, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, /* 0xD0 */
- 0x03C9, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xFE35, 0xFE36, 0xFE39, 0xFE3A, 0xFE3F, 0xFE40, 0xFE3D, 0xFE3E, /* 0xE0 */
- 0xFE41, 0xFE42, 0xFE43, 0xFE44, 0, 0, 0xFE3B, 0xFE3C, /* 0xE0 */
- 0xFE37, 0xFE38, 0xFE31, 0, 0xFE33, 0xFE34 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GB_A7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, /* 0xA0 */
- 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, /* 0xA0 */
- 0x041E, 0x041F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, /* 0xB0 */
- 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, /* 0xB0 */
- 0x042E, 0x042F, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, /* 0xD0 */
- 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, /* 0xD0 */
- 0x043E, 0x043F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, /* 0xE0 */
- 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, /* 0xE0 */
- 0x044E, 0x044F /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* A8_BC come from APPLE_CHINSIMP */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_A8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x02CA, 0x02CB, 0x02D9, 0x2013, 0x2015, 0x2025, 0x2035, 0x2105, /* 0x40 */
- 0x2109, 0x2196, 0x2197, 0x2198, 0x2199, 0x2215, 0x221F, 0x2223, /* 0x40 */
- 0x2252, 0x2266, 0x2267, 0x22BF, 0x2550, 0x2551, 0x2552, 0x2553, /* 0x50 */
- 0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, /* 0x50 */
- 0x255C, 0x255D, 0x255E, 0x255F, 0x2560, 0x2561, 0x2562, 0x2563, /* 0x60 */
- 0x2564, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x256B, /* 0x60 */
- 0x256C, 0x256D, 0x256E, 0x256F, 0x2570, 0x2571, 0x2572, 0x2573, /* 0x70 */
- 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, 0x2587, 0, /* 0x70 */
- 0x2588, 0x2589, 0x258A, 0x258B, 0x258C, 0x258D, 0x258E, 0x258F, /* 0x80 */
- 0x2593, 0x2594, 0x2595, 0x25BC, 0x25BD, 0x25E2, 0x25E3, 0x25E4, /* 0x80 */
- 0x25E5, 0x2609, 0x2295, 0x3012, 0x301D, 0x301E, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x0101, 0x00E1, 0x01CE, 0x00E0, 0x0113, 0x00E9, 0x011B, /* 0xA0 */
- 0x00E8, 0x012B, 0x00ED, 0x01D0, 0x00EC, 0x014D, 0x00F3, 0x01D2, /* 0xA0 */
- 0x00F2, 0x016B, 0x00FA, 0x01D4, 0x00F9, 0x01D6, 0x01D8, 0x01DA, /* 0xB0 */
- 0x01DC, 0x00FC, 0x00EA, 0x0251, 0x1E3F, 0x0144, 0x0148, 0, /* 0xB0 */
- 0x0261, 0, 0, 0, 0, 0x3105, 0x3106, 0x3107, /* 0xC0 */
- 0x3108, 0x3109, 0x310A, 0x310B, 0x310C, 0x310D, 0x310E, 0x310F, /* 0xC0 */
- 0x3110, 0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, 0x3117, /* 0xD0 */
- 0x3118, 0x3119, 0x311A, 0x311B, 0x311C, 0x311D, 0x311E, 0x311F, /* 0xD0 */
- 0x3120, 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, /* 0xE0 */
- 0x3128, 0x3129 /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_A9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, 0x3028, /* 0x40 */
- 0x3029, 0x32A3, 0x338E, 0x338F, 0x339C, 0x339D, 0x339E, 0x33A1, /* 0x40 */
- 0x33C4, 0x33CE, 0x33D1, 0x33D2, 0x33D5, 0xFE30, 0xFFE2, 0xFFE4, /* 0x50 */
- 0, 0x2121, 0x3231, 0, 0x2010, 0, 0, 0, /* 0x50 */
- 0x30FC, 0x309B, 0x309C, 0x30FD, 0x30FE, 0x3006, 0x309D, 0x309E, /* 0x60 */
- 0xFE49, 0xFE4A, 0xFE4B, 0xFE4C, 0xFE4D, 0xFE4E, 0xFE4F, 0xFE50, /* 0x60 */
- 0xFE51, 0xFE52, 0xFE54, 0xFE55, 0xFE56, 0xFE57, 0xFE59, 0xFE5A, /* 0x70 */
- 0xFE5B, 0xFE5C, 0xFE5D, 0xFE5E, 0xFE5F, 0xFE60, 0xFE61, 0, /* 0x70 */
- 0xFE62, 0xFE63, 0xFE64, 0xFE65, 0xFE66, 0xFE68, 0xFE69, 0xFE6A, /* 0x80 */
- 0xFE6B, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0x3007, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0x2500, 0x2501, 0x2502, 0x2503, /* 0xA0 */
- 0x2504, 0x2505, 0x2506, 0x2507, 0x2508, 0x2509, 0x250A, 0x250B, /* 0xA0 */
- 0x250C, 0x250D, 0x250E, 0x250F, 0x2510, 0x2511, 0x2512, 0x2513, /* 0xB0 */
- 0x2514, 0x2515, 0x2516, 0x2517, 0x2518, 0x2519, 0x251A, 0x251B, /* 0xB0 */
- 0x251C, 0x251D, 0x251E, 0x251F, 0x2520, 0x2521, 0x2522, 0x2523, /* 0xC0 */
- 0x2524, 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, 0x252A, 0x252B, /* 0xC0 */
- 0x252C, 0x252D, 0x252E, 0x252F, 0x2530, 0x2531, 0x2532, 0x2533, /* 0xD0 */
- 0x2534, 0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x253A, 0x253B, /* 0xD0 */
- 0x253C, 0x253D, 0x253E, 0x253F, 0x2540, 0x2541, 0x2542, 0x2543, /* 0xE0 */
- 0x2544, 0x2545, 0x2546, 0x2547, 0x2548, 0x2549, 0x254A, 0x254B /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_AA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x72DC, 0x72DD, 0x72DF, 0x72E2, 0x72E3, 0x72E4, 0x72E5, 0x72E6, /* 0x40 */
- 0x72E7, 0x72EA, 0x72EB, 0x72F5, 0x72F6, 0x72F9, 0x72FD, 0x72FE, /* 0x40 */
- 0x72FF, 0x7300, 0x7302, 0x7304, 0x7305, 0x7306, 0x7307, 0x7308, /* 0x50 */
- 0x7309, 0x730B, 0x730C, 0x730D, 0x730F, 0x7310, 0x7311, 0x7312, /* 0x50 */
- 0x7314, 0x7318, 0x7319, 0x731A, 0x731F, 0x7320, 0x7323, 0x7324, /* 0x60 */
- 0x7326, 0x7327, 0x7328, 0x732D, 0x732F, 0x7330, 0x7332, 0x7333, /* 0x60 */
- 0x7335, 0x7336, 0x733A, 0x733B, 0x733C, 0x733D, 0x7340, 0x7341, /* 0x70 */
- 0x7342, 0x7343, 0x7344, 0x7345, 0x7346, 0x7347, 0x7348, 0, /* 0x70 */
- 0x7349, 0x734A, 0x734B, 0x734C, 0x734E, 0x734F, 0x7351, 0x7353, /* 0x80 */
- 0x7354, 0x7355, 0x7356, 0x7358, 0x7359, 0x735A, 0x735B, 0x735C, /* 0x80 */
- 0x735D, 0x735E, 0x735F, 0x7361, 0x7362, 0x7363, 0x7364, 0x7365, /* 0x90 */
- 0x7366, 0x7367, 0x7368, 0x7369, 0x736A, 0x736B, 0x736E, 0x7370, /* 0x90 */
- 0x7371 /* 0xA0 */
- /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_AB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7372, 0x7373, 0x7374, 0x7375, 0x7376, 0x7377, 0x7378, 0x7379, /* 0x40 */
- 0x737A, 0x737B, 0x737C, 0x737D, 0x737F, 0x7380, 0x7381, 0x7382, /* 0x40 */
- 0x7383, 0x7385, 0x7386, 0x7388, 0x738A, 0x738C, 0x738D, 0x738F, /* 0x50 */
- 0x7390, 0x7392, 0x7393, 0x7394, 0x7395, 0x7397, 0x7398, 0x7399, /* 0x50 */
- 0x739A, 0x739C, 0x739D, 0x739E, 0x73A0, 0x73A1, 0x73A3, 0x73A4, /* 0x60 */
- 0x73A5, 0x73A6, 0x73A7, 0x73A8, 0x73AA, 0x73AC, 0x73AD, 0x73B1, /* 0x60 */
- 0x73B4, 0x73B5, 0x73B6, 0x73B8, 0x73B9, 0x73BC, 0x73BD, 0x73BE, /* 0x70 */
- 0x73BF, 0x73C1, 0x73C3, 0x73C4, 0x73C5, 0x73C6, 0x73C7, 0, /* 0x70 */
- 0x73CB, 0x73CC, 0x73CE, 0x73D2, 0x73D3, 0x73D4, 0x73D5, 0x73D6, /* 0x80 */
- 0x73D7, 0x73D8, 0x73DA, 0x73DB, 0x73DC, 0x73DD, 0x73DF, 0x73E1, /* 0x80 */
- 0x73E2, 0x73E3, 0x73E4, 0x73E6, 0x73E8, 0x73EA, 0x73EB, 0x73EC, /* 0x90 */
- 0x73EE, 0x73EF, 0x73F0, 0x73F1, 0x73F3, 0x73F4, 0x73F5, 0x73F6, /* 0x90 */
- 0x73F7 /* 0xA0 */
- /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_AC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x73F8, 0x73F9, 0x73FA, 0x73FB, 0x73FC, 0x73FD, 0x73FE, 0x73FF, /* 0x40 */
- 0x7400, 0x7401, 0x7402, 0x7404, 0x7407, 0x7408, 0x740B, 0x740C, /* 0x40 */
- 0x740D, 0x740E, 0x7411, 0x7412, 0x7413, 0x7414, 0x7415, 0x7416, /* 0x50 */
- 0x7417, 0x7418, 0x7419, 0x741C, 0x741D, 0x741E, 0x741F, 0x7420, /* 0x50 */
- 0x7421, 0x7423, 0x7424, 0x7427, 0x7429, 0x742B, 0x742D, 0x742F, /* 0x60 */
- 0x7431, 0x7432, 0x7437, 0x7438, 0x7439, 0x743A, 0x743B, 0x743D, /* 0x60 */
- 0x743E, 0x743F, 0x7440, 0x7442, 0x7443, 0x7444, 0x7445, 0x7446, /* 0x70 */
- 0x7447, 0x7448, 0x7449, 0x744A, 0x744B, 0x744C, 0x744D, 0, /* 0x70 */
- 0x744E, 0x744F, 0x7450, 0x7451, 0x7452, 0x7453, 0x7454, 0x7456, /* 0x80 */
- 0x7458, 0x745D, 0x7460, 0x7461, 0x7462, 0x7463, 0x7464, 0x7465, /* 0x80 */
- 0x7466, 0x7467, 0x7468, 0x7469, 0x746A, 0x746B, 0x746C, 0x746E, /* 0x90 */
- 0x746F, 0x7471, 0x7472, 0x7473, 0x7474, 0x7475, 0x7478, 0x7479, /* 0x90 */
- 0x747A /* 0xA0 */
- /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_AD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x747B, 0x747C, 0x747D, 0x747F, 0x7482, 0x7484, 0x7485, 0x7486, /* 0x40 */
- 0x7488, 0x7489, 0x748A, 0x748C, 0x748D, 0x748F, 0x7491, 0x7492, /* 0x40 */
- 0x7493, 0x7494, 0x7495, 0x7496, 0x7497, 0x7498, 0x7499, 0x749A, /* 0x50 */
- 0x749B, 0x749D, 0x749F, 0x74A0, 0x74A1, 0x74A2, 0x74A3, 0x74A4, /* 0x50 */
- 0x74A5, 0x74A6, 0x74AA, 0x74AB, 0x74AC, 0x74AD, 0x74AE, 0x74AF, /* 0x60 */
- 0x74B0, 0x74B1, 0x74B2, 0x74B3, 0x74B4, 0x74B5, 0x74B6, 0x74B7, /* 0x60 */
- 0x74B8, 0x74B9, 0x74BB, 0x74BC, 0x74BD, 0x74BE, 0x74BF, 0x74C0, /* 0x70 */
- 0x74C1, 0x74C2, 0x74C3, 0x74C4, 0x74C5, 0x74C6, 0x74C7, 0, /* 0x70 */
- 0x74C8, 0x74C9, 0x74CA, 0x74CB, 0x74CC, 0x74CD, 0x74CE, 0x74CF, /* 0x80 */
- 0x74D0, 0x74D1, 0x74D3, 0x74D4, 0x74D5, 0x74D6, 0x74D7, 0x74D8, /* 0x80 */
- 0x74D9, 0x74DA, 0x74DB, 0x74DD, 0x74DF, 0x74E1, 0x74E5, 0x74E7, /* 0x90 */
- 0x74E8, 0x74E9, 0x74EA, 0x74EB, 0x74EC, 0x74ED, 0x74F0, 0x74F1, /* 0x90 */
- 0x74F2 /* 0xA0 */
- /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_AE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x74F3, 0x74F5, 0x74F8, 0x74F9, 0x74FA, 0x74FB, 0x74FC, 0x74FD, /* 0x40 */
- 0x74FE, 0x7500, 0x7501, 0x7502, 0x7503, 0x7505, 0x7506, 0x7507, /* 0x40 */
- 0x7508, 0x7509, 0x750A, 0x750B, 0x750C, 0x750E, 0x7510, 0x7512, /* 0x50 */
- 0x7514, 0x7515, 0x7516, 0x7517, 0x751B, 0x751D, 0x751E, 0x7520, /* 0x50 */
- 0x7521, 0x7522, 0x7523, 0x7524, 0x7526, 0x7527, 0x752A, 0x752E, /* 0x60 */
- 0x7534, 0x7536, 0x7539, 0x753C, 0x753D, 0x753F, 0x7541, 0x7542, /* 0x60 */
- 0x7543, 0x7544, 0x7546, 0x7547, 0x7549, 0x754A, 0x754D, 0x7550, /* 0x70 */
- 0x7551, 0x7552, 0x7553, 0x7555, 0x7556, 0x7557, 0x7558, 0, /* 0x70 */
- 0x755D, 0x755E, 0x755F, 0x7560, 0x7561, 0x7562, 0x7563, 0x7564, /* 0x80 */
- 0x7567, 0x7568, 0x7569, 0x756B, 0x756C, 0x756D, 0x756E, 0x756F, /* 0x80 */
- 0x7570, 0x7571, 0x7573, 0x7575, 0x7576, 0x7577, 0x757A, 0x757B, /* 0x90 */
- 0x757C, 0x757D, 0x757E, 0x7580, 0x7581, 0x7582, 0x7584, 0x7585, /* 0x90 */
- 0x7587 /* 0xA0 */
- /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_AF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7588, 0x7589, 0x758A, 0x758C, 0x758D, 0x758E, 0x7590, 0x7593, /* 0x40 */
- 0x7595, 0x7598, 0x759B, 0x759C, 0x759E, 0x75A2, 0x75A6, 0x75A7, /* 0x40 */
- 0x75A8, 0x75A9, 0x75AA, 0x75AD, 0x75B6, 0x75B7, 0x75BA, 0x75BB, /* 0x50 */
- 0x75BF, 0x75C0, 0x75C1, 0x75C6, 0x75CB, 0x75CC, 0x75CE, 0x75CF, /* 0x50 */
- 0x75D0, 0x75D1, 0x75D3, 0x75D7, 0x75D9, 0x75DA, 0x75DC, 0x75DD, /* 0x60 */
- 0x75DF, 0x75E0, 0x75E1, 0x75E5, 0x75E9, 0x75EC, 0x75ED, 0x75EE, /* 0x60 */
- 0x75EF, 0x75F2, 0x75F3, 0x75F5, 0x75F6, 0x75F7, 0x75F8, 0x75FA, /* 0x70 */
- 0x75FB, 0x75FD, 0x75FE, 0x7602, 0x7604, 0x7606, 0x7607, 0, /* 0x70 */
- 0x7608, 0x7609, 0x760B, 0x760D, 0x760E, 0x760F, 0x7611, 0x7612, /* 0x80 */
- 0x7613, 0x7614, 0x7616, 0x761A, 0x761C, 0x761D, 0x761E, 0x7621, /* 0x80 */
- 0x7623, 0x7627, 0x7628, 0x762C, 0x762E, 0x762F, 0x7631, 0x7632, /* 0x90 */
- 0x7636, 0x7637, 0x7639, 0x763A, 0x763B, 0x763D, 0x7641, 0x7642, /* 0x90 */
- 0x7644 /* 0xA0 */
- /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_B0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7645, 0x7646, 0x7647, 0x7648, 0x7649, 0x764A, 0x764B, 0x764E, /* 0x40 */
- 0x764F, 0x7650, 0x7651, 0x7652, 0x7653, 0x7655, 0x7657, 0x7658, /* 0x40 */
- 0x7659, 0x765A, 0x765B, 0x765D, 0x765F, 0x7660, 0x7661, 0x7662, /* 0x50 */
- 0x7664, 0x7665, 0x7666, 0x7667, 0x7668, 0x7669, 0x766A, 0x766C, /* 0x50 */
- 0x766D, 0x766E, 0x7670, 0x7671, 0x7672, 0x7673, 0x7674, 0x7675, /* 0x60 */
- 0x7676, 0x7677, 0x7679, 0x767A, 0x767C, 0x767F, 0x7680, 0x7681, /* 0x60 */
- 0x7683, 0x7685, 0x7689, 0x768A, 0x768C, 0x768D, 0x768F, 0x7690, /* 0x70 */
- 0x7692, 0x7694, 0x7695, 0x7697, 0x7698, 0x769A, 0x769B, 0, /* 0x70 */
- 0x769C, 0x769D, 0x769E, 0x769F, 0x76A0, 0x76A1, 0x76A2, 0x76A3, /* 0x80 */
- 0x76A5, 0x76A6, 0x76A7, 0x76A8, 0x76A9, 0x76AA, 0x76AB, 0x76AC, /* 0x80 */
- 0x76AD, 0x76AF, 0x76B0, 0x76B3, 0x76B5, 0x76B6, 0x76B7, 0x76B8, /* 0x90 */
- 0x76B9, 0x76BA, 0x76BB, 0x76BC, 0x76BD, 0x76BE, 0x76C0, 0x76C1, /* 0x90 */
- 0x76C3, 0x554A, 0x963F, 0x57C3, 0x6328, 0x54CE, 0x5509, 0x54C0, /* 0xA0 */
- 0x7691, 0x764C, 0x853C, 0x77EE, 0x827E, 0x788D, 0x7231, 0x9698, /* 0xA0 */
- 0x978D, 0x6C28, 0x5B89, 0x4FFA, 0x6309, 0x6697, 0x5CB8, 0x80FA, /* 0xB0 */
- 0x6848, 0x80AE, 0x6602, 0x76CE, 0x51F9, 0x6556, 0x71AC, 0x7FF1, /* 0xB0 */
- 0x8884, 0x50B2, 0x5965, 0x61CA, 0x6FB3, 0x82AD, 0x634C, 0x6252, /* 0xC0 */
- 0x53ED, 0x5427, 0x7B06, 0x516B, 0x75A4, 0x5DF4, 0x62D4, 0x8DCB, /* 0xC0 */
- 0x9776, 0x628A, 0x8019, 0x575D, 0x9738, 0x7F62, 0x7238, 0x767D, /* 0xD0 */
- 0x67CF, 0x767E, 0x6446, 0x4F70, 0x8D25, 0x62DC, 0x7A17, 0x6591, /* 0xD0 */
- 0x73ED, 0x642C, 0x6273, 0x822C, 0x9881, 0x677F, 0x7248, 0x626E, /* 0xE0 */
- 0x62CC, 0x4F34, 0x74E3, 0x534A, 0x529E, 0x7ECA, 0x90A6, 0x5E2E, /* 0xE0 */
- 0x6886, 0x699C, 0x8180, 0x7ED1, 0x68D2, 0x78C5, 0x868C, 0x9551, /* 0xF0 */
- 0x508D, 0x8C24, 0x82DE, 0x80DE, 0x5305, 0x8912, 0x5265 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_B1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x76C4, 0x76C7, 0x76C9, 0x76CB, 0x76CC, 0x76D3, 0x76D5, 0x76D9, /* 0x40 */
- 0x76DA, 0x76DC, 0x76DD, 0x76DE, 0x76E0, 0x76E1, 0x76E2, 0x76E3, /* 0x40 */
- 0x76E4, 0x76E6, 0x76E7, 0x76E8, 0x76E9, 0x76EA, 0x76EB, 0x76EC, /* 0x50 */
- 0x76ED, 0x76F0, 0x76F3, 0x76F5, 0x76F6, 0x76F7, 0x76FA, 0x76FB, /* 0x50 */
- 0x76FD, 0x76FF, 0x7700, 0x7702, 0x7703, 0x7705, 0x7706, 0x770A, /* 0x60 */
- 0x770C, 0x770E, 0x770F, 0x7710, 0x7711, 0x7712, 0x7713, 0x7714, /* 0x60 */
- 0x7715, 0x7716, 0x7717, 0x7718, 0x771B, 0x771C, 0x771D, 0x771E, /* 0x70 */
- 0x7721, 0x7723, 0x7724, 0x7725, 0x7727, 0x772A, 0x772B, 0, /* 0x70 */
- 0x772C, 0x772E, 0x7730, 0x7731, 0x7732, 0x7733, 0x7734, 0x7739, /* 0x80 */
- 0x773B, 0x773D, 0x773E, 0x773F, 0x7742, 0x7744, 0x7745, 0x7746, /* 0x80 */
- 0x7748, 0x7749, 0x774A, 0x774B, 0x774C, 0x774D, 0x774E, 0x774F, /* 0x90 */
- 0x7752, 0x7753, 0x7754, 0x7755, 0x7756, 0x7757, 0x7758, 0x7759, /* 0x90 */
- 0x775C, 0x8584, 0x96F9, 0x4FDD, 0x5821, 0x9971, 0x5B9D, 0x62B1, /* 0xA0 */
- 0x62A5, 0x66B4, 0x8C79, 0x9C8D, 0x7206, 0x676F, 0x7891, 0x60B2, /* 0xA0 */
- 0x5351, 0x5317, 0x8F88, 0x80CC, 0x8D1D, 0x94A1, 0x500D, 0x72C8, /* 0xB0 */
- 0x5907, 0x60EB, 0x7119, 0x88AB, 0x5954, 0x82EF, 0x672C, 0x7B28, /* 0xB0 */
- 0x5D29, 0x7EF7, 0x752D, 0x6CF5, 0x8E66, 0x8FF8, 0x903C, 0x9F3B, /* 0xC0 */
- 0x6BD4, 0x9119, 0x7B14, 0x5F7C, 0x78A7, 0x84D6, 0x853D, 0x6BD5, /* 0xC0 */
- 0x6BD9, 0x6BD6, 0x5E01, 0x5E87, 0x75F9, 0x95ED, 0x655D, 0x5F0A, /* 0xD0 */
- 0x5FC5, 0x8F9F, 0x58C1, 0x81C2, 0x907F, 0x965B, 0x97AD, 0x8FB9, /* 0xD0 */
- 0x7F16, 0x8D2C, 0x6241, 0x4FBF, 0x53D8, 0x535E, 0x8FA8, 0x8FA9, /* 0xE0 */
- 0x8FAB, 0x904D, 0x6807, 0x5F6A, 0x8198, 0x8868, 0x9CD6, 0x618B, /* 0xE0 */
- 0x522B, 0x762A, 0x5F6C, 0x658C, 0x6FD2, 0x6EE8, 0x5BBE, 0x6448, /* 0xF0 */
- 0x5175, 0x51B0, 0x67C4, 0x4E19, 0x79C9, 0x997C, 0x70B3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_B2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x775D, 0x775E, 0x775F, 0x7760, 0x7764, 0x7767, 0x7769, 0x776A, /* 0x40 */
- 0x776D, 0x776E, 0x776F, 0x7770, 0x7771, 0x7772, 0x7773, 0x7774, /* 0x40 */
- 0x7775, 0x7776, 0x7777, 0x7778, 0x777A, 0x777B, 0x777C, 0x7781, /* 0x50 */
- 0x7782, 0x7783, 0x7786, 0x7787, 0x7788, 0x7789, 0x778A, 0x778B, /* 0x50 */
- 0x778F, 0x7790, 0x7793, 0x7794, 0x7795, 0x7796, 0x7797, 0x7798, /* 0x60 */
- 0x7799, 0x779A, 0x779B, 0x779C, 0x779D, 0x779E, 0x77A1, 0x77A3, /* 0x60 */
- 0x77A4, 0x77A6, 0x77A8, 0x77AB, 0x77AD, 0x77AE, 0x77AF, 0x77B1, /* 0x70 */
- 0x77B2, 0x77B4, 0x77B6, 0x77B7, 0x77B8, 0x77B9, 0x77BA, 0, /* 0x70 */
- 0x77BC, 0x77BE, 0x77C0, 0x77C1, 0x77C2, 0x77C3, 0x77C4, 0x77C5, /* 0x80 */
- 0x77C6, 0x77C7, 0x77C8, 0x77C9, 0x77CA, 0x77CB, 0x77CC, 0x77CE, /* 0x80 */
- 0x77CF, 0x77D0, 0x77D1, 0x77D2, 0x77D3, 0x77D4, 0x77D5, 0x77D6, /* 0x90 */
- 0x77D8, 0x77D9, 0x77DA, 0x77DD, 0x77DE, 0x77DF, 0x77E0, 0x77E1, /* 0x90 */
- 0x77E4, 0x75C5, 0x5E76, 0x73BB, 0x83E0, 0x64AD, 0x62E8, 0x94B5, /* 0xA0 */
- 0x6CE2, 0x535A, 0x52C3, 0x640F, 0x94C2, 0x7B94, 0x4F2F, 0x5E1B, /* 0xA0 */
- 0x8236, 0x8116, 0x818A, 0x6E24, 0x6CCA, 0x9A73, 0x6355, 0x535C, /* 0xB0 */
- 0x54FA, 0x8865, 0x57E0, 0x4E0D, 0x5E03, 0x6B65, 0x7C3F, 0x90E8, /* 0xB0 */
- 0x6016, 0x64E6, 0x731C, 0x88C1, 0x6750, 0x624D, 0x8D22, 0x776C, /* 0xC0 */
- 0x8E29, 0x91C7, 0x5F69, 0x83DC, 0x8521, 0x9910, 0x53C2, 0x8695, /* 0xC0 */
- 0x6B8B, 0x60ED, 0x60E8, 0x707F, 0x82CD, 0x8231, 0x4ED3, 0x6CA7, /* 0xD0 */
- 0x85CF, 0x64CD, 0x7CD9, 0x69FD, 0x66F9, 0x8349, 0x5395, 0x7B56, /* 0xD0 */
- 0x4FA7, 0x518C, 0x6D4B, 0x5C42, 0x8E6D, 0x63D2, 0x53C9, 0x832C, /* 0xE0 */
- 0x8336, 0x67E5, 0x78B4, 0x643D, 0x5BDF, 0x5C94, 0x5DEE, 0x8BE7, /* 0xE0 */
- 0x62C6, 0x67F4, 0x8C7A, 0x6400, 0x63BA, 0x8749, 0x998B, 0x8C17, /* 0xF0 */
- 0x7F20, 0x94F2, 0x4EA7, 0x9610, 0x98A4, 0x660C, 0x7316 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_B3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x77E6, 0x77E8, 0x77EA, 0x77EF, 0x77F0, 0x77F1, 0x77F2, 0x77F4, /* 0x40 */
- 0x77F5, 0x77F7, 0x77F9, 0x77FA, 0x77FB, 0x77FC, 0x7803, 0x7804, /* 0x40 */
- 0x7805, 0x7806, 0x7807, 0x7808, 0x780A, 0x780B, 0x780E, 0x780F, /* 0x50 */
- 0x7810, 0x7813, 0x7815, 0x7819, 0x781B, 0x781E, 0x7820, 0x7821, /* 0x50 */
- 0x7822, 0x7824, 0x7828, 0x782A, 0x782B, 0x782E, 0x782F, 0x7831, /* 0x60 */
- 0x7832, 0x7833, 0x7835, 0x7836, 0x783D, 0x783F, 0x7841, 0x7842, /* 0x60 */
- 0x7843, 0x7844, 0x7846, 0x7848, 0x7849, 0x784A, 0x784B, 0x784D, /* 0x70 */
- 0x784F, 0x7851, 0x7853, 0x7854, 0x7858, 0x7859, 0x785A, 0, /* 0x70 */
- 0x785B, 0x785C, 0x785E, 0x785F, 0x7860, 0x7861, 0x7862, 0x7863, /* 0x80 */
- 0x7864, 0x7865, 0x7866, 0x7867, 0x7868, 0x7869, 0x786F, 0x7870, /* 0x80 */
- 0x7871, 0x7872, 0x7873, 0x7874, 0x7875, 0x7876, 0x7878, 0x7879, /* 0x90 */
- 0x787A, 0x787B, 0x787D, 0x787E, 0x787F, 0x7880, 0x7881, 0x7882, /* 0x90 */
- 0x7883, 0x573A, 0x5C1D, 0x5E38, 0x957F, 0x507F, 0x80A0, 0x5382, /* 0xA0 */
- 0x655E, 0x7545, 0x5531, 0x5021, 0x8D85, 0x6284, 0x949E, 0x671D, /* 0xA0 */
- 0x5632, 0x6F6E, 0x5DE2, 0x5435, 0x7092, 0x8F66, 0x626F, 0x64A4, /* 0xB0 */
- 0x63A3, 0x5F7B, 0x6F88, 0x90F4, 0x81E3, 0x8FB0, 0x5C18, 0x6668, /* 0xB0 */
- 0x5FF1, 0x6C89, 0x9648, 0x8D81, 0x886C, 0x6491, 0x79F0, 0x57CE, /* 0xC0 */
- 0x6A59, 0x6210, 0x5448, 0x4E58, 0x7A0B, 0x60E9, 0x6F84, 0x8BDA, /* 0xC0 */
- 0x627F, 0x901E, 0x9A8B, 0x79E4, 0x5403, 0x75F4, 0x6301, 0x5319, /* 0xD0 */
- 0x6C60, 0x8FDF, 0x5F1B, 0x9A70, 0x803B, 0x9F7F, 0x4F88, 0x5C3A, /* 0xD0 */
- 0x8D64, 0x7FC5, 0x65A5, 0x70BD, 0x5145, 0x51B2, 0x866B, 0x5D07, /* 0xE0 */
- 0x5BA0, 0x62BD, 0x916C, 0x7574, 0x8E0C, 0x7A20, 0x6101, 0x7B79, /* 0xE0 */
- 0x4EC7, 0x7EF8, 0x7785, 0x4E11, 0x81ED, 0x521D, 0x51FA, 0x6A71, /* 0xF0 */
- 0x53A8, 0x8E87, 0x9504, 0x96CF, 0x6EC1, 0x9664, 0x695A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_B4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7884, 0x7885, 0x7886, 0x7888, 0x788A, 0x788B, 0x788F, 0x7890, /* 0x40 */
- 0x7892, 0x7894, 0x7895, 0x7896, 0x7899, 0x789D, 0x789E, 0x78A0, /* 0x40 */
- 0x78A2, 0x78A4, 0x78A6, 0x78A8, 0x78A9, 0x78AA, 0x78AB, 0x78AC, /* 0x50 */
- 0x78AD, 0x78AE, 0x78AF, 0x78B5, 0x78B6, 0x78B7, 0x78B8, 0x78BA, /* 0x50 */
- 0x78BB, 0x78BC, 0x78BD, 0x78BF, 0x78C0, 0x78C2, 0x78C3, 0x78C4, /* 0x60 */
- 0x78C6, 0x78C7, 0x78C8, 0x78CC, 0x78CD, 0x78CE, 0x78CF, 0x78D1, /* 0x60 */
- 0x78D2, 0x78D3, 0x78D6, 0x78D7, 0x78D8, 0x78DA, 0x78DB, 0x78DC, /* 0x70 */
- 0x78DD, 0x78DE, 0x78DF, 0x78E0, 0x78E1, 0x78E2, 0x78E3, 0, /* 0x70 */
- 0x78E4, 0x78E5, 0x78E6, 0x78E7, 0x78E9, 0x78EA, 0x78EB, 0x78ED, /* 0x80 */
- 0x78EE, 0x78EF, 0x78F0, 0x78F1, 0x78F3, 0x78F5, 0x78F6, 0x78F8, /* 0x80 */
- 0x78F9, 0x78FB, 0x78FC, 0x78FD, 0x78FE, 0x78FF, 0x7900, 0x7902, /* 0x90 */
- 0x7903, 0x7904, 0x7906, 0x7907, 0x7908, 0x7909, 0x790A, 0x790B, /* 0x90 */
- 0x790C, 0x7840, 0x50A8, 0x77D7, 0x6410, 0x89E6, 0x5904, 0x63E3, /* 0xA0 */
- 0x5DDD, 0x7A7F, 0x693D, 0x4F20, 0x8239, 0x5598, 0x4E32, 0x75AE, /* 0xA0 */
- 0x7A97, 0x5E62, 0x5E8A, 0x95EF, 0x521B, 0x5439, 0x708A, 0x6376, /* 0xB0 */
- 0x9524, 0x5782, 0x6625, 0x693F, 0x9187, 0x5507, 0x6DF3, 0x7EAF, /* 0xB0 */
- 0x8822, 0x6233, 0x7EF0, 0x75B5, 0x8328, 0x78C1, 0x96CC, 0x8F9E, /* 0xC0 */
- 0x6148, 0x74F7, 0x8BCD, 0x6B64, 0x523A, 0x8D50, 0x6B21, 0x806A, /* 0xC0 */
- 0x8471, 0x56F1, 0x5306, 0x4ECE, 0x4E1B, 0x51D1, 0x7C97, 0x918B, /* 0xD0 */
- 0x7C07, 0x4FC3, 0x8E7F, 0x7BE1, 0x7A9C, 0x6467, 0x5D14, 0x50AC, /* 0xD0 */
- 0x8106, 0x7601, 0x7CB9, 0x6DEC, 0x7FE0, 0x6751, 0x5B58, 0x5BF8, /* 0xE0 */
- 0x78CB, 0x64AE, 0x6413, 0x63AA, 0x632B, 0x9519, 0x642D, 0x8FBE, /* 0xE0 */
- 0x7B54, 0x7629, 0x6253, 0x5927, 0x5446, 0x6B79, 0x50A3, 0x6234, /* 0xF0 */
- 0x5E26, 0x6B86, 0x4EE3, 0x8D37, 0x888B, 0x5F85, 0x902E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_B5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x790D, 0x790E, 0x790F, 0x7910, 0x7911, 0x7912, 0x7914, 0x7915, /* 0x40 */
- 0x7916, 0x7917, 0x7918, 0x7919, 0x791A, 0x791B, 0x791C, 0x791D, /* 0x40 */
- 0x791F, 0x7920, 0x7921, 0x7922, 0x7923, 0x7925, 0x7926, 0x7927, /* 0x50 */
- 0x7928, 0x7929, 0x792A, 0x792B, 0x792C, 0x792D, 0x792E, 0x792F, /* 0x50 */
- 0x7930, 0x7931, 0x7932, 0x7933, 0x7935, 0x7936, 0x7937, 0x7938, /* 0x60 */
- 0x7939, 0x793D, 0x793F, 0x7942, 0x7943, 0x7944, 0x7945, 0x7947, /* 0x60 */
- 0x794A, 0x794B, 0x794C, 0x794D, 0x794E, 0x794F, 0x7950, 0x7951, /* 0x70 */
- 0x7952, 0x7954, 0x7955, 0x7958, 0x7959, 0x7961, 0x7963, 0, /* 0x70 */
- 0x7964, 0x7966, 0x7969, 0x796A, 0x796B, 0x796C, 0x796E, 0x7970, /* 0x80 */
- 0x7971, 0x7972, 0x7973, 0x7974, 0x7975, 0x7976, 0x7979, 0x797B, /* 0x80 */
- 0x797C, 0x797D, 0x797E, 0x797F, 0x7982, 0x7983, 0x7986, 0x7987, /* 0x90 */
- 0x7988, 0x7989, 0x798B, 0x798C, 0x798D, 0x798E, 0x7990, 0x7991, /* 0x90 */
- 0x7992, 0x6020, 0x803D, 0x62C5, 0x4E39, 0x5355, 0x90F8, 0x63B8, /* 0xA0 */
- 0x80C6, 0x65E6, 0x6C2E, 0x4F46, 0x60EE, 0x6DE1, 0x8BDE, 0x5F39, /* 0xA0 */
- 0x86CB, 0x5F53, 0x6321, 0x515A, 0x8361, 0x6863, 0x5200, 0x6363, /* 0xB0 */
- 0x8E48, 0x5012, 0x5C9B, 0x7977, 0x5BFC, 0x5230, 0x7A3B, 0x60BC, /* 0xB0 */
- 0x9053, 0x76D7, 0x5FB7, 0x5F97, 0x7684, 0x8E6C, 0x706F, 0x767B, /* 0xC0 */
- 0x7B49, 0x77AA, 0x51F3, 0x9093, 0x5824, 0x4F4E, 0x6EF4, 0x8FEA, /* 0xC0 */
- 0x654C, 0x7B1B, 0x72C4, 0x6DA4, 0x7FDF, 0x5AE1, 0x62B5, 0x5E95, /* 0xD0 */
- 0x5730, 0x8482, 0x7B2C, 0x5E1D, 0x5F1F, 0x9012, 0x7F14, 0x98A0, /* 0xD0 */
- 0x6382, 0x6EC7, 0x7898, 0x70B9, 0x5178, 0x975B, 0x57AB, 0x7535, /* 0xE0 */
- 0x4F43, 0x7538, 0x5E97, 0x60E6, 0x5960, 0x6DC0, 0x6BBF, 0x7889, /* 0xE0 */
- 0x53FC, 0x96D5, 0x51CB, 0x5201, 0x6389, 0x540A, 0x9493, 0x8C03, /* 0xF0 */
- 0x8DCC, 0x7239, 0x789F, 0x8776, 0x8FED, 0x8C0D, 0x53E0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_B6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7993, 0x7994, 0x7995, 0x7996, 0x7997, 0x7998, 0x7999, 0x799B, /* 0x40 */
- 0x799C, 0x799D, 0x799E, 0x799F, 0x79A0, 0x79A1, 0x79A2, 0x79A3, /* 0x40 */
- 0x79A4, 0x79A5, 0x79A6, 0x79A8, 0x79A9, 0x79AA, 0x79AB, 0x79AC, /* 0x50 */
- 0x79AD, 0x79AE, 0x79AF, 0x79B0, 0x79B1, 0x79B2, 0x79B4, 0x79B5, /* 0x50 */
- 0x79B6, 0x79B7, 0x79B8, 0x79BC, 0x79BF, 0x79C2, 0x79C4, 0x79C5, /* 0x60 */
- 0x79C7, 0x79C8, 0x79CA, 0x79CC, 0x79CE, 0x79CF, 0x79D0, 0x79D3, /* 0x60 */
- 0x79D4, 0x79D6, 0x79D7, 0x79D9, 0x79DA, 0x79DB, 0x79DC, 0x79DD, /* 0x70 */
- 0x79DE, 0x79E0, 0x79E1, 0x79E2, 0x79E5, 0x79E8, 0x79EA, 0, /* 0x70 */
- 0x79EC, 0x79EE, 0x79F1, 0x79F2, 0x79F3, 0x79F4, 0x79F5, 0x79F6, /* 0x80 */
- 0x79F7, 0x79F9, 0x79FA, 0x79FC, 0x79FE, 0x79FF, 0x7A01, 0x7A04, /* 0x80 */
- 0x7A05, 0x7A07, 0x7A08, 0x7A09, 0x7A0A, 0x7A0C, 0x7A0F, 0x7A10, /* 0x90 */
- 0x7A11, 0x7A12, 0x7A13, 0x7A15, 0x7A16, 0x7A18, 0x7A19, 0x7A1B, /* 0x90 */
- 0x7A1C, 0x4E01, 0x76EF, 0x53EE, 0x9489, 0x9876, 0x9F0E, 0x952D, /* 0xA0 */
- 0x5B9A, 0x8BA2, 0x4E22, 0x4E1C, 0x51AC, 0x8463, 0x61C2, 0x52A8, /* 0xA0 */
- 0x680B, 0x4F97, 0x606B, 0x51BB, 0x6D1E, 0x515C, 0x6296, 0x6597, /* 0xB0 */
- 0x9661, 0x8C46, 0x9017, 0x75D8, 0x90FD, 0x7763, 0x6BD2, 0x728A, /* 0xB0 */
- 0x72EC, 0x8BFB, 0x5835, 0x7779, 0x8D4C, 0x675C, 0x9540, 0x809A, /* 0xC0 */
- 0x5EA6, 0x6E21, 0x5992, 0x7AEF, 0x77ED, 0x953B, 0x6BB5, 0x65AD, /* 0xC0 */
- 0x7F0E, 0x5806, 0x5151, 0x961F, 0x5BF9, 0x58A9, 0x5428, 0x8E72, /* 0xD0 */
- 0x6566, 0x987F, 0x56E4, 0x949D, 0x76FE, 0x9041, 0x6387, 0x54C6, /* 0xD0 */
- 0x591A, 0x593A, 0x579B, 0x8EB2, 0x6735, 0x8DFA, 0x8235, 0x5241, /* 0xE0 */
- 0x60F0, 0x5815, 0x86FE, 0x5CE8, 0x9E45, 0x4FC4, 0x989D, 0x8BB9, /* 0xE0 */
- 0x5A25, 0x6076, 0x5384, 0x627C, 0x904F, 0x9102, 0x997F, 0x6069, /* 0xF0 */
- 0x800C, 0x513F, 0x8033, 0x5C14, 0x9975, 0x6D31, 0x4E8C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_B7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7A1D, 0x7A1F, 0x7A21, 0x7A22, 0x7A24, 0x7A25, 0x7A26, 0x7A27, /* 0x40 */
- 0x7A28, 0x7A29, 0x7A2A, 0x7A2B, 0x7A2C, 0x7A2D, 0x7A2E, 0x7A2F, /* 0x40 */
- 0x7A30, 0x7A31, 0x7A32, 0x7A34, 0x7A35, 0x7A36, 0x7A38, 0x7A3A, /* 0x50 */
- 0x7A3E, 0x7A40, 0x7A41, 0x7A42, 0x7A43, 0x7A44, 0x7A45, 0x7A47, /* 0x50 */
- 0x7A48, 0x7A49, 0x7A4A, 0x7A4B, 0x7A4C, 0x7A4D, 0x7A4E, 0x7A4F, /* 0x60 */
- 0x7A50, 0x7A52, 0x7A53, 0x7A54, 0x7A55, 0x7A56, 0x7A58, 0x7A59, /* 0x60 */
- 0x7A5A, 0x7A5B, 0x7A5C, 0x7A5D, 0x7A5E, 0x7A5F, 0x7A60, 0x7A61, /* 0x70 */
- 0x7A62, 0x7A63, 0x7A64, 0x7A65, 0x7A66, 0x7A67, 0x7A68, 0, /* 0x70 */
- 0x7A69, 0x7A6A, 0x7A6B, 0x7A6C, 0x7A6D, 0x7A6E, 0x7A6F, 0x7A71, /* 0x80 */
- 0x7A72, 0x7A73, 0x7A75, 0x7A7B, 0x7A7C, 0x7A7D, 0x7A7E, 0x7A82, /* 0x80 */
- 0x7A85, 0x7A87, 0x7A89, 0x7A8A, 0x7A8B, 0x7A8C, 0x7A8E, 0x7A8F, /* 0x90 */
- 0x7A90, 0x7A93, 0x7A94, 0x7A99, 0x7A9A, 0x7A9B, 0x7A9E, 0x7AA1, /* 0x90 */
- 0x7AA2, 0x8D30, 0x53D1, 0x7F5A, 0x7B4F, 0x4F10, 0x4E4F, 0x9600, /* 0xA0 */
- 0x6CD5, 0x73D0, 0x85E9, 0x5E06, 0x756A, 0x7FFB, 0x6A0A, 0x77FE, /* 0xA0 */
- 0x9492, 0x7E41, 0x51E1, 0x70E6, 0x53CD, 0x8FD4, 0x8303, 0x8D29, /* 0xB0 */
- 0x72AF, 0x996D, 0x6CDB, 0x574A, 0x82B3, 0x65B9, 0x80AA, 0x623F, /* 0xB0 */
- 0x9632, 0x59A8, 0x4EFF, 0x8BBF, 0x7EBA, 0x653E, 0x83F2, 0x975E, /* 0xC0 */
- 0x5561, 0x98DE, 0x80A5, 0x532A, 0x8BFD, 0x5420, 0x80BA, 0x5E9F, /* 0xC0 */
- 0x6CB8, 0x8D39, 0x82AC, 0x915A, 0x5429, 0x6C1B, 0x5206, 0x7EB7, /* 0xD0 */
- 0x575F, 0x711A, 0x6C7E, 0x7C89, 0x594B, 0x4EFD, 0x5FFF, 0x6124, /* 0xD0 */
- 0x7CAA, 0x4E30, 0x5C01, 0x67AB, 0x8702, 0x5CF0, 0x950B, 0x98CE, /* 0xE0 */
- 0x75AF, 0x70FD, 0x9022, 0x51AF, 0x7F1D, 0x8BBD, 0x5949, 0x51E4, /* 0xE0 */
- 0x4F5B, 0x5426, 0x592B, 0x6577, 0x80A4, 0x5B75, 0x6276, 0x62C2, /* 0xF0 */
- 0x8F90, 0x5E45, 0x6C1F, 0x7B26, 0x4F0F, 0x4FD8, 0x670D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_B8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7AA3, 0x7AA4, 0x7AA7, 0x7AA9, 0x7AAA, 0x7AAB, 0x7AAE, 0x7AAF, /* 0x40 */
- 0x7AB0, 0x7AB1, 0x7AB2, 0x7AB4, 0x7AB5, 0x7AB6, 0x7AB7, 0x7AB8, /* 0x40 */
- 0x7AB9, 0x7ABA, 0x7ABB, 0x7ABC, 0x7ABD, 0x7ABE, 0x7AC0, 0x7AC1, /* 0x50 */
- 0x7AC2, 0x7AC3, 0x7AC4, 0x7AC5, 0x7AC6, 0x7AC7, 0x7AC8, 0x7AC9, /* 0x50 */
- 0x7ACA, 0x7ACC, 0x7ACD, 0x7ACE, 0x7ACF, 0x7AD0, 0x7AD1, 0x7AD2, /* 0x60 */
- 0x7AD3, 0x7AD4, 0x7AD5, 0x7AD7, 0x7AD8, 0x7ADA, 0x7ADB, 0x7ADC, /* 0x60 */
- 0x7ADD, 0x7AE1, 0x7AE2, 0x7AE4, 0x7AE7, 0x7AE8, 0x7AE9, 0x7AEA, /* 0x70 */
- 0x7AEB, 0x7AEC, 0x7AEE, 0x7AF0, 0x7AF1, 0x7AF2, 0x7AF3, 0, /* 0x70 */
- 0x7AF4, 0x7AF5, 0x7AF6, 0x7AF7, 0x7AF8, 0x7AFB, 0x7AFC, 0x7AFE, /* 0x80 */
- 0x7B00, 0x7B01, 0x7B02, 0x7B05, 0x7B07, 0x7B09, 0x7B0C, 0x7B0D, /* 0x80 */
- 0x7B0E, 0x7B10, 0x7B12, 0x7B13, 0x7B16, 0x7B17, 0x7B18, 0x7B1A, /* 0x90 */
- 0x7B1C, 0x7B1D, 0x7B1F, 0x7B21, 0x7B22, 0x7B23, 0x7B27, 0x7B29, /* 0x90 */
- 0x7B2D, 0x6D6E, 0x6DAA, 0x798F, 0x88B1, 0x5F17, 0x752B, 0x629A, /* 0xA0 */
- 0x8F85, 0x4FEF, 0x91DC, 0x65A7, 0x812F, 0x8151, 0x5E9C, 0x8150, /* 0xA0 */
- 0x8D74, 0x526F, 0x8986, 0x8D4B, 0x590D, 0x5085, 0x4ED8, 0x961C, /* 0xB0 */
- 0x7236, 0x8179, 0x8D1F, 0x5BCC, 0x8BA3, 0x9644, 0x5987, 0x7F1A, /* 0xB0 */
- 0x5490, 0x5676, 0x560E, 0x8BE5, 0x6539, 0x6982, 0x9499, 0x76D6, /* 0xC0 */
- 0x6E89, 0x5E72, 0x7518, 0x6746, 0x67D1, 0x7AFF, 0x809D, 0x8D76, /* 0xC0 */
- 0x611F, 0x79C6, 0x6562, 0x8D63, 0x5188, 0x521A, 0x94A2, 0x7F38, /* 0xD0 */
- 0x809B, 0x7EB2, 0x5C97, 0x6E2F, 0x6760, 0x7BD9, 0x768B, 0x9AD8, /* 0xD0 */
- 0x818F, 0x7F94, 0x7CD5, 0x641E, 0x9550, 0x7A3F, 0x544A, 0x54E5, /* 0xE0 */
- 0x6B4C, 0x6401, 0x6208, 0x9E3D, 0x80F3, 0x7599, 0x5272, 0x9769, /* 0xE0 */
- 0x845B, 0x683C, 0x86E4, 0x9601, 0x9694, 0x94EC, 0x4E2A, 0x5404, /* 0xF0 */
- 0x7ED9, 0x6839, 0x8DDF, 0x8015, 0x66F4, 0x5E9A, 0x7FB9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_B9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7B2F, 0x7B30, 0x7B32, 0x7B34, 0x7B35, 0x7B36, 0x7B37, 0x7B39, /* 0x40 */
- 0x7B3B, 0x7B3D, 0x7B3F, 0x7B40, 0x7B41, 0x7B42, 0x7B43, 0x7B44, /* 0x40 */
- 0x7B46, 0x7B48, 0x7B4A, 0x7B4D, 0x7B4E, 0x7B53, 0x7B55, 0x7B57, /* 0x50 */
- 0x7B59, 0x7B5C, 0x7B5E, 0x7B5F, 0x7B61, 0x7B63, 0x7B64, 0x7B65, /* 0x50 */
- 0x7B66, 0x7B67, 0x7B68, 0x7B69, 0x7B6A, 0x7B6B, 0x7B6C, 0x7B6D, /* 0x60 */
- 0x7B6F, 0x7B70, 0x7B73, 0x7B74, 0x7B76, 0x7B78, 0x7B7A, 0x7B7C, /* 0x60 */
- 0x7B7D, 0x7B7F, 0x7B81, 0x7B82, 0x7B83, 0x7B84, 0x7B86, 0x7B87, /* 0x70 */
- 0x7B88, 0x7B89, 0x7B8A, 0x7B8B, 0x7B8C, 0x7B8E, 0x7B8F, 0, /* 0x70 */
- 0x7B91, 0x7B92, 0x7B93, 0x7B96, 0x7B98, 0x7B99, 0x7B9A, 0x7B9B, /* 0x80 */
- 0x7B9E, 0x7B9F, 0x7BA0, 0x7BA3, 0x7BA4, 0x7BA5, 0x7BAE, 0x7BAF, /* 0x80 */
- 0x7BB0, 0x7BB2, 0x7BB3, 0x7BB5, 0x7BB6, 0x7BB7, 0x7BB9, 0x7BBA, /* 0x90 */
- 0x7BBB, 0x7BBC, 0x7BBD, 0x7BBE, 0x7BBF, 0x7BC0, 0x7BC2, 0x7BC3, /* 0x90 */
- 0x7BC4, 0x57C2, 0x803F, 0x6897, 0x5DE5, 0x653B, 0x529F, 0x606D, /* 0xA0 */
- 0x9F9A, 0x4F9B, 0x8EAC, 0x516C, 0x5BAB, 0x5F13, 0x5DE9, 0x6C5E, /* 0xA0 */
- 0x62F1, 0x8D21, 0x5171, 0x94A9, 0x52FE, 0x6C9F, 0x82DF, 0x72D7, /* 0xB0 */
- 0x57A2, 0x6784, 0x8D2D, 0x591F, 0x8F9C, 0x83C7, 0x5495, 0x7B8D, /* 0xB0 */
- 0x4F30, 0x6CBD, 0x5B64, 0x59D1, 0x9F13, 0x53E4, 0x86CA, 0x9AA8, /* 0xC0 */
- 0x8C37, 0x80A1, 0x6545, 0x987E, 0x56FA, 0x96C7, 0x522E, 0x74DC, /* 0xC0 */
- 0x5250, 0x5BE1, 0x6302, 0x8902, 0x4E56, 0x62D0, 0x602A, 0x68FA, /* 0xD0 */
- 0x5173, 0x5B98, 0x51A0, 0x89C2, 0x7BA1, 0x9986, 0x7F50, 0x60EF, /* 0xD0 */
- 0x704C, 0x8D2F, 0x5149, 0x5E7F, 0x901B, 0x7470, 0x89C4, 0x572D, /* 0xE0 */
- 0x7845, 0x5F52, 0x9F9F, 0x95FA, 0x8F68, 0x9B3C, 0x8BE1, 0x7678, /* 0xE0 */
- 0x6842, 0x67DC, 0x8DEA, 0x8D35, 0x523D, 0x8F8A, 0x6EDA, 0x68CD, /* 0xF0 */
- 0x9505, 0x90ED, 0x56FD, 0x679C, 0x88F9, 0x8FC7, 0x54C8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_BA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7BC5, 0x7BC8, 0x7BC9, 0x7BCA, 0x7BCB, 0x7BCD, 0x7BCE, 0x7BCF, /* 0x40 */
- 0x7BD0, 0x7BD2, 0x7BD4, 0x7BD5, 0x7BD6, 0x7BD7, 0x7BD8, 0x7BDB, /* 0x40 */
- 0x7BDC, 0x7BDE, 0x7BDF, 0x7BE0, 0x7BE2, 0x7BE3, 0x7BE4, 0x7BE7, /* 0x50 */
- 0x7BE8, 0x7BE9, 0x7BEB, 0x7BEC, 0x7BED, 0x7BEF, 0x7BF0, 0x7BF2, /* 0x50 */
- 0x7BF3, 0x7BF4, 0x7BF5, 0x7BF6, 0x7BF8, 0x7BF9, 0x7BFA, 0x7BFB, /* 0x60 */
- 0x7BFD, 0x7BFF, 0x7C00, 0x7C01, 0x7C02, 0x7C03, 0x7C04, 0x7C05, /* 0x60 */
- 0x7C06, 0x7C08, 0x7C09, 0x7C0A, 0x7C0D, 0x7C0E, 0x7C10, 0x7C11, /* 0x70 */
- 0x7C12, 0x7C13, 0x7C14, 0x7C15, 0x7C17, 0x7C18, 0x7C19, 0, /* 0x70 */
- 0x7C1A, 0x7C1B, 0x7C1C, 0x7C1D, 0x7C1E, 0x7C20, 0x7C21, 0x7C22, /* 0x80 */
- 0x7C23, 0x7C24, 0x7C25, 0x7C28, 0x7C29, 0x7C2B, 0x7C2C, 0x7C2D, /* 0x80 */
- 0x7C2E, 0x7C2F, 0x7C30, 0x7C31, 0x7C32, 0x7C33, 0x7C34, 0x7C35, /* 0x90 */
- 0x7C36, 0x7C37, 0x7C39, 0x7C3A, 0x7C3B, 0x7C3C, 0x7C3D, 0x7C3E, /* 0x90 */
- 0x7C42, 0x9AB8, 0x5B69, 0x6D77, 0x6C26, 0x4EA5, 0x5BB3, 0x9A87, /* 0xA0 */
- 0x9163, 0x61A8, 0x90AF, 0x97E9, 0x542B, 0x6DB5, 0x5BD2, 0x51FD, /* 0xA0 */
- 0x558A, 0x7F55, 0x7FF0, 0x64BC, 0x634D, 0x65F1, 0x61BE, 0x608D, /* 0xB0 */
- 0x710A, 0x6C57, 0x6C49, 0x592F, 0x676D, 0x822A, 0x58D5, 0x568E, /* 0xB0 */
- 0x8C6A, 0x6BEB, 0x90DD, 0x597D, 0x8017, 0x53F7, 0x6D69, 0x5475, /* 0xC0 */
- 0x559D, 0x8377, 0x83CF, 0x6838, 0x79BE, 0x548C, 0x4F55, 0x5408, /* 0xC0 */
- 0x76D2, 0x8C89, 0x9602, 0x6CB3, 0x6DB8, 0x8D6B, 0x8910, 0x9E64, /* 0xD0 */
- 0x8D3A, 0x563F, 0x9ED1, 0x75D5, 0x5F88, 0x72E0, 0x6068, 0x54FC, /* 0xD0 */
- 0x4EA8, 0x6A2A, 0x8861, 0x6052, 0x8F70, 0x54C4, 0x70D8, 0x8679, /* 0xE0 */
- 0x9E3F, 0x6D2A, 0x5B8F, 0x5F18, 0x7EA2, 0x5589, 0x4FAF, 0x7334, /* 0xE0 */
- 0x543C, 0x539A, 0x5019, 0x540E, 0x547C, 0x4E4E, 0x5FFD, 0x745A, /* 0xF0 */
- 0x58F6, 0x846B, 0x80E1, 0x8774, 0x72D0, 0x7CCA, 0x6E56 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_BB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7C43, 0x7C44, 0x7C45, 0x7C46, 0x7C47, 0x7C48, 0x7C49, 0x7C4A, /* 0x40 */
- 0x7C4B, 0x7C4C, 0x7C4E, 0x7C4F, 0x7C50, 0x7C51, 0x7C52, 0x7C53, /* 0x40 */
- 0x7C54, 0x7C55, 0x7C56, 0x7C57, 0x7C58, 0x7C59, 0x7C5A, 0x7C5B, /* 0x50 */
- 0x7C5C, 0x7C5D, 0x7C5E, 0x7C5F, 0x7C60, 0x7C61, 0x7C62, 0x7C63, /* 0x50 */
- 0x7C64, 0x7C65, 0x7C66, 0x7C67, 0x7C68, 0x7C69, 0x7C6A, 0x7C6B, /* 0x60 */
- 0x7C6C, 0x7C6D, 0x7C6E, 0x7C6F, 0x7C70, 0x7C71, 0x7C72, 0x7C75, /* 0x60 */
- 0x7C76, 0x7C77, 0x7C78, 0x7C79, 0x7C7A, 0x7C7E, 0x7C7F, 0x7C80, /* 0x70 */
- 0x7C81, 0x7C82, 0x7C83, 0x7C84, 0x7C85, 0x7C86, 0x7C87, 0, /* 0x70 */
- 0x7C88, 0x7C8A, 0x7C8B, 0x7C8C, 0x7C8D, 0x7C8E, 0x7C8F, 0x7C90, /* 0x80 */
- 0x7C93, 0x7C94, 0x7C96, 0x7C99, 0x7C9A, 0x7C9B, 0x7CA0, 0x7CA1, /* 0x80 */
- 0x7CA3, 0x7CA6, 0x7CA7, 0x7CA8, 0x7CA9, 0x7CAB, 0x7CAC, 0x7CAD, /* 0x90 */
- 0x7CAF, 0x7CB0, 0x7CB4, 0x7CB5, 0x7CB6, 0x7CB7, 0x7CB8, 0x7CBA, /* 0x90 */
- 0x7CBB, 0x5F27, 0x864E, 0x552C, 0x62A4, 0x4E92, 0x6CAA, 0x6237, /* 0xA0 */
- 0x82B1, 0x54D7, 0x534E, 0x733E, 0x6ED1, 0x753B, 0x5212, 0x5316, /* 0xA0 */
- 0x8BDD, 0x69D0, 0x5F8A, 0x6000, 0x6DEE, 0x574F, 0x6B22, 0x73AF, /* 0xB0 */
- 0x6853, 0x8FD8, 0x7F13, 0x6362, 0x60A3, 0x5524, 0x75EA, 0x8C62, /* 0xB0 */
- 0x7115, 0x6DA3, 0x5BA6, 0x5E7B, 0x8352, 0x614C, 0x9EC4, 0x78FA, /* 0xC0 */
- 0x8757, 0x7C27, 0x7687, 0x51F0, 0x60F6, 0x714C, 0x6643, 0x5E4C, /* 0xC0 */
- 0x604D, 0x8C0E, 0x7070, 0x6325, 0x8F89, 0x5FBD, 0x6062, 0x86D4, /* 0xD0 */
- 0x56DE, 0x6BC1, 0x6094, 0x6167, 0x5349, 0x60E0, 0x6666, 0x8D3F, /* 0xD0 */
- 0x79FD, 0x4F1A, 0x70E9, 0x6C47, 0x8BB3, 0x8BF2, 0x7ED8, 0x8364, /* 0xE0 */
- 0x660F, 0x5A5A, 0x9B42, 0x6D51, 0x6DF7, 0x8C41, 0x6D3B, 0x4F19, /* 0xE0 */
- 0x706B, 0x83B7, 0x6216, 0x60D1, 0x970D, 0x8D27, 0x7978, 0x51FB, /* 0xF0 */
- 0x573E, 0x57FA, 0x673A, 0x7578, 0x7A3D, 0x79EF, 0x7B95 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_BC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7CBF, 0x7CC0, 0x7CC2, 0x7CC3, 0x7CC4, 0x7CC6, 0x7CC9, 0x7CCB, /* 0x40 */
- 0x7CCE, 0x7CCF, 0x7CD0, 0x7CD1, 0x7CD2, 0x7CD3, 0x7CD4, 0x7CD8, /* 0x40 */
- 0x7CDA, 0x7CDB, 0x7CDD, 0x7CDE, 0x7CE1, 0x7CE2, 0x7CE3, 0x7CE4, /* 0x50 */
- 0x7CE5, 0x7CE6, 0x7CE7, 0x7CE9, 0x7CEA, 0x7CEB, 0x7CEC, 0x7CED, /* 0x50 */
- 0x7CEE, 0x7CF0, 0x7CF1, 0x7CF2, 0x7CF3, 0x7CF4, 0x7CF5, 0x7CF6, /* 0x60 */
- 0x7CF7, 0x7CF9, 0x7CFA, 0x7CFC, 0x7CFD, 0x7CFE, 0x7CFF, 0x7D00, /* 0x60 */
- 0x7D01, 0x7D02, 0x7D03, 0x7D04, 0x7D05, 0x7D06, 0x7D07, 0x7D08, /* 0x70 */
- 0x7D09, 0x7D0B, 0x7D0C, 0x7D0D, 0x7D0E, 0x7D0F, 0x7D10, 0, /* 0x70 */
- 0x7D11, 0x7D12, 0x7D13, 0x7D14, 0x7D15, 0x7D16, 0x7D17, 0x7D18, /* 0x80 */
- 0x7D19, 0x7D1A, 0x7D1B, 0x7D1C, 0x7D1D, 0x7D1E, 0x7D1F, 0x7D21, /* 0x80 */
- 0x7D23, 0x7D24, 0x7D25, 0x7D26, 0x7D28, 0x7D29, 0x7D2A, 0x7D2C, /* 0x90 */
- 0x7D2D, 0x7D2E, 0x7D30, 0x7D31, 0x7D32, 0x7D33, 0x7D34, 0x7D35, /* 0x90 */
- 0x7D36, 0x808C, 0x9965, 0x8FF9, 0x6FC0, 0x8BA5, 0x9E21, 0x59EC, /* 0xA0 */
- 0x7EE9, 0x7F09, 0x5409, 0x6781, 0x68D8, 0x8F91, 0x7C4D, 0x96C6, /* 0xA0 */
- 0x53CA, 0x6025, 0x75BE, 0x6C72, 0x5373, 0x5AC9, 0x7EA7, 0x6324, /* 0xB0 */
- 0x51E0, 0x810A, 0x5DF1, 0x84DF, 0x6280, 0x5180, 0x5B63, 0x4F0E, /* 0xB0 */
- 0x796D, 0x5242, 0x60B8, 0x6D4E, 0x5BC4, 0x5BC2, 0x8BA1, 0x8BB0, /* 0xC0 */
- 0x65E2, 0x5FCC, 0x9645, 0x5993, 0x7EE7, 0x7EAA, 0x5609, 0x67B7, /* 0xC0 */
- 0x5939, 0x4F73, 0x5BB6, 0x52A0, 0x835A, 0x988A, 0x8D3E, 0x7532, /* 0xD0 */
- 0x94BE, 0x5047, 0x7A3C, 0x4EF7, 0x67B6, 0x9A7E, 0x5AC1, 0x6B7C, /* 0xD0 */
- 0x76D1, 0x575A, 0x5C16, 0x7B3A, 0x95F4, 0x714E, 0x517C, 0x80A9, /* 0xE0 */
- 0x8270, 0x5978, 0x7F04, 0x8327, 0x68C0, 0x67EC, 0x78B1, 0x7877, /* 0xE0 */
- 0x62E3, 0x6361, 0x7B80, 0x4FED, 0x526A, 0x51CF, 0x8350, 0x69DB, /* 0xF0 */
- 0x9274, 0x8DF5, 0x8D31, 0x89C1, 0x952E, 0x7BAD, 0x4EF6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_BD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7D37, 0x7D38, 0x7D39, 0x7D3A, 0x7D3B, 0x7D3C, 0x7D3D, 0x7D3E, /* 0x40 */
- 0x7D3F, 0x7D40, 0x7D41, 0x7D42, 0x7D43, 0x7D44, 0x7D45, 0x7D46, /* 0x40 */
- 0x7D47, 0x7D48, 0x7D49, 0x7D4A, 0x7D4B, 0x7D4C, 0x7D4D, 0x7D4E, /* 0x50 */
- 0x7D4F, 0x7D50, 0x7D51, 0x7D52, 0x7D53, 0x7D54, 0x7D55, 0x7D56, /* 0x50 */
- 0x7D57, 0x7D58, 0x7D59, 0x7D5A, 0x7D5B, 0x7D5C, 0x7D5D, 0x7D5E, /* 0x60 */
- 0x7D5F, 0x7D60, 0x7D61, 0x7D62, 0x7D63, 0x7D64, 0x7D65, 0x7D66, /* 0x60 */
- 0x7D67, 0x7D68, 0x7D69, 0x7D6A, 0x7D6B, 0x7D6C, 0x7D6D, 0x7D6F, /* 0x70 */
- 0x7D70, 0x7D71, 0x7D72, 0x7D73, 0x7D74, 0x7D75, 0x7D76, 0, /* 0x70 */
- 0x7D78, 0x7D79, 0x7D7A, 0x7D7B, 0x7D7C, 0x7D7D, 0x7D7E, 0x7D7F, /* 0x80 */
- 0x7D80, 0x7D81, 0x7D82, 0x7D83, 0x7D84, 0x7D85, 0x7D86, 0x7D87, /* 0x80 */
- 0x7D88, 0x7D89, 0x7D8A, 0x7D8B, 0x7D8C, 0x7D8D, 0x7D8E, 0x7D8F, /* 0x90 */
- 0x7D90, 0x7D91, 0x7D92, 0x7D93, 0x7D94, 0x7D95, 0x7D96, 0x7D97, /* 0x90 */
- 0x7D98, 0x5065, 0x8230, 0x5251, 0x996F, 0x6E10, 0x6E85, 0x6DA7, /* 0xA0 */
- 0x5EFA, 0x50F5, 0x59DC, 0x5C06, 0x6D46, 0x6C5F, 0x7586, 0x848B, /* 0xA0 */
- 0x6868, 0x5956, 0x8BB2, 0x5320, 0x9171, 0x964D, 0x8549, 0x6912, /* 0xB0 */
- 0x7901, 0x7126, 0x80F6, 0x4EA4, 0x90CA, 0x6D47, 0x9A84, 0x5A07, /* 0xB0 */
- 0x56BC, 0x6405, 0x94F0, 0x77EB, 0x4FA5, 0x811A, 0x72E1, 0x89D2, /* 0xC0 */
- 0x997A, 0x7F34, 0x7EDE, 0x527F, 0x6559, 0x9175, 0x8F7F, 0x8F83, /* 0xC0 */
- 0x53EB, 0x7A96, 0x63ED, 0x63A5, 0x7686, 0x79F8, 0x8857, 0x9636, /* 0xD0 */
- 0x622A, 0x52AB, 0x8282, 0x6854, 0x6770, 0x6377, 0x776B, 0x7AED, /* 0xD0 */
- 0x6D01, 0x7ED3, 0x89E3, 0x59D0, 0x6212, 0x85C9, 0x82A5, 0x754C, /* 0xE0 */
- 0x501F, 0x4ECB, 0x75A5, 0x8BEB, 0x5C4A, 0x5DFE, 0x7B4B, 0x65A4, /* 0xE0 */
- 0x91D1, 0x4ECA, 0x6D25, 0x895F, 0x7D27, 0x9526, 0x4EC5, 0x8C28, /* 0xF0 */
- 0x8FDB, 0x9773, 0x664B, 0x7981, 0x8FD1, 0x70EC, 0x6D78 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_BE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7D99, 0x7D9A, 0x7D9B, 0x7D9C, 0x7D9D, 0x7D9E, 0x7D9F, 0x7DA0, /* 0x40 */
- 0x7DA1, 0x7DA2, 0x7DA3, 0x7DA4, 0x7DA5, 0x7DA7, 0x7DA8, 0x7DA9, /* 0x40 */
- 0x7DAA, 0x7DAB, 0x7DAC, 0x7DAD, 0x7DAF, 0x7DB0, 0x7DB1, 0x7DB2, /* 0x50 */
- 0x7DB3, 0x7DB4, 0x7DB5, 0x7DB6, 0x7DB7, 0x7DB8, 0x7DB9, 0x7DBA, /* 0x50 */
- 0x7DBB, 0x7DBC, 0x7DBD, 0x7DBE, 0x7DBF, 0x7DC0, 0x7DC1, 0x7DC2, /* 0x60 */
- 0x7DC3, 0x7DC4, 0x7DC5, 0x7DC6, 0x7DC7, 0x7DC8, 0x7DC9, 0x7DCA, /* 0x60 */
- 0x7DCB, 0x7DCC, 0x7DCD, 0x7DCE, 0x7DCF, 0x7DD0, 0x7DD1, 0x7DD2, /* 0x70 */
- 0x7DD3, 0x7DD4, 0x7DD5, 0x7DD6, 0x7DD7, 0x7DD8, 0x7DD9, 0, /* 0x70 */
- 0x7DDA, 0x7DDB, 0x7DDC, 0x7DDD, 0x7DDE, 0x7DDF, 0x7DE0, 0x7DE1, /* 0x80 */
- 0x7DE2, 0x7DE3, 0x7DE4, 0x7DE5, 0x7DE6, 0x7DE7, 0x7DE8, 0x7DE9, /* 0x80 */
- 0x7DEA, 0x7DEB, 0x7DEC, 0x7DED, 0x7DEE, 0x7DEF, 0x7DF0, 0x7DF1, /* 0x90 */
- 0x7DF2, 0x7DF3, 0x7DF4, 0x7DF5, 0x7DF6, 0x7DF7, 0x7DF8, 0x7DF9, /* 0x90 */
- 0x7DFA, 0x5C3D, 0x52B2, 0x8346, 0x5162, 0x830E, 0x775B, 0x6676, /* 0xA0 */
- 0x9CB8, 0x4EAC, 0x60CA, 0x7CBE, 0x7CB3, 0x7ECF, 0x4E95, 0x8B66, /* 0xA0 */
- 0x666F, 0x9888, 0x9759, 0x5883, 0x656C, 0x955C, 0x5F84, 0x75C9, /* 0xB0 */
- 0x9756, 0x7ADF, 0x7ADE, 0x51C0, 0x70AF, 0x7A98, 0x63EA, 0x7A76, /* 0xB0 */
- 0x7EA0, 0x7396, 0x97ED, 0x4E45, 0x7078, 0x4E5D, 0x9152, 0x53A9, /* 0xC0 */
- 0x6551, 0x65E7, 0x81FC, 0x8205, 0x548E, 0x5C31, 0x759A, 0x97A0, /* 0xC0 */
- 0x62D8, 0x72D9, 0x75BD, 0x5C45, 0x9A79, 0x83CA, 0x5C40, 0x5480, /* 0xD0 */
- 0x77E9, 0x4E3E, 0x6CAE, 0x805A, 0x62D2, 0x636E, 0x5DE8, 0x5177, /* 0xD0 */
- 0x8DDD, 0x8E1E, 0x952F, 0x4FF1, 0x53E5, 0x60E7, 0x70AC, 0x5267, /* 0xE0 */
- 0x6350, 0x9E43, 0x5A1F, 0x5026, 0x7737, 0x5377, 0x7EE2, 0x6485, /* 0xE0 */
- 0x652B, 0x6289, 0x6398, 0x5014, 0x7235, 0x89C9, 0x51B3, 0x8BC0, /* 0xF0 */
- 0x7EDD, 0x5747, 0x83CC, 0x94A7, 0x519B, 0x541B, 0x5CFB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_BF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7DFB, 0x7DFC, 0x7DFD, 0x7DFE, 0x7DFF, 0x7E00, 0x7E01, 0x7E02, /* 0x40 */
- 0x7E03, 0x7E04, 0x7E05, 0x7E06, 0x7E07, 0x7E08, 0x7E09, 0x7E0A, /* 0x40 */
- 0x7E0B, 0x7E0C, 0x7E0D, 0x7E0E, 0x7E0F, 0x7E10, 0x7E11, 0x7E12, /* 0x50 */
- 0x7E13, 0x7E14, 0x7E15, 0x7E16, 0x7E17, 0x7E18, 0x7E19, 0x7E1A, /* 0x50 */
- 0x7E1B, 0x7E1C, 0x7E1D, 0x7E1E, 0x7E1F, 0x7E20, 0x7E21, 0x7E22, /* 0x60 */
- 0x7E23, 0x7E24, 0x7E25, 0x7E26, 0x7E27, 0x7E28, 0x7E29, 0x7E2A, /* 0x60 */
- 0x7E2B, 0x7E2C, 0x7E2D, 0x7E2E, 0x7E2F, 0x7E30, 0x7E31, 0x7E32, /* 0x70 */
- 0x7E33, 0x7E34, 0x7E35, 0x7E36, 0x7E37, 0x7E38, 0x7E39, 0, /* 0x70 */
- 0x7E3A, 0x7E3C, 0x7E3D, 0x7E3E, 0x7E3F, 0x7E40, 0x7E42, 0x7E43, /* 0x80 */
- 0x7E44, 0x7E45, 0x7E46, 0x7E48, 0x7E49, 0x7E4A, 0x7E4B, 0x7E4C, /* 0x80 */
- 0x7E4D, 0x7E4E, 0x7E4F, 0x7E50, 0x7E51, 0x7E52, 0x7E53, 0x7E54, /* 0x90 */
- 0x7E55, 0x7E56, 0x7E57, 0x7E58, 0x7E59, 0x7E5A, 0x7E5B, 0x7E5C, /* 0x90 */
- 0x7E5D, 0x4FCA, 0x7AE3, 0x6D5A, 0x90E1, 0x9A8F, 0x5580, 0x5496, /* 0xA0 */
- 0x5361, 0x54AF, 0x5F00, 0x63E9, 0x6977, 0x51EF, 0x6168, 0x520A, /* 0xA0 */
- 0x582A, 0x52D8, 0x574E, 0x780D, 0x770B, 0x5EB7, 0x6177, 0x7CE0, /* 0xB0 */
- 0x625B, 0x6297, 0x4EA2, 0x7095, 0x8003, 0x62F7, 0x70E4, 0x9760, /* 0xB0 */
- 0x5777, 0x82DB, 0x67EF, 0x68F5, 0x78D5, 0x9897, 0x79D1, 0x58F3, /* 0xC0 */
- 0x54B3, 0x53EF, 0x6E34, 0x514B, 0x523B, 0x5BA2, 0x8BFE, 0x80AF, /* 0xC0 */
- 0x5543, 0x57A6, 0x6073, 0x5751, 0x542D, 0x7A7A, 0x6050, 0x5B54, /* 0xD0 */
- 0x63A7, 0x62A0, 0x53E3, 0x6263, 0x5BC7, 0x67AF, 0x54ED, 0x7A9F, /* 0xD0 */
- 0x82E6, 0x9177, 0x5E93, 0x88E4, 0x5938, 0x57AE, 0x630E, 0x8DE8, /* 0xE0 */
- 0x80EF, 0x5757, 0x7B77, 0x4FA9, 0x5FEB, 0x5BBD, 0x6B3E, 0x5321, /* 0xE0 */
- 0x7B50, 0x72C2, 0x6846, 0x77FF, 0x7736, 0x65F7, 0x51B5, 0x4E8F, /* 0xF0 */
- 0x76D4, 0x5CBF, 0x7AA5, 0x8475, 0x594E, 0x9B41, 0x5080 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_C0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7E5E, 0x7E5F, 0x7E60, 0x7E61, 0x7E62, 0x7E63, 0x7E64, 0x7E65, /* 0x40 */
- 0x7E66, 0x7E67, 0x7E68, 0x7E69, 0x7E6A, 0x7E6B, 0x7E6C, 0x7E6D, /* 0x40 */
- 0x7E6E, 0x7E6F, 0x7E70, 0x7E71, 0x7E72, 0x7E73, 0x7E74, 0x7E75, /* 0x50 */
- 0x7E76, 0x7E77, 0x7E78, 0x7E79, 0x7E7A, 0x7E7B, 0x7E7C, 0x7E7D, /* 0x50 */
- 0x7E7E, 0x7E7F, 0x7E80, 0x7E81, 0x7E83, 0x7E84, 0x7E85, 0x7E86, /* 0x60 */
- 0x7E87, 0x7E88, 0x7E89, 0x7E8A, 0x7E8B, 0x7E8C, 0x7E8D, 0x7E8E, /* 0x60 */
- 0x7E8F, 0x7E90, 0x7E91, 0x7E92, 0x7E93, 0x7E94, 0x7E95, 0x7E96, /* 0x70 */
- 0x7E97, 0x7E98, 0x7E99, 0x7E9A, 0x7E9C, 0x7E9D, 0x7E9E, 0, /* 0x70 */
- 0x7EAE, 0x7EB4, 0x7EBB, 0x7EBC, 0x7ED6, 0x7EE4, 0x7EEC, 0x7EF9, /* 0x80 */
- 0x7F0A, 0x7F10, 0x7F1E, 0x7F37, 0x7F39, 0x7F3B, 0x7F3C, 0x7F3D, /* 0x80 */
- 0x7F3E, 0x7F3F, 0x7F40, 0x7F41, 0x7F43, 0x7F46, 0x7F47, 0x7F48, /* 0x90 */
- 0x7F49, 0x7F4A, 0x7F4B, 0x7F4C, 0x7F4D, 0x7F4E, 0x7F4F, 0x7F52, /* 0x90 */
- 0x7F53, 0x9988, 0x6127, 0x6E83, 0x5764, 0x6606, 0x6346, 0x56F0, /* 0xA0 */
- 0x62EC, 0x6269, 0x5ED3, 0x9614, 0x5783, 0x62C9, 0x5587, 0x8721, /* 0xA0 */
- 0x814A, 0x8FA3, 0x5566, 0x83B1, 0x6765, 0x8D56, 0x84DD, 0x5A6A, /* 0xB0 */
- 0x680F, 0x62E6, 0x7BEE, 0x9611, 0x5170, 0x6F9C, 0x8C30, 0x63FD, /* 0xB0 */
- 0x89C8, 0x61D2, 0x7F06, 0x70C2, 0x6EE5, 0x7405, 0x6994, 0x72FC, /* 0xC0 */
- 0x5ECA, 0x90CE, 0x6717, 0x6D6A, 0x635E, 0x52B3, 0x7262, 0x8001, /* 0xC0 */
- 0x4F6C, 0x59E5, 0x916A, 0x70D9, 0x6D9D, 0x52D2, 0x4E50, 0x96F7, /* 0xD0 */
- 0x956D, 0x857E, 0x78CA, 0x7D2F, 0x5121, 0x5792, 0x64C2, 0x808B, /* 0xD0 */
- 0x7C7B, 0x6CEA, 0x68F1, 0x695E, 0x51B7, 0x5398, 0x68A8, 0x7281, /* 0xE0 */
- 0x9ECE, 0x7BF1, 0x72F8, 0x79BB, 0x6F13, 0x7406, 0x674E, 0x91CC, /* 0xE0 */
- 0x9CA4, 0x793C, 0x8389, 0x8354, 0x540F, 0x6817, 0x4E3D, 0x5389, /* 0xF0 */
- 0x52B1, 0x783E, 0x5386, 0x5229, 0x5088, 0x4F8B, 0x4FD0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_C1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7F56, 0x7F59, 0x7F5B, 0x7F5C, 0x7F5D, 0x7F5E, 0x7F60, 0x7F63, /* 0x40 */
- 0x7F64, 0x7F65, 0x7F66, 0x7F67, 0x7F6B, 0x7F6C, 0x7F6D, 0x7F6F, /* 0x40 */
- 0x7F70, 0x7F73, 0x7F75, 0x7F76, 0x7F77, 0x7F78, 0x7F7A, 0x7F7B, /* 0x50 */
- 0x7F7C, 0x7F7D, 0x7F7F, 0x7F80, 0x7F82, 0x7F83, 0x7F84, 0x7F85, /* 0x50 */
- 0x7F86, 0x7F87, 0x7F88, 0x7F89, 0x7F8B, 0x7F8D, 0x7F8F, 0x7F90, /* 0x60 */
- 0x7F91, 0x7F92, 0x7F93, 0x7F95, 0x7F96, 0x7F97, 0x7F98, 0x7F99, /* 0x60 */
- 0x7F9B, 0x7F9C, 0x7FA0, 0x7FA2, 0x7FA3, 0x7FA5, 0x7FA6, 0x7FA8, /* 0x70 */
- 0x7FA9, 0x7FAA, 0x7FAB, 0x7FAC, 0x7FAD, 0x7FAE, 0x7FB1, 0, /* 0x70 */
- 0x7FB3, 0x7FB4, 0x7FB5, 0x7FB6, 0x7FB7, 0x7FBA, 0x7FBB, 0x7FBE, /* 0x80 */
- 0x7FC0, 0x7FC2, 0x7FC3, 0x7FC4, 0x7FC6, 0x7FC7, 0x7FC8, 0x7FC9, /* 0x80 */
- 0x7FCB, 0x7FCD, 0x7FCF, 0x7FD0, 0x7FD1, 0x7FD2, 0x7FD3, 0x7FD6, /* 0x90 */
- 0x7FD7, 0x7FD9, 0x7FDA, 0x7FDB, 0x7FDC, 0x7FDD, 0x7FDE, 0x7FE2, /* 0x90 */
- 0x7FE3, 0x75E2, 0x7ACB, 0x7C92, 0x6CA5, 0x96B6, 0x529B, 0x7483, /* 0xA0 */
- 0x54E9, 0x4FE9, 0x8054, 0x83B2, 0x8FDE, 0x9570, 0x5EC9, 0x601C, /* 0xA0 */
- 0x6D9F, 0x5E18, 0x655B, 0x8138, 0x94FE, 0x604B, 0x70BC, 0x7EC3, /* 0xB0 */
- 0x7CAE, 0x51C9, 0x6881, 0x7CB1, 0x826F, 0x4E24, 0x8F86, 0x91CF, /* 0xB0 */
- 0x667E, 0x4EAE, 0x8C05, 0x64A9, 0x804A, 0x50DA, 0x7597, 0x71CE, /* 0xC0 */
- 0x5BE5, 0x8FBD, 0x6F66, 0x4E86, 0x6482, 0x9563, 0x5ED6, 0x6599, /* 0xC0 */
- 0x5217, 0x88C2, 0x70C8, 0x52A3, 0x730E, 0x7433, 0x6797, 0x78F7, /* 0xD0 */
- 0x9716, 0x4E34, 0x90BB, 0x9CDE, 0x6DCB, 0x51DB, 0x8D41, 0x541D, /* 0xD0 */
- 0x62CE, 0x73B2, 0x83F1, 0x96F6, 0x9F84, 0x94C3, 0x4F36, 0x7F9A, /* 0xE0 */
- 0x51CC, 0x7075, 0x9675, 0x5CAD, 0x9886, 0x53E6, 0x4EE4, 0x6E9C, /* 0xE0 */
- 0x7409, 0x69B4, 0x786B, 0x998F, 0x7559, 0x5218, 0x7624, 0x6D41, /* 0xF0 */
- 0x67F3, 0x516D, 0x9F99, 0x804B, 0x5499, 0x7B3C, 0x7ABF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_C2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7FE4, 0x7FE7, 0x7FE8, 0x7FEA, 0x7FEB, 0x7FEC, 0x7FED, 0x7FEF, /* 0x40 */
- 0x7FF2, 0x7FF4, 0x7FF5, 0x7FF6, 0x7FF7, 0x7FF8, 0x7FF9, 0x7FFA, /* 0x40 */
- 0x7FFD, 0x7FFE, 0x7FFF, 0x8002, 0x8007, 0x8008, 0x8009, 0x800A, /* 0x50 */
- 0x800E, 0x800F, 0x8011, 0x8013, 0x801A, 0x801B, 0x801D, 0x801E, /* 0x50 */
- 0x801F, 0x8021, 0x8023, 0x8024, 0x802B, 0x802C, 0x802D, 0x802E, /* 0x60 */
- 0x802F, 0x8030, 0x8032, 0x8034, 0x8039, 0x803A, 0x803C, 0x803E, /* 0x60 */
- 0x8040, 0x8041, 0x8044, 0x8045, 0x8047, 0x8048, 0x8049, 0x804E, /* 0x70 */
- 0x804F, 0x8050, 0x8051, 0x8053, 0x8055, 0x8056, 0x8057, 0, /* 0x70 */
- 0x8059, 0x805B, 0x805C, 0x805D, 0x805E, 0x805F, 0x8060, 0x8061, /* 0x80 */
- 0x8062, 0x8063, 0x8064, 0x8065, 0x8066, 0x8067, 0x8068, 0x806B, /* 0x80 */
- 0x806C, 0x806D, 0x806E, 0x806F, 0x8070, 0x8072, 0x8073, 0x8074, /* 0x90 */
- 0x8075, 0x8076, 0x8077, 0x8078, 0x8079, 0x807A, 0x807B, 0x807C, /* 0x90 */
- 0x807D, 0x9686, 0x5784, 0x62E2, 0x9647, 0x697C, 0x5A04, 0x6402, /* 0xA0 */
- 0x7BD3, 0x6F0F, 0x964B, 0x82A6, 0x5362, 0x9885, 0x5E90, 0x7089, /* 0xA0 */
- 0x63B3, 0x5364, 0x864F, 0x9C81, 0x9E93, 0x788C, 0x9732, 0x8DEF, /* 0xB0 */
- 0x8D42, 0x9E7F, 0x6F5E, 0x7984, 0x5F55, 0x9646, 0x622E, 0x9A74, /* 0xB0 */
- 0x5415, 0x94DD, 0x4FA3, 0x65C5, 0x5C65, 0x5C61, 0x7F15, 0x8651, /* 0xC0 */
- 0x6C2F, 0x5F8B, 0x7387, 0x6EE4, 0x7EFF, 0x5CE6, 0x631B, 0x5B6A, /* 0xC0 */
- 0x6EE6, 0x5375, 0x4E71, 0x63A0, 0x7565, 0x62A1, 0x8F6E, 0x4F26, /* 0xD0 */
- 0x4ED1, 0x6CA6, 0x7EB6, 0x8BBA, 0x841D, 0x87BA, 0x7F57, 0x903B, /* 0xD0 */
- 0x9523, 0x7BA9, 0x9AA1, 0x88F8, 0x843D, 0x6D1B, 0x9A86, 0x7EDC, /* 0xE0 */
- 0x5988, 0x9EBB, 0x739B, 0x7801, 0x8682, 0x9A6C, 0x9A82, 0x561B, /* 0xE0 */
- 0x5417, 0x57CB, 0x4E70, 0x9EA6, 0x5356, 0x8FC8, 0x8109, 0x7792, /* 0xF0 */
- 0x9992, 0x86EE, 0x6EE1, 0x8513, 0x66FC, 0x6162, 0x6F2B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_C3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x807E, 0x8081, 0x8082, 0x8085, 0x8088, 0x808A, 0x808D, 0x808E, /* 0x40 */
- 0x808F, 0x8090, 0x8091, 0x8092, 0x8094, 0x8095, 0x8097, 0x8099, /* 0x40 */
- 0x809E, 0x80A3, 0x80A6, 0x80A7, 0x80A8, 0x80AC, 0x80B0, 0x80B3, /* 0x50 */
- 0x80B5, 0x80B6, 0x80B8, 0x80B9, 0x80BB, 0x80C5, 0x80C7, 0x80C8, /* 0x50 */
- 0x80C9, 0x80CA, 0x80CB, 0x80CF, 0x80D0, 0x80D1, 0x80D2, 0x80D3, /* 0x60 */
- 0x80D4, 0x80D5, 0x80D8, 0x80DF, 0x80E0, 0x80E2, 0x80E3, 0x80E6, /* 0x60 */
- 0x80EE, 0x80F5, 0x80F7, 0x80F9, 0x80FB, 0x80FE, 0x80FF, 0x8100, /* 0x70 */
- 0x8101, 0x8103, 0x8104, 0x8105, 0x8107, 0x8108, 0x810B, 0, /* 0x70 */
- 0x810C, 0x8115, 0x8117, 0x8119, 0x811B, 0x811C, 0x811D, 0x811F, /* 0x80 */
- 0x8120, 0x8121, 0x8122, 0x8123, 0x8124, 0x8125, 0x8126, 0x8127, /* 0x80 */
- 0x8128, 0x8129, 0x812A, 0x812B, 0x812D, 0x812E, 0x8130, 0x8133, /* 0x90 */
- 0x8134, 0x8135, 0x8137, 0x8139, 0x813A, 0x813B, 0x813C, 0x813D, /* 0x90 */
- 0x813F, 0x8C29, 0x8292, 0x832B, 0x76F2, 0x6C13, 0x5FD9, 0x83BD, /* 0xA0 */
- 0x732B, 0x8305, 0x951A, 0x6BDB, 0x77DB, 0x94C6, 0x536F, 0x8302, /* 0xA0 */
- 0x5192, 0x5E3D, 0x8C8C, 0x8D38, 0x4E48, 0x73AB, 0x679A, 0x6885, /* 0xB0 */
- 0x9176, 0x9709, 0x7164, 0x6CA1, 0x7709, 0x5A92, 0x9541, 0x6BCF, /* 0xB0 */
- 0x7F8E, 0x6627, 0x5BD0, 0x59B9, 0x5A9A, 0x95E8, 0x95F7, 0x4EEC, /* 0xC0 */
- 0x840C, 0x8499, 0x6AAC, 0x76DF, 0x9530, 0x731B, 0x68A6, 0x5B5F, /* 0xC0 */
- 0x772F, 0x919A, 0x9761, 0x7CDC, 0x8FF7, 0x8C1C, 0x5F25, 0x7C73, /* 0xD0 */
- 0x79D8, 0x89C5, 0x6CCC, 0x871C, 0x5BC6, 0x5E42, 0x68C9, 0x7720, /* 0xD0 */
- 0x7EF5, 0x5195, 0x514D, 0x52C9, 0x5A29, 0x7F05, 0x9762, 0x82D7, /* 0xE0 */
- 0x63CF, 0x7784, 0x85D0, 0x79D2, 0x6E3A, 0x5E99, 0x5999, 0x8511, /* 0xE0 */
- 0x706D, 0x6C11, 0x62BF, 0x76BF, 0x654F, 0x60AF, 0x95FD, 0x660E, /* 0xF0 */
- 0x879F, 0x9E23, 0x94ED, 0x540D, 0x547D, 0x8C2C, 0x6478 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_C4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8140, 0x8141, 0x8142, 0x8143, 0x8144, 0x8145, 0x8147, 0x8149, /* 0x40 */
- 0x814D, 0x814E, 0x814F, 0x8152, 0x8156, 0x8157, 0x8158, 0x815B, /* 0x40 */
- 0x815C, 0x815D, 0x815E, 0x815F, 0x8161, 0x8162, 0x8163, 0x8164, /* 0x50 */
- 0x8166, 0x8168, 0x816A, 0x816B, 0x816C, 0x816F, 0x8172, 0x8173, /* 0x50 */
- 0x8175, 0x8176, 0x8177, 0x8178, 0x8181, 0x8183, 0x8184, 0x8185, /* 0x60 */
- 0x8186, 0x8187, 0x8189, 0x818B, 0x818C, 0x818D, 0x818E, 0x8190, /* 0x60 */
- 0x8192, 0x8193, 0x8194, 0x8195, 0x8196, 0x8197, 0x8199, 0x819A, /* 0x70 */
- 0x819E, 0x819F, 0x81A0, 0x81A1, 0x81A2, 0x81A4, 0x81A5, 0, /* 0x70 */
- 0x81A7, 0x81A9, 0x81AB, 0x81AC, 0x81AD, 0x81AE, 0x81AF, 0x81B0, /* 0x80 */
- 0x81B1, 0x81B2, 0x81B4, 0x81B5, 0x81B6, 0x81B7, 0x81B8, 0x81B9, /* 0x80 */
- 0x81BC, 0x81BD, 0x81BE, 0x81BF, 0x81C4, 0x81C5, 0x81C7, 0x81C8, /* 0x90 */
- 0x81C9, 0x81CB, 0x81CD, 0x81CE, 0x81CF, 0x81D0, 0x81D1, 0x81D2, /* 0x90 */
- 0x81D3, 0x6479, 0x8611, 0x6A21, 0x819C, 0x78E8, 0x6469, 0x9B54, /* 0xA0 */
- 0x62B9, 0x672B, 0x83AB, 0x58A8, 0x9ED8, 0x6CAB, 0x6F20, 0x5BDE, /* 0xA0 */
- 0x964C, 0x8C0B, 0x725F, 0x67D0, 0x62C7, 0x7261, 0x4EA9, 0x59C6, /* 0xB0 */
- 0x6BCD, 0x5893, 0x66AE, 0x5E55, 0x52DF, 0x6155, 0x6728, 0x76EE, /* 0xB0 */
- 0x7766, 0x7267, 0x7A46, 0x62FF, 0x54EA, 0x5450, 0x94A0, 0x90A3, /* 0xC0 */
- 0x5A1C, 0x7EB3, 0x6C16, 0x4E43, 0x5976, 0x8010, 0x5948, 0x5357, /* 0xC0 */
- 0x7537, 0x96BE, 0x56CA, 0x6320, 0x8111, 0x607C, 0x95F9, 0x6DD6, /* 0xD0 */
- 0x5462, 0x9981, 0x5185, 0x5AE9, 0x80FD, 0x59AE, 0x9713, 0x502A, /* 0xD0 */
- 0x6CE5, 0x5C3C, 0x62DF, 0x4F60, 0x533F, 0x817B, 0x9006, 0x6EBA, /* 0xE0 */
- 0x852B, 0x62C8, 0x5E74, 0x78BE, 0x64B5, 0x637B, 0x5FF5, 0x5A18, /* 0xE0 */
- 0x917F, 0x9E1F, 0x5C3F, 0x634F, 0x8042, 0x5B7D, 0x556E, 0x954A, /* 0xF0 */
- 0x954D, 0x6D85, 0x60A8, 0x67E0, 0x72DE, 0x51DD, 0x5B81 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_C5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x81D4, 0x81D5, 0x81D6, 0x81D7, 0x81D8, 0x81D9, 0x81DA, 0x81DB, /* 0x40 */
- 0x81DC, 0x81DD, 0x81DE, 0x81DF, 0x81E0, 0x81E1, 0x81E2, 0x81E4, /* 0x40 */
- 0x81E5, 0x81E6, 0x81E8, 0x81E9, 0x81EB, 0x81EE, 0x81EF, 0x81F0, /* 0x50 */
- 0x81F1, 0x81F2, 0x81F5, 0x81F6, 0x81F7, 0x81F8, 0x81F9, 0x81FA, /* 0x50 */
- 0x81FD, 0x81FF, 0x8203, 0x8207, 0x8208, 0x8209, 0x820A, 0x820B, /* 0x60 */
- 0x820E, 0x820F, 0x8211, 0x8213, 0x8215, 0x8216, 0x8217, 0x8218, /* 0x60 */
- 0x8219, 0x821A, 0x821D, 0x8220, 0x8224, 0x8225, 0x8226, 0x8227, /* 0x70 */
- 0x8229, 0x822E, 0x8232, 0x823A, 0x823C, 0x823D, 0x823F, 0, /* 0x70 */
- 0x8240, 0x8241, 0x8242, 0x8243, 0x8245, 0x8246, 0x8248, 0x824A, /* 0x80 */
- 0x824C, 0x824D, 0x824E, 0x8250, 0x8251, 0x8252, 0x8253, 0x8254, /* 0x80 */
- 0x8255, 0x8256, 0x8257, 0x8259, 0x825B, 0x825C, 0x825D, 0x825E, /* 0x90 */
- 0x8260, 0x8261, 0x8262, 0x8263, 0x8264, 0x8265, 0x8266, 0x8267, /* 0x90 */
- 0x8269, 0x62E7, 0x6CDE, 0x725B, 0x626D, 0x94AE, 0x7EBD, 0x8113, /* 0xA0 */
- 0x6D53, 0x519C, 0x5F04, 0x5974, 0x52AA, 0x6012, 0x5973, 0x6696, /* 0xA0 */
- 0x8650, 0x759F, 0x632A, 0x61E6, 0x7CEF, 0x8BFA, 0x54E6, 0x6B27, /* 0xB0 */
- 0x9E25, 0x6BB4, 0x85D5, 0x5455, 0x5076, 0x6CA4, 0x556A, 0x8DB4, /* 0xB0 */
- 0x722C, 0x5E15, 0x6015, 0x7436, 0x62CD, 0x6392, 0x724C, 0x5F98, /* 0xC0 */
- 0x6E43, 0x6D3E, 0x6500, 0x6F58, 0x76D8, 0x78D0, 0x76FC, 0x7554, /* 0xC0 */
- 0x5224, 0x53DB, 0x4E53, 0x5E9E, 0x65C1, 0x802A, 0x80D6, 0x629B, /* 0xD0 */
- 0x5486, 0x5228, 0x70AE, 0x888D, 0x8DD1, 0x6CE1, 0x5478, 0x80DA, /* 0xD0 */
- 0x57F9, 0x88F4, 0x8D54, 0x966A, 0x914D, 0x4F69, 0x6C9B, 0x55B7, /* 0xE0 */
- 0x76C6, 0x7830, 0x62A8, 0x70F9, 0x6F8E, 0x5F6D, 0x84EC, 0x68DA, /* 0xE0 */
- 0x787C, 0x7BF7, 0x81A8, 0x670B, 0x9E4F, 0x6367, 0x78B0, 0x576F, /* 0xF0 */
- 0x7812, 0x9739, 0x6279, 0x62AB, 0x5288, 0x7435, 0x6BD7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_C6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x826A, 0x826B, 0x826C, 0x826D, 0x8271, 0x8275, 0x8276, 0x8277, /* 0x40 */
- 0x8278, 0x827B, 0x827C, 0x8280, 0x8281, 0x8283, 0x8285, 0x8286, /* 0x40 */
- 0x8287, 0x8289, 0x828C, 0x8290, 0x8293, 0x8294, 0x8295, 0x8296, /* 0x50 */
- 0x829A, 0x829B, 0x829E, 0x82A0, 0x82A2, 0x82A3, 0x82A7, 0x82B2, /* 0x50 */
- 0x82B5, 0x82B6, 0x82BA, 0x82BB, 0x82BC, 0x82BF, 0x82C0, 0x82C2, /* 0x60 */
- 0x82C3, 0x82C5, 0x82C6, 0x82C9, 0x82D0, 0x82D6, 0x82D9, 0x82DA, /* 0x60 */
- 0x82DD, 0x82E2, 0x82E7, 0x82E8, 0x82E9, 0x82EA, 0x82EC, 0x82ED, /* 0x70 */
- 0x82EE, 0x82F0, 0x82F2, 0x82F3, 0x82F5, 0x82F6, 0x82F8, 0, /* 0x70 */
- 0x82FA, 0x82FC, 0x82FD, 0x82FE, 0x82FF, 0x8300, 0x830A, 0x830B, /* 0x80 */
- 0x830D, 0x8310, 0x8312, 0x8313, 0x8316, 0x8318, 0x8319, 0x831D, /* 0x80 */
- 0x831E, 0x831F, 0x8320, 0x8321, 0x8322, 0x8323, 0x8324, 0x8325, /* 0x90 */
- 0x8326, 0x8329, 0x832A, 0x832E, 0x8330, 0x8332, 0x8337, 0x833B, /* 0x90 */
- 0x833D, 0x5564, 0x813E, 0x75B2, 0x76AE, 0x5339, 0x75DE, 0x50FB, /* 0xA0 */
- 0x5C41, 0x8B6C, 0x7BC7, 0x504F, 0x7247, 0x9A97, 0x98D8, 0x6F02, /* 0xA0 */
- 0x74E2, 0x7968, 0x6487, 0x77A5, 0x62FC, 0x9891, 0x8D2B, 0x54C1, /* 0xB0 */
- 0x8058, 0x4E52, 0x576A, 0x82F9, 0x840D, 0x5E73, 0x51ED, 0x74F6, /* 0xB0 */
- 0x8BC4, 0x5C4F, 0x5761, 0x6CFC, 0x9887, 0x5A46, 0x7834, 0x9B44, /* 0xC0 */
- 0x8FEB, 0x7C95, 0x5256, 0x6251, 0x94FA, 0x4EC6, 0x8386, 0x8461, /* 0xC0 */
- 0x83E9, 0x84B2, 0x57D4, 0x6734, 0x5703, 0x666E, 0x6D66, 0x8C31, /* 0xD0 */
- 0x66DD, 0x7011, 0x671F, 0x6B3A, 0x6816, 0x621A, 0x59BB, 0x4E03, /* 0xD0 */
- 0x51C4, 0x6F06, 0x67D2, 0x6C8F, 0x5176, 0x68CB, 0x5947, 0x6B67, /* 0xE0 */
- 0x7566, 0x5D0E, 0x8110, 0x9F50, 0x65D7, 0x7948, 0x7941, 0x9A91, /* 0xE0 */
- 0x8D77, 0x5C82, 0x4E5E, 0x4F01, 0x542F, 0x5951, 0x780C, 0x5668, /* 0xF0 */
- 0x6C14, 0x8FC4, 0x5F03, 0x6C7D, 0x6CE3, 0x8BAB, 0x6390 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_C7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x833E, 0x833F, 0x8341, 0x8342, 0x8344, 0x8345, 0x8348, 0x834A, /* 0x40 */
- 0x834B, 0x834C, 0x834D, 0x834E, 0x8353, 0x8355, 0x8356, 0x8357, /* 0x40 */
- 0x8358, 0x8359, 0x835D, 0x8362, 0x8370, 0x8371, 0x8372, 0x8373, /* 0x50 */
- 0x8374, 0x8375, 0x8376, 0x8379, 0x837A, 0x837E, 0x837F, 0x8380, /* 0x50 */
- 0x8381, 0x8382, 0x8383, 0x8384, 0x8387, 0x8388, 0x838A, 0x838B, /* 0x60 */
- 0x838C, 0x838D, 0x838F, 0x8390, 0x8391, 0x8394, 0x8395, 0x8396, /* 0x60 */
- 0x8397, 0x8399, 0x839A, 0x839D, 0x839F, 0x83A1, 0x83A2, 0x83A3, /* 0x70 */
- 0x83A4, 0x83A5, 0x83A6, 0x83A7, 0x83AC, 0x83AD, 0x83AE, 0, /* 0x70 */
- 0x83AF, 0x83B5, 0x83BB, 0x83BE, 0x83BF, 0x83C2, 0x83C3, 0x83C4, /* 0x80 */
- 0x83C6, 0x83C8, 0x83C9, 0x83CB, 0x83CD, 0x83CE, 0x83D0, 0x83D1, /* 0x80 */
- 0x83D2, 0x83D3, 0x83D5, 0x83D7, 0x83D9, 0x83DA, 0x83DB, 0x83DE, /* 0x90 */
- 0x83E2, 0x83E3, 0x83E4, 0x83E6, 0x83E7, 0x83E8, 0x83EB, 0x83EC, /* 0x90 */
- 0x83ED, 0x6070, 0x6D3D, 0x7275, 0x6266, 0x948E, 0x94C5, 0x5343, /* 0xA0 */
- 0x8FC1, 0x7B7E, 0x4EDF, 0x8C26, 0x4E7E, 0x9ED4, 0x94B1, 0x94B3, /* 0xA0 */
- 0x524D, 0x6F5C, 0x9063, 0x6D45, 0x8C34, 0x5811, 0x5D4C, 0x6B20, /* 0xB0 */
- 0x6B49, 0x67AA, 0x545B, 0x8154, 0x7F8C, 0x5899, 0x8537, 0x5F3A, /* 0xB0 */
- 0x62A2, 0x6A47, 0x9539, 0x6572, 0x6084, 0x6865, 0x77A7, 0x4E54, /* 0xC0 */
- 0x4FA8, 0x5DE7, 0x9798, 0x64AC, 0x7FD8, 0x5CED, 0x4FCF, 0x7A8D, /* 0xC0 */
- 0x5207, 0x8304, 0x4E14, 0x602F, 0x7A83, 0x94A6, 0x4FB5, 0x4EB2, /* 0xD0 */
- 0x79E6, 0x7434, 0x52E4, 0x82B9, 0x64D2, 0x79BD, 0x5BDD, 0x6C81, /* 0xD0 */
- 0x9752, 0x8F7B, 0x6C22, 0x503E, 0x537F, 0x6E05, 0x64CE, 0x6674, /* 0xE0 */
- 0x6C30, 0x60C5, 0x9877, 0x8BF7, 0x5E86, 0x743C, 0x7A77, 0x79CB, /* 0xE0 */
- 0x4E18, 0x90B1, 0x7403, 0x6C42, 0x56DA, 0x914B, 0x6CC5, 0x8D8B, /* 0xF0 */
- 0x533A, 0x86C6, 0x66F2, 0x8EAF, 0x5C48, 0x9A71, 0x6E20 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_C8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x83EE, 0x83EF, 0x83F3, 0x83F4, 0x83F5, 0x83F6, 0x83F7, 0x83FA, /* 0x40 */
- 0x83FB, 0x83FC, 0x83FE, 0x83FF, 0x8400, 0x8402, 0x8405, 0x8407, /* 0x40 */
- 0x8408, 0x8409, 0x840A, 0x8410, 0x8412, 0x8413, 0x8414, 0x8415, /* 0x50 */
- 0x8416, 0x8417, 0x8419, 0x841A, 0x841B, 0x841E, 0x841F, 0x8420, /* 0x50 */
- 0x8421, 0x8422, 0x8423, 0x8429, 0x842A, 0x842B, 0x842C, 0x842D, /* 0x60 */
- 0x842E, 0x842F, 0x8430, 0x8432, 0x8433, 0x8434, 0x8435, 0x8436, /* 0x60 */
- 0x8437, 0x8439, 0x843A, 0x843B, 0x843E, 0x843F, 0x8440, 0x8441, /* 0x70 */
- 0x8442, 0x8443, 0x8444, 0x8445, 0x8447, 0x8448, 0x8449, 0, /* 0x70 */
- 0x844A, 0x844B, 0x844C, 0x844D, 0x844E, 0x844F, 0x8450, 0x8452, /* 0x80 */
- 0x8453, 0x8454, 0x8455, 0x8456, 0x8458, 0x845D, 0x845E, 0x845F, /* 0x80 */
- 0x8460, 0x8462, 0x8464, 0x8465, 0x8466, 0x8467, 0x8468, 0x846A, /* 0x90 */
- 0x846E, 0x846F, 0x8470, 0x8472, 0x8474, 0x8477, 0x8479, 0x847B, /* 0x90 */
- 0x847C, 0x53D6, 0x5A36, 0x9F8B, 0x8DA3, 0x53BB, 0x5708, 0x98A7, /* 0xA0 */
- 0x6743, 0x919B, 0x6CC9, 0x5168, 0x75CA, 0x62F3, 0x72AC, 0x5238, /* 0xA0 */
- 0x529D, 0x7F3A, 0x7094, 0x7638, 0x5374, 0x9E4A, 0x69B7, 0x786E, /* 0xB0 */
- 0x96C0, 0x88D9, 0x7FA4, 0x7136, 0x71C3, 0x5189, 0x67D3, 0x74E4, /* 0xB0 */
- 0x58E4, 0x6518, 0x56B7, 0x8BA9, 0x9976, 0x6270, 0x7ED5, 0x60F9, /* 0xC0 */
- 0x70ED, 0x58EC, 0x4EC1, 0x4EBA, 0x5FCD, 0x97E7, 0x4EFB, 0x8BA4, /* 0xC0 */
- 0x5203, 0x598A, 0x7EAB, 0x6254, 0x4ECD, 0x65E5, 0x620E, 0x8338, /* 0xD0 */
- 0x84C9, 0x8363, 0x878D, 0x7194, 0x6EB6, 0x5BB9, 0x7ED2, 0x5197, /* 0xD0 */
- 0x63C9, 0x67D4, 0x8089, 0x8339, 0x8815, 0x5112, 0x5B7A, 0x5982, /* 0xE0 */
- 0x8FB1, 0x4E73, 0x6C5D, 0x5165, 0x8925, 0x8F6F, 0x962E, 0x854A, /* 0xE0 */
- 0x745E, 0x9510, 0x95F0, 0x6DA6, 0x82E5, 0x5F31, 0x6492, 0x6D12, /* 0xF0 */
- 0x8428, 0x816E, 0x9CC3, 0x585E, 0x8D5B, 0x4E09, 0x53C1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_C9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x847D, 0x847E, 0x847F, 0x8480, 0x8481, 0x8483, 0x8484, 0x8485, /* 0x40 */
- 0x8486, 0x848A, 0x848D, 0x848F, 0x8490, 0x8491, 0x8492, 0x8493, /* 0x40 */
- 0x8494, 0x8495, 0x8496, 0x8498, 0x849A, 0x849B, 0x849D, 0x849E, /* 0x50 */
- 0x849F, 0x84A0, 0x84A2, 0x84A3, 0x84A4, 0x84A5, 0x84A6, 0x84A7, /* 0x50 */
- 0x84A8, 0x84A9, 0x84AA, 0x84AB, 0x84AC, 0x84AD, 0x84AE, 0x84B0, /* 0x60 */
- 0x84B1, 0x84B3, 0x84B5, 0x84B6, 0x84B7, 0x84BB, 0x84BC, 0x84BE, /* 0x60 */
- 0x84C0, 0x84C2, 0x84C3, 0x84C5, 0x84C6, 0x84C7, 0x84C8, 0x84CB, /* 0x70 */
- 0x84CC, 0x84CE, 0x84CF, 0x84D2, 0x84D4, 0x84D5, 0x84D7, 0, /* 0x70 */
- 0x84D8, 0x84D9, 0x84DA, 0x84DB, 0x84DC, 0x84DE, 0x84E1, 0x84E2, /* 0x80 */
- 0x84E4, 0x84E7, 0x84E8, 0x84E9, 0x84EA, 0x84EB, 0x84ED, 0x84EE, /* 0x80 */
- 0x84EF, 0x84F1, 0x84F2, 0x84F3, 0x84F4, 0x84F5, 0x84F6, 0x84F7, /* 0x90 */
- 0x84F8, 0x84F9, 0x84FA, 0x84FB, 0x84FD, 0x84FE, 0x8500, 0x8501, /* 0x90 */
- 0x8502, 0x4F1E, 0x6563, 0x6851, 0x55D3, 0x4E27, 0x6414, 0x9A9A, /* 0xA0 */
- 0x626B, 0x5AC2, 0x745F, 0x8272, 0x6DA9, 0x68EE, 0x50E7, 0x838E, /* 0xA0 */
- 0x7802, 0x6740, 0x5239, 0x6C99, 0x7EB1, 0x50BB, 0x5565, 0x715E, /* 0xB0 */
- 0x7B5B, 0x6652, 0x73CA, 0x82EB, 0x6749, 0x5C71, 0x5220, 0x717D, /* 0xB0 */
- 0x886B, 0x95EA, 0x9655, 0x64C5, 0x8D61, 0x81B3, 0x5584, 0x6C55, /* 0xC0 */
- 0x6247, 0x7F2E, 0x5892, 0x4F24, 0x5546, 0x8D4F, 0x664C, 0x4E0A, /* 0xC0 */
- 0x5C1A, 0x88F3, 0x68A2, 0x634E, 0x7A0D, 0x70E7, 0x828D, 0x52FA, /* 0xD0 */
- 0x97F6, 0x5C11, 0x54E8, 0x90B5, 0x7ECD, 0x5962, 0x8D4A, 0x86C7, /* 0xD0 */
- 0x820C, 0x820D, 0x8D66, 0x6444, 0x5C04, 0x6151, 0x6D89, 0x793E, /* 0xE0 */
- 0x8BBE, 0x7837, 0x7533, 0x547B, 0x4F38, 0x8EAB, 0x6DF1, 0x5A20, /* 0xE0 */
- 0x7EC5, 0x795E, 0x6C88, 0x5BA1, 0x5A76, 0x751A, 0x80BE, 0x614E, /* 0xF0 */
- 0x6E17, 0x58F0, 0x751F, 0x7525, 0x7272, 0x5347, 0x7EF3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_CA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8503, 0x8504, 0x8505, 0x8506, 0x8507, 0x8508, 0x8509, 0x850A, /* 0x40 */
- 0x850B, 0x850D, 0x850E, 0x850F, 0x8510, 0x8512, 0x8514, 0x8515, /* 0x40 */
- 0x8516, 0x8518, 0x8519, 0x851B, 0x851C, 0x851D, 0x851E, 0x8520, /* 0x50 */
- 0x8522, 0x8523, 0x8524, 0x8525, 0x8526, 0x8527, 0x8528, 0x8529, /* 0x50 */
- 0x852A, 0x852D, 0x852E, 0x852F, 0x8530, 0x8531, 0x8532, 0x8533, /* 0x60 */
- 0x8534, 0x8535, 0x8536, 0x853E, 0x853F, 0x8540, 0x8541, 0x8542, /* 0x60 */
- 0x8544, 0x8545, 0x8546, 0x8547, 0x854B, 0x854C, 0x854D, 0x854E, /* 0x70 */
- 0x854F, 0x8550, 0x8551, 0x8552, 0x8553, 0x8554, 0x8555, 0, /* 0x70 */
- 0x8557, 0x8558, 0x855A, 0x855B, 0x855C, 0x855D, 0x855F, 0x8560, /* 0x80 */
- 0x8561, 0x8562, 0x8563, 0x8565, 0x8566, 0x8567, 0x8569, 0x856A, /* 0x80 */
- 0x856B, 0x856C, 0x856D, 0x856E, 0x856F, 0x8570, 0x8571, 0x8573, /* 0x90 */
- 0x8575, 0x8576, 0x8577, 0x8578, 0x857C, 0x857D, 0x857F, 0x8580, /* 0x90 */
- 0x8581, 0x7701, 0x76DB, 0x5269, 0x80DC, 0x5723, 0x5E08, 0x5931, /* 0xA0 */
- 0x72EE, 0x65BD, 0x6E7F, 0x8BD7, 0x5C38, 0x8671, 0x5341, 0x77F3, /* 0xA0 */
- 0x62FE, 0x65F6, 0x4EC0, 0x98DF, 0x8680, 0x5B9E, 0x8BC6, 0x53F2, /* 0xB0 */
- 0x77E2, 0x4F7F, 0x5C4E, 0x9A76, 0x59CB, 0x5F0F, 0x793A, 0x58EB, /* 0xB0 */
- 0x4E16, 0x67FF, 0x4E8B, 0x62ED, 0x8A93, 0x901D, 0x52BF, 0x662F, /* 0xC0 */
- 0x55DC, 0x566C, 0x9002, 0x4ED5, 0x4F8D, 0x91CA, 0x9970, 0x6C0F, /* 0xC0 */
- 0x5E02, 0x6043, 0x5BA4, 0x89C6, 0x8BD5, 0x6536, 0x624B, 0x9996, /* 0xD0 */
- 0x5B88, 0x5BFF, 0x6388, 0x552E, 0x53D7, 0x7626, 0x517D, 0x852C, /* 0xD0 */
- 0x67A2, 0x68B3, 0x6B8A, 0x6292, 0x8F93, 0x53D4, 0x8212, 0x6DD1, /* 0xE0 */
- 0x758F, 0x4E66, 0x8D4E, 0x5B70, 0x719F, 0x85AF, 0x6691, 0x66D9, /* 0xE0 */
- 0x7F72, 0x8700, 0x9ECD, 0x9F20, 0x5C5E, 0x672F, 0x8FF0, 0x6811, /* 0xF0 */
- 0x675F, 0x620D, 0x7AD6, 0x5885, 0x5EB6, 0x6570, 0x6F31 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_CB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8582, 0x8583, 0x8586, 0x8588, 0x8589, 0x858A, 0x858B, 0x858C, /* 0x40 */
- 0x858D, 0x858E, 0x8590, 0x8591, 0x8592, 0x8593, 0x8594, 0x8595, /* 0x40 */
- 0x8596, 0x8597, 0x8598, 0x8599, 0x859A, 0x859D, 0x859E, 0x859F, /* 0x50 */
- 0x85A0, 0x85A1, 0x85A2, 0x85A3, 0x85A5, 0x85A6, 0x85A7, 0x85A9, /* 0x50 */
- 0x85AB, 0x85AC, 0x85AD, 0x85B1, 0x85B2, 0x85B3, 0x85B4, 0x85B5, /* 0x60 */
- 0x85B6, 0x85B8, 0x85BA, 0x85BB, 0x85BC, 0x85BD, 0x85BE, 0x85BF, /* 0x60 */
- 0x85C0, 0x85C2, 0x85C3, 0x85C4, 0x85C5, 0x85C6, 0x85C7, 0x85C8, /* 0x70 */
- 0x85CA, 0x85CB, 0x85CC, 0x85CD, 0x85CE, 0x85D1, 0x85D2, 0, /* 0x70 */
- 0x85D4, 0x85D6, 0x85D7, 0x85D8, 0x85D9, 0x85DA, 0x85DB, 0x85DD, /* 0x80 */
- 0x85DE, 0x85DF, 0x85E0, 0x85E1, 0x85E2, 0x85E3, 0x85E5, 0x85E6, /* 0x80 */
- 0x85E7, 0x85E8, 0x85EA, 0x85EB, 0x85EC, 0x85ED, 0x85EE, 0x85EF, /* 0x90 */
- 0x85F0, 0x85F1, 0x85F2, 0x85F3, 0x85F4, 0x85F5, 0x85F6, 0x85F7, /* 0x90 */
- 0x85F8, 0x6055, 0x5237, 0x800D, 0x6454, 0x8870, 0x7529, 0x5E05, /* 0xA0 */
- 0x6813, 0x62F4, 0x971C, 0x53CC, 0x723D, 0x8C01, 0x6C34, 0x7761, /* 0xA0 */
- 0x7A0E, 0x542E, 0x77AC, 0x987A, 0x821C, 0x8BF4, 0x7855, 0x6714, /* 0xB0 */
- 0x70C1, 0x65AF, 0x6495, 0x5636, 0x601D, 0x79C1, 0x53F8, 0x4E1D, /* 0xB0 */
- 0x6B7B, 0x8086, 0x5BFA, 0x55E3, 0x56DB, 0x4F3A, 0x4F3C, 0x9972, /* 0xC0 */
- 0x5DF3, 0x677E, 0x8038, 0x6002, 0x9882, 0x9001, 0x5B8B, 0x8BBC, /* 0xC0 */
- 0x8BF5, 0x641C, 0x8258, 0x64DE, 0x55FD, 0x82CF, 0x9165, 0x4FD7, /* 0xD0 */
- 0x7D20, 0x901F, 0x7C9F, 0x50F3, 0x5851, 0x6EAF, 0x5BBF, 0x8BC9, /* 0xD0 */
- 0x8083, 0x9178, 0x849C, 0x7B97, 0x867D, 0x968B, 0x968F, 0x7EE5, /* 0xE0 */
- 0x9AD3, 0x788E, 0x5C81, 0x7A57, 0x9042, 0x96A7, 0x795F, 0x5B59, /* 0xE0 */
- 0x635F, 0x7B0B, 0x84D1, 0x68AD, 0x5506, 0x7F29, 0x7410, 0x7D22, /* 0xF0 */
- 0x9501, 0x6240, 0x584C, 0x4ED6, 0x5B83, 0x5979, 0x5854 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_CC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x85F9, 0x85FA, 0x85FC, 0x85FD, 0x85FE, 0x8600, 0x8601, 0x8602, /* 0x40 */
- 0x8603, 0x8604, 0x8606, 0x8607, 0x8608, 0x8609, 0x860A, 0x860B, /* 0x40 */
- 0x860C, 0x860D, 0x860E, 0x860F, 0x8610, 0x8612, 0x8613, 0x8614, /* 0x50 */
- 0x8615, 0x8617, 0x8618, 0x8619, 0x861A, 0x861B, 0x861C, 0x861D, /* 0x50 */
- 0x861E, 0x861F, 0x8620, 0x8621, 0x8622, 0x8623, 0x8624, 0x8625, /* 0x60 */
- 0x8626, 0x8628, 0x862A, 0x862B, 0x862C, 0x862D, 0x862E, 0x862F, /* 0x60 */
- 0x8630, 0x8631, 0x8632, 0x8633, 0x8634, 0x8635, 0x8636, 0x8637, /* 0x70 */
- 0x8639, 0x863A, 0x863B, 0x863D, 0x863E, 0x863F, 0x8640, 0, /* 0x70 */
- 0x8641, 0x8642, 0x8643, 0x8644, 0x8645, 0x8646, 0x8647, 0x8648, /* 0x80 */
- 0x8649, 0x864A, 0x864B, 0x864C, 0x8652, 0x8653, 0x8655, 0x8656, /* 0x80 */
- 0x8657, 0x8658, 0x8659, 0x865B, 0x865C, 0x865D, 0x865F, 0x8660, /* 0x90 */
- 0x8661, 0x8663, 0x8664, 0x8665, 0x8666, 0x8667, 0x8668, 0x8669, /* 0x90 */
- 0x866A, 0x736D, 0x631E, 0x8E4B, 0x8E0F, 0x80CE, 0x82D4, 0x62AC, /* 0xA0 */
- 0x53F0, 0x6CF0, 0x915E, 0x592A, 0x6001, 0x6C70, 0x574D, 0x644A, /* 0xA0 */
- 0x8D2A, 0x762B, 0x6EE9, 0x575B, 0x6A80, 0x75F0, 0x6F6D, 0x8C2D, /* 0xB0 */
- 0x8C08, 0x5766, 0x6BEF, 0x8892, 0x78B3, 0x63A2, 0x53F9, 0x70AD, /* 0xB0 */
- 0x6C64, 0x5858, 0x642A, 0x5802, 0x68E0, 0x819B, 0x5510, 0x7CD6, /* 0xC0 */
- 0x5018, 0x8EBA, 0x6DCC, 0x8D9F, 0x70EB, 0x638F, 0x6D9B, 0x6ED4, /* 0xC0 */
- 0x7EE6, 0x8404, 0x6843, 0x9003, 0x6DD8, 0x9676, 0x8BA8, 0x5957, /* 0xD0 */
- 0x7279, 0x85E4, 0x817E, 0x75BC, 0x8A8A, 0x68AF, 0x5254, 0x8E22, /* 0xD0 */
- 0x9511, 0x63D0, 0x9898, 0x8E44, 0x557C, 0x4F53, 0x66FF, 0x568F, /* 0xE0 */
- 0x60D5, 0x6D95, 0x5243, 0x5C49, 0x5929, 0x6DFB, 0x586B, 0x7530, /* 0xE0 */
- 0x751C, 0x606C, 0x8214, 0x8146, 0x6311, 0x6761, 0x8FE2, 0x773A, /* 0xF0 */
- 0x8DF3, 0x8D34, 0x94C1, 0x5E16, 0x5385, 0x542C, 0x70C3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_CD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x866D, 0x866F, 0x8670, 0x8672, 0x8673, 0x8674, 0x8675, 0x8676, /* 0x40 */
- 0x8677, 0x8678, 0x8683, 0x8684, 0x8685, 0x8686, 0x8687, 0x8688, /* 0x40 */
- 0x8689, 0x868E, 0x868F, 0x8690, 0x8691, 0x8692, 0x8694, 0x8696, /* 0x50 */
- 0x8697, 0x8698, 0x8699, 0x869A, 0x869B, 0x869E, 0x869F, 0x86A0, /* 0x50 */
- 0x86A1, 0x86A2, 0x86A5, 0x86A6, 0x86AB, 0x86AD, 0x86AE, 0x86B2, /* 0x60 */
- 0x86B3, 0x86B7, 0x86B8, 0x86B9, 0x86BB, 0x86BC, 0x86BD, 0x86BE, /* 0x60 */
- 0x86BF, 0x86C1, 0x86C2, 0x86C3, 0x86C5, 0x86C8, 0x86CC, 0x86CD, /* 0x70 */
- 0x86D2, 0x86D3, 0x86D5, 0x86D6, 0x86D7, 0x86DA, 0x86DC, 0, /* 0x70 */
- 0x86DD, 0x86E0, 0x86E1, 0x86E2, 0x86E3, 0x86E5, 0x86E6, 0x86E7, /* 0x80 */
- 0x86E8, 0x86EA, 0x86EB, 0x86EC, 0x86EF, 0x86F5, 0x86F6, 0x86F7, /* 0x80 */
- 0x86FA, 0x86FB, 0x86FC, 0x86FD, 0x86FF, 0x8701, 0x8704, 0x8705, /* 0x90 */
- 0x8706, 0x870B, 0x870C, 0x870E, 0x870F, 0x8710, 0x8711, 0x8714, /* 0x90 */
- 0x8716, 0x6C40, 0x5EF7, 0x505C, 0x4EAD, 0x5EAD, 0x633A, 0x8247, /* 0xA0 */
- 0x901A, 0x6850, 0x916E, 0x77B3, 0x540C, 0x94DC, 0x5F64, 0x7AE5, /* 0xA0 */
- 0x6876, 0x6345, 0x7B52, 0x7EDF, 0x75DB, 0x5077, 0x6295, 0x5934, /* 0xB0 */
- 0x900F, 0x51F8, 0x79C3, 0x7A81, 0x56FE, 0x5F92, 0x9014, 0x6D82, /* 0xB0 */
- 0x5C60, 0x571F, 0x5410, 0x5154, 0x6E4D, 0x56E2, 0x63A8, 0x9893, /* 0xC0 */
- 0x817F, 0x8715, 0x892A, 0x9000, 0x541E, 0x5C6F, 0x81C0, 0x62D6, /* 0xC0 */
- 0x6258, 0x8131, 0x9E35, 0x9640, 0x9A6E, 0x9A7C, 0x692D, 0x59A5, /* 0xD0 */
- 0x62D3, 0x553E, 0x6316, 0x54C7, 0x86D9, 0x6D3C, 0x5A03, 0x74E6, /* 0xD0 */
- 0x889C, 0x6B6A, 0x5916, 0x8C4C, 0x5F2F, 0x6E7E, 0x73A9, 0x987D, /* 0xE0 */
- 0x4E38, 0x70F7, 0x5B8C, 0x7897, 0x633D, 0x665A, 0x7696, 0x60CB, /* 0xE0 */
- 0x5B9B, 0x5A49, 0x4E07, 0x8155, 0x6C6A, 0x738B, 0x4EA1, 0x6789, /* 0xF0 */
- 0x7F51, 0x5F80, 0x65FA, 0x671B, 0x5FD8, 0x5984, 0x5A01 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_CE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8719, 0x871B, 0x871D, 0x871F, 0x8720, 0x8724, 0x8726, 0x8727, /* 0x40 */
- 0x8728, 0x872A, 0x872B, 0x872C, 0x872D, 0x872F, 0x8730, 0x8732, /* 0x40 */
- 0x8733, 0x8735, 0x8736, 0x8738, 0x8739, 0x873A, 0x873C, 0x873D, /* 0x50 */
- 0x8740, 0x8741, 0x8742, 0x8743, 0x8744, 0x8745, 0x8746, 0x874A, /* 0x50 */
- 0x874B, 0x874D, 0x874F, 0x8750, 0x8751, 0x8752, 0x8754, 0x8755, /* 0x60 */
- 0x8756, 0x8758, 0x875A, 0x875B, 0x875C, 0x875D, 0x875E, 0x875F, /* 0x60 */
- 0x8761, 0x8762, 0x8766, 0x8767, 0x8768, 0x8769, 0x876A, 0x876B, /* 0x70 */
- 0x876C, 0x876D, 0x876F, 0x8771, 0x8772, 0x8773, 0x8775, 0, /* 0x70 */
- 0x8777, 0x8778, 0x8779, 0x877A, 0x877F, 0x8780, 0x8781, 0x8784, /* 0x80 */
- 0x8786, 0x8787, 0x8789, 0x878A, 0x878C, 0x878E, 0x878F, 0x8790, /* 0x80 */
- 0x8791, 0x8792, 0x8794, 0x8795, 0x8796, 0x8798, 0x8799, 0x879A, /* 0x90 */
- 0x879B, 0x879C, 0x879D, 0x879E, 0x87A0, 0x87A1, 0x87A2, 0x87A3, /* 0x90 */
- 0x87A4, 0x5DCD, 0x5FAE, 0x5371, 0x97E6, 0x8FDD, 0x6845, 0x56F4, /* 0xA0 */
- 0x552F, 0x60DF, 0x4E3A, 0x6F4D, 0x7EF4, 0x82C7, 0x840E, 0x59D4, /* 0xA0 */
- 0x4F1F, 0x4F2A, 0x5C3E, 0x7EAC, 0x672A, 0x851A, 0x5473, 0x754F, /* 0xB0 */
- 0x80C3, 0x5582, 0x9B4F, 0x4F4D, 0x6E2D, 0x8C13, 0x5C09, 0x6170, /* 0xB0 */
- 0x536B, 0x761F, 0x6E29, 0x868A, 0x6587, 0x95FB, 0x7EB9, 0x543B, /* 0xC0 */
- 0x7A33, 0x7D0A, 0x95EE, 0x55E1, 0x7FC1, 0x74EE, 0x631D, 0x8717, /* 0xC0 */
- 0x6DA1, 0x7A9D, 0x6211, 0x65A1, 0x5367, 0x63E1, 0x6C83, 0x5DEB, /* 0xD0 */
- 0x545C, 0x94A8, 0x4E4C, 0x6C61, 0x8BEC, 0x5C4B, 0x65E0, 0x829C, /* 0xD0 */
- 0x68A7, 0x543E, 0x5434, 0x6BCB, 0x6B66, 0x4E94, 0x6342, 0x5348, /* 0xE0 */
- 0x821E, 0x4F0D, 0x4FAE, 0x575E, 0x620A, 0x96FE, 0x6664, 0x7269, /* 0xE0 */
- 0x52FF, 0x52A1, 0x609F, 0x8BEF, 0x6614, 0x7199, 0x6790, 0x897F, /* 0xF0 */
- 0x7852, 0x77FD, 0x6670, 0x563B, 0x5438, 0x9521, 0x727A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_CF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x87A5, 0x87A6, 0x87A7, 0x87A9, 0x87AA, 0x87AE, 0x87B0, 0x87B1, /* 0x40 */
- 0x87B2, 0x87B4, 0x87B6, 0x87B7, 0x87B8, 0x87B9, 0x87BB, 0x87BC, /* 0x40 */
- 0x87BE, 0x87BF, 0x87C1, 0x87C2, 0x87C3, 0x87C4, 0x87C5, 0x87C7, /* 0x50 */
- 0x87C8, 0x87C9, 0x87CC, 0x87CD, 0x87CE, 0x87CF, 0x87D0, 0x87D4, /* 0x50 */
- 0x87D5, 0x87D6, 0x87D7, 0x87D8, 0x87D9, 0x87DA, 0x87DC, 0x87DD, /* 0x60 */
- 0x87DE, 0x87DF, 0x87E1, 0x87E2, 0x87E3, 0x87E4, 0x87E6, 0x87E7, /* 0x60 */
- 0x87E8, 0x87E9, 0x87EB, 0x87EC, 0x87ED, 0x87EF, 0x87F0, 0x87F1, /* 0x70 */
- 0x87F2, 0x87F3, 0x87F4, 0x87F5, 0x87F6, 0x87F7, 0x87F8, 0, /* 0x70 */
- 0x87FA, 0x87FB, 0x87FC, 0x87FD, 0x87FF, 0x8800, 0x8801, 0x8802, /* 0x80 */
- 0x8804, 0x8805, 0x8806, 0x8807, 0x8808, 0x8809, 0x880B, 0x880C, /* 0x80 */
- 0x880D, 0x880E, 0x880F, 0x8810, 0x8811, 0x8812, 0x8814, 0x8817, /* 0x90 */
- 0x8818, 0x8819, 0x881A, 0x881C, 0x881D, 0x881E, 0x881F, 0x8820, /* 0x90 */
- 0x8823, 0x7A00, 0x606F, 0x5E0C, 0x6089, 0x819D, 0x5915, 0x60DC, /* 0xA0 */
- 0x7184, 0x70EF, 0x6EAA, 0x6C50, 0x7280, 0x6A84, 0x88AD, 0x5E2D, /* 0xA0 */
- 0x4E60, 0x5AB3, 0x559C, 0x94E3, 0x6D17, 0x7CFB, 0x9699, 0x620F, /* 0xB0 */
- 0x7EC6, 0x778E, 0x867E, 0x5323, 0x971E, 0x8F96, 0x6687, 0x5CE1, /* 0xB0 */
- 0x4FA0, 0x72ED, 0x4E0B, 0x53A6, 0x590F, 0x5413, 0x6380, 0x9528, /* 0xC0 */
- 0x5148, 0x4ED9, 0x9C9C, 0x7EA4, 0x54B8, 0x8D24, 0x8854, 0x8237, /* 0xC0 */
- 0x95F2, 0x6D8E, 0x5F26, 0x5ACC, 0x663E, 0x9669, 0x73B0, 0x732E, /* 0xD0 */
- 0x53BF, 0x817A, 0x9985, 0x7FA1, 0x5BAA, 0x9677, 0x9650, 0x7EBF, /* 0xD0 */
- 0x76F8, 0x53A2, 0x9576, 0x9999, 0x7BB1, 0x8944, 0x6E58, 0x4E61, /* 0xE0 */
- 0x7FD4, 0x7965, 0x8BE6, 0x60F3, 0x54CD, 0x4EAB, 0x9879, 0x5DF7, /* 0xE0 */
- 0x6A61, 0x50CF, 0x5411, 0x8C61, 0x8427, 0x785D, 0x9704, 0x524A, /* 0xF0 */
- 0x54EE, 0x56A3, 0x9500, 0x6D88, 0x5BB5, 0x6DC6, 0x6653 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_D0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8824, 0x8825, 0x8826, 0x8827, 0x8828, 0x8829, 0x882A, 0x882B, /* 0x40 */
- 0x882C, 0x882D, 0x882E, 0x882F, 0x8830, 0x8831, 0x8833, 0x8834, /* 0x40 */
- 0x8835, 0x8836, 0x8837, 0x8838, 0x883A, 0x883B, 0x883D, 0x883E, /* 0x50 */
- 0x883F, 0x8841, 0x8842, 0x8843, 0x8846, 0x8847, 0x8848, 0x8849, /* 0x50 */
- 0x884A, 0x884B, 0x884E, 0x884F, 0x8850, 0x8851, 0x8852, 0x8853, /* 0x60 */
- 0x8855, 0x8856, 0x8858, 0x885A, 0x885B, 0x885C, 0x885D, 0x885E, /* 0x60 */
- 0x885F, 0x8860, 0x8866, 0x8867, 0x886A, 0x886D, 0x886F, 0x8871, /* 0x70 */
- 0x8873, 0x8874, 0x8875, 0x8876, 0x8878, 0x8879, 0x887A, 0, /* 0x70 */
- 0x887B, 0x887C, 0x8880, 0x8883, 0x8886, 0x8887, 0x8889, 0x888A, /* 0x80 */
- 0x888C, 0x888E, 0x888F, 0x8890, 0x8891, 0x8893, 0x8894, 0x8895, /* 0x80 */
- 0x8897, 0x8898, 0x8899, 0x889A, 0x889B, 0x889D, 0x889E, 0x889F, /* 0x90 */
- 0x88A0, 0x88A1, 0x88A3, 0x88A5, 0x88A6, 0x88A7, 0x88A8, 0x88A9, /* 0x90 */
- 0x88AA, 0x5C0F, 0x5B5D, 0x6821, 0x8096, 0x5578, 0x7B11, 0x6548, /* 0xA0 */
- 0x6954, 0x4E9B, 0x6B47, 0x874E, 0x978B, 0x534F, 0x631F, 0x643A, /* 0xA0 */
- 0x90AA, 0x659C, 0x80C1, 0x8C10, 0x5199, 0x68B0, 0x5378, 0x87F9, /* 0xB0 */
- 0x61C8, 0x6CC4, 0x6CFB, 0x8C22, 0x5C51, 0x85AA, 0x82AF, 0x950C, /* 0xB0 */
- 0x6B23, 0x8F9B, 0x65B0, 0x5FFB, 0x5FC3, 0x4FE1, 0x8845, 0x661F, /* 0xC0 */
- 0x8165, 0x7329, 0x60FA, 0x5174, 0x5211, 0x578B, 0x5F62, 0x90A2, /* 0xC0 */
- 0x884C, 0x9192, 0x5E78, 0x674F, 0x6027, 0x59D3, 0x5144, 0x51F6, /* 0xD0 */
- 0x80F8, 0x5308, 0x6C79, 0x96C4, 0x718A, 0x4F11, 0x4FEE, 0x7F9E, /* 0xD0 */
- 0x673D, 0x55C5, 0x9508, 0x79C0, 0x8896, 0x7EE3, 0x589F, 0x620C, /* 0xE0 */
- 0x9700, 0x865A, 0x5618, 0x987B, 0x5F90, 0x8BB8, 0x84C4, 0x9157, /* 0xE0 */
- 0x53D9, 0x65ED, 0x5E8F, 0x755C, 0x6064, 0x7D6E, 0x5A7F, 0x7EEA, /* 0xF0 */
- 0x7EED, 0x8F69, 0x55A7, 0x5BA3, 0x60AC, 0x65CB, 0x7384 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_D1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x88AC, 0x88AE, 0x88AF, 0x88B0, 0x88B2, 0x88B3, 0x88B4, 0x88B5, /* 0x40 */
- 0x88B6, 0x88B8, 0x88B9, 0x88BA, 0x88BB, 0x88BD, 0x88BE, 0x88BF, /* 0x40 */
- 0x88C0, 0x88C3, 0x88C4, 0x88C7, 0x88C8, 0x88CA, 0x88CB, 0x88CC, /* 0x50 */
- 0x88CD, 0x88CF, 0x88D0, 0x88D1, 0x88D3, 0x88D6, 0x88D7, 0x88DA, /* 0x50 */
- 0x88DB, 0x88DC, 0x88DD, 0x88DE, 0x88E0, 0x88E1, 0x88E6, 0x88E7, /* 0x60 */
- 0x88E9, 0x88EA, 0x88EB, 0x88EC, 0x88ED, 0x88EE, 0x88EF, 0x88F2, /* 0x60 */
- 0x88F5, 0x88F6, 0x88F7, 0x88FA, 0x88FB, 0x88FD, 0x88FF, 0x8900, /* 0x70 */
- 0x8901, 0x8903, 0x8904, 0x8905, 0x8906, 0x8907, 0x8908, 0, /* 0x70 */
- 0x8909, 0x890B, 0x890C, 0x890D, 0x890E, 0x890F, 0x8911, 0x8914, /* 0x80 */
- 0x8915, 0x8916, 0x8917, 0x8918, 0x891C, 0x891D, 0x891E, 0x891F, /* 0x80 */
- 0x8920, 0x8922, 0x8923, 0x8924, 0x8926, 0x8927, 0x8928, 0x8929, /* 0x90 */
- 0x892C, 0x892D, 0x892E, 0x892F, 0x8931, 0x8932, 0x8933, 0x8935, /* 0x90 */
- 0x8937, 0x9009, 0x7663, 0x7729, 0x7EDA, 0x9774, 0x859B, 0x5B66, /* 0xA0 */
- 0x7A74, 0x96EA, 0x8840, 0x52CB, 0x718F, 0x5FAA, 0x65EC, 0x8BE2, /* 0xA0 */
- 0x5BFB, 0x9A6F, 0x5DE1, 0x6B89, 0x6C5B, 0x8BAD, 0x8BAF, 0x900A, /* 0xB0 */
- 0x8FC5, 0x538B, 0x62BC, 0x9E26, 0x9E2D, 0x5440, 0x4E2B, 0x82BD, /* 0xB0 */
- 0x7259, 0x869C, 0x5D16, 0x8859, 0x6DAF, 0x96C5, 0x54D1, 0x4E9A, /* 0xC0 */
- 0x8BB6, 0x7109, 0x54BD, 0x9609, 0x70DF, 0x6DF9, 0x76D0, 0x4E25, /* 0xC0 */
- 0x7814, 0x8712, 0x5CA9, 0x5EF6, 0x8A00, 0x989C, 0x960E, 0x708E, /* 0xD0 */
- 0x6CBF, 0x5944, 0x63A9, 0x773C, 0x884D, 0x6F14, 0x8273, 0x5830, /* 0xD0 */
- 0x71D5, 0x538C, 0x781A, 0x96C1, 0x5501, 0x5F66, 0x7130, 0x5BB4, /* 0xE0 */
- 0x8C1A, 0x9A8C, 0x6B83, 0x592E, 0x9E2F, 0x79E7, 0x6768, 0x626C, /* 0xE0 */
- 0x4F6F, 0x75A1, 0x7F8A, 0x6D0B, 0x9633, 0x6C27, 0x4EF0, 0x75D2, /* 0xF0 */
- 0x517B, 0x6837, 0x6F3E, 0x9080, 0x8170, 0x5996, 0x7476 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_D2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8938, 0x8939, 0x893A, 0x893B, 0x893C, 0x893D, 0x893E, 0x893F, /* 0x40 */
- 0x8940, 0x8942, 0x8943, 0x8945, 0x8946, 0x8947, 0x8948, 0x8949, /* 0x40 */
- 0x894A, 0x894B, 0x894C, 0x894D, 0x894E, 0x894F, 0x8950, 0x8951, /* 0x50 */
- 0x8952, 0x8953, 0x8954, 0x8955, 0x8956, 0x8957, 0x8958, 0x8959, /* 0x50 */
- 0x895A, 0x895B, 0x895C, 0x895D, 0x8960, 0x8961, 0x8962, 0x8963, /* 0x60 */
- 0x8964, 0x8965, 0x8967, 0x8968, 0x8969, 0x896A, 0x896B, 0x896C, /* 0x60 */
- 0x896D, 0x896E, 0x896F, 0x8970, 0x8971, 0x8972, 0x8973, 0x8974, /* 0x70 */
- 0x8975, 0x8976, 0x8977, 0x8978, 0x8979, 0x897A, 0x897C, 0, /* 0x70 */
- 0x897D, 0x897E, 0x8980, 0x8982, 0x8984, 0x8985, 0x8987, 0x8988, /* 0x80 */
- 0x8989, 0x898A, 0x898B, 0x898C, 0x898D, 0x898E, 0x898F, 0x8990, /* 0x80 */
- 0x8991, 0x8992, 0x8993, 0x8994, 0x8995, 0x8996, 0x8997, 0x8998, /* 0x90 */
- 0x8999, 0x899A, 0x899B, 0x899C, 0x899D, 0x899E, 0x899F, 0x89A0, /* 0x90 */
- 0x89A1, 0x6447, 0x5C27, 0x9065, 0x7A91, 0x8C23, 0x59DA, 0x54AC, /* 0xA0 */
- 0x8200, 0x836F, 0x8981, 0x8000, 0x6930, 0x564E, 0x8036, 0x7237, /* 0xA0 */
- 0x91CE, 0x51B6, 0x4E5F, 0x9875, 0x6396, 0x4E1A, 0x53F6, 0x66F3, /* 0xB0 */
- 0x814B, 0x591C, 0x6DB2, 0x4E00, 0x58F9, 0x533B, 0x63D6, 0x94F1, /* 0xB0 */
- 0x4F9D, 0x4F0A, 0x8863, 0x9890, 0x5937, 0x9057, 0x79FB, 0x4EEA, /* 0xC0 */
- 0x80F0, 0x7591, 0x6C82, 0x5B9C, 0x59E8, 0x5F5D, 0x6905, 0x8681, /* 0xC0 */
- 0x501A, 0x5DF2, 0x4E59, 0x77E3, 0x4EE5, 0x827A, 0x6291, 0x6613, /* 0xD0 */
- 0x9091, 0x5C79, 0x4EBF, 0x5F79, 0x81C6, 0x9038, 0x8084, 0x75AB, /* 0xD0 */
- 0x4EA6, 0x88D4, 0x610F, 0x6BC5, 0x5FC6, 0x4E49, 0x76CA, 0x6EA2, /* 0xE0 */
- 0x8BE3, 0x8BAE, 0x8C0A, 0x8BD1, 0x5F02, 0x7FFC, 0x7FCC, 0x7ECE, /* 0xE0 */
- 0x8335, 0x836B, 0x56E0, 0x6BB7, 0x97F3, 0x9634, 0x59FB, 0x541F, /* 0xF0 */
- 0x94F6, 0x6DEB, 0x5BC5, 0x996E, 0x5C39, 0x5F15, 0x9690 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_D3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x89A2, 0x89A3, 0x89A4, 0x89A5, 0x89A6, 0x89A7, 0x89A8, 0x89A9, /* 0x40 */
- 0x89AA, 0x89AB, 0x89AC, 0x89AD, 0x89AE, 0x89AF, 0x89B0, 0x89B1, /* 0x40 */
- 0x89B2, 0x89B3, 0x89B4, 0x89B5, 0x89B6, 0x89B7, 0x89B8, 0x89B9, /* 0x50 */
- 0x89BA, 0x89BB, 0x89BC, 0x89BD, 0x89BE, 0x89BF, 0x89C0, 0x89C3, /* 0x50 */
- 0x89CD, 0x89D3, 0x89D4, 0x89D5, 0x89D7, 0x89D8, 0x89D9, 0x89DB, /* 0x60 */
- 0x89DD, 0x89DF, 0x89E0, 0x89E1, 0x89E2, 0x89E4, 0x89E7, 0x89E8, /* 0x60 */
- 0x89E9, 0x89EA, 0x89EC, 0x89ED, 0x89EE, 0x89F0, 0x89F1, 0x89F2, /* 0x70 */
- 0x89F4, 0x89F5, 0x89F6, 0x89F7, 0x89F8, 0x89F9, 0x89FA, 0, /* 0x70 */
- 0x89FB, 0x89FC, 0x89FD, 0x89FE, 0x89FF, 0x8A01, 0x8A02, 0x8A03, /* 0x80 */
- 0x8A04, 0x8A05, 0x8A06, 0x8A08, 0x8A09, 0x8A0A, 0x8A0B, 0x8A0C, /* 0x80 */
- 0x8A0D, 0x8A0E, 0x8A0F, 0x8A10, 0x8A11, 0x8A12, 0x8A13, 0x8A14, /* 0x90 */
- 0x8A15, 0x8A16, 0x8A17, 0x8A18, 0x8A19, 0x8A1A, 0x8A1B, 0x8A1C, /* 0x90 */
- 0x8A1D, 0x5370, 0x82F1, 0x6A31, 0x5A74, 0x9E70, 0x5E94, 0x7F28, /* 0xA0 */
- 0x83B9, 0x8424, 0x8425, 0x8367, 0x8747, 0x8FCE, 0x8D62, 0x76C8, /* 0xA0 */
- 0x5F71, 0x9896, 0x786C, 0x6620, 0x54DF, 0x62E5, 0x4F63, 0x81C3, /* 0xB0 */
- 0x75C8, 0x5EB8, 0x96CD, 0x8E0A, 0x86F9, 0x548F, 0x6CF3, 0x6D8C, /* 0xB0 */
- 0x6C38, 0x607F, 0x52C7, 0x7528, 0x5E7D, 0x4F18, 0x60A0, 0x5FE7, /* 0xC0 */
- 0x5C24, 0x7531, 0x90AE, 0x94C0, 0x72B9, 0x6CB9, 0x6E38, 0x9149, /* 0xC0 */
- 0x6709, 0x53CB, 0x53F3, 0x4F51, 0x91C9, 0x8BF1, 0x53C8, 0x5E7C, /* 0xD0 */
- 0x8FC2, 0x6DE4, 0x4E8E, 0x76C2, 0x6986, 0x865E, 0x611A, 0x8206, /* 0xD0 */
- 0x4F59, 0x4FDE, 0x903E, 0x9C7C, 0x6109, 0x6E1D, 0x6E14, 0x9685, /* 0xE0 */
- 0x4E88, 0x5A31, 0x96E8, 0x4E0E, 0x5C7F, 0x79B9, 0x5B87, 0x8BED, /* 0xE0 */
- 0x7FBD, 0x7389, 0x57DF, 0x828B, 0x90C1, 0x5401, 0x9047, 0x55BB, /* 0xF0 */
- 0x5CEA, 0x5FA1, 0x6108, 0x6B32, 0x72F1, 0x80B2, 0x8A89 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_D4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8A1E, 0x8A1F, 0x8A20, 0x8A21, 0x8A22, 0x8A23, 0x8A24, 0x8A25, /* 0x40 */
- 0x8A26, 0x8A27, 0x8A28, 0x8A29, 0x8A2A, 0x8A2B, 0x8A2C, 0x8A2D, /* 0x40 */
- 0x8A2E, 0x8A2F, 0x8A30, 0x8A31, 0x8A32, 0x8A33, 0x8A34, 0x8A35, /* 0x50 */
- 0x8A36, 0x8A37, 0x8A38, 0x8A39, 0x8A3A, 0x8A3B, 0x8A3C, 0x8A3D, /* 0x50 */
- 0x8A3F, 0x8A40, 0x8A41, 0x8A42, 0x8A43, 0x8A44, 0x8A45, 0x8A46, /* 0x60 */
- 0x8A47, 0x8A49, 0x8A4A, 0x8A4B, 0x8A4C, 0x8A4D, 0x8A4E, 0x8A4F, /* 0x60 */
- 0x8A50, 0x8A51, 0x8A52, 0x8A53, 0x8A54, 0x8A55, 0x8A56, 0x8A57, /* 0x70 */
- 0x8A58, 0x8A59, 0x8A5A, 0x8A5B, 0x8A5C, 0x8A5D, 0x8A5E, 0, /* 0x70 */
- 0x8A5F, 0x8A60, 0x8A61, 0x8A62, 0x8A63, 0x8A64, 0x8A65, 0x8A66, /* 0x80 */
- 0x8A67, 0x8A68, 0x8A69, 0x8A6A, 0x8A6B, 0x8A6C, 0x8A6D, 0x8A6E, /* 0x80 */
- 0x8A6F, 0x8A70, 0x8A71, 0x8A72, 0x8A73, 0x8A74, 0x8A75, 0x8A76, /* 0x90 */
- 0x8A77, 0x8A78, 0x8A7A, 0x8A7B, 0x8A7C, 0x8A7D, 0x8A7E, 0x8A7F, /* 0x90 */
- 0x8A80, 0x6D74, 0x5BD3, 0x88D5, 0x9884, 0x8C6B, 0x9A6D, 0x9E33, /* 0xA0 */
- 0x6E0A, 0x51A4, 0x5143, 0x57A3, 0x8881, 0x539F, 0x63F4, 0x8F95, /* 0xA0 */
- 0x56ED, 0x5458, 0x5706, 0x733F, 0x6E90, 0x7F18, 0x8FDC, 0x82D1, /* 0xB0 */
- 0x613F, 0x6028, 0x9662, 0x66F0, 0x7EA6, 0x8D8A, 0x8DC3, 0x94A5, /* 0xB0 */
- 0x5CB3, 0x7CA4, 0x6708, 0x60A6, 0x9605, 0x8018, 0x4E91, 0x90E7, /* 0xC0 */
- 0x5300, 0x9668, 0x5141, 0x8FD0, 0x8574, 0x915D, 0x6655, 0x97F5, /* 0xC0 */
- 0x5B55, 0x531D, 0x7838, 0x6742, 0x683D, 0x54C9, 0x707E, 0x5BB0, /* 0xD0 */
- 0x8F7D, 0x518D, 0x5728, 0x54B1, 0x6512, 0x6682, 0x8D5E, 0x8D43, /* 0xD0 */
- 0x810F, 0x846C, 0x906D, 0x7CDF, 0x51FF, 0x85FB, 0x67A3, 0x65E9, /* 0xE0 */
- 0x6FA1, 0x86A4, 0x8E81, 0x566A, 0x9020, 0x7682, 0x7076, 0x71E5, /* 0xE0 */
- 0x8D23, 0x62E9, 0x5219, 0x6CFD, 0x8D3C, 0x600E, 0x589E, 0x618E, /* 0xF0 */
- 0x66FE, 0x8D60, 0x624E, 0x55B3, 0x6E23, 0x672D, 0x8F67 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_D5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8A81, 0x8A82, 0x8A83, 0x8A84, 0x8A85, 0x8A86, 0x8A87, 0x8A88, /* 0x40 */
- 0x8A8B, 0x8A8C, 0x8A8D, 0x8A8E, 0x8A8F, 0x8A90, 0x8A91, 0x8A92, /* 0x40 */
- 0x8A94, 0x8A95, 0x8A96, 0x8A97, 0x8A98, 0x8A99, 0x8A9A, 0x8A9B, /* 0x50 */
- 0x8A9C, 0x8A9D, 0x8A9E, 0x8A9F, 0x8AA0, 0x8AA1, 0x8AA2, 0x8AA3, /* 0x50 */
- 0x8AA4, 0x8AA5, 0x8AA6, 0x8AA7, 0x8AA8, 0x8AA9, 0x8AAA, 0x8AAB, /* 0x60 */
- 0x8AAC, 0x8AAD, 0x8AAE, 0x8AAF, 0x8AB0, 0x8AB1, 0x8AB2, 0x8AB3, /* 0x60 */
- 0x8AB4, 0x8AB5, 0x8AB6, 0x8AB7, 0x8AB8, 0x8AB9, 0x8ABA, 0x8ABB, /* 0x70 */
- 0x8ABC, 0x8ABD, 0x8ABE, 0x8ABF, 0x8AC0, 0x8AC1, 0x8AC2, 0, /* 0x70 */
- 0x8AC3, 0x8AC4, 0x8AC5, 0x8AC6, 0x8AC7, 0x8AC8, 0x8AC9, 0x8ACA, /* 0x80 */
- 0x8ACB, 0x8ACC, 0x8ACD, 0x8ACE, 0x8ACF, 0x8AD0, 0x8AD1, 0x8AD2, /* 0x80 */
- 0x8AD3, 0x8AD4, 0x8AD5, 0x8AD6, 0x8AD7, 0x8AD8, 0x8AD9, 0x8ADA, /* 0x90 */
- 0x8ADB, 0x8ADC, 0x8ADD, 0x8ADE, 0x8ADF, 0x8AE0, 0x8AE1, 0x8AE2, /* 0x90 */
- 0x8AE3, 0x94E1, 0x95F8, 0x7728, 0x6805, 0x69A8, 0x548B, 0x4E4D, /* 0xA0 */
- 0x70B8, 0x8BC8, 0x6458, 0x658B, 0x5B85, 0x7A84, 0x503A, 0x5BE8, /* 0xA0 */
- 0x77BB, 0x6BE1, 0x8A79, 0x7C98, 0x6CBE, 0x76CF, 0x65A9, 0x8F97, /* 0xB0 */
- 0x5D2D, 0x5C55, 0x8638, 0x6808, 0x5360, 0x6218, 0x7AD9, 0x6E5B, /* 0xB0 */
- 0x7EFD, 0x6A1F, 0x7AE0, 0x5F70, 0x6F33, 0x5F20, 0x638C, 0x6DA8, /* 0xC0 */
- 0x6756, 0x4E08, 0x5E10, 0x8D26, 0x4ED7, 0x80C0, 0x7634, 0x969C, /* 0xC0 */
- 0x62DB, 0x662D, 0x627E, 0x6CBC, 0x8D75, 0x7167, 0x7F69, 0x5146, /* 0xD0 */
- 0x8087, 0x53EC, 0x906E, 0x6298, 0x54F2, 0x86F0, 0x8F99, 0x8005, /* 0xD0 */
- 0x9517, 0x8517, 0x8FD9, 0x6D59, 0x73CD, 0x659F, 0x771F, 0x7504, /* 0xE0 */
- 0x7827, 0x81FB, 0x8D1E, 0x9488, 0x4FA6, 0x6795, 0x75B9, 0x8BCA, /* 0xE0 */
- 0x9707, 0x632F, 0x9547, 0x9635, 0x84B8, 0x6323, 0x7741, 0x5F81, /* 0xF0 */
- 0x72F0, 0x4E89, 0x6014, 0x6574, 0x62EF, 0x6B63, 0x653F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_D6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8AE4, 0x8AE5, 0x8AE6, 0x8AE7, 0x8AE8, 0x8AE9, 0x8AEA, 0x8AEB, /* 0x40 */
- 0x8AEC, 0x8AED, 0x8AEE, 0x8AEF, 0x8AF0, 0x8AF1, 0x8AF2, 0x8AF3, /* 0x40 */
- 0x8AF4, 0x8AF5, 0x8AF6, 0x8AF7, 0x8AF8, 0x8AF9, 0x8AFA, 0x8AFB, /* 0x50 */
- 0x8AFC, 0x8AFD, 0x8AFE, 0x8AFF, 0x8B00, 0x8B01, 0x8B02, 0x8B03, /* 0x50 */
- 0x8B04, 0x8B05, 0x8B06, 0x8B08, 0x8B09, 0x8B0A, 0x8B0B, 0x8B0C, /* 0x60 */
- 0x8B0D, 0x8B0E, 0x8B0F, 0x8B10, 0x8B11, 0x8B12, 0x8B13, 0x8B14, /* 0x60 */
- 0x8B15, 0x8B16, 0x8B17, 0x8B18, 0x8B19, 0x8B1A, 0x8B1B, 0x8B1C, /* 0x70 */
- 0x8B1D, 0x8B1E, 0x8B1F, 0x8B20, 0x8B21, 0x8B22, 0x8B23, 0, /* 0x70 */
- 0x8B24, 0x8B25, 0x8B27, 0x8B28, 0x8B29, 0x8B2A, 0x8B2B, 0x8B2C, /* 0x80 */
- 0x8B2D, 0x8B2E, 0x8B2F, 0x8B30, 0x8B31, 0x8B32, 0x8B33, 0x8B34, /* 0x80 */
- 0x8B35, 0x8B36, 0x8B37, 0x8B38, 0x8B39, 0x8B3A, 0x8B3B, 0x8B3C, /* 0x90 */
- 0x8B3D, 0x8B3E, 0x8B3F, 0x8B40, 0x8B41, 0x8B42, 0x8B43, 0x8B44, /* 0x90 */
- 0x8B45, 0x5E27, 0x75C7, 0x90D1, 0x8BC1, 0x829D, 0x679D, 0x652F, /* 0xA0 */
- 0x5431, 0x8718, 0x77E5, 0x80A2, 0x8102, 0x6C41, 0x4E4B, 0x7EC7, /* 0xA0 */
- 0x804C, 0x76F4, 0x690D, 0x6B96, 0x6267, 0x503C, 0x4F84, 0x5740, /* 0xB0 */
- 0x6307, 0x6B62, 0x8DBE, 0x53EA, 0x65E8, 0x7EB8, 0x5FD7, 0x631A, /* 0xB0 */
- 0x63B7, 0x81F3, 0x81F4, 0x7F6E, 0x5E1C, 0x5CD9, 0x5236, 0x667A, /* 0xC0 */
- 0x79E9, 0x7A1A, 0x8D28, 0x7099, 0x75D4, 0x6EDE, 0x6CBB, 0x7A92, /* 0xC0 */
- 0x4E2D, 0x76C5, 0x5FE0, 0x949F, 0x8877, 0x7EC8, 0x79CD, 0x80BF, /* 0xD0 */
- 0x91CD, 0x4EF2, 0x4F17, 0x821F, 0x5468, 0x5DDE, 0x6D32, 0x8BCC, /* 0xD0 */
- 0x7CA5, 0x8F74, 0x8098, 0x5E1A, 0x5492, 0x76B1, 0x5B99, 0x663C, /* 0xE0 */
- 0x9AA4, 0x73E0, 0x682A, 0x86DB, 0x6731, 0x732A, 0x8BF8, 0x8BDB, /* 0xE0 */
- 0x9010, 0x7AF9, 0x70DB, 0x716E, 0x62C4, 0x77A9, 0x5631, 0x4E3B, /* 0xF0 */
- 0x8457, 0x67F1, 0x52A9, 0x86C0, 0x8D2E, 0x94F8, 0x7B51 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_D7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8B46, 0x8B47, 0x8B48, 0x8B49, 0x8B4A, 0x8B4B, 0x8B4C, 0x8B4D, /* 0x40 */
- 0x8B4E, 0x8B4F, 0x8B50, 0x8B51, 0x8B52, 0x8B53, 0x8B54, 0x8B55, /* 0x40 */
- 0x8B56, 0x8B57, 0x8B58, 0x8B59, 0x8B5A, 0x8B5B, 0x8B5C, 0x8B5D, /* 0x50 */
- 0x8B5E, 0x8B5F, 0x8B60, 0x8B61, 0x8B62, 0x8B63, 0x8B64, 0x8B65, /* 0x50 */
- 0x8B67, 0x8B68, 0x8B69, 0x8B6A, 0x8B6B, 0x8B6D, 0x8B6E, 0x8B6F, /* 0x60 */
- 0x8B70, 0x8B71, 0x8B72, 0x8B73, 0x8B74, 0x8B75, 0x8B76, 0x8B77, /* 0x60 */
- 0x8B78, 0x8B79, 0x8B7A, 0x8B7B, 0x8B7C, 0x8B7D, 0x8B7E, 0x8B7F, /* 0x70 */
- 0x8B80, 0x8B81, 0x8B82, 0x8B83, 0x8B84, 0x8B85, 0x8B86, 0, /* 0x70 */
- 0x8B87, 0x8B88, 0x8B89, 0x8B8A, 0x8B8B, 0x8B8C, 0x8B8D, 0x8B8E, /* 0x80 */
- 0x8B8F, 0x8B90, 0x8B91, 0x8B92, 0x8B93, 0x8B94, 0x8B95, 0x8B96, /* 0x80 */
- 0x8B97, 0x8B98, 0x8B99, 0x8B9A, 0x8B9B, 0x8B9C, 0x8B9D, 0x8B9E, /* 0x90 */
- 0x8B9F, 0x8BAC, 0x8BB1, 0x8BBB, 0x8BC7, 0x8BD0, 0x8BEA, 0x8C09, /* 0x90 */
- 0x8C1E, 0x4F4F, 0x6CE8, 0x795D, 0x9A7B, 0x6293, 0x722A, 0x62FD, /* 0xA0 */
- 0x4E13, 0x7816, 0x8F6C, 0x64B0, 0x8D5A, 0x7BC6, 0x6869, 0x5E84, /* 0xA0 */
- 0x88C5, 0x5986, 0x649E, 0x58EE, 0x72B6, 0x690E, 0x9525, 0x8FFD, /* 0xB0 */
- 0x8D58, 0x5760, 0x7F00, 0x8C06, 0x51C6, 0x6349, 0x62D9, 0x5353, /* 0xB0 */
- 0x684C, 0x7422, 0x8301, 0x914C, 0x5544, 0x7740, 0x707C, 0x6D4A, /* 0xC0 */
- 0x5179, 0x54A8, 0x8D44, 0x59FF, 0x6ECB, 0x6DC4, 0x5B5C, 0x7D2B, /* 0xC0 */
- 0x4ED4, 0x7C7D, 0x6ED3, 0x5B50, 0x81EA, 0x6E0D, 0x5B57, 0x9B03, /* 0xD0 */
- 0x68D5, 0x8E2A, 0x5B97, 0x7EFC, 0x603B, 0x7EB5, 0x90B9, 0x8D70, /* 0xD0 */
- 0x594F, 0x63CD, 0x79DF, 0x8DB3, 0x5352, 0x65CF, 0x7956, 0x8BC5, /* 0xE0 */
- 0x963B, 0x7EC4, 0x94BB, 0x7E82, 0x5634, 0x9189, 0x6700, 0x7F6A, /* 0xE0 */
- 0x5C0A, 0x9075, 0x6628, 0x5DE6, 0x4F50, 0x67DE, 0x505A, 0x4F5C, /* 0xF0 */
- 0x5750, 0x5EA7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_D8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8C38, 0x8C39, 0x8C3A, 0x8C3B, 0x8C3C, 0x8C3D, 0x8C3E, 0x8C3F, /* 0x40 */
- 0x8C40, 0x8C42, 0x8C43, 0x8C44, 0x8C45, 0x8C48, 0x8C4A, 0x8C4B, /* 0x40 */
- 0x8C4D, 0x8C4E, 0x8C4F, 0x8C50, 0x8C51, 0x8C52, 0x8C53, 0x8C54, /* 0x50 */
- 0x8C56, 0x8C57, 0x8C58, 0x8C59, 0x8C5B, 0x8C5C, 0x8C5D, 0x8C5E, /* 0x50 */
- 0x8C5F, 0x8C60, 0x8C63, 0x8C64, 0x8C65, 0x8C66, 0x8C67, 0x8C68, /* 0x60 */
- 0x8C69, 0x8C6C, 0x8C6D, 0x8C6E, 0x8C6F, 0x8C70, 0x8C71, 0x8C72, /* 0x60 */
- 0x8C74, 0x8C75, 0x8C76, 0x8C77, 0x8C7B, 0x8C7C, 0x8C7D, 0x8C7E, /* 0x70 */
- 0x8C7F, 0x8C80, 0x8C81, 0x8C83, 0x8C84, 0x8C86, 0x8C87, 0, /* 0x70 */
- 0x8C88, 0x8C8B, 0x8C8D, 0x8C8E, 0x8C8F, 0x8C90, 0x8C91, 0x8C92, /* 0x80 */
- 0x8C93, 0x8C95, 0x8C96, 0x8C97, 0x8C99, 0x8C9A, 0x8C9B, 0x8C9C, /* 0x80 */
- 0x8C9D, 0x8C9E, 0x8C9F, 0x8CA0, 0x8CA1, 0x8CA2, 0x8CA3, 0x8CA4, /* 0x90 */
- 0x8CA5, 0x8CA6, 0x8CA7, 0x8CA8, 0x8CA9, 0x8CAA, 0x8CAB, 0x8CAC, /* 0x90 */
- 0x8CAD, 0x4E8D, 0x4E0C, 0x5140, 0x4E10, 0x5EFF, 0x5345, 0x4E15, /* 0xA0 */
- 0x4E98, 0x4E1E, 0x9B32, 0x5B6C, 0x5669, 0x4E28, 0x79BA, 0x4E3F, /* 0xA0 */
- 0x5315, 0x4E47, 0x592D, 0x723B, 0x536E, 0x6C10, 0x56DF, 0x80E4, /* 0xB0 */
- 0x9997, 0x6BD3, 0x777E, 0x9F17, 0x4E36, 0x4E9F, 0x9F10, 0x4E5C, /* 0xB0 */
- 0x4E69, 0x4E93, 0x8288, 0x5B5B, 0x556C, 0x560F, 0x4EC4, 0x538D, /* 0xC0 */
- 0x539D, 0x53A3, 0x53A5, 0x53AE, 0x9765, 0x8D5D, 0x531A, 0x53F5, /* 0xC0 */
- 0x5326, 0x532E, 0x533E, 0x8D5C, 0x5366, 0x5363, 0x5202, 0x5208, /* 0xD0 */
- 0x520E, 0x522D, 0x5233, 0x523F, 0x5240, 0x524C, 0x525E, 0x5261, /* 0xD0 */
- 0x525C, 0x84AF, 0x527D, 0x5282, 0x5281, 0x5290, 0x5293, 0x5182, /* 0xE0 */
- 0x7F54, 0x4EBB, 0x4EC3, 0x4EC9, 0x4EC2, 0x4EE8, 0x4EE1, 0x4EEB, /* 0xE0 */
- 0x4EDE, 0x4F1B, 0x4EF3, 0x4F22, 0x4F64, 0x4EF5, 0x4F25, 0x4F27, /* 0xF0 */
- 0x4F09, 0x4F2B, 0x4F5E, 0x4F67, 0x6538, 0x4F5A, 0x4F5D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_D9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8CAE, 0x8CAF, 0x8CB0, 0x8CB1, 0x8CB2, 0x8CB3, 0x8CB4, 0x8CB5, /* 0x40 */
- 0x8CB6, 0x8CB7, 0x8CB8, 0x8CB9, 0x8CBA, 0x8CBB, 0x8CBC, 0x8CBD, /* 0x40 */
- 0x8CBE, 0x8CBF, 0x8CC0, 0x8CC1, 0x8CC2, 0x8CC3, 0x8CC4, 0x8CC5, /* 0x50 */
- 0x8CC6, 0x8CC7, 0x8CC8, 0x8CC9, 0x8CCA, 0x8CCB, 0x8CCC, 0x8CCD, /* 0x50 */
- 0x8CCE, 0x8CCF, 0x8CD0, 0x8CD1, 0x8CD2, 0x8CD3, 0x8CD4, 0x8CD5, /* 0x60 */
- 0x8CD6, 0x8CD7, 0x8CD8, 0x8CD9, 0x8CDA, 0x8CDB, 0x8CDC, 0x8CDD, /* 0x60 */
- 0x8CDE, 0x8CDF, 0x8CE0, 0x8CE1, 0x8CE2, 0x8CE3, 0x8CE4, 0x8CE5, /* 0x70 */
- 0x8CE6, 0x8CE7, 0x8CE8, 0x8CE9, 0x8CEA, 0x8CEB, 0x8CEC, 0, /* 0x70 */
- 0x8CED, 0x8CEE, 0x8CEF, 0x8CF0, 0x8CF1, 0x8CF2, 0x8CF3, 0x8CF4, /* 0x80 */
- 0x8CF5, 0x8CF6, 0x8CF7, 0x8CF8, 0x8CF9, 0x8CFA, 0x8CFB, 0x8CFC, /* 0x80 */
- 0x8CFD, 0x8CFE, 0x8CFF, 0x8D00, 0x8D01, 0x8D02, 0x8D03, 0x8D04, /* 0x90 */
- 0x8D05, 0x8D06, 0x8D07, 0x8D08, 0x8D09, 0x8D0A, 0x8D0B, 0x8D0C, /* 0x90 */
- 0x8D0D, 0x4F5F, 0x4F57, 0x4F32, 0x4F3D, 0x4F76, 0x4F74, 0x4F91, /* 0xA0 */
- 0x4F89, 0x4F83, 0x4F8F, 0x4F7E, 0x4F7B, 0x4FAA, 0x4F7C, 0x4FAC, /* 0xA0 */
- 0x4F94, 0x4FE6, 0x4FE8, 0x4FEA, 0x4FC5, 0x4FDA, 0x4FE3, 0x4FDC, /* 0xB0 */
- 0x4FD1, 0x4FDF, 0x4FF8, 0x5029, 0x504C, 0x4FF3, 0x502C, 0x500F, /* 0xB0 */
- 0x502E, 0x502D, 0x4FFE, 0x501C, 0x500C, 0x5025, 0x5028, 0x507E, /* 0xC0 */
- 0x5043, 0x5055, 0x5048, 0x504E, 0x506C, 0x507B, 0x50A5, 0x50A7, /* 0xC0 */
- 0x50A9, 0x50BA, 0x50D6, 0x5106, 0x50ED, 0x50EC, 0x50E6, 0x50EE, /* 0xD0 */
- 0x5107, 0x510B, 0x4EDD, 0x6C3D, 0x4F58, 0x4F65, 0x4FCE, 0x9FA0, /* 0xD0 */
- 0x6C46, 0x7C74, 0x516E, 0x5DFD, 0x9EC9, 0x9998, 0x5181, 0x5914, /* 0xE0 */
- 0x52F9, 0x530D, 0x8A07, 0x5310, 0x51EB, 0x5919, 0x5155, 0x4EA0, /* 0xE0 */
- 0x5156, 0x4EB3, 0x886E, 0x88A4, 0x4EB5, 0x8114, 0x88D2, 0x7980, /* 0xF0 */
- 0x5B34, 0x8803, 0x7FB8, 0x51AB, 0x51B1, 0x51BD, 0x51BC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_DA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8D0E, 0x8D0F, 0x8D10, 0x8D11, 0x8D12, 0x8D13, 0x8D14, 0x8D15, /* 0x40 */
- 0x8D16, 0x8D17, 0x8D18, 0x8D19, 0x8D1A, 0x8D1B, 0x8D1C, 0x8D20, /* 0x40 */
- 0x8D51, 0x8D52, 0x8D57, 0x8D5F, 0x8D65, 0x8D68, 0x8D69, 0x8D6A, /* 0x50 */
- 0x8D6C, 0x8D6E, 0x8D6F, 0x8D71, 0x8D72, 0x8D78, 0x8D79, 0x8D7A, /* 0x50 */
- 0x8D7B, 0x8D7C, 0x8D7D, 0x8D7E, 0x8D7F, 0x8D80, 0x8D82, 0x8D83, /* 0x60 */
- 0x8D86, 0x8D87, 0x8D88, 0x8D89, 0x8D8C, 0x8D8D, 0x8D8E, 0x8D8F, /* 0x60 */
- 0x8D90, 0x8D92, 0x8D93, 0x8D95, 0x8D96, 0x8D97, 0x8D98, 0x8D99, /* 0x70 */
- 0x8D9A, 0x8D9B, 0x8D9C, 0x8D9D, 0x8D9E, 0x8DA0, 0x8DA1, 0, /* 0x70 */
- 0x8DA2, 0x8DA4, 0x8DA5, 0x8DA6, 0x8DA7, 0x8DA8, 0x8DA9, 0x8DAA, /* 0x80 */
- 0x8DAB, 0x8DAC, 0x8DAD, 0x8DAE, 0x8DAF, 0x8DB0, 0x8DB2, 0x8DB6, /* 0x80 */
- 0x8DB7, 0x8DB9, 0x8DBB, 0x8DBD, 0x8DC0, 0x8DC1, 0x8DC2, 0x8DC5, /* 0x90 */
- 0x8DC7, 0x8DC8, 0x8DC9, 0x8DCA, 0x8DCD, 0x8DD0, 0x8DD2, 0x8DD3, /* 0x90 */
- 0x8DD4, 0x51C7, 0x5196, 0x51A2, 0x51A5, 0x8BA0, 0x8BA6, 0x8BA7, /* 0xA0 */
- 0x8BAA, 0x8BB4, 0x8BB5, 0x8BB7, 0x8BC2, 0x8BC3, 0x8BCB, 0x8BCF, /* 0xA0 */
- 0x8BCE, 0x8BD2, 0x8BD3, 0x8BD4, 0x8BD6, 0x8BD8, 0x8BD9, 0x8BDC, /* 0xB0 */
- 0x8BDF, 0x8BE0, 0x8BE4, 0x8BE8, 0x8BE9, 0x8BEE, 0x8BF0, 0x8BF3, /* 0xB0 */
- 0x8BF6, 0x8BF9, 0x8BFC, 0x8BFF, 0x8C00, 0x8C02, 0x8C04, 0x8C07, /* 0xC0 */
- 0x8C0C, 0x8C0F, 0x8C11, 0x8C12, 0x8C14, 0x8C15, 0x8C16, 0x8C19, /* 0xC0 */
- 0x8C1B, 0x8C18, 0x8C1D, 0x8C1F, 0x8C20, 0x8C21, 0x8C25, 0x8C27, /* 0xD0 */
- 0x8C2A, 0x8C2B, 0x8C2E, 0x8C2F, 0x8C32, 0x8C33, 0x8C35, 0x8C36, /* 0xD0 */
- 0x5369, 0x537A, 0x961D, 0x9622, 0x9621, 0x9631, 0x962A, 0x963D, /* 0xE0 */
- 0x963C, 0x9642, 0x9649, 0x9654, 0x965F, 0x9667, 0x966C, 0x9672, /* 0xE0 */
- 0x9674, 0x9688, 0x968D, 0x9697, 0x96B0, 0x9097, 0x909B, 0x909D, /* 0xF0 */
- 0x9099, 0x90AC, 0x90A1, 0x90B4, 0x90B3, 0x90B6, 0x90BA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_DB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8DD5, 0x8DD8, 0x8DD9, 0x8DDC, 0x8DE0, 0x8DE1, 0x8DE2, 0x8DE5, /* 0x40 */
- 0x8DE6, 0x8DE7, 0x8DE9, 0x8DED, 0x8DEE, 0x8DF0, 0x8DF1, 0x8DF2, /* 0x40 */
- 0x8DF4, 0x8DF6, 0x8DFC, 0x8DFE, 0x8DFF, 0x8E00, 0x8E01, 0x8E02, /* 0x50 */
- 0x8E03, 0x8E04, 0x8E06, 0x8E07, 0x8E08, 0x8E0B, 0x8E0D, 0x8E0E, /* 0x50 */
- 0x8E10, 0x8E11, 0x8E12, 0x8E13, 0x8E15, 0x8E16, 0x8E17, 0x8E18, /* 0x60 */
- 0x8E19, 0x8E1A, 0x8E1B, 0x8E1C, 0x8E20, 0x8E21, 0x8E24, 0x8E25, /* 0x60 */
- 0x8E26, 0x8E27, 0x8E28, 0x8E2B, 0x8E2D, 0x8E30, 0x8E32, 0x8E33, /* 0x70 */
- 0x8E34, 0x8E36, 0x8E37, 0x8E38, 0x8E3B, 0x8E3C, 0x8E3E, 0, /* 0x70 */
- 0x8E3F, 0x8E43, 0x8E45, 0x8E46, 0x8E4C, 0x8E4D, 0x8E4E, 0x8E4F, /* 0x80 */
- 0x8E50, 0x8E53, 0x8E54, 0x8E55, 0x8E56, 0x8E57, 0x8E58, 0x8E5A, /* 0x80 */
- 0x8E5B, 0x8E5C, 0x8E5D, 0x8E5E, 0x8E5F, 0x8E60, 0x8E61, 0x8E62, /* 0x90 */
- 0x8E63, 0x8E64, 0x8E65, 0x8E67, 0x8E68, 0x8E6A, 0x8E6B, 0x8E6E, /* 0x90 */
- 0x8E71, 0x90B8, 0x90B0, 0x90CF, 0x90C5, 0x90BE, 0x90D0, 0x90C4, /* 0xA0 */
- 0x90C7, 0x90D3, 0x90E6, 0x90E2, 0x90DC, 0x90D7, 0x90DB, 0x90EB, /* 0xA0 */
- 0x90EF, 0x90FE, 0x9104, 0x9122, 0x911E, 0x9123, 0x9131, 0x912F, /* 0xB0 */
- 0x9139, 0x9143, 0x9146, 0x520D, 0x5942, 0x52A2, 0x52AC, 0x52AD, /* 0xB0 */
- 0x52BE, 0x54FF, 0x52D0, 0x52D6, 0x52F0, 0x53DF, 0x71EE, 0x77CD, /* 0xC0 */
- 0x5EF4, 0x51F5, 0x51FC, 0x9B2F, 0x53B6, 0x5F01, 0x755A, 0x5DEF, /* 0xC0 */
- 0x574C, 0x57A9, 0x57A1, 0x587E, 0x58BC, 0x58C5, 0x58D1, 0x5729, /* 0xD0 */
- 0x572C, 0x572A, 0x5733, 0x5739, 0x572E, 0x572F, 0x575C, 0x573B, /* 0xD0 */
- 0x5742, 0x5769, 0x5785, 0x576B, 0x5786, 0x577C, 0x577B, 0x5768, /* 0xE0 */
- 0x576D, 0x5776, 0x5773, 0x57AD, 0x57A4, 0x578C, 0x57B2, 0x57CF, /* 0xE0 */
- 0x57A7, 0x57B4, 0x5793, 0x57A0, 0x57D5, 0x57D8, 0x57DA, 0x57D9, /* 0xF0 */
- 0x57D2, 0x57B8, 0x57F4, 0x57EF, 0x57F8, 0x57E4, 0x57DD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_DC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8E73, 0x8E75, 0x8E77, 0x8E78, 0x8E79, 0x8E7A, 0x8E7B, 0x8E7D, /* 0x40 */
- 0x8E7E, 0x8E80, 0x8E82, 0x8E83, 0x8E84, 0x8E86, 0x8E88, 0x8E89, /* 0x40 */
- 0x8E8A, 0x8E8B, 0x8E8C, 0x8E8D, 0x8E8E, 0x8E91, 0x8E92, 0x8E93, /* 0x50 */
- 0x8E95, 0x8E96, 0x8E97, 0x8E98, 0x8E99, 0x8E9A, 0x8E9B, 0x8E9D, /* 0x50 */
- 0x8E9F, 0x8EA0, 0x8EA1, 0x8EA2, 0x8EA3, 0x8EA4, 0x8EA5, 0x8EA6, /* 0x60 */
- 0x8EA7, 0x8EA8, 0x8EA9, 0x8EAA, 0x8EAD, 0x8EAE, 0x8EB0, 0x8EB1, /* 0x60 */
- 0x8EB3, 0x8EB4, 0x8EB5, 0x8EB6, 0x8EB7, 0x8EB8, 0x8EB9, 0x8EBB, /* 0x70 */
- 0x8EBC, 0x8EBD, 0x8EBE, 0x8EBF, 0x8EC0, 0x8EC1, 0x8EC2, 0, /* 0x70 */
- 0x8EC3, 0x8EC4, 0x8EC5, 0x8EC6, 0x8EC7, 0x8EC8, 0x8EC9, 0x8ECA, /* 0x80 */
- 0x8ECB, 0x8ECC, 0x8ECD, 0x8ECF, 0x8ED0, 0x8ED1, 0x8ED2, 0x8ED3, /* 0x80 */
- 0x8ED4, 0x8ED5, 0x8ED6, 0x8ED7, 0x8ED8, 0x8ED9, 0x8EDA, 0x8EDB, /* 0x90 */
- 0x8EDC, 0x8EDD, 0x8EDE, 0x8EDF, 0x8EE0, 0x8EE1, 0x8EE2, 0x8EE3, /* 0x90 */
- 0x8EE4, 0x580B, 0x580D, 0x57FD, 0x57ED, 0x5800, 0x581E, 0x5819, /* 0xA0 */
- 0x5844, 0x5820, 0x5865, 0x586C, 0x5881, 0x5889, 0x589A, 0x5880, /* 0xA0 */
- 0x99A8, 0x9F19, 0x61FF, 0x8279, 0x827D, 0x827F, 0x828F, 0x828A, /* 0xB0 */
- 0x82A8, 0x8284, 0x828E, 0x8291, 0x8297, 0x8299, 0x82AB, 0x82B8, /* 0xB0 */
- 0x82BE, 0x82B0, 0x82C8, 0x82CA, 0x82E3, 0x8298, 0x82B7, 0x82AE, /* 0xC0 */
- 0x82CB, 0x82CC, 0x82C1, 0x82A9, 0x82B4, 0x82A1, 0x82AA, 0x829F, /* 0xC0 */
- 0x82C4, 0x82CE, 0x82A4, 0x82E1, 0x8309, 0x82F7, 0x82E4, 0x830F, /* 0xD0 */
- 0x8307, 0x82DC, 0x82F4, 0x82D2, 0x82D8, 0x830C, 0x82FB, 0x82D3, /* 0xD0 */
- 0x8311, 0x831A, 0x8306, 0x8314, 0x8315, 0x82E0, 0x82D5, 0x831C, /* 0xE0 */
- 0x8351, 0x835B, 0x835C, 0x8308, 0x8392, 0x833C, 0x8334, 0x8331, /* 0xE0 */
- 0x839B, 0x835E, 0x832F, 0x834F, 0x8347, 0x8343, 0x835F, 0x8340, /* 0xF0 */
- 0x8317, 0x8360, 0x832D, 0x833A, 0x8333, 0x8366, 0x8365 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_DD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8EE5, 0x8EE6, 0x8EE7, 0x8EE8, 0x8EE9, 0x8EEA, 0x8EEB, 0x8EEC, /* 0x40 */
- 0x8EED, 0x8EEE, 0x8EEF, 0x8EF0, 0x8EF1, 0x8EF2, 0x8EF3, 0x8EF4, /* 0x40 */
- 0x8EF5, 0x8EF6, 0x8EF7, 0x8EF8, 0x8EF9, 0x8EFA, 0x8EFB, 0x8EFC, /* 0x50 */
- 0x8EFD, 0x8EFE, 0x8EFF, 0x8F00, 0x8F01, 0x8F02, 0x8F03, 0x8F04, /* 0x50 */
- 0x8F05, 0x8F06, 0x8F07, 0x8F08, 0x8F09, 0x8F0A, 0x8F0B, 0x8F0C, /* 0x60 */
- 0x8F0D, 0x8F0E, 0x8F0F, 0x8F10, 0x8F11, 0x8F12, 0x8F13, 0x8F14, /* 0x60 */
- 0x8F15, 0x8F16, 0x8F17, 0x8F18, 0x8F19, 0x8F1A, 0x8F1B, 0x8F1C, /* 0x70 */
- 0x8F1D, 0x8F1E, 0x8F1F, 0x8F20, 0x8F21, 0x8F22, 0x8F23, 0, /* 0x70 */
- 0x8F24, 0x8F25, 0x8F26, 0x8F27, 0x8F28, 0x8F29, 0x8F2A, 0x8F2B, /* 0x80 */
- 0x8F2C, 0x8F2D, 0x8F2E, 0x8F2F, 0x8F30, 0x8F31, 0x8F32, 0x8F33, /* 0x80 */
- 0x8F34, 0x8F35, 0x8F36, 0x8F37, 0x8F38, 0x8F39, 0x8F3A, 0x8F3B, /* 0x90 */
- 0x8F3C, 0x8F3D, 0x8F3E, 0x8F3F, 0x8F40, 0x8F41, 0x8F42, 0x8F43, /* 0x90 */
- 0x8F44, 0x8368, 0x831B, 0x8369, 0x836C, 0x836A, 0x836D, 0x836E, /* 0xA0 */
- 0x83B0, 0x8378, 0x83B3, 0x83B4, 0x83A0, 0x83AA, 0x8393, 0x839C, /* 0xA0 */
- 0x8385, 0x837C, 0x83B6, 0x83A9, 0x837D, 0x83B8, 0x837B, 0x8398, /* 0xB0 */
- 0x839E, 0x83A8, 0x83BA, 0x83BC, 0x83C1, 0x8401, 0x83E5, 0x83D8, /* 0xB0 */
- 0x5807, 0x8418, 0x840B, 0x83DD, 0x83FD, 0x83D6, 0x841C, 0x8438, /* 0xC0 */
- 0x8411, 0x8406, 0x83D4, 0x83DF, 0x840F, 0x8403, 0x83F8, 0x83F9, /* 0xC0 */
- 0x83EA, 0x83C5, 0x83C0, 0x8426, 0x83F0, 0x83E1, 0x845C, 0x8451, /* 0xD0 */
- 0x845A, 0x8459, 0x8473, 0x8487, 0x8488, 0x847A, 0x8489, 0x8478, /* 0xD0 */
- 0x843C, 0x8446, 0x8469, 0x8476, 0x848C, 0x848E, 0x8431, 0x846D, /* 0xE0 */
- 0x84C1, 0x84CD, 0x84D0, 0x84E6, 0x84BD, 0x84D3, 0x84CA, 0x84BF, /* 0xE0 */
- 0x84BA, 0x84E0, 0x84A1, 0x84B9, 0x84B4, 0x8497, 0x84E5, 0x84E3, /* 0xF0 */
- 0x850C, 0x750D, 0x8538, 0x84F0, 0x8539, 0x851F, 0x853A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_DE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8F45, 0x8F46, 0x8F47, 0x8F48, 0x8F49, 0x8F4A, 0x8F4B, 0x8F4C, /* 0x40 */
- 0x8F4D, 0x8F4E, 0x8F4F, 0x8F50, 0x8F51, 0x8F52, 0x8F53, 0x8F54, /* 0x40 */
- 0x8F55, 0x8F56, 0x8F57, 0x8F58, 0x8F59, 0x8F5A, 0x8F5B, 0x8F5C, /* 0x50 */
- 0x8F5D, 0x8F5E, 0x8F5F, 0x8F60, 0x8F61, 0x8F62, 0x8F63, 0x8F64, /* 0x50 */
- 0x8F65, 0x8F6A, 0x8F80, 0x8F8C, 0x8F92, 0x8F9D, 0x8FA0, 0x8FA1, /* 0x60 */
- 0x8FA2, 0x8FA4, 0x8FA5, 0x8FA6, 0x8FA7, 0x8FAA, 0x8FAC, 0x8FAD, /* 0x60 */
- 0x8FAE, 0x8FAF, 0x8FB2, 0x8FB3, 0x8FB4, 0x8FB5, 0x8FB7, 0x8FB8, /* 0x70 */
- 0x8FBA, 0x8FBB, 0x8FBC, 0x8FBF, 0x8FC0, 0x8FC3, 0x8FC6, 0, /* 0x70 */
- 0x8FC9, 0x8FCA, 0x8FCB, 0x8FCC, 0x8FCD, 0x8FCF, 0x8FD2, 0x8FD6, /* 0x80 */
- 0x8FD7, 0x8FDA, 0x8FE0, 0x8FE1, 0x8FE3, 0x8FE7, 0x8FEC, 0x8FEF, /* 0x80 */
- 0x8FF1, 0x8FF2, 0x8FF4, 0x8FF5, 0x8FF6, 0x8FFA, 0x8FFB, 0x8FFC, /* 0x90 */
- 0x8FFE, 0x8FFF, 0x9007, 0x9008, 0x900C, 0x900E, 0x9013, 0x9015, /* 0x90 */
- 0x9018, 0x8556, 0x853B, 0x84FF, 0x84FC, 0x8559, 0x8548, 0x8568, /* 0xA0 */
- 0x8564, 0x855E, 0x857A, 0x77A2, 0x8543, 0x8572, 0x857B, 0x85A4, /* 0xA0 */
- 0x85A8, 0x8587, 0x858F, 0x8579, 0x85AE, 0x859C, 0x8585, 0x85B9, /* 0xB0 */
- 0x85B7, 0x85B0, 0x85D3, 0x85C1, 0x85DC, 0x85FF, 0x8627, 0x8605, /* 0xB0 */
- 0x8629, 0x8616, 0x863C, 0x5EFE, 0x5F08, 0x593C, 0x5941, 0x8037, /* 0xC0 */
- 0x5955, 0x595A, 0x5958, 0x530F, 0x5C22, 0x5C25, 0x5C2C, 0x5C34, /* 0xC0 */
- 0x624C, 0x626A, 0x629F, 0x62BB, 0x62CA, 0x62DA, 0x62D7, 0x62EE, /* 0xD0 */
- 0x6322, 0x62F6, 0x6339, 0x634B, 0x6343, 0x63AD, 0x63F6, 0x6371, /* 0xD0 */
- 0x637A, 0x638E, 0x63B4, 0x636D, 0x63AC, 0x638A, 0x6369, 0x63AE, /* 0xE0 */
- 0x63BC, 0x63F2, 0x63F8, 0x63E0, 0x63FF, 0x63C4, 0x63DE, 0x63CE, /* 0xE0 */
- 0x6452, 0x63C6, 0x63BE, 0x6445, 0x6441, 0x640B, 0x641B, 0x6420, /* 0xF0 */
- 0x640C, 0x6426, 0x6421, 0x645E, 0x6484, 0x646D, 0x6496 /* 0xF0 */
-};
-static sal_uInt16 const aImplDBCSToUniTab_GBK_DF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9019, 0x901C, 0x9023, 0x9024, 0x9025, 0x9027, 0x9028, 0x9029, /* 0x40 */
- 0x902A, 0x902B, 0x902C, 0x9030, 0x9031, 0x9032, 0x9033, 0x9034, /* 0x40 */
- 0x9037, 0x9039, 0x903A, 0x903D, 0x903F, 0x9040, 0x9043, 0x9045, /* 0x50 */
- 0x9046, 0x9048, 0x9049, 0x904A, 0x904B, 0x904C, 0x904E, 0x9054, /* 0x50 */
- 0x9055, 0x9056, 0x9059, 0x905A, 0x905C, 0x905D, 0x905E, 0x905F, /* 0x60 */
- 0x9060, 0x9061, 0x9064, 0x9066, 0x9067, 0x9069, 0x906A, 0x906B, /* 0x60 */
- 0x906C, 0x906F, 0x9070, 0x9071, 0x9072, 0x9073, 0x9076, 0x9077, /* 0x70 */
- 0x9078, 0x9079, 0x907A, 0x907B, 0x907C, 0x907E, 0x9081, 0, /* 0x70 */
- 0x9084, 0x9085, 0x9086, 0x9087, 0x9089, 0x908A, 0x908C, 0x908D, /* 0x80 */
- 0x908E, 0x908F, 0x9090, 0x9092, 0x9094, 0x9096, 0x9098, 0x909A, /* 0x80 */
- 0x909C, 0x909E, 0x909F, 0x90A0, 0x90A4, 0x90A5, 0x90A7, 0x90A8, /* 0x90 */
- 0x90A9, 0x90AB, 0x90AD, 0x90B2, 0x90B7, 0x90BC, 0x90BD, 0x90BF, /* 0x90 */
- 0x90C0, 0x647A, 0x64B7, 0x64B8, 0x6499, 0x64BA, 0x64C0, 0x64D0, /* 0xA0 */
- 0x64D7, 0x64E4, 0x64E2, 0x6509, 0x6525, 0x652E, 0x5F0B, 0x5FD2, /* 0xA0 */
- 0x7519, 0x5F11, 0x535F, 0x53F1, 0x53FD, 0x53E9, 0x53E8, 0x53FB, /* 0xB0 */
- 0x5412, 0x5416, 0x5406, 0x544B, 0x5452, 0x5453, 0x5454, 0x5456, /* 0xB0 */
- 0x5443, 0x5421, 0x5457, 0x5459, 0x5423, 0x5432, 0x5482, 0x5494, /* 0xC0 */
- 0x5477, 0x5471, 0x5464, 0x549A, 0x549B, 0x5484, 0x5476, 0x5466, /* 0xC0 */
- 0x549D, 0x54D0, 0x54AD, 0x54C2, 0x54B4, 0x54D2, 0x54A7, 0x54A6, /* 0xD0 */
- 0x54D3, 0x54D4, 0x5472, 0x54A3, 0x54D5, 0x54BB, 0x54BF, 0x54CC, /* 0xD0 */
- 0x54D9, 0x54DA, 0x54DC, 0x54A9, 0x54AA, 0x54A4, 0x54DD, 0x54CF, /* 0xE0 */
- 0x54DE, 0x551B, 0x54E7, 0x5520, 0x54FD, 0x5514, 0x54F3, 0x5522, /* 0xE0 */
- 0x5523, 0x550F, 0x5511, 0x5527, 0x552A, 0x5567, 0x558F, 0x55B5, /* 0xF0 */
- 0x5549, 0x556D, 0x5541, 0x5555, 0x553F, 0x5550, 0x553C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_E0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x90C2, 0x90C3, 0x90C6, 0x90C8, 0x90C9, 0x90CB, 0x90CC, 0x90CD, /* 0x40 */
- 0x90D2, 0x90D4, 0x90D5, 0x90D6, 0x90D8, 0x90D9, 0x90DA, 0x90DE, /* 0x40 */
- 0x90DF, 0x90E0, 0x90E3, 0x90E4, 0x90E5, 0x90E9, 0x90EA, 0x90EC, /* 0x50 */
- 0x90EE, 0x90F0, 0x90F1, 0x90F2, 0x90F3, 0x90F5, 0x90F6, 0x90F7, /* 0x50 */
- 0x90F9, 0x90FA, 0x90FB, 0x90FC, 0x90FF, 0x9100, 0x9101, 0x9103, /* 0x60 */
- 0x9105, 0x9106, 0x9107, 0x9108, 0x9109, 0x910A, 0x910B, 0x910C, /* 0x60 */
- 0x910D, 0x910E, 0x910F, 0x9110, 0x9111, 0x9112, 0x9113, 0x9114, /* 0x70 */
- 0x9115, 0x9116, 0x9117, 0x9118, 0x911A, 0x911B, 0x911C, 0, /* 0x70 */
- 0x911D, 0x911F, 0x9120, 0x9121, 0x9124, 0x9125, 0x9126, 0x9127, /* 0x80 */
- 0x9128, 0x9129, 0x912A, 0x912B, 0x912C, 0x912D, 0x912E, 0x9130, /* 0x80 */
- 0x9132, 0x9133, 0x9134, 0x9135, 0x9136, 0x9137, 0x9138, 0x913A, /* 0x90 */
- 0x913B, 0x913C, 0x913D, 0x913E, 0x913F, 0x9140, 0x9141, 0x9142, /* 0x90 */
- 0x9144, 0x5537, 0x5556, 0x5575, 0x5576, 0x5577, 0x5533, 0x5530, /* 0xA0 */
- 0x555C, 0x558B, 0x55D2, 0x5583, 0x55B1, 0x55B9, 0x5588, 0x5581, /* 0xA0 */
- 0x559F, 0x557E, 0x55D6, 0x5591, 0x557B, 0x55DF, 0x55BD, 0x55BE, /* 0xB0 */
- 0x5594, 0x5599, 0x55EA, 0x55F7, 0x55C9, 0x561F, 0x55D1, 0x55EB, /* 0xB0 */
- 0x55EC, 0x55D4, 0x55E6, 0x55DD, 0x55C4, 0x55EF, 0x55E5, 0x55F2, /* 0xC0 */
- 0x55F3, 0x55CC, 0x55CD, 0x55E8, 0x55F5, 0x55E4, 0x8F94, 0x561E, /* 0xC0 */
- 0x5608, 0x560C, 0x5601, 0x5624, 0x5623, 0x55FE, 0x5600, 0x5627, /* 0xD0 */
- 0x562D, 0x5658, 0x5639, 0x5657, 0x562C, 0x564D, 0x5662, 0x5659, /* 0xD0 */
- 0x565C, 0x564C, 0x5654, 0x5686, 0x5664, 0x5671, 0x566B, 0x567B, /* 0xE0 */
- 0x567C, 0x5685, 0x5693, 0x56AF, 0x56D4, 0x56D7, 0x56DD, 0x56E1, /* 0xE0 */
- 0x56F5, 0x56EB, 0x56F9, 0x56FF, 0x5704, 0x570A, 0x5709, 0x571C, /* 0xF0 */
- 0x5E0F, 0x5E19, 0x5E14, 0x5E11, 0x5E31, 0x5E3B, 0x5E3C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_E1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9145, 0x9147, 0x9148, 0x9151, 0x9153, 0x9154, 0x9155, 0x9156, /* 0x40 */
- 0x9158, 0x9159, 0x915B, 0x915C, 0x915F, 0x9160, 0x9166, 0x9167, /* 0x40 */
- 0x9168, 0x916B, 0x916D, 0x9173, 0x917A, 0x917B, 0x917C, 0x9180, /* 0x50 */
- 0x9181, 0x9182, 0x9183, 0x9184, 0x9186, 0x9188, 0x918A, 0x918E, /* 0x50 */
- 0x918F, 0x9193, 0x9194, 0x9195, 0x9196, 0x9197, 0x9198, 0x9199, /* 0x60 */
- 0x919C, 0x919D, 0x919E, 0x919F, 0x91A0, 0x91A1, 0x91A4, 0x91A5, /* 0x60 */
- 0x91A6, 0x91A7, 0x91A8, 0x91A9, 0x91AB, 0x91AC, 0x91B0, 0x91B1, /* 0x70 */
- 0x91B2, 0x91B3, 0x91B6, 0x91B7, 0x91B8, 0x91B9, 0x91BB, 0, /* 0x70 */
- 0x91BC, 0x91BD, 0x91BE, 0x91BF, 0x91C0, 0x91C1, 0x91C2, 0x91C3, /* 0x80 */
- 0x91C4, 0x91C5, 0x91C6, 0x91C8, 0x91CB, 0x91D0, 0x91D2, 0x91D3, /* 0x80 */
- 0x91D4, 0x91D5, 0x91D6, 0x91D7, 0x91D8, 0x91D9, 0x91DA, 0x91DB, /* 0x90 */
- 0x91DD, 0x91DE, 0x91DF, 0x91E0, 0x91E1, 0x91E2, 0x91E3, 0x91E4, /* 0x90 */
- 0x91E5, 0x5E37, 0x5E44, 0x5E54, 0x5E5B, 0x5E5E, 0x5E61, 0x5C8C, /* 0xA0 */
- 0x5C7A, 0x5C8D, 0x5C90, 0x5C96, 0x5C88, 0x5C98, 0x5C99, 0x5C91, /* 0xA0 */
- 0x5C9A, 0x5C9C, 0x5CB5, 0x5CA2, 0x5CBD, 0x5CAC, 0x5CAB, 0x5CB1, /* 0xB0 */
- 0x5CA3, 0x5CC1, 0x5CB7, 0x5CC4, 0x5CD2, 0x5CE4, 0x5CCB, 0x5CE5, /* 0xB0 */
- 0x5D02, 0x5D03, 0x5D27, 0x5D26, 0x5D2E, 0x5D24, 0x5D1E, 0x5D06, /* 0xC0 */
- 0x5D1B, 0x5D58, 0x5D3E, 0x5D34, 0x5D3D, 0x5D6C, 0x5D5B, 0x5D6F, /* 0xC0 */
- 0x5D5D, 0x5D6B, 0x5D4B, 0x5D4A, 0x5D69, 0x5D74, 0x5D82, 0x5D99, /* 0xD0 */
- 0x5D9D, 0x8C73, 0x5DB7, 0x5DC5, 0x5F73, 0x5F77, 0x5F82, 0x5F87, /* 0xD0 */
- 0x5F89, 0x5F8C, 0x5F95, 0x5F99, 0x5F9C, 0x5FA8, 0x5FAD, 0x5FB5, /* 0xE0 */
- 0x5FBC, 0x8862, 0x5F61, 0x72AD, 0x72B0, 0x72B4, 0x72B7, 0x72B8, /* 0xE0 */
- 0x72C3, 0x72C1, 0x72CE, 0x72CD, 0x72D2, 0x72E8, 0x72EF, 0x72E9, /* 0xF0 */
- 0x72F2, 0x72F4, 0x72F7, 0x7301, 0x72F3, 0x7303, 0x72FA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_E2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x91E6, 0x91E7, 0x91E8, 0x91E9, 0x91EA, 0x91EB, 0x91EC, 0x91ED, /* 0x40 */
- 0x91EE, 0x91EF, 0x91F0, 0x91F1, 0x91F2, 0x91F3, 0x91F4, 0x91F5, /* 0x40 */
- 0x91F6, 0x91F7, 0x91F8, 0x91F9, 0x91FA, 0x91FB, 0x91FC, 0x91FD, /* 0x50 */
- 0x91FE, 0x91FF, 0x9200, 0x9201, 0x9202, 0x9203, 0x9204, 0x9205, /* 0x50 */
- 0x9206, 0x9207, 0x9208, 0x9209, 0x920A, 0x920B, 0x920C, 0x920D, /* 0x60 */
- 0x920E, 0x920F, 0x9210, 0x9211, 0x9212, 0x9213, 0x9214, 0x9215, /* 0x60 */
- 0x9216, 0x9217, 0x9218, 0x9219, 0x921A, 0x921B, 0x921C, 0x921D, /* 0x70 */
- 0x921E, 0x921F, 0x9220, 0x9221, 0x9222, 0x9223, 0x9224, 0, /* 0x70 */
- 0x9225, 0x9226, 0x9227, 0x9228, 0x9229, 0x922A, 0x922B, 0x922C, /* 0x80 */
- 0x922D, 0x922E, 0x922F, 0x9230, 0x9231, 0x9232, 0x9233, 0x9234, /* 0x80 */
- 0x9235, 0x9236, 0x9237, 0x9238, 0x9239, 0x923A, 0x923B, 0x923C, /* 0x90 */
- 0x923D, 0x923E, 0x923F, 0x9240, 0x9241, 0x9242, 0x9243, 0x9244, /* 0x90 */
- 0x9245, 0x72FB, 0x7317, 0x7313, 0x7321, 0x730A, 0x731E, 0x731D, /* 0xA0 */
- 0x7315, 0x7322, 0x7339, 0x7325, 0x732C, 0x7338, 0x7331, 0x7350, /* 0xA0 */
- 0x734D, 0x7357, 0x7360, 0x736C, 0x736F, 0x737E, 0x821B, 0x5925, /* 0xB0 */
- 0x98E7, 0x5924, 0x5902, 0x9963, 0x9967, 0x9968, 0x9969, 0x996A, /* 0xB0 */
- 0x996B, 0x996C, 0x9974, 0x9977, 0x997D, 0x9980, 0x9984, 0x9987, /* 0xC0 */
- 0x998A, 0x998D, 0x9990, 0x9991, 0x9993, 0x9994, 0x9995, 0x5E80, /* 0xC0 */
- 0x5E91, 0x5E8B, 0x5E96, 0x5EA5, 0x5EA0, 0x5EB9, 0x5EB5, 0x5EBE, /* 0xD0 */
- 0x5EB3, 0x8D53, 0x5ED2, 0x5ED1, 0x5EDB, 0x5EE8, 0x5EEA, 0x81BA, /* 0xD0 */
- 0x5FC4, 0x5FC9, 0x5FD6, 0x5FCF, 0x6003, 0x5FEE, 0x6004, 0x5FE1, /* 0xE0 */
- 0x5FE4, 0x5FFE, 0x6005, 0x6006, 0x5FEA, 0x5FED, 0x5FF8, 0x6019, /* 0xE0 */
- 0x6035, 0x6026, 0x601B, 0x600F, 0x600D, 0x6029, 0x602B, 0x600A, /* 0xF0 */
- 0x603F, 0x6021, 0x6078, 0x6079, 0x607B, 0x607A, 0x6042 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_E3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9246, 0x9247, 0x9248, 0x9249, 0x924A, 0x924B, 0x924C, 0x924D, /* 0x40 */
- 0x924E, 0x924F, 0x9250, 0x9251, 0x9252, 0x9253, 0x9254, 0x9255, /* 0x40 */
- 0x9256, 0x9257, 0x9258, 0x9259, 0x925A, 0x925B, 0x925C, 0x925D, /* 0x50 */
- 0x925E, 0x925F, 0x9260, 0x9261, 0x9262, 0x9263, 0x9264, 0x9265, /* 0x50 */
- 0x9266, 0x9267, 0x9268, 0x9269, 0x926A, 0x926B, 0x926C, 0x926D, /* 0x60 */
- 0x926E, 0x926F, 0x9270, 0x9271, 0x9272, 0x9273, 0x9275, 0x9276, /* 0x60 */
- 0x9277, 0x9278, 0x9279, 0x927A, 0x927B, 0x927C, 0x927D, 0x927E, /* 0x70 */
- 0x927F, 0x9280, 0x9281, 0x9282, 0x9283, 0x9284, 0x9285, 0, /* 0x70 */
- 0x9286, 0x9287, 0x9288, 0x9289, 0x928A, 0x928B, 0x928C, 0x928D, /* 0x80 */
- 0x928F, 0x9290, 0x9291, 0x9292, 0x9293, 0x9294, 0x9295, 0x9296, /* 0x80 */
- 0x9297, 0x9298, 0x9299, 0x929A, 0x929B, 0x929C, 0x929D, 0x929E, /* 0x90 */
- 0x929F, 0x92A0, 0x92A1, 0x92A2, 0x92A3, 0x92A4, 0x92A5, 0x92A6, /* 0x90 */
- 0x92A7, 0x606A, 0x607D, 0x6096, 0x609A, 0x60AD, 0x609D, 0x6083, /* 0xA0 */
- 0x6092, 0x608C, 0x609B, 0x60EC, 0x60BB, 0x60B1, 0x60DD, 0x60D8, /* 0xA0 */
- 0x60C6, 0x60DA, 0x60B4, 0x6120, 0x6126, 0x6115, 0x6123, 0x60F4, /* 0xB0 */
- 0x6100, 0x610E, 0x612B, 0x614A, 0x6175, 0x61AC, 0x6194, 0x61A7, /* 0xB0 */
- 0x61B7, 0x61D4, 0x61F5, 0x5FDD, 0x96B3, 0x95E9, 0x95EB, 0x95F1, /* 0xC0 */
- 0x95F3, 0x95F5, 0x95F6, 0x95FC, 0x95FE, 0x9603, 0x9604, 0x9606, /* 0xC0 */
- 0x9608, 0x960A, 0x960B, 0x960C, 0x960D, 0x960F, 0x9612, 0x9615, /* 0xD0 */
- 0x9616, 0x9617, 0x9619, 0x961A, 0x4E2C, 0x723F, 0x6215, 0x6C35, /* 0xD0 */
- 0x6C54, 0x6C5C, 0x6C4A, 0x6CA3, 0x6C85, 0x6C90, 0x6C94, 0x6C8C, /* 0xE0 */
- 0x6C68, 0x6C69, 0x6C74, 0x6C76, 0x6C86, 0x6CA9, 0x6CD0, 0x6CD4, /* 0xE0 */
- 0x6CAD, 0x6CF7, 0x6CF8, 0x6CF1, 0x6CD7, 0x6CB2, 0x6CE0, 0x6CD6, /* 0xF0 */
- 0x6CFA, 0x6CEB, 0x6CEE, 0x6CB1, 0x6CD3, 0x6CEF, 0x6CFE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_E4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x92A8, 0x92A9, 0x92AA, 0x92AB, 0x92AC, 0x92AD, 0x92AF, 0x92B0, /* 0x40 */
- 0x92B1, 0x92B2, 0x92B3, 0x92B4, 0x92B5, 0x92B6, 0x92B7, 0x92B8, /* 0x40 */
- 0x92B9, 0x92BA, 0x92BB, 0x92BC, 0x92BD, 0x92BE, 0x92BF, 0x92C0, /* 0x50 */
- 0x92C1, 0x92C2, 0x92C3, 0x92C4, 0x92C5, 0x92C6, 0x92C7, 0x92C9, /* 0x50 */
- 0x92CA, 0x92CB, 0x92CC, 0x92CD, 0x92CE, 0x92CF, 0x92D0, 0x92D1, /* 0x60 */
- 0x92D2, 0x92D3, 0x92D4, 0x92D5, 0x92D6, 0x92D7, 0x92D8, 0x92D9, /* 0x60 */
- 0x92DA, 0x92DB, 0x92DC, 0x92DD, 0x92DE, 0x92DF, 0x92E0, 0x92E1, /* 0x70 */
- 0x92E2, 0x92E3, 0x92E4, 0x92E5, 0x92E6, 0x92E7, 0x92E8, 0, /* 0x70 */
- 0x92E9, 0x92EA, 0x92EB, 0x92EC, 0x92ED, 0x92EE, 0x92EF, 0x92F0, /* 0x80 */
- 0x92F1, 0x92F2, 0x92F3, 0x92F4, 0x92F5, 0x92F6, 0x92F7, 0x92F8, /* 0x80 */
- 0x92F9, 0x92FA, 0x92FB, 0x92FC, 0x92FD, 0x92FE, 0x92FF, 0x9300, /* 0x90 */
- 0x9301, 0x9302, 0x9303, 0x9304, 0x9305, 0x9306, 0x9307, 0x9308, /* 0x90 */
- 0x9309, 0x6D39, 0x6D27, 0x6D0C, 0x6D43, 0x6D48, 0x6D07, 0x6D04, /* 0xA0 */
- 0x6D19, 0x6D0E, 0x6D2B, 0x6D4D, 0x6D2E, 0x6D35, 0x6D1A, 0x6D4F, /* 0xA0 */
- 0x6D52, 0x6D54, 0x6D33, 0x6D91, 0x6D6F, 0x6D9E, 0x6DA0, 0x6D5E, /* 0xB0 */
- 0x6D93, 0x6D94, 0x6D5C, 0x6D60, 0x6D7C, 0x6D63, 0x6E1A, 0x6DC7, /* 0xB0 */
- 0x6DC5, 0x6DDE, 0x6E0E, 0x6DBF, 0x6DE0, 0x6E11, 0x6DE6, 0x6DDD, /* 0xC0 */
- 0x6DD9, 0x6E16, 0x6DAB, 0x6E0C, 0x6DAE, 0x6E2B, 0x6E6E, 0x6E4E, /* 0xC0 */
- 0x6E6B, 0x6EB2, 0x6E5F, 0x6E86, 0x6E53, 0x6E54, 0x6E32, 0x6E25, /* 0xD0 */
- 0x6E44, 0x6EDF, 0x6EB1, 0x6E98, 0x6EE0, 0x6F2D, 0x6EE2, 0x6EA5, /* 0xD0 */
- 0x6EA7, 0x6EBD, 0x6EBB, 0x6EB7, 0x6ED7, 0x6EB4, 0x6ECF, 0x6E8F, /* 0xE0 */
- 0x6EC2, 0x6E9F, 0x6F62, 0x6F46, 0x6F47, 0x6F24, 0x6F15, 0x6EF9, /* 0xE0 */
- 0x6F2F, 0x6F36, 0x6F4B, 0x6F74, 0x6F2A, 0x6F09, 0x6F29, 0x6F89, /* 0xF0 */
- 0x6F8D, 0x6F8C, 0x6F78, 0x6F72, 0x6F7C, 0x6F7A, 0x6FD1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_E5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x930A, 0x930B, 0x930C, 0x930D, 0x930E, 0x930F, 0x9310, 0x9311, /* 0x40 */
- 0x9312, 0x9313, 0x9314, 0x9315, 0x9316, 0x9317, 0x9318, 0x9319, /* 0x40 */
- 0x931A, 0x931B, 0x931C, 0x931D, 0x931E, 0x931F, 0x9320, 0x9321, /* 0x50 */
- 0x9322, 0x9323, 0x9324, 0x9325, 0x9326, 0x9327, 0x9328, 0x9329, /* 0x50 */
- 0x932A, 0x932B, 0x932C, 0x932D, 0x932E, 0x932F, 0x9330, 0x9331, /* 0x60 */
- 0x9332, 0x9333, 0x9334, 0x9335, 0x9336, 0x9337, 0x9338, 0x9339, /* 0x60 */
- 0x933A, 0x933B, 0x933C, 0x933D, 0x933F, 0x9340, 0x9341, 0x9342, /* 0x70 */
- 0x9343, 0x9344, 0x9345, 0x9346, 0x9347, 0x9348, 0x9349, 0, /* 0x70 */
- 0x934A, 0x934B, 0x934C, 0x934D, 0x934E, 0x934F, 0x9350, 0x9351, /* 0x80 */
- 0x9352, 0x9353, 0x9354, 0x9355, 0x9356, 0x9357, 0x9358, 0x9359, /* 0x80 */
- 0x935A, 0x935B, 0x935C, 0x935D, 0x935E, 0x935F, 0x9360, 0x9361, /* 0x90 */
- 0x9362, 0x9363, 0x9364, 0x9365, 0x9366, 0x9367, 0x9368, 0x9369, /* 0x90 */
- 0x936B, 0x6FC9, 0x6FA7, 0x6FB9, 0x6FB6, 0x6FC2, 0x6FE1, 0x6FEE, /* 0xA0 */
- 0x6FDE, 0x6FE0, 0x6FEF, 0x701A, 0x7023, 0x701B, 0x7039, 0x7035, /* 0xA0 */
- 0x704F, 0x705E, 0x5B80, 0x5B84, 0x5B95, 0x5B93, 0x5BA5, 0x5BB8, /* 0xB0 */
- 0x752F, 0x9A9E, 0x6434, 0x5BE4, 0x5BEE, 0x8930, 0x5BF0, 0x8E47, /* 0xB0 */
- 0x8B07, 0x8FB6, 0x8FD3, 0x8FD5, 0x8FE5, 0x8FEE, 0x8FE4, 0x8FE9, /* 0xC0 */
- 0x8FE6, 0x8FF3, 0x8FE8, 0x9005, 0x9004, 0x900B, 0x9026, 0x9011, /* 0xC0 */
- 0x900D, 0x9016, 0x9021, 0x9035, 0x9036, 0x902D, 0x902F, 0x9044, /* 0xD0 */
- 0x9051, 0x9052, 0x9050, 0x9068, 0x9058, 0x9062, 0x905B, 0x66B9, /* 0xD0 */
- 0x9074, 0x907D, 0x9082, 0x9088, 0x9083, 0x908B, 0x5F50, 0x5F57, /* 0xE0 */
- 0x5F56, 0x5F58, 0x5C3B, 0x54AB, 0x5C50, 0x5C59, 0x5B71, 0x5C63, /* 0xE0 */
- 0x5C66, 0x7FBC, 0x5F2A, 0x5F29, 0x5F2D, 0x8274, 0x5F3C, 0x9B3B, /* 0xF0 */
- 0x5C6E, 0x5981, 0x5983, 0x598D, 0x59A9, 0x59AA, 0x59A3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_E6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x936C, 0x936D, 0x936E, 0x936F, 0x9370, 0x9371, 0x9372, 0x9373, /* 0x40 */
- 0x9374, 0x9375, 0x9376, 0x9377, 0x9378, 0x9379, 0x937A, 0x937B, /* 0x40 */
- 0x937C, 0x937D, 0x937E, 0x937F, 0x9380, 0x9381, 0x9382, 0x9383, /* 0x50 */
- 0x9384, 0x9385, 0x9386, 0x9387, 0x9388, 0x9389, 0x938A, 0x938B, /* 0x50 */
- 0x938C, 0x938D, 0x938E, 0x9390, 0x9391, 0x9392, 0x9393, 0x9394, /* 0x60 */
- 0x9395, 0x9396, 0x9397, 0x9398, 0x9399, 0x939A, 0x939B, 0x939C, /* 0x60 */
- 0x939D, 0x939E, 0x939F, 0x93A0, 0x93A1, 0x93A2, 0x93A3, 0x93A4, /* 0x70 */
- 0x93A5, 0x93A6, 0x93A7, 0x93A8, 0x93A9, 0x93AA, 0x93AB, 0, /* 0x70 */
- 0x93AC, 0x93AD, 0x93AE, 0x93AF, 0x93B0, 0x93B1, 0x93B2, 0x93B3, /* 0x80 */
- 0x93B4, 0x93B5, 0x93B6, 0x93B7, 0x93B8, 0x93B9, 0x93BA, 0x93BB, /* 0x80 */
- 0x93BC, 0x93BD, 0x93BE, 0x93BF, 0x93C0, 0x93C1, 0x93C2, 0x93C3, /* 0x90 */
- 0x93C4, 0x93C5, 0x93C6, 0x93C7, 0x93C8, 0x93C9, 0x93CB, 0x93CC, /* 0x90 */
- 0x93CD, 0x5997, 0x59CA, 0x59AB, 0x599E, 0x59A4, 0x59D2, 0x59B2, /* 0xA0 */
- 0x59AF, 0x59D7, 0x59BE, 0x5A05, 0x5A06, 0x59DD, 0x5A08, 0x59E3, /* 0xA0 */
- 0x59D8, 0x59F9, 0x5A0C, 0x5A09, 0x5A32, 0x5A34, 0x5A11, 0x5A23, /* 0xB0 */
- 0x5A13, 0x5A40, 0x5A67, 0x5A4A, 0x5A55, 0x5A3C, 0x5A62, 0x5A75, /* 0xB0 */
- 0x80EC, 0x5AAA, 0x5A9B, 0x5A77, 0x5A7A, 0x5ABE, 0x5AEB, 0x5AB2, /* 0xC0 */
- 0x5AD2, 0x5AD4, 0x5AB8, 0x5AE0, 0x5AE3, 0x5AF1, 0x5AD6, 0x5AE6, /* 0xC0 */
- 0x5AD8, 0x5ADC, 0x5B09, 0x5B17, 0x5B16, 0x5B32, 0x5B37, 0x5B40, /* 0xD0 */
- 0x5C15, 0x5C1C, 0x5B5A, 0x5B65, 0x5B73, 0x5B51, 0x5B53, 0x5B62, /* 0xD0 */
- 0x9A75, 0x9A77, 0x9A78, 0x9A7A, 0x9A7F, 0x9A7D, 0x9A80, 0x9A81, /* 0xE0 */
- 0x9A85, 0x9A88, 0x9A8A, 0x9A90, 0x9A92, 0x9A93, 0x9A96, 0x9A98, /* 0xE0 */
- 0x9A9B, 0x9A9C, 0x9A9D, 0x9A9F, 0x9AA0, 0x9AA2, 0x9AA3, 0x9AA5, /* 0xF0 */
- 0x9AA7, 0x7E9F, 0x7EA1, 0x7EA3, 0x7EA5, 0x7EA8, 0x7EA9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_E7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x93CE, 0x93CF, 0x93D0, 0x93D1, 0x93D2, 0x93D3, 0x93D4, 0x93D5, /* 0x40 */
- 0x93D7, 0x93D8, 0x93D9, 0x93DA, 0x93DB, 0x93DC, 0x93DD, 0x93DE, /* 0x40 */
- 0x93DF, 0x93E0, 0x93E1, 0x93E2, 0x93E3, 0x93E4, 0x93E5, 0x93E6, /* 0x50 */
- 0x93E7, 0x93E8, 0x93E9, 0x93EA, 0x93EB, 0x93EC, 0x93ED, 0x93EE, /* 0x50 */
- 0x93EF, 0x93F0, 0x93F1, 0x93F2, 0x93F3, 0x93F4, 0x93F5, 0x93F6, /* 0x60 */
- 0x93F7, 0x93F8, 0x93F9, 0x93FA, 0x93FB, 0x93FC, 0x93FD, 0x93FE, /* 0x60 */
- 0x93FF, 0x9400, 0x9401, 0x9402, 0x9403, 0x9404, 0x9405, 0x9406, /* 0x70 */
- 0x9407, 0x9408, 0x9409, 0x940A, 0x940B, 0x940C, 0x940D, 0, /* 0x70 */
- 0x940E, 0x940F, 0x9410, 0x9411, 0x9412, 0x9413, 0x9414, 0x9415, /* 0x80 */
- 0x9416, 0x9417, 0x9418, 0x9419, 0x941A, 0x941B, 0x941C, 0x941D, /* 0x80 */
- 0x941E, 0x941F, 0x9420, 0x9421, 0x9422, 0x9423, 0x9424, 0x9425, /* 0x90 */
- 0x9426, 0x9427, 0x9428, 0x9429, 0x942A, 0x942B, 0x942C, 0x942D, /* 0x90 */
- 0x942E, 0x7EAD, 0x7EB0, 0x7EBE, 0x7EC0, 0x7EC1, 0x7EC2, 0x7EC9, /* 0xA0 */
- 0x7ECB, 0x7ECC, 0x7ED0, 0x7ED4, 0x7ED7, 0x7EDB, 0x7EE0, 0x7EE1, /* 0xA0 */
- 0x7EE8, 0x7EEB, 0x7EEE, 0x7EEF, 0x7EF1, 0x7EF2, 0x7F0D, 0x7EF6, /* 0xB0 */
- 0x7EFA, 0x7EFB, 0x7EFE, 0x7F01, 0x7F02, 0x7F03, 0x7F07, 0x7F08, /* 0xB0 */
- 0x7F0B, 0x7F0C, 0x7F0F, 0x7F11, 0x7F12, 0x7F17, 0x7F19, 0x7F1C, /* 0xC0 */
- 0x7F1B, 0x7F1F, 0x7F21, 0x7F22, 0x7F23, 0x7F24, 0x7F25, 0x7F26, /* 0xC0 */
- 0x7F27, 0x7F2A, 0x7F2B, 0x7F2C, 0x7F2D, 0x7F2F, 0x7F30, 0x7F31, /* 0xD0 */
- 0x7F32, 0x7F33, 0x7F35, 0x5E7A, 0x757F, 0x5DDB, 0x753E, 0x9095, /* 0xD0 */
- 0x738E, 0x7391, 0x73AE, 0x73A2, 0x739F, 0x73CF, 0x73C2, 0x73D1, /* 0xE0 */
- 0x73B7, 0x73B3, 0x73C0, 0x73C9, 0x73C8, 0x73E5, 0x73D9, 0x987C, /* 0xE0 */
- 0x740A, 0x73E9, 0x73E7, 0x73DE, 0x73BA, 0x73F2, 0x740F, 0x742A, /* 0xF0 */
- 0x745B, 0x7426, 0x7425, 0x7428, 0x7430, 0x742E, 0x742C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_E8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x942F, 0x9430, 0x9431, 0x9432, 0x9433, 0x9434, 0x9435, 0x9436, /* 0x40 */
- 0x9437, 0x9438, 0x9439, 0x943A, 0x943B, 0x943C, 0x943D, 0x943F, /* 0x40 */
- 0x9440, 0x9441, 0x9442, 0x9443, 0x9444, 0x9445, 0x9446, 0x9447, /* 0x50 */
- 0x9448, 0x9449, 0x944A, 0x944B, 0x944C, 0x944D, 0x944E, 0x944F, /* 0x50 */
- 0x9450, 0x9451, 0x9452, 0x9453, 0x9454, 0x9455, 0x9456, 0x9457, /* 0x60 */
- 0x9458, 0x9459, 0x945A, 0x945B, 0x945C, 0x945D, 0x945E, 0x945F, /* 0x60 */
- 0x9460, 0x9461, 0x9462, 0x9463, 0x9464, 0x9465, 0x9466, 0x9467, /* 0x70 */
- 0x9468, 0x9469, 0x946A, 0x946C, 0x946D, 0x946E, 0x946F, 0, /* 0x70 */
- 0x9470, 0x9471, 0x9472, 0x9473, 0x9474, 0x9475, 0x9476, 0x9477, /* 0x80 */
- 0x9478, 0x9479, 0x947A, 0x947B, 0x947C, 0x947D, 0x947E, 0x947F, /* 0x80 */
- 0x9480, 0x9481, 0x9482, 0x9483, 0x9484, 0x9491, 0x9496, 0x9498, /* 0x90 */
- 0x94C7, 0x94CF, 0x94D3, 0x94D4, 0x94DA, 0x94E6, 0x94FB, 0x951C, /* 0x90 */
- 0x9520, 0x741B, 0x741A, 0x7441, 0x745C, 0x7457, 0x7455, 0x7459, /* 0xA0 */
- 0x7477, 0x746D, 0x747E, 0x749C, 0x748E, 0x7480, 0x7481, 0x7487, /* 0xA0 */
- 0x748B, 0x749E, 0x74A8, 0x74A9, 0x7490, 0x74A7, 0x74D2, 0x74BA, /* 0xB0 */
- 0x97EA, 0x97EB, 0x97EC, 0x674C, 0x6753, 0x675E, 0x6748, 0x6769, /* 0xB0 */
- 0x67A5, 0x6787, 0x676A, 0x6773, 0x6798, 0x67A7, 0x6775, 0x67A8, /* 0xC0 */
- 0x679E, 0x67AD, 0x678B, 0x6777, 0x677C, 0x67F0, 0x6809, 0x67D8, /* 0xC0 */
- 0x680A, 0x67E9, 0x67B0, 0x680C, 0x67D9, 0x67B5, 0x67DA, 0x67B3, /* 0xD0 */
- 0x67DD, 0x6800, 0x67C3, 0x67B8, 0x67E2, 0x680E, 0x67C1, 0x67FD, /* 0xD0 */
- 0x6832, 0x6833, 0x6860, 0x6861, 0x684E, 0x6862, 0x6844, 0x6864, /* 0xE0 */
- 0x6883, 0x681D, 0x6855, 0x6866, 0x6841, 0x6867, 0x6840, 0x683E, /* 0xE0 */
- 0x684A, 0x6849, 0x6829, 0x68B5, 0x688F, 0x6874, 0x6877, 0x6893, /* 0xF0 */
- 0x686B, 0x68C2, 0x696E, 0x68FC, 0x691F, 0x6920, 0x68F9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_E9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9527, 0x9533, 0x953D, 0x9543, 0x9548, 0x954B, 0x9555, 0x955A, /* 0x40 */
- 0x9560, 0x956E, 0x9574, 0x9575, 0x9577, 0x9578, 0x9579, 0x957A, /* 0x40 */
- 0x957B, 0x957C, 0x957D, 0x957E, 0x9580, 0x9581, 0x9582, 0x9583, /* 0x50 */
- 0x9584, 0x9585, 0x9586, 0x9587, 0x9588, 0x9589, 0x958A, 0x958B, /* 0x50 */
- 0x958C, 0x958D, 0x958E, 0x958F, 0x9590, 0x9591, 0x9592, 0x9593, /* 0x60 */
- 0x9594, 0x9595, 0x9596, 0x9597, 0x9598, 0x9599, 0x959A, 0x959B, /* 0x60 */
- 0x959C, 0x959D, 0x959E, 0x959F, 0x95A0, 0x95A1, 0x95A2, 0x95A3, /* 0x70 */
- 0x95A4, 0x95A5, 0x95A6, 0x95A7, 0x95A8, 0x95A9, 0x95AA, 0, /* 0x70 */
- 0x95AB, 0x95AC, 0x95AD, 0x95AE, 0x95AF, 0x95B0, 0x95B1, 0x95B2, /* 0x80 */
- 0x95B3, 0x95B4, 0x95B5, 0x95B6, 0x95B7, 0x95B8, 0x95B9, 0x95BA, /* 0x80 */
- 0x95BB, 0x95BC, 0x95BD, 0x95BE, 0x95BF, 0x95C0, 0x95C1, 0x95C2, /* 0x90 */
- 0x95C3, 0x95C4, 0x95C5, 0x95C6, 0x95C7, 0x95C8, 0x95C9, 0x95CA, /* 0x90 */
- 0x95CB, 0x6924, 0x68F0, 0x690B, 0x6901, 0x6957, 0x68E3, 0x6910, /* 0xA0 */
- 0x6971, 0x6939, 0x6960, 0x6942, 0x695D, 0x6984, 0x696B, 0x6980, /* 0xA0 */
- 0x6998, 0x6978, 0x6934, 0x69CC, 0x6987, 0x6988, 0x69CE, 0x6989, /* 0xB0 */
- 0x6966, 0x6963, 0x6979, 0x699B, 0x69A7, 0x69BB, 0x69AB, 0x69AD, /* 0xB0 */
- 0x69D4, 0x69B1, 0x69C1, 0x69CA, 0x69DF, 0x6995, 0x69E0, 0x698D, /* 0xC0 */
- 0x69FF, 0x6A2F, 0x69ED, 0x6A17, 0x6A18, 0x6A65, 0x69F2, 0x6A44, /* 0xC0 */
- 0x6A3E, 0x6AA0, 0x6A50, 0x6A5B, 0x6A35, 0x6A8E, 0x6A79, 0x6A3D, /* 0xD0 */
- 0x6A28, 0x6A58, 0x6A7C, 0x6A91, 0x6A90, 0x6AA9, 0x6A97, 0x6AAB, /* 0xD0 */
- 0x7337, 0x7352, 0x6B81, 0x6B82, 0x6B87, 0x6B84, 0x6B92, 0x6B93, /* 0xE0 */
- 0x6B8D, 0x6B9A, 0x6B9B, 0x6BA1, 0x6BAA, 0x8F6B, 0x8F6D, 0x8F71, /* 0xE0 */
- 0x8F72, 0x8F73, 0x8F75, 0x8F76, 0x8F78, 0x8F77, 0x8F79, 0x8F7A, /* 0xF0 */
- 0x8F7C, 0x8F7E, 0x8F81, 0x8F82, 0x8F84, 0x8F87, 0x8F8B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_EA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x95CC, 0x95CD, 0x95CE, 0x95CF, 0x95D0, 0x95D1, 0x95D2, 0x95D3, /* 0x40 */
- 0x95D4, 0x95D5, 0x95D6, 0x95D7, 0x95D8, 0x95D9, 0x95DA, 0x95DB, /* 0x40 */
- 0x95DC, 0x95DD, 0x95DE, 0x95DF, 0x95E0, 0x95E1, 0x95E2, 0x95E3, /* 0x50 */
- 0x95E4, 0x95E5, 0x95E6, 0x95E7, 0x95EC, 0x95FF, 0x9607, 0x9613, /* 0x50 */
- 0x9618, 0x961B, 0x961E, 0x9620, 0x9623, 0x9624, 0x9625, 0x9626, /* 0x60 */
- 0x9627, 0x9628, 0x9629, 0x962B, 0x962C, 0x962D, 0x962F, 0x9630, /* 0x60 */
- 0x9637, 0x9638, 0x9639, 0x963A, 0x963E, 0x9641, 0x9643, 0x964A, /* 0x70 */
- 0x964E, 0x964F, 0x9651, 0x9652, 0x9653, 0x9656, 0x9657, 0, /* 0x70 */
- 0x9658, 0x9659, 0x965A, 0x965C, 0x965D, 0x965E, 0x9660, 0x9663, /* 0x80 */
- 0x9665, 0x9666, 0x966B, 0x966D, 0x966E, 0x966F, 0x9670, 0x9671, /* 0x80 */
- 0x9673, 0x9678, 0x9679, 0x967A, 0x967B, 0x967C, 0x967D, 0x967E, /* 0x90 */
- 0x967F, 0x9680, 0x9681, 0x9682, 0x9683, 0x9684, 0x9687, 0x9689, /* 0x90 */
- 0x968A, 0x8F8D, 0x8F8E, 0x8F8F, 0x8F98, 0x8F9A, 0x8ECE, 0x620B, /* 0xA0 */
- 0x6217, 0x621B, 0x621F, 0x6222, 0x6221, 0x6225, 0x6224, 0x622C, /* 0xA0 */
- 0x81E7, 0x74EF, 0x74F4, 0x74FF, 0x750F, 0x7511, 0x7513, 0x6534, /* 0xB0 */
- 0x65EE, 0x65EF, 0x65F0, 0x660A, 0x6619, 0x6772, 0x6603, 0x6615, /* 0xB0 */
- 0x6600, 0x7085, 0x66F7, 0x661D, 0x6634, 0x6631, 0x6636, 0x6635, /* 0xC0 */
- 0x8006, 0x665F, 0x6654, 0x6641, 0x664F, 0x6656, 0x6661, 0x6657, /* 0xC0 */
- 0x6677, 0x6684, 0x668C, 0x66A7, 0x669D, 0x66BE, 0x66DB, 0x66DC, /* 0xD0 */
- 0x66E6, 0x66E9, 0x8D32, 0x8D33, 0x8D36, 0x8D3B, 0x8D3D, 0x8D40, /* 0xD0 */
- 0x8D45, 0x8D46, 0x8D48, 0x8D49, 0x8D47, 0x8D4D, 0x8D55, 0x8D59, /* 0xE0 */
- 0x89C7, 0x89CA, 0x89CB, 0x89CC, 0x89CE, 0x89CF, 0x89D0, 0x89D1, /* 0xE0 */
- 0x726E, 0x729F, 0x725D, 0x7266, 0x726F, 0x727E, 0x727F, 0x7284, /* 0xF0 */
- 0x728B, 0x728D, 0x728F, 0x7292, 0x6308, 0x6332, 0x63B0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_EB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x968C, 0x968E, 0x9691, 0x9692, 0x9693, 0x9695, 0x9696, 0x969A, /* 0x40 */
- 0x969B, 0x969D, 0x969E, 0x969F, 0x96A0, 0x96A1, 0x96A2, 0x96A3, /* 0x40 */
- 0x96A4, 0x96A5, 0x96A6, 0x96A8, 0x96A9, 0x96AA, 0x96AB, 0x96AC, /* 0x50 */
- 0x96AD, 0x96AE, 0x96AF, 0x96B1, 0x96B2, 0x96B4, 0x96B5, 0x96B7, /* 0x50 */
- 0x96B8, 0x96BA, 0x96BB, 0x96BF, 0x96C2, 0x96C3, 0x96C8, 0x96CA, /* 0x60 */
- 0x96CB, 0x96D0, 0x96D1, 0x96D3, 0x96D4, 0x96D6, 0x96D7, 0x96D8, /* 0x60 */
- 0x96D9, 0x96DA, 0x96DB, 0x96DC, 0x96DD, 0x96DE, 0x96DF, 0x96E1, /* 0x70 */
- 0x96E2, 0x96E3, 0x96E4, 0x96E5, 0x96E6, 0x96E7, 0x96EB, 0, /* 0x70 */
- 0x96EC, 0x96ED, 0x96EE, 0x96F0, 0x96F1, 0x96F2, 0x96F4, 0x96F5, /* 0x80 */
- 0x96F8, 0x96FA, 0x96FB, 0x96FC, 0x96FD, 0x96FF, 0x9702, 0x9703, /* 0x80 */
- 0x9705, 0x970A, 0x970B, 0x970C, 0x9710, 0x9711, 0x9712, 0x9714, /* 0x90 */
- 0x9715, 0x9717, 0x9718, 0x9719, 0x971A, 0x971B, 0x971D, 0x971F, /* 0x90 */
- 0x9720, 0x643F, 0x64D8, 0x8004, 0x6BEA, 0x6BF3, 0x6BFD, 0x6BF5, /* 0xA0 */
- 0x6BF9, 0x6C05, 0x6C07, 0x6C06, 0x6C0D, 0x6C15, 0x6C18, 0x6C19, /* 0xA0 */
- 0x6C1A, 0x6C21, 0x6C29, 0x6C24, 0x6C2A, 0x6C32, 0x6535, 0x6555, /* 0xB0 */
- 0x656B, 0x724D, 0x7252, 0x7256, 0x7230, 0x8662, 0x5216, 0x809F, /* 0xB0 */
- 0x809C, 0x8093, 0x80BC, 0x670A, 0x80BD, 0x80B1, 0x80AB, 0x80AD, /* 0xC0 */
- 0x80B4, 0x80B7, 0x80E7, 0x80E8, 0x80E9, 0x80EA, 0x80DB, 0x80C2, /* 0xC0 */
- 0x80C4, 0x80D9, 0x80CD, 0x80D7, 0x6710, 0x80DD, 0x80EB, 0x80F1, /* 0xD0 */
- 0x80F4, 0x80ED, 0x810D, 0x810E, 0x80F2, 0x80FC, 0x6715, 0x8112, /* 0xD0 */
- 0x8C5A, 0x8136, 0x811E, 0x812C, 0x8118, 0x8132, 0x8148, 0x814C, /* 0xE0 */
- 0x8153, 0x8174, 0x8159, 0x815A, 0x8171, 0x8160, 0x8169, 0x817C, /* 0xE0 */
- 0x817D, 0x816D, 0x8167, 0x584D, 0x5AB5, 0x8188, 0x8182, 0x8191, /* 0xF0 */
- 0x6ED5, 0x81A3, 0x81AA, 0x81CC, 0x6726, 0x81CA, 0x81BB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_EC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9721, 0x9722, 0x9723, 0x9724, 0x9725, 0x9726, 0x9727, 0x9728, /* 0x40 */
- 0x9729, 0x972B, 0x972C, 0x972E, 0x972F, 0x9731, 0x9733, 0x9734, /* 0x40 */
- 0x9735, 0x9736, 0x9737, 0x973A, 0x973B, 0x973C, 0x973D, 0x973F, /* 0x50 */
- 0x9740, 0x9741, 0x9742, 0x9743, 0x9744, 0x9745, 0x9746, 0x9747, /* 0x50 */
- 0x9748, 0x9749, 0x974A, 0x974B, 0x974C, 0x974D, 0x974E, 0x974F, /* 0x60 */
- 0x9750, 0x9751, 0x9754, 0x9755, 0x9757, 0x9758, 0x975A, 0x975C, /* 0x60 */
- 0x975D, 0x975F, 0x9763, 0x9764, 0x9766, 0x9767, 0x9768, 0x976A, /* 0x70 */
- 0x976B, 0x976C, 0x976D, 0x976E, 0x976F, 0x9770, 0x9771, 0, /* 0x70 */
- 0x9772, 0x9775, 0x9777, 0x9778, 0x9779, 0x977A, 0x977B, 0x977D, /* 0x80 */
- 0x977E, 0x977F, 0x9780, 0x9781, 0x9782, 0x9783, 0x9784, 0x9786, /* 0x80 */
- 0x9787, 0x9788, 0x9789, 0x978A, 0x978C, 0x978E, 0x978F, 0x9790, /* 0x90 */
- 0x9793, 0x9795, 0x9796, 0x9797, 0x9799, 0x979A, 0x979B, 0x979C, /* 0x90 */
- 0x979D, 0x81C1, 0x81A6, 0x6B24, 0x6B37, 0x6B39, 0x6B43, 0x6B46, /* 0xA0 */
- 0x6B59, 0x98D1, 0x98D2, 0x98D3, 0x98D5, 0x98D9, 0x98DA, 0x6BB3, /* 0xA0 */
- 0x5F40, 0x6BC2, 0x89F3, 0x6590, 0x9F51, 0x6593, 0x65BC, 0x65C6, /* 0xB0 */
- 0x65C4, 0x65C3, 0x65CC, 0x65CE, 0x65D2, 0x65D6, 0x7080, 0x709C, /* 0xB0 */
- 0x7096, 0x709D, 0x70BB, 0x70C0, 0x70B7, 0x70AB, 0x70B1, 0x70E8, /* 0xC0 */
- 0x70CA, 0x7110, 0x7113, 0x7116, 0x712F, 0x7131, 0x7173, 0x715C, /* 0xC0 */
- 0x7168, 0x7145, 0x7172, 0x714A, 0x7178, 0x717A, 0x7198, 0x71B3, /* 0xD0 */
- 0x71B5, 0x71A8, 0x71A0, 0x71E0, 0x71D4, 0x71E7, 0x71F9, 0x721D, /* 0xD0 */
- 0x7228, 0x706C, 0x7118, 0x7166, 0x71B9, 0x623E, 0x623D, 0x6243, /* 0xE0 */
- 0x6248, 0x6249, 0x793B, 0x7940, 0x7946, 0x7949, 0x795B, 0x795C, /* 0xE0 */
- 0x7953, 0x795A, 0x7962, 0x7957, 0x7960, 0x796F, 0x7967, 0x797A, /* 0xF0 */
- 0x7985, 0x798A, 0x799A, 0x79A7, 0x79B3, 0x5FD1, 0x5FD0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_ED[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x979E, 0x979F, 0x97A1, 0x97A2, 0x97A4, 0x97A5, 0x97A6, 0x97A7, /* 0x40 */
- 0x97A8, 0x97A9, 0x97AA, 0x97AC, 0x97AE, 0x97B0, 0x97B1, 0x97B3, /* 0x40 */
- 0x97B5, 0x97B6, 0x97B7, 0x97B8, 0x97B9, 0x97BA, 0x97BB, 0x97BC, /* 0x50 */
- 0x97BD, 0x97BE, 0x97BF, 0x97C0, 0x97C1, 0x97C2, 0x97C3, 0x97C4, /* 0x50 */
- 0x97C5, 0x97C6, 0x97C7, 0x97C8, 0x97C9, 0x97CA, 0x97CB, 0x97CC, /* 0x60 */
- 0x97CD, 0x97CE, 0x97CF, 0x97D0, 0x97D1, 0x97D2, 0x97D3, 0x97D4, /* 0x60 */
- 0x97D5, 0x97D6, 0x97D7, 0x97D8, 0x97D9, 0x97DA, 0x97DB, 0x97DC, /* 0x70 */
- 0x97DD, 0x97DE, 0x97DF, 0x97E0, 0x97E1, 0x97E2, 0x97E3, 0, /* 0x70 */
- 0x97E4, 0x97E5, 0x97E8, 0x97EE, 0x97EF, 0x97F0, 0x97F1, 0x97F2, /* 0x80 */
- 0x97F4, 0x97F7, 0x97F8, 0x97F9, 0x97FA, 0x97FB, 0x97FC, 0x97FD, /* 0x80 */
- 0x97FE, 0x97FF, 0x9800, 0x9801, 0x9802, 0x9803, 0x9804, 0x9805, /* 0x90 */
- 0x9806, 0x9807, 0x9808, 0x9809, 0x980A, 0x980B, 0x980C, 0x980D, /* 0x90 */
- 0x980E, 0x603C, 0x605D, 0x605A, 0x6067, 0x6041, 0x6059, 0x6063, /* 0xA0 */
- 0x60AB, 0x6106, 0x610D, 0x615D, 0x61A9, 0x619D, 0x61CB, 0x61D1, /* 0xA0 */
- 0x6206, 0x8080, 0x807F, 0x6C93, 0x6CF6, 0x6DFC, 0x77F6, 0x77F8, /* 0xB0 */
- 0x7800, 0x7809, 0x7817, 0x7818, 0x7811, 0x65AB, 0x782D, 0x781C, /* 0xB0 */
- 0x781D, 0x7839, 0x783A, 0x783B, 0x781F, 0x783C, 0x7825, 0x782C, /* 0xC0 */
- 0x7823, 0x7829, 0x784E, 0x786D, 0x7856, 0x7857, 0x7826, 0x7850, /* 0xC0 */
- 0x7847, 0x784C, 0x786A, 0x789B, 0x7893, 0x789A, 0x7887, 0x789C, /* 0xD0 */
- 0x78A1, 0x78A3, 0x78B2, 0x78B9, 0x78A5, 0x78D4, 0x78D9, 0x78C9, /* 0xD0 */
- 0x78EC, 0x78F2, 0x7905, 0x78F4, 0x7913, 0x7924, 0x791E, 0x7934, /* 0xE0 */
- 0x9F9B, 0x9EF9, 0x9EFB, 0x9EFC, 0x76F1, 0x7704, 0x770D, 0x76F9, /* 0xE0 */
- 0x7707, 0x7708, 0x771A, 0x7722, 0x7719, 0x772D, 0x7726, 0x7735, /* 0xF0 */
- 0x7738, 0x7750, 0x7751, 0x7747, 0x7743, 0x775A, 0x7768 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_EE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x980F, 0x9810, 0x9811, 0x9812, 0x9813, 0x9814, 0x9815, 0x9816, /* 0x40 */
- 0x9817, 0x9818, 0x9819, 0x981A, 0x981B, 0x981C, 0x981D, 0x981E, /* 0x40 */
- 0x981F, 0x9820, 0x9821, 0x9822, 0x9823, 0x9824, 0x9825, 0x9826, /* 0x50 */
- 0x9827, 0x9828, 0x9829, 0x982A, 0x982B, 0x982C, 0x982D, 0x982E, /* 0x50 */
- 0x982F, 0x9830, 0x9831, 0x9832, 0x9833, 0x9834, 0x9835, 0x9836, /* 0x60 */
- 0x9837, 0x9838, 0x9839, 0x983A, 0x983B, 0x983C, 0x983D, 0x983E, /* 0x60 */
- 0x983F, 0x9840, 0x9841, 0x9842, 0x9843, 0x9844, 0x9845, 0x9846, /* 0x70 */
- 0x9847, 0x9848, 0x9849, 0x984A, 0x984B, 0x984C, 0x984D, 0, /* 0x70 */
- 0x984E, 0x984F, 0x9850, 0x9851, 0x9852, 0x9853, 0x9854, 0x9855, /* 0x80 */
- 0x9856, 0x9857, 0x9858, 0x9859, 0x985A, 0x985B, 0x985C, 0x985D, /* 0x80 */
- 0x985E, 0x985F, 0x9860, 0x9861, 0x9862, 0x9863, 0x9864, 0x9865, /* 0x90 */
- 0x9866, 0x9867, 0x9868, 0x9869, 0x986A, 0x986B, 0x986C, 0x986D, /* 0x90 */
- 0x986E, 0x7762, 0x7765, 0x777F, 0x778D, 0x777D, 0x7780, 0x778C, /* 0xA0 */
- 0x7791, 0x779F, 0x77A0, 0x77B0, 0x77B5, 0x77BD, 0x753A, 0x7540, /* 0xA0 */
- 0x754E, 0x754B, 0x7548, 0x755B, 0x7572, 0x7579, 0x7583, 0x7F58, /* 0xB0 */
- 0x7F61, 0x7F5F, 0x8A48, 0x7F68, 0x7F74, 0x7F71, 0x7F79, 0x7F81, /* 0xB0 */
- 0x7F7E, 0x76CD, 0x76E5, 0x8832, 0x9485, 0x9486, 0x9487, 0x948B, /* 0xC0 */
- 0x948A, 0x948C, 0x948D, 0x948F, 0x9490, 0x9494, 0x9497, 0x9495, /* 0xC0 */
- 0x949A, 0x949B, 0x949C, 0x94A3, 0x94A4, 0x94AB, 0x94AA, 0x94AD, /* 0xD0 */
- 0x94AC, 0x94AF, 0x94B0, 0x94B2, 0x94B4, 0x94B6, 0x94B7, 0x94B8, /* 0xD0 */
- 0x94B9, 0x94BA, 0x94BC, 0x94BD, 0x94BF, 0x94C4, 0x94C8, 0x94C9, /* 0xE0 */
- 0x94CA, 0x94CB, 0x94CC, 0x94CD, 0x94CE, 0x94D0, 0x94D1, 0x94D2, /* 0xE0 */
- 0x94D5, 0x94D6, 0x94D7, 0x94D9, 0x94D8, 0x94DB, 0x94DE, 0x94DF, /* 0xF0 */
- 0x94E0, 0x94E2, 0x94E4, 0x94E5, 0x94E7, 0x94E8, 0x94EA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_EF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x986F, 0x9870, 0x9871, 0x9872, 0x9873, 0x9874, 0x988B, 0x988E, /* 0x40 */
- 0x9892, 0x9895, 0x9899, 0x98A3, 0x98A8, 0x98A9, 0x98AA, 0x98AB, /* 0x40 */
- 0x98AC, 0x98AD, 0x98AE, 0x98AF, 0x98B0, 0x98B1, 0x98B2, 0x98B3, /* 0x50 */
- 0x98B4, 0x98B5, 0x98B6, 0x98B7, 0x98B8, 0x98B9, 0x98BA, 0x98BB, /* 0x50 */
- 0x98BC, 0x98BD, 0x98BE, 0x98BF, 0x98C0, 0x98C1, 0x98C2, 0x98C3, /* 0x60 */
- 0x98C4, 0x98C5, 0x98C6, 0x98C7, 0x98C8, 0x98C9, 0x98CA, 0x98CB, /* 0x60 */
- 0x98CC, 0x98CD, 0x98CF, 0x98D0, 0x98D4, 0x98D6, 0x98D7, 0x98DB, /* 0x70 */
- 0x98DC, 0x98DD, 0x98E0, 0x98E1, 0x98E2, 0x98E3, 0x98E4, 0, /* 0x70 */
- 0x98E5, 0x98E6, 0x98E9, 0x98EA, 0x98EB, 0x98EC, 0x98ED, 0x98EE, /* 0x80 */
- 0x98EF, 0x98F0, 0x98F1, 0x98F2, 0x98F3, 0x98F4, 0x98F5, 0x98F6, /* 0x80 */
- 0x98F7, 0x98F8, 0x98F9, 0x98FA, 0x98FB, 0x98FC, 0x98FD, 0x98FE, /* 0x90 */
- 0x98FF, 0x9900, 0x9901, 0x9902, 0x9903, 0x9904, 0x9905, 0x9906, /* 0x90 */
- 0x9907, 0x94E9, 0x94EB, 0x94EE, 0x94EF, 0x94F3, 0x94F4, 0x94F5, /* 0xA0 */
- 0x94F7, 0x94F9, 0x94FC, 0x94FD, 0x94FF, 0x9503, 0x9502, 0x9506, /* 0xA0 */
- 0x9507, 0x9509, 0x950A, 0x950D, 0x950E, 0x950F, 0x9512, 0x9513, /* 0xB0 */
- 0x9514, 0x9515, 0x9516, 0x9518, 0x951B, 0x951D, 0x951E, 0x951F, /* 0xB0 */
- 0x9522, 0x952A, 0x952B, 0x9529, 0x952C, 0x9531, 0x9532, 0x9534, /* 0xC0 */
- 0x9536, 0x9537, 0x9538, 0x953C, 0x953E, 0x953F, 0x9542, 0x9535, /* 0xC0 */
- 0x9544, 0x9545, 0x9546, 0x9549, 0x954C, 0x954E, 0x954F, 0x9552, /* 0xD0 */
- 0x9553, 0x9554, 0x9556, 0x9557, 0x9558, 0x9559, 0x955B, 0x955E, /* 0xD0 */
- 0x955F, 0x955D, 0x9561, 0x9562, 0x9564, 0x9565, 0x9566, 0x9567, /* 0xE0 */
- 0x9568, 0x9569, 0x956A, 0x956B, 0x956C, 0x956F, 0x9571, 0x9572, /* 0xE0 */
- 0x9573, 0x953A, 0x77E7, 0x77EC, 0x96C9, 0x79D5, 0x79ED, 0x79E3, /* 0xF0 */
- 0x79EB, 0x7A06, 0x5D47, 0x7A03, 0x7A02, 0x7A1E, 0x7A14 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_F0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9908, 0x9909, 0x990A, 0x990B, 0x990C, 0x990E, 0x990F, 0x9911, /* 0x40 */
- 0x9912, 0x9913, 0x9914, 0x9915, 0x9916, 0x9917, 0x9918, 0x9919, /* 0x40 */
- 0x991A, 0x991B, 0x991C, 0x991D, 0x991E, 0x991F, 0x9920, 0x9921, /* 0x50 */
- 0x9922, 0x9923, 0x9924, 0x9925, 0x9926, 0x9927, 0x9928, 0x9929, /* 0x50 */
- 0x992A, 0x992B, 0x992C, 0x992D, 0x992F, 0x9930, 0x9931, 0x9932, /* 0x60 */
- 0x9933, 0x9934, 0x9935, 0x9936, 0x9937, 0x9938, 0x9939, 0x993A, /* 0x60 */
- 0x993B, 0x993C, 0x993D, 0x993E, 0x993F, 0x9940, 0x9941, 0x9942, /* 0x70 */
- 0x9943, 0x9944, 0x9945, 0x9946, 0x9947, 0x9948, 0x9949, 0, /* 0x70 */
- 0x994A, 0x994B, 0x994C, 0x994D, 0x994E, 0x994F, 0x9950, 0x9951, /* 0x80 */
- 0x9952, 0x9953, 0x9956, 0x9957, 0x9958, 0x9959, 0x995A, 0x995B, /* 0x80 */
- 0x995C, 0x995D, 0x995E, 0x995F, 0x9960, 0x9961, 0x9962, 0x9964, /* 0x90 */
- 0x9966, 0x9973, 0x9978, 0x9979, 0x997B, 0x997E, 0x9982, 0x9983, /* 0x90 */
- 0x9989, 0x7A39, 0x7A37, 0x7A51, 0x9ECF, 0x99A5, 0x7A70, 0x7688, /* 0xA0 */
- 0x768E, 0x7693, 0x7699, 0x76A4, 0x74DE, 0x74E0, 0x752C, 0x9E20, /* 0xA0 */
- 0x9E22, 0x9E28, 0x9E29, 0x9E2A, 0x9E2B, 0x9E2C, 0x9E32, 0x9E31, /* 0xB0 */
- 0x9E36, 0x9E38, 0x9E37, 0x9E39, 0x9E3A, 0x9E3E, 0x9E41, 0x9E42, /* 0xB0 */
- 0x9E44, 0x9E46, 0x9E47, 0x9E48, 0x9E49, 0x9E4B, 0x9E4C, 0x9E4E, /* 0xC0 */
- 0x9E51, 0x9E55, 0x9E57, 0x9E5A, 0x9E5B, 0x9E5C, 0x9E5E, 0x9E63, /* 0xC0 */
- 0x9E66, 0x9E67, 0x9E68, 0x9E69, 0x9E6A, 0x9E6B, 0x9E6C, 0x9E71, /* 0xD0 */
- 0x9E6D, 0x9E73, 0x7592, 0x7594, 0x7596, 0x75A0, 0x759D, 0x75AC, /* 0xD0 */
- 0x75A3, 0x75B3, 0x75B4, 0x75B8, 0x75C4, 0x75B1, 0x75B0, 0x75C3, /* 0xE0 */
- 0x75C2, 0x75D6, 0x75CD, 0x75E3, 0x75E8, 0x75E6, 0x75E4, 0x75EB, /* 0xE0 */
- 0x75E7, 0x7603, 0x75F1, 0x75FC, 0x75FF, 0x7610, 0x7600, 0x7605, /* 0xF0 */
- 0x760C, 0x7617, 0x760A, 0x7625, 0x7618, 0x7615, 0x7619 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_F1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x998C, 0x998E, 0x999A, 0x999B, 0x999C, 0x999D, 0x999E, 0x999F, /* 0x40 */
- 0x99A0, 0x99A1, 0x99A2, 0x99A3, 0x99A4, 0x99A6, 0x99A7, 0x99A9, /* 0x40 */
- 0x99AA, 0x99AB, 0x99AC, 0x99AD, 0x99AE, 0x99AF, 0x99B0, 0x99B1, /* 0x50 */
- 0x99B2, 0x99B3, 0x99B4, 0x99B5, 0x99B6, 0x99B7, 0x99B8, 0x99B9, /* 0x50 */
- 0x99BA, 0x99BB, 0x99BC, 0x99BD, 0x99BE, 0x99BF, 0x99C0, 0x99C1, /* 0x60 */
- 0x99C2, 0x99C3, 0x99C4, 0x99C5, 0x99C6, 0x99C7, 0x99C8, 0x99C9, /* 0x60 */
- 0x99CA, 0x99CB, 0x99CC, 0x99CD, 0x99CE, 0x99CF, 0x99D0, 0x99D1, /* 0x70 */
- 0x99D2, 0x99D3, 0x99D4, 0x99D5, 0x99D6, 0x99D7, 0x99D8, 0, /* 0x70 */
- 0x99D9, 0x99DA, 0x99DB, 0x99DC, 0x99DD, 0x99DE, 0x99DF, 0x99E0, /* 0x80 */
- 0x99E1, 0x99E2, 0x99E3, 0x99E4, 0x99E5, 0x99E6, 0x99E7, 0x99E8, /* 0x80 */
- 0x99E9, 0x99EA, 0x99EB, 0x99EC, 0x99ED, 0x99EE, 0x99EF, 0x99F0, /* 0x90 */
- 0x99F1, 0x99F2, 0x99F3, 0x99F4, 0x99F5, 0x99F6, 0x99F7, 0x99F8, /* 0x90 */
- 0x99F9, 0x761B, 0x763C, 0x7622, 0x7620, 0x7640, 0x762D, 0x7630, /* 0xA0 */
- 0x763F, 0x7635, 0x7643, 0x763E, 0x7633, 0x764D, 0x765E, 0x7654, /* 0xA0 */
- 0x765C, 0x7656, 0x766B, 0x766F, 0x7FCA, 0x7AE6, 0x7A78, 0x7A79, /* 0xB0 */
- 0x7A80, 0x7A86, 0x7A88, 0x7A95, 0x7AA6, 0x7AA0, 0x7AAC, 0x7AA8, /* 0xB0 */
- 0x7AAD, 0x7AB3, 0x8864, 0x8869, 0x8872, 0x887D, 0x887F, 0x8882, /* 0xC0 */
- 0x88A2, 0x88C6, 0x88B7, 0x88BC, 0x88C9, 0x88E2, 0x88CE, 0x88E3, /* 0xC0 */
- 0x88E5, 0x88F1, 0x891A, 0x88FC, 0x88E8, 0x88FE, 0x88F0, 0x8921, /* 0xD0 */
- 0x8919, 0x8913, 0x891B, 0x890A, 0x8934, 0x892B, 0x8936, 0x8941, /* 0xD0 */
- 0x8966, 0x897B, 0x758B, 0x80E5, 0x76B2, 0x76B4, 0x77DC, 0x8012, /* 0xE0 */
- 0x8014, 0x8016, 0x801C, 0x8020, 0x8022, 0x8025, 0x8026, 0x8027, /* 0xE0 */
- 0x8029, 0x8028, 0x8031, 0x800B, 0x8035, 0x8043, 0x8046, 0x804D, /* 0xF0 */
- 0x8052, 0x8069, 0x8071, 0x8983, 0x9878, 0x9880, 0x9883 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_F2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x99FA, 0x99FB, 0x99FC, 0x99FD, 0x99FE, 0x99FF, 0x9A00, 0x9A01, /* 0x40 */
- 0x9A02, 0x9A03, 0x9A04, 0x9A05, 0x9A06, 0x9A07, 0x9A08, 0x9A09, /* 0x40 */
- 0x9A0A, 0x9A0B, 0x9A0C, 0x9A0D, 0x9A0E, 0x9A0F, 0x9A10, 0x9A11, /* 0x50 */
- 0x9A12, 0x9A13, 0x9A14, 0x9A15, 0x9A16, 0x9A17, 0x9A18, 0x9A19, /* 0x50 */
- 0x9A1A, 0x9A1B, 0x9A1C, 0x9A1D, 0x9A1E, 0x9A1F, 0x9A20, 0x9A21, /* 0x60 */
- 0x9A22, 0x9A23, 0x9A24, 0x9A25, 0x9A26, 0x9A27, 0x9A28, 0x9A29, /* 0x60 */
- 0x9A2A, 0x9A2B, 0x9A2C, 0x9A2D, 0x9A2E, 0x9A2F, 0x9A30, 0x9A31, /* 0x70 */
- 0x9A32, 0x9A33, 0x9A34, 0x9A35, 0x9A36, 0x9A37, 0x9A38, 0, /* 0x70 */
- 0x9A39, 0x9A3A, 0x9A3B, 0x9A3C, 0x9A3D, 0x9A3E, 0x9A3F, 0x9A40, /* 0x80 */
- 0x9A41, 0x9A42, 0x9A43, 0x9A44, 0x9A45, 0x9A46, 0x9A47, 0x9A48, /* 0x80 */
- 0x9A49, 0x9A4A, 0x9A4B, 0x9A4C, 0x9A4D, 0x9A4E, 0x9A4F, 0x9A50, /* 0x90 */
- 0x9A51, 0x9A52, 0x9A53, 0x9A54, 0x9A55, 0x9A56, 0x9A57, 0x9A58, /* 0x90 */
- 0x9A59, 0x9889, 0x988C, 0x988D, 0x988F, 0x9894, 0x989A, 0x989B, /* 0xA0 */
- 0x989E, 0x989F, 0x98A1, 0x98A2, 0x98A5, 0x98A6, 0x864D, 0x8654, /* 0xA0 */
- 0x866C, 0x866E, 0x867F, 0x867A, 0x867C, 0x867B, 0x86A8, 0x868D, /* 0xB0 */
- 0x868B, 0x86AC, 0x869D, 0x86A7, 0x86A3, 0x86AA, 0x8693, 0x86A9, /* 0xB0 */
- 0x86B6, 0x86C4, 0x86B5, 0x86CE, 0x86B0, 0x86BA, 0x86B1, 0x86AF, /* 0xC0 */
- 0x86C9, 0x86CF, 0x86B4, 0x86E9, 0x86F1, 0x86F2, 0x86ED, 0x86F3, /* 0xC0 */
- 0x86D0, 0x8713, 0x86DE, 0x86F4, 0x86DF, 0x86D8, 0x86D1, 0x8703, /* 0xD0 */
- 0x8707, 0x86F8, 0x8708, 0x870A, 0x870D, 0x8709, 0x8723, 0x873B, /* 0xD0 */
- 0x871E, 0x8725, 0x872E, 0x871A, 0x873E, 0x8748, 0x8734, 0x8731, /* 0xE0 */
- 0x8729, 0x8737, 0x873F, 0x8782, 0x8722, 0x877D, 0x877E, 0x877B, /* 0xE0 */
- 0x8760, 0x8770, 0x874C, 0x876E, 0x878B, 0x8753, 0x8763, 0x877C, /* 0xF0 */
- 0x8764, 0x8759, 0x8765, 0x8793, 0x87AF, 0x87A8, 0x87D2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_F3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9A5A, 0x9A5B, 0x9A5C, 0x9A5D, 0x9A5E, 0x9A5F, 0x9A60, 0x9A61, /* 0x40 */
- 0x9A62, 0x9A63, 0x9A64, 0x9A65, 0x9A66, 0x9A67, 0x9A68, 0x9A69, /* 0x40 */
- 0x9A6A, 0x9A6B, 0x9A72, 0x9A83, 0x9A89, 0x9A8D, 0x9A8E, 0x9A94, /* 0x50 */
- 0x9A95, 0x9A99, 0x9AA6, 0x9AA9, 0x9AAA, 0x9AAB, 0x9AAC, 0x9AAD, /* 0x50 */
- 0x9AAE, 0x9AAF, 0x9AB2, 0x9AB3, 0x9AB4, 0x9AB5, 0x9AB9, 0x9ABB, /* 0x60 */
- 0x9ABD, 0x9ABE, 0x9ABF, 0x9AC3, 0x9AC4, 0x9AC6, 0x9AC7, 0x9AC8, /* 0x60 */
- 0x9AC9, 0x9ACA, 0x9ACD, 0x9ACE, 0x9ACF, 0x9AD0, 0x9AD2, 0x9AD4, /* 0x70 */
- 0x9AD5, 0x9AD6, 0x9AD7, 0x9AD9, 0x9ADA, 0x9ADB, 0x9ADC, 0, /* 0x70 */
- 0x9ADD, 0x9ADE, 0x9AE0, 0x9AE2, 0x9AE3, 0x9AE4, 0x9AE5, 0x9AE7, /* 0x80 */
- 0x9AE8, 0x9AE9, 0x9AEA, 0x9AEC, 0x9AEE, 0x9AF0, 0x9AF1, 0x9AF2, /* 0x80 */
- 0x9AF3, 0x9AF4, 0x9AF5, 0x9AF6, 0x9AF7, 0x9AF8, 0x9AFA, 0x9AFC, /* 0x90 */
- 0x9AFD, 0x9AFE, 0x9AFF, 0x9B00, 0x9B01, 0x9B02, 0x9B04, 0x9B05, /* 0x90 */
- 0x9B06, 0x87C6, 0x8788, 0x8785, 0x87AD, 0x8797, 0x8783, 0x87AB, /* 0xA0 */
- 0x87E5, 0x87AC, 0x87B5, 0x87B3, 0x87CB, 0x87D3, 0x87BD, 0x87D1, /* 0xA0 */
- 0x87C0, 0x87CA, 0x87DB, 0x87EA, 0x87E0, 0x87EE, 0x8816, 0x8813, /* 0xB0 */
- 0x87FE, 0x880A, 0x881B, 0x8821, 0x8839, 0x883C, 0x7F36, 0x7F42, /* 0xB0 */
- 0x7F44, 0x7F45, 0x8210, 0x7AFA, 0x7AFD, 0x7B08, 0x7B03, 0x7B04, /* 0xC0 */
- 0x7B15, 0x7B0A, 0x7B2B, 0x7B0F, 0x7B47, 0x7B38, 0x7B2A, 0x7B19, /* 0xC0 */
- 0x7B2E, 0x7B31, 0x7B20, 0x7B25, 0x7B24, 0x7B33, 0x7B3E, 0x7B1E, /* 0xD0 */
- 0x7B58, 0x7B5A, 0x7B45, 0x7B75, 0x7B4C, 0x7B5D, 0x7B60, 0x7B6E, /* 0xD0 */
- 0x7B7B, 0x7B62, 0x7B72, 0x7B71, 0x7B90, 0x7BA6, 0x7BA7, 0x7BB8, /* 0xE0 */
- 0x7BAC, 0x7B9D, 0x7BA8, 0x7B85, 0x7BAA, 0x7B9C, 0x7BA2, 0x7BAB, /* 0xE0 */
- 0x7BB4, 0x7BD1, 0x7BC1, 0x7BCC, 0x7BDD, 0x7BDA, 0x7BE5, 0x7BE6, /* 0xF0 */
- 0x7BEA, 0x7C0C, 0x7BFE, 0x7BFC, 0x7C0F, 0x7C16, 0x7C0B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_F4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9B07, 0x9B09, 0x9B0A, 0x9B0B, 0x9B0C, 0x9B0D, 0x9B0E, 0x9B10, /* 0x40 */
- 0x9B11, 0x9B12, 0x9B14, 0x9B15, 0x9B16, 0x9B17, 0x9B18, 0x9B19, /* 0x40 */
- 0x9B1A, 0x9B1B, 0x9B1C, 0x9B1D, 0x9B1E, 0x9B20, 0x9B21, 0x9B22, /* 0x50 */
- 0x9B24, 0x9B25, 0x9B26, 0x9B27, 0x9B28, 0x9B29, 0x9B2A, 0x9B2B, /* 0x50 */
- 0x9B2C, 0x9B2D, 0x9B2E, 0x9B30, 0x9B31, 0x9B33, 0x9B34, 0x9B35, /* 0x60 */
- 0x9B36, 0x9B37, 0x9B38, 0x9B39, 0x9B3A, 0x9B3D, 0x9B3E, 0x9B3F, /* 0x60 */
- 0x9B40, 0x9B46, 0x9B4A, 0x9B4B, 0x9B4C, 0x9B4E, 0x9B50, 0x9B52, /* 0x70 */
- 0x9B53, 0x9B55, 0x9B56, 0x9B57, 0x9B58, 0x9B59, 0x9B5A, 0, /* 0x70 */
- 0x9B5B, 0x9B5C, 0x9B5D, 0x9B5E, 0x9B5F, 0x9B60, 0x9B61, 0x9B62, /* 0x80 */
- 0x9B63, 0x9B64, 0x9B65, 0x9B66, 0x9B67, 0x9B68, 0x9B69, 0x9B6A, /* 0x80 */
- 0x9B6B, 0x9B6C, 0x9B6D, 0x9B6E, 0x9B6F, 0x9B70, 0x9B71, 0x9B72, /* 0x90 */
- 0x9B73, 0x9B74, 0x9B75, 0x9B76, 0x9B77, 0x9B78, 0x9B79, 0x9B7A, /* 0x90 */
- 0x9B7B, 0x7C1F, 0x7C2A, 0x7C26, 0x7C38, 0x7C41, 0x7C40, 0x81FE, /* 0xA0 */
- 0x8201, 0x8202, 0x8204, 0x81EC, 0x8844, 0x8221, 0x8222, 0x8223, /* 0xA0 */
- 0x822D, 0x822F, 0x8228, 0x822B, 0x8238, 0x823B, 0x8233, 0x8234, /* 0xB0 */
- 0x823E, 0x8244, 0x8249, 0x824B, 0x824F, 0x825A, 0x825F, 0x8268, /* 0xB0 */
- 0x887E, 0x8885, 0x8888, 0x88D8, 0x88DF, 0x895E, 0x7F9D, 0x7F9F, /* 0xC0 */
- 0x7FA7, 0x7FAF, 0x7FB0, 0x7FB2, 0x7C7C, 0x6549, 0x7C91, 0x7C9D, /* 0xC0 */
- 0x7C9C, 0x7C9E, 0x7CA2, 0x7CB2, 0x7CBC, 0x7CBD, 0x7CC1, 0x7CC7, /* 0xD0 */
- 0x7CCC, 0x7CCD, 0x7CC8, 0x7CC5, 0x7CD7, 0x7CE8, 0x826E, 0x66A8, /* 0xD0 */
- 0x7FBF, 0x7FCE, 0x7FD5, 0x7FE5, 0x7FE1, 0x7FE6, 0x7FE9, 0x7FEE, /* 0xE0 */
- 0x7FF3, 0x7CF8, 0x7D77, 0x7DA6, 0x7DAE, 0x7E47, 0x7E9B, 0x9EB8, /* 0xE0 */
- 0x9EB4, 0x8D73, 0x8D84, 0x8D94, 0x8D91, 0x8DB1, 0x8D67, 0x8D6D, /* 0xF0 */
- 0x8C47, 0x8C49, 0x914A, 0x9150, 0x914E, 0x914F, 0x9164 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_F5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9B7C, 0x9B7D, 0x9B7E, 0x9B7F, 0x9B80, 0x9B81, 0x9B82, 0x9B83, /* 0x40 */
- 0x9B84, 0x9B85, 0x9B86, 0x9B87, 0x9B88, 0x9B89, 0x9B8A, 0x9B8B, /* 0x40 */
- 0x9B8C, 0x9B8D, 0x9B8E, 0x9B8F, 0x9B90, 0x9B91, 0x9B92, 0x9B93, /* 0x50 */
- 0x9B94, 0x9B95, 0x9B96, 0x9B97, 0x9B98, 0x9B99, 0x9B9A, 0x9B9B, /* 0x50 */
- 0x9B9C, 0x9B9D, 0x9B9E, 0x9B9F, 0x9BA0, 0x9BA1, 0x9BA2, 0x9BA3, /* 0x60 */
- 0x9BA4, 0x9BA5, 0x9BA6, 0x9BA7, 0x9BA8, 0x9BA9, 0x9BAA, 0x9BAB, /* 0x60 */
- 0x9BAC, 0x9BAD, 0x9BAE, 0x9BAF, 0x9BB0, 0x9BB1, 0x9BB2, 0x9BB3, /* 0x70 */
- 0x9BB4, 0x9BB5, 0x9BB6, 0x9BB7, 0x9BB8, 0x9BB9, 0x9BBA, 0, /* 0x70 */
- 0x9BBB, 0x9BBC, 0x9BBD, 0x9BBE, 0x9BBF, 0x9BC0, 0x9BC1, 0x9BC2, /* 0x80 */
- 0x9BC3, 0x9BC4, 0x9BC5, 0x9BC6, 0x9BC7, 0x9BC8, 0x9BC9, 0x9BCA, /* 0x80 */
- 0x9BCB, 0x9BCC, 0x9BCD, 0x9BCE, 0x9BCF, 0x9BD0, 0x9BD1, 0x9BD2, /* 0x90 */
- 0x9BD3, 0x9BD4, 0x9BD5, 0x9BD6, 0x9BD7, 0x9BD8, 0x9BD9, 0x9BDA, /* 0x90 */
- 0x9BDB, 0x9162, 0x9161, 0x9170, 0x9169, 0x916F, 0x917D, 0x917E, /* 0xA0 */
- 0x9172, 0x9174, 0x9179, 0x918C, 0x9185, 0x9190, 0x918D, 0x9191, /* 0xA0 */
- 0x91A2, 0x91A3, 0x91AA, 0x91AD, 0x91AE, 0x91AF, 0x91B5, 0x91B4, /* 0xB0 */
- 0x91BA, 0x8C55, 0x9E7E, 0x8DB8, 0x8DEB, 0x8E05, 0x8E59, 0x8E69, /* 0xB0 */
- 0x8DB5, 0x8DBF, 0x8DBC, 0x8DBA, 0x8DC4, 0x8DD6, 0x8DD7, 0x8DDA, /* 0xC0 */
- 0x8DDE, 0x8DCE, 0x8DCF, 0x8DDB, 0x8DC6, 0x8DEC, 0x8DF7, 0x8DF8, /* 0xC0 */
- 0x8DE3, 0x8DF9, 0x8DFB, 0x8DE4, 0x8E09, 0x8DFD, 0x8E14, 0x8E1D, /* 0xD0 */
- 0x8E1F, 0x8E2C, 0x8E2E, 0x8E23, 0x8E2F, 0x8E3A, 0x8E40, 0x8E39, /* 0xD0 */
- 0x8E35, 0x8E3D, 0x8E31, 0x8E49, 0x8E41, 0x8E42, 0x8E51, 0x8E52, /* 0xE0 */
- 0x8E4A, 0x8E70, 0x8E76, 0x8E7C, 0x8E6F, 0x8E74, 0x8E85, 0x8E8F, /* 0xE0 */
- 0x8E94, 0x8E90, 0x8E9C, 0x8E9E, 0x8C78, 0x8C82, 0x8C8A, 0x8C85, /* 0xF0 */
- 0x8C98, 0x8C94, 0x659B, 0x89D6, 0x89DE, 0x89DA, 0x89DC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_F6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9BDC, 0x9BDD, 0x9BDE, 0x9BDF, 0x9BE0, 0x9BE1, 0x9BE2, 0x9BE3, /* 0x40 */
- 0x9BE4, 0x9BE5, 0x9BE6, 0x9BE7, 0x9BE8, 0x9BE9, 0x9BEA, 0x9BEB, /* 0x40 */
- 0x9BEC, 0x9BED, 0x9BEE, 0x9BEF, 0x9BF0, 0x9BF1, 0x9BF2, 0x9BF3, /* 0x50 */
- 0x9BF4, 0x9BF5, 0x9BF6, 0x9BF7, 0x9BF8, 0x9BF9, 0x9BFA, 0x9BFB, /* 0x50 */
- 0x9BFC, 0x9BFD, 0x9BFE, 0x9BFF, 0x9C00, 0x9C01, 0x9C02, 0x9C03, /* 0x60 */
- 0x9C04, 0x9C05, 0x9C06, 0x9C07, 0x9C08, 0x9C09, 0x9C0A, 0x9C0B, /* 0x60 */
- 0x9C0C, 0x9C0D, 0x9C0E, 0x9C0F, 0x9C10, 0x9C11, 0x9C12, 0x9C13, /* 0x70 */
- 0x9C14, 0x9C15, 0x9C16, 0x9C17, 0x9C18, 0x9C19, 0x9C1A, 0, /* 0x70 */
- 0x9C1B, 0x9C1C, 0x9C1D, 0x9C1E, 0x9C1F, 0x9C20, 0x9C21, 0x9C22, /* 0x80 */
- 0x9C23, 0x9C24, 0x9C25, 0x9C26, 0x9C27, 0x9C28, 0x9C29, 0x9C2A, /* 0x80 */
- 0x9C2B, 0x9C2C, 0x9C2D, 0x9C2E, 0x9C2F, 0x9C30, 0x9C31, 0x9C32, /* 0x90 */
- 0x9C33, 0x9C34, 0x9C35, 0x9C36, 0x9C37, 0x9C38, 0x9C39, 0x9C3A, /* 0x90 */
- 0x9C3B, 0x89E5, 0x89EB, 0x89EF, 0x8A3E, 0x8B26, 0x9753, 0x96E9, /* 0xA0 */
- 0x96F3, 0x96EF, 0x9706, 0x9701, 0x9708, 0x970F, 0x970E, 0x972A, /* 0xA0 */
- 0x972D, 0x9730, 0x973E, 0x9F80, 0x9F83, 0x9F85, 0x9F86, 0x9F87, /* 0xB0 */
- 0x9F88, 0x9F89, 0x9F8A, 0x9F8C, 0x9EFE, 0x9F0B, 0x9F0D, 0x96B9, /* 0xB0 */
- 0x96BC, 0x96BD, 0x96CE, 0x96D2, 0x77BF, 0x96E0, 0x928E, 0x92AE, /* 0xC0 */
- 0x92C8, 0x933E, 0x936A, 0x93CA, 0x938F, 0x943E, 0x946B, 0x9C7F, /* 0xC0 */
- 0x9C82, 0x9C85, 0x9C86, 0x9C87, 0x9C88, 0x7A23, 0x9C8B, 0x9C8E, /* 0xD0 */
- 0x9C90, 0x9C91, 0x9C92, 0x9C94, 0x9C95, 0x9C9A, 0x9C9B, 0x9C9E, /* 0xD0 */
- 0x9C9F, 0x9CA0, 0x9CA1, 0x9CA2, 0x9CA3, 0x9CA5, 0x9CA6, 0x9CA7, /* 0xE0 */
- 0x9CA8, 0x9CA9, 0x9CAB, 0x9CAD, 0x9CAE, 0x9CB0, 0x9CB1, 0x9CB2, /* 0xE0 */
- 0x9CB3, 0x9CB4, 0x9CB5, 0x9CB6, 0x9CB7, 0x9CBA, 0x9CBB, 0x9CBC, /* 0xF0 */
- 0x9CBD, 0x9CC4, 0x9CC5, 0x9CC6, 0x9CC7, 0x9CCA, 0x9CCB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_F7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9C3C, 0x9C3D, 0x9C3E, 0x9C3F, 0x9C40, 0x9C41, 0x9C42, 0x9C43, /* 0x40 */
- 0x9C44, 0x9C45, 0x9C46, 0x9C47, 0x9C48, 0x9C49, 0x9C4A, 0x9C4B, /* 0x40 */
- 0x9C4C, 0x9C4D, 0x9C4E, 0x9C4F, 0x9C50, 0x9C51, 0x9C52, 0x9C53, /* 0x50 */
- 0x9C54, 0x9C55, 0x9C56, 0x9C57, 0x9C58, 0x9C59, 0x9C5A, 0x9C5B, /* 0x50 */
- 0x9C5C, 0x9C5D, 0x9C5E, 0x9C5F, 0x9C60, 0x9C61, 0x9C62, 0x9C63, /* 0x60 */
- 0x9C64, 0x9C65, 0x9C66, 0x9C67, 0x9C68, 0x9C69, 0x9C6A, 0x9C6B, /* 0x60 */
- 0x9C6C, 0x9C6D, 0x9C6E, 0x9C6F, 0x9C70, 0x9C71, 0x9C72, 0x9C73, /* 0x70 */
- 0x9C74, 0x9C75, 0x9C76, 0x9C77, 0x9C78, 0x9C79, 0x9C7A, 0, /* 0x70 */
- 0x9C7B, 0x9C7D, 0x9C7E, 0x9C80, 0x9C83, 0x9C84, 0x9C89, 0x9C8A, /* 0x80 */
- 0x9C8C, 0x9C8F, 0x9C93, 0x9C96, 0x9C97, 0x9C98, 0x9C99, 0x9C9D, /* 0x80 */
- 0x9CAA, 0x9CAC, 0x9CAF, 0x9CB9, 0x9CBE, 0x9CBF, 0x9CC0, 0x9CC1, /* 0x90 */
- 0x9CC2, 0x9CC8, 0x9CC9, 0x9CD1, 0x9CD2, 0x9CDA, 0x9CDB, 0x9CE0, /* 0x90 */
- 0x9CE1, 0x9CCC, 0x9CCD, 0x9CCE, 0x9CCF, 0x9CD0, 0x9CD3, 0x9CD4, /* 0xA0 */
- 0x9CD5, 0x9CD7, 0x9CD8, 0x9CD9, 0x9CDC, 0x9CDD, 0x9CDF, 0x9CE2, /* 0xA0 */
- 0x977C, 0x9785, 0x9791, 0x9792, 0x9794, 0x97AF, 0x97AB, 0x97A3, /* 0xB0 */
- 0x97B2, 0x97B4, 0x9AB1, 0x9AB0, 0x9AB7, 0x9E58, 0x9AB6, 0x9ABA, /* 0xB0 */
- 0x9ABC, 0x9AC1, 0x9AC0, 0x9AC5, 0x9AC2, 0x9ACB, 0x9ACC, 0x9AD1, /* 0xC0 */
- 0x9B45, 0x9B43, 0x9B47, 0x9B49, 0x9B48, 0x9B4D, 0x9B51, 0x98E8, /* 0xC0 */
- 0x990D, 0x992E, 0x9955, 0x9954, 0x9ADF, 0x9AE1, 0x9AE6, 0x9AEF, /* 0xD0 */
- 0x9AEB, 0x9AFB, 0x9AED, 0x9AF9, 0x9B08, 0x9B0F, 0x9B13, 0x9B1F, /* 0xD0 */
- 0x9B23, 0x9EBD, 0x9EBE, 0x7E3B, 0x9E82, 0x9E87, 0x9E88, 0x9E8B, /* 0xE0 */
- 0x9E92, 0x93D6, 0x9E9D, 0x9E9F, 0x9EDB, 0x9EDC, 0x9EDD, 0x9EE0, /* 0xE0 */
- 0x9EDF, 0x9EE2, 0x9EE9, 0x9EE7, 0x9EE5, 0x9EEA, 0x9EEF, 0x9F22, /* 0xF0 */
- 0x9F2C, 0x9F2F, 0x9F39, 0x9F37, 0x9F3D, 0x9F3E, 0x9F44 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_F8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9CE3, 0x9CE4, 0x9CE5, 0x9CE6, 0x9CE7, 0x9CE8, 0x9CE9, 0x9CEA, /* 0x40 */
- 0x9CEB, 0x9CEC, 0x9CED, 0x9CEE, 0x9CEF, 0x9CF0, 0x9CF1, 0x9CF2, /* 0x40 */
- 0x9CF3, 0x9CF4, 0x9CF5, 0x9CF6, 0x9CF7, 0x9CF8, 0x9CF9, 0x9CFA, /* 0x50 */
- 0x9CFB, 0x9CFC, 0x9CFD, 0x9CFE, 0x9CFF, 0x9D00, 0x9D01, 0x9D02, /* 0x50 */
- 0x9D03, 0x9D04, 0x9D05, 0x9D06, 0x9D07, 0x9D08, 0x9D09, 0x9D0A, /* 0x60 */
- 0x9D0B, 0x9D0C, 0x9D0D, 0x9D0E, 0x9D0F, 0x9D10, 0x9D11, 0x9D12, /* 0x60 */
- 0x9D13, 0x9D14, 0x9D15, 0x9D16, 0x9D17, 0x9D18, 0x9D19, 0x9D1A, /* 0x70 */
- 0x9D1B, 0x9D1C, 0x9D1D, 0x9D1E, 0x9D1F, 0x9D20, 0x9D21, 0, /* 0x70 */
- 0x9D22, 0x9D23, 0x9D24, 0x9D25, 0x9D26, 0x9D27, 0x9D28, 0x9D29, /* 0x80 */
- 0x9D2A, 0x9D2B, 0x9D2C, 0x9D2D, 0x9D2E, 0x9D2F, 0x9D30, 0x9D31, /* 0x80 */
- 0x9D32, 0x9D33, 0x9D34, 0x9D35, 0x9D36, 0x9D37, 0x9D38, 0x9D39, /* 0x90 */
- 0x9D3A, 0x9D3B, 0x9D3C, 0x9D3D, 0x9D3E, 0x9D3F, 0x9D40, 0x9D41, /* 0x90 */
- 0x9D42 /* 0xA0 */
- /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_F9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9D43, 0x9D44, 0x9D45, 0x9D46, 0x9D47, 0x9D48, 0x9D49, 0x9D4A, /* 0x40 */
- 0x9D4B, 0x9D4C, 0x9D4D, 0x9D4E, 0x9D4F, 0x9D50, 0x9D51, 0x9D52, /* 0x40 */
- 0x9D53, 0x9D54, 0x9D55, 0x9D56, 0x9D57, 0x9D58, 0x9D59, 0x9D5A, /* 0x50 */
- 0x9D5B, 0x9D5C, 0x9D5D, 0x9D5E, 0x9D5F, 0x9D60, 0x9D61, 0x9D62, /* 0x50 */
- 0x9D63, 0x9D64, 0x9D65, 0x9D66, 0x9D67, 0x9D68, 0x9D69, 0x9D6A, /* 0x60 */
- 0x9D6B, 0x9D6C, 0x9D6D, 0x9D6E, 0x9D6F, 0x9D70, 0x9D71, 0x9D72, /* 0x60 */
- 0x9D73, 0x9D74, 0x9D75, 0x9D76, 0x9D77, 0x9D78, 0x9D79, 0x9D7A, /* 0x70 */
- 0x9D7B, 0x9D7C, 0x9D7D, 0x9D7E, 0x9D7F, 0x9D80, 0x9D81, 0, /* 0x70 */
- 0x9D82, 0x9D83, 0x9D84, 0x9D85, 0x9D86, 0x9D87, 0x9D88, 0x9D89, /* 0x80 */
- 0x9D8A, 0x9D8B, 0x9D8C, 0x9D8D, 0x9D8E, 0x9D8F, 0x9D90, 0x9D91, /* 0x80 */
- 0x9D92, 0x9D93, 0x9D94, 0x9D95, 0x9D96, 0x9D97, 0x9D98, 0x9D99, /* 0x90 */
- 0x9D9A, 0x9D9B, 0x9D9C, 0x9D9D, 0x9D9E, 0x9D9F, 0x9DA0, 0x9DA1, /* 0x90 */
- 0x9DA2 /* 0xA0 */
- /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_FA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9DA3, 0x9DA4, 0x9DA5, 0x9DA6, 0x9DA7, 0x9DA8, 0x9DA9, 0x9DAA, /* 0x40 */
- 0x9DAB, 0x9DAC, 0x9DAD, 0x9DAE, 0x9DAF, 0x9DB0, 0x9DB1, 0x9DB2, /* 0x40 */
- 0x9DB3, 0x9DB4, 0x9DB5, 0x9DB6, 0x9DB7, 0x9DB8, 0x9DB9, 0x9DBA, /* 0x50 */
- 0x9DBB, 0x9DBC, 0x9DBD, 0x9DBE, 0x9DBF, 0x9DC0, 0x9DC1, 0x9DC2, /* 0x50 */
- 0x9DC3, 0x9DC4, 0x9DC5, 0x9DC6, 0x9DC7, 0x9DC8, 0x9DC9, 0x9DCA, /* 0x60 */
- 0x9DCB, 0x9DCC, 0x9DCD, 0x9DCE, 0x9DCF, 0x9DD0, 0x9DD1, 0x9DD2, /* 0x60 */
- 0x9DD3, 0x9DD4, 0x9DD5, 0x9DD6, 0x9DD7, 0x9DD8, 0x9DD9, 0x9DDA, /* 0x70 */
- 0x9DDB, 0x9DDC, 0x9DDD, 0x9DDE, 0x9DDF, 0x9DE0, 0x9DE1, 0, /* 0x70 */
- 0x9DE2, 0x9DE3, 0x9DE4, 0x9DE5, 0x9DE6, 0x9DE7, 0x9DE8, 0x9DE9, /* 0x80 */
- 0x9DEA, 0x9DEB, 0x9DEC, 0x9DED, 0x9DEE, 0x9DEF, 0x9DF0, 0x9DF1, /* 0x80 */
- 0x9DF2, 0x9DF3, 0x9DF4, 0x9DF5, 0x9DF6, 0x9DF7, 0x9DF8, 0x9DF9, /* 0x90 */
- 0x9DFA, 0x9DFB, 0x9DFC, 0x9DFD, 0x9DFE, 0x9DFF, 0x9E00, 0x9E01, /* 0x90 */
- 0x9E02 /* 0xA0 */
- /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_FB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9E03, 0x9E04, 0x9E05, 0x9E06, 0x9E07, 0x9E08, 0x9E09, 0x9E0A, /* 0x40 */
- 0x9E0B, 0x9E0C, 0x9E0D, 0x9E0E, 0x9E0F, 0x9E10, 0x9E11, 0x9E12, /* 0x40 */
- 0x9E13, 0x9E14, 0x9E15, 0x9E16, 0x9E17, 0x9E18, 0x9E19, 0x9E1A, /* 0x50 */
- 0x9E1B, 0x9E1C, 0x9E1D, 0x9E1E, 0x9E24, 0x9E27, 0x9E2E, 0x9E30, /* 0x50 */
- 0x9E34, 0x9E3B, 0x9E3C, 0x9E40, 0x9E4D, 0x9E50, 0x9E52, 0x9E53, /* 0x60 */
- 0x9E54, 0x9E56, 0x9E59, 0x9E5D, 0x9E5F, 0x9E60, 0x9E61, 0x9E62, /* 0x60 */
- 0x9E65, 0x9E6E, 0x9E6F, 0x9E72, 0x9E74, 0x9E75, 0x9E76, 0x9E77, /* 0x70 */
- 0x9E78, 0x9E79, 0x9E7A, 0x9E7B, 0x9E7C, 0x9E7D, 0x9E80, 0, /* 0x70 */
- 0x9E81, 0x9E83, 0x9E84, 0x9E85, 0x9E86, 0x9E89, 0x9E8A, 0x9E8C, /* 0x80 */
- 0x9E8D, 0x9E8E, 0x9E8F, 0x9E90, 0x9E91, 0x9E94, 0x9E95, 0x9E96, /* 0x80 */
- 0x9E97, 0x9E98, 0x9E99, 0x9E9A, 0x9E9B, 0x9E9C, 0x9E9E, 0x9EA0, /* 0x90 */
- 0x9EA1, 0x9EA2, 0x9EA3, 0x9EA4, 0x9EA5, 0x9EA7, 0x9EA8, 0x9EA9, /* 0x90 */
- 0x9EAA /* 0xA0 */
- /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_FC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9EAB, 0x9EAC, 0x9EAD, 0x9EAE, 0x9EAF, 0x9EB0, 0x9EB1, 0x9EB2, /* 0x40 */
- 0x9EB3, 0x9EB5, 0x9EB6, 0x9EB7, 0x9EB9, 0x9EBA, 0x9EBC, 0x9EBF, /* 0x40 */
- 0x9EC0, 0x9EC1, 0x9EC2, 0x9EC3, 0x9EC5, 0x9EC6, 0x9EC7, 0x9EC8, /* 0x50 */
- 0x9ECA, 0x9ECB, 0x9ECC, 0x9ED0, 0x9ED2, 0x9ED3, 0x9ED5, 0x9ED6, /* 0x50 */
- 0x9ED7, 0x9ED9, 0x9EDA, 0x9EDE, 0x9EE1, 0x9EE3, 0x9EE4, 0x9EE6, /* 0x60 */
- 0x9EE8, 0x9EEB, 0x9EEC, 0x9EED, 0x9EEE, 0x9EF0, 0x9EF1, 0x9EF2, /* 0x60 */
- 0x9EF3, 0x9EF4, 0x9EF5, 0x9EF6, 0x9EF7, 0x9EF8, 0x9EFA, 0x9EFD, /* 0x70 */
- 0x9EFF, 0x9F00, 0x9F01, 0x9F02, 0x9F03, 0x9F04, 0x9F05, 0, /* 0x70 */
- 0x9F06, 0x9F07, 0x9F08, 0x9F09, 0x9F0A, 0x9F0C, 0x9F0F, 0x9F11, /* 0x80 */
- 0x9F12, 0x9F14, 0x9F15, 0x9F16, 0x9F18, 0x9F1A, 0x9F1B, 0x9F1C, /* 0x80 */
- 0x9F1D, 0x9F1E, 0x9F1F, 0x9F21, 0x9F23, 0x9F24, 0x9F25, 0x9F26, /* 0x90 */
- 0x9F27, 0x9F28, 0x9F29, 0x9F2A, 0x9F2B, 0x9F2D, 0x9F2E, 0x9F30, /* 0x90 */
- 0x9F31 /* 0xA0 */
- /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_FD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9F32, 0x9F33, 0x9F34, 0x9F35, 0x9F36, 0x9F38, 0x9F3A, 0x9F3C, /* 0x40 */
- 0x9F3F, 0x9F40, 0x9F41, 0x9F42, 0x9F43, 0x9F45, 0x9F46, 0x9F47, /* 0x40 */
- 0x9F48, 0x9F49, 0x9F4A, 0x9F4B, 0x9F4C, 0x9F4D, 0x9F4E, 0x9F4F, /* 0x50 */
- 0x9F52, 0x9F53, 0x9F54, 0x9F55, 0x9F56, 0x9F57, 0x9F58, 0x9F59, /* 0x50 */
- 0x9F5A, 0x9F5B, 0x9F5C, 0x9F5D, 0x9F5E, 0x9F5F, 0x9F60, 0x9F61, /* 0x60 */
- 0x9F62, 0x9F63, 0x9F64, 0x9F65, 0x9F66, 0x9F67, 0x9F68, 0x9F69, /* 0x60 */
- 0x9F6A, 0x9F6B, 0x9F6C, 0x9F6D, 0x9F6E, 0x9F6F, 0x9F70, 0x9F71, /* 0x70 */
- 0x9F72, 0x9F73, 0x9F74, 0x9F75, 0x9F76, 0x9F77, 0x9F78, 0, /* 0x70 */
- 0x9F79, 0x9F7A, 0x9F7B, 0x9F7C, 0x9F7D, 0x9F7E, 0x9F81, 0x9F82, /* 0x80 */
- 0x9F8D, 0x9F8E, 0x9F8F, 0x9F90, 0x9F91, 0x9F92, 0x9F93, 0x9F94, /* 0x80 */
- 0x9F95, 0x9F96, 0x9F97, 0x9F98, 0x9F9C, 0x9F9D, 0x9F9E, 0x9FA1, /* 0x90 */
- 0x9FA2, 0x9FA3, 0x9FA4, 0x9FA5, 0xF92C, 0xF979, 0xF995, 0xF9E7, /* 0x90 */
- 0xF9F1 /* 0xA0 */
- /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBK_FE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFA0C, 0xFA0D, 0xFA0E, 0xFA0F, 0xFA11, 0xFA13, 0xFA14, 0xFA18, /* 0x40 */
- 0xFA1F, 0xFA20, 0xFA21, 0xFA23, 0xFA24, 0xFA27, 0xFA28, 0xFA29, /* 0x40 */
- 0x2E81, 0, 0, 0, 0x2E84, 0x3473, 0x3447, 0x2E88, /* 0x50 */
- 0x2E8B, 0, 0x359E, 0x361A, 0x360E, 0x2E8C, 0x2E97, 0x396E, /* 0x50 */
- 0x3918, 0, 0x39CF, 0x39DF, 0x3A73, 0x39D0, 0, 0, /* 0x60 */
- 0x3B4E, 0x3C6E, 0x3CE0, 0x2EA7, 0, 0, 0x2EAA, 0x4056, /* 0x60 */
- 0x415F, 0x2EAE, 0x4337, 0x2EB3, 0x2EB6, 0x2EB7, 0, 0x43B1, /* 0x70 */
- 0x43AC, 0x2EBB, 0x43DD, 0x44D6, 0x4661, 0x464C, 0, 0, /* 0x70 */
- 0x4723, 0x4729, 0x477C, 0x478D, 0x2ECA, 0x4947, 0x497A, 0x497D, /* 0x80 */
- 0x4982, 0x4983, 0x4985, 0x4986, 0x499F, 0x499B, 0x49B7, 0x49B6, /* 0x80 */
- 0, 0, 0x4CA3, 0x4C9F, 0x4CA0, 0x4CA1, 0x4C77, 0x4CA2, /* 0x90 */
- 0x4D13, 0x4D14, 0x4D15, 0x4D16, 0x4D17, 0x4D18, 0x4D19, 0x4DAE /* 0x90 */
-};
diff --git a/sal/textenc/tcvtscn2.tab b/sal/textenc/tcvtscn2.tab
deleted file mode 100644
index 57945835d..000000000
--- a/sal/textenc/tcvtscn2.tab
+++ /dev/null
@@ -1,4463 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the UniCode to DBCS tables for the following */
-/* chinese simplified (China) charsets: */
-/* GB (GB2312), GBK, MS936, APPLE_CHINSIMP */
-
-/* ======================================================================= */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_00[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, /* 0x00 */
- 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, /* 0x00 */
- 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, /* 0x10 */
- 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, /* 0x10 */
- 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, /* 0x20 */
- 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, /* 0x20 */
- 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* 0x30 */
- 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, /* 0x30 */
- 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* 0x40 */
- 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, /* 0x40 */
- 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, /* 0x50 */
- 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, /* 0x50 */
- 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, /* 0x60 */
- 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, /* 0x60 */
- 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, /* 0x70 */
- 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xA1E8, 0, 0, 0xA1EC, /* 0xA0 */
- 0xA1A7, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xA1E3, 0xA1C0, 0, 0, 0, 0, 0, 0xA1A4, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xA1C1, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xA8A4, 0xA8A2, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xA8A8, 0xA8A6, 0xA8BA, 0, 0xA8AC, 0xA8AA, 0, 0, /* 0xE0 */
- 0, 0, 0xA8B0, 0xA8AE, 0, 0, 0, 0xA1C2, /* 0xF0 */
- 0, 0xA8B4, 0xA8B2, 0, 0xA8B9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_APPLECHINSIMP_00[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, /* 0x00 */
- 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, /* 0x00 */
- 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, /* 0x10 */
- 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, /* 0x10 */
- 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, /* 0x20 */
- 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, /* 0x20 */
- 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* 0x30 */
- 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, /* 0x30 */
- 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* 0x40 */
- 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, /* 0x40 */
- 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, /* 0x50 */
- 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, /* 0x50 */
- 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, /* 0x60 */
- 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, /* 0x60 */
- 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, /* 0x70 */
- 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x00A0, 0, 0xA1E9, 0xA1EA, 0xA1E8, 0xA3A4, 0, 0xA1EC, /* 0xA0 */
- 0xA1A7, 0x00FD, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xA1E3, 0xA1C0, 0, 0, 0, 0, 0, 0xA1A4, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xA1C1, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xA8A4, 0xA8A2, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xA8A8, 0xA8A6, 0xA8BA, 0, 0xA8AC, 0xA8AA, 0, 0, /* 0xE0 */
- 0, 0, 0xA8B0, 0xA8AE, 0, 0, 0, 0xA1C2, /* 0xF0 */
- 0, 0xA8B4, 0xA8B2, 0, 0xA8B9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_01[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA8A1, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0xA8A5, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xA8A7, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xA8A9, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0xA8BD, 0, 0, 0, /* 0x40 */
- 0xA8BE, 0, 0, 0, 0, 0xA8AD, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xA8B1, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xA8A3, 0, /* 0xC0 */
- 0xA8AB, 0, 0xA8AF, 0, 0xA8B3, 0, 0xA8B5, 0, /* 0xD0 */
- 0xA8B6, 0, 0xA8B7, 0, 0xA8B8 /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_02[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA8BB, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xA8C0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xA1A6, /* 0xC0 */
- 0, 0xA1A5, 0xA840, 0xA841, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xA842 /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_02[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA8BB, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xA8C0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xA1A6, /* 0xC0 */
- 0, 0xA1A5 /* 0xC0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_03[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA6A1, 0xA6A2, 0xA6A3, 0xA6A4, 0xA6A5, 0xA6A6, 0xA6A7, /* 0x90 */
- 0xA6A8, 0xA6A9, 0xA6AA, 0xA6AB, 0xA6AC, 0xA6AD, 0xA6AE, 0xA6AF, /* 0x90 */
- 0xA6B0, 0xA6B1, 0, 0xA6B2, 0xA6B3, 0xA6B4, 0xA6B5, 0xA6B6, /* 0xA0 */
- 0xA6B7, 0xA6B8, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xA6C1, 0xA6C2, 0xA6C3, 0xA6C4, 0xA6C5, 0xA6C6, 0xA6C7, /* 0xB0 */
- 0xA6C8, 0xA6C9, 0xA6CA, 0xA6CB, 0xA6CC, 0xA6CD, 0xA6CE, 0xA6CF, /* 0xB0 */
- 0xA6D0, 0xA6D1, 0, 0xA6D2, 0xA6D3, 0xA6D4, 0xA6D5, 0xA6D6, /* 0xC0 */
- 0xA6D7, 0xA6D8 /* 0xC0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_04[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA7A7, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0xA7A1, 0xA7A2, 0xA7A3, 0xA7A4, 0xA7A5, 0xA7A6, 0xA7A8, 0xA7A9, /* 0x10 */
- 0xA7AA, 0xA7AB, 0xA7AC, 0xA7AD, 0xA7AE, 0xA7AF, 0xA7B0, 0xA7B1, /* 0x10 */
- 0xA7B2, 0xA7B3, 0xA7B4, 0xA7B5, 0xA7B6, 0xA7B7, 0xA7B8, 0xA7B9, /* 0x20 */
- 0xA7BA, 0xA7BB, 0xA7BC, 0xA7BD, 0xA7BE, 0xA7BF, 0xA7C0, 0xA7C1, /* 0x20 */
- 0xA7D1, 0xA7D2, 0xA7D3, 0xA7D4, 0xA7D5, 0xA7D6, 0xA7D8, 0xA7D9, /* 0x30 */
- 0xA7DA, 0xA7DB, 0xA7DC, 0xA7DD, 0xA7DE, 0xA7DF, 0xA7E0, 0xA7E1, /* 0x30 */
- 0xA7E2, 0xA7E3, 0xA7E4, 0xA7E5, 0xA7E6, 0xA7E7, 0xA7E8, 0xA7E9, /* 0x40 */
- 0xA7EA, 0xA7EB, 0xA7EC, 0xA7ED, 0xA7EE, 0xA7EF, 0xA7F0, 0xA7F1, /* 0x40 */
- 0, 0xA7D7 /* 0x50 */
- /* 0x50 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_APPLECHINSIMP_1E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x30 */
- 0xA8BC, /* 0x30 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_20[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA95C, 0, 0, 0xA843, 0xA1AA, 0xA844, 0xA1AC, 0, /* 0x10 */
- 0xA1AE, 0xA1AF, 0, 0, 0xA1B0, 0xA1B1, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xA845, 0xA1AD, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xA1EB, 0, 0xA1E4, 0xA1E5, 0, 0xA846, 0, 0, /* 0x30 */
- 0, 0, 0, 0xA1F9, 0, 0, 0xA3FE, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x0080 /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_20[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA1AA, 0xA1AA, 0xA1AC, 0, /* 0x10 */
- 0xA1AE, 0xA1AF, 0, 0, 0xA1B0, 0xA1B1, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xA1AD, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xA1EB, 0, 0xA1E4, 0xA1E5, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xA1F9, 0, 0, 0xA3FE, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0x0080 /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_21[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA1E6, 0, 0xA847, 0, 0, /* 0x00 */
- 0, 0xA848, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xA1ED, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xA959, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xA2F1, 0xA2F2, 0xA2F3, 0xA2F4, 0xA2F5, 0xA2F6, 0xA2F7, 0xA2F8, /* 0x60 */
- 0xA2F9, 0xA2FA, 0xA2FB, 0xA2FC, 0, 0, 0, 0, /* 0x60 */
- 0xA2A1, 0xA2A2, 0xA2A3, 0xA2A4, 0xA2A5, 0xA2A6, 0xA2A7, 0xA2A8, /* 0x70 */
- 0xA2A9, 0xA2AA, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xA1FB, 0xA1FC, 0xA1FA, 0xA1FD, 0, 0, 0xA849, 0xA84A, /* 0x90 */
- 0xA84B, 0xA84C /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_21[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA1E6, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xA1ED, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xA2F1, 0xA2F2, 0xA2F3, 0xA2F4, 0xA2F5, 0xA2F6, 0xA2F7, 0xA2F8, /* 0x60 */
- 0xA2F9, 0xA2FA, 0xA2FB, 0xA2FC, 0, 0, 0, 0, /* 0x60 */
- 0xA2A1, 0xA2A2, 0xA2A3, 0xA2A4, 0xA2A5, 0xA2A6, 0xA2A7, 0xA2A8, /* 0x70 */
- 0xA2A9, 0xA2AA, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xA1FB, 0xA1FC, 0xA1FA, 0xA1FD /* 0x90 */
- /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_APPLECHINSIMP_21[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA1E6, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xA1ED, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x00FE, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xA2F1, 0xA2F2, 0xA2F3, 0xA2F4, 0xA2F5, 0xA2F6, 0xA2F7, 0xA2F8, /* 0x60 */
- 0xA2F9, 0xA2FA, 0xA2FB, 0xA2FC, 0, 0, 0, 0, /* 0x60 */
- 0xA2A1, 0xA2A2, 0xA2A3, 0xA2A4, 0xA2A5, 0xA2A6, 0xA2A7, 0xA2A8, /* 0x70 */
- 0xA2A9, 0xA2AA, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xA1FB, 0xA1FC, 0xA1FA, 0xA1FD /* 0x90 */
- /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_22[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xA1CA, 0, 0, 0, 0, 0, 0, 0xA1C7, /* 0x00 */
- 0, 0xA1C6, 0, 0, 0, 0xA84D, 0, 0, /* 0x10 */
- 0, 0, 0xA1CC, 0, 0, 0xA1D8, 0xA1DE, 0xA84E, /* 0x10 */
- 0xA1CF, 0, 0, 0xA84F, 0, 0xA1CE, 0, 0xA1C4, /* 0x20 */
- 0xA1C5, 0xA1C9, 0xA1C8, 0xA1D2, 0, 0, 0xA1D3, 0, /* 0x20 */
- 0, 0, 0, 0, 0xA1E0, 0xA1DF, 0xA1C3, 0xA1CB, /* 0x30 */
- 0, 0, 0, 0, 0, 0xA1D7, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xA1D6, 0, 0, 0, 0xA1D5, 0, 0, 0, /* 0x40 */
- 0, 0, 0xA850, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xA1D9, 0xA1D4, 0, 0, 0xA1DC, 0xA1DD, 0xA851, 0xA852, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0xA1DA, 0xA1DB, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xA892, 0, 0, /* 0x90 */
- 0, 0xA1D1, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xA1CD, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xA853, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0xA1AD /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_22[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xA1CA, 0, 0, 0, 0, 0, 0, 0xA1C7, /* 0x00 */
- 0, 0xA1C6, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0xA1CC, 0, 0, 0xA1D8, 0xA1DE, 0, /* 0x10 */
- 0xA1CF, 0, 0, 0, 0, 0xA1CE, 0, 0xA1C4, /* 0x20 */
- 0xA1C5, 0xA1C9, 0xA1C8, 0xA1D2, 0, 0, 0xA1D3, 0, /* 0x20 */
- 0, 0, 0, 0, 0xA1E0, 0xA1DF, 0xA1C3, 0xA1CB, /* 0x30 */
- 0, 0, 0, 0, 0, 0xA1D7, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xA1D6, 0, 0, 0, 0xA1D5, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xA1D9, 0xA1D4, 0, 0, 0xA1DC, 0xA1DD, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0xA1DA, 0xA1DB, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xA1D1, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xA1CD, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0xA1AD /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_23[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA1D0 /* 0x10 */
- /* 0x10 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_24[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA2D9, 0xA2DA, 0xA2DB, 0xA2DC, 0xA2DD, 0xA2DE, 0xA2DF, 0xA2E0, /* 0x60 */
- 0xA2E1, 0xA2E2, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xA2C5, 0xA2C6, 0xA2C7, 0xA2C8, /* 0x70 */
- 0xA2C9, 0xA2CA, 0xA2CB, 0xA2CC, 0xA2CD, 0xA2CE, 0xA2CF, 0xA2D0, /* 0x70 */
- 0xA2D1, 0xA2D2, 0xA2D3, 0xA2D4, 0xA2D5, 0xA2D6, 0xA2D7, 0xA2D8, /* 0x80 */
- 0xA2B1, 0xA2B2, 0xA2B3, 0xA2B4, 0xA2B5, 0xA2B6, 0xA2B7, 0xA2B8, /* 0x80 */
- 0xA2B9, 0xA2BA, 0xA2BB, 0xA2BC, 0xA2BD, 0xA2BE, 0xA2BF, 0xA2C0, /* 0x90 */
- 0xA2C1, 0xA2C2, 0xA2C3, 0xA2C4 /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_25[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA9A4, 0xA9A5, 0xA9A6, 0xA9A7, 0xA9A8, 0xA9A9, 0xA9AA, 0xA9AB, /* 0x00 */
- 0xA9AC, 0xA9AD, 0xA9AE, 0xA9AF, 0xA9B0, 0xA9B1, 0xA9B2, 0xA9B3, /* 0x00 */
- 0xA9B4, 0xA9B5, 0xA9B6, 0xA9B7, 0xA9B8, 0xA9B9, 0xA9BA, 0xA9BB, /* 0x10 */
- 0xA9BC, 0xA9BD, 0xA9BE, 0xA9BF, 0xA9C0, 0xA9C1, 0xA9C2, 0xA9C3, /* 0x10 */
- 0xA9C4, 0xA9C5, 0xA9C6, 0xA9C7, 0xA9C8, 0xA9C9, 0xA9CA, 0xA9CB, /* 0x20 */
- 0xA9CC, 0xA9CD, 0xA9CE, 0xA9CF, 0xA9D0, 0xA9D1, 0xA9D2, 0xA9D3, /* 0x20 */
- 0xA9D4, 0xA9D5, 0xA9D6, 0xA9D7, 0xA9D8, 0xA9D9, 0xA9DA, 0xA9DB, /* 0x30 */
- 0xA9DC, 0xA9DD, 0xA9DE, 0xA9DF, 0xA9E0, 0xA9E1, 0xA9E2, 0xA9E3, /* 0x30 */
- 0xA9E4, 0xA9E5, 0xA9E6, 0xA9E7, 0xA9E8, 0xA9E9, 0xA9EA, 0xA9EB, /* 0x40 */
- 0xA9EC, 0xA9ED, 0xA9EE, 0xA9EF, 0, 0, 0, 0, /* 0x40 */
- 0xA854, 0xA855, 0xA856, 0xA857, 0xA858, 0xA859, 0xA85A, 0xA85B, /* 0x50 */
- 0xA85C, 0xA85D, 0xA85E, 0xA85F, 0xA860, 0xA861, 0xA862, 0xA863, /* 0x50 */
- 0xA864, 0xA865, 0xA866, 0xA867, 0xA868, 0xA869, 0xA86A, 0xA86B, /* 0x60 */
- 0xA86C, 0xA86D, 0xA86E, 0xA86F, 0xA870, 0xA871, 0xA872, 0xA873, /* 0x60 */
- 0xA874, 0xA875, 0xA876, 0xA877, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xA878, 0xA879, 0xA87A, 0xA87B, 0xA87C, 0xA87D, 0xA87E, /* 0x80 */
- 0xA880, 0xA881, 0xA882, 0xA883, 0xA884, 0xA885, 0xA886, 0xA887, /* 0x80 */
- 0, 0, 0, 0xA888, 0xA889, 0xA88A, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xA1F6, 0xA1F5, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xA1F8, 0xA1F7, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xA88B, 0xA88C, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xA1F4, 0xA1F3, /* 0xC0 */
- 0, 0, 0, 0xA1F0, 0, 0, 0xA1F2, 0xA1F1, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xA88D, 0xA88E, 0xA88F, 0xA890 /* 0xE0 */
- /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_25[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA9A4, 0xA9A5, 0xA9A6, 0xA9A7, 0xA9A8, 0xA9A9, 0xA9AA, 0xA9AB, /* 0x00 */
- 0xA9AC, 0xA9AD, 0xA9AE, 0xA9AF, 0xA9B0, 0xA9B1, 0xA9B2, 0xA9B3, /* 0x00 */
- 0xA9B4, 0xA9B5, 0xA9B6, 0xA9B7, 0xA9B8, 0xA9B9, 0xA9BA, 0xA9BB, /* 0x10 */
- 0xA9BC, 0xA9BD, 0xA9BE, 0xA9BF, 0xA9C0, 0xA9C1, 0xA9C2, 0xA9C3, /* 0x10 */
- 0xA9C4, 0xA9C5, 0xA9C6, 0xA9C7, 0xA9C8, 0xA9C9, 0xA9CA, 0xA9CB, /* 0x20 */
- 0xA9CC, 0xA9CD, 0xA9CE, 0xA9CF, 0xA9D0, 0xA9D1, 0xA9D2, 0xA9D3, /* 0x20 */
- 0xA9D4, 0xA9D5, 0xA9D6, 0xA9D7, 0xA9D8, 0xA9D9, 0xA9DA, 0xA9DB, /* 0x30 */
- 0xA9DC, 0xA9DD, 0xA9DE, 0xA9DF, 0xA9E0, 0xA9E1, 0xA9E2, 0xA9E3, /* 0x30 */
- 0xA9E4, 0xA9E5, 0xA9E6, 0xA9E7, 0xA9E8, 0xA9E9, 0xA9EA, 0xA9EB, /* 0x40 */
- 0xA9EC, 0xA9ED, 0xA9EE, 0xA9EF, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xA1F6, 0xA1F5, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xA1F8, 0xA1F7, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xA1F4, 0xA1F3, /* 0xC0 */
- 0, 0, 0, 0xA1F0, 0, 0, 0xA1F2, 0xA1F1 /* 0xC0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_26[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA1EF, 0xA1EE, 0, /* 0x00 */
- 0, 0xA891, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xA1E2, 0, 0xA1E1 /* 0x40 */
- /* 0x40 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_26[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA1EF, 0xA1EE, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xA1E2, 0, 0xA1E1 /* 0x40 */
- /* 0x40 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_2E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFE50, 0, 0, 0xFE54, 0, 0, 0, /* 0x80 */
- 0xFE57, 0, 0, 0xFE58, 0xFE5D, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0xFE5E, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xFE6B, /* 0xA0 */
- 0, 0, 0xFE6E, 0, 0, 0, 0xFE71, 0, /* 0xA0 */
- 0, 0, 0, 0xFE73, 0, 0, 0xFE74, 0xFE75, /* 0xB0 */
- 0, 0, 0, 0xFE79, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xFE84 /* 0xC0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_30[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA1A1, 0xA1A2, 0xA1A3, 0xA1A8, 0, 0xA1A9, 0xA965, 0xA996, /* 0x00 */
- 0xA1B4, 0xA1B5, 0xA1B6, 0xA1B7, 0xA1B8, 0xA1B9, 0xA1BA, 0xA1BB, /* 0x00 */
- 0xA1BE, 0xA1BF, 0xA893, 0xA1FE, 0xA1B2, 0xA1B3, 0xA1BC, 0xA1BD, /* 0x10 */
- 0, 0, 0, 0, 0xA1AB, 0xA894, 0xA895, 0, /* 0x10 */
- 0, 0xA940, 0xA941, 0xA942, 0xA943, 0xA944, 0xA945, 0xA946, /* 0x20 */
- 0xA947, 0xA948, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xA4A1, 0xA4A2, 0xA4A3, 0xA4A4, 0xA4A5, 0xA4A6, 0xA4A7, /* 0x40 */
- 0xA4A8, 0xA4A9, 0xA4AA, 0xA4AB, 0xA4AC, 0xA4AD, 0xA4AE, 0xA4AF, /* 0x40 */
- 0xA4B0, 0xA4B1, 0xA4B2, 0xA4B3, 0xA4B4, 0xA4B5, 0xA4B6, 0xA4B7, /* 0x50 */
- 0xA4B8, 0xA4B9, 0xA4BA, 0xA4BB, 0xA4BC, 0xA4BD, 0xA4BE, 0xA4BF, /* 0x50 */
- 0xA4C0, 0xA4C1, 0xA4C2, 0xA4C3, 0xA4C4, 0xA4C5, 0xA4C6, 0xA4C7, /* 0x60 */
- 0xA4C8, 0xA4C9, 0xA4CA, 0xA4CB, 0xA4CC, 0xA4CD, 0xA4CE, 0xA4CF, /* 0x60 */
- 0xA4D0, 0xA4D1, 0xA4D2, 0xA4D3, 0xA4D4, 0xA4D5, 0xA4D6, 0xA4D7, /* 0x70 */
- 0xA4D8, 0xA4D9, 0xA4DA, 0xA4DB, 0xA4DC, 0xA4DD, 0xA4DE, 0xA4DF, /* 0x70 */
- 0xA4E0, 0xA4E1, 0xA4E2, 0xA4E3, 0xA4E4, 0xA4E5, 0xA4E6, 0xA4E7, /* 0x80 */
- 0xA4E8, 0xA4E9, 0xA4EA, 0xA4EB, 0xA4EC, 0xA4ED, 0xA4EE, 0xA4EF, /* 0x80 */
- 0xA4F0, 0xA4F1, 0xA4F2, 0xA4F3, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xA961, 0xA962, 0xA966, 0xA967, 0, /* 0x90 */
- 0, 0xA5A1, 0xA5A2, 0xA5A3, 0xA5A4, 0xA5A5, 0xA5A6, 0xA5A7, /* 0xA0 */
- 0xA5A8, 0xA5A9, 0xA5AA, 0xA5AB, 0xA5AC, 0xA5AD, 0xA5AE, 0xA5AF, /* 0xA0 */
- 0xA5B0, 0xA5B1, 0xA5B2, 0xA5B3, 0xA5B4, 0xA5B5, 0xA5B6, 0xA5B7, /* 0xB0 */
- 0xA5B8, 0xA5B9, 0xA5BA, 0xA5BB, 0xA5BC, 0xA5BD, 0xA5BE, 0xA5BF, /* 0xB0 */
- 0xA5C0, 0xA5C1, 0xA5C2, 0xA5C3, 0xA5C4, 0xA5C5, 0xA5C6, 0xA5C7, /* 0xC0 */
- 0xA5C8, 0xA5C9, 0xA5CA, 0xA5CB, 0xA5CC, 0xA5CD, 0xA5CE, 0xA5CF, /* 0xC0 */
- 0xA5D0, 0xA5D1, 0xA5D2, 0xA5D3, 0xA5D4, 0xA5D5, 0xA5D6, 0xA5D7, /* 0xD0 */
- 0xA5D8, 0xA5D9, 0xA5DA, 0xA5DB, 0xA5DC, 0xA5DD, 0xA5DE, 0xA5DF, /* 0xD0 */
- 0xA5E0, 0xA5E1, 0xA5E2, 0xA5E3, 0xA5E4, 0xA5E5, 0xA5E6, 0xA5E7, /* 0xE0 */
- 0xA5E8, 0xA5E9, 0xA5EA, 0xA5EB, 0xA5EC, 0xA5ED, 0xA5EE, 0xA5EF, /* 0xE0 */
- 0xA5F0, 0xA5F1, 0xA5F2, 0xA5F3, 0xA5F4, 0xA5F5, 0xA5F6, 0, /* 0xF0 */
- 0, 0, 0, 0xA1A4, 0xA960, 0xA963, 0xA964 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_30[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA1A1, 0xA1A2, 0xA1A3, 0xA1A8, 0, 0xA1A9, 0, 0, /* 0x00 */
- 0xA1B4, 0xA1B5, 0xA1B6, 0xA1B7, 0xA1B8, 0xA1B9, 0xA1BA, 0xA1BB, /* 0x00 */
- 0xA1BE, 0xA1BF, 0, 0xA1FE, 0xA1B2, 0xA1B3, 0xA1BC, 0xA1BD, /* 0x10 */
- 0, 0, 0, 0, 0xA1AB, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xA4A1, 0xA4A2, 0xA4A3, 0xA4A4, 0xA4A5, 0xA4A6, 0xA4A7, /* 0x40 */
- 0xA4A8, 0xA4A9, 0xA4AA, 0xA4AB, 0xA4AC, 0xA4AD, 0xA4AE, 0xA4AF, /* 0x40 */
- 0xA4B0, 0xA4B1, 0xA4B2, 0xA4B3, 0xA4B4, 0xA4B5, 0xA4B6, 0xA4B7, /* 0x50 */
- 0xA4B8, 0xA4B9, 0xA4BA, 0xA4BB, 0xA4BC, 0xA4BD, 0xA4BE, 0xA4BF, /* 0x50 */
- 0xA4C0, 0xA4C1, 0xA4C2, 0xA4C3, 0xA4C4, 0xA4C5, 0xA4C6, 0xA4C7, /* 0x60 */
- 0xA4C8, 0xA4C9, 0xA4CA, 0xA4CB, 0xA4CC, 0xA4CD, 0xA4CE, 0xA4CF, /* 0x60 */
- 0xA4D0, 0xA4D1, 0xA4D2, 0xA4D3, 0xA4D4, 0xA4D5, 0xA4D6, 0xA4D7, /* 0x70 */
- 0xA4D8, 0xA4D9, 0xA4DA, 0xA4DB, 0xA4DC, 0xA4DD, 0xA4DE, 0xA4DF, /* 0x70 */
- 0xA4E0, 0xA4E1, 0xA4E2, 0xA4E3, 0xA4E4, 0xA4E5, 0xA4E6, 0xA4E7, /* 0x80 */
- 0xA4E8, 0xA4E9, 0xA4EA, 0xA4EB, 0xA4EC, 0xA4ED, 0xA4EE, 0xA4EF, /* 0x80 */
- 0xA4F0, 0xA4F1, 0xA4F2, 0xA4F3, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xA5A1, 0xA5A2, 0xA5A3, 0xA5A4, 0xA5A5, 0xA5A6, 0xA5A7, /* 0xA0 */
- 0xA5A8, 0xA5A9, 0xA5AA, 0xA5AB, 0xA5AC, 0xA5AD, 0xA5AE, 0xA5AF, /* 0xA0 */
- 0xA5B0, 0xA5B1, 0xA5B2, 0xA5B3, 0xA5B4, 0xA5B5, 0xA5B6, 0xA5B7, /* 0xB0 */
- 0xA5B8, 0xA5B9, 0xA5BA, 0xA5BB, 0xA5BC, 0xA5BD, 0xA5BE, 0xA5BF, /* 0xB0 */
- 0xA5C0, 0xA5C1, 0xA5C2, 0xA5C3, 0xA5C4, 0xA5C5, 0xA5C6, 0xA5C7, /* 0xC0 */
- 0xA5C8, 0xA5C9, 0xA5CA, 0xA5CB, 0xA5CC, 0xA5CD, 0xA5CE, 0xA5CF, /* 0xC0 */
- 0xA5D0, 0xA5D1, 0xA5D2, 0xA5D3, 0xA5D4, 0xA5D5, 0xA5D6, 0xA5D7, /* 0xD0 */
- 0xA5D8, 0xA5D9, 0xA5DA, 0xA5DB, 0xA5DC, 0xA5DD, 0xA5DE, 0xA5DF, /* 0xD0 */
- 0xA5E0, 0xA5E1, 0xA5E2, 0xA5E3, 0xA5E4, 0xA5E5, 0xA5E6, 0xA5E7, /* 0xE0 */
- 0xA5E8, 0xA5E9, 0xA5EA, 0xA5EB, 0xA5EC, 0xA5ED, 0xA5EE, 0xA5EF, /* 0xE0 */
- 0xA5F0, 0xA5F1, 0xA5F2, 0xA5F3, 0xA5F4, 0xA5F5, 0xA5F6, 0, /* 0xF0 */
- 0, 0, 0, 0xA1A4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_31[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA8C5, 0xA8C6, 0xA8C7, /* 0x00 */
- 0xA8C8, 0xA8C9, 0xA8CA, 0xA8CB, 0xA8CC, 0xA8CD, 0xA8CE, 0xA8CF, /* 0x00 */
- 0xA8D0, 0xA8D1, 0xA8D2, 0xA8D3, 0xA8D4, 0xA8D5, 0xA8D6, 0xA8D7, /* 0x10 */
- 0xA8D8, 0xA8D9, 0xA8DA, 0xA8DB, 0xA8DC, 0xA8DD, 0xA8DE, 0xA8DF, /* 0x10 */
- 0xA8E0, 0xA8E1, 0xA8E2, 0xA8E3, 0xA8E4, 0xA8E5, 0xA8E6, 0xA8E7, /* 0x20 */
- 0xA8E8, 0xA8E9 /* 0x20 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* GB only from 32_20 to 32_29 */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_32[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA2E5, 0xA2E6, 0xA2E7, 0xA2E8, 0xA2E9, 0xA2EA, 0xA2EB, 0xA2EC, /* 0x20 */
- 0xA2ED, 0xA2EE, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xA95A, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xA949 /* 0xA0 */
- /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_33[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x80 */
- 0xA94A, 0xA94B, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xA94C, 0xA94D, 0xA94E, 0, /* 0x90 */
- 0, 0xA94F, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xA950, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xA951, 0, /* 0xC0 */
- 0, 0xA952, 0xA953, 0, 0, 0xA954 /* 0xD0 */
- /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_34[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFE56, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xFE55 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_35[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x90 */
- 0xFE5A /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_36[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xFE5C, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0xFE5B /* 0x10 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_39[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x10 */
- 0xFE60, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0xFE5F, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xFE62, /* 0xC0 */
- 0xFE65, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0xFE63 /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_3A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFE64 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_3B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x40 */
- 0xFE68 /* 0x40 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_3C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x60 */
- 0xFE69, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xFE6A /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_40[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFE6F /* 0x50 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_41[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x50 */
- 0xFE70 /* 0x50 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_43[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFE72, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xFE78, 0, 0, 0, /* 0xA0 */
- 0, 0xFE77, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xFE7A /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_44[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFE7B /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_46[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x40 */
- 0xFE7D, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xFE7C /* 0x60 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_47[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFE80, 0, 0, 0, 0, /* 0x20 */
- 0, 0xFE81, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xFE82, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xFE83 /* 0x80 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_49[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFE85, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xFE86, 0, 0, 0xFE87, 0, 0, /* 0x70 */
- 0, 0, 0xFE88, 0xFE89, 0, 0xFE8A, 0xFE8B, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xFE8D, 0, 0, 0, 0xFE8C, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xFE8F, 0xFE8E /* 0xB0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_4C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFE96, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xFE93, /* 0x90 */
- 0xFE94, 0xFE95, 0xFE97, 0xFE92 /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_4D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFE98, 0xFE99, 0xFE9A, 0xFE9B, 0xFE9C, /* 0x10 */
- 0xFE9D, 0xFE9E, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xFE9F /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_4E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD2BB, 0xB6A1, 0x8140, 0xC6DF, 0x8141, 0x8142, 0x8143, 0xCDF2, /* 0x00 */
- 0xD5C9, 0xC8FD, 0xC9CF, 0xCFC2, 0xD8A2, 0xB2BB, 0xD3EB, 0x8144, /* 0x00 */
- 0xD8A4, 0xB3F3, 0x8145, 0xD7A8, 0xC7D2, 0xD8A7, 0xCAC0, 0x8146, /* 0x10 */
- 0xC7F0, 0xB1FB, 0xD2B5, 0xB4D4, 0xB6AB, 0xCBBF, 0xD8A9, 0x8147, /* 0x10 */
- 0x8148, 0x8149, 0xB6AA, 0x814A, 0xC1BD, 0xD1CF, 0x814B, 0xC9A5, /* 0x20 */
- 0xD8AD, 0x814C, 0xB8F6, 0xD1BE, 0xE3DC, 0xD6D0, 0x814D, 0x814E, /* 0x20 */
- 0xB7E1, 0x814F, 0xB4AE, 0x8150, 0xC1D9, 0x8151, 0xD8BC, 0x8152, /* 0x30 */
- 0xCDE8, 0xB5A4, 0xCEAA, 0xD6F7, 0x8153, 0xC0F6, 0xBED9, 0xD8AF, /* 0x30 */
- 0x8154, 0x8155, 0x8156, 0xC4CB, 0x8157, 0xBEC3, 0x8158, 0xD8B1, /* 0x40 */
- 0xC3B4, 0xD2E5, 0x8159, 0xD6AE, 0xCEDA, 0xD5A7, 0xBAF5, 0xB7A6, /* 0x40 */
- 0xC0D6, 0x815A, 0xC6B9, 0xC5D2, 0xC7C7, 0x815B, 0xB9D4, 0x815C, /* 0x50 */
- 0xB3CB, 0xD2D2, 0x815D, 0x815E, 0xD8BF, 0xBEC5, 0xC6F2, 0xD2B2, /* 0x50 */
- 0xCFB0, 0xCFE7, 0x815F, 0x8160, 0x8161, 0x8162, 0xCAE9, 0x8163, /* 0x60 */
- 0x8164, 0xD8C0, 0x8165, 0x8166, 0x8167, 0x8168, 0x8169, 0x816A, /* 0x60 */
- 0xC2F2, 0xC2D2, 0x816B, 0xC8E9, 0x816C, 0x816D, 0x816E, 0x816F, /* 0x70 */
- 0x8170, 0x8171, 0x8172, 0x8173, 0x8174, 0x8175, 0xC7AC, 0x8176, /* 0x70 */
- 0x8177, 0x8178, 0x8179, 0x817A, 0x817B, 0x817C, 0xC1CB, 0x817D, /* 0x80 */
- 0xD3E8, 0xD5F9, 0x817E, 0xCAC2, 0xB6FE, 0xD8A1, 0xD3DA, 0xBFF7, /* 0x80 */
- 0x8180, 0xD4C6, 0xBBA5, 0xD8C1, 0xCEE5, 0xBEAE, 0x8181, 0x8182, /* 0x90 */
- 0xD8A8, 0x8183, 0xD1C7, 0xD0A9, 0x8184, 0x8185, 0x8186, 0xD8BD, /* 0x90 */
- 0xD9EF, 0xCDF6, 0xBFBA, 0x8187, 0xBDBB, 0xBAA5, 0xD2E0, 0xB2FA, /* 0xA0 */
- 0xBAE0, 0xC4B6, 0x8188, 0xCFED, 0xBEA9, 0xCDA4, 0xC1C1, 0x8189, /* 0xA0 */
- 0x818A, 0x818B, 0xC7D7, 0xD9F1, 0x818C, 0xD9F4, 0x818D, 0x818E, /* 0xB0 */
- 0x818F, 0x8190, 0xC8CB, 0xD8E9, 0x8191, 0x8192, 0x8193, 0xD2DA, /* 0xB0 */
- 0xCAB2, 0xC8CA, 0xD8EC, 0xD8EA, 0xD8C6, 0xBDF6, 0xC6CD, 0xB3F0, /* 0xC0 */
- 0x8194, 0xD8EB, 0xBDF1, 0xBDE9, 0x8195, 0xC8D4, 0xB4D3, 0x8196, /* 0xC0 */
- 0x8197, 0xC2D8, 0x8198, 0xB2D6, 0xD7D0, 0xCACB, 0xCBFB, 0xD5CC, /* 0xD0 */
- 0xB8B6, 0xCFC9, 0x8199, 0x819A, 0x819B, 0xD9DA, 0xD8F0, 0xC7AA, /* 0xD0 */
- 0x819C, 0xD8EE, 0x819D, 0xB4FA, 0xC1EE, 0xD2D4, 0x819E, 0x819F, /* 0xE0 */
- 0xD8ED, 0x81A0, 0xD2C7, 0xD8EF, 0xC3C7, 0x81A1, 0x81A2, 0x81A3, /* 0xE0 */
- 0xD1F6, 0x81A4, 0xD6D9, 0xD8F2, 0x81A5, 0xD8F5, 0xBCFE, 0xBCDB, /* 0xF0 */
- 0x81A6, 0x81A7, 0x81A8, 0xC8CE, 0x81A9, 0xB7DD, 0x81AA, 0xB7C2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_4F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x81AB, 0xC6F3, 0x81AC, 0x81AD, 0x81AE, 0x81AF, 0x81B0, 0x81B1, /* 0x00 */
- 0x81B2, 0xD8F8, 0xD2C1, 0x81B3, 0x81B4, 0xCEE9, 0xBCBF, 0xB7FC, /* 0x00 */
- 0xB7A5, 0xD0DD, 0x81B5, 0x81B6, 0x81B7, 0x81B8, 0x81B9, 0xD6DA, /* 0x10 */
- 0xD3C5, 0xBBEF, 0xBBE1, 0xD8F1, 0x81BA, 0x81BB, 0xC9A1, 0xCEB0, /* 0x10 */
- 0xB4AB, 0x81BC, 0xD8F3, 0x81BD, 0xC9CB, 0xD8F6, 0xC2D7, 0xD8F7, /* 0x20 */
- 0x81BE, 0x81BF, 0xCEB1, 0xD8F9, 0x81C0, 0x81C1, 0x81C2, 0xB2AE, /* 0x20 */
- 0xB9C0, 0x81C3, 0xD9A3, 0x81C4, 0xB0E9, 0x81C5, 0xC1E6, 0x81C6, /* 0x30 */
- 0xC9EC, 0x81C7, 0xCBC5, 0x81C8, 0xCBC6, 0xD9A4, 0x81C9, 0x81CA, /* 0x30 */
- 0x81CB, 0x81CC, 0x81CD, 0xB5E8, 0x81CE, 0x81CF, 0xB5AB, 0x81D0, /* 0x40 */
- 0x81D1, 0x81D2, 0x81D3, 0x81D4, 0x81D5, 0xCEBB, 0xB5CD, 0xD7A1, /* 0x40 */
- 0xD7F4, 0xD3D3, 0x81D6, 0xCCE5, 0x81D7, 0xBACE, 0x81D8, 0xD9A2, /* 0x50 */
- 0xD9DC, 0xD3E0, 0xD8FD, 0xB7F0, 0xD7F7, 0xD8FE, 0xD8FA, 0xD9A1, /* 0x50 */
- 0xC4E3, 0x81D9, 0x81DA, 0xD3B6, 0xD8F4, 0xD9DD, 0x81DB, 0xD8FB, /* 0x60 */
- 0x81DC, 0xC5E5, 0x81DD, 0x81DE, 0xC0D0, 0x81DF, 0x81E0, 0xD1F0, /* 0x60 */
- 0xB0DB, 0x81E1, 0x81E2, 0xBCD1, 0xD9A6, 0x81E3, 0xD9A5, 0x81E4, /* 0x70 */
- 0x81E5, 0x81E6, 0x81E7, 0xD9AC, 0xD9AE, 0x81E8, 0xD9AB, 0xCAB9, /* 0x70 */
- 0x81E9, 0x81EA, 0x81EB, 0xD9A9, 0xD6B6, 0x81EC, 0x81ED, 0x81EE, /* 0x80 */
- 0xB3DE, 0xD9A8, 0x81EF, 0xC0FD, 0x81F0, 0xCACC, 0x81F1, 0xD9AA, /* 0x80 */
- 0x81F2, 0xD9A7, 0x81F3, 0x81F4, 0xD9B0, 0x81F5, 0x81F6, 0xB6B1, /* 0x90 */
- 0x81F7, 0x81F8, 0x81F9, 0xB9A9, 0x81FA, 0xD2C0, 0x81FB, 0x81FC, /* 0x90 */
- 0xCFC0, 0x81FD, 0x81FE, 0xC2C2, 0x8240, 0xBDC4, 0xD5EC, 0xB2E0, /* 0xA0 */
- 0xC7C8, 0xBFEB, 0xD9AD, 0x8241, 0xD9AF, 0x8242, 0xCEEA, 0xBAEE, /* 0xA0 */
- 0x8243, 0x8244, 0x8245, 0x8246, 0x8247, 0xC7D6, 0x8248, 0x8249, /* 0xB0 */
- 0x824A, 0x824B, 0x824C, 0x824D, 0x824E, 0x824F, 0x8250, 0xB1E3, /* 0xB0 */
- 0x8251, 0x8252, 0x8253, 0xB4D9, 0xB6ED, 0xD9B4, 0x8254, 0x8255, /* 0xC0 */
- 0x8256, 0x8257, 0xBFA1, 0x8258, 0x8259, 0x825A, 0xD9DE, 0xC7CE, /* 0xC0 */
- 0xC0FE, 0xD9B8, 0x825B, 0x825C, 0x825D, 0x825E, 0x825F, 0xCBD7, /* 0xD0 */
- 0xB7FD, 0x8260, 0xD9B5, 0x8261, 0xD9B7, 0xB1A3, 0xD3E1, 0xD9B9, /* 0xD0 */
- 0x8262, 0xD0C5, 0x8263, 0xD9B6, 0x8264, 0x8265, 0xD9B1, 0x8266, /* 0xE0 */
- 0xD9B2, 0xC1A9, 0xD9B3, 0x8267, 0x8268, 0xBCF3, 0xD0DE, 0xB8A9, /* 0xE0 */
- 0x8269, 0xBEE3, 0x826A, 0xD9BD, 0x826B, 0x826C, 0x826D, 0x826E, /* 0xF0 */
- 0xD9BA, 0x826F, 0xB0B3, 0x8270, 0x8271, 0x8272, 0xD9C2, 0x8273 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_50[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8274, 0x8275, 0x8276, 0x8277, 0x8278, 0x8279, 0x827A, 0x827B, /* 0x00 */
- 0x827C, 0x827D, 0x827E, 0x8280, 0xD9C4, 0xB1B6, 0x8281, 0xD9BF, /* 0x00 */
- 0x8282, 0x8283, 0xB5B9, 0x8284, 0xBEF3, 0x8285, 0x8286, 0x8287, /* 0x10 */
- 0xCCC8, 0xBAF2, 0xD2D0, 0x8288, 0xD9C3, 0x8289, 0x828A, 0xBDE8, /* 0x10 */
- 0x828B, 0xB3AB, 0x828C, 0x828D, 0x828E, 0xD9C5, 0xBEEB, 0x828F, /* 0x20 */
- 0xD9C6, 0xD9BB, 0xC4DF, 0x8290, 0xD9BE, 0xD9C1, 0xD9C0, 0x8291, /* 0x20 */
- 0x8292, 0x8293, 0x8294, 0x8295, 0x8296, 0x8297, 0x8298, 0x8299, /* 0x30 */
- 0x829A, 0x829B, 0xD5AE, 0x829C, 0xD6B5, 0x829D, 0xC7E3, 0x829E, /* 0x30 */
- 0x829F, 0x82A0, 0x82A1, 0xD9C8, 0x82A2, 0x82A3, 0x82A4, 0xBCD9, /* 0x40 */
- 0xD9CA, 0x82A5, 0x82A6, 0x82A7, 0xD9BC, 0x82A8, 0xD9CB, 0xC6AB, /* 0x40 */
- 0x82A9, 0x82AA, 0x82AB, 0x82AC, 0x82AD, 0xD9C9, 0x82AE, 0x82AF, /* 0x50 */
- 0x82B0, 0x82B1, 0xD7F6, 0x82B2, 0xCDA3, 0x82B3, 0x82B4, 0x82B5, /* 0x50 */
- 0x82B6, 0x82B7, 0x82B8, 0x82B9, 0x82BA, 0xBDA1, 0x82BB, 0x82BC, /* 0x60 */
- 0x82BD, 0x82BE, 0x82BF, 0x82C0, 0xD9CC, 0x82C1, 0x82C2, 0x82C3, /* 0x60 */
- 0x82C4, 0x82C5, 0x82C6, 0x82C7, 0x82C8, 0x82C9, 0xC5BC, 0xCDB5, /* 0x70 */
- 0x82CA, 0x82CB, 0x82CC, 0xD9CD, 0x82CD, 0x82CE, 0xD9C7, 0xB3A5, /* 0x70 */
- 0xBFFE, 0x82CF, 0x82D0, 0x82D1, 0x82D2, 0xB8B5, 0x82D3, 0x82D4, /* 0x80 */
- 0xC0FC, 0x82D5, 0x82D6, 0x82D7, 0x82D8, 0xB0F8, 0x82D9, 0x82DA, /* 0x80 */
- 0x82DB, 0x82DC, 0x82DD, 0x82DE, 0x82DF, 0x82E0, 0x82E1, 0x82E2, /* 0x90 */
- 0x82E3, 0x82E4, 0x82E5, 0x82E6, 0x82E7, 0x82E8, 0x82E9, 0x82EA, /* 0x90 */
- 0x82EB, 0x82EC, 0x82ED, 0xB4F6, 0x82EE, 0xD9CE, 0x82EF, 0xD9CF, /* 0xA0 */
- 0xB4A2, 0xD9D0, 0x82F0, 0x82F1, 0xB4DF, 0x82F2, 0x82F3, 0x82F4, /* 0xA0 */
- 0x82F5, 0x82F6, 0xB0C1, 0x82F7, 0x82F8, 0x82F9, 0x82FA, 0x82FB, /* 0xB0 */
- 0x82FC, 0x82FD, 0xD9D1, 0xC9B5, 0x82FE, 0x8340, 0x8341, 0x8342, /* 0xB0 */
- 0x8343, 0x8344, 0x8345, 0x8346, 0x8347, 0x8348, 0x8349, 0x834A, /* 0xC0 */
- 0x834B, 0x834C, 0x834D, 0x834E, 0x834F, 0x8350, 0x8351, 0xCFF1, /* 0xC0 */
- 0x8352, 0x8353, 0x8354, 0x8355, 0x8356, 0x8357, 0xD9D2, 0x8358, /* 0xD0 */
- 0x8359, 0x835A, 0xC1C5, 0x835B, 0x835C, 0x835D, 0x835E, 0x835F, /* 0xD0 */
- 0x8360, 0x8361, 0x8362, 0x8363, 0x8364, 0x8365, 0xD9D6, 0xC9AE, /* 0xE0 */
- 0x8366, 0x8367, 0x8368, 0x8369, 0xD9D5, 0xD9D4, 0xD9D7, 0x836A, /* 0xE0 */
- 0x836B, 0x836C, 0x836D, 0xCBDB, 0x836E, 0xBDA9, 0x836F, 0x8370, /* 0xF0 */
- 0x8371, 0x8372, 0x8373, 0xC6A7, 0x8374, 0x8375, 0x8376, 0x8377 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_51[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8378, 0x8379, 0x837A, 0x837B, 0x837C, 0x837D, 0xD9D3, 0xD9D8, /* 0x00 */
- 0x837E, 0x8380, 0x8381, 0xD9D9, 0x8382, 0x8383, 0x8384, 0x8385, /* 0x00 */
- 0x8386, 0x8387, 0xC8E5, 0x8388, 0x8389, 0x838A, 0x838B, 0x838C, /* 0x10 */
- 0x838D, 0x838E, 0x838F, 0x8390, 0x8391, 0x8392, 0x8393, 0x8394, /* 0x10 */
- 0x8395, 0xC0DC, 0x8396, 0x8397, 0x8398, 0x8399, 0x839A, 0x839B, /* 0x20 */
- 0x839C, 0x839D, 0x839E, 0x839F, 0x83A0, 0x83A1, 0x83A2, 0x83A3, /* 0x20 */
- 0x83A4, 0x83A5, 0x83A6, 0x83A7, 0x83A8, 0x83A9, 0x83AA, 0x83AB, /* 0x30 */
- 0x83AC, 0x83AD, 0x83AE, 0x83AF, 0x83B0, 0x83B1, 0x83B2, 0xB6F9, /* 0x30 */
- 0xD8A3, 0xD4CA, 0x83B3, 0xD4AA, 0xD0D6, 0xB3E4, 0xD5D7, 0x83B4, /* 0x40 */
- 0xCFC8, 0xB9E2, 0x83B5, 0xBFCB, 0x83B6, 0xC3E2, 0x83B7, 0x83B8, /* 0x40 */
- 0x83B9, 0xB6D2, 0x83BA, 0x83BB, 0xCDC3, 0xD9EE, 0xD9F0, 0x83BC, /* 0x50 */
- 0x83BD, 0x83BE, 0xB5B3, 0x83BF, 0xB6B5, 0x83C0, 0x83C1, 0x83C2, /* 0x50 */
- 0x83C3, 0x83C4, 0xBEA4, 0x83C5, 0x83C6, 0xC8EB, 0x83C7, 0x83C8, /* 0x60 */
- 0xC8AB, 0x83C9, 0x83CA, 0xB0CB, 0xB9AB, 0xC1F9, 0xD9E2, 0x83CB, /* 0x60 */
- 0xC0BC, 0xB9B2, 0x83CC, 0xB9D8, 0xD0CB, 0xB1F8, 0xC6E4, 0xBEDF, /* 0x70 */
- 0xB5E4, 0xD7C8, 0x83CD, 0xD1F8, 0xBCE6, 0xCADE, 0x83CE, 0x83CF, /* 0x70 */
- 0xBCBD, 0xD9E6, 0xD8E7, 0x83D0, 0x83D1, 0xC4DA, 0x83D2, 0x83D3, /* 0x80 */
- 0xB8D4, 0xC8BD, 0x83D4, 0x83D5, 0xB2E1, 0xD4D9, 0x83D6, 0x83D7, /* 0x80 */
- 0x83D8, 0x83D9, 0xC3B0, 0x83DA, 0x83DB, 0xC3E1, 0xDAA2, 0xC8DF, /* 0x90 */
- 0x83DC, 0xD0B4, 0x83DD, 0xBEFC, 0xC5A9, 0x83DE, 0x83DF, 0x83E0, /* 0x90 */
- 0xB9DA, 0x83E1, 0xDAA3, 0x83E2, 0xD4A9, 0xDAA4, 0x83E3, 0x83E4, /* 0xA0 */
- 0x83E5, 0x83E6, 0x83E7, 0xD9FB, 0xB6AC, 0x83E8, 0x83E9, 0xB7EB, /* 0xA0 */
- 0xB1F9, 0xD9FC, 0xB3E5, 0xBEF6, 0x83EA, 0xBFF6, 0xD2B1, 0xC0E4, /* 0xB0 */
- 0x83EB, 0x83EC, 0x83ED, 0xB6B3, 0xD9FE, 0xD9FD, 0x83EE, 0x83EF, /* 0xB0 */
- 0xBEBB, 0x83F0, 0x83F1, 0x83F2, 0xC6E0, 0x83F3, 0xD7BC, 0xDAA1, /* 0xC0 */
- 0x83F4, 0xC1B9, 0x83F5, 0xB5F2, 0xC1E8, 0x83F6, 0x83F7, 0xBCF5, /* 0xC0 */
- 0x83F8, 0xB4D5, 0x83F9, 0x83FA, 0x83FB, 0x83FC, 0x83FD, 0x83FE, /* 0xD0 */
- 0x8440, 0x8441, 0x8442, 0xC1DD, 0x8443, 0xC4FD, 0x8444, 0x8445, /* 0xD0 */
- 0xBCB8, 0xB7B2, 0x8446, 0x8447, 0xB7EF, 0x8448, 0x8449, 0x844A, /* 0xE0 */
- 0x844B, 0x844C, 0x844D, 0xD9EC, 0x844E, 0xC6BE, 0x844F, 0xBFAD, /* 0xE0 */
- 0xBBCB, 0x8450, 0x8451, 0xB5CA, 0x8452, 0xDBC9, 0xD0D7, 0x8453, /* 0xF0 */
- 0xCDB9, 0xB0BC, 0xB3F6, 0xBBF7, 0xDBCA, 0xBAAF, 0x8454, 0xD4E4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_52[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB5B6, 0xB5F3, 0xD8D6, 0xC8D0, 0x8455, 0x8456, 0xB7D6, 0xC7D0, /* 0x00 */
- 0xD8D7, 0x8457, 0xBFAF, 0x8458, 0x8459, 0xDBBB, 0xD8D8, 0x845A, /* 0x00 */
- 0x845B, 0xD0CC, 0xBBAE, 0x845C, 0x845D, 0x845E, 0xEBBE, 0xC1D0, /* 0x10 */
- 0xC1F5, 0xD4F2, 0xB8D5, 0xB4B4, 0x845F, 0xB3F5, 0x8460, 0x8461, /* 0x10 */
- 0xC9BE, 0x8462, 0x8463, 0x8464, 0xC5D0, 0x8465, 0x8466, 0x8467, /* 0x20 */
- 0xC5D9, 0xC0FB, 0x8468, 0xB1F0, 0x8469, 0xD8D9, 0xB9CE, 0x846A, /* 0x20 */
- 0xB5BD, 0x846B, 0x846C, 0xD8DA, 0x846D, 0x846E, 0xD6C6, 0xCBA2, /* 0x30 */
- 0xC8AF, 0xC9B2, 0xB4CC, 0xBFCC, 0x846F, 0xB9F4, 0x8470, 0xD8DB, /* 0x30 */
- 0xD8DC, 0xB6E7, 0xBCC1, 0xCCEA, 0x8471, 0x8472, 0x8473, 0x8474, /* 0x40 */
- 0x8475, 0x8476, 0xCFF7, 0x8477, 0xD8DD, 0xC7B0, 0x8478, 0x8479, /* 0x40 */
- 0xB9D0, 0xBDA3, 0x847A, 0x847B, 0xCCDE, 0x847C, 0xC6CA, 0x847D, /* 0x50 */
- 0x847E, 0x8480, 0x8481, 0x8482, 0xD8E0, 0x8483, 0xD8DE, 0x8484, /* 0x50 */
- 0x8485, 0xD8DF, 0x8486, 0x8487, 0x8488, 0xB0FE, 0x8489, 0xBEE7, /* 0x60 */
- 0x848A, 0xCAA3, 0xBCF4, 0x848B, 0x848C, 0x848D, 0x848E, 0xB8B1, /* 0x60 */
- 0x848F, 0x8490, 0xB8EE, 0x8491, 0x8492, 0x8493, 0x8494, 0x8495, /* 0x70 */
- 0x8496, 0x8497, 0x8498, 0x8499, 0x849A, 0xD8E2, 0x849B, 0xBDCB, /* 0x70 */
- 0x849C, 0xD8E4, 0xD8E3, 0x849D, 0x849E, 0x849F, 0x84A0, 0x84A1, /* 0x80 */
- 0xC5FC, 0x84A2, 0x84A3, 0x84A4, 0x84A5, 0x84A6, 0x84A7, 0x84A8, /* 0x80 */
- 0xD8E5, 0x84A9, 0x84AA, 0xD8E6, 0x84AB, 0x84AC, 0x84AD, 0x84AE, /* 0x90 */
- 0x84AF, 0x84B0, 0x84B1, 0xC1A6, 0x84B2, 0xC8B0, 0xB0EC, 0xB9A6, /* 0x90 */
- 0xBCD3, 0xCEF1, 0xDBBD, 0xC1D3, 0x84B3, 0x84B4, 0x84B5, 0x84B6, /* 0xA0 */
- 0xB6AF, 0xD6FA, 0xC5AC, 0xBDD9, 0xDBBE, 0xDBBF, 0x84B7, 0x84B8, /* 0xA0 */
- 0x84B9, 0xC0F8, 0xBEA2, 0xC0CD, 0x84BA, 0x84BB, 0x84BC, 0x84BD, /* 0xB0 */
- 0x84BE, 0x84BF, 0x84C0, 0x84C1, 0x84C2, 0x84C3, 0xDBC0, 0xCAC6, /* 0xB0 */
- 0x84C4, 0x84C5, 0x84C6, 0xB2AA, 0x84C7, 0x84C8, 0x84C9, 0xD3C2, /* 0xC0 */
- 0x84CA, 0xC3E3, 0x84CB, 0xD1AB, 0x84CC, 0x84CD, 0x84CE, 0x84CF, /* 0xC0 */
- 0xDBC2, 0x84D0, 0xC0D5, 0x84D1, 0x84D2, 0x84D3, 0xDBC3, 0x84D4, /* 0xD0 */
- 0xBFB1, 0x84D5, 0x84D6, 0x84D7, 0x84D8, 0x84D9, 0x84DA, 0xC4BC, /* 0xD0 */
- 0x84DB, 0x84DC, 0x84DD, 0x84DE, 0xC7DA, 0x84DF, 0x84E0, 0x84E1, /* 0xE0 */
- 0x84E2, 0x84E3, 0x84E4, 0x84E5, 0x84E6, 0x84E7, 0x84E8, 0x84E9, /* 0xE0 */
- 0xDBC4, 0x84EA, 0x84EB, 0x84EC, 0x84ED, 0x84EE, 0x84EF, 0x84F0, /* 0xF0 */
- 0x84F1, 0xD9E8, 0xC9D7, 0x84F2, 0x84F3, 0x84F4, 0xB9B4, 0xCEF0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_53[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD4C8, 0x84F5, 0x84F6, 0x84F7, 0x84F8, 0xB0FC, 0xB4D2, 0x84F9, /* 0x00 */
- 0xD0D9, 0x84FA, 0x84FB, 0x84FC, 0x84FD, 0xD9E9, 0x84FE, 0xDECB, /* 0x00 */
- 0xD9EB, 0x8540, 0x8541, 0x8542, 0x8543, 0xD8B0, 0xBBAF, 0xB1B1, /* 0x10 */
- 0x8544, 0xB3D7, 0xD8CE, 0x8545, 0x8546, 0xD4D1, 0x8547, 0x8548, /* 0x10 */
- 0xBDB3, 0xBFEF, 0x8549, 0xCFBB, 0x854A, 0x854B, 0xD8D0, 0x854C, /* 0x20 */
- 0x854D, 0x854E, 0xB7CB, 0x854F, 0x8550, 0x8551, 0xD8D1, 0x8552, /* 0x20 */
- 0x8553, 0x8554, 0x8555, 0x8556, 0x8557, 0x8558, 0x8559, 0x855A, /* 0x30 */
- 0x855B, 0xC6A5, 0xC7F8, 0xD2BD, 0x855C, 0x855D, 0xD8D2, 0xC4E4, /* 0x30 */
- 0x855E, 0xCAAE, 0x855F, 0xC7A7, 0x8560, 0xD8A6, 0x8561, 0xC9FD, /* 0x40 */
- 0xCEE7, 0xBBDC, 0xB0EB, 0x8562, 0x8563, 0x8564, 0xBBAA, 0xD0AD, /* 0x40 */
- 0x8565, 0xB1B0, 0xD7E4, 0xD7BF, 0x8566, 0xB5A5, 0xC2F4, 0xC4CF, /* 0x50 */
- 0x8567, 0x8568, 0xB2A9, 0x8569, 0xB2B7, 0x856A, 0xB1E5, 0xDFB2, /* 0x50 */
- 0xD5BC, 0xBFA8, 0xC2AC, 0xD8D5, 0xC2B1, 0x856B, 0xD8D4, 0xCED4, /* 0x60 */
- 0x856C, 0xDAE0, 0x856D, 0xCEC0, 0x856E, 0x856F, 0xD8B4, 0xC3AE, /* 0x60 */
- 0xD3A1, 0xCEA3, 0x8570, 0xBCB4, 0xC8B4, 0xC2D1, 0x8571, 0xBEED, /* 0x70 */
- 0xD0B6, 0x8572, 0xDAE1, 0x8573, 0x8574, 0x8575, 0x8576, 0xC7E4, /* 0x70 */
- 0x8577, 0x8578, 0xB3A7, 0x8579, 0xB6F2, 0xCCFC, 0xC0FA, 0x857A, /* 0x80 */
- 0x857B, 0xC0F7, 0x857C, 0xD1B9, 0xD1E1, 0xD8C7, 0x857D, 0x857E, /* 0x80 */
- 0x8580, 0x8581, 0x8582, 0x8583, 0x8584, 0xB2DE, 0x8585, 0x8586, /* 0x90 */
- 0xC0E5, 0x8587, 0xBAF1, 0x8588, 0x8589, 0xD8C8, 0x858A, 0xD4AD, /* 0x90 */
- 0x858B, 0x858C, 0xCFE1, 0xD8C9, 0x858D, 0xD8CA, 0xCFC3, 0x858E, /* 0xA0 */
- 0xB3F8, 0xBEC7, 0x858F, 0x8590, 0x8591, 0x8592, 0xD8CB, 0x8593, /* 0xA0 */
- 0x8594, 0x8595, 0x8596, 0x8597, 0x8598, 0x8599, 0xDBCC, 0x859A, /* 0xB0 */
- 0x859B, 0x859C, 0x859D, 0xC8A5, 0x859E, 0x859F, 0x85A0, 0xCFD8, /* 0xB0 */
- 0x85A1, 0xC8FE, 0xB2CE, 0x85A2, 0x85A3, 0x85A4, 0x85A5, 0x85A6, /* 0xC0 */
- 0xD3D6, 0xB2E6, 0xBCB0, 0xD3D1, 0xCBAB, 0xB7B4, 0x85A7, 0x85A8, /* 0xC0 */
- 0x85A9, 0xB7A2, 0x85AA, 0x85AB, 0xCAE5, 0x85AC, 0xC8A1, 0xCADC, /* 0xD0 */
- 0xB1E4, 0xD0F0, 0x85AD, 0xC5D1, 0x85AE, 0x85AF, 0x85B0, 0xDBC5, /* 0xD0 */
- 0xB5FE, 0x85B1, 0x85B2, 0xBFDA, 0xB9C5, 0xBEE4, 0xC1ED, 0x85B3, /* 0xE0 */
- 0xDFB6, 0xDFB5, 0xD6BB, 0xBDD0, 0xD5D9, 0xB0C8, 0xB6A3, 0xBFC9, /* 0xE0 */
- 0xCCA8, 0xDFB3, 0xCAB7, 0xD3D2, 0x85B4, 0xD8CF, 0xD2B6, 0xBAC5, /* 0xF0 */
- 0xCBBE, 0xCCBE, 0x85B5, 0xDFB7, 0xB5F0, 0xDFB4, 0x85B6, 0x85B7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_54[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x85B8, 0xD3F5, 0x85B9, 0xB3D4, 0xB8F7, 0x85BA, 0xDFBA, 0x85BB, /* 0x00 */
- 0xBACF, 0xBCAA, 0xB5F5, 0x85BC, 0xCDAC, 0xC3FB, 0xBAF3, 0xC0F4, /* 0x00 */
- 0xCDC2, 0xCFF2, 0xDFB8, 0xCFC5, 0x85BD, 0xC2C0, 0xDFB9, 0xC2F0, /* 0x10 */
- 0x85BE, 0x85BF, 0x85C0, 0xBEFD, 0x85C1, 0xC1DF, 0xCDCC, 0xD2F7, /* 0x10 */
- 0xB7CD, 0xDFC1, 0x85C2, 0xDFC4, 0x85C3, 0x85C4, 0xB7F1, 0xB0C9, /* 0x20 */
- 0xB6D6, 0xB7D4, 0x85C5, 0xBAAC, 0xCCFD, 0xBFD4, 0xCBB1, 0xC6F4, /* 0x20 */
- 0x85C6, 0xD6A8, 0xDFC5, 0x85C7, 0xCEE2, 0xB3B3, 0x85C8, 0x85C9, /* 0x30 */
- 0xCEFC, 0xB4B5, 0x85CA, 0xCEC7, 0xBAF0, 0x85CB, 0xCEE1, 0x85CC, /* 0x30 */
- 0xD1BD, 0x85CD, 0x85CE, 0xDFC0, 0x85CF, 0x85D0, 0xB4F4, 0x85D1, /* 0x40 */
- 0xB3CA, 0x85D2, 0xB8E6, 0xDFBB, 0x85D3, 0x85D4, 0x85D5, 0x85D6, /* 0x40 */
- 0xC4C5, 0x85D7, 0xDFBC, 0xDFBD, 0xDFBE, 0xC5BB, 0xDFBF, 0xDFC2, /* 0x50 */
- 0xD4B1, 0xDFC3, 0x85D8, 0xC7BA, 0xCED8, 0x85D9, 0x85DA, 0x85DB, /* 0x50 */
- 0x85DC, 0x85DD, 0xC4D8, 0x85DE, 0xDFCA, 0x85DF, 0xDFCF, 0x85E0, /* 0x60 */
- 0xD6DC, 0x85E1, 0x85E2, 0x85E3, 0x85E4, 0x85E5, 0x85E6, 0x85E7, /* 0x60 */
- 0x85E8, 0xDFC9, 0xDFDA, 0xCEB6, 0x85E9, 0xBAC7, 0xDFCE, 0xDFC8, /* 0x70 */
- 0xC5DE, 0x85EA, 0x85EB, 0xC9EB, 0xBAF4, 0xC3FC, 0x85EC, 0x85ED, /* 0x70 */
- 0xBED7, 0x85EE, 0xDFC6, 0x85EF, 0xDFCD, 0x85F0, 0xC5D8, 0x85F1, /* 0x80 */
- 0x85F2, 0x85F3, 0x85F4, 0xD5A6, 0xBACD, 0x85F5, 0xBECC, 0xD3BD, /* 0x80 */
- 0xB8C0, 0x85F6, 0xD6E4, 0x85F7, 0xDFC7, 0xB9BE, 0xBFA7, 0x85F8, /* 0x90 */
- 0x85F9, 0xC1FC, 0xDFCB, 0xDFCC, 0x85FA, 0xDFD0, 0x85FB, 0x85FC, /* 0x90 */
- 0x85FD, 0x85FE, 0x8640, 0xDFDB, 0xDFE5, 0x8641, 0xDFD7, 0xDFD6, /* 0xA0 */
- 0xD7C9, 0xDFE3, 0xDFE4, 0xE5EB, 0xD2A7, 0xDFD2, 0x8642, 0xBFA9, /* 0xA0 */
- 0x8643, 0xD4DB, 0x8644, 0xBFC8, 0xDFD4, 0x8645, 0x8646, 0x8647, /* 0xB0 */
- 0xCFCC, 0x8648, 0x8649, 0xDFDD, 0x864A, 0xD1CA, 0x864B, 0xDFDE, /* 0xB0 */
- 0xB0A7, 0xC6B7, 0xDFD3, 0x864C, 0xBAE5, 0x864D, 0xB6DF, 0xCDDB, /* 0xC0 */
- 0xB9FE, 0xD4D5, 0x864E, 0x864F, 0xDFDF, 0xCFEC, 0xB0A5, 0xDFE7, /* 0xC0 */
- 0xDFD1, 0xD1C6, 0xDFD5, 0xDFD8, 0xDFD9, 0xDFDC, 0x8650, 0xBBA9, /* 0xD0 */
- 0x8651, 0xDFE0, 0xDFE1, 0x8652, 0xDFE2, 0xDFE6, 0xDFE8, 0xD3B4, /* 0xD0 */
- 0x8653, 0x8654, 0x8655, 0x8656, 0x8657, 0xB8E7, 0xC5B6, 0xDFEA, /* 0xE0 */
- 0xC9DA, 0xC1A8, 0xC4C4, 0x8658, 0x8659, 0xBFDE, 0xCFF8, 0x865A, /* 0xE0 */
- 0x865B, 0x865C, 0xD5DC, 0xDFEE, 0x865D, 0x865E, 0x865F, 0x8660, /* 0xF0 */
- 0x8661, 0x8662, 0xB2B8, 0x8663, 0xBADF, 0xDFEC, 0x8664, 0xDBC1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_55[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8665, 0xD1E4, 0x8666, 0x8667, 0x8668, 0x8669, 0xCBF4, 0xB4BD, /* 0x00 */
- 0x866A, 0xB0A6, 0x866B, 0x866C, 0x866D, 0x866E, 0x866F, 0xDFF1, /* 0x00 */
- 0xCCC6, 0xDFF2, 0x8670, 0x8671, 0xDFED, 0x8672, 0x8673, 0x8674, /* 0x10 */
- 0x8675, 0x8676, 0x8677, 0xDFE9, 0x8678, 0x8679, 0x867A, 0x867B, /* 0x10 */
- 0xDFEB, 0x867C, 0xDFEF, 0xDFF0, 0xBBBD, 0x867D, 0x867E, 0xDFF3, /* 0x20 */
- 0x8680, 0x8681, 0xDFF4, 0x8682, 0xBBA3, 0x8683, 0xCADB, 0xCEA8, /* 0x20 */
- 0xE0A7, 0xB3AA, 0x8684, 0xE0A6, 0x8685, 0x8686, 0x8687, 0xE0A1, /* 0x30 */
- 0x8688, 0x8689, 0x868A, 0x868B, 0xDFFE, 0x868C, 0xCDD9, 0xDFFC, /* 0x30 */
- 0x868D, 0xDFFA, 0x868E, 0xBFD0, 0xD7C4, 0x868F, 0xC9CC, 0x8690, /* 0x40 */
- 0x8691, 0xDFF8, 0xB0A1, 0x8692, 0x8693, 0x8694, 0x8695, 0x8696, /* 0x40 */
- 0xDFFD, 0x8697, 0x8698, 0x8699, 0x869A, 0xDFFB, 0xE0A2, 0x869B, /* 0x50 */
- 0x869C, 0x869D, 0x869E, 0x869F, 0xE0A8, 0x86A0, 0x86A1, 0x86A2, /* 0x50 */
- 0x86A3, 0xB7C8, 0x86A4, 0x86A5, 0xC6A1, 0xC9B6, 0xC0B2, 0xDFF5, /* 0x60 */
- 0x86A6, 0x86A7, 0xC5BE, 0x86A8, 0xD8C4, 0xDFF9, 0xC4F6, 0x86A9, /* 0x60 */
- 0x86AA, 0x86AB, 0x86AC, 0x86AD, 0x86AE, 0xE0A3, 0xE0A4, 0xE0A5, /* 0x70 */
- 0xD0A5, 0x86AF, 0x86B0, 0xE0B4, 0xCCE4, 0x86B1, 0xE0B1, 0x86B2, /* 0x70 */
- 0xBFA6, 0xE0AF, 0xCEB9, 0xE0AB, 0xC9C6, 0x86B3, 0x86B4, 0xC0AE, /* 0x80 */
- 0xE0AE, 0xBAED, 0xBAB0, 0xE0A9, 0x86B5, 0x86B6, 0x86B7, 0xDFF6, /* 0x80 */
- 0x86B8, 0xE0B3, 0x86B9, 0x86BA, 0xE0B8, 0x86BB, 0x86BC, 0x86BD, /* 0x90 */
- 0xB4AD, 0xE0B9, 0x86BE, 0x86BF, 0xCFB2, 0xBAC8, 0x86C0, 0xE0B0, /* 0x90 */
- 0x86C1, 0x86C2, 0x86C3, 0x86C4, 0x86C5, 0x86C6, 0x86C7, 0xD0FA, /* 0xA0 */
- 0x86C8, 0x86C9, 0x86CA, 0x86CB, 0x86CC, 0x86CD, 0x86CE, 0x86CF, /* 0xA0 */
- 0x86D0, 0xE0AC, 0x86D1, 0xD4FB, 0x86D2, 0xDFF7, 0x86D3, 0xC5E7, /* 0xB0 */
- 0x86D4, 0xE0AD, 0x86D5, 0xD3F7, 0x86D6, 0xE0B6, 0xE0B7, 0x86D7, /* 0xB0 */
- 0x86D8, 0x86D9, 0x86DA, 0x86DB, 0xE0C4, 0xD0E1, 0x86DC, 0x86DD, /* 0xC0 */
- 0x86DE, 0xE0BC, 0x86DF, 0x86E0, 0xE0C9, 0xE0CA, 0x86E1, 0x86E2, /* 0xC0 */
- 0x86E3, 0xE0BE, 0xE0AA, 0xC9A4, 0xE0C1, 0x86E4, 0xE0B2, 0x86E5, /* 0xD0 */
- 0x86E6, 0x86E7, 0x86E8, 0x86E9, 0xCAC8, 0xE0C3, 0x86EA, 0xE0B5, /* 0xD0 */
- 0x86EB, 0xCECB, 0x86EC, 0xCBC3, 0xE0CD, 0xE0C6, 0xE0C2, 0x86ED, /* 0xE0 */
- 0xE0CB, 0x86EE, 0xE0BA, 0xE0BF, 0xE0C0, 0x86EF, 0x86F0, 0xE0C5, /* 0xE0 */
- 0x86F1, 0x86F2, 0xE0C7, 0xE0C8, 0x86F3, 0xE0CC, 0x86F4, 0xE0BB, /* 0xF0 */
- 0x86F5, 0x86F6, 0x86F7, 0x86F8, 0x86F9, 0xCBD4, 0xE0D5, 0x86FA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_56[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE0D6, 0xE0D2, 0x86FB, 0x86FC, 0x86FD, 0x86FE, 0x8740, 0x8741, /* 0x00 */
- 0xE0D0, 0xBCCE, 0x8742, 0x8743, 0xE0D1, 0x8744, 0xB8C2, 0xD8C5, /* 0x00 */
- 0x8745, 0x8746, 0x8747, 0x8748, 0x8749, 0x874A, 0x874B, 0x874C, /* 0x10 */
- 0xD0EA, 0x874D, 0x874E, 0xC2EF, 0x874F, 0x8750, 0xE0CF, 0xE0BD, /* 0x10 */
- 0x8751, 0x8752, 0x8753, 0xE0D4, 0xE0D3, 0x8754, 0x8755, 0xE0D7, /* 0x20 */
- 0x8756, 0x8757, 0x8758, 0x8759, 0xE0DC, 0xE0D8, 0x875A, 0x875B, /* 0x20 */
- 0x875C, 0xD6F6, 0xB3B0, 0x875D, 0xD7EC, 0x875E, 0xCBBB, 0x875F, /* 0x30 */
- 0x8760, 0xE0DA, 0x8761, 0xCEFB, 0x8762, 0x8763, 0x8764, 0xBAD9, /* 0x30 */
- 0x8765, 0x8766, 0x8767, 0x8768, 0x8769, 0x876A, 0x876B, 0x876C, /* 0x40 */
- 0x876D, 0x876E, 0x876F, 0x8770, 0xE0E1, 0xE0DD, 0xD2AD, 0x8771, /* 0x40 */
- 0x8772, 0x8773, 0x8774, 0x8775, 0xE0E2, 0x8776, 0x8777, 0xE0DB, /* 0x50 */
- 0xE0D9, 0xE0DF, 0x8778, 0x8779, 0xE0E0, 0x877A, 0x877B, 0x877C, /* 0x50 */
- 0x877D, 0x877E, 0xE0DE, 0x8780, 0xE0E4, 0x8781, 0x8782, 0x8783, /* 0x60 */
- 0xC6F7, 0xD8AC, 0xD4EB, 0xE0E6, 0xCAC9, 0x8784, 0x8785, 0x8786, /* 0x60 */
- 0x8787, 0xE0E5, 0x8788, 0x8789, 0x878A, 0x878B, 0xB8C1, 0x878C, /* 0x70 */
- 0x878D, 0x878E, 0x878F, 0xE0E7, 0xE0E8, 0x8790, 0x8791, 0x8792, /* 0x70 */
- 0x8793, 0x8794, 0x8795, 0x8796, 0x8797, 0xE0E9, 0xE0E3, 0x8798, /* 0x80 */
- 0x8799, 0x879A, 0x879B, 0x879C, 0x879D, 0x879E, 0xBABF, 0xCCE7, /* 0x80 */
- 0x879F, 0x87A0, 0x87A1, 0xE0EA, 0x87A2, 0x87A3, 0x87A4, 0x87A5, /* 0x90 */
- 0x87A6, 0x87A7, 0x87A8, 0x87A9, 0x87AA, 0x87AB, 0x87AC, 0x87AD, /* 0x90 */
- 0x87AE, 0x87AF, 0x87B0, 0xCFF9, 0x87B1, 0x87B2, 0x87B3, 0x87B4, /* 0xA0 */
- 0x87B5, 0x87B6, 0x87B7, 0x87B8, 0x87B9, 0x87BA, 0x87BB, 0xE0EB, /* 0xA0 */
- 0x87BC, 0x87BD, 0x87BE, 0x87BF, 0x87C0, 0x87C1, 0x87C2, 0xC8C2, /* 0xB0 */
- 0x87C3, 0x87C4, 0x87C5, 0x87C6, 0xBDC0, 0x87C7, 0x87C8, 0x87C9, /* 0xB0 */
- 0x87CA, 0x87CB, 0x87CC, 0x87CD, 0x87CE, 0x87CF, 0x87D0, 0x87D1, /* 0xC0 */
- 0x87D2, 0x87D3, 0xC4D2, 0x87D4, 0x87D5, 0x87D6, 0x87D7, 0x87D8, /* 0xC0 */
- 0x87D9, 0x87DA, 0x87DB, 0x87DC, 0xE0EC, 0x87DD, 0x87DE, 0xE0ED, /* 0xD0 */
- 0x87DF, 0x87E0, 0xC7F4, 0xCBC4, 0x87E1, 0xE0EE, 0xBBD8, 0xD8B6, /* 0xD0 */
- 0xD2F2, 0xE0EF, 0xCDC5, 0x87E2, 0xB6DA, 0x87E3, 0x87E4, 0x87E5, /* 0xE0 */
- 0x87E6, 0x87E7, 0x87E8, 0xE0F1, 0x87E9, 0xD4B0, 0x87EA, 0x87EB, /* 0xE0 */
- 0xC0A7, 0xB4D1, 0x87EC, 0x87ED, 0xCEA7, 0xE0F0, 0x87EE, 0x87EF, /* 0xF0 */
- 0x87F0, 0xE0F2, 0xB9CC, 0x87F1, 0x87F2, 0xB9FA, 0xCDBC, 0xE0F3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_57[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x87F3, 0x87F4, 0x87F5, 0xC6D4, 0xE0F4, 0x87F6, 0xD4B2, 0x87F7, /* 0x00 */
- 0xC8A6, 0xE0F6, 0xE0F5, 0x87F8, 0x87F9, 0x87FA, 0x87FB, 0x87FC, /* 0x00 */
- 0x87FD, 0x87FE, 0x8840, 0x8841, 0x8842, 0x8843, 0x8844, 0x8845, /* 0x10 */
- 0x8846, 0x8847, 0x8848, 0x8849, 0xE0F7, 0x884A, 0x884B, 0xCDC1, /* 0x10 */
- 0x884C, 0x884D, 0x884E, 0xCAA5, 0x884F, 0x8850, 0x8851, 0x8852, /* 0x20 */
- 0xD4DA, 0xDBD7, 0xDBD9, 0x8853, 0xDBD8, 0xB9E7, 0xDBDC, 0xDBDD, /* 0x20 */
- 0xB5D8, 0x8854, 0x8855, 0xDBDA, 0x8856, 0x8857, 0x8858, 0x8859, /* 0x30 */
- 0x885A, 0xDBDB, 0xB3A1, 0xDBDF, 0x885B, 0x885C, 0xBBF8, 0x885D, /* 0x30 */
- 0xD6B7, 0x885E, 0xDBE0, 0x885F, 0x8860, 0x8861, 0x8862, 0xBEF9, /* 0x40 */
- 0x8863, 0x8864, 0xB7BB, 0x8865, 0xDBD0, 0xCCAE, 0xBFB2, 0xBBB5, /* 0x40 */
- 0xD7F8, 0xBFD3, 0x8866, 0x8867, 0x8868, 0x8869, 0x886A, 0xBFE9, /* 0x50 */
- 0x886B, 0x886C, 0xBCE1, 0xCCB3, 0xDBDE, 0xB0D3, 0xCEEB, 0xB7D8, /* 0x50 */
- 0xD7B9, 0xC6C2, 0x886D, 0x886E, 0xC0A4, 0x886F, 0xCCB9, 0x8870, /* 0x60 */
- 0xDBE7, 0xDBE1, 0xC6BA, 0xDBE3, 0x8871, 0xDBE8, 0x8872, 0xC5F7, /* 0x60 */
- 0x8873, 0x8874, 0x8875, 0xDBEA, 0x8876, 0x8877, 0xDBE9, 0xBFC0, /* 0x70 */
- 0x8878, 0x8879, 0x887A, 0xDBE6, 0xDBE5, 0x887B, 0x887C, 0x887D, /* 0x70 */
- 0x887E, 0x8880, 0xB4B9, 0xC0AC, 0xC2A2, 0xDBE2, 0xDBE4, 0x8881, /* 0x80 */
- 0x8882, 0x8883, 0x8884, 0xD0CD, 0xDBED, 0x8885, 0x8886, 0x8887, /* 0x80 */
- 0x8888, 0x8889, 0xC0DD, 0xDBF2, 0x888A, 0x888B, 0x888C, 0x888D, /* 0x90 */
- 0x888E, 0x888F, 0x8890, 0xB6E2, 0x8891, 0x8892, 0x8893, 0x8894, /* 0x90 */
- 0xDBF3, 0xDBD2, 0xB9B8, 0xD4AB, 0xDBEC, 0x8895, 0xBFD1, 0xDBF0, /* 0xA0 */
- 0x8896, 0xDBD1, 0x8897, 0xB5E6, 0x8898, 0xDBEB, 0xBFE5, 0x8899, /* 0xA0 */
- 0x889A, 0x889B, 0xDBEE, 0x889C, 0xDBF1, 0x889D, 0x889E, 0x889F, /* 0xB0 */
- 0xDBF9, 0x88A0, 0x88A1, 0x88A2, 0x88A3, 0x88A4, 0x88A5, 0x88A6, /* 0xB0 */
- 0x88A7, 0x88A8, 0xB9A1, 0xB0A3, 0x88A9, 0x88AA, 0x88AB, 0x88AC, /* 0xC0 */
- 0x88AD, 0x88AE, 0x88AF, 0xC2F1, 0x88B0, 0x88B1, 0xB3C7, 0xDBEF, /* 0xC0 */
- 0x88B2, 0x88B3, 0xDBF8, 0x88B4, 0xC6D2, 0xDBF4, 0x88B5, 0x88B6, /* 0xD0 */
- 0xDBF5, 0xDBF7, 0xDBF6, 0x88B7, 0x88B8, 0xDBFE, 0x88B9, 0xD3F2, /* 0xD0 */
- 0xB2BA, 0x88BA, 0x88BB, 0x88BC, 0xDBFD, 0x88BD, 0x88BE, 0x88BF, /* 0xE0 */
- 0x88C0, 0x88C1, 0x88C2, 0x88C3, 0x88C4, 0xDCA4, 0x88C5, 0xDBFB, /* 0xE0 */
- 0x88C6, 0x88C7, 0x88C8, 0x88C9, 0xDBFA, 0x88CA, 0x88CB, 0x88CC, /* 0xF0 */
- 0xDBFC, 0xC5E0, 0xBBF9, 0x88CD, 0x88CE, 0xDCA3, 0x88CF, 0x88D0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_58[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDCA5, 0x88D1, 0xCCC3, 0x88D2, 0x88D3, 0x88D4, 0xB6D1, 0xDDC0, /* 0x00 */
- 0x88D5, 0x88D6, 0x88D7, 0xDCA1, 0x88D8, 0xDCA2, 0x88D9, 0x88DA, /* 0x00 */
- 0x88DB, 0xC7B5, 0x88DC, 0x88DD, 0x88DE, 0xB6E9, 0x88DF, 0x88E0, /* 0x10 */
- 0x88E1, 0xDCA7, 0x88E2, 0x88E3, 0x88E4, 0x88E5, 0xDCA6, 0x88E6, /* 0x10 */
- 0xDCA9, 0xB1A4, 0x88E7, 0x88E8, 0xB5CC, 0x88E9, 0x88EA, 0x88EB, /* 0x20 */
- 0x88EC, 0x88ED, 0xBFB0, 0x88EE, 0x88EF, 0x88F0, 0x88F1, 0x88F2, /* 0x20 */
- 0xD1DF, 0x88F3, 0x88F4, 0x88F5, 0x88F6, 0xB6C2, 0x88F7, 0x88F8, /* 0x30 */
- 0x88F9, 0x88FA, 0x88FB, 0x88FC, 0x88FD, 0x88FE, 0x8940, 0x8941, /* 0x30 */
- 0x8942, 0x8943, 0x8944, 0x8945, 0xDCA8, 0x8946, 0x8947, 0x8948, /* 0x40 */
- 0x8949, 0x894A, 0x894B, 0x894C, 0xCBFA, 0xEBF3, 0x894D, 0x894E, /* 0x40 */
- 0x894F, 0xCBDC, 0x8950, 0x8951, 0xCBFE, 0x8952, 0x8953, 0x8954, /* 0x50 */
- 0xCCC1, 0x8955, 0x8956, 0x8957, 0x8958, 0x8959, 0xC8FB, 0x895A, /* 0x50 */
- 0x895B, 0x895C, 0x895D, 0x895E, 0x895F, 0xDCAA, 0x8960, 0x8961, /* 0x60 */
- 0x8962, 0x8963, 0x8964, 0xCCEE, 0xDCAB, 0x8965, 0x8966, 0x8967, /* 0x60 */
- 0x8968, 0x8969, 0x896A, 0x896B, 0x896C, 0x896D, 0x896E, 0x896F, /* 0x70 */
- 0x8970, 0x8971, 0x8972, 0x8973, 0x8974, 0x8975, 0xDBD3, 0x8976, /* 0x70 */
- 0xDCAF, 0xDCAC, 0x8977, 0xBEB3, 0x8978, 0xCAFB, 0x8979, 0x897A, /* 0x80 */
- 0x897B, 0xDCAD, 0x897C, 0x897D, 0x897E, 0x8980, 0x8981, 0x8982, /* 0x80 */
- 0x8983, 0x8984, 0xC9CA, 0xC4B9, 0x8985, 0x8986, 0x8987, 0x8988, /* 0x90 */
- 0x8989, 0xC7BD, 0xDCAE, 0x898A, 0x898B, 0x898C, 0xD4F6, 0xD0E6, /* 0x90 */
- 0x898D, 0x898E, 0x898F, 0x8990, 0x8991, 0x8992, 0x8993, 0x8994, /* 0xA0 */
- 0xC4AB, 0xB6D5, 0x8995, 0x8996, 0x8997, 0x8998, 0x8999, 0x899A, /* 0xA0 */
- 0x899B, 0x899C, 0x899D, 0x899E, 0x899F, 0x89A0, 0x89A1, 0x89A2, /* 0xB0 */
- 0x89A3, 0x89A4, 0x89A5, 0x89A6, 0xDBD4, 0x89A7, 0x89A8, 0x89A9, /* 0xB0 */
- 0x89AA, 0xB1DA, 0x89AB, 0x89AC, 0x89AD, 0xDBD5, 0x89AE, 0x89AF, /* 0xC0 */
- 0x89B0, 0x89B1, 0x89B2, 0x89B3, 0x89B4, 0x89B5, 0x89B6, 0x89B7, /* 0xC0 */
- 0x89B8, 0xDBD6, 0x89B9, 0x89BA, 0x89BB, 0xBABE, 0x89BC, 0x89BD, /* 0xD0 */
- 0x89BE, 0x89BF, 0x89C0, 0x89C1, 0x89C2, 0x89C3, 0x89C4, 0x89C5, /* 0xD0 */
- 0x89C6, 0x89C7, 0x89C8, 0x89C9, 0xC8C0, 0x89CA, 0x89CB, 0x89CC, /* 0xE0 */
- 0x89CD, 0x89CE, 0x89CF, 0xCABF, 0xC8C9, 0x89D0, 0xD7B3, 0x89D1, /* 0xE0 */
- 0xC9F9, 0x89D2, 0x89D3, 0xBFC7, 0x89D4, 0x89D5, 0xBAF8, 0x89D6, /* 0xF0 */
- 0x89D7, 0xD2BC, 0x89D8, 0x89D9, 0x89DA, 0x89DB, 0x89DC, 0x89DD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_59[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x89DE, 0x89DF, 0xE2BA, 0x89E0, 0xB4A6, 0x89E1, 0x89E2, 0xB1B8, /* 0x00 */
- 0x89E3, 0x89E4, 0x89E5, 0x89E6, 0x89E7, 0xB8B4, 0x89E8, 0xCFC4, /* 0x00 */
- 0x89E9, 0x89EA, 0x89EB, 0x89EC, 0xD9E7, 0xCFA6, 0xCDE2, 0x89ED, /* 0x10 */
- 0x89EE, 0xD9ED, 0xB6E0, 0x89EF, 0xD2B9, 0x89F0, 0x89F1, 0xB9BB, /* 0x10 */
- 0x89F2, 0x89F3, 0x89F4, 0x89F5, 0xE2B9, 0xE2B7, 0x89F6, 0xB4F3, /* 0x20 */
- 0x89F7, 0xCCEC, 0xCCAB, 0xB7F2, 0x89F8, 0xD8B2, 0xD1EB, 0xBABB, /* 0x20 */
- 0x89F9, 0xCAA7, 0x89FA, 0x89FB, 0xCDB7, 0x89FC, 0x89FD, 0xD2C4, /* 0x30 */
- 0xBFE4, 0xBCD0, 0xB6E1, 0x89FE, 0xDEC5, 0x8A40, 0x8A41, 0x8A42, /* 0x30 */
- 0x8A43, 0xDEC6, 0xDBBC, 0x8A44, 0xD1D9, 0x8A45, 0x8A46, 0xC6E6, /* 0x40 */
- 0xC4CE, 0xB7EE, 0x8A47, 0xB7DC, 0x8A48, 0x8A49, 0xBFFC, 0xD7E0, /* 0x40 */
- 0x8A4A, 0xC6F5, 0x8A4B, 0x8A4C, 0xB1BC, 0xDEC8, 0xBDB1, 0xCCD7, /* 0x50 */
- 0xDECA, 0x8A4D, 0xDEC9, 0x8A4E, 0x8A4F, 0x8A50, 0x8A51, 0x8A52, /* 0x50 */
- 0xB5EC, 0x8A53, 0xC9DD, 0x8A54, 0x8A55, 0xB0C2, 0x8A56, 0x8A57, /* 0x60 */
- 0x8A58, 0x8A59, 0x8A5A, 0x8A5B, 0x8A5C, 0x8A5D, 0x8A5E, 0x8A5F, /* 0x60 */
- 0x8A60, 0x8A61, 0x8A62, 0xC5AE, 0xC5AB, 0x8A63, 0xC4CC, 0x8A64, /* 0x70 */
- 0xBCE9, 0xCBFD, 0x8A65, 0x8A66, 0x8A67, 0xBAC3, 0x8A68, 0x8A69, /* 0x70 */
- 0x8A6A, 0xE5F9, 0xC8E7, 0xE5FA, 0xCDFD, 0x8A6B, 0xD7B1, 0xB8BE, /* 0x80 */
- 0xC2E8, 0x8A6C, 0xC8D1, 0x8A6D, 0x8A6E, 0xE5FB, 0x8A6F, 0x8A70, /* 0x80 */
- 0x8A71, 0x8A72, 0xB6CA, 0xBCCB, 0x8A73, 0x8A74, 0xD1FD, 0xE6A1, /* 0x90 */
- 0x8A75, 0xC3EE, 0x8A76, 0x8A77, 0x8A78, 0x8A79, 0xE6A4, 0x8A7A, /* 0x90 */
- 0x8A7B, 0x8A7C, 0x8A7D, 0xE5FE, 0xE6A5, 0xCDD7, 0x8A7E, 0x8A80, /* 0xA0 */
- 0xB7C1, 0xE5FC, 0xE5FD, 0xE6A3, 0x8A81, 0x8A82, 0xC4DD, 0xE6A8, /* 0xA0 */
- 0x8A83, 0x8A84, 0xE6A7, 0x8A85, 0x8A86, 0x8A87, 0x8A88, 0x8A89, /* 0xB0 */
- 0x8A8A, 0xC3C3, 0x8A8B, 0xC6DE, 0x8A8C, 0x8A8D, 0xE6AA, 0x8A8E, /* 0xB0 */
- 0x8A8F, 0x8A90, 0x8A91, 0x8A92, 0x8A93, 0x8A94, 0xC4B7, 0x8A95, /* 0xC0 */
- 0x8A96, 0x8A97, 0xE6A2, 0xCABC, 0x8A98, 0x8A99, 0x8A9A, 0x8A9B, /* 0xC0 */
- 0xBDE3, 0xB9C3, 0xE6A6, 0xD0D5, 0xCEAF, 0x8A9C, 0x8A9D, 0xE6A9, /* 0xD0 */
- 0xE6B0, 0x8A9E, 0xD2A6, 0x8A9F, 0xBDAA, 0xE6AD, 0x8AA0, 0x8AA1, /* 0xD0 */
- 0x8AA2, 0x8AA3, 0x8AA4, 0xE6AF, 0x8AA5, 0xC0D1, 0x8AA6, 0x8AA7, /* 0xE0 */
- 0xD2CC, 0x8AA8, 0x8AA9, 0x8AAA, 0xBCA7, 0x8AAB, 0x8AAC, 0x8AAD, /* 0xE0 */
- 0x8AAE, 0x8AAF, 0x8AB0, 0x8AB1, 0x8AB2, 0x8AB3, 0x8AB4, 0x8AB5, /* 0xF0 */
- 0x8AB6, 0xE6B1, 0x8AB7, 0xD2F6, 0x8AB8, 0x8AB9, 0x8ABA, 0xD7CB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_5A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8ABB, 0xCDFE, 0x8ABC, 0xCDDE, 0xC2A6, 0xE6AB, 0xE6AC, 0xBDBF, /* 0x00 */
- 0xE6AE, 0xE6B3, 0x8ABD, 0x8ABE, 0xE6B2, 0x8ABF, 0x8AC0, 0x8AC1, /* 0x00 */
- 0x8AC2, 0xE6B6, 0x8AC3, 0xE6B8, 0x8AC4, 0x8AC5, 0x8AC6, 0x8AC7, /* 0x10 */
- 0xC4EF, 0x8AC8, 0x8AC9, 0x8ACA, 0xC4C8, 0x8ACB, 0x8ACC, 0xBEEA, /* 0x10 */
- 0xC9EF, 0x8ACD, 0x8ACE, 0xE6B7, 0x8ACF, 0xB6F0, 0x8AD0, 0x8AD1, /* 0x20 */
- 0x8AD2, 0xC3E4, 0x8AD3, 0x8AD4, 0x8AD5, 0x8AD6, 0x8AD7, 0x8AD8, /* 0x20 */
- 0x8AD9, 0xD3E9, 0xE6B4, 0x8ADA, 0xE6B5, 0x8ADB, 0xC8A2, 0x8ADC, /* 0x30 */
- 0x8ADD, 0x8ADE, 0x8ADF, 0x8AE0, 0xE6BD, 0x8AE1, 0x8AE2, 0x8AE3, /* 0x30 */
- 0xE6B9, 0x8AE4, 0x8AE5, 0x8AE6, 0x8AE7, 0x8AE8, 0xC6C5, 0x8AE9, /* 0x40 */
- 0x8AEA, 0xCDF1, 0xE6BB, 0x8AEB, 0x8AEC, 0x8AED, 0x8AEE, 0x8AEF, /* 0x40 */
- 0x8AF0, 0x8AF1, 0x8AF2, 0x8AF3, 0x8AF4, 0xE6BC, 0x8AF5, 0x8AF6, /* 0x50 */
- 0x8AF7, 0x8AF8, 0xBBE9, 0x8AF9, 0x8AFA, 0x8AFB, 0x8AFC, 0x8AFD, /* 0x50 */
- 0x8AFE, 0x8B40, 0xE6BE, 0x8B41, 0x8B42, 0x8B43, 0x8B44, 0xE6BA, /* 0x60 */
- 0x8B45, 0x8B46, 0xC0B7, 0x8B47, 0x8B48, 0x8B49, 0x8B4A, 0x8B4B, /* 0x60 */
- 0x8B4C, 0x8B4D, 0x8B4E, 0x8B4F, 0xD3A4, 0xE6BF, 0xC9F4, 0xE6C3, /* 0x70 */
- 0x8B50, 0x8B51, 0xE6C4, 0x8B52, 0x8B53, 0x8B54, 0x8B55, 0xD0F6, /* 0x70 */
- 0x8B56, 0x8B57, 0x8B58, 0x8B59, 0x8B5A, 0x8B5B, 0x8B5C, 0x8B5D, /* 0x80 */
- 0x8B5E, 0x8B5F, 0x8B60, 0x8B61, 0x8B62, 0x8B63, 0x8B64, 0x8B65, /* 0x80 */
- 0x8B66, 0x8B67, 0xC3BD, 0x8B68, 0x8B69, 0x8B6A, 0x8B6B, 0x8B6C, /* 0x90 */
- 0x8B6D, 0x8B6E, 0xC3C4, 0xE6C2, 0x8B6F, 0x8B70, 0x8B71, 0x8B72, /* 0x90 */
- 0x8B73, 0x8B74, 0x8B75, 0x8B76, 0x8B77, 0x8B78, 0x8B79, 0x8B7A, /* 0xA0 */
- 0x8B7B, 0x8B7C, 0xE6C1, 0x8B7D, 0x8B7E, 0x8B80, 0x8B81, 0x8B82, /* 0xA0 */
- 0x8B83, 0x8B84, 0xE6C7, 0xCFB1, 0x8B85, 0xEBF4, 0x8B86, 0x8B87, /* 0xB0 */
- 0xE6CA, 0x8B88, 0x8B89, 0x8B8A, 0x8B8B, 0x8B8C, 0xE6C5, 0x8B8D, /* 0xB0 */
- 0x8B8E, 0xBCDE, 0xC9A9, 0x8B8F, 0x8B90, 0x8B91, 0x8B92, 0x8B93, /* 0xC0 */
- 0x8B94, 0xBCB5, 0x8B95, 0x8B96, 0xCFD3, 0x8B97, 0x8B98, 0x8B99, /* 0xC0 */
- 0x8B9A, 0x8B9B, 0xE6C8, 0x8B9C, 0xE6C9, 0x8B9D, 0xE6CE, 0x8B9E, /* 0xD0 */
- 0xE6D0, 0x8B9F, 0x8BA0, 0x8BA1, 0xE6D1, 0x8BA2, 0x8BA3, 0x8BA4, /* 0xD0 */
- 0xE6CB, 0xB5D5, 0x8BA5, 0xE6CC, 0x8BA6, 0x8BA7, 0xE6CF, 0x8BA8, /* 0xE0 */
- 0x8BA9, 0xC4DB, 0x8BAA, 0xE6C6, 0x8BAB, 0x8BAC, 0x8BAD, 0x8BAE, /* 0xE0 */
- 0x8BAF, 0xE6CD, 0x8BB0, 0x8BB1, 0x8BB2, 0x8BB3, 0x8BB4, 0x8BB5, /* 0xF0 */
- 0x8BB6, 0x8BB7, 0x8BB8, 0x8BB9, 0x8BBA, 0x8BBB, 0x8BBC, 0x8BBD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_5B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8BBE, 0x8BBF, 0x8BC0, 0x8BC1, 0x8BC2, 0x8BC3, 0x8BC4, 0x8BC5, /* 0x00 */
- 0x8BC6, 0xE6D2, 0x8BC7, 0x8BC8, 0x8BC9, 0x8BCA, 0x8BCB, 0x8BCC, /* 0x00 */
- 0x8BCD, 0x8BCE, 0x8BCF, 0x8BD0, 0x8BD1, 0x8BD2, 0xE6D4, 0xE6D3, /* 0x10 */
- 0x8BD3, 0x8BD4, 0x8BD5, 0x8BD6, 0x8BD7, 0x8BD8, 0x8BD9, 0x8BDA, /* 0x10 */
- 0x8BDB, 0x8BDC, 0x8BDD, 0x8BDE, 0x8BDF, 0x8BE0, 0x8BE1, 0x8BE2, /* 0x20 */
- 0x8BE3, 0x8BE4, 0x8BE5, 0x8BE6, 0x8BE7, 0x8BE8, 0x8BE9, 0x8BEA, /* 0x20 */
- 0x8BEB, 0x8BEC, 0xE6D5, 0x8BED, 0xD9F8, 0x8BEE, 0x8BEF, 0xE6D6, /* 0x30 */
- 0x8BF0, 0x8BF1, 0x8BF2, 0x8BF3, 0x8BF4, 0x8BF5, 0x8BF6, 0x8BF7, /* 0x30 */
- 0xE6D7, 0x8BF8, 0x8BF9, 0x8BFA, 0x8BFB, 0x8BFC, 0x8BFD, 0x8BFE, /* 0x40 */
- 0x8C40, 0x8C41, 0x8C42, 0x8C43, 0x8C44, 0x8C45, 0x8C46, 0x8C47, /* 0x40 */
- 0xD7D3, 0xE6DD, 0x8C48, 0xE6DE, 0xBFD7, 0xD4D0, 0x8C49, 0xD7D6, /* 0x50 */
- 0xB4E6, 0xCBEF, 0xE6DA, 0xD8C3, 0xD7CE, 0xD0A2, 0x8C4A, 0xC3CF, /* 0x50 */
- 0x8C4B, 0x8C4C, 0xE6DF, 0xBCBE, 0xB9C2, 0xE6DB, 0xD1A7, 0x8C4D, /* 0x60 */
- 0x8C4E, 0xBAA2, 0xC2CF, 0x8C4F, 0xD8AB, 0x8C50, 0x8C51, 0x8C52, /* 0x60 */
- 0xCAEB, 0xE5EE, 0x8C53, 0xE6DC, 0x8C54, 0xB7F5, 0x8C55, 0x8C56, /* 0x70 */
- 0x8C57, 0x8C58, 0xC8E6, 0x8C59, 0x8C5A, 0xC4F5, 0x8C5B, 0x8C5C, /* 0x70 */
- 0xE5B2, 0xC4FE, 0x8C5D, 0xCBFC, 0xE5B3, 0xD5AC, 0x8C5E, 0xD3EE, /* 0x80 */
- 0xCAD8, 0xB0B2, 0x8C5F, 0xCBCE, 0xCDEA, 0x8C60, 0x8C61, 0xBAEA, /* 0x80 */
- 0x8C62, 0x8C63, 0x8C64, 0xE5B5, 0x8C65, 0xE5B4, 0x8C66, 0xD7DA, /* 0x90 */
- 0xB9D9, 0xD6E6, 0xB6A8, 0xCDF0, 0xD2CB, 0xB1A6, 0xCAB5, 0x8C67, /* 0x90 */
- 0xB3E8, 0xC9F3, 0xBFCD, 0xD0FB, 0xCAD2, 0xE5B6, 0xBBC2, 0x8C68, /* 0xA0 */
- 0x8C69, 0x8C6A, 0xCFDC, 0xB9AC, 0x8C6B, 0x8C6C, 0x8C6D, 0x8C6E, /* 0xA0 */
- 0xD4D7, 0x8C6F, 0x8C70, 0xBAA6, 0xD1E7, 0xCFFC, 0xBCD2, 0x8C71, /* 0xB0 */
- 0xE5B7, 0xC8DD, 0x8C72, 0x8C73, 0x8C74, 0xBFED, 0xB1F6, 0xCBDE, /* 0xB0 */
- 0x8C75, 0x8C76, 0xBCC5, 0x8C77, 0xBCC4, 0xD2FA, 0xC3DC, 0xBFDC, /* 0xC0 */
- 0x8C78, 0x8C79, 0x8C7A, 0x8C7B, 0xB8BB, 0x8C7C, 0x8C7D, 0x8C7E, /* 0xC0 */
- 0xC3C2, 0x8C80, 0xBAAE, 0xD4A2, 0x8C81, 0x8C82, 0x8C83, 0x8C84, /* 0xD0 */
- 0x8C85, 0x8C86, 0x8C87, 0x8C88, 0x8C89, 0xC7DE, 0xC4AF, 0xB2EC, /* 0xD0 */
- 0x8C8A, 0xB9D1, 0x8C8B, 0x8C8C, 0xE5BB, 0xC1C8, 0x8C8D, 0x8C8E, /* 0xE0 */
- 0xD5AF, 0x8C8F, 0x8C90, 0x8C91, 0x8C92, 0x8C93, 0xE5BC, 0x8C94, /* 0xE0 */
- 0xE5BE, 0x8C95, 0x8C96, 0x8C97, 0x8C98, 0x8C99, 0x8C9A, 0x8C9B, /* 0xF0 */
- 0xB4E7, 0xB6D4, 0xCBC2, 0xD1B0, 0xB5BC, 0x8C9C, 0x8C9D, 0xCAD9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_5C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8C9E, 0xB7E2, 0x8C9F, 0x8CA0, 0xC9E4, 0x8CA1, 0xBDAB, 0x8CA2, /* 0x00 */
- 0x8CA3, 0xCEBE, 0xD7F0, 0x8CA4, 0x8CA5, 0x8CA6, 0x8CA7, 0xD0A1, /* 0x00 */
- 0x8CA8, 0xC9D9, 0x8CA9, 0x8CAA, 0xB6FB, 0xE6D8, 0xBCE2, 0x8CAB, /* 0x10 */
- 0xB3BE, 0x8CAC, 0xC9D0, 0x8CAD, 0xE6D9, 0xB3A2, 0x8CAE, 0x8CAF, /* 0x10 */
- 0x8CB0, 0x8CB1, 0xDECC, 0x8CB2, 0xD3C8, 0xDECD, 0x8CB3, 0xD2A2, /* 0x20 */
- 0x8CB4, 0x8CB5, 0x8CB6, 0x8CB7, 0xDECE, 0x8CB8, 0x8CB9, 0x8CBA, /* 0x20 */
- 0x8CBB, 0xBECD, 0x8CBC, 0x8CBD, 0xDECF, 0x8CBE, 0x8CBF, 0x8CC0, /* 0x30 */
- 0xCAAC, 0xD2FC, 0xB3DF, 0xE5EA, 0xC4E1, 0xBEA1, 0xCEB2, 0xC4F2, /* 0x30 */
- 0xBED6, 0xC6A8, 0xB2E3, 0x8CC1, 0x8CC2, 0xBED3, 0x8CC3, 0x8CC4, /* 0x40 */
- 0xC7FC, 0xCCEB, 0xBDEC, 0xCEDD, 0x8CC5, 0x8CC6, 0xCABA, 0xC6C1, /* 0x40 */
- 0xE5EC, 0xD0BC, 0x8CC7, 0x8CC8, 0x8CC9, 0xD5B9, 0x8CCA, 0x8CCB, /* 0x50 */
- 0x8CCC, 0xE5ED, 0x8CCD, 0x8CCE, 0x8CCF, 0x8CD0, 0xCAF4, 0x8CD1, /* 0x50 */
- 0xCDC0, 0xC2C5, 0x8CD2, 0xE5EF, 0x8CD3, 0xC2C4, 0xE5F0, 0x8CD4, /* 0x60 */
- 0x8CD5, 0x8CD6, 0x8CD7, 0x8CD8, 0x8CD9, 0x8CDA, 0xE5F8, 0xCDCD, /* 0x60 */
- 0x8CDB, 0xC9BD, 0x8CDC, 0x8CDD, 0x8CDE, 0x8CDF, 0x8CE0, 0x8CE1, /* 0x70 */
- 0x8CE2, 0xD2D9, 0xE1A8, 0x8CE3, 0x8CE4, 0x8CE5, 0x8CE6, 0xD3EC, /* 0x70 */
- 0x8CE7, 0xCBEA, 0xC6F1, 0x8CE8, 0x8CE9, 0x8CEA, 0x8CEB, 0x8CEC, /* 0x80 */
- 0xE1AC, 0x8CED, 0x8CEE, 0x8CEF, 0xE1A7, 0xE1A9, 0x8CF0, 0x8CF1, /* 0x80 */
- 0xE1AA, 0xE1AF, 0x8CF2, 0x8CF3, 0xB2ED, 0x8CF4, 0xE1AB, 0xB8DA, /* 0x90 */
- 0xE1AD, 0xE1AE, 0xE1B0, 0xB5BA, 0xE1B1, 0x8CF5, 0x8CF6, 0x8CF7, /* 0x90 */
- 0x8CF8, 0x8CF9, 0xE1B3, 0xE1B8, 0x8CFA, 0x8CFB, 0x8CFC, 0x8CFD, /* 0xA0 */
- 0x8CFE, 0xD1D2, 0x8D40, 0xE1B6, 0xE1B5, 0xC1EB, 0x8D41, 0x8D42, /* 0xA0 */
- 0x8D43, 0xE1B7, 0x8D44, 0xD4C0, 0x8D45, 0xE1B2, 0x8D46, 0xE1BA, /* 0xB0 */
- 0xB0B6, 0x8D47, 0x8D48, 0x8D49, 0x8D4A, 0xE1B4, 0x8D4B, 0xBFF9, /* 0xB0 */
- 0x8D4C, 0xE1B9, 0x8D4D, 0x8D4E, 0xE1BB, 0x8D4F, 0x8D50, 0x8D51, /* 0xC0 */
- 0x8D52, 0x8D53, 0x8D54, 0xE1BE, 0x8D55, 0x8D56, 0x8D57, 0x8D58, /* 0xC0 */
- 0x8D59, 0x8D5A, 0xE1BC, 0x8D5B, 0x8D5C, 0x8D5D, 0x8D5E, 0x8D5F, /* 0xD0 */
- 0x8D60, 0xD6C5, 0x8D61, 0x8D62, 0x8D63, 0x8D64, 0x8D65, 0x8D66, /* 0xD0 */
- 0x8D67, 0xCFBF, 0x8D68, 0x8D69, 0xE1BD, 0xE1BF, 0xC2CD, 0x8D6A, /* 0xE0 */
- 0xB6EB, 0x8D6B, 0xD3F8, 0x8D6C, 0x8D6D, 0xC7CD, 0x8D6E, 0x8D6F, /* 0xE0 */
- 0xB7E5, 0x8D70, 0x8D71, 0x8D72, 0x8D73, 0x8D74, 0x8D75, 0x8D76, /* 0xF0 */
- 0x8D77, 0x8D78, 0x8D79, 0xBEFE, 0x8D7A, 0x8D7B, 0x8D7C, 0x8D7D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_5D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8D7E, 0x8D80, 0xE1C0, 0xE1C1, 0x8D81, 0x8D82, 0xE1C7, 0xB3E7, /* 0x00 */
- 0x8D83, 0x8D84, 0x8D85, 0x8D86, 0x8D87, 0x8D88, 0xC6E9, 0x8D89, /* 0x00 */
- 0x8D8A, 0x8D8B, 0x8D8C, 0x8D8D, 0xB4DE, 0x8D8E, 0xD1C2, 0x8D8F, /* 0x10 */
- 0x8D90, 0x8D91, 0x8D92, 0xE1C8, 0x8D93, 0x8D94, 0xE1C6, 0x8D95, /* 0x10 */
- 0x8D96, 0x8D97, 0x8D98, 0x8D99, 0xE1C5, 0x8D9A, 0xE1C3, 0xE1C2, /* 0x20 */
- 0x8D9B, 0xB1C0, 0x8D9C, 0x8D9D, 0x8D9E, 0xD5B8, 0xE1C4, 0x8D9F, /* 0x20 */
- 0x8DA0, 0x8DA1, 0x8DA2, 0x8DA3, 0xE1CB, 0x8DA4, 0x8DA5, 0x8DA6, /* 0x30 */
- 0x8DA7, 0x8DA8, 0x8DA9, 0x8DAA, 0x8DAB, 0xE1CC, 0xE1CA, 0x8DAC, /* 0x30 */
- 0x8DAD, 0x8DAE, 0x8DAF, 0x8DB0, 0x8DB1, 0x8DB2, 0x8DB3, 0xEFFA, /* 0x40 */
- 0x8DB4, 0x8DB5, 0xE1D3, 0xE1D2, 0xC7B6, 0x8DB6, 0x8DB7, 0x8DB8, /* 0x40 */
- 0x8DB9, 0x8DBA, 0x8DBB, 0x8DBC, 0x8DBD, 0x8DBE, 0x8DBF, 0x8DC0, /* 0x50 */
- 0xE1C9, 0x8DC1, 0x8DC2, 0xE1CE, 0x8DC3, 0xE1D0, 0x8DC4, 0x8DC5, /* 0x50 */
- 0x8DC6, 0x8DC7, 0x8DC8, 0x8DC9, 0x8DCA, 0x8DCB, 0x8DCC, 0x8DCD, /* 0x60 */
- 0x8DCE, 0xE1D4, 0x8DCF, 0xE1D1, 0xE1CD, 0x8DD0, 0x8DD1, 0xE1CF, /* 0x60 */
- 0x8DD2, 0x8DD3, 0x8DD4, 0x8DD5, 0xE1D5, 0x8DD6, 0x8DD7, 0x8DD8, /* 0x70 */
- 0x8DD9, 0x8DDA, 0x8DDB, 0x8DDC, 0x8DDD, 0x8DDE, 0x8DDF, 0x8DE0, /* 0x70 */
- 0x8DE1, 0x8DE2, 0xE1D6, 0x8DE3, 0x8DE4, 0x8DE5, 0x8DE6, 0x8DE7, /* 0x80 */
- 0x8DE8, 0x8DE9, 0x8DEA, 0x8DEB, 0x8DEC, 0x8DED, 0x8DEE, 0x8DEF, /* 0x80 */
- 0x8DF0, 0x8DF1, 0x8DF2, 0x8DF3, 0x8DF4, 0x8DF5, 0x8DF6, 0x8DF7, /* 0x90 */
- 0x8DF8, 0xE1D7, 0x8DF9, 0x8DFA, 0x8DFB, 0xE1D8, 0x8DFC, 0x8DFD, /* 0x90 */
- 0x8DFE, 0x8E40, 0x8E41, 0x8E42, 0x8E43, 0x8E44, 0x8E45, 0x8E46, /* 0xA0 */
- 0x8E47, 0x8E48, 0x8E49, 0x8E4A, 0x8E4B, 0x8E4C, 0x8E4D, 0x8E4E, /* 0xA0 */
- 0x8E4F, 0x8E50, 0x8E51, 0x8E52, 0x8E53, 0x8E54, 0x8E55, 0xE1DA, /* 0xB0 */
- 0x8E56, 0x8E57, 0x8E58, 0x8E59, 0x8E5A, 0x8E5B, 0x8E5C, 0x8E5D, /* 0xB0 */
- 0x8E5E, 0x8E5F, 0x8E60, 0x8E61, 0x8E62, 0xE1DB, 0x8E63, 0x8E64, /* 0xC0 */
- 0x8E65, 0x8E66, 0x8E67, 0x8E68, 0x8E69, 0xCEA1, 0x8E6A, 0x8E6B, /* 0xC0 */
- 0x8E6C, 0x8E6D, 0x8E6E, 0x8E6F, 0x8E70, 0x8E71, 0x8E72, 0x8E73, /* 0xD0 */
- 0x8E74, 0x8E75, 0x8E76, 0xE7DD, 0x8E77, 0xB4A8, 0xD6DD, 0x8E78, /* 0xD0 */
- 0x8E79, 0xD1B2, 0xB3B2, 0x8E7A, 0x8E7B, 0xB9A4, 0xD7F3, 0xC7C9, /* 0xE0 */
- 0xBEDE, 0xB9AE, 0x8E7C, 0xCED7, 0x8E7D, 0x8E7E, 0xB2EE, 0xDBCF, /* 0xE0 */
- 0x8E80, 0xBCBA, 0xD2D1, 0xCBC8, 0xB0CD, 0x8E81, 0x8E82, 0xCFEF, /* 0xF0 */
- 0x8E83, 0x8E84, 0x8E85, 0x8E86, 0x8E87, 0xD9E3, 0xBDED, 0x8E88 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_5E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8E89, 0xB1D2, 0xCAD0, 0xB2BC, 0x8E8A, 0xCBA7, 0xB7AB, 0x8E8B, /* 0x00 */
- 0xCAA6, 0x8E8C, 0x8E8D, 0x8E8E, 0xCFA3, 0x8E8F, 0x8E90, 0xE0F8, /* 0x00 */
- 0xD5CA, 0xE0FB, 0x8E91, 0x8E92, 0xE0FA, 0xC5C1, 0xCCFB, 0x8E93, /* 0x10 */
- 0xC1B1, 0xE0F9, 0xD6E3, 0xB2AF, 0xD6C4, 0xB5DB, 0x8E94, 0x8E95, /* 0x10 */
- 0x8E96, 0x8E97, 0x8E98, 0x8E99, 0x8E9A, 0x8E9B, 0xB4F8, 0xD6A1, /* 0x20 */
- 0x8E9C, 0x8E9D, 0x8E9E, 0x8E9F, 0x8EA0, 0xCFAF, 0xB0EF, 0x8EA1, /* 0x20 */
- 0x8EA2, 0xE0FC, 0x8EA3, 0x8EA4, 0x8EA5, 0x8EA6, 0x8EA7, 0xE1A1, /* 0x30 */
- 0xB3A3, 0x8EA8, 0x8EA9, 0xE0FD, 0xE0FE, 0xC3B1, 0x8EAA, 0x8EAB, /* 0x30 */
- 0x8EAC, 0x8EAD, 0xC3DD, 0x8EAE, 0xE1A2, 0xB7F9, 0x8EAF, 0x8EB0, /* 0x40 */
- 0x8EB1, 0x8EB2, 0x8EB3, 0x8EB4, 0xBBCF, 0x8EB5, 0x8EB6, 0x8EB7, /* 0x40 */
- 0x8EB8, 0x8EB9, 0x8EBA, 0x8EBB, 0xE1A3, 0xC4BB, 0x8EBC, 0x8EBD, /* 0x50 */
- 0x8EBE, 0x8EBF, 0x8EC0, 0xE1A4, 0x8EC1, 0x8EC2, 0xE1A5, 0x8EC3, /* 0x50 */
- 0x8EC4, 0xE1A6, 0xB4B1, 0x8EC5, 0x8EC6, 0x8EC7, 0x8EC8, 0x8EC9, /* 0x60 */
- 0x8ECA, 0x8ECB, 0x8ECC, 0x8ECD, 0x8ECE, 0x8ECF, 0x8ED0, 0x8ED1, /* 0x60 */
- 0x8ED2, 0x8ED3, 0xB8C9, 0xC6BD, 0xC4EA, 0x8ED4, 0xB2A2, 0x8ED5, /* 0x70 */
- 0xD0D2, 0x8ED6, 0xE7DB, 0xBBC3, 0xD3D7, 0xD3C4, 0x8ED7, 0xB9E3, /* 0x70 */
- 0xE2CF, 0x8ED8, 0x8ED9, 0x8EDA, 0xD7AF, 0x8EDB, 0xC7EC, 0xB1D3, /* 0x80 */
- 0x8EDC, 0x8EDD, 0xB4B2, 0xE2D1, 0x8EDE, 0x8EDF, 0x8EE0, 0xD0F2, /* 0x80 */
- 0xC2AE, 0xE2D0, 0x8EE1, 0xBFE2, 0xD3A6, 0xB5D7, 0xE2D2, 0xB5EA, /* 0x90 */
- 0x8EE2, 0xC3ED, 0xB8FD, 0x8EE3, 0xB8AE, 0x8EE4, 0xC5D3, 0xB7CF, /* 0x90 */
- 0xE2D4, 0x8EE5, 0x8EE6, 0x8EE7, 0x8EE8, 0xE2D3, 0xB6C8, 0xD7F9, /* 0xA0 */
- 0x8EE9, 0x8EEA, 0x8EEB, 0x8EEC, 0x8EED, 0xCDA5, 0x8EEE, 0x8EEF, /* 0xA0 */
- 0x8EF0, 0x8EF1, 0x8EF2, 0xE2D8, 0x8EF3, 0xE2D6, 0xCAFC, 0xBFB5, /* 0xB0 */
- 0xD3B9, 0xE2D5, 0x8EF4, 0x8EF5, 0x8EF6, 0x8EF7, 0xE2D7, 0x8EF8, /* 0xB0 */
- 0x8EF9, 0x8EFA, 0x8EFB, 0x8EFC, 0x8EFD, 0x8EFE, 0x8F40, 0x8F41, /* 0xC0 */
- 0x8F42, 0xC1AE, 0xC0C8, 0x8F43, 0x8F44, 0x8F45, 0x8F46, 0x8F47, /* 0xC0 */
- 0x8F48, 0xE2DB, 0xE2DA, 0xC0AA, 0x8F49, 0x8F4A, 0xC1CE, 0x8F4B, /* 0xD0 */
- 0x8F4C, 0x8F4D, 0x8F4E, 0xE2DC, 0x8F4F, 0x8F50, 0x8F51, 0x8F52, /* 0xD0 */
- 0x8F53, 0x8F54, 0x8F55, 0x8F56, 0x8F57, 0x8F58, 0x8F59, 0x8F5A, /* 0xE0 */
- 0xE2DD, 0x8F5B, 0xE2DE, 0x8F5C, 0x8F5D, 0x8F5E, 0x8F5F, 0x8F60, /* 0xE0 */
- 0x8F61, 0x8F62, 0x8F63, 0x8F64, 0xDBC8, 0x8F65, 0xD1D3, 0xCDA2, /* 0xF0 */
- 0x8F66, 0x8F67, 0xBDA8, 0x8F68, 0x8F69, 0x8F6A, 0xDEC3, 0xD8A5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_5F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBFAA, 0xDBCD, 0xD2EC, 0xC6FA, 0xC5AA, 0x8F6B, 0x8F6C, 0x8F6D, /* 0x00 */
- 0xDEC4, 0x8F6E, 0xB1D7, 0xDFAE, 0x8F6F, 0x8F70, 0x8F71, 0xCABD, /* 0x00 */
- 0x8F72, 0xDFB1, 0x8F73, 0xB9AD, 0x8F74, 0xD2FD, 0x8F75, 0xB8A5, /* 0x10 */
- 0xBAEB, 0x8F76, 0x8F77, 0xB3DA, 0x8F78, 0x8F79, 0x8F7A, 0xB5DC, /* 0x10 */
- 0xD5C5, 0x8F7B, 0x8F7C, 0x8F7D, 0x8F7E, 0xC3D6, 0xCFD2, 0xBBA1, /* 0x20 */
- 0x8F80, 0xE5F3, 0xE5F2, 0x8F81, 0x8F82, 0xE5F4, 0x8F83, 0xCDE4, /* 0x20 */
- 0x8F84, 0xC8F5, 0x8F85, 0x8F86, 0x8F87, 0x8F88, 0x8F89, 0x8F8A, /* 0x30 */
- 0x8F8B, 0xB5AF, 0xC7BF, 0x8F8C, 0xE5F6, 0x8F8D, 0x8F8E, 0x8F8F, /* 0x30 */
- 0xECB0, 0x8F90, 0x8F91, 0x8F92, 0x8F93, 0x8F94, 0x8F95, 0x8F96, /* 0x40 */
- 0x8F97, 0x8F98, 0x8F99, 0x8F9A, 0x8F9B, 0x8F9C, 0x8F9D, 0x8F9E, /* 0x40 */
- 0xE5E6, 0x8F9F, 0xB9E9, 0xB5B1, 0x8FA0, 0xC2BC, 0xE5E8, 0xE5E7, /* 0x50 */
- 0xE5E9, 0x8FA1, 0x8FA2, 0x8FA3, 0x8FA4, 0xD2CD, 0x8FA5, 0x8FA6, /* 0x50 */
- 0x8FA7, 0xE1EA, 0xD0CE, 0x8FA8, 0xCDAE, 0x8FA9, 0xD1E5, 0x8FAA, /* 0x60 */
- 0x8FAB, 0xB2CA, 0xB1EB, 0x8FAC, 0xB1F2, 0xC5ED, 0x8FAD, 0x8FAE, /* 0x60 */
- 0xD5C3, 0xD3B0, 0x8FAF, 0xE1DC, 0x8FB0, 0x8FB1, 0x8FB2, 0xE1DD, /* 0x70 */
- 0x8FB3, 0xD2DB, 0x8FB4, 0xB3B9, 0xB1CB, 0x8FB5, 0x8FB6, 0x8FB7, /* 0x70 */
- 0xCDF9, 0xD5F7, 0xE1DE, 0x8FB8, 0xBEB6, 0xB4FD, 0x8FB9, 0xE1DF, /* 0x80 */
- 0xBADC, 0xE1E0, 0xBBB2, 0xC2C9, 0xE1E1, 0x8FBA, 0x8FBB, 0x8FBC, /* 0x80 */
- 0xD0EC, 0x8FBD, 0xCDBD, 0x8FBE, 0x8FBF, 0xE1E2, 0x8FC0, 0xB5C3, /* 0x90 */
- 0xC5C7, 0xE1E3, 0x8FC1, 0x8FC2, 0xE1E4, 0x8FC3, 0x8FC4, 0x8FC5, /* 0x90 */
- 0x8FC6, 0xD3F9, 0x8FC7, 0x8FC8, 0x8FC9, 0x8FCA, 0x8FCB, 0x8FCC, /* 0xA0 */
- 0xE1E5, 0x8FCD, 0xD1AD, 0x8FCE, 0x8FCF, 0xE1E6, 0xCEA2, 0x8FD0, /* 0xA0 */
- 0x8FD1, 0x8FD2, 0x8FD3, 0x8FD4, 0x8FD5, 0xE1E7, 0x8FD6, 0xB5C2, /* 0xB0 */
- 0x8FD7, 0x8FD8, 0x8FD9, 0x8FDA, 0xE1E8, 0xBBD5, 0x8FDB, 0x8FDC, /* 0xB0 */
- 0x8FDD, 0x8FDE, 0x8FDF, 0xD0C4, 0xE2E0, 0xB1D8, 0xD2E4, 0x8FE0, /* 0xC0 */
- 0x8FE1, 0xE2E1, 0x8FE2, 0x8FE3, 0xBCC9, 0xC8CC, 0x8FE4, 0xE2E3, /* 0xC0 */
- 0xECFE, 0xECFD, 0xDFAF, 0x8FE5, 0x8FE6, 0x8FE7, 0xE2E2, 0xD6BE, /* 0xD0 */
- 0xCDFC, 0xC3A6, 0x8FE8, 0x8FE9, 0x8FEA, 0xE3C3, 0x8FEB, 0x8FEC, /* 0xD0 */
- 0xD6D2, 0xE2E7, 0x8FED, 0x8FEE, 0xE2E8, 0x8FEF, 0x8FF0, 0xD3C7, /* 0xE0 */
- 0x8FF1, 0x8FF2, 0xE2EC, 0xBFEC, 0x8FF3, 0xE2ED, 0xE2E5, 0x8FF4, /* 0xE0 */
- 0x8FF5, 0xB3C0, 0x8FF6, 0x8FF7, 0x8FF8, 0xC4EE, 0x8FF9, 0x8FFA, /* 0xF0 */
- 0xE2EE, 0x8FFB, 0x8FFC, 0xD0C3, 0x8FFD, 0xBAF6, 0xE2E9, 0xB7DE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_60[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBBB3, 0xCCAC, 0xCBCB, 0xE2E4, 0xE2E6, 0xE2EA, 0xE2EB, 0x8FFE, /* 0x00 */
- 0x9040, 0x9041, 0xE2F7, 0x9042, 0x9043, 0xE2F4, 0xD4F5, 0xE2F3, /* 0x00 */
- 0x9044, 0x9045, 0xC5AD, 0x9046, 0xD5FA, 0xC5C2, 0xB2C0, 0x9047, /* 0x10 */
- 0x9048, 0xE2EF, 0x9049, 0xE2F2, 0xC1AF, 0xCBBC, 0x904A, 0x904B, /* 0x10 */
- 0xB5A1, 0xE2F9, 0x904C, 0x904D, 0x904E, 0xBCB1, 0xE2F1, 0xD0D4, /* 0x20 */
- 0xD4B9, 0xE2F5, 0xB9D6, 0xE2F6, 0x904F, 0x9050, 0x9051, 0xC7D3, /* 0x20 */
- 0x9052, 0x9053, 0x9054, 0x9055, 0x9056, 0xE2F0, 0x9057, 0x9058, /* 0x30 */
- 0x9059, 0x905A, 0x905B, 0xD7DC, 0xEDA1, 0x905C, 0x905D, 0xE2F8, /* 0x30 */
- 0x905E, 0xEDA5, 0xE2FE, 0xCAD1, 0x905F, 0x9060, 0x9061, 0x9062, /* 0x40 */
- 0x9063, 0x9064, 0x9065, 0xC1B5, 0x9066, 0xBBD0, 0x9067, 0x9068, /* 0x40 */
- 0xBFD6, 0x9069, 0xBAE3, 0x906A, 0x906B, 0xCBA1, 0x906C, 0x906D, /* 0x50 */
- 0x906E, 0xEDA6, 0xEDA3, 0x906F, 0x9070, 0xEDA2, 0x9071, 0x9072, /* 0x50 */
- 0x9073, 0x9074, 0xBBD6, 0xEDA7, 0xD0F4, 0x9075, 0x9076, 0xEDA4, /* 0x60 */
- 0xBADE, 0xB6F7, 0xE3A1, 0xB6B2, 0xCCF1, 0xB9A7, 0x9077, 0xCFA2, /* 0x60 */
- 0xC7A1, 0x9078, 0x9079, 0xBFD2, 0x907A, 0x907B, 0xB6F1, 0x907C, /* 0x70 */
- 0xE2FA, 0xE2FB, 0xE2FD, 0xE2FC, 0xC4D5, 0xE3A2, 0x907D, 0xD3C1, /* 0x70 */
- 0x907E, 0x9080, 0x9081, 0xE3A7, 0xC7C4, 0x9082, 0x9083, 0x9084, /* 0x80 */
- 0x9085, 0xCFA4, 0x9086, 0x9087, 0xE3A9, 0xBAB7, 0x9088, 0x9089, /* 0x80 */
- 0x908A, 0x908B, 0xE3A8, 0x908C, 0xBBDA, 0x908D, 0xE3A3, 0x908E, /* 0x90 */
- 0x908F, 0x9090, 0xE3A4, 0xE3AA, 0x9091, 0xE3A6, 0x9092, 0xCEF2, /* 0x90 */
- 0xD3C6, 0x9093, 0x9094, 0xBBBC, 0x9095, 0x9096, 0xD4C3, 0x9097, /* 0xA0 */
- 0xC4FA, 0x9098, 0x9099, 0xEDA8, 0xD0FC, 0xE3A5, 0x909A, 0xC3F5, /* 0xA0 */
- 0x909B, 0xE3AD, 0xB1AF, 0x909C, 0xE3B2, 0x909D, 0x909E, 0x909F, /* 0xB0 */
- 0xBCC2, 0x90A0, 0x90A1, 0xE3AC, 0xB5BF, 0x90A2, 0x90A3, 0x90A4, /* 0xB0 */
- 0x90A5, 0x90A6, 0x90A7, 0x90A8, 0x90A9, 0xC7E9, 0xE3B0, 0x90AA, /* 0xC0 */
- 0x90AB, 0x90AC, 0xBEAA, 0xCDEF, 0x90AD, 0x90AE, 0x90AF, 0x90B0, /* 0xC0 */
- 0x90B1, 0xBBF3, 0x90B2, 0x90B3, 0x90B4, 0xCCE8, 0x90B5, 0x90B6, /* 0xD0 */
- 0xE3AF, 0x90B7, 0xE3B1, 0x90B8, 0xCFA7, 0xE3AE, 0x90B9, 0xCEA9, /* 0xD0 */
- 0xBBDD, 0x90BA, 0x90BB, 0x90BC, 0x90BD, 0x90BE, 0xB5EB, 0xBEE5, /* 0xE0 */
- 0xB2D2, 0xB3CD, 0x90BF, 0xB1B9, 0xE3AB, 0xB2D1, 0xB5AC, 0xB9DF, /* 0xE0 */
- 0xB6E8, 0x90C0, 0x90C1, 0xCFEB, 0xE3B7, 0x90C2, 0xBBCC, 0x90C3, /* 0xF0 */
- 0x90C4, 0xC8C7, 0xD0CA, 0x90C5, 0x90C6, 0x90C7, 0x90C8, 0x90C9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_61[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE3B8, 0xB3EE, 0x90CA, 0x90CB, 0x90CC, 0x90CD, 0xEDA9, 0x90CE, /* 0x00 */
- 0xD3FA, 0xD3E4, 0x90CF, 0x90D0, 0x90D1, 0xEDAA, 0xE3B9, 0xD2E2, /* 0x00 */
- 0x90D2, 0x90D3, 0x90D4, 0x90D5, 0x90D6, 0xE3B5, 0x90D7, 0x90D8, /* 0x10 */
- 0x90D9, 0x90DA, 0xD3DE, 0x90DB, 0x90DC, 0x90DD, 0x90DE, 0xB8D0, /* 0x10 */
- 0xE3B3, 0x90DF, 0x90E0, 0xE3B6, 0xB7DF, 0x90E1, 0xE3B4, 0xC0A2, /* 0x20 */
- 0x90E2, 0x90E3, 0x90E4, 0xE3BA, 0x90E5, 0x90E6, 0x90E7, 0x90E8, /* 0x20 */
- 0x90E9, 0x90EA, 0x90EB, 0x90EC, 0x90ED, 0x90EE, 0x90EF, 0x90F0, /* 0x30 */
- 0x90F1, 0x90F2, 0x90F3, 0x90F4, 0x90F5, 0x90F6, 0x90F7, 0xD4B8, /* 0x30 */
- 0x90F8, 0x90F9, 0x90FA, 0x90FB, 0x90FC, 0x90FD, 0x90FE, 0x9140, /* 0x40 */
- 0xB4C8, 0x9141, 0xE3BB, 0x9142, 0xBBC5, 0x9143, 0xC9F7, 0x9144, /* 0x40 */
- 0x9145, 0xC9E5, 0x9146, 0x9147, 0x9148, 0xC4BD, 0x9149, 0x914A, /* 0x50 */
- 0x914B, 0x914C, 0x914D, 0x914E, 0x914F, 0xEDAB, 0x9150, 0x9151, /* 0x50 */
- 0x9152, 0x9153, 0xC2FD, 0x9154, 0x9155, 0x9156, 0x9157, 0xBBDB, /* 0x60 */
- 0xBFAE, 0x9158, 0x9159, 0x915A, 0x915B, 0x915C, 0x915D, 0x915E, /* 0x60 */
- 0xCEBF, 0x915F, 0x9160, 0x9161, 0x9162, 0xE3BC, 0x9163, 0xBFB6, /* 0x70 */
- 0x9164, 0x9165, 0x9166, 0x9167, 0x9168, 0x9169, 0x916A, 0x916B, /* 0x70 */
- 0x916C, 0x916D, 0x916E, 0x916F, 0x9170, 0x9171, 0x9172, 0x9173, /* 0x80 */
- 0x9174, 0x9175, 0x9176, 0xB1EF, 0x9177, 0x9178, 0xD4F7, 0x9179, /* 0x80 */
- 0x917A, 0x917B, 0x917C, 0x917D, 0xE3BE, 0x917E, 0x9180, 0x9181, /* 0x90 */
- 0x9182, 0x9183, 0x9184, 0x9185, 0x9186, 0xEDAD, 0x9187, 0x9188, /* 0x90 */
- 0x9189, 0x918A, 0x918B, 0x918C, 0x918D, 0x918E, 0x918F, 0xE3BF, /* 0xA0 */
- 0xBAA9, 0xEDAC, 0x9190, 0x9191, 0xE3BD, 0x9192, 0x9193, 0x9194, /* 0xA0 */
- 0x9195, 0x9196, 0x9197, 0x9198, 0x9199, 0x919A, 0x919B, 0xE3C0, /* 0xB0 */
- 0x919C, 0x919D, 0x919E, 0x919F, 0x91A0, 0x91A1, 0xBAB6, 0x91A2, /* 0xB0 */
- 0x91A3, 0x91A4, 0xB6AE, 0x91A5, 0x91A6, 0x91A7, 0x91A8, 0x91A9, /* 0xC0 */
- 0xD0B8, 0x91AA, 0xB0C3, 0xEDAE, 0x91AB, 0x91AC, 0x91AD, 0x91AE, /* 0xC0 */
- 0x91AF, 0xEDAF, 0xC0C1, 0x91B0, 0xE3C1, 0x91B1, 0x91B2, 0x91B3, /* 0xD0 */
- 0x91B4, 0x91B5, 0x91B6, 0x91B7, 0x91B8, 0x91B9, 0x91BA, 0x91BB, /* 0xD0 */
- 0x91BC, 0x91BD, 0x91BE, 0x91BF, 0x91C0, 0x91C1, 0xC5B3, 0x91C2, /* 0xE0 */
- 0x91C3, 0x91C4, 0x91C5, 0x91C6, 0x91C7, 0x91C8, 0x91C9, 0x91CA, /* 0xE0 */
- 0x91CB, 0x91CC, 0x91CD, 0x91CE, 0x91CF, 0xE3C2, 0x91D0, 0x91D1, /* 0xF0 */
- 0x91D2, 0x91D3, 0x91D4, 0x91D5, 0x91D6, 0x91D7, 0x91D8, 0xDCB2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_62[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x91D9, 0x91DA, 0x91DB, 0x91DC, 0x91DD, 0x91DE, 0xEDB0, 0x91DF, /* 0x00 */
- 0xB8EA, 0x91E0, 0xCEEC, 0xEAA7, 0xD0E7, 0xCAF9, 0xC8D6, 0xCFB7, /* 0x00 */
- 0xB3C9, 0xCED2, 0xBDE4, 0x91E1, 0x91E2, 0xE3DE, 0xBBF2, 0xEAA8, /* 0x10 */
- 0xD5BD, 0x91E3, 0xC6DD, 0xEAA9, 0x91E4, 0x91E5, 0x91E6, 0xEAAA, /* 0x10 */
- 0x91E7, 0xEAAC, 0xEAAB, 0x91E8, 0xEAAE, 0xEAAD, 0x91E9, 0x91EA, /* 0x20 */
- 0x91EB, 0x91EC, 0xBDD8, 0x91ED, 0xEAAF, 0x91EE, 0xC2BE, 0x91EF, /* 0x20 */
- 0x91F0, 0x91F1, 0x91F2, 0xB4C1, 0xB4F7, 0x91F3, 0x91F4, 0xBBA7, /* 0x30 */
- 0x91F5, 0x91F6, 0x91F7, 0x91F8, 0x91F9, 0xECE6, 0xECE5, 0xB7BF, /* 0x30 */
- 0xCBF9, 0xB1E2, 0x91FA, 0xECE7, 0x91FB, 0x91FC, 0x91FD, 0xC9C8, /* 0x40 */
- 0xECE8, 0xECE9, 0x91FE, 0xCAD6, 0xDED0, 0xB2C5, 0xD4FA, 0x9240, /* 0x40 */
- 0x9241, 0xC6CB, 0xB0C7, 0xB4F2, 0xC8D3, 0x9242, 0x9243, 0x9244, /* 0x50 */
- 0xCDD0, 0x9245, 0x9246, 0xBFB8, 0x9247, 0x9248, 0x9249, 0x924A, /* 0x50 */
- 0x924B, 0x924C, 0x924D, 0xBFDB, 0x924E, 0x924F, 0xC7A4, 0xD6B4, /* 0x60 */
- 0x9250, 0xC0A9, 0xDED1, 0xC9A8, 0xD1EF, 0xC5A4, 0xB0E7, 0xB3B6, /* 0x60 */
- 0xC8C5, 0x9251, 0x9252, 0xB0E2, 0x9253, 0x9254, 0xB7F6, 0x9255, /* 0x70 */
- 0x9256, 0xC5FA, 0x9257, 0x9258, 0xB6F3, 0x9259, 0xD5D2, 0xB3D0, /* 0x70 */
- 0xBCBC, 0x925A, 0x925B, 0x925C, 0xB3AD, 0x925D, 0x925E, 0x925F, /* 0x80 */
- 0x9260, 0xBEF1, 0xB0D1, 0x9261, 0x9262, 0x9263, 0x9264, 0x9265, /* 0x80 */
- 0x9266, 0xD2D6, 0xCAE3, 0xD7A5, 0x9267, 0xCDB6, 0xB6B6, 0xBFB9, /* 0x90 */
- 0xD5DB, 0x9268, 0xB8A7, 0xC5D7, 0x9269, 0x926A, 0x926B, 0xDED2, /* 0x90 */
- 0xBFD9, 0xC2D5, 0xC7C0, 0x926C, 0xBBA4, 0xB1A8, 0x926D, 0x926E, /* 0xA0 */
- 0xC5EA, 0x926F, 0x9270, 0xC5FB, 0xCCA7, 0x9271, 0x9272, 0x9273, /* 0xA0 */
- 0x9274, 0xB1A7, 0x9275, 0x9276, 0x9277, 0xB5D6, 0x9278, 0x9279, /* 0xB0 */
- 0x927A, 0xC4A8, 0x927B, 0xDED3, 0xD1BA, 0xB3E9, 0x927C, 0xC3F2, /* 0xB0 */
- 0x927D, 0x927E, 0xB7F7, 0x9280, 0xD6F4, 0xB5A3, 0xB2F0, 0xC4B4, /* 0xC0 */
- 0xC4E9, 0xC0AD, 0xDED4, 0x9281, 0xB0E8, 0xC5C4, 0xC1E0, 0x9282, /* 0xC0 */
- 0xB9D5, 0x9283, 0xBEDC, 0xCDD8, 0xB0CE, 0x9284, 0xCDCF, 0xDED6, /* 0xD0 */
- 0xBED0, 0xD7BE, 0xDED5, 0xD5D0, 0xB0DD, 0x9285, 0x9286, 0xC4E2, /* 0xD0 */
- 0x9287, 0x9288, 0xC2A3, 0xBCF0, 0x9289, 0xD3B5, 0xC0B9, 0xC5A1, /* 0xE0 */
- 0xB2A6, 0xD4F1, 0x928A, 0x928B, 0xC0A8, 0xCAC3, 0xDED7, 0xD5FC, /* 0xE0 */
- 0x928C, 0xB9B0, 0x928D, 0xC8AD, 0xCBA9, 0x928E, 0xDED9, 0xBFBD, /* 0xF0 */
- 0x928F, 0x9290, 0x9291, 0x9292, 0xC6B4, 0xD7A7, 0xCAB0, 0xC4C3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_63[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9293, 0xB3D6, 0xB9D2, 0x9294, 0x9295, 0x9296, 0x9297, 0xD6B8, /* 0x00 */
- 0xEAFC, 0xB0B4, 0x9298, 0x9299, 0x929A, 0x929B, 0xBFE6, 0x929C, /* 0x00 */
- 0x929D, 0xCCF4, 0x929E, 0x929F, 0x92A0, 0x92A1, 0xCDDA, 0x92A2, /* 0x10 */
- 0x92A3, 0x92A4, 0xD6BF, 0xC2CE, 0x92A5, 0xCECE, 0xCCA2, 0xD0AE, /* 0x10 */
- 0xC4D3, 0xB5B2, 0xDED8, 0xD5F5, 0xBCB7, 0xBBD3, 0x92A6, 0x92A7, /* 0x20 */
- 0xB0A4, 0x92A8, 0xC5B2, 0xB4EC, 0x92A9, 0x92AA, 0x92AB, 0xD5F1, /* 0x20 */
- 0x92AC, 0x92AD, 0xEAFD, 0x92AE, 0x92AF, 0x92B0, 0x92B1, 0x92B2, /* 0x30 */
- 0x92B3, 0xDEDA, 0xCDA6, 0x92B4, 0x92B5, 0xCDEC, 0x92B6, 0x92B7, /* 0x30 */
- 0x92B8, 0x92B9, 0xCEE6, 0xDEDC, 0x92BA, 0xCDB1, 0xC0A6, 0x92BB, /* 0x40 */
- 0x92BC, 0xD7BD, 0x92BD, 0xDEDB, 0xB0C6, 0xBAB4, 0xC9D3, 0xC4F3, /* 0x40 */
- 0xBEE8, 0x92BE, 0x92BF, 0x92C0, 0x92C1, 0xB2B6, 0x92C2, 0x92C3, /* 0x50 */
- 0x92C4, 0x92C5, 0x92C6, 0x92C7, 0x92C8, 0x92C9, 0xC0CC, 0xCBF0, /* 0x50 */
- 0x92CA, 0xBCF1, 0xBBBB, 0xB5B7, 0x92CB, 0x92CC, 0x92CD, 0xC5F5, /* 0x60 */
- 0x92CE, 0xDEE6, 0x92CF, 0x92D0, 0x92D1, 0xDEE3, 0xBEDD, 0x92D2, /* 0x60 */
- 0x92D3, 0xDEDF, 0x92D4, 0x92D5, 0x92D6, 0x92D7, 0xB4B7, 0xBDDD, /* 0x70 */
- 0x92D8, 0x92D9, 0xDEE0, 0xC4ED, 0x92DA, 0x92DB, 0x92DC, 0x92DD, /* 0x70 */
- 0xCFC6, 0x92DE, 0xB5E0, 0x92DF, 0x92E0, 0x92E1, 0x92E2, 0xB6DE, /* 0x80 */
- 0xCADA, 0xB5F4, 0xDEE5, 0x92E3, 0xD5C6, 0x92E4, 0xDEE1, 0xCCCD, /* 0x80 */
- 0xC6FE, 0x92E5, 0xC5C5, 0x92E6, 0x92E7, 0x92E8, 0xD2B4, 0x92E9, /* 0x90 */
- 0xBEF2, 0x92EA, 0x92EB, 0x92EC, 0x92ED, 0x92EE, 0x92EF, 0x92F0, /* 0x90 */
- 0xC2D3, 0x92F1, 0xCCBD, 0xB3B8, 0x92F2, 0xBDD3, 0x92F3, 0xBFD8, /* 0xA0 */
- 0xCDC6, 0xD1DA, 0xB4EB, 0x92F4, 0xDEE4, 0xDEDD, 0xDEE7, 0x92F5, /* 0xA0 */
- 0xEAFE, 0x92F6, 0x92F7, 0xC2B0, 0xDEE2, 0x92F8, 0x92F9, 0xD6C0, /* 0xB0 */
- 0xB5A7, 0x92FA, 0xB2F4, 0x92FB, 0xDEE8, 0x92FC, 0xDEF2, 0x92FD, /* 0xB0 */
- 0x92FE, 0x9340, 0x9341, 0x9342, 0xDEED, 0x9343, 0xDEF1, 0x9344, /* 0xC0 */
- 0x9345, 0xC8E0, 0x9346, 0x9347, 0x9348, 0xD7E1, 0xDEEF, 0xC3E8, /* 0xC0 */
- 0xCCE1, 0x9349, 0xB2E5, 0x934A, 0x934B, 0x934C, 0xD2BE, 0x934D, /* 0xD0 */
- 0x934E, 0x934F, 0x9350, 0x9351, 0x9352, 0x9353, 0xDEEE, 0x9354, /* 0xD0 */
- 0xDEEB, 0xCED5, 0x9355, 0xB4A7, 0x9356, 0x9357, 0x9358, 0x9359, /* 0xE0 */
- 0x935A, 0xBFAB, 0xBEBE, 0x935B, 0x935C, 0xBDD2, 0x935D, 0x935E, /* 0xE0 */
- 0x935F, 0x9360, 0xDEE9, 0x9361, 0xD4AE, 0x9362, 0xDEDE, 0x9363, /* 0xF0 */
- 0xDEEA, 0x9364, 0x9365, 0x9366, 0x9367, 0xC0BF, 0x9368, 0xDEEC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_64[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB2F3, 0xB8E9, 0xC2A7, 0x9369, 0x936A, 0xBDC1, 0x936B, 0x936C, /* 0x00 */
- 0x936D, 0x936E, 0x936F, 0xDEF5, 0xDEF8, 0x9370, 0x9371, 0xB2AB, /* 0x00 */
- 0xB4A4, 0x9372, 0x9373, 0xB4EA, 0xC9A6, 0x9374, 0x9375, 0x9376, /* 0x10 */
- 0x9377, 0x9378, 0x9379, 0xDEF6, 0xCBD1, 0x937A, 0xB8E3, 0x937B, /* 0x10 */
- 0xDEF7, 0xDEFA, 0x937C, 0x937D, 0x937E, 0x9380, 0xDEF9, 0x9381, /* 0x20 */
- 0x9382, 0x9383, 0xCCC2, 0x9384, 0xB0E1, 0xB4EE, 0x9385, 0x9386, /* 0x20 */
- 0x9387, 0x9388, 0x9389, 0x938A, 0xE5BA, 0x938B, 0x938C, 0x938D, /* 0x30 */
- 0x938E, 0x938F, 0xD0AF, 0x9390, 0x9391, 0xB2EB, 0x9392, 0xEBA1, /* 0x30 */
- 0x9393, 0xDEF4, 0x9394, 0x9395, 0xC9E3, 0xDEF3, 0xB0DA, 0xD2A1, /* 0x40 */
- 0xB1F7, 0x9396, 0xCCAF, 0x9397, 0x9398, 0x9399, 0x939A, 0x939B, /* 0x40 */
- 0x939C, 0x939D, 0xDEF0, 0x939E, 0xCBA4, 0x939F, 0x93A0, 0x93A1, /* 0x50 */
- 0xD5AA, 0x93A2, 0x93A3, 0x93A4, 0x93A5, 0x93A6, 0xDEFB, 0x93A7, /* 0x50 */
- 0x93A8, 0x93A9, 0x93AA, 0x93AB, 0x93AC, 0x93AD, 0x93AE, 0xB4DD, /* 0x60 */
- 0x93AF, 0xC4A6, 0x93B0, 0x93B1, 0x93B2, 0xDEFD, 0x93B3, 0x93B4, /* 0x60 */
- 0x93B5, 0x93B6, 0x93B7, 0x93B8, 0x93B9, 0x93BA, 0x93BB, 0x93BC, /* 0x70 */
- 0xC3FE, 0xC4A1, 0xDFA1, 0x93BD, 0x93BE, 0x93BF, 0x93C0, 0x93C1, /* 0x70 */
- 0x93C2, 0x93C3, 0xC1CC, 0x93C4, 0xDEFC, 0xBEEF, 0x93C5, 0xC6B2, /* 0x80 */
- 0x93C6, 0x93C7, 0x93C8, 0x93C9, 0x93CA, 0x93CB, 0x93CC, 0x93CD, /* 0x80 */
- 0x93CE, 0xB3C5, 0xC8F6, 0x93CF, 0x93D0, 0xCBBA, 0xDEFE, 0x93D1, /* 0x90 */
- 0x93D2, 0xDFA4, 0x93D3, 0x93D4, 0x93D5, 0x93D6, 0xD7B2, 0x93D7, /* 0x90 */
- 0x93D8, 0x93D9, 0x93DA, 0x93DB, 0xB3B7, 0x93DC, 0x93DD, 0x93DE, /* 0xA0 */
- 0x93DF, 0xC1C3, 0x93E0, 0x93E1, 0xC7CB, 0xB2A5, 0xB4E9, 0x93E2, /* 0xA0 */
- 0xD7AB, 0x93E3, 0x93E4, 0x93E5, 0x93E6, 0xC4EC, 0x93E7, 0xDFA2, /* 0xB0 */
- 0xDFA3, 0x93E8, 0xDFA5, 0x93E9, 0xBAB3, 0x93EA, 0x93EB, 0x93EC, /* 0xB0 */
- 0xDFA6, 0x93ED, 0xC0DE, 0x93EE, 0x93EF, 0xC9C3, 0x93F0, 0x93F1, /* 0xC0 */
- 0x93F2, 0x93F3, 0x93F4, 0x93F5, 0x93F6, 0xB2D9, 0xC7E6, 0x93F7, /* 0xC0 */
- 0xDFA7, 0x93F8, 0xC7DC, 0x93F9, 0x93FA, 0x93FB, 0x93FC, 0xDFA8, /* 0xD0 */
- 0xEBA2, 0x93FD, 0x93FE, 0x9440, 0x9441, 0x9442, 0xCBD3, 0x9443, /* 0xD0 */
- 0x9444, 0x9445, 0xDFAA, 0x9446, 0xDFA9, 0x9447, 0xB2C1, 0x9448, /* 0xE0 */
- 0x9449, 0x944A, 0x944B, 0x944C, 0x944D, 0x944E, 0x944F, 0x9450, /* 0xE0 */
- 0x9451, 0x9452, 0x9453, 0x9454, 0x9455, 0x9456, 0x9457, 0x9458, /* 0xF0 */
- 0x9459, 0x945A, 0x945B, 0x945C, 0x945D, 0x945E, 0x945F, 0x9460 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_65[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC5CA, 0x9461, 0x9462, 0x9463, 0x9464, 0x9465, 0x9466, 0x9467, /* 0x00 */
- 0x9468, 0xDFAB, 0x9469, 0x946A, 0x946B, 0x946C, 0x946D, 0x946E, /* 0x00 */
- 0x946F, 0x9470, 0xD4DC, 0x9471, 0x9472, 0x9473, 0x9474, 0x9475, /* 0x10 */
- 0xC8C1, 0x9476, 0x9477, 0x9478, 0x9479, 0x947A, 0x947B, 0x947C, /* 0x10 */
- 0x947D, 0x947E, 0x9480, 0x9481, 0x9482, 0xDFAC, 0x9483, 0x9484, /* 0x20 */
- 0x9485, 0x9486, 0x9487, 0xBEF0, 0x9488, 0x9489, 0xDFAD, 0xD6A7, /* 0x20 */
- 0x948A, 0x948B, 0x948C, 0x948D, 0xEAB7, 0xEBB6, 0xCAD5, 0x948E, /* 0x30 */
- 0xD8FC, 0xB8C4, 0x948F, 0xB9A5, 0x9490, 0x9491, 0xB7C5, 0xD5FE, /* 0x30 */
- 0x9492, 0x9493, 0x9494, 0x9495, 0x9496, 0xB9CA, 0x9497, 0x9498, /* 0x40 */
- 0xD0A7, 0xF4CD, 0x9499, 0x949A, 0xB5D0, 0x949B, 0x949C, 0xC3F4, /* 0x40 */
- 0x949D, 0xBEC8, 0x949E, 0x949F, 0x94A0, 0xEBB7, 0xB0BD, 0x94A1, /* 0x50 */
- 0x94A2, 0xBDCC, 0x94A3, 0xC1B2, 0x94A4, 0xB1D6, 0xB3A8, 0x94A5, /* 0x50 */
- 0x94A6, 0x94A7, 0xB8D2, 0xC9A2, 0x94A8, 0x94A9, 0xB6D8, 0x94AA, /* 0x60 */
- 0x94AB, 0x94AC, 0x94AD, 0xEBB8, 0xBEB4, 0x94AE, 0x94AF, 0x94B0, /* 0x60 */
- 0xCAFD, 0x94B1, 0xC7C3, 0x94B2, 0xD5FB, 0x94B3, 0x94B4, 0xB7F3, /* 0x70 */
- 0x94B5, 0x94B6, 0x94B7, 0x94B8, 0x94B9, 0x94BA, 0x94BB, 0x94BC, /* 0x70 */
- 0x94BD, 0x94BE, 0x94BF, 0x94C0, 0x94C1, 0x94C2, 0x94C3, 0xCEC4, /* 0x80 */
- 0x94C4, 0x94C5, 0x94C6, 0xD5AB, 0xB1F3, 0x94C7, 0x94C8, 0x94C9, /* 0x80 */
- 0xECB3, 0xB0DF, 0x94CA, 0xECB5, 0x94CB, 0x94CC, 0x94CD, 0xB6B7, /* 0x90 */
- 0x94CE, 0xC1CF, 0x94CF, 0xF5FA, 0xD0B1, 0x94D0, 0x94D1, 0xD5E5, /* 0x90 */
- 0x94D2, 0xCED3, 0x94D3, 0x94D4, 0xBDEF, 0xB3E2, 0x94D5, 0xB8AB, /* 0xA0 */
- 0x94D6, 0xD5B6, 0x94D7, 0xEDBD, 0x94D8, 0xB6CF, 0x94D9, 0xCBB9, /* 0xA0 */
- 0xD0C2, 0x94DA, 0x94DB, 0x94DC, 0x94DD, 0x94DE, 0x94DF, 0x94E0, /* 0xB0 */
- 0x94E1, 0xB7BD, 0x94E2, 0x94E3, 0xECB6, 0xCAA9, 0x94E4, 0x94E5, /* 0xB0 */
- 0x94E6, 0xC5D4, 0x94E7, 0xECB9, 0xECB8, 0xC2C3, 0xECB7, 0x94E8, /* 0xC0 */
- 0x94E9, 0x94EA, 0x94EB, 0xD0FD, 0xECBA, 0x94EC, 0xECBB, 0xD7E5, /* 0xC0 */
- 0x94ED, 0x94EE, 0xECBC, 0x94EF, 0x94F0, 0x94F1, 0xECBD, 0xC6EC, /* 0xD0 */
- 0x94F2, 0x94F3, 0x94F4, 0x94F5, 0x94F6, 0x94F7, 0x94F8, 0x94F9, /* 0xD0 */
- 0xCEDE, 0x94FA, 0xBCC8, 0x94FB, 0x94FC, 0xC8D5, 0xB5A9, 0xBEC9, /* 0xE0 */
- 0xD6BC, 0xD4E7, 0x94FD, 0x94FE, 0xD1AE, 0xD0F1, 0xEAB8, 0xEAB9, /* 0xE0 */
- 0xEABA, 0xBAB5, 0x9540, 0x9541, 0x9542, 0x9543, 0xCAB1, 0xBFF5, /* 0xF0 */
- 0x9544, 0x9545, 0xCDFA, 0x9546, 0x9547, 0x9548, 0x9549, 0x954A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_66[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEAC0, 0x954B, 0xB0BA, 0xEABE, 0x954C, 0x954D, 0xC0A5, 0x954E, /* 0x00 */
- 0x954F, 0x9550, 0xEABB, 0x9551, 0xB2FD, 0x9552, 0xC3F7, 0xBBE8, /* 0x00 */
- 0x9553, 0x9554, 0x9555, 0xD2D7, 0xCEF4, 0xEABF, 0x9556, 0x9557, /* 0x10 */
- 0x9558, 0xEABC, 0x9559, 0x955A, 0x955B, 0xEAC3, 0x955C, 0xD0C7, /* 0x10 */
- 0xD3B3, 0x955D, 0x955E, 0x955F, 0x9560, 0xB4BA, 0x9561, 0xC3C1, /* 0x20 */
- 0xD7F2, 0x9562, 0x9563, 0x9564, 0x9565, 0xD5D1, 0x9566, 0xCAC7, /* 0x20 */
- 0x9567, 0xEAC5, 0x9568, 0x9569, 0xEAC4, 0xEAC7, 0xEAC6, 0x956A, /* 0x30 */
- 0x956B, 0x956C, 0x956D, 0x956E, 0xD6E7, 0x956F, 0xCFD4, 0x9570, /* 0x30 */
- 0x9571, 0xEACB, 0x9572, 0xBBCE, 0x9573, 0x9574, 0x9575, 0x9576, /* 0x40 */
- 0x9577, 0x9578, 0x9579, 0xBDFA, 0xC9CE, 0x957A, 0x957B, 0xEACC, /* 0x40 */
- 0x957C, 0x957D, 0xC9B9, 0xCFFE, 0xEACA, 0xD4CE, 0xEACD, 0xEACF, /* 0x50 */
- 0x957E, 0x9580, 0xCDED, 0x9581, 0x9582, 0x9583, 0x9584, 0xEAC9, /* 0x50 */
- 0x9585, 0xEACE, 0x9586, 0x9587, 0xCEEE, 0x9588, 0xBBDE, 0x9589, /* 0x60 */
- 0xB3BF, 0x958A, 0x958B, 0x958C, 0x958D, 0x958E, 0xC6D5, 0xBEB0, /* 0x60 */
- 0xCEFA, 0x958F, 0x9590, 0x9591, 0xC7E7, 0x9592, 0xBEA7, 0xEAD0, /* 0x70 */
- 0x9593, 0x9594, 0xD6C7, 0x9595, 0x9596, 0x9597, 0xC1C0, 0x9598, /* 0x70 */
- 0x9599, 0x959A, 0xD4DD, 0x959B, 0xEAD1, 0x959C, 0x959D, 0xCFBE, /* 0x80 */
- 0x959E, 0x959F, 0x95A0, 0x95A1, 0xEAD2, 0x95A2, 0x95A3, 0x95A4, /* 0x80 */
- 0x95A5, 0xCAEE, 0x95A6, 0x95A7, 0x95A8, 0x95A9, 0xC5AF, 0xB0B5, /* 0x90 */
- 0x95AA, 0x95AB, 0x95AC, 0x95AD, 0x95AE, 0xEAD4, 0x95AF, 0x95B0, /* 0x90 */
- 0x95B1, 0x95B2, 0x95B3, 0x95B4, 0x95B5, 0x95B6, 0x95B7, 0xEAD3, /* 0xA0 */
- 0xF4DF, 0x95B8, 0x95B9, 0x95BA, 0x95BB, 0x95BC, 0xC4BA, 0x95BD, /* 0xA0 */
- 0x95BE, 0x95BF, 0x95C0, 0x95C1, 0xB1A9, 0x95C2, 0x95C3, 0x95C4, /* 0xB0 */
- 0x95C5, 0xE5DF, 0x95C6, 0x95C7, 0x95C8, 0x95C9, 0xEAD5, 0x95CA, /* 0xB0 */
- 0x95CB, 0x95CC, 0x95CD, 0x95CE, 0x95CF, 0x95D0, 0x95D1, 0x95D2, /* 0xC0 */
- 0x95D3, 0x95D4, 0x95D5, 0x95D6, 0x95D7, 0x95D8, 0x95D9, 0x95DA, /* 0xC0 */
- 0x95DB, 0x95DC, 0x95DD, 0x95DE, 0x95DF, 0x95E0, 0x95E1, 0x95E2, /* 0xD0 */
- 0x95E3, 0xCAEF, 0x95E4, 0xEAD6, 0xEAD7, 0xC6D8, 0x95E5, 0x95E6, /* 0xD0 */
- 0x95E7, 0x95E8, 0x95E9, 0x95EA, 0x95EB, 0x95EC, 0xEAD8, 0x95ED, /* 0xE0 */
- 0x95EE, 0xEAD9, 0x95EF, 0x95F0, 0x95F1, 0x95F2, 0x95F3, 0x95F4, /* 0xE0 */
- 0xD4BB, 0x95F5, 0xC7FA, 0xD2B7, 0xB8FC, 0x95F6, 0x95F7, 0xEAC2, /* 0xF0 */
- 0x95F8, 0xB2DC, 0x95F9, 0x95FA, 0xC2FC, 0x95FB, 0xD4F8, 0xCCE6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_67[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD7EE, 0x95FC, 0x95FD, 0x95FE, 0x9640, 0x9641, 0x9642, 0x9643, /* 0x00 */
- 0xD4C2, 0xD3D0, 0xEBC3, 0xC5F3, 0x9644, 0xB7FE, 0x9645, 0x9646, /* 0x00 */
- 0xEBD4, 0x9647, 0x9648, 0x9649, 0xCBB7, 0xEBDE, 0x964A, 0xC0CA, /* 0x10 */
- 0x964B, 0x964C, 0x964D, 0xCDFB, 0x964E, 0xB3AF, 0x964F, 0xC6DA, /* 0x10 */
- 0x9650, 0x9651, 0x9652, 0x9653, 0x9654, 0x9655, 0xEBFC, 0x9656, /* 0x20 */
- 0xC4BE, 0x9657, 0xCEB4, 0xC4A9, 0xB1BE, 0xD4FD, 0x9658, 0xCAF5, /* 0x20 */
- 0x9659, 0xD6EC, 0x965A, 0x965B, 0xC6D3, 0xB6E4, 0x965C, 0x965D, /* 0x30 */
- 0x965E, 0x965F, 0xBBFA, 0x9660, 0x9661, 0xD0E0, 0x9662, 0x9663, /* 0x30 */
- 0xC9B1, 0x9664, 0xD4D3, 0xC8A8, 0x9665, 0x9666, 0xB8CB, 0x9667, /* 0x40 */
- 0xE8BE, 0xC9BC, 0x9668, 0x9669, 0xE8BB, 0x966A, 0xC0EE, 0xD0D3, /* 0x40 */
- 0xB2C4, 0xB4E5, 0x966B, 0xE8BC, 0x966C, 0x966D, 0xD5C8, 0x966E, /* 0x50 */
- 0x966F, 0x9670, 0x9671, 0x9672, 0xB6C5, 0x9673, 0xE8BD, 0xCAF8, /* 0x50 */
- 0xB8DC, 0xCCF5, 0x9674, 0x9675, 0x9676, 0xC0B4, 0x9677, 0x9678, /* 0x60 */
- 0xD1EE, 0xE8BF, 0xE8C2, 0x9679, 0x967A, 0xBABC, 0x967B, 0xB1AD, /* 0x60 */
- 0xBDDC, 0x967C, 0xEABD, 0xE8C3, 0x967D, 0xE8C6, 0x967E, 0xE8CB, /* 0x70 */
- 0x9680, 0x9681, 0x9682, 0x9683, 0xE8CC, 0x9684, 0xCBC9, 0xB0E5, /* 0x70 */
- 0x9685, 0xBCAB, 0x9686, 0x9687, 0xB9B9, 0x9688, 0x9689, 0xE8C1, /* 0x80 */
- 0x968A, 0xCDF7, 0x968B, 0xE8CA, 0x968C, 0x968D, 0x968E, 0x968F, /* 0x80 */
- 0xCEF6, 0x9690, 0x9691, 0x9692, 0x9693, 0xD5ED, 0x9694, 0xC1D6, /* 0x90 */
- 0xE8C4, 0x9695, 0xC3B6, 0x9696, 0xB9FB, 0xD6A6, 0xE8C8, 0x9697, /* 0x90 */
- 0x9698, 0x9699, 0xCAE0, 0xD4E6, 0x969A, 0xE8C0, 0x969B, 0xE8C5, /* 0xA0 */
- 0xE8C7, 0x969C, 0xC7B9, 0xB7E3, 0x969D, 0xE8C9, 0x969E, 0xBFDD, /* 0xA0 */
- 0xE8D2, 0x969F, 0x96A0, 0xE8D7, 0x96A1, 0xE8D5, 0xBCDC, 0xBCCF, /* 0xB0 */
- 0xE8DB, 0x96A2, 0x96A3, 0x96A4, 0x96A5, 0x96A6, 0x96A7, 0x96A8, /* 0xB0 */
- 0x96A9, 0xE8DE, 0x96AA, 0xE8DA, 0xB1FA, 0x96AB, 0x96AC, 0x96AD, /* 0xC0 */
- 0x96AE, 0x96AF, 0x96B0, 0x96B1, 0x96B2, 0x96B3, 0x96B4, 0xB0D8, /* 0xC0 */
- 0xC4B3, 0xB8CC, 0xC6E2, 0xC8BE, 0xC8E1, 0x96B5, 0x96B6, 0x96B7, /* 0xD0 */
- 0xE8CF, 0xE8D4, 0xE8D6, 0x96B8, 0xB9F1, 0xE8D8, 0xD7F5, 0x96B9, /* 0xD0 */
- 0xC4FB, 0x96BA, 0xE8DC, 0x96BB, 0x96BC, 0xB2E9, 0x96BD, 0x96BE, /* 0xE0 */
- 0x96BF, 0xE8D1, 0x96C0, 0x96C1, 0xBCED, 0x96C2, 0x96C3, 0xBFC2, /* 0xE0 */
- 0xE8CD, 0xD6F9, 0x96C4, 0xC1F8, 0xB2F1, 0x96C5, 0x96C6, 0x96C7, /* 0xF0 */
- 0x96C8, 0x96C9, 0x96CA, 0x96CB, 0x96CC, 0xE8DF, 0x96CD, 0xCAC1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_68[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE8D9, 0x96CE, 0x96CF, 0x96D0, 0x96D1, 0xD5A4, 0x96D2, 0xB1EA, /* 0x00 */
- 0xD5BB, 0xE8CE, 0xE8D0, 0xB6B0, 0xE8D3, 0x96D3, 0xE8DD, 0xC0B8, /* 0x00 */
- 0x96D4, 0xCAF7, 0x96D5, 0xCBA8, 0x96D6, 0x96D7, 0xC6DC, 0xC0F5, /* 0x10 */
- 0x96D8, 0x96D9, 0x96DA, 0x96DB, 0x96DC, 0xE8E9, 0x96DD, 0x96DE, /* 0x10 */
- 0x96DF, 0xD0A3, 0x96E0, 0x96E1, 0x96E2, 0x96E3, 0x96E4, 0x96E5, /* 0x20 */
- 0x96E6, 0xE8F2, 0xD6EA, 0x96E7, 0x96E8, 0x96E9, 0x96EA, 0x96EB, /* 0x20 */
- 0x96EC, 0x96ED, 0xE8E0, 0xE8E1, 0x96EE, 0x96EF, 0x96F0, 0xD1F9, /* 0x30 */
- 0xBACB, 0xB8F9, 0x96F1, 0x96F2, 0xB8F1, 0xD4D4, 0xE8EF, 0x96F3, /* 0x30 */
- 0xE8EE, 0xE8EC, 0xB9F0, 0xCCD2, 0xE8E6, 0xCEA6, 0xBFF2, 0x96F4, /* 0x40 */
- 0xB0B8, 0xE8F1, 0xE8F0, 0x96F5, 0xD7C0, 0x96F6, 0xE8E4, 0x96F7, /* 0x40 */
- 0xCDA9, 0xC9A3, 0x96F8, 0xBBB8, 0xBDDB, 0xE8EA, 0x96F9, 0x96FA, /* 0x50 */
- 0x96FB, 0x96FC, 0x96FD, 0x96FE, 0x9740, 0x9741, 0x9742, 0x9743, /* 0x50 */
- 0xE8E2, 0xE8E3, 0xE8E5, 0xB5B5, 0xE8E7, 0xC7C5, 0xE8EB, 0xE8ED, /* 0x60 */
- 0xBDB0, 0xD7AE, 0x9744, 0xE8F8, 0x9745, 0x9746, 0x9747, 0x9748, /* 0x60 */
- 0x9749, 0x974A, 0x974B, 0x974C, 0xE8F5, 0x974D, 0xCDB0, 0xE8F6, /* 0x70 */
- 0x974E, 0x974F, 0x9750, 0x9751, 0x9752, 0x9753, 0x9754, 0x9755, /* 0x70 */
- 0x9756, 0xC1BA, 0x9757, 0xE8E8, 0x9758, 0xC3B7, 0xB0F0, 0x9759, /* 0x80 */
- 0x975A, 0x975B, 0x975C, 0x975D, 0x975E, 0x975F, 0x9760, 0xE8F4, /* 0x80 */
- 0x9761, 0x9762, 0x9763, 0xE8F7, 0x9764, 0x9765, 0x9766, 0xB9A3, /* 0x90 */
- 0x9767, 0x9768, 0x9769, 0x976A, 0x976B, 0x976C, 0x976D, 0x976E, /* 0x90 */
- 0x976F, 0x9770, 0xC9D2, 0x9771, 0x9772, 0x9773, 0xC3CE, 0xCEE0, /* 0xA0 */
- 0xC0E6, 0x9774, 0x9775, 0x9776, 0x9777, 0xCBF3, 0x9778, 0xCCDD, /* 0xA0 */
- 0xD0B5, 0x9779, 0x977A, 0xCAE1, 0x977B, 0xE8F3, 0x977C, 0x977D, /* 0xB0 */
- 0x977E, 0x9780, 0x9781, 0x9782, 0x9783, 0x9784, 0x9785, 0x9786, /* 0xB0 */
- 0xBCEC, 0x9787, 0xE8F9, 0x9788, 0x9789, 0x978A, 0x978B, 0x978C, /* 0xC0 */
- 0x978D, 0xC3DE, 0x978E, 0xC6E5, 0x978F, 0xB9F7, 0x9790, 0x9791, /* 0xC0 */
- 0x9792, 0x9793, 0xB0F4, 0x9794, 0x9795, 0xD7D8, 0x9796, 0x9797, /* 0xD0 */
- 0xBCAC, 0x9798, 0xC5EF, 0x9799, 0x979A, 0x979B, 0x979C, 0x979D, /* 0xD0 */
- 0xCCC4, 0x979E, 0x979F, 0xE9A6, 0x97A0, 0x97A1, 0x97A2, 0x97A3, /* 0xE0 */
- 0x97A4, 0x97A5, 0x97A6, 0x97A7, 0x97A8, 0x97A9, 0xC9AD, 0x97AA, /* 0xE0 */
- 0xE9A2, 0xC0E2, 0x97AB, 0x97AC, 0x97AD, 0xBFC3, 0x97AE, 0x97AF, /* 0xF0 */
- 0x97B0, 0xE8FE, 0xB9D7, 0x97B1, 0xE8FB, 0x97B2, 0x97B3, 0x97B4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_69[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x97B5, 0xE9A4, 0x97B6, 0x97B7, 0x97B8, 0xD2CE, 0x97B9, 0x97BA, /* 0x00 */
- 0x97BB, 0x97BC, 0x97BD, 0xE9A3, 0x97BE, 0xD6B2, 0xD7B5, 0x97BF, /* 0x00 */
- 0xE9A7, 0x97C0, 0xBDB7, 0x97C1, 0x97C2, 0x97C3, 0x97C4, 0x97C5, /* 0x10 */
- 0x97C6, 0x97C7, 0x97C8, 0x97C9, 0x97CA, 0x97CB, 0x97CC, 0xE8FC, /* 0x10 */
- 0xE8FD, 0x97CD, 0x97CE, 0x97CF, 0xE9A1, 0x97D0, 0x97D1, 0x97D2, /* 0x20 */
- 0x97D3, 0x97D4, 0x97D5, 0x97D6, 0x97D7, 0xCDD6, 0x97D8, 0x97D9, /* 0x20 */
- 0xD2AC, 0x97DA, 0x97DB, 0x97DC, 0xE9B2, 0x97DD, 0x97DE, 0x97DF, /* 0x30 */
- 0x97E0, 0xE9A9, 0x97E1, 0x97E2, 0x97E3, 0xB4AA, 0x97E4, 0xB4BB, /* 0x30 */
- 0x97E5, 0x97E6, 0xE9AB, 0x97E7, 0x97E8, 0x97E9, 0x97EA, 0x97EB, /* 0x40 */
- 0x97EC, 0x97ED, 0x97EE, 0x97EF, 0x97F0, 0x97F1, 0x97F2, 0x97F3, /* 0x40 */
- 0x97F4, 0x97F5, 0x97F6, 0x97F7, 0xD0A8, 0x97F8, 0x97F9, 0xE9A5, /* 0x50 */
- 0x97FA, 0x97FB, 0xB3FE, 0x97FC, 0x97FD, 0xE9AC, 0xC0E3, 0x97FE, /* 0x50 */
- 0xE9AA, 0x9840, 0x9841, 0xE9B9, 0x9842, 0x9843, 0xE9B8, 0x9844, /* 0x60 */
- 0x9845, 0x9846, 0x9847, 0xE9AE, 0x9848, 0x9849, 0xE8FA, 0x984A, /* 0x60 */
- 0x984B, 0xE9A8, 0x984C, 0x984D, 0x984E, 0x984F, 0x9850, 0xBFAC, /* 0x70 */
- 0xE9B1, 0xE9BA, 0x9851, 0x9852, 0xC2A5, 0x9853, 0x9854, 0x9855, /* 0x70 */
- 0xE9AF, 0x9856, 0xB8C5, 0x9857, 0xE9AD, 0x9858, 0xD3DC, 0xE9B4, /* 0x80 */
- 0xE9B5, 0xE9B7, 0x9859, 0x985A, 0x985B, 0xE9C7, 0x985C, 0x985D, /* 0x80 */
- 0x985E, 0x985F, 0x9860, 0x9861, 0xC0C6, 0xE9C5, 0x9862, 0x9863, /* 0x90 */
- 0xE9B0, 0x9864, 0x9865, 0xE9BB, 0xB0F1, 0x9866, 0x9867, 0x9868, /* 0x90 */
- 0x9869, 0x986A, 0x986B, 0x986C, 0x986D, 0x986E, 0x986F, 0xE9BC, /* 0xA0 */
- 0xD5A5, 0x9870, 0x9871, 0xE9BE, 0x9872, 0xE9BF, 0x9873, 0x9874, /* 0xA0 */
- 0x9875, 0xE9C1, 0x9876, 0x9877, 0xC1F1, 0x9878, 0x9879, 0xC8B6, /* 0xB0 */
- 0x987A, 0x987B, 0x987C, 0xE9BD, 0x987D, 0x987E, 0x9880, 0x9881, /* 0xB0 */
- 0x9882, 0xE9C2, 0x9883, 0x9884, 0x9885, 0x9886, 0x9887, 0x9888, /* 0xC0 */
- 0x9889, 0x988A, 0xE9C3, 0x988B, 0xE9B3, 0x988C, 0xE9B6, 0x988D, /* 0xC0 */
- 0xBBB1, 0x988E, 0x988F, 0x9890, 0xE9C0, 0x9891, 0x9892, 0x9893, /* 0xD0 */
- 0x9894, 0x9895, 0x9896, 0xBCF7, 0x9897, 0x9898, 0x9899, 0xE9C4, /* 0xD0 */
- 0xE9C6, 0x989A, 0x989B, 0x989C, 0x989D, 0x989E, 0x989F, 0x98A0, /* 0xE0 */
- 0x98A1, 0x98A2, 0x98A3, 0x98A4, 0x98A5, 0xE9CA, 0x98A6, 0x98A7, /* 0xE0 */
- 0x98A8, 0x98A9, 0xE9CE, 0x98AA, 0x98AB, 0x98AC, 0x98AD, 0x98AE, /* 0xF0 */
- 0x98AF, 0x98B0, 0x98B1, 0x98B2, 0x98B3, 0xB2DB, 0x98B4, 0xE9C8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_6A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x98B5, 0x98B6, 0x98B7, 0x98B8, 0x98B9, 0x98BA, 0x98BB, 0x98BC, /* 0x00 */
- 0x98BD, 0x98BE, 0xB7AE, 0x98BF, 0x98C0, 0x98C1, 0x98C2, 0x98C3, /* 0x00 */
- 0x98C4, 0x98C5, 0x98C6, 0x98C7, 0x98C8, 0x98C9, 0x98CA, 0xE9CB, /* 0x10 */
- 0xE9CC, 0x98CB, 0x98CC, 0x98CD, 0x98CE, 0x98CF, 0x98D0, 0xD5C1, /* 0x10 */
- 0x98D1, 0xC4A3, 0x98D2, 0x98D3, 0x98D4, 0x98D5, 0x98D6, 0x98D7, /* 0x20 */
- 0xE9D8, 0x98D8, 0xBAE1, 0x98D9, 0x98DA, 0x98DB, 0x98DC, 0xE9C9, /* 0x20 */
- 0x98DD, 0xD3A3, 0x98DE, 0x98DF, 0x98E0, 0xE9D4, 0x98E1, 0x98E2, /* 0x30 */
- 0x98E3, 0x98E4, 0x98E5, 0x98E6, 0x98E7, 0xE9D7, 0xE9D0, 0x98E8, /* 0x30 */
- 0x98E9, 0x98EA, 0x98EB, 0x98EC, 0xE9CF, 0x98ED, 0x98EE, 0xC7C1, /* 0x40 */
- 0x98EF, 0x98F0, 0x98F1, 0x98F2, 0x98F3, 0x98F4, 0x98F5, 0x98F6, /* 0x40 */
- 0xE9D2, 0x98F7, 0x98F8, 0x98F9, 0x98FA, 0x98FB, 0x98FC, 0x98FD, /* 0x50 */
- 0xE9D9, 0xB3C8, 0x98FE, 0xE9D3, 0x9940, 0x9941, 0x9942, 0x9943, /* 0x50 */
- 0x9944, 0xCFF0, 0x9945, 0x9946, 0x9947, 0xE9CD, 0x9948, 0x9949, /* 0x60 */
- 0x994A, 0x994B, 0x994C, 0x994D, 0x994E, 0x994F, 0x9950, 0x9951, /* 0x60 */
- 0x9952, 0xB3F7, 0x9953, 0x9954, 0x9955, 0x9956, 0x9957, 0x9958, /* 0x70 */
- 0x9959, 0xE9D6, 0x995A, 0x995B, 0xE9DA, 0x995C, 0x995D, 0x995E, /* 0x70 */
- 0xCCB4, 0x995F, 0x9960, 0x9961, 0xCFAD, 0x9962, 0x9963, 0x9964, /* 0x80 */
- 0x9965, 0x9966, 0x9967, 0x9968, 0x9969, 0x996A, 0xE9D5, 0x996B, /* 0x80 */
- 0xE9DC, 0xE9DB, 0x996C, 0x996D, 0x996E, 0x996F, 0x9970, 0xE9DE, /* 0x90 */
- 0x9971, 0x9972, 0x9973, 0x9974, 0x9975, 0x9976, 0x9977, 0x9978, /* 0x90 */
- 0xE9D1, 0x9979, 0x997A, 0x997B, 0x997C, 0x997D, 0x997E, 0x9980, /* 0xA0 */
- 0x9981, 0xE9DD, 0x9982, 0xE9DF, 0xC3CA, 0x9983, 0x9984, 0x9985, /* 0xA0 */
- 0x9986, 0x9987, 0x9988, 0x9989, 0x998A, 0x998B, 0x998C, 0x998D, /* 0xB0 */
- 0x998E, 0x998F, 0x9990, 0x9991, 0x9992, 0x9993, 0x9994, 0x9995, /* 0xB0 */
- 0x9996, 0x9997, 0x9998, 0x9999, 0x999A, 0x999B, 0x999C, 0x999D, /* 0xC0 */
- 0x999E, 0x999F, 0x99A0, 0x99A1, 0x99A2, 0x99A3, 0x99A4, 0x99A5, /* 0xC0 */
- 0x99A6, 0x99A7, 0x99A8, 0x99A9, 0x99AA, 0x99AB, 0x99AC, 0x99AD, /* 0xD0 */
- 0x99AE, 0x99AF, 0x99B0, 0x99B1, 0x99B2, 0x99B3, 0x99B4, 0x99B5, /* 0xD0 */
- 0x99B6, 0x99B7, 0x99B8, 0x99B9, 0x99BA, 0x99BB, 0x99BC, 0x99BD, /* 0xE0 */
- 0x99BE, 0x99BF, 0x99C0, 0x99C1, 0x99C2, 0x99C3, 0x99C4, 0x99C5, /* 0xE0 */
- 0x99C6, 0x99C7, 0x99C8, 0x99C9, 0x99CA, 0x99CB, 0x99CC, 0x99CD, /* 0xF0 */
- 0x99CE, 0x99CF, 0x99D0, 0x99D1, 0x99D2, 0x99D3, 0x99D4, 0x99D5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_6B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x99D6, 0x99D7, 0x99D8, 0x99D9, 0x99DA, 0x99DB, 0x99DC, 0x99DD, /* 0x00 */
- 0x99DE, 0x99DF, 0x99E0, 0x99E1, 0x99E2, 0x99E3, 0x99E4, 0x99E5, /* 0x00 */
- 0x99E6, 0x99E7, 0x99E8, 0x99E9, 0x99EA, 0x99EB, 0x99EC, 0x99ED, /* 0x10 */
- 0x99EE, 0x99EF, 0x99F0, 0x99F1, 0x99F2, 0x99F3, 0x99F4, 0x99F5, /* 0x10 */
- 0xC7B7, 0xB4CE, 0xBBB6, 0xD0C0, 0xECA3, 0x99F6, 0x99F7, 0xC5B7, /* 0x20 */
- 0x99F8, 0x99F9, 0x99FA, 0x99FB, 0x99FC, 0x99FD, 0x99FE, 0x9A40, /* 0x20 */
- 0x9A41, 0x9A42, 0xD3FB, 0x9A43, 0x9A44, 0x9A45, 0x9A46, 0xECA4, /* 0x30 */
- 0x9A47, 0xECA5, 0xC6DB, 0x9A48, 0x9A49, 0x9A4A, 0xBFEE, 0x9A4B, /* 0x30 */
- 0x9A4C, 0x9A4D, 0x9A4E, 0xECA6, 0x9A4F, 0x9A50, 0xECA7, 0xD0AA, /* 0x40 */
- 0x9A51, 0xC7B8, 0x9A52, 0x9A53, 0xB8E8, 0x9A54, 0x9A55, 0x9A56, /* 0x40 */
- 0x9A57, 0x9A58, 0x9A59, 0x9A5A, 0x9A5B, 0x9A5C, 0x9A5D, 0x9A5E, /* 0x50 */
- 0x9A5F, 0xECA8, 0x9A60, 0x9A61, 0x9A62, 0x9A63, 0x9A64, 0x9A65, /* 0x50 */
- 0x9A66, 0x9A67, 0xD6B9, 0xD5FD, 0xB4CB, 0xB2BD, 0xCEE4, 0xC6E7, /* 0x60 */
- 0x9A68, 0x9A69, 0xCDE1, 0x9A6A, 0x9A6B, 0x9A6C, 0x9A6D, 0x9A6E, /* 0x60 */
- 0x9A6F, 0x9A70, 0x9A71, 0x9A72, 0x9A73, 0x9A74, 0x9A75, 0x9A76, /* 0x70 */
- 0x9A77, 0xB4F5, 0x9A78, 0xCBC0, 0xBCDF, 0x9A79, 0x9A7A, 0x9A7B, /* 0x70 */
- 0x9A7C, 0xE9E2, 0xE9E3, 0xD1EA, 0xE9E5, 0x9A7D, 0xB4F9, 0xE9E4, /* 0x80 */
- 0x9A7E, 0xD1B3, 0xCAE2, 0xB2D0, 0x9A80, 0xE9E8, 0x9A81, 0x9A82, /* 0x80 */
- 0x9A83, 0x9A84, 0xE9E6, 0xE9E7, 0x9A85, 0x9A86, 0xD6B3, 0x9A87, /* 0x90 */
- 0x9A88, 0x9A89, 0xE9E9, 0xE9EA, 0x9A8A, 0x9A8B, 0x9A8C, 0x9A8D, /* 0x90 */
- 0x9A8E, 0xE9EB, 0x9A8F, 0x9A90, 0x9A91, 0x9A92, 0x9A93, 0x9A94, /* 0xA0 */
- 0x9A95, 0x9A96, 0xE9EC, 0x9A97, 0x9A98, 0x9A99, 0x9A9A, 0x9A9B, /* 0xA0 */
- 0x9A9C, 0x9A9D, 0x9A9E, 0xECAF, 0xC5B9, 0xB6CE, 0x9A9F, 0xD2F3, /* 0xB0 */
- 0x9AA0, 0x9AA1, 0x9AA2, 0x9AA3, 0x9AA4, 0x9AA5, 0x9AA6, 0xB5EE, /* 0xB0 */
- 0x9AA7, 0xBBD9, 0xECB1, 0x9AA8, 0x9AA9, 0xD2E3, 0x9AAA, 0x9AAB, /* 0xC0 */
- 0x9AAC, 0x9AAD, 0x9AAE, 0xCEE3, 0x9AAF, 0xC4B8, 0x9AB0, 0xC3BF, /* 0xC0 */
- 0x9AB1, 0x9AB2, 0xB6BE, 0xD8B9, 0xB1C8, 0xB1CF, 0xB1D1, 0xC5FE, /* 0xD0 */
- 0x9AB3, 0xB1D0, 0x9AB4, 0xC3AB, 0x9AB5, 0x9AB6, 0x9AB7, 0x9AB8, /* 0xD0 */
- 0x9AB9, 0xD5B1, 0x9ABA, 0x9ABB, 0x9ABC, 0x9ABD, 0x9ABE, 0x9ABF, /* 0xE0 */
- 0x9AC0, 0x9AC1, 0xEBA4, 0xBAC1, 0x9AC2, 0x9AC3, 0x9AC4, 0xCCBA, /* 0xE0 */
- 0x9AC5, 0x9AC6, 0x9AC7, 0xEBA5, 0x9AC8, 0xEBA7, 0x9AC9, 0x9ACA, /* 0xF0 */
- 0x9ACB, 0xEBA8, 0x9ACC, 0x9ACD, 0x9ACE, 0xEBA6, 0x9ACF, 0x9AD0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_6C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9AD1, 0x9AD2, 0x9AD3, 0x9AD4, 0x9AD5, 0xEBA9, 0xEBAB, 0xEBAA, /* 0x00 */
- 0x9AD6, 0x9AD7, 0x9AD8, 0x9AD9, 0x9ADA, 0xEBAC, 0x9ADB, 0xCACF, /* 0x00 */
- 0xD8B5, 0xC3F1, 0x9ADC, 0xC3A5, 0xC6F8, 0xEBAD, 0xC4CA, 0x9ADD, /* 0x10 */
- 0xEBAE, 0xEBAF, 0xEBB0, 0xB7D5, 0x9ADE, 0x9ADF, 0x9AE0, 0xB7FA, /* 0x10 */
- 0x9AE1, 0xEBB1, 0xC7E2, 0x9AE2, 0xEBB3, 0x9AE3, 0xBAA4, 0xD1F5, /* 0x20 */
- 0xB0B1, 0xEBB2, 0xEBB4, 0x9AE4, 0x9AE5, 0x9AE6, 0xB5AA, 0xC2C8, /* 0x20 */
- 0xC7E8, 0x9AE7, 0xEBB5, 0x9AE8, 0xCBAE, 0xE3DF, 0x9AE9, 0x9AEA, /* 0x30 */
- 0xD3C0, 0x9AEB, 0x9AEC, 0x9AED, 0x9AEE, 0xD9DB, 0x9AEF, 0x9AF0, /* 0x30 */
- 0xCDA1, 0xD6AD, 0xC7F3, 0x9AF1, 0x9AF2, 0x9AF3, 0xD9E0, 0xBBE3, /* 0x40 */
- 0x9AF4, 0xBABA, 0xE3E2, 0x9AF5, 0x9AF6, 0x9AF7, 0x9AF8, 0x9AF9, /* 0x40 */
- 0xCFAB, 0x9AFA, 0x9AFB, 0x9AFC, 0xE3E0, 0xC9C7, 0x9AFD, 0xBAB9, /* 0x50 */
- 0x9AFE, 0x9B40, 0x9B41, 0xD1B4, 0xE3E1, 0xC8EA, 0xB9AF, 0xBDAD, /* 0x50 */
- 0xB3D8, 0xCEDB, 0x9B42, 0x9B43, 0xCCC0, 0x9B44, 0x9B45, 0x9B46, /* 0x60 */
- 0xE3E8, 0xE3E9, 0xCDF4, 0x9B47, 0x9B48, 0x9B49, 0x9B4A, 0x9B4B, /* 0x60 */
- 0xCCAD, 0x9B4C, 0xBCB3, 0x9B4D, 0xE3EA, 0x9B4E, 0xE3EB, 0x9B4F, /* 0x70 */
- 0x9B50, 0xD0DA, 0x9B51, 0x9B52, 0x9B53, 0xC6FB, 0xB7DA, 0x9B54, /* 0x70 */
- 0x9B55, 0xC7DF, 0xD2CA, 0xCED6, 0x9B56, 0xE3E4, 0xE3EC, 0x9B57, /* 0x80 */
- 0xC9F2, 0xB3C1, 0x9B58, 0x9B59, 0xE3E7, 0x9B5A, 0x9B5B, 0xC6E3, /* 0x80 */
- 0xE3E5, 0x9B5C, 0x9B5D, 0xEDB3, 0xE3E6, 0x9B5E, 0x9B5F, 0x9B60, /* 0x90 */
- 0x9B61, 0xC9B3, 0x9B62, 0xC5E6, 0x9B63, 0x9B64, 0x9B65, 0xB9B5, /* 0x90 */
- 0x9B66, 0xC3BB, 0x9B67, 0xE3E3, 0xC5BD, 0xC1A4, 0xC2D9, 0xB2D7, /* 0xA0 */
- 0x9B68, 0xE3ED, 0xBBA6, 0xC4AD, 0x9B69, 0xE3F0, 0xBEDA, 0x9B6A, /* 0xA0 */
- 0x9B6B, 0xE3FB, 0xE3F5, 0xBAD3, 0x9B6C, 0x9B6D, 0x9B6E, 0x9B6F, /* 0xB0 */
- 0xB7D0, 0xD3CD, 0x9B70, 0xD6CE, 0xD5D3, 0xB9C1, 0xD5B4, 0xD1D8, /* 0xB0 */
- 0x9B71, 0x9B72, 0x9B73, 0x9B74, 0xD0B9, 0xC7F6, 0x9B75, 0x9B76, /* 0xC0 */
- 0x9B77, 0xC8AA, 0xB2B4, 0x9B78, 0xC3DA, 0x9B79, 0x9B7A, 0x9B7B, /* 0xC0 */
- 0xE3EE, 0x9B7C, 0x9B7D, 0xE3FC, 0xE3EF, 0xB7A8, 0xE3F7, 0xE3F4, /* 0xD0 */
- 0x9B7E, 0x9B80, 0x9B81, 0xB7BA, 0x9B82, 0x9B83, 0xC5A2, 0x9B84, /* 0xD0 */
- 0xE3F6, 0xC5DD, 0xB2A8, 0xC6FC, 0x9B85, 0xC4E0, 0x9B86, 0x9B87, /* 0xE0 */
- 0xD7A2, 0x9B88, 0xC0E1, 0xE3F9, 0x9B89, 0x9B8A, 0xE3FA, 0xE3FD, /* 0xE0 */
- 0xCCA9, 0xE3F3, 0x9B8B, 0xD3BE, 0x9B8C, 0xB1C3, 0xEDB4, 0xE3F1, /* 0xF0 */
- 0xE3F2, 0x9B8D, 0xE3F8, 0xD0BA, 0xC6C3, 0xD4F3, 0xE3FE, 0x9B8E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_6D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9B8F, 0xBDE0, 0x9B90, 0x9B91, 0xE4A7, 0x9B92, 0x9B93, 0xE4A6, /* 0x00 */
- 0x9B94, 0x9B95, 0x9B96, 0xD1F3, 0xE4A3, 0x9B97, 0xE4A9, 0x9B98, /* 0x00 */
- 0x9B99, 0x9B9A, 0xC8F7, 0x9B9B, 0x9B9C, 0x9B9D, 0x9B9E, 0xCFB4, /* 0x10 */
- 0x9B9F, 0xE4A8, 0xE4AE, 0xC2E5, 0x9BA0, 0x9BA1, 0xB6B4, 0x9BA2, /* 0x10 */
- 0x9BA3, 0x9BA4, 0x9BA5, 0x9BA6, 0x9BA7, 0xBDF2, 0x9BA8, 0xE4A2, /* 0x20 */
- 0x9BA9, 0x9BAA, 0xBAE9, 0xE4AA, 0x9BAB, 0x9BAC, 0xE4AC, 0x9BAD, /* 0x20 */
- 0x9BAE, 0xB6FD, 0xD6DE, 0xE4B2, 0x9BAF, 0xE4AD, 0x9BB0, 0x9BB1, /* 0x30 */
- 0x9BB2, 0xE4A1, 0x9BB3, 0xBBEE, 0xCDDD, 0xC7A2, 0xC5C9, 0x9BB4, /* 0x30 */
- 0x9BB5, 0xC1F7, 0x9BB6, 0xE4A4, 0x9BB7, 0xC7B3, 0xBDAC, 0xBDBD, /* 0x40 */
- 0xE4A5, 0x9BB8, 0xD7C7, 0xB2E2, 0x9BB9, 0xE4AB, 0xBCC3, 0xE4AF, /* 0x40 */
- 0x9BBA, 0xBBEB, 0xE4B0, 0xC5A8, 0xE4B1, 0x9BBB, 0x9BBC, 0x9BBD, /* 0x50 */
- 0x9BBE, 0xD5E3, 0xBFA3, 0x9BBF, 0xE4BA, 0x9BC0, 0xE4B7, 0x9BC1, /* 0x50 */
- 0xE4BB, 0x9BC2, 0x9BC3, 0xE4BD, 0x9BC4, 0x9BC5, 0xC6D6, 0x9BC6, /* 0x60 */
- 0x9BC7, 0xBAC6, 0xC0CB, 0x9BC8, 0x9BC9, 0x9BCA, 0xB8A1, 0xE4B4, /* 0x60 */
- 0x9BCB, 0x9BCC, 0x9BCD, 0x9BCE, 0xD4A1, 0x9BCF, 0x9BD0, 0xBAA3, /* 0x70 */
- 0xBDFE, 0x9BD1, 0x9BD2, 0x9BD3, 0xE4BC, 0x9BD4, 0x9BD5, 0x9BD6, /* 0x70 */
- 0x9BD7, 0x9BD8, 0xCDBF, 0x9BD9, 0x9BDA, 0xC4F9, 0x9BDB, 0x9BDC, /* 0x80 */
- 0xCFFB, 0xC9E6, 0x9BDD, 0x9BDE, 0xD3BF, 0x9BDF, 0xCFD1, 0x9BE0, /* 0x80 */
- 0x9BE1, 0xE4B3, 0x9BE2, 0xE4B8, 0xE4B9, 0xCCE9, 0x9BE3, 0x9BE4, /* 0x90 */
- 0x9BE5, 0x9BE6, 0x9BE7, 0xCCCE, 0x9BE8, 0xC0D4, 0xE4B5, 0xC1B0, /* 0x90 */
- 0xE4B6, 0xCED0, 0x9BE9, 0xBBC1, 0xB5D3, 0x9BEA, 0xC8F3, 0xBDA7, /* 0xA0 */
- 0xD5C7, 0xC9AC, 0xB8A2, 0xE4CA, 0x9BEB, 0x9BEC, 0xE4CC, 0xD1C4, /* 0xA0 */
- 0x9BED, 0x9BEE, 0xD2BA, 0x9BEF, 0x9BF0, 0xBAAD, 0x9BF1, 0x9BF2, /* 0xB0 */
- 0xBAD4, 0x9BF3, 0x9BF4, 0x9BF5, 0x9BF6, 0x9BF7, 0x9BF8, 0xE4C3, /* 0xB0 */
- 0xB5ED, 0x9BF9, 0x9BFA, 0x9BFB, 0xD7CD, 0xE4C0, 0xCFFD, 0xE4BF, /* 0xC0 */
- 0x9BFC, 0x9BFD, 0x9BFE, 0xC1DC, 0xCCCA, 0x9C40, 0x9C41, 0x9C42, /* 0xC0 */
- 0x9C43, 0xCAE7, 0x9C44, 0x9C45, 0x9C46, 0x9C47, 0xC4D7, 0x9C48, /* 0xD0 */
- 0xCCD4, 0xE4C8, 0x9C49, 0x9C4A, 0x9C4B, 0xE4C7, 0xE4C1, 0x9C4C, /* 0xD0 */
- 0xE4C4, 0xB5AD, 0x9C4D, 0x9C4E, 0xD3D9, 0x9C4F, 0xE4C6, 0x9C50, /* 0xE0 */
- 0x9C51, 0x9C52, 0x9C53, 0xD2F9, 0xB4E3, 0x9C54, 0xBBB4, 0x9C55, /* 0xE0 */
- 0x9C56, 0xC9EE, 0x9C57, 0xB4BE, 0x9C58, 0x9C59, 0x9C5A, 0xBBEC, /* 0xF0 */
- 0x9C5B, 0xD1CD, 0x9C5C, 0xCCED, 0xEDB5, 0x9C5D, 0x9C5E, 0x9C5F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_6E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9C60, 0x9C61, 0x9C62, 0x9C63, 0x9C64, 0xC7E5, 0x9C65, 0x9C66, /* 0x00 */
- 0x9C67, 0x9C68, 0xD4A8, 0x9C69, 0xE4CB, 0xD7D5, 0xE4C2, 0x9C6A, /* 0x00 */
- 0xBDA5, 0xE4C5, 0x9C6B, 0x9C6C, 0xD3E6, 0x9C6D, 0xE4C9, 0xC9F8, /* 0x10 */
- 0x9C6E, 0x9C6F, 0xE4BE, 0x9C70, 0x9C71, 0xD3E5, 0x9C72, 0x9C73, /* 0x10 */
- 0xC7FE, 0xB6C9, 0x9C74, 0xD4FC, 0xB2B3, 0xE4D7, 0x9C75, 0x9C76, /* 0x20 */
- 0x9C77, 0xCEC2, 0x9C78, 0xE4CD, 0x9C79, 0xCEBC, 0x9C7A, 0xB8DB, /* 0x20 */
- 0x9C7B, 0x9C7C, 0xE4D6, 0x9C7D, 0xBFCA, 0x9C7E, 0x9C80, 0x9C81, /* 0x30 */
- 0xD3CE, 0x9C82, 0xC3EC, 0x9C83, 0x9C84, 0x9C85, 0x9C86, 0x9C87, /* 0x30 */
- 0x9C88, 0x9C89, 0x9C8A, 0xC5C8, 0xE4D8, 0x9C8B, 0x9C8C, 0x9C8D, /* 0x40 */
- 0x9C8E, 0x9C8F, 0x9C90, 0x9C91, 0x9C92, 0xCDC4, 0xE4CF, 0x9C93, /* 0x40 */
- 0x9C94, 0x9C95, 0x9C96, 0xE4D4, 0xE4D5, 0x9C97, 0xBAFE, 0x9C98, /* 0x50 */
- 0xCFE6, 0x9C99, 0x9C9A, 0xD5BF, 0x9C9B, 0x9C9C, 0x9C9D, 0xE4D2, /* 0x50 */
- 0x9C9E, 0x9C9F, 0x9CA0, 0x9CA1, 0x9CA2, 0x9CA3, 0x9CA4, 0x9CA5, /* 0x60 */
- 0x9CA6, 0x9CA7, 0x9CA8, 0xE4D0, 0x9CA9, 0x9CAA, 0xE4CE, 0x9CAB, /* 0x60 */
- 0x9CAC, 0x9CAD, 0x9CAE, 0x9CAF, 0x9CB0, 0x9CB1, 0x9CB2, 0x9CB3, /* 0x70 */
- 0x9CB4, 0x9CB5, 0x9CB6, 0x9CB7, 0x9CB8, 0x9CB9, 0xCDE5, 0xCAAA, /* 0x70 */
- 0x9CBA, 0x9CBB, 0x9CBC, 0xC0A3, 0x9CBD, 0xBDA6, 0xE4D3, 0x9CBE, /* 0x80 */
- 0x9CBF, 0xB8C8, 0x9CC0, 0x9CC1, 0x9CC2, 0x9CC3, 0x9CC4, 0xE4E7, /* 0x80 */
- 0xD4B4, 0x9CC5, 0x9CC6, 0x9CC7, 0x9CC8, 0x9CC9, 0x9CCA, 0x9CCB, /* 0x90 */
- 0xE4DB, 0x9CCC, 0x9CCD, 0x9CCE, 0xC1EF, 0x9CCF, 0x9CD0, 0xE4E9, /* 0x90 */
- 0x9CD1, 0x9CD2, 0xD2E7, 0x9CD3, 0x9CD4, 0xE4DF, 0x9CD5, 0xE4E0, /* 0xA0 */
- 0x9CD6, 0x9CD7, 0xCFAA, 0x9CD8, 0x9CD9, 0x9CDA, 0x9CDB, 0xCBDD, /* 0xA0 */
- 0x9CDC, 0xE4DA, 0xE4D1, 0x9CDD, 0xE4E5, 0x9CDE, 0xC8DC, 0xE4E3, /* 0xB0 */
- 0x9CDF, 0x9CE0, 0xC4E7, 0xE4E2, 0x9CE1, 0xE4E1, 0x9CE2, 0x9CE3, /* 0xB0 */
- 0x9CE4, 0xB3FC, 0xE4E8, 0x9CE5, 0x9CE6, 0x9CE7, 0x9CE8, 0xB5E1, /* 0xC0 */
- 0x9CE9, 0x9CEA, 0x9CEB, 0xD7CC, 0x9CEC, 0x9CED, 0x9CEE, 0xE4E6, /* 0xC0 */
- 0x9CEF, 0xBBAC, 0x9CF0, 0xD7D2, 0xCCCF, 0xEBF8, 0x9CF1, 0xE4E4, /* 0xD0 */
- 0x9CF2, 0x9CF3, 0xB9F6, 0x9CF4, 0x9CF5, 0x9CF6, 0xD6CD, 0xE4D9, /* 0xD0 */
- 0xE4DC, 0xC2FA, 0xE4DE, 0x9CF7, 0xC2CB, 0xC0C4, 0xC2D0, 0x9CF8, /* 0xE0 */
- 0xB1F5, 0xCCB2, 0x9CF9, 0x9CFA, 0x9CFB, 0x9CFC, 0x9CFD, 0x9CFE, /* 0xE0 */
- 0x9D40, 0x9D41, 0x9D42, 0x9D43, 0xB5CE, 0x9D44, 0x9D45, 0x9D46, /* 0xF0 */
- 0x9D47, 0xE4EF, 0x9D48, 0x9D49, 0x9D4A, 0x9D4B, 0x9D4C, 0x9D4D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_6F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9D4E, 0x9D4F, 0xC6AF, 0x9D50, 0x9D51, 0x9D52, 0xC6E1, 0x9D53, /* 0x00 */
- 0x9D54, 0xE4F5, 0x9D55, 0x9D56, 0x9D57, 0x9D58, 0x9D59, 0xC2A9, /* 0x00 */
- 0x9D5A, 0x9D5B, 0x9D5C, 0xC0EC, 0xD1DD, 0xE4EE, 0x9D5D, 0x9D5E, /* 0x10 */
- 0x9D5F, 0x9D60, 0x9D61, 0x9D62, 0x9D63, 0x9D64, 0x9D65, 0x9D66, /* 0x10 */
- 0xC4AE, 0x9D67, 0x9D68, 0x9D69, 0xE4ED, 0x9D6A, 0x9D6B, 0x9D6C, /* 0x20 */
- 0x9D6D, 0xE4F6, 0xE4F4, 0xC2FE, 0x9D6E, 0xE4DD, 0x9D6F, 0xE4F0, /* 0x20 */
- 0x9D70, 0xCAFE, 0x9D71, 0xD5C4, 0x9D72, 0x9D73, 0xE4F1, 0x9D74, /* 0x30 */
- 0x9D75, 0x9D76, 0x9D77, 0x9D78, 0x9D79, 0x9D7A, 0xD1FA, 0x9D7B, /* 0x30 */
- 0x9D7C, 0x9D7D, 0x9D7E, 0x9D80, 0x9D81, 0x9D82, 0xE4EB, 0xE4EC, /* 0x40 */
- 0x9D83, 0x9D84, 0x9D85, 0xE4F2, 0x9D86, 0xCEAB, 0x9D87, 0x9D88, /* 0x40 */
- 0x9D89, 0x9D8A, 0x9D8B, 0x9D8C, 0x9D8D, 0x9D8E, 0x9D8F, 0x9D90, /* 0x50 */
- 0xC5CB, 0x9D91, 0x9D92, 0x9D93, 0xC7B1, 0x9D94, 0xC2BA, 0x9D95, /* 0x50 */
- 0x9D96, 0x9D97, 0xE4EA, 0x9D98, 0x9D99, 0x9D9A, 0xC1CA, 0x9D9B, /* 0x60 */
- 0x9D9C, 0x9D9D, 0x9D9E, 0x9D9F, 0x9DA0, 0xCCB6, 0xB3B1, 0x9DA1, /* 0x60 */
- 0x9DA2, 0x9DA3, 0xE4FB, 0x9DA4, 0xE4F3, 0x9DA5, 0x9DA6, 0x9DA7, /* 0x70 */
- 0xE4FA, 0x9DA8, 0xE4FD, 0x9DA9, 0xE4FC, 0x9DAA, 0x9DAB, 0x9DAC, /* 0x70 */
- 0x9DAD, 0x9DAE, 0x9DAF, 0x9DB0, 0xB3CE, 0x9DB1, 0x9DB2, 0x9DB3, /* 0x80 */
- 0xB3BA, 0xE4F7, 0x9DB4, 0x9DB5, 0xE4F9, 0xE4F8, 0xC5EC, 0x9DB6, /* 0x80 */
- 0x9DB7, 0x9DB8, 0x9DB9, 0x9DBA, 0x9DBB, 0x9DBC, 0x9DBD, 0x9DBE, /* 0x90 */
- 0x9DBF, 0x9DC0, 0x9DC1, 0x9DC2, 0xC0BD, 0x9DC3, 0x9DC4, 0x9DC5, /* 0x90 */
- 0x9DC6, 0xD4E8, 0x9DC7, 0x9DC8, 0x9DC9, 0x9DCA, 0x9DCB, 0xE5A2, /* 0xA0 */
- 0x9DCC, 0x9DCD, 0x9DCE, 0x9DCF, 0x9DD0, 0x9DD1, 0x9DD2, 0x9DD3, /* 0xA0 */
- 0x9DD4, 0x9DD5, 0x9DD6, 0xB0C4, 0x9DD7, 0x9DD8, 0xE5A4, 0x9DD9, /* 0xB0 */
- 0x9DDA, 0xE5A3, 0x9DDB, 0x9DDC, 0x9DDD, 0x9DDE, 0x9DDF, 0x9DE0, /* 0xB0 */
- 0xBCA4, 0x9DE1, 0xE5A5, 0x9DE2, 0x9DE3, 0x9DE4, 0x9DE5, 0x9DE6, /* 0xC0 */
- 0x9DE7, 0xE5A1, 0x9DE8, 0x9DE9, 0x9DEA, 0x9DEB, 0x9DEC, 0x9DED, /* 0xC0 */
- 0x9DEE, 0xE4FE, 0xB1F4, 0x9DEF, 0x9DF0, 0x9DF1, 0x9DF2, 0x9DF3, /* 0xD0 */
- 0x9DF4, 0x9DF5, 0x9DF6, 0x9DF7, 0x9DF8, 0x9DF9, 0xE5A8, 0x9DFA, /* 0xD0 */
- 0xE5A9, 0xE5A6, 0x9DFB, 0x9DFC, 0x9DFD, 0x9DFE, 0x9E40, 0x9E41, /* 0xE0 */
- 0x9E42, 0x9E43, 0x9E44, 0x9E45, 0x9E46, 0x9E47, 0xE5A7, 0xE5AA, /* 0xE0 */
- 0x9E48, 0x9E49, 0x9E4A, 0x9E4B, 0x9E4C, 0x9E4D, 0x9E4E, 0x9E4F, /* 0xF0 */
- 0x9E50, 0x9E51, 0x9E52, 0x9E53, 0x9E54, 0x9E55, 0x9E56, 0x9E57 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_70[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9E58, 0x9E59, 0x9E5A, 0x9E5B, 0x9E5C, 0x9E5D, 0x9E5E, 0x9E5F, /* 0x00 */
- 0x9E60, 0x9E61, 0x9E62, 0x9E63, 0x9E64, 0x9E65, 0x9E66, 0x9E67, /* 0x00 */
- 0x9E68, 0xC6D9, 0x9E69, 0x9E6A, 0x9E6B, 0x9E6C, 0x9E6D, 0x9E6E, /* 0x10 */
- 0x9E6F, 0x9E70, 0xE5AB, 0xE5AD, 0x9E71, 0x9E72, 0x9E73, 0x9E74, /* 0x10 */
- 0x9E75, 0x9E76, 0x9E77, 0xE5AC, 0x9E78, 0x9E79, 0x9E7A, 0x9E7B, /* 0x20 */
- 0x9E7C, 0x9E7D, 0x9E7E, 0x9E80, 0x9E81, 0x9E82, 0x9E83, 0x9E84, /* 0x20 */
- 0x9E85, 0x9E86, 0x9E87, 0x9E88, 0x9E89, 0xE5AF, 0x9E8A, 0x9E8B, /* 0x30 */
- 0x9E8C, 0xE5AE, 0x9E8D, 0x9E8E, 0x9E8F, 0x9E90, 0x9E91, 0x9E92, /* 0x30 */
- 0x9E93, 0x9E94, 0x9E95, 0x9E96, 0x9E97, 0x9E98, 0x9E99, 0x9E9A, /* 0x40 */
- 0x9E9B, 0x9E9C, 0x9E9D, 0x9E9E, 0xB9E0, 0x9E9F, 0x9EA0, 0xE5B0, /* 0x40 */
- 0x9EA1, 0x9EA2, 0x9EA3, 0x9EA4, 0x9EA5, 0x9EA6, 0x9EA7, 0x9EA8, /* 0x50 */
- 0x9EA9, 0x9EAA, 0x9EAB, 0x9EAC, 0x9EAD, 0x9EAE, 0xE5B1, 0x9EAF, /* 0x50 */
- 0x9EB0, 0x9EB1, 0x9EB2, 0x9EB3, 0x9EB4, 0x9EB5, 0x9EB6, 0x9EB7, /* 0x60 */
- 0x9EB8, 0x9EB9, 0x9EBA, 0xBBF0, 0xECE1, 0xC3F0, 0x9EBB, 0xB5C6, /* 0x60 */
- 0xBBD2, 0x9EBC, 0x9EBD, 0x9EBE, 0x9EBF, 0xC1E9, 0xD4EE, 0x9EC0, /* 0x70 */
- 0xBEC4, 0x9EC1, 0x9EC2, 0x9EC3, 0xD7C6, 0x9EC4, 0xD4D6, 0xB2D3, /* 0x70 */
- 0xECBE, 0x9EC5, 0x9EC6, 0x9EC7, 0x9EC8, 0xEAC1, 0x9EC9, 0x9ECA, /* 0x80 */
- 0x9ECB, 0xC2AF, 0xB4B6, 0x9ECC, 0x9ECD, 0x9ECE, 0xD1D7, 0x9ECF, /* 0x80 */
- 0x9ED0, 0x9ED1, 0xB3B4, 0x9ED2, 0xC8B2, 0xBFBB, 0xECC0, 0x9ED3, /* 0x90 */
- 0x9ED4, 0xD6CB, 0x9ED5, 0x9ED6, 0xECBF, 0xECC1, 0x9ED7, 0x9ED8, /* 0x90 */
- 0x9ED9, 0x9EDA, 0x9EDB, 0x9EDC, 0x9EDD, 0x9EDE, 0x9EDF, 0x9EE0, /* 0xA0 */
- 0x9EE1, 0x9EE2, 0x9EE3, 0xECC5, 0xBEE6, 0xCCBF, 0xC5DA, 0xBEBC, /* 0xA0 */
- 0x9EE4, 0xECC6, 0x9EE5, 0xB1FE, 0x9EE6, 0x9EE7, 0x9EE8, 0xECC4, /* 0xB0 */
- 0xD5A8, 0xB5E3, 0x9EE9, 0xECC2, 0xC1B6, 0xB3E3, 0x9EEA, 0x9EEB, /* 0xB0 */
- 0xECC3, 0xCBB8, 0xC0C3, 0xCCFE, 0x9EEC, 0x9EED, 0x9EEE, 0x9EEF, /* 0xC0 */
- 0xC1D2, 0x9EF0, 0xECC8, 0x9EF1, 0x9EF2, 0x9EF3, 0x9EF4, 0x9EF5, /* 0xC0 */
- 0x9EF6, 0x9EF7, 0x9EF8, 0x9EF9, 0x9EFA, 0x9EFB, 0x9EFC, 0x9EFD, /* 0xD0 */
- 0xBAE6, 0xC0D3, 0x9EFE, 0xD6F2, 0x9F40, 0x9F41, 0x9F42, 0xD1CC, /* 0xD0 */
- 0x9F43, 0x9F44, 0x9F45, 0x9F46, 0xBFBE, 0x9F47, 0xB7B3, 0xC9D5, /* 0xE0 */
- 0xECC7, 0xBBE2, 0x9F48, 0xCCCC, 0xBDFD, 0xC8C8, 0x9F49, 0xCFA9, /* 0xE0 */
- 0x9F4A, 0x9F4B, 0x9F4C, 0x9F4D, 0x9F4E, 0x9F4F, 0x9F50, 0xCDE9, /* 0xF0 */
- 0x9F51, 0xC5EB, 0x9F52, 0x9F53, 0x9F54, 0xB7E9, 0x9F55, 0x9F56 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_71[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9F57, 0x9F58, 0x9F59, 0x9F5A, 0x9F5B, 0x9F5C, 0x9F5D, 0x9F5E, /* 0x00 */
- 0x9F5F, 0xD1C9, 0xBAB8, 0x9F60, 0x9F61, 0x9F62, 0x9F63, 0x9F64, /* 0x00 */
- 0xECC9, 0x9F65, 0x9F66, 0xECCA, 0x9F67, 0xBBC0, 0xECCB, 0x9F68, /* 0x10 */
- 0xECE2, 0xB1BA, 0xB7D9, 0x9F69, 0x9F6A, 0x9F6B, 0x9F6C, 0x9F6D, /* 0x10 */
- 0x9F6E, 0x9F6F, 0x9F70, 0x9F71, 0x9F72, 0x9F73, 0xBDB9, 0x9F74, /* 0x20 */
- 0x9F75, 0x9F76, 0x9F77, 0x9F78, 0x9F79, 0x9F7A, 0x9F7B, 0xECCC, /* 0x20 */
- 0xD1E6, 0xECCD, 0x9F7C, 0x9F7D, 0x9F7E, 0x9F80, 0xC8BB, 0x9F81, /* 0x30 */
- 0x9F82, 0x9F83, 0x9F84, 0x9F85, 0x9F86, 0x9F87, 0x9F88, 0x9F89, /* 0x30 */
- 0x9F8A, 0x9F8B, 0x9F8C, 0x9F8D, 0x9F8E, 0xECD1, 0x9F8F, 0x9F90, /* 0x40 */
- 0x9F91, 0x9F92, 0xECD3, 0x9F93, 0xBBCD, 0x9F94, 0xBCE5, 0x9F95, /* 0x40 */
- 0x9F96, 0x9F97, 0x9F98, 0x9F99, 0x9F9A, 0x9F9B, 0x9F9C, 0x9F9D, /* 0x50 */
- 0x9F9E, 0x9F9F, 0x9FA0, 0x9FA1, 0xECCF, 0x9FA2, 0xC9B7, 0x9FA3, /* 0x50 */
- 0x9FA4, 0x9FA5, 0x9FA6, 0x9FA7, 0xC3BA, 0x9FA8, 0xECE3, 0xD5D5, /* 0x60 */
- 0xECD0, 0x9FA9, 0x9FAA, 0x9FAB, 0x9FAC, 0x9FAD, 0xD6F3, 0x9FAE, /* 0x60 */
- 0x9FAF, 0x9FB0, 0xECD2, 0xECCE, 0x9FB1, 0x9FB2, 0x9FB3, 0x9FB4, /* 0x70 */
- 0xECD4, 0x9FB5, 0xECD5, 0x9FB6, 0x9FB7, 0xC9BF, 0x9FB8, 0x9FB9, /* 0x70 */
- 0x9FBA, 0x9FBB, 0x9FBC, 0x9FBD, 0xCFA8, 0x9FBE, 0x9FBF, 0x9FC0, /* 0x80 */
- 0x9FC1, 0x9FC2, 0xD0DC, 0x9FC3, 0x9FC4, 0x9FC5, 0x9FC6, 0xD1AC, /* 0x80 */
- 0x9FC7, 0x9FC8, 0x9FC9, 0x9FCA, 0xC8DB, 0x9FCB, 0x9FCC, 0x9FCD, /* 0x90 */
- 0xECD6, 0xCEF5, 0x9FCE, 0x9FCF, 0x9FD0, 0x9FD1, 0x9FD2, 0xCAEC, /* 0x90 */
- 0xECDA, 0x9FD3, 0x9FD4, 0x9FD5, 0x9FD6, 0x9FD7, 0x9FD8, 0x9FD9, /* 0xA0 */
- 0xECD9, 0x9FDA, 0x9FDB, 0x9FDC, 0xB0BE, 0x9FDD, 0x9FDE, 0x9FDF, /* 0xA0 */
- 0x9FE0, 0x9FE1, 0x9FE2, 0xECD7, 0x9FE3, 0xECD8, 0x9FE4, 0x9FE5, /* 0xB0 */
- 0x9FE6, 0xECE4, 0x9FE7, 0x9FE8, 0x9FE9, 0x9FEA, 0x9FEB, 0x9FEC, /* 0xB0 */
- 0x9FED, 0x9FEE, 0x9FEF, 0xC8BC, 0x9FF0, 0x9FF1, 0x9FF2, 0x9FF3, /* 0xC0 */
- 0x9FF4, 0x9FF5, 0x9FF6, 0x9FF7, 0x9FF8, 0x9FF9, 0xC1C7, 0x9FFA, /* 0xC0 */
- 0x9FFB, 0x9FFC, 0x9FFD, 0x9FFE, 0xECDC, 0xD1E0, 0xA040, 0xA041, /* 0xD0 */
- 0xA042, 0xA043, 0xA044, 0xA045, 0xA046, 0xA047, 0xA048, 0xA049, /* 0xD0 */
- 0xECDB, 0xA04A, 0xA04B, 0xA04C, 0xA04D, 0xD4EF, 0xA04E, 0xECDD, /* 0xE0 */
- 0xA04F, 0xA050, 0xA051, 0xA052, 0xA053, 0xA054, 0xDBC6, 0xA055, /* 0xE0 */
- 0xA056, 0xA057, 0xA058, 0xA059, 0xA05A, 0xA05B, 0xA05C, 0xA05D, /* 0xF0 */
- 0xA05E, 0xECDE, 0xA05F, 0xA060, 0xA061, 0xA062, 0xA063, 0xA064 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_72[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA065, 0xA066, 0xA067, 0xA068, 0xA069, 0xA06A, 0xB1AC, 0xA06B, /* 0x00 */
- 0xA06C, 0xA06D, 0xA06E, 0xA06F, 0xA070, 0xA071, 0xA072, 0xA073, /* 0x00 */
- 0xA074, 0xA075, 0xA076, 0xA077, 0xA078, 0xA079, 0xA07A, 0xA07B, /* 0x10 */
- 0xA07C, 0xA07D, 0xA07E, 0xA080, 0xA081, 0xECDF, 0xA082, 0xA083, /* 0x10 */
- 0xA084, 0xA085, 0xA086, 0xA087, 0xA088, 0xA089, 0xA08A, 0xA08B, /* 0x20 */
- 0xECE0, 0xA08C, 0xD7A6, 0xA08D, 0xC5C0, 0xA08E, 0xA08F, 0xA090, /* 0x20 */
- 0xEBBC, 0xB0AE, 0xA091, 0xA092, 0xA093, 0xBEF4, 0xB8B8, 0xD2AF, /* 0x30 */
- 0xB0D6, 0xB5F9, 0xA094, 0xD8B3, 0xA095, 0xCBAC, 0xA096, 0xE3DD, /* 0x30 */
- 0xA097, 0xA098, 0xA099, 0xA09A, 0xA09B, 0xA09C, 0xA09D, 0xC6AC, /* 0x40 */
- 0xB0E6, 0xA09E, 0xA09F, 0xA0A0, 0xC5C6, 0xEBB9, 0xA0A1, 0xA0A2, /* 0x40 */
- 0xA0A3, 0xA0A4, 0xEBBA, 0xA0A5, 0xA0A6, 0xA0A7, 0xEBBB, 0xA0A8, /* 0x50 */
- 0xA0A9, 0xD1C0, 0xA0AA, 0xC5A3, 0xA0AB, 0xEAF2, 0xA0AC, 0xC4B2, /* 0x50 */
- 0xA0AD, 0xC4B5, 0xC0CE, 0xA0AE, 0xA0AF, 0xA0B0, 0xEAF3, 0xC4C1, /* 0x60 */
- 0xA0B1, 0xCEEF, 0xA0B2, 0xA0B3, 0xA0B4, 0xA0B5, 0xEAF0, 0xEAF4, /* 0x60 */
- 0xA0B6, 0xA0B7, 0xC9FC, 0xA0B8, 0xA0B9, 0xC7A3, 0xA0BA, 0xA0BB, /* 0x70 */
- 0xA0BC, 0xCCD8, 0xCEFE, 0xA0BD, 0xA0BE, 0xA0BF, 0xEAF5, 0xEAF6, /* 0x70 */
- 0xCFAC, 0xC0E7, 0xA0C0, 0xA0C1, 0xEAF7, 0xA0C2, 0xA0C3, 0xA0C4, /* 0x80 */
- 0xA0C5, 0xA0C6, 0xB6BF, 0xEAF8, 0xA0C7, 0xEAF9, 0xA0C8, 0xEAFA, /* 0x80 */
- 0xA0C9, 0xA0CA, 0xEAFB, 0xA0CB, 0xA0CC, 0xA0CD, 0xA0CE, 0xA0CF, /* 0x90 */
- 0xA0D0, 0xA0D1, 0xA0D2, 0xA0D3, 0xA0D4, 0xA0D5, 0xA0D6, 0xEAF1, /* 0x90 */
- 0xA0D7, 0xA0D8, 0xA0D9, 0xA0DA, 0xA0DB, 0xA0DC, 0xA0DD, 0xA0DE, /* 0xA0 */
- 0xA0DF, 0xA0E0, 0xA0E1, 0xA0E2, 0xC8AE, 0xE1EB, 0xA0E3, 0xB7B8, /* 0xA0 */
- 0xE1EC, 0xA0E4, 0xA0E5, 0xA0E6, 0xE1ED, 0xA0E7, 0xD7B4, 0xE1EE, /* 0xB0 */
- 0xE1EF, 0xD3CC, 0xA0E8, 0xA0E9, 0xA0EA, 0xA0EB, 0xA0EC, 0xA0ED, /* 0xB0 */
- 0xA0EE, 0xE1F1, 0xBFF1, 0xE1F0, 0xB5D2, 0xA0EF, 0xA0F0, 0xA0F1, /* 0xC0 */
- 0xB1B7, 0xA0F2, 0xA0F3, 0xA0F4, 0xA0F5, 0xE1F3, 0xE1F2, 0xA0F6, /* 0xC0 */
- 0xBAFC, 0xA0F7, 0xE1F4, 0xA0F8, 0xA0F9, 0xA0FA, 0xA0FB, 0xB9B7, /* 0xD0 */
- 0xA0FC, 0xBED1, 0xA0FD, 0xA0FE, 0xAA40, 0xAA41, 0xC4FC, 0xAA42, /* 0xD0 */
- 0xBADD, 0xBDC6, 0xAA43, 0xAA44, 0xAA45, 0xAA46, 0xAA47, 0xAA48, /* 0xE0 */
- 0xE1F5, 0xE1F7, 0xAA49, 0xAA4A, 0xB6C0, 0xCFC1, 0xCAA8, 0xE1F6, /* 0xE0 */
- 0xD5F8, 0xD3FC, 0xE1F8, 0xE1FC, 0xE1F9, 0xAA4B, 0xAA4C, 0xE1FA, /* 0xF0 */
- 0xC0EA, 0xAA4D, 0xE1FE, 0xE2A1, 0xC0C7, 0xAA4E, 0xAA4F, 0xAA50 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_73[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xAA51, 0xE1FB, 0xAA52, 0xE1FD, 0xAA53, 0xAA54, 0xAA55, 0xAA56, /* 0x00 */
- 0xAA57, 0xAA58, 0xE2A5, 0xAA59, 0xAA5A, 0xAA5B, 0xC1D4, 0xAA5C, /* 0x00 */
- 0xAA5D, 0xAA5E, 0xAA5F, 0xE2A3, 0xAA60, 0xE2A8, 0xB2FE, 0xE2A2, /* 0x10 */
- 0xAA61, 0xAA62, 0xAA63, 0xC3CD, 0xB2C2, 0xE2A7, 0xE2A6, 0xAA64, /* 0x10 */
- 0xAA65, 0xE2A4, 0xE2A9, 0xAA66, 0xAA67, 0xE2AB, 0xAA68, 0xAA69, /* 0x20 */
- 0xAA6A, 0xD0C9, 0xD6ED, 0xC3A8, 0xE2AC, 0xAA6B, 0xCFD7, 0xAA6C, /* 0x20 */
- 0xAA6D, 0xE2AE, 0xAA6E, 0xAA6F, 0xBAEF, 0xAA70, 0xAA71, 0xE9E0, /* 0x30 */
- 0xE2AD, 0xE2AA, 0xAA72, 0xAA73, 0xAA74, 0xAA75, 0xBBAB, 0xD4B3, /* 0x30 */
- 0xAA76, 0xAA77, 0xAA78, 0xAA79, 0xAA7A, 0xAA7B, 0xAA7C, 0xAA7D, /* 0x40 */
- 0xAA7E, 0xAA80, 0xAA81, 0xAA82, 0xAA83, 0xE2B0, 0xAA84, 0xAA85, /* 0x40 */
- 0xE2AF, 0xAA86, 0xE9E1, 0xAA87, 0xAA88, 0xAA89, 0xAA8A, 0xE2B1, /* 0x50 */
- 0xAA8B, 0xAA8C, 0xAA8D, 0xAA8E, 0xAA8F, 0xAA90, 0xAA91, 0xAA92, /* 0x50 */
- 0xE2B2, 0xAA93, 0xAA94, 0xAA95, 0xAA96, 0xAA97, 0xAA98, 0xAA99, /* 0x60 */
- 0xAA9A, 0xAA9B, 0xAA9C, 0xAA9D, 0xE2B3, 0xCCA1, 0xAA9E, 0xE2B4, /* 0x60 */
- 0xAA9F, 0xAAA0, 0xAB40, 0xAB41, 0xAB42, 0xAB43, 0xAB44, 0xAB45, /* 0x70 */
- 0xAB46, 0xAB47, 0xAB48, 0xAB49, 0xAB4A, 0xAB4B, 0xE2B5, 0xAB4C, /* 0x70 */
- 0xAB4D, 0xAB4E, 0xAB4F, 0xAB50, 0xD0FE, 0xAB51, 0xAB52, 0xC2CA, /* 0x80 */
- 0xAB53, 0xD3F1, 0xAB54, 0xCDF5, 0xAB55, 0xAB56, 0xE7E0, 0xAB57, /* 0x80 */
- 0xAB58, 0xE7E1, 0xAB59, 0xAB5A, 0xAB5B, 0xAB5C, 0xBEC1, 0xAB5D, /* 0x90 */
- 0xAB5E, 0xAB5F, 0xAB60, 0xC2EA, 0xAB61, 0xAB62, 0xAB63, 0xE7E4, /* 0x90 */
- 0xAB64, 0xAB65, 0xE7E3, 0xAB66, 0xAB67, 0xAB68, 0xAB69, 0xAB6A, /* 0xA0 */
- 0xAB6B, 0xCDE6, 0xAB6C, 0xC3B5, 0xAB6D, 0xAB6E, 0xE7E2, 0xBBB7, /* 0xA0 */
- 0xCFD6, 0xAB6F, 0xC1E1, 0xE7E9, 0xAB70, 0xAB71, 0xAB72, 0xE7E8, /* 0xB0 */
- 0xAB73, 0xAB74, 0xE7F4, 0xB2A3, 0xAB75, 0xAB76, 0xAB77, 0xAB78, /* 0xB0 */
- 0xE7EA, 0xAB79, 0xE7E6, 0xAB7A, 0xAB7B, 0xAB7C, 0xAB7D, 0xAB7E, /* 0xC0 */
- 0xE7EC, 0xE7EB, 0xC9BA, 0xAB80, 0xAB81, 0xD5E4, 0xAB82, 0xE7E5, /* 0xC0 */
- 0xB7A9, 0xE7E7, 0xAB83, 0xAB84, 0xAB85, 0xAB86, 0xAB87, 0xAB88, /* 0xD0 */
- 0xAB89, 0xE7EE, 0xAB8A, 0xAB8B, 0xAB8C, 0xAB8D, 0xE7F3, 0xAB8E, /* 0xD0 */
- 0xD6E9, 0xAB8F, 0xAB90, 0xAB91, 0xAB92, 0xE7ED, 0xAB93, 0xE7F2, /* 0xE0 */
- 0xAB94, 0xE7F1, 0xAB95, 0xAB96, 0xAB97, 0xB0E0, 0xAB98, 0xAB99, /* 0xE0 */
- 0xAB9A, 0xAB9B, 0xE7F5, 0xAB9C, 0xAB9D, 0xAB9E, 0xAB9F, 0xABA0, /* 0xF0 */
- 0xAC40, 0xAC41, 0xAC42, 0xAC43, 0xAC44, 0xAC45, 0xAC46, 0xAC47 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_74[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xAC48, 0xAC49, 0xAC4A, 0xC7F2, 0xAC4B, 0xC0C5, 0xC0ED, 0xAC4C, /* 0x00 */
- 0xAC4D, 0xC1F0, 0xE7F0, 0xAC4E, 0xAC4F, 0xAC50, 0xAC51, 0xE7F6, /* 0x00 */
- 0xCBF6, 0xAC52, 0xAC53, 0xAC54, 0xAC55, 0xAC56, 0xAC57, 0xAC58, /* 0x10 */
- 0xAC59, 0xAC5A, 0xE8A2, 0xE8A1, 0xAC5B, 0xAC5C, 0xAC5D, 0xAC5E, /* 0x10 */
- 0xAC5F, 0xAC60, 0xD7C1, 0xAC61, 0xAC62, 0xE7FA, 0xE7F9, 0xAC63, /* 0x20 */
- 0xE7FB, 0xAC64, 0xE7F7, 0xAC65, 0xE7FE, 0xAC66, 0xE7FD, 0xAC67, /* 0x20 */
- 0xE7FC, 0xAC68, 0xAC69, 0xC1D5, 0xC7D9, 0xC5FD, 0xC5C3, 0xAC6A, /* 0x30 */
- 0xAC6B, 0xAC6C, 0xAC6D, 0xAC6E, 0xC7ED, 0xAC6F, 0xAC70, 0xAC71, /* 0x30 */
- 0xAC72, 0xE8A3, 0xAC73, 0xAC74, 0xAC75, 0xAC76, 0xAC77, 0xAC78, /* 0x40 */
- 0xAC79, 0xAC7A, 0xAC7B, 0xAC7C, 0xAC7D, 0xAC7E, 0xAC80, 0xAC81, /* 0x40 */
- 0xAC82, 0xAC83, 0xAC84, 0xAC85, 0xAC86, 0xE8A6, 0xAC87, 0xE8A5, /* 0x50 */
- 0xAC88, 0xE8A7, 0xBAF7, 0xE7F8, 0xE8A4, 0xAC89, 0xC8F0, 0xC9AA, /* 0x50 */
- 0xAC8A, 0xAC8B, 0xAC8C, 0xAC8D, 0xAC8E, 0xAC8F, 0xAC90, 0xAC91, /* 0x60 */
- 0xAC92, 0xAC93, 0xAC94, 0xAC95, 0xAC96, 0xE8A9, 0xAC97, 0xAC98, /* 0x60 */
- 0xB9E5, 0xAC99, 0xAC9A, 0xAC9B, 0xAC9C, 0xAC9D, 0xD1FE, 0xE8A8, /* 0x70 */
- 0xAC9E, 0xAC9F, 0xACA0, 0xAD40, 0xAD41, 0xAD42, 0xE8AA, 0xAD43, /* 0x70 */
- 0xE8AD, 0xE8AE, 0xAD44, 0xC1A7, 0xAD45, 0xAD46, 0xAD47, 0xE8AF, /* 0x80 */
- 0xAD48, 0xAD49, 0xAD4A, 0xE8B0, 0xAD4B, 0xAD4C, 0xE8AC, 0xAD4D, /* 0x80 */
- 0xE8B4, 0xAD4E, 0xAD4F, 0xAD50, 0xAD51, 0xAD52, 0xAD53, 0xAD54, /* 0x90 */
- 0xAD55, 0xAD56, 0xAD57, 0xAD58, 0xE8AB, 0xAD59, 0xE8B1, 0xAD5A, /* 0x90 */
- 0xAD5B, 0xAD5C, 0xAD5D, 0xAD5E, 0xAD5F, 0xAD60, 0xAD61, 0xE8B5, /* 0xA0 */
- 0xE8B2, 0xE8B3, 0xAD62, 0xAD63, 0xAD64, 0xAD65, 0xAD66, 0xAD67, /* 0xA0 */
- 0xAD68, 0xAD69, 0xAD6A, 0xAD6B, 0xAD6C, 0xAD6D, 0xAD6E, 0xAD6F, /* 0xB0 */
- 0xAD70, 0xAD71, 0xE8B7, 0xAD72, 0xAD73, 0xAD74, 0xAD75, 0xAD76, /* 0xB0 */
- 0xAD77, 0xAD78, 0xAD79, 0xAD7A, 0xAD7B, 0xAD7C, 0xAD7D, 0xAD7E, /* 0xC0 */
- 0xAD80, 0xAD81, 0xAD82, 0xAD83, 0xAD84, 0xAD85, 0xAD86, 0xAD87, /* 0xC0 */
- 0xAD88, 0xAD89, 0xE8B6, 0xAD8A, 0xAD8B, 0xAD8C, 0xAD8D, 0xAD8E, /* 0xD0 */
- 0xAD8F, 0xAD90, 0xAD91, 0xAD92, 0xB9CF, 0xAD93, 0xF0AC, 0xAD94, /* 0xD0 */
- 0xF0AD, 0xAD95, 0xC6B0, 0xB0EA, 0xC8BF, 0xAD96, 0xCDDF, 0xAD97, /* 0xE0 */
- 0xAD98, 0xAD99, 0xAD9A, 0xAD9B, 0xAD9C, 0xAD9D, 0xCECD, 0xEAB1, /* 0xE0 */
- 0xAD9E, 0xAD9F, 0xADA0, 0xAE40, 0xEAB2, 0xAE41, 0xC6BF, 0xB4C9, /* 0xF0 */
- 0xAE42, 0xAE43, 0xAE44, 0xAE45, 0xAE46, 0xAE47, 0xAE48, 0xEAB3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_75[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xAE49, 0xAE4A, 0xAE4B, 0xAE4C, 0xD5E7, 0xAE4D, 0xAE4E, 0xAE4F, /* 0x00 */
- 0xAE50, 0xAE51, 0xAE52, 0xAE53, 0xAE54, 0xDDF9, 0xAE55, 0xEAB4, /* 0x00 */
- 0xAE56, 0xEAB5, 0xAE57, 0xEAB6, 0xAE58, 0xAE59, 0xAE5A, 0xAE5B, /* 0x10 */
- 0xB8CA, 0xDFB0, 0xC9F5, 0xAE5C, 0xCCF0, 0xAE5D, 0xAE5E, 0xC9FA, /* 0x10 */
- 0xAE5F, 0xAE60, 0xAE61, 0xAE62, 0xAE63, 0xC9FB, 0xAE64, 0xAE65, /* 0x20 */
- 0xD3C3, 0xCBA6, 0xAE66, 0xB8A6, 0xF0AE, 0xB1C2, 0xAE67, 0xE5B8, /* 0x20 */
- 0xCCEF, 0xD3C9, 0xBCD7, 0xC9EA, 0xAE68, 0xB5E7, 0xAE69, 0xC4D0, /* 0x30 */
- 0xB5E9, 0xAE6A, 0xEEAE, 0xBBAD, 0xAE6B, 0xAE6C, 0xE7DE, 0xAE6D, /* 0x30 */
- 0xEEAF, 0xAE6E, 0xAE6F, 0xAE70, 0xAE71, 0xB3A9, 0xAE72, 0xAE73, /* 0x40 */
- 0xEEB2, 0xAE74, 0xAE75, 0xEEB1, 0xBDE7, 0xAE76, 0xEEB0, 0xCEB7, /* 0x40 */
- 0xAE77, 0xAE78, 0xAE79, 0xAE7A, 0xC5CF, 0xAE7B, 0xAE7C, 0xAE7D, /* 0x50 */
- 0xAE7E, 0xC1F4, 0xDBCE, 0xEEB3, 0xD0F3, 0xAE80, 0xAE81, 0xAE82, /* 0x50 */
- 0xAE83, 0xAE84, 0xAE85, 0xAE86, 0xAE87, 0xC2D4, 0xC6E8, 0xAE88, /* 0x60 */
- 0xAE89, 0xAE8A, 0xB7AC, 0xAE8B, 0xAE8C, 0xAE8D, 0xAE8E, 0xAE8F, /* 0x60 */
- 0xAE90, 0xAE91, 0xEEB4, 0xAE92, 0xB3EB, 0xAE93, 0xAE94, 0xAE95, /* 0x70 */
- 0xBBFB, 0xEEB5, 0xAE96, 0xAE97, 0xAE98, 0xAE99, 0xAE9A, 0xE7DC, /* 0x70 */
- 0xAE9B, 0xAE9C, 0xAE9D, 0xEEB6, 0xAE9E, 0xAE9F, 0xBDAE, 0xAEA0, /* 0x80 */
- 0xAF40, 0xAF41, 0xAF42, 0xF1E2, 0xAF43, 0xAF44, 0xAF45, 0xCAE8, /* 0x80 */
- 0xAF46, 0xD2C9, 0xF0DA, 0xAF47, 0xF0DB, 0xAF48, 0xF0DC, 0xC1C6, /* 0x90 */
- 0xAF49, 0xB8ED, 0xBECE, 0xAF4A, 0xAF4B, 0xF0DE, 0xAF4C, 0xC5B1, /* 0x90 */
- 0xF0DD, 0xD1F1, 0xAF4D, 0xF0E0, 0xB0CC, 0xBDEA, 0xAF4E, 0xAF4F, /* 0xA0 */
- 0xAF50, 0xAF51, 0xAF52, 0xD2DF, 0xF0DF, 0xAF53, 0xB4AF, 0xB7E8, /* 0xA0 */
- 0xF0E6, 0xF0E5, 0xC6A3, 0xF0E1, 0xF0E2, 0xB4C3, 0xAF54, 0xAF55, /* 0xB0 */
- 0xF0E3, 0xD5EE, 0xAF56, 0xAF57, 0xCCDB, 0xBED2, 0xBCB2, 0xAF58, /* 0xB0 */
- 0xAF59, 0xAF5A, 0xF0E8, 0xF0E7, 0xF0E4, 0xB2A1, 0xAF5B, 0xD6A2, /* 0xC0 */
- 0xD3B8, 0xBEB7, 0xC8AC, 0xAF5C, 0xAF5D, 0xF0EA, 0xAF5E, 0xAF5F, /* 0xC0 */
- 0xAF60, 0xAF61, 0xD1F7, 0xAF62, 0xD6CC, 0xBADB, 0xF0E9, 0xAF63, /* 0xD0 */
- 0xB6BB, 0xAF64, 0xAF65, 0xCDB4, 0xAF66, 0xAF67, 0xC6A6, 0xAF68, /* 0xD0 */
- 0xAF69, 0xAF6A, 0xC1A1, 0xF0EB, 0xF0EE, 0xAF6B, 0xF0ED, 0xF0F0, /* 0xE0 */
- 0xF0EC, 0xAF6C, 0xBBBE, 0xF0EF, 0xAF6D, 0xAF6E, 0xAF6F, 0xAF70, /* 0xE0 */
- 0xCCB5, 0xF0F2, 0xAF71, 0xAF72, 0xB3D5, 0xAF73, 0xAF74, 0xAF75, /* 0xF0 */
- 0xAF76, 0xB1D4, 0xAF77, 0xAF78, 0xF0F3, 0xAF79, 0xAF7A, 0xF0F4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_76[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF0F6, 0xB4E1, 0xAF7B, 0xF0F1, 0xAF7C, 0xF0F7, 0xAF7D, 0xAF7E, /* 0x00 */
- 0xAF80, 0xAF81, 0xF0FA, 0xAF82, 0xF0F8, 0xAF83, 0xAF84, 0xAF85, /* 0x00 */
- 0xF0F5, 0xAF86, 0xAF87, 0xAF88, 0xAF89, 0xF0FD, 0xAF8A, 0xF0F9, /* 0x10 */
- 0xF0FC, 0xF0FE, 0xAF8B, 0xF1A1, 0xAF8C, 0xAF8D, 0xAF8E, 0xCEC1, /* 0x10 */
- 0xF1A4, 0xAF8F, 0xF1A3, 0xAF90, 0xC1F6, 0xF0FB, 0xCADD, 0xAF91, /* 0x20 */
- 0xAF92, 0xB4F1, 0xB1F1, 0xCCB1, 0xAF93, 0xF1A6, 0xAF94, 0xAF95, /* 0x20 */
- 0xF1A7, 0xAF96, 0xAF97, 0xF1AC, 0xD5CE, 0xF1A9, 0xAF98, 0xAF99, /* 0x30 */
- 0xC8B3, 0xAF9A, 0xAF9B, 0xAF9C, 0xF1A2, 0xAF9D, 0xF1AB, 0xF1A8, /* 0x30 */
- 0xF1A5, 0xAF9E, 0xAF9F, 0xF1AA, 0xAFA0, 0xB040, 0xB041, 0xB042, /* 0x40 */
- 0xB043, 0xB044, 0xB045, 0xB046, 0xB0A9, 0xF1AD, 0xB047, 0xB048, /* 0x40 */
- 0xB049, 0xB04A, 0xB04B, 0xB04C, 0xF1AF, 0xB04D, 0xF1B1, 0xB04E, /* 0x50 */
- 0xB04F, 0xB050, 0xB051, 0xB052, 0xF1B0, 0xB053, 0xF1AE, 0xB054, /* 0x50 */
- 0xB055, 0xB056, 0xB057, 0xD1A2, 0xB058, 0xB059, 0xB05A, 0xB05B, /* 0x60 */
- 0xB05C, 0xB05D, 0xB05E, 0xF1B2, 0xB05F, 0xB060, 0xB061, 0xF1B3, /* 0x60 */
- 0xB062, 0xB063, 0xB064, 0xB065, 0xB066, 0xB067, 0xB068, 0xB069, /* 0x70 */
- 0xB9EF, 0xB06A, 0xB06B, 0xB5C7, 0xB06C, 0xB0D7, 0xB0D9, 0xB06D, /* 0x70 */
- 0xB06E, 0xB06F, 0xD4ED, 0xB070, 0xB5C4, 0xB071, 0xBDD4, 0xBBCA, /* 0x80 */
- 0xF0A7, 0xB072, 0xB073, 0xB8DE, 0xB074, 0xB075, 0xF0A8, 0xB076, /* 0x80 */
- 0xB077, 0xB0A8, 0xB078, 0xF0A9, 0xB079, 0xB07A, 0xCDEE, 0xB07B, /* 0x90 */
- 0xB07C, 0xF0AA, 0xB07D, 0xB07E, 0xB080, 0xB081, 0xB082, 0xB083, /* 0x90 */
- 0xB084, 0xB085, 0xB086, 0xB087, 0xF0AB, 0xB088, 0xB089, 0xB08A, /* 0xA0 */
- 0xB08B, 0xB08C, 0xB08D, 0xB08E, 0xB08F, 0xB090, 0xC6A4, 0xB091, /* 0xA0 */
- 0xB092, 0xD6E5, 0xF1E4, 0xB093, 0xF1E5, 0xB094, 0xB095, 0xB096, /* 0xB0 */
- 0xB097, 0xB098, 0xB099, 0xB09A, 0xB09B, 0xB09C, 0xB09D, 0xC3F3, /* 0xB0 */
- 0xB09E, 0xB09F, 0xD3DB, 0xB0A0, 0xB140, 0xD6D1, 0xC5E8, 0xB141, /* 0xC0 */
- 0xD3AF, 0xB142, 0xD2E6, 0xB143, 0xB144, 0xEEC1, 0xB0BB, 0xD5B5, /* 0xC0 */
- 0xD1CE, 0xBCE0, 0xBAD0, 0xB145, 0xBFF8, 0xB146, 0xB8C7, 0xB5C1, /* 0xD0 */
- 0xC5CC, 0xB147, 0xB148, 0xCAA2, 0xB149, 0xB14A, 0xB14B, 0xC3CB, /* 0xD0 */
- 0xB14C, 0xB14D, 0xB14E, 0xB14F, 0xB150, 0xEEC2, 0xB151, 0xB152, /* 0xE0 */
- 0xB153, 0xB154, 0xB155, 0xB156, 0xB157, 0xB158, 0xC4BF, 0xB6A2, /* 0xE0 */
- 0xB159, 0xEDEC, 0xC3A4, 0xB15A, 0xD6B1, 0xB15B, 0xB15C, 0xB15D, /* 0xF0 */
- 0xCFE0, 0xEDEF, 0xB15E, 0xB15F, 0xC5CE, 0xB160, 0xB6DC, 0xB161 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_77[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB162, 0xCAA1, 0xB163, 0xB164, 0xEDED, 0xB165, 0xB166, 0xEDF0, /* 0x00 */
- 0xEDF1, 0xC3BC, 0xB167, 0xBFB4, 0xB168, 0xEDEE, 0xB169, 0xB16A, /* 0x00 */
- 0xB16B, 0xB16C, 0xB16D, 0xB16E, 0xB16F, 0xB170, 0xB171, 0xB172, /* 0x10 */
- 0xB173, 0xEDF4, 0xEDF2, 0xB174, 0xB175, 0xB176, 0xB177, 0xD5E6, /* 0x10 */
- 0xC3DF, 0xB178, 0xEDF3, 0xB179, 0xB17A, 0xB17B, 0xEDF6, 0xB17C, /* 0x20 */
- 0xD5A3, 0xD1A3, 0xB17D, 0xB17E, 0xB180, 0xEDF5, 0xB181, 0xC3D0, /* 0x20 */
- 0xB182, 0xB183, 0xB184, 0xB185, 0xB186, 0xEDF7, 0xBFF4, 0xBEEC, /* 0x30 */
- 0xEDF8, 0xB187, 0xCCF7, 0xB188, 0xD1DB, 0xB189, 0xB18A, 0xB18B, /* 0x30 */
- 0xD7C5, 0xD5F6, 0xB18C, 0xEDFC, 0xB18D, 0xB18E, 0xB18F, 0xEDFB, /* 0x40 */
- 0xB190, 0xB191, 0xB192, 0xB193, 0xB194, 0xB195, 0xB196, 0xB197, /* 0x40 */
- 0xEDF9, 0xEDFA, 0xB198, 0xB199, 0xB19A, 0xB19B, 0xB19C, 0xB19D, /* 0x50 */
- 0xB19E, 0xB19F, 0xEDFD, 0xBEA6, 0xB1A0, 0xB240, 0xB241, 0xB242, /* 0x50 */
- 0xB243, 0xCBAF, 0xEEA1, 0xB6BD, 0xB244, 0xEEA2, 0xC4C0, 0xB245, /* 0x60 */
- 0xEDFE, 0xB246, 0xB247, 0xBDDE, 0xB2C7, 0xB248, 0xB249, 0xB24A, /* 0x60 */
- 0xB24B, 0xB24C, 0xB24D, 0xB24E, 0xB24F, 0xB250, 0xB251, 0xB252, /* 0x70 */
- 0xB253, 0xB6C3, 0xB254, 0xB255, 0xB256, 0xEEA5, 0xD8BA, 0xEEA3, /* 0x70 */
- 0xEEA6, 0xB257, 0xB258, 0xB259, 0xC3E9, 0xB3F2, 0xB25A, 0xB25B, /* 0x80 */
- 0xB25C, 0xB25D, 0xB25E, 0xB25F, 0xEEA7, 0xEEA4, 0xCFB9, 0xB260, /* 0x80 */
- 0xB261, 0xEEA8, 0xC2F7, 0xB262, 0xB263, 0xB264, 0xB265, 0xB266, /* 0x90 */
- 0xB267, 0xB268, 0xB269, 0xB26A, 0xB26B, 0xB26C, 0xB26D, 0xEEA9, /* 0x90 */
- 0xEEAA, 0xB26E, 0xDEAB, 0xB26F, 0xB270, 0xC6B3, 0xB271, 0xC7C6, /* 0xA0 */
- 0xB272, 0xD6F5, 0xB5C9, 0xB273, 0xCBB2, 0xB274, 0xB275, 0xB276, /* 0xA0 */
- 0xEEAB, 0xB277, 0xB278, 0xCDAB, 0xB279, 0xEEAC, 0xB27A, 0xB27B, /* 0xB0 */
- 0xB27C, 0xB27D, 0xB27E, 0xD5B0, 0xB280, 0xEEAD, 0xB281, 0xF6C4, /* 0xB0 */
- 0xB282, 0xB283, 0xB284, 0xB285, 0xB286, 0xB287, 0xB288, 0xB289, /* 0xC0 */
- 0xB28A, 0xB28B, 0xB28C, 0xB28D, 0xB28E, 0xDBC7, 0xB28F, 0xB290, /* 0xC0 */
- 0xB291, 0xB292, 0xB293, 0xB294, 0xB295, 0xB296, 0xB297, 0xB4A3, /* 0xD0 */
- 0xB298, 0xB299, 0xB29A, 0xC3AC, 0xF1E6, 0xB29B, 0xB29C, 0xB29D, /* 0xD0 */
- 0xB29E, 0xB29F, 0xCAB8, 0xD2D3, 0xB2A0, 0xD6AA, 0xB340, 0xEFF2, /* 0xE0 */
- 0xB341, 0xBED8, 0xB342, 0xBDC3, 0xEFF3, 0xB6CC, 0xB0AB, 0xB343, /* 0xE0 */
- 0xB344, 0xB345, 0xB346, 0xCAAF, 0xB347, 0xB348, 0xEDB6, 0xB349, /* 0xF0 */
- 0xEDB7, 0xB34A, 0xB34B, 0xB34C, 0xB34D, 0xCEF9, 0xB7AF, 0xBFF3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_78[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEDB8, 0xC2EB, 0xC9B0, 0xB34E, 0xB34F, 0xB350, 0xB351, 0xB352, /* 0x00 */
- 0xB353, 0xEDB9, 0xB354, 0xB355, 0xC6F6, 0xBFB3, 0xB356, 0xB357, /* 0x00 */
- 0xB358, 0xEDBC, 0xC5F8, 0xB359, 0xD1D0, 0xB35A, 0xD7A9, 0xEDBA, /* 0x10 */
- 0xEDBB, 0xB35B, 0xD1E2, 0xB35C, 0xEDBF, 0xEDC0, 0xB35D, 0xEDC4, /* 0x10 */
- 0xB35E, 0xB35F, 0xB360, 0xEDC8, 0xB361, 0xEDC6, 0xEDCE, 0xD5E8, /* 0x20 */
- 0xB362, 0xEDC9, 0xB363, 0xB364, 0xEDC7, 0xEDBE, 0xB365, 0xB366, /* 0x20 */
- 0xC5E9, 0xB367, 0xB368, 0xB369, 0xC6C6, 0xB36A, 0xB36B, 0xC9E9, /* 0x30 */
- 0xD4D2, 0xEDC1, 0xEDC2, 0xEDC3, 0xEDC5, 0xB36C, 0xC0F9, 0xB36D, /* 0x30 */
- 0xB4A1, 0xB36E, 0xB36F, 0xB370, 0xB371, 0xB9E8, 0xB372, 0xEDD0, /* 0x40 */
- 0xB373, 0xB374, 0xB375, 0xB376, 0xEDD1, 0xB377, 0xEDCA, 0xB378, /* 0x40 */
- 0xEDCF, 0xB379, 0xCEF8, 0xB37A, 0xB37B, 0xCBB6, 0xEDCC, 0xEDCD, /* 0x50 */
- 0xB37C, 0xB37D, 0xB37E, 0xB380, 0xB381, 0xCFF5, 0xB382, 0xB383, /* 0x50 */
- 0xB384, 0xB385, 0xB386, 0xB387, 0xB388, 0xB389, 0xB38A, 0xB38B, /* 0x60 */
- 0xB38C, 0xB38D, 0xEDD2, 0xC1F2, 0xD3B2, 0xEDCB, 0xC8B7, 0xB38E, /* 0x60 */
- 0xB38F, 0xB390, 0xB391, 0xB392, 0xB393, 0xB394, 0xB395, 0xBCEF, /* 0x70 */
- 0xB396, 0xB397, 0xB398, 0xB399, 0xC5F0, 0xB39A, 0xB39B, 0xB39C, /* 0x70 */
- 0xB39D, 0xB39E, 0xB39F, 0xB3A0, 0xB440, 0xB441, 0xB442, 0xEDD6, /* 0x80 */
- 0xB443, 0xB5EF, 0xB444, 0xB445, 0xC2B5, 0xB0AD, 0xCBE9, 0xB446, /* 0x80 */
- 0xB447, 0xB1AE, 0xB448, 0xEDD4, 0xB449, 0xB44A, 0xB44B, 0xCDEB, /* 0x90 */
- 0xB5E2, 0xB44C, 0xEDD5, 0xEDD3, 0xEDD7, 0xB44D, 0xB44E, 0xB5FA, /* 0x90 */
- 0xB44F, 0xEDD8, 0xB450, 0xEDD9, 0xB451, 0xEDDC, 0xB452, 0xB1CC, /* 0xA0 */
- 0xB453, 0xB454, 0xB455, 0xB456, 0xB457, 0xB458, 0xB459, 0xB45A, /* 0xA0 */
- 0xC5F6, 0xBCEE, 0xEDDA, 0xCCBC, 0xB2EA, 0xB45B, 0xB45C, 0xB45D, /* 0xB0 */
- 0xB45E, 0xEDDB, 0xB45F, 0xB460, 0xB461, 0xB462, 0xC4EB, 0xB463, /* 0xB0 */
- 0xB464, 0xB4C5, 0xB465, 0xB466, 0xB467, 0xB0F5, 0xB468, 0xB469, /* 0xC0 */
- 0xB46A, 0xEDDF, 0xC0DA, 0xB4E8, 0xB46B, 0xB46C, 0xB46D, 0xB46E, /* 0xC0 */
- 0xC5CD, 0xB46F, 0xB470, 0xB471, 0xEDDD, 0xBFC4, 0xB472, 0xB473, /* 0xD0 */
- 0xB474, 0xEDDE, 0xB475, 0xB476, 0xB477, 0xB478, 0xB479, 0xB47A, /* 0xD0 */
- 0xB47B, 0xB47C, 0xB47D, 0xB47E, 0xB480, 0xB481, 0xB482, 0xB483, /* 0xE0 */
- 0xC4A5, 0xB484, 0xB485, 0xB486, 0xEDE0, 0xB487, 0xB488, 0xB489, /* 0xE0 */
- 0xB48A, 0xB48B, 0xEDE1, 0xB48C, 0xEDE3, 0xB48D, 0xB48E, 0xC1D7, /* 0xF0 */
- 0xB48F, 0xB490, 0xBBC7, 0xB491, 0xB492, 0xB493, 0xB494, 0xB495 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_79[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB496, 0xBDB8, 0xB497, 0xB498, 0xB499, 0xEDE2, 0xB49A, 0xB49B, /* 0x00 */
- 0xB49C, 0xB49D, 0xB49E, 0xB49F, 0xB4A0, 0xB540, 0xB541, 0xB542, /* 0x00 */
- 0xB543, 0xB544, 0xB545, 0xEDE4, 0xB546, 0xB547, 0xB548, 0xB549, /* 0x10 */
- 0xB54A, 0xB54B, 0xB54C, 0xB54D, 0xB54E, 0xB54F, 0xEDE6, 0xB550, /* 0x10 */
- 0xB551, 0xB552, 0xB553, 0xB554, 0xEDE5, 0xB555, 0xB556, 0xB557, /* 0x20 */
- 0xB558, 0xB559, 0xB55A, 0xB55B, 0xB55C, 0xB55D, 0xB55E, 0xB55F, /* 0x20 */
- 0xB560, 0xB561, 0xB562, 0xB563, 0xEDE7, 0xB564, 0xB565, 0xB566, /* 0x30 */
- 0xB567, 0xB568, 0xCABE, 0xECEA, 0xC0F1, 0xB569, 0xC9E7, 0xB56A, /* 0x30 */
- 0xECEB, 0xC6EE, 0xB56B, 0xB56C, 0xB56D, 0xB56E, 0xECEC, 0xB56F, /* 0x40 */
- 0xC6ED, 0xECED, 0xB570, 0xB571, 0xB572, 0xB573, 0xB574, 0xB575, /* 0x40 */
- 0xB576, 0xB577, 0xB578, 0xECF0, 0xB579, 0xB57A, 0xD7E6, 0xECF3, /* 0x50 */
- 0xB57B, 0xB57C, 0xECF1, 0xECEE, 0xECEF, 0xD7A3, 0xC9F1, 0xCBEE, /* 0x50 */
- 0xECF4, 0xB57D, 0xECF2, 0xB57E, 0xB580, 0xCFE9, 0xB581, 0xECF6, /* 0x60 */
- 0xC6B1, 0xB582, 0xB583, 0xB584, 0xB585, 0xBCC0, 0xB586, 0xECF5, /* 0x60 */
- 0xB587, 0xB588, 0xB589, 0xB58A, 0xB58B, 0xB58C, 0xB58D, 0xB5BB, /* 0x70 */
- 0xBBF6, 0xB58E, 0xECF7, 0xB58F, 0xB590, 0xB591, 0xB592, 0xB593, /* 0x70 */
- 0xD9F7, 0xBDFB, 0xB594, 0xB595, 0xC2BB, 0xECF8, 0xB596, 0xB597, /* 0x80 */
- 0xB598, 0xB599, 0xECF9, 0xB59A, 0xB59B, 0xB59C, 0xB59D, 0xB8A3, /* 0x80 */
- 0xB59E, 0xB59F, 0xB5A0, 0xB640, 0xB641, 0xB642, 0xB643, 0xB644, /* 0x90 */
- 0xB645, 0xB646, 0xECFA, 0xB647, 0xB648, 0xB649, 0xB64A, 0xB64B, /* 0x90 */
- 0xB64C, 0xB64D, 0xB64E, 0xB64F, 0xB650, 0xB651, 0xB652, 0xECFB, /* 0xA0 */
- 0xB653, 0xB654, 0xB655, 0xB656, 0xB657, 0xB658, 0xB659, 0xB65A, /* 0xA0 */
- 0xB65B, 0xB65C, 0xB65D, 0xECFC, 0xB65E, 0xB65F, 0xB660, 0xB661, /* 0xB0 */
- 0xB662, 0xD3ED, 0xD8AE, 0xC0EB, 0xB663, 0xC7DD, 0xBACC, 0xB664, /* 0xB0 */
- 0xD0E3, 0xCBBD, 0xB665, 0xCDBA, 0xB666, 0xB667, 0xB8D1, 0xB668, /* 0xC0 */
- 0xB669, 0xB1FC, 0xB66A, 0xC7EF, 0xB66B, 0xD6D6, 0xB66C, 0xB66D, /* 0xC0 */
- 0xB66E, 0xBFC6, 0xC3EB, 0xB66F, 0xB670, 0xEFF5, 0xB671, 0xB672, /* 0xD0 */
- 0xC3D8, 0xB673, 0xB674, 0xB675, 0xB676, 0xB677, 0xB678, 0xD7E2, /* 0xD0 */
- 0xB679, 0xB67A, 0xB67B, 0xEFF7, 0xB3D3, 0xB67C, 0xC7D8, 0xD1ED, /* 0xE0 */
- 0xB67D, 0xD6C8, 0xB67E, 0xEFF8, 0xB680, 0xEFF6, 0xB681, 0xBBFD, /* 0xE0 */
- 0xB3C6, 0xB682, 0xB683, 0xB684, 0xB685, 0xB686, 0xB687, 0xB688, /* 0xF0 */
- 0xBDD5, 0xB689, 0xB68A, 0xD2C6, 0xB68B, 0xBBE0, 0xB68C, 0xB68D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_7A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCFA1, 0xB68E, 0xEFFC, 0xEFFB, 0xB68F, 0xB690, 0xEFF9, 0xB691, /* 0x00 */
- 0xB692, 0xB693, 0xB694, 0xB3CC, 0xB695, 0xC9D4, 0xCBB0, 0xB696, /* 0x00 */
- 0xB697, 0xB698, 0xB699, 0xB69A, 0xEFFE, 0xB69B, 0xB69C, 0xB0DE, /* 0x10 */
- 0xB69D, 0xB69E, 0xD6C9, 0xB69F, 0xB6A0, 0xB740, 0xEFFD, 0xB741, /* 0x10 */
- 0xB3ED, 0xB742, 0xB743, 0xF6D5, 0xB744, 0xB745, 0xB746, 0xB747, /* 0x20 */
- 0xB748, 0xB749, 0xB74A, 0xB74B, 0xB74C, 0xB74D, 0xB74E, 0xB74F, /* 0x20 */
- 0xB750, 0xB751, 0xB752, 0xCEC8, 0xB753, 0xB754, 0xB755, 0xF0A2, /* 0x30 */
- 0xB756, 0xF0A1, 0xB757, 0xB5BE, 0xBCDA, 0xBBFC, 0xB758, 0xB8E5, /* 0x30 */
- 0xB759, 0xB75A, 0xB75B, 0xB75C, 0xB75D, 0xB75E, 0xC4C2, 0xB75F, /* 0x40 */
- 0xB760, 0xB761, 0xB762, 0xB763, 0xB764, 0xB765, 0xB766, 0xB767, /* 0x40 */
- 0xB768, 0xF0A3, 0xB769, 0xB76A, 0xB76B, 0xB76C, 0xB76D, 0xCBEB, /* 0x50 */
- 0xB76E, 0xB76F, 0xB770, 0xB771, 0xB772, 0xB773, 0xB774, 0xB775, /* 0x50 */
- 0xB776, 0xB777, 0xB778, 0xB779, 0xB77A, 0xB77B, 0xB77C, 0xB77D, /* 0x60 */
- 0xB77E, 0xB780, 0xB781, 0xB782, 0xB783, 0xB784, 0xB785, 0xB786, /* 0x60 */
- 0xF0A6, 0xB787, 0xB788, 0xB789, 0xD1A8, 0xB78A, 0xBEBF, 0xC7EE, /* 0x70 */
- 0xF1B6, 0xF1B7, 0xBFD5, 0xB78B, 0xB78C, 0xB78D, 0xB78E, 0xB4A9, /* 0x70 */
- 0xF1B8, 0xCDBB, 0xB78F, 0xC7D4, 0xD5AD, 0xB790, 0xF1B9, 0xB791, /* 0x80 */
- 0xF1BA, 0xB792, 0xB793, 0xB794, 0xB795, 0xC7CF, 0xB796, 0xB797, /* 0x80 */
- 0xB798, 0xD2A4, 0xD6CF, 0xB799, 0xB79A, 0xF1BB, 0xBDD1, 0xB4B0, /* 0x90 */
- 0xBEBD, 0xB79B, 0xB79C, 0xB79D, 0xB4DC, 0xCED1, 0xB79E, 0xBFDF, /* 0x90 */
- 0xF1BD, 0xB79F, 0xB7A0, 0xB840, 0xB841, 0xBFFA, 0xF1BC, 0xB842, /* 0xA0 */
- 0xF1BF, 0xB843, 0xB844, 0xB845, 0xF1BE, 0xF1C0, 0xB846, 0xB847, /* 0xA0 */
- 0xB848, 0xB849, 0xB84A, 0xF1C1, 0xB84B, 0xB84C, 0xB84D, 0xB84E, /* 0xB0 */
- 0xB84F, 0xB850, 0xB851, 0xB852, 0xB853, 0xB854, 0xB855, 0xC1FE, /* 0xB0 */
- 0xB856, 0xB857, 0xB858, 0xB859, 0xB85A, 0xB85B, 0xB85C, 0xB85D, /* 0xC0 */
- 0xB85E, 0xB85F, 0xB860, 0xC1A2, 0xB861, 0xB862, 0xB863, 0xB864, /* 0xC0 */
- 0xB865, 0xB866, 0xB867, 0xB868, 0xB869, 0xB86A, 0xCAFA, 0xB86B, /* 0xD0 */
- 0xB86C, 0xD5BE, 0xB86D, 0xB86E, 0xB86F, 0xB870, 0xBEBA, 0xBEB9, /* 0xD0 */
- 0xD5C2, 0xB871, 0xB872, 0xBFA2, 0xB873, 0xCDAF, 0xF1B5, 0xB874, /* 0xE0 */
- 0xB875, 0xB876, 0xB877, 0xB878, 0xB879, 0xBDDF, 0xB87A, 0xB6CB, /* 0xE0 */
- 0xB87B, 0xB87C, 0xB87D, 0xB87E, 0xB880, 0xB881, 0xB882, 0xB883, /* 0xF0 */
- 0xB884, 0xD6F1, 0xF3C3, 0xB885, 0xB886, 0xF3C4, 0xB887, 0xB8CD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_7B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB888, 0xB889, 0xB88A, 0xF3C6, 0xF3C7, 0xB88B, 0xB0CA, 0xB88C, /* 0x00 */
- 0xF3C5, 0xB88D, 0xF3C9, 0xCBF1, 0xB88E, 0xB88F, 0xB890, 0xF3CB, /* 0x00 */
- 0xB891, 0xD0A6, 0xB892, 0xB893, 0xB1CA, 0xF3C8, 0xB894, 0xB895, /* 0x10 */
- 0xB896, 0xF3CF, 0xB897, 0xB5D1, 0xB898, 0xB899, 0xF3D7, 0xB89A, /* 0x10 */
- 0xF3D2, 0xB89B, 0xB89C, 0xB89D, 0xF3D4, 0xF3D3, 0xB7FB, 0xB89E, /* 0x20 */
- 0xB1BF, 0xB89F, 0xF3CE, 0xF3CA, 0xB5DA, 0xB8A0, 0xF3D0, 0xB940, /* 0x20 */
- 0xB941, 0xF3D1, 0xB942, 0xF3D5, 0xB943, 0xB944, 0xB945, 0xB946, /* 0x30 */
- 0xF3CD, 0xB947, 0xBCE3, 0xB948, 0xC1FD, 0xB949, 0xF3D6, 0xB94A, /* 0x30 */
- 0xB94B, 0xB94C, 0xB94D, 0xB94E, 0xB94F, 0xF3DA, 0xB950, 0xF3CC, /* 0x40 */
- 0xB951, 0xB5C8, 0xB952, 0xBDEE, 0xF3DC, 0xB953, 0xB954, 0xB7A4, /* 0x40 */
- 0xBFF0, 0xD6FE, 0xCDB2, 0xB955, 0xB4F0, 0xB956, 0xB2DF, 0xB957, /* 0x50 */
- 0xF3D8, 0xB958, 0xF3D9, 0xC9B8, 0xB959, 0xF3DD, 0xB95A, 0xB95B, /* 0x50 */
- 0xF3DE, 0xB95C, 0xF3E1, 0xB95D, 0xB95E, 0xB95F, 0xB960, 0xB961, /* 0x60 */
- 0xB962, 0xB963, 0xB964, 0xB965, 0xB966, 0xB967, 0xF3DF, 0xB968, /* 0x60 */
- 0xB969, 0xF3E3, 0xF3E2, 0xB96A, 0xB96B, 0xF3DB, 0xB96C, 0xBFEA, /* 0x70 */
- 0xB96D, 0xB3EF, 0xB96E, 0xF3E0, 0xB96F, 0xB970, 0xC7A9, 0xB971, /* 0x70 */
- 0xBCF2, 0xB972, 0xB973, 0xB974, 0xB975, 0xF3EB, 0xB976, 0xB977, /* 0x80 */
- 0xB978, 0xB979, 0xB97A, 0xB97B, 0xB97C, 0xB9BF, 0xB97D, 0xB97E, /* 0x80 */
- 0xF3E4, 0xB980, 0xB981, 0xB982, 0xB2AD, 0xBBFE, 0xB983, 0xCBE3, /* 0x90 */
- 0xB984, 0xB985, 0xB986, 0xB987, 0xF3ED, 0xF3E9, 0xB988, 0xB989, /* 0x90 */
- 0xB98A, 0xB9DC, 0xF3EE, 0xB98B, 0xB98C, 0xB98D, 0xF3E5, 0xF3E6, /* 0xA0 */
- 0xF3EA, 0xC2E1, 0xF3EC, 0xF3EF, 0xF3E8, 0xBCFD, 0xB98E, 0xB98F, /* 0xA0 */
- 0xB990, 0xCFE4, 0xB991, 0xB992, 0xF3F0, 0xB993, 0xB994, 0xB995, /* 0xB0 */
- 0xF3E7, 0xB996, 0xB997, 0xB998, 0xB999, 0xB99A, 0xB99B, 0xB99C, /* 0xB0 */
- 0xB99D, 0xF3F2, 0xB99E, 0xB99F, 0xB9A0, 0xBA40, 0xD7AD, 0xC6AA, /* 0xC0 */
- 0xBA41, 0xBA42, 0xBA43, 0xBA44, 0xF3F3, 0xBA45, 0xBA46, 0xBA47, /* 0xC0 */
- 0xBA48, 0xF3F1, 0xBA49, 0xC2A8, 0xBA4A, 0xBA4B, 0xBA4C, 0xBA4D, /* 0xD0 */
- 0xBA4E, 0xB8DD, 0xF3F5, 0xBA4F, 0xBA50, 0xF3F4, 0xBA51, 0xBA52, /* 0xD0 */
- 0xBA53, 0xB4DB, 0xBA54, 0xBA55, 0xBA56, 0xF3F6, 0xF3F7, 0xBA57, /* 0xE0 */
- 0xBA58, 0xBA59, 0xF3F8, 0xBA5A, 0xBA5B, 0xBA5C, 0xC0BA, 0xBA5D, /* 0xE0 */
- 0xBA5E, 0xC0E9, 0xBA5F, 0xBA60, 0xBA61, 0xBA62, 0xBA63, 0xC5F1, /* 0xF0 */
- 0xBA64, 0xBA65, 0xBA66, 0xBA67, 0xF3FB, 0xBA68, 0xF3FA, 0xBA69 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_7C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBA6A, 0xBA6B, 0xBA6C, 0xBA6D, 0xBA6E, 0xBA6F, 0xBA70, 0xB4D8, /* 0x00 */
- 0xBA71, 0xBA72, 0xBA73, 0xF3FE, 0xF3F9, 0xBA74, 0xBA75, 0xF3FC, /* 0x00 */
- 0xBA76, 0xBA77, 0xBA78, 0xBA79, 0xBA7A, 0xBA7B, 0xF3FD, 0xBA7C, /* 0x10 */
- 0xBA7D, 0xBA7E, 0xBA80, 0xBA81, 0xBA82, 0xBA83, 0xBA84, 0xF4A1, /* 0x10 */
- 0xBA85, 0xBA86, 0xBA87, 0xBA88, 0xBA89, 0xBA8A, 0xF4A3, 0xBBC9, /* 0x20 */
- 0xBA8B, 0xBA8C, 0xF4A2, 0xBA8D, 0xBA8E, 0xBA8F, 0xBA90, 0xBA91, /* 0x20 */
- 0xBA92, 0xBA93, 0xBA94, 0xBA95, 0xBA96, 0xBA97, 0xBA98, 0xBA99, /* 0x30 */
- 0xF4A4, 0xBA9A, 0xBA9B, 0xBA9C, 0xBA9D, 0xBA9E, 0xBA9F, 0xB2BE, /* 0x30 */
- 0xF4A6, 0xF4A5, 0xBAA0, 0xBB40, 0xBB41, 0xBB42, 0xBB43, 0xBB44, /* 0x40 */
- 0xBB45, 0xBB46, 0xBB47, 0xBB48, 0xBB49, 0xBCAE, 0xBB4A, 0xBB4B, /* 0x40 */
- 0xBB4C, 0xBB4D, 0xBB4E, 0xBB4F, 0xBB50, 0xBB51, 0xBB52, 0xBB53, /* 0x50 */
- 0xBB54, 0xBB55, 0xBB56, 0xBB57, 0xBB58, 0xBB59, 0xBB5A, 0xBB5B, /* 0x50 */
- 0xBB5C, 0xBB5D, 0xBB5E, 0xBB5F, 0xBB60, 0xBB61, 0xBB62, 0xBB63, /* 0x60 */
- 0xBB64, 0xBB65, 0xBB66, 0xBB67, 0xBB68, 0xBB69, 0xBB6A, 0xBB6B, /* 0x60 */
- 0xBB6C, 0xBB6D, 0xBB6E, 0xC3D7, 0xD9E1, 0xBB6F, 0xBB70, 0xBB71, /* 0x70 */
- 0xBB72, 0xBB73, 0xBB74, 0xC0E0, 0xF4CC, 0xD7D1, 0xBB75, 0xBB76, /* 0x70 */
- 0xBB77, 0xBB78, 0xBB79, 0xBB7A, 0xBB7B, 0xBB7C, 0xBB7D, 0xBB7E, /* 0x80 */
- 0xBB80, 0xB7DB, 0xBB81, 0xBB82, 0xBB83, 0xBB84, 0xBB85, 0xBB86, /* 0x80 */
- 0xBB87, 0xF4CE, 0xC1A3, 0xBB88, 0xBB89, 0xC6C9, 0xBB8A, 0xB4D6, /* 0x90 */
- 0xD5B3, 0xBB8B, 0xBB8C, 0xBB8D, 0xF4D0, 0xF4CF, 0xF4D1, 0xCBDA, /* 0x90 */
- 0xBB8E, 0xBB8F, 0xF4D2, 0xBB90, 0xD4C1, 0xD6E0, 0xBB91, 0xBB92, /* 0xA0 */
- 0xBB93, 0xBB94, 0xB7E0, 0xBB95, 0xBB96, 0xBB97, 0xC1B8, 0xBB98, /* 0xA0 */
- 0xBB99, 0xC1BB, 0xF4D3, 0xBEAC, 0xBB9A, 0xBB9B, 0xBB9C, 0xBB9D, /* 0xB0 */
- 0xBB9E, 0xB4E2, 0xBB9F, 0xBBA0, 0xF4D4, 0xF4D5, 0xBEAB, 0xBC40, /* 0xB0 */
- 0xBC41, 0xF4D6, 0xBC42, 0xBC43, 0xBC44, 0xF4DB, 0xBC45, 0xF4D7, /* 0xC0 */
- 0xF4DA, 0xBC46, 0xBAFD, 0xBC47, 0xF4D8, 0xF4D9, 0xBC48, 0xBC49, /* 0xC0 */
- 0xBC4A, 0xBC4B, 0xBC4C, 0xBC4D, 0xBC4E, 0xB8E2, 0xCCC7, 0xF4DC, /* 0xD0 */
- 0xBC4F, 0xB2DA, 0xBC50, 0xBC51, 0xC3D3, 0xBC52, 0xBC53, 0xD4E3, /* 0xD0 */
- 0xBFB7, 0xBC54, 0xBC55, 0xBC56, 0xBC57, 0xBC58, 0xBC59, 0xBC5A, /* 0xE0 */
- 0xF4DD, 0xBC5B, 0xBC5C, 0xBC5D, 0xBC5E, 0xBC5F, 0xBC60, 0xC5B4, /* 0xE0 */
- 0xBC61, 0xBC62, 0xBC63, 0xBC64, 0xBC65, 0xBC66, 0xBC67, 0xBC68, /* 0xF0 */
- 0xF4E9, 0xBC69, 0xBC6A, 0xCFB5, 0xBC6B, 0xBC6C, 0xBC6D, 0xBC6E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_7D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBC6F, 0xBC70, 0xBC71, 0xBC72, 0xBC73, 0xBC74, 0xBC75, 0xBC76, /* 0x00 */
- 0xBC77, 0xBC78, 0xCEC9, 0xBC79, 0xBC7A, 0xBC7B, 0xBC7C, 0xBC7D, /* 0x00 */
- 0xBC7E, 0xBC80, 0xBC81, 0xBC82, 0xBC83, 0xBC84, 0xBC85, 0xBC86, /* 0x10 */
- 0xBC87, 0xBC88, 0xBC89, 0xBC8A, 0xBC8B, 0xBC8C, 0xBC8D, 0xBC8E, /* 0x10 */
- 0xCBD8, 0xBC8F, 0xCBF7, 0xBC90, 0xBC91, 0xBC92, 0xBC93, 0xBDF4, /* 0x20 */
- 0xBC94, 0xBC95, 0xBC96, 0xD7CF, 0xBC97, 0xBC98, 0xBC99, 0xC0DB, /* 0x20 */
- 0xBC9A, 0xBC9B, 0xBC9C, 0xBC9D, 0xBC9E, 0xBC9F, 0xBCA0, 0xBD40, /* 0x30 */
- 0xBD41, 0xBD42, 0xBD43, 0xBD44, 0xBD45, 0xBD46, 0xBD47, 0xBD48, /* 0x30 */
- 0xBD49, 0xBD4A, 0xBD4B, 0xBD4C, 0xBD4D, 0xBD4E, 0xBD4F, 0xBD50, /* 0x40 */
- 0xBD51, 0xBD52, 0xBD53, 0xBD54, 0xBD55, 0xBD56, 0xBD57, 0xBD58, /* 0x40 */
- 0xBD59, 0xBD5A, 0xBD5B, 0xBD5C, 0xBD5D, 0xBD5E, 0xBD5F, 0xBD60, /* 0x50 */
- 0xBD61, 0xBD62, 0xBD63, 0xBD64, 0xBD65, 0xBD66, 0xBD67, 0xBD68, /* 0x50 */
- 0xBD69, 0xBD6A, 0xBD6B, 0xBD6C, 0xBD6D, 0xBD6E, 0xBD6F, 0xBD70, /* 0x60 */
- 0xBD71, 0xBD72, 0xBD73, 0xBD74, 0xBD75, 0xBD76, 0xD0F5, 0xBD77, /* 0x60 */
- 0xBD78, 0xBD79, 0xBD7A, 0xBD7B, 0xBD7C, 0xBD7D, 0xBD7E, 0xF4EA, /* 0x70 */
- 0xBD80, 0xBD81, 0xBD82, 0xBD83, 0xBD84, 0xBD85, 0xBD86, 0xBD87, /* 0x70 */
- 0xBD88, 0xBD89, 0xBD8A, 0xBD8B, 0xBD8C, 0xBD8D, 0xBD8E, 0xBD8F, /* 0x80 */
- 0xBD90, 0xBD91, 0xBD92, 0xBD93, 0xBD94, 0xBD95, 0xBD96, 0xBD97, /* 0x80 */
- 0xBD98, 0xBD99, 0xBD9A, 0xBD9B, 0xBD9C, 0xBD9D, 0xBD9E, 0xBD9F, /* 0x90 */
- 0xBDA0, 0xBE40, 0xBE41, 0xBE42, 0xBE43, 0xBE44, 0xBE45, 0xBE46, /* 0x90 */
- 0xBE47, 0xBE48, 0xBE49, 0xBE4A, 0xBE4B, 0xBE4C, 0xF4EB, 0xBE4D, /* 0xA0 */
- 0xBE4E, 0xBE4F, 0xBE50, 0xBE51, 0xBE52, 0xBE53, 0xF4EC, 0xBE54, /* 0xA0 */
- 0xBE55, 0xBE56, 0xBE57, 0xBE58, 0xBE59, 0xBE5A, 0xBE5B, 0xBE5C, /* 0xB0 */
- 0xBE5D, 0xBE5E, 0xBE5F, 0xBE60, 0xBE61, 0xBE62, 0xBE63, 0xBE64, /* 0xB0 */
- 0xBE65, 0xBE66, 0xBE67, 0xBE68, 0xBE69, 0xBE6A, 0xBE6B, 0xBE6C, /* 0xC0 */
- 0xBE6D, 0xBE6E, 0xBE6F, 0xBE70, 0xBE71, 0xBE72, 0xBE73, 0xBE74, /* 0xC0 */
- 0xBE75, 0xBE76, 0xBE77, 0xBE78, 0xBE79, 0xBE7A, 0xBE7B, 0xBE7C, /* 0xD0 */
- 0xBE7D, 0xBE7E, 0xBE80, 0xBE81, 0xBE82, 0xBE83, 0xBE84, 0xBE85, /* 0xD0 */
- 0xBE86, 0xBE87, 0xBE88, 0xBE89, 0xBE8A, 0xBE8B, 0xBE8C, 0xBE8D, /* 0xE0 */
- 0xBE8E, 0xBE8F, 0xBE90, 0xBE91, 0xBE92, 0xBE93, 0xBE94, 0xBE95, /* 0xE0 */
- 0xBE96, 0xBE97, 0xBE98, 0xBE99, 0xBE9A, 0xBE9B, 0xBE9C, 0xBE9D, /* 0xF0 */
- 0xBE9E, 0xBE9F, 0xBEA0, 0xBF40, 0xBF41, 0xBF42, 0xBF43, 0xBF44 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_7E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBF45, 0xBF46, 0xBF47, 0xBF48, 0xBF49, 0xBF4A, 0xBF4B, 0xBF4C, /* 0x00 */
- 0xBF4D, 0xBF4E, 0xBF4F, 0xBF50, 0xBF51, 0xBF52, 0xBF53, 0xBF54, /* 0x00 */
- 0xBF55, 0xBF56, 0xBF57, 0xBF58, 0xBF59, 0xBF5A, 0xBF5B, 0xBF5C, /* 0x10 */
- 0xBF5D, 0xBF5E, 0xBF5F, 0xBF60, 0xBF61, 0xBF62, 0xBF63, 0xBF64, /* 0x10 */
- 0xBF65, 0xBF66, 0xBF67, 0xBF68, 0xBF69, 0xBF6A, 0xBF6B, 0xBF6C, /* 0x20 */
- 0xBF6D, 0xBF6E, 0xBF6F, 0xBF70, 0xBF71, 0xBF72, 0xBF73, 0xBF74, /* 0x20 */
- 0xBF75, 0xBF76, 0xBF77, 0xBF78, 0xBF79, 0xBF7A, 0xBF7B, 0xBF7C, /* 0x30 */
- 0xBF7D, 0xBF7E, 0xBF80, 0xF7E3, 0xBF81, 0xBF82, 0xBF83, 0xBF84, /* 0x30 */
- 0xBF85, 0xB7B1, 0xBF86, 0xBF87, 0xBF88, 0xBF89, 0xBF8A, 0xF4ED, /* 0x40 */
- 0xBF8B, 0xBF8C, 0xBF8D, 0xBF8E, 0xBF8F, 0xBF90, 0xBF91, 0xBF92, /* 0x40 */
- 0xBF93, 0xBF94, 0xBF95, 0xBF96, 0xBF97, 0xBF98, 0xBF99, 0xBF9A, /* 0x50 */
- 0xBF9B, 0xBF9C, 0xBF9D, 0xBF9E, 0xBF9F, 0xBFA0, 0xC040, 0xC041, /* 0x50 */
- 0xC042, 0xC043, 0xC044, 0xC045, 0xC046, 0xC047, 0xC048, 0xC049, /* 0x60 */
- 0xC04A, 0xC04B, 0xC04C, 0xC04D, 0xC04E, 0xC04F, 0xC050, 0xC051, /* 0x60 */
- 0xC052, 0xC053, 0xC054, 0xC055, 0xC056, 0xC057, 0xC058, 0xC059, /* 0x70 */
- 0xC05A, 0xC05B, 0xC05C, 0xC05D, 0xC05E, 0xC05F, 0xC060, 0xC061, /* 0x70 */
- 0xC062, 0xC063, 0xD7EB, 0xC064, 0xC065, 0xC066, 0xC067, 0xC068, /* 0x80 */
- 0xC069, 0xC06A, 0xC06B, 0xC06C, 0xC06D, 0xC06E, 0xC06F, 0xC070, /* 0x80 */
- 0xC071, 0xC072, 0xC073, 0xC074, 0xC075, 0xC076, 0xC077, 0xC078, /* 0x90 */
- 0xC079, 0xC07A, 0xC07B, 0xF4EE, 0xC07C, 0xC07D, 0xC07E, 0xE6F9, /* 0x90 */
- 0xBEC0, 0xE6FA, 0xBAEC, 0xE6FB, 0xCFCB, 0xE6FC, 0xD4BC, 0xBCB6, /* 0xA0 */
- 0xE6FD, 0xE6FE, 0xBCCD, 0xC8D2, 0xCEB3, 0xE7A1, 0xC080, 0xB4BF, /* 0xA0 */
- 0xE7A2, 0xC9B4, 0xB8D9, 0xC4C9, 0xC081, 0xD7DD, 0xC2DA, 0xB7D7, /* 0xB0 */
- 0xD6BD, 0xCEC6, 0xB7C4, 0xC082, 0xC083, 0xC5A6, 0xE7A3, 0xCFDF, /* 0xB0 */
- 0xE7A4, 0xE7A5, 0xE7A6, 0xC1B7, 0xD7E9, 0xC9F0, 0xCFB8, 0xD6AF, /* 0xC0 */
- 0xD6D5, 0xE7A7, 0xB0ED, 0xE7A8, 0xE7A9, 0xC9DC, 0xD2EF, 0xBEAD, /* 0xC0 */
- 0xE7AA, 0xB0F3, 0xC8DE, 0xBDE1, 0xE7AB, 0xC8C6, 0xC084, 0xE7AC, /* 0xD0 */
- 0xBBE6, 0xB8F8, 0xD1A4, 0xE7AD, 0xC2E7, 0xBEF8, 0xBDCA, 0xCDB3, /* 0xD0 */
- 0xE7AE, 0xE7AF, 0xBEEE, 0xD0E5, 0xC085, 0xCBE7, 0xCCD0, 0xBCCC, /* 0xE0 */
- 0xE7B0, 0xBCA8, 0xD0F7, 0xE7B1, 0xC086, 0xD0F8, 0xE7B2, 0xE7B3, /* 0xE0 */
- 0xB4C2, 0xE7B4, 0xE7B5, 0xC9FE, 0xCEAC, 0xC3E0, 0xE7B7, 0xB1C1, /* 0xF0 */
- 0xB3F1, 0xC087, 0xE7B8, 0xE7B9, 0xD7DB, 0xD5C0, 0xE7BA, 0xC2CC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_7F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD7BA, 0xE7BB, 0xE7BC, 0xE7BD, 0xBCEA, 0xC3E5, 0xC0C2, 0xE7BE, /* 0x00 */
- 0xE7BF, 0xBCA9, 0xC088, 0xE7C0, 0xE7C1, 0xE7B6, 0xB6D0, 0xE7C2, /* 0x00 */
- 0xC089, 0xE7C3, 0xE7C4, 0xBBBA, 0xB5DE, 0xC2C6, 0xB1E0, 0xE7C5, /* 0x10 */
- 0xD4B5, 0xE7C6, 0xB8BF, 0xE7C8, 0xE7C7, 0xB7EC, 0xC08A, 0xE7C9, /* 0x10 */
- 0xB2F8, 0xE7CA, 0xE7CB, 0xE7CC, 0xE7CD, 0xE7CE, 0xE7CF, 0xE7D0, /* 0x20 */
- 0xD3A7, 0xCBF5, 0xE7D1, 0xE7D2, 0xE7D3, 0xE7D4, 0xC9C9, 0xE7D5, /* 0x20 */
- 0xE7D6, 0xE7D7, 0xE7D8, 0xE7D9, 0xBDC9, 0xE7DA, 0xF3BE, 0xC08B, /* 0x30 */
- 0xB8D7, 0xC08C, 0xC8B1, 0xC08D, 0xC08E, 0xC08F, 0xC090, 0xC091, /* 0x30 */
- 0xC092, 0xC093, 0xF3BF, 0xC094, 0xF3C0, 0xF3C1, 0xC095, 0xC096, /* 0x40 */
- 0xC097, 0xC098, 0xC099, 0xC09A, 0xC09B, 0xC09C, 0xC09D, 0xC09E, /* 0x40 */
- 0xB9DE, 0xCDF8, 0xC09F, 0xC0A0, 0xD8E8, 0xBAB1, 0xC140, 0xC2DE, /* 0x50 */
- 0xEEB7, 0xC141, 0xB7A3, 0xC142, 0xC143, 0xC144, 0xC145, 0xEEB9, /* 0x50 */
- 0xC146, 0xEEB8, 0xB0D5, 0xC147, 0xC148, 0xC149, 0xC14A, 0xC14B, /* 0x60 */
- 0xEEBB, 0xD5D6, 0xD7EF, 0xC14C, 0xC14D, 0xC14E, 0xD6C3, 0xC14F, /* 0x60 */
- 0xC150, 0xEEBD, 0xCAF0, 0xC151, 0xEEBC, 0xC152, 0xC153, 0xC154, /* 0x70 */
- 0xC155, 0xEEBE, 0xC156, 0xC157, 0xC158, 0xC159, 0xEEC0, 0xC15A, /* 0x70 */
- 0xC15B, 0xEEBF, 0xC15C, 0xC15D, 0xC15E, 0xC15F, 0xC160, 0xC161, /* 0x80 */
- 0xC162, 0xC163, 0xD1F2, 0xC164, 0xC7BC, 0xC165, 0xC3C0, 0xC166, /* 0x80 */
- 0xC167, 0xC168, 0xC169, 0xC16A, 0xB8E1, 0xC16B, 0xC16C, 0xC16D, /* 0x90 */
- 0xC16E, 0xC16F, 0xC1E7, 0xC170, 0xC171, 0xF4C6, 0xD0DF, 0xF4C7, /* 0x90 */
- 0xC172, 0xCFDB, 0xC173, 0xC174, 0xC8BA, 0xC175, 0xC176, 0xF4C8, /* 0xA0 */
- 0xC177, 0xC178, 0xC179, 0xC17A, 0xC17B, 0xC17C, 0xC17D, 0xF4C9, /* 0xA0 */
- 0xF4CA, 0xC17E, 0xF4CB, 0xC180, 0xC181, 0xC182, 0xC183, 0xC184, /* 0xB0 */
- 0xD9FA, 0xB8FE, 0xC185, 0xC186, 0xE5F1, 0xD3F0, 0xC187, 0xF4E0, /* 0xB0 */
- 0xC188, 0xCECC, 0xC189, 0xC18A, 0xC18B, 0xB3E1, 0xC18C, 0xC18D, /* 0xC0 */
- 0xC18E, 0xC18F, 0xF1B4, 0xC190, 0xD2EE, 0xC191, 0xF4E1, 0xC192, /* 0xC0 */
- 0xC193, 0xC194, 0xC195, 0xC196, 0xCFE8, 0xF4E2, 0xC197, 0xC198, /* 0xD0 */
- 0xC7CC, 0xC199, 0xC19A, 0xC19B, 0xC19C, 0xC19D, 0xC19E, 0xB5D4, /* 0xD0 */
- 0xB4E4, 0xF4E4, 0xC19F, 0xC1A0, 0xC240, 0xF4E3, 0xF4E5, 0xC241, /* 0xE0 */
- 0xC242, 0xF4E6, 0xC243, 0xC244, 0xC245, 0xC246, 0xF4E7, 0xC247, /* 0xE0 */
- 0xBAB2, 0xB0BF, 0xC248, 0xF4E8, 0xC249, 0xC24A, 0xC24B, 0xC24C, /* 0xF0 */
- 0xC24D, 0xC24E, 0xC24F, 0xB7AD, 0xD2ED, 0xC250, 0xC251, 0xC252 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_80[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD2AB, 0xC0CF, 0xC253, 0xBFBC, 0xEBA3, 0xD5DF, 0xEAC8, 0xC254, /* 0x00 */
- 0xC255, 0xC256, 0xC257, 0xF1F3, 0xB6F8, 0xCBA3, 0xC258, 0xC259, /* 0x00 */
- 0xC4CD, 0xC25A, 0xF1E7, 0xC25B, 0xF1E8, 0xB8FB, 0xF1E9, 0xBAC4, /* 0x10 */
- 0xD4C5, 0xB0D2, 0xC25C, 0xC25D, 0xF1EA, 0xC25E, 0xC25F, 0xC260, /* 0x10 */
- 0xF1EB, 0xC261, 0xF1EC, 0xC262, 0xC263, 0xF1ED, 0xF1EE, 0xF1EF, /* 0x20 */
- 0xF1F1, 0xF1F0, 0xC5D5, 0xC264, 0xC265, 0xC266, 0xC267, 0xC268, /* 0x20 */
- 0xC269, 0xF1F2, 0xC26A, 0xB6FA, 0xC26B, 0xF1F4, 0xD2AE, 0xDEC7, /* 0x30 */
- 0xCBCA, 0xC26C, 0xC26D, 0xB3DC, 0xC26E, 0xB5A2, 0xC26F, 0xB9A2, /* 0x30 */
- 0xC270, 0xC271, 0xC4F4, 0xF1F5, 0xC272, 0xC273, 0xF1F6, 0xC274, /* 0x40 */
- 0xC275, 0xC276, 0xC1C4, 0xC1FB, 0xD6B0, 0xF1F7, 0xC277, 0xC278, /* 0x40 */
- 0xC279, 0xC27A, 0xF1F8, 0xC27B, 0xC1AA, 0xC27C, 0xC27D, 0xC27E, /* 0x50 */
- 0xC6B8, 0xC280, 0xBEDB, 0xC281, 0xC282, 0xC283, 0xC284, 0xC285, /* 0x50 */
- 0xC286, 0xC287, 0xC288, 0xC289, 0xC28A, 0xC28B, 0xC28C, 0xC28D, /* 0x60 */
- 0xC28E, 0xF1F9, 0xB4CF, 0xC28F, 0xC290, 0xC291, 0xC292, 0xC293, /* 0x60 */
- 0xC294, 0xF1FA, 0xC295, 0xC296, 0xC297, 0xC298, 0xC299, 0xC29A, /* 0x70 */
- 0xC29B, 0xC29C, 0xC29D, 0xC29E, 0xC29F, 0xC2A0, 0xC340, 0xEDB2, /* 0x70 */
- 0xEDB1, 0xC341, 0xC342, 0xCBE0, 0xD2DE, 0xC343, 0xCBC1, 0xD5D8, /* 0x80 */
- 0xC344, 0xC8E2, 0xC345, 0xC0DF, 0xBCA1, 0xC346, 0xC347, 0xC348, /* 0x80 */
- 0xC349, 0xC34A, 0xC34B, 0xEBC1, 0xC34C, 0xC34D, 0xD0A4, 0xC34E, /* 0x90 */
- 0xD6E2, 0xC34F, 0xB6C7, 0xB8D8, 0xEBC0, 0xB8CE, 0xC350, 0xEBBF, /* 0x90 */
- 0xB3A6, 0xB9C9, 0xD6AB, 0xC351, 0xB7F4, 0xB7CA, 0xC352, 0xC353, /* 0xA0 */
- 0xC354, 0xBCE7, 0xB7BE, 0xEBC6, 0xC355, 0xEBC7, 0xB0B9, 0xBFCF, /* 0xA0 */
- 0xC356, 0xEBC5, 0xD3FD, 0xC357, 0xEBC8, 0xC358, 0xC359, 0xEBC9, /* 0xB0 */
- 0xC35A, 0xC35B, 0xB7CE, 0xC35C, 0xEBC2, 0xEBC4, 0xC9F6, 0xD6D7, /* 0xB0 */
- 0xD5CD, 0xD0B2, 0xEBCF, 0xCEB8, 0xEBD0, 0xC35D, 0xB5A8, 0xC35E, /* 0xC0 */
- 0xC35F, 0xC360, 0xC361, 0xC362, 0xB1B3, 0xEBD2, 0xCCA5, 0xC363, /* 0xC0 */
- 0xC364, 0xC365, 0xC366, 0xC367, 0xC368, 0xC369, 0xC5D6, 0xEBD3, /* 0xD0 */
- 0xC36A, 0xEBD1, 0xC5DF, 0xEBCE, 0xCAA4, 0xEBD5, 0xB0FB, 0xC36B, /* 0xD0 */
- 0xC36C, 0xBAFA, 0xC36D, 0xC36E, 0xD8B7, 0xF1E3, 0xC36F, 0xEBCA, /* 0xE0 */
- 0xEBCB, 0xEBCC, 0xEBCD, 0xEBD6, 0xE6C0, 0xEBD9, 0xC370, 0xBFE8, /* 0xE0 */
- 0xD2C8, 0xEBD7, 0xEBDC, 0xB8EC, 0xEBD8, 0xC371, 0xBDBA, 0xC372, /* 0xF0 */
- 0xD0D8, 0xC373, 0xB0B7, 0xC374, 0xEBDD, 0xC4DC, 0xC375, 0xC376 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_81[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC377, 0xC378, 0xD6AC, 0xC379, 0xC37A, 0xC37B, 0xB4E0, 0xC37C, /* 0x00 */
- 0xC37D, 0xC2F6, 0xBCB9, 0xC37E, 0xC380, 0xEBDA, 0xEBDB, 0xD4E0, /* 0x00 */
- 0xC6EA, 0xC4D4, 0xEBDF, 0xC5A7, 0xD9F5, 0xC381, 0xB2B1, 0xC382, /* 0x10 */
- 0xEBE4, 0xC383, 0xBDC5, 0xC384, 0xC385, 0xC386, 0xEBE2, 0xC387, /* 0x10 */
- 0xC388, 0xC389, 0xC38A, 0xC38B, 0xC38C, 0xC38D, 0xC38E, 0xC38F, /* 0x20 */
- 0xC390, 0xC391, 0xC392, 0xC393, 0xEBE3, 0xC394, 0xC395, 0xB8AC, /* 0x20 */
- 0xC396, 0xCDD1, 0xEBE5, 0xC397, 0xC398, 0xC399, 0xEBE1, 0xC39A, /* 0x30 */
- 0xC1B3, 0xC39B, 0xC39C, 0xC39D, 0xC39E, 0xC39F, 0xC6A2, 0xC3A0, /* 0x30 */
- 0xC440, 0xC441, 0xC442, 0xC443, 0xC444, 0xC445, 0xCCF3, 0xC446, /* 0x40 */
- 0xEBE6, 0xC447, 0xC0B0, 0xD2B8, 0xEBE7, 0xC448, 0xC449, 0xC44A, /* 0x40 */
- 0xB8AF, 0xB8AD, 0xC44B, 0xEBE8, 0xC7BB, 0xCDF3, 0xC44C, 0xC44D, /* 0x50 */
- 0xC44E, 0xEBEA, 0xEBEB, 0xC44F, 0xC450, 0xC451, 0xC452, 0xC453, /* 0x50 */
- 0xEBED, 0xC454, 0xC455, 0xC456, 0xC457, 0xD0C8, 0xC458, 0xEBF2, /* 0x60 */
- 0xC459, 0xEBEE, 0xC45A, 0xC45B, 0xC45C, 0xEBF1, 0xC8F9, 0xC45D, /* 0x60 */
- 0xD1FC, 0xEBEC, 0xC45E, 0xC45F, 0xEBE9, 0xC460, 0xC461, 0xC462, /* 0x70 */
- 0xC463, 0xB8B9, 0xCFD9, 0xC4E5, 0xEBEF, 0xEBF0, 0xCCDA, 0xCDC8, /* 0x70 */
- 0xB0F2, 0xC464, 0xEBF6, 0xC465, 0xC466, 0xC467, 0xC468, 0xC469, /* 0x80 */
- 0xEBF5, 0xC46A, 0xB2B2, 0xC46B, 0xC46C, 0xC46D, 0xC46E, 0xB8E0, /* 0x80 */
- 0xC46F, 0xEBF7, 0xC470, 0xC471, 0xC472, 0xC473, 0xC474, 0xC475, /* 0x90 */
- 0xB1EC, 0xC476, 0xC477, 0xCCC5, 0xC4A4, 0xCFA5, 0xC478, 0xC479, /* 0x90 */
- 0xC47A, 0xC47B, 0xC47C, 0xEBF9, 0xC47D, 0xC47E, 0xECA2, 0xC480, /* 0xA0 */
- 0xC5F2, 0xC481, 0xEBFA, 0xC482, 0xC483, 0xC484, 0xC485, 0xC486, /* 0xA0 */
- 0xC487, 0xC488, 0xC489, 0xC9C5, 0xC48A, 0xC48B, 0xC48C, 0xC48D, /* 0xB0 */
- 0xC48E, 0xC48F, 0xE2DF, 0xEBFE, 0xC490, 0xC491, 0xC492, 0xC493, /* 0xB0 */
- 0xCDCE, 0xECA1, 0xB1DB, 0xD3B7, 0xC494, 0xC495, 0xD2DC, 0xC496, /* 0xC0 */
- 0xC497, 0xC498, 0xEBFD, 0xC499, 0xEBFB, 0xC49A, 0xC49B, 0xC49C, /* 0xC0 */
- 0xC49D, 0xC49E, 0xC49F, 0xC4A0, 0xC540, 0xC541, 0xC542, 0xC543, /* 0xD0 */
- 0xC544, 0xC545, 0xC546, 0xC547, 0xC548, 0xC549, 0xC54A, 0xC54B, /* 0xD0 */
- 0xC54C, 0xC54D, 0xC54E, 0xB3BC, 0xC54F, 0xC550, 0xC551, 0xEAB0, /* 0xE0 */
- 0xC552, 0xC553, 0xD7D4, 0xC554, 0xF4AB, 0xB3F4, 0xC555, 0xC556, /* 0xE0 */
- 0xC557, 0xC558, 0xC559, 0xD6C1, 0xD6C2, 0xC55A, 0xC55B, 0xC55C, /* 0xF0 */
- 0xC55D, 0xC55E, 0xC55F, 0xD5E9, 0xBECA, 0xC560, 0xF4A7, 0xC561 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_82[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD2A8, 0xF4A8, 0xF4A9, 0xC562, 0xF4AA, 0xBECB, 0xD3DF, 0xC563, /* 0x00 */
- 0xC564, 0xC565, 0xC566, 0xC567, 0xC9E0, 0xC9E1, 0xC568, 0xC569, /* 0x00 */
- 0xF3C2, 0xC56A, 0xCAE6, 0xC56B, 0xCCF2, 0xC56C, 0xC56D, 0xC56E, /* 0x10 */
- 0xC56F, 0xC570, 0xC571, 0xE2B6, 0xCBB4, 0xC572, 0xCEE8, 0xD6DB, /* 0x10 */
- 0xC573, 0xF4AD, 0xF4AE, 0xF4AF, 0xC574, 0xC575, 0xC576, 0xC577, /* 0x20 */
- 0xF4B2, 0xC578, 0xBABD, 0xF4B3, 0xB0E3, 0xF4B0, 0xC579, 0xF4B1, /* 0x20 */
- 0xBDA2, 0xB2D5, 0xC57A, 0xF4B6, 0xF4B7, 0xB6E6, 0xB2B0, 0xCFCF, /* 0x30 */
- 0xF4B4, 0xB4AC, 0xC57B, 0xF4B5, 0xC57C, 0xC57D, 0xF4B8, 0xC57E, /* 0x30 */
- 0xC580, 0xC581, 0xC582, 0xC583, 0xF4B9, 0xC584, 0xC585, 0xCDA7, /* 0x40 */
- 0xC586, 0xF4BA, 0xC587, 0xF4BB, 0xC588, 0xC589, 0xC58A, 0xF4BC, /* 0x40 */
- 0xC58B, 0xC58C, 0xC58D, 0xC58E, 0xC58F, 0xC590, 0xC591, 0xC592, /* 0x50 */
- 0xCBD2, 0xC593, 0xF4BD, 0xC594, 0xC595, 0xC596, 0xC597, 0xF4BE, /* 0x50 */
- 0xC598, 0xC599, 0xC59A, 0xC59B, 0xC59C, 0xC59D, 0xC59E, 0xC59F, /* 0x60 */
- 0xF4BF, 0xC5A0, 0xC640, 0xC641, 0xC642, 0xC643, 0xF4DE, 0xC1BC, /* 0x60 */
- 0xBCE8, 0xC644, 0xC9AB, 0xD1DE, 0xE5F5, 0xC645, 0xC646, 0xC647, /* 0x70 */
- 0xC648, 0xDCB3, 0xD2D5, 0xC649, 0xC64A, 0xDCB4, 0xB0AC, 0xDCB5, /* 0x70 */
- 0xC64B, 0xC64C, 0xBDDA, 0xC64D, 0xDCB9, 0xC64E, 0xC64F, 0xC650, /* 0x80 */
- 0xD8C2, 0xC651, 0xDCB7, 0xD3F3, 0xC652, 0xC9D6, 0xDCBA, 0xDCB6, /* 0x80 */
- 0xC653, 0xDCBB, 0xC3A2, 0xC654, 0xC655, 0xC656, 0xC657, 0xDCBC, /* 0x90 */
- 0xDCC5, 0xDCBD, 0xC658, 0xC659, 0xCEDF, 0xD6A5, 0xC65A, 0xDCCF, /* 0x90 */
- 0xC65B, 0xDCCD, 0xC65C, 0xC65D, 0xDCD2, 0xBDE6, 0xC2AB, 0xC65E, /* 0xA0 */
- 0xDCB8, 0xDCCB, 0xDCCE, 0xDCBE, 0xB7D2, 0xB0C5, 0xDCC7, 0xD0BE, /* 0xA0 */
- 0xDCC1, 0xBBA8, 0xC65F, 0xB7BC, 0xDCCC, 0xC660, 0xC661, 0xDCC6, /* 0xB0 */
- 0xDCBF, 0xC7DB, 0xC662, 0xC663, 0xC664, 0xD1BF, 0xDCC0, 0xC665, /* 0xB0 */
- 0xC666, 0xDCCA, 0xC667, 0xC668, 0xDCD0, 0xC669, 0xC66A, 0xCEAD, /* 0xC0 */
- 0xDCC2, 0xC66B, 0xDCC3, 0xDCC8, 0xDCC9, 0xB2D4, 0xDCD1, 0xCBD5, /* 0xC0 */
- 0xC66C, 0xD4B7, 0xDCDB, 0xDCDF, 0xCCA6, 0xDCE6, 0xC66D, 0xC3E7, /* 0xD0 */
- 0xDCDC, 0xC66E, 0xC66F, 0xBFC1, 0xDCD9, 0xC670, 0xB0FA, 0xB9B6, /* 0xD0 */
- 0xDCE5, 0xDCD3, 0xC671, 0xDCC4, 0xDCD6, 0xC8F4, 0xBFE0, 0xC672, /* 0xE0 */
- 0xC673, 0xC674, 0xC675, 0xC9BB, 0xC676, 0xC677, 0xC678, 0xB1BD, /* 0xE0 */
- 0xC679, 0xD3A2, 0xC67A, 0xC67B, 0xDCDA, 0xC67C, 0xC67D, 0xDCD5, /* 0xF0 */
- 0xC67E, 0xC6BB, 0xC680, 0xDCDE, 0xC681, 0xC682, 0xC683, 0xC684 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_83[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC685, 0xD7C2, 0xC3AF, 0xB7B6, 0xC7D1, 0xC3A9, 0xDCE2, 0xDCD8, /* 0x00 */
- 0xDCEB, 0xDCD4, 0xC686, 0xC687, 0xDCDD, 0xC688, 0xBEA5, 0xDCD7, /* 0x00 */
- 0xC689, 0xDCE0, 0xC68A, 0xC68B, 0xDCE3, 0xDCE4, 0xC68C, 0xDCF8, /* 0x10 */
- 0xC68D, 0xC68E, 0xDCE1, 0xDDA2, 0xDCE7, 0xC68F, 0xC690, 0xC691, /* 0x10 */
- 0xC692, 0xC693, 0xC694, 0xC695, 0xC696, 0xC697, 0xC698, 0xBCEB, /* 0x20 */
- 0xB4C4, 0xC699, 0xC69A, 0xC3A3, 0xB2E7, 0xDCFA, 0xC69B, 0xDCF2, /* 0x20 */
- 0xC69C, 0xDCEF, 0xC69D, 0xDCFC, 0xDCEE, 0xD2F0, 0xB2E8, 0xC69E, /* 0x30 */
- 0xC8D7, 0xC8E3, 0xDCFB, 0xC69F, 0xDCED, 0xC6A0, 0xC740, 0xC741, /* 0x30 */
- 0xDCF7, 0xC742, 0xC743, 0xDCF5, 0xC744, 0xC745, 0xBEA3, 0xDCF4, /* 0x40 */
- 0xC746, 0xB2DD, 0xC747, 0xC748, 0xC749, 0xC74A, 0xC74B, 0xDCF3, /* 0x40 */
- 0xBCF6, 0xDCE8, 0xBBC4, 0xC74C, 0xC0F3, 0xC74D, 0xC74E, 0xC74F, /* 0x50 */
- 0xC750, 0xC751, 0xBCD4, 0xDCE9, 0xDCEA, 0xC752, 0xDCF1, 0xDCF6, /* 0x50 */
- 0xDCF9, 0xB5B4, 0xC753, 0xC8D9, 0xBBE7, 0xDCFE, 0xDCFD, 0xD3AB, /* 0x60 */
- 0xDDA1, 0xDDA3, 0xDDA5, 0xD2F1, 0xDDA4, 0xDDA6, 0xDDA7, 0xD2A9, /* 0x60 */
- 0xC754, 0xC755, 0xC756, 0xC757, 0xC758, 0xC759, 0xC75A, 0xBAC9, /* 0x70 */
- 0xDDA9, 0xC75B, 0xC75C, 0xDDB6, 0xDDB1, 0xDDB4, 0xC75D, 0xC75E, /* 0x70 */
- 0xC75F, 0xC760, 0xC761, 0xC762, 0xC763, 0xDDB0, 0xC6CE, 0xC764, /* 0x80 */
- 0xC765, 0xC0F2, 0xC766, 0xC767, 0xC768, 0xC769, 0xC9AF, 0xC76A, /* 0x80 */
- 0xC76B, 0xC76C, 0xDCEC, 0xDDAE, 0xC76D, 0xC76E, 0xC76F, 0xC770, /* 0x90 */
- 0xDDB7, 0xC771, 0xC772, 0xDCF0, 0xDDAF, 0xC773, 0xDDB8, 0xC774, /* 0x90 */
- 0xDDAC, 0xC775, 0xC776, 0xC777, 0xC778, 0xC779, 0xC77A, 0xC77B, /* 0xA0 */
- 0xDDB9, 0xDDB3, 0xDDAD, 0xC4AA, 0xC77C, 0xC77D, 0xC77E, 0xC780, /* 0xA0 */
- 0xDDA8, 0xC0B3, 0xC1AB, 0xDDAA, 0xDDAB, 0xC781, 0xDDB2, 0xBBF1, /* 0xB0 */
- 0xDDB5, 0xD3A8, 0xDDBA, 0xC782, 0xDDBB, 0xC3A7, 0xC783, 0xC784, /* 0xB0 */
- 0xDDD2, 0xDDBC, 0xC785, 0xC786, 0xC787, 0xDDD1, 0xC788, 0xB9BD, /* 0xC0 */
- 0xC789, 0xC78A, 0xBED5, 0xC78B, 0xBEFA, 0xC78C, 0xC78D, 0xBACA, /* 0xC0 */
- 0xC78E, 0xC78F, 0xC790, 0xC791, 0xDDCA, 0xC792, 0xDDC5, 0xC793, /* 0xD0 */
- 0xDDBF, 0xC794, 0xC795, 0xC796, 0xB2CB, 0xDDC3, 0xC797, 0xDDCB, /* 0xD0 */
- 0xB2A4, 0xDDD5, 0xC798, 0xC799, 0xC79A, 0xDDBE, 0xC79B, 0xC79C, /* 0xE0 */
- 0xC79D, 0xC6D0, 0xDDD0, 0xC79E, 0xC79F, 0xC7A0, 0xC840, 0xC841, /* 0xE0 */
- 0xDDD4, 0xC1E2, 0xB7C6, 0xC842, 0xC843, 0xC844, 0xC845, 0xC846, /* 0xF0 */
- 0xDDCE, 0xDDCF, 0xC847, 0xC848, 0xC849, 0xDDC4, 0xC84A, 0xC84B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_84[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC84C, 0xDDBD, 0xC84D, 0xDDCD, 0xCCD1, 0xC84E, 0xDDC9, 0xC84F, /* 0x00 */
- 0xC850, 0xC851, 0xC852, 0xDDC2, 0xC3C8, 0xC6BC, 0xCEAE, 0xDDCC, /* 0x00 */
- 0xC853, 0xDDC8, 0xC854, 0xC855, 0xC856, 0xC857, 0xC858, 0xC859, /* 0x10 */
- 0xDDC1, 0xC85A, 0xC85B, 0xC85C, 0xDDC6, 0xC2DC, 0xC85D, 0xC85E, /* 0x10 */
- 0xC85F, 0xC860, 0xC861, 0xC862, 0xD3A9, 0xD3AA, 0xDDD3, 0xCFF4, /* 0x20 */
- 0xC8F8, 0xC863, 0xC864, 0xC865, 0xC866, 0xC867, 0xC868, 0xC869, /* 0x20 */
- 0xC86A, 0xDDE6, 0xC86B, 0xC86C, 0xC86D, 0xC86E, 0xC86F, 0xC870, /* 0x30 */
- 0xDDC7, 0xC871, 0xC872, 0xC873, 0xDDE0, 0xC2E4, 0xC874, 0xC875, /* 0x30 */
- 0xC876, 0xC877, 0xC878, 0xC879, 0xC87A, 0xC87B, 0xDDE1, 0xC87C, /* 0x40 */
- 0xC87D, 0xC87E, 0xC880, 0xC881, 0xC882, 0xC883, 0xC884, 0xC885, /* 0x40 */
- 0xC886, 0xDDD7, 0xC887, 0xC888, 0xC889, 0xC88A, 0xC88B, 0xD6F8, /* 0x50 */
- 0xC88C, 0xDDD9, 0xDDD8, 0xB8F0, 0xDDD6, 0xC88D, 0xC88E, 0xC88F, /* 0x50 */
- 0xC890, 0xC6CF, 0xC891, 0xB6AD, 0xC892, 0xC893, 0xC894, 0xC895, /* 0x60 */
- 0xC896, 0xDDE2, 0xC897, 0xBAF9, 0xD4E1, 0xDDE7, 0xC898, 0xC899, /* 0x60 */
- 0xC89A, 0xB4D0, 0xC89B, 0xDDDA, 0xC89C, 0xBFFB, 0xDDE3, 0xC89D, /* 0x70 */
- 0xDDDF, 0xC89E, 0xDDDD, 0xC89F, 0xC8A0, 0xC940, 0xC941, 0xC942, /* 0x70 */
- 0xC943, 0xC944, 0xB5D9, 0xC945, 0xC946, 0xC947, 0xC948, 0xDDDB, /* 0x80 */
- 0xDDDC, 0xDDDE, 0xC949, 0xBDAF, 0xDDE4, 0xC94A, 0xDDE5, 0xC94B, /* 0x80 */
- 0xC94C, 0xC94D, 0xC94E, 0xC94F, 0xC950, 0xC951, 0xC952, 0xDDF5, /* 0x90 */
- 0xC953, 0xC3C9, 0xC954, 0xC955, 0xCBE2, 0xC956, 0xC957, 0xC958, /* 0x90 */
- 0xC959, 0xDDF2, 0xC95A, 0xC95B, 0xC95C, 0xC95D, 0xC95E, 0xC95F, /* 0xA0 */
- 0xC960, 0xC961, 0xC962, 0xC963, 0xC964, 0xC965, 0xC966, 0xD8E1, /* 0xA0 */
- 0xC967, 0xC968, 0xC6D1, 0xC969, 0xDDF4, 0xC96A, 0xC96B, 0xC96C, /* 0xB0 */
- 0xD5F4, 0xDDF3, 0xDDF0, 0xC96D, 0xC96E, 0xDDEC, 0xC96F, 0xDDEF, /* 0xB0 */
- 0xC970, 0xDDE8, 0xC971, 0xC972, 0xD0EE, 0xC973, 0xC974, 0xC975, /* 0xC0 */
- 0xC976, 0xC8D8, 0xDDEE, 0xC977, 0xC978, 0xDDE9, 0xC979, 0xC97A, /* 0xC0 */
- 0xDDEA, 0xCBF2, 0xC97B, 0xDDED, 0xC97C, 0xC97D, 0xB1CD, 0xC97E, /* 0xD0 */
- 0xC980, 0xC981, 0xC982, 0xC983, 0xC984, 0xC0B6, 0xC985, 0xBCBB, /* 0xD0 */
- 0xDDF1, 0xC986, 0xC987, 0xDDF7, 0xC988, 0xDDF6, 0xDDEB, 0xC989, /* 0xE0 */
- 0xC98A, 0xC98B, 0xC98C, 0xC98D, 0xC5EE, 0xC98E, 0xC98F, 0xC990, /* 0xE0 */
- 0xDDFB, 0xC991, 0xC992, 0xC993, 0xC994, 0xC995, 0xC996, 0xC997, /* 0xF0 */
- 0xC998, 0xC999, 0xC99A, 0xC99B, 0xDEA4, 0xC99C, 0xC99D, 0xDEA3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_85[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC99E, 0xC99F, 0xC9A0, 0xCA40, 0xCA41, 0xCA42, 0xCA43, 0xCA44, /* 0x00 */
- 0xCA45, 0xCA46, 0xCA47, 0xCA48, 0xDDF8, 0xCA49, 0xCA4A, 0xCA4B, /* 0x00 */
- 0xCA4C, 0xC3EF, 0xCA4D, 0xC2FB, 0xCA4E, 0xCA4F, 0xCA50, 0xD5E1, /* 0x10 */
- 0xCA51, 0xCA52, 0xCEB5, 0xCA53, 0xCA54, 0xCA55, 0xCA56, 0xDDFD, /* 0x10 */
- 0xCA57, 0xB2CC, 0xCA58, 0xCA59, 0xCA5A, 0xCA5B, 0xCA5C, 0xCA5D, /* 0x20 */
- 0xCA5E, 0xCA5F, 0xCA60, 0xC4E8, 0xCADF, 0xCA61, 0xCA62, 0xCA63, /* 0x20 */
- 0xCA64, 0xCA65, 0xCA66, 0xCA67, 0xCA68, 0xCA69, 0xCA6A, 0xC7BE, /* 0x30 */
- 0xDDFA, 0xDDFC, 0xDDFE, 0xDEA2, 0xB0AA, 0xB1CE, 0xCA6B, 0xCA6C, /* 0x30 */
- 0xCA6D, 0xCA6E, 0xCA6F, 0xDEAC, 0xCA70, 0xCA71, 0xCA72, 0xCA73, /* 0x40 */
- 0xDEA6, 0xBDB6, 0xC8EF, 0xCA74, 0xCA75, 0xCA76, 0xCA77, 0xCA78, /* 0x40 */
- 0xCA79, 0xCA7A, 0xCA7B, 0xCA7C, 0xCA7D, 0xCA7E, 0xDEA1, 0xCA80, /* 0x50 */
- 0xCA81, 0xDEA5, 0xCA82, 0xCA83, 0xCA84, 0xCA85, 0xDEA9, 0xCA86, /* 0x50 */
- 0xCA87, 0xCA88, 0xCA89, 0xCA8A, 0xDEA8, 0xCA8B, 0xCA8C, 0xCA8D, /* 0x60 */
- 0xDEA7, 0xCA8E, 0xCA8F, 0xCA90, 0xCA91, 0xCA92, 0xCA93, 0xCA94, /* 0x60 */
- 0xCA95, 0xCA96, 0xDEAD, 0xCA97, 0xD4CC, 0xCA98, 0xCA99, 0xCA9A, /* 0x70 */
- 0xCA9B, 0xDEB3, 0xDEAA, 0xDEAE, 0xCA9C, 0xCA9D, 0xC0D9, 0xCA9E, /* 0x70 */
- 0xCA9F, 0xCAA0, 0xCB40, 0xCB41, 0xB1A1, 0xDEB6, 0xCB42, 0xDEB1, /* 0x80 */
- 0xCB43, 0xCB44, 0xCB45, 0xCB46, 0xCB47, 0xCB48, 0xCB49, 0xDEB2, /* 0x80 */
- 0xCB4A, 0xCB4B, 0xCB4C, 0xCB4D, 0xCB4E, 0xCB4F, 0xCB50, 0xCB51, /* 0x90 */
- 0xCB52, 0xCB53, 0xCB54, 0xD1A6, 0xDEB5, 0xCB55, 0xCB56, 0xCB57, /* 0x90 */
- 0xCB58, 0xCB59, 0xCB5A, 0xCB5B, 0xDEAF, 0xCB5C, 0xCB5D, 0xCB5E, /* 0xA0 */
- 0xDEB0, 0xCB5F, 0xD0BD, 0xCB60, 0xCB61, 0xCB62, 0xDEB4, 0xCAED, /* 0xA0 */
- 0xDEB9, 0xCB63, 0xCB64, 0xCB65, 0xCB66, 0xCB67, 0xCB68, 0xDEB8, /* 0xB0 */
- 0xCB69, 0xDEB7, 0xCB6A, 0xCB6B, 0xCB6C, 0xCB6D, 0xCB6E, 0xCB6F, /* 0xB0 */
- 0xCB70, 0xDEBB, 0xCB71, 0xCB72, 0xCB73, 0xCB74, 0xCB75, 0xCB76, /* 0xC0 */
- 0xCB77, 0xBDE5, 0xCB78, 0xCB79, 0xCB7A, 0xCB7B, 0xCB7C, 0xB2D8, /* 0xC0 */
- 0xC3EA, 0xCB7D, 0xCB7E, 0xDEBA, 0xCB80, 0xC5BA, 0xCB81, 0xCB82, /* 0xD0 */
- 0xCB83, 0xCB84, 0xCB85, 0xCB86, 0xDEBC, 0xCB87, 0xCB88, 0xCB89, /* 0xD0 */
- 0xCB8A, 0xCB8B, 0xCB8C, 0xCB8D, 0xCCD9, 0xCB8E, 0xCB8F, 0xCB90, /* 0xE0 */
- 0xCB91, 0xB7AA, 0xCB92, 0xCB93, 0xCB94, 0xCB95, 0xCB96, 0xCB97, /* 0xE0 */
- 0xCB98, 0xCB99, 0xCB9A, 0xCB9B, 0xCB9C, 0xCB9D, 0xCB9E, 0xCB9F, /* 0xF0 */
- 0xCBA0, 0xCC40, 0xCC41, 0xD4E5, 0xCC42, 0xCC43, 0xCC44, 0xDEBD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_86[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCC45, 0xCC46, 0xCC47, 0xCC48, 0xCC49, 0xDEBF, 0xCC4A, 0xCC4B, /* 0x00 */
- 0xCC4C, 0xCC4D, 0xCC4E, 0xCC4F, 0xCC50, 0xCC51, 0xCC52, 0xCC53, /* 0x00 */
- 0xCC54, 0xC4A2, 0xCC55, 0xCC56, 0xCC57, 0xCC58, 0xDEC1, 0xCC59, /* 0x10 */
- 0xCC5A, 0xCC5B, 0xCC5C, 0xCC5D, 0xCC5E, 0xCC5F, 0xCC60, 0xCC61, /* 0x10 */
- 0xCC62, 0xCC63, 0xCC64, 0xCC65, 0xCC66, 0xCC67, 0xCC68, 0xDEBE, /* 0x20 */
- 0xCC69, 0xDEC0, 0xCC6A, 0xCC6B, 0xCC6C, 0xCC6D, 0xCC6E, 0xCC6F, /* 0x20 */
- 0xCC70, 0xCC71, 0xCC72, 0xCC73, 0xCC74, 0xCC75, 0xCC76, 0xCC77, /* 0x30 */
- 0xD5BA, 0xCC78, 0xCC79, 0xCC7A, 0xDEC2, 0xCC7B, 0xCC7C, 0xCC7D, /* 0x30 */
- 0xCC7E, 0xCC80, 0xCC81, 0xCC82, 0xCC83, 0xCC84, 0xCC85, 0xCC86, /* 0x40 */
- 0xCC87, 0xCC88, 0xCC89, 0xCC8A, 0xCC8B, 0xF2AE, 0xBBA2, 0xC2B2, /* 0x40 */
- 0xC5B0, 0xC2C7, 0xCC8C, 0xCC8D, 0xF2AF, 0xCC8E, 0xCC8F, 0xCC90, /* 0x50 */
- 0xCC91, 0xCC92, 0xD0E9, 0xCC93, 0xCC94, 0xCC95, 0xD3DD, 0xCC96, /* 0x50 */
- 0xCC97, 0xCC98, 0xEBBD, 0xCC99, 0xCC9A, 0xCC9B, 0xCC9C, 0xCC9D, /* 0x60 */
- 0xCC9E, 0xCC9F, 0xCCA0, 0xB3E6, 0xF2B0, 0xCD40, 0xF2B1, 0xCD41, /* 0x60 */
- 0xCD42, 0xCAAD, 0xCD43, 0xCD44, 0xCD45, 0xCD46, 0xCD47, 0xCD48, /* 0x70 */
- 0xCD49, 0xBAE7, 0xF2B3, 0xF2B5, 0xF2B4, 0xCBE4, 0xCFBA, 0xF2B2, /* 0x70 */
- 0xCAB4, 0xD2CF, 0xC2EC, 0xCD4A, 0xCD4B, 0xCD4C, 0xCD4D, 0xCD4E, /* 0x80 */
- 0xCD4F, 0xCD50, 0xCEC3, 0xF2B8, 0xB0F6, 0xF2B7, 0xCD51, 0xCD52, /* 0x80 */
- 0xCD53, 0xCD54, 0xCD55, 0xF2BE, 0xCD56, 0xB2CF, 0xCD57, 0xCD58, /* 0x90 */
- 0xCD59, 0xCD5A, 0xCD5B, 0xCD5C, 0xD1C1, 0xF2BA, 0xCD5D, 0xCD5E, /* 0x90 */
- 0xCD5F, 0xCD60, 0xCD61, 0xF2BC, 0xD4E9, 0xCD62, 0xCD63, 0xF2BB, /* 0xA0 */
- 0xF2B6, 0xF2BF, 0xF2BD, 0xCD64, 0xF2B9, 0xCD65, 0xCD66, 0xF2C7, /* 0xA0 */
- 0xF2C4, 0xF2C6, 0xCD67, 0xCD68, 0xF2CA, 0xF2C2, 0xF2C0, 0xCD69, /* 0xB0 */
- 0xCD6A, 0xCD6B, 0xF2C5, 0xCD6C, 0xCD6D, 0xCD6E, 0xCD6F, 0xCD70, /* 0xB0 */
- 0xD6FB, 0xCD71, 0xCD72, 0xCD73, 0xF2C1, 0xCD74, 0xC7F9, 0xC9DF, /* 0xC0 */
- 0xCD75, 0xF2C8, 0xB9C6, 0xB5B0, 0xCD76, 0xCD77, 0xF2C3, 0xF2C9, /* 0xC0 */
- 0xF2D0, 0xF2D6, 0xCD78, 0xCD79, 0xBBD7, 0xCD7A, 0xCD7B, 0xCD7C, /* 0xD0 */
- 0xF2D5, 0xCDDC, 0xCD7D, 0xD6EB, 0xCD7E, 0xCD80, 0xF2D2, 0xF2D4, /* 0xD0 */
- 0xCD81, 0xCD82, 0xCD83, 0xCD84, 0xB8F2, 0xCD85, 0xCD86, 0xCD87, /* 0xE0 */
- 0xCD88, 0xF2CB, 0xCD89, 0xCD8A, 0xCD8B, 0xF2CE, 0xC2F9, 0xCD8C, /* 0xE0 */
- 0xD5DD, 0xF2CC, 0xF2CD, 0xF2CF, 0xF2D3, 0xCD8D, 0xCD8E, 0xCD8F, /* 0xF0 */
- 0xF2D9, 0xD3BC, 0xCD90, 0xCD91, 0xCD92, 0xCD93, 0xB6EA, 0xCD94 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_87[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCAF1, 0xCD95, 0xB7E4, 0xF2D7, 0xCD96, 0xCD97, 0xCD98, 0xF2D8, /* 0x00 */
- 0xF2DA, 0xF2DD, 0xF2DB, 0xCD99, 0xCD9A, 0xF2DC, 0xCD9B, 0xCD9C, /* 0x00 */
- 0xCD9D, 0xCD9E, 0xD1D1, 0xF2D1, 0xCD9F, 0xCDC9, 0xCDA0, 0xCECF, /* 0x10 */
- 0xD6A9, 0xCE40, 0xF2E3, 0xCE41, 0xC3DB, 0xCE42, 0xF2E0, 0xCE43, /* 0x10 */
- 0xCE44, 0xC0AF, 0xF2EC, 0xF2DE, 0xCE45, 0xF2E1, 0xCE46, 0xCE47, /* 0x20 */
- 0xCE48, 0xF2E8, 0xCE49, 0xCE4A, 0xCE4B, 0xCE4C, 0xF2E2, 0xCE4D, /* 0x20 */
- 0xCE4E, 0xF2E7, 0xCE4F, 0xCE50, 0xF2E6, 0xCE51, 0xCE52, 0xF2E9, /* 0x30 */
- 0xCE53, 0xCE54, 0xCE55, 0xF2DF, 0xCE56, 0xCE57, 0xF2E4, 0xF2EA, /* 0x30 */
- 0xCE58, 0xCE59, 0xCE5A, 0xCE5B, 0xCE5C, 0xCE5D, 0xCE5E, 0xD3AC, /* 0x40 */
- 0xF2E5, 0xB2F5, 0xCE5F, 0xCE60, 0xF2F2, 0xCE61, 0xD0AB, 0xCE62, /* 0x40 */
- 0xCE63, 0xCE64, 0xCE65, 0xF2F5, 0xCE66, 0xCE67, 0xCE68, 0xBBC8, /* 0x50 */
- 0xCE69, 0xF2F9, 0xCE6A, 0xCE6B, 0xCE6C, 0xCE6D, 0xCE6E, 0xCE6F, /* 0x50 */
- 0xF2F0, 0xCE70, 0xCE71, 0xF2F6, 0xF2F8, 0xF2FA, 0xCE72, 0xCE73, /* 0x60 */
- 0xCE74, 0xCE75, 0xCE76, 0xCE77, 0xCE78, 0xCE79, 0xF2F3, 0xCE7A, /* 0x60 */
- 0xF2F1, 0xCE7B, 0xCE7C, 0xCE7D, 0xBAFB, 0xCE7E, 0xB5FB, 0xCE80, /* 0x70 */
- 0xCE81, 0xCE82, 0xCE83, 0xF2EF, 0xF2F7, 0xF2ED, 0xF2EE, 0xCE84, /* 0x70 */
- 0xCE85, 0xCE86, 0xF2EB, 0xF3A6, 0xCE87, 0xF3A3, 0xCE88, 0xCE89, /* 0x80 */
- 0xF3A2, 0xCE8A, 0xCE8B, 0xF2F4, 0xCE8C, 0xC8DA, 0xCE8D, 0xCE8E, /* 0x80 */
- 0xCE8F, 0xCE90, 0xCE91, 0xF2FB, 0xCE92, 0xCE93, 0xCE94, 0xF3A5, /* 0x90 */
- 0xCE95, 0xCE96, 0xCE97, 0xCE98, 0xCE99, 0xCE9A, 0xCE9B, 0xC3F8, /* 0x90 */
- 0xCE9C, 0xCE9D, 0xCE9E, 0xCE9F, 0xCEA0, 0xCF40, 0xCF41, 0xCF42, /* 0xA0 */
- 0xF2FD, 0xCF43, 0xCF44, 0xF3A7, 0xF3A9, 0xF3A4, 0xCF45, 0xF2FC, /* 0xA0 */
- 0xCF46, 0xCF47, 0xCF48, 0xF3AB, 0xCF49, 0xF3AA, 0xCF4A, 0xCF4B, /* 0xB0 */
- 0xCF4C, 0xCF4D, 0xC2DD, 0xCF4E, 0xCF4F, 0xF3AE, 0xCF50, 0xCF51, /* 0xB0 */
- 0xF3B0, 0xCF52, 0xCF53, 0xCF54, 0xCF55, 0xCF56, 0xF3A1, 0xCF57, /* 0xC0 */
- 0xCF58, 0xCF59, 0xF3B1, 0xF3AC, 0xCF5A, 0xCF5B, 0xCF5C, 0xCF5D, /* 0xC0 */
- 0xCF5E, 0xF3AF, 0xF2FE, 0xF3AD, 0xCF5F, 0xCF60, 0xCF61, 0xCF62, /* 0xD0 */
- 0xCF63, 0xCF64, 0xCF65, 0xF3B2, 0xCF66, 0xCF67, 0xCF68, 0xCF69, /* 0xD0 */
- 0xF3B4, 0xCF6A, 0xCF6B, 0xCF6C, 0xCF6D, 0xF3A8, 0xCF6E, 0xCF6F, /* 0xE0 */
- 0xCF70, 0xCF71, 0xF3B3, 0xCF72, 0xCF73, 0xCF74, 0xF3B5, 0xCF75, /* 0xE0 */
- 0xCF76, 0xCF77, 0xCF78, 0xCF79, 0xCF7A, 0xCF7B, 0xCF7C, 0xCF7D, /* 0xF0 */
- 0xCF7E, 0xD0B7, 0xCF80, 0xCF81, 0xCF82, 0xCF83, 0xF3B8, 0xCF84 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_88[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCF85, 0xCF86, 0xCF87, 0xD9F9, 0xCF88, 0xCF89, 0xCF8A, 0xCF8B, /* 0x00 */
- 0xCF8C, 0xCF8D, 0xF3B9, 0xCF8E, 0xCF8F, 0xCF90, 0xCF91, 0xCF92, /* 0x00 */
- 0xCF93, 0xCF94, 0xCF95, 0xF3B7, 0xCF96, 0xC8E4, 0xF3B6, 0xCF97, /* 0x10 */
- 0xCF98, 0xCF99, 0xCF9A, 0xF3BA, 0xCF9B, 0xCF9C, 0xCF9D, 0xCF9E, /* 0x10 */
- 0xCF9F, 0xF3BB, 0xB4C0, 0xCFA0, 0xD040, 0xD041, 0xD042, 0xD043, /* 0x20 */
- 0xD044, 0xD045, 0xD046, 0xD047, 0xD048, 0xD049, 0xD04A, 0xD04B, /* 0x20 */
- 0xD04C, 0xD04D, 0xEEC3, 0xD04E, 0xD04F, 0xD050, 0xD051, 0xD052, /* 0x30 */
- 0xD053, 0xF3BC, 0xD054, 0xD055, 0xF3BD, 0xD056, 0xD057, 0xD058, /* 0x30 */
- 0xD1AA, 0xD059, 0xD05A, 0xD05B, 0xF4AC, 0xD0C6, 0xD05C, 0xD05D, /* 0x40 */
- 0xD05E, 0xD05F, 0xD060, 0xD061, 0xD0D0, 0xD1DC, 0xD062, 0xD063, /* 0x40 */
- 0xD064, 0xD065, 0xD066, 0xD067, 0xCFCE, 0xD068, 0xD069, 0xBDD6, /* 0x50 */
- 0xD06A, 0xD1C3, 0xD06B, 0xD06C, 0xD06D, 0xD06E, 0xD06F, 0xD070, /* 0x50 */
- 0xD071, 0xBAE2, 0xE1E9, 0xD2C2, 0xF1C2, 0xB2B9, 0xD072, 0xD073, /* 0x60 */
- 0xB1ED, 0xF1C3, 0xD074, 0xC9C0, 0xB3C4, 0xD075, 0xD9F2, 0xD076, /* 0x60 */
- 0xCBA5, 0xD077, 0xF1C4, 0xD078, 0xD079, 0xD07A, 0xD07B, 0xD6D4, /* 0x70 */
- 0xD07C, 0xD07D, 0xD07E, 0xD080, 0xD081, 0xF1C5, 0xF4C0, 0xF1C6, /* 0x70 */
- 0xD082, 0xD4AC, 0xF1C7, 0xD083, 0xB0C0, 0xF4C1, 0xD084, 0xD085, /* 0x80 */
- 0xF4C2, 0xD086, 0xD087, 0xB4FC, 0xD088, 0xC5DB, 0xD089, 0xD08A, /* 0x80 */
- 0xD08B, 0xD08C, 0xCCBB, 0xD08D, 0xD08E, 0xD08F, 0xD0E4, 0xD090, /* 0x90 */
- 0xD091, 0xD092, 0xD093, 0xD094, 0xCDE0, 0xD095, 0xD096, 0xD097, /* 0x90 */
- 0xD098, 0xD099, 0xF1C8, 0xD09A, 0xD9F3, 0xD09B, 0xD09C, 0xD09D, /* 0xA0 */
- 0xD09E, 0xD09F, 0xD0A0, 0xB1BB, 0xD140, 0xCFAE, 0xD141, 0xD142, /* 0xA0 */
- 0xD143, 0xB8A4, 0xD144, 0xD145, 0xD146, 0xD147, 0xD148, 0xF1CA, /* 0xB0 */
- 0xD149, 0xD14A, 0xD14B, 0xD14C, 0xF1CB, 0xD14D, 0xD14E, 0xD14F, /* 0xB0 */
- 0xD150, 0xB2C3, 0xC1D1, 0xD151, 0xD152, 0xD7B0, 0xF1C9, 0xD153, /* 0xC0 */
- 0xD154, 0xF1CC, 0xD155, 0xD156, 0xD157, 0xD158, 0xF1CE, 0xD159, /* 0xC0 */
- 0xD15A, 0xD15B, 0xD9F6, 0xD15C, 0xD2E1, 0xD4A3, 0xD15D, 0xD15E, /* 0xD0 */
- 0xF4C3, 0xC8B9, 0xD15F, 0xD160, 0xD161, 0xD162, 0xD163, 0xF4C4, /* 0xD0 */
- 0xD164, 0xD165, 0xF1CD, 0xF1CF, 0xBFE3, 0xF1D0, 0xD166, 0xD167, /* 0xE0 */
- 0xF1D4, 0xD168, 0xD169, 0xD16A, 0xD16B, 0xD16C, 0xD16D, 0xD16E, /* 0xE0 */
- 0xF1D6, 0xF1D1, 0xD16F, 0xC9D1, 0xC5E1, 0xD170, 0xD171, 0xD172, /* 0xF0 */
- 0xC2E3, 0xB9FC, 0xD173, 0xD174, 0xF1D3, 0xD175, 0xF1D5, 0xD176 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_89[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD177, 0xD178, 0xB9D3, 0xD179, 0xD17A, 0xD17B, 0xD17C, 0xD17D, /* 0x00 */
- 0xD17E, 0xD180, 0xF1DB, 0xD181, 0xD182, 0xD183, 0xD184, 0xD185, /* 0x00 */
- 0xBAD6, 0xD186, 0xB0FD, 0xF1D9, 0xD187, 0xD188, 0xD189, 0xD18A, /* 0x10 */
- 0xD18B, 0xF1D8, 0xF1D2, 0xF1DA, 0xD18C, 0xD18D, 0xD18E, 0xD18F, /* 0x10 */
- 0xD190, 0xF1D7, 0xD191, 0xD192, 0xD193, 0xC8EC, 0xD194, 0xD195, /* 0x20 */
- 0xD196, 0xD197, 0xCDCA, 0xF1DD, 0xD198, 0xD199, 0xD19A, 0xD19B, /* 0x20 */
- 0xE5BD, 0xD19C, 0xD19D, 0xD19E, 0xF1DC, 0xD19F, 0xF1DE, 0xD1A0, /* 0x30 */
- 0xD240, 0xD241, 0xD242, 0xD243, 0xD244, 0xD245, 0xD246, 0xD247, /* 0x30 */
- 0xD248, 0xF1DF, 0xD249, 0xD24A, 0xCFE5, 0xD24B, 0xD24C, 0xD24D, /* 0x40 */
- 0xD24E, 0xD24F, 0xD250, 0xD251, 0xD252, 0xD253, 0xD254, 0xD255, /* 0x40 */
- 0xD256, 0xD257, 0xD258, 0xD259, 0xD25A, 0xD25B, 0xD25C, 0xD25D, /* 0x50 */
- 0xD25E, 0xD25F, 0xD260, 0xD261, 0xD262, 0xD263, 0xF4C5, 0xBDF3, /* 0x50 */
- 0xD264, 0xD265, 0xD266, 0xD267, 0xD268, 0xD269, 0xF1E0, 0xD26A, /* 0x60 */
- 0xD26B, 0xD26C, 0xD26D, 0xD26E, 0xD26F, 0xD270, 0xD271, 0xD272, /* 0x60 */
- 0xD273, 0xD274, 0xD275, 0xD276, 0xD277, 0xD278, 0xD279, 0xD27A, /* 0x70 */
- 0xD27B, 0xD27C, 0xD27D, 0xF1E1, 0xD27E, 0xD280, 0xD281, 0xCEF7, /* 0x70 */
- 0xD282, 0xD2AA, 0xD283, 0xF1FB, 0xD284, 0xD285, 0xB8B2, 0xD286, /* 0x80 */
- 0xD287, 0xD288, 0xD289, 0xD28A, 0xD28B, 0xD28C, 0xD28D, 0xD28E, /* 0x80 */
- 0xD28F, 0xD290, 0xD291, 0xD292, 0xD293, 0xD294, 0xD295, 0xD296, /* 0x90 */
- 0xD297, 0xD298, 0xD299, 0xD29A, 0xD29B, 0xD29C, 0xD29D, 0xD29E, /* 0x90 */
- 0xD29F, 0xD2A0, 0xD340, 0xD341, 0xD342, 0xD343, 0xD344, 0xD345, /* 0xA0 */
- 0xD346, 0xD347, 0xD348, 0xD349, 0xD34A, 0xD34B, 0xD34C, 0xD34D, /* 0xA0 */
- 0xD34E, 0xD34F, 0xD350, 0xD351, 0xD352, 0xD353, 0xD354, 0xD355, /* 0xB0 */
- 0xD356, 0xD357, 0xD358, 0xD359, 0xD35A, 0xD35B, 0xD35C, 0xD35D, /* 0xB0 */
- 0xD35E, 0xBCFB, 0xB9DB, 0xD35F, 0xB9E6, 0xC3D9, 0xCAD3, 0xEAE8, /* 0xC0 */
- 0xC0C0, 0xBEF5, 0xEAE9, 0xEAEA, 0xEAEB, 0xD360, 0xEAEC, 0xEAED, /* 0xC0 */
- 0xEAEE, 0xEAEF, 0xBDC7, 0xD361, 0xD362, 0xD363, 0xF5FB, 0xD364, /* 0xD0 */
- 0xD365, 0xD366, 0xF5FD, 0xD367, 0xF5FE, 0xD368, 0xF5FC, 0xD369, /* 0xD0 */
- 0xD36A, 0xD36B, 0xD36C, 0xBDE2, 0xD36D, 0xF6A1, 0xB4A5, 0xD36E, /* 0xE0 */
- 0xD36F, 0xD370, 0xD371, 0xF6A2, 0xD372, 0xD373, 0xD374, 0xF6A3, /* 0xE0 */
- 0xD375, 0xD376, 0xD377, 0xECB2, 0xD378, 0xD379, 0xD37A, 0xD37B, /* 0xF0 */
- 0xD37C, 0xD37D, 0xD37E, 0xD380, 0xD381, 0xD382, 0xD383, 0xD384 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_8A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD1D4, 0xD385, 0xD386, 0xD387, 0xD388, 0xD389, 0xD38A, 0xD9EA, /* 0x00 */
- 0xD38B, 0xD38C, 0xD38D, 0xD38E, 0xD38F, 0xD390, 0xD391, 0xD392, /* 0x00 */
- 0xD393, 0xD394, 0xD395, 0xD396, 0xD397, 0xD398, 0xD399, 0xD39A, /* 0x10 */
- 0xD39B, 0xD39C, 0xD39D, 0xD39E, 0xD39F, 0xD3A0, 0xD440, 0xD441, /* 0x10 */
- 0xD442, 0xD443, 0xD444, 0xD445, 0xD446, 0xD447, 0xD448, 0xD449, /* 0x20 */
- 0xD44A, 0xD44B, 0xD44C, 0xD44D, 0xD44E, 0xD44F, 0xD450, 0xD451, /* 0x20 */
- 0xD452, 0xD453, 0xD454, 0xD455, 0xD456, 0xD457, 0xD458, 0xD459, /* 0x30 */
- 0xD45A, 0xD45B, 0xD45C, 0xD45D, 0xD45E, 0xD45F, 0xF6A4, 0xD460, /* 0x30 */
- 0xD461, 0xD462, 0xD463, 0xD464, 0xD465, 0xD466, 0xD467, 0xD468, /* 0x40 */
- 0xEEBA, 0xD469, 0xD46A, 0xD46B, 0xD46C, 0xD46D, 0xD46E, 0xD46F, /* 0x40 */
- 0xD470, 0xD471, 0xD472, 0xD473, 0xD474, 0xD475, 0xD476, 0xD477, /* 0x50 */
- 0xD478, 0xD479, 0xD47A, 0xD47B, 0xD47C, 0xD47D, 0xD47E, 0xD480, /* 0x50 */
- 0xD481, 0xD482, 0xD483, 0xD484, 0xD485, 0xD486, 0xD487, 0xD488, /* 0x60 */
- 0xD489, 0xD48A, 0xD48B, 0xD48C, 0xD48D, 0xD48E, 0xD48F, 0xD490, /* 0x60 */
- 0xD491, 0xD492, 0xD493, 0xD494, 0xD495, 0xD496, 0xD497, 0xD498, /* 0x70 */
- 0xD499, 0xD5B2, 0xD49A, 0xD49B, 0xD49C, 0xD49D, 0xD49E, 0xD49F, /* 0x70 */
- 0xD4A0, 0xD540, 0xD541, 0xD542, 0xD543, 0xD544, 0xD545, 0xD546, /* 0x80 */
- 0xD547, 0xD3FE, 0xCCDC, 0xD548, 0xD549, 0xD54A, 0xD54B, 0xD54C, /* 0x80 */
- 0xD54D, 0xD54E, 0xD54F, 0xCAC4, 0xD550, 0xD551, 0xD552, 0xD553, /* 0x90 */
- 0xD554, 0xD555, 0xD556, 0xD557, 0xD558, 0xD559, 0xD55A, 0xD55B, /* 0x90 */
- 0xD55C, 0xD55D, 0xD55E, 0xD55F, 0xD560, 0xD561, 0xD562, 0xD563, /* 0xA0 */
- 0xD564, 0xD565, 0xD566, 0xD567, 0xD568, 0xD569, 0xD56A, 0xD56B, /* 0xA0 */
- 0xD56C, 0xD56D, 0xD56E, 0xD56F, 0xD570, 0xD571, 0xD572, 0xD573, /* 0xB0 */
- 0xD574, 0xD575, 0xD576, 0xD577, 0xD578, 0xD579, 0xD57A, 0xD57B, /* 0xB0 */
- 0xD57C, 0xD57D, 0xD57E, 0xD580, 0xD581, 0xD582, 0xD583, 0xD584, /* 0xC0 */
- 0xD585, 0xD586, 0xD587, 0xD588, 0xD589, 0xD58A, 0xD58B, 0xD58C, /* 0xC0 */
- 0xD58D, 0xD58E, 0xD58F, 0xD590, 0xD591, 0xD592, 0xD593, 0xD594, /* 0xD0 */
- 0xD595, 0xD596, 0xD597, 0xD598, 0xD599, 0xD59A, 0xD59B, 0xD59C, /* 0xD0 */
- 0xD59D, 0xD59E, 0xD59F, 0xD5A0, 0xD640, 0xD641, 0xD642, 0xD643, /* 0xE0 */
- 0xD644, 0xD645, 0xD646, 0xD647, 0xD648, 0xD649, 0xD64A, 0xD64B, /* 0xE0 */
- 0xD64C, 0xD64D, 0xD64E, 0xD64F, 0xD650, 0xD651, 0xD652, 0xD653, /* 0xF0 */
- 0xD654, 0xD655, 0xD656, 0xD657, 0xD658, 0xD659, 0xD65A, 0xD65B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_8B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD65C, 0xD65D, 0xD65E, 0xD65F, 0xD660, 0xD661, 0xD662, 0xE5C0, /* 0x00 */
- 0xD663, 0xD664, 0xD665, 0xD666, 0xD667, 0xD668, 0xD669, 0xD66A, /* 0x00 */
- 0xD66B, 0xD66C, 0xD66D, 0xD66E, 0xD66F, 0xD670, 0xD671, 0xD672, /* 0x10 */
- 0xD673, 0xD674, 0xD675, 0xD676, 0xD677, 0xD678, 0xD679, 0xD67A, /* 0x10 */
- 0xD67B, 0xD67C, 0xD67D, 0xD67E, 0xD680, 0xD681, 0xF6A5, 0xD682, /* 0x20 */
- 0xD683, 0xD684, 0xD685, 0xD686, 0xD687, 0xD688, 0xD689, 0xD68A, /* 0x20 */
- 0xD68B, 0xD68C, 0xD68D, 0xD68E, 0xD68F, 0xD690, 0xD691, 0xD692, /* 0x30 */
- 0xD693, 0xD694, 0xD695, 0xD696, 0xD697, 0xD698, 0xD699, 0xD69A, /* 0x30 */
- 0xD69B, 0xD69C, 0xD69D, 0xD69E, 0xD69F, 0xD6A0, 0xD740, 0xD741, /* 0x40 */
- 0xD742, 0xD743, 0xD744, 0xD745, 0xD746, 0xD747, 0xD748, 0xD749, /* 0x40 */
- 0xD74A, 0xD74B, 0xD74C, 0xD74D, 0xD74E, 0xD74F, 0xD750, 0xD751, /* 0x50 */
- 0xD752, 0xD753, 0xD754, 0xD755, 0xD756, 0xD757, 0xD758, 0xD759, /* 0x50 */
- 0xD75A, 0xD75B, 0xD75C, 0xD75D, 0xD75E, 0xD75F, 0xBEAF, 0xD760, /* 0x60 */
- 0xD761, 0xD762, 0xD763, 0xD764, 0xC6A9, 0xD765, 0xD766, 0xD767, /* 0x60 */
- 0xD768, 0xD769, 0xD76A, 0xD76B, 0xD76C, 0xD76D, 0xD76E, 0xD76F, /* 0x70 */
- 0xD770, 0xD771, 0xD772, 0xD773, 0xD774, 0xD775, 0xD776, 0xD777, /* 0x70 */
- 0xD778, 0xD779, 0xD77A, 0xD77B, 0xD77C, 0xD77D, 0xD77E, 0xD780, /* 0x80 */
- 0xD781, 0xD782, 0xD783, 0xD784, 0xD785, 0xD786, 0xD787, 0xD788, /* 0x80 */
- 0xD789, 0xD78A, 0xD78B, 0xD78C, 0xD78D, 0xD78E, 0xD78F, 0xD790, /* 0x90 */
- 0xD791, 0xD792, 0xD793, 0xD794, 0xD795, 0xD796, 0xD797, 0xD798, /* 0x90 */
- 0xDAA5, 0xBCC6, 0xB6A9, 0xB8BC, 0xC8CF, 0xBCA5, 0xDAA6, 0xDAA7, /* 0xA0 */
- 0xCCD6, 0xC8C3, 0xDAA8, 0xC6FD, 0xD799, 0xD1B5, 0xD2E9, 0xD1B6, /* 0xA0 */
- 0xBCC7, 0xD79A, 0xBDB2, 0xBBE4, 0xDAA9, 0xDAAA, 0xD1C8, 0xDAAB, /* 0xB0 */
- 0xD0ED, 0xB6EF, 0xC2DB, 0xD79B, 0xCBCF, 0xB7ED, 0xC9E8, 0xB7C3, /* 0xB0 */
- 0xBEF7, 0xD6A4, 0xDAAC, 0xDAAD, 0xC6C0, 0xD7E7, 0xCAB6, 0xD79C, /* 0xC0 */
- 0xD5A9, 0xCBDF, 0xD5EF, 0xDAAE, 0xD6DF, 0xB4CA, 0xDAB0, 0xDAAF, /* 0xC0 */
- 0xD79D, 0xD2EB, 0xDAB1, 0xDAB2, 0xDAB3, 0xCAD4, 0xDAB4, 0xCAAB, /* 0xD0 */
- 0xDAB5, 0xDAB6, 0xB3CF, 0xD6EF, 0xDAB7, 0xBBB0, 0xB5AE, 0xDAB8, /* 0xD0 */
- 0xDAB9, 0xB9EE, 0xD1AF, 0xD2E8, 0xDABA, 0xB8C3, 0xCFEA, 0xB2EF, /* 0xE0 */
- 0xDABB, 0xDABC, 0xD79E, 0xBDEB, 0xCEDC, 0xD3EF, 0xDABD, 0xCEF3, /* 0xE0 */
- 0xDABE, 0xD3D5, 0xBBE5, 0xDABF, 0xCBB5, 0xCBD0, 0xDAC0, 0xC7EB, /* 0xF0 */
- 0xD6EE, 0xDAC1, 0xC5B5, 0xB6C1, 0xDAC2, 0xB7CC, 0xBFCE, 0xDAC3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_8C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDAC4, 0xCBAD, 0xDAC5, 0xB5F7, 0xDAC6, 0xC1C2, 0xD7BB, 0xDAC7, /* 0x00 */
- 0xCCB8, 0xD79F, 0xD2EA, 0xC4B1, 0xDAC8, 0xB5FD, 0xBBD1, 0xDAC9, /* 0x00 */
- 0xD0B3, 0xDACA, 0xDACB, 0xCEBD, 0xDACC, 0xDACD, 0xDACE, 0xB2F7, /* 0x10 */
- 0xDAD1, 0xDACF, 0xD1E8, 0xDAD0, 0xC3D5, 0xDAD2, 0xD7A0, 0xDAD3, /* 0x10 */
- 0xDAD4, 0xDAD5, 0xD0BB, 0xD2A5, 0xB0F9, 0xDAD6, 0xC7AB, 0xDAD7, /* 0x20 */
- 0xBDF7, 0xC3A1, 0xDAD8, 0xDAD9, 0xC3FD, 0xCCB7, 0xDADA, 0xDADB, /* 0x20 */
- 0xC0BE, 0xC6D7, 0xDADC, 0xDADD, 0xC7B4, 0xDADE, 0xDADF, 0xB9C8, /* 0x30 */
- 0xD840, 0xD841, 0xD842, 0xD843, 0xD844, 0xD845, 0xD846, 0xD847, /* 0x30 */
- 0xD848, 0xBBED, 0xD849, 0xD84A, 0xD84B, 0xD84C, 0xB6B9, 0xF4F8, /* 0x40 */
- 0xD84D, 0xF4F9, 0xD84E, 0xD84F, 0xCDE3, 0xD850, 0xD851, 0xD852, /* 0x40 */
- 0xD853, 0xD854, 0xD855, 0xD856, 0xD857, 0xF5B9, 0xD858, 0xD859, /* 0x50 */
- 0xD85A, 0xD85B, 0xEBE0, 0xD85C, 0xD85D, 0xD85E, 0xD85F, 0xD860, /* 0x50 */
- 0xD861, 0xCFF3, 0xBBBF, 0xD862, 0xD863, 0xD864, 0xD865, 0xD866, /* 0x60 */
- 0xD867, 0xD868, 0xBAC0, 0xD4A5, 0xD869, 0xD86A, 0xD86B, 0xD86C, /* 0x60 */
- 0xD86D, 0xD86E, 0xD86F, 0xE1D9, 0xD870, 0xD871, 0xD872, 0xD873, /* 0x70 */
- 0xF5F4, 0xB1AA, 0xB2F2, 0xD874, 0xD875, 0xD876, 0xD877, 0xD878, /* 0x70 */
- 0xD879, 0xD87A, 0xF5F5, 0xD87B, 0xD87C, 0xF5F7, 0xD87D, 0xD87E, /* 0x80 */
- 0xD880, 0xBAD1, 0xF5F6, 0xD881, 0xC3B2, 0xD882, 0xD883, 0xD884, /* 0x80 */
- 0xD885, 0xD886, 0xD887, 0xD888, 0xF5F9, 0xD889, 0xD88A, 0xD88B, /* 0x90 */
- 0xF5F8, 0xD88C, 0xD88D, 0xD88E, 0xD88F, 0xD890, 0xD891, 0xD892, /* 0x90 */
- 0xD893, 0xD894, 0xD895, 0xD896, 0xD897, 0xD898, 0xD899, 0xD89A, /* 0xA0 */
- 0xD89B, 0xD89C, 0xD89D, 0xD89E, 0xD89F, 0xD8A0, 0xD940, 0xD941, /* 0xA0 */
- 0xD942, 0xD943, 0xD944, 0xD945, 0xD946, 0xD947, 0xD948, 0xD949, /* 0xB0 */
- 0xD94A, 0xD94B, 0xD94C, 0xD94D, 0xD94E, 0xD94F, 0xD950, 0xD951, /* 0xB0 */
- 0xD952, 0xD953, 0xD954, 0xD955, 0xD956, 0xD957, 0xD958, 0xD959, /* 0xC0 */
- 0xD95A, 0xD95B, 0xD95C, 0xD95D, 0xD95E, 0xD95F, 0xD960, 0xD961, /* 0xC0 */
- 0xD962, 0xD963, 0xD964, 0xD965, 0xD966, 0xD967, 0xD968, 0xD969, /* 0xD0 */
- 0xD96A, 0xD96B, 0xD96C, 0xD96D, 0xD96E, 0xD96F, 0xD970, 0xD971, /* 0xD0 */
- 0xD972, 0xD973, 0xD974, 0xD975, 0xD976, 0xD977, 0xD978, 0xD979, /* 0xE0 */
- 0xD97A, 0xD97B, 0xD97C, 0xD97D, 0xD97E, 0xD980, 0xD981, 0xD982, /* 0xE0 */
- 0xD983, 0xD984, 0xD985, 0xD986, 0xD987, 0xD988, 0xD989, 0xD98A, /* 0xF0 */
- 0xD98B, 0xD98C, 0xD98D, 0xD98E, 0xD98F, 0xD990, 0xD991, 0xD992 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_8D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD993, 0xD994, 0xD995, 0xD996, 0xD997, 0xD998, 0xD999, 0xD99A, /* 0x00 */
- 0xD99B, 0xD99C, 0xD99D, 0xD99E, 0xD99F, 0xD9A0, 0xDA40, 0xDA41, /* 0x00 */
- 0xDA42, 0xDA43, 0xDA44, 0xDA45, 0xDA46, 0xDA47, 0xDA48, 0xDA49, /* 0x10 */
- 0xDA4A, 0xDA4B, 0xDA4C, 0xDA4D, 0xDA4E, 0xB1B4, 0xD5EA, 0xB8BA, /* 0x10 */
- 0xDA4F, 0xB9B1, 0xB2C6, 0xD4F0, 0xCFCD, 0xB0DC, 0xD5CB, 0xBBF5, /* 0x20 */
- 0xD6CA, 0xB7B7, 0xCCB0, 0xC6B6, 0xB1E1, 0xB9BA, 0xD6FC, 0xB9E1, /* 0x20 */
- 0xB7A1, 0xBCFA, 0xEADA, 0xEADB, 0xCCF9, 0xB9F3, 0xEADC, 0xB4FB, /* 0x30 */
- 0xC3B3, 0xB7D1, 0xBAD8, 0xEADD, 0xD4F4, 0xEADE, 0xBCD6, 0xBBDF, /* 0x30 */
- 0xEADF, 0xC1DE, 0xC2B8, 0xD4DF, 0xD7CA, 0xEAE0, 0xEAE1, 0xEAE4, /* 0x40 */
- 0xEAE2, 0xEAE3, 0xC9DE, 0xB8B3, 0xB6C4, 0xEAE5, 0xCAEA, 0xC9CD, /* 0x40 */
- 0xB4CD, 0xDA50, 0xDA51, 0xE2D9, 0xC5E2, 0xEAE6, 0xC0B5, 0xDA52, /* 0x50 */
- 0xD7B8, 0xEAE7, 0xD7AC, 0xC8FC, 0xD8D3, 0xD8CD, 0xD4DE, 0xDA53, /* 0x50 */
- 0xD4F9, 0xC9C4, 0xD3AE, 0xB8D3, 0xB3E0, 0xDA54, 0xC9E2, 0xF4F6, /* 0x60 */
- 0xDA55, 0xDA56, 0xDA57, 0xBAD5, 0xDA58, 0xF4F7, 0xDA59, 0xDA5A, /* 0x60 */
- 0xD7DF, 0xDA5B, 0xDA5C, 0xF4F1, 0xB8B0, 0xD5D4, 0xB8CF, 0xC6F0, /* 0x70 */
- 0xDA5D, 0xDA5E, 0xDA5F, 0xDA60, 0xDA61, 0xDA62, 0xDA63, 0xDA64, /* 0x70 */
- 0xDA65, 0xB3C3, 0xDA66, 0xDA67, 0xF4F2, 0xB3AC, 0xDA68, 0xDA69, /* 0x80 */
- 0xDA6A, 0xDA6B, 0xD4BD, 0xC7F7, 0xDA6C, 0xDA6D, 0xDA6E, 0xDA6F, /* 0x80 */
- 0xDA70, 0xF4F4, 0xDA71, 0xDA72, 0xF4F3, 0xDA73, 0xDA74, 0xDA75, /* 0x90 */
- 0xDA76, 0xDA77, 0xDA78, 0xDA79, 0xDA7A, 0xDA7B, 0xDA7C, 0xCCCB, /* 0x90 */
- 0xDA7D, 0xDA7E, 0xDA80, 0xC8A4, 0xDA81, 0xDA82, 0xDA83, 0xDA84, /* 0xA0 */
- 0xDA85, 0xDA86, 0xDA87, 0xDA88, 0xDA89, 0xDA8A, 0xDA8B, 0xDA8C, /* 0xA0 */
- 0xDA8D, 0xF4F5, 0xDA8E, 0xD7E3, 0xC5BF, 0xF5C0, 0xDA8F, 0xDA90, /* 0xB0 */
- 0xF5BB, 0xDA91, 0xF5C3, 0xDA92, 0xF5C2, 0xDA93, 0xD6BA, 0xF5C1, /* 0xB0 */
- 0xDA94, 0xDA95, 0xDA96, 0xD4BE, 0xF5C4, 0xDA97, 0xF5CC, 0xDA98, /* 0xC0 */
- 0xDA99, 0xDA9A, 0xDA9B, 0xB0CF, 0xB5F8, 0xDA9C, 0xF5C9, 0xF5CA, /* 0xC0 */
- 0xDA9D, 0xC5DC, 0xDA9E, 0xDA9F, 0xDAA0, 0xDB40, 0xF5C5, 0xF5C6, /* 0xD0 */
- 0xDB41, 0xDB42, 0xF5C7, 0xF5CB, 0xDB43, 0xBEE0, 0xF5C8, 0xB8FA, /* 0xD0 */
- 0xDB44, 0xDB45, 0xDB46, 0xF5D0, 0xF5D3, 0xDB47, 0xDB48, 0xDB49, /* 0xE0 */
- 0xBFE7, 0xDB4A, 0xB9F2, 0xF5BC, 0xF5CD, 0xDB4B, 0xDB4C, 0xC2B7, /* 0xE0 */
- 0xDB4D, 0xDB4E, 0xDB4F, 0xCCF8, 0xDB50, 0xBCF9, 0xDB51, 0xF5CE, /* 0xF0 */
- 0xF5CF, 0xF5D1, 0xB6E5, 0xF5D2, 0xDB52, 0xF5D5, 0xDB53, 0xDB54 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_8E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDB55, 0xDB56, 0xDB57, 0xDB58, 0xDB59, 0xF5BD, 0xDB5A, 0xDB5B, /* 0x00 */
- 0xDB5C, 0xF5D4, 0xD3BB, 0xDB5D, 0xB3EC, 0xDB5E, 0xDB5F, 0xCCA4, /* 0x00 */
- 0xDB60, 0xDB61, 0xDB62, 0xDB63, 0xF5D6, 0xDB64, 0xDB65, 0xDB66, /* 0x10 */
- 0xDB67, 0xDB68, 0xDB69, 0xDB6A, 0xDB6B, 0xF5D7, 0xBEE1, 0xF5D8, /* 0x10 */
- 0xDB6C, 0xDB6D, 0xCCDF, 0xF5DB, 0xDB6E, 0xDB6F, 0xDB70, 0xDB71, /* 0x20 */
- 0xDB72, 0xB2C8, 0xD7D9, 0xDB73, 0xF5D9, 0xDB74, 0xF5DA, 0xF5DC, /* 0x20 */
- 0xDB75, 0xF5E2, 0xDB76, 0xDB77, 0xDB78, 0xF5E0, 0xDB79, 0xDB7A, /* 0x30 */
- 0xDB7B, 0xF5DF, 0xF5DD, 0xDB7C, 0xDB7D, 0xF5E1, 0xDB7E, 0xDB80, /* 0x30 */
- 0xF5DE, 0xF5E4, 0xF5E5, 0xDB81, 0xCCE3, 0xDB82, 0xDB83, 0xE5BF, /* 0x40 */
- 0xB5B8, 0xF5E3, 0xF5E8, 0xCCA3, 0xDB84, 0xDB85, 0xDB86, 0xDB87, /* 0x40 */
- 0xDB88, 0xF5E6, 0xF5E7, 0xDB89, 0xDB8A, 0xDB8B, 0xDB8C, 0xDB8D, /* 0x50 */
- 0xDB8E, 0xF5BE, 0xDB8F, 0xDB90, 0xDB91, 0xDB92, 0xDB93, 0xDB94, /* 0x50 */
- 0xDB95, 0xDB96, 0xDB97, 0xDB98, 0xDB99, 0xDB9A, 0xB1C4, 0xDB9B, /* 0x60 */
- 0xDB9C, 0xF5BF, 0xDB9D, 0xDB9E, 0xB5C5, 0xB2E4, 0xDB9F, 0xF5EC, /* 0x60 */
- 0xF5E9, 0xDBA0, 0xB6D7, 0xDC40, 0xF5ED, 0xDC41, 0xF5EA, 0xDC42, /* 0x70 */
- 0xDC43, 0xDC44, 0xDC45, 0xDC46, 0xF5EB, 0xDC47, 0xDC48, 0xB4DA, /* 0x70 */
- 0xDC49, 0xD4EA, 0xDC4A, 0xDC4B, 0xDC4C, 0xF5EE, 0xDC4D, 0xB3F9, /* 0x80 */
- 0xDC4E, 0xDC4F, 0xDC50, 0xDC51, 0xDC52, 0xDC53, 0xDC54, 0xF5EF, /* 0x80 */
- 0xF5F1, 0xDC55, 0xDC56, 0xDC57, 0xF5F0, 0xDC58, 0xDC59, 0xDC5A, /* 0x90 */
- 0xDC5B, 0xDC5C, 0xDC5D, 0xDC5E, 0xF5F2, 0xDC5F, 0xF5F3, 0xDC60, /* 0x90 */
- 0xDC61, 0xDC62, 0xDC63, 0xDC64, 0xDC65, 0xDC66, 0xDC67, 0xDC68, /* 0xA0 */
- 0xDC69, 0xDC6A, 0xDC6B, 0xC9ED, 0xB9AA, 0xDC6C, 0xDC6D, 0xC7FB, /* 0xA0 */
- 0xDC6E, 0xDC6F, 0xB6E3, 0xDC70, 0xDC71, 0xDC72, 0xDC73, 0xDC74, /* 0xB0 */
- 0xDC75, 0xDC76, 0xCCC9, 0xDC77, 0xDC78, 0xDC79, 0xDC7A, 0xDC7B, /* 0xB0 */
- 0xDC7C, 0xDC7D, 0xDC7E, 0xDC80, 0xDC81, 0xDC82, 0xDC83, 0xDC84, /* 0xC0 */
- 0xDC85, 0xDC86, 0xDC87, 0xDC88, 0xDC89, 0xDC8A, 0xEAA6, 0xDC8B, /* 0xC0 */
- 0xDC8C, 0xDC8D, 0xDC8E, 0xDC8F, 0xDC90, 0xDC91, 0xDC92, 0xDC93, /* 0xD0 */
- 0xDC94, 0xDC95, 0xDC96, 0xDC97, 0xDC98, 0xDC99, 0xDC9A, 0xDC9B, /* 0xD0 */
- 0xDC9C, 0xDC9D, 0xDC9E, 0xDC9F, 0xDCA0, 0xDD40, 0xDD41, 0xDD42, /* 0xE0 */
- 0xDD43, 0xDD44, 0xDD45, 0xDD46, 0xDD47, 0xDD48, 0xDD49, 0xDD4A, /* 0xE0 */
- 0xDD4B, 0xDD4C, 0xDD4D, 0xDD4E, 0xDD4F, 0xDD50, 0xDD51, 0xDD52, /* 0xF0 */
- 0xDD53, 0xDD54, 0xDD55, 0xDD56, 0xDD57, 0xDD58, 0xDD59, 0xDD5A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_8F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDD5B, 0xDD5C, 0xDD5D, 0xDD5E, 0xDD5F, 0xDD60, 0xDD61, 0xDD62, /* 0x00 */
- 0xDD63, 0xDD64, 0xDD65, 0xDD66, 0xDD67, 0xDD68, 0xDD69, 0xDD6A, /* 0x00 */
- 0xDD6B, 0xDD6C, 0xDD6D, 0xDD6E, 0xDD6F, 0xDD70, 0xDD71, 0xDD72, /* 0x10 */
- 0xDD73, 0xDD74, 0xDD75, 0xDD76, 0xDD77, 0xDD78, 0xDD79, 0xDD7A, /* 0x10 */
- 0xDD7B, 0xDD7C, 0xDD7D, 0xDD7E, 0xDD80, 0xDD81, 0xDD82, 0xDD83, /* 0x20 */
- 0xDD84, 0xDD85, 0xDD86, 0xDD87, 0xDD88, 0xDD89, 0xDD8A, 0xDD8B, /* 0x20 */
- 0xDD8C, 0xDD8D, 0xDD8E, 0xDD8F, 0xDD90, 0xDD91, 0xDD92, 0xDD93, /* 0x30 */
- 0xDD94, 0xDD95, 0xDD96, 0xDD97, 0xDD98, 0xDD99, 0xDD9A, 0xDD9B, /* 0x30 */
- 0xDD9C, 0xDD9D, 0xDD9E, 0xDD9F, 0xDDA0, 0xDE40, 0xDE41, 0xDE42, /* 0x40 */
- 0xDE43, 0xDE44, 0xDE45, 0xDE46, 0xDE47, 0xDE48, 0xDE49, 0xDE4A, /* 0x40 */
- 0xDE4B, 0xDE4C, 0xDE4D, 0xDE4E, 0xDE4F, 0xDE50, 0xDE51, 0xDE52, /* 0x50 */
- 0xDE53, 0xDE54, 0xDE55, 0xDE56, 0xDE57, 0xDE58, 0xDE59, 0xDE5A, /* 0x50 */
- 0xDE5B, 0xDE5C, 0xDE5D, 0xDE5E, 0xDE5F, 0xDE60, 0xB3B5, 0xD4FE, /* 0x60 */
- 0xB9EC, 0xD0F9, 0xDE61, 0xE9ED, 0xD7AA, 0xE9EE, 0xC2D6, 0xC8ED, /* 0x60 */
- 0xBAE4, 0xE9EF, 0xE9F0, 0xE9F1, 0xD6E1, 0xE9F2, 0xE9F3, 0xE9F5, /* 0x70 */
- 0xE9F4, 0xE9F6, 0xE9F7, 0xC7E1, 0xE9F8, 0xD4D8, 0xE9F9, 0xBDCE, /* 0x70 */
- 0xDE62, 0xE9FA, 0xE9FB, 0xBDCF, 0xE9FC, 0xB8A8, 0xC1BE, 0xE9FD, /* 0x80 */
- 0xB1B2, 0xBBD4, 0xB9F5, 0xE9FE, 0xDE63, 0xEAA1, 0xEAA2, 0xEAA3, /* 0x80 */
- 0xB7F8, 0xBCAD, 0xDE64, 0xCAE4, 0xE0CE, 0xD4AF, 0xCFBD, 0xD5B7, /* 0x90 */
- 0xEAA4, 0xD5DE, 0xEAA5, 0xD0C1, 0xB9BC, 0xDE65, 0xB4C7, 0xB1D9, /* 0x90 */
- 0xDE66, 0xDE67, 0xDE68, 0xC0B1, 0xDE69, 0xDE6A, 0xDE6B, 0xDE6C, /* 0xA0 */
- 0xB1E6, 0xB1E7, 0xDE6D, 0xB1E8, 0xDE6E, 0xDE6F, 0xDE70, 0xDE71, /* 0xA0 */
- 0xB3BD, 0xC8E8, 0xDE72, 0xDE73, 0xDE74, 0xDE75, 0xE5C1, 0xDE76, /* 0xB0 */
- 0xDE77, 0xB1DF, 0xDE78, 0xDE79, 0xDE7A, 0xC1C9, 0xB4EF, 0xDE7B, /* 0xB0 */
- 0xDE7C, 0xC7A8, 0xD3D8, 0xDE7D, 0xC6F9, 0xD1B8, 0xDE7E, 0xB9FD, /* 0xC0 */
- 0xC2F5, 0xDE80, 0xDE81, 0xDE82, 0xDE83, 0xDE84, 0xD3AD, 0xDE85, /* 0xC0 */
- 0xD4CB, 0xBDFC, 0xDE86, 0xE5C2, 0xB7B5, 0xE5C3, 0xDE87, 0xDE88, /* 0xD0 */
- 0xBBB9, 0xD5E2, 0xDE89, 0xBDF8, 0xD4B6, 0xCEA5, 0xC1AC, 0xB3D9, /* 0xD0 */
- 0xDE8A, 0xDE8B, 0xCCF6, 0xDE8C, 0xE5C6, 0xE5C4, 0xE5C8, 0xDE8D, /* 0xE0 */
- 0xE5CA, 0xE5C7, 0xB5CF, 0xC6C8, 0xDE8E, 0xB5FC, 0xE5C5, 0xDE8F, /* 0xE0 */
- 0xCAF6, 0xDE90, 0xDE91, 0xE5C9, 0xDE92, 0xDE93, 0xDE94, 0xC3D4, /* 0xF0 */
- 0xB1C5, 0xBCA3, 0xDE95, 0xDE96, 0xDE97, 0xD7B7, 0xDE98, 0xDE99 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_90[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCDCB, 0xCBCD, 0xCACA, 0xCCD3, 0xE5CC, 0xE5CB, 0xC4E6, 0xDE9A, /* 0x00 */
- 0xDE9B, 0xD1A1, 0xD1B7, 0xE5CD, 0xDE9C, 0xE5D0, 0xDE9D, 0xCDB8, /* 0x00 */
- 0xD6F0, 0xE5CF, 0xB5DD, 0xDE9E, 0xCDBE, 0xDE9F, 0xE5D1, 0xB6BA, /* 0x10 */
- 0xDEA0, 0xDF40, 0xCDA8, 0xB9E4, 0xDF41, 0xCAC5, 0xB3D1, 0xCBD9, /* 0x10 */
- 0xD4EC, 0xE5D2, 0xB7EA, 0xDF42, 0xDF43, 0xDF44, 0xE5CE, 0xDF45, /* 0x20 */
- 0xDF46, 0xDF47, 0xDF48, 0xDF49, 0xDF4A, 0xE5D5, 0xB4FE, 0xE5D6, /* 0x20 */
- 0xDF4B, 0xDF4C, 0xDF4D, 0xDF4E, 0xDF4F, 0xE5D3, 0xE5D4, 0xDF50, /* 0x30 */
- 0xD2DD, 0xDF51, 0xDF52, 0xC2DF, 0xB1C6, 0xDF53, 0xD3E2, 0xDF54, /* 0x30 */
- 0xDF55, 0xB6DD, 0xCBEC, 0xDF56, 0xE5D7, 0xDF57, 0xDF58, 0xD3F6, /* 0x40 */
- 0xDF59, 0xDF5A, 0xDF5B, 0xDF5C, 0xDF5D, 0xB1E9, 0xDF5E, 0xB6F4, /* 0x40 */
- 0xE5DA, 0xE5D8, 0xE5D9, 0xB5C0, 0xDF5F, 0xDF60, 0xDF61, 0xD2C5, /* 0x50 */
- 0xE5DC, 0xDF62, 0xDF63, 0xE5DE, 0xDF64, 0xDF65, 0xDF66, 0xDF67, /* 0x50 */
- 0xDF68, 0xDF69, 0xE5DD, 0xC7B2, 0xDF6A, 0xD2A3, 0xDF6B, 0xDF6C, /* 0x60 */
- 0xE5DB, 0xDF6D, 0xDF6E, 0xDF6F, 0xDF70, 0xD4E2, 0xD5DA, 0xDF71, /* 0x60 */
- 0xDF72, 0xDF73, 0xDF74, 0xDF75, 0xE5E0, 0xD7F1, 0xDF76, 0xDF77, /* 0x70 */
- 0xDF78, 0xDF79, 0xDF7A, 0xDF7B, 0xDF7C, 0xE5E1, 0xDF7D, 0xB1DC, /* 0x70 */
- 0xD1FB, 0xDF7E, 0xE5E2, 0xE5E4, 0xDF80, 0xDF81, 0xDF82, 0xDF83, /* 0x80 */
- 0xE5E3, 0xDF84, 0xDF85, 0xE5E5, 0xDF86, 0xDF87, 0xDF88, 0xDF89, /* 0x80 */
- 0xDF8A, 0xD2D8, 0xDF8B, 0xB5CB, 0xDF8C, 0xE7DF, 0xDF8D, 0xDAF5, /* 0x90 */
- 0xDF8E, 0xDAF8, 0xDF8F, 0xDAF6, 0xDF90, 0xDAF7, 0xDF91, 0xDF92, /* 0x90 */
- 0xDF93, 0xDAFA, 0xD0CF, 0xC4C7, 0xDF94, 0xDF95, 0xB0EE, 0xDF96, /* 0xA0 */
- 0xDF97, 0xDF98, 0xD0B0, 0xDF99, 0xDAF9, 0xDF9A, 0xD3CA, 0xBAAA, /* 0xA0 */
- 0xDBA2, 0xC7F1, 0xDF9B, 0xDAFC, 0xDAFB, 0xC9DB, 0xDAFD, 0xDF9C, /* 0xB0 */
- 0xDBA1, 0xD7DE, 0xDAFE, 0xC1DA, 0xDF9D, 0xDF9E, 0xDBA5, 0xDF9F, /* 0xB0 */
- 0xDFA0, 0xD3F4, 0xE040, 0xE041, 0xDBA7, 0xDBA4, 0xE042, 0xDBA8, /* 0xC0 */
- 0xE043, 0xE044, 0xBDBC, 0xE045, 0xE046, 0xE047, 0xC0C9, 0xDBA3, /* 0xC0 */
- 0xDBA6, 0xD6A3, 0xE048, 0xDBA9, 0xE049, 0xE04A, 0xE04B, 0xDBAD, /* 0xD0 */
- 0xE04C, 0xE04D, 0xE04E, 0xDBAE, 0xDBAC, 0xBAC2, 0xE04F, 0xE050, /* 0xD0 */
- 0xE051, 0xBFA4, 0xDBAB, 0xE052, 0xE053, 0xE054, 0xDBAA, 0xD4C7, /* 0xE0 */
- 0xB2BF, 0xE055, 0xE056, 0xDBAF, 0xE057, 0xB9F9, 0xE058, 0xDBB0, /* 0xE0 */
- 0xE059, 0xE05A, 0xE05B, 0xE05C, 0xB3BB, 0xE05D, 0xE05E, 0xE05F, /* 0xF0 */
- 0xB5A6, 0xE060, 0xE061, 0xE062, 0xE063, 0xB6BC, 0xDBB1, 0xE064 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_91[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE065, 0xE066, 0xB6F5, 0xE067, 0xDBB2, 0xE068, 0xE069, 0xE06A, /* 0x00 */
- 0xE06B, 0xE06C, 0xE06D, 0xE06E, 0xE06F, 0xE070, 0xE071, 0xE072, /* 0x00 */
- 0xE073, 0xE074, 0xE075, 0xE076, 0xE077, 0xE078, 0xE079, 0xE07A, /* 0x10 */
- 0xE07B, 0xB1C9, 0xE07C, 0xE07D, 0xE07E, 0xE080, 0xDBB4, 0xE081, /* 0x10 */
- 0xE082, 0xE083, 0xDBB3, 0xDBB5, 0xE084, 0xE085, 0xE086, 0xE087, /* 0x20 */
- 0xE088, 0xE089, 0xE08A, 0xE08B, 0xE08C, 0xE08D, 0xE08E, 0xDBB7, /* 0x20 */
- 0xE08F, 0xDBB6, 0xE090, 0xE091, 0xE092, 0xE093, 0xE094, 0xE095, /* 0x30 */
- 0xE096, 0xDBB8, 0xE097, 0xE098, 0xE099, 0xE09A, 0xE09B, 0xE09C, /* 0x30 */
- 0xE09D, 0xE09E, 0xE09F, 0xDBB9, 0xE0A0, 0xE140, 0xDBBA, 0xE141, /* 0x40 */
- 0xE142, 0xD3CF, 0xF4FA, 0xC7F5, 0xD7C3, 0xC5E4, 0xF4FC, 0xF4FD, /* 0x40 */
- 0xF4FB, 0xE143, 0xBEC6, 0xE144, 0xE145, 0xE146, 0xE147, 0xD0EF, /* 0x50 */
- 0xE148, 0xE149, 0xB7D3, 0xE14A, 0xE14B, 0xD4CD, 0xCCAA, 0xE14C, /* 0x50 */
- 0xE14D, 0xF5A2, 0xF5A1, 0xBAA8, 0xF4FE, 0xCBD6, 0xE14E, 0xE14F, /* 0x60 */
- 0xE150, 0xF5A4, 0xC0D2, 0xE151, 0xB3EA, 0xE152, 0xCDAA, 0xF5A5, /* 0x60 */
- 0xF5A3, 0xBDB4, 0xF5A8, 0xE153, 0xF5A9, 0xBDCD, 0xC3B8, 0xBFE1, /* 0x70 */
- 0xCBE1, 0xF5AA, 0xE154, 0xE155, 0xE156, 0xF5A6, 0xF5A7, 0xC4F0, /* 0x70 */
- 0xE157, 0xE158, 0xE159, 0xE15A, 0xE15B, 0xF5AC, 0xE15C, 0xB4BC, /* 0x80 */
- 0xE15D, 0xD7ED, 0xE15E, 0xB4D7, 0xF5AB, 0xF5AE, 0xE15F, 0xE160, /* 0x80 */
- 0xF5AD, 0xF5AF, 0xD0D1, 0xE161, 0xE162, 0xE163, 0xE164, 0xE165, /* 0x90 */
- 0xE166, 0xE167, 0xC3D1, 0xC8A9, 0xE168, 0xE169, 0xE16A, 0xE16B, /* 0x90 */
- 0xE16C, 0xE16D, 0xF5B0, 0xF5B1, 0xE16E, 0xE16F, 0xE170, 0xE171, /* 0xA0 */
- 0xE172, 0xE173, 0xF5B2, 0xE174, 0xE175, 0xF5B3, 0xF5B4, 0xF5B5, /* 0xA0 */
- 0xE176, 0xE177, 0xE178, 0xE179, 0xF5B7, 0xF5B6, 0xE17A, 0xE17B, /* 0xB0 */
- 0xE17C, 0xE17D, 0xF5B8, 0xE17E, 0xE180, 0xE181, 0xE182, 0xE183, /* 0xB0 */
- 0xE184, 0xE185, 0xE186, 0xE187, 0xE188, 0xE189, 0xE18A, 0xB2C9, /* 0xC0 */
- 0xE18B, 0xD3D4, 0xCACD, 0xE18C, 0xC0EF, 0xD6D8, 0xD2B0, 0xC1BF, /* 0xC0 */
- 0xE18D, 0xBDF0, 0xE18E, 0xE18F, 0xE190, 0xE191, 0xE192, 0xE193, /* 0xD0 */
- 0xE194, 0xE195, 0xE196, 0xE197, 0xB8AA, 0xE198, 0xE199, 0xE19A, /* 0xD0 */
- 0xE19B, 0xE19C, 0xE19D, 0xE19E, 0xE19F, 0xE1A0, 0xE240, 0xE241, /* 0xE0 */
- 0xE242, 0xE243, 0xE244, 0xE245, 0xE246, 0xE247, 0xE248, 0xE249, /* 0xE0 */
- 0xE24A, 0xE24B, 0xE24C, 0xE24D, 0xE24E, 0xE24F, 0xE250, 0xE251, /* 0xF0 */
- 0xE252, 0xE253, 0xE254, 0xE255, 0xE256, 0xE257, 0xE258, 0xE259 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_92[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE25A, 0xE25B, 0xE25C, 0xE25D, 0xE25E, 0xE25F, 0xE260, 0xE261, /* 0x00 */
- 0xE262, 0xE263, 0xE264, 0xE265, 0xE266, 0xE267, 0xE268, 0xE269, /* 0x00 */
- 0xE26A, 0xE26B, 0xE26C, 0xE26D, 0xE26E, 0xE26F, 0xE270, 0xE271, /* 0x10 */
- 0xE272, 0xE273, 0xE274, 0xE275, 0xE276, 0xE277, 0xE278, 0xE279, /* 0x10 */
- 0xE27A, 0xE27B, 0xE27C, 0xE27D, 0xE27E, 0xE280, 0xE281, 0xE282, /* 0x20 */
- 0xE283, 0xE284, 0xE285, 0xE286, 0xE287, 0xE288, 0xE289, 0xE28A, /* 0x20 */
- 0xE28B, 0xE28C, 0xE28D, 0xE28E, 0xE28F, 0xE290, 0xE291, 0xE292, /* 0x30 */
- 0xE293, 0xE294, 0xE295, 0xE296, 0xE297, 0xE298, 0xE299, 0xE29A, /* 0x30 */
- 0xE29B, 0xE29C, 0xE29D, 0xE29E, 0xE29F, 0xE2A0, 0xE340, 0xE341, /* 0x40 */
- 0xE342, 0xE343, 0xE344, 0xE345, 0xE346, 0xE347, 0xE348, 0xE349, /* 0x40 */
- 0xE34A, 0xE34B, 0xE34C, 0xE34D, 0xE34E, 0xE34F, 0xE350, 0xE351, /* 0x50 */
- 0xE352, 0xE353, 0xE354, 0xE355, 0xE356, 0xE357, 0xE358, 0xE359, /* 0x50 */
- 0xE35A, 0xE35B, 0xE35C, 0xE35D, 0xE35E, 0xE35F, 0xE360, 0xE361, /* 0x60 */
- 0xE362, 0xE363, 0xE364, 0xE365, 0xE366, 0xE367, 0xE368, 0xE369, /* 0x60 */
- 0xE36A, 0xE36B, 0xE36C, 0xE36D, 0xBCF8, 0xE36E, 0xE36F, 0xE370, /* 0x70 */
- 0xE371, 0xE372, 0xE373, 0xE374, 0xE375, 0xE376, 0xE377, 0xE378, /* 0x70 */
- 0xE379, 0xE37A, 0xE37B, 0xE37C, 0xE37D, 0xE37E, 0xE380, 0xE381, /* 0x80 */
- 0xE382, 0xE383, 0xE384, 0xE385, 0xE386, 0xE387, 0xF6C6, 0xE388, /* 0x80 */
- 0xE389, 0xE38A, 0xE38B, 0xE38C, 0xE38D, 0xE38E, 0xE38F, 0xE390, /* 0x90 */
- 0xE391, 0xE392, 0xE393, 0xE394, 0xE395, 0xE396, 0xE397, 0xE398, /* 0x90 */
- 0xE399, 0xE39A, 0xE39B, 0xE39C, 0xE39D, 0xE39E, 0xE39F, 0xE3A0, /* 0xA0 */
- 0xE440, 0xE441, 0xE442, 0xE443, 0xE444, 0xE445, 0xF6C7, 0xE446, /* 0xA0 */
- 0xE447, 0xE448, 0xE449, 0xE44A, 0xE44B, 0xE44C, 0xE44D, 0xE44E, /* 0xB0 */
- 0xE44F, 0xE450, 0xE451, 0xE452, 0xE453, 0xE454, 0xE455, 0xE456, /* 0xB0 */
- 0xE457, 0xE458, 0xE459, 0xE45A, 0xE45B, 0xE45C, 0xE45D, 0xE45E, /* 0xC0 */
- 0xF6C8, 0xE45F, 0xE460, 0xE461, 0xE462, 0xE463, 0xE464, 0xE465, /* 0xC0 */
- 0xE466, 0xE467, 0xE468, 0xE469, 0xE46A, 0xE46B, 0xE46C, 0xE46D, /* 0xD0 */
- 0xE46E, 0xE46F, 0xE470, 0xE471, 0xE472, 0xE473, 0xE474, 0xE475, /* 0xD0 */
- 0xE476, 0xE477, 0xE478, 0xE479, 0xE47A, 0xE47B, 0xE47C, 0xE47D, /* 0xE0 */
- 0xE47E, 0xE480, 0xE481, 0xE482, 0xE483, 0xE484, 0xE485, 0xE486, /* 0xE0 */
- 0xE487, 0xE488, 0xE489, 0xE48A, 0xE48B, 0xE48C, 0xE48D, 0xE48E, /* 0xF0 */
- 0xE48F, 0xE490, 0xE491, 0xE492, 0xE493, 0xE494, 0xE495, 0xE496 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_93[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE497, 0xE498, 0xE499, 0xE49A, 0xE49B, 0xE49C, 0xE49D, 0xE49E, /* 0x00 */
- 0xE49F, 0xE4A0, 0xE540, 0xE541, 0xE542, 0xE543, 0xE544, 0xE545, /* 0x00 */
- 0xE546, 0xE547, 0xE548, 0xE549, 0xE54A, 0xE54B, 0xE54C, 0xE54D, /* 0x10 */
- 0xE54E, 0xE54F, 0xE550, 0xE551, 0xE552, 0xE553, 0xE554, 0xE555, /* 0x10 */
- 0xE556, 0xE557, 0xE558, 0xE559, 0xE55A, 0xE55B, 0xE55C, 0xE55D, /* 0x20 */
- 0xE55E, 0xE55F, 0xE560, 0xE561, 0xE562, 0xE563, 0xE564, 0xE565, /* 0x20 */
- 0xE566, 0xE567, 0xE568, 0xE569, 0xE56A, 0xE56B, 0xE56C, 0xE56D, /* 0x30 */
- 0xE56E, 0xE56F, 0xE570, 0xE571, 0xE572, 0xE573, 0xF6C9, 0xE574, /* 0x30 */
- 0xE575, 0xE576, 0xE577, 0xE578, 0xE579, 0xE57A, 0xE57B, 0xE57C, /* 0x40 */
- 0xE57D, 0xE57E, 0xE580, 0xE581, 0xE582, 0xE583, 0xE584, 0xE585, /* 0x40 */
- 0xE586, 0xE587, 0xE588, 0xE589, 0xE58A, 0xE58B, 0xE58C, 0xE58D, /* 0x50 */
- 0xE58E, 0xE58F, 0xE590, 0xE591, 0xE592, 0xE593, 0xE594, 0xE595, /* 0x50 */
- 0xE596, 0xE597, 0xE598, 0xE599, 0xE59A, 0xE59B, 0xE59C, 0xE59D, /* 0x60 */
- 0xE59E, 0xE59F, 0xF6CA, 0xE5A0, 0xE640, 0xE641, 0xE642, 0xE643, /* 0x60 */
- 0xE644, 0xE645, 0xE646, 0xE647, 0xE648, 0xE649, 0xE64A, 0xE64B, /* 0x70 */
- 0xE64C, 0xE64D, 0xE64E, 0xE64F, 0xE650, 0xE651, 0xE652, 0xE653, /* 0x70 */
- 0xE654, 0xE655, 0xE656, 0xE657, 0xE658, 0xE659, 0xE65A, 0xE65B, /* 0x80 */
- 0xE65C, 0xE65D, 0xE65E, 0xE65F, 0xE660, 0xE661, 0xE662, 0xF6CC, /* 0x80 */
- 0xE663, 0xE664, 0xE665, 0xE666, 0xE667, 0xE668, 0xE669, 0xE66A, /* 0x90 */
- 0xE66B, 0xE66C, 0xE66D, 0xE66E, 0xE66F, 0xE670, 0xE671, 0xE672, /* 0x90 */
- 0xE673, 0xE674, 0xE675, 0xE676, 0xE677, 0xE678, 0xE679, 0xE67A, /* 0xA0 */
- 0xE67B, 0xE67C, 0xE67D, 0xE67E, 0xE680, 0xE681, 0xE682, 0xE683, /* 0xA0 */
- 0xE684, 0xE685, 0xE686, 0xE687, 0xE688, 0xE689, 0xE68A, 0xE68B, /* 0xB0 */
- 0xE68C, 0xE68D, 0xE68E, 0xE68F, 0xE690, 0xE691, 0xE692, 0xE693, /* 0xB0 */
- 0xE694, 0xE695, 0xE696, 0xE697, 0xE698, 0xE699, 0xE69A, 0xE69B, /* 0xC0 */
- 0xE69C, 0xE69D, 0xF6CB, 0xE69E, 0xE69F, 0xE6A0, 0xE740, 0xE741, /* 0xC0 */
- 0xE742, 0xE743, 0xE744, 0xE745, 0xE746, 0xE747, 0xF7E9, 0xE748, /* 0xD0 */
- 0xE749, 0xE74A, 0xE74B, 0xE74C, 0xE74D, 0xE74E, 0xE74F, 0xE750, /* 0xD0 */
- 0xE751, 0xE752, 0xE753, 0xE754, 0xE755, 0xE756, 0xE757, 0xE758, /* 0xE0 */
- 0xE759, 0xE75A, 0xE75B, 0xE75C, 0xE75D, 0xE75E, 0xE75F, 0xE760, /* 0xE0 */
- 0xE761, 0xE762, 0xE763, 0xE764, 0xE765, 0xE766, 0xE767, 0xE768, /* 0xF0 */
- 0xE769, 0xE76A, 0xE76B, 0xE76C, 0xE76D, 0xE76E, 0xE76F, 0xE770 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_94[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE771, 0xE772, 0xE773, 0xE774, 0xE775, 0xE776, 0xE777, 0xE778, /* 0x00 */
- 0xE779, 0xE77A, 0xE77B, 0xE77C, 0xE77D, 0xE77E, 0xE780, 0xE781, /* 0x00 */
- 0xE782, 0xE783, 0xE784, 0xE785, 0xE786, 0xE787, 0xE788, 0xE789, /* 0x10 */
- 0xE78A, 0xE78B, 0xE78C, 0xE78D, 0xE78E, 0xE78F, 0xE790, 0xE791, /* 0x10 */
- 0xE792, 0xE793, 0xE794, 0xE795, 0xE796, 0xE797, 0xE798, 0xE799, /* 0x20 */
- 0xE79A, 0xE79B, 0xE79C, 0xE79D, 0xE79E, 0xE79F, 0xE7A0, 0xE840, /* 0x20 */
- 0xE841, 0xE842, 0xE843, 0xE844, 0xE845, 0xE846, 0xE847, 0xE848, /* 0x30 */
- 0xE849, 0xE84A, 0xE84B, 0xE84C, 0xE84D, 0xE84E, 0xF6CD, 0xE84F, /* 0x30 */
- 0xE850, 0xE851, 0xE852, 0xE853, 0xE854, 0xE855, 0xE856, 0xE857, /* 0x40 */
- 0xE858, 0xE859, 0xE85A, 0xE85B, 0xE85C, 0xE85D, 0xE85E, 0xE85F, /* 0x40 */
- 0xE860, 0xE861, 0xE862, 0xE863, 0xE864, 0xE865, 0xE866, 0xE867, /* 0x50 */
- 0xE868, 0xE869, 0xE86A, 0xE86B, 0xE86C, 0xE86D, 0xE86E, 0xE86F, /* 0x50 */
- 0xE870, 0xE871, 0xE872, 0xE873, 0xE874, 0xE875, 0xE876, 0xE877, /* 0x60 */
- 0xE878, 0xE879, 0xE87A, 0xF6CE, 0xE87B, 0xE87C, 0xE87D, 0xE87E, /* 0x60 */
- 0xE880, 0xE881, 0xE882, 0xE883, 0xE884, 0xE885, 0xE886, 0xE887, /* 0x70 */
- 0xE888, 0xE889, 0xE88A, 0xE88B, 0xE88C, 0xE88D, 0xE88E, 0xE88F, /* 0x70 */
- 0xE890, 0xE891, 0xE892, 0xE893, 0xE894, 0xEEC4, 0xEEC5, 0xEEC6, /* 0x80 */
- 0xD5EB, 0xB6A4, 0xEEC8, 0xEEC7, 0xEEC9, 0xEECA, 0xC7A5, 0xEECB, /* 0x80 */
- 0xEECC, 0xE895, 0xB7B0, 0xB5F6, 0xEECD, 0xEECF, 0xE896, 0xEECE, /* 0x90 */
- 0xE897, 0xB8C6, 0xEED0, 0xEED1, 0xEED2, 0xB6DB, 0xB3AE, 0xD6D3, /* 0x90 */
- 0xC4C6, 0xB1B5, 0xB8D6, 0xEED3, 0xEED4, 0xD4BF, 0xC7D5, 0xBEFB, /* 0xA0 */
- 0xCED9, 0xB9B3, 0xEED6, 0xEED5, 0xEED8, 0xEED7, 0xC5A5, 0xEED9, /* 0xA0 */
- 0xEEDA, 0xC7AE, 0xEEDB, 0xC7AF, 0xEEDC, 0xB2A7, 0xEEDD, 0xEEDE, /* 0xB0 */
- 0xEEDF, 0xEEE0, 0xEEE1, 0xD7EA, 0xEEE2, 0xEEE3, 0xBCD8, 0xEEE4, /* 0xB0 */
- 0xD3CB, 0xCCFA, 0xB2AC, 0xC1E5, 0xEEE5, 0xC7A6, 0xC3AD, 0xE898, /* 0xC0 */
- 0xEEE6, 0xEEE7, 0xEEE8, 0xEEE9, 0xEEEA, 0xEEEB, 0xEEEC, 0xE899, /* 0xC0 */
- 0xEEED, 0xEEEE, 0xEEEF, 0xE89A, 0xE89B, 0xEEF0, 0xEEF1, 0xEEF2, /* 0xD0 */
- 0xEEF4, 0xEEF3, 0xE89C, 0xEEF5, 0xCDAD, 0xC2C1, 0xEEF6, 0xEEF7, /* 0xD0 */
- 0xEEF8, 0xD5A1, 0xEEF9, 0xCFB3, 0xEEFA, 0xEEFB, 0xE89D, 0xEEFC, /* 0xE0 */
- 0xEEFD, 0xEFA1, 0xEEFE, 0xEFA2, 0xB8F5, 0xC3FA, 0xEFA3, 0xEFA4, /* 0xE0 */
- 0xBDC2, 0xD2BF, 0xB2F9, 0xEFA5, 0xEFA6, 0xEFA7, 0xD2F8, 0xEFA8, /* 0xF0 */
- 0xD6FD, 0xEFA9, 0xC6CC, 0xE89E, 0xEFAA, 0xEFAB, 0xC1B4, 0xEFAC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_95[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCFFA, 0xCBF8, 0xEFAE, 0xEFAD, 0xB3FA, 0xB9F8, 0xEFAF, 0xEFB0, /* 0x00 */
- 0xD0E2, 0xEFB1, 0xEFB2, 0xB7E6, 0xD0BF, 0xEFB3, 0xEFB4, 0xEFB5, /* 0x00 */
- 0xC8F1, 0xCCE0, 0xEFB6, 0xEFB7, 0xEFB8, 0xEFB9, 0xEFBA, 0xD5E0, /* 0x10 */
- 0xEFBB, 0xB4ED, 0xC3AA, 0xEFBC, 0xE89F, 0xEFBD, 0xEFBE, 0xEFBF, /* 0x10 */
- 0xE8A0, 0xCEFD, 0xEFC0, 0xC2E0, 0xB4B8, 0xD7B6, 0xBDF5, 0xE940, /* 0x20 */
- 0xCFC7, 0xEFC3, 0xEFC1, 0xEFC2, 0xEFC4, 0xB6A7, 0xBCFC, 0xBEE2, /* 0x20 */
- 0xC3CC, 0xEFC5, 0xEFC6, 0xE941, 0xEFC7, 0xEFCF, 0xEFC8, 0xEFC9, /* 0x30 */
- 0xEFCA, 0xC7C2, 0xEFF1, 0xB6CD, 0xEFCB, 0xE942, 0xEFCC, 0xEFCD, /* 0x30 */
- 0xB6C6, 0xC3BE, 0xEFCE, 0xE943, 0xEFD0, 0xEFD1, 0xEFD2, 0xD5F2, /* 0x40 */
- 0xE944, 0xEFD3, 0xC4F7, 0xE945, 0xEFD4, 0xC4F8, 0xEFD5, 0xEFD6, /* 0x40 */
- 0xB8E4, 0xB0F7, 0xEFD7, 0xEFD8, 0xEFD9, 0xE946, 0xEFDA, 0xEFDB, /* 0x50 */
- 0xEFDC, 0xEFDD, 0xE947, 0xEFDE, 0xBEB5, 0xEFE1, 0xEFDF, 0xEFE0, /* 0x50 */
- 0xE948, 0xEFE2, 0xEFE3, 0xC1CD, 0xEFE4, 0xEFE5, 0xEFE6, 0xEFE7, /* 0x60 */
- 0xEFE8, 0xEFE9, 0xEFEA, 0xEFEB, 0xEFEC, 0xC0D8, 0xE949, 0xEFED, /* 0x60 */
- 0xC1AD, 0xEFEE, 0xEFEF, 0xEFF0, 0xE94A, 0xE94B, 0xCFE2, 0xE94C, /* 0x70 */
- 0xE94D, 0xE94E, 0xE94F, 0xE950, 0xE951, 0xE952, 0xE953, 0xB3A4, /* 0x70 */
- 0xE954, 0xE955, 0xE956, 0xE957, 0xE958, 0xE959, 0xE95A, 0xE95B, /* 0x80 */
- 0xE95C, 0xE95D, 0xE95E, 0xE95F, 0xE960, 0xE961, 0xE962, 0xE963, /* 0x80 */
- 0xE964, 0xE965, 0xE966, 0xE967, 0xE968, 0xE969, 0xE96A, 0xE96B, /* 0x90 */
- 0xE96C, 0xE96D, 0xE96E, 0xE96F, 0xE970, 0xE971, 0xE972, 0xE973, /* 0x90 */
- 0xE974, 0xE975, 0xE976, 0xE977, 0xE978, 0xE979, 0xE97A, 0xE97B, /* 0xA0 */
- 0xE97C, 0xE97D, 0xE97E, 0xE980, 0xE981, 0xE982, 0xE983, 0xE984, /* 0xA0 */
- 0xE985, 0xE986, 0xE987, 0xE988, 0xE989, 0xE98A, 0xE98B, 0xE98C, /* 0xB0 */
- 0xE98D, 0xE98E, 0xE98F, 0xE990, 0xE991, 0xE992, 0xE993, 0xE994, /* 0xB0 */
- 0xE995, 0xE996, 0xE997, 0xE998, 0xE999, 0xE99A, 0xE99B, 0xE99C, /* 0xC0 */
- 0xE99D, 0xE99E, 0xE99F, 0xE9A0, 0xEA40, 0xEA41, 0xEA42, 0xEA43, /* 0xC0 */
- 0xEA44, 0xEA45, 0xEA46, 0xEA47, 0xEA48, 0xEA49, 0xEA4A, 0xEA4B, /* 0xD0 */
- 0xEA4C, 0xEA4D, 0xEA4E, 0xEA4F, 0xEA50, 0xEA51, 0xEA52, 0xEA53, /* 0xD0 */
- 0xEA54, 0xEA55, 0xEA56, 0xEA57, 0xEA58, 0xEA59, 0xEA5A, 0xEA5B, /* 0xE0 */
- 0xC3C5, 0xE3C5, 0xC9C1, 0xE3C6, 0xEA5C, 0xB1D5, 0xCECA, 0xB4B3, /* 0xE0 */
- 0xC8F2, 0xE3C7, 0xCFD0, 0xE3C8, 0xBCE4, 0xE3C9, 0xE3CA, 0xC3C6, /* 0xF0 */
- 0xD5A2, 0xC4D6, 0xB9EB, 0xCEC5, 0xE3CB, 0xC3F6, 0xE3CC, 0xEA5D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_96[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB7A7, 0xB8F3, 0xBAD2, 0xE3CD, 0xE3CE, 0xD4C4, 0xE3CF, 0xEA5E, /* 0x00 */
- 0xE3D0, 0xD1CB, 0xE3D1, 0xE3D2, 0xE3D3, 0xE3D4, 0xD1D6, 0xE3D5, /* 0x00 */
- 0xB2FB, 0xC0BB, 0xE3D6, 0xEA5F, 0xC0AB, 0xE3D7, 0xE3D8, 0xE3D9, /* 0x10 */
- 0xEA60, 0xE3DA, 0xE3DB, 0xEA61, 0xB8B7, 0xDAE2, 0xEA62, 0xB6D3, /* 0x10 */
- 0xEA63, 0xDAE4, 0xDAE3, 0xEA64, 0xEA65, 0xEA66, 0xEA67, 0xEA68, /* 0x20 */
- 0xEA69, 0xEA6A, 0xDAE6, 0xEA6B, 0xEA6C, 0xEA6D, 0xC8EE, 0xEA6E, /* 0x20 */
- 0xEA6F, 0xDAE5, 0xB7C0, 0xD1F4, 0xD2F5, 0xD5F3, 0xBDD7, 0xEA70, /* 0x30 */
- 0xEA71, 0xEA72, 0xEA73, 0xD7E8, 0xDAE8, 0xDAE7, 0xEA74, 0xB0A2, /* 0x30 */
- 0xCDD3, 0xEA75, 0xDAE9, 0xEA76, 0xB8BD, 0xBCCA, 0xC2BD, 0xC2A4, /* 0x40 */
- 0xB3C2, 0xDAEA, 0xEA77, 0xC2AA, 0xC4B0, 0xBDB5, 0xEA78, 0xEA79, /* 0x40 */
- 0xCFDE, 0xEA7A, 0xEA7B, 0xEA7C, 0xDAEB, 0xC9C2, 0xEA7D, 0xEA7E, /* 0x50 */
- 0xEA80, 0xEA81, 0xEA82, 0xB1DD, 0xEA83, 0xEA84, 0xEA85, 0xDAEC, /* 0x50 */
- 0xEA86, 0xB6B8, 0xD4BA, 0xEA87, 0xB3FD, 0xEA88, 0xEA89, 0xDAED, /* 0x60 */
- 0xD4C9, 0xCFD5, 0xC5E3, 0xEA8A, 0xDAEE, 0xEA8B, 0xEA8C, 0xEA8D, /* 0x60 */
- 0xEA8E, 0xEA8F, 0xDAEF, 0xEA90, 0xDAF0, 0xC1EA, 0xCCD5, 0xCFDD, /* 0x70 */
- 0xEA91, 0xEA92, 0xEA93, 0xEA94, 0xEA95, 0xEA96, 0xEA97, 0xEA98, /* 0x70 */
- 0xEA99, 0xEA9A, 0xEA9B, 0xEA9C, 0xEA9D, 0xD3E7, 0xC2A1, 0xEA9E, /* 0x80 */
- 0xDAF1, 0xEA9F, 0xEAA0, 0xCBE5, 0xEB40, 0xDAF2, 0xEB41, 0xCBE6, /* 0x80 */
- 0xD2FE, 0xEB42, 0xEB43, 0xEB44, 0xB8F4, 0xEB45, 0xEB46, 0xDAF3, /* 0x90 */
- 0xB0AF, 0xCFB6, 0xEB47, 0xEB48, 0xD5CF, 0xEB49, 0xEB4A, 0xEB4B, /* 0x90 */
- 0xEB4C, 0xEB4D, 0xEB4E, 0xEB4F, 0xEB50, 0xEB51, 0xEB52, 0xCBED, /* 0xA0 */
- 0xEB53, 0xEB54, 0xEB55, 0xEB56, 0xEB57, 0xEB58, 0xEB59, 0xEB5A, /* 0xA0 */
- 0xDAF4, 0xEB5B, 0xEB5C, 0xE3C4, 0xEB5D, 0xEB5E, 0xC1A5, 0xEB5F, /* 0xB0 */
- 0xEB60, 0xF6BF, 0xEB61, 0xEB62, 0xF6C0, 0xF6C1, 0xC4D1, 0xEB63, /* 0xB0 */
- 0xC8B8, 0xD1E3, 0xEB64, 0xEB65, 0xD0DB, 0xD1C5, 0xBCAF, 0xB9CD, /* 0xC0 */
- 0xEB66, 0xEFF4, 0xEB67, 0xEB68, 0xB4C6, 0xD3BA, 0xF6C2, 0xB3FB, /* 0xC0 */
- 0xEB69, 0xEB6A, 0xF6C3, 0xEB6B, 0xEB6C, 0xB5F1, 0xEB6D, 0xEB6E, /* 0xD0 */
- 0xEB6F, 0xEB70, 0xEB71, 0xEB72, 0xEB73, 0xEB74, 0xEB75, 0xEB76, /* 0xD0 */
- 0xF6C5, 0xEB77, 0xEB78, 0xEB79, 0xEB7A, 0xEB7B, 0xEB7C, 0xEB7D, /* 0xE0 */
- 0xD3EA, 0xF6A7, 0xD1A9, 0xEB7E, 0xEB80, 0xEB81, 0xEB82, 0xF6A9, /* 0xE0 */
- 0xEB83, 0xEB84, 0xEB85, 0xF6A8, 0xEB86, 0xEB87, 0xC1E3, 0xC0D7, /* 0xF0 */
- 0xEB88, 0xB1A2, 0xEB89, 0xEB8A, 0xEB8B, 0xEB8C, 0xCEED, 0xEB8D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_97[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD0E8, 0xF6AB, 0xEB8E, 0xEB8F, 0xCFF6, 0xEB90, 0xF6AA, 0xD5F0, /* 0x00 */
- 0xF6AC, 0xC3B9, 0xEB91, 0xEB92, 0xEB93, 0xBBF4, 0xF6AE, 0xF6AD, /* 0x00 */
- 0xEB94, 0xEB95, 0xEB96, 0xC4DE, 0xEB97, 0xEB98, 0xC1D8, 0xEB99, /* 0x10 */
- 0xEB9A, 0xEB9B, 0xEB9C, 0xEB9D, 0xCBAA, 0xEB9E, 0xCFBC, 0xEB9F, /* 0x10 */
- 0xEBA0, 0xEC40, 0xEC41, 0xEC42, 0xEC43, 0xEC44, 0xEC45, 0xEC46, /* 0x20 */
- 0xEC47, 0xEC48, 0xF6AF, 0xEC49, 0xEC4A, 0xF6B0, 0xEC4B, 0xEC4C, /* 0x20 */
- 0xF6B1, 0xEC4D, 0xC2B6, 0xEC4E, 0xEC4F, 0xEC50, 0xEC51, 0xEC52, /* 0x30 */
- 0xB0D4, 0xC5F9, 0xEC53, 0xEC54, 0xEC55, 0xEC56, 0xF6B2, 0xEC57, /* 0x30 */
- 0xEC58, 0xEC59, 0xEC5A, 0xEC5B, 0xEC5C, 0xEC5D, 0xEC5E, 0xEC5F, /* 0x40 */
- 0xEC60, 0xEC61, 0xEC62, 0xEC63, 0xEC64, 0xEC65, 0xEC66, 0xEC67, /* 0x40 */
- 0xEC68, 0xEC69, 0xC7E0, 0xF6A6, 0xEC6A, 0xEC6B, 0xBEB8, 0xEC6C, /* 0x50 */
- 0xEC6D, 0xBEB2, 0xEC6E, 0xB5E5, 0xEC6F, 0xEC70, 0xB7C7, 0xEC71, /* 0x50 */
- 0xBFBF, 0xC3D2, 0xC3E6, 0xEC72, 0xEC73, 0xD8CC, 0xEC74, 0xEC75, /* 0x60 */
- 0xEC76, 0xB8EF, 0xEC77, 0xEC78, 0xEC79, 0xEC7A, 0xEC7B, 0xEC7C, /* 0x60 */
- 0xEC7D, 0xEC7E, 0xEC80, 0xBDF9, 0xD1A5, 0xEC81, 0xB0D0, 0xEC82, /* 0x70 */
- 0xEC83, 0xEC84, 0xEC85, 0xEC86, 0xF7B0, 0xEC87, 0xEC88, 0xEC89, /* 0x70 */
- 0xEC8A, 0xEC8B, 0xEC8C, 0xEC8D, 0xEC8E, 0xF7B1, 0xEC8F, 0xEC90, /* 0x80 */
- 0xEC91, 0xEC92, 0xEC93, 0xD0AC, 0xEC94, 0xB0B0, 0xEC95, 0xEC96, /* 0x80 */
- 0xEC97, 0xF7B2, 0xF7B3, 0xEC98, 0xF7B4, 0xEC99, 0xEC9A, 0xEC9B, /* 0x90 */
- 0xC7CA, 0xEC9C, 0xEC9D, 0xEC9E, 0xEC9F, 0xECA0, 0xED40, 0xED41, /* 0x90 */
- 0xBECF, 0xED42, 0xED43, 0xF7B7, 0xED44, 0xED45, 0xED46, 0xED47, /* 0xA0 */
- 0xED48, 0xED49, 0xED4A, 0xF7B6, 0xED4B, 0xB1DE, 0xED4C, 0xF7B5, /* 0xA0 */
- 0xED4D, 0xED4E, 0xF7B8, 0xED4F, 0xF7B9, 0xED50, 0xED51, 0xED52, /* 0xB0 */
- 0xED53, 0xED54, 0xED55, 0xED56, 0xED57, 0xED58, 0xED59, 0xED5A, /* 0xB0 */
- 0xED5B, 0xED5C, 0xED5D, 0xED5E, 0xED5F, 0xED60, 0xED61, 0xED62, /* 0xC0 */
- 0xED63, 0xED64, 0xED65, 0xED66, 0xED67, 0xED68, 0xED69, 0xED6A, /* 0xC0 */
- 0xED6B, 0xED6C, 0xED6D, 0xED6E, 0xED6F, 0xED70, 0xED71, 0xED72, /* 0xD0 */
- 0xED73, 0xED74, 0xED75, 0xED76, 0xED77, 0xED78, 0xED79, 0xED7A, /* 0xD0 */
- 0xED7B, 0xED7C, 0xED7D, 0xED7E, 0xED80, 0xED81, 0xCEA4, 0xC8CD, /* 0xE0 */
- 0xED82, 0xBAAB, 0xE8B8, 0xE8B9, 0xE8BA, 0xBEC2, 0xED83, 0xED84, /* 0xE0 */
- 0xED85, 0xED86, 0xED87, 0xD2F4, 0xED88, 0xD4CF, 0xC9D8, 0xED89, /* 0xF0 */
- 0xED8A, 0xED8B, 0xED8C, 0xED8D, 0xED8E, 0xED8F, 0xED90, 0xED91 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_98[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xED92, 0xED93, 0xED94, 0xED95, 0xED96, 0xED97, 0xED98, 0xED99, /* 0x00 */
- 0xED9A, 0xED9B, 0xED9C, 0xED9D, 0xED9E, 0xED9F, 0xEDA0, 0xEE40, /* 0x00 */
- 0xEE41, 0xEE42, 0xEE43, 0xEE44, 0xEE45, 0xEE46, 0xEE47, 0xEE48, /* 0x10 */
- 0xEE49, 0xEE4A, 0xEE4B, 0xEE4C, 0xEE4D, 0xEE4E, 0xEE4F, 0xEE50, /* 0x10 */
- 0xEE51, 0xEE52, 0xEE53, 0xEE54, 0xEE55, 0xEE56, 0xEE57, 0xEE58, /* 0x20 */
- 0xEE59, 0xEE5A, 0xEE5B, 0xEE5C, 0xEE5D, 0xEE5E, 0xEE5F, 0xEE60, /* 0x20 */
- 0xEE61, 0xEE62, 0xEE63, 0xEE64, 0xEE65, 0xEE66, 0xEE67, 0xEE68, /* 0x30 */
- 0xEE69, 0xEE6A, 0xEE6B, 0xEE6C, 0xEE6D, 0xEE6E, 0xEE6F, 0xEE70, /* 0x30 */
- 0xEE71, 0xEE72, 0xEE73, 0xEE74, 0xEE75, 0xEE76, 0xEE77, 0xEE78, /* 0x40 */
- 0xEE79, 0xEE7A, 0xEE7B, 0xEE7C, 0xEE7D, 0xEE7E, 0xEE80, 0xEE81, /* 0x40 */
- 0xEE82, 0xEE83, 0xEE84, 0xEE85, 0xEE86, 0xEE87, 0xEE88, 0xEE89, /* 0x50 */
- 0xEE8A, 0xEE8B, 0xEE8C, 0xEE8D, 0xEE8E, 0xEE8F, 0xEE90, 0xEE91, /* 0x50 */
- 0xEE92, 0xEE93, 0xEE94, 0xEE95, 0xEE96, 0xEE97, 0xEE98, 0xEE99, /* 0x60 */
- 0xEE9A, 0xEE9B, 0xEE9C, 0xEE9D, 0xEE9E, 0xEE9F, 0xEEA0, 0xEF40, /* 0x60 */
- 0xEF41, 0xEF42, 0xEF43, 0xEF44, 0xEF45, 0xD2B3, 0xB6A5, 0xC7EA, /* 0x70 */
- 0xF1FC, 0xCFEE, 0xCBB3, 0xD0EB, 0xE7EF, 0xCDE7, 0xB9CB, 0xB6D9, /* 0x70 */
- 0xF1FD, 0xB0E4, 0xCBCC, 0xF1FE, 0xD4A4, 0xC2AD, 0xC1EC, 0xC6C4, /* 0x80 */
- 0xBEB1, 0xF2A1, 0xBCD5, 0xEF46, 0xF2A2, 0xF2A3, 0xEF47, 0xF2A4, /* 0x80 */
- 0xD2C3, 0xC6B5, 0xEF48, 0xCDC7, 0xF2A5, 0xEF49, 0xD3B1, 0xBFC5, /* 0x90 */
- 0xCCE2, 0xEF4A, 0xF2A6, 0xF2A7, 0xD1D5, 0xB6EE, 0xF2A8, 0xF2A9, /* 0x90 */
- 0xB5DF, 0xF2AA, 0xF2AB, 0xEF4B, 0xB2FC, 0xF2AC, 0xF2AD, 0xC8A7, /* 0xA0 */
- 0xEF4C, 0xEF4D, 0xEF4E, 0xEF4F, 0xEF50, 0xEF51, 0xEF52, 0xEF53, /* 0xA0 */
- 0xEF54, 0xEF55, 0xEF56, 0xEF57, 0xEF58, 0xEF59, 0xEF5A, 0xEF5B, /* 0xB0 */
- 0xEF5C, 0xEF5D, 0xEF5E, 0xEF5F, 0xEF60, 0xEF61, 0xEF62, 0xEF63, /* 0xB0 */
- 0xEF64, 0xEF65, 0xEF66, 0xEF67, 0xEF68, 0xEF69, 0xEF6A, 0xEF6B, /* 0xC0 */
- 0xEF6C, 0xEF6D, 0xEF6E, 0xEF6F, 0xEF70, 0xEF71, 0xB7E7, 0xEF72, /* 0xC0 */
- 0xEF73, 0xECA9, 0xECAA, 0xECAB, 0xEF74, 0xECAC, 0xEF75, 0xEF76, /* 0xD0 */
- 0xC6AE, 0xECAD, 0xECAE, 0xEF77, 0xEF78, 0xEF79, 0xB7C9, 0xCAB3, /* 0xD0 */
- 0xEF7A, 0xEF7B, 0xEF7C, 0xEF7D, 0xEF7E, 0xEF80, 0xEF81, 0xE2B8, /* 0xE0 */
- 0xF7CF, 0xEF82, 0xEF83, 0xEF84, 0xEF85, 0xEF86, 0xEF87, 0xEF88, /* 0xE0 */
- 0xEF89, 0xEF8A, 0xEF8B, 0xEF8C, 0xEF8D, 0xEF8E, 0xEF8F, 0xEF90, /* 0xF0 */
- 0xEF91, 0xEF92, 0xEF93, 0xEF94, 0xEF95, 0xEF96, 0xEF97, 0xEF98 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_99[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEF99, 0xEF9A, 0xEF9B, 0xEF9C, 0xEF9D, 0xEF9E, 0xEF9F, 0xEFA0, /* 0x00 */
- 0xF040, 0xF041, 0xF042, 0xF043, 0xF044, 0xF7D0, 0xF045, 0xF046, /* 0x00 */
- 0xB2CD, 0xF047, 0xF048, 0xF049, 0xF04A, 0xF04B, 0xF04C, 0xF04D, /* 0x10 */
- 0xF04E, 0xF04F, 0xF050, 0xF051, 0xF052, 0xF053, 0xF054, 0xF055, /* 0x10 */
- 0xF056, 0xF057, 0xF058, 0xF059, 0xF05A, 0xF05B, 0xF05C, 0xF05D, /* 0x20 */
- 0xF05E, 0xF05F, 0xF060, 0xF061, 0xF062, 0xF063, 0xF7D1, 0xF064, /* 0x20 */
- 0xF065, 0xF066, 0xF067, 0xF068, 0xF069, 0xF06A, 0xF06B, 0xF06C, /* 0x30 */
- 0xF06D, 0xF06E, 0xF06F, 0xF070, 0xF071, 0xF072, 0xF073, 0xF074, /* 0x30 */
- 0xF075, 0xF076, 0xF077, 0xF078, 0xF079, 0xF07A, 0xF07B, 0xF07C, /* 0x40 */
- 0xF07D, 0xF07E, 0xF080, 0xF081, 0xF082, 0xF083, 0xF084, 0xF085, /* 0x40 */
- 0xF086, 0xF087, 0xF088, 0xF089, 0xF7D3, 0xF7D2, 0xF08A, 0xF08B, /* 0x50 */
- 0xF08C, 0xF08D, 0xF08E, 0xF08F, 0xF090, 0xF091, 0xF092, 0xF093, /* 0x50 */
- 0xF094, 0xF095, 0xF096, 0xE2BB, 0xF097, 0xBCA2, 0xF098, 0xE2BC, /* 0x60 */
- 0xE2BD, 0xE2BE, 0xE2BF, 0xE2C0, 0xE2C1, 0xB7B9, 0xD2FB, 0xBDA4, /* 0x60 */
- 0xCACE, 0xB1A5, 0xCBC7, 0xF099, 0xE2C2, 0xB6FC, 0xC8C4, 0xE2C3, /* 0x70 */
- 0xF09A, 0xF09B, 0xBDC8, 0xF09C, 0xB1FD, 0xE2C4, 0xF09D, 0xB6F6, /* 0x70 */
- 0xE2C5, 0xC4D9, 0xF09E, 0xF09F, 0xE2C6, 0xCFDA, 0xB9DD, 0xE2C7, /* 0x80 */
- 0xC0A1, 0xF0A0, 0xE2C8, 0xB2F6, 0xF140, 0xE2C9, 0xF141, 0xC1F3, /* 0x80 */
- 0xE2CA, 0xE2CB, 0xC2F8, 0xE2CC, 0xE2CD, 0xE2CE, 0xCAD7, 0xD8B8, /* 0x90 */
- 0xD9E5, 0xCFE3, 0xF142, 0xF143, 0xF144, 0xF145, 0xF146, 0xF147, /* 0x90 */
- 0xF148, 0xF149, 0xF14A, 0xF14B, 0xF14C, 0xF0A5, 0xF14D, 0xF14E, /* 0xA0 */
- 0xDCB0, 0xF14F, 0xF150, 0xF151, 0xF152, 0xF153, 0xF154, 0xF155, /* 0xA0 */
- 0xF156, 0xF157, 0xF158, 0xF159, 0xF15A, 0xF15B, 0xF15C, 0xF15D, /* 0xB0 */
- 0xF15E, 0xF15F, 0xF160, 0xF161, 0xF162, 0xF163, 0xF164, 0xF165, /* 0xB0 */
- 0xF166, 0xF167, 0xF168, 0xF169, 0xF16A, 0xF16B, 0xF16C, 0xF16D, /* 0xC0 */
- 0xF16E, 0xF16F, 0xF170, 0xF171, 0xF172, 0xF173, 0xF174, 0xF175, /* 0xC0 */
- 0xF176, 0xF177, 0xF178, 0xF179, 0xF17A, 0xF17B, 0xF17C, 0xF17D, /* 0xD0 */
- 0xF17E, 0xF180, 0xF181, 0xF182, 0xF183, 0xF184, 0xF185, 0xF186, /* 0xD0 */
- 0xF187, 0xF188, 0xF189, 0xF18A, 0xF18B, 0xF18C, 0xF18D, 0xF18E, /* 0xE0 */
- 0xF18F, 0xF190, 0xF191, 0xF192, 0xF193, 0xF194, 0xF195, 0xF196, /* 0xE0 */
- 0xF197, 0xF198, 0xF199, 0xF19A, 0xF19B, 0xF19C, 0xF19D, 0xF19E, /* 0xF0 */
- 0xF19F, 0xF1A0, 0xF240, 0xF241, 0xF242, 0xF243, 0xF244, 0xF245 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_9A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF246, 0xF247, 0xF248, 0xF249, 0xF24A, 0xF24B, 0xF24C, 0xF24D, /* 0x00 */
- 0xF24E, 0xF24F, 0xF250, 0xF251, 0xF252, 0xF253, 0xF254, 0xF255, /* 0x00 */
- 0xF256, 0xF257, 0xF258, 0xF259, 0xF25A, 0xF25B, 0xF25C, 0xF25D, /* 0x10 */
- 0xF25E, 0xF25F, 0xF260, 0xF261, 0xF262, 0xF263, 0xF264, 0xF265, /* 0x10 */
- 0xF266, 0xF267, 0xF268, 0xF269, 0xF26A, 0xF26B, 0xF26C, 0xF26D, /* 0x20 */
- 0xF26E, 0xF26F, 0xF270, 0xF271, 0xF272, 0xF273, 0xF274, 0xF275, /* 0x20 */
- 0xF276, 0xF277, 0xF278, 0xF279, 0xF27A, 0xF27B, 0xF27C, 0xF27D, /* 0x30 */
- 0xF27E, 0xF280, 0xF281, 0xF282, 0xF283, 0xF284, 0xF285, 0xF286, /* 0x30 */
- 0xF287, 0xF288, 0xF289, 0xF28A, 0xF28B, 0xF28C, 0xF28D, 0xF28E, /* 0x40 */
- 0xF28F, 0xF290, 0xF291, 0xF292, 0xF293, 0xF294, 0xF295, 0xF296, /* 0x40 */
- 0xF297, 0xF298, 0xF299, 0xF29A, 0xF29B, 0xF29C, 0xF29D, 0xF29E, /* 0x50 */
- 0xF29F, 0xF2A0, 0xF340, 0xF341, 0xF342, 0xF343, 0xF344, 0xF345, /* 0x50 */
- 0xF346, 0xF347, 0xF348, 0xF349, 0xF34A, 0xF34B, 0xF34C, 0xF34D, /* 0x60 */
- 0xF34E, 0xF34F, 0xF350, 0xF351, 0xC2ED, 0xD4A6, 0xCDD4, 0xD1B1, /* 0x60 */
- 0xB3DB, 0xC7FD, 0xF352, 0xB2B5, 0xC2BF, 0xE6E0, 0xCABB, 0xE6E1, /* 0x70 */
- 0xE6E2, 0xBED4, 0xE6E3, 0xD7A4, 0xCDD5, 0xE6E5, 0xBCDD, 0xE6E4, /* 0x70 */
- 0xE6E6, 0xE6E7, 0xC2EE, 0xF353, 0xBDBE, 0xE6E8, 0xC2E6, 0xBAA7, /* 0x80 */
- 0xE6E9, 0xF354, 0xE6EA, 0xB3D2, 0xD1E9, 0xF355, 0xF356, 0xBFA5, /* 0x80 */
- 0xE6EB, 0xC6EF, 0xE6EC, 0xE6ED, 0xF357, 0xF358, 0xE6EE, 0xC6AD, /* 0x90 */
- 0xE6EF, 0xF359, 0xC9A7, 0xE6F0, 0xE6F1, 0xE6F2, 0xE5B9, 0xE6F3, /* 0x90 */
- 0xE6F4, 0xC2E2, 0xE6F5, 0xE6F6, 0xD6E8, 0xE6F7, 0xF35A, 0xE6F8, /* 0xA0 */
- 0xB9C7, 0xF35B, 0xF35C, 0xF35D, 0xF35E, 0xF35F, 0xF360, 0xF361, /* 0xA0 */
- 0xF7BB, 0xF7BA, 0xF362, 0xF363, 0xF364, 0xF365, 0xF7BE, 0xF7BC, /* 0xB0 */
- 0xBAA1, 0xF366, 0xF7BF, 0xF367, 0xF7C0, 0xF368, 0xF369, 0xF36A, /* 0xB0 */
- 0xF7C2, 0xF7C1, 0xF7C4, 0xF36B, 0xF36C, 0xF7C3, 0xF36D, 0xF36E, /* 0xC0 */
- 0xF36F, 0xF370, 0xF371, 0xF7C5, 0xF7C6, 0xF372, 0xF373, 0xF374, /* 0xC0 */
- 0xF375, 0xF7C7, 0xF376, 0xCBE8, 0xF377, 0xF378, 0xF379, 0xF37A, /* 0xD0 */
- 0xB8DF, 0xF37B, 0xF37C, 0xF37D, 0xF37E, 0xF380, 0xF381, 0xF7D4, /* 0xD0 */
- 0xF382, 0xF7D5, 0xF383, 0xF384, 0xF385, 0xF386, 0xF7D6, 0xF387, /* 0xE0 */
- 0xF388, 0xF389, 0xF38A, 0xF7D8, 0xF38B, 0xF7DA, 0xF38C, 0xF7D7, /* 0xE0 */
- 0xF38D, 0xF38E, 0xF38F, 0xF390, 0xF391, 0xF392, 0xF393, 0xF394, /* 0xF0 */
- 0xF395, 0xF7DB, 0xF396, 0xF7D9, 0xF397, 0xF398, 0xF399, 0xF39A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_9B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF39B, 0xF39C, 0xF39D, 0xD7D7, 0xF39E, 0xF39F, 0xF3A0, 0xF440, /* 0x00 */
- 0xF7DC, 0xF441, 0xF442, 0xF443, 0xF444, 0xF445, 0xF446, 0xF7DD, /* 0x00 */
- 0xF447, 0xF448, 0xF449, 0xF7DE, 0xF44A, 0xF44B, 0xF44C, 0xF44D, /* 0x10 */
- 0xF44E, 0xF44F, 0xF450, 0xF451, 0xF452, 0xF453, 0xF454, 0xF7DF, /* 0x10 */
- 0xF455, 0xF456, 0xF457, 0xF7E0, 0xF458, 0xF459, 0xF45A, 0xF45B, /* 0x20 */
- 0xF45C, 0xF45D, 0xF45E, 0xF45F, 0xF460, 0xF461, 0xF462, 0xDBCB, /* 0x20 */
- 0xF463, 0xF464, 0xD8AA, 0xF465, 0xF466, 0xF467, 0xF468, 0xF469, /* 0x30 */
- 0xF46A, 0xF46B, 0xF46C, 0xE5F7, 0xB9ED, 0xF46D, 0xF46E, 0xF46F, /* 0x30 */
- 0xF470, 0xBFFD, 0xBBEA, 0xF7C9, 0xC6C7, 0xF7C8, 0xF471, 0xF7CA, /* 0x40 */
- 0xF7CC, 0xF7CB, 0xF472, 0xF473, 0xF474, 0xF7CD, 0xF475, 0xCEBA, /* 0x40 */
- 0xF476, 0xF7CE, 0xF477, 0xF478, 0xC4A7, 0xF479, 0xF47A, 0xF47B, /* 0x50 */
- 0xF47C, 0xF47D, 0xF47E, 0xF480, 0xF481, 0xF482, 0xF483, 0xF484, /* 0x50 */
- 0xF485, 0xF486, 0xF487, 0xF488, 0xF489, 0xF48A, 0xF48B, 0xF48C, /* 0x60 */
- 0xF48D, 0xF48E, 0xF48F, 0xF490, 0xF491, 0xF492, 0xF493, 0xF494, /* 0x60 */
- 0xF495, 0xF496, 0xF497, 0xF498, 0xF499, 0xF49A, 0xF49B, 0xF49C, /* 0x70 */
- 0xF49D, 0xF49E, 0xF49F, 0xF4A0, 0xF540, 0xF541, 0xF542, 0xF543, /* 0x70 */
- 0xF544, 0xF545, 0xF546, 0xF547, 0xF548, 0xF549, 0xF54A, 0xF54B, /* 0x80 */
- 0xF54C, 0xF54D, 0xF54E, 0xF54F, 0xF550, 0xF551, 0xF552, 0xF553, /* 0x80 */
- 0xF554, 0xF555, 0xF556, 0xF557, 0xF558, 0xF559, 0xF55A, 0xF55B, /* 0x90 */
- 0xF55C, 0xF55D, 0xF55E, 0xF55F, 0xF560, 0xF561, 0xF562, 0xF563, /* 0x90 */
- 0xF564, 0xF565, 0xF566, 0xF567, 0xF568, 0xF569, 0xF56A, 0xF56B, /* 0xA0 */
- 0xF56C, 0xF56D, 0xF56E, 0xF56F, 0xF570, 0xF571, 0xF572, 0xF573, /* 0xA0 */
- 0xF574, 0xF575, 0xF576, 0xF577, 0xF578, 0xF579, 0xF57A, 0xF57B, /* 0xB0 */
- 0xF57C, 0xF57D, 0xF57E, 0xF580, 0xF581, 0xF582, 0xF583, 0xF584, /* 0xB0 */
- 0xF585, 0xF586, 0xF587, 0xF588, 0xF589, 0xF58A, 0xF58B, 0xF58C, /* 0xC0 */
- 0xF58D, 0xF58E, 0xF58F, 0xF590, 0xF591, 0xF592, 0xF593, 0xF594, /* 0xC0 */
- 0xF595, 0xF596, 0xF597, 0xF598, 0xF599, 0xF59A, 0xF59B, 0xF59C, /* 0xD0 */
- 0xF59D, 0xF59E, 0xF59F, 0xF5A0, 0xF640, 0xF641, 0xF642, 0xF643, /* 0xD0 */
- 0xF644, 0xF645, 0xF646, 0xF647, 0xF648, 0xF649, 0xF64A, 0xF64B, /* 0xE0 */
- 0xF64C, 0xF64D, 0xF64E, 0xF64F, 0xF650, 0xF651, 0xF652, 0xF653, /* 0xE0 */
- 0xF654, 0xF655, 0xF656, 0xF657, 0xF658, 0xF659, 0xF65A, 0xF65B, /* 0xF0 */
- 0xF65C, 0xF65D, 0xF65E, 0xF65F, 0xF660, 0xF661, 0xF662, 0xF663 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_9C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF664, 0xF665, 0xF666, 0xF667, 0xF668, 0xF669, 0xF66A, 0xF66B, /* 0x00 */
- 0xF66C, 0xF66D, 0xF66E, 0xF66F, 0xF670, 0xF671, 0xF672, 0xF673, /* 0x00 */
- 0xF674, 0xF675, 0xF676, 0xF677, 0xF678, 0xF679, 0xF67A, 0xF67B, /* 0x10 */
- 0xF67C, 0xF67D, 0xF67E, 0xF680, 0xF681, 0xF682, 0xF683, 0xF684, /* 0x10 */
- 0xF685, 0xF686, 0xF687, 0xF688, 0xF689, 0xF68A, 0xF68B, 0xF68C, /* 0x20 */
- 0xF68D, 0xF68E, 0xF68F, 0xF690, 0xF691, 0xF692, 0xF693, 0xF694, /* 0x20 */
- 0xF695, 0xF696, 0xF697, 0xF698, 0xF699, 0xF69A, 0xF69B, 0xF69C, /* 0x30 */
- 0xF69D, 0xF69E, 0xF69F, 0xF6A0, 0xF740, 0xF741, 0xF742, 0xF743, /* 0x30 */
- 0xF744, 0xF745, 0xF746, 0xF747, 0xF748, 0xF749, 0xF74A, 0xF74B, /* 0x40 */
- 0xF74C, 0xF74D, 0xF74E, 0xF74F, 0xF750, 0xF751, 0xF752, 0xF753, /* 0x40 */
- 0xF754, 0xF755, 0xF756, 0xF757, 0xF758, 0xF759, 0xF75A, 0xF75B, /* 0x50 */
- 0xF75C, 0xF75D, 0xF75E, 0xF75F, 0xF760, 0xF761, 0xF762, 0xF763, /* 0x50 */
- 0xF764, 0xF765, 0xF766, 0xF767, 0xF768, 0xF769, 0xF76A, 0xF76B, /* 0x60 */
- 0xF76C, 0xF76D, 0xF76E, 0xF76F, 0xF770, 0xF771, 0xF772, 0xF773, /* 0x60 */
- 0xF774, 0xF775, 0xF776, 0xF777, 0xF778, 0xF779, 0xF77A, 0xF77B, /* 0x70 */
- 0xF77C, 0xF77D, 0xF77E, 0xF780, 0xD3E3, 0xF781, 0xF782, 0xF6CF, /* 0x70 */
- 0xF783, 0xC2B3, 0xF6D0, 0xF784, 0xF785, 0xF6D1, 0xF6D2, 0xF6D3, /* 0x80 */
- 0xF6D4, 0xF786, 0xF787, 0xF6D6, 0xF788, 0xB1AB, 0xF6D7, 0xF789, /* 0x80 */
- 0xF6D8, 0xF6D9, 0xF6DA, 0xF78A, 0xF6DB, 0xF6DC, 0xF78B, 0xF78C, /* 0x90 */
- 0xF78D, 0xF78E, 0xF6DD, 0xF6DE, 0xCFCA, 0xF78F, 0xF6DF, 0xF6E0, /* 0x90 */
- 0xF6E1, 0xF6E2, 0xF6E3, 0xF6E4, 0xC0F0, 0xF6E5, 0xF6E6, 0xF6E7, /* 0xA0 */
- 0xF6E8, 0xF6E9, 0xF790, 0xF6EA, 0xF791, 0xF6EB, 0xF6EC, 0xF792, /* 0xA0 */
- 0xF6ED, 0xF6EE, 0xF6EF, 0xF6F0, 0xF6F1, 0xF6F2, 0xF6F3, 0xF6F4, /* 0xB0 */
- 0xBEA8, 0xF793, 0xF6F5, 0xF6F6, 0xF6F7, 0xF6F8, 0xF794, 0xF795, /* 0xB0 */
- 0xF796, 0xF797, 0xF798, 0xC8FA, 0xF6F9, 0xF6FA, 0xF6FB, 0xF6FC, /* 0xC0 */
- 0xF799, 0xF79A, 0xF6FD, 0xF6FE, 0xF7A1, 0xF7A2, 0xF7A3, 0xF7A4, /* 0xC0 */
- 0xF7A5, 0xF79B, 0xF79C, 0xF7A6, 0xF7A7, 0xF7A8, 0xB1EE, 0xF7A9, /* 0xD0 */
- 0xF7AA, 0xF7AB, 0xF79D, 0xF79E, 0xF7AC, 0xF7AD, 0xC1DB, 0xF7AE, /* 0xD0 */
- 0xF79F, 0xF7A0, 0xF7AF, 0xF840, 0xF841, 0xF842, 0xF843, 0xF844, /* 0xE0 */
- 0xF845, 0xF846, 0xF847, 0xF848, 0xF849, 0xF84A, 0xF84B, 0xF84C, /* 0xE0 */
- 0xF84D, 0xF84E, 0xF84F, 0xF850, 0xF851, 0xF852, 0xF853, 0xF854, /* 0xF0 */
- 0xF855, 0xF856, 0xF857, 0xF858, 0xF859, 0xF85A, 0xF85B, 0xF85C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_9D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF85D, 0xF85E, 0xF85F, 0xF860, 0xF861, 0xF862, 0xF863, 0xF864, /* 0x00 */
- 0xF865, 0xF866, 0xF867, 0xF868, 0xF869, 0xF86A, 0xF86B, 0xF86C, /* 0x00 */
- 0xF86D, 0xF86E, 0xF86F, 0xF870, 0xF871, 0xF872, 0xF873, 0xF874, /* 0x10 */
- 0xF875, 0xF876, 0xF877, 0xF878, 0xF879, 0xF87A, 0xF87B, 0xF87C, /* 0x10 */
- 0xF87D, 0xF87E, 0xF880, 0xF881, 0xF882, 0xF883, 0xF884, 0xF885, /* 0x20 */
- 0xF886, 0xF887, 0xF888, 0xF889, 0xF88A, 0xF88B, 0xF88C, 0xF88D, /* 0x20 */
- 0xF88E, 0xF88F, 0xF890, 0xF891, 0xF892, 0xF893, 0xF894, 0xF895, /* 0x30 */
- 0xF896, 0xF897, 0xF898, 0xF899, 0xF89A, 0xF89B, 0xF89C, 0xF89D, /* 0x30 */
- 0xF89E, 0xF89F, 0xF8A0, 0xF940, 0xF941, 0xF942, 0xF943, 0xF944, /* 0x40 */
- 0xF945, 0xF946, 0xF947, 0xF948, 0xF949, 0xF94A, 0xF94B, 0xF94C, /* 0x40 */
- 0xF94D, 0xF94E, 0xF94F, 0xF950, 0xF951, 0xF952, 0xF953, 0xF954, /* 0x50 */
- 0xF955, 0xF956, 0xF957, 0xF958, 0xF959, 0xF95A, 0xF95B, 0xF95C, /* 0x50 */
- 0xF95D, 0xF95E, 0xF95F, 0xF960, 0xF961, 0xF962, 0xF963, 0xF964, /* 0x60 */
- 0xF965, 0xF966, 0xF967, 0xF968, 0xF969, 0xF96A, 0xF96B, 0xF96C, /* 0x60 */
- 0xF96D, 0xF96E, 0xF96F, 0xF970, 0xF971, 0xF972, 0xF973, 0xF974, /* 0x70 */
- 0xF975, 0xF976, 0xF977, 0xF978, 0xF979, 0xF97A, 0xF97B, 0xF97C, /* 0x70 */
- 0xF97D, 0xF97E, 0xF980, 0xF981, 0xF982, 0xF983, 0xF984, 0xF985, /* 0x80 */
- 0xF986, 0xF987, 0xF988, 0xF989, 0xF98A, 0xF98B, 0xF98C, 0xF98D, /* 0x80 */
- 0xF98E, 0xF98F, 0xF990, 0xF991, 0xF992, 0xF993, 0xF994, 0xF995, /* 0x90 */
- 0xF996, 0xF997, 0xF998, 0xF999, 0xF99A, 0xF99B, 0xF99C, 0xF99D, /* 0x90 */
- 0xF99E, 0xF99F, 0xF9A0, 0xFA40, 0xFA41, 0xFA42, 0xFA43, 0xFA44, /* 0xA0 */
- 0xFA45, 0xFA46, 0xFA47, 0xFA48, 0xFA49, 0xFA4A, 0xFA4B, 0xFA4C, /* 0xA0 */
- 0xFA4D, 0xFA4E, 0xFA4F, 0xFA50, 0xFA51, 0xFA52, 0xFA53, 0xFA54, /* 0xB0 */
- 0xFA55, 0xFA56, 0xFA57, 0xFA58, 0xFA59, 0xFA5A, 0xFA5B, 0xFA5C, /* 0xB0 */
- 0xFA5D, 0xFA5E, 0xFA5F, 0xFA60, 0xFA61, 0xFA62, 0xFA63, 0xFA64, /* 0xC0 */
- 0xFA65, 0xFA66, 0xFA67, 0xFA68, 0xFA69, 0xFA6A, 0xFA6B, 0xFA6C, /* 0xC0 */
- 0xFA6D, 0xFA6E, 0xFA6F, 0xFA70, 0xFA71, 0xFA72, 0xFA73, 0xFA74, /* 0xD0 */
- 0xFA75, 0xFA76, 0xFA77, 0xFA78, 0xFA79, 0xFA7A, 0xFA7B, 0xFA7C, /* 0xD0 */
- 0xFA7D, 0xFA7E, 0xFA80, 0xFA81, 0xFA82, 0xFA83, 0xFA84, 0xFA85, /* 0xE0 */
- 0xFA86, 0xFA87, 0xFA88, 0xFA89, 0xFA8A, 0xFA8B, 0xFA8C, 0xFA8D, /* 0xE0 */
- 0xFA8E, 0xFA8F, 0xFA90, 0xFA91, 0xFA92, 0xFA93, 0xFA94, 0xFA95, /* 0xF0 */
- 0xFA96, 0xFA97, 0xFA98, 0xFA99, 0xFA9A, 0xFA9B, 0xFA9C, 0xFA9D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_9E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFA9E, 0xFA9F, 0xFAA0, 0xFB40, 0xFB41, 0xFB42, 0xFB43, 0xFB44, /* 0x00 */
- 0xFB45, 0xFB46, 0xFB47, 0xFB48, 0xFB49, 0xFB4A, 0xFB4B, 0xFB4C, /* 0x00 */
- 0xFB4D, 0xFB4E, 0xFB4F, 0xFB50, 0xFB51, 0xFB52, 0xFB53, 0xFB54, /* 0x10 */
- 0xFB55, 0xFB56, 0xFB57, 0xFB58, 0xFB59, 0xFB5A, 0xFB5B, 0xC4F1, /* 0x10 */
- 0xF0AF, 0xBCA6, 0xF0B0, 0xC3F9, 0xFB5C, 0xC5B8, 0xD1BB, 0xFB5D, /* 0x20 */
- 0xF0B1, 0xF0B2, 0xF0B3, 0xF0B4, 0xF0B5, 0xD1BC, 0xFB5E, 0xD1EC, /* 0x20 */
- 0xFB5F, 0xF0B7, 0xF0B6, 0xD4A7, 0xFB60, 0xCDD2, 0xF0B8, 0xF0BA, /* 0x30 */
- 0xF0B9, 0xF0BB, 0xF0BC, 0xFB61, 0xFB62, 0xB8EB, 0xF0BD, 0xBAE8, /* 0x30 */
- 0xFB63, 0xF0BE, 0xF0BF, 0xBEE9, 0xF0C0, 0xB6EC, 0xF0C1, 0xF0C2, /* 0x40 */
- 0xF0C3, 0xF0C4, 0xC8B5, 0xF0C5, 0xF0C6, 0xFB64, 0xF0C7, 0xC5F4, /* 0x40 */
- 0xFB65, 0xF0C8, 0xFB66, 0xFB67, 0xFB68, 0xF0C9, 0xFB69, 0xF0CA, /* 0x50 */
- 0xF7BD, 0xFB6A, 0xF0CB, 0xF0CC, 0xF0CD, 0xFB6B, 0xF0CE, 0xFB6C, /* 0x50 */
- 0xFB6D, 0xFB6E, 0xFB6F, 0xF0CF, 0xBAD7, 0xFB70, 0xF0D0, 0xF0D1, /* 0x60 */
- 0xF0D2, 0xF0D3, 0xF0D4, 0xF0D5, 0xF0D6, 0xF0D8, 0xFB71, 0xFB72, /* 0x60 */
- 0xD3A5, 0xF0D7, 0xFB73, 0xF0D9, 0xFB74, 0xFB75, 0xFB76, 0xFB77, /* 0x70 */
- 0xFB78, 0xFB79, 0xFB7A, 0xFB7B, 0xFB7C, 0xFB7D, 0xF5BA, 0xC2B9, /* 0x70 */
- 0xFB7E, 0xFB80, 0xF7E4, 0xFB81, 0xFB82, 0xFB83, 0xFB84, 0xF7E5, /* 0x80 */
- 0xF7E6, 0xFB85, 0xFB86, 0xF7E7, 0xFB87, 0xFB88, 0xFB89, 0xFB8A, /* 0x80 */
- 0xFB8B, 0xFB8C, 0xF7E8, 0xC2B4, 0xFB8D, 0xFB8E, 0xFB8F, 0xFB90, /* 0x90 */
- 0xFB91, 0xFB92, 0xFB93, 0xFB94, 0xFB95, 0xF7EA, 0xFB96, 0xF7EB, /* 0x90 */
- 0xFB97, 0xFB98, 0xFB99, 0xFB9A, 0xFB9B, 0xFB9C, 0xC2F3, 0xFB9D, /* 0xA0 */
- 0xFB9E, 0xFB9F, 0xFBA0, 0xFC40, 0xFC41, 0xFC42, 0xFC43, 0xFC44, /* 0xA0 */
- 0xFC45, 0xFC46, 0xFC47, 0xFC48, 0xF4F0, 0xFC49, 0xFC4A, 0xFC4B, /* 0xB0 */
- 0xF4EF, 0xFC4C, 0xFC4D, 0xC2E9, 0xFC4E, 0xF7E1, 0xF7E2, 0xFC4F, /* 0xB0 */
- 0xFC50, 0xFC51, 0xFC52, 0xFC53, 0xBBC6, 0xFC54, 0xFC55, 0xFC56, /* 0xC0 */
- 0xFC57, 0xD9E4, 0xFC58, 0xFC59, 0xFC5A, 0xCAF2, 0xC0E8, 0xF0A4, /* 0xC0 */
- 0xFC5B, 0xBADA, 0xFC5C, 0xFC5D, 0xC7AD, 0xFC5E, 0xFC5F, 0xFC60, /* 0xD0 */
- 0xC4AC, 0xFC61, 0xFC62, 0xF7EC, 0xF7ED, 0xF7EE, 0xFC63, 0xF7F0, /* 0xD0 */
- 0xF7EF, 0xFC64, 0xF7F1, 0xFC65, 0xFC66, 0xF7F4, 0xFC67, 0xF7F3, /* 0xE0 */
- 0xFC68, 0xF7F2, 0xF7F5, 0xFC69, 0xFC6A, 0xFC6B, 0xFC6C, 0xF7F6, /* 0xE0 */
- 0xFC6D, 0xFC6E, 0xFC6F, 0xFC70, 0xFC71, 0xFC72, 0xFC73, 0xFC74, /* 0xF0 */
- 0xFC75, 0xEDE9, 0xFC76, 0xEDEA, 0xEDEB, 0xFC77, 0xF6BC, 0xFC78 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_9F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFC79, 0xFC7A, 0xFC7B, 0xFC7C, 0xFC7D, 0xFC7E, 0xFC80, 0xFC81, /* 0x00 */
- 0xFC82, 0xFC83, 0xFC84, 0xF6BD, 0xFC85, 0xF6BE, 0xB6A6, 0xFC86, /* 0x00 */
- 0xD8BE, 0xFC87, 0xFC88, 0xB9C4, 0xFC89, 0xFC8A, 0xFC8B, 0xD8BB, /* 0x10 */
- 0xFC8C, 0xDCB1, 0xFC8D, 0xFC8E, 0xFC8F, 0xFC90, 0xFC91, 0xFC92, /* 0x10 */
- 0xCAF3, 0xFC93, 0xF7F7, 0xFC94, 0xFC95, 0xFC96, 0xFC97, 0xFC98, /* 0x20 */
- 0xFC99, 0xFC9A, 0xFC9B, 0xFC9C, 0xF7F8, 0xFC9D, 0xFC9E, 0xF7F9, /* 0x20 */
- 0xFC9F, 0xFCA0, 0xFD40, 0xFD41, 0xFD42, 0xFD43, 0xFD44, 0xF7FB, /* 0x30 */
- 0xFD45, 0xF7FA, 0xFD46, 0xB1C7, 0xFD47, 0xF7FC, 0xF7FD, 0xFD48, /* 0x30 */
- 0xFD49, 0xFD4A, 0xFD4B, 0xFD4C, 0xF7FE, 0xFD4D, 0xFD4E, 0xFD4F, /* 0x40 */
- 0xFD50, 0xFD51, 0xFD52, 0xFD53, 0xFD54, 0xFD55, 0xFD56, 0xFD57, /* 0x40 */
- 0xC6EB, 0xECB4, 0xFD58, 0xFD59, 0xFD5A, 0xFD5B, 0xFD5C, 0xFD5D, /* 0x50 */
- 0xFD5E, 0xFD5F, 0xFD60, 0xFD61, 0xFD62, 0xFD63, 0xFD64, 0xFD65, /* 0x50 */
- 0xFD66, 0xFD67, 0xFD68, 0xFD69, 0xFD6A, 0xFD6B, 0xFD6C, 0xFD6D, /* 0x60 */
- 0xFD6E, 0xFD6F, 0xFD70, 0xFD71, 0xFD72, 0xFD73, 0xFD74, 0xFD75, /* 0x60 */
- 0xFD76, 0xFD77, 0xFD78, 0xFD79, 0xFD7A, 0xFD7B, 0xFD7C, 0xFD7D, /* 0x70 */
- 0xFD7E, 0xFD80, 0xFD81, 0xFD82, 0xFD83, 0xFD84, 0xFD85, 0xB3DD, /* 0x70 */
- 0xF6B3, 0xFD86, 0xFD87, 0xF6B4, 0xC1E4, 0xF6B5, 0xF6B6, 0xF6B7, /* 0x80 */
- 0xF6B8, 0xF6B9, 0xF6BA, 0xC8A3, 0xF6BB, 0xFD88, 0xFD89, 0xFD8A, /* 0x80 */
- 0xFD8B, 0xFD8C, 0xFD8D, 0xFD8E, 0xFD8F, 0xFD90, 0xFD91, 0xFD92, /* 0x90 */
- 0xFD93, 0xC1FA, 0xB9A8, 0xEDE8, 0xFD94, 0xFD95, 0xFD96, 0xB9EA, /* 0x90 */
- 0xD9DF, 0xFD97, 0xFD98, 0xFD99, 0xFD9A, 0xFD9B /* 0xA0 */
- /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_APPLECHINSIMP_F8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0081, 0x0082 /* 0x80 */
- /* 0x80 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_F9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x20 */
- 0xFD9C, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xFD9D, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xFD9E, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0xFD9F, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0xFDA0 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_FA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xFE40, 0xFE41, 0xFE42, 0xFE43, /* 0x00 */
- 0, 0xFE44, 0, 0xFE45, 0xFE46, 0, 0, 0, /* 0x10 */
- 0xFE47, 0, 0, 0, 0, 0, 0, 0xFE48, /* 0x10 */
- 0xFE49, 0xFE4A, 0, 0xFE4B, 0xFE4C, 0, 0, 0xFE4D, /* 0x20 */
- 0xFE4E, 0xFE4F /* 0x20 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_FE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA955, 0xA6F2, 0, 0xA6F4, 0xA6F5, 0xA6E0, 0xA6E1, 0xA6F0, /* 0x30 */
- 0xA6F1, 0xA6E2, 0xA6E3, 0xA6EE, 0xA6EF, 0xA6E6, 0xA6E7, 0xA6E4, /* 0x30 */
- 0xA6E5, 0xA6E8, 0xA6E9, 0xA6EA, 0xA6EB, 0, 0, 0, /* 0x40 */
- 0, 0xA968, 0xA969, 0xA96A, 0xA96B, 0xA96C, 0xA96D, 0xA96E, /* 0x40 */
- 0xA96F, 0xA970, 0xA971, 0, 0xA972, 0xA973, 0xA974, 0xA975, /* 0x50 */
- 0, 0xA976, 0xA977, 0xA978, 0xA979, 0xA97A, 0xA97B, 0xA97C, /* 0x50 */
- 0xA97D, 0xA97E, 0xA980, 0xA981, 0xA982, 0xA983, 0xA984, 0, /* 0x60 */
- 0xA985, 0xA986, 0xA987, 0xA988 /* 0x60 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_FE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA6F2, 0, 0xA6F4, 0xA6F5, 0xA6E0, 0xA6E1, 0xA6F0, /* 0x30 */
- 0xA6F1, 0xA6E2, 0xA6E3, 0xA6EE, 0xA6EF, 0xA6E6, 0xA6E7, 0xA6E4, /* 0x30 */
- 0xA6E5, 0xA6E8, 0xA6E9, 0xA6EA, 0xA6EB /* 0x40 */
- /* 0x40 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBK_FF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA3A1, 0xA3A2, 0xA3A3, 0xA1E7, 0xA3A5, 0xA3A6, 0xA3A7, /* 0x00 */
- 0xA3A8, 0xA3A9, 0xA3AA, 0xA3AB, 0xA3AC, 0xA3AD, 0xA3AE, 0xA3AF, /* 0x00 */
- 0xA3B0, 0xA3B1, 0xA3B2, 0xA3B3, 0xA3B4, 0xA3B5, 0xA3B6, 0xA3B7, /* 0x10 */
- 0xA3B8, 0xA3B9, 0xA3BA, 0xA3BB, 0xA3BC, 0xA3BD, 0xA3BE, 0xA3BF, /* 0x10 */
- 0xA3C0, 0xA3C1, 0xA3C2, 0xA3C3, 0xA3C4, 0xA3C5, 0xA3C6, 0xA3C7, /* 0x20 */
- 0xA3C8, 0xA3C9, 0xA3CA, 0xA3CB, 0xA3CC, 0xA3CD, 0xA3CE, 0xA3CF, /* 0x20 */
- 0xA3D0, 0xA3D1, 0xA3D2, 0xA3D3, 0xA3D4, 0xA3D5, 0xA3D6, 0xA3D7, /* 0x30 */
- 0xA3D8, 0xA3D9, 0xA3DA, 0xA3DB, 0xA3DC, 0xA3DD, 0xA3DE, 0xA3DF, /* 0x30 */
- 0xA3E0, 0xA3E1, 0xA3E2, 0xA3E3, 0xA3E4, 0xA3E5, 0xA3E6, 0xA3E7, /* 0x40 */
- 0xA3E8, 0xA3E9, 0xA3EA, 0xA3EB, 0xA3EC, 0xA3ED, 0xA3EE, 0xA3EF, /* 0x40 */
- 0xA3F0, 0xA3F1, 0xA3F2, 0xA3F3, 0xA3F4, 0xA3F5, 0xA3F6, 0xA3F7, /* 0x50 */
- 0xA3F8, 0xA3F9, 0xA3FA, 0xA3FB, 0xA3FC, 0xA3FD, 0xA1AB, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xA1E9, 0xA1EA, 0xA956, 0xA3FE, 0xA957, 0xA3A4 /* 0xE0 */
- /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_FF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA3A1, 0xA3A2, 0xA3A3, 0xA1E7, 0xA3A5, 0xA3A6, 0xA3A7, /* 0x00 */
- 0xA3A8, 0xA3A9, 0xA3AA, 0xA3AB, 0xA3AC, 0xA3AD, 0xA3AE, 0xA3AF, /* 0x00 */
- 0xA3B0, 0xA3B1, 0xA3B2, 0xA3B3, 0xA3B4, 0xA3B5, 0xA3B6, 0xA3B7, /* 0x10 */
- 0xA3B8, 0xA3B9, 0xA3BA, 0xA3BB, 0xA3BC, 0xA3BD, 0xA3BE, 0xA3BF, /* 0x10 */
- 0xA3C0, 0xA3C1, 0xA3C2, 0xA3C3, 0xA3C4, 0xA3C5, 0xA3C6, 0xA3C7, /* 0x20 */
- 0xA3C8, 0xA3C9, 0xA3CA, 0xA3CB, 0xA3CC, 0xA3CD, 0xA3CE, 0xA3CF, /* 0x20 */
- 0xA3D0, 0xA3D1, 0xA3D2, 0xA3D3, 0xA3D4, 0xA3D5, 0xA3D6, 0xA3D7, /* 0x30 */
- 0xA3D8, 0xA3D9, 0xA3DA, 0xA3DB, 0xA3DC, 0xA3DD, 0xA3DE, 0xA3DF, /* 0x30 */
- 0xA3E0, 0xA3E1, 0xA3E2, 0xA3E3, 0xA3E4, 0xA3E5, 0xA3E6, 0xA3E7, /* 0x40 */
- 0xA3E8, 0xA3E9, 0xA3EA, 0xA3EB, 0xA3EC, 0xA3ED, 0xA3EE, 0xA3EF, /* 0x40 */
- 0xA3F0, 0xA3F1, 0xA3F2, 0xA3F3, 0xA3F4, 0xA3F5, 0xA3F6, 0xA3F7, /* 0x50 */
- 0xA3F8, 0xA3F9, 0xA3FA, 0xA3FB, 0xA3FC, 0xA3FD, 0xA1AB, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xA1E9, 0xA1EA, 0, 0xA3FE, 0, 0xA3A4, /* 0xE0 */
- /* 0xE0 */
-};
-
diff --git a/sal/textenc/tcvtscn3.tab b/sal/textenc/tcvtscn3.tab
deleted file mode 100644
index fd7ab0028..000000000
--- a/sal/textenc/tcvtscn3.tab
+++ /dev/null
@@ -1,1502 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the DBCS to UniCode tables for the following */
-/* chinese simplified (China) charsets: */
-/* GBT (GB12345) */
-
-/* ======================================================================= */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_B0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x554A, 0x963F, 0x57C3, 0x6328, 0x54CE, 0x5509, 0x54C0, /* 0xA0 */
- 0x769A, 0x764C, 0x85F9, 0x77EE, 0x827E, 0x7919, 0x611B, 0x9698, /* 0xA0 */
- 0x978D, 0x6C28, 0x5B89, 0x4FFA, 0x6309, 0x6697, 0x5CB8, 0x80FA, /* 0xB0 */
- 0x6848, 0x9AAF, 0x6602, 0x76CE, 0x51F9, 0x6556, 0x71AC, 0x7FF1, /* 0xB0 */
- 0x8956, 0x50B2, 0x5965, 0x61CA, 0x6FB3, 0x82AD, 0x634C, 0x6252, /* 0xC0 */
- 0x53ED, 0x5427, 0x7B06, 0x516B, 0x75A4, 0x5DF4, 0x62D4, 0x8DCB, /* 0xC0 */
- 0x9776, 0x628A, 0x8019, 0x58E9, 0x9738, 0x7F77, 0x7238, 0x767D, /* 0xD0 */
- 0x67CF, 0x767E, 0x64FA, 0x4F70, 0x6557, 0x62DC, 0x7A17, 0x6591, /* 0xD0 */
- 0x73ED, 0x642C, 0x6273, 0x822C, 0x9812, 0x677F, 0x7248, 0x626E, /* 0xE0 */
- 0x62CC, 0x4F34, 0x74E3, 0x534A, 0x8FA6, 0x7D46, 0x90A6, 0x5E6B, /* 0xE0 */
- 0x6886, 0x699C, 0x8180, 0x7D81, 0x68D2, 0x78C5, 0x868C, 0x938A, /* 0xF0 */
- 0x508D, 0x8B17, 0x82DE, 0x80DE, 0x5305, 0x8912, 0x5265 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_B1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8584, 0x96F9, 0x4FDD, 0x5821, 0x98FD, 0x5BF6, 0x62B1, /* 0xA0 */
- 0x5831, 0x66B4, 0x8C79, 0x9B91, 0x7206, 0x676F, 0x7891, 0x60B2, /* 0xA0 */
- 0x5351, 0x5317, 0x8F29, 0x80CC, 0x8C9D, 0x92C7, 0x500D, 0x72FD, /* 0xB0 */
- 0x5099, 0x618A, 0x7119, 0x88AB, 0x5954, 0x82EF, 0x672C, 0x7B28, /* 0xB0 */
- 0x5D29, 0x7DB3, 0x752D, 0x6CF5, 0x8E66, 0x8FF8, 0x903C, 0x9F3B, /* 0xC0 */
- 0x6BD4, 0x9119, 0x7B46, 0x5F7C, 0x78A7, 0x84D6, 0x853D, 0x7562, /* 0xC0 */
- 0x6583, 0x6BD6, 0x5E63, 0x5E87, 0x75F9, 0x9589, 0x655D, 0x5F0A, /* 0xD0 */
- 0x5FC5, 0x8F9F, 0x58C1, 0x81C2, 0x907F, 0x965B, 0x97AD, 0x908A, /* 0xD0 */
- 0x7DE8, 0x8CB6, 0x6241, 0x4FBF, 0x8B8A, 0x535E, 0x8FA8, 0x8FAF, /* 0xE0 */
- 0x8FAE, 0x904D, 0x6A19, 0x5F6A, 0x8198, 0x8868, 0x9C49, 0x618B, /* 0xE0 */
- 0x522B, 0x765F, 0x5F6C, 0x658C, 0x7015, 0x6FF1, 0x8CD3, 0x64EF, /* 0xF0 */
- 0x5175, 0x51B0, 0x67C4, 0x4E19, 0x79C9, 0x9905, 0x70B3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_B2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x75C5, 0x5E76, 0x73BB, 0x83E0, 0x64AD, 0x64A5, 0x9262, /* 0xA0 */
- 0x6CE2, 0x535A, 0x52C3, 0x640F, 0x9251, 0x7B94, 0x4F2F, 0x5E1B, /* 0xA0 */
- 0x8236, 0x8116, 0x818A, 0x6E24, 0x6CCA, 0x99C1, 0x6355, 0x535C, /* 0xB0 */
- 0x54FA, 0x88DC, 0x57E0, 0x4E0D, 0x5E03, 0x6B65, 0x7C3F, 0x90E8, /* 0xB0 */
- 0x6016, 0x64E6, 0x731C, 0x88C1, 0x6750, 0x624D, 0x8CA1, 0x776C, /* 0xC0 */
- 0x8E29, 0x91C7, 0x5F69, 0x83DC, 0x8521, 0x9910, 0x53C3, 0x8836, /* 0xC0 */
- 0x6B98, 0x615A, 0x6158, 0x71E6, 0x84BC, 0x8259, 0x5009, 0x6EC4, /* 0xD0 */
- 0x85CF, 0x64CD, 0x7CD9, 0x69FD, 0x66F9, 0x8349, 0x53A0, 0x7B56, /* 0xD0 */
- 0x5074, 0x518C, 0x6E2C, 0x5C64, 0x8E6D, 0x63D2, 0x53C9, 0x832C, /* 0xE0 */
- 0x8336, 0x67E5, 0x78B4, 0x643D, 0x5BDF, 0x5C94, 0x5DEE, 0x8A6B, /* 0xE0 */
- 0x62C6, 0x67F4, 0x8C7A, 0x6519, 0x647B, 0x87EC, 0x995E, 0x8B92, /* 0xF0 */
- 0x7E8F, 0x93DF, 0x7523, 0x95E1, 0x986B, 0x660C, 0x7316 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_B3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5834, 0x5617, 0x5E38, 0x9577, 0x511F, 0x8178, 0x5EE0, /* 0xA0 */
- 0x655E, 0x66A2, 0x5531, 0x5021, 0x8D85, 0x6284, 0x9214, 0x671D, /* 0xA0 */
- 0x5632, 0x6F6E, 0x5DE2, 0x5435, 0x7092, 0x8ECA, 0x626F, 0x64A4, /* 0xB0 */
- 0x63A3, 0x5FB9, 0x6F88, 0x90F4, 0x81E3, 0x8FB0, 0x5875, 0x6668, /* 0xB0 */
- 0x5FF1, 0x6C89, 0x9673, 0x8D81, 0x896F, 0x6491, 0x7A31, 0x57CE, /* 0xC0 */
- 0x6A59, 0x6210, 0x5448, 0x4E58, 0x7A0B, 0x61F2, 0x6F84, 0x8AA0, /* 0xC0 */
- 0x627F, 0x901E, 0x9A01, 0x79E4, 0x5403, 0x75F4, 0x6301, 0x5319, /* 0xD0 */
- 0x6C60, 0x9072, 0x5F1B, 0x99B3, 0x803B, 0x9F52, 0x4F88, 0x5C3A, /* 0xD0 */
- 0x8D64, 0x7FC5, 0x65A5, 0x71BE, 0x5145, 0x885D, 0x87F2, 0x5D07, /* 0xE0 */
- 0x5BF5, 0x62BD, 0x916C, 0x7587, 0x8E8A, 0x7A20, 0x6101, 0x7C4C, /* 0xE0 */
- 0x4EC7, 0x7DA2, 0x7785, 0x919C, 0x81ED, 0x521D, 0x51FA, 0x6A71, /* 0xF0 */
- 0x53A8, 0x8E87, 0x92E4, 0x96DB, 0x6EC1, 0x9664, 0x695A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_B4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x790E, 0x5132, 0x77D7, 0x6410, 0x89F8, 0x8655, 0x63E3, /* 0xA0 */
- 0x5DDD, 0x7A7F, 0x693D, 0x50B3, 0x8239, 0x5598, 0x4E32, 0x7621, /* 0xA0 */
- 0x7A97, 0x5E62, 0x5E8A, 0x95D6, 0x5275, 0x5439, 0x708A, 0x6376, /* 0xB0 */
- 0x9318, 0x5782, 0x6625, 0x693F, 0x9187, 0x5507, 0x6DF3, 0x7D14, /* 0xB0 */
- 0x8822, 0x6233, 0x7DBD, 0x75B5, 0x8328, 0x78C1, 0x96CC, 0x8FAD, /* 0xC0 */
- 0x6148, 0x74F7, 0x8A5E, 0x6B64, 0x523A, 0x8CDC, 0x6B21, 0x8070, /* 0xC0 */
- 0x8471, 0x56F1, 0x5306, 0x5F9E, 0x53E2, 0x51D1, 0x7C97, 0x918B, /* 0xD0 */
- 0x7C07, 0x4FC3, 0x8EA5, 0x7BE1, 0x7AC4, 0x6467, 0x5D14, 0x50AC, /* 0xD0 */
- 0x8106, 0x7601, 0x7CB9, 0x6DEC, 0x7FE0, 0x6751, 0x5B58, 0x5BF8, /* 0xE0 */
- 0x78CB, 0x64AE, 0x6413, 0x63AA, 0x632B, 0x932F, 0x642D, 0x9054, /* 0xE0 */
- 0x7B54, 0x7629, 0x6253, 0x5927, 0x5446, 0x6B79, 0x50A3, 0x6234, /* 0xF0 */
- 0x5E36, 0x6B86, 0x4EE3, 0x8CB8, 0x888B, 0x5F85, 0x902E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_B5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6020, 0x803D, 0x64D4, 0x4E39, 0x55AE, 0x9132, 0x64A3, /* 0xA0 */
- 0x81BD, 0x65E6, 0x6C2E, 0x4F46, 0x619A, 0x6DE1, 0x8A95, 0x5F48, /* 0xA0 */
- 0x86CB, 0x7576, 0x64CB, 0x9EE8, 0x8569, 0x6A94, 0x5200, 0x6417, /* 0xB0 */
- 0x8E48, 0x5012, 0x5CF6, 0x79B1, 0x5C0E, 0x5230, 0x7A3B, 0x60BC, /* 0xB0 */
- 0x9053, 0x76D7, 0x5FB7, 0x5F97, 0x7684, 0x8E6C, 0x71C8, 0x767B, /* 0xC0 */
- 0x7B49, 0x77AA, 0x51F3, 0x9127, 0x5824, 0x4F4E, 0x6EF4, 0x8FEA, /* 0xC0 */
- 0x6575, 0x7B1B, 0x72C4, 0x6ECC, 0x7FDF, 0x5AE1, 0x62B5, 0x5E95, /* 0xD0 */
- 0x5730, 0x8482, 0x7B2C, 0x5E1D, 0x5F1F, 0x905E, 0x7DE0, 0x985B, /* 0xD0 */
- 0x6382, 0x6EC7, 0x7898, 0x9EDE, 0x5178, 0x975B, 0x588A, 0x96FB, /* 0xE0 */
- 0x4F43, 0x7538, 0x5E97, 0x60E6, 0x5960, 0x6FB1, 0x6BBF, 0x7889, /* 0xE0 */
- 0x53FC, 0x96D5, 0x51CB, 0x5201, 0x6389, 0x540A, 0x91E3, 0x8ABF, /* 0xF0 */
- 0x8DCC, 0x7239, 0x789F, 0x8776, 0x8FED, 0x8ADC, 0x758A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_B6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4E01, 0x76EF, 0x53EE, 0x91D8, 0x9802, 0x9F0E, 0x9320, /* 0xA0 */
- 0x5B9A, 0x8A02, 0x4E22, 0x6771, 0x51AC, 0x8463, 0x61C2, 0x52D5, /* 0xA0 */
- 0x68DF, 0x4F97, 0x606B, 0x51CD, 0x6D1E, 0x515C, 0x6296, 0x9B25, /* 0xB0 */
- 0x9661, 0x8C46, 0x9017, 0x75D8, 0x90FD, 0x7763, 0x6BD2, 0x72A2, /* 0xB0 */
- 0x7368, 0x8B80, 0x5835, 0x7779, 0x8CED, 0x675C, 0x934D, 0x809A, /* 0xC0 */
- 0x5EA6, 0x6E21, 0x5992, 0x7AEF, 0x77ED, 0x935B, 0x6BB5, 0x65B7, /* 0xC0 */
- 0x7DDE, 0x5806, 0x5151, 0x968A, 0x5C0D, 0x58A9, 0x5678, 0x8E72, /* 0xD0 */
- 0x6566, 0x9813, 0x56E4, 0x920D, 0x76FE, 0x9041, 0x6387, 0x54C6, /* 0xD0 */
- 0x591A, 0x596A, 0x579B, 0x8EB2, 0x6735, 0x8DFA, 0x8235, 0x5241, /* 0xE0 */
- 0x60F0, 0x58AE, 0x86FE, 0x5CE8, 0x9D5D, 0x4FC4, 0x984D, 0x8A1B, /* 0xE0 */
- 0x5A25, 0x60E1, 0x5384, 0x627C, 0x904F, 0x9102, 0x9913, 0x6069, /* 0xF0 */
- 0x800C, 0x5152, 0x8033, 0x723E, 0x990C, 0x6D31, 0x4E8C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_B7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8CB3, 0x767C, 0x7F70, 0x7B4F, 0x4F10, 0x4E4F, 0x95A5, /* 0xA0 */
- 0x6CD5, 0x73D0, 0x85E9, 0x5E06, 0x756A, 0x7FFB, 0x6A0A, 0x792C, /* 0xA0 */
- 0x91E9, 0x7E41, 0x51E1, 0x7169, 0x53CD, 0x8FD4, 0x7BC4, 0x8CA9, /* 0xB0 */
- 0x72AF, 0x98EF, 0x6CDB, 0x574A, 0x82B3, 0x65B9, 0x80AA, 0x623F, /* 0xB0 */
- 0x9632, 0x59A8, 0x4EFF, 0x8A2A, 0x7D21, 0x653E, 0x83F2, 0x975E, /* 0xC0 */
- 0x5561, 0x98DB, 0x80A5, 0x532A, 0x8AB9, 0x5420, 0x80BA, 0x5EE2, /* 0xC0 */
- 0x6CB8, 0x8CBB, 0x82AC, 0x915A, 0x5429, 0x6C1B, 0x5206, 0x7D1B, /* 0xD0 */
- 0x58B3, 0x711A, 0x6C7E, 0x7C89, 0x596E, 0x4EFD, 0x5FFF, 0x61A4, /* 0xD0 */
- 0x7CDE, 0x8C50, 0x5C01, 0x6953, 0x8702, 0x5CF0, 0x92D2, 0x98A8, /* 0xE0 */
- 0x760B, 0x70FD, 0x9022, 0x99AE, 0x7E2B, 0x8AF7, 0x5949, 0x9CF3, /* 0xE0 */
- 0x4F5B, 0x5426, 0x592B, 0x6577, 0x819A, 0x5B75, 0x6276, 0x62C2, /* 0xF0 */
- 0x8F3B, 0x5E45, 0x6C1F, 0x7B26, 0x4F0F, 0x4FD8, 0x670D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_B8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6D6E, 0x6DAA, 0x798F, 0x88B1, 0x5F17, 0x752B, 0x64AB, /* 0xA0 */
- 0x8F14, 0x4FEF, 0x91DC, 0x65A7, 0x812F, 0x8151, 0x5E9C, 0x8150, /* 0xA0 */
- 0x8D74, 0x526F, 0x8986, 0x8CE6, 0x5FA9, 0x5085, 0x4ED8, 0x961C, /* 0xB0 */
- 0x7236, 0x8179, 0x8CA0, 0x5BCC, 0x8A03, 0x9644, 0x5A66, 0x7E1B, /* 0xB0 */
- 0x5490, 0x5676, 0x560E, 0x8A72, 0x6539, 0x6982, 0x9223, 0x84CB, /* 0xC0 */
- 0x6E89, 0x5E79, 0x7518, 0x6746, 0x67D1, 0x7AFF, 0x809D, 0x8D95, /* 0xC0 */
- 0x611F, 0x79C6, 0x6562, 0x8D1B, 0x5CA1, 0x525B, 0x92FC, 0x7F38, /* 0xD0 */
- 0x809B, 0x7DB1, 0x5D17, 0x6E2F, 0x6760, 0x7BD9, 0x768B, 0x9AD8, /* 0xD0 */
- 0x818F, 0x7F94, 0x7CD5, 0x641E, 0x93AC, 0x7A3F, 0x544A, 0x54E5, /* 0xE0 */
- 0x6B4C, 0x64F1, 0x6208, 0x9D3F, 0x80F3, 0x7599, 0x5272, 0x9769, /* 0xE0 */
- 0x845B, 0x683C, 0x86E4, 0x95A3, 0x9694, 0x927B, 0x500B, 0x5404, /* 0xF0 */
- 0x7D66, 0x6839, 0x8DDF, 0x8015, 0x66F4, 0x5E9A, 0x7FB9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_B9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x57C2, 0x803F, 0x6897, 0x5DE5, 0x653B, 0x529F, 0x606D, /* 0xA0 */
- 0x9F94, 0x4F9B, 0x8EAC, 0x516C, 0x5BAB, 0x5F13, 0x978F, 0x6C5E, /* 0xA0 */
- 0x62F1, 0x8CA2, 0x5171, 0x920E, 0x52FE, 0x6E9D, 0x82DF, 0x72D7, /* 0xB0 */
- 0x57A2, 0x69CB, 0x8CFC, 0x591F, 0x8F9C, 0x83C7, 0x5495, 0x7B8D, /* 0xB0 */
- 0x4F30, 0x6CBD, 0x5B64, 0x59D1, 0x9F13, 0x53E4, 0x8831, 0x9AA8, /* 0xC0 */
- 0x8C37, 0x80A1, 0x6545, 0x9867, 0x56FA, 0x96C7, 0x522E, 0x74DC, /* 0xC0 */
- 0x526E, 0x5BE1, 0x6302, 0x8902, 0x4E56, 0x62D0, 0x602A, 0x68FA, /* 0xD0 */
- 0x95DC, 0x5B98, 0x51A0, 0x89C0, 0x7BA1, 0x9928, 0x7F50, 0x6163, /* 0xD0 */
- 0x704C, 0x8CAB, 0x5149, 0x5EE3, 0x901B, 0x7470, 0x898F, 0x572D, /* 0xE0 */
- 0x7845, 0x6B78, 0x9F9C, 0x95A8, 0x8ECC, 0x9B3C, 0x8A6D, 0x7678, /* 0xE0 */
- 0x6842, 0x6AC3, 0x8DEA, 0x8CB4, 0x528A, 0x8F25, 0x6EDA, 0x68CD, /* 0xF0 */
- 0x934B, 0x90ED, 0x570B, 0x679C, 0x88F9, 0x904E, 0x54C8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_BA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9AB8, 0x5B69, 0x6D77, 0x6C26, 0x4EA5, 0x5BB3, 0x99ED, /* 0xA0 */
- 0x9163, 0x61A8, 0x90AF, 0x97D3, 0x542B, 0x6DB5, 0x5BD2, 0x51FD, /* 0xA0 */
- 0x558A, 0x7F55, 0x7FF0, 0x64BC, 0x634D, 0x65F1, 0x61BE, 0x608D, /* 0xB0 */
- 0x710A, 0x6C57, 0x6F22, 0x592F, 0x676D, 0x822A, 0x58D5, 0x568E, /* 0xB0 */
- 0x8C6A, 0x6BEB, 0x90DD, 0x597D, 0x8017, 0x865F, 0x6D69, 0x5475, /* 0xC0 */
- 0x559D, 0x8377, 0x83CF, 0x6838, 0x79BE, 0x548C, 0x4F55, 0x5408, /* 0xC0 */
- 0x76D2, 0x8C89, 0x95A1, 0x6CB3, 0x6DB8, 0x8D6B, 0x8910, 0x9DB4, /* 0xD0 */
- 0x8CC0, 0x563F, 0x9ED1, 0x75D5, 0x5F88, 0x72E0, 0x6068, 0x54FC, /* 0xD0 */
- 0x4EA8, 0x6A2A, 0x8861, 0x6052, 0x8F5F, 0x54C4, 0x70D8, 0x8679, /* 0xE0 */
- 0x9D3B, 0x6D2A, 0x5B8F, 0x5F18, 0x7D05, 0x5589, 0x4FAF, 0x7334, /* 0xE0 */
- 0x543C, 0x539A, 0x5019, 0x5F8C, 0x547C, 0x4E4E, 0x5FFD, 0x745A, /* 0xF0 */
- 0x58FA, 0x846B, 0x80E1, 0x8774, 0x72D0, 0x7CCA, 0x6E56 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_BB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5F27, 0x864E, 0x552C, 0x8B77, 0x4E92, 0x6EEC, 0x6237, /* 0xA0 */
- 0x82B1, 0x5629, 0x83EF, 0x733E, 0x6ED1, 0x756B, 0x5283, 0x5316, /* 0xA0 */
- 0x8A71, 0x69D0, 0x5F8A, 0x61F7, 0x6DEE, 0x58DE, 0x6B61, 0x74B0, /* 0xB0 */
- 0x6853, 0x9084, 0x7DE9, 0x63DB, 0x60A3, 0x559A, 0x7613, 0x8C62, /* 0xB0 */
- 0x7165, 0x6E19, 0x5BA6, 0x5E7B, 0x8352, 0x614C, 0x9EC4, 0x78FA, /* 0xC0 */
- 0x8757, 0x7C27, 0x7687, 0x51F0, 0x60F6, 0x714C, 0x6643, 0x5E4C, /* 0xC0 */
- 0x604D, 0x8B0A, 0x7070, 0x63EE, 0x8F1D, 0x5FBD, 0x6062, 0x86D4, /* 0xD0 */
- 0x56DE, 0x6BC1, 0x6094, 0x6167, 0x5349, 0x60E0, 0x6666, 0x8CC4, /* 0xD0 */
- 0x7A62, 0x6703, 0x71F4, 0x532F, 0x8AF1, 0x8AA8, 0x7E6A, 0x8477, /* 0xE0 */
- 0x660F, 0x5A5A, 0x9B42, 0x6E3E, 0x6DF7, 0x8C41, 0x6D3B, 0x4F19, /* 0xE0 */
- 0x706B, 0x7372, 0x6216, 0x60D1, 0x970D, 0x8CA8, 0x798D, 0x64CA, /* 0xF0 */
- 0x573E, 0x57FA, 0x6A5F, 0x7578, 0x7A3D, 0x7A4D, 0x7B95 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_BC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x808C, 0x9951, 0x8FF9, 0x6FC0, 0x8B4F, 0x9DC4, 0x59EC, /* 0xA0 */
- 0x7E3E, 0x7DDD, 0x5409, 0x6975, 0x68D8, 0x8F2F, 0x7C4D, 0x96C6, /* 0xA0 */
- 0x53CA, 0x6025, 0x75BE, 0x6C72, 0x5373, 0x5AC9, 0x7D1A, 0x64E0, /* 0xB0 */
- 0x5E7E, 0x810A, 0x5DF1, 0x858A, 0x6280, 0x5180, 0x5B63, 0x4F0E, /* 0xB0 */
- 0x796D, 0x5291, 0x60B8, 0x6FDF, 0x5BC4, 0x5BC2, 0x8A08, 0x8A18, /* 0xC0 */
- 0x65E2, 0x5FCC, 0x969B, 0x5993, 0x7E7C, 0x7D00, 0x5609, 0x67B7, /* 0xC0 */
- 0x593E, 0x4F73, 0x5BB6, 0x52A0, 0x83A2, 0x9830, 0x8CC8, 0x7532, /* 0xD0 */
- 0x9240, 0x5047, 0x7A3C, 0x50F9, 0x67B6, 0x99D5, 0x5AC1, 0x6BB2, /* 0xD0 */
- 0x76E3, 0x5805, 0x5C16, 0x7B8B, 0x9593, 0x714E, 0x517C, 0x80A9, /* 0xE0 */
- 0x8271, 0x5978, 0x7DD8, 0x7E6D, 0x6AA2, 0x67EC, 0x78B1, 0x9E7C, /* 0xE0 */
- 0x63C0, 0x64BF, 0x7C21, 0x5109, 0x526A, 0x51CF, 0x85A6, 0x6ABB, /* 0xF0 */
- 0x9452, 0x8E10, 0x8CE4, 0x898B, 0x9375, 0x7BAD, 0x4EF6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_BD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5065, 0x8266, 0x528D, 0x991E, 0x6F38, 0x6FFA, 0x6F97, /* 0xA0 */
- 0x5EFA, 0x50F5, 0x59DC, 0x5C07, 0x6F3F, 0x6C5F, 0x7586, 0x8523, /* 0xA0 */
- 0x69F3, 0x596C, 0x8B1B, 0x5320, 0x91AC, 0x964D, 0x8549, 0x6912, /* 0xB0 */
- 0x7901, 0x7126, 0x81A0, 0x4EA4, 0x90CA, 0x6F86, 0x9A55, 0x5B0C, /* 0xB0 */
- 0x56BC, 0x652A, 0x9278, 0x77EF, 0x50E5, 0x811A, 0x72E1, 0x89D2, /* 0xC0 */
- 0x9903, 0x7E73, 0x7D5E, 0x527F, 0x6559, 0x9175, 0x8F4E, 0x8F03, /* 0xC0 */
- 0x53EB, 0x7A96, 0x63ED, 0x63A5, 0x7686, 0x79F8, 0x8857, 0x968E, /* 0xD0 */
- 0x622A, 0x52AB, 0x7BC0, 0x6854, 0x6770, 0x6377, 0x776B, 0x7AED, /* 0xD0 */
- 0x6F54, 0x7D50, 0x89E3, 0x59D0, 0x6212, 0x85C9, 0x82A5, 0x754C, /* 0xE0 */
- 0x501F, 0x4ECB, 0x75A5, 0x8AA1, 0x5C4A, 0x5DFE, 0x7B4B, 0x65A4, /* 0xE0 */
- 0x91D1, 0x4ECA, 0x6D25, 0x895F, 0x7DCA, 0x9326, 0x50C5, 0x8B39, /* 0xF0 */
- 0x9032, 0x9773, 0x6649, 0x7981, 0x8FD1, 0x71FC, 0x6D78 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_BE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x76E1, 0x52C1, 0x8346, 0x5162, 0x8396, 0x775B, 0x6676, /* 0xA0 */
- 0x9BE8, 0x4EAC, 0x9A5A, 0x7CBE, 0x7CB3, 0x7D93, 0x4E95, 0x8B66, /* 0xA0 */
- 0x666F, 0x9838, 0x975C, 0x5883, 0x656C, 0x93E1, 0x5F91, 0x75D9, /* 0xB0 */
- 0x9756, 0x7ADF, 0x7AF6, 0x51C8, 0x70AF, 0x7A98, 0x63EA, 0x7A76, /* 0xB0 */
- 0x7CFE, 0x7396, 0x97ED, 0x4E45, 0x7078, 0x4E5D, 0x9152, 0x53A9, /* 0xC0 */
- 0x6551, 0x820A, 0x81FC, 0x8205, 0x548E, 0x5C31, 0x759A, 0x97A0, /* 0xC0 */
- 0x62D8, 0x72D9, 0x75BD, 0x5C45, 0x99D2, 0x83CA, 0x5C40, 0x5480, /* 0xD0 */
- 0x77E9, 0x8209, 0x6CAE, 0x805A, 0x62D2, 0x64DA, 0x5DE8, 0x5177, /* 0xD0 */
- 0x8DDD, 0x8E1E, 0x92F8, 0x4FF1, 0x53E5, 0x61FC, 0x70AC, 0x5287, /* 0xE0 */
- 0x6350, 0x9D51, 0x5A1F, 0x5026, 0x7737, 0x5377, 0x7D79, 0x6485, /* 0xE0 */
- 0x652B, 0x6289, 0x6398, 0x5014, 0x7235, 0x89BA, 0x51B3, 0x8A23, /* 0xF0 */
- 0x7D76, 0x5747, 0x83CC, 0x921E, 0x8ECD, 0x541B, 0x5CFB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_BF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4FCA, 0x7AE3, 0x6D5A, 0x90E1, 0x99FF, 0x5580, 0x5496, /* 0xA0 */
- 0x5361, 0x54AF, 0x958B, 0x63E9, 0x6977, 0x51F1, 0x6168, 0x520A, /* 0xA0 */
- 0x582A, 0x52D8, 0x574E, 0x780D, 0x770B, 0x5EB7, 0x6177, 0x7CE0, /* 0xB0 */
- 0x625B, 0x6297, 0x4EA2, 0x7095, 0x8003, 0x62F7, 0x70E4, 0x9760, /* 0xB0 */
- 0x5777, 0x82DB, 0x67EF, 0x68F5, 0x78D5, 0x9846, 0x79D1, 0x6BBB, /* 0xC0 */
- 0x54B3, 0x53EF, 0x6E34, 0x514B, 0x523B, 0x5BA2, 0x8AB2, 0x80AF, /* 0xC0 */
- 0x5543, 0x58BE, 0x61C7, 0x5751, 0x542D, 0x7A7A, 0x6050, 0x5B54, /* 0xD0 */
- 0x63A7, 0x6473, 0x53E3, 0x6263, 0x5BC7, 0x67AF, 0x54ED, 0x7A9F, /* 0xD0 */
- 0x82E6, 0x9177, 0x5EAB, 0x8932, 0x8A87, 0x57AE, 0x630E, 0x8DE8, /* 0xE0 */
- 0x80EF, 0x584A, 0x7B77, 0x5108, 0x5FEB, 0x5BEC, 0x6B3E, 0x5321, /* 0xE0 */
- 0x7B50, 0x72C2, 0x6846, 0x7926, 0x7736, 0x66E0, 0x51B5, 0x8667, /* 0xF0 */
- 0x76D4, 0x5DCB, 0x7ABA, 0x8475, 0x594E, 0x9B41, 0x5080 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_C0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x994B, 0x6127, 0x6F70, 0x5764, 0x6606, 0x6346, 0x56F0, /* 0xA0 */
- 0x62EC, 0x64F4, 0x5ED3, 0x95CA, 0x5783, 0x62C9, 0x5587, 0x881F, /* 0xA0 */
- 0x81D8, 0x8FA3, 0x5566, 0x840A, 0x4F86, 0x8CF4, 0x85CD, 0x5A6A, /* 0xB0 */
- 0x6B04, 0x6514, 0x7C43, 0x95CC, 0x862D, 0x703E, 0x8B95, 0x652C, /* 0xB0 */
- 0x89BD, 0x61F6, 0x7E9C, 0x721B, 0x6FEB, 0x7405, 0x6994, 0x72FC, /* 0xC0 */
- 0x5ECA, 0x90CE, 0x6717, 0x6D6A, 0x6488, 0x52DE, 0x7262, 0x8001, /* 0xC0 */
- 0x4F6C, 0x59E5, 0x916A, 0x70D9, 0x6F87, 0x52D2, 0x6A02, 0x96F7, /* 0xD0 */
- 0x9433, 0x857E, 0x78CA, 0x7D2F, 0x5121, 0x58D8, 0x64C2, 0x808B, /* 0xD0 */
- 0x985E, 0x6CEA, 0x68F1, 0x695E, 0x51B7, 0x5398, 0x68A8, 0x7281, /* 0xE0 */
- 0x9ECE, 0x7C6C, 0x72F8, 0x96E2, 0x7055, 0x7406, 0x674E, 0x88CF, /* 0xE0 */
- 0x9BC9, 0x79AE, 0x8389, 0x8354, 0x540F, 0x6817, 0x9E97, 0x53B2, /* 0xF0 */
- 0x52F5, 0x792B, 0x6B77, 0x5229, 0x5088, 0x4F8B, 0x4FD0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_C1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x75E2, 0x7ACB, 0x7C92, 0x701D, 0x96B8, 0x529B, 0x7483, /* 0xA0 */
- 0x54E9, 0x5006, 0x806F, 0x84EE, 0x9023, 0x942E, 0x5EC9, 0x6190, /* 0xA0 */
- 0x6F23, 0x7C3E, 0x6582, 0x81C9, 0x93C8, 0x6200, 0x7149, 0x7DF4, /* 0xB0 */
- 0x7CE7, 0x51C9, 0x6881, 0x7CB1, 0x826F, 0x5169, 0x8F1B, 0x91CF, /* 0xB0 */
- 0x667E, 0x4EAE, 0x8AD2, 0x64A9, 0x804A, 0x50DA, 0x7642, 0x71CE, /* 0xC0 */
- 0x5BE5, 0x907C, 0x6F66, 0x4E86, 0x6482, 0x9410, 0x5ED6, 0x6599, /* 0xC0 */
- 0x5217, 0x88C2, 0x70C8, 0x52A3, 0x7375, 0x7433, 0x6797, 0x78F7, /* 0xD0 */
- 0x9716, 0x81E8, 0x9130, 0x9C57, 0x6DCB, 0x51DB, 0x8CC3, 0x541D, /* 0xD0 */
- 0x62CE, 0x73B2, 0x83F1, 0x96F6, 0x9F61, 0x9234, 0x4F36, 0x7F9A, /* 0xE0 */
- 0x51CC, 0x9748, 0x9675, 0x5DBA, 0x9818, 0x53E6, 0x4EE4, 0x6E9C, /* 0xE0 */
- 0x7409, 0x69B4, 0x786B, 0x993E, 0x7559, 0x5289, 0x7624, 0x6D41, /* 0xF0 */
- 0x67F3, 0x516D, 0x9F8D, 0x807E, 0x56A8, 0x7C60, 0x7ABF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_C2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9686, 0x58DF, 0x650F, 0x96B4, 0x6A13, 0x5A41, 0x645F, /* 0xA0 */
- 0x7C0D, 0x6F0F, 0x964B, 0x8606, 0x76E7, 0x9871, 0x5EEC, 0x7210, /* 0xA0 */
- 0x64C4, 0x6EF7, 0x865C, 0x9B6F, 0x9E93, 0x788C, 0x9732, 0x8DEF, /* 0xB0 */
- 0x8CC2, 0x9E7F, 0x6F5E, 0x7984, 0x9332, 0x9678, 0x622E, 0x9A62, /* 0xB0 */
- 0x5415, 0x92C1, 0x4FA3, 0x65C5, 0x5C65, 0x5C62, 0x7E37, 0x616E, /* 0xC0 */
- 0x6C2F, 0x5F8B, 0x7387, 0x6FFE, 0x7DD1, 0x5DD2, 0x6523, 0x5B7F, /* 0xC0 */
- 0x7064, 0x5375, 0x4E82, 0x63A0, 0x7565, 0x6384, 0x8F2A, 0x502B, /* 0xD0 */
- 0x4F96, 0x6DEA, 0x7DB8, 0x8AD6, 0x863F, 0x87BA, 0x7F85, 0x908F, /* 0xD0 */
- 0x947C, 0x7C6E, 0x9A3E, 0x88F8, 0x843D, 0x6D1B, 0x99F1, 0x7D61, /* 0xE0 */
- 0x5ABD, 0x9EBB, 0x746A, 0x78BC, 0x879E, 0x99AC, 0x99E1, 0x561B, /* 0xE0 */
- 0x55CE, 0x57CB, 0x8CB7, 0x9EA5, 0x8CE3, 0x9081, 0x8109, 0x779E, /* 0xF0 */
- 0x9945, 0x883B, 0x6EFF, 0x8513, 0x66FC, 0x6162, 0x6F2B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_C3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8B3E, 0x8292, 0x832B, 0x76F2, 0x6C13, 0x5FD9, 0x83BD, /* 0xA0 */
- 0x732B, 0x8305, 0x9328, 0x6BDB, 0x77DB, 0x925A, 0x536F, 0x8302, /* 0xA0 */
- 0x5192, 0x5E3D, 0x8C8C, 0x8CBF, 0x9EBD, 0x73AB, 0x679A, 0x6885, /* 0xB0 */
- 0x9176, 0x9709, 0x7164, 0x6CA1, 0x7709, 0x5A92, 0x9382, 0x6BCF, /* 0xB0 */
- 0x7F8E, 0x6627, 0x5BD0, 0x59B9, 0x5A9A, 0x9580, 0x60B6, 0x5011, /* 0xC0 */
- 0x840C, 0x8499, 0x6AAC, 0x76DF, 0x9333, 0x731B, 0x5922, 0x5B5F, /* 0xC0 */
- 0x772F, 0x919A, 0x9761, 0x7CDC, 0x8FF7, 0x8B0E, 0x5F4C, 0x7C73, /* 0xD0 */
- 0x79D8, 0x8993, 0x6CCC, 0x871C, 0x5BC6, 0x5E42, 0x68C9, 0x7720, /* 0xD0 */
- 0x7DBF, 0x5195, 0x514D, 0x52C9, 0x5A29, 0x7DEC, 0x9762, 0x82D7, /* 0xE0 */
- 0x63CF, 0x7784, 0x85D0, 0x79D2, 0x6E3A, 0x5EDF, 0x5999, 0x8511, /* 0xE0 */
- 0x6EC5, 0x6C11, 0x62BF, 0x76BF, 0x654F, 0x61AB, 0x95A9, 0x660E, /* 0xF0 */
- 0x879F, 0x9CF4, 0x9298, 0x540D, 0x547D, 0x8B2C, 0x6478 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_C4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6479, 0x8611, 0x6A21, 0x819C, 0x78E8, 0x6469, 0x9B54, /* 0xA0 */
- 0x62B9, 0x672B, 0x83AB, 0x58A8, 0x9ED8, 0x6CAB, 0x6F20, 0x5BDE, /* 0xA0 */
- 0x964C, 0x8B00, 0x725F, 0x67D0, 0x62C7, 0x7261, 0x755D, 0x59C6, /* 0xB0 */
- 0x6BCD, 0x5893, 0x66AE, 0x5E55, 0x52DF, 0x6155, 0x6728, 0x76EE, /* 0xB0 */
- 0x7766, 0x7267, 0x7A46, 0x62FF, 0x54EA, 0x5450, 0x9209, 0x90A3, /* 0xC0 */
- 0x5A1C, 0x7D0D, 0x6C16, 0x4E43, 0x5976, 0x8010, 0x5948, 0x5357, /* 0xC0 */
- 0x7537, 0x96E3, 0x56CA, 0x6493, 0x8166, 0x60F1, 0x9B27, 0x6DD6, /* 0xD0 */
- 0x5462, 0x9912, 0x5185, 0x5AE9, 0x80FD, 0x59AE, 0x9713, 0x502A, /* 0xD0 */
- 0x6CE5, 0x5C3C, 0x64EC, 0x4F60, 0x533F, 0x81A9, 0x9006, 0x6EBA, /* 0xE0 */
- 0x852B, 0x62C8, 0x5E74, 0x78BE, 0x6506, 0x637B, 0x5FF5, 0x5A18, /* 0xE0 */
- 0x91C0, 0x9CE5, 0x5C3F, 0x634F, 0x8076, 0x5B7D, 0x5699, 0x9477, /* 0xF0 */
- 0x93B3, 0x6D85, 0x60A8, 0x6AB8, 0x7370, 0x51DD, 0x5BE7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_C5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x64F0, 0x6FD8, 0x725B, 0x626D, 0x9215, 0x7D10, 0x81BF, /* 0xA0 */
- 0x6FC3, 0x8FB2, 0x5F04, 0x5974, 0x52AA, 0x6012, 0x5973, 0x6696, /* 0xA0 */
- 0x8650, 0x7627, 0x632A, 0x61E6, 0x7CEF, 0x8AFE, 0x54E6, 0x6B50, /* 0xB0 */
- 0x9DD7, 0x6BC6, 0x85D5, 0x5614, 0x5076, 0x6F1A, 0x556A, 0x8DB4, /* 0xB0 */
- 0x722C, 0x5E15, 0x6015, 0x7436, 0x62CD, 0x6392, 0x724C, 0x5F98, /* 0xC0 */
- 0x6E43, 0x6D3E, 0x6500, 0x6F58, 0x76E4, 0x78D0, 0x76FC, 0x7554, /* 0xC0 */
- 0x5224, 0x53DB, 0x4E53, 0x9F90, 0x65C1, 0x802A, 0x80D6, 0x629B, /* 0xD0 */
- 0x5486, 0x5228, 0x70AE, 0x888D, 0x8DD1, 0x6CE1, 0x5478, 0x80DA, /* 0xD0 */
- 0x57F9, 0x88F4, 0x8CE0, 0x966A, 0x914D, 0x4F69, 0x6C9B, 0x5674, /* 0xE0 */
- 0x76C6, 0x7830, 0x62A8, 0x70F9, 0x6F8E, 0x5F6D, 0x84EC, 0x68DA, /* 0xE0 */
- 0x787C, 0x7BF7, 0x81A8, 0x670B, 0x9D6C, 0x6367, 0x78B0, 0x576F, /* 0xF0 */
- 0x7812, 0x9739, 0x6279, 0x62AB, 0x5288, 0x7435, 0x6BD7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_C6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5564, 0x813E, 0x75B2, 0x76AE, 0x5339, 0x75DE, 0x50FB, /* 0xA0 */
- 0x5C41, 0x8B6C, 0x7BC7, 0x504F, 0x7247, 0x9A19, 0x98C4, 0x6F02, /* 0xA0 */
- 0x74E2, 0x7968, 0x6487, 0x77A5, 0x62FC, 0x983B, 0x8CA7, 0x54C1, /* 0xB0 */
- 0x8058, 0x4E52, 0x576A, 0x860B, 0x840D, 0x5E73, 0x6191, 0x74F6, /* 0xB0 */
- 0x8A55, 0x5C4F, 0x5761, 0x6F51, 0x9817, 0x5A46, 0x7834, 0x9B44, /* 0xC0 */
- 0x8FEB, 0x7C95, 0x5256, 0x64B2, 0x92EA, 0x50D5, 0x8386, 0x8461, /* 0xC0 */
- 0x83E9, 0x84B2, 0x57D4, 0x6A38, 0x5703, 0x666E, 0x6D66, 0x8B5C, /* 0xD0 */
- 0x66DD, 0x7011, 0x671F, 0x6B3A, 0x68F2, 0x621A, 0x59BB, 0x4E03, /* 0xD0 */
- 0x51C4, 0x6F06, 0x67D2, 0x6C8F, 0x5176, 0x68CB, 0x5947, 0x6B67, /* 0xE0 */
- 0x7566, 0x5D0E, 0x81CD, 0x9F4A, 0x65D7, 0x7948, 0x7941, 0x9A0E, /* 0xE0 */
- 0x8D77, 0x8C48, 0x4E5E, 0x4F01, 0x5553, 0x5951, 0x780C, 0x5668, /* 0xF0 */
- 0x6C23, 0x8FC4, 0x68C4, 0x6C7D, 0x6CE3, 0x8A16, 0x6390 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_C7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6070, 0x6D3D, 0x727D, 0x6266, 0x91FA, 0x925B, 0x5343, /* 0xA0 */
- 0x9077, 0x7C3D, 0x4EDF, 0x8B19, 0x4E7E, 0x9ED4, 0x9322, 0x9257, /* 0xA0 */
- 0x524D, 0x6F5B, 0x9063, 0x6DFA, 0x8B74, 0x5879, 0x5D4C, 0x6B20, /* 0xB0 */
- 0x6B49, 0x69CD, 0x55C6, 0x8154, 0x7F8C, 0x58BB, 0x8594, 0x5F3A, /* 0xB0 */
- 0x6436, 0x6A47, 0x936C, 0x6572, 0x6084, 0x6A4B, 0x77A7, 0x55AC, /* 0xC0 */
- 0x50D1, 0x5DE7, 0x9798, 0x64AC, 0x7FF9, 0x5CED, 0x4FCF, 0x7AC5, /* 0xC0 */
- 0x5207, 0x8304, 0x4E14, 0x602F, 0x7ACA, 0x6B3D, 0x4FB5, 0x89AA, /* 0xD0 */
- 0x79E6, 0x7434, 0x52E4, 0x82B9, 0x64D2, 0x79BD, 0x5BE2, 0x6C81, /* 0xD0 */
- 0x9752, 0x8F15, 0x6C2B, 0x50BE, 0x537F, 0x6E05, 0x64CE, 0x6674, /* 0xE0 */
- 0x6C30, 0x60C5, 0x9803, 0x8ACB, 0x6176, 0x74CA, 0x7AAE, 0x79CB, /* 0xE0 */
- 0x4E18, 0x90B1, 0x7403, 0x6C42, 0x56DA, 0x914B, 0x6CC5, 0x8DA8, /* 0xF0 */
- 0x5340, 0x86C6, 0x66F2, 0x8EC0, 0x5C48, 0x9A45, 0x6E20 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_C8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x53D6, 0x5A36, 0x9F72, 0x8DA3, 0x53BB, 0x5708, 0x9874, /* 0xA0 */
- 0x6B0A, 0x919B, 0x6CC9, 0x5168, 0x75CA, 0x62F3, 0x72AC, 0x5238, /* 0xA0 */
- 0x52F8, 0x7F3A, 0x7094, 0x7638, 0x5374, 0x9D72, 0x69B7, 0x78BA, /* 0xB0 */
- 0x96C0, 0x88D9, 0x7FA4, 0x7136, 0x71C3, 0x5189, 0x67D3, 0x74E4, /* 0xB0 */
- 0x58E4, 0x6518, 0x56B7, 0x8B93, 0x9952, 0x64FE, 0x7E5E, 0x60F9, /* 0xC0 */
- 0x71B1, 0x58EC, 0x4EC1, 0x4EBA, 0x5FCD, 0x97CC, 0x4EFB, 0x8A8D, /* 0xC0 */
- 0x5203, 0x598A, 0x7D09, 0x6254, 0x4ECD, 0x65E5, 0x620E, 0x8338, /* 0xD0 */
- 0x84C9, 0x69AE, 0x878D, 0x7194, 0x6EB6, 0x5BB9, 0x7D68, 0x5197, /* 0xD0 */
- 0x63C9, 0x67D4, 0x8089, 0x8339, 0x8815, 0x5112, 0x5B7A, 0x5982, /* 0xE0 */
- 0x8FB1, 0x4E73, 0x6C5D, 0x5165, 0x8925, 0x8EDF, 0x962E, 0x854A, /* 0xE0 */
- 0x745E, 0x92ED, 0x958F, 0x6F64, 0x82E5, 0x5F31, 0x6492, 0x7051, /* 0xF0 */
- 0x85A9, 0x816E, 0x9C13, 0x585E, 0x8CFD, 0x4E09, 0x53C1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_C9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5098, 0x6563, 0x6851, 0x55D3, 0x55AA, 0x6414, 0x9A37, /* 0xA0 */
- 0x6383, 0x5AC2, 0x745F, 0x8272, 0x6F80, 0x68EE, 0x50E7, 0x838E, /* 0xA0 */
- 0x7802, 0x6BBA, 0x5239, 0x6C99, 0x7D17, 0x50BB, 0x5565, 0x715E, /* 0xB0 */
- 0x7BE9, 0x66EC, 0x73CA, 0x82EB, 0x6749, 0x5C71, 0x5220, 0x717D, /* 0xB0 */
- 0x886B, 0x9583, 0x965D, 0x64C5, 0x8D0D, 0x81B3, 0x5584, 0x6C55, /* 0xC0 */
- 0x6247, 0x7E55, 0x5892, 0x50B7, 0x5546, 0x8CDE, 0x664C, 0x4E0A, /* 0xC0 */
- 0x5C1A, 0x88F3, 0x68A2, 0x634E, 0x7A0D, 0x71D2, 0x828D, 0x52FA, /* 0xD0 */
- 0x97F6, 0x5C11, 0x54E8, 0x90B5, 0x7D39, 0x5962, 0x8CD2, 0x86C7, /* 0xD0 */
- 0x820C, 0x6368, 0x8D66, 0x651D, 0x5C04, 0x61FE, 0x6D89, 0x793E, /* 0xE0 */
- 0x8A2D, 0x7837, 0x7533, 0x547B, 0x4F38, 0x8EAB, 0x6DF1, 0x5A20, /* 0xE0 */
- 0x7D33, 0x795E, 0x6C88, 0x5BE9, 0x5B38, 0x751A, 0x814E, 0x614E, /* 0xF0 */
- 0x6EF2, 0x8072, 0x751F, 0x7525, 0x7272, 0x5347, 0x7E69 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_CA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7701, 0x76DB, 0x5269, 0x52DD, 0x8056, 0x5E2B, 0x5931, /* 0xA0 */
- 0x7345, 0x65BD, 0x6FD5, 0x8A69, 0x5C38, 0x8671, 0x5341, 0x77F3, /* 0xA0 */
- 0x62FE, 0x6642, 0x4EC0, 0x98DF, 0x8755, 0x5BE6, 0x8B58, 0x53F2, /* 0xB0 */
- 0x77E2, 0x4F7F, 0x5C4E, 0x99DB, 0x59CB, 0x5F0F, 0x793A, 0x58EB, /* 0xB0 */
- 0x4E16, 0x67FF, 0x4E8B, 0x62ED, 0x8A93, 0x901D, 0x52E2, 0x662F, /* 0xC0 */
- 0x55DC, 0x566C, 0x9069, 0x4ED5, 0x4F8D, 0x91CB, 0x98FE, 0x6C0F, /* 0xC0 */
- 0x5E02, 0x6043, 0x5BA4, 0x8996, 0x8A66, 0x6536, 0x624B, 0x9996, /* 0xD0 */
- 0x5B88, 0x58FD, 0x6388, 0x552E, 0x53D7, 0x7626, 0x7378, 0x852C, /* 0xD0 */
- 0x6A1E, 0x68B3, 0x6B8A, 0x6292, 0x8F38, 0x53D4, 0x8212, 0x6DD1, /* 0xE0 */
- 0x758F, 0x66F8, 0x8D16, 0x5B70, 0x719F, 0x85AF, 0x6691, 0x66D9, /* 0xE0 */
- 0x7F72, 0x8700, 0x9ECD, 0x9F20, 0x5C6C, 0x8853, 0x8FF0, 0x6A39, /* 0xF0 */
- 0x675F, 0x620D, 0x7AEA, 0x5885, 0x5EB6, 0x6578, 0x6F31 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_CB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6055, 0x5237, 0x800D, 0x6454, 0x8870, 0x7529, 0x5E25, /* 0xA0 */
- 0x6813, 0x62F4, 0x971C, 0x96D9, 0x723D, 0x8AB0, 0x6C34, 0x7761, /* 0xA0 */
- 0x7A0E, 0x542E, 0x77AC, 0x9806, 0x821C, 0x8AAC, 0x78A9, 0x6714, /* 0xB0 */
- 0x720D, 0x65AF, 0x6495, 0x5636, 0x601D, 0x79C1, 0x53F8, 0x7D72, /* 0xB0 */
- 0x6B7B, 0x8086, 0x5BFA, 0x55E3, 0x56DB, 0x4F3A, 0x4F3C, 0x98FC, /* 0xC0 */
- 0x5DF3, 0x9B06, 0x8073, 0x616B, 0x980C, 0x9001, 0x5B8B, 0x8A1F, /* 0xC0 */
- 0x8AA6, 0x641C, 0x8258, 0x64FB, 0x55FD, 0x8607, 0x9165, 0x4FD7, /* 0xD0 */
- 0x7D20, 0x901F, 0x7C9F, 0x50F3, 0x5851, 0x6EAF, 0x5BBF, 0x8A34, /* 0xD0 */
- 0x8085, 0x9178, 0x849C, 0x7B97, 0x96D6, 0x968B, 0x96A8, 0x7D8F, /* 0xE0 */
- 0x9AD3, 0x788E, 0x6B72, 0x7A57, 0x9042, 0x96A7, 0x795F, 0x5B6B, /* 0xE0 */
- 0x640D, 0x7B0B, 0x84D1, 0x68AD, 0x5506, 0x7E2E, 0x7463, 0x7D22, /* 0xF0 */
- 0x9396, 0x6240, 0x584C, 0x4ED6, 0x5B83, 0x5979, 0x5854 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_CC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x737A, 0x64BB, 0x8E4B, 0x8E0F, 0x80CE, 0x82D4, 0x62AC, /* 0xA0 */
- 0x81FA, 0x6CF0, 0x915E, 0x592A, 0x614B, 0x6C70, 0x574D, 0x6524, /* 0xA0 */
- 0x8CAA, 0x7671, 0x7058, 0x58C7, 0x6A80, 0x75F0, 0x6F6D, 0x8B5A, /* 0xB0 */
- 0x8AC7, 0x5766, 0x6BEF, 0x8892, 0x78B3, 0x63A2, 0x5606, 0x70AD, /* 0xB0 */
- 0x6E6F, 0x5858, 0x642A, 0x5802, 0x68E0, 0x819B, 0x5510, 0x7CD6, /* 0xC0 */
- 0x5018, 0x8EBA, 0x6DCC, 0x8D9F, 0x71D9, 0x638F, 0x6FE4, 0x6ED4, /* 0xC0 */
- 0x7E27, 0x8404, 0x6843, 0x9003, 0x6DD8, 0x9676, 0x8A0E, 0x5957, /* 0xD0 */
- 0x7279, 0x85E4, 0x9A30, 0x75BC, 0x8B04, 0x68AF, 0x5254, 0x8E22, /* 0xD0 */
- 0x92BB, 0x63D0, 0x984C, 0x8E44, 0x557C, 0x9AD4, 0x66FF, 0x568F, /* 0xE0 */
- 0x60D5, 0x6D95, 0x5243, 0x5C49, 0x5929, 0x6DFB, 0x586B, 0x7530, /* 0xE0 */
- 0x751C, 0x606C, 0x8214, 0x8146, 0x6311, 0x689D, 0x8FE2, 0x773A, /* 0xF0 */
- 0x8DF3, 0x8CBC, 0x9435, 0x5E16, 0x5EF3, 0x807D, 0x70F4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_CD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6C40, 0x5EF7, 0x505C, 0x4EAD, 0x5EAD, 0x633A, 0x8247, /* 0xA0 */
- 0x901A, 0x6850, 0x916E, 0x77B3, 0x540C, 0x9285, 0x5F64, 0x7AE5, /* 0xA0 */
- 0x6876, 0x6345, 0x7B52, 0x7D71, 0x75DB, 0x5077, 0x6295, 0x982D, /* 0xB0 */
- 0x900F, 0x51F8, 0x79C3, 0x7A81, 0x5716, 0x5F92, 0x9014, 0x5857, /* 0xB0 */
- 0x5C60, 0x571F, 0x5410, 0x5154, 0x6E4D, 0x5718, 0x63A8, 0x983D, /* 0xC0 */
- 0x817F, 0x8715, 0x892A, 0x9000, 0x541E, 0x5C6F, 0x81C0, 0x62D6, /* 0xC0 */
- 0x6258, 0x8131, 0x9D15, 0x9640, 0x99B1, 0x99DD, 0x6A62, 0x59A5, /* 0xD0 */
- 0x62D3, 0x553E, 0x6316, 0x54C7, 0x86D9, 0x7AAA, 0x5A03, 0x74E6, /* 0xD0 */
- 0x896A, 0x6B6A, 0x5916, 0x8C4C, 0x5F4E, 0x7063, 0x73A9, 0x9811, /* 0xE0 */
- 0x4E38, 0x70F7, 0x5B8C, 0x7897, 0x633D, 0x665A, 0x7696, 0x60CB, /* 0xE0 */
- 0x5B9B, 0x5A49, 0x842C, 0x8155, 0x6C6A, 0x738B, 0x4EA1, 0x6789, /* 0xF0 */
- 0x7DB2, 0x5F80, 0x65FA, 0x671B, 0x5FD8, 0x5984, 0x5A01 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_CE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5DCD, 0x5FAE, 0x5371, 0x97CB, 0x9055, 0x6845, 0x570D, /* 0xA0 */
- 0x552F, 0x60DF, 0x7232, 0x6FF0, 0x7DAD, 0x8466, 0x840E, 0x59D4, /* 0xA0 */
- 0x5049, 0x50DE, 0x5C3E, 0x7DEF, 0x672A, 0x851A, 0x5473, 0x754F, /* 0xB0 */
- 0x80C3, 0x5582, 0x9B4F, 0x4F4D, 0x6E2D, 0x8B02, 0x5C09, 0x6170, /* 0xB0 */
- 0x885B, 0x761F, 0x6E29, 0x868A, 0x6587, 0x805E, 0x7D0B, 0x543B, /* 0xC0 */
- 0x7A69, 0x7D0A, 0x554F, 0x55E1, 0x7FC1, 0x74EE, 0x64BE, 0x8778, /* 0xC0 */
- 0x6E26, 0x7AA9, 0x6211, 0x65A1, 0x5367, 0x63E1, 0x6C83, 0x5DEB, /* 0xD0 */
- 0x55DA, 0x93A2, 0x70CF, 0x6C61, 0x8AA3, 0x5C4B, 0x7121, 0x856A, /* 0xD0 */
- 0x68A7, 0x543E, 0x5434, 0x6BCB, 0x6B66, 0x4E94, 0x6342, 0x5348, /* 0xE0 */
- 0x821E, 0x4F0D, 0x4FAE, 0x5862, 0x620A, 0x9727, 0x6664, 0x7269, /* 0xE0 */
- 0x52FF, 0x52D9, 0x609F, 0x8AA4, 0x6614, 0x7199, 0x6790, 0x897F, /* 0xF0 */
- 0x7852, 0x77FD, 0x6670, 0x563B, 0x5438, 0x932B, 0x72A7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_CF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7A00, 0x606F, 0x5E0C, 0x6089, 0x819D, 0x5915, 0x60DC, /* 0xA0 */
- 0x7184, 0x70EF, 0x6EAA, 0x6C50, 0x7280, 0x6A84, 0x8972, 0x5E2D, /* 0xA0 */
- 0x7FD2, 0x5AB3, 0x559C, 0x9291, 0x6D17, 0x7CFB, 0x9699, 0x6232, /* 0xB0 */
- 0x7D30, 0x778E, 0x8766, 0x5323, 0x971E, 0x8F44, 0x6687, 0x5CFD, /* 0xB0 */
- 0x4FE0, 0x72F9, 0x4E0B, 0x53A6, 0x590F, 0x5687, 0x6380, 0x9341, /* 0xC0 */
- 0x5148, 0x4ED9, 0x9BAE, 0x7E96, 0x54B8, 0x8CE2, 0x929C, 0x8237, /* 0xC0 */
- 0x9591, 0x6D8E, 0x5F26, 0x5ACC, 0x986F, 0x96AA, 0x73FE, 0x737B, /* 0xD0 */
- 0x7E23, 0x817A, 0x9921, 0x7FA1, 0x61B2, 0x9677, 0x9650, 0x7DAB, /* 0xD0 */
- 0x76F8, 0x53A2, 0x9472, 0x9999, 0x7BB1, 0x8944, 0x6E58, 0x9109, /* 0xE0 */
- 0x7FD4, 0x7965, 0x8A73, 0x60F3, 0x97FF, 0x4EAB, 0x9805, 0x5DF7, /* 0xE0 */
- 0x6A61, 0x50CF, 0x5411, 0x8C61, 0x856D, 0x785D, 0x9704, 0x524A, /* 0xF0 */
- 0x54EE, 0x56C2, 0x92B7, 0x6D88, 0x5BB5, 0x6DC6, 0x66C9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_D0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5C0F, 0x5B5D, 0x6821, 0x8096, 0x562F, 0x7B11, 0x6548, /* 0xA0 */
- 0x6954, 0x4E9B, 0x6B47, 0x874E, 0x978B, 0x5354, 0x633E, 0x643A, /* 0xA0 */
- 0x90AA, 0x659C, 0x8105, 0x8AE7, 0x5BEB, 0x68B0, 0x5378, 0x87F9, /* 0xB0 */
- 0x61C8, 0x6CC4, 0x7009, 0x8B1D, 0x5C51, 0x85AA, 0x82AF, 0x92C5, /* 0xB0 */
- 0x6B23, 0x8F9B, 0x65B0, 0x5FFB, 0x5FC3, 0x4FE1, 0x91C1, 0x661F, /* 0xC0 */
- 0x8165, 0x7329, 0x60FA, 0x8208, 0x5211, 0x578B, 0x5F62, 0x90A2, /* 0xC0 */
- 0x884C, 0x9192, 0x5E78, 0x674F, 0x6027, 0x59D3, 0x5144, 0x51F6, /* 0xD0 */
- 0x80F8, 0x5308, 0x6C79, 0x96C4, 0x718A, 0x4F11, 0x4FEE, 0x7F9E, /* 0xD0 */
- 0x673D, 0x55C5, 0x92B9, 0x79C0, 0x8896, 0x7D89, 0x589F, 0x620C, /* 0xE0 */
- 0x9700, 0x865A, 0x5618, 0x9808, 0x5F90, 0x8A31, 0x84C4, 0x9157, /* 0xE0 */
- 0x53D9, 0x65ED, 0x5E8F, 0x755C, 0x6064, 0x7D6E, 0x5A7F, 0x7DD2, /* 0xF0 */
- 0x7E8C, 0x8ED2, 0x55A7, 0x5BA3, 0x61F8, 0x65CB, 0x7384 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_D1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9078, 0x766C, 0x7729, 0x7D62, 0x9774, 0x859B, 0x5B78, /* 0xA0 */
- 0x7A74, 0x96EA, 0x8840, 0x52DB, 0x718F, 0x5FAA, 0x65EC, 0x8A62, /* 0xA0 */
- 0x5C0B, 0x99B4, 0x5DE1, 0x6B89, 0x6C5B, 0x8A13, 0x8A0A, 0x905C, /* 0xB0 */
- 0x8FC5, 0x58D3, 0x62BC, 0x9D09, 0x9D28, 0x5440, 0x4E2B, 0x82BD, /* 0xB0 */
- 0x7259, 0x869C, 0x5D16, 0x8859, 0x6DAF, 0x96C5, 0x555E, 0x4E9E, /* 0xC0 */
- 0x8A1D, 0x7109, 0x54BD, 0x95B9, 0x70DF, 0x6DF9, 0x9E7D, 0x56B4, /* 0xC0 */
- 0x7814, 0x8712, 0x5CA9, 0x5EF6, 0x8A00, 0x9854, 0x95BB, 0x708E, /* 0xD0 */
- 0x6CBF, 0x5944, 0x63A9, 0x773C, 0x884D, 0x6F14, 0x8277, 0x5830, /* 0xD0 */
- 0x71D5, 0x53AD, 0x786F, 0x96C1, 0x5501, 0x5F66, 0x7130, 0x5BB4, /* 0xE0 */
- 0x8AFA, 0x9A57, 0x6B83, 0x592E, 0x9D26, 0x79E7, 0x694A, 0x63DA, /* 0xE0 */
- 0x4F6F, 0x760D, 0x7F8A, 0x6D0B, 0x967D, 0x6C27, 0x4EF0, 0x7662, /* 0xF0 */
- 0x990A, 0x6A23, 0x6F3E, 0x9080, 0x8170, 0x5996, 0x7476 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_D2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6447, 0x582F, 0x9065, 0x7A91, 0x8B21, 0x59DA, 0x54AC, /* 0xA0 */
- 0x8200, 0x85E5, 0x8981, 0x8000, 0x6930, 0x564E, 0x8036, 0x723A, /* 0xA0 */
- 0x91CE, 0x51B6, 0x4E5F, 0x9801, 0x6396, 0x696D, 0x8449, 0x66F3, /* 0xB0 */
- 0x814B, 0x591C, 0x6DB2, 0x4E00, 0x58F9, 0x91AB, 0x63D6, 0x92A5, /* 0xB0 */
- 0x4F9D, 0x4F0A, 0x8863, 0x9824, 0x5937, 0x907A, 0x79FB, 0x5100, /* 0xC0 */
- 0x80F0, 0x7591, 0x6C82, 0x5B9C, 0x59E8, 0x5F5D, 0x6905, 0x87FB, /* 0xC0 */
- 0x501A, 0x5DF2, 0x4E59, 0x77E3, 0x4EE5, 0x85DD, 0x6291, 0x6613, /* 0xD0 */
- 0x9091, 0x5C79, 0x5104, 0x5F79, 0x81C6, 0x9038, 0x8084, 0x75AB, /* 0xD0 */
- 0x4EA6, 0x88D4, 0x610F, 0x6BC5, 0x61B6, 0x7FA9, 0x76CA, 0x6EA2, /* 0xE0 */
- 0x8A63, 0x8B70, 0x8ABC, 0x8B6F, 0x5F02, 0x7FFC, 0x7FCC, 0x7E79, /* 0xE0 */
- 0x8335, 0x852D, 0x56E0, 0x6BB7, 0x97F3, 0x9670, 0x59FB, 0x541F, /* 0xF0 */
- 0x9280, 0x6DEB, 0x5BC5, 0x98F2, 0x5C39, 0x5F15, 0x96B1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_D3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5370, 0x82F1, 0x6AFB, 0x5B30, 0x9DF9, 0x61C9, 0x7E93, /* 0xA0 */
- 0x7469, 0x87A2, 0x71DF, 0x7192, 0x8805, 0x8FCE, 0x8D0F, 0x76C8, /* 0xA0 */
- 0x5F71, 0x7A4E, 0x786C, 0x6620, 0x55B2, 0x64C1, 0x50AD, 0x81C3, /* 0xB0 */
- 0x7670, 0x5EB8, 0x96CD, 0x8E34, 0x86F9, 0x548F, 0x6CF3, 0x6D8C, /* 0xB0 */
- 0x6C38, 0x607F, 0x52C7, 0x7528, 0x5E7D, 0x512A, 0x60A0, 0x6182, /* 0xC0 */
- 0x5C24, 0x7531, 0x90F5, 0x923E, 0x7336, 0x6CB9, 0x6E38, 0x9149, /* 0xC0 */
- 0x6709, 0x53CB, 0x53F3, 0x4F51, 0x91C9, 0x8A98, 0x53C8, 0x5E7C, /* 0xD0 */
- 0x8FC2, 0x6DE4, 0x4E8E, 0x76C2, 0x6986, 0x865E, 0x611A, 0x8F3F, /* 0xD0 */
- 0x9918, 0x4FDE, 0x903E, 0x9B5A, 0x6109, 0x6E1D, 0x6F01, 0x9685, /* 0xE0 */
- 0x4E88, 0x5A31, 0x96E8, 0x8207, 0x5DBC, 0x79B9, 0x5B87, 0x8A9E, /* 0xE0 */
- 0x7FBD, 0x7389, 0x57DF, 0x828B, 0x9B31, 0x5401, 0x9047, 0x55BB, /* 0xF0 */
- 0x5CEA, 0x5FA1, 0x6108, 0x6B32, 0x7344, 0x80B2, 0x8B7D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_D4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6D74, 0x5BD3, 0x88D5, 0x9810, 0x8C6B, 0x99AD, 0x9D1B, /* 0xA0 */
- 0x6DF5, 0x51A4, 0x5143, 0x57A3, 0x8881, 0x539F, 0x63F4, 0x8F45, /* 0xA0 */
- 0x5712, 0x54E1, 0x5713, 0x733F, 0x6E90, 0x7DE3, 0x9060, 0x82D1, /* 0xB0 */
- 0x9858, 0x6028, 0x9662, 0x66F0, 0x7D04, 0x8D8A, 0x8E8D, 0x9470, /* 0xB0 */
- 0x5CB3, 0x7CA4, 0x6708, 0x60A6, 0x95B2, 0x8018, 0x96F2, 0x9116, /* 0xC0 */
- 0x5300, 0x9695, 0x5141, 0x904B, 0x85F4, 0x9196, 0x6688, 0x97F5, /* 0xC0 */
- 0x5B55, 0x531D, 0x7838, 0x96DC, 0x683D, 0x54C9, 0x707E, 0x5BB0, /* 0xD0 */
- 0x8F09, 0x518D, 0x5728, 0x54B1, 0x6522, 0x66AB, 0x8D0A, 0x8D1C, /* 0xD0 */
- 0x81DF, 0x846C, 0x906D, 0x7CDF, 0x947F, 0x85FB, 0x68D7, 0x65E9, /* 0xE0 */
- 0x6FA1, 0x86A4, 0x8E81, 0x566A, 0x9020, 0x7682, 0x7AC8, 0x71E5, /* 0xE0 */
- 0x8CAC, 0x64C7, 0x5247, 0x6FA4, 0x8CCA, 0x600E, 0x589E, 0x618E, /* 0xF0 */
- 0x66FE, 0x8D08, 0x624E, 0x55B3, 0x6E23, 0x672D, 0x8ECB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_D5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9358, 0x9598, 0x7728, 0x6805, 0x69A8, 0x548B, 0x4E4D, /* 0xA0 */
- 0x70B8, 0x8A50, 0x6458, 0x9F4B, 0x5B85, 0x7A84, 0x50B5, 0x5BE8, /* 0xA0 */
- 0x77BB, 0x6C08, 0x8A79, 0x7C98, 0x6CBE, 0x76DE, 0x65AC, 0x8F3E, /* 0xB0 */
- 0x5D84, 0x5C55, 0x8638, 0x68E7, 0x5360, 0x6230, 0x7AD9, 0x6E5B, /* 0xB0 */
- 0x7DBB, 0x6A1F, 0x7AE0, 0x5F70, 0x6F33, 0x5F35, 0x638C, 0x6F32, /* 0xC0 */
- 0x6756, 0x4E08, 0x5E33, 0x8CEC, 0x4ED7, 0x8139, 0x7634, 0x969C, /* 0xC0 */
- 0x62DB, 0x662D, 0x627E, 0x6CBC, 0x8D99, 0x7167, 0x7F69, 0x5146, /* 0xD0 */
- 0x8087, 0x53EC, 0x906E, 0x6298, 0x54F2, 0x87C4, 0x8F4D, 0x8005, /* 0xD0 */
- 0x937A, 0x8517, 0x9019, 0x6D59, 0x73CD, 0x659F, 0x771F, 0x7504, /* 0xE0 */
- 0x7827, 0x81FB, 0x8C9E, 0x91DD, 0x5075, 0x6795, 0x75B9, 0x8A3A, /* 0xE0 */
- 0x9707, 0x632F, 0x93AE, 0x9663, 0x84B8, 0x6399, 0x775C, 0x5F81, /* 0xF0 */
- 0x7319, 0x722D, 0x6014, 0x6574, 0x62EF, 0x6B63, 0x653F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_D6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5E40, 0x7665, 0x912D, 0x8B49, 0x829D, 0x679D, 0x652F, /* 0xA0 */
- 0x5431, 0x8718, 0x77E5, 0x80A2, 0x8102, 0x6C41, 0x4E4B, 0x7E54, /* 0xA0 */
- 0x8077, 0x76F4, 0x690D, 0x6B96, 0x57F7, 0x503C, 0x4F84, 0x5740, /* 0xB0 */
- 0x6307, 0x6B62, 0x8DBE, 0x8879, 0x65E8, 0x7D19, 0x5FD7, 0x646F, /* 0xB0 */
- 0x64F2, 0x81F3, 0x81F4, 0x7F6E, 0x5E5F, 0x5CD9, 0x5236, 0x667A, /* 0xC0 */
- 0x79E9, 0x7A1A, 0x8CEA, 0x7099, 0x75D4, 0x6EEF, 0x6CBB, 0x7A92, /* 0xC0 */
- 0x4E2D, 0x76C5, 0x5FE0, 0x9418, 0x8877, 0x7D42, 0x7A2E, 0x816B, /* 0xD0 */
- 0x91CD, 0x4EF2, 0x8846, 0x821F, 0x5468, 0x5DDE, 0x6D32, 0x8B05, /* 0xD0 */
- 0x7CA5, 0x8EF8, 0x8098, 0x5E1A, 0x5492, 0x76BA, 0x5B99, 0x665D, /* 0xE0 */
- 0x9A5F, 0x73E0, 0x682A, 0x86DB, 0x6731, 0x732A, 0x8AF8, 0x8A85, /* 0xE0 */
- 0x9010, 0x7AF9, 0x71ED, 0x716E, 0x62C4, 0x77DA, 0x56D1, 0x4E3B, /* 0xF0 */
- 0x8457, 0x67F1, 0x52A9, 0x86C0, 0x8CAF, 0x9444, 0x7BC9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_D7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4F4F, 0x6CE8, 0x795D, 0x99D0, 0x6293, 0x722A, 0x62FD, /* 0xA0 */
- 0x5C08, 0x78DA, 0x8F49, 0x64B0, 0x8CFA, 0x7BC6, 0x6A01, 0x838A, /* 0xA0 */
- 0x88DD, 0x599D, 0x649E, 0x58EF, 0x72C0, 0x690E, 0x9310, 0x8FFD, /* 0xB0 */
- 0x8D05, 0x589C, 0x7DB4, 0x8AC4, 0x6E96, 0x6349, 0x62D9, 0x5353, /* 0xB0 */
- 0x684C, 0x7422, 0x8301, 0x914C, 0x5544, 0x7740, 0x707C, 0x6FC1, /* 0xC0 */
- 0x5179, 0x54A8, 0x8CC7, 0x59FF, 0x6ECB, 0x6DC4, 0x5B5C, 0x7D2B, /* 0xC0 */
- 0x4ED4, 0x7C7D, 0x6ED3, 0x5B50, 0x81EA, 0x6F2C, 0x5B57, 0x9B03, /* 0xD0 */
- 0x68D5, 0x8E2A, 0x5B97, 0x7D9C, 0x7E3D, 0x7E31, 0x9112, 0x8D70, /* 0xD0 */
- 0x594F, 0x63CD, 0x79DF, 0x8DB3, 0x5352, 0x65CF, 0x7956, 0x8A5B, /* 0xE0 */
- 0x963B, 0x7D44, 0x947D, 0x7E82, 0x5634, 0x9189, 0x6700, 0x7F6A, /* 0xE0 */
- 0x5C0A, 0x9075, 0x6628, 0x5DE6, 0x4F50, 0x67DE, 0x505A, 0x4F5C, /* 0xF0 */
- 0x5750, 0x5EA7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_D8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4E8D, 0x4E0C, 0x5140, 0x4E10, 0x5EFF, 0x5345, 0x4E15, /* 0xA0 */
- 0x4E98, 0x4E1E, 0x9B32, 0x5B6C, 0x5669, 0x4E28, 0x79BA, 0x4E3F, /* 0xA0 */
- 0x5315, 0x4E47, 0x592D, 0x723B, 0x536E, 0x6C10, 0x56DF, 0x80E4, /* 0xB0 */
- 0x9997, 0x6BD3, 0x777E, 0x9F17, 0x4E36, 0x4E9F, 0x9F10, 0x4E5C, /* 0xB0 */
- 0x4E69, 0x4E93, 0x8288, 0x5B5B, 0x55C7, 0x560F, 0x4EC4, 0x5399, /* 0xC0 */
- 0x539D, 0x53B4, 0x53A5, 0x53AE, 0x9768, 0x8D0B, 0x531A, 0x53F5, /* 0xC0 */
- 0x532D, 0x5331, 0x533E, 0x8CFE, 0x5366, 0x5363, 0x5202, 0x5208, /* 0xD0 */
- 0x520E, 0x5244, 0x5233, 0x528C, 0x5274, 0x524C, 0x525E, 0x5261, /* 0xD0 */
- 0x525C, 0x84AF, 0x527D, 0x5282, 0x5281, 0x5290, 0x5293, 0x5182, /* 0xE0 */
- 0x7F54, 0x4EBB, 0x4EC3, 0x4EC9, 0x4EC2, 0x4EE8, 0x4EE1, 0x4EEB, /* 0xE0 */
- 0x4EDE, 0x50B4, 0x4EF3, 0x4F22, 0x4F64, 0x4EF5, 0x5000, 0x5096, /* 0xF0 */
- 0x4F09, 0x4F47, 0x4F5E, 0x4F67, 0x6538, 0x4F5A, 0x4F5D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_D9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4F5F, 0x4F57, 0x4F32, 0x4F3D, 0x4F76, 0x4F74, 0x4F91, /* 0xA0 */
- 0x4F89, 0x4F83, 0x4F8F, 0x4F7E, 0x4F7B, 0x5115, 0x4F7C, 0x5102, /* 0xA0 */
- 0x4F94, 0x5114, 0x513C, 0x5137, 0x4FC5, 0x4FDA, 0x4FE3, 0x4FDC, /* 0xB0 */
- 0x4FD1, 0x4FDF, 0x4FF8, 0x5029, 0x504C, 0x4FF3, 0x502C, 0x500F, /* 0xB0 */
- 0x502E, 0x502D, 0x4FFE, 0x501C, 0x500C, 0x5025, 0x5028, 0x50E8, /* 0xC0 */
- 0x5043, 0x5055, 0x5048, 0x504E, 0x506C, 0x50C2, 0x513B, 0x5110, /* 0xC0 */
- 0x513A, 0x50BA, 0x50D6, 0x5106, 0x50ED, 0x50EC, 0x50E6, 0x50EE, /* 0xD0 */
- 0x5107, 0x510B, 0x4EDD, 0x6C3D, 0x4F58, 0x50C9, 0x4FCE, 0x9FA0, /* 0xD0 */
- 0x6C46, 0x7CF4, 0x516E, 0x5DFD, 0x9ECC, 0x9998, 0x56C5, 0x5914, /* 0xE0 */
- 0x52F9, 0x530D, 0x8A07, 0x5310, 0x9CEC, 0x5919, 0x5155, 0x4EA0, /* 0xE0 */
- 0x5156, 0x4EB3, 0x886E, 0x88A4, 0x893B, 0x81E0, 0x88D2, 0x7980, /* 0xF0 */
- 0x5B34, 0x8803, 0x7FB8, 0x51AB, 0x51B1, 0x51BD, 0x51BC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_DA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x51C7, 0x5196, 0x51A2, 0x51A5, 0x8A01, 0x8A10, 0x8A0C, /* 0xA0 */
- 0x8A15, 0x8B33, 0x8A4E, 0x8A25, 0x8A41, 0x8A36, 0x8A46, 0x8A54, /* 0xA0 */
- 0x8A58, 0x8A52, 0x8A86, 0x8A84, 0x8A7F, 0x8A70, 0x8A7C, 0x8A75, /* 0xB0 */
- 0x8A6C, 0x8A6E, 0x8ACD, 0x8AE2, 0x8A61, 0x8A9A, 0x8AA5, 0x8A91, /* 0xB0 */
- 0x8A92, 0x8ACF, 0x8AD1, 0x8AC9, 0x8ADB, 0x8AD7, 0x8AC2, 0x8AB6, /* 0xC0 */
- 0x8AF6, 0x8AEB, 0x8B14, 0x8B01, 0x8AE4, 0x8AED, 0x8AFC, 0x8AF3, /* 0xC0 */
- 0x8AE6, 0x8AEE, 0x8ADE, 0x8B28, 0x8B9C, 0x8B16, 0x8B1A, 0x8B10, /* 0xD0 */
- 0x8B2B, 0x8B2D, 0x8B56, 0x8B59, 0x8B4E, 0x8B9E, 0x8B6B, 0x8B96, /* 0xD0 */
- 0x5369, 0x537A, 0x961D, 0x9622, 0x9621, 0x9631, 0x962A, 0x963D, /* 0xE0 */
- 0x963C, 0x9642, 0x9658, 0x9654, 0x965F, 0x9689, 0x966C, 0x9672, /* 0xE0 */
- 0x9674, 0x9688, 0x968D, 0x9697, 0x96B0, 0x9097, 0x909B, 0x913A, /* 0xF0 */
- 0x9099, 0x9114, 0x90A1, 0x90B4, 0x90B3, 0x90B6, 0x9134 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_DB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x90B8, 0x90B0, 0x90DF, 0x90C5, 0x90BE, 0x9136, 0x90C4, /* 0xA0 */
- 0x90C7, 0x9106, 0x9148, 0x90E2, 0x90DC, 0x90D7, 0x90DB, 0x90EB, /* 0xA0 */
- 0x90EF, 0x90FE, 0x9104, 0x9122, 0x911E, 0x9123, 0x9131, 0x912F, /* 0xB0 */
- 0x9139, 0x9143, 0x9146, 0x82BB, 0x5950, 0x52F1, 0x52AC, 0x52AD, /* 0xB0 */
- 0x52BE, 0x54FF, 0x52D0, 0x52D6, 0x52F0, 0x53DF, 0x71EE, 0x77CD, /* 0xC0 */
- 0x5EF4, 0x51F5, 0x51FC, 0x9B2F, 0x53B6, 0x5F01, 0x755A, 0x5DF0, /* 0xC0 */
- 0x574C, 0x580A, 0x57A1, 0x587E, 0x58BC, 0x58C5, 0x58D1, 0x5729, /* 0xD0 */
- 0x572C, 0x572A, 0x5733, 0x58D9, 0x572E, 0x572F, 0x58E2, 0x573B, /* 0xD0 */
- 0x5742, 0x5769, 0x58E0, 0x576B, 0x58DA, 0x577C, 0x577B, 0x5768, /* 0xE0 */
- 0x576D, 0x5776, 0x5773, 0x57E1, 0x57A4, 0x578C, 0x584F, 0x57CF, /* 0xE0 */
- 0x57A7, 0x5816, 0x5793, 0x57A0, 0x57D5, 0x5852, 0x581D, 0x5864, /* 0xF0 */
- 0x57D2, 0x57B8, 0x57F4, 0x57EF, 0x57F8, 0x57E4, 0x57DD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_DC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x580B, 0x580D, 0x57FD, 0x57ED, 0x5800, 0x581E, 0x5819, /* 0xA0 */
- 0x5844, 0x5820, 0x5865, 0x586C, 0x5881, 0x5889, 0x589A, 0x5880, /* 0xA0 */
- 0x99A8, 0x9F19, 0x61FF, 0x8279, 0x827D, 0x827F, 0x828F, 0x828A, /* 0xB0 */
- 0x82A8, 0x8284, 0x828E, 0x8291, 0x858C, 0x8299, 0x82AB, 0x8553, /* 0xB0 */
- 0x82BE, 0x82B0, 0x85F6, 0x82CA, 0x82E3, 0x8298, 0x82B7, 0x82AE, /* 0xC0 */
- 0x83A7, 0x8407, 0x84EF, 0x82A9, 0x82B4, 0x82A1, 0x82AA, 0x829F, /* 0xC0 */
- 0x82C4, 0x82E7, 0x82A4, 0x82E1, 0x8309, 0x82F7, 0x82E4, 0x8622, /* 0xD0 */
- 0x8307, 0x82DC, 0x82F4, 0x82D2, 0x82D8, 0x830C, 0x82FB, 0x82D3, /* 0xD0 */
- 0x8526, 0x831A, 0x8306, 0x584B, 0x7162, 0x82E0, 0x82D5, 0x831C, /* 0xE0 */
- 0x8351, 0x8558, 0x84FD, 0x8308, 0x8392, 0x833C, 0x8334, 0x8331, /* 0xE0 */
- 0x839B, 0x854E, 0x832F, 0x834F, 0x8347, 0x8343, 0x8588, 0x8340, /* 0xF0 */
- 0x8317, 0x85BA, 0x832D, 0x833A, 0x8333, 0x7296, 0x6ECE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_DD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8541, 0x831B, 0x85CE, 0x8552, 0x84C0, 0x8452, 0x8464, /* 0xA0 */
- 0x83B0, 0x8378, 0x8494, 0x8435, 0x83A0, 0x83AA, 0x8393, 0x839C, /* 0xA0 */
- 0x8385, 0x837C, 0x859F, 0x83A9, 0x837D, 0x8555, 0x837B, 0x8398, /* 0xB0 */
- 0x839E, 0x83A8, 0x9DAF, 0x8493, 0x83C1, 0x8401, 0x83E5, 0x83D8, /* 0xB0 */
- 0x5807, 0x8418, 0x840B, 0x83DD, 0x83FD, 0x83D6, 0x841C, 0x8438, /* 0xC0 */
- 0x8411, 0x8406, 0x83D4, 0x83DF, 0x840F, 0x8403, 0x83F8, 0x83F9, /* 0xC0 */
- 0x83EA, 0x83C5, 0x83C0, 0x7E08, 0x83F0, 0x83E1, 0x845C, 0x8451, /* 0xD0 */
- 0x845A, 0x8459, 0x8473, 0x8546, 0x8488, 0x847A, 0x8562, 0x8478, /* 0xD0 */
- 0x843C, 0x8446, 0x8469, 0x8476, 0x851E, 0x848E, 0x8431, 0x846D, /* 0xE0 */
- 0x84C1, 0x84CD, 0x84D0, 0x9A40, 0x84BD, 0x84D3, 0x84CA, 0x84BF, /* 0xE0 */
- 0x84BA, 0x863A, 0x84A1, 0x84B9, 0x84B4, 0x8497, 0x93A3, 0x8577, /* 0xF0 */
- 0x850C, 0x750D, 0x8538, 0x84F0, 0x861E, 0x851F, 0x85FA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_DE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8556, 0x853B, 0x84FF, 0x84FC, 0x8559, 0x8548, 0x8568, /* 0xA0 */
- 0x8564, 0x855E, 0x857A, 0x77A2, 0x8543, 0x8604, 0x857B, 0x85A4, /* 0xA0 */
- 0x85A8, 0x8587, 0x858F, 0x8579, 0x85EA, 0x859C, 0x8585, 0x85B9, /* 0xB0 */
- 0x85B7, 0x85B0, 0x861A, 0x85C1, 0x85DC, 0x85FF, 0x8627, 0x8605, /* 0xB0 */
- 0x8629, 0x8616, 0x863C, 0x5EFE, 0x5F08, 0x593C, 0x5969, 0x8037, /* 0xC0 */
- 0x5955, 0x595A, 0x5958, 0x530F, 0x5C22, 0x5C25, 0x5C2C, 0x5C37, /* 0xC0 */
- 0x624C, 0x636B, 0x6476, 0x62BB, 0x62CA, 0x62DA, 0x62D7, 0x62EE, /* 0xD0 */
- 0x649F, 0x62F6, 0x6339, 0x634B, 0x6343, 0x63AD, 0x63F6, 0x6371, /* 0xD0 */
- 0x637A, 0x638E, 0x6451, 0x636D, 0x63AC, 0x638A, 0x6369, 0x63AE, /* 0xE0 */
- 0x645C, 0x63F2, 0x63F8, 0x63E0, 0x64B3, 0x63C4, 0x63DE, 0x63CE, /* 0xE0 */
- 0x6452, 0x63C6, 0x63BE, 0x6504, 0x6441, 0x640B, 0x641B, 0x6420, /* 0xF0 */
- 0x640C, 0x6426, 0x6421, 0x645E, 0x6516, 0x646D, 0x6496 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_DF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x647A, 0x64F7, 0x64FC, 0x6499, 0x651B, 0x64C0, 0x64D0, /* 0xA0 */
- 0x64D7, 0x64E4, 0x64E2, 0x6509, 0x6525, 0x652E, 0x5F0B, 0x5FD2, /* 0xA0 */
- 0x7519, 0x5F11, 0x535F, 0x53F1, 0x5630, 0x53E9, 0x53E8, 0x53FB, /* 0xB0 */
- 0x5412, 0x5416, 0x5406, 0x544B, 0x5638, 0x56C8, 0x5454, 0x56A6, /* 0xB0 */
- 0x5443, 0x5421, 0x5504, 0x54BC, 0x5423, 0x5432, 0x5482, 0x5494, /* 0xC0 */
- 0x5477, 0x5471, 0x5464, 0x549A, 0x5680, 0x5484, 0x5476, 0x5466, /* 0xC0 */
- 0x565D, 0x54D0, 0x54AD, 0x54C2, 0x54B4, 0x5660, 0x54A7, 0x54A6, /* 0xD0 */
- 0x5635, 0x55F6, 0x5472, 0x54A3, 0x5666, 0x54BB, 0x54BF, 0x54CC, /* 0xD0 */
- 0x5672, 0x54DA, 0x568C, 0x54A9, 0x54AA, 0x54A4, 0x5665, 0x54CF, /* 0xE0 */
- 0x54DE, 0x561C, 0x54E7, 0x562E, 0x54FD, 0x5514, 0x54F3, 0x55E9, /* 0xE0 */
- 0x5523, 0x550F, 0x5511, 0x5527, 0x552A, 0x5616, 0x558F, 0x55B5, /* 0xF0 */
- 0x5549, 0x56C0, 0x5541, 0x5555, 0x553F, 0x5550, 0x553C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_E0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5537, 0x5556, 0x5575, 0x5576, 0x5577, 0x5533, 0x5530, /* 0xA0 */
- 0x555C, 0x558B, 0x55D2, 0x5583, 0x55B1, 0x55B9, 0x5588, 0x5581, /* 0xA0 */
- 0x559F, 0x557E, 0x55D6, 0x5591, 0x557B, 0x55DF, 0x560D, 0x56B3, /* 0xB0 */
- 0x5594, 0x5599, 0x55EA, 0x55F7, 0x55C9, 0x561F, 0x55D1, 0x56C1, /* 0xB0 */
- 0x55EC, 0x55D4, 0x55E6, 0x55DD, 0x55C4, 0x55EF, 0x55E5, 0x55F2, /* 0xC0 */
- 0x566F, 0x55CC, 0x55CD, 0x55E8, 0x55F5, 0x55E4, 0x8F61, 0x561E, /* 0xC0 */
- 0x5608, 0x560C, 0x5601, 0x56B6, 0x5623, 0x55FE, 0x5600, 0x5627, /* 0xD0 */
- 0x562D, 0x5658, 0x5639, 0x5657, 0x562C, 0x564D, 0x5662, 0x5659, /* 0xD0 */
- 0x5695, 0x564C, 0x5654, 0x5686, 0x5664, 0x5671, 0x566B, 0x567B, /* 0xE0 */
- 0x567C, 0x5685, 0x5693, 0x56AF, 0x56D4, 0x56D7, 0x56DD, 0x56E1, /* 0xE0 */
- 0x5707, 0x56EB, 0x56F9, 0x56FF, 0x5704, 0x570A, 0x5709, 0x571C, /* 0xF0 */
- 0x5E43, 0x5E19, 0x5E14, 0x5E11, 0x5E6C, 0x5E58, 0x5E57 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_E1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5E37, 0x5E44, 0x5E54, 0x5E5B, 0x5E5E, 0x5E61, 0x5C8C, /* 0xA0 */
- 0x5C7A, 0x5C8D, 0x5C90, 0x5D87, 0x5C88, 0x5CF4, 0x5C99, 0x5C91, /* 0xA0 */
- 0x5D50, 0x5C9C, 0x5CB5, 0x5CA2, 0x5D2C, 0x5CAC, 0x5CAB, 0x5CB1, /* 0xB0 */
- 0x5CA3, 0x5CC1, 0x5CB7, 0x5DA7, 0x5CD2, 0x5DA0, 0x5CCB, 0x5D22, /* 0xB0 */
- 0x5D97, 0x5D0D, 0x5D27, 0x5D26, 0x5D2E, 0x5D24, 0x5D1E, 0x5D06, /* 0xC0 */
- 0x5D1B, 0x5DB8, 0x5D3E, 0x5D34, 0x5D3D, 0x5D6C, 0x5D5B, 0x5D6F, /* 0xC0 */
- 0x5D81, 0x5D6B, 0x5D4B, 0x5D4A, 0x5D69, 0x5D74, 0x5D82, 0x5D99, /* 0xD0 */
- 0x5D9D, 0x8C73, 0x5DB7, 0x5DD4, 0x5F73, 0x5F77, 0x5F82, 0x5F87, /* 0xD0 */
- 0x5F89, 0x540E, 0x5FA0, 0x5F99, 0x5F9C, 0x5FA8, 0x5FAD, 0x5FB5, /* 0xE0 */
- 0x5FBC, 0x8862, 0x5F61, 0x72AD, 0x72B0, 0x72B4, 0x7377, 0x7341, /* 0xE0 */
- 0x72C3, 0x72C1, 0x72CE, 0x72CD, 0x72D2, 0x72E8, 0x736A, 0x72E9, /* 0xF0 */
- 0x733B, 0x72F4, 0x72F7, 0x7301, 0x72F3, 0x736B, 0x72FA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_E2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x72FB, 0x7317, 0x7313, 0x7380, 0x730A, 0x731E, 0x731D, /* 0xA0 */
- 0x737C, 0x7322, 0x7339, 0x7325, 0x732C, 0x7338, 0x7331, 0x7350, /* 0xA0 */
- 0x734D, 0x7357, 0x7360, 0x736C, 0x736F, 0x737E, 0x821B, 0x5925, /* 0xB0 */
- 0x98E7, 0x5924, 0x5902, 0x98E0, 0x9933, 0x98E9, 0x993C, 0x98EA, /* 0xB0 */
- 0x98EB, 0x98ED, 0x98F4, 0x9909, 0x9911, 0x4F59, 0x991B, 0x9937, /* 0xC0 */
- 0x993F, 0x9943, 0x9948, 0x9949, 0x994A, 0x994C, 0x9962, 0x5E80, /* 0xC0 */
- 0x5EE1, 0x5E8B, 0x5E96, 0x5EA5, 0x5EA0, 0x5EB9, 0x5EB5, 0x5EBE, /* 0xD0 */
- 0x5EB3, 0x8CE1, 0x5ED2, 0x5ED1, 0x5EDB, 0x5EE8, 0x5EEA, 0x81BA, /* 0xD0 */
- 0x5FC4, 0x5FC9, 0x5FD6, 0x61FA, 0x61AE, 0x5FEE, 0x616A, 0x5FE1, /* 0xE0 */
- 0x5FE4, 0x613E, 0x60B5, 0x6134, 0x5FEA, 0x5FED, 0x5FF8, 0x6019, /* 0xE0 */
- 0x6035, 0x6026, 0x601B, 0x600F, 0x600D, 0x6029, 0x602B, 0x600A, /* 0xF0 */
- 0x61CC, 0x6021, 0x615F, 0x61E8, 0x60FB, 0x6137, 0x6042 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_E3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x606A, 0x60F2, 0x6096, 0x609A, 0x6173, 0x609D, 0x6083, /* 0xA0 */
- 0x6092, 0x608C, 0x609B, 0x611C, 0x60BB, 0x60B1, 0x60DD, 0x60D8, /* 0xA0 */
- 0x60C6, 0x60DA, 0x60B4, 0x6120, 0x6192, 0x6115, 0x6123, 0x60F4, /* 0xB0 */
- 0x6100, 0x610E, 0x612B, 0x614A, 0x6175, 0x61AC, 0x6194, 0x61A7, /* 0xB0 */
- 0x61B7, 0x61D4, 0x61F5, 0x5FDD, 0x96B3, 0x9582, 0x9586, 0x95C8, /* 0xC0 */
- 0x958E, 0x9594, 0x958C, 0x95E5, 0x95AD, 0x95AB, 0x9B2E, 0x95AC, /* 0xC0 */
- 0x95BE, 0x95B6, 0x9B29, 0x95BF, 0x95BD, 0x95BC, 0x95C3, 0x95CB, /* 0xD0 */
- 0x95D4, 0x95D0, 0x95D5, 0x95DE, 0x4E2C, 0x723F, 0x6215, 0x6C35, /* 0xD0 */
- 0x6C54, 0x6C5C, 0x6C4A, 0x7043, 0x6C85, 0x6C90, 0x6C94, 0x6C8C, /* 0xE0 */
- 0x6C68, 0x6C69, 0x6C74, 0x6C76, 0x6C86, 0x6F59, 0x6CD0, 0x6CD4, /* 0xE0 */
- 0x6CAD, 0x7027, 0x7018, 0x6CF1, 0x6CD7, 0x6CB2, 0x6CE0, 0x6CD6, /* 0xF0 */
- 0x6FFC, 0x6CEB, 0x6CEE, 0x6CB1, 0x6CD3, 0x6CEF, 0x6D87 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_E4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6D39, 0x6D27, 0x6D0C, 0x6D79, 0x6E5E, 0x6D07, 0x6D04, /* 0xA0 */
- 0x6D19, 0x6D0E, 0x6D2B, 0x6FAE, 0x6D2E, 0x6D35, 0x6D1A, 0x700F, /* 0xA0 */
- 0x6EF8, 0x6F6F, 0x6D33, 0x6D91, 0x6D6F, 0x6DF6, 0x6F7F, 0x6D5E, /* 0xB0 */
- 0x6D93, 0x6D94, 0x6D5C, 0x6D60, 0x6D7C, 0x6D63, 0x6E1A, 0x6DC7, /* 0xB0 */
- 0x6DC5, 0x6DDE, 0x7006, 0x6DBF, 0x6DE0, 0x6FA0, 0x6DE6, 0x6DDD, /* 0xC0 */
- 0x6DD9, 0x700B, 0x6DAB, 0x6E0C, 0x6DAE, 0x6E2B, 0x6E6E, 0x6E4E, /* 0xC0 */
- 0x6E6B, 0x6EB2, 0x6E5F, 0x6E86, 0x6E53, 0x6E54, 0x6E32, 0x6E25, /* 0xD0 */
- 0x6E44, 0x7067, 0x6EB1, 0x6E98, 0x7044, 0x6F2D, 0x7005, 0x6EA5, /* 0xD0 */
- 0x6EA7, 0x6EBD, 0x6EBB, 0x6EB7, 0x6F77, 0x6EB4, 0x6ECF, 0x6E8F, /* 0xE0 */
- 0x6EC2, 0x6E9F, 0x6F62, 0x7020, 0x701F, 0x6F24, 0x6F15, 0x6EF9, /* 0xE0 */
- 0x6F2F, 0x6F36, 0x7032, 0x6F74, 0x6F2A, 0x6F09, 0x6F29, 0x6F89, /* 0xF0 */
- 0x6F8D, 0x6F8C, 0x6F78, 0x6F72, 0x6F7C, 0x6F7A, 0x7028 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_E5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6FC9, 0x6FA7, 0x6FB9, 0x6FB6, 0x6FC2, 0x6FE1, 0x6FEE, /* 0xA0 */
- 0x6FDE, 0x6FE0, 0x6FEF, 0x701A, 0x7023, 0x701B, 0x7039, 0x7035, /* 0xA0 */
- 0x705D, 0x705E, 0x5B80, 0x5B84, 0x5B95, 0x5B93, 0x5BA5, 0x5BB8, /* 0xB0 */
- 0x752F, 0x9A2B, 0x6434, 0x5BE4, 0x5BEE, 0x8930, 0x5BF0, 0x8E47, /* 0xB0 */
- 0x8B07, 0x8FB6, 0x8FD3, 0x8FD5, 0x8FE5, 0x8FEE, 0x8FE4, 0x9087, /* 0xC0 */
- 0x8FE6, 0x9015, 0x8FE8, 0x9005, 0x9004, 0x900B, 0x9090, 0x9011, /* 0xC0 */
- 0x900D, 0x9016, 0x9021, 0x9035, 0x9036, 0x902D, 0x902F, 0x9044, /* 0xD0 */
- 0x9051, 0x9052, 0x9050, 0x9068, 0x9058, 0x9062, 0x905B, 0x66B9, /* 0xD0 */
- 0x9074, 0x907D, 0x9082, 0x9088, 0x9083, 0x908B, 0x5F50, 0x5F57, /* 0xE0 */
- 0x5F56, 0x5F58, 0x5C3B, 0x54AB, 0x5C50, 0x5C59, 0x5B71, 0x5C63, /* 0xE0 */
- 0x5C68, 0x7FBC, 0x5F33, 0x5F29, 0x5F2D, 0x8274, 0x5F3C, 0x9B3B, /* 0xF0 */
- 0x5C6E, 0x5981, 0x5983, 0x598D, 0x5AF5, 0x5AD7, 0x59A3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_E6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5997, 0x59CA, 0x5B00, 0x599E, 0x59A4, 0x59D2, 0x59B2, /* 0xA0 */
- 0x59AF, 0x59D7, 0x59BE, 0x5A6D, 0x5B08, 0x59DD, 0x5B4C, 0x59E3, /* 0xA0 */
- 0x59D8, 0x59F9, 0x5A0C, 0x5A09, 0x5AA7, 0x5AFB, 0x5A11, 0x5A23, /* 0xB0 */
- 0x5A13, 0x5A40, 0x5A67, 0x5A4A, 0x5A55, 0x5A3C, 0x5A62, 0x5B0B, /* 0xB0 */
- 0x80EC, 0x5AAA, 0x5A9B, 0x5A77, 0x5A7A, 0x5ABE, 0x5AEB, 0x5AB2, /* 0xC0 */
- 0x5B21, 0x5B2A, 0x5AB8, 0x5AE0, 0x5AE3, 0x5B19, 0x5AD6, 0x5AE6, /* 0xC0 */
- 0x5AD8, 0x5ADC, 0x5B09, 0x5B17, 0x5B16, 0x5B32, 0x5B37, 0x5B40, /* 0xD0 */
- 0x5C15, 0x5C1C, 0x5B5A, 0x5B65, 0x5B73, 0x5B51, 0x5B53, 0x5B62, /* 0xD0 */
- 0x99D4, 0x99DF, 0x99D9, 0x9A36, 0x9A5B, 0x99D1, 0x99D8, 0x9A4D, /* 0xE0 */
- 0x9A4A, 0x99E2, 0x9A6A, 0x9A0F, 0x9A0D, 0x9A05, 0x9A42, 0x9A2D, /* 0xE0 */
- 0x9A16, 0x9A41, 0x9A2E, 0x9A38, 0x9A43, 0x9A44, 0x9A4F, 0x9A65, /* 0xF0 */
- 0x9A64, 0x7CF9, 0x7D06, 0x7D02, 0x7D07, 0x7D08, 0x7E8A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_E7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7D1C, 0x7D15, 0x7D13, 0x7D3A, 0x7D32, 0x7D31, 0x7E10, /* 0xA0 */
- 0x7D3C, 0x7D40, 0x7D3F, 0x7D5D, 0x7D4E, 0x7D73, 0x7D86, 0x7D83, /* 0xA0 */
- 0x7D88, 0x7DBE, 0x7DBA, 0x7DCB, 0x7DD4, 0x7DC4, 0x7D9E, 0x7DAC, /* 0xB0 */
- 0x7DB9, 0x7DA3, 0x7DB0, 0x7DC7, 0x7DD9, 0x7DD7, 0x7DF9, 0x7DF2, /* 0xB0 */
- 0x7E62, 0x7DE6, 0x7DF6, 0x7DF1, 0x7E0B, 0x7DE1, 0x7E09, 0x7E1D, /* 0xC0 */
- 0x7E1F, 0x7E1E, 0x7E2D, 0x7E0A, 0x7E11, 0x7E7D, 0x7E39, 0x7E35, /* 0xC0 */
- 0x7E32, 0x7E46, 0x7E45, 0x7E88, 0x7E5A, 0x7E52, 0x7E6E, 0x7E7E, /* 0xD0 */
- 0x7E70, 0x7E6F, 0x7E98, 0x5E7A, 0x757F, 0x5DDB, 0x753E, 0x9095, /* 0xD0 */
- 0x738E, 0x74A3, 0x744B, 0x73A2, 0x739F, 0x73CF, 0x73C2, 0x74CF, /* 0xE0 */
- 0x73B7, 0x73B3, 0x73C0, 0x73C9, 0x73C8, 0x73E5, 0x73D9, 0x980A, /* 0xE0 */
- 0x740A, 0x73E9, 0x73E7, 0x73DE, 0x74BD, 0x743F, 0x7489, 0x742A, /* 0xF0 */
- 0x745B, 0x7426, 0x7425, 0x7428, 0x7430, 0x742E, 0x742C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_E8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x741B, 0x741A, 0x7441, 0x745C, 0x7457, 0x7455, 0x7459, /* 0xA0 */
- 0x74A6, 0x746D, 0x747E, 0x749C, 0x74D4, 0x7480, 0x7481, 0x7487, /* 0xA0 */
- 0x748B, 0x749E, 0x74A8, 0x74A9, 0x7490, 0x74A7, 0x74DA, 0x74BA, /* 0xB0 */
- 0x97D9, 0x97DE, 0x97DC, 0x674C, 0x6753, 0x675E, 0x6748, 0x69AA, /* 0xB0 */
- 0x6AEA, 0x6787, 0x676A, 0x6773, 0x6798, 0x6898, 0x6775, 0x68D6, /* 0xC0 */
- 0x6A05, 0x689F, 0x678B, 0x6777, 0x677C, 0x67F0, 0x6ADB, 0x67D8, /* 0xC0 */
- 0x6AF3, 0x67E9, 0x67B0, 0x6AE8, 0x67D9, 0x67B5, 0x67DA, 0x67B3, /* 0xD0 */
- 0x67DD, 0x6800, 0x67C3, 0x67B8, 0x67E2, 0x6ADF, 0x67C1, 0x6A89, /* 0xD0 */
- 0x6832, 0x6833, 0x690F, 0x6A48, 0x684E, 0x6968, 0x6844, 0x69BF, /* 0xE0 */
- 0x6883, 0x681D, 0x6855, 0x6A3A, 0x6841, 0x6A9C, 0x6840, 0x6B12, /* 0xE0 */
- 0x684A, 0x6849, 0x6829, 0x68B5, 0x688F, 0x6874, 0x6877, 0x6893, /* 0xF0 */
- 0x686B, 0x6B1E, 0x696E, 0x68FC, 0x6ADD, 0x69E7, 0x68F9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_E9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6B0F, 0x68F0, 0x690B, 0x6901, 0x6957, 0x68E3, 0x6910, /* 0xA0 */
- 0x6971, 0x6939, 0x6960, 0x6942, 0x695D, 0x6B16, 0x696B, 0x6980, /* 0xA0 */
- 0x6998, 0x6978, 0x6934, 0x69CC, 0x6AEC, 0x6ADA, 0x69CE, 0x6AF8, /* 0xB0 */
- 0x6966, 0x6963, 0x6979, 0x699B, 0x69A7, 0x69BB, 0x69AB, 0x69AD, /* 0xB0 */
- 0x69D4, 0x69B1, 0x69C1, 0x69CA, 0x6AB3, 0x6995, 0x6AE7, 0x698D, /* 0xC0 */
- 0x69FF, 0x6AA3, 0x69ED, 0x6A17, 0x6A18, 0x6A65, 0x69F2, 0x6A44, /* 0xC0 */
- 0x6A3E, 0x6AA0, 0x6A50, 0x6A5B, 0x6A35, 0x6A8E, 0x6AD3, 0x6A3D, /* 0xD0 */
- 0x6A28, 0x6A58, 0x6ADE, 0x6A91, 0x6A90, 0x6AA9, 0x6A97, 0x6AAB, /* 0xD0 */
- 0x7337, 0x7352, 0x6B81, 0x6B82, 0x6BA4, 0x6B84, 0x6B9E, 0x6BAE, /* 0xE0 */
- 0x6B8D, 0x6BAB, 0x6B9B, 0x6BAF, 0x6BAA, 0x8ED4, 0x8EDB, 0x8EF2, /* 0xE0 */
- 0x8EFB, 0x8F64, 0x8EF9, 0x8EFC, 0x8EEB, 0x8EE4, 0x8F62, 0x8EFA, /* 0xF0 */
- 0x8EFE, 0x8F0A, 0x8F07, 0x8F05, 0x8F12, 0x8F26, 0x8F1E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_EA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8F1F, 0x8F1C, 0x8F33, 0x8F46, 0x8F54, 0x8ECE, 0x6214, /* 0xA0 */
- 0x6227, 0x621B, 0x621F, 0x6222, 0x6221, 0x6225, 0x6224, 0x6229, /* 0xA0 */
- 0x81E7, 0x750C, 0x74F4, 0x74FF, 0x750F, 0x7511, 0x7513, 0x6534, /* 0xB0 */
- 0x65EE, 0x65EF, 0x65F0, 0x660A, 0x66C7, 0x6772, 0x6603, 0x6615, /* 0xB0 */
- 0x6600, 0x7085, 0x66F7, 0x661D, 0x6634, 0x6631, 0x6636, 0x6635, /* 0xC0 */
- 0x8006, 0x665F, 0x66C4, 0x6641, 0x664F, 0x6689, 0x6661, 0x6657, /* 0xC0 */
- 0x6677, 0x6684, 0x668C, 0x66D6, 0x669D, 0x66BE, 0x66DB, 0x66DC, /* 0xD0 */
- 0x66E6, 0x66E9, 0x8CC1, 0x8CB0, 0x8CBA, 0x8CBD, 0x8D04, 0x8CB2, /* 0xD0 */
- 0x8CC5, 0x8D10, 0x8CD1, 0x8CDA, 0x8CD5, 0x8CEB, 0x8CE7, 0x8CFB, /* 0xE0 */
- 0x8998, 0x89AC, 0x89A1, 0x89BF, 0x89A6, 0x89AF, 0x89B2, 0x89B7, /* 0xE0 */
- 0x726E, 0x729F, 0x725D, 0x7266, 0x726F, 0x727E, 0x727F, 0x7284, /* 0xF0 */
- 0x728B, 0x728D, 0x728F, 0x7292, 0x6308, 0x6332, 0x63B0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_EB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x643F, 0x64D8, 0x8004, 0x6BEA, 0x6BF3, 0x6BFD, 0x6BFF, /* 0xA0 */
- 0x6BF9, 0x6C05, 0x6C0C, 0x6C06, 0x6C0D, 0x6C15, 0x6C18, 0x6C19, /* 0xA0 */
- 0x6C1A, 0x6C21, 0x6C2C, 0x6C24, 0x6C2A, 0x6C32, 0x6535, 0x6555, /* 0xB0 */
- 0x656B, 0x7258, 0x7252, 0x7256, 0x7230, 0x8662, 0x5216, 0x809F, /* 0xB0 */
- 0x809C, 0x8093, 0x80BC, 0x670A, 0x80BD, 0x80B1, 0x80AB, 0x80AD, /* 0xC0 */
- 0x80B4, 0x80B7, 0x6727, 0x8156, 0x80E9, 0x81DA, 0x80DB, 0x80C2, /* 0xC0 */
- 0x80C4, 0x80D9, 0x80CD, 0x80D7, 0x6710, 0x80DD, 0x811B, 0x80F1, /* 0xD0 */
- 0x80F4, 0x80ED, 0x81BE, 0x810E, 0x80F2, 0x80FC, 0x6715, 0x8112, /* 0xD0 */
- 0x8C5A, 0x8161, 0x811E, 0x812C, 0x8118, 0x8132, 0x8148, 0x814C, /* 0xE0 */
- 0x8153, 0x8174, 0x8159, 0x815A, 0x8171, 0x8160, 0x8169, 0x817C, /* 0xE0 */
- 0x817D, 0x816D, 0x8167, 0x584D, 0x5AB5, 0x8188, 0x8182, 0x81CF, /* 0xF0 */
- 0x6ED5, 0x81A3, 0x81AA, 0x81CC, 0x6726, 0x81CA, 0x81BB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_EC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x81C1, 0x81A6, 0x6B5F, 0x6B37, 0x6B39, 0x6B43, 0x6B46, /* 0xA0 */
- 0x6B59, 0x98AE, 0x98AF, 0x98B6, 0x98BC, 0x98C6, 0x98C8, 0x6BB3, /* 0xA0 */
- 0x5F40, 0x8F42, 0x89F3, 0x6590, 0x9F4F, 0x6595, 0x65BC, 0x65C6, /* 0xB0 */
- 0x65C4, 0x65C3, 0x65CC, 0x65CE, 0x65D2, 0x65D6, 0x716C, 0x7152, /* 0xB0 */
- 0x7096, 0x7197, 0x70BB, 0x70C0, 0x70B7, 0x70AB, 0x70B1, 0x71C1, /* 0xC0 */
- 0x70CA, 0x7110, 0x7113, 0x71DC, 0x712F, 0x7131, 0x7173, 0x715C, /* 0xC0 */
- 0x7168, 0x7145, 0x7172, 0x714A, 0x7178, 0x717A, 0x7198, 0x71B3, /* 0xD0 */
- 0x71B5, 0x71A8, 0x71A0, 0x71E0, 0x71D4, 0x71E7, 0x71F9, 0x721D, /* 0xD0 */
- 0x7228, 0x706C, 0x71FE, 0x7166, 0x71B9, 0x623E, 0x623D, 0x6243, /* 0xE0 */
- 0x6248, 0x6249, 0x793B, 0x7940, 0x7946, 0x7949, 0x795B, 0x795C, /* 0xE0 */
- 0x7953, 0x795A, 0x79B0, 0x7957, 0x7960, 0x798E, 0x7967, 0x797A, /* 0xF0 */
- 0x79AA, 0x798A, 0x799A, 0x79A7, 0x79B3, 0x5FD1, 0x5FD0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_ED[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x61DF, 0x605D, 0x605A, 0x6067, 0x6041, 0x6059, 0x6063, /* 0xA0 */
- 0x6164, 0x6106, 0x610D, 0x615D, 0x61A9, 0x619D, 0x61CB, 0x61E3, /* 0xA0 */
- 0x6207, 0x8080, 0x807F, 0x6C93, 0x6FA9, 0x6DFC, 0x78EF, 0x77F8, /* 0xB0 */
- 0x78AD, 0x7809, 0x7868, 0x7818, 0x7811, 0x65AB, 0x782D, 0x78B8, /* 0xB0 */
- 0x781D, 0x7839, 0x792A, 0x7931, 0x781F, 0x783C, 0x7825, 0x782C, /* 0xC0 */
- 0x7823, 0x7829, 0x784E, 0x786D, 0x7864, 0x78FD, 0x7826, 0x7850, /* 0xC0 */
- 0x7847, 0x784C, 0x786A, 0x78E7, 0x7893, 0x789A, 0x7887, 0x78E3, /* 0xD0 */
- 0x78A1, 0x78A3, 0x78B2, 0x78B9, 0x78A5, 0x78D4, 0x78D9, 0x78C9, /* 0xD0 */
- 0x78EC, 0x78F2, 0x7905, 0x78F4, 0x7913, 0x7924, 0x791E, 0x7934, /* 0xE0 */
- 0x9F95, 0x9EF9, 0x9EFB, 0x9EFC, 0x76F1, 0x7704, 0x7798, 0x76F9, /* 0xE0 */
- 0x7707, 0x7708, 0x771A, 0x7722, 0x7719, 0x772D, 0x7726, 0x7735, /* 0xF0 */
- 0x7738, 0x775E, 0x77BC, 0x7747, 0x7743, 0x775A, 0x7768 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_EE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7762, 0x7765, 0x777F, 0x778D, 0x777D, 0x7780, 0x778C, /* 0xA0 */
- 0x7791, 0x779F, 0x77A0, 0x77B0, 0x77B5, 0x77BD, 0x753A, 0x7540, /* 0xA0 */
- 0x754E, 0x754B, 0x7548, 0x755B, 0x7572, 0x7579, 0x7583, 0x7F58, /* 0xB0 */
- 0x7F61, 0x7F5F, 0x8A48, 0x7F68, 0x7F86, 0x7F71, 0x7F79, 0x7F88, /* 0xB0 */
- 0x7F7E, 0x76CD, 0x76E5, 0x8832, 0x91D2, 0x91D3, 0x91D4, 0x91D9, /* 0xC0 */
- 0x91D7, 0x91D5, 0x91F7, 0x91E7, 0x91E4, 0x9346, 0x91F5, 0x91F9, /* 0xC0 */
- 0x9208, 0x9226, 0x9245, 0x9211, 0x9210, 0x9201, 0x9227, 0x9204, /* 0xD0 */
- 0x9225, 0x9200, 0x923A, 0x9266, 0x9237, 0x9233, 0x9255, 0x923D, /* 0xD0 */
- 0x9238, 0x925E, 0x926C, 0x926D, 0x923F, 0x9460, 0x9230, 0x9249, /* 0xE0 */
- 0x9248, 0x924D, 0x922E, 0x9239, 0x9438, 0x92AC, 0x92A0, 0x927A, /* 0xE0 */
- 0x92AA, 0x92EE, 0x92CF, 0x9403, 0x92E3, 0x943A, 0x92B1, 0x92A6, /* 0xF0 */
- 0x93A7, 0x9296, 0x92CC, 0x92A9, 0x93F5, 0x9293, 0x927F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_EF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x93A9, 0x929A, 0x931A, 0x92AB, 0x9283, 0x940B, 0x92A8, /* 0xA0 */
- 0x92A3, 0x9412, 0x9338, 0x92F1, 0x93D7, 0x92E5, 0x92F0, 0x92EF, /* 0xA0 */
- 0x92E8, 0x92BC, 0x92DD, 0x92F6, 0x9426, 0x9427, 0x92C3, 0x92DF, /* 0xB0 */
- 0x92E6, 0x9312, 0x9306, 0x9369, 0x931B, 0x9340, 0x9301, 0x9315, /* 0xB0 */
- 0x932E, 0x9343, 0x9307, 0x9308, 0x931F, 0x9319, 0x9365, 0x9347, /* 0xC0 */
- 0x9376, 0x9354, 0x9364, 0x93AA, 0x9370, 0x9384, 0x93E4, 0x93D8, /* 0xC0 */
- 0x9428, 0x9387, 0x93CC, 0x9398, 0x93B8, 0x93BF, 0x93A6, 0x93B0, /* 0xD0 */
- 0x93B5, 0x944C, 0x93E2, 0x93DC, 0x93DD, 0x93CD, 0x93DE, 0x93C3, /* 0xD0 */
- 0x93C7, 0x93D1, 0x9414, 0x941D, 0x93F7, 0x9465, 0x9413, 0x946D, /* 0xE0 */
- 0x9420, 0x9479, 0x93F9, 0x9419, 0x944A, 0x9432, 0x943F, 0x9454, /* 0xE0 */
- 0x9463, 0x937E, 0x77E7, 0x77EC, 0x96C9, 0x79D5, 0x79ED, 0x79E3, /* 0xF0 */
- 0x79EB, 0x7A06, 0x5D47, 0x7A03, 0x7A02, 0x7A1E, 0x7A14 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_F0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7A39, 0x7A37, 0x7A61, 0x9ECF, 0x99A5, 0x7A70, 0x7688, /* 0xA0 */
- 0x768E, 0x7693, 0x7699, 0x76A4, 0x74DE, 0x74E0, 0x752C, 0x9CE9, /* 0xA0 */
- 0x9CF6, 0x9D07, 0x9D06, 0x9D23, 0x9D87, 0x9E15, 0x9D1D, 0x9D1F, /* 0xB0 */
- 0x9DE5, 0x9D2F, 0x9DD9, 0x9D30, 0x9D42, 0x9E1E, 0x9D53, 0x9E1D, /* 0xB0 */
- 0x9D60, 0x9D52, 0x9DF3, 0x9D5C, 0x9D61, 0x9D93, 0x9D6A, 0x9D6F, /* 0xC0 */
- 0x9D89, 0x9D98, 0x9D9A, 0x9DC0, 0x9DA5, 0x9DA9, 0x9DC2, 0x9DBC, /* 0xC0 */
- 0x9E1A, 0x9DD3, 0x9DDA, 0x9DEF, 0x9DE6, 0x9DF2, 0x9DF8, 0x9E0C, /* 0xD0 */
- 0x9DFA, 0x9E1B, 0x7592, 0x7594, 0x7664, 0x7658, 0x759D, 0x7667, /* 0xD0 */
- 0x75A3, 0x75B3, 0x75B4, 0x75B8, 0x75C4, 0x75B1, 0x75B0, 0x75C3, /* 0xE0 */
- 0x75C2, 0x7602, 0x75CD, 0x75E3, 0x7646, 0x75E6, 0x75E4, 0x7647, /* 0xE0 */
- 0x75E7, 0x7603, 0x75F1, 0x75FC, 0x75FF, 0x7610, 0x7600, 0x7649, /* 0xF0 */
- 0x760C, 0x761E, 0x760A, 0x7625, 0x763B, 0x7615, 0x7619 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_F1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x761B, 0x763C, 0x7622, 0x7620, 0x7640, 0x762D, 0x7630, /* 0xA0 */
- 0x766D, 0x7635, 0x7643, 0x766E, 0x7633, 0x764D, 0x7669, 0x7654, /* 0xA0 */
- 0x765C, 0x7656, 0x7672, 0x766F, 0x7FCA, 0x7AE6, 0x7A78, 0x7A79, /* 0xB0 */
- 0x7A80, 0x7A86, 0x7A88, 0x7A95, 0x7AC7, 0x7AA0, 0x7AAC, 0x7AA8, /* 0xB0 */
- 0x7AB6, 0x7AB3, 0x8864, 0x8869, 0x8872, 0x887D, 0x887F, 0x8882, /* 0xC0 */
- 0x88A2, 0x8960, 0x88B7, 0x88BC, 0x88C9, 0x8933, 0x88CE, 0x895D, /* 0xC0 */
- 0x8947, 0x88F1, 0x891A, 0x88FC, 0x88E8, 0x88FE, 0x88F0, 0x8921, /* 0xD0 */
- 0x8919, 0x8913, 0x8938, 0x890A, 0x8964, 0x892B, 0x8936, 0x8941, /* 0xD0 */
- 0x8966, 0x897B, 0x758B, 0x80E5, 0x76B8, 0x76B4, 0x77DC, 0x8012, /* 0xE0 */
- 0x8014, 0x8016, 0x801C, 0x8020, 0x802E, 0x8025, 0x8026, 0x802C, /* 0xE0 */
- 0x8029, 0x8028, 0x8031, 0x800B, 0x8035, 0x8043, 0x8046, 0x8079, /* 0xF0 */
- 0x8052, 0x8075, 0x8071, 0x8983, 0x9807, 0x980E, 0x980F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_F2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9821, 0x981C, 0x6F41, 0x9826, 0x9837, 0x984E, 0x9853, /* 0xA0 */
- 0x9873, 0x9862, 0x9859, 0x9865, 0x986C, 0x9870, 0x864D, 0x8654, /* 0xA0 */
- 0x866C, 0x87E3, 0x8806, 0x867A, 0x867C, 0x867B, 0x86A8, 0x868D, /* 0xB0 */
- 0x868B, 0x8706, 0x869D, 0x86A7, 0x86A3, 0x86AA, 0x8693, 0x86A9, /* 0xB0 */
- 0x86B6, 0x86C4, 0x86B5, 0x8823, 0x86B0, 0x86BA, 0x86B1, 0x86AF, /* 0xC0 */
- 0x86C9, 0x87F6, 0x86B4, 0x86E9, 0x86FA, 0x87EF, 0x86ED, 0x8784, /* 0xC0 */
- 0x86D0, 0x8713, 0x86DE, 0x8810, 0x86DF, 0x86D8, 0x86D1, 0x8703, /* 0xD0 */
- 0x8707, 0x86F8, 0x8708, 0x870A, 0x870D, 0x8709, 0x8723, 0x873B, /* 0xD0 */
- 0x871E, 0x8725, 0x872E, 0x871A, 0x873E, 0x87C8, 0x8734, 0x8731, /* 0xE0 */
- 0x8729, 0x8737, 0x873F, 0x8782, 0x8722, 0x877D, 0x8811, 0x877B, /* 0xE0 */
- 0x8760, 0x8770, 0x874C, 0x876E, 0x878B, 0x8753, 0x8763, 0x87BB, /* 0xF0 */
- 0x8764, 0x8759, 0x8765, 0x8793, 0x87AF, 0x87CE, 0x87D2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_F3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x87C6, 0x8788, 0x8785, 0x87AD, 0x8797, 0x8783, 0x87AB, /* 0xA0 */
- 0x87E5, 0x87AC, 0x87B5, 0x87B3, 0x87CB, 0x87D3, 0x87BD, 0x87D1, /* 0xA0 */
- 0x87C0, 0x87CA, 0x87DB, 0x87EA, 0x87E0, 0x87EE, 0x8816, 0x8813, /* 0xB0 */
- 0x87FE, 0x880A, 0x881B, 0x8821, 0x8839, 0x883C, 0x7F36, 0x7F4C, /* 0xB0 */
- 0x7F44, 0x7F45, 0x8210, 0x7AFA, 0x7AFD, 0x7B08, 0x7BE4, 0x7B04, /* 0xC0 */
- 0x7B67, 0x7B0A, 0x7B2B, 0x7B0F, 0x7B47, 0x7B38, 0x7B2A, 0x7B19, /* 0xC0 */
- 0x7B2E, 0x7B31, 0x7B20, 0x7B25, 0x7B24, 0x7B33, 0x7C69, 0x7B1E, /* 0xD0 */
- 0x7B58, 0x7BF3, 0x7B45, 0x7B75, 0x7B4C, 0x7B8F, 0x7B60, 0x7B6E, /* 0xD0 */
- 0x7B7B, 0x7B62, 0x7B72, 0x7B71, 0x7B90, 0x7C00, 0x7BCB, 0x7BB8, /* 0xE0 */
- 0x7BAC, 0x7B9D, 0x7C5C, 0x7B85, 0x7C1E, 0x7B9C, 0x7BA2, 0x7C2B, /* 0xE0 */
- 0x7BB4, 0x7C23, 0x7BC1, 0x7BCC, 0x7BDD, 0x7BDA, 0x7BE5, 0x7BE6, /* 0xF0 */
- 0x7BEA, 0x7C0C, 0x7BFE, 0x7BFC, 0x7C0F, 0x7C6A, 0x7C0B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_F4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7C1F, 0x7C2A, 0x7C26, 0x7C38, 0x7C5F, 0x7C40, 0x81FE, /* 0xA0 */
- 0x8201, 0x8202, 0x8204, 0x81EC, 0x8844, 0x8221, 0x8222, 0x8264, /* 0xA0 */
- 0x822D, 0x822F, 0x8228, 0x822B, 0x8238, 0x826B, 0x8233, 0x8234, /* 0xB0 */
- 0x823E, 0x8244, 0x8249, 0x824B, 0x824F, 0x825A, 0x825F, 0x8268, /* 0xB0 */
- 0x887E, 0x88CA, 0x8888, 0x88D8, 0x88DF, 0x895E, 0x7F9D, 0x7FA5, /* 0xC0 */
- 0x7FA7, 0x7FAF, 0x7FB0, 0x7FB2, 0x7C7C, 0x6549, 0x7C91, 0x7CF2, /* 0xC0 */
- 0x7CF6, 0x7C9E, 0x7CA2, 0x7CB2, 0x7CBC, 0x7CBD, 0x7CDD, 0x7CC7, /* 0xD0 */
- 0x7CCC, 0x7CCD, 0x7CC8, 0x7CC5, 0x7CD7, 0x7CE8, 0x826E, 0x66A8, /* 0xD0 */
- 0x7FBF, 0x7FCE, 0x7FD5, 0x7FE5, 0x7FE1, 0x7FE6, 0x7FE9, 0x7FEE, /* 0xE0 */
- 0x7FF3, 0x7CF8, 0x7E36, 0x7DA6, 0x7DAE, 0x7E47, 0x7E9B, 0x9EA9, /* 0xE0 */
- 0x9EB4, 0x8D73, 0x8D84, 0x8D94, 0x8D91, 0x8DB2, 0x8D67, 0x8D6D, /* 0xF0 */
- 0x8C47, 0x8C49, 0x914A, 0x9150, 0x914E, 0x914F, 0x9164 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_F5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9162, 0x9161, 0x9170, 0x9169, 0x916F, 0x91C5, 0x91C3, /* 0xA0 */
- 0x9172, 0x9174, 0x9179, 0x918C, 0x9185, 0x9190, 0x918D, 0x9191, /* 0xA0 */
- 0x91A2, 0x91A3, 0x91AA, 0x91AD, 0x91AE, 0x91AF, 0x91B5, 0x91B4, /* 0xB0 */
- 0x91BA, 0x8C55, 0x9E7A, 0x8E89, 0x8DEB, 0x8E05, 0x8E59, 0x8E69, /* 0xB0 */
- 0x8DB5, 0x8DBF, 0x8DBC, 0x8DBA, 0x8E4C, 0x8DD6, 0x8DD7, 0x8DDA, /* 0xC0 */
- 0x8E92, 0x8DCE, 0x8DCF, 0x8DDB, 0x8DC6, 0x8DEC, 0x8E7A, 0x8E55, /* 0xC0 */
- 0x8DE3, 0x8E9A, 0x8E8B, 0x8DE4, 0x8E09, 0x8DFD, 0x8E14, 0x8E1D, /* 0xD0 */
- 0x8E1F, 0x8E93, 0x8E2E, 0x8E23, 0x8E91, 0x8E3A, 0x8E40, 0x8E39, /* 0xD0 */
- 0x8E35, 0x8E3D, 0x8E31, 0x8E49, 0x8E41, 0x8E42, 0x8EA1, 0x8E63, /* 0xE0 */
- 0x8E4A, 0x8E70, 0x8E76, 0x8E7C, 0x8E6F, 0x8E74, 0x8E85, 0x8EAA, /* 0xE0 */
- 0x8E94, 0x8E90, 0x8EA6, 0x8E9E, 0x8C78, 0x8C82, 0x8C8A, 0x8C85, /* 0xF0 */
- 0x8C98, 0x8C94, 0x659B, 0x89D6, 0x89F4, 0x89DA, 0x89DC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_F6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x89E5, 0x89EB, 0x89F6, 0x8A3E, 0x8B26, 0x975A, 0x96E9, /* 0xA0 */
- 0x9742, 0x96EF, 0x9706, 0x973D, 0x9708, 0x970F, 0x970E, 0x972A, /* 0xA0 */
- 0x9744, 0x9730, 0x973E, 0x9F54, 0x9F5F, 0x9F59, 0x9F60, 0x9F5C, /* 0xB0 */
- 0x9F66, 0x9F6C, 0x9F6A, 0x9F77, 0x9EFD, 0x9EFF, 0x9F09, 0x96B9, /* 0xB0 */
- 0x96BC, 0x96BD, 0x96CE, 0x96D2, 0x77BF, 0x8B8E, 0x928E, 0x947E, /* 0xC0 */
- 0x92C8, 0x93E8, 0x936A, 0x93CA, 0x938F, 0x943E, 0x946B, 0x9B77, /* 0xC0 */
- 0x9B74, 0x9B81, 0x9B83, 0x9B8E, 0x9C78, 0x7A4C, 0x9B92, 0x9C5F, /* 0xD0 */
- 0x9B90, 0x9BAD, 0x9B9A, 0x9BAA, 0x9B9E, 0x9C6D, 0x9BAB, 0x9B9D, /* 0xD0 */
- 0x9C58, 0x9BC1, 0x9C7A, 0x9C31, 0x9C39, 0x9C23, 0x9C37, 0x9BC0, /* 0xE0 */
- 0x9BCA, 0x9BC7, 0x9BFD, 0x9BD6, 0x9BEA, 0x9BEB, 0x9BE1, 0x9BE4, /* 0xE0 */
- 0x9BE7, 0x9BDD, 0x9BE2, 0x9BF0, 0x9BDB, 0x9BF4, 0x9BD4, 0x9C5D, /* 0xF0 */
- 0x9C08, 0x9C10, 0x9C0D, 0x9C12, 0x9C09, 0x9BFF, 0x9C20 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_F7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9C32, 0x9C2D, 0x9C28, 0x9C25, 0x9C29, 0x9C33, 0x9C3E, /* 0xA0 */
- 0x9C48, 0x9C3B, 0x9C35, 0x9C45, 0x9C56, 0x9C54, 0x9C52, 0x9C67, /* 0xA0 */
- 0x977C, 0x9785, 0x97C3, 0x97BD, 0x9794, 0x97C9, 0x97AB, 0x97A3, /* 0xB0 */
- 0x97B2, 0x97B4, 0x9AB1, 0x9AB0, 0x9AB7, 0x9DBB, 0x9AB6, 0x9ABA, /* 0xB0 */
- 0x9ABC, 0x9AC1, 0x9AC0, 0x9ACF, 0x9AC2, 0x9AD6, 0x9AD5, 0x9AD1, /* 0xC0 */
- 0x9B45, 0x9B43, 0x9B58, 0x9B4E, 0x9B48, 0x9B4D, 0x9B51, 0x9957, /* 0xC0 */
- 0x995C, 0x992E, 0x9955, 0x9954, 0x9ADF, 0x9AE1, 0x9AE6, 0x9AEF, /* 0xD0 */
- 0x9AEB, 0x9AFB, 0x9AED, 0x9AF9, 0x9B08, 0x9B0F, 0x9B22, 0x9B1F, /* 0xD0 */
- 0x9B23, 0x4E48, 0x9EBE, 0x7E3B, 0x9E82, 0x9E87, 0x9E88, 0x9E8B, /* 0xE0 */
- 0x9E92, 0x93D6, 0x9E9D, 0x9E9F, 0x9EDB, 0x9EDC, 0x9EDD, 0x9EE0, /* 0xE0 */
- 0x9EDF, 0x9EE2, 0x9EF7, 0x9EE7, 0x9EE5, 0x9EF2, 0x9EEF, 0x9F22, /* 0xF0 */
- 0x9F2C, 0x9F2F, 0x9F39, 0x9F37, 0x9F3D, 0x9F3E, 0x9F44 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_F8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x896C, 0x95C6, 0x9336, 0x5F46, 0x8514, 0x7E94, 0x5382, /* 0xA0 */
- 0x51B2, 0x4E11, 0x9F63, 0x5679, 0x515A, 0x6DC0, 0x9F15, 0x6597, /* 0xA0 */
- 0x5641, 0x9AEE, 0x8303, 0x4E30, 0x8907, 0x5E72, 0x7A40, 0x98B3, /* 0xB0 */
- 0x5E7F, 0x95A4, 0x9B0D, 0x5212, 0x8FF4, 0x5F59, 0x7A6B, 0x98E2, /* 0xB0 */
- 0x51E0, 0x50A2, 0x4EF7, 0x8350, 0x8591, 0x5118, 0x636E, 0x6372, /* 0xC0 */
- 0x524B, 0x5938, 0x774F, 0x8721, 0x814A, 0x7E8D, 0x91CC, 0x66C6, /* 0xC0 */
- 0x5E18, 0x77AD, 0x9E75, 0x56C9, 0x9EF4, 0x6FDB, 0x61DE, 0x77C7, /* 0xD0 */
- 0x7030, 0x9EB5, 0x884A, 0x95E2, 0x82F9, 0x51ED, 0x6251, 0x4EC6, /* 0xD0 */
- 0x6734, 0x97C6, 0x7C64, 0x7E34, 0x97A6, 0x9EAF, 0x786E, 0x820D, /* 0xE0 */
- 0x672F, 0x677E, 0x56CC, 0x53F0, 0x98B1, 0x6AAF, 0x7F4E, 0x6D82, /* 0xE0 */
- 0x7CF0, 0x4E07, 0x4FC2, 0x7E6B, 0x9E79, 0x56AE, 0x9B1A, 0x846F, /* 0xF0 */
- 0x53F6, 0x90C1, 0x79A6, 0x7C72, 0x613F, 0x4E91, 0x9AD2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_GBT_F9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x75C7, 0x96BB, 0x53EA, 0x7DFB, 0x88FD, 0x79CD, 0x7843, /* 0xA0 */
- 0x7B51, 0x51C6 /* 0xA0 */
-};
diff --git a/sal/textenc/tcvtscn4.tab b/sal/textenc/tcvtscn4.tab
deleted file mode 100644
index b5d068f21..000000000
--- a/sal/textenc/tcvtscn4.tab
+++ /dev/null
@@ -1,3070 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the UniCode to DBCS tables for the following */
-/* chinese simplified (China) charsets: */
-/* GB (GB2312) */
-
-/* In this file we have only the GB tables for the kanji characters, */
-/* because these tables can't shared with the GBK tables. */
-
-/* ======================================================================= */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_4E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD2BB, 0xB6A1, 0, 0xC6DF, 0, 0, 0, 0xCDF2, /* 0x00 */
- 0xD5C9, 0xC8FD, 0xC9CF, 0xCFC2, 0xD8A2, 0xB2BB, 0xD3EB, 0, /* 0x00 */
- 0xD8A4, 0xB3F3, 0, 0xD7A8, 0xC7D2, 0xD8A7, 0xCAC0, 0, /* 0x10 */
- 0xC7F0, 0xB1FB, 0xD2B5, 0xB4D4, 0xB6AB, 0xCBBF, 0xD8A9, 0, /* 0x10 */
- 0, 0, 0xB6AA, 0, 0xC1BD, 0xD1CF, 0, 0xC9A5, /* 0x20 */
- 0xD8AD, 0, 0xB8F6, 0xD1BE, 0xE3DC, 0xD6D0, 0, 0, /* 0x20 */
- 0xB7E1, 0, 0xB4AE, 0, 0xC1D9, 0, 0xD8BC, 0, /* 0x30 */
- 0xCDE8, 0xB5A4, 0xCEAA, 0xD6F7, 0, 0xC0F6, 0xBED9, 0xD8AF, /* 0x30 */
- 0, 0, 0, 0xC4CB, 0, 0xBEC3, 0, 0xD8B1, /* 0x40 */
- 0xC3B4, 0xD2E5, 0, 0xD6AE, 0xCEDA, 0xD5A7, 0xBAF5, 0xB7A6, /* 0x40 */
- 0xC0D6, 0, 0xC6B9, 0xC5D2, 0xC7C7, 0, 0xB9D4, 0, /* 0x50 */
- 0xB3CB, 0xD2D2, 0, 0, 0xD8BF, 0xBEC5, 0xC6F2, 0xD2B2, /* 0x50 */
- 0xCFB0, 0xCFE7, 0, 0, 0, 0, 0xCAE9, 0, /* 0x60 */
- 0, 0xD8C0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0xC2F2, 0xC2D2, 0, 0xC8E9, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xC7AC, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xC1CB, 0, /* 0x80 */
- 0xD3E8, 0xD5F9, 0, 0xCAC2, 0xB6FE, 0xD8A1, 0xD3DA, 0xBFF7, /* 0x80 */
- 0, 0xD4C6, 0xBBA5, 0xD8C1, 0xCEE5, 0xBEAE, 0, 0, /* 0x90 */
- 0xD8A8, 0, 0xD1C7, 0xD0A9, 0, 0, 0, 0xD8BD, /* 0x90 */
- 0xD9EF, 0xCDF6, 0xBFBA, 0, 0xBDBB, 0xBAA5, 0xD2E0, 0xB2FA, /* 0xA0 */
- 0xBAE0, 0xC4B6, 0, 0xCFED, 0xBEA9, 0xCDA4, 0xC1C1, 0, /* 0xA0 */
- 0, 0, 0xC7D7, 0xD9F1, 0, 0xD9F4, 0, 0, /* 0xB0 */
- 0, 0, 0xC8CB, 0xD8E9, 0, 0, 0, 0xD2DA, /* 0xB0 */
- 0xCAB2, 0xC8CA, 0xD8EC, 0xD8EA, 0xD8C6, 0xBDF6, 0xC6CD, 0xB3F0, /* 0xC0 */
- 0, 0xD8EB, 0xBDF1, 0xBDE9, 0, 0xC8D4, 0xB4D3, 0, /* 0xC0 */
- 0, 0xC2D8, 0, 0xB2D6, 0xD7D0, 0xCACB, 0xCBFB, 0xD5CC, /* 0xD0 */
- 0xB8B6, 0xCFC9, 0, 0, 0, 0xD9DA, 0xD8F0, 0xC7AA, /* 0xD0 */
- 0, 0xD8EE, 0, 0xB4FA, 0xC1EE, 0xD2D4, 0, 0, /* 0xE0 */
- 0xD8ED, 0, 0xD2C7, 0xD8EF, 0xC3C7, 0, 0, 0, /* 0xE0 */
- 0xD1F6, 0, 0xD6D9, 0xD8F2, 0, 0xD8F5, 0xBCFE, 0xBCDB, /* 0xF0 */
- 0, 0, 0, 0xC8CE, 0, 0xB7DD, 0, 0xB7C2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_4F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC6F3, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0xD8F8, 0xD2C1, 0, 0, 0xCEE9, 0xBCBF, 0xB7FC, /* 0x00 */
- 0xB7A5, 0xD0DD, 0, 0, 0, 0, 0, 0xD6DA, /* 0x10 */
- 0xD3C5, 0xBBEF, 0xBBE1, 0xD8F1, 0, 0, 0xC9A1, 0xCEB0, /* 0x10 */
- 0xB4AB, 0, 0xD8F3, 0, 0xC9CB, 0xD8F6, 0xC2D7, 0xD8F7, /* 0x20 */
- 0, 0, 0xCEB1, 0xD8F9, 0, 0, 0, 0xB2AE, /* 0x20 */
- 0xB9C0, 0, 0xD9A3, 0, 0xB0E9, 0, 0xC1E6, 0, /* 0x30 */
- 0xC9EC, 0, 0xCBC5, 0, 0xCBC6, 0xD9A4, 0, 0, /* 0x30 */
- 0, 0, 0, 0xB5E8, 0, 0, 0xB5AB, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xCEBB, 0xB5CD, 0xD7A1, /* 0x40 */
- 0xD7F4, 0xD3D3, 0, 0xCCE5, 0, 0xBACE, 0, 0xD9A2, /* 0x50 */
- 0xD9DC, 0xD3E0, 0xD8FD, 0xB7F0, 0xD7F7, 0xD8FE, 0xD8FA, 0xD9A1, /* 0x50 */
- 0xC4E3, 0, 0, 0xD3B6, 0xD8F4, 0xD9DD, 0, 0xD8FB, /* 0x60 */
- 0, 0xC5E5, 0, 0, 0xC0D0, 0, 0, 0xD1F0, /* 0x60 */
- 0xB0DB, 0, 0, 0xBCD1, 0xD9A6, 0, 0xD9A5, 0, /* 0x70 */
- 0, 0, 0, 0xD9AC, 0xD9AE, 0, 0xD9AB, 0xCAB9, /* 0x70 */
- 0, 0, 0, 0xD9A9, 0xD6B6, 0, 0, 0, /* 0x80 */
- 0xB3DE, 0xD9A8, 0, 0xC0FD, 0, 0xCACC, 0, 0xD9AA, /* 0x80 */
- 0, 0xD9A7, 0, 0, 0xD9B0, 0, 0, 0xB6B1, /* 0x90 */
- 0, 0, 0, 0xB9A9, 0, 0xD2C0, 0, 0, /* 0x90 */
- 0xCFC0, 0, 0, 0xC2C2, 0, 0xBDC4, 0xD5EC, 0xB2E0, /* 0xA0 */
- 0xC7C8, 0xBFEB, 0xD9AD, 0, 0xD9AF, 0, 0xCEEA, 0xBAEE, /* 0xA0 */
- 0, 0, 0, 0, 0, 0xC7D6, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xB1E3, /* 0xB0 */
- 0, 0, 0, 0xB4D9, 0xB6ED, 0xD9B4, 0, 0, /* 0xC0 */
- 0, 0, 0xBFA1, 0, 0, 0, 0xD9DE, 0xC7CE, /* 0xC0 */
- 0xC0FE, 0xD9B8, 0, 0, 0, 0, 0, 0xCBD7, /* 0xD0 */
- 0xB7FD, 0, 0xD9B5, 0, 0xD9B7, 0xB1A3, 0xD3E1, 0xD9B9, /* 0xD0 */
- 0, 0xD0C5, 0, 0xD9B6, 0, 0, 0xD9B1, 0, /* 0xE0 */
- 0xD9B2, 0xC1A9, 0xD9B3, 0, 0, 0xBCF3, 0xD0DE, 0xB8A9, /* 0xE0 */
- 0, 0xBEE3, 0, 0xD9BD, 0, 0, 0, 0, /* 0xF0 */
- 0xD9BA, 0, 0xB0B3, 0, 0, 0, 0xD9C2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_50[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xD9C4, 0xB1B6, 0, 0xD9BF, /* 0x00 */
- 0, 0, 0xB5B9, 0, 0xBEF3, 0, 0, 0, /* 0x10 */
- 0xCCC8, 0xBAF2, 0xD2D0, 0, 0xD9C3, 0, 0, 0xBDE8, /* 0x10 */
- 0, 0xB3AB, 0, 0, 0, 0xD9C5, 0xBEEB, 0, /* 0x20 */
- 0xD9C6, 0xD9BB, 0xC4DF, 0, 0xD9BE, 0xD9C1, 0xD9C0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0xD5AE, 0, 0xD6B5, 0, 0xC7E3, 0, /* 0x30 */
- 0, 0, 0, 0xD9C8, 0, 0, 0, 0xBCD9, /* 0x40 */
- 0xD9CA, 0, 0, 0, 0xD9BC, 0, 0xD9CB, 0xC6AB, /* 0x40 */
- 0, 0, 0, 0, 0, 0xD9C9, 0, 0, /* 0x50 */
- 0, 0, 0xD7F6, 0, 0xCDA3, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xBDA1, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xD9CC, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0xC5BC, 0xCDB5, /* 0x70 */
- 0, 0, 0, 0xD9CD, 0, 0, 0xD9C7, 0xB3A5, /* 0x70 */
- 0xBFFE, 0, 0, 0, 0, 0xB8B5, 0, 0, /* 0x80 */
- 0xC0FC, 0, 0, 0, 0, 0xB0F8, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xB4F6, 0, 0xD9CE, 0, 0xD9CF, /* 0xA0 */
- 0xB4A2, 0xD9D0, 0, 0, 0xB4DF, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xB0C1, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xD9D1, 0xC9B5, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xCFF1, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xD9D2, 0, /* 0xD0 */
- 0, 0, 0xC1C5, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xD9D6, 0xC9AE, /* 0xE0 */
- 0, 0, 0, 0, 0xD9D5, 0xD9D4, 0xD9D7, 0, /* 0xE0 */
- 0, 0, 0, 0xCBDB, 0, 0xBDA9, 0, 0, /* 0xF0 */
- 0, 0, 0, 0xC6A7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_51[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD9D3, 0xD9D8, /* 0x00 */
- 0, 0, 0, 0xD9D9, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xC8E5, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xC0DC, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0xB6F9, /* 0x30 */
- 0xD8A3, 0xD4CA, 0, 0xD4AA, 0xD0D6, 0xB3E4, 0xD5D7, 0, /* 0x40 */
- 0xCFC8, 0xB9E2, 0, 0xBFCB, 0, 0xC3E2, 0, 0, /* 0x40 */
- 0, 0xB6D2, 0, 0, 0xCDC3, 0xD9EE, 0xD9F0, 0, /* 0x50 */
- 0, 0, 0xB5B3, 0, 0xB6B5, 0, 0, 0, /* 0x50 */
- 0, 0, 0xBEA4, 0, 0, 0xC8EB, 0, 0, /* 0x60 */
- 0xC8AB, 0, 0, 0xB0CB, 0xB9AB, 0xC1F9, 0xD9E2, 0, /* 0x60 */
- 0xC0BC, 0xB9B2, 0, 0xB9D8, 0xD0CB, 0xB1F8, 0xC6E4, 0xBEDF, /* 0x70 */
- 0xB5E4, 0xD7C8, 0, 0xD1F8, 0xBCE6, 0xCADE, 0, 0, /* 0x70 */
- 0xBCBD, 0xD9E6, 0xD8E7, 0, 0, 0xC4DA, 0, 0, /* 0x80 */
- 0xB8D4, 0xC8BD, 0, 0, 0xB2E1, 0xD4D9, 0, 0, /* 0x80 */
- 0, 0, 0xC3B0, 0, 0, 0xC3E1, 0xDAA2, 0xC8DF, /* 0x90 */
- 0, 0xD0B4, 0, 0xBEFC, 0xC5A9, 0, 0, 0, /* 0x90 */
- 0xB9DA, 0, 0xDAA3, 0, 0xD4A9, 0xDAA4, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xD9FB, 0xB6AC, 0, 0, 0xB7EB, /* 0xA0 */
- 0xB1F9, 0xD9FC, 0xB3E5, 0xBEF6, 0, 0xBFF6, 0xD2B1, 0xC0E4, /* 0xB0 */
- 0, 0, 0, 0xB6B3, 0xD9FE, 0xD9FD, 0, 0, /* 0xB0 */
- 0xBEBB, 0, 0, 0, 0xC6E0, 0, 0xD7BC, 0xDAA1, /* 0xC0 */
- 0, 0xC1B9, 0, 0xB5F2, 0xC1E8, 0, 0, 0xBCF5, /* 0xC0 */
- 0, 0xB4D5, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xC1DD, 0, 0xC4FD, 0, 0, /* 0xD0 */
- 0xBCB8, 0xB7B2, 0, 0, 0xB7EF, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xD9EC, 0, 0xC6BE, 0, 0xBFAD, /* 0xE0 */
- 0xBBCB, 0, 0, 0xB5CA, 0, 0xDBC9, 0xD0D7, 0, /* 0xF0 */
- 0xCDB9, 0xB0BC, 0xB3F6, 0xBBF7, 0xDBCA, 0xBAAF, 0, 0xD4E4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_52[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB5B6, 0xB5F3, 0xD8D6, 0xC8D0, 0, 0, 0xB7D6, 0xC7D0, /* 0x00 */
- 0xD8D7, 0, 0xBFAF, 0, 0, 0xDBBB, 0xD8D8, 0, /* 0x00 */
- 0, 0xD0CC, 0xBBAE, 0, 0, 0, 0xEBBE, 0xC1D0, /* 0x10 */
- 0xC1F5, 0xD4F2, 0xB8D5, 0xB4B4, 0, 0xB3F5, 0, 0, /* 0x10 */
- 0xC9BE, 0, 0, 0, 0xC5D0, 0, 0, 0, /* 0x20 */
- 0xC5D9, 0xC0FB, 0, 0xB1F0, 0, 0xD8D9, 0xB9CE, 0, /* 0x20 */
- 0xB5BD, 0, 0, 0xD8DA, 0, 0, 0xD6C6, 0xCBA2, /* 0x30 */
- 0xC8AF, 0xC9B2, 0xB4CC, 0xBFCC, 0, 0xB9F4, 0, 0xD8DB, /* 0x30 */
- 0xD8DC, 0xB6E7, 0xBCC1, 0xCCEA, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xCFF7, 0, 0xD8DD, 0xC7B0, 0, 0, /* 0x40 */
- 0xB9D0, 0xBDA3, 0, 0, 0xCCDE, 0, 0xC6CA, 0, /* 0x50 */
- 0, 0, 0, 0, 0xD8E0, 0, 0xD8DE, 0, /* 0x50 */
- 0, 0xD8DF, 0, 0, 0, 0xB0FE, 0, 0xBEE7, /* 0x60 */
- 0, 0xCAA3, 0xBCF4, 0, 0, 0, 0, 0xB8B1, /* 0x60 */
- 0, 0, 0xB8EE, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xD8E2, 0, 0xBDCB, /* 0x70 */
- 0, 0xD8E4, 0xD8E3, 0, 0, 0, 0, 0, /* 0x80 */
- 0xC5FC, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xD8E5, 0, 0, 0xD8E6, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xC1A6, 0, 0xC8B0, 0xB0EC, 0xB9A6, /* 0x90 */
- 0xBCD3, 0xCEF1, 0xDBBD, 0xC1D3, 0, 0, 0, 0, /* 0xA0 */
- 0xB6AF, 0xD6FA, 0xC5AC, 0xBDD9, 0xDBBE, 0xDBBF, 0, 0, /* 0xA0 */
- 0, 0xC0F8, 0xBEA2, 0xC0CD, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xDBC0, 0xCAC6, /* 0xB0 */
- 0, 0, 0, 0xB2AA, 0, 0, 0, 0xD3C2, /* 0xC0 */
- 0, 0xC3E3, 0, 0xD1AB, 0, 0, 0, 0, /* 0xC0 */
- 0xDBC2, 0, 0xC0D5, 0, 0, 0, 0xDBC3, 0, /* 0xD0 */
- 0xBFB1, 0, 0, 0, 0, 0, 0, 0xC4BC, /* 0xD0 */
- 0, 0, 0, 0, 0xC7DA, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xDBC4, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xD9E8, 0xC9D7, 0, 0, 0, 0xB9B4, 0xCEF0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_53[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD4C8, 0, 0, 0, 0, 0xB0FC, 0xB4D2, 0, /* 0x00 */
- 0xD0D9, 0, 0, 0, 0, 0xD9E9, 0, 0xDECB, /* 0x00 */
- 0xD9EB, 0, 0, 0, 0, 0xD8B0, 0xBBAF, 0xB1B1, /* 0x10 */
- 0, 0xB3D7, 0xD8CE, 0, 0, 0xD4D1, 0, 0, /* 0x10 */
- 0xBDB3, 0xBFEF, 0, 0xCFBB, 0, 0, 0xD8D0, 0, /* 0x20 */
- 0, 0, 0xB7CB, 0, 0, 0, 0xD8D1, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xC6A5, 0xC7F8, 0xD2BD, 0, 0, 0xD8D2, 0xC4E4, /* 0x30 */
- 0, 0xCAAE, 0, 0xC7A7, 0, 0xD8A6, 0, 0xC9FD, /* 0x40 */
- 0xCEE7, 0xBBDC, 0xB0EB, 0, 0, 0, 0xBBAA, 0xD0AD, /* 0x40 */
- 0, 0xB1B0, 0xD7E4, 0xD7BF, 0, 0xB5A5, 0xC2F4, 0xC4CF, /* 0x50 */
- 0, 0, 0xB2A9, 0, 0xB2B7, 0, 0xB1E5, 0xDFB2, /* 0x50 */
- 0xD5BC, 0xBFA8, 0xC2AC, 0xD8D5, 0xC2B1, 0, 0xD8D4, 0xCED4, /* 0x60 */
- 0, 0xDAE0, 0, 0xCEC0, 0, 0, 0xD8B4, 0xC3AE, /* 0x60 */
- 0xD3A1, 0xCEA3, 0, 0xBCB4, 0xC8B4, 0xC2D1, 0, 0xBEED, /* 0x70 */
- 0xD0B6, 0, 0xDAE1, 0, 0, 0, 0, 0xC7E4, /* 0x70 */
- 0, 0, 0xB3A7, 0, 0xB6F2, 0xCCFC, 0xC0FA, 0, /* 0x80 */
- 0, 0xC0F7, 0, 0xD1B9, 0xD1E1, 0xD8C7, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xB2DE, 0, 0, /* 0x90 */
- 0xC0E5, 0, 0xBAF1, 0, 0, 0xD8C8, 0, 0xD4AD, /* 0x90 */
- 0, 0, 0xCFE1, 0xD8C9, 0, 0xD8CA, 0xCFC3, 0, /* 0xA0 */
- 0xB3F8, 0xBEC7, 0, 0, 0, 0, 0xD8CB, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xDBCC, 0, /* 0xB0 */
- 0, 0, 0, 0xC8A5, 0, 0, 0, 0xCFD8, /* 0xB0 */
- 0, 0xC8FE, 0xB2CE, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xD3D6, 0xB2E6, 0xBCB0, 0xD3D1, 0xCBAB, 0xB7B4, 0, 0, /* 0xC0 */
- 0, 0xB7A2, 0, 0, 0xCAE5, 0, 0xC8A1, 0xCADC, /* 0xD0 */
- 0xB1E4, 0xD0F0, 0, 0xC5D1, 0, 0, 0, 0xDBC5, /* 0xD0 */
- 0xB5FE, 0, 0, 0xBFDA, 0xB9C5, 0xBEE4, 0xC1ED, 0, /* 0xE0 */
- 0xDFB6, 0xDFB5, 0xD6BB, 0xBDD0, 0xD5D9, 0xB0C8, 0xB6A3, 0xBFC9, /* 0xE0 */
- 0xCCA8, 0xDFB3, 0xCAB7, 0xD3D2, 0, 0xD8CF, 0xD2B6, 0xBAC5, /* 0xF0 */
- 0xCBBE, 0xCCBE, 0, 0xDFB7, 0xB5F0, 0xDFB4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_54[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD3F5, 0, 0xB3D4, 0xB8F7, 0, 0xDFBA, 0, /* 0x00 */
- 0xBACF, 0xBCAA, 0xB5F5, 0, 0xCDAC, 0xC3FB, 0xBAF3, 0xC0F4, /* 0x00 */
- 0xCDC2, 0xCFF2, 0xDFB8, 0xCFC5, 0, 0xC2C0, 0xDFB9, 0xC2F0, /* 0x10 */
- 0, 0, 0, 0xBEFD, 0, 0xC1DF, 0xCDCC, 0xD2F7, /* 0x10 */
- 0xB7CD, 0xDFC1, 0, 0xDFC4, 0, 0, 0xB7F1, 0xB0C9, /* 0x20 */
- 0xB6D6, 0xB7D4, 0, 0xBAAC, 0xCCFD, 0xBFD4, 0xCBB1, 0xC6F4, /* 0x20 */
- 0, 0xD6A8, 0xDFC5, 0, 0xCEE2, 0xB3B3, 0, 0, /* 0x30 */
- 0xCEFC, 0xB4B5, 0, 0xCEC7, 0xBAF0, 0, 0xCEE1, 0, /* 0x30 */
- 0xD1BD, 0, 0, 0xDFC0, 0, 0, 0xB4F4, 0, /* 0x40 */
- 0xB3CA, 0, 0xB8E6, 0xDFBB, 0, 0, 0, 0, /* 0x40 */
- 0xC4C5, 0, 0xDFBC, 0xDFBD, 0xDFBE, 0xC5BB, 0xDFBF, 0xDFC2, /* 0x50 */
- 0xD4B1, 0xDFC3, 0, 0xC7BA, 0xCED8, 0, 0, 0, /* 0x50 */
- 0, 0, 0xC4D8, 0, 0xDFCA, 0, 0xDFCF, 0, /* 0x60 */
- 0xD6DC, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xDFC9, 0xDFDA, 0xCEB6, 0, 0xBAC7, 0xDFCE, 0xDFC8, /* 0x70 */
- 0xC5DE, 0, 0, 0xC9EB, 0xBAF4, 0xC3FC, 0, 0, /* 0x70 */
- 0xBED7, 0, 0xDFC6, 0, 0xDFCD, 0, 0xC5D8, 0, /* 0x80 */
- 0, 0, 0, 0xD5A6, 0xBACD, 0, 0xBECC, 0xD3BD, /* 0x80 */
- 0xB8C0, 0, 0xD6E4, 0, 0xDFC7, 0xB9BE, 0xBFA7, 0, /* 0x90 */
- 0, 0xC1FC, 0xDFCB, 0xDFCC, 0, 0xDFD0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xDFDB, 0xDFE5, 0, 0xDFD7, 0xDFD6, /* 0xA0 */
- 0xD7C9, 0xDFE3, 0xDFE4, 0xE5EB, 0xD2A7, 0xDFD2, 0, 0xBFA9, /* 0xA0 */
- 0, 0xD4DB, 0, 0xBFC8, 0xDFD4, 0, 0, 0, /* 0xB0 */
- 0xCFCC, 0, 0, 0xDFDD, 0, 0xD1CA, 0, 0xDFDE, /* 0xB0 */
- 0xB0A7, 0xC6B7, 0xDFD3, 0, 0xBAE5, 0, 0xB6DF, 0xCDDB, /* 0xC0 */
- 0xB9FE, 0xD4D5, 0, 0, 0xDFDF, 0xCFEC, 0xB0A5, 0xDFE7, /* 0xC0 */
- 0xDFD1, 0xD1C6, 0xDFD5, 0xDFD8, 0xDFD9, 0xDFDC, 0, 0xBBA9, /* 0xD0 */
- 0, 0xDFE0, 0xDFE1, 0, 0xDFE2, 0xDFE6, 0xDFE8, 0xD3B4, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xB8E7, 0xC5B6, 0xDFEA, /* 0xE0 */
- 0xC9DA, 0xC1A8, 0xC4C4, 0, 0, 0xBFDE, 0xCFF8, 0, /* 0xE0 */
- 0, 0, 0xD5DC, 0xDFEE, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0xB2B8, 0, 0xBADF, 0xDFEC, 0, 0xDBC1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_55[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD1E4, 0, 0, 0, 0, 0xCBF4, 0xB4BD, /* 0x00 */
- 0, 0xB0A6, 0, 0, 0, 0, 0, 0xDFF1, /* 0x00 */
- 0xCCC6, 0xDFF2, 0, 0, 0xDFED, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xDFE9, 0, 0, 0, 0, /* 0x10 */
- 0xDFEB, 0, 0xDFEF, 0xDFF0, 0xBBBD, 0, 0, 0xDFF3, /* 0x20 */
- 0, 0, 0xDFF4, 0, 0xBBA3, 0, 0xCADB, 0xCEA8, /* 0x20 */
- 0xE0A7, 0xB3AA, 0, 0xE0A6, 0, 0, 0, 0xE0A1, /* 0x30 */
- 0, 0, 0, 0, 0xDFFE, 0, 0xCDD9, 0xDFFC, /* 0x30 */
- 0, 0xDFFA, 0, 0xBFD0, 0xD7C4, 0, 0xC9CC, 0, /* 0x40 */
- 0, 0xDFF8, 0xB0A1, 0, 0, 0, 0, 0, /* 0x40 */
- 0xDFFD, 0, 0, 0, 0, 0xDFFB, 0xE0A2, 0, /* 0x50 */
- 0, 0, 0, 0, 0xE0A8, 0, 0, 0, /* 0x50 */
- 0, 0xB7C8, 0, 0, 0xC6A1, 0xC9B6, 0xC0B2, 0xDFF5, /* 0x60 */
- 0, 0, 0xC5BE, 0, 0xD8C4, 0xDFF9, 0xC4F6, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xE0A3, 0xE0A4, 0xE0A5, /* 0x70 */
- 0xD0A5, 0, 0, 0xE0B4, 0xCCE4, 0, 0xE0B1, 0, /* 0x70 */
- 0xBFA6, 0xE0AF, 0xCEB9, 0xE0AB, 0xC9C6, 0, 0, 0xC0AE, /* 0x80 */
- 0xE0AE, 0xBAED, 0xBAB0, 0xE0A9, 0, 0, 0, 0xDFF6, /* 0x80 */
- 0, 0xE0B3, 0, 0, 0xE0B8, 0, 0, 0, /* 0x90 */
- 0xB4AD, 0xE0B9, 0, 0, 0xCFB2, 0xBAC8, 0, 0xE0B0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xD0FA, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xE0AC, 0, 0xD4FB, 0, 0xDFF7, 0, 0xC5E7, /* 0xB0 */
- 0, 0xE0AD, 0, 0xD3F7, 0, 0xE0B6, 0xE0B7, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xE0C4, 0xD0E1, 0, 0, /* 0xC0 */
- 0, 0xE0BC, 0, 0, 0xE0C9, 0xE0CA, 0, 0, /* 0xC0 */
- 0, 0xE0BE, 0xE0AA, 0xC9A4, 0xE0C1, 0, 0xE0B2, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xCAC8, 0xE0C3, 0, 0xE0B5, /* 0xD0 */
- 0, 0xCECB, 0, 0xCBC3, 0xE0CD, 0xE0C6, 0xE0C2, 0, /* 0xE0 */
- 0xE0CB, 0, 0xE0BA, 0xE0BF, 0xE0C0, 0, 0, 0xE0C5, /* 0xE0 */
- 0, 0, 0xE0C7, 0xE0C8, 0, 0xE0CC, 0, 0xE0BB, /* 0xF0 */
- 0, 0, 0, 0, 0, 0xCBD4, 0xE0D5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_56[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE0D6, 0xE0D2, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0xE0D0, 0xBCCE, 0, 0, 0xE0D1, 0, 0xB8C2, 0xD8C5, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xD0EA, 0, 0, 0xC2EF, 0, 0, 0xE0CF, 0xE0BD, /* 0x10 */
- 0, 0, 0, 0xE0D4, 0xE0D3, 0, 0, 0xE0D7, /* 0x20 */
- 0, 0, 0, 0, 0xE0DC, 0xE0D8, 0, 0, /* 0x20 */
- 0, 0xD6F6, 0xB3B0, 0, 0xD7EC, 0, 0xCBBB, 0, /* 0x30 */
- 0, 0xE0DA, 0, 0xCEFB, 0, 0, 0, 0xBAD9, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xE0E1, 0xE0DD, 0xD2AD, 0, /* 0x40 */
- 0, 0, 0, 0, 0xE0E2, 0, 0, 0xE0DB, /* 0x50 */
- 0xE0D9, 0xE0DF, 0, 0, 0xE0E0, 0, 0, 0, /* 0x50 */
- 0, 0, 0xE0DE, 0, 0xE0E4, 0, 0, 0, /* 0x60 */
- 0xC6F7, 0xD8AC, 0xD4EB, 0xE0E6, 0xCAC9, 0, 0, 0, /* 0x60 */
- 0, 0xE0E5, 0, 0, 0, 0, 0xB8C1, 0, /* 0x70 */
- 0, 0, 0, 0xE0E7, 0xE0E8, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xE0E9, 0xE0E3, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xBABF, 0xCCE7, /* 0x80 */
- 0, 0, 0, 0xE0EA, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xCFF9, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE0EB, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0xC8C2, /* 0xB0 */
- 0, 0, 0, 0, 0xBDC0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xC4D2, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xE0EC, 0, 0, 0xE0ED, /* 0xD0 */
- 0, 0, 0xC7F4, 0xCBC4, 0, 0xE0EE, 0xBBD8, 0xD8B6, /* 0xD0 */
- 0xD2F2, 0xE0EF, 0xCDC5, 0, 0xB6DA, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xE0F1, 0, 0xD4B0, 0, 0, /* 0xE0 */
- 0xC0A7, 0xB4D1, 0, 0, 0xCEA7, 0xE0F0, 0, 0, /* 0xF0 */
- 0, 0xE0F2, 0xB9CC, 0, 0, 0xB9FA, 0xCDBC, 0xE0F3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_57[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC6D4, 0xE0F4, 0, 0xD4B2, 0, /* 0x00 */
- 0xC8A6, 0xE0F6, 0xE0F5, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0xE0F7, 0, 0, 0xCDC1, /* 0x10 */
- 0, 0, 0, 0xCAA5, 0, 0, 0, 0, /* 0x20 */
- 0xD4DA, 0xDBD7, 0xDBD9, 0, 0xDBD8, 0xB9E7, 0xDBDC, 0xDBDD, /* 0x20 */
- 0xB5D8, 0, 0, 0xDBDA, 0, 0, 0, 0, /* 0x30 */
- 0, 0xDBDB, 0xB3A1, 0xDBDF, 0, 0, 0xBBF8, 0, /* 0x30 */
- 0xD6B7, 0, 0xDBE0, 0, 0, 0, 0, 0xBEF9, /* 0x40 */
- 0, 0, 0xB7BB, 0, 0xDBD0, 0xCCAE, 0xBFB2, 0xBBB5, /* 0x40 */
- 0xD7F8, 0xBFD3, 0, 0, 0, 0, 0, 0xBFE9, /* 0x50 */
- 0, 0, 0xBCE1, 0xCCB3, 0xDBDE, 0xB0D3, 0xCEEB, 0xB7D8, /* 0x50 */
- 0xD7B9, 0xC6C2, 0, 0, 0xC0A4, 0, 0xCCB9, 0, /* 0x60 */
- 0xDBE7, 0xDBE1, 0xC6BA, 0xDBE3, 0, 0xDBE8, 0, 0xC5F7, /* 0x60 */
- 0, 0, 0, 0xDBEA, 0, 0, 0xDBE9, 0xBFC0, /* 0x70 */
- 0, 0, 0, 0xDBE6, 0xDBE5, 0, 0, 0, /* 0x70 */
- 0, 0, 0xB4B9, 0xC0AC, 0xC2A2, 0xDBE2, 0xDBE4, 0, /* 0x80 */
- 0, 0, 0, 0xD0CD, 0xDBED, 0, 0, 0, /* 0x80 */
- 0, 0, 0xC0DD, 0xDBF2, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xB6E2, 0, 0, 0, 0, /* 0x90 */
- 0xDBF3, 0xDBD2, 0xB9B8, 0xD4AB, 0xDBEC, 0, 0xBFD1, 0xDBF0, /* 0xA0 */
- 0, 0xDBD1, 0, 0xB5E6, 0, 0xDBEB, 0xBFE5, 0, /* 0xA0 */
- 0, 0, 0xDBEE, 0, 0xDBF1, 0, 0, 0, /* 0xB0 */
- 0xDBF9, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xB9A1, 0xB0A3, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xC2F1, 0, 0, 0xB3C7, 0xDBEF, /* 0xC0 */
- 0, 0, 0xDBF8, 0, 0xC6D2, 0xDBF4, 0, 0, /* 0xD0 */
- 0xDBF5, 0xDBF7, 0xDBF6, 0, 0, 0xDBFE, 0, 0xD3F2, /* 0xD0 */
- 0xB2BA, 0, 0, 0, 0xDBFD, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xDCA4, 0, 0xDBFB, /* 0xE0 */
- 0, 0, 0, 0, 0xDBFA, 0, 0, 0, /* 0xF0 */
- 0xDBFC, 0xC5E0, 0xBBF9, 0, 0, 0xDCA3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_58[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDCA5, 0, 0xCCC3, 0, 0, 0, 0xB6D1, 0xDDC0, /* 0x00 */
- 0, 0, 0, 0xDCA1, 0, 0xDCA2, 0, 0, /* 0x00 */
- 0, 0xC7B5, 0, 0, 0, 0xB6E9, 0, 0, /* 0x10 */
- 0, 0xDCA7, 0, 0, 0, 0, 0xDCA6, 0, /* 0x10 */
- 0xDCA9, 0xB1A4, 0, 0, 0xB5CC, 0, 0, 0, /* 0x20 */
- 0, 0, 0xBFB0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xD1DF, 0, 0, 0, 0, 0xB6C2, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0xDCA8, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xCBFA, 0xEBF3, 0, 0, /* 0x40 */
- 0, 0xCBDC, 0, 0, 0xCBFE, 0, 0, 0, /* 0x50 */
- 0xCCC1, 0, 0, 0, 0, 0, 0xC8FB, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xDCAA, 0, 0, /* 0x60 */
- 0, 0, 0, 0xCCEE, 0xDCAB, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xDBD3, 0, /* 0x70 */
- 0xDCAF, 0xDCAC, 0, 0xBEB3, 0, 0xCAFB, 0, 0, /* 0x80 */
- 0, 0xDCAD, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xC9CA, 0xC4B9, 0, 0, 0, 0, /* 0x90 */
- 0, 0xC7BD, 0xDCAE, 0, 0, 0, 0xD4F6, 0xD0E6, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xC4AB, 0xB6D5, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xDBD4, 0, 0, 0, /* 0xB0 */
- 0, 0xB1DA, 0, 0, 0, 0xDBD5, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xDBD6, 0, 0, 0, 0xBABE, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xC8C0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xCABF, 0xC8C9, 0, 0xD7B3, 0, /* 0xE0 */
- 0xC9F9, 0, 0, 0xBFC7, 0, 0, 0xBAF8, 0, /* 0xF0 */
- 0, 0xD2BC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_59[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE2BA, 0, 0xB4A6, 0, 0, 0xB1B8, /* 0x00 */
- 0, 0, 0, 0, 0, 0xB8B4, 0, 0xCFC4, /* 0x00 */
- 0, 0, 0, 0, 0xD9E7, 0xCFA6, 0xCDE2, 0, /* 0x10 */
- 0, 0xD9ED, 0xB6E0, 0, 0xD2B9, 0, 0, 0xB9BB, /* 0x10 */
- 0, 0, 0, 0, 0xE2B9, 0xE2B7, 0, 0xB4F3, /* 0x20 */
- 0, 0xCCEC, 0xCCAB, 0xB7F2, 0, 0xD8B2, 0xD1EB, 0xBABB, /* 0x20 */
- 0, 0xCAA7, 0, 0, 0xCDB7, 0, 0, 0xD2C4, /* 0x30 */
- 0xBFE4, 0xBCD0, 0xB6E1, 0, 0xDEC5, 0, 0, 0, /* 0x30 */
- 0, 0xDEC6, 0xDBBC, 0, 0xD1D9, 0, 0, 0xC6E6, /* 0x40 */
- 0xC4CE, 0xB7EE, 0, 0xB7DC, 0, 0, 0xBFFC, 0xD7E0, /* 0x40 */
- 0, 0xC6F5, 0, 0, 0xB1BC, 0xDEC8, 0xBDB1, 0xCCD7, /* 0x50 */
- 0xDECA, 0, 0xDEC9, 0, 0, 0, 0, 0, /* 0x50 */
- 0xB5EC, 0, 0xC9DD, 0, 0, 0xB0C2, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xC5AE, 0xC5AB, 0, 0xC4CC, 0, /* 0x70 */
- 0xBCE9, 0xCBFD, 0, 0, 0, 0xBAC3, 0, 0, /* 0x70 */
- 0, 0xE5F9, 0xC8E7, 0xE5FA, 0xCDFD, 0, 0xD7B1, 0xB8BE, /* 0x80 */
- 0xC2E8, 0, 0xC8D1, 0, 0, 0xE5FB, 0, 0, /* 0x80 */
- 0, 0, 0xB6CA, 0xBCCB, 0, 0, 0xD1FD, 0xE6A1, /* 0x90 */
- 0, 0xC3EE, 0, 0, 0, 0, 0xE6A4, 0, /* 0x90 */
- 0, 0, 0, 0xE5FE, 0xE6A5, 0xCDD7, 0, 0, /* 0xA0 */
- 0xB7C1, 0xE5FC, 0xE5FD, 0xE6A3, 0, 0, 0xC4DD, 0xE6A8, /* 0xA0 */
- 0, 0, 0xE6A7, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xC3C3, 0, 0xC6DE, 0, 0, 0xE6AA, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xC4B7, 0, /* 0xC0 */
- 0, 0, 0xE6A2, 0xCABC, 0, 0, 0, 0, /* 0xC0 */
- 0xBDE3, 0xB9C3, 0xE6A6, 0xD0D5, 0xCEAF, 0, 0, 0xE6A9, /* 0xD0 */
- 0xE6B0, 0, 0xD2A6, 0, 0xBDAA, 0xE6AD, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xE6AF, 0, 0xC0D1, 0, 0, /* 0xE0 */
- 0xD2CC, 0, 0, 0, 0xBCA7, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xE6B1, 0, 0xD2F6, 0, 0, 0, 0xD7CB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_5A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCDFE, 0, 0xCDDE, 0xC2A6, 0xE6AB, 0xE6AC, 0xBDBF, /* 0x00 */
- 0xE6AE, 0xE6B3, 0, 0, 0xE6B2, 0, 0, 0, /* 0x00 */
- 0, 0xE6B6, 0, 0xE6B8, 0, 0, 0, 0, /* 0x10 */
- 0xC4EF, 0, 0, 0, 0xC4C8, 0, 0, 0xBEEA, /* 0x10 */
- 0xC9EF, 0, 0, 0xE6B7, 0, 0xB6F0, 0, 0, /* 0x20 */
- 0, 0xC3E4, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xD3E9, 0xE6B4, 0, 0xE6B5, 0, 0xC8A2, 0, /* 0x30 */
- 0, 0, 0, 0, 0xE6BD, 0, 0, 0, /* 0x30 */
- 0xE6B9, 0, 0, 0, 0, 0, 0xC6C5, 0, /* 0x40 */
- 0, 0xCDF1, 0xE6BB, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xE6BC, 0, 0, /* 0x50 */
- 0, 0, 0xBBE9, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0xE6BE, 0, 0, 0, 0, 0xE6BA, /* 0x60 */
- 0, 0, 0xC0B7, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xD3A4, 0xE6BF, 0xC9F4, 0xE6C3, /* 0x70 */
- 0, 0, 0xE6C4, 0, 0, 0, 0, 0xD0F6, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xC3BD, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xC3C4, 0xE6C2, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xE6C1, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xE6C7, 0xCFB1, 0, 0xEBF4, 0, 0, /* 0xB0 */
- 0xE6CA, 0, 0, 0, 0, 0, 0xE6C5, 0, /* 0xB0 */
- 0, 0xBCDE, 0xC9A9, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xBCB5, 0, 0, 0xCFD3, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xE6C8, 0, 0xE6C9, 0, 0xE6CE, 0, /* 0xD0 */
- 0xE6D0, 0, 0, 0, 0xE6D1, 0, 0, 0, /* 0xD0 */
- 0xE6CB, 0xB5D5, 0, 0xE6CC, 0, 0, 0xE6CF, 0, /* 0xE0 */
- 0, 0xC4DB, 0, 0xE6C6, 0, 0, 0, 0, /* 0xE0 */
- 0, 0xE6CD /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_5B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xE6D2, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xE6D4, 0xE6D3, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xE6D5, 0, 0xD9F8, 0, 0, 0xE6D6, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xE6D7, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xD7D3, 0xE6DD, 0, 0xE6DE, 0xBFD7, 0xD4D0, 0, 0xD7D6, /* 0x50 */
- 0xB4E6, 0xCBEF, 0xE6DA, 0xD8C3, 0xD7CE, 0xD0A2, 0, 0xC3CF, /* 0x50 */
- 0, 0, 0xE6DF, 0xBCBE, 0xB9C2, 0xE6DB, 0xD1A7, 0, /* 0x60 */
- 0, 0xBAA2, 0xC2CF, 0, 0xD8AB, 0, 0, 0, /* 0x60 */
- 0xCAEB, 0xE5EE, 0, 0xE6DC, 0, 0xB7F5, 0, 0, /* 0x70 */
- 0, 0, 0xC8E6, 0, 0, 0xC4F5, 0, 0, /* 0x70 */
- 0xE5B2, 0xC4FE, 0, 0xCBFC, 0xE5B3, 0xD5AC, 0, 0xD3EE, /* 0x80 */
- 0xCAD8, 0xB0B2, 0, 0xCBCE, 0xCDEA, 0, 0, 0xBAEA, /* 0x80 */
- 0, 0, 0, 0xE5B5, 0, 0xE5B4, 0, 0xD7DA, /* 0x90 */
- 0xB9D9, 0xD6E6, 0xB6A8, 0xCDF0, 0xD2CB, 0xB1A6, 0xCAB5, 0, /* 0x90 */
- 0xB3E8, 0xC9F3, 0xBFCD, 0xD0FB, 0xCAD2, 0xE5B6, 0xBBC2, 0, /* 0xA0 */
- 0, 0, 0xCFDC, 0xB9AC, 0, 0, 0, 0, /* 0xA0 */
- 0xD4D7, 0, 0, 0xBAA6, 0xD1E7, 0xCFFC, 0xBCD2, 0, /* 0xB0 */
- 0xE5B7, 0xC8DD, 0, 0, 0, 0xBFED, 0xB1F6, 0xCBDE, /* 0xB0 */
- 0, 0, 0xBCC5, 0, 0xBCC4, 0xD2FA, 0xC3DC, 0xBFDC, /* 0xC0 */
- 0, 0, 0, 0, 0xB8BB, 0, 0, 0, /* 0xC0 */
- 0xC3C2, 0, 0xBAAE, 0xD4A2, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xC7DE, 0xC4AF, 0xB2EC, /* 0xD0 */
- 0, 0xB9D1, 0, 0, 0xE5BB, 0xC1C8, 0, 0, /* 0xE0 */
- 0xD5AF, 0, 0, 0, 0, 0, 0xE5BC, 0, /* 0xE0 */
- 0xE5BE, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0xB4E7, 0xB6D4, 0xCBC2, 0xD1B0, 0xB5BC, 0, 0, 0xCAD9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_5C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB7E2, 0, 0, 0xC9E4, 0, 0xBDAB, 0, /* 0x00 */
- 0, 0xCEBE, 0xD7F0, 0, 0, 0, 0, 0xD0A1, /* 0x00 */
- 0, 0xC9D9, 0, 0, 0xB6FB, 0xE6D8, 0xBCE2, 0, /* 0x10 */
- 0xB3BE, 0, 0xC9D0, 0, 0xE6D9, 0xB3A2, 0, 0, /* 0x10 */
- 0, 0, 0xDECC, 0, 0xD3C8, 0xDECD, 0, 0xD2A2, /* 0x20 */
- 0, 0, 0, 0, 0xDECE, 0, 0, 0, /* 0x20 */
- 0, 0xBECD, 0, 0, 0xDECF, 0, 0, 0, /* 0x30 */
- 0xCAAC, 0xD2FC, 0xB3DF, 0xE5EA, 0xC4E1, 0xBEA1, 0xCEB2, 0xC4F2, /* 0x30 */
- 0xBED6, 0xC6A8, 0xB2E3, 0, 0, 0xBED3, 0, 0, /* 0x40 */
- 0xC7FC, 0xCCEB, 0xBDEC, 0xCEDD, 0, 0, 0xCABA, 0xC6C1, /* 0x40 */
- 0xE5EC, 0xD0BC, 0, 0, 0, 0xD5B9, 0, 0, /* 0x50 */
- 0, 0xE5ED, 0, 0, 0, 0, 0xCAF4, 0, /* 0x50 */
- 0xCDC0, 0xC2C5, 0, 0xE5EF, 0, 0xC2C4, 0xE5F0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0xE5F8, 0xCDCD, /* 0x60 */
- 0, 0xC9BD, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD2D9, 0xE1A8, 0, 0, 0, 0, 0xD3EC, /* 0x70 */
- 0, 0xCBEA, 0xC6F1, 0, 0, 0, 0, 0, /* 0x80 */
- 0xE1AC, 0, 0, 0, 0xE1A7, 0xE1A9, 0, 0, /* 0x80 */
- 0xE1AA, 0xE1AF, 0, 0, 0xB2ED, 0, 0xE1AB, 0xB8DA, /* 0x90 */
- 0xE1AD, 0xE1AE, 0xE1B0, 0xB5BA, 0xE1B1, 0, 0, 0, /* 0x90 */
- 0, 0, 0xE1B3, 0xE1B8, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xD1D2, 0, 0xE1B6, 0xE1B5, 0xC1EB, 0, 0, /* 0xA0 */
- 0, 0xE1B7, 0, 0xD4C0, 0, 0xE1B2, 0, 0xE1BA, /* 0xB0 */
- 0xB0B6, 0, 0, 0, 0, 0xE1B4, 0, 0xBFF9, /* 0xB0 */
- 0, 0xE1B9, 0, 0, 0xE1BB, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xE1BE, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xE1BC, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xD6C5, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xCFBF, 0, 0, 0xE1BD, 0xE1BF, 0xC2CD, 0, /* 0xE0 */
- 0xB6EB, 0, 0xD3F8, 0, 0, 0xC7CD, 0, 0, /* 0xE0 */
- 0xB7E5, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0xBEFE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_5D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE1C0, 0xE1C1, 0, 0, 0xE1C7, 0xB3E7, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xC6E9, 0, /* 0x00 */
- 0, 0, 0, 0, 0xB4DE, 0, 0xD1C2, 0, /* 0x10 */
- 0, 0, 0, 0xE1C8, 0, 0, 0xE1C6, 0, /* 0x10 */
- 0, 0, 0, 0, 0xE1C5, 0, 0xE1C3, 0xE1C2, /* 0x20 */
- 0, 0xB1C0, 0, 0, 0, 0xD5B8, 0xE1C4, 0, /* 0x20 */
- 0, 0, 0, 0, 0xE1CB, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xE1CC, 0xE1CA, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0xEFFA, /* 0x40 */
- 0, 0, 0xE1D3, 0xE1D2, 0xC7B6, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xE1C9, 0, 0, 0xE1CE, 0, 0xE1D0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xE1D4, 0, 0xE1D1, 0xE1CD, 0, 0, 0xE1CF, /* 0x60 */
- 0, 0, 0, 0, 0xE1D5, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xE1D6, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xE1D7, 0, 0, 0, 0xE1D8, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE1DA, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xE1DB, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xCEA1, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xE7DD, 0, 0xB4A8, 0xD6DD, 0, /* 0xD0 */
- 0, 0xD1B2, 0xB3B2, 0, 0, 0xB9A4, 0xD7F3, 0xC7C9, /* 0xE0 */
- 0xBEDE, 0xB9AE, 0, 0xCED7, 0, 0, 0xB2EE, 0xDBCF, /* 0xE0 */
- 0, 0xBCBA, 0xD2D1, 0xCBC8, 0xB0CD, 0, 0, 0xCFEF, /* 0xF0 */
- 0, 0, 0, 0, 0, 0xD9E3, 0xBDED /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_5E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB1D2, 0xCAD0, 0xB2BC, 0, 0xCBA7, 0xB7AB, 0, /* 0x00 */
- 0xCAA6, 0, 0, 0, 0xCFA3, 0, 0, 0xE0F8, /* 0x00 */
- 0xD5CA, 0xE0FB, 0, 0, 0xE0FA, 0xC5C1, 0xCCFB, 0, /* 0x10 */
- 0xC1B1, 0xE0F9, 0xD6E3, 0xB2AF, 0xD6C4, 0xB5DB, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xB4F8, 0xD6A1, /* 0x20 */
- 0, 0, 0, 0, 0, 0xCFAF, 0xB0EF, 0, /* 0x20 */
- 0, 0xE0FC, 0, 0, 0, 0, 0, 0xE1A1, /* 0x30 */
- 0xB3A3, 0, 0, 0xE0FD, 0xE0FE, 0xC3B1, 0, 0, /* 0x30 */
- 0, 0, 0xC3DD, 0, 0xE1A2, 0xB7F9, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xBBCF, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xE1A3, 0xC4BB, 0, 0, /* 0x50 */
- 0, 0, 0, 0xE1A4, 0, 0, 0xE1A5, 0, /* 0x50 */
- 0, 0xE1A6, 0xB4B1, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xB8C9, 0xC6BD, 0xC4EA, 0, 0xB2A2, 0, /* 0x70 */
- 0xD0D2, 0, 0xE7DB, 0xBBC3, 0xD3D7, 0xD3C4, 0, 0xB9E3, /* 0x70 */
- 0xE2CF, 0, 0, 0, 0xD7AF, 0, 0xC7EC, 0xB1D3, /* 0x80 */
- 0, 0, 0xB4B2, 0xE2D1, 0, 0, 0, 0xD0F2, /* 0x80 */
- 0xC2AE, 0xE2D0, 0, 0xBFE2, 0xD3A6, 0xB5D7, 0xE2D2, 0xB5EA, /* 0x90 */
- 0, 0xC3ED, 0xB8FD, 0, 0xB8AE, 0, 0xC5D3, 0xB7CF, /* 0x90 */
- 0xE2D4, 0, 0, 0, 0, 0xE2D3, 0xB6C8, 0xD7F9, /* 0xA0 */
- 0, 0, 0, 0, 0, 0xCDA5, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xE2D8, 0, 0xE2D6, 0xCAFC, 0xBFB5, /* 0xB0 */
- 0xD3B9, 0xE2D5, 0, 0, 0, 0, 0xE2D7, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xC1AE, 0xC0C8, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xE2DB, 0xE2DA, 0xC0AA, 0, 0, 0xC1CE, 0, /* 0xD0 */
- 0, 0, 0, 0xE2DC, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xE2DD, 0, 0xE2DE, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xDBC8, 0, 0xD1D3, 0xCDA2, /* 0xF0 */
- 0, 0, 0xBDA8, 0, 0, 0, 0xDEC3, 0xD8A5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_5F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBFAA, 0xDBCD, 0xD2EC, 0xC6FA, 0xC5AA, 0, 0, 0, /* 0x00 */
- 0xDEC4, 0, 0xB1D7, 0xDFAE, 0, 0, 0, 0xCABD, /* 0x00 */
- 0, 0xDFB1, 0, 0xB9AD, 0, 0xD2FD, 0, 0xB8A5, /* 0x10 */
- 0xBAEB, 0, 0, 0xB3DA, 0, 0, 0, 0xB5DC, /* 0x10 */
- 0xD5C5, 0, 0, 0, 0, 0xC3D6, 0xCFD2, 0xBBA1, /* 0x20 */
- 0, 0xE5F3, 0xE5F2, 0, 0, 0xE5F4, 0, 0xCDE4, /* 0x20 */
- 0, 0xC8F5, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xB5AF, 0xC7BF, 0, 0xE5F6, 0, 0, 0, /* 0x30 */
- 0xECB0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xE5E6, 0, 0xB9E9, 0xB5B1, 0, 0xC2BC, 0xE5E8, 0xE5E7, /* 0x50 */
- 0xE5E9, 0, 0, 0, 0, 0xD2CD, 0, 0, /* 0x50 */
- 0, 0xE1EA, 0xD0CE, 0, 0xCDAE, 0, 0xD1E5, 0, /* 0x60 */
- 0, 0xB2CA, 0xB1EB, 0, 0xB1F2, 0xC5ED, 0, 0, /* 0x60 */
- 0xD5C3, 0xD3B0, 0, 0xE1DC, 0, 0, 0, 0xE1DD, /* 0x70 */
- 0, 0xD2DB, 0, 0xB3B9, 0xB1CB, 0, 0, 0, /* 0x70 */
- 0xCDF9, 0xD5F7, 0xE1DE, 0, 0xBEB6, 0xB4FD, 0, 0xE1DF, /* 0x80 */
- 0xBADC, 0xE1E0, 0xBBB2, 0xC2C9, 0xE1E1, 0, 0, 0, /* 0x80 */
- 0xD0EC, 0, 0xCDBD, 0, 0, 0xE1E2, 0, 0xB5C3, /* 0x90 */
- 0xC5C7, 0xE1E3, 0, 0, 0xE1E4, 0, 0, 0, /* 0x90 */
- 0, 0xD3F9, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xE1E5, 0, 0xD1AD, 0, 0, 0xE1E6, 0xCEA2, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0xE1E7, 0, 0xB5C2, /* 0xB0 */
- 0, 0, 0, 0, 0xE1E8, 0xBBD5, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xD0C4, 0xE2E0, 0xB1D8, 0xD2E4, 0, /* 0xC0 */
- 0, 0xE2E1, 0, 0, 0xBCC9, 0xC8CC, 0, 0xE2E3, /* 0xC0 */
- 0xECFE, 0xECFD, 0xDFAF, 0, 0, 0, 0xE2E2, 0xD6BE, /* 0xD0 */
- 0xCDFC, 0xC3A6, 0, 0, 0, 0xE3C3, 0, 0, /* 0xD0 */
- 0xD6D2, 0xE2E7, 0, 0, 0xE2E8, 0, 0, 0xD3C7, /* 0xE0 */
- 0, 0, 0xE2EC, 0xBFEC, 0, 0xE2ED, 0xE2E5, 0, /* 0xE0 */
- 0, 0xB3C0, 0, 0, 0, 0xC4EE, 0, 0, /* 0xF0 */
- 0xE2EE, 0, 0, 0xD0C3, 0, 0xBAF6, 0xE2E9, 0xB7DE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_60[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBBB3, 0xCCAC, 0xCBCB, 0xE2E4, 0xE2E6, 0xE2EA, 0xE2EB, 0, /* 0x00 */
- 0, 0, 0xE2F7, 0, 0, 0xE2F4, 0xD4F5, 0xE2F3, /* 0x00 */
- 0, 0, 0xC5AD, 0, 0xD5FA, 0xC5C2, 0xB2C0, 0, /* 0x10 */
- 0, 0xE2EF, 0, 0xE2F2, 0xC1AF, 0xCBBC, 0, 0, /* 0x10 */
- 0xB5A1, 0xE2F9, 0, 0, 0, 0xBCB1, 0xE2F1, 0xD0D4, /* 0x20 */
- 0xD4B9, 0xE2F5, 0xB9D6, 0xE2F6, 0, 0, 0, 0xC7D3, /* 0x20 */
- 0, 0, 0, 0, 0, 0xE2F0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xD7DC, 0xEDA1, 0, 0, 0xE2F8, /* 0x30 */
- 0, 0xEDA5, 0xE2FE, 0xCAD1, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xC1B5, 0, 0xBBD0, 0, 0, /* 0x40 */
- 0xBFD6, 0, 0xBAE3, 0, 0, 0xCBA1, 0, 0, /* 0x50 */
- 0, 0xEDA6, 0xEDA3, 0, 0, 0xEDA2, 0, 0, /* 0x50 */
- 0, 0, 0xBBD6, 0xEDA7, 0xD0F4, 0, 0, 0xEDA4, /* 0x60 */
- 0xBADE, 0xB6F7, 0xE3A1, 0xB6B2, 0xCCF1, 0xB9A7, 0, 0xCFA2, /* 0x60 */
- 0xC7A1, 0, 0, 0xBFD2, 0, 0, 0xB6F1, 0, /* 0x70 */
- 0xE2FA, 0xE2FB, 0xE2FD, 0xE2FC, 0xC4D5, 0xE3A2, 0, 0xD3C1, /* 0x70 */
- 0, 0, 0, 0xE3A7, 0xC7C4, 0, 0, 0, /* 0x80 */
- 0, 0xCFA4, 0, 0, 0xE3A9, 0xBAB7, 0, 0, /* 0x80 */
- 0, 0, 0xE3A8, 0, 0xBBDA, 0, 0xE3A3, 0, /* 0x90 */
- 0, 0, 0xE3A4, 0xE3AA, 0, 0xE3A6, 0, 0xCEF2, /* 0x90 */
- 0xD3C6, 0, 0, 0xBBBC, 0, 0, 0xD4C3, 0, /* 0xA0 */
- 0xC4FA, 0, 0, 0xEDA8, 0xD0FC, 0xE3A5, 0, 0xC3F5, /* 0xA0 */
- 0, 0xE3AD, 0xB1AF, 0, 0xE3B2, 0, 0, 0, /* 0xB0 */
- 0xBCC2, 0, 0, 0xE3AC, 0xB5BF, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xC7E9, 0xE3B0, 0, /* 0xC0 */
- 0, 0, 0xBEAA, 0xCDEF, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xBBF3, 0, 0, 0, 0xCCE8, 0, 0, /* 0xD0 */
- 0xE3AF, 0, 0xE3B1, 0, 0xCFA7, 0xE3AE, 0, 0xCEA9, /* 0xD0 */
- 0xBBDD, 0, 0, 0, 0, 0, 0xB5EB, 0xBEE5, /* 0xE0 */
- 0xB2D2, 0xB3CD, 0, 0xB1B9, 0xE3AB, 0xB2D1, 0xB5AC, 0xB9DF, /* 0xE0 */
- 0xB6E8, 0, 0, 0xCFEB, 0xE3B7, 0, 0xBBCC, 0, /* 0xF0 */
- 0, 0xC8C7, 0xD0CA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_61[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE3B8, 0xB3EE, 0, 0, 0, 0, 0xEDA9, 0, /* 0x00 */
- 0xD3FA, 0xD3E4, 0, 0, 0, 0xEDAA, 0xE3B9, 0xD2E2, /* 0x00 */
- 0, 0, 0, 0, 0, 0xE3B5, 0, 0, /* 0x10 */
- 0, 0, 0xD3DE, 0, 0, 0, 0, 0xB8D0, /* 0x10 */
- 0xE3B3, 0, 0, 0xE3B6, 0xB7DF, 0, 0xE3B4, 0xC0A2, /* 0x20 */
- 0, 0, 0, 0xE3BA, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0xD4B8, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xB4C8, 0, 0xE3BB, 0, 0xBBC5, 0, 0xC9F7, 0, /* 0x40 */
- 0, 0xC9E5, 0, 0, 0, 0xC4BD, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xEDAB, 0, 0, /* 0x50 */
- 0, 0, 0xC2FD, 0, 0, 0, 0, 0xBBDB, /* 0x60 */
- 0xBFAE, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0xCEBF, 0, 0, 0, 0, 0xE3BC, 0, 0xBFB6, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xB1EF, 0, 0, 0xD4F7, 0, /* 0x80 */
- 0, 0, 0, 0, 0xE3BE, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xEDAD, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xE3BF, /* 0xA0 */
- 0xBAA9, 0xEDAC, 0, 0, 0xE3BD, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE3C0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xBAB6, 0, /* 0xB0 */
- 0, 0, 0xB6AE, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xD0B8, 0, 0xB0C3, 0xEDAE, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xEDAF, 0xC0C1, 0, 0xE3C1, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xC5B3, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xE3C2, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0, 0xDCB2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_62[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEDB0, 0, /* 0x00 */
- 0xB8EA, 0, 0xCEEC, 0xEAA7, 0xD0E7, 0xCAF9, 0xC8D6, 0xCFB7, /* 0x00 */
- 0xB3C9, 0xCED2, 0xBDE4, 0, 0, 0xE3DE, 0xBBF2, 0xEAA8, /* 0x10 */
- 0xD5BD, 0, 0xC6DD, 0xEAA9, 0, 0, 0, 0xEAAA, /* 0x10 */
- 0, 0xEAAC, 0xEAAB, 0, 0xEAAE, 0xEAAD, 0, 0, /* 0x20 */
- 0, 0, 0xBDD8, 0, 0xEAAF, 0, 0xC2BE, 0, /* 0x20 */
- 0, 0, 0, 0xB4C1, 0xB4F7, 0, 0, 0xBBA7, /* 0x30 */
- 0, 0, 0, 0, 0, 0xECE6, 0xECE5, 0xB7BF, /* 0x30 */
- 0xCBF9, 0xB1E2, 0, 0xECE7, 0, 0, 0, 0xC9C8, /* 0x40 */
- 0xECE8, 0xECE9, 0, 0xCAD6, 0xDED0, 0xB2C5, 0xD4FA, 0, /* 0x40 */
- 0, 0xC6CB, 0xB0C7, 0xB4F2, 0xC8D3, 0, 0, 0, /* 0x50 */
- 0xCDD0, 0, 0, 0xBFB8, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0xBFDB, 0, 0, 0xC7A4, 0xD6B4, /* 0x60 */
- 0, 0xC0A9, 0xDED1, 0xC9A8, 0xD1EF, 0xC5A4, 0xB0E7, 0xB3B6, /* 0x60 */
- 0xC8C5, 0, 0, 0xB0E2, 0, 0, 0xB7F6, 0, /* 0x70 */
- 0, 0xC5FA, 0, 0, 0xB6F3, 0, 0xD5D2, 0xB3D0, /* 0x70 */
- 0xBCBC, 0, 0, 0, 0xB3AD, 0, 0, 0, /* 0x80 */
- 0, 0xBEF1, 0xB0D1, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xD2D6, 0xCAE3, 0xD7A5, 0, 0xCDB6, 0xB6B6, 0xBFB9, /* 0x90 */
- 0xD5DB, 0, 0xB8A7, 0xC5D7, 0, 0, 0, 0xDED2, /* 0x90 */
- 0xBFD9, 0xC2D5, 0xC7C0, 0, 0xBBA4, 0xB1A8, 0, 0, /* 0xA0 */
- 0xC5EA, 0, 0, 0xC5FB, 0xCCA7, 0, 0, 0, /* 0xA0 */
- 0, 0xB1A7, 0, 0, 0, 0xB5D6, 0, 0, /* 0xB0 */
- 0, 0xC4A8, 0, 0xDED3, 0xD1BA, 0xB3E9, 0, 0xC3F2, /* 0xB0 */
- 0, 0, 0xB7F7, 0, 0xD6F4, 0xB5A3, 0xB2F0, 0xC4B4, /* 0xC0 */
- 0xC4E9, 0xC0AD, 0xDED4, 0, 0xB0E8, 0xC5C4, 0xC1E0, 0, /* 0xC0 */
- 0xB9D5, 0, 0xBEDC, 0xCDD8, 0xB0CE, 0, 0xCDCF, 0xDED6, /* 0xD0 */
- 0xBED0, 0xD7BE, 0xDED5, 0xD5D0, 0xB0DD, 0, 0, 0xC4E2, /* 0xD0 */
- 0, 0, 0xC2A3, 0xBCF0, 0, 0xD3B5, 0xC0B9, 0xC5A1, /* 0xE0 */
- 0xB2A6, 0xD4F1, 0, 0, 0xC0A8, 0xCAC3, 0xDED7, 0xD5FC, /* 0xE0 */
- 0, 0xB9B0, 0, 0xC8AD, 0xCBA9, 0, 0xDED9, 0xBFBD, /* 0xF0 */
- 0, 0, 0, 0, 0xC6B4, 0xD7A7, 0xCAB0, 0xC4C3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_63[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB3D6, 0xB9D2, 0, 0, 0, 0, 0xD6B8, /* 0x00 */
- 0xEAFC, 0xB0B4, 0, 0, 0, 0, 0xBFE6, 0, /* 0x00 */
- 0, 0xCCF4, 0, 0, 0, 0, 0xCDDA, 0, /* 0x10 */
- 0, 0, 0xD6BF, 0xC2CE, 0, 0xCECE, 0xCCA2, 0xD0AE, /* 0x10 */
- 0xC4D3, 0xB5B2, 0xDED8, 0xD5F5, 0xBCB7, 0xBBD3, 0, 0, /* 0x20 */
- 0xB0A4, 0, 0xC5B2, 0xB4EC, 0, 0, 0, 0xD5F1, /* 0x20 */
- 0, 0, 0xEAFD, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xDEDA, 0xCDA6, 0, 0, 0xCDEC, 0, 0, /* 0x30 */
- 0, 0, 0xCEE6, 0xDEDC, 0, 0xCDB1, 0xC0A6, 0, /* 0x40 */
- 0, 0xD7BD, 0, 0xDEDB, 0xB0C6, 0xBAB4, 0xC9D3, 0xC4F3, /* 0x40 */
- 0xBEE8, 0, 0, 0, 0, 0xB2B6, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xC0CC, 0xCBF0, /* 0x50 */
- 0, 0xBCF1, 0xBBBB, 0xB5B7, 0, 0, 0, 0xC5F5, /* 0x60 */
- 0, 0xDEE6, 0, 0, 0, 0xDEE3, 0xBEDD, 0, /* 0x60 */
- 0, 0xDEDF, 0, 0, 0, 0, 0xB4B7, 0xBDDD, /* 0x70 */
- 0, 0, 0xDEE0, 0xC4ED, 0, 0, 0, 0, /* 0x70 */
- 0xCFC6, 0, 0xB5E0, 0, 0, 0, 0, 0xB6DE, /* 0x80 */
- 0xCADA, 0xB5F4, 0xDEE5, 0, 0xD5C6, 0, 0xDEE1, 0xCCCD, /* 0x80 */
- 0xC6FE, 0, 0xC5C5, 0, 0, 0, 0xD2B4, 0, /* 0x90 */
- 0xBEF2, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xC2D3, 0, 0xCCBD, 0xB3B8, 0, 0xBDD3, 0, 0xBFD8, /* 0xA0 */
- 0xCDC6, 0xD1DA, 0xB4EB, 0, 0xDEE4, 0xDEDD, 0xDEE7, 0, /* 0xA0 */
- 0xEAFE, 0, 0, 0xC2B0, 0xDEE2, 0, 0, 0xD6C0, /* 0xB0 */
- 0xB5A7, 0, 0xB2F4, 0, 0xDEE8, 0, 0xDEF2, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xDEED, 0, 0xDEF1, 0, /* 0xC0 */
- 0, 0xC8E0, 0, 0, 0, 0xD7E1, 0xDEEF, 0xC3E8, /* 0xC0 */
- 0xCCE1, 0, 0xB2E5, 0, 0, 0, 0xD2BE, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xDEEE, 0, /* 0xD0 */
- 0xDEEB, 0xCED5, 0, 0xB4A7, 0, 0, 0, 0, /* 0xE0 */
- 0, 0xBFAB, 0xBEBE, 0, 0, 0xBDD2, 0, 0, /* 0xE0 */
- 0, 0, 0xDEE9, 0, 0xD4AE, 0, 0xDEDE, 0, /* 0xF0 */
- 0xDEEA, 0, 0, 0, 0, 0xC0BF, 0, 0xDEEC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_64[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB2F3, 0xB8E9, 0xC2A7, 0, 0, 0xBDC1, 0, 0, /* 0x00 */
- 0, 0, 0, 0xDEF5, 0xDEF8, 0, 0, 0xB2AB, /* 0x00 */
- 0xB4A4, 0, 0, 0xB4EA, 0xC9A6, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xDEF6, 0xCBD1, 0, 0xB8E3, 0, /* 0x10 */
- 0xDEF7, 0xDEFA, 0, 0, 0, 0, 0xDEF9, 0, /* 0x20 */
- 0, 0, 0xCCC2, 0, 0xB0E1, 0xB4EE, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xE5BA, 0, 0, 0, /* 0x30 */
- 0, 0, 0xD0AF, 0, 0, 0xB2EB, 0, 0xEBA1, /* 0x30 */
- 0, 0xDEF4, 0, 0, 0xC9E3, 0xDEF3, 0xB0DA, 0xD2A1, /* 0x40 */
- 0xB1F7, 0, 0xCCAF, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xDEF0, 0, 0xCBA4, 0, 0, 0, /* 0x50 */
- 0xD5AA, 0, 0, 0, 0, 0, 0xDEFB, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xB4DD, /* 0x60 */
- 0, 0xC4A6, 0, 0, 0, 0xDEFD, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xC3FE, 0xC4A1, 0xDFA1, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xC1CC, 0, 0xDEFC, 0xBEEF, 0, 0xC6B2, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xB3C5, 0xC8F6, 0, 0, 0xCBBA, 0xDEFE, 0, /* 0x90 */
- 0, 0xDFA4, 0, 0, 0, 0, 0xD7B2, 0, /* 0x90 */
- 0, 0, 0, 0, 0xB3B7, 0, 0, 0, /* 0xA0 */
- 0, 0xC1C3, 0, 0, 0xC7CB, 0xB2A5, 0xB4E9, 0, /* 0xA0 */
- 0xD7AB, 0, 0, 0, 0, 0xC4EC, 0, 0xDFA2, /* 0xB0 */
- 0xDFA3, 0, 0xDFA5, 0, 0xBAB3, 0, 0, 0, /* 0xB0 */
- 0xDFA6, 0, 0xC0DE, 0, 0, 0xC9C3, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xB2D9, 0xC7E6, 0, /* 0xC0 */
- 0xDFA7, 0, 0xC7DC, 0, 0, 0, 0, 0xDFA8, /* 0xD0 */
- 0xEBA2, 0, 0, 0, 0, 0, 0xCBD3, 0, /* 0xD0 */
- 0, 0, 0xDFAA, 0, 0xDFA9, 0, 0xB2C1 /* 0xE0 */
- /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_65[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC5CA, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0xDFAB, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xD4DC, 0, 0, 0, 0, 0, /* 0x10 */
- 0xC8C1, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xDFAC, 0, 0, /* 0x20 */
- 0, 0, 0, 0xBEF0, 0, 0, 0xDFAD, 0xD6A7, /* 0x20 */
- 0, 0, 0, 0, 0xEAB7, 0xEBB6, 0xCAD5, 0, /* 0x30 */
- 0xD8FC, 0xB8C4, 0, 0xB9A5, 0, 0, 0xB7C5, 0xD5FE, /* 0x30 */
- 0, 0, 0, 0, 0, 0xB9CA, 0, 0, /* 0x40 */
- 0xD0A7, 0xF4CD, 0, 0, 0xB5D0, 0, 0, 0xC3F4, /* 0x40 */
- 0, 0xBEC8, 0, 0, 0, 0xEBB7, 0xB0BD, 0, /* 0x50 */
- 0, 0xBDCC, 0, 0xC1B2, 0, 0xB1D6, 0xB3A8, 0, /* 0x50 */
- 0, 0, 0xB8D2, 0xC9A2, 0, 0, 0xB6D8, 0, /* 0x60 */
- 0, 0, 0, 0xEBB8, 0xBEB4, 0, 0, 0, /* 0x60 */
- 0xCAFD, 0, 0xC7C3, 0, 0xD5FB, 0, 0, 0xB7F3, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xCEC4, /* 0x80 */
- 0, 0, 0, 0xD5AB, 0xB1F3, 0, 0, 0, /* 0x80 */
- 0xECB3, 0xB0DF, 0, 0xECB5, 0, 0, 0, 0xB6B7, /* 0x90 */
- 0, 0xC1CF, 0, 0xF5FA, 0xD0B1, 0, 0, 0xD5E5, /* 0x90 */
- 0, 0xCED3, 0, 0, 0xBDEF, 0xB3E2, 0, 0xB8AB, /* 0xA0 */
- 0, 0xD5B6, 0, 0xEDBD, 0, 0xB6CF, 0, 0xCBB9, /* 0xA0 */
- 0xD0C2, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xB7BD, 0, 0, 0xECB6, 0xCAA9, 0, 0, /* 0xB0 */
- 0, 0xC5D4, 0, 0xECB9, 0xECB8, 0xC2C3, 0xECB7, 0, /* 0xC0 */
- 0, 0, 0, 0xD0FD, 0xECBA, 0, 0xECBB, 0xD7E5, /* 0xC0 */
- 0, 0, 0xECBC, 0, 0, 0, 0xECBD, 0xC6EC, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xCEDE, 0, 0xBCC8, 0, 0, 0xC8D5, 0xB5A9, 0xBEC9, /* 0xE0 */
- 0xD6BC, 0xD4E7, 0, 0, 0xD1AE, 0xD0F1, 0xEAB8, 0xEAB9, /* 0xE0 */
- 0xEABA, 0xBAB5, 0, 0, 0, 0, 0xCAB1, 0xBFF5, /* 0xF0 */
- 0, 0, 0xCDFA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_66[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEAC0, 0, 0xB0BA, 0xEABE, 0, 0, 0xC0A5, 0, /* 0x00 */
- 0, 0, 0xEABB, 0, 0xB2FD, 0, 0xC3F7, 0xBBE8, /* 0x00 */
- 0, 0, 0, 0xD2D7, 0xCEF4, 0xEABF, 0, 0, /* 0x10 */
- 0, 0xEABC, 0, 0, 0, 0xEAC3, 0, 0xD0C7, /* 0x10 */
- 0xD3B3, 0, 0, 0, 0, 0xB4BA, 0, 0xC3C1, /* 0x20 */
- 0xD7F2, 0, 0, 0, 0, 0xD5D1, 0, 0xCAC7, /* 0x20 */
- 0, 0xEAC5, 0, 0, 0xEAC4, 0xEAC7, 0xEAC6, 0, /* 0x30 */
- 0, 0, 0, 0, 0xD6E7, 0, 0xCFD4, 0, /* 0x30 */
- 0, 0xEACB, 0, 0xBBCE, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xBDFA, 0xC9CE, 0, 0, 0xEACC, /* 0x40 */
- 0, 0, 0xC9B9, 0xCFFE, 0xEACA, 0xD4CE, 0xEACD, 0xEACF, /* 0x50 */
- 0, 0, 0xCDED, 0, 0, 0, 0, 0xEAC9, /* 0x50 */
- 0, 0xEACE, 0, 0, 0xCEEE, 0, 0xBBDE, 0, /* 0x60 */
- 0xB3BF, 0, 0, 0, 0, 0, 0xC6D5, 0xBEB0, /* 0x60 */
- 0xCEFA, 0, 0, 0, 0xC7E7, 0, 0xBEA7, 0xEAD0, /* 0x70 */
- 0, 0, 0xD6C7, 0, 0, 0, 0xC1C0, 0, /* 0x70 */
- 0, 0, 0xD4DD, 0, 0xEAD1, 0, 0, 0xCFBE, /* 0x80 */
- 0, 0, 0, 0, 0xEAD2, 0, 0, 0, /* 0x80 */
- 0, 0xCAEE, 0, 0, 0, 0, 0xC5AF, 0xB0B5, /* 0x90 */
- 0, 0, 0, 0, 0, 0xEAD4, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xEAD3, /* 0xA0 */
- 0xF4DF, 0, 0, 0, 0, 0, 0xC4BA, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xB1A9, 0, 0, 0, /* 0xB0 */
- 0, 0xE5DF, 0, 0, 0, 0, 0xEAD5, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xCAEF, 0, 0xEAD6, 0xEAD7, 0xC6D8, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xEAD8, 0, /* 0xE0 */
- 0, 0xEAD9, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xD4BB, 0, 0xC7FA, 0xD2B7, 0xB8FC, 0, 0, 0xEAC2, /* 0xF0 */
- 0, 0xB2DC, 0, 0, 0xC2FC, 0, 0xD4F8, 0xCCE6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_67[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD7EE, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0xD4C2, 0xD3D0, 0xEBC3, 0xC5F3, 0, 0xB7FE, 0, 0, /* 0x00 */
- 0xEBD4, 0, 0, 0, 0xCBB7, 0xEBDE, 0, 0xC0CA, /* 0x10 */
- 0, 0, 0, 0xCDFB, 0, 0xB3AF, 0, 0xC6DA, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xEBFC, 0, /* 0x20 */
- 0xC4BE, 0, 0xCEB4, 0xC4A9, 0xB1BE, 0xD4FD, 0, 0xCAF5, /* 0x20 */
- 0, 0xD6EC, 0, 0, 0xC6D3, 0xB6E4, 0, 0, /* 0x30 */
- 0, 0, 0xBBFA, 0, 0, 0xD0E0, 0, 0, /* 0x30 */
- 0xC9B1, 0, 0xD4D3, 0xC8A8, 0, 0, 0xB8CB, 0, /* 0x40 */
- 0xE8BE, 0xC9BC, 0, 0, 0xE8BB, 0, 0xC0EE, 0xD0D3, /* 0x40 */
- 0xB2C4, 0xB4E5, 0, 0xE8BC, 0, 0, 0xD5C8, 0, /* 0x50 */
- 0, 0, 0, 0, 0xB6C5, 0, 0xE8BD, 0xCAF8, /* 0x50 */
- 0xB8DC, 0xCCF5, 0, 0, 0, 0xC0B4, 0, 0, /* 0x60 */
- 0xD1EE, 0xE8BF, 0xE8C2, 0, 0, 0xBABC, 0, 0xB1AD, /* 0x60 */
- 0xBDDC, 0, 0xEABD, 0xE8C3, 0, 0xE8C6, 0, 0xE8CB, /* 0x70 */
- 0, 0, 0, 0, 0xE8CC, 0, 0xCBC9, 0xB0E5, /* 0x70 */
- 0, 0xBCAB, 0, 0, 0xB9B9, 0, 0, 0xE8C1, /* 0x80 */
- 0, 0xCDF7, 0, 0xE8CA, 0, 0, 0, 0, /* 0x80 */
- 0xCEF6, 0, 0, 0, 0, 0xD5ED, 0, 0xC1D6, /* 0x90 */
- 0xE8C4, 0, 0xC3B6, 0, 0xB9FB, 0xD6A6, 0xE8C8, 0, /* 0x90 */
- 0, 0, 0xCAE0, 0xD4E6, 0, 0xE8C0, 0, 0xE8C5, /* 0xA0 */
- 0xE8C7, 0, 0xC7B9, 0xB7E3, 0, 0xE8C9, 0, 0xBFDD, /* 0xA0 */
- 0xE8D2, 0, 0, 0xE8D7, 0, 0xE8D5, 0xBCDC, 0xBCCF, /* 0xB0 */
- 0xE8DB, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xE8DE, 0, 0xE8DA, 0xB1FA, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xB0D8, /* 0xC0 */
- 0xC4B3, 0xB8CC, 0xC6E2, 0xC8BE, 0xC8E1, 0, 0, 0, /* 0xD0 */
- 0xE8CF, 0xE8D4, 0xE8D6, 0, 0xB9F1, 0xE8D8, 0xD7F5, 0, /* 0xD0 */
- 0xC4FB, 0, 0xE8DC, 0, 0, 0xB2E9, 0, 0, /* 0xE0 */
- 0, 0xE8D1, 0, 0, 0xBCED, 0, 0, 0xBFC2, /* 0xE0 */
- 0xE8CD, 0xD6F9, 0, 0xC1F8, 0xB2F1, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0xE8DF, 0, 0xCAC1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_68[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE8D9, 0, 0, 0, 0, 0xD5A4, 0, 0xB1EA, /* 0x00 */
- 0xD5BB, 0xE8CE, 0xE8D0, 0xB6B0, 0xE8D3, 0, 0xE8DD, 0xC0B8, /* 0x00 */
- 0, 0xCAF7, 0, 0xCBA8, 0, 0, 0xC6DC, 0xC0F5, /* 0x10 */
- 0, 0, 0, 0, 0, 0xE8E9, 0, 0, /* 0x10 */
- 0, 0xD0A3, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xE8F2, 0xD6EA, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xE8E0, 0xE8E1, 0, 0, 0, 0xD1F9, /* 0x30 */
- 0xBACB, 0xB8F9, 0, 0, 0xB8F1, 0xD4D4, 0xE8EF, 0, /* 0x30 */
- 0xE8EE, 0xE8EC, 0xB9F0, 0xCCD2, 0xE8E6, 0xCEA6, 0xBFF2, 0, /* 0x40 */
- 0xB0B8, 0xE8F1, 0xE8F0, 0, 0xD7C0, 0, 0xE8E4, 0, /* 0x40 */
- 0xCDA9, 0xC9A3, 0, 0xBBB8, 0xBDDB, 0xE8EA, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xE8E2, 0xE8E3, 0xE8E5, 0xB5B5, 0xE8E7, 0xC7C5, 0xE8EB, 0xE8ED, /* 0x60 */
- 0xBDB0, 0xD7AE, 0, 0xE8F8, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xE8F5, 0, 0xCDB0, 0xE8F6, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xC1BA, 0, 0xE8E8, 0, 0xC3B7, 0xB0F0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0xE8F4, /* 0x80 */
- 0, 0, 0, 0xE8F7, 0, 0, 0, 0xB9A3, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xC9D2, 0, 0, 0, 0xC3CE, 0xCEE0, /* 0xA0 */
- 0xC0E6, 0, 0, 0, 0, 0xCBF3, 0, 0xCCDD, /* 0xA0 */
- 0xD0B5, 0, 0, 0xCAE1, 0, 0xE8F3, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xBCEC, 0, 0xE8F9, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xC3DE, 0, 0xC6E5, 0, 0xB9F7, 0, 0, /* 0xC0 */
- 0, 0, 0xB0F4, 0, 0, 0xD7D8, 0, 0, /* 0xD0 */
- 0xBCAC, 0, 0xC5EF, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xCCC4, 0, 0, 0xE9A6, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xC9AD, 0, /* 0xE0 */
- 0xE9A2, 0xC0E2, 0, 0, 0, 0xBFC3, 0, 0, /* 0xF0 */
- 0, 0xE8FE, 0xB9D7, 0, 0xE8FB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_69[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE9A4, 0, 0, 0, 0xD2CE, 0, 0, /* 0x00 */
- 0, 0, 0, 0xE9A3, 0, 0xD6B2, 0xD7B5, 0, /* 0x00 */
- 0xE9A7, 0, 0xBDB7, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xE8FC, /* 0x10 */
- 0xE8FD, 0, 0, 0, 0xE9A1, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xCDD6, 0, 0, /* 0x20 */
- 0xD2AC, 0, 0, 0, 0xE9B2, 0, 0, 0, /* 0x30 */
- 0, 0xE9A9, 0, 0, 0, 0xB4AA, 0, 0xB4BB, /* 0x30 */
- 0, 0, 0xE9AB, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xD0A8, 0, 0, 0xE9A5, /* 0x50 */
- 0, 0, 0xB3FE, 0, 0, 0xE9AC, 0xC0E3, 0, /* 0x50 */
- 0xE9AA, 0, 0, 0xE9B9, 0, 0, 0xE9B8, 0, /* 0x60 */
- 0, 0, 0, 0xE9AE, 0, 0, 0xE8FA, 0, /* 0x60 */
- 0, 0xE9A8, 0, 0, 0, 0, 0, 0xBFAC, /* 0x70 */
- 0xE9B1, 0xE9BA, 0, 0, 0xC2A5, 0, 0, 0, /* 0x70 */
- 0xE9AF, 0, 0xB8C5, 0, 0xE9AD, 0, 0xD3DC, 0xE9B4, /* 0x80 */
- 0xE9B5, 0xE9B7, 0, 0, 0, 0xE9C7, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0xC0C6, 0xE9C5, 0, 0, /* 0x90 */
- 0xE9B0, 0, 0, 0xE9BB, 0xB0F1, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xE9BC, /* 0xA0 */
- 0xD5A5, 0, 0, 0xE9BE, 0, 0xE9BF, 0, 0, /* 0xA0 */
- 0, 0xE9C1, 0, 0, 0xC1F1, 0, 0, 0xC8B6, /* 0xB0 */
- 0, 0, 0, 0xE9BD, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xE9C2, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xE9C3, 0, 0xE9B3, 0, 0xE9B6, 0, /* 0xC0 */
- 0xBBB1, 0, 0, 0, 0xE9C0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xBCF7, 0, 0, 0, 0xE9C4, /* 0xD0 */
- 0xE9C6, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xE9CA, 0, 0, /* 0xE0 */
- 0, 0, 0xE9CE, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0xB2DB, 0, 0xE9C8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_6A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xB7AE, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0xE9CB, /* 0x10 */
- 0xE9CC, 0, 0, 0, 0, 0, 0, 0xD5C1, /* 0x10 */
- 0, 0xC4A3, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xE9D8, 0, 0xBAE1, 0, 0, 0, 0, 0xE9C9, /* 0x20 */
- 0, 0xD3A3, 0, 0, 0, 0xE9D4, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xE9D7, 0xE9D0, 0, /* 0x30 */
- 0, 0, 0, 0, 0xE9CF, 0, 0, 0xC7C1, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xE9D2, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xE9D9, 0xB3C8, 0, 0xE9D3, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCFF0, 0, 0, 0, 0xE9CD, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xB3F7, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xE9D6, 0, 0, 0xE9DA, 0, 0, 0, /* 0x70 */
- 0xCCB4, 0, 0, 0, 0xCFAD, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xE9D5, 0, /* 0x80 */
- 0xE9DC, 0xE9DB, 0, 0, 0, 0, 0, 0xE9DE, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xE9D1, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xE9DD, 0, 0xE9DF, 0xC3CA /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_6B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC7B7, 0xB4CE, 0xBBB6, 0xD0C0, 0xECA3, 0, 0, 0xC5B7, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xD3FB, 0, 0, 0, 0, 0xECA4, /* 0x30 */
- 0, 0xECA5, 0xC6DB, 0, 0, 0, 0xBFEE, 0, /* 0x30 */
- 0, 0, 0, 0xECA6, 0, 0, 0xECA7, 0xD0AA, /* 0x40 */
- 0, 0xC7B8, 0, 0, 0xB8E8, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xECA8, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0xD6B9, 0xD5FD, 0xB4CB, 0xB2BD, 0xCEE4, 0xC6E7, /* 0x60 */
- 0, 0, 0xCDE1, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xB4F5, 0, 0xCBC0, 0xBCDF, 0, 0, 0, /* 0x70 */
- 0, 0xE9E2, 0xE9E3, 0xD1EA, 0xE9E5, 0, 0xB4F9, 0xE9E4, /* 0x80 */
- 0, 0xD1B3, 0xCAE2, 0xB2D0, 0, 0xE9E8, 0, 0, /* 0x80 */
- 0, 0, 0xE9E6, 0xE9E7, 0, 0, 0xD6B3, 0, /* 0x90 */
- 0, 0, 0xE9E9, 0xE9EA, 0, 0, 0, 0, /* 0x90 */
- 0, 0xE9EB, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xE9EC, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xECAF, 0xC5B9, 0xB6CE, 0, 0xD2F3, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xB5EE, /* 0xB0 */
- 0, 0xBBD9, 0xECB1, 0, 0, 0xD2E3, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xCEE3, 0, 0xC4B8, 0, 0xC3BF, /* 0xC0 */
- 0, 0, 0xB6BE, 0xD8B9, 0xB1C8, 0xB1CF, 0xB1D1, 0xC5FE, /* 0xD0 */
- 0, 0xB1D0, 0, 0xC3AB, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xD5B1, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0xEBA4, 0xBAC1, 0, 0, 0, 0xCCBA, /* 0xE0 */
- 0, 0, 0, 0xEBA5, 0, 0xEBA7, 0, 0, /* 0xF0 */
- 0, 0xEBA8, 0, 0, 0, 0xEBA6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_6C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEBA9, 0xEBAB, 0xEBAA, /* 0x00 */
- 0, 0, 0, 0, 0, 0xEBAC, 0, 0xCACF, /* 0x00 */
- 0xD8B5, 0xC3F1, 0, 0xC3A5, 0xC6F8, 0xEBAD, 0xC4CA, 0, /* 0x10 */
- 0xEBAE, 0xEBAF, 0xEBB0, 0xB7D5, 0, 0, 0, 0xB7FA, /* 0x10 */
- 0, 0xEBB1, 0xC7E2, 0, 0xEBB3, 0, 0xBAA4, 0xD1F5, /* 0x20 */
- 0xB0B1, 0xEBB2, 0xEBB4, 0, 0, 0, 0xB5AA, 0xC2C8, /* 0x20 */
- 0xC7E8, 0, 0xEBB5, 0, 0xCBAE, 0xE3DF, 0, 0, /* 0x30 */
- 0xD3C0, 0, 0, 0, 0, 0xD9DB, 0, 0, /* 0x30 */
- 0xCDA1, 0xD6AD, 0xC7F3, 0, 0, 0, 0xD9E0, 0xBBE3, /* 0x40 */
- 0, 0xBABA, 0xE3E2, 0, 0, 0, 0, 0, /* 0x40 */
- 0xCFAB, 0, 0, 0, 0xE3E0, 0xC9C7, 0, 0xBAB9, /* 0x50 */
- 0, 0, 0, 0xD1B4, 0xE3E1, 0xC8EA, 0xB9AF, 0xBDAD, /* 0x50 */
- 0xB3D8, 0xCEDB, 0, 0, 0xCCC0, 0, 0, 0, /* 0x60 */
- 0xE3E8, 0xE3E9, 0xCDF4, 0, 0, 0, 0, 0, /* 0x60 */
- 0xCCAD, 0, 0xBCB3, 0, 0xE3EA, 0, 0xE3EB, 0, /* 0x70 */
- 0, 0xD0DA, 0, 0, 0, 0xC6FB, 0xB7DA, 0, /* 0x70 */
- 0, 0xC7DF, 0xD2CA, 0xCED6, 0, 0xE3E4, 0xE3EC, 0, /* 0x80 */
- 0xC9F2, 0xB3C1, 0, 0, 0xE3E7, 0, 0, 0xC6E3, /* 0x80 */
- 0xE3E5, 0, 0, 0xEDB3, 0xE3E6, 0, 0, 0, /* 0x90 */
- 0, 0xC9B3, 0, 0xC5E6, 0, 0, 0, 0xB9B5, /* 0x90 */
- 0, 0xC3BB, 0, 0xE3E3, 0xC5BD, 0xC1A4, 0xC2D9, 0xB2D7, /* 0xA0 */
- 0, 0xE3ED, 0xBBA6, 0xC4AD, 0, 0xE3F0, 0xBEDA, 0, /* 0xA0 */
- 0, 0xE3FB, 0xE3F5, 0xBAD3, 0, 0, 0, 0, /* 0xB0 */
- 0xB7D0, 0xD3CD, 0, 0xD6CE, 0xD5D3, 0xB9C1, 0xD5B4, 0xD1D8, /* 0xB0 */
- 0, 0, 0, 0, 0xD0B9, 0xC7F6, 0, 0, /* 0xC0 */
- 0, 0xC8AA, 0xB2B4, 0, 0xC3DA, 0, 0, 0, /* 0xC0 */
- 0xE3EE, 0, 0, 0xE3FC, 0xE3EF, 0xB7A8, 0xE3F7, 0xE3F4, /* 0xD0 */
- 0, 0, 0, 0xB7BA, 0, 0, 0xC5A2, 0, /* 0xD0 */
- 0xE3F6, 0xC5DD, 0xB2A8, 0xC6FC, 0, 0xC4E0, 0, 0, /* 0xE0 */
- 0xD7A2, 0, 0xC0E1, 0xE3F9, 0, 0, 0xE3FA, 0xE3FD, /* 0xE0 */
- 0xCCA9, 0xE3F3, 0, 0xD3BE, 0, 0xB1C3, 0xEDB4, 0xE3F1, /* 0xF0 */
- 0xE3F2, 0, 0xE3F8, 0xD0BA, 0xC6C3, 0xD4F3, 0xE3FE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_6D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBDE0, 0, 0, 0xE4A7, 0, 0, 0xE4A6, /* 0x00 */
- 0, 0, 0, 0xD1F3, 0xE4A3, 0, 0xE4A9, 0, /* 0x00 */
- 0, 0, 0xC8F7, 0, 0, 0, 0, 0xCFB4, /* 0x10 */
- 0, 0xE4A8, 0xE4AE, 0xC2E5, 0, 0, 0xB6B4, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xBDF2, 0, 0xE4A2, /* 0x20 */
- 0, 0, 0xBAE9, 0xE4AA, 0, 0, 0xE4AC, 0, /* 0x20 */
- 0, 0xB6FD, 0xD6DE, 0xE4B2, 0, 0xE4AD, 0, 0, /* 0x30 */
- 0, 0xE4A1, 0, 0xBBEE, 0xCDDD, 0xC7A2, 0xC5C9, 0, /* 0x30 */
- 0, 0xC1F7, 0, 0xE4A4, 0, 0xC7B3, 0xBDAC, 0xBDBD, /* 0x40 */
- 0xE4A5, 0, 0xD7C7, 0xB2E2, 0, 0xE4AB, 0xBCC3, 0xE4AF, /* 0x40 */
- 0, 0xBBEB, 0xE4B0, 0xC5A8, 0xE4B1, 0, 0, 0, /* 0x50 */
- 0, 0xD5E3, 0xBFA3, 0, 0xE4BA, 0, 0xE4B7, 0, /* 0x50 */
- 0xE4BB, 0, 0, 0xE4BD, 0, 0, 0xC6D6, 0, /* 0x60 */
- 0, 0xBAC6, 0xC0CB, 0, 0, 0, 0xB8A1, 0xE4B4, /* 0x60 */
- 0, 0, 0, 0, 0xD4A1, 0, 0, 0xBAA3, /* 0x70 */
- 0xBDFE, 0, 0, 0, 0xE4BC, 0, 0, 0, /* 0x70 */
- 0, 0, 0xCDBF, 0, 0, 0xC4F9, 0, 0, /* 0x80 */
- 0xCFFB, 0xC9E6, 0, 0, 0xD3BF, 0, 0xCFD1, 0, /* 0x80 */
- 0, 0xE4B3, 0, 0xE4B8, 0xE4B9, 0xCCE9, 0, 0, /* 0x90 */
- 0, 0, 0, 0xCCCE, 0, 0xC0D4, 0xE4B5, 0xC1B0, /* 0x90 */
- 0xE4B6, 0xCED0, 0, 0xBBC1, 0xB5D3, 0, 0xC8F3, 0xBDA7, /* 0xA0 */
- 0xD5C7, 0xC9AC, 0xB8A2, 0xE4CA, 0, 0, 0xE4CC, 0xD1C4, /* 0xA0 */
- 0, 0, 0xD2BA, 0, 0, 0xBAAD, 0, 0, /* 0xB0 */
- 0xBAD4, 0, 0, 0, 0, 0, 0, 0xE4C3, /* 0xB0 */
- 0xB5ED, 0, 0, 0, 0xD7CD, 0xE4C0, 0xCFFD, 0xE4BF, /* 0xC0 */
- 0, 0, 0, 0xC1DC, 0xCCCA, 0, 0, 0, /* 0xC0 */
- 0, 0xCAE7, 0, 0, 0, 0, 0xC4D7, 0, /* 0xD0 */
- 0xCCD4, 0xE4C8, 0, 0, 0, 0xE4C7, 0xE4C1, 0, /* 0xD0 */
- 0xE4C4, 0xB5AD, 0, 0, 0xD3D9, 0, 0xE4C6, 0, /* 0xE0 */
- 0, 0, 0, 0xD2F9, 0xB4E3, 0, 0xBBB4, 0, /* 0xE0 */
- 0, 0xC9EE, 0, 0xB4BE, 0, 0, 0, 0xBBEC, /* 0xF0 */
- 0, 0xD1CD, 0, 0xCCED, 0xEDB5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_6E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC7E5, 0, 0, /* 0x00 */
- 0, 0, 0xD4A8, 0, 0xE4CB, 0xD7D5, 0xE4C2, 0, /* 0x00 */
- 0xBDA5, 0xE4C5, 0, 0, 0xD3E6, 0, 0xE4C9, 0xC9F8, /* 0x10 */
- 0, 0, 0xE4BE, 0, 0, 0xD3E5, 0, 0, /* 0x10 */
- 0xC7FE, 0xB6C9, 0, 0xD4FC, 0xB2B3, 0xE4D7, 0, 0, /* 0x20 */
- 0, 0xCEC2, 0, 0xE4CD, 0, 0xCEBC, 0, 0xB8DB, /* 0x20 */
- 0, 0, 0xE4D6, 0, 0xBFCA, 0, 0, 0, /* 0x30 */
- 0xD3CE, 0, 0xC3EC, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xC5C8, 0xE4D8, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xCDC4, 0xE4CF, 0, /* 0x40 */
- 0, 0, 0, 0xE4D4, 0xE4D5, 0, 0xBAFE, 0, /* 0x50 */
- 0xCFE6, 0, 0, 0xD5BF, 0, 0, 0, 0xE4D2, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xE4D0, 0, 0, 0xE4CE, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xCDE5, 0xCAAA, /* 0x70 */
- 0, 0, 0, 0xC0A3, 0, 0xBDA6, 0xE4D3, 0, /* 0x80 */
- 0, 0xB8C8, 0, 0, 0, 0, 0, 0xE4E7, /* 0x80 */
- 0xD4B4, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xE4DB, 0, 0, 0, 0xC1EF, 0, 0, 0xE4E9, /* 0x90 */
- 0, 0, 0xD2E7, 0, 0, 0xE4DF, 0, 0xE4E0, /* 0xA0 */
- 0, 0, 0xCFAA, 0, 0, 0, 0, 0xCBDD, /* 0xA0 */
- 0, 0xE4DA, 0xE4D1, 0, 0xE4E5, 0, 0xC8DC, 0xE4E3, /* 0xB0 */
- 0, 0, 0xC4E7, 0xE4E2, 0, 0xE4E1, 0, 0, /* 0xB0 */
- 0, 0xB3FC, 0xE4E8, 0, 0, 0, 0, 0xB5E1, /* 0xC0 */
- 0, 0, 0, 0xD7CC, 0, 0, 0, 0xE4E6, /* 0xC0 */
- 0, 0xBBAC, 0, 0xD7D2, 0xCCCF, 0xEBF8, 0, 0xE4E4, /* 0xD0 */
- 0, 0, 0xB9F6, 0, 0, 0, 0xD6CD, 0xE4D9, /* 0xD0 */
- 0xE4DC, 0xC2FA, 0xE4DE, 0, 0xC2CB, 0xC0C4, 0xC2D0, 0, /* 0xE0 */
- 0xB1F5, 0xCCB2, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xB5CE, 0, 0, 0, /* 0xF0 */
- 0, 0xE4EF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_6F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC6AF, 0, 0, 0, 0xC6E1, 0, /* 0x00 */
- 0, 0xE4F5, 0, 0, 0, 0, 0, 0xC2A9, /* 0x00 */
- 0, 0, 0, 0xC0EC, 0xD1DD, 0xE4EE, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xC4AE, 0, 0, 0, 0xE4ED, 0, 0, 0, /* 0x20 */
- 0, 0xE4F6, 0xE4F4, 0xC2FE, 0, 0xE4DD, 0, 0xE4F0, /* 0x20 */
- 0, 0xCAFE, 0, 0xD5C4, 0, 0, 0xE4F1, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xD1FA, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xE4EB, 0xE4EC, /* 0x40 */
- 0, 0, 0, 0xE4F2, 0, 0xCEAB, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xC5CB, 0, 0, 0, 0xC7B1, 0, 0xC2BA, 0, /* 0x50 */
- 0, 0, 0xE4EA, 0, 0, 0, 0xC1CA, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xCCB6, 0xB3B1, 0, /* 0x60 */
- 0, 0, 0xE4FB, 0, 0xE4F3, 0, 0, 0, /* 0x70 */
- 0xE4FA, 0, 0xE4FD, 0, 0xE4FC, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xB3CE, 0, 0, 0, /* 0x80 */
- 0xB3BA, 0xE4F7, 0, 0, 0xE4F9, 0xE4F8, 0xC5EC, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xC0BD, 0, 0, 0, /* 0x90 */
- 0, 0xD4E8, 0, 0, 0, 0, 0, 0xE5A2, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xB0C4, 0, 0, 0xE5A4, 0, /* 0xB0 */
- 0, 0xE5A3, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xBCA4, 0, 0xE5A5, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xE5A1, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xE4FE, 0xB1F4, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xE5A8, 0, /* 0xD0 */
- 0xE5A9, 0xE5A6, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xE5A7, 0xE5AA /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_70[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC6D9, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0xE5AB, 0xE5AD, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xE5AC, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xE5AF, 0, 0, /* 0x30 */
- 0, 0xE5AE, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xB9E0, 0, 0, 0xE5B0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xE5B1, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xBBF0, 0xECE1, 0xC3F0, 0, 0xB5C6, /* 0x60 */
- 0xBBD2, 0, 0, 0, 0, 0xC1E9, 0xD4EE, 0, /* 0x70 */
- 0xBEC4, 0, 0, 0, 0xD7C6, 0, 0xD4D6, 0xB2D3, /* 0x70 */
- 0xECBE, 0, 0, 0, 0, 0xEAC1, 0, 0, /* 0x80 */
- 0, 0xC2AF, 0xB4B6, 0, 0, 0, 0xD1D7, 0, /* 0x80 */
- 0, 0, 0xB3B4, 0, 0xC8B2, 0xBFBB, 0xECC0, 0, /* 0x90 */
- 0, 0xD6CB, 0, 0, 0xECBF, 0xECC1, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xECC5, 0xBEE6, 0xCCBF, 0xC5DA, 0xBEBC, /* 0xA0 */
- 0, 0xECC6, 0, 0xB1FE, 0, 0, 0, 0xECC4, /* 0xB0 */
- 0xD5A8, 0xB5E3, 0, 0xECC2, 0xC1B6, 0xB3E3, 0, 0, /* 0xB0 */
- 0xECC3, 0xCBB8, 0xC0C3, 0xCCFE, 0, 0, 0, 0, /* 0xC0 */
- 0xC1D2, 0, 0xECC8, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xBAE6, 0xC0D3, 0, 0xD6F2, 0, 0, 0, 0xD1CC, /* 0xD0 */
- 0, 0, 0, 0, 0xBFBE, 0, 0xB7B3, 0xC9D5, /* 0xE0 */
- 0xECC7, 0xBBE2, 0, 0xCCCC, 0xBDFD, 0xC8C8, 0, 0xCFA9, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0xCDE9, /* 0xF0 */
- 0, 0xC5EB, 0, 0, 0, 0xB7E9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_71[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xD1C9, 0xBAB8, 0, 0, 0, 0, 0, /* 0x00 */
- 0xECC9, 0, 0, 0xECCA, 0, 0xBBC0, 0xECCB, 0, /* 0x10 */
- 0xECE2, 0xB1BA, 0xB7D9, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xBDB9, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0xECCC, /* 0x20 */
- 0xD1E6, 0xECCD, 0, 0, 0, 0, 0xC8BB, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xECD1, 0, 0, /* 0x40 */
- 0, 0, 0xECD3, 0, 0xBBCD, 0, 0xBCE5, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0xECCF, 0, 0xC9B7, 0, /* 0x50 */
- 0, 0, 0, 0, 0xC3BA, 0, 0xECE3, 0xD5D5, /* 0x60 */
- 0xECD0, 0, 0, 0, 0, 0, 0xD6F3, 0, /* 0x60 */
- 0, 0, 0xECD2, 0xECCE, 0, 0, 0, 0, /* 0x70 */
- 0xECD4, 0, 0xECD5, 0, 0, 0xC9BF, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xCFA8, 0, 0, 0, /* 0x80 */
- 0, 0, 0xD0DC, 0, 0, 0, 0, 0xD1AC, /* 0x80 */
- 0, 0, 0, 0, 0xC8DB, 0, 0, 0, /* 0x90 */
- 0xECD6, 0xCEF5, 0, 0, 0, 0, 0, 0xCAEC, /* 0x90 */
- 0xECDA, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xECD9, 0, 0, 0, 0xB0BE, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xECD7, 0, 0xECD8, 0, 0, /* 0xB0 */
- 0, 0xECE4, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xC8BC, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xC1C7, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xECDC, 0xD1E0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xECDB, 0, 0, 0, 0, 0xD4EF, 0, 0xECDD, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xDBC6, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xECDE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_72[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB1AC, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xECDF, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xECE0, 0, 0xD7A6, 0, 0xC5C0, 0, 0, 0, /* 0x20 */
- 0xEBBC, 0xB0AE, 0, 0, 0, 0xBEF4, 0xB8B8, 0xD2AF, /* 0x30 */
- 0xB0D6, 0xB5F9, 0, 0xD8B3, 0, 0xCBAC, 0, 0xE3DD, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0xC6AC, /* 0x40 */
- 0xB0E6, 0, 0, 0, 0xC5C6, 0xEBB9, 0, 0, /* 0x40 */
- 0, 0, 0xEBBA, 0, 0, 0, 0xEBBB, 0, /* 0x50 */
- 0, 0xD1C0, 0, 0xC5A3, 0, 0xEAF2, 0, 0xC4B2, /* 0x50 */
- 0, 0xC4B5, 0xC0CE, 0, 0, 0, 0xEAF3, 0xC4C1, /* 0x60 */
- 0, 0xCEEF, 0, 0, 0, 0, 0xEAF0, 0xEAF4, /* 0x60 */
- 0, 0, 0xC9FC, 0, 0, 0xC7A3, 0, 0, /* 0x70 */
- 0, 0xCCD8, 0xCEFE, 0, 0, 0, 0xEAF5, 0xEAF6, /* 0x70 */
- 0xCFAC, 0xC0E7, 0, 0, 0xEAF7, 0, 0, 0, /* 0x80 */
- 0, 0, 0xB6BF, 0xEAF8, 0, 0xEAF9, 0, 0xEAFA, /* 0x80 */
- 0, 0, 0xEAFB, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xEAF1, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xC8AE, 0xE1EB, 0, 0xB7B8, /* 0xA0 */
- 0xE1EC, 0, 0, 0, 0xE1ED, 0, 0xD7B4, 0xE1EE, /* 0xB0 */
- 0xE1EF, 0xD3CC, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xE1F1, 0xBFF1, 0xE1F0, 0xB5D2, 0, 0, 0, /* 0xC0 */
- 0xB1B7, 0, 0, 0, 0, 0xE1F3, 0xE1F2, 0, /* 0xC0 */
- 0xBAFC, 0, 0xE1F4, 0, 0, 0, 0, 0xB9B7, /* 0xD0 */
- 0, 0xBED1, 0, 0, 0, 0, 0xC4FC, 0, /* 0xD0 */
- 0xBADD, 0xBDC6, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xE1F5, 0xE1F7, 0, 0, 0xB6C0, 0xCFC1, 0xCAA8, 0xE1F6, /* 0xE0 */
- 0xD5F8, 0xD3FC, 0xE1F8, 0xE1FC, 0xE1F9, 0, 0, 0xE1FA, /* 0xF0 */
- 0xC0EA, 0, 0xE1FE, 0xE2A1, 0xC0C7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_73[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE1FB, 0, 0xE1FD, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xE2A5, 0, 0, 0, 0xC1D4, 0, /* 0x00 */
- 0, 0, 0, 0xE2A3, 0, 0xE2A8, 0xB2FE, 0xE2A2, /* 0x10 */
- 0, 0, 0, 0xC3CD, 0xB2C2, 0xE2A7, 0xE2A6, 0, /* 0x10 */
- 0, 0xE2A4, 0xE2A9, 0, 0, 0xE2AB, 0, 0, /* 0x20 */
- 0, 0xD0C9, 0xD6ED, 0xC3A8, 0xE2AC, 0, 0xCFD7, 0, /* 0x20 */
- 0, 0xE2AE, 0, 0, 0xBAEF, 0, 0, 0xE9E0, /* 0x30 */
- 0xE2AD, 0xE2AA, 0, 0, 0, 0, 0xBBAB, 0xD4B3, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xE2B0, 0, 0, /* 0x40 */
- 0xE2AF, 0, 0xE9E1, 0, 0, 0, 0, 0xE2B1, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xE2B2, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xE2B3, 0xCCA1, 0, 0xE2B4, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xE2B5, 0, /* 0x70 */
- 0, 0, 0, 0, 0xD0FE, 0, 0, 0xC2CA, /* 0x80 */
- 0, 0xD3F1, 0, 0xCDF5, 0, 0, 0xE7E0, 0, /* 0x80 */
- 0, 0xE7E1, 0, 0, 0, 0, 0xBEC1, 0, /* 0x90 */
- 0, 0, 0, 0xC2EA, 0, 0, 0, 0xE7E4, /* 0x90 */
- 0, 0, 0xE7E3, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xCDE6, 0, 0xC3B5, 0, 0, 0xE7E2, 0xBBB7, /* 0xA0 */
- 0xCFD6, 0, 0xC1E1, 0xE7E9, 0, 0, 0, 0xE7E8, /* 0xB0 */
- 0, 0, 0xE7F4, 0xB2A3, 0, 0, 0, 0, /* 0xB0 */
- 0xE7EA, 0, 0xE7E6, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xE7EC, 0xE7EB, 0xC9BA, 0, 0, 0xD5E4, 0, 0xE7E5, /* 0xC0 */
- 0xB7A9, 0xE7E7, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xE7EE, 0, 0, 0, 0, 0xE7F3, 0, /* 0xD0 */
- 0xD6E9, 0, 0, 0, 0, 0xE7ED, 0, 0xE7F2, /* 0xE0 */
- 0, 0xE7F1, 0, 0, 0, 0xB0E0, 0, 0, /* 0xE0 */
- 0, 0, 0xE7F5 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_74[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC7F2, 0, 0xC0C5, 0xC0ED, 0, /* 0x00 */
- 0, 0xC1F0, 0xE7F0, 0, 0, 0, 0, 0xE7F6, /* 0x00 */
- 0xCBF6, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0xE8A2, 0xE8A1, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0xD7C1, 0, 0, 0xE7FA, 0xE7F9, 0, /* 0x20 */
- 0xE7FB, 0, 0xE7F7, 0, 0xE7FE, 0, 0xE7FD, 0, /* 0x20 */
- 0xE7FC, 0, 0, 0xC1D5, 0xC7D9, 0xC5FD, 0xC5C3, 0, /* 0x30 */
- 0, 0, 0, 0, 0xC7ED, 0, 0, 0, /* 0x30 */
- 0, 0xE8A3, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xE8A6, 0, 0xE8A5, /* 0x50 */
- 0, 0xE8A7, 0xBAF7, 0xE7F8, 0xE8A4, 0, 0xC8F0, 0xC9AA, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xE8A9, 0, 0, /* 0x60 */
- 0xB9E5, 0, 0, 0, 0, 0, 0xD1FE, 0xE8A8, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xE8AA, 0, /* 0x70 */
- 0xE8AD, 0xE8AE, 0, 0xC1A7, 0, 0, 0, 0xE8AF, /* 0x80 */
- 0, 0, 0, 0xE8B0, 0, 0, 0xE8AC, 0, /* 0x80 */
- 0xE8B4, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xE8AB, 0, 0xE8B1, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xE8B5, /* 0xA0 */
- 0xE8B2, 0xE8B3, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xE8B7, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xE8B6, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xB9CF, 0, 0xF0AC, 0, /* 0xD0 */
- 0xF0AD, 0, 0xC6B0, 0xB0EA, 0xC8BF, 0, 0xCDDF, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xCECD, 0xEAB1, /* 0xE0 */
- 0, 0, 0, 0, 0xEAB2, 0, 0xC6BF, 0xB4C9, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0, 0xEAB3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_75[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD5E7, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0xDDF9, 0, 0xEAB4, /* 0x00 */
- 0, 0xEAB5, 0, 0xEAB6, 0, 0, 0, 0, /* 0x10 */
- 0xB8CA, 0xDFB0, 0xC9F5, 0, 0xCCF0, 0, 0, 0xC9FA, /* 0x10 */
- 0, 0, 0, 0, 0, 0xC9FB, 0, 0, /* 0x20 */
- 0xD3C3, 0xCBA6, 0, 0xB8A6, 0xF0AE, 0xB1C2, 0, 0xE5B8, /* 0x20 */
- 0xCCEF, 0xD3C9, 0xBCD7, 0xC9EA, 0, 0xB5E7, 0, 0xC4D0, /* 0x30 */
- 0xB5E9, 0, 0xEEAE, 0xBBAD, 0, 0, 0xE7DE, 0, /* 0x30 */
- 0xEEAF, 0, 0, 0, 0, 0xB3A9, 0, 0, /* 0x40 */
- 0xEEB2, 0, 0, 0xEEB1, 0xBDE7, 0, 0xEEB0, 0xCEB7, /* 0x40 */
- 0, 0, 0, 0, 0xC5CF, 0, 0, 0, /* 0x50 */
- 0, 0xC1F4, 0xDBCE, 0xEEB3, 0xD0F3, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xC2D4, 0xC6E8, 0, /* 0x60 */
- 0, 0, 0xB7AC, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xEEB4, 0, 0xB3EB, 0, 0, 0, /* 0x70 */
- 0xBBFB, 0xEEB5, 0, 0, 0, 0, 0, 0xE7DC, /* 0x70 */
- 0, 0, 0, 0xEEB6, 0, 0, 0xBDAE, 0, /* 0x80 */
- 0, 0, 0, 0xF1E2, 0, 0, 0, 0xCAE8, /* 0x80 */
- 0, 0xD2C9, 0xF0DA, 0, 0xF0DB, 0, 0xF0DC, 0xC1C6, /* 0x90 */
- 0, 0xB8ED, 0xBECE, 0, 0, 0xF0DE, 0, 0xC5B1, /* 0x90 */
- 0xF0DD, 0xD1F1, 0, 0xF0E0, 0xB0CC, 0xBDEA, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xD2DF, 0xF0DF, 0, 0xB4AF, 0xB7E8, /* 0xA0 */
- 0xF0E6, 0xF0E5, 0xC6A3, 0xF0E1, 0xF0E2, 0xB4C3, 0, 0, /* 0xB0 */
- 0xF0E3, 0xD5EE, 0, 0, 0xCCDB, 0xBED2, 0xBCB2, 0, /* 0xB0 */
- 0, 0, 0xF0E8, 0xF0E7, 0xF0E4, 0xB2A1, 0, 0xD6A2, /* 0xC0 */
- 0xD3B8, 0xBEB7, 0xC8AC, 0, 0, 0xF0EA, 0, 0, /* 0xC0 */
- 0, 0, 0xD1F7, 0, 0xD6CC, 0xBADB, 0xF0E9, 0, /* 0xD0 */
- 0xB6BB, 0, 0, 0xCDB4, 0, 0, 0xC6A6, 0, /* 0xD0 */
- 0, 0, 0xC1A1, 0xF0EB, 0xF0EE, 0, 0xF0ED, 0xF0F0, /* 0xE0 */
- 0xF0EC, 0, 0xBBBE, 0xF0EF, 0, 0, 0, 0, /* 0xE0 */
- 0xCCB5, 0xF0F2, 0, 0, 0xB3D5, 0, 0, 0, /* 0xF0 */
- 0, 0xB1D4, 0, 0, 0xF0F3, 0, 0, 0xF0F4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_76[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF0F6, 0xB4E1, 0, 0xF0F1, 0, 0xF0F7, 0, 0, /* 0x00 */
- 0, 0, 0xF0FA, 0, 0xF0F8, 0, 0, 0, /* 0x00 */
- 0xF0F5, 0, 0, 0, 0, 0xF0FD, 0, 0xF0F9, /* 0x10 */
- 0xF0FC, 0xF0FE, 0, 0xF1A1, 0, 0, 0, 0xCEC1, /* 0x10 */
- 0xF1A4, 0, 0xF1A3, 0, 0xC1F6, 0xF0FB, 0xCADD, 0, /* 0x20 */
- 0, 0xB4F1, 0xB1F1, 0xCCB1, 0, 0xF1A6, 0, 0, /* 0x20 */
- 0xF1A7, 0, 0, 0xF1AC, 0xD5CE, 0xF1A9, 0, 0, /* 0x30 */
- 0xC8B3, 0, 0, 0, 0xF1A2, 0, 0xF1AB, 0xF1A8, /* 0x30 */
- 0xF1A5, 0, 0, 0xF1AA, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xB0A9, 0xF1AD, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xF1AF, 0, 0xF1B1, 0, /* 0x50 */
- 0, 0, 0, 0, 0xF1B0, 0, 0xF1AE, 0, /* 0x50 */
- 0, 0, 0, 0xD1A2, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xF1B2, 0, 0, 0, 0xF1B3, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xB9EF, 0, 0, 0xB5C7, 0, 0xB0D7, 0xB0D9, 0, /* 0x70 */
- 0, 0, 0xD4ED, 0, 0xB5C4, 0, 0xBDD4, 0xBBCA, /* 0x80 */
- 0xF0A7, 0, 0, 0xB8DE, 0, 0, 0xF0A8, 0, /* 0x80 */
- 0, 0xB0A8, 0, 0xF0A9, 0, 0, 0xCDEE, 0, /* 0x90 */
- 0, 0xF0AA, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xF0AB, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xC6A4, 0, /* 0xA0 */
- 0, 0xD6E5, 0xF1E4, 0, 0xF1E5, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xC3F3, /* 0xB0 */
- 0, 0, 0xD3DB, 0, 0, 0xD6D1, 0xC5E8, 0, /* 0xC0 */
- 0xD3AF, 0, 0xD2E6, 0, 0, 0xEEC1, 0xB0BB, 0xD5B5, /* 0xC0 */
- 0xD1CE, 0xBCE0, 0xBAD0, 0, 0xBFF8, 0, 0xB8C7, 0xB5C1, /* 0xD0 */
- 0xC5CC, 0, 0, 0xCAA2, 0, 0, 0, 0xC3CB, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xEEC2, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xC4BF, 0xB6A2, /* 0xE0 */
- 0, 0xEDEC, 0xC3A4, 0, 0xD6B1, 0, 0, 0, /* 0xF0 */
- 0xCFE0, 0xEDEF, 0, 0, 0xC5CE, 0, 0xB6DC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_77[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCAA1, 0, 0, 0xEDED, 0, 0, 0xEDF0, /* 0x00 */
- 0xEDF1, 0xC3BC, 0, 0xBFB4, 0, 0xEDEE, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xEDF4, 0xEDF2, 0, 0, 0, 0, 0xD5E6, /* 0x10 */
- 0xC3DF, 0, 0xEDF3, 0, 0, 0, 0xEDF6, 0, /* 0x20 */
- 0xD5A3, 0xD1A3, 0, 0, 0, 0xEDF5, 0, 0xC3D0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xEDF7, 0xBFF4, 0xBEEC, /* 0x30 */
- 0xEDF8, 0, 0xCCF7, 0, 0xD1DB, 0, 0, 0, /* 0x30 */
- 0xD7C5, 0xD5F6, 0, 0xEDFC, 0, 0, 0, 0xEDFB, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xEDF9, 0xEDFA, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0xEDFD, 0xBEA6, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCBAF, 0xEEA1, 0xB6BD, 0, 0xEEA2, 0xC4C0, 0, /* 0x60 */
- 0xEDFE, 0, 0, 0xBDDE, 0xB2C7, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xB6C3, 0, 0, 0, 0xEEA5, 0xD8BA, 0xEEA3, /* 0x70 */
- 0xEEA6, 0, 0, 0, 0xC3E9, 0xB3F2, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0xEEA7, 0xEEA4, 0xCFB9, 0, /* 0x80 */
- 0, 0xEEA8, 0xC2F7, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xEEA9, /* 0x90 */
- 0xEEAA, 0, 0xDEAB, 0, 0, 0xC6B3, 0, 0xC7C6, /* 0xA0 */
- 0, 0xD6F5, 0xB5C9, 0, 0xCBB2, 0, 0, 0, /* 0xA0 */
- 0xEEAB, 0, 0, 0xCDAB, 0, 0xEEAC, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xD5B0, 0, 0xEEAD, 0, 0xF6C4, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xDBC7, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xB4A3, /* 0xD0 */
- 0, 0, 0, 0xC3AC, 0xF1E6, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xCAB8, 0xD2D3, 0, 0xD6AA, 0, 0xEFF2, /* 0xE0 */
- 0, 0xBED8, 0, 0xBDC3, 0xEFF3, 0xB6CC, 0xB0AB, 0, /* 0xE0 */
- 0, 0, 0, 0xCAAF, 0, 0, 0xEDB6, 0, /* 0xF0 */
- 0xEDB7, 0, 0, 0, 0, 0xCEF9, 0xB7AF, 0xBFF3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_78[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEDB8, 0xC2EB, 0xC9B0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0xEDB9, 0, 0, 0xC6F6, 0xBFB3, 0, 0, /* 0x00 */
- 0, 0xEDBC, 0xC5F8, 0, 0xD1D0, 0, 0xD7A9, 0xEDBA, /* 0x10 */
- 0xEDBB, 0, 0xD1E2, 0, 0xEDBF, 0xEDC0, 0, 0xEDC4, /* 0x10 */
- 0, 0, 0, 0xEDC8, 0, 0xEDC6, 0xEDCE, 0xD5E8, /* 0x20 */
- 0, 0xEDC9, 0, 0, 0xEDC7, 0xEDBE, 0, 0, /* 0x20 */
- 0xC5E9, 0, 0, 0, 0xC6C6, 0, 0, 0xC9E9, /* 0x30 */
- 0xD4D2, 0xEDC1, 0xEDC2, 0xEDC3, 0xEDC5, 0, 0xC0F9, 0, /* 0x30 */
- 0xB4A1, 0, 0, 0, 0, 0xB9E8, 0, 0xEDD0, /* 0x40 */
- 0, 0, 0, 0, 0xEDD1, 0, 0xEDCA, 0, /* 0x40 */
- 0xEDCF, 0, 0xCEF8, 0, 0, 0xCBB6, 0xEDCC, 0xEDCD, /* 0x50 */
- 0, 0, 0, 0, 0, 0xCFF5, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xEDD2, 0xC1F2, 0xD3B2, 0xEDCB, 0xC8B7, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0xBCEF, /* 0x70 */
- 0, 0, 0, 0, 0xC5F0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xEDD6, /* 0x80 */
- 0, 0xB5EF, 0, 0, 0xC2B5, 0xB0AD, 0xCBE9, 0, /* 0x80 */
- 0, 0xB1AE, 0, 0xEDD4, 0, 0, 0, 0xCDEB, /* 0x90 */
- 0xB5E2, 0, 0xEDD5, 0xEDD3, 0xEDD7, 0, 0, 0xB5FA, /* 0x90 */
- 0, 0xEDD8, 0, 0xEDD9, 0, 0xEDDC, 0, 0xB1CC, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xC5F6, 0xBCEE, 0xEDDA, 0xCCBC, 0xB2EA, 0, 0, 0, /* 0xB0 */
- 0, 0xEDDB, 0, 0, 0, 0, 0xC4EB, 0, /* 0xB0 */
- 0, 0xB4C5, 0, 0, 0, 0xB0F5, 0, 0, /* 0xC0 */
- 0, 0xEDDF, 0xC0DA, 0xB4E8, 0, 0, 0, 0, /* 0xC0 */
- 0xC5CD, 0, 0, 0, 0xEDDD, 0xBFC4, 0, 0, /* 0xD0 */
- 0, 0xEDDE, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xC4A5, 0, 0, 0, 0xEDE0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0xEDE1, 0, 0xEDE3, 0, 0, 0xC1D7, /* 0xF0 */
- 0, 0, 0xBBC7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_79[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBDB8, 0, 0, 0, 0xEDE2, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0xEDE4, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xEDE6, 0, /* 0x10 */
- 0, 0, 0, 0, 0xEDE5, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xEDE7, 0, 0, 0, /* 0x30 */
- 0, 0, 0xCABE, 0xECEA, 0xC0F1, 0, 0xC9E7, 0, /* 0x30 */
- 0xECEB, 0xC6EE, 0, 0, 0, 0, 0xECEC, 0, /* 0x40 */
- 0xC6ED, 0xECED, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xECF0, 0, 0, 0xD7E6, 0xECF3, /* 0x50 */
- 0, 0, 0xECF1, 0xECEE, 0xECEF, 0xD7A3, 0xC9F1, 0xCBEE, /* 0x50 */
- 0xECF4, 0, 0xECF2, 0, 0, 0xCFE9, 0, 0xECF6, /* 0x60 */
- 0xC6B1, 0, 0, 0, 0, 0xBCC0, 0, 0xECF5, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0xB5BB, /* 0x70 */
- 0xBBF6, 0, 0xECF7, 0, 0, 0, 0, 0, /* 0x70 */
- 0xD9F7, 0xBDFB, 0, 0, 0xC2BB, 0xECF8, 0, 0, /* 0x80 */
- 0, 0, 0xECF9, 0, 0, 0, 0, 0xB8A3, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xECFA, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xECFB, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xECFC, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xD3ED, 0xD8AE, 0xC0EB, 0, 0xC7DD, 0xBACC, 0, /* 0xB0 */
- 0xD0E3, 0xCBBD, 0, 0xCDBA, 0, 0, 0xB8D1, 0, /* 0xC0 */
- 0, 0xB1FC, 0, 0xC7EF, 0, 0xD6D6, 0, 0, /* 0xC0 */
- 0, 0xBFC6, 0xC3EB, 0, 0, 0xEFF5, 0, 0, /* 0xD0 */
- 0xC3D8, 0, 0, 0, 0, 0, 0, 0xD7E2, /* 0xD0 */
- 0, 0, 0, 0xEFF7, 0xB3D3, 0, 0xC7D8, 0xD1ED, /* 0xE0 */
- 0, 0xD6C8, 0, 0xEFF8, 0, 0xEFF6, 0, 0xBBFD, /* 0xE0 */
- 0xB3C6, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0xBDD5, 0, 0, 0xD2C6, 0, 0xBBE0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_7A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCFA1, 0, 0xEFFC, 0xEFFB, 0, 0, 0xEFF9, 0, /* 0x00 */
- 0, 0, 0, 0xB3CC, 0, 0xC9D4, 0xCBB0, 0, /* 0x00 */
- 0, 0, 0, 0, 0xEFFE, 0, 0, 0xB0DE, /* 0x10 */
- 0, 0, 0xD6C9, 0, 0, 0, 0xEFFD, 0, /* 0x10 */
- 0xB3ED, 0, 0, 0xF6D5, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xCEC8, 0, 0, 0, 0xF0A2, /* 0x30 */
- 0, 0xF0A1, 0, 0xB5BE, 0xBCDA, 0xBBFC, 0, 0xB8E5, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xC4C2, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xF0A3, 0, 0, 0, 0, 0, 0xCBEB, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0xF0A6, 0, 0, 0, 0xD1A8, 0, 0xBEBF, 0xC7EE, /* 0x70 */
- 0xF1B6, 0xF1B7, 0xBFD5, 0, 0, 0, 0, 0xB4A9, /* 0x70 */
- 0xF1B8, 0xCDBB, 0, 0xC7D4, 0xD5AD, 0, 0xF1B9, 0, /* 0x80 */
- 0xF1BA, 0, 0, 0, 0, 0xC7CF, 0, 0, /* 0x80 */
- 0, 0xD2A4, 0xD6CF, 0, 0, 0xF1BB, 0xBDD1, 0xB4B0, /* 0x90 */
- 0xBEBD, 0, 0, 0, 0xB4DC, 0xCED1, 0, 0xBFDF, /* 0x90 */
- 0xF1BD, 0, 0, 0, 0, 0xBFFA, 0xF1BC, 0, /* 0xA0 */
- 0xF1BF, 0, 0, 0, 0xF1BE, 0xF1C0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xF1C1, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xC1FE, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xC1A2, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xCAFA, 0, /* 0xD0 */
- 0, 0xD5BE, 0, 0, 0, 0, 0xBEBA, 0xBEB9, /* 0xD0 */
- 0xD5C2, 0, 0, 0xBFA2, 0, 0xCDAF, 0xF1B5, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xBDDF, 0, 0xB6CB, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xD6F1, 0xF3C3, 0, 0, 0xF3C4, 0, 0xB8CD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_7B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF3C6, 0xF3C7, 0, 0xB0CA, 0, /* 0x00 */
- 0xF3C5, 0, 0xF3C9, 0xCBF1, 0, 0, 0, 0xF3CB, /* 0x00 */
- 0, 0xD0A6, 0, 0, 0xB1CA, 0xF3C8, 0, 0, /* 0x10 */
- 0, 0xF3CF, 0, 0xB5D1, 0, 0, 0xF3D7, 0, /* 0x10 */
- 0xF3D2, 0, 0, 0, 0xF3D4, 0xF3D3, 0xB7FB, 0, /* 0x20 */
- 0xB1BF, 0, 0xF3CE, 0xF3CA, 0xB5DA, 0, 0xF3D0, 0, /* 0x20 */
- 0, 0xF3D1, 0, 0xF3D5, 0, 0, 0, 0, /* 0x30 */
- 0xF3CD, 0, 0xBCE3, 0, 0xC1FD, 0, 0xF3D6, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xF3DA, 0, 0xF3CC, /* 0x40 */
- 0, 0xB5C8, 0, 0xBDEE, 0xF3DC, 0, 0, 0xB7A4, /* 0x40 */
- 0xBFF0, 0xD6FE, 0xCDB2, 0, 0xB4F0, 0, 0xB2DF, 0, /* 0x50 */
- 0xF3D8, 0, 0xF3D9, 0xC9B8, 0, 0xF3DD, 0, 0, /* 0x50 */
- 0xF3DE, 0, 0xF3E1, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0xF3DF, 0, /* 0x60 */
- 0, 0xF3E3, 0xF3E2, 0, 0, 0xF3DB, 0, 0xBFEA, /* 0x70 */
- 0, 0xB3EF, 0, 0xF3E0, 0, 0, 0xC7A9, 0, /* 0x70 */
- 0xBCF2, 0, 0, 0, 0, 0xF3EB, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xB9BF, 0, 0, /* 0x80 */
- 0xF3E4, 0, 0, 0, 0xB2AD, 0xBBFE, 0, 0xCBE3, /* 0x90 */
- 0, 0, 0, 0, 0xF3ED, 0xF3E9, 0, 0, /* 0x90 */
- 0, 0xB9DC, 0xF3EE, 0, 0, 0, 0xF3E5, 0xF3E6, /* 0xA0 */
- 0xF3EA, 0xC2E1, 0xF3EC, 0xF3EF, 0xF3E8, 0xBCFD, 0, 0, /* 0xA0 */
- 0, 0xCFE4, 0, 0, 0xF3F0, 0, 0, 0, /* 0xB0 */
- 0xF3E7, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xF3F2, 0, 0, 0, 0, 0xD7AD, 0xC6AA, /* 0xC0 */
- 0, 0, 0, 0, 0xF3F3, 0, 0, 0, /* 0xC0 */
- 0, 0xF3F1, 0, 0xC2A8, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xB8DD, 0xF3F5, 0, 0, 0xF3F4, 0, 0, /* 0xD0 */
- 0, 0xB4DB, 0, 0, 0, 0xF3F6, 0xF3F7, 0, /* 0xE0 */
- 0, 0, 0xF3F8, 0, 0, 0, 0xC0BA, 0, /* 0xE0 */
- 0, 0xC0E9, 0, 0, 0, 0, 0, 0xC5F1, /* 0xF0 */
- 0, 0, 0, 0, 0xF3FB, 0, 0xF3FA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_7C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB4D8, /* 0x00 */
- 0, 0, 0, 0xF3FE, 0xF3F9, 0, 0, 0xF3FC, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xF3FD, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xF4A1, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xF4A3, 0xBBC9, /* 0x20 */
- 0, 0, 0xF4A2, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xF4A4, 0, 0, 0, 0, 0, 0, 0xB2BE, /* 0x30 */
- 0xF4A6, 0xF4A5, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xBCAE, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xC3D7, 0xD9E1, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0xC0E0, 0xF4CC, 0xD7D1, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xB7DB, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xF4CE, 0xC1A3, 0, 0, 0xC6C9, 0, 0xB4D6, /* 0x90 */
- 0xD5B3, 0, 0, 0, 0xF4D0, 0xF4CF, 0xF4D1, 0xCBDA, /* 0x90 */
- 0, 0, 0xF4D2, 0, 0xD4C1, 0xD6E0, 0, 0, /* 0xA0 */
- 0, 0, 0xB7E0, 0, 0, 0, 0xC1B8, 0, /* 0xA0 */
- 0, 0xC1BB, 0xF4D3, 0xBEAC, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xB4E2, 0, 0, 0xF4D4, 0xF4D5, 0xBEAB, 0, /* 0xB0 */
- 0, 0xF4D6, 0, 0, 0, 0xF4DB, 0, 0xF4D7, /* 0xC0 */
- 0xF4DA, 0, 0xBAFD, 0, 0xF4D8, 0xF4D9, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xB8E2, 0xCCC7, 0xF4DC, /* 0xD0 */
- 0, 0xB2DA, 0, 0, 0xC3D3, 0, 0, 0xD4E3, /* 0xD0 */
- 0xBFB7, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xF4DD, 0, 0, 0, 0, 0, 0, 0xC5B4, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0xF4E9, 0, 0, 0xCFB5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_7D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xCEC9, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xCBD8, 0, 0xCBF7, 0, 0, 0, 0, 0xBDF4, /* 0x20 */
- 0, 0, 0, 0xD7CF, 0, 0, 0, 0xC0DB, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0xD0F5, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0xF4EA, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0xF4EB, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xF4EC /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_7E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x30 */
- 0xF7E3, 0, 0, 0, 0, /* 0x30 */
- 0, 0xB7B1, 0, 0, 0, 0, 0, 0xF4ED, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xD7EB, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xF4EE, 0, 0, 0, 0xE6F9, /* 0x90 */
- 0xBEC0, 0xE6FA, 0xBAEC, 0xE6FB, 0xCFCB, 0xE6FC, 0xD4BC, 0xBCB6, /* 0xA0 */
- 0xE6FD, 0xE6FE, 0xBCCD, 0xC8D2, 0xCEB3, 0xE7A1, 0, 0xB4BF, /* 0xA0 */
- 0xE7A2, 0xC9B4, 0xB8D9, 0xC4C9, 0, 0xD7DD, 0xC2DA, 0xB7D7, /* 0xB0 */
- 0xD6BD, 0xCEC6, 0xB7C4, 0, 0, 0xC5A6, 0xE7A3, 0xCFDF, /* 0xB0 */
- 0xE7A4, 0xE7A5, 0xE7A6, 0xC1B7, 0xD7E9, 0xC9F0, 0xCFB8, 0xD6AF, /* 0xC0 */
- 0xD6D5, 0xE7A7, 0xB0ED, 0xE7A8, 0xE7A9, 0xC9DC, 0xD2EF, 0xBEAD, /* 0xC0 */
- 0xE7AA, 0xB0F3, 0xC8DE, 0xBDE1, 0xE7AB, 0xC8C6, 0, 0xE7AC, /* 0xD0 */
- 0xBBE6, 0xB8F8, 0xD1A4, 0xE7AD, 0xC2E7, 0xBEF8, 0xBDCA, 0xCDB3, /* 0xD0 */
- 0xE7AE, 0xE7AF, 0xBEEE, 0xD0E5, 0, 0xCBE7, 0xCCD0, 0xBCCC, /* 0xE0 */
- 0xE7B0, 0xBCA8, 0xD0F7, 0xE7B1, 0, 0xD0F8, 0xE7B2, 0xE7B3, /* 0xE0 */
- 0xB4C2, 0xE7B4, 0xE7B5, 0xC9FE, 0xCEAC, 0xC3E0, 0xE7B7, 0xB1C1, /* 0xF0 */
- 0xB3F1, 0, 0xE7B8, 0xE7B9, 0xD7DB, 0xD5C0, 0xE7BA, 0xC2CC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_7F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD7BA, 0xE7BB, 0xE7BC, 0xE7BD, 0xBCEA, 0xC3E5, 0xC0C2, 0xE7BE, /* 0x00 */
- 0xE7BF, 0xBCA9, 0, 0xE7C0, 0xE7C1, 0xE7B6, 0xB6D0, 0xE7C2, /* 0x00 */
- 0, 0xE7C3, 0xE7C4, 0xBBBA, 0xB5DE, 0xC2C6, 0xB1E0, 0xE7C5, /* 0x10 */
- 0xD4B5, 0xE7C6, 0xB8BF, 0xE7C8, 0xE7C7, 0xB7EC, 0, 0xE7C9, /* 0x10 */
- 0xB2F8, 0xE7CA, 0xE7CB, 0xE7CC, 0xE7CD, 0xE7CE, 0xE7CF, 0xE7D0, /* 0x20 */
- 0xD3A7, 0xCBF5, 0xE7D1, 0xE7D2, 0xE7D3, 0xE7D4, 0xC9C9, 0xE7D5, /* 0x20 */
- 0xE7D6, 0xE7D7, 0xE7D8, 0xE7D9, 0xBDC9, 0xE7DA, 0xF3BE, 0, /* 0x30 */
- 0xB8D7, 0, 0xC8B1, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0xF3BF, 0, 0xF3C0, 0xF3C1, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xB9DE, 0xCDF8, 0, 0, 0xD8E8, 0xBAB1, 0, 0xC2DE, /* 0x50 */
- 0xEEB7, 0, 0xB7A3, 0, 0, 0, 0, 0xEEB9, /* 0x50 */
- 0, 0xEEB8, 0xB0D5, 0, 0, 0, 0, 0, /* 0x60 */
- 0xEEBB, 0xD5D6, 0xD7EF, 0, 0, 0, 0xD6C3, 0, /* 0x60 */
- 0, 0xEEBD, 0xCAF0, 0, 0xEEBC, 0, 0, 0, /* 0x70 */
- 0, 0xEEBE, 0, 0, 0, 0, 0xEEC0, 0, /* 0x70 */
- 0, 0xEEBF, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xD1F2, 0, 0xC7BC, 0, 0xC3C0, 0, /* 0x80 */
- 0, 0, 0, 0, 0xB8E1, 0, 0, 0, /* 0x90 */
- 0, 0, 0xC1E7, 0, 0, 0xF4C6, 0xD0DF, 0xF4C7, /* 0x90 */
- 0, 0xCFDB, 0, 0, 0xC8BA, 0, 0, 0xF4C8, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0xF4C9, /* 0xA0 */
- 0xF4CA, 0, 0xF4CB, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xD9FA, 0xB8FE, 0, 0, 0xE5F1, 0xD3F0, 0, 0xF4E0, /* 0xB0 */
- 0, 0xCECC, 0, 0, 0, 0xB3E1, 0, 0, /* 0xC0 */
- 0, 0, 0xF1B4, 0, 0xD2EE, 0, 0xF4E1, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xCFE8, 0xF4E2, 0, 0, /* 0xD0 */
- 0xC7CC, 0, 0, 0, 0, 0, 0, 0xB5D4, /* 0xD0 */
- 0xB4E4, 0xF4E4, 0, 0, 0, 0xF4E3, 0xF4E5, 0, /* 0xE0 */
- 0, 0xF4E6, 0, 0, 0, 0, 0xF4E7, 0, /* 0xE0 */
- 0xBAB2, 0xB0BF, 0, 0xF4E8, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0xB7AD, 0xD2ED /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_80[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD2AB, 0xC0CF, 0, 0xBFBC, 0xEBA3, 0xD5DF, 0xEAC8, 0, /* 0x00 */
- 0, 0, 0, 0xF1F3, 0xB6F8, 0xCBA3, 0, 0, /* 0x00 */
- 0xC4CD, 0, 0xF1E7, 0, 0xF1E8, 0xB8FB, 0xF1E9, 0xBAC4, /* 0x10 */
- 0xD4C5, 0xB0D2, 0, 0, 0xF1EA, 0, 0, 0, /* 0x10 */
- 0xF1EB, 0, 0xF1EC, 0, 0, 0xF1ED, 0xF1EE, 0xF1EF, /* 0x20 */
- 0xF1F1, 0xF1F0, 0xC5D5, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xF1F2, 0, 0xB6FA, 0, 0xF1F4, 0xD2AE, 0xDEC7, /* 0x30 */
- 0xCBCA, 0, 0, 0xB3DC, 0, 0xB5A2, 0, 0xB9A2, /* 0x30 */
- 0, 0, 0xC4F4, 0xF1F5, 0, 0, 0xF1F6, 0, /* 0x40 */
- 0, 0, 0xC1C4, 0xC1FB, 0xD6B0, 0xF1F7, 0, 0, /* 0x40 */
- 0, 0, 0xF1F8, 0, 0xC1AA, 0, 0, 0, /* 0x50 */
- 0xC6B8, 0, 0xBEDB, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xF1F9, 0xB4CF, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xF1FA, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xEDB2, /* 0x70 */
- 0xEDB1, 0, 0, 0xCBE0, 0xD2DE, 0, 0xCBC1, 0xD5D8, /* 0x80 */
- 0, 0xC8E2, 0, 0xC0DF, 0xBCA1, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xEBC1, 0, 0, 0xD0A4, 0, /* 0x90 */
- 0xD6E2, 0, 0xB6C7, 0xB8D8, 0xEBC0, 0xB8CE, 0, 0xEBBF, /* 0x90 */
- 0xB3A6, 0xB9C9, 0xD6AB, 0, 0xB7F4, 0xB7CA, 0, 0, /* 0xA0 */
- 0, 0xBCE7, 0xB7BE, 0xEBC6, 0, 0xEBC7, 0xB0B9, 0xBFCF, /* 0xA0 */
- 0, 0xEBC5, 0xD3FD, 0, 0xEBC8, 0, 0, 0xEBC9, /* 0xB0 */
- 0, 0, 0xB7CE, 0, 0xEBC2, 0xEBC4, 0xC9F6, 0xD6D7, /* 0xB0 */
- 0xD5CD, 0xD0B2, 0xEBCF, 0xCEB8, 0xEBD0, 0, 0xB5A8, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xB1B3, 0xEBD2, 0xCCA5, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xC5D6, 0xEBD3, /* 0xD0 */
- 0, 0xEBD1, 0xC5DF, 0xEBCE, 0xCAA4, 0xEBD5, 0xB0FB, 0, /* 0xD0 */
- 0, 0xBAFA, 0, 0, 0xD8B7, 0xF1E3, 0, 0xEBCA, /* 0xE0 */
- 0xEBCB, 0xEBCC, 0xEBCD, 0xEBD6, 0xE6C0, 0xEBD9, 0, 0xBFE8, /* 0xE0 */
- 0xD2C8, 0xEBD7, 0xEBDC, 0xB8EC, 0xEBD8, 0, 0xBDBA, 0, /* 0xF0 */
- 0xD0D8, 0, 0xB0B7, 0, 0xEBDD, 0xC4DC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_81[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD6AC, 0, 0, 0, 0xB4E0, 0, /* 0x00 */
- 0, 0xC2F6, 0xBCB9, 0, 0, 0xEBDA, 0xEBDB, 0xD4E0, /* 0x00 */
- 0xC6EA, 0xC4D4, 0xEBDF, 0xC5A7, 0xD9F5, 0, 0xB2B1, 0, /* 0x10 */
- 0xEBE4, 0, 0xBDC5, 0, 0, 0, 0xEBE2, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xEBE3, 0, 0, 0xB8AC, /* 0x20 */
- 0, 0xCDD1, 0xEBE5, 0, 0, 0, 0xEBE1, 0, /* 0x30 */
- 0xC1B3, 0, 0, 0, 0, 0, 0xC6A2, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xCCF3, 0, /* 0x40 */
- 0xEBE6, 0, 0xC0B0, 0xD2B8, 0xEBE7, 0, 0, 0, /* 0x40 */
- 0xB8AF, 0xB8AD, 0, 0xEBE8, 0xC7BB, 0xCDF3, 0, 0, /* 0x50 */
- 0, 0xEBEA, 0xEBEB, 0, 0, 0, 0, 0, /* 0x50 */
- 0xEBED, 0, 0, 0, 0, 0xD0C8, 0, 0xEBF2, /* 0x60 */
- 0, 0xEBEE, 0, 0, 0, 0xEBF1, 0xC8F9, 0, /* 0x60 */
- 0xD1FC, 0xEBEC, 0, 0, 0xEBE9, 0, 0, 0, /* 0x70 */
- 0, 0xB8B9, 0xCFD9, 0xC4E5, 0xEBEF, 0xEBF0, 0xCCDA, 0xCDC8, /* 0x70 */
- 0xB0F2, 0, 0xEBF6, 0, 0, 0, 0, 0, /* 0x80 */
- 0xEBF5, 0, 0xB2B2, 0, 0, 0, 0, 0xB8E0, /* 0x80 */
- 0, 0xEBF7, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xB1EC, 0, 0, 0xCCC5, 0xC4A4, 0xCFA5, 0, 0, /* 0x90 */
- 0, 0, 0, 0xEBF9, 0, 0, 0xECA2, 0, /* 0xA0 */
- 0xC5F2, 0, 0xEBFA, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xC9C5, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xE2DF, 0xEBFE, 0, 0, 0, 0, /* 0xB0 */
- 0xCDCE, 0xECA1, 0xB1DB, 0xD3B7, 0, 0, 0xD2DC, 0, /* 0xC0 */
- 0, 0, 0xEBFD, 0, 0xEBFB, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xB3BC, 0, 0, 0, 0xEAB0, /* 0xE0 */
- 0, 0, 0xD7D4, 0, 0xF4AB, 0xB3F4, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xD6C1, 0xD6C2, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0xD5E9, 0xBECA, 0, 0xF4A7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_82[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD2A8, 0xF4A8, 0xF4A9, 0, 0xF4AA, 0xBECB, 0xD3DF, 0, /* 0x00 */
- 0, 0, 0, 0, 0xC9E0, 0xC9E1, 0, 0, /* 0x00 */
- 0xF3C2, 0, 0xCAE6, 0, 0xCCF2, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xE2B6, 0xCBB4, 0, 0xCEE8, 0xD6DB, /* 0x10 */
- 0, 0xF4AD, 0xF4AE, 0xF4AF, 0, 0, 0, 0, /* 0x20 */
- 0xF4B2, 0, 0xBABD, 0xF4B3, 0xB0E3, 0xF4B0, 0, 0xF4B1, /* 0x20 */
- 0xBDA2, 0xB2D5, 0, 0xF4B6, 0xF4B7, 0xB6E6, 0xB2B0, 0xCFCF, /* 0x30 */
- 0xF4B4, 0xB4AC, 0, 0xF4B5, 0, 0, 0xF4B8, 0, /* 0x30 */
- 0, 0, 0, 0, 0xF4B9, 0, 0, 0xCDA7, /* 0x40 */
- 0, 0xF4BA, 0, 0xF4BB, 0, 0, 0, 0xF4BC, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xCBD2, 0, 0xF4BD, 0, 0, 0, 0, 0xF4BE, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0xF4BF, 0, 0, 0, 0, 0, 0xF4DE, 0xC1BC, /* 0x60 */
- 0xBCE8, 0, 0xC9AB, 0xD1DE, 0xE5F5, 0, 0, 0, /* 0x70 */
- 0, 0xDCB3, 0xD2D5, 0, 0, 0xDCB4, 0xB0AC, 0xDCB5, /* 0x70 */
- 0, 0, 0xBDDA, 0, 0xDCB9, 0, 0, 0, /* 0x80 */
- 0xD8C2, 0, 0xDCB7, 0xD3F3, 0, 0xC9D6, 0xDCBA, 0xDCB6, /* 0x80 */
- 0, 0xDCBB, 0xC3A2, 0, 0, 0, 0, 0xDCBC, /* 0x90 */
- 0xDCC5, 0xDCBD, 0, 0, 0xCEDF, 0xD6A5, 0, 0xDCCF, /* 0x90 */
- 0, 0xDCCD, 0, 0, 0xDCD2, 0xBDE6, 0xC2AB, 0, /* 0xA0 */
- 0xDCB8, 0xDCCB, 0xDCCE, 0xDCBE, 0xB7D2, 0xB0C5, 0xDCC7, 0xD0BE, /* 0xA0 */
- 0xDCC1, 0xBBA8, 0, 0xB7BC, 0xDCCC, 0, 0, 0xDCC6, /* 0xB0 */
- 0xDCBF, 0xC7DB, 0, 0, 0, 0xD1BF, 0xDCC0, 0, /* 0xB0 */
- 0, 0xDCCA, 0, 0, 0xDCD0, 0, 0, 0xCEAD, /* 0xC0 */
- 0xDCC2, 0, 0xDCC3, 0xDCC8, 0xDCC9, 0xB2D4, 0xDCD1, 0xCBD5, /* 0xC0 */
- 0, 0xD4B7, 0xDCDB, 0xDCDF, 0xCCA6, 0xDCE6, 0, 0xC3E7, /* 0xD0 */
- 0xDCDC, 0, 0, 0xBFC1, 0xDCD9, 0, 0xB0FA, 0xB9B6, /* 0xD0 */
- 0xDCE5, 0xDCD3, 0, 0xDCC4, 0xDCD6, 0xC8F4, 0xBFE0, 0, /* 0xE0 */
- 0, 0, 0, 0xC9BB, 0, 0, 0, 0xB1BD, /* 0xE0 */
- 0, 0xD3A2, 0, 0, 0xDCDA, 0, 0, 0xDCD5, /* 0xF0 */
- 0, 0xC6BB, 0, 0xDCDE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_83[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD7C2, 0xC3AF, 0xB7B6, 0xC7D1, 0xC3A9, 0xDCE2, 0xDCD8, /* 0x00 */
- 0xDCEB, 0xDCD4, 0, 0, 0xDCDD, 0, 0xBEA5, 0xDCD7, /* 0x00 */
- 0, 0xDCE0, 0, 0, 0xDCE3, 0xDCE4, 0, 0xDCF8, /* 0x10 */
- 0, 0, 0xDCE1, 0xDDA2, 0xDCE7, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xBCEB, /* 0x20 */
- 0xB4C4, 0, 0, 0xC3A3, 0xB2E7, 0xDCFA, 0, 0xDCF2, /* 0x20 */
- 0, 0xDCEF, 0, 0xDCFC, 0xDCEE, 0xD2F0, 0xB2E8, 0, /* 0x30 */
- 0xC8D7, 0xC8E3, 0xDCFB, 0, 0xDCED, 0, 0, 0, /* 0x30 */
- 0xDCF7, 0, 0, 0xDCF5, 0, 0, 0xBEA3, 0xDCF4, /* 0x40 */
- 0, 0xB2DD, 0, 0, 0, 0, 0, 0xDCF3, /* 0x40 */
- 0xBCF6, 0xDCE8, 0xBBC4, 0, 0xC0F3, 0, 0, 0, /* 0x50 */
- 0, 0, 0xBCD4, 0xDCE9, 0xDCEA, 0, 0xDCF1, 0xDCF6, /* 0x50 */
- 0xDCF9, 0xB5B4, 0, 0xC8D9, 0xBBE7, 0xDCFE, 0xDCFD, 0xD3AB, /* 0x60 */
- 0xDDA1, 0xDDA3, 0xDDA5, 0xD2F1, 0xDDA4, 0xDDA6, 0xDDA7, 0xD2A9, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0xBAC9, /* 0x70 */
- 0xDDA9, 0, 0, 0xDDB6, 0xDDB1, 0xDDB4, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xDDB0, 0xC6CE, 0, /* 0x80 */
- 0, 0xC0F2, 0, 0, 0, 0, 0xC9AF, 0, /* 0x80 */
- 0, 0, 0xDCEC, 0xDDAE, 0, 0, 0, 0, /* 0x90 */
- 0xDDB7, 0, 0, 0xDCF0, 0xDDAF, 0, 0xDDB8, 0, /* 0x90 */
- 0xDDAC, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xDDB9, 0xDDB3, 0xDDAD, 0xC4AA, 0, 0, 0, 0, /* 0xA0 */
- 0xDDA8, 0xC0B3, 0xC1AB, 0xDDAA, 0xDDAB, 0, 0xDDB2, 0xBBF1, /* 0xB0 */
- 0xDDB5, 0xD3A8, 0xDDBA, 0, 0xDDBB, 0xC3A7, 0, 0, /* 0xB0 */
- 0xDDD2, 0xDDBC, 0, 0, 0, 0xDDD1, 0, 0xB9BD, /* 0xC0 */
- 0, 0, 0xBED5, 0, 0xBEFA, 0, 0, 0xBACA, /* 0xC0 */
- 0, 0, 0, 0, 0xDDCA, 0, 0xDDC5, 0, /* 0xD0 */
- 0xDDBF, 0, 0, 0, 0xB2CB, 0xDDC3, 0, 0xDDCB, /* 0xD0 */
- 0xB2A4, 0xDDD5, 0, 0, 0, 0xDDBE, 0, 0, /* 0xE0 */
- 0, 0xC6D0, 0xDDD0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xDDD4, 0xC1E2, 0xB7C6, 0, 0, 0, 0, 0, /* 0xF0 */
- 0xDDCE, 0xDDCF, 0, 0, 0, 0xDDC4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_84[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDDBD, 0, 0xDDCD, 0xCCD1, 0, 0xDDC9, 0, /* 0x00 */
- 0, 0, 0, 0xDDC2, 0xC3C8, 0xC6BC, 0xCEAE, 0xDDCC, /* 0x00 */
- 0, 0xDDC8, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xDDC1, 0, 0, 0, 0xDDC6, 0xC2DC, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0xD3A9, 0xD3AA, 0xDDD3, 0xCFF4, /* 0x20 */
- 0xC8F8, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xDDE6, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xDDC7, 0, 0, 0, 0xDDE0, 0xC2E4, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xDDE1, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xDDD7, 0, 0, 0, 0, 0, 0xD6F8, /* 0x50 */
- 0, 0xDDD9, 0xDDD8, 0xB8F0, 0xDDD6, 0, 0, 0, /* 0x50 */
- 0, 0xC6CF, 0, 0xB6AD, 0, 0, 0, 0, /* 0x60 */
- 0, 0xDDE2, 0, 0xBAF9, 0xD4E1, 0xDDE7, 0, 0, /* 0x60 */
- 0, 0xB4D0, 0, 0xDDDA, 0, 0xBFFB, 0xDDE3, 0, /* 0x70 */
- 0xDDDF, 0, 0xDDDD, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xB5D9, 0, 0, 0, 0, 0xDDDB, /* 0x80 */
- 0xDDDC, 0xDDDE, 0, 0xBDAF, 0xDDE4, 0, 0xDDE5, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0xDDF5, /* 0x90 */
- 0, 0xC3C9, 0, 0, 0xCBE2, 0, 0, 0, /* 0x90 */
- 0, 0xDDF2, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0xD8E1, /* 0xA0 */
- 0, 0, 0xC6D1, 0, 0xDDF4, 0, 0, 0, /* 0xB0 */
- 0xD5F4, 0xDDF3, 0xDDF0, 0, 0, 0xDDEC, 0, 0xDDEF, /* 0xB0 */
- 0, 0xDDE8, 0, 0, 0xD0EE, 0, 0, 0, /* 0xC0 */
- 0, 0xC8D8, 0xDDEE, 0, 0, 0xDDE9, 0, 0, /* 0xC0 */
- 0xDDEA, 0xCBF2, 0, 0xDDED, 0, 0, 0xB1CD, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xC0B6, 0, 0xBCBB, /* 0xD0 */
- 0xDDF1, 0, 0, 0xDDF7, 0, 0xDDF6, 0xDDEB, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xC5EE, 0, 0, 0, /* 0xE0 */
- 0xDDFB, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0xDEA4, 0, 0, 0xDEA3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_85[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xDDF8, 0, 0, 0, /* 0x00 */
- 0, 0xC3EF, 0, 0xC2FB, 0, 0, 0, 0xD5E1, /* 0x10 */
- 0, 0, 0xCEB5, 0, 0, 0, 0, 0xDDFD, /* 0x10 */
- 0, 0xB2CC, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xC4E8, 0xCADF, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0xC7BE, /* 0x30 */
- 0xDDFA, 0xDDFC, 0xDDFE, 0xDEA2, 0xB0AA, 0xB1CE, 0, 0, /* 0x30 */
- 0, 0, 0, 0xDEAC, 0, 0, 0, 0, /* 0x40 */
- 0xDEA6, 0xBDB6, 0xC8EF, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0xDEA1, 0, /* 0x50 */
- 0, 0xDEA5, 0, 0, 0, 0, 0xDEA9, 0, /* 0x50 */
- 0, 0, 0, 0, 0xDEA8, 0, 0, 0, /* 0x60 */
- 0xDEA7, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xDEAD, 0, 0xD4CC, 0, 0, 0, /* 0x70 */
- 0, 0xDEB3, 0xDEAA, 0xDEAE, 0, 0, 0xC0D9, 0, /* 0x70 */
- 0, 0, 0, 0, 0xB1A1, 0xDEB6, 0, 0xDEB1, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0xDEB2, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xD1A6, 0xDEB5, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xDEAF, 0, 0, 0, /* 0xA0 */
- 0xDEB0, 0, 0xD0BD, 0, 0, 0, 0xDEB4, 0xCAED, /* 0xA0 */
- 0xDEB9, 0, 0, 0, 0, 0, 0, 0xDEB8, /* 0xB0 */
- 0, 0xDEB7, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xDEBB, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xBDE5, 0, 0, 0, 0, 0, 0xB2D8, /* 0xC0 */
- 0xC3EA, 0, 0, 0xDEBA, 0, 0xC5BA, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xDEBC, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xCCD9, 0, 0, 0, /* 0xE0 */
- 0, 0xB7AA, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0xD4E5, 0, 0, 0, 0xDEBD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_86[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDEBF, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0xC4A2, 0, 0, 0, 0, 0xDEC1, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xDEBE, /* 0x20 */
- 0, 0xDEC0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xD5BA, 0, 0, 0, 0xDEC2, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xF2AE, 0xBBA2, 0xC2B2, /* 0x40 */
- 0xC5B0, 0xC2C7, 0, 0, 0xF2AF, 0, 0, 0, /* 0x50 */
- 0, 0, 0xD0E9, 0, 0, 0, 0xD3DD, 0, /* 0x50 */
- 0, 0, 0xEBBD, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xB3E6, 0xF2B0, 0, 0xF2B1, 0, /* 0x60 */
- 0, 0xCAAD, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xBAE7, 0xF2B3, 0xF2B5, 0xF2B4, 0xCBE4, 0xCFBA, 0xF2B2, /* 0x70 */
- 0xCAB4, 0xD2CF, 0xC2EC, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xCEC3, 0xF2B8, 0xB0F6, 0xF2B7, 0, 0, /* 0x80 */
- 0, 0, 0, 0xF2BE, 0, 0xB2CF, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xD1C1, 0xF2BA, 0, 0, /* 0x90 */
- 0, 0, 0, 0xF2BC, 0xD4E9, 0, 0, 0xF2BB, /* 0xA0 */
- 0xF2B6, 0xF2BF, 0xF2BD, 0, 0xF2B9, 0, 0, 0xF2C7, /* 0xA0 */
- 0xF2C4, 0xF2C6, 0, 0, 0xF2CA, 0xF2C2, 0xF2C0, 0, /* 0xB0 */
- 0, 0, 0xF2C5, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xD6FB, 0, 0, 0, 0xF2C1, 0, 0xC7F9, 0xC9DF, /* 0xC0 */
- 0, 0xF2C8, 0xB9C6, 0xB5B0, 0, 0, 0xF2C3, 0xF2C9, /* 0xC0 */
- 0xF2D0, 0xF2D6, 0, 0, 0xBBD7, 0, 0, 0, /* 0xD0 */
- 0xF2D5, 0xCDDC, 0, 0xD6EB, 0, 0, 0xF2D2, 0xF2D4, /* 0xD0 */
- 0, 0, 0, 0, 0xB8F2, 0, 0, 0, /* 0xE0 */
- 0, 0xF2CB, 0, 0, 0, 0xF2CE, 0xC2F9, 0, /* 0xE0 */
- 0xD5DD, 0xF2CC, 0xF2CD, 0xF2CF, 0xF2D3, 0, 0, 0, /* 0xF0 */
- 0xF2D9, 0xD3BC, 0, 0, 0, 0, 0xB6EA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_87[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCAF1, 0, 0xB7E4, 0xF2D7, 0, 0, 0, 0xF2D8, /* 0x00 */
- 0xF2DA, 0xF2DD, 0xF2DB, 0, 0, 0xF2DC, 0, 0, /* 0x00 */
- 0, 0, 0xD1D1, 0xF2D1, 0, 0xCDC9, 0, 0xCECF, /* 0x10 */
- 0xD6A9, 0, 0xF2E3, 0, 0xC3DB, 0, 0xF2E0, 0, /* 0x10 */
- 0, 0xC0AF, 0xF2EC, 0xF2DE, 0, 0xF2E1, 0, 0, /* 0x20 */
- 0, 0xF2E8, 0, 0, 0, 0, 0xF2E2, 0, /* 0x20 */
- 0, 0xF2E7, 0, 0, 0xF2E6, 0, 0, 0xF2E9, /* 0x30 */
- 0, 0, 0, 0xF2DF, 0, 0, 0xF2E4, 0xF2EA, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0xD3AC, /* 0x40 */
- 0xF2E5, 0xB2F5, 0, 0, 0xF2F2, 0, 0xD0AB, 0, /* 0x40 */
- 0, 0, 0, 0xF2F5, 0, 0, 0, 0xBBC8, /* 0x50 */
- 0, 0xF2F9, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xF2F0, 0, 0, 0xF2F6, 0xF2F8, 0xF2FA, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0xF2F3, 0, /* 0x60 */
- 0xF2F1, 0, 0, 0, 0xBAFB, 0, 0xB5FB, 0, /* 0x70 */
- 0, 0, 0, 0xF2EF, 0xF2F7, 0xF2ED, 0xF2EE, 0, /* 0x70 */
- 0, 0, 0xF2EB, 0xF3A6, 0, 0xF3A3, 0, 0, /* 0x80 */
- 0xF3A2, 0, 0, 0xF2F4, 0, 0xC8DA, 0, 0, /* 0x80 */
- 0, 0, 0, 0xF2FB, 0, 0, 0, 0xF3A5, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xC3F8, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xF2FD, 0, 0, 0xF3A7, 0xF3A9, 0xF3A4, 0, 0xF2FC, /* 0xA0 */
- 0, 0, 0, 0xF3AB, 0, 0xF3AA, 0, 0, /* 0xB0 */
- 0, 0, 0xC2DD, 0, 0, 0xF3AE, 0, 0, /* 0xB0 */
- 0xF3B0, 0, 0, 0, 0, 0, 0xF3A1, 0, /* 0xC0 */
- 0, 0, 0xF3B1, 0xF3AC, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xF3AF, 0xF2FE, 0xF3AD, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xF3B2, 0, 0, 0, 0, /* 0xD0 */
- 0xF3B4, 0, 0, 0, 0, 0xF3A8, 0, 0, /* 0xE0 */
- 0, 0, 0xF3B3, 0, 0, 0, 0xF3B5, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xD0B7, 0, 0, 0, 0, 0xF3B8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_88[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD9F9, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xF3B9, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0xF3B7, 0, 0xC8E4, 0xF3B6, 0, /* 0x10 */
- 0, 0, 0, 0xF3BA, 0, 0, 0, 0, /* 0x10 */
- 0, 0xF3BB, 0xB4C0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xEEC3, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xF3BC, 0, 0, 0xF3BD, 0, 0, 0, /* 0x30 */
- 0xD1AA, 0, 0, 0, 0xF4AC, 0xD0C6, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xD0D0, 0xD1DC, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xCFCE, 0, 0, 0xBDD6, /* 0x50 */
- 0, 0xD1C3, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xBAE2, 0xE1E9, 0xD2C2, 0xF1C2, 0xB2B9, 0, 0, /* 0x60 */
- 0xB1ED, 0xF1C3, 0, 0xC9C0, 0xB3C4, 0, 0xD9F2, 0, /* 0x60 */
- 0xCBA5, 0, 0xF1C4, 0, 0, 0, 0, 0xD6D4, /* 0x70 */
- 0, 0, 0, 0, 0, 0xF1C5, 0xF4C0, 0xF1C6, /* 0x70 */
- 0, 0xD4AC, 0xF1C7, 0, 0xB0C0, 0xF4C1, 0, 0, /* 0x80 */
- 0xF4C2, 0, 0, 0xB4FC, 0, 0xC5DB, 0, 0, /* 0x80 */
- 0, 0, 0xCCBB, 0, 0, 0, 0xD0E4, 0, /* 0x90 */
- 0, 0, 0, 0, 0xCDE0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xF1C8, 0, 0xD9F3, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xB1BB, 0, 0xCFAE, 0, 0, /* 0xA0 */
- 0, 0xB8A4, 0, 0, 0, 0, 0, 0xF1CA, /* 0xB0 */
- 0, 0, 0, 0, 0xF1CB, 0, 0, 0, /* 0xB0 */
- 0, 0xB2C3, 0xC1D1, 0, 0, 0xD7B0, 0xF1C9, 0, /* 0xC0 */
- 0, 0xF1CC, 0, 0, 0, 0, 0xF1CE, 0, /* 0xC0 */
- 0, 0, 0xD9F6, 0, 0xD2E1, 0xD4A3, 0, 0, /* 0xD0 */
- 0xF4C3, 0xC8B9, 0, 0, 0, 0, 0, 0xF4C4, /* 0xD0 */
- 0, 0, 0xF1CD, 0xF1CF, 0xBFE3, 0xF1D0, 0, 0, /* 0xE0 */
- 0xF1D4, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xF1D6, 0xF1D1, 0, 0xC9D1, 0xC5E1, 0, 0, 0, /* 0xF0 */
- 0xC2E3, 0xB9FC, 0, 0, 0xF1D3, 0, 0xF1D5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_89[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB9D3, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xF1DB, 0, 0, 0, 0, 0, /* 0x00 */
- 0xBAD6, 0, 0xB0FD, 0xF1D9, 0, 0, 0, 0, /* 0x10 */
- 0, 0xF1D8, 0xF1D2, 0xF1DA, 0, 0, 0, 0, /* 0x10 */
- 0, 0xF1D7, 0, 0, 0, 0xC8EC, 0, 0, /* 0x20 */
- 0, 0, 0xCDCA, 0xF1DD, 0, 0, 0, 0, /* 0x20 */
- 0xE5BD, 0, 0, 0, 0xF1DC, 0, 0xF1DE, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xF1DF, 0, 0, 0xCFE5, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xF4C5, 0xBDF3, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xF1E0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0xF1E1, 0, 0, 0, 0xCEF7, /* 0x70 */
- 0, 0xD2AA, 0, 0xF1FB, 0, 0, 0xB8B2, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xBCFB, 0xB9DB, 0, 0xB9E6, 0xC3D9, 0xCAD3, 0xEAE8, /* 0xC0 */
- 0xC0C0, 0xBEF5, 0xEAE9, 0xEAEA, 0xEAEB, 0, 0xEAEC, 0xEAED, /* 0xC0 */
- 0xEAEE, 0xEAEF, 0xBDC7, 0, 0, 0, 0xF5FB, 0, /* 0xD0 */
- 0, 0, 0xF5FD, 0, 0xF5FE, 0, 0xF5FC, 0, /* 0xD0 */
- 0, 0, 0, 0xBDE2, 0, 0xF6A1, 0xB4A5, 0, /* 0xE0 */
- 0, 0, 0, 0xF6A2, 0, 0, 0, 0xF6A3, /* 0xE0 */
- 0, 0, 0, 0xECB2 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_8A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD1D4, 0, 0, 0, 0, 0, 0, 0xD9EA, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xF6A4, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xEEBA, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD5B2, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xD3FE, 0xCCDC, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xCAC4 /* 0x90 */
- /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_8B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE5C0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xF6A5, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xBEAF, 0, /* 0x60 */
- 0, 0, 0, 0, 0xC6A9, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xDAA5, 0xBCC6, 0xB6A9, 0xB8BC, 0xC8CF, 0xBCA5, 0xDAA6, 0xDAA7, /* 0xA0 */
- 0xCCD6, 0xC8C3, 0xDAA8, 0xC6FD, 0, 0xD1B5, 0xD2E9, 0xD1B6, /* 0xA0 */
- 0xBCC7, 0, 0xBDB2, 0xBBE4, 0xDAA9, 0xDAAA, 0xD1C8, 0xDAAB, /* 0xB0 */
- 0xD0ED, 0xB6EF, 0xC2DB, 0, 0xCBCF, 0xB7ED, 0xC9E8, 0xB7C3, /* 0xB0 */
- 0xBEF7, 0xD6A4, 0xDAAC, 0xDAAD, 0xC6C0, 0xD7E7, 0xCAB6, 0, /* 0xC0 */
- 0xD5A9, 0xCBDF, 0xD5EF, 0xDAAE, 0xD6DF, 0xB4CA, 0xDAB0, 0xDAAF, /* 0xC0 */
- 0, 0xD2EB, 0xDAB1, 0xDAB2, 0xDAB3, 0xCAD4, 0xDAB4, 0xCAAB, /* 0xD0 */
- 0xDAB5, 0xDAB6, 0xB3CF, 0xD6EF, 0xDAB7, 0xBBB0, 0xB5AE, 0xDAB8, /* 0xD0 */
- 0xDAB9, 0xB9EE, 0xD1AF, 0xD2E8, 0xDABA, 0xB8C3, 0xCFEA, 0xB2EF, /* 0xE0 */
- 0xDABB, 0xDABC, 0, 0xBDEB, 0xCEDC, 0xD3EF, 0xDABD, 0xCEF3, /* 0xE0 */
- 0xDABE, 0xD3D5, 0xBBE5, 0xDABF, 0xCBB5, 0xCBD0, 0xDAC0, 0xC7EB, /* 0xF0 */
- 0xD6EE, 0xDAC1, 0xC5B5, 0xB6C1, 0xDAC2, 0xB7CC, 0xBFCE, 0xDAC3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_8C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDAC4, 0xCBAD, 0xDAC5, 0xB5F7, 0xDAC6, 0xC1C2, 0xD7BB, 0xDAC7, /* 0x00 */
- 0xCCB8, 0, 0xD2EA, 0xC4B1, 0xDAC8, 0xB5FD, 0xBBD1, 0xDAC9, /* 0x00 */
- 0xD0B3, 0xDACA, 0xDACB, 0xCEBD, 0xDACC, 0xDACD, 0xDACE, 0xB2F7, /* 0x10 */
- 0xDAD1, 0xDACF, 0xD1E8, 0xDAD0, 0xC3D5, 0xDAD2, 0, 0xDAD3, /* 0x10 */
- 0xDAD4, 0xDAD5, 0xD0BB, 0xD2A5, 0xB0F9, 0xDAD6, 0xC7AB, 0xDAD7, /* 0x20 */
- 0xBDF7, 0xC3A1, 0xDAD8, 0xDAD9, 0xC3FD, 0xCCB7, 0xDADA, 0xDADB, /* 0x20 */
- 0xC0BE, 0xC6D7, 0xDADC, 0xDADD, 0xC7B4, 0xDADE, 0xDADF, 0xB9C8, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xBBED, 0, 0, 0, 0, 0xB6B9, 0xF4F8, /* 0x40 */
- 0, 0xF4F9, 0, 0, 0xCDE3, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xF5B9, 0, 0, /* 0x50 */
- 0, 0, 0xEBE0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCFF3, 0xBBBF, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xBAC0, 0xD4A5, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xE1D9, 0, 0, 0, 0, /* 0x70 */
- 0xF5F4, 0xB1AA, 0xB2F2, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xF5F5, 0, 0, 0xF5F7, 0, 0, /* 0x80 */
- 0, 0xBAD1, 0xF5F6, 0, 0xC3B2, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0xF5F9, 0, 0, 0, /* 0x90 */
- 0xF5F8 /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_8D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x10 */
- 0xB1B4, 0xD5EA, 0xB8BA, /* 0x10 */
- 0, 0xB9B1, 0xB2C6, 0xD4F0, 0xCFCD, 0xB0DC, 0xD5CB, 0xBBF5, /* 0x20 */
- 0xD6CA, 0xB7B7, 0xCCB0, 0xC6B6, 0xB1E1, 0xB9BA, 0xD6FC, 0xB9E1, /* 0x20 */
- 0xB7A1, 0xBCFA, 0xEADA, 0xEADB, 0xCCF9, 0xB9F3, 0xEADC, 0xB4FB, /* 0x30 */
- 0xC3B3, 0xB7D1, 0xBAD8, 0xEADD, 0xD4F4, 0xEADE, 0xBCD6, 0xBBDF, /* 0x30 */
- 0xEADF, 0xC1DE, 0xC2B8, 0xD4DF, 0xD7CA, 0xEAE0, 0xEAE1, 0xEAE4, /* 0x40 */
- 0xEAE2, 0xEAE3, 0xC9DE, 0xB8B3, 0xB6C4, 0xEAE5, 0xCAEA, 0xC9CD, /* 0x40 */
- 0xB4CD, 0, 0, 0xE2D9, 0xC5E2, 0xEAE6, 0xC0B5, 0, /* 0x50 */
- 0xD7B8, 0xEAE7, 0xD7AC, 0xC8FC, 0xD8D3, 0xD8CD, 0xD4DE, 0, /* 0x50 */
- 0xD4F9, 0xC9C4, 0xD3AE, 0xB8D3, 0xB3E0, 0, 0xC9E2, 0xF4F6, /* 0x60 */
- 0, 0, 0, 0xBAD5, 0, 0xF4F7, 0, 0, /* 0x60 */
- 0xD7DF, 0, 0, 0xF4F1, 0xB8B0, 0xD5D4, 0xB8CF, 0xC6F0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xB3C3, 0, 0, 0xF4F2, 0xB3AC, 0, 0, /* 0x80 */
- 0, 0, 0xD4BD, 0xC7F7, 0, 0, 0, 0, /* 0x80 */
- 0, 0xF4F4, 0, 0, 0xF4F3, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xCCCB, /* 0x90 */
- 0, 0, 0, 0xC8A4, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xF4F5, 0, 0xD7E3, 0xC5BF, 0xF5C0, 0, 0, /* 0xB0 */
- 0xF5BB, 0, 0xF5C3, 0, 0xF5C2, 0, 0xD6BA, 0xF5C1, /* 0xB0 */
- 0, 0, 0, 0xD4BE, 0xF5C4, 0, 0xF5CC, 0, /* 0xC0 */
- 0, 0, 0, 0xB0CF, 0xB5F8, 0, 0xF5C9, 0xF5CA, /* 0xC0 */
- 0, 0xC5DC, 0, 0, 0, 0, 0xF5C5, 0xF5C6, /* 0xD0 */
- 0, 0, 0xF5C7, 0xF5CB, 0, 0xBEE0, 0xF5C8, 0xB8FA, /* 0xD0 */
- 0, 0, 0, 0xF5D0, 0xF5D3, 0, 0, 0, /* 0xE0 */
- 0xBFE7, 0, 0xB9F2, 0xF5BC, 0xF5CD, 0, 0, 0xC2B7, /* 0xE0 */
- 0, 0, 0, 0xCCF8, 0, 0xBCF9, 0, 0xF5CE, /* 0xF0 */
- 0xF5CF, 0xF5D1, 0xB6E5, 0xF5D2, 0, 0xF5D5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_8E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF5BD, 0, 0, /* 0x00 */
- 0, 0xF5D4, 0xD3BB, 0, 0xB3EC, 0, 0, 0xCCA4, /* 0x00 */
- 0, 0, 0, 0, 0xF5D6, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xF5D7, 0xBEE1, 0xF5D8, /* 0x10 */
- 0, 0, 0xCCDF, 0xF5DB, 0, 0, 0, 0, /* 0x20 */
- 0, 0xB2C8, 0xD7D9, 0, 0xF5D9, 0, 0xF5DA, 0xF5DC, /* 0x20 */
- 0, 0xF5E2, 0, 0, 0, 0xF5E0, 0, 0, /* 0x30 */
- 0, 0xF5DF, 0xF5DD, 0, 0, 0xF5E1, 0, 0, /* 0x30 */
- 0xF5DE, 0xF5E4, 0xF5E5, 0, 0xCCE3, 0, 0, 0xE5BF, /* 0x40 */
- 0xB5B8, 0xF5E3, 0xF5E8, 0xCCA3, 0, 0, 0, 0, /* 0x40 */
- 0, 0xF5E6, 0xF5E7, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xF5BE, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xB1C4, 0, /* 0x60 */
- 0, 0xF5BF, 0, 0, 0xB5C5, 0xB2E4, 0, 0xF5EC, /* 0x60 */
- 0xF5E9, 0, 0xB6D7, 0, 0xF5ED, 0, 0xF5EA, 0, /* 0x70 */
- 0, 0, 0, 0, 0xF5EB, 0, 0, 0xB4DA, /* 0x70 */
- 0, 0xD4EA, 0, 0, 0, 0xF5EE, 0, 0xB3F9, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0xF5EF, /* 0x80 */
- 0xF5F1, 0, 0, 0, 0xF5F0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xF5F2, 0, 0xF5F3, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xC9ED, 0xB9AA, 0, 0, 0xC7FB, /* 0xA0 */
- 0, 0, 0xB6E3, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xCCC9, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xEAA6 /* 0xC0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_8F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB3B5, 0xD4FE, /* 0x60 */
- 0xB9EC, 0xD0F9, 0, 0xE9ED, 0xD7AA, 0xE9EE, 0xC2D6, 0xC8ED, /* 0x60 */
- 0xBAE4, 0xE9EF, 0xE9F0, 0xE9F1, 0xD6E1, 0xE9F2, 0xE9F3, 0xE9F5, /* 0x70 */
- 0xE9F4, 0xE9F6, 0xE9F7, 0xC7E1, 0xE9F8, 0xD4D8, 0xE9F9, 0xBDCE, /* 0x70 */
- 0, 0xE9FA, 0xE9FB, 0xBDCF, 0xE9FC, 0xB8A8, 0xC1BE, 0xE9FD, /* 0x80 */
- 0xB1B2, 0xBBD4, 0xB9F5, 0xE9FE, 0, 0xEAA1, 0xEAA2, 0xEAA3, /* 0x80 */
- 0xB7F8, 0xBCAD, 0, 0xCAE4, 0xE0CE, 0xD4AF, 0xCFBD, 0xD5B7, /* 0x90 */
- 0xEAA4, 0xD5DE, 0xEAA5, 0xD0C1, 0xB9BC, 0, 0xB4C7, 0xB1D9, /* 0x90 */
- 0, 0, 0, 0xC0B1, 0, 0, 0, 0, /* 0xA0 */
- 0xB1E6, 0xB1E7, 0, 0xB1E8, 0, 0, 0, 0, /* 0xA0 */
- 0xB3BD, 0xC8E8, 0, 0, 0, 0, 0xE5C1, 0, /* 0xB0 */
- 0, 0xB1DF, 0, 0, 0, 0xC1C9, 0xB4EF, 0, /* 0xB0 */
- 0, 0xC7A8, 0xD3D8, 0, 0xC6F9, 0xD1B8, 0, 0xB9FD, /* 0xC0 */
- 0xC2F5, 0, 0, 0, 0, 0, 0xD3AD, 0, /* 0xC0 */
- 0xD4CB, 0xBDFC, 0, 0xE5C2, 0xB7B5, 0xE5C3, 0, 0, /* 0xD0 */
- 0xBBB9, 0xD5E2, 0, 0xBDF8, 0xD4B6, 0xCEA5, 0xC1AC, 0xB3D9, /* 0xD0 */
- 0, 0, 0xCCF6, 0, 0xE5C6, 0xE5C4, 0xE5C8, 0, /* 0xE0 */
- 0xE5CA, 0xE5C7, 0xB5CF, 0xC6C8, 0, 0xB5FC, 0xE5C5, 0, /* 0xE0 */
- 0xCAF6, 0, 0, 0xE5C9, 0, 0, 0, 0xC3D4, /* 0xF0 */
- 0xB1C5, 0xBCA3, 0, 0, 0, 0xD7B7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_90[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCDCB, 0xCBCD, 0xCACA, 0xCCD3, 0xE5CC, 0xE5CB, 0xC4E6, 0, /* 0x00 */
- 0, 0xD1A1, 0xD1B7, 0xE5CD, 0, 0xE5D0, 0, 0xCDB8, /* 0x00 */
- 0xD6F0, 0xE5CF, 0xB5DD, 0, 0xCDBE, 0, 0xE5D1, 0xB6BA, /* 0x10 */
- 0, 0, 0xCDA8, 0xB9E4, 0, 0xCAC5, 0xB3D1, 0xCBD9, /* 0x10 */
- 0xD4EC, 0xE5D2, 0xB7EA, 0, 0, 0, 0xE5CE, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xE5D5, 0xB4FE, 0xE5D6, /* 0x20 */
- 0, 0, 0, 0, 0, 0xE5D3, 0xE5D4, 0, /* 0x30 */
- 0xD2DD, 0, 0, 0xC2DF, 0xB1C6, 0, 0xD3E2, 0, /* 0x30 */
- 0, 0xB6DD, 0xCBEC, 0, 0xE5D7, 0, 0, 0xD3F6, /* 0x40 */
- 0, 0, 0, 0, 0, 0xB1E9, 0, 0xB6F4, /* 0x40 */
- 0xE5DA, 0xE5D8, 0xE5D9, 0xB5C0, 0, 0, 0, 0xD2C5, /* 0x50 */
- 0xE5DC, 0, 0, 0xE5DE, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0xE5DD, 0xC7B2, 0, 0xD2A3, 0, 0, /* 0x60 */
- 0xE5DB, 0, 0, 0, 0, 0xD4E2, 0xD5DA, 0, /* 0x60 */
- 0, 0, 0, 0, 0xE5E0, 0xD7F1, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xE5E1, 0, 0xB1DC, /* 0x70 */
- 0xD1FB, 0, 0xE5E2, 0xE5E4, 0, 0, 0, 0, /* 0x80 */
- 0xE5E3, 0, 0, 0xE5E5, 0, 0, 0, 0, /* 0x80 */
- 0, 0xD2D8, 0, 0xB5CB, 0, 0xE7DF, 0, 0xDAF5, /* 0x90 */
- 0, 0xDAF8, 0, 0xDAF6, 0, 0xDAF7, 0, 0, /* 0x90 */
- 0, 0xDAFA, 0xD0CF, 0xC4C7, 0, 0, 0xB0EE, 0, /* 0xA0 */
- 0, 0, 0xD0B0, 0, 0xDAF9, 0, 0xD3CA, 0xBAAA, /* 0xA0 */
- 0xDBA2, 0xC7F1, 0, 0xDAFC, 0xDAFB, 0xC9DB, 0xDAFD, 0, /* 0xB0 */
- 0xDBA1, 0xD7DE, 0xDAFE, 0xC1DA, 0, 0, 0xDBA5, 0, /* 0xB0 */
- 0, 0xD3F4, 0, 0, 0xDBA7, 0xDBA4, 0, 0xDBA8, /* 0xC0 */
- 0, 0, 0xBDBC, 0, 0, 0, 0xC0C9, 0xDBA3, /* 0xC0 */
- 0xDBA6, 0xD6A3, 0, 0xDBA9, 0, 0, 0, 0xDBAD, /* 0xD0 */
- 0, 0, 0, 0xDBAE, 0xDBAC, 0xBAC2, 0, 0, /* 0xD0 */
- 0, 0xBFA4, 0xDBAB, 0, 0, 0, 0xDBAA, 0xD4C7, /* 0xE0 */
- 0xB2BF, 0, 0, 0xDBAF, 0, 0xB9F9, 0, 0xDBB0, /* 0xE0 */
- 0, 0, 0, 0, 0xB3BB, 0, 0, 0, /* 0xF0 */
- 0xB5A6, 0, 0, 0, 0, 0xB6BC, 0xDBB1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_91[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB6F5, 0, 0xDBB2, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xB1C9, 0, 0, 0, 0, 0xDBB4, 0, /* 0x10 */
- 0, 0, 0xDBB3, 0xDBB5, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0xDBB7, /* 0x20 */
- 0, 0xDBB6, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xDBB8, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xDBB9, 0, 0, 0xDBBA, 0, /* 0x40 */
- 0, 0xD3CF, 0xF4FA, 0xC7F5, 0xD7C3, 0xC5E4, 0xF4FC, 0xF4FD, /* 0x40 */
- 0xF4FB, 0, 0xBEC6, 0, 0, 0, 0, 0xD0EF, /* 0x50 */
- 0, 0, 0xB7D3, 0, 0, 0xD4CD, 0xCCAA, 0, /* 0x50 */
- 0, 0xF5A2, 0xF5A1, 0xBAA8, 0xF4FE, 0xCBD6, 0, 0, /* 0x60 */
- 0, 0xF5A4, 0xC0D2, 0, 0xB3EA, 0, 0xCDAA, 0xF5A5, /* 0x60 */
- 0xF5A3, 0xBDB4, 0xF5A8, 0, 0xF5A9, 0xBDCD, 0xC3B8, 0xBFE1, /* 0x70 */
- 0xCBE1, 0xF5AA, 0, 0, 0, 0xF5A6, 0xF5A7, 0xC4F0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xF5AC, 0, 0xB4BC, /* 0x80 */
- 0, 0xD7ED, 0, 0xB4D7, 0xF5AB, 0xF5AE, 0, 0, /* 0x80 */
- 0xF5AD, 0xF5AF, 0xD0D1, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xC3D1, 0xC8A9, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xF5B0, 0xF5B1, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xF5B2, 0, 0, 0xF5B3, 0xF5B4, 0xF5B5, /* 0xA0 */
- 0, 0, 0, 0, 0xF5B7, 0xF5B6, 0, 0, /* 0xB0 */
- 0, 0, 0xF5B8, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xB2C9, /* 0xC0 */
- 0, 0xD3D4, 0xCACD, 0, 0xC0EF, 0xD6D8, 0xD2B0, 0xC1BF, /* 0xC0 */
- 0, 0xBDF0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xB8AA /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_92[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBCF8, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xF6C6, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xF6C7, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xF6C8 /* 0xC0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_93[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x30 */
- 0xF6C9, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xF6CA, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0xF6CC, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xF6CB, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xF7E9 /* 0xD0 */
- /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_94[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x30 */
- 0xF6CD, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xF6CE, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xEEC4, 0xEEC5, 0xEEC6, /* 0x80 */
- 0xD5EB, 0xB6A4, 0xEEC8, 0xEEC7, 0xEEC9, 0xEECA, 0xC7A5, 0xEECB, /* 0x80 */
- 0xEECC, 0, 0xB7B0, 0xB5F6, 0xEECD, 0xEECF, 0, 0xEECE, /* 0x90 */
- 0, 0xB8C6, 0xEED0, 0xEED1, 0xEED2, 0xB6DB, 0xB3AE, 0xD6D3, /* 0x90 */
- 0xC4C6, 0xB1B5, 0xB8D6, 0xEED3, 0xEED4, 0xD4BF, 0xC7D5, 0xBEFB, /* 0xA0 */
- 0xCED9, 0xB9B3, 0xEED6, 0xEED5, 0xEED8, 0xEED7, 0xC5A5, 0xEED9, /* 0xA0 */
- 0xEEDA, 0xC7AE, 0xEEDB, 0xC7AF, 0xEEDC, 0xB2A7, 0xEEDD, 0xEEDE, /* 0xB0 */
- 0xEEDF, 0xEEE0, 0xEEE1, 0xD7EA, 0xEEE2, 0xEEE3, 0xBCD8, 0xEEE4, /* 0xB0 */
- 0xD3CB, 0xCCFA, 0xB2AC, 0xC1E5, 0xEEE5, 0xC7A6, 0xC3AD, 0, /* 0xC0 */
- 0xEEE6, 0xEEE7, 0xEEE8, 0xEEE9, 0xEEEA, 0xEEEB, 0xEEEC, 0, /* 0xC0 */
- 0xEEED, 0xEEEE, 0xEEEF, 0, 0, 0xEEF0, 0xEEF1, 0xEEF2, /* 0xD0 */
- 0xEEF4, 0xEEF3, 0, 0xEEF5, 0xCDAD, 0xC2C1, 0xEEF6, 0xEEF7, /* 0xD0 */
- 0xEEF8, 0xD5A1, 0xEEF9, 0xCFB3, 0xEEFA, 0xEEFB, 0, 0xEEFC, /* 0xE0 */
- 0xEEFD, 0xEFA1, 0xEEFE, 0xEFA2, 0xB8F5, 0xC3FA, 0xEFA3, 0xEFA4, /* 0xE0 */
- 0xBDC2, 0xD2BF, 0xB2F9, 0xEFA5, 0xEFA6, 0xEFA7, 0xD2F8, 0xEFA8, /* 0xF0 */
- 0xD6FD, 0xEFA9, 0xC6CC, 0, 0xEFAA, 0xEFAB, 0xC1B4, 0xEFAC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_95[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCFFA, 0xCBF8, 0xEFAE, 0xEFAD, 0xB3FA, 0xB9F8, 0xEFAF, 0xEFB0, /* 0x00 */
- 0xD0E2, 0xEFB1, 0xEFB2, 0xB7E6, 0xD0BF, 0xEFB3, 0xEFB4, 0xEFB5, /* 0x00 */
- 0xC8F1, 0xCCE0, 0xEFB6, 0xEFB7, 0xEFB8, 0xEFB9, 0xEFBA, 0xD5E0, /* 0x10 */
- 0xEFBB, 0xB4ED, 0xC3AA, 0xEFBC, 0, 0xEFBD, 0xEFBE, 0xEFBF, /* 0x10 */
- 0, 0xCEFD, 0xEFC0, 0xC2E0, 0xB4B8, 0xD7B6, 0xBDF5, 0, /* 0x20 */
- 0xCFC7, 0xEFC3, 0xEFC1, 0xEFC2, 0xEFC4, 0xB6A7, 0xBCFC, 0xBEE2, /* 0x20 */
- 0xC3CC, 0xEFC5, 0xEFC6, 0, 0xEFC7, 0xEFCF, 0xEFC8, 0xEFC9, /* 0x30 */
- 0xEFCA, 0xC7C2, 0xEFF1, 0xB6CD, 0xEFCB, 0, 0xEFCC, 0xEFCD, /* 0x30 */
- 0xB6C6, 0xC3BE, 0xEFCE, 0, 0xEFD0, 0xEFD1, 0xEFD2, 0xD5F2, /* 0x40 */
- 0, 0xEFD3, 0xC4F7, 0, 0xEFD4, 0xC4F8, 0xEFD5, 0xEFD6, /* 0x40 */
- 0xB8E4, 0xB0F7, 0xEFD7, 0xEFD8, 0xEFD9, 0, 0xEFDA, 0xEFDB, /* 0x50 */
- 0xEFDC, 0xEFDD, 0, 0xEFDE, 0xBEB5, 0xEFE1, 0xEFDF, 0xEFE0, /* 0x50 */
- 0, 0xEFE2, 0xEFE3, 0xC1CD, 0xEFE4, 0xEFE5, 0xEFE6, 0xEFE7, /* 0x60 */
- 0xEFE8, 0xEFE9, 0xEFEA, 0xEFEB, 0xEFEC, 0xC0D8, 0, 0xEFED, /* 0x60 */
- 0xC1AD, 0xEFEE, 0xEFEF, 0xEFF0, 0, 0, 0xCFE2, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xB3A4, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xC3C5, 0xE3C5, 0xC9C1, 0xE3C6, 0, 0xB1D5, 0xCECA, 0xB4B3, /* 0xE0 */
- 0xC8F2, 0xE3C7, 0xCFD0, 0xE3C8, 0xBCE4, 0xE3C9, 0xE3CA, 0xC3C6, /* 0xF0 */
- 0xD5A2, 0xC4D6, 0xB9EB, 0xCEC5, 0xE3CB, 0xC3F6, 0xE3CC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_96[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB7A7, 0xB8F3, 0xBAD2, 0xE3CD, 0xE3CE, 0xD4C4, 0xE3CF, 0, /* 0x00 */
- 0xE3D0, 0xD1CB, 0xE3D1, 0xE3D2, 0xE3D3, 0xE3D4, 0xD1D6, 0xE3D5, /* 0x00 */
- 0xB2FB, 0xC0BB, 0xE3D6, 0, 0xC0AB, 0xE3D7, 0xE3D8, 0xE3D9, /* 0x10 */
- 0, 0xE3DA, 0xE3DB, 0, 0xB8B7, 0xDAE2, 0, 0xB6D3, /* 0x10 */
- 0, 0xDAE4, 0xDAE3, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xDAE6, 0, 0, 0, 0xC8EE, 0, /* 0x20 */
- 0, 0xDAE5, 0xB7C0, 0xD1F4, 0xD2F5, 0xD5F3, 0xBDD7, 0, /* 0x30 */
- 0, 0, 0, 0xD7E8, 0xDAE8, 0xDAE7, 0, 0xB0A2, /* 0x30 */
- 0xCDD3, 0, 0xDAE9, 0, 0xB8BD, 0xBCCA, 0xC2BD, 0xC2A4, /* 0x40 */
- 0xB3C2, 0xDAEA, 0, 0xC2AA, 0xC4B0, 0xBDB5, 0, 0, /* 0x40 */
- 0xCFDE, 0, 0, 0, 0xDAEB, 0xC9C2, 0, 0, /* 0x50 */
- 0, 0, 0, 0xB1DD, 0, 0, 0, 0xDAEC, /* 0x50 */
- 0, 0xB6B8, 0xD4BA, 0, 0xB3FD, 0, 0, 0xDAED, /* 0x60 */
- 0xD4C9, 0xCFD5, 0xC5E3, 0, 0xDAEE, 0, 0, 0, /* 0x60 */
- 0, 0, 0xDAEF, 0, 0xDAF0, 0xC1EA, 0xCCD5, 0xCFDD, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xD3E7, 0xC2A1, 0, /* 0x80 */
- 0xDAF1, 0, 0, 0xCBE5, 0, 0xDAF2, 0, 0xCBE6, /* 0x80 */
- 0xD2FE, 0, 0, 0, 0xB8F4, 0, 0, 0xDAF3, /* 0x90 */
- 0xB0AF, 0xCFB6, 0, 0, 0xD5CF, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xCBED, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xDAF4, 0, 0, 0xE3C4, 0, 0, 0xC1A5, 0, /* 0xB0 */
- 0, 0xF6BF, 0, 0, 0xF6C0, 0xF6C1, 0xC4D1, 0, /* 0xB0 */
- 0xC8B8, 0xD1E3, 0, 0, 0xD0DB, 0xD1C5, 0xBCAF, 0xB9CD, /* 0xC0 */
- 0, 0xEFF4, 0, 0, 0xB4C6, 0xD3BA, 0xF6C2, 0xB3FB, /* 0xC0 */
- 0, 0, 0xF6C3, 0, 0, 0xB5F1, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xF6C5, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xD3EA, 0xF6A7, 0xD1A9, 0, 0, 0, 0, 0xF6A9, /* 0xE0 */
- 0, 0, 0, 0xF6A8, 0, 0, 0xC1E3, 0xC0D7, /* 0xF0 */
- 0, 0xB1A2, 0, 0, 0, 0, 0xCEED /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_97[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD0E8, 0xF6AB, 0, 0, 0xCFF6, 0, 0xF6AA, 0xD5F0, /* 0x00 */
- 0xF6AC, 0xC3B9, 0, 0, 0, 0xBBF4, 0xF6AE, 0xF6AD, /* 0x00 */
- 0, 0, 0, 0xC4DE, 0, 0, 0xC1D8, 0, /* 0x10 */
- 0, 0, 0, 0, 0xCBAA, 0, 0xCFBC, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xF6AF, 0, 0, 0xF6B0, 0, 0, /* 0x20 */
- 0xF6B1, 0, 0xC2B6, 0, 0, 0, 0, 0, /* 0x30 */
- 0xB0D4, 0xC5F9, 0, 0, 0, 0, 0xF6B2, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xC7E0, 0xF6A6, 0, 0, 0xBEB8, 0, /* 0x50 */
- 0, 0xBEB2, 0, 0xB5E5, 0, 0, 0xB7C7, 0, /* 0x50 */
- 0xBFBF, 0xC3D2, 0xC3E6, 0, 0, 0xD8CC, 0, 0, /* 0x60 */
- 0, 0xB8EF, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xBDF9, 0xD1A5, 0, 0xB0D0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xF7B0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xF7B1, 0, 0, /* 0x80 */
- 0, 0, 0, 0xD0AC, 0, 0xB0B0, 0, 0, /* 0x80 */
- 0, 0xF7B2, 0xF7B3, 0, 0xF7B4, 0, 0, 0, /* 0x90 */
- 0xC7CA, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xBECF, 0, 0, 0xF7B7, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xF7B6, 0, 0xB1DE, 0, 0xF7B5, /* 0xA0 */
- 0, 0, 0xF7B8, 0, 0xF7B9, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xCEA4, 0xC8CD, /* 0xE0 */
- 0, 0xBAAB, 0xE8B8, 0xE8B9, 0xE8BA, 0xBEC2, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xD2F4, 0, 0xD4CF, 0xC9D8 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_98[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD2B3, 0xB6A5, 0xC7EA, /* 0x70 */
- 0xF1FC, 0xCFEE, 0xCBB3, 0xD0EB, 0xE7EF, 0xCDE7, 0xB9CB, 0xB6D9, /* 0x70 */
- 0xF1FD, 0xB0E4, 0xCBCC, 0xF1FE, 0xD4A4, 0xC2AD, 0xC1EC, 0xC6C4, /* 0x80 */
- 0xBEB1, 0xF2A1, 0xBCD5, 0, 0xF2A2, 0xF2A3, 0, 0xF2A4, /* 0x80 */
- 0xD2C3, 0xC6B5, 0, 0xCDC7, 0xF2A5, 0, 0xD3B1, 0xBFC5, /* 0x90 */
- 0xCCE2, 0, 0xF2A6, 0xF2A7, 0xD1D5, 0xB6EE, 0xF2A8, 0xF2A9, /* 0x90 */
- 0xB5DF, 0xF2AA, 0xF2AB, 0, 0xB2FC, 0xF2AC, 0xF2AD, 0xC8A7, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xB7E7, 0, /* 0xC0 */
- 0, 0xECA9, 0xECAA, 0xECAB, 0, 0xECAC, 0, 0, /* 0xD0 */
- 0xC6AE, 0xECAD, 0xECAE, 0, 0, 0, 0xB7C9, 0xCAB3, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE2B8, /* 0xE0 */
- 0xF7CF /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_99[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xF7D0, 0, 0, /* 0x00 */
- 0xB2CD, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0xF7D1, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xF7D3, 0xF7D2, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0xE2BB, 0, 0xBCA2, 0, 0xE2BC, /* 0x60 */
- 0xE2BD, 0xE2BE, 0xE2BF, 0xE2C0, 0xE2C1, 0xB7B9, 0xD2FB, 0xBDA4, /* 0x60 */
- 0xCACE, 0xB1A5, 0xCBC7, 0, 0xE2C2, 0xB6FC, 0xC8C4, 0xE2C3, /* 0x70 */
- 0, 0, 0xBDC8, 0, 0xB1FD, 0xE2C4, 0, 0xB6F6, /* 0x70 */
- 0xE2C5, 0xC4D9, 0, 0, 0xE2C6, 0xCFDA, 0xB9DD, 0xE2C7, /* 0x80 */
- 0xC0A1, 0, 0xE2C8, 0xB2F6, 0, 0xE2C9, 0, 0xC1F3, /* 0x80 */
- 0xE2CA, 0xE2CB, 0xC2F8, 0xE2CC, 0xE2CD, 0xE2CE, 0xCAD7, 0xD8B8, /* 0x90 */
- 0xD9E5, 0xCFE3, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xF0A5, 0, 0, /* 0xA0 */
- 0xDCB0 /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_9A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x60 */
- 0xC2ED, 0xD4A6, 0xCDD4, 0xD1B1, /* 0x60 */
- 0xB3DB, 0xC7FD, 0, 0xB2B5, 0xC2BF, 0xE6E0, 0xCABB, 0xE6E1, /* 0x70 */
- 0xE6E2, 0xBED4, 0xE6E3, 0xD7A4, 0xCDD5, 0xE6E5, 0xBCDD, 0xE6E4, /* 0x70 */
- 0xE6E6, 0xE6E7, 0xC2EE, 0, 0xBDBE, 0xE6E8, 0xC2E6, 0xBAA7, /* 0x80 */
- 0xE6E9, 0, 0xE6EA, 0xB3D2, 0xD1E9, 0, 0, 0xBFA5, /* 0x80 */
- 0xE6EB, 0xC6EF, 0xE6EC, 0xE6ED, 0, 0, 0xE6EE, 0xC6AD, /* 0x90 */
- 0xE6EF, 0, 0xC9A7, 0xE6F0, 0xE6F1, 0xE6F2, 0xE5B9, 0xE6F3, /* 0x90 */
- 0xE6F4, 0xC2E2, 0xE6F5, 0xE6F6, 0xD6E8, 0xE6F7, 0, 0xE6F8, /* 0xA0 */
- 0xB9C7, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xF7BB, 0xF7BA, 0, 0, 0, 0, 0xF7BE, 0xF7BC, /* 0xB0 */
- 0xBAA1, 0, 0xF7BF, 0, 0xF7C0, 0, 0, 0, /* 0xB0 */
- 0xF7C2, 0xF7C1, 0xF7C4, 0, 0, 0xF7C3, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xF7C5, 0xF7C6, 0, 0, 0, /* 0xC0 */
- 0, 0xF7C7, 0, 0xCBE8, 0, 0, 0, 0, /* 0xD0 */
- 0xB8DF, 0, 0, 0, 0, 0, 0, 0xF7D4, /* 0xD0 */
- 0, 0xF7D5, 0, 0, 0, 0, 0xF7D6, 0, /* 0xE0 */
- 0, 0, 0, 0xF7D8, 0, 0xF7DA, 0, 0xF7D7, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xF7DB, 0, 0xF7D9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_9B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD7D7, 0, 0, 0, 0, /* 0x00 */
- 0xF7DC, 0, 0, 0, 0, 0, 0, 0xF7DD, /* 0x00 */
- 0, 0, 0, 0xF7DE, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xF7DF, /* 0x10 */
- 0, 0, 0, 0xF7E0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0xDBCB, /* 0x20 */
- 0, 0, 0xD8AA, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xE5F7, 0xB9ED, 0, 0, 0, /* 0x30 */
- 0, 0xBFFD, 0xBBEA, 0xF7C9, 0xC6C7, 0xF7C8, 0, 0xF7CA, /* 0x40 */
- 0xF7CC, 0xF7CB, 0, 0, 0, 0xF7CD, 0, 0xCEBA, /* 0x40 */
- 0, 0xF7CE, 0, 0, 0xC4A7 /* 0x50 */
- /* 0x50 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_9C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x70 */
- 0xD3E3, 0, 0, 0xF6CF, /* 0x70 */
- 0, 0xC2B3, 0xF6D0, 0, 0, 0xF6D1, 0xF6D2, 0xF6D3, /* 0x80 */
- 0xF6D4, 0, 0, 0xF6D6, 0, 0xB1AB, 0xF6D7, 0, /* 0x80 */
- 0xF6D8, 0xF6D9, 0xF6DA, 0, 0xF6DB, 0xF6DC, 0, 0, /* 0x90 */
- 0, 0, 0xF6DD, 0xF6DE, 0xCFCA, 0, 0xF6DF, 0xF6E0, /* 0x90 */
- 0xF6E1, 0xF6E2, 0xF6E3, 0xF6E4, 0xC0F0, 0xF6E5, 0xF6E6, 0xF6E7, /* 0xA0 */
- 0xF6E8, 0xF6E9, 0, 0xF6EA, 0, 0xF6EB, 0xF6EC, 0, /* 0xA0 */
- 0xF6ED, 0xF6EE, 0xF6EF, 0xF6F0, 0xF6F1, 0xF6F2, 0xF6F3, 0xF6F4, /* 0xB0 */
- 0xBEA8, 0, 0xF6F5, 0xF6F6, 0xF6F7, 0xF6F8, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xC8FA, 0xF6F9, 0xF6FA, 0xF6FB, 0xF6FC, /* 0xC0 */
- 0, 0, 0xF6FD, 0xF6FE, 0xF7A1, 0xF7A2, 0xF7A3, 0xF7A4, /* 0xC0 */
- 0xF7A5, 0, 0, 0xF7A6, 0xF7A7, 0xF7A8, 0xB1EE, 0xF7A9, /* 0xD0 */
- 0xF7AA, 0xF7AB, 0, 0, 0xF7AC, 0xF7AD, 0xC1DB, 0xF7AE, /* 0xD0 */
- 0, 0, 0xF7AF /* 0xE0 */
- /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_9E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x10 */
- 0xC4F1, /* 0x10 */
- 0xF0AF, 0xBCA6, 0xF0B0, 0xC3F9, 0, 0xC5B8, 0xD1BB, 0, /* 0x20 */
- 0xF0B1, 0xF0B2, 0xF0B3, 0xF0B4, 0xF0B5, 0xD1BC, 0, 0xD1EC, /* 0x20 */
- 0, 0xF0B7, 0xF0B6, 0xD4A7, 0, 0xCDD2, 0xF0B8, 0xF0BA, /* 0x30 */
- 0xF0B9, 0xF0BB, 0xF0BC, 0, 0, 0xB8EB, 0xF0BD, 0xBAE8, /* 0x30 */
- 0, 0xF0BE, 0xF0BF, 0xBEE9, 0xF0C0, 0xB6EC, 0xF0C1, 0xF0C2, /* 0x40 */
- 0xF0C3, 0xF0C4, 0xC8B5, 0xF0C5, 0xF0C6, 0, 0xF0C7, 0xC5F4, /* 0x40 */
- 0, 0xF0C8, 0, 0, 0, 0xF0C9, 0, 0xF0CA, /* 0x50 */
- 0xF7BD, 0, 0xF0CB, 0xF0CC, 0xF0CD, 0, 0xF0CE, 0, /* 0x50 */
- 0, 0, 0, 0xF0CF, 0xBAD7, 0, 0xF0D0, 0xF0D1, /* 0x60 */
- 0xF0D2, 0xF0D3, 0xF0D4, 0xF0D5, 0xF0D6, 0xF0D8, 0, 0, /* 0x60 */
- 0xD3A5, 0xF0D7, 0, 0xF0D9, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xF5BA, 0xC2B9, /* 0x70 */
- 0, 0, 0xF7E4, 0, 0, 0, 0, 0xF7E5, /* 0x80 */
- 0xF7E6, 0, 0, 0xF7E7, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xF7E8, 0xC2B4, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xF7EA, 0, 0xF7EB, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0xC2F3, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xF4F0, 0, 0, 0, /* 0xB0 */
- 0xF4EF, 0, 0, 0xC2E9, 0, 0xF7E1, 0xF7E2, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xBBC6, 0, 0, 0, /* 0xC0 */
- 0, 0xD9E4, 0, 0, 0, 0xCAF2, 0xC0E8, 0xF0A4, /* 0xC0 */
- 0, 0xBADA, 0, 0, 0xC7AD, 0, 0, 0, /* 0xD0 */
- 0xC4AC, 0, 0, 0xF7EC, 0xF7ED, 0xF7EE, 0, 0xF7F0, /* 0xD0 */
- 0xF7EF, 0, 0xF7F1, 0, 0, 0xF7F4, 0, 0xF7F3, /* 0xE0 */
- 0, 0xF7F2, 0xF7F5, 0, 0, 0, 0, 0xF7F6, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xEDE9, 0, 0xEDEA, 0xEDEB, 0, 0xF6BC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GB_9F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xF6BD, 0, 0xF6BE, 0xB6A6, 0, /* 0x00 */
- 0xD8BE, 0, 0, 0xB9C4, 0, 0, 0, 0xD8BB, /* 0x10 */
- 0, 0xDCB1, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xCAF3, 0, 0xF7F7, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xF7F8, 0, 0, 0xF7F9, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0xF7FB, /* 0x30 */
- 0, 0xF7FA, 0, 0xB1C7, 0, 0xF7FC, 0xF7FD, 0, /* 0x30 */
- 0, 0, 0, 0, 0xF7FE, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xC6EB, 0xECB4, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xB3DD, /* 0x70 */
- 0xF6B3, 0, 0, 0xF6B4, 0xC1E4, 0xF6B5, 0xF6B6, 0xF6B7, /* 0x80 */
- 0xF6B8, 0xF6B9, 0xF6BA, 0xC8A3, 0xF6BB, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xC1FA, 0xB9A8, 0xEDE8, 0, 0, 0, 0xB9EA, /* 0x90 */
- 0xD9DF /* 0xA0 */
- /* 0xA0 */
-};
-
diff --git a/sal/textenc/tcvtscn5.tab b/sal/textenc/tcvtscn5.tab
deleted file mode 100644
index 15e25d579..000000000
--- a/sal/textenc/tcvtscn5.tab
+++ /dev/null
@@ -1,3235 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the UniCode to DBCS tables for the following */
-/* chinese simplified (China) charsets: */
-/* GBT (GB12345) */
-
-/* Some tables are in ctabscn2.cxx, because these tables are shared with */
-/* GB or GBK. */
-
-/* ======================================================================= */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_4E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD2BB, 0xB6A1, 0, 0xC6DF, 0, 0, 0, 0xF8F1, /* 0x00 */
- 0xD5C9, 0xC8FD, 0xC9CF, 0xCFC2, 0xD8A2, 0xB2BB, 0, 0, /* 0x00 */
- 0xD8A4, 0xF8A9, 0, 0, 0xC7D2, 0xD8A7, 0xCAC0, 0, /* 0x10 */
- 0xC7F0, 0xB1FB, 0, 0, 0, 0, 0xD8A9, 0, /* 0x10 */
- 0, 0, 0xB6AA, 0, 0, 0, 0, 0, /* 0x20 */
- 0xD8AD, 0, 0, 0xD1BE, 0xE3DC, 0xD6D0, 0, 0, /* 0x20 */
- 0xF8B3, 0, 0xB4AE, 0, 0, 0, 0xD8BC, 0, /* 0x30 */
- 0xCDE8, 0xB5A4, 0, 0xD6F7, 0, 0, 0, 0xD8AF, /* 0x30 */
- 0, 0, 0, 0xC4CB, 0, 0xBEC3, 0, 0xD8B1, /* 0x40 */
- 0xF7E1, 0, 0, 0xD6AE, 0, 0xD5A7, 0xBAF5, 0xB7A6, /* 0x40 */
- 0, 0, 0xC6B9, 0xC5D2, 0, 0, 0xB9D4, 0, /* 0x50 */
- 0xB3CB, 0xD2D2, 0, 0, 0xD8BF, 0xBEC5, 0xC6F2, 0xD2B2, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xD8C0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xC8E9, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xC7AC, 0, /* 0x70 */
- 0, 0, 0xC2D2, 0, 0, 0, 0xC1CB, 0, /* 0x80 */
- 0xD3E8, 0, 0, 0xCAC2, 0xB6FE, 0xD8A1, 0xD3DA, 0, /* 0x80 */
- 0, 0xF8FD, 0xBBA5, 0xD8C1, 0xCEE5, 0xBEAE, 0, 0, /* 0x90 */
- 0xD8A8, 0, 0, 0xD0A9, 0, 0, 0xD1C7, 0xD8BD, /* 0x90 */
- 0xD9EF, 0xCDF6, 0xBFBA, 0, 0xBDBB, 0xBAA5, 0xD2E0, 0, /* 0xA0 */
- 0xBAE0, 0, 0, 0xCFED, 0xBEA9, 0xCDA4, 0xC1C1, 0, /* 0xA0 */
- 0, 0, 0, 0xD9F1, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xC8CB, 0xD8E9, 0, 0, 0, 0, /* 0xB0 */
- 0xCAB2, 0xC8CA, 0xD8EC, 0xD8EA, 0xD8C6, 0, 0xF8DF, 0xB3F0, /* 0xC0 */
- 0, 0xD8EB, 0xBDF1, 0xBDE9, 0, 0xC8D4, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xD7D0, 0xCACB, 0xCBFB, 0xD5CC, /* 0xD0 */
- 0xB8B6, 0xCFC9, 0, 0, 0, 0xD9DA, 0xD8F0, 0xC7AA, /* 0xD0 */
- 0, 0xD8EE, 0, 0xB4FA, 0xC1EE, 0xD2D4, 0, 0, /* 0xE0 */
- 0xD8ED, 0, 0, 0xD8EF, 0, 0, 0, 0, /* 0xE0 */
- 0xD1F6, 0, 0xD6D9, 0xD8F2, 0, 0xD8F5, 0xBCFE, 0xF8C2, /* 0xF0 */
- 0, 0, 0, 0xC8CE, 0, 0xB7DD, 0, 0xB7C2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_4F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC6F3, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0xD8F8, 0xD2C1, 0, 0, 0xCEE9, 0xBCBF, 0xB7FC, /* 0x00 */
- 0xB7A5, 0xD0DD, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xBBEF, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0xD8F3, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0xB2AE, /* 0x20 */
- 0xB9C0, 0, 0xD9A3, 0, 0xB0E9, 0, 0xC1E6, 0, /* 0x30 */
- 0xC9EC, 0, 0xCBC5, 0, 0xCBC6, 0xD9A4, 0, 0, /* 0x30 */
- 0, 0, 0, 0xB5E8, 0, 0, 0xB5AB, 0xD8F9, /* 0x40 */
- 0, 0, 0, 0, 0, 0xCEBB, 0xB5CD, 0xD7A1, /* 0x40 */
- 0xD7F4, 0xD3D3, 0, 0, 0, 0xBACE, 0, 0xD9A2, /* 0x50 */
- 0xD9DC, 0xE2C5, 0xD8FD, 0xB7F0, 0xD7F7, 0xD8FE, 0xD8FA, 0xD9A1, /* 0x50 */
- 0xC4E3, 0, 0, 0, 0xD8F4, 0, 0, 0xD8FB, /* 0x60 */
- 0, 0xC5E5, 0, 0, 0xC0D0, 0, 0, 0xD1F0, /* 0x60 */
- 0xB0DB, 0, 0, 0xBCD1, 0xD9A6, 0, 0xD9A5, 0, /* 0x70 */
- 0, 0, 0, 0xD9AC, 0xD9AE, 0, 0xD9AB, 0xCAB9, /* 0x70 */
- 0, 0, 0, 0xD9A9, 0xD6B6, 0, 0xC0B4, 0, /* 0x80 */
- 0xB3DE, 0xD9A8, 0, 0xC0FD, 0, 0xCACC, 0, 0xD9AA, /* 0x80 */
- 0, 0xD9A7, 0, 0, 0xD9B0, 0, 0xC2D8, 0xB6B1, /* 0x90 */
- 0, 0, 0, 0xB9A9, 0, 0xD2C0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xC2C2, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xCEEA, 0xBAEE, /* 0xA0 */
- 0, 0, 0, 0, 0, 0xC7D6, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xB1E3, /* 0xB0 */
- 0, 0, 0xF8F2, 0xB4D9, 0xB6ED, 0xD9B4, 0, 0, /* 0xC0 */
- 0, 0, 0xBFA1, 0, 0, 0, 0xD9DE, 0xC7CE, /* 0xC0 */
- 0xC0FE, 0xD9B8, 0, 0, 0, 0, 0, 0xCBD7, /* 0xD0 */
- 0xB7FD, 0, 0xD9B5, 0, 0xD9B7, 0xB1A3, 0xD3E1, 0xD9B9, /* 0xD0 */
- 0xCFC0, 0xD0C5, 0, 0xD9B6, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xD0DE, 0xB8A9, /* 0xE0 */
- 0, 0xBEE3, 0, 0xD9BD, 0, 0, 0, 0, /* 0xF0 */
- 0xD9BA, 0, 0xB0B3, 0, 0, 0, 0xD9C2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_50[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD8F6, 0, 0, 0, 0, 0, 0xC1A9, 0, /* 0x00 */
- 0, 0xB2D6, 0, 0xB8F6, 0xD9C4, 0xB1B6, 0, 0xD9BF, /* 0x00 */
- 0, 0xC3C7, 0xB5B9, 0, 0xBEF3, 0, 0, 0, /* 0x10 */
- 0xCCC8, 0xBAF2, 0xD2D0, 0, 0xD9C3, 0, 0, 0xBDE8, /* 0x10 */
- 0, 0xB3AB, 0, 0, 0, 0xD9C5, 0xBEEB, 0, /* 0x20 */
- 0xD9C6, 0xD9BB, 0xC4DF, 0xC2D7, 0xD9BE, 0xD9C1, 0xD9C0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0xD6B5, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xD9C8, 0, 0, 0, 0xBCD9, /* 0x40 */
- 0xD9CA, 0xCEB0, 0, 0, 0xD9BC, 0, 0xD9CB, 0xC6AB, /* 0x40 */
- 0, 0, 0, 0, 0, 0xD9C9, 0, 0, /* 0x50 */
- 0, 0, 0xD7F6, 0, 0xCDA3, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xBDA1, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xD9CC, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xB2E0, 0xD5EC, 0xC5BC, 0xCDB5, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xBFFE, 0, 0, 0, 0, 0xB8B5, 0, 0, /* 0x80 */
- 0xC0FC, 0, 0, 0, 0, 0xB0F8, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xD8F7, 0, /* 0x90 */
- 0xC9A1, 0xB1B8, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xF8C1, 0xB4F6, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xB4DF, 0xD3B6, 0, 0, /* 0xA0 */
- 0, 0, 0xB0C1, 0xB4AB, 0xD8F1, 0xD5AE, 0, 0xC9CB, /* 0xB0 */
- 0, 0, 0xD9D1, 0xC9B5, 0, 0, 0xC7E3, 0, /* 0xB0 */
- 0, 0, 0xD9CD, 0, 0, 0xBDF6, 0, 0, /* 0xC0 */
- 0, 0xD9DD, 0, 0, 0, 0, 0, 0xCFF1, /* 0xC0 */
- 0, 0xC7C8, 0, 0, 0, 0xC6CD, 0xD9D2, 0, /* 0xD0 */
- 0, 0, 0xC1C5, 0, 0, 0, 0xCEB1, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xBDC4, 0xD9D6, 0xC9AE, /* 0xE0 */
- 0xD9C7, 0, 0, 0, 0xD9D5, 0xD9D4, 0xD9D7, 0, /* 0xE0 */
- 0, 0, 0, 0xCBDB, 0, 0xBDA9, 0, 0, /* 0xF0 */
- 0, 0xBCDB, 0, 0xC6A7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_51[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD2C7, 0, 0xD9AF, 0, 0xD2DA, 0, 0xD9D3, 0xD9D8, /* 0x00 */
- 0xBFEB, 0xBCF3, 0, 0xD9D9, 0, 0, 0, 0, /* 0x00 */
- 0xD9CF, 0, 0xC8E5, 0, 0xD9B1, 0xD9AD, 0, 0, /* 0x10 */
- 0xF8C5, 0, 0, 0, 0, 0, 0, 0xB3A5, /* 0x10 */
- 0, 0xC0DC, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xD3C5, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xB4A2, 0, 0, 0, 0, 0xD9B3, /* 0x30 */
- 0, 0, 0xD9D0, 0xD9CE, 0xD9B2, 0, 0, 0, /* 0x30 */
- 0xD8A3, 0xD4CA, 0, 0xD4AA, 0xD0D6, 0xB3E4, 0xD5D7, 0, /* 0x40 */
- 0xCFC8, 0xB9E2, 0, 0xBFCB, 0, 0xC3E2, 0, 0, /* 0x40 */
- 0, 0xB6D2, 0xB6F9, 0, 0xCDC3, 0xD9EE, 0xD9F0, 0, /* 0x50 */
- 0, 0, 0xF8AC, 0, 0xB6B5, 0, 0, 0, /* 0x50 */
- 0, 0, 0xBEA4, 0, 0, 0xC8EB, 0, 0, /* 0x60 */
- 0xC8AB, 0xC1BD, 0, 0xB0CB, 0xB9AB, 0xC1F9, 0xD9E2, 0, /* 0x60 */
- 0, 0xB9B2, 0, 0, 0, 0xB1F8, 0xC6E4, 0xBEDF, /* 0x70 */
- 0xB5E4, 0xD7C8, 0, 0, 0xBCE6, 0, 0, 0, /* 0x70 */
- 0xBCBD, 0, 0xD8E7, 0, 0, 0xC4DA, 0, 0, /* 0x80 */
- 0, 0xC8BD, 0, 0, 0xB2E1, 0xD4D9, 0, 0, /* 0x80 */
- 0, 0, 0xC3B0, 0, 0, 0xC3E1, 0xDAA2, 0xC8DF, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xB9DA, 0, 0xDAA3, 0, 0xD4A9, 0xDAA4, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xD9FB, 0xB6AC, 0, 0, 0, /* 0xA0 */
- 0xB1F9, 0xD9FC, 0xF8A8, 0xBEF6, 0, 0xBFF6, 0xD2B1, 0xC0E4, /* 0xB0 */
- 0, 0, 0, 0, 0xD9FE, 0xD9FD, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xC6E0, 0, 0xF9A9, 0xDAA1, /* 0xC0 */
- 0xBEBB, 0xC1B9, 0, 0xB5F2, 0xC1E8, 0xB6B3, 0, 0xBCF5, /* 0xC0 */
- 0, 0xB4D5, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xC1DD, 0, 0xC4FD, 0, 0, /* 0xD0 */
- 0xF8C0, 0xB7B2, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xF8DD, 0, 0, /* 0xE0 */
- 0xBBCB, 0xBFAD, 0, 0xB5CA, 0, 0xDBC9, 0xD0D7, 0, /* 0xF0 */
- 0xCDB9, 0xB0BC, 0xB3F6, 0, 0xDBCA, 0xBAAF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_52[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB5B6, 0xB5F3, 0xD8D6, 0xC8D0, 0, 0, 0xB7D6, 0xC7D0, /* 0x00 */
- 0xD8D7, 0, 0xBFAF, 0, 0, 0, 0xD8D8, 0, /* 0x00 */
- 0, 0xD0CC, 0xF8BB, 0, 0, 0, 0xEBBE, 0xC1D0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xB3F5, 0, 0, /* 0x10 */
- 0xC9BE, 0, 0, 0, 0xC5D0, 0, 0, 0, /* 0x20 */
- 0xC5D9, 0xC0FB, 0, 0xB1F0, 0, 0, 0xB9CE, 0, /* 0x20 */
- 0xB5BD, 0, 0, 0xD8DA, 0, 0, 0xD6C6, 0xCBA2, /* 0x30 */
- 0xC8AF, 0xC9B2, 0xB4CC, 0xBFCC, 0, 0, 0, 0, /* 0x30 */
- 0, 0xB6E7, 0, 0xCCEA, 0xD8D9, 0, 0, 0xD4F2, /* 0x40 */
- 0, 0, 0xCFF7, 0xF8C8, 0xD8DD, 0xC7B0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xCCDE, 0, 0xC6CA, 0, /* 0x50 */
- 0, 0, 0, 0xB8D5, 0xD8E0, 0, 0xD8DE, 0, /* 0x50 */
- 0, 0xD8DF, 0, 0, 0, 0xB0FE, 0, 0, /* 0x60 */
- 0, 0xCAA3, 0xBCF4, 0, 0, 0, 0xB9D0, 0xB8B1, /* 0x60 */
- 0, 0, 0xB8EE, 0, 0xD8DC, 0xB4B4, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xD8E2, 0, 0xBDCB, /* 0x70 */
- 0, 0xD8E4, 0xD8E3, 0xBBAE, 0, 0, 0, 0xBEE7, /* 0x80 */
- 0xC5FC, 0xC1F5, 0xB9F4, 0, 0xD8DB, 0xBDA3, 0, 0, /* 0x80 */
- 0xD8E5, 0xBCC1, 0, 0xD8E6, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xC1A6, 0, 0, 0, 0xB9A6, /* 0x90 */
- 0xBCD3, 0, 0, 0xC1D3, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xD6FA, 0xC5AC, 0xBDD9, 0xDBBE, 0xDBBF, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xDBC0, 0, /* 0xB0 */
- 0, 0xBEA2, 0, 0xB2AA, 0, 0, 0, 0xD3C2, /* 0xC0 */
- 0, 0xC3E3, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xDBC2, 0, 0xC0D5, 0, 0, 0xB6AF, 0xDBC3, 0, /* 0xD0 */
- 0xBFB1, 0xCEF1, 0, 0xD1AB, 0, 0xCAA4, 0xC0CD, 0xC4BC, /* 0xD0 */
- 0, 0, 0xCAC6, 0, 0xC7DA, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xDBC4, 0xDBBD, 0, 0, 0, 0xC0F8, 0, 0, /* 0xF0 */
- 0xC8B0, 0xD9E8, 0xC9D7, 0, 0, 0, 0xB9B4, 0xCEF0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_53[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD4C8, 0, 0, 0, 0, 0xB0FC, 0xB4D2, 0, /* 0x00 */
- 0xD0D9, 0, 0, 0, 0, 0xD9E9, 0, 0xDECB, /* 0x00 */
- 0xD9EB, 0, 0, 0, 0, 0xD8B0, 0xBBAF, 0xB1B1, /* 0x10 */
- 0, 0xB3D7, 0xD8CE, 0, 0, 0xD4D1, 0, 0, /* 0x10 */
- 0xBDB3, 0xBFEF, 0, 0xCFBB, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xB7CB, 0, 0, 0xD8D0, 0, 0xBBE3, /* 0x20 */
- 0, 0xD8D1, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xC6A5, 0, 0, 0, 0, 0xD8D2, 0xC4E4, /* 0x30 */
- 0xC7F8, 0xCAAE, 0, 0xC7A7, 0, 0xD8A6, 0, 0xC9FD, /* 0x40 */
- 0xCEE7, 0xBBDC, 0xB0EB, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xB1B0, 0xD7E4, 0xD7BF, 0xD0AD, 0, 0, 0xC4CF, /* 0x50 */
- 0, 0, 0xB2A9, 0, 0xB2B7, 0, 0xB1E5, 0xDFB2, /* 0x50 */
- 0xD5BC, 0xBFA8, 0, 0xD8D5, 0, 0, 0xD8D4, 0xCED4, /* 0x60 */
- 0, 0xDAE0, 0, 0, 0, 0, 0xD8B4, 0xC3AE, /* 0x60 */
- 0xD3A1, 0xCEA3, 0, 0xBCB4, 0xC8B4, 0xC2D1, 0, 0xBEED, /* 0x70 */
- 0xD0B6, 0, 0xDAE1, 0, 0, 0, 0, 0xC7E4, /* 0x70 */
- 0, 0, 0xF8A7, 0, 0xB6F2, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xC0E5, 0xD8C7, 0xBAF1, 0, 0, 0xD8C8, 0, 0xD4AD, /* 0x90 */
- 0xB2DE, 0, 0xCFE1, 0, 0, 0xD8CA, 0xCFC3, 0, /* 0xA0 */
- 0xB3F8, 0xBEC7, 0, 0, 0, 0xD1E1, 0xD8CB, 0, /* 0xA0 */
- 0, 0, 0xC0F7, 0, 0xD8C9, 0, 0xDBCC, 0, /* 0xB0 */
- 0, 0, 0, 0xC8A5, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xC8FE, 0, 0xB2CE, 0, 0, 0, 0, /* 0xC0 */
- 0xD3D6, 0xB2E6, 0xBCB0, 0xD3D1, 0, 0xB7B4, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xCAE5, 0, 0xC8A1, 0xCADC, /* 0xD0 */
- 0, 0xD0F0, 0, 0xC5D1, 0, 0, 0, 0xDBC5, /* 0xD0 */
- 0, 0, 0xB4D4, 0xBFDA, 0xB9C5, 0xBEE4, 0xC1ED, 0, /* 0xE0 */
- 0xDFB6, 0xDFB5, 0xF9A3, 0xBDD0, 0xD5D9, 0xB0C8, 0xB6A3, 0xBFC9, /* 0xE0 */
- 0xF8EB, 0xDFB3, 0xCAB7, 0xD3D2, 0, 0xD8CF, 0xF8F8, 0, /* 0xF0 */
- 0xCBBE, 0, 0, 0xDFB7, 0xB5F0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_54[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD3F5, 0, 0xB3D4, 0xB8F7, 0, 0xDFBA, 0, /* 0x00 */
- 0xBACF, 0xBCAA, 0xB5F5, 0, 0xCDAC, 0xC3FB, 0xE1E1, 0xC0F4, /* 0x00 */
- 0xCDC2, 0xCFF2, 0xDFB8, 0, 0, 0xC2C0, 0xDFB9, 0, /* 0x10 */
- 0, 0, 0, 0xBEFD, 0, 0xC1DF, 0xCDCC, 0xD2F7, /* 0x10 */
- 0xB7CD, 0xDFC1, 0, 0xDFC4, 0, 0, 0xB7F1, 0xB0C9, /* 0x20 */
- 0, 0xB7D4, 0, 0xBAAC, 0, 0xBFD4, 0xCBB1, 0, /* 0x20 */
- 0, 0xD6A8, 0xDFC5, 0, 0xCEE2, 0xB3B3, 0, 0, /* 0x30 */
- 0xCEFC, 0xB4B5, 0, 0xCEC7, 0xBAF0, 0, 0xCEE1, 0, /* 0x30 */
- 0xD1BD, 0, 0, 0xDFC0, 0, 0, 0xB4F4, 0, /* 0x40 */
- 0xB3CA, 0, 0xB8E6, 0xDFBB, 0, 0, 0, 0, /* 0x40 */
- 0xC4C5, 0, 0, 0, 0xDFBE, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0xC4D8, 0, 0xDFCA, 0, 0xDFCF, 0, /* 0x60 */
- 0xD6DC, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xDFC9, 0xDFDA, 0xCEB6, 0, 0xBAC7, 0xDFCE, 0xDFC8, /* 0x70 */
- 0xC5DE, 0, 0, 0xC9EB, 0xBAF4, 0xC3FC, 0, 0, /* 0x70 */
- 0xBED7, 0, 0xDFC6, 0, 0xDFCD, 0, 0xC5D8, 0, /* 0x80 */
- 0, 0, 0, 0xD5A6, 0xBACD, 0, 0xBECC, 0xD3BD, /* 0x80 */
- 0xB8C0, 0, 0xD6E4, 0, 0xDFC7, 0xB9BE, 0xBFA7, 0, /* 0x90 */
- 0, 0, 0xDFCB, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xDFDB, 0xDFE5, 0, 0xDFD7, 0xDFD6, /* 0xA0 */
- 0xD7C9, 0xDFE3, 0xDFE4, 0xE5EB, 0xD2A7, 0xDFD2, 0, 0xBFA9, /* 0xA0 */
- 0, 0xD4DB, 0, 0xBFC8, 0xDFD4, 0, 0, 0, /* 0xB0 */
- 0xCFCC, 0, 0, 0xDFDD, 0xDFC3, 0xD1CA, 0, 0xDFDE, /* 0xB0 */
- 0xB0A7, 0xC6B7, 0xDFD3, 0, 0xBAE5, 0, 0xB6DF, 0xCDDB, /* 0xC0 */
- 0xB9FE, 0xD4D5, 0, 0, 0xDFDF, 0, 0xB0A5, 0xDFE7, /* 0xC0 */
- 0xDFD1, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xDFE1, 0, 0, 0, 0xDFE8, 0, /* 0xD0 */
- 0, 0xD4B1, 0, 0, 0, 0xB8E7, 0xC5B6, 0xDFEA, /* 0xE0 */
- 0xC9DA, 0xC1A8, 0xC4C4, 0, 0, 0xBFDE, 0xCFF8, 0, /* 0xE0 */
- 0, 0, 0xD5DC, 0xDFEE, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0xB2B8, 0, 0xBADF, 0xDFEC, 0, 0xDBC1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_55[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD1E4, 0, 0, 0xDFC2, 0, 0xCBF4, 0xB4BD, /* 0x00 */
- 0, 0xB0A6, 0, 0, 0, 0, 0, 0xDFF1, /* 0x00 */
- 0xCCC6, 0xDFF2, 0, 0, 0xDFED, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xDFF0, 0, 0, 0, 0xDFF3, /* 0x20 */
- 0, 0, 0xDFF4, 0, 0xBBA3, 0, 0xCADB, 0xCEA8, /* 0x20 */
- 0xE0A7, 0xB3AA, 0, 0xE0A6, 0, 0, 0, 0xE0A1, /* 0x30 */
- 0, 0, 0, 0, 0xDFFE, 0, 0xCDD9, 0xDFFC, /* 0x30 */
- 0, 0xDFFA, 0, 0xBFD0, 0xD7C4, 0, 0xC9CC, 0, /* 0x40 */
- 0, 0xDFF8, 0xB0A1, 0, 0, 0, 0, 0xCECA, /* 0x40 */
- 0xDFFD, 0, 0, 0xC6F4, 0, 0xDFFB, 0xE0A2, 0, /* 0x50 */
- 0, 0, 0, 0, 0xE0A8, 0, 0xD1C6, 0, /* 0x50 */
- 0, 0xB7C8, 0, 0, 0xC6A1, 0xC9B6, 0xC0B2, 0, /* 0x60 */
- 0, 0, 0xC5BE, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xE0A3, 0xE0A4, 0xE0A5, /* 0x70 */
- 0, 0, 0, 0xE0B4, 0xCCE4, 0, 0xE0B1, 0, /* 0x70 */
- 0xBFA6, 0xE0AF, 0xCEB9, 0xE0AB, 0xC9C6, 0, 0, 0xC0AE, /* 0x80 */
- 0xE0AE, 0xBAED, 0xBAB0, 0xE0A9, 0, 0, 0, 0xDFF6, /* 0x80 */
- 0, 0xE0B3, 0, 0, 0xE0B8, 0, 0, 0, /* 0x90 */
- 0xB4AD, 0xE0B9, 0xBBBD, 0, 0xCFB2, 0xBAC8, 0, 0xE0B0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xD0FA, /* 0xA0 */
- 0, 0, 0xC9A5, 0, 0xC7C7, 0, 0xB5A5, 0, /* 0xA0 */
- 0, 0xE0AC, 0xD3B4, 0xD4FB, 0, 0xDFF7, 0, 0, /* 0xB0 */
- 0, 0xE0AD, 0, 0xD3F7, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xE0C4, 0xD0E1, 0xC7BA, 0xD8C4, /* 0xC0 */
- 0, 0xE0BC, 0, 0, 0xE0C9, 0xE0CA, 0xC2F0, 0, /* 0xC0 */
- 0, 0xE0BE, 0xE0AA, 0xC9A4, 0xE0C1, 0, 0xE0B2, 0, /* 0xD0 */
- 0, 0, 0xCED8, 0, 0xCAC8, 0xE0C3, 0, 0xE0B5, /* 0xD0 */
- 0, 0xCECB, 0, 0xCBC3, 0xE0CD, 0xE0C6, 0xE0C2, 0, /* 0xE0 */
- 0xE0CB, 0xDFEF, 0xE0BA, 0, 0xE0C0, 0, 0, 0xE0C5, /* 0xE0 */
- 0, 0, 0xE0C7, 0, 0, 0xE0CC, 0xDFD9, 0xE0BB, /* 0xF0 */
- 0, 0, 0, 0, 0, 0xCBD4, 0xE0D5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_56[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE0D6, 0xE0D2, 0, 0, 0, 0, 0xCCBE, 0, /* 0x00 */
- 0xE0D0, 0xBCCE, 0, 0, 0xE0D1, 0xE0B6, 0xB8C2, 0xD8C5, /* 0x00 */
- 0, 0, 0, 0, 0xC5BB, 0, 0xDFF5, 0xB3A2, /* 0x10 */
- 0xD0EA, 0, 0, 0xC2EF, 0xDFE9, 0, 0xE0CF, 0xE0BD, /* 0x10 */
- 0, 0, 0, 0xE0D4, 0, 0, 0, 0xE0D7, /* 0x20 */
- 0, 0xBBA9, 0, 0, 0xE0DC, 0xE0D8, 0xDFEB, 0xD0A5, /* 0x20 */
- 0xDFB4, 0, 0xB3B0, 0, 0xD7EC, 0xDFD8, 0xCBBB, 0, /* 0x30 */
- 0xDFBC, 0xE0DA, 0, 0xCEFB, 0, 0, 0, 0xBAD9, /* 0x30 */
- 0, 0xF8B0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xE0E1, 0xE0DD, 0xD2AD, 0, /* 0x40 */
- 0, 0, 0, 0, 0xE0E2, 0, 0, 0xE0DB, /* 0x50 */
- 0xE0D9, 0xE0DF, 0, 0, 0, 0xDFD0, 0, 0, /* 0x50 */
- 0xDFD5, 0, 0xE0DE, 0, 0xE0E4, 0xDFE6, 0xDFDC, 0, /* 0x60 */
- 0xC6F7, 0xD8AC, 0xD4EB, 0xE0E6, 0xCAC9, 0, 0, 0xE0C8, /* 0x60 */
- 0, 0xE0E5, 0xDFE0, 0, 0xC5E7, 0, 0xB8C1, 0, /* 0x70 */
- 0xB6D6, 0xF8AB, 0, 0xE0E7, 0xE0E8, 0, 0, 0, /* 0x70 */
- 0xDFCC, 0, 0, 0, 0, 0xE0E9, 0xE0E3, 0xCFC5, /* 0x80 */
- 0, 0, 0, 0, 0xDFE2, 0, 0xBABF, 0xCCE7, /* 0x80 */
- 0, 0, 0, 0xE0EA, 0, 0xE0E0, 0, 0, /* 0x90 */
- 0, 0xC4F6, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0xDFBF, 0, /* 0xA0 */
- 0xC1FC, 0, 0, 0, 0, 0, 0xF8F5, 0xE0EB, /* 0xA0 */
- 0, 0, 0, 0xE0B7, 0xD1CF, 0, 0xE0D3, 0xC8C2, /* 0xB0 */
- 0, 0, 0, 0, 0xBDC0, 0, 0, 0, /* 0xB0 */
- 0xDFF9, 0xE0BF, 0xCFF9, 0, 0, 0xD9E6, 0, 0, /* 0xC0 */
- 0xDFBD, 0xF8D3, 0xC4D2, 0, 0xF8EA, 0, 0, 0, /* 0xC0 */
- 0, 0xD6F6, 0, 0, 0xE0EC, 0, 0, 0xE0ED, /* 0xD0 */
- 0, 0, 0xC7F4, 0xCBC4, 0, 0xE0EE, 0xBBD8, 0xD8B6, /* 0xD0 */
- 0xD2F2, 0xE0EF, 0, 0, 0xB6DA, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xE0F1, 0, 0, 0, 0, /* 0xE0 */
- 0xC0A7, 0xB4D1, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xE0F2, 0xB9CC, 0, 0, 0, 0, 0xE0F3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_57[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC6D4, 0xE0F4, 0, 0, 0xE0F0, /* 0x00 */
- 0xC8A6, 0xE0F6, 0xE0F5, 0xB9FA, 0, 0xCEA7, 0, 0, /* 0x00 */
- 0, 0, 0xD4B0, 0xD4B2, 0, 0, 0xCDBC, 0, /* 0x10 */
- 0xCDC5, 0, 0, 0, 0xE0F7, 0, 0, 0xCDC1, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xD4DA, 0xDBD7, 0xDBD9, 0, 0xDBD8, 0xB9E7, 0xDBDC, 0xDBDD, /* 0x20 */
- 0xB5D8, 0, 0, 0xDBDA, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xDBDF, 0, 0, 0xBBF8, 0, /* 0x30 */
- 0xD6B7, 0, 0xDBE0, 0, 0, 0, 0, 0xBEF9, /* 0x40 */
- 0, 0, 0xB7BB, 0, 0xDBD0, 0xCCAE, 0xBFB2, 0, /* 0x40 */
- 0xD7F8, 0xBFD3, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xC6C2, 0, 0, 0xC0A4, 0, 0xCCB9, 0, /* 0x60 */
- 0xDBE7, 0xDBE1, 0xC6BA, 0xDBE3, 0, 0xDBE8, 0, 0xC5F7, /* 0x60 */
- 0, 0, 0, 0xDBEA, 0, 0, 0xDBE9, 0xBFC0, /* 0x70 */
- 0, 0, 0, 0xDBE6, 0xDBE5, 0, 0, 0, /* 0x70 */
- 0, 0, 0xB4B9, 0xC0AC, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xD0CD, 0xDBED, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xDBF2, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xB6E2, 0, 0, 0, 0, /* 0x90 */
- 0xDBF3, 0xDBD2, 0xB9B8, 0xD4AB, 0xDBEC, 0, 0, 0xDBF0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xBFE5, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xDBF9, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xB9A1, 0xB0A3, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xC2F1, 0, 0, 0xB3C7, 0xDBEF, /* 0xC0 */
- 0, 0, 0xDBF8, 0, 0xC6D2, 0xDBF4, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xDBFE, 0, 0xD3F2, /* 0xD0 */
- 0xB2BA, 0xDBEB, 0, 0, 0xDBFD, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xDCA4, 0, 0xDBFB, /* 0xE0 */
- 0, 0, 0, 0, 0xDBFA, 0, 0, 0xD6B4, /* 0xF0 */
- 0xDBFC, 0xC5E0, 0xBBF9, 0, 0, 0xDCA3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_58[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDCA5, 0, 0xCCC3, 0, 0, 0xBCE1, 0xB6D1, 0xDDC0, /* 0x00 */
- 0, 0, 0xDBD1, 0xDCA1, 0, 0xDCA2, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xDBF1, 0, /* 0x10 */
- 0, 0xDCA7, 0, 0, 0, 0xDBF6, 0xDCA6, 0, /* 0x10 */
- 0xDCA9, 0xB1A4, 0, 0, 0xB5CC, 0, 0, 0, /* 0x20 */
- 0, 0, 0xBFB0, 0, 0, 0, 0, 0xD2A2, /* 0x20 */
- 0xD1DF, 0xB1A8, 0, 0, 0xB3A1, 0xB6C2, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0xDCA8, 0, 0, 0, /* 0x40 */
- 0, 0, 0xBFE9, 0xDCE3, 0xCBFA, 0xEBF3, 0, 0xDBEE, /* 0x40 */
- 0, 0xCBDC, 0xDBF5, 0, 0xCBFE, 0, 0, 0xCDBF, /* 0x50 */
- 0xCCC1, 0, 0, 0, 0, 0, 0xC8FB, 0, /* 0x50 */
- 0, 0, 0xCEEB, 0, 0xDBF7, 0xDCAA, 0, 0, /* 0x60 */
- 0, 0, 0, 0xCCEE, 0xDCAB, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xB3BE, 0, 0, /* 0x70 */
- 0, 0xC7B5, 0, 0, 0, 0, 0xDBD3, 0, /* 0x70 */
- 0xDCAF, 0xDCAC, 0, 0xBEB3, 0, 0xCAFB, 0, 0, /* 0x80 */
- 0, 0xDCAD, 0xB5E6, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xC9CA, 0xC4B9, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xDCAE, 0, 0xD7B9, 0, 0xD4F6, 0xD0E6, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xC4AB, 0xB6D5, 0, 0, 0, 0, 0xB6E9, 0, /* 0xA0 */
- 0, 0, 0, 0xB7D8, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xC7BD, 0xDBD4, 0, 0xBFD1, 0, /* 0xB0 */
- 0, 0xB1DA, 0, 0, 0, 0xDBD5, 0, 0xCCB3, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xDBD6, 0, 0xD1B9, 0, 0xBABE, 0, 0, /* 0xD0 */
- 0xC0DD, 0xDBDB, 0xDBE4, 0, 0, 0, 0xBBB5, 0xC2A2, /* 0xD0 */
- 0xDBE2, 0, 0xDBDE, 0, 0xC8C0, 0, 0, 0, /* 0xE0 */
- 0, 0xB0D3, 0, 0xCABF, 0xC8C9, 0, 0, 0xD7B3, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xD2BC, 0xBAF8, 0, 0, 0xCAD9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_59[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE2BA, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0xCFC4, /* 0x00 */
- 0, 0, 0, 0, 0xD9E7, 0xCFA6, 0xCDE2, 0, /* 0x10 */
- 0, 0xD9ED, 0xB6E0, 0, 0xD2B9, 0, 0, 0xB9BB, /* 0x10 */
- 0, 0, 0xC3CE, 0, 0xE2B9, 0xE2B7, 0, 0xB4F3, /* 0x20 */
- 0, 0xCCEC, 0xCCAB, 0xB7F2, 0, 0xD8B2, 0xD1EB, 0xBABB, /* 0x20 */
- 0, 0xCAA7, 0, 0, 0, 0, 0, 0xD2C4, /* 0x30 */
- 0xF8C9, 0, 0, 0, 0xDEC5, 0, 0xBCD0, 0, /* 0x30 */
- 0, 0, 0, 0, 0xD1D9, 0, 0, 0xC6E6, /* 0x40 */
- 0xC4CE, 0xB7EE, 0, 0, 0, 0, 0xBFFC, 0xD7E0, /* 0x40 */
- 0xDBBC, 0xC6F5, 0, 0, 0xB1BC, 0xDEC8, 0, 0xCCD7, /* 0x50 */
- 0xDECA, 0, 0xDEC9, 0, 0, 0, 0, 0, /* 0x50 */
- 0xB5EC, 0, 0xC9DD, 0, 0, 0xB0C2, 0, 0, /* 0x60 */
- 0, 0xDEC6, 0xB6E1, 0, 0xBDB1, 0, 0xB7DC, 0, /* 0x60 */
- 0, 0, 0, 0xC5AE, 0xC5AB, 0, 0xC4CC, 0, /* 0x70 */
- 0xBCE9, 0xCBFD, 0, 0, 0, 0xBAC3, 0, 0, /* 0x70 */
- 0, 0xE5F9, 0xC8E7, 0xE5FA, 0xCDFD, 0, 0, 0, /* 0x80 */
- 0, 0, 0xC8D1, 0, 0, 0xE5FB, 0, 0, /* 0x80 */
- 0, 0, 0xB6CA, 0xBCCB, 0, 0, 0xD1FD, 0xE6A1, /* 0x90 */
- 0, 0xC3EE, 0, 0, 0, 0xD7B1, 0xE6A4, 0, /* 0x90 */
- 0, 0, 0, 0xE5FE, 0xE6A5, 0xCDD7, 0, 0, /* 0xA0 */
- 0xB7C1, 0, 0, 0, 0, 0, 0xC4DD, 0xE6A8, /* 0xA0 */
- 0, 0, 0xE6A7, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xC3C3, 0, 0xC6DE, 0, 0, 0xE6AA, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xC4B7, 0, /* 0xC0 */
- 0, 0, 0xE6A2, 0xCABC, 0, 0, 0, 0, /* 0xC0 */
- 0xBDE3, 0xB9C3, 0xE6A6, 0xD0D5, 0xCEAF, 0, 0, 0xE6A9, /* 0xD0 */
- 0xE6B0, 0, 0xD2A6, 0, 0xBDAA, 0xE6AD, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xE6AF, 0, 0xC0D1, 0, 0, /* 0xE0 */
- 0xD2CC, 0, 0, 0, 0xBCA7, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xE6B1, 0, 0xD2F6, 0, 0, 0, 0xD7CB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_5A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCDFE, 0, 0xCDDE, 0, 0, 0, 0, /* 0x00 */
- 0, 0xE6B3, 0, 0, 0xE6B2, 0, 0, 0, /* 0x00 */
- 0, 0xE6B6, 0, 0xE6B8, 0, 0, 0, 0, /* 0x10 */
- 0xC4EF, 0, 0, 0, 0xC4C8, 0, 0, 0xBEEA, /* 0x10 */
- 0xC9EF, 0, 0, 0xE6B7, 0, 0xB6F0, 0, 0, /* 0x20 */
- 0, 0xC3E4, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xD3E9, 0, 0, 0, 0, 0xC8A2, 0, /* 0x30 */
- 0, 0, 0, 0, 0xE6BD, 0, 0, 0, /* 0x30 */
- 0xE6B9, 0xC2A6, 0, 0, 0, 0, 0xC6C5, 0, /* 0x40 */
- 0, 0xCDF1, 0xE6BB, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xE6BC, 0, 0, /* 0x50 */
- 0, 0, 0xBBE9, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0xE6BE, 0, 0, 0, 0xB8BE, 0xE6BA, /* 0x60 */
- 0, 0, 0xC0B7, 0, 0, 0xE6AB, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0xE6C3, /* 0x70 */
- 0, 0, 0xE6C4, 0, 0, 0, 0, 0xD0F6, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xC3BD, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xC3C4, 0xE6C2, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xE6B4, /* 0xA0 */
- 0, 0, 0xE6C1, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xE6C7, 0xCFB1, 0, 0xEBF4, 0, 0, /* 0xB0 */
- 0xE6CA, 0, 0, 0, 0, 0xC2E8, 0xE6C5, 0, /* 0xB0 */
- 0, 0xBCDE, 0xC9A9, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xBCB5, 0, 0, 0xCFD3, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xE6CE, 0xE5FD, /* 0xD0 */
- 0xE6D0, 0, 0, 0, 0xE6D1, 0, 0, 0, /* 0xD0 */
- 0xE6CB, 0xB5D5, 0, 0xE6CC, 0, 0, 0xE6CF, 0, /* 0xE0 */
- 0, 0xC4DB, 0, 0xE6C6, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xE5FC, 0, 0, /* 0xF0 */
- 0, 0, 0, 0xE6B5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_5B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE6A3, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0xE6AC, 0xE6D2, 0, 0xE6BF, 0xBDBF, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xE6D4, 0xE6D3, /* 0x10 */
- 0, 0xE6CD, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xE6C8, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xE6C9, 0, 0, 0, 0, 0, /* 0x20 */
- 0xD3A4, 0, 0xE6D5, 0, 0xD9F8, 0, 0, 0xE6D6, /* 0x30 */
- 0xC9F4, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xE6D7, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xE6AE, 0, 0, 0, /* 0x40 */
- 0xD7D3, 0xE6DD, 0, 0xE6DE, 0xBFD7, 0xD4D0, 0, 0xD7D6, /* 0x50 */
- 0xB4E6, 0, 0xE6DA, 0xD8C3, 0xD7CE, 0xD0A2, 0, 0xC3CF, /* 0x50 */
- 0, 0, 0xE6DF, 0xBCBE, 0xB9C2, 0xE6DB, 0, 0, /* 0x60 */
- 0, 0xBAA2, 0, 0xCBEF, 0xD8AB, 0, 0, 0, /* 0x60 */
- 0xCAEB, 0xE5EE, 0, 0xE6DC, 0, 0xB7F5, 0, 0, /* 0x70 */
- 0xD1A7, 0, 0xC8E6, 0, 0, 0xC4F5, 0, 0xC2CF, /* 0x70 */
- 0xE5B2, 0, 0, 0xCBFC, 0xE5B3, 0xD5AC, 0, 0xD3EE, /* 0x80 */
- 0xCAD8, 0xB0B2, 0, 0xCBCE, 0xCDEA, 0, 0, 0xBAEA, /* 0x80 */
- 0, 0, 0, 0xE5B5, 0, 0xE5B4, 0, 0xD7DA, /* 0x90 */
- 0xB9D9, 0xD6E6, 0xB6A8, 0xCDF0, 0xD2CB, 0, 0, 0, /* 0x90 */
- 0, 0, 0xBFCD, 0xD0FB, 0xCAD2, 0xE5B6, 0xBBC2, 0, /* 0xA0 */
- 0, 0, 0, 0xB9AC, 0, 0, 0, 0, /* 0xA0 */
- 0xD4D7, 0, 0, 0xBAA6, 0xD1E7, 0xCFFC, 0xBCD2, 0, /* 0xB0 */
- 0xE5B7, 0xC8DD, 0, 0, 0, 0, 0, 0xCBDE, /* 0xB0 */
- 0, 0, 0xBCC5, 0, 0xBCC4, 0xD2FA, 0xC3DC, 0xBFDC, /* 0xC0 */
- 0, 0, 0, 0, 0xB8BB, 0, 0, 0, /* 0xC0 */
- 0xC3C2, 0, 0xBAAE, 0xD4A2, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xC4AF, 0xB2EC, /* 0xD0 */
- 0, 0xB9D1, 0xC7DE, 0, 0xE5BB, 0xC1C8, 0xCAB5, 0xC4FE, /* 0xE0 */
- 0xD5AF, 0xC9F3, 0, 0xD0B4, 0xBFED, 0, 0xE5BC, 0, /* 0xE0 */
- 0xE5BE, 0, 0, 0, 0, 0xB3E8, 0xB1A6, 0, /* 0xF0 */
- 0xB4E7, 0, 0xCBC2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_5C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB7E2, 0, 0, 0xC9E4, 0, 0, 0xBDAB, /* 0x00 */
- 0xD7A8, 0xCEBE, 0xD7F0, 0xD1B0, 0, 0xB6D4, 0xB5BC, 0xD0A1, /* 0x00 */
- 0, 0xC9D9, 0, 0, 0, 0xE6D8, 0xBCE2, 0, /* 0x10 */
- 0, 0, 0xC9D0, 0, 0xE6D9, 0, 0, 0, /* 0x10 */
- 0, 0, 0xDECC, 0, 0xD3C8, 0xDECD, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xDECE, 0, 0, 0, /* 0x20 */
- 0, 0xBECD, 0, 0, 0, 0, 0, 0xDECF, /* 0x30 */
- 0xCAAC, 0xD2FC, 0xB3DF, 0xE5EA, 0xC4E1, 0, 0xCEB2, 0xC4F2, /* 0x30 */
- 0xBED6, 0xC6A8, 0, 0, 0, 0xBED3, 0, 0, /* 0x40 */
- 0xC7FC, 0xCCEB, 0xBDEC, 0xCEDD, 0, 0, 0xCABA, 0xC6C1, /* 0x40 */
- 0xE5EC, 0xD0BC, 0, 0, 0, 0xD5B9, 0, 0, /* 0x50 */
- 0, 0xE5ED, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xCDC0, 0, 0xC2C5, 0xE5EF, 0xB2E3, 0xC2C4, 0, 0, /* 0x60 */
- 0xE5F0, 0, 0, 0, 0xCAF4, 0, 0xE5F8, 0xCDCD, /* 0x60 */
- 0, 0xC9BD, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD2D9, 0xE1A8, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xE1AC, 0, 0, 0, 0xE1A7, 0xE1A9, 0, 0, /* 0x80 */
- 0xE1AA, 0xE1AF, 0, 0, 0xB2ED, 0, 0, 0, /* 0x90 */
- 0, 0xE1AE, 0, 0, 0xE1B1, 0, 0, 0, /* 0x90 */
- 0, 0xB8D4, 0xE1B3, 0xE1B8, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xD1D2, 0, 0xE1B6, 0xE1B5, 0, 0, 0, /* 0xA0 */
- 0, 0xE1B7, 0, 0xD4C0, 0, 0xE1B2, 0, 0xE1BA, /* 0xB0 */
- 0xB0B6, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xE1B9, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xE1BE, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xE1BC, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xD6C5, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xB6EB, 0, 0xD3F8, 0, 0, 0xC7CD, 0, 0, /* 0xE0 */
- 0xB7E5, 0, 0, 0, 0xE1AD, 0, 0xB5BA, 0, /* 0xF0 */
- 0, 0, 0, 0xBEFE, 0, 0xCFBF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_5D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE1C7, 0xB3E7, /* 0x00 */
- 0, 0, 0, 0, 0, 0xE1C1, 0xC6E9, 0, /* 0x00 */
- 0, 0, 0, 0, 0xB4DE, 0, 0xD1C2, 0xB8DA, /* 0x10 */
- 0, 0, 0, 0xE1C8, 0, 0, 0xE1C6, 0, /* 0x10 */
- 0, 0, 0xE1BF, 0, 0xE1C5, 0, 0xE1C3, 0xE1C2, /* 0x20 */
- 0, 0xB1C0, 0, 0, 0xE1B4, 0, 0xE1C4, 0, /* 0x20 */
- 0, 0, 0, 0, 0xE1CB, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xE1CC, 0xE1CA, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0xEFFA, /* 0x40 */
- 0, 0, 0xE1D3, 0xE1D2, 0xC7B6, 0, 0, 0, /* 0x40 */
- 0xE1B0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0xE1CE, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xE1D4, 0, 0xE1D1, 0xE1CD, 0, 0, 0xE1CF, /* 0x60 */
- 0, 0, 0, 0, 0xE1D5, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xE1D0, 0xE1D6, 0, 0xD5B8, 0, 0, 0xE1AB, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0xE1C0, /* 0x90 */
- 0, 0xE1D7, 0, 0, 0, 0xE1D8, 0, 0, /* 0x90 */
- 0xE1BD, 0, 0, 0, 0, 0, 0, 0xE1BB, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE1DA, /* 0xB0 */
- 0xE1C9, 0, 0xC1EB, 0, 0xD3EC, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xBFF9, 0, 0xCEA1, 0, 0, /* 0xC0 */
- 0, 0, 0xC2CD, 0, 0xE1DB, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xE7DD, 0, 0xB4A8, 0xD6DD, 0, /* 0xD0 */
- 0, 0xD1B2, 0xB3B2, 0, 0, 0xB9A4, 0xD7F3, 0xC7C9, /* 0xE0 */
- 0xBEDE, 0, 0, 0xCED7, 0, 0, 0xB2EE, 0, /* 0xE0 */
- 0xDBCF, 0xBCBA, 0xD2D1, 0xCBC8, 0xB0CD, 0, 0, 0xCFEF, /* 0xF0 */
- 0, 0, 0, 0, 0, 0xD9E3, 0xBDED /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_5E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCAD0, 0xB2BC, 0, 0, 0xB7AB, 0, /* 0x00 */
- 0, 0, 0, 0, 0xCFA3, 0, 0, 0, /* 0x00 */
- 0, 0xE0FB, 0, 0, 0xE0FA, 0xC5C1, 0xCCFB, 0, /* 0x10 */
- 0xF8D0, 0xE0F9, 0xD6E3, 0xB2AF, 0, 0xB5DB, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xCBA7, 0, 0, /* 0x20 */
- 0, 0, 0, 0xCAA6, 0, 0xCFAF, 0, 0, /* 0x20 */
- 0, 0, 0, 0xD5CA, 0, 0, 0xB4F8, 0xE1A1, /* 0x30 */
- 0xB3A3, 0, 0, 0, 0, 0xC3B1, 0, 0, /* 0x30 */
- 0xD6A1, 0, 0xC3DD, 0xE0F8, 0xE1A2, 0xB7F9, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xBBCF, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xE1A3, 0xC4BB, 0, 0xE0FE, /* 0x50 */
- 0xE0FD, 0, 0, 0xE1A4, 0, 0, 0xE1A5, 0xD6C4, /* 0x50 */
- 0, 0xE1A6, 0xB4B1, 0xB1D2, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xB0EF, 0xE0FC, 0, 0, 0, /* 0x60 */
- 0, 0, 0xF8B5, 0xC6BD, 0xC4EA, 0, 0xB2A2, 0, /* 0x70 */
- 0xD0D2, 0xB8C9, 0xE7DB, 0xBBC3, 0xD3D7, 0xD3C4, 0xBCB8, 0xF8B8, /* 0x70 */
- 0xE2CF, 0, 0, 0, 0, 0, 0, 0xB1D3, /* 0x80 */
- 0, 0, 0xB4B2, 0xE2D1, 0, 0, 0, 0xD0F2, /* 0x80 */
- 0, 0, 0, 0, 0, 0xB5D7, 0xE2D2, 0xB5EA, /* 0x90 */
- 0, 0, 0xB8FD, 0, 0xB8AE, 0, 0, 0, /* 0x90 */
- 0xE2D4, 0, 0, 0, 0, 0xE2D3, 0xB6C8, 0xD7F9, /* 0xA0 */
- 0, 0, 0, 0xBFE2, 0, 0xCDA5, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xE2D8, 0, 0xE2D6, 0xCAFC, 0xBFB5, /* 0xB0 */
- 0xD3B9, 0xE2D5, 0, 0, 0, 0, 0xE2D7, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xC1AE, 0xC0C8, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xE2DB, 0xE2DA, 0xC0AA, 0, 0, 0xC1CE, 0, /* 0xD0 */
- 0, 0, 0, 0xE2DC, 0, 0, 0, 0xC3ED, /* 0xD0 */
- 0xB3A7, 0xE2D0, 0xB7CF, 0xB9E3, 0, 0, 0, 0, /* 0xE0 */
- 0xE2DD, 0, 0xE2DE, 0, 0xC2AE, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xCCFC, 0xDBC8, 0, 0xD1D3, 0xCDA2, /* 0xF0 */
- 0, 0, 0xBDA8, 0, 0, 0, 0xDEC3, 0xD8A5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_5F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDBCD, 0xD2EC, 0, 0xC5AA, 0, 0, 0, /* 0x00 */
- 0xDEC4, 0, 0xB1D7, 0xDFAE, 0, 0, 0, 0xCABD, /* 0x00 */
- 0, 0xDFB1, 0, 0xB9AD, 0, 0xD2FD, 0, 0xB8A5, /* 0x10 */
- 0xBAEB, 0, 0, 0xB3DA, 0, 0, 0, 0xB5DC, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xCFD2, 0xBBA1, /* 0x20 */
- 0, 0xE5F3, 0, 0, 0, 0xE5F4, 0, 0, /* 0x20 */
- 0, 0xC8F5, 0, 0xE5F2, 0, 0xD5C5, 0, 0, /* 0x30 */
- 0, 0, 0xC7BF, 0, 0xE5F6, 0, 0, 0, /* 0x30 */
- 0xECB0, 0, 0, 0, 0, 0, 0xF8A4, 0, /* 0x40 */
- 0xB5AF, 0, 0, 0, 0xC3D6, 0, 0xCDE4, 0, /* 0x40 */
- 0xE5E6, 0, 0, 0, 0, 0, 0xE5E8, 0xE5E7, /* 0x50 */
- 0xE5E9, 0xF8BD, 0, 0, 0, 0xD2CD, 0, 0, /* 0x50 */
- 0, 0xE1EA, 0xD0CE, 0, 0xCDAE, 0, 0xD1E5, 0, /* 0x60 */
- 0, 0xB2CA, 0xB1EB, 0, 0xB1F2, 0xC5ED, 0, 0, /* 0x60 */
- 0xD5C3, 0xD3B0, 0, 0xE1DC, 0, 0, 0, 0xE1DD, /* 0x70 */
- 0, 0xD2DB, 0, 0, 0xB1CB, 0, 0, 0, /* 0x70 */
- 0xCDF9, 0xD5F7, 0xE1DE, 0, 0, 0xB4FD, 0, 0xE1DF, /* 0x80 */
- 0xBADC, 0xE1E0, 0xBBB2, 0xC2C9, 0xBAF3, 0, 0, 0, /* 0x80 */
- 0xD0EC, 0xBEB6, 0xCDBD, 0, 0, 0, 0, 0xB5C3, /* 0x90 */
- 0xC5C7, 0xE1E3, 0, 0, 0xE1E4, 0, 0xB4D3, 0, /* 0x90 */
- 0xE1E2, 0xD3F9, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xE1E5, 0xB8B4, 0xD1AD, 0, 0, 0xE1E6, 0xCEA2, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0xE1E7, 0, 0xB5C2, /* 0xB0 */
- 0, 0xB3B9, 0, 0, 0xE1E8, 0xBBD5, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xD0C4, 0xE2E0, 0xB1D8, 0, 0, /* 0xC0 */
- 0, 0xE2E1, 0, 0, 0xBCC9, 0xC8CC, 0, 0, /* 0xC0 */
- 0xECFE, 0xECFD, 0xDFAF, 0, 0, 0, 0xE2E2, 0xD6BE, /* 0xD0 */
- 0xCDFC, 0xC3A6, 0, 0, 0, 0xE3C3, 0, 0, /* 0xD0 */
- 0xD6D2, 0xE2E7, 0, 0, 0xE2E8, 0, 0, 0, /* 0xE0 */
- 0, 0, 0xE2EC, 0xBFEC, 0, 0xE2ED, 0xE2E5, 0, /* 0xE0 */
- 0, 0xB3C0, 0, 0, 0, 0xC4EE, 0, 0, /* 0xF0 */
- 0xE2EE, 0, 0, 0xD0C3, 0, 0xBAF6, 0, 0xB7DE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_60[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xE2F7, 0, 0, 0xE2F4, 0xD4F5, 0xE2F3, /* 0x00 */
- 0, 0, 0xC5AD, 0, 0xD5FA, 0xC5C2, 0xB2C0, 0, /* 0x10 */
- 0, 0xE2EF, 0, 0xE2F2, 0, 0xCBBC, 0, 0, /* 0x10 */
- 0xB5A1, 0xE2F9, 0, 0, 0, 0xBCB1, 0xE2F1, 0xD0D4, /* 0x20 */
- 0xD4B9, 0xE2F5, 0xB9D6, 0xE2F6, 0, 0, 0, 0xC7D3, /* 0x20 */
- 0, 0, 0, 0, 0, 0xE2F0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xEDA5, 0xE2FE, 0xCAD1, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xBBD0, 0, 0, /* 0x40 */
- 0xBFD6, 0, 0xBAE3, 0, 0, 0xCBA1, 0, 0, /* 0x50 */
- 0, 0xEDA6, 0xEDA3, 0, 0, 0xEDA2, 0, 0, /* 0x50 */
- 0, 0, 0xBBD6, 0xEDA7, 0xD0F4, 0, 0, 0xEDA4, /* 0x60 */
- 0xBADE, 0xB6F7, 0xE3A1, 0xB6B2, 0xCCF1, 0xB9A7, 0, 0xCFA2, /* 0x60 */
- 0xC7A1, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xD3C1, /* 0x70 */
- 0, 0, 0, 0xE3A7, 0xC7C4, 0, 0, 0, /* 0x80 */
- 0, 0xCFA4, 0, 0, 0xE3A9, 0xBAB7, 0, 0, /* 0x80 */
- 0, 0, 0xE3A8, 0, 0xBBDA, 0, 0xE3A3, 0, /* 0x90 */
- 0, 0, 0xE3A4, 0xE3AA, 0, 0xE3A6, 0, 0xCEF2, /* 0x90 */
- 0xD3C6, 0, 0, 0xBBBC, 0, 0, 0xD4C3, 0, /* 0xA0 */
- 0xC4FA, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xE3AD, 0xB1AF, 0, 0xE3B2, 0xE2EA, 0xC3C6, 0, /* 0xB0 */
- 0xBCC2, 0, 0, 0xE3AC, 0xB5BF, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xC7E9, 0xE3B0, 0, /* 0xC0 */
- 0, 0, 0, 0xCDEF, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xBBF3, 0, 0, 0, 0xCCE8, 0, 0, /* 0xD0 */
- 0xE3AF, 0, 0xE3B1, 0, 0xCFA7, 0xE3AE, 0, 0xCEA9, /* 0xD0 */
- 0xBBDD, 0xB6F1, 0, 0, 0, 0, 0xB5EB, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xB6E8, 0xC4D5, 0xE3A2, 0xCFEB, 0xE3B7, 0, 0xBBCC, 0, /* 0xF0 */
- 0, 0xC8C7, 0xD0CA, 0xE2FC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_61[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE3B8, 0xB3EE, 0, 0, 0, 0, 0xEDA9, 0, /* 0x00 */
- 0xD3FA, 0xD3E4, 0, 0, 0, 0xEDAA, 0xE3B9, 0xD2E2, /* 0x00 */
- 0, 0, 0, 0, 0, 0xE3B5, 0, 0, /* 0x10 */
- 0, 0, 0xD3DE, 0xB0AE, 0xE3AB, 0, 0, 0xB8D0, /* 0x10 */
- 0xE3B3, 0, 0, 0xE3B6, 0, 0, 0, 0xC0A2, /* 0x20 */
- 0, 0, 0, 0xE3BA, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xE2EB, 0, 0, 0xE2FD, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xE2E9, 0xF8FC, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xB4C8, 0, 0xE3BB, 0xCCAC, 0xBBC5, 0, 0xC9F7, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xC4BD, 0, 0, /* 0x50 */
- 0xB2D2, 0, 0xB2D1, 0, 0, 0xEDAB, 0, 0xE2FA, /* 0x50 */
- 0, 0, 0xC2FD, 0xB9DF, 0xEDA8, 0, 0, 0xBBDB, /* 0x60 */
- 0xBFAE, 0, 0xE2E6, 0xCBCB, 0, 0, 0xC2C7, 0, /* 0x60 */
- 0xCEBF, 0, 0, 0xE3A5, 0, 0xE3BC, 0xC7EC, 0xBFB6, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xD3C7, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xB1B9, 0xB1EF, 0, 0, 0xD4F7, 0, /* 0x80 */
- 0xC1AF, 0xC6BE, 0xE3B4, 0, 0xE3BE, 0, 0, 0, /* 0x90 */
- 0, 0, 0xB5AC, 0, 0, 0xEDAD, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xB7DF, 0, 0, 0xE3BF, /* 0xA0 */
- 0xBAA9, 0xEDAC, 0, 0xC3F5, 0xE3BD, 0, 0xE2E4, 0, /* 0xA0 */
- 0, 0, 0xCFDC, 0, 0, 0, 0xD2E4, 0xE3C0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xBAB6, 0, /* 0xB0 */
- 0, 0, 0xB6AE, 0, 0, 0, 0, 0xBFD2, /* 0xC0 */
- 0xD0B8, 0xD3A6, 0xB0C3, 0xEDAE, 0xE2F8, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xE3C1, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xF8D6, 0xEDA1, /* 0xD0 */
- 0, 0, 0, 0xEDAF, 0, 0, 0xC5B3, 0, /* 0xE0 */
- 0xE2FB, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0xB3CD, 0, 0, 0xE3C2, 0xC0C1, 0xBBB3, /* 0xF0 */
- 0xD0FC, 0, 0xE2E3, 0, 0xBEE5, 0, 0xC9E5, 0xDCB2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_62[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC1B5, 0, 0, 0, 0, 0, 0, 0xEDB0, /* 0x00 */
- 0xB8EA, 0, 0xCEEC, 0, 0xD0E7, 0xCAF9, 0xC8D6, 0, /* 0x00 */
- 0xB3C9, 0xCED2, 0xBDE4, 0, 0xEAA7, 0xE3DE, 0xBBF2, 0, /* 0x10 */
- 0, 0, 0xC6DD, 0xEAA9, 0, 0, 0, 0xEAAA, /* 0x10 */
- 0, 0xEAAC, 0xEAAB, 0, 0xEAAE, 0xEAAD, 0, 0xEAA8, /* 0x20 */
- 0, 0xEAAF, 0xBDD8, 0, 0, 0, 0xC2BE, 0, /* 0x20 */
- 0xD5BD, 0, 0xCFB7, 0xB4C1, 0xB4F7, 0, 0, 0xBBA7, /* 0x30 */
- 0, 0, 0, 0, 0, 0xECE6, 0xECE5, 0xB7BF, /* 0x30 */
- 0xCBF9, 0xB1E2, 0, 0xECE7, 0, 0, 0, 0xC9C8, /* 0x40 */
- 0xECE8, 0xECE9, 0, 0xCAD6, 0xDED0, 0xB2C5, 0xD4FA, 0, /* 0x40 */
- 0, 0xF8DE, 0xB0C7, 0xB4F2, 0xC8D3, 0, 0, 0, /* 0x50 */
- 0xCDD0, 0, 0, 0xBFB8, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0xBFDB, 0, 0, 0xC7A4, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xC5A4, 0xB0E7, 0xB3B6, /* 0x60 */
- 0, 0, 0, 0xB0E2, 0, 0, 0xB7F6, 0, /* 0x70 */
- 0, 0xC5FA, 0, 0, 0xB6F3, 0, 0xD5D2, 0xB3D0, /* 0x70 */
- 0xBCBC, 0, 0, 0, 0xB3AD, 0, 0, 0, /* 0x80 */
- 0, 0xBEF1, 0xB0D1, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xD2D6, 0xCAE3, 0xD7A5, 0, 0xCDB6, 0xB6B6, 0xBFB9, /* 0x90 */
- 0xD5DB, 0, 0, 0xC5D7, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xC5EA, 0, 0, 0xC5FB, 0xCCA7, 0, 0, 0, /* 0xA0 */
- 0, 0xB1A7, 0, 0, 0, 0xB5D6, 0, 0, /* 0xB0 */
- 0, 0xC4A8, 0, 0xDED3, 0xD1BA, 0xB3E9, 0, 0xC3F2, /* 0xB0 */
- 0, 0, 0xB7F7, 0, 0xD6F4, 0, 0xB2F0, 0xC4B4, /* 0xC0 */
- 0xC4E9, 0xC0AD, 0xDED4, 0, 0xB0E8, 0xC5C4, 0xC1E0, 0, /* 0xC0 */
- 0xB9D5, 0, 0xBEDC, 0xCDD8, 0xB0CE, 0, 0xCDCF, 0xDED6, /* 0xD0 */
- 0xBED0, 0xD7BE, 0xDED5, 0xD5D0, 0xB0DD, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xC0A8, 0xCAC3, 0xDED7, 0xD5FC, /* 0xE0 */
- 0, 0xB9B0, 0, 0xC8AD, 0xCBA9, 0, 0xDED9, 0xBFBD, /* 0xF0 */
- 0, 0, 0, 0, 0xC6B4, 0xD7A7, 0xCAB0, 0xC4C3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_63[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB3D6, 0xB9D2, 0, 0, 0, 0, 0xD6B8, /* 0x00 */
- 0xEAFC, 0xB0B4, 0, 0, 0, 0, 0xBFE6, 0, /* 0x00 */
- 0, 0xCCF4, 0, 0, 0, 0, 0xCDDA, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xB0A4, 0, 0xC5B2, 0xB4EC, 0, 0, 0, 0xD5F1, /* 0x20 */
- 0, 0, 0xEAFD, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xDEDA, 0xCDA6, 0, 0, 0xCDEC, 0xD0AE, 0, /* 0x30 */
- 0, 0, 0xCEE6, 0xDEDC, 0, 0xCDB1, 0xC0A6, 0, /* 0x40 */
- 0, 0xD7BD, 0, 0xDEDB, 0xB0C6, 0xBAB4, 0xC9D3, 0xC4F3, /* 0x40 */
- 0xBEE8, 0, 0, 0, 0, 0xB2B6, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xC5F5, /* 0x60 */
- 0xC9E1, 0xDEE6, 0, 0xDED1, 0, 0xDEE3, 0xF8C6, 0, /* 0x60 */
- 0, 0xDEDF, 0xF8C7, 0, 0, 0, 0xB4B7, 0xBDDD, /* 0x70 */
- 0, 0, 0xDEE0, 0xC4ED, 0, 0, 0, 0, /* 0x70 */
- 0xCFC6, 0, 0xB5E0, 0xC9A8, 0xC2D5, 0, 0, 0xB6DE, /* 0x80 */
- 0xCADA, 0xB5F4, 0xDEE5, 0, 0xD5C6, 0, 0xDEE1, 0xCCCD, /* 0x80 */
- 0xC6FE, 0, 0xC5C5, 0, 0, 0, 0xD2B4, 0, /* 0x90 */
- 0xBEF2, 0xD5F5, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xC2D3, 0, 0xCCBD, 0xB3B8, 0, 0xBDD3, 0, 0xBFD8, /* 0xA0 */
- 0xCDC6, 0xD1DA, 0xB4EB, 0, 0xDEE4, 0xDEDD, 0xDEE7, 0, /* 0xA0 */
- 0xEAFE, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xDEF2, 0, /* 0xB0 */
- 0xBCF0, 0, 0, 0, 0xDEED, 0, 0xDEF1, 0, /* 0xC0 */
- 0, 0xC8E0, 0, 0, 0, 0xD7E1, 0xDEEF, 0xC3E8, /* 0xC0 */
- 0xCCE1, 0, 0xB2E5, 0, 0, 0, 0xD2BE, 0, /* 0xD0 */
- 0, 0, 0xD1EF, 0xBBBB, 0, 0, 0xDEEE, 0, /* 0xD0 */
- 0xDEEB, 0xCED5, 0, 0xB4A7, 0, 0, 0, 0, /* 0xE0 */
- 0, 0xBFAB, 0xBEBE, 0, 0, 0xBDD2, 0xBBD3, 0, /* 0xE0 */
- 0, 0, 0xDEE9, 0, 0xD4AE, 0, 0xDEDE, 0, /* 0xF0 */
- 0xDEEA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_64[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xDEF5, 0xDEF8, 0xCBF0, 0, 0xB2AB, /* 0x00 */
- 0xB4A4, 0, 0, 0xB4EA, 0xC9A6, 0, 0, 0xB5B7, /* 0x10 */
- 0, 0, 0, 0xDEF6, 0xCBD1, 0, 0xB8E3, 0, /* 0x10 */
- 0xDEF7, 0xDEFA, 0, 0, 0, 0, 0xDEF9, 0, /* 0x20 */
- 0, 0, 0xCCC2, 0, 0xB0E1, 0xB4EE, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xE5BA, 0, 0xC7C0, 0, /* 0x30 */
- 0, 0, 0xD0AF, 0, 0, 0xB2EB, 0, 0xEBA1, /* 0x30 */
- 0, 0xDEF4, 0, 0, 0, 0, 0, 0xD2A1, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xDEE2, 0xDEF0, 0, 0xCBA4, 0, 0, 0, /* 0x50 */
- 0xD5AA, 0, 0, 0, 0xDEE8, 0, 0xDEFB, 0xC2A7, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xB4DD, /* 0x60 */
- 0, 0xC4A6, 0, 0, 0, 0xDEFD, 0, 0xD6BF, /* 0x60 */
- 0, 0, 0, 0xBFD9, 0, 0, 0xDED2, 0, /* 0x70 */
- 0xC3FE, 0xC4A1, 0xDFA1, 0xB2F4, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xC1CC, 0, 0, 0xBEEF, 0, 0xC6B2, /* 0x80 */
- 0xC0CC, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xB3C5, 0xC8F6, 0xC4D3, 0, 0xCBBA, 0xDEFE, 0, /* 0x90 */
- 0, 0xDFA4, 0, 0, 0, 0, 0xD7B2, 0xDED8, /* 0x90 */
- 0, 0, 0, 0xB5A7, 0xB3B7, 0xB2A6, 0, 0, /* 0xA0 */
- 0, 0xC1C3, 0, 0xB8A7, 0xC7CB, 0xB2A5, 0xB4E9, 0, /* 0xA0 */
- 0xD7AB, 0, 0xC6CB, 0xDEEC, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xCCA2, 0xBAB3, 0, 0xCECE, 0xBCF1, /* 0xB0 */
- 0xDFA6, 0xD3B5, 0xC0DE, 0, 0xC2B0, 0xC9C3, 0, 0xD4F1, /* 0xC0 */
- 0, 0, 0xBBF7, 0xB5B2, 0, 0xB2D9, 0xC7E6, 0, /* 0xC0 */
- 0xDFA7, 0, 0xC7DC, 0, 0xB5A3, 0, 0, 0xDFA8, /* 0xD0 */
- 0xEBA2, 0, 0xBEDD, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xBCB7, 0, 0xDFAA, 0, 0xDFA9, 0, 0xB2C1, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xC4E2, 0, 0, 0xB1F7, /* 0xE0 */
- 0xC5A1, 0xB8E9, 0xD6C0, 0, 0xC0A9, 0, 0, 0xDFA2, /* 0xF0 */
- 0, 0, 0xB0DA, 0xCBD3, 0xDFA3, 0, 0xC8C5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_65[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC5CA, 0, 0, 0, 0xDEF3, 0, 0xC4EC, 0, /* 0x00 */
- 0, 0xDFAB, 0, 0, 0, 0, 0, 0xC2A3, /* 0x00 */
- 0, 0, 0, 0, 0xC0B9, 0, 0xDEFC, 0, /* 0x10 */
- 0xC8C1, 0xB2F3, 0, 0xDFA5, 0, 0xC9E3, 0, 0, /* 0x10 */
- 0, 0, 0xD4DC, 0xC2CE, 0xCCAF, 0xDFAC, 0, 0, /* 0x20 */
- 0, 0, 0xBDC1, 0xBEF0, 0xC0BF, 0, 0xDFAD, 0xD6A7, /* 0x20 */
- 0, 0, 0, 0, 0xEAB7, 0xEBB6, 0xCAD5, 0, /* 0x30 */
- 0xD8FC, 0xB8C4, 0, 0xB9A5, 0, 0, 0xB7C5, 0xD5FE, /* 0x30 */
- 0, 0, 0, 0, 0, 0xB9CA, 0, 0, /* 0x40 */
- 0xD0A7, 0xF4CD, 0, 0, 0, 0, 0, 0xC3F4, /* 0x40 */
- 0, 0xBEC8, 0, 0, 0, 0xEBB7, 0xB0BD, 0xB0DC, /* 0x50 */
- 0, 0xBDCC, 0, 0, 0, 0xB1D6, 0xB3A8, 0, /* 0x50 */
- 0, 0, 0xB8D2, 0xC9A2, 0, 0, 0xB6D8, 0, /* 0x60 */
- 0, 0, 0, 0xEBB8, 0xBEB4, 0, 0, 0, /* 0x60 */
- 0, 0, 0xC7C3, 0, 0xD5FB, 0xB5D0, 0, 0xB7F3, /* 0x70 */
- 0xCAFD, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xC1B2, 0xB1D0, 0, 0, 0, 0xCEC4, /* 0x80 */
- 0, 0, 0, 0, 0xB1F3, 0, 0, 0, /* 0x80 */
- 0xECB3, 0xB0DF, 0, 0, 0, 0xECB5, 0, 0xF8AF, /* 0x90 */
- 0, 0xC1CF, 0, 0xF5FA, 0xD0B1, 0, 0, 0xD5E5, /* 0x90 */
- 0, 0xCED3, 0, 0, 0xBDEF, 0xB3E2, 0, 0xB8AB, /* 0xA0 */
- 0, 0, 0, 0xEDBD, 0xD5B6, 0, 0, 0xCBB9, /* 0xA0 */
- 0xD0C2, 0, 0, 0, 0, 0, 0, 0xB6CF, /* 0xB0 */
- 0, 0xB7BD, 0, 0, 0xECB6, 0xCAA9, 0, 0, /* 0xB0 */
- 0, 0xC5D4, 0, 0xECB9, 0xECB8, 0xC2C3, 0xECB7, 0, /* 0xC0 */
- 0, 0, 0, 0xD0FD, 0xECBA, 0, 0xECBB, 0xD7E5, /* 0xC0 */
- 0, 0, 0xECBC, 0, 0, 0, 0xECBD, 0xC6EC, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xBCC8, 0, 0, 0xC8D5, 0xB5A9, 0, /* 0xE0 */
- 0xD6BC, 0xD4E7, 0, 0, 0xD1AE, 0xD0F1, 0xEAB8, 0xEAB9, /* 0xE0 */
- 0xEABA, 0xBAB5, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0xCDFA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_66[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEAC0, 0, 0xB0BA, 0xEABE, 0, 0, 0xC0A5, 0, /* 0x00 */
- 0, 0, 0xEABB, 0, 0xB2FD, 0, 0xC3F7, 0xBBE8, /* 0x00 */
- 0, 0, 0, 0xD2D7, 0xCEF4, 0xEABF, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xEAC3, 0, 0xD0C7, /* 0x10 */
- 0xD3B3, 0, 0, 0, 0, 0xB4BA, 0, 0xC3C1, /* 0x20 */
- 0xD7F2, 0, 0, 0, 0, 0xD5D1, 0, 0xCAC7, /* 0x20 */
- 0, 0xEAC5, 0, 0, 0xEAC4, 0xEAC7, 0xEAC6, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xEACB, 0xCAB1, 0xBBCE, 0, 0, 0, 0, /* 0x40 */
- 0, 0xBDFA, 0, 0, 0xC9CE, 0, 0, 0xEACC, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0xEACF, /* 0x50 */
- 0, 0, 0xCDED, 0, 0, 0xD6E7, 0, 0xEAC9, /* 0x50 */
- 0, 0xEACE, 0, 0, 0xCEEE, 0, 0xBBDE, 0, /* 0x60 */
- 0xB3BF, 0, 0, 0, 0, 0, 0xC6D5, 0xBEB0, /* 0x60 */
- 0xCEFA, 0, 0, 0, 0xC7E7, 0, 0xBEA7, 0xEAD0, /* 0x70 */
- 0, 0, 0xD6C7, 0, 0, 0, 0xC1C0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xEAD1, 0, 0, 0xCFBE, /* 0x80 */
- 0xD4CE, 0xEACD, 0, 0, 0xEAD2, 0, 0, 0, /* 0x80 */
- 0, 0xCAEE, 0, 0, 0, 0, 0xC5AF, 0xB0B5, /* 0x90 */
- 0, 0, 0, 0, 0, 0xEAD4, 0, 0, /* 0x90 */
- 0, 0, 0xB3A9, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xF4DF, 0, 0, 0xD4DD, 0, 0, 0xC4BA, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xB1A9, 0, 0, 0, /* 0xB0 */
- 0, 0xE5DF, 0, 0, 0, 0, 0xEAD5, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xEACA, 0, 0xF8CF, 0xEABC, /* 0xC0 */
- 0, 0xCFFE, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xEAD3, 0, /* 0xD0 */
- 0, 0xCAEF, 0, 0xEAD6, 0xEAD7, 0xC6D8, 0, 0, /* 0xD0 */
- 0xBFF5, 0, 0, 0, 0, 0, 0xEAD8, 0, /* 0xE0 */
- 0, 0xEAD9, 0, 0, 0xC9B9, 0, 0, 0, /* 0xE0 */
- 0xD4BB, 0, 0xC7FA, 0xD2B7, 0xB8FC, 0, 0, 0xEAC2, /* 0xF0 */
- 0xCAE9, 0xB2DC, 0, 0, 0xC2FC, 0, 0xD4F8, 0xCCE6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_67[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD7EE, 0, 0, 0xBBE1, 0, 0, 0, 0, /* 0x00 */
- 0xD4C2, 0xD3D0, 0xEBC3, 0xC5F3, 0, 0xB7FE, 0, 0, /* 0x00 */
- 0xEBD4, 0, 0, 0, 0xCBB7, 0xEBDE, 0, 0xC0CA, /* 0x10 */
- 0, 0, 0, 0xCDFB, 0, 0xB3AF, 0, 0xC6DA, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xEBFC, 0xEBCA, /* 0x20 */
- 0xC4BE, 0, 0xCEB4, 0xC4A9, 0xB1BE, 0xD4FD, 0, 0xF8E8, /* 0x20 */
- 0, 0xD6EC, 0, 0, 0xF8E0, 0xB6E4, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xD0E0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xB8CB, 0, /* 0x40 */
- 0xE8BE, 0xC9BC, 0, 0, 0xE8BB, 0, 0xC0EE, 0xD0D3, /* 0x40 */
- 0xB2C4, 0xB4E5, 0, 0xE8BC, 0, 0, 0xD5C8, 0, /* 0x50 */
- 0, 0, 0, 0, 0xB6C5, 0, 0xE8BD, 0xCAF8, /* 0x50 */
- 0xB8DC, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xE8C2, 0, 0, 0xBABC, 0, 0xB1AD, /* 0x60 */
- 0xBDDC, 0xB6AB, 0xEABD, 0xE8C3, 0, 0xE8C6, 0, 0xE8CB, /* 0x70 */
- 0, 0, 0, 0, 0xE8CC, 0, 0xF8E9, 0xB0E5, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xE8C1, /* 0x80 */
- 0, 0xCDF7, 0, 0xE8CA, 0, 0, 0, 0, /* 0x80 */
- 0xCEF6, 0, 0, 0, 0, 0xD5ED, 0, 0xC1D6, /* 0x90 */
- 0xE8C4, 0, 0xC3B6, 0, 0xB9FB, 0xD6A6, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0xBFDD, /* 0xA0 */
- 0xE8D2, 0, 0, 0xE8D7, 0, 0xE8D5, 0xBCDC, 0xBCCF, /* 0xB0 */
- 0xE8DB, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xE8DE, 0, 0xE8DA, 0xB1FA, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xB0D8, /* 0xC0 */
- 0xC4B3, 0xB8CC, 0xC6E2, 0xC8BE, 0xC8E1, 0, 0, 0, /* 0xD0 */
- 0xE8CF, 0xE8D4, 0xE8D6, 0, 0, 0xE8D8, 0xD7F5, 0, /* 0xD0 */
- 0, 0, 0xE8DC, 0, 0, 0xB2E9, 0, 0, /* 0xE0 */
- 0, 0xE8D1, 0, 0, 0xBCED, 0, 0, 0xBFC2, /* 0xE0 */
- 0xE8CD, 0xD6F9, 0, 0xC1F8, 0xB2F1, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0, 0xCAC1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_68[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE8D9, 0, 0, 0, 0, 0xD5A4, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0xCBA8, 0, 0, 0, 0xC0F5, /* 0x10 */
- 0, 0, 0, 0, 0, 0xE8E9, 0, 0, /* 0x10 */
- 0, 0xD0A3, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xE8F2, 0xD6EA, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xE8E0, 0xE8E1, 0, 0, 0, 0, /* 0x30 */
- 0xBACB, 0xB8F9, 0, 0, 0xB8F1, 0xD4D4, 0, 0, /* 0x30 */
- 0xE8EE, 0xE8EC, 0xB9F0, 0xCCD2, 0xE8E6, 0xCEA6, 0xBFF2, 0, /* 0x40 */
- 0xB0B8, 0xE8F1, 0xE8F0, 0, 0xD7C0, 0, 0xE8E4, 0, /* 0x40 */
- 0xCDA9, 0xC9A3, 0, 0xBBB8, 0xBDDB, 0xE8EA, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xE8F8, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xE8F5, 0, 0xCDB0, 0xE8F6, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xC1BA, 0, 0xE8E8, 0, 0xC3B7, 0xB0F0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0xE8F4, /* 0x80 */
- 0, 0, 0, 0xE8F7, 0, 0, 0, 0xB9A3, /* 0x90 */
- 0xE8C5, 0, 0, 0, 0, 0xCCF5, 0, 0xE8C9, /* 0x90 */
- 0, 0, 0xC9D2, 0, 0, 0, 0, 0xCEE0, /* 0xA0 */
- 0xC0E6, 0, 0, 0, 0, 0xCBF3, 0, 0xCCDD, /* 0xA0 */
- 0xD0B5, 0, 0, 0xCAE1, 0, 0xE8F3, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xC6FA, 0, 0, 0, /* 0xC0 */
- 0, 0xC3DE, 0, 0xC6E5, 0, 0xB9F7, 0, 0, /* 0xC0 */
- 0, 0, 0xB0F4, 0, 0, 0xD7D8, 0xE8C7, 0xD4E6, /* 0xD0 */
- 0xBCAC, 0, 0xC5EF, 0, 0, 0, 0, 0xB6B0, /* 0xD0 */
- 0xCCC4, 0, 0, 0xE9A6, 0, 0, 0, 0xD5BB, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xC9AD, 0, /* 0xE0 */
- 0xE9A2, 0xC0E2, 0xC6DC, 0, 0, 0xBFC3, 0, 0, /* 0xF0 */
- 0, 0xE8FE, 0xB9D7, 0, 0xE8FB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_69[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE9A4, 0, 0, 0, 0xD2CE, 0, 0, /* 0x00 */
- 0, 0, 0, 0xE9A3, 0, 0xD6B2, 0xD7B5, 0xE8E2, /* 0x00 */
- 0xE9A7, 0, 0xBDB7, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xD2AC, 0, 0, 0, 0xE9B2, 0, 0, 0, /* 0x30 */
- 0, 0xE9A9, 0, 0, 0, 0xB4AA, 0, 0xB4BB, /* 0x30 */
- 0, 0, 0xE9AB, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xD1EE, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xB7E3, 0xD0A8, 0, 0, 0xE9A5, /* 0x50 */
- 0, 0, 0xB3FE, 0, 0, 0xE9AC, 0xC0E3, 0, /* 0x50 */
- 0xE9AA, 0, 0, 0xE9B9, 0, 0, 0xE9B8, 0, /* 0x60 */
- 0xE8E5, 0, 0, 0xE9AE, 0, 0xD2B5, 0xE8FA, 0, /* 0x60 */
- 0, 0xE9A8, 0, 0, 0, 0xBCAB, 0, 0xBFAC, /* 0x70 */
- 0xE9B1, 0xE9BA, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xE9AF, 0, 0xB8C5, 0, 0, 0, 0xD3DC, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xE9C7, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0xC0C6, 0xE9C5, 0, 0, /* 0x90 */
- 0xE9B0, 0, 0, 0xE9BB, 0xB0F1, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xE9BC, /* 0xA0 */
- 0xD5A5, 0, 0xE8BF, 0xE9BE, 0, 0xE9BF, 0xC8D9, 0, /* 0xA0 */
- 0, 0xE9C1, 0, 0, 0xC1F1, 0, 0, 0xC8B6, /* 0xB0 */
- 0, 0, 0, 0xE9BD, 0, 0, 0, 0xE8E7, /* 0xB0 */
- 0, 0xE9C2, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xE9C3, 0xB9B9, 0xE9B3, 0xC7B9, 0xE9B6, 0, /* 0xC0 */
- 0xBBB1, 0, 0, 0, 0xE9C0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE8FD, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xE9CA, 0, 0, /* 0xE0 */
- 0, 0, 0xE9CE, 0xBDB0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0xB2DB, 0, 0xE9C8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_6A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD7AE, 0xC0D6, 0, 0, 0xE8C8, 0, 0, /* 0x00 */
- 0, 0, 0xB7AE, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0xC2A5, 0, 0, 0, 0xE9CB, /* 0x10 */
- 0xE9CC, 0xB1EA, 0, 0, 0, 0, 0xCAE0, 0xD5C1, /* 0x10 */
- 0, 0xC4A3, 0, 0xD1F9, 0, 0, 0, 0, /* 0x20 */
- 0xE9D8, 0, 0xBAE1, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xE9D4, 0, 0, /* 0x30 */
- 0xC6D3, 0xCAF7, 0xE8EB, 0, 0, 0xE9D7, 0xE9D0, 0, /* 0x30 */
- 0, 0, 0, 0, 0xE9CF, 0, 0, 0xC7C1, /* 0x40 */
- 0xE8E3, 0, 0, 0xC7C5, 0, 0, 0, 0, /* 0x40 */
- 0xE9D2, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xE9D9, 0xB3C8, 0, 0xE9D3, 0, 0, 0, 0xBBFA, /* 0x50 */
- 0, 0xCFF0, 0xCDD6, 0, 0, 0xE9CD, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xB3F7, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xCCB4, 0, 0, 0, 0xCFAD, 0, 0, 0, /* 0x80 */
- 0, 0xE8DF, 0, 0, 0, 0, 0xE9D5, 0, /* 0x80 */
- 0xE9DC, 0xE9DB, 0, 0, 0xB5B5, 0, 0, 0xE9DE, /* 0x90 */
- 0, 0, 0, 0, 0xE8ED, 0, 0, 0, /* 0x90 */
- 0xE9D1, 0, 0xBCEC, 0xE9C9, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xE9DD, 0, 0xE9DF, 0xC3CA, 0, 0, 0xF8ED, /* 0xA0 */
- 0, 0, 0, 0xE9C4, 0, 0, 0, 0, /* 0xB0 */
- 0xC4FB, 0, 0, 0xBCF7, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xB9F1, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xE9D6, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xE9B5, 0xE8CE, 0, 0xE8FC, 0xE9DA, 0xE8DD, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE9C6, /* 0xE0 */
- 0xE8D3, 0, 0xE8C0, 0, 0xE9B4, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xE8D0, 0, 0, 0, 0, /* 0xF0 */
- 0xE9B7, 0, 0, 0xD3A3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_6B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC0B8, 0, 0, 0, /* 0x00 */
- 0, 0, 0xC8A8, 0, 0, 0, 0, 0xE9A1, /* 0x00 */
- 0, 0, 0xE8EF, 0, 0, 0, 0xE9AD, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xE8F9, 0, /* 0x10 */
- 0xC7B7, 0xB4CE, 0, 0xD0C0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xD3FB, 0, 0, 0, 0, 0xECA4, /* 0x30 */
- 0, 0xECA5, 0xC6DB, 0, 0, 0xC7D5, 0xBFEE, 0, /* 0x30 */
- 0, 0, 0, 0xECA6, 0, 0, 0xECA7, 0xD0AA, /* 0x40 */
- 0, 0xC7B8, 0, 0, 0xB8E8, 0, 0, 0, /* 0x40 */
- 0xC5B7, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xECA8, 0, 0, 0, 0, 0, 0xECA3, /* 0x50 */
- 0, 0xBBB6, 0xD6B9, 0xD5FD, 0xB4CB, 0xB2BD, 0xCEE4, 0xC6E7, /* 0x60 */
- 0, 0, 0xCDE1, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xCBEA, 0, 0, 0, 0, 0xC0FA, /* 0x70 */
- 0xB9E9, 0xB4F5, 0, 0xCBC0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xE9E2, 0xE9E3, 0xD1EA, 0xE9E5, 0, 0xB4F9, 0, /* 0x80 */
- 0, 0xD1B3, 0xCAE2, 0, 0, 0xE9E8, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xD6B3, 0, /* 0x90 */
- 0xB2D0, 0, 0, 0xE9EA, 0, 0, 0xE9E6, 0, /* 0x90 */
- 0, 0, 0, 0, 0xE9E4, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xE9EC, 0xE9E9, 0, 0, 0xE9E7, 0xE9EB, /* 0xA0 */
- 0, 0, 0xBCDF, 0xECAF, 0, 0xB6CE, 0, 0xD2F3, /* 0xB0 */
- 0, 0, 0xC9B1, 0xBFC7, 0, 0, 0, 0xB5EE, /* 0xB0 */
- 0, 0xBBD9, 0, 0, 0, 0xD2E3, 0xC5B9, 0, /* 0xC0 */
- 0, 0, 0, 0xCEE3, 0, 0xC4B8, 0, 0xC3BF, /* 0xC0 */
- 0, 0, 0xB6BE, 0xD8B9, 0xB1C8, 0, 0xB1D1, 0xC5FE, /* 0xD0 */
- 0, 0, 0, 0xC3AB, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0xEBA4, 0xBAC1, 0, 0, 0, 0xCCBA, /* 0xE0 */
- 0, 0, 0, 0xEBA5, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xEBA8, 0, 0, 0, 0xEBA6, 0, 0xEBA7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_6C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEBA9, 0xEBAB, 0, /* 0x00 */
- 0xD5B1, 0, 0, 0, 0xEBAA, 0xEBAC, 0, 0xCACF, /* 0x00 */
- 0xD8B5, 0xC3F1, 0, 0xC3A5, 0, 0xEBAD, 0xC4CA, 0, /* 0x10 */
- 0xEBAE, 0xEBAF, 0xEBB0, 0xB7D5, 0, 0, 0, 0xB7FA, /* 0x10 */
- 0, 0xEBB1, 0, 0xC6F8, 0xEBB3, 0, 0xBAA4, 0xD1F5, /* 0x20 */
- 0xB0B1, 0, 0xEBB4, 0xC7E2, 0xEBB2, 0, 0xB5AA, 0xC2C8, /* 0x20 */
- 0xC7E8, 0, 0xEBB5, 0, 0xCBAE, 0xE3DF, 0, 0, /* 0x30 */
- 0xD3C0, 0, 0, 0, 0, 0xD9DB, 0, 0, /* 0x30 */
- 0xCDA1, 0xD6AD, 0xC7F3, 0, 0, 0, 0xD9E0, 0, /* 0x40 */
- 0, 0, 0xE3E2, 0, 0, 0, 0, 0, /* 0x40 */
- 0xCFAB, 0, 0, 0, 0xE3E0, 0xC9C7, 0, 0xBAB9, /* 0x50 */
- 0, 0, 0, 0xD1B4, 0xE3E1, 0xC8EA, 0xB9AF, 0xBDAD, /* 0x50 */
- 0xB3D8, 0xCEDB, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0xE3E8, 0xE3E9, 0xCDF4, 0, 0, 0, 0, 0, /* 0x60 */
- 0xCCAD, 0, 0xBCB3, 0, 0xE3EA, 0, 0xE3EB, 0, /* 0x70 */
- 0, 0xD0DA, 0, 0, 0, 0xC6FB, 0xB7DA, 0, /* 0x70 */
- 0, 0xC7DF, 0xD2CA, 0xCED6, 0, 0xE3E4, 0xE3EC, 0, /* 0x80 */
- 0xC9F2, 0xB3C1, 0, 0, 0xE3E7, 0, 0, 0xC6E3, /* 0x80 */
- 0xE3E5, 0, 0, 0xEDB3, 0xE3E6, 0, 0, 0, /* 0x90 */
- 0, 0xC9B3, 0, 0xC5E6, 0, 0, 0, 0, /* 0x90 */
- 0, 0xC3BB, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xC4AD, 0, 0xE3F0, 0xBEDA, 0, /* 0xA0 */
- 0, 0xE3FB, 0xE3F5, 0xBAD3, 0, 0, 0, 0, /* 0xB0 */
- 0xB7D0, 0xD3CD, 0, 0xD6CE, 0xD5D3, 0xB9C1, 0xD5B4, 0xD1D8, /* 0xB0 */
- 0, 0, 0, 0, 0xD0B9, 0xC7F6, 0, 0, /* 0xC0 */
- 0, 0xC8AA, 0xB2B4, 0, 0xC3DA, 0, 0, 0, /* 0xC0 */
- 0xE3EE, 0, 0, 0xE3FC, 0xE3EF, 0xB7A8, 0xE3F7, 0xE3F4, /* 0xD0 */
- 0, 0, 0, 0xB7BA, 0, 0, 0, 0, /* 0xD0 */
- 0xE3F6, 0xC5DD, 0xB2A8, 0xC6FC, 0, 0xC4E0, 0, 0, /* 0xE0 */
- 0xD7A2, 0, 0xC0E1, 0xE3F9, 0, 0, 0xE3FA, 0xE3FD, /* 0xE0 */
- 0xCCA9, 0xE3F3, 0, 0xD3BE, 0, 0xB1C3 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_6D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE4A7, 0, 0, 0xE4A6, /* 0x00 */
- 0, 0, 0, 0xD1F3, 0xE4A3, 0, 0xE4A9, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0xCFB4, /* 0x10 */
- 0, 0xE4A8, 0xE4AE, 0xC2E5, 0, 0, 0xB6B4, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xBDF2, 0, 0xE4A2, /* 0x20 */
- 0, 0, 0xBAE9, 0xE4AA, 0, 0, 0xE4AC, 0, /* 0x20 */
- 0, 0xB6FD, 0xD6DE, 0xE4B2, 0, 0xE4AD, 0, 0, /* 0x30 */
- 0, 0xE4A1, 0, 0xBBEE, 0, 0xC7A2, 0xC5C9, 0, /* 0x30 */
- 0, 0xC1F7, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD5E3, 0xBFA3, 0, 0xE4BA, 0, 0xE4B7, 0, /* 0x50 */
- 0xE4BB, 0, 0, 0xE4BD, 0, 0, 0xC6D6, 0, /* 0x60 */
- 0, 0xBAC6, 0xC0CB, 0, 0, 0, 0xB8A1, 0xE4B4, /* 0x60 */
- 0, 0, 0, 0, 0xD4A1, 0, 0, 0xBAA3, /* 0x70 */
- 0xBDFE, 0xE4A4, 0, 0, 0xE4BC, 0, 0, 0, /* 0x70 */
- 0, 0, 0xF8EF, 0, 0, 0xC4F9, 0, 0xE3FE, /* 0x80 */
- 0xCFFB, 0xC9E6, 0, 0, 0xD3BF, 0, 0xCFD1, 0, /* 0x80 */
- 0, 0xE4B3, 0, 0xE4B8, 0xE4B9, 0xCCE9, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xB8A2, 0xE4CA, 0, 0, 0xE4CC, 0xD1C4, /* 0xA0 */
- 0, 0, 0xD2BA, 0, 0, 0xBAAD, 0, 0, /* 0xB0 */
- 0xBAD4, 0, 0, 0, 0, 0, 0, 0xE4C3, /* 0xB0 */
- 0xF8AD, 0, 0, 0, 0xD7CD, 0xE4C0, 0xCFFD, 0xE4BF, /* 0xC0 */
- 0, 0, 0, 0xC1DC, 0xCCCA, 0, 0, 0, /* 0xC0 */
- 0, 0xCAE7, 0, 0, 0, 0, 0xC4D7, 0, /* 0xD0 */
- 0xCCD4, 0xE4C8, 0, 0, 0, 0xE4C7, 0xE4C1, 0, /* 0xD0 */
- 0xE4C4, 0xB5AD, 0, 0, 0xD3D9, 0, 0xE4C6, 0, /* 0xE0 */
- 0, 0, 0xC2D9, 0xD2F9, 0xB4E3, 0, 0xBBB4, 0, /* 0xE0 */
- 0, 0xC9EE, 0, 0xB4BE, 0, 0xD4A8, 0xE4B5, 0xBBEC, /* 0xF0 */
- 0, 0xD1CD, 0xC7B3, 0xCCED, 0xEDB5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_6E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC7E5, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0xE4CB, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xBBC1, 0xE4BE, 0, 0, 0xD3E5, 0, 0, /* 0x10 */
- 0xC7FE, 0xB6C9, 0, 0xD4FC, 0xB2B3, 0xE4D7, 0xCED0, 0, /* 0x20 */
- 0, 0xCEC2, 0, 0xE4CD, 0xB2E2, 0xCEBC, 0, 0xB8DB, /* 0x20 */
- 0, 0, 0xE4D6, 0, 0xBFCA, 0, 0, 0, /* 0x30 */
- 0xD3CE, 0, 0xC3EC, 0, 0, 0, 0xBBEB, 0, /* 0x30 */
- 0, 0, 0, 0xC5C8, 0xE4D8, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xCDC4, 0xE4CF, 0, /* 0x40 */
- 0, 0, 0, 0xE4D4, 0xE4D5, 0, 0xBAFE, 0, /* 0x50 */
- 0xCFE6, 0, 0, 0xD5BF, 0, 0, 0xE4A5, 0xE4D2, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xE4D0, 0, 0, 0xE4CE, 0xCCC0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xE4D3, 0, /* 0x80 */
- 0, 0xB8C8, 0, 0, 0, 0, 0, 0xE4E7, /* 0x80 */
- 0xD4B4, 0, 0, 0, 0, 0, 0xD7BC, 0, /* 0x90 */
- 0xE4DB, 0, 0, 0, 0xC1EF, 0xB9B5, 0, 0xE4E9, /* 0x90 */
- 0, 0, 0xD2E7, 0, 0, 0xE4DF, 0, 0xE4E0, /* 0xA0 */
- 0, 0, 0xCFAA, 0, 0, 0, 0, 0xCBDD, /* 0xA0 */
- 0, 0xE4DA, 0xE4D1, 0, 0xE4E5, 0, 0xC8DC, 0xE4E3, /* 0xB0 */
- 0, 0, 0xC4E7, 0xE4E2, 0, 0xE4E1, 0, 0, /* 0xB0 */
- 0, 0xB3FC, 0xE4E8, 0, 0xB2D7, 0xC3F0, 0, 0xB5E1, /* 0xC0 */
- 0, 0, 0, 0xD7CC, 0xB5D3, 0, 0xDCFE, 0xE4E6, /* 0xC0 */
- 0, 0xBBAC, 0, 0xD7D2, 0xCCCF, 0xEBF8, 0, 0, /* 0xD0 */
- 0, 0, 0xB9F6, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xBBA6, 0, 0, 0xD6CD, /* 0xE0 */
- 0, 0, 0xC9F8, 0, 0xB5CE, 0, 0, 0xC2B1, /* 0xF0 */
- 0xE4B0, 0xE4EF, 0, 0, 0, 0, 0, 0xC2FA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_6F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD3E6, 0xC6AF, 0, 0, 0, 0xC6E1, 0, /* 0x00 */
- 0, 0xE4F5, 0, 0, 0, 0, 0, 0xC2A9, /* 0x00 */
- 0, 0, 0, 0, 0xD1DD, 0xE4EE, 0, 0, /* 0x10 */
- 0, 0, 0xC5BD, 0, 0, 0, 0, 0, /* 0x10 */
- 0xC4AE, 0, 0xBABA, 0xC1B0, 0xE4ED, 0, 0, 0, /* 0x20 */
- 0, 0xE4F6, 0xE4F4, 0xC2FE, 0xD7D5, 0xE4DD, 0, 0xE4F0, /* 0x20 */
- 0, 0xCAFE, 0xD5C7, 0xD5C4, 0, 0, 0xE4F1, 0, /* 0x30 */
- 0xBDA5, 0, 0, 0, 0, 0, 0xD1FA, 0xBDAC, /* 0x30 */
- 0, 0xF2A3, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xC6C3, 0, 0, 0xBDE0, 0, 0, 0, /* 0x50 */
- 0xC5CB, 0xE3ED, 0, 0xC7B1, 0, 0, 0xC2BA, 0, /* 0x50 */
- 0, 0, 0xE4EA, 0, 0xC8F3, 0, 0xC1CA, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xCCB6, 0xB3B1, 0xE4B1, /* 0x60 */
- 0xC0A3, 0, 0xE4FB, 0, 0xE4F3, 0, 0, 0xE4E4, /* 0x70 */
- 0xE4FA, 0, 0xE4FD, 0, 0xE4FC, 0, 0, 0xE4B6, /* 0x70 */
- 0xC9AC, 0, 0, 0, 0xB3CE, 0, 0xBDBD, 0xC0D4, /* 0x80 */
- 0xB3BA, 0xE4F7, 0, 0, 0xE4F9, 0xE4F8, 0xC5EC, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0xBDA7, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xE4C5, 0xD4E8, 0, 0, 0xD4F3, 0, 0, 0xE5A2, /* 0xA0 */
- 0, 0xEDB4, 0, 0, 0, 0, 0xE4AB, 0, /* 0xA0 */
- 0, 0xB5ED, 0, 0xB0C4, 0, 0, 0xE5A4, 0, /* 0xB0 */
- 0, 0xE5A3, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xBCA4, 0xD7C7, 0xE5A5, 0xC5A8, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xE5A1, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xCAAA, 0, 0, /* 0xD0 */
- 0xC5A2, 0, 0, 0xF8D5, 0, 0, 0xE5A8, 0xBCC3, /* 0xD0 */
- 0xE5A9, 0xE5A6, 0, 0, 0xCCCE, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xC0C4, 0, 0, 0xE5A7, 0xE5AA, /* 0xE0 */
- 0xCEAB, 0xB1F5, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0xBDA6, 0, 0xE3F8, 0, 0xC2CB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_70[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE4DE, 0xE4C2, 0, /* 0x00 */
- 0, 0xD0BA, 0, 0xE4C9, 0, 0, 0, 0xE4AF, /* 0x00 */
- 0, 0xC6D9, 0, 0, 0, 0xB1F4, 0, 0, /* 0x10 */
- 0xE3F2, 0, 0xE5AB, 0xE5AD, 0, 0xC1A4, 0, 0xE4EC, /* 0x10 */
- 0xE4EB, 0, 0, 0xE5AC, 0, 0, 0, 0xE3F1, /* 0x20 */
- 0xE4FE, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xF8D8, 0, 0xE4F2, 0, 0, 0xE5AF, 0, 0, /* 0x30 */
- 0, 0xE5AE, 0, 0, 0, 0, 0xC0BD, 0, /* 0x30 */
- 0, 0, 0, 0xE3E3, 0xE4DC, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xB9E0, 0, 0, 0, /* 0x40 */
- 0, 0xC8F7, 0, 0, 0, 0xC0EC, 0, 0, /* 0x50 */
- 0xCCB2, 0, 0, 0, 0, 0xE5B0, 0xE5B1, 0, /* 0x50 */
- 0, 0, 0, 0xCDE5, 0xC2D0, 0, 0, 0xE4D9, /* 0x60 */
- 0, 0, 0, 0xBBF0, 0xECE1, 0, 0, 0, /* 0x60 */
- 0xBBD2, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xBEC4, 0, 0, 0, 0xD7C6, 0, 0xD4D6, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xEAC1, 0, 0, /* 0x80 */
- 0, 0, 0xB4B6, 0, 0, 0, 0xD1D7, 0, /* 0x80 */
- 0, 0, 0xB3B4, 0, 0xC8B2, 0xBFBB, 0xECC0, 0, /* 0x90 */
- 0, 0xD6CB, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xECC5, 0xBEE6, 0xCCBF, 0xC5DA, 0xBEBC, /* 0xA0 */
- 0, 0xECC6, 0, 0xB1FE, 0, 0, 0, 0xECC4, /* 0xB0 */
- 0xD5A8, 0, 0, 0xECC2, 0, 0, 0, 0, /* 0xB0 */
- 0xECC3, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xC1D2, 0, 0xECC8, 0, 0, 0, 0, 0xCEDA, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xBAE6, 0xC0D3, 0, 0, 0, 0, 0, 0xD1CC, /* 0xD0 */
- 0, 0, 0, 0, 0xBFBE, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0xCFA9, /* 0xE0 */
- 0, 0, 0, 0, 0xCCFE, 0, 0, 0xCDE9, /* 0xF0 */
- 0, 0xC5EB, 0, 0, 0, 0xB7E9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_71[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xD1C9, 0xBAB8, 0, 0, 0, 0, 0, /* 0x00 */
- 0xECC9, 0, 0, 0xECCA, 0, 0, 0, 0, /* 0x10 */
- 0, 0xB1BA, 0xB7D9, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xCEDE, 0, 0, 0, 0, 0xBDB9, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0xECCC, /* 0x20 */
- 0xD1E6, 0xECCD, 0, 0, 0, 0, 0xC8BB, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xECD1, 0, 0, /* 0x40 */
- 0, 0xC1B6, 0xECD3, 0, 0xBBCD, 0, 0xBCE5, 0, /* 0x40 */
- 0, 0, 0xECBF, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0xECCF, 0, 0xC9B7, 0, /* 0x50 */
- 0, 0, 0xDCE4, 0, 0xC3BA, 0xBBC0, 0xECE3, 0xD5D5, /* 0x60 */
- 0xECD0, 0xB7B3, 0, 0, 0xECBE, 0, 0xD6F3, 0, /* 0x60 */
- 0, 0, 0xECD2, 0xECCE, 0, 0, 0, 0, /* 0x70 */
- 0xECD4, 0, 0xECD5, 0, 0, 0xC9BF, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xCFA8, 0, 0, 0, /* 0x80 */
- 0, 0, 0xD0DC, 0, 0, 0, 0, 0xD1AC, /* 0x80 */
- 0, 0, 0xD3AB, 0, 0xC8DB, 0, 0, 0xECC1, /* 0x90 */
- 0xECD6, 0xCEF5, 0, 0, 0, 0, 0, 0xCAEC, /* 0x90 */
- 0xECDA, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xECD9, 0, 0, 0, 0xB0BE, 0, 0, 0, /* 0xA0 */
- 0, 0xC8C8, 0, 0xECD7, 0, 0xECD8, 0, 0, /* 0xB0 */
- 0, 0xECE4, 0, 0, 0, 0, 0xB3E3, 0, /* 0xB0 */
- 0, 0xECC7, 0, 0xC8BC, 0, 0, 0, 0, /* 0xC0 */
- 0xB5C6, 0, 0, 0, 0, 0, 0xC1C7, 0, /* 0xC0 */
- 0, 0, 0xC9D5, 0, 0xECDC, 0xD1E0, 0, 0, /* 0xD0 */
- 0, 0xCCCC, 0, 0, 0xECCB, 0, 0, 0xD3AA, /* 0xD0 */
- 0xECDB, 0, 0, 0, 0, 0xD4EF, 0xB2D3, 0xECDD, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xD6F2, 0xDBC6, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xBBE2, 0, 0, 0, /* 0xF0 */
- 0, 0xECDE, 0, 0, 0xBDFD, 0, 0xECE2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_72[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB1AC, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0xCBB8, 0, 0, /* 0x00 */
- 0xC2AF, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xC0C3, 0, 0xECDF, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xECE0, 0, 0xD7A6, 0, 0xC5C0, 0xD5F9, 0, 0, /* 0x20 */
- 0xEBBC, 0, 0xCEAA, 0, 0, 0xBEF4, 0xB8B8, 0, /* 0x30 */
- 0xB0D6, 0xB5F9, 0xD2AF, 0xD8B3, 0, 0xCBAC, 0xB6FB, 0xE3DD, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0xC6AC, /* 0x40 */
- 0xB0E6, 0, 0, 0, 0xC5C6, 0, 0, 0, /* 0x40 */
- 0, 0, 0xEBBA, 0, 0, 0, 0xEBBB, 0, /* 0x50 */
- 0xEBB9, 0xD1C0, 0, 0xC5A3, 0, 0xEAF2, 0, 0xC4B2, /* 0x50 */
- 0, 0xC4B5, 0xC0CE, 0, 0, 0, 0xEAF3, 0xC4C1, /* 0x60 */
- 0, 0xCEEF, 0, 0, 0, 0, 0xEAF0, 0xEAF4, /* 0x60 */
- 0, 0, 0xC9FC, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xCCD8, 0, 0, 0, 0xC7A3, 0xEAF5, 0xEAF6, /* 0x70 */
- 0xCFAC, 0xC0E7, 0, 0, 0xEAF7, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xEAF8, 0, 0xEAF9, 0, 0xEAFA, /* 0x80 */
- 0, 0, 0xEAFB, 0, 0, 0, 0xDCFD, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xEAF1, /* 0x90 */
- 0, 0, 0xB6BF, 0, 0, 0, 0, 0xCEFE, /* 0xA0 */
- 0, 0, 0, 0, 0xC8AE, 0xE1EB, 0, 0xB7B8, /* 0xA0 */
- 0xE1EC, 0, 0, 0, 0xE1ED, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xD7B4, 0xE1F1, 0xBFF1, 0xE1F0, 0xB5D2, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xE1F3, 0xE1F2, 0, /* 0xC0 */
- 0xBAFC, 0, 0xE1F4, 0, 0, 0, 0, 0xB9B7, /* 0xD0 */
- 0, 0xBED1, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xBADD, 0xBDC6, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xE1F5, 0xE1F7, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xE1FC, 0xE1F9, 0, 0, 0xE1FA, /* 0xF0 */
- 0xC0EA, 0xCFC1, 0xE1FE, 0xE2A1, 0xC0C7, 0xB1B7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_73[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE1FB, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xE2A5, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0xE2A3, 0, 0, 0xB2FE, 0xE2A2, /* 0x10 */
- 0, 0xD5F8, 0, 0xC3CD, 0xB2C2, 0xE2A7, 0xE2A6, 0, /* 0x10 */
- 0, 0, 0xE2A9, 0, 0, 0xE2AB, 0, 0, /* 0x20 */
- 0, 0xD0C9, 0xD6ED, 0xC3A8, 0xE2AC, 0, 0, 0, /* 0x20 */
- 0, 0xE2AE, 0, 0, 0xBAEF, 0, 0xD3CC, 0xE9E0, /* 0x30 */
- 0xE2AD, 0xE2AA, 0, 0xE1F8, 0, 0, 0xBBAB, 0xD4B3, /* 0x30 */
- 0, 0xE1EF, 0, 0, 0xD3FC, 0xCAA8, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xE2B0, 0, 0, /* 0x40 */
- 0xE2AF, 0, 0xE9E1, 0, 0, 0, 0, 0xE2B1, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xE2B2, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0xB6C0, 0, 0xE1F6, 0xE1FD, 0xE2B3, 0, 0, 0xE2B4, /* 0x60 */
- 0xC4FC, 0, 0xBBF1, 0, 0, 0xC1D4, 0, 0xE1EE, /* 0x70 */
- 0xCADE, 0, 0xCCA1, 0xCFD7, 0xE2A8, 0, 0xE2B5, 0, /* 0x70 */
- 0xE2A4, 0, 0, 0, 0xD0FE, 0, 0, 0xC2CA, /* 0x80 */
- 0, 0xD3F1, 0, 0xCDF5, 0, 0, 0xE7E0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xBEC1, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xE7E4, /* 0x90 */
- 0, 0, 0xE7E3, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xCDE6, 0, 0xC3B5, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xC1E1, 0xE7E9, 0, 0, 0, 0xE7E8, /* 0xB0 */
- 0, 0, 0, 0xB2A3, 0, 0, 0, 0, /* 0xB0 */
- 0xE7EA, 0, 0xE7E6, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xE7EC, 0xE7EB, 0xC9BA, 0, 0, 0xD5E4, 0, 0xE7E5, /* 0xC0 */
- 0xB7A9, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xE7EE, 0, 0, 0, 0, 0xE7F3, 0, /* 0xD0 */
- 0xD6E9, 0, 0, 0, 0, 0xE7ED, 0, 0xE7F2, /* 0xE0 */
- 0, 0xE7F1, 0, 0, 0, 0xB0E0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0xCFD6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_74[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC7F2, 0, 0xC0C5, 0xC0ED, 0, /* 0x00 */
- 0, 0xC1F0, 0xE7F0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0xE8A2, 0xE8A1, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0xD7C1, 0, 0, 0xE7FA, 0xE7F9, 0, /* 0x20 */
- 0xE7FB, 0, 0xE7F7, 0, 0xE7FE, 0, 0xE7FD, 0, /* 0x20 */
- 0xE7FC, 0, 0, 0xC1D5, 0xC7D9, 0xC5FD, 0xC5C3, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0xE7F5, /* 0x30 */
- 0, 0xE8A3, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xE7E2, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xE8A6, 0, 0xE8A5, /* 0x50 */
- 0, 0xE8A7, 0xBAF7, 0xE7F8, 0xE8A4, 0, 0xC8F0, 0xC9AA, /* 0x50 */
- 0, 0, 0, 0xCBF6, 0, 0, 0, 0, /* 0x60 */
- 0, 0xD3A8, 0xC2EA, 0, 0, 0xE8A9, 0, 0, /* 0x60 */
- 0xB9E5, 0, 0, 0, 0, 0, 0xD1FE, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xE8AA, 0, /* 0x70 */
- 0xE8AD, 0xE8AE, 0, 0xC1A7, 0, 0, 0, 0xE8AF, /* 0x80 */
- 0, 0xE7F6, 0, 0xE8B0, 0, 0, 0, 0, /* 0x80 */
- 0xE8B4, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xE8AB, 0, 0xE8B1, 0, /* 0x90 */
- 0, 0, 0, 0xE7E1, 0, 0, 0xE8A8, 0xE8B5, /* 0xA0 */
- 0xE8B2, 0xE8B3, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xBBB7, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xE8B7, 0, 0, 0xE7F4, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xC7ED, 0, 0, 0, 0, 0xE7E7, /* 0xC0 */
- 0, 0, 0, 0, 0xE8AC, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xE8B6, 0, 0xB9CF, 0, 0xF0AC, 0, /* 0xD0 */
- 0xF0AD, 0, 0xC6B0, 0xB0EA, 0xC8BF, 0, 0xCDDF, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xCECD, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xEAB2, 0, 0xC6BF, 0xB4C9, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0, 0xEAB3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_75[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD5E7, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0xEAB1, 0xDDF9, 0, 0xEAB4, /* 0x00 */
- 0, 0xEAB5, 0, 0xEAB6, 0, 0, 0, 0, /* 0x10 */
- 0xB8CA, 0xDFB0, 0xC9F5, 0, 0xCCF0, 0, 0, 0xC9FA, /* 0x10 */
- 0, 0, 0, 0xB2FA, 0, 0xC9FB, 0, 0, /* 0x20 */
- 0xD3C3, 0xCBA6, 0, 0xB8A6, 0xF0AE, 0xB1C2, 0, 0xE5B8, /* 0x20 */
- 0xCCEF, 0xD3C9, 0xBCD7, 0xC9EA, 0, 0, 0, 0xC4D0, /* 0x30 */
- 0xB5E9, 0, 0xEEAE, 0, 0, 0, 0xE7DE, 0, /* 0x30 */
- 0xEEAF, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xEEB2, 0, 0, 0xEEB1, 0xBDE7, 0, 0xEEB0, 0xCEB7, /* 0x40 */
- 0, 0, 0, 0, 0xC5CF, 0, 0, 0, /* 0x50 */
- 0, 0xC1F4, 0xDBCE, 0xEEB3, 0xD0F3, 0xC4B6, 0, 0, /* 0x50 */
- 0, 0, 0xB1CF, 0, 0, 0xC2D4, 0xC6E8, 0, /* 0x60 */
- 0, 0, 0xB7AC, 0xBBAD, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xEEB4, 0, 0, 0, 0xB5B1, 0, /* 0x70 */
- 0xBBFB, 0xEEB5, 0, 0, 0, 0, 0, 0xE7DC, /* 0x70 */
- 0, 0, 0, 0xEEB6, 0, 0, 0xBDAE, 0xB3EB, /* 0x80 */
- 0, 0, 0xB5FE, 0xF1E2, 0, 0, 0, 0xCAE8, /* 0x80 */
- 0, 0xD2C9, 0xF0DA, 0, 0xF0DB, 0, 0, 0, /* 0x90 */
- 0, 0xB8ED, 0xBECE, 0, 0, 0xF0DE, 0, 0, /* 0x90 */
- 0, 0, 0, 0xF0E0, 0xB0CC, 0xBDEA, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xD2DF, 0, 0, 0, 0, /* 0xA0 */
- 0xF0E6, 0xF0E5, 0xC6A3, 0xF0E1, 0xF0E2, 0xB4C3, 0, 0, /* 0xB0 */
- 0xF0E3, 0xD5EE, 0, 0, 0xCCDB, 0xBED2, 0xBCB2, 0, /* 0xB0 */
- 0, 0, 0xF0E8, 0xF0E7, 0xF0E4, 0xB2A1, 0, 0xF9A1, /* 0xC0 */
- 0, 0, 0xC8AC, 0, 0, 0xF0EA, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xD6CC, 0xBADB, 0, 0, /* 0xD0 */
- 0xB6BB, 0xBEB7, 0, 0xCDB4, 0, 0, 0xC6A6, 0, /* 0xD0 */
- 0, 0, 0xC1A1, 0xF0EB, 0xF0EE, 0, 0xF0ED, 0xF0F0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xCCB5, 0xF0F2, 0, 0, 0xB3D5, 0, 0, 0, /* 0xF0 */
- 0, 0xB1D4, 0, 0, 0xF0F3, 0, 0, 0xF0F4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_76[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF0F6, 0xB4E1, 0xF0E9, 0xF0F1, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xF0FA, 0xB7E8, 0xF0F8, 0xD1F1, 0, 0, /* 0x00 */
- 0xF0F5, 0, 0, 0xBBBE, 0, 0xF0FD, 0, 0, /* 0x10 */
- 0, 0xF0FE, 0, 0xF1A1, 0, 0, 0xF0F9, 0xCEC1, /* 0x10 */
- 0xF1A4, 0xB4AF, 0xF1A3, 0, 0xC1F6, 0xF0FB, 0xCADD, 0xC5B1, /* 0x20 */
- 0, 0xB4F1, 0, 0, 0, 0xF1A6, 0, 0, /* 0x20 */
- 0xF1A7, 0, 0, 0xF1AC, 0xD5CE, 0xF1A9, 0, 0, /* 0x30 */
- 0xC8B3, 0, 0, 0xF0FC, 0xF1A2, 0, 0, 0, /* 0x30 */
- 0xF1A5, 0, 0xC1C6, 0xF1AA, 0, 0, 0xF0EC, 0xF0EF, /* 0x40 */
- 0, 0xF0F7, 0, 0, 0xB0A9, 0xF1AD, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xF1AF, 0, 0xF1B1, 0, /* 0x50 */
- 0xF0DD, 0, 0, 0, 0xF1B0, 0, 0, 0xB1F1, /* 0x50 */
- 0, 0, 0xD1F7, 0, 0xF0DC, 0xD6A2, 0, 0xF0DF, /* 0x60 */
- 0, 0xF1AE, 0, 0, 0xD1A2, 0xF1A8, 0xF1AB, 0xF1B3, /* 0x60 */
- 0xD3B8, 0xCCB1, 0xF1B2, 0, 0, 0, 0, 0, /* 0x70 */
- 0xB9EF, 0, 0, 0xB5C7, 0xB7A2, 0xB0D7, 0xB0D9, 0, /* 0x70 */
- 0, 0, 0xD4ED, 0, 0xB5C4, 0, 0xBDD4, 0xBBCA, /* 0x80 */
- 0xF0A7, 0, 0, 0xB8DE, 0, 0, 0xF0A8, 0, /* 0x80 */
- 0, 0, 0, 0xF0A9, 0, 0, 0xCDEE, 0, /* 0x90 */
- 0, 0xF0AA, 0xB0A8, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xF0AB, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xC6A4, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xF1E5, 0, 0, 0, /* 0xB0 */
- 0xF1E4, 0, 0xD6E5, 0, 0, 0, 0, 0xC3F3, /* 0xB0 */
- 0, 0, 0xD3DB, 0, 0, 0xD6D1, 0xC5E8, 0, /* 0xC0 */
- 0xD3AF, 0, 0xD2E6, 0, 0, 0xEEC1, 0xB0BB, 0, /* 0xC0 */
- 0, 0, 0xBAD0, 0, 0xBFF8, 0, 0, 0xB5C1, /* 0xD0 */
- 0, 0, 0, 0xCAA2, 0, 0, 0xD5B5, 0xC3CB, /* 0xD0 */
- 0, 0xBEA1, 0, 0xBCE0, 0xC5CC, 0xEEC2, 0, 0xC2AC, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xC4BF, 0xB6A2, /* 0xE0 */
- 0, 0xEDEC, 0xC3A4, 0, 0xD6B1, 0, 0, 0, /* 0xF0 */
- 0xCFE0, 0xEDEF, 0, 0, 0xC5CE, 0, 0xB6DC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_77[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCAA1, 0, 0, 0xEDED, 0, 0, 0xEDF0, /* 0x00 */
- 0xEDF1, 0xC3BC, 0, 0xBFB4, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xEDF4, 0xEDF2, 0, 0, 0, 0, 0xD5E6, /* 0x10 */
- 0xC3DF, 0, 0xEDF3, 0, 0, 0, 0xEDF6, 0, /* 0x20 */
- 0xD5A3, 0xD1A3, 0, 0, 0, 0xEDF5, 0, 0xC3D0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xEDF7, 0xBFF4, 0xBEEC, /* 0x30 */
- 0xEDF8, 0, 0xCCF7, 0, 0xD1DB, 0, 0, 0, /* 0x30 */
- 0xD7C5, 0, 0, 0xEDFC, 0, 0, 0, 0xEDFB, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0xF8CA, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0xEDFD, 0xBEA6, 0xD5F6, 0, 0xEDF9, 0, /* 0x50 */
- 0, 0xCBAF, 0xEEA1, 0xB6BD, 0, 0xEEA2, 0xC4C0, 0, /* 0x60 */
- 0xEDFE, 0, 0, 0xBDDE, 0xB2C7, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xB6C3, 0, 0, 0, 0xEEA5, 0xD8BA, 0xEEA3, /* 0x70 */
- 0xEEA6, 0, 0, 0, 0xC3E9, 0xB3F2, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0xEEA7, 0xEEA4, 0xCFB9, 0, /* 0x80 */
- 0, 0xEEA8, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xEDEE, 0, 0, 0, 0, 0, 0xC2F7, 0xEEA9, /* 0x90 */
- 0xEEAA, 0, 0xDEAB, 0, 0, 0xC6B3, 0, 0xC7C6, /* 0xA0 */
- 0, 0, 0xB5C9, 0, 0xCBB2, 0xF8D1, 0, 0, /* 0xA0 */
- 0xEEAB, 0, 0, 0xCDAB, 0, 0xEEAC, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xD5B0, 0xEDFA, 0xEEAD, 0, 0xF6C4, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xF8D7, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xDBC7, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xB4A3, /* 0xD0 */
- 0, 0, 0xD6F5, 0xC3AC, 0xF1E6, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xCAB8, 0xD2D3, 0, 0xD6AA, 0, 0xEFF2, /* 0xE0 */
- 0, 0xBED8, 0, 0, 0xEFF3, 0xB6CC, 0xB0AB, 0xBDC3, /* 0xE0 */
- 0, 0, 0, 0xCAAF, 0, 0, 0, 0, /* 0xF0 */
- 0xEDB7, 0, 0, 0, 0, 0xCEF9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_78[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC9B0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0xEDB9, 0, 0, 0xC6F6, 0xBFB3, 0, 0, /* 0x00 */
- 0, 0xEDBC, 0xC5F8, 0, 0xD1D0, 0, 0, 0, /* 0x10 */
- 0xEDBB, 0, 0, 0, 0, 0xEDC0, 0, 0xEDC4, /* 0x10 */
- 0, 0, 0, 0xEDC8, 0, 0xEDC6, 0xEDCE, 0xD5E8, /* 0x20 */
- 0, 0xEDC9, 0, 0, 0xEDC7, 0xEDBE, 0, 0, /* 0x20 */
- 0xC5E9, 0, 0, 0, 0xC6C6, 0, 0, 0xC9E9, /* 0x30 */
- 0xD4D2, 0xEDC1, 0, 0, 0xEDC5, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xF9A7, 0, 0xB9E8, 0, 0xEDD0, /* 0x40 */
- 0, 0, 0, 0, 0xEDD1, 0, 0xEDCA, 0, /* 0x40 */
- 0xEDCF, 0, 0xCEF8, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xCFF5, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0xEDCC, 0, 0, 0, /* 0x60 */
- 0xEDBA, 0, 0xEDD2, 0xC1F2, 0xD3B2, 0xEDCB, 0xF8E6, 0xD1E2, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xC5F0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xEDD6, /* 0x80 */
- 0, 0xB5EF, 0, 0, 0xC2B5, 0, 0xCBE9, 0, /* 0x80 */
- 0, 0xB1AE, 0, 0xEDD4, 0, 0, 0, 0xCDEB, /* 0x90 */
- 0xB5E2, 0, 0xEDD5, 0, 0, 0, 0, 0xB5FA, /* 0x90 */
- 0, 0xEDD8, 0, 0xEDD9, 0, 0xEDDC, 0, 0xB1CC, /* 0xA0 */
- 0, 0xCBB6, 0, 0, 0, 0xEDB8, 0, 0, /* 0xA0 */
- 0xC5F6, 0xBCEE, 0xEDDA, 0xCCBC, 0xB2EA, 0, 0, 0, /* 0xB0 */
- 0xEDBF, 0xEDDB, 0xC8B7, 0, 0xC2EB, 0, 0xC4EB, 0, /* 0xB0 */
- 0, 0xB4C5, 0, 0, 0, 0xB0F5, 0, 0, /* 0xC0 */
- 0, 0xEDDF, 0xC0DA, 0xB4E8, 0, 0, 0, 0, /* 0xC0 */
- 0xC5CD, 0, 0, 0, 0xEDDD, 0xBFC4, 0, 0, /* 0xD0 */
- 0, 0xEDDE, 0xD7A9, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xEDD7, 0, 0, 0, 0xEDD3, /* 0xE0 */
- 0xC4A5, 0, 0, 0, 0xEDE0, 0, 0, 0xEDB6, /* 0xE0 */
- 0, 0, 0xEDE1, 0, 0xEDE3, 0, 0, 0xC1D7, /* 0xF0 */
- 0, 0, 0xBBC7, 0, 0, 0xEDCD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_79[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBDB8, 0, 0, 0, 0xEDE2, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xB4A1, 0, /* 0x00 */
- 0, 0, 0, 0xEDE4, 0, 0, 0, 0, /* 0x10 */
- 0, 0xB0AD, 0, 0, 0, 0, 0xEDE6, 0, /* 0x10 */
- 0, 0, 0, 0, 0xEDE5, 0, 0xBFF3, 0, /* 0x20 */
- 0, 0, 0xEDC2, 0xC0F9, 0xB7AF, 0, 0, 0, /* 0x20 */
- 0, 0xEDC3, 0, 0, 0xEDE7, 0, 0, 0, /* 0x30 */
- 0, 0, 0xCABE, 0xECEA, 0, 0, 0xC9E7, 0, /* 0x30 */
- 0xECEB, 0xC6EE, 0, 0, 0, 0, 0xECEC, 0, /* 0x40 */
- 0xC6ED, 0xECED, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xECF0, 0, 0, 0xD7E6, 0xECF3, /* 0x50 */
- 0, 0, 0xECF1, 0xECEE, 0xECEF, 0xD7A3, 0xC9F1, 0xCBEE, /* 0x50 */
- 0xECF4, 0, 0, 0, 0, 0xCFE9, 0, 0xECF6, /* 0x60 */
- 0xC6B1, 0, 0, 0, 0, 0xBCC0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xECF7, 0, 0, 0, 0, 0, /* 0x70 */
- 0xD9F7, 0xBDFB, 0, 0, 0xC2BB, 0, 0, 0, /* 0x80 */
- 0, 0, 0xECF9, 0, 0, 0xBBF6, 0xECF5, 0xB8A3, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xECFA, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0xF8FA, 0xECFB, /* 0xA0 */
- 0, 0, 0xECF8, 0, 0, 0, 0xC0F1, 0, /* 0xA0 */
- 0xECF2, 0xB5BB, 0, 0xECFC, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xD3ED, 0xD8AE, 0, 0, 0xC7DD, 0xBACC, 0, /* 0xB0 */
- 0xD0E3, 0xCBBD, 0, 0xCDBA, 0, 0, 0xB8D1, 0, /* 0xC0 */
- 0, 0xB1FC, 0, 0xC7EF, 0, 0xF9A6, 0, 0, /* 0xC0 */
- 0, 0xBFC6, 0xC3EB, 0, 0, 0xEFF5, 0, 0, /* 0xD0 */
- 0xC3D8, 0, 0, 0, 0, 0, 0, 0xD7E2, /* 0xD0 */
- 0, 0, 0, 0xEFF7, 0xB3D3, 0, 0xC7D8, 0xD1ED, /* 0xE0 */
- 0, 0xD6C8, 0, 0xEFF8, 0, 0xEFF6, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0xBDD5, 0, 0, 0xD2C6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_7A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCFA1, 0, 0xEFFC, 0xEFFB, 0, 0, 0xEFF9, 0, /* 0x00 */
- 0, 0, 0, 0xB3CC, 0, 0xC9D4, 0xCBB0, 0, /* 0x00 */
- 0, 0, 0, 0, 0xEFFE, 0, 0, 0xB0DE, /* 0x10 */
- 0, 0, 0xD6C9, 0, 0, 0, 0xEFFD, 0, /* 0x10 */
- 0xB3ED, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0xD6D6, 0, /* 0x20 */
- 0, 0xB3C6, 0, 0, 0, 0, 0, 0xF0A2, /* 0x30 */
- 0, 0xF0A1, 0, 0xB5BE, 0xBCDA, 0xBBFC, 0, 0xB8E5, /* 0x30 */
- 0xF8B6, 0, 0, 0, 0, 0, 0xC4C2, 0, /* 0x40 */
- 0, 0, 0, 0, 0xF6D5, 0xBBFD, 0xD3B1, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0xCBEB, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xF0A3, 0xBBE0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xCEC8, 0, 0xF8BE, 0, 0, 0, 0, /* 0x60 */
- 0xF0A6, 0, 0, 0, 0xD1A8, 0, 0xBEBF, 0, /* 0x70 */
- 0xF1B6, 0xF1B7, 0xBFD5, 0, 0, 0, 0, 0xB4A9, /* 0x70 */
- 0xF1B8, 0xCDBB, 0, 0, 0xD5AD, 0, 0xF1B9, 0, /* 0x80 */
- 0xF1BA, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xD2A4, 0xD6CF, 0, 0, 0xF1BB, 0xBDD1, 0xB4B0, /* 0x90 */
- 0xBEBD, 0, 0, 0, 0, 0, 0, 0xBFDF, /* 0x90 */
- 0xF1BD, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xF1BF, 0xCED1, 0xCDDD, 0, 0xF1BE, 0, 0xC7EE, 0, /* 0xA0 */
- 0, 0, 0, 0xF1C1, 0, 0, 0xF1C0, 0, /* 0xB0 */
- 0, 0, 0xBFFA, 0, 0, 0, 0, 0xC1FE, /* 0xB0 */
- 0, 0, 0, 0, 0xB4DC, 0xC7CF, 0, 0xF1BC, /* 0xC0 */
- 0xD4EE, 0, 0xC7D4, 0xC1A2, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xD5BE, 0, 0, 0, 0, 0, 0xBEB9, /* 0xD0 */
- 0xD5C2, 0, 0, 0xBFA2, 0, 0xCDAF, 0xF1B5, 0, /* 0xE0 */
- 0, 0, 0xCAFA, 0, 0, 0xBDDF, 0, 0xB6CB, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xBEBA, 0, /* 0xF0 */
- 0, 0xD6F1, 0xF3C3, 0, 0, 0xF3C4, 0, 0xB8CD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_7B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF3C7, 0, 0xB0CA, 0, /* 0x00 */
- 0xF3C5, 0, 0xF3C9, 0xCBF1, 0, 0, 0, 0xF3CB, /* 0x00 */
- 0, 0xD0A6, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xF3CF, 0, 0xB5D1, 0, 0, 0xF3D7, 0, /* 0x10 */
- 0xF3D2, 0, 0, 0, 0xF3D4, 0xF3D3, 0xB7FB, 0, /* 0x20 */
- 0xB1BF, 0, 0xF3CE, 0xF3CA, 0xB5DA, 0, 0xF3D0, 0, /* 0x20 */
- 0, 0xF3D1, 0, 0xF3D5, 0, 0, 0, 0, /* 0x30 */
- 0xF3CD, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xF3DA, 0xB1CA, 0xF3CC, /* 0x40 */
- 0, 0xB5C8, 0, 0xBDEE, 0xF3DC, 0, 0, 0xB7A4, /* 0x40 */
- 0xBFF0, 0xF9A8, 0xCDB2, 0, 0xB4F0, 0, 0xB2DF, 0, /* 0x50 */
- 0xF3D8, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xF3DE, 0, 0xF3E1, 0, 0, 0, 0, 0xF3C8, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0xF3DF, 0, /* 0x60 */
- 0, 0xF3E3, 0xF3E2, 0, 0, 0xF3DB, 0, 0xBFEA, /* 0x70 */
- 0, 0, 0, 0xF3E0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xF3EB, 0, 0, /* 0x80 */
- 0, 0, 0, 0xBCE3, 0, 0xB9BF, 0, 0xF3DD, /* 0x80 */
- 0xF3E4, 0, 0, 0, 0xB2AD, 0xBBFE, 0, 0xCBE3, /* 0x90 */
- 0, 0, 0, 0, 0xF3ED, 0xF3E9, 0, 0, /* 0x90 */
- 0, 0xB9DC, 0xF3EE, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xF3E8, 0xBCFD, 0, 0, /* 0xA0 */
- 0, 0xCFE4, 0, 0, 0xF3F0, 0, 0, 0, /* 0xB0 */
- 0xF3E7, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xBDDA, 0xF3F2, 0, 0, 0xB7B6, 0, 0xD7AD, 0xC6AA, /* 0xC0 */
- 0, 0xD6FE, 0, 0xF3E6, 0xF3F3, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xB8DD, 0xF3F5, 0, 0, 0xF3F4, 0, 0, /* 0xD0 */
- 0, 0xB4DB, 0, 0, 0xF3C6, 0xF3F6, 0xF3F7, 0, /* 0xE0 */
- 0, 0xC9B8, 0xF3F8, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xF3D9, 0, 0, 0, 0xC5F1, /* 0xF0 */
- 0, 0, 0, 0, 0xF3FB, 0, 0xF3FA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_7C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF3E5, 0, 0, 0, 0, 0, 0, 0xB4D8, /* 0x00 */
- 0, 0, 0, 0xF3FE, 0xF3F9, 0xC2A8, 0, 0xF3FC, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xF3EC, 0xF4A1, /* 0x10 */
- 0, 0xBCF2, 0, 0xF3F1, 0, 0, 0xF4A3, 0xBBC9, /* 0x20 */
- 0, 0, 0xF4A2, 0xF3EF, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xF4A4, 0, 0, 0, 0, 0xC7A9, 0xC1B1, 0xB2BE, /* 0x30 */
- 0xF4A6, 0, 0, 0xC0BA, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xB3EF, 0xBCAE, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0xF3EA, 0, 0, 0xF4A5, /* 0x50 */
- 0xC1FD, 0, 0, 0, 0xF8E2, 0, 0, 0, /* 0x60 */
- 0, 0xF3D6, 0xF3FD, 0, 0xC0E9, 0, 0xC2E1, 0, /* 0x60 */
- 0, 0, 0xF8FB, 0xC3D7, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xF4CC, 0xD7D1, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xB7DB, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xF4CE, 0xC1A3, 0, 0, 0xC6C9, 0, 0xB4D6, /* 0x90 */
- 0xD5B3, 0, 0, 0, 0, 0, 0xF4D1, 0xCBDA, /* 0x90 */
- 0, 0, 0xF4D2, 0, 0xD4C1, 0xD6E0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xC1BB, 0xF4D3, 0xBEAC, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xB4E2, 0, 0, 0xF4D4, 0xF4D5, 0xBEAB, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xF4DB, 0, 0xF4D7, /* 0xC0 */
- 0xF4DA, 0, 0xBAFD, 0, 0xF4D8, 0xF4D9, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xB8E2, 0xCCC7, 0xF4DC, /* 0xD0 */
- 0, 0xB2DA, 0, 0, 0xC3D3, 0xF4D6, 0xB7E0, 0xD4E3, /* 0xD0 */
- 0xBFB7, 0, 0, 0, 0, 0, 0, 0xC1B8, /* 0xE0 */
- 0xF4DD, 0, 0, 0, 0, 0, 0, 0xC5B4, /* 0xE0 */
- 0xF8F0, 0, 0xF4CF, 0, 0xD9E1, 0, 0xF4D0, 0, /* 0xF0 */
- 0xF4E9, 0xE6F9, 0, 0xCFB5, 0, 0, 0xBEC0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_7D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBCCD, 0, 0xE6FB, 0, 0xD4BC, 0xBAEC, 0xE6FA, 0xE6FC, /* 0x00 */
- 0xE6FD, 0xC8D2, 0xCEC9, 0xCEC6, 0, 0xC4C9, 0, 0, /* 0x00 */
- 0xC5A6, 0, 0, 0xE7A3, 0xB4BF, 0xE7A2, 0, 0xC9B4, /* 0x10 */
- 0, 0xD6BD, 0xBCB6, 0xB7D7, 0xE7A1, 0, 0, 0, /* 0x10 */
- 0xCBD8, 0xB7C4, 0xCBF7, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xD7CF, 0, 0, 0, 0xC0DB, /* 0x20 */
- 0xCFB8, 0xE7A6, 0xE7A5, 0xC9F0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xC9DC, 0xE7A4, 0, 0xE7A8, 0, 0, 0xE7AA, /* 0x30 */
- 0xE7A9, 0, 0xD6D5, 0, 0xD7E9, 0, 0xB0ED, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0xE7AC, 0, /* 0x40 */
- 0xBDE1, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xE7AB, 0xBDCA, 0, /* 0x50 */
- 0, 0xC2E7, 0xD1A4, 0, 0, 0, 0xB8F8, 0, /* 0x60 */
- 0xC8DE, 0, 0, 0, 0, 0, 0xD0F5, 0, /* 0x60 */
- 0, 0xCDB3, 0xCBBF, 0xE7AD, 0, 0, 0xBEF8, 0, /* 0x70 */
- 0, 0xBEEE, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xB0F3, 0, 0xE7AF, 0, 0, 0xE7AE, 0, /* 0x80 */
- 0xE7B0, 0xD0E5, 0, 0, 0, 0, 0, 0xCBE7, /* 0x80 */
- 0, 0, 0, 0xBEAD, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xD7DB, 0, 0xE7B6, 0, /* 0x90 */
- 0, 0, 0xB3F1, 0xE7B9, 0, 0, 0xF4EB, 0, /* 0xA0 */
- 0, 0, 0, 0xCFDF, 0xE7B7, 0xCEAC, 0xF4EC, 0, /* 0xA0 */
- 0xE7BA, 0xB8D9, 0xCDF8, 0xB1C1, 0xD7BA, 0, 0, 0, /* 0xB0 */
- 0xC2DA, 0xE7B8, 0xE7B2, 0xD5C0, 0, 0xB4C2, 0xE7B1, 0xC3E0, /* 0xB0 */
- 0, 0, 0, 0, 0xE7B5, 0, 0, 0xE7BB, /* 0xC0 */
- 0, 0, 0xBDF4, 0xE7B3, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xC2CC, 0xD0F7, 0, 0xE7B4, 0, 0, 0xE7BD, /* 0xD0 */
- 0xBCEA, 0xE7BC, 0, 0, 0, 0xBCA9, 0xB6D0, 0, /* 0xD0 */
- 0xB5DE, 0xE7C5, 0, 0xD4B5, 0, 0, 0xE7C1, 0, /* 0xE0 */
- 0xB1E0, 0xBBBA, 0, 0, 0xC3E5, 0, 0, 0xCEB3, /* 0xE0 */
- 0, 0xE7C3, 0xE7BF, 0, 0xC1B7, 0, 0xE7C2, 0, /* 0xF0 */
- 0, 0xE7BE, 0, 0xF9A4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_7E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xDDD3, 0xE7C6, 0xE7CB, 0xE7C4, 0, 0, 0, 0, /* 0x00 */
- 0xE7A7, 0xE7CC, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xB8BF, 0, 0xE7C7, 0xE7C9, 0xE7C8, /* 0x10 */
- 0, 0, 0, 0xCFD8, 0, 0, 0, 0xCCD0, /* 0x20 */
- 0, 0, 0, 0xB7EC, 0, 0xE7CA, 0xCBF5, 0, /* 0x20 */
- 0, 0xD7DD, 0xE7D0, 0, 0xF8E3, 0xE7CF, 0xF4EA, 0xC2C6, /* 0x30 */
- 0, 0xE7CE, 0, 0xF7E3, 0, 0xD7DC, 0xBCA8, 0, /* 0x30 */
- 0, 0xB7B1, 0, 0, 0, 0xE7D2, 0xE7D1, 0xF4ED, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xE7D5, 0, 0xD6AF, 0xC9C9, 0, 0, /* 0x50 */
- 0, 0, 0xE7D4, 0, 0, 0, 0xC8C6, 0, /* 0x50 */
- 0, 0, 0xE7C0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xC9FE, 0xBBE6, 0xF8F3, 0, 0xBCEB, 0xE7D6, 0xE7D9, /* 0x60 */
- 0xE7D8, 0, 0, 0xBDC9, 0, 0, 0, 0, /* 0x70 */
- 0, 0xD2EF, 0, 0, 0xBCCC, 0xE7CD, 0xE7D7, 0, /* 0x70 */
- 0, 0, 0xD7EB, 0, 0, 0, 0, 0, /* 0x80 */
- 0xE7D3, 0, 0xE6FE, 0, 0xD0F8, 0xF8CD, 0, 0xB2F8, /* 0x80 */
- 0, 0, 0, 0xD3A7, 0xF8A6, 0, 0xCFCB, 0, /* 0x90 */
- 0xE7DA, 0, 0, 0xF4EE, 0xC0C2 /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_7F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF3BE, 0, /* 0x30 */
- 0xB8D7, 0, 0xC8B1, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0xF3C0, 0xF3C1, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xF3BF, 0, 0xF8EE, 0, /* 0x40 */
- 0xB9DE, 0, 0, 0, 0xD8E8, 0xBAB1, 0, 0, /* 0x50 */
- 0xEEB7, 0, 0, 0, 0, 0, 0, 0xEEB9, /* 0x50 */
- 0, 0xEEB8, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0xEEBB, 0xD5D6, 0xD7EF, 0, 0, 0, 0xD6C3, 0, /* 0x60 */
- 0xB7A3, 0xEEBD, 0xCAF0, 0, 0, 0, 0, 0xB0D5, /* 0x70 */
- 0, 0xEEBE, 0, 0, 0, 0, 0xEEC0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xC2DE, 0xEEBC, 0, /* 0x80 */
- 0xEEBF, 0, 0xD1F2, 0, 0xC7BC, 0, 0xC3C0, 0, /* 0x80 */
- 0, 0, 0, 0, 0xB8E1, 0, 0, 0, /* 0x90 */
- 0, 0, 0xC1E7, 0, 0, 0xF4C6, 0xD0DF, 0, /* 0x90 */
- 0, 0xCFDB, 0, 0, 0xC8BA, 0xF4C7, 0, 0xF4C8, /* 0xA0 */
- 0, 0xD2E5, 0, 0, 0, 0, 0, 0xF4C9, /* 0xA0 */
- 0xF4CA, 0, 0xF4CB, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xD9FA, 0xB8FE, 0, 0, 0xE5F1, 0xD3F0, 0, 0xF4E0, /* 0xB0 */
- 0, 0xCECC, 0, 0, 0, 0xB3E1, 0, 0, /* 0xC0 */
- 0, 0, 0xF1B4, 0, 0xD2EE, 0, 0xF4E1, 0, /* 0xC0 */
- 0, 0, 0xCFB0, 0, 0xCFE8, 0xF4E2, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0xB5D4, /* 0xD0 */
- 0xB4E4, 0xF4E4, 0, 0, 0, 0xF4E3, 0xF4E5, 0, /* 0xE0 */
- 0, 0xF4E6, 0, 0, 0, 0, 0xF4E7, 0, /* 0xE0 */
- 0xBAB2, 0xB0BF, 0, 0xF4E8, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xC7CC, 0, 0xB7AD, 0xD2ED /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_80[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD2AB, 0xC0CF, 0, 0xBFBC, 0xEBA3, 0xD5DF, 0xEAC8, 0, /* 0x00 */
- 0, 0, 0, 0xF1F3, 0xB6F8, 0xCBA3, 0, 0, /* 0x00 */
- 0xC4CD, 0, 0xF1E7, 0, 0xF1E8, 0xB8FB, 0xF1E9, 0xBAC4, /* 0x10 */
- 0xD4C5, 0xB0D2, 0, 0, 0xF1EA, 0, 0, 0, /* 0x10 */
- 0xF1EB, 0, 0, 0, 0, 0xF1ED, 0xF1EE, 0, /* 0x20 */
- 0xF1F1, 0xF1F0, 0xC5D5, 0, 0xF1EF, 0, 0xF1EC, 0, /* 0x20 */
- 0, 0xF1F2, 0, 0xB6FA, 0, 0xF1F4, 0xD2AE, 0xDEC7, /* 0x30 */
- 0, 0, 0, 0xB3DC, 0, 0xB5A2, 0, 0xB9A2, /* 0x30 */
- 0, 0, 0, 0xF1F5, 0, 0, 0xF1F6, 0, /* 0x40 */
- 0, 0, 0xC1C4, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xF1F8, 0, 0, 0, 0xCAA5, 0, /* 0x50 */
- 0xC6B8, 0, 0xBEDB, 0, 0, 0, 0xCEC5, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0xC1AA, /* 0x60 */
- 0xB4CF, 0xF1FA, 0xC9F9, 0xCBCA, 0, 0xF1F9, 0xC4F4, 0xD6B0, /* 0x70 */
- 0, 0xF1F7, 0, 0, 0, 0xCCFD, 0xC1FB, 0xEDB2, /* 0x70 */
- 0xEDB1, 0, 0, 0, 0xD2DE, 0xCBE0, 0xCBC1, 0xD5D8, /* 0x80 */
- 0, 0xC8E2, 0, 0xC0DF, 0xBCA1, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xEBC1, 0, 0, 0xD0A4, 0, /* 0x90 */
- 0xD6E2, 0, 0xB6C7, 0xB8D8, 0xEBC0, 0xB8CE, 0, 0xEBBF, /* 0x90 */
- 0, 0xB9C9, 0xD6AB, 0, 0, 0xB7CA, 0, 0, /* 0xA0 */
- 0, 0xBCE7, 0xB7BE, 0xEBC6, 0, 0xEBC7, 0, 0xBFCF, /* 0xA0 */
- 0, 0xEBC5, 0xD3FD, 0, 0xEBC8, 0, 0, 0xEBC9, /* 0xB0 */
- 0, 0, 0xB7CE, 0, 0xEBC2, 0xEBC4, 0, 0, /* 0xB0 */
- 0, 0, 0xEBCF, 0xCEB8, 0xEBD0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xB1B3, 0xEBD2, 0xCCA5, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xC5D6, 0xEBD3, /* 0xD0 */
- 0, 0xEBD1, 0xC5DF, 0xEBCE, 0, 0xEBD5, 0xB0FB, 0, /* 0xD0 */
- 0, 0xBAFA, 0, 0, 0xD8B7, 0xF1E3, 0, 0, /* 0xE0 */
- 0, 0xEBCC, 0, 0, 0xE6C0, 0xEBD9, 0, 0xBFE8, /* 0xE0 */
- 0xD2C8, 0xEBD7, 0xEBDC, 0xB8EC, 0xEBD8, 0, 0, 0, /* 0xF0 */
- 0xD0D8, 0, 0xB0B7, 0, 0xEBDD, 0xC4DC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_81[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD6AC, 0, 0, 0xD0B2, 0xB4E0, 0, /* 0x00 */
- 0, 0xC2F6, 0xBCB9, 0, 0, 0, 0xEBDB, 0, /* 0x00 */
- 0, 0, 0xEBDF, 0, 0, 0, 0xB2B1, 0, /* 0x10 */
- 0xEBE4, 0, 0xBDC5, 0xEBD6, 0, 0, 0xEBE2, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xEBE3, 0, 0, 0xB8AC, /* 0x20 */
- 0, 0xCDD1, 0xEBE5, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xD5CD, 0, 0, 0, 0, 0xC6A2, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xCCF3, 0, /* 0x40 */
- 0xEBE6, 0, 0xF8CC, 0xD2B8, 0xEBE7, 0, 0xC9F6, 0, /* 0x40 */
- 0xB8AF, 0xB8AD, 0, 0xEBE8, 0xC7BB, 0xCDF3, 0xEBCB, 0, /* 0x50 */
- 0, 0xEBEA, 0xEBEB, 0, 0, 0, 0, 0, /* 0x50 */
- 0xEBED, 0xEBE1, 0, 0, 0, 0xD0C8, 0xC4D4, 0xEBF2, /* 0x60 */
- 0, 0xEBEE, 0, 0xD6D7, 0, 0xEBF1, 0xC8F9, 0, /* 0x60 */
- 0xD1FC, 0xEBEC, 0, 0, 0xEBE9, 0, 0, 0, /* 0x70 */
- 0xB3A6, 0xB8B9, 0xCFD9, 0, 0xEBEF, 0xEBF0, 0, 0xCDC8, /* 0x70 */
- 0xB0F2, 0, 0xEBF6, 0, 0, 0, 0, 0, /* 0x80 */
- 0xEBF5, 0, 0xB2B2, 0, 0, 0, 0, 0xB8E0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xB1EC, 0, 0xB7F4, 0xCCC5, 0xC4A4, 0xCFA5, 0, 0, /* 0x90 */
- 0xBDBA, 0, 0, 0xEBF9, 0, 0, 0xECA2, 0, /* 0xA0 */
- 0xC5F2, 0xC4E5, 0xEBFA, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xC9C5, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xE2DF, 0xEBFE, 0, 0xB5A8, 0xEBDA, 0xC5A7, /* 0xB0 */
- 0xCDCE, 0xECA1, 0xB1DB, 0xD3B7, 0, 0, 0xD2DC, 0, /* 0xC0 */
- 0, 0xC1B3, 0xEBFD, 0, 0xEBFB, 0xC6EA, 0, 0xEBF7, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xC0B0, 0, 0xEBCD, 0, 0, 0, 0, 0xD4E0, /* 0xD0 */
- 0xD9F5, 0, 0, 0xB3BC, 0, 0, 0, 0xEAB0, /* 0xE0 */
- 0xC1D9, 0, 0xD7D4, 0, 0xF4AB, 0xB3F4, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xD6C1, 0xD6C2, 0, 0, 0, /* 0xF0 */
- 0, 0, 0xCCA8, 0xD5E9, 0xBECA, 0, 0xF4A7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_82[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD2A8, 0xF4A8, 0xF4A9, 0, 0xF4AA, 0xBECB, 0, 0xD3EB, /* 0x00 */
- 0xD0CB, 0xBED9, 0xBEC9, 0, 0xC9E0, 0xF8E7, 0, 0, /* 0x00 */
- 0xF3C2, 0, 0xCAE6, 0, 0xCCF2, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xE2B6, 0xCBB4, 0, 0xCEE8, 0xD6DB, /* 0x10 */
- 0, 0xF4AD, 0xF4AE, 0, 0, 0, 0, 0, /* 0x20 */
- 0xF4B2, 0, 0xBABD, 0xF4B3, 0xB0E3, 0xF4B0, 0, 0xF4B1, /* 0x20 */
- 0, 0, 0, 0xF4B6, 0xF4B7, 0xB6E6, 0xB2B0, 0xCFCF, /* 0x30 */
- 0xF4B4, 0xB4AC, 0, 0, 0, 0, 0xF4B8, 0, /* 0x30 */
- 0, 0, 0, 0, 0xF4B9, 0, 0, 0xCDA7, /* 0x40 */
- 0, 0xF4BA, 0, 0xF4BB, 0, 0, 0, 0xF4BC, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xCBD2, 0xB2D5, 0xF4BD, 0, 0, 0, 0, 0xF4BE, /* 0x50 */
- 0, 0, 0, 0, 0xF4AF, 0, 0xBDA2, 0, /* 0x60 */
- 0xF4BF, 0, 0, 0xF4B5, 0, 0, 0xF4DE, 0xC1BC, /* 0x60 */
- 0, 0xBCE8, 0xC9AB, 0, 0xE5F5, 0, 0, 0xD1DE, /* 0x70 */
- 0, 0xDCB3, 0, 0, 0, 0xDCB4, 0xB0AC, 0xDCB5, /* 0x70 */
- 0, 0, 0, 0, 0xDCB9, 0, 0, 0, /* 0x80 */
- 0xD8C2, 0, 0xDCB7, 0xD3F3, 0, 0xC9D6, 0xDCBA, 0xDCB6, /* 0x80 */
- 0, 0xDCBB, 0xC3A2, 0, 0, 0, 0, 0, /* 0x90 */
- 0xDCC5, 0xDCBD, 0, 0, 0, 0xD6A5, 0, 0xDCCF, /* 0x90 */
- 0, 0xDCCD, 0, 0, 0xDCD2, 0xBDE6, 0, 0, /* 0xA0 */
- 0xDCB8, 0xDCCB, 0xDCCE, 0xDCBE, 0xB7D2, 0xB0C5, 0xDCC7, 0xD0BE, /* 0xA0 */
- 0xDCC1, 0xBBA8, 0, 0xB7BC, 0xDCCC, 0, 0, 0xDCC6, /* 0xB0 */
- 0, 0xC7DB, 0, 0xDBBB, 0, 0xD1BF, 0xDCC0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xDCD0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xDCC3, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xD4B7, 0xDCDB, 0xDCDF, 0xCCA6, 0xDCE6, 0, 0xC3E7, /* 0xD0 */
- 0xDCDC, 0, 0, 0xBFC1, 0xDCD9, 0, 0xB0FA, 0xB9B6, /* 0xD0 */
- 0xDCE5, 0xDCD3, 0, 0xDCC4, 0xDCD6, 0xC8F4, 0xBFE0, 0xDCD1, /* 0xE0 */
- 0, 0, 0, 0xC9BB, 0, 0, 0, 0xB1BD, /* 0xE0 */
- 0, 0xD3A2, 0, 0, 0xDCDA, 0, 0, 0xDCD5, /* 0xF0 */
- 0, 0xF8DC, 0, 0xDCDE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_83[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD7C2, 0xC3AF, 0xF8B2, 0xC7D1, 0xC3A9, 0xDCE2, 0xDCD8, /* 0x00 */
- 0xDCEB, 0xDCD4, 0, 0, 0xDCDD, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0xDCF8, /* 0x10 */
- 0, 0, 0xDCE1, 0xDDA2, 0xDCE7, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xB4C4, 0, 0, 0xC3A3, 0xB2E7, 0xDCFA, 0, 0xDCF2, /* 0x20 */
- 0, 0xDCEF, 0, 0xDCFC, 0xDCEE, 0xD2F0, 0xB2E8, 0, /* 0x30 */
- 0xC8D7, 0xC8E3, 0xDCFB, 0, 0xDCED, 0, 0, 0, /* 0x30 */
- 0xDCF7, 0, 0, 0xDCF5, 0, 0, 0xBEA3, 0xDCF4, /* 0x40 */
- 0, 0xB2DD, 0, 0, 0, 0, 0, 0xDCF3, /* 0x40 */
- 0xF8C3, 0xDCE8, 0xBBC4, 0, 0xC0F3, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0xBAC9, /* 0x70 */
- 0xDDA9, 0, 0, 0xDDB6, 0xDDB1, 0xDDB4, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xDDB0, 0xC6CE, 0, /* 0x80 */
- 0, 0xC0F2, 0xD7AF, 0, 0, 0, 0xC9AF, 0, /* 0x80 */
- 0, 0, 0xDCEC, 0xDDAE, 0, 0, 0xBEA5, 0, /* 0x90 */
- 0xDDB7, 0, 0, 0xDCF0, 0xDDAF, 0, 0xDDB8, 0, /* 0x90 */
- 0xDDAC, 0, 0xBCD4, 0, 0, 0, 0, 0xDCC8, /* 0xA0 */
- 0xDDB9, 0xDDB3, 0xDDAD, 0xC4AA, 0, 0, 0, 0, /* 0xA0 */
- 0xDDA8, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xC3A7, 0, 0, /* 0xB0 */
- 0xDDD2, 0xDDBC, 0, 0, 0, 0xDDD1, 0, 0xB9BD, /* 0xC0 */
- 0, 0, 0xBED5, 0, 0xBEFA, 0, 0, 0xBACA, /* 0xC0 */
- 0, 0, 0, 0, 0xDDCA, 0, 0xDDC5, 0, /* 0xD0 */
- 0xDDBF, 0, 0, 0, 0xB2CB, 0xDDC3, 0, 0xDDCB, /* 0xD0 */
- 0xB2A4, 0xDDD5, 0, 0, 0, 0xDDBE, 0, 0, /* 0xE0 */
- 0, 0xC6D0, 0xDDD0, 0, 0, 0, 0, 0xBBAA, /* 0xE0 */
- 0xDDD4, 0xC1E2, 0xB7C6, 0, 0, 0, 0, 0, /* 0xF0 */
- 0xDDCE, 0xDDCF, 0, 0, 0, 0xDDC4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_84[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDDBD, 0, 0xDDCD, 0xCCD1, 0, 0xDDC9, 0xDCC9, /* 0x00 */
- 0, 0, 0xC0B3, 0xDDC2, 0xC3C8, 0xC6BC, 0xCEAE, 0xDDCC, /* 0x00 */
- 0, 0xDDC8, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xDDC1, 0, 0, 0, 0xDDC6, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xCDF2, 0, 0, 0, /* 0x20 */
- 0, 0xDDE6, 0, 0, 0, 0xDDAB, 0, 0, /* 0x30 */
- 0xDDC7, 0, 0, 0, 0xDDE0, 0xC2E4, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xDDE1, 0, /* 0x40 */
- 0, 0xD2B6, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xDDD7, 0xDDA6, 0, 0, 0, 0, 0xD6F8, /* 0x50 */
- 0, 0xDDD9, 0xDDD8, 0xB8F0, 0xDDD6, 0, 0, 0, /* 0x50 */
- 0, 0xC6CF, 0, 0xB6AD, 0xDDA7, 0, 0xCEAD, 0, /* 0x60 */
- 0, 0xDDE2, 0, 0xBAF9, 0xD4E1, 0xDDE7, 0, 0xF8F7, /* 0x60 */
- 0, 0xB4D0, 0, 0xDDDA, 0, 0xBFFB, 0xDDE3, 0xBBE7, /* 0x70 */
- 0xDDDF, 0, 0xDDDD, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xB5D9, 0, 0, 0, 0, 0, /* 0x80 */
- 0xDDDC, 0, 0, 0, 0, 0, 0xDDE5, 0, /* 0x80 */
- 0, 0, 0, 0xDDBB, 0xDDAA, 0, 0, 0xDDF5, /* 0x90 */
- 0, 0xC3C9, 0, 0, 0xCBE2, 0, 0, 0, /* 0x90 */
- 0, 0xDDF2, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0xD8E1, /* 0xA0 */
- 0, 0, 0xC6D1, 0, 0xDDF4, 0, 0, 0, /* 0xB0 */
- 0xD5F4, 0xDDF3, 0xDDF0, 0, 0xB2D4, 0xDDEC, 0, 0xDDEF, /* 0xB0 */
- 0xDDA5, 0xDDE8, 0, 0, 0xD0EE, 0, 0, 0, /* 0xC0 */
- 0, 0xC8D8, 0xDDEE, 0xB8C7, 0, 0xDDE9, 0, 0, /* 0xC0 */
- 0xDDEA, 0xCBF2, 0, 0xDDED, 0, 0, 0xB1CD, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xC5EE, 0, 0xC1AB, 0xDCCA, /* 0xE0 */
- 0xDDFB, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0xDEA4, 0xDCEA, 0, 0xDEA3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_85[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xDDF8, 0, 0, 0, /* 0x00 */
- 0, 0xC3EF, 0, 0xC2FB, 0xF8A5, 0, 0, 0xD5E1, /* 0x10 */
- 0, 0, 0xCEB5, 0, 0, 0, 0xDDE4, 0xDDFD, /* 0x10 */
- 0, 0xB2CC, 0, 0xBDAF, 0, 0, 0xDCE0, 0, /* 0x20 */
- 0, 0, 0, 0xC4E8, 0xCADF, 0xD2F1, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xDDFA, 0, 0, 0xDEA2, 0, 0xB1CE, 0, 0, /* 0x30 */
- 0, 0xDDA1, 0, 0xDEAC, 0, 0, 0xDDDB, 0, /* 0x40 */
- 0xDEA6, 0xBDB6, 0xC8EF, 0, 0, 0, 0xDCF1, 0, /* 0x40 */
- 0, 0, 0xDDA4, 0xDCBF, 0, 0xDDB5, 0xDEA1, 0, /* 0x50 */
- 0xDCE9, 0xDEA5, 0, 0, 0, 0, 0xDEA9, 0, /* 0x50 */
- 0, 0, 0xDDDE, 0, 0xDEA8, 0, 0, 0, /* 0x60 */
- 0xDEA7, 0xB5B4, 0xCEDF, 0, 0, 0xCFF4, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0xDDF7, /* 0x70 */
- 0, 0xDEB3, 0xDEAA, 0xDEAE, 0, 0, 0xC0D9, 0, /* 0x70 */
- 0, 0, 0, 0, 0xB1A1, 0xDEB6, 0, 0xDEB1, /* 0x80 */
- 0xDCF6, 0, 0xBCBB, 0, 0xDCBC, 0, 0, 0xDEB2, /* 0x80 */
- 0, 0xF8C4, 0, 0, 0xC7BE, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xD1A6, 0xDEB5, 0, 0, 0xDDB2, /* 0x90 */
- 0, 0, 0, 0, 0xDEAF, 0, 0xBCF6, 0, /* 0xA0 */
- 0xDEB0, 0xC8F8, 0xD0BD, 0, 0, 0, 0, 0xCAED, /* 0xA0 */
- 0xDEB9, 0, 0, 0, 0, 0, 0, 0xDEB8, /* 0xB0 */
- 0, 0xDEB7, 0xDCF9, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xDEBB, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xBDE5, 0, 0, 0, 0xC0B6, 0xDDA3, 0xB2D8, /* 0xC0 */
- 0xC3EA, 0, 0, 0, 0, 0xC5BA, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xDEBC, 0xD2D5, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xCCD9, 0xD2A9, 0, 0, /* 0xE0 */
- 0, 0xB7AA, 0xDEB4, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xD4CC, 0, 0xDCC2, 0, /* 0xF0 */
- 0, 0xB0AA, 0xDDFE, 0xD4E5, 0, 0, 0, 0xDEBD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_86[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDEAD, 0xDEBF, 0xC2AB, 0xCBD5, /* 0x00 */
- 0, 0, 0, 0xC6BB, 0, 0, 0, 0, /* 0x00 */
- 0, 0xC4A2, 0, 0, 0, 0, 0xDEC1, 0, /* 0x10 */
- 0, 0, 0xDEBA, 0, 0, 0, 0xDDFC, 0, /* 0x10 */
- 0, 0, 0xDCD7, 0, 0, 0, 0, 0xDEBE, /* 0x20 */
- 0, 0xDEC0, 0, 0, 0, 0xC0BC, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xD5BA, 0, 0xDDF1, 0, 0xDEC2, 0, 0, 0xC2DC, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xF2AE, 0xBBA2, 0, /* 0x40 */
- 0xC5B0, 0, 0, 0, 0xF2AF, 0xB4A6, 0, 0, /* 0x50 */
- 0, 0, 0xD0E9, 0, 0xC2B2, 0, 0xD3DD, 0xBAC5, /* 0x50 */
- 0, 0, 0xEBBD, 0, 0, 0, 0, 0xBFF7, /* 0x60 */
- 0, 0, 0, 0, 0xF2B0, 0, 0, 0, /* 0x60 */
- 0, 0xCAAD, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xBAE7, 0xF2B3, 0xF2B5, 0xF2B4, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xCEC3, 0xF2B8, 0xB0F6, 0xF2B7, 0, 0, /* 0x80 */
- 0, 0, 0, 0xF2BE, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xD1C1, 0xF2BA, 0, 0, /* 0x90 */
- 0, 0, 0, 0xF2BC, 0xD4E9, 0, 0, 0xF2BB, /* 0xA0 */
- 0xF2B6, 0xF2BF, 0xF2BD, 0, 0, 0, 0, 0xF2C7, /* 0xA0 */
- 0xF2C4, 0xF2C6, 0, 0, 0xF2CA, 0xF2C2, 0xF2C0, 0, /* 0xB0 */
- 0, 0, 0xF2C5, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xD6FB, 0, 0, 0, 0xF2C1, 0, 0xC7F9, 0xC9DF, /* 0xC0 */
- 0, 0xF2C8, 0, 0xB5B0, 0, 0, 0, 0, /* 0xC0 */
- 0xF2D0, 0xF2D6, 0, 0, 0xBBD7, 0, 0, 0, /* 0xD0 */
- 0xF2D5, 0xCDDC, 0, 0xD6EB, 0, 0, 0xF2D2, 0xF2D4, /* 0xD0 */
- 0, 0, 0, 0, 0xB8F2, 0, 0, 0, /* 0xE0 */
- 0, 0xF2CB, 0, 0, 0, 0xF2CE, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0xF2D9, 0xD3BC, 0xF2CC, 0, 0, 0, 0xB6EA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_87[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCAF1, 0, 0xB7E4, 0xF2D7, 0, 0, 0xF2B9, 0xF2D8, /* 0x00 */
- 0xF2DA, 0xF2DD, 0xF2DB, 0, 0, 0xF2DC, 0, 0, /* 0x00 */
- 0, 0, 0xD1D1, 0xF2D1, 0, 0xCDC9, 0, 0, /* 0x10 */
- 0xD6A9, 0, 0xF2E3, 0, 0xC3DB, 0, 0xF2E0, 0, /* 0x10 */
- 0, 0xF8CB, 0xF2EC, 0xF2DE, 0, 0xF2E1, 0, 0, /* 0x20 */
- 0, 0xF2E8, 0, 0, 0, 0, 0xF2E2, 0, /* 0x20 */
- 0, 0xF2E7, 0, 0, 0xF2E6, 0, 0, 0xF2E9, /* 0x30 */
- 0, 0, 0, 0xF2DF, 0, 0, 0xF2E4, 0xF2EA, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xF2F2, 0, 0xD0AB, 0, /* 0x40 */
- 0, 0, 0, 0xF2F5, 0, 0xCAB4, 0, 0xBBC8, /* 0x50 */
- 0, 0xF2F9, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xF2F0, 0, 0, 0xF2F6, 0xF2F8, 0xF2FA, 0xCFBA, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0xF2F3, 0, /* 0x60 */
- 0xF2F1, 0, 0, 0, 0xBAFB, 0, 0xB5FB, 0, /* 0x70 */
- 0xCECF, 0, 0, 0xF2EF, 0, 0xF2ED, 0, 0, /* 0x70 */
- 0, 0, 0xF2EB, 0xF3A6, 0xF2CF, 0xF3A3, 0, 0, /* 0x80 */
- 0xF3A2, 0, 0, 0xF2F4, 0, 0xC8DA, 0, 0, /* 0x80 */
- 0, 0, 0, 0xF2FB, 0, 0, 0, 0xF3A5, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0xC2EC, 0xC3F8, /* 0x90 */
- 0, 0, 0xD3A9, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xF3A7, 0xF3A9, 0xF3A4, 0, 0xF2FC, /* 0xA0 */
- 0, 0, 0, 0xF3AB, 0, 0xF3AA, 0, 0, /* 0xB0 */
- 0, 0, 0xC2DD, 0xF2F7, 0, 0xF3AE, 0, 0, /* 0xB0 */
- 0xF3B0, 0, 0, 0, 0xD5DD, 0, 0xF3A1, 0, /* 0xC0 */
- 0xF2E5, 0, 0xF3B1, 0xF3AC, 0, 0, 0xF2FD, 0, /* 0xC0 */
- 0, 0xF3AF, 0xF2FE, 0xF3AD, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xF3B2, 0, 0, 0, 0, /* 0xD0 */
- 0xF3B4, 0, 0, 0xF2B1, 0, 0xF3A8, 0, 0, /* 0xE0 */
- 0, 0, 0xF3B3, 0, 0xB2F5, 0, 0xF3B5, 0xF2CD, /* 0xE0 */
- 0, 0, 0xB3E6, 0, 0, 0, 0xF2C9, 0, /* 0xF0 */
- 0, 0xD0B7, 0, 0xD2CF, 0, 0, 0xF3B8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_88[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD9F9, 0, 0xD3AC, 0xF2B2, 0, /* 0x00 */
- 0, 0, 0xF3B9, 0, 0, 0, 0, 0, /* 0x00 */
- 0xF2D3, 0xF2EE, 0, 0xF3B7, 0, 0xC8E4, 0xF3B6, 0, /* 0x10 */
- 0, 0, 0, 0xF3BA, 0, 0, 0, 0xC0AF, /* 0x10 */
- 0, 0xF3BB, 0xB4C0, 0xF2C3, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0xB9C6, 0xEEC3, 0, 0, 0, 0xB2CF, 0, /* 0x30 */
- 0, 0xF3BC, 0, 0xC2F9, 0xF3BD, 0, 0, 0, /* 0x30 */
- 0xD1AA, 0, 0, 0, 0xF4AC, 0, 0xD6DA, 0, /* 0x40 */
- 0, 0, 0xF8DA, 0, 0xD0D0, 0xD1DC, 0, 0, /* 0x40 */
- 0, 0, 0, 0xCAF5, 0, 0, 0, 0xBDD6, /* 0x50 */
- 0, 0xD1C3, 0, 0xCEC0, 0, 0xB3E5, 0, 0, /* 0x50 */
- 0, 0xBAE2, 0xE1E9, 0xD2C2, 0xF1C2, 0, 0, 0, /* 0x60 */
- 0xB1ED, 0xF1C3, 0, 0xC9C0, 0, 0, 0xD9F2, 0, /* 0x60 */
- 0xCBA5, 0, 0xF1C4, 0, 0, 0, 0, 0xD6D4, /* 0x70 */
- 0, 0xD6BB, 0, 0, 0, 0xF1C5, 0xF4C0, 0xF1C6, /* 0x70 */
- 0, 0xD4AC, 0xF1C7, 0, 0, 0, 0, 0, /* 0x80 */
- 0xF4C2, 0, 0, 0xB4FC, 0, 0xC5DB, 0, 0, /* 0x80 */
- 0, 0, 0xCCBB, 0, 0, 0, 0xD0E4, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xF1C8, 0, 0xD9F3, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xB1BB, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xB8A4, 0, 0, 0, 0, 0, 0xF1CA, /* 0xB0 */
- 0, 0, 0, 0, 0xF1CB, 0, 0, 0, /* 0xB0 */
- 0, 0xB2C3, 0xC1D1, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xF1CC, 0xF4C1, 0, 0, 0, 0xF1CE, 0xC0EF, /* 0xC0 */
- 0, 0, 0xD9F6, 0, 0xD2E1, 0xD4A3, 0, 0, /* 0xD0 */
- 0xF4C3, 0xC8B9, 0, 0, 0xB2B9, 0xD7B0, 0, 0xF4C4, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xF1D4, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xF1D6, 0xF1D1, 0, 0xC9D1, 0xC5E1, 0, 0, 0, /* 0xF0 */
- 0xC2E3, 0xB9FC, 0, 0, 0xF1D3, 0xF9A5, 0xF1D5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_89[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB9D3, 0, 0, 0, 0, 0xF8B4, /* 0x00 */
- 0, 0, 0xF1DB, 0, 0, 0, 0, 0, /* 0x00 */
- 0xBAD6, 0, 0xB0FD, 0xF1D9, 0, 0, 0, 0, /* 0x10 */
- 0, 0xF1D8, 0xF1D2, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xF1D7, 0, 0, 0, 0xC8EC, 0, 0, /* 0x20 */
- 0, 0, 0xCDCA, 0xF1DD, 0, 0, 0, 0, /* 0x20 */
- 0xE5BD, 0, 0xBFE3, 0xF1CD, 0, 0, 0xF1DE, 0, /* 0x30 */
- 0xF1DA, 0, 0, 0xD9F4, 0, 0, 0, 0, /* 0x30 */
- 0, 0xF1DF, 0, 0, 0xCFE5, 0, 0, 0xF1D0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0xB0C0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xF1CF, 0xF4C5, 0xBDF3, /* 0x50 */
- 0xF1C9, 0, 0, 0, 0xF1DC, 0, 0xF1E0, 0, /* 0x60 */
- 0, 0, 0xCDE0, 0, 0xF8A1, 0, 0, 0xB3C4, /* 0x60 */
- 0, 0, 0xCFAE, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0xF1E1, 0, 0, 0, 0xCEF7, /* 0x70 */
- 0, 0xD2AA, 0, 0xF1FB, 0, 0, 0xB8B2, 0, /* 0x80 */
- 0, 0, 0, 0xBCFB, 0, 0, 0, 0xB9E6, /* 0x80 */
- 0, 0, 0, 0xC3D9, 0, 0, 0xCAD3, 0, /* 0x90 */
- 0xEAE8, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xEAEA, 0, 0, 0, 0, 0xEAEC, 0, /* 0xA0 */
- 0, 0, 0xC7D7, 0, 0xEAE9, 0, 0, 0xEAED, /* 0xA0 */
- 0, 0, 0xEAEE, 0, 0, 0, 0, 0xEAEF, /* 0xB0 */
- 0, 0, 0xBEF5, 0, 0, 0xC0C0, 0, 0xEAEB, /* 0xB0 */
- 0xB9DB, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xBDC7, 0, 0, 0, 0xF5FB, 0, /* 0xD0 */
- 0, 0, 0xF5FD, 0, 0xF5FE, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xBDE2, 0, 0xF6A1, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xF6A2, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xECB2, 0xF5FC, 0, 0xF6A3, 0, /* 0xF0 */
- 0xB4A5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_8A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD1D4, 0xDAA5, 0xB6A9, 0xB8BC, 0, 0, 0, 0xD9EA, /* 0x00 */
- 0xBCC6, 0, 0xD1B6, 0, 0xDAA7, 0, 0xCCD6, 0, /* 0x00 */
- 0xDAA6, 0, 0, 0xD1B5, 0, 0xDAA8, 0xC6FD, 0, /* 0x10 */
- 0xBCC7, 0, 0, 0xB6EF, 0, 0xD1C8, 0, 0xCBCF, /* 0x10 */
- 0, 0, 0, 0xBEF7, 0, 0xDAAB, 0, 0, /* 0x20 */
- 0, 0, 0xB7C3, 0, 0, 0xC9E8, 0, 0, /* 0x20 */
- 0, 0xD0ED, 0, 0, 0xCBDF, 0, 0xDAAD, 0, /* 0x30 */
- 0, 0, 0xD5EF, 0, 0, 0, 0xF6A4, 0, /* 0x30 */
- 0, 0xDAAC, 0, 0, 0, 0, 0xDAAE, 0, /* 0x40 */
- 0xEEBA, 0, 0, 0, 0, 0, 0xDAAA, 0, /* 0x40 */
- 0xD5A9, 0, 0xDAB1, 0, 0xDAAF, 0xC6C0, 0, 0, /* 0x50 */
- 0xDAB0, 0, 0, 0xD7E7, 0, 0, 0xB4CA, 0, /* 0x50 */
- 0, 0xDABC, 0xD1AF, 0xD2E8, 0, 0, 0xCAD4, 0, /* 0x60 */
- 0, 0xCAAB, 0, 0xB2EF, 0xDAB8, 0xB9EE, 0xDAB9, 0, /* 0x60 */
- 0xDAB5, 0xBBB0, 0xB8C3, 0xCFEA, 0, 0xDAB7, 0, 0, /* 0x70 */
- 0, 0xD5B2, 0, 0, 0xDAB6, 0, 0, 0xDAB4, /* 0x70 */
- 0, 0, 0, 0, 0xDAB3, 0xD6EF, 0xDAB2, 0xBFE4, /* 0x80 */
- 0, 0, 0, 0, 0, 0xC8CF, 0, 0, /* 0x80 */
- 0, 0xDABF, 0xDAC0, 0xCAC4, 0, 0xB5AE, 0, 0, /* 0x90 */
- 0xD3D5, 0, 0xDABD, 0, 0, 0, 0xD3EF, 0, /* 0x90 */
- 0xB3CF, 0xBDEB, 0, 0xCEDC, 0xCEF3, 0xDABE, 0xCBD0, 0, /* 0xA0 */
- 0xBBE5, 0, 0, 0, 0xCBB5, 0, 0, 0, /* 0xA0 */
- 0xCBAD, 0, 0xBFCE, 0, 0, 0, 0xDAC7, 0, /* 0xB0 */
- 0, 0xB7CC, 0, 0, 0xD2EA, 0, 0, 0xB5F7, /* 0xB0 */
- 0, 0, 0xDAC6, 0, 0xD7BB, 0, 0, 0xCCB8, /* 0xC0 */
- 0, 0xDAC3, 0, 0xC7EB, 0, 0xDABA, 0, 0xDAC1, /* 0xC0 */
- 0, 0xDAC2, 0xC1C2, 0, 0, 0, 0xC2DB, 0xDAC5, /* 0xD0 */
- 0, 0, 0, 0xDAC4, 0xB5FD, 0, 0xDAD2, 0, /* 0xD0 */
- 0, 0, 0xDABB, 0, 0xDACC, 0, 0xDAD0, 0xD0B3, /* 0xE0 */
- 0, 0, 0, 0xDAC9, 0, 0xDACD, 0xDAD1, 0, /* 0xE0 */
- 0, 0xBBE4, 0, 0xDACF, 0, 0, 0xDAC8, 0xB7ED, /* 0xF0 */
- 0xD6EE, 0, 0xD1E8, 0, 0xDACE, 0, 0xC5B5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_8B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC4B1, 0xDACB, 0xCEBD, 0, 0xCCDC, 0xD6DF, 0, 0xE5C0, /* 0x00 */
- 0, 0, 0xBBD1, 0, 0, 0, 0xC3D5, 0, /* 0x00 */
- 0xDAD7, 0, 0, 0, 0xDACA, 0, 0xDAD5, 0xB0F9, /* 0x10 */
- 0, 0xC7AB, 0xDAD6, 0xBDB2, 0, 0xD0BB, 0, 0, /* 0x10 */
- 0, 0xD2A5, 0, 0, 0, 0, 0xF6A5, 0, /* 0x20 */
- 0xDAD3, 0, 0, 0xDAD8, 0xC3FD, 0xDAD9, 0, 0, /* 0x20 */
- 0, 0, 0, 0xDAA9, 0, 0, 0, 0, /* 0x30 */
- 0, 0xBDF7, 0, 0, 0, 0, 0xC3A1, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xD6A4, 0, 0, 0, 0, 0xDADC, 0xBCA5, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0xDADA, 0, /* 0x50 */
- 0xCAB6, 0xDADB, 0xCCB7, 0, 0xC6D7, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0xBEAF, 0, /* 0x60 */
- 0, 0, 0, 0xDADE, 0xC6A9, 0, 0, 0xD2EB, /* 0x60 */
- 0xD2E9, 0, 0, 0, 0xC7B4, 0, 0, 0xBBA4, /* 0x70 */
- 0, 0, 0, 0, 0, 0xD3FE, 0, 0, /* 0x70 */
- 0xB6C1, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xB1E4, 0, 0, 0, 0xF6C5, 0, /* 0x80 */
- 0, 0, 0xB2F7, 0xC8C3, 0, 0xC0BE, 0xDADF, 0, /* 0x90 */
- 0, 0, 0, 0, 0xDAD4, 0, 0xDADD /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_8C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB9C8, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xBBED, 0, 0, 0, 0, 0xB6B9, 0xF4F8, /* 0x40 */
- 0xC6F1, 0xF4F9, 0, 0, 0xCDE3, 0, 0, 0, /* 0x40 */
- 0xB7E1, 0, 0, 0, 0, 0xF5B9, 0, 0, /* 0x50 */
- 0, 0, 0xEBE0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xCFF3, 0xBBBF, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xBAC0, 0xD4A5, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xE1D9, 0, 0, 0, 0, /* 0x70 */
- 0xF5F4, 0xB1AA, 0xB2F2, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xF5F5, 0, 0, 0xF5F7, 0, 0, /* 0x80 */
- 0, 0xBAD1, 0xF5F6, 0, 0xC3B2, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0xF5F9, 0, 0, 0, /* 0x90 */
- 0xF5F8, 0, 0, 0, 0, 0xB1B4, 0xD5EA, 0, /* 0x90 */
- 0xB8BA, 0xB2C6, 0xB9B1, 0, 0, 0, 0, 0xC6B6, /* 0xA0 */
- 0xBBF5, 0xB7B7, 0xCCB0, 0xB9E1, 0xD4F0, 0, 0, 0xD6FC, /* 0xA0 */
- 0xEADB, 0, 0xEADF, 0xB7A1, 0xB9F3, 0, 0xB1E1, 0xC2F2, /* 0xB0 */
- 0xB4FB, 0, 0xEADC, 0xB7D1, 0xCCF9, 0xEADD, 0, 0xC3B3, /* 0xB0 */
- 0xBAD8, 0xEADA, 0xC2B8, 0xC1DE, 0xBBDF, 0xEAE0, 0, 0xD7CA, /* 0xC0 */
- 0xBCD6, 0, 0xD4F4, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xEAE2, 0xC9DE, 0xB1F6, 0, 0xEAE4, 0, 0, /* 0xD0 */
- 0, 0, 0xEAE3, 0, 0xB4CD, 0, 0xC9CD, 0, /* 0xD0 */
- 0xC5E2, 0xE2D9, 0xCFCD, 0xC2F4, 0xBCFA, 0, 0xB8B3, 0xEAE6, /* 0xE0 */
- 0, 0, 0xD6CA, 0xEAE5, 0xD5CB, 0xB6C4, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xC0B5, 0, 0, 0, /* 0xF0 */
- 0, 0, 0xD7AC, 0xEAE7, 0xB9BA, 0xC8FC, 0xD8D3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_8D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEADE, 0xD7B8, 0, 0, /* 0x00 */
- 0xD4F9, 0, 0xD4DE, 0xD8CD, 0, 0xC9C4, 0, 0xD3AE, /* 0x00 */
- 0xEAE1, 0, 0, 0, 0, 0, 0xCAEA, 0, /* 0x10 */
- 0, 0, 0, 0xB8D3, 0xD4DF, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0xB3E0, 0, 0xC9E2, 0xF4F6, /* 0x60 */
- 0, 0, 0, 0xBAD5, 0, 0xF4F7, 0, 0, /* 0x60 */
- 0xD7DF, 0, 0, 0xF4F1, 0xB8B0, 0, 0, 0xC6F0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xB3C3, 0, 0, 0xF4F2, 0xB3AC, 0, 0, /* 0x80 */
- 0, 0, 0xD4BD, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0xF4F4, 0, 0, 0xF4F3, 0xB8CF, 0, 0, /* 0x90 */
- 0, 0xD5D4, 0, 0, 0, 0, 0, 0xCCCB, /* 0x90 */
- 0, 0, 0, 0xC8A4, 0, 0, 0, 0, /* 0xA0 */
- 0xC7F7, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xF4F5, 0xD7E3, 0xC5BF, 0xF5C0, 0, 0, /* 0xB0 */
- 0, 0, 0xF5C3, 0, 0xF5C2, 0, 0xD6BA, 0xF5C1, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xF5CC, 0, /* 0xC0 */
- 0, 0, 0, 0xB0CF, 0xB5F8, 0, 0xF5C9, 0xF5CA, /* 0xC0 */
- 0, 0xC5DC, 0, 0, 0, 0, 0xF5C5, 0xF5C6, /* 0xD0 */
- 0, 0, 0xF5C7, 0xF5CB, 0, 0xBEE0, 0, 0xB8FA, /* 0xD0 */
- 0, 0, 0, 0xF5D0, 0xF5D3, 0, 0, 0, /* 0xE0 */
- 0xBFE7, 0, 0xB9F2, 0xF5BC, 0xF5CD, 0, 0, 0xC2B7, /* 0xE0 */
- 0, 0, 0, 0xCCF8, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0xB6E5, 0, 0, 0xF5D5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_8E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF5BD, 0, 0, /* 0x00 */
- 0, 0xF5D4, 0, 0, 0, 0, 0, 0xCCA4, /* 0x00 */
- 0xBCF9, 0, 0, 0, 0xF5D6, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xF5D7, 0xBEE1, 0xF5D8, /* 0x10 */
- 0, 0, 0xCCDF, 0xF5DB, 0, 0, 0, 0, /* 0x20 */
- 0, 0xB2C8, 0xD7D9, 0, 0, 0, 0xF5DA, 0, /* 0x20 */
- 0, 0xF5E2, 0, 0, 0xD3BB, 0xF5E0, 0, 0, /* 0x30 */
- 0, 0xF5DF, 0xF5DD, 0, 0, 0xF5E1, 0, 0, /* 0x30 */
- 0xF5DE, 0xF5E4, 0xF5E5, 0, 0xCCE3, 0, 0, 0xE5BF, /* 0x40 */
- 0xB5B8, 0xF5E3, 0xF5E8, 0xCCA3, 0xF5C4, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0xF5CF, 0, 0, /* 0x50 */
- 0, 0xF5BE, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0xF5E7, 0, 0, 0xB1C4, 0, /* 0x60 */
- 0, 0xF5BF, 0, 0, 0xB5C5, 0xB2E4, 0, 0xF5EC, /* 0x60 */
- 0xF5E9, 0, 0xB6D7, 0, 0xF5ED, 0, 0xF5EA, 0, /* 0x70 */
- 0, 0, 0xF5CE, 0, 0xF5EB, 0, 0, 0, /* 0x70 */
- 0, 0xD4EA, 0, 0, 0, 0xF5EE, 0, 0xB3F9, /* 0x80 */
- 0, 0xF5BB, 0xB3EC, 0xF5D2, 0, 0xD4BE, 0, 0, /* 0x80 */
- 0xF5F1, 0xF5DC, 0xF5C8, 0xF5D9, 0xF5F0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xF5D1, 0, 0, 0, 0xF5F3, 0, /* 0x90 */
- 0, 0xF5E6, 0, 0, 0, 0xB4DA, 0xF5F2, 0, /* 0xA0 */
- 0, 0, 0xF5EF, 0xC9ED, 0xB9AA, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xB6E3, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xCCC9, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xC7FB, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xB3B5, 0xD4FE, 0xB9EC, 0xBEFC, 0xEAA6, 0, /* 0xC0 */
- 0, 0, 0xD0F9, 0, 0xE9ED, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xE9EE, 0, 0, 0, 0xC8ED, /* 0xD0 */
- 0, 0, 0, 0, 0xE9F5, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xE9F4, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0xE9EF, 0, 0, 0, 0, 0, /* 0xF0 */
- 0xD6E1, 0xE9F2, 0xE9F7, 0xE9F0, 0xE9F3, 0, 0xE9F8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_8F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBDCF, 0, 0xE9FB, 0, 0xE9FA, /* 0x00 */
- 0, 0xD4D8, 0xE9F9, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xE9FC, 0, 0xB8A8, 0xC7E1, 0, 0, /* 0x10 */
- 0, 0, 0, 0xC1BE, 0xEAA2, 0xBBD4, 0xE9FE, 0xEAA1, /* 0x10 */
- 0, 0, 0, 0, 0, 0xB9F5, 0xE9FD, 0, /* 0x20 */
- 0, 0xB1B2, 0xC2D6, 0, 0, 0, 0, 0xBCAD, /* 0x20 */
- 0, 0, 0, 0xEAA3, 0, 0, 0, 0, /* 0x30 */
- 0xCAE4, 0, 0, 0xB7F8, 0, 0, 0xD5B7, 0xD3DF, /* 0x30 */
- 0, 0, 0xECB1, 0, 0xCFBD, 0xD4AF, 0xEAA4, 0, /* 0x40 */
- 0, 0xD7AA, 0, 0, 0, 0xD5DE, 0xBDCE, 0, /* 0x40 */
- 0, 0, 0, 0, 0xEAA5, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xBAE4, /* 0x50 */
- 0, 0xE0CE, 0xE9F6, 0, 0xE9F1, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xD0C1, 0xB9BC, 0, 0, 0xB1D9, /* 0x90 */
- 0, 0, 0, 0xC0B1, 0, 0, 0xB0EC, 0, /* 0xA0 */
- 0xB1E6, 0, 0, 0, 0, 0xB4C7, 0xB1E8, 0xB1E7, /* 0xA0 */
- 0xB3BD, 0xC8E8, 0xC5A9, 0, 0, 0, 0xE5C1, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xD3D8, 0, 0xC6F9, 0xD1B8, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xD3AD, 0, /* 0xC0 */
- 0, 0xBDFC, 0, 0xE5C2, 0xB7B5, 0xE5C3, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xCCF6, 0, 0xE5C6, 0xE5C4, 0xE5C8, 0, /* 0xE0 */
- 0xE5CA, 0, 0xB5CF, 0xC6C8, 0, 0xB5FC, 0xE5C5, 0, /* 0xE0 */
- 0xCAF6, 0, 0, 0, 0xF8BC, 0, 0, 0xC3D4, /* 0xF0 */
- 0xB1C5, 0xBCA3, 0, 0, 0, 0xD7B7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_90[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCDCB, 0xCBCD, 0, 0xCCD3, 0xE5CC, 0xE5CB, 0xC4E6, 0, /* 0x00 */
- 0, 0, 0, 0xE5CD, 0, 0xE5D0, 0, 0xCDB8, /* 0x00 */
- 0xD6F0, 0xE5CF, 0, 0, 0xCDBE, 0xE5C9, 0xE5D1, 0xB6BA, /* 0x10 */
- 0, 0xD5E2, 0xCDA8, 0xB9E4, 0, 0xCAC5, 0xB3D1, 0xCBD9, /* 0x10 */
- 0xD4EC, 0xE5D2, 0xB7EA, 0xC1AC, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xE5D5, 0xB4FE, 0xE5D6, /* 0x20 */
- 0, 0, 0xBDF8, 0, 0, 0xE5D3, 0xE5D4, 0, /* 0x30 */
- 0xD2DD, 0, 0, 0, 0xB1C6, 0, 0xD3E2, 0, /* 0x30 */
- 0, 0xB6DD, 0xCBEC, 0, 0xE5D7, 0, 0, 0xD3F6, /* 0x40 */
- 0, 0, 0, 0xD4CB, 0, 0xB1E9, 0xB9FD, 0xB6F4, /* 0x40 */
- 0xE5DA, 0xE5D8, 0xE5D9, 0xB5C0, 0xB4EF, 0xCEA5, 0, 0, /* 0x50 */
- 0xE5DC, 0, 0, 0xE5DE, 0xD1B7, 0, 0xB5DD, 0, /* 0x50 */
- 0xD4B6, 0, 0xE5DD, 0xC7B2, 0, 0xD2A3, 0, 0, /* 0x60 */
- 0xE5DB, 0xCACA, 0, 0, 0, 0xD4E2, 0xD5DA, 0, /* 0x60 */
- 0, 0, 0xB3D9, 0, 0xE5E0, 0xD7F1, 0, 0xC7A8, /* 0x70 */
- 0xD1A1, 0, 0xD2C5, 0, 0xC1C9, 0xE5E1, 0, 0xB1DC, /* 0x70 */
- 0xD1FB, 0xC2F5, 0xE5E2, 0xE5E4, 0xBBB9, 0, 0, 0xE5C7, /* 0x80 */
- 0xE5E3, 0, 0xB1DF, 0xE5E5, 0, 0, 0, 0xC2DF, /* 0x80 */
- 0xE5CE, 0xD2D8, 0, 0, 0, 0xE7DF, 0, 0xDAF5, /* 0x90 */
- 0, 0xDAF8, 0, 0xDAF6, 0, 0, 0, 0, /* 0x90 */
- 0, 0xDAFA, 0xD0CF, 0xC4C7, 0, 0, 0xB0EE, 0, /* 0xA0 */
- 0, 0, 0xD0B0, 0, 0, 0, 0, 0xBAAA, /* 0xA0 */
- 0xDBA2, 0xC7F1, 0, 0xDAFC, 0xDAFB, 0xC9DB, 0xDAFD, 0, /* 0xB0 */
- 0xDBA1, 0, 0, 0, 0, 0, 0xDBA5, 0, /* 0xB0 */
- 0, 0xF8F9, 0, 0, 0xDBA7, 0xDBA4, 0, 0xDBA8, /* 0xC0 */
- 0, 0, 0xBDBC, 0, 0, 0, 0xC0C9, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xDBAD, /* 0xD0 */
- 0, 0, 0, 0xDBAE, 0xDBAC, 0xBAC2, 0, 0xDBA3, /* 0xD0 */
- 0, 0xBFA4, 0xDBAB, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xB2BF, 0, 0, 0xDBAF, 0, 0xB9F9, 0, 0xDBB0, /* 0xE0 */
- 0, 0, 0, 0, 0xB3BB, 0xD3CA, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0xB6BC, 0xDBB1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_91[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB6F5, 0, 0xDBB2, 0, 0xDBA9, 0, /* 0x00 */
- 0, 0xCFE7, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0xD7DE, 0, 0xDAF9, 0, 0xD4C7, 0, /* 0x10 */
- 0, 0xB1C9, 0, 0, 0, 0, 0xDBB4, 0, /* 0x10 */
- 0, 0, 0xDBB3, 0xDBB5, 0, 0, 0, 0xB5CB, /* 0x20 */
- 0, 0, 0, 0, 0, 0xD6A3, 0, 0xDBB7, /* 0x20 */
- 0xC1DA, 0xDBB6, 0xB5A6, 0, 0xDAFE, 0, 0xDBA6, 0, /* 0x30 */
- 0, 0xDBB8, 0xDAF7, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xDBB9, 0, 0, 0xDBBA, 0, /* 0x40 */
- 0xDBAA, 0xD3CF, 0xF4FA, 0xC7F5, 0xD7C3, 0xC5E4, 0xF4FC, 0xF4FD, /* 0x40 */
- 0xF4FB, 0, 0xBEC6, 0, 0, 0, 0, 0xD0EF, /* 0x50 */
- 0, 0, 0xB7D3, 0, 0, 0, 0xCCAA, 0, /* 0x50 */
- 0, 0xF5A2, 0xF5A1, 0xBAA8, 0xF4FE, 0xCBD6, 0, 0, /* 0x60 */
- 0, 0xF5A4, 0xC0D2, 0, 0xB3EA, 0, 0xCDAA, 0xF5A5, /* 0x60 */
- 0xF5A3, 0, 0xF5A8, 0, 0xF5A9, 0xBDCD, 0xC3B8, 0xBFE1, /* 0x70 */
- 0xCBE1, 0xF5AA, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xF5AC, 0, 0xB4BC, /* 0x80 */
- 0, 0xD7ED, 0, 0xB4D7, 0xF5AB, 0xF5AE, 0, 0, /* 0x80 */
- 0xF5AD, 0xF5AF, 0xD0D1, 0, 0, 0, 0xD4CD, 0, /* 0x90 */
- 0, 0, 0xC3D1, 0xC8A9, 0xB3F3, 0, 0, 0, /* 0x90 */
- 0, 0, 0xF5B0, 0xF5B1, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xF5B2, 0xD2BD, 0xBDB4, 0xF5B3, 0xF5B4, 0xF5B5, /* 0xA0 */
- 0, 0, 0, 0, 0xF5B7, 0xF5B6, 0, 0, /* 0xB0 */
- 0, 0, 0xF5B8, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xC4F0, 0xD0C6, 0, 0xF5A7, 0, 0xF5A6, 0, 0xB2C9, /* 0xC0 */
- 0, 0xD3D4, 0, 0xCACD, 0xF8CE, 0xD6D8, 0xD2B0, 0xC1BF, /* 0xC0 */
- 0, 0xBDF0, 0xEEC4, 0xEEC5, 0xEEC6, 0xEEC9, 0, 0xEEC8, /* 0xD0 */
- 0xB6A4, 0xEEC7, 0, 0, 0xB8AA, 0xD5EB, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xB5F6, 0xEECC, 0, 0, 0xEECB, /* 0xE0 */
- 0, 0xB7B0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xEECE, 0, 0xEECA, /* 0xF0 */
- 0, 0xEECF, 0xC7A5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_92[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEED9, 0xEED5, 0, 0, 0xEED7, 0, 0, 0, /* 0x00 */
- 0xEED0, 0xC4C6, 0, 0, 0, 0xB6DB, 0xB9B3, 0, /* 0x00 */
- 0xEED4, 0xEED3, 0, 0, 0xB3AE, 0xC5A5, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xBEFB, 0, /* 0x10 */
- 0, 0, 0, 0xB8C6, 0, 0xEED8, 0xEED1, 0xEED6, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0xEEEA, 0, /* 0x20 */
- 0xEEE6, 0, 0, 0xEEDD, 0xC1E5, 0, 0, 0xEEDC, /* 0x30 */
- 0xEEE0, 0xEEEB, 0xEEDA, 0, 0, 0xEEDF, 0xD3CB, 0xEEE4, /* 0x30 */
- 0xBCD8, 0, 0, 0, 0, 0xEED2, 0, 0, /* 0x40 */
- 0xEEE8, 0xEEE7, 0, 0, 0, 0xEEE9, 0, 0, /* 0x40 */
- 0, 0xB2AC, 0, 0, 0, 0xEEDE, 0, 0xC7AF, /* 0x50 */
- 0, 0, 0xC3AD, 0xC7A6, 0, 0, 0xEEE1, 0, /* 0x50 */
- 0, 0, 0xB2A7, 0, 0, 0, 0xEEDB, 0, /* 0x60 */
- 0, 0, 0, 0, 0xEEE2, 0xEEE3, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xBDC2, 0, 0xEEEF, 0xB8F5, 0, 0, 0, 0xEEFE, /* 0x70 */
- 0xD2F8, 0, 0, 0xEFA5, 0, 0xCDAD, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xF6C6, 0, /* 0x80 */
- 0, 0xCFB3, 0, 0xEEFD, 0, 0, 0xEEF9, 0, /* 0x90 */
- 0xC3FA, 0, 0xEFA2, 0, 0xCFCE, 0, 0, 0, /* 0x90 */
- 0xEEEE, 0, 0, 0xEFA8, 0, 0xD2BF, 0xEEF7, 0, /* 0xA0 */
- 0xEFA7, 0xEEFB, 0xEEF0, 0xEFA4, 0xEEED, 0, 0, 0, /* 0xA0 */
- 0, 0xEEF6, 0, 0, 0, 0, 0, 0xCFFA, /* 0xB0 */
- 0, 0xD0E2, 0, 0xCCE0, 0xEFB1, 0, 0, 0, /* 0xB0 */
- 0, 0xC2C1, 0, 0xEFB6, 0, 0xD0BF, 0, 0xB1B5, /* 0xC0 */
- 0xF6C8, 0, 0, 0, 0xEEFA, 0, 0, 0xEEF2, /* 0xC0 */
- 0, 0, 0xB7E6, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xEFB2, 0, 0xEFB7, /* 0xD0 */
- 0, 0, 0, 0xEEF4, 0xB3FA, 0xEFAD, 0xEFB8, 0, /* 0xE0 */
- 0xEFB0, 0, 0xC6CC, 0, 0, 0xC8F1, 0xEEF1, 0xEFAF, /* 0xE0 */
- 0xEFAE, 0xEFAB, 0, 0, 0, 0, 0xEFB3, 0, /* 0xF0 */
- 0xBEE2, 0, 0, 0, 0xB8D6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_93[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEFBE, 0, 0, 0, 0, 0xEFBA, 0xEFC2, /* 0x00 */
- 0xEFC3, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0xD7B6, 0, 0xEFB9, 0, 0, 0xEFBF, 0, 0, /* 0x10 */
- 0xB4B8, 0xEFC5, 0xEFA3, 0xEFBC, 0, 0, 0, 0xEFC4, /* 0x10 */
- 0xB6A7, 0, 0xC7AE, 0, 0, 0, 0xBDF5, 0, /* 0x20 */
- 0xC3AA, 0, 0, 0xCEFD, 0, 0, 0xEFC0, 0xB4ED, /* 0x20 */
- 0, 0, 0xC2BC, 0xC3CC, 0, 0, 0xF8A3, 0, /* 0x30 */
- 0xEFAA, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xEFBD, 0xCFC7, 0, 0xEFC1, 0, 0, 0xEECD, 0xEFC7, /* 0x40 */
- 0, 0, 0, 0xB9F8, 0, 0xB6C6, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0xEFC9, 0, 0, 0, /* 0x50 */
- 0xD5A1, 0, 0, 0xB6CD, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0xEFCA, 0xEFC6, 0, 0, /* 0x60 */
- 0, 0xEFBB, 0xF6CA, 0, 0xC7C2, 0, 0, 0, /* 0x60 */
- 0xEFCC, 0, 0, 0, 0, 0xBCFC, 0xEFC8, 0, /* 0x70 */
- 0, 0, 0xD5E0, 0, 0, 0, 0xEFF1, 0, /* 0x70 */
- 0, 0, 0xC3BE, 0, 0xEFCD, 0, 0, 0xEFD1, /* 0x80 */
- 0, 0, 0xB0F7, 0, 0, 0, 0, 0xF6CC, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xCBF8, 0, /* 0x90 */
- 0xEFD3, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xCED9, 0xDDF6, 0, 0, 0xEFD6, 0xEEF8, /* 0xA0 */
- 0, 0xEFA1, 0xEFCB, 0, 0xB8E4, 0, 0xD5F2, 0, /* 0xA0 */
- 0xEFD7, 0, 0, 0xC4F8, 0, 0xEFD8, 0, 0, /* 0xB0 */
- 0xEFD4, 0, 0, 0, 0, 0, 0, 0xEFD5, /* 0xB0 */
- 0, 0, 0, 0xEFDF, 0, 0, 0, 0xEFE0, /* 0xC0 */
- 0xC1B4, 0, 0xF6CB, 0, 0xEFD2, 0xEFDD, 0, 0, /* 0xC0 */
- 0, 0xEFE1, 0, 0, 0, 0, 0xF7E9, 0xEFAC, /* 0xD0 */
- 0xEFCF, 0, 0, 0, 0xEFDB, 0xEFDC, 0xEFDE, 0xB2F9, /* 0xD0 */
- 0, 0xBEB5, 0xEFDA, 0, 0xEFCE, 0, 0, 0, /* 0xE0 */
- 0xF6C9, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xEEFC, 0, 0xEFE4, /* 0xF0 */
- 0, 0xEFEA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_94[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEEF3, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0xEFA6, 0, 0, 0, 0, /* 0x00 */
- 0xC1CD, 0, 0xEFA9, 0xEFE6, 0xEFE2, 0, 0, 0, /* 0x10 */
- 0xD6D3, 0xEFEB, 0, 0, 0, 0xEFE3, 0, 0, /* 0x10 */
- 0xEFE8, 0, 0, 0, 0, 0, 0xEFB4, 0xEFB5, /* 0x20 */
- 0xEFD0, 0, 0, 0, 0, 0, 0xC1AD, 0, /* 0x20 */
- 0, 0, 0xEFED, 0xC0D8, 0, 0xCCFA, 0, 0, /* 0x30 */
- 0xEEEC, 0, 0xEEF5, 0, 0, 0, 0xF6CD, 0xEFEE, /* 0x30 */
- 0, 0, 0, 0, 0xD6FD, 0, 0, 0, /* 0x40 */
- 0, 0, 0xEFEC, 0, 0xEFD9, 0, 0, 0, /* 0x40 */
- 0, 0, 0xBCF8, 0, 0xEFEF, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xEEE5, 0, 0, 0xEFF0, 0, 0xEFE5, 0, 0, /* 0x60 */
- 0, 0, 0, 0xF6CE, 0, 0xEFE7, 0, 0, /* 0x60 */
- 0xD4BF, 0, 0xCFE2, 0, 0, 0, 0, 0xC4F7, /* 0x70 */
- 0, 0xEFE9, 0, 0, 0xC2E0, 0xD7EA, 0xF6C7, 0xD4E4 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_95[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB3A4, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xC3C5, 0, 0xE3C5, 0xC9C1, 0, 0, 0xE3C6, 0, /* 0x80 */
- 0, 0xB1D5, 0, 0xBFAA, 0xE3CA, 0, 0xE3C8, 0xC8F2, /* 0x80 */
- 0, 0xCFD0, 0, 0xBCE4, 0xE3C9, 0, 0, 0, /* 0x90 */
- 0xD5A2, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xBAD2, 0, 0xB8F3, 0xF8B9, 0xB7A7, 0, 0, /* 0xA0 */
- 0xB9EB, 0xC3F6, 0, 0xE3CD, 0xE3CF, 0xE3CC, 0, 0, /* 0xA0 */
- 0, 0, 0xD4C4, 0, 0, 0, 0xE3D1, 0, /* 0xB0 */
- 0, 0xD1CB, 0, 0xD1D6, 0xE3D5, 0xE3D4, 0xE3D0, 0xE3D3, /* 0xB0 */
- 0, 0, 0, 0xE3D6, 0, 0, 0xF8A2, 0, /* 0xC0 */
- 0xE3C7, 0, 0xC0AB, 0xE3D7, 0xC0BB, 0, 0, 0, /* 0xC0 */
- 0xE3D9, 0, 0, 0, 0xE3D8, 0xE3DA, 0xB4B3, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xB9D8, 0, 0xE3DB, 0, /* 0xD0 */
- 0, 0xB2FB, 0xF8DB, 0, 0, 0xE3CB /* 0xE0 */
- /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_96[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x10 */
- 0xB8B7, 0xDAE2, 0, 0, /* 0x10 */
- 0, 0xDAE4, 0xDAE3, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xDAE6, 0, 0, 0, 0xC8EE, 0, /* 0x20 */
- 0, 0xDAE5, 0xB7C0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xD7E8, 0xDAE8, 0xDAE7, 0, 0xB0A2, /* 0x30 */
- 0xCDD3, 0, 0xDAE9, 0, 0xB8BD, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xC2AA, 0xC4B0, 0xBDB5, 0, 0, /* 0x40 */
- 0xCFDE, 0, 0, 0, 0xDAEB, 0, 0, 0, /* 0x50 */
- 0xDAEA, 0, 0, 0xB1DD, 0, 0xC9C2, 0, 0xDAEC, /* 0x50 */
- 0, 0xB6B8, 0xD4BA, 0xD5F3, 0xB3FD, 0, 0, 0, /* 0x60 */
- 0, 0, 0xC5E3, 0, 0xDAEE, 0, 0, 0, /* 0x60 */
- 0xD2F5, 0, 0xDAEF, 0xB3C2, 0xDAF0, 0xC1EA, 0xCCD5, 0xCFDD, /* 0x70 */
- 0xC2BD, 0, 0, 0, 0, 0xD1F4, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xD3E7, 0xC2A1, 0, /* 0x80 */
- 0xDAF1, 0xDAED, 0xB6D3, 0xCBE5, 0, 0xDAF2, 0xBDD7, 0, /* 0x80 */
- 0, 0, 0, 0, 0xB8F4, 0xD4C9, 0, 0xDAF3, /* 0x90 */
- 0xB0AF, 0xCFB6, 0, 0xBCCA, 0xD5CF, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0xCBED, /* 0xA0 */
- 0xCBE6, 0, 0xCFD5, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xDAF4, 0xD2FE, 0, 0xE3C4, 0xC2A4, 0, 0, 0, /* 0xB0 */
- 0xC1A5, 0xF6BF, 0, 0xF9A2, 0xF6C0, 0xF6C1, 0, 0, /* 0xB0 */
- 0xC8B8, 0xD1E3, 0, 0, 0xD0DB, 0xD1C5, 0xBCAF, 0xB9CD, /* 0xC0 */
- 0, 0xEFF4, 0, 0, 0xB4C6, 0xD3BA, 0xF6C2, 0, /* 0xC0 */
- 0, 0, 0xF6C3, 0, 0, 0xB5F1, 0xCBE4, 0, /* 0xD0 */
- 0, 0xCBAB, 0, 0xB3FB, 0xD4D3, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xC0EB, 0xC4D1, 0, 0, 0, 0, /* 0xE0 */
- 0xD3EA, 0xF6A7, 0xD1A9, 0, 0, 0, 0, 0xF6A9, /* 0xE0 */
- 0, 0, 0xD4C6, 0, 0, 0, 0xC1E3, 0xC0D7, /* 0xF0 */
- 0, 0xB1A2, 0, 0xB5E7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_97[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD0E8, 0, 0, 0, 0xCFF6, 0, 0xF6AA, 0xD5F0, /* 0x00 */
- 0xF6AC, 0xC3B9, 0, 0, 0, 0xBBF4, 0xF6AE, 0xF6AD, /* 0x00 */
- 0, 0, 0, 0xC4DE, 0, 0, 0xC1D8, 0, /* 0x10 */
- 0, 0, 0, 0, 0xCBAA, 0, 0xCFBC, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xCEED, /* 0x20 */
- 0, 0, 0xF6AF, 0, 0, 0, 0, 0, /* 0x20 */
- 0xF6B1, 0, 0xC2B6, 0, 0, 0, 0, 0, /* 0x30 */
- 0xB0D4, 0xC5F9, 0, 0, 0, 0xF6AB, 0xF6B2, 0, /* 0x30 */
- 0, 0, 0xF6A8, 0, 0xF6B0, 0, 0, 0, /* 0x40 */
- 0xC1E9, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xC7E0, 0, 0, 0, 0xBEB8, 0, /* 0x50 */
- 0, 0, 0xF6A6, 0xB5E5, 0xBEB2, 0, 0xB7C7, 0, /* 0x50 */
- 0xBFBF, 0xC3D2, 0xC3E6, 0, 0, 0, 0, 0, /* 0x60 */
- 0xD8CC, 0xB8EF, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xBDF9, 0xD1A5, 0, 0xB0D0, 0, /* 0x70 */
- 0, 0, 0, 0, 0xF7B0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xF7B1, 0, 0, /* 0x80 */
- 0, 0, 0, 0xD0AC, 0, 0xB0B0, 0, 0xB9AE, /* 0x80 */
- 0, 0, 0, 0, 0xF7B4, 0, 0, 0, /* 0x90 */
- 0xC7CA, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xBECF, 0, 0, 0xF7B7, 0, 0, 0xF8E4, 0, /* 0xA0 */
- 0, 0, 0, 0xF7B6, 0, 0xB1DE, 0, 0, /* 0xA0 */
- 0, 0, 0xF7B8, 0, 0xF7B9, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xF7B3, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xF7B2, 0, 0, 0xF8E1, 0, /* 0xC0 */
- 0, 0xF7B5, 0, 0xCEA4, 0xC8CD, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xBAAB, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xE8B8, 0, 0, 0xE8BA, 0, 0xE8B9, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xBEC2, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xD2F4, 0, 0xD4CF, 0xC9D8, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0, 0xCFEC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_98[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD2B3, 0xB6A5, 0xC7EA, 0, 0xCFEE, 0xCBB3, 0xF1FC, /* 0x00 */
- 0xD0EB, 0, 0xE7EF, 0, 0xCBCC, 0, 0xF1FD, 0xF1FE, /* 0x00 */
- 0xD4A4, 0xCDE7, 0xB0E4, 0xB6D9, 0, 0, 0, 0xC6C4, /* 0x10 */
- 0xC1EC, 0, 0, 0, 0xF2A2, 0, 0, 0, /* 0x10 */
- 0, 0xF2A1, 0, 0, 0xD2C3, 0, 0xF2A4, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xCDB7, 0, 0, /* 0x20 */
- 0xBCD5, 0, 0, 0, 0, 0, 0, 0xF2A5, /* 0x30 */
- 0xBEB1, 0, 0, 0xC6B5, 0, 0xCDC7, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xBFC5, 0, /* 0x40 */
- 0, 0, 0, 0, 0xCCE2, 0xB6EE, 0xF2A6, 0, /* 0x40 */
- 0, 0, 0, 0xF2A7, 0xD1D5, 0, 0, 0, /* 0x50 */
- 0xD4B8, 0xF2AA, 0, 0xB5DF, 0, 0, 0xC0E0, 0, /* 0x50 */
- 0, 0, 0xF2A9, 0, 0, 0xF2AB, 0, 0xB9CB, /* 0x60 */
- 0, 0, 0, 0xB2FC, 0xF2AC, 0, 0, 0xCFD4, /* 0x60 */
- 0xF2AD, 0xC2AD, 0, 0xF2A8, 0xC8A7, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xB7E7, 0, 0, 0, 0, 0, 0xECA9, 0xECAA, /* 0xA0 */
- 0, 0xF8EC, 0, 0xF8B7, 0, 0, 0xECAB, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xECAC, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xC6AE, 0, 0xECAD, 0, /* 0xC0 */
- 0xECAE, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xB7C9, 0, 0, 0, 0xCAB3, /* 0xD0 */
- 0xE2BB, 0, 0xF8BF, 0, 0, 0, 0, 0xE2B8, /* 0xE0 */
- 0, 0xE2BD, 0xE2BF, 0xE2C0, 0, 0xE2C1, 0, 0xB7B9, /* 0xE0 */
- 0, 0, 0xD2FB, 0, 0xE2C2, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0xCBC7, 0xB1A5, 0xCACE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_99[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBDC8, 0, 0xB1FD, 0, 0, /* 0x00 */
- 0, 0xE2C3, 0xD1F8, 0, 0xB6FC, 0, 0, 0, /* 0x00 */
- 0xB2CD, 0xE2C4, 0xC4D9, 0xB6F6, 0, 0, 0, 0, /* 0x10 */
- 0xD3E0, 0, 0, 0xE2C6, 0, 0, 0xBDA4, 0, /* 0x10 */
- 0, 0xCFDA, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xB9DD, 0, 0, 0, 0, 0, 0xF7D1, 0, /* 0x20 */
- 0, 0, 0, 0xE2BC, 0, 0, 0, 0xE2C7, /* 0x30 */
- 0, 0, 0, 0, 0xE2BE, 0, 0xC1F3, 0xE2C8, /* 0x30 */
- 0, 0, 0, 0xE2C9, 0, 0xC2F8, 0, 0, /* 0x40 */
- 0xE2CA, 0xE2CB, 0xE2CC, 0xC0A1, 0xE2CD, 0, 0, 0, /* 0x40 */
- 0, 0xBCA2, 0xC8C4, 0, 0xF7D3, 0xF7D2, 0, 0xF7CF, /* 0x50 */
- 0, 0, 0, 0, 0xF7D0, 0, 0xB2F6, 0, /* 0x50 */
- 0, 0, 0xE2CE, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xCAD7, 0xD8B8, /* 0x90 */
- 0xD9E5, 0xCFE3, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xF0A5, 0, 0, /* 0xA0 */
- 0xDCB0, 0, 0, 0, 0xC2ED, 0xD4A6, 0xB7EB, 0, /* 0xA0 */
- 0, 0xCDD4, 0, 0xB3DB, 0xD1B1, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0xB2B5, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0xD7A4, 0xE6E5, 0xBED4, 0, 0xE6E0, 0xBCDD, 0, 0, /* 0xD0 */
- 0xE6E6, 0xE6E2, 0, 0xCABB, 0, 0xCDD5, 0, 0xE6E1, /* 0xD0 */
- 0, 0xC2EE, 0xE6E9, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xBAA7, 0, 0, /* 0xE0 */
- 0, 0xC2E6, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0, 0xBFA5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_9A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB3D2, 0, 0, 0, 0xE6ED, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0xE6EC, 0xC6EF, 0xE6EB, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xE6F0, 0, /* 0x10 */
- 0, 0xC6AD, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0xE5B9, 0, 0xE6EF, 0xE6F2, 0, /* 0x20 */
- 0xCCDA, 0, 0, 0, 0, 0, 0xE6E3, 0xC9A7, /* 0x30 */
- 0xE6F3, 0, 0, 0, 0, 0, 0xC2E2, 0, /* 0x30 */
- 0xDDEB, 0xE6F1, 0xE6EE, 0xE6F4, 0xE6F5, 0xC7FD, 0, 0, /* 0x40 */
- 0, 0, 0xE6E8, 0, 0, 0xE6E7, 0, 0xE6F6, /* 0x40 */
- 0, 0, 0, 0, 0, 0xBDBE, 0, 0xD1E9, /* 0x50 */
- 0, 0, 0xBEAA, 0xE6E4, 0, 0, 0, 0xD6E8, /* 0x50 */
- 0, 0, 0xC2BF, 0, 0xE6F8, 0xE6F7, 0, 0, /* 0x60 */
- 0, 0, 0xE6EA, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xB9C7, 0, 0, 0, 0, 0, 0, 0xB0B9, /* 0xA0 */
- 0xF7BB, 0xF7BA, 0, 0, 0, 0, 0xF7BE, 0xF7BC, /* 0xB0 */
- 0xBAA1, 0, 0xF7BF, 0, 0xF7C0, 0, 0, 0, /* 0xB0 */
- 0xF7C2, 0xF7C1, 0xF7C4, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xF7C3, /* 0xC0 */
- 0, 0xF7C7, 0xF8FE, 0xCBE8, 0xCCE5, 0xF7C6, 0xF7C5, 0, /* 0xD0 */
- 0xB8DF, 0, 0, 0, 0, 0, 0, 0xF7D4, /* 0xD0 */
- 0, 0xF7D5, 0, 0, 0, 0, 0xF7D6, 0, /* 0xE0 */
- 0, 0, 0, 0xF7D8, 0, 0xF7DA, 0xF8B1, 0xF7D7, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0xF7DB, 0, 0xF7D9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_9B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD7D7, 0, 0, 0xCBC9, 0, /* 0x00 */
- 0xF7DC, 0, 0, 0, 0, 0xF8BA, 0, 0xF7DD, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0xF8F6, 0, 0, 0, 0, 0xF7DF, /* 0x10 */
- 0, 0, 0xF7DE, 0xF7E0, 0, 0xB6B7, 0, 0xC4D6, /* 0x20 */
- 0, 0xE3D2, 0, 0, 0, 0, 0xE3CE, 0xDBCB, /* 0x20 */
- 0, 0xD3F4, 0xD8AA, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xE5F7, 0xB9ED, 0, 0, 0, /* 0x30 */
- 0, 0xBFFD, 0xBBEA, 0xF7C9, 0xC6C7, 0xF7C8, 0, 0, /* 0x40 */
- 0xF7CC, 0, 0, 0, 0, 0xF7CD, 0xF7CB, 0xCEBA, /* 0x40 */
- 0, 0xF7CE, 0, 0, 0xC4A7, 0, 0, 0, /* 0x50 */
- 0xF7CA, 0, 0xD3E3, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0xC2B3, /* 0x60 */
- 0, 0, 0, 0, 0xF6D0, 0, 0, 0xF6CF, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xF6D1, 0, 0xF6D2, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xF6D3, 0, /* 0x80 */
- 0xF6D8, 0xB1AB, 0xF6D6, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xF6DA, 0, 0, 0xF6DF, 0xF6DC, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xF6DB, 0xF6DE, 0, 0xF6D9, 0xCFCA, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xF6E7, 0xF6E1, 0, 0, 0, 0, 0, 0xF6E9, /* 0xC0 */
- 0, 0xC0F0, 0xF6E8, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xF6F6, 0, 0xF6EB, 0, /* 0xD0 */
- 0, 0, 0, 0xF6F4, 0, 0xF6F1, 0, 0, /* 0xD0 */
- 0, 0xF6EE, 0xF6F2, 0, 0xF6EF, 0, 0, 0xF6F0, /* 0xE0 */
- 0xBEA8, 0, 0xF6EC, 0xF6ED, 0, 0, 0, 0, /* 0xE0 */
- 0xF6F3, 0, 0, 0, 0xF6F5, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0xF6EA, 0, 0xF6FD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_9C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xF6F8, 0xF6FC, 0, 0, 0, 0xF6FA, 0, 0, /* 0x00 */
- 0xF6F9, 0, 0xF6FB, 0xC8FA, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xF6FE, 0, 0, 0xF6E5, 0, 0xF7A4, 0, 0, /* 0x20 */
- 0xF7A3, 0xF7A5, 0, 0, 0, 0xF7A2, 0, 0, /* 0x20 */
- 0, 0xF6E3, 0xF7A1, 0xF7A6, 0, 0xF7AA, 0, 0xF6E6, /* 0x30 */
- 0, 0xF6E4, 0, 0xF7A9, 0, 0, 0xF7A7, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0xF7AB, 0, 0, /* 0x40 */
- 0xF7A8, 0xB1EE, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xF7AE, 0, 0xF7AD, 0, 0xF7AC, 0xC1DB, /* 0x50 */
- 0xF6E0, 0, 0, 0, 0, 0xF6F7, 0, 0xF6D7, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0xF7AF, /* 0x60 */
- 0, 0, 0, 0, 0, 0xF6DD, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0xF6D4, 0, 0xF6E2, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xC4F1, 0, 0, /* 0xE0 */
- 0, 0xF0AF, 0, 0, 0xD9EC, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xB7EF, 0xC3F9, 0, 0xF0B0 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_9D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF0B2, 0xF0B1, /* 0x00 */
- 0, 0xD1BB, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0xCDD2, 0, 0, /* 0x10 */
- 0, 0, 0, 0xD4A7, 0, 0xF0B6, 0, 0xF0B7, /* 0x10 */
- 0, 0, 0, 0xF0B3, 0, 0, 0xD1EC, 0, /* 0x20 */
- 0xD1BC, 0, 0, 0, 0, 0, 0, 0xF0B9, /* 0x20 */
- 0xF0BB, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xBAE8, 0, 0, 0, 0xB8EB, /* 0x30 */
- 0, 0, 0xF0BC, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0xBEE9, 0xF0C1, 0xF0BE, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0xF0C3, 0xB6EC, 0, 0, /* 0x50 */
- 0xF0C0, 0xF0C4, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xF0C6, 0, 0xC5F4, 0, 0, 0xF0C7, /* 0x60 */
- 0, 0, 0xC8B5, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xF0B4, /* 0x80 */
- 0, 0xF0C8, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xF0C5, 0, 0, 0, 0, /* 0x90 */
- 0xF0C9, 0, 0xF0CA, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xF0CC, 0, 0, /* 0xA0 */
- 0, 0xF0CD, 0, 0, 0, 0, 0, 0xDDBA, /* 0xA0 */
- 0, 0, 0, 0, 0xBAD7, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xF7BD, 0xF0CF, 0, 0, 0, /* 0xB0 */
- 0xF0CB, 0, 0xF0CE, 0, 0xBCA6, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xF0D1, 0, 0, 0, 0xC5B8, /* 0xD0 */
- 0, 0xF0BA, 0xF0D2, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xF0B8, 0xF0D4, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0xF0D3, /* 0xE0 */
- 0, 0, 0xF0D5, 0xF0C2, 0, 0, 0, 0, /* 0xF0 */
- 0xF0D6, 0xD3A5, 0xF0D8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_9E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xF0D7, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0xF0B5, 0, 0, /* 0x10 */
- 0, 0, 0xF0D0, 0xF0D9, 0, 0xF0BF, 0xF0BD, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xF8D2, 0, 0, /* 0x70 */
- 0, 0xF8F4, 0xF5BA, 0, 0xBCEF, 0xD1CE, 0, 0xC2B9, /* 0x70 */
- 0, 0, 0xF7E4, 0, 0, 0, 0, 0xF7E5, /* 0x80 */
- 0xF7E6, 0, 0, 0xF7E7, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0xF7E8, 0xC2B4, 0, 0, 0, 0xC0F6, /* 0x90 */
- 0, 0, 0, 0, 0, 0xF7EA, 0, 0xF7EB, /* 0x90 */
- 0, 0, 0, 0, 0, 0xC2F3, 0, 0, /* 0xA0 */
- 0, 0xF4EF, 0, 0, 0, 0, 0, 0xF8E5, /* 0xA0 */
- 0, 0, 0, 0, 0xF4F0, 0xF8D9, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xC2E9, 0, 0xC3B4, 0xF7E2, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xBBC6, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xD9E4, 0xCAF2, 0xC0E8, 0xF0A4, /* 0xC0 */
- 0, 0xBADA, 0, 0, 0xC7AD, 0, 0, 0, /* 0xD0 */
- 0xC4AC, 0, 0, 0xF7EC, 0xF7ED, 0xF7EE, 0xB5E3, 0xF7F0, /* 0xD0 */
- 0xF7EF, 0, 0xF7F1, 0, 0, 0xF7F4, 0, 0xF7F3, /* 0xE0 */
- 0xB5B3, 0, 0, 0, 0, 0, 0, 0xF7F6, /* 0xE0 */
- 0, 0, 0xF7F5, 0, 0xF8D4, 0, 0, 0xF7F2, /* 0xF0 */
- 0, 0xEDE9, 0, 0xEDEA, 0xEDEB, 0xF6BC, 0, 0xF6BD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_GBT_9F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xF6BE, 0, 0, 0, 0, 0xB6A6, 0, /* 0x00 */
- 0xD8BE, 0, 0, 0xB9C4, 0, 0xF8AE, 0, 0xD8BB, /* 0x10 */
- 0, 0xDCB1, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xCAF3, 0, 0xF7F7, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xF7F8, 0, 0, 0xF7F9, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0xF7FB, /* 0x30 */
- 0, 0xF7FA, 0, 0xB1C7, 0, 0xF7FC, 0xF7FD, 0, /* 0x30 */
- 0, 0, 0, 0, 0xF7FE, 0, 0, 0, /* 0x40 */
- 0, 0, 0xC6EB, 0xD5AB, 0, 0, 0, 0xECB4, /* 0x40 */
- 0, 0, 0xB3DD, 0, 0xF6B3, 0, 0, 0, /* 0x50 */
- 0, 0xF6B5, 0, 0, 0xF6B7, 0, 0, 0xF6B4, /* 0x50 */
- 0xF6B6, 0xC1E4, 0, 0xF8AA, 0, 0, 0xF6B8, 0, /* 0x60 */
- 0, 0, 0xF6BA, 0, 0xF6B9, 0, 0, 0, /* 0x60 */
- 0, 0, 0xC8A3, 0, 0, 0, 0, 0xF6BB, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xC1FA, 0, 0, /* 0x80 */
- 0xC5D3, 0, 0, 0, 0xB9A8, 0xEDE8, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xB9EA, 0, 0, 0, /* 0x90 */
- 0xD9DF /* 0xA0 */
- /* 0xA0 */
-};
diff --git a/sal/textenc/tcvtscn6.tab b/sal/textenc/tcvtscn6.tab
deleted file mode 100644
index fd6ce537f..000000000
--- a/sal/textenc/tcvtscn6.tab
+++ /dev/null
@@ -1,2956 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the information tables for all */
-/* chinese simplified (China) charsets: */
-/* GB2312, GBK, MS936, APPLE_CHINSIMP */
-
-/* GBK is MS-CP 936 and a superset of GB-2312-80. In GB-2312-80 the range */
-/* is 0xA1-0xFE for the leading byte and 0xA1-0xFE for the trailing byte. */
-/* In GBK the range is from 0x81-0xFE for the leading byte and 0x40-0xFE */
-/* for the trailing byte. */
-
-/* ======================================================================= */
-
-#define GBKOFF 0x61
-
-/* ======================================================================= */
-
-static ImplDBCSToUniLeadTab const aGB2312UniLeadTab[256] =
-{
- { 0x0000, 0, 0, NULL }, /* 0x00 */
- { 0x0001, 0, 0, NULL }, /* 0x01 */
- { 0x0002, 0, 0, NULL }, /* 0x02 */
- { 0x0003, 0, 0, NULL }, /* 0x03 */
- { 0x0004, 0, 0, NULL }, /* 0x04 */
- { 0x0005, 0, 0, NULL }, /* 0x05 */
- { 0x0006, 0, 0, NULL }, /* 0x06 */
- { 0x0007, 0, 0, NULL }, /* 0x07 */
- { 0x0008, 0, 0, NULL }, /* 0x08 */
- { 0x0009, 0, 0, NULL }, /* 0x09 */
- { 0x000A, 0, 0, NULL }, /* 0x0A */
- { 0x000B, 0, 0, NULL }, /* 0x0B */
- { 0x000C, 0, 0, NULL }, /* 0x0C */
- { 0x000D, 0, 0, NULL }, /* 0x0D */
- { 0x000E, 0, 0, NULL }, /* 0x0E */
- { 0x000F, 0, 0, NULL }, /* 0x0F */
- { 0x0010, 0, 0, NULL }, /* 0x10 */
- { 0x0011, 0, 0, NULL }, /* 0x11 */
- { 0x0012, 0, 0, NULL }, /* 0x12 */
- { 0x0013, 0, 0, NULL }, /* 0x13 */
- { 0x0014, 0, 0, NULL }, /* 0x14 */
- { 0x0015, 0, 0, NULL }, /* 0x15 */
- { 0x0016, 0, 0, NULL }, /* 0x16 */
- { 0x0017, 0, 0, NULL }, /* 0x17 */
- { 0x0018, 0, 0, NULL }, /* 0x18 */
- { 0x0019, 0, 0, NULL }, /* 0x19 */
- { 0x001A, 0, 0, NULL }, /* 0x1A */
- { 0x001B, 0, 0, NULL }, /* 0x1B */
- { 0x001C, 0, 0, NULL }, /* 0x1C */
- { 0x001D, 0, 0, NULL }, /* 0x1D */
- { 0x001E, 0, 0, NULL }, /* 0x1E */
- { 0x001F, 0, 0, NULL }, /* 0x1F */
- { 0x0020, 0, 0, NULL }, /* 0x20 */
- { 0x0021, 0, 0, NULL }, /* 0x21 */
- { 0x0022, 0, 0, NULL }, /* 0x22 */
- { 0x0023, 0, 0, NULL }, /* 0x23 */
- { 0x0024, 0, 0, NULL }, /* 0x24 */
- { 0x0025, 0, 0, NULL }, /* 0x25 */
- { 0x0026, 0, 0, NULL }, /* 0x26 */
- { 0x0027, 0, 0, NULL }, /* 0x27 */
- { 0x0028, 0, 0, NULL }, /* 0x28 */
- { 0x0029, 0, 0, NULL }, /* 0x29 */
- { 0x002A, 0, 0, NULL }, /* 0x2A */
- { 0x002B, 0, 0, NULL }, /* 0x2B */
- { 0x002C, 0, 0, NULL }, /* 0x2C */
- { 0x002D, 0, 0, NULL }, /* 0x2D */
- { 0x002E, 0, 0, NULL }, /* 0x2E */
- { 0x002F, 0, 0, NULL }, /* 0x2F */
- { 0x0030, 0, 0, NULL }, /* 0x30 */
- { 0x0031, 0, 0, NULL }, /* 0x31 */
- { 0x0032, 0, 0, NULL }, /* 0x32 */
- { 0x0033, 0, 0, NULL }, /* 0x33 */
- { 0x0034, 0, 0, NULL }, /* 0x34 */
- { 0x0035, 0, 0, NULL }, /* 0x35 */
- { 0x0036, 0, 0, NULL }, /* 0x36 */
- { 0x0037, 0, 0, NULL }, /* 0x37 */
- { 0x0038, 0, 0, NULL }, /* 0x38 */
- { 0x0039, 0, 0, NULL }, /* 0x39 */
- { 0x003A, 0, 0, NULL }, /* 0x3A */
- { 0x003B, 0, 0, NULL }, /* 0x3B */
- { 0x003C, 0, 0, NULL }, /* 0x3C */
- { 0x003D, 0, 0, NULL }, /* 0x3D */
- { 0x003E, 0, 0, NULL }, /* 0x3E */
- { 0x003F, 0, 0, NULL }, /* 0x3F */
- { 0x0040, 0, 0, NULL }, /* 0x40 */
- { 0x0041, 0, 0, NULL }, /* 0x41 */
- { 0x0042, 0, 0, NULL }, /* 0x42 */
- { 0x0043, 0, 0, NULL }, /* 0x43 */
- { 0x0044, 0, 0, NULL }, /* 0x44 */
- { 0x0045, 0, 0, NULL }, /* 0x45 */
- { 0x0046, 0, 0, NULL }, /* 0x46 */
- { 0x0047, 0, 0, NULL }, /* 0x47 */
- { 0x0048, 0, 0, NULL }, /* 0x48 */
- { 0x0049, 0, 0, NULL }, /* 0x49 */
- { 0x004A, 0, 0, NULL }, /* 0x4A */
- { 0x004B, 0, 0, NULL }, /* 0x4B */
- { 0x004C, 0, 0, NULL }, /* 0x4C */
- { 0x004D, 0, 0, NULL }, /* 0x4D */
- { 0x004E, 0, 0, NULL }, /* 0x4E */
- { 0x004F, 0, 0, NULL }, /* 0x4F */
- { 0x0050, 0, 0, NULL }, /* 0x50 */
- { 0x0051, 0, 0, NULL }, /* 0x51 */
- { 0x0052, 0, 0, NULL }, /* 0x52 */
- { 0x0053, 0, 0, NULL }, /* 0x53 */
- { 0x0054, 0, 0, NULL }, /* 0x54 */
- { 0x0055, 0, 0, NULL }, /* 0x55 */
- { 0x0056, 0, 0, NULL }, /* 0x56 */
- { 0x0057, 0, 0, NULL }, /* 0x57 */
- { 0x0058, 0, 0, NULL }, /* 0x58 */
- { 0x0059, 0, 0, NULL }, /* 0x59 */
- { 0x005A, 0, 0, NULL }, /* 0x5A */
- { 0x005B, 0, 0, NULL }, /* 0x5B */
- { 0x005C, 0, 0, NULL }, /* 0x5C */
- { 0x005D, 0, 0, NULL }, /* 0x5D */
- { 0x005E, 0, 0, NULL }, /* 0x5E */
- { 0x005F, 0, 0, NULL }, /* 0x5F */
- { 0x0060, 0, 0, NULL }, /* 0x60 */
- { 0x0061, 0, 0, NULL }, /* 0x61 */
- { 0x0062, 0, 0, NULL }, /* 0x62 */
- { 0x0063, 0, 0, NULL }, /* 0x63 */
- { 0x0064, 0, 0, NULL }, /* 0x64 */
- { 0x0065, 0, 0, NULL }, /* 0x65 */
- { 0x0066, 0, 0, NULL }, /* 0x66 */
- { 0x0067, 0, 0, NULL }, /* 0x67 */
- { 0x0068, 0, 0, NULL }, /* 0x68 */
- { 0x0069, 0, 0, NULL }, /* 0x69 */
- { 0x006A, 0, 0, NULL }, /* 0x6A */
- { 0x006B, 0, 0, NULL }, /* 0x6B */
- { 0x006C, 0, 0, NULL }, /* 0x6C */
- { 0x006D, 0, 0, NULL }, /* 0x6D */
- { 0x006E, 0, 0, NULL }, /* 0x6E */
- { 0x006F, 0, 0, NULL }, /* 0x6F */
- { 0x0070, 0, 0, NULL }, /* 0x70 */
- { 0x0071, 0, 0, NULL }, /* 0x71 */
- { 0x0072, 0, 0, NULL }, /* 0x72 */
- { 0x0073, 0, 0, NULL }, /* 0x73 */
- { 0x0074, 0, 0, NULL }, /* 0x74 */
- { 0x0075, 0, 0, NULL }, /* 0x75 */
- { 0x0076, 0, 0, NULL }, /* 0x76 */
- { 0x0077, 0, 0, NULL }, /* 0x77 */
- { 0x0078, 0, 0, NULL }, /* 0x78 */
- { 0x0079, 0, 0, NULL }, /* 0x79 */
- { 0x007A, 0, 0, NULL }, /* 0x7A */
- { 0x007B, 0, 0, NULL }, /* 0x7B */
- { 0x007C, 0, 0, NULL }, /* 0x7C */
- { 0x007D, 0, 0, NULL }, /* 0x7D */
- { 0x007E, 0, 0, NULL }, /* 0x7E */
- { 0x007F, 0, 0, NULL }, /* 0x7F */
- { 0x20AC, 0, 0, NULL }, /* 0x80 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x81 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x82 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x83 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x84 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x85 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x86 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x87 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x88 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x89 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8A */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8B */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8C */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8D */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8E */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8F */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x90 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x91 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x92 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x93 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x94 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x95 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x96 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x97 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x98 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x99 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9A */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9B */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9C */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9D */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9E */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9F */ /* We convert this as double byte */
- { 0, 1, 0, NULL }, /* 0xA0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GB_A1 }, /* 0xA1 */
- { 0, 0xA1, 0xFC, aImplDBCSToUniTab_GB_A2 }, /* 0xA2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GB_A3 }, /* 0xA3 */
- { 0, 0xA1, 0xF3, aImplDBCSToUniTab_GB_A4 }, /* 0xA4 */
- { 0, 0xA1, 0xF6, aImplDBCSToUniTab_GB_A5 }, /* 0xA5 */
- { 0, 0xA1, 0xF5, aImplDBCSToUniTab_GB_A6 }, /* 0xA6 */
- { 0, 0xA1, 0xF1, aImplDBCSToUniTab_GB_A7 }, /* 0xA7 */
- { 0, 0xA1, 0xE9, aImplDBCSToUniTab_GBK_A8+GBKOFF }, /* 0xA8 */
- { 0, 0xA1, 0xEF, aImplDBCSToUniTab_GBK_A9+GBKOFF }, /* 0xA9 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xAA */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xAB */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xAC */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xAD */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xAE */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xAF */ /* We convert this as double byte */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_B0+GBKOFF }, /* 0xB0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_B1+GBKOFF }, /* 0xB1 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_B2+GBKOFF }, /* 0xB2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_B3+GBKOFF }, /* 0xB3 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_B4+GBKOFF }, /* 0xB4 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_B5+GBKOFF }, /* 0xB5 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_B6+GBKOFF }, /* 0xB6 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_B7+GBKOFF }, /* 0xB7 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_B8+GBKOFF }, /* 0xB8 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_B9+GBKOFF }, /* 0xB9 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_BA+GBKOFF }, /* 0xBA */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_BB+GBKOFF }, /* 0xBB */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_BC+GBKOFF }, /* 0xBC */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_BD+GBKOFF }, /* 0xBD */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_BE+GBKOFF }, /* 0xBE */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_BF+GBKOFF }, /* 0xBF */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_C0+GBKOFF }, /* 0xC0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_C1+GBKOFF }, /* 0xC1 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_C2+GBKOFF }, /* 0xC2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_C3+GBKOFF }, /* 0xC3 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_C4+GBKOFF }, /* 0xC4 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_C5+GBKOFF }, /* 0xC5 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_C6+GBKOFF }, /* 0xC6 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_C7+GBKOFF }, /* 0xC7 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_C8+GBKOFF }, /* 0xC8 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_C9+GBKOFF }, /* 0xC9 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_CA+GBKOFF }, /* 0xCA */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_CB+GBKOFF }, /* 0xCB */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_CC+GBKOFF }, /* 0xCC */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_CD+GBKOFF }, /* 0xCD */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_CE+GBKOFF }, /* 0xCE */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_CF+GBKOFF }, /* 0xCF */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_D0+GBKOFF }, /* 0xD0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_D1+GBKOFF }, /* 0xD1 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_D2+GBKOFF }, /* 0xD2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_D3+GBKOFF }, /* 0xD3 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_D4+GBKOFF }, /* 0xD4 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_D5+GBKOFF }, /* 0xD5 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_D6+GBKOFF }, /* 0xD6 */
- { 0, 0xA1, 0xF9, aImplDBCSToUniTab_GBK_D7+GBKOFF }, /* 0xD7 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_D8+GBKOFF }, /* 0xD8 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_D9+GBKOFF }, /* 0xD9 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_DA+GBKOFF }, /* 0xDA */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_DB+GBKOFF }, /* 0xDB */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_DC+GBKOFF }, /* 0xDC */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_DD+GBKOFF }, /* 0xDD */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_DE+GBKOFF }, /* 0xDE */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_DF+GBKOFF }, /* 0xDF */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_E0+GBKOFF }, /* 0xE0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_E1+GBKOFF }, /* 0xE1 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_E2+GBKOFF }, /* 0xE2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_E3+GBKOFF }, /* 0xE3 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_E4+GBKOFF }, /* 0xE4 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_E5+GBKOFF }, /* 0xE5 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_E6+GBKOFF }, /* 0xE6 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_E7+GBKOFF }, /* 0xE7 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_E8+GBKOFF }, /* 0xE8 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_E9+GBKOFF }, /* 0xE9 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_EA+GBKOFF }, /* 0xEA */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_EB+GBKOFF }, /* 0xEB */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_EC+GBKOFF }, /* 0xEC */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_ED+GBKOFF }, /* 0xED */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_EE+GBKOFF }, /* 0xEE */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_EF+GBKOFF }, /* 0xEF */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_F0+GBKOFF }, /* 0xF0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_F1+GBKOFF }, /* 0xF1 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_F2+GBKOFF }, /* 0xF2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_F3+GBKOFF }, /* 0xF3 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_F4+GBKOFF }, /* 0xF4 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_F5+GBKOFF }, /* 0xF5 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_F6+GBKOFF }, /* 0xF6 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_F7+GBKOFF }, /* 0xF7 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF8 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF9 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFA */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFB */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFC */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFD */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFE */ /* We convert this as double byte */
- { 0, 1, 0, NULL } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplUniToDBCSHighTab const aGB2312DBCSHighTab[256] =
-{
- { 0x00, 0xFC, aImplUniToDBCSTab_GB_00 }, /* 0x00 */
- { 0x01, 0xDC, aImplUniToDBCSTab_GB_01 }, /* 0x01 */
- { 0x51, 0xC9, aImplUniToDBCSTab_GB_02 }, /* 0x02 */
- { 0x91, 0xC9, aImplUniToDBCSTab_GB_03 }, /* 0x03 */
- { 0x01, 0x51, aImplUniToDBCSTab_GB_04 }, /* 0x04 */
- { 1, 0, NULL }, /* 0x05 */
- { 1, 0, NULL }, /* 0x06 */
- { 1, 0, NULL }, /* 0x07 */
- { 1, 0, NULL }, /* 0x08 */
- { 1, 0, NULL }, /* 0x09 */
- { 1, 0, NULL }, /* 0x0A */
- { 1, 0, NULL }, /* 0x0B */
- { 1, 0, NULL }, /* 0x0C */
- { 1, 0, NULL }, /* 0x0D */
- { 1, 0, NULL }, /* 0x0E */
- { 1, 0, NULL }, /* 0x0F */
- { 1, 0, NULL }, /* 0x10 */
- { 1, 0, NULL }, /* 0x11 */
- { 1, 0, NULL }, /* 0x12 */
- { 1, 0, NULL }, /* 0x13 */
- { 1, 0, NULL }, /* 0x14 */
- { 1, 0, NULL }, /* 0x15 */
- { 1, 0, NULL }, /* 0x16 */
- { 1, 0, NULL }, /* 0x17 */
- { 1, 0, NULL }, /* 0x18 */
- { 1, 0, NULL }, /* 0x19 */
- { 1, 0, NULL }, /* 0x1A */
- { 1, 0, NULL }, /* 0x1B */
- { 1, 0, NULL }, /* 0x1C */
- { 1, 0, NULL }, /* 0x1D */
- { 0x3F, 0x3F, aImplUniToDBCSTab_APPLECHINSIMP_1E }, /* 0x1E */ /* we convert this char also to unicode */
- { 1, 0, NULL }, /* 0x1F */
- { 0x14, 0xAC, aImplUniToDBCSTab_GB_20 }, /* 0x20 */
- { 0x03, 0x93, aImplUniToDBCSTab_GB_21 }, /* 0x21 */
- { 0x08, 0xEF, aImplUniToDBCSTab_GB_22 }, /* 0x22 */
- { 0x12, 0x12, aImplUniToDBCSTab_GB_23 }, /* 0x23 */
- { 0x60, 0x9B, aImplUniToDBCSTab_GB_24 }, /* 0x24 */
- { 0x00, 0xCF, aImplUniToDBCSTab_GB_25 }, /* 0x25 */
- { 0x05, 0x42, aImplUniToDBCSTab_GB_26 }, /* 0x26 */
- { 1, 0, NULL }, /* 0x27 */
- { 1, 0, NULL }, /* 0x28 */
- { 1, 0, NULL }, /* 0x29 */
- { 1, 0, NULL }, /* 0x2A */
- { 1, 0, NULL }, /* 0x2B */
- { 1, 0, NULL }, /* 0x2C */
- { 1, 0, NULL }, /* 0x2D */
- { 1, 0, NULL }, /* 0x2E */
- { 1, 0, NULL }, /* 0x2F */
- { 0x00, 0xFB, aImplUniToDBCSTab_GB_30 }, /* 0x30 */
- { 0x05, 0x29, aImplUniToDBCSTab_GB_31 }, /* 0x31 */
- { 0x20, 0x29, aImplUniToDBCSTab_GBK_32 }, /* 0x32 */
- { 1, 0, NULL }, /* 0x33 */
- { 1, 0, NULL }, /* 0x34 */
- { 1, 0, NULL }, /* 0x35 */
- { 1, 0, NULL }, /* 0x36 */
- { 1, 0, NULL }, /* 0x37 */
- { 1, 0, NULL }, /* 0x38 */
- { 1, 0, NULL }, /* 0x39 */
- { 1, 0, NULL }, /* 0x3A */
- { 1, 0, NULL }, /* 0x3B */
- { 1, 0, NULL }, /* 0x3C */
- { 1, 0, NULL }, /* 0x3D */
- { 1, 0, NULL }, /* 0x3E */
- { 1, 0, NULL }, /* 0x3F */
- { 1, 0, NULL }, /* 0x40 */
- { 1, 0, NULL }, /* 0x41 */
- { 1, 0, NULL }, /* 0x42 */
- { 1, 0, NULL }, /* 0x43 */
- { 1, 0, NULL }, /* 0x44 */
- { 1, 0, NULL }, /* 0x45 */
- { 1, 0, NULL }, /* 0x46 */
- { 1, 0, NULL }, /* 0x47 */
- { 1, 0, NULL }, /* 0x48 */
- { 1, 0, NULL }, /* 0x49 */
- { 1, 0, NULL }, /* 0x4A */
- { 1, 0, NULL }, /* 0x4B */
- { 1, 0, NULL }, /* 0x4C */
- { 1, 0, NULL }, /* 0x4D */
- { 0x00, 0xFF, aImplUniToDBCSTab_GB_4E }, /* 0x4E */
- { 0x01, 0xFE, aImplUniToDBCSTab_GB_4F }, /* 0x4F */
- { 0x0C, 0xFB, aImplUniToDBCSTab_GB_50 }, /* 0x50 */
- { 0x06, 0xFF, aImplUniToDBCSTab_GB_51 }, /* 0x51 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GB_52 }, /* 0x52 */
- { 0x00, 0xFD, aImplUniToDBCSTab_GB_53 }, /* 0x53 */
- { 0x01, 0xFF, aImplUniToDBCSTab_GB_54 }, /* 0x54 */
- { 0x01, 0xFE, aImplUniToDBCSTab_GB_55 }, /* 0x55 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GB_56 }, /* 0x56 */
- { 0x03, 0xFD, aImplUniToDBCSTab_GB_57 }, /* 0x57 */
- { 0x00, 0xF9, aImplUniToDBCSTab_GB_58 }, /* 0x58 */
- { 0x02, 0xFF, aImplUniToDBCSTab_GB_59 }, /* 0x59 */
- { 0x01, 0xF1, aImplUniToDBCSTab_GB_5A }, /* 0x5A */
- { 0x09, 0xFF, aImplUniToDBCSTab_GB_5B }, /* 0x5B */
- { 0x01, 0xFB, aImplUniToDBCSTab_GB_5C }, /* 0x5C */
- { 0x02, 0xFE, aImplUniToDBCSTab_GB_5D }, /* 0x5D */
- { 0x01, 0xFF, aImplUniToDBCSTab_GB_5E }, /* 0x5E */
- { 0x00, 0xFF, aImplUniToDBCSTab_GB_5F }, /* 0x5F */
- { 0x00, 0xFA, aImplUniToDBCSTab_GB_60 }, /* 0x60 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GB_61 }, /* 0x61 */
- { 0x06, 0xFF, aImplUniToDBCSTab_GB_62 }, /* 0x62 */
- { 0x01, 0xFF, aImplUniToDBCSTab_GB_63 }, /* 0x63 */
- { 0x00, 0xE6, aImplUniToDBCSTab_GB_64 }, /* 0x64 */
- { 0x00, 0xFA, aImplUniToDBCSTab_GB_65 }, /* 0x65 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GB_66 }, /* 0x66 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GB_67 }, /* 0x67 */
- { 0x00, 0xFC, aImplUniToDBCSTab_GB_68 }, /* 0x68 */
- { 0x01, 0xFF, aImplUniToDBCSTab_GB_69 }, /* 0x69 */
- { 0x0A, 0xAC, aImplUniToDBCSTab_GB_6A }, /* 0x6A */
- { 0x20, 0xFD, aImplUniToDBCSTab_GB_6B }, /* 0x6B */
- { 0x05, 0xFE, aImplUniToDBCSTab_GB_6C }, /* 0x6C */
- { 0x01, 0xFC, aImplUniToDBCSTab_GB_6D }, /* 0x6D */
- { 0x05, 0xF9, aImplUniToDBCSTab_GB_6E }, /* 0x6E */
- { 0x02, 0xEF, aImplUniToDBCSTab_GB_6F }, /* 0x6F */
- { 0x11, 0xFD, aImplUniToDBCSTab_GB_70 }, /* 0x70 */
- { 0x09, 0xF9, aImplUniToDBCSTab_GB_71 }, /* 0x71 */
- { 0x06, 0xFC, aImplUniToDBCSTab_GB_72 }, /* 0x72 */
- { 0x01, 0xF2, aImplUniToDBCSTab_GB_73 }, /* 0x73 */
- { 0x03, 0xFF, aImplUniToDBCSTab_GB_74 }, /* 0x74 */
- { 0x04, 0xFF, aImplUniToDBCSTab_GB_75 }, /* 0x75 */
- { 0x00, 0xFE, aImplUniToDBCSTab_GB_76 }, /* 0x76 */
- { 0x01, 0xFF, aImplUniToDBCSTab_GB_77 }, /* 0x77 */
- { 0x00, 0xFA, aImplUniToDBCSTab_GB_78 }, /* 0x78 */
- { 0x01, 0xFD, aImplUniToDBCSTab_GB_79 }, /* 0x79 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GB_7A }, /* 0x7A */
- { 0x03, 0xFE, aImplUniToDBCSTab_GB_7B }, /* 0x7B */
- { 0x07, 0xFB, aImplUniToDBCSTab_GB_7C }, /* 0x7C */
- { 0x0A, 0xAE, aImplUniToDBCSTab_GB_7D }, /* 0x7D */
- { 0x3B, 0xFF, aImplUniToDBCSTab_GB_7E }, /* 0x7E */
- { 0x00, 0xFC, aImplUniToDBCSTab_GB_7F }, /* 0x7F */
- { 0x00, 0xFD, aImplUniToDBCSTab_GB_80 }, /* 0x80 */
- { 0x02, 0xFE, aImplUniToDBCSTab_GB_81 }, /* 0x81 */
- { 0x00, 0xFB, aImplUniToDBCSTab_GB_82 }, /* 0x82 */
- { 0x01, 0xFD, aImplUniToDBCSTab_GB_83 }, /* 0x83 */
- { 0x01, 0xFF, aImplUniToDBCSTab_GB_84 }, /* 0x84 */
- { 0x0C, 0xFF, aImplUniToDBCSTab_GB_85 }, /* 0x85 */
- { 0x05, 0xFE, aImplUniToDBCSTab_GB_86 }, /* 0x86 */
- { 0x00, 0xFE, aImplUniToDBCSTab_GB_87 }, /* 0x87 */
- { 0x03, 0xFE, aImplUniToDBCSTab_GB_88 }, /* 0x88 */
- { 0x02, 0xF3, aImplUniToDBCSTab_GB_89 }, /* 0x89 */
- { 0x00, 0x93, aImplUniToDBCSTab_GB_8A }, /* 0x8A */
- { 0x07, 0xFF, aImplUniToDBCSTab_GB_8B }, /* 0x8B */
- { 0x00, 0x98, aImplUniToDBCSTab_GB_8C }, /* 0x8C */
- { 0x1D, 0xFD, aImplUniToDBCSTab_GB_8D }, /* 0x8D */
- { 0x05, 0xCE, aImplUniToDBCSTab_GB_8E }, /* 0x8E */
- { 0x66, 0xFD, aImplUniToDBCSTab_GB_8F }, /* 0x8F */
- { 0x00, 0xFE, aImplUniToDBCSTab_GB_90 }, /* 0x90 */
- { 0x02, 0xDC, aImplUniToDBCSTab_GB_91 }, /* 0x91 */
- { 0x74, 0xC8, aImplUniToDBCSTab_GB_92 }, /* 0x92 */
- { 0x3E, 0xD6, aImplUniToDBCSTab_GB_93 }, /* 0x93 */
- { 0x3E, 0xFF, aImplUniToDBCSTab_GB_94 }, /* 0x94 */
- { 0x00, 0xFE, aImplUniToDBCSTab_GB_95 }, /* 0x95 */
- { 0x00, 0xFE, aImplUniToDBCSTab_GB_96 }, /* 0x96 */
- { 0x00, 0xF6, aImplUniToDBCSTab_GB_97 }, /* 0x97 */
- { 0x75, 0xE9, aImplUniToDBCSTab_GB_98 }, /* 0x98 */
- { 0x0D, 0xA8, aImplUniToDBCSTab_GB_99 }, /* 0x99 */
- { 0x6C, 0xFB, aImplUniToDBCSTab_GB_9A }, /* 0x9A */
- { 0x03, 0x54, aImplUniToDBCSTab_GB_9B }, /* 0x9B */
- { 0x7C, 0xE2, aImplUniToDBCSTab_GB_9C }, /* 0x9C */
- { 1, 0, NULL }, /* 0x9D */
- { 0x1F, 0xFE, aImplUniToDBCSTab_GB_9E }, /* 0x9E */
- { 0x0B, 0xA0, aImplUniToDBCSTab_GB_9F }, /* 0x9F */
- { 1, 0, NULL }, /* 0xA0 */
- { 1, 0, NULL }, /* 0xA1 */
- { 1, 0, NULL }, /* 0xA2 */
- { 1, 0, NULL }, /* 0xA3 */
- { 1, 0, NULL }, /* 0xA4 */
- { 1, 0, NULL }, /* 0xA5 */
- { 1, 0, NULL }, /* 0xA6 */
- { 1, 0, NULL }, /* 0xA7 */
- { 1, 0, NULL }, /* 0xA8 */
- { 1, 0, NULL }, /* 0xA9 */
- { 1, 0, NULL }, /* 0xAA */
- { 1, 0, NULL }, /* 0xAB */
- { 1, 0, NULL }, /* 0xAC */
- { 1, 0, NULL }, /* 0xAD */
- { 1, 0, NULL }, /* 0xAE */
- { 1, 0, NULL }, /* 0xAF */
- { 1, 0, NULL }, /* 0xB0 */
- { 1, 0, NULL }, /* 0xB1 */
- { 1, 0, NULL }, /* 0xB2 */
- { 1, 0, NULL }, /* 0xB3 */
- { 1, 0, NULL }, /* 0xB4 */
- { 1, 0, NULL }, /* 0xB5 */
- { 1, 0, NULL }, /* 0xB6 */
- { 1, 0, NULL }, /* 0xB7 */
- { 1, 0, NULL }, /* 0xB8 */
- { 1, 0, NULL }, /* 0xB9 */
- { 1, 0, NULL }, /* 0xBA */
- { 1, 0, NULL }, /* 0xBB */
- { 1, 0, NULL }, /* 0xBC */
- { 1, 0, NULL }, /* 0xBD */
- { 1, 0, NULL }, /* 0xBE */
- { 1, 0, NULL }, /* 0xBF */
- { 1, 0, NULL }, /* 0xC0 */
- { 1, 0, NULL }, /* 0xC1 */
- { 1, 0, NULL }, /* 0xC2 */
- { 1, 0, NULL }, /* 0xC3 */
- { 1, 0, NULL }, /* 0xC4 */
- { 1, 0, NULL }, /* 0xC5 */
- { 1, 0, NULL }, /* 0xC6 */
- { 1, 0, NULL }, /* 0xC7 */
- { 1, 0, NULL }, /* 0xC8 */
- { 1, 0, NULL }, /* 0xC9 */
- { 1, 0, NULL }, /* 0xCA */
- { 1, 0, NULL }, /* 0xCB */
- { 1, 0, NULL }, /* 0xCC */
- { 1, 0, NULL }, /* 0xCD */
- { 1, 0, NULL }, /* 0xCE */
- { 1, 0, NULL }, /* 0xCF */
- { 1, 0, NULL }, /* 0xD0 */
- { 1, 0, NULL }, /* 0xD1 */
- { 1, 0, NULL }, /* 0xD2 */
- { 1, 0, NULL }, /* 0xD3 */
- { 1, 0, NULL }, /* 0xD4 */
- { 1, 0, NULL }, /* 0xD5 */
- { 1, 0, NULL }, /* 0xD6 */
- { 1, 0, NULL }, /* 0xD7 */
- { 1, 0, NULL }, /* 0xD8 */
- { 1, 0, NULL }, /* 0xD9 */
- { 1, 0, NULL }, /* 0xDA */
- { 1, 0, NULL }, /* 0xDB */
- { 1, 0, NULL }, /* 0xDC */
- { 1, 0, NULL }, /* 0xDD */
- { 1, 0, NULL }, /* 0xDE */
- { 1, 0, NULL }, /* 0xDF */
- { 1, 0, NULL }, /* 0xE0 */
- { 1, 0, NULL }, /* 0xE1 */
- { 1, 0, NULL }, /* 0xE2 */
- { 1, 0, NULL }, /* 0xE3 */
- { 1, 0, NULL }, /* 0xE4 */
- { 1, 0, NULL }, /* 0xE5 */
- { 1, 0, NULL }, /* 0xE6 */
- { 1, 0, NULL }, /* 0xE7 */
- { 1, 0, NULL }, /* 0xE8 */
- { 1, 0, NULL }, /* 0xE9 */
- { 1, 0, NULL }, /* 0xEA */
- { 1, 0, NULL }, /* 0xEB */
- { 1, 0, NULL }, /* 0xEC */
- { 1, 0, NULL }, /* 0xED */
- { 1, 0, NULL }, /* 0xEE */
- { 1, 0, NULL }, /* 0xEF */
- { 1, 0, NULL }, /* 0xF0 */
- { 1, 0, NULL }, /* 0xF1 */
- { 1, 0, NULL }, /* 0xF2 */
- { 1, 0, NULL }, /* 0xF3 */
- { 1, 0, NULL }, /* 0xF4 */
- { 1, 0, NULL }, /* 0xF5 */
- { 1, 0, NULL }, /* 0xF6 */
- { 1, 0, NULL }, /* 0xF7 */
- { 1, 0, NULL }, /* 0xF8 */
- { 1, 0, NULL }, /* 0xF9 */
- { 1, 0, NULL }, /* 0xFA */
- { 1, 0, NULL }, /* 0xFB */
- { 1, 0, NULL }, /* 0xFC */
- { 1, 0, NULL }, /* 0xFD */
- { 0x31, 0x44, aImplUniToDBCSTab_GB_FE }, /* 0xFE */
- { 0x01, 0xE5, aImplUniToDBCSTab_GB_FF } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* F8A1-FEFE --> E000-E29F */
-/* AAA1-AFFE --> E2A0-E4DF */
-
-#define DBCS_EUDC_MS936_COUNT 2
-static ImplDBCSEUDCData const aImplMS936DBCSEUDCTab[DBCS_EUDC_MS936_COUNT] =
-{
- /* EUDC-Range (the mapping defined by MS is A0-FF, because the */
- /* unicode range is E000-E29F and E2A0-E4DF) */
- /* Lead: F8-FE */
- /* Trail: A1-FE */
- { 0xF8, 0xFE, 0xA0, 0xFF, 0, 0, 0, 0, 1, 0x60, 0xE000, 0xE29F },
- /* Lead: AA-AF */
- /* Trail: A1-FE */
- { 0xAA, 0xAF, 0xA0, 0xFF, 0, 0, 0, 0, 1, 0x60, 0xE2A0, 0xE4DF }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplDBCSConvertData const aImplGB2312DBCSCvtData =
-{
- aGB2312UniLeadTab,
- aGB2312DBCSHighTab,
- 0x00, 0xFF,
- 0xA1, 0xFE,
- aImplMS936DBCSEUDCTab,
- DBCS_EUDC_MS936_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplGB2312TextEncodingData
- = { { &aImplGB2312DBCSCvtData,
- ImplDBCSToUnicode,
- ImplUnicodeToDBCS,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 2,
- 2,
- 134,
- "euc-cn",
- "gb2312",
- RTL_TEXTENCODING_INFO_ASCII
- | RTL_TEXTENCODING_INFO_MULTIBYTE
- | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_CHINESE_SIMPLIFIED, pc code page 936, mac encoding 25 */
-
-/* ======================================================================= */
-
-static ImplTextEncodingData const aImplEUCCNTextEncodingData
- = { { &aImplGB2312DBCSCvtData,
- ImplDBCSToUnicode,
- ImplUnicodeToDBCS,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 2,
- 2,
- 134,
- "euc-cn",
- "gb2312",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MULTIBYTE };
- /* SCRIPT_CHINESE_SIMPLIFIED, pc code page 936, mac encoding 25 */
-
-/* ======================================================================= */
-
-static ImplDBCSToUniLeadTab const aGBT12345UniLeadTab[256] =
-{
- { 0x0000, 0, 0, NULL }, /* 0x00 */
- { 0x0001, 0, 0, NULL }, /* 0x01 */
- { 0x0002, 0, 0, NULL }, /* 0x02 */
- { 0x0003, 0, 0, NULL }, /* 0x03 */
- { 0x0004, 0, 0, NULL }, /* 0x04 */
- { 0x0005, 0, 0, NULL }, /* 0x05 */
- { 0x0006, 0, 0, NULL }, /* 0x06 */
- { 0x0007, 0, 0, NULL }, /* 0x07 */
- { 0x0008, 0, 0, NULL }, /* 0x08 */
- { 0x0009, 0, 0, NULL }, /* 0x09 */
- { 0x000A, 0, 0, NULL }, /* 0x0A */
- { 0x000B, 0, 0, NULL }, /* 0x0B */
- { 0x000C, 0, 0, NULL }, /* 0x0C */
- { 0x000D, 0, 0, NULL }, /* 0x0D */
- { 0x000E, 0, 0, NULL }, /* 0x0E */
- { 0x000F, 0, 0, NULL }, /* 0x0F */
- { 0x0010, 0, 0, NULL }, /* 0x10 */
- { 0x0011, 0, 0, NULL }, /* 0x11 */
- { 0x0012, 0, 0, NULL }, /* 0x12 */
- { 0x0013, 0, 0, NULL }, /* 0x13 */
- { 0x0014, 0, 0, NULL }, /* 0x14 */
- { 0x0015, 0, 0, NULL }, /* 0x15 */
- { 0x0016, 0, 0, NULL }, /* 0x16 */
- { 0x0017, 0, 0, NULL }, /* 0x17 */
- { 0x0018, 0, 0, NULL }, /* 0x18 */
- { 0x0019, 0, 0, NULL }, /* 0x19 */
- { 0x001A, 0, 0, NULL }, /* 0x1A */
- { 0x001B, 0, 0, NULL }, /* 0x1B */
- { 0x001C, 0, 0, NULL }, /* 0x1C */
- { 0x001D, 0, 0, NULL }, /* 0x1D */
- { 0x001E, 0, 0, NULL }, /* 0x1E */
- { 0x001F, 0, 0, NULL }, /* 0x1F */
- { 0x0020, 0, 0, NULL }, /* 0x20 */
- { 0x0021, 0, 0, NULL }, /* 0x21 */
- { 0x0022, 0, 0, NULL }, /* 0x22 */
- { 0x0023, 0, 0, NULL }, /* 0x23 */
- { 0x0024, 0, 0, NULL }, /* 0x24 */
- { 0x0025, 0, 0, NULL }, /* 0x25 */
- { 0x0026, 0, 0, NULL }, /* 0x26 */
- { 0x0027, 0, 0, NULL }, /* 0x27 */
- { 0x0028, 0, 0, NULL }, /* 0x28 */
- { 0x0029, 0, 0, NULL }, /* 0x29 */
- { 0x002A, 0, 0, NULL }, /* 0x2A */
- { 0x002B, 0, 0, NULL }, /* 0x2B */
- { 0x002C, 0, 0, NULL }, /* 0x2C */
- { 0x002D, 0, 0, NULL }, /* 0x2D */
- { 0x002E, 0, 0, NULL }, /* 0x2E */
- { 0x002F, 0, 0, NULL }, /* 0x2F */
- { 0x0030, 0, 0, NULL }, /* 0x30 */
- { 0x0031, 0, 0, NULL }, /* 0x31 */
- { 0x0032, 0, 0, NULL }, /* 0x32 */
- { 0x0033, 0, 0, NULL }, /* 0x33 */
- { 0x0034, 0, 0, NULL }, /* 0x34 */
- { 0x0035, 0, 0, NULL }, /* 0x35 */
- { 0x0036, 0, 0, NULL }, /* 0x36 */
- { 0x0037, 0, 0, NULL }, /* 0x37 */
- { 0x0038, 0, 0, NULL }, /* 0x38 */
- { 0x0039, 0, 0, NULL }, /* 0x39 */
- { 0x003A, 0, 0, NULL }, /* 0x3A */
- { 0x003B, 0, 0, NULL }, /* 0x3B */
- { 0x003C, 0, 0, NULL }, /* 0x3C */
- { 0x003D, 0, 0, NULL }, /* 0x3D */
- { 0x003E, 0, 0, NULL }, /* 0x3E */
- { 0x003F, 0, 0, NULL }, /* 0x3F */
- { 0x0040, 0, 0, NULL }, /* 0x40 */
- { 0x0041, 0, 0, NULL }, /* 0x41 */
- { 0x0042, 0, 0, NULL }, /* 0x42 */
- { 0x0043, 0, 0, NULL }, /* 0x43 */
- { 0x0044, 0, 0, NULL }, /* 0x44 */
- { 0x0045, 0, 0, NULL }, /* 0x45 */
- { 0x0046, 0, 0, NULL }, /* 0x46 */
- { 0x0047, 0, 0, NULL }, /* 0x47 */
- { 0x0048, 0, 0, NULL }, /* 0x48 */
- { 0x0049, 0, 0, NULL }, /* 0x49 */
- { 0x004A, 0, 0, NULL }, /* 0x4A */
- { 0x004B, 0, 0, NULL }, /* 0x4B */
- { 0x004C, 0, 0, NULL }, /* 0x4C */
- { 0x004D, 0, 0, NULL }, /* 0x4D */
- { 0x004E, 0, 0, NULL }, /* 0x4E */
- { 0x004F, 0, 0, NULL }, /* 0x4F */
- { 0x0050, 0, 0, NULL }, /* 0x50 */
- { 0x0051, 0, 0, NULL }, /* 0x51 */
- { 0x0052, 0, 0, NULL }, /* 0x52 */
- { 0x0053, 0, 0, NULL }, /* 0x53 */
- { 0x0054, 0, 0, NULL }, /* 0x54 */
- { 0x0055, 0, 0, NULL }, /* 0x55 */
- { 0x0056, 0, 0, NULL }, /* 0x56 */
- { 0x0057, 0, 0, NULL }, /* 0x57 */
- { 0x0058, 0, 0, NULL }, /* 0x58 */
- { 0x0059, 0, 0, NULL }, /* 0x59 */
- { 0x005A, 0, 0, NULL }, /* 0x5A */
- { 0x005B, 0, 0, NULL }, /* 0x5B */
- { 0x005C, 0, 0, NULL }, /* 0x5C */
- { 0x005D, 0, 0, NULL }, /* 0x5D */
- { 0x005E, 0, 0, NULL }, /* 0x5E */
- { 0x005F, 0, 0, NULL }, /* 0x5F */
- { 0x0060, 0, 0, NULL }, /* 0x60 */
- { 0x0061, 0, 0, NULL }, /* 0x61 */
- { 0x0062, 0, 0, NULL }, /* 0x62 */
- { 0x0063, 0, 0, NULL }, /* 0x63 */
- { 0x0064, 0, 0, NULL }, /* 0x64 */
- { 0x0065, 0, 0, NULL }, /* 0x65 */
- { 0x0066, 0, 0, NULL }, /* 0x66 */
- { 0x0067, 0, 0, NULL }, /* 0x67 */
- { 0x0068, 0, 0, NULL }, /* 0x68 */
- { 0x0069, 0, 0, NULL }, /* 0x69 */
- { 0x006A, 0, 0, NULL }, /* 0x6A */
- { 0x006B, 0, 0, NULL }, /* 0x6B */
- { 0x006C, 0, 0, NULL }, /* 0x6C */
- { 0x006D, 0, 0, NULL }, /* 0x6D */
- { 0x006E, 0, 0, NULL }, /* 0x6E */
- { 0x006F, 0, 0, NULL }, /* 0x6F */
- { 0x0070, 0, 0, NULL }, /* 0x70 */
- { 0x0071, 0, 0, NULL }, /* 0x71 */
- { 0x0072, 0, 0, NULL }, /* 0x72 */
- { 0x0073, 0, 0, NULL }, /* 0x73 */
- { 0x0074, 0, 0, NULL }, /* 0x74 */
- { 0x0075, 0, 0, NULL }, /* 0x75 */
- { 0x0076, 0, 0, NULL }, /* 0x76 */
- { 0x0077, 0, 0, NULL }, /* 0x77 */
- { 0x0078, 0, 0, NULL }, /* 0x78 */
- { 0x0079, 0, 0, NULL }, /* 0x79 */
- { 0x007A, 0, 0, NULL }, /* 0x7A */
- { 0x007B, 0, 0, NULL }, /* 0x7B */
- { 0x007C, 0, 0, NULL }, /* 0x7C */
- { 0x007D, 0, 0, NULL }, /* 0x7D */
- { 0x007E, 0, 0, NULL }, /* 0x7E */
- { 0x007F, 0, 0, NULL }, /* 0x7F */
- { 0x20AC, 0, 0, NULL }, /* 0x80 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x81 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x82 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x83 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x84 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x85 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x86 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x87 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x88 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x89 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8A */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8B */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8C */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8D */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8E */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8F */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x90 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x91 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x92 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x93 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x94 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x95 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x96 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x97 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x98 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x99 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9A */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9B */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9C */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9D */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9E */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9F */ /* We convert this as double byte */
- { 0, 1, 0, NULL }, /* 0xA0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GB_A1 }, /* 0xA1 */
- { 0, 0xA1, 0xFC, aImplDBCSToUniTab_GB_A2 }, /* 0xA2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GB_A3 }, /* 0xA3 */
- { 0, 0xA1, 0xF3, aImplDBCSToUniTab_GB_A4 }, /* 0xA4 */
- { 0, 0xA1, 0xF6, aImplDBCSToUniTab_GB_A5 }, /* 0xA5 */
- { 0, 0xA1, 0xF5, aImplDBCSToUniTab_GB_A6 }, /* 0xA6 */
- { 0, 0xA1, 0xF1, aImplDBCSToUniTab_GB_A7 }, /* 0xA7 */
- { 0, 0xA1, 0xE9, aImplDBCSToUniTab_GBK_A8+GBKOFF }, /* 0xA8 */
- { 0, 0xA1, 0xEF, aImplDBCSToUniTab_GBK_A9+GBKOFF }, /* 0xA9 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xAA */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xAB */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xAC */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xAD */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xAE */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xAF */ /* We convert this as double byte */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_B0 }, /* 0xB0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_B1 }, /* 0xB1 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_B2 }, /* 0xB2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_B3 }, /* 0xB3 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_B4 }, /* 0xB4 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_B5 }, /* 0xB5 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_B6 }, /* 0xB6 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_B7 }, /* 0xB7 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_B8 }, /* 0xB8 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_B9 }, /* 0xB9 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_BA }, /* 0xBA */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_BB }, /* 0xBB */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_BC }, /* 0xBC */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_BD }, /* 0xBD */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_BE }, /* 0xBE */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_BF }, /* 0xBF */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_C0 }, /* 0xC0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_C1 }, /* 0xC1 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_C2 }, /* 0xC2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_C3 }, /* 0xC3 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_C4 }, /* 0xC4 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_C5 }, /* 0xC5 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_C6 }, /* 0xC6 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_C7 }, /* 0xC7 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_C8 }, /* 0xC8 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_C9 }, /* 0xC9 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_CA }, /* 0xCA */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_CB }, /* 0xCB */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_CC }, /* 0xCC */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_CD }, /* 0xCD */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_CE }, /* 0xCE */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_CF }, /* 0xCF */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_D0 }, /* 0xD0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_D1 }, /* 0xD1 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_D2 }, /* 0xD2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_D3 }, /* 0xD3 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_D4 }, /* 0xD4 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_D5 }, /* 0xD5 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_D6 }, /* 0xD6 */
- { 0, 0xA1, 0xF9, aImplDBCSToUniTab_GBT_D7 }, /* 0xD7 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_D8 }, /* 0xD8 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_D9 }, /* 0xD9 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_DA }, /* 0xDA */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_DB }, /* 0xDB */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_DC }, /* 0xDC */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_DD }, /* 0xDD */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_DE }, /* 0xDE */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_DF }, /* 0xDF */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_E0 }, /* 0xE0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_E1 }, /* 0xE1 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_E2 }, /* 0xE2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_E3 }, /* 0xE3 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_E4 }, /* 0xE4 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_E5 }, /* 0xE5 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_E6 }, /* 0xE6 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_E7 }, /* 0xE7 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_E8 }, /* 0xE8 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_E9 }, /* 0xE9 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_EA }, /* 0xEA */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_EB }, /* 0xEB */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_EC }, /* 0xEC */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_ED }, /* 0xED */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_EE }, /* 0xEE */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_EF }, /* 0xEF */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_F0 }, /* 0xF0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_F1 }, /* 0xF1 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_F2 }, /* 0xF2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_F3 }, /* 0xF3 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_F4 }, /* 0xF4 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_F5 }, /* 0xF5 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_F6 }, /* 0xF6 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_F7 }, /* 0xF7 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBT_F8 }, /* 0xF8 */
- { 0, 0xA1, 0xA9, aImplDBCSToUniTab_GBT_F9 }, /* 0xF9 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFA */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFB */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFC */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFD */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFE */ /* We convert this as double byte */
- { 0, 1, 0, NULL } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplUniToDBCSHighTab const aGBT12345DBCSHighTab[256] =
-{
- { 0x00, 0xFC, aImplUniToDBCSTab_GB_00 }, /* 0x00 */
- { 0x01, 0xDC, aImplUniToDBCSTab_GB_01 }, /* 0x01 */
- { 0x51, 0xC9, aImplUniToDBCSTab_GB_02 }, /* 0x02 */
- { 0x91, 0xC9, aImplUniToDBCSTab_GB_03 }, /* 0x03 */
- { 0x01, 0x51, aImplUniToDBCSTab_GB_04 }, /* 0x04 */
- { 1, 0, NULL }, /* 0x05 */
- { 1, 0, NULL }, /* 0x06 */
- { 1, 0, NULL }, /* 0x07 */
- { 1, 0, NULL }, /* 0x08 */
- { 1, 0, NULL }, /* 0x09 */
- { 1, 0, NULL }, /* 0x0A */
- { 1, 0, NULL }, /* 0x0B */
- { 1, 0, NULL }, /* 0x0C */
- { 1, 0, NULL }, /* 0x0D */
- { 1, 0, NULL }, /* 0x0E */
- { 1, 0, NULL }, /* 0x0F */
- { 1, 0, NULL }, /* 0x10 */
- { 1, 0, NULL }, /* 0x11 */
- { 1, 0, NULL }, /* 0x12 */
- { 1, 0, NULL }, /* 0x13 */
- { 1, 0, NULL }, /* 0x14 */
- { 1, 0, NULL }, /* 0x15 */
- { 1, 0, NULL }, /* 0x16 */
- { 1, 0, NULL }, /* 0x17 */
- { 1, 0, NULL }, /* 0x18 */
- { 1, 0, NULL }, /* 0x19 */
- { 1, 0, NULL }, /* 0x1A */
- { 1, 0, NULL }, /* 0x1B */
- { 1, 0, NULL }, /* 0x1C */
- { 1, 0, NULL }, /* 0x1D */
- { 0x3F, 0x3F, aImplUniToDBCSTab_APPLECHINSIMP_1E }, /* 0x1E */ /* we convert this char also to unicode */
- { 1, 0, NULL }, /* 0x1F */
- { 0x14, 0xAC, aImplUniToDBCSTab_GB_20 }, /* 0x20 */
- { 0x03, 0x93, aImplUniToDBCSTab_GB_21 }, /* 0x21 */
- { 0x08, 0xEF, aImplUniToDBCSTab_GB_22 }, /* 0x22 */
- { 0x12, 0x12, aImplUniToDBCSTab_GB_23 }, /* 0x23 */
- { 0x60, 0x9B, aImplUniToDBCSTab_GB_24 }, /* 0x24 */
- { 0x00, 0xCF, aImplUniToDBCSTab_GB_25 }, /* 0x25 */
- { 0x05, 0x42, aImplUniToDBCSTab_GB_26 }, /* 0x26 */
- { 1, 0, NULL }, /* 0x27 */
- { 1, 0, NULL }, /* 0x28 */
- { 1, 0, NULL }, /* 0x29 */
- { 1, 0, NULL }, /* 0x2A */
- { 1, 0, NULL }, /* 0x2B */
- { 1, 0, NULL }, /* 0x2C */
- { 1, 0, NULL }, /* 0x2D */
- { 1, 0, NULL }, /* 0x2E */
- { 1, 0, NULL }, /* 0x2F */
- { 0x00, 0xFB, aImplUniToDBCSTab_GB_30 }, /* 0x30 */
- { 0x05, 0x29, aImplUniToDBCSTab_GB_31 }, /* 0x31 */
- { 0x20, 0x29, aImplUniToDBCSTab_GBK_32 }, /* 0x32 */
- { 1, 0, NULL }, /* 0x33 */
- { 1, 0, NULL }, /* 0x34 */
- { 1, 0, NULL }, /* 0x35 */
- { 1, 0, NULL }, /* 0x36 */
- { 1, 0, NULL }, /* 0x37 */
- { 1, 0, NULL }, /* 0x38 */
- { 1, 0, NULL }, /* 0x39 */
- { 1, 0, NULL }, /* 0x3A */
- { 1, 0, NULL }, /* 0x3B */
- { 1, 0, NULL }, /* 0x3C */
- { 1, 0, NULL }, /* 0x3D */
- { 1, 0, NULL }, /* 0x3E */
- { 1, 0, NULL }, /* 0x3F */
- { 1, 0, NULL }, /* 0x40 */
- { 1, 0, NULL }, /* 0x41 */
- { 1, 0, NULL }, /* 0x42 */
- { 1, 0, NULL }, /* 0x43 */
- { 1, 0, NULL }, /* 0x44 */
- { 1, 0, NULL }, /* 0x45 */
- { 1, 0, NULL }, /* 0x46 */
- { 1, 0, NULL }, /* 0x47 */
- { 1, 0, NULL }, /* 0x48 */
- { 1, 0, NULL }, /* 0x49 */
- { 1, 0, NULL }, /* 0x4A */
- { 1, 0, NULL }, /* 0x4B */
- { 1, 0, NULL }, /* 0x4C */
- { 1, 0, NULL }, /* 0x4D */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBT_4E }, /* 0x4E */
- { 0x01, 0xFE, aImplUniToDBCSTab_GBT_4F }, /* 0x4F */
- { 0x00, 0xFB, aImplUniToDBCSTab_GBT_50 }, /* 0x50 */
- { 0x00, 0xFD, aImplUniToDBCSTab_GBT_51 }, /* 0x51 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBT_52 }, /* 0x52 */
- { 0x00, 0xFC, aImplUniToDBCSTab_GBT_53 }, /* 0x53 */
- { 0x01, 0xFF, aImplUniToDBCSTab_GBT_54 }, /* 0x54 */
- { 0x01, 0xFE, aImplUniToDBCSTab_GBT_55 }, /* 0x55 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBT_56 }, /* 0x56 */
- { 0x03, 0xFD, aImplUniToDBCSTab_GBT_57 }, /* 0x57 */
- { 0x00, 0xFD, aImplUniToDBCSTab_GBT_58 }, /* 0x58 */
- { 0x02, 0xFF, aImplUniToDBCSTab_GBT_59 }, /* 0x59 */
- { 0x01, 0xFB, aImplUniToDBCSTab_GBT_5A }, /* 0x5A */
- { 0x00, 0xFA, aImplUniToDBCSTab_GBT_5B }, /* 0x5B */
- { 0x01, 0xFD, aImplUniToDBCSTab_GBT_5C }, /* 0x5C */
- { 0x06, 0xFE, aImplUniToDBCSTab_GBT_5D }, /* 0x5D */
- { 0x02, 0xFF, aImplUniToDBCSTab_GBT_5E }, /* 0x5E */
- { 0x01, 0xFF, aImplUniToDBCSTab_GBT_5F }, /* 0x5F */
- { 0x0A, 0xFB, aImplUniToDBCSTab_GBT_60 }, /* 0x60 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBT_61 }, /* 0x61 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBT_62 }, /* 0x62 */
- { 0x01, 0xF8, aImplUniToDBCSTab_GBT_63 }, /* 0x63 */
- { 0x0B, 0xFE, aImplUniToDBCSTab_GBT_64 }, /* 0x64 */
- { 0x00, 0xFA, aImplUniToDBCSTab_GBT_65 }, /* 0x65 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBT_66 }, /* 0x66 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBT_67 }, /* 0x67 */
- { 0x00, 0xFC, aImplUniToDBCSTab_GBT_68 }, /* 0x68 */
- { 0x01, 0xFF, aImplUniToDBCSTab_GBT_69 }, /* 0x69 */
- { 0x01, 0xFB, aImplUniToDBCSTab_GBT_6A }, /* 0x6A */
- { 0x04, 0xFF, aImplUniToDBCSTab_GBT_6B }, /* 0x6B */
- { 0x05, 0xF5, aImplUniToDBCSTab_GBT_6C }, /* 0x6C */
- { 0x04, 0xFC, aImplUniToDBCSTab_GBT_6D }, /* 0x6D */
- { 0x05, 0xFF, aImplUniToDBCSTab_GBT_6E }, /* 0x6E */
- { 0x01, 0xFE, aImplUniToDBCSTab_GBT_6F }, /* 0x6F */
- { 0x05, 0xFD, aImplUniToDBCSTab_GBT_70 }, /* 0x70 */
- { 0x09, 0xFE, aImplUniToDBCSTab_GBT_71 }, /* 0x71 */
- { 0x06, 0xFD, aImplUniToDBCSTab_GBT_72 }, /* 0x72 */
- { 0x01, 0xFE, aImplUniToDBCSTab_GBT_73 }, /* 0x73 */
- { 0x03, 0xFF, aImplUniToDBCSTab_GBT_74 }, /* 0x74 */
- { 0x04, 0xFF, aImplUniToDBCSTab_GBT_75 }, /* 0x75 */
- { 0x00, 0xFE, aImplUniToDBCSTab_GBT_76 }, /* 0x76 */
- { 0x01, 0xFD, aImplUniToDBCSTab_GBT_77 }, /* 0x77 */
- { 0x02, 0xFD, aImplUniToDBCSTab_GBT_78 }, /* 0x78 */
- { 0x01, 0xFB, aImplUniToDBCSTab_GBT_79 }, /* 0x79 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBT_7A }, /* 0x7A */
- { 0x04, 0xFE, aImplUniToDBCSTab_GBT_7B }, /* 0x7B */
- { 0x00, 0xFE, aImplUniToDBCSTab_GBT_7C }, /* 0x7C */
- { 0x00, 0xFB, aImplUniToDBCSTab_GBT_7D }, /* 0x7D */
- { 0x08, 0x9C, aImplUniToDBCSTab_GBT_7E }, /* 0x7E */
- { 0x36, 0xFC, aImplUniToDBCSTab_GBT_7F }, /* 0x7F */
- { 0x00, 0xFD, aImplUniToDBCSTab_GBT_80 }, /* 0x80 */
- { 0x02, 0xFE, aImplUniToDBCSTab_GBT_81 }, /* 0x81 */
- { 0x00, 0xFB, aImplUniToDBCSTab_GBT_82 }, /* 0x82 */
- { 0x01, 0xFD, aImplUniToDBCSTab_GBT_83 }, /* 0x83 */
- { 0x01, 0xFF, aImplUniToDBCSTab_GBT_84 }, /* 0x84 */
- { 0x0C, 0xFF, aImplUniToDBCSTab_GBT_85 }, /* 0x85 */
- { 0x04, 0xFE, aImplUniToDBCSTab_GBT_86 }, /* 0x86 */
- { 0x00, 0xFE, aImplUniToDBCSTab_GBT_87 }, /* 0x87 */
- { 0x03, 0xFE, aImplUniToDBCSTab_GBT_88 }, /* 0x88 */
- { 0x02, 0xF8, aImplUniToDBCSTab_GBT_89 }, /* 0x89 */
- { 0x00, 0xFE, aImplUniToDBCSTab_GBT_8A }, /* 0x8A */
- { 0x00, 0xFE, aImplUniToDBCSTab_GBT_8B }, /* 0x8B */
- { 0x07, 0xFE, aImplUniToDBCSTab_GBT_8C }, /* 0x8C */
- { 0x04, 0xFD, aImplUniToDBCSTab_GBT_8D }, /* 0x8D */
- { 0x05, 0xFE, aImplUniToDBCSTab_GBT_8E }, /* 0x8E */
- { 0x03, 0xFD, aImplUniToDBCSTab_GBT_8F }, /* 0x8F */
- { 0x00, 0xFE, aImplUniToDBCSTab_GBT_90 }, /* 0x90 */
- { 0x02, 0xFA, aImplUniToDBCSTab_GBT_91 }, /* 0x91 */
- { 0x00, 0xFC, aImplUniToDBCSTab_GBT_92 }, /* 0x92 */
- { 0x01, 0xF9, aImplUniToDBCSTab_GBT_93 }, /* 0x93 */
- { 0x03, 0x7F, aImplUniToDBCSTab_GBT_94 }, /* 0x94 */
- { 0x77, 0xE5, aImplUniToDBCSTab_GBT_95 }, /* 0x95 */
- { 0x1C, 0xFB, aImplUniToDBCSTab_GBT_96 }, /* 0x96 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBT_97 }, /* 0x97 */
- { 0x01, 0xFE, aImplUniToDBCSTab_GBT_98 }, /* 0x98 */
- { 0x03, 0xFF, aImplUniToDBCSTab_GBT_99 }, /* 0x99 */
- { 0x01, 0xFB, aImplUniToDBCSTab_GBT_9A }, /* 0x9A */
- { 0x03, 0xFF, aImplUniToDBCSTab_GBT_9B }, /* 0x9B */
- { 0x08, 0xF6, aImplUniToDBCSTab_GBT_9C }, /* 0x9C */
- { 0x06, 0xFA, aImplUniToDBCSTab_GBT_9D }, /* 0x9D */
- { 0x0C, 0xFF, aImplUniToDBCSTab_GBT_9E }, /* 0x9E */
- { 0x09, 0xA0, aImplUniToDBCSTab_GBT_9F }, /* 0x9F */
- { 1, 0, NULL }, /* 0xA0 */
- { 1, 0, NULL }, /* 0xA1 */
- { 1, 0, NULL }, /* 0xA2 */
- { 1, 0, NULL }, /* 0xA3 */
- { 1, 0, NULL }, /* 0xA4 */
- { 1, 0, NULL }, /* 0xA5 */
- { 1, 0, NULL }, /* 0xA6 */
- { 1, 0, NULL }, /* 0xA7 */
- { 1, 0, NULL }, /* 0xA8 */
- { 1, 0, NULL }, /* 0xA9 */
- { 1, 0, NULL }, /* 0xAA */
- { 1, 0, NULL }, /* 0xAB */
- { 1, 0, NULL }, /* 0xAC */
- { 1, 0, NULL }, /* 0xAD */
- { 1, 0, NULL }, /* 0xAE */
- { 1, 0, NULL }, /* 0xAF */
- { 1, 0, NULL }, /* 0xB0 */
- { 1, 0, NULL }, /* 0xB1 */
- { 1, 0, NULL }, /* 0xB2 */
- { 1, 0, NULL }, /* 0xB3 */
- { 1, 0, NULL }, /* 0xB4 */
- { 1, 0, NULL }, /* 0xB5 */
- { 1, 0, NULL }, /* 0xB6 */
- { 1, 0, NULL }, /* 0xB7 */
- { 1, 0, NULL }, /* 0xB8 */
- { 1, 0, NULL }, /* 0xB9 */
- { 1, 0, NULL }, /* 0xBA */
- { 1, 0, NULL }, /* 0xBB */
- { 1, 0, NULL }, /* 0xBC */
- { 1, 0, NULL }, /* 0xBD */
- { 1, 0, NULL }, /* 0xBE */
- { 1, 0, NULL }, /* 0xBF */
- { 1, 0, NULL }, /* 0xC0 */
- { 1, 0, NULL }, /* 0xC1 */
- { 1, 0, NULL }, /* 0xC2 */
- { 1, 0, NULL }, /* 0xC3 */
- { 1, 0, NULL }, /* 0xC4 */
- { 1, 0, NULL }, /* 0xC5 */
- { 1, 0, NULL }, /* 0xC6 */
- { 1, 0, NULL }, /* 0xC7 */
- { 1, 0, NULL }, /* 0xC8 */
- { 1, 0, NULL }, /* 0xC9 */
- { 1, 0, NULL }, /* 0xCA */
- { 1, 0, NULL }, /* 0xCB */
- { 1, 0, NULL }, /* 0xCC */
- { 1, 0, NULL }, /* 0xCD */
- { 1, 0, NULL }, /* 0xCE */
- { 1, 0, NULL }, /* 0xCF */
- { 1, 0, NULL }, /* 0xD0 */
- { 1, 0, NULL }, /* 0xD1 */
- { 1, 0, NULL }, /* 0xD2 */
- { 1, 0, NULL }, /* 0xD3 */
- { 1, 0, NULL }, /* 0xD4 */
- { 1, 0, NULL }, /* 0xD5 */
- { 1, 0, NULL }, /* 0xD6 */
- { 1, 0, NULL }, /* 0xD7 */
- { 1, 0, NULL }, /* 0xD8 */
- { 1, 0, NULL }, /* 0xD9 */
- { 1, 0, NULL }, /* 0xDA */
- { 1, 0, NULL }, /* 0xDB */
- { 1, 0, NULL }, /* 0xDC */
- { 1, 0, NULL }, /* 0xDD */
- { 1, 0, NULL }, /* 0xDE */
- { 1, 0, NULL }, /* 0xDF */
- { 1, 0, NULL }, /* 0xE0 */
- { 1, 0, NULL }, /* 0xE1 */
- { 1, 0, NULL }, /* 0xE2 */
- { 1, 0, NULL }, /* 0xE3 */
- { 1, 0, NULL }, /* 0xE4 */
- { 1, 0, NULL }, /* 0xE5 */
- { 1, 0, NULL }, /* 0xE6 */
- { 1, 0, NULL }, /* 0xE7 */
- { 1, 0, NULL }, /* 0xE8 */
- { 1, 0, NULL }, /* 0xE9 */
- { 1, 0, NULL }, /* 0xEA */
- { 1, 0, NULL }, /* 0xEB */
- { 1, 0, NULL }, /* 0xEC */
- { 1, 0, NULL }, /* 0xED */
- { 1, 0, NULL }, /* 0xEE */
- { 1, 0, NULL }, /* 0xEF */
- { 1, 0, NULL }, /* 0xF0 */
- { 1, 0, NULL }, /* 0xF1 */
- { 1, 0, NULL }, /* 0xF2 */
- { 1, 0, NULL }, /* 0xF3 */
- { 1, 0, NULL }, /* 0xF4 */
- { 1, 0, NULL }, /* 0xF5 */
- { 1, 0, NULL }, /* 0xF6 */
- { 1, 0, NULL }, /* 0xF7 */
- { 1, 0, NULL }, /* 0xF8 */
- { 1, 0, NULL }, /* 0xF9 */
- { 1, 0, NULL }, /* 0xFA */
- { 1, 0, NULL }, /* 0xFB */
- { 1, 0, NULL }, /* 0xFC */
- { 1, 0, NULL }, /* 0xFD */
- { 0x31, 0x44, aImplUniToDBCSTab_GB_FE }, /* 0xFE */
- { 0x01, 0xE5, aImplUniToDBCSTab_GB_FF } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplDBCSConvertData const aImplGBT12345DBCSCvtData =
-{
- aGBT12345UniLeadTab,
- aGBT12345DBCSHighTab,
- 0x00, 0xFF,
- 0xA1, 0xFE,
- aImplMS936DBCSEUDCTab,
- DBCS_EUDC_MS936_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplGBT12345TextEncodingData
- = { { &aImplGBT12345DBCSCvtData,
- ImplDBCSToUnicode,
- ImplUnicodeToDBCS,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 2,
- 2,
- 134,
- "euc-cn",
- "cn-gb-12345",
- RTL_TEXTENCODING_INFO_ASCII
- | RTL_TEXTENCODING_INFO_MULTIBYTE
- | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_CHINESE_SIMPLIFIED, pc code page 936, mac encoding 25 */
-
-/* ======================================================================= */
-
-/* #100054# In the GBK range FE50--FEA0, added those mappings (in both
- directions) taken from GB-18030 that do not map to Unicode PUA (i.e., those
- mappings marked with an * below):
-
- FE50 -> U+2E81 *
- FE51 -> U+E816
- FE52 -> U+E817
- FE53 -> U+E818
- FE54 -> U+2E84 *
- FE55 -> U+3473 *
- FE56 -> U+3447 *
- FE57 -> U+2E88 *
- FE58 -> U+2E8B *
- FE59 -> U+E81E
- FE5A -> U+359E *
- FE5B -> U+361A *
- FE5C -> U+360E *
- FE5D -> U+2E8C *
- FE5E -> U+2E97 *
- FE5F -> U+396E *
- FE60 -> U+3918 *
- FE61 -> U+E826
- FE62 -> U+39CF *
- FE63 -> U+39DF *
- FE64 -> U+3A73 *
- FE65 -> U+39D0 *
- FE66 -> U+E82B
- FE67 -> U+E82C
- FE68 -> U+3B4E *
- FE69 -> U+3C6E *
- FE6A -> U+3CE0 *
- FE6B -> U+2EA7 *
- FE6C -> U+E831
- FE6D -> U+E832
- FE6E -> U+2EAA *
- FE6F -> U+4056 *
- FE70 -> U+415F *
- FE71 -> U+2EAE *
- FE72 -> U+4337 *
- FE73 -> U+2EB3 *
- FE74 -> U+2EB6 *
- FE75 -> U+2EB7 *
- FE76 -> U+E83B
- FE77 -> U+43B1 *
- FE78 -> U+43AC *
- FE79 -> U+2EBB *
- FE7A -> U+43DD *
- FE7B -> U+44D6 *
- FE7C -> U+4661 *
- FE7D -> U+464C *
- FE7E -> U+E843
- FE80 -> U+4723 *
- FE81 -> U+4729 *
- FE82 -> U+477C *
- FE83 -> U+478D *
- FE84 -> U+2ECA *
- FE85 -> U+4947 *
- FE86 -> U+497A *
- FE87 -> U+497D *
- FE88 -> U+4982 *
- FE89 -> U+4983 *
- FE8A -> U+4985 *
- FE8B -> U+4986 *
- FE8C -> U+499F *
- FE8D -> U+499B *
- FE8E -> U+49B7 *
- FE8F -> U+49B6 *
- FE90 -> U+E854
- FE91 -> U+E855
- FE92 -> U+4CA3 *
- FE93 -> U+4C9F *
- FE94 -> U+4CA0 *
- FE95 -> U+4CA1 *
- FE96 -> U+4C77 *
- FE97 -> U+4CA2 *
- FE98 -> U+4D13 *
- FE99 -> U+4D14 *
- FE9A -> U+4D15 *
- FE9B -> U+4D16 *
- FE9C -> U+4D17 *
- FE9D -> U+4D18 *
- FE9E -> U+4D19 *
- FE9F -> U+4DAE *
- FEA0 -> U+E864
-*/
-
-static ImplDBCSToUniLeadTab const aGBKUniLeadTab[256] =
-{
- { 0x0000, 0, 0, NULL }, /* 0x00 */
- { 0x0001, 0, 0, NULL }, /* 0x01 */
- { 0x0002, 0, 0, NULL }, /* 0x02 */
- { 0x0003, 0, 0, NULL }, /* 0x03 */
- { 0x0004, 0, 0, NULL }, /* 0x04 */
- { 0x0005, 0, 0, NULL }, /* 0x05 */
- { 0x0006, 0, 0, NULL }, /* 0x06 */
- { 0x0007, 0, 0, NULL }, /* 0x07 */
- { 0x0008, 0, 0, NULL }, /* 0x08 */
- { 0x0009, 0, 0, NULL }, /* 0x09 */
- { 0x000A, 0, 0, NULL }, /* 0x0A */
- { 0x000B, 0, 0, NULL }, /* 0x0B */
- { 0x000C, 0, 0, NULL }, /* 0x0C */
- { 0x000D, 0, 0, NULL }, /* 0x0D */
- { 0x000E, 0, 0, NULL }, /* 0x0E */
- { 0x000F, 0, 0, NULL }, /* 0x0F */
- { 0x0010, 0, 0, NULL }, /* 0x10 */
- { 0x0011, 0, 0, NULL }, /* 0x11 */
- { 0x0012, 0, 0, NULL }, /* 0x12 */
- { 0x0013, 0, 0, NULL }, /* 0x13 */
- { 0x0014, 0, 0, NULL }, /* 0x14 */
- { 0x0015, 0, 0, NULL }, /* 0x15 */
- { 0x0016, 0, 0, NULL }, /* 0x16 */
- { 0x0017, 0, 0, NULL }, /* 0x17 */
- { 0x0018, 0, 0, NULL }, /* 0x18 */
- { 0x0019, 0, 0, NULL }, /* 0x19 */
- { 0x001A, 0, 0, NULL }, /* 0x1A */
- { 0x001B, 0, 0, NULL }, /* 0x1B */
- { 0x001C, 0, 0, NULL }, /* 0x1C */
- { 0x001D, 0, 0, NULL }, /* 0x1D */
- { 0x001E, 0, 0, NULL }, /* 0x1E */
- { 0x001F, 0, 0, NULL }, /* 0x1F */
- { 0x0020, 0, 0, NULL }, /* 0x20 */
- { 0x0021, 0, 0, NULL }, /* 0x21 */
- { 0x0022, 0, 0, NULL }, /* 0x22 */
- { 0x0023, 0, 0, NULL }, /* 0x23 */
- { 0x0024, 0, 0, NULL }, /* 0x24 */
- { 0x0025, 0, 0, NULL }, /* 0x25 */
- { 0x0026, 0, 0, NULL }, /* 0x26 */
- { 0x0027, 0, 0, NULL }, /* 0x27 */
- { 0x0028, 0, 0, NULL }, /* 0x28 */
- { 0x0029, 0, 0, NULL }, /* 0x29 */
- { 0x002A, 0, 0, NULL }, /* 0x2A */
- { 0x002B, 0, 0, NULL }, /* 0x2B */
- { 0x002C, 0, 0, NULL }, /* 0x2C */
- { 0x002D, 0, 0, NULL }, /* 0x2D */
- { 0x002E, 0, 0, NULL }, /* 0x2E */
- { 0x002F, 0, 0, NULL }, /* 0x2F */
- { 0x0030, 0, 0, NULL }, /* 0x30 */
- { 0x0031, 0, 0, NULL }, /* 0x31 */
- { 0x0032, 0, 0, NULL }, /* 0x32 */
- { 0x0033, 0, 0, NULL }, /* 0x33 */
- { 0x0034, 0, 0, NULL }, /* 0x34 */
- { 0x0035, 0, 0, NULL }, /* 0x35 */
- { 0x0036, 0, 0, NULL }, /* 0x36 */
- { 0x0037, 0, 0, NULL }, /* 0x37 */
- { 0x0038, 0, 0, NULL }, /* 0x38 */
- { 0x0039, 0, 0, NULL }, /* 0x39 */
- { 0x003A, 0, 0, NULL }, /* 0x3A */
- { 0x003B, 0, 0, NULL }, /* 0x3B */
- { 0x003C, 0, 0, NULL }, /* 0x3C */
- { 0x003D, 0, 0, NULL }, /* 0x3D */
- { 0x003E, 0, 0, NULL }, /* 0x3E */
- { 0x003F, 0, 0, NULL }, /* 0x3F */
- { 0x0040, 0, 0, NULL }, /* 0x40 */
- { 0x0041, 0, 0, NULL }, /* 0x41 */
- { 0x0042, 0, 0, NULL }, /* 0x42 */
- { 0x0043, 0, 0, NULL }, /* 0x43 */
- { 0x0044, 0, 0, NULL }, /* 0x44 */
- { 0x0045, 0, 0, NULL }, /* 0x45 */
- { 0x0046, 0, 0, NULL }, /* 0x46 */
- { 0x0047, 0, 0, NULL }, /* 0x47 */
- { 0x0048, 0, 0, NULL }, /* 0x48 */
- { 0x0049, 0, 0, NULL }, /* 0x49 */
- { 0x004A, 0, 0, NULL }, /* 0x4A */
- { 0x004B, 0, 0, NULL }, /* 0x4B */
- { 0x004C, 0, 0, NULL }, /* 0x4C */
- { 0x004D, 0, 0, NULL }, /* 0x4D */
- { 0x004E, 0, 0, NULL }, /* 0x4E */
- { 0x004F, 0, 0, NULL }, /* 0x4F */
- { 0x0050, 0, 0, NULL }, /* 0x50 */
- { 0x0051, 0, 0, NULL }, /* 0x51 */
- { 0x0052, 0, 0, NULL }, /* 0x52 */
- { 0x0053, 0, 0, NULL }, /* 0x53 */
- { 0x0054, 0, 0, NULL }, /* 0x54 */
- { 0x0055, 0, 0, NULL }, /* 0x55 */
- { 0x0056, 0, 0, NULL }, /* 0x56 */
- { 0x0057, 0, 0, NULL }, /* 0x57 */
- { 0x0058, 0, 0, NULL }, /* 0x58 */
- { 0x0059, 0, 0, NULL }, /* 0x59 */
- { 0x005A, 0, 0, NULL }, /* 0x5A */
- { 0x005B, 0, 0, NULL }, /* 0x5B */
- { 0x005C, 0, 0, NULL }, /* 0x5C */
- { 0x005D, 0, 0, NULL }, /* 0x5D */
- { 0x005E, 0, 0, NULL }, /* 0x5E */
- { 0x005F, 0, 0, NULL }, /* 0x5F */
- { 0x0060, 0, 0, NULL }, /* 0x60 */
- { 0x0061, 0, 0, NULL }, /* 0x61 */
- { 0x0062, 0, 0, NULL }, /* 0x62 */
- { 0x0063, 0, 0, NULL }, /* 0x63 */
- { 0x0064, 0, 0, NULL }, /* 0x64 */
- { 0x0065, 0, 0, NULL }, /* 0x65 */
- { 0x0066, 0, 0, NULL }, /* 0x66 */
- { 0x0067, 0, 0, NULL }, /* 0x67 */
- { 0x0068, 0, 0, NULL }, /* 0x68 */
- { 0x0069, 0, 0, NULL }, /* 0x69 */
- { 0x006A, 0, 0, NULL }, /* 0x6A */
- { 0x006B, 0, 0, NULL }, /* 0x6B */
- { 0x006C, 0, 0, NULL }, /* 0x6C */
- { 0x006D, 0, 0, NULL }, /* 0x6D */
- { 0x006E, 0, 0, NULL }, /* 0x6E */
- { 0x006F, 0, 0, NULL }, /* 0x6F */
- { 0x0070, 0, 0, NULL }, /* 0x70 */
- { 0x0071, 0, 0, NULL }, /* 0x71 */
- { 0x0072, 0, 0, NULL }, /* 0x72 */
- { 0x0073, 0, 0, NULL }, /* 0x73 */
- { 0x0074, 0, 0, NULL }, /* 0x74 */
- { 0x0075, 0, 0, NULL }, /* 0x75 */
- { 0x0076, 0, 0, NULL }, /* 0x76 */
- { 0x0077, 0, 0, NULL }, /* 0x77 */
- { 0x0078, 0, 0, NULL }, /* 0x78 */
- { 0x0079, 0, 0, NULL }, /* 0x79 */
- { 0x007A, 0, 0, NULL }, /* 0x7A */
- { 0x007B, 0, 0, NULL }, /* 0x7B */
- { 0x007C, 0, 0, NULL }, /* 0x7C */
- { 0x007D, 0, 0, NULL }, /* 0x7D */
- { 0x007E, 0, 0, NULL }, /* 0x7E */
- { 0x007F, 0, 0, NULL }, /* 0x7F */
- { 0x20AC, 0, 0, NULL }, /* 0x80 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_81 }, /* 0x81 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_82 }, /* 0x82 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_83 }, /* 0x83 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_84 }, /* 0x84 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_85 }, /* 0x85 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_86 }, /* 0x86 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_87 }, /* 0x87 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_88 }, /* 0x88 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_89 }, /* 0x89 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_8A }, /* 0x8A */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_8B }, /* 0x8B */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_8C }, /* 0x8C */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_8D }, /* 0x8D */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_8E }, /* 0x8E */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_8F }, /* 0x8F */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_90 }, /* 0x90 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_91 }, /* 0x91 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_92 }, /* 0x92 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_93 }, /* 0x93 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_94 }, /* 0x94 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_95 }, /* 0x95 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_96 }, /* 0x96 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_97 }, /* 0x97 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_98 }, /* 0x98 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_99 }, /* 0x99 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_9A }, /* 0x9A */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_9B }, /* 0x9B */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_9C }, /* 0x9C */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_9D }, /* 0x9D */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_9E }, /* 0x9E */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_9F }, /* 0x9F */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_A0 }, /* 0xA0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GB_A1 }, /* 0xA1 */
- { 0, 0xA1, 0xFC, aImplDBCSToUniTab_GB_A2 }, /* 0xA2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GB_A3 }, /* 0xA3 */
- { 0, 0xA1, 0xF3, aImplDBCSToUniTab_GB_A4 }, /* 0xA4 */
- { 0, 0xA1, 0xF6, aImplDBCSToUniTab_GB_A5 }, /* 0xA5 */
- { 0, 0xA1, 0xF5, aImplDBCSToUniTab_GB_A6 }, /* 0xA6 */
- { 0, 0xA1, 0xF1, aImplDBCSToUniTab_GB_A7 }, /* 0xA7 */
- { 0, 0x40, 0xE9, aImplDBCSToUniTab_GBK_A8 }, /* 0xA8 */
- { 0, 0x40, 0xEF, aImplDBCSToUniTab_GBK_A9 }, /* 0xA9 */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_AA }, /* 0xAA */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_AB }, /* 0xAB */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_AC }, /* 0xAC */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_AD }, /* 0xAD */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_AE }, /* 0xAE */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_AF }, /* 0xAF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_B0 }, /* 0xB0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_B1 }, /* 0xB1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_B2 }, /* 0xB2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_B3 }, /* 0xB3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_B4 }, /* 0xB4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_B5 }, /* 0xB5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_B6 }, /* 0xB6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_B7 }, /* 0xB7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_B8 }, /* 0xB8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_B9 }, /* 0xB9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_BA }, /* 0xBA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_BB }, /* 0xBB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_BC }, /* 0xBC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_BD }, /* 0xBD */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_BE }, /* 0xBE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_BF }, /* 0xBF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_C0 }, /* 0xC0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_C1 }, /* 0xC1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_C2 }, /* 0xC2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_C3 }, /* 0xC3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_C4 }, /* 0xC4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_C5 }, /* 0xC5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_C6 }, /* 0xC6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_C7 }, /* 0xC7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_C8 }, /* 0xC8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_C9 }, /* 0xC9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_CA }, /* 0xCA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_CB }, /* 0xCB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_CC }, /* 0xCC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_CD }, /* 0xCD */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_CE }, /* 0xCE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_CF }, /* 0xCF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_D0 }, /* 0xD0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_D1 }, /* 0xD1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_D2 }, /* 0xD2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_D3 }, /* 0xD3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_D4 }, /* 0xD4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_D5 }, /* 0xD5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_D6 }, /* 0xD6 */
- { 0, 0x40, 0xF9, aImplDBCSToUniTab_GBK_D7 }, /* 0xD7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_D8 }, /* 0xD8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_D9 }, /* 0xD9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_DA }, /* 0xDA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_DB }, /* 0xDB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_DC }, /* 0xDC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_DD }, /* 0xDD */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_DE }, /* 0xDE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_DF }, /* 0xDF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_E0 }, /* 0xE0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_E1 }, /* 0xE1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_E2 }, /* 0xE2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_E3 }, /* 0xE3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_E4 }, /* 0xE4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_E5 }, /* 0xE5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_E6 }, /* 0xE6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_E7 }, /* 0xE7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_E8 }, /* 0xE8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_E9 }, /* 0xE9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_EA }, /* 0xEA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_EB }, /* 0xEB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_EC }, /* 0xEC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_ED }, /* 0xED */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_EE }, /* 0xEE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_EF }, /* 0xEF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_F0 }, /* 0xF0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_F1 }, /* 0xF1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_F2 }, /* 0xF2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_F3 }, /* 0xF3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_F4 }, /* 0xF4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_F5 }, /* 0xF5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_F6 }, /* 0xF6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_F7 }, /* 0xF7 */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_F8 }, /* 0xF8 */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_F9 }, /* 0xF9 */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_FA }, /* 0xFA */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_FB }, /* 0xFB */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_FC }, /* 0xFC */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_FD }, /* 0xFD */
- { 0, 0x40, 0x9F, aImplDBCSToUniTab_GBK_FE }, /* 0xFE */
- { 0, 1, 0, NULL } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplUniToDBCSHighTab const aGBKDBCSHighTab[256] =
-{
- { 0x00, 0xFC, aImplUniToDBCSTab_GB_00 }, /* 0x00 */
- { 0x01, 0xDC, aImplUniToDBCSTab_GB_01 }, /* 0x01 */
- { 0x51, 0xD9, aImplUniToDBCSTab_GBK_02 }, /* 0x02 */
- { 0x91, 0xC9, aImplUniToDBCSTab_GB_03 }, /* 0x03 */
- { 0x01, 0x51, aImplUniToDBCSTab_GB_04 }, /* 0x04 */
- { 1, 0, NULL }, /* 0x05 */
- { 1, 0, NULL }, /* 0x06 */
- { 1, 0, NULL }, /* 0x07 */
- { 1, 0, NULL }, /* 0x08 */
- { 1, 0, NULL }, /* 0x09 */
- { 1, 0, NULL }, /* 0x0A */
- { 1, 0, NULL }, /* 0x0B */
- { 1, 0, NULL }, /* 0x0C */
- { 1, 0, NULL }, /* 0x0D */
- { 1, 0, NULL }, /* 0x0E */
- { 1, 0, NULL }, /* 0x0F */
- { 1, 0, NULL }, /* 0x10 */
- { 1, 0, NULL }, /* 0x11 */
- { 1, 0, NULL }, /* 0x12 */
- { 1, 0, NULL }, /* 0x13 */
- { 1, 0, NULL }, /* 0x14 */
- { 1, 0, NULL }, /* 0x15 */
- { 1, 0, NULL }, /* 0x16 */
- { 1, 0, NULL }, /* 0x17 */
- { 1, 0, NULL }, /* 0x18 */
- { 1, 0, NULL }, /* 0x19 */
- { 1, 0, NULL }, /* 0x1A */
- { 1, 0, NULL }, /* 0x1B */
- { 1, 0, NULL }, /* 0x1C */
- { 1, 0, NULL }, /* 0x1D */
- { 0x3F, 0x3F, aImplUniToDBCSTab_APPLECHINSIMP_1E }, /* 0x1E */ /* we convert this char also to unicode */
- { 1, 0, NULL }, /* 0x1F */
- { 0x10, 0xAC, aImplUniToDBCSTab_GBK_20 }, /* 0x20 */
- { 0x03, 0x99, aImplUniToDBCSTab_GBK_21 }, /* 0x21 */
- { 0x08, 0xEF, aImplUniToDBCSTab_GBK_22 }, /* 0x22 */
- { 0x12, 0x12, aImplUniToDBCSTab_GB_23 }, /* 0x23 */
- { 0x60, 0x9B, aImplUniToDBCSTab_GB_24 }, /* 0x24 */
- { 0x00, 0xE5, aImplUniToDBCSTab_GBK_25 }, /* 0x25 */
- { 0x05, 0x42, aImplUniToDBCSTab_GBK_26 }, /* 0x26 */
- { 1, 0, NULL }, /* 0x27 */
- { 1, 0, NULL }, /* 0x28 */
- { 1, 0, NULL }, /* 0x29 */
- { 1, 0, NULL }, /* 0x2A */
- { 1, 0, NULL }, /* 0x2B */
- { 1, 0, NULL }, /* 0x2C */
- { 1, 0, NULL }, /* 0x2D */
- { 0x81, 0xCA, aImplUniToDBCSTab_GBK_2E }, /* 0x2E */
- { 1, 0, NULL }, /* 0x2F */
- { 0x00, 0xFE, aImplUniToDBCSTab_GBK_30 }, /* 0x30 */
- { 0x05, 0x29, aImplUniToDBCSTab_GB_31 }, /* 0x31 */
- { 0x20, 0xA3, aImplUniToDBCSTab_GBK_32 }, /* 0x32 */
- { 0x8E, 0xD5, aImplUniToDBCSTab_GBK_33 }, /* 0x33 */
- { 0x47, 0x73, aImplUniToDBCSTab_GBK_34 }, /* 0x34 */
- { 0x9E, 0x9E, aImplUniToDBCSTab_GBK_35 }, /* 0x35 */
- { 0x0E, 0x1A, aImplUniToDBCSTab_GBK_36 }, /* 0x36 */
- { 1, 0, NULL }, /* 0x37 */
- { 1, 0, NULL }, /* 0x38 */
- { 0x18, 0xDF, aImplUniToDBCSTab_GBK_39 }, /* 0x39 */
- { 0x73, 0x73, aImplUniToDBCSTab_GBK_3A }, /* 0x3A */
- { 0x4E, 0x4E, aImplUniToDBCSTab_GBK_3B }, /* 0x3B */
- { 0x6E, 0xE0, aImplUniToDBCSTab_GBK_3C }, /* 0x3C */
- { 1, 0, NULL }, /* 0x3D */
- { 1, 0, NULL }, /* 0x3E */
- { 1, 0, NULL }, /* 0x3F */
- { 0x56, 0x56, aImplUniToDBCSTab_GBK_40 }, /* 0x40 */
- { 0x5F, 0x5F, aImplUniToDBCSTab_GBK_41 }, /* 0x41 */
- { 1, 0, NULL }, /* 0x42 */
- { 0x37, 0xDD, aImplUniToDBCSTab_GBK_43 }, /* 0x43 */
- { 0xD6, 0xD6, aImplUniToDBCSTab_GBK_44 }, /* 0x44 */
- { 1, 0, NULL }, /* 0x45 */
- { 0x4C, 0x61, aImplUniToDBCSTab_GBK_46 }, /* 0x46 */
- { 0x23, 0x8D, aImplUniToDBCSTab_GBK_47 }, /* 0x47 */
- { 1, 0, NULL }, /* 0x48 */
- { 0x47, 0xB7, aImplUniToDBCSTab_GBK_49 }, /* 0x49 */
- { 1, 0, NULL }, /* 0x4A */
- { 1, 0, NULL }, /* 0x4B */
- { 0x77, 0xA3, aImplUniToDBCSTab_GBK_4C }, /* 0x4C */
- { 0x13, 0xAE, aImplUniToDBCSTab_GBK_4D }, /* 0x4D */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_4E }, /* 0x4E */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_4F }, /* 0x4F */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_50 }, /* 0x50 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_51 }, /* 0x51 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_52 }, /* 0x52 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_53 }, /* 0x53 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_54 }, /* 0x54 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_55 }, /* 0x55 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_56 }, /* 0x56 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_57 }, /* 0x57 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_58 }, /* 0x58 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_59 }, /* 0x59 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_5A }, /* 0x5A */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_5B }, /* 0x5B */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_5C }, /* 0x5C */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_5D }, /* 0x5D */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_5E }, /* 0x5E */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_5F }, /* 0x5F */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_60 }, /* 0x60 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_61 }, /* 0x61 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_62 }, /* 0x62 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_63 }, /* 0x63 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_64 }, /* 0x64 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_65 }, /* 0x65 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_66 }, /* 0x66 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_67 }, /* 0x67 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_68 }, /* 0x68 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_69 }, /* 0x69 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_6A }, /* 0x6A */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_6B }, /* 0x6B */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_6C }, /* 0x6C */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_6D }, /* 0x6D */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_6E }, /* 0x6E */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_6F }, /* 0x6F */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_70 }, /* 0x70 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_71 }, /* 0x71 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_72 }, /* 0x72 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_73 }, /* 0x73 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_74 }, /* 0x74 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_75 }, /* 0x75 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_76 }, /* 0x76 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_77 }, /* 0x77 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_78 }, /* 0x78 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_79 }, /* 0x79 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_7A }, /* 0x7A */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_7B }, /* 0x7B */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_7C }, /* 0x7C */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_7D }, /* 0x7D */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_7E }, /* 0x7E */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_7F }, /* 0x7F */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_80 }, /* 0x80 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_81 }, /* 0x81 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_82 }, /* 0x82 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_83 }, /* 0x83 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_84 }, /* 0x84 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_85 }, /* 0x85 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_86 }, /* 0x86 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_87 }, /* 0x87 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_88 }, /* 0x88 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_89 }, /* 0x89 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_8A }, /* 0x8A */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_8B }, /* 0x8B */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_8C }, /* 0x8C */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_8D }, /* 0x8D */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_8E }, /* 0x8E */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_8F }, /* 0x8F */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_90 }, /* 0x90 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_91 }, /* 0x91 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_92 }, /* 0x92 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_93 }, /* 0x93 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_94 }, /* 0x94 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_95 }, /* 0x95 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_96 }, /* 0x96 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_97 }, /* 0x97 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_98 }, /* 0x98 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_99 }, /* 0x99 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_9A }, /* 0x9A */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_9B }, /* 0x9B */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_9C }, /* 0x9C */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_9D }, /* 0x9D */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_9E }, /* 0x9E */
- { 0x00, 0xA5, aImplUniToDBCSTab_GBK_9F }, /* 0x9F */
- { 1, 0, NULL }, /* 0xA0 */
- { 1, 0, NULL }, /* 0xA1 */
- { 1, 0, NULL }, /* 0xA2 */
- { 1, 0, NULL }, /* 0xA3 */
- { 1, 0, NULL }, /* 0xA4 */
- { 1, 0, NULL }, /* 0xA5 */
- { 1, 0, NULL }, /* 0xA6 */
- { 1, 0, NULL }, /* 0xA7 */
- { 1, 0, NULL }, /* 0xA8 */
- { 1, 0, NULL }, /* 0xA9 */
- { 1, 0, NULL }, /* 0xAA */
- { 1, 0, NULL }, /* 0xAB */
- { 1, 0, NULL }, /* 0xAC */
- { 1, 0, NULL }, /* 0xAD */
- { 1, 0, NULL }, /* 0xAE */
- { 1, 0, NULL }, /* 0xAF */
- { 1, 0, NULL }, /* 0xB0 */
- { 1, 0, NULL }, /* 0xB1 */
- { 1, 0, NULL }, /* 0xB2 */
- { 1, 0, NULL }, /* 0xB3 */
- { 1, 0, NULL }, /* 0xB4 */
- { 1, 0, NULL }, /* 0xB5 */
- { 1, 0, NULL }, /* 0xB6 */
- { 1, 0, NULL }, /* 0xB7 */
- { 1, 0, NULL }, /* 0xB8 */
- { 1, 0, NULL }, /* 0xB9 */
- { 1, 0, NULL }, /* 0xBA */
- { 1, 0, NULL }, /* 0xBB */
- { 1, 0, NULL }, /* 0xBC */
- { 1, 0, NULL }, /* 0xBD */
- { 1, 0, NULL }, /* 0xBE */
- { 1, 0, NULL }, /* 0xBF */
- { 1, 0, NULL }, /* 0xC0 */
- { 1, 0, NULL }, /* 0xC1 */
- { 1, 0, NULL }, /* 0xC2 */
- { 1, 0, NULL }, /* 0xC3 */
- { 1, 0, NULL }, /* 0xC4 */
- { 1, 0, NULL }, /* 0xC5 */
- { 1, 0, NULL }, /* 0xC6 */
- { 1, 0, NULL }, /* 0xC7 */
- { 1, 0, NULL }, /* 0xC8 */
- { 1, 0, NULL }, /* 0xC9 */
- { 1, 0, NULL }, /* 0xCA */
- { 1, 0, NULL }, /* 0xCB */
- { 1, 0, NULL }, /* 0xCC */
- { 1, 0, NULL }, /* 0xCD */
- { 1, 0, NULL }, /* 0xCE */
- { 1, 0, NULL }, /* 0xCF */
- { 1, 0, NULL }, /* 0xD0 */
- { 1, 0, NULL }, /* 0xD1 */
- { 1, 0, NULL }, /* 0xD2 */
- { 1, 0, NULL }, /* 0xD3 */
- { 1, 0, NULL }, /* 0xD4 */
- { 1, 0, NULL }, /* 0xD5 */
- { 1, 0, NULL }, /* 0xD6 */
- { 1, 0, NULL }, /* 0xD7 */
- { 1, 0, NULL }, /* 0xD8 */
- { 1, 0, NULL }, /* 0xD9 */
- { 1, 0, NULL }, /* 0xDA */
- { 1, 0, NULL }, /* 0xDB */
- { 1, 0, NULL }, /* 0xDC */
- { 1, 0, NULL }, /* 0xDD */
- { 1, 0, NULL }, /* 0xDE */
- { 1, 0, NULL }, /* 0xDF */
- { 1, 0, NULL }, /* 0xE0 */
- { 1, 0, NULL }, /* 0xE1 */
- { 1, 0, NULL }, /* 0xE2 */
- { 1, 0, NULL }, /* 0xE3 */
- { 1, 0, NULL }, /* 0xE4 */
- { 1, 0, NULL }, /* 0xE5 */
- { 1, 0, NULL }, /* 0xE6 */
- { 1, 0, NULL }, /* 0xE7 */
- { 1, 0, NULL }, /* 0xE8 */
- { 1, 0, NULL }, /* 0xE9 */
- { 1, 0, NULL }, /* 0xEA */
- { 1, 0, NULL }, /* 0xEB */
- { 1, 0, NULL }, /* 0xEC */
- { 1, 0, NULL }, /* 0xED */
- { 1, 0, NULL }, /* 0xEE */
- { 1, 0, NULL }, /* 0xEF */
- { 1, 0, NULL }, /* 0xF0 */
- { 1, 0, NULL }, /* 0xF1 */
- { 1, 0, NULL }, /* 0xF2 */
- { 1, 0, NULL }, /* 0xF3 */
- { 1, 0, NULL }, /* 0xF4 */
- { 1, 0, NULL }, /* 0xF5 */
- { 1, 0, NULL }, /* 0xF6 */
- { 1, 0, NULL }, /* 0xF7 */
- { 1, 0, NULL }, /* 0xF8 */
- { 0x2C, 0xF1, aImplUniToDBCSTab_GBK_F9 }, /* 0xF9 */
- { 0x0C, 0x29, aImplUniToDBCSTab_GBK_FA }, /* 0xFA */
- { 1, 0, NULL }, /* 0xFB */
- { 1, 0, NULL }, /* 0xFC */
- { 1, 0, NULL }, /* 0xFD */
- { 0x30, 0x6B, aImplUniToDBCSTab_GBK_FE }, /* 0xFE */
- { 0x01, 0xE5, aImplUniToDBCSTab_GBK_FF } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplDBCSConvertData const aImplGBKDBCSCvtData =
-{
- aGBKUniLeadTab,
- aGBKDBCSHighTab,
- 0x00, 0xFF,
- 0x40, 0xFE,
- aImplMS936DBCSEUDCTab,
- DBCS_EUDC_MS936_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplGBKTextEncodingData
- = { { &aImplGBKDBCSCvtData,
- ImplDBCSToUnicode,
- ImplUnicodeToDBCS,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 2,
- 2,
- 134,
- "euc-cn",
- "GBK",
- RTL_TEXTENCODING_INFO_MULTIBYTE | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_CHINESE_SIMPLIFIED, pc code page 936, mac encoding 25 */
-
-/* ======================================================================= */
-
-static ImplDBCSToUniLeadTab const aMS936UniLeadTab[256] =
-{
- { 0x0000, 0, 0, NULL }, /* 0x00 */
- { 0x0001, 0, 0, NULL }, /* 0x01 */
- { 0x0002, 0, 0, NULL }, /* 0x02 */
- { 0x0003, 0, 0, NULL }, /* 0x03 */
- { 0x0004, 0, 0, NULL }, /* 0x04 */
- { 0x0005, 0, 0, NULL }, /* 0x05 */
- { 0x0006, 0, 0, NULL }, /* 0x06 */
- { 0x0007, 0, 0, NULL }, /* 0x07 */
- { 0x0008, 0, 0, NULL }, /* 0x08 */
- { 0x0009, 0, 0, NULL }, /* 0x09 */
- { 0x000A, 0, 0, NULL }, /* 0x0A */
- { 0x000B, 0, 0, NULL }, /* 0x0B */
- { 0x000C, 0, 0, NULL }, /* 0x0C */
- { 0x000D, 0, 0, NULL }, /* 0x0D */
- { 0x000E, 0, 0, NULL }, /* 0x0E */
- { 0x000F, 0, 0, NULL }, /* 0x0F */
- { 0x0010, 0, 0, NULL }, /* 0x10 */
- { 0x0011, 0, 0, NULL }, /* 0x11 */
- { 0x0012, 0, 0, NULL }, /* 0x12 */
- { 0x0013, 0, 0, NULL }, /* 0x13 */
- { 0x0014, 0, 0, NULL }, /* 0x14 */
- { 0x0015, 0, 0, NULL }, /* 0x15 */
- { 0x0016, 0, 0, NULL }, /* 0x16 */
- { 0x0017, 0, 0, NULL }, /* 0x17 */
- { 0x0018, 0, 0, NULL }, /* 0x18 */
- { 0x0019, 0, 0, NULL }, /* 0x19 */
- { 0x001A, 0, 0, NULL }, /* 0x1A */
- { 0x001B, 0, 0, NULL }, /* 0x1B */
- { 0x001C, 0, 0, NULL }, /* 0x1C */
- { 0x001D, 0, 0, NULL }, /* 0x1D */
- { 0x001E, 0, 0, NULL }, /* 0x1E */
- { 0x001F, 0, 0, NULL }, /* 0x1F */
- { 0x0020, 0, 0, NULL }, /* 0x20 */
- { 0x0021, 0, 0, NULL }, /* 0x21 */
- { 0x0022, 0, 0, NULL }, /* 0x22 */
- { 0x0023, 0, 0, NULL }, /* 0x23 */
- { 0x0024, 0, 0, NULL }, /* 0x24 */
- { 0x0025, 0, 0, NULL }, /* 0x25 */
- { 0x0026, 0, 0, NULL }, /* 0x26 */
- { 0x0027, 0, 0, NULL }, /* 0x27 */
- { 0x0028, 0, 0, NULL }, /* 0x28 */
- { 0x0029, 0, 0, NULL }, /* 0x29 */
- { 0x002A, 0, 0, NULL }, /* 0x2A */
- { 0x002B, 0, 0, NULL }, /* 0x2B */
- { 0x002C, 0, 0, NULL }, /* 0x2C */
- { 0x002D, 0, 0, NULL }, /* 0x2D */
- { 0x002E, 0, 0, NULL }, /* 0x2E */
- { 0x002F, 0, 0, NULL }, /* 0x2F */
- { 0x0030, 0, 0, NULL }, /* 0x30 */
- { 0x0031, 0, 0, NULL }, /* 0x31 */
- { 0x0032, 0, 0, NULL }, /* 0x32 */
- { 0x0033, 0, 0, NULL }, /* 0x33 */
- { 0x0034, 0, 0, NULL }, /* 0x34 */
- { 0x0035, 0, 0, NULL }, /* 0x35 */
- { 0x0036, 0, 0, NULL }, /* 0x36 */
- { 0x0037, 0, 0, NULL }, /* 0x37 */
- { 0x0038, 0, 0, NULL }, /* 0x38 */
- { 0x0039, 0, 0, NULL }, /* 0x39 */
- { 0x003A, 0, 0, NULL }, /* 0x3A */
- { 0x003B, 0, 0, NULL }, /* 0x3B */
- { 0x003C, 0, 0, NULL }, /* 0x3C */
- { 0x003D, 0, 0, NULL }, /* 0x3D */
- { 0x003E, 0, 0, NULL }, /* 0x3E */
- { 0x003F, 0, 0, NULL }, /* 0x3F */
- { 0x0040, 0, 0, NULL }, /* 0x40 */
- { 0x0041, 0, 0, NULL }, /* 0x41 */
- { 0x0042, 0, 0, NULL }, /* 0x42 */
- { 0x0043, 0, 0, NULL }, /* 0x43 */
- { 0x0044, 0, 0, NULL }, /* 0x44 */
- { 0x0045, 0, 0, NULL }, /* 0x45 */
- { 0x0046, 0, 0, NULL }, /* 0x46 */
- { 0x0047, 0, 0, NULL }, /* 0x47 */
- { 0x0048, 0, 0, NULL }, /* 0x48 */
- { 0x0049, 0, 0, NULL }, /* 0x49 */
- { 0x004A, 0, 0, NULL }, /* 0x4A */
- { 0x004B, 0, 0, NULL }, /* 0x4B */
- { 0x004C, 0, 0, NULL }, /* 0x4C */
- { 0x004D, 0, 0, NULL }, /* 0x4D */
- { 0x004E, 0, 0, NULL }, /* 0x4E */
- { 0x004F, 0, 0, NULL }, /* 0x4F */
- { 0x0050, 0, 0, NULL }, /* 0x50 */
- { 0x0051, 0, 0, NULL }, /* 0x51 */
- { 0x0052, 0, 0, NULL }, /* 0x52 */
- { 0x0053, 0, 0, NULL }, /* 0x53 */
- { 0x0054, 0, 0, NULL }, /* 0x54 */
- { 0x0055, 0, 0, NULL }, /* 0x55 */
- { 0x0056, 0, 0, NULL }, /* 0x56 */
- { 0x0057, 0, 0, NULL }, /* 0x57 */
- { 0x0058, 0, 0, NULL }, /* 0x58 */
- { 0x0059, 0, 0, NULL }, /* 0x59 */
- { 0x005A, 0, 0, NULL }, /* 0x5A */
- { 0x005B, 0, 0, NULL }, /* 0x5B */
- { 0x005C, 0, 0, NULL }, /* 0x5C */
- { 0x005D, 0, 0, NULL }, /* 0x5D */
- { 0x005E, 0, 0, NULL }, /* 0x5E */
- { 0x005F, 0, 0, NULL }, /* 0x5F */
- { 0x0060, 0, 0, NULL }, /* 0x60 */
- { 0x0061, 0, 0, NULL }, /* 0x61 */
- { 0x0062, 0, 0, NULL }, /* 0x62 */
- { 0x0063, 0, 0, NULL }, /* 0x63 */
- { 0x0064, 0, 0, NULL }, /* 0x64 */
- { 0x0065, 0, 0, NULL }, /* 0x65 */
- { 0x0066, 0, 0, NULL }, /* 0x66 */
- { 0x0067, 0, 0, NULL }, /* 0x67 */
- { 0x0068, 0, 0, NULL }, /* 0x68 */
- { 0x0069, 0, 0, NULL }, /* 0x69 */
- { 0x006A, 0, 0, NULL }, /* 0x6A */
- { 0x006B, 0, 0, NULL }, /* 0x6B */
- { 0x006C, 0, 0, NULL }, /* 0x6C */
- { 0x006D, 0, 0, NULL }, /* 0x6D */
- { 0x006E, 0, 0, NULL }, /* 0x6E */
- { 0x006F, 0, 0, NULL }, /* 0x6F */
- { 0x0070, 0, 0, NULL }, /* 0x70 */
- { 0x0071, 0, 0, NULL }, /* 0x71 */
- { 0x0072, 0, 0, NULL }, /* 0x72 */
- { 0x0073, 0, 0, NULL }, /* 0x73 */
- { 0x0074, 0, 0, NULL }, /* 0x74 */
- { 0x0075, 0, 0, NULL }, /* 0x75 */
- { 0x0076, 0, 0, NULL }, /* 0x76 */
- { 0x0077, 0, 0, NULL }, /* 0x77 */
- { 0x0078, 0, 0, NULL }, /* 0x78 */
- { 0x0079, 0, 0, NULL }, /* 0x79 */
- { 0x007A, 0, 0, NULL }, /* 0x7A */
- { 0x007B, 0, 0, NULL }, /* 0x7B */
- { 0x007C, 0, 0, NULL }, /* 0x7C */
- { 0x007D, 0, 0, NULL }, /* 0x7D */
- { 0x007E, 0, 0, NULL }, /* 0x7E */
- { 0x007F, 0, 0, NULL }, /* 0x7F */
- { 0x20AC, 0, 0, NULL }, /* 0x80 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_81 }, /* 0x81 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_82 }, /* 0x82 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_83 }, /* 0x83 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_84 }, /* 0x84 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_85 }, /* 0x85 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_86 }, /* 0x86 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_87 }, /* 0x87 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_88 }, /* 0x88 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_89 }, /* 0x89 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_8A }, /* 0x8A */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_8B }, /* 0x8B */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_8C }, /* 0x8C */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_8D }, /* 0x8D */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_8E }, /* 0x8E */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_8F }, /* 0x8F */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_90 }, /* 0x90 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_91 }, /* 0x91 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_92 }, /* 0x92 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_93 }, /* 0x93 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_94 }, /* 0x94 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_95 }, /* 0x95 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_96 }, /* 0x96 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_97 }, /* 0x97 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_98 }, /* 0x98 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_99 }, /* 0x99 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_9A }, /* 0x9A */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_9B }, /* 0x9B */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_9C }, /* 0x9C */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_9D }, /* 0x9D */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_9E }, /* 0x9E */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_9F }, /* 0x9F */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_A0 }, /* 0xA0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GB_A1 }, /* 0xA1 */
- { 0, 0xA1, 0xFC, aImplDBCSToUniTab_GB_A2 }, /* 0xA2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GB_A3 }, /* 0xA3 */
- { 0, 0xA1, 0xF3, aImplDBCSToUniTab_GB_A4 }, /* 0xA4 */
- { 0, 0xA1, 0xF6, aImplDBCSToUniTab_GB_A5 }, /* 0xA5 */
- { 0, 0xA1, 0xF5, aImplDBCSToUniTab_GB_A6 }, /* 0xA6 */
- { 0, 0xA1, 0xF1, aImplDBCSToUniTab_GB_A7 }, /* 0xA7 */
- { 0, 0x40, 0xE9, aImplDBCSToUniTab_GBK_A8 }, /* 0xA8 */
- { 0, 0x40, 0xEF, aImplDBCSToUniTab_GBK_A9 }, /* 0xA9 */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_AA }, /* 0xAA */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_AB }, /* 0xAB */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_AC }, /* 0xAC */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_AD }, /* 0xAD */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_AE }, /* 0xAE */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_AF }, /* 0xAF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_B0 }, /* 0xB0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_B1 }, /* 0xB1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_B2 }, /* 0xB2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_B3 }, /* 0xB3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_B4 }, /* 0xB4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_B5 }, /* 0xB5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_B6 }, /* 0xB6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_B7 }, /* 0xB7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_B8 }, /* 0xB8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_B9 }, /* 0xB9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_BA }, /* 0xBA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_BB }, /* 0xBB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_BC }, /* 0xBC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_BD }, /* 0xBD */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_BE }, /* 0xBE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_BF }, /* 0xBF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_C0 }, /* 0xC0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_C1 }, /* 0xC1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_C2 }, /* 0xC2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_C3 }, /* 0xC3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_C4 }, /* 0xC4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_C5 }, /* 0xC5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_C6 }, /* 0xC6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_C7 }, /* 0xC7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_C8 }, /* 0xC8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_C9 }, /* 0xC9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_CA }, /* 0xCA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_CB }, /* 0xCB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_CC }, /* 0xCC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_CD }, /* 0xCD */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_CE }, /* 0xCE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_CF }, /* 0xCF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_D0 }, /* 0xD0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_D1 }, /* 0xD1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_D2 }, /* 0xD2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_D3 }, /* 0xD3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_D4 }, /* 0xD4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_D5 }, /* 0xD5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_D6 }, /* 0xD6 */
- { 0, 0x40, 0xF9, aImplDBCSToUniTab_GBK_D7 }, /* 0xD7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_D8 }, /* 0xD8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_D9 }, /* 0xD9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_DA }, /* 0xDA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_DB }, /* 0xDB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_DC }, /* 0xDC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_DD }, /* 0xDD */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_DE }, /* 0xDE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_DF }, /* 0xDF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_E0 }, /* 0xE0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_E1 }, /* 0xE1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_E2 }, /* 0xE2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_E3 }, /* 0xE3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_E4 }, /* 0xE4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_E5 }, /* 0xE5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_E6 }, /* 0xE6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_E7 }, /* 0xE7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_E8 }, /* 0xE8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_E9 }, /* 0xE9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_EA }, /* 0xEA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_EB }, /* 0xEB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_EC }, /* 0xEC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_ED }, /* 0xED */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_EE }, /* 0xEE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_EF }, /* 0xEF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_F0 }, /* 0xF0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_F1 }, /* 0xF1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_F2 }, /* 0xF2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_F3 }, /* 0xF3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_F4 }, /* 0xF4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_F5 }, /* 0xF5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_F6 }, /* 0xF6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_GBK_F7 }, /* 0xF7 */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_F8 }, /* 0xF8 */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_F9 }, /* 0xF9 */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_FA }, /* 0xFA */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_FB }, /* 0xFB */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_FC }, /* 0xFC */
- { 0, 0x40, 0xA0, aImplDBCSToUniTab_GBK_FD }, /* 0xFD */
- { 0, 0x40, 0x4F, aImplDBCSToUniTab_GBK_FE }, /* 0xFE */
- { 0, 1, 0, NULL } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplUniToDBCSHighTab const aMS936DBCSHighTab[256] =
-{
- { 0x00, 0xFC, aImplUniToDBCSTab_GB_00 }, /* 0x00 */
- { 0x01, 0xDC, aImplUniToDBCSTab_GB_01 }, /* 0x01 */
- { 0x51, 0xD9, aImplUniToDBCSTab_GBK_02 }, /* 0x02 */
- { 0x91, 0xC9, aImplUniToDBCSTab_GB_03 }, /* 0x03 */
- { 0x01, 0x51, aImplUniToDBCSTab_GB_04 }, /* 0x04 */
- { 1, 0, NULL }, /* 0x05 */
- { 1, 0, NULL }, /* 0x06 */
- { 1, 0, NULL }, /* 0x07 */
- { 1, 0, NULL }, /* 0x08 */
- { 1, 0, NULL }, /* 0x09 */
- { 1, 0, NULL }, /* 0x0A */
- { 1, 0, NULL }, /* 0x0B */
- { 1, 0, NULL }, /* 0x0C */
- { 1, 0, NULL }, /* 0x0D */
- { 1, 0, NULL }, /* 0x0E */
- { 1, 0, NULL }, /* 0x0F */
- { 1, 0, NULL }, /* 0x10 */
- { 1, 0, NULL }, /* 0x11 */
- { 1, 0, NULL }, /* 0x12 */
- { 1, 0, NULL }, /* 0x13 */
- { 1, 0, NULL }, /* 0x14 */
- { 1, 0, NULL }, /* 0x15 */
- { 1, 0, NULL }, /* 0x16 */
- { 1, 0, NULL }, /* 0x17 */
- { 1, 0, NULL }, /* 0x18 */
- { 1, 0, NULL }, /* 0x19 */
- { 1, 0, NULL }, /* 0x1A */
- { 1, 0, NULL }, /* 0x1B */
- { 1, 0, NULL }, /* 0x1C */
- { 1, 0, NULL }, /* 0x1D */
- { 0x3F, 0x3F, aImplUniToDBCSTab_APPLECHINSIMP_1E }, /* 0x1E */ /* we convert this char also to unicode */
- { 1, 0, NULL }, /* 0x1F */
- { 0x10, 0xAC, aImplUniToDBCSTab_GBK_20 }, /* 0x20 */
- { 0x03, 0x99, aImplUniToDBCSTab_GBK_21 }, /* 0x21 */
- { 0x08, 0xEF, aImplUniToDBCSTab_GBK_22 }, /* 0x22 */
- { 0x12, 0x12, aImplUniToDBCSTab_GB_23 }, /* 0x23 */
- { 0x60, 0x9B, aImplUniToDBCSTab_GB_24 }, /* 0x24 */
- { 0x00, 0xE5, aImplUniToDBCSTab_GBK_25 }, /* 0x25 */
- { 0x05, 0x42, aImplUniToDBCSTab_GBK_26 }, /* 0x26 */
- { 1, 0, NULL }, /* 0x27 */
- { 1, 0, NULL }, /* 0x28 */
- { 1, 0, NULL }, /* 0x29 */
- { 1, 0, NULL }, /* 0x2A */
- { 1, 0, NULL }, /* 0x2B */
- { 1, 0, NULL }, /* 0x2C */
- { 1, 0, NULL }, /* 0x2D */
- { 1, 0, NULL }, /* 0x2E */
- { 1, 0, NULL }, /* 0x2F */
- { 0x00, 0xFE, aImplUniToDBCSTab_GBK_30 }, /* 0x30 */
- { 0x05, 0x29, aImplUniToDBCSTab_GB_31 }, /* 0x31 */
- { 0x20, 0xA3, aImplUniToDBCSTab_GBK_32 }, /* 0x32 */
- { 0x8E, 0xD5, aImplUniToDBCSTab_GBK_33 }, /* 0x33 */
- { 1, 0, NULL }, /* 0x34 */
- { 1, 0, NULL }, /* 0x35 */
- { 1, 0, NULL }, /* 0x36 */
- { 1, 0, NULL }, /* 0x37 */
- { 1, 0, NULL }, /* 0x38 */
- { 1, 0, NULL }, /* 0x39 */
- { 1, 0, NULL }, /* 0x3A */
- { 1, 0, NULL }, /* 0x3B */
- { 1, 0, NULL }, /* 0x3C */
- { 1, 0, NULL }, /* 0x3D */
- { 1, 0, NULL }, /* 0x3E */
- { 1, 0, NULL }, /* 0x3F */
- { 1, 0, NULL }, /* 0x40 */
- { 1, 0, NULL }, /* 0x41 */
- { 1, 0, NULL }, /* 0x42 */
- { 1, 0, NULL }, /* 0x43 */
- { 1, 0, NULL }, /* 0x44 */
- { 1, 0, NULL }, /* 0x45 */
- { 1, 0, NULL }, /* 0x46 */
- { 1, 0, NULL }, /* 0x47 */
- { 1, 0, NULL }, /* 0x48 */
- { 1, 0, NULL }, /* 0x49 */
- { 1, 0, NULL }, /* 0x4A */
- { 1, 0, NULL }, /* 0x4B */
- { 1, 0, NULL }, /* 0x4C */
- { 1, 0, NULL }, /* 0x4D */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_4E }, /* 0x4E */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_4F }, /* 0x4F */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_50 }, /* 0x50 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_51 }, /* 0x51 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_52 }, /* 0x52 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_53 }, /* 0x53 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_54 }, /* 0x54 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_55 }, /* 0x55 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_56 }, /* 0x56 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_57 }, /* 0x57 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_58 }, /* 0x58 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_59 }, /* 0x59 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_5A }, /* 0x5A */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_5B }, /* 0x5B */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_5C }, /* 0x5C */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_5D }, /* 0x5D */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_5E }, /* 0x5E */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_5F }, /* 0x5F */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_60 }, /* 0x60 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_61 }, /* 0x61 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_62 }, /* 0x62 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_63 }, /* 0x63 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_64 }, /* 0x64 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_65 }, /* 0x65 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_66 }, /* 0x66 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_67 }, /* 0x67 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_68 }, /* 0x68 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_69 }, /* 0x69 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_6A }, /* 0x6A */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_6B }, /* 0x6B */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_6C }, /* 0x6C */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_6D }, /* 0x6D */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_6E }, /* 0x6E */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_6F }, /* 0x6F */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_70 }, /* 0x70 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_71 }, /* 0x71 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_72 }, /* 0x72 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_73 }, /* 0x73 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_74 }, /* 0x74 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_75 }, /* 0x75 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_76 }, /* 0x76 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_77 }, /* 0x77 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_78 }, /* 0x78 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_79 }, /* 0x79 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_7A }, /* 0x7A */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_7B }, /* 0x7B */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_7C }, /* 0x7C */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_7D }, /* 0x7D */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_7E }, /* 0x7E */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_7F }, /* 0x7F */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_80 }, /* 0x80 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_81 }, /* 0x81 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_82 }, /* 0x82 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_83 }, /* 0x83 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_84 }, /* 0x84 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_85 }, /* 0x85 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_86 }, /* 0x86 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_87 }, /* 0x87 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_88 }, /* 0x88 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_89 }, /* 0x89 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_8A }, /* 0x8A */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_8B }, /* 0x8B */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_8C }, /* 0x8C */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_8D }, /* 0x8D */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_8E }, /* 0x8E */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_8F }, /* 0x8F */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_90 }, /* 0x90 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_91 }, /* 0x91 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_92 }, /* 0x92 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_93 }, /* 0x93 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_94 }, /* 0x94 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_95 }, /* 0x95 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_96 }, /* 0x96 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_97 }, /* 0x97 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_98 }, /* 0x98 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_99 }, /* 0x99 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_9A }, /* 0x9A */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_9B }, /* 0x9B */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_9C }, /* 0x9C */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_9D }, /* 0x9D */
- { 0x00, 0xFF, aImplUniToDBCSTab_GBK_9E }, /* 0x9E */
- { 0x00, 0xA5, aImplUniToDBCSTab_GBK_9F }, /* 0x9F */
- { 1, 0, NULL }, /* 0xA0 */
- { 1, 0, NULL }, /* 0xA1 */
- { 1, 0, NULL }, /* 0xA2 */
- { 1, 0, NULL }, /* 0xA3 */
- { 1, 0, NULL }, /* 0xA4 */
- { 1, 0, NULL }, /* 0xA5 */
- { 1, 0, NULL }, /* 0xA6 */
- { 1, 0, NULL }, /* 0xA7 */
- { 1, 0, NULL }, /* 0xA8 */
- { 1, 0, NULL }, /* 0xA9 */
- { 1, 0, NULL }, /* 0xAA */
- { 1, 0, NULL }, /* 0xAB */
- { 1, 0, NULL }, /* 0xAC */
- { 1, 0, NULL }, /* 0xAD */
- { 1, 0, NULL }, /* 0xAE */
- { 1, 0, NULL }, /* 0xAF */
- { 1, 0, NULL }, /* 0xB0 */
- { 1, 0, NULL }, /* 0xB1 */
- { 1, 0, NULL }, /* 0xB2 */
- { 1, 0, NULL }, /* 0xB3 */
- { 1, 0, NULL }, /* 0xB4 */
- { 1, 0, NULL }, /* 0xB5 */
- { 1, 0, NULL }, /* 0xB6 */
- { 1, 0, NULL }, /* 0xB7 */
- { 1, 0, NULL }, /* 0xB8 */
- { 1, 0, NULL }, /* 0xB9 */
- { 1, 0, NULL }, /* 0xBA */
- { 1, 0, NULL }, /* 0xBB */
- { 1, 0, NULL }, /* 0xBC */
- { 1, 0, NULL }, /* 0xBD */
- { 1, 0, NULL }, /* 0xBE */
- { 1, 0, NULL }, /* 0xBF */
- { 1, 0, NULL }, /* 0xC0 */
- { 1, 0, NULL }, /* 0xC1 */
- { 1, 0, NULL }, /* 0xC2 */
- { 1, 0, NULL }, /* 0xC3 */
- { 1, 0, NULL }, /* 0xC4 */
- { 1, 0, NULL }, /* 0xC5 */
- { 1, 0, NULL }, /* 0xC6 */
- { 1, 0, NULL }, /* 0xC7 */
- { 1, 0, NULL }, /* 0xC8 */
- { 1, 0, NULL }, /* 0xC9 */
- { 1, 0, NULL }, /* 0xCA */
- { 1, 0, NULL }, /* 0xCB */
- { 1, 0, NULL }, /* 0xCC */
- { 1, 0, NULL }, /* 0xCD */
- { 1, 0, NULL }, /* 0xCE */
- { 1, 0, NULL }, /* 0xCF */
- { 1, 0, NULL }, /* 0xD0 */
- { 1, 0, NULL }, /* 0xD1 */
- { 1, 0, NULL }, /* 0xD2 */
- { 1, 0, NULL }, /* 0xD3 */
- { 1, 0, NULL }, /* 0xD4 */
- { 1, 0, NULL }, /* 0xD5 */
- { 1, 0, NULL }, /* 0xD6 */
- { 1, 0, NULL }, /* 0xD7 */
- { 1, 0, NULL }, /* 0xD8 */
- { 1, 0, NULL }, /* 0xD9 */
- { 1, 0, NULL }, /* 0xDA */
- { 1, 0, NULL }, /* 0xDB */
- { 1, 0, NULL }, /* 0xDC */
- { 1, 0, NULL }, /* 0xDD */
- { 1, 0, NULL }, /* 0xDE */
- { 1, 0, NULL }, /* 0xDF */
- { 1, 0, NULL }, /* 0xE0 */
- { 1, 0, NULL }, /* 0xE1 */
- { 1, 0, NULL }, /* 0xE2 */
- { 1, 0, NULL }, /* 0xE3 */
- { 1, 0, NULL }, /* 0xE4 */
- { 1, 0, NULL }, /* 0xE5 */
- { 1, 0, NULL }, /* 0xE6 */
- { 1, 0, NULL }, /* 0xE7 */
- { 1, 0, NULL }, /* 0xE8 */
- { 1, 0, NULL }, /* 0xE9 */
- { 1, 0, NULL }, /* 0xEA */
- { 1, 0, NULL }, /* 0xEB */
- { 1, 0, NULL }, /* 0xEC */
- { 1, 0, NULL }, /* 0xED */
- { 1, 0, NULL }, /* 0xEE */
- { 1, 0, NULL }, /* 0xEF */
- { 1, 0, NULL }, /* 0xF0 */
- { 1, 0, NULL }, /* 0xF1 */
- { 1, 0, NULL }, /* 0xF2 */
- { 1, 0, NULL }, /* 0xF3 */
- { 1, 0, NULL }, /* 0xF4 */
- { 1, 0, NULL }, /* 0xF5 */
- { 1, 0, NULL }, /* 0xF6 */
- { 1, 0, NULL }, /* 0xF7 */
- { 1, 0, NULL }, /* 0xF8 */
- { 0x2C, 0xF1, aImplUniToDBCSTab_GBK_F9 }, /* 0xF9 */
- { 0x0C, 0x29, aImplUniToDBCSTab_GBK_FA }, /* 0xFA */
- { 1, 0, NULL }, /* 0xFB */
- { 1, 0, NULL }, /* 0xFC */
- { 1, 0, NULL }, /* 0xFD */
- { 0x30, 0x6B, aImplUniToDBCSTab_GBK_FE }, /* 0xFE */
- { 0x01, 0xE5, aImplUniToDBCSTab_GBK_FF } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplDBCSConvertData const aImplMS936DBCSCvtData =
-{
- aMS936UniLeadTab,
- aMS936DBCSHighTab,
- 0x00, 0xFF,
- 0x40, 0xFE,
- aImplMS936DBCSEUDCTab,
- DBCS_EUDC_MS936_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplMS936TextEncodingData
- = { { &aImplMS936DBCSCvtData,
- ImplDBCSToUnicode,
- ImplUnicodeToDBCS,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 2,
- 2,
- 134,
- "euc-cn",
- "gb2312",
- RTL_TEXTENCODING_INFO_MULTIBYTE };
- /* WIN/DOS/OS2, SCRIPT_CHINESE_SIMPLIFIED, pc code page 936, mac encoding
- 25 */
-
-/* ======================================================================= */
-
-static ImplDBCSToUniLeadTab const aAPPLECHINSIMPUniLeadTab[256] =
-{
- { 0x0000, 0, 0, NULL }, /* 0x00 */
- { 0x0001, 0, 0, NULL }, /* 0x01 */
- { 0x0002, 0, 0, NULL }, /* 0x02 */
- { 0x0003, 0, 0, NULL }, /* 0x03 */
- { 0x0004, 0, 0, NULL }, /* 0x04 */
- { 0x0005, 0, 0, NULL }, /* 0x05 */
- { 0x0006, 0, 0, NULL }, /* 0x06 */
- { 0x0007, 0, 0, NULL }, /* 0x07 */
- { 0x0008, 0, 0, NULL }, /* 0x08 */
- { 0x0009, 0, 0, NULL }, /* 0x09 */
- { 0x000A, 0, 0, NULL }, /* 0x0A */
- { 0x000B, 0, 0, NULL }, /* 0x0B */
- { 0x000C, 0, 0, NULL }, /* 0x0C */
- { 0x000D, 0, 0, NULL }, /* 0x0D */
- { 0x000E, 0, 0, NULL }, /* 0x0E */
- { 0x000F, 0, 0, NULL }, /* 0x0F */
- { 0x0010, 0, 0, NULL }, /* 0x10 */
- { 0x0011, 0, 0, NULL }, /* 0x11 */
- { 0x0012, 0, 0, NULL }, /* 0x12 */
- { 0x0013, 0, 0, NULL }, /* 0x13 */
- { 0x0014, 0, 0, NULL }, /* 0x14 */
- { 0x0015, 0, 0, NULL }, /* 0x15 */
- { 0x0016, 0, 0, NULL }, /* 0x16 */
- { 0x0017, 0, 0, NULL }, /* 0x17 */
- { 0x0018, 0, 0, NULL }, /* 0x18 */
- { 0x0019, 0, 0, NULL }, /* 0x19 */
- { 0x001A, 0, 0, NULL }, /* 0x1A */
- { 0x001B, 0, 0, NULL }, /* 0x1B */
- { 0x001C, 0, 0, NULL }, /* 0x1C */
- { 0x001D, 0, 0, NULL }, /* 0x1D */
- { 0x001E, 0, 0, NULL }, /* 0x1E */
- { 0x001F, 0, 0, NULL }, /* 0x1F */
- { 0x0020, 0, 0, NULL }, /* 0x20 */
- { 0x0021, 0, 0, NULL }, /* 0x21 */
- { 0x0022, 0, 0, NULL }, /* 0x22 */
- { 0x0023, 0, 0, NULL }, /* 0x23 */
- { 0x0024, 0, 0, NULL }, /* 0x24 */
- { 0x0025, 0, 0, NULL }, /* 0x25 */
- { 0x0026, 0, 0, NULL }, /* 0x26 */
- { 0x0027, 0, 0, NULL }, /* 0x27 */
- { 0x0028, 0, 0, NULL }, /* 0x28 */
- { 0x0029, 0, 0, NULL }, /* 0x29 */
- { 0x002A, 0, 0, NULL }, /* 0x2A */
- { 0x002B, 0, 0, NULL }, /* 0x2B */
- { 0x002C, 0, 0, NULL }, /* 0x2C */
- { 0x002D, 0, 0, NULL }, /* 0x2D */
- { 0x002E, 0, 0, NULL }, /* 0x2E */
- { 0x002F, 0, 0, NULL }, /* 0x2F */
- { 0x0030, 0, 0, NULL }, /* 0x30 */
- { 0x0031, 0, 0, NULL }, /* 0x31 */
- { 0x0032, 0, 0, NULL }, /* 0x32 */
- { 0x0033, 0, 0, NULL }, /* 0x33 */
- { 0x0034, 0, 0, NULL }, /* 0x34 */
- { 0x0035, 0, 0, NULL }, /* 0x35 */
- { 0x0036, 0, 0, NULL }, /* 0x36 */
- { 0x0037, 0, 0, NULL }, /* 0x37 */
- { 0x0038, 0, 0, NULL }, /* 0x38 */
- { 0x0039, 0, 0, NULL }, /* 0x39 */
- { 0x003A, 0, 0, NULL }, /* 0x3A */
- { 0x003B, 0, 0, NULL }, /* 0x3B */
- { 0x003C, 0, 0, NULL }, /* 0x3C */
- { 0x003D, 0, 0, NULL }, /* 0x3D */
- { 0x003E, 0, 0, NULL }, /* 0x3E */
- { 0x003F, 0, 0, NULL }, /* 0x3F */
- { 0x0040, 0, 0, NULL }, /* 0x40 */
- { 0x0041, 0, 0, NULL }, /* 0x41 */
- { 0x0042, 0, 0, NULL }, /* 0x42 */
- { 0x0043, 0, 0, NULL }, /* 0x43 */
- { 0x0044, 0, 0, NULL }, /* 0x44 */
- { 0x0045, 0, 0, NULL }, /* 0x45 */
- { 0x0046, 0, 0, NULL }, /* 0x46 */
- { 0x0047, 0, 0, NULL }, /* 0x47 */
- { 0x0048, 0, 0, NULL }, /* 0x48 */
- { 0x0049, 0, 0, NULL }, /* 0x49 */
- { 0x004A, 0, 0, NULL }, /* 0x4A */
- { 0x004B, 0, 0, NULL }, /* 0x4B */
- { 0x004C, 0, 0, NULL }, /* 0x4C */
- { 0x004D, 0, 0, NULL }, /* 0x4D */
- { 0x004E, 0, 0, NULL }, /* 0x4E */
- { 0x004F, 0, 0, NULL }, /* 0x4F */
- { 0x0050, 0, 0, NULL }, /* 0x50 */
- { 0x0051, 0, 0, NULL }, /* 0x51 */
- { 0x0052, 0, 0, NULL }, /* 0x52 */
- { 0x0053, 0, 0, NULL }, /* 0x53 */
- { 0x0054, 0, 0, NULL }, /* 0x54 */
- { 0x0055, 0, 0, NULL }, /* 0x55 */
- { 0x0056, 0, 0, NULL }, /* 0x56 */
- { 0x0057, 0, 0, NULL }, /* 0x57 */
- { 0x0058, 0, 0, NULL }, /* 0x58 */
- { 0x0059, 0, 0, NULL }, /* 0x59 */
- { 0x005A, 0, 0, NULL }, /* 0x5A */
- { 0x005B, 0, 0, NULL }, /* 0x5B */
- { 0x005C, 0, 0, NULL }, /* 0x5C */
- { 0x005D, 0, 0, NULL }, /* 0x5D */
- { 0x005E, 0, 0, NULL }, /* 0x5E */
- { 0x005F, 0, 0, NULL }, /* 0x5F */
- { 0x0060, 0, 0, NULL }, /* 0x60 */
- { 0x0061, 0, 0, NULL }, /* 0x61 */
- { 0x0062, 0, 0, NULL }, /* 0x62 */
- { 0x0063, 0, 0, NULL }, /* 0x63 */
- { 0x0064, 0, 0, NULL }, /* 0x64 */
- { 0x0065, 0, 0, NULL }, /* 0x65 */
- { 0x0066, 0, 0, NULL }, /* 0x66 */
- { 0x0067, 0, 0, NULL }, /* 0x67 */
- { 0x0068, 0, 0, NULL }, /* 0x68 */
- { 0x0069, 0, 0, NULL }, /* 0x69 */
- { 0x006A, 0, 0, NULL }, /* 0x6A */
- { 0x006B, 0, 0, NULL }, /* 0x6B */
- { 0x006C, 0, 0, NULL }, /* 0x6C */
- { 0x006D, 0, 0, NULL }, /* 0x6D */
- { 0x006E, 0, 0, NULL }, /* 0x6E */
- { 0x006F, 0, 0, NULL }, /* 0x6F */
- { 0x0070, 0, 0, NULL }, /* 0x70 */
- { 0x0071, 0, 0, NULL }, /* 0x71 */
- { 0x0072, 0, 0, NULL }, /* 0x72 */
- { 0x0073, 0, 0, NULL }, /* 0x73 */
- { 0x0074, 0, 0, NULL }, /* 0x74 */
- { 0x0075, 0, 0, NULL }, /* 0x75 */
- { 0x0076, 0, 0, NULL }, /* 0x76 */
- { 0x0077, 0, 0, NULL }, /* 0x77 */
- { 0x0078, 0, 0, NULL }, /* 0x78 */
- { 0x0079, 0, 0, NULL }, /* 0x79 */
- { 0x007A, 0, 0, NULL }, /* 0x7A */
- { 0x007B, 0, 0, NULL }, /* 0x7B */
- { 0x007C, 0, 0, NULL }, /* 0x7C */
- { 0x007D, 0, 0, NULL }, /* 0x7D */
- { 0x007E, 0, 0, NULL }, /* 0x7E */
- { 0x007F, 0, 0, NULL }, /* 0x7F */
- { 0, 1, 0, NULL }, /* 0x80 */
- { 0xF880, 0, 0, NULL }, /* 0x81 */
- { 0xF881, 0, 0, NULL }, /* 0x82 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x83 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x84 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x85 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x86 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x87 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x88 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x89 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8A */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8B */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8C */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8D */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8E */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8F */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x90 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x91 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x92 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x93 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x94 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x95 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x96 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x97 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x98 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x99 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9A */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9B */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9C */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9D */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9E */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9F */ /* We convert this as double byte */
- { 0x00A0, 0, 0, NULL }, /* 0xA0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GB_A1 }, /* 0xA1 */
- { 0, 0xA1, 0xFC, aImplDBCSToUniTab_GB_A2 }, /* 0xA2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GB_A3 }, /* 0xA3 */
- { 0, 0xA1, 0xF3, aImplDBCSToUniTab_GB_A4 }, /* 0xA4 */
- { 0, 0xA1, 0xF6, aImplDBCSToUniTab_GB_A5 }, /* 0xA5 */
- { 0, 0xA1, 0xF5, aImplDBCSToUniTab_GB_A6 }, /* 0xA6 */
- { 0, 0xA1, 0xF1, aImplDBCSToUniTab_GB_A7 }, /* 0xA7 */
- { 0, 0xA1, 0xE9, aImplDBCSToUniTab_GBK_A8+GBKOFF }, /* 0xA8 */
- { 0, 0xA1, 0xEF, aImplDBCSToUniTab_GBK_A9+GBKOFF }, /* 0xA9 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xAA */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xAB */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xAC */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xAD */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xAE */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xAF */ /* We convert this as double byte */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_B0+GBKOFF }, /* 0xB0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_B1+GBKOFF }, /* 0xB1 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_B2+GBKOFF }, /* 0xB2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_B3+GBKOFF }, /* 0xB3 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_B4+GBKOFF }, /* 0xB4 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_B5+GBKOFF }, /* 0xB5 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_B6+GBKOFF }, /* 0xB6 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_B7+GBKOFF }, /* 0xB7 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_B8+GBKOFF }, /* 0xB8 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_B9+GBKOFF }, /* 0xB9 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_BA+GBKOFF }, /* 0xBA */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_BB+GBKOFF }, /* 0xBB */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_BC+GBKOFF }, /* 0xBC */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_BD+GBKOFF }, /* 0xBD */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_BE+GBKOFF }, /* 0xBE */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_BF+GBKOFF }, /* 0xBF */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_C0+GBKOFF }, /* 0xC0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_C1+GBKOFF }, /* 0xC1 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_C2+GBKOFF }, /* 0xC2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_C3+GBKOFF }, /* 0xC3 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_C4+GBKOFF }, /* 0xC4 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_C5+GBKOFF }, /* 0xC5 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_C6+GBKOFF }, /* 0xC6 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_C7+GBKOFF }, /* 0xC7 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_C8+GBKOFF }, /* 0xC8 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_C9+GBKOFF }, /* 0xC9 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_CA+GBKOFF }, /* 0xCA */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_CB+GBKOFF }, /* 0xCB */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_CC+GBKOFF }, /* 0xCC */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_CD+GBKOFF }, /* 0xCD */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_CE+GBKOFF }, /* 0xCE */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_CF+GBKOFF }, /* 0xCF */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_D0+GBKOFF }, /* 0xD0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_D1+GBKOFF }, /* 0xD1 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_D2+GBKOFF }, /* 0xD2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_D3+GBKOFF }, /* 0xD3 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_D4+GBKOFF }, /* 0xD4 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_D5+GBKOFF }, /* 0xD5 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_D6+GBKOFF }, /* 0xD6 */
- { 0, 0xA1, 0xF9, aImplDBCSToUniTab_GBK_D7+GBKOFF }, /* 0xD7 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_D8+GBKOFF }, /* 0xD8 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_D9+GBKOFF }, /* 0xD9 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_DA+GBKOFF }, /* 0xDA */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_DB+GBKOFF }, /* 0xDB */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_DC+GBKOFF }, /* 0xDC */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_DD+GBKOFF }, /* 0xDD */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_DE+GBKOFF }, /* 0xDE */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_DF+GBKOFF }, /* 0xDF */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_E0+GBKOFF }, /* 0xE0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_E1+GBKOFF }, /* 0xE1 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_E2+GBKOFF }, /* 0xE2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_E3+GBKOFF }, /* 0xE3 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_E4+GBKOFF }, /* 0xE4 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_E5+GBKOFF }, /* 0xE5 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_E6+GBKOFF }, /* 0xE6 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_E7+GBKOFF }, /* 0xE7 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_E8+GBKOFF }, /* 0xE8 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_E9+GBKOFF }, /* 0xE9 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_EA+GBKOFF }, /* 0xEA */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_EB+GBKOFF }, /* 0xEB */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_EC+GBKOFF }, /* 0xEC */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_ED+GBKOFF }, /* 0xED */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_EE+GBKOFF }, /* 0xEE */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_EF+GBKOFF }, /* 0xEF */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_F0+GBKOFF }, /* 0xF0 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_F1+GBKOFF }, /* 0xF1 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_F2+GBKOFF }, /* 0xF2 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_F3+GBKOFF }, /* 0xF3 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_F4+GBKOFF }, /* 0xF4 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_F5+GBKOFF }, /* 0xF5 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_F6+GBKOFF }, /* 0xF6 */
- { 0, 0xA1, 0xFE, aImplDBCSToUniTab_GBK_F7+GBKOFF }, /* 0xF7 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF8 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF9 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFA */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFB */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFC */ /* We convert this as double byte */
- { 0x00A9, 0, 0, NULL }, /* 0xFD */
- { 0x2122, 0, 0, NULL }, /* 0xFE */
- { 0x2026, 0, 0, NULL } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplUniToDBCSHighTab const aAPPLECHINSIMPDBCSHighTab[256] =
-{
- { 0x00, 0xFC, aImplUniToDBCSTab_APPLECHINSIMP_00 }, /* 0x00 */
- { 0x01, 0xDC, aImplUniToDBCSTab_GB_01 }, /* 0x01 */
- { 0x51, 0xC9, aImplUniToDBCSTab_GB_02 }, /* 0x02 */
- { 0x91, 0xC9, aImplUniToDBCSTab_GB_03 }, /* 0x03 */
- { 0x01, 0x51, aImplUniToDBCSTab_GB_04 }, /* 0x04 */
- { 1, 0, NULL }, /* 0x05 */
- { 1, 0, NULL }, /* 0x06 */
- { 1, 0, NULL }, /* 0x07 */
- { 1, 0, NULL }, /* 0x08 */
- { 1, 0, NULL }, /* 0x09 */
- { 1, 0, NULL }, /* 0x0A */
- { 1, 0, NULL }, /* 0x0B */
- { 1, 0, NULL }, /* 0x0C */
- { 1, 0, NULL }, /* 0x0D */
- { 1, 0, NULL }, /* 0x0E */
- { 1, 0, NULL }, /* 0x0F */
- { 1, 0, NULL }, /* 0x10 */
- { 1, 0, NULL }, /* 0x11 */
- { 1, 0, NULL }, /* 0x12 */
- { 1, 0, NULL }, /* 0x13 */
- { 1, 0, NULL }, /* 0x14 */
- { 1, 0, NULL }, /* 0x15 */
- { 1, 0, NULL }, /* 0x16 */
- { 1, 0, NULL }, /* 0x17 */
- { 1, 0, NULL }, /* 0x18 */
- { 1, 0, NULL }, /* 0x19 */
- { 1, 0, NULL }, /* 0x1A */
- { 1, 0, NULL }, /* 0x1B */
- { 1, 0, NULL }, /* 0x1C */
- { 1, 0, NULL }, /* 0x1D */
- { 0x3F, 0x3F, aImplUniToDBCSTab_APPLECHINSIMP_1E }, /* 0x1E */
- { 1, 0, NULL }, /* 0x1F */
- { 0x14, 0x3E, aImplUniToDBCSTab_GB_20 }, /* 0x20 */
- { 0x03, 0x93, aImplUniToDBCSTab_APPLECHINSIMP_21 }, /* 0x21 */
- { 0x08, 0xEF, aImplUniToDBCSTab_GB_22 }, /* 0x22 */
- { 0x12, 0x12, aImplUniToDBCSTab_GB_23 }, /* 0x23 */
- { 0x60, 0x9B, aImplUniToDBCSTab_GB_24 }, /* 0x24 */
- { 0x00, 0xCF, aImplUniToDBCSTab_GB_25 }, /* 0x25 */
- { 0x05, 0x42, aImplUniToDBCSTab_GB_26 }, /* 0x26 */
- { 1, 0, NULL }, /* 0x27 */
- { 1, 0, NULL }, /* 0x28 */
- { 1, 0, NULL }, /* 0x29 */
- { 1, 0, NULL }, /* 0x2A */
- { 1, 0, NULL }, /* 0x2B */
- { 1, 0, NULL }, /* 0x2C */
- { 1, 0, NULL }, /* 0x2D */
- { 1, 0, NULL }, /* 0x2E */
- { 1, 0, NULL }, /* 0x2F */
- { 0x00, 0xFB, aImplUniToDBCSTab_GB_30 }, /* 0x30 */
- { 0x05, 0x29, aImplUniToDBCSTab_GB_31 }, /* 0x31 */
- { 0x20, 0x29, aImplUniToDBCSTab_GBK_32 }, /* 0x32 */
- { 1, 0, NULL }, /* 0x33 */
- { 1, 0, NULL }, /* 0x34 */
- { 1, 0, NULL }, /* 0x35 */
- { 1, 0, NULL }, /* 0x36 */
- { 1, 0, NULL }, /* 0x37 */
- { 1, 0, NULL }, /* 0x38 */
- { 1, 0, NULL }, /* 0x39 */
- { 1, 0, NULL }, /* 0x3A */
- { 1, 0, NULL }, /* 0x3B */
- { 1, 0, NULL }, /* 0x3C */
- { 1, 0, NULL }, /* 0x3D */
- { 1, 0, NULL }, /* 0x3E */
- { 1, 0, NULL }, /* 0x3F */
- { 1, 0, NULL }, /* 0x40 */
- { 1, 0, NULL }, /* 0x41 */
- { 1, 0, NULL }, /* 0x42 */
- { 1, 0, NULL }, /* 0x43 */
- { 1, 0, NULL }, /* 0x44 */
- { 1, 0, NULL }, /* 0x45 */
- { 1, 0, NULL }, /* 0x46 */
- { 1, 0, NULL }, /* 0x47 */
- { 1, 0, NULL }, /* 0x48 */
- { 1, 0, NULL }, /* 0x49 */
- { 1, 0, NULL }, /* 0x4A */
- { 1, 0, NULL }, /* 0x4B */
- { 1, 0, NULL }, /* 0x4C */
- { 1, 0, NULL }, /* 0x4D */
- { 0x00, 0xFF, aImplUniToDBCSTab_GB_4E }, /* 0x4E */
- { 0x01, 0xFE, aImplUniToDBCSTab_GB_4F }, /* 0x4F */
- { 0x0C, 0xFB, aImplUniToDBCSTab_GB_50 }, /* 0x50 */
- { 0x06, 0xFF, aImplUniToDBCSTab_GB_51 }, /* 0x51 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GB_52 }, /* 0x52 */
- { 0x00, 0xFD, aImplUniToDBCSTab_GB_53 }, /* 0x53 */
- { 0x01, 0xFF, aImplUniToDBCSTab_GB_54 }, /* 0x54 */
- { 0x01, 0xFE, aImplUniToDBCSTab_GB_55 }, /* 0x55 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GB_56 }, /* 0x56 */
- { 0x03, 0xFD, aImplUniToDBCSTab_GB_57 }, /* 0x57 */
- { 0x00, 0xF9, aImplUniToDBCSTab_GB_58 }, /* 0x58 */
- { 0x02, 0xFF, aImplUniToDBCSTab_GB_59 }, /* 0x59 */
- { 0x01, 0xF1, aImplUniToDBCSTab_GB_5A }, /* 0x5A */
- { 0x09, 0xFF, aImplUniToDBCSTab_GB_5B }, /* 0x5B */
- { 0x01, 0xFB, aImplUniToDBCSTab_GB_5C }, /* 0x5C */
- { 0x02, 0xFE, aImplUniToDBCSTab_GB_5D }, /* 0x5D */
- { 0x01, 0xFF, aImplUniToDBCSTab_GB_5E }, /* 0x5E */
- { 0x00, 0xFF, aImplUniToDBCSTab_GB_5F }, /* 0x5F */
- { 0x00, 0xFA, aImplUniToDBCSTab_GB_60 }, /* 0x60 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GB_61 }, /* 0x61 */
- { 0x06, 0xFF, aImplUniToDBCSTab_GB_62 }, /* 0x62 */
- { 0x01, 0xFF, aImplUniToDBCSTab_GB_63 }, /* 0x63 */
- { 0x00, 0xE6, aImplUniToDBCSTab_GB_64 }, /* 0x64 */
- { 0x00, 0xFA, aImplUniToDBCSTab_GB_65 }, /* 0x65 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GB_66 }, /* 0x66 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GB_67 }, /* 0x67 */
- { 0x00, 0xFC, aImplUniToDBCSTab_GB_68 }, /* 0x68 */
- { 0x01, 0xFF, aImplUniToDBCSTab_GB_69 }, /* 0x69 */
- { 0x0A, 0xAC, aImplUniToDBCSTab_GB_6A }, /* 0x6A */
- { 0x20, 0xFD, aImplUniToDBCSTab_GB_6B }, /* 0x6B */
- { 0x05, 0xFE, aImplUniToDBCSTab_GB_6C }, /* 0x6C */
- { 0x01, 0xFC, aImplUniToDBCSTab_GB_6D }, /* 0x6D */
- { 0x05, 0xF9, aImplUniToDBCSTab_GB_6E }, /* 0x6E */
- { 0x02, 0xEF, aImplUniToDBCSTab_GB_6F }, /* 0x6F */
- { 0x11, 0xFD, aImplUniToDBCSTab_GB_70 }, /* 0x70 */
- { 0x09, 0xF9, aImplUniToDBCSTab_GB_71 }, /* 0x71 */
- { 0x06, 0xFC, aImplUniToDBCSTab_GB_72 }, /* 0x72 */
- { 0x01, 0xF2, aImplUniToDBCSTab_GB_73 }, /* 0x73 */
- { 0x03, 0xFF, aImplUniToDBCSTab_GB_74 }, /* 0x74 */
- { 0x04, 0xFF, aImplUniToDBCSTab_GB_75 }, /* 0x75 */
- { 0x00, 0xFE, aImplUniToDBCSTab_GB_76 }, /* 0x76 */
- { 0x01, 0xFF, aImplUniToDBCSTab_GB_77 }, /* 0x77 */
- { 0x00, 0xFA, aImplUniToDBCSTab_GB_78 }, /* 0x78 */
- { 0x01, 0xFD, aImplUniToDBCSTab_GB_79 }, /* 0x79 */
- { 0x00, 0xFF, aImplUniToDBCSTab_GB_7A }, /* 0x7A */
- { 0x03, 0xFE, aImplUniToDBCSTab_GB_7B }, /* 0x7B */
- { 0x07, 0xFB, aImplUniToDBCSTab_GB_7C }, /* 0x7C */
- { 0x0A, 0xAE, aImplUniToDBCSTab_GB_7D }, /* 0x7D */
- { 0x3B, 0xFF, aImplUniToDBCSTab_GB_7E }, /* 0x7E */
- { 0x00, 0xFC, aImplUniToDBCSTab_GB_7F }, /* 0x7F */
- { 0x00, 0xFD, aImplUniToDBCSTab_GB_80 }, /* 0x80 */
- { 0x02, 0xFE, aImplUniToDBCSTab_GB_81 }, /* 0x81 */
- { 0x00, 0xFB, aImplUniToDBCSTab_GB_82 }, /* 0x82 */
- { 0x01, 0xFD, aImplUniToDBCSTab_GB_83 }, /* 0x83 */
- { 0x01, 0xFF, aImplUniToDBCSTab_GB_84 }, /* 0x84 */
- { 0x0C, 0xFF, aImplUniToDBCSTab_GB_85 }, /* 0x85 */
- { 0x05, 0xFE, aImplUniToDBCSTab_GB_86 }, /* 0x86 */
- { 0x00, 0xFE, aImplUniToDBCSTab_GB_87 }, /* 0x87 */
- { 0x03, 0xFE, aImplUniToDBCSTab_GB_88 }, /* 0x88 */
- { 0x02, 0xF3, aImplUniToDBCSTab_GB_89 }, /* 0x89 */
- { 0x00, 0x93, aImplUniToDBCSTab_GB_8A }, /* 0x8A */
- { 0x07, 0xFF, aImplUniToDBCSTab_GB_8B }, /* 0x8B */
- { 0x00, 0x98, aImplUniToDBCSTab_GB_8C }, /* 0x8C */
- { 0x1D, 0xFD, aImplUniToDBCSTab_GB_8D }, /* 0x8D */
- { 0x05, 0xCE, aImplUniToDBCSTab_GB_8E }, /* 0x8E */
- { 0x66, 0xFD, aImplUniToDBCSTab_GB_8F }, /* 0x8F */
- { 0x00, 0xFE, aImplUniToDBCSTab_GB_90 }, /* 0x90 */
- { 0x02, 0xDC, aImplUniToDBCSTab_GB_91 }, /* 0x91 */
- { 0x74, 0xC8, aImplUniToDBCSTab_GB_92 }, /* 0x92 */
- { 0x3E, 0xD6, aImplUniToDBCSTab_GB_93 }, /* 0x93 */
- { 0x3E, 0xFF, aImplUniToDBCSTab_GB_94 }, /* 0x94 */
- { 0x00, 0xFE, aImplUniToDBCSTab_GB_95 }, /* 0x95 */
- { 0x00, 0xFE, aImplUniToDBCSTab_GB_96 }, /* 0x96 */
- { 0x00, 0xF6, aImplUniToDBCSTab_GB_97 }, /* 0x97 */
- { 0x75, 0xE9, aImplUniToDBCSTab_GB_98 }, /* 0x98 */
- { 0x0D, 0xA8, aImplUniToDBCSTab_GB_99 }, /* 0x99 */
- { 0x6C, 0xFB, aImplUniToDBCSTab_GB_9A }, /* 0x9A */
- { 0x03, 0x54, aImplUniToDBCSTab_GB_9B }, /* 0x9B */
- { 0x7C, 0xE2, aImplUniToDBCSTab_GB_9C }, /* 0x9C */
- { 1, 0, NULL }, /* 0x9D */
- { 0x1F, 0xFE, aImplUniToDBCSTab_GB_9E }, /* 0x9E */
- { 0x0B, 0xA0, aImplUniToDBCSTab_GB_9F }, /* 0x9F */
- { 1, 0, NULL }, /* 0xA0 */
- { 1, 0, NULL }, /* 0xA1 */
- { 1, 0, NULL }, /* 0xA2 */
- { 1, 0, NULL }, /* 0xA3 */
- { 1, 0, NULL }, /* 0xA4 */
- { 1, 0, NULL }, /* 0xA5 */
- { 1, 0, NULL }, /* 0xA6 */
- { 1, 0, NULL }, /* 0xA7 */
- { 1, 0, NULL }, /* 0xA8 */
- { 1, 0, NULL }, /* 0xA9 */
- { 1, 0, NULL }, /* 0xAA */
- { 1, 0, NULL }, /* 0xAB */
- { 1, 0, NULL }, /* 0xAC */
- { 1, 0, NULL }, /* 0xAD */
- { 1, 0, NULL }, /* 0xAE */
- { 1, 0, NULL }, /* 0xAF */
- { 1, 0, NULL }, /* 0xB0 */
- { 1, 0, NULL }, /* 0xB1 */
- { 1, 0, NULL }, /* 0xB2 */
- { 1, 0, NULL }, /* 0xB3 */
- { 1, 0, NULL }, /* 0xB4 */
- { 1, 0, NULL }, /* 0xB5 */
- { 1, 0, NULL }, /* 0xB6 */
- { 1, 0, NULL }, /* 0xB7 */
- { 1, 0, NULL }, /* 0xB8 */
- { 1, 0, NULL }, /* 0xB9 */
- { 1, 0, NULL }, /* 0xBA */
- { 1, 0, NULL }, /* 0xBB */
- { 1, 0, NULL }, /* 0xBC */
- { 1, 0, NULL }, /* 0xBD */
- { 1, 0, NULL }, /* 0xBE */
- { 1, 0, NULL }, /* 0xBF */
- { 1, 0, NULL }, /* 0xC0 */
- { 1, 0, NULL }, /* 0xC1 */
- { 1, 0, NULL }, /* 0xC2 */
- { 1, 0, NULL }, /* 0xC3 */
- { 1, 0, NULL }, /* 0xC4 */
- { 1, 0, NULL }, /* 0xC5 */
- { 1, 0, NULL }, /* 0xC6 */
- { 1, 0, NULL }, /* 0xC7 */
- { 1, 0, NULL }, /* 0xC8 */
- { 1, 0, NULL }, /* 0xC9 */
- { 1, 0, NULL }, /* 0xCA */
- { 1, 0, NULL }, /* 0xCB */
- { 1, 0, NULL }, /* 0xCC */
- { 1, 0, NULL }, /* 0xCD */
- { 1, 0, NULL }, /* 0xCE */
- { 1, 0, NULL }, /* 0xCF */
- { 1, 0, NULL }, /* 0xD0 */
- { 1, 0, NULL }, /* 0xD1 */
- { 1, 0, NULL }, /* 0xD2 */
- { 1, 0, NULL }, /* 0xD3 */
- { 1, 0, NULL }, /* 0xD4 */
- { 1, 0, NULL }, /* 0xD5 */
- { 1, 0, NULL }, /* 0xD6 */
- { 1, 0, NULL }, /* 0xD7 */
- { 1, 0, NULL }, /* 0xD8 */
- { 1, 0, NULL }, /* 0xD9 */
- { 1, 0, NULL }, /* 0xDA */
- { 1, 0, NULL }, /* 0xDB */
- { 1, 0, NULL }, /* 0xDC */
- { 1, 0, NULL }, /* 0xDD */
- { 1, 0, NULL }, /* 0xDE */
- { 1, 0, NULL }, /* 0xDF */
- { 1, 0, NULL }, /* 0xE0 */
- { 1, 0, NULL }, /* 0xE1 */
- { 1, 0, NULL }, /* 0xE2 */
- { 1, 0, NULL }, /* 0xE3 */
- { 1, 0, NULL }, /* 0xE4 */
- { 1, 0, NULL }, /* 0xE5 */
- { 1, 0, NULL }, /* 0xE6 */
- { 1, 0, NULL }, /* 0xE7 */
- { 1, 0, NULL }, /* 0xE8 */
- { 1, 0, NULL }, /* 0xE9 */
- { 1, 0, NULL }, /* 0xEA */
- { 1, 0, NULL }, /* 0xEB */
- { 1, 0, NULL }, /* 0xEC */
- { 1, 0, NULL }, /* 0xED */
- { 1, 0, NULL }, /* 0xEE */
- { 1, 0, NULL }, /* 0xEF */
- { 1, 0, NULL }, /* 0xF0 */
- { 1, 0, NULL }, /* 0xF1 */
- { 1, 0, NULL }, /* 0xF2 */
- { 1, 0, NULL }, /* 0xF3 */
- { 1, 0, NULL }, /* 0xF4 */
- { 1, 0, NULL }, /* 0xF5 */
- { 1, 0, NULL }, /* 0xF6 */
- { 1, 0, NULL }, /* 0xF7 */
- { 0x80, 0x81, aImplUniToDBCSTab_APPLECHINSIMP_F8 }, /* 0xF8 */
- { 1, 0, NULL }, /* 0xF9 */
- { 1, 0, NULL }, /* 0xFA */
- { 1, 0, NULL }, /* 0xFB */
- { 1, 0, NULL }, /* 0xFC */
- { 1, 0, NULL }, /* 0xFD */
- { 0x31, 0x44, aImplUniToDBCSTab_GB_FE }, /* 0xFE */
- { 0x01, 0xE5, aImplUniToDBCSTab_GB_FF } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplDBCSConvertData const aImplAPPLECHINSIMPDBCSCvtData =
-{
- aAPPLECHINSIMPUniLeadTab,
- aAPPLECHINSIMPDBCSHighTab,
- 0x00, 0xFF,
- 0xA1, 0xFE,
- NULL,
- 0
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplAPPLECHINSIMPTextEncodingData
- = { { &aImplAPPLECHINSIMPDBCSCvtData,
- ImplDBCSToUnicode,
- ImplUnicodeToDBCS,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 2,
- 2,
- 134,
- "euc-cn",
- "gb2312",
- RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MULTIBYTE };
- /* MAC, SCRIPT_CHINESE_SIMPLIFIED, pc code page 936, mac encoding 25 */
diff --git a/sal/textenc/tcvtsym1.tab b/sal/textenc/tcvtsym1.tab
deleted file mode 100644
index 0e9bd5612..000000000
--- a/sal/textenc/tcvtsym1.tab
+++ /dev/null
@@ -1,47 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* Symbol Font Encodings */
-
-static ImplTextEncodingData const aImplSYMBOLTextEncodingData
- = { { NULL,
- ImplSymbolToUnicode,
- ImplUnicodeToSymbol,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 1,
- 1,
- 2,
- "adobe-fontspecific",
- "invariant",
- RTL_TEXTENCODING_INFO_SYMBOL };
- /* SCRIPT_SYMBOL, pc code page 65400, mac encoding 32 */
diff --git a/sal/textenc/tcvttcn1.tab b/sal/textenc/tcvttcn1.tab
deleted file mode 100644
index 2c59bb56f..000000000
--- a/sal/textenc/tcvttcn1.tab
+++ /dev/null
@@ -1,2894 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the DBCS to UniCode tables for the following */
-/* chinese traditional (Taiwan/HongKong) charsets: */
-/* BIG5, MS950, APPLE_CHINTRAD */
-
-/* ======================================================================= */
-
-/* Changes: */
-/* A1_45: MS950 == 0x2027, APPLE_CHINTRAD == 0x00B7 - we use in all systems 0x2027 for better MS compatibility */
-/* A1_4B: MS950 == 0x2026, APPLE_CHINTRAD == 0x22EF - we use in all systems 0x2026 for better MS compatibility */
-/* A1_4B: MS950 == 0x2026, APPLE_CHINTRAD == 0x22EF - we use in all systems 0x2026 for better MS compatibility */
-/* A1_C2: MS950 == 0x00AF, APPLE_CHINTRAD == 0x203E - we use in all systems 0x00AF for better MS compatibility */
-/* A1_E3: MS950 == 0xFF5E, APPLE_CHINTRAD == 0x223C - we use in all systems 0xFF5E for better MS compatibility */
-/* A1_F3: MS950 == 0x2299, APPLE_CHINTRAD == 0x2609 - we use in all systems 0x2299 for better MS compatibility */
-/* A1_4D-A1_54, A1_5A, A1_75-A1_76, A1_A1-A1_A4, A1_C3, A1_C5, A1_CB, A1_FE: is MS950 extension */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_A1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x3000, 0xFF0C, 0x3001, 0x3002, 0xFF0E, 0x2027, 0xFF1B, 0xFF1A, /* 0x40 */
- 0xFF1F, 0xFF01, 0xFE30, 0x2026, 0x2025, 0xFE50, 0xFE51, 0xFE52, /* 0x40 */
- 0x00B7, 0xFE54, 0xFE55, 0xFE56, 0xFE57, 0xFF5C, 0x2013, 0xFE31, /* 0x50 */
- 0x2014, 0xFE33, 0x2574, 0xFE34, 0xFE4F, 0xFF08, 0xFF09, 0xFE35, /* 0x50 */
- 0xFE36, 0xFF5B, 0xFF5D, 0xFE37, 0xFE38, 0x3014, 0x3015, 0xFE39, /* 0x60 */
- 0xFE3A, 0x3010, 0x3011, 0xFE3B, 0xFE3C, 0x300A, 0x300B, 0xFE3D, /* 0x60 */
- 0xFE3E, 0x3008, 0x3009, 0xFE3F, 0xFE40, 0x300C, 0x300D, 0xFE41, /* 0x70 */
- 0xFE42, 0x300E, 0x300F, 0xFE43, 0xFE44, 0xFE59, 0xFE5A, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0xFE5B, 0xFE5C, 0xFE5D, 0xFE5E, 0x2018, 0x2019, 0x201C, /* 0xA0 */
- 0x201D, 0x301D, 0x301E, 0x2035, 0x2032, 0xFF03, 0xFF06, 0xFF0A, /* 0xA0 */
- 0x203B, 0x00A7, 0x3003, 0x25CB, 0x25CF, 0x25B3, 0x25B2, 0x25CE, /* 0xB0 */
- 0x2606, 0x2605, 0x25C7, 0x25C6, 0x25A1, 0x25A0, 0x25BD, 0x25BC, /* 0xB0 */
- 0x32A3, 0x2105, 0x00AF, 0xFFE3, 0xFF3F, 0x02CD, 0xFE49, 0xFE4A, /* 0xC0 */
- 0xFE4D, 0xFE4E, 0xFE4B, 0xFE4C, 0xFE5F, 0xFE60, 0xFE61, 0xFF0B, /* 0xC0 */
- 0xFF0D, 0x00D7, 0x00F7, 0x00B1, 0x221A, 0xFF1C, 0xFF1E, 0xFF1D, /* 0xD0 */
- 0x2266, 0x2267, 0x2260, 0x221E, 0x2252, 0x2261, 0xFE62, 0xFE63, /* 0xD0 */
- 0xFE64, 0xFE65, 0xFE66, 0xFF5E, 0x2229, 0x222A, 0x22A5, 0x2220, /* 0xE0 */
- 0x221F, 0x22BF, 0x33D2, 0x33D1, 0x222B, 0x222E, 0x2235, 0x2234, /* 0xE0 */
- 0x2640, 0x2642, 0x2295, 0x2299, 0x2191, 0x2193, 0x2190, 0x2192, /* 0xF0 */
- 0x2196, 0x2197, 0x2199, 0x2198, 0x2225, 0x2223, 0xFF0F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* A2_41: MS950 == 0x2215, APPLE_CHINTRAD == 0xFF0F - we use in all systems 0x2215 for better MS compatibility */
-/* A2_42: MS950 == 0xFE68, APPLE_CHINTRAD == 0xFF3C - we use in all systems 0xFE68 for better MS compatibility */
-/* A2_44: MS950 == 0xFFE5, APPLE_CHINTRAD == 0x00A5 - we use in all systems 0xFFE5 for better MS compatibility */
-/* A2_44: MS950 == 0xFFE5, APPLE_CHINTRAD == 0x00A5 - we use in all systems 0xFFE5 for better MS compatibility */
-/* A2_46: MS950 == 0xFFE0, APPLE_CHINTRAD == 0x00A2 - we use in all systems 0xFFE0 for better MS compatibility */
-/* A2_47: MS950 == 0xFFE1, APPLE_CHINTRAD == 0x00A3 - we use in all systems 0xFFE1 for better MS compatibility */
-/* A2_47: MS950 == 0xFFE1, APPLE_CHINTRAD == 0x00A3 - we use in all systems 0xFFE1 for better MS compatibility */
-/* A2_40, A2_79, A2_CC, A2_CE: is MS950 extension */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_A2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFF3C, 0x2215, 0xFE68, 0xFF04, 0xFFE5, 0x3012, 0xFFE0, 0xFFE1, /* 0x40 */
- 0xFF05, 0xFF20, 0x2103, 0x2109, 0xFE69, 0xFE6A, 0xFE6B, 0x33D5, /* 0x40 */
- 0x339C, 0x339D, 0x339E, 0x33CE, 0x33A1, 0x338E, 0x338F, 0x33C4, /* 0x50 */
- 0x00B0, 0x5159, 0x515B, 0x515E, 0x515D, 0x5161, 0x5163, 0x55E7, /* 0x50 */
- 0x74E9, 0x7CCE, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, /* 0x60 */
- 0x2587, 0x2588, 0x258F, 0x258E, 0x258D, 0x258C, 0x258B, 0x258A, /* 0x60 */
- 0x2589, 0x253C, 0x2534, 0x252C, 0x2524, 0x251C, 0x2594, 0x2500, /* 0x70 */
- 0x2502, 0x2595, 0x250C, 0x2510, 0x2514, 0x2518, 0x256D, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x256E, 0x2570, 0x256F, 0x2550, 0x255E, 0x256A, 0x2561, /* 0xA0 */
- 0x25E2, 0x25E3, 0x25E5, 0x25E4, 0x2571, 0x2572, 0x2573, 0xFF10, /* 0xA0 */
- 0xFF11, 0xFF12, 0xFF13, 0xFF14, 0xFF15, 0xFF16, 0xFF17, 0xFF18, /* 0xB0 */
- 0xFF19, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, /* 0xB0 */
- 0x2167, 0x2168, 0x2169, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, /* 0xC0 */
- 0x3026, 0x3027, 0x3028, 0x3029, 0x5341, 0x5344, 0x5345, 0xFF21, /* 0xC0 */
- 0xFF22, 0xFF23, 0xFF24, 0xFF25, 0xFF26, 0xFF27, 0xFF28, 0xFF29, /* 0xD0 */
- 0xFF2A, 0xFF2B, 0xFF2C, 0xFF2D, 0xFF2E, 0xFF2F, 0xFF30, 0xFF31, /* 0xD0 */
- 0xFF32, 0xFF33, 0xFF34, 0xFF35, 0xFF36, 0xFF37, 0xFF38, 0xFF39, /* 0xE0 */
- 0xFF3A, 0xFF41, 0xFF42, 0xFF43, 0xFF44, 0xFF45, 0xFF46, 0xFF47, /* 0xE0 */
- 0xFF48, 0xFF49, 0xFF4A, 0xFF4B, 0xFF4C, 0xFF4D, 0xFF4E, 0xFF4F, /* 0xF0 */
- 0xFF50, 0xFF51, 0xFF52, 0xFF53, 0xFF54, 0xFF55, 0xFF56 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* Added EURO SIGN from cp950.txt (01/07/2000) at 0xA3E1 */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_A3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xFF57, 0xFF58, 0xFF59, 0xFF5A, 0x0391, 0x0392, 0x0393, 0x0394, /* 0x40 */
- 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, /* 0x40 */
- 0x039D, 0x039E, 0x039F, 0x03A0, 0x03A1, 0x03A3, 0x03A4, 0x03A5, /* 0x50 */
- 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03B1, 0x03B2, 0x03B3, 0x03B4, /* 0x50 */
- 0x03B5, 0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, /* 0x60 */
- 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C4, 0x03C5, /* 0x60 */
- 0x03C6, 0x03C7, 0x03C8, 0x03C9, 0x3105, 0x3106, 0x3107, 0x3108, /* 0x70 */
- 0x3109, 0x310A, 0x310B, 0x310C, 0x310D, 0x310E, 0x310F, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x3110, 0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, /* 0xA0 */
- 0x3117, 0x3118, 0x3119, 0x311A, 0x311B, 0x311C, 0x311D, 0x311E, /* 0xA0 */
- 0x311F, 0x3120, 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, /* 0xB0 */
- 0x3127, 0x3128, 0x3129, 0x02D9, 0x02C9, 0x02CA, 0x02C7, 0x02CB, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0x20AC, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_A4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4E00, 0x4E59, 0x4E01, 0x4E03, 0x4E43, 0x4E5D, 0x4E86, 0x4E8C, /* 0x40 */
- 0x4EBA, 0x513F, 0x5165, 0x516B, 0x51E0, 0x5200, 0x5201, 0x529B, /* 0x40 */
- 0x5315, 0x5341, 0x535C, 0x53C8, 0x4E09, 0x4E0B, 0x4E08, 0x4E0A, /* 0x50 */
- 0x4E2B, 0x4E38, 0x51E1, 0x4E45, 0x4E48, 0x4E5F, 0x4E5E, 0x4E8E, /* 0x50 */
- 0x4EA1, 0x5140, 0x5203, 0x52FA, 0x5343, 0x53C9, 0x53E3, 0x571F, /* 0x60 */
- 0x58EB, 0x5915, 0x5927, 0x5973, 0x5B50, 0x5B51, 0x5B53, 0x5BF8, /* 0x60 */
- 0x5C0F, 0x5C22, 0x5C38, 0x5C71, 0x5DDD, 0x5DE5, 0x5DF1, 0x5DF2, /* 0x70 */
- 0x5DF3, 0x5DFE, 0x5E72, 0x5EFE, 0x5F0B, 0x5F13, 0x624D, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x4E11, 0x4E10, 0x4E0D, 0x4E2D, 0x4E30, 0x4E39, 0x4E4B, /* 0xA0 */
- 0x5C39, 0x4E88, 0x4E91, 0x4E95, 0x4E92, 0x4E94, 0x4EA2, 0x4EC1, /* 0xA0 */
- 0x4EC0, 0x4EC3, 0x4EC6, 0x4EC7, 0x4ECD, 0x4ECA, 0x4ECB, 0x4EC4, /* 0xB0 */
- 0x5143, 0x5141, 0x5167, 0x516D, 0x516E, 0x516C, 0x5197, 0x51F6, /* 0xB0 */
- 0x5206, 0x5207, 0x5208, 0x52FB, 0x52FE, 0x52FF, 0x5316, 0x5339, /* 0xC0 */
- 0x5348, 0x5347, 0x5345, 0x535E, 0x5384, 0x53CB, 0x53CA, 0x53CD, /* 0xC0 */
- 0x58EC, 0x5929, 0x592B, 0x592A, 0x592D, 0x5B54, 0x5C11, 0x5C24, /* 0xD0 */
- 0x5C3A, 0x5C6F, 0x5DF4, 0x5E7B, 0x5EFF, 0x5F14, 0x5F15, 0x5FC3, /* 0xD0 */
- 0x6208, 0x6236, 0x624B, 0x624E, 0x652F, 0x6587, 0x6597, 0x65A4, /* 0xE0 */
- 0x65B9, 0x65E5, 0x66F0, 0x6708, 0x6728, 0x6B20, 0x6B62, 0x6B79, /* 0xE0 */
- 0x6BCB, 0x6BD4, 0x6BDB, 0x6C0F, 0x6C34, 0x706B, 0x722A, 0x7236, /* 0xF0 */
- 0x723B, 0x7247, 0x7259, 0x725B, 0x72AC, 0x738B, 0x4E19 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_A5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4E16, 0x4E15, 0x4E14, 0x4E18, 0x4E3B, 0x4E4D, 0x4E4F, 0x4E4E, /* 0x40 */
- 0x4EE5, 0x4ED8, 0x4ED4, 0x4ED5, 0x4ED6, 0x4ED7, 0x4EE3, 0x4EE4, /* 0x40 */
- 0x4ED9, 0x4EDE, 0x5145, 0x5144, 0x5189, 0x518A, 0x51AC, 0x51F9, /* 0x50 */
- 0x51FA, 0x51F8, 0x520A, 0x52A0, 0x529F, 0x5305, 0x5306, 0x5317, /* 0x50 */
- 0x531D, 0x4EDF, 0x534A, 0x5349, 0x5361, 0x5360, 0x536F, 0x536E, /* 0x60 */
- 0x53BB, 0x53EF, 0x53E4, 0x53F3, 0x53EC, 0x53EE, 0x53E9, 0x53E8, /* 0x60 */
- 0x53FC, 0x53F8, 0x53F5, 0x53EB, 0x53E6, 0x53EA, 0x53F2, 0x53F1, /* 0x70 */
- 0x53F0, 0x53E5, 0x53ED, 0x53FB, 0x56DB, 0x56DA, 0x5916, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x592E, 0x5931, 0x5974, 0x5976, 0x5B55, 0x5B83, 0x5C3C, /* 0xA0 */
- 0x5DE8, 0x5DE7, 0x5DE6, 0x5E02, 0x5E03, 0x5E73, 0x5E7C, 0x5F01, /* 0xA0 */
- 0x5F18, 0x5F17, 0x5FC5, 0x620A, 0x6253, 0x6254, 0x6252, 0x6251, /* 0xB0 */
- 0x65A5, 0x65E6, 0x672E, 0x672C, 0x672A, 0x672B, 0x672D, 0x6B63, /* 0xB0 */
- 0x6BCD, 0x6C11, 0x6C10, 0x6C38, 0x6C41, 0x6C40, 0x6C3E, 0x72AF, /* 0xC0 */
- 0x7384, 0x7389, 0x74DC, 0x74E6, 0x7518, 0x751F, 0x7528, 0x7529, /* 0xC0 */
- 0x7530, 0x7531, 0x7532, 0x7533, 0x758B, 0x767D, 0x76AE, 0x76BF, /* 0xD0 */
- 0x76EE, 0x77DB, 0x77E2, 0x77F3, 0x793A, 0x79BE, 0x7A74, 0x7ACB, /* 0xD0 */
- 0x4E1E, 0x4E1F, 0x4E52, 0x4E53, 0x4E69, 0x4E99, 0x4EA4, 0x4EA6, /* 0xE0 */
- 0x4EA5, 0x4EFF, 0x4F09, 0x4F19, 0x4F0A, 0x4F15, 0x4F0D, 0x4F10, /* 0xE0 */
- 0x4F11, 0x4F0F, 0x4EF2, 0x4EF6, 0x4EFB, 0x4EF0, 0x4EF3, 0x4EFD, /* 0xF0 */
- 0x4F01, 0x4F0B, 0x5149, 0x5147, 0x5146, 0x5148, 0x5168 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_A6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5171, 0x518D, 0x51B0, 0x5217, 0x5211, 0x5212, 0x520E, 0x5216, /* 0x40 */
- 0x52A3, 0x5308, 0x5321, 0x5320, 0x5370, 0x5371, 0x5409, 0x540F, /* 0x40 */
- 0x540C, 0x540A, 0x5410, 0x5401, 0x540B, 0x5404, 0x5411, 0x540D, /* 0x50 */
- 0x5408, 0x5403, 0x540E, 0x5406, 0x5412, 0x56E0, 0x56DE, 0x56DD, /* 0x50 */
- 0x5733, 0x5730, 0x5728, 0x572D, 0x572C, 0x572F, 0x5729, 0x5919, /* 0x60 */
- 0x591A, 0x5937, 0x5938, 0x5984, 0x5978, 0x5983, 0x597D, 0x5979, /* 0x60 */
- 0x5982, 0x5981, 0x5B57, 0x5B58, 0x5B87, 0x5B88, 0x5B85, 0x5B89, /* 0x70 */
- 0x5BFA, 0x5C16, 0x5C79, 0x5DDE, 0x5E06, 0x5E76, 0x5E74, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x5F0F, 0x5F1B, 0x5FD9, 0x5FD6, 0x620E, 0x620C, 0x620D, /* 0xA0 */
- 0x6210, 0x6263, 0x625B, 0x6258, 0x6536, 0x65E9, 0x65E8, 0x65EC, /* 0xA0 */
- 0x65ED, 0x66F2, 0x66F3, 0x6709, 0x673D, 0x6734, 0x6731, 0x6735, /* 0xB0 */
- 0x6B21, 0x6B64, 0x6B7B, 0x6C16, 0x6C5D, 0x6C57, 0x6C59, 0x6C5F, /* 0xB0 */
- 0x6C60, 0x6C50, 0x6C55, 0x6C61, 0x6C5B, 0x6C4D, 0x6C4E, 0x7070, /* 0xC0 */
- 0x725F, 0x725D, 0x767E, 0x7AF9, 0x7C73, 0x7CF8, 0x7F36, 0x7F8A, /* 0xC0 */
- 0x7FBD, 0x8001, 0x8003, 0x800C, 0x8012, 0x8033, 0x807F, 0x8089, /* 0xD0 */
- 0x808B, 0x808C, 0x81E3, 0x81EA, 0x81F3, 0x81FC, 0x820C, 0x821B, /* 0xD0 */
- 0x821F, 0x826E, 0x8272, 0x827E, 0x866B, 0x8840, 0x884C, 0x8863, /* 0xE0 */
- 0x897F, 0x9621, 0x4E32, 0x4EA8, 0x4F4D, 0x4F4F, 0x4F47, 0x4F57, /* 0xE0 */
- 0x4F5E, 0x4F34, 0x4F5B, 0x4F55, 0x4F30, 0x4F50, 0x4F51, 0x4F3D, /* 0xF0 */
- 0x4F3A, 0x4F38, 0x4F43, 0x4F54, 0x4F3C, 0x4F46, 0x4F63 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_A7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4F5C, 0x4F60, 0x4F2F, 0x4F4E, 0x4F36, 0x4F59, 0x4F5D, 0x4F48, /* 0x40 */
- 0x4F5A, 0x514C, 0x514B, 0x514D, 0x5175, 0x51B6, 0x51B7, 0x5225, /* 0x40 */
- 0x5224, 0x5229, 0x522A, 0x5228, 0x52AB, 0x52A9, 0x52AA, 0x52AC, /* 0x50 */
- 0x5323, 0x5373, 0x5375, 0x541D, 0x542D, 0x541E, 0x543E, 0x5426, /* 0x50 */
- 0x544E, 0x5427, 0x5446, 0x5443, 0x5433, 0x5448, 0x5442, 0x541B, /* 0x60 */
- 0x5429, 0x544A, 0x5439, 0x543B, 0x5438, 0x542E, 0x5435, 0x5436, /* 0x60 */
- 0x5420, 0x543C, 0x5440, 0x5431, 0x542B, 0x541F, 0x542C, 0x56EA, /* 0x70 */
- 0x56F0, 0x56E4, 0x56EB, 0x574A, 0x5751, 0x5740, 0x574D, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x5747, 0x574E, 0x573E, 0x5750, 0x574F, 0x573B, 0x58EF, /* 0xA0 */
- 0x593E, 0x599D, 0x5992, 0x59A8, 0x599E, 0x59A3, 0x5999, 0x5996, /* 0xA0 */
- 0x598D, 0x59A4, 0x5993, 0x598A, 0x59A5, 0x5B5D, 0x5B5C, 0x5B5A, /* 0xB0 */
- 0x5B5B, 0x5B8C, 0x5B8B, 0x5B8F, 0x5C2C, 0x5C40, 0x5C41, 0x5C3F, /* 0xB0 */
- 0x5C3E, 0x5C90, 0x5C91, 0x5C94, 0x5C8C, 0x5DEB, 0x5E0C, 0x5E8F, /* 0xC0 */
- 0x5E87, 0x5E8A, 0x5EF7, 0x5F04, 0x5F1F, 0x5F64, 0x5F62, 0x5F77, /* 0xC0 */
- 0x5F79, 0x5FD8, 0x5FCC, 0x5FD7, 0x5FCD, 0x5FF1, 0x5FEB, 0x5FF8, /* 0xD0 */
- 0x5FEA, 0x6212, 0x6211, 0x6284, 0x6297, 0x6296, 0x6280, 0x6276, /* 0xD0 */
- 0x6289, 0x626D, 0x628A, 0x627C, 0x627E, 0x6279, 0x6273, 0x6292, /* 0xE0 */
- 0x626F, 0x6298, 0x626E, 0x6295, 0x6293, 0x6291, 0x6286, 0x6539, /* 0xE0 */
- 0x653B, 0x6538, 0x65F1, 0x66F4, 0x675F, 0x674E, 0x674F, 0x6750, /* 0xF0 */
- 0x6751, 0x675C, 0x6756, 0x675E, 0x6749, 0x6746, 0x6760 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_A8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6753, 0x6757, 0x6B65, 0x6BCF, 0x6C42, 0x6C5E, 0x6C99, 0x6C81, /* 0x40 */
- 0x6C88, 0x6C89, 0x6C85, 0x6C9B, 0x6C6A, 0x6C7A, 0x6C90, 0x6C70, /* 0x40 */
- 0x6C8C, 0x6C68, 0x6C96, 0x6C92, 0x6C7D, 0x6C83, 0x6C72, 0x6C7E, /* 0x50 */
- 0x6C74, 0x6C86, 0x6C76, 0x6C8D, 0x6C94, 0x6C98, 0x6C82, 0x7076, /* 0x50 */
- 0x707C, 0x707D, 0x7078, 0x7262, 0x7261, 0x7260, 0x72C4, 0x72C2, /* 0x60 */
- 0x7396, 0x752C, 0x752B, 0x7537, 0x7538, 0x7682, 0x76EF, 0x77E3, /* 0x60 */
- 0x79C1, 0x79C0, 0x79BF, 0x7A76, 0x7CFB, 0x7F55, 0x8096, 0x8093, /* 0x70 */
- 0x809D, 0x8098, 0x809B, 0x809A, 0x80B2, 0x826F, 0x8292, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x828B, 0x828D, 0x898B, 0x89D2, 0x8A00, 0x8C37, 0x8C46, /* 0xA0 */
- 0x8C55, 0x8C9D, 0x8D64, 0x8D70, 0x8DB3, 0x8EAB, 0x8ECA, 0x8F9B, /* 0xA0 */
- 0x8FB0, 0x8FC2, 0x8FC6, 0x8FC5, 0x8FC4, 0x5DE1, 0x9091, 0x90A2, /* 0xB0 */
- 0x90AA, 0x90A6, 0x90A3, 0x9149, 0x91C6, 0x91CC, 0x9632, 0x962E, /* 0xB0 */
- 0x9631, 0x962A, 0x962C, 0x4E26, 0x4E56, 0x4E73, 0x4E8B, 0x4E9B, /* 0xC0 */
- 0x4E9E, 0x4EAB, 0x4EAC, 0x4F6F, 0x4F9D, 0x4F8D, 0x4F73, 0x4F7F, /* 0xC0 */
- 0x4F6C, 0x4F9B, 0x4F8B, 0x4F86, 0x4F83, 0x4F70, 0x4F75, 0x4F88, /* 0xD0 */
- 0x4F69, 0x4F7B, 0x4F96, 0x4F7E, 0x4F8F, 0x4F91, 0x4F7A, 0x5154, /* 0xD0 */
- 0x5152, 0x5155, 0x5169, 0x5177, 0x5176, 0x5178, 0x51BD, 0x51FD, /* 0xE0 */
- 0x523B, 0x5238, 0x5237, 0x523A, 0x5230, 0x522E, 0x5236, 0x5241, /* 0xE0 */
- 0x52BE, 0x52BB, 0x5352, 0x5354, 0x5353, 0x5351, 0x5366, 0x5377, /* 0xF0 */
- 0x5378, 0x5379, 0x53D6, 0x53D4, 0x53D7, 0x5473, 0x5475 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_A9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5496, 0x5478, 0x5495, 0x5480, 0x547B, 0x5477, 0x5484, 0x5492, /* 0x40 */
- 0x5486, 0x547C, 0x5490, 0x5471, 0x5476, 0x548C, 0x549A, 0x5462, /* 0x40 */
- 0x5468, 0x548B, 0x547D, 0x548E, 0x56FA, 0x5783, 0x5777, 0x576A, /* 0x50 */
- 0x5769, 0x5761, 0x5766, 0x5764, 0x577C, 0x591C, 0x5949, 0x5947, /* 0x50 */
- 0x5948, 0x5944, 0x5954, 0x59BE, 0x59BB, 0x59D4, 0x59B9, 0x59AE, /* 0x60 */
- 0x59D1, 0x59C6, 0x59D0, 0x59CD, 0x59CB, 0x59D3, 0x59CA, 0x59AF, /* 0x60 */
- 0x59B3, 0x59D2, 0x59C5, 0x5B5F, 0x5B64, 0x5B63, 0x5B97, 0x5B9A, /* 0x70 */
- 0x5B98, 0x5B9C, 0x5B99, 0x5B9B, 0x5C1A, 0x5C48, 0x5C45, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x5C46, 0x5CB7, 0x5CA1, 0x5CB8, 0x5CA9, 0x5CAB, 0x5CB1, /* 0xA0 */
- 0x5CB3, 0x5E18, 0x5E1A, 0x5E16, 0x5E15, 0x5E1B, 0x5E11, 0x5E78, /* 0xA0 */
- 0x5E9A, 0x5E97, 0x5E9C, 0x5E95, 0x5E96, 0x5EF6, 0x5F26, 0x5F27, /* 0xB0 */
- 0x5F29, 0x5F80, 0x5F81, 0x5F7F, 0x5F7C, 0x5FDD, 0x5FE0, 0x5FFD, /* 0xB0 */
- 0x5FF5, 0x5FFF, 0x600F, 0x6014, 0x602F, 0x6035, 0x6016, 0x602A, /* 0xC0 */
- 0x6015, 0x6021, 0x6027, 0x6029, 0x602B, 0x601B, 0x6216, 0x6215, /* 0xC0 */
- 0x623F, 0x623E, 0x6240, 0x627F, 0x62C9, 0x62CC, 0x62C4, 0x62BF, /* 0xD0 */
- 0x62C2, 0x62B9, 0x62D2, 0x62DB, 0x62AB, 0x62D3, 0x62D4, 0x62CB, /* 0xD0 */
- 0x62C8, 0x62A8, 0x62BD, 0x62BC, 0x62D0, 0x62D9, 0x62C7, 0x62CD, /* 0xE0 */
- 0x62B5, 0x62DA, 0x62B1, 0x62D8, 0x62D6, 0x62D7, 0x62C6, 0x62AC, /* 0xE0 */
- 0x62CE, 0x653E, 0x65A7, 0x65BC, 0x65FA, 0x6614, 0x6613, 0x660C, /* 0xF0 */
- 0x6606, 0x6602, 0x660E, 0x6600, 0x660F, 0x6615, 0x660A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_AA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6607, 0x670D, 0x670B, 0x676D, 0x678B, 0x6795, 0x6771, 0x679C, /* 0x40 */
- 0x6773, 0x6777, 0x6787, 0x679D, 0x6797, 0x676F, 0x6770, 0x677F, /* 0x40 */
- 0x6789, 0x677E, 0x6790, 0x6775, 0x679A, 0x6793, 0x677C, 0x676A, /* 0x50 */
- 0x6772, 0x6B23, 0x6B66, 0x6B67, 0x6B7F, 0x6C13, 0x6C1B, 0x6CE3, /* 0x50 */
- 0x6CE8, 0x6CF3, 0x6CB1, 0x6CCC, 0x6CE5, 0x6CB3, 0x6CBD, 0x6CBE, /* 0x60 */
- 0x6CBC, 0x6CE2, 0x6CAB, 0x6CD5, 0x6CD3, 0x6CB8, 0x6CC4, 0x6CB9, /* 0x60 */
- 0x6CC1, 0x6CAE, 0x6CD7, 0x6CC5, 0x6CF1, 0x6CBF, 0x6CBB, 0x6CE1, /* 0x70 */
- 0x6CDB, 0x6CCA, 0x6CAC, 0x6CEF, 0x6CDC, 0x6CD6, 0x6CE0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x7095, 0x708E, 0x7092, 0x708A, 0x7099, 0x722C, 0x722D, /* 0xA0 */
- 0x7238, 0x7248, 0x7267, 0x7269, 0x72C0, 0x72CE, 0x72D9, 0x72D7, /* 0xA0 */
- 0x72D0, 0x73A9, 0x73A8, 0x739F, 0x73AB, 0x73A5, 0x753D, 0x759D, /* 0xB0 */
- 0x7599, 0x759A, 0x7684, 0x76C2, 0x76F2, 0x76F4, 0x77E5, 0x77FD, /* 0xB0 */
- 0x793E, 0x7940, 0x7941, 0x79C9, 0x79C8, 0x7A7A, 0x7A79, 0x7AFA, /* 0xC0 */
- 0x7CFE, 0x7F54, 0x7F8C, 0x7F8B, 0x8005, 0x80BA, 0x80A5, 0x80A2, /* 0xC0 */
- 0x80B1, 0x80A1, 0x80AB, 0x80A9, 0x80B4, 0x80AA, 0x80AF, 0x81E5, /* 0xD0 */
- 0x81FE, 0x820D, 0x82B3, 0x829D, 0x8299, 0x82AD, 0x82BD, 0x829F, /* 0xD0 */
- 0x82B9, 0x82B1, 0x82AC, 0x82A5, 0x82AF, 0x82B8, 0x82A3, 0x82B0, /* 0xE0 */
- 0x82BE, 0x82B7, 0x864E, 0x8671, 0x521D, 0x8868, 0x8ECB, 0x8FCE, /* 0xE0 */
- 0x8FD4, 0x8FD1, 0x90B5, 0x90B8, 0x90B1, 0x90B6, 0x91C7, 0x91D1, /* 0xF0 */
- 0x9577, 0x9580, 0x961C, 0x9640, 0x963F, 0x963B, 0x9644 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_AB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9642, 0x96B9, 0x96E8, 0x9752, 0x975E, 0x4E9F, 0x4EAD, 0x4EAE, /* 0x40 */
- 0x4FE1, 0x4FB5, 0x4FAF, 0x4FBF, 0x4FE0, 0x4FD1, 0x4FCF, 0x4FDD, /* 0x40 */
- 0x4FC3, 0x4FB6, 0x4FD8, 0x4FDF, 0x4FCA, 0x4FD7, 0x4FAE, 0x4FD0, /* 0x50 */
- 0x4FC4, 0x4FC2, 0x4FDA, 0x4FCE, 0x4FDE, 0x4FB7, 0x5157, 0x5192, /* 0x50 */
- 0x5191, 0x51A0, 0x524E, 0x5243, 0x524A, 0x524D, 0x524C, 0x524B, /* 0x60 */
- 0x5247, 0x52C7, 0x52C9, 0x52C3, 0x52C1, 0x530D, 0x5357, 0x537B, /* 0x60 */
- 0x539A, 0x53DB, 0x54AC, 0x54C0, 0x54A8, 0x54CE, 0x54C9, 0x54B8, /* 0x70 */
- 0x54A6, 0x54B3, 0x54C7, 0x54C2, 0x54BD, 0x54AA, 0x54C1, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x54C4, 0x54C8, 0x54AF, 0x54AB, 0x54B1, 0x54BB, 0x54A9, /* 0xA0 */
- 0x54A7, 0x54BF, 0x56FF, 0x5782, 0x578B, 0x57A0, 0x57A3, 0x57A2, /* 0xA0 */
- 0x57CE, 0x57AE, 0x5793, 0x5955, 0x5951, 0x594F, 0x594E, 0x5950, /* 0xB0 */
- 0x59DC, 0x59D8, 0x59FF, 0x59E3, 0x59E8, 0x5A03, 0x59E5, 0x59EA, /* 0xB0 */
- 0x59DA, 0x59E6, 0x5A01, 0x59FB, 0x5B69, 0x5BA3, 0x5BA6, 0x5BA4, /* 0xC0 */
- 0x5BA2, 0x5BA5, 0x5C01, 0x5C4E, 0x5C4F, 0x5C4D, 0x5C4B, 0x5CD9, /* 0xC0 */
- 0x5CD2, 0x5DF7, 0x5E1D, 0x5E25, 0x5E1F, 0x5E7D, 0x5EA0, 0x5EA6, /* 0xD0 */
- 0x5EFA, 0x5F08, 0x5F2D, 0x5F65, 0x5F88, 0x5F85, 0x5F8A, 0x5F8B, /* 0xD0 */
- 0x5F87, 0x5F8C, 0x5F89, 0x6012, 0x601D, 0x6020, 0x6025, 0x600E, /* 0xE0 */
- 0x6028, 0x604D, 0x6070, 0x6068, 0x6062, 0x6046, 0x6043, 0x606C, /* 0xE0 */
- 0x606B, 0x606A, 0x6064, 0x6241, 0x62DC, 0x6316, 0x6309, 0x62FC, /* 0xF0 */
- 0x62ED, 0x6301, 0x62EE, 0x62FD, 0x6307, 0x62F1, 0x62F7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_AC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x62EF, 0x62EC, 0x62FE, 0x62F4, 0x6311, 0x6302, 0x653F, 0x6545, /* 0x40 */
- 0x65AB, 0x65BD, 0x65E2, 0x6625, 0x662D, 0x6620, 0x6627, 0x662F, /* 0x40 */
- 0x661F, 0x6628, 0x6631, 0x6624, 0x66F7, 0x67FF, 0x67D3, 0x67F1, /* 0x50 */
- 0x67D4, 0x67D0, 0x67EC, 0x67B6, 0x67AF, 0x67F5, 0x67E9, 0x67EF, /* 0x50 */
- 0x67C4, 0x67D1, 0x67B4, 0x67DA, 0x67E5, 0x67B8, 0x67CF, 0x67DE, /* 0x60 */
- 0x67F3, 0x67B0, 0x67D9, 0x67E2, 0x67DD, 0x67D2, 0x6B6A, 0x6B83, /* 0x60 */
- 0x6B86, 0x6BB5, 0x6BD2, 0x6BD7, 0x6C1F, 0x6CC9, 0x6D0B, 0x6D32, /* 0x70 */
- 0x6D2A, 0x6D41, 0x6D25, 0x6D0C, 0x6D31, 0x6D1E, 0x6D17, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x6D3B, 0x6D3D, 0x6D3E, 0x6D36, 0x6D1B, 0x6CF5, 0x6D39, /* 0xA0 */
- 0x6D27, 0x6D38, 0x6D29, 0x6D2E, 0x6D35, 0x6D0E, 0x6D2B, 0x70AB, /* 0xA0 */
- 0x70BA, 0x70B3, 0x70AC, 0x70AF, 0x70AD, 0x70B8, 0x70AE, 0x70A4, /* 0xB0 */
- 0x7230, 0x7272, 0x726F, 0x7274, 0x72E9, 0x72E0, 0x72E1, 0x73B7, /* 0xB0 */
- 0x73CA, 0x73BB, 0x73B2, 0x73CD, 0x73C0, 0x73B3, 0x751A, 0x752D, /* 0xC0 */
- 0x754F, 0x754C, 0x754E, 0x754B, 0x75AB, 0x75A4, 0x75A5, 0x75A2, /* 0xC0 */
- 0x75A3, 0x7678, 0x7686, 0x7687, 0x7688, 0x76C8, 0x76C6, 0x76C3, /* 0xD0 */
- 0x76C5, 0x7701, 0x76F9, 0x76F8, 0x7709, 0x770B, 0x76FE, 0x76FC, /* 0xD0 */
- 0x7707, 0x77DC, 0x7802, 0x7814, 0x780C, 0x780D, 0x7946, 0x7949, /* 0xE0 */
- 0x7948, 0x7947, 0x79B9, 0x79BA, 0x79D1, 0x79D2, 0x79CB, 0x7A7F, /* 0xE0 */
- 0x7A81, 0x7AFF, 0x7AFD, 0x7C7D, 0x7D02, 0x7D05, 0x7D00, 0x7D09, /* 0xF0 */
- 0x7D07, 0x7D04, 0x7D06, 0x7F38, 0x7F8E, 0x7FBF, 0x8004 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_AD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8010, 0x800D, 0x8011, 0x8036, 0x80D6, 0x80E5, 0x80DA, 0x80C3, /* 0x40 */
- 0x80C4, 0x80CC, 0x80E1, 0x80DB, 0x80CE, 0x80DE, 0x80E4, 0x80DD, /* 0x40 */
- 0x81F4, 0x8222, 0x82E7, 0x8303, 0x8305, 0x82E3, 0x82DB, 0x82E6, /* 0x50 */
- 0x8304, 0x82E5, 0x8302, 0x8309, 0x82D2, 0x82D7, 0x82F1, 0x8301, /* 0x50 */
- 0x82DC, 0x82D4, 0x82D1, 0x82DE, 0x82D3, 0x82DF, 0x82EF, 0x8306, /* 0x60 */
- 0x8650, 0x8679, 0x867B, 0x867A, 0x884D, 0x886B, 0x8981, 0x89D4, /* 0x60 */
- 0x8A08, 0x8A02, 0x8A03, 0x8C9E, 0x8CA0, 0x8D74, 0x8D73, 0x8DB4, /* 0x70 */
- 0x8ECD, 0x8ECC, 0x8FF0, 0x8FE6, 0x8FE2, 0x8FEA, 0x8FE5, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x8FED, 0x8FEB, 0x8FE4, 0x8FE8, 0x90CA, 0x90CE, 0x90C1, /* 0xA0 */
- 0x90C3, 0x914B, 0x914A, 0x91CD, 0x9582, 0x9650, 0x964B, 0x964C, /* 0xA0 */
- 0x964D, 0x9762, 0x9769, 0x97CB, 0x97ED, 0x97F3, 0x9801, 0x98A8, /* 0xB0 */
- 0x98DB, 0x98DF, 0x9996, 0x9999, 0x4E58, 0x4EB3, 0x500C, 0x500D, /* 0xB0 */
- 0x5023, 0x4FEF, 0x5026, 0x5025, 0x4FF8, 0x5029, 0x5016, 0x5006, /* 0xC0 */
- 0x503C, 0x501F, 0x501A, 0x5012, 0x5011, 0x4FFA, 0x5000, 0x5014, /* 0xC0 */
- 0x5028, 0x4FF1, 0x5021, 0x500B, 0x5019, 0x5018, 0x4FF3, 0x4FEE, /* 0xD0 */
- 0x502D, 0x502A, 0x4FFE, 0x502B, 0x5009, 0x517C, 0x51A4, 0x51A5, /* 0xD0 */
- 0x51A2, 0x51CD, 0x51CC, 0x51C6, 0x51CB, 0x5256, 0x525C, 0x5254, /* 0xE0 */
- 0x525B, 0x525D, 0x532A, 0x537F, 0x539F, 0x539D, 0x53DF, 0x54E8, /* 0xE0 */
- 0x5510, 0x5501, 0x5537, 0x54FC, 0x54E5, 0x54F2, 0x5506, 0x54FA, /* 0xF0 */
- 0x5514, 0x54E9, 0x54ED, 0x54E1, 0x5509, 0x54EE, 0x54EA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_AE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x54E6, 0x5527, 0x5507, 0x54FD, 0x550F, 0x5703, 0x5704, 0x57C2, /* 0x40 */
- 0x57D4, 0x57CB, 0x57C3, 0x5809, 0x590F, 0x5957, 0x5958, 0x595A, /* 0x40 */
- 0x5A11, 0x5A18, 0x5A1C, 0x5A1F, 0x5A1B, 0x5A13, 0x59EC, 0x5A20, /* 0x50 */
- 0x5A23, 0x5A29, 0x5A25, 0x5A0C, 0x5A09, 0x5B6B, 0x5C58, 0x5BB0, /* 0x50 */
- 0x5BB3, 0x5BB6, 0x5BB4, 0x5BAE, 0x5BB5, 0x5BB9, 0x5BB8, 0x5C04, /* 0x60 */
- 0x5C51, 0x5C55, 0x5C50, 0x5CED, 0x5CFD, 0x5CFB, 0x5CEA, 0x5CE8, /* 0x60 */
- 0x5CF0, 0x5CF6, 0x5D01, 0x5CF4, 0x5DEE, 0x5E2D, 0x5E2B, 0x5EAB, /* 0x70 */
- 0x5EAD, 0x5EA7, 0x5F31, 0x5F92, 0x5F91, 0x5F90, 0x6059, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x6063, 0x6065, 0x6050, 0x6055, 0x606D, 0x6069, 0x606F, /* 0xA0 */
- 0x6084, 0x609F, 0x609A, 0x608D, 0x6094, 0x608C, 0x6085, 0x6096, /* 0xA0 */
- 0x6247, 0x62F3, 0x6308, 0x62FF, 0x634E, 0x633E, 0x632F, 0x6355, /* 0xB0 */
- 0x6342, 0x6346, 0x634F, 0x6349, 0x633A, 0x6350, 0x633D, 0x632A, /* 0xB0 */
- 0x632B, 0x6328, 0x634D, 0x634C, 0x6548, 0x6549, 0x6599, 0x65C1, /* 0xC0 */
- 0x65C5, 0x6642, 0x6649, 0x664F, 0x6643, 0x6652, 0x664C, 0x6645, /* 0xC0 */
- 0x6641, 0x66F8, 0x6714, 0x6715, 0x6717, 0x6821, 0x6838, 0x6848, /* 0xD0 */
- 0x6846, 0x6853, 0x6839, 0x6842, 0x6854, 0x6829, 0x68B3, 0x6817, /* 0xD0 */
- 0x684C, 0x6851, 0x683D, 0x67F4, 0x6850, 0x6840, 0x683C, 0x6843, /* 0xE0 */
- 0x682A, 0x6845, 0x6813, 0x6818, 0x6841, 0x6B8A, 0x6B89, 0x6BB7, /* 0xE0 */
- 0x6C23, 0x6C27, 0x6C28, 0x6C26, 0x6C24, 0x6CF0, 0x6D6A, 0x6D95, /* 0xF0 */
- 0x6D88, 0x6D87, 0x6D66, 0x6D78, 0x6D77, 0x6D59, 0x6D93 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_AF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6D6C, 0x6D89, 0x6D6E, 0x6D5A, 0x6D74, 0x6D69, 0x6D8C, 0x6D8A, /* 0x40 */
- 0x6D79, 0x6D85, 0x6D65, 0x6D94, 0x70CA, 0x70D8, 0x70E4, 0x70D9, /* 0x40 */
- 0x70C8, 0x70CF, 0x7239, 0x7279, 0x72FC, 0x72F9, 0x72FD, 0x72F8, /* 0x50 */
- 0x72F7, 0x7386, 0x73ED, 0x7409, 0x73EE, 0x73E0, 0x73EA, 0x73DE, /* 0x50 */
- 0x7554, 0x755D, 0x755C, 0x755A, 0x7559, 0x75BE, 0x75C5, 0x75C7, /* 0x60 */
- 0x75B2, 0x75B3, 0x75BD, 0x75BC, 0x75B9, 0x75C2, 0x75B8, 0x768B, /* 0x60 */
- 0x76B0, 0x76CA, 0x76CD, 0x76CE, 0x7729, 0x771F, 0x7720, 0x7728, /* 0x70 */
- 0x77E9, 0x7830, 0x7827, 0x7838, 0x781D, 0x7834, 0x7837, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x7825, 0x782D, 0x7820, 0x781F, 0x7832, 0x7955, 0x7950, /* 0xA0 */
- 0x7960, 0x795F, 0x7956, 0x795E, 0x795D, 0x7957, 0x795A, 0x79E4, /* 0xA0 */
- 0x79E3, 0x79E7, 0x79DF, 0x79E6, 0x79E9, 0x79D8, 0x7A84, 0x7A88, /* 0xB0 */
- 0x7AD9, 0x7B06, 0x7B11, 0x7C89, 0x7D21, 0x7D17, 0x7D0B, 0x7D0A, /* 0xB0 */
- 0x7D20, 0x7D22, 0x7D14, 0x7D10, 0x7D15, 0x7D1A, 0x7D1C, 0x7D0D, /* 0xC0 */
- 0x7D19, 0x7D1B, 0x7F3A, 0x7F5F, 0x7F94, 0x7FC5, 0x7FC1, 0x8006, /* 0xC0 */
- 0x8018, 0x8015, 0x8019, 0x8017, 0x803D, 0x803F, 0x80F1, 0x8102, /* 0xD0 */
- 0x80F0, 0x8105, 0x80ED, 0x80F4, 0x8106, 0x80F8, 0x80F3, 0x8108, /* 0xD0 */
- 0x80FD, 0x810A, 0x80FC, 0x80EF, 0x81ED, 0x81EC, 0x8200, 0x8210, /* 0xE0 */
- 0x822A, 0x822B, 0x8228, 0x822C, 0x82BB, 0x832B, 0x8352, 0x8354, /* 0xE0 */
- 0x834A, 0x8338, 0x8350, 0x8349, 0x8335, 0x8334, 0x834F, 0x8332, /* 0xF0 */
- 0x8339, 0x8336, 0x8317, 0x8340, 0x8331, 0x8328, 0x8343 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_B0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8654, 0x868A, 0x86AA, 0x8693, 0x86A4, 0x86A9, 0x868C, 0x86A3, /* 0x40 */
- 0x869C, 0x8870, 0x8877, 0x8881, 0x8882, 0x887D, 0x8879, 0x8A18, /* 0x40 */
- 0x8A10, 0x8A0E, 0x8A0C, 0x8A15, 0x8A0A, 0x8A17, 0x8A13, 0x8A16, /* 0x50 */
- 0x8A0F, 0x8A11, 0x8C48, 0x8C7A, 0x8C79, 0x8CA1, 0x8CA2, 0x8D77, /* 0x50 */
- 0x8EAC, 0x8ED2, 0x8ED4, 0x8ECF, 0x8FB1, 0x9001, 0x9006, 0x8FF7, /* 0x60 */
- 0x9000, 0x8FFA, 0x8FF4, 0x9003, 0x8FFD, 0x9005, 0x8FF8, 0x9095, /* 0x60 */
- 0x90E1, 0x90DD, 0x90E2, 0x9152, 0x914D, 0x914C, 0x91D8, 0x91DD, /* 0x70 */
- 0x91D7, 0x91DC, 0x91D9, 0x9583, 0x9662, 0x9663, 0x9661, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x965B, 0x965D, 0x9664, 0x9658, 0x965E, 0x96BB, 0x98E2, /* 0xA0 */
- 0x99AC, 0x9AA8, 0x9AD8, 0x9B25, 0x9B32, 0x9B3C, 0x4E7E, 0x507A, /* 0xA0 */
- 0x507D, 0x505C, 0x5047, 0x5043, 0x504C, 0x505A, 0x5049, 0x5065, /* 0xB0 */
- 0x5076, 0x504E, 0x5055, 0x5075, 0x5074, 0x5077, 0x504F, 0x500F, /* 0xB0 */
- 0x506F, 0x506D, 0x515C, 0x5195, 0x51F0, 0x526A, 0x526F, 0x52D2, /* 0xC0 */
- 0x52D9, 0x52D8, 0x52D5, 0x5310, 0x530F, 0x5319, 0x533F, 0x5340, /* 0xC0 */
- 0x533E, 0x53C3, 0x66FC, 0x5546, 0x556A, 0x5566, 0x5544, 0x555E, /* 0xD0 */
- 0x5561, 0x5543, 0x554A, 0x5531, 0x5556, 0x554F, 0x5555, 0x552F, /* 0xD0 */
- 0x5564, 0x5538, 0x552E, 0x555C, 0x552C, 0x5563, 0x5533, 0x5541, /* 0xE0 */
- 0x5557, 0x5708, 0x570B, 0x5709, 0x57DF, 0x5805, 0x580A, 0x5806, /* 0xE0 */
- 0x57E0, 0x57E4, 0x57FA, 0x5802, 0x5835, 0x57F7, 0x57F9, 0x5920, /* 0xF0 */
- 0x5962, 0x5A36, 0x5A41, 0x5A49, 0x5A66, 0x5A6A, 0x5A40 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_B1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5A3C, 0x5A62, 0x5A5A, 0x5A46, 0x5A4A, 0x5B70, 0x5BC7, 0x5BC5, /* 0x40 */
- 0x5BC4, 0x5BC2, 0x5BBF, 0x5BC6, 0x5C09, 0x5C08, 0x5C07, 0x5C60, /* 0x40 */
- 0x5C5C, 0x5C5D, 0x5D07, 0x5D06, 0x5D0E, 0x5D1B, 0x5D16, 0x5D22, /* 0x50 */
- 0x5D11, 0x5D29, 0x5D14, 0x5D19, 0x5D24, 0x5D27, 0x5D17, 0x5DE2, /* 0x50 */
- 0x5E38, 0x5E36, 0x5E33, 0x5E37, 0x5EB7, 0x5EB8, 0x5EB6, 0x5EB5, /* 0x60 */
- 0x5EBE, 0x5F35, 0x5F37, 0x5F57, 0x5F6C, 0x5F69, 0x5F6B, 0x5F97, /* 0x60 */
- 0x5F99, 0x5F9E, 0x5F98, 0x5FA1, 0x5FA0, 0x5F9C, 0x607F, 0x60A3, /* 0x70 */
- 0x6089, 0x60A0, 0x60A8, 0x60CB, 0x60B4, 0x60E6, 0x60BD, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x60C5, 0x60BB, 0x60B5, 0x60DC, 0x60BC, 0x60D8, 0x60D5, /* 0xA0 */
- 0x60C6, 0x60DF, 0x60B8, 0x60DA, 0x60C7, 0x621A, 0x621B, 0x6248, /* 0xA0 */
- 0x63A0, 0x63A7, 0x6372, 0x6396, 0x63A2, 0x63A5, 0x6377, 0x6367, /* 0xB0 */
- 0x6398, 0x63AA, 0x6371, 0x63A9, 0x6389, 0x6383, 0x639B, 0x636B, /* 0xB0 */
- 0x63A8, 0x6384, 0x6388, 0x6399, 0x63A1, 0x63AC, 0x6392, 0x638F, /* 0xC0 */
- 0x6380, 0x637B, 0x6369, 0x6368, 0x637A, 0x655D, 0x6556, 0x6551, /* 0xC0 */
- 0x6559, 0x6557, 0x555F, 0x654F, 0x6558, 0x6555, 0x6554, 0x659C, /* 0xD0 */
- 0x659B, 0x65AC, 0x65CF, 0x65CB, 0x65CC, 0x65CE, 0x665D, 0x665A, /* 0xD0 */
- 0x6664, 0x6668, 0x6666, 0x665E, 0x66F9, 0x52D7, 0x671B, 0x6881, /* 0xE0 */
- 0x68AF, 0x68A2, 0x6893, 0x68B5, 0x687F, 0x6876, 0x68B1, 0x68A7, /* 0xE0 */
- 0x6897, 0x68B0, 0x6883, 0x68C4, 0x68AD, 0x6886, 0x6885, 0x6894, /* 0xF0 */
- 0x689D, 0x68A8, 0x689F, 0x68A1, 0x6882, 0x6B32, 0x6BBA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_B2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6BEB, 0x6BEC, 0x6C2B, 0x6D8E, 0x6DBC, 0x6DF3, 0x6DD9, 0x6DB2, /* 0x40 */
- 0x6DE1, 0x6DCC, 0x6DE4, 0x6DFB, 0x6DFA, 0x6E05, 0x6DC7, 0x6DCB, /* 0x40 */
- 0x6DAF, 0x6DD1, 0x6DAE, 0x6DDE, 0x6DF9, 0x6DB8, 0x6DF7, 0x6DF5, /* 0x50 */
- 0x6DC5, 0x6DD2, 0x6E1A, 0x6DB5, 0x6DDA, 0x6DEB, 0x6DD8, 0x6DEA, /* 0x50 */
- 0x6DF1, 0x6DEE, 0x6DE8, 0x6DC6, 0x6DC4, 0x6DAA, 0x6DEC, 0x6DBF, /* 0x60 */
- 0x6DE6, 0x70F9, 0x7109, 0x710A, 0x70FD, 0x70EF, 0x723D, 0x727D, /* 0x60 */
- 0x7281, 0x731C, 0x731B, 0x7316, 0x7313, 0x7319, 0x7387, 0x7405, /* 0x70 */
- 0x740A, 0x7403, 0x7406, 0x73FE, 0x740D, 0x74E0, 0x74F6, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x74F7, 0x751C, 0x7522, 0x7565, 0x7566, 0x7562, 0x7570, /* 0xA0 */
- 0x758F, 0x75D4, 0x75D5, 0x75B5, 0x75CA, 0x75CD, 0x768E, 0x76D4, /* 0xA0 */
- 0x76D2, 0x76DB, 0x7737, 0x773E, 0x773C, 0x7736, 0x7738, 0x773A, /* 0xB0 */
- 0x786B, 0x7843, 0x784E, 0x7965, 0x7968, 0x796D, 0x79FB, 0x7A92, /* 0xB0 */
- 0x7A95, 0x7B20, 0x7B28, 0x7B1B, 0x7B2C, 0x7B26, 0x7B19, 0x7B1E, /* 0xC0 */
- 0x7B2E, 0x7C92, 0x7C97, 0x7C95, 0x7D46, 0x7D43, 0x7D71, 0x7D2E, /* 0xC0 */
- 0x7D39, 0x7D3C, 0x7D40, 0x7D30, 0x7D33, 0x7D44, 0x7D2F, 0x7D42, /* 0xD0 */
- 0x7D32, 0x7D31, 0x7F3D, 0x7F9E, 0x7F9A, 0x7FCC, 0x7FCE, 0x7FD2, /* 0xD0 */
- 0x801C, 0x804A, 0x8046, 0x812F, 0x8116, 0x8123, 0x812B, 0x8129, /* 0xE0 */
- 0x8130, 0x8124, 0x8202, 0x8235, 0x8237, 0x8236, 0x8239, 0x838E, /* 0xE0 */
- 0x839E, 0x8398, 0x8378, 0x83A2, 0x8396, 0x83BD, 0x83AB, 0x8392, /* 0xF0 */
- 0x838A, 0x8393, 0x8389, 0x83A0, 0x8377, 0x837B, 0x837C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_B3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8386, 0x83A7, 0x8655, 0x5F6A, 0x86C7, 0x86C0, 0x86B6, 0x86C4, /* 0x40 */
- 0x86B5, 0x86C6, 0x86CB, 0x86B1, 0x86AF, 0x86C9, 0x8853, 0x889E, /* 0x40 */
- 0x8888, 0x88AB, 0x8892, 0x8896, 0x888D, 0x888B, 0x8993, 0x898F, /* 0x50 */
- 0x8A2A, 0x8A1D, 0x8A23, 0x8A25, 0x8A31, 0x8A2D, 0x8A1F, 0x8A1B, /* 0x50 */
- 0x8A22, 0x8C49, 0x8C5A, 0x8CA9, 0x8CAC, 0x8CAB, 0x8CA8, 0x8CAA, /* 0x60 */
- 0x8CA7, 0x8D67, 0x8D66, 0x8DBE, 0x8DBA, 0x8EDB, 0x8EDF, 0x9019, /* 0x60 */
- 0x900D, 0x901A, 0x9017, 0x9023, 0x901F, 0x901D, 0x9010, 0x9015, /* 0x70 */
- 0x901E, 0x9020, 0x900F, 0x9022, 0x9016, 0x901B, 0x9014, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x90E8, 0x90ED, 0x90FD, 0x9157, 0x91CE, 0x91F5, 0x91E6, /* 0xA0 */
- 0x91E3, 0x91E7, 0x91ED, 0x91E9, 0x9589, 0x966A, 0x9675, 0x9673, /* 0xA0 */
- 0x9678, 0x9670, 0x9674, 0x9676, 0x9677, 0x966C, 0x96C0, 0x96EA, /* 0xB0 */
- 0x96E9, 0x7AE0, 0x7ADF, 0x9802, 0x9803, 0x9B5A, 0x9CE5, 0x9E75, /* 0xB0 */
- 0x9E7F, 0x9EA5, 0x9EBB, 0x50A2, 0x508D, 0x5085, 0x5099, 0x5091, /* 0xC0 */
- 0x5080, 0x5096, 0x5098, 0x509A, 0x6700, 0x51F1, 0x5272, 0x5274, /* 0xC0 */
- 0x5275, 0x5269, 0x52DE, 0x52DD, 0x52DB, 0x535A, 0x53A5, 0x557B, /* 0xD0 */
- 0x5580, 0x55A7, 0x557C, 0x558A, 0x559D, 0x5598, 0x5582, 0x559C, /* 0xD0 */
- 0x55AA, 0x5594, 0x5587, 0x558B, 0x5583, 0x55B3, 0x55AE, 0x559F, /* 0xE0 */
- 0x553E, 0x55B2, 0x559A, 0x55BB, 0x55AC, 0x55B1, 0x557E, 0x5589, /* 0xE0 */
- 0x55AB, 0x5599, 0x570D, 0x582F, 0x582A, 0x5834, 0x5824, 0x5830, /* 0xF0 */
- 0x5831, 0x5821, 0x581D, 0x5820, 0x58F9, 0x58FA, 0x5960 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_B4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5A77, 0x5A9A, 0x5A7F, 0x5A92, 0x5A9B, 0x5AA7, 0x5B73, 0x5B71, /* 0x40 */
- 0x5BD2, 0x5BCC, 0x5BD3, 0x5BD0, 0x5C0A, 0x5C0B, 0x5C31, 0x5D4C, /* 0x40 */
- 0x5D50, 0x5D34, 0x5D47, 0x5DFD, 0x5E45, 0x5E3D, 0x5E40, 0x5E43, /* 0x50 */
- 0x5E7E, 0x5ECA, 0x5EC1, 0x5EC2, 0x5EC4, 0x5F3C, 0x5F6D, 0x5FA9, /* 0x50 */
- 0x5FAA, 0x5FA8, 0x60D1, 0x60E1, 0x60B2, 0x60B6, 0x60E0, 0x611C, /* 0x60 */
- 0x6123, 0x60FA, 0x6115, 0x60F0, 0x60FB, 0x60F4, 0x6168, 0x60F1, /* 0x60 */
- 0x610E, 0x60F6, 0x6109, 0x6100, 0x6112, 0x621F, 0x6249, 0x63A3, /* 0x70 */
- 0x638C, 0x63CF, 0x63C0, 0x63E9, 0x63C9, 0x63C6, 0x63CD, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x63D2, 0x63E3, 0x63D0, 0x63E1, 0x63D6, 0x63ED, 0x63EE, /* 0xA0 */
- 0x6376, 0x63F4, 0x63EA, 0x63DB, 0x6452, 0x63DA, 0x63F9, 0x655E, /* 0xA0 */
- 0x6566, 0x6562, 0x6563, 0x6591, 0x6590, 0x65AF, 0x666E, 0x6670, /* 0xB0 */
- 0x6674, 0x6676, 0x666F, 0x6691, 0x667A, 0x667E, 0x6677, 0x66FE, /* 0xB0 */
- 0x66FF, 0x671F, 0x671D, 0x68FA, 0x68D5, 0x68E0, 0x68D8, 0x68D7, /* 0xC0 */
- 0x6905, 0x68DF, 0x68F5, 0x68EE, 0x68E7, 0x68F9, 0x68D2, 0x68F2, /* 0xC0 */
- 0x68E3, 0x68CB, 0x68CD, 0x690D, 0x6912, 0x690E, 0x68C9, 0x68DA, /* 0xD0 */
- 0x696E, 0x68FB, 0x6B3E, 0x6B3A, 0x6B3D, 0x6B98, 0x6B96, 0x6BBC, /* 0xD0 */
- 0x6BEF, 0x6C2E, 0x6C2F, 0x6C2C, 0x6E2F, 0x6E38, 0x6E54, 0x6E21, /* 0xE0 */
- 0x6E32, 0x6E67, 0x6E4A, 0x6E20, 0x6E25, 0x6E23, 0x6E1B, 0x6E5B, /* 0xE0 */
- 0x6E58, 0x6E24, 0x6E56, 0x6E6E, 0x6E2D, 0x6E26, 0x6E6F, 0x6E34, /* 0xF0 */
- 0x6E4D, 0x6E3A, 0x6E2C, 0x6E43, 0x6E1D, 0x6E3E, 0x6ECB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_B5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6E89, 0x6E19, 0x6E4E, 0x6E63, 0x6E44, 0x6E72, 0x6E69, 0x6E5F, /* 0x40 */
- 0x7119, 0x711A, 0x7126, 0x7130, 0x7121, 0x7136, 0x716E, 0x711C, /* 0x40 */
- 0x724C, 0x7284, 0x7280, 0x7336, 0x7325, 0x7334, 0x7329, 0x743A, /* 0x50 */
- 0x742A, 0x7433, 0x7422, 0x7425, 0x7435, 0x7436, 0x7434, 0x742F, /* 0x50 */
- 0x741B, 0x7426, 0x7428, 0x7525, 0x7526, 0x756B, 0x756A, 0x75E2, /* 0x60 */
- 0x75DB, 0x75E3, 0x75D9, 0x75D8, 0x75DE, 0x75E0, 0x767B, 0x767C, /* 0x60 */
- 0x7696, 0x7693, 0x76B4, 0x76DC, 0x774F, 0x77ED, 0x785D, 0x786C, /* 0x70 */
- 0x786F, 0x7A0D, 0x7A08, 0x7A0B, 0x7A05, 0x7A00, 0x7A98, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x7A97, 0x7A96, 0x7AE5, 0x7AE3, 0x7B49, 0x7B56, 0x7B46, /* 0xA0 */
- 0x7B50, 0x7B52, 0x7B54, 0x7B4D, 0x7B4B, 0x7B4F, 0x7B51, 0x7C9F, /* 0xA0 */
- 0x7CA5, 0x7D5E, 0x7D50, 0x7D68, 0x7D55, 0x7D2B, 0x7D6E, 0x7D72, /* 0xB0 */
- 0x7D61, 0x7D66, 0x7D62, 0x7D70, 0x7D73, 0x5584, 0x7FD4, 0x7FD5, /* 0xB0 */
- 0x800B, 0x8052, 0x8085, 0x8155, 0x8154, 0x814B, 0x8151, 0x814E, /* 0xC0 */
- 0x8139, 0x8146, 0x813E, 0x814C, 0x8153, 0x8174, 0x8212, 0x821C, /* 0xC0 */
- 0x83E9, 0x8403, 0x83F8, 0x840D, 0x83E0, 0x83C5, 0x840B, 0x83C1, /* 0xD0 */
- 0x83EF, 0x83F1, 0x83F4, 0x8457, 0x840A, 0x83F0, 0x840C, 0x83CC, /* 0xD0 */
- 0x83FD, 0x83F2, 0x83CA, 0x8438, 0x840E, 0x8404, 0x83DC, 0x8407, /* 0xE0 */
- 0x83D4, 0x83DF, 0x865B, 0x86DF, 0x86D9, 0x86ED, 0x86D4, 0x86DB, /* 0xE0 */
- 0x86E4, 0x86D0, 0x86DE, 0x8857, 0x88C1, 0x88C2, 0x88B1, 0x8983, /* 0xF0 */
- 0x8996, 0x8A3B, 0x8A60, 0x8A55, 0x8A5E, 0x8A3C, 0x8A41 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_B6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8A54, 0x8A5B, 0x8A50, 0x8A46, 0x8A34, 0x8A3A, 0x8A36, 0x8A56, /* 0x40 */
- 0x8C61, 0x8C82, 0x8CAF, 0x8CBC, 0x8CB3, 0x8CBD, 0x8CC1, 0x8CBB, /* 0x40 */
- 0x8CC0, 0x8CB4, 0x8CB7, 0x8CB6, 0x8CBF, 0x8CB8, 0x8D8A, 0x8D85, /* 0x50 */
- 0x8D81, 0x8DCE, 0x8DDD, 0x8DCB, 0x8DDA, 0x8DD1, 0x8DCC, 0x8DDB, /* 0x50 */
- 0x8DC6, 0x8EFB, 0x8EF8, 0x8EFC, 0x8F9C, 0x902E, 0x9035, 0x9031, /* 0x60 */
- 0x9038, 0x9032, 0x9036, 0x9102, 0x90F5, 0x9109, 0x90FE, 0x9163, /* 0x60 */
- 0x9165, 0x91CF, 0x9214, 0x9215, 0x9223, 0x9209, 0x921E, 0x920D, /* 0x70 */
- 0x9210, 0x9207, 0x9211, 0x9594, 0x958F, 0x958B, 0x9591, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x9593, 0x9592, 0x958E, 0x968A, 0x968E, 0x968B, 0x967D, /* 0xA0 */
- 0x9685, 0x9686, 0x968D, 0x9672, 0x9684, 0x96C1, 0x96C5, 0x96C4, /* 0xA0 */
- 0x96C6, 0x96C7, 0x96EF, 0x96F2, 0x97CC, 0x9805, 0x9806, 0x9808, /* 0xB0 */
- 0x98E7, 0x98EA, 0x98EF, 0x98E9, 0x98F2, 0x98ED, 0x99AE, 0x99AD, /* 0xB0 */
- 0x9EC3, 0x9ECD, 0x9ED1, 0x4E82, 0x50AD, 0x50B5, 0x50B2, 0x50B3, /* 0xC0 */
- 0x50C5, 0x50BE, 0x50AC, 0x50B7, 0x50BB, 0x50AF, 0x50C7, 0x527F, /* 0xC0 */
- 0x5277, 0x527D, 0x52DF, 0x52E6, 0x52E4, 0x52E2, 0x52E3, 0x532F, /* 0xD0 */
- 0x55DF, 0x55E8, 0x55D3, 0x55E6, 0x55CE, 0x55DC, 0x55C7, 0x55D1, /* 0xD0 */
- 0x55E3, 0x55E4, 0x55EF, 0x55DA, 0x55E1, 0x55C5, 0x55C6, 0x55E5, /* 0xE0 */
- 0x55C9, 0x5712, 0x5713, 0x585E, 0x5851, 0x5858, 0x5857, 0x585A, /* 0xE0 */
- 0x5854, 0x586B, 0x584C, 0x586D, 0x584A, 0x5862, 0x5852, 0x584B, /* 0xF0 */
- 0x5967, 0x5AC1, 0x5AC9, 0x5ACC, 0x5ABE, 0x5ABD, 0x5ABC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_B7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5AB3, 0x5AC2, 0x5AB2, 0x5D69, 0x5D6F, 0x5E4C, 0x5E79, 0x5EC9, /* 0x40 */
- 0x5EC8, 0x5F12, 0x5F59, 0x5FAC, 0x5FAE, 0x611A, 0x610F, 0x6148, /* 0x40 */
- 0x611F, 0x60F3, 0x611B, 0x60F9, 0x6101, 0x6108, 0x614E, 0x614C, /* 0x50 */
- 0x6144, 0x614D, 0x613E, 0x6134, 0x6127, 0x610D, 0x6106, 0x6137, /* 0x50 */
- 0x6221, 0x6222, 0x6413, 0x643E, 0x641E, 0x642A, 0x642D, 0x643D, /* 0x60 */
- 0x642C, 0x640F, 0x641C, 0x6414, 0x640D, 0x6436, 0x6416, 0x6417, /* 0x60 */
- 0x6406, 0x656C, 0x659F, 0x65B0, 0x6697, 0x6689, 0x6687, 0x6688, /* 0x70 */
- 0x6696, 0x6684, 0x6698, 0x668D, 0x6703, 0x6994, 0x696D, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x695A, 0x6977, 0x6960, 0x6954, 0x6975, 0x6930, 0x6982, /* 0xA0 */
- 0x694A, 0x6968, 0x696B, 0x695E, 0x6953, 0x6979, 0x6986, 0x695D, /* 0xA0 */
- 0x6963, 0x695B, 0x6B47, 0x6B72, 0x6BC0, 0x6BBF, 0x6BD3, 0x6BFD, /* 0xB0 */
- 0x6EA2, 0x6EAF, 0x6ED3, 0x6EB6, 0x6EC2, 0x6E90, 0x6E9D, 0x6EC7, /* 0xB0 */
- 0x6EC5, 0x6EA5, 0x6E98, 0x6EBC, 0x6EBA, 0x6EAB, 0x6ED1, 0x6E96, /* 0xC0 */
- 0x6E9C, 0x6EC4, 0x6ED4, 0x6EAA, 0x6EA7, 0x6EB4, 0x714E, 0x7159, /* 0xC0 */
- 0x7169, 0x7164, 0x7149, 0x7167, 0x715C, 0x716C, 0x7166, 0x714C, /* 0xD0 */
- 0x7165, 0x715E, 0x7146, 0x7168, 0x7156, 0x723A, 0x7252, 0x7337, /* 0xD0 */
- 0x7345, 0x733F, 0x733E, 0x746F, 0x745A, 0x7455, 0x745F, 0x745E, /* 0xE0 */
- 0x7441, 0x743F, 0x7459, 0x745B, 0x745C, 0x7576, 0x7578, 0x7600, /* 0xE0 */
- 0x75F0, 0x7601, 0x75F2, 0x75F1, 0x75FA, 0x75FF, 0x75F4, 0x75F3, /* 0xF0 */
- 0x76DE, 0x76DF, 0x775B, 0x776B, 0x7766, 0x775E, 0x7763 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_B8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7779, 0x776A, 0x776C, 0x775C, 0x7765, 0x7768, 0x7762, 0x77EE, /* 0x40 */
- 0x788E, 0x78B0, 0x7897, 0x7898, 0x788C, 0x7889, 0x787C, 0x7891, /* 0x40 */
- 0x7893, 0x787F, 0x797A, 0x797F, 0x7981, 0x842C, 0x79BD, 0x7A1C, /* 0x50 */
- 0x7A1A, 0x7A20, 0x7A14, 0x7A1F, 0x7A1E, 0x7A9F, 0x7AA0, 0x7B77, /* 0x50 */
- 0x7BC0, 0x7B60, 0x7B6E, 0x7B67, 0x7CB1, 0x7CB3, 0x7CB5, 0x7D93, /* 0x60 */
- 0x7D79, 0x7D91, 0x7D81, 0x7D8F, 0x7D5B, 0x7F6E, 0x7F69, 0x7F6A, /* 0x60 */
- 0x7F72, 0x7FA9, 0x7FA8, 0x7FA4, 0x8056, 0x8058, 0x8086, 0x8084, /* 0x70 */
- 0x8171, 0x8170, 0x8178, 0x8165, 0x816E, 0x8173, 0x816B, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x8179, 0x817A, 0x8166, 0x8205, 0x8247, 0x8482, 0x8477, /* 0xA0 */
- 0x843D, 0x8431, 0x8475, 0x8466, 0x846B, 0x8449, 0x846C, 0x845B, /* 0xA0 */
- 0x843C, 0x8435, 0x8461, 0x8463, 0x8469, 0x846D, 0x8446, 0x865E, /* 0xB0 */
- 0x865C, 0x865F, 0x86F9, 0x8713, 0x8708, 0x8707, 0x8700, 0x86FE, /* 0xB0 */
- 0x86FB, 0x8702, 0x8703, 0x8706, 0x870A, 0x8859, 0x88DF, 0x88D4, /* 0xC0 */
- 0x88D9, 0x88DC, 0x88D8, 0x88DD, 0x88E1, 0x88CA, 0x88D5, 0x88D2, /* 0xC0 */
- 0x899C, 0x89E3, 0x8A6B, 0x8A72, 0x8A73, 0x8A66, 0x8A69, 0x8A70, /* 0xD0 */
- 0x8A87, 0x8A7C, 0x8A63, 0x8AA0, 0x8A71, 0x8A85, 0x8A6D, 0x8A62, /* 0xD0 */
- 0x8A6E, 0x8A6C, 0x8A79, 0x8A7B, 0x8A3E, 0x8A68, 0x8C62, 0x8C8A, /* 0xE0 */
- 0x8C89, 0x8CCA, 0x8CC7, 0x8CC8, 0x8CC4, 0x8CB2, 0x8CC3, 0x8CC2, /* 0xE0 */
- 0x8CC5, 0x8DE1, 0x8DDF, 0x8DE8, 0x8DEF, 0x8DF3, 0x8DFA, 0x8DEA, /* 0xF0 */
- 0x8DE4, 0x8DE6, 0x8EB2, 0x8F03, 0x8F09, 0x8EFE, 0x8F0A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_B9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8F9F, 0x8FB2, 0x904B, 0x904A, 0x9053, 0x9042, 0x9054, 0x903C, /* 0x40 */
- 0x9055, 0x9050, 0x9047, 0x904F, 0x904E, 0x904D, 0x9051, 0x903E, /* 0x40 */
- 0x9041, 0x9112, 0x9117, 0x916C, 0x916A, 0x9169, 0x91C9, 0x9237, /* 0x50 */
- 0x9257, 0x9238, 0x923D, 0x9240, 0x923E, 0x925B, 0x924B, 0x9264, /* 0x50 */
- 0x9251, 0x9234, 0x9249, 0x924D, 0x9245, 0x9239, 0x923F, 0x925A, /* 0x60 */
- 0x9598, 0x9698, 0x9694, 0x9695, 0x96CD, 0x96CB, 0x96C9, 0x96CA, /* 0x60 */
- 0x96F7, 0x96FB, 0x96F9, 0x96F6, 0x9756, 0x9774, 0x9776, 0x9810, /* 0x70 */
- 0x9811, 0x9813, 0x980A, 0x9812, 0x980C, 0x98FC, 0x98F4, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x98FD, 0x98FE, 0x99B3, 0x99B1, 0x99B4, 0x9AE1, 0x9CE9, /* 0xA0 */
- 0x9E82, 0x9F0E, 0x9F13, 0x9F20, 0x50E7, 0x50EE, 0x50E5, 0x50D6, /* 0xA0 */
- 0x50ED, 0x50DA, 0x50D5, 0x50CF, 0x50D1, 0x50F1, 0x50CE, 0x50E9, /* 0xB0 */
- 0x5162, 0x51F3, 0x5283, 0x5282, 0x5331, 0x53AD, 0x55FE, 0x5600, /* 0xB0 */
- 0x561B, 0x5617, 0x55FD, 0x5614, 0x5606, 0x5609, 0x560D, 0x560E, /* 0xC0 */
- 0x55F7, 0x5616, 0x561F, 0x5608, 0x5610, 0x55F6, 0x5718, 0x5716, /* 0xC0 */
- 0x5875, 0x587E, 0x5883, 0x5893, 0x588A, 0x5879, 0x5885, 0x587D, /* 0xD0 */
- 0x58FD, 0x5925, 0x5922, 0x5924, 0x596A, 0x5969, 0x5AE1, 0x5AE6, /* 0xD0 */
- 0x5AE9, 0x5AD7, 0x5AD6, 0x5AD8, 0x5AE3, 0x5B75, 0x5BDE, 0x5BE7, /* 0xE0 */
- 0x5BE1, 0x5BE5, 0x5BE6, 0x5BE8, 0x5BE2, 0x5BE4, 0x5BDF, 0x5C0D, /* 0xE0 */
- 0x5C62, 0x5D84, 0x5D87, 0x5E5B, 0x5E63, 0x5E55, 0x5E57, 0x5E54, /* 0xF0 */
- 0x5ED3, 0x5ED6, 0x5F0A, 0x5F46, 0x5F70, 0x5FB9, 0x6147 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_BA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x613F, 0x614B, 0x6177, 0x6162, 0x6163, 0x615F, 0x615A, 0x6158, /* 0x40 */
- 0x6175, 0x622A, 0x6487, 0x6458, 0x6454, 0x64A4, 0x6478, 0x645F, /* 0x40 */
- 0x647A, 0x6451, 0x6467, 0x6434, 0x646D, 0x647B, 0x6572, 0x65A1, /* 0x50 */
- 0x65D7, 0x65D6, 0x66A2, 0x66A8, 0x669D, 0x699C, 0x69A8, 0x6995, /* 0x50 */
- 0x69C1, 0x69AE, 0x69D3, 0x69CB, 0x699B, 0x69B7, 0x69BB, 0x69AB, /* 0x60 */
- 0x69B4, 0x69D0, 0x69CD, 0x69AD, 0x69CC, 0x69A6, 0x69C3, 0x69A3, /* 0x60 */
- 0x6B49, 0x6B4C, 0x6C33, 0x6F33, 0x6F14, 0x6EFE, 0x6F13, 0x6EF4, /* 0x70 */
- 0x6F29, 0x6F3E, 0x6F20, 0x6F2C, 0x6F0F, 0x6F02, 0x6F22, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x6EFF, 0x6EEF, 0x6F06, 0x6F31, 0x6F38, 0x6F32, 0x6F23, /* 0xA0 */
- 0x6F15, 0x6F2B, 0x6F2F, 0x6F88, 0x6F2A, 0x6EEC, 0x6F01, 0x6EF2, /* 0xA0 */
- 0x6ECC, 0x6EF7, 0x7194, 0x7199, 0x717D, 0x718A, 0x7184, 0x7192, /* 0xB0 */
- 0x723E, 0x7292, 0x7296, 0x7344, 0x7350, 0x7464, 0x7463, 0x746A, /* 0xB0 */
- 0x7470, 0x746D, 0x7504, 0x7591, 0x7627, 0x760D, 0x760B, 0x7609, /* 0xC0 */
- 0x7613, 0x76E1, 0x76E3, 0x7784, 0x777D, 0x777F, 0x7761, 0x78C1, /* 0xC0 */
- 0x789F, 0x78A7, 0x78B3, 0x78A9, 0x78A3, 0x798E, 0x798F, 0x798D, /* 0xD0 */
- 0x7A2E, 0x7A31, 0x7AAA, 0x7AA9, 0x7AED, 0x7AEF, 0x7BA1, 0x7B95, /* 0xD0 */
- 0x7B8B, 0x7B75, 0x7B97, 0x7B9D, 0x7B94, 0x7B8F, 0x7BB8, 0x7B87, /* 0xE0 */
- 0x7B84, 0x7CB9, 0x7CBD, 0x7CBE, 0x7DBB, 0x7DB0, 0x7D9C, 0x7DBD, /* 0xE0 */
- 0x7DBE, 0x7DA0, 0x7DCA, 0x7DB4, 0x7DB2, 0x7DB1, 0x7DBA, 0x7DA2, /* 0xF0 */
- 0x7DBF, 0x7DB5, 0x7DB8, 0x7DAD, 0x7DD2, 0x7DC7, 0x7DAC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_BB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7F70, 0x7FE0, 0x7FE1, 0x7FDF, 0x805E, 0x805A, 0x8087, 0x8150, /* 0x40 */
- 0x8180, 0x818F, 0x8188, 0x818A, 0x817F, 0x8182, 0x81E7, 0x81FA, /* 0x40 */
- 0x8207, 0x8214, 0x821E, 0x824B, 0x84C9, 0x84BF, 0x84C6, 0x84C4, /* 0x50 */
- 0x8499, 0x849E, 0x84B2, 0x849C, 0x84CB, 0x84B8, 0x84C0, 0x84D3, /* 0x50 */
- 0x8490, 0x84BC, 0x84D1, 0x84CA, 0x873F, 0x871C, 0x873B, 0x8722, /* 0x60 */
- 0x8725, 0x8734, 0x8718, 0x8755, 0x8737, 0x8729, 0x88F3, 0x8902, /* 0x60 */
- 0x88F4, 0x88F9, 0x88F8, 0x88FD, 0x88E8, 0x891A, 0x88EF, 0x8AA6, /* 0x70 */
- 0x8A8C, 0x8A9E, 0x8AA3, 0x8A8D, 0x8AA1, 0x8A93, 0x8AA4, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x8AAA, 0x8AA5, 0x8AA8, 0x8A98, 0x8A91, 0x8A9A, 0x8AA7, /* 0xA0 */
- 0x8C6A, 0x8C8D, 0x8C8C, 0x8CD3, 0x8CD1, 0x8CD2, 0x8D6B, 0x8D99, /* 0xA0 */
- 0x8D95, 0x8DFC, 0x8F14, 0x8F12, 0x8F15, 0x8F13, 0x8FA3, 0x9060, /* 0xB0 */
- 0x9058, 0x905C, 0x9063, 0x9059, 0x905E, 0x9062, 0x905D, 0x905B, /* 0xB0 */
- 0x9119, 0x9118, 0x911E, 0x9175, 0x9178, 0x9177, 0x9174, 0x9278, /* 0xC0 */
- 0x9280, 0x9285, 0x9298, 0x9296, 0x927B, 0x9293, 0x929C, 0x92A8, /* 0xC0 */
- 0x927C, 0x9291, 0x95A1, 0x95A8, 0x95A9, 0x95A3, 0x95A5, 0x95A4, /* 0xD0 */
- 0x9699, 0x969C, 0x969B, 0x96CC, 0x96D2, 0x9700, 0x977C, 0x9785, /* 0xD0 */
- 0x97F6, 0x9817, 0x9818, 0x98AF, 0x98B1, 0x9903, 0x9905, 0x990C, /* 0xE0 */
- 0x9909, 0x99C1, 0x9AAF, 0x9AB0, 0x9AE6, 0x9B41, 0x9B42, 0x9CF4, /* 0xE0 */
- 0x9CF6, 0x9CF3, 0x9EBC, 0x9F3B, 0x9F4A, 0x5104, 0x5100, 0x50FB, /* 0xF0 */
- 0x50F5, 0x50F9, 0x5102, 0x5108, 0x5109, 0x5105, 0x51DC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_BC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5287, 0x5288, 0x5289, 0x528D, 0x528A, 0x52F0, 0x53B2, 0x562E, /* 0x40 */
- 0x563B, 0x5639, 0x5632, 0x563F, 0x5634, 0x5629, 0x5653, 0x564E, /* 0x40 */
- 0x5657, 0x5674, 0x5636, 0x562F, 0x5630, 0x5880, 0x589F, 0x589E, /* 0x50 */
- 0x58B3, 0x589C, 0x58AE, 0x58A9, 0x58A6, 0x596D, 0x5B09, 0x5AFB, /* 0x50 */
- 0x5B0B, 0x5AF5, 0x5B0C, 0x5B08, 0x5BEE, 0x5BEC, 0x5BE9, 0x5BEB, /* 0x60 */
- 0x5C64, 0x5C65, 0x5D9D, 0x5D94, 0x5E62, 0x5E5F, 0x5E61, 0x5EE2, /* 0x60 */
- 0x5EDA, 0x5EDF, 0x5EDD, 0x5EE3, 0x5EE0, 0x5F48, 0x5F71, 0x5FB7, /* 0x70 */
- 0x5FB5, 0x6176, 0x6167, 0x616E, 0x615D, 0x6155, 0x6182, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x617C, 0x6170, 0x616B, 0x617E, 0x61A7, 0x6190, 0x61AB, /* 0xA0 */
- 0x618E, 0x61AC, 0x619A, 0x61A4, 0x6194, 0x61AE, 0x622E, 0x6469, /* 0xA0 */
- 0x646F, 0x6479, 0x649E, 0x64B2, 0x6488, 0x6490, 0x64B0, 0x64A5, /* 0xB0 */
- 0x6493, 0x6495, 0x64A9, 0x6492, 0x64AE, 0x64AD, 0x64AB, 0x649A, /* 0xB0 */
- 0x64AC, 0x6499, 0x64A2, 0x64B3, 0x6575, 0x6577, 0x6578, 0x66AE, /* 0xC0 */
- 0x66AB, 0x66B4, 0x66B1, 0x6A23, 0x6A1F, 0x69E8, 0x6A01, 0x6A1E, /* 0xC0 */
- 0x6A19, 0x69FD, 0x6A21, 0x6A13, 0x6A0A, 0x69F3, 0x6A02, 0x6A05, /* 0xD0 */
- 0x69ED, 0x6A11, 0x6B50, 0x6B4E, 0x6BA4, 0x6BC5, 0x6BC6, 0x6F3F, /* 0xD0 */
- 0x6F7C, 0x6F84, 0x6F51, 0x6F66, 0x6F54, 0x6F86, 0x6F6D, 0x6F5B, /* 0xE0 */
- 0x6F78, 0x6F6E, 0x6F8E, 0x6F7A, 0x6F70, 0x6F64, 0x6F97, 0x6F58, /* 0xE0 */
- 0x6ED5, 0x6F6F, 0x6F60, 0x6F5F, 0x719F, 0x71AC, 0x71B1, 0x71A8, /* 0xF0 */
- 0x7256, 0x729B, 0x734E, 0x7357, 0x7469, 0x748B, 0x7483 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_BD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x747E, 0x7480, 0x757F, 0x7620, 0x7629, 0x761F, 0x7624, 0x7626, /* 0x40 */
- 0x7621, 0x7622, 0x769A, 0x76BA, 0x76E4, 0x778E, 0x7787, 0x778C, /* 0x40 */
- 0x7791, 0x778B, 0x78CB, 0x78C5, 0x78BA, 0x78CA, 0x78BE, 0x78D5, /* 0x50 */
- 0x78BC, 0x78D0, 0x7A3F, 0x7A3C, 0x7A40, 0x7A3D, 0x7A37, 0x7A3B, /* 0x50 */
- 0x7AAF, 0x7AAE, 0x7BAD, 0x7BB1, 0x7BC4, 0x7BB4, 0x7BC6, 0x7BC7, /* 0x60 */
- 0x7BC1, 0x7BA0, 0x7BCC, 0x7CCA, 0x7DE0, 0x7DF4, 0x7DEF, 0x7DFB, /* 0x60 */
- 0x7DD8, 0x7DEC, 0x7DDD, 0x7DE8, 0x7DE3, 0x7DDA, 0x7DDE, 0x7DE9, /* 0x70 */
- 0x7D9E, 0x7DD9, 0x7DF2, 0x7DF9, 0x7F75, 0x7F77, 0x7FAF, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x7FE9, 0x8026, 0x819B, 0x819C, 0x819D, 0x81A0, 0x819A, /* 0xA0 */
- 0x8198, 0x8517, 0x853D, 0x851A, 0x84EE, 0x852C, 0x852D, 0x8513, /* 0xA0 */
- 0x8511, 0x8523, 0x8521, 0x8514, 0x84EC, 0x8525, 0x84FF, 0x8506, /* 0xB0 */
- 0x8782, 0x8774, 0x8776, 0x8760, 0x8766, 0x8778, 0x8768, 0x8759, /* 0xB0 */
- 0x8757, 0x874C, 0x8753, 0x885B, 0x885D, 0x8910, 0x8907, 0x8912, /* 0xC0 */
- 0x8913, 0x8915, 0x890A, 0x8ABC, 0x8AD2, 0x8AC7, 0x8AC4, 0x8A95, /* 0xC0 */
- 0x8ACB, 0x8AF8, 0x8AB2, 0x8AC9, 0x8AC2, 0x8ABF, 0x8AB0, 0x8AD6, /* 0xD0 */
- 0x8ACD, 0x8AB6, 0x8AB9, 0x8ADB, 0x8C4C, 0x8C4E, 0x8C6C, 0x8CE0, /* 0xD0 */
- 0x8CDE, 0x8CE6, 0x8CE4, 0x8CEC, 0x8CED, 0x8CE2, 0x8CE3, 0x8CDC, /* 0xE0 */
- 0x8CEA, 0x8CE1, 0x8D6D, 0x8D9F, 0x8DA3, 0x8E2B, 0x8E10, 0x8E1D, /* 0xE0 */
- 0x8E22, 0x8E0F, 0x8E29, 0x8E1F, 0x8E21, 0x8E1E, 0x8EBA, 0x8F1D, /* 0xF0 */
- 0x8F1B, 0x8F1F, 0x8F29, 0x8F26, 0x8F2A, 0x8F1C, 0x8F1E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_BE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8F25, 0x9069, 0x906E, 0x9068, 0x906D, 0x9077, 0x9130, 0x912D, /* 0x40 */
- 0x9127, 0x9131, 0x9187, 0x9189, 0x918B, 0x9183, 0x92C5, 0x92BB, /* 0x40 */
- 0x92B7, 0x92EA, 0x92AC, 0x92E4, 0x92C1, 0x92B3, 0x92BC, 0x92D2, /* 0x50 */
- 0x92C7, 0x92F0, 0x92B2, 0x95AD, 0x95B1, 0x9704, 0x9706, 0x9707, /* 0x50 */
- 0x9709, 0x9760, 0x978D, 0x978B, 0x978F, 0x9821, 0x982B, 0x981C, /* 0x60 */
- 0x98B3, 0x990A, 0x9913, 0x9912, 0x9918, 0x99DD, 0x99D0, 0x99DF, /* 0x60 */
- 0x99DB, 0x99D1, 0x99D5, 0x99D2, 0x99D9, 0x9AB7, 0x9AEE, 0x9AEF, /* 0x70 */
- 0x9B27, 0x9B45, 0x9B44, 0x9B77, 0x9B6F, 0x9D06, 0x9D09, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x9D03, 0x9EA9, 0x9EBE, 0x9ECE, 0x58A8, 0x9F52, 0x5112, /* 0xA0 */
- 0x5118, 0x5114, 0x5110, 0x5115, 0x5180, 0x51AA, 0x51DD, 0x5291, /* 0xA0 */
- 0x5293, 0x52F3, 0x5659, 0x566B, 0x5679, 0x5669, 0x5664, 0x5678, /* 0xB0 */
- 0x566A, 0x5668, 0x5665, 0x5671, 0x566F, 0x566C, 0x5662, 0x5676, /* 0xB0 */
- 0x58C1, 0x58BE, 0x58C7, 0x58C5, 0x596E, 0x5B1D, 0x5B34, 0x5B78, /* 0xC0 */
- 0x5BF0, 0x5C0E, 0x5F4A, 0x61B2, 0x6191, 0x61A9, 0x618A, 0x61CD, /* 0xC0 */
- 0x61B6, 0x61BE, 0x61CA, 0x61C8, 0x6230, 0x64C5, 0x64C1, 0x64CB, /* 0xD0 */
- 0x64BB, 0x64BC, 0x64DA, 0x64C4, 0x64C7, 0x64C2, 0x64CD, 0x64BF, /* 0xD0 */
- 0x64D2, 0x64D4, 0x64BE, 0x6574, 0x66C6, 0x66C9, 0x66B9, 0x66C4, /* 0xE0 */
- 0x66C7, 0x66B8, 0x6A3D, 0x6A38, 0x6A3A, 0x6A59, 0x6A6B, 0x6A58, /* 0xE0 */
- 0x6A39, 0x6A44, 0x6A62, 0x6A61, 0x6A4B, 0x6A47, 0x6A35, 0x6A5F, /* 0xF0 */
- 0x6A48, 0x6B59, 0x6B77, 0x6C05, 0x6FC2, 0x6FB1, 0x6FA1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_BF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6FC3, 0x6FA4, 0x6FC1, 0x6FA7, 0x6FB3, 0x6FC0, 0x6FB9, 0x6FB6, /* 0x40 */
- 0x6FA6, 0x6FA0, 0x6FB4, 0x71BE, 0x71C9, 0x71D0, 0x71D2, 0x71C8, /* 0x40 */
- 0x71D5, 0x71B9, 0x71CE, 0x71D9, 0x71DC, 0x71C3, 0x71C4, 0x7368, /* 0x50 */
- 0x749C, 0x74A3, 0x7498, 0x749F, 0x749E, 0x74E2, 0x750C, 0x750D, /* 0x50 */
- 0x7634, 0x7638, 0x763A, 0x76E7, 0x76E5, 0x77A0, 0x779E, 0x779F, /* 0x60 */
- 0x77A5, 0x78E8, 0x78DA, 0x78EC, 0x78E7, 0x79A6, 0x7A4D, 0x7A4E, /* 0x60 */
- 0x7A46, 0x7A4C, 0x7A4B, 0x7ABA, 0x7BD9, 0x7C11, 0x7BC9, 0x7BE4, /* 0x70 */
- 0x7BDB, 0x7BE1, 0x7BE9, 0x7BE6, 0x7CD5, 0x7CD6, 0x7E0A, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x7E11, 0x7E08, 0x7E1B, 0x7E23, 0x7E1E, 0x7E1D, 0x7E09, /* 0xA0 */
- 0x7E10, 0x7F79, 0x7FB2, 0x7FF0, 0x7FF1, 0x7FEE, 0x8028, 0x81B3, /* 0xA0 */
- 0x81A9, 0x81A8, 0x81FB, 0x8208, 0x8258, 0x8259, 0x854A, 0x8559, /* 0xB0 */
- 0x8548, 0x8568, 0x8569, 0x8543, 0x8549, 0x856D, 0x856A, 0x855E, /* 0xB0 */
- 0x8783, 0x879F, 0x879E, 0x87A2, 0x878D, 0x8861, 0x892A, 0x8932, /* 0xC0 */
- 0x8925, 0x892B, 0x8921, 0x89AA, 0x89A6, 0x8AE6, 0x8AFA, 0x8AEB, /* 0xC0 */
- 0x8AF1, 0x8B00, 0x8ADC, 0x8AE7, 0x8AEE, 0x8AFE, 0x8B01, 0x8B02, /* 0xD0 */
- 0x8AF7, 0x8AED, 0x8AF3, 0x8AF6, 0x8AFC, 0x8C6B, 0x8C6D, 0x8C93, /* 0xD0 */
- 0x8CF4, 0x8E44, 0x8E31, 0x8E34, 0x8E42, 0x8E39, 0x8E35, 0x8F3B, /* 0xE0 */
- 0x8F2F, 0x8F38, 0x8F33, 0x8FA8, 0x8FA6, 0x9075, 0x9074, 0x9078, /* 0xE0 */
- 0x9072, 0x907C, 0x907A, 0x9134, 0x9192, 0x9320, 0x9336, 0x92F8, /* 0xF0 */
- 0x9333, 0x932F, 0x9322, 0x92FC, 0x932B, 0x9304, 0x931A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_C0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9310, 0x9326, 0x9321, 0x9315, 0x932E, 0x9319, 0x95BB, 0x96A7, /* 0x40 */
- 0x96A8, 0x96AA, 0x96D5, 0x970E, 0x9711, 0x9716, 0x970D, 0x9713, /* 0x40 */
- 0x970F, 0x975B, 0x975C, 0x9766, 0x9798, 0x9830, 0x9838, 0x983B, /* 0x50 */
- 0x9837, 0x982D, 0x9839, 0x9824, 0x9910, 0x9928, 0x991E, 0x991B, /* 0x50 */
- 0x9921, 0x991A, 0x99ED, 0x99E2, 0x99F1, 0x9AB8, 0x9ABC, 0x9AFB, /* 0x60 */
- 0x9AED, 0x9B28, 0x9B91, 0x9D15, 0x9D23, 0x9D26, 0x9D28, 0x9D12, /* 0x60 */
- 0x9D1B, 0x9ED8, 0x9ED4, 0x9F8D, 0x9F9C, 0x512A, 0x511F, 0x5121, /* 0x70 */
- 0x5132, 0x52F5, 0x568E, 0x5680, 0x5690, 0x5685, 0x5687, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x568F, 0x58D5, 0x58D3, 0x58D1, 0x58CE, 0x5B30, 0x5B2A, /* 0xA0 */
- 0x5B24, 0x5B7A, 0x5C37, 0x5C68, 0x5DBC, 0x5DBA, 0x5DBD, 0x5DB8, /* 0xA0 */
- 0x5E6B, 0x5F4C, 0x5FBD, 0x61C9, 0x61C2, 0x61C7, 0x61E6, 0x61CB, /* 0xB0 */
- 0x6232, 0x6234, 0x64CE, 0x64CA, 0x64D8, 0x64E0, 0x64F0, 0x64E6, /* 0xB0 */
- 0x64EC, 0x64F1, 0x64E2, 0x64ED, 0x6582, 0x6583, 0x66D9, 0x66D6, /* 0xC0 */
- 0x6A80, 0x6A94, 0x6A84, 0x6AA2, 0x6A9C, 0x6ADB, 0x6AA3, 0x6A7E, /* 0xC0 */
- 0x6A97, 0x6A90, 0x6AA0, 0x6B5C, 0x6BAE, 0x6BDA, 0x6C08, 0x6FD8, /* 0xD0 */
- 0x6FF1, 0x6FDF, 0x6FE0, 0x6FDB, 0x6FE4, 0x6FEB, 0x6FEF, 0x6F80, /* 0xD0 */
- 0x6FEC, 0x6FE1, 0x6FE9, 0x6FD5, 0x6FEE, 0x6FF0, 0x71E7, 0x71DF, /* 0xE0 */
- 0x71EE, 0x71E6, 0x71E5, 0x71ED, 0x71EC, 0x71F4, 0x71E0, 0x7235, /* 0xE0 */
- 0x7246, 0x7370, 0x7372, 0x74A9, 0x74B0, 0x74A6, 0x74A8, 0x7646, /* 0xF0 */
- 0x7642, 0x764C, 0x76EA, 0x77B3, 0x77AA, 0x77B0, 0x77AC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_C1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x77A7, 0x77AD, 0x77EF, 0x78F7, 0x78FA, 0x78F4, 0x78EF, 0x7901, /* 0x40 */
- 0x79A7, 0x79AA, 0x7A57, 0x7ABF, 0x7C07, 0x7C0D, 0x7BFE, 0x7BF7, /* 0x40 */
- 0x7C0C, 0x7BE0, 0x7CE0, 0x7CDC, 0x7CDE, 0x7CE2, 0x7CDF, 0x7CD9, /* 0x50 */
- 0x7CDD, 0x7E2E, 0x7E3E, 0x7E46, 0x7E37, 0x7E32, 0x7E43, 0x7E2B, /* 0x50 */
- 0x7E3D, 0x7E31, 0x7E45, 0x7E41, 0x7E34, 0x7E39, 0x7E48, 0x7E35, /* 0x60 */
- 0x7E3F, 0x7E2F, 0x7F44, 0x7FF3, 0x7FFC, 0x8071, 0x8072, 0x8070, /* 0x60 */
- 0x806F, 0x8073, 0x81C6, 0x81C3, 0x81BA, 0x81C2, 0x81C0, 0x81BF, /* 0x70 */
- 0x81BD, 0x81C9, 0x81BE, 0x81E8, 0x8209, 0x8271, 0x85AA, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x8584, 0x857E, 0x859C, 0x8591, 0x8594, 0x85AF, 0x859B, /* 0xA0 */
- 0x8587, 0x85A8, 0x858A, 0x8667, 0x87C0, 0x87D1, 0x87B3, 0x87D2, /* 0xA0 */
- 0x87C6, 0x87AB, 0x87BB, 0x87BA, 0x87C8, 0x87CB, 0x893B, 0x8936, /* 0xB0 */
- 0x8944, 0x8938, 0x893D, 0x89AC, 0x8B0E, 0x8B17, 0x8B19, 0x8B1B, /* 0xB0 */
- 0x8B0A, 0x8B20, 0x8B1D, 0x8B04, 0x8B10, 0x8C41, 0x8C3F, 0x8C73, /* 0xC0 */
- 0x8CFA, 0x8CFD, 0x8CFC, 0x8CF8, 0x8CFB, 0x8DA8, 0x8E49, 0x8E4B, /* 0xC0 */
- 0x8E48, 0x8E4A, 0x8F44, 0x8F3E, 0x8F42, 0x8F45, 0x8F3F, 0x907F, /* 0xD0 */
- 0x907D, 0x9084, 0x9081, 0x9082, 0x9080, 0x9139, 0x91A3, 0x919E, /* 0xD0 */
- 0x919C, 0x934D, 0x9382, 0x9328, 0x9375, 0x934A, 0x9365, 0x934B, /* 0xE0 */
- 0x9318, 0x937E, 0x936C, 0x935B, 0x9370, 0x935A, 0x9354, 0x95CA, /* 0xE0 */
- 0x95CB, 0x95CC, 0x95C8, 0x95C6, 0x96B1, 0x96B8, 0x96D6, 0x971C, /* 0xF0 */
- 0x971E, 0x97A0, 0x97D3, 0x9846, 0x98B6, 0x9935, 0x9A01 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_C2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x99FF, 0x9BAE, 0x9BAB, 0x9BAA, 0x9BAD, 0x9D3B, 0x9D3F, 0x9E8B, /* 0x40 */
- 0x9ECF, 0x9EDE, 0x9EDC, 0x9EDD, 0x9EDB, 0x9F3E, 0x9F4B, 0x53E2, /* 0x40 */
- 0x5695, 0x56AE, 0x58D9, 0x58D8, 0x5B38, 0x5F5D, 0x61E3, 0x6233, /* 0x50 */
- 0x64F4, 0x64F2, 0x64FE, 0x6506, 0x64FA, 0x64FB, 0x64F7, 0x65B7, /* 0x50 */
- 0x66DC, 0x6726, 0x6AB3, 0x6AAC, 0x6AC3, 0x6ABB, 0x6AB8, 0x6AC2, /* 0x60 */
- 0x6AAE, 0x6AAF, 0x6B5F, 0x6B78, 0x6BAF, 0x7009, 0x700B, 0x6FFE, /* 0x60 */
- 0x7006, 0x6FFA, 0x7011, 0x700F, 0x71FB, 0x71FC, 0x71FE, 0x71F8, /* 0x70 */
- 0x7377, 0x7375, 0x74A7, 0x74BF, 0x7515, 0x7656, 0x7658, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x7652, 0x77BD, 0x77BF, 0x77BB, 0x77BC, 0x790E, 0x79AE, /* 0xA0 */
- 0x7A61, 0x7A62, 0x7A60, 0x7AC4, 0x7AC5, 0x7C2B, 0x7C27, 0x7C2A, /* 0xA0 */
- 0x7C1E, 0x7C23, 0x7C21, 0x7CE7, 0x7E54, 0x7E55, 0x7E5E, 0x7E5A, /* 0xB0 */
- 0x7E61, 0x7E52, 0x7E59, 0x7F48, 0x7FF9, 0x7FFB, 0x8077, 0x8076, /* 0xB0 */
- 0x81CD, 0x81CF, 0x820A, 0x85CF, 0x85A9, 0x85CD, 0x85D0, 0x85C9, /* 0xC0 */
- 0x85B0, 0x85BA, 0x85B9, 0x85A6, 0x87EF, 0x87EC, 0x87F2, 0x87E0, /* 0xC0 */
- 0x8986, 0x89B2, 0x89F4, 0x8B28, 0x8B39, 0x8B2C, 0x8B2B, 0x8C50, /* 0xD0 */
- 0x8D05, 0x8E59, 0x8E63, 0x8E66, 0x8E64, 0x8E5F, 0x8E55, 0x8EC0, /* 0xD0 */
- 0x8F49, 0x8F4D, 0x9087, 0x9083, 0x9088, 0x91AB, 0x91AC, 0x91D0, /* 0xE0 */
- 0x9394, 0x938A, 0x9396, 0x93A2, 0x93B3, 0x93AE, 0x93AC, 0x93B0, /* 0xE0 */
- 0x9398, 0x939A, 0x9397, 0x95D4, 0x95D6, 0x95D0, 0x95D5, 0x96E2, /* 0xF0 */
- 0x96DC, 0x96D9, 0x96DB, 0x96DE, 0x9724, 0x97A3, 0x97A6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_C3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x97AD, 0x97F9, 0x984D, 0x984F, 0x984C, 0x984E, 0x9853, 0x98BA, /* 0x40 */
- 0x993E, 0x993F, 0x993D, 0x992E, 0x99A5, 0x9A0E, 0x9AC1, 0x9B03, /* 0x40 */
- 0x9B06, 0x9B4F, 0x9B4E, 0x9B4D, 0x9BCA, 0x9BC9, 0x9BFD, 0x9BC8, /* 0x50 */
- 0x9BC0, 0x9D51, 0x9D5D, 0x9D60, 0x9EE0, 0x9F15, 0x9F2C, 0x5133, /* 0x50 */
- 0x56A5, 0x58DE, 0x58DF, 0x58E2, 0x5BF5, 0x9F90, 0x5EEC, 0x61F2, /* 0x60 */
- 0x61F7, 0x61F6, 0x61F5, 0x6500, 0x650F, 0x66E0, 0x66DD, 0x6AE5, /* 0x60 */
- 0x6ADD, 0x6ADA, 0x6AD3, 0x701B, 0x701F, 0x7028, 0x701A, 0x701D, /* 0x70 */
- 0x7015, 0x7018, 0x7206, 0x720D, 0x7258, 0x72A2, 0x7378, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x737A, 0x74BD, 0x74CA, 0x74E3, 0x7587, 0x7586, 0x765F, /* 0xA0 */
- 0x7661, 0x77C7, 0x7919, 0x79B1, 0x7A6B, 0x7A69, 0x7C3E, 0x7C3F, /* 0xA0 */
- 0x7C38, 0x7C3D, 0x7C37, 0x7C40, 0x7E6B, 0x7E6D, 0x7E79, 0x7E69, /* 0xB0 */
- 0x7E6A, 0x7F85, 0x7E73, 0x7FB6, 0x7FB9, 0x7FB8, 0x81D8, 0x85E9, /* 0xB0 */
- 0x85DD, 0x85EA, 0x85D5, 0x85E4, 0x85E5, 0x85F7, 0x87FB, 0x8805, /* 0xC0 */
- 0x880D, 0x87F9, 0x87FE, 0x8960, 0x895F, 0x8956, 0x895E, 0x8B41, /* 0xC0 */
- 0x8B5C, 0x8B58, 0x8B49, 0x8B5A, 0x8B4E, 0x8B4F, 0x8B46, 0x8B59, /* 0xD0 */
- 0x8D08, 0x8D0A, 0x8E7C, 0x8E72, 0x8E87, 0x8E76, 0x8E6C, 0x8E7A, /* 0xD0 */
- 0x8E74, 0x8F54, 0x8F4E, 0x8FAD, 0x908A, 0x908B, 0x91B1, 0x91AE, /* 0xE0 */
- 0x93E1, 0x93D1, 0x93DF, 0x93C3, 0x93C8, 0x93DC, 0x93DD, 0x93D6, /* 0xE0 */
- 0x93E2, 0x93CD, 0x93D8, 0x93E4, 0x93D7, 0x93E8, 0x95DC, 0x96B4, /* 0xF0 */
- 0x96E3, 0x972A, 0x9727, 0x9761, 0x97DC, 0x97FB, 0x985E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_C4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x9858, 0x985B, 0x98BC, 0x9945, 0x9949, 0x9A16, 0x9A19, 0x9B0D, /* 0x40 */
- 0x9BE8, 0x9BE7, 0x9BD6, 0x9BDB, 0x9D89, 0x9D61, 0x9D72, 0x9D6A, /* 0x40 */
- 0x9D6C, 0x9E92, 0x9E97, 0x9E93, 0x9EB4, 0x52F8, 0x56A8, 0x56B7, /* 0x50 */
- 0x56B6, 0x56B4, 0x56BC, 0x58E4, 0x5B40, 0x5B43, 0x5B7D, 0x5BF6, /* 0x50 */
- 0x5DC9, 0x61F8, 0x61FA, 0x6518, 0x6514, 0x6519, 0x66E6, 0x6727, /* 0x60 */
- 0x6AEC, 0x703E, 0x7030, 0x7032, 0x7210, 0x737B, 0x74CF, 0x7662, /* 0x60 */
- 0x7665, 0x7926, 0x792A, 0x792C, 0x792B, 0x7AC7, 0x7AF6, 0x7C4C, /* 0x70 */
- 0x7C43, 0x7C4D, 0x7CEF, 0x7CF0, 0x8FAE, 0x7E7D, 0x7E7C, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x7E82, 0x7F4C, 0x8000, 0x81DA, 0x8266, 0x85FB, 0x85F9, /* 0xA0 */
- 0x8611, 0x85FA, 0x8606, 0x860B, 0x8607, 0x860A, 0x8814, 0x8815, /* 0xA0 */
- 0x8964, 0x89BA, 0x89F8, 0x8B70, 0x8B6C, 0x8B66, 0x8B6F, 0x8B5F, /* 0xB0 */
- 0x8B6B, 0x8D0F, 0x8D0D, 0x8E89, 0x8E81, 0x8E85, 0x8E82, 0x91B4, /* 0xB0 */
- 0x91CB, 0x9418, 0x9403, 0x93FD, 0x95E1, 0x9730, 0x98C4, 0x9952, /* 0xC0 */
- 0x9951, 0x99A8, 0x9A2B, 0x9A30, 0x9A37, 0x9A35, 0x9C13, 0x9C0D, /* 0xC0 */
- 0x9E79, 0x9EB5, 0x9EE8, 0x9F2F, 0x9F5F, 0x9F63, 0x9F61, 0x5137, /* 0xD0 */
- 0x5138, 0x56C1, 0x56C0, 0x56C2, 0x5914, 0x5C6C, 0x5DCD, 0x61FC, /* 0xD0 */
- 0x61FE, 0x651D, 0x651C, 0x6595, 0x66E9, 0x6AFB, 0x6B04, 0x6AFA, /* 0xE0 */
- 0x6BB2, 0x704C, 0x721B, 0x72A7, 0x74D6, 0x74D4, 0x7669, 0x77D3, /* 0xE0 */
- 0x7C50, 0x7E8F, 0x7E8C, 0x7FBC, 0x8617, 0x862D, 0x861A, 0x8823, /* 0xF0 */
- 0x8822, 0x8821, 0x881F, 0x896A, 0x896C, 0x89BD, 0x8B74 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_C5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8B77, 0x8B7D, 0x8D13, 0x8E8A, 0x8E8D, 0x8E8B, 0x8F5F, 0x8FAF, /* 0x40 */
- 0x91BA, 0x942E, 0x9433, 0x9435, 0x943A, 0x9438, 0x9432, 0x942B, /* 0x40 */
- 0x95E2, 0x9738, 0x9739, 0x9732, 0x97FF, 0x9867, 0x9865, 0x9957, /* 0x50 */
- 0x9A45, 0x9A43, 0x9A40, 0x9A3E, 0x9ACF, 0x9B54, 0x9B51, 0x9C2D, /* 0x50 */
- 0x9C25, 0x9DAF, 0x9DB4, 0x9DC2, 0x9DB8, 0x9E9D, 0x9EEF, 0x9F19, /* 0x60 */
- 0x9F5C, 0x9F66, 0x9F67, 0x513C, 0x513B, 0x56C8, 0x56CA, 0x56C9, /* 0x60 */
- 0x5B7F, 0x5DD4, 0x5DD2, 0x5F4E, 0x61FF, 0x6524, 0x6B0A, 0x6B61, /* 0x70 */
- 0x7051, 0x7058, 0x7380, 0x74E4, 0x758A, 0x766E, 0x766C, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x79B3, 0x7C60, 0x7C5F, 0x807E, 0x807D, 0x81DF, 0x8972, /* 0xA0 */
- 0x896F, 0x89FC, 0x8B80, 0x8D16, 0x8D17, 0x8E91, 0x8E93, 0x8F61, /* 0xA0 */
- 0x9148, 0x9444, 0x9451, 0x9452, 0x973D, 0x973E, 0x97C3, 0x97C1, /* 0xB0 */
- 0x986B, 0x9955, 0x9A55, 0x9A4D, 0x9AD2, 0x9B1A, 0x9C49, 0x9C31, /* 0xB0 */
- 0x9C3E, 0x9C3B, 0x9DD3, 0x9DD7, 0x9F34, 0x9F6C, 0x9F6A, 0x9F94, /* 0xC0 */
- 0x56CC, 0x5DD6, 0x6200, 0x6523, 0x652B, 0x652A, 0x66EC, 0x6B10, /* 0xC0 */
- 0x74DA, 0x7ACA, 0x7C64, 0x7C63, 0x7C65, 0x7E93, 0x7E96, 0x7E94, /* 0xD0 */
- 0x81E2, 0x8638, 0x863F, 0x8831, 0x8B8A, 0x9090, 0x908F, 0x9463, /* 0xD0 */
- 0x9460, 0x9464, 0x9768, 0x986F, 0x995C, 0x9A5A, 0x9A5B, 0x9A57, /* 0xE0 */
- 0x9AD3, 0x9AD4, 0x9AD1, 0x9C54, 0x9C57, 0x9C56, 0x9DE5, 0x9E9F, /* 0xE0 */
- 0x9EF4, 0x56D1, 0x58E9, 0x652C, 0x705E, 0x7671, 0x7672, 0x77D7, /* 0xF0 */
- 0x7F50, 0x7F88, 0x8836, 0x8839, 0x8862, 0x8B93, 0x8B92 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_C6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8B96, 0x8277, 0x8D1B, 0x91C0, 0x946A, 0x9742, 0x9748, 0x9744, /* 0x40 */
- 0x97C6, 0x9870, 0x9A5F, 0x9B22, 0x9B58, 0x9C5F, 0x9DF9, 0x9DFA, /* 0x40 */
- 0x9E7C, 0x9E7D, 0x9F07, 0x9F77, 0x9F72, 0x5EF3, 0x6B16, 0x7063, /* 0x50 */
- 0x7C6C, 0x7C6E, 0x883B, 0x89C0, 0x8EA1, 0x91C1, 0x9472, 0x9470, /* 0x50 */
- 0x9871, 0x995E, 0x9AD6, 0x9B23, 0x9ECC, 0x7064, 0x77DA, 0x8B9A, /* 0x60 */
- 0x9477, 0x97C9, 0x9A62, 0x9A65, 0x7E9C, 0x8B9C, 0x8EAA, 0x91C5, /* 0x60 */
- 0x947D, 0x947E, 0x947C, 0x9C77, 0x9C78, 0x9EF7, 0x8C54, 0x947F, /* 0x70 */
- 0x9E1A, 0x7228, 0x9A6A, 0x9B31, 0x9E1B, 0x9E1E, 0x7C72 /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* This table only used for BIG5, because on other systems these */
-/* chars are end user defined characters */
-/* SB: This is nonstandard, and has effects on generate/big5hkscs2001.pl. */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5ONLY_C6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8B96, 0x8277, 0x8D1B, 0x91C0, 0x946A, 0x9742, 0x9748, 0x9744, /* 0x40 */
- 0x97C6, 0x9870, 0x9A5F, 0x9B22, 0x9B58, 0x9C5F, 0x9DF9, 0x9DFA, /* 0x40 */
- 0x9E7C, 0x9E7D, 0x9F07, 0x9F77, 0x9F72, 0x5EF3, 0x6B16, 0x7063, /* 0x50 */
- 0x7C6C, 0x7C6E, 0x883B, 0x89C0, 0x8EA1, 0x91C1, 0x9472, 0x9470, /* 0x50 */
- 0x9871, 0x995E, 0x9AD6, 0x9B23, 0x9ECC, 0x7064, 0x77DA, 0x8B9A, /* 0x60 */
- 0x9477, 0x97C9, 0x9A62, 0x9A65, 0x7E9C, 0x8B9C, 0x8EAA, 0x91C5, /* 0x60 */
- 0x947D, 0x947E, 0x947C, 0x9C77, 0x9C78, 0x9EF7, 0x8C54, 0x947F, /* 0x70 */
- 0x9E1A, 0x7228, 0x9A6A, 0x9B31, 0x9E1B, 0x9E1E, 0x7C72, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x30FE, 0x309D, 0x309E, 0x3005, 0x3041, 0x3042, 0x3043, /* 0xA0 */
- 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 0x304A, 0x304B, /* 0xA0 */
- 0x304C, 0x304D, 0x304E, 0x304F, 0x3050, 0x3051, 0x3052, 0x3053, /* 0xB0 */
- 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305A, 0x305B, /* 0xB0 */
- 0x305C, 0x305D, 0x305E, 0x305F, 0x3060, 0x3061, 0x3062, 0x3063, /* 0xC0 */
- 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306A, 0x306B, /* 0xC0 */
- 0x306C, 0x306D, 0x306E, 0x306F, 0x3070, 0x3071, 0x3072, 0x3073, /* 0xD0 */
- 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, 0x3079, 0x307A, 0x307B, /* 0xD0 */
- 0x307C, 0x307D, 0x307E, 0x307F, 0x3080, 0x3081, 0x3082, 0x3083, /* 0xE0 */
- 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, 0x3089, 0x308A, 0x308B, /* 0xE0 */
- 0x308C, 0x308D, 0x308E, 0x308F, 0x3090, 0x3091, 0x3092, 0x3093, /* 0xF0 */
- 0x30A1, 0x30A2, 0x30A3, 0x30A4, 0x30A5, 0x30A6, 0x30A7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* This table only used for BIG5, because on other systems these */
-/* chars are end user defined characters */
-/* SB: This is nonstandard, and has effects on generate/big5hkscs2001.pl. */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5ONLY_C7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x30A8, 0x30A9, 0x30AA, 0x30AB, 0x30AC, 0x30AD, 0x30AE, 0x30AF, /* 0x40 */
- 0x30B0, 0x30B1, 0x30B2, 0x30B3, 0x30B4, 0x30B5, 0x30B6, 0x30B7, /* 0x40 */
- 0x30B8, 0x30B9, 0x30BA, 0x30BB, 0x30BC, 0x30BD, 0x30BE, 0x30BF, /* 0x50 */
- 0x30C0, 0x30C1, 0x30C2, 0x30C3, 0x30C4, 0x30C5, 0x30C6, 0x30C7, /* 0x50 */
- 0x30C8, 0x30C9, 0x30CA, 0x30CB, 0x30CC, 0x30CD, 0x30CE, 0x30CF, /* 0x60 */
- 0x30D0, 0x30D1, 0x30D2, 0x30D3, 0x30D4, 0x30D5, 0x30D6, 0x30D7, /* 0x60 */
- 0x30D8, 0x30D9, 0x30DA, 0x30DB, 0x30DC, 0x30DD, 0x30DE, 0x30DF, /* 0x70 */
- 0x30E0, 0x30E1, 0x30E2, 0x30E3, 0x30E4, 0x30E5, 0x30E6, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x30E7, 0x30E8, 0x30E9, 0x30EA, 0x30EB, 0x30EC, 0x30ED, /* 0xA0 */
- 0x30EE, 0x30EF, 0x30F0, 0x30F1, 0x30F2, 0x30F3, 0x30F4, 0x30F5, /* 0xA0 */
- 0x30F6, 0x0414, 0x0415, 0x0401, 0x0416, 0x0417, 0x0418, 0x0419, /* 0xB0 */
- 0x041A, 0x041B, 0x041C, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0xB0 */
- 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0xC0 */
- 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436, /* 0xC0 */
- 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, /* 0xD0 */
- 0x043F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, /* 0xD0 */
- 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, /* 0xE0 */
- 0x044F, 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, /* 0xE0 */
- 0x2467, 0x2468, 0x2469, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, /* 0xF0 */
- 0x2479, 0x247A, 0x247B, 0x247C, 0x247D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_C9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x4E42, 0x4E5C, 0x51F5, 0x531A, 0x5382, 0x4E07, 0x4E0C, 0x4E47, /* 0x40 */
- 0x4E8D, 0x56D7, 0xFA0C, 0x5C6E, 0x5F73, 0x4E0F, 0x5187, 0x4E0E, /* 0x40 */
- 0x4E2E, 0x4E93, 0x4EC2, 0x4EC9, 0x4EC8, 0x5198, 0x52FC, 0x536C, /* 0x50 */
- 0x53B9, 0x5720, 0x5903, 0x592C, 0x5C10, 0x5DFF, 0x65E1, 0x6BB3, /* 0x50 */
- 0x6BCC, 0x6C14, 0x723F, 0x4E31, 0x4E3C, 0x4EE8, 0x4EDC, 0x4EE9, /* 0x60 */
- 0x4EE1, 0x4EDD, 0x4EDA, 0x520C, 0x531C, 0x534C, 0x5722, 0x5723, /* 0x60 */
- 0x5917, 0x592F, 0x5B81, 0x5B84, 0x5C12, 0x5C3B, 0x5C74, 0x5C73, /* 0x70 */
- 0x5E04, 0x5E80, 0x5E82, 0x5FC9, 0x6209, 0x6250, 0x6C15, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x6C36, 0x6C43, 0x6C3F, 0x6C3B, 0x72AE, 0x72B0, 0x738A, /* 0xA0 */
- 0x79B8, 0x808A, 0x961E, 0x4F0E, 0x4F18, 0x4F2C, 0x4EF5, 0x4F14, /* 0xA0 */
- 0x4EF1, 0x4F00, 0x4EF7, 0x4F08, 0x4F1D, 0x4F02, 0x4F05, 0x4F22, /* 0xB0 */
- 0x4F13, 0x4F04, 0x4EF4, 0x4F12, 0x51B1, 0x5213, 0x5209, 0x5210, /* 0xB0 */
- 0x52A6, 0x5322, 0x531F, 0x534D, 0x538A, 0x5407, 0x56E1, 0x56DF, /* 0xC0 */
- 0x572E, 0x572A, 0x5734, 0x593C, 0x5980, 0x597C, 0x5985, 0x597B, /* 0xC0 */
- 0x597E, 0x5977, 0x597F, 0x5B56, 0x5C15, 0x5C25, 0x5C7C, 0x5C7A, /* 0xD0 */
- 0x5C7B, 0x5C7E, 0x5DDF, 0x5E75, 0x5E84, 0x5F02, 0x5F1A, 0x5F74, /* 0xD0 */
- 0x5FD5, 0x5FD4, 0x5FCF, 0x625C, 0x625E, 0x6264, 0x6261, 0x6266, /* 0xE0 */
- 0x6262, 0x6259, 0x6260, 0x625A, 0x6265, 0x65EF, 0x65EE, 0x673E, /* 0xE0 */
- 0x6739, 0x6738, 0x673B, 0x673A, 0x673F, 0x673C, 0x6733, 0x6C18, /* 0xF0 */
- 0x6C46, 0x6C52, 0x6C5C, 0x6C4F, 0x6C4A, 0x6C54, 0x6C4B /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_CA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6C4C, 0x7071, 0x725E, 0x72B4, 0x72B5, 0x738E, 0x752A, 0x767F, /* 0x40 */
- 0x7A75, 0x7F51, 0x8278, 0x827C, 0x8280, 0x827D, 0x827F, 0x864D, /* 0x40 */
- 0x897E, 0x9099, 0x9097, 0x9098, 0x909B, 0x9094, 0x9622, 0x9624, /* 0x50 */
- 0x9620, 0x9623, 0x4F56, 0x4F3B, 0x4F62, 0x4F49, 0x4F53, 0x4F64, /* 0x50 */
- 0x4F3E, 0x4F67, 0x4F52, 0x4F5F, 0x4F41, 0x4F58, 0x4F2D, 0x4F33, /* 0x60 */
- 0x4F3F, 0x4F61, 0x518F, 0x51B9, 0x521C, 0x521E, 0x5221, 0x52AD, /* 0x60 */
- 0x52AE, 0x5309, 0x5363, 0x5372, 0x538E, 0x538F, 0x5430, 0x5437, /* 0x70 */
- 0x542A, 0x5454, 0x5445, 0x5419, 0x541C, 0x5425, 0x5418, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x543D, 0x544F, 0x5441, 0x5428, 0x5424, 0x5447, 0x56EE, /* 0xA0 */
- 0x56E7, 0x56E5, 0x5741, 0x5745, 0x574C, 0x5749, 0x574B, 0x5752, /* 0xA0 */
- 0x5906, 0x5940, 0x59A6, 0x5998, 0x59A0, 0x5997, 0x598E, 0x59A2, /* 0xB0 */
- 0x5990, 0x598F, 0x59A7, 0x59A1, 0x5B8E, 0x5B92, 0x5C28, 0x5C2A, /* 0xB0 */
- 0x5C8D, 0x5C8F, 0x5C88, 0x5C8B, 0x5C89, 0x5C92, 0x5C8A, 0x5C86, /* 0xC0 */
- 0x5C93, 0x5C95, 0x5DE0, 0x5E0A, 0x5E0E, 0x5E8B, 0x5E89, 0x5E8C, /* 0xC0 */
- 0x5E88, 0x5E8D, 0x5F05, 0x5F1D, 0x5F78, 0x5F76, 0x5FD2, 0x5FD1, /* 0xD0 */
- 0x5FD0, 0x5FED, 0x5FE8, 0x5FEE, 0x5FF3, 0x5FE1, 0x5FE4, 0x5FE3, /* 0xD0 */
- 0x5FFA, 0x5FEF, 0x5FF7, 0x5FFB, 0x6000, 0x5FF4, 0x623A, 0x6283, /* 0xE0 */
- 0x628C, 0x628E, 0x628F, 0x6294, 0x6287, 0x6271, 0x627B, 0x627A, /* 0xE0 */
- 0x6270, 0x6281, 0x6288, 0x6277, 0x627D, 0x6272, 0x6274, 0x6537, /* 0xF0 */
- 0x65F0, 0x65F4, 0x65F3, 0x65F2, 0x65F5, 0x6745, 0x6747 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_CB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6759, 0x6755, 0x674C, 0x6748, 0x675D, 0x674D, 0x675A, 0x674B, /* 0x40 */
- 0x6BD0, 0x6C19, 0x6C1A, 0x6C78, 0x6C67, 0x6C6B, 0x6C84, 0x6C8B, /* 0x40 */
- 0x6C8F, 0x6C71, 0x6C6F, 0x6C69, 0x6C9A, 0x6C6D, 0x6C87, 0x6C95, /* 0x50 */
- 0x6C9C, 0x6C66, 0x6C73, 0x6C65, 0x6C7B, 0x6C8E, 0x7074, 0x707A, /* 0x50 */
- 0x7263, 0x72BF, 0x72BD, 0x72C3, 0x72C6, 0x72C1, 0x72BA, 0x72C5, /* 0x60 */
- 0x7395, 0x7397, 0x7393, 0x7394, 0x7392, 0x753A, 0x7539, 0x7594, /* 0x60 */
- 0x7595, 0x7681, 0x793D, 0x8034, 0x8095, 0x8099, 0x8090, 0x8092, /* 0x70 */
- 0x809C, 0x8290, 0x828F, 0x8285, 0x828E, 0x8291, 0x8293, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x828A, 0x8283, 0x8284, 0x8C78, 0x8FC9, 0x8FBF, 0x909F, /* 0xA0 */
- 0x90A1, 0x90A5, 0x909E, 0x90A7, 0x90A0, 0x9630, 0x9628, 0x962F, /* 0xA0 */
- 0x962D, 0x4E33, 0x4F98, 0x4F7C, 0x4F85, 0x4F7D, 0x4F80, 0x4F87, /* 0xB0 */
- 0x4F76, 0x4F74, 0x4F89, 0x4F84, 0x4F77, 0x4F4C, 0x4F97, 0x4F6A, /* 0xB0 */
- 0x4F9A, 0x4F79, 0x4F81, 0x4F78, 0x4F90, 0x4F9C, 0x4F94, 0x4F9E, /* 0xC0 */
- 0x4F92, 0x4F82, 0x4F95, 0x4F6B, 0x4F6E, 0x519E, 0x51BC, 0x51BE, /* 0xC0 */
- 0x5235, 0x5232, 0x5233, 0x5246, 0x5231, 0x52BC, 0x530A, 0x530B, /* 0xD0 */
- 0x533C, 0x5392, 0x5394, 0x5487, 0x547F, 0x5481, 0x5491, 0x5482, /* 0xD0 */
- 0x5488, 0x546B, 0x547A, 0x547E, 0x5465, 0x546C, 0x5474, 0x5466, /* 0xE0 */
- 0x548D, 0x546F, 0x5461, 0x5460, 0x5498, 0x5463, 0x5467, 0x5464, /* 0xE0 */
- 0x56F7, 0x56F9, 0x576F, 0x5772, 0x576D, 0x576B, 0x5771, 0x5770, /* 0xF0 */
- 0x5776, 0x5780, 0x5775, 0x577B, 0x5773, 0x5774, 0x5762 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_CC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5768, 0x577D, 0x590C, 0x5945, 0x59B5, 0x59BA, 0x59CF, 0x59CE, /* 0x40 */
- 0x59B2, 0x59CC, 0x59C1, 0x59B6, 0x59BC, 0x59C3, 0x59D6, 0x59B1, /* 0x40 */
- 0x59BD, 0x59C0, 0x59C8, 0x59B4, 0x59C7, 0x5B62, 0x5B65, 0x5B93, /* 0x50 */
- 0x5B95, 0x5C44, 0x5C47, 0x5CAE, 0x5CA4, 0x5CA0, 0x5CB5, 0x5CAF, /* 0x50 */
- 0x5CA8, 0x5CAC, 0x5C9F, 0x5CA3, 0x5CAD, 0x5CA2, 0x5CAA, 0x5CA7, /* 0x60 */
- 0x5C9D, 0x5CA5, 0x5CB6, 0x5CB0, 0x5CA6, 0x5E17, 0x5E14, 0x5E19, /* 0x60 */
- 0x5F28, 0x5F22, 0x5F23, 0x5F24, 0x5F54, 0x5F82, 0x5F7E, 0x5F7D, /* 0x70 */
- 0x5FDE, 0x5FE5, 0x602D, 0x6026, 0x6019, 0x6032, 0x600B, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x6034, 0x600A, 0x6017, 0x6033, 0x601A, 0x601E, 0x602C, /* 0xA0 */
- 0x6022, 0x600D, 0x6010, 0x602E, 0x6013, 0x6011, 0x600C, 0x6009, /* 0xA0 */
- 0x601C, 0x6214, 0x623D, 0x62AD, 0x62B4, 0x62D1, 0x62BE, 0x62AA, /* 0xB0 */
- 0x62B6, 0x62CA, 0x62AE, 0x62B3, 0x62AF, 0x62BB, 0x62A9, 0x62B0, /* 0xB0 */
- 0x62B8, 0x653D, 0x65A8, 0x65BB, 0x6609, 0x65FC, 0x6604, 0x6612, /* 0xC0 */
- 0x6608, 0x65FB, 0x6603, 0x660B, 0x660D, 0x6605, 0x65FD, 0x6611, /* 0xC0 */
- 0x6610, 0x66F6, 0x670A, 0x6785, 0x676C, 0x678E, 0x6792, 0x6776, /* 0xD0 */
- 0x677B, 0x6798, 0x6786, 0x6784, 0x6774, 0x678D, 0x678C, 0x677A, /* 0xD0 */
- 0x679F, 0x6791, 0x6799, 0x6783, 0x677D, 0x6781, 0x6778, 0x6779, /* 0xE0 */
- 0x6794, 0x6B25, 0x6B80, 0x6B7E, 0x6BDE, 0x6C1D, 0x6C93, 0x6CEC, /* 0xE0 */
- 0x6CEB, 0x6CEE, 0x6CD9, 0x6CB6, 0x6CD4, 0x6CAD, 0x6CE7, 0x6CB7, /* 0xF0 */
- 0x6CD0, 0x6CC2, 0x6CBA, 0x6CC3, 0x6CC6, 0x6CED, 0x6CF2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_CD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6CD2, 0x6CDD, 0x6CB4, 0x6C8A, 0x6C9D, 0x6C80, 0x6CDE, 0x6CC0, /* 0x40 */
- 0x6D30, 0x6CCD, 0x6CC7, 0x6CB0, 0x6CF9, 0x6CCF, 0x6CE9, 0x6CD1, /* 0x40 */
- 0x7094, 0x7098, 0x7085, 0x7093, 0x7086, 0x7084, 0x7091, 0x7096, /* 0x50 */
- 0x7082, 0x709A, 0x7083, 0x726A, 0x72D6, 0x72CB, 0x72D8, 0x72C9, /* 0x50 */
- 0x72DC, 0x72D2, 0x72D4, 0x72DA, 0x72CC, 0x72D1, 0x73A4, 0x73A1, /* 0x60 */
- 0x73AD, 0x73A6, 0x73A2, 0x73A0, 0x73AC, 0x739D, 0x74DD, 0x74E8, /* 0x60 */
- 0x753F, 0x7540, 0x753E, 0x758C, 0x7598, 0x76AF, 0x76F3, 0x76F1, /* 0x70 */
- 0x76F0, 0x76F5, 0x77F8, 0x77FC, 0x77F9, 0x77FB, 0x77FA, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x77F7, 0x7942, 0x793F, 0x79C5, 0x7A78, 0x7A7B, 0x7AFB, /* 0xA0 */
- 0x7C75, 0x7CFD, 0x8035, 0x808F, 0x80AE, 0x80A3, 0x80B8, 0x80B5, /* 0xA0 */
- 0x80AD, 0x8220, 0x82A0, 0x82C0, 0x82AB, 0x829A, 0x8298, 0x829B, /* 0xB0 */
- 0x82B5, 0x82A7, 0x82AE, 0x82BC, 0x829E, 0x82BA, 0x82B4, 0x82A8, /* 0xB0 */
- 0x82A1, 0x82A9, 0x82C2, 0x82A4, 0x82C3, 0x82B6, 0x82A2, 0x8670, /* 0xC0 */
- 0x866F, 0x866D, 0x866E, 0x8C56, 0x8FD2, 0x8FCB, 0x8FD3, 0x8FCD, /* 0xC0 */
- 0x8FD6, 0x8FD5, 0x8FD7, 0x90B2, 0x90B4, 0x90AF, 0x90B3, 0x90B0, /* 0xD0 */
- 0x9639, 0x963D, 0x963C, 0x963A, 0x9643, 0x4FCD, 0x4FC5, 0x4FD3, /* 0xD0 */
- 0x4FB2, 0x4FC9, 0x4FCB, 0x4FC1, 0x4FD4, 0x4FDC, 0x4FD9, 0x4FBB, /* 0xE0 */
- 0x4FB3, 0x4FDB, 0x4FC7, 0x4FD6, 0x4FBA, 0x4FC0, 0x4FB9, 0x4FEC, /* 0xE0 */
- 0x5244, 0x5249, 0x52C0, 0x52C2, 0x533D, 0x537C, 0x5397, 0x5396, /* 0xF0 */
- 0x5399, 0x5398, 0x54BA, 0x54A1, 0x54AD, 0x54A5, 0x54CF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_CE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x54C3, 0x830D, 0x54B7, 0x54AE, 0x54D6, 0x54B6, 0x54C5, 0x54C6, /* 0x40 */
- 0x54A0, 0x5470, 0x54BC, 0x54A2, 0x54BE, 0x5472, 0x54DE, 0x54B0, /* 0x40 */
- 0x57B5, 0x579E, 0x579F, 0x57A4, 0x578C, 0x5797, 0x579D, 0x579B, /* 0x50 */
- 0x5794, 0x5798, 0x578F, 0x5799, 0x57A5, 0x579A, 0x5795, 0x58F4, /* 0x50 */
- 0x590D, 0x5953, 0x59E1, 0x59DE, 0x59EE, 0x5A00, 0x59F1, 0x59DD, /* 0x60 */
- 0x59FA, 0x59FD, 0x59FC, 0x59F6, 0x59E4, 0x59F2, 0x59F7, 0x59DB, /* 0x60 */
- 0x59E9, 0x59F3, 0x59F5, 0x59E0, 0x59FE, 0x59F4, 0x59ED, 0x5BA8, /* 0x70 */
- 0x5C4C, 0x5CD0, 0x5CD8, 0x5CCC, 0x5CD7, 0x5CCB, 0x5CDB, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x5CDE, 0x5CDA, 0x5CC9, 0x5CC7, 0x5CCA, 0x5CD6, 0x5CD3, /* 0xA0 */
- 0x5CD4, 0x5CCF, 0x5CC8, 0x5CC6, 0x5CCE, 0x5CDF, 0x5CF8, 0x5DF9, /* 0xA0 */
- 0x5E21, 0x5E22, 0x5E23, 0x5E20, 0x5E24, 0x5EB0, 0x5EA4, 0x5EA2, /* 0xB0 */
- 0x5E9B, 0x5EA3, 0x5EA5, 0x5F07, 0x5F2E, 0x5F56, 0x5F86, 0x6037, /* 0xB0 */
- 0x6039, 0x6054, 0x6072, 0x605E, 0x6045, 0x6053, 0x6047, 0x6049, /* 0xC0 */
- 0x605B, 0x604C, 0x6040, 0x6042, 0x605F, 0x6024, 0x6044, 0x6058, /* 0xC0 */
- 0x6066, 0x606E, 0x6242, 0x6243, 0x62CF, 0x630D, 0x630B, 0x62F5, /* 0xD0 */
- 0x630E, 0x6303, 0x62EB, 0x62F9, 0x630F, 0x630C, 0x62F8, 0x62F6, /* 0xD0 */
- 0x6300, 0x6313, 0x6314, 0x62FA, 0x6315, 0x62FB, 0x62F0, 0x6541, /* 0xE0 */
- 0x6543, 0x65AA, 0x65BF, 0x6636, 0x6621, 0x6632, 0x6635, 0x661C, /* 0xE0 */
- 0x6626, 0x6622, 0x6633, 0x662B, 0x663A, 0x661D, 0x6634, 0x6639, /* 0xF0 */
- 0x662E, 0x670F, 0x6710, 0x67C1, 0x67F2, 0x67C8, 0x67BA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_CF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x67DC, 0x67BB, 0x67F8, 0x67D8, 0x67C0, 0x67B7, 0x67C5, 0x67EB, /* 0x40 */
- 0x67E4, 0x67DF, 0x67B5, 0x67CD, 0x67B3, 0x67F7, 0x67F6, 0x67EE, /* 0x40 */
- 0x67E3, 0x67C2, 0x67B9, 0x67CE, 0x67E7, 0x67F0, 0x67B2, 0x67FC, /* 0x50 */
- 0x67C6, 0x67ED, 0x67CC, 0x67AE, 0x67E6, 0x67DB, 0x67FA, 0x67C9, /* 0x50 */
- 0x67CA, 0x67C3, 0x67EA, 0x67CB, 0x6B28, 0x6B82, 0x6B84, 0x6BB6, /* 0x60 */
- 0x6BD6, 0x6BD8, 0x6BE0, 0x6C20, 0x6C21, 0x6D28, 0x6D34, 0x6D2D, /* 0x60 */
- 0x6D1F, 0x6D3C, 0x6D3F, 0x6D12, 0x6D0A, 0x6CDA, 0x6D33, 0x6D04, /* 0x70 */
- 0x6D19, 0x6D3A, 0x6D1A, 0x6D11, 0x6D00, 0x6D1D, 0x6D42, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x6D01, 0x6D18, 0x6D37, 0x6D03, 0x6D0F, 0x6D40, 0x6D07, /* 0xA0 */
- 0x6D20, 0x6D2C, 0x6D08, 0x6D22, 0x6D09, 0x6D10, 0x70B7, 0x709F, /* 0xA0 */
- 0x70BE, 0x70B1, 0x70B0, 0x70A1, 0x70B4, 0x70B5, 0x70A9, 0x7241, /* 0xB0 */
- 0x7249, 0x724A, 0x726C, 0x7270, 0x7273, 0x726E, 0x72CA, 0x72E4, /* 0xB0 */
- 0x72E8, 0x72EB, 0x72DF, 0x72EA, 0x72E6, 0x72E3, 0x7385, 0x73CC, /* 0xC0 */
- 0x73C2, 0x73C8, 0x73C5, 0x73B9, 0x73B6, 0x73B5, 0x73B4, 0x73EB, /* 0xC0 */
- 0x73BF, 0x73C7, 0x73BE, 0x73C3, 0x73C6, 0x73B8, 0x73CB, 0x74EC, /* 0xD0 */
- 0x74EE, 0x752E, 0x7547, 0x7548, 0x75A7, 0x75AA, 0x7679, 0x76C4, /* 0xD0 */
- 0x7708, 0x7703, 0x7704, 0x7705, 0x770A, 0x76F7, 0x76FB, 0x76FA, /* 0xE0 */
- 0x77E7, 0x77E8, 0x7806, 0x7811, 0x7812, 0x7805, 0x7810, 0x780F, /* 0xE0 */
- 0x780E, 0x7809, 0x7803, 0x7813, 0x794A, 0x794C, 0x794B, 0x7945, /* 0xF0 */
- 0x7944, 0x79D5, 0x79CD, 0x79CF, 0x79D6, 0x79CE, 0x7A80 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_D0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7A7E, 0x7AD1, 0x7B00, 0x7B01, 0x7C7A, 0x7C78, 0x7C79, 0x7C7F, /* 0x40 */
- 0x7C80, 0x7C81, 0x7D03, 0x7D08, 0x7D01, 0x7F58, 0x7F91, 0x7F8D, /* 0x40 */
- 0x7FBE, 0x8007, 0x800E, 0x800F, 0x8014, 0x8037, 0x80D8, 0x80C7, /* 0x50 */
- 0x80E0, 0x80D1, 0x80C8, 0x80C2, 0x80D0, 0x80C5, 0x80E3, 0x80D9, /* 0x50 */
- 0x80DC, 0x80CA, 0x80D5, 0x80C9, 0x80CF, 0x80D7, 0x80E6, 0x80CD, /* 0x60 */
- 0x81FF, 0x8221, 0x8294, 0x82D9, 0x82FE, 0x82F9, 0x8307, 0x82E8, /* 0x60 */
- 0x8300, 0x82D5, 0x833A, 0x82EB, 0x82D6, 0x82F4, 0x82EC, 0x82E1, /* 0x70 */
- 0x82F2, 0x82F5, 0x830C, 0x82FB, 0x82F6, 0x82F0, 0x82EA, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x82E4, 0x82E0, 0x82FA, 0x82F3, 0x82ED, 0x8677, 0x8674, /* 0xA0 */
- 0x867C, 0x8673, 0x8841, 0x884E, 0x8867, 0x886A, 0x8869, 0x89D3, /* 0xA0 */
- 0x8A04, 0x8A07, 0x8D72, 0x8FE3, 0x8FE1, 0x8FEE, 0x8FE0, 0x90F1, /* 0xB0 */
- 0x90BD, 0x90BF, 0x90D5, 0x90C5, 0x90BE, 0x90C7, 0x90CB, 0x90C8, /* 0xB0 */
- 0x91D4, 0x91D3, 0x9654, 0x964F, 0x9651, 0x9653, 0x964A, 0x964E, /* 0xC0 */
- 0x501E, 0x5005, 0x5007, 0x5013, 0x5022, 0x5030, 0x501B, 0x4FF5, /* 0xC0 */
- 0x4FF4, 0x5033, 0x5037, 0x502C, 0x4FF6, 0x4FF7, 0x5017, 0x501C, /* 0xD0 */
- 0x5020, 0x5027, 0x5035, 0x502F, 0x5031, 0x500E, 0x515A, 0x5194, /* 0xD0 */
- 0x5193, 0x51CA, 0x51C4, 0x51C5, 0x51C8, 0x51CE, 0x5261, 0x525A, /* 0xE0 */
- 0x5252, 0x525E, 0x525F, 0x5255, 0x5262, 0x52CD, 0x530E, 0x539E, /* 0xE0 */
- 0x5526, 0x54E2, 0x5517, 0x5512, 0x54E7, 0x54F3, 0x54E4, 0x551A, /* 0xF0 */
- 0x54FF, 0x5504, 0x5508, 0x54EB, 0x5511, 0x5505, 0x54F1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_D1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x550A, 0x54FB, 0x54F7, 0x54F8, 0x54E0, 0x550E, 0x5503, 0x550B, /* 0x40 */
- 0x5701, 0x5702, 0x57CC, 0x5832, 0x57D5, 0x57D2, 0x57BA, 0x57C6, /* 0x40 */
- 0x57BD, 0x57BC, 0x57B8, 0x57B6, 0x57BF, 0x57C7, 0x57D0, 0x57B9, /* 0x50 */
- 0x57C1, 0x590E, 0x594A, 0x5A19, 0x5A16, 0x5A2D, 0x5A2E, 0x5A15, /* 0x50 */
- 0x5A0F, 0x5A17, 0x5A0A, 0x5A1E, 0x5A33, 0x5B6C, 0x5BA7, 0x5BAD, /* 0x60 */
- 0x5BAC, 0x5C03, 0x5C56, 0x5C54, 0x5CEC, 0x5CFF, 0x5CEE, 0x5CF1, /* 0x60 */
- 0x5CF7, 0x5D00, 0x5CF9, 0x5E29, 0x5E28, 0x5EA8, 0x5EAE, 0x5EAA, /* 0x70 */
- 0x5EAC, 0x5F33, 0x5F30, 0x5F67, 0x605D, 0x605A, 0x6067, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x6041, 0x60A2, 0x6088, 0x6080, 0x6092, 0x6081, 0x609D, /* 0xA0 */
- 0x6083, 0x6095, 0x609B, 0x6097, 0x6087, 0x609C, 0x608E, 0x6219, /* 0xA0 */
- 0x6246, 0x62F2, 0x6310, 0x6356, 0x632C, 0x6344, 0x6345, 0x6336, /* 0xB0 */
- 0x6343, 0x63E4, 0x6339, 0x634B, 0x634A, 0x633C, 0x6329, 0x6341, /* 0xB0 */
- 0x6334, 0x6358, 0x6354, 0x6359, 0x632D, 0x6347, 0x6333, 0x635A, /* 0xC0 */
- 0x6351, 0x6338, 0x6357, 0x6340, 0x6348, 0x654A, 0x6546, 0x65C6, /* 0xC0 */
- 0x65C3, 0x65C4, 0x65C2, 0x664A, 0x665F, 0x6647, 0x6651, 0x6712, /* 0xD0 */
- 0x6713, 0x681F, 0x681A, 0x6849, 0x6832, 0x6833, 0x683B, 0x684B, /* 0xD0 */
- 0x684F, 0x6816, 0x6831, 0x681C, 0x6835, 0x682B, 0x682D, 0x682F, /* 0xE0 */
- 0x684E, 0x6844, 0x6834, 0x681D, 0x6812, 0x6814, 0x6826, 0x6828, /* 0xE0 */
- 0x682E, 0x684D, 0x683A, 0x6825, 0x6820, 0x6B2C, 0x6B2F, 0x6B2D, /* 0xF0 */
- 0x6B31, 0x6B34, 0x6B6D, 0x8082, 0x6B88, 0x6BE6, 0x6BE4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_D2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6BE8, 0x6BE3, 0x6BE2, 0x6BE7, 0x6C25, 0x6D7A, 0x6D63, 0x6D64, /* 0x40 */
- 0x6D76, 0x6D0D, 0x6D61, 0x6D92, 0x6D58, 0x6D62, 0x6D6D, 0x6D6F, /* 0x40 */
- 0x6D91, 0x6D8D, 0x6DEF, 0x6D7F, 0x6D86, 0x6D5E, 0x6D67, 0x6D60, /* 0x50 */
- 0x6D97, 0x6D70, 0x6D7C, 0x6D5F, 0x6D82, 0x6D98, 0x6D2F, 0x6D68, /* 0x50 */
- 0x6D8B, 0x6D7E, 0x6D80, 0x6D84, 0x6D16, 0x6D83, 0x6D7B, 0x6D7D, /* 0x60 */
- 0x6D75, 0x6D90, 0x70DC, 0x70D3, 0x70D1, 0x70DD, 0x70CB, 0x7F39, /* 0x60 */
- 0x70E2, 0x70D7, 0x70D2, 0x70DE, 0x70E0, 0x70D4, 0x70CD, 0x70C5, /* 0x70 */
- 0x70C6, 0x70C7, 0x70DA, 0x70CE, 0x70E1, 0x7242, 0x7278, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x7277, 0x7276, 0x7300, 0x72FA, 0x72F4, 0x72FE, 0x72F6, /* 0xA0 */
- 0x72F3, 0x72FB, 0x7301, 0x73D3, 0x73D9, 0x73E5, 0x73D6, 0x73BC, /* 0xA0 */
- 0x73E7, 0x73E3, 0x73E9, 0x73DC, 0x73D2, 0x73DB, 0x73D4, 0x73DD, /* 0xB0 */
- 0x73DA, 0x73D7, 0x73D8, 0x73E8, 0x74DE, 0x74DF, 0x74F4, 0x74F5, /* 0xB0 */
- 0x7521, 0x755B, 0x755F, 0x75B0, 0x75C1, 0x75BB, 0x75C4, 0x75C0, /* 0xC0 */
- 0x75BF, 0x75B6, 0x75BA, 0x768A, 0x76C9, 0x771D, 0x771B, 0x7710, /* 0xC0 */
- 0x7713, 0x7712, 0x7723, 0x7711, 0x7715, 0x7719, 0x771A, 0x7722, /* 0xD0 */
- 0x7727, 0x7823, 0x782C, 0x7822, 0x7835, 0x782F, 0x7828, 0x782E, /* 0xD0 */
- 0x782B, 0x7821, 0x7829, 0x7833, 0x782A, 0x7831, 0x7954, 0x795B, /* 0xE0 */
- 0x794F, 0x795C, 0x7953, 0x7952, 0x7951, 0x79EB, 0x79EC, 0x79E0, /* 0xE0 */
- 0x79EE, 0x79ED, 0x79EA, 0x79DC, 0x79DE, 0x79DD, 0x7A86, 0x7A89, /* 0xF0 */
- 0x7A85, 0x7A8B, 0x7A8C, 0x7A8A, 0x7A87, 0x7AD8, 0x7B10 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_D3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7B04, 0x7B13, 0x7B05, 0x7B0F, 0x7B08, 0x7B0A, 0x7B0E, 0x7B09, /* 0x40 */
- 0x7B12, 0x7C84, 0x7C91, 0x7C8A, 0x7C8C, 0x7C88, 0x7C8D, 0x7C85, /* 0x40 */
- 0x7D1E, 0x7D1D, 0x7D11, 0x7D0E, 0x7D18, 0x7D16, 0x7D13, 0x7D1F, /* 0x50 */
- 0x7D12, 0x7D0F, 0x7D0C, 0x7F5C, 0x7F61, 0x7F5E, 0x7F60, 0x7F5D, /* 0x50 */
- 0x7F5B, 0x7F96, 0x7F92, 0x7FC3, 0x7FC2, 0x7FC0, 0x8016, 0x803E, /* 0x60 */
- 0x8039, 0x80FA, 0x80F2, 0x80F9, 0x80F5, 0x8101, 0x80FB, 0x8100, /* 0x60 */
- 0x8201, 0x822F, 0x8225, 0x8333, 0x832D, 0x8344, 0x8319, 0x8351, /* 0x70 */
- 0x8325, 0x8356, 0x833F, 0x8341, 0x8326, 0x831C, 0x8322, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x8342, 0x834E, 0x831B, 0x832A, 0x8308, 0x833C, 0x834D, /* 0xA0 */
- 0x8316, 0x8324, 0x8320, 0x8337, 0x832F, 0x8329, 0x8347, 0x8345, /* 0xA0 */
- 0x834C, 0x8353, 0x831E, 0x832C, 0x834B, 0x8327, 0x8348, 0x8653, /* 0xB0 */
- 0x8652, 0x86A2, 0x86A8, 0x8696, 0x868D, 0x8691, 0x869E, 0x8687, /* 0xB0 */
- 0x8697, 0x8686, 0x868B, 0x869A, 0x8685, 0x86A5, 0x8699, 0x86A1, /* 0xC0 */
- 0x86A7, 0x8695, 0x8698, 0x868E, 0x869D, 0x8690, 0x8694, 0x8843, /* 0xC0 */
- 0x8844, 0x886D, 0x8875, 0x8876, 0x8872, 0x8880, 0x8871, 0x887F, /* 0xD0 */
- 0x886F, 0x8883, 0x887E, 0x8874, 0x887C, 0x8A12, 0x8C47, 0x8C57, /* 0xD0 */
- 0x8C7B, 0x8CA4, 0x8CA3, 0x8D76, 0x8D78, 0x8DB5, 0x8DB7, 0x8DB6, /* 0xE0 */
- 0x8ED1, 0x8ED3, 0x8FFE, 0x8FF5, 0x9002, 0x8FFF, 0x8FFB, 0x9004, /* 0xE0 */
- 0x8FFC, 0x8FF6, 0x90D6, 0x90E0, 0x90D9, 0x90DA, 0x90E3, 0x90DF, /* 0xF0 */
- 0x90E5, 0x90D8, 0x90DB, 0x90D7, 0x90DC, 0x90E4, 0x9150 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_D4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x914E, 0x914F, 0x91D5, 0x91E2, 0x91DA, 0x965C, 0x965F, 0x96BC, /* 0x40 */
- 0x98E3, 0x9ADF, 0x9B2F, 0x4E7F, 0x5070, 0x506A, 0x5061, 0x505E, /* 0x40 */
- 0x5060, 0x5053, 0x504B, 0x505D, 0x5072, 0x5048, 0x504D, 0x5041, /* 0x50 */
- 0x505B, 0x504A, 0x5062, 0x5015, 0x5045, 0x505F, 0x5069, 0x506B, /* 0x50 */
- 0x5063, 0x5064, 0x5046, 0x5040, 0x506E, 0x5073, 0x5057, 0x5051, /* 0x60 */
- 0x51D0, 0x526B, 0x526D, 0x526C, 0x526E, 0x52D6, 0x52D3, 0x532D, /* 0x60 */
- 0x539C, 0x5575, 0x5576, 0x553C, 0x554D, 0x5550, 0x5534, 0x552A, /* 0x70 */
- 0x5551, 0x5562, 0x5536, 0x5535, 0x5530, 0x5552, 0x5545, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x550C, 0x5532, 0x5565, 0x554E, 0x5539, 0x5548, 0x552D, /* 0xA0 */
- 0x553B, 0x5540, 0x554B, 0x570A, 0x5707, 0x57FB, 0x5814, 0x57E2, /* 0xA0 */
- 0x57F6, 0x57DC, 0x57F4, 0x5800, 0x57ED, 0x57FD, 0x5808, 0x57F8, /* 0xB0 */
- 0x580B, 0x57F3, 0x57CF, 0x5807, 0x57EE, 0x57E3, 0x57F2, 0x57E5, /* 0xB0 */
- 0x57EC, 0x57E1, 0x580E, 0x57FC, 0x5810, 0x57E7, 0x5801, 0x580C, /* 0xC0 */
- 0x57F1, 0x57E9, 0x57F0, 0x580D, 0x5804, 0x595C, 0x5A60, 0x5A58, /* 0xC0 */
- 0x5A55, 0x5A67, 0x5A5E, 0x5A38, 0x5A35, 0x5A6D, 0x5A50, 0x5A5F, /* 0xD0 */
- 0x5A65, 0x5A6C, 0x5A53, 0x5A64, 0x5A57, 0x5A43, 0x5A5D, 0x5A52, /* 0xD0 */
- 0x5A44, 0x5A5B, 0x5A48, 0x5A8E, 0x5A3E, 0x5A4D, 0x5A39, 0x5A4C, /* 0xE0 */
- 0x5A70, 0x5A69, 0x5A47, 0x5A51, 0x5A56, 0x5A42, 0x5A5C, 0x5B72, /* 0xE0 */
- 0x5B6E, 0x5BC1, 0x5BC0, 0x5C59, 0x5D1E, 0x5D0B, 0x5D1D, 0x5D1A, /* 0xF0 */
- 0x5D20, 0x5D0C, 0x5D28, 0x5D0D, 0x5D26, 0x5D25, 0x5D0F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_D5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5D30, 0x5D12, 0x5D23, 0x5D1F, 0x5D2E, 0x5E3E, 0x5E34, 0x5EB1, /* 0x40 */
- 0x5EB4, 0x5EB9, 0x5EB2, 0x5EB3, 0x5F36, 0x5F38, 0x5F9B, 0x5F96, /* 0x40 */
- 0x5F9F, 0x608A, 0x6090, 0x6086, 0x60BE, 0x60B0, 0x60BA, 0x60D3, /* 0x50 */
- 0x60D4, 0x60CF, 0x60E4, 0x60D9, 0x60DD, 0x60C8, 0x60B1, 0x60DB, /* 0x50 */
- 0x60B7, 0x60CA, 0x60BF, 0x60C3, 0x60CD, 0x60C0, 0x6332, 0x6365, /* 0x60 */
- 0x638A, 0x6382, 0x637D, 0x63BD, 0x639E, 0x63AD, 0x639D, 0x6397, /* 0x60 */
- 0x63AB, 0x638E, 0x636F, 0x6387, 0x6390, 0x636E, 0x63AF, 0x6375, /* 0x70 */
- 0x639C, 0x636D, 0x63AE, 0x637C, 0x63A4, 0x633B, 0x639F, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x6378, 0x6385, 0x6381, 0x6391, 0x638D, 0x6370, 0x6553, /* 0xA0 */
- 0x65CD, 0x6665, 0x6661, 0x665B, 0x6659, 0x665C, 0x6662, 0x6718, /* 0xA0 */
- 0x6879, 0x6887, 0x6890, 0x689C, 0x686D, 0x686E, 0x68AE, 0x68AB, /* 0xB0 */
- 0x6956, 0x686F, 0x68A3, 0x68AC, 0x68A9, 0x6875, 0x6874, 0x68B2, /* 0xB0 */
- 0x688F, 0x6877, 0x6892, 0x687C, 0x686B, 0x6872, 0x68AA, 0x6880, /* 0xC0 */
- 0x6871, 0x687E, 0x689B, 0x6896, 0x688B, 0x68A0, 0x6889, 0x68A4, /* 0xC0 */
- 0x6878, 0x687B, 0x6891, 0x688C, 0x688A, 0x687D, 0x6B36, 0x6B33, /* 0xD0 */
- 0x6B37, 0x6B38, 0x6B91, 0x6B8F, 0x6B8D, 0x6B8E, 0x6B8C, 0x6C2A, /* 0xD0 */
- 0x6DC0, 0x6DAB, 0x6DB4, 0x6DB3, 0x6E74, 0x6DAC, 0x6DE9, 0x6DE2, /* 0xE0 */
- 0x6DB7, 0x6DF6, 0x6DD4, 0x6E00, 0x6DC8, 0x6DE0, 0x6DDF, 0x6DD6, /* 0xE0 */
- 0x6DBE, 0x6DE5, 0x6DDC, 0x6DDD, 0x6DDB, 0x6DF4, 0x6DCA, 0x6DBD, /* 0xF0 */
- 0x6DED, 0x6DF0, 0x6DBA, 0x6DD5, 0x6DC2, 0x6DCF, 0x6DC9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_D6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6DD0, 0x6DF2, 0x6DD3, 0x6DFD, 0x6DD7, 0x6DCD, 0x6DE3, 0x6DBB, /* 0x40 */
- 0x70FA, 0x710D, 0x70F7, 0x7117, 0x70F4, 0x710C, 0x70F0, 0x7104, /* 0x40 */
- 0x70F3, 0x7110, 0x70FC, 0x70FF, 0x7106, 0x7113, 0x7100, 0x70F8, /* 0x50 */
- 0x70F6, 0x710B, 0x7102, 0x710E, 0x727E, 0x727B, 0x727C, 0x727F, /* 0x50 */
- 0x731D, 0x7317, 0x7307, 0x7311, 0x7318, 0x730A, 0x7308, 0x72FF, /* 0x60 */
- 0x730F, 0x731E, 0x7388, 0x73F6, 0x73F8, 0x73F5, 0x7404, 0x7401, /* 0x60 */
- 0x73FD, 0x7407, 0x7400, 0x73FA, 0x73FC, 0x73FF, 0x740C, 0x740B, /* 0x70 */
- 0x73F4, 0x7408, 0x7564, 0x7563, 0x75CE, 0x75D2, 0x75CF, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x75CB, 0x75CC, 0x75D1, 0x75D0, 0x768F, 0x7689, 0x76D3, /* 0xA0 */
- 0x7739, 0x772F, 0x772D, 0x7731, 0x7732, 0x7734, 0x7733, 0x773D, /* 0xA0 */
- 0x7725, 0x773B, 0x7735, 0x7848, 0x7852, 0x7849, 0x784D, 0x784A, /* 0xB0 */
- 0x784C, 0x7826, 0x7845, 0x7850, 0x7964, 0x7967, 0x7969, 0x796A, /* 0xB0 */
- 0x7963, 0x796B, 0x7961, 0x79BB, 0x79FA, 0x79F8, 0x79F6, 0x79F7, /* 0xC0 */
- 0x7A8F, 0x7A94, 0x7A90, 0x7B35, 0x7B47, 0x7B34, 0x7B25, 0x7B30, /* 0xC0 */
- 0x7B22, 0x7B24, 0x7B33, 0x7B18, 0x7B2A, 0x7B1D, 0x7B31, 0x7B2B, /* 0xD0 */
- 0x7B2D, 0x7B2F, 0x7B32, 0x7B38, 0x7B1A, 0x7B23, 0x7C94, 0x7C98, /* 0xD0 */
- 0x7C96, 0x7CA3, 0x7D35, 0x7D3D, 0x7D38, 0x7D36, 0x7D3A, 0x7D45, /* 0xE0 */
- 0x7D2C, 0x7D29, 0x7D41, 0x7D47, 0x7D3E, 0x7D3F, 0x7D4A, 0x7D3B, /* 0xE0 */
- 0x7D28, 0x7F63, 0x7F95, 0x7F9C, 0x7F9D, 0x7F9B, 0x7FCA, 0x7FCB, /* 0xF0 */
- 0x7FCD, 0x7FD0, 0x7FD1, 0x7FC7, 0x7FCF, 0x7FC9, 0x801F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_D7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x801E, 0x801B, 0x8047, 0x8043, 0x8048, 0x8118, 0x8125, 0x8119, /* 0x40 */
- 0x811B, 0x812D, 0x811F, 0x812C, 0x811E, 0x8121, 0x8115, 0x8127, /* 0x40 */
- 0x811D, 0x8122, 0x8211, 0x8238, 0x8233, 0x823A, 0x8234, 0x8232, /* 0x50 */
- 0x8274, 0x8390, 0x83A3, 0x83A8, 0x838D, 0x837A, 0x8373, 0x83A4, /* 0x50 */
- 0x8374, 0x838F, 0x8381, 0x8395, 0x8399, 0x8375, 0x8394, 0x83A9, /* 0x60 */
- 0x837D, 0x8383, 0x838C, 0x839D, 0x839B, 0x83AA, 0x838B, 0x837E, /* 0x60 */
- 0x83A5, 0x83AF, 0x8388, 0x8397, 0x83B0, 0x837F, 0x83A6, 0x8387, /* 0x70 */
- 0x83AE, 0x8376, 0x839A, 0x8659, 0x8656, 0x86BF, 0x86B7, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x86C2, 0x86C1, 0x86C5, 0x86BA, 0x86B0, 0x86C8, 0x86B9, /* 0xA0 */
- 0x86B3, 0x86B8, 0x86CC, 0x86B4, 0x86BB, 0x86BC, 0x86C3, 0x86BD, /* 0xA0 */
- 0x86BE, 0x8852, 0x8889, 0x8895, 0x88A8, 0x88A2, 0x88AA, 0x889A, /* 0xB0 */
- 0x8891, 0x88A1, 0x889F, 0x8898, 0x88A7, 0x8899, 0x889B, 0x8897, /* 0xB0 */
- 0x88A4, 0x88AC, 0x888C, 0x8893, 0x888E, 0x8982, 0x89D6, 0x89D9, /* 0xC0 */
- 0x89D5, 0x8A30, 0x8A27, 0x8A2C, 0x8A1E, 0x8C39, 0x8C3B, 0x8C5C, /* 0xC0 */
- 0x8C5D, 0x8C7D, 0x8CA5, 0x8D7D, 0x8D7B, 0x8D79, 0x8DBC, 0x8DC2, /* 0xD0 */
- 0x8DB9, 0x8DBF, 0x8DC1, 0x8ED8, 0x8EDE, 0x8EDD, 0x8EDC, 0x8ED7, /* 0xD0 */
- 0x8EE0, 0x8EE1, 0x9024, 0x900B, 0x9011, 0x901C, 0x900C, 0x9021, /* 0xE0 */
- 0x90EF, 0x90EA, 0x90F0, 0x90F4, 0x90F2, 0x90F3, 0x90D4, 0x90EB, /* 0xE0 */
- 0x90EC, 0x90E9, 0x9156, 0x9158, 0x915A, 0x9153, 0x9155, 0x91EC, /* 0xF0 */
- 0x91F4, 0x91F1, 0x91F3, 0x91F8, 0x91E4, 0x91F9, 0x91EA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_D8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x91EB, 0x91F7, 0x91E8, 0x91EE, 0x957A, 0x9586, 0x9588, 0x967C, /* 0x40 */
- 0x966D, 0x966B, 0x9671, 0x966F, 0x96BF, 0x976A, 0x9804, 0x98E5, /* 0x40 */
- 0x9997, 0x509B, 0x5095, 0x5094, 0x509E, 0x508B, 0x50A3, 0x5083, /* 0x50 */
- 0x508C, 0x508E, 0x509D, 0x5068, 0x509C, 0x5092, 0x5082, 0x5087, /* 0x50 */
- 0x515F, 0x51D4, 0x5312, 0x5311, 0x53A4, 0x53A7, 0x5591, 0x55A8, /* 0x60 */
- 0x55A5, 0x55AD, 0x5577, 0x5645, 0x55A2, 0x5593, 0x5588, 0x558F, /* 0x60 */
- 0x55B5, 0x5581, 0x55A3, 0x5592, 0x55A4, 0x557D, 0x558C, 0x55A6, /* 0x70 */
- 0x557F, 0x5595, 0x55A1, 0x558E, 0x570C, 0x5829, 0x5837, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x5819, 0x581E, 0x5827, 0x5823, 0x5828, 0x57F5, 0x5848, /* 0xA0 */
- 0x5825, 0x581C, 0x581B, 0x5833, 0x583F, 0x5836, 0x582E, 0x5839, /* 0xA0 */
- 0x5838, 0x582D, 0x582C, 0x583B, 0x5961, 0x5AAF, 0x5A94, 0x5A9F, /* 0xB0 */
- 0x5A7A, 0x5AA2, 0x5A9E, 0x5A78, 0x5AA6, 0x5A7C, 0x5AA5, 0x5AAC, /* 0xB0 */
- 0x5A95, 0x5AAE, 0x5A37, 0x5A84, 0x5A8A, 0x5A97, 0x5A83, 0x5A8B, /* 0xC0 */
- 0x5AA9, 0x5A7B, 0x5A7D, 0x5A8C, 0x5A9C, 0x5A8F, 0x5A93, 0x5A9D, /* 0xC0 */
- 0x5BEA, 0x5BCD, 0x5BCB, 0x5BD4, 0x5BD1, 0x5BCA, 0x5BCE, 0x5C0C, /* 0xD0 */
- 0x5C30, 0x5D37, 0x5D43, 0x5D6B, 0x5D41, 0x5D4B, 0x5D3F, 0x5D35, /* 0xD0 */
- 0x5D51, 0x5D4E, 0x5D55, 0x5D33, 0x5D3A, 0x5D52, 0x5D3D, 0x5D31, /* 0xE0 */
- 0x5D59, 0x5D42, 0x5D39, 0x5D49, 0x5D38, 0x5D3C, 0x5D32, 0x5D36, /* 0xE0 */
- 0x5D40, 0x5D45, 0x5E44, 0x5E41, 0x5F58, 0x5FA6, 0x5FA5, 0x5FAB, /* 0xF0 */
- 0x60C9, 0x60B9, 0x60CC, 0x60E2, 0x60CE, 0x60C4, 0x6114 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_D9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x60F2, 0x610A, 0x6116, 0x6105, 0x60F5, 0x6113, 0x60F8, 0x60FC, /* 0x40 */
- 0x60FE, 0x60C1, 0x6103, 0x6118, 0x611D, 0x6110, 0x60FF, 0x6104, /* 0x40 */
- 0x610B, 0x624A, 0x6394, 0x63B1, 0x63B0, 0x63CE, 0x63E5, 0x63E8, /* 0x50 */
- 0x63EF, 0x63C3, 0x649D, 0x63F3, 0x63CA, 0x63E0, 0x63F6, 0x63D5, /* 0x50 */
- 0x63F2, 0x63F5, 0x6461, 0x63DF, 0x63BE, 0x63DD, 0x63DC, 0x63C4, /* 0x60 */
- 0x63D8, 0x63D3, 0x63C2, 0x63C7, 0x63CC, 0x63CB, 0x63C8, 0x63F0, /* 0x60 */
- 0x63D7, 0x63D9, 0x6532, 0x6567, 0x656A, 0x6564, 0x655C, 0x6568, /* 0x70 */
- 0x6565, 0x658C, 0x659D, 0x659E, 0x65AE, 0x65D0, 0x65D2, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x667C, 0x666C, 0x667B, 0x6680, 0x6671, 0x6679, 0x666A, /* 0xA0 */
- 0x6672, 0x6701, 0x690C, 0x68D3, 0x6904, 0x68DC, 0x692A, 0x68EC, /* 0xA0 */
- 0x68EA, 0x68F1, 0x690F, 0x68D6, 0x68F7, 0x68EB, 0x68E4, 0x68F6, /* 0xB0 */
- 0x6913, 0x6910, 0x68F3, 0x68E1, 0x6907, 0x68CC, 0x6908, 0x6970, /* 0xB0 */
- 0x68B4, 0x6911, 0x68EF, 0x68C6, 0x6914, 0x68F8, 0x68D0, 0x68FD, /* 0xC0 */
- 0x68FC, 0x68E8, 0x690B, 0x690A, 0x6917, 0x68CE, 0x68C8, 0x68DD, /* 0xC0 */
- 0x68DE, 0x68E6, 0x68F4, 0x68D1, 0x6906, 0x68D4, 0x68E9, 0x6915, /* 0xD0 */
- 0x6925, 0x68C7, 0x6B39, 0x6B3B, 0x6B3F, 0x6B3C, 0x6B94, 0x6B97, /* 0xD0 */
- 0x6B99, 0x6B95, 0x6BBD, 0x6BF0, 0x6BF2, 0x6BF3, 0x6C30, 0x6DFC, /* 0xE0 */
- 0x6E46, 0x6E47, 0x6E1F, 0x6E49, 0x6E88, 0x6E3C, 0x6E3D, 0x6E45, /* 0xE0 */
- 0x6E62, 0x6E2B, 0x6E3F, 0x6E41, 0x6E5D, 0x6E73, 0x6E1C, 0x6E33, /* 0xF0 */
- 0x6E4B, 0x6E40, 0x6E51, 0x6E3B, 0x6E03, 0x6E2E, 0x6E5E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_DA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6E68, 0x6E5C, 0x6E61, 0x6E31, 0x6E28, 0x6E60, 0x6E71, 0x6E6B, /* 0x40 */
- 0x6E39, 0x6E22, 0x6E30, 0x6E53, 0x6E65, 0x6E27, 0x6E78, 0x6E64, /* 0x40 */
- 0x6E77, 0x6E55, 0x6E79, 0x6E52, 0x6E66, 0x6E35, 0x6E36, 0x6E5A, /* 0x50 */
- 0x7120, 0x711E, 0x712F, 0x70FB, 0x712E, 0x7131, 0x7123, 0x7125, /* 0x50 */
- 0x7122, 0x7132, 0x711F, 0x7128, 0x713A, 0x711B, 0x724B, 0x725A, /* 0x60 */
- 0x7288, 0x7289, 0x7286, 0x7285, 0x728B, 0x7312, 0x730B, 0x7330, /* 0x60 */
- 0x7322, 0x7331, 0x7333, 0x7327, 0x7332, 0x732D, 0x7326, 0x7323, /* 0x70 */
- 0x7335, 0x730C, 0x742E, 0x742C, 0x7430, 0x742B, 0x7416, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x741A, 0x7421, 0x742D, 0x7431, 0x7424, 0x7423, 0x741D, /* 0xA0 */
- 0x7429, 0x7420, 0x7432, 0x74FB, 0x752F, 0x756F, 0x756C, 0x75E7, /* 0xA0 */
- 0x75DA, 0x75E1, 0x75E6, 0x75DD, 0x75DF, 0x75E4, 0x75D7, 0x7695, /* 0xB0 */
- 0x7692, 0x76DA, 0x7746, 0x7747, 0x7744, 0x774D, 0x7745, 0x774A, /* 0xB0 */
- 0x774E, 0x774B, 0x774C, 0x77DE, 0x77EC, 0x7860, 0x7864, 0x7865, /* 0xC0 */
- 0x785C, 0x786D, 0x7871, 0x786A, 0x786E, 0x7870, 0x7869, 0x7868, /* 0xC0 */
- 0x785E, 0x7862, 0x7974, 0x7973, 0x7972, 0x7970, 0x7A02, 0x7A0A, /* 0xD0 */
- 0x7A03, 0x7A0C, 0x7A04, 0x7A99, 0x7AE6, 0x7AE4, 0x7B4A, 0x7B3B, /* 0xD0 */
- 0x7B44, 0x7B48, 0x7B4C, 0x7B4E, 0x7B40, 0x7B58, 0x7B45, 0x7CA2, /* 0xE0 */
- 0x7C9E, 0x7CA8, 0x7CA1, 0x7D58, 0x7D6F, 0x7D63, 0x7D53, 0x7D56, /* 0xE0 */
- 0x7D67, 0x7D6A, 0x7D4F, 0x7D6D, 0x7D5C, 0x7D6B, 0x7D52, 0x7D54, /* 0xF0 */
- 0x7D69, 0x7D51, 0x7D5F, 0x7D4E, 0x7F3E, 0x7F3F, 0x7F65 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_DB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7F66, 0x7FA2, 0x7FA0, 0x7FA1, 0x7FD7, 0x8051, 0x804F, 0x8050, /* 0x40 */
- 0x80FE, 0x80D4, 0x8143, 0x814A, 0x8152, 0x814F, 0x8147, 0x813D, /* 0x40 */
- 0x814D, 0x813A, 0x81E6, 0x81EE, 0x81F7, 0x81F8, 0x81F9, 0x8204, /* 0x50 */
- 0x823C, 0x823D, 0x823F, 0x8275, 0x833B, 0x83CF, 0x83F9, 0x8423, /* 0x50 */
- 0x83C0, 0x83E8, 0x8412, 0x83E7, 0x83E4, 0x83FC, 0x83F6, 0x8410, /* 0x60 */
- 0x83C6, 0x83C8, 0x83EB, 0x83E3, 0x83BF, 0x8401, 0x83DD, 0x83E5, /* 0x60 */
- 0x83D8, 0x83FF, 0x83E1, 0x83CB, 0x83CE, 0x83D6, 0x83F5, 0x83C9, /* 0x70 */
- 0x8409, 0x840F, 0x83DE, 0x8411, 0x8406, 0x83C2, 0x83F3, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x83D5, 0x83FA, 0x83C7, 0x83D1, 0x83EA, 0x8413, 0x83C3, /* 0xA0 */
- 0x83EC, 0x83EE, 0x83C4, 0x83FB, 0x83D7, 0x83E2, 0x841B, 0x83DB, /* 0xA0 */
- 0x83FE, 0x86D8, 0x86E2, 0x86E6, 0x86D3, 0x86E3, 0x86DA, 0x86EA, /* 0xB0 */
- 0x86DD, 0x86EB, 0x86DC, 0x86EC, 0x86E9, 0x86D7, 0x86E8, 0x86D1, /* 0xB0 */
- 0x8848, 0x8856, 0x8855, 0x88BA, 0x88D7, 0x88B9, 0x88B8, 0x88C0, /* 0xC0 */
- 0x88BE, 0x88B6, 0x88BC, 0x88B7, 0x88BD, 0x88B2, 0x8901, 0x88C9, /* 0xC0 */
- 0x8995, 0x8998, 0x8997, 0x89DD, 0x89DA, 0x89DB, 0x8A4E, 0x8A4D, /* 0xD0 */
- 0x8A39, 0x8A59, 0x8A40, 0x8A57, 0x8A58, 0x8A44, 0x8A45, 0x8A52, /* 0xD0 */
- 0x8A48, 0x8A51, 0x8A4A, 0x8A4C, 0x8A4F, 0x8C5F, 0x8C81, 0x8C80, /* 0xE0 */
- 0x8CBA, 0x8CBE, 0x8CB0, 0x8CB9, 0x8CB5, 0x8D84, 0x8D80, 0x8D89, /* 0xE0 */
- 0x8DD8, 0x8DD3, 0x8DCD, 0x8DC7, 0x8DD6, 0x8DDC, 0x8DCF, 0x8DD5, /* 0xF0 */
- 0x8DD9, 0x8DC8, 0x8DD7, 0x8DC5, 0x8EEF, 0x8EF7, 0x8EFA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_DC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8EF9, 0x8EE6, 0x8EEE, 0x8EE5, 0x8EF5, 0x8EE7, 0x8EE8, 0x8EF6, /* 0x40 */
- 0x8EEB, 0x8EF1, 0x8EEC, 0x8EF4, 0x8EE9, 0x902D, 0x9034, 0x902F, /* 0x40 */
- 0x9106, 0x912C, 0x9104, 0x90FF, 0x90FC, 0x9108, 0x90F9, 0x90FB, /* 0x50 */
- 0x9101, 0x9100, 0x9107, 0x9105, 0x9103, 0x9161, 0x9164, 0x915F, /* 0x50 */
- 0x9162, 0x9160, 0x9201, 0x920A, 0x9225, 0x9203, 0x921A, 0x9226, /* 0x60 */
- 0x920F, 0x920C, 0x9200, 0x9212, 0x91FF, 0x91FD, 0x9206, 0x9204, /* 0x60 */
- 0x9227, 0x9202, 0x921C, 0x9224, 0x9219, 0x9217, 0x9205, 0x9216, /* 0x70 */
- 0x957B, 0x958D, 0x958C, 0x9590, 0x9687, 0x967E, 0x9688, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x9689, 0x9683, 0x9680, 0x96C2, 0x96C8, 0x96C3, 0x96F1, /* 0xA0 */
- 0x96F0, 0x976C, 0x9770, 0x976E, 0x9807, 0x98A9, 0x98EB, 0x9CE6, /* 0xA0 */
- 0x9EF9, 0x4E83, 0x4E84, 0x4EB6, 0x50BD, 0x50BF, 0x50C6, 0x50AE, /* 0xB0 */
- 0x50C4, 0x50CA, 0x50B4, 0x50C8, 0x50C2, 0x50B0, 0x50C1, 0x50BA, /* 0xB0 */
- 0x50B1, 0x50CB, 0x50C9, 0x50B6, 0x50B8, 0x51D7, 0x527A, 0x5278, /* 0xC0 */
- 0x527B, 0x527C, 0x55C3, 0x55DB, 0x55CC, 0x55D0, 0x55CB, 0x55CA, /* 0xC0 */
- 0x55DD, 0x55C0, 0x55D4, 0x55C4, 0x55E9, 0x55BF, 0x55D2, 0x558D, /* 0xD0 */
- 0x55CF, 0x55D5, 0x55E2, 0x55D6, 0x55C8, 0x55F2, 0x55CD, 0x55D9, /* 0xD0 */
- 0x55C2, 0x5714, 0x5853, 0x5868, 0x5864, 0x584F, 0x584D, 0x5849, /* 0xE0 */
- 0x586F, 0x5855, 0x584E, 0x585D, 0x5859, 0x5865, 0x585B, 0x583D, /* 0xE0 */
- 0x5863, 0x5871, 0x58FC, 0x5AC7, 0x5AC4, 0x5ACB, 0x5ABA, 0x5AB8, /* 0xF0 */
- 0x5AB1, 0x5AB5, 0x5AB0, 0x5ABF, 0x5AC8, 0x5ABB, 0x5AC6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_DD[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5AB7, 0x5AC0, 0x5ACA, 0x5AB4, 0x5AB6, 0x5ACD, 0x5AB9, 0x5A90, /* 0x40 */
- 0x5BD6, 0x5BD8, 0x5BD9, 0x5C1F, 0x5C33, 0x5D71, 0x5D63, 0x5D4A, /* 0x40 */
- 0x5D65, 0x5D72, 0x5D6C, 0x5D5E, 0x5D68, 0x5D67, 0x5D62, 0x5DF0, /* 0x50 */
- 0x5E4F, 0x5E4E, 0x5E4A, 0x5E4D, 0x5E4B, 0x5EC5, 0x5ECC, 0x5EC6, /* 0x50 */
- 0x5ECB, 0x5EC7, 0x5F40, 0x5FAF, 0x5FAD, 0x60F7, 0x6149, 0x614A, /* 0x60 */
- 0x612B, 0x6145, 0x6136, 0x6132, 0x612E, 0x6146, 0x612F, 0x614F, /* 0x60 */
- 0x6129, 0x6140, 0x6220, 0x9168, 0x6223, 0x6225, 0x6224, 0x63C5, /* 0x70 */
- 0x63F1, 0x63EB, 0x6410, 0x6412, 0x6409, 0x6420, 0x6424, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x6433, 0x6443, 0x641F, 0x6415, 0x6418, 0x6439, 0x6437, /* 0xA0 */
- 0x6422, 0x6423, 0x640C, 0x6426, 0x6430, 0x6428, 0x6441, 0x6435, /* 0xA0 */
- 0x642F, 0x640A, 0x641A, 0x6440, 0x6425, 0x6427, 0x640B, 0x63E7, /* 0xB0 */
- 0x641B, 0x642E, 0x6421, 0x640E, 0x656F, 0x6592, 0x65D3, 0x6686, /* 0xB0 */
- 0x668C, 0x6695, 0x6690, 0x668B, 0x668A, 0x6699, 0x6694, 0x6678, /* 0xC0 */
- 0x6720, 0x6966, 0x695F, 0x6938, 0x694E, 0x6962, 0x6971, 0x693F, /* 0xC0 */
- 0x6945, 0x696A, 0x6939, 0x6942, 0x6957, 0x6959, 0x697A, 0x6948, /* 0xD0 */
- 0x6949, 0x6935, 0x696C, 0x6933, 0x693D, 0x6965, 0x68F0, 0x6978, /* 0xD0 */
- 0x6934, 0x6969, 0x6940, 0x696F, 0x6944, 0x6976, 0x6958, 0x6941, /* 0xE0 */
- 0x6974, 0x694C, 0x693B, 0x694B, 0x6937, 0x695C, 0x694F, 0x6951, /* 0xE0 */
- 0x6932, 0x6952, 0x692F, 0x697B, 0x693C, 0x6B46, 0x6B45, 0x6B43, /* 0xF0 */
- 0x6B42, 0x6B48, 0x6B41, 0x6B9B, 0xFA0D, 0x6BFB, 0x6BFC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_DE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6BF9, 0x6BF7, 0x6BF8, 0x6E9B, 0x6ED6, 0x6EC8, 0x6E8F, 0x6EC0, /* 0x40 */
- 0x6E9F, 0x6E93, 0x6E94, 0x6EA0, 0x6EB1, 0x6EB9, 0x6EC6, 0x6ED2, /* 0x40 */
- 0x6EBD, 0x6EC1, 0x6E9E, 0x6EC9, 0x6EB7, 0x6EB0, 0x6ECD, 0x6EA6, /* 0x50 */
- 0x6ECF, 0x6EB2, 0x6EBE, 0x6EC3, 0x6EDC, 0x6ED8, 0x6E99, 0x6E92, /* 0x50 */
- 0x6E8E, 0x6E8D, 0x6EA4, 0x6EA1, 0x6EBF, 0x6EB3, 0x6ED0, 0x6ECA, /* 0x60 */
- 0x6E97, 0x6EAE, 0x6EA3, 0x7147, 0x7154, 0x7152, 0x7163, 0x7160, /* 0x60 */
- 0x7141, 0x715D, 0x7162, 0x7172, 0x7178, 0x716A, 0x7161, 0x7142, /* 0x70 */
- 0x7158, 0x7143, 0x714B, 0x7170, 0x715F, 0x7150, 0x7153, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x7144, 0x714D, 0x715A, 0x724F, 0x728D, 0x728C, 0x7291, /* 0xA0 */
- 0x7290, 0x728E, 0x733C, 0x7342, 0x733B, 0x733A, 0x7340, 0x734A, /* 0xA0 */
- 0x7349, 0x7444, 0x744A, 0x744B, 0x7452, 0x7451, 0x7457, 0x7440, /* 0xB0 */
- 0x744F, 0x7450, 0x744E, 0x7442, 0x7446, 0x744D, 0x7454, 0x74E1, /* 0xB0 */
- 0x74FF, 0x74FE, 0x74FD, 0x751D, 0x7579, 0x7577, 0x6983, 0x75EF, /* 0xC0 */
- 0x760F, 0x7603, 0x75F7, 0x75FE, 0x75FC, 0x75F9, 0x75F8, 0x7610, /* 0xC0 */
- 0x75FB, 0x75F6, 0x75ED, 0x75F5, 0x75FD, 0x7699, 0x76B5, 0x76DD, /* 0xD0 */
- 0x7755, 0x775F, 0x7760, 0x7752, 0x7756, 0x775A, 0x7769, 0x7767, /* 0xD0 */
- 0x7754, 0x7759, 0x776D, 0x77E0, 0x7887, 0x789A, 0x7894, 0x788F, /* 0xE0 */
- 0x7884, 0x7895, 0x7885, 0x7886, 0x78A1, 0x7883, 0x7879, 0x7899, /* 0xE0 */
- 0x7880, 0x7896, 0x787B, 0x797C, 0x7982, 0x797D, 0x7979, 0x7A11, /* 0xF0 */
- 0x7A18, 0x7A19, 0x7A12, 0x7A17, 0x7A15, 0x7A22, 0x7A13 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_DF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7A1B, 0x7A10, 0x7AA3, 0x7AA2, 0x7A9E, 0x7AEB, 0x7B66, 0x7B64, /* 0x40 */
- 0x7B6D, 0x7B74, 0x7B69, 0x7B72, 0x7B65, 0x7B73, 0x7B71, 0x7B70, /* 0x40 */
- 0x7B61, 0x7B78, 0x7B76, 0x7B63, 0x7CB2, 0x7CB4, 0x7CAF, 0x7D88, /* 0x50 */
- 0x7D86, 0x7D80, 0x7D8D, 0x7D7F, 0x7D85, 0x7D7A, 0x7D8E, 0x7D7B, /* 0x50 */
- 0x7D83, 0x7D7C, 0x7D8C, 0x7D94, 0x7D84, 0x7D7D, 0x7D92, 0x7F6D, /* 0x60 */
- 0x7F6B, 0x7F67, 0x7F68, 0x7F6C, 0x7FA6, 0x7FA5, 0x7FA7, 0x7FDB, /* 0x60 */
- 0x7FDC, 0x8021, 0x8164, 0x8160, 0x8177, 0x815C, 0x8169, 0x815B, /* 0x70 */
- 0x8162, 0x8172, 0x6721, 0x815E, 0x8176, 0x8167, 0x816F, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x8144, 0x8161, 0x821D, 0x8249, 0x8244, 0x8240, 0x8242, /* 0xA0 */
- 0x8245, 0x84F1, 0x843F, 0x8456, 0x8476, 0x8479, 0x848F, 0x848D, /* 0xA0 */
- 0x8465, 0x8451, 0x8440, 0x8486, 0x8467, 0x8430, 0x844D, 0x847D, /* 0xB0 */
- 0x845A, 0x8459, 0x8474, 0x8473, 0x845D, 0x8507, 0x845E, 0x8437, /* 0xB0 */
- 0x843A, 0x8434, 0x847A, 0x8443, 0x8478, 0x8432, 0x8445, 0x8429, /* 0xC0 */
- 0x83D9, 0x844B, 0x842F, 0x8442, 0x842D, 0x845F, 0x8470, 0x8439, /* 0xC0 */
- 0x844E, 0x844C, 0x8452, 0x846F, 0x84C5, 0x848E, 0x843B, 0x8447, /* 0xD0 */
- 0x8436, 0x8433, 0x8468, 0x847E, 0x8444, 0x842B, 0x8460, 0x8454, /* 0xD0 */
- 0x846E, 0x8450, 0x870B, 0x8704, 0x86F7, 0x870C, 0x86FA, 0x86D6, /* 0xE0 */
- 0x86F5, 0x874D, 0x86F8, 0x870E, 0x8709, 0x8701, 0x86F6, 0x870D, /* 0xE0 */
- 0x8705, 0x88D6, 0x88CB, 0x88CD, 0x88CE, 0x88DE, 0x88DB, 0x88DA, /* 0xF0 */
- 0x88CC, 0x88D0, 0x8985, 0x899B, 0x89DF, 0x89E5, 0x89E4 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_E0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x89E1, 0x89E0, 0x89E2, 0x89DC, 0x89E6, 0x8A76, 0x8A86, 0x8A7F, /* 0x40 */
- 0x8A61, 0x8A3F, 0x8A77, 0x8A82, 0x8A84, 0x8A75, 0x8A83, 0x8A81, /* 0x40 */
- 0x8A74, 0x8A7A, 0x8C3C, 0x8C4B, 0x8C4A, 0x8C65, 0x8C64, 0x8C66, /* 0x50 */
- 0x8C86, 0x8C84, 0x8C85, 0x8CCC, 0x8D68, 0x8D69, 0x8D91, 0x8D8C, /* 0x50 */
- 0x8D8E, 0x8D8F, 0x8D8D, 0x8D93, 0x8D94, 0x8D90, 0x8D92, 0x8DF0, /* 0x60 */
- 0x8DE0, 0x8DEC, 0x8DF1, 0x8DEE, 0x8DD0, 0x8DE9, 0x8DE3, 0x8DE2, /* 0x60 */
- 0x8DE7, 0x8DF2, 0x8DEB, 0x8DF4, 0x8F06, 0x8EFF, 0x8F01, 0x8F00, /* 0x70 */
- 0x8F05, 0x8F07, 0x8F08, 0x8F02, 0x8F0B, 0x9052, 0x903F, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x9044, 0x9049, 0x903D, 0x9110, 0x910D, 0x910F, 0x9111, /* 0xA0 */
- 0x9116, 0x9114, 0x910B, 0x910E, 0x916E, 0x916F, 0x9248, 0x9252, /* 0xA0 */
- 0x9230, 0x923A, 0x9266, 0x9233, 0x9265, 0x925E, 0x9283, 0x922E, /* 0xB0 */
- 0x924A, 0x9246, 0x926D, 0x926C, 0x924F, 0x9260, 0x9267, 0x926F, /* 0xB0 */
- 0x9236, 0x9261, 0x9270, 0x9231, 0x9254, 0x9263, 0x9250, 0x9272, /* 0xC0 */
- 0x924E, 0x9253, 0x924C, 0x9256, 0x9232, 0x959F, 0x959C, 0x959E, /* 0xC0 */
- 0x959B, 0x9692, 0x9693, 0x9691, 0x9697, 0x96CE, 0x96FA, 0x96FD, /* 0xD0 */
- 0x96F8, 0x96F5, 0x9773, 0x9777, 0x9778, 0x9772, 0x980F, 0x980D, /* 0xD0 */
- 0x980E, 0x98AC, 0x98F6, 0x98F9, 0x99AF, 0x99B2, 0x99B0, 0x99B5, /* 0xE0 */
- 0x9AAD, 0x9AAB, 0x9B5B, 0x9CEA, 0x9CED, 0x9CE7, 0x9E80, 0x9EFD, /* 0xE0 */
- 0x50E6, 0x50D4, 0x50D7, 0x50E8, 0x50F3, 0x50DB, 0x50EA, 0x50DD, /* 0xF0 */
- 0x50E4, 0x50D3, 0x50EC, 0x50F0, 0x50EF, 0x50E3, 0x50E0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_E1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x51D8, 0x5280, 0x5281, 0x52E9, 0x52EB, 0x5330, 0x53AC, 0x5627, /* 0x40 */
- 0x5615, 0x560C, 0x5612, 0x55FC, 0x560F, 0x561C, 0x5601, 0x5613, /* 0x40 */
- 0x5602, 0x55FA, 0x561D, 0x5604, 0x55FF, 0x55F9, 0x5889, 0x587C, /* 0x50 */
- 0x5890, 0x5898, 0x5886, 0x5881, 0x587F, 0x5874, 0x588B, 0x587A, /* 0x50 */
- 0x5887, 0x5891, 0x588E, 0x5876, 0x5882, 0x5888, 0x587B, 0x5894, /* 0x60 */
- 0x588F, 0x58FE, 0x596B, 0x5ADC, 0x5AEE, 0x5AE5, 0x5AD5, 0x5AEA, /* 0x60 */
- 0x5ADA, 0x5AED, 0x5AEB, 0x5AF3, 0x5AE2, 0x5AE0, 0x5ADB, 0x5AEC, /* 0x70 */
- 0x5ADE, 0x5ADD, 0x5AD9, 0x5AE8, 0x5ADF, 0x5B77, 0x5BE0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x5BE3, 0x5C63, 0x5D82, 0x5D80, 0x5D7D, 0x5D86, 0x5D7A, /* 0xA0 */
- 0x5D81, 0x5D77, 0x5D8A, 0x5D89, 0x5D88, 0x5D7E, 0x5D7C, 0x5D8D, /* 0xA0 */
- 0x5D79, 0x5D7F, 0x5E58, 0x5E59, 0x5E53, 0x5ED8, 0x5ED1, 0x5ED7, /* 0xB0 */
- 0x5ECE, 0x5EDC, 0x5ED5, 0x5ED9, 0x5ED2, 0x5ED4, 0x5F44, 0x5F43, /* 0xB0 */
- 0x5F6F, 0x5FB6, 0x612C, 0x6128, 0x6141, 0x615E, 0x6171, 0x6173, /* 0xC0 */
- 0x6152, 0x6153, 0x6172, 0x616C, 0x6180, 0x6174, 0x6154, 0x617A, /* 0xC0 */
- 0x615B, 0x6165, 0x613B, 0x616A, 0x6161, 0x6156, 0x6229, 0x6227, /* 0xD0 */
- 0x622B, 0x642B, 0x644D, 0x645B, 0x645D, 0x6474, 0x6476, 0x6472, /* 0xD0 */
- 0x6473, 0x647D, 0x6475, 0x6466, 0x64A6, 0x644E, 0x6482, 0x645E, /* 0xE0 */
- 0x645C, 0x644B, 0x6453, 0x6460, 0x6450, 0x647F, 0x643F, 0x646C, /* 0xE0 */
- 0x646B, 0x6459, 0x6465, 0x6477, 0x6573, 0x65A0, 0x66A1, 0x66A0, /* 0xF0 */
- 0x669F, 0x6705, 0x6704, 0x6722, 0x69B1, 0x69B6, 0x69C9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_E2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x69A0, 0x69CE, 0x6996, 0x69B0, 0x69AC, 0x69BC, 0x6991, 0x6999, /* 0x40 */
- 0x698E, 0x69A7, 0x698D, 0x69A9, 0x69BE, 0x69AF, 0x69BF, 0x69C4, /* 0x40 */
- 0x69BD, 0x69A4, 0x69D4, 0x69B9, 0x69CA, 0x699A, 0x69CF, 0x69B3, /* 0x50 */
- 0x6993, 0x69AA, 0x69A1, 0x699E, 0x69D9, 0x6997, 0x6990, 0x69C2, /* 0x50 */
- 0x69B5, 0x69A5, 0x69C6, 0x6B4A, 0x6B4D, 0x6B4B, 0x6B9E, 0x6B9F, /* 0x60 */
- 0x6BA0, 0x6BC3, 0x6BC4, 0x6BFE, 0x6ECE, 0x6EF5, 0x6EF1, 0x6F03, /* 0x60 */
- 0x6F25, 0x6EF8, 0x6F37, 0x6EFB, 0x6F2E, 0x6F09, 0x6F4E, 0x6F19, /* 0x70 */
- 0x6F1A, 0x6F27, 0x6F18, 0x6F3B, 0x6F12, 0x6EED, 0x6F0A, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x6F36, 0x6F73, 0x6EF9, 0x6EEE, 0x6F2D, 0x6F40, 0x6F30, /* 0xA0 */
- 0x6F3C, 0x6F35, 0x6EEB, 0x6F07, 0x6F0E, 0x6F43, 0x6F05, 0x6EFD, /* 0xA0 */
- 0x6EF6, 0x6F39, 0x6F1C, 0x6EFC, 0x6F3A, 0x6F1F, 0x6F0D, 0x6F1E, /* 0xB0 */
- 0x6F08, 0x6F21, 0x7187, 0x7190, 0x7189, 0x7180, 0x7185, 0x7182, /* 0xB0 */
- 0x718F, 0x717B, 0x7186, 0x7181, 0x7197, 0x7244, 0x7253, 0x7297, /* 0xC0 */
- 0x7295, 0x7293, 0x7343, 0x734D, 0x7351, 0x734C, 0x7462, 0x7473, /* 0xC0 */
- 0x7471, 0x7475, 0x7472, 0x7467, 0x746E, 0x7500, 0x7502, 0x7503, /* 0xD0 */
- 0x757D, 0x7590, 0x7616, 0x7608, 0x760C, 0x7615, 0x7611, 0x760A, /* 0xD0 */
- 0x7614, 0x76B8, 0x7781, 0x777C, 0x7785, 0x7782, 0x776E, 0x7780, /* 0xE0 */
- 0x776F, 0x777E, 0x7783, 0x78B2, 0x78AA, 0x78B4, 0x78AD, 0x78A8, /* 0xE0 */
- 0x787E, 0x78AB, 0x789E, 0x78A5, 0x78A0, 0x78AC, 0x78A2, 0x78A4, /* 0xF0 */
- 0x7998, 0x798A, 0x798B, 0x7996, 0x7995, 0x7994, 0x7993 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_E3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7997, 0x7988, 0x7992, 0x7990, 0x7A2B, 0x7A4A, 0x7A30, 0x7A2F, /* 0x40 */
- 0x7A28, 0x7A26, 0x7AA8, 0x7AAB, 0x7AAC, 0x7AEE, 0x7B88, 0x7B9C, /* 0x40 */
- 0x7B8A, 0x7B91, 0x7B90, 0x7B96, 0x7B8D, 0x7B8C, 0x7B9B, 0x7B8E, /* 0x50 */
- 0x7B85, 0x7B98, 0x5284, 0x7B99, 0x7BA4, 0x7B82, 0x7CBB, 0x7CBF, /* 0x50 */
- 0x7CBC, 0x7CBA, 0x7DA7, 0x7DB7, 0x7DC2, 0x7DA3, 0x7DAA, 0x7DC1, /* 0x60 */
- 0x7DC0, 0x7DC5, 0x7D9D, 0x7DCE, 0x7DC4, 0x7DC6, 0x7DCB, 0x7DCC, /* 0x60 */
- 0x7DAF, 0x7DB9, 0x7D96, 0x7DBC, 0x7D9F, 0x7DA6, 0x7DAE, 0x7DA9, /* 0x70 */
- 0x7DA1, 0x7DC9, 0x7F73, 0x7FE2, 0x7FE3, 0x7FE5, 0x7FDE, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x8024, 0x805D, 0x805C, 0x8189, 0x8186, 0x8183, 0x8187, /* 0xA0 */
- 0x818D, 0x818C, 0x818B, 0x8215, 0x8497, 0x84A4, 0x84A1, 0x849F, /* 0xA0 */
- 0x84BA, 0x84CE, 0x84C2, 0x84AC, 0x84AE, 0x84AB, 0x84B9, 0x84B4, /* 0xB0 */
- 0x84C1, 0x84CD, 0x84AA, 0x849A, 0x84B1, 0x84D0, 0x849D, 0x84A7, /* 0xB0 */
- 0x84BB, 0x84A2, 0x8494, 0x84C7, 0x84CC, 0x849B, 0x84A9, 0x84AF, /* 0xC0 */
- 0x84A8, 0x84D6, 0x8498, 0x84B6, 0x84CF, 0x84A0, 0x84D7, 0x84D4, /* 0xC0 */
- 0x84D2, 0x84DB, 0x84B0, 0x8491, 0x8661, 0x8733, 0x8723, 0x8728, /* 0xD0 */
- 0x876B, 0x8740, 0x872E, 0x871E, 0x8721, 0x8719, 0x871B, 0x8743, /* 0xD0 */
- 0x872C, 0x8741, 0x873E, 0x8746, 0x8720, 0x8732, 0x872A, 0x872D, /* 0xE0 */
- 0x873C, 0x8712, 0x873A, 0x8731, 0x8735, 0x8742, 0x8726, 0x8727, /* 0xE0 */
- 0x8738, 0x8724, 0x871A, 0x8730, 0x8711, 0x88F7, 0x88E7, 0x88F1, /* 0xF0 */
- 0x88F2, 0x88FA, 0x88FE, 0x88EE, 0x88FC, 0x88F6, 0x88FB /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_E4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x88F0, 0x88EC, 0x88EB, 0x899D, 0x89A1, 0x899F, 0x899E, 0x89E9, /* 0x40 */
- 0x89EB, 0x89E8, 0x8AAB, 0x8A99, 0x8A8B, 0x8A92, 0x8A8F, 0x8A96, /* 0x40 */
- 0x8C3D, 0x8C68, 0x8C69, 0x8CD5, 0x8CCF, 0x8CD7, 0x8D96, 0x8E09, /* 0x50 */
- 0x8E02, 0x8DFF, 0x8E0D, 0x8DFD, 0x8E0A, 0x8E03, 0x8E07, 0x8E06, /* 0x50 */
- 0x8E05, 0x8DFE, 0x8E00, 0x8E04, 0x8F10, 0x8F11, 0x8F0E, 0x8F0D, /* 0x60 */
- 0x9123, 0x911C, 0x9120, 0x9122, 0x911F, 0x911D, 0x911A, 0x9124, /* 0x60 */
- 0x9121, 0x911B, 0x917A, 0x9172, 0x9179, 0x9173, 0x92A5, 0x92A4, /* 0x70 */
- 0x9276, 0x929B, 0x927A, 0x92A0, 0x9294, 0x92AA, 0x928D, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x92A6, 0x929A, 0x92AB, 0x9279, 0x9297, 0x927F, 0x92A3, /* 0xA0 */
- 0x92EE, 0x928E, 0x9282, 0x9295, 0x92A2, 0x927D, 0x9288, 0x92A1, /* 0xA0 */
- 0x928A, 0x9286, 0x928C, 0x9299, 0x92A7, 0x927E, 0x9287, 0x92A9, /* 0xB0 */
- 0x929D, 0x928B, 0x922D, 0x969E, 0x96A1, 0x96FF, 0x9758, 0x977D, /* 0xB0 */
- 0x977A, 0x977E, 0x9783, 0x9780, 0x9782, 0x977B, 0x9784, 0x9781, /* 0xC0 */
- 0x977F, 0x97CE, 0x97CD, 0x9816, 0x98AD, 0x98AE, 0x9902, 0x9900, /* 0xC0 */
- 0x9907, 0x999D, 0x999C, 0x99C3, 0x99B9, 0x99BB, 0x99BA, 0x99C2, /* 0xD0 */
- 0x99BD, 0x99C7, 0x9AB1, 0x9AE3, 0x9AE7, 0x9B3E, 0x9B3F, 0x9B60, /* 0xD0 */
- 0x9B61, 0x9B5F, 0x9CF1, 0x9CF2, 0x9CF5, 0x9EA7, 0x50FF, 0x5103, /* 0xE0 */
- 0x5130, 0x50F8, 0x5106, 0x5107, 0x50F6, 0x50FE, 0x510B, 0x510C, /* 0xE0 */
- 0x50FD, 0x510A, 0x528B, 0x528C, 0x52F1, 0x52EF, 0x5648, 0x5642, /* 0xF0 */
- 0x564C, 0x5635, 0x5641, 0x564A, 0x5649, 0x5646, 0x5658 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_E5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x565A, 0x5640, 0x5633, 0x563D, 0x562C, 0x563E, 0x5638, 0x562A, /* 0x40 */
- 0x563A, 0x571A, 0x58AB, 0x589D, 0x58B1, 0x58A0, 0x58A3, 0x58AF, /* 0x40 */
- 0x58AC, 0x58A5, 0x58A1, 0x58FF, 0x5AFF, 0x5AF4, 0x5AFD, 0x5AF7, /* 0x50 */
- 0x5AF6, 0x5B03, 0x5AF8, 0x5B02, 0x5AF9, 0x5B01, 0x5B07, 0x5B05, /* 0x50 */
- 0x5B0F, 0x5C67, 0x5D99, 0x5D97, 0x5D9F, 0x5D92, 0x5DA2, 0x5D93, /* 0x60 */
- 0x5D95, 0x5DA0, 0x5D9C, 0x5DA1, 0x5D9A, 0x5D9E, 0x5E69, 0x5E5D, /* 0x60 */
- 0x5E60, 0x5E5C, 0x7DF3, 0x5EDB, 0x5EDE, 0x5EE1, 0x5F49, 0x5FB2, /* 0x70 */
- 0x618B, 0x6183, 0x6179, 0x61B1, 0x61B0, 0x61A2, 0x6189, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x619B, 0x6193, 0x61AF, 0x61AD, 0x619F, 0x6192, 0x61AA, /* 0xA0 */
- 0x61A1, 0x618D, 0x6166, 0x61B3, 0x622D, 0x646E, 0x6470, 0x6496, /* 0xA0 */
- 0x64A0, 0x6485, 0x6497, 0x649C, 0x648F, 0x648B, 0x648A, 0x648C, /* 0xB0 */
- 0x64A3, 0x649F, 0x6468, 0x64B1, 0x6498, 0x6576, 0x657A, 0x6579, /* 0xB0 */
- 0x657B, 0x65B2, 0x65B3, 0x66B5, 0x66B0, 0x66A9, 0x66B2, 0x66B7, /* 0xC0 */
- 0x66AA, 0x66AF, 0x6A00, 0x6A06, 0x6A17, 0x69E5, 0x69F8, 0x6A15, /* 0xC0 */
- 0x69F1, 0x69E4, 0x6A20, 0x69FF, 0x69EC, 0x69E2, 0x6A1B, 0x6A1D, /* 0xD0 */
- 0x69FE, 0x6A27, 0x69F2, 0x69EE, 0x6A14, 0x69F7, 0x69E7, 0x6A40, /* 0xD0 */
- 0x6A08, 0x69E6, 0x69FB, 0x6A0D, 0x69FC, 0x69EB, 0x6A09, 0x6A04, /* 0xE0 */
- 0x6A18, 0x6A25, 0x6A0F, 0x69F6, 0x6A26, 0x6A07, 0x69F4, 0x6A16, /* 0xE0 */
- 0x6B51, 0x6BA5, 0x6BA3, 0x6BA2, 0x6BA6, 0x6C01, 0x6C00, 0x6BFF, /* 0xF0 */
- 0x6C02, 0x6F41, 0x6F26, 0x6F7E, 0x6F87, 0x6FC6, 0x6F92 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_E6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6F8D, 0x6F89, 0x6F8C, 0x6F62, 0x6F4F, 0x6F85, 0x6F5A, 0x6F96, /* 0x40 */
- 0x6F76, 0x6F6C, 0x6F82, 0x6F55, 0x6F72, 0x6F52, 0x6F50, 0x6F57, /* 0x40 */
- 0x6F94, 0x6F93, 0x6F5D, 0x6F00, 0x6F61, 0x6F6B, 0x6F7D, 0x6F67, /* 0x50 */
- 0x6F90, 0x6F53, 0x6F8B, 0x6F69, 0x6F7F, 0x6F95, 0x6F63, 0x6F77, /* 0x50 */
- 0x6F6A, 0x6F7B, 0x71B2, 0x71AF, 0x719B, 0x71B0, 0x71A0, 0x719A, /* 0x60 */
- 0x71A9, 0x71B5, 0x719D, 0x71A5, 0x719E, 0x71A4, 0x71A1, 0x71AA, /* 0x60 */
- 0x719C, 0x71A7, 0x71B3, 0x7298, 0x729A, 0x7358, 0x7352, 0x735E, /* 0x70 */
- 0x735F, 0x7360, 0x735D, 0x735B, 0x7361, 0x735A, 0x7359, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x7362, 0x7487, 0x7489, 0x748A, 0x7486, 0x7481, 0x747D, /* 0xA0 */
- 0x7485, 0x7488, 0x747C, 0x7479, 0x7508, 0x7507, 0x757E, 0x7625, /* 0xA0 */
- 0x761E, 0x7619, 0x761D, 0x761C, 0x7623, 0x761A, 0x7628, 0x761B, /* 0xB0 */
- 0x769C, 0x769D, 0x769E, 0x769B, 0x778D, 0x778F, 0x7789, 0x7788, /* 0xB0 */
- 0x78CD, 0x78BB, 0x78CF, 0x78CC, 0x78D1, 0x78CE, 0x78D4, 0x78C8, /* 0xC0 */
- 0x78C3, 0x78C4, 0x78C9, 0x799A, 0x79A1, 0x79A0, 0x799C, 0x79A2, /* 0xC0 */
- 0x799B, 0x6B76, 0x7A39, 0x7AB2, 0x7AB4, 0x7AB3, 0x7BB7, 0x7BCB, /* 0xD0 */
- 0x7BBE, 0x7BAC, 0x7BCE, 0x7BAF, 0x7BB9, 0x7BCA, 0x7BB5, 0x7CC5, /* 0xD0 */
- 0x7CC8, 0x7CCC, 0x7CCB, 0x7DF7, 0x7DDB, 0x7DEA, 0x7DE7, 0x7DD7, /* 0xE0 */
- 0x7DE1, 0x7E03, 0x7DFA, 0x7DE6, 0x7DF6, 0x7DF1, 0x7DF0, 0x7DEE, /* 0xE0 */
- 0x7DDF, 0x7F76, 0x7FAC, 0x7FB0, 0x7FAD, 0x7FED, 0x7FEB, 0x7FEA, /* 0xF0 */
- 0x7FEC, 0x7FE6, 0x7FE8, 0x8064, 0x8067, 0x81A3, 0x819F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_E7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x819E, 0x8195, 0x81A2, 0x8199, 0x8197, 0x8216, 0x824F, 0x8253, /* 0x40 */
- 0x8252, 0x8250, 0x824E, 0x8251, 0x8524, 0x853B, 0x850F, 0x8500, /* 0x40 */
- 0x8529, 0x850E, 0x8509, 0x850D, 0x851F, 0x850A, 0x8527, 0x851C, /* 0x50 */
- 0x84FB, 0x852B, 0x84FA, 0x8508, 0x850C, 0x84F4, 0x852A, 0x84F2, /* 0x50 */
- 0x8515, 0x84F7, 0x84EB, 0x84F3, 0x84FC, 0x8512, 0x84EA, 0x84E9, /* 0x60 */
- 0x8516, 0x84FE, 0x8528, 0x851D, 0x852E, 0x8502, 0x84FD, 0x851E, /* 0x60 */
- 0x84F6, 0x8531, 0x8526, 0x84E7, 0x84E8, 0x84F0, 0x84EF, 0x84F9, /* 0x70 */
- 0x8518, 0x8520, 0x8530, 0x850B, 0x8519, 0x852F, 0x8662, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x8756, 0x8763, 0x8764, 0x8777, 0x87E1, 0x8773, 0x8758, /* 0xA0 */
- 0x8754, 0x875B, 0x8752, 0x8761, 0x875A, 0x8751, 0x875E, 0x876D, /* 0xA0 */
- 0x876A, 0x8750, 0x874E, 0x875F, 0x875D, 0x876F, 0x876C, 0x877A, /* 0xB0 */
- 0x876E, 0x875C, 0x8765, 0x874F, 0x877B, 0x8775, 0x8762, 0x8767, /* 0xB0 */
- 0x8769, 0x885A, 0x8905, 0x890C, 0x8914, 0x890B, 0x8917, 0x8918, /* 0xC0 */
- 0x8919, 0x8906, 0x8916, 0x8911, 0x890E, 0x8909, 0x89A2, 0x89A4, /* 0xC0 */
- 0x89A3, 0x89ED, 0x89F0, 0x89EC, 0x8ACF, 0x8AC6, 0x8AB8, 0x8AD3, /* 0xD0 */
- 0x8AD1, 0x8AD4, 0x8AD5, 0x8ABB, 0x8AD7, 0x8ABE, 0x8AC0, 0x8AC5, /* 0xD0 */
- 0x8AD8, 0x8AC3, 0x8ABA, 0x8ABD, 0x8AD9, 0x8C3E, 0x8C4D, 0x8C8F, /* 0xE0 */
- 0x8CE5, 0x8CDF, 0x8CD9, 0x8CE8, 0x8CDA, 0x8CDD, 0x8CE7, 0x8DA0, /* 0xE0 */
- 0x8D9C, 0x8DA1, 0x8D9B, 0x8E20, 0x8E23, 0x8E25, 0x8E24, 0x8E2E, /* 0xF0 */
- 0x8E15, 0x8E1B, 0x8E16, 0x8E11, 0x8E19, 0x8E26, 0x8E27 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_E8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8E14, 0x8E12, 0x8E18, 0x8E13, 0x8E1C, 0x8E17, 0x8E1A, 0x8F2C, /* 0x40 */
- 0x8F24, 0x8F18, 0x8F1A, 0x8F20, 0x8F23, 0x8F16, 0x8F17, 0x9073, /* 0x40 */
- 0x9070, 0x906F, 0x9067, 0x906B, 0x912F, 0x912B, 0x9129, 0x912A, /* 0x50 */
- 0x9132, 0x9126, 0x912E, 0x9185, 0x9186, 0x918A, 0x9181, 0x9182, /* 0x50 */
- 0x9184, 0x9180, 0x92D0, 0x92C3, 0x92C4, 0x92C0, 0x92D9, 0x92B6, /* 0x60 */
- 0x92CF, 0x92F1, 0x92DF, 0x92D8, 0x92E9, 0x92D7, 0x92DD, 0x92CC, /* 0x60 */
- 0x92EF, 0x92C2, 0x92E8, 0x92CA, 0x92C8, 0x92CE, 0x92E6, 0x92CD, /* 0x70 */
- 0x92D5, 0x92C9, 0x92E0, 0x92DE, 0x92E7, 0x92D1, 0x92D3, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x92B5, 0x92E1, 0x92C6, 0x92B4, 0x957C, 0x95AC, 0x95AB, /* 0xA0 */
- 0x95AE, 0x95B0, 0x96A4, 0x96A2, 0x96D3, 0x9705, 0x9708, 0x9702, /* 0xA0 */
- 0x975A, 0x978A, 0x978E, 0x9788, 0x97D0, 0x97CF, 0x981E, 0x981D, /* 0xB0 */
- 0x9826, 0x9829, 0x9828, 0x9820, 0x981B, 0x9827, 0x98B2, 0x9908, /* 0xB0 */
- 0x98FA, 0x9911, 0x9914, 0x9916, 0x9917, 0x9915, 0x99DC, 0x99CD, /* 0xC0 */
- 0x99CF, 0x99D3, 0x99D4, 0x99CE, 0x99C9, 0x99D6, 0x99D8, 0x99CB, /* 0xC0 */
- 0x99D7, 0x99CC, 0x9AB3, 0x9AEC, 0x9AEB, 0x9AF3, 0x9AF2, 0x9AF1, /* 0xD0 */
- 0x9B46, 0x9B43, 0x9B67, 0x9B74, 0x9B71, 0x9B66, 0x9B76, 0x9B75, /* 0xD0 */
- 0x9B70, 0x9B68, 0x9B64, 0x9B6C, 0x9CFC, 0x9CFA, 0x9CFD, 0x9CFF, /* 0xE0 */
- 0x9CF7, 0x9D07, 0x9D00, 0x9CF9, 0x9CFB, 0x9D08, 0x9D05, 0x9D04, /* 0xE0 */
- 0x9E83, 0x9ED3, 0x9F0F, 0x9F10, 0x511C, 0x5113, 0x5117, 0x511A, /* 0xF0 */
- 0x5111, 0x51DE, 0x5334, 0x53E1, 0x5670, 0x5660, 0x566E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_E9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5673, 0x5666, 0x5663, 0x566D, 0x5672, 0x565E, 0x5677, 0x571C, /* 0x40 */
- 0x571B, 0x58C8, 0x58BD, 0x58C9, 0x58BF, 0x58BA, 0x58C2, 0x58BC, /* 0x40 */
- 0x58C6, 0x5B17, 0x5B19, 0x5B1B, 0x5B21, 0x5B14, 0x5B13, 0x5B10, /* 0x50 */
- 0x5B16, 0x5B28, 0x5B1A, 0x5B20, 0x5B1E, 0x5BEF, 0x5DAC, 0x5DB1, /* 0x50 */
- 0x5DA9, 0x5DA7, 0x5DB5, 0x5DB0, 0x5DAE, 0x5DAA, 0x5DA8, 0x5DB2, /* 0x60 */
- 0x5DAD, 0x5DAF, 0x5DB4, 0x5E67, 0x5E68, 0x5E66, 0x5E6F, 0x5EE9, /* 0x60 */
- 0x5EE7, 0x5EE6, 0x5EE8, 0x5EE5, 0x5F4B, 0x5FBC, 0x619D, 0x61A8, /* 0x70 */
- 0x6196, 0x61C5, 0x61B4, 0x61C6, 0x61C1, 0x61CC, 0x61BA, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x61BF, 0x61B8, 0x618C, 0x64D7, 0x64D6, 0x64D0, 0x64CF, /* 0xA0 */
- 0x64C9, 0x64BD, 0x6489, 0x64C3, 0x64DB, 0x64F3, 0x64D9, 0x6533, /* 0xA0 */
- 0x657F, 0x657C, 0x65A2, 0x66C8, 0x66BE, 0x66C0, 0x66CA, 0x66CB, /* 0xB0 */
- 0x66CF, 0x66BD, 0x66BB, 0x66BA, 0x66CC, 0x6723, 0x6A34, 0x6A66, /* 0xB0 */
- 0x6A49, 0x6A67, 0x6A32, 0x6A68, 0x6A3E, 0x6A5D, 0x6A6D, 0x6A76, /* 0xC0 */
- 0x6A5B, 0x6A51, 0x6A28, 0x6A5A, 0x6A3B, 0x6A3F, 0x6A41, 0x6A6A, /* 0xC0 */
- 0x6A64, 0x6A50, 0x6A4F, 0x6A54, 0x6A6F, 0x6A69, 0x6A60, 0x6A3C, /* 0xD0 */
- 0x6A5E, 0x6A56, 0x6A55, 0x6A4D, 0x6A4E, 0x6A46, 0x6B55, 0x6B54, /* 0xD0 */
- 0x6B56, 0x6BA7, 0x6BAA, 0x6BAB, 0x6BC8, 0x6BC7, 0x6C04, 0x6C03, /* 0xE0 */
- 0x6C06, 0x6FAD, 0x6FCB, 0x6FA3, 0x6FC7, 0x6FBC, 0x6FCE, 0x6FC8, /* 0xE0 */
- 0x6F5E, 0x6FC4, 0x6FBD, 0x6F9E, 0x6FCA, 0x6FA8, 0x7004, 0x6FA5, /* 0xF0 */
- 0x6FAE, 0x6FBA, 0x6FAC, 0x6FAA, 0x6FCF, 0x6FBF, 0x6FB8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_EA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6FA2, 0x6FC9, 0x6FAB, 0x6FCD, 0x6FAF, 0x6FB2, 0x6FB0, 0x71C5, /* 0x40 */
- 0x71C2, 0x71BF, 0x71B8, 0x71D6, 0x71C0, 0x71C1, 0x71CB, 0x71D4, /* 0x40 */
- 0x71CA, 0x71C7, 0x71CF, 0x71BD, 0x71D8, 0x71BC, 0x71C6, 0x71DA, /* 0x50 */
- 0x71DB, 0x729D, 0x729E, 0x7369, 0x7366, 0x7367, 0x736C, 0x7365, /* 0x50 */
- 0x736B, 0x736A, 0x747F, 0x749A, 0x74A0, 0x7494, 0x7492, 0x7495, /* 0x60 */
- 0x74A1, 0x750B, 0x7580, 0x762F, 0x762D, 0x7631, 0x763D, 0x7633, /* 0x60 */
- 0x763C, 0x7635, 0x7632, 0x7630, 0x76BB, 0x76E6, 0x779A, 0x779D, /* 0x70 */
- 0x77A1, 0x779C, 0x779B, 0x77A2, 0x77A3, 0x7795, 0x7799, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x7797, 0x78DD, 0x78E9, 0x78E5, 0x78EA, 0x78DE, 0x78E3, /* 0xA0 */
- 0x78DB, 0x78E1, 0x78E2, 0x78ED, 0x78DF, 0x78E0, 0x79A4, 0x7A44, /* 0xA0 */
- 0x7A48, 0x7A47, 0x7AB6, 0x7AB8, 0x7AB5, 0x7AB1, 0x7AB7, 0x7BDE, /* 0xB0 */
- 0x7BE3, 0x7BE7, 0x7BDD, 0x7BD5, 0x7BE5, 0x7BDA, 0x7BE8, 0x7BF9, /* 0xB0 */
- 0x7BD4, 0x7BEA, 0x7BE2, 0x7BDC, 0x7BEB, 0x7BD8, 0x7BDF, 0x7CD2, /* 0xC0 */
- 0x7CD4, 0x7CD7, 0x7CD0, 0x7CD1, 0x7E12, 0x7E21, 0x7E17, 0x7E0C, /* 0xC0 */
- 0x7E1F, 0x7E20, 0x7E13, 0x7E0E, 0x7E1C, 0x7E15, 0x7E1A, 0x7E22, /* 0xD0 */
- 0x7E0B, 0x7E0F, 0x7E16, 0x7E0D, 0x7E14, 0x7E25, 0x7E24, 0x7F43, /* 0xD0 */
- 0x7F7B, 0x7F7C, 0x7F7A, 0x7FB1, 0x7FEF, 0x802A, 0x8029, 0x806C, /* 0xE0 */
- 0x81B1, 0x81A6, 0x81AE, 0x81B9, 0x81B5, 0x81AB, 0x81B0, 0x81AC, /* 0xE0 */
- 0x81B4, 0x81B2, 0x81B7, 0x81A7, 0x81F2, 0x8255, 0x8256, 0x8257, /* 0xF0 */
- 0x8556, 0x8545, 0x856B, 0x854D, 0x8553, 0x8561, 0x8558 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_EB[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8540, 0x8546, 0x8564, 0x8541, 0x8562, 0x8544, 0x8551, 0x8547, /* 0x40 */
- 0x8563, 0x853E, 0x855B, 0x8571, 0x854E, 0x856E, 0x8575, 0x8555, /* 0x40 */
- 0x8567, 0x8560, 0x858C, 0x8566, 0x855D, 0x8554, 0x8565, 0x856C, /* 0x50 */
- 0x8663, 0x8665, 0x8664, 0x879B, 0x878F, 0x8797, 0x8793, 0x8792, /* 0x50 */
- 0x8788, 0x8781, 0x8796, 0x8798, 0x8779, 0x8787, 0x87A3, 0x8785, /* 0x60 */
- 0x8790, 0x8791, 0x879D, 0x8784, 0x8794, 0x879C, 0x879A, 0x8789, /* 0x60 */
- 0x891E, 0x8926, 0x8930, 0x892D, 0x892E, 0x8927, 0x8931, 0x8922, /* 0x70 */
- 0x8929, 0x8923, 0x892F, 0x892C, 0x891F, 0x89F1, 0x8AE0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x8AE2, 0x8AF2, 0x8AF4, 0x8AF5, 0x8ADD, 0x8B14, 0x8AE4, /* 0xA0 */
- 0x8ADF, 0x8AF0, 0x8AC8, 0x8ADE, 0x8AE1, 0x8AE8, 0x8AFF, 0x8AEF, /* 0xA0 */
- 0x8AFB, 0x8C91, 0x8C92, 0x8C90, 0x8CF5, 0x8CEE, 0x8CF1, 0x8CF0, /* 0xB0 */
- 0x8CF3, 0x8D6C, 0x8D6E, 0x8DA5, 0x8DA7, 0x8E33, 0x8E3E, 0x8E38, /* 0xB0 */
- 0x8E40, 0x8E45, 0x8E36, 0x8E3C, 0x8E3D, 0x8E41, 0x8E30, 0x8E3F, /* 0xC0 */
- 0x8EBD, 0x8F36, 0x8F2E, 0x8F35, 0x8F32, 0x8F39, 0x8F37, 0x8F34, /* 0xC0 */
- 0x9076, 0x9079, 0x907B, 0x9086, 0x90FA, 0x9133, 0x9135, 0x9136, /* 0xD0 */
- 0x9193, 0x9190, 0x9191, 0x918D, 0x918F, 0x9327, 0x931E, 0x9308, /* 0xD0 */
- 0x931F, 0x9306, 0x930F, 0x937A, 0x9338, 0x933C, 0x931B, 0x9323, /* 0xE0 */
- 0x9312, 0x9301, 0x9346, 0x932D, 0x930E, 0x930D, 0x92CB, 0x931D, /* 0xE0 */
- 0x92FA, 0x9325, 0x9313, 0x92F9, 0x92F7, 0x9334, 0x9302, 0x9324, /* 0xF0 */
- 0x92FF, 0x9329, 0x9339, 0x9335, 0x932A, 0x9314, 0x930C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_EC[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x930B, 0x92FE, 0x9309, 0x9300, 0x92FB, 0x9316, 0x95BC, 0x95CD, /* 0x40 */
- 0x95BE, 0x95B9, 0x95BA, 0x95B6, 0x95BF, 0x95B5, 0x95BD, 0x96A9, /* 0x40 */
- 0x96D4, 0x970B, 0x9712, 0x9710, 0x9799, 0x9797, 0x9794, 0x97F0, /* 0x50 */
- 0x97F8, 0x9835, 0x982F, 0x9832, 0x9924, 0x991F, 0x9927, 0x9929, /* 0x50 */
- 0x999E, 0x99EE, 0x99EC, 0x99E5, 0x99E4, 0x99F0, 0x99E3, 0x99EA, /* 0x60 */
- 0x99E9, 0x99E7, 0x9AB9, 0x9ABF, 0x9AB4, 0x9ABB, 0x9AF6, 0x9AFA, /* 0x60 */
- 0x9AF9, 0x9AF7, 0x9B33, 0x9B80, 0x9B85, 0x9B87, 0x9B7C, 0x9B7E, /* 0x70 */
- 0x9B7B, 0x9B82, 0x9B93, 0x9B92, 0x9B90, 0x9B7A, 0x9B95, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x9B7D, 0x9B88, 0x9D25, 0x9D17, 0x9D20, 0x9D1E, 0x9D14, /* 0xA0 */
- 0x9D29, 0x9D1D, 0x9D18, 0x9D22, 0x9D10, 0x9D19, 0x9D1F, 0x9E88, /* 0xA0 */
- 0x9E86, 0x9E87, 0x9EAE, 0x9EAD, 0x9ED5, 0x9ED6, 0x9EFA, 0x9F12, /* 0xB0 */
- 0x9F3D, 0x5126, 0x5125, 0x5122, 0x5124, 0x5120, 0x5129, 0x52F4, /* 0xB0 */
- 0x5693, 0x568C, 0x568D, 0x5686, 0x5684, 0x5683, 0x567E, 0x5682, /* 0xC0 */
- 0x567F, 0x5681, 0x58D6, 0x58D4, 0x58CF, 0x58D2, 0x5B2D, 0x5B25, /* 0xC0 */
- 0x5B32, 0x5B23, 0x5B2C, 0x5B27, 0x5B26, 0x5B2F, 0x5B2E, 0x5B7B, /* 0xD0 */
- 0x5BF1, 0x5BF2, 0x5DB7, 0x5E6C, 0x5E6A, 0x5FBE, 0x5FBB, 0x61C3, /* 0xD0 */
- 0x61B5, 0x61BC, 0x61E7, 0x61E0, 0x61E5, 0x61E4, 0x61E8, 0x61DE, /* 0xE0 */
- 0x64EF, 0x64E9, 0x64E3, 0x64EB, 0x64E4, 0x64E8, 0x6581, 0x6580, /* 0xE0 */
- 0x65B6, 0x65DA, 0x66D2, 0x6A8D, 0x6A96, 0x6A81, 0x6AA5, 0x6A89, /* 0xF0 */
- 0x6A9F, 0x6A9B, 0x6AA1, 0x6A9E, 0x6A87, 0x6A93, 0x6A8E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_ED[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x6A95, 0x6A83, 0x6AA8, 0x6AA4, 0x6A91, 0x6A7F, 0x6AA6, 0x6A9A, /* 0x40 */
- 0x6A85, 0x6A8C, 0x6A92, 0x6B5B, 0x6BAD, 0x6C09, 0x6FCC, 0x6FA9, /* 0x40 */
- 0x6FF4, 0x6FD4, 0x6FE3, 0x6FDC, 0x6FED, 0x6FE7, 0x6FE6, 0x6FDE, /* 0x50 */
- 0x6FF2, 0x6FDD, 0x6FE2, 0x6FE8, 0x71E1, 0x71F1, 0x71E8, 0x71F2, /* 0x50 */
- 0x71E4, 0x71F0, 0x71E2, 0x7373, 0x736E, 0x736F, 0x7497, 0x74B2, /* 0x60 */
- 0x74AB, 0x7490, 0x74AA, 0x74AD, 0x74B1, 0x74A5, 0x74AF, 0x7510, /* 0x60 */
- 0x7511, 0x7512, 0x750F, 0x7584, 0x7643, 0x7648, 0x7649, 0x7647, /* 0x70 */
- 0x76A4, 0x76E9, 0x77B5, 0x77AB, 0x77B2, 0x77B7, 0x77B6, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x77B4, 0x77B1, 0x77A8, 0x77F0, 0x78F3, 0x78FD, 0x7902, /* 0xA0 */
- 0x78FB, 0x78FC, 0x78F2, 0x7905, 0x78F9, 0x78FE, 0x7904, 0x79AB, /* 0xA0 */
- 0x79A8, 0x7A5C, 0x7A5B, 0x7A56, 0x7A58, 0x7A54, 0x7A5A, 0x7ABE, /* 0xB0 */
- 0x7AC0, 0x7AC1, 0x7C05, 0x7C0F, 0x7BF2, 0x7C00, 0x7BFF, 0x7BFB, /* 0xB0 */
- 0x7C0E, 0x7BF4, 0x7C0B, 0x7BF3, 0x7C02, 0x7C09, 0x7C03, 0x7C01, /* 0xC0 */
- 0x7BF8, 0x7BFD, 0x7C06, 0x7BF0, 0x7BF1, 0x7C10, 0x7C0A, 0x7CE8, /* 0xC0 */
- 0x7E2D, 0x7E3C, 0x7E42, 0x7E33, 0x9848, 0x7E38, 0x7E2A, 0x7E49, /* 0xD0 */
- 0x7E40, 0x7E47, 0x7E29, 0x7E4C, 0x7E30, 0x7E3B, 0x7E36, 0x7E44, /* 0xD0 */
- 0x7E3A, 0x7F45, 0x7F7F, 0x7F7E, 0x7F7D, 0x7FF4, 0x7FF2, 0x802C, /* 0xE0 */
- 0x81BB, 0x81C4, 0x81CC, 0x81CA, 0x81C5, 0x81C7, 0x81BC, 0x81E9, /* 0xE0 */
- 0x825B, 0x825A, 0x825C, 0x8583, 0x8580, 0x858F, 0x85A7, 0x8595, /* 0xF0 */
- 0x85A0, 0x858B, 0x85A3, 0x857B, 0x85A4, 0x859A, 0x859E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_EE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8577, 0x857C, 0x8589, 0x85A1, 0x857A, 0x8578, 0x8557, 0x858E, /* 0x40 */
- 0x8596, 0x8586, 0x858D, 0x8599, 0x859D, 0x8581, 0x85A2, 0x8582, /* 0x40 */
- 0x8588, 0x8585, 0x8579, 0x8576, 0x8598, 0x8590, 0x859F, 0x8668, /* 0x50 */
- 0x87BE, 0x87AA, 0x87AD, 0x87C5, 0x87B0, 0x87AC, 0x87B9, 0x87B5, /* 0x50 */
- 0x87BC, 0x87AE, 0x87C9, 0x87C3, 0x87C2, 0x87CC, 0x87B7, 0x87AF, /* 0x60 */
- 0x87C4, 0x87CA, 0x87B4, 0x87B6, 0x87BF, 0x87B8, 0x87BD, 0x87DE, /* 0x60 */
- 0x87B2, 0x8935, 0x8933, 0x893C, 0x893E, 0x8941, 0x8952, 0x8937, /* 0x70 */
- 0x8942, 0x89AD, 0x89AF, 0x89AE, 0x89F2, 0x89F3, 0x8B1E, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x8B18, 0x8B16, 0x8B11, 0x8B05, 0x8B0B, 0x8B22, 0x8B0F, /* 0xA0 */
- 0x8B12, 0x8B15, 0x8B07, 0x8B0D, 0x8B08, 0x8B06, 0x8B1C, 0x8B13, /* 0xA0 */
- 0x8B1A, 0x8C4F, 0x8C70, 0x8C72, 0x8C71, 0x8C6F, 0x8C95, 0x8C94, /* 0xB0 */
- 0x8CF9, 0x8D6F, 0x8E4E, 0x8E4D, 0x8E53, 0x8E50, 0x8E4C, 0x8E47, /* 0xB0 */
- 0x8F43, 0x8F40, 0x9085, 0x907E, 0x9138, 0x919A, 0x91A2, 0x919B, /* 0xC0 */
- 0x9199, 0x919F, 0x91A1, 0x919D, 0x91A0, 0x93A1, 0x9383, 0x93AF, /* 0xC0 */
- 0x9364, 0x9356, 0x9347, 0x937C, 0x9358, 0x935C, 0x9376, 0x9349, /* 0xD0 */
- 0x9350, 0x9351, 0x9360, 0x936D, 0x938F, 0x934C, 0x936A, 0x9379, /* 0xD0 */
- 0x9357, 0x9355, 0x9352, 0x934F, 0x9371, 0x9377, 0x937B, 0x9361, /* 0xE0 */
- 0x935E, 0x9363, 0x9367, 0x9380, 0x934E, 0x9359, 0x95C7, 0x95C0, /* 0xE0 */
- 0x95C9, 0x95C3, 0x95C5, 0x95B7, 0x96AE, 0x96B0, 0x96AC, 0x9720, /* 0xF0 */
- 0x971F, 0x9718, 0x971D, 0x9719, 0x979A, 0x97A1, 0x979C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_EF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x979E, 0x979D, 0x97D5, 0x97D4, 0x97F1, 0x9841, 0x9844, 0x984A, /* 0x40 */
- 0x9849, 0x9845, 0x9843, 0x9925, 0x992B, 0x992C, 0x992A, 0x9933, /* 0x40 */
- 0x9932, 0x992F, 0x992D, 0x9931, 0x9930, 0x9998, 0x99A3, 0x99A1, /* 0x50 */
- 0x9A02, 0x99FA, 0x99F4, 0x99F7, 0x99F9, 0x99F8, 0x99F6, 0x99FB, /* 0x50 */
- 0x99FD, 0x99FE, 0x99FC, 0x9A03, 0x9ABE, 0x9AFE, 0x9AFD, 0x9B01, /* 0x60 */
- 0x9AFC, 0x9B48, 0x9B9A, 0x9BA8, 0x9B9E, 0x9B9B, 0x9BA6, 0x9BA1, /* 0x60 */
- 0x9BA5, 0x9BA4, 0x9B86, 0x9BA2, 0x9BA0, 0x9BAF, 0x9D33, 0x9D41, /* 0x70 */
- 0x9D67, 0x9D36, 0x9D2E, 0x9D2F, 0x9D31, 0x9D38, 0x9D30, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x9D45, 0x9D42, 0x9D43, 0x9D3E, 0x9D37, 0x9D40, 0x9D3D, /* 0xA0 */
- 0x7FF5, 0x9D2D, 0x9E8A, 0x9E89, 0x9E8D, 0x9EB0, 0x9EC8, 0x9EDA, /* 0xA0 */
- 0x9EFB, 0x9EFF, 0x9F24, 0x9F23, 0x9F22, 0x9F54, 0x9FA0, 0x5131, /* 0xB0 */
- 0x512D, 0x512E, 0x5698, 0x569C, 0x5697, 0x569A, 0x569D, 0x5699, /* 0xB0 */
- 0x5970, 0x5B3C, 0x5C69, 0x5C6A, 0x5DC0, 0x5E6D, 0x5E6E, 0x61D8, /* 0xC0 */
- 0x61DF, 0x61ED, 0x61EE, 0x61F1, 0x61EA, 0x61F0, 0x61EB, 0x61D6, /* 0xC0 */
- 0x61E9, 0x64FF, 0x6504, 0x64FD, 0x64F8, 0x6501, 0x6503, 0x64FC, /* 0xD0 */
- 0x6594, 0x65DB, 0x66DA, 0x66DB, 0x66D8, 0x6AC5, 0x6AB9, 0x6ABD, /* 0xD0 */
- 0x6AE1, 0x6AC6, 0x6ABA, 0x6AB6, 0x6AB7, 0x6AC7, 0x6AB4, 0x6AAD, /* 0xE0 */
- 0x6B5E, 0x6BC9, 0x6C0B, 0x7007, 0x700C, 0x700D, 0x7001, 0x7005, /* 0xE0 */
- 0x7014, 0x700E, 0x6FFF, 0x7000, 0x6FFB, 0x7026, 0x6FFC, 0x6FF7, /* 0xF0 */
- 0x700A, 0x7201, 0x71FF, 0x71F9, 0x7203, 0x71FD, 0x7376 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_F0[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x74B8, 0x74C0, 0x74B5, 0x74C1, 0x74BE, 0x74B6, 0x74BB, 0x74C2, /* 0x40 */
- 0x7514, 0x7513, 0x765C, 0x7664, 0x7659, 0x7650, 0x7653, 0x7657, /* 0x40 */
- 0x765A, 0x76A6, 0x76BD, 0x76EC, 0x77C2, 0x77BA, 0x78FF, 0x790C, /* 0x50 */
- 0x7913, 0x7914, 0x7909, 0x7910, 0x7912, 0x7911, 0x79AD, 0x79AC, /* 0x50 */
- 0x7A5F, 0x7C1C, 0x7C29, 0x7C19, 0x7C20, 0x7C1F, 0x7C2D, 0x7C1D, /* 0x60 */
- 0x7C26, 0x7C28, 0x7C22, 0x7C25, 0x7C30, 0x7E5C, 0x7E50, 0x7E56, /* 0x60 */
- 0x7E63, 0x7E58, 0x7E62, 0x7E5F, 0x7E51, 0x7E60, 0x7E57, 0x7E53, /* 0x70 */
- 0x7FB5, 0x7FB3, 0x7FF7, 0x7FF8, 0x8075, 0x81D1, 0x81D2, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x81D0, 0x825F, 0x825E, 0x85B4, 0x85C6, 0x85C0, 0x85C3, /* 0xA0 */
- 0x85C2, 0x85B3, 0x85B5, 0x85BD, 0x85C7, 0x85C4, 0x85BF, 0x85CB, /* 0xA0 */
- 0x85CE, 0x85C8, 0x85C5, 0x85B1, 0x85B6, 0x85D2, 0x8624, 0x85B8, /* 0xB0 */
- 0x85B7, 0x85BE, 0x8669, 0x87E7, 0x87E6, 0x87E2, 0x87DB, 0x87EB, /* 0xB0 */
- 0x87EA, 0x87E5, 0x87DF, 0x87F3, 0x87E4, 0x87D4, 0x87DC, 0x87D3, /* 0xC0 */
- 0x87ED, 0x87D8, 0x87E3, 0x87A4, 0x87D7, 0x87D9, 0x8801, 0x87F4, /* 0xC0 */
- 0x87E8, 0x87DD, 0x8953, 0x894B, 0x894F, 0x894C, 0x8946, 0x8950, /* 0xD0 */
- 0x8951, 0x8949, 0x8B2A, 0x8B27, 0x8B23, 0x8B33, 0x8B30, 0x8B35, /* 0xD0 */
- 0x8B47, 0x8B2F, 0x8B3C, 0x8B3E, 0x8B31, 0x8B25, 0x8B37, 0x8B26, /* 0xE0 */
- 0x8B36, 0x8B2E, 0x8B24, 0x8B3B, 0x8B3D, 0x8B3A, 0x8C42, 0x8C75, /* 0xE0 */
- 0x8C99, 0x8C98, 0x8C97, 0x8CFE, 0x8D04, 0x8D02, 0x8D00, 0x8E5C, /* 0xF0 */
- 0x8E62, 0x8E60, 0x8E57, 0x8E56, 0x8E5E, 0x8E65, 0x8E67 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_F1[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8E5B, 0x8E5A, 0x8E61, 0x8E5D, 0x8E69, 0x8E54, 0x8F46, 0x8F47, /* 0x40 */
- 0x8F48, 0x8F4B, 0x9128, 0x913A, 0x913B, 0x913E, 0x91A8, 0x91A5, /* 0x40 */
- 0x91A7, 0x91AF, 0x91AA, 0x93B5, 0x938C, 0x9392, 0x93B7, 0x939B, /* 0x50 */
- 0x939D, 0x9389, 0x93A7, 0x938E, 0x93AA, 0x939E, 0x93A6, 0x9395, /* 0x50 */
- 0x9388, 0x9399, 0x939F, 0x938D, 0x93B1, 0x9391, 0x93B2, 0x93A4, /* 0x60 */
- 0x93A8, 0x93B4, 0x93A3, 0x93A5, 0x95D2, 0x95D3, 0x95D1, 0x96B3, /* 0x60 */
- 0x96D7, 0x96DA, 0x5DC2, 0x96DF, 0x96D8, 0x96DD, 0x9723, 0x9722, /* 0x70 */
- 0x9725, 0x97AC, 0x97AE, 0x97A8, 0x97AB, 0x97A4, 0x97AA, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x97A2, 0x97A5, 0x97D7, 0x97D9, 0x97D6, 0x97D8, 0x97FA, /* 0xA0 */
- 0x9850, 0x9851, 0x9852, 0x98B8, 0x9941, 0x993C, 0x993A, 0x9A0F, /* 0xA0 */
- 0x9A0B, 0x9A09, 0x9A0D, 0x9A04, 0x9A11, 0x9A0A, 0x9A05, 0x9A07, /* 0xB0 */
- 0x9A06, 0x9AC0, 0x9ADC, 0x9B08, 0x9B04, 0x9B05, 0x9B29, 0x9B35, /* 0xB0 */
- 0x9B4A, 0x9B4C, 0x9B4B, 0x9BC7, 0x9BC6, 0x9BC3, 0x9BBF, 0x9BC1, /* 0xC0 */
- 0x9BB5, 0x9BB8, 0x9BD3, 0x9BB6, 0x9BC4, 0x9BB9, 0x9BBD, 0x9D5C, /* 0xC0 */
- 0x9D53, 0x9D4F, 0x9D4A, 0x9D5B, 0x9D4B, 0x9D59, 0x9D56, 0x9D4C, /* 0xD0 */
- 0x9D57, 0x9D52, 0x9D54, 0x9D5F, 0x9D58, 0x9D5A, 0x9E8E, 0x9E8C, /* 0xD0 */
- 0x9EDF, 0x9F01, 0x9F00, 0x9F16, 0x9F25, 0x9F2B, 0x9F2A, 0x9F29, /* 0xE0 */
- 0x9F28, 0x9F4C, 0x9F55, 0x5134, 0x5135, 0x5296, 0x52F7, 0x53B4, /* 0xE0 */
- 0x56AB, 0x56AD, 0x56A6, 0x56A7, 0x56AA, 0x56AC, 0x58DA, 0x58DD, /* 0xF0 */
- 0x58DB, 0x5912, 0x5B3D, 0x5B3E, 0x5B3F, 0x5DC3, 0x5E70 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_F2[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x5FBF, 0x61FB, 0x6507, 0x6510, 0x650D, 0x6509, 0x650C, 0x650E, /* 0x40 */
- 0x6584, 0x65DE, 0x65DD, 0x66DE, 0x6AE7, 0x6AE0, 0x6ACC, 0x6AD1, /* 0x40 */
- 0x6AD9, 0x6ACB, 0x6ADF, 0x6ADC, 0x6AD0, 0x6AEB, 0x6ACF, 0x6ACD, /* 0x50 */
- 0x6ADE, 0x6B60, 0x6BB0, 0x6C0C, 0x7019, 0x7027, 0x7020, 0x7016, /* 0x50 */
- 0x702B, 0x7021, 0x7022, 0x7023, 0x7029, 0x7017, 0x7024, 0x701C, /* 0x60 */
- 0x702A, 0x720C, 0x720A, 0x7207, 0x7202, 0x7205, 0x72A5, 0x72A6, /* 0x60 */
- 0x72A4, 0x72A3, 0x72A1, 0x74CB, 0x74C5, 0x74B7, 0x74C3, 0x7516, /* 0x70 */
- 0x7660, 0x77C9, 0x77CA, 0x77C4, 0x77F1, 0x791D, 0x791B, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x7921, 0x791C, 0x7917, 0x791E, 0x79B0, 0x7A67, 0x7A68, /* 0xA0 */
- 0x7C33, 0x7C3C, 0x7C39, 0x7C2C, 0x7C3B, 0x7CEC, 0x7CEA, 0x7E76, /* 0xA0 */
- 0x7E75, 0x7E78, 0x7E70, 0x7E77, 0x7E6F, 0x7E7A, 0x7E72, 0x7E74, /* 0xB0 */
- 0x7E68, 0x7F4B, 0x7F4A, 0x7F83, 0x7F86, 0x7FB7, 0x7FFD, 0x7FFE, /* 0xB0 */
- 0x8078, 0x81D7, 0x81D5, 0x8264, 0x8261, 0x8263, 0x85EB, 0x85F1, /* 0xC0 */
- 0x85ED, 0x85D9, 0x85E1, 0x85E8, 0x85DA, 0x85D7, 0x85EC, 0x85F2, /* 0xC0 */
- 0x85F8, 0x85D8, 0x85DF, 0x85E3, 0x85DC, 0x85D1, 0x85F0, 0x85E6, /* 0xD0 */
- 0x85EF, 0x85DE, 0x85E2, 0x8800, 0x87FA, 0x8803, 0x87F6, 0x87F7, /* 0xD0 */
- 0x8809, 0x880C, 0x880B, 0x8806, 0x87FC, 0x8808, 0x87FF, 0x880A, /* 0xE0 */
- 0x8802, 0x8962, 0x895A, 0x895B, 0x8957, 0x8961, 0x895C, 0x8958, /* 0xE0 */
- 0x895D, 0x8959, 0x8988, 0x89B7, 0x89B6, 0x89F6, 0x8B50, 0x8B48, /* 0xF0 */
- 0x8B4A, 0x8B40, 0x8B53, 0x8B56, 0x8B54, 0x8B4B, 0x8B55 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_F3[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8B51, 0x8B42, 0x8B52, 0x8B57, 0x8C43, 0x8C77, 0x8C76, 0x8C9A, /* 0x40 */
- 0x8D06, 0x8D07, 0x8D09, 0x8DAC, 0x8DAA, 0x8DAD, 0x8DAB, 0x8E6D, /* 0x40 */
- 0x8E78, 0x8E73, 0x8E6A, 0x8E6F, 0x8E7B, 0x8EC2, 0x8F52, 0x8F51, /* 0x50 */
- 0x8F4F, 0x8F50, 0x8F53, 0x8FB4, 0x9140, 0x913F, 0x91B0, 0x91AD, /* 0x50 */
- 0x93DE, 0x93C7, 0x93CF, 0x93C2, 0x93DA, 0x93D0, 0x93F9, 0x93EC, /* 0x60 */
- 0x93CC, 0x93D9, 0x93A9, 0x93E6, 0x93CA, 0x93D4, 0x93EE, 0x93E3, /* 0x60 */
- 0x93D5, 0x93C4, 0x93CE, 0x93C0, 0x93D2, 0x93E7, 0x957D, 0x95DA, /* 0x70 */
- 0x95DB, 0x96E1, 0x9729, 0x972B, 0x972C, 0x9728, 0x9726, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x97B3, 0x97B7, 0x97B6, 0x97DD, 0x97DE, 0x97DF, 0x985C, /* 0xA0 */
- 0x9859, 0x985D, 0x9857, 0x98BF, 0x98BD, 0x98BB, 0x98BE, 0x9948, /* 0xA0 */
- 0x9947, 0x9943, 0x99A6, 0x99A7, 0x9A1A, 0x9A15, 0x9A25, 0x9A1D, /* 0xB0 */
- 0x9A24, 0x9A1B, 0x9A22, 0x9A20, 0x9A27, 0x9A23, 0x9A1E, 0x9A1C, /* 0xB0 */
- 0x9A14, 0x9AC2, 0x9B0B, 0x9B0A, 0x9B0E, 0x9B0C, 0x9B37, 0x9BEA, /* 0xC0 */
- 0x9BEB, 0x9BE0, 0x9BDE, 0x9BE4, 0x9BE6, 0x9BE2, 0x9BF0, 0x9BD4, /* 0xC0 */
- 0x9BD7, 0x9BEC, 0x9BDC, 0x9BD9, 0x9BE5, 0x9BD5, 0x9BE1, 0x9BDA, /* 0xD0 */
- 0x9D77, 0x9D81, 0x9D8A, 0x9D84, 0x9D88, 0x9D71, 0x9D80, 0x9D78, /* 0xD0 */
- 0x9D86, 0x9D8B, 0x9D8C, 0x9D7D, 0x9D6B, 0x9D74, 0x9D75, 0x9D70, /* 0xE0 */
- 0x9D69, 0x9D85, 0x9D73, 0x9D7B, 0x9D82, 0x9D6F, 0x9D79, 0x9D7F, /* 0xE0 */
- 0x9D87, 0x9D68, 0x9E94, 0x9E91, 0x9EC0, 0x9EFC, 0x9F2D, 0x9F40, /* 0xF0 */
- 0x9F41, 0x9F4D, 0x9F56, 0x9F57, 0x9F58, 0x5337, 0x56B2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_F4[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x56B5, 0x56B3, 0x58E3, 0x5B45, 0x5DC6, 0x5DC7, 0x5EEE, 0x5EEF, /* 0x40 */
- 0x5FC0, 0x5FC1, 0x61F9, 0x6517, 0x6516, 0x6515, 0x6513, 0x65DF, /* 0x40 */
- 0x66E8, 0x66E3, 0x66E4, 0x6AF3, 0x6AF0, 0x6AEA, 0x6AE8, 0x6AF9, /* 0x50 */
- 0x6AF1, 0x6AEE, 0x6AEF, 0x703C, 0x7035, 0x702F, 0x7037, 0x7034, /* 0x50 */
- 0x7031, 0x7042, 0x7038, 0x703F, 0x703A, 0x7039, 0x7040, 0x703B, /* 0x60 */
- 0x7033, 0x7041, 0x7213, 0x7214, 0x72A8, 0x737D, 0x737C, 0x74BA, /* 0x60 */
- 0x76AB, 0x76AA, 0x76BE, 0x76ED, 0x77CC, 0x77CE, 0x77CF, 0x77CD, /* 0x70 */
- 0x77F2, 0x7925, 0x7923, 0x7927, 0x7928, 0x7924, 0x7929, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x79B2, 0x7A6E, 0x7A6C, 0x7A6D, 0x7AF7, 0x7C49, 0x7C48, /* 0xA0 */
- 0x7C4A, 0x7C47, 0x7C45, 0x7CEE, 0x7E7B, 0x7E7E, 0x7E81, 0x7E80, /* 0xA0 */
- 0x7FBA, 0x7FFF, 0x8079, 0x81DB, 0x81D9, 0x820B, 0x8268, 0x8269, /* 0xB0 */
- 0x8622, 0x85FF, 0x8601, 0x85FE, 0x861B, 0x8600, 0x85F6, 0x8604, /* 0xB0 */
- 0x8609, 0x8605, 0x860C, 0x85FD, 0x8819, 0x8810, 0x8811, 0x8817, /* 0xC0 */
- 0x8813, 0x8816, 0x8963, 0x8966, 0x89B9, 0x89F7, 0x8B60, 0x8B6A, /* 0xC0 */
- 0x8B5D, 0x8B68, 0x8B63, 0x8B65, 0x8B67, 0x8B6D, 0x8DAE, 0x8E86, /* 0xD0 */
- 0x8E88, 0x8E84, 0x8F59, 0x8F56, 0x8F57, 0x8F55, 0x8F58, 0x8F5A, /* 0xD0 */
- 0x908D, 0x9143, 0x9141, 0x91B7, 0x91B5, 0x91B2, 0x91B3, 0x940B, /* 0xE0 */
- 0x9413, 0x93FB, 0x9420, 0x940F, 0x9414, 0x93FE, 0x9415, 0x9410, /* 0xE0 */
- 0x9428, 0x9419, 0x940D, 0x93F5, 0x9400, 0x93F7, 0x9407, 0x940E, /* 0xF0 */
- 0x9416, 0x9412, 0x93FA, 0x9409, 0x93F8, 0x940A, 0x93FF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_F5[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x93FC, 0x940C, 0x93F6, 0x9411, 0x9406, 0x95DE, 0x95E0, 0x95DF, /* 0x40 */
- 0x972E, 0x972F, 0x97B9, 0x97BB, 0x97FD, 0x97FE, 0x9860, 0x9862, /* 0x40 */
- 0x9863, 0x985F, 0x98C1, 0x98C2, 0x9950, 0x994E, 0x9959, 0x994C, /* 0x50 */
- 0x994B, 0x9953, 0x9A32, 0x9A34, 0x9A31, 0x9A2C, 0x9A2A, 0x9A36, /* 0x50 */
- 0x9A29, 0x9A2E, 0x9A38, 0x9A2D, 0x9AC7, 0x9ACA, 0x9AC6, 0x9B10, /* 0x60 */
- 0x9B12, 0x9B11, 0x9C0B, 0x9C08, 0x9BF7, 0x9C05, 0x9C12, 0x9BF8, /* 0x60 */
- 0x9C40, 0x9C07, 0x9C0E, 0x9C06, 0x9C17, 0x9C14, 0x9C09, 0x9D9F, /* 0x70 */
- 0x9D99, 0x9DA4, 0x9D9D, 0x9D92, 0x9D98, 0x9D90, 0x9D9B, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x9DA0, 0x9D94, 0x9D9C, 0x9DAA, 0x9D97, 0x9DA1, 0x9D9A, /* 0xA0 */
- 0x9DA2, 0x9DA8, 0x9D9E, 0x9DA3, 0x9DBF, 0x9DA9, 0x9D96, 0x9DA6, /* 0xA0 */
- 0x9DA7, 0x9E99, 0x9E9B, 0x9E9A, 0x9EE5, 0x9EE4, 0x9EE7, 0x9EE6, /* 0xB0 */
- 0x9F30, 0x9F2E, 0x9F5B, 0x9F60, 0x9F5E, 0x9F5D, 0x9F59, 0x9F91, /* 0xB0 */
- 0x513A, 0x5139, 0x5298, 0x5297, 0x56C3, 0x56BD, 0x56BE, 0x5B48, /* 0xC0 */
- 0x5B47, 0x5DCB, 0x5DCF, 0x5EF1, 0x61FD, 0x651B, 0x6B02, 0x6AFC, /* 0xC0 */
- 0x6B03, 0x6AF8, 0x6B00, 0x7043, 0x7044, 0x704A, 0x7048, 0x7049, /* 0xD0 */
- 0x7045, 0x7046, 0x721D, 0x721A, 0x7219, 0x737E, 0x7517, 0x766A, /* 0xD0 */
- 0x77D0, 0x792D, 0x7931, 0x792F, 0x7C54, 0x7C53, 0x7CF2, 0x7E8A, /* 0xE0 */
- 0x7E87, 0x7E88, 0x7E8B, 0x7E86, 0x7E8D, 0x7F4D, 0x7FBB, 0x8030, /* 0xE0 */
- 0x81DD, 0x8618, 0x862A, 0x8626, 0x861F, 0x8623, 0x861C, 0x8619, /* 0xF0 */
- 0x8627, 0x862E, 0x8621, 0x8620, 0x8629, 0x861E, 0x8625 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_F6[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8829, 0x881D, 0x881B, 0x8820, 0x8824, 0x881C, 0x882B, 0x884A, /* 0x40 */
- 0x896D, 0x8969, 0x896E, 0x896B, 0x89FA, 0x8B79, 0x8B78, 0x8B45, /* 0x40 */
- 0x8B7A, 0x8B7B, 0x8D10, 0x8D14, 0x8DAF, 0x8E8E, 0x8E8C, 0x8F5E, /* 0x50 */
- 0x8F5B, 0x8F5D, 0x9146, 0x9144, 0x9145, 0x91B9, 0x943F, 0x943B, /* 0x50 */
- 0x9436, 0x9429, 0x943D, 0x943C, 0x9430, 0x9439, 0x942A, 0x9437, /* 0x60 */
- 0x942C, 0x9440, 0x9431, 0x95E5, 0x95E4, 0x95E3, 0x9735, 0x973A, /* 0x60 */
- 0x97BF, 0x97E1, 0x9864, 0x98C9, 0x98C6, 0x98C0, 0x9958, 0x9956, /* 0x70 */
- 0x9A39, 0x9A3D, 0x9A46, 0x9A44, 0x9A42, 0x9A41, 0x9A3A, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x9A3F, 0x9ACD, 0x9B15, 0x9B17, 0x9B18, 0x9B16, 0x9B3A, /* 0xA0 */
- 0x9B52, 0x9C2B, 0x9C1D, 0x9C1C, 0x9C2C, 0x9C23, 0x9C28, 0x9C29, /* 0xA0 */
- 0x9C24, 0x9C21, 0x9DB7, 0x9DB6, 0x9DBC, 0x9DC1, 0x9DC7, 0x9DCA, /* 0xB0 */
- 0x9DCF, 0x9DBE, 0x9DC5, 0x9DC3, 0x9DBB, 0x9DB5, 0x9DCE, 0x9DB9, /* 0xB0 */
- 0x9DBA, 0x9DAC, 0x9DC8, 0x9DB1, 0x9DAD, 0x9DCC, 0x9DB3, 0x9DCD, /* 0xC0 */
- 0x9DB2, 0x9E7A, 0x9E9C, 0x9EEB, 0x9EEE, 0x9EED, 0x9F1B, 0x9F18, /* 0xC0 */
- 0x9F1A, 0x9F31, 0x9F4E, 0x9F65, 0x9F64, 0x9F92, 0x4EB9, 0x56C6, /* 0xD0 */
- 0x56C5, 0x56CB, 0x5971, 0x5B4B, 0x5B4C, 0x5DD5, 0x5DD1, 0x5EF2, /* 0xD0 */
- 0x6521, 0x6520, 0x6526, 0x6522, 0x6B0B, 0x6B08, 0x6B09, 0x6C0D, /* 0xE0 */
- 0x7055, 0x7056, 0x7057, 0x7052, 0x721E, 0x721F, 0x72A9, 0x737F, /* 0xE0 */
- 0x74D8, 0x74D5, 0x74D9, 0x74D7, 0x766D, 0x76AD, 0x7935, 0x79B4, /* 0xF0 */
- 0x7A70, 0x7A71, 0x7C57, 0x7C5C, 0x7C59, 0x7C5B, 0x7C5A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_F7[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7CF4, 0x7CF1, 0x7E91, 0x7F4F, 0x7F87, 0x81DE, 0x826B, 0x8634, /* 0x40 */
- 0x8635, 0x8633, 0x862C, 0x8632, 0x8636, 0x882C, 0x8828, 0x8826, /* 0x40 */
- 0x882A, 0x8825, 0x8971, 0x89BF, 0x89BE, 0x89FB, 0x8B7E, 0x8B84, /* 0x50 */
- 0x8B82, 0x8B86, 0x8B85, 0x8B7F, 0x8D15, 0x8E95, 0x8E94, 0x8E9A, /* 0x50 */
- 0x8E92, 0x8E90, 0x8E96, 0x8E97, 0x8F60, 0x8F62, 0x9147, 0x944C, /* 0x60 */
- 0x9450, 0x944A, 0x944B, 0x944F, 0x9447, 0x9445, 0x9448, 0x9449, /* 0x60 */
- 0x9446, 0x973F, 0x97E3, 0x986A, 0x9869, 0x98CB, 0x9954, 0x995B, /* 0x70 */
- 0x9A4E, 0x9A53, 0x9A54, 0x9A4C, 0x9A4F, 0x9A48, 0x9A4A, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x9A49, 0x9A52, 0x9A50, 0x9AD0, 0x9B19, 0x9B2B, 0x9B3B, /* 0xA0 */
- 0x9B56, 0x9B55, 0x9C46, 0x9C48, 0x9C3F, 0x9C44, 0x9C39, 0x9C33, /* 0xA0 */
- 0x9C41, 0x9C3C, 0x9C37, 0x9C34, 0x9C32, 0x9C3D, 0x9C36, 0x9DDB, /* 0xB0 */
- 0x9DD2, 0x9DDE, 0x9DDA, 0x9DCB, 0x9DD0, 0x9DDC, 0x9DD1, 0x9DDF, /* 0xB0 */
- 0x9DE9, 0x9DD9, 0x9DD8, 0x9DD6, 0x9DF5, 0x9DD5, 0x9DDD, 0x9EB6, /* 0xC0 */
- 0x9EF0, 0x9F35, 0x9F33, 0x9F32, 0x9F42, 0x9F6B, 0x9F95, 0x9FA2, /* 0xC0 */
- 0x513D, 0x5299, 0x58E8, 0x58E7, 0x5972, 0x5B4D, 0x5DD8, 0x882F, /* 0xD0 */
- 0x5F4F, 0x6201, 0x6203, 0x6204, 0x6529, 0x6525, 0x6596, 0x66EB, /* 0xD0 */
- 0x6B11, 0x6B12, 0x6B0F, 0x6BCA, 0x705B, 0x705A, 0x7222, 0x7382, /* 0xE0 */
- 0x7381, 0x7383, 0x7670, 0x77D4, 0x7C67, 0x7C66, 0x7E95, 0x826C, /* 0xE0 */
- 0x863A, 0x8640, 0x8639, 0x863C, 0x8631, 0x863B, 0x863E, 0x8830, /* 0xF0 */
- 0x8832, 0x882E, 0x8833, 0x8976, 0x8974, 0x8973, 0x89FE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_F8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x8B8C, 0x8B8E, 0x8B8B, 0x8B88, 0x8C45, 0x8D19, 0x8E98, 0x8F64, /* 0x40 */
- 0x8F63, 0x91BC, 0x9462, 0x9455, 0x945D, 0x9457, 0x945E, 0x97C4, /* 0x40 */
- 0x97C5, 0x9800, 0x9A56, 0x9A59, 0x9B1E, 0x9B1F, 0x9B20, 0x9C52, /* 0x50 */
- 0x9C58, 0x9C50, 0x9C4A, 0x9C4D, 0x9C4B, 0x9C55, 0x9C59, 0x9C4C, /* 0x50 */
- 0x9C4E, 0x9DFB, 0x9DF7, 0x9DEF, 0x9DE3, 0x9DEB, 0x9DF8, 0x9DE4, /* 0x60 */
- 0x9DF6, 0x9DE1, 0x9DEE, 0x9DE6, 0x9DF2, 0x9DF0, 0x9DE2, 0x9DEC, /* 0x60 */
- 0x9DF4, 0x9DF3, 0x9DE8, 0x9DED, 0x9EC2, 0x9ED0, 0x9EF2, 0x9EF3, /* 0x70 */
- 0x9F06, 0x9F1C, 0x9F38, 0x9F37, 0x9F36, 0x9F43, 0x9F4F, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x9F71, 0x9F70, 0x9F6E, 0x9F6F, 0x56D3, 0x56CD, 0x5B4E, /* 0xA0 */
- 0x5C6D, 0x652D, 0x66ED, 0x66EE, 0x6B13, 0x705F, 0x7061, 0x705D, /* 0xA0 */
- 0x7060, 0x7223, 0x74DB, 0x74E5, 0x77D5, 0x7938, 0x79B7, 0x79B6, /* 0xB0 */
- 0x7C6A, 0x7E97, 0x7F89, 0x826D, 0x8643, 0x8838, 0x8837, 0x8835, /* 0xB0 */
- 0x884B, 0x8B94, 0x8B95, 0x8E9E, 0x8E9F, 0x8EA0, 0x8E9D, 0x91BE, /* 0xC0 */
- 0x91BD, 0x91C2, 0x946B, 0x9468, 0x9469, 0x96E5, 0x9746, 0x9743, /* 0xC0 */
- 0x9747, 0x97C7, 0x97E5, 0x9A5E, 0x9AD5, 0x9B59, 0x9C63, 0x9C67, /* 0xD0 */
- 0x9C66, 0x9C62, 0x9C5E, 0x9C60, 0x9E02, 0x9DFE, 0x9E07, 0x9E03, /* 0xD0 */
- 0x9E06, 0x9E05, 0x9E00, 0x9E01, 0x9E09, 0x9DFF, 0x9DFD, 0x9E04, /* 0xE0 */
- 0x9EA0, 0x9F1E, 0x9F46, 0x9F74, 0x9F75, 0x9F76, 0x56D4, 0x652E, /* 0xE0 */
- 0x65B8, 0x6B18, 0x6B19, 0x6B17, 0x6B1A, 0x7062, 0x7226, 0x72AA, /* 0xF0 */
- 0x77D8, 0x77D9, 0x7939, 0x7C69, 0x7C6B, 0x7CF6, 0x7E9A /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* F9_D6-F9_FE: is MS950 extension */
-
-static sal_uInt16 const aImplDBCSToUniTab_BIG5_F9[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x7E98, 0x7E9B, 0x7E99, 0x81E0, 0x81E1, 0x8646, 0x8647, 0x8648, /* 0x40 */
- 0x8979, 0x897A, 0x897C, 0x897B, 0x89FF, 0x8B98, 0x8B99, 0x8EA5, /* 0x40 */
- 0x8EA4, 0x8EA3, 0x946E, 0x946D, 0x946F, 0x9471, 0x9473, 0x9749, /* 0x50 */
- 0x9872, 0x995F, 0x9C68, 0x9C6E, 0x9C6D, 0x9E0B, 0x9E0D, 0x9E10, /* 0x50 */
- 0x9E0F, 0x9E12, 0x9E11, 0x9EA1, 0x9EF5, 0x9F09, 0x9F47, 0x9F78, /* 0x60 */
- 0x9F7B, 0x9F7A, 0x9F79, 0x571E, 0x7066, 0x7C6F, 0x883C, 0x8DB2, /* 0x60 */
- 0x8EA6, 0x91C3, 0x9474, 0x9478, 0x9476, 0x9475, 0x9A60, 0x9C74, /* 0x70 */
- 0x9C73, 0x9C71, 0x9C75, 0x9E14, 0x9E13, 0x9EF6, 0x9F0A, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0x9FA4, 0x7068, 0x7065, 0x7CF7, 0x866A, 0x883E, 0x883D, /* 0xA0 */
- 0x883F, 0x8B9E, 0x8C9C, 0x8EA9, 0x8EC9, 0x974B, 0x9873, 0x9874, /* 0xA0 */
- 0x98CC, 0x9961, 0x99AB, 0x9A64, 0x9A66, 0x9A67, 0x9B24, 0x9E15, /* 0xB0 */
- 0x9E17, 0x9F48, 0x6207, 0x6B1E, 0x7227, 0x864C, 0x8EA8, 0x9482, /* 0xB0 */
- 0x9480, 0x9481, 0x9A69, 0x9A68, 0x9B2E, 0x9E19, 0x7229, 0x864B, /* 0xC0 */
- 0x8B9F, 0x9483, 0x9C79, 0x9EB7, 0x7675, 0x9A6B, 0x9C7A, 0x9E1D, /* 0xC0 */
- 0x7069, 0x706A, 0x9EA4, 0x9F7E, 0x9F49, 0x9F98, 0x7881, 0x92B9, /* 0xD0 */
- 0x88CF, 0x58BB, 0x6052, 0x7CA7, 0x5AFA, 0x2554, 0x2566, 0x2557, /* 0xD0 */
- 0x2560, 0x256C, 0x2563, 0x255A, 0x2569, 0x255D, 0x2552, 0x2564, /* 0xE0 */
- 0x2555, 0x255E, 0x256A, 0x2561, 0x2558, 0x2567, 0x255B, 0x2553, /* 0xE0 */
- 0x2565, 0x2556, 0x255F, 0x256B, 0x2562, 0x2559, 0x2568, 0x255C, /* 0xF0 */
- 0x2551, 0x2550, 0x256D, 0x256E, 0x2570, 0x256F, 0x2593 /* 0xF0 */
-};
diff --git a/sal/textenc/tcvttcn2.tab b/sal/textenc/tcvttcn2.tab
deleted file mode 100644
index c44e01919..000000000
--- a/sal/textenc/tcvttcn2.tab
+++ /dev/null
@@ -1,3715 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the UniCode to DBCS tables for the following */
-/* chinese traditional (Taiwan/HongKong) charsets: */
-/* BIG5, MS950, APPLE_CHINTRAD */
-
-/* ======================================================================= */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_00[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, /* 0x00 */
- 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, /* 0x00 */
- 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, /* 0x10 */
- 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, /* 0x10 */
- 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, /* 0x20 */
- 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, /* 0x20 */
- 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* 0x30 */
- 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, /* 0x30 */
- 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* 0x40 */
- 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, /* 0x40 */
- 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, /* 0x50 */
- 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, /* 0x50 */
- 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, /* 0x60 */
- 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, /* 0x60 */
- 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, /* 0x70 */
- 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0xA246, 0xA247, 0, 0xA244, 0, 0xA1B1, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0xA1C2, /* 0xA0 */
- 0xA258, 0xA1D3, 0, 0, 0, 0, 0, 0xA150, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xA1D1, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0xA1D2 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_APPLECHINTRAD_00[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, /* 0x00 */
- 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, /* 0x00 */
- 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, /* 0x10 */
- 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, /* 0x10 */
- 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, /* 0x20 */
- 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, /* 0x20 */
- 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* 0x30 */
- 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, /* 0x30 */
- 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* 0x40 */
- 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, /* 0x40 */
- 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, /* 0x50 */
- 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, /* 0x50 */
- 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, /* 0x60 */
- 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, /* 0x60 */
- 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, /* 0x70 */
- 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0x00A0, 0, 0xA246, 0xA247, 0, 0xA244, 0, 0xA1B1, /* 0xA0 */
- 0, 0x00FD, 0, 0, 0, 0, 0, 0xA1C2, /* 0xA0 */
- 0xA258, 0xA1D3, 0, 0, 0, 0, 0, 0xA145, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0xA1D1, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0xA1D2 /* 0xF0 */
- /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_02[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA3BE, /* 0xC0 */
- 0, 0xA3BC, 0xA3BD, 0xA3BF, 0, 0xA1C5, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xA3BB /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_03[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA344, 0xA345, 0xA346, 0xA347, 0xA348, 0xA349, 0xA34A, /* 0x90 */
- 0xA34B, 0xA34C, 0xA34D, 0xA34E, 0xA34F, 0xA350, 0xA351, 0xA352, /* 0x90 */
- 0xA353, 0xA354, 0, 0xA355, 0xA356, 0xA357, 0xA358, 0xA359, /* 0xA0 */
- 0xA35A, 0xA35B, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0xA35C, 0xA35D, 0xA35E, 0xA35F, 0xA360, 0xA361, 0xA362, /* 0xB0 */
- 0xA363, 0xA364, 0xA365, 0xA366, 0xA367, 0xA368, 0xA369, 0xA36A, /* 0xB0 */
- 0xA36B, 0xA36C, 0, 0xA36D, 0xA36E, 0xA36F, 0xA370, 0xA371, /* 0xC0 */
- 0xA372, 0xA373 /* 0xC0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* only defined in BIG5, but we convert back to this codes in all systems */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_04[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC7B3, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0xC7B1, 0xC7B2, 0xC7B4, 0xC7B5, /* 0x10 */
- 0xC7B6, 0xC7B7, 0xC7B8, 0xC7B9, 0xC7BA, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xC7BB, 0xC7BC, 0xC7BD, 0xC7BE, 0xC7BF, /* 0x20 */
- 0xC7C0, 0xC7C1, 0xC7C2, 0xC7C3, 0xC7C4, 0xC7C5, 0xC7C6, 0xC7C7, /* 0x20 */
- 0xC7C8, 0xC7C9, 0xC7CA, 0xC7CB, 0xC7CC, 0xC7CD, 0xC7CF, 0xC7D0, /* 0x30 */
- 0xC7D1, 0xC7D2, 0xC7D3, 0xC7D4, 0xC7D5, 0xC7D6, 0xC7D7, 0xC7D8, /* 0x30 */
- 0xC7D9, 0xC7DA, 0xC7DB, 0xC7DC, 0xC7DD, 0xC7DE, 0xC7DF, 0xC7E0, /* 0x40 */
- 0xC7E1, 0xC7E2, 0xC7E3, 0xC7E4, 0xC7E5, 0xC7E6, 0xC7E7, 0xC7E8, /* 0x40 */
- 0, 0xC7CE /* 0x50 */
- /* 0x50 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_20[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA156, 0xA158, 0, 0, 0, /* 0x10 */
- 0xA1A5, 0xA1A6, 0, 0, 0xA1A7, 0xA1A8, 0, 0, /* 0x10 */
- 0, 0, 0xA145, 0, 0, 0xA14C, 0xA14B, 0xA145, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xA1AC, 0, 0, 0xA1AB, 0, 0, /* 0x30 */
- 0, 0, 0, 0xA1B0, 0, 0, 0xA1C2, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xA3E1 /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_21[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA24A, 0, 0xA1C1, 0, 0, /* 0x00 */
- 0, 0xA24B, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xA2B9, 0xA2BA, 0xA2BB, 0xA2BC, 0xA2BD, 0xA2BE, 0xA2BF, 0xA2C0, /* 0x60 */
- 0xA2C1, 0xA2C2, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xA1F6, 0xA1F4, 0xA1F7, 0xA1F5, 0, 0, 0xA1F8, 0xA1F9, /* 0x90 */
- 0xA1FB, 0xA1FA /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_APPLECHINTRAD_21[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA24A, 0, 0xA1C1, 0, 0, /* 0x00 */
- 0, 0xA24B, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0x00FE, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xA2B9, 0xA2BA, 0xA2BB, 0xA2BC, 0xA2BD, 0xA2BE, 0xA2BF, 0xA2C0, /* 0x60 */
- 0xA2C1, 0xA2C2, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xA1F6, 0xA1F4, 0xA1F7, 0xA1F5, 0, 0, 0xA1F8, 0xA1F9, /* 0x90 */
- 0xA1FB, 0xA1FA /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_22[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA241, 0, 0, /* 0x10 */
- 0, 0, 0xA1D4, 0, 0, 0, 0xA1DB, 0xA1E8, /* 0x10 */
- 0xA1E7, 0, 0, 0xA1FD, 0, 0xA1FC, 0, 0, /* 0x20 */
- 0, 0xA1E4, 0xA1E5, 0xA1EC, 0, 0, 0xA1ED, 0, /* 0x20 */
- 0, 0, 0, 0, 0xA1EF, 0xA1EE, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0xA1E3, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xA1DC, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xA1DA, 0xA1DD, 0, 0, 0, 0, 0xA1D8, 0xA1D9, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xA1F2, 0, 0, /* 0x90 */
- 0, 0xA1F3, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xA1E6, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xA1E9, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0xA14B /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* only defined in BIG5, but we convert back to this codes in all systems */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_24[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC7E9, 0xC7EA, 0xC7EB, 0xC7EC, 0xC7ED, 0xC7EE, 0xC7EF, 0xC7F0, /* 0x60 */
- 0xC7F1, 0xC7F2, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0xC7F3, 0xC7F4, 0xC7F5, 0xC7F6, /* 0x70 */
- 0xC7F7, 0xC7F8, 0xC7F9, 0xC7FA, 0xC7FB, 0xC7FC /* 0x70 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_25[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA277, 0, 0xA278, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0xA27A, 0, 0, 0, /* 0x00 */
- 0xA27B, 0, 0, 0, 0xA27C, 0, 0, 0, /* 0x10 */
- 0xA27D, 0, 0, 0, 0xA275, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0xA274, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xA273, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xA272, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0xA271, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xA2A4, 0xF9F8, 0xF9E6, 0xF9EF, 0xF9DD, 0xF9E8, 0xF9F1, 0xF9DF, /* 0x50 */
- 0xF9EC, 0xF9F5, 0xF9E3, 0xF9EE, 0xF9F7, 0xF9E5, 0xA2A5, 0xF9F2, /* 0x50 */
- 0xF9E0, 0xA2A7, 0xF9F4, 0xF9E2, 0xF9E7, 0xF9F0, 0xF9DE, 0xF9ED, /* 0x60 */
- 0xF9F6, 0xF9E4, 0xA2A6, 0xF9F3, 0xF9E1, 0xA27E, 0xA2A1, 0xA2A3, /* 0x60 */
- 0xA2A2, 0xA2AC, 0xA2AD, 0xA2AE, 0xA15A, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xA262, 0xA263, 0xA264, 0xA265, 0xA266, 0xA267, 0xA268, /* 0x80 */
- 0xA269, 0xA270, 0xA26F, 0xA26E, 0xA26D, 0xA26C, 0xA26B, 0xA26A, /* 0x80 */
- 0, 0, 0, 0xF9FE, 0xA276, 0xA279, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0xA1BD, 0xA1BC, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xA1B6, 0xA1B5, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xA1BF, 0xA1BE, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xA1BB, 0xA1BA, /* 0xC0 */
- 0, 0, 0, 0xA1B3, 0, 0, 0xA1B7, 0xA1B4, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xA2A8, 0xA2A9, 0xA2AB, 0xA2AA /* 0xE0 */
- /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_26[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA1B9, 0xA1B8, 0, /* 0x00 */
- 0, 0xA1F3, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xA1F0, 0xA1F2, 0xA1F1 /* 0x40 */
- /* 0x40 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* all values with 0xC6.. or 0xC7.. only defined in BIG5, but we convert back */
-/* to this codes in all systems */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_30[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA140, 0xA142, 0xA143, 0xA1B2, 0, 0xC6A4, 0, 0, /* 0x00 */
- 0xA171, 0xA172, 0xA16D, 0xA16E, 0xA175, 0xA176, 0xA179, 0xA17A, /* 0x00 */
- 0xA169, 0xA16A, 0xA245, 0, 0xA165, 0xA166, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xA1A9, 0xA1AA, 0, /* 0x10 */
- 0, 0xA2C3, 0xA2C4, 0xA2C5, 0xA2C6, 0xA2C7, 0xA2C8, 0xA2C9, /* 0x20 */
- 0xA2CA, 0xA2CB, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xC6A5, 0xC6A6, 0xC6A7, 0xC6A8, 0xC6A9, 0xC6AA, 0xC6AB, /* 0x40 */
- 0xC6AC, 0xC6AD, 0xC6AE, 0xC6AF, 0xC6B0, 0xC6B1, 0xC6B2, 0xC6B3, /* 0x40 */
- 0xC6B4, 0xC6B5, 0xC6B6, 0xC6B7, 0xC6B8, 0xC6B9, 0xC6BA, 0xC6BB, /* 0x50 */
- 0xC6BC, 0xC6BD, 0xC6BE, 0xC6BF, 0xC6C0, 0xC6C1, 0xC6C2, 0xC6C3, /* 0x50 */
- 0xC6C4, 0xC6C5, 0xC6C6, 0xC6C7, 0xC6C8, 0xC6C9, 0xC6CA, 0xC6CB, /* 0x60 */
- 0xC6CC, 0xC6CD, 0xC6CE, 0xC6CF, 0xC6D0, 0xC6D1, 0xC6D2, 0xC6D3, /* 0x60 */
- 0xC6D4, 0xC6D5, 0xC6D6, 0xC6D7, 0xC6D8, 0xC6D9, 0xC6DA, 0xC6DB, /* 0x70 */
- 0xC6DC, 0xC6DD, 0xC6DE, 0xC6DF, 0xC6E0, 0xC6E1, 0xC6E2, 0xC6E3, /* 0x70 */
- 0xC6E4, 0xC6E5, 0xC6E6, 0xC6E7, 0xC6E8, 0xC6E9, 0xC6EA, 0xC6EB, /* 0x80 */
- 0xC6EC, 0xC6ED, 0xC6EE, 0xC6EF, 0xC6F0, 0xC6F1, 0xC6F2, 0xC6F3, /* 0x80 */
- 0xC6F4, 0xC6F5, 0xC6F6, 0xC6F7, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xC6A2, 0xC6A3, 0, /* 0x90 */
- 0, 0xC6F8, 0xC6F9, 0xC6FA, 0xC6FB, 0xC6FC, 0xC6FD, 0xC6FE, /* 0xA0 */
- 0xC740, 0xC741, 0xC742, 0xC743, 0xC744, 0xC745, 0xC746, 0xC747, /* 0xA0 */
- 0xC748, 0xC749, 0xC74A, 0xC74B, 0xC74C, 0xC74D, 0xC74E, 0xC74F, /* 0xB0 */
- 0xC750, 0xC751, 0xC752, 0xC753, 0xC754, 0xC755, 0xC756, 0xC757, /* 0xB0 */
- 0xC758, 0xC759, 0xC75A, 0xC75B, 0xC75C, 0xC75D, 0xC75E, 0xC75F, /* 0xC0 */
- 0xC760, 0xC761, 0xC762, 0xC763, 0xC764, 0xC765, 0xC766, 0xC767, /* 0xC0 */
- 0xC768, 0xC769, 0xC76A, 0xC76B, 0xC76C, 0xC76D, 0xC76E, 0xC76F, /* 0xD0 */
- 0xC770, 0xC771, 0xC772, 0xC773, 0xC774, 0xC775, 0xC776, 0xC777, /* 0xD0 */
- 0xC778, 0xC779, 0xC77A, 0xC77B, 0xC77C, 0xC77D, 0xC77E, 0xC7A1, /* 0xE0 */
- 0xC7A2, 0xC7A3, 0xC7A4, 0xC7A5, 0xC7A6, 0xC7A7, 0xC7A8, 0xC7A9, /* 0xE0 */
- 0xC7AA, 0xC7AB, 0xC7AC, 0xC7AD, 0xC7AE, 0xC7AF, 0xC7B0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0, 0xC6A1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_31[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA374, 0xA375, 0xA376, /* 0x00 */
- 0xA377, 0xA378, 0xA379, 0xA37A, 0xA37B, 0xA37C, 0xA37D, 0xA37E, /* 0x00 */
- 0xA3A1, 0xA3A2, 0xA3A3, 0xA3A4, 0xA3A5, 0xA3A6, 0xA3A7, 0xA3A8, /* 0x10 */
- 0xA3A9, 0xA3AA, 0xA3AB, 0xA3AC, 0xA3AD, 0xA3AE, 0xA3AF, 0xA3B0, /* 0x10 */
- 0xA3B1, 0xA3B2, 0xA3B3, 0xA3B4, 0xA3B5, 0xA3B6, 0xA3B7, 0xA3B8, /* 0x20 */
- 0xA3B9, 0xA3BA /* 0x20 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_32[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA1C0 /* 0xA0 */
- /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_33[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x80 */
- 0xA255, 0xA256, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0xA250, 0xA251, 0xA252, 0, /* 0x90 */
- 0, 0xA254, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xA257, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xA253, 0, /* 0xC0 */
- 0, 0xA1EB, 0xA1EA, 0, 0, 0xA24F /* 0xD0 */
- /* 0xD0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_4E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA440, 0xA442, 0, 0xA443, 0, 0, 0, 0xC945, /* 0x00 */
- 0xA456, 0xA454, 0xA457, 0xA455, 0xC946, 0xA4A3, 0xC94F, 0xC94D, /* 0x00 */
- 0xA4A2, 0xA4A1, 0, 0, 0xA542, 0xA541, 0xA540, 0, /* 0x10 */
- 0xA543, 0xA4FE, 0, 0, 0, 0, 0xA5E0, 0xA5E1, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xA8C3, 0, /* 0x20 */
- 0, 0, 0, 0xA458, 0, 0xA4A4, 0xC950, 0, /* 0x20 */
- 0xA4A5, 0xC963, 0xA6EA, 0xCBB1, 0, 0, 0, 0, /* 0x30 */
- 0xA459, 0xA4A6, 0, 0xA544, 0xC964, 0, 0, 0, /* 0x30 */
- 0, 0, 0xC940, 0xA444, 0, 0xA45B, 0, 0xC947, /* 0x40 */
- 0xA45C, 0, 0, 0xA4A7, 0, 0xA545, 0xA547, 0xA546, /* 0x40 */
- 0, 0, 0xA5E2, 0xA5E3, 0, 0, 0xA8C4, 0, /* 0x50 */
- 0xADBC, 0xA441, 0, 0, 0xC941, 0xA445, 0xA45E, 0xA45D, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xA5E4, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xA8C5, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xB0AE, 0xD44B, /* 0x70 */
- 0, 0, 0xB6C3, 0xDCB1, 0xDCB2, 0, 0xA446, 0, /* 0x80 */
- 0xA4A9, 0, 0, 0xA8C6, 0xA447, 0xC948, 0xA45F, 0, /* 0x80 */
- 0, 0xA4AA, 0xA4AC, 0xC951, 0xA4AD, 0xA4AB, 0, 0, /* 0x90 */
- 0, 0xA5E5, 0, 0xA8C7, 0, 0, 0xA8C8, 0xAB45, /* 0x90 */
- 0, 0xA460, 0xA4AE, 0, 0xA5E6, 0xA5E8, 0xA5E7, 0, /* 0xA0 */
- 0xA6EB, 0, 0, 0xA8C9, 0xA8CA, 0xAB46, 0xAB47, 0, /* 0xA0 */
- 0, 0, 0, 0xADBD, 0, 0, 0xDCB3, 0, /* 0xB0 */
- 0, 0xF6D6, 0xA448, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xA4B0, 0xA4AF, 0xC952, 0xA4B1, 0xA4B7, 0, 0xA4B2, 0xA4B3, /* 0xC0 */
- 0xC954, 0xC953, 0xA4B5, 0xA4B6, 0, 0xA4B4, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xA54A, 0xA54B, 0xA54C, 0xA54D, /* 0xD0 */
- 0xA549, 0xA550, 0xC96A, 0, 0xC966, 0xC969, 0xA551, 0xA561, /* 0xD0 */
- 0, 0xC968, 0, 0xA54E, 0xA54F, 0xA548, 0, 0, /* 0xE0 */
- 0xC965, 0xC967, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xA5F5, 0xC9B0, 0xA5F2, 0xA5F6, 0xC9BA, 0xC9AE, 0xA5F3, 0xC9B2, /* 0xF0 */
- 0, 0, 0, 0xA5F4, 0, 0xA5F7, 0, 0xA5E9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_4F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC9B1, 0xA5F8, 0xC9B5, 0, 0xC9B9, 0xC9B6, 0, 0, /* 0x00 */
- 0xC9B3, 0xA5EA, 0xA5EC, 0xA5F9, 0, 0xA5EE, 0xC9AB, 0xA5F1, /* 0x00 */
- 0xA5EF, 0xA5F0, 0xC9BB, 0xC9B8, 0xC9AF, 0xA5ED, 0, 0, /* 0x10 */
- 0xC9AC, 0xA5EB, 0, 0, 0, 0xC9B4, 0, 0, /* 0x10 */
- 0, 0, 0xC9B7, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0xC9AD, 0xCA66, 0, 0xA742, /* 0x20 */
- 0xA6F4, 0, 0, 0xCA67, 0xA6F1, 0, 0xA744, 0, /* 0x30 */
- 0xA6F9, 0, 0xA6F8, 0xCA5B, 0xA6FC, 0xA6F7, 0xCA60, 0xCA68, /* 0x30 */
- 0, 0xCA64, 0, 0xA6FA, 0, 0, 0xA6FD, 0xA6EE, /* 0x40 */
- 0xA747, 0xCA5D, 0, 0, 0xCBBD, 0xA6EC, 0xA743, 0xA6ED, /* 0x40 */
- 0xA6F5, 0xA6F6, 0xCA62, 0xCA5E, 0xA6FB, 0xA6F3, 0xCA5A, 0xA6EF, /* 0x50 */
- 0xCA65, 0xA745, 0xA748, 0xA6F2, 0xA740, 0xA746, 0xA6F0, 0xCA63, /* 0x50 */
- 0xA741, 0xCA69, 0xCA5C, 0xA6FE, 0xCA5F, 0, 0, 0xCA61, /* 0x60 */
- 0, 0xA8D8, 0xCBBF, 0xCBCB, 0xA8D0, 0, 0xCBCC, 0xA8CB, /* 0x60 */
- 0xA8D5, 0, 0, 0xA8CE, 0xCBB9, 0xA8D6, 0xCBB8, 0xCBBC, /* 0x70 */
- 0xCBC3, 0xCBC1, 0xA8DE, 0xA8D9, 0xCBB3, 0xCBB5, 0xA8DB, 0xA8CF, /* 0x70 */
- 0xCBB6, 0xCBC2, 0xCBC9, 0xA8D4, 0xCBBB, 0xCBB4, 0xA8D3, 0xCBB7, /* 0x80 */
- 0xA8D7, 0xCBBA, 0, 0xA8D2, 0, 0xA8CD, 0, 0xA8DC, /* 0x80 */
- 0xCBC4, 0xA8DD, 0xCBC8, 0, 0xCBC6, 0xCBCA, 0xA8DA, 0xCBBE, /* 0x90 */
- 0xCBB2, 0, 0xCBC0, 0xA8D1, 0xCBC5, 0xA8CC, 0xCBC7, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xAB56, 0xAB4A, /* 0xA0 */
- 0, 0, 0xCDE0, 0xCDE8, 0, 0xAB49, 0xAB51, 0xAB5D, /* 0xB0 */
- 0, 0xCDEE, 0xCDEC, 0xCDE7, 0, 0, 0, 0xAB4B, /* 0xB0 */
- 0xCDED, 0xCDE3, 0xAB59, 0xAB50, 0xAB58, 0xCDDE, 0, 0xCDEA, /* 0xC0 */
- 0, 0xCDE1, 0xAB54, 0xCDE2, 0, 0xCDDD, 0xAB5B, 0xAB4E, /* 0xC0 */
- 0xAB57, 0xAB4D, 0, 0xCDDF, 0xCDE4, 0, 0xCDEB, 0xAB55, /* 0xD0 */
- 0xAB52, 0xCDE6, 0xAB5A, 0xCDE9, 0xCDE5, 0xAB4F, 0xAB5C, 0xAB53, /* 0xD0 */
- 0xAB4C, 0xAB48, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xCDEF, 0, 0xADD7, 0xADC1, /* 0xE0 */
- 0, 0xADD1, 0, 0xADD6, 0xD0D0, 0xD0CF, 0xD0D4, 0xD0D5, /* 0xF0 */
- 0xADC4, 0, 0xADCD, 0, 0, 0, 0xADDA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_50[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xADCE, 0, 0, 0, 0, 0xD0C9, 0xADC7, 0xD0CA, /* 0x00 */
- 0, 0xADDC, 0, 0xADD3, 0xADBE, 0xADBF, 0xD0DD, 0xB0BF, /* 0x00 */
- 0, 0xADCC, 0xADCB, 0xD0CB, 0xADCF, 0xD45B, 0xADC6, 0xD0D6, /* 0x10 */
- 0xADD5, 0xADD4, 0xADCA, 0xD0CE, 0xD0D7, 0, 0xD0C8, 0xADC9, /* 0x10 */
- 0xD0D8, 0xADD2, 0xD0CC, 0xADC0, 0, 0xADC3, 0xADC2, 0xD0D9, /* 0x20 */
- 0xADD0, 0xADC5, 0xADD9, 0xADDB, 0xD0D3, 0xADD8, 0, 0xD0DB, /* 0x20 */
- 0xD0CD, 0xD0DC, 0, 0xD0D1, 0, 0xD0DA, 0, 0xD0D2, /* 0x30 */
- 0, 0, 0, 0, 0xADC8, 0, 0, 0, /* 0x30 */
- 0xD463, 0xD457, 0, 0xB0B3, 0, 0xD45C, 0xD462, 0xB0B2, /* 0x40 */
- 0xD455, 0xB0B6, 0xD459, 0xD452, 0xB0B4, 0xD456, 0xB0B9, 0xB0BE, /* 0x40 */
- 0, 0xD467, 0, 0xD451, 0, 0xB0BA, 0, 0xD466, /* 0x50 */
- 0, 0, 0xB0B5, 0xD458, 0xB0B1, 0xD453, 0xD44F, 0xD45D, /* 0x50 */
- 0xD450, 0xD44E, 0xD45A, 0xD460, 0xD461, 0xB0B7, 0, 0, /* 0x60 */
- 0xD85B, 0xD45E, 0xD44D, 0xD45F, 0, 0xB0C1, 0xD464, 0xB0C0, /* 0x60 */
- 0xD44C, 0, 0xD454, 0xD465, 0xB0BC, 0xB0BB, 0xB0B8, 0xB0BD, /* 0x70 */
- 0, 0, 0xB0AF, 0, 0, 0xB0B0, 0, 0, /* 0x70 */
- 0xB3C8, 0, 0xD85E, 0xD857, 0, 0xB3C5, 0, 0xD85F, /* 0x80 */
- 0, 0, 0, 0xD855, 0xD858, 0xB3C4, 0xD859, 0, /* 0x80 */
- 0, 0xB3C7, 0xD85D, 0, 0xD853, 0xD852, 0xB3C9, 0, /* 0x90 */
- 0xB3CA, 0xB3C6, 0xB3CB, 0xD851, 0xD85C, 0xD85A, 0xD854, 0, /* 0x90 */
- 0, 0, 0xB3C3, 0xD856, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xB6CA, 0xB6C4, 0xDCB7, 0xB6CD, /* 0xA0 */
- 0xDCBD, 0xDCC0, 0xB6C6, 0xB6C7, 0xDCBA, 0xB6C5, 0xDCC3, 0xB6CB, /* 0xB0 */
- 0xDCC4, 0, 0xDCBF, 0xB6CC, 0, 0xDCB4, 0xB6C9, 0xDCB5, /* 0xB0 */
- 0, 0xDCBE, 0xDCBC, 0, 0xDCB8, 0xB6C8, 0xDCB6, 0xB6CE, /* 0xC0 */
- 0xDCBB, 0xDCC2, 0xDCB9, 0xDCC1, 0, 0, 0xB9B6, 0xB9B3, /* 0xC0 */
- 0, 0xB9B4, 0, 0xE0F9, 0xE0F1, 0xB9B2, 0xB9AF, 0xE0F2, /* 0xD0 */
- 0, 0, 0xB9B1, 0xE0F5, 0, 0xE0F7, 0, 0, /* 0xD0 */
- 0xE0FE, 0, 0, 0xE0FD, 0xE0F8, 0xB9AE, 0xE0F0, 0xB9AC, /* 0xE0 */
- 0xE0F3, 0xB9B7, 0xE0F6, 0, 0xE0FA, 0xB9B0, 0xB9AD, 0xE0FC, /* 0xE0 */
- 0xE0FB, 0xB9B5, 0, 0xE0F4, 0, 0xBBF8, 0xE4EC, 0, /* 0xF0 */
- 0xE4E9, 0xBBF9, 0, 0xBBF7, 0, 0xE4F0, 0xE4ED, 0xE4E6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_51[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBBF6, 0, 0xBBFA, 0xE4E7, 0xBBF5, 0xBBFD, 0xE4EA, 0xE4EB, /* 0x00 */
- 0xBBFB, 0xBBFC, 0xE4F1, 0xE4EE, 0xE4EF, 0, 0, 0, /* 0x00 */
- 0xBEAA, 0xE8F8, 0xBEA7, 0xE8F5, 0xBEA9, 0xBEAB, 0, 0xE8F6, /* 0x10 */
- 0xBEA8, 0, 0xE8F7, 0, 0xE8F4, 0, 0, 0xC076, /* 0x10 */
- 0xECBD, 0xC077, 0xECBB, 0, 0xECBC, 0xECBA, 0xECB9, 0, /* 0x20 */
- 0, 0xECBE, 0xC075, 0, 0, 0xEFB8, 0xEFB9, 0, /* 0x20 */
- 0xE4E8, 0xEFB7, 0xC078, 0xC35F, 0xF1EB, 0xF1EC, 0, 0xC4D7, /* 0x30 */
- 0xC4D8, 0xF5C1, 0xF5C0, 0xC56C, 0xC56B, 0xF7D0, 0, 0xA449, /* 0x30 */
- 0xA461, 0xA4B9, 0, 0xA4B8, 0xA553, 0xA552, 0xA5FC, 0xA5FB, /* 0x40 */
- 0xA5FD, 0xA5FA, 0, 0xA74A, 0xA749, 0xA74B, 0, 0, /* 0x40 */
- 0, 0, 0xA8E0, 0, 0xA8DF, 0xA8E1, 0, 0xAB5E, /* 0x50 */
- 0, 0xA259, 0xD0DE, 0xA25A, 0xB0C2, 0xA25C, 0xA25B, 0xD860, /* 0x50 */
- 0, 0xA25D, 0xB9B8, 0xA25E, 0, 0xA44A, 0, 0xA4BA, /* 0x60 */
- 0xA5FE, 0xA8E2, 0, 0xA44B, 0xA4BD, 0xA4BB, 0xA4BC, 0, /* 0x60 */
- 0, 0xA640, 0, 0, 0, 0xA74C, 0xA8E4, 0xA8E3, /* 0x70 */
- 0xA8E5, 0, 0, 0, 0xADDD, 0, 0, 0, /* 0x70 */
- 0xBEAC, 0, 0, 0, 0, 0, 0, 0xC94E, /* 0x80 */
- 0, 0xA554, 0xA555, 0, 0, 0xA641, 0, 0xCA6A, /* 0x80 */
- 0, 0xAB60, 0xAB5F, 0xD0E0, 0xD0DF, 0xB0C3, 0, 0xA4BE, /* 0x90 */
- 0xC955, 0, 0, 0, 0, 0, 0xCBCD, 0, /* 0x90 */
- 0xAB61, 0, 0xADE0, 0, 0xADDE, 0xADDF, 0, 0, /* 0xA0 */
- 0, 0, 0xBEAD, 0, 0xA556, 0, 0, 0, /* 0xA0 */
- 0xA642, 0xC9BC, 0, 0, 0, 0, 0xA74D, 0xA74E, /* 0xB0 */
- 0, 0xCA6B, 0, 0, 0xCBCE, 0xA8E6, 0xCBCF, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xD0E2, 0xD0E3, 0xADE3, 0, /* 0xC0 */
- 0xD0E4, 0, 0xD0E1, 0xADE4, 0xADE2, 0xADE1, 0xD0E5, 0, /* 0xC0 */
- 0xD468, 0, 0, 0, 0xD861, 0, 0, 0xDCC5, /* 0xD0 */
- 0xE140, 0, 0, 0, 0xBBFE, 0xBEAE, 0xE8F9, 0, /* 0xD0 */
- 0xA44C, 0xA45A, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xB0C4, 0xB3CD, 0, 0xB9B9, 0, 0xC942, 0xA4BF, 0, /* 0xF0 */
- 0xA559, 0xA557, 0xA558, 0, 0, 0xA8E7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_52[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA44D, 0xA44E, 0, 0xA462, 0, 0, 0xA4C0, 0xA4C1, /* 0x00 */
- 0xA4C2, 0xC9BE, 0xA55A, 0, 0xC96B, 0, 0xA646, 0, /* 0x00 */
- 0xC9BF, 0xA644, 0xA645, 0xC9BD, 0, 0, 0xA647, 0xA643, /* 0x10 */
- 0, 0, 0, 0, 0xCA6C, 0xAAEC, 0xCA6D, 0, /* 0x10 */
- 0, 0xCA6E, 0, 0, 0xA750, 0xA74F, 0, 0, /* 0x20 */
- 0xA753, 0xA751, 0xA752, 0, 0, 0, 0xA8ED, 0, /* 0x20 */
- 0xA8EC, 0xCBD4, 0xCBD1, 0xCBD2, 0, 0xCBD0, 0xA8EE, 0xA8EA, /* 0x30 */
- 0xA8E9, 0, 0xA8EB, 0xA8E8, 0, 0, 0, 0, /* 0x30 */
- 0, 0xA8EF, 0, 0xAB63, 0xCDF0, 0, 0xCBD3, 0xAB68, /* 0x40 */
- 0, 0xCDF1, 0xAB64, 0xAB67, 0xAB66, 0xAB65, 0xAB62, 0, /* 0x40 */
- 0, 0, 0xD0E8, 0, 0xADE7, 0xD0EB, 0xADE5, 0, /* 0x50 */
- 0, 0, 0xD0E7, 0xADE8, 0xADE6, 0xADE9, 0xD0E9, 0xD0EA, /* 0x50 */
- 0, 0xD0E6, 0xD0EC, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0xB3D1, 0xB0C5, 0xD469, 0xD46B, 0xD46A, 0xD46C, 0xB0C6, /* 0x60 */
- 0, 0, 0xB3CE, 0, 0xB3CF, 0xB3D0, 0, 0xB6D0, /* 0x70 */
- 0xDCC7, 0, 0xDCC6, 0xDCC8, 0xDCC9, 0xB6D1, 0, 0xB6CF, /* 0x70 */
- 0xE141, 0xE142, 0xB9BB, 0xB9BA, 0xE35A, 0, 0, 0xBC40, /* 0x80 */
- 0xBC41, 0xBC42, 0xBC44, 0xE4F2, 0xE4F3, 0xBC43, 0, 0, /* 0x80 */
- 0, 0xBEAF, 0, 0xBEB0, 0, 0, 0xF1ED, 0xF5C3, /* 0x90 */
- 0xF5C2, 0xF7D1, 0, 0xA44F, 0, 0, 0, 0xA55C, /* 0x90 */
- 0xA55B, 0, 0, 0xA648, 0, 0, 0xC9C0, 0, /* 0xA0 */
- 0, 0xA755, 0xA756, 0xA754, 0xA757, 0xCA6F, 0xCA70, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xA8F1, 0xCBD5, 0, 0xA8F0, 0, /* 0xB0 */
- 0xCDF2, 0xAB6C, 0xCDF3, 0xAB6B, 0, 0, 0, 0xAB69, /* 0xC0 */
- 0, 0xAB6A, 0, 0, 0, 0xD0ED, 0, 0, /* 0xC0 */
- 0, 0, 0xB0C7, 0xD46E, 0, 0xB0CA, 0xD46D, 0xB1E5, /* 0xD0 */
- 0xB0C9, 0xB0C8, 0, 0xB3D4, 0, 0xB3D3, 0xB3D2, 0xB6D2, /* 0xD0 */
- 0, 0, 0xB6D5, 0xB6D6, 0xB6D4, 0, 0xB6D3, 0, /* 0xE0 */
- 0, 0xE143, 0, 0xE144, 0, 0, 0, 0xE4F5, /* 0xE0 */
- 0xBC45, 0xE4F4, 0, 0xBEB1, 0xECBF, 0xC079, 0, 0xF1EE, /* 0xF0 */
- 0xC455, 0, 0xA463, 0xA4C3, 0xC956, 0, 0xA4C4, 0xA4C5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_53[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA55D, 0xA55E, 0, /* 0x00 */
- 0xA649, 0xCA71, 0xCBD6, 0xCBD7, 0, 0xAB6D, 0xD0EE, 0xB0CC, /* 0x00 */
- 0xB0CB, 0xD863, 0xD862, 0, 0, 0xA450, 0xA4C6, 0xA55F, /* 0x10 */
- 0, 0xB0CD, 0xC943, 0, 0xC96C, 0xA560, 0, 0xC9C2, /* 0x10 */
- 0xA64B, 0xA64A, 0xC9C1, 0xA758, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xADEA, 0, 0, 0xD46F, 0, 0xB6D7, /* 0x20 */
- 0xE145, 0xB9BC, 0, 0, 0xE8FA, 0, 0, 0xF3FD, /* 0x30 */
- 0, 0xA4C7, 0, 0, 0xCBD8, 0xCDF4, 0xB0D0, 0xB0CE, /* 0x30 */
- 0xB0CF, 0xA451, 0, 0xA464, 0xA2CD, 0xA4CA, 0, 0xA4C9, /* 0x40 */
- 0xA4C8, 0xA563, 0xA562, 0, 0xC96D, 0xC9C3, 0, 0, /* 0x40 */
- 0, 0xA8F5, 0xA8F2, 0xA8F4, 0xA8F3, 0, 0, 0xAB6E, /* 0x50 */
- 0, 0, 0xB3D5, 0, 0xA452, 0, 0xA4CB, 0, /* 0x50 */
- 0xA565, 0xA564, 0, 0xCA72, 0, 0, 0xA8F6, 0, /* 0x60 */
- 0, 0, 0, 0, 0xC957, 0, 0xA567, 0xA566, /* 0x60 */
- 0xA64C, 0xA64D, 0xCA73, 0xA759, 0, 0xA75A, 0, 0xA8F7, /* 0x70 */
- 0xA8F8, 0xA8F9, 0, 0xAB6F, 0xCDF5, 0, 0, 0xADEB, /* 0x70 */
- 0, 0, 0xC944, 0, 0xA4CC, 0, 0, 0, /* 0x80 */
- 0, 0, 0xC9C4, 0, 0, 0, 0xCA74, 0xCA75, /* 0x80 */
- 0, 0, 0xCBD9, 0, 0xCBDA, 0, 0xCDF7, 0xCDF6, /* 0x90 */
- 0xCDF9, 0xCDF8, 0xAB70, 0, 0xD470, 0xADED, 0xD0EF, 0xADEC, /* 0x90 */
- 0, 0, 0, 0, 0xD864, 0xB3D6, 0, 0xD865, /* 0xA0 */
- 0, 0, 0, 0, 0xE146, 0xB9BD, 0, 0, /* 0xA0 */
- 0, 0, 0xBC46, 0, 0xF1EF, 0, 0, 0, /* 0xB0 */
- 0, 0xC958, 0, 0xA568, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xB0D1, 0, 0, 0, 0, /* 0xC0 */
- 0xA453, 0xA465, 0xA4CE, 0xA4CD, 0, 0xA4CF, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xA8FB, 0, 0xA8FA, 0xA8FC, /* 0xD0 */
- 0, 0, 0, 0xAB71, 0, 0, 0, 0xADEE, /* 0xD0 */
- 0, 0xE8FB, 0xC24F, 0xA466, 0xA56A, 0xA579, 0xA574, 0, /* 0xE0 */
- 0xA56F, 0xA56E, 0xA575, 0xA573, 0xA56C, 0xA57A, 0xA56D, 0xA569, /* 0xE0 */
- 0xA578, 0xA577, 0xA576, 0xA56B, 0, 0xA572, 0, 0, /* 0xF0 */
- 0xA571, 0, 0, 0xA57B, 0xA570 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_54[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA653, 0, 0xA659, 0xA655, 0, 0xA65B, 0xC9C5, /* 0x00 */
- 0xA658, 0xA64E, 0xA651, 0xA654, 0xA650, 0xA657, 0xA65A, 0xA64F, /* 0x00 */
- 0xA652, 0xA656, 0xA65C, 0, 0, 0, 0, 0, /* 0x10 */
- 0xCA7E, 0xCA7B, 0, 0xA767, 0xCA7C, 0xA75B, 0xA75D, 0xA775, /* 0x10 */
- 0xA770, 0, 0, 0, 0xCAA5, 0xCA7D, 0xA75F, 0xA761, /* 0x20 */
- 0xCAA4, 0xA768, 0xCA78, 0xA774, 0xA776, 0xA75C, 0xA76D, 0, /* 0x20 */
- 0xCA76, 0xA773, 0, 0xA764, 0, 0xA76E, 0xA76F, 0xCA77, /* 0x30 */
- 0xA76C, 0xA76A, 0, 0xA76B, 0xA771, 0xCAA1, 0xA75E, 0, /* 0x30 */
- 0xA772, 0xCAA3, 0xA766, 0xA763, 0, 0xCA7A, 0xA762, 0xCAA6, /* 0x40 */
- 0xA765, 0, 0xA769, 0, 0, 0, 0xA760, 0xCAA2, /* 0x40 */
- 0, 0, 0, 0, 0xCA79, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xCBEB, 0xCBEA, 0xA94F, 0xCBED, 0xCBEF, 0xCBE4, 0xCBE7, 0xCBEE, /* 0x60 */
- 0xA950, 0, 0, 0xCBE1, 0xCBE5, 0, 0, 0xCBE9, /* 0x60 */
- 0xCE49, 0xA94B, 0xCE4D, 0xA8FD, 0xCBE6, 0xA8FE, 0xA94C, 0xA945, /* 0x70 */
- 0xA941, 0, 0xCBE2, 0xA944, 0xA949, 0xA952, 0xCBE3, 0xCBDC, /* 0x70 */
- 0xA943, 0xCBDD, 0xCBDF, 0, 0xA946, 0, 0xA948, 0xCBDB, /* 0x80 */
- 0xCBE0, 0, 0, 0xA951, 0xA94D, 0xCBE8, 0xA953, 0, /* 0x80 */
- 0xA94A, 0xCBDE, 0xA947, 0, 0, 0xA942, 0xA940, 0, /* 0x90 */
- 0xCBEC, 0, 0xA94E, 0, 0, 0, 0, 0, /* 0x90 */
- 0xCE48, 0xCDFB, 0xCE4B, 0, 0, 0xCDFD, 0xAB78, 0xABA8, /* 0xA0 */
- 0xAB74, 0xABA7, 0xAB7D, 0xABA4, 0xAB72, 0xCDFC, 0xCE43, 0xABA3, /* 0xA0 */
- 0xCE4F, 0xABA5, 0, 0xAB79, 0, 0, 0xCE45, 0xCE42, /* 0xB0 */
- 0xAB77, 0, 0xCDFA, 0xABA6, 0xCE4A, 0xAB7C, 0xCE4C, 0xABA9, /* 0xB0 */
- 0xAB73, 0xAB7E, 0xAB7B, 0xCE40, 0xABA1, 0xCE46, 0xCE47, 0xAB7A, /* 0xC0 */
- 0xABA2, 0xAB76, 0, 0, 0, 0, 0xAB75, 0xCDFE, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xCE44, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0xCE4E, 0, /* 0xD0 */
- 0xD144, 0xADFB, 0xD0F1, 0, 0xD0F6, 0xADF4, 0xAE40, 0xD0F4, /* 0xE0 */
- 0xADEF, 0xADF9, 0xADFE, 0xD0FB, 0, 0xADFA, 0xADFD, 0, /* 0xE0 */
- 0, 0xD0FE, 0xADF5, 0xD0F5, 0, 0, 0, 0xD142, /* 0xF0 */
- 0xD143, 0, 0xADF7, 0xD141, 0xADF3, 0xAE43, 0, 0xD0F8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_55[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xADF1, 0, 0xD146, 0xD0F9, 0xD0FD, 0xADF6, 0xAE42, /* 0x00 */
- 0xD0FA, 0xADFC, 0xD140, 0xD147, 0xD4A1, 0, 0xD145, 0xAE44, /* 0x00 */
- 0xADF0, 0xD0FC, 0xD0F3, 0, 0xADF8, 0, 0, 0xD0F2, /* 0x10 */
- 0, 0, 0xD0F7, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0xD0F0, 0xAE41, /* 0x20 */
- 0, 0, 0xD477, 0, 0xB0E4, 0xD4A7, 0xB0E2, 0xB0DF, /* 0x20 */
- 0xD47C, 0xB0DB, 0xD4A2, 0xB0E6, 0xD476, 0xD47B, 0xD47A, 0xADF2, /* 0x30 */
- 0xB0E1, 0xD4A5, 0, 0xD4A8, 0xD473, 0, 0xB3E8, 0, /* 0x30 */
- 0xD4A9, 0xB0E7, 0, 0xB0D9, 0xB0D6, 0xD47E, 0xB0D3, 0, /* 0x40 */
- 0xD4A6, 0, 0xB0DA, 0xD4AA, 0, 0xD474, 0xD4A4, 0xB0DD, /* 0x40 */
- 0xD475, 0xD478, 0xD47D, 0, 0, 0xB0DE, 0xB0DC, 0xB0E8, /* 0x50 */
- 0, 0, 0, 0, 0xB0E3, 0, 0xB0D7, 0xB1D2, /* 0x50 */
- 0, 0xB0D8, 0xD479, 0xB0E5, 0xB0E0, 0xD4A3, 0xB0D5, 0, /* 0x60 */
- 0, 0, 0xB0D4, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xD471, 0xD472, 0xD86A, /* 0x70 */
- 0, 0, 0, 0xB3D7, 0xB3DA, 0xD875, 0xB3EE, 0xD878, /* 0x70 */
- 0xB3D8, 0xD871, 0xB3DE, 0xB3E4, 0xB5BD, 0, 0, 0xB3E2, /* 0x80 */
- 0xD86E, 0xB3EF, 0xB3DB, 0xB3E3, 0xD876, 0xDCD7, 0xD87B, 0xD86F, /* 0x80 */
- 0, 0xD866, 0xD873, 0xD86D, 0xB3E1, 0xD879, 0, 0, /* 0x90 */
- 0xB3DD, 0xB3F1, 0xB3EA, 0, 0xB3DF, 0xB3DC, 0, 0xB3E7, /* 0x90 */
- 0, 0xD87A, 0xD86C, 0xD872, 0xD874, 0xD868, 0xD877, 0xB3D9, /* 0xA0 */
- 0xD867, 0, 0xB3E0, 0xB3F0, 0xB3EC, 0xD869, 0xB3E6, 0, /* 0xA0 */
- 0, 0xB3ED, 0xB3E9, 0xB3E5, 0, 0xD870, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xB3EB, 0, 0, 0, 0xDCD5, /* 0xB0 */
- 0xDCD1, 0, 0xDCE0, 0xDCCA, 0xDCD3, 0xB6E5, 0xB6E6, 0xB6DE, /* 0xC0 */
- 0xDCDC, 0xB6E8, 0xDCCF, 0xDCCE, 0xDCCC, 0xDCDE, 0xB6DC, 0xDCD8, /* 0xC0 */
- 0xDCCD, 0xB6DF, 0xDCD6, 0xB6DA, 0xDCD2, 0xDCD9, 0xDCDB, 0, /* 0xD0 */
- 0, 0xDCDF, 0xB6E3, 0xDCCB, 0xB6DD, 0xDCD0, 0, 0xB6D8, /* 0xD0 */
- 0, 0xB6E4, 0xDCDA, 0xB6E0, 0xB6E1, 0xB6E7, 0xB6DB, 0xA25F, /* 0xE0 */
- 0xB6D9, 0xDCD4, 0, 0, 0, 0, 0, 0xB6E2, /* 0xE0 */
- 0, 0, 0xDCDD, 0, 0, 0, 0xB9CD, 0xB9C8, /* 0xF0 */
- 0, 0xE155, 0xE151, 0, 0xE14B, 0xB9C2, 0xB9BE, 0xE154 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_56[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB9BF, 0xE14E, 0xE150, 0, 0xE153, 0, 0xB9C4, 0, /* 0x00 */
- 0xB9CB, 0xB9C5, 0, 0, 0xE149, 0xB9C6, 0xB9C7, 0xE14C, /* 0x00 */
- 0xB9CC, 0, 0xE14A, 0xE14F, 0xB9C3, 0xE148, 0xB9C9, 0xB9C1, /* 0x10 */
- 0, 0, 0, 0xB9C0, 0xE14D, 0xE152, 0, 0xB9CA, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0xE147, /* 0x20 */
- 0, 0xBC4D, 0xE547, 0, 0xE544, 0, 0xBC47, 0xBC53, /* 0x20 */
- 0xBC54, 0, 0xBC4A, 0xE542, 0xBC4C, 0xE4F9, 0xBC52, 0, /* 0x30 */
- 0xE546, 0xBC49, 0xE548, 0xBC48, 0, 0xE543, 0xE545, 0xBC4B, /* 0x30 */
- 0xE541, 0xE4FA, 0xE4F7, 0, 0, 0xD86B, 0xE4FD, 0, /* 0x40 */
- 0xE4F6, 0xE4FC, 0xE4FB, 0, 0xE4F8, 0, 0xBC4F, 0, /* 0x40 */
- 0, 0, 0, 0xBC4E, 0, 0, 0, 0xBC50, /* 0x50 */
- 0xE4FE, 0xBEB2, 0xE540, 0, 0, 0, 0xE945, 0, /* 0x50 */
- 0xE8FD, 0, 0xBEBE, 0xE942, 0xBEB6, 0xBEBA, 0xE941, 0, /* 0x60 */
- 0xBEB9, 0xBEB5, 0xBEB8, 0xBEB3, 0xBEBD, 0xE943, 0xE8FE, 0xBEBC, /* 0x60 */
- 0xE8FC, 0xBEBB, 0xE944, 0xE940, 0xBC51, 0, 0xBEBF, 0xE946, /* 0x70 */
- 0xBEB7, 0xBEB4, 0, 0, 0, 0, 0xECC6, 0xECC8, /* 0x70 */
- 0xC07B, 0xECC9, 0xECC7, 0xECC5, 0xECC4, 0xC07D, 0xECC3, 0xC07E, /* 0x80 */
- 0, 0, 0, 0, 0xECC1, 0xECC2, 0xC07A, 0xC0A1, /* 0x80 */
- 0xC07C, 0, 0, 0xECC0, 0, 0xC250, 0, 0xEFBC, /* 0x90 */
- 0xEFBA, 0xEFBF, 0xEFBD, 0, 0xEFBB, 0xEFBE, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xC360, 0xF1F2, 0xF1F3, /* 0xA0 */
- 0xC456, 0, 0xF1F4, 0xF1F0, 0xF1F5, 0xF1F1, 0xC251, 0, /* 0xA0 */
- 0, 0, 0xF3FE, 0xF441, 0xC459, 0xF440, 0xC458, 0xC457, /* 0xB0 */
- 0, 0, 0, 0, 0xC45A, 0xF5C5, 0xF5C6, 0, /* 0xB0 */
- 0xC4DA, 0xC4D9, 0xC4DB, 0xF5C4, 0, 0xF6D8, 0xF6D7, 0, /* 0xC0 */
- 0xC56D, 0xC56F, 0xC56E, 0xF6D9, 0xC5C8, 0xF8A6, 0, 0, /* 0xC0 */
- 0, 0xC5F1, 0, 0xF8A5, 0xF8EE, 0, 0, 0xC949, /* 0xD0 */
- 0, 0, 0xA57D, 0xA57C, 0, 0xA65F, 0xA65E, 0xC9C7, /* 0xD0 */
- 0xA65D, 0xC9C6, 0, 0, 0xA779, 0xCAA9, 0, 0xCAA8, /* 0xE0 */
- 0, 0, 0xA777, 0xA77A, 0, 0, 0xCAA7, 0, /* 0xE0 */
- 0xA778, 0, 0, 0, 0, 0, 0, 0xCBF0, /* 0xF0 */
- 0, 0xCBF1, 0xA954, 0, 0, 0, 0, 0xABAA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_57[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD148, 0xD149, 0xAE45, 0xAE46, 0, 0, 0xD4AC, /* 0x00 */
- 0xB0E9, 0xB0EB, 0xD4AB, 0xB0EA, 0xD87C, 0xB3F2, 0, 0, /* 0x00 */
- 0, 0, 0xB6E9, 0xB6EA, 0xDCE1, 0, 0xB9CF, 0, /* 0x10 */
- 0xB9CE, 0, 0xE549, 0xE948, 0xE947, 0, 0xF96B, 0xA467, /* 0x10 */
- 0xC959, 0, 0xC96E, 0xC96F, 0, 0, 0, 0, /* 0x20 */
- 0xA662, 0xA666, 0xC9C9, 0, 0xA664, 0xA663, 0xC9C8, 0xA665, /* 0x20 */
- 0xA661, 0, 0, 0xA660, 0xC9CA, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xA7A6, 0, 0, 0xA7A3, 0, /* 0x30 */
- 0xA77D, 0xCAAA, 0, 0, 0, 0xCAAB, 0, 0xA7A1, /* 0x40 */
- 0, 0xCAAD, 0xA77B, 0xCAAE, 0xCAAC, 0xA77E, 0xA7A2, 0xA7A5, /* 0x40 */
- 0xA7A4, 0xA77C, 0xCAAF, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xA959, 0xCBFE, 0, 0xA95B, 0, 0xA95A, 0, /* 0x60 */
- 0xCC40, 0xA958, 0xA957, 0xCBF5, 0, 0xCBF4, 0, 0xCBF2, /* 0x60 */
- 0xCBF7, 0xCBF6, 0xCBF3, 0xCBFC, 0xCBFD, 0xCBFA, 0xCBF8, 0xA956, /* 0x70 */
- 0, 0, 0, 0xCBFB, 0xA95C, 0xCC41, 0, 0, /* 0x70 */
- 0xCBF9, 0, 0xABAB, 0xA955, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0xABAC, 0xCE54, 0, 0, 0xCE5A, /* 0x80 */
- 0, 0, 0, 0xABB2, 0xCE58, 0xCE5E, 0, 0xCE55, /* 0x90 */
- 0xCE59, 0xCE5B, 0xCE5D, 0xCE57, 0, 0xCE56, 0xCE51, 0xCE52, /* 0x90 */
- 0xABAD, 0, 0xABAF, 0xABAE, 0xCE53, 0xCE5C, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xABB1, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0xCE50, 0xD153, 0, /* 0xB0 */
- 0xD152, 0xD157, 0xD14E, 0, 0xD151, 0xD150, 0, 0xD154, /* 0xB0 */
- 0, 0xD158, 0xAE47, 0xAE4A, 0, 0, 0xD14F, 0xD155, /* 0xC0 */
- 0, 0, 0, 0xAE49, 0xD14A, 0, 0xABB0, 0xD4BA, /* 0xC0 */
- 0xD156, 0, 0xD14D, 0, 0xAE48, 0xD14C, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0xD4B1, 0, 0, 0xB0EC, /* 0xD0 */
- 0xB0F0, 0xD4C1, 0xD4AF, 0xD4BD, 0xB0F1, 0xD4BF, 0, 0xD4C5, /* 0xE0 */
- 0, 0xD4C9, 0, 0, 0xD4C0, 0xD4B4, 0xD4BC, 0, /* 0xE0 */
- 0xD4CA, 0xD4C8, 0xD4BE, 0xD4B9, 0xD4B2, 0xD8A6, 0xD4B0, 0xB0F5, /* 0xF0 */
- 0xD4B7, 0xB0F6, 0xB0F2, 0xD4AD, 0xD4C3, 0xD4B5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_58[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD4B3, 0xD4C6, 0xB0F3, 0, 0xD4CC, 0xB0ED, 0xB0EF, 0xD4BB, /* 0x00 */
- 0xD4B6, 0xAE4B, 0xB0EE, 0xD4B8, 0xD4C7, 0xD4CB, 0xD4C2, 0, /* 0x00 */
- 0xD4C4, 0, 0, 0, 0xD4AE, 0, 0, 0, /* 0x10 */
- 0, 0xD8A1, 0, 0xD8AA, 0xD8A9, 0xB3FA, 0xD8A2, 0, /* 0x10 */
- 0xB3FB, 0xB3F9, 0, 0xD8A4, 0xB3F6, 0xD8A8, 0, 0xD8A3, /* 0x20 */
- 0xD8A5, 0xD87D, 0xB3F4, 0, 0xD8B2, 0xD8B1, 0xD8AE, 0xB3F3, /* 0x20 */
- 0xB3F7, 0xB3F8, 0xD14B, 0xD8AB, 0xB3F5, 0xB0F4, 0xD8AD, 0xD87E, /* 0x30 */
- 0xD8B0, 0xD8AF, 0, 0xD8B3, 0, 0xDCEF, 0, 0xD8AC, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0xD8A7, 0xDCE7, 0xB6F4, 0xB6F7, 0xB6F2, 0xDCE6, 0xDCEA, 0xDCE5, /* 0x40 */
- 0, 0xB6EC, 0xB6F6, 0xDCE2, 0xB6F0, 0xDCE9, 0, 0xB6EE, /* 0x50 */
- 0xB6ED, 0xDCEC, 0xB6EF, 0xDCEE, 0, 0xDCEB, 0xB6EB, 0, /* 0x50 */
- 0, 0, 0xB6F5, 0xDCF0, 0xDCE4, 0xDCED, 0, 0, /* 0x60 */
- 0xDCE3, 0, 0, 0xB6F1, 0, 0xB6F3, 0, 0xDCE8, /* 0x60 */
- 0, 0xDCF1, 0, 0, 0xE15D, 0xB9D0, 0xE163, 0, /* 0x70 */
- 0, 0xB9D5, 0xE15F, 0xE166, 0xE157, 0xB9D7, 0xB9D1, 0xE15C, /* 0x70 */
- 0xBC55, 0xE15B, 0xE164, 0xB9D2, 0, 0xB9D6, 0xE15A, 0xE160, /* 0x80 */
- 0xE165, 0xE156, 0xB9D4, 0xE15E, 0, 0, 0xE162, 0xE168, /* 0x80 */
- 0xE158, 0xE161, 0, 0xB9D3, 0xE167, 0, 0, 0, /* 0x90 */
- 0xE159, 0, 0, 0, 0xBC59, 0xE54B, 0xBC57, 0xBC56, /* 0x90 */
- 0xE54D, 0xE552, 0, 0xE54E, 0, 0xE551, 0xBC5C, 0, /* 0xA0 */
- 0xBEA5, 0xBC5B, 0, 0xE54A, 0xE550, 0, 0xBC5A, 0xE54F, /* 0xA0 */
- 0, 0xE54C, 0, 0xBC58, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xE94D, 0xF9D9, 0xE94F, 0xE94A, 0xBEC1, 0xE94C, /* 0xB0 */
- 0, 0xBEC0, 0xE94E, 0, 0, 0xBEC3, 0xE950, 0xBEC2, /* 0xC0 */
- 0xE949, 0xE94B, 0, 0, 0, 0, 0xC0A5, 0xECCC, /* 0xC0 */
- 0, 0xC0A4, 0xECCD, 0xC0A3, 0xECCB, 0xC0A2, 0xECCA, 0, /* 0xD0 */
- 0xC253, 0xC252, 0xF1F6, 0xF1F8, 0, 0xF1F7, 0xC361, 0xC362, /* 0xD0 */
- 0, 0, 0xC363, 0xF442, 0xC45B, 0, 0, 0xF7D3, /* 0xE0 */
- 0xF7D2, 0xC5F2, 0, 0xA468, 0xA4D0, 0, 0, 0xA7A7, /* 0xE0 */
- 0, 0, 0, 0, 0xCE5F, 0, 0, 0, /* 0xF0 */
- 0, 0xB3FC, 0xB3FD, 0, 0xDCF2, 0xB9D8, 0xE169, 0xE553 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_59[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC95A, 0, 0, 0xCAB0, 0, /* 0x00 */
- 0, 0, 0, 0, 0xCC42, 0xCE60, 0xD159, 0xAE4C, /* 0x00 */
- 0, 0, 0xF1F9, 0, 0xC4DC, 0xA469, 0xA57E, 0xC970, /* 0x10 */
- 0, 0xA667, 0xA668, 0, 0xA95D, 0, 0, 0, /* 0x10 */
- 0xB0F7, 0, 0xB9DA, 0, 0xB9DB, 0xB9D9, 0, 0xA46A, /* 0x20 */
- 0, 0xA4D1, 0xA4D3, 0xA4D2, 0xC95B, 0xA4D4, 0xA5A1, 0xC971, /* 0x20 */
- 0, 0xA5A2, 0, 0, 0, 0, 0, 0xA669, /* 0x30 */
- 0xA66A, 0, 0, 0, 0xC9CB, 0, 0xA7A8, 0, /* 0x30 */
- 0xCAB1, 0, 0, 0, 0xA961, 0xCC43, 0, 0xA95F, /* 0x40 */
- 0xA960, 0xA95E, 0xD15A, 0, 0, 0, 0xABB6, 0xABB5, /* 0x40 */
- 0xABB7, 0xABB4, 0, 0xCE61, 0xA962, 0xABB3, 0, 0xAE4D, /* 0x50 */
- 0xAE4E, 0, 0xAE4F, 0, 0xD4CD, 0, 0, 0, /* 0x50 */
- 0xB3FE, 0xD8B4, 0xB0F8, 0, 0, 0, 0, 0xB6F8, /* 0x60 */
- 0, 0xB9DD, 0xB9DC, 0xE16A, 0, 0xBC5D, 0xBEC4, 0, /* 0x60 */
- 0xEFC0, 0xF6DA, 0xF7D4, 0xA46B, 0xA5A3, 0, 0xA5A4, 0xC9D1, /* 0x70 */
- 0xA66C, 0xA66F, 0, 0xC9CF, 0xC9CD, 0xA66E, 0xC9D0, 0xC9D2, /* 0x70 */
- 0xC9CC, 0xA671, 0xA670, 0xA66D, 0xA66B, 0xC9CE, 0, 0, /* 0x80 */
- 0, 0, 0xA7B3, 0, 0, 0xA7B0, 0xCAB6, 0xCAB9, /* 0x80 */
- 0xCAB8, 0, 0xA7AA, 0xA7B2, 0, 0, 0xA7AF, 0xCAB5, /* 0x90 */
- 0xCAB3, 0xA7AE, 0, 0, 0, 0xA7A9, 0xA7AC, 0, /* 0x90 */
- 0xCAB4, 0xCABB, 0xCAB7, 0xA7AD, 0xA7B1, 0xA7B4, 0xCAB2, 0xCABA, /* 0xA0 */
- 0xA7AB, 0, 0, 0, 0, 0, 0xA967, 0xA96F, /* 0xA0 */
- 0, 0xCC4F, 0xCC48, 0xA970, 0xCC53, 0xCC44, 0xCC4B, 0, /* 0xB0 */
- 0, 0xA966, 0xCC45, 0xA964, 0xCC4C, 0xCC50, 0xA963, 0, /* 0xB0 */
- 0xCC51, 0xCC4A, 0, 0xCC4D, 0, 0xA972, 0xA969, 0xCC54, /* 0xC0 */
- 0xCC52, 0, 0xA96E, 0xA96C, 0xCC49, 0xA96B, 0xCC47, 0xCC46, /* 0xC0 */
- 0xA96A, 0xA968, 0xA971, 0xA96D, 0xA965, 0, 0xCC4E, 0, /* 0xD0 */
- 0xABB9, 0, 0xABC0, 0xCE6F, 0xABB8, 0xCE67, 0xCE63, 0, /* 0xD0 */
- 0xCE73, 0xCE62, 0, 0xABBB, 0xCE6C, 0xABBE, 0xABC1, 0, /* 0xE0 */
- 0xABBC, 0xCE70, 0xABBF, 0, 0xAE56, 0xCE76, 0xCE64, 0, /* 0xE0 */
- 0, 0xCE66, 0xCE6D, 0xCE71, 0xCE75, 0xCE72, 0xCE6B, 0xCE6E, /* 0xF0 */
- 0, 0, 0xCE68, 0xABC3, 0xCE6A, 0xCE69, 0xCE74, 0xABBA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_5A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCE65, 0xABC2, 0, 0xABBD, 0, 0, 0, 0, /* 0x00 */
- 0, 0xAE5C, 0xD162, 0, 0xAE5B, 0, 0, 0xD160, /* 0x00 */
- 0, 0xAE50, 0, 0xAE55, 0, 0xD15F, 0xD15C, 0xD161, /* 0x10 */
- 0xAE51, 0xD15B, 0, 0xAE54, 0xAE52, 0, 0xD163, 0xAE53, /* 0x10 */
- 0xAE57, 0, 0, 0xAE58, 0, 0xAE5A, 0, 0, /* 0x20 */
- 0, 0xAE59, 0, 0, 0, 0xD15D, 0xD15E, 0, /* 0x20 */
- 0, 0, 0, 0xD164, 0, 0xD4D4, 0xB0F9, 0xD8C2, /* 0x30 */
- 0xD4D3, 0xD4E6, 0, 0, 0xB140, 0, 0xD4E4, 0, /* 0x30 */
- 0xB0FE, 0xB0FA, 0xD4ED, 0xD4DD, 0xD4E0, 0, 0xB143, 0xD4EA, /* 0x40 */
- 0xD4E2, 0xB0FB, 0xB144, 0, 0xD4E7, 0xD4E5, 0, 0, /* 0x40 */
- 0xD4D6, 0xD4EB, 0xD4DF, 0xD4DA, 0, 0xD4D0, 0xD4EC, 0xD4DC, /* 0x50 */
- 0xD4CF, 0, 0xB142, 0xD4E1, 0xD4EE, 0xD4DE, 0xD4D2, 0xD4D7, /* 0x50 */
- 0xD4CE, 0, 0xB141, 0, 0xD4DB, 0xD4D8, 0xB0FC, 0xD4D1, /* 0x60 */
- 0, 0xD4E9, 0xB0FD, 0, 0xD4D9, 0xD4D5, 0, 0, /* 0x60 */
- 0xD4E8, 0, 0, 0, 0, 0, 0, 0xB440, /* 0x70 */
- 0xD8BB, 0, 0xD8B8, 0xD8C9, 0xD8BD, 0xD8CA, 0, 0xB442, /* 0x70 */
- 0, 0, 0, 0xD8C6, 0xD8C3, 0, 0, 0, /* 0x80 */
- 0, 0, 0xD8C4, 0xD8C7, 0xD8CB, 0, 0xD4E3, 0xD8CD, /* 0x80 */
- 0xDD47, 0, 0xB443, 0xD8CE, 0xD8B6, 0xD8C0, 0, 0xD8C5, /* 0x90 */
- 0, 0, 0xB441, 0xB444, 0xD8CC, 0xD8CF, 0xD8BA, 0xD8B7, /* 0x90 */
- 0, 0, 0xD8B9, 0, 0, 0xD8BE, 0xD8BC, 0xB445, /* 0xA0 */
- 0, 0xD8C8, 0, 0, 0xD8BF, 0, 0xD8C1, 0xD8B5, /* 0xA0 */
- 0xDCFA, 0xDCF8, 0xB742, 0xB740, 0xDD43, 0xDCF9, 0xDD44, 0xDD40, /* 0xB0 */
- 0xDCF7, 0xDD46, 0xDCF6, 0xDCFD, 0xB6FE, 0xB6FD, 0xB6FC, 0xDCFB, /* 0xB0 */
- 0xDD41, 0xB6F9, 0xB741, 0, 0xDCF4, 0, 0xDCFE, 0xDCF3, /* 0xC0 */
- 0xDCFC, 0xB6FA, 0xDD42, 0xDCF5, 0xB6FB, 0xDD45, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0xE16E, 0xB9E2, 0xB9E1, /* 0xD0 */
- 0xB9E3, 0xE17A, 0xE170, 0xE176, 0xE16B, 0xE179, 0xE178, 0xE17C, /* 0xD0 */
- 0xE175, 0xB9DE, 0xE174, 0xB9E4, 0, 0xE16D, 0xB9DF, 0, /* 0xE0 */
- 0xE17B, 0xB9E0, 0xE16F, 0xE172, 0xE177, 0xE171, 0xE16C, 0, /* 0xE0 */
- 0, 0, 0, 0xE173, 0xE555, 0xBC61, 0xE558, 0xE557, /* 0xF0 */
- 0xE55A, 0xE55C, 0xF9DC, 0xBC5F, 0, 0xE556, 0, 0xE554 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_5B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE55D, 0xE55B, 0xE559, 0, 0xE55F, 0, 0xE55E, /* 0x00 */
- 0xBC63, 0xBC5E, 0, 0xBC60, 0xBC62, 0, 0, 0xE560, /* 0x00 */
- 0xE957, 0, 0, 0xE956, 0xE955, 0, 0xE958, 0xE951, /* 0x10 */
- 0, 0xE952, 0xE95A, 0xE953, 0, 0xBEC5, 0xE95C, 0, /* 0x10 */
- 0xE95B, 0xE954, 0, 0xECD1, 0xC0A8, 0xECCF, 0xECD4, 0xECD3, /* 0x20 */
- 0xE959, 0, 0xC0A7, 0, 0xECD2, 0xECCE, 0xECD6, 0xECD5, /* 0x20 */
- 0xC0A6, 0, 0xECD0, 0, 0xBEC6, 0, 0, 0, /* 0x30 */
- 0xC254, 0, 0, 0, 0xEFC1, 0xF1FA, 0xF1FB, 0xF1FC, /* 0x30 */
- 0xC45C, 0, 0, 0xC45D, 0, 0xF443, 0, 0xF5C8, /* 0x40 */
- 0xF5C7, 0, 0, 0xF6DB, 0xF6DC, 0xF7D5, 0xF8A7, 0, /* 0x40 */
- 0xA46C, 0xA46D, 0, 0xA46E, 0xA4D5, 0xA5A5, 0xC9D3, 0xA672, /* 0x50 */
- 0xA673, 0, 0xA7B7, 0xA7B8, 0xA7B6, 0xA7B5, 0, 0xA973, /* 0x50 */
- 0, 0, 0xCC55, 0xA975, 0xA974, 0xCC56, 0, 0, /* 0x60 */
- 0, 0xABC4, 0, 0xAE5D, 0xD165, 0, 0xD4F0, 0, /* 0x60 */
- 0xB145, 0xB447, 0xD4EF, 0xB446, 0, 0xB9E5, 0, 0xE17D, /* 0x70 */
- 0xBEC7, 0, 0xC0A9, 0xECD7, 0, 0xC45E, 0, 0xC570, /* 0x70 */
- 0, 0xC972, 0, 0xA5A6, 0xC973, 0xA676, 0, 0xA674, /* 0x80 */
- 0xA675, 0xA677, 0, 0xA7BA, 0xA7B9, 0, 0xCABC, 0xA7BB, /* 0x80 */
- 0, 0, 0xCABD, 0xCC57, 0, 0xCC58, 0, 0xA976, /* 0x90 */
- 0xA978, 0xA97A, 0xA977, 0xA97B, 0xA979, 0, 0, 0, /* 0x90 */
- 0, 0, 0xABC8, 0xABC5, 0xABC7, 0xABC9, 0xABC6, 0xD166, /* 0xA0 */
- 0xCE77, 0, 0, 0, 0xD168, 0xD167, 0xAE63, 0, /* 0xA0 */
- 0xAE5F, 0, 0, 0xAE60, 0xAE62, 0xAE64, 0xAE61, 0, /* 0xB0 */
- 0xAE66, 0xAE65, 0, 0, 0, 0, 0, 0xB14A, /* 0xB0 */
- 0xD4F2, 0xD4F1, 0xB149, 0, 0xB148, 0xB147, 0xB14B, 0xB146, /* 0xC0 */
- 0, 0, 0xD8D5, 0xD8D2, 0xB449, 0xD8D1, 0xD8D6, 0, /* 0xC0 */
- 0xB44B, 0xD8D4, 0xB448, 0xB44A, 0xD8D3, 0, 0xDD48, 0, /* 0xD0 */
- 0xDD49, 0xDD4A, 0, 0, 0, 0, 0xB9E6, 0xB9EE, /* 0xD0 */
- 0xE17E, 0xB9E8, 0xB9EC, 0xE1A1, 0xB9ED, 0xB9E9, 0xB9EA, 0xB9E7, /* 0xE0 */
- 0xB9EB, 0xBC66, 0xD8D0, 0xBC67, 0xBC65, 0, 0xBC64, 0xE95D, /* 0xE0 */
- 0xBEC8, 0xECD8, 0xECD9, 0, 0, 0xC364, 0xC45F, 0, /* 0xF0 */
- 0xA46F, 0, 0xA678 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_5C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xABCA, 0, 0xD169, 0xAE67, 0, 0, 0xB14E, /* 0x00 */
- 0xB14D, 0xB14C, 0xB44C, 0xB44D, 0xD8D7, 0xB9EF, 0xBEC9, 0xA470, /* 0x00 */
- 0xC95C, 0xA4D6, 0xC974, 0, 0, 0xC9D4, 0xA679, 0, /* 0x10 */
- 0, 0, 0xA97C, 0, 0, 0, 0, 0xDD4B, /* 0x10 */
- 0, 0, 0xA471, 0, 0xA4D7, 0xC9D5, 0, 0, /* 0x20 */
- 0xCABE, 0, 0xCABF, 0, 0xA7BC, 0, 0, 0, /* 0x20 */
- 0xD8D8, 0xB44E, 0, 0xDD4C, 0, 0, 0, 0xC0AA, /* 0x30 */
- 0xA472, 0xA4A8, 0xA4D8, 0xC975, 0xA5A7, 0, 0xA7C0, 0xA7BF, /* 0x30 */
- 0xA7BD, 0xA7BE, 0, 0, 0xCC59, 0xA97E, 0xA9A1, 0xCC5A, /* 0x40 */
- 0xA97D, 0, 0, 0xABCE, 0xCE78, 0xABCD, 0xABCB, 0xABCC, /* 0x40 */
- 0xAE6A, 0xAE68, 0, 0, 0xD16B, 0xAE69, 0xD16A, 0, /* 0x50 */
- 0xAE5E, 0xD4F3, 0, 0, 0xB150, 0xB151, 0, 0, /* 0x50 */
- 0xB14F, 0, 0xB9F0, 0xE1A2, 0xBC68, 0xBC69, 0, 0xE561, /* 0x60 */
- 0xC0AB, 0xEFC2, 0xEFC3, 0, 0xC4DD, 0xF8A8, 0xC94B, 0xA4D9, /* 0x60 */
- 0, 0xA473, 0, 0xC977, 0xC976, 0, 0, 0, /* 0x70 */
- 0, 0xA67A, 0xC9D7, 0xC9D8, 0xC9D6, 0, 0xC9D9, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xCAC7, 0, /* 0x80 */
- 0xCAC2, 0xCAC4, 0xCAC6, 0xCAC3, 0xA7C4, 0xCAC0, 0, 0xCAC1, /* 0x80 */
- 0xA7C1, 0xA7C2, 0xCAC5, 0xCAC8, 0xA7C3, 0xCAC9, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0xCC68, 0, 0xCC62, /* 0x90 */
- 0xCC5D, 0xA9A3, 0xCC65, 0xCC63, 0xCC5C, 0xCC69, 0xCC6C, 0xCC67, /* 0xA0 */
- 0xCC60, 0xA9A5, 0xCC66, 0xA9A6, 0xCC61, 0xCC64, 0xCC5B, 0xCC5F, /* 0xA0 */
- 0xCC6B, 0xA9A7, 0, 0xA9A8, 0, 0xCC5E, 0xCC6A, 0xA9A2, /* 0xB0 */
- 0xA9A4, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0xCEAB, 0xCEA4, /* 0xC0 */
- 0xCEAA, 0xCEA3, 0xCEA5, 0xCE7D, 0xCE7B, 0, 0xCEAC, 0xCEA9, /* 0xC0 */
- 0xCE79, 0, 0xABD0, 0xCEA7, 0xCEA8, 0, 0xCEA6, 0xCE7C, /* 0xD0 */
- 0xCE7A, 0xABCF, 0xCEA2, 0xCE7E, 0, 0, 0xCEA1, 0xCEAD, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xAE6F, 0, 0xAE6E, 0, 0xD16C, 0xAE6B, 0xD16E, 0, /* 0xE0 */
- 0xAE70, 0xD16F, 0, 0, 0xAE73, 0, 0xAE71, 0xD170, /* 0xF0 */
- 0xCEAE, 0xD172, 0, 0xAE6D, 0, 0xAE6C, 0, 0xD16D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_5D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD171, 0xAE72, 0, 0, 0, 0, 0xB153, 0xB152, /* 0x00 */
- 0, 0, 0, 0xD4F5, 0xD4F9, 0xD4FB, 0xB154, 0xD4FE, /* 0x00 */
- 0, 0xB158, 0xD541, 0, 0xB15A, 0, 0xB156, 0xB15E, /* 0x10 */
- 0, 0xB15B, 0xD4F7, 0xB155, 0, 0xD4F6, 0xD4F4, 0xD543, /* 0x10 */
- 0xD4F8, 0, 0xB157, 0xD542, 0xB15C, 0xD4FD, 0xD4FC, 0xB15D, /* 0x20 */
- 0xD4FA, 0xB159, 0, 0, 0, 0, 0xD544, 0, /* 0x20 */
- 0xD540, 0xD8E7, 0xD8EE, 0xD8E3, 0xB451, 0xD8DF, 0xD8EF, 0xD8D9, /* 0x30 */
- 0xD8EC, 0xD8EA, 0xD8E4, 0, 0xD8ED, 0xD8E6, 0, 0xD8DE, /* 0x30 */
- 0xD8F0, 0xD8DC, 0xD8E9, 0xD8DA, 0, 0xD8F1, 0, 0xB452, /* 0x40 */
- 0, 0xD8EB, 0xDD4F, 0xD8DD, 0xB44F, 0, 0xD8E1, 0, /* 0x40 */
- 0xB450, 0xD8E0, 0xD8E5, 0, 0, 0xD8E2, 0, 0, /* 0x50 */
- 0, 0xD8E8, 0, 0, 0, 0, 0xDD53, 0, /* 0x50 */
- 0, 0, 0xDD56, 0xDD4E, 0, 0xDD50, 0, 0xDD55, /* 0x60 */
- 0xDD54, 0xB743, 0, 0xD8DB, 0xDD52, 0, 0, 0xB744, /* 0x60 */
- 0, 0xDD4D, 0xDD51, 0, 0, 0, 0, 0xE1A9, /* 0x70 */
- 0, 0xE1B0, 0xE1A7, 0, 0xE1AE, 0xE1A5, 0xE1AD, 0xE1B1, /* 0x70 */
- 0xE1A4, 0xE1A8, 0xE1A3, 0, 0xB9F1, 0, 0xE1A6, 0xB9F2, /* 0x80 */
- 0xE1AC, 0xE1AB, 0xE1AA, 0, 0, 0xE1AF, 0, 0, /* 0x80 */
- 0, 0, 0xE565, 0xE567, 0xBC6B, 0xE568, 0, 0xE563, /* 0x90 */
- 0, 0xE562, 0xE56C, 0, 0xE56A, 0xBC6A, 0xE56D, 0xE564, /* 0x90 */
- 0xE569, 0xE56B, 0xE566, 0, 0, 0, 0, 0xE961, /* 0xA0 */
- 0xE966, 0xE960, 0xE965, 0, 0xE95E, 0xE968, 0xE964, 0xE969, /* 0xA0 */
- 0xE963, 0xE95F, 0xE967, 0, 0xE96A, 0xE962, 0, 0xECDA, /* 0xB0 */
- 0xC0AF, 0, 0xC0AD, 0, 0xC0AC, 0xC0AE, 0, 0, /* 0xB0 */
- 0xEFC4, 0, 0xF172, 0xF1FD, 0, 0, 0xF444, 0xF445, /* 0xC0 */
- 0, 0xC460, 0, 0xF5C9, 0, 0xC4DE, 0, 0xF5CA, /* 0xC0 */
- 0, 0xF6DE, 0xC572, 0, 0xC571, 0xF6DD, 0xC5C9, 0, /* 0xD0 */
- 0xF7D6, 0, 0, 0, 0, 0xA474, 0xA67B, 0xC9DA, /* 0xD0 */
- 0xCACA, 0xA8B5, 0xB15F, 0, 0, 0xA475, 0xA5AA, 0xA5A9, /* 0xE0 */
- 0xA5A8, 0, 0, 0xA7C5, 0, 0, 0xAE74, 0, /* 0xE0 */
- 0xDD57, 0xA476, 0xA477, 0xA478, 0xA4DA, 0, 0, 0xABD1, /* 0xF0 */
- 0, 0xCEAF, 0, 0, 0, 0xB453, 0xA479, 0xC95D /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_5E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA5AB, 0xA5AC, 0xC978, 0, 0xA67C, 0, /* 0x00 */
- 0, 0, 0xCACB, 0, 0xA7C6, 0, 0xCACC, 0, /* 0x00 */
- 0, 0xA9AE, 0, 0, 0xCC6E, 0xA9AC, 0xA9AB, 0xCC6D, /* 0x10 */
- 0xA9A9, 0xCC6F, 0xA9AA, 0xA9AD, 0, 0xABD2, 0, 0xABD4, /* 0x10 */
- 0xCEB3, 0xCEB0, 0xCEB1, 0xCEB2, 0xCEB4, 0xABD3, 0, 0, /* 0x20 */
- 0xD174, 0xD173, 0, 0xAE76, 0, 0xAE75, 0, 0, /* 0x20 */
- 0, 0, 0, 0xB162, 0xD546, 0, 0xB161, 0xB163, /* 0x30 */
- 0xB160, 0, 0, 0, 0, 0xB455, 0xD545, 0, /* 0x30 */
- 0xB456, 0xD8F3, 0, 0xB457, 0xD8F2, 0xB454, 0, 0, /* 0x40 */
- 0, 0, 0xDD5A, 0xDD5C, 0xB745, 0xDD5B, 0xDD59, 0xDD58, /* 0x40 */
- 0, 0, 0, 0xE1B4, 0xB9F7, 0xB9F5, 0, 0xB9F6, /* 0x50 */
- 0xE1B2, 0xE1B3, 0, 0xB9F3, 0xE571, 0xE56F, 0, 0xBC6D, /* 0x50 */
- 0xE570, 0xBC6E, 0xBC6C, 0xB9F4, 0, 0, 0xE96D, 0xE96B, /* 0x60 */
- 0xE96C, 0xE56E, 0xECDC, 0xC0B0, 0xECDB, 0xEFC5, 0xEFC6, 0xE96E, /* 0x60 */
- 0xF1FE, 0, 0xA47A, 0xA5AD, 0xA67E, 0xC9DB, 0xA67D, 0, /* 0x70 */
- 0xA9AF, 0xB746, 0, 0xA4DB, 0xA5AE, 0xABD5, 0xB458, 0, /* 0x70 */
- 0xC979, 0, 0xC97A, 0, 0xC9DC, 0, 0, 0xA7C8, /* 0x80 */
- 0xCAD0, 0xCACE, 0xA7C9, 0xCACD, 0xCACF, 0xCAD1, 0, 0xA7C7, /* 0x80 */
- 0, 0, 0, 0, 0, 0xA9B3, 0xA9B4, 0xA9B1, /* 0x90 */
- 0, 0, 0xA9B0, 0xCEB8, 0xA9B2, 0, 0, 0, /* 0x90 */
- 0xABD6, 0, 0xCEB7, 0xCEB9, 0xCEB6, 0xCEBA, 0xABD7, 0xAE79, /* 0xA0 */
- 0xD175, 0, 0xD177, 0xAE77, 0xD178, 0xAE78, 0xD176, 0, /* 0xA0 */
- 0xCEB5, 0xD547, 0xD54A, 0xD54B, 0xD548, 0xB167, 0xB166, 0xB164, /* 0xB0 */
- 0xB165, 0xD549, 0, 0, 0, 0, 0xB168, 0, /* 0xB0 */
- 0, 0xB45A, 0xB45B, 0, 0xB45C, 0xDD5D, 0xDD5F, 0xDD61, /* 0xC0 */
- 0xB748, 0xB747, 0xB459, 0xDD60, 0xDD5E, 0, 0xE1B8, 0, /* 0xC0 */
- 0, 0xE1B6, 0xE1BC, 0xB9F8, 0xE1BD, 0xE1BA, 0xB9F9, 0xE1B7, /* 0xD0 */
- 0xE1B5, 0xE1BB, 0xBC70, 0xE573, 0xE1B9, 0xBC72, 0xE574, 0xBC71, /* 0xD0 */
- 0xBC74, 0xE575, 0xBC6F, 0xBC73, 0, 0xE973, 0xE971, 0xE970, /* 0xE0 */
- 0xE972, 0xE96F, 0, 0, 0xC366, 0, 0xF446, 0xF447, /* 0xE0 */
- 0, 0xF5CB, 0xF6DF, 0xC655, 0, 0, 0xA9B5, 0xA7CA, /* 0xF0 */
- 0, 0, 0xABD8, 0, 0, 0, 0xA47B, 0xA4DC /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_5F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA5AF, 0xC9DD, 0, 0xA7CB, 0xCAD2, 0, 0xCEBB, /* 0x00 */
- 0xABD9, 0, 0xB9FA, 0xA47C, 0, 0, 0, 0xA6A1, /* 0x00 */
- 0, 0, 0xB749, 0xA47D, 0xA4DD, 0xA4DE, 0, 0xA5B1, /* 0x10 */
- 0xA5B0, 0, 0xC9DE, 0xA6A2, 0, 0xCAD3, 0, 0xA7CC, /* 0x10 */
- 0, 0, 0xCC71, 0xCC72, 0xCC73, 0, 0xA9B6, 0xA9B7, /* 0x20 */
- 0xCC70, 0xA9B8, 0, 0, 0, 0xABDA, 0xCEBC, 0, /* 0x20 */
- 0xD17A, 0xAE7A, 0, 0xD179, 0, 0xB169, 0xD54C, 0xB16A, /* 0x30 */
- 0xD54D, 0, 0, 0, 0xB45D, 0, 0, 0, /* 0x30 */
- 0xDD62, 0, 0, 0xE1BF, 0xE1BE, 0, 0xB9FB, 0, /* 0x40 */
- 0xBC75, 0xE576, 0xBECA, 0xE974, 0xC0B1, 0, 0xC573, 0xF7D8, /* 0x40 */
- 0, 0, 0, 0, 0xCC74, 0, 0xCEBD, 0xB16B, /* 0x50 */
- 0xD8F4, 0xB74A, 0, 0, 0, 0xC255, 0, 0, /* 0x50 */
- 0, 0, 0xA7CE, 0, 0xA7CD, 0xABDB, 0, 0xD17B, /* 0x60 */
- 0, 0xB16D, 0xB343, 0xB16E, 0xB16C, 0xB45E, 0, 0xE1C0, /* 0x60 */
- 0xB9FC, 0xBC76, 0, 0xC94C, 0xC9DF, 0, 0xCAD5, 0xA7CF, /* 0x70 */
- 0xCAD4, 0xA7D0, 0, 0, 0xA9BC, 0xCC77, 0xCC76, 0xA9BB, /* 0x70 */
- 0xA9B9, 0xA9BA, 0xCC75, 0, 0, 0xABDD, 0xCEBE, 0xABE0, /* 0x80 */
- 0xABDC, 0xABE2, 0xABDE, 0xABDF, 0xABE1, 0, 0, 0, /* 0x80 */
- 0xAE7D, 0xAE7C, 0xAE7B, 0, 0, 0, 0xD54F, 0xB16F, /* 0x90 */
- 0xB172, 0xB170, 0, 0xD54E, 0xB175, 0, 0xB171, 0xD550, /* 0x90 */
- 0xB174, 0xB173, 0, 0, 0, 0xD8F6, 0xD8F5, 0, /* 0xA0 */
- 0xB461, 0xB45F, 0xB460, 0xD8F7, 0xB74B, 0xDD64, 0xB74C, 0xDD63, /* 0xA0 */
- 0, 0, 0xE577, 0, 0, 0xBC78, 0xE1C1, 0xBC77, /* 0xB0 */
- 0, 0xB9FD, 0, 0xECDE, 0xE975, 0xC0B2, 0xECDD, 0xF240, /* 0xB0 */
- 0xF448, 0xF449, 0, 0xA4DF, 0, 0xA5B2, 0, 0, /* 0xC0 */
- 0, 0xC97B, 0, 0, 0xA7D2, 0xA7D4, 0, 0xC9E2, /* 0xC0 */
- 0xCAD8, 0xCAD7, 0xCAD6, 0, 0xC9E1, 0xC9E0, 0xA6A4, 0xA7D3, /* 0xD0 */
- 0xA7D1, 0xA6A3, 0, 0, 0, 0xA9BD, 0xCC78, 0, /* 0xD0 */
- 0xA9BE, 0xCADD, 0, 0xCADF, 0xCADE, 0xCC79, 0, 0, /* 0xE0 */
- 0xCADA, 0, 0xA7D8, 0xA7D6, 0, 0xCAD9, 0xCADB, 0xCAE1, /* 0xE0 */
- 0, 0xA7D5, 0, 0xCADC, 0xCAE5, 0xA9C0, 0, 0xCAE2, /* 0xF0 */
- 0xA7D7, 0, 0xCAE0, 0xCAE3, 0, 0xA9BF, 0, 0xA9C1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_60[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCAE4, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0xCCAF, 0xCCA2, 0xCC7E, 0xCCAE, 0xCCA9, 0xABE7, 0xA9C2, /* 0x00 */
- 0xCCAA, 0xCCAD, 0xABE3, 0xCCAC, 0xA9C3, 0xA9C8, 0xA9C6, 0xCCA3, /* 0x10 */
- 0, 0xCC7C, 0xCCA5, 0xA9CD, 0xCCB0, 0xABE4, 0xCCA6, 0, /* 0x10 */
- 0xABE5, 0xA9C9, 0xCCA8, 0, 0xCECD, 0xABE6, 0xCC7B, 0xA9CA, /* 0x20 */
- 0xABE8, 0xA9CB, 0xA9C7, 0xA9CC, 0xCCA7, 0xCC7A, 0xCCAB, 0xA9C4, /* 0x20 */
- 0, 0, 0xCC7D, 0xCCA4, 0xCCA1, 0xA9C5, 0, 0xCEBF, /* 0x30 */
- 0, 0xCEC0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0xCECA, 0xD1A1, 0xCECB, 0xABEE, 0xCECE, 0xCEC4, 0xABED, 0xCEC6, /* 0x40 */
- 0, 0xCEC7, 0, 0, 0xCEC9, 0xABE9, 0, 0, /* 0x40 */
- 0xAEA3, 0, 0xF9DA, 0xCEC5, 0xCEC1, 0xAEA4, 0, 0, /* 0x50 */
- 0xCECF, 0xAE7E, 0xD17D, 0xCEC8, 0, 0xD17C, 0xCEC3, 0xCECC, /* 0x50 */
- 0, 0, 0xABEC, 0xAEA1, 0xABF2, 0xAEA2, 0xCED0, 0xD17E, /* 0x60 */
- 0xABEB, 0xAEA6, 0xABF1, 0xABF0, 0xABEF, 0xAEA5, 0xCED1, 0xAEA7, /* 0x60 */
- 0xABEA, 0, 0xCEC2, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0xB176, /* 0x70 */
- 0xD1A4, 0xD1A6, 0, 0xD1A8, 0xAEA8, 0xAEAE, 0xD553, 0xD1AC, /* 0x80 */
- 0xD1A3, 0xB178, 0xD551, 0, 0xAEAD, 0xAEAB, 0xD1AE, 0, /* 0x80 */
- 0xD552, 0, 0xD1A5, 0, 0xAEAC, 0xD1A9, 0xAEAF, 0xD1AB, /* 0x90 */
- 0, 0, 0xAEAA, 0xD1AA, 0xD1AD, 0xD1A7, 0, 0xAEA9, /* 0x90 */
- 0xB179, 0, 0xD1A2, 0xB177, 0, 0, 0, 0, /* 0xA0 */
- 0xB17A, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xD555, 0xD55E, 0xB464, 0, 0xB17C, 0xB1A3, 0xB465, 0xD560, /* 0xB0 */
- 0xB1AA, 0xD8F9, 0xD556, 0xB1A2, 0xB1A5, 0xB17E, 0xD554, 0xD562, /* 0xB0 */
- 0xD565, 0xD949, 0, 0xD563, 0xD8FD, 0xB1A1, 0xB1A8, 0xB1AC, /* 0xC0 */
- 0xD55D, 0xD8F8, 0xD561, 0xB17B, 0xD8FA, 0xD564, 0xD8FC, 0xD559, /* 0xC0 */
- 0, 0xB462, 0, 0xD557, 0xD558, 0xB1A7, 0, 0, /* 0xD0 */
- 0xB1A6, 0xD55B, 0xB1AB, 0xD55F, 0xB1A4, 0xD55C, 0, 0xB1A9, /* 0xD0 */
- 0xB466, 0xB463, 0xD8FB, 0, 0xD55A, 0, 0xB17D, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0xB46B, 0xB46F, 0xD940, 0xB751, 0xB46D, 0xD944, 0xB471, 0xDD65, /* 0xF0 */
- 0xD946, 0xB753, 0xB469, 0xB46C, 0xD947, 0, 0xD948, 0xD94E /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_61[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB473, 0xB754, 0, 0xD94A, 0xD94F, 0xD943, 0xB75E, 0, /* 0x00 */
- 0xB755, 0xB472, 0xD941, 0xD950, 0, 0xB75D, 0xB470, 0xB74E, /* 0x00 */
- 0xD94D, 0, 0xB474, 0xD945, 0xD8FE, 0xB46A, 0xD942, 0, /* 0x10 */
- 0xD94B, 0, 0xB74D, 0xB752, 0xB467, 0xD94C, 0, 0xB750, /* 0x10 */
- 0, 0, 0, 0xB468, 0, 0, 0, 0xB75C, /* 0x20 */
- 0xE1C3, 0xDD70, 0, 0xDD68, 0xE1C2, 0, 0xDD6C, 0xDD6E, /* 0x20 */
- 0, 0, 0xDD6B, 0, 0xB75B, 0, 0xDD6A, 0xB75F, /* 0x30 */
- 0, 0, 0, 0xE1D2, 0, 0, 0xB75A, 0xBA40, /* 0x30 */
- 0xDD71, 0xE1C4, 0, 0, 0xB758, 0xDD69, 0xDD6D, 0xB9FE, /* 0x40 */
- 0xB74F, 0xDD66, 0xDD67, 0xBA41, 0xB757, 0xB759, 0xB756, 0xDD6F, /* 0x40 */
- 0, 0, 0xE1C8, 0xE1C9, 0xE1CE, 0xBC7D, 0xE1D5, 0, /* 0x50 */
- 0xBA47, 0, 0xBA46, 0xE1D0, 0, 0xBC7C, 0xE1C5, 0xBA45, /* 0x50 */
- 0, 0xE1D4, 0xBA43, 0xBA44, 0, 0xE1D1, 0xE5AA, 0xBC7A, /* 0x60 */
- 0xB46E, 0, 0xE1D3, 0xBCA3, 0xE1CB, 0, 0xBC7B, 0, /* 0x60 */
- 0xBCA2, 0xE1C6, 0xE1CA, 0xE1C7, 0xE1CD, 0xBA48, 0xBC79, 0xBA42, /* 0x70 */
- 0, 0xE57A, 0xE1CF, 0, 0xBCA1, 0, 0xBCA4, 0, /* 0x70 */
- 0xE1CC, 0, 0xBC7E, 0xE579, 0, 0, 0, 0, /* 0x80 */
- 0, 0xE57E, 0xBECE, 0xE578, 0xE9A3, 0xE5A9, 0xBCA8, 0, /* 0x80 */
- 0xBCA6, 0xBECC, 0xE5A6, 0xE5A2, 0xBCAC, 0, 0xE978, 0, /* 0x90 */
- 0, 0, 0xBCAA, 0xE5A1, 0, 0xE976, 0, 0xE5A5, /* 0x90 */
- 0, 0xE5A8, 0xE57D, 0, 0xBCAB, 0, 0, 0xBCA5, /* 0xA0 */
- 0xE977, 0xBECD, 0xE5A7, 0xBCA7, 0xBCA9, 0xE5A4, 0xBCAD, 0xE5A3, /* 0xA0 */
- 0xE57C, 0xE57B, 0xBECB, 0xE5AB, 0xE97A, 0xECE0, 0xBED0, 0, /* 0xB0 */
- 0xE9A2, 0, 0xE97E, 0, 0xECE1, 0, 0xBED1, 0xE9A1, /* 0xB0 */
- 0, 0xE97C, 0xC0B4, 0xECDF, 0, 0xE979, 0xE97B, 0xC0B5, /* 0xC0 */
- 0xBED3, 0xC0B3, 0xBED2, 0xC0B7, 0xE97D, 0xBECF, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0xEFCF, 0, /* 0xD0 */
- 0xEFC7, 0, 0, 0, 0, 0, 0xECE7, 0xEFC8, /* 0xD0 */
- 0xECE3, 0, 0, 0xC256, 0xECE5, 0xECE4, 0xC0B6, 0xECE2, /* 0xE0 */
- 0xECE6, 0xEFD0, 0xEFCC, 0xEFCE, 0, 0xEFC9, 0xEFCA, 0, /* 0xE0 */
- 0xEFCD, 0xEFCB, 0xC367, 0, 0, 0xC36A, 0xC369, 0xC368, /* 0xF0 */
- 0xC461, 0xF44A, 0xC462, 0xF241, 0xC4DF, 0xF5CC, 0xC4E0, 0xC574 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_62[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC5CA, 0xF7D9, 0, 0xF7DA, 0xF7DB, 0, 0, 0xF9BA, /* 0x00 */
- 0xA4E0, 0xC97C, 0xA5B3, 0, 0xA6A6, 0xA6A7, 0xA6A5, 0, /* 0x00 */
- 0xA6A8, 0xA7DA, 0xA7D9, 0, 0xCCB1, 0xA9CF, 0xA9CE, 0, /* 0x10 */
- 0, 0xD1AF, 0xB1AD, 0xB1AE, 0, 0, 0, 0xB475, /* 0x10 */
- 0xDD72, 0xB760, 0xB761, 0xDD74, 0xDD76, 0xDD75, 0, 0xE1D7, /* 0x20 */
- 0, 0xE1D6, 0xBA49, 0xE1D8, 0, 0xE5AC, 0xBCAE, 0, /* 0x20 */
- 0xBED4, 0, 0xC0B8, 0xC257, 0xC0B9, 0, 0xA4E1, 0, /* 0x30 */
- 0, 0, 0xCAE6, 0, 0, 0xCCB2, 0xA9D1, 0xA9D0, /* 0x30 */
- 0xA9D2, 0xABF3, 0xCED2, 0xCED3, 0, 0, 0xD1B0, 0xAEB0, /* 0x40 */
- 0xB1AF, 0xB476, 0xD951, 0xA4E2, 0, 0xA47E, 0xA4E3, 0, /* 0x40 */
- 0xC97D, 0xA5B7, 0xA5B6, 0xA5B4, 0xA5B5, 0, 0, 0, /* 0x50 */
- 0xA6AB, 0xC9E9, 0xC9EB, 0xA6AA, 0xC9E3, 0, 0xC9E4, 0, /* 0x50 */
- 0xC9EA, 0xC9E6, 0xC9E8, 0xA6A9, 0xC9E5, 0xC9EC, 0xC9E7, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xA7E1, 0xA7EA, 0xA7E8, /* 0x60 */
- 0xCAF0, 0xCAED, 0xCAF5, 0xA7E6, 0xCAF6, 0, 0xA7DF, 0xCAF3, /* 0x70 */
- 0, 0xA7E5, 0xCAEF, 0xCAEE, 0xA7E3, 0xCAF4, 0xA7E4, 0xA9D3, /* 0x70 */
- 0xA7DE, 0xCAF1, 0, 0xCAE7, 0xA7DB, 0, 0xA7EE, 0xCAEC, /* 0x80 */
- 0xCAF2, 0xA7E0, 0xA7E2, 0, 0xCAE8, 0, 0xCAE9, 0xCAEA, /* 0x80 */
- 0, 0xA7ED, 0xA7E7, 0xA7EC, 0xCAEB, 0xA7EB, 0xA7DD, 0xA7DC, /* 0x90 */
- 0xA7E9, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xA9E1, 0xCCBE, 0xCCB7, 0xA9DC, 0xA9EF, 0xCCB3, 0xCCBA, 0xCCBC, /* 0xA0 */
- 0xCCBF, 0xA9EA, 0, 0xCCBB, 0xCCB4, 0xA9E8, 0xCCB8, 0, /* 0xB0 */
- 0xCCC0, 0xA9D9, 0, 0xCCBD, 0xA9E3, 0xA9E2, 0xCCB6, 0xA9D7, /* 0xB0 */
- 0, 0, 0xA9D8, 0, 0xA9D6, 0, 0xA9EE, 0xA9E6, /* 0xC0 */
- 0xA9E0, 0xA9D4, 0xCCB9, 0xA9DF, 0xA9D5, 0xA9E7, 0xA9F0, 0xCED4, /* 0xC0 */
- 0xA9E4, 0xCCB5, 0xA9DA, 0xA9DD, 0xA9DE, 0, 0xA9EC, 0xA9ED, /* 0xD0 */
- 0xA9EB, 0xA9E5, 0xA9E9, 0xA9DB, 0xABF4, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xCEDA, 0xAC41, 0xABF8, 0xABFA, 0xAC40, /* 0xE0 */
- 0xCEE6, 0xABFD, 0xD1B1, 0xAEB1, 0xAC43, 0xCED7, 0xCEDF, 0xABFE, /* 0xF0 */
- 0xCEDE, 0xCEDB, 0xCEE3, 0xCEE5, 0xABF7, 0xABFB, 0xAC42, 0xAEB3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_63[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCEE0, 0xABF9, 0xAC45, 0xCED9, 0, 0, 0, 0xABFC, /* 0x00 */
- 0xAEB2, 0xABF6, 0, 0xCED6, 0xCEDD, 0xCED5, 0xCED8, 0xCEDC, /* 0x00 */
- 0xD1B2, 0xAC44, 0, 0xCEE1, 0xCEE2, 0xCEE4, 0xABF5, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xAEC1, 0xD1BE, 0xAEBF, 0xAEC0, 0xD1B4, 0xD1C4, 0, 0xAEB6, /* 0x20 */
- 0, 0, 0xD566, 0xD1C6, 0xD1C0, 0, 0xD1B7, 0, /* 0x30 */
- 0xD1C9, 0xD1BA, 0xAEBC, 0xD57D, 0xD1BD, 0xAEBE, 0xAEB5, 0, /* 0x30 */
- 0xD1CB, 0xD1BF, 0xAEB8, 0xD1B8, 0xD1B5, 0xD1B6, 0xAEB9, 0xD1C5, /* 0x40 */
- 0xD1CC, 0xAEBB, 0xD1BC, 0xD1BB, 0xAEC3, 0xAEC2, 0xAEB4, 0xAEBA, /* 0x40 */
- 0xAEBD, 0xD1C8, 0, 0, 0xD1C2, 0xAEB7, 0xD1B3, 0xD1CA, /* 0x50 */
- 0xD1C1, 0xD1C3, 0xD1C7, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0xD567, 0, 0xB1B7, /* 0x60 */
- 0xB1CB, 0xB1CA, 0, 0xB1BF, 0, 0xD579, 0xD575, 0xD572, /* 0x60 */
- 0xD5A6, 0xB1BA, 0xB1B2, 0, 0, 0xD577, 0xB4A8, 0xB1B6, /* 0x70 */
- 0xD5A1, 0, 0xB1CC, 0xB1C9, 0xD57B, 0xD56A, 0, 0, /* 0x70 */
- 0xB1C8, 0xD5A3, 0xD569, 0xB1BD, 0xB1C1, 0xD5A2, 0, 0xD573, /* 0x80 */
- 0xB1C2, 0xB1BC, 0xD568, 0, 0xB478, 0xD5A5, 0xD571, 0xB1C7, /* 0x80 */
- 0xD574, 0xD5A4, 0xB1C6, 0, 0xD952, 0, 0xB1B3, 0xD56F, /* 0x90 */
- 0xB1B8, 0xB1C3, 0, 0xB1BE, 0xD578, 0xD56E, 0xD56C, 0xD57E, /* 0x90 */
- 0xB1B0, 0xB1C4, 0xB1B4, 0xB477, 0xD57C, 0xB1B5, 0, 0xB1B1, /* 0xA0 */
- 0xB1C0, 0xB1BB, 0xB1B9, 0xD570, 0xB1C5, 0xD56D, 0xD57A, 0xD576, /* 0xA0 */
- 0xD954, 0xD953, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xD56B, 0xD964, 0, /* 0xB0 */
- 0xB47A, 0, 0xD96A, 0xD959, 0xD967, 0xDD77, 0xB47D, 0xD96B, /* 0xC0 */
- 0xD96E, 0xB47C, 0xD95C, 0xD96D, 0xD96C, 0xB47E, 0xD955, 0xB479, /* 0xC0 */
- 0xB4A3, 0, 0xB4A1, 0xD969, 0, 0xD95F, 0xB4A5, 0xD970, /* 0xD0 */
- 0xD968, 0xD971, 0xB4AD, 0xB4AB, 0xD966, 0xD965, 0, 0xD963, /* 0xD0 */
- 0xD95D, 0xB4A4, 0, 0xB4A2, 0xD1B9, 0xD956, 0, 0xDDB7, /* 0xE0 */
- 0xD957, 0xB47B, 0xB4AA, 0xDD79, 0, 0xB4A6, 0xB4A7, 0xD958, /* 0xE0 */
- 0xD96F, 0xDD78, 0xD960, 0xD95B, 0xB4A9, 0xD961, 0xD95E, 0, /* 0xF0 */
- 0, 0xB4AE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_64[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB770, 0, /* 0x00 */
- 0, 0xDD7C, 0xDDB1, 0xDDB6, 0xDDAA, 0xB76C, 0xDDBB, 0xB769, /* 0x00 */
- 0xDD7A, 0, 0xDD7B, 0xB762, 0xB76B, 0xDDA4, 0xB76E, 0xB76F, /* 0x10 */
- 0xDDA5, 0, 0xDDB2, 0xDDB8, 0xB76A, 0, 0xB764, 0xDDA3, /* 0x10 */
- 0xDD7D, 0xDDBA, 0xDDA8, 0xDDA9, 0xDD7E, 0xDDB4, 0xDDAB, 0xDDB5, /* 0x20 */
- 0xDDAD, 0, 0xB765, 0xE1D9, 0xB768, 0xB766, 0xDDB9, 0xDDB0, /* 0x20 */
- 0xDDAC, 0, 0, 0xDDA1, 0xBA53, 0xDDAF, 0xB76D, 0xDDA7, /* 0x30 */
- 0, 0xDDA6, 0, 0, 0, 0xB767, 0xB763, 0xE1EE, /* 0x30 */
- 0xDDB3, 0xDDAE, 0, 0xDDA2, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0xE1E9, 0, 0xE1DA, 0xE1E5, 0, /* 0x40 */
- 0xE1EC, 0xBA51, 0xB4AC, 0xE1EA, 0xBA4C, 0, 0, 0, /* 0x50 */
- 0xBA4B, 0xE1F1, 0, 0xE1DB, 0xE1E8, 0xE1DC, 0xE1E7, 0xBA4F, /* 0x50 */
- 0xE1EB, 0xD962, 0, 0, 0, 0xE1F2, 0xE1E3, 0xBA52, /* 0x60 */
- 0xE5BA, 0xBCAF, 0, 0xE1F0, 0xE1EF, 0xBA54, 0xE5AD, 0xBCB0, /* 0x60 */
- 0xE5AE, 0, 0xE1DF, 0xE1E0, 0xE1DD, 0xE1E2, 0xE1DE, 0xE1F3, /* 0x70 */
- 0xBA4E, 0xBCB1, 0xBA50, 0xBA55, 0, 0xE1E1, 0, 0xE1ED, /* 0x70 */
- 0, 0, 0xE1E6, 0, 0, 0xE5B1, 0, 0xBA4A, /* 0x80 */
- 0xBCB4, 0xE9AA, 0xE5B6, 0xE5B5, 0xE5B7, 0, 0, 0xE5B4, /* 0x80 */
- 0xBCB5, 0, 0xBCBB, 0xBCB8, 0, 0xBCB9, 0xE5AF, 0xE5B2, /* 0x90 */
- 0xE5BC, 0xBCC1, 0xBCBF, 0, 0xE5B3, 0xD95A, 0xBCB2, 0xE5B9, /* 0x90 */
- 0xE5B0, 0, 0xBCC2, 0xE5B8, 0xBA4D, 0xBCB7, 0xE1E4, 0, /* 0xA0 */
- 0, 0xBCBA, 0, 0xBCBE, 0xBCC0, 0xBCBD, 0xBCBC, 0, /* 0xA0 */
- 0xBCB6, 0xE5BB, 0xBCB3, 0xBCC3, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0xBED8, 0xBED9, 0xE9A9, 0xBEE2, 0xBEDF, /* 0xB0 */
- 0, 0xBED6, 0xBEDD, 0xE9AB, 0xBEDB, 0xBED5, 0, 0xBEDC, /* 0xC0 */
- 0, 0xE9A8, 0xC0BB, 0xBED7, 0, 0xBEDE, 0xC0BA, 0xE9A7, /* 0xC0 */
- 0xE9A6, 0, 0xBEE0, 0, 0xBEE1, 0, 0xE9A5, 0xE9A4, /* 0xD0 */
- 0xC0BC, 0xE9AE, 0xBEDA, 0xE9AC, 0, 0, 0, 0, /* 0xD0 */
- 0xC0BD, 0, 0xC0C2, 0xECEA, 0xECEC, 0, 0xC0BF, 0, /* 0xE0 */
- 0xECED, 0xECE9, 0, 0xECEB, 0xC0C0, 0xC0C3, 0, 0xECE8, /* 0xE0 */
- 0xC0BE, 0xC0C1, 0xC259, 0xE9AD, 0xC258, 0, 0, 0xC25E, /* 0xF0 */
- 0xEFD4, 0, 0xC25C, 0xC25D, 0xEFD7, 0xEFD3, 0xC25A, 0xEFD1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_65[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC36B, 0xEFD5, 0, 0xEFD6, 0xEFD2, 0, 0xC25B, 0xF242, /* 0x00 */
- 0, 0xF245, 0, 0, 0xF246, 0xF244, 0xF247, 0xC36C, /* 0x00 */
- 0xF243, 0, 0, 0xF44E, 0xC464, 0xF44D, 0xF44C, 0xF44B, /* 0x10 */
- 0xC463, 0xC465, 0, 0xF5CD, 0xC4E2, 0xC4E1, 0, 0, /* 0x10 */
- 0xF6E1, 0xF6E0, 0xF6E3, 0xC5CB, 0xC575, 0xF7DD, 0xF6E2, 0, /* 0x20 */
- 0, 0xF7DC, 0xC5CD, 0xC5CC, 0xC5F3, 0xF8A9, 0xF8EF, 0xA4E4, /* 0x20 */
- 0, 0, 0xD972, 0xE9AF, 0, 0, 0xA6AC, 0xCAF7, /* 0x30 */
- 0xA7F1, 0xA7EF, 0, 0xA7F0, 0, 0xCCC1, 0xA9F1, 0xAC46, /* 0x30 */
- 0, 0xCEE7, 0, 0xCEE8, 0, 0xAC47, 0xD1CE, 0, /* 0x40 */
- 0xAEC4, 0xAEC5, 0xD1CD, 0, 0, 0, 0, 0xB1D3, /* 0x40 */
- 0, 0xB1CF, 0, 0xD5A7, 0xB1D6, 0xB1D5, 0xB1CE, 0xB1D1, /* 0x50 */
- 0xB1D4, 0xB1D0, 0, 0, 0xD976, 0xB1CD, 0xB4AF, 0, /* 0x50 */
- 0, 0, 0xB4B1, 0xB4B2, 0xD975, 0xD978, 0xB4B0, 0xD973, /* 0x60 */
- 0xD977, 0, 0xD974, 0, 0xB771, 0, 0, 0xDDBC, /* 0x60 */
- 0, 0, 0xBA56, 0xE1F4, 0xBEE3, 0xBCC4, 0xE5BD, 0xBCC5, /* 0x70 */
- 0xBCC6, 0xE5BF, 0xE5BE, 0xE5C0, 0xE9B1, 0, 0, 0xE9B0, /* 0x70 */
- 0xECEF, 0xECEE, 0xC0C4, 0xC0C5, 0xF248, 0, 0, 0xA4E5, /* 0x80 */
- 0, 0, 0, 0, 0xD979, 0, 0, 0, /* 0x80 */
- 0xB4B4, 0xB4B3, 0xDDBD, 0, 0xEFD8, 0xC4E3, 0xF7DE, 0xA4E6, /* 0x90 */
- 0, 0xAEC6, 0, 0xB1D8, 0xB1D7, 0xD97A, 0xD97B, 0xB772, /* 0x90 */
- 0xE1F5, 0xBA57, 0xE9B2, 0, 0xA4E7, 0xA5B8, 0, 0xA9F2, /* 0xA0 */
- 0xCCC2, 0, 0xCEE9, 0xAC48, 0xB1D9, 0, 0xD97C, 0xB4B5, /* 0xA0 */
- 0xB773, 0, 0xE5C1, 0xE5C2, 0, 0, 0xECF0, 0xC25F, /* 0xB0 */
- 0xF8F0, 0xA4E8, 0, 0xCCC3, 0xA9F3, 0xAC49, 0, 0xCEEA, /* 0xB0 */
- 0, 0xAEC7, 0xD1D2, 0xD1D0, 0xD1D1, 0xAEC8, 0xD1CF, 0, /* 0xC0 */
- 0, 0, 0, 0xB1DB, 0xB1DC, 0xD5A8, 0xB1DD, 0xB1DA, /* 0xC0 */
- 0xD97D, 0, 0xD97E, 0xDDBE, 0, 0, 0xBA59, 0xBA58, /* 0xD0 */
- 0, 0, 0xECF1, 0xEFD9, 0, 0xF24A, 0xF249, 0xF44F, /* 0xD0 */
- 0, 0xC95E, 0xAC4A, 0, 0, 0xA4E9, 0xA5B9, 0, /* 0xE0 */
- 0xA6AE, 0xA6AD, 0, 0, 0xA6AF, 0xA6B0, 0xC9EE, 0xC9ED, /* 0xE0 */
- 0xCAF8, 0xA7F2, 0xCAFB, 0xCAFA, 0xCAF9, 0xCAFC, 0, 0, /* 0xF0 */
- 0, 0, 0xA9F4, 0xCCC9, 0xCCC5, 0xCCCE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_66[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA9FB, 0, 0xA9F9, 0xCCCA, 0xCCC6, 0xCCCD, 0xA9F8, 0xAA40, /* 0x00 */
- 0xCCC8, 0xCCC4, 0xA9FE, 0xCCCB, 0xA9F7, 0xCCCC, 0xA9FA, 0xA9FC, /* 0x00 */
- 0xCCD0, 0xCCCF, 0xCCC7, 0xA9F6, 0xA9F5, 0xA9FD, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0xCEEF, 0xCEF5, 0, 0xAC50, /* 0x10 */
- 0xAC4D, 0xCEEC, 0xCEF1, 0, 0xAC53, 0xAC4B, 0xCEF0, 0xAC4E, /* 0x20 */
- 0xAC51, 0, 0, 0xCEF3, 0, 0xAC4C, 0xCEF8, 0xAC4F, /* 0x20 */
- 0, 0xAC52, 0xCEED, 0xCEF2, 0xCEF6, 0xCEEE, 0xCEEB, 0, /* 0x30 */
- 0, 0xCEF7, 0xCEF4, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xAED0, 0xAEC9, 0xAECC, 0, 0xAECF, 0, 0xD1D5, /* 0x40 */
- 0, 0xAECA, 0xD1D3, 0, 0xAECE, 0, 0, 0xAECB, /* 0x40 */
- 0, 0xD1D6, 0xAECD, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0xD5AC, 0xB1DF, 0xD5AB, 0xD5AD, 0xB1DE, 0xB1E3, 0xD1D4, /* 0x50 */
- 0, 0xD5AA, 0xD5AE, 0, 0xB1E0, 0xD5A9, 0xB1E2, 0, /* 0x60 */
- 0xB1E1, 0, 0xD9A7, 0, 0xD9A2, 0, 0xB4B6, 0xB4BA, /* 0x60 */
- 0xB4B7, 0xD9A5, 0xD9A8, 0, 0xB4B8, 0, 0xB4B9, 0xB4BE, /* 0x70 */
- 0xDDC7, 0xD9A6, 0xB4BC, 0xD9A3, 0xD9A1, 0, 0xB4BD, 0, /* 0x70 */
- 0xD9A4, 0, 0, 0, 0xB779, 0, 0xDDBF, 0xB776, /* 0x80 */
- 0xB777, 0xB775, 0xDDC4, 0xDDC3, 0xDDC0, 0xB77B, 0, 0, /* 0x80 */
- 0xDDC2, 0xB4BB, 0, 0, 0xDDC6, 0xDDC1, 0xB778, 0xB774, /* 0x90 */
- 0xB77A, 0xDDC5, 0, 0, 0, 0xBA5C, 0, 0xE1F8, /* 0x90 */
- 0xE1F7, 0xE1F6, 0xBA5A, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xBA5B, 0xE5C5, 0xE5C8, 0xBCC8, 0, 0, 0xBCC7, 0xE5C9, /* 0xA0 */
- 0xE5C4, 0xBCCA, 0xE5C6, 0, 0xBCC9, 0xE5C3, 0, 0xE5C7, /* 0xB0 */
- 0xBEE9, 0xBEE6, 0xE9BB, 0xE9BA, 0, 0xE9B9, 0xE9B4, 0, /* 0xB0 */
- 0xE9B5, 0, 0, 0, 0xBEE7, 0, 0xBEE4, 0xBEE8, /* 0xC0 */
- 0xE9B3, 0xBEE5, 0xE9B6, 0xE9B7, 0xE9BC, 0, 0, 0xE9B8, /* 0xC0 */
- 0, 0, 0xECF2, 0, 0, 0, 0xC0C7, 0, /* 0xD0 */
- 0xEFDC, 0xC0C6, 0xEFDA, 0xEFDB, 0xC260, 0xC36E, 0xF24B, 0, /* 0xD0 */
- 0xC36D, 0, 0, 0xF451, 0xF452, 0, 0xC466, 0, /* 0xE0 */
- 0xF450, 0xC4E4, 0, 0xF7DF, 0xC5CE, 0xF8AA, 0xF8AB, 0, /* 0xE0 */
- 0xA4EA, 0, 0xA6B1, 0xA6B2, 0xA7F3, 0, 0xCCD1, 0xAC54, /* 0xF0 */
- 0xAED1, 0xB1E4, 0, 0, 0xB0D2, 0, 0xB4BF, 0xB4C0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_67[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB3CC, 0xD9A9, 0, 0xB77C, 0xE1FA, 0xE1F9, 0, 0, /* 0x00 */
- 0xA4EB, 0xA6B3, 0xCCD2, 0xAA42, 0, 0xAA41, 0, 0xCEF9, /* 0x00 */
- 0xCEFA, 0, 0xD1D7, 0xD1D8, 0xAED2, 0xAED3, 0, 0xAED4, /* 0x10 */
- 0xD5AF, 0, 0, 0xB1E6, 0, 0xB4C2, 0, 0xB4C1, /* 0x10 */
- 0xDDC8, 0xDF7A, 0xE1FB, 0xE9BD, 0, 0, 0xC261, 0xC467, /* 0x20 */
- 0xA4EC, 0, 0xA5BC, 0xA5BD, 0xA5BB, 0xA5BE, 0xA5BA, 0, /* 0x20 */
- 0, 0xA6B6, 0, 0xC9F6, 0xA6B5, 0xA6B7, 0, 0, /* 0x30 */
- 0xC9F1, 0xC9F0, 0xC9F3, 0xC9F2, 0xC9F5, 0xA6B4, 0xC9EF, 0xC9F4, /* 0x30 */
- 0, 0, 0, 0, 0, 0xCAFD, 0xA7FD, 0xCAFE, /* 0x40 */
- 0xCB43, 0xA7FC, 0, 0xCB47, 0xCB42, 0xCB45, 0xA7F5, 0xA7F6, /* 0x40 */
- 0xA7F7, 0xA7F8, 0, 0xA840, 0, 0xCB41, 0xA7FA, 0xA841, /* 0x50 */
- 0, 0xCB40, 0xCB46, 0, 0xA7F9, 0xCB44, 0xA7FB, 0xA7F4, /* 0x50 */
- 0xA7FE, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0xAA57, 0, 0xCCD4, 0xAA43, 0, 0xAA4D, /* 0x60 */
- 0xAA4E, 0xAA46, 0xAA58, 0xAA48, 0xCCDC, 0xAA53, 0xCCD7, 0xAA49, /* 0x70 */
- 0xCCE6, 0xCCE7, 0xCCDF, 0xCCD8, 0xAA56, 0xCCE4, 0xAA51, 0xAA4F, /* 0x70 */
- 0, 0xCCE5, 0, 0xCCE3, 0xCCDB, 0xCCD3, 0xCCDA, 0xAA4A, /* 0x80 */
- 0, 0xAA50, 0, 0xAA44, 0xCCDE, 0xCCDD, 0xCCD5, 0, /* 0x80 */
- 0xAA52, 0xCCE1, 0xCCD6, 0xAA55, 0xCCE8, 0xAA45, 0, 0xAA4C, /* 0x90 */
- 0xCCD9, 0xCCE2, 0xAA54, 0, 0xAA47, 0xAA4B, 0, 0xCCE0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0xCF5B, 0xAC5C, /* 0xA0 */
- 0xAC69, 0, 0xCF56, 0xCF4C, 0xAC62, 0xCF4A, 0xAC5B, 0xCF45, /* 0xB0 */
- 0xAC65, 0xCF52, 0xCEFE, 0xCF41, 0, 0, 0, 0, /* 0xB0 */
- 0xCF44, 0xCEFB, 0xCF51, 0xCF61, 0xAC60, 0xCF46, 0xCF58, 0, /* 0xC0 */
- 0xCEFD, 0xCF5F, 0xCF60, 0xCF63, 0xCF5A, 0xCF4B, 0xCF53, 0xAC66, /* 0xC0 */
- 0xAC59, 0xAC61, 0xAC6D, 0xAC56, 0xAC58, 0, 0, 0, /* 0xD0 */
- 0xCF43, 0xAC6A, 0xAC63, 0xCF5D, 0xCF40, 0xAC6C, 0xAC67, 0xCF49, /* 0xD0 */
- 0, 0, 0xAC6B, 0xCF50, 0xCF48, 0xAC64, 0xCF5C, 0xCF54, /* 0xE0 */
- 0, 0xAC5E, 0xCF62, 0xCF47, 0xAC5A, 0xCF59, 0xCF4F, 0xAC5F, /* 0xE0 */
- 0xCF55, 0xAC57, 0xCEFC, 0xAC68, 0xAEE3, 0xAC5D, 0xCF4E, 0xCF4D, /* 0xF0 */
- 0xCF42, 0, 0xCF5E, 0, 0xCF57, 0, 0, 0xAC55 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_68[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD1EC, 0xAEEA, 0xD1ED, 0, 0xD1E1, 0xAEDF, /* 0x10 */
- 0xAEEB, 0, 0xD1DA, 0, 0xD1E3, 0xD1EB, 0, 0xD1D9, /* 0x10 */
- 0xD1F4, 0xAED5, 0, 0, 0, 0xD1F3, 0xD1EE, 0, /* 0x20 */
- 0xD1EF, 0xAEDD, 0xAEE8, 0xD1E5, 0, 0xD1E6, 0xD1F0, 0xD1E7, /* 0x20 */
- 0, 0xD1E2, 0xD1DC, 0xD1DD, 0xD1EA, 0xD1E4, 0, 0, /* 0x30 */
- 0xAED6, 0xAEDA, 0xD1F2, 0xD1DE, 0xAEE6, 0xAEE2, 0, 0, /* 0x30 */
- 0xAEE5, 0xAEEC, 0xAEDB, 0xAEE7, 0xD1E9, 0xAEE9, 0xAED8, 0, /* 0x40 */
- 0xAED7, 0xD1DB, 0, 0xD1DF, 0xAEE0, 0xD1F1, 0xD1E8, 0xD1E0, /* 0x40 */
- 0xAEE4, 0xAEE1, 0, 0xAED9, 0xAEDC, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xD5C4, 0, 0xD5B4, 0xD5B5, 0xD5B9, /* 0x60 */
- 0, 0xD5C8, 0xD5C5, 0, 0xD5BE, 0xD5BD, 0xB1ED, 0xD5C1, /* 0x70 */
- 0xD5D0, 0xD5B0, 0, 0xD5D1, 0xD5C3, 0xD5D5, 0xD5C9, 0xB1EC, /* 0x70 */
- 0xD5C7, 0xB1E7, 0xB1FC, 0xB1F2, 0, 0xB1F6, 0xB1F5, 0xD5B1, /* 0x80 */
- 0, 0xD5CE, 0xD5D4, 0xD5CC, 0xD5D3, 0, 0, 0xD5C0, /* 0x80 */
- 0xD5B2, 0xD5D2, 0xD5C2, 0xB1EA, 0xB1F7, 0, 0xD5CB, 0xB1F0, /* 0x90 */
- 0, 0, 0, 0xD5CA, 0xD5B3, 0xB1F8, 0, 0xB1FA, /* 0x90 */
- 0xD5CD, 0xB1FB, 0xB1E9, 0xD5BA, 0xD5CF, 0, 0, 0xB1EF, /* 0xA0 */
- 0xB1F9, 0xD5BC, 0xD5C6, 0xD5B7, 0xD5BB, 0xB1F4, 0xD5B6, 0xB1E8, /* 0xA0 */
- 0xB1F1, 0xB1EE, 0xD5BF, 0xAEDE, 0xD9C0, 0xB1EB, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0xB1F3, 0, 0xD9C3, 0xD9D9, /* 0xC0 */
- 0xD9CE, 0xB4D6, 0, 0xB4D1, 0xD9BD, 0xB4D2, 0xD9CD, 0, /* 0xC0 */
- 0xD9C6, 0xD9D3, 0xB4CE, 0xD9AB, 0xD9D5, 0xB4C4, 0xD9B3, 0xB4C7, /* 0xD0 */
- 0xB4C6, 0, 0xB4D7, 0, 0xD9AD, 0xD9CF, 0xD9D0, 0xB4C9, /* 0xD0 */
- 0xB4C5, 0xD9BB, 0, 0xB4D0, 0xD9B6, 0, 0xD9D1, 0xB4CC, /* 0xE0 */
- 0xD9C9, 0xD9D6, 0xD9B0, 0xD9B5, 0xD9AF, 0, 0xB4CB, 0xD9C2, /* 0xE0 */
- 0xDDDE, 0xD9B1, 0xB4CF, 0xD9BA, 0xD9D2, 0xB4CA, 0xD9B7, 0xD9B4, /* 0xF0 */
- 0xD9C5, 0xB4CD, 0xB4C3, 0xB4D9, 0xD9C8, 0xD9C7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_69[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD9AC, 0xB4C8, 0xD9D4, 0xD9BC, /* 0x00 */
- 0xD9BE, 0, 0xD9CB, 0xD9CA, 0xD9AA, 0xB4D3, 0xB4D5, 0xD9B2, /* 0x00 */
- 0xD9B9, 0xD9C1, 0xB4D4, 0xD9B8, 0xD9C4, 0xD9D7, 0, 0xD9CC, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xD9D8, 0, 0, /* 0x20 */
- 0, 0, 0xD9AE, 0, 0, 0, 0, 0xDDF2, /* 0x20 */
- 0xB7A6, 0, 0xDDF0, 0xDDDB, 0xDDE0, 0xDDD9, 0, 0xDDEC, /* 0x30 */
- 0xDDCB, 0xDDD2, 0, 0xDDEA, 0xDDF4, 0xDDDC, 0, 0xDDCF, /* 0x30 */
- 0xDDE2, 0xDDE7, 0xDDD3, 0, 0xDDE4, 0xDDD0, 0, 0, /* 0x40 */
- 0xDDD7, 0xDDD8, 0xB7A8, 0xDDEB, 0xDDE9, 0, 0xDDCC, 0xDDEE, /* 0x40 */
- 0, 0xDDEF, 0xDDF1, 0xB7AC, 0xB7A4, 0, 0xD5B8, 0xDDD4, /* 0x50 */
- 0xDDE6, 0xDDD5, 0xB7A1, 0xB7B1, 0xDDED, 0xB7AF, 0xB7AB, 0xDDCA, /* 0x50 */
- 0xB7A3, 0, 0xDDCD, 0xB7B0, 0, 0xDDDD, 0xDDC9, 0, /* 0x60 */
- 0xB7A9, 0xDDE1, 0xDDD1, 0xB7AA, 0xDDDA, 0xB77E, 0xB4D8, 0xDDE3, /* 0x60 */
- 0xD9BF, 0xDDCE, 0, 0, 0xDDE8, 0xB7A5, 0xDDE5, 0xB7A2, /* 0x70 */
- 0xDDDF, 0xB7AD, 0xDDD6, 0xDDF3, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xB7A7, 0xDEC6, 0, 0, 0xB7AE, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xE24A, 0xE248, 0, /* 0x80 */
- 0xE25E, 0xE246, 0, 0xE258, 0xB77D, 0xBA5F, 0xE242, 0xE25D, /* 0x90 */
- 0, 0xE247, 0xE255, 0xBA64, 0xBA5D, 0, 0xE25B, 0, /* 0x90 */
- 0xE240, 0xE25A, 0, 0xBA6F, 0xE251, 0xE261, 0xBA6D, 0xE249, /* 0xA0 */
- 0xBA5E, 0xE24B, 0xE259, 0xBA67, 0xE244, 0xBA6B, 0xBA61, 0xE24D, /* 0xA0 */
- 0xE243, 0xE1FC, 0, 0xE257, 0xBA68, 0xE260, 0xE1FD, 0xBA65, /* 0xB0 */
- 0, 0xE253, 0, 0xBA66, 0xE245, 0xE250, 0xE24C, 0xE24E, /* 0xB0 */
- 0, 0xBA60, 0xE25F, 0xBA6E, 0xE24F, 0, 0xE262, 0, /* 0xC0 */
- 0, 0xE1FE, 0xE254, 0xBA63, 0xBA6C, 0xBA6A, 0xE241, 0xE256, /* 0xC0 */
- 0xBA69, 0, 0, 0xBA62, 0xE252, 0, 0, 0, /* 0xD0 */
- 0, 0xE25C, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xE5D5, 0, 0xE5D1, 0xE5CD, 0xE5E1, 0xE5DE, /* 0xE0 */
- 0xBCCD, 0, 0, 0xE5E5, 0xE5D4, 0xBCD8, 0xE5DB, 0, /* 0xE0 */
- 0, 0xE5D0, 0xE5DA, 0xBCD5, 0xE5EE, 0, 0xE5EB, 0xE5DD, /* 0xF0 */
- 0xE5CE, 0, 0, 0xE5E2, 0xE5E4, 0xBCD1, 0xE5D8, 0xE5D3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_6A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE5CA, 0xBCCE, 0xBCD6, 0, 0xE5E7, 0xBCD7, 0xE5CB, 0xE5ED, /* 0x00 */
- 0xE5E0, 0xE5E6, 0xBCD4, 0, 0, 0xE5E3, 0, 0xE5EA, /* 0x00 */
- 0, 0xBCD9, 0, 0xBCD3, 0xE5DC, 0xE5CF, 0xE5EF, 0xE5CC, /* 0x10 */
- 0xE5E8, 0xBCD0, 0, 0xE5D6, 0, 0xE5D7, 0xBCCF, 0xBCCC, /* 0x10 */
- 0xE5D2, 0xBCD2, 0, 0xBCCB, 0, 0xE5E9, 0xE5EC, 0xE5D9, /* 0x20 */
- 0xE9CA, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0xE9C2, 0, 0xE9BE, 0xBEF6, 0, 0, /* 0x30 */
- 0xBEEB, 0xBEF0, 0xBEEC, 0xE9CC, 0xE9D7, 0xBEEA, 0xE9C4, 0xE9CD, /* 0x30 */
- 0xE5DF, 0xE9CE, 0, 0, 0xBEF1, 0, 0xE9DD, 0xBEF5, /* 0x40 */
- 0xBEF8, 0xE9C0, 0, 0xBEF4, 0, 0xE9DB, 0xE9DC, 0xE9D2, /* 0x40 */
- 0xE9D1, 0xE9C9, 0, 0, 0xE9D3, 0xE9DA, 0xE9D9, 0, /* 0x50 */
- 0xBEEF, 0xBEED, 0xE9CB, 0xE9C8, 0, 0xE9C5, 0xE9D8, 0xBEF7, /* 0x50 */
- 0xE9D6, 0xBEF3, 0xBEF2, 0, 0xE9D0, 0, 0xE9BF, 0xE9C1, /* 0x60 */
- 0xE9C3, 0xE9D5, 0xE9CF, 0xBEEE, 0, 0xE9C6, 0, 0xE9D4, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0xE9C7, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0xC0CF, 0xED45, /* 0x70 */
- 0xC0C8, 0xECF5, 0, 0xED41, 0xC0CA, 0xED48, 0, 0xECFC, /* 0x80 */
- 0, 0xECF7, 0, 0, 0xED49, 0xECF3, 0xECFE, 0, /* 0x80 */
- 0xC0D1, 0xED44, 0xED4A, 0xECFD, 0xC0C9, 0xED40, 0xECF4, 0xC0D0, /* 0x90 */
- 0, 0, 0xED47, 0xECF9, 0xC0CC, 0, 0xECFB, 0xECF8, /* 0x90 */
- 0xC0D2, 0xECFA, 0xC0CB, 0xC0CE, 0xED43, 0xECF6, 0xED46, 0, /* 0xA0 */
- 0xED42, 0, 0, 0, 0xC263, 0xEFE7, 0xC268, 0xC269, /* 0xA0 */
- 0, 0, 0, 0xC262, 0xEFE6, 0, 0xEFE3, 0xEFE4, /* 0xB0 */
- 0xC266, 0xEFDE, 0xEFE2, 0xC265, 0, 0xEFDF, 0, 0, /* 0xB0 */
- 0, 0, 0xC267, 0xC264, 0, 0xEFDD, 0xEFE1, 0xEFE5, /* 0xC0 */
- 0, 0, 0, 0xF251, 0xF24E, 0xF257, 0, 0xF256, /* 0xC0 */
- 0xF254, 0xF24F, 0, 0xC372, 0, 0, 0, 0, /* 0xD0 */
- 0, 0xF250, 0xC371, 0xC0CD, 0xF253, 0xC370, 0xF258, 0xF252, /* 0xD0 */
- 0xF24D, 0xEFE0, 0, 0, 0, 0xC36F, 0, 0xF24C, /* 0xE0 */
- 0xF456, 0, 0xF455, 0xF255, 0xC468, 0, 0xF459, 0xF45A, /* 0xE0 */
- 0xF454, 0xF458, 0, 0xF453, 0, 0, 0, 0, /* 0xF0 */
- 0xF5D1, 0xF457, 0xC4E7, 0xC4E5, 0xF5CF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_6B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF5D2, 0, 0xF5CE, 0xF5D0, 0xC4E6, 0, 0, 0, /* 0x00 */
- 0xF6E5, 0xF6E6, 0xC576, 0xF6E4, 0, 0, 0, 0xF7E2, /* 0x00 */
- 0xC5CF, 0xF7E0, 0xF7E1, 0xF8AC, 0, 0, 0xC656, 0xF8F3, /* 0x10 */
- 0xF8F1, 0xF8F2, 0xF8F4, 0, 0, 0, 0xF9BB, 0, /* 0x10 */
- 0xA4ED, 0xA6B8, 0, 0xAA59, 0, 0xCCE9, 0, 0, /* 0x20 */
- 0xCF64, 0, 0, 0, 0xD1F5, 0xD1F7, 0, 0xD1F6, /* 0x20 */
- 0, 0xD1F8, 0xB1FD, 0xD5D7, 0xD1F9, 0, 0xD5D6, 0xD5D8, /* 0x30 */
- 0xD5D9, 0xD9DA, 0xB4DB, 0xD9DB, 0xD9DD, 0xB4DC, 0xB4DA, 0xD9DC, /* 0x30 */
- 0, 0xDDFA, 0xDDF8, 0xDDF7, 0, 0xDDF6, 0xDDF5, 0xB7B2, /* 0x40 */
- 0xDDF9, 0xBA70, 0xE263, 0xE265, 0xBA71, 0xE264, 0xBCDB, 0, /* 0x40 */
- 0xBCDA, 0xE5F0, 0, 0, 0xE9DF, 0xE9DE, 0xE9E0, 0, /* 0x50 */
- 0, 0xBEF9, 0, 0xED4B, 0xC0D3, 0, 0xEFE8, 0xC26A, /* 0x50 */
- 0xF259, 0xC577, 0xA4EE, 0xA5BF, 0xA6B9, 0xA842, 0xAA5A, 0xAA5B, /* 0x60 */
- 0, 0, 0xAC6E, 0, 0, 0xD1FA, 0, 0, /* 0x60 */
- 0, 0, 0xB7B3, 0, 0, 0, 0xE6D1, 0xBEFA, /* 0x70 */
- 0xC26B, 0xA4EF, 0, 0xA6BA, 0, 0, 0xCCEB, 0xAA5C, /* 0x70 */
- 0xCCEA, 0, 0xCF65, 0xAC6F, 0xCF66, 0, 0xAC70, 0, /* 0x80 */
- 0xD1FC, 0xAEEE, 0xAEED, 0, 0xD5DE, 0xD5DC, 0xD5DD, 0xD5DB, /* 0x80 */
- 0, 0xD5DA, 0, 0, 0xD9DE, 0xD9E1, 0xB4DE, 0xD9DF, /* 0x90 */
- 0xB4DD, 0xD9E0, 0, 0xDDFB, 0, 0, 0xE266, 0xE267, /* 0x90 */
- 0xE268, 0, 0xE5F3, 0xE5F2, 0xBCDC, 0xE5F1, 0xE5F4, 0xE9E1, /* 0xA0 */
- 0, 0, 0xE9E2, 0xE9E3, 0, 0xED4C, 0xC0D4, 0xC26C, /* 0xA0 */
- 0xF25A, 0, 0xC4E8, 0xC95F, 0, 0xAC71, 0xCF67, 0xAEEF, /* 0xB0 */
- 0, 0, 0xB1FE, 0, 0xB4DF, 0xD9E2, 0, 0xB7B5, /* 0xB0 */
- 0xB7B4, 0, 0, 0xE269, 0xE26A, 0xBCDD, 0xBCDE, 0xE9E5, /* 0xC0 */
- 0xE9E4, 0xEFE9, 0xF7E3, 0xA4F0, 0xC960, 0xA5C0, 0, 0xA843, /* 0xC0 */
- 0xCB48, 0, 0xAC72, 0xB7B6, 0xA4F1, 0, 0xCF68, 0xAC73, /* 0xD0 */
- 0xCF69, 0, 0xC0D5, 0xA4F2, 0, 0, 0xCCEC, 0, /* 0xD0 */
- 0xCF6A, 0, 0xD242, 0xD241, 0xD1FE, 0, 0xD1FD, 0xD243, /* 0xE0 */
- 0xD240, 0, 0, 0xB240, 0xB241, 0, 0, 0xB4E0, /* 0xE0 */
- 0xD9E3, 0, 0xD9E4, 0xD9E5, 0, 0, 0, 0xDE41, /* 0xF0 */
- 0xDE42, 0xDE40, 0, 0xDDFD, 0xDDFE, 0xB7B7, 0xE26B, 0xE5F7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_6C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE5F6, 0xE5F5, 0xE5F8, 0xE9E7, 0xE9E6, 0xBEFB, 0xE9E8, 0, /* 0x00 */
- 0xC0D6, 0xED4D, 0, 0xEFEA, 0xF25B, 0xF6E7, 0, 0xA4F3, /* 0x00 */
- 0xA5C2, 0xA5C1, 0, 0xAA5D, 0xC961, 0xC97E, 0xA6BB, 0, /* 0x10 */
- 0xC9F7, 0xCB49, 0xCB4A, 0xAA5E, 0, 0xCCED, 0, 0xAC74, /* 0x10 */
- 0xCF6B, 0xCF6C, 0, 0xAEF0, 0xAEF4, 0xD244, 0xAEF3, 0xAEF1, /* 0x20 */
- 0xAEF2, 0, 0xD5DF, 0xB242, 0xB4E3, 0, 0xB4E1, 0xB4E2, /* 0x20 */
- 0xD9E6, 0, 0, 0xBA72, 0xA4F4, 0, 0xC9A1, 0, /* 0x30 */
- 0xA5C3, 0, 0, 0xC9A4, 0, 0, 0xA5C6, 0xC9A3, /* 0x30 */
- 0xA5C5, 0xA5C4, 0xA844, 0xC9A2, 0, 0, 0xC9F8, 0, /* 0x40 */
- 0, 0, 0xC9FC, 0xC9FE, 0xCA40, 0xA6C5, 0xA6C6, 0xC9FB, /* 0x40 */
- 0xA6C1, 0, 0xC9F9, 0, 0xC9FD, 0xA6C2, 0, 0xA6BD, /* 0x50 */
- 0, 0xA6BE, 0, 0xA6C4, 0xC9FA, 0xA6BC, 0xA845, 0xA6BF, /* 0x50 */
- 0xA6C0, 0xA6C3, 0, 0, 0, 0xCB5B, 0xCB59, 0xCB4C, /* 0x60 */
- 0xA851, 0xCB53, 0xA84C, 0xCB4D, 0, 0xCB55, 0, 0xCB52, /* 0x60 */
- 0xA84F, 0xCB51, 0xA856, 0xCB5A, 0xA858, 0, 0xA85A, 0, /* 0x70 */
- 0xCB4B, 0, 0xA84D, 0xCB5C, 0, 0xA854, 0xA857, 0, /* 0x70 */
- 0xCD45, 0xA847, 0xA85E, 0xA855, 0xCB4E, 0xA84A, 0xA859, 0xCB56, /* 0x80 */
- 0xA848, 0xA849, 0xCD43, 0xCB4F, 0xA850, 0xA85B, 0xCB5D, 0xCB50, /* 0x80 */
- 0xA84E, 0, 0xA853, 0xCCEE, 0xA85C, 0xCB57, 0xA852, 0, /* 0x90 */
- 0xA85D, 0xA846, 0xCB54, 0xA84B, 0xCB58, 0xCD44, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0xAA6A, 0xAA7A, 0xCCF5, 0xAA71, 0, /* 0xA0 */
- 0xCD4B, 0xAA62, 0, 0xAA65, 0xCD42, 0, 0xCCF3, 0xCCF7, /* 0xB0 */
- 0xAA6D, 0xAA6F, 0xCCFA, 0xAA76, 0xAA68, 0xAA66, 0xAA67, 0xAA75, /* 0xB0 */
- 0xCD47, 0xAA70, 0xCCF9, 0xCCFB, 0xAA6E, 0xAA73, 0xCCFC, 0xCD4A, /* 0xC0 */
- 0, 0xAC75, 0xAA79, 0, 0xAA63, 0xCD49, 0, 0xCD4D, /* 0xC0 */
- 0xCCF8, 0xCD4F, 0xCD40, 0xAA6C, 0xCCF4, 0xAA6B, 0xAA7D, 0xAA72, /* 0xD0 */
- 0, 0xCCF2, 0xCF75, 0xAA78, 0xAA7C, 0xCD41, 0xCD46, 0, /* 0xD0 */
- 0xAA7E, 0xAA77, 0xAA69, 0xAA5F, 0, 0xAA64, 0, 0xCCF6, /* 0xE0 */
- 0xAA60, 0xCD4E, 0, 0xCCF0, 0xCCEF, 0xCCFD, 0xCCF1, 0xAA7B, /* 0xE0 */
- 0xAEF5, 0xAA74, 0xCCFE, 0xAA61, 0, 0xACA6, 0, 0, /* 0xF0 */
- 0, 0xCD4C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_6D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xCF7C, 0xCFA1, 0, 0xCFA4, 0xCF77, 0, 0, 0xCFA7, /* 0x00 */
- 0xCFAA, 0xCFAC, 0xCF74, 0xAC76, 0xAC7B, 0xD249, 0xACAD, 0xCFA5, /* 0x00 */
- 0xCFAD, 0xCF7B, 0xCF73, 0, 0, 0, 0xD264, 0xAC7E, /* 0x10 */
- 0xCFA2, 0xCF78, 0xCF7A, 0xACA5, 0, 0xCF7D, 0xAC7D, 0xCF70, /* 0x10 */
- 0xCFA8, 0, 0xCFAB, 0, 0, 0xAC7A, 0, 0xACA8, /* 0x20 */
- 0xCF6D, 0xACAA, 0xAC78, 0xACAE, 0xCFA9, 0xCF6F, 0xACAB, 0xD25E, /* 0x20 */
- 0xCD48, 0xAC7C, 0xAC77, 0xCF76, 0xCF6E, 0xACAC, 0xACA4, 0xCFA3, /* 0x30 */
- 0xACA9, 0xACA7, 0xCF79, 0xACA1, 0xCF71, 0xACA2, 0xACA3, 0xCF72, /* 0x30 */
- 0xCFA6, 0xAC79, 0xCF7E, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xD24C, 0xAEFD, 0xAF43, 0, 0, 0, 0xD255, 0xD25B, /* 0x50 */
- 0xD257, 0xD24A, 0xD24D, 0xD246, 0xD247, 0xAF4A, 0xAEFA, 0xD256, /* 0x60 */
- 0xD25F, 0xAF45, 0xAEF6, 0, 0xAF40, 0xD24E, 0xAF42, 0xD24F, /* 0x60 */
- 0xD259, 0, 0, 0, 0xAF44, 0xD268, 0xD248, 0xAEFC, /* 0x70 */
- 0xAEFB, 0xAF48, 0xD245, 0xD266, 0xD25A, 0xD267, 0xD261, 0xD253, /* 0x70 */
- 0xD262, 0, 0xD25C, 0xD265, 0xD263, 0xAF49, 0xD254, 0xAEF9, /* 0x80 */
- 0xAEF8, 0xAF41, 0xAF47, 0xD260, 0xAF46, 0xD251, 0xB243, 0, /* 0x80 */
- 0xD269, 0xD250, 0xD24B, 0xAEFE, 0xAF4B, 0xAEF7, 0, 0xD258, /* 0x90 */
- 0xD25D, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xB265, 0xD5E1, 0xD5E5, 0, 0xB252, 0xB250, /* 0xA0 */
- 0, 0, 0xB247, 0xD5E3, 0xD5E2, 0xB25B, 0, 0xD5E8, /* 0xB0 */
- 0xB255, 0, 0xD5FA, 0xD647, 0xB244, 0xD5F7, 0xD5F0, 0xB267, /* 0xB0 */
- 0xD5E0, 0, 0xD5FC, 0, 0xB264, 0xB258, 0xB263, 0xB24E, /* 0xC0 */
- 0xD5EC, 0xD5FE, 0xD5F6, 0xB24F, 0xB249, 0xD645, 0, 0xD5FD, /* 0xC0 */
- 0xD640, 0xB251, 0xB259, 0xD642, 0xD5EA, 0xD5FB, 0xD5EF, 0xD644, /* 0xD0 */
- 0xB25E, 0xB246, 0xB25C, 0xD5F4, 0xD5F2, 0xD5F3, 0xB253, 0xD5EE, /* 0xD0 */
- 0xD5ED, 0xB248, 0xD5E7, 0xD646, 0xB24A, 0xD5F1, 0xB268, 0, /* 0xE0 */
- 0xB262, 0xD5E6, 0xB25F, 0xB25D, 0xB266, 0xD5F8, 0xB261, 0xD252, /* 0xE0 */
- 0xD5F9, 0xB260, 0xD641, 0xB245, 0xD5F5, 0xB257, 0xD5E9, 0xB256, /* 0xF0 */
- 0, 0xB254, 0xB24C, 0xB24B, 0xD9E7, 0xD643 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_6E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD5EB, 0, 0, 0xD9FC, 0, 0xB24D, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xB541, 0xB25A, 0xB4EE, 0xD9F6, 0xB4FC, 0, 0xD9EA, /* 0x10 */
- 0xB4EB, 0xB4E7, 0xDA49, 0xB4ED, 0xB4F1, 0xB4EC, 0xB4F5, 0xDA4D, /* 0x20 */
- 0xDA44, 0, 0, 0xD9F1, 0xB4FA, 0xB4F4, 0xD9FD, 0xB4E4, /* 0x20 */
- 0xDA4A, 0xDA43, 0xB4E8, 0xD9F7, 0xB4F7, 0xDA55, 0xDA56, 0, /* 0x30 */
- 0xB4E5, 0xDA48, 0xB4F9, 0xD9FB, 0xD9ED, 0xD9EE, 0xB4FD, 0xD9F2, /* 0x30 */
- 0xD9F9, 0xD9F3, 0, 0xB4FB, 0xB544, 0xD9EF, 0xD9E8, 0xD9E9, /* 0x40 */
- 0, 0xD9EB, 0xB4EA, 0xD9F8, 0, 0xB4F8, 0xB542, 0, /* 0x40 */
- 0, 0xD9FA, 0xDA53, 0xDA4B, 0xB4E6, 0xDA51, 0xB4F2, 0, /* 0x50 */
- 0xB4F0, 0, 0xDA57, 0xB4EF, 0xDA41, 0xD9F4, 0xD9FE, 0xB547, /* 0x50 */
- 0xDA45, 0xDA42, 0xD9F0, 0xB543, 0xDA4F, 0xDA4C, 0xDA54, 0xB4E9, /* 0x60 */
- 0xDA40, 0xB546, 0, 0xDA47, 0, 0, 0xB4F3, 0xB4F6, /* 0x60 */
- 0, 0xDA46, 0xB545, 0xD9F5, 0xD5E4, 0, 0, 0xDA50, /* 0x70 */
- 0xDA4E, 0xDA52, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xD9EC, 0xB540, 0, 0, 0, 0xDE61, 0xDE60, 0xDE46, /* 0x80 */
- 0xB7BD, 0, 0xDE5F, 0xDE49, 0xDE4A, 0, 0xB7C7, 0xDE68, /* 0x90 */
- 0xB7C2, 0xDE5E, 0, 0xDE43, 0xB7C8, 0xB7BE, 0xDE52, 0xDE48, /* 0x90 */
- 0xDE4B, 0xDE63, 0xB7B8, 0xDE6A, 0xDE62, 0xB7C1, 0xDE57, 0xB7CC, /* 0xA0 */
- 0, 0, 0xB7CB, 0xB7C5, 0, 0, 0xDE69, 0xB7B9, /* 0xA0 */
- 0xDE55, 0xDE4C, 0xDE59, 0xDE65, 0xB7CD, 0, 0xB7BB, 0xDE54, /* 0xB0 */
- 0, 0xDE4D, 0xB7C4, 0, 0xB7C3, 0xDE50, 0xDE5A, 0xDE64, /* 0xB0 */
- 0xDE47, 0xDE51, 0xB7BC, 0xDE5B, 0xB7C9, 0xB7C0, 0xDE4E, 0xB7BF, /* 0xC0 */
- 0xDE45, 0xDE53, 0xDE67, 0xB4FE, 0xBAB0, 0xDE56, 0xE26C, 0xDE58, /* 0xC0 */
- 0xDE66, 0xB7C6, 0xDE4F, 0xB7BA, 0xB7CA, 0xBCF0, 0xDE44, 0, /* 0xD0 */
- 0xDE5D, 0, 0, 0, 0xDE5C, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xE2AA, 0xBAAD, 0xE27D, 0xE2A4, 0xBAA2, /* 0xE0 */
- 0, 0xE26E, 0xBAAF, 0, 0xBA77, 0xE26D, 0xE2B0, 0xBAB1, /* 0xF0 */
- 0xE271, 0xE2A3, 0, 0xE273, 0xE2B3, 0xE2AF, 0xBA75, 0xBAA1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_6F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE653, 0xBAAE, 0xBA7D, 0xE26F, 0, 0xE2AE, 0xBAA3, 0xE2AB, /* 0x00 */
- 0xE2B8, 0xE275, 0xE27E, 0, 0, 0xE2B6, 0xE2AC, 0xBA7C, /* 0x00 */
- 0, 0, 0xE27C, 0xBA76, 0xBA74, 0xBAA8, 0, 0, /* 0x10 */
- 0xE27A, 0xE277, 0xE278, 0, 0xE2B2, 0, 0xE2B7, 0xE2B5, /* 0x10 */
- 0xBA7A, 0xE2B9, 0xBA7E, 0xBAA7, 0, 0xE270, 0xE5FA, 0xE279, /* 0x20 */
- 0, 0xBA78, 0xBAAC, 0xBAA9, 0xBA7B, 0xE2A5, 0xE274, 0xBAAA, /* 0x20 */
- 0xE2A7, 0xBAA4, 0xBAA6, 0xBA73, 0, 0xE2A9, 0xE2A1, 0xE272, /* 0x30 */
- 0xBAA5, 0xE2B1, 0xE2B4, 0xE27B, 0xE2A8, 0, 0xBA79, 0xBCDF, /* 0x30 */
- 0xE2A6, 0xE5F9, 0, 0xE2AD, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0xE276, 0xE644, /* 0x40 */
- 0xE64E, 0xBCE2, 0xE64D, 0xE659, 0xBCE4, 0xE64B, 0, 0xE64F, /* 0x50 */
- 0xBCEF, 0, 0xE646, 0xBCE7, 0, 0xE652, 0xE9F0, 0xBCF3, /* 0x50 */
- 0xBCF2, 0xE654, 0xE643, 0xE65E, 0xBCED, 0, 0xBCE3, 0xE657, /* 0x60 */
- 0, 0xE65B, 0xE660, 0xE655, 0xE649, 0xBCE6, 0xBCE9, 0xBCF1, /* 0x60 */
- 0xBCEC, 0, 0xE64C, 0xE2A2, 0, 0, 0xE648, 0xE65F, /* 0x70 */
- 0xBCE8, 0, 0xBCEB, 0xE661, 0xBCE0, 0xE656, 0xE5FB, 0xE65C, /* 0x70 */
- 0xC0DF, 0, 0xE64A, 0, 0xBCE1, 0xE645, 0xBCE5, 0xE5FC, /* 0x80 */
- 0xBAAB, 0xE641, 0, 0xE65A, 0xE642, 0xE640, 0xBCEA, 0, /* 0x80 */
- 0xE658, 0, 0xE5FE, 0xE651, 0xE650, 0xE65D, 0xE647, 0xBCEE, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0xE9F3, 0, /* 0x90 */
- 0xBF49, 0xBEFE, 0xEA40, 0xE9EB, 0xBF41, 0xE9F7, 0xBF48, 0xBF43, /* 0xA0 */
- 0xE9F5, 0xED4F, 0xE9FB, 0xEA42, 0xE9FA, 0xE9E9, 0xE9F8, 0xEA44, /* 0xA0 */
- 0xEA46, 0xBEFD, 0xEA45, 0xBF44, 0xBF4A, 0, 0xBF47, 0, /* 0xB0 */
- 0xE9FE, 0xBF46, 0xE9F9, 0, 0xE9ED, 0xE9F2, 0, 0xE9FD, /* 0xB0 */
- 0xBF45, 0xBF42, 0xBEFC, 0xBF40, 0xE9F1, 0, 0xE5FD, 0xE9EC, /* 0xC0 */
- 0xE9EF, 0xEA41, 0xE9F4, 0xE9EA, 0xED4E, 0xEA43, 0xE9EE, 0xE9FC, /* 0xC0 */
- 0, 0, 0, 0, 0xED51, 0xC0E3, 0, 0, /* 0xD0 */
- 0xC0D7, 0, 0, 0xC0DB, 0xED53, 0xED59, 0xED57, 0xC0D9, /* 0xD0 */
- 0xC0DA, 0xC0E1, 0xED5A, 0xED52, 0xC0DC, 0, 0xED56, 0xED55, /* 0xE0 */
- 0xED5B, 0xC0E2, 0, 0xC0DD, 0xC0E0, 0xED54, 0xC0E4, 0xC0DE, /* 0xE0 */
- 0xC0E5, 0xC0D8, 0xED58, 0, 0xED50, 0, 0, 0xEFF7, /* 0xF0 */
- 0, 0, 0xC271, 0xEFF4, 0xEFF6, 0, 0xC26F, 0xEFF2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_70[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEFF3, 0xEFEE, 0, 0, 0xE9F6, 0xEFEF, 0xC270, 0xEFEB, /* 0x00 */
- 0, 0xC26D, 0xEFF8, 0xC26E, 0xEFEC, 0xEFED, 0xEFF1, 0xC273, /* 0x00 */
- 0, 0xC272, 0, 0, 0xEFF0, 0xC378, 0xF25F, 0xF265, /* 0x10 */
- 0xC379, 0xF25C, 0xC376, 0xC373, 0xF267, 0xC377, 0, 0xC374, /* 0x10 */
- 0xF25E, 0xF261, 0xF262, 0xF263, 0xF266, 0, 0xEFF5, 0xF25D, /* 0x20 */
- 0xC375, 0xF264, 0xF268, 0xF260, 0, 0, 0, 0xF45D, /* 0x20 */
- 0xC46A, 0xF460, 0xC46B, 0xF468, 0xF45F, 0xF45C, 0, 0xF45E, /* 0x30 */
- 0xF462, 0xF465, 0xF464, 0xF467, 0xF45B, 0, 0xC469, 0xF463, /* 0x30 */
- 0xF466, 0xF469, 0xF461, 0xF5D3, 0xF5D4, 0xF5D8, 0xF5D9, 0, /* 0x40 */
- 0xF5D6, 0xF5D7, 0xF5D5, 0, 0xC4E9, 0, 0, 0, /* 0x40 */
- 0, 0xC578, 0xF6EB, 0, 0, 0xF6E8, 0xF6E9, 0xF6EA, /* 0x50 */
- 0xC579, 0, 0xF7E5, 0xF7E4, 0, 0xF8AF, 0xC5F4, 0xF8AD, /* 0x50 */
- 0xF8B0, 0xF8AE, 0xF8F5, 0xC657, 0xC665, 0xF9A3, 0xF96C, 0, /* 0x60 */
- 0xF9A2, 0xF9D0, 0xF9D1, 0xA4F5, 0, 0, 0, 0, /* 0x60 */
- 0xA6C7, 0xCA41, 0, 0, 0xCB5E, 0, 0xA85F, 0, /* 0x70 */
- 0xA862, 0, 0xCB5F, 0, 0xA860, 0xA861, 0, 0, /* 0x70 */
- 0, 0, 0xCD58, 0xCD5A, 0xCD55, 0xCD52, 0xCD54, 0, /* 0x80 */
- 0, 0, 0xAAA4, 0, 0, 0, 0xAAA2, 0, /* 0x80 */
- 0, 0xCD56, 0xAAA3, 0xCD53, 0xCD50, 0xAAA1, 0xCD57, 0, /* 0x90 */
- 0xCD51, 0xAAA5, 0xCD59, 0, 0, 0, 0, 0xCFAF, /* 0x90 */
- 0, 0xCFB3, 0, 0, 0xACB7, 0, 0, 0, /* 0xA0 */
- 0, 0xCFB6, 0, 0xACAF, 0xACB2, 0xACB4, 0xACB6, 0xACB3, /* 0xA0 */
- 0xCFB2, 0xCFB1, 0, 0xACB1, 0xCFB4, 0xCFB5, 0, 0xCFAE, /* 0xB0 */
- 0xACB5, 0, 0xACB0, 0, 0, 0, 0xCFB0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xD277, 0xD278, 0xD279, /* 0xC0 */
- 0xAF50, 0, 0xAF4C, 0xD26E, 0, 0xD276, 0xD27B, 0xAF51, /* 0xC0 */
- 0, 0xD26C, 0xD272, 0xD26B, 0xD275, 0, 0, 0xD271, /* 0xD0 */
- 0xAF4D, 0xAF4F, 0xD27A, 0, 0xD26A, 0xD26D, 0xD273, 0, /* 0xD0 */
- 0xD274, 0xD27C, 0xD270, 0, 0xAF4E, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0xB26D, /* 0xE0 */
- 0xD64E, 0, 0, 0xD650, 0xD64C, 0, 0xD658, 0xD64A, /* 0xF0 */
- 0xD657, 0xB269, 0xD648, 0xDA5B, 0xD652, 0xB26C, 0, 0xD653 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_71[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD656, 0, 0xD65A, 0, 0xD64F, 0, 0xD654, 0, /* 0x00 */
- 0, 0xB26A, 0xB26B, 0xD659, 0xD64D, 0xD649, 0xD65B, 0, /* 0x00 */
- 0xD651, 0, 0, 0xD655, 0, 0, 0, 0xD64B, /* 0x10 */
- 0, 0xB548, 0xB549, 0xDA65, 0xB54F, 0, 0xDA59, 0xDA62, /* 0x10 */
- 0xDA58, 0xB54C, 0xDA60, 0xDA5E, 0, 0xDA5F, 0xB54A, 0, /* 0x20 */
- 0xDA63, 0, 0, 0, 0, 0, 0xDA5C, 0xDA5A, /* 0x20 */
- 0xB54B, 0xDA5D, 0xDA61, 0, 0, 0, 0xB54D, 0, /* 0x30 */
- 0, 0, 0xDA64, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xDE70, 0xDE77, 0xDE79, 0xDEA1, 0, 0xB7DA, 0xDE6B, /* 0x40 */
- 0, 0xB7D2, 0, 0xDE7A, 0xB7D7, 0xDEA2, 0xB7CE, 0, /* 0x40 */
- 0xDE7D, 0, 0xDE6D, 0xDE7E, 0xDE6C, 0, 0xB7DC, 0, /* 0x50 */
- 0xDE78, 0xB7CF, 0xDEA3, 0, 0xB7D4, 0xDE71, 0xB7D9, 0xDE7C, /* 0x50 */
- 0xDE6F, 0xDE76, 0xDE72, 0xDE6E, 0xB7D1, 0xB7D8, 0xB7D6, 0xB7D3, /* 0x60 */
- 0xB7DB, 0xB7D0, 0xDE75, 0, 0xB7D5, 0, 0xB54E, 0, /* 0x60 */
- 0xDE7B, 0, 0xDE73, 0, 0, 0, 0, 0, /* 0x70 */
- 0xDE74, 0, 0, 0xE2C1, 0, 0xBAB4, 0, 0, /* 0x70 */
- 0xE2BD, 0xE2C3, 0xE2BF, 0, 0xBAB6, 0xE2BE, 0xE2C2, 0xE2BA, /* 0x80 */
- 0, 0xE2BC, 0xBAB5, 0, 0, 0, 0, 0xE2C0, /* 0x80 */
- 0xE2BB, 0, 0xBAB7, 0, 0xBAB2, 0, 0, 0xE2C4, /* 0x90 */
- 0, 0xBAB3, 0xE667, 0xE664, 0xE670, 0xE66A, 0xE66C, 0xBCF4, /* 0x90 */
- 0xE666, 0xE66E, 0, 0, 0xE66D, 0xE66B, 0, 0xE671, /* 0xA0 */
- 0xBCF7, 0xE668, 0xE66F, 0, 0xBCF5, 0, 0, 0xE663, /* 0xA0 */
- 0xE665, 0xBCF6, 0xE662, 0xE672, 0, 0xE669, 0, 0, /* 0xB0 */
- 0xEA4A, 0xBF51, 0, 0, 0xEA55, 0xEA53, 0xBF4B, 0xEA49, /* 0xB0 */
- 0xEA4C, 0xEA4D, 0xEA48, 0xBF55, 0xBF56, 0xEA47, 0xEA56, 0xEA51, /* 0xC0 */
- 0xBF4F, 0xBF4C, 0xEA50, 0xEA4E, 0, 0, 0xBF52, 0xEA52, /* 0xC0 */
- 0xBF4D, 0, 0xBF4E, 0, 0xEA4F, 0xBF50, 0xEA4B, 0, /* 0xD0 */
- 0xEA54, 0xBF53, 0xEA57, 0xEA58, 0xBF54, 0, 0, 0xC0E7, /* 0xD0 */
- 0xC0EE, 0xED5C, 0xED62, 0, 0xED60, 0xC0EA, 0xC0E9, 0xC0E6, /* 0xE0 */
- 0xED5E, 0, 0, 0, 0xC0EC, 0xC0EB, 0xC0E8, 0, /* 0xE0 */
- 0xED61, 0xED5D, 0xED5F, 0, 0xC0ED, 0, 0, 0, /* 0xF0 */
- 0xC277, 0xEFFB, 0, 0xC274, 0xC275, 0xEFFD, 0xC276, 0xEFFA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_72[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEFF9, 0xF26C, 0xEFFC, 0, 0xF26D, 0xC37A, 0xF26B, /* 0x00 */
- 0, 0, 0xF26A, 0, 0xF269, 0xC37B, 0, 0, /* 0x00 */
- 0xC46C, 0, 0, 0xF46A, 0xF46B, 0, 0, 0, /* 0x10 */
- 0, 0xF5DC, 0xF5DB, 0xC4EA, 0, 0xF5DA, 0xF6EC, 0xF6ED, /* 0x10 */
- 0, 0, 0xF7E6, 0xF8B1, 0, 0, 0xF8F6, 0xF9BC, /* 0x20 */
- 0xC679, 0xF9C6, 0xA4F6, 0, 0xAAA6, 0xAAA7, 0, 0, /* 0x20 */
- 0xACB8, 0, 0, 0, 0, 0xC0EF, 0xA4F7, 0, /* 0x30 */
- 0xAAA8, 0xAF52, 0xB7DD, 0xA4F8, 0, 0xB26E, 0xBAB8, 0xC962, /* 0x30 */
- 0, 0xCFB7, 0xD27D, 0, 0xE2C5, 0, 0xC0F0, 0xA4F9, /* 0x40 */
- 0xAAA9, 0xCFB8, 0xCFB9, 0xDA66, 0xB550, 0, 0, 0xDEA4, /* 0x40 */
- 0, 0, 0xB7DE, 0xE2C6, 0, 0, 0xBCF8, 0, /* 0x50 */
- 0xC37C, 0xA4FA, 0xDA67, 0xA4FB, 0, 0xA6C9, 0xCA42, 0xA6C8, /* 0x50 */
- 0xA865, 0xA864, 0xA863, 0xCB60, 0, 0, 0, 0xAAAA, /* 0x60 */
- 0, 0xAAAB, 0xCD5B, 0, 0xCFBA, 0, 0xCFBD, 0xACBA, /* 0x60 */
- 0xCFBB, 0, 0xACB9, 0xCFBC, 0xACBB, 0, 0xD2A2, 0xD2A1, /* 0x70 */
- 0xD27E, 0xAF53, 0, 0xD65D, 0xD65E, 0xB26F, 0xD65C, 0xD65F, /* 0x70 */
- 0xB552, 0xB270, 0, 0, 0xB551, 0xDA6B, 0xDA6A, 0, /* 0x80 */
- 0xDA68, 0xDA69, 0, 0xDA6C, 0xDEA6, 0xDEA5, 0xDEA9, 0, /* 0x80 */
- 0xDEA8, 0xDEA7, 0xBAB9, 0xE2C9, 0, 0xE2C8, 0xBABA, 0xE2C7, /* 0x90 */
- 0xE673, 0, 0xE674, 0xBCF9, 0, 0xEA59, 0xEA5A, 0, /* 0x90 */
- 0, 0xF272, 0xC37D, 0xF271, 0xF270, 0xF26E, 0xF26F, 0xC4EB, /* 0xA0 */
- 0xF46C, 0xF6EE, 0xF8F7, 0, 0xA4FC, 0, 0xC9A5, 0xA5C7, /* 0xA0 */
- 0xC9A6, 0, 0, 0, 0xCA43, 0xCA44, 0, 0, /* 0xB0 */
- 0, 0, 0xCB66, 0, 0, 0xCB62, 0, 0xCB61, /* 0xB0 */
- 0xAAAC, 0xCB65, 0xA867, 0xCB63, 0xA866, 0xCB67, 0xCB64, 0, /* 0xC0 */
- 0, 0xCD5F, 0xCFBE, 0xCD5D, 0xCD64, 0, 0xAAAD, 0, /* 0xC0 */
- 0xAAB0, 0xCD65, 0xCD61, 0, 0xCD62, 0, 0xCD5C, 0xAAAF, /* 0xD0 */
- 0xCD5E, 0xAAAE, 0xCD63, 0, 0xCD60, 0, 0, 0xCFC2, /* 0xD0 */
- 0xACBD, 0xACBE, 0, 0xCFC5, 0xCFBF, 0, 0xCFC4, 0, /* 0xE0 */
- 0xCFC0, 0xACBC, 0xCFC3, 0xCFC1, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0xD2A8, 0xD2A5, 0, 0xD2A7, 0xAF58, /* 0xF0 */
- 0xAF57, 0xAF55, 0xD2A4, 0xD2A9, 0xAF54, 0xAF56, 0xD2A6, 0xD667 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_73[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD2A3, 0xD2AA, 0, 0, 0, 0, 0, 0xD662, /* 0x00 */
- 0xD666, 0, 0xD665, 0xDA6E, 0xDA79, 0, 0, 0xD668, /* 0x00 */
- 0, 0xD663, 0xDA6D, 0xB274, 0, 0, 0xB273, 0xD661, /* 0x10 */
- 0xD664, 0xB275, 0, 0xB272, 0xB271, 0xD660, 0xD669, 0, /* 0x10 */
- 0, 0, 0xDA70, 0xDA77, 0, 0xB554, 0xDA76, 0xDA73, /* 0x20 */
- 0, 0xB556, 0, 0, 0, 0xDA75, 0, 0, /* 0x20 */
- 0xDA6F, 0xDA71, 0xDA74, 0xDA72, 0xB555, 0xDA78, 0xB553, 0xB7DF, /* 0x30 */
- 0, 0, 0xDEAD, 0xDEAC, 0xDEAA, 0, 0xB7E2, 0xB7E1, /* 0x30 */
- 0xDEAE, 0, 0xDEAB, 0xE2CA, 0xBABB, 0xB7E0, 0, 0, /* 0x40 */
- 0, 0xDEB0, 0xDEAF, 0, 0xE2CD, 0xE2CB, 0xBCFA, 0, /* 0x40 */
- 0xBABC, 0xE2CC, 0xE676, 0, 0, 0, 0, 0xBCFB, /* 0x50 */
- 0xE675, 0xE67E, 0xE67D, 0xE67B, 0, 0xE67A, 0xE677, 0xE678, /* 0x50 */
- 0xE679, 0xE67C, 0xE6A1, 0, 0, 0xEA5F, 0xEA5C, 0xEA5D, /* 0x60 */
- 0xBF57, 0xEA5B, 0xEA61, 0xEA60, 0xEA5E, 0, 0xED64, 0xED65, /* 0x60 */
- 0xC0F1, 0, 0xC0F2, 0xED63, 0, 0xC279, 0xEFFE, 0xC278, /* 0x70 */
- 0xC37E, 0, 0xC3A1, 0xC46D, 0xF46E, 0xF46D, 0xF5DD, 0xF6EF, /* 0x70 */
- 0xC57A, 0xF7E8, 0xF7E7, 0xF7E9, 0xA5C8, 0xCFC6, 0xAF59, 0xB276, /* 0x80 */
- 0xD66A, 0xA5C9, 0xC9A7, 0xA4FD, 0, 0, 0xCA45, 0, /* 0x80 */
- 0, 0, 0xCB6C, 0xCB6A, 0xCB6B, 0xCB68, 0xA868, 0xCB69, /* 0x90 */
- 0, 0, 0, 0, 0, 0xCD6D, 0, 0xAAB3, /* 0x90 */
- 0xCD6B, 0xCD67, 0xCD6A, 0, 0xCD66, 0xAAB5, 0xCD69, 0, /* 0xA0 */
- 0xAAB2, 0xAAB1, 0, 0xAAB4, 0xCD6C, 0xCD68, 0, 0, /* 0xA0 */
- 0, 0, 0xACC2, 0xACC5, 0xCFCE, 0xCFCD, 0xCFCC, 0xACBF, /* 0xB0 */
- 0xCFD5, 0xCFCB, 0, 0xACC1, 0xD2AF, 0, 0xCFD2, 0xCFD0, /* 0xB0 */
- 0xACC4, 0, 0xCFC8, 0xCFD3, 0, 0xCFCA, 0xCFD4, 0xCFD1, /* 0xC0 */
- 0xCFC9, 0, 0xACC0, 0xCFD6, 0xCFC7, 0xACC3, 0, 0, /* 0xC0 */
- 0, 0, 0xD2B4, 0xD2AB, 0xD2B6, 0, 0xD2AE, 0xD2B9, /* 0xD0 */
- 0xD2BA, 0xD2AC, 0xD2B8, 0xD2B5, 0xD2B3, 0xD2B7, 0xAF5F, 0, /* 0xD0 */
- 0xAF5D, 0, 0, 0xD2B1, 0, 0xD2AD, 0, 0xD2B0, /* 0xE0 */
- 0xD2BB, 0xD2B2, 0xAF5E, 0xCFCF, 0, 0xAF5A, 0xAF5C, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xD678, 0xD66D, 0xD66B, 0, /* 0xF0 */
- 0xD66C, 0, 0xD673, 0, 0xD674, 0xD670, 0xB27B, 0xD675 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_74[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD672, 0xD66F, 0, 0xB279, 0xD66E, 0xB277, 0xB27A, 0xD671, /* 0x00 */
- 0xD679, 0xAF5B, 0xB278, 0xD677, 0xD676, 0xB27C, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xDA7E, 0, /* 0x10 */
- 0, 0, 0xDAA1, 0xB560, 0, 0xDAA7, 0, 0, /* 0x10 */
- 0xDAA9, 0xDAA2, 0xB55A, 0xDAA6, 0xDAA5, 0xB55B, 0xB561, 0, /* 0x20 */
- 0xB562, 0xDAA8, 0xB558, 0xDA7D, 0xDA7B, 0xDAA3, 0xDA7A, 0xB55F, /* 0x20 */
- 0xDA7C, 0xDAA4, 0xDAAA, 0xB559, 0xB55E, 0xB55C, 0xB55D, 0, /* 0x30 */
- 0, 0, 0xB557, 0, 0, 0, 0, 0xB7E9, /* 0x30 */
- 0xDEB7, 0xB7E8, 0xDEBB, 0, 0xDEB1, 0, 0xDEBC, 0, /* 0x40 */
- 0, 0, 0xDEB2, 0xDEB3, 0, 0xDEBD, 0xDEBA, 0xDEB8, /* 0x40 */
- 0xDEB9, 0xDEB5, 0xDEB4, 0, 0xDEBE, 0xB7E5, 0, 0xDEB6, /* 0x50 */
- 0, 0xB7EA, 0xB7E4, 0xB7EB, 0xB7EC, 0, 0xB7E7, 0xB7E6, /* 0x50 */
- 0, 0, 0xE2CE, 0xBABE, 0xBABD, 0, 0, 0xE2D3, /* 0x60 */
- 0, 0xBCFC, 0xBABF, 0, 0, 0xBAC1, 0xE2D4, 0xB7E3, /* 0x60 */
- 0xBAC0, 0xE2D0, 0xE2D2, 0xE2CF, 0, 0xE2D1, 0, 0, /* 0x70 */
- 0, 0xE6AB, 0, 0, 0xE6AA, 0xE6A7, 0xBD40, 0xEA62, /* 0x70 */
- 0xBD41, 0xE6A6, 0, 0xBCFE, 0, 0xE6A8, 0xE6A5, 0xE6A2, /* 0x80 */
- 0xE6A9, 0xE6A3, 0xE6A4, 0xBCFD, 0, 0, 0, 0, /* 0x80 */
- 0xED69, 0, 0xEA66, 0, 0xEA65, 0xEA67, 0, 0xED66, /* 0x90 */
- 0xBF5A, 0, 0xEA63, 0, 0xBF58, 0, 0xBF5C, 0xBF5B, /* 0x90 */
- 0xEA64, 0xEA68, 0, 0xBF59, 0, 0xED6D, 0xC0F5, 0xC27A, /* 0xA0 */
- 0xC0F6, 0xC0F3, 0xED6A, 0xED68, 0, 0xED6B, 0, 0xED6E, /* 0xA0 */
- 0xC0F4, 0xED6C, 0xED67, 0, 0, 0xF042, 0xF045, 0xF275, /* 0xB0 */
- 0xF040, 0, 0xF46F, 0xF046, 0, 0xC3A2, 0xF044, 0xC27B, /* 0xB0 */
- 0xF041, 0xF043, 0xF047, 0xF276, 0, 0xF274, 0, 0, /* 0xC0 */
- 0, 0, 0xC3A3, 0xF273, 0, 0, 0, 0xC46E, /* 0xC0 */
- 0, 0, 0, 0, 0xC4ED, 0xF6F1, 0xC4EC, 0xF6F3, /* 0xD0 */
- 0xF6F0, 0xF6F2, 0xC5D0, 0xF8B2, 0xA5CA, 0xCD6E, 0xD2BC, 0xD2BD, /* 0xD0 */
- 0xB27D, 0xDEBF, 0xBF5D, 0xC3A4, 0xC57B, 0xF8B3, 0xA5CB, 0, /* 0xE0 */
- 0xCD6F, 0xA260, 0, 0, 0xCFD7, 0, 0xCFD8, 0, /* 0xE0 */
- 0, 0, 0, 0, 0xD2BE, 0xD2BF, 0xB27E, 0xB2A1, /* 0xF0 */
- 0, 0, 0, 0xDAAB, 0, 0xDEC2, 0xDEC1, 0xDEC0 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_75[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE2D5, 0, 0xE2D6, 0xE2D7, 0xBAC2, 0, 0, 0xE6AD, /* 0x00 */
- 0xE6AC, 0, 0, 0xEA69, 0xBF5E, 0xBF5F, 0, 0xED72, /* 0x00 */
- 0xED6F, 0xED70, 0xED71, 0xF049, 0xF048, 0xC27C, 0xF277, 0xF5DE, /* 0x10 */
- 0xA5CC, 0, 0xACC6, 0, 0xB2A2, 0xDEC3, 0, 0xA5CD, /* 0x10 */
- 0, 0xD2C0, 0xB2A3, 0, 0, 0xB563, 0xB564, 0, /* 0x20 */
- 0xA5CE, 0xA5CF, 0xCA46, 0xA86A, 0xA869, 0xACC7, 0xCFD9, 0xDAAC, /* 0x20 */
- 0xA5D0, 0xA5D1, 0xA5D2, 0xA5D3, 0, 0, 0, 0xA86B, /* 0x30 */
- 0xA86C, 0xCB6E, 0xCB6D, 0, 0, 0xAAB6, 0xCD72, 0xCD70, /* 0x30 */
- 0xCD71, 0, 0, 0, 0, 0, 0, 0xCFDA, /* 0x40 */
- 0xCFDB, 0, 0, 0xACCB, 0xACC9, 0, 0xACCA, 0xACC8, /* 0x40 */
- 0, 0, 0, 0, 0xAF60, 0, 0, 0, /* 0x50 */
- 0, 0xAF64, 0xAF63, 0xD2C1, 0xAF62, 0xAF61, 0, 0xD2C2, /* 0x50 */
- 0, 0, 0xB2A6, 0xD67B, 0xD67A, 0xB2A4, 0xB2A5, 0, /* 0x60 */
- 0, 0, 0xB566, 0xB565, 0xDAAE, 0, 0, 0xDAAD, /* 0x60 */
- 0xB2A7, 0, 0, 0, 0, 0, 0xB7ED, 0xDEC5, /* 0x70 */
- 0xB7EE, 0xDEC4, 0, 0, 0, 0xE2D8, 0xE6AE, 0xBD42, /* 0x70 */
- 0xEA6A, 0, 0, 0, 0xED73, 0, 0xC3A6, 0xC3A5, /* 0x80 */
- 0, 0, 0xC57C, 0xA5D4, 0xCD73, 0, 0, 0xB2A8, /* 0x80 */
- 0xE2D9, 0xBAC3, 0, 0, 0xCB6F, 0xCB70, 0, 0, /* 0x90 */
- 0xCD74, 0xAAB8, 0xAAB9, 0, 0, 0xAAB7, 0, 0, /* 0x90 */
- 0, 0, 0xACCF, 0xACD0, 0xACCD, 0xACCE, 0, 0xCFDC, /* 0xA0 */
- 0, 0, 0xCFDD, 0xACCC, 0, 0, 0, 0, /* 0xA0 */
- 0xD2C3, 0, 0xAF68, 0xAF69, 0, 0xB2AB, 0xD2C9, 0, /* 0xB0 */
- 0xAF6E, 0xAF6C, 0xD2CA, 0xD2C5, 0xAF6B, 0xAF6A, 0xAF65, 0xD2C8, /* 0xB0 */
- 0xD2C7, 0xD2C4, 0xAF6D, 0, 0xD2C6, 0xAF66, 0, 0xAF67, /* 0xC0 */
- 0, 0, 0xB2AC, 0xD6A1, 0xD6A2, 0xB2AD, 0xD67C, 0xD67E, /* 0xC0 */
- 0xD6A4, 0xD6A3, 0xD67D, 0, 0xB2A9, 0xB2AA, 0, 0xDAB6, /* 0xD0 */
- 0xB56B, 0xB56A, 0xDAB0, 0xB568, 0, 0xDAB3, 0xB56C, 0xDAB4, /* 0xD0 */
- 0xB56D, 0xDAB1, 0xB567, 0xB569, 0xDAB5, 0, 0xDAB2, 0xDAAF, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xDED2, 0, 0xDEC7, /* 0xE0 */
- 0xB7F0, 0xB7F3, 0xB7F2, 0xB7F7, 0xB7F6, 0xDED3, 0xDED1, 0xDECA, /* 0xF0 */
- 0xDECE, 0xDECD, 0xB7F4, 0xDED0, 0xDECC, 0xDED4, 0xDECB, 0xB7F5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_76[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB7EF, 0xB7F1, 0, 0xDEC9, 0, 0, 0, 0, /* 0x00 */
- 0xE2DB, 0xBAC7, 0xE2DF, 0xBAC6, 0xE2DC, 0xBAC5, 0, 0xDEC8, /* 0x00 */
- 0xDECF, 0xE2DE, 0, 0xBAC8, 0xE2E0, 0xE2DD, 0xE2DA, 0, /* 0x10 */
- 0, 0xE6B1, 0xE6B5, 0xE6B7, 0xE6B3, 0xE6B2, 0xE6B0, 0xBD45, /* 0x10 */
- 0xBD43, 0xBD48, 0xBD49, 0xE6B4, 0xBD46, 0xE6AF, 0xBD47, 0xBAC4, /* 0x20 */
- 0xE6B6, 0xBD44, 0, 0, 0, 0xEA6C, 0, 0xEA6B, /* 0x20 */
- 0xEA73, 0xEA6D, 0xEA72, 0xEA6F, 0xBF60, 0xEA71, 0, 0, /* 0x30 */
- 0xBF61, 0, 0xBF62, 0, 0xEA70, 0xEA6E, 0, 0, /* 0x30 */
- 0, 0, 0xC0F8, 0xED74, 0, 0, 0xC0F7, 0xED77, /* 0x40 */
- 0xED75, 0xED76, 0, 0, 0xC0F9, 0, 0, 0, /* 0x40 */
- 0xF04D, 0, 0xC2A1, 0xF04E, 0, 0, 0xC27D, 0xF04F, /* 0x50 */
- 0xC27E, 0xF04C, 0xF050, 0, 0xF04A, 0, 0, 0xC3A7, /* 0x50 */
- 0xF278, 0xC3A8, 0xC46F, 0, 0xF04B, 0xC470, 0, 0, /* 0x60 */
- 0, 0xC4EE, 0xF5DF, 0, 0xC57E, 0xF6F4, 0xC57D, 0, /* 0x60 */
- 0xF7EA, 0xC5F5, 0xC5F6, 0, 0, 0xF9CC, 0, 0, /* 0x70 */
- 0xACD1, 0xCFDE, 0, 0xB56E, 0xB56F, 0xA5D5, 0xA6CA, 0xCA47, /* 0x70 */
- 0, 0xCB71, 0xA86D, 0, 0xAABA, 0, 0xACD2, 0xACD3, /* 0x80 */
- 0xACD4, 0xD6A6, 0xD2CB, 0xAF6F, 0, 0, 0xB2AE, 0xD6A5, /* 0x80 */
- 0, 0, 0xDAB8, 0xB571, 0, 0xDAB7, 0xB570, 0, /* 0x90 */
- 0, 0xDED5, 0xBD4A, 0xE6BB, 0xE6B8, 0xE6B9, 0xE6BA, 0, /* 0x90 */
- 0, 0, 0, 0, 0xED78, 0, 0xF051, 0, /* 0xA0 */
- 0, 0, 0xF471, 0xF470, 0, 0xF6F5, 0xA5D6, 0xCD75, /* 0xA0 */
- 0xAF70, 0, 0, 0, 0xB572, 0xDED6, 0, 0, /* 0xB0 */
- 0xE2E1, 0, 0xBD4B, 0xEA74, 0, 0xF052, 0xF472, 0xA5D7, /* 0xB0 */
- 0, 0, 0xAABB, 0xACD7, 0xCFDF, 0xACD8, 0xACD6, 0, /* 0xC0 */
- 0xACD5, 0xD2CC, 0xAF71, 0, 0, 0xAF72, 0xAF73, 0, /* 0xC0 */
- 0, 0, 0xB2B0, 0xD6A7, 0xB2AF, 0, 0, 0, /* 0xD0 */
- 0, 0, 0xDAB9, 0xB2B1, 0xB573, 0xDED7, 0xB7F8, 0xB7F9, /* 0xD0 */
- 0, 0xBAC9, 0, 0xBACA, 0xBD4C, 0xBF64, 0xEA75, 0xBF63, /* 0xE0 */
- 0, 0xED79, 0xC0FA, 0, 0xF053, 0xF473, 0xA5D8, 0xA86E, /* 0xE0 */
- 0xCD78, 0xCD77, 0xAABC, 0xCD76, 0xAABD, 0xCD79, 0, 0xCFE5, /* 0xF0 */
- 0xACDB, 0xACDA, 0xCFE7, 0xCFE6, 0xACDF, 0, 0xACDE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_77[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xACD9, 0, 0xCFE1, 0xCFE2, 0xCFE3, 0, 0xACE0, /* 0x00 */
- 0xCFE0, 0xACDC, 0xCFE4, 0xACDD, 0, 0, 0, 0, /* 0x00 */
- 0xD2CF, 0xD2D3, 0xD2D1, 0xD2D0, 0, 0xD2D4, 0, 0, /* 0x10 */
- 0, 0xD2D5, 0xD2D6, 0xD2CE, 0, 0xD2CD, 0, 0xAF75, /* 0x10 */
- 0xAF76, 0, 0xD2D7, 0xD2D2, 0, 0xD6B0, 0, 0xD2D8, /* 0x20 */
- 0xAF77, 0xAF74, 0, 0, 0, 0xD6AA, 0, 0xD6A9, /* 0x20 */
- 0, 0xD6AB, 0xD6AC, 0xD6AE, 0xD6AD, 0xD6B2, 0xB2B5, 0xB2B2, /* 0x30 */
- 0xB2B6, 0xD6A8, 0xB2B7, 0xD6B1, 0xB2B4, 0xD6AF, 0xB2B3, 0, /* 0x30 */
- 0, 0, 0, 0, 0xDABC, 0xDABE, 0xDABA, 0xDABB, /* 0x40 */
- 0, 0, 0xDABF, 0xDAC1, 0xDAC2, 0xDABD, 0xDAC0, 0xB574, /* 0x40 */
- 0, 0, 0xDEDB, 0, 0xDEE0, 0xDED8, 0xDEDC, 0, /* 0x50 */
- 0, 0xDEE1, 0xDEDD, 0xB7FA, 0xB843, 0, 0xB7FD, 0xDED9, /* 0x50 */
- 0xDEDA, 0xBACE, 0xB846, 0xB7FE, 0, 0xB844, 0xB7FC, 0xDEDF, /* 0x60 */
- 0xB845, 0xDEDE, 0xB841, 0xB7FB, 0xB842, 0xDEE2, 0xE2E6, 0xE2E8, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xB840, 0, 0, 0xE2E3, 0xBACC, 0xE2E9, 0xBACD, /* 0x70 */
- 0xE2E7, 0xE2E2, 0xE2E5, 0xE2EA, 0xBACB, 0xE2E4, 0, 0xBD4E, /* 0x80 */
- 0xE6BF, 0xE6BE, 0, 0xBD51, 0xBD4F, 0xE6BC, 0xBD4D, 0xE6BD, /* 0x80 */
- 0, 0xBD50, 0, 0, 0, 0xEA7D, 0, 0xEAA1, /* 0x90 */
- 0, 0xEA7E, 0xEA76, 0xEA7A, 0xEA79, 0xEA77, 0xBF66, 0xBF67, /* 0x90 */
- 0xBF65, 0xEA78, 0xEA7B, 0xEA7C, 0, 0xBF68, 0, 0xC140, /* 0xA0 */
- 0xEDA3, 0, 0xC0FC, 0xED7B, 0xC0FE, 0xC141, 0, 0, /* 0xA0 */
- 0xC0FD, 0xEDA2, 0xED7C, 0xC0FB, 0xEDA1, 0xED7A, 0xED7E, 0xED7D, /* 0xB0 */
- 0, 0, 0xF055, 0xC2A4, 0xC2A5, 0xC2A2, 0, 0xC2A3, /* 0xB0 */
- 0, 0, 0xF054, 0, 0xF27B, 0, 0, 0xC3A9, /* 0xC0 */
- 0, 0xF279, 0xF27A, 0, 0xF474, 0xF477, 0xF475, 0xF476, /* 0xC0 */
- 0xF5E0, 0, 0, 0xC4EF, 0xF7EB, 0xF8B4, 0, 0xC5F7, /* 0xD0 */
- 0xF8F8, 0xF8F9, 0xC666, 0xA5D9, 0xACE1, 0, 0xDAC3, 0, /* 0xD0 */
- 0xDEE3, 0, 0xA5DA, 0xA86F, 0, 0xAABE, 0, 0xCFE8, /* 0xE0 */
- 0xCFE9, 0xAF78, 0, 0, 0xDAC4, 0xB575, 0xB847, 0xC142, /* 0xE0 */
- 0xEDA4, 0xF27C, 0xF478, 0xA5DB, 0, 0, 0, 0xCDA1, /* 0xF0 */
- 0xCD7A, 0xCD7C, 0xCD7E, 0xCD7D, 0xCD7B, 0xAABF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_78[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xACE2, 0xCFF2, 0, 0xCFED, 0xCFEA, 0, /* 0x00 */
- 0, 0xCFF1, 0, 0, 0xACE4, 0xACE5, 0xCFF0, 0xCFEF, /* 0x00 */
- 0xCFEE, 0xCFEB, 0xCFEC, 0xCFF3, 0xACE3, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0xAF7C, 0, 0xAFA4, /* 0x10 */
- 0xAFA3, 0xD2E1, 0xD2DB, 0xD2D9, 0, 0xAFA1, 0xD6B9, 0xAF7A, /* 0x20 */
- 0xD2DE, 0xD2E2, 0xD2E4, 0xD2E0, 0xD2DA, 0xAFA2, 0xD2DF, 0xD2DD, /* 0x20 */
- 0xAF79, 0xD2E5, 0xAFA5, 0xD2E3, 0xAF7D, 0xD2DC, 0, 0xAF7E, /* 0x30 */
- 0xAF7B, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xB2B9, 0, 0xD6BA, 0, 0, /* 0x40 */
- 0xD6B3, 0xD6B5, 0xD6B7, 0, 0xD6B8, 0xD6B6, 0xB2BA, 0, /* 0x40 */
- 0xD6BB, 0, 0xD6B4, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0xDAC8, 0xB576, 0xDAD0, 0, /* 0x50 */
- 0xDAC5, 0, 0xDAD1, 0, 0xDAC6, 0xDAC7, 0, 0, /* 0x60 */
- 0xDACF, 0xDACE, 0xDACB, 0xB2B8, 0xB577, 0xDAC9, 0xDACC, 0xB578, /* 0x60 */
- 0xDACD, 0xDACA, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0xDEEE, 0, 0xDEF2, 0xB84E, 0, 0xE2F0, 0xB851, /* 0x70 */
- 0xDEF0, 0xF9D6, 0, 0xDEED, 0xDEE8, 0xDEEA, 0xDEEB, 0xDEE4, /* 0x80 */
- 0, 0xB84D, 0, 0, 0xB84C, 0, 0xB848, 0xDEE7, /* 0x80 */
- 0, 0xB84F, 0, 0xB850, 0xDEE6, 0xDEE9, 0xDEF1, 0xB84A, /* 0x90 */
- 0xB84B, 0xDEEF, 0xDEE5, 0, 0, 0, 0xE2F2, 0xBAD0, /* 0x90 */
- 0xE2F4, 0xDEEC, 0xE2F6, 0xBAD4, 0xE2F7, 0xE2F3, 0, 0xBAD1, /* 0xA0 */
- 0xE2EF, 0xBAD3, 0xE2EC, 0xE2F1, 0xE2F5, 0xE2EE, 0, 0, /* 0xA0 */
- 0xB849, 0, 0xE2EB, 0xBAD2, 0xE2ED, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xBD54, 0xE6C1, 0xBD58, 0, 0xBD56, 0, /* 0xB0 */
- 0, 0xBACF, 0, 0xE6C8, 0xE6C9, 0xBD53, 0, 0, /* 0xC0 */
- 0xE6C7, 0xE6CA, 0xBD55, 0xBD52, 0xE6C3, 0xE6C0, 0xE6C5, 0xE6C2, /* 0xC0 */
- 0xBD59, 0xE6C4, 0, 0, 0xE6C6, 0xBD57, 0, 0, /* 0xD0 */
- 0, 0, 0xBF6A, 0xEAA8, 0, 0xEAA2, 0xEAA6, 0xEAAC, /* 0xD0 */
- 0xEAAD, 0xEAA9, 0xEAAA, 0xEAA7, 0, 0xEAA4, 0, 0xBF6C, /* 0xE0 */
- 0xBF69, 0xEAA3, 0xEAA5, 0, 0xBF6B, 0xEAAB, 0, 0xC146, /* 0xE0 */
- 0, 0, 0xEDAA, 0xEDA5, 0xC145, 0, 0, 0xC143, /* 0xF0 */
- 0, 0xEDAC, 0xC144, 0xEDA8, 0xEDA9, 0xEDA6, 0xEDAD, 0xF056 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_79[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC147, 0xEDA7, 0, 0xEDAE, 0xEDAB, 0, 0, /* 0x00 */
- 0, 0xF05A, 0, 0, 0xF057, 0, 0xC2A6, 0, /* 0x00 */
- 0xF05B, 0xF05D, 0xF05C, 0xF058, 0xF059, 0, 0, 0xF2A3, /* 0x10 */
- 0, 0xC3AA, 0, 0xF27E, 0xF2A2, 0xF27D, 0xF2A4, 0, /* 0x10 */
- 0, 0xF2A1, 0, 0xF47A, 0xF47D, 0xF479, 0xC471, 0xF47B, /* 0x20 */
- 0xF47C, 0xF47E, 0xC472, 0xC474, 0xC473, 0xF5E1, 0, 0xF5E3, /* 0x20 */
- 0, 0xF5E2, 0, 0, 0, 0xF6F6, 0, 0, /* 0x30 */
- 0xF8B5, 0xF8FA, 0xA5DC, 0, 0, 0xCB72, 0xAAC0, 0xCDA3, /* 0x30 */
- 0xAAC1, 0xAAC2, 0xCDA2, 0, 0xCFF8, 0xCFF7, 0xACE6, 0xACE9, /* 0x40 */
- 0xACE8, 0xACE7, 0xCFF4, 0xCFF6, 0xCFF5, 0, 0, 0xD2E8, /* 0x40 */
- 0xAFA7, 0xD2EC, 0xD2EB, 0xD2EA, 0xD2E6, 0xAFA6, 0xAFAA, 0xAFAD, /* 0x50 */
- 0, 0, 0xAFAE, 0xD2E7, 0xD2E9, 0xAFAC, 0xAFAB, 0xAFA9, /* 0x50 */
- 0xAFA8, 0xD6C2, 0, 0xD6C0, 0xD6BC, 0xB2BB, 0, 0xD6BD, /* 0x60 */
- 0xB2BC, 0xD6BE, 0xD6BF, 0xD6C1, 0, 0xB2BD, 0, 0, /* 0x60 */
- 0xDAD5, 0, 0xDAD4, 0xDAD3, 0xDAD2, 0, 0, 0, /* 0x70 */
- 0, 0xDEF6, 0xB852, 0, 0xDEF3, 0xDEF5, 0, 0xB853, /* 0x70 */
- 0, 0xB854, 0xDEF4, 0, 0, 0, 0, 0, /* 0x80 */
- 0xE341, 0, 0xE2F9, 0xE2FA, 0, 0xBAD7, 0xBAD5, 0xBAD6, /* 0x80 */
- 0xE343, 0, 0xE342, 0xE2FE, 0xE2FD, 0xE2FC, 0xE2FB, 0xE340, /* 0x90 */
- 0xE2F8, 0, 0xE6CB, 0xE6D0, 0xE6CE, 0, 0, 0, /* 0x90 */
- 0xE6CD, 0xE6CC, 0xE6CF, 0, 0xEAAE, 0, 0xBF6D, 0xC148, /* 0xA0 */
- 0xEDB0, 0, 0xC149, 0xEDAF, 0xF05F, 0xF05E, 0xC2A7, 0, /* 0xA0 */
- 0xF2A5, 0xC3AB, 0xF4A1, 0xC5A1, 0xF6F7, 0, 0xF8B7, 0xF8B6, /* 0xB0 */
- 0xC9A8, 0xACEA, 0xACEB, 0xD6C3, 0, 0xB856, 0xA5DD, 0xA872, /* 0xB0 */
- 0xA871, 0xA870, 0, 0, 0, 0xCDA4, 0, 0, /* 0xC0 */
- 0xAAC4, 0xAAC3, 0, 0xACEE, 0, 0xCFFA, 0xCFFD, 0xCFFB, /* 0xC0 */
- 0, 0xACEC, 0xACED, 0, 0, 0xCFF9, 0xCFFC, 0, /* 0xD0 */
- 0xAFB5, 0, 0, 0, 0xD2F3, 0xD2F5, 0xD2F4, 0xAFB2, /* 0xD0 */
- 0xD2EF, 0, 0, 0xAFB0, 0xAFAF, 0, 0xAFB3, 0xAFB1, /* 0xE0 */
- 0, 0xAFB4, 0xD2F2, 0xD2ED, 0xD2EE, 0xD2F1, 0xD2F0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xD6C6, 0xD6C7, /* 0xF0 */
- 0xD6C5, 0, 0xD6C4, 0xB2BE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_7A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB57D, 0, 0xDAD6, 0xDAD8, 0xDADA, 0xB57C, 0, 0, /* 0x00 */
- 0xB57A, 0, 0xDAD7, 0xB57B, 0xDAD9, 0xB579, 0, 0, /* 0x00 */
- 0xDF41, 0xDEF7, 0xDEFA, 0xDEFE, 0xB85A, 0xDEFC, 0, 0xDEFB, /* 0x10 */
- 0xDEF8, 0xDEF9, 0xB858, 0xDF40, 0xB857, 0, 0xB85C, 0xB85B, /* 0x10 */
- 0xB859, 0, 0xDEFD, 0, 0, 0, 0xE349, 0, /* 0x20 */
- 0xE348, 0, 0, 0xE344, 0, 0, 0xBAD8, 0xE347, /* 0x20 */
- 0xE346, 0xBAD9, 0, 0, 0, 0, 0, 0xBD5E, /* 0x30 */
- 0, 0xE6D2, 0, 0xBD5F, 0xBD5B, 0xBD5D, 0, 0xBD5A, /* 0x30 */
- 0xBD5C, 0, 0, 0, 0xEAAF, 0, 0xBF70, 0xEAB1, /* 0x40 */
- 0xEAB0, 0, 0xE345, 0xBF72, 0xBF71, 0xBF6E, 0xBF6F, 0, /* 0x40 */
- 0, 0, 0, 0, 0xEDB5, 0, 0xEDB3, 0xC14A, /* 0x50 */
- 0xEDB4, 0, 0xEDB6, 0xEDB2, 0xEDB1, 0, 0, 0xF060, /* 0x50 */
- 0xC2AA, 0xC2A8, 0xC2A9, 0, 0, 0, 0, 0xF2A6, /* 0x60 */
- 0xF2A7, 0xC3AD, 0, 0xC3AC, 0xF4A3, 0xF4A4, 0xF4A2, 0, /* 0x60 */
- 0xF6F8, 0xF6F9, 0, 0, 0xA5DE, 0xCA48, 0xA873, 0, /* 0x70 */
- 0xCDA5, 0xAAC6, 0xAAC5, 0xCDA6, 0, 0, 0xD040, 0xACEF, /* 0x70 */
- 0xCFFE, 0xACF0, 0, 0, 0xAFB6, 0xD2F8, 0xD2F6, 0xD2FC, /* 0x80 */
- 0xAFB7, 0xD2F7, 0xD2FB, 0xD2F9, 0xD2FA, 0, 0, 0xD6C8, /* 0x80 */
- 0xD6CA, 0, 0xB2BF, 0, 0xD6C9, 0xB2C0, 0xB5A2, 0xB5A1, /* 0x90 */
- 0xB57E, 0xDADB, 0, 0, 0, 0, 0xDF44, 0xB85D, /* 0x90 */
- 0xB85E, 0, 0xDF43, 0xDF42, 0, 0, 0, 0, /* 0xA0 */
- 0xE34A, 0xBADB, 0xBADA, 0xE34B, 0xE34C, 0, 0xBD61, 0xBD60, /* 0xA0 */
- 0, 0xEAB5, 0xE6D3, 0xE6D5, 0xE6D4, 0xEAB4, 0xEAB2, 0xEAB6, /* 0xB0 */
- 0xEAB3, 0, 0xBF73, 0, 0, 0, 0xEDB7, 0xC14B, /* 0xB0 */
- 0xEDB8, 0xEDB9, 0, 0, 0xC2AB, 0xC2AC, 0, 0xC475, /* 0xC0 */
- 0, 0, 0xC5D1, 0xA5DF, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xD041, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xD2FD, 0xAFB8, 0, 0, 0, 0, 0, 0xB3BA, /* 0xD0 */
- 0xB3B9, 0, 0, 0xB5A4, 0xDADD, 0xB5A3, 0xDADC, 0, /* 0xE0 */
- 0, 0, 0, 0xDF45, 0, 0xBADC, 0xE34D, 0xBADD, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0xC476, 0xF4A5, /* 0xF0 */
- 0, 0xA6CB, 0xAAC7, 0xCDA7, 0, 0xACF2, 0, 0xACF1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_7B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD042, 0xD043, 0, 0, 0xD340, 0xD342, 0xAFB9, 0, /* 0x00 */
- 0xD344, 0xD347, 0xD345, 0, 0, 0, 0xD346, 0xD343, /* 0x00 */
- 0xD2FE, 0xAFBA, 0xD348, 0xD341, 0, 0, 0, 0, /* 0x10 */
- 0xD6D3, 0xB2C6, 0xD6DC, 0xB2C3, 0, 0xD6D5, 0xB2C7, 0, /* 0x10 */
- 0xB2C1, 0, 0xD6D0, 0xD6DD, 0xD6D1, 0xD6CE, 0xB2C5, 0, /* 0x20 */
- 0xB2C2, 0, 0xD6D4, 0xD6D7, 0xB2C4, 0xD6D8, 0xB2C8, 0xD6D9, /* 0x20 */
- 0xD6CF, 0xD6D6, 0xD6DA, 0xD6D2, 0xD6CD, 0xD6CB, 0, 0, /* 0x30 */
- 0xD6DB, 0, 0, 0xDADF, 0, 0, 0, 0, /* 0x30 */
- 0xDAE4, 0, 0, 0, 0xDAE0, 0xDAE6, 0xB5A7, 0xD6CC, /* 0x40 */
- 0xDAE1, 0xB5A5, 0xDADE, 0xB5AC, 0xDAE2, 0xB5AB, 0xDAE3, 0xB5AD, /* 0x40 */
- 0xB5A8, 0xB5AE, 0xB5A9, 0, 0xB5AA, 0, 0xB5A6, 0, /* 0x50 */
- 0xDAE5, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0xB861, 0xDF50, 0, 0xDF53, 0xDF47, 0xDF4C, 0xDF46, 0xB863, /* 0x60 */
- 0, 0xDF4A, 0, 0, 0, 0xDF48, 0xB862, 0, /* 0x60 */
- 0xDF4F, 0xDF4E, 0xDF4B, 0xDF4D, 0xDF49, 0xBAE1, 0xDF52, 0xB85F, /* 0x70 */
- 0xDF51, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0xE35D, 0, 0xBAE8, 0xE358, 0, 0xBAE7, /* 0x80 */
- 0xE34E, 0, 0xE350, 0xBAE0, 0xE355, 0xE354, 0xE357, 0xBAE5, /* 0x80 */
- 0xE352, 0xE351, 0, 0, 0xBAE4, 0xBADF, 0xE353, 0xBAE2, /* 0x90 */
- 0xE359, 0xE35B, 0, 0xE356, 0xE34F, 0xBAE3, 0, 0, /* 0x90 */
- 0xBD69, 0xBADE, 0, 0, 0xE35C, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0xE6D9, 0xBD62, 0, 0xE6DB, /* 0xA0 */
- 0, 0xBD63, 0, 0, 0xBD65, 0xE6DE, 0, 0xE6D6, /* 0xB0 */
- 0xBAE6, 0xE6DC, 0, 0, 0, 0, 0xE6D8, 0, /* 0xB0 */
- 0xB860, 0xBD68, 0, 0, 0xBD64, 0, 0xBD66, 0xBD67, /* 0xC0 */
- 0, 0xBF76, 0xE6DD, 0xE6D7, 0xBD6A, 0, 0xE6DA, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xEAC0, 0xEABB, 0, 0, /* 0xD0 */
- 0xEAC5, 0xBF74, 0xEABD, 0xBF78, 0xEAC3, 0xEABA, 0xEAB7, 0xEAC6, /* 0xD0 */
- 0xC151, 0xBF79, 0xEAC2, 0xEAB8, 0xBF77, 0xEABC, 0xBF7B, 0xEAB9, /* 0xE0 */
- 0xEABE, 0xBF7A, 0xEAC1, 0xEAC4, 0, 0, 0, 0, /* 0xE0 */
- 0xEDCB, 0xEDCC, 0xEDBC, 0xEDC3, 0xEDC1, 0, 0, 0xC14F, /* 0xF0 */
- 0xEDC8, 0xEABF, 0, 0xEDBF, 0, 0xEDC9, 0xC14E, 0xEDBE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_7C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEDBD, 0xEDC7, 0xEDC4, 0xEDC6, 0, 0xEDBA, 0xEDCA, 0xC14C, /* 0x00 */
- 0, 0xEDC5, 0xEDCE, 0xEDC2, 0xC150, 0xC14D, 0xEDC0, 0xEDBB, /* 0x00 */
- 0xEDCD, 0xBF75, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0, 0xF063, 0, 0, 0xF061, 0xF067, 0xC2B0, 0xF065, /* 0x10 */
- 0xF064, 0xC2B2, 0xF06A, 0xC2B1, 0, 0xF06B, 0xF068, 0xC2AE, /* 0x20 */
- 0xF069, 0xF062, 0xC2AF, 0xC2AD, 0xF2AB, 0xF066, 0, 0, /* 0x20 */
- 0xF06C, 0, 0, 0xF2A8, 0, 0, 0, 0xC3B2, /* 0x30 */
- 0xC3B0, 0xF2AA, 0, 0xF2AC, 0xF2A9, 0xC3B1, 0xC3AE, 0xC3AF, /* 0x30 */
- 0xC3B3, 0, 0, 0xC478, 0, 0xF4AA, 0, 0xF4A9, /* 0x40 */
- 0xF4A7, 0xF4A6, 0xF4A8, 0, 0xC477, 0xC479, 0, 0, /* 0x40 */
- 0xC4F0, 0, 0, 0xF5E5, 0xF5E4, 0, 0, 0xF6FA, /* 0x50 */
- 0, 0xF6FC, 0xF6FE, 0xF6FD, 0xF6FB, 0, 0, 0xC5A3, /* 0x50 */
- 0xC5A2, 0, 0, 0xC5D3, 0xC5D2, 0xC5D4, 0xF7ED, 0xF7EC, /* 0x60 */
- 0, 0xF8FB, 0xF8B8, 0xF8FC, 0xC658, 0, 0xC659, 0xF96D, /* 0x60 */
- 0, 0, 0xC67E, 0xA6CC, 0, 0xCDA8, 0, 0, /* 0x70 */
- 0xD045, 0xD046, 0xD044, 0, 0, 0xACF3, 0, 0xD047, /* 0x70 */
- 0xD048, 0xD049, 0, 0, 0xD349, 0xD34F, 0, 0, /* 0x80 */
- 0xD34D, 0xAFBB, 0xD34B, 0, 0xD34C, 0xD34E, 0, 0, /* 0x80 */
- 0, 0xD34A, 0xB2C9, 0, 0xD6DE, 0xB2CB, 0xD6E0, 0xB2CA, /* 0x90 */
- 0xD6DF, 0, 0, 0, 0, 0, 0xDAE8, 0xB5AF, /* 0x90 */
- 0, 0xDAEA, 0xDAE7, 0xD6E1, 0, 0xB5B0, 0, 0xF9DB, /* 0xA0 */
- 0xDAE9, 0, 0, 0, 0, 0, 0, 0xDF56, /* 0xA0 */
- 0, 0xB864, 0xDF54, 0xB865, 0xDF55, 0xB866, 0, 0, /* 0xB0 */
- 0, 0xBAE9, 0xE361, 0xE35E, 0xE360, 0xBAEA, 0xBAEB, 0xE35F, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xE6DF, 0, 0, /* 0xC0 */
- 0xE6E0, 0, 0xBD6B, 0xE6E2, 0xE6E1, 0, 0xA261, 0, /* 0xC0 */
- 0xEACA, 0xEACB, 0xEAC7, 0, 0xEAC8, 0xBF7C, 0xBF7D, 0xEAC9, /* 0xD0 */
- 0, 0xC157, 0, 0, 0xC153, 0xC158, 0xC154, 0xC156, /* 0xD0 */
- 0xC152, 0, 0xC155, 0, 0, 0, 0, 0xC2B3, /* 0xE0 */
- 0xEDCF, 0, 0xF2AE, 0, 0xF2AD, 0, 0xF4AB, 0xC47A, /* 0xE0 */
- 0xC47B, 0xF741, 0xF5E6, 0, 0xF740, 0, 0xF8FD, 0xF9A4, /* 0xF0 */
- 0xA6CD, 0, 0, 0xA874, 0, 0xCDA9, 0xAAC8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_7D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xACF6, 0xD04C, 0xACF4, 0xD04A, 0xACF9, 0xACF5, 0xACFA, 0xACF8, /* 0x00 */
- 0xD04B, 0xACF7, 0xAFBF, 0xAFBE, 0xD35A, 0xAFC7, 0xD353, 0xD359, /* 0x00 */
- 0xAFC3, 0xD352, 0xD358, 0xD356, 0xAFC2, 0xAFC4, 0xD355, 0xAFBD, /* 0x10 */
- 0xD354, 0xAFC8, 0xAFC5, 0xAFC9, 0xAFC6, 0xD351, 0xD350, 0xD357, /* 0x10 */
- 0xAFC0, 0xAFBC, 0xAFC1, 0, 0, 0, 0, 0, /* 0x20 */
- 0xD6F0, 0xD6E9, 0, 0xB5B5, 0xD6E8, 0, 0xB2CF, 0xB2D6, /* 0x20 */
- 0xB2D3, 0xB2D9, 0xB2D8, 0xB2D4, 0, 0xD6E2, 0xD6E5, 0, /* 0x30 */
- 0xD6E4, 0xB2D0, 0xD6E6, 0xD6EF, 0xB2D1, 0xD6E3, 0xD6EC, 0xD6ED, /* 0x30 */
- 0xB2D2, 0xD6EA, 0xB2D7, 0xB2CD, 0xB2D5, 0xD6E7, 0xB2CC, 0xD6EB, /* 0x40 */
- 0, 0, 0xD6EE, 0, 0, 0, 0xDAFB, 0xDAF2, /* 0x40 */
- 0xB5B2, 0xDAF9, 0xDAF6, 0xDAEE, 0xDAF7, 0xB5B4, 0xDAEF, 0, /* 0x50 */
- 0xDAEB, 0, 0, 0xB86C, 0xDAF4, 0, 0xB5B1, 0xDAFA, /* 0x50 */
- 0, 0xB5B8, 0xB5BA, 0xDAED, 0, 0, 0xB5B9, 0xDAF0, /* 0x60 */
- 0xB5B3, 0xDAF8, 0xDAF1, 0xDAF5, 0, 0xDAF3, 0xB5B6, 0xDAEC, /* 0x60 */
- 0xB5BB, 0xB2CE, 0xB5B7, 0xB5BC, 0, 0, 0, 0, /* 0x70 */
- 0, 0xB868, 0xDF5D, 0xDF5F, 0xDF61, 0xDF65, 0, 0xDF5B, /* 0x70 */
- 0xDF59, 0xB86A, 0, 0xDF60, 0xDF64, 0xDF5C, 0xDF58, 0, /* 0x80 */
- 0xDF57, 0, 0, 0, 0xDF62, 0xDF5A, 0xDF5E, 0xB86B, /* 0x80 */
- 0, 0xB869, 0xDF66, 0xB867, 0xDF63, 0, 0xE372, 0, /* 0x90 */
- 0, 0, 0, 0, 0xBAEE, 0xE36A, 0xBD78, 0xE374, /* 0x90 */
- 0xBAF1, 0xE378, 0xBAF7, 0xE365, 0, 0, 0xE375, 0xE362, /* 0xA0 */
- 0, 0xE377, 0xE366, 0, 0xBAFE, 0xBAFB, 0xE376, 0xE370, /* 0xA0 */
- 0xBAED, 0xBAF5, 0xBAF4, 0, 0xBAF3, 0xBAF9, 0, 0xE363, /* 0xB0 */
- 0xBAFA, 0xE371, 0xBAF6, 0xBAEC, 0xE373, 0xBAEF, 0xBAF0, 0xBAF8, /* 0xB0 */
- 0xE368, 0xE367, 0xE364, 0, 0xE36C, 0xE369, 0xE36D, 0xBAFD, /* 0xC0 */
- 0, 0xE379, 0xBAF2, 0xE36E, 0xE36F, 0, 0xE36B, 0, /* 0xC0 */
- 0, 0, 0xBAFC, 0, 0, 0, 0, 0xE6E7, /* 0xD0 */
- 0xBD70, 0xBD79, 0xBD75, 0xE6E4, 0, 0xBD72, 0xBD76, 0xE6F0, /* 0xD0 */
- 0xBD6C, 0xE6E8, 0, 0xBD74, 0, 0, 0xE6EB, 0xE6E6, /* 0xE0 */
- 0xBD73, 0xBD77, 0xE6E5, 0, 0xBD71, 0, 0xE6EF, 0xBD6E, /* 0xE0 */
- 0xE6EE, 0xE6ED, 0xBD7A, 0xE572, 0xBD6D, 0, 0xE6EC, 0xE6E3, /* 0xF0 */
- 0, 0xBD7B, 0xE6EA, 0xBD6F /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_7E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE6E9, 0, 0, 0, 0, /* 0x00 */
- 0xBFA2, 0xBFA7, 0xBF7E, 0xEAD8, 0xEACF, 0xEADB, 0xEAD3, 0xEAD9, /* 0x00 */
- 0xBFA8, 0xBFA1, 0xEACC, 0xEAD2, 0xEADC, 0xEAD5, 0xEADA, 0xEACE, /* 0x10 */
- 0, 0, 0xEAD6, 0xBFA3, 0xEAD4, 0xBFA6, 0xBFA5, 0xEAD0, /* 0x10 */
- 0xEAD1, 0xEACD, 0xEAD7, 0xBFA4, 0xEADE, 0xEADD, 0, 0, /* 0x20 */
- 0, 0xEDDA, 0xEDD6, 0xC15F, 0, 0xEDD0, 0xC159, 0xC169, /* 0x20 */
- 0xEDDC, 0xC161, 0xC15D, 0xEDD3, 0xC164, 0xC167, 0xEDDE, 0xC15C, /* 0x30 */
- 0xEDD5, 0xC165, 0xEDE0, 0xEDDD, 0xEDD1, 0xC160, 0xC15A, 0xC168, /* 0x30 */
- 0xEDD8, 0xC163, 0xEDD2, 0xC15E, 0xEDDF, 0xC162, 0xC15B, 0xEDD9, /* 0x40 */
- 0xC166, 0xEDD7, 0, 0, 0xEDDB, 0, 0, 0, /* 0x40 */
- 0xF06E, 0xF074, 0xC2B9, 0xF077, 0xC2B4, 0xC2B5, 0xF06F, 0xF076, /* 0x50 */
- 0xF071, 0xC2BA, 0xC2B7, 0, 0xF06D, 0, 0xC2B6, 0xF073, /* 0x50 */
- 0xF075, 0xC2B8, 0xF072, 0xF070, 0, 0, 0, 0, /* 0x60 */
- 0xF2B8, 0xC3B7, 0xC3B8, 0xC3B4, 0, 0xC3B5, 0, 0xF2B4, /* 0x60 */
- 0xF2B2, 0, 0xF2B6, 0xC3BA, 0xF2B7, 0xF2B0, 0xF2AF, 0xF2B3, /* 0x70 */
- 0xF2B1, 0xC3B6, 0xF2B5, 0xF4AC, 0xC47E, 0xC47D, 0xF4AD, 0, /* 0x70 */
- 0xF4AF, 0xF4AE, 0xC4A1, 0, 0, 0, 0xF5EB, 0xF5E8, /* 0x80 */
- 0xF5E9, 0, 0xF5E7, 0xF5EA, 0xC4F2, 0xF5EC, 0, 0xC4F1, /* 0x80 */
- 0, 0xF742, 0, 0xC5D5, 0xC5D7, 0xF7EE, 0xC5D6, 0xF8B9, /* 0x90 */
- 0xF940, 0xF942, 0xF8FE, 0xF941, 0xC66C /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_7F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA6CE, 0, /* 0x30 */
- 0xACFB, 0xD26F, 0xAFCA, 0, 0, 0xB2DA, 0xDAFC, 0xDAFD, /* 0x30 */
- 0, 0, 0, 0xEADF, 0xC16A, 0xEDE1, 0, 0, /* 0x40 */
- 0xC2BB, 0, 0xF2BA, 0xF2B9, 0xC4A2, 0xF5ED, 0, 0xF743, /* 0x40 */
- 0xC5F8, 0xCA49, 0, 0, 0xAAC9, 0xA875, 0, 0, /* 0x50 */
- 0xD04D, 0, 0, 0xD360, 0xD35B, 0xD35F, 0xD35D, 0xAFCB, /* 0x50 */
- 0xD35E, 0xD35C, 0, 0xD6F1, 0, 0xDAFE, 0xDB40, 0xDF69, /* 0x60 */
- 0xDF6A, 0xB86E, 0xB86F, 0xDF68, 0xDF6B, 0xDF67, 0xB86D, 0, /* 0x60 */
- 0xBB40, 0, 0xB870, 0xE37A, 0, 0xBD7C, 0xE6F1, 0xBD7D, /* 0x70 */
- 0, 0xBFA9, 0xEAE2, 0xEAE0, 0xEAE1, 0xEDE4, 0xEDE3, 0xEDE2, /* 0x70 */
- 0, 0, 0, 0xF2BB, 0, 0xC3B9, 0xF2BC, 0xF744, /* 0x80 */
- 0xC5F9, 0xF8BA, 0xA6CF, 0xAACB, 0xAACA, 0xD04F, 0xACFC, 0, /* 0x80 */
- 0, 0xD04E, 0xD362, 0, 0xAFCC, 0xD6F2, 0xD361, 0, /* 0x90 */
- 0, 0, 0xB2DC, 0xD6F5, 0xD6F3, 0xD6F4, 0xB2DB, 0, /* 0x90 */
- 0xDB42, 0xDB43, 0xDB41, 0, 0xB873, 0xDF6D, 0xDF6C, 0xDF6E, /* 0xA0 */
- 0xB872, 0xB871, 0, 0, 0xE6F2, 0xE6F4, 0, 0xBD7E, /* 0xA0 */
- 0xE6F3, 0xEAE3, 0xBFAA, 0xF079, 0, 0xF078, 0xC3BB, 0xF2BD, /* 0xB0 */
- 0xC3BD, 0xC3BC, 0xF4B0, 0xF5EE, 0xC4F3, 0xA6D0, 0xD050, 0xACFD, /* 0xB0 */
- 0xD365, 0xAFCE, 0xD364, 0xD363, 0, 0xAFCD, 0, 0xD6FB, /* 0xC0 */
- 0, 0xD6FD, 0xD6F6, 0xD6F7, 0xB2DD, 0xD6F8, 0xB2DE, 0xD6FC, /* 0xC0 */
- 0xD6F9, 0xD6FA, 0xB2DF, 0, 0xB5BE, 0xB5BF, 0, 0xDB44, /* 0xD0 */
- 0, 0, 0, 0xDF6F, 0xDF70, 0, 0xE37E, 0xBB43, /* 0xD0 */
- 0xBB41, 0xBB42, 0xE37B, 0xE37C, 0, 0xE37D, 0xE6F9, 0, /* 0xE0 */
- 0xE6FA, 0xBDA1, 0xE6F7, 0xE6F6, 0xE6F8, 0xE6F5, 0xBFAD, 0xEAE4, /* 0xE0 */
- 0xBFAB, 0xBFAC, 0xEDE6, 0xC16B, 0xEDE5, 0xEFA8, 0, 0xF07A, /* 0xF0 */
- 0xF07B, 0xC2BC, 0, 0xC2BD, 0xC16C, 0xF2BE, 0xF2BF, 0xF4B1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_80[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC4A3, 0xA6D1, 0, 0xA6D2, 0xACFE, 0xAACC, 0xAFCF, 0xD051, /* 0x00 */
- 0, 0, 0, 0xB5C0, 0xA6D3, 0xAD41, 0xD052, 0xD053, /* 0x00 */
- 0xAD40, 0xAD42, 0xA6D4, 0, 0xD054, 0xAFD1, 0xD366, 0xAFD3, /* 0x10 */
- 0xAFD0, 0xAFD2, 0, 0xD741, 0xB2E0, 0, 0xD740, 0xD6FE, /* 0x10 */
- 0, 0xDF71, 0, 0, 0xE3A1, 0, 0xBDA2, 0, /* 0x20 */
- 0xBFAE, 0xEAE6, 0xEAE5, 0, 0xEDE7, 0, 0, 0, /* 0x20 */
- 0xF5EF, 0, 0, 0xA6D5, 0xCB73, 0xCDAA, 0xAD43, 0xD055, /* 0x30 */
- 0, 0xD368, 0, 0, 0, 0xAFD4, 0xD367, 0xAFD5, /* 0x30 */
- 0, 0, 0, 0xD743, 0, 0, 0xB2E2, 0xD742, /* 0x40 */
- 0xD744, 0, 0xB2E1, 0, 0, 0, 0, 0xDB46, /* 0x40 */
- 0xDB47, 0xDB45, 0xB5C1, 0, 0, 0, 0xB874, 0, /* 0x50 */
- 0xB875, 0, 0xBB45, 0, 0xE3A3, 0xE3A2, 0xBB44, 0, /* 0x50 */
- 0, 0, 0, 0, 0xE6FB, 0, 0, 0xE6FC, /* 0x60 */
- 0, 0, 0, 0, 0xEAE7, 0, 0, 0xC170, /* 0x60 */
- 0xC16F, 0xC16D, 0xC16E, 0xC171, 0, 0xF07C, 0xC2BF, 0xC2BE, /* 0x70 */
- 0xF2C0, 0xF4B2, 0, 0, 0, 0xC5A5, 0xC5A4, 0xA6D6, /* 0x70 */
- 0, 0, 0xD1FB, 0, 0xB877, 0xB5C2, 0xB876, 0xBB46, /* 0x80 */
- 0, 0xA6D7, 0xC9A9, 0xA6D8, 0xA6D9, 0, 0, 0xCDAB, /* 0x80 */
- 0xCB76, 0, 0xCB77, 0xA877, 0, 0xCB74, 0xA876, 0, /* 0x90 */
- 0xA879, 0xCB75, 0xA87B, 0xA87A, 0xCB78, 0xA878, 0, 0, /* 0x90 */
- 0, 0xAAD1, 0xAACF, 0xCDAD, 0, 0xAACE, 0, 0, /* 0xA0 */
- 0, 0xAAD3, 0xAAD5, 0xAAD2, 0, 0xCDB0, 0xCDAC, 0xAAD6, /* 0xA0 */
- 0, 0xAAD0, 0xA87C, 0, 0xAAD4, 0xCDAF, 0, 0, /* 0xB0 */
- 0xCDAE, 0, 0xAACD, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xD05B, 0xAD47, 0xAD48, 0xD05D, 0, 0xD057, /* 0xC0 */
- 0xD05A, 0xD063, 0xD061, 0, 0xAD49, 0xD067, 0xAD4C, 0xD064, /* 0xC0 */
- 0xD05C, 0xD059, 0, 0, 0xDB49, 0xD062, 0xAD44, 0xD065, /* 0xD0 */
- 0xD056, 0xD05F, 0xAD46, 0xAD4B, 0xD060, 0xAD4F, 0xAD4D, 0, /* 0xD0 */
- 0xD058, 0xAD4A, 0, 0xD05E, 0xAD4E, 0xAD45, 0xD066, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xAFDA, 0, 0xAFE3, /* 0xE0 */
- 0xAFD8, 0xAFD6, 0xD36A, 0xAFDE, 0xAFDB, 0xD36C, 0, 0, /* 0xF0 */
- 0xAFDD, 0xD36B, 0xD369, 0xD36E, 0xAFE2, 0xAFE0, 0xDB48 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_81[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD36F, 0xD36D, 0xAFD7, 0, 0, 0xAFD9, 0xAFDC, 0, /* 0x00 */
- 0xAFDF, 0, 0xAFE1, 0, 0, 0, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0xD74E, 0xB2E4, 0, /* 0x10 */
- 0xD745, 0xD747, 0, 0xD748, 0, 0xD750, 0xD74C, 0xD74A, /* 0x10 */
- 0, 0xD74D, 0xD751, 0xB2E5, 0xB2E9, 0xD746, 0, 0xD74F, /* 0x20 */
- 0, 0xB2E7, 0, 0xB2E6, 0xD74B, 0xD749, 0, 0xB2E3, /* 0x20 */
- 0xB2E8, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xB5C8, 0xDB51, 0, 0, 0xDB4F, 0xB5CA, 0, /* 0x30 */
- 0, 0, 0, 0xDB4A, 0xDFA1, 0, 0xB5C9, 0xDB4E, /* 0x40 */
- 0, 0, 0xDB4B, 0xB5C5, 0xB5CB, 0xDB50, 0xB5C7, 0xDB4D, /* 0x40 */
- 0xBB47, 0xB5C6, 0xDB4C, 0xB5CC, 0xB5C4, 0xB5C3, 0, 0, /* 0x50 */
- 0, 0, 0, 0xDF77, 0xDF75, 0, 0xDF7B, 0, /* 0x50 */
- 0xDF73, 0xDFA2, 0xDF78, 0, 0xDF72, 0xB87B, 0xB8A3, 0xDF7D, /* 0x60 */
- 0, 0xDF76, 0, 0xB87E, 0, 0, 0xB87C, 0xDF7E, /* 0x60 */
- 0xB879, 0xB878, 0xDF79, 0xB87D, 0xB5CD, 0, 0xDF7C, 0xDF74, /* 0x70 */
- 0xB87A, 0xB8A1, 0xB8A2, 0, 0, 0, 0, 0xBB4C, /* 0x70 */
- 0xBB48, 0, 0xBB4D, 0xE3A6, 0, 0, 0xE3A5, 0xE3A7, /* 0x80 */
- 0xBB4A, 0xE3A4, 0xBB4B, 0xE3AA, 0xE3A9, 0xE3A8, 0, 0xBB49, /* 0x80 */
- 0, 0, 0, 0, 0, 0xE741, 0, 0xE744, /* 0x90 */
- 0xBDA8, 0xE743, 0xBDA7, 0xBDA3, 0xBDA4, 0xBDA5, 0xE740, 0xE6FE, /* 0x90 */
- 0xBDA6, 0, 0xE742, 0xE6FD, 0, 0, 0xEAE9, 0xEAF3, /* 0xA0 */
- 0xBFB1, 0xBFB0, 0, 0xEAED, 0xEAEF, 0, 0xEAEA, 0, /* 0xA0 */
- 0xEAEE, 0xEAE8, 0xEAF1, 0xBFAF, 0xEAF0, 0xEAEC, 0, 0xEAF2, /* 0xB0 */
- 0, 0xEAEB, 0xC174, 0xEDE8, 0xEDEE, 0xC178, 0xC17A, 0xC177, /* 0xB0 */
- 0xC176, 0, 0xC175, 0xC173, 0xEDE9, 0xEDEC, 0xC172, 0xEDED, /* 0xC0 */
- 0, 0xC179, 0xEDEB, 0, 0xEDEA, 0xC2C0, 0, 0xC2C1, /* 0xC0 */
- 0xF0A1, 0xF07D, 0xF07E, 0, 0, 0xF2C2, 0, 0xF2C1, /* 0xD0 */
- 0xC3BE, 0xF4B4, 0xC4A4, 0xF4B3, 0, 0xF5F0, 0xF745, 0xC5A6, /* 0xD0 */
- 0xF943, 0xF944, 0xC5D8, 0xA6DA, 0, 0xAAD7, 0xDB52, 0xBB4E, /* 0xE0 */
- 0xC17B, 0xEDEF, 0xA6DB, 0, 0xAFE5, 0xAFE4, 0xDB53, 0, /* 0xE0 */
- 0, 0, 0xEAF4, 0xA6DC, 0xAD50, 0, 0, 0xDB54, /* 0xF0 */
- 0xDB55, 0xDB56, 0xBB4F, 0xBFB2, 0xA6DD, 0, 0xAAD8, 0xD068 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_82[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xAFE6, 0xD370, 0xB2EA, 0, 0xDB57, 0xB8A4, 0, 0xBB50, /* 0x00 */
- 0xBFB3, 0xC17C, 0xC2C2, 0xF4B5, 0xA6DE, 0xAAD9, 0, 0, /* 0x00 */
- 0xAFE7, 0xD752, 0xB5CE, 0, 0xBB51, 0xE3AB, 0xE745, 0, /* 0x10 */
- 0, 0, 0, 0xA6DF, 0xB5CF, 0xDFA3, 0xBB52, 0xA6E0, /* 0x10 */
- 0xCDB1, 0xD069, 0xAD51, 0, 0, 0xD372, 0, 0, /* 0x20 */
- 0xAFEA, 0, 0xAFE8, 0xAFE9, 0xAFEB, 0, 0, 0xD371, /* 0x20 */
- 0, 0, 0xD757, 0xD754, 0xD756, 0xB2EB, 0xB2ED, 0xB2EC, /* 0x30 */
- 0xD753, 0xB2EE, 0xD755, 0, 0xDB58, 0xDB59, 0, 0xDB5A, /* 0x30 */
- 0xDFA6, 0, 0xDFA7, 0, 0xDFA5, 0xDFA8, 0, 0xB8A5, /* 0x40 */
- 0, 0xDFA4, 0, 0xBB53, 0, 0, 0xE74A, 0xE746, /* 0x40 */
- 0xE749, 0xE74B, 0xE748, 0xE747, 0, 0xEAF5, 0xEAF6, 0xEAF7, /* 0x50 */
- 0xBFB4, 0xBFB5, 0xEDF1, 0xEDF0, 0xEDF2, 0, 0xF0A3, 0xF0A2, /* 0x50 */
- 0, 0xF2C4, 0, 0xF2C5, 0xF2C3, 0, 0xC4A5, 0, /* 0x60 */
- 0xF4B6, 0xF4B7, 0, 0xF746, 0xF7EF, 0xF8BB, 0xA6E1, 0xA87D, /* 0x60 */
- 0, 0xC17D, 0xA6E2, 0, 0xD758, 0xDB5B, 0, 0xC641, /* 0x70 */
- 0xCA4A, 0, 0, 0, 0xCA4B, 0xCA4D, 0xA6E3, 0xCA4E, /* 0x70 */
- 0xCA4C, 0, 0, 0xCBA2, 0xCBA3, 0xCB7B, 0, 0, /* 0x80 */
- 0, 0, 0xCBA1, 0xA8A1, 0, 0xA8A2, 0xCB7C, 0xCB7A, /* 0x80 */
- 0xCB79, 0xCB7D, 0xA87E, 0xCB7E, 0xD06A, 0, 0, 0, /* 0x90 */
- 0xCDB6, 0xAADC, 0xCDB5, 0xCDB7, 0, 0xAADB, 0xCDBC, 0xAADF, /* 0x90 */
- 0xCDB2, 0xCDC0, 0xCDC6, 0xAAE6, 0xCDC3, 0xAAE3, 0, 0xCDB9, /* 0xA0 */
- 0xCDBF, 0xCDC1, 0, 0xCDB4, 0xAAE2, 0xAADD, 0xCDBA, 0xAAE4, /* 0xA0 */
- 0xAAE7, 0xAAE1, 0, 0xAADA, 0xCDBE, 0xCDB8, 0xCDC5, 0xAAE9, /* 0xB0 */
- 0xAAE5, 0xAAE0, 0xCDBD, 0xAFEC, 0xCDBB, 0xAADE, 0xAAE8, 0, /* 0xB0 */
- 0xCDB3, 0, 0xCDC2, 0xCDC4, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xAD62, 0xAD5C, 0xAD64, 0xAD61, 0xD071, 0xD074, 0xAD5D, /* 0xD0 */
- 0, 0xD06B, 0, 0xAD56, 0xAD60, 0, 0xAD63, 0xAD65, /* 0xD0 */
- 0xD0A2, 0xD077, 0, 0xAD55, 0xD0A1, 0xAD59, 0xAD57, 0xAD52, /* 0xE0 */
- 0xD06F, 0, 0xD07E, 0xD073, 0xD076, 0xD0A5, 0, 0xAD66, /* 0xE0 */
- 0xD07D, 0xAD5E, 0xD078, 0xD0A4, 0xD075, 0xD079, 0xD07C, 0, /* 0xF0 */
- 0, 0xD06D, 0xD0A3, 0xD07B, 0, 0, 0xD06C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_83[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xD070, 0xAD5F, 0xAD5A, 0xAD53, 0xAD58, 0xAD54, 0xAD67, 0xD06E, /* 0x00 */
- 0xD3A5, 0xAD5B, 0, 0, 0xD07A, 0xCE41, 0, 0, /* 0x00 */
- 0, 0, 0, 0, 0, 0, 0xD3A8, 0xAFFA, /* 0x10 */
- 0, 0xD376, 0, 0xD3A3, 0xD37D, 0, 0xD3B2, 0, /* 0x10 */
- 0xD3AA, 0, 0xD37E, 0, 0xD3A9, 0xD378, 0xD37C, 0xD3B5, /* 0x20 */
- 0xAFFD, 0xD3AD, 0xD3A4, 0xAFED, 0xD3B3, 0xD374, 0, 0xD3AC, /* 0x20 */
- 0, 0xAFFC, 0xAFF7, 0xD373, 0xAFF5, 0xAFF4, 0xAFF9, 0xD3AB, /* 0x30 */
- 0xAFF1, 0xAFF8, 0xD072, 0xDB5C, 0xD3A6, 0, 0, 0xD37A, /* 0x30 */
- 0xAFFB, 0xD37B, 0xD3A1, 0xAFFE, 0xD375, 0xD3AF, 0, 0xD3AE, /* 0x40 */
- 0xD3B6, 0xAFF3, 0xAFF0, 0xD3B4, 0xD3B0, 0xD3A7, 0xD3A2, 0xAFF6, /* 0x40 */
- 0xAFF2, 0xD377, 0xAFEE, 0xD3B1, 0xAFEF, 0, 0xD379, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0xD75E, 0xD760, 0xD765, 0xD779, 0xB2FC, /* 0x70 */
- 0xB2F2, 0, 0xD75D, 0xB2FD, 0xB2FE, 0xD768, 0xD76F, 0xD775, /* 0x70 */
- 0, 0xD762, 0, 0xD769, 0, 0, 0xB340, 0xD777, /* 0x80 */
- 0xD772, 0xB2FA, 0xB2F8, 0xD76E, 0xD76A, 0xD75C, 0xB2EF, 0xD761, /* 0x80 */
- 0xD759, 0, 0xB2F7, 0xB2F9, 0xD766, 0xD763, 0xB2F4, 0xD773, /* 0x90 */
- 0xB2F1, 0xD764, 0xD77A, 0xD76C, 0, 0xD76B, 0xB2F0, 0, /* 0x90 */
- 0xB2FB, 0, 0xB2F3, 0xD75A, 0xD75F, 0xD770, 0xD776, 0xB341, /* 0xA0 */
- 0xD75B, 0xD767, 0xD76D, 0xB2F6, 0, 0, 0xD778, 0xD771, /* 0xA0 */
- 0xD774, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0xB2F5, 0, 0xDB6C, /* 0xB0 */
- 0xDB60, 0xB5D7, 0xDB7D, 0xDBA7, 0xDBAA, 0xB5D5, 0xDB68, 0xDBA3, /* 0xC0 */
- 0xDB69, 0xDB77, 0xB5E2, 0xDB73, 0xB5DF, 0, 0xDB74, 0xDB5D, /* 0xC0 */
- 0, 0xDBA4, 0, 0, 0xB5E8, 0xDBA1, 0xDB75, 0xDBAC, /* 0xD0 */
- 0xDB70, 0xDFC8, 0, 0xDBAF, 0xB5E6, 0xDB6E, 0xDB7A, 0xB5E9, /* 0xD0 */
- 0xB5D4, 0xDB72, 0xDBAD, 0xDB6B, 0xDB64, 0xDB6F, 0, 0xDB63, /* 0xE0 */
- 0xDB61, 0xB5D0, 0xDBA5, 0xDB6A, 0xDBA8, 0, 0xDBA9, 0xB5D8, /* 0xE0 */
- 0xB5DD, 0xB5D9, 0xB5E1, 0xDB7E, 0xB5DA, 0xDB76, 0xDB66, 0, /* 0xF0 */
- 0xB5D2, 0xDB5E, 0xDBA2, 0xDBAB, 0xDB65, 0xB5E0, 0xDBB0, 0xDB71 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_84[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDB6D, 0, 0xB5D1, 0xB5E5, 0, 0xDB7C, 0xB5E7, /* 0x00 */
- 0, 0xDB78, 0xB5DC, 0xB5D6, 0xB5DE, 0xB5D3, 0xB5E4, 0xDB79, /* 0x00 */
- 0xDB67, 0xDB7B, 0xDB62, 0xDBA6, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xDBAE, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0xDB5F, 0, 0, 0, 0, /* 0x20 */
- 0, 0xDFC7, 0, 0xDFDD, 0xB855, 0xDFCC, 0, 0xDFCA, /* 0x20 */
- 0xDFB5, 0xB8A9, 0xDFC5, 0xDFD9, 0xDFC1, 0xB8B1, 0xDFD8, 0xDFBF, /* 0x30 */
- 0xB5E3, 0xDFCF, 0xDFC0, 0xDFD6, 0xB8B0, 0xB8A8, 0, 0xDFAA, /* 0x30 */
- 0xDFB2, 0, 0xDFCB, 0xDFC3, 0xDFDC, 0xDFC6, 0xB8B6, 0xDFD7, /* 0x40 */
- 0, 0xB8AD, 0, 0xDFC9, 0xDFD1, 0xDFB6, 0xDFD0, 0, /* 0x40 */
- 0xDFE1, 0xDFB1, 0xDFD2, 0, 0xDFDF, 0, 0xDFAB, 0xB5DB, /* 0x50 */
- 0, 0xDFB9, 0xDFB8, 0xB8AF, 0, 0xDFBC, 0xDFBE, 0xDFCD, /* 0x50 */
- 0xDFDE, 0xB8B2, 0, 0xB8B3, 0, 0xDFB0, 0xB8AB, 0xDFB4, /* 0x60 */
- 0xDFDA, 0xB8B4, 0, 0xB8AC, 0xB8AE, 0xB8B5, 0xDFE0, 0xDFD3, /* 0x60 */
- 0xDFCE, 0, 0, 0xDFBB, 0xDFBA, 0xB8AA, 0xDFAC, 0xB8A7, /* 0x70 */
- 0xDFC4, 0xDFAD, 0xDFC2, 0, 0, 0xDFB7, 0xDFDB, 0, /* 0x70 */
- 0, 0, 0xB8A6, 0, 0, 0, 0xDFB3, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xDFAF, 0xDFD5, 0xDFAE, /* 0x80 */
- 0xBB60, 0xE3D3, 0, 0, 0xE3C2, 0, 0, 0xE3AC, /* 0x90 */
- 0xE3CA, 0xBB58, 0xE3BB, 0xE3C5, 0xBB5B, 0xE3BE, 0xBB59, 0xE3AF, /* 0x90 */
- 0xE3CD, 0xE3AE, 0xE3C1, 0, 0xE3AD, 0, 0, 0xE3BF, /* 0xA0 */
- 0xE3C8, 0xE3C6, 0xE3BA, 0xE3B5, 0xE3B3, 0, 0xE3B4, 0xE3C7, /* 0xA0 */
- 0xE3D2, 0xE3BC, 0xBB5A, 0, 0xE3B7, 0, 0xE3CB, 0, /* 0xB0 */
- 0xBB5D, 0xE3B6, 0xE3B0, 0xE3C0, 0xBB61, 0, 0, 0xBB55, /* 0xB0 */
- 0xBB5E, 0xE3B8, 0xE3B2, 0, 0xBB57, 0xDFD4, 0xBB56, 0xE3C3, /* 0xC0 */
- 0, 0xBB54, 0xBB63, 0xBB5C, 0xE3C4, 0xE3B9, 0xE3B1, 0xE3CC, /* 0xC0 */
- 0xE3BD, 0xBB62, 0xE3D0, 0xBB5F, 0xE3CF, 0, 0xE3C9, 0xE3CE, /* 0xD0 */
- 0, 0, 0, 0xE3D1, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0xE773, /* 0xE0 */
- 0xE774, 0xE767, 0xE766, 0xE762, 0xBDB4, 0, 0xBDAC, 0xE776, /* 0xE0 */
- 0xE775, 0xDFA9, 0xE75F, 0xE763, 0xE75D, 0, 0xE770, 0xE761, /* 0xF0 */
- 0, 0xE777, 0xE75A, 0xE758, 0xE764, 0xE76E, 0xE769, 0xBDB6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_85[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE74F, 0, 0xE76D, 0, 0, 0, 0xBDB7, 0xDFBD, /* 0x00 */
- 0xE75B, 0xE752, 0xE755, 0xE77B, 0xE75C, 0xE753, 0xE751, 0xE74E, /* 0x00 */
- 0, 0xBDB0, 0xE765, 0xBDAF, 0xBDB3, 0xE760, 0xE768, 0xBDA9, /* 0x10 */
- 0xE778, 0xE77C, 0xBDAB, 0, 0xE757, 0xE76B, 0xE76F, 0xE754, /* 0x10 */
- 0xE779, 0xBDB2, 0, 0xBDB1, 0xE74C, 0xBDB5, 0xE772, 0xE756, /* 0x20 */
- 0xE76A, 0xE750, 0xE75E, 0xE759, 0xBDAD, 0xBDAE, 0xE76C, 0xE77D, /* 0x20 */
- 0xE77A, 0xE771, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0xE74D, 0, 0xBDAA, 0xEB49, 0, /* 0x30 */
- 0xEB40, 0xEB43, 0, 0xBFBB, 0xEB45, 0xEAF9, 0xEB41, 0xEB47, /* 0x40 */
- 0xBFB8, 0xBFBC, 0xBFB6, 0, 0, 0xEAFB, 0xEB4C, 0, /* 0x40 */
- 0, 0xEB46, 0, 0xEAFC, 0xEB55, 0xEB4F, 0xEAF8, 0xEE46, /* 0x50 */
- 0xEAFE, 0xBFB7, 0, 0xEB4A, 0, 0xEB54, 0xBFBF, 0, /* 0x50 */
- 0xEB51, 0xEAFD, 0xEB44, 0xEB48, 0xEB42, 0xEB56, 0xEB53, 0xEB50, /* 0x60 */
- 0xBFB9, 0xBFBA, 0xBFBE, 0xEAFA, 0xEB57, 0xBFBD, 0xEB4D, 0, /* 0x60 */
- 0, 0xEB4B, 0, 0, 0, 0xEB4E, 0xEE53, 0xEE40, /* 0x70 */
- 0xEE45, 0xEE52, 0xEE44, 0xEDFB, 0xEE41, 0, 0xC1A2, 0, /* 0x70 */
- 0xEDF4, 0xEE4D, 0xEE4F, 0xEDF3, 0xC1A1, 0xEE51, 0xEE49, 0xC1A8, /* 0x80 */
- 0xEE50, 0xEE42, 0xC1AA, 0xEDF9, 0xEB52, 0xEE4A, 0xEE47, 0xEDF5, /* 0x80 */
- 0xEE55, 0xC1A4, 0, 0, 0xC1A5, 0xEDF7, 0xEE48, 0, /* 0x90 */
- 0xEE54, 0xEE4B, 0xEDFD, 0xC1A7, 0xC1A3, 0xEE4C, 0xEDFE, 0xEE56, /* 0x90 */
- 0xEDF8, 0xEE43, 0xEE4E, 0xEDFA, 0xEDFC, 0, 0xC2CB, 0xEDF6, /* 0xA0 */
- 0xC1A9, 0xC2C4, 0xC17E, 0, 0, 0, 0, 0xC1A6, /* 0xA0 */
- 0xC2C8, 0xF0B3, 0, 0xF0A9, 0xF0A4, 0xF0AA, 0xF0B4, 0xF0B8, /* 0xB0 */
- 0xF0B7, 0xC2CA, 0xC2C9, 0, 0, 0xF0AB, 0xF0B9, 0xF0AE, /* 0xB0 */
- 0xF0A6, 0, 0xF0A8, 0xF0A7, 0xF0AD, 0xF0B2, 0xF0A5, 0xF0AC, /* 0xC0 */
- 0xF0B1, 0xC2C7, 0, 0xF0AF, 0, 0xC2C5, 0xF0B0, 0xC2C3, /* 0xC0 */
- 0xC2C6, 0xF2D5, 0xF0B5, 0, 0, 0xC3C2, 0, 0xF2CD, /* 0xD0 */
- 0xF2D1, 0xF2C9, 0xF2CC, 0, 0xF2D4, 0xC3C0, 0xF2D9, 0xF2D2, /* 0xD0 */
- 0, 0xF2CA, 0xF2DA, 0xF2D3, 0xC3C3, 0xC3C4, 0xF2D7, 0, /* 0xE0 */
- 0xF2CB, 0xC3BF, 0xC3C1, 0xF2C6, 0xF2CE, 0xF2C8, 0, 0xF2D8, /* 0xE0 */
- 0xF2D6, 0xF2C7, 0xF2CF, 0, 0, 0, 0xF4BE, 0xC3C5, /* 0xF0 */
- 0xF2D0, 0xC4A7, 0xC4A9, 0xC4A6, 0, 0xF4C3, 0xF4BB, 0xF4B9 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_86[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF4BD, 0xF4BA, 0, 0, 0xF4BF, 0xF4C1, 0xC4AA, 0xC4AC, /* 0x00 */
- 0, 0xF4C0, 0xC4AD, 0xC4AB, 0xF4C2, 0, 0, 0, /* 0x00 */
- 0, 0xC4A8, 0, 0, 0, 0, 0, 0xC4F4, /* 0x10 */
- 0xF5F1, 0xF5F7, 0xC4F6, 0xF4BC, 0xF5F6, 0, 0xF5FD, 0xF5F4, /* 0x10 */
- 0xF5FB, 0xF5FA, 0xF4B8, 0xF5F5, 0xF0B6, 0xF5FE, 0xF5F3, 0xF5F8, /* 0x20 */
- 0, 0xF5FC, 0xF5F2, 0, 0xF74A, 0xC4F5, 0xF5F9, 0, /* 0x20 */
- 0, 0xF7F4, 0xF74B, 0xF749, 0xF747, 0xF748, 0xF74C, 0, /* 0x30 */
- 0xC5D9, 0xF7F2, 0xF7F0, 0xF7F5, 0xF7F3, 0, 0xF7F6, 0xC5DA, /* 0x30 */
- 0xF7F1, 0, 0, 0xF8BC, 0, 0, 0xF945, 0xF946, /* 0x40 */
- 0xF947, 0, 0, 0xF9C7, 0xF9BD, 0xCA4F, 0xAAEA, 0, /* 0x40 */
- 0xAD68, 0, 0xD3B8, 0xD3B7, 0xB040, 0xB342, 0xD77C, 0, /* 0x50 */
- 0, 0xD77B, 0, 0xB5EA, 0xB8B8, 0, 0xB8B7, 0xB8B9, /* 0x50 */
- 0, 0xE3D4, 0xE77E, 0xEB58, 0xEB5A, 0xEB59, 0, 0xC1AB, /* 0x60 */
- 0xEE57, 0xF0BA, 0xF9A5, 0xA6E4, 0, 0xCDC9, 0xCDCA, 0xCDC8, /* 0x60 */
- 0xCDC7, 0xAAEB, 0, 0xD0A9, 0xD0A7, 0, 0, 0xD0A6, /* 0x70 */
- 0, 0xAD69, 0xAD6B, 0xAD6A, 0xD0A8, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0xD3C4, 0xD3C1, 0xD3BF, /* 0x80 */
- 0, 0, 0xB041, 0xD3C2, 0xB046, 0xD3BC, 0xD3CB, 0, /* 0x80 */
- 0xD3CD, 0xD3BD, 0, 0xB043, 0xD3CE, 0xD3C9, 0xD3BB, 0xD3C0, /* 0x90 */
- 0xD3CA, 0xD3C6, 0xD3C3, 0, 0xB048, 0xD3CC, 0xD3BE, 0, /* 0x90 */
- 0, 0xD3C7, 0xD3B9, 0xB047, 0xB044, 0xD3C5, 0, 0xD3C8, /* 0xA0 */
- 0xD3BA, 0xB045, 0xB042, 0, 0, 0, 0, 0xB34C, /* 0xA0 */
- 0xD7A5, 0xB34B, 0, 0xD7A8, 0xD7AB, 0xB348, 0xB346, 0xD77E, /* 0xB0 */
- 0xD7A9, 0xD7A7, 0xD7A4, 0xD7AC, 0xD7AD, 0xD7AF, 0xD7B0, 0xD77D, /* 0xB0 */
- 0xB345, 0xD7A2, 0xD7A1, 0xD7AE, 0xB347, 0xD7A3, 0xB349, 0xB344, /* 0xC0 */
- 0xD7A6, 0xB34D, 0, 0xB34A, 0xD7AA, 0, 0, 0, /* 0xC0 */
- 0xB5F1, 0xDBBF, 0, 0xDBB4, 0xB5EE, 0, 0xDFE7, 0xDBBD, /* 0xD0 */
- 0xDBB1, 0xB5EC, 0xDBB6, 0xB5EF, 0xDBBA, 0xDBB8, 0xB5F2, 0xB5EB, /* 0xD0 */
- 0, 0, 0xDBB2, 0xDBB5, 0xB5F0, 0, 0xDBB3, 0, /* 0xE0 */
- 0xDBBE, 0xDBBC, 0xDBB7, 0xDBB9, 0xDBBB, 0xB5ED, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xDFE8, 0xDFEE, 0xDFE4, /* 0xF0 */
- 0xDFEA, 0xB8BA, 0xDFE6, 0xB8C0, 0, 0, 0xB8BF /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_87[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB8BE, 0xDFED, 0xB8C1, 0xB8C2, 0xDFE3, 0xDFF0, 0xB8C3, 0xB8BD, /* 0x00 */
- 0xB8BC, 0xDFEC, 0xB8C4, 0xDFE2, 0xDFE5, 0xDFEF, 0xDFEB, 0, /* 0x00 */
- 0, 0xE3F4, 0xE3E9, 0xB8BB, 0, 0, 0, 0, /* 0x10 */
- 0xBB6A, 0xE3DD, 0xE3F2, 0xE3DE, 0xBB65, 0, 0xE3DB, 0, /* 0x10 */
- 0xE3E4, 0xE3DC, 0xBB67, 0xE3D6, 0xE3F1, 0xBB68, 0xE3EE, 0xE3EF, /* 0x20 */
- 0xE3D7, 0xBB6D, 0xE3E6, 0, 0xE3E0, 0xE3E7, 0xE3DA, 0, /* 0x20 */
- 0xE3F3, 0xE3EB, 0xE3E5, 0xE3D5, 0xBB69, 0xE3EC, 0, 0xBB6C, /* 0x30 */
- 0xE3F0, 0, 0xE3EA, 0xBB66, 0xE3E8, 0, 0xE3E2, 0xBB64, /* 0x30 */
- 0xE3D9, 0xE3E1, 0xE3ED, 0xE3DF, 0, 0, 0xE3E3, 0, /* 0x40 */
- 0, 0, 0, 0, 0xBDC1, 0xDFE9, 0xE7B2, 0xE7BB, /* 0x40 */
- 0xE7B1, 0xE7AD, 0xE7AA, 0xBDC2, 0xE7A8, 0xBB6B, 0xE7A1, 0xBDC0, /* 0x50 */
- 0xE7A7, 0xBDBF, 0xE7AC, 0xE7A9, 0xE7B9, 0xE7B4, 0xE7AE, 0xE7B3, /* 0x50 */
- 0xBDBB, 0xE7AB, 0xE7BE, 0xE7A2, 0xE7A3, 0xE7BA, 0xBDBC, 0xE7BF, /* 0x60 */
- 0xBDBE, 0xE7C0, 0xE7B0, 0xE3D8, 0xE7B6, 0xE7AF, 0xE7B8, 0xE7B5, /* 0x60 */
- 0, 0, 0, 0xE7A6, 0xBDB9, 0xE7BD, 0xBDBA, 0xE7A4, /* 0x70 */
- 0xBDBD, 0xEB64, 0xE7B7, 0xE7BC, 0, 0, 0, 0, /* 0x70 */
- 0, 0xEB61, 0xBDB8, 0xBFC0, 0xEB6B, 0xEB67, 0, 0xEB65, /* 0x80 */
- 0xEB60, 0xEB6F, 0, 0, 0, 0xBFC4, 0, 0xEB5C, /* 0x80 */
- 0xEB68, 0xEB69, 0xEB5F, 0xEB5E, 0xEB6C, 0, 0xEB62, 0xEB5D, /* 0x90 */
- 0xEB63, 0, 0xEB6E, 0xEB5B, 0xEB6D, 0xEB6A, 0xBFC2, 0xBFC1, /* 0x90 */
- 0, 0, 0xBFC3, 0xEB66, 0xF0CB, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xEE59, 0xC1B1, 0xEE5D, 0xEE5A, 0xEE61, 0xEE67, /* 0xA0 */
- 0xEE5C, 0, 0xEE70, 0xC1AE, 0xEE6A, 0xEE5F, 0xEE6B, 0xEE66, /* 0xB0 */
- 0xEE6D, 0xEE5E, 0xC1B3, 0xC1B2, 0xEE60, 0xEE6E, 0xEE58, 0xEE6C, /* 0xB0 */
- 0xC1AC, 0, 0xEE64, 0xEE63, 0xEE68, 0xEE5B, 0xC1B0, 0, /* 0xC0 */
- 0xC1B4, 0xEE62, 0xEE69, 0xC1B5, 0xEE65, 0, 0, 0, /* 0xC0 */
- 0, 0xC1AD, 0xC1AF, 0xF0C7, 0xF0C5, 0, 0, 0xF0CC, /* 0xD0 */
- 0xF0C9, 0xF0CD, 0, 0xF0BE, 0xF0C6, 0xF0D1, 0xEE6F, 0xF0C2, /* 0xD0 */
- 0xC2CF, 0xE7A5, 0xF0BD, 0xF0CA, 0xF0C4, 0xF0C1, 0xF0BC, 0xF0BB, /* 0xE0 */
- 0xF0D0, 0, 0xF0C0, 0xF0BF, 0xC2CD, 0xF0C8, 0, 0xC2CC, /* 0xE0 */
- 0, 0, 0xC2CE, 0xF0C3, 0xF0CF, 0, 0xF2DE, 0xF2DF, /* 0xF0 */
- 0, 0xC3C9, 0xF2DC, 0xC3C6, 0xF2E4, 0, 0xC3CA, 0xF2E6 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_88[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF2DB, 0xF0CE, 0xF2E8, 0xF2DD, 0, 0xC3C7, 0xF2E3, 0, /* 0x00 */
- 0xF2E5, 0xF2E0, 0xF2E7, 0xF2E2, 0xF2E1, 0xC3C8, 0, 0, /* 0x00 */
- 0xF4C5, 0xF4C6, 0, 0xF4C8, 0xC4AE, 0xC4AF, 0xF4C9, 0xF4C7, /* 0x10 */
- 0, 0xF4C4, 0, 0xF642, 0xF645, 0xF641, 0, 0xC4FA, /* 0x10 */
- 0xF643, 0xC4F9, 0xC4F8, 0xC4F7, 0xF644, 0xF751, 0xF74F, 0, /* 0x20 */
- 0xF74E, 0xF640, 0xF750, 0xF646, 0xF74D, 0, 0xF7F9, 0xF7D7, /* 0x20 */
- 0xF7F7, 0xC5DB, 0xF7F8, 0xF7FA, 0, 0xF8BF, 0xC5FA, 0xF8BE, /* 0x30 */
- 0xF8BD, 0xC5FB, 0, 0xC65A, 0xF96E, 0xF9A7, 0xF9A6, 0xF9A8, /* 0x30 */
- 0xA6E5, 0xD0AA, 0, 0xD3CF, 0xD3D0, 0, 0, 0, /* 0x40 */
- 0xDBC0, 0, 0xF647, 0xF8C0, 0xA6E6, 0xAD6C, 0xD0AB, 0, /* 0x40 */
- 0, 0, 0xD7B1, 0xB34E, 0, 0xDBC2, 0xDBC1, 0xB5F3, /* 0x50 */
- 0, 0xB8C5, 0xE7C1, 0xBDC3, 0, 0xBDC4, 0, 0, /* 0x50 */
- 0, 0xBFC5, 0xC5FC, 0xA6E7, 0, 0, 0, 0xD0AC, /* 0x60 */
- 0xAAED, 0xD0AE, 0xD0AD, 0xAD6D, 0, 0xD3D1, 0, 0xD3D8, /* 0x60 */
- 0xB049, 0xD3D6, 0xD3D4, 0, 0xD3DB, 0xD3D2, 0xD3D3, 0xB04A, /* 0x70 */
- 0, 0xB04E, 0, 0, 0xD3DC, 0xB04D, 0xD3DA, 0xD3D7, /* 0x70 */
- 0xD3D5, 0xB04B, 0xB04C, 0xD3D9, 0, 0, 0, 0, /* 0x80 */
- 0xB350, 0xD7B2, 0, 0xB355, 0xD7C2, 0xB354, 0xD7C4, 0, /* 0x80 */
- 0, 0xD7B8, 0xB352, 0xD7C3, 0, 0xD7B3, 0xB353, 0xD7BF, /* 0x90 */
- 0xD7BB, 0xD7BD, 0xD7B7, 0xD7BE, 0, 0, 0xB34F, 0xD7BA, /* 0x90 */
- 0, 0xD7B9, 0xD7B5, 0, 0xD7C0, 0, 0, 0xD7BC, /* 0xA0 */
- 0xD7B4, 0, 0xD7B6, 0xB351, 0xD7C1, 0, 0, 0, /* 0xA0 */
- 0, 0xB5F6, 0xDBCD, 0, 0, 0, 0xDBC9, 0xDBCB, /* 0xB0 */
- 0xDBC6, 0xDBC5, 0xDBC3, 0, 0xDBCA, 0xDBCC, 0xDBC8, 0, /* 0xB0 */
- 0xDBC7, 0xB5F4, 0xB5F5, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xDBCF, 0xB8CD, 0xDFF2, 0xDFF8, 0xDFF3, 0xDFF4, 0xF9D8, /* 0xC0 */
- 0xDFF9, 0, 0xB8CF, 0, 0xB8C7, 0xB8CE, 0xDFF1, 0xDBC4, /* 0xD0 */
- 0xB8CA, 0xB8C8, 0xDFF7, 0xDFF6, 0xB8C9, 0xB8CB, 0xDFF5, 0xB8C6, /* 0xD0 */
- 0, 0xB8CC, 0, 0, 0, 0, 0, 0xE3F6, /* 0xE0 */
- 0xBB74, 0, 0, 0xE442, 0xE441, 0, 0xE3FB, 0xBB76, /* 0xE0 */
- 0xE440, 0xE3F7, 0xE3F8, 0xBB6E, 0xBB70, 0, 0xE3FD, 0xE3F5, /* 0xF0 */
- 0xBB72, 0xBB71, 0xE3F9, 0xE3FE, 0xE3FC, 0xBB73, 0xE3FA /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_89[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDBCE, 0xBB6F, 0, 0, 0xE7C2, 0xE7C9, 0xBDC6, /* 0x00 */
- 0, 0xE7CD, 0xBDCA, 0xE7C5, 0xE7C3, 0, 0xE7CC, 0, /* 0x00 */
- 0xBDC5, 0xE7CB, 0xBDC7, 0xBDC8, 0xE7C4, 0xBDC9, 0xE7CA, 0xE7C6, /* 0x10 */
- 0xE7C7, 0xE7C8, 0xBB75, 0, 0, 0, 0xEB70, 0xEB7C, /* 0x10 */
- 0, 0xBFCA, 0xEB77, 0xEB79, 0, 0xBFC8, 0xEB71, 0xEB75, /* 0x20 */
- 0, 0xEB78, 0xBFC6, 0xBFC9, 0xEB7B, 0xEB73, 0xEB74, 0xEB7A, /* 0x20 */
- 0xEB72, 0xEB76, 0xBFC7, 0xEE72, 0, 0xEE71, 0xC1B7, 0xEE77, /* 0x30 */
- 0xC1B9, 0, 0, 0xC1B6, 0xEE73, 0xC1BA, 0xEE74, 0, /* 0x30 */
- 0, 0xEE75, 0xEE78, 0, 0xC1B8, 0, 0xF0D6, 0, /* 0x40 */
- 0, 0xF0D9, 0, 0xF0D3, 0xF0D5, 0, 0, 0xF0D4, /* 0x40 */
- 0xF0D7, 0xF0D8, 0xEE76, 0xF0D2, 0, 0, 0xC3CD, 0xF2EC, /* 0x50 */
- 0xF2EF, 0xF2F1, 0xF2EA, 0xF2EB, 0xF2EE, 0xF2F0, 0xC3CE, 0xC3CC, /* 0x50 */
- 0xC3CB, 0xF2ED, 0xF2E9, 0xF4CA, 0xC4B0, 0, 0xF4CB, 0, /* 0x60 */
- 0, 0xF649, 0xC4FB, 0xF64B, 0xC4FC, 0xF648, 0xF64A, 0xC5A8, /* 0x60 */
- 0, 0xF752, 0xC5A7, 0xF7FD, 0xF7FC, 0, 0xF7FB, 0, /* 0x70 */
- 0, 0xF948, 0xF949, 0xF94B, 0xF94A, 0, 0xCA50, 0xA6E8, /* 0x70 */
- 0, 0xAD6E, 0xD7C5, 0xB5F7, 0, 0xDFFA, 0xC2D0, 0, /* 0x80 */
- 0xF2F2, 0, 0, 0xA8A3, 0, 0, 0, 0xB357, /* 0x80 */
- 0, 0, 0, 0xB356, 0, 0xDBD0, 0xB5F8, 0xDBD2, /* 0x90 */
- 0xDBD1, 0, 0, 0xDFFB, 0xB8D0, 0xE443, 0xE446, 0xE445, /* 0x90 */
- 0, 0xE444, 0xE7CE, 0xE7D0, 0xE7CF, 0, 0xBFCC, 0, /* 0xA0 */
- 0, 0, 0xBFCB, 0, 0xC1BB, 0xEE79, 0xEE7B, 0xEE7A, /* 0xA0 */
- 0, 0, 0xC2D1, 0, 0, 0, 0xF2F4, 0xF2F3, /* 0xB0 */
- 0, 0xF4CC, 0xC4B1, 0, 0, 0xC4FD, 0xF754, 0xF753, /* 0xB0 */
- 0xC65B, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0xA8A4, 0xD0AF, 0xAD6F, 0xD7C8, 0xD7C6, 0, /* 0xD0 */
- 0, 0xD7C7, 0xDBD4, 0xDBD5, 0xE043, 0xDBD3, 0, 0xDFFC, /* 0xD0 */
- 0xE041, 0xE040, 0xE042, 0xB8D1, 0xDFFE, 0xDFFD, 0xE044, 0, /* 0xE0 */
- 0xE449, 0xE447, 0, 0xE448, 0xE7D3, 0xE7D1, 0, 0, /* 0xE0 */
- 0xE7D2, 0xEB7D, 0xEE7C, 0xEE7D, 0xC2D2, 0, 0xF2F5, 0xF4CD, /* 0xF0 */
- 0xC4B2, 0, 0xF64C, 0xF755, 0xC5A9, 0, 0xF7FE, 0xF94C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_8A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA8A5, 0, 0xAD71, 0xAD72, 0xD0B0, 0, 0, 0xD0B1, /* 0x00 */
- 0xAD70, 0, 0xB054, 0, 0xB052, 0, 0xB051, 0xB058, /* 0x00 */
- 0xB050, 0xB059, 0xD3DD, 0xB056, 0, 0xB053, 0xB057, 0xB055, /* 0x10 */
- 0xB04F, 0, 0, 0xB35F, 0, 0xB359, 0xD7CC, 0xB35E, /* 0x10 */
- 0, 0, 0xB360, 0xB35A, 0, 0xB35B, 0, 0xD7CA, /* 0x20 */
- 0, 0, 0xB358, 0, 0xD7CB, 0xB35D, 0, 0, /* 0x20 */
- 0xD7C9, 0xB35C, 0, 0, 0xB644, 0, 0xB646, 0, /* 0x30 */
- 0, 0xDBD8, 0xB645, 0xB5F9, 0xB5FD, 0, 0xB8E4, 0xE049, /* 0x30 */
- 0xDBDA, 0xB5FE, 0, 0, 0xDBDD, 0xDBDE, 0xB643, 0, /* 0x40 */
- 0xDBE0, 0, 0xDBE2, 0, 0xDBE3, 0xDBD7, 0xDBD6, 0xDBE4, /* 0x40 */
- 0xB642, 0xDBE1, 0xDBDF, 0, 0xB640, 0xB5FB, 0xB647, 0xDBDB, /* 0x50 */
- 0xDBDC, 0xDBD9, 0, 0xB641, 0, 0, 0xB5FC, 0, /* 0x50 */
- 0xB5FA, 0xE048, 0xB8DF, 0xB8DA, 0, 0, 0xB8D5, 0, /* 0x60 */
- 0xB8E5, 0xB8D6, 0, 0xB8D2, 0xB8E1, 0xB8DE, 0xB8E0, 0, /* 0x60 */
- 0xB8D7, 0xB8DC, 0xB8D3, 0xB8D4, 0xE050, 0xE04D, 0xE045, 0xE04A, /* 0x70 */
- 0, 0xB8E2, 0xE051, 0xB8E3, 0xB8D9, 0, 0, 0xE047, /* 0x70 */
- 0, 0xE04F, 0xE04B, 0xE04E, 0xE04C, 0xB8DD, 0xE046, 0xB8D8, /* 0x80 */
- 0, 0, 0, 0xE44C, 0xBB78, 0xBB7B, 0, 0xE44E, /* 0x80 */
- 0, 0xBBA5, 0xE44D, 0xBB7D, 0, 0xBDCF, 0xE44F, 0, /* 0x90 */
- 0xBBA4, 0xE44B, 0xBBA6, 0, 0, 0, 0xBB79, 0, /* 0x90 */
- 0xB8DB, 0xBB7C, 0, 0xBB7A, 0xBB7E, 0xBBA2, 0xBB77, 0xBBA7, /* 0xA0 */
- 0xBBA3, 0, 0xBBA1, 0xE44A, 0, 0, 0, 0, /* 0xA0 */
- 0xBDD6, 0, 0xBDD2, 0, 0, 0, 0xBDD9, 0, /* 0xB0 */
- 0xE7D6, 0xBDDA, 0xE7E2, 0xE7DB, 0xBDCB, 0xE7E3, 0xE7DD, 0xBDD5, /* 0xB0 */
- 0xE7DE, 0, 0xBDD4, 0xE7E1, 0xBDCE, 0xE7DF, 0xE7D5, 0xBDCD, /* 0xC0 */
- 0xEBAA, 0xBDD3, 0, 0xBDD0, 0, 0xBDD8, 0, 0xE7D4, /* 0xC0 */
- 0, 0xE7D8, 0xBDCC, 0xE7D7, 0xE7D9, 0xE7DA, 0xBDD7, 0xE7DC, /* 0xD0 */
- 0xE7E0, 0xE7E4, 0, 0xBDDB, 0xBFD2, 0xEBA5, 0xEBAB, 0xEBA8, /* 0xD0 */
- 0xEB7E, 0xEBAC, 0xEBA1, 0, 0xEBA7, 0, 0xBFCD, 0xBFD3, /* 0xE0 */
- 0xEBAD, 0, 0, 0xBFCF, 0, 0xBFD9, 0xBFD4, 0xEBAF, /* 0xE0 */
- 0xEBA9, 0xBFD0, 0xEBA2, 0xBFDA, 0xEBA3, 0xEBA4, 0xBFDB, 0xBFD8, /* 0xF0 */
- 0xBDD1, 0, 0xBFCE, 0xEBB0, 0xBFDC, 0, 0xBFD5, 0xEBAE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_8B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBFD1, 0xBFD6, 0xBFD7, 0, 0xC1C3, 0xEEA4, 0xEEAD, 0xEEAA, /* 0x00 */
- 0xEEAC, 0, 0xC1C0, 0xEEA5, 0, 0xEEAB, 0xC1BC, 0xEEA7, /* 0x00 */
- 0xC1C4, 0xEEA3, 0xEEA8, 0xEEAF, 0xEBA6, 0xEEA9, 0xEEA2, 0xC1BD, /* 0x10 */
- 0xEEA1, 0xC1BE, 0xEEB0, 0xC1BF, 0xEEAE, 0xC1C2, 0xEE7E, 0, /* 0x10 */
- 0xC1C1, 0, 0xEEA6, 0xF0DC, 0xF0EA, 0xF0E5, 0xF0E7, 0xF0DB, /* 0x20 */
- 0xC2D3, 0, 0xF0DA, 0xC2D6, 0xC2D5, 0, 0xF0E9, 0xF0E1, /* 0x20 */
- 0xF0DE, 0xF0E4, 0, 0xF0DD, 0, 0xF0DF, 0xF0E8, 0xF0E6, /* 0x30 */
- 0, 0xC2D4, 0xF0ED, 0xF0EB, 0xF0E2, 0xF0EC, 0xF0E3, 0, /* 0x30 */
- 0xF2F9, 0xC3CF, 0xF341, 0, 0, 0xF64F, 0xC3D6, 0xF0E0, /* 0x40 */
- 0xF2F7, 0xC3D2, 0xF2F8, 0xF2FD, 0, 0, 0xC3D4, 0xC3D5, /* 0x40 */
- 0xF2F6, 0xF340, 0xF342, 0xF2FA, 0xF2FC, 0xF2FE, 0xF2FB, 0xF343, /* 0x50 */
- 0xC3D1, 0xC3D7, 0xC3D3, 0, 0xC3D0, 0xF4D0, 0, 0xC4B7, /* 0x50 */
- 0xF4CE, 0, 0, 0xF4D2, 0, 0xF4D3, 0xC4B5, 0xF4D4, /* 0x60 */
- 0xF4D1, 0, 0xF4CF, 0xC4B8, 0xC4B4, 0xF4D5, 0, 0xC4B6, /* 0x60 */
- 0xC4B3, 0, 0, 0, 0xC4FE, 0, 0, 0xC540, /* 0x70 */
- 0xF64E, 0xF64D, 0xF650, 0xF651, 0, 0xC541, 0xF756, 0xF75B, /* 0x70 */
- 0xC5AA, 0, 0xF758, 0, 0xF757, 0xF75A, 0xF759, 0, /* 0x80 */
- 0xF843, 0, 0xC5DC, 0xF842, 0xF840, 0, 0xF841, 0, /* 0x80 */
- 0, 0, 0xC5FE, 0xC5FD, 0xF8C1, 0xF8C2, 0xC640, 0, /* 0x90 */
- 0xF94D, 0xF94E, 0xC667, 0, 0xC66D, 0, 0xF9A9, 0xF9C8, /* 0x90 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_8C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA8A6, /* 0x30 */
- 0, 0xD7CD, 0, 0xD7CE, 0xE052, 0xE450, 0xE7E5, 0xC1C6, /* 0x30 */
- 0, 0xC1C5, 0xF0EE, 0xF344, 0, 0xF844, 0xA8A7, 0xD3DE, /* 0x40 */
- 0xB05A, 0xB361, 0xE054, 0xE053, 0xBDDC, 0xE7E6, 0xBDDD, 0xEEB1, /* 0x40 */
- 0xC2D7, 0, 0, 0, 0xC676, 0xA8A8, 0xCDCB, 0xD3DF, /* 0x50 */
- 0, 0, 0xB362, 0, 0xD7CF, 0xD7D0, 0, 0xDBE5, /* 0x50 */
- 0, 0xB648, 0xB8E6, 0, 0xE056, 0xE055, 0xE057, 0, /* 0x60 */
- 0xE451, 0xE452, 0xBBA8, 0xBFDD, 0xBDDE, 0xBFDE, 0, 0xEEB5, /* 0x60 */
- 0xEEB2, 0xEEB4, 0xEEB3, 0xC1C7, 0, 0xF0EF, 0xF346, 0xF345, /* 0x70 */
- 0xCBA4, 0xB05C, 0xB05B, 0xD3E0, 0, 0xD7D1, 0, 0, /* 0x70 */
- 0xDBE7, 0xDBE6, 0xB649, 0, 0xE059, 0xE05A, 0xE058, 0, /* 0x80 */
- 0, 0xB8E8, 0xB8E7, 0, 0xBBAA, 0xBBA9, 0, 0xE7E7, /* 0x80 */
- 0xEBB3, 0xEBB1, 0xEBB2, 0xBFDF, 0xEEB7, 0xEEB6, 0, 0xF0F2, /* 0x90 */
- 0xF0F1, 0xF0F0, 0xF347, 0, 0xF9AA, 0xA8A9, 0xAD73, 0, /* 0x90 */
- 0xAD74, 0xB05D, 0xB05E, 0xD3E2, 0xD3E1, 0xD7D2, 0, 0xB368, /* 0xA0 */
- 0xB366, 0xB363, 0xB367, 0xB365, 0xB364, 0, 0, 0xB64A, /* 0xA0 */
- 0xDBEA, 0, 0xB8ED, 0xB64C, 0xB651, 0xDBEC, 0xB653, 0xB652, /* 0xB0 */
- 0xB655, 0xDBEB, 0xDBE8, 0xB64F, 0xB64B, 0xB64D, 0xDBE9, 0xB654, /* 0xB0 */
- 0xB650, 0xB64E, 0xB8EF, 0xB8EE, 0xB8EC, 0xB8F0, 0, 0xB8EA, /* 0xC0 */
- 0xB8EB, 0, 0xB8E9, 0, 0xE05B, 0, 0, 0xE454, /* 0xC0 */
- 0, 0xBBAC, 0xBBAD, 0xBBAB, 0, 0xE453, 0, 0xE455, /* 0xD0 */
- 0, 0xE7EA, 0xE7EC, 0, 0xBDE7, 0xE7ED, 0xBDE0, 0xE7E9, /* 0xD0 */
- 0xBDDF, 0xBDE9, 0xBDE5, 0xBDE6, 0xBDE2, 0xE7E8, 0xBDE1, 0xE7EE, /* 0xE0 */
- 0xE7EB, 0, 0xBDE8, 0, 0xBDE3, 0xBDE4, 0xEBB5, 0, /* 0xE0 */
- 0xEBB7, 0xEBB6, 0, 0xEBB8, 0xBFE0, 0xEBB4, 0, 0, /* 0xF0 */
- 0xC1CB, 0xEEB8, 0xC1C8, 0xC1CC, 0xC1CA, 0xC1C9, 0xF0F3 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_8D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF0F6, 0, 0xF0F5, 0, 0xF0F4, 0xC2D8, 0xF348, 0xF349, /* 0x00 */
- 0xC3D8, 0xF34A, 0xC3D9, 0, 0, 0xC4BA, 0, 0xC4B9, /* 0x00 */
- 0xF652, 0, 0, 0xC542, 0xF653, 0xF75C, 0xC5AB, 0xC5AC, /* 0x10 */
- 0, 0xF845, 0, 0xC642, 0, 0, 0, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0xA8AA, 0, 0xB36A, 0xB369, /* 0x60 */
- 0xE05C, 0xE05D, 0, 0xBBAE, 0xEBB9, 0xBDEA, 0xEBBA, 0xEEB9, /* 0x60 */
- 0xA8AB, 0, 0xD0B2, 0xAD76, 0xAD75, 0, 0xD3E3, 0xB05F, /* 0x70 */
- 0xD3E4, 0xD7D5, 0, 0xD7D4, 0, 0xD7D3, 0, 0, /* 0x70 */
- 0xDBEE, 0xB658, 0, 0, 0xDBED, 0xB657, 0, 0, /* 0x80 */
- 0, 0xDBEF, 0xB656, 0, 0xE05F, 0xE062, 0xE060, 0xE061, /* 0x80 */
- 0xE065, 0xE05E, 0xE066, 0xE063, 0xE064, 0xBBB0, 0xE456, 0, /* 0x90 */
- 0, 0xBBAF, 0, 0xE7F2, 0xE7F0, 0, 0, 0xBDEB, /* 0x90 */
- 0xE7EF, 0xE7F1, 0, 0xBDEC, 0, 0xEBBB, 0, 0xEBBC, /* 0xA0 */
- 0xC1CD, 0, 0xF34C, 0xF34E, 0xF34B, 0xF34D, 0xF4D6, 0xF654, /* 0xA0 */
- 0, 0, 0xF96F, 0xA8AC, 0xAD77, 0xD3E5, 0xD3E7, 0xD3E6, /* 0xB0 */
- 0, 0xD7D8, 0xB36C, 0, 0xD7D6, 0, 0xB36B, 0xD7D9, /* 0xB0 */
- 0, 0xD7DA, 0xD7D7, 0, 0, 0xDBFB, 0xB660, 0xDBF3, /* 0xC0 */
- 0xDBF9, 0, 0, 0xB65B, 0xB65E, 0xDBF2, 0xB659, 0xDBF6, /* 0xC0 */
- 0xE06C, 0xB65D, 0, 0xDBF1, 0, 0xDBF7, 0xDBF4, 0xDBFA, /* 0xD0 */
- 0xDBF0, 0xDBF8, 0xB65C, 0xB65F, 0xDBF5, 0xB65A, 0, 0xB8F2, /* 0xD0 */
- 0xE068, 0xB8F1, 0xE06F, 0xE06E, 0xB8F8, 0, 0xB8F9, 0xE070, /* 0xE0 */
- 0xB8F3, 0xE06D, 0xB8F7, 0xE072, 0xE069, 0, 0xE06B, 0xB8F4, /* 0xE0 */
- 0xE067, 0xE06A, 0xE071, 0xB8F5, 0xE073, 0, 0, 0, /* 0xF0 */
- 0, 0, 0xB8F6, 0, 0xBBB1, 0xE45B, 0xE461, 0xE459 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_8E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE462, 0, 0xE458, 0xE45D, 0xE463, 0xE460, 0xE45F, 0xE45E, /* 0x00 */
- 0, 0xE457, 0xE45C, 0, 0, 0xE45A, 0, 0xBDF1, /* 0x00 */
- 0xBDEE, 0xE7FB, 0xE841, 0xE843, 0xE840, 0xE7F8, 0xE7FA, 0xE845, /* 0x10 */
- 0xE842, 0xE7FC, 0xE846, 0xE7F9, 0xE844, 0xBDEF, 0xBDF5, 0xBDF3, /* 0x10 */
- 0xE7F3, 0xBDF4, 0xBDF0, 0xE7F4, 0xE7F6, 0xE7F5, 0xE7FD, 0xE7FE, /* 0x20 */
- 0, 0xBDF2, 0, 0xBDED, 0, 0, 0xE7F7, 0, /* 0x20 */
- 0xEBC6, 0xBFE2, 0, 0xEBBD, 0xBFE3, 0xBFE6, 0xEBC2, 0, /* 0x30 */
- 0xEBBF, 0xBFE5, 0, 0, 0xEBC3, 0xEBC4, 0xEBBE, 0xEBC7, /* 0x30 */
- 0xEBC0, 0xEBC5, 0xBFE4, 0, 0xBFE1, 0xEBC1, 0, 0xEEBF, /* 0x40 */
- 0xC1D0, 0xC1CE, 0xC1D1, 0xC1CF, 0xEEBE, 0xEEBB, 0xEEBA, 0, /* 0x40 */
- 0xEEBD, 0, 0, 0xEEBC, 0xF145, 0xC2DE, 0xF0FB, 0xF0FA, /* 0x50 */
- 0, 0xC2D9, 0xF141, 0xF140, 0xF0F7, 0xF143, 0xF0FC, 0xC2DD, /* 0x50 */
- 0xF0F9, 0xF142, 0xF0F8, 0xC2DA, 0xC2DC, 0xF0FD, 0xC2DB, 0xF0FE, /* 0x60 */
- 0, 0xF144, 0xF352, 0, 0xC3DE, 0xF34F, 0, 0xF353, /* 0x60 */
- 0, 0, 0xC3DB, 0xF351, 0xC3E0, 0, 0xC3DD, 0, /* 0x70 */
- 0xF350, 0, 0xC3DF, 0xF354, 0xC3DA, 0, 0, 0, /* 0x70 */
- 0, 0xC4BC, 0xC4BE, 0, 0xF4D9, 0xC4BD, 0xF4D7, 0xC3DC, /* 0x80 */
- 0xF4D8, 0xC4BB, 0xC543, 0xC545, 0xF656, 0xC544, 0xF655, 0, /* 0x80 */
- 0xF761, 0xC5AD, 0xF760, 0xC5AE, 0xF75E, 0xF75D, 0xF762, 0xF763, /* 0x90 */
- 0xF846, 0, 0xF75F, 0, 0, 0xF8C6, 0xF8C3, 0xF8C4, /* 0x90 */
- 0xF8C5, 0xC65C, 0, 0xF951, 0xF950, 0xF94F, 0xF970, 0, /* 0xA0 */
- 0xF9BE, 0xF9AB, 0xC66E, 0xA8AD, 0xB060, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xB8FA, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0xBDF6, 0, 0, 0xEBC8, 0, 0, /* 0xB0 */
- 0xC2DF, 0, 0xF355, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0xF9AC, 0xA8AE, 0xAAEE, 0xAD79, 0xAD78, 0, 0xB063, /* 0xC0 */
- 0, 0xD3E8, 0xB061, 0xD3E9, 0xB062, 0, 0, 0xD7DF, /* 0xD0 */
- 0xD7DB, 0, 0, 0xB36D, 0xD7DE, 0xD7DD, 0xD7DC, 0xB36E, /* 0xD0 */
- 0xD7E0, 0xD7E1, 0, 0, 0, 0xDC43, 0xDC41, 0xDC45, /* 0xE0 */
- 0xDC46, 0xDC4C, 0, 0xDC48, 0xDC4A, 0, 0xDC42, 0xDBFC, /* 0xE0 */
- 0, 0xDC49, 0, 0, 0xDC4B, 0xDC44, 0xDC47, 0xDBFD, /* 0xF0 */
- 0xB662, 0xDC40, 0xDBFE, 0xB661, 0xB663, 0, 0xB8FD, 0xE075 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_8F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE077, 0xE076, 0xE07B, 0xB8FB, 0, 0xE078, 0xE074, 0xE079, /* 0x00 */
- 0xE07A, 0xB8FC, 0xB8FE, 0xE07C, 0, 0xE467, 0xE466, 0, /* 0x00 */
- 0xE464, 0xE465, 0xBBB3, 0xBBB5, 0xBBB2, 0xBBB4, 0xE84D, 0xE84E, /* 0x10 */
- 0xE849, 0, 0xE84A, 0xBDF8, 0xBDFD, 0xBDF7, 0xBDFE, 0xBDF9, /* 0x10 */
- 0xE84B, 0, 0, 0xE84C, 0xE848, 0xBE40, 0xBDFB, 0, /* 0x20 */
- 0, 0xBDFA, 0xBDFC, 0, 0xE847, 0, 0xEBCA, 0xBFE8, /* 0x20 */
- 0, 0, 0xEBCC, 0xBFEA, 0xEBCF, 0xEBCB, 0xEBC9, 0xEBCE, /* 0x30 */
- 0xBFE9, 0xEBCD, 0, 0xBFE7, 0, 0, 0xC1D3, 0xC1D6, /* 0x30 */
- 0xEEC1, 0, 0xC1D4, 0xEEC0, 0xC1D2, 0xC1D5, 0xF146, 0xF147, /* 0x40 */
- 0xF148, 0xC2E0, 0, 0xF149, 0, 0xC2E1, 0xC3E2, 0xF358, /* 0x40 */
- 0xF359, 0xF357, 0xF356, 0xF35A, 0xC3E1, 0xF4DD, 0xF4DB, 0xF4DC, /* 0x50 */
- 0xF4DE, 0xF4DA, 0xF4DF, 0xF658, 0, 0xF659, 0xF657, 0xC546, /* 0x50 */
- 0xF764, 0xC5AF, 0xF765, 0xF848, 0xF847, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0xA8AF, 0xB664, 0, 0, 0xB940, /* 0x90 */
- 0, 0, 0, 0xBBB6, 0, 0, 0xBFEC, 0, /* 0xA0 */
- 0xBFEB, 0, 0, 0, 0, 0xC3E3, 0xC47C, 0xC547, /* 0xA0 */
- 0xA8B0, 0xB064, 0xB941, 0, 0xF35B, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0xCBA6, /* 0xB0 */
- 0, 0, 0xA8B1, 0, 0xA8B4, 0xA8B3, 0xA8B2, 0, /* 0xC0 */
- 0, 0xCBA5, 0, 0xCDCD, 0, 0xCDCF, 0xAAEF, 0, /* 0xC0 */
- 0, 0xAAF1, 0xCDCC, 0xCDCE, 0xAAF0, 0xCDD1, 0xCDD0, 0xCDD2, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xD0B6, 0xD0B4, 0xAD7C, 0xD0B3, 0xADA3, 0xAD7E, 0xAD7B, 0, /* 0xE0 */
- 0xADA4, 0, 0xAD7D, 0xADA2, 0, 0xADA1, 0xD0B5, 0, /* 0xE0 */
- 0xAD7A, 0, 0, 0, 0xB06A, 0xD3EB, 0xD3F1, 0xB067, /* 0xF0 */
- 0xB06E, 0, 0xB069, 0xD3EE, 0xD3F0, 0xB06C, 0xD3EA, 0xD3ED /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_90[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xB068, 0xB065, 0xD3EC, 0xB06B, 0xD3EF, 0xB06D, 0xB066, 0, /* 0x00 */
- 0, 0, 0, 0xD7E3, 0xD7E6, 0xB370, 0, 0xB37A, /* 0x00 */
- 0xB376, 0xD7E4, 0, 0, 0xB37E, 0xB377, 0xB37C, 0xB372, /* 0x10 */
- 0, 0xB36F, 0xB371, 0xB37D, 0xD7E5, 0xB375, 0xB378, 0xB374, /* 0x10 */
- 0xB379, 0xD7E7, 0xB37B, 0xB373, 0xD7E2, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0xDC4D, 0xB665, 0xDC4F, /* 0x20 */
- 0, 0xB667, 0xB669, 0, 0xDC4E, 0xB666, 0xB66A, 0, /* 0x30 */
- 0xB668, 0, 0, 0, 0xB947, 0xE0A3, 0xB94F, 0xE07E, /* 0x30 */
- 0, 0xB950, 0xB945, 0, 0xE0A1, 0, 0, 0xB94A, /* 0x40 */
- 0, 0xE0A2, 0xB943, 0xB942, 0, 0xB94D, 0xB94C, 0xB94B, /* 0x40 */
- 0xB949, 0xB94E, 0xE07D, 0xB944, 0xB946, 0xB948, 0, 0, /* 0x50 */
- 0xBBB8, 0xBBBB, 0, 0xBBBF, 0xBBB9, 0xBBBE, 0xBBBC, 0, /* 0x50 */
- 0xBBB7, 0, 0xBBBD, 0xBBBA, 0, 0, 0, 0xE852, /* 0x60 */
- 0xBE43, 0xBE41, 0, 0xE853, 0, 0xBE44, 0xBE42, 0xE851, /* 0x60 */
- 0xE850, 0, 0xBFF0, 0xE84F, 0xBFEE, 0xBFED, 0xEBD0, 0xBE45, /* 0x70 */
- 0xBFEF, 0xEBD1, 0xBFF2, 0xEBD2, 0xBFF1, 0xC1D8, 0xEEC3, 0xC1D7, /* 0x70 */
- 0xC1DC, 0xC1DA, 0xC1DB, 0xC2E3, 0xC1D9, 0xEEC2, 0xEBD3, 0xC2E2, /* 0x80 */
- 0xC2E4, 0, 0xC3E4, 0xC3E5, 0, 0xF4E0, 0, 0xC5DE, /* 0x80 */
- 0xC5DD, 0xA8B6, 0, 0, 0xCA55, 0xB06F, 0, 0xCA52, /* 0x90 */
- 0xCA53, 0xCA51, 0, 0xCA54, 0, 0, 0xCBAA, 0xCBA7, /* 0x90 */
- 0xCBAC, 0xCBA8, 0xA8B7, 0xA8BA, 0, 0xCBA9, 0xA8B9, 0xCBAB, /* 0xA0 */
- 0, 0, 0xA8B8, 0, 0, 0, 0, 0xCDD5, /* 0xA0 */
- 0xCDD7, 0xAAF4, 0xCDD3, 0xCDD6, 0xCDD4, 0xAAF2, 0xAAF5, 0, /* 0xB0 */
- 0xAAF3, 0, 0, 0, 0, 0xD0B8, 0xD0BC, 0xD0B9, /* 0xB0 */
- 0, 0xADA7, 0, 0xADA8, 0, 0xD0BB, 0, 0xD0BD, /* 0xC0 */
- 0xD0BF, 0, 0xADA5, 0xD0BE, 0, 0, 0xADA6, 0, /* 0xC0 */
- 0, 0, 0, 0, 0xD7EE, 0xD0BA, 0xD3F2, 0xD3FB, /* 0xD0 */
- 0xD3F9, 0xD3F4, 0xD3F5, 0xD3FA, 0xD3FC, 0xB071, 0, 0xD3F7, /* 0xD0 */
- 0xD3F3, 0xB070, 0xB072, 0xD3F6, 0xD3FD, 0xD3F8, 0, 0, /* 0xE0 */
- 0xB3A1, 0xD7F1, 0xD7E9, 0xD7EF, 0xD7F0, 0xB3A2, 0, 0xD7E8, /* 0xE0 */
- 0xD7EA, 0xD0B7, 0xD7EC, 0xD7ED, 0xD7EB, 0xB66C, 0, 0, /* 0xF0 */
- 0, 0xDC56, 0xEBD4, 0xDC57, 0xDC54, 0xB3A3, 0xB66E, 0xDC53 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_91[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDC59, 0xDC58, 0xB66B, 0xDC5C, 0xDC52, 0xDC5B, 0xDC50, 0xDC5A, /* 0x00 */
- 0xDC55, 0xB66D, 0, 0xE0AA, 0, 0xE0A5, 0xE0AB, 0xE0A6, /* 0x00 */
- 0xE0A4, 0xE0A7, 0xB951, 0, 0xE0A9, 0, 0xE0A8, 0xB952, /* 0x10 */
- 0xBBC1, 0xBBC0, 0xE46E, 0xE471, 0xE469, 0xE46D, 0xBBC2, 0xE46C, /* 0x10 */
- 0xE46A, 0xE470, 0xE46B, 0xE468, 0xE46F, 0, 0xE859, 0xBE48, /* 0x20 */
- 0xF14A, 0xE856, 0xE857, 0xE855, 0xDC51, 0xBE47, 0xE85A, 0xE854, /* 0x20 */
- 0xBE46, 0xBE49, 0xE858, 0xEBD5, 0xBFF3, 0xEBD6, 0xEBD7, 0, /* 0x30 */
- 0xEEC4, 0xC1DD, 0xF14B, 0xF14C, 0, 0, 0xF14D, 0xF35D, /* 0x30 */
- 0xF35C, 0xF4E2, 0, 0xF4E1, 0xF65B, 0xF65C, 0xF65A, 0xF766, /* 0x40 */
- 0xC5B0, 0xA8BB, 0xADAA, 0xADA9, 0xB075, 0xB074, 0xD440, 0xD441, /* 0x40 */
- 0xD3FE, 0, 0xB073, 0xD7F5, 0, 0xD7F6, 0xD7F2, 0xB3A4, /* 0x50 */
- 0xD7F3, 0, 0xD7F4, 0, 0, 0, 0, 0xDC5F, /* 0x50 */
- 0xDC61, 0xDC5D, 0xDC60, 0xB66F, 0xDC5E, 0xB670, 0, 0, /* 0x60 */
- 0xDD73, 0xB955, 0xB954, 0, 0xB953, 0, 0xE0AC, 0xE0AD, /* 0x60 */
- 0, 0, 0xE473, 0xE475, 0xBBC6, 0xBBC3, 0, 0xBBC5, /* 0x70 */
- 0xBBC4, 0xE474, 0xE472, 0, 0, 0, 0, 0, /* 0x70 */
- 0xE861, 0xE85E, 0xE85F, 0xBE4D, 0xE860, 0xE85B, 0xE85C, 0xBE4A, /* 0x80 */
- 0, 0xBE4B, 0xE85D, 0xBE4C, 0, 0xEBDB, 0, 0xEBDC, /* 0x80 */
- 0xEBD9, 0xEBDA, 0xBFF4, 0xEBD8, 0, 0, 0, 0, /* 0x90 */
- 0, 0xEEC8, 0xEEC5, 0xEEC7, 0xC1E0, 0xEECB, 0xC1DF, 0xEEC9, /* 0x90 */
- 0xEECC, 0xEECA, 0xEEC6, 0xC1DE, 0, 0xF14F, 0, 0xF150, /* 0xA0 */
- 0xF14E, 0, 0xF152, 0xC2E5, 0xC2E6, 0xF35F, 0xC3E7, 0xF151, /* 0xA0 */
- 0xF35E, 0xC3E6, 0xF4E5, 0xF4E6, 0xC4BF, 0xF4E4, 0, 0xF4E3, /* 0xB0 */
- 0, 0xF65D, 0xC548, 0, 0xF849, 0xF8C8, 0xF8C7, 0, /* 0xB0 */
- 0xC643, 0xC65D, 0xF8C9, 0xF971, 0, 0xC66F, 0xA8BC, 0xAAF6, /* 0xC0 */
- 0, 0xB956, 0, 0xC4C0, 0xA8BD, 0xADAB, 0xB3A5, 0xB671, /* 0xC0 */
- 0xC2E7, 0xAAF7, 0, 0xD0C1, 0xD0C0, 0xD442, 0, 0xB078, /* 0xD0 */
- 0xB076, 0xB07A, 0xD444, 0, 0xB079, 0xB077, 0, 0, /* 0xD0 */
- 0, 0, 0xD443, 0xB3A8, 0xD7FC, 0, 0xB3A7, 0xB3A9, /* 0xE0 */
- 0xD842, 0xB3AB, 0xD7FE, 0xD840, 0xD7F7, 0xB3AA, 0xD843, 0, /* 0xE0 */
- 0, 0xD7F9, 0, 0xD7FA, 0xD7F8, 0xB3A6, 0, 0xD841, /* 0xF0 */
- 0xD7FB, 0xD7FD, 0, 0, 0, 0xDC6D, 0, 0xDC6C /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_92[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xDC6A, 0xDC62, 0xDC71, 0xDC65, 0xDC6F, 0xDC76, 0xDC6E, 0xB679, /* 0x00 */
- 0, 0xB675, 0xDC63, 0, 0xDC69, 0xB677, 0, 0xDC68, /* 0x00 */
- 0xB678, 0xB67A, 0xDC6B, 0, 0xB672, 0xB673, 0xDC77, 0xDC75, /* 0x10 */
- 0, 0xDC74, 0xDC66, 0, 0xDC72, 0, 0xB676, 0, /* 0x10 */
- 0, 0, 0, 0xB674, 0xDC73, 0xDC64, 0xDC67, 0xDC70, /* 0x20 */
- 0, 0, 0, 0, 0, 0xE4BA, 0xE0B7, 0, /* 0x20 */
- 0xE0B0, 0xE0C3, 0xE0CC, 0xE0B3, 0xB961, 0, 0xE0C0, 0xB957, /* 0x30 */
- 0xB959, 0xB965, 0xE0B1, 0, 0, 0xB95A, 0xB95C, 0xB966, /* 0x30 */
- 0xB95B, 0, 0, 0, 0, 0xB964, 0xE0B9, 0, /* 0x40 */
- 0xE0AE, 0xB962, 0xE0B8, 0xB95E, 0xE0CA, 0xB963, 0xE0C8, 0xE0BC, /* 0x40 */
- 0xE0C6, 0xB960, 0xE0AF, 0xE0C9, 0xE0C4, 0, 0xE0CB, 0xB958, /* 0x50 */
- 0, 0, 0xB967, 0xB95D, 0, 0, 0xE0B5, 0, /* 0x50 */
- 0xE0BD, 0xE0C1, 0, 0xE0C5, 0xB95F, 0xE0B4, 0xE0B2, 0xE0BE, /* 0x60 */
- 0, 0, 0, 0, 0xE0BB, 0xE0BA, 0, 0xE0BF, /* 0x60 */
- 0xE0C2, 0, 0xE0C7, 0, 0, 0, 0xE478, 0, /* 0x70 */
- 0xBBC7, 0xE4A4, 0xE47A, 0xBBCC, 0xBBD0, 0xE4AD, 0xE4B5, 0xE4A6, /* 0x70 */
- 0xBBC8, 0, 0xE4AA, 0xE0B6, 0, 0xBBC9, 0xE4B1, 0xE4B6, /* 0x80 */
- 0xE4AE, 0, 0xE4B0, 0xE4B9, 0xE4B2, 0xE47E, 0xE4A9, 0, /* 0x80 */
- 0, 0xBBD1, 0, 0xBBCD, 0xE47C, 0xE4AB, 0xBBCB, 0xE4A5, /* 0x90 */
- 0xBBCA, 0xE4B3, 0xE4A2, 0xE479, 0xBBCE, 0xE4B8, 0, 0, /* 0x90 */
- 0xE47B, 0xE4AF, 0xE4AC, 0xE4A7, 0xE477, 0xE476, 0xE4A1, 0xE4B4, /* 0xA0 */
- 0xBBCF, 0xE4B7, 0xE47D, 0xE4A3, 0xBE52, 0, 0, 0, /* 0xA0 */
- 0, 0, 0xBE5A, 0xBE55, 0xE8A4, 0xE8A1, 0xE867, 0xBE50, /* 0xB0 */
- 0, 0xF9D7, 0, 0xBE4F, 0xBE56, 0, 0, 0, /* 0xB0 */
- 0xE865, 0xBE54, 0xE871, 0xE863, 0xE864, 0xBE4E, 0xE8A3, 0xBE58, /* 0xC0 */
- 0xE874, 0xE879, 0xE873, 0xEBEE, 0xE86F, 0xE877, 0xE875, 0xE868, /* 0xC0 */
- 0xE862, 0xE87D, 0xBE57, 0xE87E, 0, 0xE878, 0, 0xE86D, /* 0xD0 */
- 0xE86B, 0xE866, 0, 0, 0, 0xE86E, 0xE87B, 0xE86A, /* 0xD0 */
- 0xE87A, 0xE8A2, 0, 0, 0xBE53, 0, 0xE876, 0xE87C, /* 0xE0 */
- 0xE872, 0xE86C, 0xBE51, 0, 0, 0, 0xE4A8, 0xE870, /* 0xE0 */
- 0xBE59, 0xE869, 0, 0, 0, 0, 0, 0xEBF4, /* 0xF0 */
- 0xBFF7, 0xEBF3, 0xEBF0, 0xEC44, 0xBFFB, 0, 0xEC41, 0xEBF8 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_93[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEC43, 0xEBE9, 0xEBF6, 0, 0xBFFD, 0, 0xEBE1, 0, /* 0x00 */
- 0xEBDF, 0xEC42, 0, 0xEC40, 0xEBFE, 0xEBED, 0xEBEC, 0xEBE2, /* 0x00 */
- 0xC040, 0, 0xEBE8, 0xEBF2, 0xEBFD, 0xC043, 0xEC45, 0, /* 0x10 */
- 0xC1E8, 0xC045, 0xBFFE, 0xEBE6, 0, 0xEBEF, 0xEBDE, 0xEBE0, /* 0x10 */
- 0xBFF5, 0xC042, 0xBFFA, 0xEBE7, 0xEBF7, 0xEBF1, 0xC041, 0xEBDD, /* 0x20 */
- 0xC1E3, 0xEBF9, 0xEBFC, 0xBFFC, 0, 0xEBEB, 0xC044, 0xBFF9, /* 0x20 */
- 0, 0, 0, 0xBFF8, 0xEBF5, 0xEBFB, 0xBFF6, 0, /* 0x30 */
- 0xEBE4, 0xEBFA, 0, 0, 0xEBE5, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0xEBEA, 0xEED2, /* 0x40 */
- 0, 0xEED7, 0xC1E5, 0xC1E7, 0xEEDD, 0xC1E1, 0xEEEC, 0xEEE3, /* 0x40 */
- 0xEED8, 0xEED9, 0xEEE2, 0, 0xC1EE, 0xEEE1, 0xEED1, 0xEEE0, /* 0x50 */
- 0xEED4, 0xEEED, 0xC1ED, 0xC1EB, 0xEED5, 0, 0xEEE8, 0, /* 0x50 */
- 0xEEDA, 0xEEE7, 0, 0xEEE9, 0xEED0, 0xC1E6, 0, 0xEEEA, /* 0x60 */
- 0, 0, 0xEEDE, 0, 0xC1EA, 0xEEDB, 0, 0, /* 0x60 */
- 0xC1EC, 0xEEE4, 0, 0, 0, 0xC1E4, 0xEED6, 0xEEE5, /* 0x70 */
- 0, 0xEEDF, 0xEBE3, 0xEEE6, 0xEED3, 0, 0xC1E9, 0, /* 0x70 */
- 0xEEEB, 0, 0xC1E2, 0xEECE, 0, 0, 0, 0, /* 0x80 */
- 0xF160, 0xF159, 0xC2E9, 0, 0xF154, 0xF163, 0xF15B, 0xEEDC, /* 0x80 */
- 0, 0xF165, 0xF155, 0, 0xC2E8, 0xF15F, 0xC2EA, 0xC2F2, /* 0x90 */
- 0xC2F0, 0xF161, 0xC2F1, 0xF157, 0, 0xF158, 0xF15D, 0xF162, /* 0x90 */
- 0, 0xEECD, 0xC2EB, 0xF16A, 0xF167, 0xF16B, 0xF15E, 0xF15A, /* 0xA0 */
- 0xF168, 0xF36A, 0xF15C, 0, 0xC2EE, 0, 0xC2ED, 0xEECF, /* 0xA0 */
- 0xC2EF, 0xF164, 0xF166, 0xC2EC, 0xF169, 0xF153, 0, 0xF156, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0xF373, 0, 0xF363, 0xC3EB, 0xF371, 0, 0, 0xF361, /* 0xC0 */
- 0xC3EC, 0, 0xF36C, 0, 0xF368, 0xC3F1, 0xF372, 0xF362, /* 0xC0 */
- 0xF365, 0xC3E9, 0xF374, 0, 0xF36D, 0xF370, 0xC3EF, 0xC3F4, /* 0xD0 */
- 0xC3F2, 0xF369, 0xF364, 0, 0xC3ED, 0xC3EE, 0xF360, 0xC3EA, /* 0xD0 */
- 0, 0xC3E8, 0xC3F0, 0xF36F, 0xC3F3, 0, 0xF36B, 0xF375, /* 0xE0 */
- 0xC3F5, 0, 0, 0, 0xF367, 0, 0xF36E, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xF4F3, 0xF542, 0xF4F5, /* 0xF0 */
- 0xF4FC, 0xF366, 0xF4FA, 0xF4E9, 0xF540, 0xC4C3, 0xF4ED, 0xF4FE /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_94[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF4F4, 0, 0, 0xC4C2, 0, 0, 0xF544, 0xF4F6, /* 0x00 */
- 0, 0xF4FB, 0xF4FD, 0xF4E7, 0xF541, 0xF4F2, 0xF4F7, 0xF4EB, /* 0x00 */
- 0xF4EF, 0xF543, 0xF4F9, 0xF4E8, 0xF4EC, 0xF4EE, 0xF4F8, 0, /* 0x10 */
- 0xC4C1, 0xF4F1, 0, 0, 0, 0, 0, 0, /* 0x10 */
- 0xF4EA, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0xF4F0, 0xF661, 0xF666, 0xC54F, 0xF668, 0, 0xC549, 0, /* 0x20 */
- 0xF664, 0xF66A, 0xC54E, 0xC54A, 0, 0xC54B, 0xF660, 0xF667, /* 0x30 */
- 0xC54D, 0xF665, 0xC54C, 0xF65F, 0xF663, 0xF662, 0, 0xF65E, /* 0x30 */
- 0xF669, 0, 0, 0, 0xC5B1, 0xF76D, 0xF770, 0xF76C, /* 0x40 */
- 0xF76E, 0xF76F, 0xF769, 0xF76A, 0xF767, 0, 0, 0xF76B, /* 0x40 */
- 0xF768, 0xC5B2, 0xC5B3, 0, 0, 0xF84B, 0, 0xF84D, /* 0x50 */
- 0, 0, 0, 0, 0, 0xF84C, 0xF84E, 0, /* 0x50 */
- 0xC5E0, 0, 0xF84A, 0xC5DF, 0xC5E1, 0, 0, 0, /* 0x60 */
- 0xF8CB, 0xF8CC, 0xC644, 0xF8CA, 0, 0xF953, 0xF952, 0xF954, /* 0x60 */
- 0xC65F, 0xF955, 0xC65E, 0xF956, 0xF972, 0xF975, 0xF974, 0xC668, /* 0x70 */
- 0xF973, 0, 0, 0, 0xC672, 0xC670, 0xC671, 0xC677, /* 0x70 */
- 0xF9C0, 0xF9C1, 0xF9BF, 0xF9C9 /* 0x80 */
- /* 0x80 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_95[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xAAF8, /* 0x70 */
- 0, 0, 0xD844, 0xDC78, 0xE8A5, 0xF376, 0, 0, /* 0x70 */
- 0xAAF9, 0, 0xADAC, 0xB07B, 0, 0, 0xD845, 0, /* 0x80 */
- 0xD846, 0xB3AC, 0, 0xB67D, 0xDC7A, 0xDC79, 0xB6A3, 0xB67C, /* 0x80 */
- 0xDC7B, 0xB67E, 0xB6A2, 0xB6A1, 0xB67B, 0, 0, 0, /* 0x90 */
- 0xB968, 0, 0, 0xE0D0, 0xE0CE, 0, 0xE0CF, 0xE0CD, /* 0x90 */
- 0, 0xBBD2, 0, 0xBBD5, 0xBBD7, 0xBBD6, 0, 0, /* 0xA0 */
- 0xBBD3, 0xBBD4, 0, 0xE8A7, 0xE8A6, 0xBE5B, 0xE8A8, 0, /* 0xA0 */
- 0xE8A9, 0xBE5C, 0, 0, 0, 0xEC4D, 0xEC4B, 0xEEF3, /* 0xB0 */
- 0, 0xEC49, 0xEC4A, 0xC046, 0xEC46, 0xEC4E, 0xEC48, 0xEC4C, /* 0xB0 */
- 0xEEEF, 0, 0, 0xEEF1, 0, 0xEEF2, 0xC1F3, 0xEEEE, /* 0xC0 */
- 0xC1F2, 0xEEF0, 0xC1EF, 0xC1F0, 0xC1F1, 0xEC47, 0, 0, /* 0xC0 */
- 0xC2F5, 0xF16E, 0xF16C, 0xF16D, 0xC2F3, 0xC2F6, 0xC2F4, 0, /* 0xD0 */
- 0, 0, 0xF377, 0xF378, 0xC3F6, 0, 0xF545, 0xF547, /* 0xD0 */
- 0xF546, 0xC4C4, 0xC550, 0xF66D, 0xF66C, 0xF66B /* 0xE0 */
- /* 0xE0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_96[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x10 */
- 0xAAFA, 0, 0xC9AA, 0, /* 0x10 */
- 0xCA58, 0xA6E9, 0xCA56, 0xCA59, 0xCA57, 0, 0, 0, /* 0x20 */
- 0xCBAE, 0, 0xA8C1, 0, 0xA8C2, 0xCBB0, 0xA8BF, 0xCBAF, /* 0x20 */
- 0xCBAD, 0xA8C0, 0xA8BE, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0xCDD8, 0xCDDB, 0xAAFD, 0xCDDA, 0xCDD9, 0, 0xAAFC, /* 0x30 */
- 0xAAFB, 0, 0xAB40, 0xCDDC, 0xAAFE, 0, 0, 0, /* 0x40 */
- 0, 0, 0xD0C6, 0xADAE, 0xADAF, 0xADB0, 0xD0C7, 0xD0C3, /* 0x40 */
- 0xADAD, 0xD0C4, 0, 0xD0C5, 0xD0C2, 0, 0, 0, /* 0x50 */
- 0xB0A4, 0, 0, 0xB0A1, 0xD445, 0xB0A2, 0xB0A5, 0xD446, /* 0x50 */
- 0, 0xB07E, 0xB07C, 0xB07D, 0xB0A3, 0, 0, 0, /* 0x60 */
- 0, 0, 0xB3AD, 0xD849, 0xB3B5, 0xD848, 0, 0xD84B, /* 0x60 */
- 0xB3B1, 0xD84A, 0xB6AB, 0xB3AF, 0xB3B2, 0xB3AE, 0xB3B3, 0xB3B4, /* 0x70 */
- 0xB3B0, 0, 0, 0, 0xD847, 0xB6A7, 0xDC7D, 0, /* 0x70 */
- 0xDCA3, 0, 0, 0xDCA2, 0xB6AC, 0xB6A8, 0xB6A9, 0xDC7C, /* 0x80 */
- 0xDC7E, 0xDCA1, 0xB6A4, 0xB6A6, 0, 0xB6AA, 0xB6A5, 0, /* 0x80 */
- 0, 0xE0D3, 0xE0D1, 0xE0D2, 0xB96A, 0xB96B, 0, 0xE0D4, /* 0x90 */
- 0xB969, 0xBBD8, 0, 0xBBDA, 0xBBD9, 0, 0xE4BB, 0, /* 0x90 */
- 0, 0xE4BC, 0xE8AB, 0, 0xE8AA, 0, 0, 0xC047, /* 0xA0 */
- 0xC048, 0xEC4F, 0xC049, 0, 0xEEF6, 0, 0xEEF4, 0, /* 0xA0 */
- 0xEEF5, 0xC1F4, 0, 0xF16F, 0xC3F7, 0, 0, 0, /* 0xB0 */
- 0xC1F5, 0xAB41, 0, 0xB0A6, 0xD447, 0, 0, 0xD84C, /* 0xB0 */
- 0xB3B6, 0xB6AD, 0xDCA4, 0xDCA6, 0xB6AF, 0xB6AE, 0xB6B0, 0xB6B1, /* 0xC0 */
- 0xDCA5, 0xB96E, 0xB96F, 0xB96D, 0xBBDB, 0xB96C, 0xE0D5, 0, /* 0xC0 */
- 0, 0, 0xBBDC, 0xE8AC, 0xEC50, 0xC04A, 0xC1F6, 0xF170, /* 0xD0 */
- 0xF174, 0xC2F9, 0xF171, 0xC2FA, 0xC2F8, 0xF175, 0xC2FB, 0xF173, /* 0xD0 */
- 0, 0xF379, 0xC2F7, 0xC3F8, 0, 0xF8CD, 0, 0, /* 0xE0 */
- 0xAB42, 0xB3B8, 0xB3B7, 0, 0, 0, 0, 0xB6B2, /* 0xE0 */
- 0xDCA8, 0xDCA7, 0xB6B3, 0, 0, 0xE0D9, 0xB973, 0xB970, /* 0xF0 */
- 0xE0D8, 0xB972, 0xE0D6, 0xB971, 0, 0xE0D7, 0, 0xE4BD /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_97[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xBBDD, 0, 0xE8AF, 0, 0xBE5D, 0xE8AD, 0xBE5E, 0xBE5F, /* 0x00 */
- 0xE8AE, 0xBE60, 0, 0xEC51, 0, 0xC04E, 0xC04B, 0xC050, /* 0x00 */
- 0xEC53, 0xC04C, 0xEC52, 0xC04F, 0, 0, 0xC04D, 0, /* 0x10 */
- 0xEEF9, 0xEEFB, 0, 0, 0xC1F7, 0xEEFA, 0xC1F8, 0xEEF8, /* 0x10 */
- 0xEEF7, 0, 0xF177, 0xF176, 0xC2FC, 0xF178, 0xF37E, 0xC3FA, /* 0x20 */
- 0xF37D, 0xF37A, 0xC3F9, 0xF37B, 0xF37C, 0, 0xF548, 0xF549, /* 0x20 */
- 0xC4C5, 0, 0xC553, 0, 0, 0xF66E, 0, 0, /* 0x30 */
- 0xC551, 0xC552, 0xF66F, 0, 0, 0xC5B4, 0xC5B5, 0xF771, /* 0x30 */
- 0, 0, 0xC645, 0xF8CF, 0xC647, 0, 0xF8CE, 0xF8D0, /* 0x40 */
- 0xC646, 0xF957, 0, 0xF9AD, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0xAB43, 0, 0, 0, 0xB974, 0, /* 0x50 */
- 0xE4BE, 0, 0xE8B0, 0xC051, 0xC052, 0, 0xAB44, 0, /* 0x50 */
- 0xBE61, 0xC3FB, 0xADB1, 0, 0, 0, 0xC053, 0, /* 0x60 */
- 0xC5E2, 0xADB2, 0xD84D, 0, 0xDCA9, 0, 0xDCAB, 0, /* 0x60 */
- 0xDCAA, 0, 0xE0DD, 0xE0DA, 0xB975, 0, 0xB976, 0xE0DB, /* 0x70 */
- 0xE0DC, 0, 0xE4C0, 0xE4C5, 0xBBDE, 0xE4BF, 0xE4C1, 0xE4C8, /* 0x70 */
- 0xE4C3, 0xE4C7, 0xE4C4, 0xE4C2, 0xE4C6, 0xBBDF, 0, 0, /* 0x80 */
- 0xE8B3, 0, 0xE8B1, 0xBE63, 0, 0xBE62, 0xE8B2, 0xBE64, /* 0x80 */
- 0, 0, 0, 0, 0xEC56, 0, 0, 0xEC55, /* 0x90 */
- 0xC054, 0xEC54, 0xEEFC, 0, 0xEEFE, 0xEF41, 0xEF40, 0, /* 0x90 */
- 0xC1F9, 0xEEFD, 0xF1A1, 0xC2FD, 0xF17D, 0xF1A2, 0xC2FE, 0, /* 0xA0 */
- 0xF17B, 0, 0xF17E, 0xF17C, 0xF179, 0xC340, 0xF17A, 0, /* 0xA0 */
- 0, 0, 0, 0xF3A1, 0, 0, 0xF3A3, 0xF3A2, /* 0xB0 */
- 0, 0xF54A, 0, 0xF54B, 0, 0, 0, 0xF670, /* 0xB0 */
- 0, 0xC5B7, 0, 0xC5B6, 0xF84F, 0xF850, 0xC648, 0xF8D1, /* 0xC0 */
- 0, 0xC669, 0, 0xADB3, 0xB6B4, 0xE4CA, 0xE4C9, 0xE8B5, /* 0xC0 */
- 0xE8B4, 0, 0, 0xC1FA, 0xEF43, 0xEF42, 0xF1A5, 0xF1A3, /* 0xD0 */
- 0xF1A6, 0xF1A4, 0, 0, 0xC3FC, 0xF3A4, 0xF3A5, 0xF3A6, /* 0xD0 */
- 0, 0xF671, 0, 0xF772, 0, 0xF8D2, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0xADB4, 0, 0, /* 0xE0 */
- 0xEC57, 0xEF44, 0, 0xADB5, 0, 0, 0xBBE0, 0, /* 0xF0 */
- 0xEC58, 0xC341, 0xF1A7, 0xC3FD, 0, 0xF54C, 0xF54D, 0xC554 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_98[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF851, 0xADB6, 0xB3BB, 0xB3BC, 0xD84E, 0xB6B5, 0xB6B6, 0xDCAC, /* 0x00 */
- 0xB6B7, 0, 0xB97A, 0, 0xB97C, 0xE0DF, 0xE0E0, 0xE0DE, /* 0x00 */
- 0xB977, 0xB978, 0xB97B, 0xB979, 0, 0, 0xE4CB, 0xBBE1, /* 0x10 */
- 0xBBE2, 0, 0, 0xE8BC, 0xBE67, 0xE8B7, 0xE8B6, 0, /* 0x10 */
- 0xE8BB, 0xBE65, 0, 0, 0xC05B, 0, 0xE8B8, 0xE8BD, /* 0x20 */
- 0xE8BA, 0xE8B9, 0, 0xBE66, 0, 0xC059, 0, 0xEC5A, /* 0x20 */
- 0xC055, 0, 0xEC5B, 0, 0, 0xEC59, 0, 0xC058, /* 0x30 */
- 0xC056, 0xC05A, 0, 0xC057, 0, 0, 0, 0, /* 0x30 */
- 0, 0xEF45, 0, 0xEF4A, 0xEF46, 0xEF49, 0xC1FB, 0, /* 0x40 */
- 0xEDD4, 0xEF48, 0xEF47, 0, 0xC344, 0xC342, 0xC345, 0xC343, /* 0x40 */
- 0xF1A8, 0xF1A9, 0xF1AA, 0xC346, 0, 0, 0, 0xF3AA, /* 0x50 */
- 0xC440, 0xF3A8, 0, 0xC441, 0xF3A7, 0xF3A9, 0xC3FE, 0xF551, /* 0x50 */
- 0xF54E, 0, 0xF54F, 0xF550, 0xF672, 0xC556, 0, 0xC555, /* 0x60 */
- 0, 0xF774, 0xF773, 0xC5B8, 0, 0, 0, 0xC5E3, /* 0x60 */
- 0xC649, 0xC660, 0xF958, 0xF9AE, 0xF9AF, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xADB7, 0xDCAD, 0, 0, 0xE0E1, 0xE4CC, 0xE4CD, 0xBBE3, /* 0xA0 */
- 0, 0xBBE4, 0xE8BE, 0xBE68, 0, 0, 0xC1FC, 0, /* 0xB0 */
- 0xF1AB, 0, 0xC347, 0xF3AD, 0xC442, 0xF3AC, 0xF3AE, 0xF3AB, /* 0xB0 */
- 0xF675, 0xF552, 0xF553, 0, 0xC4C6, 0, 0xF674, 0, /* 0xC0 */
- 0, 0xF673, 0, 0xF775, 0xF9B0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0xADB8, 0, 0, 0, 0xADB9, /* 0xD0 */
- 0, 0, 0xB0A7, 0xD448, 0, 0xD84F, 0, 0xB6B8, /* 0xE0 */
- 0, 0xB6BB, 0xB6B9, 0xDCAE, 0, 0xB6BD, 0, 0xB6BA, /* 0xE0 */
- 0, 0, 0xB6BC, 0, 0xB97E, 0, 0xE0E2, 0, /* 0xF0 */
- 0, 0xE0E3, 0xE8C0, 0, 0xB97D, 0xB9A1, 0xB9A2 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_99[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE4CF, 0, 0xE4CE, 0xBBE5, 0, 0xBBE6, 0, 0xE4D0, /* 0x00 */
- 0xE8BF, 0xBBE8, 0xBE69, 0, 0xBBE7, 0, 0, 0, /* 0x00 */
- 0xC05C, 0xE8C1, 0xBE6B, 0xBE6A, 0xE8C2, 0xE8C5, 0xE8C3, 0xE8C4, /* 0x10 */
- 0xBE6C, 0, 0xC061, 0xC05F, 0, 0, 0xC05E, 0xEC5D, /* 0x10 */
- 0, 0xC060, 0, 0, 0xEC5C, 0xEF4B, 0, 0xEC5E, /* 0x20 */
- 0xC05D, 0xEC5F, 0xEF4E, 0xEF4C, 0xEF4D, 0xEF52, 0xC34B, 0xEF51, /* 0x20 */
- 0xEF54, 0xEF53, 0xEF50, 0xEF4F, 0, 0xC1FD, 0, 0, /* 0x30 */
- 0, 0, 0xF1AE, 0, 0xF1AD, 0xC34A, 0xC348, 0xC349, /* 0x30 */
- 0, 0xF1AC, 0, 0xF3B1, 0, 0xC443, 0, 0xF3B0, /* 0x40 */
- 0xF3AF, 0xC444, 0, 0xF558, 0xF557, 0, 0xF555, 0, /* 0x40 */
- 0xF554, 0xC4C8, 0xC4C7, 0xF559, 0xF776, 0xC5B9, 0xF677, 0xC557, /* 0x50 */
- 0xF676, 0xF556, 0, 0xF777, 0xC5E4, 0, 0xC661, 0xF959, /* 0x50 */
- 0, 0xF9B1, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0xADBA, 0xD850, /* 0x90 */
- 0xEF55, 0xADBB, 0, 0, 0xE4D2, 0xE4D1, 0xEC60, 0, /* 0x90 */
- 0, 0xEF57, 0, 0xEF56, 0, 0xC34C, 0xF3B2, 0xF3B3, /* 0xA0 */
- 0xC4C9, 0, 0, 0xF9B2, 0xB0A8, 0xB6BF, 0xB6BE, 0xE0E4, /* 0xA0 */
- 0xE0E6, 0xB9A4, 0xE0E5, 0xB9A3, 0xB9A5, 0xE0E7, 0, 0, /* 0xB0 */
- 0, 0xE4D4, 0xE4D6, 0xE4D5, 0, 0xE4D8, 0, 0, /* 0xB0 */
- 0, 0xBBE9, 0xE4D7, 0xE4D3, 0, 0, 0, 0xE4D9, /* 0xC0 */
- 0, 0xE8CC, 0, 0xE8CF, 0xE8D1, 0xE8C7, 0xE8CB, 0xE8C8, /* 0xC0 */
- 0xBE6E, 0xBE71, 0xBE73, 0xE8C9, 0xE8CA, 0xBE72, 0xE8CD, 0xE8D0, /* 0xD0 */
- 0xE8CE, 0xBE74, 0, 0xBE70, 0xE8C6, 0xBE6D, 0, 0xBE6F, /* 0xD0 */
- 0, 0, 0xC063, 0xEC66, 0xEC64, 0xEC63, 0, 0xEC69, /* 0xE0 */
- 0, 0xEC68, 0xEC67, 0, 0xEC62, 0xC062, 0xEC61, 0, /* 0xE0 */
- 0xEC65, 0xC064, 0, 0, 0xEF5A, 0, 0xEF5E, 0xEF5B, /* 0xF0 */
- 0xEF5D, 0xEF5C, 0xEF59, 0xEF5F, 0xEF62, 0xEF60, 0xEF61, 0xC240 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_9A[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xC1FE, 0xEF58, 0xEF63, 0xF1B3, 0xF1B6, 0xF1B8, 0xF1B7, /* 0x00 */
- 0, 0xF1B1, 0xF1B5, 0xF1B0, 0, 0xF1B2, 0xC34D, 0xF1AF, /* 0x00 */
- 0, 0xF1B4, 0, 0, 0xF3C0, 0xF3B5, 0xC445, 0, /* 0x10 */
- 0, 0xC446, 0xF3B4, 0xF3B9, 0xF3BF, 0xF3B7, 0xF3BE, 0, /* 0x10 */
- 0xF3BB, 0, 0xF3BA, 0xF3BD, 0xF3B8, 0xF3B6, 0, 0xF3BC, /* 0x20 */
- 0, 0xF560, 0xF55E, 0xC4CA, 0xF55D, 0xF563, 0xF561, 0, /* 0x20 */
- 0xC4CB, 0xF55C, 0xF55A, 0, 0xF55B, 0xC4CD, 0xF55F, 0xC4CC, /* 0x30 */
- 0xF562, 0xF678, 0xF67E, 0, 0, 0xF679, 0xC55B, 0xF6A1, /* 0x30 */
- 0xC55A, 0xF67D, 0xF67C, 0xC559, 0xF67B, 0xC558, 0xF67A, 0, /* 0x40 */
- 0xF77D, 0xF7A1, 0xF77E, 0, 0xF77B, 0xC5BB, 0xF778, 0xF77C, /* 0x40 */
- 0xF7A3, 0, 0xF7A2, 0xF779, 0xF77A, 0xC5BA, 0xF852, 0xC5E7, /* 0x50 */
- 0, 0xF853, 0xC5E5, 0xC5E6, 0, 0, 0xF8D3, 0xC64A, /* 0x50 */
- 0xF976, 0, 0xC66A, 0, 0xF9B3, 0xC66B, 0xF9B4, 0xF9B5, /* 0x60 */
- 0xF9C3, 0xF9C2, 0xC67A, 0xF9CD, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0xB0A9, 0, 0, 0xE0E9, 0, 0xE0E8, 0, 0xBBEA, /* 0xA0 */
- 0xBBEB, 0xE4DA, 0, 0xE8D2, 0xEC6C, 0, 0, 0xBE75, /* 0xB0 */
- 0xC065, 0xEC6A, 0, 0xEC6D, 0xC066, 0, 0xEF64, 0xEC6B, /* 0xB0 */
- 0xF1B9, 0xC34E, 0xF3C1, 0, 0, 0, 0xF566, 0xF564, /* 0xC0 */
- 0, 0, 0xF565, 0, 0, 0xF6A2, 0, 0xC55C, /* 0xC0 */
- 0xF7A4, 0xC5EA, 0xC5BC, 0xC5E8, 0xC5E9, 0xF8D4, 0xC662, 0, /* 0xD0 */
- 0xB0AA, 0, 0, 0, 0xF1BA, 0, 0, 0xD449, /* 0xD0 */
- 0, 0xB9A6, 0, 0xE4DB, 0, 0, 0xBBEC, 0xE4DC, /* 0xE0 */
- 0, 0, 0, 0xE8D4, 0xE8D3, 0xC068, 0xBE76, 0xBE77, /* 0xE0 */
- 0, 0xE8D7, 0xE8D6, 0xE8D5, 0, 0, 0xEC6E, 0xEC71, /* 0xF0 */
- 0, 0xEC70, 0xEC6F, 0xC067, 0xEF68, 0xEF66, 0xEF65 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_9B[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xEF67, 0, 0xC34F, 0xF1BC, 0xF1BD, 0xC350, 0, /* 0x00 */
- 0xF1BB, 0, 0xF3C3, 0xF3C2, 0xF3C5, 0xC447, 0xF3C4, 0, /* 0x00 */
- 0xF567, 0xF569, 0xF568, 0, 0, 0xF6A3, 0xF6A6, 0xF6A4, /* 0x10 */
- 0xF6A5, 0xF7A5, 0xC5BD, 0, 0, 0, 0xF854, 0xF855, /* 0x10 */
- 0xF856, 0, 0xC64B, 0xC663, 0xF9B6, 0xB0AB, 0, 0xBE78, /* 0x20 */
- 0xC069, 0xF1BE, 0, 0xF7A6, 0, 0, 0xF9C4, 0xD44A, /* 0x20 */
- 0, 0xC67B, 0xB0AC, 0xEC72, 0, 0xF1BF, 0, 0xF3C6, /* 0x30 */
- 0, 0, 0xF6A7, 0xF7A7, 0xB0AD, 0, 0xE4DD, 0xE4DE, /* 0x30 */
- 0, 0xBBED, 0xBBEE, 0xE8D9, 0xBE7A, 0xBE79, 0xE8D8, 0, /* 0x40 */
- 0xEF69, 0, 0xF1C0, 0xF1C2, 0xF1C1, 0xC353, 0xC352, 0xC351, /* 0x40 */
- 0, 0xC55E, 0xF6A8, 0, 0xC55D, 0xF7A9, 0xF7A8, 0, /* 0x50 */
- 0xC64C, 0xF8D5, 0xB3BD, 0xE0EA, 0, 0, 0, 0xE4E1, /* 0x50 */
- 0xE4DF, 0xE4E0, 0, 0, 0xE8E2, 0, 0xE8DD, 0xE8DA, /* 0x60 */
- 0xE8E1, 0, 0, 0, 0xE8E3, 0, 0, 0xBE7C, /* 0x60 */
- 0xE8E0, 0xE8DC, 0, 0, 0xE8DB, 0xE8DF, 0xE8DE, 0xBE7B, /* 0x70 */
- 0, 0, 0xEC7D, 0xEC78, 0xEC76, 0xECA1, 0xEC77, 0, /* 0x70 */
- 0xEC73, 0, 0xEC79, 0, 0, 0xEC74, 0xEF72, 0xEC75, /* 0x80 */
- 0xECA2, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0xEC7C, 0xC06A, 0xEC7B, 0xEC7A, 0, 0xEC7E, 0, 0, /* 0x90 */
- 0, 0, 0xEF6A, 0xEF6D, 0, 0, 0xEF6C, 0, /* 0x90 */
- 0xEF74, 0xEF6F, 0xEF73, 0, 0xEF71, 0xEF70, 0xEF6E, 0, /* 0xA0 */
- 0xEF6B, 0, 0xC243, 0xC242, 0, 0xC244, 0xC241, 0xEF75, /* 0xA0 */
- 0, 0, 0, 0, 0, 0xF1C8, 0xF1CB, 0, /* 0xB0 */
- 0xF1C9, 0xF1CD, 0, 0, 0, 0xF1CE, 0, 0xF1C6, /* 0xB0 */
- 0xC358, 0xF1C7, 0, 0xF1C5, 0xF1CC, 0, 0xF1C4, 0xF1C3, /* 0xC0 */
- 0xC357, 0xC355, 0xC354, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0xF1CA, 0xF3CF, 0xF3D5, 0xC44A, 0xF3D0, /* 0xD0 */
- 0, 0xF3D3, 0xF3D7, 0xC44B, 0xF3D2, 0, 0xF3CA, 0, /* 0xD0 */
- 0xF3C9, 0xF3D6, 0xF3CD, 0, 0xF3CB, 0xF3D4, 0xF3CC, 0xC449, /* 0xE0 */
- 0xC448, 0, 0xF3C7, 0xF3C8, 0xF3D1, 0, 0, 0, /* 0xE0 */
- 0xF3CE, 0, 0, 0, 0, 0, 0, 0xF56C, /* 0xF0 */
- 0xF56F, 0, 0, 0, 0, 0xC356 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_9C[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF56D, 0xF573, 0xF571, /* 0x00 */
- 0xF56B, 0xF576, 0, 0xF56A, 0, 0xC4CF, 0xF572, 0, /* 0x00 */
- 0, 0, 0xF56E, 0xC4CE, 0xF575, 0, 0, 0xF574, /* 0x10 */
- 0, 0, 0, 0, 0xF6AB, 0xF6AA, 0, 0, /* 0x10 */
- 0, 0xF6B1, 0, 0xF6AD, 0xF6B0, 0xC560, 0, 0, /* 0x20 */
- 0xF6AE, 0xF6AF, 0, 0xF6A9, 0xF6AC, 0xC55F, 0, 0, /* 0x20 */
- 0, 0xC5BF, 0xF7B4, 0xF7AF, 0xF7B3, 0, 0xF7B6, 0xF7B2, /* 0x30 */
- 0, 0xF7AE, 0, 0xC5C1, 0xF7B1, 0xF7B5, 0xC5C0, 0xF7AC, /* 0x30 */
- 0xF570, 0xF7B0, 0, 0, 0xF7AD, 0, 0xF7AA, 0, /* 0x40 */
- 0xF7AB, 0xC5BE, 0xF85A, 0xF85C, 0xF85F, 0xF85B, 0xF860, 0, /* 0x40 */
- 0xF859, 0, 0xF857, 0, 0xC5EB, 0xF85D, 0xC5ED, 0xC5EC, /* 0x50 */
- 0xF858, 0xF85E, 0, 0, 0, 0, 0xF8DA, 0xC64D, /* 0x50 */
- 0xF8DB, 0, 0xF8D9, 0xF8D6, 0, 0, 0xF8D8, 0xF8D7, /* 0x60 */
- 0xF95A, 0, 0, 0, 0, 0xF95C, 0xF95B, 0, /* 0x60 */
- 0, 0xF979, 0, 0xF978, 0xF977, 0xF97A, 0, 0xC673, /* 0x70 */
- 0xC674, 0xF9CA, 0xF9CE, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0xB3BE, 0xDCAF, 0xE0ED, /* 0xE0 */
- 0, 0xB9A7, 0xE0EB, 0, 0, 0xE0EC, 0, 0, /* 0xE0 */
- 0, 0xE4E2, 0xE4E3, 0xBBF1, 0xBBEF, 0xE4E4, 0xBBF0, 0xE8E8, /* 0xF0 */
- 0, 0xE8EB, 0xE8E5, 0xE8EC, 0xE8E4, 0xE8E6, 0, 0xE8E7 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_9D[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xE8EA, 0, 0, 0xBEA1, 0xE8EF, 0xE8EE, 0xBE7D, 0xE8E9, /* 0x00 */
- 0xE8ED, 0xBE7E, 0, 0, 0, 0, 0, 0, /* 0x00 */
- 0xECAC, 0, 0xC06F, 0, 0xECA7, 0xC06B, 0, 0xECA4, /* 0x10 */
- 0xECAA, 0xECAD, 0, 0xC070, 0, 0xECA9, 0xECA6, 0xECAE, /* 0x10 */
- 0xECA5, 0, 0xECAB, 0xC06C, 0, 0xECA3, 0xC06D, 0, /* 0x20 */
- 0xC06E, 0xECA8, 0, 0, 0, 0xEFA9, 0xEF7A, 0xEF7B, /* 0x20 */
- 0xEF7E, 0xEF7C, 0, 0xEF76, 0, 0, 0xEF79, 0xEFA5, /* 0x30 */
- 0xEF7D, 0, 0, 0xC245, 0, 0xEFA7, 0xEFA4, 0xC246, /* 0x30 */
- 0xEFA6, 0xEF77, 0xEFA2, 0xEFA3, 0, 0xEFA1, 0, 0, /* 0x40 */
- 0, 0, 0xF1D2, 0xF1D4, 0xF1D7, 0, 0, 0xF1D1, /* 0x40 */
- 0, 0xC359, 0xF1D9, 0xF1D0, 0xF1DA, 0, 0xF1D6, 0xF1D8, /* 0x50 */
- 0xF1DC, 0xF1D5, 0xF1DD, 0xF1D3, 0xF1CF, 0xC35A, 0, 0xF1DB, /* 0x50 */
- 0xC35B, 0xC44D, 0, 0, 0, 0, 0, 0xEF78, /* 0x60 */
- 0xF3F1, 0xF3E8, 0xC44F, 0xF3E4, 0xC450, 0, 0, 0xF3ED, /* 0x60 */
- 0xF3E7, 0xF3DD, 0xC44E, 0xF3EA, 0xF3E5, 0xF3E6, 0, 0xF3D8, /* 0x70 */
- 0xF3DF, 0xF3EE, 0, 0xF3EB, 0, 0xF3E3, 0, 0xF3EF, /* 0x70 */
- 0xF3DE, 0xF3D9, 0xF3EC, 0, 0xF3DB, 0xF3E9, 0xF3E0, 0xF3F0, /* 0x80 */
- 0xF3DC, 0xC44C, 0xF3DA, 0xF3E1, 0xF3E2, 0, 0, 0, /* 0x80 */
- 0xF57D, 0, 0xF57B, 0, 0xF5A2, 0, 0xF5AE, 0xF5A5, /* 0x90 */
- 0xF57C, 0xF578, 0xF5A7, 0xF57E, 0xF5A3, 0xF57A, 0xF5AA, 0xF577, /* 0x90 */
- 0xF5A1, 0xF5A6, 0xF5A8, 0xF5AB, 0xF579, 0, 0xF5AF, 0xF5B0, /* 0xA0 */
- 0xF5A9, 0xF5AD, 0xF5A4, 0, 0xF6C1, 0xF6C4, 0, 0xC561, /* 0xA0 */
- 0, 0xF6C3, 0xF6C8, 0xF6C6, 0xC562, 0xF6BD, 0xF6B3, 0xF6B2, /* 0xB0 */
- 0xC564, 0xF6BF, 0xF6C0, 0xF6BC, 0xF6B4, 0, 0xF6B9, 0xF5AC, /* 0xB0 */
- 0, 0xF6B5, 0xC563, 0xF6BB, 0, 0xF6BA, 0, 0xF6B6, /* 0xC0 */
- 0xF6C2, 0, 0xF6B7, 0xF7BB, 0xF6C5, 0xF6C7, 0xF6BE, 0xF6B8, /* 0xC0 */
- 0xF7BC, 0xF7BE, 0xF7B8, 0xC5C2, 0, 0xF7C5, 0xF7C3, 0xC5C3, /* 0xD0 */
- 0xF7C2, 0xF7C1, 0xF7BA, 0xF7B7, 0xF7BD, 0xF7C6, 0xF7B9, 0xF7BF, /* 0xD0 */
- 0, 0xF869, 0xF86E, 0xF864, 0xF867, 0xC5EE, 0xF86B, 0, /* 0xE0 */
- 0xF872, 0xF7C0, 0, 0xF865, 0xF86F, 0xF873, 0xF86A, 0xF863, /* 0xE0 */
- 0xF86D, 0, 0xF86C, 0xF871, 0xF870, 0xF7C4, 0xF868, 0xF862, /* 0xF0 */
- 0xF866, 0xC64E, 0xC64F, 0xF861, 0, 0xF8E6, 0xF8DD, 0xF8E5 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_9E[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF8E2, 0xF8E3, 0xF8DC, 0xF8DF, 0xF8E7, 0xF8E1, 0xF8E0, 0xF8DE, /* 0x00 */
- 0, 0xF8E4, 0, 0xF95D, 0, 0xF95E, 0, 0xF960, /* 0x00 */
- 0xF95F, 0xF962, 0xF961, 0xF97C, 0xF97B, 0xF9B7, 0, 0xF9B8, /* 0x10 */
- 0, 0xF9C5, 0xC678, 0xC67C, 0, 0xF9CF, 0xC67D, 0, /* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0xB3BF, 0, 0, /* 0x70 */
- 0, 0xC4D0, 0xF6C9, 0, 0xC650, 0xC651, 0, 0xB3C0, /* 0x70 */
- 0xE0EE, 0, 0xB9A8, 0xE8F0, 0, 0, 0xECB0, 0xECB1, /* 0x80 */
- 0xECAF, 0xEFAB, 0xEFAA, 0xC247, 0xF1DF, 0xEFAC, 0xF1DE, 0, /* 0x80 */
- 0, 0xF3F3, 0xC451, 0xC453, 0xF3F2, 0, 0, 0xC452, /* 0x90 */
- 0, 0xF5B1, 0xF5B3, 0xF5B2, 0xF6CA, 0xC565, 0, 0xC5EF, /* 0x90 */
- 0xF8E8, 0xF963, 0, 0, 0xF9D2, 0xB3C1, 0, 0xE4E5, /* 0xA0 */
- 0, 0xBEA2, 0, 0, 0, 0xECB3, 0xECB2, 0, /* 0xA0 */
- 0xEFAD, 0, 0, 0, 0xC454, 0xC4D1, 0xF7C7, 0xF9CB, /* 0xB0 */
- 0, 0, 0, 0xB3C2, 0xBBF2, 0, 0xBEA3, 0, /* 0xB0 */
- 0xF3F4, 0, 0xF874, 0xB6C0, 0, 0, 0, 0, /* 0xC0 */
- 0xEFAE, 0, 0, 0, 0xC664, 0xB6C1, 0xBEA4, 0xC248, /* 0xC0 */
- 0xF875, 0xB6C2, 0, 0xE8F1, 0xC072, 0xECB4, 0xECB5, 0, /* 0xD0 */
- 0xC071, 0, 0xEFAF, 0xC24C, 0xC24A, 0xC24B, 0xC249, 0xF1E0, /* 0xD0 */
- 0xC35C, 0, 0, 0, 0xF5B5, 0xF5B4, 0xF5B7, 0xF5B6, /* 0xE0 */
- 0xC4D2, 0, 0, 0xF6CB, 0, 0xF6CD, 0xF6CC, 0xC566, /* 0xE0 */
- 0xF7C8, 0, 0xF876, 0xF877, 0xC5F0, 0xF964, 0xF97D, 0xC675, /* 0xF0 */
- 0, 0xDCB0, 0xECB6, 0xEFB0, 0xF3F5, 0xE0EF, 0, 0xEFB1 /* 0xF0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_9F[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xF1E2, 0xF1E1, 0, 0, 0, 0, 0xF878, 0xC652, /* 0x00 */
- 0, 0xF965, 0xF97E, 0, 0, 0, 0xB9A9, 0xE8F2, /* 0x00 */
- 0xE8F3, 0, 0xECB7, 0xB9AA, 0, 0xC35D, 0xF1E3, 0, /* 0x10 */
- 0xF6CF, 0xC567, 0xF6D0, 0xF6CE, 0xF879, 0, 0xF8E9, 0, /* 0x10 */
- 0xB9AB, 0, 0xEFB4, 0xEFB3, 0xEFB2, 0xF1E4, 0, 0, /* 0x20 */
- 0xF1E8, 0xF1E7, 0xF1E6, 0xF1E5, 0xC35E, 0xF3F6, 0xF5B9, 0xC4D3, /* 0x20 */
- 0xF5B8, 0xF6D1, 0xF7CB, 0xF7CA, 0xC5C4, 0xF7C9, 0xF87C, 0xF87B, /* 0x30 */
- 0xF87A, 0, 0, 0xBBF3, 0, 0xECB8, 0xC24D, 0, /* 0x30 */
- 0xF3F7, 0xF3F8, 0xF7CC, 0xF87D, 0, 0, 0xF8EA, 0xF966, /* 0x40 */
- 0xF9B9, 0xF9D4, 0xBBF4, 0xC24E, 0xF1E9, 0xF3F9, 0xF6D2, 0xF87E, /* 0x40 */
- 0, 0, 0xBEA6, 0, 0xEFB5, 0xF1EA, 0xF3FA, 0xF3FB, /* 0x50 */
- 0xF3FC, 0xF5BE, 0, 0xF5BA, 0xC568, 0xF5BD, 0xF5BC, 0xC4D4, /* 0x50 */
- 0xF5BB, 0xC4D6, 0, 0xC4D5, 0xF6D4, 0xF6D3, 0xC569, 0xC56A, /* 0x60 */
- 0, 0, 0xC5C6, 0xF7CD, 0xC5C5, 0, 0xF8A3, 0xF8A4, /* 0x60 */
- 0xF8A2, 0xF8A1, 0xC654, 0, 0xF8EB, 0xF8EC, 0xF8ED, 0xC653, /* 0x70 */
- 0xF967, 0xF96A, 0xF969, 0xF968, 0, 0, 0xF9D3, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0xC073, 0, 0, /* 0x80 */
- 0xC365, 0xF5BF, 0xF6D5, 0, 0xC5C7, 0xF7CE, 0, 0, /* 0x90 */
- 0xF9D5, 0, 0, 0, 0xC074, 0, 0, 0, /* 0x90 */
- 0xEFB6, 0, 0xF7CF, 0, 0xF9A1 /* 0xA0 */
- /* 0xA0 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_APPLECHINTRAD_F8[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0x0081, 0x0082 /* 0x80 */
- /* 0x80 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_FA[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- /* 0x00 */
- 0xC94A, 0xDDFC /* 0x00 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_FE[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA14A, 0xA157, 0, 0xA159, 0xA15B, 0xA15F, 0xA160, 0xA163, /* 0x30 */
- 0xA164, 0xA167, 0xA168, 0xA16B, 0xA16C, 0xA16F, 0xA170, 0xA173, /* 0x30 */
- 0xA174, 0xA177, 0xA178, 0xA17B, 0xA17C, 0, 0, 0, /* 0x40 */
- 0, 0xA1C6, 0xA1C7, 0xA1CA, 0xA1CB, 0xA1C8, 0xA1C9, 0xA15C, /* 0x40 */
- 0xA14D, 0xA14E, 0xA14F, 0, 0xA151, 0xA152, 0xA153, 0xA154, /* 0x50 */
- 0, 0xA17D, 0xA17E, 0xA1A1, 0xA1A2, 0xA1A3, 0xA1A4, 0xA1CC, /* 0x50 */
- 0xA1CD, 0xA1CE, 0xA1DE, 0xA1DF, 0xA1E0, 0xA1E1, 0xA1E2, 0, /* 0x60 */
- 0xA242, 0xA24C, 0xA24D, 0xA24E /* 0x60 */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static sal_uInt16 const aImplUniToDBCSTab_BIG5_FF[] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
- 0xA149, 0, 0xA1AD, 0xA243, 0xA248, 0xA1AE, 0, /* 0x00 */
- 0xA15D, 0xA15E, 0xA1AF, 0xA1CF, 0xA141, 0xA1D0, 0xA144, 0xA1FE, /* 0x00 */
- 0xA2AF, 0xA2B0, 0xA2B1, 0xA2B2, 0xA2B3, 0xA2B4, 0xA2B5, 0xA2B6, /* 0x10 */
- 0xA2B7, 0xA2B8, 0xA147, 0xA146, 0xA1D5, 0xA1D7, 0xA1D6, 0xA148, /* 0x10 */
- 0xA249, 0xA2CF, 0xA2D0, 0xA2D1, 0xA2D2, 0xA2D3, 0xA2D4, 0xA2D5, /* 0x20 */
- 0xA2D6, 0xA2D7, 0xA2D8, 0xA2D9, 0xA2DA, 0xA2DB, 0xA2DC, 0xA2DD, /* 0x20 */
- 0xA2DE, 0xA2DF, 0xA2E0, 0xA2E1, 0xA2E2, 0xA2E3, 0xA2E4, 0xA2E5, /* 0x30 */
- 0xA2E6, 0xA2E7, 0xA2E8, 0, 0xA240, 0, 0, 0xA1C4, /* 0x30 */
- 0, 0xA2E9, 0xA2EA, 0xA2EB, 0xA2EC, 0xA2ED, 0xA2EE, 0xA2EF, /* 0x40 */
- 0xA2F0, 0xA2F1, 0xA2F2, 0xA2F3, 0xA2F4, 0xA2F5, 0xA2F6, 0xA2F7, /* 0x40 */
- 0xA2F8, 0xA2F9, 0xA2FA, 0xA2FB, 0xA2FC, 0xA2FD, 0xA2FE, 0xA340, /* 0x50 */
- 0xA341, 0xA342, 0xA343, 0xA161, 0xA155, 0xA162, 0xA1E3, 0, /* 0x50 */
- 0, 0, 0, 0, 0xA14E, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 */
- 0xA246, 0xA247, 0, 0xA1C3, 0, 0xA244, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xE0 */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0xF0 */
- 0, 0, 0, 0, 0, 0xA1C5 /* 0xF0 */
-};
diff --git a/sal/textenc/tcvttcn6.tab b/sal/textenc/tcvttcn6.tab
deleted file mode 100644
index 16ea8ee6c..000000000
--- a/sal/textenc/tcvttcn6.tab
+++ /dev/null
@@ -1,1733 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* ======================================================================= */
-
-/* This file contain the information tables for all */
-/* chinese traditional (Taiwan/HongKong) charsets: */
-/* BIG5, MS950, APPLE_CHINTRAD */
-
-/* ======================================================================= */
-
-static ImplDBCSToUniLeadTab const aBIG5UniLeadTab[256] =
-{
- { 0x0000, 0, 0, NULL }, /* 0x00 */
- { 0x0001, 0, 0, NULL }, /* 0x01 */
- { 0x0002, 0, 0, NULL }, /* 0x02 */
- { 0x0003, 0, 0, NULL }, /* 0x03 */
- { 0x0004, 0, 0, NULL }, /* 0x04 */
- { 0x0005, 0, 0, NULL }, /* 0x05 */
- { 0x0006, 0, 0, NULL }, /* 0x06 */
- { 0x0007, 0, 0, NULL }, /* 0x07 */
- { 0x0008, 0, 0, NULL }, /* 0x08 */
- { 0x0009, 0, 0, NULL }, /* 0x09 */
- { 0x000A, 0, 0, NULL }, /* 0x0A */
- { 0x000B, 0, 0, NULL }, /* 0x0B */
- { 0x000C, 0, 0, NULL }, /* 0x0C */
- { 0x000D, 0, 0, NULL }, /* 0x0D */
- { 0x000E, 0, 0, NULL }, /* 0x0E */
- { 0x000F, 0, 0, NULL }, /* 0x0F */
- { 0x0010, 0, 0, NULL }, /* 0x10 */
- { 0x0011, 0, 0, NULL }, /* 0x11 */
- { 0x0012, 0, 0, NULL }, /* 0x12 */
- { 0x0013, 0, 0, NULL }, /* 0x13 */
- { 0x0014, 0, 0, NULL }, /* 0x14 */
- { 0x0015, 0, 0, NULL }, /* 0x15 */
- { 0x0016, 0, 0, NULL }, /* 0x16 */
- { 0x0017, 0, 0, NULL }, /* 0x17 */
- { 0x0018, 0, 0, NULL }, /* 0x18 */
- { 0x0019, 0, 0, NULL }, /* 0x19 */
- { 0x001A, 0, 0, NULL }, /* 0x1A */
- { 0x001B, 0, 0, NULL }, /* 0x1B */
- { 0x001C, 0, 0, NULL }, /* 0x1C */
- { 0x001D, 0, 0, NULL }, /* 0x1D */
- { 0x001E, 0, 0, NULL }, /* 0x1E */
- { 0x001F, 0, 0, NULL }, /* 0x1F */
- { 0x0020, 0, 0, NULL }, /* 0x20 */
- { 0x0021, 0, 0, NULL }, /* 0x21 */
- { 0x0022, 0, 0, NULL }, /* 0x22 */
- { 0x0023, 0, 0, NULL }, /* 0x23 */
- { 0x0024, 0, 0, NULL }, /* 0x24 */
- { 0x0025, 0, 0, NULL }, /* 0x25 */
- { 0x0026, 0, 0, NULL }, /* 0x26 */
- { 0x0027, 0, 0, NULL }, /* 0x27 */
- { 0x0028, 0, 0, NULL }, /* 0x28 */
- { 0x0029, 0, 0, NULL }, /* 0x29 */
- { 0x002A, 0, 0, NULL }, /* 0x2A */
- { 0x002B, 0, 0, NULL }, /* 0x2B */
- { 0x002C, 0, 0, NULL }, /* 0x2C */
- { 0x002D, 0, 0, NULL }, /* 0x2D */
- { 0x002E, 0, 0, NULL }, /* 0x2E */
- { 0x002F, 0, 0, NULL }, /* 0x2F */
- { 0x0030, 0, 0, NULL }, /* 0x30 */
- { 0x0031, 0, 0, NULL }, /* 0x31 */
- { 0x0032, 0, 0, NULL }, /* 0x32 */
- { 0x0033, 0, 0, NULL }, /* 0x33 */
- { 0x0034, 0, 0, NULL }, /* 0x34 */
- { 0x0035, 0, 0, NULL }, /* 0x35 */
- { 0x0036, 0, 0, NULL }, /* 0x36 */
- { 0x0037, 0, 0, NULL }, /* 0x37 */
- { 0x0038, 0, 0, NULL }, /* 0x38 */
- { 0x0039, 0, 0, NULL }, /* 0x39 */
- { 0x003A, 0, 0, NULL }, /* 0x3A */
- { 0x003B, 0, 0, NULL }, /* 0x3B */
- { 0x003C, 0, 0, NULL }, /* 0x3C */
- { 0x003D, 0, 0, NULL }, /* 0x3D */
- { 0x003E, 0, 0, NULL }, /* 0x3E */
- { 0x003F, 0, 0, NULL }, /* 0x3F */
- { 0x0040, 0, 0, NULL }, /* 0x40 */
- { 0x0041, 0, 0, NULL }, /* 0x41 */
- { 0x0042, 0, 0, NULL }, /* 0x42 */
- { 0x0043, 0, 0, NULL }, /* 0x43 */
- { 0x0044, 0, 0, NULL }, /* 0x44 */
- { 0x0045, 0, 0, NULL }, /* 0x45 */
- { 0x0046, 0, 0, NULL }, /* 0x46 */
- { 0x0047, 0, 0, NULL }, /* 0x47 */
- { 0x0048, 0, 0, NULL }, /* 0x48 */
- { 0x0049, 0, 0, NULL }, /* 0x49 */
- { 0x004A, 0, 0, NULL }, /* 0x4A */
- { 0x004B, 0, 0, NULL }, /* 0x4B */
- { 0x004C, 0, 0, NULL }, /* 0x4C */
- { 0x004D, 0, 0, NULL }, /* 0x4D */
- { 0x004E, 0, 0, NULL }, /* 0x4E */
- { 0x004F, 0, 0, NULL }, /* 0x4F */
- { 0x0050, 0, 0, NULL }, /* 0x50 */
- { 0x0051, 0, 0, NULL }, /* 0x51 */
- { 0x0052, 0, 0, NULL }, /* 0x52 */
- { 0x0053, 0, 0, NULL }, /* 0x53 */
- { 0x0054, 0, 0, NULL }, /* 0x54 */
- { 0x0055, 0, 0, NULL }, /* 0x55 */
- { 0x0056, 0, 0, NULL }, /* 0x56 */
- { 0x0057, 0, 0, NULL }, /* 0x57 */
- { 0x0058, 0, 0, NULL }, /* 0x58 */
- { 0x0059, 0, 0, NULL }, /* 0x59 */
- { 0x005A, 0, 0, NULL }, /* 0x5A */
- { 0x005B, 0, 0, NULL }, /* 0x5B */
- { 0x005C, 0, 0, NULL }, /* 0x5C */
- { 0x005D, 0, 0, NULL }, /* 0x5D */
- { 0x005E, 0, 0, NULL }, /* 0x5E */
- { 0x005F, 0, 0, NULL }, /* 0x5F */
- { 0x0060, 0, 0, NULL }, /* 0x60 */
- { 0x0061, 0, 0, NULL }, /* 0x61 */
- { 0x0062, 0, 0, NULL }, /* 0x62 */
- { 0x0063, 0, 0, NULL }, /* 0x63 */
- { 0x0064, 0, 0, NULL }, /* 0x64 */
- { 0x0065, 0, 0, NULL }, /* 0x65 */
- { 0x0066, 0, 0, NULL }, /* 0x66 */
- { 0x0067, 0, 0, NULL }, /* 0x67 */
- { 0x0068, 0, 0, NULL }, /* 0x68 */
- { 0x0069, 0, 0, NULL }, /* 0x69 */
- { 0x006A, 0, 0, NULL }, /* 0x6A */
- { 0x006B, 0, 0, NULL }, /* 0x6B */
- { 0x006C, 0, 0, NULL }, /* 0x6C */
- { 0x006D, 0, 0, NULL }, /* 0x6D */
- { 0x006E, 0, 0, NULL }, /* 0x6E */
- { 0x006F, 0, 0, NULL }, /* 0x6F */
- { 0x0070, 0, 0, NULL }, /* 0x70 */
- { 0x0071, 0, 0, NULL }, /* 0x71 */
- { 0x0072, 0, 0, NULL }, /* 0x72 */
- { 0x0073, 0, 0, NULL }, /* 0x73 */
- { 0x0074, 0, 0, NULL }, /* 0x74 */
- { 0x0075, 0, 0, NULL }, /* 0x75 */
- { 0x0076, 0, 0, NULL }, /* 0x76 */
- { 0x0077, 0, 0, NULL }, /* 0x77 */
- { 0x0078, 0, 0, NULL }, /* 0x78 */
- { 0x0079, 0, 0, NULL }, /* 0x79 */
- { 0x007A, 0, 0, NULL }, /* 0x7A */
- { 0x007B, 0, 0, NULL }, /* 0x7B */
- { 0x007C, 0, 0, NULL }, /* 0x7C */
- { 0x007D, 0, 0, NULL }, /* 0x7D */
- { 0x007E, 0, 0, NULL }, /* 0x7E */
- { 0x007F, 0, 0, NULL }, /* 0x7F */
- { 0, 1, 0, NULL }, /* 0x80 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x81 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x82 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x83 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x84 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x85 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x86 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x87 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x88 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x89 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8A */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8B */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8C */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8D */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8E */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8F */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x90 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x91 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x92 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x93 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x94 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x95 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x96 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x97 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x98 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x99 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9A */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9B */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9C */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9D */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9E */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9F */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xA0 */ /* We convert this as double byte */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A1 }, /* 0xA1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A2 }, /* 0xA2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A3 }, /* 0xA3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A4 }, /* 0xA4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A5 }, /* 0xA5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A6 }, /* 0xA6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A7 }, /* 0xA7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A8 }, /* 0xA8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A9 }, /* 0xA9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AA }, /* 0xAA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AB }, /* 0xAB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AC }, /* 0xAC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AD }, /* 0xAD */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AE }, /* 0xAE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AF }, /* 0xAF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B0 }, /* 0xB0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B1 }, /* 0xB1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B2 }, /* 0xB2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B3 }, /* 0xB3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B4 }, /* 0xB4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B5 }, /* 0xB5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B6 }, /* 0xB6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B7 }, /* 0xB7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B8 }, /* 0xB8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B9 }, /* 0xB9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BA }, /* 0xBA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BB }, /* 0xBB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BC }, /* 0xBC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BD }, /* 0xBD */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BE }, /* 0xBE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BF }, /* 0xBF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C0 }, /* 0xC0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C1 }, /* 0xC1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C2 }, /* 0xC2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C3 }, /* 0xC3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C4 }, /* 0xC4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C5 }, /* 0xC5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5ONLY_C6 }, /* 0xC6 */
- { 0, 0x40, 0xFC, aImplDBCSToUniTab_BIG5ONLY_C7 }, /* 0xC7 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xC8 */ /* We convert this as double byte */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C9 }, /* 0xC9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CA }, /* 0xCA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CB }, /* 0xCB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CC }, /* 0xCC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CD }, /* 0xCD */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CE }, /* 0xCE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CF }, /* 0xCF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D0 }, /* 0xD0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D1 }, /* 0xD1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D2 }, /* 0xD2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D3 }, /* 0xD3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D4 }, /* 0xD4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D5 }, /* 0xD5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D6 }, /* 0xD6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D7 }, /* 0xD7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D8 }, /* 0xD8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D9 }, /* 0xD9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DA }, /* 0xDA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DB }, /* 0xDB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DC }, /* 0xDC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DD }, /* 0xDD */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DE }, /* 0xDE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DF }, /* 0xDF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E0 }, /* 0xE0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E1 }, /* 0xE1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E2 }, /* 0xE2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E3 }, /* 0xE3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E4 }, /* 0xE4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E5 }, /* 0xE5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E6 }, /* 0xE6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E7 }, /* 0xE7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E8 }, /* 0xE8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E9 }, /* 0xE9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EA }, /* 0xEA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EB }, /* 0xEB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EC }, /* 0xEC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_ED }, /* 0xED */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EE }, /* 0xEE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EF }, /* 0xEF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F0 }, /* 0xF0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F1 }, /* 0xF1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F2 }, /* 0xF2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F3 }, /* 0xF3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F4 }, /* 0xF4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F5 }, /* 0xF5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F6 }, /* 0xF6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F7 }, /* 0xF7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F8 }, /* 0xF8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F9 }, /* 0xF9 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFA */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFB */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFC */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFD */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFE */ /* We convert this as double byte */
- { 0, 1, 0, NULL } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplUniToDBCSHighTab const aBIG5DBCSHighTab[256] =
-{
- { 0x00, 0xF7, aImplUniToDBCSTab_BIG5_00 }, /* 0x00 */
- { 1, 0, NULL }, /* 0x01 */
- { 0xC7, 0xD9, aImplUniToDBCSTab_BIG5_02 }, /* 0x02 */
- { 0x91, 0xC9, aImplUniToDBCSTab_BIG5_03 }, /* 0x03 */
- { 0x01, 0x51, aImplUniToDBCSTab_BIG5_04 }, /* 0x04 */
- { 1, 0, NULL }, /* 0x05 */
- { 1, 0, NULL }, /* 0x06 */
- { 1, 0, NULL }, /* 0x07 */
- { 1, 0, NULL }, /* 0x08 */
- { 1, 0, NULL }, /* 0x09 */
- { 1, 0, NULL }, /* 0x0A */
- { 1, 0, NULL }, /* 0x0B */
- { 1, 0, NULL }, /* 0x0C */
- { 1, 0, NULL }, /* 0x0D */
- { 1, 0, NULL }, /* 0x0E */
- { 1, 0, NULL }, /* 0x0F */
- { 1, 0, NULL }, /* 0x10 */
- { 1, 0, NULL }, /* 0x11 */
- { 1, 0, NULL }, /* 0x12 */
- { 1, 0, NULL }, /* 0x13 */
- { 1, 0, NULL }, /* 0x14 */
- { 1, 0, NULL }, /* 0x15 */
- { 1, 0, NULL }, /* 0x16 */
- { 1, 0, NULL }, /* 0x17 */
- { 1, 0, NULL }, /* 0x18 */
- { 1, 0, NULL }, /* 0x19 */
- { 1, 0, NULL }, /* 0x1A */
- { 1, 0, NULL }, /* 0x1B */
- { 1, 0, NULL }, /* 0x1C */
- { 1, 0, NULL }, /* 0x1D */
- { 1, 0, NULL }, /* 0x1E */
- { 1, 0, NULL }, /* 0x1F */
- { 0x13, 0xAC, aImplUniToDBCSTab_BIG5_20 }, /* 0x20 */
- { 0x03, 0x99, aImplUniToDBCSTab_BIG5_21 }, /* 0x21 */
- { 0x15, 0xEF, aImplUniToDBCSTab_BIG5_22 }, /* 0x22 */
- { 1, 0, NULL }, /* 0x23 */
- { 0x60, 0x7D, aImplUniToDBCSTab_BIG5_24 }, /* 0x24 */
- { 0x00, 0xE5, aImplUniToDBCSTab_BIG5_25 }, /* 0x25 */
- { 0x05, 0x42, aImplUniToDBCSTab_BIG5_26 }, /* 0x25 */
- { 1, 0, NULL }, /* 0x27 */
- { 1, 0, NULL }, /* 0x28 */
- { 1, 0, NULL }, /* 0x29 */
- { 1, 0, NULL }, /* 0x2A */
- { 1, 0, NULL }, /* 0x2B */
- { 1, 0, NULL }, /* 0x2C */
- { 1, 0, NULL }, /* 0x2D */
- { 1, 0, NULL }, /* 0x2E */
- { 1, 0, NULL }, /* 0x2F */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_30 }, /* 0x30 */
- { 0x05, 0x29, aImplUniToDBCSTab_BIG5_31 }, /* 0x31 */
- { 0xA3, 0xA3, aImplUniToDBCSTab_BIG5_32 }, /* 0x32 */
- { 0x8E, 0xD5, aImplUniToDBCSTab_BIG5_33 }, /* 0x33 */
- { 1, 0, NULL }, /* 0x34 */
- { 1, 0, NULL }, /* 0x35 */
- { 1, 0, NULL }, /* 0x36 */
- { 1, 0, NULL }, /* 0x37 */
- { 1, 0, NULL }, /* 0x38 */
- { 1, 0, NULL }, /* 0x39 */
- { 1, 0, NULL }, /* 0x3A */
- { 1, 0, NULL }, /* 0x3B */
- { 1, 0, NULL }, /* 0x3C */
- { 1, 0, NULL }, /* 0x3D */
- { 1, 0, NULL }, /* 0x3E */
- { 1, 0, NULL }, /* 0x3F */
- { 1, 0, NULL }, /* 0x40 */
- { 1, 0, NULL }, /* 0x41 */
- { 1, 0, NULL }, /* 0x42 */
- { 1, 0, NULL }, /* 0x43 */
- { 1, 0, NULL }, /* 0x44 */
- { 1, 0, NULL }, /* 0x45 */
- { 1, 0, NULL }, /* 0x46 */
- { 1, 0, NULL }, /* 0x47 */
- { 1, 0, NULL }, /* 0x48 */
- { 1, 0, NULL }, /* 0x49 */
- { 1, 0, NULL }, /* 0x4A */
- { 1, 0, NULL }, /* 0x4B */
- { 1, 0, NULL }, /* 0x4C */
- { 1, 0, NULL }, /* 0x4D */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_4E }, /* 0x4E */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_4F }, /* 0x4F */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_50 }, /* 0x50 */
- { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_51 }, /* 0x51 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_52 }, /* 0x52 */
- { 0x05, 0xFC, aImplUniToDBCSTab_BIG5_53 }, /* 0x53 */
- { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_54 }, /* 0x54 */
- { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_55 }, /* 0x55 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_56 }, /* 0x56 */
- { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_57 }, /* 0x57 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_58 }, /* 0x58 */
- { 0x03, 0xFF, aImplUniToDBCSTab_BIG5_59 }, /* 0x59 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_5A }, /* 0x5A */
- { 0x01, 0xFA, aImplUniToDBCSTab_BIG5_5B }, /* 0x5B */
- { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_5C }, /* 0x5C */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_5D }, /* 0x5D */
- { 0x02, 0xFF, aImplUniToDBCSTab_BIG5_5E }, /* 0x5E */
- { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_5F }, /* 0x5F */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_60 }, /* 0x60 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_61 }, /* 0x61 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_62 }, /* 0x62 */
- { 0x00, 0xF9, aImplUniToDBCSTab_BIG5_63 }, /* 0x63 */
- { 0x06, 0xFF, aImplUniToDBCSTab_BIG5_64 }, /* 0x64 */
- { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_65 }, /* 0x65 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_66 }, /* 0x66 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_67 }, /* 0x67 */
- { 0x12, 0xFD, aImplUniToDBCSTab_BIG5_68 }, /* 0x68 */
- { 0x04, 0xFF, aImplUniToDBCSTab_BIG5_69 }, /* 0x69 */
- { 0x00, 0xFC, aImplUniToDBCSTab_BIG5_6A }, /* 0x6A */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6B }, /* 0x6B */
- { 0x00, 0xF9, aImplUniToDBCSTab_BIG5_6C }, /* 0x6C */
- { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_6D }, /* 0x6D */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6E }, /* 0x6E */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6F }, /* 0x6F */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_70 }, /* 0x70 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_71 }, /* 0x71 */
- { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_72 }, /* 0x72 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_73 }, /* 0x73 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_74 }, /* 0x74 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_75 }, /* 0x75 */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_76 }, /* 0x76 */
- { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_77 }, /* 0x77 */
- { 0x02, 0xFF, aImplUniToDBCSTab_BIG5_78 }, /* 0x78 */
- { 0x01, 0xFB, aImplUniToDBCSTab_BIG5_79 }, /* 0x79 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_7A }, /* 0x7A */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_7B }, /* 0x7B */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_7C }, /* 0x7C */
- { 0x00, 0xFB, aImplUniToDBCSTab_BIG5_7D }, /* 0x7D */
- { 0x03, 0x9C, aImplUniToDBCSTab_BIG5_7E }, /* 0x7E */
- { 0x36, 0xFF, aImplUniToDBCSTab_BIG5_7F }, /* 0x7F */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_80 }, /* 0x80 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_81 }, /* 0x81 */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_82 }, /* 0x82 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_83 }, /* 0x83 */
- { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_84 }, /* 0x84 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_85 }, /* 0x85 */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_86 }, /* 0x86 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_87 }, /* 0x87 */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_88 }, /* 0x88 */
- { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_89 }, /* 0x89 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8A }, /* 0x8A */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8B }, /* 0x8B */
- { 0x37, 0xFE, aImplUniToDBCSTab_BIG5_8C }, /* 0x8C */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8D }, /* 0x8D */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8E }, /* 0x8E */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8F }, /* 0x8F */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_90 }, /* 0x90 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_91 }, /* 0x91 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_92 }, /* 0x92 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_93 }, /* 0x93 */
- { 0x00, 0x83, aImplUniToDBCSTab_BIG5_94 }, /* 0x94 */
- { 0x77, 0xE5, aImplUniToDBCSTab_BIG5_95 }, /* 0x95 */
- { 0x1C, 0xFF, aImplUniToDBCSTab_BIG5_96 }, /* 0x96 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_97 }, /* 0x97 */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_98 }, /* 0x98 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_99 }, /* 0x99 */
- { 0x01, 0xFE, aImplUniToDBCSTab_BIG5_9A }, /* 0x9A */
- { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_9B }, /* 0x9B */
- { 0x05, 0xFF, aImplUniToDBCSTab_BIG5_9C }, /* 0x9C */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_9D }, /* 0x9D */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_9E }, /* 0x9E */
- { 0x00, 0xA4, aImplUniToDBCSTab_BIG5_9F }, /* 0x9F */
- { 1, 0, NULL }, /* 0xA0 */
- { 1, 0, NULL }, /* 0xA1 */
- { 1, 0, NULL }, /* 0xA2 */
- { 1, 0, NULL }, /* 0xA3 */
- { 1, 0, NULL }, /* 0xA4 */
- { 1, 0, NULL }, /* 0xA5 */
- { 1, 0, NULL }, /* 0xA6 */
- { 1, 0, NULL }, /* 0xA7 */
- { 1, 0, NULL }, /* 0xA8 */
- { 1, 0, NULL }, /* 0xA9 */
- { 1, 0, NULL }, /* 0xAA */
- { 1, 0, NULL }, /* 0xAB */
- { 1, 0, NULL }, /* 0xAC */
- { 1, 0, NULL }, /* 0xAD */
- { 1, 0, NULL }, /* 0xAE */
- { 1, 0, NULL }, /* 0xAF */
- { 1, 0, NULL }, /* 0xB0 */
- { 1, 0, NULL }, /* 0xB1 */
- { 1, 0, NULL }, /* 0xB2 */
- { 1, 0, NULL }, /* 0xB3 */
- { 1, 0, NULL }, /* 0xB4 */
- { 1, 0, NULL }, /* 0xB5 */
- { 1, 0, NULL }, /* 0xB6 */
- { 1, 0, NULL }, /* 0xB7 */
- { 1, 0, NULL }, /* 0xB8 */
- { 1, 0, NULL }, /* 0xB9 */
- { 1, 0, NULL }, /* 0xBA */
- { 1, 0, NULL }, /* 0xBB */
- { 1, 0, NULL }, /* 0xBC */
- { 1, 0, NULL }, /* 0xBD */
- { 1, 0, NULL }, /* 0xBE */
- { 1, 0, NULL }, /* 0xBF */
- { 1, 0, NULL }, /* 0xC0 */
- { 1, 0, NULL }, /* 0xC1 */
- { 1, 0, NULL }, /* 0xC2 */
- { 1, 0, NULL }, /* 0xC3 */
- { 1, 0, NULL }, /* 0xC4 */
- { 1, 0, NULL }, /* 0xC5 */
- { 1, 0, NULL }, /* 0xC6 */
- { 1, 0, NULL }, /* 0xC7 */
- { 1, 0, NULL }, /* 0xC8 */
- { 1, 0, NULL }, /* 0xC9 */
- { 1, 0, NULL }, /* 0xCA */
- { 1, 0, NULL }, /* 0xCB */
- { 1, 0, NULL }, /* 0xCC */
- { 1, 0, NULL }, /* 0xCD */
- { 1, 0, NULL }, /* 0xCE */
- { 1, 0, NULL }, /* 0xCF */
- { 1, 0, NULL }, /* 0xD0 */
- { 1, 0, NULL }, /* 0xD1 */
- { 1, 0, NULL }, /* 0xD2 */
- { 1, 0, NULL }, /* 0xD3 */
- { 1, 0, NULL }, /* 0xD4 */
- { 1, 0, NULL }, /* 0xD5 */
- { 1, 0, NULL }, /* 0xD6 */
- { 1, 0, NULL }, /* 0xD7 */
- { 1, 0, NULL }, /* 0xD8 */
- { 1, 0, NULL }, /* 0xD9 */
- { 1, 0, NULL }, /* 0xDA */
- { 1, 0, NULL }, /* 0xDB */
- { 1, 0, NULL }, /* 0xDC */
- { 1, 0, NULL }, /* 0xDD */
- { 1, 0, NULL }, /* 0xDE */
- { 1, 0, NULL }, /* 0xDF */
- { 1, 0, NULL }, /* 0xE0 */
- { 1, 0, NULL }, /* 0xE1 */
- { 1, 0, NULL }, /* 0xE2 */
- { 1, 0, NULL }, /* 0xE3 */
- { 1, 0, NULL }, /* 0xE4 */
- { 1, 0, NULL }, /* 0xE5 */
- { 1, 0, NULL }, /* 0xE6 */
- { 1, 0, NULL }, /* 0xE7 */
- { 1, 0, NULL }, /* 0xE8 */
- { 1, 0, NULL }, /* 0xE9 */
- { 1, 0, NULL }, /* 0xEA */
- { 1, 0, NULL }, /* 0xEB */
- { 1, 0, NULL }, /* 0xEC */
- { 1, 0, NULL }, /* 0xED */
- { 1, 0, NULL }, /* 0xEE */
- { 1, 0, NULL }, /* 0xEF */
- { 1, 0, NULL }, /* 0xF0 */
- { 1, 0, NULL }, /* 0xF1 */
- { 1, 0, NULL }, /* 0xF2 */
- { 1, 0, NULL }, /* 0xF3 */
- { 1, 0, NULL }, /* 0xF4 */
- { 1, 0, NULL }, /* 0xF5 */
- { 1, 0, NULL }, /* 0xF6 */
- { 1, 0, NULL }, /* 0xF7 */
- { 1, 0, NULL }, /* 0xF8 */
- { 1, 0, NULL }, /* 0xF9 */
- { 0x0C, 0x0D, aImplUniToDBCSTab_BIG5_FA }, /* 0xFA */
- { 1, 0, NULL }, /* 0xFB */
- { 1, 0, NULL }, /* 0xFC */
- { 1, 0, NULL }, /* 0xFD */
- { 0x30, 0x6B, aImplUniToDBCSTab_BIG5_FE }, /* 0xFE */
- { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_FF } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* FA40-FEFE --> E000-E310 */
-/* 8E40-A0FE --> E311-EEB7 */
-/* 8140-8DFE --> EEB8-F6B0 */
-/* C6A1-C6FE --> F6B1-F70E */
-/* C740-C8FE --> F70F-F848 */
-
-#define DBCS_EUDC_MS950_COUNT 5
-static ImplDBCSEUDCData const aImplMS950DBCSEUDCTab[DBCS_EUDC_MS950_COUNT] =
-{
- /* EUDC-Range */
- /* Lead: FA-FE */
- /* Trail: 40-7E, A1-FE */
- { 0xFA, 0xFE, 0x40, 0x7E, 0xA1, 0xFE, 0, 0, 2, 0x9D, 0xE000, 0xE310 },
- /* Lead: 8E-A0 */
- /* Trail: 40-7E, A1-FE */
- { 0x8E, 0xA0, 0x40, 0x7E, 0xA1, 0xFE, 0, 0, 2, 0x9D, 0xE311, 0xEEB7 },
- /* Lead: 81-8D */
- /* Trail: 40-7E, A1-FE */
- { 0x81, 0x8D, 0x40, 0x7E, 0xA1, 0xFE, 0, 0, 2, 0x9D, 0xEEB8, 0xF6B0 },
- /* Lead: C6-C6 */
- /* Trail: A1-FE */
- { 0xC6, 0xC6, 0xA1, 0xFE, 0, 0, 0, 0, 1, 0x5E, 0xF6B1, 0xF70E },
- /* Lead: C7-C8 */
- /* Trail: 40-7E, A1-FE */
- { 0xC7, 0xC8, 0x40, 0x7E, 0xA1, 0xFE, 0, 0, 2, 0x9D, 0xF70F, 0xF848 }
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplDBCSConvertData const aImplBIG5DBCSCvtData =
-{
- aBIG5UniLeadTab,
- aBIG5DBCSHighTab,
- 0x00, 0xFF,
- 0x40, 0xFE,
- aImplMS950DBCSEUDCTab,
- DBCS_EUDC_MS950_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplBIG5TextEncodingData
- = { { &aImplBIG5DBCSCvtData,
- ImplDBCSToUnicode,
- ImplUnicodeToDBCS,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 2,
- 2,
- 136,
- "euc-tw",
- "big5",
- RTL_TEXTENCODING_INFO_MULTIBYTE | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_CHINESE_TRADITIONAL, pc code page 950, mac encoding 2 */
-
-/* ======================================================================= */
-
-static ImplDBCSToUniLeadTab const aMS950UniLeadTab[256] =
-{
- { 0x0000, 0, 0, NULL }, /* 0x00 */
- { 0x0001, 0, 0, NULL }, /* 0x01 */
- { 0x0002, 0, 0, NULL }, /* 0x02 */
- { 0x0003, 0, 0, NULL }, /* 0x03 */
- { 0x0004, 0, 0, NULL }, /* 0x04 */
- { 0x0005, 0, 0, NULL }, /* 0x05 */
- { 0x0006, 0, 0, NULL }, /* 0x06 */
- { 0x0007, 0, 0, NULL }, /* 0x07 */
- { 0x0008, 0, 0, NULL }, /* 0x08 */
- { 0x0009, 0, 0, NULL }, /* 0x09 */
- { 0x000A, 0, 0, NULL }, /* 0x0A */
- { 0x000B, 0, 0, NULL }, /* 0x0B */
- { 0x000C, 0, 0, NULL }, /* 0x0C */
- { 0x000D, 0, 0, NULL }, /* 0x0D */
- { 0x000E, 0, 0, NULL }, /* 0x0E */
- { 0x000F, 0, 0, NULL }, /* 0x0F */
- { 0x0010, 0, 0, NULL }, /* 0x10 */
- { 0x0011, 0, 0, NULL }, /* 0x11 */
- { 0x0012, 0, 0, NULL }, /* 0x12 */
- { 0x0013, 0, 0, NULL }, /* 0x13 */
- { 0x0014, 0, 0, NULL }, /* 0x14 */
- { 0x0015, 0, 0, NULL }, /* 0x15 */
- { 0x0016, 0, 0, NULL }, /* 0x16 */
- { 0x0017, 0, 0, NULL }, /* 0x17 */
- { 0x0018, 0, 0, NULL }, /* 0x18 */
- { 0x0019, 0, 0, NULL }, /* 0x19 */
- { 0x001A, 0, 0, NULL }, /* 0x1A */
- { 0x001B, 0, 0, NULL }, /* 0x1B */
- { 0x001C, 0, 0, NULL }, /* 0x1C */
- { 0x001D, 0, 0, NULL }, /* 0x1D */
- { 0x001E, 0, 0, NULL }, /* 0x1E */
- { 0x001F, 0, 0, NULL }, /* 0x1F */
- { 0x0020, 0, 0, NULL }, /* 0x20 */
- { 0x0021, 0, 0, NULL }, /* 0x21 */
- { 0x0022, 0, 0, NULL }, /* 0x22 */
- { 0x0023, 0, 0, NULL }, /* 0x23 */
- { 0x0024, 0, 0, NULL }, /* 0x24 */
- { 0x0025, 0, 0, NULL }, /* 0x25 */
- { 0x0026, 0, 0, NULL }, /* 0x26 */
- { 0x0027, 0, 0, NULL }, /* 0x27 */
- { 0x0028, 0, 0, NULL }, /* 0x28 */
- { 0x0029, 0, 0, NULL }, /* 0x29 */
- { 0x002A, 0, 0, NULL }, /* 0x2A */
- { 0x002B, 0, 0, NULL }, /* 0x2B */
- { 0x002C, 0, 0, NULL }, /* 0x2C */
- { 0x002D, 0, 0, NULL }, /* 0x2D */
- { 0x002E, 0, 0, NULL }, /* 0x2E */
- { 0x002F, 0, 0, NULL }, /* 0x2F */
- { 0x0030, 0, 0, NULL }, /* 0x30 */
- { 0x0031, 0, 0, NULL }, /* 0x31 */
- { 0x0032, 0, 0, NULL }, /* 0x32 */
- { 0x0033, 0, 0, NULL }, /* 0x33 */
- { 0x0034, 0, 0, NULL }, /* 0x34 */
- { 0x0035, 0, 0, NULL }, /* 0x35 */
- { 0x0036, 0, 0, NULL }, /* 0x36 */
- { 0x0037, 0, 0, NULL }, /* 0x37 */
- { 0x0038, 0, 0, NULL }, /* 0x38 */
- { 0x0039, 0, 0, NULL }, /* 0x39 */
- { 0x003A, 0, 0, NULL }, /* 0x3A */
- { 0x003B, 0, 0, NULL }, /* 0x3B */
- { 0x003C, 0, 0, NULL }, /* 0x3C */
- { 0x003D, 0, 0, NULL }, /* 0x3D */
- { 0x003E, 0, 0, NULL }, /* 0x3E */
- { 0x003F, 0, 0, NULL }, /* 0x3F */
- { 0x0040, 0, 0, NULL }, /* 0x40 */
- { 0x0041, 0, 0, NULL }, /* 0x41 */
- { 0x0042, 0, 0, NULL }, /* 0x42 */
- { 0x0043, 0, 0, NULL }, /* 0x43 */
- { 0x0044, 0, 0, NULL }, /* 0x44 */
- { 0x0045, 0, 0, NULL }, /* 0x45 */
- { 0x0046, 0, 0, NULL }, /* 0x46 */
- { 0x0047, 0, 0, NULL }, /* 0x47 */
- { 0x0048, 0, 0, NULL }, /* 0x48 */
- { 0x0049, 0, 0, NULL }, /* 0x49 */
- { 0x004A, 0, 0, NULL }, /* 0x4A */
- { 0x004B, 0, 0, NULL }, /* 0x4B */
- { 0x004C, 0, 0, NULL }, /* 0x4C */
- { 0x004D, 0, 0, NULL }, /* 0x4D */
- { 0x004E, 0, 0, NULL }, /* 0x4E */
- { 0x004F, 0, 0, NULL }, /* 0x4F */
- { 0x0050, 0, 0, NULL }, /* 0x50 */
- { 0x0051, 0, 0, NULL }, /* 0x51 */
- { 0x0052, 0, 0, NULL }, /* 0x52 */
- { 0x0053, 0, 0, NULL }, /* 0x53 */
- { 0x0054, 0, 0, NULL }, /* 0x54 */
- { 0x0055, 0, 0, NULL }, /* 0x55 */
- { 0x0056, 0, 0, NULL }, /* 0x56 */
- { 0x0057, 0, 0, NULL }, /* 0x57 */
- { 0x0058, 0, 0, NULL }, /* 0x58 */
- { 0x0059, 0, 0, NULL }, /* 0x59 */
- { 0x005A, 0, 0, NULL }, /* 0x5A */
- { 0x005B, 0, 0, NULL }, /* 0x5B */
- { 0x005C, 0, 0, NULL }, /* 0x5C */
- { 0x005D, 0, 0, NULL }, /* 0x5D */
- { 0x005E, 0, 0, NULL }, /* 0x5E */
- { 0x005F, 0, 0, NULL }, /* 0x5F */
- { 0x0060, 0, 0, NULL }, /* 0x60 */
- { 0x0061, 0, 0, NULL }, /* 0x61 */
- { 0x0062, 0, 0, NULL }, /* 0x62 */
- { 0x0063, 0, 0, NULL }, /* 0x63 */
- { 0x0064, 0, 0, NULL }, /* 0x64 */
- { 0x0065, 0, 0, NULL }, /* 0x65 */
- { 0x0066, 0, 0, NULL }, /* 0x66 */
- { 0x0067, 0, 0, NULL }, /* 0x67 */
- { 0x0068, 0, 0, NULL }, /* 0x68 */
- { 0x0069, 0, 0, NULL }, /* 0x69 */
- { 0x006A, 0, 0, NULL }, /* 0x6A */
- { 0x006B, 0, 0, NULL }, /* 0x6B */
- { 0x006C, 0, 0, NULL }, /* 0x6C */
- { 0x006D, 0, 0, NULL }, /* 0x6D */
- { 0x006E, 0, 0, NULL }, /* 0x6E */
- { 0x006F, 0, 0, NULL }, /* 0x6F */
- { 0x0070, 0, 0, NULL }, /* 0x70 */
- { 0x0071, 0, 0, NULL }, /* 0x71 */
- { 0x0072, 0, 0, NULL }, /* 0x72 */
- { 0x0073, 0, 0, NULL }, /* 0x73 */
- { 0x0074, 0, 0, NULL }, /* 0x74 */
- { 0x0075, 0, 0, NULL }, /* 0x75 */
- { 0x0076, 0, 0, NULL }, /* 0x76 */
- { 0x0077, 0, 0, NULL }, /* 0x77 */
- { 0x0078, 0, 0, NULL }, /* 0x78 */
- { 0x0079, 0, 0, NULL }, /* 0x79 */
- { 0x007A, 0, 0, NULL }, /* 0x7A */
- { 0x007B, 0, 0, NULL }, /* 0x7B */
- { 0x007C, 0, 0, NULL }, /* 0x7C */
- { 0x007D, 0, 0, NULL }, /* 0x7D */
- { 0x007E, 0, 0, NULL }, /* 0x7E */
- { 0x007F, 0, 0, NULL }, /* 0x7F */
- { 0, 1, 0, NULL }, /* 0x80 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x81 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x82 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x83 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x84 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x85 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x86 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x87 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x88 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x89 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8A */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8B */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8C */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8D */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8E */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8F */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x90 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x91 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x92 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x93 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x94 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x95 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x96 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x97 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x98 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x99 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9A */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9B */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9C */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9D */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9E */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9F */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xA0 */ /* We convert this as double byte */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A1 }, /* 0xA1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A2 }, /* 0xA2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A3 }, /* 0xA3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A4 }, /* 0xA4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A5 }, /* 0xA5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A6 }, /* 0xA6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A7 }, /* 0xA7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A8 }, /* 0xA8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A9 }, /* 0xA9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AA }, /* 0xAA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AB }, /* 0xAB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AC }, /* 0xAC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AD }, /* 0xAD */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AE }, /* 0xAE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AF }, /* 0xAF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B0 }, /* 0xB0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B1 }, /* 0xB1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B2 }, /* 0xB2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B3 }, /* 0xB3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B4 }, /* 0xB4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B5 }, /* 0xB5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B6 }, /* 0xB6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B7 }, /* 0xB7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B8 }, /* 0xB8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B9 }, /* 0xB9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BA }, /* 0xBA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BB }, /* 0xBB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BC }, /* 0xBC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BD }, /* 0xBD */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BE }, /* 0xBE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BF }, /* 0xBF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C0 }, /* 0xC0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C1 }, /* 0xC1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C2 }, /* 0xC2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C3 }, /* 0xC3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C4 }, /* 0xC4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C5 }, /* 0xC5 */
- { 0, 0x40, 0x7E, aImplDBCSToUniTab_BIG5_C6 }, /* 0xC6 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xC7 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xC8 */ /* We convert this as double byte */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C9 }, /* 0xC9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CA }, /* 0xCA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CB }, /* 0xCB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CC }, /* 0xCC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CD }, /* 0xCD */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CE }, /* 0xCE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CF }, /* 0xCF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D0 }, /* 0xD0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D1 }, /* 0xD1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D2 }, /* 0xD2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D3 }, /* 0xD3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D4 }, /* 0xD4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D5 }, /* 0xD5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D6 }, /* 0xD6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D7 }, /* 0xD7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D8 }, /* 0xD8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D9 }, /* 0xD9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DA }, /* 0xDA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DB }, /* 0xDB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DC }, /* 0xDC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DD }, /* 0xDD */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DE }, /* 0xDE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DF }, /* 0xDF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E0 }, /* 0xE0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E1 }, /* 0xE1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E2 }, /* 0xE2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E3 }, /* 0xE3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E4 }, /* 0xE4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E5 }, /* 0xE5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E6 }, /* 0xE6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E7 }, /* 0xE7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E8 }, /* 0xE8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E9 }, /* 0xE9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EA }, /* 0xEA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EB }, /* 0xEB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EC }, /* 0xEC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_ED }, /* 0xED */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EE }, /* 0xEE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EF }, /* 0xEF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F0 }, /* 0xF0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F1 }, /* 0xF1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F2 }, /* 0xF2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F3 }, /* 0xF3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F4 }, /* 0xF4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F5 }, /* 0xF5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F6 }, /* 0xF6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F7 }, /* 0xF7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F8 }, /* 0xF8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F9 }, /* 0xF9 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFA */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFB */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFC */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFD */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFE */ /* We convert this as double byte */
- { 0, 1, 0, NULL } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplUniToDBCSHighTab const aMS950DBCSHighTab[256] =
-{
- { 0x00, 0xF7, aImplUniToDBCSTab_BIG5_00 }, /* 0x00 */
- { 1, 0, NULL }, /* 0x01 */
- { 0xC7, 0xD9, aImplUniToDBCSTab_BIG5_02 }, /* 0x02 */
- { 0x91, 0xC9, aImplUniToDBCSTab_BIG5_03 }, /* 0x03 */
- { 0x01, 0x51, aImplUniToDBCSTab_BIG5_04 }, /* 0x04 */
- { 1, 0, NULL }, /* 0x05 */
- { 1, 0, NULL }, /* 0x06 */
- { 1, 0, NULL }, /* 0x07 */
- { 1, 0, NULL }, /* 0x08 */
- { 1, 0, NULL }, /* 0x09 */
- { 1, 0, NULL }, /* 0x0A */
- { 1, 0, NULL }, /* 0x0B */
- { 1, 0, NULL }, /* 0x0C */
- { 1, 0, NULL }, /* 0x0D */
- { 1, 0, NULL }, /* 0x0E */
- { 1, 0, NULL }, /* 0x0F */
- { 1, 0, NULL }, /* 0x10 */
- { 1, 0, NULL }, /* 0x11 */
- { 1, 0, NULL }, /* 0x12 */
- { 1, 0, NULL }, /* 0x13 */
- { 1, 0, NULL }, /* 0x14 */
- { 1, 0, NULL }, /* 0x15 */
- { 1, 0, NULL }, /* 0x16 */
- { 1, 0, NULL }, /* 0x17 */
- { 1, 0, NULL }, /* 0x18 */
- { 1, 0, NULL }, /* 0x19 */
- { 1, 0, NULL }, /* 0x1A */
- { 1, 0, NULL }, /* 0x1B */
- { 1, 0, NULL }, /* 0x1C */
- { 1, 0, NULL }, /* 0x1D */
- { 1, 0, NULL }, /* 0x1E */
- { 1, 0, NULL }, /* 0x1F */
- { 0x13, 0xAC, aImplUniToDBCSTab_BIG5_20 }, /* 0x20 */
- { 0x03, 0x99, aImplUniToDBCSTab_BIG5_21 }, /* 0x21 */
- { 0x15, 0xEF, aImplUniToDBCSTab_BIG5_22 }, /* 0x22 */
- { 1, 0, NULL }, /* 0x23 */
- { 0x60, 0x7D, aImplUniToDBCSTab_BIG5_24 }, /* 0x24 */
- { 0x00, 0xE5, aImplUniToDBCSTab_BIG5_25 }, /* 0x25 */
- { 0x05, 0x42, aImplUniToDBCSTab_BIG5_26 }, /* 0x25 */
- { 1, 0, NULL }, /* 0x27 */
- { 1, 0, NULL }, /* 0x28 */
- { 1, 0, NULL }, /* 0x29 */
- { 1, 0, NULL }, /* 0x2A */
- { 1, 0, NULL }, /* 0x2B */
- { 1, 0, NULL }, /* 0x2C */
- { 1, 0, NULL }, /* 0x2D */
- { 1, 0, NULL }, /* 0x2E */
- { 1, 0, NULL }, /* 0x2F */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_30 }, /* 0x30 */
- { 0x05, 0x29, aImplUniToDBCSTab_BIG5_31 }, /* 0x31 */
- { 0xA3, 0xA3, aImplUniToDBCSTab_BIG5_32 }, /* 0x32 */
- { 0x8E, 0xD5, aImplUniToDBCSTab_BIG5_33 }, /* 0x33 */
- { 1, 0, NULL }, /* 0x34 */
- { 1, 0, NULL }, /* 0x35 */
- { 1, 0, NULL }, /* 0x36 */
- { 1, 0, NULL }, /* 0x37 */
- { 1, 0, NULL }, /* 0x38 */
- { 1, 0, NULL }, /* 0x39 */
- { 1, 0, NULL }, /* 0x3A */
- { 1, 0, NULL }, /* 0x3B */
- { 1, 0, NULL }, /* 0x3C */
- { 1, 0, NULL }, /* 0x3D */
- { 1, 0, NULL }, /* 0x3E */
- { 1, 0, NULL }, /* 0x3F */
- { 1, 0, NULL }, /* 0x40 */
- { 1, 0, NULL }, /* 0x41 */
- { 1, 0, NULL }, /* 0x42 */
- { 1, 0, NULL }, /* 0x43 */
- { 1, 0, NULL }, /* 0x44 */
- { 1, 0, NULL }, /* 0x45 */
- { 1, 0, NULL }, /* 0x46 */
- { 1, 0, NULL }, /* 0x47 */
- { 1, 0, NULL }, /* 0x48 */
- { 1, 0, NULL }, /* 0x49 */
- { 1, 0, NULL }, /* 0x4A */
- { 1, 0, NULL }, /* 0x4B */
- { 1, 0, NULL }, /* 0x4C */
- { 1, 0, NULL }, /* 0x4D */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_4E }, /* 0x4E */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_4F }, /* 0x4F */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_50 }, /* 0x50 */
- { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_51 }, /* 0x51 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_52 }, /* 0x52 */
- { 0x05, 0xFC, aImplUniToDBCSTab_BIG5_53 }, /* 0x53 */
- { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_54 }, /* 0x54 */
- { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_55 }, /* 0x55 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_56 }, /* 0x56 */
- { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_57 }, /* 0x57 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_58 }, /* 0x58 */
- { 0x03, 0xFF, aImplUniToDBCSTab_BIG5_59 }, /* 0x59 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_5A }, /* 0x5A */
- { 0x01, 0xFA, aImplUniToDBCSTab_BIG5_5B }, /* 0x5B */
- { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_5C }, /* 0x5C */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_5D }, /* 0x5D */
- { 0x02, 0xFF, aImplUniToDBCSTab_BIG5_5E }, /* 0x5E */
- { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_5F }, /* 0x5F */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_60 }, /* 0x60 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_61 }, /* 0x61 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_62 }, /* 0x62 */
- { 0x00, 0xF9, aImplUniToDBCSTab_BIG5_63 }, /* 0x63 */
- { 0x06, 0xFF, aImplUniToDBCSTab_BIG5_64 }, /* 0x64 */
- { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_65 }, /* 0x65 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_66 }, /* 0x66 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_67 }, /* 0x67 */
- { 0x12, 0xFD, aImplUniToDBCSTab_BIG5_68 }, /* 0x68 */
- { 0x04, 0xFF, aImplUniToDBCSTab_BIG5_69 }, /* 0x69 */
- { 0x00, 0xFC, aImplUniToDBCSTab_BIG5_6A }, /* 0x6A */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6B }, /* 0x6B */
- { 0x00, 0xF9, aImplUniToDBCSTab_BIG5_6C }, /* 0x6C */
- { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_6D }, /* 0x6D */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6E }, /* 0x6E */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6F }, /* 0x6F */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_70 }, /* 0x70 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_71 }, /* 0x71 */
- { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_72 }, /* 0x72 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_73 }, /* 0x73 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_74 }, /* 0x74 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_75 }, /* 0x75 */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_76 }, /* 0x76 */
- { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_77 }, /* 0x77 */
- { 0x02, 0xFF, aImplUniToDBCSTab_BIG5_78 }, /* 0x78 */
- { 0x01, 0xFB, aImplUniToDBCSTab_BIG5_79 }, /* 0x79 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_7A }, /* 0x7A */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_7B }, /* 0x7B */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_7C }, /* 0x7C */
- { 0x00, 0xFB, aImplUniToDBCSTab_BIG5_7D }, /* 0x7D */
- { 0x03, 0x9C, aImplUniToDBCSTab_BIG5_7E }, /* 0x7E */
- { 0x36, 0xFF, aImplUniToDBCSTab_BIG5_7F }, /* 0x7F */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_80 }, /* 0x80 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_81 }, /* 0x81 */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_82 }, /* 0x82 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_83 }, /* 0x83 */
- { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_84 }, /* 0x84 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_85 }, /* 0x85 */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_86 }, /* 0x86 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_87 }, /* 0x87 */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_88 }, /* 0x88 */
- { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_89 }, /* 0x89 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8A }, /* 0x8A */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8B }, /* 0x8B */
- { 0x37, 0xFE, aImplUniToDBCSTab_BIG5_8C }, /* 0x8C */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8D }, /* 0x8D */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8E }, /* 0x8E */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8F }, /* 0x8F */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_90 }, /* 0x90 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_91 }, /* 0x91 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_92 }, /* 0x92 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_93 }, /* 0x93 */
- { 0x00, 0x83, aImplUniToDBCSTab_BIG5_94 }, /* 0x94 */
- { 0x77, 0xE5, aImplUniToDBCSTab_BIG5_95 }, /* 0x95 */
- { 0x1C, 0xFF, aImplUniToDBCSTab_BIG5_96 }, /* 0x96 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_97 }, /* 0x97 */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_98 }, /* 0x98 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_99 }, /* 0x99 */
- { 0x01, 0xFE, aImplUniToDBCSTab_BIG5_9A }, /* 0x9A */
- { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_9B }, /* 0x9B */
- { 0x05, 0xFF, aImplUniToDBCSTab_BIG5_9C }, /* 0x9C */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_9D }, /* 0x9D */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_9E }, /* 0x9E */
- { 0x00, 0xA4, aImplUniToDBCSTab_BIG5_9F }, /* 0x9F */
- { 1, 0, NULL }, /* 0xA0 */
- { 1, 0, NULL }, /* 0xA1 */
- { 1, 0, NULL }, /* 0xA2 */
- { 1, 0, NULL }, /* 0xA3 */
- { 1, 0, NULL }, /* 0xA4 */
- { 1, 0, NULL }, /* 0xA5 */
- { 1, 0, NULL }, /* 0xA6 */
- { 1, 0, NULL }, /* 0xA7 */
- { 1, 0, NULL }, /* 0xA8 */
- { 1, 0, NULL }, /* 0xA9 */
- { 1, 0, NULL }, /* 0xAA */
- { 1, 0, NULL }, /* 0xAB */
- { 1, 0, NULL }, /* 0xAC */
- { 1, 0, NULL }, /* 0xAD */
- { 1, 0, NULL }, /* 0xAE */
- { 1, 0, NULL }, /* 0xAF */
- { 1, 0, NULL }, /* 0xB0 */
- { 1, 0, NULL }, /* 0xB1 */
- { 1, 0, NULL }, /* 0xB2 */
- { 1, 0, NULL }, /* 0xB3 */
- { 1, 0, NULL }, /* 0xB4 */
- { 1, 0, NULL }, /* 0xB5 */
- { 1, 0, NULL }, /* 0xB6 */
- { 1, 0, NULL }, /* 0xB7 */
- { 1, 0, NULL }, /* 0xB8 */
- { 1, 0, NULL }, /* 0xB9 */
- { 1, 0, NULL }, /* 0xBA */
- { 1, 0, NULL }, /* 0xBB */
- { 1, 0, NULL }, /* 0xBC */
- { 1, 0, NULL }, /* 0xBD */
- { 1, 0, NULL }, /* 0xBE */
- { 1, 0, NULL }, /* 0xBF */
- { 1, 0, NULL }, /* 0xC0 */
- { 1, 0, NULL }, /* 0xC1 */
- { 1, 0, NULL }, /* 0xC2 */
- { 1, 0, NULL }, /* 0xC3 */
- { 1, 0, NULL }, /* 0xC4 */
- { 1, 0, NULL }, /* 0xC5 */
- { 1, 0, NULL }, /* 0xC6 */
- { 1, 0, NULL }, /* 0xC7 */
- { 1, 0, NULL }, /* 0xC8 */
- { 1, 0, NULL }, /* 0xC9 */
- { 1, 0, NULL }, /* 0xCA */
- { 1, 0, NULL }, /* 0xCB */
- { 1, 0, NULL }, /* 0xCC */
- { 1, 0, NULL }, /* 0xCD */
- { 1, 0, NULL }, /* 0xCE */
- { 1, 0, NULL }, /* 0xCF */
- { 1, 0, NULL }, /* 0xD0 */
- { 1, 0, NULL }, /* 0xD1 */
- { 1, 0, NULL }, /* 0xD2 */
- { 1, 0, NULL }, /* 0xD3 */
- { 1, 0, NULL }, /* 0xD4 */
- { 1, 0, NULL }, /* 0xD5 */
- { 1, 0, NULL }, /* 0xD6 */
- { 1, 0, NULL }, /* 0xD7 */
- { 1, 0, NULL }, /* 0xD8 */
- { 1, 0, NULL }, /* 0xD9 */
- { 1, 0, NULL }, /* 0xDA */
- { 1, 0, NULL }, /* 0xDB */
- { 1, 0, NULL }, /* 0xDC */
- { 1, 0, NULL }, /* 0xDD */
- { 1, 0, NULL }, /* 0xDE */
- { 1, 0, NULL }, /* 0xDF */
- { 1, 0, NULL }, /* 0xE0 */
- { 1, 0, NULL }, /* 0xE1 */
- { 1, 0, NULL }, /* 0xE2 */
- { 1, 0, NULL }, /* 0xE3 */
- { 1, 0, NULL }, /* 0xE4 */
- { 1, 0, NULL }, /* 0xE5 */
- { 1, 0, NULL }, /* 0xE6 */
- { 1, 0, NULL }, /* 0xE7 */
- { 1, 0, NULL }, /* 0xE8 */
- { 1, 0, NULL }, /* 0xE9 */
- { 1, 0, NULL }, /* 0xEA */
- { 1, 0, NULL }, /* 0xEB */
- { 1, 0, NULL }, /* 0xEC */
- { 1, 0, NULL }, /* 0xED */
- { 1, 0, NULL }, /* 0xEE */
- { 1, 0, NULL }, /* 0xEF */
- { 1, 0, NULL }, /* 0xF0 */
- { 1, 0, NULL }, /* 0xF1 */
- { 1, 0, NULL }, /* 0xF2 */
- { 1, 0, NULL }, /* 0xF3 */
- { 1, 0, NULL }, /* 0xF4 */
- { 1, 0, NULL }, /* 0xF5 */
- { 1, 0, NULL }, /* 0xF6 */
- { 1, 0, NULL }, /* 0xF7 */
- { 1, 0, NULL }, /* 0xF8 */
- { 1, 0, NULL }, /* 0xF9 */
- { 0x0C, 0x0D, aImplUniToDBCSTab_BIG5_FA }, /* 0xFA */
- { 1, 0, NULL }, /* 0xFB */
- { 1, 0, NULL }, /* 0xFC */
- { 1, 0, NULL }, /* 0xFD */
- { 0x30, 0x6B, aImplUniToDBCSTab_BIG5_FE }, /* 0xFE */
- { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_FF } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplDBCSConvertData const aImplMS950DBCSCvtData =
-{
- aMS950UniLeadTab,
- aMS950DBCSHighTab,
- 0x00, 0xFF,
- 0x40, 0xFE,
- aImplMS950DBCSEUDCTab,
- DBCS_EUDC_MS950_COUNT
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplMS950TextEncodingData
- = { { &aImplMS950DBCSCvtData,
- ImplDBCSToUnicode,
- ImplUnicodeToDBCS,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 2,
- 2,
- 136,
- "euc-tw",
- "big5",
- RTL_TEXTENCODING_INFO_MULTIBYTE };
- /* WIN/DOS/OS2, SCRIPT_CHINESE_TRADITIONAL, pc code page 950, mac encoding
- 2 */
-
-/* ======================================================================= */
-
-static ImplDBCSToUniLeadTab const aAPPLECHINTRADUniLeadTab[256] =
-{
- { 0x0000, 0, 0, NULL }, /* 0x00 */
- { 0x0001, 0, 0, NULL }, /* 0x01 */
- { 0x0002, 0, 0, NULL }, /* 0x02 */
- { 0x0003, 0, 0, NULL }, /* 0x03 */
- { 0x0004, 0, 0, NULL }, /* 0x04 */
- { 0x0005, 0, 0, NULL }, /* 0x05 */
- { 0x0006, 0, 0, NULL }, /* 0x06 */
- { 0x0007, 0, 0, NULL }, /* 0x07 */
- { 0x0008, 0, 0, NULL }, /* 0x08 */
- { 0x0009, 0, 0, NULL }, /* 0x09 */
- { 0x000A, 0, 0, NULL }, /* 0x0A */
- { 0x000B, 0, 0, NULL }, /* 0x0B */
- { 0x000C, 0, 0, NULL }, /* 0x0C */
- { 0x000D, 0, 0, NULL }, /* 0x0D */
- { 0x000E, 0, 0, NULL }, /* 0x0E */
- { 0x000F, 0, 0, NULL }, /* 0x0F */
- { 0x0010, 0, 0, NULL }, /* 0x10 */
- { 0x0011, 0, 0, NULL }, /* 0x11 */
- { 0x0012, 0, 0, NULL }, /* 0x12 */
- { 0x0013, 0, 0, NULL }, /* 0x13 */
- { 0x0014, 0, 0, NULL }, /* 0x14 */
- { 0x0015, 0, 0, NULL }, /* 0x15 */
- { 0x0016, 0, 0, NULL }, /* 0x16 */
- { 0x0017, 0, 0, NULL }, /* 0x17 */
- { 0x0018, 0, 0, NULL }, /* 0x18 */
- { 0x0019, 0, 0, NULL }, /* 0x19 */
- { 0x001A, 0, 0, NULL }, /* 0x1A */
- { 0x001B, 0, 0, NULL }, /* 0x1B */
- { 0x001C, 0, 0, NULL }, /* 0x1C */
- { 0x001D, 0, 0, NULL }, /* 0x1D */
- { 0x001E, 0, 0, NULL }, /* 0x1E */
- { 0x001F, 0, 0, NULL }, /* 0x1F */
- { 0x0020, 0, 0, NULL }, /* 0x20 */
- { 0x0021, 0, 0, NULL }, /* 0x21 */
- { 0x0022, 0, 0, NULL }, /* 0x22 */
- { 0x0023, 0, 0, NULL }, /* 0x23 */
- { 0x0024, 0, 0, NULL }, /* 0x24 */
- { 0x0025, 0, 0, NULL }, /* 0x25 */
- { 0x0026, 0, 0, NULL }, /* 0x26 */
- { 0x0027, 0, 0, NULL }, /* 0x27 */
- { 0x0028, 0, 0, NULL }, /* 0x28 */
- { 0x0029, 0, 0, NULL }, /* 0x29 */
- { 0x002A, 0, 0, NULL }, /* 0x2A */
- { 0x002B, 0, 0, NULL }, /* 0x2B */
- { 0x002C, 0, 0, NULL }, /* 0x2C */
- { 0x002D, 0, 0, NULL }, /* 0x2D */
- { 0x002E, 0, 0, NULL }, /* 0x2E */
- { 0x002F, 0, 0, NULL }, /* 0x2F */
- { 0x0030, 0, 0, NULL }, /* 0x30 */
- { 0x0031, 0, 0, NULL }, /* 0x31 */
- { 0x0032, 0, 0, NULL }, /* 0x32 */
- { 0x0033, 0, 0, NULL }, /* 0x33 */
- { 0x0034, 0, 0, NULL }, /* 0x34 */
- { 0x0035, 0, 0, NULL }, /* 0x35 */
- { 0x0036, 0, 0, NULL }, /* 0x36 */
- { 0x0037, 0, 0, NULL }, /* 0x37 */
- { 0x0038, 0, 0, NULL }, /* 0x38 */
- { 0x0039, 0, 0, NULL }, /* 0x39 */
- { 0x003A, 0, 0, NULL }, /* 0x3A */
- { 0x003B, 0, 0, NULL }, /* 0x3B */
- { 0x003C, 0, 0, NULL }, /* 0x3C */
- { 0x003D, 0, 0, NULL }, /* 0x3D */
- { 0x003E, 0, 0, NULL }, /* 0x3E */
- { 0x003F, 0, 0, NULL }, /* 0x3F */
- { 0x0040, 0, 0, NULL }, /* 0x40 */
- { 0x0041, 0, 0, NULL }, /* 0x41 */
- { 0x0042, 0, 0, NULL }, /* 0x42 */
- { 0x0043, 0, 0, NULL }, /* 0x43 */
- { 0x0044, 0, 0, NULL }, /* 0x44 */
- { 0x0045, 0, 0, NULL }, /* 0x45 */
- { 0x0046, 0, 0, NULL }, /* 0x46 */
- { 0x0047, 0, 0, NULL }, /* 0x47 */
- { 0x0048, 0, 0, NULL }, /* 0x48 */
- { 0x0049, 0, 0, NULL }, /* 0x49 */
- { 0x004A, 0, 0, NULL }, /* 0x4A */
- { 0x004B, 0, 0, NULL }, /* 0x4B */
- { 0x004C, 0, 0, NULL }, /* 0x4C */
- { 0x004D, 0, 0, NULL }, /* 0x4D */
- { 0x004E, 0, 0, NULL }, /* 0x4E */
- { 0x004F, 0, 0, NULL }, /* 0x4F */
- { 0x0050, 0, 0, NULL }, /* 0x50 */
- { 0x0051, 0, 0, NULL }, /* 0x51 */
- { 0x0052, 0, 0, NULL }, /* 0x52 */
- { 0x0053, 0, 0, NULL }, /* 0x53 */
- { 0x0054, 0, 0, NULL }, /* 0x54 */
- { 0x0055, 0, 0, NULL }, /* 0x55 */
- { 0x0056, 0, 0, NULL }, /* 0x56 */
- { 0x0057, 0, 0, NULL }, /* 0x57 */
- { 0x0058, 0, 0, NULL }, /* 0x58 */
- { 0x0059, 0, 0, NULL }, /* 0x59 */
- { 0x005A, 0, 0, NULL }, /* 0x5A */
- { 0x005B, 0, 0, NULL }, /* 0x5B */
- { 0x005C, 0, 0, NULL }, /* 0x5C */
- { 0x005D, 0, 0, NULL }, /* 0x5D */
- { 0x005E, 0, 0, NULL }, /* 0x5E */
- { 0x005F, 0, 0, NULL }, /* 0x5F */
- { 0x0060, 0, 0, NULL }, /* 0x60 */
- { 0x0061, 0, 0, NULL }, /* 0x61 */
- { 0x0062, 0, 0, NULL }, /* 0x62 */
- { 0x0063, 0, 0, NULL }, /* 0x63 */
- { 0x0064, 0, 0, NULL }, /* 0x64 */
- { 0x0065, 0, 0, NULL }, /* 0x65 */
- { 0x0066, 0, 0, NULL }, /* 0x66 */
- { 0x0067, 0, 0, NULL }, /* 0x67 */
- { 0x0068, 0, 0, NULL }, /* 0x68 */
- { 0x0069, 0, 0, NULL }, /* 0x69 */
- { 0x006A, 0, 0, NULL }, /* 0x6A */
- { 0x006B, 0, 0, NULL }, /* 0x6B */
- { 0x006C, 0, 0, NULL }, /* 0x6C */
- { 0x006D, 0, 0, NULL }, /* 0x6D */
- { 0x006E, 0, 0, NULL }, /* 0x6E */
- { 0x006F, 0, 0, NULL }, /* 0x6F */
- { 0x0070, 0, 0, NULL }, /* 0x70 */
- { 0x0071, 0, 0, NULL }, /* 0x71 */
- { 0x0072, 0, 0, NULL }, /* 0x72 */
- { 0x0073, 0, 0, NULL }, /* 0x73 */
- { 0x0074, 0, 0, NULL }, /* 0x74 */
- { 0x0075, 0, 0, NULL }, /* 0x75 */
- { 0x0076, 0, 0, NULL }, /* 0x76 */
- { 0x0077, 0, 0, NULL }, /* 0x77 */
- { 0x0078, 0, 0, NULL }, /* 0x78 */
- { 0x0079, 0, 0, NULL }, /* 0x79 */
- { 0x007A, 0, 0, NULL }, /* 0x7A */
- { 0x007B, 0, 0, NULL }, /* 0x7B */
- { 0x007C, 0, 0, NULL }, /* 0x7C */
- { 0x007D, 0, 0, NULL }, /* 0x7D */
- { 0x007E, 0, 0, NULL }, /* 0x7E */
- { 0x007F, 0, 0, NULL }, /* 0x7F */
- { 0, 1, 0, NULL }, /* 0x80 */
- { 0xF880, 0, 0, NULL }, /* 0x81 */
- { 0xF881, 0, 0, NULL }, /* 0x82 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x83 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x84 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x85 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x86 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x87 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x88 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x89 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8A */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8B */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8C */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8D */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8E */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8F */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x90 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x91 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x92 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x93 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x94 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x95 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x96 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x97 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x98 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x99 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9A */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9B */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9C */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9D */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9E */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9F */ /* We convert this as double byte */
- { 0x00A0, 0, 0, NULL }, /* 0xA0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A1 }, /* 0xA1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A2 }, /* 0xA2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A3 }, /* 0xA3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A4 }, /* 0xA4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A5 }, /* 0xA5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A6 }, /* 0xA6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A7 }, /* 0xA7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A8 }, /* 0xA8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A9 }, /* 0xA9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AA }, /* 0xAA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AB }, /* 0xAB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AC }, /* 0xAC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AD }, /* 0xAD */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AE }, /* 0xAE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AF }, /* 0xAF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B0 }, /* 0xB0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B1 }, /* 0xB1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B2 }, /* 0xB2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B3 }, /* 0xB3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B4 }, /* 0xB4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B5 }, /* 0xB5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B6 }, /* 0xB6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B7 }, /* 0xB7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B8 }, /* 0xB8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B9 }, /* 0xB9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BA }, /* 0xBA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BB }, /* 0xBB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BC }, /* 0xBC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BD }, /* 0xBD */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BE }, /* 0xBE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BF }, /* 0xBF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C0 }, /* 0xC0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C1 }, /* 0xC1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C2 }, /* 0xC2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C3 }, /* 0xC3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C4 }, /* 0xC4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C5 }, /* 0xC5 */
- { 0, 0x40, 0x7E, aImplDBCSToUniTab_BIG5_C6 }, /* 0xC6 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xC7 */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xC8 */ /* We convert this as double byte */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C9 }, /* 0xC9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CA }, /* 0xCA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CB }, /* 0xCB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CC }, /* 0xCC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CD }, /* 0xCD */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CE }, /* 0xCE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CF }, /* 0xCF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D0 }, /* 0xD0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D1 }, /* 0xD1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D2 }, /* 0xD2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D3 }, /* 0xD3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D4 }, /* 0xD4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D5 }, /* 0xD5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D6 }, /* 0xD6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D7 }, /* 0xD7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D8 }, /* 0xD8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D9 }, /* 0xD9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DA }, /* 0xDA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DB }, /* 0xDB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DC }, /* 0xDC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DD }, /* 0xDD */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DE }, /* 0xDE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DF }, /* 0xDF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E0 }, /* 0xE0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E1 }, /* 0xE1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E2 }, /* 0xE2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E3 }, /* 0xE3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E4 }, /* 0xE4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E5 }, /* 0xE5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E6 }, /* 0xE6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E7 }, /* 0xE7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E8 }, /* 0xE8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E9 }, /* 0xE9 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EA }, /* 0xEA */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EB }, /* 0xEB */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EC }, /* 0xEC */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_ED }, /* 0xED */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EE }, /* 0xEE */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EF }, /* 0xEF */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F0 }, /* 0xF0 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F1 }, /* 0xF1 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F2 }, /* 0xF2 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F3 }, /* 0xF3 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F4 }, /* 0xF4 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F5 }, /* 0xF5 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F6 }, /* 0xF6 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F7 }, /* 0xF7 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F8 }, /* 0xF8 */
- { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F9 }, /* 0xF9 */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFA */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFB */ /* We convert this as double byte */
- { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFC */ /* We convert this as double byte */
- { 0x00A9, 0, 0, NULL }, /* 0xFD */
- { 0x2122, 0, 0, NULL }, /* 0xFE */
- { 0x2026, 0, 0, NULL } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplUniToDBCSHighTab const aAPPLECHINTRADDBCSHighTab[256] =
-{
- { 0x00, 0xF7, aImplUniToDBCSTab_APPLECHINTRAD_00 }, /* 0x00 */
- { 1, 0, NULL }, /* 0x01 */
- { 0xC7, 0xD9, aImplUniToDBCSTab_BIG5_02 }, /* 0x02 */
- { 0x91, 0xC9, aImplUniToDBCSTab_BIG5_03 }, /* 0x03 */
- { 0x01, 0x51, aImplUniToDBCSTab_BIG5_04 }, /* 0x04 */
- { 1, 0, NULL }, /* 0x05 */
- { 1, 0, NULL }, /* 0x06 */
- { 1, 0, NULL }, /* 0x07 */
- { 1, 0, NULL }, /* 0x08 */
- { 1, 0, NULL }, /* 0x09 */
- { 1, 0, NULL }, /* 0x0A */
- { 1, 0, NULL }, /* 0x0B */
- { 1, 0, NULL }, /* 0x0C */
- { 1, 0, NULL }, /* 0x0D */
- { 1, 0, NULL }, /* 0x0E */
- { 1, 0, NULL }, /* 0x0F */
- { 1, 0, NULL }, /* 0x10 */
- { 1, 0, NULL }, /* 0x11 */
- { 1, 0, NULL }, /* 0x12 */
- { 1, 0, NULL }, /* 0x13 */
- { 1, 0, NULL }, /* 0x14 */
- { 1, 0, NULL }, /* 0x15 */
- { 1, 0, NULL }, /* 0x16 */
- { 1, 0, NULL }, /* 0x17 */
- { 1, 0, NULL }, /* 0x18 */
- { 1, 0, NULL }, /* 0x19 */
- { 1, 0, NULL }, /* 0x1A */
- { 1, 0, NULL }, /* 0x1B */
- { 1, 0, NULL }, /* 0x1C */
- { 1, 0, NULL }, /* 0x1D */
- { 1, 0, NULL }, /* 0x1E */
- { 1, 0, NULL }, /* 0x1F */
- { 0x13, 0xAC, aImplUniToDBCSTab_BIG5_20 }, /* 0x20 */
- { 0x03, 0x99, aImplUniToDBCSTab_APPLECHINTRAD_21 }, /* 0x21 */
- { 0x15, 0xEF, aImplUniToDBCSTab_BIG5_22 }, /* 0x22 */
- { 1, 0, NULL }, /* 0x23 */
- { 0x60, 0x7D, aImplUniToDBCSTab_BIG5_24 }, /* 0x24 */
- { 0x00, 0xE5, aImplUniToDBCSTab_BIG5_25 }, /* 0x25 */
- { 0x05, 0x42, aImplUniToDBCSTab_BIG5_26 }, /* 0x25 */
- { 1, 0, NULL }, /* 0x27 */
- { 1, 0, NULL }, /* 0x28 */
- { 1, 0, NULL }, /* 0x29 */
- { 1, 0, NULL }, /* 0x2A */
- { 1, 0, NULL }, /* 0x2B */
- { 1, 0, NULL }, /* 0x2C */
- { 1, 0, NULL }, /* 0x2D */
- { 1, 0, NULL }, /* 0x2E */
- { 1, 0, NULL }, /* 0x2F */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_30 }, /* 0x30 */
- { 0x05, 0x29, aImplUniToDBCSTab_BIG5_31 }, /* 0x31 */
- { 0xA3, 0xA3, aImplUniToDBCSTab_BIG5_32 }, /* 0x32 */
- { 0x8E, 0xD5, aImplUniToDBCSTab_BIG5_33 }, /* 0x33 */
- { 1, 0, NULL }, /* 0x34 */
- { 1, 0, NULL }, /* 0x35 */
- { 1, 0, NULL }, /* 0x36 */
- { 1, 0, NULL }, /* 0x37 */
- { 1, 0, NULL }, /* 0x38 */
- { 1, 0, NULL }, /* 0x39 */
- { 1, 0, NULL }, /* 0x3A */
- { 1, 0, NULL }, /* 0x3B */
- { 1, 0, NULL }, /* 0x3C */
- { 1, 0, NULL }, /* 0x3D */
- { 1, 0, NULL }, /* 0x3E */
- { 1, 0, NULL }, /* 0x3F */
- { 1, 0, NULL }, /* 0x40 */
- { 1, 0, NULL }, /* 0x41 */
- { 1, 0, NULL }, /* 0x42 */
- { 1, 0, NULL }, /* 0x43 */
- { 1, 0, NULL }, /* 0x44 */
- { 1, 0, NULL }, /* 0x45 */
- { 1, 0, NULL }, /* 0x46 */
- { 1, 0, NULL }, /* 0x47 */
- { 1, 0, NULL }, /* 0x48 */
- { 1, 0, NULL }, /* 0x49 */
- { 1, 0, NULL }, /* 0x4A */
- { 1, 0, NULL }, /* 0x4B */
- { 1, 0, NULL }, /* 0x4C */
- { 1, 0, NULL }, /* 0x4D */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_4E }, /* 0x4E */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_4F }, /* 0x4F */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_50 }, /* 0x50 */
- { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_51 }, /* 0x51 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_52 }, /* 0x52 */
- { 0x05, 0xFC, aImplUniToDBCSTab_BIG5_53 }, /* 0x53 */
- { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_54 }, /* 0x54 */
- { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_55 }, /* 0x55 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_56 }, /* 0x56 */
- { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_57 }, /* 0x57 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_58 }, /* 0x58 */
- { 0x03, 0xFF, aImplUniToDBCSTab_BIG5_59 }, /* 0x59 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_5A }, /* 0x5A */
- { 0x01, 0xFA, aImplUniToDBCSTab_BIG5_5B }, /* 0x5B */
- { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_5C }, /* 0x5C */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_5D }, /* 0x5D */
- { 0x02, 0xFF, aImplUniToDBCSTab_BIG5_5E }, /* 0x5E */
- { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_5F }, /* 0x5F */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_60 }, /* 0x60 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_61 }, /* 0x61 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_62 }, /* 0x62 */
- { 0x00, 0xF9, aImplUniToDBCSTab_BIG5_63 }, /* 0x63 */
- { 0x06, 0xFF, aImplUniToDBCSTab_BIG5_64 }, /* 0x64 */
- { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_65 }, /* 0x65 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_66 }, /* 0x66 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_67 }, /* 0x67 */
- { 0x12, 0xFD, aImplUniToDBCSTab_BIG5_68 }, /* 0x68 */
- { 0x04, 0xFF, aImplUniToDBCSTab_BIG5_69 }, /* 0x69 */
- { 0x00, 0xFC, aImplUniToDBCSTab_BIG5_6A }, /* 0x6A */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6B }, /* 0x6B */
- { 0x00, 0xF9, aImplUniToDBCSTab_BIG5_6C }, /* 0x6C */
- { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_6D }, /* 0x6D */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6E }, /* 0x6E */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6F }, /* 0x6F */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_70 }, /* 0x70 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_71 }, /* 0x71 */
- { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_72 }, /* 0x72 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_73 }, /* 0x73 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_74 }, /* 0x74 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_75 }, /* 0x75 */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_76 }, /* 0x76 */
- { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_77 }, /* 0x77 */
- { 0x02, 0xFF, aImplUniToDBCSTab_BIG5_78 }, /* 0x78 */
- { 0x01, 0xFB, aImplUniToDBCSTab_BIG5_79 }, /* 0x79 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_7A }, /* 0x7A */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_7B }, /* 0x7B */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_7C }, /* 0x7C */
- { 0x00, 0xFB, aImplUniToDBCSTab_BIG5_7D }, /* 0x7D */
- { 0x03, 0x9C, aImplUniToDBCSTab_BIG5_7E }, /* 0x7E */
- { 0x36, 0xFF, aImplUniToDBCSTab_BIG5_7F }, /* 0x7F */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_80 }, /* 0x80 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_81 }, /* 0x81 */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_82 }, /* 0x82 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_83 }, /* 0x83 */
- { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_84 }, /* 0x84 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_85 }, /* 0x85 */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_86 }, /* 0x86 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_87 }, /* 0x87 */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_88 }, /* 0x88 */
- { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_89 }, /* 0x89 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8A }, /* 0x8A */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8B }, /* 0x8B */
- { 0x37, 0xFE, aImplUniToDBCSTab_BIG5_8C }, /* 0x8C */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8D }, /* 0x8D */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8E }, /* 0x8E */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8F }, /* 0x8F */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_90 }, /* 0x90 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_91 }, /* 0x91 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_92 }, /* 0x92 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_93 }, /* 0x93 */
- { 0x00, 0x83, aImplUniToDBCSTab_BIG5_94 }, /* 0x94 */
- { 0x77, 0xE5, aImplUniToDBCSTab_BIG5_95 }, /* 0x95 */
- { 0x1C, 0xFF, aImplUniToDBCSTab_BIG5_96 }, /* 0x96 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_97 }, /* 0x97 */
- { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_98 }, /* 0x98 */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_99 }, /* 0x99 */
- { 0x01, 0xFE, aImplUniToDBCSTab_BIG5_9A }, /* 0x9A */
- { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_9B }, /* 0x9B */
- { 0x05, 0xFF, aImplUniToDBCSTab_BIG5_9C }, /* 0x9C */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_9D }, /* 0x9D */
- { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_9E }, /* 0x9E */
- { 0x00, 0xA4, aImplUniToDBCSTab_BIG5_9F }, /* 0x9F */
- { 1, 0, NULL }, /* 0xA0 */
- { 1, 0, NULL }, /* 0xA1 */
- { 1, 0, NULL }, /* 0xA2 */
- { 1, 0, NULL }, /* 0xA3 */
- { 1, 0, NULL }, /* 0xA4 */
- { 1, 0, NULL }, /* 0xA5 */
- { 1, 0, NULL }, /* 0xA6 */
- { 1, 0, NULL }, /* 0xA7 */
- { 1, 0, NULL }, /* 0xA8 */
- { 1, 0, NULL }, /* 0xA9 */
- { 1, 0, NULL }, /* 0xAA */
- { 1, 0, NULL }, /* 0xAB */
- { 1, 0, NULL }, /* 0xAC */
- { 1, 0, NULL }, /* 0xAD */
- { 1, 0, NULL }, /* 0xAE */
- { 1, 0, NULL }, /* 0xAF */
- { 1, 0, NULL }, /* 0xB0 */
- { 1, 0, NULL }, /* 0xB1 */
- { 1, 0, NULL }, /* 0xB2 */
- { 1, 0, NULL }, /* 0xB3 */
- { 1, 0, NULL }, /* 0xB4 */
- { 1, 0, NULL }, /* 0xB5 */
- { 1, 0, NULL }, /* 0xB6 */
- { 1, 0, NULL }, /* 0xB7 */
- { 1, 0, NULL }, /* 0xB8 */
- { 1, 0, NULL }, /* 0xB9 */
- { 1, 0, NULL }, /* 0xBA */
- { 1, 0, NULL }, /* 0xBB */
- { 1, 0, NULL }, /* 0xBC */
- { 1, 0, NULL }, /* 0xBD */
- { 1, 0, NULL }, /* 0xBE */
- { 1, 0, NULL }, /* 0xBF */
- { 1, 0, NULL }, /* 0xC0 */
- { 1, 0, NULL }, /* 0xC1 */
- { 1, 0, NULL }, /* 0xC2 */
- { 1, 0, NULL }, /* 0xC3 */
- { 1, 0, NULL }, /* 0xC4 */
- { 1, 0, NULL }, /* 0xC5 */
- { 1, 0, NULL }, /* 0xC6 */
- { 1, 0, NULL }, /* 0xC7 */
- { 1, 0, NULL }, /* 0xC8 */
- { 1, 0, NULL }, /* 0xC9 */
- { 1, 0, NULL }, /* 0xCA */
- { 1, 0, NULL }, /* 0xCB */
- { 1, 0, NULL }, /* 0xCC */
- { 1, 0, NULL }, /* 0xCD */
- { 1, 0, NULL }, /* 0xCE */
- { 1, 0, NULL }, /* 0xCF */
- { 1, 0, NULL }, /* 0xD0 */
- { 1, 0, NULL }, /* 0xD1 */
- { 1, 0, NULL }, /* 0xD2 */
- { 1, 0, NULL }, /* 0xD3 */
- { 1, 0, NULL }, /* 0xD4 */
- { 1, 0, NULL }, /* 0xD5 */
- { 1, 0, NULL }, /* 0xD6 */
- { 1, 0, NULL }, /* 0xD7 */
- { 1, 0, NULL }, /* 0xD8 */
- { 1, 0, NULL }, /* 0xD9 */
- { 1, 0, NULL }, /* 0xDA */
- { 1, 0, NULL }, /* 0xDB */
- { 1, 0, NULL }, /* 0xDC */
- { 1, 0, NULL }, /* 0xDD */
- { 1, 0, NULL }, /* 0xDE */
- { 1, 0, NULL }, /* 0xDF */
- { 1, 0, NULL }, /* 0xE0 */
- { 1, 0, NULL }, /* 0xE1 */
- { 1, 0, NULL }, /* 0xE2 */
- { 1, 0, NULL }, /* 0xE3 */
- { 1, 0, NULL }, /* 0xE4 */
- { 1, 0, NULL }, /* 0xE5 */
- { 1, 0, NULL }, /* 0xE6 */
- { 1, 0, NULL }, /* 0xE7 */
- { 1, 0, NULL }, /* 0xE8 */
- { 1, 0, NULL }, /* 0xE9 */
- { 1, 0, NULL }, /* 0xEA */
- { 1, 0, NULL }, /* 0xEB */
- { 1, 0, NULL }, /* 0xEC */
- { 1, 0, NULL }, /* 0xED */
- { 1, 0, NULL }, /* 0xEE */
- { 1, 0, NULL }, /* 0xEF */
- { 1, 0, NULL }, /* 0xF0 */
- { 1, 0, NULL }, /* 0xF1 */
- { 1, 0, NULL }, /* 0xF2 */
- { 1, 0, NULL }, /* 0xF3 */
- { 1, 0, NULL }, /* 0xF4 */
- { 1, 0, NULL }, /* 0xF5 */
- { 1, 0, NULL }, /* 0xF6 */
- { 1, 0, NULL }, /* 0xF7 */
- { 0x80, 0x81, aImplUniToDBCSTab_APPLECHINTRAD_F8 }, /* 0xF8 */
- { 1, 0, NULL }, /* 0xF9 */
- { 0x0C, 0x0D, aImplUniToDBCSTab_BIG5_FA }, /* 0xFA */
- { 1, 0, NULL }, /* 0xFB */
- { 1, 0, NULL }, /* 0xFC */
- { 1, 0, NULL }, /* 0xFD */
- { 0x30, 0x6B, aImplUniToDBCSTab_BIG5_FE }, /* 0xFE */
- { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_FF } /* 0xFF */
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplDBCSConvertData const aImplAPPLECHINTRADDBCSCvtData =
-{
- aAPPLECHINTRADUniLeadTab,
- aAPPLECHINTRADDBCSHighTab,
- 0x00, 0xFF,
- 0x40, 0xFE,
- NULL,
- 0
-};
-
-/* ----------------------------------------------------------------------- */
-
-static ImplTextEncodingData const aImplAPPLECHINTRADTextEncodingData
- = { { &aImplAPPLECHINTRADDBCSCvtData,
- ImplDBCSToUnicode,
- ImplUnicodeToDBCS,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL },
- 1,
- 2,
- 2,
- 136,
- "euc-tw",
- "big5",
- RTL_TEXTENCODING_INFO_MULTIBYTE };
- /* MAC, SCRIPT_CHINESE_TRADITIONAL, pc code page 950, mac encoding 2 */
diff --git a/sal/textenc/tcvtuni1.tab b/sal/textenc/tcvtuni1.tab
deleted file mode 100644
index ebf5901da..000000000
--- a/sal/textenc/tcvtuni1.tab
+++ /dev/null
@@ -1,100 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_TEXTENC_CONTEXT_H
-#include "context.h"
-#endif
-
-/* Unicode Encodings */
-
-static ImplTextEncodingData const aImplUTF7TextEncodingData
- = { { NULL,
- ImplUTF7ToUnicode,
- ImplUnicodeToUTF7,
- ImplUTF7CreateUTF7TextToUnicodeContext,
- ImplUTF7DestroyTextToUnicodeContext,
- ImplUTF7ResetTextToUnicodeContext,
- ImplUTF7CreateUnicodeToTextContext,
- ImplUTF7DestroyUnicodeToTextContext,
- ImplUTF7ResetUnicodeToTextContext },
- 1,
- 6,
- 1,
- 0,
- "iso8859-1",
- "utf-7",
- RTL_TEXTENCODING_INFO_CONTEXT
- | RTL_TEXTENCODING_INFO_UNICODE
- | RTL_TEXTENCODING_INFO_7BIT
- | RTL_TEXTENCODING_INFO_MULTIBYTE
- | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_UNICODE, pc code page 850 */
-
-static ImplTextEncodingData const aImplUTF8TextEncodingData
- = { { NULL,
- &ImplConvertUtf8ToUnicode,
- &ImplConvertUnicodeToUtf8,
- &ImplCreateUtf8ToUnicodeContext,
- &ImplDestroyContext,
- &ImplResetUtf8ToUnicodeContext,
- &ImplCreateUnicodeToUtf8Context,
- &ImplDestroyContext,
- &ImplResetUnicodeToUtf8Context },
- 1,
- 6,
- 1,
- 0,
- "iso8859-1",
- "utf-8",
- RTL_TEXTENCODING_INFO_ASCII
- | RTL_TEXTENCODING_INFO_UNICODE
- | RTL_TEXTENCODING_INFO_MULTIBYTE
- | RTL_TEXTENCODING_INFO_MIME };
- /* SCRIPT_UNICODE, pc code page 850 */
-
-static char aImplJavaUtf8TextConverterTag;
- /* The value of this tag is irrelevant. Only its address != NULL is used to
- distinguish between RTL_TEXTENCODING_UTF8 and
- RTL_TEXTENCODING_JAVA_UTF8. */
-
-static ImplTextEncodingData const aImplJavaUtf8TextEncodingData
- = { { &aImplJavaUtf8TextConverterTag,
- &ImplConvertUtf8ToUnicode,
- &ImplConvertUnicodeToUtf8,
- &ImplCreateUtf8ToUnicodeContext,
- &ImplDestroyContext,
- &ImplResetUtf8ToUnicodeContext,
- &ImplCreateUnicodeToUtf8Context,
- &ImplDestroyContext,
- &ImplResetUnicodeToUtf8Context },
- 1,
- 3,
- 1,
- 0,
- NULL,
- NULL,
- RTL_TEXTENCODING_INFO_UNICODE | RTL_TEXTENCODING_INFO_MULTIBYTE };
diff --git a/sal/textenc/tcvtutf7.c b/sal/textenc/tcvtutf7.c
deleted file mode 100644
index e0dfa25e3..000000000
--- a/sal/textenc/tcvtutf7.c
+++ /dev/null
@@ -1,591 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "tenchelp.h"
-#include "unichars.h"
-
-#ifndef _RTL_ALLOC_H
-#include "rtl/alloc.h"
-#endif
-#include "rtl/textcvt.h"
-
-/* ======================================================================= */
-
-static sal_uChar const aImplBase64Tab[64] =
-{
- /* A-Z */
- 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
- 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
- 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
- 0x58, 0x59, 0x5A,
- /* a-z */
- 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
- 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
- 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
- 0x78, 0x79, 0x7A,
- /* 0-9,+,/ */
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x2B, 0x2F
-};
-
-/* Index in Base64Tab or 0xFF, when is a invalid character */
-static sal_uChar const aImplBase64IndexTab[128] =
-{
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 0x00-0x07 */
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 0x08-0x0F */
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 0x10-0x17 */
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 0x18-0x1F */
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 0x20-0x27 !"#$%&' */
- 0xFF, 0xFF, 0xFF, 62, 0xFF, 0xFF, 0xFF, 63, /* 0x28-0x2F ()*+,-./ */
- 52, 53, 54, 55, 56, 57, 58, 59, /* 0x30-0x37 01234567 */
- 60, 61, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 0x38-0x3F 89:;<=>? */
- 0xFF, 0, 1, 2, 3, 4, 5, 6, /* 0x40-0x47 @ABCDEFG */
- 7, 8, 9, 10, 11, 12, 13, 14, /* 0x48-0x4F HIJKLMNO */
- 15, 16, 17, 18, 19, 20, 21, 22, /* 0x50-0x57 PQRSTUVW */
- 23, 24, 25, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 0x58-0x5F XYZ[\]^_ */
- 0xFF, 26, 27, 28, 29, 30, 31, 32, /* 0x60-0x67 `abcdefg */
- 33, 34, 35, 36, 37, 38, 39, 40, /* 0x68-0x6F hijklmno */
- 41, 42, 43, 44, 45, 46, 47, 48, /* 0x70-0x77 pqrstuvw */
- 49, 50, 51, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF /* 0x78-0x7F xyz{|}~ */
-};
-
-static sal_uChar const aImplMustShiftTab[128] =
-{
- 1, 1, 1, 1, 1, 1, 1, 1, /* 0x00-0x07 */
- 1, 0, 0, 1, 0, 1, 1, 1, /* 0x08-0x0F 0x09 == HTAB, 0x0A == LF 0x0C == CR */
- 1, 1, 1, 1, 1, 1, 1, 1, /* 0x10-0x17 */
- 1, 1, 1, 1, 1, 1, 1, 1, /* 0x18-0x1F */
- 0, 1, 1, 1, 1, 1, 1, 0, /* 0x20-0x27 !"#$%&' */
- 0, 0, 1, 1, 0, 1, 0, 0, /* 0x28-0x2F ()*+,-./ */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30-0x37 01234567 */
- 0, 0, 0, 1, 1, 1, 1, 0, /* 0x38-0x3F 89:;<=>? */
- 1, 0, 0, 0, 0, 0, 0, 0, /* 0x40-0x47 @ABCDEFG */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x48-0x4F HIJKLMNO */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50-0x57 PQRSTUVW */
- 0, 0, 0, 1, 1, 1, 1, 1, /* 0x58-0x5F XYZ[\]^_ */
- 1, 0, 0, 0, 0, 0, 0, 0, /* 0x60-0x67 `abcdefg */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x68-0x6F hijklmno */
- 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70-0x77 pqrstuvw */
- 0, 0, 0, 1, 1, 1, 1, 1 /* 0x78-0x7F xyz{|}~ */
-};
-
-/* + */
-#define IMPL_SHIFT_IN_CHAR 0x2B
-/* - */
-#define IMPL_SHIFT_OUT_CHAR 0x2D
-
-/* ----------------------------------------------------------------------- */
-
-typedef struct
-{
- int mbShifted;
- int mbFirst;
- int mbWroteOne;
- sal_uInt32 mnBitBuffer;
- sal_uInt32 mnBufferBits;
-} ImplUTF7ToUCContextData;
-
-/* ----------------------------------------------------------------------- */
-
-void* ImplUTF7CreateUTF7TextToUnicodeContext( void )
-{
- ImplUTF7ToUCContextData* pContextData;
- pContextData = (ImplUTF7ToUCContextData*)rtl_allocateMemory( sizeof( ImplUTF7ToUCContextData ) );
- pContextData->mbShifted = sal_False;
- pContextData->mbFirst = sal_False;
- pContextData->mbWroteOne = sal_False;
- pContextData->mnBitBuffer = 0;
- pContextData->mnBufferBits = 0;
- return (void*)pContextData;
-}
-
-/* ----------------------------------------------------------------------- */
-
-void ImplUTF7DestroyTextToUnicodeContext( void* pContext )
-{
- rtl_freeMemory( pContext );
-}
-
-/* ----------------------------------------------------------------------- */
-
-void ImplUTF7ResetTextToUnicodeContext( void* pContext )
-{
- ImplUTF7ToUCContextData* pContextData = (ImplUTF7ToUCContextData*)pContext;
- pContextData->mbShifted = sal_False;
- pContextData->mbFirst = sal_False;
- pContextData->mbWroteOne = sal_False;
- pContextData->mnBitBuffer = 0;
- pContextData->mnBufferBits = 0;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Size ImplUTF7ToUnicode( const ImplTextConverterData* pData, void* pContext,
- const sal_Char* pSrcBuf, sal_Size nSrcBytes,
- sal_Unicode* pDestBuf, sal_Size nDestChars,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtBytes )
-{
- ImplUTF7ToUCContextData* pContextData = (ImplUTF7ToUCContextData*)pContext;
- sal_uChar c ='\0';
- sal_uChar nBase64Value = 0;
- int bEnd = sal_False;
- int bShifted;
- int bFirst;
- int bWroteOne;
- int bBase64End;
- sal_uInt32 nBitBuffer;
- sal_uInt32 nBitBufferTemp;
- sal_uInt32 nBufferBits;
- sal_Unicode* pEndDestBuf;
- const sal_Char* pEndSrcBuf;
-
- (void) pData; /* unused */
-
-/* !!! Implementation not finnished !!!
- if ( pContextData )
- {
- bShifted = pContextData->mbShifted;
- bFirst = pContextData->mbFirst;
- bWroteOne = pContextData->mbWroteOne;
- nBitBuffer = pContextData->mnBitBuffer;
- nBufferBits = pContextData->mnBufferBits;
- }
- else
-*/
- {
- bShifted = sal_False;
- bFirst = sal_False;
- bWroteOne = sal_False;
- nBitBuffer = 0;
- nBufferBits = 0;
- }
-
- *pInfo = 0;
- pEndDestBuf = pDestBuf+nDestChars;
- pEndSrcBuf = pSrcBuf+nSrcBytes;
- do
- {
- if ( pSrcBuf < pEndSrcBuf )
- {
- c = (sal_uChar)*pSrcBuf;
-
- /* End, when not a base64 character */
- bBase64End = sal_False;
- if ( c <= 0x7F )
- {
- nBase64Value = aImplBase64IndexTab[c];
- if ( nBase64Value == 0xFF )
- bBase64End = sal_True;
- }
- }
- else
- {
- bEnd = sal_True;
- bBase64End = sal_True;
- }
-
- if ( bShifted )
- {
- if ( bBase64End )
- {
- bShifted = sal_False;
-
- /* If the character causing us to drop out was SHIFT_IN */
- /* or SHIFT_OUT, it may be a special escape for SHIFT_IN. */
- /* The test for SHIFT_IN is not necessary, but allows */
- /* an alternate form of UTF-7 where SHIFT_IN is escaped */
- /* by SHIFT_IN. This only works for some values of */
- /* SHIFT_IN. It is so implemented, because this comes */
- /* from the officel unicode book (The Unicode Standard, */
- /* Version 2.0) and so I think, that someone of the */
- /* world has used this feature. */
- if ( !bEnd )
- {
- if ( (c == IMPL_SHIFT_IN_CHAR) || (c == IMPL_SHIFT_OUT_CHAR) )
- {
- /* If no base64 character, and the terminating */
- /* character of the shift sequence was the */
- /* SHIFT_OUT_CHAR, then it't a special escape */
- /* for SHIFT_IN_CHAR. */
- if ( bFirst && (c == IMPL_SHIFT_OUT_CHAR) )
- {
- if ( pDestBuf >= pEndDestBuf )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
- *pDestBuf = IMPL_SHIFT_IN_CHAR;
- pDestBuf++;
- bWroteOne = sal_True;
- }
-
- /* Skip character */
- pSrcBuf++;
- if ( pSrcBuf < pEndSrcBuf )
- c = (sal_uChar)*pSrcBuf;
- else
- bEnd = sal_True;
- }
- }
-
- /* Empty sequence not allowed, so when we don't write one */
- /* valid char, then the sequence is corrupt */
- if ( !bWroteOne )
- {
- /* When no more bytes in the source buffer, then */
- /* this buffer may be to small */
- if ( bEnd )
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR | RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL;
- else
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_INVALID;
- if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_INVALID_MASK) == RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR;
- break;
- }
- /* We insert here no default char, because I think */
- /* this is better to ignore this */
- }
- }
- }
- else
- {
- /* Add 6 Bits from character to the bit buffer */
- nBufferBits += 6;
- nBitBuffer |= ((sal_uInt32)(nBase64Value & 0x3F)) << (32-nBufferBits);
- bFirst = sal_False;
- }
-
- /* Extract as many full 16 bit characters as possible from the */
- /* bit buffer. */
- while ( (pDestBuf < pEndDestBuf) && (nBufferBits >= 16) )
- {
- nBitBufferTemp = nBitBuffer >> (32-16);
- *pDestBuf = (sal_Unicode)((nBitBufferTemp) & 0xFFFF);
- pDestBuf++;
- nBitBuffer <<= 16;
- nBufferBits -= 16;
- bWroteOne = sal_True;
- }
-
- if ( nBufferBits >= 16 )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- if ( bBase64End )
- {
- /* Sequence ended and we have some bits, then the */
- /* sequence is corrupted */
- if ( nBufferBits && nBitBuffer )
- {
- /* When no more bytes in the source buffer, then */
- /* this buffer may be to small */
- if ( bEnd )
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR | RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL;
- else
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_INVALID;
- if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_INVALID_MASK) == RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR;
- break;
- }
- else if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_INVALID_MASK) != RTL_TEXTTOUNICODE_FLAGS_INVALID_IGNORE )
- {
- if ( pDestBuf >= pEndDestBuf )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
- *pDestBuf++
- = RTL_TEXTENC_UNICODE_REPLACEMENT_CHARACTER;
- }
- }
-
- }
-
- nBitBuffer = 0;
- nBufferBits = 0;
- }
- }
-
- if ( !bEnd )
- {
- if ( !bShifted )
- {
- if ( c == IMPL_SHIFT_IN_CHAR )
- {
- bShifted = sal_True;
- bFirst = sal_True;
- bWroteOne = sal_False;
- }
- else
- {
- /* No direct encoded charcater, then the buffer is */
- /* corrupt */
- if ( c > 0x7F )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_INVALID;
- if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_INVALID_MASK) == RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR;
- break;
- }
- else if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_INVALID_MASK) != RTL_TEXTTOUNICODE_FLAGS_INVALID_IGNORE )
- {
- if ( pDestBuf >= pEndDestBuf )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
- *pDestBuf++
- = RTL_TEXTENC_UNICODE_REPLACEMENT_CHARACTER;
- }
- }
-
- /* Write char to unicode buffer */
- if ( pDestBuf >= pEndDestBuf )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
- *pDestBuf = c;
- pDestBuf++;
- }
- }
-
- pSrcBuf++;
- }
- }
- while ( !bEnd );
-
- if ( pContextData )
- {
- pContextData->mbShifted = bShifted;
- pContextData->mbFirst = bFirst;
- pContextData->mbWroteOne = bWroteOne;
- pContextData->mnBitBuffer = nBitBuffer;
- pContextData->mnBufferBits = nBufferBits;
- }
-
- *pSrcCvtBytes = nSrcBytes - (pEndSrcBuf-pSrcBuf);
- return (nDestChars - (pEndDestBuf-pDestBuf));
-}
-
-/* ======================================================================= */
-
-typedef struct
-{
- int mbShifted;
- sal_uInt32 mnBitBuffer;
- sal_uInt32 mnBufferBits;
-} ImplUTF7FromUCContextData;
-
-/* ----------------------------------------------------------------------- */
-
-void* ImplUTF7CreateUnicodeToTextContext( void )
-{
- ImplUTF7FromUCContextData* pContextData;
- pContextData = (ImplUTF7FromUCContextData*)rtl_allocateMemory( sizeof( ImplUTF7FromUCContextData ) );
- pContextData->mbShifted = sal_False;
- pContextData->mnBitBuffer = 0;
- pContextData->mnBufferBits = 0;
- return (void*)pContextData;
-}
-
-/* ----------------------------------------------------------------------- */
-
-void ImplUTF7DestroyUnicodeToTextContext( void* pContext )
-{
- rtl_freeMemory( pContext );
-}
-
-/* ----------------------------------------------------------------------- */
-
-void ImplUTF7ResetUnicodeToTextContext( void* pContext )
-{
- ImplUTF7FromUCContextData* pContextData = (ImplUTF7FromUCContextData*)pContext;
- pContextData->mbShifted = sal_False;
- pContextData->mnBitBuffer = 0;
- pContextData->mnBufferBits = 0;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Size ImplUnicodeToUTF7( const ImplTextConverterData* pData, void* pContext,
- const sal_Unicode* pSrcBuf, sal_Size nSrcChars,
- sal_Char* pDestBuf, sal_Size nDestBytes,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtChars )
-{
- ImplUTF7FromUCContextData* pContextData = (ImplUTF7FromUCContextData*)pContext;
- sal_Unicode c = '\0';
- int bEnd = sal_False;
- int bShifted;
- int bNeedShift;
- sal_uInt32 nBitBuffer;
- sal_uInt32 nBitBufferTemp;
- sal_uInt32 nBufferBits;
- sal_Char* pEndDestBuf;
- const sal_Unicode* pEndSrcBuf;
-
- (void) pData; /* unused */
- (void) nFlags; /* unused */
-
-/* !!! Implementation not finnished !!!
- if ( pContextData )
- {
- bShifted = pContextData->mbShifted;
- nBitBuffer = pContextData->mnBitBuffer;
- nBufferBits = pContextData->mnBufferBits;
- }
- else
-*/
- {
- bShifted = sal_False;
- nBitBuffer = 0;
- nBufferBits = 0;
- }
-
- *pInfo = 0;
- pEndDestBuf = pDestBuf+nDestBytes;
- pEndSrcBuf = pSrcBuf+nSrcChars;
- do
- {
- if ( pSrcBuf < pEndSrcBuf )
- {
- c = *pSrcBuf;
-
- bNeedShift = (c > 0x7F) || aImplMustShiftTab[c];
- if ( bNeedShift && !bShifted )
- {
- if ( pDestBuf >= pEndDestBuf )
- {
- *pInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
- *pDestBuf = IMPL_SHIFT_IN_CHAR;
- pDestBuf++;
- /* Special case handling for SHIFT_IN_CHAR */
- if ( c == IMPL_SHIFT_IN_CHAR )
- {
- if ( pDestBuf >= pEndDestBuf )
- {
- *pInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
- *pDestBuf = IMPL_SHIFT_OUT_CHAR;
- pDestBuf++;
- }
- else
- bShifted = sal_True;
- }
- }
- else
- {
- bEnd = sal_True;
- bNeedShift = sal_False;
- }
-
- if ( bShifted )
- {
- /* Write the character to the bit buffer, or pad the bit */
- /* buffer out to a full base64 character */
- if ( bNeedShift )
- {
- nBufferBits += 16;
- nBitBuffer |= ((sal_uInt32)c) << (32-nBufferBits);
- }
- else
- nBufferBits += (6-(nBufferBits%6))%6;
-
- /* Flush out as many full base64 characters as possible */
- while ( (pDestBuf < pEndDestBuf) && (nBufferBits >= 6) )
- {
- nBitBufferTemp = nBitBuffer >> (32-6);
- *pDestBuf = aImplBase64Tab[nBitBufferTemp];
- pDestBuf++;
- nBitBuffer <<= 6;
- nBufferBits -= 6;
- }
-
- if ( nBufferBits >= 6 )
- {
- *pInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- /* Write SHIFT_OUT_CHAR, when needed */
- if ( !bNeedShift )
- {
- if ( pDestBuf >= pEndDestBuf )
- {
- *pInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
- *pDestBuf = IMPL_SHIFT_OUT_CHAR;
- pDestBuf++;
- bShifted = sal_False;
- }
- }
-
- if ( !bEnd )
- {
- /* Character can be directly endcoded */
- if ( !bNeedShift )
- {
- if ( pDestBuf >= pEndDestBuf )
- {
- *pInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
- *pDestBuf = (sal_Char)(sal_uChar)c;
- pDestBuf++;
- }
-
- pSrcBuf++;
- }
- }
- while ( !bEnd );
-
- if ( pContextData )
- {
- pContextData->mbShifted = bShifted;
- pContextData->mnBitBuffer = nBitBuffer;
- pContextData->mnBufferBits = nBufferBits;
- }
-
- *pSrcCvtChars = nSrcChars - (pEndSrcBuf-pSrcBuf);
- return (nDestBytes - (pEndDestBuf-pDestBuf));
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/tcvtutf8.c b/sal/textenc/tcvtutf8.c
deleted file mode 100644
index 641fa248f..000000000
--- a/sal/textenc/tcvtutf8.c
+++ /dev/null
@@ -1,422 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "sal/types.h"
-#include "rtl/alloc.h"
-#include "rtl/textcvt.h"
-
-#include "converter.h"
-#include "tenchelp.h"
-#include "unichars.h"
-
-struct ImplUtf8ToUnicodeContext
-{
- sal_uInt32 nUtf32;
- int nShift;
- sal_Bool bCheckBom;
-};
-
-struct ImplUnicodeToUtf8Context
-{
- sal_Unicode nHighSurrogate; /* 0xFFFF: write BOM */
-};
-
-void * ImplCreateUtf8ToUnicodeContext(void)
-{
- void * p = rtl_allocateMemory(sizeof (struct ImplUtf8ToUnicodeContext));
- ImplResetUtf8ToUnicodeContext(p);
- return p;
-}
-
-void ImplResetUtf8ToUnicodeContext(void * pContext)
-{
- if (pContext != NULL)
- {
- ((struct ImplUtf8ToUnicodeContext *) pContext)->nShift = -1;
- ((struct ImplUtf8ToUnicodeContext *) pContext)->bCheckBom = sal_True;
- }
-}
-
-sal_Size ImplConvertUtf8ToUnicode(ImplTextConverterData const * pData,
- void * pContext, sal_Char const * pSrcBuf,
- sal_Size nSrcBytes, sal_Unicode * pDestBuf,
- sal_Size nDestChars, sal_uInt32 nFlags,
- sal_uInt32 * pInfo, sal_Size * pSrcCvtBytes)
-{
- /*
- This function is very liberal with the UTF-8 input. Accepted are:
- - non-shortest forms (e.g., C0 41 instead of 41 to represent U+0041)
- - surrogates (e.g., ED A0 80 to represent U+D800)
- - encodings with up to six bytes (everything outside the range
- U+0000..10FFFF is considered "undefined")
- The first two of these points allow this routine to translate from both
- RTL_TEXTENCODING_UTF8 and RTL_TEXTENCODING_JAVA_UTF8.
- */
-
- int bJavaUtf8 = pData != NULL;
- sal_uInt32 nUtf32 = 0;
- int nShift = -1;
- sal_Bool bCheckBom = sal_True;
- sal_uInt32 nInfo = 0;
- sal_uChar const * pSrcBufPtr = (sal_uChar const *) pSrcBuf;
- sal_uChar const * pSrcBufEnd = pSrcBufPtr + nSrcBytes;
- sal_Unicode * pDestBufPtr = pDestBuf;
- sal_Unicode * pDestBufEnd = pDestBufPtr + nDestChars;
-
- if (pContext != NULL)
- {
- nUtf32 = ((struct ImplUtf8ToUnicodeContext *) pContext)->nUtf32;
- nShift = ((struct ImplUtf8ToUnicodeContext *) pContext)->nShift;
- bCheckBom = ((struct ImplUtf8ToUnicodeContext *) pContext)->bCheckBom;
- }
-
- while (pSrcBufPtr < pSrcBufEnd)
- {
- sal_Bool bUndefined = sal_False;
- int bConsume = sal_True;
- sal_uInt32 nChar = *pSrcBufPtr++;
- if (nShift < 0)
- if (nChar <= 0x7F)
- {
- nUtf32 = nChar;
- goto transform;
- }
- else if (nChar <= 0xBF)
- goto bad_input;
- else if (nChar <= 0xDF)
- {
- nUtf32 = (nChar & 0x1F) << 6;
- nShift = 0;
- }
- else if (nChar <= 0xEF)
- {
- nUtf32 = (nChar & 0x0F) << 12;
- nShift = 6;
- }
- else if (nChar <= 0xF7)
- {
- nUtf32 = (nChar & 0x07) << 18;
- nShift = 12;
- }
- else if (nChar <= 0xFB)
- {
- nUtf32 = (nChar & 0x03) << 24;
- nShift = 18;
- }
- else if (nChar <= 0xFD)
- {
- nUtf32 = (nChar & 0x01) << 30;
- nShift = 24;
- }
- else
- goto bad_input;
- else if ((nChar & 0xC0) == 0x80)
- {
- nUtf32 |= (nChar & 0x3F) << nShift;
- if (nShift == 0)
- goto transform;
- else
- nShift -= 6;
- }
- else
- {
- /*
- This byte is preceeded by a broken UTF-8 sequence; if this byte
- is neither in the range [0x80..0xBF] nor in the range
- [0xFE..0xFF], assume that this byte does not belong to that
- broken sequence, but instead starts a new, legal UTF-8 sequence:
- */
- bConsume = nChar >= 0xFE;
- goto bad_input;
- }
- continue;
-
- transform:
- if (!bCheckBom || nUtf32 != 0xFEFF
- || (nFlags & RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE) == 0
- || bJavaUtf8)
- {
- if (nUtf32 <= 0xFFFF)
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++ = (sal_Unicode) nUtf32;
- else
- goto no_output;
- else if (nUtf32 <= 0x10FFFF)
- if (pDestBufEnd - pDestBufPtr >= 2)
- {
- *pDestBufPtr++ = (sal_Unicode) ImplGetHighSurrogate(nUtf32);
- *pDestBufPtr++ = (sal_Unicode) ImplGetLowSurrogate(nUtf32);
- }
- else
- goto no_output;
- else
- {
- bUndefined = sal_True;
- goto bad_input;
- }
- }
- nShift = -1;
- bCheckBom = sal_False;
- continue;
-
- bad_input:
- switch (ImplHandleBadInputTextToUnicodeConversion(
- bUndefined, sal_True, 0, nFlags, &pDestBufPtr, pDestBufEnd,
- &nInfo))
- {
- case IMPL_BAD_INPUT_STOP:
- nShift = -1;
- bCheckBom = sal_False;
- if (!bConsume)
- --pSrcBufPtr;
- break;
-
- case IMPL_BAD_INPUT_CONTINUE:
- nShift = -1;
- bCheckBom = sal_False;
- if (!bConsume)
- --pSrcBufPtr;
- continue;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- goto no_output;
- }
- break;
-
- no_output:
- --pSrcBufPtr;
- nInfo |= RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- if (nShift >= 0
- && (nInfo & (RTL_TEXTTOUNICODE_INFO_ERROR
- | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL))
- == 0)
- {
- if ((nFlags & RTL_TEXTTOUNICODE_FLAGS_FLUSH) == 0)
- nInfo |= RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL;
- else
- switch (ImplHandleBadInputTextToUnicodeConversion(
- sal_False, sal_True, 0, nFlags, &pDestBufPtr,
- pDestBufEnd, &nInfo))
- {
- case IMPL_BAD_INPUT_STOP:
- case IMPL_BAD_INPUT_CONTINUE:
- nShift = -1;
- bCheckBom = sal_False;
- break;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- nInfo |= RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
- }
-
- if (pContext != NULL)
- {
- ((struct ImplUtf8ToUnicodeContext *) pContext)->nUtf32 = nUtf32;
- ((struct ImplUtf8ToUnicodeContext *) pContext)->nShift = nShift;
- ((struct ImplUtf8ToUnicodeContext *) pContext)->bCheckBom = bCheckBom;
- }
- if (pInfo != NULL)
- *pInfo = nInfo;
- if (pSrcCvtBytes != NULL)
- *pSrcCvtBytes = (sal_Char const *) pSrcBufPtr - pSrcBuf;
- return pDestBufPtr - pDestBuf;
-}
-
-void * ImplCreateUnicodeToUtf8Context(void)
-{
- void * p = rtl_allocateMemory(sizeof (struct ImplUnicodeToUtf8Context));
- ImplResetUnicodeToUtf8Context(p);
- return p;
-}
-
-void ImplResetUnicodeToUtf8Context(void * pContext)
-{
- if (pContext != NULL)
- ((struct ImplUnicodeToUtf8Context *) pContext)->nHighSurrogate = 0xFFFF;
-}
-
-sal_Size ImplConvertUnicodeToUtf8(ImplTextConverterData const * pData,
- void * pContext, sal_Unicode const * pSrcBuf,
- sal_Size nSrcChars, sal_Char * pDestBuf,
- sal_Size nDestBytes, sal_uInt32 nFlags,
- sal_uInt32 * pInfo, sal_Size* pSrcCvtChars)
-{
- int bJavaUtf8 = pData != NULL;
- sal_Unicode nHighSurrogate = 0xFFFF;
- sal_uInt32 nInfo = 0;
- sal_Unicode const * pSrcBufPtr = pSrcBuf;
- sal_Unicode const * pSrcBufEnd = pSrcBufPtr + nSrcChars;
- sal_Char * pDestBufPtr = pDestBuf;
- sal_Char * pDestBufEnd = pDestBufPtr + nDestBytes;
-
- if (pContext != NULL)
- nHighSurrogate
- = ((struct ImplUnicodeToUtf8Context *) pContext)->nHighSurrogate;
-
- if (nHighSurrogate == 0xFFFF)
- {
- if ((nFlags & RTL_UNICODETOTEXT_FLAGS_GLOBAL_SIGNATURE) != 0
- && !bJavaUtf8)
- {
- if (pDestBufEnd - pDestBufPtr >= 3)
- {
- /* Write BOM (U+FEFF) as UTF-8: */
- *pDestBufPtr++ = (sal_Char) (unsigned char) 0xEF;
- *pDestBufPtr++ = (sal_Char) (unsigned char) 0xBB;
- *pDestBufPtr++ = (sal_Char) (unsigned char) 0xBF;
- }
- else
- {
- nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- goto done;
- }
- }
- nHighSurrogate = 0;
- }
-
- while (pSrcBufPtr < pSrcBufEnd)
- {
- sal_uInt32 nChar = *pSrcBufPtr++;
- if (nHighSurrogate == 0)
- {
- if (ImplIsHighSurrogate(nChar) && !bJavaUtf8)
- {
- nHighSurrogate = (sal_Unicode) nChar;
- continue;
- }
- }
- else if (ImplIsLowSurrogate(nChar) && !bJavaUtf8)
- nChar = ImplCombineSurrogates(nHighSurrogate, nChar);
- else
- goto bad_input;
-
- if ((ImplIsLowSurrogate(nChar) && !bJavaUtf8)
- || ImplIsNoncharacter(nChar))
- goto bad_input;
-
- if (nChar <= 0x7F && (!bJavaUtf8 || nChar != 0))
- if (pDestBufPtr != pDestBufEnd)
- *pDestBufPtr++ = (sal_Char) nChar;
- else
- goto no_output;
- else if (nChar <= 0x7FF)
- if (pDestBufEnd - pDestBufPtr >= 2)
- {
- *pDestBufPtr++ = (sal_Char) (0xC0 | (nChar >> 6));
- *pDestBufPtr++ = (sal_Char) (0x80 | (nChar & 0x3F));
- }
- else
- goto no_output;
- else if (nChar <= 0xFFFF)
- if (pDestBufEnd - pDestBufPtr >= 3)
- {
- *pDestBufPtr++ = (sal_Char) (0xE0 | (nChar >> 12));
- *pDestBufPtr++ = (sal_Char) (0x80 | ((nChar >> 6) & 0x3F));
- *pDestBufPtr++ = (sal_Char) (0x80 | (nChar & 0x3F));
- }
- else
- goto no_output;
- else if (pDestBufEnd - pDestBufPtr >= 4)
- {
- *pDestBufPtr++ = (sal_Char) (0xF0 | (nChar >> 18));
- *pDestBufPtr++ = (sal_Char) (0x80 | ((nChar >> 12) & 0x3F));
- *pDestBufPtr++ = (sal_Char) (0x80 | ((nChar >> 6) & 0x3F));
- *pDestBufPtr++ = (sal_Char) (0x80 | (nChar & 0x3F));
- }
- else
- goto no_output;
- nHighSurrogate = 0;
- continue;
-
- bad_input:
- switch (ImplHandleBadInputUnicodeToTextConversion(sal_False, 0, nFlags,
- &pDestBufPtr,
- pDestBufEnd, &nInfo,
- NULL, 0, NULL))
- {
- case IMPL_BAD_INPUT_STOP:
- nHighSurrogate = 0;
- break;
-
- case IMPL_BAD_INPUT_CONTINUE:
- nHighSurrogate = 0;
- continue;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- goto no_output;
- }
- break;
-
- no_output:
- --pSrcBufPtr;
- nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- if (nHighSurrogate != 0
- && (nInfo & (RTL_UNICODETOTEXT_INFO_ERROR
- | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL))
- == 0)
- {
- if ((nFlags & RTL_UNICODETOTEXT_FLAGS_FLUSH) != 0)
- nInfo |= RTL_UNICODETOTEXT_INFO_SRCBUFFERTOSMALL;
- else
- switch (ImplHandleBadInputUnicodeToTextConversion(sal_False, 0,
- nFlags,
- &pDestBufPtr,
- pDestBufEnd,
- &nInfo, NULL, 0,
- NULL))
- {
- case IMPL_BAD_INPUT_STOP:
- case IMPL_BAD_INPUT_CONTINUE:
- nHighSurrogate = 0;
- break;
-
- case IMPL_BAD_INPUT_NO_OUTPUT:
- nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
- }
-
- done:
- if (pContext != NULL)
- ((struct ImplUnicodeToUtf8Context *) pContext)->nHighSurrogate
- = nHighSurrogate;
- if (pInfo != NULL)
- *pInfo = nInfo;
- if (pSrcCvtChars != NULL)
- *pSrcCvtChars = pSrcBufPtr - pSrcBuf;
- return pDestBufPtr - pDestBuf;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/tenchelp.c b/sal/textenc/tenchelp.c
deleted file mode 100644
index c812d4267..000000000
--- a/sal/textenc/tenchelp.c
+++ /dev/null
@@ -1,215 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "tenchelp.h"
-#include "unichars.h"
-#include "rtl/textcvt.h"
-#include "sal/types.h"
-
-static sal_Bool ImplGetUndefinedAsciiMultiByte(sal_uInt32 nFlags,
- sal_Char * pBuf,
- sal_Size nMaxLen);
-
-static sal_Bool ImplGetInvalidAsciiMultiByte(sal_uInt32 nFlags,
- sal_Char * pBuf,
- sal_Size nMaxLen);
-
-static int ImplIsUnicodeIgnoreChar(sal_Unicode c, sal_uInt32 nFlags);
-
-sal_Bool ImplGetUndefinedAsciiMultiByte(sal_uInt32 nFlags,
- sal_Char * pBuf,
- sal_Size nMaxLen)
-{
- if (nMaxLen == 0)
- return sal_False;
- switch (nFlags & RTL_UNICODETOTEXT_FLAGS_UNDEFINED_MASK)
- {
- case RTL_UNICODETOTEXT_FLAGS_UNDEFINED_0:
- *pBuf = 0x00;
- break;
-
- case RTL_UNICODETOTEXT_FLAGS_UNDEFINED_QUESTIONMARK:
- default: /* RTL_UNICODETOTEXT_FLAGS_UNDEFINED_DEFAULT */
- *pBuf = 0x3F;
- break;
-
- case RTL_UNICODETOTEXT_FLAGS_UNDEFINED_UNDERLINE:
- *pBuf = 0x5F;
- break;
- }
- return sal_True;
-}
-
-sal_Bool ImplGetInvalidAsciiMultiByte(sal_uInt32 nFlags,
- sal_Char * pBuf,
- sal_Size nMaxLen)
-{
- if (nMaxLen == 0)
- return sal_False;
- switch (nFlags & RTL_UNICODETOTEXT_FLAGS_UNDEFINED_MASK)
- {
- case RTL_UNICODETOTEXT_FLAGS_INVALID_0:
- *pBuf = 0x00;
- break;
-
- case RTL_UNICODETOTEXT_FLAGS_INVALID_QUESTIONMARK:
- default: /* RTL_UNICODETOTEXT_FLAGS_INVALID_DEFAULT */
- *pBuf = 0x3F;
- break;
-
- case RTL_UNICODETOTEXT_FLAGS_INVALID_UNDERLINE:
- *pBuf = 0x5F;
- break;
- }
- return sal_True;
-}
-
-int ImplIsUnicodeIgnoreChar( sal_Unicode c, sal_uInt32 nFlags )
-{
- return
- ((nFlags & RTL_UNICODETOTEXT_FLAGS_NONSPACING_IGNORE) != 0
- && ImplIsZeroWidth(c))
- || ((nFlags & RTL_UNICODETOTEXT_FLAGS_CONTROL_IGNORE) != 0
- && ImplIsControlOrFormat(c))
- || ((nFlags & RTL_UNICODETOTEXT_FLAGS_PRIVATE_IGNORE) != 0
- && ImplIsPrivateUse(c));
-}
-
-/* ======================================================================= */
-
-sal_Unicode ImplGetUndefinedUnicodeChar(sal_uChar cChar, sal_uInt32 nFlags)
-{
- return ((nFlags & RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MASK)
- == RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MAPTOPRIVATE) ?
- RTL_TEXTCVT_BYTE_PRIVATE_START + cChar :
- RTL_TEXTENC_UNICODE_REPLACEMENT_CHARACTER;
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Bool
-ImplHandleUndefinedUnicodeToTextChar(ImplTextConverterData const * pData,
- sal_Unicode const ** ppSrcBuf,
- sal_Unicode const * pEndSrcBuf,
- sal_Char ** ppDestBuf,
- sal_Char const * pEndDestBuf,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo)
-{
- sal_Unicode c = **ppSrcBuf;
-
- (void) pData; /* unused */
-
- /* Should the private character map to one byte */
- if ( (c >= RTL_TEXTCVT_BYTE_PRIVATE_START) && (c <= RTL_TEXTCVT_BYTE_PRIVATE_END) )
- {
- if ( nFlags & RTL_UNICODETOTEXT_FLAGS_PRIVATE_MAPTO0 )
- {
- **ppDestBuf = (sal_Char)(sal_uChar)(c-RTL_TEXTCVT_BYTE_PRIVATE_START);
- (*ppDestBuf)++;
- (*ppSrcBuf)++;
- return sal_True;
- }
- }
-
- /* Should this character ignored (Private, Non Spacing, Control) */
- if ( ImplIsUnicodeIgnoreChar( c, nFlags ) )
- {
- (*ppSrcBuf)++;
- return sal_True;
- }
-
- /* Surrogates Characters should result in */
- /* one replacement character */
- if (ImplIsHighSurrogate(c))
- {
- if ( *ppSrcBuf == pEndSrcBuf )
- {
- *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR | RTL_UNICODETOTEXT_INFO_SRCBUFFERTOSMALL;
- return sal_False;
- }
-
- c = *((*ppSrcBuf)+1);
- if (ImplIsLowSurrogate(c))
- (*ppSrcBuf)++;
- else
- {
- *pInfo |= RTL_UNICODETOTEXT_INFO_INVALID;
- if ( (nFlags & RTL_UNICODETOTEXT_FLAGS_INVALID_MASK) == RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR )
- {
- *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR;
- return sal_False;
- }
- else if ( (nFlags & RTL_UNICODETOTEXT_FLAGS_INVALID_MASK) == RTL_UNICODETOTEXT_FLAGS_INVALID_IGNORE )
- {
- (*ppSrcBuf)++;
- return sal_True;
- }
- else if (ImplGetInvalidAsciiMultiByte(nFlags,
- *ppDestBuf,
- pEndDestBuf - *ppDestBuf))
- {
- ++*ppSrcBuf;
- ++*ppDestBuf;
- return sal_True;
- }
- else
- {
- *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR
- | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- return sal_False;
- }
- }
- }
-
- *pInfo |= RTL_UNICODETOTEXT_INFO_UNDEFINED;
- if ( (nFlags & RTL_UNICODETOTEXT_FLAGS_UNDEFINED_MASK) == RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR )
- {
- *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR;
- return sal_False;
- }
- else if ( (nFlags & RTL_UNICODETOTEXT_FLAGS_UNDEFINED_MASK) == RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE )
- (*ppSrcBuf)++;
- else if (ImplGetUndefinedAsciiMultiByte(nFlags,
- *ppDestBuf,
- pEndDestBuf - *ppDestBuf))
- {
- ++*ppSrcBuf;
- ++*ppDestBuf;
- }
- else
- {
- *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR
- | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- return sal_False;
- }
-
- return sal_True;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/tenchelp.h b/sal/textenc/tenchelp.h
deleted file mode 100644
index 83e17eea7..000000000
--- a/sal/textenc/tenchelp.h
+++ /dev/null
@@ -1,305 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_TEXTENC_TENCHELP_H
-#define INCLUDED_RTL_TEXTENC_TENCHELP_H
-
-#include "rtl/tencinfo.h"
-#include "rtl/textenc.h"
-#include "sal/types.h"
-
-#if defined __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#define RTL_TEXTCVT_BYTE_PRIVATE_START 0xF100
-#define RTL_TEXTCVT_BYTE_PRIVATE_END 0xF1FF
-
-/* ----------------- */
-/* - TextConverter - */
-/* ----------------- */
-
-typedef void ImplTextConverterData;
-
-typedef
-sal_Size (* ImplConvertToUnicodeProc)(ImplTextConverterData const * pData,
- void * pContext,
- sal_Char const * pSrcBuf,
- sal_Size nSrcBytes,
- sal_Unicode * pDestBuf,
- sal_Size nDestChars,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtBytes);
-
-typedef
-sal_Size (* ImplConvertToTextProc)(ImplTextConverterData const * pData,
- void * pContext,
- sal_Unicode const * pSrcBuf,
- sal_Size nSrcChars,
- sal_Char * pDestBuf,
- sal_Size nDestBytes,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo,
- sal_Size * pSrcCvtChars);
-
-typedef void * (* ImplCreateTextContextProc)(void);
-
-typedef void (* ImplDestroyTextContextProc)(void * pContext);
-
-typedef void (* ImplResetTextContextProc)(void * pContext);
-
-typedef void * (* ImplCreateUnicodeContextProc)(void);
-
-typedef void (* ImplDestroyUnicodeContextProc)(void * pContext);
-
-typedef void (* ImplResetUnicodeContextProc)(void * pContext);
-
-typedef struct
-{
- ImplTextConverterData const * mpConvertData;
- ImplConvertToUnicodeProc mpConvertTextToUnicodeProc;
- ImplConvertToTextProc mpConvertUnicodeToTextProc;
- ImplCreateTextContextProc mpCreateTextToUnicodeContext;
- ImplDestroyTextContextProc mpDestroyTextToUnicodeContext;
- ImplResetTextContextProc mpResetTextToUnicodeContext;
- ImplCreateUnicodeContextProc mpCreateUnicodeToTextContext;
- ImplDestroyUnicodeContextProc mpDestroyUnicodeToTextContext;
- ImplResetUnicodeContextProc mpResetUnicodeToTextContext;
-} ImplTextConverter;
-
-/* ----------------------------- */
-/* - TextEncoding - Structures - */
-/* ----------------------------- */
-
-typedef struct
-{
- ImplTextConverter maConverter;
- sal_uInt8 mnMinCharSize;
- sal_uInt8 mnMaxCharSize;
- sal_uInt8 mnAveCharSize;
- sal_uInt8 mnBestWindowsCharset;
- char const * mpBestUnixCharset;
- char const * mpBestMimeCharset;
- sal_uInt32 mnInfoFlags;
-} ImplTextEncodingData;
-
-/* ----------------------------------- */
-/* - TextConverter - Byte-Structures - */
-/* ----------------------------------- */
-
-typedef struct
-{
- sal_uInt16 mnUniChar;
- sal_uChar mnChar;
- sal_uChar mnChar2;
- // to cater for mappings like MS1258 with 1--2 bytes per Unicode char,
- // 0 if unused
-} ImplUniCharTabData;
-
-typedef struct
-{
- const sal_uInt16* mpToUniTab1;
- const sal_uInt16* mpToUniTab2;
- sal_uChar mnToUniStart1;
- sal_uChar mnToUniEnd1;
- sal_uChar mnToUniStart2;
- sal_uChar mnToUniEnd2;
- const sal_uChar* mpToCharTab1;
- const sal_uChar* mpToCharTab2;
- const ImplUniCharTabData* mpToCharExTab;
- sal_uInt16 mnToCharStart1;
- sal_uInt16 mnToCharEnd1;
- sal_uInt16 mnToCharStart2;
- sal_uInt16 mnToCharEnd2;
- sal_uInt16 mnToCharExCount;
-} ImplByteConvertData;
-
-/* ----------------------------------- */
-/* - TextConverter - DBCS-Structures - */
-/* ----------------------------------- */
-
-typedef struct
-{
- sal_uChar mnLeadStart;
- sal_uChar mnLeadEnd;
- sal_uChar mnTrail1Start;
- sal_uChar mnTrail1End;
- sal_uChar mnTrail2Start;
- sal_uChar mnTrail2End;
- sal_uChar mnTrail3Start;
- sal_uChar mnTrail3End;
- sal_uChar mnTrailCount;
- sal_uInt16 mnTrailRangeCount;
- sal_uInt16 mnUniStart;
- sal_uInt16 mnUniEnd;
-} ImplDBCSEUDCData;
-
-typedef struct
-{
- sal_uInt16 mnUniChar;
- sal_uInt8 mnTrailStart;
- sal_uInt8 mnTrailEnd;
- const sal_uInt16* mpToUniTrailTab;
-} ImplDBCSToUniLeadTab;
-
-typedef struct
-{
- sal_uInt8 mnLowStart;
- sal_uInt8 mnLowEnd;
- const sal_uInt16* mpToUniTrailTab;
-} ImplUniToDBCSHighTab;
-
-typedef struct
-{
- const ImplDBCSToUniLeadTab* mpToUniLeadTab;
- const ImplUniToDBCSHighTab* mpToDBCSHighTab;
- sal_uChar mnLeadStart;
- sal_uChar mnLeadEnd;
- sal_uChar mnTrailStart;
- sal_uChar mnTrailEnd;
- const ImplDBCSEUDCData* mpEUDCTab;
- sal_uInt16 mnEUDCCount;
-} ImplDBCSConvertData;
-
-/* ---------------------------------- */
-/* - TextConverter - EUC-Structures - */
-/* ---------------------------------- */
-
-typedef struct
-{
- const ImplDBCSToUniLeadTab* mpJIS0208ToUniLeadTab;
- const ImplDBCSToUniLeadTab* mpJIS0212ToUniLeadTab;
- const ImplUniToDBCSHighTab* mpUniToJIS0208HighTab;
- const ImplUniToDBCSHighTab* mpUniToJIS0212HighTab;
-} ImplEUCJPConvertData;
-
-/* --------------------------------- */
-/* - TextConverter - HelpFunctions - */
-/* --------------------------------- */
-
-sal_Unicode ImplGetUndefinedUnicodeChar(sal_uChar cChar, sal_uInt32 nFlags);
-
-sal_Bool
-ImplHandleUndefinedUnicodeToTextChar(ImplTextConverterData const * pData,
- sal_Unicode const ** ppSrcBuf,
- sal_Unicode const * pEndSrcBuf,
- sal_Char ** ppDestBuf,
- sal_Char const * pEndDestBuf,
- sal_uInt32 nFlags,
- sal_uInt32 * pInfo);
- /* sal_True means 'continue,' sal_False means 'break' */
-
-/* ----------------------------- */
-/* - TextConverter - Functions - */
-/* ----------------------------- */
-
-sal_Size ImplSymbolToUnicode( const ImplTextConverterData* pData, void* pContext,
- const sal_Char* pSrcBuf, sal_Size nSrcBytes,
- sal_Unicode* pDestBuf, sal_Size nDestChars,
- sal_uInt32 nFlags, sal_uInt32* pInfo, sal_Size* pSrcCvtBytes );
-sal_Size ImplUnicodeToSymbol( const ImplTextConverterData* pData, void* pContext,
- const sal_Unicode* pSrcBuf, sal_Size nSrcChars,
- sal_Char* pDestBuf, sal_Size nDestBytes,
- sal_uInt32 nFlags, sal_uInt32* pInfo, sal_Size* pSrcCvtChars );
-sal_Size ImplCharToUnicode( const ImplTextConverterData* pData, void* pContext,
- const sal_Char* pSrcBuf, sal_Size nSrcBytes,
- sal_Unicode* pDestBuf, sal_Size nDestChars,
- sal_uInt32 nFlags, sal_uInt32* pInfo, sal_Size* pSrcCvtBytes );
-/** For those encodings only with unicode range of 0x80 to 0xFF. */
-sal_Size ImplUpperCharToUnicode( const ImplTextConverterData* pData, void* pContext,
- const sal_Char* pSrcBuf, sal_Size nSrcBytes,
- sal_Unicode* pDestBuf, sal_Size nDestChars,
- sal_uInt32 nFlags, sal_uInt32* pInfo, sal_Size* pSrcCvtBytes );
-sal_Size ImplUnicodeToChar( const ImplTextConverterData* pData, void* pContext,
- const sal_Unicode* pSrcBuf, sal_Size nSrcChars,
- sal_Char* pDestBuf, sal_Size nDestBytes,
- sal_uInt32 nFlags, sal_uInt32* pInfo, sal_Size* pSrcCvtChars );
-sal_Size ImplDBCSToUnicode( const ImplTextConverterData* pData, void* pContext,
- const sal_Char* pSrcBuf, sal_Size nSrcBytes,
- sal_Unicode* pDestBuf, sal_Size nDestChars,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtBytes );
-sal_Size ImplUnicodeToDBCS( const ImplTextConverterData* pData, void* pContext,
- const sal_Unicode* pSrcBuf, sal_Size nSrcChars,
- sal_Char* pDestBuf, sal_Size nDestBytes,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtChars );
-sal_Size ImplEUCJPToUnicode( const ImplTextConverterData* pData,
- void* pContext,
- const sal_Char* pSrcBuf, sal_Size nSrcBytes,
- sal_Unicode* pDestBuf, sal_Size nDestChars,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtBytes );
-sal_Size ImplUnicodeToEUCJP( const ImplTextConverterData* pData,
- void* pContext,
- const sal_Unicode* pSrcBuf, sal_Size nSrcChars,
- sal_Char* pDestBuf, sal_Size nDestBytes,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtChars );
-void* ImplUTF7CreateUTF7TextToUnicodeContext( void );
-void ImplUTF7DestroyTextToUnicodeContext( void* pContext );
-void ImplUTF7ResetTextToUnicodeContext( void* pContext );
-sal_Size ImplUTF7ToUnicode( const ImplTextConverterData* pData, void* pContext,
- const sal_Char* pSrcBuf, sal_Size nSrcBytes,
- sal_Unicode* pDestBuf, sal_Size nDestChars,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtBytes );
-void* ImplUTF7CreateUnicodeToTextContext( void );
-void ImplUTF7DestroyUnicodeToTextContext( void* pContext );
-void ImplUTF7ResetUnicodeToTextContext( void* pContext );
-sal_Size ImplUnicodeToUTF7( const ImplTextConverterData* pData, void* pContext,
- const sal_Unicode* pSrcBuf, sal_Size nSrcChars,
- sal_Char* pDestBuf, sal_Size nDestBytes,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtChars );
-
-void * ImplCreateUtf8ToUnicodeContext(void) SAL_THROW_EXTERN_C();
-void ImplResetUtf8ToUnicodeContext(void * pContext) SAL_THROW_EXTERN_C();
-sal_Size ImplConvertUtf8ToUnicode(ImplTextConverterData const * pData,
- void * pContext, sal_Char const * pSrcBuf,
- sal_Size nSrcBytes, sal_Unicode * pDestBuf,
- sal_Size nDestChars, sal_uInt32 nFlags,
- sal_uInt32 * pInfo, sal_Size * pSrcCvtBytes)
- SAL_THROW_EXTERN_C();
-void * ImplCreateUnicodeToUtf8Context(void) SAL_THROW_EXTERN_C();
-void ImplResetUnicodeToUtf8Context(void * pContext) SAL_THROW_EXTERN_C();
-sal_Size ImplConvertUnicodeToUtf8(ImplTextConverterData const * pData,
- void * pContext, sal_Unicode const * pSrcBuf,
- sal_Size nSrcChars, sal_Char * pDestBuf,
- sal_Size nDestBytes, sal_uInt32 nFlags,
- sal_uInt32 * pInfo, sal_Size* pSrcCvtChars)
- SAL_THROW_EXTERN_C();
-
-#if defined __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* INCLUDED_RTL_TEXTENC_TENCHELP_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/tencinfo.c b/sal/textenc/tencinfo.c
deleted file mode 100644
index da5018076..000000000
--- a/sal/textenc/tencinfo.c
+++ /dev/null
@@ -1,1002 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "rtl/tencinfo.h"
-#include "gettextencodingdata.h"
-#include "tenchelp.h"
-
-#ifndef _RTL_ALLOC_H
-#include "rtl/alloc.h"
-#endif
-
-#ifndef INCLUDED_STDDEF_H
-#include <stddef.h>
-#define INCLUDED_STDDEF_H
-#endif
-#ifndef INCLUDED_STRING_H
-#include <string.h>
-#define INCLUDED_STRING_H
-#endif
-
-sal_Bool SAL_CALL rtl_isOctetTextEncoding(rtl_TextEncoding nEncoding)
-{
- return (sal_Bool)
- (nEncoding > RTL_TEXTENCODING_DONTKNOW
- && (nEncoding <= RTL_TEXTENCODING_ADOBE_DINGBATS)
- /* always update this! */
- && nEncoding != 9); /* RTL_TEXTENCODING_SYSTEM */
-}
-
-/* ======================================================================= */
-
-static void Impl_toAsciiLower( const sal_Char* pName, sal_Char* pBuf )
-{
- while ( *pName )
- {
- /* A-Z */
- if ( (*pName >= 0x41) && (*pName <= 0x5A) )
- *pBuf = (*pName)+0x20; /* toAsciiLower */
- else
- *pBuf = *pName;
-
- pBuf++;
- pName++;
- }
-
- *pBuf = '\0';
-}
-
-/* ----------------------------------------------------------------------- */
-
-static void Impl_toAsciiLowerAndRemoveNonAlphanumeric( const sal_Char* pName, sal_Char* pBuf )
-{
- while ( *pName )
- {
- /* A-Z */
- if ( (*pName >= 0x41) && (*pName <= 0x5A) )
- {
- *pBuf = (*pName)+0x20; /* toAsciiLower */
- pBuf++;
- }
- /* a-z, 0-9 */
- else if ( ((*pName >= 0x61) && (*pName <= 0x7A)) ||
- ((*pName >= 0x30) && (*pName <= 0x39)) )
- {
- *pBuf = *pName;
- pBuf++;
- }
-
- pName++;
- }
-
- *pBuf = '\0';
-}
-
-/* ----------------------------------------------------------------------- */
-
-/* pMatchStr must match with all characters in pCompStr */
-static sal_Bool Impl_matchString( const sal_Char* pCompStr, const sal_Char* pMatchStr )
-{
- /* We test only for end in MatchStr, because the last 0 character from */
- /* pCompStr is unequal a character in MatchStr, so the loop terminates */
- while ( *pMatchStr )
- {
- if ( *pCompStr != *pMatchStr )
- return sal_False;
-
- pCompStr++;
- pMatchStr++;
- }
-
- return sal_True;
-}
-
-/* ======================================================================= */
-
-typedef struct
-{
- const sal_Char* mpCharsetStr;
- rtl_TextEncoding meTextEncoding;
-} ImplStrCharsetDef;
-
-typedef struct
-{
- const sal_Char* mpCharsetStr;
- const ImplStrCharsetDef* mpSecondPartTab;
-} ImplStrFirstPartCharsetDef;
-
-/* ======================================================================= */
-
-sal_Bool SAL_CALL rtl_getTextEncodingInfo( rtl_TextEncoding eTextEncoding, rtl_TextEncodingInfo* pEncInfo )
-{
- const ImplTextEncodingData* pData;
-
- pData = Impl_getTextEncodingData( eTextEncoding );
- if ( !pData )
- {
- /* HACK: For not implemented encoding, because not all
- calls handle the errors */
- if ( pEncInfo->StructSize < 5 )
- return sal_False;
- pEncInfo->MinimumCharSize = 1;
-
- if ( pEncInfo->StructSize < 6 )
- return sal_True;
- pEncInfo->MaximumCharSize = 1;
-
- if ( pEncInfo->StructSize < 7 )
- return sal_True;
- pEncInfo->AverageCharSize = 1;
-
- if ( pEncInfo->StructSize < 12 )
- return sal_True;
- pEncInfo->Flags = 0;
-
- return sal_False;
- }
-
- if ( pEncInfo->StructSize < 5 )
- return sal_False;
- pEncInfo->MinimumCharSize = pData->mnMinCharSize;
-
- if ( pEncInfo->StructSize < 6 )
- return sal_True;
- pEncInfo->MaximumCharSize = pData->mnMaxCharSize;
-
- if ( pEncInfo->StructSize < 7 )
- return sal_True;
- pEncInfo->AverageCharSize = pData->mnAveCharSize;
-
- if ( pEncInfo->StructSize < 12 )
- return sal_True;
- pEncInfo->Flags = pData->mnInfoFlags;
-
- return sal_True;
-}
-
-/* ======================================================================= */
-
-rtl_TextEncoding SAL_CALL rtl_getTextEncodingFromWindowsCharset( sal_uInt8 nWinCharset )
-{
- rtl_TextEncoding eTextEncoding;
-
- switch ( nWinCharset )
- {
- case 0: eTextEncoding = RTL_TEXTENCODING_MS_1252; break; /* ANSI_CHARSET */
- case 2: eTextEncoding = RTL_TEXTENCODING_SYMBOL; break; /* SYMBOL_CHARSET */
- case 77: eTextEncoding = RTL_TEXTENCODING_APPLE_ROMAN; break;/* MAC_CHARSET */
- case 128: eTextEncoding = RTL_TEXTENCODING_MS_932; break; /* SHIFTJIS_CHARSET */
- case 129: eTextEncoding = RTL_TEXTENCODING_MS_949; break; /* HANGEUL_CHARSET */
- case 130: eTextEncoding = RTL_TEXTENCODING_MS_1361; break; /* JOHAB_CHARSET */
- case 134: eTextEncoding = RTL_TEXTENCODING_MS_936; break; /* GB2312_CHARSET */
- case 136: eTextEncoding = RTL_TEXTENCODING_MS_950; break; /* CHINESEBIG5_CHARSET */
- case 161: eTextEncoding = RTL_TEXTENCODING_MS_1253; break; /* GREEK_CHARSET */
- case 162: eTextEncoding = RTL_TEXTENCODING_MS_1254; break; /* TURKISH_CHARSET */
- case 163: eTextEncoding = RTL_TEXTENCODING_MS_1258; break; /* VIETNAMESE_CHARSET !!! */
- case 177: eTextEncoding = RTL_TEXTENCODING_MS_1255; break; /* HEBREW_CHARSET */
- case 178: eTextEncoding = RTL_TEXTENCODING_MS_1256; break; /* ARABIC_CHARSET */
- case 186: eTextEncoding = RTL_TEXTENCODING_MS_1257; break; /* BALTIC_CHARSET */
- case 204: eTextEncoding = RTL_TEXTENCODING_MS_1251; break; /* RUSSIAN_CHARSET */
- case 222: eTextEncoding = RTL_TEXTENCODING_MS_874; break; /* THAI_CHARSET */
- case 238: eTextEncoding = RTL_TEXTENCODING_MS_1250; break; /* EASTEUROPE_CHARSET */
- case 255: eTextEncoding = RTL_TEXTENCODING_IBM_850; break; /* OEM_CHARSET */
- default: eTextEncoding = RTL_TEXTENCODING_DONTKNOW; break;
- };
-
- return eTextEncoding;
-}
-
-/* ----------------------------------------------------------------------- */
-
-rtl_TextEncoding SAL_CALL rtl_getTextEncodingFromUnixCharset( const sal_Char* pUnixCharset )
-{
- /* See <ftp://ftp.x.org/pub/DOCS/registry>, section 14 ("Font Charset
- * (Registry and Encoding) Names").
- */
-
- /* All Identifiers in the tables are lower case The function search */
- /* for the first matching string in the tables. */
- /* Sort order: unique (first 14, than 1), important */
-
- static ImplStrCharsetDef const aUnixCharsetISOTab[] =
- {
- { "15", RTL_TEXTENCODING_ISO_8859_15 },
- { "14", RTL_TEXTENCODING_ISO_8859_14 },
- { "13", RTL_TEXTENCODING_ISO_8859_13 },
- { "11", RTL_TEXTENCODING_TIS_620 },
- { "10", RTL_TEXTENCODING_ISO_8859_10 },
- { "1", RTL_TEXTENCODING_ISO_8859_1 },
- { "2", RTL_TEXTENCODING_ISO_8859_2 },
- { "3", RTL_TEXTENCODING_ISO_8859_3 },
- { "4", RTL_TEXTENCODING_ISO_8859_4 },
- { "5", RTL_TEXTENCODING_ISO_8859_5 },
- { "6", RTL_TEXTENCODING_ISO_8859_6 },
- { "7", RTL_TEXTENCODING_ISO_8859_7 },
- { "8", RTL_TEXTENCODING_ISO_8859_8 },
- { "9", RTL_TEXTENCODING_ISO_8859_9 },
- { NULL, RTL_TEXTENCODING_DONTKNOW }
- };
-
- static ImplStrCharsetDef const aUnixCharsetADOBETab[] =
- {
- { "fontspecific", RTL_TEXTENCODING_SYMBOL },
- { NULL, RTL_TEXTENCODING_DONTKNOW }
- };
-
- static ImplStrCharsetDef const aUnixCharsetMSTab[] =
- {
- { "1252", RTL_TEXTENCODING_MS_1252 },
- { "1250", RTL_TEXTENCODING_MS_1250 },
- { "1251", RTL_TEXTENCODING_MS_1251 },
- { "1253", RTL_TEXTENCODING_MS_1253 },
- { "1254", RTL_TEXTENCODING_MS_1254 },
- { "1255", RTL_TEXTENCODING_MS_1255 },
- { "1256", RTL_TEXTENCODING_MS_1256 },
- { "1257", RTL_TEXTENCODING_MS_1257 },
- { "1258", RTL_TEXTENCODING_MS_1258 },
- { "932", RTL_TEXTENCODING_MS_932 },
- { "936", RTL_TEXTENCODING_MS_936 },
- { "949", RTL_TEXTENCODING_MS_949 },
- { "950", RTL_TEXTENCODING_MS_950 },
- { "1361", RTL_TEXTENCODING_MS_1361 },
- { "cp1252", RTL_TEXTENCODING_MS_1252 },
- { "cp1250", RTL_TEXTENCODING_MS_1250 },
- { "cp1251", RTL_TEXTENCODING_MS_1251 },
- { "cp1253", RTL_TEXTENCODING_MS_1253 },
- { "cp1254", RTL_TEXTENCODING_MS_1254 },
- { "cp1255", RTL_TEXTENCODING_MS_1255 },
- { "cp1256", RTL_TEXTENCODING_MS_1256 },
- { "cp1257", RTL_TEXTENCODING_MS_1257 },
- { "cp1258", RTL_TEXTENCODING_MS_1258 },
- { "cp932", RTL_TEXTENCODING_MS_932 },
- { "cp936", RTL_TEXTENCODING_MS_936 },
- { "cp949", RTL_TEXTENCODING_MS_949 },
- { "cp950", RTL_TEXTENCODING_MS_950 },
- { "cp1361", RTL_TEXTENCODING_MS_1361 },
- { NULL, RTL_TEXTENCODING_DONTKNOW }
- };
-
- static ImplStrCharsetDef const aUnixCharsetIBMTab[] =
- {
- { "437", RTL_TEXTENCODING_IBM_437 },
- { "850", RTL_TEXTENCODING_IBM_850 },
- { "860", RTL_TEXTENCODING_IBM_860 },
- { "861", RTL_TEXTENCODING_IBM_861 },
- { "863", RTL_TEXTENCODING_IBM_863 },
- { "865", RTL_TEXTENCODING_IBM_865 },
- { "737", RTL_TEXTENCODING_IBM_737 },
- { "775", RTL_TEXTENCODING_IBM_775 },
- { "852", RTL_TEXTENCODING_IBM_852 },
- { "855", RTL_TEXTENCODING_IBM_855 },
- { "857", RTL_TEXTENCODING_IBM_857 },
- { "862", RTL_TEXTENCODING_IBM_862 },
- { "864", RTL_TEXTENCODING_IBM_864 },
- { "866", RTL_TEXTENCODING_IBM_866 },
- { "869", RTL_TEXTENCODING_IBM_869 },
- { "874", RTL_TEXTENCODING_MS_874 },
- { "1004", RTL_TEXTENCODING_MS_1252 },
- { "65400", RTL_TEXTENCODING_SYMBOL },
- { NULL, RTL_TEXTENCODING_DONTKNOW }
- };
-
- static ImplStrCharsetDef const aUnixCharsetKOI8Tab[] =
- {
- { "r", RTL_TEXTENCODING_KOI8_R },
- { "u", RTL_TEXTENCODING_KOI8_U },
- { NULL, RTL_TEXTENCODING_DONTKNOW }
- };
-
- static ImplStrCharsetDef aUnixCharsetJISX0208Tab[] =
- {
- { NULL, RTL_TEXTENCODING_JIS_X_0208 }
- };
-
- static ImplStrCharsetDef aUnixCharsetJISX0201Tab[] =
- {
- { NULL, RTL_TEXTENCODING_JIS_X_0201 }
- };
-
- static ImplStrCharsetDef aUnixCharsetJISX0212Tab[] =
- {
- { NULL, RTL_TEXTENCODING_JIS_X_0212 }
- };
-
- static ImplStrCharsetDef aUnixCharsetGBTab[] =
- {
- { NULL, RTL_TEXTENCODING_GB_2312 }
- };
-
- static ImplStrCharsetDef aUnixCharsetGBKTab[] =
- {
- { NULL, RTL_TEXTENCODING_GBK }
- };
-
- static ImplStrCharsetDef aUnixCharsetBIG5Tab[] =
- {
- { NULL, RTL_TEXTENCODING_BIG5 }
- };
-
- static ImplStrCharsetDef const aUnixCharsetKSC56011987Tab[] =
- {
- { NULL, RTL_TEXTENCODING_EUC_KR }
- };
-
- static ImplStrCharsetDef const aUnixCharsetKSC56011992Tab[] =
- {
- { NULL, RTL_TEXTENCODING_MS_1361 }
- };
-
- static ImplStrCharsetDef const aUnixCharsetISO10646Tab[] =
- {
- { NULL, RTL_TEXTENCODING_UNICODE }
- };
-
- static ImplStrCharsetDef const aUnixCharsetUNICODETab[] =
- {
-/* Currently every Unicode Encoding is for us Unicode */
-/* { "fontspecific", RTL_TEXTENCODING_UNICODE }, */
- { NULL, RTL_TEXTENCODING_UNICODE }
- };
-
- static ImplStrCharsetDef const aUnixCharsetSymbolTab[] =
- {
- { NULL, RTL_TEXTENCODING_SYMBOL }
- };
-
- /* See <http://cvs.freedesktop.org/xorg/xc/fonts/encodings/iso8859-11.enc?
- rev=1.1.1.1>: */
- static ImplStrCharsetDef const aUnixCharsetTIS620Tab[] =
- {
- { "0", RTL_TEXTENCODING_TIS_620 },
- { "2529", RTL_TEXTENCODING_TIS_620 },
- { "2533", RTL_TEXTENCODING_TIS_620 },
- { NULL, RTL_TEXTENCODING_DONTKNOW }
- };
- static ImplStrCharsetDef const aUnixCharsetTIS6202529Tab[] =
- {
- { "1", RTL_TEXTENCODING_TIS_620 },
- { NULL, RTL_TEXTENCODING_DONTKNOW }
- };
- static ImplStrCharsetDef const aUnixCharsetTIS6202533Tab[] =
- {
- { "0", RTL_TEXTENCODING_TIS_620 },
- { "1", RTL_TEXTENCODING_TIS_620 },
- { NULL, RTL_TEXTENCODING_DONTKNOW }
- };
-
- static ImplStrFirstPartCharsetDef const aUnixCharsetFirstPartTab[] =
- {
- { "iso8859", aUnixCharsetISOTab },
- { "adobe", aUnixCharsetADOBETab },
- { "ansi", aUnixCharsetMSTab },
- { "microsoft", aUnixCharsetMSTab },
- { "ibm", aUnixCharsetIBMTab },
- { "koi8", aUnixCharsetKOI8Tab },
- { "jisx0208", aUnixCharsetJISX0208Tab },
- { "jisx0208.1983", aUnixCharsetJISX0208Tab },
- { "jisx0201", aUnixCharsetJISX0201Tab },
- { "jisx0201.1976", aUnixCharsetJISX0201Tab },
- { "jisx0212", aUnixCharsetJISX0212Tab },
- { "jisx0212.1990", aUnixCharsetJISX0212Tab },
- { "gb2312", aUnixCharsetGBTab },
- { "gbk", aUnixCharsetGBKTab },
- { "big5", aUnixCharsetBIG5Tab },
- { "iso10646", aUnixCharsetISO10646Tab },
-/* { "unicode", aUnixCharsetUNICODETab }, */ /* fonts contain only default chars */
- { "sunolcursor", aUnixCharsetSymbolTab },
- { "sunolglyph", aUnixCharsetSymbolTab },
- { "iso10646", aUnixCharsetUNICODETab },
- { "ksc5601.1987", aUnixCharsetKSC56011987Tab },
- { "ksc5601.1992", aUnixCharsetKSC56011992Tab },
- { "tis620.2529", aUnixCharsetTIS6202529Tab },
- { "tis620.2533", aUnixCharsetTIS6202533Tab },
- { "tis620", aUnixCharsetTIS620Tab },
-/* { "sunudcja.1997", }, */
-/* { "sunudcko.1997", }, */
-/* { "sunudczh.1997", }, */
-/* { "sunudczhtw.1997", }, */
- { NULL, NULL }
- };
-
- rtl_TextEncoding eEncoding = RTL_TEXTENCODING_DONTKNOW;
- sal_Char* pBuf;
- sal_Char* pTempBuf;
- sal_uInt32 nBufLen = strlen( pUnixCharset )+1;
- const sal_Char* pFirstPart;
- const sal_Char* pSecondPart;
-
- /* Alloc Buffer and map to lower case */
- pBuf = (char*)rtl_allocateMemory( nBufLen );
- Impl_toAsciiLower( pUnixCharset, pBuf );
-
- /* Search FirstPart */
- pFirstPart = pBuf;
- pSecondPart = NULL;
- pTempBuf = pBuf;
- while ( *pTempBuf )
- {
- if ( *pTempBuf == '-' )
- {
- *pTempBuf = '\0';
- pSecondPart = pTempBuf+1;
- break;
- }
-
- pTempBuf++;
- }
-
- /* Parttrenner gefunden */
- if ( pSecondPart )
- {
- /* Search for the part tab */
- const ImplStrFirstPartCharsetDef* pFirstPartData = aUnixCharsetFirstPartTab;
- while ( pFirstPartData->mpCharsetStr )
- {
- if ( Impl_matchString( pFirstPart, pFirstPartData->mpCharsetStr ) )
- {
- /* Search for the charset in the second part tab */
- const ImplStrCharsetDef* pData = pFirstPartData->mpSecondPartTab;
- while ( pData->mpCharsetStr )
- {
- if ( Impl_matchString( pSecondPart, pData->mpCharsetStr ) )
- {
- eEncoding = pData->meTextEncoding;
- break;
- }
-
- pData++;
- }
-
- /* use default encoding for first part */
- eEncoding = pData->meTextEncoding;
- break;
- }
-
- pFirstPartData++;
- }
- }
-
- rtl_freeMemory( pBuf );
-
- return eEncoding;
-}
-
-/* ----------------------------------------------------------------------- */
-
-rtl_TextEncoding SAL_CALL rtl_getTextEncodingFromMimeCharset( const sal_Char* pMimeCharset )
-{
- /* All Identifiers are in lower case and contain only alphanumeric */
- /* characters. The function search for the first equal string in */
- /* the table. In this table are only the most used mime types. */
- /* Sort order: important */
- static ImplStrCharsetDef const aVIPMimeCharsetTab[] =
- {
- { "usascii", RTL_TEXTENCODING_ASCII_US },
- { "utf8", RTL_TEXTENCODING_UTF8 },
- { "utf7", RTL_TEXTENCODING_UTF7 },
- { "iso88591", RTL_TEXTENCODING_ISO_8859_1 },
- { "iso88592", RTL_TEXTENCODING_ISO_8859_2 },
- { "iso88593", RTL_TEXTENCODING_ISO_8859_3 },
- { "iso88594", RTL_TEXTENCODING_ISO_8859_4 },
- { "iso88595", RTL_TEXTENCODING_ISO_8859_5 },
- { "iso88596", RTL_TEXTENCODING_ISO_8859_6 },
- { "iso88597", RTL_TEXTENCODING_ISO_8859_7 },
- { "iso88598", RTL_TEXTENCODING_ISO_8859_8 },
- { "iso88599", RTL_TEXTENCODING_ISO_8859_9 },
- { "iso885910", RTL_TEXTENCODING_ISO_8859_10 },
- { "iso885913", RTL_TEXTENCODING_ISO_8859_13 },
- { "iso885914", RTL_TEXTENCODING_ISO_8859_14 },
- { "iso885915", RTL_TEXTENCODING_ISO_8859_15 },
- { "iso2022jp", RTL_TEXTENCODING_ISO_2022_JP },
- { "iso2022jp2", RTL_TEXTENCODING_ISO_2022_JP },
- { "iso2022cn", RTL_TEXTENCODING_ISO_2022_CN },
- { "iso2022cnext", RTL_TEXTENCODING_ISO_2022_CN },
- { "iso2022kr", RTL_TEXTENCODING_ISO_2022_KR },
- { "eucjp", RTL_TEXTENCODING_EUC_JP },
- { "shiftjis", RTL_TEXTENCODING_SHIFT_JIS },
- { "mskanji", RTL_TEXTENCODING_MS_932 },
- { "gb2312", RTL_TEXTENCODING_GB_2312 },
- { "cngb", RTL_TEXTENCODING_GB_2312 },
- { "big5", RTL_TEXTENCODING_BIG5 },
- { "cnbig5", RTL_TEXTENCODING_BIG5 },
- { "cngb12345", RTL_TEXTENCODING_GBT_12345 },
- { "euckr", RTL_TEXTENCODING_EUC_KR },
- { "koi8r", RTL_TEXTENCODING_KOI8_R },
- { "windows1252", RTL_TEXTENCODING_MS_1252 },
- { "windows1250", RTL_TEXTENCODING_MS_1250 },
- { "windows1251", RTL_TEXTENCODING_MS_1251 },
- { "windows1253", RTL_TEXTENCODING_MS_1253 },
- { "windows1254", RTL_TEXTENCODING_MS_1254 },
- { "windows1255", RTL_TEXTENCODING_MS_1255 },
- { "windows1256", RTL_TEXTENCODING_MS_1256 },
- { "windows1257", RTL_TEXTENCODING_MS_1257 },
- { "windows1258", RTL_TEXTENCODING_MS_1258 },
- { NULL, RTL_TEXTENCODING_DONTKNOW }
- };
-
- /* All Identifiers are in lower case and contain only alphanumeric */
- /* characters. The function search for the first matching string in */
- /* the table. */
- /* Sort order: unique (first iso885914, than iso88591), important */
- static ImplStrCharsetDef const aMimeCharsetTab[] =
- {
- { "unicode11utf7", RTL_TEXTENCODING_UTF7 },
- { "caunicode11utf7", RTL_TEXTENCODING_UTF7 },
- { "iso88591windows30", RTL_TEXTENCODING_ISO_8859_1 },
- { "iso88591win", RTL_TEXTENCODING_MS_1252 },
- { "iso88592win", RTL_TEXTENCODING_MS_1250 },
- { "iso88599win", RTL_TEXTENCODING_MS_1254 },
- { "iso885915", RTL_TEXTENCODING_ISO_8859_15 },
- { "iso885914", RTL_TEXTENCODING_ISO_8859_14 },
- { "iso885913", RTL_TEXTENCODING_ISO_8859_13 },
- { "iso885911", RTL_TEXTENCODING_TIS_620 },
- /* This is no official MIME character set name, but it might be in
- use in Thailand. */
- { "iso885910", RTL_TEXTENCODING_ISO_8859_10 },
- { "iso88591", RTL_TEXTENCODING_ISO_8859_1 },
- { "iso88592", RTL_TEXTENCODING_ISO_8859_2 },
- { "iso88593", RTL_TEXTENCODING_ISO_8859_3 },
- { "iso88594", RTL_TEXTENCODING_ISO_8859_4 },
- { "iso88595", RTL_TEXTENCODING_ISO_8859_5 },
- { "iso88596", RTL_TEXTENCODING_ISO_8859_6 },
- { "iso88597", RTL_TEXTENCODING_ISO_8859_7 },
- { "iso88598", RTL_TEXTENCODING_ISO_8859_8 },
- { "iso88599", RTL_TEXTENCODING_ISO_8859_9 },
- { "isoir100", RTL_TEXTENCODING_ISO_8859_1 },
- { "latin1", RTL_TEXTENCODING_ISO_8859_1 },
- { "l1", RTL_TEXTENCODING_ISO_8859_1 },
- { "cp819", RTL_TEXTENCODING_ISO_8859_1 },
- { "ibm819", RTL_TEXTENCODING_ISO_8859_1 },
- { "csisolatin1", RTL_TEXTENCODING_ISO_8859_1 },
- { "isoir101", RTL_TEXTENCODING_ISO_8859_2 },
- { "latin2", RTL_TEXTENCODING_ISO_8859_2 },
- { "l2", RTL_TEXTENCODING_ISO_8859_2 },
- { "csisolatin2", RTL_TEXTENCODING_ISO_8859_2 },
- { "isoir109", RTL_TEXTENCODING_ISO_8859_3 },
- { "latin3", RTL_TEXTENCODING_ISO_8859_3 },
- { "l3", RTL_TEXTENCODING_ISO_8859_3 },
- { "csisolatin3", RTL_TEXTENCODING_ISO_8859_3 },
- { "isoir110", RTL_TEXTENCODING_ISO_8859_4 },
- { "latin4", RTL_TEXTENCODING_ISO_8859_4 },
- { "l4", RTL_TEXTENCODING_ISO_8859_4 },
- { "csisolatin4", RTL_TEXTENCODING_ISO_8859_4 },
- { "isoir144", RTL_TEXTENCODING_ISO_8859_5 },
- { "cyrillicasian", RTL_TEXTENCODING_PT154 },
- { "cyrillic", RTL_TEXTENCODING_ISO_8859_5 },
- { "csisolatincyrillic", RTL_TEXTENCODING_ISO_8859_5 },
- { "isoir127", RTL_TEXTENCODING_ISO_8859_6 },
- { "arabic", RTL_TEXTENCODING_ISO_8859_6 },
- { "csisolatinarabic", RTL_TEXTENCODING_ISO_8859_6 },
- { "ecma114", RTL_TEXTENCODING_ISO_8859_6 },
- { "asmo708", RTL_TEXTENCODING_ISO_8859_6 },
- { "isoir126", RTL_TEXTENCODING_ISO_8859_7 },
- { "greek", RTL_TEXTENCODING_ISO_8859_7 },
- { "csisolatingreek", RTL_TEXTENCODING_ISO_8859_7 },
- { "elot928", RTL_TEXTENCODING_ISO_8859_7 },
- { "ecma118", RTL_TEXTENCODING_ISO_8859_7 },
- { "isoir138", RTL_TEXTENCODING_ISO_8859_8 },
- { "hebrew", RTL_TEXTENCODING_ISO_8859_8 },
- { "csisolatinhebrew", RTL_TEXTENCODING_ISO_8859_8 },
- { "isoir148", RTL_TEXTENCODING_ISO_8859_9 },
- { "latin5", RTL_TEXTENCODING_ISO_8859_9 },
- { "l5", RTL_TEXTENCODING_ISO_8859_9 },
- { "csisolatin5", RTL_TEXTENCODING_ISO_8859_9 },
- { "cswindows30latin1", RTL_TEXTENCODING_ISO_8859_1 },
- { "cswindows30latin1", RTL_TEXTENCODING_ISO_8859_1 },
- { "cswindows31latin1", RTL_TEXTENCODING_MS_1252 },
- { "cswindows31latin2", RTL_TEXTENCODING_MS_1250 },
- { "cswindows31latin5", RTL_TEXTENCODING_MS_1254 },
- { "iso10646us", RTL_TEXTENCODING_ASCII_US },
- { "iso646irv", RTL_TEXTENCODING_ASCII_US },
- { "cskoi8r", RTL_TEXTENCODING_KOI8_R },
- { "ibm437", RTL_TEXTENCODING_IBM_437 },
- { "cp437", RTL_TEXTENCODING_IBM_437 },
- { "437", RTL_TEXTENCODING_IBM_437 },
- { "cspc8codepage437", RTL_TEXTENCODING_IBM_437 },
- { "ansix34", RTL_TEXTENCODING_ASCII_US },
- { "ibm367", RTL_TEXTENCODING_ASCII_US },
- { "cp367", RTL_TEXTENCODING_ASCII_US },
- { "csascii", RTL_TEXTENCODING_ASCII_US },
- { "ibm775", RTL_TEXTENCODING_IBM_775 },
- { "cp775", RTL_TEXTENCODING_IBM_775 },
- { "cspc775baltic", RTL_TEXTENCODING_IBM_775 },
- { "ibm850", RTL_TEXTENCODING_IBM_850 },
- { "cp850", RTL_TEXTENCODING_IBM_850 },
- { "850", RTL_TEXTENCODING_IBM_850 },
- { "cspc850multilingual", RTL_TEXTENCODING_IBM_850 },
-/* { "ibm851", RTL_TEXTENCODING_IBM_851 }, */
-/* { "cp851", RTL_TEXTENCODING_IBM_851 }, */
-/* { "851", RTL_TEXTENCODING_IBM_851 }, */
-/* { "csibm851", RTL_TEXTENCODING_IBM_851 }, */
- { "ibm852", RTL_TEXTENCODING_IBM_852 },
- { "cp852", RTL_TEXTENCODING_IBM_852 },
- { "852", RTL_TEXTENCODING_IBM_852 },
- { "cspcp852", RTL_TEXTENCODING_IBM_852 },
- { "ibm855", RTL_TEXTENCODING_IBM_855 },
- { "cp855", RTL_TEXTENCODING_IBM_855 },
- { "855", RTL_TEXTENCODING_IBM_855 },
- { "csibm855", RTL_TEXTENCODING_IBM_855 },
- { "ibm857", RTL_TEXTENCODING_IBM_857 },
- { "cp857", RTL_TEXTENCODING_IBM_857 },
- { "857", RTL_TEXTENCODING_IBM_857 },
- { "csibm857", RTL_TEXTENCODING_IBM_857 },
- { "ibm860", RTL_TEXTENCODING_IBM_860 },
- { "cp860", RTL_TEXTENCODING_IBM_860 },
- { "860", RTL_TEXTENCODING_IBM_860 },
- { "csibm860", RTL_TEXTENCODING_IBM_860 },
- { "ibm861", RTL_TEXTENCODING_IBM_861 },
- { "cp861", RTL_TEXTENCODING_IBM_861 },
- { "861", RTL_TEXTENCODING_IBM_861 },
- { "csis", RTL_TEXTENCODING_IBM_861 },
- { "csibm861", RTL_TEXTENCODING_IBM_861 },
- { "ibm862", RTL_TEXTENCODING_IBM_862 },
- { "cp862", RTL_TEXTENCODING_IBM_862 },
- { "862", RTL_TEXTENCODING_IBM_862 },
- { "cspc862latinhebrew", RTL_TEXTENCODING_IBM_862 },
- { "ibm863", RTL_TEXTENCODING_IBM_863 },
- { "cp863", RTL_TEXTENCODING_IBM_863 },
- { "863", RTL_TEXTENCODING_IBM_863 },
- { "csibm863", RTL_TEXTENCODING_IBM_863 },
- { "ibm864", RTL_TEXTENCODING_IBM_864 },
- { "cp864", RTL_TEXTENCODING_IBM_864 },
- { "864", RTL_TEXTENCODING_IBM_864 },
- { "csibm864", RTL_TEXTENCODING_IBM_864 },
- { "ibm865", RTL_TEXTENCODING_IBM_865 },
- { "cp865", RTL_TEXTENCODING_IBM_865 },
- { "865", RTL_TEXTENCODING_IBM_865 },
- { "csibm865", RTL_TEXTENCODING_IBM_865 },
- { "ibm866", RTL_TEXTENCODING_IBM_866 },
- { "cp866", RTL_TEXTENCODING_IBM_866 },
- { "866", RTL_TEXTENCODING_IBM_866 },
- { "csibm866", RTL_TEXTENCODING_IBM_866 },
-/* { "ibm868", RTL_TEXTENCODING_IBM_868 }, */
-/* { "cp868", RTL_TEXTENCODING_IBM_868 }, */
-/* { "cpar", RTL_TEXTENCODING_IBM_868 }, */
-/* { "csibm868", RTL_TEXTENCODING_IBM_868 }, */
- { "ibm869", RTL_TEXTENCODING_IBM_869 },
- { "cp869", RTL_TEXTENCODING_IBM_869 },
- { "869", RTL_TEXTENCODING_IBM_869 },
- { "cpgr", RTL_TEXTENCODING_IBM_869 },
- { "csibm869", RTL_TEXTENCODING_IBM_869 },
- { "ibm869", RTL_TEXTENCODING_IBM_869 },
- { "cp869", RTL_TEXTENCODING_IBM_869 },
- { "869", RTL_TEXTENCODING_IBM_869 },
- { "cpgr", RTL_TEXTENCODING_IBM_869 },
- { "csibm869", RTL_TEXTENCODING_IBM_869 },
- { "mac", RTL_TEXTENCODING_APPLE_ROMAN },
- { "csmacintosh", RTL_TEXTENCODING_APPLE_ROMAN },
- { "shiftjis", RTL_TEXTENCODING_SHIFT_JIS },
- { "mskanji", RTL_TEXTENCODING_MS_932 },
- { "csshiftjis", RTL_TEXTENCODING_SHIFT_JIS },
- { "jisx0208", RTL_TEXTENCODING_JIS_X_0208 },
- { "jisc62261983", RTL_TEXTENCODING_JIS_X_0208 },
- { "csiso87jisx0208", RTL_TEXTENCODING_JIS_X_0208 },
- { "isoir86", RTL_TEXTENCODING_JIS_X_0208 },
- { "x0208", RTL_TEXTENCODING_JIS_X_0208 },
- { "jisx0201", RTL_TEXTENCODING_JIS_X_0201 },
- { "cshalfwidthkatakana", RTL_TEXTENCODING_JIS_X_0201 },
- { "x0201", RTL_TEXTENCODING_JIS_X_0201 },
- { "jisx0212", RTL_TEXTENCODING_JIS_X_0212 },
- { "csiso159jisx0212", RTL_TEXTENCODING_JIS_X_0212 },
- { "isoir159", RTL_TEXTENCODING_JIS_X_0208 },
- { "x0212", RTL_TEXTENCODING_JIS_X_0212 },
- { "isoir6", RTL_TEXTENCODING_ASCII_US },
- { "xsjis", RTL_TEXTENCODING_SHIFT_JIS },
- { "sjis", RTL_TEXTENCODING_SHIFT_JIS },
- { "ascii", RTL_TEXTENCODING_ASCII_US },
- { "us", RTL_TEXTENCODING_ASCII_US },
- { "gb180302000", RTL_TEXTENCODING_GB_18030 },
- /* This is no actual MIME character set name, it is only in here
- for backwards compatibility (before "GB18030" was officially
- registered with IANA, this code contained some guesses of what
- would become official names for GB18030). */
- { "gb18030", RTL_TEXTENCODING_GB_18030 },
- { "big5hkscs", RTL_TEXTENCODING_BIG5_HKSCS },
- { "tis620", RTL_TEXTENCODING_TIS_620 },
- { "gbk", RTL_TEXTENCODING_GBK },
- { "cp936", RTL_TEXTENCODING_GBK },
- { "ms936", RTL_TEXTENCODING_GBK },
- { "windows936", RTL_TEXTENCODING_GBK },
- { "cp874", RTL_TEXTENCODING_MS_874 },
- /* This is no official MIME character set name, but it might be in
- use in Thailand. */
- { "ms874", RTL_TEXTENCODING_MS_874 },
- /* This is no official MIME character set name, but it might be in
- use in Thailand. */
- { "windows874", RTL_TEXTENCODING_MS_874 },
- /* This is no official MIME character set name, but it might be in
- use in Thailand. */
- { "koi8u", RTL_TEXTENCODING_KOI8_U },
- { "cpis", RTL_TEXTENCODING_IBM_861 },
- { "ksc56011987", RTL_TEXTENCODING_MS_949 },
- { "isoir149", RTL_TEXTENCODING_MS_949 },
- { "ksc56011989", RTL_TEXTENCODING_MS_949 },
- { "ksc5601", RTL_TEXTENCODING_MS_949 },
- { "korean", RTL_TEXTENCODING_MS_949 },
- { "csksc56011987", RTL_TEXTENCODING_MS_949 },
- /* Map KS_C_5601-1987 and aliases to MS-949 instead of EUC-KR, as
- this character set identifier seems to be prominently used by MS
- to stand for KS C 5601 plus MS-949 extensions */
- { "latin9", RTL_TEXTENCODING_ISO_8859_15 },
- { "adobestandardencoding", RTL_TEXTENCODING_ADOBE_STANDARD },
- { "csadobestandardencoding", RTL_TEXTENCODING_ADOBE_STANDARD },
- { "adobesymbolencoding", RTL_TEXTENCODING_ADOBE_SYMBOL },
- { "cshppsmath", RTL_TEXTENCODING_ADOBE_SYMBOL },
- { "ptcp154", RTL_TEXTENCODING_PT154 },
- { "csptcp154", RTL_TEXTENCODING_PT154 },
- { "pt154", RTL_TEXTENCODING_PT154 },
- { "cp154", RTL_TEXTENCODING_PT154 },
- { "xisciide", RTL_TEXTENCODING_ISCII_DEVANAGARI },
- /* This is not an official MIME character set name, but is in use by
- various windows APIs. */
- { NULL, RTL_TEXTENCODING_DONTKNOW }
- };
-
- rtl_TextEncoding eEncoding = RTL_TEXTENCODING_DONTKNOW;
- sal_Char* pBuf;
- const ImplStrCharsetDef* pData = aVIPMimeCharsetTab;
- sal_uInt32 nBufLen = strlen( pMimeCharset )+1;
-
- /* Alloc Buffer and map to lower case and remove non alphanumeric chars */
- pBuf = (char*)rtl_allocateMemory( nBufLen );
- Impl_toAsciiLowerAndRemoveNonAlphanumeric( pMimeCharset, pBuf );
-
- /* Search for equal in the VIP table */
- while ( pData->mpCharsetStr )
- {
- if ( strcmp( pBuf, pData->mpCharsetStr ) == 0 )
- {
- eEncoding = pData->meTextEncoding;
- break;
- }
-
- pData++;
- }
-
- /* Search for matching in the mime table */
- if ( eEncoding == RTL_TEXTENCODING_DONTKNOW )
- {
- pData = aMimeCharsetTab;
- while ( pData->mpCharsetStr )
- {
- if ( Impl_matchString( pBuf, pData->mpCharsetStr ) )
- {
- eEncoding = pData->meTextEncoding;
- break;
- }
-
- pData++;
- }
- }
-
- rtl_freeMemory( pBuf );
-
- return eEncoding;
-}
-
-/* ======================================================================= */
-
-sal_uInt8 SAL_CALL rtl_getBestWindowsCharsetFromTextEncoding( rtl_TextEncoding eTextEncoding )
-{
- const ImplTextEncodingData* pData = Impl_getTextEncodingData( eTextEncoding );
- if ( pData )
- return pData->mnBestWindowsCharset;
- else
- return 1;
-}
-
-/* ----------------------------------------------------------------------- */
-
-const sal_Char* SAL_CALL rtl_getBestUnixCharsetFromTextEncoding( rtl_TextEncoding eTextEncoding )
-{
- const ImplTextEncodingData* pData = Impl_getTextEncodingData( eTextEncoding );
- if ( pData )
- return (sal_Char const *) pData->mpBestUnixCharset;
- else if( eTextEncoding == RTL_TEXTENCODING_UNICODE )
- return (sal_Char const *) "iso10646-1";
- else
- return 0;
-}
-
-/* ----------------------------------------------------------------------- */
-
-char const * SAL_CALL rtl_getMimeCharsetFromTextEncoding(rtl_TextEncoding
- nEncoding)
-{
- ImplTextEncodingData const * p = Impl_getTextEncodingData(nEncoding);
- return p && (p->mnInfoFlags & RTL_TEXTENCODING_INFO_MIME) != 0 ?
- p->mpBestMimeCharset : NULL;
-}
-
-const sal_Char* SAL_CALL rtl_getBestMimeCharsetFromTextEncoding( rtl_TextEncoding eTextEncoding )
-{
- const ImplTextEncodingData* pData = Impl_getTextEncodingData( eTextEncoding );
- if ( pData )
- return (sal_Char const *) pData->mpBestMimeCharset;
- else
- return 0;
-}
-
-/* The following two functions are based on <http://www.sharmahd.com/tm/
- codepages.html>, <http://msdn.microsoft.com/workshop/author/dhtml/reference/
- charsets/charset4.asp>, and <http://www.iana.org/assignments/character-sets>.
- */
-
-rtl_TextEncoding SAL_CALL
-rtl_getTextEncodingFromWindowsCodePage(sal_uInt32 nCodePage)
-{
- switch (nCodePage)
- {
- case 437: return RTL_TEXTENCODING_IBM_437;
- case 708: return RTL_TEXTENCODING_ISO_8859_6;
- case 737: return RTL_TEXTENCODING_IBM_737;
- case 775: return RTL_TEXTENCODING_IBM_775;
- case 850: return RTL_TEXTENCODING_IBM_850;
- case 852: return RTL_TEXTENCODING_IBM_852;
- case 855: return RTL_TEXTENCODING_IBM_855;
- case 857: return RTL_TEXTENCODING_IBM_857;
- case 860: return RTL_TEXTENCODING_IBM_860;
- case 861: return RTL_TEXTENCODING_IBM_861;
- case 862: return RTL_TEXTENCODING_IBM_862;
- case 863: return RTL_TEXTENCODING_IBM_863;
- case 864: return RTL_TEXTENCODING_IBM_864;
- case 865: return RTL_TEXTENCODING_IBM_865;
- case 866: return RTL_TEXTENCODING_IBM_866;
- case 869: return RTL_TEXTENCODING_IBM_869;
- case 874: return RTL_TEXTENCODING_MS_874;
- case 932: return RTL_TEXTENCODING_MS_932;
- case 936: return RTL_TEXTENCODING_MS_936;
- case 949: return RTL_TEXTENCODING_MS_949;
- case 950: return RTL_TEXTENCODING_MS_950;
- case 1250: return RTL_TEXTENCODING_MS_1250;
- case 1251: return RTL_TEXTENCODING_MS_1251;
- case 1252: return RTL_TEXTENCODING_MS_1252;
- case 1253: return RTL_TEXTENCODING_MS_1253;
- case 1254: return RTL_TEXTENCODING_MS_1254;
- case 1255: return RTL_TEXTENCODING_MS_1255;
- case 1256: return RTL_TEXTENCODING_MS_1256;
- case 1257: return RTL_TEXTENCODING_MS_1257;
- case 1258: return RTL_TEXTENCODING_MS_1258;
- case 1361: return RTL_TEXTENCODING_MS_1361;
- case 10000: return RTL_TEXTENCODING_APPLE_ROMAN;
- case 10001: return RTL_TEXTENCODING_APPLE_JAPANESE;
- case 10002: return RTL_TEXTENCODING_APPLE_CHINTRAD;
- case 10003: return RTL_TEXTENCODING_APPLE_KOREAN;
- case 10004: return RTL_TEXTENCODING_APPLE_ARABIC;
- case 10005: return RTL_TEXTENCODING_APPLE_HEBREW;
- case 10006: return RTL_TEXTENCODING_APPLE_GREEK;
- case 10007: return RTL_TEXTENCODING_APPLE_CYRILLIC;
- case 10008: return RTL_TEXTENCODING_APPLE_CHINSIMP;
- case 10010: return RTL_TEXTENCODING_APPLE_ROMANIAN;
- case 10017: return RTL_TEXTENCODING_APPLE_UKRAINIAN;
- case 10029: return RTL_TEXTENCODING_APPLE_CENTEURO;
- case 10079: return RTL_TEXTENCODING_APPLE_ICELAND;
- case 10081: return RTL_TEXTENCODING_APPLE_TURKISH;
- case 10082: return RTL_TEXTENCODING_APPLE_CROATIAN;
- case 20127: return RTL_TEXTENCODING_ASCII_US;
- case 20866: return RTL_TEXTENCODING_KOI8_R;
- case 21866: return RTL_TEXTENCODING_KOI8_U;
- case 28591: return RTL_TEXTENCODING_ISO_8859_1;
- case 28592: return RTL_TEXTENCODING_ISO_8859_2;
- case 28593: return RTL_TEXTENCODING_ISO_8859_3;
- case 28594: return RTL_TEXTENCODING_ISO_8859_4;
- case 28595: return RTL_TEXTENCODING_ISO_8859_5;
- case 28596: return RTL_TEXTENCODING_ISO_8859_6;
- case 28597: return RTL_TEXTENCODING_ISO_8859_7;
- case 28598: return RTL_TEXTENCODING_ISO_8859_8;
- case 28599: return RTL_TEXTENCODING_ISO_8859_9;
- case 28605: return RTL_TEXTENCODING_ISO_8859_15;
- case 50220: return RTL_TEXTENCODING_ISO_2022_JP;
- case 50225: return RTL_TEXTENCODING_ISO_2022_KR;
- case 51932: return RTL_TEXTENCODING_EUC_JP;
- case 51936: return RTL_TEXTENCODING_EUC_CN;
- case 51949: return RTL_TEXTENCODING_EUC_KR;
- case 57002: return RTL_TEXTENCODING_ISCII_DEVANAGARI;
- case 65000: return RTL_TEXTENCODING_UTF7;
- case 65001: return RTL_TEXTENCODING_UTF8;
- default: return RTL_TEXTENCODING_DONTKNOW;
- }
-}
-
-sal_uInt32 SAL_CALL
-rtl_getWindowsCodePageFromTextEncoding(rtl_TextEncoding nEncoding)
-{
- switch (nEncoding)
- {
- case RTL_TEXTENCODING_IBM_437: return 437;
- /* case RTL_TEXTENCODING_ISO_8859_6: return 708; */
- case RTL_TEXTENCODING_IBM_737: return 737;
- case RTL_TEXTENCODING_IBM_775: return 775;
- case RTL_TEXTENCODING_IBM_850: return 850;
- case RTL_TEXTENCODING_IBM_852: return 852;
- case RTL_TEXTENCODING_IBM_855: return 855;
- case RTL_TEXTENCODING_IBM_857: return 857;
- case RTL_TEXTENCODING_IBM_860: return 860;
- case RTL_TEXTENCODING_IBM_861: return 861;
- case RTL_TEXTENCODING_IBM_862: return 862;
- case RTL_TEXTENCODING_IBM_863: return 863;
- case RTL_TEXTENCODING_IBM_864: return 864;
- case RTL_TEXTENCODING_IBM_865: return 865;
- case RTL_TEXTENCODING_IBM_866: return 866;
- case RTL_TEXTENCODING_IBM_869: return 869;
- case RTL_TEXTENCODING_MS_874: return 874;
- case RTL_TEXTENCODING_MS_932: return 932;
- case RTL_TEXTENCODING_MS_936: return 936;
- case RTL_TEXTENCODING_MS_949: return 949;
- case RTL_TEXTENCODING_MS_950: return 950;
- case RTL_TEXTENCODING_MS_1250: return 1250;
- case RTL_TEXTENCODING_MS_1251: return 1251;
- case RTL_TEXTENCODING_MS_1252: return 1252;
- case RTL_TEXTENCODING_MS_1253: return 1253;
- case RTL_TEXTENCODING_MS_1254: return 1254;
- case RTL_TEXTENCODING_MS_1255: return 1255;
- case RTL_TEXTENCODING_MS_1256: return 1256;
- case RTL_TEXTENCODING_MS_1257: return 1257;
- case RTL_TEXTENCODING_MS_1258: return 1258;
- case RTL_TEXTENCODING_MS_1361: return 1361;
- case RTL_TEXTENCODING_APPLE_ROMAN: return 10000;
- case RTL_TEXTENCODING_APPLE_JAPANESE: return 10001;
- case RTL_TEXTENCODING_APPLE_CHINTRAD: return 10002;
- case RTL_TEXTENCODING_APPLE_KOREAN: return 10003;
- case RTL_TEXTENCODING_APPLE_ARABIC: return 10004;
- case RTL_TEXTENCODING_APPLE_HEBREW: return 10005;
- case RTL_TEXTENCODING_APPLE_GREEK: return 10006;
- case RTL_TEXTENCODING_APPLE_CYRILLIC: return 10007;
- case RTL_TEXTENCODING_APPLE_CHINSIMP: return 10008;
- case RTL_TEXTENCODING_APPLE_ROMANIAN: return 10010;
- case RTL_TEXTENCODING_APPLE_UKRAINIAN: return 10017;
- case RTL_TEXTENCODING_APPLE_CENTEURO: return 10029;
- case RTL_TEXTENCODING_APPLE_ICELAND: return 10079;
- case RTL_TEXTENCODING_APPLE_TURKISH: return 10081;
- case RTL_TEXTENCODING_APPLE_CROATIAN: return 10082;
- case RTL_TEXTENCODING_ASCII_US: return 20127;
- case RTL_TEXTENCODING_KOI8_R: return 20866;
- case RTL_TEXTENCODING_KOI8_U: return 21866;
- case RTL_TEXTENCODING_ISO_8859_1: return 28591;
- case RTL_TEXTENCODING_ISO_8859_2: return 28592;
- case RTL_TEXTENCODING_ISO_8859_3: return 28593;
- case RTL_TEXTENCODING_ISO_8859_4: return 28594;
- case RTL_TEXTENCODING_ISO_8859_5: return 28595;
- case RTL_TEXTENCODING_ISO_8859_6: return 28596;
- case RTL_TEXTENCODING_ISO_8859_7: return 28597;
- case RTL_TEXTENCODING_ISO_8859_8: return 28598;
- case RTL_TEXTENCODING_ISO_8859_9: return 28599;
- case RTL_TEXTENCODING_ISO_8859_15: return 28605;
- case RTL_TEXTENCODING_ISO_2022_JP: return 50220;
- case RTL_TEXTENCODING_ISO_2022_KR: return 50225;
- case RTL_TEXTENCODING_EUC_JP: return 51932;
- case RTL_TEXTENCODING_EUC_CN: return 51936;
- case RTL_TEXTENCODING_EUC_KR: return 51949;
- case RTL_TEXTENCODING_ISCII_DEVANAGARI: return 57002;
- case RTL_TEXTENCODING_UTF7: return 65000;
- case RTL_TEXTENCODING_UTF8: return 65001;
- default: return 0;
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/textcvt.c b/sal/textenc/textcvt.c
deleted file mode 100644
index 23299e332..000000000
--- a/sal/textenc/textcvt.c
+++ /dev/null
@@ -1,267 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "rtl/textcvt.h"
-#include "gettextencodingdata.h"
-#include "tenchelp.h"
-
-/* ======================================================================= */
-
-static sal_Size ImplDummyToUnicode( const sal_Char* pSrcBuf, sal_Size nSrcBytes,
- sal_Unicode* pDestBuf, sal_Size nDestChars,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtBytes )
-{
- sal_Unicode* pEndDestBuf;
- const sal_Char* pEndSrcBuf;
-
- if ( ((nFlags & RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MASK) == RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR) ||
- ((nFlags & RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_MASK) == RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR) )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR |
- RTL_TEXTTOUNICODE_INFO_UNDEFINED |
- RTL_TEXTTOUNICODE_INFO_MBUNDEFINED;
- return 0;
- }
-
- *pInfo = 0;
- pEndDestBuf = pDestBuf+nDestChars;
- pEndSrcBuf = pSrcBuf+nSrcBytes;
- while ( pSrcBuf < pEndSrcBuf )
- {
- if ( pDestBuf == pEndDestBuf )
- {
- *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- *pDestBuf = (sal_Unicode)(sal_uChar)*pSrcBuf;
- pDestBuf++;
- pSrcBuf++;
- }
-
- *pSrcCvtBytes = nSrcBytes - (pEndSrcBuf-pSrcBuf);
- return (nDestChars - (pEndDestBuf-pDestBuf));
-}
-
-/* ----------------------------------------------------------------------- */
-
-static sal_Size ImplUnicodeToDummy( const sal_Unicode* pSrcBuf, sal_Size nSrcChars,
- sal_Char* pDestBuf, sal_Size nDestBytes,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtChars )
-{
- sal_Char* pEndDestBuf;
- const sal_Unicode* pEndSrcBuf;
-
- if ( ((nFlags & RTL_UNICODETOTEXT_FLAGS_UNDEFINED_MASK) == RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR) )
- {
- *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR |
- RTL_UNICODETOTEXT_INFO_UNDEFINED;
- return 0;
- }
-
- *pInfo = 0;
- pEndDestBuf = pDestBuf+nDestBytes;
- pEndSrcBuf = pSrcBuf+nSrcChars;
- while ( pSrcBuf < pEndSrcBuf )
- {
- if ( pDestBuf == pEndDestBuf )
- {
- *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
- break;
- }
-
- *pDestBuf = (sal_Char)(sal_uChar)(*pSrcBuf & 0x00FF);
- pDestBuf++;
- pSrcBuf++;
- }
-
- *pSrcCvtChars = nSrcChars - (pEndSrcBuf-pSrcBuf);
- return (nDestBytes - (pEndDestBuf-pDestBuf));
-}
-
-/* ======================================================================= */
-
-rtl_TextToUnicodeConverter SAL_CALL rtl_createTextToUnicodeConverter( rtl_TextEncoding eTextEncoding )
-{
- const ImplTextEncodingData* pData = Impl_getTextEncodingData( eTextEncoding );
- if ( pData )
- return (rtl_TextToUnicodeConverter) &pData->maConverter;
- else
- return 0;
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL rtl_destroyTextToUnicodeConverter( rtl_TextToUnicodeConverter hContext )
-{
- (void) hContext; /* unused */
-}
-
-/* ----------------------------------------------------------------------- */
-
-rtl_TextToUnicodeContext SAL_CALL rtl_createTextToUnicodeContext( rtl_TextToUnicodeConverter hConverter )
-{
- const ImplTextConverter* pConverter = (const ImplTextConverter*)hConverter;
- if ( !pConverter )
- return 0;
- else if ( pConverter->mpCreateTextToUnicodeContext )
- return (rtl_TextToUnicodeContext)pConverter->mpCreateTextToUnicodeContext();
- else
- return (rtl_TextToUnicodeContext)1;
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL rtl_destroyTextToUnicodeContext( rtl_TextToUnicodeConverter hConverter,
- rtl_TextToUnicodeContext hContext )
-{
- const ImplTextConverter* pConverter = (const ImplTextConverter*)hConverter;
- if ( pConverter && hContext && pConverter->mpDestroyTextToUnicodeContext )
- pConverter->mpDestroyTextToUnicodeContext( (void*)hContext );
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL rtl_resetTextToUnicodeContext( rtl_TextToUnicodeConverter hConverter,
- rtl_TextToUnicodeContext hContext )
-{
- const ImplTextConverter* pConverter = (const ImplTextConverter*)hConverter;
- if ( pConverter && hContext && pConverter->mpResetTextToUnicodeContext )
- pConverter->mpResetTextToUnicodeContext( (void*)hContext );
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Size SAL_CALL rtl_convertTextToUnicode( rtl_TextToUnicodeConverter hConverter,
- rtl_TextToUnicodeContext hContext,
- const sal_Char* pSrcBuf, sal_Size nSrcBytes,
- sal_Unicode* pDestBuf, sal_Size nDestChars,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtBytes )
-{
- const ImplTextConverter* pConverter = (const ImplTextConverter*)hConverter;
-
- /* Only temporaer, because we don't want die, if we don't have a
- converter, because not all converters are implemented yet */
- if ( !pConverter )
- {
- return ImplDummyToUnicode( pSrcBuf, nSrcBytes,
- pDestBuf, nDestChars,
- nFlags, pInfo, pSrcCvtBytes );
- }
-
- return pConverter->mpConvertTextToUnicodeProc( pConverter->mpConvertData,
- (void*)hContext,
- pSrcBuf, nSrcBytes,
- pDestBuf, nDestChars,
- nFlags, pInfo,
- pSrcCvtBytes );
-}
-
-/* ======================================================================= */
-
-rtl_UnicodeToTextConverter SAL_CALL rtl_createUnicodeToTextConverter( rtl_TextEncoding eTextEncoding )
-{
- const ImplTextEncodingData* pData = Impl_getTextEncodingData( eTextEncoding );
- if ( pData )
- return (rtl_TextToUnicodeConverter) &pData->maConverter;
- else
- return 0;
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL rtl_destroyUnicodeToTextConverter( rtl_UnicodeToTextConverter hConverter )
-{
- (void) hConverter; /* unused */
-}
-
-/* ----------------------------------------------------------------------- */
-
-rtl_UnicodeToTextContext SAL_CALL rtl_createUnicodeToTextContext( rtl_UnicodeToTextConverter hConverter )
-{
- const ImplTextConverter* pConverter = (const ImplTextConverter*)hConverter;
- if ( !pConverter )
- return 0;
- else if ( pConverter->mpCreateUnicodeToTextContext )
- return (rtl_UnicodeToTextContext)pConverter->mpCreateUnicodeToTextContext();
- else
- return (rtl_UnicodeToTextContext)1;
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL rtl_destroyUnicodeToTextContext( rtl_UnicodeToTextConverter hConverter,
- rtl_UnicodeToTextContext hContext )
-{
- const ImplTextConverter* pConverter = (const ImplTextConverter*)hConverter;
- if ( pConverter && hContext && pConverter->mpDestroyUnicodeToTextContext )
- pConverter->mpDestroyUnicodeToTextContext( (void*)hContext );
-}
-
-/* ----------------------------------------------------------------------- */
-
-void SAL_CALL rtl_resetUnicodeToTextContext( rtl_UnicodeToTextConverter hConverter,
- rtl_UnicodeToTextContext hContext )
-{
- const ImplTextConverter* pConverter = (const ImplTextConverter*)hConverter;
- if ( pConverter && hContext && pConverter->mpResetUnicodeToTextContext )
- pConverter->mpResetUnicodeToTextContext( (void*)hContext );
-}
-
-/* ----------------------------------------------------------------------- */
-
-sal_Size SAL_CALL rtl_convertUnicodeToText( rtl_UnicodeToTextConverter hConverter,
- rtl_UnicodeToTextContext hContext,
- const sal_Unicode* pSrcBuf, sal_Size nSrcChars,
- sal_Char* pDestBuf, sal_Size nDestBytes,
- sal_uInt32 nFlags, sal_uInt32* pInfo,
- sal_Size* pSrcCvtChars )
-{
- const ImplTextConverter* pConverter = (const ImplTextConverter*)hConverter;
-
- /* Only temporaer, because we don't want die, if we don't have a
- converter, because not all converters are implemented yet */
- if ( !pConverter )
- {
- return ImplUnicodeToDummy( pSrcBuf, nSrcChars,
- pDestBuf, nDestBytes,
- nFlags, pInfo, pSrcCvtChars );
- }
-
- return pConverter->mpConvertUnicodeToTextProc( pConverter->mpConvertData,
- (void*)hContext,
- pSrcBuf, nSrcChars,
- pDestBuf, nDestBytes,
- nFlags, pInfo,
- pSrcCvtChars );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/textenc.cxx b/sal/textenc/textenc.cxx
deleted file mode 100644
index 61a2b1a04..000000000
--- a/sal/textenc/textenc.cxx
+++ /dev/null
@@ -1,167 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-/* TODO! This file should not be called textenc.c, because it is not the
- implementation of rtl/textenc.h. Rather, it should be called
- gettextencodingdata.c. */
-#include "gettextencodingdata.h"
-#include "tenchelp.h"
-#include "rtl/textenc.h"
-#include <sal/macros.h>
-#include "rtl/ustring.hxx"
-#include "osl/module.h"
-
-#ifndef INCLUDED_STDDEF_H
-#include <stddef.h>
-#define INCLUDED_STDDEF_H
-#endif
-
-#define NOTABUNI_START 0xFF
-#define NOTABUNI_END 0x00
-
-#define NOTABCHAR_START 0xFFFF
-#define NOTABCHAR_END 0x0000
-
-#define SAME8090UNI_START 0x80
-#define SAME8090UNI_END 0x9F
-static sal_uInt16 const aImpl8090SameToUniTab[SAME8090UNI_END
- - SAME8090UNI_START
- + 1]
-= { 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, /* 0x80 */
- 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
- 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, /* 0x90 */
- 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F };
-
-#define SAME8090CHAR_START 0x0080
-#define SAME8090CHAR_END 0x009F
-static sal_uChar const aImpl8090SameToCharTab[SAME8090CHAR_END
- - SAME8090CHAR_START
- + 1]
- = { 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x0080 */
- 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
- 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x0090 */
- 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F };
-
-#define SAMEA0FFCHAR_START 0x00A0
-#define SAMEA0FFCHAR_END 0x00FF
-static sal_uChar const aImplA0FFSameToCharTab[SAMEA0FFCHAR_END
- - SAMEA0FFCHAR_START
- + 1]
- = { 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x00A0 */
- 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x00B0 */
- 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x00C0 */
- 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x00D0 */
- 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x00E0 */
- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x00F0 */
- 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF };
-
-static sal_uInt16 const aImplDoubleByteIdentifierTab[1] = { 0 };
-
-#include "tcvtest1.tab"
-#include "tcvtlat1.tab"
-#include "tcvtuni1.tab"
-
-extern "C" {
- typedef ImplTextEncodingData const *(*TextEncodingFunction) (rtl_TextEncoding nEncoding);
-};
-
-// Yes - we should use the unpleasant to use templatized
-// sal:: doublecheckfoo thing here.
-#ifndef IOS
-static TextEncodingFunction pTables;
-#else
-extern "C" ImplTextEncodingData *tables_Impl_getTextEncodingData(rtl_TextEncoding);
-#define pTables tables_Impl_getTextEncodingData
-#endif
-
-#define DOSTRING( x ) #x
-#define STRING( x ) DOSTRING( x )
-
-ImplTextEncodingData const *
-Impl_getTextEncodingData(rtl_TextEncoding nEncoding) SAL_THROW_EXTERN_C()
-{
- switch(nEncoding)
- {
- case RTL_TEXTENCODING_ASCII_US:
- return &aImplUSASCIITextEncodingData; break;
- case RTL_TEXTENCODING_MS_1252:
- return &aImplMS1252TextEncodingData; break;
- case RTL_TEXTENCODING_UTF8:
- return &aImplUTF8TextEncodingData; break;
- case RTL_TEXTENCODING_ISO_8859_1:
- return &aImplISO88591TextEncodingData; break;
-
-#ifndef TOOLS_STRING_MISSUSE
-// ----------------------------------------------
-// These are here temporarily since they are used in error
-// all over the place
-// ----------------------------------------------
- case RTL_TEXTENCODING_IBM_850:
- return &aImplIBM850TextEncodingData; break;
- case RTL_TEXTENCODING_IBM_857:
- return &aImplIBM857TextEncodingData; break;
- case RTL_TEXTENCODING_IBM_860:
- return &aImplIBM860TextEncodingData; break;
- case RTL_TEXTENCODING_IBM_861:
- return &aImplIBM861TextEncodingData; break;
- case RTL_TEXTENCODING_IBM_863:
- return &aImplIBM863TextEncodingData; break;
-// ----------------------------------------------
-#endif
- default:
-#ifndef IOS
- if (!pTables)
- {
- static char const pName[] = STRING(PLUGIN_NAME);
- oslModule aModule = osl_loadModuleAscii(pName, SAL_LOADMODULE_DEFAULT);
-
- if(aModule)
- {
- static char const pSymbol[] = "Impl_getTextEncodingData";
- pTables = (TextEncodingFunction)osl_getAsciiFunctionSymbol(aModule, pSymbol);
- }
- }
-#endif
- if (pTables)
- return pTables(nEncoding);
-// else
-// fprintf (stderr, "missing text encoding library for %d\n", nEncoding);
- break;
- }
- return NULL;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/unichars.c b/sal/textenc/unichars.c
deleted file mode 100644
index e8b8aec23..000000000
--- a/sal/textenc/unichars.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "unichars.h"
-#include "osl/diagnose.h"
-#include "sal/types.h"
-
-int ImplIsNoncharacter(sal_uInt32 nUtf32)
-{
- /* All code points that are noncharacters, as of Unicode 3.1.1. */
- return (nUtf32 >= 0xFDD0 && nUtf32 <= 0xFDEF)
- || (nUtf32 & 0xFFFF) >= 0xFFFE
- || nUtf32 > 0x10FFFF;
-}
-
-int ImplIsControlOrFormat(sal_uInt32 nUtf32)
-{
- /* All code points of <http://www.unicode.org/Public/UNIDATA/
- UnicodeData.txt>, Version 3.1.1, that have a General Category of Cc
- (Other, Control) or Cf (Other, Format).
- */
- return nUtf32 <= 0x001F
- || (nUtf32 >= 0x007F && nUtf32 <= 0x009F)
- || nUtf32 == 0x070F /* SYRIAC ABBREVIATION MARK */
- || nUtf32 == 0x180B /* MONGOLIAN FREE VARIATION SELECTOR ONE */
- || nUtf32 == 0x180C /* MONGOLIAN FREE VARIATION SELECTOR TWO */
- || nUtf32 == 0x180D /* MONGOLIAN FREE VARIATION SELECTOR THREE */
- || nUtf32 == 0x180E /* MONGOLIAN VOWEL SEPARATOR */
- || nUtf32 == 0x200C /* ZERO WIDTH NON-JOINER */
- || nUtf32 == 0x200D /* ZERO WIDTH JOINER */
- || nUtf32 == 0x200E /* LEFT-TO-RIGHT MARK */
- || nUtf32 == 0x200F /* RIGHT-TO-LEFT MARK */
- || nUtf32 == 0x202A /* LEFT-TO-RIGHT EMBEDDING */
- || nUtf32 == 0x202B /* RIGHT-TO-LEFT EMBEDDING */
- || nUtf32 == 0x202C /* POP DIRECTIONAL FORMATTING */
- || nUtf32 == 0x202D /* LEFT-TO-RIGHT OVERRIDE */
- || nUtf32 == 0x202E /* RIGHT-TO-LEFT OVERRIDE */
- || nUtf32 == 0x206A /* INHIBIT SYMMETRIC SWAPPING */
- || nUtf32 == 0x206B /* ACTIVATE SYMMETRIC SWAPPING */
- || nUtf32 == 0x206C /* INHIBIT ARABIC FORM SHAPING */
- || nUtf32 == 0x206D /* ACTIVATE ARABIC FORM SHAPING */
- || nUtf32 == 0x206E /* NATIONAL DIGIT SHAPES */
- || nUtf32 == 0x206F /* NOMINAL DIGIT SHAPES */
- || nUtf32 == 0xFEFF /* ZERO WIDTH NO-BREAK SPACE */
- || nUtf32 == 0xFFF9 /* INTERLINEAR ANNOTATION ANCHOR */
- || nUtf32 == 0xFFFA /* INTERLINEAR ANNOTATION SEPARATOR */
- || nUtf32 == 0xFFFB /* INTERLINEAR ANNOTATION TERMINATOR */
- || nUtf32 == 0x1D173 /* MUSICAL SYMBOL BEGIN BEAM */
- || nUtf32 == 0x1D174 /* MUSICAL SYMBOL END BEAM */
- || nUtf32 == 0x1D175 /* MUSICAL SYMBOL BEGIN TIE */
- || nUtf32 == 0x1D176 /* MUSICAL SYMBOL END TIE */
- || nUtf32 == 0x1D177 /* MUSICAL SYMBOL BEGIN SLUR */
- || nUtf32 == 0x1D178 /* MUSICAL SYMBOL END SLUR */
- || nUtf32 == 0x1D179 /* MUSICAL SYMBOL BEGIN PHRASE */
- || nUtf32 == 0x1D17A /* MUSICAL SYMBOL END PHRASE */
- || nUtf32 == 0xE0001 /* LANGUAGE TAG */
- || (nUtf32 >= 0xE0020 && nUtf32 <= 0xE007F);
-}
-
-int ImplIsHighSurrogate(sal_uInt32 nUtf32)
-{
- /* All code points that are high-surrogates, as of Unicode 3.1.1. */
- return nUtf32 >= 0xD800 && nUtf32 <= 0xDBFF;
-}
-
-int ImplIsLowSurrogate(sal_uInt32 nUtf32)
-{
- /* All code points that are low-surrogates, as of Unicode 3.1.1. */
- return nUtf32 >= 0xDC00 && nUtf32 <= 0xDFFF;
-}
-
-int ImplIsPrivateUse(sal_uInt32 nUtf32)
-{
- /* All code points of <http://www.unicode.org/Public/UNIDATA/
- UnicodeData.txt>, Version 3.1.1, that have a General Category of Co
- (Other, Private Use).
- */
- return (nUtf32 >= 0xE000 && nUtf32 <= 0xF8FF)
- || (nUtf32 >= 0xF0000 && nUtf32 <= 0xFFFFD)
- || (nUtf32 >= 0x100000 && nUtf32 <= 0x10FFFD);
-}
-
-int ImplIsZeroWidth(sal_uInt32 nUtf32)
-{
- /* All code points of <http://www.unicode.org/Public/UNIDATA/
- UnicodeData.txt>, Version 3.1.1, that have "ZERO WIDTH" in their
- Character name.
- */
- return nUtf32 == 0x200B /* ZERO WIDTH SPACE */
- || nUtf32 == 0x200C /* ZERO WIDTH NON-JOINER */
- || nUtf32 == 0x200D /* ZERO WIDTH JOINER */
- || nUtf32 == 0xFEFF; /* ZEOR WIDTH NO-BREAK SPACE */
-}
-
-sal_uInt32 ImplGetHighSurrogate(sal_uInt32 nUtf32)
-{
- OSL_ENSURE(nUtf32 >= 0x10000, "specification violation");
- return ((nUtf32 - 0x10000) >> 10) | 0xD800;
-}
-
-sal_uInt32 ImplGetLowSurrogate(sal_uInt32 nUtf32)
-{
- OSL_ENSURE(nUtf32 >= 0x10000, "specification violation");
- return ((nUtf32 - 0x10000) & 0x3FF) | 0xDC00;
-}
-
-sal_uInt32 ImplCombineSurrogates(sal_uInt32 nHigh, sal_uInt32 nLow)
-{
- OSL_ENSURE(ImplIsHighSurrogate(nHigh) && ImplIsLowSurrogate(nLow),
- "specification violation");
- return (((nHigh & 0x3FF) << 10) | (nLow & 0x3FF)) + 0x10000;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/textenc/unichars.h b/sal/textenc/unichars.h
deleted file mode 100644
index 856ae585f..000000000
--- a/sal/textenc/unichars.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_RTL_TEXTENC_UNICHARS_H
-#define INCLUDED_RTL_TEXTENC_UNICHARS_H
-
-#include "sal/types.h"
-
-#if defined __cplusplus
-extern "C" {
-#endif /* __cpluscplus */
-
-#define RTL_TEXTENC_UNICODE_REPLACEMENT_CHARACTER 0xFFFD
-
-int ImplIsNoncharacter(sal_uInt32 nUtf32) SAL_THROW_EXTERN_C();
-
-int ImplIsControlOrFormat(sal_uInt32 nUtf32) SAL_THROW_EXTERN_C();
-
-int ImplIsHighSurrogate(sal_uInt32 nUtf32) SAL_THROW_EXTERN_C();
-
-int ImplIsLowSurrogate(sal_uInt32 nUtf32) SAL_THROW_EXTERN_C();
-
-int ImplIsPrivateUse(sal_uInt32 nUtf32) SAL_THROW_EXTERN_C();
-
-int ImplIsZeroWidth(sal_uInt32 nUtf32) SAL_THROW_EXTERN_C();
-
-sal_uInt32 ImplGetHighSurrogate(sal_uInt32 nUtf32) SAL_THROW_EXTERN_C();
-
-sal_uInt32 ImplGetLowSurrogate(sal_uInt32 nUtf32) SAL_THROW_EXTERN_C();
-
-sal_uInt32 ImplCombineSurrogates(sal_uInt32 nHigh, sal_uInt32 nLow)
- SAL_THROW_EXTERN_C();
-
-#if defined __cplusplus
-}
-#endif /* __cpluscplus */
-
-#endif /* INCLUDED_RTL_TEXTENC_UNICHARS_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/typesconfig/makefile.mk b/sal/typesconfig/makefile.mk
deleted file mode 100644
index 662bd7d7e..000000000
--- a/sal/typesconfig/makefile.mk
+++ /dev/null
@@ -1,91 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..
-
-PRJNAME=sal
-TARGET=typesconfig
-TARGETTYPE=CUI
-
-LIBSALCPPRT=$(0)
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-# --- Files --------------------------------------------------------
-
-.IF "$(CROSS_COMPILING)"!="YES" && "$(COM)"!="MSC"
-
-APP1TARGET= $(TARGET)
-APP1OBJS= $(OBJ)$/typesconfig.obj
-APP1STDLIBS=
-APP1DEF=
-
-.ENDIF
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
-.IF "$(L10N-framework)"==""
-.IF "$(COM)"!="MSC"
-ALLTAR : $(INCCOM)$/sal$/typesizes.h
-.ENDIF
-.ENDIF # "$(L10N-framework)"==""
-
-.IF "$(CROSS_COMPILING)"!="YES"
-
-$(INCCOM)$/sal$/typesizes.h : $(BIN)$/$(TARGET)
- -$(MKDIR) $(INCCOM)$/sal
- $(AUGMENT_LIBRARY_PATH) $(BIN)$/$(TARGET) $@
-
-.ELSE
-
-$(INCCOM)$/sal$/typesizes.h :
- -$(MKDIRHIER) $(INCCOM)$/sal
- echo '/* This file is autogenerated from configure script data */' >$@
- echo >>$@
- echo "#define SAL_TYPES_ALIGNMENT2 $(ALIGNOF_SHORT)" >>$@
- echo "#define SAL_TYPES_ALIGNMENT4 $(ALIGNOF_INT)" >>$@
-.IF "$(SIZEOF_LONG)"=="8"
- echo "#define SAL_TYPES_ALIGNMENT8 $(ALIGNOF_LONG)" >>$@
-.ELIF "$(SIZEOF_DOUBLE)"=="8"
- echo "#define SAL_TYPES_ALIGNMENT8 $(ALIGNOF_DOUBLE)" >>$@
-.ELSE
- echo "#error alignment of some 8-byte type unknown" >>$@
-.ENDIF
- echo "#define SAL_TYPES_SIZEOFSHORT $(SIZEOF_SHORT)" >>$@
- echo "#define SAL_TYPES_SIZEOFINT $(SIZEOF_INT)" >>$@
- echo "#define SAL_TYPES_SIZEOFLONG $(SIZEOF_LONG)" >>$@
- echo "#define SAL_TYPES_SIZEOFLONGLONG $(SIZEOF_LONGLONG)" >>$@
- echo "#define SAL_TYPES_SIZEOFPOINTER $(SIZEOF_POINTER)" >>$@
-
-.ENDIF
diff --git a/sal/typesconfig/typesconfig.c b/sal/typesconfig/typesconfig.c
deleted file mode 100644
index 0531d35cb..000000000
--- a/sal/typesconfig/typesconfig.c
+++ /dev/null
@@ -1,454 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-
-#include <unistd.h>
-#include <sys/types.h>
-
-#include <stdarg.h>
-
-#include <signal.h>
-#include <setjmp.h>
-
-#define printTypeSize(Type,Name) printf( "sizeof(%s)\t\t= %d\n", Name, (int) sizeof (Type) )
-
-#define isSignedType(Type) (((Type)-1) < 0)
-#define printTypeSign(Type,Name) printf( "%s\t\t= %s %s\n", Name, ( isSignedType(Type) ? "signed" : "unsigned" ), Name )
-
-
-/*************************************************************************
-|*
-|* IsBigEndian()
-|*
-|* Beschreibung True, wenn CPU BigEndian ist
-|*
-*************************************************************************/
-int IsBigEndian()
-{
- long l = 1;
- return ! *(char*)&l;
-}
-
-/*************************************************************************
-|*
-|* Typdeclarations for memory access test functions
-|*
-*************************************************************************/
-typedef enum { t_char, t_short, t_int, t_long, t_double } Type;
-typedef int (*TestFunc)( Type, void* );
-
-
-/*************************************************************************
-|*
-|* PrintArgs()
-|*
-|* Beschreibung Testfunktion fuer variable Parameter
-|*
-*************************************************************************/
-void PrintArgs( int p, ... )
-{
- int value;
- va_list ap;
-
- va_start( ap, p );
-
- printf( "value = %d", p );
-
- while ( ( value = va_arg(ap, int) ) != 0 )
- printf( " %d", value );
-
- printf( "\n" );
- va_end(ap);
-}
-
-/*************************************************************************
-|*
-|* SignalHdl()
-|*
-|* Beschreibung faengt SIGBUS und SIGSEGV in check() ab
-|*
-*************************************************************************/
-
-static sigjmp_buf jmpbuf;
-static volatile sig_atomic_t hit;
-
-void SignalHdl( int sig )
-{
- (void) sig; // ignored
- hit = 1;
- siglongjmp(jmpbuf, 0);
-}
-
-/*************************************************************************
-|*
-|* check()
-|*
-|* Beschreibung Testet MemoryZugriff (read/write)
-|*
-*************************************************************************/
-int check( TestFunc func, Type eT, void* p )
-{
- hit = 0;
- if (sigsetjmp(jmpbuf, 1) == 0) {
- struct sigaction sa;
- sa.sa_handler = SignalHdl;
- sigemptyset(&sa.sa_mask);
- sa.sa_flags = 0;
- if (sigaction(SIGBUS, &sa, NULL) != 0 ||
- sigaction(SIGSEGV, &sa, NULL) != 0)
- {
- abort();
- }
- func(eT, p);
- sa.sa_handler = SIG_DFL;
- if (sigaction(SIGBUS, &sa, NULL) != 0 ||
- sigaction(SIGSEGV, &sa, NULL) != 0)
- {
- abort();
- }
- }
- return hit ? -1 : 0;
-}
-
-/*************************************************************************
-|*
-|* GetAtAddress()
-|*
-|* Beschreibung memory read access
-|*
-*************************************************************************/
-#if defined(IA64) || defined(ARM32) || defined(HPPA) || defined(AXP)
-
-int forceerror()
-{
-#if defined(ARM32)
-// workaround for qemu-user
- hit = 1;
-#else
- raise (SIGBUS);
-#endif
- return 1;
-}
-
-int GetAtAddress( Type eT, void* p )
-{
- switch ( eT )
- {
- case t_char: return *((char*)p);
- case t_short: if ((long)p % sizeof(short)) return forceerror(); else return *((short*)p);
- case t_int: if ((long)p % sizeof(int)) return forceerror(); else return *((int*)p);
- case t_long: if ((long)p % sizeof(long)) return forceerror(); else return *((long*)p);
- case t_double: if ((long)p % sizeof(double)) return forceerror(); else return *((double*)p);
- }
- abort();
-}
-
-#else
-static int dummy(void* unused);
-
-int GetAtAddress( Type eT, void* p )
-{
- switch ( eT )
- {
- case t_char: { char x = *(char*)p; return dummy(&x); }
- case t_short: { short x = *(short*)p; return dummy(&x); }
- case t_int: { int x = *(int*)p; return dummy(&x); }
- case t_long: { long x = *(long*)p; return dummy(&x); }
- case t_double: { double x = *(double*)p; return dummy(&x); }
- }
- abort();
-}
-
-int dummy(void* unused)
-{
- (void)unused;
- return 0;
-}
-
-#endif
-/*************************************************************************
-|*
-|* SetAtAddress()
-|*
-|* Beschreibung memory write access
-|*
-*************************************************************************/
-int SetAtAddress( Type eT, void* p )
-{
- switch ( eT )
- {
- case t_char: return *((char*)p) = 0;
- case t_short: return *((short*)p) = 0;
- case t_int: return *((int*)p) = 0;
- case t_long: return *((long*)p) = 0;
- case t_double: return *((double*)p)= 0;
- }
- abort();
-}
-
-char* TypeName( Type eT )
-{
- switch ( eT )
- {
- case t_char: return "char";
- case t_short: return "short";
- case t_int: return "int";
- case t_long: return "long";
- case t_double: return "double";
- }
- abort();
-}
-
-/*************************************************************************
-|*
-|* Check(Get|Set)Access()
-|*
-|* Beschreibung Testet MemoryZugriff (read/write)
-|* Zugriffsverletzungen werden abgefangen
-|*
-*************************************************************************/
-int CheckGetAccess( Type eT, void* p )
-{
- int b;
- b = -1 != check( (TestFunc)GetAtAddress, eT, p );
-#if OSL_DEBUG_LEVEL > 1
- fprintf( stderr,
- "%s read %s at %p\n",
- (b? "can" : "can not" ), TypeName(eT), p );
-#endif
- return b;
-}
-int CheckSetAccess( Type eT, void* p )
-{
- int b;
-
- b = -1 != check( (TestFunc)SetAtAddress, eT, p );
-#if OSL_DEBUG_LEVEL > 1
- fprintf( stderr,
- "%s write %s at %p\n",
- (b? "can" : "can not" ), TypeName(eT), p );
-#endif
- return b;
-}
-
-/*************************************************************************
-|*
-|* GetAlignment()
-|*
-|* Beschreibung Bestimmt das Alignment verschiedener Typen
-|*
-*************************************************************************/
-int GetAlignment( Type eT )
-{
- char a[ 16*8 ];
- long p = (long)(void*)a;
- int i;
-
- /* clear a[...] to set legal value for double access */
- for ( i = 0; i < 16*8; i++ )
- a[i] = 0;
-
- p = ( p + 0xF ) & ~0xF;
- for ( i = 1; i < 16; i++ )
- if ( CheckGetAccess( eT, (void*)(p+i) ) )
- return i;
- return 0;
-}
-
-/*************************************************************************
-|*
-|* struct Description
-|*
-|* Beschreibung Beschreibt die Parameter der Architektur
-|*
-*************************************************************************/
-struct Description
-{
- int bBigEndian;
- int nAlignment[3]; /* 2,4,8 */
-};
-
-/*************************************************************************
-|*
-|* Description_Ctor()
-|*
-|* Beschreibung Bestimmt die Parameter der Architektur
-|*
-*************************************************************************/
-void Description_Ctor( struct Description* pThis )
-{
- pThis->bBigEndian = IsBigEndian();
-
- if ( sizeof(short) != 2 )
- abort();
- pThis->nAlignment[0] = GetAlignment( t_short );
- if ( sizeof(int) != 4 )
- abort();
- pThis->nAlignment[1] = GetAlignment( t_int );
-
- if ( sizeof(long) == 8 )
- pThis->nAlignment[2] = GetAlignment( t_long );
- else if ( sizeof(double) == 8 )
- pThis->nAlignment[2] = GetAlignment( t_double );
- else
- abort();
-}
-
-/*************************************************************************
-|*
-|* Description_Print()
-|*
-|* Beschreibung Schreibt die Parameter der Architektur als Header
-|*
-*************************************************************************/
-void Description_Print( struct Description* pThis, char* name )
-{
- int i;
- FILE* f = fopen( name, "w" );
- if( ! f ) {
- fprintf( stderr, "Unable to open file %s: %s\n", name, strerror( errno ) );
- exit( 99 );
- }
- fprintf( f, "/* This file is autogenerated from the 'typesconfig' program\n * in the sal module\n */\n\n" );
-
-/* Disabled for now in preference to big/little endian defines in <osl/endian.h> fa (2004-03-15) */
-/* fprintf( f, "#define SAL_TYPES_%s\n", pThis->bBigEndian ? "BIGENDIAN" : "LITTLEENDIAN" ); */
-
- for ( i = 0; i < 3; i++ )
- fprintf( f, "#define SAL_TYPES_ALIGNMENT%d\t%d\n", 1 << (i+1), pThis->nAlignment[i] );
- fprintf( f, "#define SAL_TYPES_SIZEOFSHORT\t%d\n", (int) sizeof( short ) );
- fprintf( f, "#define SAL_TYPES_SIZEOFINT\t%d\n", (int) sizeof( int ) );
- fprintf( f, "#define SAL_TYPES_SIZEOFLONG\t%d\n", (int) sizeof( long ) );
- fprintf( f, "#define SAL_TYPES_SIZEOFLONGLONG\t%d\n", (int) sizeof( long long ) );
- fprintf( f, "#define SAL_TYPES_SIZEOFPOINTER\t%d\n", (int) sizeof( void* ) );
-
-/* Disabled for now, becuase OOo code assumes sizeof(double) == 8 and this is not
- * likely to change any time soon. fa (2004-03-15)
- */
-/* fprintf( f, "#define SAL_TYPES_SIZEOFDOUBLE\t%d\n", sizeof( double ) );*/
-
- fclose( f );
-}
-
-/*************************************************************************
-|*
-|* InfoMemoryAccess()
-|*
-|* Beschreibung Informeller Bytezugriffstest
-|*
-*************************************************************************/
-void InfoMemoryAccess( char* p )
-{
- if ( CheckGetAccess( t_char, p ) )
- printf( "can read address %p\n", p );
- else
- printf( "cannot read address %p\n", p );
-
- if ( CheckSetAccess( t_char, p ) )
- printf( "can write address %p\n", p );
- else
- printf( "cannot write address %p\n", p );
-}
-
-/*************************************************************************
-|*
-|* InfoMemoryTypeAccess()
-|*
-|* Beschreibung Informeller Zugriffstest verschiedener Typen
-|*
-*************************************************************************/
-void InfoMemoryTypeAccess( Type eT )
-{
- char a[64];
- int i;
-
- /* clear a[...] to set legal value for double access */
- for ( i = 0; i < 64; i++ )
- a[i] = 0;
-
- for ( i = 56; i >= 7; i >>= 1 )
- {
- if ( CheckGetAccess(eT, (long*)&a[i]) )
- printf( "Access %s on %i-Aligned Address : OK\n", TypeName(eT), i / 7 );
- else
- printf( "Access %s on %i-Aligned Address : ERROR\n", TypeName(eT), i / 7 );
- }
-}
-/************************************************************************
- *
- * Use C code to determine the characteristics of the building platform.
- *
- ************************************************************************/
-int main( int argc, char* argv[] )
-{
- printTypeSign( char, "char" );
- printTypeSign( short, "short" );
- printTypeSign( int, "int" );
- printTypeSign( long, "long" );
- printTypeSign( long long, "long long" );
-
- printTypeSize( short, "short" );
- printTypeSize( int, "int" );
- printTypeSize( long, "long" );
- printTypeSize( long long, "long long" );
- printTypeSize( float, "float" );
- printTypeSize( double, "double" );
- printTypeSize( void *, "void *" );
-
- if ( IsBigEndian() )
- printf( "BIGENDIAN (Sparc, RS6000, IP22, IP32, PowerPC(BE))\n" );
- else
- printf( "LITTLEENDIAN (Intel, x86-64, PowerPC(LE))\n" );
-
- /* PrintArgs( 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 ); */
-
- if ( argc > 1 )
- {
- struct Description description;
- Description_Ctor( &description );
- Description_Print( &description, argv[1] );
- }
- {
- char* p = NULL;
- InfoMemoryAccess( p );
- p = (char*)&p;
- InfoMemoryAccess( p );
- InfoMemoryTypeAccess( t_short );
- InfoMemoryTypeAccess( t_int );
- InfoMemoryTypeAccess( t_long );
- InfoMemoryTypeAccess( t_double );
- }
-
- exit( 0 );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/unosdk.mk b/sal/unosdk.mk
deleted file mode 100644
index 765ecfc3f..000000000
--- a/sal/unosdk.mk
+++ /dev/null
@@ -1,47 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PPATH=inc
-
-FILES= \
- $(PPATH)\rtl\wstring \
- $(PPATH)\rtl\wstring.h \
- $(PPATH)\rtl\wstring.hxx \
- $(PPATH)\rtl\string.h \
- $(PPATH)\rtl\string.hxx \
- $(PPATH)\rtl\wstrbuf.hxx \
- $(PPATH)\rtl\strbuf.hxx \
- $(PPATH)\rtl\locale.h \
- $(PPATH)\rtl\locale.hxx \
- $(PPATH)\rtl\char.h \
- $(PPATH)\rtl\char.hxx \
- $(PPATH)\rtl\macros.hxx \
- $(PPATH)\rtl\object.h \
- $(PPATH)\rtl\rb.h
-
-unosdk: $(FILES)
- docpp -H -m -f -u -d ..\..\doc\sal\rtl $(FILES)
diff --git a/sal/util/makefile.mk b/sal/util/makefile.mk
deleted file mode 100644
index 3a3a16448..000000000
--- a/sal/util/makefile.mk
+++ /dev/null
@@ -1,183 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..
-
-PRJNAME=sal
-TARGET=sal
-
-NO_BSYMBOLIC=TRUE
-NO_DEFAULT_STL=TRUE
-
-USE_LDUMP2=TRUE
-USE_DEFFILE=TRUE
-
-.IF "$(GUI)"=="UNX"
-TARGETTYPE=CUI
-.ENDIF # UNX
-
-UNIXVERSIONNAMES=UDK
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-.IF "$(depend)" == ""
-
-# --- Files --------------------------------------------------------
-
-# disable check for PIC code as it would complain about
-# hand coded assembler
-CHECKFORPIC=
-
-.IF "$(header)" == ""
-
-LIB1TARGET=$(SLB)$/$(TARGET).lib
-LIB1FILES= \
- $(SLB)$/oslall.lib \
- $(SLB)$/cpposl.lib \
- $(SLB)$/cpprtl.lib \
- $(SLB)$/textenc.lib
-
-.IF "$(COM)" == "MSC"
-SHL1TARGET= $(TARGET)
-SHL1IMPLIB= i$(TARGET)
-.ELSE
-SHL1TARGET= uno_$(TARGET)
-SHL1IMPLIB= uno_$(TARGET)
-.ENDIF
-SHL1VERSIONMAP= $(TARGET).map
-SHL1RPATH=URELIB
-
-.IF "$(GUI)"=="WNT"
-
-.IF "$(COM)"=="GCC"
-UWINAPILIB= -luwinapi
-.ELSE
-UWINAPILIB= $(LB)$/uwinapi.lib
-.ENDIF
-
-SHL1STDLIBS= \
- $(UWINAPILIB)\
- $(ADVAPI32LIB)\
- $(WS2_32LIB)\
- $(MPRLIB)\
- $(SHELL32LIB)\
- $(COMDLG32LIB)\
- $(USER32LIB)\
- $(OLE32LIB)
-.IF "$(COM)"=="GCC"
-MINGWSSTDOBJ=
-MINGWSSTDENDOBJ=
-.ENDIF
-.ENDIF # WNT
-
-.IF "$(GUI)"=="UNX"
-.IF "$(OS)"=="SOLARIS"
-# libposix4.so (SunOS 5.6) <-> librt.so (SunOS >= 5.7)
-SHL1STDLIBS= -Bdynamic -ldl -lpthread -lposix4 -lsocket -lnsl
-.IF "$(COM)" == "C50"
-SHL1STDLIBS+= -z allextract -staticlib=Crun -z defaultextract
-.ENDIF # C50
-.ENDIF # SOLARIS
-.ENDIF # UNX
-
-.IF "$(OS)"=="MACOSX"
-SHL1STDLIBS+=-framework CoreFoundation -framework Carbon
-.ENDIF
-
-SHL1LIBS+=$(SLB)$/$(TARGET).lib
-
-.IF "$(linkinc)" != ""
-SHL11FILE=$(MISC)$/sal.slo
-.ELSE
-.IF "$(GUI)"=="UNX"
-SHL1OBJS=
-.ELSE
-.IF "$(GUI)$(COM)"!="WNTGCC"
-SHL1OBJS= \
- $(SLO)$/dllentry.obj
-.ENDIF # WNTGCC
-.ENDIF # UNX
-.ENDIF # lincinc
-
-SHL1DEPN=
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-DEF1NAME= $(SHL1TARGET)
-
-# --- Coverage -----------------------------------------------------
-# LLA: 20040304 The follows lines are an additional which is only need if we run
-# coverage tests. For normal test runs this feature is not used.
-# For more information about coverage tests see:
-# http://gcc.gnu.org/onlinedocs/gcc-3.0/gcc_8.html
-#
-# Why this additional?
-# Anybody has decide to link sal with g++ instead of gcc.
-#
-.IF "$(TESTCOVERAGE)"!=""
-.IF "$(GUI)"=="UNX"
-.IF "$(COM)"=="GCC"
-.IF "$(OS)"=="LINUX"
-SHL1STDLIBS+=-lgcc
-.ENDIF
-.ENDIF
-.ENDIF
-.ENDIF
-
-SHL4DEPN+=$(SHL1TARGETN)
-SHL4LIBS=$(SLB)$/textenc_tables.lib
-SHL4TARGET=sal_textenc
-SHL4STDLIBS=$(SALLIB)
-SHL4VERSIONMAP=saltextenc.map
-
-SHL4DEF=$(MISC)$/$(SHL4TARGET).def
-DEF4NAME=$(SHL4TARGET)
-
-# --- Targets ------------------------------------------------------
-
-.ENDIF # $(header) != ""
-.ENDIF # $(depend) != ""
-
-.INCLUDE : target.mk
-
-.IF "$(SHL1TARGETN)" != ""
-$(SHL1TARGETN) : $(OUT)$/inc$/udkversion.h
-.ENDIF # "$(SHL1TARGETN)" != ""
-
-$(OUT)$/inc$/udkversion.h:
- echo '#ifndef _SAL_UDKVERSION_H_' > $@
- echo '#define _SAL_UDKVERSION_H_' >> $@
- echo '' >> $@
- echo '#define SAL_UDK_MAJOR "$(UDK_MAJOR)"' >> $@
- echo '#define SAL_UDK_MINOR "$(UDK_MINOR)"' >> $@
- echo '#define SAL_UDK_MICRO "$(UDK_MICRO)"' >> $@
- echo '' >> $@
- echo '#endif' >> $@
diff --git a/sal/util/sal.map b/sal/util/sal.map
deleted file mode 100755
index 152b02349..000000000
--- a/sal/util/sal.map
+++ /dev/null
@@ -1,627 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- osl_acceptConnectionOnSocket;
- osl_acceptPipe;
- osl_acquireSocket;
- osl_acquirePipe;
- osl_acquireMutex;
- osl_acquireSemaphore;
- osl_addSignalHandler;
- osl_addToSocketSet;
- osl_assertFailedLine;
- osl_bindAddrToSocket;
- osl_breakDebug;
- osl_checkCondition;
- osl_clearSocketSet;
- osl_closeDirectory;
- osl_closePipe;
- osl_closeProfile;
- osl_connectSocketTo;
- osl_copyHostAddr;
- osl_copySocketAddr;
- osl_createCondition;
- osl_createEmptySocketAddr;
- osl_createHostAddr;
- osl_createHostAddrByAddr;
- osl_createHostAddrByName;
- osl_createInetSocketAddr;
- osl_createMutex;
- osl_createPipe;
- osl_createSemaphore;
- osl_createSocket;
- osl_createSocketSet;
- osl_createSuspendedThread;
- osl_createThread;
- osl_createThreadKey;
- osl_decrementInterlockedCount;
- osl_demultiplexSocketEvents;
- osl_destroyCondition;
- osl_destroyHostAddr;
- osl_destroyMutex;
- osl_destroySemaphore;
- osl_destroySocketAddr;
- osl_destroySocketSet;
- osl_destroyThread;
- osl_destroyThreadKey;
- osl_enableNonBlockingMode;
- osl_executeProcess;
- osl_executeProcess_WithRedirectedIO;
- osl_flushProfile;
- osl_freeProcessHandle;
- osl_freeSecurityHandle;
- osl_getAddrOfSocketAddr;
- osl_getCommandArg;
- osl_getCommandArgCount;
- osl_getConfigDir;
- osl_getCurrentSecurity;
- osl_getDirectoryItem;
- osl_getDottedInetAddrOfSocketAddr;
- osl_getEnvironment;
- osl_getEthernetAddress;
- osl_getExecutableFile;
- osl_getFamilyOfSocketAddr;
- osl_getFileStatus;
- osl_getFileURLFromSystemPath;
- osl_getGlobalMutex;
- osl_getHomeDir;
- osl_getHostnameOfHostAddr;
- osl_getHostnameOfSocketAddr;
- osl_getInetPortOfSocketAddr;
- osl_getLastPipeError;
- osl_getLastSocketError;
- osl_getLastSocketErrorDescription;
- osl_getLocalAddrOfSocket;
- osl_getLocalHostname;
- osl_getModuleURLFromAddress;
- osl_getNextDirectoryItem;
- osl_getPeerAddrOfSocket;
- osl_getProcess;
- osl_getProcessInfo;
- osl_getProcessWorkingDir;
- osl_getProfileSectionEntries;
- osl_getProfileSections;
- osl_getServicePort;
- osl_getSocketAddrOfHostAddr;
- osl_getSocketOption;
- osl_getSocketType;
- osl_getSymbol;
- osl_getSystemPathFromFileURL;
- osl_getSystemTime;
- osl_getThreadIdentifier;
- osl_getThreadKeyData;
- osl_getThreadPriority;
- osl_getThreadTextEncoding;
- osl_getUserIdent;
- osl_getUserName;
- osl_getVolumeInformation;
- osl_incrementInterlockedCount;
- osl_isAdministrator;
- osl_isEndOfFile;
- osl_isEqualSocketAddr;
- osl_isExceptionPending;
- osl_isInSocketSet;
- osl_isNonBlockingMode;
- osl_isReceiveReady;
- osl_isSendReady;
- osl_isThreadRunning;
- osl_joinProcess;
- osl_joinWithThread;
- osl_listenOnSocket;
- osl_loadModule;
- osl_loginUser;
- osl_loginUserOnFileServer;
- osl_openDirectory;
- osl_openProfile;
- osl_raiseSignal;
- osl_readProfileBool;
- osl_readProfileIdent;
- osl_readProfileString;
- osl_readPipe;
- osl_readSocket;
- osl_receiveFromSocket;
- osl_receivePipe;
- osl_receiveSocket;
- osl_releaseDirectoryItem;
- osl_releaseMutex;
- osl_releasePipe;
- osl_releaseSemaphore;
- osl_releaseSocket;
- osl_removeFromSocketSet;
- osl_removeProfileEntry;
- osl_removeSignalHandler;
- osl_reportError;
- osl_resetCondition;
- osl_resolveHostname;
- osl_resumeThread;
- osl_scheduleThread;
- osl_searchFileURL;
- osl_sendPipe;
- osl_sendSocket;
- osl_sendToSocket;
- osl_setCondition;
- osl_setFileAttributes;
- osl_setFileTime;
- osl_setInetPortOfSocketAddr;
- osl_setAddrOfSocketAddr;
- osl_setSocketOption;
- osl_setThreadKeyData;
- osl_setThreadPriority;
- osl_setThreadTextEncoding;
- osl_shutdownSocket;
- osl_suspendThread;
- osl_terminateProcess;
- osl_terminateThread;
- osl_trace;
- osl_tryToAcquireMutex;
- osl_tryToAcquireSemaphore;
- osl_unloadModule;
- osl_waitCondition;
- osl_waitThread;
- osl_writePipe;
- osl_writeSocket;
- osl_writeProfileBool;
- osl_writeProfileIdent;
- osl_writeProfileString;
- osl_yieldThread;
- osl_loadUserProfile;
- osl_unloadUserProfile;
- osl_sendResourcePipe;
- osl_receiveResourcePipe;
- rtl_allocateMemory;
- rtl_compareMemory;
- rtl_copyMemory;
- rtl_fillMemory;
- rtl_freeMemory;
- rtl_moveMemory;
- rtl_reallocateMemory;
- rtl_zeroMemory;
- rtl_findInMemory;
- rtl_hashentry_destroy;
- rtl_hashfunc;
- rtl_hashtable_add;
- rtl_hashtable_destroy;
- rtl_hashtable_find;
- rtl_hashtable_grow;
- rtl_hashtable_init;
- rtl_locale_equals;
- rtl_locale_getCountry;
- rtl_locale_getDefault;
- rtl_locale_getLanguage;
- rtl_locale_getVariant;
- rtl_locale_hashCode;
- rtl_locale_register;
- rtl_locale_setDefault;
- rtl_str_getLength;
- rtl_str_compare;
- rtl_str_compare_WithLength;
- rtl_str_shortenedCompare_WithLength;
- rtl_str_reverseCompare_WithLength;
- rtl_str_compareIgnoreAsciiCase;
- rtl_str_compareIgnoreAsciiCase_WithLength;
- rtl_str_shortenedCompareIgnoreAsciiCase_WithLength;
- rtl_str_hashCode;
- rtl_str_hashCode_WithLength;
- rtl_str_indexOfChar;
- rtl_str_indexOfChar_WithLength;
- rtl_str_indexOfStr;
- rtl_str_indexOfStr_WithLength;
- rtl_str_lastIndexOfChar;
- rtl_str_lastIndexOfChar_WithLength;
- rtl_str_lastIndexOfStr;
- rtl_str_lastIndexOfStr_WithLength;
- rtl_str_replaceChar;
- rtl_str_replaceChar_WithLength;
- rtl_str_toAsciiLowerCase;
- rtl_str_toAsciiLowerCase_WithLength;
- rtl_str_toAsciiUpperCase;
- rtl_str_toAsciiUpperCase_WithLength;
- rtl_str_trim;
- rtl_str_trim_WithLength;
- rtl_str_valueOfBoolean;
- rtl_str_valueOfChar;
- rtl_str_valueOfInt32;
- rtl_str_valueOfInt64;
- rtl_str_valueOfDouble;
- rtl_str_valueOfFloat;
- rtl_str_toBoolean;
- rtl_str_toInt32;
- rtl_str_toInt64;
- rtl_str_toDouble;
- rtl_str_toFloat;
- rtl_string_acquire;
- rtl_string_assign;
- rtl_string_getLength;
- rtl_string_getStr;
- rtl_string_getToken;
- rtl_string_new;
- rtl_string_newConcat;
- rtl_string_newFromStr;
- rtl_string_newFromStr_WithLength;
- rtl_string_newFromString;
- rtl_string_newReplace;
- rtl_string_newReplaceStrAt;
- rtl_string_newToAsciiLowerCase;
- rtl_string_newToAsciiUpperCase;
- rtl_string_newTrim;
- rtl_string_new_WithLength;
- rtl_string_release;
- rtl_stringbuffer_ensureCapacity;
- rtl_stringbuffer_insert;
- rtl_stringbuffer_newFromStr_WithLength;
- rtl_stringbuffer_newFromStringBuffer;
- rtl_ustr_compare;
- rtl_ustr_compare_WithLength;
- rtl_ustr_shortenedCompare_WithLength;
- rtl_ustr_reverseCompare_WithLength;
- rtl_ustr_compareIgnoreAsciiCase;
- rtl_ustr_compareIgnoreAsciiCase_WithLength;
- rtl_ustr_shortenedCompareIgnoreAsciiCase_WithLength;
- rtl_ustr_ascii_compare;
- rtl_ustr_ascii_compare_WithLength;
- rtl_ustr_ascii_shortenedCompare_WithLength;
- rtl_ustr_asciil_reverseCompare_WithLength;
- rtl_ustr_ascii_compareIgnoreAsciiCase;
- rtl_ustr_ascii_compareIgnoreAsciiCase_WithLength;
- rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength;
- rtl_ustr_getLength;
- rtl_ustr_hashCode;
- rtl_ustr_hashCode_WithLength;
- rtl_ustr_indexOfChar;
- rtl_ustr_indexOfChar_WithLength;
- rtl_ustr_indexOfStr;
- rtl_ustr_indexOfStr_WithLength;
- rtl_ustr_lastIndexOfChar;
- rtl_ustr_lastIndexOfChar_WithLength;
- rtl_ustr_lastIndexOfStr;
- rtl_ustr_lastIndexOfStr_WithLength;
- rtl_ustr_replaceChar;
- rtl_ustr_replaceChar_WithLength;
- rtl_ustr_toAsciiLowerCase;
- rtl_ustr_toAsciiLowerCase_WithLength;
- rtl_ustr_toAsciiUpperCase;
- rtl_ustr_toAsciiUpperCase_WithLength;
- rtl_ustr_trim;
- rtl_ustr_trim_WithLength;
- rtl_ustr_valueOfBoolean;
- rtl_ustr_valueOfChar;
- rtl_ustr_valueOfInt32;
- rtl_ustr_valueOfInt64;
- rtl_ustr_valueOfDouble;
- rtl_ustr_valueOfFloat;
- rtl_ustr_toBoolean;
- rtl_ustr_toInt32;
- rtl_ustr_toInt64;
- rtl_ustr_toDouble;
- rtl_ustr_toFloat;
- rtl_uString_acquire;
- rtl_uString_assign;
- rtl_uString_getLength;
- rtl_uString_getStr;
- rtl_uString_getToken;
- rtl_uString_new;
- rtl_uString_newConcat;
- rtl_uString_newFromStr;
- rtl_uString_newFromStr_WithLength;
- rtl_uString_newFromAscii;
- rtl_uString_newFromString;
- rtl_uString_newReplace;
- rtl_uString_newReplaceStrAt;
- rtl_uString_newToAsciiLowerCase;
- rtl_uString_newToAsciiUpperCase;
- rtl_uString_newTrim;
- rtl_uString_new_WithLength;
- rtl_uString_release;
- rtl_uStringbuffer_ensureCapacity;
- rtl_uStringbuffer_insert;
- rtl_uStringbuffer_insert_ascii;
- rtl_uStringbuffer_newFromStr_WithLength;
- rtl_uStringbuffer_newFromStringBuffer;
- rtl_string2UString;
- rtl_uString2String;
- rtl_createTextToUnicodeConverter;
- rtl_destroyTextToUnicodeConverter;
- rtl_createTextToUnicodeContext;
- rtl_destroyTextToUnicodeContext;
- rtl_resetTextToUnicodeContext;
- rtl_convertTextToUnicode;
- rtl_createUnicodeToTextConverter;
- rtl_destroyUnicodeToTextConverter;
- rtl_createUnicodeToTextContext;
- rtl_destroyUnicodeToTextContext;
- rtl_resetUnicodeToTextContext;
- rtl_convertUnicodeToText;
- rtl_isOctetTextEncoding;
- rtl_getTextEncodingInfo;
- rtl_getTextEncodingFromWindowsCharset;
- rtl_getTextEncodingFromUnixCharset;
- rtl_getTextEncodingFromMimeCharset;
- rtl_getBestWindowsCharsetFromTextEncoding;
- rtl_getMimeCharsetFromTextEncoding;
- rtl_getBestMimeCharsetFromTextEncoding;
- rtl_getBestUnixCharsetFromTextEncoding;
- rtl_allocateZeroMemory;
- rtl_freeZeroMemory;
- rtl_crc32;
- rtl_digest_create;
- rtl_digest_createMD2;
- rtl_digest_createMD5;
- rtl_digest_createSHA;
- rtl_digest_createSHA1;
- rtl_digest_createHMAC_MD5;
- rtl_digest_createHMAC_SHA1;
- rtl_digest_destroy;
- rtl_digest_destroyMD2;
- rtl_digest_destroyMD5;
- rtl_digest_destroySHA;
- rtl_digest_destroySHA1;
- rtl_digest_destroyHMAC_MD5;
- rtl_digest_destroyHMAC_SHA1;
- rtl_digest_get;
- rtl_digest_getMD2;
- rtl_digest_getMD5;
- rtl_digest_getSHA;
- rtl_digest_getSHA1;
- rtl_digest_getHMAC_MD5;
- rtl_digest_getHMAC_SHA1;
- rtl_digest_init;
- rtl_digest_initHMAC_MD5;
- rtl_digest_initHMAC_SHA1;
- rtl_digest_queryAlgorithm;
- rtl_digest_queryLength;
- rtl_digest_update;
- rtl_digest_updateMD2;
- rtl_digest_updateMD5;
- rtl_digest_updateSHA;
- rtl_digest_updateSHA1;
- rtl_digest_updateHMAC_MD5;
- rtl_digest_updateHMAC_SHA1;
- rtl_digest_MD2;
- rtl_digest_MD5;
- rtl_digest_SHA;
- rtl_digest_SHA1;
- rtl_digest_HMAC_MD5;
- rtl_digest_HMAC_SHA1;
- rtl_digest_PBKDF2;
-
- rtl_random_createPool;
- rtl_random_destroyPool;
- rtl_random_addBytes;
- rtl_random_getBytes;
-
- rtl_createUuid;
- rtl_createNamedUuid;
- rtl_compareUuid;
- rtl_getGlobalProcessId;
-
- osl_openFile;
- osl_setFilePos;
- osl_getFilePos;
- osl_setFileSize;
- osl_readFile;
- osl_writeFile;
- osl_closeFile;
- osl_createDirectory;
- osl_removeDirectory;
- osl_removeFile;
- osl_copyFile;
- osl_moveFile;
-
- osl_closeSocket;
- osl_createInetBroadcastAddr;
-
- rtl_cipher_create;
- rtl_cipher_createBF;
- rtl_cipher_init;
- rtl_cipher_initBF;
- rtl_cipher_encode;
- rtl_cipher_encodeBF;
- rtl_cipher_decode;
- rtl_cipher_decodeBF;
- rtl_cipher_destroy;
- rtl_cipher_destroyBF;
-
- rtl_byte_sequence_reference2One;
- rtl_byte_sequence_realloc;
- rtl_byte_sequence_acquire;
- rtl_byte_sequence_release;
- rtl_byte_sequence_construct;
- rtl_byte_sequence_constructNoDefault;
- rtl_byte_sequence_constructFromArray;
- rtl_byte_sequence_assign;
- rtl_byte_sequence_equals;
- rtl_byte_sequence_getConstArray;
- rtl_byte_sequence_getLength;
-
- osl_acquireDirectoryItem;
-
- osl_abbreviateSystemPath;
- osl_getDateTimeFromTimeValue;
- osl_getTimeValueFromDateTime;
- osl_getLocalTimeFromSystemTime;
- osl_getSystemTimeFromLocalTime;
- osl_getAbsoluteFileURL;
-
- osl_unmountVolumeDevice;
- osl_automountVolumeDevice;
- osl_releaseVolumeDeviceHandle;
- osl_getVolumeDeviceMountPath;
- osl_acquireVolumeDeviceHandle;
-
- osl_setDebugMessageFunc;
- osl_setDetailedDebugMessageFunc;
- osl_readLine;
- osl_getGlobalTimer;
- osl_getCanonicalName;
- osl_getTextEncodingFromLocale;
-
- rtl_getUriCharClass;
- rtl_uriConvertRelToAbs;
- rtl_uriEncode;
- rtl_uriDecode;
-
- rtl_bootstrap_get;
- rtl_bootstrap_set;
- rtl_bootstrap_setIniFileName;
- rtl_bootstrap_args_open;
- rtl_bootstrap_args_close;
- rtl_bootstrap_get_from_handle;
- rtl_bootstrap_get_iniName_from_handle;
- rtl_bootstrap_expandMacros_from_handle;
- rtl_bootstrap_expandMacros;
- rtl_getAppCommandArgCount;
- rtl_getAppCommandArg;
-
- rtl_moduleCount_acquire;
- rtl_moduleCount_release;
- rtl_moduleCount_canUnload;
- rtl_registerModuleForUnloading;
- rtl_unregisterModuleForUnloading;
- rtl_unloadUnusedModules;
- rtl_addUnloadingListener;
- rtl_removeUnloadingListener;
-
- rtl_logfile_trace;
- rtl_tres_create;
- rtl_tres_destroy;
- osl_getProcessLocale;
- osl_setProcessLocale;
- local:
- *;
-};
-
-UDK_3.1 {
- global:
- osl_getTempDirURL;
- osl_createTempFile;
-
- rtl_math_doubleToString;
- rtl_math_doubleToUString;
- rtl_math_pow10Exp;
- rtl_math_round;
- rtl_math_stringToDouble;
- rtl_math_uStringToDouble;
- rtl_convertUStringToString;
-
- osl_joinProcessWithTimeout;
-
- rtl_getTextEncodingFromWindowsCodePage;
- rtl_getWindowsCodePageFromTextEncoding;
-} UDK_3_0_0;
-
-UDK_3.2 {
- global:
- osl_syncFile;
-} UDK_3.1;
-
-UDK_3.3 {
- global:
- osl_createDirectoryPath;
- osl_getFunctionSymbol;
- osl_getModuleURLFromFunctionAddress;
- rtl_cipher_createARCFOUR;
- rtl_cipher_initARCFOUR;
- rtl_cipher_decodeARCFOUR;
- rtl_cipher_encodeARCFOUR;
- rtl_cipher_destroyARCFOUR;
- rtl_digest_rawMD5;
- osl_getFileSize;
- osl_setCommandArgs;
- rtl_uStringbuffer_insertUtf32;
- rtl_ustr_ascii_compareIgnoreAsciiCase_WithLengths;
- rtl_logfile_longTrace;
- rtl_ustr_asciil_reverseEquals_WithLength;
-} UDK_3.2;
-
-UDK_3.4 {
- global:
- osl_setErrorReporting;
-} UDK_3.3;
-
-UDK_3.5 {
- global:
- rtl_arena_create;
- rtl_arena_destroy;
- rtl_arena_alloc;
- rtl_arena_free;
-
- rtl_cache_create;
- rtl_cache_destroy;
- rtl_cache_alloc;
- rtl_cache_free;
-} UDK_3.4;
-
-UDK_3.6 { # OOo 2.3
- global:
- osl_loadModuleAscii;
- osl_getAsciiFunctionSymbol;
- osl_getModuleHandle;
- rtl_uString_intern;
- rtl_uString_internConvert;
- rtl_ustr_indexOfAscii_WithLength;
- rtl_ustr_lastIndexOfAscii_WithLength;
- rtl_uString_iterateCodePoints;
- rtl_uString_newFromCodePoints;
-} UDK_3.5;
-
-UDK_3.7 { # OOo 2.4
- global:
- osl_loadModuleRelative;
-} UDK_3.6;
-
-UDK_3.8 { # OOo 3.0
- global:
- rtl_bootstrap_encode;
- rtl_convertStringToUString;
- rtl_math_approxValue;
-} UDK_3.7;
-
-UDK_3.9 { # OOo 3.1
- global:
- osl_mapFile;
- osl_unmapFile;
-
- osl_readFileAt;
- osl_writeFileAt;
-
- rtl_math_expm1;
- rtl_math_log1p;
- rtl_math_atanh;
-} UDK_3.8;
-
-UDK_3.10 { # OOo 3.2
- global:
- rtl_logfile_hasLogFile;
- rtl_math_erf;
- rtl_math_erfc;
- rtl_math_asinh;
- rtl_math_acosh;
-} UDK_3.9;
-
-UDK_3.11 { # symbols available in >= OOo/LibO 3.4
- global:
- osl_setEnvironment;
- osl_clearEnvironment;
- osl_setThreadName;
-} UDK_3.10;
-
-LIBO_UDK_3.5 { # symbols available in >= LibO 3.5
- global:
- rtl_stringbuffer_remove;
- rtl_uStringbuffer_remove;
-} UDK_3.10;
-
-PRIVATE_1.0 {
- global:
- osl_detail_ObjectRegistry_storeAddresses;
- osl_detail_ObjectRegistry_checkObjectCount;
- osl_detail_ObjectRegistry_registerObject;
- osl_detail_ObjectRegistry_revokeObject;
- osl_detail_ObjectRegistry_getMutex;
-};
-
-PRIVATE_1.1 {
- global:
- sal_detail_initialize;
- sal_detail_deinitialize;
-} PRIVATE_1.0;
diff --git a/sal/util/saltextenc.map b/sal/util/saltextenc.map
deleted file mode 100644
index e88a0af15..000000000
--- a/sal/util/saltextenc.map
+++ /dev/null
@@ -1,6 +0,0 @@
-UDK_3_0_0 {
- global:
- Impl_getTextEncodingData;
- local:
- *;
-};
diff --git a/sal/version.mk b/sal/version.mk
deleted file mode 100644
index 9d5fa163f..000000000
--- a/sal/version.mk
+++ /dev/null
@@ -1,40 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-# target
-SAL_TARGET=sal
-
-# major
-SAL_MAJOR=2
-# minor
-SAL_MINOR=0
-# micro
-SAL_MICRO=0
-
-# this is a c compatible library
-SAL_CPP=0
-
diff --git a/sal/workben/clipboardwben/testcopy/StdAfx.cpp b/sal/workben/clipboardwben/testcopy/StdAfx.cpp
deleted file mode 100644
index 0c7c7953f..000000000
--- a/sal/workben/clipboardwben/testcopy/StdAfx.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-// stdafx.cpp : Quelltextdatei, die nur die Standard-Includes einbindet
-// TestWin32.pch ist die vorkompilierte Header-Datei
-// stdafx.obj enthält die vorkompilierte Typinformation
-
-#include "stdafx.h"
-
-// ZU ERLEDIGEN: Verweis auf alle zusätzlichen Header-Dateien, die Sie in STDAFX.H
-// und nicht in dieser Datei benötigen
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/clipboardwben/testcopy/StdAfx.h b/sal/workben/clipboardwben/testcopy/StdAfx.h
deleted file mode 100644
index 01bd5846a..000000000
--- a/sal/workben/clipboardwben/testcopy/StdAfx.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-// stdafx.h : Include-Datei für Standard-System-Include-Dateien,
-// oder projektspezifische Include-Dateien, die häufig benutzt, aber
-// in unregelmäßigen Abständen geändert werden.
-//
-
-#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
-#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-#define WIN32_LEAN_AND_MEAN // Selten benutzte Teile der Windows-Header nicht einbinden
-
-
-// Windows-Header-Dateien:
-#include <windows.h>
-
-// Header-Dateien der C-Laufzeit
-#include <stdlib.h>
-#include <malloc.h>
-#include <memory.h>
-#include <tchar.h>
-
-// Lokale Header-Dateien
-
-// ZU ERLEDIGEN: Verweisen Sie hier auf zusätzliche Header-Dateien, die Ihr Programm benötigt
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ fügt zusätzliche Deklarationen unmittelbar vor der vorherigen Zeile ein.
-
-#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/clipboardwben/testcopy/TestWin32.ico b/sal/workben/clipboardwben/testcopy/TestWin32.ico
deleted file mode 100644
index 255ff3be4..000000000
--- a/sal/workben/clipboardwben/testcopy/TestWin32.ico
+++ /dev/null
Binary files differ
diff --git a/sal/workben/clipboardwben/testcopy/XTDataObject.cxx b/sal/workben/clipboardwben/testcopy/XTDataObject.cxx
deleted file mode 100644
index 09b75f789..000000000
--- a/sal/workben/clipboardwben/testcopy/XTDataObject.cxx
+++ /dev/null
@@ -1,470 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-//------------------------------------------------------------------------
-// includes
-//------------------------------------------------------------------------
-#include <osl/diagnose.h>
-
-#include "XTDataObject.hxx"
-
-#include <windows.h>
-#include <ole2.h>
-#include <memory>
-
-//------------------------------------------------------------------------
-// namespace directives
-//------------------------------------------------------------------------
-
-
-//============================================================================
-// OTWrapperDataObject
-//============================================================================
-
-//------------------------------------------------------------------------
-// ctor
-//------------------------------------------------------------------------
-
-CXTDataObject::CXTDataObject( LONG nRefCntInitVal ) :
- m_nRefCnt( nRefCntInitVal )
-{
-}
-
-//------------------------------------------------------------------------
-// dtor
-//------------------------------------------------------------------------
-
-CXTDataObject::~CXTDataObject( )
-{
-}
-
-//------------------------------------------------------------------------
-// IUnknown->QueryInterface
-//------------------------------------------------------------------------
-
-STDMETHODIMP CXTDataObject::QueryInterface( REFIID iid, LPVOID* ppvObject )
-{
- OSL_ASSERT( NULL != ppvObject );
-
- if ( NULL == ppvObject )
- return E_INVALIDARG;
-
- HRESULT hr = E_NOINTERFACE;
-
- *ppvObject = NULL;
-
- if ( ( __uuidof( IUnknown ) == iid ) || ( __uuidof( IDataObject ) == iid ) )
- {
- *ppvObject = static_cast< IUnknown* >( this );
- ( (LPUNKNOWN)*ppvObject )->AddRef( );
- hr = S_OK;
- }
-
- return hr;
-}
-
-//------------------------------------------------------------------------
-// IUnknown->AddRef
-//------------------------------------------------------------------------
-
-STDMETHODIMP_(ULONG) CXTDataObject::AddRef( )
-{
- return static_cast< ULONG >( InterlockedIncrement( &m_nRefCnt ) );
-}
-
-//------------------------------------------------------------------------
-// IUnknown->Release
-//------------------------------------------------------------------------
-
-STDMETHODIMP_(ULONG) CXTDataObject::Release( )
-{
- // we need a helper variable because it's
- // not allowed to access a member variable
- // after an object is destroyed
- ULONG nRefCnt = static_cast< ULONG >( InterlockedDecrement( &m_nRefCnt ) );
-
- if ( 0 == nRefCnt )
- {
- delete this;
- }
-
- return nRefCnt;
-}
-
-//------------------------------------------------------------------------
-// IDataObject->GetData
-// warning: 'goto' ahead (to easy error handling without using exceptions)
-//------------------------------------------------------------------------
-
-STDMETHODIMP CXTDataObject::GetData(LPFORMATETC pFormatetc, LPSTGMEDIUM pmedium )
-{
- OSL_ASSERT( ( NULL != pFormatetc ) &&
- ( !IsBadReadPtr( (LPVOID)pFormatetc, sizeof( FORMATETC ) ) ) );
- OSL_ASSERT( ( NULL != pmedium ) &&
- ( !IsBadWritePtr( (LPVOID)pmedium, sizeof( STGMEDIUM ) ) ) );
-
- if ( ( NULL == pFormatetc ) || ( NULL == pmedium ) )
- return E_INVALIDARG;
-
- HRESULT hr = E_FAIL;
-
- if ( CF_TEXT == pFormatetc->cfFormat )
- {
- char buff[] = "Hello World, How are you!";
- LPSTREAM lpStream;
-
- hr = CreateStreamOnHGlobal( NULL, FALSE, &lpStream );
- if ( SUCCEEDED( hr ) )
- {
- hr = lpStream->Write( buff, sizeof( buff ) * sizeof( char ), NULL );
- if ( SUCCEEDED( hr ) )
- {
- HGLOBAL hGlob;
-
- GetHGlobalFromStream( lpStream, &hGlob );
-
- pmedium->tymed = TYMED_HGLOBAL;
- pmedium->hGlobal = hGlob;
- pmedium->pUnkForRelease = NULL;
- }
- lpStream->Release( );
- hr = S_OK;
- }
- else
- {
- pmedium->tymed = TYMED_NULL;
- }
- }
- else if ( CF_UNICODETEXT == pFormatetc->cfFormat )
- {
- WCHAR buff[] = L"Hello World, How are you!";
- LPSTREAM lpStream;
-
- hr = CreateStreamOnHGlobal( NULL, FALSE, &lpStream );
- if ( SUCCEEDED( hr ) )
- {
- hr = lpStream->Write( buff, sizeof( buff ) * sizeof( WCHAR ), NULL );
- if ( SUCCEEDED( hr ) )
- {
- HGLOBAL hGlob;
-
- GetHGlobalFromStream( lpStream, &hGlob );
-
- pmedium->tymed = TYMED_HGLOBAL;
- pmedium->hGlobal = hGlob;
- pmedium->pUnkForRelease = NULL;
- }
- lpStream->Release( );
- hr = S_OK;
- }
- else
- {
- pmedium->tymed = TYMED_NULL;
- }
- }
-
- return hr;
-}
-
-//------------------------------------------------------------------------
-// IDataObject->EnumFormatEtc
-//------------------------------------------------------------------------
-
-STDMETHODIMP CXTDataObject::EnumFormatEtc( DWORD dwDirection, IEnumFORMATETC** ppenumFormatetc )
-{
- if ( ( NULL == ppenumFormatetc ) || ( DATADIR_SET == dwDirection ) )
- return E_INVALIDARG;
-
- *ppenumFormatetc = NULL;
-
- HRESULT hr = E_FAIL;
-
- if ( DATADIR_GET == dwDirection )
- {
- *ppenumFormatetc = new CEnumFormatEtc( this );
- static_cast< LPUNKNOWN >( *ppenumFormatetc )->AddRef( );
- hr = S_OK;
- }
-
- return hr;
-}
-
-//------------------------------------------------------------------------
-// IDataObject->QueryGetData
-//------------------------------------------------------------------------
-
-STDMETHODIMP CXTDataObject::QueryGetData( LPFORMATETC pFormatetc )
-{
- return E_NOTIMPL;
-}
-
-//------------------------------------------------------------------------
-// IDataObject->GetDataHere
-//------------------------------------------------------------------------
-
-STDMETHODIMP CXTDataObject::GetDataHere( LPFORMATETC, LPSTGMEDIUM )
-{
- return E_NOTIMPL;
-}
-
-//------------------------------------------------------------------------
-// IDataObject->GetCanonicalFormatEtc
-//------------------------------------------------------------------------
-
-STDMETHODIMP CXTDataObject::GetCanonicalFormatEtc( LPFORMATETC, LPFORMATETC )
-{
- return E_NOTIMPL;
-}
-
-//------------------------------------------------------------------------
-// IDataObject->SetData
-//------------------------------------------------------------------------
-
-STDMETHODIMP CXTDataObject::SetData( LPFORMATETC, LPSTGMEDIUM, BOOL )
-{
- return E_NOTIMPL;
-}
-
-//------------------------------------------------------------------------
-// IDataObject->DAdvise
-//------------------------------------------------------------------------
-
-STDMETHODIMP CXTDataObject::DAdvise( LPFORMATETC, DWORD, LPADVISESINK, DWORD * )
-{
- return E_NOTIMPL;
-}
-
-//------------------------------------------------------------------------
-// IDataObject->DUnadvise
-//------------------------------------------------------------------------
-
-STDMETHODIMP CXTDataObject::DUnadvise( DWORD )
-{
- return E_NOTIMPL;
-}
-
-//------------------------------------------------------------------------
-// IDataObject->EnumDAdvise
-//------------------------------------------------------------------------
-
-STDMETHODIMP CXTDataObject::EnumDAdvise( LPENUMSTATDATA * )
-{
- return E_NOTIMPL;
-}
-
-//------------------------------------------------------------------------
-// for our convenience
-//------------------------------------------------------------------------
-
-CXTDataObject::operator IDataObject*( )
-{
- return static_cast< IDataObject* >( this );
-}
-
-
-//============================================================================
-// CEnumFormatEtc
-//============================================================================
-
-
-//----------------------------------------------------------------------------
-// ctor
-//----------------------------------------------------------------------------
-
-CEnumFormatEtc::CEnumFormatEtc( LPUNKNOWN pUnkDataObj ) :
- m_nRefCnt( 0 ),
- m_pUnkDataObj( pUnkDataObj ),
- m_nCurrentPos( 0 )
-{
- m_cfFormats[0] = CF_UNICODETEXT;
- m_cfFormats[1] = CF_TEXT;
-}
-
-//----------------------------------------------------------------------------
-// dtor
-//----------------------------------------------------------------------------
-
-CEnumFormatEtc::~CEnumFormatEtc( )
-{
-}
-
-//----------------------------------------------------------------------------
-// IUnknown->QueryInterface
-//----------------------------------------------------------------------------
-
-STDMETHODIMP CEnumFormatEtc::QueryInterface( REFIID iid, LPVOID* ppvObject )
-{
- if ( NULL == ppvObject )
- return E_INVALIDARG;
-
- HRESULT hr = E_NOINTERFACE;
-
- *ppvObject = NULL;
-
- if ( ( __uuidof( IUnknown ) == iid ) || ( __uuidof( IEnumFORMATETC ) == iid ) )
- {
- *ppvObject = static_cast< IUnknown* >( this );
- static_cast< LPUNKNOWN >( *ppvObject )->AddRef( );
- hr = S_OK;
- }
-
- return hr;
-}
-
-//----------------------------------------------------------------------------
-// IUnknown->AddRef
-//----------------------------------------------------------------------------
-
-STDMETHODIMP_(ULONG) CEnumFormatEtc::AddRef( )
-{
- // keep the dataobject alive
- m_pUnkDataObj->AddRef( );
- return InterlockedIncrement( &m_nRefCnt );
-}
-
-//----------------------------------------------------------------------------
-// IUnknown->Release
-//----------------------------------------------------------------------------
-
-STDMETHODIMP_(ULONG) CEnumFormatEtc::Release( )
-{
- // release the outer dataobject
- m_pUnkDataObj->Release( );
-
- // we need a helper variable because it's
- // not allowed to access a member variable
- // after an object is destroyed
- ULONG nRefCnt = InterlockedDecrement( &m_nRefCnt );
- if ( 0 == nRefCnt )
- delete this;
-
- return nRefCnt;
-}
-
-//----------------------------------------------------------------------------
-// IEnumFORMATETC->Next
-//----------------------------------------------------------------------------
-
-STDMETHODIMP CEnumFormatEtc::Next( ULONG celt, LPFORMATETC rgelt, ULONG* pceltFetched )
-{
- OSL_ASSERT( ( ( celt > 0 ) && ( NULL != rgelt ) ) ||
- ( ( 0 == celt ) && ( NULL == rgelt ) ) );
-
- if ( ( 0 != celt ) && ( NULL == rgelt ) )
- return E_INVALIDARG;
-
- ULONG ulFetched = 0;
- ULONG ulToFetch = celt;
- HRESULT hr = S_FALSE;
-
- while( ( m_nCurrentPos < sizeof( m_cfFormats ) ) && ( ulToFetch > 0 ) )
- {
- OSL_ASSERT( !IsBadWritePtr( (LPVOID)rgelt, sizeof( FORMATETC ) ) );
-
- rgelt->cfFormat = m_cfFormats[m_nCurrentPos];
- rgelt->ptd = NULL;
- rgelt->dwAspect = DVASPECT_CONTENT;
- rgelt->lindex = -1;
- rgelt->tymed = TYMED_HGLOBAL;
-
- ++m_nCurrentPos;
- ++rgelt;
- --ulToFetch;
- ++ulFetched;
- }
-
- if ( ulFetched == celt )
- hr = S_OK;
-
- if ( NULL != pceltFetched )
- {
- OSL_ASSERT( !IsBadWritePtr( (LPVOID)pceltFetched, sizeof( ULONG ) ) );
- *pceltFetched = ulFetched;
- }
-
- return hr;
-}
-
-//----------------------------------------------------------------------------
-// IEnumFORMATETC->Skip
-//----------------------------------------------------------------------------
-
-STDMETHODIMP CEnumFormatEtc::Skip( ULONG celt )
-{
- HRESULT hr = S_FALSE;
-
- if ( ( m_nCurrentPos + celt ) < sizeof( m_cfFormats ) )
- {
- m_nCurrentPos += celt;
- hr = S_OK;
- }
-
- return hr;
-}
-
-//----------------------------------------------------------------------------
-// IEnumFORMATETC->Reset
-//----------------------------------------------------------------------------
-
-STDMETHODIMP CEnumFormatEtc::Reset( )
-{
- m_nCurrentPos = 0;
- return S_OK;
-}
-
-//----------------------------------------------------------------------------
-// IEnumFORMATETC->Clone
-//----------------------------------------------------------------------------
-
-STDMETHODIMP CEnumFormatEtc::Clone( IEnumFORMATETC** ppenum )
-{
- OSL_ASSERT( NULL != ppenum );
-
- if ( NULL == ppenum )
- return E_INVALIDARG;
-
- HRESULT hr = E_FAIL;
-
- *ppenum = NULL;
-
- CEnumFormatEtc* pCEnumFEtc = new CEnumFormatEtc( m_pUnkDataObj );
- if ( NULL != pCEnumFEtc )
- {
- pCEnumFEtc->m_nCurrentPos = m_nCurrentPos;
- *ppenum = static_cast< IEnumFORMATETC* >( pCEnumFEtc );
- static_cast< LPUNKNOWN >( *ppenum )->AddRef( );
- hr = NOERROR;
- }
-
- return hr;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/clipboardwben/testcopy/XTDataObject.hxx b/sal/workben/clipboardwben/testcopy/XTDataObject.hxx
deleted file mode 100644
index 35a0ebc59..000000000
--- a/sal/workben/clipboardwben/testcopy/XTDataObject.hxx
+++ /dev/null
@@ -1,126 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#ifndef _XTDATAOBJECT_HXX_
-#define _XTDATAOBJECT_HXX_
-
-
-//------------------------------------------------------------------------
-// includes
-//------------------------------------------------------------------------
-
-/*
-#include <com/sun/star/datatransfer/XTransferable.hpp>
-#include <com/sun/star/datatransfer/clipboard/XClipboardOwner.hpp>
-#include "WinClipboard.hxx"
-*/
-
-#include <windows.h>
-#include <ole2.h>
-#include <objidl.h>
-
-class EnumFormatEtc;
-
-class CXTDataObject : public IDataObject
-{
-public:
- CXTDataObject( LONG nRefCntInitVal = 0);
- ~CXTDataObject( );
-
- //-----------------------------------------------------------------
- // ole interface implementation
- //-----------------------------------------------------------------
-
- //IUnknown
- STDMETHODIMP QueryInterface(REFIID iid, LPVOID* ppvObject);
- STDMETHODIMP_( ULONG ) AddRef( );
- STDMETHODIMP_( ULONG ) Release( );
-
- //IDataObject
- STDMETHODIMP GetData( LPFORMATETC pFormatetc, LPSTGMEDIUM pmedium );
- STDMETHODIMP GetDataHere( LPFORMATETC pFormatetc, LPSTGMEDIUM pmedium );
- STDMETHODIMP QueryGetData( LPFORMATETC pFormatetc );
- STDMETHODIMP GetCanonicalFormatEtc( LPFORMATETC pFormatectIn, LPFORMATETC pFormatetcOut );
- STDMETHODIMP SetData( LPFORMATETC pFormatetc, LPSTGMEDIUM pmedium, BOOL fRelease );
- STDMETHODIMP EnumFormatEtc( DWORD dwDirection, IEnumFORMATETC** ppenumFormatetc );
- STDMETHODIMP DAdvise( LPFORMATETC pFormatetc, DWORD advf, LPADVISESINK pAdvSink, DWORD* pdwConnection );
- STDMETHODIMP DUnadvise( DWORD dwConnection );
- STDMETHODIMP EnumDAdvise( LPENUMSTATDATA* ppenumAdvise );
-
- operator IDataObject*( );
-
- // notification handler
- //void SAL_CALL LostOwnership( );
-
- //sal_Int64 SAL_CALL QueryDataSize( );
-
- // retrieve the data from the source
- // necessary so that
- //void SAL_CALL GetAllDataFromSource( );
-
-private:
- LONG m_nRefCnt;
- //CWinClipboard& m_rCWinClipboard;
- //const const ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboardOwner >& m_rXClipboardOwner;
- //const const ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::XTransferable >& m_rXTDataSource;
-
- //friend class CWinClipboard;
- friend class CEnumFormatEtc;
-};
-
-class CEnumFormatEtc : public IEnumFORMATETC
-{
-public:
- CEnumFormatEtc( LPUNKNOWN pUnkDataObj );
- ~CEnumFormatEtc( );
-
- // IUnknown
- STDMETHODIMP QueryInterface( REFIID iid, LPVOID* ppvObject );
- STDMETHODIMP_( ULONG ) AddRef( );
- STDMETHODIMP_( ULONG ) Release( );
-
- //IEnumFORMATETC
- STDMETHODIMP Next( ULONG celt, LPFORMATETC rgelt, ULONG* pceltFetched );
- STDMETHODIMP Skip( ULONG celt );
- STDMETHODIMP Reset( );
- STDMETHODIMP Clone( IEnumFORMATETC** ppenum );
-
-private:
- LONG m_nRefCnt;
- LPUNKNOWN m_pUnkDataObj;
- ULONG m_nCurrentPos;
- CLIPFORMAT m_cfFormats[2];
-};
-
-
-typedef CEnumFormatEtc *PCEnumFormatEtc;
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/clipboardwben/testcopy/cbcpytest.cxx b/sal/workben/clipboardwben/testcopy/cbcpytest.cxx
deleted file mode 100644
index b84895532..000000000
--- a/sal/workben/clipboardwben/testcopy/cbcpytest.cxx
+++ /dev/null
@@ -1,404 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-// TestWin32.cpp : Definiert den Einsprungpunkt für die Anwendung.
-//
-
-#define _WIN32_DCOM
-#undef _UNICODE
-
-#include "stdafx.h"
-
-#include <windows.h>
-
-#include <ole2.h>
-#include <objidl.h>
-#include <objbase.h>
-#include <process.h>
-#include <olectl.h>
-#include <stdlib.h>
-#include <malloc.h>
-#include <..\..\inc\systools\win32\MtaOleClipb.h>
-#include "XTDataObject.hxx"
-
-#include "resource.h"
-
-#define MAX_LOADSTRING 100
-#undef USE_MTACB
-
-#define MSG_FLUSHCLIPBOARD WM_USER + 1
-
-// Globale Variablen:
-HINSTANCE hInst; // aktuelle Instanz
-TCHAR szTitle[MAX_LOADSTRING]; // Text der Titelzeile
-TCHAR szWindowClass[MAX_LOADSTRING]; // Text der Titelzeile
-ATOM MyRegisterClass( HINSTANCE hInstance );
-BOOL InitInstance( HINSTANCE, int );
-LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM );
-LRESULT CALLBACK About( HWND, UINT, WPARAM, LPARAM );
-void CopyClipboardData(HWND hwndParent);
-void FlushClipboard( );
-void PasteData( HWND hWnd );
-void SetLocale();
-
-
-LPSTREAM g_pStm = NULL;
-char* pTextBuff = NULL;
-DWORD lData = 0;
-CXTDataObject* g_xtDo = NULL;
-HWND g_hWnd;
-HANDLE g_hEvent;
-BOOL g_bEnd;
-
-//----------------------------------------------------
-// a thread function
-//----------------------------------------------------
-
-unsigned int _stdcall ThreadProc(LPVOID pParam)
-{
- while( !g_bEnd )
- {
- WaitForSingleObject( g_hEvent, INFINITE );
- SendMessage( g_hWnd, MSG_FLUSHCLIPBOARD, WPARAM(0), LPARAM(0) );
- }
-
- return 0;
-}
-
-//----------------------------------------------------
-// WinMain
-//----------------------------------------------------
-
-int APIENTRY WinMain(HINSTANCE hInstance,
- HINSTANCE hPrevInstance,
- LPSTR lpCmdLine,
- int nCmdShow )
-{
- // ZU ERLEDIGEN: Fügen Sie hier den Code ein.
- MSG msg;
- HACCEL hAccelTable;
- HRESULT hr = E_FAIL;
-
- /*
- g_hEvent = CreateEvent( 0,
- FALSE,
- FALSE,
- NULL
- );
-
- g_bEnd = FALSE;
-
- _beginthreadex( ThreadProc,
- 0,
- NULL,
- 0,
- 0,
- NULL );
- */
-
- // it's important to initialize ole
- // in order to use the clipboard
-#ifdef USE_MTACB
- hr = CoInitializeEx( NULL, COINIT_MULTITHREADED );
-#else
- hr = OleInitialize( NULL );
-#endif
-
-
- // Globale Zeichenfolgen initialisieren
- LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
- LoadString(hInstance, IDC_TESTWIN32, szWindowClass, MAX_LOADSTRING);
- MyRegisterClass(hInstance);
-
- // Initialisierung der Anwendung durchführen:
- if( !InitInstance( hInstance, nCmdShow ) )
- {
- return FALSE;
- }
-
- hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_TESTWIN32);
-
- // Hauptnachrichtenschleife:
- while( GetMessage(&msg, NULL, 0, 0) )
- {
- if( !TranslateAccelerator (msg.hwnd, hAccelTable, &msg) )
- {
- TranslateMessage( &msg );
- DispatchMessage( &msg );
- }
- }
-
- // uninitializing the ole libraries
-#ifdef USE_MTACB
- CoUninitialize( );
-#else
- OleUninitialize( );
-#endif
-
- CloseHandle( g_hEvent );
-
- return msg.wParam;
-}
-
-
-
-//----------------------------------------------------------------
-// FUNKTION: MyRegisterClass()
-//
-// AUFGABE: Registriert die Fensterklasse.
-//
-// KOMMENTARE:
-//
-// Diese Funktion und ihre Verwendung sind nur notwendig, wenn dieser Code
-// mit Win32-Systemen vor der 'RegisterClassEx'-Funktion kompatibel sein soll,
-// die zu Windows 95 hinzugefügt wurde. Es ist wichtig diese Funktion aufzurufen,
-// damit der Anwendung kleine Symbole mit den richtigen Proportionen zugewiesen
-// werden.
-//----------------------------------------------------------------
-
-ATOM MyRegisterClass( HINSTANCE hInstance )
-{
- WNDCLASSEX wcex;
-
- wcex.cbSize = sizeof(WNDCLASSEX);
-
- wcex.style = CS_HREDRAW | CS_VREDRAW;
- wcex.lpfnWndProc = (WNDPROC)WndProc;
- wcex.cbClsExtra = 0;
- wcex.cbWndExtra = 0;
- wcex.hInstance = hInstance;
- wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_TESTWIN32);
- wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
- wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
- wcex.lpszMenuName = (LPCTSTR)IDC_TESTWIN32;
- wcex.lpszClassName = _T(szWindowClass);
- wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);
-
- return RegisterClassEx(&wcex);
-}
-
-//----------------------------------------------------------------
-// FUNKTION: InitInstance(HANDLE, int)
-//
-// AUFGABE: Speichert die Instanzzugriffsnummer und erstellt das Hauptfenster
-//
-// KOMMENTARE:
-//
-// In dieser Funktion wird die Instanzzugriffsnummer in einer globalen Variable
-// gespeichert und das Hauptprogrammfenster erstellt und angezeigt.
-//----------------------------------------------------------------
-
-BOOL InitInstance( HINSTANCE hInstance, int nCmdShow )
-{
- hInst = hInstance; // Instanzzugriffsnummer in unserer globalen Variable speichern
-
- g_hWnd = CreateWindowEx(0, szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
- CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
-
- if( !g_hWnd )
- {
- return FALSE;
- }
-
- ShowWindow( g_hWnd, nCmdShow );
- UpdateWindow( g_hWnd );
-
- return TRUE;
-}
-
-//----------------------------------------------------------------
-// FUNKTION: WndProc(HWND, unsigned, WORD, LONG)
-//
-// AUFGABE: Verarbeitet Nachrichten für das Hauptfenster.
-//
-// WM_COMMAND - Anwendungsmenü verarbeiten
-// WM_PAINT - Hauptfenster darstellen
-// WM_DESTROY - Beendigungsnachricht ausgeben und zurückkehren
-//----------------------------------------------------------------
-
-LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
-{
- int wmId;
- int wmEvent;
- PAINTSTRUCT ps;
- HDC hdc;
- TCHAR szHello[MAX_LOADSTRING];
-
-
- LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING);
-
- switch( message )
- {
- case WM_COMMAND:
- wmId = LOWORD(wParam);
- wmEvent = HIWORD(wParam);
- // Menüauswahlen analysieren:
- switch( wmId )
- {
- case IDD_COPY:
- CopyClipboardData(hWnd);
- break;
- case IDD_PASTE2:
- PasteData(hWnd);
- break;
- case IDD_LOCALE:
- SetLocale();
- break;
- case IDM_EXIT:
- DestroyWindow( hWnd );
- break;
-
- default:
- return DefWindowProc( hWnd, message, wParam, lParam );
- }
- break;
-
- case WM_PAINT:
- hdc = BeginPaint (hWnd, &ps);
- // ZU ERLEDIGEN: Hier beliebigen Code zum Zeichnen hinzufügen...
- RECT rt;
- GetClientRect( hWnd, &rt );
-
- if ( NULL != pTextBuff )
- {
- DrawText( hdc, pTextBuff, lData, &rt, DT_CENTER );
- }
- else
- {
- DrawText( hdc, szHello, strlen(szHello), &rt, DT_CENTER );
- }
-
- EndPaint( hWnd, &ps );
- break;
-
- case WM_DESTROY:
- g_bEnd = TRUE;
- SetEvent( g_hEvent );
- FlushClipboard( );
- PostQuitMessage( 0 );
- break;
-
- default:
- return DefWindowProc( hWnd, message, wParam, lParam );
- }
- return 0;
-}
-
-//----------------------------------------------
-// copy data into the clipboard
-//----------------------------------------------
-
-void CopyClipboardData( HWND hWnd )
-{
- g_xtDo = new CXTDataObject( 1 );
-#ifdef USE_MTACB
- MTASetClipboard( static_cast< IDataObject* >( g_xtDo ) );
-#else
- OleSetClipboard( static_cast< IDataObject* >( g_xtDo ) );
-#endif
-}
-
-//----------------------------------------------
-// flush the content into the clipboard
-//----------------------------------------------
-
-void FlushClipboard( )
-{
- if ( NULL != g_xtDo )
- {
-#ifdef USE_MTACB
- HRESULT hr = MTAIsCurrentClipboard( static_cast< IDataObject* >( g_xtDo ) );
- if ( S_OK == hr )
- MTAFlushClipboard( );
-#else
- HRESULT hr = OleIsCurrentClipboard( static_cast< IDataObject* >( g_xtDo ) );
- if ( S_OK == hr )
- OleFlushClipboard( );
-#endif
-
- static_cast< IDataObject* >( g_xtDo )->Release( );
- }
-}
-
-
-void PasteData(HWND hWnd)
-{
- IDataObject* pDataObj;
-
- //FlushClipboard( );
-
- HRESULT hr = OleGetClipboard( &pDataObj );
- if ( SUCCEEDED( hr ) )
- {
- FORMATETC fetc;
- STGMEDIUM stgmedium;
-
- fetc.cfFormat = CF_LOCALE;
- fetc.ptd = NULL;
- fetc.dwAspect = DVASPECT_CONTENT;
- fetc.lindex = -1;
- fetc.tymed = TYMED_HGLOBAL;
-
- hr = pDataObj->GetData( &fetc, &stgmedium );
- if ( SUCCEEDED( hr ) )
- {
- LPVOID lpData = GlobalLock( stgmedium.hGlobal );
-
- if ( NULL != lpData )
- {
- LCID lcid = *( (WORD*)lpData );
-
- WORD langID = LANGIDFROMLCID( lcid );
- WORD sublangID = SUBLANGID( langID );
-
- TCHAR buff[6];
- int cbWritten = GetLocaleInfo( lcid, LOCALE_IDEFAULTANSICODEPAGE, buff, sizeof( buff ) );
- cbWritten = GetLocaleInfo( lcid, LOCALE_IDEFAULTCODEPAGE, buff, sizeof( buff ) );
-
- GlobalUnlock( stgmedium.hGlobal );
- }
- else
- {
- DWORD dwLastError = GetLastError( );
- }
-
- ReleaseStgMedium( &stgmedium );
- }
- }
-}
-
-
-void SetLocale()
-{
- LCID threadLcid = GetThreadLocale();
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/clipboardwben/testcopy/cbcpytest.rc b/sal/workben/clipboardwben/testcopy/cbcpytest.rc
deleted file mode 100644
index a9db00853..000000000
--- a/sal/workben/clipboardwben/testcopy/cbcpytest.rc
+++ /dev/null
@@ -1,122 +0,0 @@
-//Microsoft Developer Studio generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#define APSTUDIO_HIDDEN_SYMBOLS
-#include "windows.h"
-#undef APSTUDIO_HIDDEN_SYMBOLS
-#include "resource.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// German (Germany) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
-#ifdef _WIN32
-LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-IDI_TESTWIN32 ICON DISCARDABLE "TestWin32.ICO"
-IDI_SMALL ICON DISCARDABLE "SMALL.ICO"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Menu
-//
-
-IDC_TESTWIN32 MENU DISCARDABLE
-BEGIN
- POPUP "&Datei"
- BEGIN
- MENUITEM "&Copy", IDD_COPY
- MENUITEM "Paste", IDD_PASTE2
- MENUITEM "Set Locale", IDD_LOCALE
- MENUITEM SEPARATOR
- MENUITEM "&Beenden", IDM_EXIT
- END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Accelerator
-//
-
-IDC_TESTWIN32 ACCELERATORS MOVEABLE PURE
-BEGIN
- "?", IDM_ABOUT, ASCII, ALT
- "/", IDM_ABOUT, ASCII, ALT
-END
-
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-2 TEXTINCLUDE DISCARDABLE
-BEGIN
- "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
- "#include ""windows.h""\r\n"
- "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
- "#include ""resource.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE DISCARDABLE
-BEGIN
- "\r\n"
- "\0"
-END
-
-1 TEXTINCLUDE DISCARDABLE
-BEGIN
- "resource.h\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// String Table
-//
-
-STRINGTABLE DISCARDABLE
-BEGIN
- IDS_APP_TITLE "TestWin32"
- IDS_HELLO "Hallo Welt!"
- IDC_TESTWIN32 "TESTWIN32"
-END
-
-#endif // German (Germany) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
diff --git a/sal/workben/clipboardwben/testcopy/makefile.mk b/sal/workben/clipboardwben/testcopy/makefile.mk
deleted file mode 100644
index 7c1454f05..000000000
--- a/sal/workben/clipboardwben/testcopy/makefile.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-
-PRJNAME=sal
-TARGET=cbcpytest
-LIBTARGET=NO
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-# --- Files --------------------------------------------------------
-
-#
-# test clipboard paste
-#
- # --- Resources ----------------------------------------------------
- RCFILES= cbcpytest.rc
-
- OBJFILES= $(OBJ)$/cbcpytest.obj $(OBJ)$/XTDataObject.obj
-
- APP1TARGET= $(TARGET)
- APP1OBJS= $(OBJFILES)
- APP1NOSAL= TRUE
- APP1NOSVRES= $(RES)$/$(TARGET).res
-
- APP1STDLIBS+=$(OLE32LIB) $(USER32LIB) $(KERNEL32LIB) $(SALLIB)
-
- APP1LIBS=$(LB)$/iole9x.lib \
- $(LB)$/tools32.lib
-
- APP1DEPN= makefile.mk $(APP1NOSVRES)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
-
diff --git a/sal/workben/clipboardwben/testcopy/resource.h b/sal/workben/clipboardwben/testcopy/resource.h
deleted file mode 100644
index 4a3602f7f..000000000
--- a/sal/workben/clipboardwben/testcopy/resource.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-//{{NO_DEPENDENCIES}}
-// Microsoft Developer Studio generated include file.
-// Used by cbcpytest.rc
-//
-#define IDC_MYICON 2
-#define IDD_TESTWIN32_DIALOG 102
-#define IDD_ABOUTBOX 103
-#define IDS_APP_TITLE 103
-#define IDM_ABOUT 104
-#define IDM_EXIT 105
-#define IDS_HELLO 106
-#define IDI_TESTWIN32 107
-#define IDI_SMALL 108
-#define IDC_TESTWIN32 109
-#define IDR_MAINFRAME 128
-#define IDD_PASTE 32771
-#define IDD_COPY 32771
-#define IDD_PASTE2 32772
-#define IDD_LOCALE 32773
-#define IDC_STATIC -1
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 129
-#define _APS_NEXT_COMMAND_VALUE 32774
-#define _APS_NEXT_CONTROL_VALUE 1000
-#define _APS_NEXT_SYMED_VALUE 110
-#endif
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/clipboardwben/testcopy/small.ico b/sal/workben/clipboardwben/testcopy/small.ico
deleted file mode 100644
index 8f94d9aa8..000000000
--- a/sal/workben/clipboardwben/testcopy/small.ico
+++ /dev/null
Binary files differ
diff --git a/sal/workben/clipboardwben/testpaste/StdAfx.cpp b/sal/workben/clipboardwben/testpaste/StdAfx.cpp
deleted file mode 100644
index 0c7c7953f..000000000
--- a/sal/workben/clipboardwben/testpaste/StdAfx.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-// stdafx.cpp : Quelltextdatei, die nur die Standard-Includes einbindet
-// TestWin32.pch ist die vorkompilierte Header-Datei
-// stdafx.obj enthält die vorkompilierte Typinformation
-
-#include "stdafx.h"
-
-// ZU ERLEDIGEN: Verweis auf alle zusätzlichen Header-Dateien, die Sie in STDAFX.H
-// und nicht in dieser Datei benötigen
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/clipboardwben/testpaste/StdAfx.h b/sal/workben/clipboardwben/testpaste/StdAfx.h
deleted file mode 100644
index 01bd5846a..000000000
--- a/sal/workben/clipboardwben/testpaste/StdAfx.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-// stdafx.h : Include-Datei für Standard-System-Include-Dateien,
-// oder projektspezifische Include-Dateien, die häufig benutzt, aber
-// in unregelmäßigen Abständen geändert werden.
-//
-
-#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
-#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-#define WIN32_LEAN_AND_MEAN // Selten benutzte Teile der Windows-Header nicht einbinden
-
-
-// Windows-Header-Dateien:
-#include <windows.h>
-
-// Header-Dateien der C-Laufzeit
-#include <stdlib.h>
-#include <malloc.h>
-#include <memory.h>
-#include <tchar.h>
-
-// Lokale Header-Dateien
-
-// ZU ERLEDIGEN: Verweisen Sie hier auf zusätzliche Header-Dateien, die Ihr Programm benötigt
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ fügt zusätzliche Deklarationen unmittelbar vor der vorherigen Zeile ein.
-
-#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/clipboardwben/testpaste/TestWin32.ico b/sal/workben/clipboardwben/testpaste/TestWin32.ico
deleted file mode 100644
index 255ff3be4..000000000
--- a/sal/workben/clipboardwben/testpaste/TestWin32.ico
+++ /dev/null
Binary files differ
diff --git a/sal/workben/clipboardwben/testpaste/cbptest.cxx b/sal/workben/clipboardwben/testpaste/cbptest.cxx
deleted file mode 100644
index 3273535c3..000000000
--- a/sal/workben/clipboardwben/testpaste/cbptest.cxx
+++ /dev/null
@@ -1,431 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-// TestWin32.cpp : Definiert den Einsprungpunkt für die Anwendung.
-//
-
-#define _WIN32_DCOM
-
-#include "stdafx.h"
-
-#include <windows.h>
-
-#include <ole2.h>
-#include <objidl.h>
-#include <objbase.h>
-#include <process.h>
-#include <olectl.h>
-#include <stdlib.h>
-#include <malloc.h>
-#include <..\..\inc\systools\win32\MtaOleClipb.h>
-
-#include "resource.h"
-
-#define MAX_LOADSTRING 100
-
-// Globale Variablen:
-HINSTANCE hInst; // aktuelle Instanz
-WCHAR szTitle[MAX_LOADSTRING]; // Text der Titelzeile
-WCHAR szWindowClass[MAX_LOADSTRING]; // Text der Titelzeile
-ATOM MyRegisterClass( HINSTANCE hInstance );
-BOOL InitInstance( HINSTANCE, int );
-LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM );
-LRESULT CALLBACK About( HWND, UINT, WPARAM, LPARAM );
-void PasteClipboardData(HWND hwndParent);
-void PasteClipboardData2(HWND hwndParent);
-
-LPSTREAM g_pStm = NULL;
-char* pTextBuff = NULL;
-DWORD lData = 0;
-
-//----------------------------------------------------
-// a thread function
-//----------------------------------------------------
-
-unsigned int _stdcall ThreadProc(LPVOID pParam)
-{
- IDataObject* pIDataObj = NULL;
- FORMATETC formatETC;
- STGMEDIUM stgMedium;
- LPVOID pGlobMem;
- HWND hwnd;
- DWORD sizeGlobBuff;
- HRESULT hr;
-
- hwnd = (HWND)pParam;
-
- OleInitialize( NULL );
-
- hr = OleGetClipboard( &pIDataObj );
-
- hr = CoGetInterfaceAndReleaseStream(
- g_pStm,
- __uuidof(IDataObject),
- reinterpret_cast<LPVOID*>(&pIDataObj));
-
- formatETC.cfFormat = CF_TEXT;
- formatETC.ptd = NULL;
- formatETC.dwAspect = DVASPECT_CONTENT;
- formatETC.lindex = -1;
- formatETC.tymed = TYMED_HGLOBAL;
-
- hr = pIDataObj->GetData( &formatETC, &stgMedium );
- pGlobMem = GlobalLock( stgMedium.hGlobal );
- if ( NULL != pGlobMem )
- {
- if ( NULL != pTextBuff )
- {
- free( pTextBuff );
- }
-
- sizeGlobBuff = GlobalSize( stgMedium.hGlobal );
- pTextBuff = (char*)malloc( sizeGlobBuff + 1 );
- ZeroMemory( pTextBuff, sizeGlobBuff + 1 );
-
- memcpy( pTextBuff, pGlobMem, sizeGlobBuff );
- lData = sizeGlobBuff;
-
- InvalidateRect( hwnd, NULL, TRUE );
- UpdateWindow( hwnd );
- }
-
- GlobalUnlock( stgMedium.hGlobal );
-
- ReleaseStgMedium( &stgMedium );
-
- pIDataObj->Release();
-
- //CoUninitialize( );
-
- OleUninitialize( );
-
- return 0;
-}
-
-//----------------------------------------------------
-// WinMain
-//----------------------------------------------------
-
-int APIENTRY WinMain(HINSTANCE hInstance,
- HINSTANCE hPrevInstance,
- LPSTR lpCmdLine,
- int nCmdShow )
-{
- // ZU ERLEDIGEN: Fügen Sie hier den Code ein.
- MSG msg;
- HACCEL hAccelTable;
- HRESULT hr = E_FAIL;
-
- // it's important to initialize ole
- // in order to use the clipboard
- //hr = OleInitialize( NULL );
- hr = CoInitializeEx( NULL, COINIT_MULTITHREADED );
- //hr = CoInitializeEx( NULL, COINIT_APARTMENTTHREADED );
-
- // Globale Zeichenfolgen initialisieren
- LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
- LoadStringW(hInstance, IDC_TESTWIN32, szWindowClass, MAX_LOADSTRING);
- MyRegisterClass(hInstance);
-
- // Initialisierung der Anwendung durchführen:
- if( !InitInstance( hInstance, nCmdShow ) )
- {
- return FALSE;
- }
-
- hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_TESTWIN32);
-
- // Hauptnachrichtenschleife:
- while( GetMessage(&msg, NULL, 0, 0) )
- {
- if( !TranslateAccelerator (msg.hwnd, hAccelTable, &msg) )
- {
- TranslateMessage( &msg );
- DispatchMessage( &msg );
- }
- }
-
- // uninitializing the ole libraries
- //OleUninitialize( );
- CoUninitialize( );
-
- return msg.wParam;
-}
-
-
-
-//
-// FUNKTION: MyRegisterClass()
-//
-// AUFGABE: Registriert die Fensterklasse.
-//
-// KOMMENTARE:
-//
-// Diese Funktion und ihre Verwendung sind nur notwendig, wenn dieser Code
-// mit Win32-Systemen vor der 'RegisterClassEx'-Funktion kompatibel sein soll,
-// die zu Windows 95 hinzugefügt wurde. Es ist wichtig diese Funktion aufzurufen,
-// damit der Anwendung kleine Symbole mit den richtigen Proportionen zugewiesen
-// werden.
-//
-ATOM MyRegisterClass( HINSTANCE hInstance )
-{
- WNDCLASSEXW wcex;
-
- wcex.cbSize = sizeof(WNDCLASSEX);
-
- wcex.style = CS_HREDRAW | CS_VREDRAW;
- wcex.lpfnWndProc = (WNDPROC)WndProc;
- wcex.cbClsExtra = 0;
- wcex.cbWndExtra = 0;
- wcex.hInstance = hInstance;
- wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_TESTWIN32);
- wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
- wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
- wcex.lpszMenuName = (LPCWSTR)IDC_TESTWIN32;
- wcex.lpszClassName = szWindowClass;
- wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);
-
- return RegisterClassExW(&wcex);
-}
-
-//
-// FUNKTION: InitInstance(HANDLE, int)
-//
-// AUFGABE: Speichert die Instanzzugriffsnummer und erstellt das Hauptfenster
-//
-// KOMMENTARE:
-//
-// In dieser Funktion wird die Instanzzugriffsnummer in einer globalen Variable
-// gespeichert und das Hauptprogrammfenster erstellt und angezeigt.
-//
-BOOL InitInstance( HINSTANCE hInstance, int nCmdShow )
-{
- HWND hWnd;
-
- hInst = hInstance; // Instanzzugriffsnummer in unserer globalen Variable speichern
-
- hWnd = CreateWindowExW(0, szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
- CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
-
- if( !hWnd )
- {
- return FALSE;
- }
-
- ShowWindow( hWnd, nCmdShow );
- UpdateWindow( hWnd );
-
- return TRUE;
-}
-
-//
-// FUNKTION: WndProc(HWND, unsigned, WORD, LONG)
-//
-// AUFGABE: Verarbeitet Nachrichten für das Hauptfenster.
-//
-// WM_COMMAND - Anwendungsmenü verarbeiten
-// WM_PAINT - Hauptfenster darstellen
-// WM_DESTROY - Beendigungsnachricht ausgeben und zurückkehren
-//
-//
-LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
-{
- int wmId;
- int wmEvent;
- PAINTSTRUCT ps;
- HDC hdc;
- TCHAR szHello[MAX_LOADSTRING];
-
-
- LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING);
-
- switch( message )
- {
- case WM_COMMAND:
- wmId = LOWORD(wParam);
- wmEvent = HIWORD(wParam);
- // Menüauswahlen analysieren:
- switch( wmId )
- {
- case IDD_PASTE:
- //PasteClipboardData(hWnd);
- PasteClipboardData2(hWnd);
- break;
-
- case IDM_EXIT:
- DestroyWindow( hWnd );
- break;
-
- default:
- return DefWindowProc( hWnd, message, wParam, lParam );
- }
- break;
-
- case WM_PAINT:
- hdc = BeginPaint (hWnd, &ps);
- // ZU ERLEDIGEN: Hier beliebigen Code zum Zeichnen hinzufügen...
- RECT rt;
- GetClientRect( hWnd, &rt );
-
- if ( NULL != pTextBuff )
- {
- DrawText( hdc, pTextBuff, lData, &rt, DT_CENTER );
- }
- else
- {
- DrawText( hdc, szHello, strlen(szHello), &rt, DT_CENTER );
- }
-
- EndPaint( hWnd, &ps );
- break;
-
- case WM_DESTROY:
- PostQuitMessage( 0 );
- break;
-
- default:
- return DefWindowProc( hWnd, message, wParam, lParam );
- }
- return 0;
-}
-
-void PasteClipboardData2(HWND hwndParent)
-{
- IDataObject* pIDataObject;
- HRESULT hr;
- FORMATETC formatETC;
- STGMEDIUM stgMedium;
- LPVOID pGlobMem;
- HWND hwnd;
- DWORD sizeGlobBuff;
-
- hr = MTAGetClipboard( &pIDataObject );
- if ( SUCCEEDED( hr ) )
- {
- formatETC.cfFormat = CF_TEXT;
- formatETC.ptd = NULL;
- formatETC.dwAspect = DVASPECT_CONTENT;
- formatETC.lindex = -1;
- formatETC.tymed = TYMED_HGLOBAL;
-
- hr = pIDataObject->GetData( &formatETC, &stgMedium );
- pGlobMem = GlobalLock( stgMedium.hGlobal );
- if ( NULL != pGlobMem )
- {
- if ( NULL != pTextBuff )
- {
- free( pTextBuff );
- }
-
- sizeGlobBuff = GlobalSize( stgMedium.hGlobal );
- pTextBuff = (char*)malloc( sizeGlobBuff + 1 );
- ZeroMemory( pTextBuff, sizeGlobBuff + 1 );
-
- memcpy( pTextBuff, pGlobMem, sizeGlobBuff );
- lData = sizeGlobBuff;
-
- InvalidateRect( hwndParent, NULL, TRUE );
- UpdateWindow( hwndParent );
- }
-
- GlobalUnlock( stgMedium.hGlobal );
-
- ReleaseStgMedium( &stgMedium );
-
- pIDataObject->Release();
- }
-}
-
-//----------------------------------------------------
-// clipboard handling
-//----------------------------------------------------
-
-/*
-void PasteClipboardData(HWND hwndParent)
-{
- IDataObject* pIDataObj = NULL;
- HRESULT hr = E_FAIL;
- unsigned int dwId;
-
- hr = OleGetClipboard( &pIDataObj );
- if ( SUCCEEDED( hr ) )
- {
- HRESULT hr = CoMarshalInterThreadInterfaceInStream(
- __uuidof(IDataObject), //The IID of inteface to be marshaled
- pIDataObj, //The interface pointer
- &g_pStm //IStream pointer
- );
-
- HANDLE hThread = (HANDLE)_beginthreadex(
- NULL, //Security
- 0, //Stack Size
- ThreadProc, //Start Address
- NULL, //Parmeter
- (unsigned int)hwndParent, //Creation Flag
- &dwId //Thread Id
- );
-
- //Wait for the thread to finish execution
- //A thread handle is signaled is thread execution
- //is complete
- for(;;)
- {
- DWORD dwRet = ::MsgWaitForMultipleObjects(
- 1, //Count of objects
- &hThread, //pointer to the array of objects
- FALSE, //Wait for all objects?
- INFINITE, //Wait How Long?
- QS_ALLINPUT //Wait for all messges
- );
-
- //This means that the object is signaled
- if ( dwRet != WAIT_OBJECT_0 + 1 )
- break;
-
- //Remove the messages from the queue
- MSG msg;
-
- while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) > 0)
- {
- //Not essential
- TranslateMessage(&msg);
- //Let the windowproc handle the message
- DispatchMessage(&msg);
- }
- }
-
- CloseHandle( hThread );
- pIDataObj->Release();
- }
-}
-*/
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/clipboardwben/testpaste/cbptest.rc b/sal/workben/clipboardwben/testpaste/cbptest.rc
deleted file mode 100644
index 2deeb86a9..000000000
--- a/sal/workben/clipboardwben/testpaste/cbptest.rc
+++ /dev/null
@@ -1,120 +0,0 @@
-//Microsoft Developer Studio generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#define APSTUDIO_HIDDEN_SYMBOLS
-#include "windows.h"
-#undef APSTUDIO_HIDDEN_SYMBOLS
-#include "resource.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// German (Germany) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
-#ifdef _WIN32
-LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-IDI_TESTWIN32 ICON DISCARDABLE "TestWin32.ICO"
-IDI_SMALL ICON DISCARDABLE "SMALL.ICO"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Menu
-//
-
-IDC_TESTWIN32 MENU DISCARDABLE
-BEGIN
- POPUP "&Datei"
- BEGIN
- MENUITEM "&Paste", IDD_PASTE
- MENUITEM SEPARATOR
- MENUITEM "&Beenden", IDM_EXIT
- END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Accelerator
-//
-
-IDC_TESTWIN32 ACCELERATORS MOVEABLE PURE
-BEGIN
- "?", IDM_ABOUT, ASCII, ALT
- "/", IDM_ABOUT, ASCII, ALT
-END
-
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-2 TEXTINCLUDE DISCARDABLE
-BEGIN
- "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
- "#include ""windows.h""\r\n"
- "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
- "#include ""resource.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE DISCARDABLE
-BEGIN
- "\r\n"
- "\0"
-END
-
-1 TEXTINCLUDE DISCARDABLE
-BEGIN
- "resource.h\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// String Table
-//
-
-STRINGTABLE DISCARDABLE
-BEGIN
- IDS_APP_TITLE "TestWin32"
- IDS_HELLO "Hallo Welt!"
- IDC_TESTWIN32 "TESTWIN32"
-END
-
-#endif // German (Germany) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
diff --git a/sal/workben/clipboardwben/testpaste/makefile.mk b/sal/workben/clipboardwben/testpaste/makefile.mk
deleted file mode 100644
index 5514d7c56..000000000
--- a/sal/workben/clipboardwben/testpaste/makefile.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-
-PRJNAME=sal
-TARGET=cbptest
-LIBTARGET=NO
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-# --- Files --------------------------------------------------------
-
-#
-# test clipboard paste
-#
- # --- Resources ----------------------------------------------------
- RCFILES= cbptest.rc
-
- OBJFILES= $(OBJ)$/cbptest.obj
-
- APP1TARGET= $(TARGET)
- APP1OBJS= $(OBJFILES)
- APP1NOSAL= TRUE
- APP1NOSVRES= $(RES)$/$(TARGET).res
-
- APP1STDLIBS+=$(OLE32LIB) $(USER32LIB) $(KERNEL32LIB)
-
- APP1LIBS=$(LB)$/ole9x.lib \
- $(LB)$/tools32.lib
-
- APP1DEPN= makefile.mk $(APP1NOSVRES)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
-
diff --git a/sal/workben/clipboardwben/testpaste/resource.h b/sal/workben/clipboardwben/testpaste/resource.h
deleted file mode 100644
index 8d396d09d..000000000
--- a/sal/workben/clipboardwben/testpaste/resource.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-//{{NO_DEPENDENCIES}}
-// Microsoft Developer Studio generated include file.
-// Used by mtacb.rc
-//
-#define IDC_MYICON 2
-#define IDD_TESTWIN32_DIALOG 102
-#define IDD_ABOUTBOX 103
-#define IDS_APP_TITLE 103
-#define IDM_ABOUT 104
-#define IDM_EXIT 105
-#define IDS_HELLO 106
-#define IDI_TESTWIN32 107
-#define IDI_SMALL 108
-#define IDC_TESTWIN32 109
-#define IDR_MAINFRAME 128
-#define IDD_PASTE 32771
-#define IDC_STATIC -1
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 129
-#define _APS_NEXT_COMMAND_VALUE 32772
-#define _APS_NEXT_CONTROL_VALUE 1000
-#define _APS_NEXT_SYMED_VALUE 110
-#endif
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/clipboardwben/testpaste/small.ico b/sal/workben/clipboardwben/testpaste/small.ico
deleted file mode 100644
index 8f94d9aa8..000000000
--- a/sal/workben/clipboardwben/testpaste/small.ico
+++ /dev/null
Binary files differ
diff --git a/sal/workben/clipboardwben/testviewer/StdAfx.cpp b/sal/workben/clipboardwben/testviewer/StdAfx.cpp
deleted file mode 100644
index 0c7c7953f..000000000
--- a/sal/workben/clipboardwben/testviewer/StdAfx.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-// stdafx.cpp : Quelltextdatei, die nur die Standard-Includes einbindet
-// TestWin32.pch ist die vorkompilierte Header-Datei
-// stdafx.obj enthält die vorkompilierte Typinformation
-
-#include "stdafx.h"
-
-// ZU ERLEDIGEN: Verweis auf alle zusätzlichen Header-Dateien, die Sie in STDAFX.H
-// und nicht in dieser Datei benötigen
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/clipboardwben/testviewer/StdAfx.h b/sal/workben/clipboardwben/testviewer/StdAfx.h
deleted file mode 100644
index 01bd5846a..000000000
--- a/sal/workben/clipboardwben/testviewer/StdAfx.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-// stdafx.h : Include-Datei für Standard-System-Include-Dateien,
-// oder projektspezifische Include-Dateien, die häufig benutzt, aber
-// in unregelmäßigen Abständen geändert werden.
-//
-
-#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
-#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-#define WIN32_LEAN_AND_MEAN // Selten benutzte Teile der Windows-Header nicht einbinden
-
-
-// Windows-Header-Dateien:
-#include <windows.h>
-
-// Header-Dateien der C-Laufzeit
-#include <stdlib.h>
-#include <malloc.h>
-#include <memory.h>
-#include <tchar.h>
-
-// Lokale Header-Dateien
-
-// ZU ERLEDIGEN: Verweisen Sie hier auf zusätzliche Header-Dateien, die Ihr Programm benötigt
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ fügt zusätzliche Deklarationen unmittelbar vor der vorherigen Zeile ein.
-
-#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/clipboardwben/testviewer/TestWin32.ico b/sal/workben/clipboardwben/testviewer/TestWin32.ico
deleted file mode 100644
index 255ff3be4..000000000
--- a/sal/workben/clipboardwben/testviewer/TestWin32.ico
+++ /dev/null
Binary files differ
diff --git a/sal/workben/clipboardwben/testviewer/cbvtest.cxx b/sal/workben/clipboardwben/testviewer/cbvtest.cxx
deleted file mode 100644
index 1c4bde613..000000000
--- a/sal/workben/clipboardwben/testviewer/cbvtest.cxx
+++ /dev/null
@@ -1,353 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-// TestWin32.cpp : Definiert den Einsprungpunkt für die Anwendung.
-//
-
-#define _WIN32_DCOM
-
-#include "stdafx.h"
-
-#include <windows.h>
-
-#include <ole2.h>
-#include <objidl.h>
-#include <objbase.h>
-#include <process.h>
-#include <olectl.h>
-#include <stdlib.h>
-#include <malloc.h>
-#include <crtdbg.h>
-#include <..\..\inc\systools\win32\MtaOleClipb.h>
-
-#include "resource.h"
-
-#define MAX_LOADSTRING 100
-
-// Globale Variablen:
-HINSTANCE g_hInst; // aktuelle Instanz
-HWND g_hwndMain;
-WCHAR szTitle[MAX_LOADSTRING]; // Text der Titelzeile
-WCHAR szWindowClass[MAX_LOADSTRING]; // Text der Titelzeile
-LPSTREAM g_pStm = NULL;
-char* pTextBuff = NULL;
-DWORD lData = 0;
-UINT g_nCBChanges = 0;
-
-// forward declaration
-ATOM MyRegisterClass( HINSTANCE hInstance );
-BOOL InitInstance( HINSTANCE, int );
-HMENU GetSubMenuHandle( HWND hwndParent, UINT uiTopLevelIndex );
-BOOL IsClipboardViewer( HWND hwndParent );
-void SwitchMenuState( HWND hwndParent );
-void RegisterClipboardViewer( BOOL bRegister );
-void ShowAvailableClipboardFormats( HWND hWnd, HDC hdc, PAINTSTRUCT ps, RECT rcWnd );
-void ClearClipboardContent( HWND hWnd );
-
-void CALLBACK OnClipboardContentChange( void );
-LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM );
-LRESULT CALLBACK About( HWND, UINT, WPARAM, LPARAM );
-
-//----------------------------------------------------
-// WinMain
-//----------------------------------------------------
-
-int APIENTRY WinMain(HINSTANCE hInstance,
- HINSTANCE hPrevInstance,
- LPSTR lpCmdLine,
- int nCmdShow )
-{
- // ZU ERLEDIGEN: Fügen Sie hier den Code ein.
- MSG msg;
- HACCEL hAccelTable;
- HRESULT hr = E_FAIL;
-
- // it's important to initialize ole
- // in order to use the clipboard
- //hr = OleInitialize( NULL );
- hr = CoInitializeEx( NULL, COINIT_MULTITHREADED );
-
- g_hInst = hInstance;
-
- // Globale Zeichenfolgen initialisieren
- LoadStringW(g_hInst, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
- LoadStringW(g_hInst, IDC_TESTWIN32, szWindowClass, MAX_LOADSTRING);
- MyRegisterClass(g_hInst);
-
- // Initialisierung der Anwendung durchführen:
- if( !InitInstance( g_hInst, nCmdShow ) )
- {
- return FALSE;
- }
-
- hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_TESTWIN32);
-
- // Hauptnachrichtenschleife:
- while( GetMessage(&msg, NULL, 0, 0) )
- {
- if( !TranslateAccelerator (msg.hwnd, hAccelTable, &msg) )
- {
- TranslateMessage( &msg );
- DispatchMessage( &msg );
- }
- }
-
- // uninitializing the ole libraries
- //OleUninitialize( );
- CoUninitialize( );
-
- return msg.wParam;
-}
-
-
-
-//
-// FUNKTION: MyRegisterClass()
-//
-// AUFGABE: Registriert die Fensterklasse.
-//
-// KOMMENTARE:
-//
-// Diese Funktion und ihre Verwendung sind nur notwendig, wenn dieser Code
-// mit Win32-Systemen vor der 'RegisterClassEx'-Funktion kompatibel sein soll,
-// die zu Windows 95 hinzugefügt wurde. Es ist wichtig diese Funktion aufzurufen,
-// damit der Anwendung kleine Symbole mit den richtigen Proportionen zugewiesen
-// werden.
-//
-ATOM MyRegisterClass( HINSTANCE hInstance )
-{
- WNDCLASSEXW wcex;
-
- wcex.cbSize = sizeof(WNDCLASSEX);
-
- wcex.style = CS_HREDRAW | CS_VREDRAW;
- wcex.lpfnWndProc = (WNDPROC)WndProc;
- wcex.cbClsExtra = 0;
- wcex.cbWndExtra = 0;
- wcex.hInstance = hInstance;
- wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_TESTWIN32);
- wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
- wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
- wcex.lpszMenuName = (LPCWSTR)IDC_TESTWIN32;
- wcex.lpszClassName = szWindowClass;
- wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);
-
- return RegisterClassExW(&wcex);
-}
-
-//
-// FUNKTION: InitInstance(HANDLE, int)
-//
-// AUFGABE: Speichert die Instanzzugriffsnummer und erstellt das Hauptfenster
-//
-// KOMMENTARE:
-//
-// In dieser Funktion wird die Instanzzugriffsnummer in einer globalen Variable
-// gespeichert und das Hauptprogrammfenster erstellt und angezeigt.
-//
-BOOL InitInstance( HINSTANCE hInstance, int nCmdShow )
-{
- g_hwndMain = CreateWindowExW(0, szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
- CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
-
- if( !IsWindow( g_hwndMain ) )
- {
- return FALSE;
- }
-
- ShowWindow( g_hwndMain, nCmdShow );
- UpdateWindow( g_hwndMain );
-
- return TRUE;
-}
-
-//
-// FUNKTION: WndProc(HWND, unsigned, WORD, LONG)
-//
-// AUFGABE: Verarbeitet Nachrichten für das Hauptfenster.
-//
-// WM_COMMAND - Anwendungsmenü verarbeiten
-// WM_PAINT - Hauptfenster darstellen
-// WM_DESTROY - Beendigungsnachricht ausgeben und zurückkehren
-//
-//
-LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
-{
- int wmId;
- int wmEvent;
- PAINTSTRUCT ps;
- HDC hdc;
- WCHAR szHello[MAX_LOADSTRING];
-
-
- LoadStringW(g_hInst, IDS_HELLO, szHello, MAX_LOADSTRING);
-
- switch( message )
- {
- case WM_CREATE:
- ClearClipboardContent( hWnd );
- break;
-
- case WM_COMMAND:
- wmId = LOWORD(wParam);
- wmEvent = HIWORD(wParam);
- // Menüauswahlen analysieren:
- switch( wmId )
- {
- case IDD_CBVIEWER:
- SwitchMenuState( hWnd );
- RegisterClipboardViewer( IsClipboardViewer( hWnd ) );
- break;
-
- case IDM_EXIT:
- DestroyWindow( hWnd );
- break;
-
- default:
- return DefWindowProc( hWnd, message, wParam, lParam );
- }
- break;
-
- case WM_PAINT:
- hdc = BeginPaint (hWnd, &ps);
- // ZU ERLEDIGEN: Hier beliebigen Code zum Zeichnen hinzufügen...
- RECT rt;
- GetClientRect( hWnd, &rt );
-
- if ( IsClipboardViewer( g_hwndMain ) )
- {
- ShowAvailableClipboardFormats( hWnd, hdc, ps, rt );
- }
- else
- {
- WCHAR wcString[MAX_LOADSTRING];
- LoadStringW(g_hInst, IDS_MSG_CBVIEWER_IS_OFF, wcString, MAX_LOADSTRING);
- DrawTextW( hdc, wcString, wcslen( wcString ), &rt, DT_CENTER );
- }
-
- EndPaint( hWnd, &ps );
- break;
-
- case WM_DESTROY:
- PostQuitMessage( 0 );
- break;
-
- default:
- return DefWindowProc( hWnd, message, wParam, lParam );
- }
- return 0;
-}
-
-HMENU GetSubMenuHandle( HWND hwndParent, UINT uiTopLevelIndex )
-{
- HMENU hMenuMain = GetMenu( hwndParent );
- _ASSERT( IsMenu( hMenu ) );
-
- HMENU hSubMenu = GetSubMenu( hMenuMain, uiTopLevelIndex );
- _ASSERT( IsMenu( hSubMenu ) );
-
- return hSubMenu;
-}
-
-BOOL IsClipboardViewer( HWND hwndParent )
-{
- HMENU hSubMenu = GetSubMenuHandle( hwndParent, 0 );
- UINT uiMState = GetMenuState( hSubMenu, 0, MF_BYPOSITION );
- return ( MF_CHECKED == uiMState );
-}
-
-void SwitchMenuState( HWND hwndParent )
-{
- HMENU hSubMenu = GetSubMenuHandle( hwndParent, 0 );
- WCHAR wcMenuString[MAX_LOADSTRING];
-
- if ( IsClipboardViewer( hwndParent ) )
- {
- LoadStringW(g_hInst, IDS_CBVIEWER_OFF, wcMenuString, MAX_LOADSTRING);
- ModifyMenuW( hSubMenu, 0, MF_BYPOSITION | MF_STRING, IDD_CBVIEWER, wcMenuString );
- CheckMenuItem( hSubMenu, 0, MF_BYPOSITION | MF_UNCHECKED );
- }
- else
- {
- LoadStringW(g_hInst, IDS_CBVIEWER_ON, wcMenuString, MAX_LOADSTRING);
- ModifyMenuW( hSubMenu, 0, MF_BYPOSITION | MF_STRING, IDD_CBVIEWER, wcMenuString );
- CheckMenuItem( hSubMenu, 0, MF_BYPOSITION | MF_CHECKED );
- }
-}
-
-void RegisterClipboardViewer( BOOL bRegister )
-{
- if ( bRegister )
- MTARegisterClipboardViewer( OnClipboardContentChange );
- else // unregister
- MTARegisterClipboardViewer( NULL );
-
- InvalidateRect( g_hwndMain, NULL, TRUE );
- UpdateWindow( g_hwndMain );
-}
-
-void ShowAvailableClipboardFormats( HWND hWnd, HDC hdc, PAINTSTRUCT ps, RECT rcWnd )
-{
- if ( !OpenClipboard( hWnd ) )
- {
- WCHAR szErrMsg[] = { L"Couldn't open the clipboard" };
- DrawTextW( hdc, szErrMsg, wcslen( szErrMsg ), &rcWnd, DT_CENTER );
- return;
- }
- else
- {
- WCHAR szCBChangedMsg[100];
-
- wsprintfW( szCBChangedMsg, L"Clipboard content changed %d", g_nCBChanges );
- DrawTextW( hdc, szCBChangedMsg, wcslen( szCBChangedMsg ), &rcWnd, DT_CENTER );
-
- CloseClipboard( );
- }
-}
-
-void ClearClipboardContent( HWND hWnd )
-{
- if ( OpenClipboard( hWnd ) )
- {
- EmptyClipboard( );
- CloseClipboard( );
- }
-}
-
-// clipboard viewer callback function
-void CALLBACK OnClipboardContentChange( void )
-{
- ++g_nCBChanges;
- InvalidateRect( g_hwndMain, NULL, TRUE );
- UpdateWindow( g_hwndMain );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/clipboardwben/testviewer/cbvtest.rc b/sal/workben/clipboardwben/testviewer/cbvtest.rc
deleted file mode 100644
index b6c5163f7..000000000
--- a/sal/workben/clipboardwben/testviewer/cbvtest.rc
+++ /dev/null
@@ -1,127 +0,0 @@
-//Microsoft Developer Studio generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#define APSTUDIO_HIDDEN_SYMBOLS
-#include "windows.h"
-#undef APSTUDIO_HIDDEN_SYMBOLS
-#include "resource.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// German (Germany) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
-#ifdef _WIN32
-LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-IDI_TESTWIN32 ICON DISCARDABLE "TestWin32.ICO"
-IDI_SMALL ICON DISCARDABLE "SMALL.ICO"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Menu
-//
-
-IDC_TESTWIN32 MENU DISCARDABLE
-BEGIN
- POPUP "&Datei"
- BEGIN
- MENUITEM "&CB Viewer off", IDD_CBVIEWER
- MENUITEM SEPARATOR
- MENUITEM "&Beenden", IDM_EXIT
- END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Accelerator
-//
-
-IDC_TESTWIN32 ACCELERATORS MOVEABLE PURE
-BEGIN
- "?", IDM_ABOUT, ASCII, ALT
- "/", IDM_ABOUT, ASCII, ALT
-END
-
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-2 TEXTINCLUDE DISCARDABLE
-BEGIN
- "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
- "#include ""windows.h""\r\n"
- "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
- "#include ""resource.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE DISCARDABLE
-BEGIN
- "\r\n"
- "\0"
-END
-
-1 TEXTINCLUDE DISCARDABLE
-BEGIN
- "resource.h\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// String Table
-//
-
-STRINGTABLE DISCARDABLE
-BEGIN
- IDS_APP_TITLE "TestWin32"
- IDS_HELLO "Hallo Welt!"
- IDC_TESTWIN32 "TESTWIN32"
- IDS_CBVIEWER_ON "CB Viewer on"
- IDS_CBVIEWER_OFF "CB Viewer off"
-END
-
-STRINGTABLE DISCARDABLE
-BEGIN
- IDS_MSG_CBVIEWER_IS_OFF "Clipboard Viewer inactive!"
-END
-
-#endif // German (Germany) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
diff --git a/sal/workben/clipboardwben/testviewer/makefile.mk b/sal/workben/clipboardwben/testviewer/makefile.mk
deleted file mode 100644
index fa3e47cb4..000000000
--- a/sal/workben/clipboardwben/testviewer/makefile.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-
-PRJNAME=sal
-TARGET=cbvtest
-LIBTARGET=NO
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-# --- Files --------------------------------------------------------
-
-#
-# test clipboard paste
-#
- # --- Resources ----------------------------------------------------
- RCFILES= cbvtest.rc
-
- OBJFILES= $(OBJ)$/cbvtest.obj
-
- APP1TARGET= $(TARGET)
- APP1OBJS= $(OBJFILES)
- APP1NOSAL= TRUE
- APP1NOSVRES= $(RES)$/$(TARGET).res
-
- APP1STDLIBS+=$(OLE32LIB) $(USER32LIB) $(KERNEL32LIB)
-
- APP1LIBS=$(LB)$/iole9x.lib \
- $(LB)$/tools32.lib
-
- APP1DEPN= makefile.mk $(APP1NOSVRES)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
-
diff --git a/sal/workben/clipboardwben/testviewer/resource.h b/sal/workben/clipboardwben/testviewer/resource.h
deleted file mode 100644
index 38cabb29c..000000000
--- a/sal/workben/clipboardwben/testviewer/resource.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-//{{NO_DEPENDENCIES}}
-// Microsoft Developer Studio generated include file.
-// Used by cbvtest.rc
-//
-#define IDC_MYICON 2
-#define IDD_TESTWIN32_DIALOG 102
-#define IDD_ABOUTBOX 103
-#define IDS_APP_TITLE 103
-#define IDM_ABOUT 104
-#define IDM_EXIT 105
-#define IDS_HELLO 106
-#define IDI_TESTWIN32 107
-#define IDI_SMALL 108
-#define IDC_TESTWIN32 109
-#define IDS_CBVIEWER_ON 110
-#define IDS_CBVIEWER_OFF 111
-#define IDS_MSG_CBVIEWER_IS_OFF 112
-#define IDR_MAINFRAME 128
-#define IDD_PASTE 32771
-#define IDD_CBVIEWER 32771
-#define IDC_STATIC -1
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 129
-#define _APS_NEXT_COMMAND_VALUE 32772
-#define _APS_NEXT_CONTROL_VALUE 1000
-#define _APS_NEXT_SYMED_VALUE 110
-#endif
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/clipboardwben/testviewer/small.ico b/sal/workben/clipboardwben/testviewer/small.ico
deleted file mode 100644
index 8f94d9aa8..000000000
--- a/sal/workben/clipboardwben/testviewer/small.ico
+++ /dev/null
Binary files differ
diff --git a/sal/workben/export.exp b/sal/workben/export.exp
deleted file mode 100644
index 8a37bf229..000000000
--- a/sal/workben/export.exp
+++ /dev/null
@@ -1 +0,0 @@
-registerAllTestFunction \ No newline at end of file
diff --git a/sal/workben/getlocaleinfotest.cxx b/sal/workben/getlocaleinfotest.cxx
deleted file mode 100644
index a16fa7b85..000000000
--- a/sal/workben/getlocaleinfotest.cxx
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <rtl/locale.h>
-#include <osl/nlsupport.h>
-#include <rtl/ustring.hxx>
-
-int _cdecl main( int argc, char * argv[] )
-{
- rtl::OUString lang(RTL_CONSTASCII_USTRINGPARAM("de"));
- rtl::OUString country(RTL_CONSTASCII_USTRINGPARAM("DE"));
- rtl_TextEncoding rtlTextEnc;
-
- rtl_Locale* rtlLocale =
- rtl_locale_register( lang.getStr( ), country.getStr( ), NULL );
-
- if ( rtlLocale )
- rtlTextEnc = osl_getTextEncodingFromLocale( rtlLocale );
-
- return(0);
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/makefile.mk b/sal/workben/makefile.mk
deleted file mode 100644
index 8c0e7c4ed..000000000
--- a/sal/workben/makefile.mk
+++ /dev/null
@@ -1,224 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..
-
-PRJNAME=sal
-TARGET=workben
-LIBTARGET=NO
-TARGETTYPE=CUI
-NO_DEFAULT_STL=YES
-
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+=$(LFS_CFLAGS)
-CXXFLAGS+=$(LFS_CFLAGS)
-
-# --- Files --------------------------------------------------------
-
-#
-# t_readline
-#
-OBJFILES+=\
- $(OBJ)$/t_readline.obj
-
-APP1TARGET=t_readline
-APP1OBJS=$(OBJ)$/t_readline.obj
-APP1STDLIBS=$(SALLIB)
-APP1DEPN=$(SLB)$/sal.lib
-APP1RPATH=UREBIN
-
-#
-# testfile
-#
-OBJFILES+=\
- $(OBJ)$/testfile.obj
-
-APP1TARGET=testfile
-APP1OBJS=$(OBJ)$/testfile.obj
-APP1STDLIBS=$(SALLIB)
-APP1DEPN=$(SLB)$/sal.lib
-
-#
-# testpipe
-#
-OBJFILES+=\
- $(OBJ)$/testpipe.obj
-
-APP2TARGET=testpipe
-APP2OBJS=$(OBJ)$/testpipe.obj
-APP2STDLIBS=$(SALLIB)
-APP2DEPN=$(SLB)$/sal.lib
-
-#
-# testpip2
-#
-OBJFILES+=\
- $(OBJ)$/testpip2.obj
-
-APP3TARGET=testpip2
-APP3OBJS=$(OBJ)$/testpip2.obj
-APP3STDLIBS=$(SALLIB)
-APP3DEPN=$(SLB)$/sal.lib
-
-#
-# testproc
-#
-OBJFILES+=\
- $(OBJ)$/testproc.obj
-
-APP4TARGET=testproc
-APP4OBJS=$(OBJ)$/testproc.obj
-APP4STDLIBS=$(SALLIB)
-APP4DEPN=$(SLB)$/sal.lib
-
-#
-# measure_oustrings
-#
-OBJFILES+=\
- $(OBJ)$/measure_oustrings.obj
-
-.IF "$(HAVE_CALLGRIND)" == "YES"
-CFLAGSCXX+=-DHAVE_CALLGRIND
-.ENDIF
-
-APP6TARGET=measure_oustrings
-APP6OBJS=$(OBJ)$/measure_oustrings.obj
-APP6STDLIBS=$(SALLIB)
-APP6DEPN=$(SLB)$/sal.lib
-
-#
-# t_random.
-#
-OBJFILES+=\
- $(OBJ)$/t_random.obj
-
-APP7TARGET=t_random
-APP7OBJS=$(OBJ)$/t_random.obj
-APP7STDLIBS=$(SALLIB)
-APP7DEPN=$(SLB)$/sal.lib
-
-#
-# t_cipher
-#
-OBJFILES+=\
- $(OBJ)$/t_cipher.obj
-
-APP8TARGET=t_cipher
-APP8OBJS=$(OBJ)$/t_cipher.obj
-APP8STDLIBS=$(SALLIB)
-APP8DEPN=$(SLB)$/sal.lib
-
-#
-# t_digest.
-#
-OBJFILES+=\
- $(OBJ)$/t_digest.obj
-
-APP9TARGET=t_digest
-APP9OBJS=$(OBJ)$/t_digest.obj
-APP9STDLIBS=$(SALLIB)
-APP9DEPN=$(SLB)$/sal.lib
-
-#
-# getlitest
-#
-.IF "$(TESTAPP)" == "getlocaleinfotest"
-OBJFILES+=\
- $(OBJ)$/getlocaleinfotest.obj
-
-APP10TARGET=getlitest
-APP10OBJS=$(OBJ)$/getlocaleinfotest.obj
-
-APP10STDLIBS=\
- $(KERNEL32LIB)
-
-APP10LIBS=\
- $(LB)$/kernel9x.lib\
- $(LB)$/isal.lib
-
-APP10DEPN=$(LB)$/isal.lib
-.ENDIF
-
-.IF "$(TESTAPP)" == "test_osl_getVolInfo"
-
-SHL10OBJS=$(SLO)$/t_osl_getVolInfo.obj
-SHL10TARGET=togvi
-
-.IF "$(GUI)" == "WNT"
-APP10STDLIBS=$(KERNEL32LIB)
-SHL10STDLIBS=$(LB)$/isal.lib
-SHL10STDLIBS+=$(SOLARLIBDIR)$/cppunit.lib
-.ENDIF
-
-.IF "$(GUI)" == "UNX"
-SHL10STDLIBS=$(LB)$/libsal.so
-SHL10STDLIBS+=$(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a
-.ENDIF
-
-SHL10IMPLIB=i$(SHL1TARGET)
-SHL10DEF=$(MISC)$/$(SHL1TARGET).def
-DEF10NAME=$(SHL1TARGET)
-DEF10EXPORTFILE=export.exp
-.ENDIF
-
-.IF "$(TESTAPP)" == "test_osl_joinProcess"
-OBJFILES+=\
- $(OBJ)$/t_ojp_exe.obj
-APP10TARGET=ojpx
-APP10OBJS=$(OBJ)$/t_ojp_exe.obj
-
-.IF "$(GUI)" == "UNX"
-APP10STDLIBS=$(LB)$/libsal.so
-.ENDIF
-
-SHL10OBJS=$(SLO)$/t_osl_joinProcess.obj
-SHL10TARGET=tojp
-
-.IF "$(GUI)" == "WNT"
-APP10STDLIBS=$(KERNEL32LIB)
-SHL10STDLIBS=$(LB)$/isal.lib
-SHL10STDLIBS+=$(SOLARLIBDIR)$/cppunit.lib
-.ENDIF
-
-.IF "$(GUI)" == "UNX"
-SHL10STDLIBS=$(LB)$/libsal.so
-SHL10STDLIBS+=$(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a
-.ENDIF
-
-SHL10IMPLIB=i$(SHL1TARGET)
-SHL10DEF=$(MISC)$/$(SHL1TARGET).def
-DEF10NAME=$(SHL1TARGET)
-DEF10EXPORTFILE=export.exp
-.ENDIF
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/sal/workben/measure_oustrings.cxx b/sal/workben/measure_oustrings.cxx
deleted file mode 100644
index f9ce02bec..000000000
--- a/sal/workben/measure_oustrings.cxx
+++ /dev/null
@@ -1,282 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * Version: MPL 1.1 / GPLv3+ / LGPLv3+
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (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.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Initial Developer of the Original Code is
- * [ CaolĂĄn McNamara <caolanm:redhat.com> ]
- * Portions created by CaolĂĄn McNamara are Copyright (C) 2010 * Red Hat, Inc.
- * All Rights Reserved.
- *
- * Contributor(s): CaolĂĄn McNamara <caolanm@redhat.com>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 3 or later (the "GPLv3+"), or
- * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
- * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
- * instead of those above.
- */
-#include <sal/main.h>
-#include <rtl/ustring.hxx>
-#include <osl/time.h>
-#include <osl/process.h>
-
-#include <iostream>
-#include <sstream>
-#include <fstream>
-
-#ifdef HAVE_CALLGRIND
-# include <valgrind/callgrind.h>
-int COUNT = 1;
-#else
-# define CALLGRIND_DUMP_STATS_AT
-# define CALLGRIND_START_INSTRUMENTATION
-# define CALLGRIND_STOP_INSTRUMENTATION
-# define CALLGRIND_ZERO_STATS
-int COUNT = 10000000;
-#endif
-
-#if defined __GXX_EXPERIMENTAL_CXX0X__
-# define HAVE_CXX_Ox 1
-#endif
-
-#ifdef HAVE_CXX_Ox
-# define SAL_DECLARE_UTF16(str) u ## str
-#elif (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x550)
-# define SAL_DECLARE_UTF16(str) U ## str
-#elif __SIZEOF_WCHAR_T__ == 2
-# define SAL_DECLARE_UTF16(str) L ## str
-#endif
-
-#ifdef SAL_DECLARE_UTF16
-# define RTL_CONSTASCII_USTRINGPARAM_WIDE(str) \
- reinterpret_cast<const sal_Unicode*>(SAL_DECLARE_UTF16(str)), (SAL_N_ELEMENTS(str)-1)
-#endif
-
-#define RTL_CONSTASCII_USTRINGPARAM_CLASSIC(str) \
- str, ((sal_Int32)(SAL_N_ELEMENTS(str)-1)), RTL_TEXTENCODING_ASCII_US
-
-int currenttest = 1;
-oslProcessInfo pidinfo;
-
-class TimerMeasure
-{
-private:
- const char *m_pMessage;
- sal_uInt32 m_nStartTime, m_nEndTime;
-public:
- TimerMeasure(const char *pMessage)
- : m_pMessage(pMessage)
- {
- m_nStartTime = osl_getGlobalTimer();
- CALLGRIND_START_INSTRUMENTATION
- CALLGRIND_ZERO_STATS
- }
-
- ~TimerMeasure()
- {
- CALLGRIND_STOP_INSTRUMENTATION
- CALLGRIND_DUMP_STATS_AT(m_pMessage);
- m_nEndTime = osl_getGlobalTimer();
- std::cout << m_pMessage << std::endl;
- std::cout << " callgrind Instruction cost is: " << std::flush;
-
- std::stringstream aFileName;
- aFileName << "callgrind.out." << pidinfo.Ident << "." << currenttest;
-
- std::ifstream myfile(aFileName.str(), std::ios::in);
- if (myfile.is_open())
- {
- std::stringstream aGetGrindStats;
- aGetGrindStats << "callgrind_annotate " << aFileName.str() <<
- " | grep TOTALS | sed 's/ PROGRAM TOTALS//'";
- system(aGetGrindStats.str().c_str());
- myfile.close();
- }
- else
- std::cout << "Unavailable" << std::endl;
- currenttest++;
-#ifndef HAVE_CALLGRIND
- std::cout << " Elapsed Time is: " << m_nEndTime - m_nStartTime << "ms" << std::endl;
-#endif
- }
-};
-
-#define TIME(msg, test) \
-{\
- { test } /*Run the test one to shake out any firsttime lazy loading stuff*/ \
- TimerMeasure aMeasure(msg);\
- for (int i = 0; i < COUNT; ++i)\
- test\
-}
-
-SAL_IMPLEMENT_MAIN()
-{
- CALLGRIND_STOP_INSTRUMENTATION
- CALLGRIND_ZERO_STATS
-
- pidinfo.Size = sizeof(pidinfo);
- osl_getProcessInfo(0, osl_Process_IDENTIFIER, &pidinfo);
-
-#ifdef HAVE_CALLGRIND
- std::cout << "Execute using: valgrind --tool=callgrind ./measure_oustrings" << std::endl;
-#else
- //get my cpu fan up to speed :-)
- for (int i = 0; i < 10000000; ++i)
- {
- rtl::OUString sFoo(rtl::OUString::createFromAscii("X"));
- rtl::OUString sBar(RTL_CONSTASCII_USTRINGPARAM_CLASSIC("X"));
- rtl::OUString sBaz(static_cast<sal_Unicode>('X'));
- rtl::OUString sNone;
- }
-#endif
-
- std::cout << "--Empty Strings Construction--" << std::endl;
-
- TIME
- (
- "rtl::OUString()",
- rtl::OUString sFoo;
- )
-
- TIME
- (
- "rtl::OUString::createFromAscii()",
- rtl::OUString sFoo(rtl::OUString::createFromAscii(""));
- )
-
- std::cout << "--Single Chars Construction--" << std::endl;
-
- TIME
- (
- "rtl::OUString(static_cast<sal_Unicode>('X')",
- rtl::OUString sBaz(static_cast<sal_Unicode>('X'));
- )
-
-#ifdef SAL_DECLARE_UTF16
- TIME
- (
- "rtl::OUString(RTL_CONSTASCII_USTRINGPARAM_WIDE(\"X\"))",
- rtl::OUString sBar(RTL_CONSTASCII_USTRINGPARAM_WIDE("X"));
- )
-#endif
-
- TIME
- (
- "rtl::OUString(RTL_CONSTASCII_USTRINGPARAM_CLASSIC(\"X\"))",
- rtl::OUString sBar(RTL_CONSTASCII_USTRINGPARAM_CLASSIC("X"));
- )
-
- TIME
- (
- "rtl::OUString::createFromAscii(\"X\")",
- rtl::OUString sFoo(rtl::OUString::createFromAscii("X"));
- )
-
- std::cout << "--MultiChar Strings Construction--" << std::endl;
-
-#ifdef SAL_DECLARE_UTF16
- TIME
- (
- "rtl::OUString(RTL_CONSTASCII_USTRINGPARAM_WIDE(\"XXXXXXXX\"))",
- rtl::OUString sBar(RTL_CONSTASCII_USTRINGPARAM_WIDE("XXXXXXXXXXXXXXX"));
- )
-#endif
-
- TIME
- (
- "rtl::OUString(RTL_CONSTASCII_USTRINGPARAM_CLASSIC(\"XXXXXXXX\"))",
- rtl::OUString sBar(RTL_CONSTASCII_USTRINGPARAM_CLASSIC("XXXXXXXXXXXXXXX"));
- )
-
- TIME
- (
- "rtl::OUString::createFromAscii(\"XXXXXXXX\")",
- rtl::OUString sFoo(rtl::OUString::createFromAscii("XXXXXXXXXXXXXXX"));
- )
-
- std::cout << "--Ascii Unequal Comparison--" << std::endl;
-
- rtl::OUString sCompare(RTL_CONSTASCII_USTRINGPARAM_CLASSIC("XXXXXXXXXXXXXXX"));
-
- TIME
- (
- "rtl::OUString::equalsAsciiL",
- sCompare.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("apple"));
- )
-
- rtl::OUString sUnequalCompareTo(RTL_CONSTASCII_USTRINGPARAM_CLASSIC("apple"));
-
- TIME
- (
- "operator==(precreated OUString(\"apple\"))",
- sCompare == sUnequalCompareTo;
- )
-
- TIME
- (
- "rtl::OUString::equalsAscii",
- sCompare.equalsAscii("apple");
- )
-
- //(const sal_Char*, sal_Int32) version has different semantics
- TIME
- (
- "rtl::OUString::compareToAscii (const sal_Char*)",
- sCompare.compareToAscii("apple");
- )
-
- TIME
- (
- "operator==(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM_CLASSIC(\"apple\")))",
- sCompare == rtl::OUString(RTL_CONSTASCII_USTRINGPARAM_CLASSIC("apple"));
- )
-
- std::cout << "--Ascii Equal Comparison--" << std::endl;
-
- TIME
- (
- "rtl::OUString::equalsAsciiL",
- sCompare.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("XXXXXXXXXXXXXXX"));
- )
-
- rtl::OUString sEqualCompareTo(RTL_CONSTASCII_USTRINGPARAM_CLASSIC("XXXXXXXXXXXXXXX"));
-
- TIME
- (
- "operator==(precreated OUString(\"XXXXXXXXXXXXXXX\"))",
- sCompare == sEqualCompareTo;
- )
-
- TIME
- (
- "rtl::OUString::equalsAscii",
- sCompare.equalsAscii("XXXXXXXXXXXXXXX");
- )
-
- //(const sal_Char*, sal_Int32) version has different semantics
- TIME
- (
- "rtl::OUString::compareToAscii (const sal_Char*)",
- sCompare.compareToAscii("XXXXXXXXXXXXXXX");
- )
-
- TIME
- (
- "operator==(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM_CLASSIC(\"XXXXXXXXXXXXXXX\"))",
- sCompare == rtl::OUString(RTL_CONSTASCII_USTRINGPARAM_CLASSIC("XXXXXXXXXXXXXXX"));
- )
-
- return 0;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/t_cipher.c b/sal/workben/t_cipher.c
deleted file mode 100644
index e1445f29c..000000000
--- a/sal/workben/t_cipher.c
+++ /dev/null
@@ -1,402 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#include <sal/types.h>
-#include <sal/macros.h>
-#include <osl/diagnose.h>
-#include <rtl/cipher.h>
-
-#include <stdio.h>
-#include <string.h>
-
-#define NUM_VARIABLE_KEY_TESTS 34
-#define NUM_SET_KEY_TESTS 24
-
-/* plaintext bytes -- left halves */
-unsigned long plaintext_l[NUM_VARIABLE_KEY_TESTS + NUM_SET_KEY_TESTS] = {
- 0x00000000l, 0xFFFFFFFFl, 0x10000000l, 0x11111111l, 0x11111111l,
- 0x01234567l, 0x00000000l, 0x01234567l, 0x01A1D6D0l, 0x5CD54CA8l,
- 0x0248D438l, 0x51454B58l, 0x42FD4430l, 0x059B5E08l, 0x0756D8E0l,
- 0x762514B8l, 0x3BDD1190l, 0x26955F68l, 0x164D5E40l, 0x6B056E18l,
- 0x004BD6EFl, 0x480D3900l, 0x437540C8l, 0x072D43A0l, 0x02FE5577l,
- 0x1D9D5C50l, 0x30553228l, 0x01234567l, 0x01234567l, 0x01234567l,
- 0xFFFFFFFFl, 0x00000000l, 0x00000000l, 0xFFFFFFFFl, 0xFEDCBA98l,
- 0xFEDCBA98l, 0xFEDCBA98l, 0xFEDCBA98l, 0xFEDCBA98l, 0xFEDCBA98l,
- 0xFEDCBA98l, 0xFEDCBA98l, 0xFEDCBA98l, 0xFEDCBA98l, 0xFEDCBA98l,
- 0xFEDCBA98l, 0xFEDCBA98l, 0xFEDCBA98l, 0xFEDCBA98l, 0xFEDCBA98l,
- 0xFEDCBA98l, 0xFEDCBA98l, 0xFEDCBA98l, 0xFEDCBA98l, 0xFEDCBA98l,
- 0xFEDCBA98l, 0xFEDCBA98l, 0xFEDCBA98l };
-
-/* plaintext bytes -- right halves */
-unsigned long plaintext_r[NUM_VARIABLE_KEY_TESTS + NUM_SET_KEY_TESTS] = {
- 0x00000000l, 0xFFFFFFFFl, 0x00000001l, 0x11111111l, 0x11111111l,
- 0x89ABCDEFl, 0x00000000l, 0x89ABCDEFl, 0x39776742l, 0x3DEF57DAl,
- 0x06F67172l, 0x2DDF440Al, 0x59577FA2l, 0x51CF143Al, 0x774761D2l,
- 0x29BF486Al, 0x49372802l, 0x35AF609Al, 0x4F275232l, 0x759F5CCAl,
- 0x09176062l, 0x6EE762F2l, 0x698F3CFAl, 0x77075292l, 0x8117F12Al,
- 0x18F728C2l, 0x6D6F295Al, 0x89ABCDEFl, 0x89ABCDEFl, 0x89ABCDEFl,
- 0xFFFFFFFFl, 0x00000000l, 0x00000000l, 0xFFFFFFFFl, 0x76543210l,
- 0x76543210l, 0x76543210l, 0x76543210l, 0x76543210l, 0x76543210l,
- 0x76543210l, 0x76543210l, 0x76543210l, 0x76543210l, 0x76543210l,
- 0x76543210l, 0x76543210l, 0x76543210l, 0x76543210l, 0x76543210l,
- 0x76543210l, 0x76543210l, 0x76543210l, 0x76543210l, 0x76543210l,
- 0x76543210l, 0x76543210l, 0x76543210l };
-
-/* key bytes for variable key tests */
-unsigned char variable_key[NUM_VARIABLE_KEY_TESTS][8] = {
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
- { 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11 },
- { 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF },
- { 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10 },
- { 0x7C, 0xA1, 0x10, 0x45, 0x4A, 0x1A, 0x6E, 0x57 },
- { 0x01, 0x31, 0xD9, 0x61, 0x9D, 0xC1, 0x37, 0x6E },
- { 0x07, 0xA1, 0x13, 0x3E, 0x4A, 0x0B, 0x26, 0x86 },
- { 0x38, 0x49, 0x67, 0x4C, 0x26, 0x02, 0x31, 0x9E },
- { 0x04, 0xB9, 0x15, 0xBA, 0x43, 0xFE, 0xB5, 0xB6 },
- { 0x01, 0x13, 0xB9, 0x70, 0xFD, 0x34, 0xF2, 0xCE },
- { 0x01, 0x70, 0xF1, 0x75, 0x46, 0x8F, 0xB5, 0xE6 },
- { 0x43, 0x29, 0x7F, 0xAD, 0x38, 0xE3, 0x73, 0xFE },
- { 0x07, 0xA7, 0x13, 0x70, 0x45, 0xDA, 0x2A, 0x16 },
- { 0x04, 0x68, 0x91, 0x04, 0xC2, 0xFD, 0x3B, 0x2F },
- { 0x37, 0xD0, 0x6B, 0xB5, 0x16, 0xCB, 0x75, 0x46 },
- { 0x1F, 0x08, 0x26, 0x0D, 0x1A, 0xC2, 0x46, 0x5E },
- { 0x58, 0x40, 0x23, 0x64, 0x1A, 0xBA, 0x61, 0x76 },
- { 0x02, 0x58, 0x16, 0x16, 0x46, 0x29, 0xB0, 0x07 },
- { 0x49, 0x79, 0x3E, 0xBC, 0x79, 0xB3, 0x25, 0x8F },
- { 0x4F, 0xB0, 0x5E, 0x15, 0x15, 0xAB, 0x73, 0xA7 },
- { 0x49, 0xE9, 0x5D, 0x6D, 0x4C, 0xA2, 0x29, 0xBF },
- { 0x01, 0x83, 0x10, 0xDC, 0x40, 0x9B, 0x26, 0xD6 },
- { 0x1C, 0x58, 0x7F, 0x1C, 0x13, 0x92, 0x4F, 0xEF },
- { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
- { 0x1F, 0x1F, 0x1F, 0x1F, 0x0E, 0x0E, 0x0E, 0x0E },
- { 0xE0, 0xFE, 0xE0, 0xFE, 0xF1, 0xFE, 0xF1, 0xFE },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
- { 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF },
- { 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10 }};
-
-/* key bytes for set key tests */
-unsigned char set_key[24] = {
- 0xF0, 0xE1, 0xD2, 0xC3, 0xB4, 0xA5, 0x96, 0x87,
- 0x78, 0x69, 0x5A, 0x4B, 0x3C, 0x2D, 0x1E, 0x0F,
- 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 };
-
-/* ciphertext bytes -- left halves */
-unsigned long ciphertext_l[NUM_VARIABLE_KEY_TESTS + NUM_SET_KEY_TESTS] = {
- 0x4EF99745l, 0x51866FD5l, 0x7D856F9Al, 0x2466DD87l, 0x61F9C380l,
- 0x7D0CC630l, 0x4EF99745l, 0x0ACEAB0Fl, 0x59C68245l, 0xB1B8CC0Bl,
- 0x1730E577l, 0xA25E7856l, 0x353882B1l, 0x48F4D088l, 0x432193B7l,
- 0x13F04154l, 0x2EEDDA93l, 0xD887E039l, 0x5F99D04Fl, 0x4A057A3Bl,
- 0x452031C1l, 0x7555AE39l, 0x53C55F9Cl, 0x7A8E7BFAl, 0xCF9C5D7Al,
- 0xD1ABB290l, 0x55CB3774l, 0xFA34EC48l, 0xA7907951l, 0xC39E072Dl,
- 0x014933E0l, 0xF21E9A77l, 0x24594688l, 0x6B5C5A9Cl, 0xF9AD597Cl,
- 0xE91D21C1l, 0xE9C2B70Al, 0xBE1E6394l, 0xB39E4448l, 0x9457AA83l,
- 0x8BB77032l, 0xE87A244El, 0x15750E7Al, 0x122BA70Bl, 0x3A833C9Al,
- 0x9409DA87l, 0x884F8062l, 0x1F85031Cl, 0x79D9373Al, 0x93142887l,
- 0x03429E83l, 0xA4299E27l, 0xAFD5AED1l, 0x10851C0El, 0xE6F51ED7l,
- 0x64A6E14Al, 0x80C7D7D4l, 0x05044B62l };
-
-/* ciphertext bytes -- right halves */
-unsigned long ciphertext_r[NUM_VARIABLE_KEY_TESTS + NUM_SET_KEY_TESTS] = {
- 0x6198DD78l, 0xB85ECB8Al, 0x613063F2l, 0x8B963C9Dl, 0x2281B096l,
- 0xAFDA1EC7l, 0x6198DD78l, 0xC6A0A28Dl, 0xEB05282Bl, 0x250F09A0l,
- 0x8BEA1DA4l, 0xCF2651EBl, 0x09CE8F1Al, 0x4C379918l, 0x8951FC98l,
- 0xD69D1AE5l, 0xFFD39C79l, 0x3C2DA6E3l, 0x5B163969l, 0x24D3977Bl,
- 0xE4FADA8El, 0xF59B87BDl, 0xB49FC019l, 0x937E89A3l, 0x4986ADB5l,
- 0x658BC778l, 0xD13EF201l, 0x47B268B2l, 0x08EA3CAEl, 0x9FAC631Dl,
- 0xCDAFF6E4l, 0xB71C49BCl, 0x5754369Al, 0x5D9E0A5Al, 0x49DB005El,
- 0xD961A6D6l, 0x1BC65CF3l, 0x08640F05l, 0x1BDB1E6El, 0xB1928C0Dl,
- 0xF960629Dl, 0x2CC85E82l, 0x4F4EC577l, 0x3AB64AE0l, 0xFFC537F6l,
- 0xA90F6BF2l, 0x5060B8B4l, 0x19E11968l, 0x714CA34Fl, 0xEE3BE15Cl,
- 0x8CE2D14Bl, 0x469FF67Bl, 0xC1BC96A8l, 0x3858DA9Fl, 0x9B9DB21Fl,
- 0xFD36B46Fl, 0x5A5479ADl, 0xFA52D080l };
-
-
-static sal_uInt8 cbc_key[16] =
-{
- 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
- 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87
-};
-static sal_uInt8 cbc_iv[8] =
-{
- 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10
-};
-
-static sal_Char cbc_data[40] = "7654321 Now is the time for ";
-
-static sal_uInt8 arcfour_key[6][30] =
-{
- { 8, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef },
- { 8, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef },
- { 8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 4, 0xef, 0x01, 0x23, 0x45 },
- { 8, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef },
- { 4, 0xef, 0x01, 0x23, 0x45 }
-};
-static sal_uInt8 arcfour_data_len[6] =
-{
- 8, 8, 8, 20, 28, 10
-};
-static sal_uInt8 arcfour_data[6][30] =
-{
- { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0xff },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xff },
- { 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0,
- 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0,
- 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0,
- 0x12, 0x34, 0x56, 0x78, 0xff },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xff }
-};
-
-#if OSL_DEBUG_LEVEL > 0
-static sal_uInt8 ecb_ok[32] =
-{
- 0x2A, 0xFD, 0x7D, 0xAA, 0x60, 0x62, 0x6B, 0xA3,
- 0x86, 0x16, 0x46, 0x8C, 0xC2, 0x9C, 0xF6, 0xE1,
- 0x29, 0x1E, 0x81, 0x7C, 0xC7, 0x40, 0x98, 0x2D,
- 0x6F, 0x87, 0xAC, 0x5F, 0x17, 0x1A, 0xAB, 0xEA
-};
-static sal_uInt8 cbc_ok[32] =
-{
- 0x6B, 0x77, 0xB4, 0xD6, 0x30, 0x06, 0xDE, 0xE6,
- 0x05, 0xB1, 0x56, 0xE2, 0x74, 0x03, 0x97, 0x93,
- 0x58, 0xDE, 0xB9, 0xE7, 0x15, 0x46, 0x16, 0xD9,
- 0x59, 0xF1, 0x65, 0x2B, 0xD5, 0xFF, 0x92, 0xCC
-};
-static sal_uInt8 cfb_ok[] =
-{
- 0xE7, 0x32, 0x14, 0xA2, 0x82, 0x21, 0x39, 0xCA,
- 0xF2, 0x6E, 0xCF, 0x6D, 0x2E, 0xB9, 0xE7, 0x6E,
- 0x3D, 0xA3, 0xDE, 0x04, 0xD1, 0x51, 0x72, 0x00,
- 0x51, 0x9D, 0x57, 0xA6, 0xC3
-};
-static sal_uInt8 arcfour_ok[6][30] =
-{
- { 0x75, 0xb7, 0x87, 0x80, 0x99, 0xe0, 0xc5, 0x96, 0x00},
- { 0x74, 0x94, 0xc2, 0xe7, 0x10, 0x4b, 0x08, 0x79, 0x00},
- { 0xde, 0x18, 0x89, 0x41, 0xa3, 0x37, 0x5d, 0x3a, 0x00},
- { 0xd6, 0xa1, 0x41, 0xa7, 0xec, 0x3c, 0x38, 0xdf,
- 0xbd, 0x61, 0x5a, 0x11, 0x62, 0xe1, 0xc7, 0xba,
- 0x36, 0xb6, 0x78, 0x58, 0x00 },
- { 0x66, 0xa0, 0x94, 0x9f, 0x8a, 0xf7, 0xd6, 0x89,
- 0x1f, 0x7f, 0x83, 0x2b, 0xa8, 0x33, 0xc0, 0x0c,
- 0x89, 0x2e, 0xbe, 0x30, 0x14, 0x3c, 0xe2, 0x87,
- 0x40, 0x01, 0x1e, 0xcf, 0x00 },
- { 0xd6, 0xa1, 0x41, 0xa7, 0xec, 0x3c, 0x38, 0xdf,
- 0xbd, 0x61, 0x00}
-};
-#endif
-
-int SAL_CALL main (void)
-{
- rtlCipher cipher;
-
- /* ECB */
- cipher = rtl_cipher_create (rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeECB);
- OSL_ASSERT(cipher != 0);
- if (cipher != 0)
- {
- rtlCipherError result;
- sal_uInt8 ecb_in[40], ecb_out[40];
- sal_uInt32 length = strlen(cbc_data) + 1;
-
- result = rtl_cipher_init (
- cipher, rtl_Cipher_DirectionBoth,
- cbc_key, sizeof(cbc_key), NULL, 0);
- OSL_ASSERT(result == rtl_Cipher_E_None);
-
- memset (ecb_out, 0, sizeof(ecb_out));
- result = rtl_cipher_encode (
- cipher, cbc_data, length, ecb_out, sizeof(ecb_out));
- OSL_ASSERT(result == rtl_Cipher_E_None);
- OSL_ASSERT(memcmp (ecb_out, ecb_ok, sizeof(ecb_ok)) == 0);
-
- memset (ecb_in, 0, sizeof(ecb_in));
- result = rtl_cipher_decode (
- cipher, ecb_out, length, ecb_in, sizeof(ecb_in));
- OSL_ASSERT(result == rtl_Cipher_E_None);
- OSL_ASSERT(memcmp (ecb_in, cbc_data, length) == 0);
-
- rtl_cipher_destroy (cipher);
- }
-
- /* CBC */
- cipher = rtl_cipher_create (rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeCBC);
- OSL_ASSERT(cipher != 0);
- if (cipher != 0)
- {
- rtlCipherError result;
- sal_uInt8 cbc_in[40], cbc_out[40];
- sal_uInt32 length = strlen(cbc_data) + 1;
-
- result = rtl_cipher_init (
- cipher, rtl_Cipher_DirectionEncode,
- cbc_key, sizeof(cbc_key), cbc_iv, sizeof(cbc_iv));
- OSL_ASSERT(result == rtl_Cipher_E_None);
-
- memset (cbc_out, 0, sizeof(cbc_out));
- result = rtl_cipher_encode (
- cipher, cbc_data, length, cbc_out, sizeof(cbc_out));
- OSL_ASSERT(result == rtl_Cipher_E_None);
- OSL_ASSERT(memcmp (cbc_out, cbc_ok, sizeof(cbc_ok)) == 0);
-
- result = rtl_cipher_init (
- cipher, rtl_Cipher_DirectionDecode,
- cbc_key, sizeof(cbc_key), cbc_iv, sizeof(cbc_iv));
- OSL_ASSERT(result == rtl_Cipher_E_None);
-
- memset (cbc_in, 0, sizeof(cbc_in));
- result = rtl_cipher_decode (
- cipher, cbc_out, length, cbc_in, sizeof(cbc_in));
- OSL_ASSERT(result == rtl_Cipher_E_None);
- OSL_ASSERT(memcmp (cbc_in, cbc_data, length) == 0);
-
- rtl_cipher_destroy (cipher);
- }
-
- /* CFB */
- cipher = rtl_cipher_create (rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeStream);
- OSL_ASSERT(cipher != 0);
- if (cipher != 0)
- {
- rtlCipherError result;
- sal_uInt8 cfb_in[40], cfb_out[40];
- sal_uInt32 length = strlen(cbc_data) + 1;
-
- result = rtl_cipher_init (
- cipher, rtl_Cipher_DirectionEncode,
- cbc_key, sizeof(cbc_key), cbc_iv, sizeof(cbc_iv));
- OSL_ASSERT(result == rtl_Cipher_E_None);
-
- memset (cfb_out, 0, sizeof(cfb_out));
- result = rtl_cipher_encode (
- cipher, cbc_data, length, cfb_out, sizeof(cfb_out));
- OSL_ASSERT(result == rtl_Cipher_E_None);
- OSL_ASSERT(memcmp (cfb_out, cfb_ok, sizeof(cfb_ok)) == 0);
-
- result = rtl_cipher_init (
- cipher, rtl_Cipher_DirectionDecode,
- cbc_key, sizeof(cbc_key), cbc_iv, sizeof(cbc_iv));
- OSL_ASSERT(result == rtl_Cipher_E_None);
-
- memset (cfb_in, 0, sizeof(cfb_in));
- result = rtl_cipher_decode (
- cipher, cfb_out, length, cfb_in, sizeof(cfb_in));
- OSL_ASSERT(result == rtl_Cipher_E_None);
- OSL_ASSERT(memcmp (cfb_in, cbc_data, length) == 0);
-
- rtl_cipher_destroy (cipher);
- }
-
- /* ARCFOUR */
- cipher = rtl_cipher_create (rtl_Cipher_AlgorithmARCFOUR, rtl_Cipher_ModeStream);
- OSL_ASSERT(cipher != 0);
- if (cipher != 0)
- {
- rtlCipherError result;
- sal_uInt8 arcfour_out[40];
- sal_Size length;
- int i, n;
-
- n = SAL_N_ELEMENTS(arcfour_data_len);
- for (i = 0; i < n; i++)
- {
- length = arcfour_data_len[i];
-
- result = rtl_cipher_init (
- cipher, rtl_Cipher_DirectionBoth,
- &(arcfour_key[i][1]), arcfour_key[i][0], 0, 0);
- OSL_ASSERT(result == rtl_Cipher_E_None);
-
- memset (arcfour_out, 0, sizeof(arcfour_out));
- result = rtl_cipher_encode (
- cipher, &(arcfour_data[i][0]), length,
- arcfour_out, sizeof(arcfour_out));
- OSL_ASSERT(result == rtl_Cipher_E_None);
- OSL_ASSERT(memcmp (arcfour_out, arcfour_ok[i], length) == 0);
- }
-
- n = arcfour_data_len[3];
- for (i = 1; i < n; i++)
- {
- length = i;
-
- result = rtl_cipher_init (
- cipher, rtl_Cipher_DirectionBoth,
- &(arcfour_key[3][1]), arcfour_key[3][0], 0, 0);
- OSL_ASSERT(result == rtl_Cipher_E_None);
-
- memset (arcfour_out, 0, sizeof(arcfour_out));
- result = rtl_cipher_encode (
- cipher, &(arcfour_data[3][0]), length,
- arcfour_out, sizeof(arcfour_out));
- OSL_ASSERT(result == rtl_Cipher_E_None);
- OSL_ASSERT(memcmp (arcfour_out, arcfour_ok[3], length) == 0);
- OSL_ASSERT(arcfour_out[length] == 0);
- }
-
- n = arcfour_data_len[3];
- for (i = 1; i < n; i++)
- {
- length = i;
-
- result = rtl_cipher_init (
- cipher, rtl_Cipher_DirectionBoth,
- &(arcfour_key[3][1]), arcfour_key[3][0], 0, 0);
- OSL_ASSERT(result == rtl_Cipher_E_None);
-
- memset (arcfour_out, 0, sizeof(arcfour_out));
- result = rtl_cipher_encode (
- cipher, &(arcfour_data[3][0]), length,
- &(arcfour_out[0]), sizeof(arcfour_out));
- OSL_ASSERT(result == rtl_Cipher_E_None);
-
- result = rtl_cipher_encode (
- cipher, &(arcfour_data[3][length]), n - length,
- &(arcfour_out[length]), sizeof(arcfour_out) - length);
- OSL_ASSERT(result == rtl_Cipher_E_None);
-
- OSL_ASSERT(memcmp (arcfour_out, arcfour_ok[3], length) == 0);
- }
-
- rtl_cipher_destroy (cipher);
- }
-
- /* Done */
- return 0;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/t_digest.c b/sal/workben/t_digest.c
deleted file mode 100644
index bf9b0be89..000000000
--- a/sal/workben/t_digest.c
+++ /dev/null
@@ -1,380 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <rtl/digest.h>
-
-static const char *digest_in_MD[] =
-{
- "",
- "a",
- "abc",
- "message digest",
- "abcdefghijklmnopqrstuvwxyz",
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
- "12345678901234567890123456789012345678901234567890123456789012345678901234567890",
- NULL,
-};
-
-static const char *digest_out_MD2[]=
-{
- "8350e5a3e24c153df2275c9f80692773",
- "32ec01ec4a6dac72c0ab96fb34c0b5d1",
- "da853b0d3f88d99b30283a69e6ded6bb",
- "ab4f496bfb2a530b219ff33031fe06b0",
- "4e8ddff3650292ab5a4108c3aa47940b",
- "da33def2a42df13975352846c30338cd",
- "d5976f79d83d3a0dc9806c3c66f3efd8",
-};
-
-static const char *digest_out_MD5[]=
-{
- "d41d8cd98f00b204e9800998ecf8427e",
- "0cc175b9c0f1b6a831c399e269772661",
- "900150983cd24fb0d6963f7d28e17f72",
- "f96b697d7cb7938d525a2f31aaf161d0",
- "c3fcd3d76192e4007dfb496cca67e13b",
- "d174ab98d277d9f5a5611c2c9f419d9f",
- "57edf4a22be3c955ac49da2e2107b67a",
-};
-
-static const char *digest_in_SHA[]=
-{
- "abc",
- "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
- NULL,
-};
-
-static const char *digest_out_SHA_0[]=
-{
- "0164b8a914cd2a5e74c4f7ff082c4d97f1edf880",
- "d2516ee1acfa5baf33dfc1c471e438449ef134c8",
-};
-
-static const char *digest_out_SHA_1[]=
-{
- "a9993e364706816aba3e25717850c26c9cd0d89d",
- "84983e441c3bd26ebaae4aa1f95129e5e54670f1",
-};
-
-static const char *digest_bigout_SHA_0=
- "3232affa48628a26653b5aaa44541fd90d690603";
-
-static const char *digest_bigout_SHA_1=
- "34aa973cd4c4daa4f61eeb2bdbad27316534016f";
-
-
-static const char digest_key_HMAC_MD5_1[] =
-{
- 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b,
- 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b,
- 0x00
-};
-static const char digest_key_HMAC_MD5_2[] =
-{
- /* "Jefe" */
- 'J', 'e', 'f', 'e',
- 0x00
-};
-static const unsigned char digest_key_HMAC_MD5_3[] =
-{
- 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
- 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
- 0x00
-};
-static const char *digest_key_HMAC_MD5[] =
-{
- (const char*)&digest_key_HMAC_MD5_1,
- (const char*)&digest_key_HMAC_MD5_2, /* "Jefe", */
- (const char*)&digest_key_HMAC_MD5_3,
- NULL
-};
-
-static const unsigned char digest_in_HMAC_MD5_3[] =
-{
- 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
- 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
- 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
- 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
- 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
- 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
- 0xDD, 0xDD,
- 0x00
-};
-static const char *digest_in_HMAC_MD5[] =
-{
- "Hi There",
- "what do ya want for nothing?",
- (const char*)&digest_in_HMAC_MD5_3,
- NULL
-};
-
-static const char *digest_out_HMAC_MD5[] =
-{
- "9294727a3638bb1c13f48ef8158bfc9d",
- "750c783e6ab0b503eaa86e310a5db738",
- "56be34521d144c88dbb8c733f0e8b3f6",
- NULL
-};
-static const char *digest_out_HMAC_SHA1[] =
-{
- /* unofficial, i.e. not verified */
- "675b0b3a1b4ddf4e124872da6c2f632bfed957e9",
- "effcdf6ae5eb2fa2d27416d5f184df9c259a7c79",
- "d730594d167e35d5956fd8003d0db3d3f46dc7bb",
- NULL
-};
-
-
-static char *pt (unsigned char *md, int length)
-{
- int i;
- static char buf[80];
-
- for (i=0; i<length; i++)
- sprintf(&(buf[i*2]),"%02x",md[i]);
-
- return(buf);
-}
-
-int SAL_CALL main (void)
-{
- const char **P,**R, **Q;
- char *p;
- int i=1, err=0;
-
- unsigned char md[80];
- unsigned char buffer[1000];
-
- rtlDigest Digest;
-
- P=digest_in_MD;
- R=digest_out_MD2;
- i = 1;
- while (*P)
- {
- rtl_digest_MD2 (*P, strlen(*P), md, sizeof(md));
-
- p=pt (md, RTL_DIGEST_LENGTH_MD2);
- if (strcmp (p, *R))
- {
- printf("error calculating MD2 on '%s'\n",*P);
- printf("got %s instead of %s\n",p,*R);
- err++;
- }
- else
- printf("test (MD2) %d ok\n",i);
- i++;
- R++;
- P++;
- }
-
- P=digest_in_MD;
- R=digest_out_MD5;
- i=1;
- while (*P)
- {
- rtl_digest_MD5 (*P, strlen(*P), md, sizeof(md));
-
- p=pt (md, RTL_DIGEST_LENGTH_MD5);
- if (strcmp (p, *R))
- {
- printf("error calculating MD5 on '%s'\n",*P);
- printf("got %s instead of %s\n",p,*R);
- err++;
- }
- else
- printf("test (MD5) %d ok\n",i);
- i++;
- R++;
- P++;
- }
-
- P=digest_in_SHA;
- R=digest_out_SHA_0;
- i=1;
- while (*P)
- {
- rtl_digest_SHA (*P, strlen(*P), md, sizeof(md));
-
- p=pt (md, RTL_DIGEST_LENGTH_SHA);
- if (strcmp (p, *R))
- {
- printf("error calculating SHA-0 on '%s'\n",*P);
- printf("got %s instead of %s\n",p,*R);
- err++;
- }
- else
- printf("test (SHA-0) %d ok\n",i);
- i++;
- R++;
- P++;
- }
-
- memset (buffer, 'a', sizeof(buffer));
- R = &digest_bigout_SHA_0;
-
- Digest = rtl_digest_createSHA();
- for (i=0; i<1000; i++)
- rtl_digest_updateSHA (Digest, buffer, sizeof(buffer));
-
- rtl_digest_getSHA (Digest, md, sizeof(md));
- rtl_digest_destroySHA (Digest);
-
- p=pt (md, RTL_DIGEST_LENGTH_SHA);
- if (strcmp (p, *R))
- {
- printf("error calculating SHA-0 on '%s'\n",p);
- printf("got %s instead of %s\n",p,*R);
- err++;
- }
- else
- printf("test (SHA-0) n ok\n");
-
- P=digest_in_SHA;
- R=digest_out_SHA_1;
- i=1;
- while (*P)
- {
- rtl_digest_SHA1 (*P, strlen(*P), md, sizeof(md));
-
- p=pt (md, RTL_DIGEST_LENGTH_SHA1);
- if (strcmp (p, *R))
- {
- printf("error calculating SHA-1 on '%s'\n",*P);
- printf("got %s instead of %s\n",p,*R);
- err++;
- }
- else
- printf("test (SHA-1) %d ok\n",i);
- i++;
- R++;
- P++;
- }
-
- memset (buffer, 'a', sizeof(buffer));
- R = &digest_bigout_SHA_1;
-
- Digest = rtl_digest_createSHA1();
- for (i=0; i<1000; i++)
- rtl_digest_updateSHA1 (Digest, buffer, sizeof(buffer));
-
- rtl_digest_getSHA1 (Digest, md, sizeof(md));
- rtl_digest_destroySHA1 (Digest);
-
- p=pt (md, RTL_DIGEST_LENGTH_SHA1);
- if (strcmp (p, *R))
- {
- printf("error calculating SHA-1 on '%s'\n",p);
- printf("got %s instead of %s\n",p,*R);
- err++;
- }
- else
- printf("test (SHA-1) n ok\n");
-
-
- P=digest_in_HMAC_MD5;
- Q=digest_key_HMAC_MD5;
- R=digest_out_HMAC_MD5;
- Digest = rtl_digest_createHMAC_MD5();
- i = 1;
- while (*P)
- {
- rtl_digest_initHMAC_MD5 (Digest, (const sal_uInt8*)(*Q), strlen(*Q));
- rtl_digest_updateHMAC_MD5 (Digest, *P, strlen(*P));
- rtl_digest_getHMAC_MD5 (Digest, md, sizeof(md));
-
- p=pt (md, RTL_DIGEST_LENGTH_HMAC_MD5);
- if (strcmp (p, *R))
- {
- printf("error calculating HMAC-MD5 on '%s'\n",*P);
- printf("got %s instead of %s\n",p,*R);
- err++;
- }
- else
- printf("test (HMAC-MD5) %d ok\n",i);
- i++;
- R++;
- P++;
- Q++;
- }
- rtl_digest_destroyHMAC_MD5 (Digest);
-
-
- P=digest_in_HMAC_MD5;
- Q=digest_key_HMAC_MD5;
- R=digest_out_HMAC_SHA1;
- Digest = rtl_digest_createHMAC_SHA1();
- i = 1;
- while (*P)
- {
- rtl_digest_initHMAC_SHA1 (Digest, (const sal_uInt8*)(*Q), strlen(*Q));
- rtl_digest_updateHMAC_SHA1 (Digest, (const sal_uInt8*)(*P), strlen(*P));
- rtl_digest_getHMAC_SHA1 (Digest, md, sizeof(md));
-
- p=pt (md, RTL_DIGEST_LENGTH_HMAC_SHA1);
- if (strcmp (p, *R))
- {
- printf("error calculating HMAC-SHA-1 on '%s'\n",*P);
- printf("got %s instead of %s\n",p,*R);
- err++;
- }
- else
- printf("test (HMAC-SHA-1) %d ok\n",i);
- i++;
- P++;
- Q++;
- R++;
- }
- rtl_digest_destroyHMAC_SHA1 (Digest);
-
-
- P=digest_in_HMAC_MD5;
- Q=digest_key_HMAC_MD5;
- rtl_digest_PBKDF2 (
- md, RTL_DIGEST_LENGTH_MD5, /* [out] derived key */
- (const sal_uInt8*)(Q[1]), strlen(Q[1]), /* [in] password */
- (const sal_uInt8*)(P[1]), strlen(P[1]), /* [in] salt */
- 1000); /* [in] iteration count */
-
- p=pt (md, RTL_DIGEST_LENGTH_MD5);
- if (strcmp (p, "6349e09cb6b8c1485cfa9780ee3264df"))
- {
- printf("error calculating PBKDF2 on '%s'\n", P[1]);
- err++;
- }
- else
- printf("test (PBKDF2) %d ok\n", 1);
-
- return (err);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/t_ojp_exe.cxx b/sal/workben/t_ojp_exe.cxx
deleted file mode 100644
index 1993474b3..000000000
--- a/sal/workben/t_ojp_exe.cxx
+++ /dev/null
@@ -1,57 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-
-#ifdef WNT
-# define WIN32_LEAN_AND_MEAN
-# include <windows.h>
-#else
-# include <unistd.h>
-#endif
-
-#include <stdio.h>
-
-int main(int argc, char* argv[])
-{
- printf("osl process test executable started:\n");
-
-#ifdef WNT
- Sleep(5000);
-#else
- sleep(5);
-#endif
-
- printf("osl process test executable ended:\n");
-
- return (0);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/t_osl_getVolInfo.cxx b/sal/workben/t_osl_getVolInfo.cxx
deleted file mode 100644
index 4749ecc24..000000000
--- a/sal/workben/t_osl_getVolInfo.cxx
+++ /dev/null
@@ -1,126 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <cppunit/simpleheader.hxx>
-#include <osl/file.h>
-#include <rtl/ustring.hxx>
-
-#ifdef WNT
-# define TEST_PATH_1 "c:\\"
-# define TEST_PATH_2 "c:\\mnt\\MSDN"
-# define TEST_PATH_3 "c:\\Program Files"
-# define TEST_PATH_4 "\\\\Tra-1\\mnt\\c"
-# define TEST_PATH_5 "\\\\Tra-1\\mnt"
-# define TEST_PATH_6 "\\\\Tra-1\\mnt\\c\\"
-#else // UNX
-# define TEST_PATH_1 "/net/athene/export/home/tra"
-# define TEST_PATH_2 "/net/athene/export/home/tra/"
-# define TEST_PATH_3 "/"
-# define TEST_PATH_4 "."
-# define TEST_PATH_5 "/net/athene/export/home/tra/projects"
-# define TEST_PATH_6 "/blah"
-#endif
-
-void test_getVolumeInformation(const rtl::OUString& path_url)
- {
- oslVolumeInfo vi;
- memset((void*)&vi, 0, sizeof(vi));
- vi.uStructSize = sizeof(vi);
- vi.pDeviceHandle = NULL;
-
- oslFileError err = osl_getVolumeInformation(
- path_url.pData,
- &vi,
- osl_VolumeInfo_Mask_Attributes |
- osl_VolumeInfo_Mask_TotalSpace |
- osl_VolumeInfo_Mask_UsedSpace |
- osl_VolumeInfo_Mask_FreeSpace |
- osl_VolumeInfo_Mask_MaxNameLength |
- osl_VolumeInfo_Mask_MaxPathLength |
- osl_VolumeInfo_Mask_FileSystemName |
- osl_VolumeInfo_Mask_DeviceHandle);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_getVolumeInformation failed",
- err == osl_File_E_None
- );
- }
-
-class TestClass_osl_getVolumeInformation : public CppUnit::TestFixture
-{
-public:
-
- /*-------------------------------------
- Start a process and join with this
- process specify a timeout so that
- osl_joinProcessWithTimeout returns
- osl_Process_E_TimedOut
- -------------------------------------*/
-
- void test_osl_getVolumeInformation()
- {
- rtl::OUString path = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(TEST_PATH_1));
- rtl::OUString path_url;
- osl_getFileURLFromSystemPath(path.pData, &path_url.pData);
- test_getVolumeInformation(path_url);
-
- path = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(TEST_PATH_2));
- osl_getFileURLFromSystemPath(path.pData, &path_url.pData);
- test_getVolumeInformation(path_url);
-
- path = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(TEST_PATH_3));
- osl_getFileURLFromSystemPath(path.pData, &path_url.pData);
- test_getVolumeInformation(path_url);
-
- path = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(TEST_PATH_4));
- osl_getFileURLFromSystemPath(path.pData, &path_url.pData);
- test_getVolumeInformation(path_url);
-
- path = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(TEST_PATH_5));
- osl_getFileURLFromSystemPath(path.pData, &path_url.pData);
- test_getVolumeInformation(path_url);
-
- path = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(TEST_PATH_6));
- osl_getFileURLFromSystemPath(path.pData, &path_url.pData);
- test_getVolumeInformation(path_url);
- }
-
- CPPUNIT_TEST_SUITE( TestClass_osl_getVolumeInformation );
- CPPUNIT_TEST( test_osl_getVolumeInformation );
- CPPUNIT_TEST_SUITE_END( );
-};
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( TestClass_osl_getVolumeInformation, "Test osl_getVolumeInformation");
-
-NOADDITIONAL;
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/t_osl_joinProcess.cxx b/sal/workben/t_osl_joinProcess.cxx
deleted file mode 100644
index 25d8ec970..000000000
--- a/sal/workben/t_osl_joinProcess.cxx
+++ /dev/null
@@ -1,226 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <cppunit/simpleheader.hxx>
-#include <osl/process.h>
-#include <rtl/ustring.hxx>
-#include <unistd.h>
-#include <signal.h>
-
-#ifdef WNT
- const rtl::OUString IMAGE_NAME(RTL_CONSTASCII_USTRINGPARAM("ojpx.exe"));
-#else
- const rtl::OUString IMAGE_NAME(RTL_CONSTASCII_USTRINGPARAM("ojpx"));
-#endif
-
-const rtl::OUString CWD(RTL_CONSTASCII_USTRINGPARAM("."));
-
-class Test_osl_Process : public CppUnit::TestFixture
-{
-public:
-
- /*-------------------------------------
- Start a process and join with this
- process specify a timeout so that
- osl_joinProcessWithTimeout returns
- osl_Process_E_TimedOut
- -------------------------------------*/
-
- void test_osl_joinProcessWithTimeout_timeout_failure()
- {
- oslProcess process;
- oslProcessError osl_error = osl_executeProcess(
- IMAGE_NAME.pData,
- NULL,
- 0,
- osl_Process_NORMAL,
- osl_getCurrentSecurity(),
- CWD.pData,
- NULL,
- 0,
- &process);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_createProcess failed",
- osl_error == osl_Process_E_None
- );
-
- TimeValue timeout;
- timeout.Seconds = 1;
- timeout.Nanosec = 0;
-
- osl_error = osl_joinProcessWithTimeout(process, &timeout);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_joinProcessWithTimeout returned without timeout failure",
- osl_Process_E_TimedOut == osl_error
- );
-
- osl_error = osl_terminateProcess(process);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_terminateProcess failed",
- osl_error == osl_Process_E_None
- );
-
- osl_freeProcessHandle(process);
- }
-
- /*-------------------------------------
- Start a process and join with this
- process specify a timeout so that
- osl_joinProcessWithTimeout returns
- osl_Process_E_None
- -------------------------------------*/
-
- void test_osl_joinProcessWithTimeout_without_timeout_failure()
- {
- oslProcess process;
- oslProcessError osl_error = osl_executeProcess(
- IMAGE_NAME.pData,
- NULL,
- 0,
- osl_Process_NORMAL,
- osl_getCurrentSecurity(),
- CWD.pData,
- NULL,
- 0,
- &process);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_createProcess failed",
- osl_error == osl_Process_E_None
- );
-
- TimeValue timeout;
- timeout.Seconds = 10;
- timeout.Nanosec = 0;
-
- osl_error = osl_joinProcessWithTimeout(process, &timeout);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_joinProcessWithTimeout returned with failure",
- osl_Process_E_None == osl_error
- );
-
- osl_freeProcessHandle(process);
- }
-
- /*-------------------------------------
- Start a process and join with this
- process specify an infinite timeout
- -------------------------------------*/
-
- void test_osl_joinProcessWithTimeout_infinite()
- {
- oslProcess process;
- oslProcessError osl_error = osl_executeProcess(
- IMAGE_NAME.pData,
- NULL,
- 0,
- osl_Process_NORMAL,
- osl_getCurrentSecurity(),
- CWD.pData,
- NULL,
- 0,
- &process);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_createProcess failed",
- osl_error == osl_Process_E_None
- );
-
- osl_error = osl_joinProcessWithTimeout(process, NULL);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_joinProcessWithTimeout returned with failure",
- osl_Process_E_None == osl_error
- );
-
- osl_freeProcessHandle(process);
- }
-
- /*-------------------------------------
- Start a process and join with this
- process using osl_joinProcess
- -------------------------------------*/
-
- void test_osl_joinProcess()
- {
- oslProcess process;
- oslProcessError osl_error = osl_executeProcess(
- IMAGE_NAME.pData,
- NULL,
- 0,
- osl_Process_NORMAL,
- osl_getCurrentSecurity(),
- CWD.pData,
- NULL,
- 0,
- &process);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_createProcess failed",
- osl_error == osl_Process_E_None
- );
-
- osl_error = osl_joinProcess(process);
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "osl_joinProcess returned with failure",
- osl_Process_E_None == osl_error
- );
-
- osl_freeProcessHandle(process);
- }
-
- CPPUNIT_TEST_SUITE(Test_osl_Process);
- CPPUNIT_TEST(test_osl_joinProcessWithTimeout_timeout_failure);
- CPPUNIT_TEST(test_osl_joinProcessWithTimeout_without_timeout_failure);
- CPPUNIT_TEST(test_osl_joinProcessWithTimeout_infinite);
- CPPUNIT_TEST(test_osl_joinProcess);
- CPPUNIT_TEST_SUITE_END();
-};
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(Test_osl_Process, "Test_osl_Process");
-
-NOADDITIONAL;
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/t_random.c b/sal/workben/t_random.c
deleted file mode 100644
index 56f2da557..000000000
--- a/sal/workben/t_random.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <rtl/random.h>
-
-static char *pt (unsigned char *md, int length)
-{
- int i;
- static char buf[80];
-
- for (i=0; i<length; i++)
- sprintf(&(buf[i*2]),"%02x",md[i]);
-
- return(buf);
-}
-
-/*
- * main.
- */
-int SAL_CALL main (void)
-{
- rtlRandomPool pool;
- pool = rtl_random_createPool();
- if (pool)
- {
- unsigned char buffer[1000];
-
- rtl_random_getBytes (pool, buffer, 8);
- printf ("random: %s\n", pt (buffer, 8));
- }
- rtl_random_destroyPool (pool);
- return(0);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/t_readline.c b/sal/workben/t_readline.c
deleted file mode 100644
index e44380d23..000000000
--- a/sal/workben/t_readline.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * t_readline.c
- */
-
-#include "osl/file.h"
-
-#include "osl/diagnose.h"
-#include "rtl/ustring.h"
-#include "rtl/byteseq.h"
-
-#include <stdio.h>
-
-/* main */
-int main (int argc, char ** argv)
-{
- if (argc > 1)
- {
- oslFileError result;
- oslFileHandle hFile = 0;
-
- rtl_uString * pSystemPath = 0;
- rtl_uString * pFileUrl = 0;
-
- rtl_uString_newFromAscii (&pSystemPath, argv[1]);
-
- result = osl_getFileURLFromSystemPath (pSystemPath, &pFileUrl);
- rtl_uString_release (pSystemPath), pSystemPath = 0;
- if (result != osl_File_E_None)
- return (result);
-
- result = osl_openFile (pFileUrl, &hFile, osl_File_OpenFlag_Read);
- rtl_uString_release (pFileUrl), pFileUrl = 0;
- if (result == osl_File_E_None)
- {
- sal_Sequence * pBuffer = 0;
- for ( ;; )
- {
- sal_Int32 i, n;
-
- result = osl_readLine (hFile, &pBuffer);
- if (result != osl_File_E_None)
- break;
- for (i = 0, n = pBuffer->nElements; i < n; i++)
- printf ("%c", (char)(pBuffer->elements[i]));
- printf("\n");
- }
-
- rtl_byte_sequence_release (pBuffer), pBuffer = 0;
- (void) osl_closeFile (hFile);
- }
- }
- return 0;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/test.cxx b/sal/workben/test.cxx
deleted file mode 100644
index df0f32962..000000000
--- a/sal/workben/test.cxx
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <stdio.h>
-
-#if (defined UNX)
-int main( int argc, char * argv[] )
-#else
-int _cdecl main( int argc, char * argv[] )
-#endif
-{
- void test_int64();
- test_int64();
-
- void test_profile(void);
- test_profile();
-
- void test_OString();
- test_OString();
-
-/* void test_OWString(); */
-/* test_OWString(); */
-
-/* void test_OStringBuffer(); */
-/* test_OStringBuffer(); */
-
-/* void test_OWStringBuffer(); */
-/* test_OWStringBuffer(); */
-
-/* void test_OString2OWStringAndViceVersa(); */
-/* test_OString2OWStringAndViceVersa(); */
-
- void test_uuid();
- test_uuid();
-
- return(0);
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/testfile.cxx b/sal/workben/testfile.cxx
deleted file mode 100644
index 3d3a27a29..000000000
--- a/sal/workben/testfile.cxx
+++ /dev/null
@@ -1,2803 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#define UNICODE
-
-
-#include <osl/file.hxx>
-#include <osl/process.h>
-#include <osl/time.h>
-#include <rtl/alloc.h>
-#include <rtl/ustring.hxx>
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
-
-
-#ifdef UNX
-#include <wchar.h>
-#endif
-
-#ifdef WNT
-#include <windows.h>
-#endif
-
-using namespace osl;
-using namespace rtl;
-
-#define MAXIMPATH 256
-
-rtl::OUString root;
-
-rtl::OUString dir1;
-rtl::OUString dir2;
-rtl::OUString dir_on_server;
-rtl::OUString dir_not_exist;
-rtl::OUString dir_not_exist_on_server;
-rtl::OUString dir_wrong_semantic;
-
-rtl::OUString file1;
-rtl::OUString file2;
-rtl::OUString file3;
-rtl::OUString file_on_server;
-rtl::OUString file_not_exist;
-
-
-
-void print_error(const ::rtl::OString& str, FileBase::RC rc);
-
-void PressKey()
-{
- printf("\nPress Return !\n");
- getchar();
-}
-
-void printFileName(const ::rtl::OUString& str)
-{
- rtl::OString aString;
-
- aString = rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US );
-
- printf( "%s", aString.getStr() );
-
- return;
-}
-
-//--------------------------------------------------
-// Initialization
-//--------------------------------------------------
-
-sal_Bool testLineBreak( sal_Char *pCount , sal_uInt64 nLen , sal_uInt32 *cLineBreak )
-{
- sal_Bool fSuccess=sal_False;
- *cLineBreak=0;
-
- if (nLen==0)
- return fSuccess;
-
- if ( *pCount==13 )
- {
- if (nLen>=1 && *(pCount+1)==10)
- *cLineBreak=2;
- else
- *cLineBreak=1;
-
- if (nLen>=2 && *(pCount+2)==10)
- (*cLineBreak)++;
-
- fSuccess=sal_True;
- }
- else if ( *pCount==10 )
- {
- *cLineBreak=1;
- fSuccess=sal_True;
- }
-
- return fSuccess;
-}
-
-// Initialization
-
-sal_Bool Initialize( void )
-{
- DirectoryItem aItem;
- FileStatus aStatus( osl_FileStatus_Mask_All );
- rtl_uString *strExeFileURL=NULL;
- oslProcessError ProcessError;
-
- rtl::OUString iniFileURL;
- File *pFile;
- sal_Unicode *pExeFileCount;
-
- FileBase::RC rc;
-
- sal_uInt64 uBytesRequested;
- sal_uInt64 uBytesRead;
- sal_Char *pBuffer;
- sal_Char *pBegin;
- sal_Char *pCount;
-
- rtl::OUString dir[12];
-
- // Open to the ini-file
-
- ProcessError=osl_getExecutableFile(&strExeFileURL);
-
- if ( ProcessError == osl_Process_E_None)
- {
- pExeFileCount=rtl_uString_getStr(strExeFileURL)+rtl_uString_getLength(strExeFileURL);
-
- // Search for the last slash in the Path
- while (*pExeFileCount!=L'/' && pExeFileCount>rtl_uString_getStr(strExeFileURL))
- pExeFileCount--;
-
- // iniFileURL = strExeFileURL without the filename of the exe-File
- iniFileURL=rtl::OUString( rtl_uString_getStr(strExeFileURL) ,(int) (pExeFileCount-rtl_uString_getStr(strExeFileURL)) );
-
- // add "/testfile.ini" to iniFileURL
- iniFileURL+=rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/testfile.ini"));
-
- // Open the ini-File
- pFile=new File( iniFileURL );
- rc=pFile->open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write );
- if ( rc!=FileBase::E_None )
- {
- rtl_uString_release(strExeFileURL);
- return sal_False;
- }
- }
- else
- {
- rtl_uString_release(strExeFileURL);
- return sal_False;
- }
-
- // Get filesize of the ini-File
-
- rc=DirectoryItem::get( iniFileURL, aItem );
- if ( rc!=FileBase::E_None )
- return sal_False;
-
- rc=aItem.getFileStatus( aStatus );
- if ( rc!=FileBase::E_None )
- return sal_False;
-
- uBytesRequested=aStatus.getFileSize();
-
- // read ini-File
- rc=pFile->setPos( osl_Pos_Absolut, 0 );
- pBuffer=(sal_Char*) rtl_allocateMemory( (sal_uInt32) (uBytesRequested+1)*sizeof(sal_Char) );
- rtl_zeroMemory( pBuffer, (sal_uInt32)(uBytesRequested+1)*sizeof(sal_Char) );
-
- rc=pFile->read( pBuffer , uBytesRequested , uBytesRead );
- if ( rc!=FileBase::E_None )
- return sal_False;
-
-
- pBegin=pBuffer;
- pCount=pBegin;
-
- for ( int i=0 ; i<12 ; i++ )
- {
- sal_uInt32 cLineBrake=0;
- while ( (static_cast<sal_uInt64>(pCount-pBuffer) < uBytesRead) && *pCount!='=')
- pCount++;
-
- pCount++;
- pBegin=pCount;
-
- while ( (static_cast<sal_uInt64>(pCount-pBuffer) < uBytesRead) && !testLineBreak(pCount,uBytesRead-(pCount-pBuffer), &cLineBrake))
- pCount++;
-
- dir[i]=rtl::OUString(pBegin, pCount-pBegin, RTL_TEXTENCODING_ASCII_US);
-
- pCount+=cLineBrake;
- pBegin=pCount;
- }
-
- root=rtl::OUString(dir[0]);
- dir1=rtl::OUString(dir[1]);
- dir2=rtl::OUString(dir[2]);
- dir_on_server=rtl::OUString(dir[3]);
- dir_not_exist=rtl::OUString(dir[4]);
- dir_not_exist_on_server=rtl::OUString(dir[5]);
- dir_wrong_semantic=rtl::OUString(dir[6]);
-
- file1=rtl::OUString(dir[7]);
- file2=rtl::OUString(dir[8]);
- file3=rtl::OUString(dir[9]);
- file_on_server=rtl::OUString(dir[10]);
- file_not_exist=rtl::OUString(dir[11]);
-
- // close the ini-file
- rc=pFile->close();
-
- rtl_freeMemory( pBuffer );
-
-
- // Create directories
- rc=Directory::create( dir1 );
- if ( rc!=FileBase::E_None )
- return sal_False;
-
- rc=Directory::create( dir2 );
- if ( rc!=FileBase::E_None )
- return sal_False;
-
- rc=Directory::create( dir_on_server );
- if ( rc!=FileBase::E_None )
- return sal_False;
-
- pFile=new File( file1 );
- rc=pFile->open( osl_File_OpenFlag_Write | osl_File_OpenFlag_Create );
- if ( rc!=FileBase::E_None )
- return sal_False;
- rc=pFile->close();
- delete pFile;
-
- pFile=new File( file2 );
- rc=pFile->open( osl_File_OpenFlag_Write | osl_File_OpenFlag_Create );
- if ( rc!=FileBase::E_None )
- return sal_False;
- rc=pFile->close();
- delete pFile;
-
- pFile=new File( file_on_server );
- rc=pFile->open( osl_File_OpenFlag_Write | osl_File_OpenFlag_Create );
- if ( rc!=FileBase::E_None )
- return sal_False;
- rc=pFile->close();
- delete pFile;
-
- return sal_True;
-}
-
-//--------------------------------------------------
-// Shutdown
-//--------------------------------------------------
-
-sal_Bool Shutdown( void )
-{
- sal_Bool fSuccess=sal_True;
- FileBase::RC rc;
- File *pFile;
-
- // remove created files
-
- pFile=new File( file1 );
- rc=pFile->remove( file1 );
- if ( rc!=FileBase::E_None )
- fSuccess=sal_False;
- delete pFile;
-
- pFile=new File( file2 );
- rc=pFile->remove( file2 );
- if ( rc!=FileBase::E_None )
- fSuccess=sal_False;
- delete pFile;
-
- // remove created directories
-
- rc=Directory::remove( dir1 );
- if ( rc!=FileBase::E_None )
- fSuccess=sal_False;
-
- rc=Directory::remove( dir2 );
- if ( rc!=FileBase::E_None )
- fSuccess=sal_False;
-
- // remove created file on the server
-
- pFile=new File( file_on_server );
- rc=pFile->remove( file_on_server );
- if ( rc!=FileBase::E_None )
- fSuccess=sal_False;
- delete pFile;
-
- // remove created directory on the server
-
- rc=Directory::remove( dir_on_server );
- if ( rc!=FileBase::E_None )
- fSuccess=sal_False;
-
- return fSuccess;
-}
-
-//--------------------------------------------------
-// helper functions
-//--------------------------------------------------
-
-// Show FileType
-void showFileType( FileStatus::Type aType )
-{
- if ( aType==FileStatus::Directory )
- printf( "FileType: Directory \n" );
- else if ( aType==FileStatus::Volume )
- printf( "FileType: Volume \n" );
- else if ( aType==FileStatus::Regular )
- printf( "FileType: Regular \n" );
- else if ( aType==FileStatus::Unknown )
- printf( "FileType: Unknown \n" );
-
-}
-
-// Show Attributes
-void showAttributes( sal_uInt64 uAttributes )
-{
- if ( uAttributes==0 )
- printf( "No Attributes \n" );
- if ( uAttributes & osl_File_Attribute_ReadOnly )
- printf( "Attribute: ReadOnly \n" );
- if ( uAttributes & osl_File_Attribute_Hidden )
- printf( "Attribute: Hidden \n" );
- if ( uAttributes & osl_File_Attribute_Executable )
- printf( "Attribute: Executable \n");
- if ( uAttributes & osl_File_Attribute_GrpWrite )
- printf( "Attribute: GrpWrite \n");
- if ( uAttributes & osl_File_Attribute_GrpRead )
- printf( "Attribute: GrpRead \n" );
- if ( uAttributes & osl_File_Attribute_GrpExe )
- printf( "Attribute: GrpExe \n" );
- if ( uAttributes & osl_File_Attribute_OwnWrite )
- printf( "Attribute: OwnWrite \n");
- if ( uAttributes & osl_File_Attribute_OwnRead )
- printf( "Attribute: OwnRead \n" );
- if ( uAttributes & osl_File_Attribute_OwnExe )
- printf( "Attribute: OwnExe \n" );
- if ( uAttributes & osl_File_Attribute_OthWrite )
- printf( "Attribute: OthWrite \n" );
- if ( uAttributes & osl_File_Attribute_OthRead )
- printf( "Attribute: OthRead \n");
- if ( uAttributes & osl_File_Attribute_OthExe )
- printf( "Attribute: OthExe \n" );
-
- return;
-}
-
-// Show Time
-void showTime( TimeValue aTime )
-{
- TimeValue aLocalTimeVal, aSystemTimeVal , aSysTimeVal;
- oslDateTime aDateTime, aSystemTime;
-
- if ( osl_getLocalTimeFromSystemTime( &aTime, &aLocalTimeVal ) )
- {
- if ( osl_getDateTimeFromTimeValue( &aLocalTimeVal, &aDateTime ) )
- {
- printf("\t%02i.%02i.%4i , %02i.%02i.%02i Uhr\n", aDateTime.Day, aDateTime.Month, aDateTime.Year, aDateTime.Hours, aDateTime.Minutes, aDateTime.Seconds);
- }
- else
- printf("Error !\n");
- }
-
- if ( osl_getDateTimeFromTimeValue( &aTime, &aSystemTime ) )
- {
- printf("SystemTime: \t\t%02i.%02i.%4i , %02i.%02i.%02i Uhr\n", aSystemTime.Day, aSystemTime.Month, aSystemTime.Year, aSystemTime.Hours, aSystemTime.Minutes, aSystemTime.Seconds);
- }
- else
- printf("Error !\n");
-
- //Verify
-
- if ( osl_getTimeValueFromDateTime( &aSystemTime, &aSystemTimeVal ) )
- {
- if ( ( aSystemTimeVal.Seconds == aTime.Seconds ) && ( aSystemTimeVal.Nanosec == aTime.Nanosec ))
- printf ("Verify : TimeValue : ok! \n");
- else
- {
- printf ("Verify : TimeValue : Error! \n");
- printf ("aTime : %u \n", aTime.Seconds);
- printf ("aSystemTimeVal : %u \n", aSystemTimeVal.Seconds);
- }
- }
- else
- printf ("Verify : TimeValue : Error! \n");
-
-
- if ( osl_getSystemTimeFromLocalTime( &aLocalTimeVal , &aSysTimeVal ) )
- {
- if ( ( aSysTimeVal.Seconds == aTime.Seconds ) && ( aSysTimeVal.Nanosec == aTime.Nanosec ))
- printf ("Verify : SystemTime : ok! \n");
- else
- {
- printf ("Verify : SystemTime : Error! \n");
- printf ("aTime : %u\n", aTime.Seconds);
- printf ("aSystemTimeVal : %u\n", aSysTimeVal.Seconds);
- }
- }
- else
- printf ("Verify : SystemTime : Error! \n");
-
- return;
-}
-
-TimeValue getSystemTime()
-{
- TimeValue aTime;
- time_t ltime;
-
- time( &ltime );
-
- aTime.Seconds = ltime;
- aTime.Nanosec = 0;
-
- return aTime;
-}
-
-
-//--------------------------------------------------
-// DirectoryOpenAndCloseTest
-//--------------------------------------------------
-
-void DirectoryOpenAndCloseTest( void )
-{
- FileBase::RC rc;
- Directory *pDir;
-
- printf( "--------------------------------------------\n");
- printf( "Directory-Open-And-Close-Test\n");
- printf( "--------------------------------------------\n\n");
-
- //--------------------------------------------------
- // open an existing directory
- //--------------------------------------------------
-
- pDir=new Directory( dir1 );
- printf( "Open an existing directory: ");
- printFileName( dir1 );
- printf( "\n" );
-
- rc= pDir->open();
- print_error( rtl::OString( "Open Directory" ), rc );
-
- if ( pDir->isOpen() )
- {
- print_error( rtl::OString( "Directory is Open" ), rc );
- }
-
- // Close Directory
- rc=pDir->close();
- print_error( rtl::OString( "Close Directory" ), rc );
-
- delete pDir;
- printf( "\n" );
-
- //--------------------------------------------------
- // open a not existing directory
- //--------------------------------------------------
-
- pDir=new Directory( dir_not_exist );
-
- printf( "Open a not existing directory: ");
- printFileName( dir_not_exist );
- printf( "\n" );
-
- rc= pDir->open();
-
- print_error( rtl::OString( "Open Directory" ), rc );
-
- delete pDir;
-
- printf( "\n" );
-
- //--------------------------------------------------
- // open a directory with a wrong semantic
- //--------------------------------------------------
- pDir=new Directory( dir_wrong_semantic );
-
- printf( "Open a directory with a wrong semantic: ");
- printFileName( dir_wrong_semantic );
- printf( "\n" );
-
- rc= pDir->open();
- print_error( rtl::OString( "Open Directory" ), rc );
-
- delete pDir;
-
- printf( "\n" );
-
- //--------------------------------------------------
- // open an existing directory on a server
- //--------------------------------------------------
-
- pDir=new Directory( dir_on_server );
-
- printf( "Open an existing directory on a server: ");
- printFileName( dir_on_server );
- printf( "\n" );
-
- rc= pDir->open();
- print_error( rtl::OString( "Open Directory" ), rc );
-
- // Close Directory
- rc=pDir->close();
- print_error( rtl::OString( "Close Directory" ), rc );
-
- delete pDir;
- printf( "\n" );
-
- //--------------------------------------------------
- // open a not existing directory on a server
- //--------------------------------------------------
-
- pDir=new Directory( dir_not_exist_on_server );
-
- printf( "Open a not existing directory on a server: ");
- printFileName( dir_not_exist_on_server );
- printf( "\n" );
-
- rc= pDir->open();
- print_error( rtl::OString( "Open Directory" ), rc );
-
- delete pDir;
- printf( "\n" );
-
- //--------------------------------------------------
- // Close a not existing directory
- //--------------------------------------------------
-
- pDir=new Directory( dir_not_exist );
- printf( "Close a not existing directory: ");
- printFileName( dir_not_exist );
- printf( "\n" );
-
- rc=pDir->close();
- print_error( rtl::OString( "Close Directory" ), rc );
-
- PressKey();
- return;
-
-}
-
-//--------------------------------------------------
-// DirectoryCreateAndRemoveTest
-//--------------------------------------------------
-
-void DirectoryCreateAndRemoveTest( void )
-{
- FileBase::RC rc,rc1;
- Directory *pDir;
-
- printf( "--------------------------------------------\n" );
- printf( "Directory-Create-And-Remove-Test\n" );
- printf( "--------------------------------------------\n\n" );
-
- //--------------------------------------------------
- // Create directory
- //--------------------------------------------------
- printf( "Create a not existing directory: ");
- printFileName( dir_not_exist );
- printf( "\n" );
-
- rc=Directory::create( dir_not_exist) ;
- print_error( rtl::OString( "Create Directory" ), rc );
-
- // Verify
- pDir=new Directory( dir_not_exist );
-
- rc= pDir->open();
- print_error( rtl::OString( "Verify" ), rc );
- pDir->close();
- delete pDir;
-
- printf( "\n" );
-
- //--------------------------------------------------
- // Create a directory on a server
- //--------------------------------------------------
-
- printf( "Create a not existing directory on a server: ");
- printFileName( dir_not_exist_on_server );
- printf( "\n" );
-
- rc=Directory::create( dir_not_exist_on_server );
- print_error( rtl::OString( "Create Directory" ), rc );
-
- // Verify
- pDir=new Directory( dir_not_exist_on_server );
- rc= pDir->open();
- print_error( rtl::OString( "Verify" ), rc );
- pDir->close();
- delete pDir;
-
- printf( "\n" );
-
- //--------------------------------------------------
- // Remove Directories
- //--------------------------------------------------
-
- printf( "Remove the created directories: \n" );
-
- rc=Directory::remove( dir_not_exist );
-
- rc1=Directory::remove( dir_not_exist_on_server );
-
- if ( rc==FileBase::E_None && rc1==FileBase::E_None )
- print_error( rtl::OString( "Remove Directories" ), FileBase::E_None );
- else if ( rc!=FileBase::E_None )
- print_error( rtl::OString( "Remove local Directory" ),rc );
- else
- print_error( rtl::OString( "Remove Directory on a server" ),rc1 );
-
- printf( "\n" );
-
- //--------------------------------------------------
- // Remove a not existing directory
- //--------------------------------------------------
-
- printf( "Remove a not existing directory: ");
- printFileName( dir_not_exist );
- printf( "\n" );
-
- rc=Directory::remove( dir_not_exist );
- print_error( rtl::OString( "Remove" ),rc );
-
- PressKey();
- return;
-}
-
-//--------------------------------------------------
-// FileOpenAndCloseTest
-//--------------------------------------------------
-
-static void FileOpenAndCloseTest( void )
-{
- FileBase::RC rc;
-
- printf( "--------------------------------------------\n" );
- printf( "File-Open-And-Close-Test\n" );
- printf( "--------------------------------------------\n\n" );
-
- File *pFile;
-
- pFile=new File( file1 );
-
- printf( "Open an existing file: ");
- printFileName( file1 );
- printf( "\n" );
-
- //--------------------------------------------------
- // open an existing file (Read)
- //--------------------------------------------------
-
- rc=pFile->open( osl_File_OpenFlag_Read );
- print_error( rtl::OString( "Open File (Read)" ), rc );
-
- //--------------------------------------------------
- // close the file
- //--------------------------------------------------
-
- rc=pFile->close();
- print_error( rtl::OString( "Close File" ), rc );
-
- printf( "\n" );
-
- //--------------------------------------------------
- // open an existing file (Write)
- //--------------------------------------------------
-
- rc=pFile->open( osl_File_OpenFlag_Write );
- print_error( rtl::OString( "Open File (Write)" ), rc );
-
- //--------------------------------------------------
- // close the file
- //--------------------------------------------------
-
- rc=pFile->close();
- print_error( rtl::OString( "Close File" ), rc );
-
- printf( "\n" );
-
- //--------------------------------------------------
- // close the file a second time
- //--------------------------------------------------
-
- rc=pFile->close();
- print_error( rtl::OString( "Close the file a second time" ), rc );
-
- delete pFile;
- PressKey();
-}
-
-//--------------------------------------------------
-// FileCreateAndRemoveTest
-//--------------------------------------------------
-
-void FileCreateAndRemoveTest()
-{
- FileBase::RC rc;
- File *pFile;
-
- printf( "--------------------------------------------\n" );
- printf( "File-Create-And-Remove-Test\n" );
- printf( "--------------------------------------------\n\n" );
-
- pFile=new File( file_not_exist );
-
- printf( "Create File: ");
- printFileName( file_not_exist );
- printf( "\n" );
-
- //----------------------------------------------------
- // open (create) a not existing file (Read and write)
- //----------------------------------------------------
-
- rc = pFile->open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write | osl_File_OpenFlag_Create );
-
- print_error( rtl::OString( "Create and Open File (Read & Write)" ), rc );
-
- //----------------------------------------------------
- // close the file
- //----------------------------------------------------
-
- rc=pFile->close();
- print_error( rtl::OString( "Close File" ), rc );
-
- //----------------------------------------------------
- // remove the file
- //----------------------------------------------------
-
- rc=pFile->remove( file_not_exist );
- print_error( rtl::OString(" Remove File" ), rc );
-
- printf( "\n" );
-
- //----------------------------------------------------
- // remove the same file a second time
- //----------------------------------------------------
- rc=pFile->remove( file_not_exist );
- print_error( rtl::OString( "Remove a not existing File" ), rc );
-
- //----------------------------------------------------
- // remove an open file
- //----------------------------------------------------
-
- pFile->open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write | osl_File_OpenFlag_Create );
-
- rc=pFile->remove( file_not_exist );
- print_error( rtl::OString( "Remove an open File" ), rc );
-
- pFile->close();
- pFile->remove( file_not_exist );
-
- PressKey();
-
- return;
-}
-
-//--------------------------------------------------
-// FileWriteAndReadTest
-//--------------------------------------------------
-
-void FileWriteAndReadTest( void )
-{
- FileBase::RC rc;
-
- sal_uInt64 uWritten;
- sal_uInt64 uRead;
- const sal_Char *pWriteBuffer="Hier kommt der Osterhase !";
- sal_uInt64 nLen=strlen( pWriteBuffer );
- sal_Char *pReadBuffer;
-
- printf( "--------------------------------------------\n" );
- printf( "File-Write-And-Read-Test\n" );
- printf( "--------------------------------------------\n\n" );
-
- File *pFile;
-
- pFile=new File( file_not_exist );
-
- printf( "Create File: ");
- printFileName( file_not_exist );
- printf("\n");
-
- //----------------------------------------------------
- // open (create) a not existing file (Read and write)
- //----------------------------------------------------
-
- rc = pFile->open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write | osl_File_OpenFlag_Create );
-
- print_error( rtl::OString( "Create and Open File (Read & Write)" ), rc );
-
- printf( "\n" );
-
- //----------------------------------------------------
- // write a string to the file
- //----------------------------------------------------
- rc=pFile->write( pWriteBuffer , nLen , uWritten );
- print_error( rtl::OString( "Write File" ), rc );
-
- if(uWritten==nLen)
- printf( "Verify: OK! \n" );
- else
- printf( "Verify: Error\n" );
-
- printf( "\n" );
-
- //----------------------------------------------------
- // move the filepointer to the beginning
- //----------------------------------------------------
-
- rc=pFile->setPos( osl_Pos_Absolut , 0 );
- print_error( rtl::OString( "Set FilePointer to the beginning of the file" ), rc );
-
- printf( "\n" );
-
- //----------------------------------------------------
- // read the string
- //----------------------------------------------------
-
- pReadBuffer=(sal_Char*) rtl_allocateMemory( (sal_uInt32)(nLen+1)*sizeof(sal_Char) );
- rtl_zeroMemory( pReadBuffer, (sal_uInt32)(nLen+1)*sizeof(sal_Char) );
- rc=pFile->read( pReadBuffer , nLen,uRead );
- print_error( rtl::OString( "Read File" ), rc );
-
- if (strcmp(pWriteBuffer, pReadBuffer)==0)
- {
- printf( "Verify: OK !\n" );
- printf( "Text: %s\n",pReadBuffer );
- }
- else
- printf( "Verify: Error\n" );
-
- rtl_freeMemory( pReadBuffer );
-
- printf( "\n" );
-
- // close the file
- rc=pFile->close();
- print_error( rtl::OString( "Close File" ), rc );
-
- // remove the file
- rc=pFile->remove( file_not_exist );
- print_error( rtl::OString( "Remove File" ), rc );
-
- PressKey();
-
- return;
-
-}
-
-//--------------------------------------------------
-// FileCopyMoveTest
-//--------------------------------------------------
-
-void FileCopyAndMoveTest( void )
-{
- FileBase::RC rc;
-
- printf( "--------------------------------------------\n" );
- printf( "File-Copy-Move-Test\n" );
- printf( "--------------------------------------------\n\n" );
-
-
- File *pFile;
- rtl::OUString destPath(dir2);
-
- //--------------------------------------------------
- // FileCopyTest
- //--------------------------------------------------
-
- destPath+=rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- destPath+=file3;
-
- printf( "Copy the file ");
- printFileName( file1 );
- printf( " to ");
- printFileName( destPath );
- printf( "\n" );
-
-
- rc=File::copy( file1 , destPath );
- print_error( rtl::OString( "FileCopy" ), rc );
-
- pFile=new File( destPath );
-
- rc=pFile->open( osl_File_OpenFlag_Read );
- if ( rc == FileBase::E_None)
- {
- printf( "Verify: OK!\n" );
- pFile->close();
- File::remove( destPath );
- }
- else
- printf( "Verify: Error!\n" );
-
- delete pFile;
-
- printf( "\n" );
-
- //--------------------------------------------------
- // Copy a file to a not existing directory
- //--------------------------------------------------
-
- destPath=rtl::OUString( dir_not_exist );
- destPath+=rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- destPath+=file3;
-
- printf( "Copy a file to a not existing directory \n");
- printf( "Copy the file %s to %s\n",
- rtl::OUStringToOString( file1, RTL_TEXTENCODING_ASCII_US ).getStr(),
- rtl::OUStringToOString( destPath, RTL_TEXTENCODING_ASCII_US ).getStr() );
-
- rc=File::copy( file1, destPath );
- print_error( rtl::OString( "FileCopy" ), rc );
-
- printf( "\n" );
-
- //--------------------------------------------------
- // Copy a directory
- //--------------------------------------------------
-
- printf( "Copy the directory: ");
- printFileName( dir1 );
- printf( " to ");
- printFileName( dir2 );
- printf( "\n" );
-
- rc=File::copy( dir1 , dir2 );
- print_error( rtl::OString( "FileCopy" ), rc );
-
- printf( "\n" );
-
- //--------------------------------------------------
- // FileMoveTest
- //--------------------------------------------------
-
- destPath=rtl::OUString( dir2 );
- destPath+=rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- destPath+=file3;
-
- printf( "Move the file ");
- printFileName( file1 );
- printf( " to ");
- printFileName( destPath );
- printf( "\n" );
-
- rc=File::move( file1, destPath );
- print_error( rtl::OString( "FileMove" ), rc );
-
- pFile=new File( destPath );
-
- rc=pFile->open( osl_File_OpenFlag_Read );
- if ( rc==FileBase::E_None )
- {
- pFile->close();
-
- delete pFile;
- pFile=new File( file1 );
-
- rc=pFile->open( osl_File_OpenFlag_Read );
-
- if ( rc!=FileBase::E_None )
- {
- printf( "Verify: OK!\n" );
- File::move( destPath, file1 );
- }
- else
- {
- printf( "Verify: Error!\n" );
- pFile->close();
- File::remove( destPath );
- }
- }
- else
- printf( "Verify: Error!\n" );
-
- delete pFile;
-
- printf( "\n" );
-
-
- //--------------------------------------------------
- // Move a file to a not existing directory
- //--------------------------------------------------
-
- destPath=rtl::OUString( dir_not_exist );
- destPath+=rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- destPath+=file3;
-
- printf( "Move a file to a not existing directory: \n");
- printf( "Move the file ");
- printFileName( file1 );
- printf( " to ");
- printFileName( destPath );
- printf( "\n" );
-
- rc=File::move( file1 , destPath );
- print_error( rtl::OString( "FileMove" ), rc );
-
- printf( "\n" );
-
- //--------------------------------------------------
- // Move a directory
- //--------------------------------------------------
-
- printf( "Move a directory: \n");
-
- printf( "Move the directory ");
- printFileName( dir1 );
- printf( " to ");
- printFileName( dir_not_exist );
- printf( "\n" );
-
-
- rc=File::move( dir1 , dir_not_exist);
- print_error( rtl::OString( "FileMove" ), rc );
-
- if ( rc == FileBase::E_None )
- File::move( dir_not_exist , dir1);
-
- printf( "\n" );
-
-
- PressKey();
- return;
-}
-
-//----------------------------------------------------
-// FileSizeTest
-//----------------------------------------------------
-
-void FileSizeTest( void )
-{
- FileBase::RC rc;
- sal_uInt64 filesize;
- DirectoryItem aItem;
-
- printf( "--------------------------------------------\n" );
- printf( "File-Size-Test\n" );
- printf( "--------------------------------------------\n\n" );
-
-
- File aFile( file_not_exist );
-
- printf( "Create File: ");
- printFileName( file_not_exist );
- printf( "\n\n");
-
- rc = aFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write | osl_File_OpenFlag_Create );
- print_error( rtl::OString( "Create and Open File (Read & Write)" ), rc );
- printf( "\n" );
-
- if ( rc == FileBase::E_None )
- {
- //----------------------------------------------------
- // Set Filesize to 5000
- //----------------------------------------------------
-
- printf( "Set FileSize to 5000\n" );
- rc=aFile.setSize( 5000 );
- print_error( rtl::OString( "Set FileSize" ), rc );
-
- printf( "\n" );
- printf( "Verify:\n" );
-
- //----------------------------------------------------
- // Check whether Filesize is set to 5000
- //----------------------------------------------------
-
- rc=DirectoryItem::get( file_not_exist, aItem );
- print_error( rtl::OString( "Get DirectoryItem" ), rc );
-
- if ( rc == FileBase::E_None )
- {
- FileStatus rStatus( osl_FileStatus_Mask_FileSize );
- rc=aItem.getFileStatus( rStatus );
- print_error( rtl::OString( "Get FileStatus" ), rc );
-
- if ( rc == FileBase::E_None )
- {
- filesize=rStatus.getFileSize();
-
- if ( filesize == 5000 )
- printf( "\nOK : FileSize: %" SAL_PRIuUINT64 "\n", filesize );
- else
- printf( "\nError : FileSize: %" SAL_PRIuUINT64 "\n", filesize );
- }
- }
-
- printf( "\n" );
-
- //----------------------------------------------------
- // Set Filesize to -1
- //----------------------------------------------------
-
- printf( "Set FileSize to -1\n" );
- rc=aFile.setSize( -1 );
- print_error( rtl::OString( "Set FileSize" ), rc );
-
- printf( "\n" );
-
- // close the file
- rc=aFile.close();
- print_error( rtl::OString( "Close File" ), rc );
-
- // remove the file
- rc=File::remove( file_not_exist );
- print_error( rtl::OString( "Remove File" ), rc );
- }
-
- PressKey();
-
- return;
-}
-
-
-//----------------------------------------------------
-// FilePointerTest
-//----------------------------------------------------
-
-void FilePointerTest( void )
-{
- FileBase::RC rc;
- sal_uInt64 filepointer;
-
- printf( "--------------------------------------------\n" );
- printf( "File-Pointer-Test\n" );
- printf( "--------------------------------------------\n\n" );
-
-
- File rFile( file_not_exist );
-
- printf( "Create File: ");
- printFileName( file_not_exist );
- printf( "\n\n");
-
- rc = rFile.open( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write | osl_File_OpenFlag_Create );
- print_error( rtl::OString( "Create and Open File (Read & Write) "), rc );
- printf( "\n" );
-
- if ( rc==FileBase::E_None )
- {
-
- //----------------------------------------------------
- // get the position of the filepointer
- //----------------------------------------------------
-
- rc =rFile.getPos( filepointer );
- print_error( rtl::OString( "GetPos" ), rc );
- printf( "Position of the FilePointer: %" SAL_PRIuUINT64 "\n", filepointer );
-
- printf( "\n" );
-
- //----------------------------------------------------
- // set the filepointer at the end of a file
- //----------------------------------------------------
-
- printf( "Set FileSize to 5000\n" );
- rFile.setSize( 5000 );
-
- printf( "Set the FilePointer at the end of the file (5000)\n" );
- rc=rFile.setPos( osl_Pos_End,0 );
- print_error( rtl::OString( "SetPos" ), rc );
-
- rc=rFile.getPos( filepointer );
-
- if ( filepointer==5000 )
- {
- print_error( rtl::OString( "GetPos" ), rc );
- printf( "\nVerify: OK !\n" );
- printf( "Filepointer-Position: %" SAL_PRIuUINT64 "\n",filepointer );
- }
- else
- {
- print_error( rtl::OString( "GetPos" ), rc );
- printf( "\nFilePointer-Test: Error\n" );
- printf( "Filepointer-Position: %" SAL_PRIuUINT64 " != 5000 \n",filepointer );
- }
-
- printf( "\n" );
-
- // close the file
- rc=rFile.close();
- print_error( rtl::OString( "Close File" ), rc );
-
- // remove the file
- rc=File::remove( file_not_exist );
- print_error( rtl::OString( "Remove File" ), rc );
- }
-
- PressKey();
-
- return;
-}
-
-//--------------------------------------------------
-// FileAttributesTest
-//--------------------------------------------------
-
-void verifyFileAttributes( void )
-{
- FileBase::RC rc;
- DirectoryItem aItem;
- FileStatus rStatus( osl_FileStatus_Mask_Attributes );
-
- printf( "\nVerify:\n" );
-
- rc=DirectoryItem::get( file1, aItem );
-
- if ( rc==FileBase::E_None )
- {
- rc=aItem.getFileStatus( rStatus );
-
- if ( rc==FileBase::E_None )
- {
- sal_uInt64 uAttributes=rStatus.getAttributes();
- showAttributes(uAttributes);
- printf( "\n" );
- }
- else
- print_error( rtl::OString( "Get FileStatus" ), rc );
- }
- else
- print_error( rtl::OString( "Get DirectoryItem" ), rc );
-
- return;
-}
-
-#ifdef UNX
-void FileAttributesTest( void )
-{
- FileBase::RC rc;
-
- printf( "--------------------------------------------\n" );
- printf( "File-Attributes-Test\n" );
- printf( "--------------------------------------------\n\n" );
-
- printf( "File: ");
- printFileName( file1 );
- printf( "\n\n" );
-
-
- rc=File::setAttributes( file1, osl_File_Attribute_GrpWrite );
- print_error( rtl::OString( "Set Attribute: GrpWrite" ), rc );
-
- verifyFileAttributes();
-
- rc=File::setAttributes( file1, 0 );
- if ( rc!=FileBase::E_None )
- print_error( rtl::OString( "Reset Attributes" ), rc );
-
- rc=File::setAttributes( file1, osl_File_Attribute_GrpRead );
- print_error( rtl::OString( "Set Attribute: GrpRead" ), rc );
-
- verifyFileAttributes();
-
- rc=File::setAttributes( file1, 0 );
- if ( rc!=FileBase::E_None )
- print_error( rtl::OString( "Reset Attributes" ), rc );
-
- rc=File::setAttributes( file1, osl_File_Attribute_GrpExe );
- print_error( rtl::OString( "Set Attribute: GrpExe" ), rc );
-
- verifyFileAttributes();
-
- rc=File::setAttributes( file1, 0 );
- if ( rc!=FileBase::E_None )
- print_error( rtl::OString( "Reset Attributes" ), rc );
-
- rc=File::setAttributes( file1, osl_File_Attribute_OwnWrite );
- print_error( rtl::OString( "Set Attribute: OwnWrite" ), rc );
-
- verifyFileAttributes();
-
- rc=File::setAttributes( file1, 0 );
- if ( rc!=FileBase::E_None )
- print_error( rtl::OString( "Reset Attributes" ), rc );
-
- rc=File::setAttributes( file1, osl_File_Attribute_OwnRead );
- print_error( rtl::OString( "Set Attribute: OwnRead" ), rc );
-
- verifyFileAttributes();
-
- rc=File::setAttributes( file1, 0 );
- if ( rc!=FileBase::E_None )
- print_error( rtl::OString( "Reset Attributes" ), rc );
-
- rc=File::setAttributes( file1, osl_File_Attribute_OwnExe );
- print_error( rtl::OString( "Set Attribute: OwnExe" ), rc );
-
- verifyFileAttributes();
-
- rc=File::setAttributes( file1, 0 );
- if ( rc!=FileBase::E_None )
- print_error( rtl::OString( "Reset Attributes" ), rc );
-
- rc=File::setAttributes( file1, osl_File_Attribute_OthWrite );
- print_error( rtl::OString( "Set Attribute: OthWrite" ), rc );
-
- verifyFileAttributes();
-
- rc=File::setAttributes( file1, 0 );
- if ( rc!=FileBase::E_None )
- print_error( rtl::OString( "Reset Attributes" ), rc );
-
- rc=File::setAttributes( file1, osl_File_Attribute_OthRead );
- print_error( rtl::OString( "Set Attribute: OthRead" ), rc );
-
- verifyFileAttributes();
-
- rc=File::setAttributes( file1, 0 );
- if ( rc!=FileBase::E_None )
- print_error( rtl::OString( "Reset Attributes" ), rc );
-
- rc=File::setAttributes( file1, osl_File_Attribute_OthExe );
- print_error( rtl::OString( "Set Attribute: OthExe" ), rc );
-
- verifyFileAttributes();
-
- rc=File::setAttributes( file1, 0 );
- if ( rc!=FileBase::E_None )
- print_error( rtl::OString( "Reset Attributes" ), rc );
-
-
- rc=File::setAttributes( file1, osl_File_Attribute_GrpWrite | osl_File_Attribute_GrpRead | osl_File_Attribute_GrpExe | osl_File_Attribute_OwnWrite | osl_File_Attribute_OwnRead | osl_File_Attribute_OwnExe | osl_File_Attribute_OthWrite | osl_File_Attribute_OthRead | osl_File_Attribute_OthExe );
- print_error( rtl::OString( "Set all Attributes" ), rc );
-
- verifyFileAttributes();
-
- PressKey();
-
- return;
-}
-#endif
-
-#ifdef WNT
-void FileAttributesTest( void )
-{
- FileBase::RC rc;
-
- printf( "--------------------------------------------\n" );
- printf( "File-Attributes-Test\n" );
- printf( "--------------------------------------------\n\n" );
-
- printf( "File: ");
- printFileName( file1 );
- printf( "\n\n" );
-
-
- rc=File::setAttributes( file1, osl_File_Attribute_ReadOnly );
- print_error( rtl::OString( "Set Attribute: ReadOnly" ), rc );
-
- verifyFileAttributes();
-
- rc=File::setAttributes( file1, 0 );
- print_error( rtl::OString( "Reset Attributes" ), rc );
-
- verifyFileAttributes();
-
- rc=File::setAttributes( file1, osl_File_Attribute_Hidden );
- print_error( rtl::OString( "Set Attribute: Hidden" ), rc );
-
- verifyFileAttributes();
-
- rc=File::setAttributes( file1, 0 );
- print_error( rtl::OString( "Reset Attributes" ), rc );
-
- verifyFileAttributes();
-
- rc=File::setAttributes( file1, osl_File_Attribute_Hidden | osl_File_Attribute_ReadOnly );
- print_error( rtl::OString( "Set Attribute: Hidden & ReadOnly" ), rc );
-
- verifyFileAttributes();
-
- rc=File::setAttributes( file1, 0 );
- print_error( rtl::OString( "Reset Attributes") , rc );
-
- verifyFileAttributes();
-
- PressKey();
-
- return;
-}
-#endif
-
-//--------------------------------------------------
-// FileTimeTest
-//--------------------------------------------------
-
-void FileTimeTest( void )
-{
- FileBase::RC rc;
-
- DirectoryItem aItem;
-
- struct tm sSysCreationTime;
- sSysCreationTime.tm_sec = 0;
- sSysCreationTime.tm_min = 20;
- sSysCreationTime.tm_hour = 12;
- sSysCreationTime.tm_mday = 4;
- sSysCreationTime.tm_mon = 9;
- sSysCreationTime.tm_year = 99;
-
- struct tm sSysAccessTime;
- sSysAccessTime.tm_sec = 0;
- sSysAccessTime.tm_min = 40;
- sSysAccessTime.tm_hour = 1;
- sSysAccessTime.tm_mday = 6;
- sSysAccessTime.tm_mon = 5;
- sSysAccessTime.tm_year = 98;
-
- struct tm sSysModifyTime;
- sSysModifyTime.tm_sec = 0;
- sSysModifyTime.tm_min = 1;
- sSysModifyTime.tm_hour = 24;
- sSysModifyTime.tm_mday = 13;
- sSysModifyTime.tm_mon = 11;
- sSysModifyTime.tm_year = 95;
-
- sal_uInt32 aSysCreationTime = mktime( &sSysCreationTime );
- sal_uInt32 aSysAccessTime = mktime( &sSysAccessTime );
- sal_uInt32 aSysModifyTime = mktime( &sSysModifyTime );
-
- TimeValue aCreationTime = { aSysCreationTime, 0};
- TimeValue aAccessTime = { aSysAccessTime, 0};
- TimeValue aModifyTime = { aSysModifyTime, 0};
-
- TimeValue aCreationTimeRead;
- TimeValue aAccessTimeRead;
- TimeValue aModifyTimeRead;
-
-
- printf( "--------------------------------------------\n" );
- printf( "File-Time-Test\n" );
- printf( "--------------------------------------------\n\n" );
-
- printf( "File: ");
- printFileName( file1 );
- printf( "\n\n" );
-
- printf( "CreationTime \t : ");
- showTime( aCreationTime );
-
- printf( "\nAccessTime \t : ");
- showTime( aAccessTime );
-
- printf( "\nModifyTime \t : ");
- showTime( aModifyTime );
-
- //--------------------------------------------------
- // setTime
- //--------------------------------------------------
-
- printf( "\n" );
- rc=File::setTime( file1 , aCreationTime , aAccessTime , aModifyTime );
- print_error( rtl::OString( "SetTime" ), rc );
-
- //--------------------------------------------------
- // Verify
- //--------------------------------------------------
-
- FileStatus rStatus( osl_FileStatus_Mask_CreationTime | osl_FileStatus_Mask_AccessTime | osl_FileStatus_Mask_ModifyTime);
-
- printf( "\nVerify:\n" );
-
- rc=DirectoryItem::get( file1, aItem );
- print_error( rtl::OString( "Get DirectoryItem" ), rc );
-
- if ( rc==FileBase::E_None )
- {
- rc=aItem.getFileStatus( rStatus );
- print_error( rtl::OString( "Get FileStatus" ), rc );
- printf( "\n" );
-
- if ( rc==FileBase::E_None )
- {
- //--------------------------------------------------
- // GetCreationTime
- //--------------------------------------------------
-
- aCreationTimeRead=rStatus.getCreationTime();
-#ifdef WNT
- if ( aCreationTime.Seconds == aCreationTimeRead.Seconds && aCreationTime.Nanosec == aCreationTimeRead.Nanosec )
- printf( "GetCreationTime: ok : " );
- else
- printf( "GetCreationTime: Error : " );
-
- showTime( aCreationTimeRead );
- printf( "\n" );
-#endif
- //--------------------------------------------------
- // GetAccessTime
- //--------------------------------------------------
-
- aAccessTimeRead=rStatus.getAccessTime();
-
- if ( aAccessTime.Seconds == aAccessTimeRead.Seconds && aAccessTime.Nanosec == aAccessTimeRead.Nanosec )
- printf( "GetAccessTime: ok : " );
- else
- printf( "GetAccessTime: Error : " );
-
- showTime( aAccessTimeRead );
- printf( "\n" );
-
- //--------------------------------------------------
- // GetModifyTime
- //--------------------------------------------------
-
- aModifyTimeRead=rStatus.getModifyTime();
-
- if ( aModifyTime.Seconds == aModifyTimeRead.Seconds && aModifyTime.Nanosec == aModifyTimeRead.Nanosec )
- printf( "GetModifyTime: ok : " );
- else
- printf( "GetModifyTime: Error : " );
-
- showTime( aModifyTimeRead );
- printf( "\n" );
- }
- }
-
- PressKey();
- return;
-}
-
-
-//--------------------------------------------------
-// DirectoryItemTest
-//--------------------------------------------------
-
-void DirectoryItemTest( void )
-{
- FileBase::RC rc;
- Directory *pDir;
- DirectoryItem aItem;
- FileStatus *pStatus;
- File *pFile;
-
- printf( "--------------------------------------------\n" );
- printf( "Directory-Item-Test\n" );
- printf( "--------------------------------------------\n\n" );
-
- //--------------------------------------------------
- // get DirectoryItem from an existing directory
- //--------------------------------------------------
-
- printf( "Get DirectoryItem from an existing Directory: ");
- printFileName( dir1 );
- printf( "\n");
-
- rc=DirectoryItem::get( dir1 , aItem );
- print_error( rtl::OString( "GetDirectoryItem" ), rc );
-
- pStatus=new FileStatus( osl_FileStatus_Mask_All );
- rc=aItem.getFileStatus( *pStatus );
-
- if ( rc==FileBase::E_None )
- {
- printf( "GetFileStatus: FileURL: ");
- printFileName(pStatus->getFileURL() );
- printf( "\n" );
- }
-
- delete pStatus;
-
- printf( "\n" );
-
- //--------------------------------------------------
- // get DirectoryItem from a not existing directory
- //--------------------------------------------------
-
- printf( "Get DirectoryItem from a not existing Directory: ");
- printFileName( dir_not_exist );
- printf( "\n" );
-
- rc=DirectoryItem::get( dir_not_exist , aItem );
- print_error( rtl::OString( "Get DirectoryItem" ), rc );
-
- printf( "\n" );
-
- //--------------------------------------------------
- // get DirectoryItem from an existing file
- //--------------------------------------------------
-
- printf( "Get DirectoryItem from an existing File: ");
- printFileName( file1 );
- printf( "\n" );
-
- rc=DirectoryItem::get( file1 , aItem );
- print_error( rtl::OString( "GetDirectoryItem" ), rc );
-
- pStatus=new FileStatus( osl_FileStatus_Mask_All );
- rc=aItem.getFileStatus( *pStatus );
-
- if ( rc==FileBase::E_None )
- {
- printf( "GetFileStatus: FileURL: ");
- printFileName( pStatus->getFileURL() );
- printf( "\n" );
- }
-
- delete pStatus;
-
- printf( "\n" );
-
- //--------------------------------------------------
- // get DirectoryItem from a not existing file
- //--------------------------------------------------
-
- printf( "Get DirectoryItem from a not existing File: ");
- printFileName( file_not_exist );
- printf( "\n" );
-
- rc=DirectoryItem::get( file_not_exist , aItem );
- print_error( rtl::OString( "Get DirectoryItem" ), rc );
-
- printf( "\n" );
-
- //----------------------------------------------------------
- // get DirectoryItem from a directory with a wrong semantic
- //----------------------------------------------------------
-
- printf( "Get DirectoryItem from a Directory with a wrong semantic: ");
- printFileName( dir_not_exist );
- printf( "\n" );
-
- rc=DirectoryItem::get( dir_wrong_semantic, aItem );
- print_error( rtl::OString( "Get DirectoryItem" ),rc );
-
- printf( "\n" );
-
- //---------------------------------------------------
- // get DirectoryItem from a file-handle
- //--------------------------------------------------
-
- pFile=new File( file1 );
-
- rc=pFile->open( osl_File_OpenFlag_Read );
- if ( rc==FileBase::E_None )
- {
- printf( "Get DirectoryItem from a File-Handle: ");
- printFileName( file1 );
- printf( "\n" );
-
- rc=DirectoryItem::get( file1 , aItem );
- print_error( rtl::OString( "GetDirectoryItem" ), rc );
-
- pStatus=new FileStatus( osl_FileStatus_Mask_All );
- rc=aItem.getFileStatus( *pStatus );
-
- if ( rc==FileBase::E_None )
- {
- printf( "GetFileStatus: FileURL: ");
- printFileName( pStatus->getFileURL() );
- printf( "\n");
- }
-
- delete pStatus;
-
- pFile->close();
- }
-
- delete pFile;
-
- printf( "\n" );
-
- //---------------------------------------------------
- // get DirectoryItem
- //--------------------------------------------------
-
- printf( "Get DirectoryItem from an empty File-Handle\n" );
- rc=DirectoryItem::get( file1 , aItem );
- print_error( rtl::OString( "GetDirectoryItem" ), rc );
-
- printf( "\n" );
-
- //--------------------------------------------------
- // GetNextItem from a directory
- //--------------------------------------------------
-
- pDir=new Directory( dir1 );
- printf( "Get next DirectoryItem from a directory: ");
- printFileName( dir1);
- printf( "\n" );
-
- rc= pDir->open();
- print_error( rtl::OString( "Open Directory" ), rc );
-
- printf( "\n" );
-
- if ( pDir->isOpen() )
- {
- //--------------------------------------------------
- // get all files from the directory
- //--------------------------------------------------
-
- rtl::OUString str;
- rtl::OUString str1[2];
-
- aItem=DirectoryItem();
- rc=pDir->getNextItem( aItem );
- print_error( rtl::OString( "GetNextItem" ),rc );
-
- while( rc==FileBase::E_None )
- {
-
- FileStatus rStatus( osl_FileStatus_Mask_All );
- aItem.getFileStatus( rStatus );
-
- str=rStatus.getFileName();
- printf( "Filename: ");
- printFileName( str );
- printf( "\n");
-
- aItem=DirectoryItem();
- rc=pDir->getNextItem( aItem );
- print_error( rtl::OString( "GetNextItem" ),rc );
- }
-
- printf( "\n" );
-
- //--------------------------------------------------
- // Reset-Test
- //--------------------------------------------------
-
- for (int i=0; i<2; i++)
- {
- aItem=DirectoryItem();
- rc=pDir->reset();
- rc=pDir->getNextItem( aItem );
-
- FileStatus rStatus( osl_FileStatus_Mask_All );
- aItem.getFileStatus( rStatus );
-
- str1[i]=rStatus.getFileName();
- }
-
-
- if ( str1[0].compareTo(str1[1]) == 0 )
- print_error( rtl::OString( "Reset" ),FileBase::E_None );
- else
- print_error( rtl::OString( "Reset" ),FileBase::E_invalidError );
-
- printf( "\n" );
-
- // Close Directory
- rc=pDir->close();
- print_error( rtl::OString( "Close Directory" ), rc );
- }
-
- printf( "\n");
-
- //--------------------------------------------------
- // GetNextItem from a closed directory
- //--------------------------------------------------
-
- printf( "Get next DirectoryItem from a closed directory: ");
- printFileName( dir1 );
- printf( "\n" );
-
- aItem=DirectoryItem();
- rc=pDir->getNextItem( aItem );
- print_error( rtl::OString( "GetNextItem" ),rc );
-
- delete pDir;
-
- PressKey();
- return;
-}
-
-//--------------------------------------------------
-// FileStatusTest (for different types)
-//--------------------------------------------------
-
-void FileStatusTest( FileStatus *pStatus )
-{
- //--------------------------------------------------
- // GetFileType of the directory
- //--------------------------------------------------
-
- FileStatus::Type aType;
-
- printf( "\ngetFileType:\n" );
- aType=pStatus->getFileType();
- showFileType( aType );
-
- //--------------------------------------------------
- // GetAttributes
- //--------------------------------------------------
-
- sal_uInt64 uAttributes;
-
- printf( "\ngetAttributes:\n" );
- uAttributes=pStatus->getAttributes();
- showAttributes( uAttributes );
-
- //--------------------------------------------------
- // GetCreationTime
- //--------------------------------------------------
-
- TimeValue aCreationTime;
-
- printf( "\ngetCreationTime:\n" );
- aCreationTime=pStatus->getCreationTime();
-
- printf( "CreationTime: " );
- showTime( aCreationTime );
-
- //--------------------------------------------------
- // GetAccessTime
- //--------------------------------------------------
-
- TimeValue aAccessTime;
-
- printf( "\ngetAccessTime:\n" );
- aAccessTime=pStatus->getAccessTime();
-
- printf( "AccessTime: " );
- showTime( aAccessTime );
-
- //--------------------------------------------------
- // GetModifyTime
- //--------------------------------------------------
-
- TimeValue aModifyTime;
-
- printf( "\ngetModifyTime:\n" );
- aModifyTime=pStatus->getModifyTime();
-
- printf( "ModifyTime: " );
- showTime( aModifyTime );
-
- //--------------------------------------------------
- // GetFileSize
- //--------------------------------------------------
-
- sal_uInt64 FileSize;
-
- printf( "\ngetFileSize:\n" );
-
- FileSize=pStatus->getFileSize();
- printf( "FileSize: %" SAL_PRIuUINT64 "\n", FileSize);
-
- //--------------------------------------------------
- // GetFileName
- //--------------------------------------------------
-
- rtl::OUString FileName;
-
- printf( "\ngetFileName:\n" );
-
- FileName=pStatus->getFileName();
- printf( "FileName: ");
- printFileName( FileName );
- printf( "\n" );
-
- //--------------------------------------------------
- // GetFileURL
- //--------------------------------------------------
-
- rtl::OUString FileURL;
-
- printf( "\ngetFileURL:\n" );
-
- FileURL=pStatus->getFileURL();
- printf( "FileURL: ");
- printFileName( FileURL );
- printf( "\n" );
-
- //--------------------------------------------------
- // GetLinkTargetURL
- //--------------------------------------------------
-
- rtl::OUString LinkTargetURL;
-
- printf( "\ngetLinkTargetURL:\n");
-
- LinkTargetURL=pStatus->getLinkTargetURL();
- printf( "LinkTargetURL: ");
- printFileName( LinkTargetURL );
- printf( "\n" );
-
- return;
-}
-
-//--------------------------------------------------
-// DirectoryFileStatusTest
-//--------------------------------------------------
-
-void DirectoryFileStatusTest( void )
-{
- FileBase::RC rc;
- DirectoryItem aItem;
- FileStatus *pStatus;
-
- printf( "--------------------------------------------\n" );
- printf( "Directory-FileStatus-Test\n" );
- printf( "--------------------------------------------\n\n" );
-
- printf( "FileStatus of the directory: ");
- printFileName( dir1 );
- printf( "\n" );
-
- aItem=DirectoryItem();
-
- rc=DirectoryItem::get( dir1, aItem );
- print_error( rtl::OString( "Get DirectoryItem" ), rc );
-
- if ( rc==FileBase::E_None )
- {
- pStatus=new FileStatus( osl_FileStatus_Mask_All );
- rc=aItem.getFileStatus( *pStatus );
-
- FileStatusTest( pStatus );
-
- delete pStatus;
- }
-
- printf( "\n" );
-
- PressKey();
- return;
-}
-
-//--------------------------------------------------
-// FileFileStatusTest
-//--------------------------------------------------
-
-void FileFileStatusTest( void )
-{
- FileBase::RC rc;
- DirectoryItem aItem;
- FileStatus *pStatus;
-
- printf( "--------------------------------------------\n" );
- printf( "File-FileStatus-Test\n" );
- printf( "--------------------------------------------\n\n" );
-
- printf( "FileStatus of the file: ");
- printFileName( file1 );
- printf( "\n" );
-
- aItem=DirectoryItem();
-
- rc=DirectoryItem::get( file1 , aItem );
- print_error( rtl::OString( "Get DirectoryItem" ), rc );
-
- if ( rc==FileBase::E_None )
- {
- pStatus=new FileStatus( osl_FileStatus_Mask_All );
- rc=aItem.getFileStatus( *pStatus );
-
- FileStatusTest( pStatus );
-
- delete pStatus;
- }
-
- printf( "\n" );
-
- PressKey();
- return;
-}
-
-//--------------------------------------------------
-// VolumeFileStatusTest
-//--------------------------------------------------
-
-void VolumeFileStatusTest( void )
-{
- FileBase::RC rc;
- DirectoryItem aItem;
- FileStatus *pStatus;
-
- printf( "--------------------------------------------\n" );
- printf( "Volume-FileStatus-Test\n" );
- printf( "--------------------------------------------\n\n" );
-
- printf( "FileStatus of the Volume: ");
- printFileName( root );
- printf( "\n" );
-
- aItem=DirectoryItem();
-
- rc=DirectoryItem::get( root , aItem );
- print_error( rtl::OString( "Get DirectoryItem" ), rc );
-
- if ( rc==FileBase::E_None )
- {
- pStatus=new FileStatus( osl_FileStatus_Mask_All) ;
- rc=aItem.getFileStatus( *pStatus );
-
- FileStatusTest( pStatus );
-
- delete pStatus;
- }
-
- printf( "\n" );
-
- PressKey();
- return;
-}
-
-
-//--------------------------------------------------
-// VolumeInfoTest
-//--------------------------------------------------
-
-void VolumeInfoTest( void )
-{
- FileBase::RC rc;
-
- printf( "--------------------------------------------\n" );
- printf( "Volume-Info-Test\n" );
- printf( "--------------------------------------------\n\n" );
-
- printf( "VolumeInfo of the volume ");
- printFileName( root );
-
- printf( "\n" );
-
- VolumeInfo rInfo( osl_VolumeInfo_Mask_FreeSpace );
- rc=Directory::getVolumeInfo( root , rInfo );
- print_error( rtl::OString( "GetVolumeInfo" ),rc );
-
- printf( "\n" );
-
- //--------------------------------------------------
- // getRemoteFlag
- //--------------------------------------------------
-
- if ( rInfo.getRemoteFlag() )
- printf( "RemoteFlag: Yes\n" );
- else
- printf( "RemoteFlag: No\n" );
-
- //--------------------------------------------------
- // getRemoveableFlag
- //--------------------------------------------------
-
- if ( rInfo.getRemoveableFlag() )
- printf( "RemoveableFlag: Yes\n" );
- else
- printf( "RemoveableFlag: No\n" );
-
- //--------------------------------------------------
- // getTotalSpace
- //--------------------------------------------------
-
- sal_uInt64 TotalSpace;
- TotalSpace=rInfo.getTotalSpace();
- printf( "Total Space: %" SAL_PRIuUINT64 "\n",TotalSpace );
-
- //--------------------------------------------------
- // getFreeSpace
- //--------------------------------------------------
-
- sal_uInt64 FreeSpace;
- FreeSpace=rInfo.getFreeSpace();
- printf( "Free Space: %" SAL_PRIuUINT64 "\n",FreeSpace );
-
- //--------------------------------------------------
- // getUsedSpace
- //--------------------------------------------------
-
- sal_uInt64 UsedSpace;
- UsedSpace=rInfo.getUsedSpace();
- printf( "Used Space: %" SAL_PRIuUINT64 "\n",UsedSpace );
-
- //--------------------------------------------------
- // getMaxNameLength
- //--------------------------------------------------
-
- sal_uInt32 MaxNameLength;
- MaxNameLength=rInfo.getMaxNameLength();
- printf( "MaxNameLength: %" SAL_PRIuUINT32 "\n",MaxNameLength );
-
- //--------------------------------------------------
- // getMaxPathLength
- //--------------------------------------------------
-
- sal_uInt32 MaxPathLength;
- MaxPathLength=rInfo.getMaxPathLength();
- printf( "MaxPathLength: %" SAL_PRIuUINT32 "\n",MaxPathLength );
-
- //--------------------------------------------------
- // getFileSystemName
- //--------------------------------------------------
-
- rtl::OUString FileSystemName;
- FileSystemName=rInfo.getFileSystemName();
- printf( "File-System-Name: ");
- printFileName( FileSystemName );
- printf( "\n" );
-
- PressKey();
- return;
-}
-
-//--------------------------------------------------
-// FileBaseTest
-//--------------------------------------------------
-
-void ConvertPathTest(rtl::OUString& strPath)
-{
- FileBase::RC rc;
-
- rtl::OUString strNormPath;
- rtl::OUString strFileURL;
- rtl::OUString strNormPathFromFileURL;
- rtl::OUString strSystemPath;
-
- //--------------------------------------------------
- // normalizePath
- //--------------------------------------------------
-
- rc=FileBase::getFileURLFromSystemPath( strPath, strNormPath );
-
- if ( rc == FileBase::E_None )
- {
- printf( "Normalized Path: \t\t");
- printFileName( strNormPath );
- printf( "\n" );
- }
- else
- printf( "normalizePath: Error \n" );
-
- //--------------------------------------------------
- // getFileURLFromSystemPath
- //--------------------------------------------------
-
- if ( strNormPath.getLength() != 0 )
- {
- rc=FileBase::getFileURLFromSystemPath( strNormPath, strFileURL );
-
- if ( rc == FileBase::E_None )
- {
- printf( "File-URL: \t\t\t");
- printFileName( strFileURL );
- printf( "\n" );
- }
- else
- printf( "getFileURLFromSystemPath: Error \n" );
- }
- else
- printf( "getFileURLFromSystemPath: not tested \n" );
-
- //--------------------------------------------------
- // getNormalizedPathFromFileURL
- //--------------------------------------------------
-
- if ( strFileURL.getLength() != 0 )
- {
- rc=FileBase::getSystemPathFromFileURL( strFileURL, strNormPathFromFileURL );
-
- if ( rc == FileBase::E_None )
- {
- printf( "Normalized Path from File-URL: \t");
- printFileName( strNormPathFromFileURL );
- printf( "\n" );
- }
- else
- printf( "getNormalizedPathFromFileURL: Error \n" );
- }
- else
- printf( "getNormalizedPathFromFileURL: not tested \n" );
-
-
- //--------------------------------------------------
- // getSystemPathFromFileURL
- //--------------------------------------------------
-
- if ( strNormPath.getLength() != 0 )
- {
- rc=FileBase::getSystemPathFromFileURL( strNormPath, strSystemPath );
-
- if ( rc == FileBase::E_None )
- {
- printf( "System-Path: \t\t\t");
- printFileName( strSystemPath );
- printf( "\n");
- }
- else
- printf( "getSystemPathFromFileURL: Error \n" );
- }
- else
- printf( "getSystemPathFromFileURL: not tested \n" );
-
- //--------------------------------------------------
- // Verify
- //--------------------------------------------------
-
- if ( strNormPathFromFileURL == strNormPath )
- printf( "\nVerify: OK ! ( Normalized-Path == Normalized-Path-From-File-URL )\n" );
- else
- printf( "\nVerify: Error ! ( Normalized-Path != Normalized-Path-From-File-URL )\n" );
-
- return;
-}
-
-void FileBaseTest()
-{
- printf( "--------------------------------------------\n" );
- printf( "FileBase-Test\n" );
- printf( "--------------------------------------------\n\n" );
-
- //--------------------------------------------------
- // ConvertPath-Test (Local File)
- //--------------------------------------------------
-
- printf( "- Local File: ");
- printFileName( file1 );
- printf( "\n\n" );
-
- ConvertPathTest(file1);
-
- //--------------------------------------------------
- // ConvertPath-Test (File on a server)
- //--------------------------------------------------
-
- printf( "\n- File on server: ");
- printFileName( file_on_server );
- printf( "\n\n" );
- ConvertPathTest(file_on_server);
-
- PressKey();
-
- return;
-}
-
-
-//--------------------------------------------------
-// AbsolutePathTest
-//--------------------------------------------------
-void DoAbsolutePathTest(rtl::OUString strDirBase, rtl::OUString strRelative)
-{
- FileBase::RC rc;
-
- rtl::OUString strAbsolute;
-
- printf( "Base-Directory: \t");
- printFileName( strDirBase );
- printf( "\n" );
- printf( "Relative-Path: \t\t");
- printFileName ( strRelative );
- printf( "\n" );
-
- rc=FileBase::getAbsoluteFileURL( strDirBase, strRelative, strAbsolute );
-
- if ( rc == FileBase::E_None )
- {
- printf( "Absolute-Path: \t\t");
- printFileName ( strAbsolute );
- printf( "\n" );
- }
- else
- printf( "Absolute-Path: Error \n" );
-
- printf( "\n" );
- return;
-}
-
-void AbsolutePathTest(void)
-{
- printf( "--------------------------------------------\n" );
- printf( "AbsolutePath-Test\n" );
- printf( "--------------------------------------------\n\n" );
-
- DoAbsolutePathTest(dir1, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".")));
- DoAbsolutePathTest(dir1, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("..")));
- DoAbsolutePathTest(dir1, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("../..")));
- DoAbsolutePathTest(dir1, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("../HUHU")));
-
- DoAbsolutePathTest(dir_on_server, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".")));
- DoAbsolutePathTest(dir_on_server, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("..")));
- DoAbsolutePathTest(dir_on_server, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("../..")));
- DoAbsolutePathTest(dir_on_server, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("../HUHU")));
-
- PressKey();
- return;
-}
-
-
-//--------------------------------------------------
-// searchPathTest
-//--------------------------------------------------
-
-void SearchPathTest(void)
-{
- FileBase::RC rc;
-
- rtl::OUString strNormPath(file1);
- rtl::OUString strFileURL;
- rtl::OUString strSystemPath;
- rtl::OUString strResultPath;
-
- printf( "--------------------------------------------\n" );
- printf( "SearchPath-Test\n" );
- printf( "--------------------------------------------\n\n" );
-
-
- rc=FileBase::getFileURLFromSystemPath( strNormPath, strFileURL );
- print_error( rtl::OString( "getFileURLFromSystemPath" ), rc );
- rc=FileBase::getSystemPathFromFileURL( strNormPath, strSystemPath );
- print_error( rtl::OString( "getSystemPathFromFileURL" ), rc );
-
- //--------------------------------------------------
- // searchFileURL (with a normalized path)
- //--------------------------------------------------
-
- if ( strNormPath.getLength() != 0 )
- {
- printf( "\nSearch-Normalized-Path (with a normalized path) : ");
- printFileName ( strNormPath );
- printf( "\n" );
-
- rc=FileBase::searchFileURL( strNormPath , rtl::OUString() , strResultPath );
-
- if ( rc == FileBase::E_None )
- {
- printf( "Result: \t\t\t");
- printFileName ( strResultPath );
- printf( "\n" );
- }
- else
- printf( "searchFileURL (with a normalized path): Error\n" );
- }
- else
- printf( "searchFileURL (with a normalized path): not tested\n" );
-
- //--------------------------------------------------
- // searchFileURL (with a File-URL)
- //--------------------------------------------------
-
- if ( strFileURL.getLength() != 0 )
- {
- printf( "\nSearch-Normalized-Path (with a FileURL) : ");
- printFileName( strFileURL );
- printf( "\n" );
-
- rc=FileBase::searchFileURL( strFileURL , rtl::OUString() , strResultPath );
-
- if ( rc == FileBase::E_None )
- {
- printf( "Result: \t\t\t");
- printFileName ( strResultPath );
- printf( "\n" );
- }
- else
- printf( "searchFileURL (with a FileURL path): Error\n" );
- }
- else
- printf( "searchFileURL (with a FileURL path): not tested\n" );
-
- //--------------------------------------------------
- // searchFileURL (with a systempath)
- //--------------------------------------------------
-
- if ( strSystemPath.getLength() != 0 )
- {
- printf( "\nSearch-Normalized-Path (with a SystemPath) : ");
- printFileName( strSystemPath );
- printf( "\n" );
-
- rc=FileBase::searchFileURL( strSystemPath , rtl::OUString() , strResultPath );
-
- if ( rc == FileBase::E_None )
- {
- printf( "Result: \t\t\t");
- printFileName( strResultPath );
- printf( "\n" );
- }
- else
- printf( "searchFileURL (with a systempath): Error\n" );
- }
- else
- printf( "searchFileURL (with a systempath): not tested\n" );
-
- //--------------------------------------------------
- // searchFileURL (File and no searchpath)
- //--------------------------------------------------
-
- printf( "\nsearchFileURL: File (no searchpath) : ");
- printFileName( file3 );
- printf( "\n" );
-
- rc=FileBase::searchFileURL( file3 , rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("")) , strResultPath );
-
- if ( rc == FileBase::E_None )
- {
- printf( "Result: \t\t\t");
- printFileName( strResultPath );
- printf( "\n" );
- }
- else
- printf( "searchFileURL: File not found: OK ! \n" );
-
- //--------------------------------------------------
- // searchFileURL (File and Path)
- //--------------------------------------------------
-
- printf( "\nsearchFileURL: File : ");
- printFileName( file3 );
- printf( "\tSearchPath ");
- printFileName( dir1 );
- printf( "\n");
-
- rc=FileBase::searchFileURL( file3 , dir1 , strResultPath );
-
- if ( rc == FileBase::E_None )
- {
- printf( "Result: \t\t\t");
- printFileName( strResultPath );
- printf( "\n");
- }
- else
- printf( "searchFileURL: File not found: Error\n" );
-
- //------------------------------------------------------------
- // searchFileURL (File and searchpath with two entries)
- //------------------------------------------------------------
-
- rtl::OUString strSearchPath( dir_not_exist );
- strSearchPath+=rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(";"));
- strSearchPath+=dir_on_server;
-
- printf( "\nsearchFileURL: File : ");
- printFileName( file3 );
- printf( "SearchPath ");
- printFileName( strSearchPath );
- printf( "\n");
-
- rc=FileBase::searchFileURL( file3 , strSearchPath , strResultPath );
-
- if ( rc == FileBase::E_None )
- {
- printf( "Result: \t\t\t");
- printFileName( strResultPath );
- printf( "\n" );
- }
- else
- printf( "searchFileURL: File not found: Error\n" );
-
- //-------------------------------------------------------------------
- // searchFileURL (File and searchpath (with a wrong semantic))
- //-------------------------------------------------------------------
-
- strSearchPath=rtl::OUString( dir_wrong_semantic );
-
- printf( "\nsearchFileURL: File : ");
- printFileName( file3 );
- printf( "SearchPath ");
- printFileName( strSearchPath );
- printf( "\n");
-
- rc=FileBase::searchFileURL( file3 , strSearchPath , strResultPath );
-
- if ( rc == FileBase::E_None )
- printf( "Error: Wrong Semantich but no error occurs !\n" );
- else
- printf( "searchFileURL: File not found: OK !\n" );
-
- return;
-}
-
-//--------------------------------------------------
-// CanonicalNameTest
-//--------------------------------------------------
-
-void getCanonicalNameTest(rtl::OUString strPath)
-{
- FileBase::RC rc;
-
- rtl::OUString strValid;
-
- printf( "Original-Name: \t\t");
- printFileName( strPath );
- printf( "\n" );
-
- rc=FileBase::getCanonicalName( strPath, strValid );
-
- if ( rc == FileBase::E_None)
- {
- printf( "Canonical-Name: \t");
- printFileName( strValid );
- printf( "\n");
-
- }
- else
- printf( "Canonical-Name: Error \n" );
-
- printf( "\n" );
- return;
-}
-
-void CanonicalNameTest(void)
-{
- printf( "--------------------------------------------\n" );
- printf( "CanonicalName-Test\n" );
- printf( "--------------------------------------------\n\n" );
-
- getCanonicalNameTest( dir1 );
- getCanonicalNameTest( dir_on_server );
- getCanonicalNameTest( file1 );
- getCanonicalNameTest( file_on_server );
-
- PressKey();
- return;
-}
-
-//--------------------------------------------------
-// print_error
-//--------------------------------------------------
-
-void print_error( const ::rtl::OString& str, FileBase::RC rc )
-{
-
- printf( "%s : ", str.getStr() );
- switch(rc)
- {
- case FileBase::E_None:
- printf("OK !\n");
- break;
- case FileBase::E_PERM:
- printf("E_PERM\n");
- break;
- case FileBase::E_NOENT:
- printf("E_NOENT\n");
- break;
- case FileBase::E_SRCH:
- printf("E_SRCH\n");
- break;
- case FileBase::E_INTR:
- printf("E_INTR\n");
- break;
- case FileBase::E_IO:
- printf("E_IO\n");
- break;
- case FileBase::E_NXIO:
- printf("E_NXIO\n");
- break;
- case FileBase::E_2BIG:
- printf("E_2BIG\n");
- break;
- case FileBase::E_NOEXEC:
- printf("E_NOEXEC\n");
- break;
- case FileBase::E_BADF:
- printf("E_BADF\n");
- break;
- case FileBase::E_CHILD:
- printf("E_CHILD\n");
- break;
- case FileBase::E_AGAIN:
- printf("E_AGAIN\n");
- break;
- case FileBase::E_NOMEM:
- printf("E_NOMEM\n");
- break;
- case FileBase::E_ACCES:
- printf("E_ACCES\n");
- break;
- case FileBase::E_FAULT:
- printf("E_FAULT\n");
- break;
- case FileBase::E_BUSY:
- printf("E_BUSY\n");
- break;
- case FileBase::E_EXIST:
- printf("E_EXIST\n");
- break;
- case FileBase::E_XDEV:
- printf("E_XDEV\n");
- break;
- case FileBase::E_NODEV:
- printf("E_NODEV\n");
- break;
- case FileBase::E_NOTDIR:
- printf("E_NOTDIR\n");
- break;
- case FileBase::E_ISDIR:
- printf("E_ISDIR\n");
- break;
- case FileBase::E_INVAL:
- printf("E_INVAL\n");
- break;
- case FileBase::E_NFILE:
- printf("E_NFILE\n");
- break;
- case FileBase::E_MFILE:
- printf("E_MFILE\n");
- break;
- case FileBase::E_NOTTY:
- printf("E_NOTTY\n");
- break;
- case FileBase::E_FBIG:
- printf("E_FBIG\n");
- break;
- case FileBase::E_NOSPC:
- printf("E_NOSPC\n");
- break;
- case FileBase::E_SPIPE:
- printf("E_SPIPE\n");
- break;
- case FileBase::E_ROFS:
- printf("E_ROFS\n");
- break;
- case FileBase::E_MLINK:
- printf("E_MLINK\n");
- break;
- case FileBase::E_PIPE:
- printf("E_PIPE\n");
- break;
- case FileBase::E_DOM:
- printf("E_DOM\n");
- break;
- case FileBase::E_RANGE:
- printf("E_RANGE\n");
- break;
- case FileBase::E_DEADLK:
- printf("E_DEADLK\n");
- break;
- case FileBase::E_NAMETOOLONG:
- printf("E_NAMETOOLONG\n");
- break;
- case FileBase::E_NOLCK:
- printf("E_NOLCK\n");
- break;
- case FileBase::E_NOSYS:
- printf("E_NOSYS\n");
- break;
- case FileBase::E_NOTEMPTY:
- printf("E_NOTEMPTY\n");
- break;
- case FileBase::E_LOOP:
- printf("E_LOOP\n");
- break;
- case FileBase::E_ILSEQ:
- printf("E_ILSEQ\n");
- break;
- case FileBase::E_NOLINK:
- printf("E_NOLINK\n");
- break;
- case FileBase::E_MULTIHOP:
- printf("E_MULTIHOP\n");
- break;
- case FileBase::E_USERS:
- printf("E_USERS\n");
- break;
- case FileBase::E_OVERFLOW:
- printf("E_OVERFLOW\n");
- break;
- default:
- printf("E_Unknown\n");
- break;
- }
- return;
-}
-
-//--------------------------------------------------
-// main
-//--------------------------------------------------
-#if defined WNT
- #define MAIN _cdecl main
-#else
- #define MAIN main
-#endif
-
-int MAIN( int argc, char* argv[] )
-{
- sal_Bool fSuccess=sal_False;
-
- //Initialization
- fSuccess=Initialize();
- if ( !fSuccess )
- {
- printf("Error during Initialization");
- return -1;
- }
-
-
- if (argc==1)
- {
- DirectoryOpenAndCloseTest();
- DirectoryCreateAndRemoveTest();
-
- FileOpenAndCloseTest();
- FileCreateAndRemoveTest();
- FileWriteAndReadTest();
- FileCopyAndMoveTest();
- FileSizeTest();
- FilePointerTest();
- FileAttributesTest();
- FileTimeTest();
- DirectoryItemTest();
- DirectoryFileStatusTest();
- VolumeFileStatusTest();
- FileFileStatusTest();
- VolumeInfoTest();
- FileBaseTest();
- SearchPathTest();
- AbsolutePathTest();
- CanonicalNameTest();
- }
- // command line arguments ?
- else
- {
- int i=1;
-
- while (i<argc)
- {
- if (strcmp(argv[i], "doc")==0)
- DirectoryOpenAndCloseTest();
- else if (strcmp(argv[i], "dcr")==0)
- DirectoryCreateAndRemoveTest();
- else if (strcmp(argv[i], "foc")==0)
- FileOpenAndCloseTest();
- else if (strcmp(argv[i], "fcr")==0)
- FileCreateAndRemoveTest();
- else if (strcmp(argv[i], "fwr")==0)
- FileWriteAndReadTest();
- else if (strcmp(argv[i], "fcm")==0)
- FileCopyAndMoveTest();
- else if (strcmp(argv[i], "fs")==0)
- FileSizeTest();
- else if (strcmp(argv[i], "fp")==0)
- FilePointerTest();
- else if (strcmp(argv[i], "fa")==0)
- FileAttributesTest();
- else if (strcmp(argv[i], "ft")==0)
- FileTimeTest();
- else if (strcmp(argv[i], "di")==0)
- DirectoryItemTest();
- else if (strcmp(argv[i], "dfs")==0)
- DirectoryFileStatusTest();
- else if (strcmp(argv[i], "vfs")==0)
- VolumeFileStatusTest();
- else if (strcmp(argv[i], "ffs")==0)
- FileFileStatusTest();
- else if (strcmp(argv[i], "vi")==0)
- VolumeInfoTest();
- else if (strcmp(argv[i], "fb")==0)
- FileBaseTest();
- else if (strcmp(argv[i], "sp")==0)
- SearchPathTest();
- else if (strcmp(argv[i], "ap")==0)
- AbsolutePathTest();
- else if (strcmp(argv[i], "cn")==0)
- CanonicalNameTest();
-
- i++;
- }
- }
-
- // Shutdown
- fSuccess=Shutdown();
- if ( !fSuccess )
- {
- printf("Error during Shutdown");
- return -1;
- }
-
- return 0;
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/testpip2.cxx b/sal/workben/testpip2.cxx
deleted file mode 100644
index 8d62294e8..000000000
--- a/sal/workben/testpip2.cxx
+++ /dev/null
@@ -1,97 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <osl/pipe.h>
-
-// eindeutiger Name fr die Pipe
-const char pszPipeName[] = "TestPipe";
-
-oslPipe Pipe;
-
-
-void fail( const char * pszText, int retval )
-{
- fprintf( stderr, "TestPipe Client: %s", pszText );
- fprintf( stderr, "TestPipe Client: test failed, ErrNo: %d.\n", retval );
- exit( retval );
-}
-
-
-
-/*
- * Teste die Pipe-Implementation in osl
- */
-
-int main (void)
-{
- char szBuffer[ 256 ];
- rtl_uString* ustrPipeName=0;
- sal_Int32 nChars;
-
- rtl_uString_newFromAscii(&ustrPipeName,pszPipeName);
-
- // erzeuge die Pipe
- Pipe = osl_createPipe( ustrPipeName, osl_Pipe_OPEN, 0 );
-
- if( !Pipe )
- fail( "unable to open pipe.\n",
- osl_getLastPipeError(NULL));
-
-
- // empfange Daten vom Server
- nChars = osl_receivePipe( Pipe, szBuffer, 256 );
-
- if( nChars < 0 )
- fail( "unable to read from pipe.\n",
- osl_getLastPipeError( Pipe ) );
-
- printf( "TestPipe Client: data received: %s.\n", szBuffer );
-
- // Sende die Daten wieder zurck.
- nChars = osl_sendPipe( Pipe, szBuffer, nChars );
-
- if( nChars < 0 )
- fail( "unable to write on pipe.\n",
- osl_getLastPipeError( Pipe ) );
-
- // schliesse die Pipe
- osl_releasePipe( Pipe );
-
- printf( "TestPipe Client: test passed.\n" );
- return 0;
-}
-
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/testpipe.cxx b/sal/workben/testpipe.cxx
deleted file mode 100644
index c3cdc5a01..000000000
--- a/sal/workben/testpipe.cxx
+++ /dev/null
@@ -1,169 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <osl/pipe.h>
-#include <osl/process.h>
-#include <rtl/ustring.h>
-
-// eindeutiger Name fr die Pipe
-const char pszPipeName[] = "TestPipe";
-const char szTestString[] = "This is a test";
-char szBuffer[256];
-
-const char * cp;
-size_t n;
-sal_Int32 nChars;
-
-// osl specific variables
-oslPipe Pipe;
-oslPipe C1Pipe;
-oslProcess Process = NULL;
-oslProcessError ProcessError;
-oslProcessInfo ProcessInfo;
-
-void fail( const char * pszText, int retval )
-{
- fprintf( stderr, "TestPipe Server: %s", pszText );
- fprintf( stderr, "TestPipe Server: test failed, ErrNo: %d.\n", retval );
-
- if( Process ) osl_freeProcessHandle( Process );
- exit( retval );
-}
-
-
-
-/*
- * Teste die Pipe-Implementation in osl
- */
-
-int main (int argc, const char *argv[])
-{
- // erzeuge die Pipe
- rtl_uString* ustrPipeName=0;
- rtl_uString* ustrExeName=0;
-
-
- rtl_uString_newFromAscii(&ustrPipeName,pszPipeName);
- rtl_uString_newFromAscii(&ustrExeName, "//./tmp/testpip2.exe");
-
- Pipe = osl_createPipe( ustrPipeName, osl_Pipe_CREATE, 0 );
-
- if( !Pipe )
- fail( "unable to create Pipe.\n",
- osl_getLastPipeError(NULL));
-
- // starte client process
- ProcessError = osl_executeProcess( ustrExeName,
- NULL,
- 0,
- osl_Process_NORMAL,
- 0,
- NULL,
- NULL,
- 0,
- &Process );
-
- if( ProcessError != osl_Process_E_None )
- fail( "unable to start client.\n", ProcessError );
-
- // wait for connection
- C1Pipe = osl_acceptPipe( Pipe );
-
- if( !C1Pipe )
- fail( "unable to connect to client.\n",
- osl_getLastPipeError( Pipe ));
-
-
- if( argc > 1 )
- {
- cp = argv[1];
- n = strlen( cp ) + 1;
- }
- else
- {
- cp = szTestString;
- n = sizeof(szTestString);
- }
-
- // sende TestString zum Client
- nChars = osl_sendPipe( C1Pipe, cp, n );
-
- if( nChars < 0 )
- fail( "unable to write on pipe.\n",
- osl_getLastPipeError( Pipe ) );
-
- // empfange Daten vom Server
- nChars = osl_receivePipe( C1Pipe, szBuffer, 256 );
-
- if( nChars < 0 )
- fail( "unable to read from pipe.\n",
- osl_getLastPipeError( C1Pipe ) );
-
- printf( "TestPipe Server: received data: %s.\n", szBuffer );
-
- // warte bis das Client-Programm sich beendet
- ProcessError = osl_joinProcess( Process );
-
- if( ProcessError != osl_Process_E_None )
- fail( "unable to wait for client.\n",
- ProcessError );
-
- // ermittle den Rckgabewert des Client-Programms
- ProcessInfo.Size = sizeof( ProcessInfo );
-
- ProcessError = osl_getProcessInfo( Process, osl_Process_EXITCODE, &ProcessInfo );
-
- if( ProcessError != osl_Process_E_None )
- fail( "unable to receive return value of client process.\n",
- ProcessError );
-
- if( ProcessInfo.Code != 0 )
- fail( "client aborted.\n", ProcessInfo.Code );
-
- // gib das Handle fuer den Client-Prozess frei
- osl_freeProcessHandle( Process );
-
- // schliesse die Pipes
- osl_releasePipe( C1Pipe );
- osl_releasePipe( Pipe );
-
- printf( "TestPipe Server: test passed.\n" );
- return 0;
-}
-
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/workben/testproc.cxx b/sal/workben/testproc.cxx
deleted file mode 100644
index d4f5fa4d8..000000000
--- a/sal/workben/testproc.cxx
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-
-
-#include <osl/process.h>
-#include <stdio.h>
-
-
-#if defined WNT
- #define MAIN _cdecl main
-#else
- #define MAIN main
-#endif
-
-int MAIN (void)
-{
- //oslProcess Process;
- oslProcessError ProcessError;
- sal_uInt32 nArgCount;
- sal_uInt32 index;
- rtl_uString* ustrExeFile=0;
- rtl_uString* ustrArg=0;
-
- nArgCount=osl_getCommandArgCount();
-
- fprintf(stderr,"Arg Count == %i\n\n",nArgCount);
-
- for ( index = 0 ; index <= nArgCount+1 ; index++ )
- {
- fprintf(stderr,"Getting Arg No . %i\n",index);
-
- osl_getCommandArg(index,&ustrArg);
-
- fprintf(stderr,"done ...\n\n");
- }
-
- ProcessError = osl_getExecutableFile(&ustrExeFile);
-
-/*
- osl_executeProcess( "e:\\test\\os2de202.exe",
- NULL,
- osl_Process_NORMAL,
- 0L,
- NULL,
- NULL,
- NULL,
- &Process );*/
- return 0;
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */